@brightchain/brightchain-api-lib 0.12.0 → 0.13.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 (184) hide show
  1. package/package.json +4 -4
  2. package/src/lib/application-base.d.ts +1 -1
  3. package/src/lib/application-base.d.ts.map +1 -1
  4. package/src/lib/application.d.ts +52 -0
  5. package/src/lib/application.d.ts.map +1 -1
  6. package/src/lib/application.js +104 -0
  7. package/src/lib/application.js.map +1 -1
  8. package/src/lib/controllers/api/blocks.d.ts.map +1 -1
  9. package/src/lib/controllers/api/blocks.js +62 -0
  10. package/src/lib/controllers/api/blocks.js.map +1 -1
  11. package/src/lib/controllers/api/docs.d.ts +67 -0
  12. package/src/lib/controllers/api/docs.d.ts.map +1 -0
  13. package/src/lib/controllers/api/docs.js +86 -0
  14. package/src/lib/controllers/api/docs.js.map +1 -0
  15. package/src/lib/controllers/api/energy.d.ts.map +1 -1
  16. package/src/lib/controllers/api/energy.js +35 -7
  17. package/src/lib/controllers/api/energy.js.map +1 -1
  18. package/src/lib/controllers/api/health.d.ts +95 -0
  19. package/src/lib/controllers/api/health.d.ts.map +1 -0
  20. package/src/lib/controllers/api/health.js +319 -0
  21. package/src/lib/controllers/api/health.js.map +1 -0
  22. package/src/lib/controllers/api/index.d.ts +6 -0
  23. package/src/lib/controllers/api/index.d.ts.map +1 -1
  24. package/src/lib/controllers/api/index.js +6 -0
  25. package/src/lib/controllers/api/index.js.map +1 -1
  26. package/src/lib/controllers/api/messages.d.ts +119 -0
  27. package/src/lib/controllers/api/messages.d.ts.map +1 -0
  28. package/src/lib/controllers/api/messages.js +269 -0
  29. package/src/lib/controllers/api/messages.js.map +1 -0
  30. package/src/lib/controllers/api/nodes.d.ts +152 -0
  31. package/src/lib/controllers/api/nodes.d.ts.map +1 -0
  32. package/src/lib/controllers/api/nodes.js +378 -0
  33. package/src/lib/controllers/api/nodes.js.map +1 -0
  34. package/src/lib/controllers/api/quorum.d.ts +12 -8
  35. package/src/lib/controllers/api/quorum.d.ts.map +1 -1
  36. package/src/lib/controllers/api/quorum.js +83 -17
  37. package/src/lib/controllers/api/quorum.js.map +1 -1
  38. package/src/lib/controllers/api/scbl.d.ts +80 -0
  39. package/src/lib/controllers/api/scbl.d.ts.map +1 -0
  40. package/src/lib/controllers/api/scbl.js +325 -0
  41. package/src/lib/controllers/api/scbl.js.map +1 -0
  42. package/src/lib/controllers/api/sync.d.ts +140 -0
  43. package/src/lib/controllers/api/sync.d.ts.map +1 -0
  44. package/src/lib/controllers/api/sync.js +352 -0
  45. package/src/lib/controllers/api/sync.js.map +1 -0
  46. package/src/lib/controllers/api/user.d.ts +2 -0
  47. package/src/lib/controllers/api/user.d.ts.map +1 -1
  48. package/src/lib/controllers/api/user.js +122 -7
  49. package/src/lib/controllers/api/user.js.map +1 -1
  50. package/src/lib/enumerations/brightChainApiStrings.d.ts.map +1 -1
  51. package/src/lib/enumerations/brightChainApiStrings.js.map +1 -1
  52. package/src/lib/errors/symmetric.d.ts +2 -2
  53. package/src/lib/errors/symmetric.d.ts.map +1 -1
  54. package/src/lib/errors/symmetric.js.map +1 -1
  55. package/src/lib/errors/typed-error-local.d.ts +3 -3
  56. package/src/lib/errors/typed-error-local.d.ts.map +1 -1
  57. package/src/lib/errors/typed-error-local.js.map +1 -1
  58. package/src/lib/interfaces/application.d.ts +2 -1
  59. package/src/lib/interfaces/application.d.ts.map +1 -1
  60. package/src/lib/interfaces/backend-objects/index.d.ts +4 -4
  61. package/src/lib/interfaces/backend-objects/index.d.ts.map +1 -1
  62. package/src/lib/interfaces/backend-objects/index.js +0 -5
  63. package/src/lib/interfaces/backend-objects/index.js.map +1 -1
  64. package/src/lib/interfaces/bases/index.d.ts +4 -4
  65. package/src/lib/interfaces/bases/index.d.ts.map +1 -1
  66. package/src/lib/interfaces/bases/index.js +0 -5
  67. package/src/lib/interfaces/bases/index.js.map +1 -1
  68. package/src/lib/interfaces/index.d.ts +32 -32
  69. package/src/lib/interfaces/index.d.ts.map +1 -1
  70. package/src/lib/interfaces/index.js +0 -33
  71. package/src/lib/interfaces/index.js.map +1 -1
  72. package/src/lib/interfaces/member/index.d.ts +3 -3
  73. package/src/lib/interfaces/member/index.d.ts.map +1 -1
  74. package/src/lib/interfaces/member/index.js +0 -4
  75. package/src/lib/interfaces/member/index.js.map +1 -1
  76. package/src/lib/interfaces/requests/deleteMessagesRequest.d.ts +12 -0
  77. package/src/lib/interfaces/requests/deleteMessagesRequest.d.ts.map +1 -0
  78. package/src/lib/interfaces/requests/deleteMessagesRequest.js +3 -0
  79. package/src/lib/interfaces/requests/deleteMessagesRequest.js.map +1 -0
  80. package/src/lib/interfaces/requests/discoverBlockRequest.d.ts +10 -0
  81. package/src/lib/interfaces/requests/discoverBlockRequest.d.ts.map +1 -0
  82. package/src/lib/interfaces/requests/discoverBlockRequest.js +3 -0
  83. package/src/lib/interfaces/requests/discoverBlockRequest.js.map +1 -0
  84. package/src/lib/interfaces/requests/getBlockLocationRequest.d.ts +9 -0
  85. package/src/lib/interfaces/requests/getBlockLocationRequest.d.ts.map +1 -0
  86. package/src/lib/interfaces/requests/getBlockLocationRequest.js +3 -0
  87. package/src/lib/interfaces/requests/getBlockLocationRequest.js.map +1 -0
  88. package/src/lib/interfaces/requests/getMessageRequest.d.ts +12 -0
  89. package/src/lib/interfaces/requests/getMessageRequest.d.ts.map +1 -0
  90. package/src/lib/interfaces/requests/getMessageRequest.js +3 -0
  91. package/src/lib/interfaces/requests/getMessageRequest.js.map +1 -0
  92. package/src/lib/interfaces/requests/getNodeRequest.d.ts +9 -0
  93. package/src/lib/interfaces/requests/getNodeRequest.d.ts.map +1 -0
  94. package/src/lib/interfaces/{membersResponse.js → requests/getNodeRequest.js} +1 -1
  95. package/src/lib/interfaces/requests/getNodeRequest.js.map +1 -0
  96. package/src/lib/interfaces/requests/index.d.ts +12 -0
  97. package/src/lib/interfaces/requests/index.d.ts.map +1 -0
  98. package/src/lib/interfaces/requests/index.js +3 -0
  99. package/src/lib/interfaces/requests/index.js.map +1 -0
  100. package/src/lib/interfaces/requests/messageRequest.d.ts +10 -0
  101. package/src/lib/interfaces/requests/messageRequest.d.ts.map +1 -0
  102. package/src/lib/interfaces/requests/messageRequest.js +3 -0
  103. package/src/lib/interfaces/requests/messageRequest.js.map +1 -0
  104. package/src/lib/interfaces/requests/queryMessagesRequest.d.ts +16 -0
  105. package/src/lib/interfaces/requests/queryMessagesRequest.d.ts.map +1 -0
  106. package/src/lib/interfaces/requests/queryMessagesRequest.js +3 -0
  107. package/src/lib/interfaces/requests/queryMessagesRequest.js.map +1 -0
  108. package/src/lib/interfaces/requests/registerNodeRequest.d.ts +11 -0
  109. package/src/lib/interfaces/requests/registerNodeRequest.d.ts.map +1 -0
  110. package/src/lib/interfaces/requests/registerNodeRequest.js +3 -0
  111. package/src/lib/interfaces/requests/registerNodeRequest.js.map +1 -0
  112. package/src/lib/interfaces/requests/replicateBlockRequest.d.ts +13 -0
  113. package/src/lib/interfaces/requests/replicateBlockRequest.d.ts.map +1 -0
  114. package/src/lib/interfaces/requests/replicateBlockRequest.js +3 -0
  115. package/src/lib/interfaces/requests/replicateBlockRequest.js.map +1 -0
  116. package/src/lib/interfaces/requests/sendMessageRequest.d.ts +24 -0
  117. package/src/lib/interfaces/requests/sendMessageRequest.d.ts.map +1 -0
  118. package/src/lib/interfaces/requests/sendMessageRequest.js +3 -0
  119. package/src/lib/interfaces/requests/sendMessageRequest.js.map +1 -0
  120. package/src/lib/interfaces/requests/storeSCBLRequestBody.d.ts +9 -0
  121. package/src/lib/interfaces/requests/storeSCBLRequestBody.d.ts.map +1 -0
  122. package/src/lib/interfaces/requests/storeSCBLRequestBody.js +3 -0
  123. package/src/lib/interfaces/requests/storeSCBLRequestBody.js.map +1 -0
  124. package/src/lib/interfaces/requests/syncRequestBody.d.ts +10 -0
  125. package/src/lib/interfaces/requests/syncRequestBody.d.ts.map +1 -0
  126. package/src/lib/interfaces/requests/syncRequestBody.js +3 -0
  127. package/src/lib/interfaces/requests/syncRequestBody.js.map +1 -0
  128. package/src/lib/interfaces/responses/index.d.ts +7 -7
  129. package/src/lib/interfaces/responses/index.d.ts.map +1 -1
  130. package/src/lib/interfaces/responses/index.js +0 -8
  131. package/src/lib/interfaces/responses/index.js.map +1 -1
  132. package/src/lib/middlewares/authentication.d.ts +133 -0
  133. package/src/lib/middlewares/authentication.d.ts.map +1 -0
  134. package/src/lib/middlewares/authentication.js +224 -0
  135. package/src/lib/middlewares/authentication.js.map +1 -0
  136. package/src/lib/middlewares/index.d.ts +2 -0
  137. package/src/lib/middlewares/index.d.ts.map +1 -1
  138. package/src/lib/middlewares/index.js +15 -1
  139. package/src/lib/middlewares/index.js.map +1 -1
  140. package/src/lib/middlewares/request-id.d.ts +18 -0
  141. package/src/lib/middlewares/request-id.d.ts.map +1 -0
  142. package/src/lib/middlewares/request-id.js +30 -0
  143. package/src/lib/middlewares/request-id.js.map +1 -0
  144. package/src/lib/openapi/index.d.ts +8 -0
  145. package/src/lib/openapi/index.d.ts.map +1 -0
  146. package/src/lib/openapi/index.js +21 -0
  147. package/src/lib/openapi/index.js.map +1 -0
  148. package/src/lib/openapi/schemas.d.ts +15 -0
  149. package/src/lib/openapi/schemas.d.ts.map +1 -0
  150. package/src/lib/openapi/schemas.js +610 -0
  151. package/src/lib/openapi/schemas.js.map +1 -0
  152. package/src/lib/routers/api.d.ts +62 -0
  153. package/src/lib/routers/api.d.ts.map +1 -1
  154. package/src/lib/routers/api.js +85 -0
  155. package/src/lib/routers/api.js.map +1 -1
  156. package/src/lib/services/diskQuorumService.d.ts +7 -6
  157. package/src/lib/services/diskQuorumService.d.ts.map +1 -1
  158. package/src/lib/services/diskQuorumService.js.map +1 -1
  159. package/src/lib/services/email.d.ts +2 -1
  160. package/src/lib/services/email.d.ts.map +1 -1
  161. package/src/lib/services/email.js.map +1 -1
  162. package/src/lib/services/eventNotificationSystem.d.ts +88 -6
  163. package/src/lib/services/eventNotificationSystem.d.ts.map +1 -1
  164. package/src/lib/services/eventNotificationSystem.js +132 -17
  165. package/src/lib/services/eventNotificationSystem.js.map +1 -1
  166. package/src/lib/services/fec.js +1 -1
  167. package/src/lib/services/fec.js.map +1 -1
  168. package/src/lib/types/backend-id.d.ts +2 -1
  169. package/src/lib/types/backend-id.d.ts.map +1 -1
  170. package/src/lib/utils/errorResponse.d.ts +227 -2
  171. package/src/lib/utils/errorResponse.d.ts.map +1 -1
  172. package/src/lib/utils/errorResponse.js +292 -3
  173. package/src/lib/utils/errorResponse.js.map +1 -1
  174. package/src/lib/i18n/index.d.ts +0 -7
  175. package/src/lib/i18n/index.d.ts.map +0 -1
  176. package/src/lib/i18n/index.js +0 -29
  177. package/src/lib/i18n/index.js.map +0 -1
  178. package/src/lib/i18n/strings/index.d.ts +0 -6
  179. package/src/lib/i18n/strings/index.d.ts.map +0 -1
  180. package/src/lib/i18n/strings/index.js +0 -17
  181. package/src/lib/i18n/strings/index.js.map +0 -1
  182. package/src/lib/interfaces/membersResponse.d.ts +0 -12
  183. package/src/lib/interfaces/membersResponse.d.ts.map +0 -1
  184. package/src/lib/interfaces/membersResponse.js.map +0 -1
