jinaga-server 3.1.0 → 3.1.2

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 (46) hide show
  1. package/README.md +2 -0
  2. package/dist/http/line-reader.d.ts +2 -0
  3. package/dist/http/line-reader.js +68 -0
  4. package/dist/http/line-reader.js.map +1 -0
  5. package/dist/http/router.d.ts +4 -1
  6. package/dist/http/router.js +122 -15
  7. package/dist/http/router.js.map +1 -1
  8. package/dist/index.d.ts +1 -0
  9. package/dist/index.js +3 -1
  10. package/dist/index.js.map +1 -1
  11. package/dist/jinaga-server.d.ts +1 -0
  12. package/dist/jinaga-server.js +1 -1
  13. package/dist/jinaga-server.js.map +1 -1
  14. package/dist/memory/memory-keystore.js +5 -8
  15. package/dist/memory/memory-keystore.js.map +1 -1
  16. package/dist/postgres/postgres-keystore.js +5 -32
  17. package/dist/postgres/postgres-keystore.js.map +1 -1
  18. package/http/sans-auth/Feeds options.http +1 -0
  19. package/http/sans-auth/Save graph.http +6 -0
  20. package/http/sans-auth/Save json.http +13 -0
  21. package/http/with-auth/Create post with auth.http +24 -0
  22. package/http/with-auth/Define authorization rules.http +25 -0
  23. package/http/with-auth/Define distribution rules.http +30 -0
  24. package/http/with-auth/Feed sites.http +3 -0
  25. package/http/with-auth/Feeds options.http +1 -0
  26. package/http/with-auth/Feeds sites.http +32 -0
  27. package/http/with-auth/Get posts with auth.http +32 -0
  28. package/http/with-auth/Load titles.http +21 -0
  29. package/integration-test/jinaga-test/Dockerfile +1 -1
  30. package/integration-test/jinaga-test/package-lock.json +6 -5
  31. package/integration-test/jinaga-test/package.json +1 -1
  32. package/package.json +3 -5
  33. package/replicator/index.ts +0 -2
  34. package/replicator/package-lock.json +29 -75
  35. package/replicator/package.json +2 -4
  36. package/src/http/line-reader.ts +69 -0
  37. package/src/http/router.ts +152 -20
  38. package/src/index.ts +1 -0
  39. package/src/jinaga-server.ts +2 -1
  40. package/src/memory/memory-keystore.ts +7 -10
  41. package/src/postgres/postgres-keystore.ts +6 -38
  42. package/dist/http/serializer.d.ts +0 -11
  43. package/dist/http/serializer.js +0 -68
  44. package/dist/http/serializer.js.map +0 -1
  45. package/src/http/serializer.ts +0 -81
  46. package/test/http/serializerSpec.ts +0 -140
package/README.md CHANGED
@@ -120,6 +120,8 @@ To release a new version of Jinaga server, bump the version number, create a new
120
120
  from the generated tag, and let GitHub Actions do the rest.
121
121
 
