@brightchain/brightchain-api-lib 0.0.1

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 (586) hide show
  1. package/brightchain-api-lib/README.md +101 -0
  2. package/package.json +53 -0
  3. package/src/index.d.ts +88 -0
  4. package/src/index.d.ts.map +1 -0
  5. package/src/index.js +101 -0
  6. package/src/index.js.map +1 -0
  7. package/src/lib/__tests__/fixtures/mock-backend-brightchain-member.d.ts +71 -0
  8. package/src/lib/__tests__/fixtures/mock-backend-brightchain-member.d.ts.map +1 -0
  9. package/src/lib/__tests__/fixtures/mock-backend-brightchain-member.js +119 -0
  10. package/src/lib/__tests__/fixtures/mock-backend-brightchain-member.js.map +1 -0
  11. package/src/lib/__tests__/fixtures/mocked-model.d.ts +90 -0
  12. package/src/lib/__tests__/fixtures/mocked-model.d.ts.map +1 -0
  13. package/src/lib/__tests__/fixtures/mocked-model.js +101 -0
  14. package/src/lib/__tests__/fixtures/mocked-model.js.map +1 -0
  15. package/src/lib/__tests__/helpers/application.mock.d.ts +5 -0
  16. package/src/lib/__tests__/helpers/application.mock.d.ts.map +1 -0
  17. package/src/lib/__tests__/helpers/application.mock.js +52 -0
  18. package/src/lib/__tests__/helpers/application.mock.js.map +1 -0
  19. package/src/lib/__tests__/helpers/model-mocks.mock.d.ts +43 -0
  20. package/src/lib/__tests__/helpers/model-mocks.mock.d.ts.map +1 -0
  21. package/src/lib/__tests__/helpers/model-mocks.mock.js +67 -0
  22. package/src/lib/__tests__/helpers/model-mocks.mock.js.map +1 -0
  23. package/src/lib/appConstants.d.ts +87 -0
  24. package/src/lib/appConstants.d.ts.map +1 -0
  25. package/src/lib/appConstants.js +25 -0
  26. package/src/lib/appConstants.js.map +1 -0
  27. package/src/lib/application-base.d.ts +39 -0
  28. package/src/lib/application-base.d.ts.map +1 -0
  29. package/src/lib/application-base.js +84 -0
  30. package/src/lib/application-base.js.map +1 -0
  31. package/src/lib/application.d.ts +14 -0
  32. package/src/lib/application.d.ts.map +1 -0
  33. package/src/lib/application.js +105 -0
  34. package/src/lib/application.js.map +1 -0
  35. package/src/lib/availability/availabilityMetrics.d.ts +241 -0
  36. package/src/lib/availability/availabilityMetrics.d.ts.map +1 -0
  37. package/src/lib/availability/availabilityMetrics.js +425 -0
  38. package/src/lib/availability/availabilityMetrics.js.map +1 -0
  39. package/src/lib/availability/availabilityService.d.ts +250 -0
  40. package/src/lib/availability/availabilityService.d.ts.map +1 -0
  41. package/src/lib/availability/availabilityService.js +593 -0
  42. package/src/lib/availability/availabilityService.js.map +1 -0
  43. package/src/lib/availability/blockRegistry.d.ts +141 -0
  44. package/src/lib/availability/blockRegistry.d.ts.map +1 -0
  45. package/src/lib/availability/blockRegistry.js +257 -0
  46. package/src/lib/availability/blockRegistry.js.map +1 -0
  47. package/src/lib/availability/configValidation.d.ts +72 -0
  48. package/src/lib/availability/configValidation.d.ts.map +1 -0
  49. package/src/lib/availability/configValidation.js +261 -0
  50. package/src/lib/availability/configValidation.js.map +1 -0
  51. package/src/lib/availability/discoveryProtocol.d.ts +160 -0
  52. package/src/lib/availability/discoveryProtocol.d.ts.map +1 -0
  53. package/src/lib/availability/discoveryProtocol.js +304 -0
  54. package/src/lib/availability/discoveryProtocol.js.map +1 -0
  55. package/src/lib/availability/gossipService.d.ts +158 -0
  56. package/src/lib/availability/gossipService.d.ts.map +1 -0
  57. package/src/lib/availability/gossipService.js +271 -0
  58. package/src/lib/availability/gossipService.js.map +1 -0
  59. package/src/lib/availability/heartbeatMonitor.d.ts +204 -0
  60. package/src/lib/availability/heartbeatMonitor.d.ts.map +1 -0
  61. package/src/lib/availability/heartbeatMonitor.js +375 -0
  62. package/src/lib/availability/heartbeatMonitor.js.map +1 -0
  63. package/src/lib/availability/index.d.ts +15 -0
  64. package/src/lib/availability/index.d.ts.map +1 -0
  65. package/src/lib/availability/index.js +18 -0
  66. package/src/lib/availability/index.js.map +1 -0
  67. package/src/lib/availability/reconciliationService.d.ts +237 -0
  68. package/src/lib/availability/reconciliationService.d.ts.map +1 -0
  69. package/src/lib/availability/reconciliationService.js +513 -0
  70. package/src/lib/availability/reconciliationService.js.map +1 -0
  71. package/src/lib/blocks/handle.d.ts +45 -0
  72. package/src/lib/blocks/handle.d.ts.map +1 -0
  73. package/src/lib/blocks/handle.js +221 -0
  74. package/src/lib/blocks/handle.js.map +1 -0
  75. package/src/lib/constants.d.ts +50 -0
  76. package/src/lib/constants.d.ts.map +1 -0
  77. package/src/lib/constants.js +58 -0
  78. package/src/lib/constants.js.map +1 -0
  79. package/src/lib/controllers/base.d.ts +50 -0
  80. package/src/lib/controllers/base.d.ts.map +1 -0
  81. package/src/lib/controllers/base.js +235 -0
  82. package/src/lib/controllers/base.js.map +1 -0
  83. package/src/lib/controllers/user.d.ts +9 -0
  84. package/src/lib/controllers/user.d.ts.map +1 -0
  85. package/src/lib/controllers/user.js +21 -0
  86. package/src/lib/controllers/user.js.map +1 -0
  87. package/src/lib/datastore/block-document-store-factory.d.ts +19 -0
  88. package/src/lib/datastore/block-document-store-factory.d.ts.map +1 -0
  89. package/src/lib/datastore/block-document-store-factory.js +29 -0
  90. package/src/lib/datastore/block-document-store-factory.js.map +1 -0
  91. package/src/lib/datastore/block-document-store.d.ts +185 -0
  92. package/src/lib/datastore/block-document-store.d.ts.map +1 -0
  93. package/src/lib/datastore/block-document-store.js +590 -0
  94. package/src/lib/datastore/block-document-store.js.map +1 -0
  95. package/src/lib/datastore/document-model-adapter.d.ts +48 -0
  96. package/src/lib/datastore/document-model-adapter.d.ts.map +1 -0
  97. package/src/lib/datastore/document-model-adapter.js +178 -0
  98. package/src/lib/datastore/document-model-adapter.js.map +1 -0
  99. package/src/lib/datastore/document-store.d.ts +64 -0
  100. package/src/lib/datastore/document-store.d.ts.map +1 -0
  101. package/src/lib/datastore/document-store.js +3 -0
  102. package/src/lib/datastore/document-store.js.map +1 -0
  103. package/src/lib/datastore/memory-document-store.d.ts +6 -0
  104. package/src/lib/datastore/memory-document-store.d.ts.map +1 -0
  105. package/src/lib/datastore/memory-document-store.js +196 -0
  106. package/src/lib/datastore/memory-document-store.js.map +1 -0
  107. package/src/lib/documents/base.d.ts +5 -0
  108. package/src/lib/documents/base.d.ts.map +1 -0
  109. package/src/lib/documents/base.js +3 -0
  110. package/src/lib/documents/base.js.map +1 -0
  111. package/src/lib/documents/email-token.d.ts +8 -0
  112. package/src/lib/documents/email-token.d.ts.map +1 -0
  113. package/src/lib/documents/email-token.js +3 -0
  114. package/src/lib/documents/email-token.js.map +1 -0
  115. package/src/lib/documents/index.d.ts +7 -0
  116. package/src/lib/documents/index.d.ts.map +1 -0
  117. package/src/lib/documents/index.js +3 -0
  118. package/src/lib/documents/index.js.map +1 -0
  119. package/src/lib/documents/mnemonic.d.ts +8 -0
  120. package/src/lib/documents/mnemonic.d.ts.map +1 -0
  121. package/src/lib/documents/mnemonic.js +3 -0
  122. package/src/lib/documents/mnemonic.js.map +1 -0
  123. package/src/lib/documents/role.d.ts +8 -0
  124. package/src/lib/documents/role.d.ts.map +1 -0
  125. package/src/lib/documents/role.js +3 -0
  126. package/src/lib/documents/role.js.map +1 -0
  127. package/src/lib/documents/used-direct-login-token.d.ts +5 -0
  128. package/src/lib/documents/used-direct-login-token.d.ts.map +1 -0
  129. package/src/lib/documents/used-direct-login-token.js +3 -0
  130. package/src/lib/documents/used-direct-login-token.js.map +1 -0
  131. package/src/lib/documents/user-role.d.ts +8 -0
  132. package/src/lib/documents/user-role.d.ts.map +1 -0
  133. package/src/lib/documents/user-role.js +3 -0
  134. package/src/lib/documents/user-role.js.map +1 -0
  135. package/src/lib/documents/user.d.ts +13 -0
  136. package/src/lib/documents/user.d.ts.map +1 -0
  137. package/src/lib/documents/user.js +3 -0
  138. package/src/lib/documents/user.js.map +1 -0
  139. package/src/lib/enumerations/model-name.d.ts +30 -0
  140. package/src/lib/enumerations/model-name.d.ts.map +1 -0
  141. package/src/lib/enumerations/model-name.js +34 -0
  142. package/src/lib/enumerations/model-name.js.map +1 -0
  143. package/src/lib/enumerations/schema-collection.d.ts +30 -0
  144. package/src/lib/enumerations/schema-collection.d.ts.map +1 -0
  145. package/src/lib/enumerations/schema-collection.js +34 -0
  146. package/src/lib/enumerations/schema-collection.js.map +1 -0
  147. package/src/lib/enumerations/symmetric-error-type.d.ts +5 -0
  148. package/src/lib/enumerations/symmetric-error-type.d.ts.map +1 -0
  149. package/src/lib/enumerations/symmetric-error-type.js +9 -0
  150. package/src/lib/enumerations/symmetric-error-type.js.map +1 -0
  151. package/src/lib/environment.d.ts +23 -0
  152. package/src/lib/environment.d.ts.map +1 -0
  153. package/src/lib/environment.js +75 -0
  154. package/src/lib/environment.js.map +1 -0
  155. package/src/lib/errors/admin-role-not-found.d.ts +6 -0
  156. package/src/lib/errors/admin-role-not-found.d.ts.map +1 -0
  157. package/src/lib/errors/admin-role-not-found.js +14 -0
  158. package/src/lib/errors/admin-role-not-found.js.map +1 -0
  159. package/src/lib/errors/email-already-verified.d.ts +5 -0
  160. package/src/lib/errors/email-already-verified.d.ts.map +1 -0
  161. package/src/lib/errors/email-already-verified.js +11 -0
  162. package/src/lib/errors/email-already-verified.js.map +1 -0
  163. package/src/lib/errors/email-token-failed-to-send.d.ts +7 -0
  164. package/src/lib/errors/email-token-failed-to-send.d.ts.map +1 -0
  165. package/src/lib/errors/email-token-failed-to-send.js +14 -0
  166. package/src/lib/errors/email-token-failed-to-send.js.map +1 -0
  167. package/src/lib/errors/express-validation.d.ts +7 -0
  168. package/src/lib/errors/express-validation.d.ts.map +1 -0
  169. package/src/lib/errors/express-validation.js +14 -0
  170. package/src/lib/errors/express-validation.js.map +1 -0
  171. package/src/lib/errors/invalid-backup-code-version.d.ts +5 -0
  172. package/src/lib/errors/invalid-backup-code-version.d.ts.map +1 -0
  173. package/src/lib/errors/invalid-backup-code-version.js +12 -0
  174. package/src/lib/errors/invalid-backup-code-version.js.map +1 -0
  175. package/src/lib/errors/invalid-challenge-response.d.ts +5 -0
  176. package/src/lib/errors/invalid-challenge-response.d.ts.map +1 -0
  177. package/src/lib/errors/invalid-challenge-response.js +14 -0
  178. package/src/lib/errors/invalid-challenge-response.js.map +1 -0
  179. package/src/lib/errors/invalid-expired-token.d.ts +5 -0
  180. package/src/lib/errors/invalid-expired-token.d.ts.map +1 -0
  181. package/src/lib/errors/invalid-expired-token.js +13 -0
  182. package/src/lib/errors/invalid-expired-token.js.map +1 -0
  183. package/src/lib/errors/invalid-jwt-token.d.ts +5 -0
  184. package/src/lib/errors/invalid-jwt-token.d.ts.map +1 -0
  185. package/src/lib/errors/invalid-jwt-token.js +12 -0
  186. package/src/lib/errors/invalid-jwt-token.js.map +1 -0
  187. package/src/lib/errors/last-admin-error.d.ts +7 -0
  188. package/src/lib/errors/last-admin-error.d.ts.map +1 -0
  189. package/src/lib/errors/last-admin-error.js +16 -0
  190. package/src/lib/errors/last-admin-error.js.map +1 -0
  191. package/src/lib/errors/login-challenge-expired.d.ts +5 -0
  192. package/src/lib/errors/login-challenge-expired.d.ts.map +1 -0
  193. package/src/lib/errors/login-challenge-expired.js +14 -0
  194. package/src/lib/errors/login-challenge-expired.js.map +1 -0
  195. package/src/lib/errors/member-role-not-found.d.ts +7 -0
  196. package/src/lib/errors/member-role-not-found.d.ts.map +1 -0
  197. package/src/lib/errors/member-role-not-found.js +14 -0
  198. package/src/lib/errors/member-role-not-found.js.map +1 -0
  199. package/src/lib/errors/missing-validated-data.d.ts +8 -0
  200. package/src/lib/errors/missing-validated-data.d.ts.map +1 -0
  201. package/src/lib/errors/missing-validated-data.js +32 -0
  202. package/src/lib/errors/missing-validated-data.js.map +1 -0
  203. package/src/lib/errors/mnemonic-or-password-required.d.ts +5 -0
  204. package/src/lib/errors/mnemonic-or-password-required.d.ts.map +1 -0
  205. package/src/lib/errors/mnemonic-or-password-required.js +14 -0
  206. package/src/lib/errors/mnemonic-or-password-required.js.map +1 -0
  207. package/src/lib/errors/restricted.d.ts +5 -0
  208. package/src/lib/errors/restricted.d.ts.map +1 -0
  209. package/src/lib/errors/restricted.js +15 -0
  210. package/src/lib/errors/restricted.js.map +1 -0
  211. package/src/lib/errors/symmetric.d.ts +9 -0
  212. package/src/lib/errors/symmetric.d.ts.map +1 -0
  213. package/src/lib/errors/symmetric.js +24 -0
  214. package/src/lib/errors/symmetric.js.map +1 -0
  215. package/src/lib/errors/token-expired.d.ts +5 -0
  216. package/src/lib/errors/token-expired.d.ts.map +1 -0
  217. package/src/lib/errors/token-expired.js +12 -0
  218. package/src/lib/errors/token-expired.js.map +1 -0
  219. package/src/lib/errors/token-not-found.d.ts +8 -0
  220. package/src/lib/errors/token-not-found.d.ts.map +1 -0
  221. package/src/lib/errors/token-not-found.js +19 -0
  222. package/src/lib/errors/token-not-found.js.map +1 -0
  223. package/src/lib/errors/translatable-error-local.d.ts +7 -0
  224. package/src/lib/errors/translatable-error-local.d.ts.map +1 -0
  225. package/src/lib/errors/translatable-error-local.js +17 -0
  226. package/src/lib/errors/translatable-error-local.js.map +1 -0
  227. package/src/lib/errors/typed-error-local.d.ts +10 -0
  228. package/src/lib/errors/typed-error-local.d.ts.map +1 -0
  229. package/src/lib/errors/typed-error-local.js +24 -0
  230. package/src/lib/errors/typed-error-local.js.map +1 -0
  231. package/src/lib/factories/blockStoreFactory.d.ts +14 -0
  232. package/src/lib/factories/blockStoreFactory.d.ts.map +1 -0
  233. package/src/lib/factories/blockStoreFactory.js +18 -0
  234. package/src/lib/factories/blockStoreFactory.js.map +1 -0
  235. package/src/lib/interfaces/api-constants.d.ts +51 -0
  236. package/src/lib/interfaces/api-constants.d.ts.map +1 -0
  237. package/src/lib/interfaces/api-constants.js +13 -0
  238. package/src/lib/interfaces/api-constants.js.map +1 -0
  239. package/src/lib/interfaces/api-express-validation-error-response.d.ts +7 -0
  240. package/src/lib/interfaces/api-express-validation-error-response.d.ts.map +1 -0
  241. package/src/lib/interfaces/api-express-validation-error-response.js +3 -0
  242. package/src/lib/interfaces/api-express-validation-error-response.js.map +1 -0
  243. package/src/lib/interfaces/api-mongo-validation-error-response.d.ts +6 -0
  244. package/src/lib/interfaces/api-mongo-validation-error-response.d.ts.map +1 -0
  245. package/src/lib/interfaces/api-mongo-validation-error-response.js +3 -0
  246. package/src/lib/interfaces/api-mongo-validation-error-response.js.map +1 -0
  247. package/src/lib/interfaces/application.d.ts +10 -0
  248. package/src/lib/interfaces/application.d.ts.map +1 -0
  249. package/src/lib/interfaces/application.js +3 -0
  250. package/src/lib/interfaces/application.js.map +1 -0
  251. package/src/lib/interfaces/authenticated-cipher.d.ts +10 -0
  252. package/src/lib/interfaces/authenticated-cipher.d.ts.map +1 -0
  253. package/src/lib/interfaces/authenticated-cipher.js +3 -0
  254. package/src/lib/interfaces/authenticated-cipher.js.map +1 -0
  255. package/src/lib/interfaces/authenticated-decipher.d.ts +9 -0
  256. package/src/lib/interfaces/authenticated-decipher.d.ts.map +1 -0
  257. package/src/lib/interfaces/authenticated-decipher.js +3 -0
  258. package/src/lib/interfaces/authenticated-decipher.js.map +1 -0
  259. package/src/lib/interfaces/backend-objects/email-token.d.ts +4 -0
  260. package/src/lib/interfaces/backend-objects/email-token.d.ts.map +1 -0
  261. package/src/lib/interfaces/backend-objects/email-token.js +3 -0
  262. package/src/lib/interfaces/backend-objects/email-token.js.map +1 -0
  263. package/src/lib/interfaces/backend-objects/request-user.d.ts +5 -0
  264. package/src/lib/interfaces/backend-objects/request-user.d.ts.map +1 -0
  265. package/src/lib/interfaces/backend-objects/request-user.js +3 -0
  266. package/src/lib/interfaces/backend-objects/request-user.js.map +1 -0
  267. package/src/lib/interfaces/backend-objects/role.d.ts +4 -0
  268. package/src/lib/interfaces/backend-objects/role.d.ts.map +1 -0
  269. package/src/lib/interfaces/backend-objects/role.js +3 -0
  270. package/src/lib/interfaces/backend-objects/role.js.map +1 -0
  271. package/src/lib/interfaces/backend-objects/user.d.ts +5 -0
  272. package/src/lib/interfaces/backend-objects/user.d.ts.map +1 -0
  273. package/src/lib/interfaces/backend-objects/user.js +3 -0
  274. package/src/lib/interfaces/backend-objects/user.js.map +1 -0
  275. package/src/lib/interfaces/bases/mnemonic.d.ts +4 -0
  276. package/src/lib/interfaces/bases/mnemonic.d.ts.map +1 -0
  277. package/src/lib/interfaces/bases/mnemonic.js +3 -0
  278. package/src/lib/interfaces/bases/mnemonic.js.map +1 -0
  279. package/src/lib/interfaces/bases/role.d.ts +4 -0
  280. package/src/lib/interfaces/bases/role.d.ts.map +1 -0
  281. package/src/lib/interfaces/bases/role.js +3 -0
  282. package/src/lib/interfaces/bases/role.js.map +1 -0
  283. package/src/lib/interfaces/bases/user-role.d.ts +4 -0
  284. package/src/lib/interfaces/bases/user-role.d.ts.map +1 -0
  285. package/src/lib/interfaces/bases/user-role.js +3 -0
  286. package/src/lib/interfaces/bases/user-role.js.map +1 -0
  287. package/src/lib/interfaces/bases/user.d.ts +5 -0
  288. package/src/lib/interfaces/bases/user.d.ts.map +1 -0
  289. package/src/lib/interfaces/bases/user.js +3 -0
  290. package/src/lib/interfaces/bases/user.js.map +1 -0
  291. package/src/lib/interfaces/checksum-config.d.ts +5 -0
  292. package/src/lib/interfaces/checksum-config.d.ts.map +1 -0
  293. package/src/lib/interfaces/checksum-config.js +3 -0
  294. package/src/lib/interfaces/checksum-config.js.map +1 -0
  295. package/src/lib/interfaces/discriminator-collections.d.ts +5 -0
  296. package/src/lib/interfaces/discriminator-collections.d.ts.map +1 -0
  297. package/src/lib/interfaces/discriminator-collections.js +3 -0
  298. package/src/lib/interfaces/discriminator-collections.js.map +1 -0
  299. package/src/lib/interfaces/ecies-consts.d.ts +88 -0
  300. package/src/lib/interfaces/ecies-consts.d.ts.map +1 -0
  301. package/src/lib/interfaces/ecies-consts.js +3 -0
  302. package/src/lib/interfaces/ecies-consts.js.map +1 -0
  303. package/src/lib/interfaces/environment-aws.d.ts +7 -0
  304. package/src/lib/interfaces/environment-aws.d.ts.map +1 -0
  305. package/src/lib/interfaces/environment-aws.js +3 -0
  306. package/src/lib/interfaces/environment-aws.js.map +1 -0
  307. package/src/lib/interfaces/environment-mongo.d.ts +76 -0
  308. package/src/lib/interfaces/environment-mongo.d.ts.map +1 -0
  309. package/src/lib/interfaces/environment-mongo.js +3 -0
  310. package/src/lib/interfaces/environment-mongo.js.map +1 -0
  311. package/src/lib/interfaces/environment.d.ts +28 -0
  312. package/src/lib/interfaces/environment.d.ts.map +1 -0
  313. package/src/lib/interfaces/environment.js +3 -0
  314. package/src/lib/interfaces/environment.js.map +1 -0
  315. package/src/lib/interfaces/jwt-sign-response.d.ts +12 -0
  316. package/src/lib/interfaces/jwt-sign-response.d.ts.map +1 -0
  317. package/src/lib/interfaces/jwt-sign-response.js +3 -0
  318. package/src/lib/interfaces/jwt-sign-response.js.map +1 -0
  319. package/src/lib/interfaces/member/member-with-mnemonic.d.ts +6 -0
  320. package/src/lib/interfaces/member/member-with-mnemonic.d.ts.map +1 -0
  321. package/src/lib/interfaces/member/member-with-mnemonic.js +3 -0
  322. package/src/lib/interfaces/member/member-with-mnemonic.js.map +1 -0
  323. package/src/lib/interfaces/member/operational.d.ts +36 -0
  324. package/src/lib/interfaces/member/operational.d.ts.map +1 -0
  325. package/src/lib/interfaces/member/operational.js +3 -0
  326. package/src/lib/interfaces/member/operational.js.map +1 -0
  327. package/src/lib/interfaces/mongo-errors.d.ts +9 -0
  328. package/src/lib/interfaces/mongo-errors.d.ts.map +1 -0
  329. package/src/lib/interfaces/mongo-errors.js +3 -0
  330. package/src/lib/interfaces/mongo-errors.js.map +1 -0
  331. package/src/lib/interfaces/multi-encrypted-message.d.ts +8 -0
  332. package/src/lib/interfaces/multi-encrypted-message.d.ts.map +1 -0
  333. package/src/lib/interfaces/multi-encrypted-message.js +3 -0
  334. package/src/lib/interfaces/multi-encrypted-message.js.map +1 -0
  335. package/src/lib/interfaces/multi-encrypted-parsed-header.d.ts +24 -0
  336. package/src/lib/interfaces/multi-encrypted-parsed-header.d.ts.map +1 -0
  337. package/src/lib/interfaces/multi-encrypted-parsed-header.js +3 -0
  338. package/src/lib/interfaces/multi-encrypted-parsed-header.js.map +1 -0
  339. package/src/lib/interfaces/pbkdf2-result.d.ts +6 -0
  340. package/src/lib/interfaces/pbkdf2-result.d.ts.map +1 -0
  341. package/src/lib/interfaces/pbkdf2-result.js +3 -0
  342. package/src/lib/interfaces/pbkdf2-result.js.map +1 -0
  343. package/src/lib/interfaces/request-user.d.ts +51 -0
  344. package/src/lib/interfaces/request-user.d.ts.map +1 -0
  345. package/src/lib/interfaces/request-user.js +3 -0
  346. package/src/lib/interfaces/request-user.js.map +1 -0
  347. package/src/lib/interfaces/responses/api-backup-codes-response.d.ts +11 -0
  348. package/src/lib/interfaces/responses/api-backup-codes-response.d.ts.map +1 -0
  349. package/src/lib/interfaces/responses/api-backup-codes-response.js +3 -0
  350. package/src/lib/interfaces/responses/api-backup-codes-response.js.map +1 -0
  351. package/src/lib/interfaces/responses/api-challenge-response.d.ts +11 -0
  352. package/src/lib/interfaces/responses/api-challenge-response.d.ts.map +1 -0
  353. package/src/lib/interfaces/responses/api-challenge-response.js +3 -0
  354. package/src/lib/interfaces/responses/api-challenge-response.js.map +1 -0
  355. package/src/lib/interfaces/responses/api-code-count-response.d.ts +11 -0
  356. package/src/lib/interfaces/responses/api-code-count-response.d.ts.map +1 -0
  357. package/src/lib/interfaces/responses/api-code-count-response.js +3 -0
  358. package/src/lib/interfaces/responses/api-code-count-response.js.map +1 -0
  359. package/src/lib/interfaces/responses/api-login-response.d.ts +20 -0
  360. package/src/lib/interfaces/responses/api-login-response.d.ts.map +1 -0
  361. package/src/lib/interfaces/responses/api-login-response.js +3 -0
  362. package/src/lib/interfaces/responses/api-login-response.js.map +1 -0
  363. package/src/lib/interfaces/responses/api-mnemonic-response.d.ts +11 -0
  364. package/src/lib/interfaces/responses/api-mnemonic-response.d.ts.map +1 -0
  365. package/src/lib/interfaces/responses/api-mnemonic-response.js +3 -0
  366. package/src/lib/interfaces/responses/api-mnemonic-response.js.map +1 -0
  367. package/src/lib/interfaces/responses/api-registration-response.d.ts +16 -0
  368. package/src/lib/interfaces/responses/api-registration-response.d.ts.map +1 -0
  369. package/src/lib/interfaces/responses/api-registration-response.js +3 -0
  370. package/src/lib/interfaces/responses/api-registration-response.js.map +1 -0
  371. package/src/lib/interfaces/responses/api-request-user-response.d.ts +12 -0
  372. package/src/lib/interfaces/responses/api-request-user-response.d.ts.map +1 -0
  373. package/src/lib/interfaces/responses/api-request-user-response.js +3 -0
  374. package/src/lib/interfaces/responses/api-request-user-response.js.map +1 -0
  375. package/src/lib/interfaces/responses/index.d.ts +9 -0
  376. package/src/lib/interfaces/responses/index.d.ts.map +1 -0
  377. package/src/lib/interfaces/responses/index.js +11 -0
  378. package/src/lib/interfaces/responses/index.js.map +1 -0
  379. package/src/lib/interfaces/schema.d.ts +28 -0
  380. package/src/lib/interfaces/schema.d.ts.map +1 -0
  381. package/src/lib/interfaces/schema.js +3 -0
  382. package/src/lib/interfaces/schema.js.map +1 -0
  383. package/src/lib/interfaces/server-init-result.d.ts +34 -0
  384. package/src/lib/interfaces/server-init-result.d.ts.map +1 -0
  385. package/src/lib/interfaces/server-init-result.js +3 -0
  386. package/src/lib/interfaces/server-init-result.js.map +1 -0
  387. package/src/lib/interfaces/single-encrypted-parsed-header.d.ts +35 -0
  388. package/src/lib/interfaces/single-encrypted-parsed-header.d.ts.map +1 -0
  389. package/src/lib/interfaces/single-encrypted-parsed-header.js +3 -0
  390. package/src/lib/interfaces/single-encrypted-parsed-header.js.map +1 -0
  391. package/src/lib/interfaces/status-code-response.d.ts +7 -0
  392. package/src/lib/interfaces/status-code-response.d.ts.map +1 -0
  393. package/src/lib/interfaces/status-code-response.js +3 -0
  394. package/src/lib/interfaces/status-code-response.js.map +1 -0
  395. package/src/lib/interfaces/symmetric-encryption-results.d.ts +5 -0
  396. package/src/lib/interfaces/symmetric-encryption-results.d.ts.map +1 -0
  397. package/src/lib/interfaces/symmetric-encryption-results.js +3 -0
  398. package/src/lib/interfaces/symmetric-encryption-results.js.map +1 -0
  399. package/src/lib/interfaces/token-user.d.ts +9 -0
  400. package/src/lib/interfaces/token-user.d.ts.map +1 -0
  401. package/src/lib/interfaces/token-user.js +3 -0
  402. package/src/lib/interfaces/token-user.js.map +1 -0
  403. package/src/lib/interfaces/wallet-seed.d.ts +7 -0
  404. package/src/lib/interfaces/wallet-seed.d.ts.map +1 -0
  405. package/src/lib/interfaces/wallet-seed.js +3 -0
  406. package/src/lib/interfaces/wallet-seed.js.map +1 -0
  407. package/src/lib/middlewares/cleanup-crypto.d.ts +7 -0
  408. package/src/lib/middlewares/cleanup-crypto.d.ts.map +1 -0
  409. package/src/lib/middlewares/cleanup-crypto.js +32 -0
  410. package/src/lib/middlewares/cleanup-crypto.js.map +1 -0
  411. package/src/lib/middlewares/index.d.ts +3 -0
  412. package/src/lib/middlewares/index.d.ts.map +1 -0
  413. package/src/lib/middlewares/index.js +10 -0
  414. package/src/lib/middlewares/index.js.map +1 -0
  415. package/src/lib/middlewares.d.ts +19 -0
  416. package/src/lib/middlewares.d.ts.map +1 -0
  417. package/src/lib/middlewares.js +95 -0
  418. package/src/lib/middlewares.js.map +1 -0
  419. package/src/lib/models/email-token.d.ts +47 -0
  420. package/src/lib/models/email-token.d.ts.map +1 -0
  421. package/src/lib/models/email-token.js +11 -0
  422. package/src/lib/models/email-token.js.map +1 -0
  423. package/src/lib/models/mnemonic.d.ts +26 -0
  424. package/src/lib/models/mnemonic.d.ts.map +1 -0
  425. package/src/lib/models/mnemonic.js +11 -0
  426. package/src/lib/models/mnemonic.js.map +1 -0
  427. package/src/lib/models/role.d.ts +23 -0
  428. package/src/lib/models/role.d.ts.map +1 -0
  429. package/src/lib/models/role.js +8 -0
  430. package/src/lib/models/role.js.map +1 -0
  431. package/src/lib/models/used-direct-login-token.d.ts +29 -0
  432. package/src/lib/models/used-direct-login-token.d.ts.map +1 -0
  433. package/src/lib/models/used-direct-login-token.js +11 -0
  434. package/src/lib/models/used-direct-login-token.js.map +1 -0
  435. package/src/lib/models/user-role.d.ts +59 -0
  436. package/src/lib/models/user-role.d.ts.map +1 -0
  437. package/src/lib/models/user-role.js +11 -0
  438. package/src/lib/models/user-role.js.map +1 -0
  439. package/src/lib/models/user.d.ts +132 -0
  440. package/src/lib/models/user.d.ts.map +1 -0
  441. package/src/lib/models/user.js +8 -0
  442. package/src/lib/models/user.js.map +1 -0
  443. package/src/lib/routers/api.d.ts +21 -0
  444. package/src/lib/routers/api.d.ts.map +1 -0
  445. package/src/lib/routers/api.js +41 -0
  446. package/src/lib/routers/api.js.map +1 -0
  447. package/src/lib/routers/app.d.ts +22 -0
  448. package/src/lib/routers/app.d.ts.map +1 -0
  449. package/src/lib/routers/app.js +131 -0
  450. package/src/lib/routers/app.js.map +1 -0
  451. package/src/lib/routers/base.d.ts +8 -0
  452. package/src/lib/routers/base.d.ts.map +1 -0
  453. package/src/lib/routers/base.js +12 -0
  454. package/src/lib/routers/base.js.map +1 -0
  455. package/src/lib/routers/messageRouter.d.ts +4 -0
  456. package/src/lib/routers/messageRouter.d.ts.map +1 -0
  457. package/src/lib/routers/messageRouter.js +81 -0
  458. package/src/lib/routers/messageRouter.js.map +1 -0
  459. package/src/lib/schemas/email-token.d.ts +44 -0
  460. package/src/lib/schemas/email-token.d.ts.map +1 -0
  461. package/src/lib/schemas/email-token.js +29 -0
  462. package/src/lib/schemas/email-token.js.map +1 -0
  463. package/src/lib/schemas/mnemonic.d.ts +22 -0
  464. package/src/lib/schemas/mnemonic.d.ts.map +1 -0
  465. package/src/lib/schemas/mnemonic.js +21 -0
  466. package/src/lib/schemas/mnemonic.js.map +1 -0
  467. package/src/lib/schemas/role.d.ts +21 -0
  468. package/src/lib/schemas/role.d.ts.map +1 -0
  469. package/src/lib/schemas/role.js +36 -0
  470. package/src/lib/schemas/role.js.map +1 -0
  471. package/src/lib/schemas/schema.d.ts +3 -0
  472. package/src/lib/schemas/schema.d.ts.map +1 -0
  473. package/src/lib/schemas/schema.js +74 -0
  474. package/src/lib/schemas/schema.js.map +1 -0
  475. package/src/lib/schemas/used-direct-login-token.d.ts +25 -0
  476. package/src/lib/schemas/used-direct-login-token.d.ts.map +1 -0
  477. package/src/lib/schemas/used-direct-login-token.js +14 -0
  478. package/src/lib/schemas/used-direct-login-token.js.map +1 -0
  479. package/src/lib/schemas/user-role.d.ts +55 -0
  480. package/src/lib/schemas/user-role.d.ts.map +1 -0
  481. package/src/lib/schemas/user-role.js +22 -0
  482. package/src/lib/schemas/user-role.js.map +1 -0
  483. package/src/lib/schemas/user.d.ts +129 -0
  484. package/src/lib/schemas/user.d.ts.map +1 -0
  485. package/src/lib/schemas/user.js +84 -0
  486. package/src/lib/schemas/user.js.map +1 -0
  487. package/src/lib/services/diskQuorumService.d.ts +55 -0
  488. package/src/lib/services/diskQuorumService.d.ts.map +1 -0
  489. package/src/lib/services/diskQuorumService.js +247 -0
  490. package/src/lib/services/diskQuorumService.js.map +1 -0
  491. package/src/lib/services/email.d.ts +27 -0
  492. package/src/lib/services/email.d.ts.map +1 -0
  493. package/src/lib/services/email.js +81 -0
  494. package/src/lib/services/email.js.map +1 -0
  495. package/src/lib/services/eventNotificationSystem.d.ts +46 -0
  496. package/src/lib/services/eventNotificationSystem.d.ts.map +1 -0
  497. package/src/lib/services/eventNotificationSystem.js +83 -0
  498. package/src/lib/services/eventNotificationSystem.js.map +1 -0
  499. package/src/lib/services/fec.d.ts +87 -0
  500. package/src/lib/services/fec.d.ts.map +1 -0
  501. package/src/lib/services/fec.js +256 -0
  502. package/src/lib/services/fec.js.map +1 -0
  503. package/src/lib/services/fecServiceFactory.d.ts +89 -0
  504. package/src/lib/services/fecServiceFactory.d.ts.map +1 -0
  505. package/src/lib/services/fecServiceFactory.js +154 -0
  506. package/src/lib/services/fecServiceFactory.js.map +1 -0
  507. package/src/lib/services/fecUsageExample.d.ts +33 -0
  508. package/src/lib/services/fecUsageExample.d.ts.map +1 -0
  509. package/src/lib/services/fecUsageExample.js +79 -0
  510. package/src/lib/services/fecUsageExample.js.map +1 -0
  511. package/src/lib/services/keyWrapping.d.ts +61 -0
  512. package/src/lib/services/keyWrapping.d.ts.map +1 -0
  513. package/src/lib/services/keyWrapping.js +297 -0
  514. package/src/lib/services/keyWrapping.js.map +1 -0
  515. package/src/lib/services/messageEventsWebSocketHandler.d.ts +15 -0
  516. package/src/lib/services/messageEventsWebSocketHandler.d.ts.map +1 -0
  517. package/src/lib/services/messageEventsWebSocketHandler.js +59 -0
  518. package/src/lib/services/messageEventsWebSocketHandler.js.map +1 -0
  519. package/src/lib/services/messagePassingService.d.ts +31 -0
  520. package/src/lib/services/messagePassingService.d.ts.map +1 -0
  521. package/src/lib/services/messagePassingService.js +88 -0
  522. package/src/lib/services/messagePassingService.js.map +1 -0
  523. package/src/lib/services/nativeRsFecService.d.ts +79 -0
  524. package/src/lib/services/nativeRsFecService.d.ts.map +1 -0
  525. package/src/lib/services/nativeRsFecService.js +295 -0
  526. package/src/lib/services/nativeRsFecService.js.map +1 -0
  527. package/src/lib/services/pbkdf2.d.ts +6 -0
  528. package/src/lib/services/pbkdf2.d.ts.map +1 -0
  529. package/src/lib/services/pbkdf2.js +31 -0
  530. package/src/lib/services/pbkdf2.js.map +1 -0
  531. package/src/lib/services/user.d.ts +10 -0
  532. package/src/lib/services/user.d.ts.map +1 -0
  533. package/src/lib/services/user.js +11 -0
  534. package/src/lib/services/user.js.map +1 -0
  535. package/src/lib/services/webSocketMessageServer.d.ts +53 -0
  536. package/src/lib/services/webSocketMessageServer.d.ts.map +1 -0
  537. package/src/lib/services/webSocketMessageServer.js +159 -0
  538. package/src/lib/services/webSocketMessageServer.js.map +1 -0
  539. package/src/lib/shared-types.d.ts +82 -0
  540. package/src/lib/shared-types.d.ts.map +1 -0
  541. package/src/lib/shared-types.js +6 -0
  542. package/src/lib/shared-types.js.map +1 -0
  543. package/src/lib/stores/availabilityAwareBlockStore.d.ts +287 -0
  544. package/src/lib/stores/availabilityAwareBlockStore.d.ts.map +1 -0
  545. package/src/lib/stores/availabilityAwareBlockStore.js +458 -0
  546. package/src/lib/stores/availabilityAwareBlockStore.js.map +1 -0
  547. package/src/lib/stores/diskBlockAsyncStore.d.ts +212 -0
  548. package/src/lib/stores/diskBlockAsyncStore.d.ts.map +1 -0
  549. package/src/lib/stores/diskBlockAsyncStore.js +803 -0
  550. package/src/lib/stores/diskBlockAsyncStore.js.map +1 -0
  551. package/src/lib/stores/diskBlockMetadataStore.d.ts +125 -0
  552. package/src/lib/stores/diskBlockMetadataStore.d.ts.map +1 -0
  553. package/src/lib/stores/diskBlockMetadataStore.js +347 -0
  554. package/src/lib/stores/diskBlockMetadataStore.js.map +1 -0
  555. package/src/lib/stores/diskBlockStore.d.ts +41 -0
  556. package/src/lib/stores/diskBlockStore.d.ts.map +1 -0
  557. package/src/lib/stores/diskBlockStore.js +87 -0
  558. package/src/lib/stores/diskBlockStore.js.map +1 -0
  559. package/src/lib/stores/diskBlockSyncStore.d.ts +12 -0
  560. package/src/lib/stores/diskBlockSyncStore.d.ts.map +1 -0
  561. package/src/lib/stores/diskBlockSyncStore.js +55 -0
  562. package/src/lib/stores/diskBlockSyncStore.js.map +1 -0
  563. package/src/lib/stores/diskCblStore.d.ts +30 -0
  564. package/src/lib/stores/diskCblStore.d.ts.map +1 -0
  565. package/src/lib/stores/diskCblStore.js +139 -0
  566. package/src/lib/stores/diskCblStore.js.map +1 -0
  567. package/src/lib/stores/diskMessageMetadataStore.d.ts +17 -0
  568. package/src/lib/stores/diskMessageMetadataStore.d.ts.map +1 -0
  569. package/src/lib/stores/diskMessageMetadataStore.js +214 -0
  570. package/src/lib/stores/diskMessageMetadataStore.js.map +1 -0
  571. package/src/lib/transforms/checksumTransform.d.ts +8 -0
  572. package/src/lib/transforms/checksumTransform.d.ts.map +1 -0
  573. package/src/lib/transforms/checksumTransform.js +22 -0
  574. package/src/lib/transforms/checksumTransform.js.map +1 -0
  575. package/src/lib/transforms/memoryWritableStream.d.ts +8 -0
  576. package/src/lib/transforms/memoryWritableStream.d.ts.map +1 -0
  577. package/src/lib/transforms/memoryWritableStream.js +20 -0
  578. package/src/lib/transforms/memoryWritableStream.js.map +1 -0
  579. package/src/lib/transforms/xorMultipleTransform.d.ts +12 -0
  580. package/src/lib/transforms/xorMultipleTransform.d.ts.map +1 -0
  581. package/src/lib/transforms/xorMultipleTransform.js +52 -0
  582. package/src/lib/transforms/xorMultipleTransform.js.map +1 -0
  583. package/src/lib/utils/type-converters.d.ts +10 -0
  584. package/src/lib/utils/type-converters.d.ts.map +1 -0
  585. package/src/lib/utils/type-converters.js +42 -0
  586. package/src/lib/utils/type-converters.js.map +1 -0
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DiskBlockStore = void 0;
4
+ const brightchain_lib_1 = require("@brightchain/brightchain-lib");
5
+ const fs_1 = require("fs");
6
+ const path_1 = require("path");
7
+ /**
8
+ * DiskBlockStore provides base functionality for storing blocks on disk.
9
+ * It handles block paths, metadata paths, and directory structure.
10
+ */
11
+ class DiskBlockStore {
12
+ constructor(config) {
13
+ if (!config.storePath) {
14
+ throw new brightchain_lib_1.StoreError(brightchain_lib_1.StoreErrorType.StorePathRequired);
15
+ }
16
+ if (!config.blockSize) {
17
+ throw new brightchain_lib_1.StoreError(brightchain_lib_1.StoreErrorType.BlockSizeRequired);
18
+ }
19
+ this._storePath = config.storePath;
20
+ this._blockSize = config.blockSize;
21
+ // Ensure store path exists
22
+ if (!(0, fs_1.existsSync)(config.storePath)) {
23
+ (0, fs_1.mkdirSync)(config.storePath, { recursive: true });
24
+ }
25
+ }
26
+ /**
27
+ * Get the directory path for a block
28
+ * Directory structure: storePath/blockSize/checksumChar1/checksumChar2/
29
+ */
30
+ blockDir(blockId) {
31
+ const checksumString = blockId.toHex();
32
+ if (checksumString.length < 2) {
33
+ throw new brightchain_lib_1.StoreError(brightchain_lib_1.StoreErrorType.InvalidBlockIdTooShort);
34
+ }
35
+ const blockSizeString = (0, brightchain_lib_1.blockSizeToSizeString)(this._blockSize);
36
+ return (0, path_1.join)(this._storePath, blockSizeString, checksumString[0], checksumString[1]);
37
+ }
38
+ /**
39
+ * Get the file path for a block
40
+ * File structure: storePath/blockSize/checksumChar1/checksumChar2/fullChecksum
41
+ */
42
+ blockPath(blockId) {
43
+ const checksumString = blockId.toHex();
44
+ if (checksumString.length < 2) {
45
+ throw new brightchain_lib_1.StoreError(brightchain_lib_1.StoreErrorType.InvalidBlockIdTooShort);
46
+ }
47
+ const blockSizeString = (0, brightchain_lib_1.blockSizeToSizeString)(this._blockSize);
48
+ return (0, path_1.join)(this._storePath, blockSizeString, checksumString[0], checksumString[1], checksumString);
49
+ }
50
+ /**
51
+ * Get the metadata file path for a block
52
+ * Metadata files are stored alongside block files with a .m.json extension
53
+ */
54
+ metadataPath(blockId) {
55
+ return this.blockPath(blockId) + '.m.json';
56
+ }
57
+ /**
58
+ * Ensure the directory structure exists for a block
59
+ */
60
+ ensureBlockPath(blockId) {
61
+ const blockDir = this.blockDir(blockId);
62
+ if (!(0, fs_1.existsSync)(blockDir)) {
63
+ try {
64
+ (0, fs_1.mkdirSync)(blockDir, { recursive: true });
65
+ }
66
+ catch (error) {
67
+ throw new brightchain_lib_1.StoreError(brightchain_lib_1.StoreErrorType.BlockDirectoryCreationFailed, undefined, {
68
+ ERROR: error instanceof Error ? error.message : String(error),
69
+ });
70
+ }
71
+ }
72
+ }
73
+ /**
74
+ * Get the block size
75
+ */
76
+ get blockSize() {
77
+ return this._blockSize;
78
+ }
79
+ /**
80
+ * Get the store path
81
+ */
82
+ get storePath() {
83
+ return this._storePath;
84
+ }
85
+ }
86
+ exports.DiskBlockStore = DiskBlockStore;
87
+ //# sourceMappingURL=diskBlockStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diskBlockStore.js","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/stores/diskBlockStore.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { BaseBlock, BlockSize, Checksum, ISimpleStore } from '@brightchain/brightchain-lib';
2
+ import { DiskBlockStore } from './diskBlockStore';
3
+ export declare class DiskBlockSyncStore extends DiskBlockStore implements ISimpleStore<Checksum, BaseBlock> {
4
+ constructor(config: {
5
+ storePath: string;
6
+ blockSize: BlockSize;
7
+ });
8
+ has(key: Checksum): boolean;
9
+ get(key: Checksum): BaseBlock;
10
+ set(key: Checksum, value: BaseBlock): void;
11
+ }
12
+ //# sourceMappingURL=diskBlockSyncStore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diskBlockSyncStore.d.ts","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/stores/diskBlockSyncStore.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EAET,SAAS,EACT,QAAQ,EAER,YAAY,EAIb,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,qBAAa,kBACX,SAAQ,cACR,YAAW,YAAY,CAAC,QAAQ,EAAE,SAAS,CAAC;gBAEhC,MAAM,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,SAAS,CAAA;KAAE;IAI/D,GAAG,CAAC,GAAG,EAAE,QAAQ,GAAG,OAAO;IAK3B,GAAG,CAAC,GAAG,EAAE,QAAQ,GAAG,SAAS;IAoB7B,GAAG,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,GAAG,IAAI;CA2B3C"}
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DiskBlockSyncStore = void 0;
4
+ const brightchain_lib_1 = require("@brightchain/brightchain-lib");
5
+ const fs_1 = require("fs");
6
+ const diskBlockStore_1 = require("./diskBlockStore");
7
+ class DiskBlockSyncStore extends diskBlockStore_1.DiskBlockStore {
8
+ constructor(config) {
9
+ super(config);
10
+ }
11
+ has(key) {
12
+ const blockPath = this.blockPath(key);
13
+ return (0, fs_1.existsSync)(blockPath);
14
+ }
15
+ get(key) {
16
+ const blockPath = this.blockPath(key);
17
+ const blockData = (0, fs_1.readFileSync)(blockPath);
18
+ if (blockData.length !== this._blockSize) {
19
+ throw new brightchain_lib_1.StoreError(brightchain_lib_1.StoreErrorType.BlockFileSizeMismatch);
20
+ }
21
+ const metadata = JSON.parse((0, fs_1.readFileSync)(this.metadataPath(key)).toString());
22
+ // Create a concrete block instance using RawDataBlock
23
+ const block = new brightchain_lib_1.RawDataBlock(this._blockSize, blockData, new Date(metadata.dateCreated), // Convert string to Date
24
+ key);
25
+ block.validateSync();
26
+ return block;
27
+ }
28
+ set(key, value) {
29
+ if (value.blockDataType == brightchain_lib_1.BlockDataType.EphemeralStructuredData) {
30
+ throw new brightchain_lib_1.StoreError(brightchain_lib_1.StoreErrorType.CannotStoreEphemeralData);
31
+ }
32
+ if (!key.equals(value.idChecksum)) {
33
+ throw new brightchain_lib_1.StoreError(brightchain_lib_1.StoreErrorType.BlockIdMismatch, undefined, {
34
+ KEY: key.toHex(),
35
+ BLOCK_ID: value.idChecksum.toHex(),
36
+ });
37
+ }
38
+ if (value.blockSize !== this._blockSize) {
39
+ throw new brightchain_lib_1.StoreError(brightchain_lib_1.StoreErrorType.BlockSizeMismatch);
40
+ }
41
+ const blockPath = this.blockPath(value.idChecksum);
42
+ if ((0, fs_1.existsSync)(blockPath)) {
43
+ throw new brightchain_lib_1.StoreError(brightchain_lib_1.StoreErrorType.BlockPathAlreadyExists, undefined, {
44
+ PATH: blockPath,
45
+ });
46
+ }
47
+ else {
48
+ this.ensureBlockPath(value.idChecksum);
49
+ }
50
+ (0, fs_1.writeFileSync)(blockPath, value.data.toString());
51
+ (0, fs_1.writeFileSync)(this.metadataPath(value.idChecksum), JSON.stringify(value.metadata));
52
+ }
53
+ }
54
+ exports.DiskBlockSyncStore = DiskBlockSyncStore;
55
+ //# sourceMappingURL=diskBlockSyncStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diskBlockSyncStore.js","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/stores/diskBlockSyncStore.ts"],"names":[],"mappings":";;;AAAA,kEAUsC;AACtC,2BAA6D;AAC7D,qDAAkD;AAElD,MAAa,kBACX,SAAQ,+BAAc;IAGtB,YAAY,MAAmD;QAC7D,KAAK,CAAC,MAAM,CAAC,CAAC;IAChB,CAAC;IAED,GAAG,CAAC,GAAa;QACf,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QACtC,OAAO,IAAA,eAAU,EAAC,SAAS,CAAC,CAAC;IAC/B,CAAC;IAED,GAAG,CAAC,GAAa;QACf,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QACtC,MAAM,SAAS,GAAG,IAAA,iBAAY,EAAC,SAAS,CAAC,CAAC;QAC1C,IAAI,SAAS,CAAC,MAAM,KAAK,IAAI,CAAC,UAAU,EAAE,CAAC;YACzC,MAAM,IAAI,4BAAU,CAAC,gCAAc,CAAC,qBAAqB,CAAC,CAAC;QAC7D,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CACzB,IAAA,iBAAY,EAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAC1B,CAAC;QACxB,sDAAsD;QACtD,MAAM,KAAK,GAAG,IAAI,8BAAY,CAC5B,IAAI,CAAC,UAAU,EACf,SAAS,EACT,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,yBAAyB;QACzD,GAAG,CACJ,CAAC;QACF,KAAK,CAAC,YAAY,EAAE,CAAC;QACrB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,GAAG,CAAC,GAAa,EAAE,KAAgB;QACjC,IAAI,KAAK,CAAC,aAAa,IAAI,+BAAa,CAAC,uBAAuB,EAAE,CAAC;YACjE,MAAM,IAAI,4BAAU,CAAC,gCAAc,CAAC,wBAAwB,CAAC,CAAC;QAChE,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;YAClC,MAAM,IAAI,4BAAU,CAAC,gCAAc,CAAC,eAAe,EAAE,SAAS,EAAE;gBAC9D,GAAG,EAAE,GAAG,CAAC,KAAK,EAAE;gBAChB,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE;aACnC,CAAC,CAAC;QACL,CAAC;QACD,IAAI,KAAK,CAAC,SAAS,KAAK,IAAI,CAAC,UAAU,EAAE,CAAC;YACxC,MAAM,IAAI,4BAAU,CAAC,gCAAc,CAAC,iBAAiB,CAAC,CAAC;QACzD,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACnD,IAAI,IAAA,eAAU,EAAC,SAAS,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,4BAAU,CAAC,gCAAc,CAAC,sBAAsB,EAAE,SAAS,EAAE;gBACrE,IAAI,EAAE,SAAS;aAChB,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACzC,CAAC;QACD,IAAA,kBAAa,EAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAChD,IAAA,kBAAa,EACX,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,UAAU,CAAC,EACnC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,CAC/B,CAAC;IACJ,CAAC;CACF;AA5DD,gDA4DC"}
@@ -0,0 +1,30 @@
1
+ import { GuidV4, Member, PlatformID } from '@digitaldefiance/ecies-lib';
2
+ import { ConstituentBlockListBlock, EncryptedBlock, BlockSize, ICBLStore, Checksum } from '@brightchain/brightchain-lib';
3
+ /**
4
+ * Disk-based CBLStore for Constituent Block Lists (CBLs).
5
+ * Maintains an index of CBL addresses and their associated block tuples.
6
+ * Supports both encrypted and plain CBLs.
7
+ */
8
+ export declare class DiskCBLStore<TID extends PlatformID = Uint8Array> implements ICBLStore<TID> {
9
+ private readonly _storePath;
10
+ private readonly _cblPath;
11
+ private readonly _indexPath;
12
+ private readonly _blockSize;
13
+ private readonly _blockService;
14
+ private readonly _cblService;
15
+ private readonly _checksumService;
16
+ private _activeUser?;
17
+ setActiveUser(user: Member<TID>): void;
18
+ constructor(config: {
19
+ storePath: string;
20
+ blockSize: BlockSize;
21
+ });
22
+ isEncrypted(data: Uint8Array): boolean;
23
+ set(key: Checksum, value: ConstituentBlockListBlock<TID> | EncryptedBlock<TID>): Promise<void>;
24
+ get(checksum: Checksum, hydrateGuid: (id: TID) => Promise<Member<TID>>): Promise<ConstituentBlockListBlock<TID>>;
25
+ has(checksum: Checksum): boolean;
26
+ getCBLAddresses(checksum: Checksum, hydrateFunction: (guid: GuidV4) => Promise<Member>): Promise<Checksum[]>;
27
+ private getBlockPath;
28
+ private ensureBlockPath;
29
+ }
30
+ //# sourceMappingURL=diskCblStore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diskCblStore.d.ts","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/stores/diskCblStore.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,MAAM,EACN,MAAM,EACN,UAAU,EACX,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,yBAAyB,EACzB,cAAc,EAKd,SAAS,EAMT,SAAS,EAKT,QAAQ,EACT,MAAM,8BAA8B,CAAC;AAEtC;;;;GAIG;AACH,qBAAa,YAAY,CAAC,GAAG,SAAS,UAAU,GAAG,UAAU,CAC3D,YAAW,SAAS,CAAC,GAAG,CAAC;IAEzB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAY;IACvC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAoB;IAClD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAkB;IAC9C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAkB;IACnD,OAAO,CAAC,WAAW,CAAC,CAAc;IAE3B,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC;gBAI1B,MAAM,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,SAAS,CAAA;KAAE;IA+BxD,WAAW,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO;IAWhC,GAAG,CACd,GAAG,EAAE,QAAQ,EACb,KAAK,EAAE,yBAAyB,CAAC,GAAG,CAAC,GAAG,cAAc,CAAC,GAAG,CAAC,GAC1D,OAAO,CAAC,IAAI,CAAC;IA0BH,GAAG,CACd,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,CAAC,EAAE,EAAE,GAAG,KAAK,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAC7C,OAAO,CAAC,yBAAyB,CAAC,GAAG,CAAC,CAAC;IAkHnC,GAAG,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO;IAK1B,eAAe,CAC1B,QAAQ,EAAE,QAAQ,EAClB,eAAe,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,GACjD,OAAO,CAAC,QAAQ,EAAE,CAAC;IAgBtB,OAAO,CAAC,YAAY;IAapB,OAAO,CAAC,eAAe;CAYxB"}
@@ -0,0 +1,139 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DiskCBLStore = void 0;
4
+ const fs_1 = require("fs");
5
+ const path_1 = require("path");
6
+ const ecies_lib_1 = require("@digitaldefiance/ecies-lib");
7
+ const brightchain_lib_1 = require("@brightchain/brightchain-lib");
8
+ /**
9
+ * Disk-based CBLStore for Constituent Block Lists (CBLs).
10
+ * Maintains an index of CBL addresses and their associated block tuples.
11
+ * Supports both encrypted and plain CBLs.
12
+ */
13
+ class DiskCBLStore {
14
+ setActiveUser(user) {
15
+ this._activeUser = user;
16
+ }
17
+ constructor(config) {
18
+ if (!config.storePath) {
19
+ throw new brightchain_lib_1.StoreError(brightchain_lib_1.StoreErrorType.StorePathRequired);
20
+ }
21
+ if (!config.blockSize) {
22
+ throw new brightchain_lib_1.StoreError(brightchain_lib_1.StoreErrorType.BlockSizeRequired);
23
+ }
24
+ this._blockSize = config.blockSize;
25
+ this._storePath = config.storePath;
26
+ this._cblPath = (0, path_1.join)(this._storePath, this._blockSize.toString());
27
+ this._indexPath = (0, path_1.join)(this._cblPath, 'index');
28
+ if (!(0, fs_1.existsSync)(config.storePath)) {
29
+ throw new brightchain_lib_1.StoreError(brightchain_lib_1.StoreErrorType.StorePathNotFound);
30
+ }
31
+ if (!(0, fs_1.existsSync)(this._indexPath)) {
32
+ (0, fs_1.mkdirSync)(this._indexPath, { recursive: true });
33
+ }
34
+ if (!(0, fs_1.existsSync)(this._cblPath)) {
35
+ (0, fs_1.mkdirSync)(this._cblPath, { recursive: true });
36
+ }
37
+ this._blockService = brightchain_lib_1.ServiceLocator.getServiceProvider().blockService;
38
+ this._cblService = brightchain_lib_1.ServiceLocator.getServiceProvider().cblService;
39
+ this._checksumService =
40
+ brightchain_lib_1.ServiceLocator.getServiceProvider().checksumService;
41
+ }
42
+ isEncrypted(data) {
43
+ return (brightchain_lib_1.ServiceLocator.getServiceProvider().blockService.isSingleRecipientEncrypted(data) ||
44
+ brightchain_lib_1.ServiceLocator.getServiceProvider().blockService.isMultiRecipientEncrypted(data));
45
+ }
46
+ async set(key, value) {
47
+ const userForvalidation = value.creator ?? this._activeUser;
48
+ if (userForvalidation === undefined) {
49
+ throw new brightchain_lib_1.CblError(brightchain_lib_1.CblErrorType.CreatorRequiredForSignature);
50
+ }
51
+ if (!key.equals(value.idChecksum)) {
52
+ throw new brightchain_lib_1.StoreError(brightchain_lib_1.StoreErrorType.BlockIdMismatch);
53
+ }
54
+ const blockPath = this.getBlockPath(value.idChecksum);
55
+ if ((0, fs_1.existsSync)(blockPath)) {
56
+ throw new brightchain_lib_1.StoreError(brightchain_lib_1.StoreErrorType.BlockPathAlreadyExists);
57
+ }
58
+ if (value instanceof brightchain_lib_1.EncryptedBlock) {
59
+ this.ensureBlockPath(value.idChecksum);
60
+ (0, fs_1.writeFileSync)(blockPath, value.data);
61
+ return;
62
+ }
63
+ this._cblService.validateSignature(value.data, userForvalidation);
64
+ this.ensureBlockPath(value.idChecksum);
65
+ (0, fs_1.writeFileSync)(blockPath, value.data);
66
+ }
67
+ async get(checksum, hydrateGuid) {
68
+ const blockPath = this.getBlockPath(checksum);
69
+ if (!(0, fs_1.existsSync)(blockPath)) {
70
+ throw new brightchain_lib_1.StoreError(brightchain_lib_1.StoreErrorType.KeyNotFound);
71
+ }
72
+ const cblData = (0, fs_1.readFileSync)(blockPath);
73
+ if (this._cblService.isEncrypted(cblData)) {
74
+ if (this._activeUser === undefined) {
75
+ throw new brightchain_lib_1.CblError(brightchain_lib_1.CblErrorType.UserRequiredForDecryption);
76
+ }
77
+ const fileStat = (0, fs_1.statSync)(blockPath);
78
+ const dateCreated = fileStat.mtime;
79
+ if (brightchain_lib_1.ServiceLocator.getServiceProvider().blockService.isMultiRecipientEncrypted(cblData)) {
80
+ const multiEncryptedCbl = new brightchain_lib_1.EncryptedBlock(brightchain_lib_1.BlockType.EncryptedConstituentBlockListBlock, brightchain_lib_1.BlockDataType.EncryptedData, cblData, checksum, new brightchain_lib_1.EncryptedBlockMetadata(this._blockSize, brightchain_lib_1.BlockType.EncryptedConstituentBlockListBlock, brightchain_lib_1.BlockDataType.EncryptedData, cblData.length, this._activeUser, brightchain_lib_1.BlockEncryptionType.MultiRecipient, 2, dateCreated), this._activeUser, true, true);
81
+ const decryptedCbl = new brightchain_lib_1.ConstituentBlockListBlock((await brightchain_lib_1.ServiceLocator.getServiceProvider().blockService.decryptMultiple(this._activeUser, multiEncryptedCbl)).data, this._activeUser);
82
+ if (!decryptedCbl.validateSignature()) {
83
+ throw new brightchain_lib_1.CblError(brightchain_lib_1.CblErrorType.InvalidSignature);
84
+ }
85
+ return Promise.resolve(decryptedCbl);
86
+ }
87
+ else {
88
+ const encryptedCbl = new brightchain_lib_1.EncryptedBlock(brightchain_lib_1.BlockType.EncryptedConstituentBlockListBlock, brightchain_lib_1.BlockDataType.EncryptedData, cblData, checksum, new brightchain_lib_1.EncryptedBlockMetadata(this._blockSize, brightchain_lib_1.BlockType.EncryptedConstituentBlockListBlock, brightchain_lib_1.BlockDataType.EncryptedData, cblData.length, this._activeUser, brightchain_lib_1.BlockEncryptionType.SingleRecipient, 1, dateCreated), this._activeUser);
89
+ const decryptedCbl = new brightchain_lib_1.ConstituentBlockListBlock((await brightchain_lib_1.ServiceLocator.getServiceProvider().blockService.decrypt(this._activeUser, encryptedCbl, brightchain_lib_1.BlockType.ConstituentBlockList)).data, this._activeUser);
90
+ if (!decryptedCbl.validateSignature()) {
91
+ throw new brightchain_lib_1.CblError(brightchain_lib_1.CblErrorType.InvalidSignature);
92
+ }
93
+ return Promise.resolve(decryptedCbl);
94
+ }
95
+ }
96
+ const cblInfo = this._cblService.parseHeader(cblData);
97
+ const idProvider = brightchain_lib_1.ServiceLocator.getServiceProvider().eciesService.constants
98
+ .idProvider;
99
+ const creator = this._activeUser &&
100
+ (0, ecies_lib_1.arraysEqual)(idProvider.toBytes(this._activeUser.id), idProvider.toBytes(cblInfo.creatorId))
101
+ ? this._activeUser
102
+ : await hydrateGuid(cblInfo.creatorId);
103
+ const cbl = new brightchain_lib_1.ConstituentBlockListBlock(cblData, creator);
104
+ if (!cbl.validateSignature()) {
105
+ throw new brightchain_lib_1.CblError(brightchain_lib_1.CblErrorType.InvalidSignature);
106
+ }
107
+ return Promise.resolve(cbl);
108
+ }
109
+ has(checksum) {
110
+ const blockPath = this.getBlockPath(checksum);
111
+ return (0, fs_1.existsSync)(blockPath);
112
+ }
113
+ async getCBLAddresses(checksum, hydrateFunction) {
114
+ const blockPath = this.getBlockPath(checksum);
115
+ if (!(0, fs_1.existsSync)(blockPath)) {
116
+ throw new brightchain_lib_1.StoreError(brightchain_lib_1.StoreErrorType.KeyNotFound);
117
+ }
118
+ if (!this.has(checksum)) {
119
+ throw new brightchain_lib_1.StoreError(brightchain_lib_1.StoreErrorType.KeyNotFound);
120
+ }
121
+ const cbl = await this.get(checksum, hydrateFunction);
122
+ return cbl.addresses;
123
+ }
124
+ getBlockPath(checksum) {
125
+ const checksumHex = checksum.toHex();
126
+ const firstDir = checksumHex.substring(0, 2);
127
+ const secondDir = checksumHex.substring(2, 4);
128
+ return (0, path_1.join)(this._storePath, this._blockSize.toString(), firstDir, secondDir, checksumHex);
129
+ }
130
+ ensureBlockPath(checksum) {
131
+ const checksumHex = checksum.toHex();
132
+ const firstDir = checksumHex.substring(0, 2);
133
+ const secondDir = checksumHex.substring(2, 4);
134
+ const blockDir = (0, path_1.join)(this._storePath, this._blockSize.toString(), firstDir, secondDir);
135
+ (0, fs_1.mkdirSync)(blockDir, { recursive: true });
136
+ }
137
+ }
138
+ exports.DiskCBLStore = DiskCBLStore;
139
+ //# sourceMappingURL=diskCblStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diskCblStore.js","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/stores/diskCblStore.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { BlockSize, IMessageMetadata, IMessageMetadataStore, MessageDeliveryStatus, MessageQuery, MessageQueryOptions } from '@brightchain/brightchain-lib';
2
+ import { DiskBlockMetadataStore } from './diskBlockMetadataStore';
3
+ export declare class DiskMessageMetadataStore extends DiskBlockMetadataStore implements IMessageMetadataStore {
4
+ constructor(storePath: string, blockSize: BlockSize);
5
+ private messageMetadataPath;
6
+ private serializeMessageMetadata;
7
+ private deserializeMessageMetadata;
8
+ storeMessageMetadata(metadata: IMessageMetadata): Promise<void>;
9
+ queryMessages(query: MessageQuery): Promise<IMessageMetadata[]>;
10
+ updateDeliveryStatus(messageId: string, recipientId: string, status: MessageDeliveryStatus): Promise<void>;
11
+ recordAcknowledgment(messageId: string, recipientId: string, timestamp: Date): Promise<void>;
12
+ getMessagesByRecipient(recipientId: string, options?: MessageQueryOptions): Promise<IMessageMetadata[]>;
13
+ getMessagesBySender(senderId: string, options?: MessageQueryOptions): Promise<IMessageMetadata[]>;
14
+ private getMessageMetadata;
15
+ private scanAllMessageMetadata;
16
+ }
17
+ //# sourceMappingURL=diskMessageMetadataStore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diskMessageMetadataStore.d.ts","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/stores/diskMessageMetadataStore.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EAET,gBAAgB,EAChB,qBAAqB,EACrB,qBAAqB,EAGrB,YAAY,EACZ,mBAAmB,EAGpB,MAAM,8BAA8B,CAAC;AAItC,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AA8BlE,qBAAa,wBACX,SAAQ,sBACR,YAAW,qBAAqB;gBAEpB,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS;IAInD,OAAO,CAAC,mBAAmB;IAc3B,OAAO,CAAC,wBAAwB;IA+BhC,OAAO,CAAC,0BAA0B;IAgC5B,oBAAoB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAgB/D,aAAa,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IA2B/D,oBAAoB,CACxB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,IAAI,CAAC;IAWV,oBAAoB,CACxB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,IAAI,GACd,OAAO,CAAC,IAAI,CAAC;IAYV,sBAAsB,CAC1B,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAuBxB,mBAAmB,CACvB,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,gBAAgB,EAAE,CAAC;YAuBhB,kBAAkB;YAelB,sBAAsB;CA0CrC"}
@@ -0,0 +1,214 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DiskMessageMetadataStore = void 0;
4
+ const brightchain_lib_1 = require("@brightchain/brightchain-lib");
5
+ const fs_1 = require("fs");
6
+ const promises_1 = require("fs/promises");
7
+ const path_1 = require("path");
8
+ const diskBlockMetadataStore_1 = require("./diskBlockMetadataStore");
9
+ const MESSAGE_METADATA_FILE_VERSION = 1;
10
+ const MESSAGE_METADATA_FILE_EXTENSION = '.mm.json';
11
+ class DiskMessageMetadataStore extends diskBlockMetadataStore_1.DiskBlockMetadataStore {
12
+ constructor(storePath, blockSize) {
13
+ super(storePath, blockSize);
14
+ }
15
+ messageMetadataPath(blockId) {
16
+ if (!blockId || blockId.length < 2) {
17
+ throw new brightchain_lib_1.StoreError(brightchain_lib_1.StoreErrorType.InvalidBlockIdTooShort);
18
+ }
19
+ const blockSizeString = (0, brightchain_lib_1.blockSizeToSizeString)(this.getBlockSize());
20
+ const dir = (0, path_1.join)(this.getStorePath(), blockSizeString, blockId[0], blockId[1]);
21
+ return (0, path_1.join)(dir, blockId + MESSAGE_METADATA_FILE_EXTENSION);
22
+ }
23
+ serializeMessageMetadata(metadata) {
24
+ return {
25
+ version: MESSAGE_METADATA_FILE_VERSION,
26
+ blockId: metadata.blockId,
27
+ createdAt: metadata.createdAt.toISOString(),
28
+ expiresAt: metadata.expiresAt ? metadata.expiresAt.toISOString() : null,
29
+ durabilityLevel: metadata.durabilityLevel,
30
+ parityBlockIds: [...metadata.parityBlockIds],
31
+ accessCount: metadata.accessCount,
32
+ lastAccessedAt: metadata.lastAccessedAt.toISOString(),
33
+ replicationStatus: metadata.replicationStatus,
34
+ targetReplicationFactor: metadata.targetReplicationFactor,
35
+ replicaNodeIds: [...metadata.replicaNodeIds],
36
+ size: metadata.size,
37
+ checksum: metadata.checksum,
38
+ messageType: metadata.messageType,
39
+ senderId: metadata.senderId,
40
+ recipients: [...metadata.recipients],
41
+ priority: metadata.priority,
42
+ deliveryStatus: Array.from(metadata.deliveryStatus.entries()),
43
+ acknowledgments: Array.from(metadata.acknowledgments.entries()).map(([k, v]) => [k, v.toISOString()]),
44
+ encryptionScheme: metadata.encryptionScheme,
45
+ isCBL: metadata.isCBL,
46
+ cblBlockIds: metadata.cblBlockIds ? [...metadata.cblBlockIds] : undefined,
47
+ };
48
+ }
49
+ deserializeMessageMetadata(file) {
50
+ return {
51
+ blockId: file.blockId,
52
+ createdAt: new Date(file.createdAt),
53
+ expiresAt: file.expiresAt ? new Date(file.expiresAt) : null,
54
+ durabilityLevel: file.durabilityLevel,
55
+ parityBlockIds: [...file.parityBlockIds],
56
+ accessCount: file.accessCount,
57
+ lastAccessedAt: new Date(file.lastAccessedAt),
58
+ replicationStatus: file.replicationStatus,
59
+ targetReplicationFactor: file.targetReplicationFactor,
60
+ replicaNodeIds: [...file.replicaNodeIds],
61
+ size: file.size,
62
+ checksum: file.checksum,
63
+ messageType: file.messageType,
64
+ senderId: file.senderId,
65
+ recipients: [...file.recipients],
66
+ priority: Number(file.priority),
67
+ deliveryStatus: new Map(file.deliveryStatus.map(([k, v]) => [k, v])),
68
+ acknowledgments: new Map(file.acknowledgments.map(([k, v]) => [k, new Date(v)])),
69
+ encryptionScheme: file.encryptionScheme,
70
+ isCBL: file.isCBL,
71
+ cblBlockIds: file.cblBlockIds ? [...file.cblBlockIds] : undefined,
72
+ };
73
+ }
74
+ async storeMessageMetadata(metadata) {
75
+ const filePath = this.messageMetadataPath(metadata.blockId);
76
+ // Check if block metadata already exists
77
+ if (!this.has(metadata.blockId)) {
78
+ await this.create(metadata);
79
+ }
80
+ else {
81
+ await this.update(metadata.blockId, metadata);
82
+ }
83
+ // Write message-specific metadata
84
+ const serialized = this.serializeMessageMetadata(metadata);
85
+ const json = JSON.stringify(serialized, null, 2);
86
+ await (0, promises_1.writeFile)(filePath, json, 'utf-8');
87
+ }
88
+ async queryMessages(query) {
89
+ const results = [];
90
+ const { recipientId, senderId, messageType, startDate, endDate, priority, page = 0, pageSize = 50, } = query;
91
+ await this.scanAllMessageMetadata(async (meta) => {
92
+ if (recipientId && !meta.recipients.includes(recipientId))
93
+ return;
94
+ if (senderId && meta.senderId !== senderId)
95
+ return;
96
+ if (messageType && meta.messageType !== messageType)
97
+ return;
98
+ if (startDate && meta.createdAt < startDate)
99
+ return;
100
+ if (endDate && meta.createdAt > endDate)
101
+ return;
102
+ if (priority !== undefined && meta.priority !== priority)
103
+ return;
104
+ results.push(meta);
105
+ });
106
+ const start = page * pageSize;
107
+ return results.slice(start, start + pageSize);
108
+ }
109
+ async updateDeliveryStatus(messageId, recipientId, status) {
110
+ const meta = await this.getMessageMetadata(messageId);
111
+ if (!meta) {
112
+ throw new brightchain_lib_1.StoreError(brightchain_lib_1.StoreErrorType.KeyNotFound, undefined, {
113
+ KEY: messageId,
114
+ });
115
+ }
116
+ meta.deliveryStatus.set(recipientId, status);
117
+ await this.storeMessageMetadata(meta);
118
+ }
119
+ async recordAcknowledgment(messageId, recipientId, timestamp) {
120
+ const meta = await this.getMessageMetadata(messageId);
121
+ if (!meta) {
122
+ throw new brightchain_lib_1.StoreError(brightchain_lib_1.StoreErrorType.KeyNotFound, undefined, {
123
+ KEY: messageId,
124
+ });
125
+ }
126
+ meta.acknowledgments.set(recipientId, timestamp);
127
+ meta.deliveryStatus.set(recipientId, brightchain_lib_1.MessageDeliveryStatus.DELIVERED);
128
+ await this.storeMessageMetadata(meta);
129
+ }
130
+ async getMessagesByRecipient(recipientId, options) {
131
+ const results = [];
132
+ const { startDate, endDate, messageType, priority, limit = 50, offset = 0, } = options || {};
133
+ await this.scanAllMessageMetadata(async (meta) => {
134
+ if (!meta.recipients.includes(recipientId))
135
+ return;
136
+ if (startDate && meta.createdAt < startDate)
137
+ return;
138
+ if (endDate && meta.createdAt > endDate)
139
+ return;
140
+ if (messageType && meta.messageType !== messageType)
141
+ return;
142
+ if (priority !== undefined && meta.priority !== priority)
143
+ return;
144
+ results.push(meta);
145
+ });
146
+ return results.slice(offset, offset + limit);
147
+ }
148
+ async getMessagesBySender(senderId, options) {
149
+ const results = [];
150
+ const { startDate, endDate, messageType, priority, limit = 50, offset = 0, } = options || {};
151
+ await this.scanAllMessageMetadata(async (meta) => {
152
+ if (meta.senderId !== senderId)
153
+ return;
154
+ if (startDate && meta.createdAt < startDate)
155
+ return;
156
+ if (endDate && meta.createdAt > endDate)
157
+ return;
158
+ if (messageType && meta.messageType !== messageType)
159
+ return;
160
+ if (priority !== undefined && meta.priority !== priority)
161
+ return;
162
+ results.push(meta);
163
+ });
164
+ return results.slice(offset, offset + limit);
165
+ }
166
+ async getMessageMetadata(blockId) {
167
+ const filePath = this.messageMetadataPath(blockId);
168
+ if (!(0, fs_1.existsSync)(filePath))
169
+ return null;
170
+ try {
171
+ const json = await (0, promises_1.readFile)(filePath, 'utf-8');
172
+ const file = JSON.parse(json);
173
+ return this.deserializeMessageMetadata(file);
174
+ }
175
+ catch {
176
+ return null;
177
+ }
178
+ }
179
+ async scanAllMessageMetadata(callback) {
180
+ const blockSizeString = (0, brightchain_lib_1.blockSizeToSizeString)(this.getBlockSize());
181
+ const basePath = (0, path_1.join)(this.getStorePath(), blockSizeString);
182
+ if (!(0, fs_1.existsSync)(basePath))
183
+ return;
184
+ try {
185
+ const firstLevelDirs = await (0, promises_1.readdir)(basePath);
186
+ for (const firstDir of firstLevelDirs) {
187
+ const firstLevelPath = (0, path_1.join)(basePath, firstDir);
188
+ const firstStats = await (0, promises_1.stat)(firstLevelPath);
189
+ if (!firstStats.isDirectory())
190
+ continue;
191
+ const secondLevelDirs = await (0, promises_1.readdir)(firstLevelPath);
192
+ for (const secondDir of secondLevelDirs) {
193
+ const secondLevelPath = (0, path_1.join)(firstLevelPath, secondDir);
194
+ const secondStats = await (0, promises_1.stat)(secondLevelPath);
195
+ if (!secondStats.isDirectory())
196
+ continue;
197
+ const files = await (0, promises_1.readdir)(secondLevelPath);
198
+ const metadataFiles = files.filter((f) => f.endsWith(MESSAGE_METADATA_FILE_EXTENSION));
199
+ for (const metadataFile of metadataFiles) {
200
+ const blockId = metadataFile.slice(0, -MESSAGE_METADATA_FILE_EXTENSION.length);
201
+ const metadata = await this.getMessageMetadata(blockId);
202
+ if (metadata)
203
+ await callback(metadata);
204
+ }
205
+ }
206
+ }
207
+ }
208
+ catch {
209
+ // Empty or corrupted store
210
+ }
211
+ }
212
+ }
213
+ exports.DiskMessageMetadataStore = DiskMessageMetadataStore;
214
+ //# sourceMappingURL=diskMessageMetadataStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diskMessageMetadataStore.js","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/stores/diskMessageMetadataStore.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { Transform, TransformCallback } from 'stream';
2
+ export declare class ChecksumTransform extends Transform {
3
+ private sha3;
4
+ constructor();
5
+ _transform(chunk: Buffer, encoding: BufferEncoding, callback: TransformCallback): void;
6
+ _flush(callback: TransformCallback): void;
7
+ }
8
+ //# sourceMappingURL=checksumTransform.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checksumTransform.d.ts","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/transforms/checksumTransform.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAEtD,qBAAa,iBAAkB,SAAQ,SAAS;IAC9C,OAAO,CAAC,IAAI,CAAS;;IAML,UAAU,CACxB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,cAAc,EACxB,QAAQ,EAAE,iBAAiB;IAMb,MAAM,CAAC,QAAQ,EAAE,iBAAiB;CAQnD"}