@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
@@ -8,186 +8,6 @@ const base_1 = require("../base");
8
8
  class UserController extends base_1.BaseController {
9
9
  constructor(application) {
10
10
  super(application);
11
- this.handleRegister = async (req) => {
12
- try {
13
- const { username, email, password } = req.body;
14
- const authService = this.application.services.get('auth');
15
- const result = await authService.register(username, email, new ecies_lib_1.SecureString(password));
16
- return {
17
- statusCode: 201,
18
- response: {
19
- message: 'Registration successful',
20
- token: result.token,
21
- memberId: result.memberId,
22
- energyBalance: result.energyBalance,
23
- },
24
- };
25
- }
26
- catch (error) {
27
- return {
28
- statusCode: 400,
29
- response: {
30
- message: error instanceof Error ? error.message : 'Registration failed',
31
- error: error instanceof Error ? error.message : 'Registration failed',
32
- },
33
- };
34
- }
35
- };
36
- this.handleLogin = async (req) => {
37
- try {
38
- const { username, password } = req.body;
39
- const authService = this.application.services.get('auth');
40
- const result = await authService.login({
41
- username,
42
- password: new ecies_lib_1.SecureString(password),
43
- });
44
- return {
45
- statusCode: 200,
46
- response: {
47
- message: 'Login successful',
48
- token: result.token,
49
- memberId: result.memberId,
50
- energyBalance: result.energyBalance,
51
- },
52
- };
53
- }
54
- catch {
55
- return {
56
- statusCode: 401,
57
- response: {
58
- message: 'Invalid credentials',
59
- error: 'Invalid credentials',
60
- },
61
- };
62
- }
63
- };
64
- this.handleProfile = async (req) => {
65
- const user = req.user;
66
- if (!user) {
67
- return {
68
- statusCode: 401,
69
- response: {
70
- message: 'Not authenticated',
71
- error: 'Not authenticated',
72
- },
73
- };
74
- }
75
- try {
76
- // Get energy account for balance and reputation
77
- const energyStore = this.application.services.get('energyStore');
78
- const memberChecksum = brightchain_lib_1.Checksum.fromHex(user.memberId);
79
- const energyAccount = await energyStore.getOrCreate(memberChecksum);
80
- // Try to get member profile from MemberStore if available
81
- let memberProfile = null;
82
- try {
83
- const memberStore = this.application.services.get('memberStore');
84
- if (memberStore) {
85
- const profile = await memberStore.getMemberProfile(memberChecksum.toUint8Array());
86
- if (profile.publicProfile) {
87
- memberProfile = {
88
- status: profile.publicProfile.status,
89
- storageQuota: profile.publicProfile.storageQuota?.toString(),
90
- storageUsed: profile.publicProfile.storageUsed?.toString(),
91
- lastActive: profile.publicProfile.lastActive?.toISOString(),
92
- dateCreated: profile.publicProfile.dateCreated?.toISOString(),
93
- };
94
- }
95
- }
96
- }
97
- catch {
98
- // MemberStore profile not available, continue with basic profile
99
- }
100
- return {
101
- statusCode: 200,
102
- response: {
103
- message: 'Profile retrieved',
104
- memberId: user.memberId,
105
- energyBalance: energyAccount.balance,
106
- availableBalance: energyAccount.availableBalance,
107
- earned: energyAccount.earned,
108
- spent: energyAccount.spent,
109
- reserved: energyAccount.reserved,
110
- reputation: energyAccount.reputation,
111
- createdAt: energyAccount.createdAt.toISOString(),
112
- lastUpdated: energyAccount.lastUpdated.toISOString(),
113
- ...(memberProfile && { profile: memberProfile }),
114
- },
115
- };
116
- }
117
- catch {
118
- return {
119
- statusCode: 500,
120
- response: {
121
- message: 'Failed to retrieve profile',
122
- error: 'Failed to retrieve profile',
123
- },
124
- };
125
- }
126
- };
127
- this.handleUpdateProfile = async (req) => {
128
- const user = req.user;
129
- if (!user) {
130
- return {
131
- statusCode: 401,
132
- response: {
133
- message: 'Not authenticated',
134
- error: 'Not authenticated',
135
- },
136
- };
137
- }
138
- try {
139
- const updateData = req.body;
140
- const memberChecksum = brightchain_lib_1.Checksum.fromHex(user.memberId);
141
- const memberIdBytes = memberChecksum.toUint8Array();
142
- // Try to update member profile in MemberStore if available
143
- let profileUpdated = false;
144
- try {
145
- const memberStore = this.application.services.get('memberStore');
146
- if (memberStore && updateData.settings) {
147
- // Build complete settings object with defaults for missing values
148
- const completeSettings = {
149
- autoReplication: updateData.settings.autoReplication ?? true,
150
- minRedundancy: updateData.settings.minRedundancy ?? 3,
151
- preferredRegions: updateData.settings.preferredRegions ?? [],
152
- };
153
- await memberStore.updateMember(memberIdBytes, {
154
- id: memberIdBytes,
155
- privateChanges: {
156
- settings: completeSettings,
157
- },
158
- });
159
- profileUpdated = true;
160
- }
161
- }
162
- catch {
163
- // MemberStore update not available, continue
164
- }
165
- // Get updated energy account for response
166
- const energyStore = this.application.services.get('energyStore');
167
- const energyAccount = await energyStore.getOrCreate(memberChecksum);
168
- return {
169
- statusCode: 200,
170
- response: {
171
- message: profileUpdated
172
- ? 'Profile updated successfully'
173
- : 'Profile update partially completed',
174
- memberId: user.memberId,
175
- energyBalance: energyAccount.balance,
176
- reputation: energyAccount.reputation,
177
- updated: profileUpdated,
178
- },
179
- };
180
- }
181
- catch {
182
- return {
183
- statusCode: 500,
184
- response: {
185
- message: 'Failed to update profile',
186
- error: 'Failed to update profile',
187
- },
188
- };
189
- }
190
- };
191
11
  }
192
12
  initRouteDefinitions() {
193
13
  this.routeDefinitions = [
@@ -219,6 +39,186 @@ class UserController extends base_1.BaseController {
219
39
  updateProfile: this.handleUpdateProfile.bind(this),
220
40
  };
221
41
  }
42
+ async handleRegister(req) {
43
+ try {
44
+ const { username, email, password } = req.body;
45
+ const authService = this.application.services.get('auth');
46
+ const result = await authService.register(username, email, new ecies_lib_1.SecureString(password));
47
+ return {
48
+ statusCode: 201,
49
+ response: {
50
+ message: 'Registration successful',
51
+ token: result.token,
52
+ memberId: result.memberId,
53
+ energyBalance: result.energyBalance,
54
+ },
55
+ };
56
+ }
57
+ catch (error) {
58
+ return {
59
+ statusCode: 400,
60
+ response: {
61
+ message: error instanceof Error ? error.message : 'Registration failed',
62
+ error: error instanceof Error ? error.message : 'Registration failed',
63
+ },
64
+ };
65
+ }
66
+ }
67
+ async handleLogin(req) {
68
+ try {
69
+ const { username, password } = req.body;
70
+ const authService = this.application.services.get('auth');
71
+ const result = await authService.login({
72
+ username,
73
+ password: new ecies_lib_1.SecureString(password),
74
+ });
75
+ return {
76
+ statusCode: 200,
77
+ response: {
78
+ message: 'Login successful',
79
+ token: result.token,
80
+ memberId: result.memberId,
81
+ energyBalance: result.energyBalance,
82
+ },
83
+ };
84
+ }
85
+ catch {
86
+ return {
87
+ statusCode: 401,
88
+ response: {
89
+ message: 'Invalid credentials',
90
+ error: 'Invalid credentials',
91
+ },
92
+ };
93
+ }
94
+ }
95
+ async handleProfile(req) {
96
+ const user = req.user;
97
+ if (!user) {
98
+ return {
99
+ statusCode: 401,
100
+ response: {
101
+ message: 'Not authenticated',
102
+ error: 'Not authenticated',
103
+ },
104
+ };
105
+ }
106
+ try {
107
+ // Get energy account for balance and reputation
108
+ const energyStore = this.application.services.get('energyStore');
109
+ const memberChecksum = brightchain_lib_1.Checksum.fromHex(user.memberId);
110
+ const energyAccount = await energyStore.getOrCreate(memberChecksum);
111
+ // Try to get member profile from MemberStore if available
112
+ let memberProfile = null;
113
+ try {
114
+ const memberStore = this.application.services.get('memberStore');
115
+ if (memberStore) {
116
+ const profile = await memberStore.getMemberProfile(memberChecksum.toUint8Array());
117
+ if (profile.publicProfile) {
118
+ memberProfile = {
119
+ status: profile.publicProfile.status,
120
+ storageQuota: profile.publicProfile.storageQuota?.toString(),
121
+ storageUsed: profile.publicProfile.storageUsed?.toString(),
122
+ lastActive: profile.publicProfile.lastActive?.toISOString(),
123
+ dateCreated: profile.publicProfile.dateCreated?.toISOString(),
124
+ };
125
+ }
126
+ }
127
+ }
128
+ catch {
129
+ // MemberStore profile not available, continue with basic profile
130
+ }
131
+ return {
132
+ statusCode: 200,
133
+ response: {
134
+ message: 'Profile retrieved',
135
+ memberId: user.memberId,
136
+ energyBalance: energyAccount.balance,
137
+ availableBalance: energyAccount.availableBalance,
138
+ earned: energyAccount.earned,
139
+ spent: energyAccount.spent,
140
+ reserved: energyAccount.reserved,
141
+ reputation: energyAccount.reputation,
142
+ createdAt: energyAccount.createdAt.toISOString(),
143
+ lastUpdated: energyAccount.lastUpdated.toISOString(),
144
+ ...(memberProfile && { profile: memberProfile }),
145
+ },
146
+ };
147
+ }
148
+ catch {
149
+ return {
150
+ statusCode: 500,
151
+ response: {
152
+ message: 'Failed to retrieve profile',
153
+ error: 'Failed to retrieve profile',
154
+ },
155
+ };
156
+ }
157
+ }
158
+ async handleUpdateProfile(req) {
159
+ const user = req.user;
160
+ if (!user) {
161
+ return {
162
+ statusCode: 401,
163
+ response: {
164
+ message: 'Not authenticated',
165
+ error: 'Not authenticated',
166
+ },
167
+ };
168
+ }
169
+ try {
170
+ const updateData = req.body;
171
+ const memberChecksum = brightchain_lib_1.Checksum.fromHex(user.memberId);
172
+ const memberIdBytes = memberChecksum.toUint8Array();
173
+ // Try to update member profile in MemberStore if available
174
+ let profileUpdated = false;
175
+ try {
176
+ const memberStore = this.application.services.get('memberStore');
177
+ if (memberStore && updateData.settings) {
178
+ // Build complete settings object with defaults for missing values
179
+ const completeSettings = {
180
+ autoReplication: updateData.settings.autoReplication ?? true,
181
+ minRedundancy: updateData.settings.minRedundancy ?? 3,
182
+ preferredRegions: updateData.settings.preferredRegions ?? [],
183
+ };
184
+ await memberStore.updateMember(memberIdBytes, {
185
+ id: memberIdBytes,
186
+ privateChanges: {
187
+ settings: completeSettings,
188
+ },
189
+ });
190
+ profileUpdated = true;
191
+ }
192
+ }
193
+ catch {
194
+ // MemberStore update not available, continue
195
+ }
196
+ // Get updated energy account for response
197
+ const energyStore = this.application.services.get('energyStore');
198
+ const energyAccount = await energyStore.getOrCreate(memberChecksum);
199
+ return {
200
+ statusCode: 200,
201
+ response: {
202
+ message: profileUpdated
203
+ ? 'Profile updated successfully'
204
+ : 'Profile update partially completed',
205
+ memberId: user.memberId,
206
+ energyBalance: energyAccount.balance,
207
+ reputation: energyAccount.reputation,
208
+ updated: profileUpdated,
209
+ },
210
+ };
211
+ }
212
+ catch {
213
+ return {
214
+ statusCode: 500,
215
+ response: {
216
+ message: 'Failed to update profile',
217
+ error: 'Failed to update profile',
218
+ },
219
+ };
220
+ }
221
+ }
222
222
  }
223
223
  exports.UserController = UserController;
224
224
  //# sourceMappingURL=user.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"user.js","sourceRoot":"","sources":["../../../../../../brightchain-api-lib/src/lib/controllers/api/user.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"user.js","sourceRoot":"","sources":["../../../../../../brightchain-api-lib/src/lib/controllers/api/user.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,70 @@
1
+ /**
2
+ * GitController — REST API for Git commit/tag signing operations.
3
+ *
4
+ * Routes:
5
+ * POST /sign-commit — Sign a Git commit
6
+ * POST /sign-tag — Sign a Git tag
7
+ * POST /verify — Verify a Git signature
8
+ * POST /export-public-key — Export the signing public key in PGP format
9
+ *
10
+ * Requirements: 7.1-7.10
11
+ */
12
+ import type { IExportGitPublicKeyResponse, ISignCommitResponse, ISignTagResponse, IVerifyGitSignatureResponse } from '@brightchain/brightchain-lib/lib/interfaces/responses/cryptoResponses';
13
+ import { PlatformID } from '@digitaldefiance/ecies-lib';
14
+ import { CoreLanguageCode } from '@digitaldefiance/i18n-lib';
15
+ import { ApiErrorResponse, ApiRequestHandler, TypedHandlers } from '@digitaldefiance/node-express-suite';
16
+ import { IBrightChainApplication } from '../../interfaces/application';
17
+ import { DefaultBackendIdType } from '../../shared-types';
18
+ import { BaseController } from '../base';
19
+ type GitApiResponse = ISignCommitResponse | ISignTagResponse | IVerifyGitSignatureResponse | IExportGitPublicKeyResponse | ApiErrorResponse;
20
+ interface GitHandlers extends TypedHandlers {
21
+ signCommit: ApiRequestHandler<ISignCommitResponse | ApiErrorResponse>;
22
+ signTag: ApiRequestHandler<ISignTagResponse | ApiErrorResponse>;
23
+ verifySignature: ApiRequestHandler<IVerifyGitSignatureResponse | ApiErrorResponse>;
24
+ exportPublicKey: ApiRequestHandler<IExportGitPublicKeyResponse | ApiErrorResponse>;
25
+ }
26
+ /**
27
+ * Controller for Git commit and tag signing operations.
28
+ *
29
+ * Delegates to {@link GitSigningService} in brightchain-lib for
30
+ * core signing logic including ECDSA signing over SHA-256 hashes
31
+ * wrapped in PGP-armored format.
32
+ *
33
+ * @requirements 7.1, 7.2, 7.3, 7.4, 7.5
34
+ */
35
+ export declare class GitController<TID extends PlatformID = DefaultBackendIdType> extends BaseController<TID, GitApiResponse, GitHandlers, CoreLanguageCode> {
36
+ constructor(application: IBrightChainApplication<TID>);
37
+ protected initRouteDefinitions(): void;
38
+ /**
39
+ * POST /sign-commit — Sign a Git commit.
40
+ *
41
+ * @requirements 7.1, 7.2
42
+ */
43
+ private handleSignCommit;
44
+ /**
45
+ * POST /sign-tag — Sign a Git tag.
46
+ *
47
+ * @requirements 7.3
48
+ */
49
+ private handleSignTag;
50
+ /**
51
+ * POST /verify — Verify a Git signature.
52
+ *
53
+ * Supports verification by paper key or by raw public key hex.
54
+ *
55
+ * @requirements 7.4
56
+ */
57
+ private handleVerifySignature;
58
+ /**
59
+ * POST /export-public-key — Export the Git signing public key.
60
+ *
61
+ * @requirements 7.5
62
+ */
63
+ private handleExportPublicKey;
64
+ /**
65
+ * Map Git signing errors to appropriate HTTP responses.
66
+ */
67
+ private mapGitError;
68
+ }
69
+ export {};
70
+ //# sourceMappingURL=gitController.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gitController.d.ts","sourceRoot":"","sources":["../../../../../../brightchain-api-lib/src/lib/controllers/crypto/gitController.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EACV,2BAA2B,EAC3B,mBAAmB,EACnB,gBAAgB,EAChB,2BAA2B,EAC5B,MAAM,uEAAuE,CAAC;AAK/E,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,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;AAE1D,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAIzC,KAAK,cAAc,GACf,mBAAmB,GACnB,gBAAgB,GAChB,2BAA2B,GAC3B,2BAA2B,GAC3B,gBAAgB,CAAC;AAIrB,UAAU,WAAY,SAAQ,aAAa;IACzC,UAAU,EAAE,iBAAiB,CAAC,mBAAmB,GAAG,gBAAgB,CAAC,CAAC;IACtE,OAAO,EAAE,iBAAiB,CAAC,gBAAgB,GAAG,gBAAgB,CAAC,CAAC;IAChE,eAAe,EAAE,iBAAiB,CAChC,2BAA2B,GAAG,gBAAgB,CAC/C,CAAC;IACF,eAAe,EAAE,iBAAiB,CAChC,2BAA2B,GAAG,gBAAgB,CAC/C,CAAC;CACH;AAsCD;;;;;;;;GAQG;AACH,qBAAa,aAAa,CACxB,GAAG,SAAS,UAAU,GAAG,oBAAoB,CAC7C,SAAQ,cAAc,CAAC,GAAG,EAAE,cAAc,EAAE,WAAW,EAAE,gBAAgB,CAAC;gBAC9D,WAAW,EAAE,uBAAuB,CAAC,GAAG,CAAC;IAMrD,SAAS,CAAC,oBAAoB,IAAI,IAAI;IAmGtC;;;;OAIG;YACW,gBAAgB;IAqC9B;;;;OAIG;YACW,aAAa;IAqC3B;;;;;;OAMG;YACW,qBAAqB;IAyEnC;;;;OAIG;YACW,qBAAqB;IAmCnC;;OAEG;IACH,OAAO,CAAC,WAAW;CAepB"}