@brightchain/brightchain-api-lib 0.14.0 → 0.15.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 (242) hide show
  1. package/package.json +5 -5
  2. package/src/index.d.ts +3 -0
  3. package/src/index.d.ts.map +1 -1
  4. package/src/index.js +5 -0
  5. package/src/index.js.map +1 -1
  6. package/src/lib/application.d.ts +1 -0
  7. package/src/lib/application.d.ts.map +1 -1
  8. package/src/lib/application.js +23 -0
  9. package/src/lib/application.js.map +1 -1
  10. package/src/lib/auth/aclEnforcedAvailability.d.ts +57 -0
  11. package/src/lib/auth/aclEnforcedAvailability.d.ts.map +1 -0
  12. package/src/lib/auth/aclEnforcedAvailability.js +87 -0
  13. package/src/lib/auth/aclEnforcedAvailability.js.map +1 -0
  14. package/src/lib/auth/aclEnforcedBlockStore.d.ts +66 -0
  15. package/src/lib/auth/aclEnforcedBlockStore.d.ts.map +1 -0
  16. package/src/lib/auth/aclEnforcedBlockStore.js +83 -0
  17. package/src/lib/auth/aclEnforcedBlockStore.js.map +1 -0
  18. package/src/lib/auth/ecdsaNodeAuthenticator.d.ts +46 -0
  19. package/src/lib/auth/ecdsaNodeAuthenticator.d.ts.map +1 -0
  20. package/src/lib/auth/ecdsaNodeAuthenticator.js +110 -0
  21. package/src/lib/auth/ecdsaNodeAuthenticator.js.map +1 -0
  22. package/src/lib/auth/index.d.ts +7 -0
  23. package/src/lib/auth/index.d.ts.map +1 -0
  24. package/src/lib/auth/index.js +13 -0
  25. package/src/lib/auth/index.js.map +1 -0
  26. package/src/lib/auth/poolAclBootstrap.d.ts +36 -0
  27. package/src/lib/auth/poolAclBootstrap.d.ts.map +1 -0
  28. package/src/lib/auth/poolAclBootstrap.js +64 -0
  29. package/src/lib/auth/poolAclBootstrap.js.map +1 -0
  30. package/src/lib/auth/poolAclStore.d.ts +77 -0
  31. package/src/lib/auth/poolAclStore.d.ts.map +1 -0
  32. package/src/lib/auth/poolAclStore.js +189 -0
  33. package/src/lib/auth/poolAclStore.js.map +1 -0
  34. package/src/lib/auth/poolAclUpdater.d.ts +79 -0
  35. package/src/lib/auth/poolAclUpdater.d.ts.map +1 -0
  36. package/src/lib/auth/poolAclUpdater.js +144 -0
  37. package/src/lib/auth/poolAclUpdater.js.map +1 -0
  38. package/src/lib/availability/availabilityService.d.ts +2 -2
  39. package/src/lib/availability/availabilityService.d.ts.map +1 -1
  40. package/src/lib/availability/availabilityService.js +12 -5
  41. package/src/lib/availability/availabilityService.js.map +1 -1
  42. package/src/lib/availability/blockRegistry.d.ts +45 -3
  43. package/src/lib/availability/blockRegistry.d.ts.map +1 -1
  44. package/src/lib/availability/blockRegistry.js +123 -5
  45. package/src/lib/availability/blockRegistry.js.map +1 -1
  46. package/src/lib/availability/discoveryProtocol.d.ts +30 -1
  47. package/src/lib/availability/discoveryProtocol.d.ts.map +1 -1
  48. package/src/lib/availability/discoveryProtocol.js +76 -0
  49. package/src/lib/availability/discoveryProtocol.js.map +1 -1
  50. package/src/lib/availability/gossipService.d.ts +45 -6
  51. package/src/lib/availability/gossipService.d.ts.map +1 -1
  52. package/src/lib/availability/gossipService.js +177 -5
  53. package/src/lib/availability/gossipService.js.map +1 -1
  54. package/src/lib/availability/reconciliationService.d.ts +88 -1
  55. package/src/lib/availability/reconciliationService.d.ts.map +1 -1
  56. package/src/lib/availability/reconciliationService.js +246 -48
  57. package/src/lib/availability/reconciliationService.js.map +1 -1
  58. package/src/lib/blockFetch/blockFetcher.d.ts +100 -0
  59. package/src/lib/blockFetch/blockFetcher.d.ts.map +1 -0
  60. package/src/lib/blockFetch/blockFetcher.js +279 -0
  61. package/src/lib/blockFetch/blockFetcher.js.map +1 -0
  62. package/src/lib/blockFetch/fetchQueue.d.ts +88 -0
  63. package/src/lib/blockFetch/fetchQueue.d.ts.map +1 -0
  64. package/src/lib/blockFetch/fetchQueue.js +204 -0
  65. package/src/lib/blockFetch/fetchQueue.js.map +1 -0
  66. package/src/lib/blockFetch/httpBlockFetchTransport.d.ts +65 -0
  67. package/src/lib/blockFetch/httpBlockFetchTransport.d.ts.map +1 -0
  68. package/src/lib/blockFetch/httpBlockFetchTransport.js +104 -0
  69. package/src/lib/blockFetch/httpBlockFetchTransport.js.map +1 -0
  70. package/src/lib/blockFetch/index.d.ts +10 -0
  71. package/src/lib/blockFetch/index.d.ts.map +1 -0
  72. package/src/lib/blockFetch/index.js +13 -0
  73. package/src/lib/blockFetch/index.js.map +1 -0
  74. package/src/lib/controllers/api/brightpass.d.ts +72 -0
  75. package/src/lib/controllers/api/brightpass.d.ts.map +1 -0
  76. package/src/lib/controllers/api/brightpass.js +577 -0
  77. package/src/lib/controllers/api/brightpass.js.map +1 -0
  78. package/src/lib/controllers/api/channels.d.ts +122 -0
  79. package/src/lib/controllers/api/channels.d.ts.map +1 -0
  80. package/src/lib/controllers/api/channels.js +701 -0
  81. package/src/lib/controllers/api/channels.js.map +1 -0
  82. package/src/lib/controllers/api/conversations.d.ts +89 -0
  83. package/src/lib/controllers/api/conversations.d.ts.map +1 -0
  84. package/src/lib/controllers/api/conversations.js +259 -0
  85. package/src/lib/controllers/api/conversations.js.map +1 -0
  86. package/src/lib/controllers/api/emails.d.ts +122 -0
  87. package/src/lib/controllers/api/emails.d.ts.map +1 -0
  88. package/src/lib/controllers/api/emails.js +494 -0
  89. package/src/lib/controllers/api/emails.js.map +1 -0
  90. package/src/lib/controllers/api/explodingMessages.d.ts +79 -0
  91. package/src/lib/controllers/api/explodingMessages.d.ts.map +1 -0
  92. package/src/lib/controllers/api/explodingMessages.js +378 -0
  93. package/src/lib/controllers/api/explodingMessages.js.map +1 -0
  94. package/src/lib/controllers/api/groups.d.ts +94 -0
  95. package/src/lib/controllers/api/groups.d.ts.map +1 -0
  96. package/src/lib/controllers/api/groups.js +484 -0
  97. package/src/lib/controllers/api/groups.js.map +1 -0
  98. package/src/lib/controllers/api/index.d.ts +6 -0
  99. package/src/lib/controllers/api/index.d.ts.map +1 -1
  100. package/src/lib/controllers/api/index.js +6 -0
  101. package/src/lib/controllers/api/index.js.map +1 -1
  102. package/src/lib/controllers/api/messages.d.ts.map +1 -1
  103. package/src/lib/controllers/api/messages.js +2 -1
  104. package/src/lib/controllers/api/messages.js.map +1 -1
  105. package/src/lib/controllers/api/sync.d.ts +38 -2
  106. package/src/lib/controllers/api/sync.d.ts.map +1 -1
  107. package/src/lib/controllers/api/sync.js +89 -0
  108. package/src/lib/controllers/api/sync.js.map +1 -1
  109. package/src/lib/controllers/crypto/gitController.d.ts +70 -0
  110. package/src/lib/controllers/crypto/gitController.d.ts.map +1 -0
  111. package/src/lib/controllers/crypto/gitController.js +306 -0
  112. package/src/lib/controllers/crypto/gitController.js.map +1 -0
  113. package/src/lib/controllers/crypto/index.d.ts +3 -0
  114. package/src/lib/controllers/crypto/index.d.ts.map +1 -0
  115. package/src/lib/controllers/crypto/index.js +6 -0
  116. package/src/lib/controllers/crypto/index.js.map +1 -0
  117. package/src/lib/controllers/crypto/walletController.d.ts +64 -0
  118. package/src/lib/controllers/crypto/walletController.d.ts.map +1 -0
  119. package/src/lib/controllers/crypto/walletController.js +260 -0
  120. package/src/lib/controllers/crypto/walletController.js.map +1 -0
  121. package/src/lib/controllers/identity/deviceController.d.ts +96 -0
  122. package/src/lib/controllers/identity/deviceController.d.ts.map +1 -0
  123. package/src/lib/controllers/identity/deviceController.js +355 -0
  124. package/src/lib/controllers/identity/deviceController.js.map +1 -0
  125. package/src/lib/controllers/identity/directoryController.d.ts +75 -0
  126. package/src/lib/controllers/identity/directoryController.d.ts.map +1 -0
  127. package/src/lib/controllers/identity/directoryController.js +288 -0
  128. package/src/lib/controllers/identity/directoryController.js.map +1 -0
  129. package/src/lib/controllers/identity/identityProofController.d.ts +94 -0
  130. package/src/lib/controllers/identity/identityProofController.d.ts.map +1 -0
  131. package/src/lib/controllers/identity/identityProofController.js +454 -0
  132. package/src/lib/controllers/identity/identityProofController.js.map +1 -0
  133. package/src/lib/controllers/identity/index.d.ts +4 -0
  134. package/src/lib/controllers/identity/index.d.ts.map +1 -0
  135. package/src/lib/controllers/identity/index.js +7 -0
  136. package/src/lib/controllers/identity/index.js.map +1 -0
  137. package/src/lib/controllers/index.d.ts +2 -0
  138. package/src/lib/controllers/index.d.ts.map +1 -1
  139. package/src/lib/controllers/index.js +2 -0
  140. package/src/lib/controllers/index.js.map +1 -1
  141. package/src/lib/encryption/encryptedMetadataService.d.ts +87 -0
  142. package/src/lib/encryption/encryptedMetadataService.d.ts.map +1 -0
  143. package/src/lib/encryption/encryptedMetadataService.js +224 -0
  144. package/src/lib/encryption/encryptedMetadataService.js.map +1 -0
  145. package/src/lib/encryption/encryptionAwareReplication.d.ts +76 -0
  146. package/src/lib/encryption/encryptionAwareReplication.d.ts.map +1 -0
  147. package/src/lib/encryption/encryptionAwareReplication.js +116 -0
  148. package/src/lib/encryption/encryptionAwareReplication.js.map +1 -0
  149. package/src/lib/encryption/errors.d.ts +49 -0
  150. package/src/lib/encryption/errors.d.ts.map +1 -0
  151. package/src/lib/encryption/errors.js +80 -0
  152. package/src/lib/encryption/errors.js.map +1 -0
  153. package/src/lib/encryption/index.d.ts +6 -0
  154. package/src/lib/encryption/index.d.ts.map +1 -0
  155. package/src/lib/encryption/index.js +9 -0
  156. package/src/lib/encryption/index.js.map +1 -0
  157. package/src/lib/encryption/poolEncryptionService.d.ts +94 -0
  158. package/src/lib/encryption/poolEncryptionService.d.ts.map +1 -0
  159. package/src/lib/encryption/poolEncryptionService.js +252 -0
  160. package/src/lib/encryption/poolEncryptionService.js.map +1 -0
  161. package/src/lib/encryption/poolKeyManager.d.ts +82 -0
  162. package/src/lib/encryption/poolKeyManager.d.ts.map +1 -0
  163. package/src/lib/encryption/poolKeyManager.js +156 -0
  164. package/src/lib/encryption/poolKeyManager.js.map +1 -0
  165. package/src/lib/environment.d.ts +3 -0
  166. package/src/lib/environment.d.ts.map +1 -1
  167. package/src/lib/environment.js +5 -0
  168. package/src/lib/environment.js.map +1 -1
  169. package/src/lib/interfaces/environment.d.ts +7 -1
  170. package/src/lib/interfaces/environment.d.ts.map +1 -1
  171. package/src/lib/interfaces/index.d.ts +0 -1
  172. package/src/lib/interfaces/index.d.ts.map +1 -1
  173. package/src/lib/interfaces/requests/getBlockDataRequest.d.ts +12 -0
  174. package/src/lib/interfaces/requests/getBlockDataRequest.d.ts.map +1 -0
  175. package/src/lib/interfaces/{blockStore.js → requests/getBlockDataRequest.js} +1 -1
  176. package/src/lib/interfaces/requests/getBlockDataRequest.js.map +1 -0
  177. package/src/lib/interfaces/requests/index.d.ts +1 -0
  178. package/src/lib/interfaces/requests/index.d.ts.map +1 -1
  179. package/src/lib/routers/api.d.ts +54 -1
  180. package/src/lib/routers/api.d.ts.map +1 -1
  181. package/src/lib/routers/api.js +77 -0
  182. package/src/lib/routers/api.js.map +1 -1
  183. package/src/lib/services/blockStore.d.ts +5 -2
  184. package/src/lib/services/blockStore.d.ts.map +1 -1
  185. package/src/lib/services/blockStore.js +4 -0
  186. package/src/lib/services/blockStore.js.map +1 -1
  187. package/src/lib/services/brightpass/auditLogger.d.ts +77 -0
  188. package/src/lib/services/brightpass/auditLogger.d.ts.map +1 -0
  189. package/src/lib/services/brightpass/auditLogger.js +184 -0
  190. package/src/lib/services/brightpass/auditLogger.js.map +1 -0
  191. package/src/lib/services/brightpass/vaultEncryption.d.ts +82 -0
  192. package/src/lib/services/brightpass/vaultEncryption.d.ts.map +1 -0
  193. package/src/lib/services/brightpass/vaultEncryption.js +144 -0
  194. package/src/lib/services/brightpass/vaultEncryption.js.map +1 -0
  195. package/src/lib/services/brightpass.d.ts +294 -0
  196. package/src/lib/services/brightpass.d.ts.map +1 -0
  197. package/src/lib/services/brightpass.js +1260 -0
  198. package/src/lib/services/brightpass.js.map +1 -0
  199. package/src/lib/services/eventNotificationSystem.d.ts +69 -3
  200. package/src/lib/services/eventNotificationSystem.d.ts.map +1 -1
  201. package/src/lib/services/eventNotificationSystem.js +200 -0
  202. package/src/lib/services/eventNotificationSystem.js.map +1 -1
  203. package/src/lib/services/expirationScheduler.d.ts +90 -0
  204. package/src/lib/services/expirationScheduler.d.ts.map +1 -0
  205. package/src/lib/services/expirationScheduler.js +131 -0
  206. package/src/lib/services/expirationScheduler.js.map +1 -0
  207. package/src/lib/services/fecUsageExample.d.ts +2 -2
  208. package/src/lib/services/index.d.ts +2 -0
  209. package/src/lib/services/index.d.ts.map +1 -1
  210. package/src/lib/services/index.js +2 -0
  211. package/src/lib/services/index.js.map +1 -1
  212. package/src/lib/services/paginationService.d.ts +18 -0
  213. package/src/lib/services/paginationService.d.ts.map +1 -0
  214. package/src/lib/services/paginationService.js +32 -0
  215. package/src/lib/services/paginationService.js.map +1 -0
  216. package/src/lib/services/presenceService.d.ts +76 -0
  217. package/src/lib/services/presenceService.d.ts.map +1 -0
  218. package/src/lib/services/presenceService.js +143 -0
  219. package/src/lib/services/presenceService.js.map +1 -0
  220. package/src/lib/services/wireConversationPromotion.d.ts +23 -0
  221. package/src/lib/services/wireConversationPromotion.d.ts.map +1 -0
  222. package/src/lib/services/wireConversationPromotion.js +26 -0
  223. package/src/lib/services/wireConversationPromotion.js.map +1 -0
  224. package/src/lib/stores/availabilityAwareBlockStore.d.ts +115 -10
  225. package/src/lib/stores/availabilityAwareBlockStore.d.ts.map +1 -1
  226. package/src/lib/stores/availabilityAwareBlockStore.js +267 -23
  227. package/src/lib/stores/availabilityAwareBlockStore.js.map +1 -1
  228. package/src/lib/stores/diskBlockAsyncStore.d.ts +81 -2
  229. package/src/lib/stores/diskBlockAsyncStore.d.ts.map +1 -1
  230. package/src/lib/stores/diskBlockAsyncStore.js +297 -10
  231. package/src/lib/stores/diskBlockAsyncStore.js.map +1 -1
  232. package/src/lib/utils/communicationValidation.d.ts +44 -0
  233. package/src/lib/utils/communicationValidation.d.ts.map +1 -0
  234. package/src/lib/utils/communicationValidation.js +291 -0
  235. package/src/lib/utils/communicationValidation.js.map +1 -0
  236. package/src/lib/utils/emailValidation.d.ts +19 -0
  237. package/src/lib/utils/emailValidation.d.ts.map +1 -0
  238. package/src/lib/utils/emailValidation.js +232 -0
  239. package/src/lib/utils/emailValidation.js.map +1 -0
  240. package/src/lib/interfaces/blockStore.d.ts +0 -7
  241. package/src/lib/interfaces/blockStore.d.ts.map +0 -1
  242. package/src/lib/interfaces/blockStore.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"availabilityAwareBlockStore.js","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/stores/availabilityAwareBlockStore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"availabilityAwareBlockStore.js","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/stores/availabilityAwareBlockStore.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { BaseBlock, BlockHandle, BlockSize, BlockStoreOptions, BrightenResult, CBLMagnetComponents, CBLStorageResult, CBLWhiteningOptions, Checksum, IBaseBlockMetadata, IBlockMetadata, IBlockStore, IFecService, RawDataBlock, RecoveryResult } from '@brightchain/brightchain-lib';
