@brightchain/brightchain-api-lib 0.14.0 → 0.16.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 (288) hide show
  1. package/package.json +5 -5
  2. package/src/browser.d.ts +13 -0
  3. package/src/browser.d.ts.map +1 -0
  4. package/src/browser.js +16 -0
  5. package/src/browser.js.map +1 -0
  6. package/src/index.d.ts +4 -1
  7. package/src/index.d.ts.map +1 -1
  8. package/src/index.js +6 -1
  9. package/src/index.js.map +1 -1
  10. package/src/lib/application-base.d.ts +8 -37
  11. package/src/lib/application-base.d.ts.map +1 -1
  12. package/src/lib/application-base.js +8 -80
  13. package/src/lib/application-base.js.map +1 -1
  14. package/src/lib/application.d.ts +37 -7
  15. package/src/lib/application.d.ts.map +1 -1
  16. package/src/lib/application.js +130 -118
  17. package/src/lib/application.js.map +1 -1
  18. package/src/lib/auth/aclEnforcedAvailability.d.ts +57 -0
  19. package/src/lib/auth/aclEnforcedAvailability.d.ts.map +1 -0
  20. package/src/lib/auth/aclEnforcedAvailability.js +87 -0
  21. package/src/lib/auth/aclEnforcedAvailability.js.map +1 -0
  22. package/src/lib/auth/aclEnforcedBlockStore.d.ts +66 -0
  23. package/src/lib/auth/aclEnforcedBlockStore.d.ts.map +1 -0
  24. package/src/lib/auth/aclEnforcedBlockStore.js +83 -0
  25. package/src/lib/auth/aclEnforcedBlockStore.js.map +1 -0
  26. package/src/lib/auth/ecdsaNodeAuthenticator.d.ts +46 -0
  27. package/src/lib/auth/ecdsaNodeAuthenticator.d.ts.map +1 -0
  28. package/src/lib/auth/ecdsaNodeAuthenticator.js +110 -0
  29. package/src/lib/auth/ecdsaNodeAuthenticator.js.map +1 -0
  30. package/src/lib/auth/index.d.ts +7 -0
  31. package/src/lib/auth/index.d.ts.map +1 -0
  32. package/src/lib/auth/index.js +13 -0
  33. package/src/lib/auth/index.js.map +1 -0
  34. package/src/lib/auth/poolAclBootstrap.d.ts +36 -0
  35. package/src/lib/auth/poolAclBootstrap.d.ts.map +1 -0
  36. package/src/lib/auth/poolAclBootstrap.js +64 -0
  37. package/src/lib/auth/poolAclBootstrap.js.map +1 -0
  38. package/src/lib/auth/poolAclStore.d.ts +77 -0
  39. package/src/lib/auth/poolAclStore.d.ts.map +1 -0
  40. package/src/lib/auth/poolAclStore.js +189 -0
  41. package/src/lib/auth/poolAclStore.js.map +1 -0
  42. package/src/lib/auth/poolAclUpdater.d.ts +79 -0
  43. package/src/lib/auth/poolAclUpdater.d.ts.map +1 -0
  44. package/src/lib/auth/poolAclUpdater.js +144 -0
  45. package/src/lib/auth/poolAclUpdater.js.map +1 -0
  46. package/src/lib/availability/availabilityService.d.ts +2 -2
  47. package/src/lib/availability/availabilityService.d.ts.map +1 -1
  48. package/src/lib/availability/availabilityService.js +12 -5
  49. package/src/lib/availability/availabilityService.js.map +1 -1
  50. package/src/lib/availability/blockRegistry.d.ts +45 -3
  51. package/src/lib/availability/blockRegistry.d.ts.map +1 -1
  52. package/src/lib/availability/blockRegistry.js +123 -5
  53. package/src/lib/availability/blockRegistry.js.map +1 -1
  54. package/src/lib/availability/discoveryProtocol.d.ts +30 -1
  55. package/src/lib/availability/discoveryProtocol.d.ts.map +1 -1
  56. package/src/lib/availability/discoveryProtocol.js +76 -0
  57. package/src/lib/availability/discoveryProtocol.js.map +1 -1
  58. package/src/lib/availability/gossipService.d.ts +45 -6
  59. package/src/lib/availability/gossipService.d.ts.map +1 -1
  60. package/src/lib/availability/gossipService.js +177 -5
  61. package/src/lib/availability/gossipService.js.map +1 -1
  62. package/src/lib/availability/reconciliationService.d.ts +88 -1
  63. package/src/lib/availability/reconciliationService.d.ts.map +1 -1
  64. package/src/lib/availability/reconciliationService.js +246 -48
  65. package/src/lib/availability/reconciliationService.js.map +1 -1
  66. package/src/lib/blockFetch/blockFetcher.d.ts +100 -0
  67. package/src/lib/blockFetch/blockFetcher.d.ts.map +1 -0
  68. package/src/lib/blockFetch/blockFetcher.js +279 -0
  69. package/src/lib/blockFetch/blockFetcher.js.map +1 -0
  70. package/src/lib/blockFetch/fetchQueue.d.ts +88 -0
  71. package/src/lib/blockFetch/fetchQueue.d.ts.map +1 -0
  72. package/src/lib/blockFetch/fetchQueue.js +204 -0
  73. package/src/lib/blockFetch/fetchQueue.js.map +1 -0
  74. package/src/lib/blockFetch/httpBlockFetchTransport.d.ts +65 -0
  75. package/src/lib/blockFetch/httpBlockFetchTransport.d.ts.map +1 -0
  76. package/src/lib/blockFetch/httpBlockFetchTransport.js +104 -0
  77. package/src/lib/blockFetch/httpBlockFetchTransport.js.map +1 -0
  78. package/src/lib/blockFetch/index.d.ts +10 -0
  79. package/src/lib/blockFetch/index.d.ts.map +1 -0
  80. package/src/lib/blockFetch/index.js +13 -0
  81. package/src/lib/blockFetch/index.js.map +1 -0
  82. package/src/lib/constants.js +2 -2
  83. package/src/lib/constants.js.map +1 -1
  84. package/src/lib/controllers/api/blocks.d.ts.map +1 -1
  85. package/src/lib/controllers/api/blocks.js +290 -290
  86. package/src/lib/controllers/api/blocks.js.map +1 -1
  87. package/src/lib/controllers/api/brightpass.d.ts +72 -0
  88. package/src/lib/controllers/api/brightpass.d.ts.map +1 -0
  89. package/src/lib/controllers/api/brightpass.js +577 -0
  90. package/src/lib/controllers/api/brightpass.js.map +1 -0
  91. package/src/lib/controllers/api/channels.d.ts +122 -0
  92. package/src/lib/controllers/api/channels.d.ts.map +1 -0
  93. package/src/lib/controllers/api/channels.js +701 -0
  94. package/src/lib/controllers/api/channels.js.map +1 -0
  95. package/src/lib/controllers/api/conversations.d.ts +89 -0
  96. package/src/lib/controllers/api/conversations.d.ts.map +1 -0
  97. package/src/lib/controllers/api/conversations.js +259 -0
  98. package/src/lib/controllers/api/conversations.js.map +1 -0
  99. package/src/lib/controllers/api/emails.d.ts +122 -0
  100. package/src/lib/controllers/api/emails.d.ts.map +1 -0
  101. package/src/lib/controllers/api/emails.js +494 -0
  102. package/src/lib/controllers/api/emails.js.map +1 -0
  103. package/src/lib/controllers/api/energy.d.ts.map +1 -1
  104. package/src/lib/controllers/api/energy.js +93 -93
  105. package/src/lib/controllers/api/energy.js.map +1 -1
  106. package/src/lib/controllers/api/explodingMessages.d.ts +79 -0
  107. package/src/lib/controllers/api/explodingMessages.d.ts.map +1 -0
  108. package/src/lib/controllers/api/explodingMessages.js +378 -0
  109. package/src/lib/controllers/api/explodingMessages.js.map +1 -0
  110. package/src/lib/controllers/api/groups.d.ts +94 -0
  111. package/src/lib/controllers/api/groups.d.ts.map +1 -0
  112. package/src/lib/controllers/api/groups.js +484 -0
  113. package/src/lib/controllers/api/groups.js.map +1 -0
  114. package/src/lib/controllers/api/i18n.d.ts.map +1 -1
  115. package/src/lib/controllers/api/i18n.js +8 -8
  116. package/src/lib/controllers/api/i18n.js.map +1 -1
  117. package/src/lib/controllers/api/index.d.ts +6 -0
  118. package/src/lib/controllers/api/index.d.ts.map +1 -1
  119. package/src/lib/controllers/api/index.js +6 -0
  120. package/src/lib/controllers/api/index.js.map +1 -1
  121. package/src/lib/controllers/api/messages.d.ts.map +1 -1
  122. package/src/lib/controllers/api/messages.js +2 -1
  123. package/src/lib/controllers/api/messages.js.map +1 -1
  124. package/src/lib/controllers/api/quorum.d.ts.map +1 -1
  125. package/src/lib/controllers/api/quorum.js +483 -483
  126. package/src/lib/controllers/api/quorum.js.map +1 -1
  127. package/src/lib/controllers/api/sessions.d.ts.map +1 -1
  128. package/src/lib/controllers/api/sessions.js +8 -8
  129. package/src/lib/controllers/api/sessions.js.map +1 -1
  130. package/src/lib/controllers/api/sync.d.ts +38 -2
  131. package/src/lib/controllers/api/sync.d.ts.map +1 -1
  132. package/src/lib/controllers/api/sync.js +89 -0
  133. package/src/lib/controllers/api/sync.js.map +1 -1
  134. package/src/lib/controllers/api/user.d.ts.map +1 -1
  135. package/src/lib/controllers/api/user.js +180 -180
  136. package/src/lib/controllers/api/user.js.map +1 -1
  137. package/src/lib/controllers/crypto/gitController.d.ts +70 -0
  138. package/src/lib/controllers/crypto/gitController.d.ts.map +1 -0
  139. package/src/lib/controllers/crypto/gitController.js +306 -0
  140. package/src/lib/controllers/crypto/gitController.js.map +1 -0
  141. package/src/lib/controllers/crypto/index.d.ts +3 -0
  142. package/src/lib/controllers/crypto/index.d.ts.map +1 -0
  143. package/src/lib/controllers/crypto/index.js +6 -0
  144. package/src/lib/controllers/crypto/index.js.map +1 -0
  145. package/src/lib/controllers/crypto/walletController.d.ts +64 -0
  146. package/src/lib/controllers/crypto/walletController.d.ts.map +1 -0
  147. package/src/lib/controllers/crypto/walletController.js +260 -0
  148. package/src/lib/controllers/crypto/walletController.js.map +1 -0
  149. package/src/lib/controllers/identity/deviceController.d.ts +96 -0
  150. package/src/lib/controllers/identity/deviceController.d.ts.map +1 -0
  151. package/src/lib/controllers/identity/deviceController.js +355 -0
  152. package/src/lib/controllers/identity/deviceController.js.map +1 -0
  153. package/src/lib/controllers/identity/directoryController.d.ts +75 -0
  154. package/src/lib/controllers/identity/directoryController.d.ts.map +1 -0
  155. package/src/lib/controllers/identity/directoryController.js +288 -0
  156. package/src/lib/controllers/identity/directoryController.js.map +1 -0
  157. package/src/lib/controllers/identity/identityProofController.d.ts +94 -0
  158. package/src/lib/controllers/identity/identityProofController.d.ts.map +1 -0
  159. package/src/lib/controllers/identity/identityProofController.js +454 -0
  160. package/src/lib/controllers/identity/identityProofController.js.map +1 -0
  161. package/src/lib/controllers/identity/index.d.ts +4 -0
  162. package/src/lib/controllers/identity/index.d.ts.map +1 -0
  163. package/src/lib/controllers/identity/index.js +7 -0
  164. package/src/lib/controllers/identity/index.js.map +1 -0
  165. package/src/lib/controllers/index.d.ts +2 -0
  166. package/src/lib/controllers/index.d.ts.map +1 -1
  167. package/src/lib/controllers/index.js +2 -0
  168. package/src/lib/controllers/index.js.map +1 -1
  169. package/src/lib/encryption/encryptedMetadataService.d.ts +87 -0
  170. package/src/lib/encryption/encryptedMetadataService.d.ts.map +1 -0
  171. package/src/lib/encryption/encryptedMetadataService.js +224 -0
  172. package/src/lib/encryption/encryptedMetadataService.js.map +1 -0
  173. package/src/lib/encryption/encryptionAwareReplication.d.ts +76 -0
  174. package/src/lib/encryption/encryptionAwareReplication.d.ts.map +1 -0
  175. package/src/lib/encryption/encryptionAwareReplication.js +116 -0
  176. package/src/lib/encryption/encryptionAwareReplication.js.map +1 -0
  177. package/src/lib/encryption/errors.d.ts +49 -0
  178. package/src/lib/encryption/errors.d.ts.map +1 -0
  179. package/src/lib/encryption/errors.js +80 -0
  180. package/src/lib/encryption/errors.js.map +1 -0
  181. package/src/lib/encryption/index.d.ts +6 -0
  182. package/src/lib/encryption/index.d.ts.map +1 -0
  183. package/src/lib/encryption/index.js +9 -0
  184. package/src/lib/encryption/index.js.map +1 -0
  185. package/src/lib/encryption/poolEncryptionService.d.ts +94 -0
  186. package/src/lib/encryption/poolEncryptionService.d.ts.map +1 -0
  187. package/src/lib/encryption/poolEncryptionService.js +252 -0
  188. package/src/lib/encryption/poolEncryptionService.js.map +1 -0
  189. package/src/lib/encryption/poolKeyManager.d.ts +82 -0
  190. package/src/lib/encryption/poolKeyManager.d.ts.map +1 -0
  191. package/src/lib/encryption/poolKeyManager.js +156 -0
  192. package/src/lib/encryption/poolKeyManager.js.map +1 -0
  193. package/src/lib/environment.d.ts +3 -0
  194. package/src/lib/environment.d.ts.map +1 -1
  195. package/src/lib/environment.js +5 -0
  196. package/src/lib/environment.js.map +1 -1
  197. package/src/lib/interfaces/application.d.ts +7 -1
  198. package/src/lib/interfaces/application.d.ts.map +1 -1
  199. package/src/lib/interfaces/brightchain-init-result.d.ts +17 -0
  200. package/src/lib/interfaces/brightchain-init-result.d.ts.map +1 -0
  201. package/src/lib/interfaces/brightchain-init-result.js +9 -0
  202. package/src/lib/interfaces/brightchain-init-result.js.map +1 -0
  203. package/src/lib/interfaces/environment.d.ts +7 -1
  204. package/src/lib/interfaces/environment.d.ts.map +1 -1
  205. package/src/lib/interfaces/index.d.ts +1 -1
  206. package/src/lib/interfaces/index.d.ts.map +1 -1
  207. package/src/lib/interfaces/requests/getBlockDataRequest.d.ts +12 -0
  208. package/src/lib/interfaces/requests/getBlockDataRequest.d.ts.map +1 -0
  209. package/src/lib/interfaces/{blockStore.js → requests/getBlockDataRequest.js} +1 -1
  210. package/src/lib/interfaces/requests/getBlockDataRequest.js.map +1 -0
  211. package/src/lib/interfaces/requests/index.d.ts +1 -0
  212. package/src/lib/interfaces/requests/index.d.ts.map +1 -1
  213. package/src/lib/routers/api.d.ts +54 -1
  214. package/src/lib/routers/api.d.ts.map +1 -1
  215. package/src/lib/routers/api.js +77 -0
  216. package/src/lib/routers/api.js.map +1 -1
  217. package/src/lib/routers/app.d.ts +22 -14
  218. package/src/lib/routers/app.d.ts.map +1 -1
  219. package/src/lib/routers/app.js +28 -116
  220. package/src/lib/routers/app.js.map +1 -1
  221. package/src/lib/services/blockStore.d.ts +5 -2
  222. package/src/lib/services/blockStore.d.ts.map +1 -1
  223. package/src/lib/services/blockStore.js +4 -0
  224. package/src/lib/services/blockStore.js.map +1 -1
  225. package/src/lib/services/brightpass/auditLogger.d.ts +77 -0
  226. package/src/lib/services/brightpass/auditLogger.d.ts.map +1 -0
  227. package/src/lib/services/brightpass/auditLogger.js +184 -0
  228. package/src/lib/services/brightpass/auditLogger.js.map +1 -0
  229. package/src/lib/services/brightpass/vaultEncryption.d.ts +82 -0
  230. package/src/lib/services/brightpass/vaultEncryption.d.ts.map +1 -0
  231. package/src/lib/services/brightpass/vaultEncryption.js +144 -0
  232. package/src/lib/services/brightpass/vaultEncryption.js.map +1 -0
  233. package/src/lib/services/brightpass.d.ts +294 -0
  234. package/src/lib/services/brightpass.d.ts.map +1 -0
  235. package/src/lib/services/brightpass.js +1260 -0
  236. package/src/lib/services/brightpass.js.map +1 -0
  237. package/src/lib/services/brightpass.property.helpers.d.ts +23 -0
  238. package/src/lib/services/brightpass.property.helpers.d.ts.map +1 -0
  239. package/src/lib/services/brightpass.property.helpers.js +113 -0
  240. package/src/lib/services/brightpass.property.helpers.js.map +1 -0
  241. package/src/lib/services/eventNotificationSystem.d.ts +69 -3
  242. package/src/lib/services/eventNotificationSystem.d.ts.map +1 -1
  243. package/src/lib/services/eventNotificationSystem.js +200 -0
  244. package/src/lib/services/eventNotificationSystem.js.map +1 -1
  245. package/src/lib/services/expirationScheduler.d.ts +90 -0
  246. package/src/lib/services/expirationScheduler.d.ts.map +1 -0
  247. package/src/lib/services/expirationScheduler.js +131 -0
  248. package/src/lib/services/expirationScheduler.js.map +1 -0
  249. package/src/lib/services/fecUsageExample.d.ts +2 -2
  250. package/src/lib/services/index.d.ts +2 -0
  251. package/src/lib/services/index.d.ts.map +1 -1
  252. package/src/lib/services/index.js +2 -0
  253. package/src/lib/services/index.js.map +1 -1
  254. package/src/lib/services/paginationService.d.ts +18 -0
  255. package/src/lib/services/paginationService.d.ts.map +1 -0
  256. package/src/lib/services/paginationService.js +32 -0
  257. package/src/lib/services/paginationService.js.map +1 -0
  258. package/src/lib/services/presenceService.d.ts +76 -0
  259. package/src/lib/services/presenceService.d.ts.map +1 -0
  260. package/src/lib/services/presenceService.js +143 -0
  261. package/src/lib/services/presenceService.js.map +1 -0
  262. package/src/lib/services/wireConversationPromotion.d.ts +23 -0
  263. package/src/lib/services/wireConversationPromotion.d.ts.map +1 -0
  264. package/src/lib/services/wireConversationPromotion.js +26 -0
  265. package/src/lib/services/wireConversationPromotion.js.map +1 -0
  266. package/src/lib/stores/availabilityAwareBlockStore.d.ts +115 -10
  267. package/src/lib/stores/availabilityAwareBlockStore.d.ts.map +1 -1
  268. package/src/lib/stores/availabilityAwareBlockStore.js +267 -23
  269. package/src/lib/stores/availabilityAwareBlockStore.js.map +1 -1
  270. package/src/lib/stores/diskBlockAsyncStore.d.ts +81 -2
  271. package/src/lib/stores/diskBlockAsyncStore.d.ts.map +1 -1
  272. package/src/lib/stores/diskBlockAsyncStore.js +297 -10
  273. package/src/lib/stores/diskBlockAsyncStore.js.map +1 -1
  274. package/src/lib/upstream-stubs.d.ts +36 -0
  275. package/src/lib/upstream-stubs.d.ts.map +1 -0
  276. package/src/lib/upstream-stubs.js +43 -0
  277. package/src/lib/upstream-stubs.js.map +1 -0
  278. package/src/lib/utils/communicationValidation.d.ts +44 -0
  279. package/src/lib/utils/communicationValidation.d.ts.map +1 -0
  280. package/src/lib/utils/communicationValidation.js +291 -0
  281. package/src/lib/utils/communicationValidation.js.map +1 -0
  282. package/src/lib/utils/emailValidation.d.ts +19 -0
  283. package/src/lib/utils/emailValidation.d.ts.map +1 -0
  284. package/src/lib/utils/emailValidation.js +232 -0
  285. package/src/lib/utils/emailValidation.js.map +1 -0
  286. package/src/lib/interfaces/blockStore.d.ts +0 -7
  287. package/src/lib/interfaces/blockStore.d.ts.map +0 -1
  288. package/src/lib/interfaces/blockStore.js.map +0 -1