@@ -0,0 +1,610 @@
1
+ "use strict";
2
+ /* eslint-disable @typescript-eslint/no-explicit-any */
3
+ /**
4
+ * OpenAPI component schemas for the BrightChain API.
5
+ * These are referenced by controllers via schema name strings.
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.BrightChainSecuritySchemes = exports.BrightChainSchemas = void 0;
9
+ exports.registerBrightChainSchemas = registerBrightChainSchemas;
10
+ const node_express_suite_1 = require("@digitaldefiance/node-express-suite");
11
+ exports.BrightChainSchemas = {
12
+ // Error response
13
+ ErrorResponse: {
14
+ type: 'object',
15
+ properties: {
16
+ error: {
17
+ type: 'object',
18
+ properties: {
19
+ code: { type: 'string' },
20
+ message: { type: 'string' },
21
+ details: { type: 'object' },
22
+ requestId: { type: 'string' },
23
+ timestamp: { type: 'string', format: 'date-time' },
24
+ },
25
+ required: ['code', 'message', 'requestId'],
26
+ },
27
+ },
28
+ },
29
+ // Health schemas
30
+ HealthResponse: {
31
+ type: 'object',
32
+ properties: {
33
+ message: { type: 'string' },
34
+ status: {
35
+ type: 'string',
36
+ enum: ['healthy', 'degraded', 'unhealthy', 'starting'],
37
+ },
38
+ uptime: { type: 'number' },
39
+ timestamp: { type: 'string', format: 'date-time' },
40
+ version: { type: 'string' },
41
+ },
42
+ required: ['status', 'uptime', 'timestamp', 'version'],
43
+ },
44
+ DetailedHealthResponse: {
45
+ allOf: [
46
+ { $ref: '#/components/schemas/HealthResponse' },
47
+ {
48
+ type: 'object',
49
+ properties: {
50
+ dependencies: {
51
+ type: 'object',
52
+ properties: {
53
+ blockStore: { $ref: '#/components/schemas/DependencyStatus' },
54
+ messageService: { $ref: '#/components/schemas/DependencyStatus' },
55
+ webSocketServer: {
56
+ $ref: '#/components/schemas/DependencyStatus',
57
+ },
58
+ },
59
+ },
60
+ },
61
+ },
62
+ ],
63
+ },
64
+ DependencyStatus: {
65
+ type: 'object',
66
+ properties: {
67
+ name: { type: 'string' },
68
+ status: {
69
+ type: 'string',
70
+ enum: ['healthy', 'degraded', 'unhealthy', 'starting'],
71
+ },
72
+ latencyMs: { type: 'number' },
73
+ message: { type: 'string' },
74
+ },
75
+ required: ['name', 'status'],
76
+ },
77
+ // Message schemas
78
+ SendMessageRequest: {
79
+ type: 'object',
80
+ properties: {
81
+ content: { type: 'string', description: 'Base64 encoded content' },
82
+ senderId: { type: 'string' },
83
+ recipients: { type: 'array', items: { type: 'string' } },
84
+ messageType: { type: 'string' },
85
+ priority: { type: 'integer', enum: [0, 1, 2, 3] },
86
+ encryptionScheme: { type: 'integer' },
87
+ },
88
+ required: ['content', 'senderId', 'messageType'],
89
+ },
90
+ SendMessageResponse: {
91
+ type: 'object',
92
+ properties: {
93
+ messageId: { type: 'string' },
94
+ magnetUrl: { type: 'string' },
95
+ },
96
+ },
97
+ GetMessageResponse: {
98
+ type: 'object',
99
+ properties: {
100
+ content: { type: 'string', description: 'Base64 encoded content' },
101
+ },
102
+ },
103
+ QueryMessagesResponse: {
104
+ type: 'object',
105
+ properties: {
106
+ messages: { type: 'array', items: { type: 'object' } },
107
+ total: { type: 'integer' },
108
+ page: { type: 'integer' },
109
+ pageSize: { type: 'integer' },
110
+ },
111
+ },
112
+ // Block schemas
113
+ StoreBlockRequest: {
114
+ type: 'object',
115
+ properties: {
116
+ data: { type: 'string', description: 'Base64 encoded block data' },
117
+ canRead: { type: 'boolean', default: true },
118
+ canPersist: { type: 'boolean', default: true },
119
+ options: {
120
+ type: 'object',
121
+ properties: {
122
+ expiresAt: { type: 'string', format: 'date-time' },
123
+ durabilityLevel: {
124
+ type: 'string',
125
+ enum: ['ephemeral', 'standard', 'high_durability'],
126
+ },
127
+ },
128
+ },
129
+ },
130
+ required: ['data'],
131
+ },
132
+ StoreBlockResponse: {
133
+ type: 'object',
134
+ properties: {
135
+ blockId: { type: 'string' },
136
+ success: { type: 'boolean' },
137
+ metadata: { type: 'object' },
138
+ },
139
+ },
140
+ GetBlockResponse: {
141
+ type: 'object',
142
+ properties: {
143
+ blockId: { type: 'string' },
144
+ data: { type: 'string' },
145
+ canRead: { type: 'boolean' },
146
+ canPersist: { type: 'boolean' },
147
+ metadata: { type: 'object' },
148
+ },
149
+ },
150
+ GetBlockMetadataResponse: {
151
+ type: 'object',
152
+ properties: {
153
+ blockId: { type: 'string' },
154
+ metadata: { type: 'object' },
155
+ },
156
+ },
157
+ BrightenBlockRequest: {
158
+ type: 'object',
159
+ properties: {
160
+ blockId: { type: 'string' },
161
+ randomBlockCount: { type: 'integer', minimum: 1 },
162
+ },
163
+ required: ['blockId', 'randomBlockCount'],
164
+ },
165
+ BrightenBlockResponse: {
166
+ type: 'object',
167
+ properties: {
168
+ brightenedBlockId: { type: 'string' },
169
+ randomBlockIds: { type: 'array', items: { type: 'string' } },
170
+ originalBlockId: { type: 'string' },
171
+ },
172
+ },
173
+ // CBL schemas
174
+ StoreCBLRequest: {
175
+ type: 'object',
176
+ properties: {
177
+ cblData: { type: 'string', description: 'Base64 encoded CBL' },
178
+ durabilityLevel: {
179
+ type: 'string',
180
+ enum: ['ephemeral', 'standard', 'enhanced', 'maximum'],
181
+ },
182
+ isEncrypted: { type: 'boolean' },
183
+ },
184
+ required: ['cblData'],
185
+ },
186
+ StoreCBLResponse: {
187
+ type: 'object',
188
+ properties: {
189
+ success: { type: 'boolean' },
190
+ message: { type: 'string' },
191
+ data: { type: 'object' },
192
+ },
193
+ },
194
+ RetrieveCBLResponse: {
195
+ type: 'object',
196
+ properties: {
197
+ success: { type: 'boolean' },
198
+ message: { type: 'string' },
199
+ data: {
200
+ type: 'object',
201
+ properties: {
202
+ cblData: { type: 'string' },
203
+ isEncrypted: { type: 'boolean' },
204
+ },
205
+ },
206
+ },
207
+ },
208
+ // Super CBL schemas
209
+ StoreSCBLRequest: {
210
+ type: 'object',
211
+ properties: {
212
+ data: { type: 'string', description: 'Base64 encoded file data' },
213
+ durabilityLevel: {
214
+ type: 'string',
215
+ enum: ['ephemeral', 'standard', 'enhanced', 'maximum'],
216
+ },
217
+ isEncrypted: { type: 'boolean' },
218
+ },
219
+ required: ['data'],
220
+ },
221
+ StoreSCBLResponse: {
222
+ type: 'object',
223
+ properties: {
224
+ success: { type: 'boolean' },
225
+ message: { type: 'string' },
226
+ magnetUrl: { type: 'string' },
227
+ metadata: {
228
+ type: 'object',
229
+ properties: {
230
+ hierarchyDepth: { type: 'integer' },
231
+ subCblCount: { type: 'integer' },
232
+ totalSize: { type: 'integer' },
233
+ rootBlockIds: { type: 'array', items: { type: 'string' } },
234
+ },
235
+ },
236
+ },
237
+ },
238
+ RetrieveSCBLResponse: {
239
+ type: 'object',
240
+ properties: {
241
+ success: { type: 'boolean' },
242
+ message: { type: 'string' },
243
+ data: { type: 'string' },
244
+ isEncrypted: { type: 'boolean' },
245
+ },
246
+ },
247
+ // Node schemas
248
+ NodeInfo: {
249
+ type: 'object',
250
+ properties: {
251
+ nodeId: { type: 'string' },
252
+ publicKey: { type: 'string' },
253
+ status: { type: 'string', enum: ['online', 'offline', 'unreachable'] },
254
+ capabilities: { type: 'array', items: { type: 'string' } },
255
+ lastSeen: { type: 'string', format: 'date-time' },
256
+ latencyMs: { type: 'number' },
257
+ },
258
+ },
259
+ ListNodesResponse: {
260
+ type: 'object',
261
+ properties: {
262
+ message: { type: 'string' },
263
+ nodes: {
264
+ type: 'array',
265
+ items: { $ref: '#/components/schemas/NodeInfo' },
266
+ },
267
+ total: { type: 'integer' },
268
+ },
269
+ },
270
+ GetNodeResponse: {
271
+ type: 'object',
272
+ properties: {
273
+ message: { type: 'string' },
274
+ node: { $ref: '#/components/schemas/NodeInfo' },
275
+ },
276
+ },
277
+ DiscoverBlockRequest: {
278
+ type: 'object',
279
+ properties: { blockId: { type: 'string' } },
280
+ required: ['blockId'],
281
+ },
282
+ DiscoverBlockResponse: {
283
+ type: 'object',
284
+ properties: {
285
+ message: { type: 'string' },
286
+ blockId: { type: 'string' },
287
+ found: { type: 'boolean' },
288
+ locations: {
289
+ type: 'array',
290
+ items: {
291
+ type: 'object',
292
+ properties: {
293
+ nodeId: { type: 'string' },
294
+ latencyMs: { type: 'number' },
295
+ lastSeen: { type: 'string', format: 'date-time' },
296
+ },
297
+ },
298
+ },
299
+ queriedPeers: { type: 'integer' },
300
+ duration: { type: 'number' },
301
+ },
302
+ },
303
+ RegisterNodeRequest: {
304
+ type: 'object',
305
+ properties: {
306
+ nodeId: { type: 'string' },
307
+ publicKey: { type: 'string' },
308
+ },
309
+ required: ['nodeId', 'publicKey'],
310
+ },
311
+ RegisterNodeResponse: {
312
+ type: 'object',
313
+ properties: {
314
+ message: { type: 'string' },
315
+ success: { type: 'boolean' },
316
+ nodeId: { type: 'string' },
317
+ },
318
+ },
319
+ // Sync schemas
320
+ ReplicateBlockRequest: {
321
+ type: 'object',
322
+ properties: {
323
+ targetNodeIds: { type: 'array', items: { type: 'string' } },
324
+ },
325
+ required: ['targetNodeIds'],
326
+ },
327
+ ReplicateBlockResponse: {
328
+ type: 'object',
329
+ properties: {
330
+ message: { type: 'string' },
331
+ blockId: { type: 'string' },
332
+ replicationResults: {
333
+ type: 'array',
334
+ items: {
335
+ type: 'object',
336
+ properties: {
337
+ nodeId: { type: 'string' },
338
+ success: { type: 'boolean' },
339
+ error: { type: 'string' },
340
+ },
341
+ },
342
+ },
343
+ },
344
+ },
345
+ BlockLocationsResponse: {
346
+ type: 'object',
347
+ properties: {
348
+ message: { type: 'string' },
349
+ blockId: { type: 'string' },
350
+ locations: {
351
+ type: 'array',
352
+ items: {
353
+ type: 'object',
354
+ properties: {
355
+ nodeId: { type: 'string' },
356
+ lastSeen: { type: 'string', format: 'date-time' },
357
+ latencyMs: { type: 'number' },
358
+ isAuthoritative: { type: 'boolean' },
359
+ },
360
+ },
361
+ },
362
+ },
363
+ },
364
+ SyncRequestBody: {
365
+ type: 'object',
366
+ properties: {
367
+ blockIds: { type: 'array', items: { type: 'string' } },
368
+ },
369
+ required: ['blockIds'],
370
+ },
371
+ SyncRequestResponse: {
372
+ type: 'object',
373
+ properties: {
374
+ message: { type: 'string' },
375
+ available: { type: 'array', items: { type: 'string' } },
376
+ missing: { type: 'array', items: { type: 'string' } },
377
+ unknown: { type: 'array', items: { type: 'string' } },
378
+ },
379
+ },
380
+ ReconcileResponse: {
381
+ type: 'object',
382
+ properties: {
383
+ message: { type: 'string' },
384
+ result: { type: 'object' },
385
+ },
386
+ },
387
+ // User schemas
388
+ RegisterRequest: {
389
+ type: 'object',
390
+ properties: {
391
+ username: { type: 'string' },
392
+ email: { type: 'string', format: 'email' },
393
+ password: { type: 'string', format: 'password' },
394
+ },
395
+ required: ['username', 'email', 'password'],
396
+ },
397
+ LoginRequest: {
398
+ type: 'object',
399
+ properties: {
400
+ username: { type: 'string' },
401
+ password: { type: 'string', format: 'password' },
402
+ },
403
+ required: ['username', 'password'],
404
+ },
405
+ AuthResponse: {
406
+ type: 'object',
407
+ properties: {
408
+ message: { type: 'string' },
409
+ token: { type: 'string' },
410
+ memberId: { type: 'string' },
411
+ energyBalance: { type: 'number' },
412
+ },
413
+ },
414
+ ProfileResponse: {
415
+ type: 'object',
416
+ properties: {
417
+ message: { type: 'string' },
418
+ memberId: { type: 'string' },
419
+ energyBalance: { type: 'number' },
420
+ availableBalance: { type: 'number' },
421
+ earned: { type: 'number' },
422
+ spent: { type: 'number' },
423
+ reserved: { type: 'number' },
424
+ reputation: { type: 'number' },
425
+ createdAt: { type: 'string', format: 'date-time' },
426
+ lastUpdated: { type: 'string', format: 'date-time' },
427
+ },
428
+ },
429
+ UpdateProfileRequest: {
430
+ type: 'object',
431
+ properties: {
432
+ displayName: { type: 'string' },
433
+ settings: {
434
+ type: 'object',
435
+ properties: {
436
+ autoReplication: { type: 'boolean' },
437
+ minRedundancy: { type: 'integer' },
438
+ preferredRegions: { type: 'array', items: { type: 'string' } },
439
+ },
440
+ },
441
+ },
442
+ },
443
+ // Energy schemas
444
+ EnergyBalanceResponse: {
445
+ type: 'object',
446
+ properties: {
447
+ message: { type: 'string' },
448
+ balance: { type: 'number' },
449
+ earned: { type: 'number' },
450
+ spent: { type: 'number' },
451
+ reserved: { type: 'number' },
452
+ reputation: { type: 'number' },
453
+ },
454
+ },
455
+ TransactionsResponse: {
456
+ type: 'object',
457
+ properties: {
458
+ message: { type: 'string' },
459
+ transactions: {
460
+ type: 'array',
461
+ items: {
462
+ type: 'object',
463
+ properties: {
464
+ id: { type: 'string' },
465
+ timestamp: { type: 'string', format: 'date-time' },
466
+ source: { type: 'string' },
467
+ destination: { type: 'string' },
468
+ amount: { type: 'number' },
469
+ operationType: { type: 'string' },
470
+ blockId: { type: 'string' },
471
+ metadata: { type: 'object' },
472
+ },
473
+ },
474
+ },
475
+ count: { type: 'integer' },
476
+ },
477
+ },
478
+ // Quorum schemas
479
+ AddMemberRequest: {
480
+ type: 'object',
481
+ properties: {
482
+ name: { type: 'string' },
483
+ email: { type: 'string', format: 'email' },
484
+ role: { type: 'string' },
485
+ },
486
+ required: ['name'],
487
+ },
488
+ AddMemberResponse: {
489
+ type: 'object',
490
+ properties: {
491
+ message: { type: 'string' },
492
+ member: { $ref: '#/components/schemas/QuorumMember' },
493
+ mnemonic: { type: 'string' },
494
+ },
495
+ },
496
+ QuorumMember: {
497
+ type: 'object',
498
+ properties: {
499
+ id: { type: 'string' },
500
+ publicKey: { type: 'string' },
501
+ metadata: { type: 'object' },
502
+ isActive: { type: 'boolean' },
503
+ createdAt: { type: 'string', format: 'date-time' },
504
+ updatedAt: { type: 'string', format: 'date-time' },
505
+ },
506
+ },
507
+ ListMembersResponse: {
508
+ type: 'object',
509
+ properties: {
510
+ message: { type: 'string' },
511
+ members: {
512
+ type: 'array',
513
+ items: { $ref: '#/components/schemas/QuorumMember' },
514
+ },
515
+ },
516
+ },
517
+ SealDocumentRequest: {
518
+ type: 'object',
519
+ properties: {
520
+ document: { type: 'object' },
521
+ memberIds: { type: 'array', items: { type: 'string' }, minItems: 2 },
522
+ sharesRequired: { type: 'integer', minimum: 2 },
523
+ },
524
+ required: ['document', 'memberIds'],
525
+ },
526
+ SealDocumentResponse: {
527
+ type: 'object',
528
+ properties: {
529
+ message: { type: 'string' },
530
+ documentId: { type: 'string' },
531
+ memberIds: { type: 'array', items: { type: 'string' } },
532
+ sharesRequired: { type: 'integer' },
533
+ createdAt: { type: 'string', format: 'date-time' },
534
+ },
535
+ },
536
+ UnsealDocumentRequest: {
537
+ type: 'object',
538
+ properties: {
539
+ memberCredentials: {
540
+ type: 'array',
541
+ items: {
542
+ type: 'object',
543
+ properties: {
544
+ memberId: { type: 'string' },
545
+ mnemonic: { type: 'string' },
546
+ },
547
+ required: ['memberId', 'mnemonic'],
548
+ },
549
+ },
550
+ },
551
+ required: ['memberCredentials'],
552
+ },
553
+ UnsealDocumentResponse: {
554
+ type: 'object',
555
+ properties: {
556
+ message: { type: 'string' },
557
+ document: { type: 'object' },
558
+ },
559
+ },
560
+ GetDocumentResponse: {
561
+ type: 'object',
562
+ properties: {
563
+ message: { type: 'string' },
564
+ document: { type: 'object' },
565
+ },
566
+ },
567
+ CanUnlockResponse: {
568
+ type: 'object',
569
+ properties: {
570
+ message: { type: 'string' },
571
+ canUnlock: { type: 'boolean' },
572
+ sharesProvided: { type: 'integer' },
573
+ sharesRequired: { type: 'integer' },
574
+ missingMembers: { type: 'array', items: { type: 'string' } },
575
+ },
576
+ },
577
+ // OpenAPI spec schema (for the docs endpoint itself)
578
+ OpenAPISpec: {
579
+ type: 'object',
580
+ properties: {
581
+ openapi: { type: 'string' },
582
+ info: { type: 'object' },
583
+ servers: { type: 'array' },
584
+ paths: { type: 'object' },
585
+ components: { type: 'object' },
586
+ },
587
+ },
588
+ };
589
+ /**
590
+ * Security schemes for the API
591
+ */
592
+ exports.BrightChainSecuritySchemes = {
593
+ bearerAuth: {
594
+ type: 'http',
595
+ scheme: 'bearer',
596
+ bearerFormat: 'JWT',
597
+ description: 'JWT authentication token. Obtain via POST /user/login.',
598
+ },
599
+ };
600
+ /**
601
+ * Register all BrightChain schemas with the OpenAPI registry.
602
+ * Call this during application initialization.
603
+ */
604
+ function registerBrightChainSchemas() {
605
+ node_express_suite_1.OpenAPISchemaRegistry.registerSchemas(exports.BrightChainSchemas);
606
+ node_express_suite_1.OpenAPISchemaRegistry.registerSecuritySchemes(exports.BrightChainSecuritySchemes);
607
+ }
608
+ // Auto-register on import
609
+ registerBrightChainSchemas();
610
+ //# sourceMappingURL=schemas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/openapi/schemas.ts"],"names":[],"mappings":";AAAA,uDAAuD;AACvD;;;GAGG;;;AAkmBH,gEAGC;AAnmBD,4EAA4E;AAE/D,QAAA,kBAAkB,GAAwB;IACrD,iBAAiB;IACjB,aAAa,EAAE;QACb,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,KAAK,EAAE;gBACL,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBACxB,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBAC3B,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBAC3B,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBAC7B,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE;iBACnD;gBACD,QAAQ,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,CAAC;aAC3C;SACF;KACF;IAED,iBAAiB;IACjB,cAAc,EAAE;QACd,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC3B,MAAM,EAAE;gBACN,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,CAAC;aACvD;YACD,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC1B,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE;YAClD,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;SAC5B;QACD,QAAQ,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,CAAC;KACvD;IACD,sBAAsB,EAAE;QACtB,KAAK,EAAE;YACL,EAAE,IAAI,EAAE,qCAAqC,EAAE;YAC/C;gBACE,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,YAAY,EAAE;wBACZ,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,UAAU,EAAE,EAAE,IAAI,EAAE,uCAAuC,EAAE;4BAC7D,cAAc,EAAE,EAAE,IAAI,EAAE,uCAAuC,EAAE;4BACjE,eAAe,EAAE;gCACf,IAAI,EAAE,uCAAuC;6BAC9C;yBACF;qBACF;iBACF;aACF;SACF;KACF;IACD,gBAAgB,EAAE;QAChB,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACxB,MAAM,EAAE;gBACN,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,CAAC;aACvD;YACD,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC7B,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;SAC5B;QACD,QAAQ,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC;KAC7B;IAED,kBAAkB;IAClB,kBAAkB,EAAE;QAClB,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,wBAAwB,EAAE;YAClE,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC5B,UAAU,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;YACxD,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC/B,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE;YACjD,gBAAgB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;SACtC;QACD,QAAQ,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,aAAa,CAAC;KACjD;IACD,mBAAmB,EAAE;QACnB,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC7B,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;SAC9B;KACF;IACD,kBAAkB,EAAE;QAClB,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,wBAAwB,EAAE;SACnE;KACF;IACD,qBAAqB,EAAE;QACrB,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;YACtD,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;YAC1B,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;YACzB,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;SAC9B;KACF;IAED,gBAAgB;IAChB,iBAAiB,EAAE;QACjB,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,2BAA2B,EAAE;YAClE,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE;YAC3C,UAAU,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE;YAC9C,OAAO,EAAE;gBACP,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE;oBAClD,eAAe,EAAE;wBACf,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE,CAAC,WAAW,EAAE,UAAU,EAAE,iBAAiB,CAAC;qBACnD;iBACF;aACF;SACF;QACD,QAAQ,EAAE,CAAC,MAAM,CAAC;KACnB;IACD,kBAAkB,EAAE;QAClB,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC3B,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;YAC5B,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;SAC7B;KACF;IACD,gBAAgB,EAAE;QAChB,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC3B,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACxB,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;YAC5B,UAAU,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;YAC/B,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;SAC7B;KACF;IACD,wBAAwB,EAAE;QACxB,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC3B,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;SAC7B;KACF;IACD,oBAAoB,EAAE;QACpB,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC3B,gBAAgB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE;SAClD;QACD,QAAQ,EAAE,CAAC,SAAS,EAAE,kBAAkB,CAAC;KAC1C;IACD,qBAAqB,EAAE;QACrB,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,iBAAiB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACrC,cAAc,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;YAC5D,eAAe,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;SACpC;KACF;IAED,cAAc;IACd,eAAe,EAAE;QACf,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,oBAAoB,EAAE;YAC9D,eAAe,EAAE;gBACf,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,CAAC,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,CAAC;aACvD;YACD,WAAW,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;SACjC;QACD,QAAQ,EAAE,CAAC,SAAS,CAAC;KACtB;IACD,gBAAgB,EAAE;QAChB,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;YAC5B,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC3B,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;SACzB;KACF;IACD,mBAAmB,EAAE;QACnB,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;YAC5B,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC3B,IAAI,EAAE;gBACJ,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBAC3B,WAAW,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;iBACjC;aACF;SACF;KACF;IAED,oBAAoB;IACpB,gBAAgB,EAAE;QAChB,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,0BAA0B,EAAE;YACjE,eAAe,EAAE;gBACf,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,CAAC,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,CAAC;aACvD;YACD,WAAW,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;SACjC;QACD,QAAQ,EAAE,CAAC,MAAM,CAAC;KACnB;IACD,iBAAiB,EAAE;QACjB,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;YAC5B,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC3B,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC7B,QAAQ,EAAE;gBACR,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,cAAc,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;oBACnC,WAAW,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;oBAChC,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;oBAC9B,YAAY,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;iBAC3D;aACF;SACF;KACF;IACD,oBAAoB,EAAE;QACpB,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;YAC5B,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC3B,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACxB,WAAW,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;SACjC;KACF;IAED,eAAe;IACf,QAAQ,EAAE;QACR,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC1B,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC7B,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,aAAa,CAAC,EAAE;YACtE,YAAY,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;YAC1D,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE;YACjD,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;SAC9B;KACF;IACD,iBAAiB,EAAE;QACjB,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC3B,KAAK,EAAE;gBACL,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,EAAE,IAAI,EAAE,+BAA+B,EAAE;aACjD;YACD,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;SAC3B;KACF;IACD,eAAe,EAAE;QACf,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC3B,IAAI,EAAE,EAAE,IAAI,EAAE,+BAA+B,EAAE;SAChD;KACF;IACD,oBAAoB,EAAE;QACpB,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;QAC3C,QAAQ,EAAE,CAAC,SAAS,CAAC;KACtB;IACD,qBAAqB,EAAE;QACrB,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC3B,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC3B,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;YAC1B,SAAS,EAAE;gBACT,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;wBAC1B,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;wBAC7B,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE;qBAClD;iBACF;aACF;YACD,YAAY,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;YACjC,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;SAC7B;KACF;IACD,mBAAmB,EAAE;QACnB,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC1B,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;SAC9B;QACD,QAAQ,EAAE,CAAC,QAAQ,EAAE,WAAW,CAAC;KAClC;IACD,oBAAoB,EAAE;QACpB,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC3B,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;YAC5B,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;SAC3B;KACF;IAED,eAAe;IACf,qBAAqB,EAAE;QACrB,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,aAAa,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;SAC5D;QACD,QAAQ,EAAE,CAAC,eAAe,CAAC;KAC5B;IACD,sBAAsB,EAAE;QACtB,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC3B,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC3B,kBAAkB,EAAE;gBAClB,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;wBAC1B,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;wBAC5B,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;qBAC1B;iBACF;aACF;SACF;KACF;IACD,sBAAsB,EAAE;QACtB,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC3B,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC3B,SAAS,EAAE;gBACT,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;wBAC1B,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE;wBACjD,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;wBAC7B,eAAe,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;qBACrC;iBACF;aACF;SACF;KACF;IACD,eAAe,EAAE;QACf,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;SACvD;QACD,QAAQ,EAAE,CAAC,UAAU,CAAC;KACvB;IACD,mBAAmB,EAAE;QACnB,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC3B,SAAS,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;YACvD,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;YACrD,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;SACtD;KACF;IACD,iBAAiB,EAAE;QACjB,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC3B,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;SAC3B;KACF;IAED,eAAe;IACf,eAAe,EAAE;QACf,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC5B,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE;YAC1C,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE;SACjD;QACD,QAAQ,EAAE,CAAC,UAAU,EAAE,OAAO,EAAE,UAAU,CAAC;KAC5C;IACD,YAAY,EAAE;QACZ,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC5B,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE;SACjD;QACD,QAAQ,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC;KACnC;IACD,YAAY,EAAE;QACZ,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC3B,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACzB,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC5B,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;SAClC;KACF;IACD,eAAe,EAAE;QACf,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC3B,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC5B,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACjC,gBAAgB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACpC,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC1B,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACzB,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC5B,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC9B,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE;YAClD,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE;SACrD;KACF;IACD,oBAAoB,EAAE;QACpB,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC/B,QAAQ,EAAE;gBACR,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,eAAe,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;oBACpC,aAAa,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;oBAClC,gBAAgB,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;iBAC/D;aACF;SACF;KACF;IAED,iBAAiB;IACjB,qBAAqB,EAAE;QACrB,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC3B,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC3B,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC1B,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACzB,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC5B,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;SAC/B;KACF;IACD,oBAAoB,EAAE;QACpB,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC3B,YAAY,EAAE;gBACZ,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;wBACtB,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE;wBAClD,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;wBAC1B,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;wBAC/B,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;wBAC1B,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;wBACjC,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;wBAC3B,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;qBAC7B;iBACF;aACF;YACD,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;SAC3B;KACF;IAED,iBAAiB;IACjB,gBAAgB,EAAE;QAChB,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACxB,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE;YAC1C,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;SACzB;QACD,QAAQ,EAAE,CAAC,MAAM,CAAC;KACnB;IACD,iBAAiB,EAAE;QACjB,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC3B,MAAM,EAAE,EAAE,IAAI,EAAE,mCAAmC,EAAE;YACrD,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;SAC7B;KACF;IACD,YAAY,EAAE;QACZ,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACtB,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC7B,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC5B,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;YAC7B,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE;YAClD,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE;SACnD;KACF;IACD,mBAAmB,EAAE;QACnB,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC3B,OAAO,EAAE;gBACP,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,EAAE,IAAI,EAAE,mCAAmC,EAAE;aACrD;SACF;KACF;IACD,mBAAmB,EAAE;QACnB,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC5B,SAAS,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE;YACpE,cAAc,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE;SAChD;QACD,QAAQ,EAAE,CAAC,UAAU,EAAE,WAAW,CAAC;KACpC;IACD,oBAAoB,EAAE;QACpB,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC3B,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC9B,SAAS,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;YACvD,cAAc,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;YACnC,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE;SACnD;KACF;IACD,qBAAqB,EAAE;QACrB,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,iBAAiB,EAAE;gBACjB,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;wBAC5B,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;qBAC7B;oBACD,QAAQ,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC;iBACnC;aACF;SACF;QACD,QAAQ,EAAE,CAAC,mBAAmB,CAAC;KAChC;IACD,sBAAsB,EAAE;QACtB,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC3B,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;SAC7B;KACF;IACD,mBAAmB,EAAE;QACnB,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC3B,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;SAC7B;KACF;IACD,iBAAiB,EAAE;QACjB,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC3B,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;YAC9B,cAAc,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;YACnC,cAAc,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;YACnC,cAAc,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;SAC7D;KACF;IAED,qDAAqD;IACrD,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC3B,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACxB,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;YAC1B,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACzB,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;SAC/B;KACF;CACF,CAAC;AAEF;;GAEG;AACU,QAAA,0BAA0B,GAAwB;IAC7D,UAAU,EAAE;QACV,IAAI,EAAE,MAAM;QACZ,MAAM,EAAE,QAAQ;QAChB,YAAY,EAAE,KAAK;QACnB,WAAW,EAAE,wDAAwD;KACtE;CACF,CAAC;AAEF;;;GAGG;AACH,SAAgB,0BAA0B;IACxC,0CAAqB,CAAC,eAAe,CAAC,0BAAkB,CAAC,CAAC;IAC1D,0CAAqB,CAAC,uBAAuB,CAAC,kCAA0B,CAAC,CAAC;AAC5E,CAAC;AAED,0BAA0B;AAC1B,0BAA0B,EAAE,CAAC"}