1
+ import { BaseBlock, BlockHandle, BlockSize, BlockStoreOptions, BrightenResult, CBLMagnetComponents, CBLStorageResult, CBLWhiteningOptions, Checksum, IBaseBlockMetadata, IBlockMetadata, IBlockStore, IFecService, PoolDeletionValidationResult, PoolId, RawDataBlock, RecoveryResult } from '@brightchain/brightchain-lib';
2
2
  import { DiskBlockMetadataStore } from './diskBlockMetadataStore';
3
3
  import { DiskBlockStore } from './diskBlockStore';
4
4
  /**
@@ -102,11 +102,90 @@ export declare class DiskBlockAsyncStore extends DiskBlockStore implements IBloc
102
102
  */
103
103
  private cleanupStreams;
104
104
  /**
105
- * Get random block checksums from the store
105
+ * Get random block checksums scoped to a specific pool.
106
+ * Reads only from the pool-prefixed directory structure: storePath/blockSize/pool/XX/YY/hash
107
+ * @param pool - The pool to source random blocks from
108
+ * @param count - Number of random blocks requested
109
+ * @returns Array of checksums (may be fewer than count if pool has insufficient blocks)
110
+ */
111
+ /**
112
+ * Get random block checksums from the store.
113
+ * Scans the non-pool directory structure (storePath/blockSize/char1/char2/hash)
114
+ * used by the legacy setData/getData methods.
106
115
  * @param count - Maximum number of blocks to return
107
116
  * @returns Array of random block checksums
108
117
  */
