@enbox/dwn-server 0.0.2 → 0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +13 -13
- package/dist/esm/src/config.d.ts +2 -6
- package/dist/esm/src/config.d.ts.map +1 -1
- package/dist/esm/src/config.js +4 -8
- package/dist/esm/src/config.js.map +1 -1
- package/dist/esm/src/connection/connection-manager.d.ts +9 -9
- package/dist/esm/src/connection/connection-manager.d.ts.map +1 -1
- package/dist/esm/src/connection/connection-manager.js +5 -3
- package/dist/esm/src/connection/connection-manager.js.map +1 -1
- package/dist/esm/src/connection/socket-connection.d.ts +18 -17
- package/dist/esm/src/connection/socket-connection.d.ts.map +1 -1
- package/dist/esm/src/connection/socket-connection.js +26 -35
- package/dist/esm/src/connection/socket-connection.js.map +1 -1
- package/dist/esm/src/dwn-error.js.map +1 -1
- package/dist/esm/src/dwn-server.d.ts +5 -6
- package/dist/esm/src/dwn-server.d.ts.map +1 -1
- package/dist/esm/src/dwn-server.js +3 -14
- package/dist/esm/src/dwn-server.js.map +1 -1
- package/dist/esm/src/http-api.d.ts +9 -11
- package/dist/esm/src/http-api.d.ts.map +1 -1
- package/dist/esm/src/http-api.js +450 -375
- package/dist/esm/src/http-api.js.map +1 -1
- package/dist/esm/src/json-rpc-handlers/dwn/process-message.d.ts.map +1 -1
- package/dist/esm/src/json-rpc-handlers/dwn/process-message.js +3 -3
- package/dist/esm/src/json-rpc-handlers/dwn/process-message.js.map +1 -1
- package/dist/esm/src/json-rpc-handlers/subscription/close.d.ts.map +1 -1
- package/dist/esm/src/json-rpc-handlers/subscription/close.js.map +1 -1
- package/dist/esm/src/json-rpc-socket.d.ts +1 -1
- package/dist/esm/src/json-rpc-socket.d.ts.map +1 -1
- package/dist/esm/src/json-rpc-socket.js +1 -1
- package/dist/esm/src/json-rpc-socket.js.map +1 -1
- package/dist/esm/src/lib/json-rpc-router.d.ts +3 -4
- package/dist/esm/src/lib/json-rpc-router.d.ts.map +1 -1
- package/dist/esm/src/lib/json-rpc-router.js.map +1 -1
- package/dist/esm/src/lib/json-rpc.d.ts.map +1 -1
- package/dist/esm/src/lib/json-rpc.js.map +1 -1
- package/dist/esm/src/main.js +0 -0
- package/dist/esm/src/metrics.d.ts +1 -1
- package/dist/esm/src/metrics.js.map +1 -1
- package/dist/esm/src/registration/proof-of-work-manager.d.ts +1 -1
- package/dist/esm/src/registration/proof-of-work-manager.d.ts.map +1 -1
- package/dist/esm/src/registration/proof-of-work-manager.js +3 -3
- package/dist/esm/src/registration/proof-of-work-manager.js.map +1 -1
- package/dist/esm/src/registration/registration-manager.d.ts +3 -3
- package/dist/esm/src/registration/registration-manager.d.ts.map +1 -1
- package/dist/esm/src/registration/registration-manager.js +6 -6
- package/dist/esm/src/registration/registration-manager.js.map +1 -1
- package/dist/esm/src/registration/registration-store.d.ts +1 -1
- package/dist/esm/src/registration/registration-store.d.ts.map +1 -1
- package/dist/esm/src/registration/registration-store.js.map +1 -1
- package/dist/esm/src/storage.d.ts +2 -2
- package/dist/esm/src/storage.d.ts.map +1 -1
- package/dist/esm/src/storage.js +5 -4
- package/dist/esm/src/storage.js.map +1 -1
- package/dist/esm/src/web5-connect/sql-ttl-cache.d.ts.map +1 -1
- package/dist/esm/src/web5-connect/sql-ttl-cache.js +3 -2
- package/dist/esm/src/web5-connect/sql-ttl-cache.js.map +1 -1
- package/dist/esm/src/web5-connect/web5-connect-server.d.ts.map +1 -1
- package/dist/esm/src/web5-connect/web5-connect-server.js +2 -2
- package/dist/esm/src/web5-connect/web5-connect-server.js.map +1 -1
- package/dist/esm/src/ws-api.d.ts +2 -4
- package/dist/esm/src/ws-api.d.ts.map +1 -1
- package/dist/esm/src/ws-api.js +6 -17
- package/dist/esm/src/ws-api.js.map +1 -1
- package/dist/esm/tests/common-scenario-validator.d.ts.map +1 -1
- package/dist/esm/tests/common-scenario-validator.js +2 -3
- package/dist/esm/tests/common-scenario-validator.js.map +1 -1
- package/dist/esm/tests/connection/connection-manager.spec.js +11 -9
- package/dist/esm/tests/connection/connection-manager.spec.js.map +1 -1
- package/dist/esm/tests/connection/socket-connection.spec.js +40 -18
- package/dist/esm/tests/connection/socket-connection.spec.js.map +1 -1
- package/dist/esm/tests/cors/http-api.browser.js +1 -1
- package/dist/esm/tests/cors/http-api.browser.js.map +1 -1
- package/dist/esm/tests/dwn-process-message.spec.js +4 -4
- package/dist/esm/tests/dwn-process-message.spec.js.map +1 -1
- package/dist/esm/tests/dwn-server.spec.js +8 -9
- package/dist/esm/tests/dwn-server.spec.js.map +1 -1
- package/dist/esm/tests/http-api.spec.js +92 -85
- package/dist/esm/tests/http-api.spec.js.map +1 -1
- package/dist/esm/tests/json-rpc-socket.spec.js +11 -9
- package/dist/esm/tests/json-rpc-socket.spec.js.map +1 -1
- package/dist/esm/tests/plugins/data-store-sqlite.d.ts +2 -2
- package/dist/esm/tests/plugins/data-store-sqlite.js +2 -2
- package/dist/esm/tests/plugins/event-log-sqlite.d.ts +2 -2
- package/dist/esm/tests/plugins/event-log-sqlite.js +2 -2
- package/dist/esm/tests/plugins/event-stream-in-memory.d.ts +2 -2
- package/dist/esm/tests/plugins/event-stream-in-memory.d.ts.map +1 -1
- package/dist/esm/tests/plugins/event-stream-in-memory.js +1 -1
- package/dist/esm/tests/plugins/event-stream-in-memory.js.map +1 -1
- package/dist/esm/tests/plugins/message-store-sqlite.d.ts +2 -2
- package/dist/esm/tests/plugins/message-store-sqlite.d.ts.map +1 -1
- package/dist/esm/tests/plugins/message-store-sqlite.js +2 -2
- package/dist/esm/tests/plugins/message-store-sqlite.js.map +1 -1
- package/dist/esm/tests/plugins/resumable-task-store-sqlite.d.ts +2 -2
- package/dist/esm/tests/plugins/resumable-task-store-sqlite.d.ts.map +1 -1
- package/dist/esm/tests/plugins/resumable-task-store-sqlite.js +2 -2
- package/dist/esm/tests/plugins/resumable-task-store-sqlite.js.map +1 -1
- package/dist/esm/tests/process-handler.spec.js +6 -6
- package/dist/esm/tests/process-handler.spec.js.map +1 -1
- package/dist/esm/tests/registration/proof-of-work-manager.spec.js +3 -4
- package/dist/esm/tests/registration/proof-of-work-manager.spec.js.map +1 -1
- package/dist/esm/tests/rpc-subscribe-close.spec.js +1 -1
- package/dist/esm/tests/rpc-subscribe-close.spec.js.map +1 -1
- package/dist/esm/tests/scenarios/dynamic-plugin-loading.spec.js +11 -10
- package/dist/esm/tests/scenarios/dynamic-plugin-loading.spec.js.map +1 -1
- package/dist/esm/tests/scenarios/registration.spec.js +16 -12
- package/dist/esm/tests/scenarios/registration.spec.js.map +1 -1
- package/dist/esm/tests/scenarios/web5-connect.spec.js +12 -8
- package/dist/esm/tests/scenarios/web5-connect.spec.js.map +1 -1
- package/dist/esm/tests/test-dwn.d.ts.map +1 -1
- package/dist/esm/tests/test-dwn.js +9 -15
- package/dist/esm/tests/test-dwn.js.map +1 -1
- package/dist/esm/tests/utils.d.ts +3 -6
- package/dist/esm/tests/utils.d.ts.map +1 -1
- package/dist/esm/tests/utils.js +9 -18
- package/dist/esm/tests/utils.js.map +1 -1
- package/dist/esm/tests/ws-api.spec.js +28 -23
- package/dist/esm/tests/ws-api.spec.js.map +1 -1
- package/package.json +25 -44
- package/src/config.ts +15 -19
- package/src/connection/connection-manager.ts +18 -12
- package/src/connection/socket-connection.ts +52 -57
- package/src/dwn-error.ts +2 -2
- package/src/dwn-server.ts +17 -30
- package/src/http-api.ts +499 -396
- package/src/json-rpc-handlers/dwn/process-message.ts +9 -10
- package/src/json-rpc-handlers/subscription/close.ts +4 -4
- package/src/json-rpc-socket.ts +3 -2
- package/src/lib/json-rpc-router.ts +5 -6
- package/src/lib/json-rpc.ts +6 -6
- package/src/metrics.ts +7 -7
- package/src/process-handlers.ts +5 -5
- package/src/registration/proof-of-work-manager.ts +11 -10
- package/src/registration/registration-manager.ts +23 -21
- package/src/registration/registration-store.ts +8 -7
- package/src/storage.ts +15 -13
- package/src/web5-connect/sql-ttl-cache.ts +5 -4
- package/src/web5-connect/web5-connect-server.ts +9 -8
- package/src/ws-api.ts +11 -26
- package/dist/cjs/index.js +0 -6811
- package/dist/cjs/package.json +0 -1
- package/dist/esm/src/lib/http-server-shutdown-handler.d.ts +0 -10
- package/dist/esm/src/lib/http-server-shutdown-handler.d.ts.map +0 -1
- package/dist/esm/src/lib/http-server-shutdown-handler.js +0 -65
- package/dist/esm/src/lib/http-server-shutdown-handler.js.map +0 -1
- package/src/lib/http-server-shutdown-handler.ts +0 -79
|
@@ -1,20 +1,22 @@
|
|
|
1
|
-
import { DataStream, Message, TestDataGenerator } from '@enbox/dwn-sdk-js';
|
|
2
|
-
import { expect } from 'chai';
|
|
3
1
|
import { base64url } from 'multiformats/bases/base64';
|
|
2
|
+
import { expect } from 'chai';
|
|
4
3
|
import { useFakeTimers } from 'sinon';
|
|
5
4
|
import { v4 as uuidv4 } from 'uuid';
|
|
6
|
-
import {
|
|
5
|
+
import { DataStream, Message, TestDataGenerator } from '@enbox/dwn-sdk-js';
|
|
7
6
|
import { config } from '../src/config.js';
|
|
8
|
-
import { WsApi } from '../src/ws-api.js';
|
|
9
7
|
import { getTestDwn } from './test-dwn.js';
|
|
10
|
-
import { createRecordsWriteMessage, sendWsMessage, sendHttpMessage } from './utils.js';
|
|
11
8
|
import { HttpApi } from '../src/http-api.js';
|
|
12
9
|
import { JsonRpcSocket } from '../src/json-rpc-socket.js';
|
|
10
|
+
import { WsApi } from '../src/ws-api.js';
|
|
11
|
+
import { createJsonRpcRequest, createJsonRpcSubscriptionRequest, JsonRpcErrorCodes, } from '../src/lib/json-rpc.js';
|
|
12
|
+
import { createRecordsWriteMessage, sendHttpMessage, sendWsMessage } from './utils.js';
|
|
13
13
|
describe('websocket api', function () {
|
|
14
14
|
let httpApi;
|
|
15
15
|
let wsApi;
|
|
16
16
|
let dwn;
|
|
17
17
|
let clock;
|
|
18
|
+
let wsUrl;
|
|
19
|
+
let httpUrl;
|
|
18
20
|
before(() => {
|
|
19
21
|
clock = useFakeTimers({ shouldAdvanceTime: true });
|
|
20
22
|
});
|
|
@@ -24,8 +26,11 @@ describe('websocket api', function () {
|
|
|
24
26
|
beforeEach(async function () {
|
|
25
27
|
dwn = await getTestDwn({ withEvents: true });
|
|
26
28
|
httpApi = await HttpApi.create(config, dwn);
|
|
27
|
-
await httpApi.start(
|
|
28
|
-
|
|
29
|
+
await httpApi.start(0);
|
|
30
|
+
const port = httpApi.server.port;
|
|
31
|
+
wsUrl = `ws://127.0.0.1:${port}`;
|
|
32
|
+
httpUrl = `http://localhost:${port}`;
|
|
33
|
+
wsApi = new WsApi(httpApi, dwn);
|
|
29
34
|
wsApi.start();
|
|
30
35
|
});
|
|
31
36
|
afterEach(async function () {
|
|
@@ -34,13 +39,13 @@ describe('websocket api', function () {
|
|
|
34
39
|
await dwn.close();
|
|
35
40
|
});
|
|
36
41
|
it('returns an error response if no request payload is provided', async function () {
|
|
37
|
-
const data = await sendWsMessage(
|
|
42
|
+
const data = await sendWsMessage(wsUrl, Buffer.from(''));
|
|
38
43
|
const resp = JSON.parse(data.toString());
|
|
39
44
|
expect(resp.error.code).to.equal(JsonRpcErrorCodes.BadRequest);
|
|
40
45
|
expect(resp.error.message).to.equal('request payload required.');
|
|
41
46
|
});
|
|
42
47
|
it('returns an error response if parsing dwn request fails', async function () {
|
|
43
|
-
const data = await sendWsMessage(
|
|
48
|
+
const data = await sendWsMessage(wsUrl, Buffer.from('@#$%^&*&%$#'));
|
|
44
49
|
const resp = JSON.parse(data.toString());
|
|
45
50
|
expect(resp.error.code).to.equal(JsonRpcErrorCodes.BadRequest);
|
|
46
51
|
expect(resp.error.message).to.include('JSON');
|
|
@@ -56,7 +61,7 @@ describe('websocket api', function () {
|
|
|
56
61
|
target: alice.did,
|
|
57
62
|
encodedData,
|
|
58
63
|
});
|
|
59
|
-
const connection = await JsonRpcSocket.connect(
|
|
64
|
+
const connection = await JsonRpcSocket.connect(wsUrl);
|
|
60
65
|
const response = await connection.request(dwnRequest);
|
|
61
66
|
expect(response.id).to.equal(requestId);
|
|
62
67
|
expect(response.error).to.not.be.undefined;
|
|
@@ -81,7 +86,7 @@ describe('websocket api', function () {
|
|
|
81
86
|
message: message,
|
|
82
87
|
target: alice.did,
|
|
83
88
|
});
|
|
84
|
-
const connection = await JsonRpcSocket.connect(
|
|
89
|
+
const connection = await JsonRpcSocket.connect(wsUrl);
|
|
85
90
|
const { response, close } = await connection.subscribe(dwnRequest, (response) => {
|
|
86
91
|
const { event } = response.result;
|
|
87
92
|
subscriptionHandler(event);
|
|
@@ -95,7 +100,7 @@ describe('websocket api', function () {
|
|
|
95
100
|
dataFormat: 'text/plain'
|
|
96
101
|
});
|
|
97
102
|
const writeResult1 = await sendHttpMessage({
|
|
98
|
-
url:
|
|
103
|
+
url: httpUrl,
|
|
99
104
|
target: alice.did,
|
|
100
105
|
message: write1Message.message,
|
|
101
106
|
data: write1Message.dataBytes,
|
|
@@ -107,7 +112,7 @@ describe('websocket api', function () {
|
|
|
107
112
|
dataFormat: 'text/plain'
|
|
108
113
|
});
|
|
109
114
|
const writeResult2 = await sendHttpMessage({
|
|
110
|
-
url:
|
|
115
|
+
url: httpUrl,
|
|
111
116
|
target: alice.did,
|
|
112
117
|
message: write2Message.message,
|
|
113
118
|
data: write2Message.dataBytes,
|
|
@@ -140,7 +145,7 @@ describe('websocket api', function () {
|
|
|
140
145
|
message: message,
|
|
141
146
|
target: alice.did,
|
|
142
147
|
}, subscribeId);
|
|
143
|
-
const connection = await JsonRpcSocket.connect(
|
|
148
|
+
const connection = await JsonRpcSocket.connect(wsUrl);
|
|
144
149
|
const { response, close } = await connection.subscribe(dwnRequest, (response) => {
|
|
145
150
|
const { event } = response.result;
|
|
146
151
|
subscriptionHandler(event);
|
|
@@ -154,7 +159,7 @@ describe('websocket api', function () {
|
|
|
154
159
|
dataFormat: 'text/plain'
|
|
155
160
|
});
|
|
156
161
|
const writeResult1 = await sendHttpMessage({
|
|
157
|
-
url:
|
|
162
|
+
url: httpUrl,
|
|
158
163
|
target: alice.did,
|
|
159
164
|
message: write1Message.message,
|
|
160
165
|
data: write1Message.dataBytes,
|
|
@@ -169,7 +174,7 @@ describe('websocket api', function () {
|
|
|
169
174
|
dataFormat: 'text/plain'
|
|
170
175
|
});
|
|
171
176
|
const writeResult2 = await sendHttpMessage({
|
|
172
|
-
url:
|
|
177
|
+
url: httpUrl,
|
|
173
178
|
target: alice.did,
|
|
174
179
|
message: write2Message.message,
|
|
175
180
|
data: write2Message.dataBytes,
|
|
@@ -181,7 +186,7 @@ describe('websocket api', function () {
|
|
|
181
186
|
dataFormat: 'text/plain'
|
|
182
187
|
});
|
|
183
188
|
const writeResult3 = await sendHttpMessage({
|
|
184
|
-
url:
|
|
189
|
+
url: httpUrl,
|
|
185
190
|
target: alice.did,
|
|
186
191
|
message: write3Message.message,
|
|
187
192
|
data: write3Message.dataBytes,
|
|
@@ -209,7 +214,7 @@ describe('websocket api', function () {
|
|
|
209
214
|
message: message,
|
|
210
215
|
target: alice.did
|
|
211
216
|
}, subscribeId);
|
|
212
|
-
const connection = await JsonRpcSocket.connect(
|
|
217
|
+
const connection = await JsonRpcSocket.connect(wsUrl);
|
|
213
218
|
const { close } = await connection.subscribe(dwnRequest, (response) => {
|
|
214
219
|
const { event } = response.result;
|
|
215
220
|
subscriptionHandler(event);
|
|
@@ -233,7 +238,7 @@ describe('websocket api', function () {
|
|
|
233
238
|
dataFormat: 'text/plain'
|
|
234
239
|
});
|
|
235
240
|
const writeResult1 = await sendHttpMessage({
|
|
236
|
-
url:
|
|
241
|
+
url: httpUrl,
|
|
237
242
|
target: alice.did,
|
|
238
243
|
message: write1Message.message,
|
|
239
244
|
data: write1Message.dataBytes,
|
|
@@ -245,7 +250,7 @@ describe('websocket api', function () {
|
|
|
245
250
|
dataFormat: 'text/plain'
|
|
246
251
|
});
|
|
247
252
|
const writeResult2 = await sendHttpMessage({
|
|
248
|
-
url:
|
|
253
|
+
url: httpUrl,
|
|
249
254
|
target: alice.did,
|
|
250
255
|
message: write2Message.message,
|
|
251
256
|
data: write2Message.dataBytes,
|
|
@@ -268,7 +273,7 @@ describe('websocket api', function () {
|
|
|
268
273
|
dataFormat: 'text/plain'
|
|
269
274
|
});
|
|
270
275
|
const writeResult1 = await sendHttpMessage({
|
|
271
|
-
url:
|
|
276
|
+
url: httpUrl,
|
|
272
277
|
target: alice.did,
|
|
273
278
|
message: initialWrite.message,
|
|
274
279
|
data: initialWrite.dataBytes,
|
|
@@ -295,7 +300,7 @@ describe('websocket api', function () {
|
|
|
295
300
|
message: message,
|
|
296
301
|
target: alice.did
|
|
297
302
|
}, subscribeId);
|
|
298
|
-
const connection = await JsonRpcSocket.connect(
|
|
303
|
+
const connection = await JsonRpcSocket.connect(wsUrl);
|
|
299
304
|
const { close } = await connection.subscribe(dwnRequest, (response) => {
|
|
300
305
|
const { event } = response.result;
|
|
301
306
|
subscriptionHandler(event);
|
|
@@ -309,7 +314,7 @@ describe('websocket api', function () {
|
|
|
309
314
|
existingWrite: initialWrite.recordsWrite,
|
|
310
315
|
});
|
|
311
316
|
const updateResult = await sendHttpMessage({
|
|
312
|
-
url:
|
|
317
|
+
url: httpUrl,
|
|
313
318
|
target: alice.did,
|
|
314
319
|
message: updatedMessage.message,
|
|
315
320
|
data: updatedMessage.dataBytes,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ws-api.spec.js","sourceRoot":"","sources":["../../../tests/ws-api.spec.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE3E,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAC9B,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAEtD,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,CAAC;AAEpC,OAAO,EACL,oBAAoB,EACpB,gCAAgC,EAChC,iBAAiB,GAClB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,yBAAyB,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACvF,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAG1D,QAAQ,CAAC,eAAe,EAAE;IACxB,IAAI,OAAgB,CAAC;IACrB,IAAI,KAAY,CAAC;IACjB,IAAI,GAAQ,CAAC;IACb,IAAI,KAAsB,CAAC;IAE3B,MAAM,CAAC,GAAG,EAAE;QACV,KAAK,GAAG,aAAa,CAAC,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,KAAK,CAAC,GAAG,EAAE;QACT,KAAK,CAAC,OAAO,EAAE,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,UAAU,CAAC,KAAK;QACd,GAAG,GAAG,MAAM,UAAU,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7C,OAAO,GAAI,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC7C,MAAM,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC1B,KAAK,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACvC,KAAK,CAAC,KAAK,EAAE,CAAC;IAChB,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,KAAK;QACb,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC;QACpB,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;QACtB,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;IACpB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6DAA6D,EAAE,KAAK;QACrE,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,qBAAqB,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QAEzE,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QACzC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;QAC/D,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;IACnE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wDAAwD,EAAE,KAAK;QAChE,MAAM,IAAI,GAAG,MAAM,aAAa,CAC9B,qBAAqB,EACrB,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAC3B,CAAC;QAEF,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QACzC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;QAC/D,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,KAAK;QACjD,MAAM,KAAK,GAAG,MAAM,iBAAiB,CAAC,qBAAqB,EAAE,CAAC;QAE9D,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,GAAG,MAAM,yBAAyB,CAAC,KAAK,CAAC,CAAC;QAC5E,MAAM,SAAS,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACvD,MAAM,WAAW,GAAG,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAEpD,MAAM,SAAS,GAAG,MAAM,EAAE,CAAC;QAC3B,MAAM,UAAU,GAAG,oBAAoB,CAAC,SAAS,EAAE,oBAAoB,EAAE;YACvE,OAAO,EAAE,YAAY,CAAC,MAAM,EAAE;YAC9B,MAAM,EAAE,KAAK,CAAC,GAAG;YACjB,WAAW;SACZ,CAAC,CAAC;QAEH,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;QACtE,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAEtD,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACxC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC;QAC3C,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;QACtE,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,sCAAsC,CAAC,CAAC;IACpF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;QAC1D,MAAM,KAAK,GAAG,MAAM,iBAAiB,CAAC,qBAAqB,EAAE,CAAC;QAE9D,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,iBAAiB,CAAC,wBAAwB,CAAC;YACnE,MAAM,EAAE,KAAK;YACb,MAAM,EAAE;gBACN,MAAM,EAAE,SAAS;aAClB;SACF,CAAC,CAAC;QAEH,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,MAAM,mBAAmB,GAAG,KAAK,EAAE,KAAmB,EAAiB,EAAE;YACvE,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,CAAA;YACzB,OAAO,CAAC,IAAI,CAAC,MAAM,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QAC9C,CAAC,CAAC;QAEF,MAAM,SAAS,GAAG,MAAM,EAAE,CAAC;QAC3B,MAAM,UAAU,GAAG,gCAAgC,CAAC,SAAS,EAAE,kCAAkC,EAAE;YACjG,OAAO,EAAE,OAAO;YAChB,MAAM,EAAE,KAAK,CAAC,GAAG;SAClB,CAAC,CAAC;QAEH,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;QACtE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,MAAM,UAAU,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC,QAAQ,EAAE,EAAE;YAC9E,MAAM,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC;YAClC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC;QACvC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACxD,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC;QAElC,MAAM,aAAa,GAAG,MAAM,iBAAiB,CAAC,oBAAoB,CAAC;YACjE,MAAM,EAAO,KAAK;YAClB,MAAM,EAAO,SAAS;YACtB,UAAU,EAAG,YAAY;SAC1B,CAAC,CAAC;QAEH,MAAM,YAAY,GAAG,MAAM,eAAe,CAAC;YACzC,GAAG,EAAS,uBAAuB;YACnC,MAAM,EAAM,KAAK,CAAC,GAAG;YACrB,OAAO,EAAK,aAAa,CAAC,OAAO;YACjC,IAAI,EAAQ,aAAa,CAAC,SAAS;SACpC,CAAC,CAAC;QACH,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAE/C,MAAM,aAAa,GAAG,MAAM,iBAAiB,CAAC,oBAAoB,CAAC;YACjE,MAAM,EAAO,KAAK;YAClB,MAAM,EAAO,SAAS;YACtB,UAAU,EAAG,YAAY;SAC1B,CAAC,CAAC;QAEH,MAAM,YAAY,GAAG,MAAM,eAAe,CAAC;YACzC,GAAG,EAAS,uBAAuB;YACnC,MAAM,EAAM,KAAK,CAAC,GAAG;YACrB,OAAO,EAAK,aAAa,CAAC,OAAO;YACjC,IAAI,EAAQ,aAAa,CAAC,SAAS;SACpC,CAAC,CAAA;QACF,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAE/C,yBAAyB;QACzB,MAAM,KAAK,EAAE,CAAC;QAEd,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,mCAAmC;QACzF,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC;YAC9B,MAAM,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC;YAC3C,MAAM,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC;SAC5C,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;QACnE,MAAM,KAAK,GAAG,MAAM,iBAAiB,CAAC,qBAAqB,EAAE,CAAC;QAE9D,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,iBAAiB,CAAC,wBAAwB,CAAC;YACnE,MAAM,EAAE,KAAK;YACb,MAAM,EAAE;gBACN,MAAM,EAAE,SAAS;aAClB;SACF,CAAC,CAAC;QAEH,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,MAAM,mBAAmB,GAAG,KAAK,EAAE,KAAmB,EAAiB,EAAE;YACvE,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;YAC1B,OAAO,CAAC,IAAI,CAAC,MAAM,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QAC9C,CAAC,CAAC;QAEF,MAAM,SAAS,GAAG,MAAM,EAAE,CAAC;QAC3B,MAAM,WAAW,GAAG,MAAM,EAAE,CAAC;QAC7B,MAAM,UAAU,GAAG,gCAAgC,CAAC,SAAS,EAAE,kCAAkC,EAAE;YACjG,OAAO,EAAE,OAAO;YAChB,MAAM,EAAE,KAAK,CAAC,GAAG;SAClB,EAAE,WAAW,CAAC,CAAC;QAEhB,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;QACtE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,MAAM,UAAU,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC,QAAQ,EAAE,EAAE;YAC9E,MAAM,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC;YAClC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC;QACvC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACxD,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC;QAElC,MAAM,aAAa,GAAG,MAAM,iBAAiB,CAAC,oBAAoB,CAAC;YACjE,MAAM,EAAO,KAAK;YAClB,MAAM,EAAO,SAAS;YACtB,UAAU,EAAG,YAAY;SAC1B,CAAC,CAAC;QAEH,MAAM,YAAY,GAAG,MAAM,eAAe,CAAC;YACzC,GAAG,EAAS,uBAAuB;YACnC,MAAM,EAAM,KAAK,CAAC,GAAG;YACrB,OAAO,EAAK,aAAa,CAAC,OAAO;YACjC,IAAI,EAAQ,aAAa,CAAC,SAAS;SACpC,CAAC,CAAC;QACH,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAE/C,8CAA8C;QAC9C,MAAM,KAAK,EAAE,CAAC;QAEd,6DAA6D;QAC7D,MAAM,aAAa,GAAG,MAAM,iBAAiB,CAAC,oBAAoB,CAAC;YACjE,MAAM,EAAO,KAAK;YAClB,MAAM,EAAO,SAAS;YACtB,UAAU,EAAG,YAAY;SAC1B,CAAC,CAAC;QAEH,MAAM,YAAY,GAAG,MAAM,eAAe,CAAC;YACzC,GAAG,EAAS,uBAAuB;YACnC,MAAM,EAAM,KAAK,CAAC,GAAG;YACrB,OAAO,EAAK,aAAa,CAAC,OAAO;YACjC,IAAI,EAAQ,aAAa,CAAC,SAAS;SACpC,CAAC,CAAA;QACF,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAE/C,MAAM,aAAa,GAAG,MAAM,iBAAiB,CAAC,oBAAoB,CAAC;YACjE,MAAM,EAAO,KAAK;YAClB,MAAM,EAAO,SAAS;YACtB,UAAU,EAAG,YAAY;SAC1B,CAAC,CAAC;QAEH,MAAM,YAAY,GAAG,MAAM,eAAe,CAAC;YACzC,GAAG,EAAS,uBAAuB;YACnC,MAAM,EAAM,KAAK,CAAC,GAAG;YACrB,OAAO,EAAK,aAAa,CAAC,OAAO;YACjC,IAAI,EAAQ,aAAa,CAAC,SAAS;SACpC,CAAC,CAAA;QACF,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAE/C,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,mCAAmC;QACzF,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAE,MAAM,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,CAAE,CAAC,CAAC;IACnF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2GAA2G,EAAE,KAAK,IAAI,EAAE;QACzH,MAAM,KAAK,GAAG,MAAM,iBAAiB,CAAC,qBAAqB,EAAE,CAAC;QAE9D,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,iBAAiB,CAAC,wBAAwB,CAAC;YACnE,MAAM,EAAE,KAAK;YACb,MAAM,EAAE;gBACN,MAAM,EAAE,SAAS;aAClB;SACF,CAAC,CAAC;QAEH,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,MAAM,mBAAmB,GAAG,KAAK,EAAE,KAAmB,EAAiB,EAAE;YACvE,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,CAAA;YACzB,OAAO,CAAC,IAAI,CAAC,MAAM,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QAC9C,CAAC,CAAC;QAEF,MAAM,SAAS,GAAG,MAAM,EAAE,CAAC;QAC3B,MAAM,WAAW,GAAG,MAAM,EAAE,CAAC;QAC7B,MAAM,UAAU,GAAG,gCAAgC,CAAC,SAAS,EAAE,kCAAkC,EAAE;YACjG,OAAO,EAAE,OAAO;YAChB,MAAM,EAAE,KAAK,CAAC,GAAG;SAClB,EAAE,WAAW,CAAC,CAAC;QAEhB,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;QACtE,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,UAAU,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC,QAAQ,EAAE,EAAE;YACpE,MAAM,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC;YAClC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;QAEH,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,MAAM,iBAAiB,CAAC,wBAAwB,CAAC,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QAEjI,6DAA6D;QAC7D,MAAM,UAAU,GAAG,MAAM,EAAE,CAAC;QAC5B,MAAM,WAAW,GAAG,gCAAgC,CAAC,UAAU,EAAE,kCAAkC,EAAE;YACnG,OAAO,EAAE,QAAQ;YACjB,MAAM,EAAE,KAAK,CAAC,GAAG;SAClB,EAAE,WAAW,CAAC,CAAC;QAEhB,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,MAAM,UAAU,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,EAAE;YACnF,MAAM,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC;YAClC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;QACvE,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,WAAW,sCAAsC,CAAC,CAAC;QAEjG,MAAM,aAAa,GAAG,MAAM,iBAAiB,CAAC,oBAAoB,CAAC;YACjE,MAAM,EAAO,KAAK;YAClB,MAAM,EAAO,SAAS;YACtB,UAAU,EAAG,YAAY;SAC1B,CAAC,CAAC;QAEH,MAAM,YAAY,GAAG,MAAM,eAAe,CAAC;YACzC,GAAG,EAAS,uBAAuB;YACnC,MAAM,EAAM,KAAK,CAAC,GAAG;YACrB,OAAO,EAAK,aAAa,CAAC,OAAO;YACjC,IAAI,EAAQ,aAAa,CAAC,SAAS;SACpC,CAAC,CAAC;QACH,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAE/C,MAAM,aAAa,GAAG,MAAM,iBAAiB,CAAC,oBAAoB,CAAC;YACjE,MAAM,EAAO,KAAK;YAClB,MAAM,EAAO,SAAS;YACtB,UAAU,EAAG,YAAY;SAC1B,CAAC,CAAC;QAEH,MAAM,YAAY,GAAG,MAAM,eAAe,CAAC;YACzC,GAAG,EAAS,uBAAuB;YACnC,MAAM,EAAM,KAAK,CAAC,GAAG;YACrB,OAAO,EAAK,aAAa,CAAC,OAAO;YACjC,IAAI,EAAQ,aAAa,CAAC,SAAS;SACpC,CAAC,CAAA;QACF,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAE/C,yBAAyB;QACzB,MAAM,KAAK,EAAE,CAAC;QAEd,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,mCAAmC;QACzF,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC;YAC9B,MAAM,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC;YAC3C,MAAM,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC;SAC5C,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6FAA6F,EAAE,KAAK,IAAI,EAAE;QAC3G,MAAM,KAAK,GAAG,MAAM,iBAAiB,CAAC,qBAAqB,EAAE,CAAC;QAE9D,2BAA2B;QAC3B,MAAM,YAAY,GAAG,MAAM,iBAAiB,CAAC,oBAAoB,CAAC;YAChE,MAAM,EAAO,KAAK;YAClB,MAAM,EAAO,SAAS;YACtB,UAAU,EAAG,YAAY;SAC1B,CAAC,CAAC;QAEH,MAAM,YAAY,GAAG,MAAM,eAAe,CAAC;YACzC,GAAG,EAAS,uBAAuB;YACnC,MAAM,EAAM,KAAK,CAAC,GAAG;YACrB,OAAO,EAAK,YAAY,CAAC,OAAO;YAChC,IAAI,EAAQ,YAAY,CAAC,SAAS;SACnC,CAAC,CAAC;QACH,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAE/C,kCAAkC;QAClC,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,iBAAiB,CAAC,wBAAwB,CAAC;YACnE,MAAM,EAAE,KAAK;YACb,MAAM,EAAE;gBACN,MAAM,EAAE,SAAS;aAClB;SACF,CAAC,CAAC;QAEH,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,MAAM,mBAAmB,GAAG,KAAK,EAAE,KAAmB,EAAiB,EAAE;YACvE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,KAAK,CAAA;YACvC,IAAI,YAAY,EAAG,CAAC;gBAClB,OAAO,CAAC,IAAI,CAAC,MAAM,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;YACnD,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,MAAM,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QAC9C,CAAC,CAAC;QAEF,MAAM,SAAS,GAAG,MAAM,EAAE,CAAC;QAC3B,MAAM,WAAW,GAAG,MAAM,EAAE,CAAC;QAC7B,MAAM,UAAU,GAAG,gCAAgC,CAAC,SAAS,EAAE,kCAAkC,EAAE;YACjG,OAAO,EAAE,OAAO;YAChB,MAAM,EAAE,KAAK,CAAC,GAAG;SAClB,EAAE,WAAW,CAAC,CAAC;QAEhB,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;QACtE,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,UAAU,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC,QAAQ,EAAE,EAAE;YACpE,MAAM,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC;YAClC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;QAEH,8FAA8F;QAC9F,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;QACrD,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAE1C,6BAA6B;QAC7B,MAAM,cAAc,GAAG,MAAM,iBAAiB,CAAC,wBAAwB,CAAC;YACtE,MAAM,EAAU,KAAK;YACrB,aAAa,EAAG,YAAY,CAAC,YAAY;SAC1C,CAAC,CAAC;QAEH,MAAM,YAAY,GAAG,MAAM,eAAe,CAAC;YACzC,GAAG,EAAS,uBAAuB;YACnC,MAAM,EAAM,KAAK,CAAC,GAAG;YACrB,OAAO,EAAK,cAAc,CAAC,OAAO;YAClC,IAAI,EAAQ,cAAc,CAAC,SAAS;SACrC,CAAC,CAAC;QACH,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAE/C,MAAM,KAAK,EAAE,CAAC;QAEd,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,mCAAmC;QAEzF,2CAA2C;QAC3C,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC;YAC9B,MAAM,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC;YAC1C,MAAM,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC;SAC7C,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"ws-api.spec.js","sourceRoot":"","sources":["../../../tests/ws-api.spec.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,17 +1,16 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@enbox/dwn-server",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.0.
|
|
4
|
+
"version": "0.0.3",
|
|
5
5
|
"files": [
|
|
6
6
|
"dist",
|
|
7
7
|
"src"
|
|
8
8
|
],
|
|
9
|
-
"main": "./dist/
|
|
9
|
+
"main": "./dist/esm/src/index.js",
|
|
10
10
|
"module": "./dist/esm/src/index.js",
|
|
11
11
|
"exports": {
|
|
12
12
|
".": {
|
|
13
|
-
"import": "./dist/esm/src/index.js"
|
|
14
|
-
"require": "./dist/cjs/index.js"
|
|
13
|
+
"import": "./dist/esm/src/index.js"
|
|
15
14
|
}
|
|
16
15
|
},
|
|
17
16
|
"bin": {
|
|
@@ -30,50 +29,39 @@
|
|
|
30
29
|
"access": "public"
|
|
31
30
|
},
|
|
32
31
|
"dependencies": {
|
|
33
|
-
"
|
|
34
|
-
"
|
|
32
|
+
"@enbox/common": "workspace:*",
|
|
33
|
+
"@enbox/crypto": "workspace:*",
|
|
34
|
+
"@enbox/dids": "workspace:*",
|
|
35
|
+
"@enbox/dwn-sdk-js": "workspace:*",
|
|
36
|
+
"@enbox/dwn-sql-store": "workspace:*",
|
|
35
37
|
"bytes": "3.1.2",
|
|
36
|
-
"cors": "2.8.5",
|
|
37
|
-
"express": "^4.20.0",
|
|
38
38
|
"kysely": "^0.26.3",
|
|
39
39
|
"loglevel": "^1.8.1",
|
|
40
40
|
"loglevel-plugin-prefix": "^0.8.4",
|
|
41
|
-
"multiformats": "11.0.2",
|
|
42
41
|
"mysql2": "^3.9.7",
|
|
43
|
-
"node-fetch": "3.3.1",
|
|
44
42
|
"pg": "^8.11.2",
|
|
45
43
|
"pg-cursor": "^2.10.2",
|
|
46
44
|
"prom-client": "14.2.0",
|
|
47
|
-
"readable-stream": "4.4.2",
|
|
48
|
-
"response-time": "2.3.2",
|
|
49
45
|
"uuid": "9.0.0",
|
|
50
|
-
"ws": "8.18.0"
|
|
51
|
-
"@enbox/common": "0.0.2",
|
|
52
|
-
"@enbox/crypto": "0.0.2",
|
|
53
|
-
"@enbox/dwn-sdk-js": "0.0.2",
|
|
54
|
-
"@enbox/dwn-sql-store": "0.0.2",
|
|
55
|
-
"@enbox/dids": "0.0.2"
|
|
46
|
+
"ws": "8.18.0"
|
|
56
47
|
},
|
|
57
48
|
"devDependencies": {
|
|
49
|
+
"@types/bun": "^1.3.9",
|
|
58
50
|
"@types/bytes": "3.1.1",
|
|
59
51
|
"@types/chai": "4.3.4",
|
|
60
52
|
"@types/chai-as-promised": "7.1.5",
|
|
61
|
-
"@types/express": "4.17.21",
|
|
62
53
|
"@types/mocha": "10.0.1",
|
|
63
54
|
"@types/node": "18.11.18",
|
|
64
|
-
"@types/readable-stream": "4.0.6",
|
|
65
55
|
"@types/sinon": "17.0.3",
|
|
66
|
-
"@types/supertest": "2.0.12",
|
|
67
56
|
"@types/ws": "8.5.10",
|
|
68
|
-
"@typescript-eslint/eslint-plugin": "
|
|
69
|
-
"@typescript-eslint/parser": "
|
|
57
|
+
"@typescript-eslint/eslint-plugin": "8.32.1",
|
|
58
|
+
"@typescript-eslint/parser": "8.32.1",
|
|
70
59
|
"c8": "8.0.1",
|
|
71
60
|
"chai": "4.3.6",
|
|
72
61
|
"chai-as-promised": "7.1.1",
|
|
73
62
|
"crypto-browserify": "^3.12.0",
|
|
74
63
|
"esbuild": "0.16.17",
|
|
75
|
-
"eslint": "
|
|
76
|
-
"eslint-plugin-import": "^2.29.1",
|
|
64
|
+
"eslint": "9.7.0",
|
|
77
65
|
"eslint-plugin-mocha": "^10.4.3",
|
|
78
66
|
"eslint-plugin-todo-plz": "^1.3.0",
|
|
79
67
|
"http-proxy": "^1.18.1",
|
|
@@ -84,12 +72,20 @@
|
|
|
84
72
|
"karma-mocha": "^2.0.1",
|
|
85
73
|
"lint-staged": "^15.2.9",
|
|
86
74
|
"mocha": "^10.2.0",
|
|
75
|
+
"multiformats": "11.0.2",
|
|
87
76
|
"puppeteer": "^22.11.2",
|
|
88
77
|
"rimraf": "^5.0.0",
|
|
89
78
|
"sinon": "17.0.1",
|
|
90
|
-
"
|
|
91
|
-
|
|
92
|
-
|
|
79
|
+
"typescript": "5.5.4"
|
|
80
|
+
},
|
|
81
|
+
"scripts": {
|
|
82
|
+
"build:esm": "bun run clean && tsc",
|
|
83
|
+
"build": "bun run clean && bun run build:esm",
|
|
84
|
+
"clean": "rimraf dist && rimraf generated/*",
|
|
85
|
+
"lint": "eslint . --max-warnings 0",
|
|
86
|
+
"lint:fix": "eslint . --fix",
|
|
87
|
+
"test": "bun run build:esm && cp -R tests/fixtures dist/esm/tests && bunx --bun mocha",
|
|
88
|
+
"server": "bun run build:esm && bun dist/esm/src/main.js"
|
|
93
89
|
},
|
|
94
90
|
"husky": {
|
|
95
91
|
"hooks": {
|
|
@@ -100,20 +96,5 @@
|
|
|
100
96
|
"*.{js,ts}": [
|
|
101
97
|
"eslint --fix"
|
|
102
98
|
]
|
|
103
|
-
},
|
|
104
|
-
"overrides": {
|
|
105
|
-
"express": {
|
|
106
|
-
"serve-static": "^1.16.2"
|
|
107
|
-
}
|
|
108
|
-
},
|
|
109
|
-
"scripts": {
|
|
110
|
-
"build:esm": "pnpm clean & tsc",
|
|
111
|
-
"build:cjs": "pnpm build:esm && node build/create-cjs-bundle.cjs && echo '{\"type\": \"commonjs\"}' > ./dist/cjs/package.json",
|
|
112
|
-
"build": "pnpm clean && pnpm build:esm && pnpm build:cjs",
|
|
113
|
-
"clean": "rimraf dist && rimraf generated/*",
|
|
114
|
-
"lint": "eslint . --ext .ts --max-warnings 0",
|
|
115
|
-
"lint:fix": "eslint . --ext .ts --fix",
|
|
116
|
-
"test": "pnpm build:esm && cp -R tests/fixtures dist/esm/tests && c8 mocha",
|
|
117
|
-
"server": "pnpm build:esm && node dist/esm/src/main.js"
|
|
118
99
|
}
|
|
119
|
-
}
|
|
100
|
+
}
|
package/src/config.ts
CHANGED
|
@@ -5,11 +5,8 @@ export type DwnServerConfig = typeof config;
|
|
|
5
5
|
export const config = {
|
|
6
6
|
/**
|
|
7
7
|
* Used to populate the `server` property returned by the `/info` endpoint.
|
|
8
|
-
*
|
|
9
|
-
* If running using `npm` the `process.env.npm_package_name` variable exists and we use that,
|
|
10
|
-
* otherwise we fall back on the use defined `DWN_SERVER_PACKAGE_NAME` or `@enbox/dwn-server`.
|
|
11
8
|
*/
|
|
12
|
-
serverName: process.env.
|
|
9
|
+
serverName: process.env.DWN_SERVER_PACKAGE_NAME || '@enbox/dwn-server',
|
|
13
10
|
|
|
14
11
|
/**
|
|
15
12
|
* The base external URL of this DWN.
|
|
@@ -26,7 +23,7 @@ export const config = {
|
|
|
26
23
|
/**
|
|
27
24
|
* The URL of the TTL cache used by the DWN.
|
|
28
25
|
* NOTE: Used for session/state keeping, thus requires the cache to be commonly addressable by nodes in a cloud cluster environment.
|
|
29
|
-
*
|
|
26
|
+
*
|
|
30
27
|
* Currently only supports SQL databases, e.g.
|
|
31
28
|
* Postgres: 'postgres://root:dwn@localhost:5432/dwn'
|
|
32
29
|
* MySQL: 'mysql://root:dwn@localhost:3306/dwn'
|
|
@@ -37,13 +34,12 @@ export const config = {
|
|
|
37
34
|
* Used to populate the `version` and `sdkVersion` properties returned by the `/info` endpoint.
|
|
38
35
|
*
|
|
39
36
|
* The `version` and `sdkVersion` are pulled from `package.json` at runtime.
|
|
40
|
-
* If
|
|
41
|
-
* Otherwise we
|
|
42
|
-
* Finally if both of those options don't exist we resort to the path within the docker server image, located at `/dwn-server/package.json`
|
|
37
|
+
* If `DWN_SERVER_PACKAGE_JSON` is set, we use that path.
|
|
38
|
+
* Otherwise we resort to the path within the docker server image, located at `/dwn-server/package.json`.
|
|
43
39
|
*/
|
|
44
|
-
packageJsonPath:
|
|
40
|
+
packageJsonPath : process.env.DWN_SERVER_PACKAGE_JSON || '/dwn-server/package.json',
|
|
45
41
|
// max size of data that can be provided with a RecordsWrite
|
|
46
|
-
maxRecordDataSize: bytes(process.env.MAX_RECORD_DATA_SIZE || '1gb'),
|
|
42
|
+
maxRecordDataSize : bytes(process.env.MAX_RECORD_DATA_SIZE || '1gb'),
|
|
47
43
|
|
|
48
44
|
// whether to enable 'ws:'
|
|
49
45
|
webSocketSupport: { on: true, off: false }[process.env.DS_WEBSOCKET_SERVER] ?? true,
|
|
@@ -54,17 +50,17 @@ export const config = {
|
|
|
54
50
|
eventStreamPluginPath: process.env.DWN_EVENT_STREAM_PLUGIN_PATH,
|
|
55
51
|
|
|
56
52
|
// where to store persistent data
|
|
57
|
-
messageStore: process.env.DWN_STORAGE_MESSAGES || process.env.DWN_STORAGE || 'level://data',
|
|
58
|
-
dataStore: process.env.DWN_STORAGE_DATA || process.env.DWN_STORAGE || 'level://data',
|
|
59
|
-
eventLog: process.env.DWN_STORAGE_EVENTS || process.env.DWN_STORAGE || 'level://data',
|
|
60
|
-
resumableTaskStore: process.env.DWN_STORAGE_RESUMABLE_TASKS || process.env.DWN_STORAGE || 'level://data',
|
|
53
|
+
messageStore : process.env.DWN_STORAGE_MESSAGES || process.env.DWN_STORAGE || 'level://data',
|
|
54
|
+
dataStore : process.env.DWN_STORAGE_DATA || process.env.DWN_STORAGE || 'level://data',
|
|
55
|
+
eventLog : process.env.DWN_STORAGE_EVENTS || process.env.DWN_STORAGE || 'level://data',
|
|
56
|
+
resumableTaskStore : process.env.DWN_STORAGE_RESUMABLE_TASKS || process.env.DWN_STORAGE || 'level://data',
|
|
61
57
|
|
|
62
58
|
// tenant registration feature configuration
|
|
63
|
-
registrationStoreUrl: process.env.DWN_REGISTRATION_STORE_URL || process.env.DWN_STORAGE,
|
|
64
|
-
registrationProofOfWorkSeed: process.env.DWN_REGISTRATION_PROOF_OF_WORK_SEED,
|
|
65
|
-
registrationProofOfWorkEnabled: process.env.DWN_REGISTRATION_PROOF_OF_WORK_ENABLED === 'true',
|
|
66
|
-
registrationProofOfWorkInitialMaxHash: process.env.DWN_REGISTRATION_PROOF_OF_WORK_INITIAL_MAX_HASH,
|
|
67
|
-
termsOfServiceFilePath: process.env.DWN_TERMS_OF_SERVICE_FILE_PATH,
|
|
59
|
+
registrationStoreUrl : process.env.DWN_REGISTRATION_STORE_URL || process.env.DWN_STORAGE,
|
|
60
|
+
registrationProofOfWorkSeed : process.env.DWN_REGISTRATION_PROOF_OF_WORK_SEED,
|
|
61
|
+
registrationProofOfWorkEnabled : process.env.DWN_REGISTRATION_PROOF_OF_WORK_ENABLED === 'true',
|
|
62
|
+
registrationProofOfWorkInitialMaxHash : process.env.DWN_REGISTRATION_PROOF_OF_WORK_INITIAL_MAX_HASH,
|
|
63
|
+
termsOfServiceFilePath : process.env.DWN_TERMS_OF_SERVICE_FILE_PATH,
|
|
68
64
|
|
|
69
65
|
// log level - trace/debug/info/warn/error
|
|
70
66
|
logLevel: process.env.DWN_SERVER_LOG_LEVEL || 'INFO',
|
|
@@ -1,39 +1,45 @@
|
|
|
1
|
-
import type { Dwn } from
|
|
1
|
+
import type { Dwn } from '@enbox/dwn-sdk-js';
|
|
2
|
+
import type { ServerWebSocket } from 'bun';
|
|
2
3
|
|
|
3
|
-
import type {
|
|
4
|
-
import type { WebSocket } from 'ws';
|
|
4
|
+
import type { WsData } from '../http-api.js';
|
|
5
5
|
|
|
6
|
-
import { SocketConnection } from
|
|
6
|
+
import { SocketConnection } from './socket-connection.js';
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
9
|
* Interface for managing `WebSocket` connections as they arrive.
|
|
10
10
|
*/
|
|
11
11
|
export interface ConnectionManager {
|
|
12
|
-
/** connect handler
|
|
13
|
-
connect(socket:
|
|
12
|
+
/** connect handler invoked when a new WebSocket connection is established. */
|
|
13
|
+
connect(socket: ServerWebSocket<WsData>): Promise<void>;
|
|
14
14
|
/** closes all of the connections */
|
|
15
15
|
closeAll(): Promise<void>
|
|
16
16
|
}
|
|
17
17
|
|
|
18
18
|
/**
|
|
19
19
|
* A Simple In Memory ConnectionManager implementation.
|
|
20
|
-
* It uses a `Map<
|
|
20
|
+
* It uses a `Map<ServerWebSocket, SocketConnection>` to manage connections.
|
|
21
21
|
*/
|
|
22
22
|
export class InMemoryConnectionManager implements ConnectionManager {
|
|
23
|
-
constructor(
|
|
23
|
+
constructor(
|
|
24
|
+
private dwn: Dwn,
|
|
25
|
+
private connections: Map<ServerWebSocket<WsData>, SocketConnection> = new Map()
|
|
26
|
+
) {}
|
|
24
27
|
|
|
25
|
-
async connect(socket:
|
|
28
|
+
async connect(socket: ServerWebSocket<WsData>): Promise<void> {
|
|
26
29
|
const connection = new SocketConnection(socket, this.dwn, () => {
|
|
27
30
|
// this is the onClose handler to clean up any closed connections.
|
|
28
31
|
this.connections.delete(socket);
|
|
29
32
|
});
|
|
30
33
|
|
|
34
|
+
// Attach the connection to the ws.data so Bun's websocket handlers can delegate to it.
|
|
35
|
+
socket.data.connection = connection;
|
|
36
|
+
|
|
31
37
|
this.connections.set(socket, connection);
|
|
32
38
|
}
|
|
33
39
|
|
|
34
40
|
async closeAll(): Promise<void> {
|
|
35
|
-
const closePromises = [];
|
|
36
|
-
this.connections.forEach(connection => closePromises.push(connection.close()));
|
|
41
|
+
const closePromises: Promise<void>[] = [];
|
|
42
|
+
this.connections.forEach((connection) => closePromises.push(connection.close()));
|
|
37
43
|
await Promise.all(closePromises);
|
|
38
44
|
}
|
|
39
|
-
}
|
|
45
|
+
}
|