@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.
- package/package.json +5 -5
- package/src/index.d.ts +3 -0
- package/src/index.d.ts.map +1 -1
- package/src/index.js +5 -0
- package/src/index.js.map +1 -1
- package/src/lib/application.d.ts +1 -0
- package/src/lib/application.d.ts.map +1 -1
- package/src/lib/application.js +23 -0
- package/src/lib/application.js.map +1 -1
- package/src/lib/auth/aclEnforcedAvailability.d.ts +57 -0
- package/src/lib/auth/aclEnforcedAvailability.d.ts.map +1 -0
- package/src/lib/auth/aclEnforcedAvailability.js +87 -0
- package/src/lib/auth/aclEnforcedAvailability.js.map +1 -0
- package/src/lib/auth/aclEnforcedBlockStore.d.ts +66 -0
- package/src/lib/auth/aclEnforcedBlockStore.d.ts.map +1 -0
- package/src/lib/auth/aclEnforcedBlockStore.js +83 -0
- package/src/lib/auth/aclEnforcedBlockStore.js.map +1 -0
- package/src/lib/auth/ecdsaNodeAuthenticator.d.ts +46 -0
- package/src/lib/auth/ecdsaNodeAuthenticator.d.ts.map +1 -0
- package/src/lib/auth/ecdsaNodeAuthenticator.js +110 -0
- package/src/lib/auth/ecdsaNodeAuthenticator.js.map +1 -0
- package/src/lib/auth/index.d.ts +7 -0
- package/src/lib/auth/index.d.ts.map +1 -0
- package/src/lib/auth/index.js +13 -0
- package/src/lib/auth/index.js.map +1 -0
- package/src/lib/auth/poolAclBootstrap.d.ts +36 -0
- package/src/lib/auth/poolAclBootstrap.d.ts.map +1 -0
- package/src/lib/auth/poolAclBootstrap.js +64 -0
- package/src/lib/auth/poolAclBootstrap.js.map +1 -0
- package/src/lib/auth/poolAclStore.d.ts +77 -0
- package/src/lib/auth/poolAclStore.d.ts.map +1 -0
- package/src/lib/auth/poolAclStore.js +189 -0
- package/src/lib/auth/poolAclStore.js.map +1 -0
- package/src/lib/auth/poolAclUpdater.d.ts +79 -0
- package/src/lib/auth/poolAclUpdater.d.ts.map +1 -0
- package/src/lib/auth/poolAclUpdater.js +144 -0
- package/src/lib/auth/poolAclUpdater.js.map +1 -0
- package/src/lib/availability/availabilityService.d.ts +2 -2
- package/src/lib/availability/availabilityService.d.ts.map +1 -1
- package/src/lib/availability/availabilityService.js +12 -5
- package/src/lib/availability/availabilityService.js.map +1 -1
- package/src/lib/availability/blockRegistry.d.ts +45 -3
- package/src/lib/availability/blockRegistry.d.ts.map +1 -1
- package/src/lib/availability/blockRegistry.js +123 -5
- package/src/lib/availability/blockRegistry.js.map +1 -1
- package/src/lib/availability/discoveryProtocol.d.ts +30 -1
- package/src/lib/availability/discoveryProtocol.d.ts.map +1 -1
- package/src/lib/availability/discoveryProtocol.js +76 -0
- package/src/lib/availability/discoveryProtocol.js.map +1 -1
- package/src/lib/availability/gossipService.d.ts +45 -6
- package/src/lib/availability/gossipService.d.ts.map +1 -1
- package/src/lib/availability/gossipService.js +177 -5
- package/src/lib/availability/gossipService.js.map +1 -1
- package/src/lib/availability/reconciliationService.d.ts +88 -1
- package/src/lib/availability/reconciliationService.d.ts.map +1 -1
- package/src/lib/availability/reconciliationService.js +246 -48
- package/src/lib/availability/reconciliationService.js.map +1 -1
- package/src/lib/blockFetch/blockFetcher.d.ts +100 -0
- package/src/lib/blockFetch/blockFetcher.d.ts.map +1 -0
- package/src/lib/blockFetch/blockFetcher.js +279 -0
- package/src/lib/blockFetch/blockFetcher.js.map +1 -0
- package/src/lib/blockFetch/fetchQueue.d.ts +88 -0
- package/src/lib/blockFetch/fetchQueue.d.ts.map +1 -0
- package/src/lib/blockFetch/fetchQueue.js +204 -0
- package/src/lib/blockFetch/fetchQueue.js.map +1 -0
- package/src/lib/blockFetch/httpBlockFetchTransport.d.ts +65 -0
- package/src/lib/blockFetch/httpBlockFetchTransport.d.ts.map +1 -0
- package/src/lib/blockFetch/httpBlockFetchTransport.js +104 -0
- package/src/lib/blockFetch/httpBlockFetchTransport.js.map +1 -0
- package/src/lib/blockFetch/index.d.ts +10 -0
- package/src/lib/blockFetch/index.d.ts.map +1 -0
- package/src/lib/blockFetch/index.js +13 -0
- package/src/lib/blockFetch/index.js.map +1 -0
- package/src/lib/controllers/api/brightpass.d.ts +72 -0
- package/src/lib/controllers/api/brightpass.d.ts.map +1 -0
- package/src/lib/controllers/api/brightpass.js +577 -0
- package/src/lib/controllers/api/brightpass.js.map +1 -0
- package/src/lib/controllers/api/channels.d.ts +122 -0
- package/src/lib/controllers/api/channels.d.ts.map +1 -0
- package/src/lib/controllers/api/channels.js +701 -0
- package/src/lib/controllers/api/channels.js.map +1 -0
- package/src/lib/controllers/api/conversations.d.ts +89 -0
- package/src/lib/controllers/api/conversations.d.ts.map +1 -0
- package/src/lib/controllers/api/conversations.js +259 -0
- package/src/lib/controllers/api/conversations.js.map +1 -0
- package/src/lib/controllers/api/emails.d.ts +122 -0
- package/src/lib/controllers/api/emails.d.ts.map +1 -0
- package/src/lib/controllers/api/emails.js +494 -0
- package/src/lib/controllers/api/emails.js.map +1 -0
- package/src/lib/controllers/api/explodingMessages.d.ts +79 -0
- package/src/lib/controllers/api/explodingMessages.d.ts.map +1 -0
- package/src/lib/controllers/api/explodingMessages.js +378 -0
- package/src/lib/controllers/api/explodingMessages.js.map +1 -0
- package/src/lib/controllers/api/groups.d.ts +94 -0
- package/src/lib/controllers/api/groups.d.ts.map +1 -0
- package/src/lib/controllers/api/groups.js +484 -0
- package/src/lib/controllers/api/groups.js.map +1 -0
- package/src/lib/controllers/api/index.d.ts +6 -0
- package/src/lib/controllers/api/index.d.ts.map +1 -1
- package/src/lib/controllers/api/index.js +6 -0
- package/src/lib/controllers/api/index.js.map +1 -1
- package/src/lib/controllers/api/messages.d.ts.map +1 -1
- package/src/lib/controllers/api/messages.js +2 -1
- package/src/lib/controllers/api/messages.js.map +1 -1
- package/src/lib/controllers/api/sync.d.ts +38 -2
- package/src/lib/controllers/api/sync.d.ts.map +1 -1
- package/src/lib/controllers/api/sync.js +89 -0
- package/src/lib/controllers/api/sync.js.map +1 -1
- package/src/lib/controllers/crypto/gitController.d.ts +70 -0
- package/src/lib/controllers/crypto/gitController.d.ts.map +1 -0
- package/src/lib/controllers/crypto/gitController.js +306 -0
- package/src/lib/controllers/crypto/gitController.js.map +1 -0
- package/src/lib/controllers/crypto/index.d.ts +3 -0
- package/src/lib/controllers/crypto/index.d.ts.map +1 -0
- package/src/lib/controllers/crypto/index.js +6 -0
- package/src/lib/controllers/crypto/index.js.map +1 -0
- package/src/lib/controllers/crypto/walletController.d.ts +64 -0
- package/src/lib/controllers/crypto/walletController.d.ts.map +1 -0
- package/src/lib/controllers/crypto/walletController.js +260 -0
- package/src/lib/controllers/crypto/walletController.js.map +1 -0
- package/src/lib/controllers/identity/deviceController.d.ts +96 -0
- package/src/lib/controllers/identity/deviceController.d.ts.map +1 -0
- package/src/lib/controllers/identity/deviceController.js +355 -0
- package/src/lib/controllers/identity/deviceController.js.map +1 -0
- package/src/lib/controllers/identity/directoryController.d.ts +75 -0
- package/src/lib/controllers/identity/directoryController.d.ts.map +1 -0
- package/src/lib/controllers/identity/directoryController.js +288 -0
- package/src/lib/controllers/identity/directoryController.js.map +1 -0
- package/src/lib/controllers/identity/identityProofController.d.ts +94 -0
- package/src/lib/controllers/identity/identityProofController.d.ts.map +1 -0
- package/src/lib/controllers/identity/identityProofController.js +454 -0
- package/src/lib/controllers/identity/identityProofController.js.map +1 -0
- package/src/lib/controllers/identity/index.d.ts +4 -0
- package/src/lib/controllers/identity/index.d.ts.map +1 -0
- package/src/lib/controllers/identity/index.js +7 -0
- package/src/lib/controllers/identity/index.js.map +1 -0
- package/src/lib/controllers/index.d.ts +2 -0
- package/src/lib/controllers/index.d.ts.map +1 -1
- package/src/lib/controllers/index.js +2 -0
- package/src/lib/controllers/index.js.map +1 -1
- package/src/lib/encryption/encryptedMetadataService.d.ts +87 -0
- package/src/lib/encryption/encryptedMetadataService.d.ts.map +1 -0
- package/src/lib/encryption/encryptedMetadataService.js +224 -0
- package/src/lib/encryption/encryptedMetadataService.js.map +1 -0
- package/src/lib/encryption/encryptionAwareReplication.d.ts +76 -0
- package/src/lib/encryption/encryptionAwareReplication.d.ts.map +1 -0
- package/src/lib/encryption/encryptionAwareReplication.js +116 -0
- package/src/lib/encryption/encryptionAwareReplication.js.map +1 -0
- package/src/lib/encryption/errors.d.ts +49 -0
- package/src/lib/encryption/errors.d.ts.map +1 -0
- package/src/lib/encryption/errors.js +80 -0
- package/src/lib/encryption/errors.js.map +1 -0
- package/src/lib/encryption/index.d.ts +6 -0
- package/src/lib/encryption/index.d.ts.map +1 -0
- package/src/lib/encryption/index.js +9 -0
- package/src/lib/encryption/index.js.map +1 -0
- package/src/lib/encryption/poolEncryptionService.d.ts +94 -0
- package/src/lib/encryption/poolEncryptionService.d.ts.map +1 -0
- package/src/lib/encryption/poolEncryptionService.js +252 -0
- package/src/lib/encryption/poolEncryptionService.js.map +1 -0
- package/src/lib/encryption/poolKeyManager.d.ts +82 -0
- package/src/lib/encryption/poolKeyManager.d.ts.map +1 -0
- package/src/lib/encryption/poolKeyManager.js +156 -0
- package/src/lib/encryption/poolKeyManager.js.map +1 -0
- package/src/lib/environment.d.ts +3 -0
- package/src/lib/environment.d.ts.map +1 -1
- package/src/lib/environment.js +5 -0
- package/src/lib/environment.js.map +1 -1
- package/src/lib/interfaces/environment.d.ts +7 -1
- package/src/lib/interfaces/environment.d.ts.map +1 -1
- package/src/lib/interfaces/index.d.ts +0 -1
- package/src/lib/interfaces/index.d.ts.map +1 -1
- package/src/lib/interfaces/requests/getBlockDataRequest.d.ts +12 -0
- package/src/lib/interfaces/requests/getBlockDataRequest.d.ts.map +1 -0
- package/src/lib/interfaces/{blockStore.js → requests/getBlockDataRequest.js} +1 -1
- package/src/lib/interfaces/requests/getBlockDataRequest.js.map +1 -0
- package/src/lib/interfaces/requests/index.d.ts +1 -0
- package/src/lib/interfaces/requests/index.d.ts.map +1 -1
- package/src/lib/routers/api.d.ts +54 -1
- package/src/lib/routers/api.d.ts.map +1 -1
- package/src/lib/routers/api.js +77 -0
- package/src/lib/routers/api.js.map +1 -1
- package/src/lib/services/blockStore.d.ts +5 -2
- package/src/lib/services/blockStore.d.ts.map +1 -1
- package/src/lib/services/blockStore.js +4 -0
- package/src/lib/services/blockStore.js.map +1 -1
- package/src/lib/services/brightpass/auditLogger.d.ts +77 -0
- package/src/lib/services/brightpass/auditLogger.d.ts.map +1 -0
- package/src/lib/services/brightpass/auditLogger.js +184 -0
- package/src/lib/services/brightpass/auditLogger.js.map +1 -0
- package/src/lib/services/brightpass/vaultEncryption.d.ts +82 -0
- package/src/lib/services/brightpass/vaultEncryption.d.ts.map +1 -0
- package/src/lib/services/brightpass/vaultEncryption.js +144 -0
- package/src/lib/services/brightpass/vaultEncryption.js.map +1 -0
- package/src/lib/services/brightpass.d.ts +294 -0
- package/src/lib/services/brightpass.d.ts.map +1 -0
- package/src/lib/services/brightpass.js +1260 -0
- package/src/lib/services/brightpass.js.map +1 -0
- package/src/lib/services/eventNotificationSystem.d.ts +69 -3
- package/src/lib/services/eventNotificationSystem.d.ts.map +1 -1
- package/src/lib/services/eventNotificationSystem.js +200 -0
- package/src/lib/services/eventNotificationSystem.js.map +1 -1
- package/src/lib/services/expirationScheduler.d.ts +90 -0
- package/src/lib/services/expirationScheduler.d.ts.map +1 -0
- package/src/lib/services/expirationScheduler.js +131 -0
- package/src/lib/services/expirationScheduler.js.map +1 -0
- package/src/lib/services/fecUsageExample.d.ts +2 -2
- package/src/lib/services/index.d.ts +2 -0
- package/src/lib/services/index.d.ts.map +1 -1
- package/src/lib/services/index.js +2 -0
- package/src/lib/services/index.js.map +1 -1
- package/src/lib/services/paginationService.d.ts +18 -0
- package/src/lib/services/paginationService.d.ts.map +1 -0
- package/src/lib/services/paginationService.js +32 -0
- package/src/lib/services/paginationService.js.map +1 -0
- package/src/lib/services/presenceService.d.ts +76 -0
- package/src/lib/services/presenceService.d.ts.map +1 -0
- package/src/lib/services/presenceService.js +143 -0
- package/src/lib/services/presenceService.js.map +1 -0
- package/src/lib/services/wireConversationPromotion.d.ts +23 -0
- package/src/lib/services/wireConversationPromotion.d.ts.map +1 -0
- package/src/lib/services/wireConversationPromotion.js +26 -0
- package/src/lib/services/wireConversationPromotion.js.map +1 -0
- package/src/lib/stores/availabilityAwareBlockStore.d.ts +115 -10
- package/src/lib/stores/availabilityAwareBlockStore.d.ts.map +1 -1
- package/src/lib/stores/availabilityAwareBlockStore.js +267 -23
- package/src/lib/stores/availabilityAwareBlockStore.js.map +1 -1
- package/src/lib/stores/diskBlockAsyncStore.d.ts +81 -2
- package/src/lib/stores/diskBlockAsyncStore.d.ts.map +1 -1
- package/src/lib/stores/diskBlockAsyncStore.js +297 -10
- package/src/lib/stores/diskBlockAsyncStore.js.map +1 -1
- package/src/lib/utils/communicationValidation.d.ts +44 -0
- package/src/lib/utils/communicationValidation.d.ts.map +1 -0
- package/src/lib/utils/communicationValidation.js +291 -0
- package/src/lib/utils/communicationValidation.js.map +1 -0
- package/src/lib/utils/emailValidation.d.ts +19 -0
- package/src/lib/utils/emailValidation.d.ts.map +1 -0
- package/src/lib/utils/emailValidation.js +232 -0
- package/src/lib/utils/emailValidation.js.map +1 -0
- package/src/lib/interfaces/blockStore.d.ts +0 -7
- package/src/lib/interfaces/blockStore.d.ts.map +0 -1
- 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":";AAAA;;;;;;;;GAQG;;;AAEH,kEAgCsC;AAEtC,kEAAkE;AAClE,gEAA0E;AAAjE,6HAAA,0BAA0B,OAAA;AAEnC;;;GAGG;AACH,MAAa,kBAAmB,SAAQ,KAAK;IAC3C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF;AALD,gDAKC;AAgED;;GAEG;AACU,QAAA,6CAA6C,GACxD;IACE,WAAW,EAAE,EAAE;IACf,YAAY,EAAE,IAAI;IAClB,WAAW,EAAE,IAAI;IACjB,kBAAkB,EAAE,6BAAW,CAAC,KAAK;IACrC,kBAAkB,EAAE,SAAS;IAC7B,gBAAgB,EAAE,SAAS;IAC3B,eAAe,EAAE,0CAAwB;CAC1C,CAAC;AAEJ;;;;;;;;;;;;;;GAcG;AACH,MAAa,2BAA2B;IA2CtC;;;;;;;;;;OAUG;IACH,YACE,UAAuB,EACvB,QAAwB,EACxB,mBAAyC,EACzC,aAA6B,EAC7B,qBAA6C,EAC7C,MAAyC,EACzC,YAA4B;QAxB9B;;;WAGG;QACc,eAAU,GAAwC,IAAI,GAAG,EAAE,CAAC;QAsB3E,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;QAC/C,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,qBAAqB,GAAG,qBAAqB,CAAC;QACnD,IAAI,CAAC,MAAM,GAAG;YACZ,GAAG,qDAA6C;YAChD,GAAG,MAAM;SACV,CAAC;QACF,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;IAED;;OAEG;IACH,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;IACnC,CAAC;IAED,gCAAgC;IAEhC;;;;;OAKG;IACH,KAAK,CAAC,GAAG,CAAC,GAAsB;QAC9B,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;IAED;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,KAAK,CAAC,OAAO,CACX,GAAa,EACb,WAAyB;QAEzB,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACnC,MAAM,OAAO,GAAG,WAAW,IAAI,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC;QAE9D,4EAA4E;QAC5E,wFAAwF;QACxF,mEAAmE;QACnE,IAAI,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,EAAE,EAAE,CAAC;YACjD,MAAM,KAAK,GACT,MAAM,IAAI,CAAC,mBAAmB,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;YAC/D,IAAI,KAAK,KAAK,mCAAiB,CAAC,MAAM,EAAE,CAAC;gBACvC,MAAM,IAAI,kBAAkB,CAC1B,8BAA8B,OAAO,wBAAwB,CAC9D,CAAC;YACJ,CAAC;QACH,CAAC;QAED,gCAAgC;QAChC,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAEjD,gDAAgD;YAChD,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;gBAC5B,MAAM,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;YAC3C,CAAC;YAED,OAAO,KAAK,CAAC;QACf,CAAC;QAAC,MAAM,CAAC;YACP,+DAA+D;QACjE,CAAC;QAED,6DAA6D;QAC7D,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAE3E,mCAAmC;QACnC,IAAI,OAAO,KAAK,6BAAW,CAAC,KAAK,EAAE,CAAC;YAClC,sDAAsD;YACtD,MAAM,IAAI,KAAK,CAAC,SAAS,OAAO,8BAA8B,KAAK,GAAG,CAAC,CAAC;QAC1E,CAAC;QAED,iEAAiE;QACjE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CACb,SAAS,OAAO,8DAA8D,KAAK,GAAG,CACvF,CAAC;QACJ,CAAC;QAED,6CAA6C;QAC7C,IAAI,KAAK,KAAK,mCAAiB,CAAC,MAAM,EAAE,CAAC;YACvC,MAAM,IAAI,KAAK,CAAC,SAAS,OAAO,sBAAsB,KAAK,GAAG,CAAC,CAAC;QAClE,CAAC;QAED,IAAI,OAAO,KAAK,6BAAW,CAAC,UAAU,EAAE,CAAC;YACvC,OAAO,IAAI,CAAC,oBAAoB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACjD,CAAC;QAED,wBAAwB;QACxB,OAAO,IAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAChD,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,oBAAoB,CAChC,GAAa,EACb,OAAe;QAEf,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAa,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAE5D,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,aAAa,GAAG,IAAI,CAAC,YAAa,CAAC,SAAS,EAAE,CAAC;YACrD,MAAM,IAAI,mCAAiB,CAAC,OAAO,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC;QACrE,CAAC;QAED,6DAA6D;QAC7D,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,IAAK,CAAC,CAAC;QACjD,MAAM,IAAI,CAAC,mBAAmB,CAAC,oBAAoB,CACjD,OAAO,EACP,mCAAiB,CAAC,MAAM,CACzB,CAAC;QAEF,gDAAgD;QAChD,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;YAC5B,MAAM,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAC3C,CAAC;QAED,6DAA6D;QAC7D,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACtC,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,mBAAmB,CAC/B,GAAa,EACb,OAAe;QAEf,MAAM,aAAa,GAAG,IAAI,CAAC,YAAa,CAAC,SAAS,EAAE,CAAC;QACrD,MAAM,aAAa,GAAG,aAAa,CAAC,aAAa,CAAC;QAElD,MAAM,YAAY,GAAG,IAAI,CAAC,YAAa,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAE5D,kDAAkD;QAClD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC;YAChC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,QAAiB,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;YACjE,IAAI,OAAO,CAAsB,CAAC,OAAO,EAAE,EAAE,CAC3C,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,aAAa,CAAC,CAC9D;SACF,CAAC,CAAC;QAEH,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC9B,0DAA0D;YAC1D,MAAM,SAAS,GACb,MAAM,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;YAC5D,MAAM,IAAI,mCAAiB,CACzB,OAAO,EACP,mCAAiB,CAAC,MAAM,EACxB,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CACnC,CAAC;QACJ,CAAC;QAED,uCAAuC;QACvC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;YAC1B,0FAA0F;YAC1F,MAAM,SAAS,GACb,MAAM,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;YAC5D,MAAM,IAAI,mCAAiB,CACzB,OAAO,EACP,mCAAiB,CAAC,MAAM,EACxB,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CACnC,CAAC;QACJ,CAAC;QAED,6DAA6D;QAC7D,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,IAAK,CAAC,CAAC;QACvD,MAAM,IAAI,CAAC,mBAAmB,CAAC,oBAAoB,CACjD,OAAO,EACP,mCAAiB,CAAC,MAAM,CACzB,CAAC;QAEF,gDAAgD;QAChD,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;YAC5B,MAAM,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAC3C,CAAC;QAED,wCAAwC;QACxC,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACtC,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,OAAO,CACX,KAAmB,EACnB,OAA2B;QAE3B,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAEhD,uDAAuD;QACvD,kEAAkE;QAClE,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACpE,MAAM,MAAM,GAAuB,gBAAgB,EAAE,MAAM,CAAC;QAE5D,+CAA+C;QAC/C,IAAI,MAAM,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC;YACxC,MAAM,IAAI,4CAA0B,CAAC,MAAM,CAAC,CAAC;QAC/C,CAAC;QAED,6BAA6B;QAC7B,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAE9C,qEAAqE;QACrE,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAClE,MAAM,cAAc,GAAuB,MAAM,IAAI,cAAc,EAAE,MAAM,CAAC;QAE5E,yFAAyF;QACzF,IAAI,cAAc,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,EAAE,CAAC;YACnE,MAAM,IAAI,4CAA0B,CAAC,cAAc,CAAC,CAAC;QACvD,CAAC;QAED,oCAAoC;QACpC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;QAEhD,qCAAqC;QACrC,MAAM,IAAI,CAAC,mBAAmB,CAAC,oBAAoB,CACjD,OAAO,EACP,mCAAiB,CAAC,KAAK,CACxB,CAAC;QAEF,6CAA6C;QAC7C,MAAM,cAAc,GAAoB;YACtC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW;YAC/B,QAAQ,EAAE,IAAI,IAAI,EAAE;YACpB,eAAe,EAAE,IAAI;YACrB,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACtD,CAAC;QACF,MAAM,IAAI,CAAC,mBAAmB,CAAC,cAAc,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;QAEvE,oDAAoD;QACpD,IAAI,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,EAAE,EAAE,CAAC;YACjD,MAAM,QAAQ,GAAoB;gBAChC,IAAI,EAAE,OAAO;gBACb,OAAO;gBACP,SAAS,EAAE,IAAI,IAAI,EAAE;gBACrB,IAAI,EAAE,KAAK,CAAC,IAAI;aACjB,CAAC;YACF,IAAI,CAAC,qBAAqB,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;QAC7D,CAAC;aAAM,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;YACpC,mDAAmD;YACnD,MAAM,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;QAClE,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,UAAU,CAAC,GAAa;QAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAEnC,uCAAuC;QACvC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAC5D,MAAM,MAAM,GAAuB,QAAQ,EAAE,MAAM,CAAC;QAEpD,gCAAgC;QAChC,MAAM,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QAEtC,kBAAkB;QAClB,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAEnC,wBAAwB;QACxB,MAAM,IAAI,CAAC,mBAAmB,CAAC,cAAc,CAC3C,OAAO,EACP,IAAI,CAAC,MAAM,CAAC,WAAW,CACxB,CAAC;QAEF,oDAAoD;QACpD,IAAI,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,EAAE,EAAE,CAAC;YACjD,MAAM,QAAQ,GAAoB;gBAChC,IAAI,EAAE,QAAQ;gBACd,OAAO;gBACP,SAAS,EAAE,IAAI,IAAI,EAAE;aACtB,CAAC;YACF,IAAI,CAAC,qBAAqB,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;QAC7D,CAAC;aAAM,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;YACpC,2DAA2D;YAC3D,MAAM,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,eAAe,CAAC,KAAa;QACjC,OAAO,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IAChD,CAAC;IAED;;;;;OAKG;IACH,GAAG,CAAsB,QAA2B;QAClD,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAI,QAAQ,CAAC,CAAC;IAC1C,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,GAAG,CACP,GAAsB,EACtB,IAAgB,EAChB,OAA2B;QAE3B,MAAM,WAAW,GAAG,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,0BAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QAC1E,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAE3C,0BAA0B;QAC1B,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QAE9C,kBAAkB;QAClB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAEhC,qCAAqC;QACrC,MAAM,IAAI,CAAC,mBAAmB,CAAC,oBAAoB,CACjD,OAAO,EACP,mCAAiB,CAAC,KAAK,CACxB,CAAC;QAEF,2BAA2B;QAC3B,MAAM,cAAc,GAAoB;YACtC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW;YAC/B,QAAQ,EAAE,IAAI,IAAI,EAAE;YACpB,eAAe,EAAE,IAAI;SACtB,CAAC;QACF,MAAM,IAAI,CAAC,mBAAmB,CAAC,cAAc,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;QAEvE,wBAAwB;QACxB,IAAI,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,EAAE,EAAE,CAAC;YACjD,MAAM,QAAQ,GAAoB;gBAChC,IAAI,EAAE,OAAO;gBACb,OAAO;gBACP,SAAS,EAAE,IAAI,IAAI,EAAE;gBACrB,IAAI,EAAE,IAAI,UAAU,CAAC,IAAI,CAAC;aAC3B,CAAC;YACF,IAAI,CAAC,qBAAqB,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;QAC7D,CAAC;aAAM,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;YACpC,MAAM,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,MAAM,CAAC,GAAsB;QACjC,MAAM,WAAW,GAAG,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,0BAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QAC1E,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;IACrC,CAAC;IAED,8BAA8B;IAE9B;;;;;OAKG;IACH,KAAK,CAAC,WAAW,CAAC,GAAsB;QACtC,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAC1C,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,cAAc,CAClB,GAAsB,EACtB,OAAgC;QAEhC,OAAO,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IACtD,CAAC;IAED,oCAAoC;IAEpC;;;;;;OAMG;IACH,KAAK,CAAC,oBAAoB,CACxB,GAAsB,EACtB,WAAmB;QAEnB,OAAO,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IAChE,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,eAAe,CAAC,GAAsB;QAC1C,OAAO,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;IAC9C,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,YAAY,CAAC,GAAsB;QACvC,OAAO,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IAC3C,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,oBAAoB,CAAC,GAAsB;QAC/C,OAAO,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC;IACnD,CAAC;IAED,iCAAiC;IAEjC;;;;;;;;;OASG;IACH,KAAK,CAAC,2BAA2B;QAC/B,MAAM,gBAAgB,GACpB,MAAM,IAAI,CAAC,UAAU,CAAC,2BAA2B,EAAE,CAAC;QACtD,MAAM,MAAM,GAAe,EAAE,CAAC;QAE9B,KAAK,MAAM,QAAQ,IAAI,gBAAgB,EAAE,CAAC;YACxC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACxC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YAE5D,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;gBACtB,oDAAoD;gBACpD,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACtB,SAAS;YACX,CAAC;YAED,yDAAyD;YACzD,MAAM,SAAS,GACb,MAAM,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;YAC5D,MAAM,gBAAgB,GAAG,IAAI,CAAC,uBAAuB,CACnD,SAAS,EACT,QAAQ,CAAC,MAAM,CAChB,CAAC;YAEF,wEAAwE;YACxE,IAAI,gBAAgB,IAAI,CAAC,EAAE,CAAC;gBAC1B,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACxB,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,wBAAwB;QAC5B,MAAM,wBAAwB,GAC5B,MAAM,IAAI,CAAC,UAAU,CAAC,wBAAwB,EAAE,CAAC;QACnD,MAAM,MAAM,GAAe,EAAE,CAAC;QAE9B,KAAK,MAAM,QAAQ,IAAI,wBAAwB,EAAE,CAAC;YAChD,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACxC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YAE5D,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;gBACtB,oDAAoD;gBACpD,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACtB,SAAS;YACX,CAAC;YAED,yDAAyD;YACzD,MAAM,SAAS,GACb,MAAM,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;YAC5D,MAAM,gBAAgB,GAAG,IAAI,CAAC,uBAAuB,CACnD,SAAS,EACT,QAAQ,CAAC,MAAM,CAChB,CAAC;YAEF,oDAAoD;YACpD,IAAI,gBAAgB,GAAG,QAAQ,CAAC,uBAAuB,EAAE,CAAC;gBACxD,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACxB,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,iBAAiB,CACrB,GAAsB,EACtB,MAAc;QAEd,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAEnC,wBAAwB;QACxB,MAAM,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAErD,2CAA2C;QAC3C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAC5D,MAAM,MAAM,GAAuB,QAAQ,EAAE,MAAM,CAAC;QAEpD,6CAA6C;QAC7C,MAAM,cAAc,GAAoB;YACtC,MAAM;YACN,QAAQ,EAAE,IAAI,IAAI,EAAE;YACpB,eAAe,EAAE,KAAK;YACtB,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC9B,CAAC;QACF,MAAM,IAAI,CAAC,mBAAmB,CAAC,cAAc,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;IACzE,CAAC;IAED;;;;;;;OAOG;IACK,uBAAuB,CAC7B,SAA4B,EAC5B,MAAc;QAEd,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;QAClC,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;YAC5B,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;gBAC1B,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;QACD,OAAO,OAAO,CAAC,IAAI,CAAC;IACtB,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,iBAAiB,CACrB,GAAsB,EACtB,MAAc;QAEd,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAEnC,wBAAwB;QACxB,MAAM,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAErD,kBAAkB;QAClB,MAAM,IAAI,CAAC,mBAAmB,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACjE,CAAC;IAED,qCAAqC;IAErC;;;;;;OAMG;IACH,KAAK,CAAC,aAAa,CACjB,GAAsB,EACtB,gBAAwB;QAExB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;QAE1E,4DAA4D;QAC5D,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;QAEjD,MAAM,IAAI,CAAC,mBAAmB,CAAC,oBAAoB,CACjD,MAAM,CAAC,iBAAiB,EACxB,mCAAiB,CAAC,KAAK,CACxB,CAAC;QAEF,MAAM,cAAc,GAAoB;YACtC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW;YAC/B,QAAQ,EAAE,IAAI,IAAI,EAAE;YACpB,eAAe,EAAE,IAAI;SACtB,CAAC;QACF,MAAM,IAAI,CAAC,mBAAmB,CAAC,cAAc,CAC3C,MAAM,CAAC,iBAAiB,EACxB,cAAc,CACf,CAAC;QAEF,oCAAoC;QACpC,IACE,CAAC,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,EAAE;YAC7C,IAAI,CAAC,MAAM,CAAC,YAAY,EACxB,CAAC;YACD,MAAM,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;QACnE,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,wBAAwB;IAExB;;;;;;;;OAQG;IACH,KAAK,CAAC,kBAAkB,CACtB,MAAc,EACd,YAAoB;QAEpB,mBAAmB;QACnB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE;YAC1B,MAAM;YACN,SAAS,EAAE,IAAI,IAAI,EAAE;YACrB,SAAS,EAAE,IAAI,IAAI,CACjB,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,cAAc,CACxD;YACD,YAAY;SACb,CAAC,CAAC;QAEH,iDAAiD;QACjD,IAAI,IAAA,oCAAkB,EAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YACxC,MAAM,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QAChD,CAAC;QAED,8CAA8C;QAC9C,oEAAoE;QACpE,2EAA2E;QAC3E,2DAA2D;IAC7D,CAAC;IAED,yBAAyB;IAEzB;;;;;;OAMG;IACK,YAAY,CAAC,MAAc;QACjC,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC9C,IAAI,CAAC,SAAS;YAAE,OAAO,KAAK,CAAC;QAC7B,IAAI,IAAI,IAAI,EAAE,GAAG,SAAS,CAAC,SAAS,EAAE,CAAC;YACrC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,mBAAmB;YACnD,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACK,QAAQ,CAAC,GAAsB;QACrC,OAAO,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;IACrD,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,oBAAoB,CAAC,OAAe;QAChD,IAAI,CAAC;YACH,qDAAqD;YACrD,MAAM,cAAc,GAAoB;gBACtC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW;gBAC/B,QAAQ,EAAE,IAAI,IAAI,EAAE;gBACpB,eAAe,EAAE,IAAI;aACtB,CAAC;YACF,MAAM,IAAI,CAAC,mBAAmB,CAAC,cAAc,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;QACzE,CAAC;QAAC,MAAM,CAAC;YACP,yCAAyC;QAC3C,CAAC;IACH,CAAC;IAED,iCAAiC;IAEjC;;;;OAIG;IACH,iBAAiB;QACf,OAAO,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,EAAE,CAAC;IACtD,CAAC;IAED;;;;;OAKG;IACH,aAAa;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED;;;;OAIG;IACH,WAAW;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED;;;;OAIG;IACH,sBAAsB;QACpB,OAAO,IAAI,CAAC,mBAAmB,CAAC;IAClC,CAAC;IAED;;;;OAIG;IACH,gBAAgB;QACd,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED;;;;OAIG;IACH,wBAAwB;QACtB,OAAO,IAAI,CAAC,qBAAqB,CAAC;IACpC,CAAC;IAED;;;;OAIG;IACH,SAAS;QACP,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;IAC5B,CAAC;IAED,mCAAmC;IAEnC;;;;;;;;OAQG;IACH,KAAK,CAAC,qBAAqB,CACzB,OAAmB,EACnB,OAA6B;QAE7B,0BAA0B;QAC1B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,qBAAqB,CACxD,OAAO,EACP,OAAO,CACR,CAAC;QAEF,mDAAmD;QACnD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACxC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAExC,MAAM,IAAI,CAAC,mBAAmB,CAAC,oBAAoB,CACjD,MAAM,CAAC,QAAQ,EACf,mCAAiB,CAAC,KAAK,CACxB,CAAC;QACF,MAAM,IAAI,CAAC,mBAAmB,CAAC,oBAAoB,CACjD,MAAM,CAAC,QAAQ,EACf,mCAAiB,CAAC,KAAK,CACxB,CAAC;QAEF,2CAA2C;QAC3C,MAAM,cAAc,GAAoB;YACtC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW;YAC/B,QAAQ,EAAE,IAAI,IAAI,EAAE;YACpB,eAAe,EAAE,IAAI;SACtB,CAAC;QACF,MAAM,IAAI,CAAC,mBAAmB,CAAC,cAAc,CAC3C,MAAM,CAAC,QAAQ,EACf,cAAc,CACf,CAAC;QACF,MAAM,IAAI,CAAC,mBAAmB,CAAC,cAAc,CAC3C,MAAM,CAAC,QAAQ,EACf,cAAc,CACf,CAAC;QAEF,oCAAoC;QACpC,IAAI,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,EAAE,EAAE,CAAC;YACjD,wCAAwC;YACxC,MAAM,SAAS,GAAoB;gBACjC,IAAI,EAAE,OAAO;gBACb,OAAO,EAAE,MAAM,CAAC,QAAQ;gBACxB,SAAS,EAAE,IAAI,IAAI,EAAE;aACtB,CAAC;YACF,MAAM,SAAS,GAAoB;gBACjC,IAAI,EAAE,OAAO;gBACb,OAAO,EAAE,MAAM,CAAC,QAAQ;gBACxB,SAAS,EAAE,IAAI,IAAI,EAAE;aACtB,CAAC;YACF,IAAI,CAAC,qBAAqB,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC;YAC5D,IAAI,CAAC,qBAAqB,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC;QAC9D,CAAC;aAAM,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;YACpC,6CAA6C;YAC7C,MAAM,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACxD,MAAM,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC1D,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,WAAW,CACf,QAA2B,EAC3B,QAA2B,EAC3B,eAA0B,EAC1B,eAA0B;QAE1B,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACrC,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAErC,mEAAmE;QACnE,IAAI,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,EAAE,EAAE,CAAC;YACjD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;YACzE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;YAEzE,IAAI,MAAM,KAAK,mCAAiB,CAAC,MAAM,EAAE,CAAC;gBACxC,MAAM,IAAI,kBAAkB,CAC1B,8BAA8B,IAAI,wBAAwB,CAC3D,CAAC;YACJ,CAAC;YACD,IAAI,MAAM,KAAK,mCAAiB,CAAC,MAAM,EAAE,CAAC;gBACxC,MAAM,IAAI,kBAAkB,CAC1B,8BAA8B,IAAI,wBAAwB,CAC3D,CAAC;YACJ,CAAC;QACH,CAAC;QAED,0BAA0B;QAC1B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,CAC/C,QAAQ,EACR,QAAQ,EACR,eAAe,EACf,eAAe,CAChB,CAAC;QAEF,gDAAgD;QAChD,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;YAC5B,MAAM,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;YACtC,MAAM,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;QACxC,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;;;;;OAOG;IACH,iBAAiB,CAAC,SAAiB;QACjC,OAAO,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;IACtD,CAAC;IAED;;;;;;;;;;;OAWG;IACH,oBAAoB,CAClB,QAA2B,EAC3B,QAA2B,EAC3B,SAAiB,EACjB,eAA0B,EAC1B,eAA0B,EAC1B,WAAqB;QAErB,OAAO,IAAI,CAAC,UAAU,CAAC,oBAAoB,CACzC,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,eAAe,EACf,eAAe,EACf,WAAW,CACZ,CAAC;IACJ,CAAC;CACF;AAthCD,kEAshCC"}
|
|
@@ -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
|
|
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":"AACA,OAAO,EACL,SAAS,
|
|
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
|
|
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
|