109
118
  getRandomBlocks(count: number): Promise<Checksum[]>;
119
+ /**
120
+ * Get the directory path for a block within a pool.
121
+ * Directory structure: storePath/blockSize/pool/checksumChar1/checksumChar2/
122
+ */
123
+ private poolBlockDir;
124
+ /**
125
+ * Get the file path for a block within a pool.
126
+ * File structure: storePath/blockSize/pool/checksumChar1/checksumChar2/fullChecksum
127
+ */
128
+ private poolBlockPath;
129
+ /**
130
+ * Ensure the directory structure exists for a block within a pool.
131
+ */
132
+ private ensurePoolBlockPath;
133
+ /**
134
+ * Seed a pool with cryptographically random blocks for whitening material.
135
+ * Generates the specified number of random blocks and stores them in the
136
+ * pool-scoped directory structure: storePath/blockSize/pool/XX/YY/hash
137
+ * @param pool - The pool to bootstrap
138
+ * @param blockSize - The block size for generated random blocks
139
+ * @param count - Number of random blocks to generate
140
+ */
141
+ bootstrapPool(pool: PoolId, blockSize: BlockSize, count: number): Promise<void>;
142
+ /**
143
+ * Check if a block's raw data on disk looks like a CBL block.
144
+ * Checks for the BrightChain structured block magic prefix and CBL-type structured block types.
145
+ * @param data - The raw block data
146
+ * @returns true if the data appears to be a CBL block
147
+ */
148
+ private isCblBlock;
149
+ /**
150
+ * Extract CBL addresses from raw block data using the CBLService.
151
+ * @param data - The raw CBL block data
152
+ * @param cblService - The CBLService instance to use for parsing
153
+ * @returns Array of checksums referenced by the CBL, or null if unparseable/encrypted
154
+ */
155
+ private extractCblAddresses;
156
+ /**
157
+ * Collect all block hashes stored in a specific pool on disk.
158
+ * Walks the pool directory structure: storePath/blockSize/pool/XX/YY/hash
159
+ * @param poolPath - The root directory for the pool (storePath/blockSize/pool)
160
+ * @returns Set of block hash hex strings found in the pool
161
+ */
162
+ private collectPoolBlockHashes;
163
+ /**
164
+ * Check whether a pool can be safely deleted by scanning CBLs in other pools
165
+ * for cross-pool XOR dependencies.
166
+ *
167
+ * Walks the disk directory structure for all block sizes, finds CBL-type blocks
168
+ * in pools other than the target, parses their addresses, and checks if any
169
+ * reference blocks stored in the target pool.
170
+ *
171
+ * @param pool - The pool to validate for deletion
172
+ * @returns Validation result with dependency details if unsafe
173
+ */
174
+ validatePoolDeletion(pool: PoolId): Promise<PoolDeletionValidationResult>;
175
+ /**
176
+ * Delete a pool without checking for cross-pool dependencies.
177
+ * Removes the pool's directory under each block size directory.
178
+ * For administrative use only.
179
+ * @param pool - The pool to force-delete
180
+ */
181
+ forceDeletePool(pool: PoolId): Promise<void>;
182
+ /**
183
+ * Delete a pool after validating that no other pool depends on its blocks.
184
+ * Calls validatePoolDeletion first and throws PoolDeletionError if unsafe.
185
+ * @param pool - The pool to delete
186
+ * @throws PoolDeletionError if cross-pool dependencies exist
187
+ */
188
+ deletePool(pool: PoolId): Promise<void>;
110
189
  /**
111
190
  * Store raw data with a key (convenience method)
112
191
  * Creates a RawDataBlock and stores it
@@ -1 +1 @@
1
- {"version":3,"file":"diskBlockAsyncStore.d.ts","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/stores/diskBlockAsyncStore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"diskBlockAsyncStore.d.ts","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/stores/diskBlockAsyncStore.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DiskBlockAsyncStore = void 0;
4
4
  /* eslint-disable @typescript-eslint/no-explicit-any */