@@ -0,0 +1,288 @@
1
+ "use strict";
2
+ /**
3
+ * DirectoryController — REST API for the public key directory.
4
+ *
5
+ * Routes:
6
+ * GET /search — Search the public key directory
7
+ * GET /profile/:memberId — Get a member's public profile
8
+ * PUT /profile — Create or update a public profile
9
+ * POST /profile/:memberId/privacy — Toggle privacy mode
10
+ *
11
+ * Requirements: 5.1-5.10
12
+ */
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.DirectoryController = void 0;
15
+ const proofPlatform_1 = require("@brightchain/brightchain-lib/lib/enumerations/proofPlatform");
16
+ const identity_1 = require("@brightchain/brightchain-lib/lib/services/identity");
17
+ const node_express_suite_1 = require("@digitaldefiance/node-express-suite");
18
+ const errorResponse_1 = require("../../utils/errorResponse");
19
+ const base_1 = require("../base");
20
+ // ─── Controller ─────────────────────────────────────────────────────────────
21
+ /**
22
+ * Controller for the public key directory.
23
+ *
24
+ * Delegates to {@link PublicKeyDirectoryService} in brightchain-lib for
25
+ * search, profile management, and privacy mode toggling.
26
+ *
27
+ * @requirements 5.1, 5.2, 5.3, 5.4, 5.5, 5.6, 5.7, 5.8, 5.9, 5.10
28
+ */
29
+ class DirectoryController extends base_1.BaseController {
30
+ constructor(application) {
31
+ super(application);
32
+ this.directoryService = null;
33
+ }
34
+ /**
35
+ * Inject the directory service instance.
36
+ * Must be called during application initialisation before handling requests.
37
+ */
38
+ setDirectoryService(service) {
39
+ this.directoryService = service;
40
+ }
41
+ getDirectoryService() {
42
+ if (!this.directoryService) {
43
+ throw new Error('PublicKeyDirectoryService not initialized');
44
+ }
45
+ return this.directoryService;
46
+ }
47
+ // ─── Route definitions ──────────────────────────────────────────────────
48
+ initRouteDefinitions() {
49
+ const noAuth = {
50
+ useAuthentication: false,
51
+ useCryptoAuthentication: false,
52
+ };
53
+ this.routeDefinitions = [
54
+ (0, node_express_suite_1.routeConfig)('get', '/search', {
55
+ ...noAuth,
56
+ handlerKey: 'searchDirectory',
57
+ openapi: {
58
+ summary: 'Search the public key directory',
59
+ description: 'Searches profiles by display name, social username, or member ID with relevance ranking and pagination.',
60
+ tags: ['Directory'],
61
+ responses: {
62
+ 200: {
63
+ schema: 'SearchDirectoryResponse',
64
+ description: 'Search results',
65
+ },
66
+ 400: {
67
+ schema: 'ApiErrorResponse',
68
+ description: 'Missing search query',
69
+ },
70
+ },
71
+ },
72
+ }),
73
+ (0, node_express_suite_1.routeConfig)('get', '/profile/:memberId', {
74
+ ...noAuth,
75
+ handlerKey: 'getProfile',
76
+ openapi: {
77
+ summary: 'Get a member public profile',
78
+ description: 'Returns the public profile for a member by ID, regardless of privacy mode.',
79
+ tags: ['Directory'],
80
+ responses: {
81
+ 200: {
82
+ schema: 'GetProfileResponse',
83
+ description: 'Profile found',
84
+ },
85
+ 404: {
86
+ schema: 'ApiErrorResponse',
87
+ description: 'Profile not found',
88
+ },
89
+ },
90
+ },
91
+ }),
92
+ (0, node_express_suite_1.routeConfig)('put', '/profile', {
93
+ ...noAuth,
94
+ handlerKey: 'updateProfile',
95
+ openapi: {
96
+ summary: 'Create or update a public profile',
97
+ description: 'Adds a new profile or updates an existing one in the directory.',
98
+ tags: ['Directory'],
99
+ responses: {
100
+ 200: {
101
+ schema: 'UpdateProfileResponse',
102
+ description: 'Profile updated',
103
+ },
104
+ 400: {
105
+ schema: 'ApiErrorResponse',
106
+ description: 'Invalid profile data',
107
+ },
108
+ },
109
+ },
110
+ }),
111
+ (0, node_express_suite_1.routeConfig)('post', '/profile/:memberId/privacy', {
112
+ ...noAuth,
113
+ handlerKey: 'togglePrivacy',
114
+ openapi: {
115
+ summary: 'Toggle privacy mode for a profile',
116
+ description: 'Toggles whether a profile appears in directory search results.',
117
+ tags: ['Directory'],
118
+ responses: {
119
+ 200: {
120
+ schema: 'TogglePrivacyResponse',
121
+ description: 'Privacy mode toggled',
122
+ },
123
+ 404: {
124
+ schema: 'ApiErrorResponse',
125
+ description: 'Profile not found',
126
+ },
127
+ },
128
+ },
129
+ }),
130
+ ];
131
+ this.handlers = {
132
+ searchDirectory: this.handleSearch.bind(this),
133
+ getProfile: this.handleGetProfile.bind(this),
134
+ updateProfile: this.handleUpdateProfile.bind(this),
135
+ togglePrivacy: this.handleTogglePrivacy.bind(this),
136
+ };
137
+ }
138
+ // ─── Handlers ─────────────────────────────────────────────────────────
139
+ /**
140
+ * GET /search — Search the public key directory.
141
+ *
142
+ * Query params: q (required), limit, offset, platformFilter
143
+ *
144
+ * @requirements 5.2, 5.3, 5.5, 5.9, 5.10
145
+ */
146
+ async handleSearch(req) {
147
+ try {
148
+ const { q, limit, offset, platformFilter } = req.query;
149
+ if (!q || typeof q !== 'string' || q.trim().length === 0) {
150
+ return (0, errorResponse_1.validationError)('Missing required query parameter: q');
151
+ }
152
+ // Validate platformFilter if provided
153
+ if (platformFilter &&
154
+ !Object.values(proofPlatform_1.ProofPlatform).includes(platformFilter)) {
155
+ return (0, errorResponse_1.validationError)(`Invalid platformFilter: ${platformFilter} (expected one of ${Object.values(proofPlatform_1.ProofPlatform).join(', ')})`);
156
+ }
157
+ const directory = this.getDirectoryService();
158
+ const searchResult = directory.search(q, {
159
+ limit: limit ? parseInt(limit, 10) : undefined,
160
+ offset: offset ? parseInt(offset, 10) : undefined,
161
+ platformFilter: platformFilter
162
+ ? platformFilter
163
+ : undefined,
164
+ });
165
+ return {
166
+ statusCode: 200,
167
+ response: {
168
+ status: 'success',
169
+ data: {
170
+ results: searchResult.results,
171
+ totalCount: searchResult.totalCount,
172
+ hasMore: searchResult.hasMore,
173
+ },
174
+ message: `Found ${searchResult.totalCount} result(s)`,
175
+ },
176
+ };
177
+ }
178
+ catch (error) {
179
+ return (0, errorResponse_1.handleError)(error);
180
+ }
181
+ }
182
+ /**
183
+ * GET /profile/:memberId — Get a member's public profile.
184
+ *
185
+ * Returns the profile regardless of privacy mode (direct lookup).
186
+ *
187
+ * @requirements 5.1, 5.9
188
+ */
189
+ async handleGetProfile(req) {
190
+ try {
191
+ const { memberId } = req.params;
192
+ if (!memberId) {
193
+ return (0, errorResponse_1.validationError)('Missing required parameter: memberId');
194
+ }
195
+ const directory = this.getDirectoryService();
196
+ const profile = directory.getProfile(memberId);
197
+ return {
198
+ statusCode: 200,
199
+ response: {
200
+ status: 'success',
201
+ data: profile,
202
+ message: 'Profile found',
203
+ },
204
+ };
205
+ }
206
+ catch (error) {
207
+ if (error instanceof identity_1.ProfileNotFoundError) {
208
+ const { memberId } = req.params;
209
+ return (0, errorResponse_1.notFoundError)('Profile', memberId);
210
+ }
211
+ return (0, errorResponse_1.handleError)(error);
212
+ }
213
+ }
214
+ /**
215
+ * PUT /profile — Create or update a public profile.
216
+ *
217
+ * @requirements 5.1, 5.7, 5.8
218
+ */
219
+ async handleUpdateProfile(req) {
220
+ try {
221
+ const profile = req.body;
222
+ if (!profile || typeof profile !== 'object') {
223
+ return (0, errorResponse_1.validationError)('Missing request body');
224
+ }
225
+ if (!profile.memberId || typeof profile.memberId !== 'string') {
226
+ return (0, errorResponse_1.validationError)('Missing required field: memberId');
227
+ }
228
+ if (!profile.displayName || typeof profile.displayName !== 'string') {
229
+ return (0, errorResponse_1.validationError)('Missing required field: displayName');
230
+ }
231
+ if (!profile.publicKey || typeof profile.publicKey !== 'string') {
232
+ return (0, errorResponse_1.validationError)('Missing required field: publicKey');
233
+ }
234
+ const directory = this.getDirectoryService();
235
+ directory.updateProfile(profile);
236
+ // Retrieve the stored profile (may have updated timestamps)
237
+ const stored = directory.getProfile(profile.memberId);
238
+ return {
239
+ statusCode: 200,
240
+ response: {
241
+ status: 'success',
242
+ data: stored,
243
+ message: 'Profile updated',
244
+ },
245
+ };
246
+ }
247
+ catch (error) {
248
+ if (error instanceof identity_1.InvalidProfileError) {
249
+ return (0, errorResponse_1.validationError)(error.message);
250
+ }
251
+ return (0, errorResponse_1.handleError)(error);
252
+ }
253
+ }
254
+ /**
255
+ * POST /profile/:memberId/privacy — Toggle privacy mode.
256
+ *
257
+ * @requirements 5.6, 5.9
258
+ */
259
+ async handleTogglePrivacy(req) {
260
+ try {
261
+ const { memberId } = req.params;
262
+ if (!memberId) {
263
+ return (0, errorResponse_1.validationError)('Missing required parameter: memberId');
264
+ }
265
+ const directory = this.getDirectoryService();
266
+ const privacyMode = directory.togglePrivacyMode(memberId);
267
+ return {
268
+ statusCode: 200,
269
+ response: {
270
+ status: 'success',
271
+ data: { privacyMode },
272
+ message: privacyMode
273
+ ? 'Privacy mode enabled — profile hidden from search'
274
+ : 'Privacy mode disabled — profile visible in search',
275
+ },
276
+ };
277
+ }
278
+ catch (error) {
279
+ if (error instanceof identity_1.ProfileNotFoundError) {
280
+ const { memberId } = req.params;
281
+ return (0, errorResponse_1.notFoundError)('Profile', memberId);
282
+ }
283
+ return (0, errorResponse_1.handleError)(error);
284
+ }
285
+ }
286
+ }
287
+ exports.DirectoryController = DirectoryController;
288
+ //# sourceMappingURL=directoryController.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"directoryController.js","sourceRoot":"","sources":["../../../../../../brightchain-api-lib/src/lib/controllers/identity/directoryController.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,94 @@
1
+ /**
2
+ * IdentityProofController — REST API for identity proof management.
3
+ *
4
+ * Routes:
5
+ * POST /create — Create a new identity proof
6
+ * POST /verify — Verify a proof's signature
7
+ * POST /check-url — Check if a proof URL contains the signed statement
8
+ * POST /:id/revoke — Revoke an identity proof
9
+ * GET /instructions/:platform — Get platform-specific posting instructions
10
+ * GET /list — List proofs for a member
11
+ *
12
+ * Requirements: 4.1-4.10
13
+ */
14
+ import type { ICheckProofUrlResponse, ICreateProofResponse, IGetInstructionsResponse, IListProofsResponse, IRevokeProofResponse, IVerifyProofResponse } from '@brightchain/brightchain-lib/lib/interfaces/responses/identityProofResponses';
15
+ import { ECIESService, Member, PlatformID } from '@digitaldefiance/ecies-lib';
16
+ import { CoreLanguageCode } from '@digitaldefiance/i18n-lib';
17
+ import { ApiErrorResponse, ApiRequestHandler, TypedHandlers } from '@digitaldefiance/node-express-suite';
18
+ import { IBrightChainApplication } from '../../interfaces/application';
19
+ import { DefaultBackendIdType } from '../../shared-types';
20
+ import { BaseController } from '../base';
21
+ type IdentityProofApiResponse = ICreateProofResponse | IVerifyProofResponse | ICheckProofUrlResponse | IRevokeProofResponse | IGetInstructionsResponse | IListProofsResponse | ApiErrorResponse;
22
+ interface IdentityProofHandlers extends TypedHandlers {
23
+ createProof: ApiRequestHandler<ICreateProofResponse | ApiErrorResponse>;
24
+ verifyProof: ApiRequestHandler<IVerifyProofResponse | ApiErrorResponse>;
25
+ checkProofUrl: ApiRequestHandler<ICheckProofUrlResponse | ApiErrorResponse>;
26
+ revokeProof: ApiRequestHandler<IRevokeProofResponse | ApiErrorResponse>;
27
+ getInstructions: ApiRequestHandler<IGetInstructionsResponse | ApiErrorResponse>;
28
+ listProofs: ApiRequestHandler<IListProofsResponse | ApiErrorResponse>;
29
+ }
30
+ /**
31
+ * Controller for identity proof creation, verification, and management.
32
+ *
33
+ * Delegates to {@link IdentityProofService} in brightchain-lib for
34
+ * core cryptographic operations.
35
+ *
36
+ * @requirements 4.1, 4.2, 4.3, 4.4, 4.5, 4.6, 4.7, 4.8, 4.9, 4.10
37
+ */
38
+ export declare class IdentityProofController<TID extends PlatformID = DefaultBackendIdType> extends BaseController<TID, IdentityProofApiResponse, IdentityProofHandlers, CoreLanguageCode> {
39
+ private eciesService;
40
+ private memberResolver;
41
+ private readonly proofStore;
42
+ constructor(application: IBrightChainApplication<TID>);
43
+ /**
44
+ * Inject the ECIES service for cryptographic operations.
45
+ */
46
+ setEciesService(service: ECIESService<TID>): void;
47
+ /**
48
+ * Inject a member resolver function that looks up a Member by ID.
49
+ * Required for the create endpoint which needs the member's private key.
50
+ */
51
+ setMemberResolver(resolver: (memberId: string) => Member<TID> | undefined): void;
52
+ private getEciesService;
53
+ private resolveMember;
54
+ protected initRouteDefinitions(): void;
55
+ /**
56
+ * POST /create — Create a new identity proof.
57
+ *
58
+ * @requirements 4.1, 4.2, 4.3, 4.8
59
+ */
60
+ private handleCreateProof;
61
+ /**
62
+ * POST /verify — Verify an identity proof's signature.
63
+ *
64
+ * @requirements 4.4
65
+ */
66
+ private handleVerifyProof;
67
+ /**
68
+ * POST /check-url — Check if a proof URL contains the signed statement.
69
+ *
70
+ * @requirements 4.6, 4.10
71
+ */
72
+ private handleCheckProofUrl;
73
+ /**
74
+ * POST /:id/revoke — Revoke an identity proof.
75
+ *
76
+ * @requirements 4.7
77
+ */
78
+ private handleRevokeProof;
79
+ /**
80
+ * GET /instructions/:platform — Get platform-specific posting instructions.
81
+ *
82
+ * @requirements 4.9
83
+ */
84
+ private handleGetInstructions;
85
+ /**
86
+ * GET /list — List identity proofs for a member.
87
+ *
88
+ * @requirements 4.5
89
+ */
90
+ private handleListProofs;
91
+ private mapProofError;
92
+ }
93
+ export {};
94
+ //# sourceMappingURL=identityProofController.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"identityProofController.d.ts","sourceRoot":"","sources":["../../../../../../brightchain-api-lib/src/lib/controllers/identity/identityProofController.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAKH,OAAO,KAAK,EACV,sBAAsB,EACtB,oBAAoB,EACpB,wBAAwB,EACxB,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,EACrB,MAAM,8EAA8E,CAAC;AAOtF,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,EAEd,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAM1D,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAIzC,KAAK,wBAAwB,GACzB,oBAAoB,GACpB,oBAAoB,GACpB,sBAAsB,GACtB,oBAAoB,GACpB,wBAAwB,GACxB,mBAAmB,GACnB,gBAAgB,CAAC;AAIrB,UAAU,qBAAsB,SAAQ,aAAa;IACnD,WAAW,EAAE,iBAAiB,CAAC,oBAAoB,GAAG,gBAAgB,CAAC,CAAC;IACxE,WAAW,EAAE,iBAAiB,CAAC,oBAAoB,GAAG,gBAAgB,CAAC,CAAC;IACxE,aAAa,EAAE,iBAAiB,CAAC,sBAAsB,GAAG,gBAAgB,CAAC,CAAC;IAC5E,WAAW,EAAE,iBAAiB,CAAC,oBAAoB,GAAG,gBAAgB,CAAC,CAAC;IACxE,eAAe,EAAE,iBAAiB,CAChC,wBAAwB,GAAG,gBAAgB,CAC5C,CAAC;IACF,UAAU,EAAE,iBAAiB,CAAC,mBAAmB,GAAG,gBAAgB,CAAC,CAAC;CACvE;AA8ED;;;;;;;GAOG;AACH,qBAAa,uBAAuB,CAClC,GAAG,SAAS,UAAU,GAAG,oBAAoB,CAC7C,SAAQ,cAAc,CACtB,GAAG,EACH,wBAAwB,EACxB,qBAAqB,EACrB,gBAAgB,CACjB;IACC,OAAO,CAAC,YAAY,CAAkC;IACtD,OAAO,CAAC,cAAc,CAEN;IAChB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoB;gBAEnC,WAAW,EAAE,uBAAuB,CAAC,GAAG,CAAC;IAIrD;;OAEG;IACI,eAAe,CAAC,OAAO,EAAE,YAAY,CAAC,GAAG,CAAC,GAAG,IAAI;IAIxD;;;OAGG;IACI,iBAAiB,CACtB,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,GACtD,IAAI;IAIP,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,aAAa;IAarB,SAAS,CAAC,oBAAoB,IAAI,IAAI;IAqItC;;;;OAIG;YACW,iBAAiB;IAiD/B;;;;OAIG;YACW,iBAAiB;IAqC/B;;;;OAIG;YACW,mBAAmB;IA0CjC;;;;OAIG;YACW,iBAAiB;IAsC/B;;;;OAIG;YACW,qBAAqB;IAyBnC;;;;OAIG;YACW,gBAAgB;IA2B9B,OAAO,CAAC,aAAa;CAiCtB"}