122
122
  ```bash
123
+ git c main
124
+ git pull
123
125
  npm version patch
124
126
  git push --follow-tags
125
127
  gh release create v$(node -p "require('./package.json').version") --generate-notes --verify-tag
@@ -0,0 +1,2 @@
1
+ /// <reference types="node" />
2
+ export declare function createLineReader(stream: NodeJS.ReadableStream): () => Promise<string | null>;
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createLineReader = void 0;
4
+ const PauseAt = 10;
5
+ const ResumeAt = 5;
6
+ function createLineReader(stream) {
7
+ // Store the bytes read so far that have not yet been processed.
8
+ let buffer = Buffer.alloc(0);
9
+ // Store a queue of promises that resolve to the next line read.
10
+ let promiseQueue = [];
11
+ // Initialize the queue.
12
+ let resolve;
13
+ let reject;
14
+ promiseQueue.push(new Promise((res, rej) => { resolve = res; reject = rej; }));
15
+ stream.on('data', (data) => {
16
+ let newline = -1;
17
+ // Look for the first newline in the data.
18
+ while ((newline = data.indexOf(10)) >= 0) {
19
+ // Extract the line from the data.
20
+ let line = Buffer.concat([buffer, data.slice(0, newline)]).toString();
21
+ data = data.slice(newline + 1);
22
+ buffer = Buffer.alloc(0);
23
+ if (line.charCodeAt(0) === 0xFEFF) {
24
+ // Remove BOM
25
+ line = line.slice(1);
26
+ }
27
+ // Resolve the promise with the line.
28
+ resolve(line);
29
+ // Create a new promise for the next line.
30
+ promiseQueue.push(new Promise((res, rej) => { resolve = res; reject = rej; }));
31
+ // Apply backpressure if the promise queue gets too deep
32
+ if (promiseQueue.length > PauseAt) {
33
+ stream.pause();
34
+ }
35
+ }
36
+ // Append the remaining data to the buffer.
37
+ buffer = Buffer.concat([buffer, data]);
38
+ });
39
+ stream.on('end', () => {
40
+ // Extract the last line from the buffer.
41
+ let line = buffer.toString();
42
+ if (line.charCodeAt(0) === 0xFEFF) {
43
+ // Remove BOM
44
+ line = line.slice(1);
45
+ }
46
+ // If the stream ends with a newline, then don't add an empty line.
47
+ if (line.length > 0) {
48
+ resolve(line);
49
+ promiseQueue.push(new Promise((res, rej) => { resolve = res; reject = rej; }));
50
+ }
51
+ resolve(null);
52
+ });
53
+ stream.on('error', (e) => {
54
+ reject(e);
55
+ });
56
+ return () => {
57
+ if (promiseQueue.length === 0) {
58
+ throw new Error("Line reader has been closed.");
59
+ }
60
+ const promise = promiseQueue.shift();
61
+ if (stream.isPaused() && promiseQueue.length <= ResumeAt) {
62
+ stream.resume();
63
+ }
64
+ return promise;
65
+ };
66
+ }
67
+ exports.createLineReader = createLineReader;
68
+ //# sourceMappingURL=line-reader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"line-reader.js","sourceRoot":"","sources":["../../src/http/line-reader.ts"],"names":[],"mappings":"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"}
@@ -9,8 +9,9 @@ export declare class HttpRouter {
9
9
  private factManager;
10
10
  private authorization;
11
11
  private feedCache;
12
+ private allowedOrigin;
12
13
  handler: Handler;
13
- constructor(factManager: FactManager, authorization: Authorization, feedCache: FeedCache);
14
+ constructor(factManager: FactManager, authorization: Authorization, feedCache: FeedCache, allowedOrigin: string | string[] | ((origin: string, callback: (err: Error | null, allow?: boolean) => void) => void));
14
15
  private login;
15
16
  private load;
16
17
  private save;
@@ -22,4 +23,6 @@ export declare class HttpRouter {
22
23
  private streamFeedResponse;
23
24
  private getKnownFacts;
24
25
  private selectStart;
26
+ private setOptions;
27
+ private applyAllowOrigin;
25
28
  }
@@ -13,7 +13,7 @@ exports.HttpRouter = void 0;
13
13
  const express_1 = require("express");
14
14
  const jinaga_1 = require("jinaga");
15
15
  const stream_1 = require("./stream");
16
- const serializer_1 = require("./serializer");
16
+ const line_reader_1 = require("./line-reader");
17
17
  function getOrStream(getMethod, streamMethod) {
18
18
  return (req, res, next) => {
19
19
  const user = req.user;
@@ -175,10 +175,7 @@ function postString(method) {
175
175
  function postCreate(parse, method) {
176
176
  return (req, res, next) => {
177
177
  const user = req.user;
178
- const message = parse(req.body);
179
- if (!message) {
180
- throw new Error('Ensure that you have called app.use(express.json()).');
181
- }
178
+ const message = parse(req);
182
179
  method(user, message)
183
180
  .then(_ => {
184
181
  res.sendStatus(201);
@@ -238,10 +235,31 @@ function serializeUserIdentity(user) {
238
235
  id: user.id
239
236
  };
240
237
  }
238
+ function inputSaveMessage(req) {
239
+ if (req.is('application/x-jinaga-graph-v1')) {
240
+ // Convert the request into a function that reads one line at a time.
241
+ const readLine = (0, line_reader_1.createLineReader)(req);
242
+ return new jinaga_1.GraphDeserializer(readLine);
243
+ }
244
+ else {
245
+ return {
246
+ read: (onEnvelopes) => __awaiter(this, void 0, void 0, function* () {
247
+ const message = (0, jinaga_1.parseSaveMessage)(req.body);
248
+ if (!message) {
249
+ throw new Error('Ensure that you have called app.use(express.json()).');
250
+ }
251
+ yield onEnvelopes(message.facts.map(fact => ({
252
+ fact: fact,
253
+ signatures: []
254
+ })));
255
+ })
256
+ };
257
+ }
258
+ }
241
259
  function outputGraph(result, res, accepts) {
242
260
  if (accepts("application/x-jinaga-graph-v1")) {
243
261
  res.type("application/x-jinaga-graph-v1");
244
- const serializer = new serializer_1.GraphSerializer((chunk) => res.write(chunk));
262
+ const serializer = new jinaga_1.GraphSerializer((chunk) => res.write(chunk));
245
263
  serializer.serialize(result);
246
264
  res.end();
247
265
  }
@@ -258,18 +276,42 @@ function outputFeeds(result, res, accepts) {
258
276
  res.send(JSON.stringify(result));
259
277
  }
260
278
  class HttpRouter {
261
- constructor(factManager, authorization, feedCache) {
279
+ constructor(factManager, authorization, feedCache, allowedOrigin) {
262
280
  this.factManager = factManager;
263
281
  this.authorization = authorization;
264
282
  this.feedCache = feedCache;
283
+ this.allowedOrigin = allowedOrigin;
265
284
  const router = (0, express_1.Router)();
266
285
  router.get('/login', getAuthenticate(user => this.login(user)));
267
286
  router.post('/load', post(jinaga_1.parseLoadMessage, (user, loadMessage) => this.load(user, loadMessage), outputGraph));
268
- router.post('/save', postCreate(jinaga_1.parseSaveMessage, (user, saveMessage) => this.save(user, saveMessage)));
287
+ router.post('/save', postCreate(inputSaveMessage, (user, graphSource) => this.save(user, graphSource)));
269
288
  router.post('/read', postString((user, input) => this.read(user, input)));
270
289
  router.post('/write', postStringCreate((user, input) => this.write(user, input)));
271
290
  router.post('/feeds', post(parseString, (user, input, accepts) => this.feeds(user, input), outputFeeds));
272
291
  router.get('/feeds/:hash', getOrStream((user, params, query) => this.feed(user, params, query), (user, params, query) => this.streamFeed(user, params, query)));
292
+ // Respond to OPTIONS requests to describe the methods and content types
293
+ // that are supported.
294
+ this.setOptions(router, '/login')
295
+ .intendedForGet()
296
+ .returningContent();
297
+ this.setOptions(router, '/load')
298
+ .intendedForPost('application/json')
299
+ .returningContent();
300
+ this.setOptions(router, '/save')
301
+ .intendedForPost('application/json', 'application/x-jinaga-graph-v1')
302
+ .returningNoContent();
303
+ this.setOptions(router, '/read')
304
+ .intendedForPost('text/plain')
305
+ .returningContent();
306
+ this.setOptions(router, '/write')
307
+ .intendedForPost('text/plain')
308
+ .returningNoContent();
309
+ this.setOptions(router, '/feeds')
310
+ .intendedForPost('text/plain')
311
+ .returningContent();
312
+ this.setOptions(router, '/feeds/:hash')
313
+ .intendedForGet()
314
+ .returningContent();
273
315
  this.handler = router;
274
316
  }
275
317
  login(user) {
@@ -288,18 +330,18 @@ class HttpRouter {
288
330
  return __awaiter(this, void 0, void 0, function* () {
289
331
  const userIdentity = serializeUserIdentity(user);
290
332
  const result = yield this.authorization.load(userIdentity, loadMessage.references);
291
- const facts = result.map(r => r.fact);
292
333
  return result;
293
334
  });
294
335
  }
295
- save(user, saveMessage) {
336
+ save(user, graphSource) {
296
337
  return __awaiter(this, void 0, void 0, function* () {
297
338
  const userIdentity = serializeUserIdentity(user);
298
- yield this.authorization.save(userIdentity, saveMessage.facts
299
- .map(fact => ({
300
- fact: fact,
301
- signatures: []
302
- })));
339
+ yield graphSource.read((envelopes) => __awaiter(this, void 0, void 0, function* () {
340
+ if (!(0, jinaga_1.verifyEnvelopes)(envelopes)) {
341
+ throw new jinaga_1.Forbidden("The signatures on the facts are invalid.");
342
+ }
343
+ yield this.authorization.save(userIdentity, envelopes);
344
+ }));
303
345
  });
304
346
  }
305
347
  read(user, input) {
@@ -476,6 +518,71 @@ class HttpRouter {
476
518
  return declaredFact.declared.reference;
477
519
  });
478
520
  }
521
+ setOptions(router, path) {
522
+ const addOptions = (allowedMethods, allowedHeaders, allowedTypes) => {
523
+ router.options(path, this.applyAllowOrigin((req, res) => {
524
+ res.set('Allow', allowedMethods.join(', '));
525
+ res.set('Access-Control-Allow-Methods', allowedMethods.join(', '));
526
+ res.set('Access-Control-Allow-Headers', allowedHeaders.join(', '));
527
+ if (allowedTypes.length > 0) {
528
+ res.set('Accept-Post', allowedTypes.join(', '));
529
+ }
530
+ res.status(204).send();
531
+ }));
532
+ };
533
+ return {
534
+ intendedForGet: () => {
535
+ addOptions(['GET', 'OPTIONS'], ['Accept', 'Authorization'], []);
536
+ return {
537
+ returningContent: () => { },
538
+ returningNoContent: () => { }
539
+ };
540
+ },
541
+ intendedForPost: (...contentTypes) => {
542
+ return {
543
+ returningContent: () => {
544
+ addOptions(['POST', 'OPTIONS'], ['Content-Type', 'Accept', 'Authorization'], contentTypes);
545
+ },
546
+ returningNoContent: () => {
547
+ addOptions(['POST', 'OPTIONS'], ['Content-Type', 'Authorization'], contentTypes);
548
+ }
549
+ };
550
+ }
551
+ };
552
+ }
553
+ applyAllowOrigin(sendResponse) {
554
+ // Specify the allowed origins.
555
+ return (req, res, next) => {
556
+ let requestOrigin = req.get('Origin');
557
+ if (typeof this.allowedOrigin === 'string') {
558
+ // If allowedOrigin is a string, use it as the value of the Access-Control-Allow-Origin header
559
+ res.set('Access-Control-Allow-Origin', this.allowedOrigin);
560
+ sendResponse(req, res);
561
+ }
562
+ else if (Array.isArray(this.allowedOrigin)) {
563
+ // If allowedOrigin is an array, check if the request's origin is in the array
564
+ if (requestOrigin && this.allowedOrigin.includes(requestOrigin)) {
565
+ res.set('Access-Control-Allow-Origin', requestOrigin);
566
+ }
567
+ sendResponse(req, res);
568
+ }
569
+ else if (typeof this.allowedOrigin === 'function' && requestOrigin) {
570
+ // If allowedOrigin is a function, call it with the request's origin
571
+ this.allowedOrigin(requestOrigin, (err, allow) => {
572
+ if (err) {
573
+ next(err);
574
+ }
575
+ else if (allow) {
576
+ res.set('Access-Control-Allow-Origin', requestOrigin);
577
+ }
578
+ sendResponse(req, res);
579
+ });
580
+ }
581
+ else {
582
+ sendResponse(req, res);
583
+ }
584
+ };
585
+ }
479
586
  }
480
587
  exports.HttpRouter = HttpRouter;
481
588
  function parseString(input) {
@@ -1 +1 @@
1
- {"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/http/router.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qCAA+D;AAC/D,mCA4BgB;AAEhB,qCAAkC;AAClC,6CAA+C;AAI/C,SAAS,WAAW,CAChB,SAAwG,EACxG,YAAmH;IAEnH,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QACtB,MAAM,IAAI,GAAgB,GAAG,CAAC,IAAI,CAAC;QACnC,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACrC,IAAI,MAAM,IAAI,MAAM,CAAC,OAAO,CAAC,kCAAkC,CAAC,IAAI,CAAC,EAAE;YACnE,YAAY,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC;iBACpC,IAAI,CAAC,QAAQ,CAAC,EAAE;gBACb,IAAI,CAAC,QAAQ,EAAE;oBACX,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;oBACpB,IAAI,EAAE,CAAC;iBACV;qBACI;oBACD,GAAG,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;oBAC7C,GAAG,CAAC,GAAG,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;oBACpC,GAAG,CAAC,GAAG,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;oBACrC,GAAG,CAAC,GAAG,CAAC,6BAA6B,EAAE,GAAG,CAAC,CAAC;oBAC5C,GAAG,CAAC,YAAY,EAAE,CAAC;oBACnB,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;wBACjB,QAAQ,CAAC,KAAK,EAAE,CAAC;oBACrB,CAAC,CAAC,CAAC;oBACH,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;wBAC5B,QAAQ,CAAC,KAAK,EAAE,CAAC;oBACrB,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;oBAClB,QAAQ;yBACH,IAAI,CAAC,IAAI,CAAC,EAAE;wBACT,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC;oBAC7C,CAAC,CAAC;yBACD,IAAI,CAAC,GAAG,EAAE;;wBACP,YAAY,CAAC,OAAO,CAAC,CAAC;wBACtB,MAAA,GAAG,CAAC,MAAM,0CAAE,GAAG,EAAE,CAAC;oBACtB,CAAC,CAAC,CAAC;iBACV;YACL,CAAC,CAAC;iBACD,KAAK,CAAC,KAAK,CAAC,EAAE;gBACX,IAAI,KAAK,YAAY,kBAAS,EAAE;oBAC5B,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBACjB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;iBACvC;qBACI;oBACD,cAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;oBACnB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;iBACvC;gBACD,IAAI,EAAE,CAAC;YACX,CAAC,CAAC,CAAC;SACV;aACI;YACD,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC;iBACjC,IAAI,CAAC,QAAQ,CAAC,EAAE;gBACb,IAAI,CAAC,QAAQ,EAAE;oBACX,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;oBACpB,IAAI,EAAE,CAAC;iBACV;qBACI;oBACD,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBACjB,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;oBACnC,IAAI,EAAE,CAAC;iBACV;YACL,CAAC,CAAC;iBACD,KAAK,CAAC,KAAK,CAAC,EAAE;gBACX,IAAI,KAAK,YAAY,kBAAS,EAAE;oBAC5B,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBACjB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;iBACvC;qBACI;oBACD,cAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;oBACnB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;iBACvC;gBACD,IAAI,EAAE,CAAC;YACX,CAAC,CAAC,CAAC;SACV;IACL,CAAC,CAAC;AACN,CAAC;AAED,SAAS,eAAe,CAAI,MAA8E;IACtG,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QACtB,MAAM,IAAI,GAAgB,GAAG,CAAC,IAAI,CAAC;QACnC,IAAI,CAAC,IAAI,EAAE;YACP,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;SACvB;aACI;YACD,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC;iBACnB,IAAI,CAAC,QAAQ,CAAC,EAAE;gBACb,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACjB,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACnC,IAAI,EAAE,CAAC;YACX,CAAC,CAAC;iBACD,KAAK,CAAC,KAAK,CAAC,EAAE;gBACX,cAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBACnB,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;gBACpB,IAAI,EAAE,CAAC;YACX,CAAC,CAAC,CAAC;SACV;IACL,CAAC,CAAC;AACN,CAAC;AAED,SAAS,IAAI,CACT,KAAwB,EACxB,MAAyF,EACzF,MAAqF;IAErF,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QACtB,MAAM,IAAI,GAAgB,GAAG,CAAC,IAAI,CAAC;QACnC,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,CAAC,OAAO,EAAE;YACV,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;SAC3E;QACD,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC;aAC5B,IAAI,CAAC,QAAQ,CAAC,EAAE;YACb,IAAI,CAAC,QAAQ,EAAE;gBACX,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;gBACpB,IAAI,EAAE,CAAC;aACV;iBACI;gBACD,MAAM,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;gBACnD,IAAI,EAAE,CAAC;aACV;QACL,CAAC,CAAC;aACD,KAAK,CAAC,KAAK,CAAC,EAAE;YACX,IAAI,KAAK,YAAY,kBAAS,EAAE;gBAC5B,cAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBAC1B,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACjB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;aACvC;iBACI;gBACD,cAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBACnB,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACjB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;aACvC;YACD,IAAI,EAAE,CAAC;QACX,CAAC,CAAC,CAAC;IACX,CAAC,CAAC;AACN,CAAC;AAED,SAAS,UAAU,CAAI,MAA0D;IAC7E,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QACtB,MAAM,IAAI,GAAgB,GAAG,CAAC,IAAI,CAAC;QACnC,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,QAAQ,EAAE;YACvC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACjB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,wFAAwF,CAAC,CAAC;SAClH;aACI;YACD,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC;iBACd,IAAI,CAAC,QAAQ,CAAC,EAAE;gBACb,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACjB,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;gBAC5C,IAAI,EAAE,CAAC;YACX,CAAC,CAAC;iBACD,KAAK,CAAC,KAAK,CAAC,EAAE;gBACX,IAAI,KAAK,YAAY,kBAAS,EAAE;oBAC5B,cAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;oBAC1B,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBACjB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;iBACvC;qBACI;oBACD,cAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;oBACnB,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBACjB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;iBACvC;gBACD,IAAI,EAAE,CAAC;YACX,CAAC,CAAC,CAAC;SACV;IACL,CAAC,CAAC;AACN,CAAC;AAED,SAAS,UAAU,CACf,KAAwB,EACxB,MAAwD;IAExD,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QACtB,MAAM,IAAI,GAAgB,GAAG,CAAC,IAAI,CAAC;QACnC,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,CAAC,OAAO,EAAE;YACV,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;SAC3E;QACD,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC;aAChB,IAAI,CAAC,CAAC,CAAC,EAAE;YACN,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YACpB,IAAI,EAAE,CAAC;QACX,CAAC,CAAC;aACD,KAAK,CAAC,KAAK,CAAC,EAAE;YACX,IAAI,KAAK,YAAY,kBAAS,EAAE;gBAC5B,cAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBAC1B,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACjB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;aACvC;iBACI;gBACD,cAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBACnB,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACjB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;aACvC;YACD,IAAI,EAAE,CAAC;QACX,CAAC,CAAC,CAAC;IACX,CAAC,CAAC;AACN,CAAC;AAED,SAAS,gBAAgB,CAAC,MAA6D;IACnF,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QACtB,MAAM,IAAI,GAAgB,GAAG,CAAC,IAAI,CAAC;QACnC,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,QAAQ,EAAE;YACvC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACjB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,wFAAwF,CAAC,CAAC;SAClH;aACI;YACD,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC;iBACd,IAAI,CAAC,CAAC,CAAC,EAAE;gBACN,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;gBACpB,IAAI,EAAE,CAAC;YACX,CAAC,CAAC;iBACD,KAAK,CAAC,KAAK,CAAC,EAAE;gBACX,IAAI,KAAK,YAAY,kBAAS,EAAE;oBAC5B,cAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;oBAC1B,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBACjB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;iBACvC;qBACI;oBACD,cAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;oBACnB,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBACjB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;iBACvC;gBACD,IAAI,EAAE,CAAC;YACX,CAAC,CAAC,CAAC;SACV;IACL,CAAC,CAAC;AACN,CAAC;AAED,SAAS,qBAAqB,CAAC,IAAwB;IACnD,IAAI,CAAC,IAAI,EAAE;QACP,OAAO,IAAI,CAAC;KACf;IACD,OAAO;QACH,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,EAAE,EAAE,IAAI,CAAC,EAAE;KACd,CAAC;AACN,CAAC;AAED,SAAS,WAAW,CAAC,MAAsB,EAAE,GAAa,EAAE,OAAyC;IACjG,IAAI,OAAO,CAAC,+BAA+B,CAAC,EAAE;QAC1C,GAAG,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;QAC1C,MAAM,UAAU,GAAG,IAAI,4BAAe,CAClC,CAAC,KAAa,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CACtC,CAAC;QACF,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC7B,GAAG,CAAC,GAAG,EAAE,CAAC;KACb;SACI;QACD,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACjB,MAAM,YAAY,GAAiB;YAC/B,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;SACjC,CAAC;QACF,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC;KAC1C;AACL,CAAC;AAED,SAAS,WAAW,CAAC,MAAqB,EAAE,GAAa,EAAE,OAAyC;IAChG,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACjB,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;AACrC,CAAC;AAQD,MAAa,UAAU;IAGnB,YAAoB,WAAwB,EAAU,aAA4B,EAAU,SAAoB;QAA5F,gBAAW,GAAX,WAAW,CAAa;QAAU,kBAAa,GAAb,aAAa,CAAe;QAAU,cAAS,GAAT,SAAS,CAAW;QAC5G,MAAM,MAAM,GAAG,IAAA,gBAAM,GAAE,CAAC;QACxB,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAChE,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CACrB,yBAAgB,EAChB,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,EACnD,WAAW,CACd,CAAC,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAC3B,yBAAgB,EAChB,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CACtD,CAAC,CAAC;QAEH,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,IAAI,EAAE,KAAa,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;QAClF,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC,IAAI,EAAE,KAAa,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;QAC1F,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CACtB,WAAW,EACX,CAAC,IAAI,EAAE,KAAa,EAAE,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,EACzD,WAAW,CACd,CAAC,CAAC;QACH,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE,WAAW,CAClC,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EACvD,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;QAEpE,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IAC1B,CAAC;IAEa,KAAK,CAAC,IAAiB;;YACjC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC;gBAC1D,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,EAAE,EAAE,IAAI,CAAC,EAAE;aACd,CAAC,CAAC;YACH,OAAO;gBACH,QAAQ,EAAE,QAAQ;gBAClB,OAAO,EAAE,IAAI,CAAC,OAAO;aACxB,CAAC;QACN,CAAC;KAAA;IAEa,IAAI,CAAC,IAAiB,EAAE,WAAwB;;YAC1D,MAAM,YAAY,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;YACjD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC;YACnF,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACtC,OAAO,MAAM,CAAC;QAClB,CAAC;KAAA;IAEa,IAAI,CAAC,IAAwB,EAAE,WAAwB;;YACjE,MAAM,YAAY,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;YACjD,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,KAAK;iBACxD,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACV,IAAI,EAAE,IAAI;gBACV,UAAU,EAAE,EAAE;aACjB,CAAC,CAAC,CAAC,CAAC;QACb,CAAC;KAAA;IAEa,IAAI,CAAC,IAAwB,EAAE,KAAa;;YACtD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YAClD,MAAM,MAAM,GAAG,IAAI,4BAAmB,CAAC,KAAK,CAAC,CAAC;YAC9C,MAAM,CAAC,cAAc,EAAE,CAAC;YACxB,MAAM,WAAW,GAAG,MAAM,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;YACxD,MAAM,aAAa,GAAG,MAAM,CAAC,kBAAkB,EAAE,CAAC;YAClD,MAAM,CAAC,SAAS,EAAE,CAAC;YACnB,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;YAE3D,MAAM,YAAY,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;YACjD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC;YAClF,OAAO,cAAc,CAAC,OAAO,CAAC,CAAC;QACnC,CAAC;KAAA;IAEa,KAAK,CAAC,IAAwB,EAAE,KAAa;;YACvD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YAClD,MAAM,MAAM,GAAG,IAAI,4BAAmB,CAAC,KAAK,CAAC,CAAC;YAC9C,MAAM,CAAC,cAAc,EAAE,CAAC;YACxB,IAAI,WAAW,GAAG,MAAM,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;YACtD,MAAM,CAAC,SAAS,EAAE,CAAC;YAEnB,MAAM,WAAW,GAAiB,EAAE,CAAC;YACrC,KAAK,MAAM,KAAK,IAAI,WAAW,EAAE;gBAC7B,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE;oBACtB,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;iBAC/D;gBACD,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;aACzC;YAED,MAAM,YAAY,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;YACjD,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,EAAE,WAAW;iBAClD,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACV,IAAI,EAAE,IAAI;gBACV,UAAU,EAAE,EAAE;aACjB,CAAC,CAAC,CAAC,CAAC;QACb,CAAC;KAAA;IAEa,KAAK,CAAC,IAAwB,EAAE,KAAa;;YACvD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YAClD,MAAM,MAAM,GAAG,IAAI,4BAAmB,CAAC,KAAK,CAAC,CAAC;YAC9C,MAAM,CAAC,cAAc,EAAE,CAAC;YACxB,MAAM,WAAW,GAAG,MAAM,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;YACxD,MAAM,aAAa,GAAG,MAAM,CAAC,kBAAkB,EAAE,CAAC;YAClD,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;YAE3D,oEAAoE;YACpE,IAAI,KAAK,CAAC,MAAM,KAAK,aAAa,CAAC,KAAK,CAAC,MAAM,EAAE;gBAC7C,MAAM,IAAI,KAAK,CAAC,8BAA8B,KAAK,CAAC,MAAM,0CAA0C,aAAa,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;aACtI;YACD,yDAAyD;YACzD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACnC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;oBAC/C,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,sCAAsC,CAAC,KAAK,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;iBAC5I;aACJ;YAED,MAAM,UAAU,GAAG,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,iCAC9D,GAAG,KACN,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,IAC5B,EAAE,EAAsB,CAAC,CAAC;YAE5B,sDAAsD;YACtD,MAAM,KAAK,GAAG,IAAA,mBAAU,EAAC,aAAa,CAAC,CAAC;YACxC,MAAM,YAAY,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;YACjD,MAAM,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,YAAY,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;YAE7E,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;YAE9D,OAAO;gBACH,KAAK,EAAE,UAAU;aACpB,CAAA;QACL,CAAC;KAAA;IAEa,IAAI,CAAC,IAAwB,EAAE,MAAiC,EAAE,KAAe;;;YAC3F,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;YAChC,IAAI,CAAC,QAAQ,EAAE;gBACX,OAAO,IAAI,CAAC;aACf;YAED,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC9D,IAAI,CAAC,cAAc,EAAE;gBACjB,OAAO,IAAI,CAAC;aACf;YAED,MAAM,QAAQ,GAAG,MAAA,KAAK,CAAC,GAAG,CAAW,mCAAI,EAAE,CAAC;YAE5C,MAAM,YAAY,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;YACjD,MAAM,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,cAAc,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;YAC5F,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,EAAE,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;YAClG,uDAAuD;YACvD,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAClF,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,CAChF,CAAC;YACF,MAAM,QAAQ,GAAiB;gBAC3B,UAAU;gBACV,QAAQ,EAAE,OAAO,CAAC,QAAQ;aAC7B,CAAC;YACF,OAAO,QAAQ,CAAC;;KACnB;IAEa,UAAU,CAAC,IAAwB,EAAE,MAAiC,EAAE,KAAe;;;YACjG,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;YAChC,IAAI,CAAC,QAAQ,EAAE;gBACX,OAAO,IAAI,CAAC;aACf;YAED,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC9D,IAAI,CAAC,cAAc,EAAE;gBACjB,OAAO,IAAI,CAAC;aACf;YAED,IAAI,QAAQ,GAAG,MAAA,KAAK,CAAC,GAAG,CAAW,mCAAI,EAAE,CAAC;YAE1C,MAAM,YAAY,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;YACjD,MAAM,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,cAAc,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;YAC5F,MAAM,SAAS,GAAG,IAAA,0BAAiB,EAAC,cAAc,CAAC,UAAU,CAAC,CAAC;YAE/D,MAAM,MAAM,GAAG,IAAI,eAAM,EAAgB,CAAC;YAC1C,cAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YAC/B,QAAQ,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,cAAc,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;YAChG,MAAM,QAAQ,GAAG,IAAA,4BAAmB,EAAC,cAAc,CAAC,IAAI,CAAC,CAAC;YAC1D,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,wBAAwB,CAC/E,OAAO,CAAC,oBAAoB,EAC5B,CAAO,OAAO,EAAE,EAAE;gBACd,kDAAkD;gBAClD,MAAM,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CACxC,SAAS,KAAK,IAAA,+BAAsB,EAAC,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;gBACzE,IAAI,eAAe,CAAC,MAAM,IAAI,CAAC,EAAE;oBAC7B,QAAQ,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,cAAc,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;iBACzG;YACL,CAAC,CAAA,CACJ,CAAC,CAAC;YACH,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;gBACb,cAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACnB,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;oBAC9B,IAAI,CAAC,WAAW,CAAC,2BAA2B,CAAC,QAAQ,CAAC,CAAC;iBAC1D;YACL,CAAC,CAAC,CAAC;YACH,OAAO,MAAM,CAAC;;KACjB;IAEa,kBAAkB,CAAC,YAAiC,EAAE,cAA0B,EAAE,KAAsB,EAAE,QAAgB,EAAE,MAA4B,EAAE,WAAW,GAAG,KAAK;;YACvL,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,EAAE,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;YAClG,uDAAuD;YACvD,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,CACnK,CAAC;YACF,IAAI,CAAC,WAAW,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;gBACvC,MAAM,QAAQ,GAAiB;oBAC3B,UAAU;oBACV,QAAQ,EAAE,OAAO,CAAC,QAAQ;iBAC7B,CAAC;gBACF,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aACzB;YACD,OAAO,OAAO,CAAC,QAAQ,CAAC;QAC5B,CAAC;KAAA;IAEa,aAAa,CAAC,IAAwB;;YAChD,IAAI,IAAI,EAAE;gBACN,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC;oBAC1D,QAAQ,EAAE,IAAI,CAAC,QAAQ;oBACvB,EAAE,EAAE,IAAI,CAAC,EAAE;iBACd,CAAC,CAAC;gBACH,OAAO;oBACH;wBACI,IAAI,EAAE,IAAI;wBACV,QAAQ,EAAE;4BACN,IAAI,EAAE,QAAQ;4BACd,SAAS,EAAE;gCACP,IAAI,EAAE,QAAQ,CAAC,IAAI;gCACnB,IAAI,EAAE,QAAQ,CAAC,IAAI;6BACtB;yBACJ;qBACJ;iBACJ,CAAC;aACL;iBACI;gBACD,OAAO,EAAE,CAAC;aACb;QACL,CAAC;KAAA;IAEO,WAAW,CAAC,aAA4B,EAAE,WAAwB;QACtE,8CAA8C;QAC9C,OAAO,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;YACnC,MAAM,YAAY,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC;YAClE,IAAI,CAAC,YAAY,EAAE;gBACf,MAAM,IAAI,KAAK,CAAC,iBAAiB,KAAK,CAAC,IAAI,eAAe,CAAC,CAAC;aAC/D;YACD,OAAO,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC;QAC3C,CAAC,CAAC,CAAC;IACP,CAAC;CACJ;AAvPD,gCAuPC;AAED,SAAS,WAAW,CAAC,KAAU;IAC3B,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QAC3B,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;KAChF;IACD,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,SAAS,cAAc,CAAC,GAAQ;IAC5B,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;QACpB,MAAM,gBAAgB,GAAsB,GAAG,CAAC;QAChD,OAAO,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;KAC9D;SACI,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;QAC9B,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,iCACtC,GAAG,KACN,CAAC,GAAG,CAAC,EAAE,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IACjC,EAAE,EAAE,CAAC,CAAC;KACX;SACI;QACD,OAAO,GAAG,CAAC;KACd;AACL,CAAC"}
1
+ {"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/http/router.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -2,6 +2,7 @@ export { AuthenticationDevice } from "./authentication/authentication-device";
2
2
  export { AuthenticationSession } from "./authentication/authentication-session";
3
3
  export { AuthorizationKeystore } from "./authorization/authorization-keystore";
4
4
  export { DistributedFactCache } from "./authorization/distributed-fact-cache";
5
+ export { createLineReader } from "./http/line-reader";
5
6
  export { HttpRouter, RequestUser } from "./http/router";
6
7
  export { Stream } from "./http/stream";
7
8
  export { JinagaServer, JinagaServerConfig, JinagaServerInstance, tracePool } from "./jinaga-server";
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PostgresStore = exports.PostgresKeystore = exports.MemoryKeystore = exports.tracePool = exports.JinagaServer = exports.Stream = exports.HttpRouter = exports.DistributedFactCache = exports.AuthorizationKeystore = exports.AuthenticationSession = exports.AuthenticationDevice = void 0;
3
+ exports.PostgresStore = exports.PostgresKeystore = exports.MemoryKeystore = exports.tracePool = exports.JinagaServer = exports.Stream = exports.HttpRouter = exports.createLineReader = exports.DistributedFactCache = exports.AuthorizationKeystore = exports.AuthenticationSession = exports.AuthenticationDevice = void 0;
4
4
  var authentication_device_1 = require("./authentication/authentication-device");
5
5
  Object.defineProperty(exports, "AuthenticationDevice", { enumerable: true, get: function () { return authentication_device_1.AuthenticationDevice; } });
6
6
  var authentication_session_1 = require("./authentication/authentication-session");
@@ -9,6 +9,8 @@ var authorization_keystore_1 = require("./authorization/authorization-keystore")
9
9
  Object.defineProperty(exports, "AuthorizationKeystore", { enumerable: true, get: function () { return authorization_keystore_1.AuthorizationKeystore; } });
10
10
  var distributed_fact_cache_1 = require("./authorization/distributed-fact-cache");
11
11
  Object.defineProperty(exports, "DistributedFactCache", { enumerable: true, get: function () { return distributed_fact_cache_1.DistributedFactCache; } });
12
+ var line_reader_1 = require("./http/line-reader");
13
+ Object.defineProperty(exports, "createLineReader", { enumerable: true, get: function () { return line_reader_1.createLineReader; } });
12
14
  var router_1 = require("./http/router");
13
15
  Object.defineProperty(exports, "HttpRouter", { enumerable: true, get: function () { return router_1.HttpRouter; } });
14
16
  var stream_1 = require("./http/stream");
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,gFAA8E;AAArE,6HAAA,oBAAoB,OAAA;AAC7B,kFAAgF;AAAvE,+HAAA,qBAAqB,OAAA;AAC9B,iFAA+E;AAAtE,+HAAA,qBAAqB,OAAA;AAC9B,iFAA8E;AAArE,8HAAA,oBAAoB,OAAA;AAC7B,wCAAwD;AAA/C,oGAAA,UAAU,OAAA;AACnB,wCAAuC;AAA9B,gGAAA,MAAM,OAAA;AACf,iDAAoG;AAA3F,6GAAA,YAAY,OAAA;AAA4C,0GAAA,SAAS,OAAA;AAE1E,4DAA0D;AAAjD,iHAAA,cAAc,OAAA;AACvB,kEAAgE;AAAvD,qHAAA,gBAAgB,OAAA;AACzB,4DAA0D;AAAjD,+GAAA,aAAa,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,gFAA8E;AAArE,6HAAA,oBAAoB,OAAA;AAC7B,kFAAgF;AAAvE,+HAAA,qBAAqB,OAAA;AAC9B,iFAA+E;AAAtE,+HAAA,qBAAqB,OAAA;AAC9B,iFAA8E;AAArE,8HAAA,oBAAoB,OAAA;AAC7B,kDAAsD;AAA7C,+GAAA,gBAAgB,OAAA;AACzB,wCAAwD;AAA/C,oGAAA,UAAU,OAAA;AACnB,wCAAuC;AAA9B,gGAAA,MAAM,OAAA;AACf,iDAAoG;AAA3F,6GAAA,YAAY,OAAA;AAA4C,0GAAA,SAAS,OAAA;AAE1E,4DAA0D;AAAjD,iHAAA,cAAc,OAAA;AACvB,kEAAgE;AAAvD,qHAAA,gBAAgB,OAAA;AACzB,4DAA0D;AAAjD,+GAAA,aAAa,OAAA"}
@@ -9,6 +9,7 @@ export declare type JinagaServerConfig = {
9
9
  model?: Model;
10
10
  authorization?: (a: AuthorizationRules) => AuthorizationRules;
11
11
  distribution?: (d: DistributionRules) => DistributionRules;
12
+ origin?: string | string[] | ((origin: string, callback: (err: Error | null, allow?: boolean) => void) => void);
12
13
  };
13
14
  export declare type JinagaServerInstance = {
14
15
  handler: Handler;
@@ -37,7 +37,7 @@ class JinagaServer {
37
37
  const network = new jinaga_1.NetworkNoOp();
38
38
  const factManager = new jinaga_1.FactManager(fork, source, store, network);
39
39
  const authorization = createAuthorization(authorizationRules, distributionRules, factManager, store, keystore);
40
- const router = new router_1.HttpRouter(factManager, authorization, feedCache);
40
+ const router = new router_1.HttpRouter(factManager, authorization, feedCache, config.origin || '*');
41
41
  const j = new jinaga_1.Jinaga(authentication, factManager, syncStatusNotifier);
42
42
  function close() {
43
43
  return __awaiter(this, void 0, void 0, function* () {
@@ -1 +1 @@
1
- {"version":3,"file":"jinaga-server.js","sourceRoot":"","sources":["../src/jinaga-server.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,mCAmBgB;AAChB,2BAA0B;AAE1B,kFAA8E;AAC9E,oFAAgF;AAChF,mFAA+E;AAC/E,0CAAwD;AAExD,oEAAgE;AAChE,8DAA0D;AAoB1D,MAAM,mBAAmB,GAAG;IACxB,QAAQ,EAAE,QAAQ;IAClB,EAAE,EAAE,OAAO;CACd,CAAC;AAEF,MAAa,YAAY;IACrB,MAAM,CAAC,MAAM,CAAC,MAA0B;QACpC,MAAM,kBAAkB,GAAG,IAAI,2BAAkB,EAAE,CAAC;QACpD,MAAM,KAAK,GAA4B,EAAE,CAAC;QAC1C,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACzC,MAAM,MAAM,GAAG,IAAI,6BAAoB,CAAC,KAAK,CAAC,CAAC;QAC/C,MAAM,IAAI,GAAG,IAAI,wBAAe,CAAC,KAAK,CAAC,CAAC;QACxC,MAAM,QAAQ,GAAG,cAAc,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAC/C,MAAM,kBAAkB,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,2BAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACpH,MAAM,iBAAiB,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,0BAAiB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACtG,MAAM,SAAS,GAAG,IAAI,kBAAS,EAAE,CAAC;QAClC,MAAM,cAAc,GAAG,oBAAoB,CAAC,KAAK,EAAE,QAAQ,EAAE,kBAAkB,CAAC,CAAC;QACjF,MAAM,OAAO,GAAG,IAAI,oBAAW,EAAE,CAAC;QAClC,MAAM,WAAW,GAAG,IAAI,oBAAW,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QAClE,MAAM,aAAa,GAAG,mBAAmB,CAAC,kBAAkB,EAAE,iBAAiB,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC/G,MAAM,MAAM,GAAG,IAAI,mBAAU,CAAC,WAAW,EAAE,aAAa,EAAE,SAAS,CAAC,CAAC;QACrE,MAAM,CAAC,GAAW,IAAI,eAAM,CAAC,cAAc,EAAE,WAAW,EAAE,kBAAkB,CAAC,CAAC;QAE9E,SAAe,KAAK;;gBAChB,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;oBACrC,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC;iBACpB;YACL,CAAC;SAAA;QACD,OAAO;YACH,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,CAAC;YACD,WAAW,EAAE,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE;gBAC3B,OAAO,WAAW,CAAC,KAAK,EAAE,QAAQ,EAAE,kBAAkB,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;YAC3E,CAAC;YACD,KAAK;SACR,CAAA;IACL,CAAC;CACJ;AAhCD,oCAgCC;AAED,SAAS,WAAW,CAAC,MAA0B,EAAE,KAA8B;IAC3E,IAAI,MAAM,CAAC,OAAO,EAAE;QAChB,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC5C,MAAM,KAAK,GAAG,IAAI,8BAAa,CAAC,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;QAC5E,OAAO,KAAK,CAAC;KAChB;SACI;QACD,OAAO,IAAI,oBAAW,EAAE,CAAC;KAC5B;AACL,CAAC;AAED,SAAS,cAAc,CAAC,MAA0B,EAAE,KAA8B;IAC9E,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC;IACpC,IAAI,SAAS,EAAE;QACX,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QACvC,MAAM,QAAQ,GAAG,IAAI,oCAAgB,CAAC,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC;QACrF,OAAO,QAAQ,CAAC;KACnB;SACI;QACD,OAAO,IAAI,CAAC;KACf;AACL,CAAC;AAED,SAAS,mBAAmB,CAAC,kBAA6C,EAAE,iBAA2C,EAAE,WAAwB,EAAE,KAAc,EAAE,QAAyB;IACxL,IAAI,QAAQ,EAAE;QACV,MAAM,aAAa,GAAG,IAAI,8CAAqB,CAAC,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,kBAAkB,EAAE,iBAAiB,CAAC,CAAC;QACrH,OAAO,aAAa,CAAC;KACxB;SACI;QACD,OAAO,IAAI,0BAAiB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;KACpD;AACL,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAc,EAAE,QAAyB,EAAE,kBAA6C;IAClH,OAAO,QAAQ,CAAC,CAAC,CAAC,IAAI,4CAAoB,CAAC,KAAK,EAAE,QAAQ,EAAE,kBAAkB,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,IAAI,2BAAkB,EAAE,CAAC;AACpI,CAAC;AAED,SAAS,OAAO,CAAC,SAAwB,EAAE,KAA+B;IACtE,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;QAC/B,MAAM,GAAG,GAAG,SAAS,CAAC;QACtB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;YACb,KAAK,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;SAChC;QACD,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC;KACrB;SACI;QACD,OAAO,SAAS,CAAC;KACpB;AACL,CAAC;AAED,SAAS,UAAU,CAAC,WAAmB;IACnC,MAAM,YAAY,GAAG,IAAI,SAAI,CAAC;QAC1B,gBAAgB,EAAE,WAAW;QAC7B,iBAAiB,EAAE,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;YACzD,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC,CAAC;YACpD,KAAK;QACT,GAAG,CAAC,GAAG,QAAQ;YACX,cAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QACnC,CAAC;KACJ,CAAC,CAAC;IAEH,SAAS,CAAC,YAAY,CAAC,CAAC;IAExB,OAAO,YAAY,CAAC;AACxB,CAAC;AAED,SAAgB,SAAS,CAAC,YAAkB;IACxC,YAAY,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,MAAM,EAAE,EAAE;QAClC,cAAK,CAAC,MAAM,CAAC,mBAAmB,EAAE,WAAW,EAAE,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IACH,YAAY,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,MAAM,EAAE,EAAE;QAClC,cAAK,CAAC,MAAM,CAAC,oBAAoB,EAAE,WAAW,EAAE,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IACH,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE;QACjC,cAAK,CAAC,MAAM,CAAC,uBAAuB,EAAE,WAAW,EAAE,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IACH,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;QACrC,cAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC,CAAC,CAAC;IAEH,SAAS,WAAW;QAChB,OAAO;YACH,KAAK,EAAE,YAAY,CAAC,UAAU;YAC9B,IAAI,EAAE,YAAY,CAAC,SAAS;YAC5B,OAAO,EAAE,YAAY,CAAC,YAAY;SACrC,CAAC;IACN,CAAC;AACL,CAAC;AArBD,8BAqBC;AAED,SAAe,WAAW,CAAC,KAAc,EAAE,QAAyB,EAAE,kBAA6C,EAAE,GAAY,EAAE,QAAwC;;QACvK,MAAM,IAAI,GAAgB,GAAG,CAAC,IAAI,CAAC;QACnC,MAAM,YAAY,GAAiB;YAC/B,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,EAAE,EAAE,IAAI,CAAC,EAAE;SACd,CAAA;QACD,MAAM,cAAc,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,8CAAqB,CAAC,KAAK,EAAE,QAAQ,EAAE,kBAAkB,EAAE,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,IAAI,2BAAkB,EAAE,CAAC;QACzL,MAAM,kBAAkB,GAAG,IAAI,2BAAkB,EAAE,CAAC;QACpD,MAAM,IAAI,GAAG,IAAI,wBAAe,CAAC,KAAK,CAAC,CAAC;QACxC,MAAM,gBAAgB,GAAG,IAAI,yBAAgB,CAAC,KAAK,CAAC,CAAC;QACrD,MAAM,OAAO,GAAG,IAAI,oBAAW,EAAE,CAAC;QAClC,MAAM,WAAW,GAAG,IAAI,oBAAW,CAAC,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QAC5E,MAAM,CAAC,GAAG,IAAI,eAAM,CAAC,cAAc,EAAE,WAAW,EAAE,kBAAkB,CAAC,CAAC;QACtE,MAAM,QAAQ,CAAC,CAAC,CAAC,CAAC;IACtB,CAAC;CAAA;AAED,SAAS,cAAc,CAAC,MAA0B;IAC9C,IAAI,CAAC,MAAM,EAAE;QACT,OAAO,QAAQ,CAAC;KACnB;IAED,0DAA0D;IAC1D,qFAAqF;IACrF,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;QACrC,MAAM,IAAI,KAAK,CAAC,wBAAwB,MAAM,4GAA4G,CAAC,CAAC;KAC/J;IAED,OAAO,MAAM,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"jinaga-server.js","sourceRoot":"","sources":["../src/jinaga-server.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,6 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.MemoryKeystore = void 0;
4
4
  const jinaga_1 = require("jinaga");
5
- const node_forge_1 = require("node-forge");
6
5
  class MemoryKeystore {
7
6
  constructor() {
8
7
  this.keyPairs = {};
@@ -49,7 +48,7 @@ class MemoryKeystore {
49
48
  const key = `${userIdentity.provider}:${userIdentity.id}`;
50
49
  const keyPair = this.keyPairs[key];
51
50
  if (keyPair) {
52
- return keyPair.publicKey;
51
+ return keyPair.publicPem;
53
52
  }
54
53
  else {
55
54
  return this.generateKeyPair(key);
@@ -59,18 +58,16 @@ class MemoryKeystore {
59
58
  const key = `${userIdentity.provider}:${userIdentity.id}`;
60
59
  const keyPair = this.keyPairs[key];
61
60
  if (keyPair) {
62
- return keyPair.publicKey;
61
+ return keyPair.publicPem;
63
62
  }
64
63
  else {
65
64
  throw new Error("Public key not found");
66
65
  }
67
66
  }
68
67
  generateKeyPair(key) {
69
- const keypair = node_forge_1.pki.rsa.generateKeyPair({ bits: 1024 });
70
- const privateKey = node_forge_1.pki.privateKeyToPem(keypair.privateKey);
71
- const publicKey = node_forge_1.pki.publicKeyToPem(keypair.publicKey);
72
- this.keyPairs[key] = { publicKey, privateKey };
73
- return publicKey;
68
+ const keyPair = (0, jinaga_1.generateKeyPair)();
69
+ this.keyPairs[key] = keyPair;
70
+ return keyPair.privatePem;
74
71
  }
75
72
  }
76
73
  exports.MemoryKeystore = MemoryKeystore;
@@ -1 +1 @@
1
- {"version":3,"file":"memory-keystore.js","sourceRoot":"","sources":["../../src/memory/memory-keystore.ts"],"names":[],"mappings":";;;AAAA,mCAAoG;AACpG,2CAAiC;AAIjC,MAAa,cAAc;IAA3B;QACY,aAAQ,GAAgE,EAAE,CAAC;IA4EvF,CAAC;IA1EG,mBAAmB,CAAC,YAA0B;QAC1C,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,uBAAuB,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC,CAAC;IACtF,CAAC;IAED,qBAAqB,CAAC,YAA0B;QAC5C,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,uBAAuB,CAAC,eAAe,EAAE,YAAY,CAAC,CAAC,CAAC;IACxF,CAAC;IAED,WAAW,CAAC,YAA0B;QAClC,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC,CAAC;IAC9E,CAAC;IAED,aAAa,CAAC,YAA0B;QACpC,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,eAAe,EAAE,YAAY,CAAC,CAAC,CAAC;IAChF,CAAC;IAED,SAAS,CAAC,YAA0B,EAAE,KAAmB;QACrD,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YACpC,OAAO;gBACH,IAAI;gBACJ,UAAU,EAAE,EAAE;aACjB,CAAC;QACN,CAAC,CAAC,CAAC,CAAC;IACR,CAAC;IAEO,uBAAuB,CAAC,IAAY,EAAE,QAAsB;QAChE,MAAM,SAAS,GAAG,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;QACtD,MAAM,YAAY,GAA0B,EAAE,CAAC;QAC/C,MAAM,MAAM,GAAG;YACX,SAAS,EAAE,SAAS;SACvB,CAAC;QACF,MAAM,IAAI,GAAG,IAAA,oBAAW,EAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QAC/C,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC;IAChD,CAAC;IAEO,eAAe,CAAC,IAAY,EAAE,QAAsB;QACxD,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QAC9C,MAAM,YAAY,GAA0B,EAAE,CAAC;QAC/C,MAAM,MAAM,GAAG;YACX,SAAS,EAAE,SAAS;SACvB,CAAC;QACF,MAAM,IAAI,GAAG,IAAA,oBAAW,EAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QAC/C,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC;IAChD,CAAC;IAEO,oBAAoB,CAAC,YAA0B;QACnD,MAAM,GAAG,GAAG,GAAG,YAAY,CAAC,QAAQ,IAAI,YAAY,CAAC,EAAE,EAAE,CAAC;QAC1D,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,OAAO,EAAE;YACT,OAAO,OAAO,CAAC,SAAS,CAAC;SAC5B;aACI;YACD,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;SACpC;IACL,CAAC;IAEO,YAAY,CAAC,YAA0B;QAC3C,MAAM,GAAG,GAAG,GAAG,YAAY,CAAC,QAAQ,IAAI,YAAY,CAAC,EAAE,EAAE,CAAC;QAC1D,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,OAAO,EAAE;YACT,OAAO,OAAO,CAAC,SAAS,CAAC;SAC5B;aACI;YACD,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;SAC3C;IACL,CAAC;IAEO,eAAe,CAAC,GAAW;QAC/B,MAAM,OAAO,GAAG,gBAAG,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QACxD,MAAM,UAAU,GAAG,gBAAG,CAAC,eAAe,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC3D,MAAM,SAAS,GAAG,gBAAG,CAAC,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACxD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;QAC/C,OAAO,SAAS,CAAC;IACrB,CAAC;CACJ;AA7ED,wCA6EC"}
1
+ {"version":3,"file":"memory-keystore.js","sourceRoot":"","sources":["../../src/memory/memory-keystore.ts"],"names":[],"mappings":"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"}
@@ -11,9 +11,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.PostgresKeystore = void 0;
13
13
  const jinaga_1 = require("jinaga");
14
- const node_forge_1 = require("node-forge");
15
14
  const connection_1 = require("./connection");
16
- ;
17
15
  class PostgresKeystore {
18
16
  constructor(pool, schema) {
19
17
  this.schema = schema;
@@ -37,10 +35,8 @@ class PostgresKeystore {
37
35
  if (!userIdentity) {
38
36
  return facts.map(fact => ({ fact, signatures: [] }));
39
37
  }
40
- const { publicPem, privatePem } = yield this.getKeyPair(userIdentity);
41
- const privateKey = node_forge_1.pki.privateKeyFromPem(privatePem);
42
- const envelopes = facts.map(fact => signFact(fact, publicPem, privateKey));
43
- return envelopes;
38
+ const keyPair = yield this.getKeyPair(userIdentity);
39
+ return (0, jinaga_1.signFacts)(keyPair, facts);
44
40
  });
45
41
  }
46
42
  getOrCreateIdentityFact(type, identity) {
@@ -122,11 +118,9 @@ class PostgresKeystore {
122
118
  }
123
119
  generateKeyPair(connection, userIdentity) {
124
120
  return __awaiter(this, void 0, void 0, function* () {
125
- const keypair = node_forge_1.pki.rsa.generateKeyPair({ bits: 2048 });
126
- const privatePem = node_forge_1.pki.privateKeyToPem(keypair.privateKey);
127
- const publicPem = node_forge_1.pki.publicKeyToPem(keypair.publicKey);
128
- yield connection.query(`INSERT INTO ${this.schema}.user (provider, user_identifier, private_key, public_key) VALUES ($1, $2, $3, $4)`, [userIdentity.provider, userIdentity.id, privatePem, publicPem]);
129
- return { publicPem, privatePem };
121
+ const keyPair = (0, jinaga_1.generateKeyPair)();
122
+ yield connection.query(`INSERT INTO ${this.schema}.user (provider, user_identifier, private_key, public_key) VALUES ($1, $2, $3, $4)`, [userIdentity.provider, userIdentity.id, keyPair.privatePem, keyPair.publicPem]);
123
+ return keyPair;
130
124
  });
131
125
  }
132
126
  }
@@ -134,25 +128,4 @@ exports.PostgresKeystore = PostgresKeystore;
134
128
  function getUserIdentityKey(userIdentity) {
135
129
  return `${userIdentity.provider}-${userIdentity.id}`;
136
130
  }
137
- function signFact(fact, publicPem, privateKey) {
138
- const canonicalString = (0, jinaga_1.canonicalizeFact)(fact.fields, fact.predecessors);
139
- const encodedString = node_forge_1.util.encodeUtf8(canonicalString);
140
- const digest = node_forge_1.md.sha512.create().update(encodedString);
141
- const hash = node_forge_1.util.encode64(digest.digest().getBytes());
142
- if (fact.hash !== hash) {
143
- jinaga_1.Trace.error(`Hash does not match. "${fact.hash}" !== "${hash}"\nFact: ${canonicalString}`);
144
- return {
145
- fact,
146
- signatures: []
147
- };
148
- }
149
- const signature = node_forge_1.util.encode64(privateKey.sign(digest));
150
- return {
151
- fact,
152
- signatures: [{
153
- signature,
154
- publicKey: publicPem
155
- }]
156
- };
157
- }
158
131
  //# sourceMappingURL=postgres-keystore.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"postgres-keystore.js","sourceRoot":"","sources":["../../src/postgres/postgres-keystore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"postgres-keystore.js","sourceRoot":"","sources":["../../src/postgres/postgres-keystore.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,mCAAyI;AAIzI,6CAAiD;AAEjD,MAAa,gBAAgB;IAIzB,YAAa,IAAU,EAAU,MAAc;QAAd,WAAM,GAAN,MAAM,CAAQ;QAFvC,UAAK,GAAyB,IAAI,GAAG,EAAE,CAAC;QAG5C,IAAI,CAAC,iBAAiB,GAAG,IAAI,8BAAiB,CAAC,IAAI,CAAC,CAAC;IACzD,CAAC;IAED,mBAAmB,CAAC,YAA0B;QAC1C,OAAO,IAAI,CAAC,uBAAuB,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;IACrE,CAAC;IAED,qBAAqB,CAAC,cAA4B;QAC9C,OAAO,IAAI,CAAC,uBAAuB,CAAC,eAAe,EAAE,cAAc,CAAC,CAAC;IACzE,CAAC;IAED,WAAW,CAAC,YAA0B;QAClC,OAAO,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;IAC7D,CAAC;IAED,aAAa,CAAC,cAA4B;QACtC,OAAO,IAAI,CAAC,eAAe,CAAC,eAAe,EAAE,cAAc,CAAC,CAAC;IACjE,CAAC;IAEK,SAAS,CAAC,YAA0B,EAAE,KAAmB;;YAC3D,IAAI,CAAC,YAAY,EAAE;gBACf,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;aACxD;YAED,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;YACpD,OAAO,IAAA,kBAAS,EAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACrC,CAAC;KAAA;IAEa,uBAAuB,CAAC,IAAY,EAAE,QAAsB;;YACtE,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;YAChE,MAAM,YAAY,GAA0B,EAAE,CAAC;YAC/C,MAAM,MAAM,GAAG;gBACX,SAAS,EAAE,SAAS;aACvB,CAAC;YACF,MAAM,IAAI,GAAG,IAAA,oBAAW,EAAC,MAAM,EAAE,YAAY,CAAC,CAAC;YAC/C,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC;QAChD,CAAC;KAAA;IAEa,eAAe,CAAC,IAAY,EAAE,QAAsB;;YAC9D,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YACtD,MAAM,YAAY,GAA0B,EAAE,CAAC;YAC/C,MAAM,MAAM,GAAG;gBACX,SAAS,EAAE,SAAS;aACvB,CAAC;YACF,MAAM,IAAI,GAAG,IAAA,oBAAW,EAAC,MAAM,EAAE,YAAY,CAAC,CAAC;YAC/C,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC;QAChD,CAAC;KAAA;IAEa,UAAU,CAAC,YAA0B;;YAC/C,MAAM,GAAG,GAAG,kBAAkB,CAAC,YAAY,CAAC,CAAC;YAC7C,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;gBACrB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC;aAC/B;YACD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAC3D,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC,CAAC;YAClD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YAC7B,OAAO,OAAO,CAAC;QACnB,CAAC;KAAA;IAEa,aAAa,CAAC,UAAsB,EAAE,YAA0B;;YAC1E,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,UAAU,CAAC,KAAK,CAAC,uCAAuC,IAAI,CAAC,MAAM,oDAAoD,EAC1I,CAAC,YAAY,CAAC,QAAQ,EAAE,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC;YAC9C,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;gBACjB,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;aAC9D;iBACI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;gBACxB,MAAM,SAAS,GAAW,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;gBAChD,MAAM,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;gBAC1C,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;aACpC;iBACI;gBACD,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;aACrD;QACL,CAAC;KAAA;IAEa,oBAAoB,CAAC,YAA0B;;YACzD,MAAM,GAAG,GAAG,kBAAkB,CAAC,YAAY,CAAC,CAAC;YAC7C,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;gBACrB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC;aAC/B;YACD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,UAAU,CAAC,EAAE,CACtE,IAAI,CAAC,qBAAqB,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC,CAAC;YAC1D,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YAC7B,OAAO,OAAO,CAAC;QACnB,CAAC;KAAA;IAEa,qBAAqB,CAAC,UAAsB,EAAE,YAA0B;;YAClF,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,UAAU,CAAC,KAAK,CAAC,uCAAuC,IAAI,CAAC,MAAM,oDAAoD,EAC1I,CAAC,YAAY,CAAC,QAAQ,EAAE,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC;YAC9C,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;gBACjB,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;aAC9D;iBACI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;gBACxB,MAAM,SAAS,GAAW,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;gBAChD,MAAM,UAAU,GAAW,IAAI,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;gBAClD,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;aACpC;iBACI;gBACD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;gBACrE,OAAO,OAAO,CAAC;aAClB;QACL,CAAC;KAAA;IAEa,eAAe,CAAC,UAAsB,EAAE,YAA0B;;YAC5E,MAAM,OAAO,GAAG,IAAA,wBAAe,GAAE,CAAC;YAClC,MAAM,UAAU,CAAC,KAAK,CAAC,eAAe,IAAI,CAAC,MAAM,oFAAoF,EACjI,CAAC,YAAY,CAAC,QAAQ,EAAE,YAAY,CAAC,EAAE,EAAE,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;YACrF,OAAO,OAAO,CAAC;QACnB,CAAC;KAAA;CACJ;AAlHD,4CAkHC;AAED,SAAS,kBAAkB,CAAC,YAA0B;IAClD,OAAO,GAAG,YAAY,CAAC,QAAQ,IAAI,YAAY,CAAC,EAAE,EAAE,CAAC;AACzD,CAAC"}
@@ -0,0 +1 @@
1
+ OPTIONS {{replicatorUrl}}/read
@@ -0,0 +1,6 @@
1
+ POST {{replicatorUrl}}/save
2
+ Content-Type: application/x-jinaga-graph-v1
3
+
4
+ "Test.Root"
5
+ {}
6
+ {"identifier":"rootfact"}