5
5
  const brightchain_lib_1 = require("@brightchain/brightchain-lib");
6
+ const crypto_1 = require("crypto");
6
7
  const fs_1 = require("fs");
7
8
  const promises_1 = require("fs/promises");
8
9
  const path_1 = require("path");
@@ -343,37 +344,45 @@ class DiskBlockAsyncStore extends diskBlockStore_1.DiskBlockStore {
343
344
  });
344
345
  }
345
346
  /**
346
- * Get random block checksums from the store
347
+ * Get random block checksums scoped to a specific pool.
348
+ * Reads only from the pool-prefixed directory structure: storePath/blockSize/pool/XX/YY/hash
349
+ * @param pool - The pool to source random blocks from
350
+ * @param count - Number of random blocks requested
351
+ * @returns Array of checksums (may be fewer than count if pool has insufficient blocks)
352
+ */
353
+ /**
354
+ * Get random block checksums from the store.
355
+ * Scans the non-pool directory structure (storePath/blockSize/char1/char2/hash)
356
+ * used by the legacy setData/getData methods.
347
357
  * @param count - Maximum number of blocks to return
348
358
  * @returns Array of random block checksums
349
359
  */
350
360
  async getRandomBlocks(count) {
361
+ if (count <= 0) {
362
+ return [];
363
+ }
351
364
  const blockSizeString = (0, brightchain_lib_1.blockSizeToSizeString)(this._blockSize);
352
365
  const basePath = (0, path_1.join)(this._storePath, blockSizeString);
353
366
  if (!(0, fs_1.existsSync)(basePath)) {
354
367
  return [];
355
368
  }
356
369
  const blocks = [];
357
- const firstLevelDirs = await (0, promises_1.readdir)(basePath);
370
+ const firstLevelDirs = (await (0, promises_1.readdir)(basePath)).filter((d) => d.length === 1);
358
371
  // Randomly select first level directories until we have enough blocks
359
372
  while (blocks.length < count && firstLevelDirs.length > 0) {
360
- // Pick a random first level directory
361
373
  const randomFirstIndex = Math.floor(Math.random() * firstLevelDirs.length);
362
374
  const firstDir = firstLevelDirs[randomFirstIndex];
363
375
  const firstLevelPath = (0, path_1.join)(basePath, firstDir);
364
376
  if (!(0, fs_1.existsSync)(firstLevelPath)) {
365
- // Remove invalid directory and continue
366
377
  firstLevelDirs.splice(randomFirstIndex, 1);
367
378
  continue;
368
379
  }
369
- // Get second level directories
370
- const secondLevelDirs = await (0, promises_1.readdir)(firstLevelPath);
380
+ // Get second level directories (single-char names only)
381
+ const secondLevelDirs = (await (0, promises_1.readdir)(firstLevelPath)).filter((d) => d.length === 1);
371
382
  if (secondLevelDirs.length === 0) {
372
- // Remove empty directory and continue
373
383
  firstLevelDirs.splice(randomFirstIndex, 1);
374
384
  continue;
375
385
  }
376
- // Pick a random second level directory
377
386
  const randomSecondIndex = Math.floor(Math.random() * secondLevelDirs.length);
378
387
  const secondDir = secondLevelDirs[randomSecondIndex];
379
388
  const secondLevelPath = (0, path_1.join)(firstLevelPath, secondDir);
@@ -386,17 +395,295 @@ class DiskBlockAsyncStore extends diskBlockStore_1.DiskBlockStore {
386
395
  if (blockFiles.length === 0) {
387
396
  continue;
388
397
  }
389
- // Pick a random block
390
398
  const randomBlockIndex = Math.floor(Math.random() * blockFiles.length);
391
399
  const blockFile = blockFiles[randomBlockIndex];
392
400
  blocks.push(brightchain_lib_1.Checksum.fromHex(blockFile));
393
- // Remove used directory if we still need more blocks
394
401
  if (blocks.length < count) {
395
402
  firstLevelDirs.splice(randomFirstIndex, 1);
396
403
  }
397
404
  }
398
405
  return blocks;
399
406
  }
407
+ /**
408
+ * Get the directory path for a block within a pool.
409
+ * Directory structure: storePath/blockSize/pool/checksumChar1/checksumChar2/
410
+ */
411
+ poolBlockDir(pool, blockId, blockSize) {
412
+ const checksumString = blockId.toHex();
413
+ const blockSizeString = (0, brightchain_lib_1.blockSizeToSizeString)(blockSize);
414
+ return (0, path_1.join)(this._storePath, blockSizeString, pool, checksumString[0], checksumString[1]);
415
+ }
416
+ /**
417
+ * Get the file path for a block within a pool.
418
+ * File structure: storePath/blockSize/pool/checksumChar1/checksumChar2/fullChecksum
419
+ */
420
+ poolBlockPath(pool, blockId, blockSize) {
421
+ const checksumString = blockId.toHex();
422
+ return (0, path_1.join)(this.poolBlockDir(pool, blockId, blockSize), checksumString);
423
+ }
424
+ /**
425
+ * Ensure the directory structure exists for a block within a pool.
426
+ */
427
+ ensurePoolBlockPath(pool, blockId, blockSize) {
428
+ const dir = this.poolBlockDir(pool, blockId, blockSize);
429
+ if (!(0, fs_1.existsSync)(dir)) {
430
+ (0, fs_1.mkdirSync)(dir, { recursive: true });
431
+ }
432
+ }
433
+ /**
434
+ * Seed a pool with cryptographically random blocks for whitening material.
435
+ * Generates the specified number of random blocks and stores them in the
436
+ * pool-scoped directory structure: storePath/blockSize/pool/XX/YY/hash
437
+ * @param pool - The pool to bootstrap
438
+ * @param blockSize - The block size for generated random blocks
439
+ * @param count - Number of random blocks to generate
440
+ */
441
+ async bootstrapPool(pool, blockSize, count) {
442
+ (0, brightchain_lib_1.validatePoolId)(pool);
443
+ if (count <= 0)
444
+ return;
445
+ for (let i = 0; i < count; i++) {
446
+ const data = new Uint8Array((0, crypto_1.randomBytes)(blockSize));
447
+ const block = new brightchain_lib_1.RawDataBlock(blockSize, data, new Date());
448
+ const keyHex = this.keyToHex(block.idChecksum);
449
+ const filePath = this.poolBlockPath(pool, block.idChecksum, blockSize);
450
+ if ((0, fs_1.existsSync)(filePath)) {
451
+ continue; // Idempotent - block already exists
452
+ }
453
+ this.ensurePoolBlockPath(pool, block.idChecksum, blockSize);
454
+ await (0, promises_1.writeFile)(filePath, Buffer.from(block.data));
455
+ // Create metadata with pool association
456
+ const metadata = (0, brightchain_lib_1.createDefaultBlockMetadata)(keyHex, block.data.length, keyHex, undefined, pool);
457
+ await this.metadataStore.create(metadata);
458
+ }
459
+ }
460
+ /**
461
+ * Check if a block's raw data on disk looks like a CBL block.
462
+ * Checks for the BrightChain structured block magic prefix and CBL-type structured block types.
463
+ * @param data - The raw block data
464
+ * @returns true if the data appears to be a CBL block
465
+ */
466
+ isCblBlock(data) {
467
+ if (data.length < 4) {
468
+ return false;
469
+ }
470
+ if (data[0] !== brightchain_lib_1.BLOCK_HEADER.MAGIC_PREFIX) {
471
+ return false;
472
+ }
473
+ const structuredType = data[1];
474
+ return (structuredType === brightchain_lib_1.StructuredBlockType.CBL ||
475
+ structuredType === brightchain_lib_1.StructuredBlockType.ExtendedCBL ||
476
+ structuredType === brightchain_lib_1.StructuredBlockType.MessageCBL ||
477
+ structuredType === brightchain_lib_1.StructuredBlockType.SuperCBL ||
478
+ structuredType === brightchain_lib_1.StructuredBlockType.VaultCBL);
479
+ }
480
+ /**
481
+ * Extract CBL addresses from raw block data using the CBLService.
482
+ * @param data - The raw CBL block data
483
+ * @param cblService - The CBLService instance to use for parsing
484
+ * @returns Array of checksums referenced by the CBL, or null if unparseable/encrypted
485
+ */
486
+ extractCblAddresses(data, cblService) {
487
+ try {
488
+ // Skip encrypted CBLs — we can't parse their addresses
489
+ if (cblService.isEncrypted(data)) {
490
+ return null;
491
+ }
492
+ // SuperCBLs store sub-CBL checksums, not data block addresses
493
+ if (cblService.isSuperCbl(data)) {
494
+ return cblService.getSuperCblSubCblChecksums(data);
495
+ }
496
+ // Regular/Extended/Message/Vault CBLs use addressDataToAddresses
497
+ return cblService.addressDataToAddresses(data);
498
+ }
499
+ catch {
500
+ // If parsing fails for any reason, skip this block
501
+ return null;
502
+ }
503
+ }
504
+ /**
505
+ * Collect all block hashes stored in a specific pool on disk.
506
+ * Walks the pool directory structure: storePath/blockSize/pool/XX/YY/hash
507
+ * @param poolPath - The root directory for the pool (storePath/blockSize/pool)
508
+ * @returns Set of block hash hex strings found in the pool
509
+ */
510
+ async collectPoolBlockHashes(poolPath) {
511
+ const hashes = new Set();
512
+ if (!(0, fs_1.existsSync)(poolPath)) {
513
+ return hashes;
514
+ }
515
+ const firstLevelDirs = await (0, promises_1.readdir)(poolPath);
516
+ for (const firstDir of firstLevelDirs) {
517
+ const firstLevelPath = (0, path_1.join)(poolPath, firstDir);
518
+ const firstStat = await (0, promises_1.stat)(firstLevelPath);
519
+ if (!firstStat.isDirectory())
520
+ continue;
521
+ const secondLevelDirs = await (0, promises_1.readdir)(firstLevelPath);
522
+ for (const secondDir of secondLevelDirs) {
523
+ const secondLevelPath = (0, path_1.join)(firstLevelPath, secondDir);
524
+ const secondStat = await (0, promises_1.stat)(secondLevelPath);
525
+ if (!secondStat.isDirectory())
526
+ continue;
527
+ const files = await (0, promises_1.readdir)(secondLevelPath);
528
+ for (const file of files) {
529
+ // Exclude metadata and parity files
530
+ if (!file.endsWith('.m.json') &&
531
+ !file.includes(PARITY_FILE_EXTENSION_PREFIX)) {
532
+ hashes.add(file);
533
+ }
534
+ }
535
+ }
536
+ }
537
+ return hashes;
538
+ }
539
+ /**
540
+ * Check whether a pool can be safely deleted by scanning CBLs in other pools
541
+ * for cross-pool XOR dependencies.
542
+ *
543
+ * Walks the disk directory structure for all block sizes, finds CBL-type blocks
544
+ * in pools other than the target, parses their addresses, and checks if any
545
+ * reference blocks stored in the target pool.
546
+ *
547
+ * @param pool - The pool to validate for deletion
548
+ * @returns Validation result with dependency details if unsafe
549
+ */
550
+ async validatePoolDeletion(pool) {
551
+ (0, brightchain_lib_1.validatePoolId)(pool);
552
+ // 1. Collect all block hashes in the target pool across all block sizes
553
+ const targetPoolHashes = new Set();
554
+ const blockSizes = Object.values(brightchain_lib_1.BlockSize).filter((v) => typeof v === 'number');
555
+ for (const size of blockSizes) {
556
+ const blockSizeString = (0, brightchain_lib_1.blockSizeToSizeString)(size);
557
+ const poolPath = (0, path_1.join)(this._storePath, blockSizeString, pool);
558
+ const hashes = await this.collectPoolBlockHashes(poolPath);
559
+ for (const hash of hashes) {
560
+ targetPoolHashes.add(hash);
561
+ }
562
+ }
563
+ // If the target pool is empty, it's trivially safe to delete
564
+ if (targetPoolHashes.size === 0) {
565
+ return { safe: true, dependentPools: [], referencedBlocks: [] };
566
+ }
567
+ // 2. Get a CBLService instance from the global service provider
568
+ let cblService = null;
569
+ try {
570
+ const provider = (0, brightchain_lib_1.getGlobalServiceProvider)();
571
+ cblService = provider.cblService;
572
+ }
573
+ catch {
574
+ // Global service provider not initialized — cannot parse CBLs.
575
+ // Return safe=true since we can't determine dependencies without the service.
576
+ return { safe: true, dependentPools: [], referencedBlocks: [] };
577
+ }
578
+ // 3. Scan all blocks in OTHER pools for CBL-type blocks
579
+ const dependentPoolsSet = new Set();
580
+ const referencedBlocksSet = new Set();
581
+ for (const size of blockSizes) {
582
+ const blockSizeString = (0, brightchain_lib_1.blockSizeToSizeString)(size);
583
+ const blockSizeDir = (0, path_1.join)(this._storePath, blockSizeString);
584
+ if (!(0, fs_1.existsSync)(blockSizeDir))
585
+ continue;
586
+ // List all pool directories under this block size
587
+ const poolDirs = await (0, promises_1.readdir)(blockSizeDir);
588
+ for (const otherPool of poolDirs) {
589
+ // Skip the target pool itself and non-directory entries
590
+ if (otherPool === pool)
591
+ continue;
592
+ const otherPoolPath = (0, path_1.join)(blockSizeDir, otherPool);
593
+ const otherPoolStat = await (0, promises_1.stat)(otherPoolPath);
594
+ if (!otherPoolStat.isDirectory())
595
+ continue;
596
+ // Walk the other pool's directory structure looking for CBL blocks
597
+ const firstLevelDirs = await (0, promises_1.readdir)(otherPoolPath);
598
+ for (const firstDir of firstLevelDirs) {
599
+ const firstLevelPath = (0, path_1.join)(otherPoolPath, firstDir);
600
+ const firstStat = await (0, promises_1.stat)(firstLevelPath);
601
+ if (!firstStat.isDirectory())
602
+ continue;
603
+ const secondLevelDirs = await (0, promises_1.readdir)(firstLevelPath);
604
+ for (const secondDir of secondLevelDirs) {
605
+ const secondLevelPath = (0, path_1.join)(firstLevelPath, secondDir);
606
+ const secondStat = await (0, promises_1.stat)(secondLevelPath);
607
+ if (!secondStat.isDirectory())
608
+ continue;
609
+ const files = await (0, promises_1.readdir)(secondLevelPath);
610
+ for (const file of files) {
611
+ // Skip metadata and parity files
612
+ if (file.endsWith('.m.json') ||
613
+ file.includes(PARITY_FILE_EXTENSION_PREFIX)) {
614
+ continue;
615
+ }
616
+ // Read the block data and check if it's a CBL
617
+ const filePath = (0, path_1.join)(secondLevelPath, file);
618
+ let data;
619
+ try {
620
+ data = await (0, promises_1.readFile)(filePath);
621
+ }
622
+ catch {
623
+ continue; // Skip unreadable files
624
+ }
625
+ if (!this.isCblBlock(data)) {
626
+ continue;
627
+ }
628
+ // Try to parse addresses from this CBL
629
+ const addresses = this.extractCblAddresses(data, cblService);
630
+ if (addresses === null) {
631
+ continue; // Encrypted or unparseable — skip
632
+ }
633
+ // Check if any addresses reference blocks in the target pool
634
+ for (const address of addresses) {
635
+ const addressHex = address.toHex();
636
+ if (targetPoolHashes.has(addressHex)) {
637
+ dependentPoolsSet.add(otherPool);
638
+ referencedBlocksSet.add(addressHex);
639
+ }
640
+ }
641
+ }
642
+ }
643
+ }
644
+ }
645
+ }
646
+ const dependentPools = Array.from(dependentPoolsSet);
647
+ const referencedBlocks = Array.from(referencedBlocksSet);
648
+ const safe = dependentPools.length === 0;
649
+ return { safe, dependentPools, referencedBlocks };
650
+ }
651
+ /**
652
+ * Delete a pool without checking for cross-pool dependencies.
653
+ * Removes the pool's directory under each block size directory.
654
+ * For administrative use only.
655
+ * @param pool - The pool to force-delete
656
+ */
657
+ async forceDeletePool(pool) {
658
+ (0, brightchain_lib_1.validatePoolId)(pool);
659
+ const blockSizes = Object.values(brightchain_lib_1.BlockSize).filter((v) => typeof v === 'number');
660
+ for (const size of blockSizes) {
661
+ const blockSizeString = (0, brightchain_lib_1.blockSizeToSizeString)(size);
662
+ const poolPath = (0, path_1.join)(this._storePath, blockSizeString, pool);
663
+ if ((0, fs_1.existsSync)(poolPath)) {
664
+ (0, fs_1.rmSync)(poolPath, { recursive: true, force: true });
665
+ }
666
+ }
667
+ }
668
+ /**
669
+ * Delete a pool after validating that no other pool depends on its blocks.
670
+ * Calls validatePoolDeletion first and throws PoolDeletionError if unsafe.
671
+ * @param pool - The pool to delete
672
+ * @throws PoolDeletionError if cross-pool dependencies exist
673
+ */
674
+ async deletePool(pool) {
675
+ (0, brightchain_lib_1.validatePoolId)(pool);
676
+ // Pre-deletion validation
677
+ const validation = await this.validatePoolDeletion(pool);
678
+ if (!validation.safe) {
679
+ throw new brightchain_lib_1.PoolDeletionError(`Cannot delete pool "${pool}": ${validation.dependentPools.length} dependent pool(s) ` +
680
+ `reference ${validation.referencedBlocks.length} block(s). ` +
681
+ `Dependent pools: ${validation.dependentPools.join(', ')}. ` +
682
+ `Use forceDeletePool() to bypass this check.`, validation);
683
+ }
684
+ // Proceed with deletion
685
+ await this.forceDeletePool(pool);
686
+ }
400
687
  /**
401
688
  * Store raw data with a key (convenience method)
402
689
  * Creates a RawDataBlock and stores it