@nanolink/mirrors 1.0.9 → 1.0.12

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.
@@ -1,59 +1,64 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DelegatingObject = exports.DelegatingMap = void 0;
4
- class DelegatingMap {
5
- constructor(resolver) {
1
+ var DelegatingMap = /** @class */ (function () {
2
+ function DelegatingMap(resolver) {
6
3
  this.resolver = resolver;
7
4
  }
8
- t() { return this.resolver(); }
9
- get size() { return this.t().size; }
10
- get(key) { return this.t().get(key); }
11
- has(key) { return this.t().has(key); }
12
- entries() { return this.t().entries(); }
13
- keys() { return this.t().keys(); }
14
- values() { return this.t().values(); }
15
- forEach(callbackfn, thisArg) {
16
- this.t().forEach(((v, k) => callbackfn(v, k, this)), thisArg);
17
- }
18
- [Symbol.iterator]() { return this.t()[Symbol.iterator](); }
19
- }
20
- exports.DelegatingMap = DelegatingMap;
5
+ DelegatingMap.prototype.t = function () { return this.resolver(); };
6
+ Object.defineProperty(DelegatingMap.prototype, "size", {
7
+ get: function () { return this.t().size; },
8
+ enumerable: false,
9
+ configurable: true
10
+ });
11
+ DelegatingMap.prototype.get = function (key) { return this.t().get(key); };
12
+ DelegatingMap.prototype.has = function (key) { return this.t().has(key); };
13
+ DelegatingMap.prototype.entries = function () { return this.t().entries(); };
14
+ DelegatingMap.prototype.keys = function () { return this.t().keys(); };
15
+ DelegatingMap.prototype.values = function () { return this.t().values(); };
16
+ DelegatingMap.prototype.forEach = function (callbackfn, thisArg) {
17
+ var _this = this;
18
+ this.t().forEach((function (v, k) { return callbackfn(v, k, _this); }), thisArg);
19
+ };
20
+ DelegatingMap.prototype[Symbol.iterator] = function () { return this.t()[Symbol.iterator](); };
21
+ return DelegatingMap;
22
+ }());
23
+ export { DelegatingMap };
21
24
  /**
22
25
  * Presents a ReadonlyMapView<K,V> as an immutable plain object via Proxy.
23
26
  * Optionally maps values through a mapper function on access.
24
27
  */
25
- class DelegatingObject {
26
- constructor(source, mapFn) {
28
+ var DelegatingObject = /** @class */ (function () {
29
+ function DelegatingObject(source, mapFn) {
30
+ var _this = this;
27
31
  this.source = source;
28
32
  this.mapFn = mapFn;
29
- const mapper = (v, k) => (this.mapFn ? this.mapFn(v, k) : v);
30
- const handler = {
31
- get: (_target, prop, receiver) => {
33
+ var mapper = function (v, k) { return (_this.mapFn ? _this.mapFn(v, k) : v); };
34
+ var handler = {
35
+ get: function (_target, prop, receiver) {
32
36
  if (prop === Symbol.toStringTag)
33
37
  return 'Object';
34
38
  if (typeof prop !== 'string')
35
39
  return Reflect.get(Object.prototype, prop, receiver);
36
- const key = prop;
37
- const v = this.source.get(key);
40
+ var key = prop;
41
+ var v = _this.source.get(key);
38
42
  return v === undefined ? undefined : mapper(v, key);
39
43
  },
40
- set: () => false, // immutable
41
- has: (_target, prop) => typeof prop === 'string' && this.source.has(prop),
42
- deleteProperty: () => false, // immutable
43
- ownKeys: () => Array.from(this.source.keys()),
44
- getOwnPropertyDescriptor: (_target, prop) => {
45
- if (typeof prop === 'string' && this.source.has(prop)) {
46
- const key = prop;
47
- const v = this.source.get(key);
44
+ set: function () { return false; }, // immutable
45
+ has: function (_target, prop) { return typeof prop === 'string' && _this.source.has(prop); },
46
+ deleteProperty: function () { return false; }, // immutable
47
+ ownKeys: function () { return Array.from(_this.source.keys()); },
48
+ getOwnPropertyDescriptor: function (_target, prop) {
49
+ if (typeof prop === 'string' && _this.source.has(prop)) {
50
+ var key = prop;
51
+ var v = _this.source.get(key);
48
52
  return { configurable: true, enumerable: true, value: mapper(v, key) };
49
53
  }
50
54
  return undefined;
51
55
  },
52
- defineProperty: () => false, // immutable
56
+ defineProperty: function () { return false; }, // immutable
53
57
  };
54
58
  this.proxy = new Proxy(Object.create(null), handler);
55
59
  }
56
- asObject() { return this.proxy; }
57
- }
58
- exports.DelegatingObject = DelegatingObject;
60
+ DelegatingObject.prototype.asObject = function () { return this.proxy; };
61
+ return DelegatingObject;
62
+ }());
63
+ export { DelegatingObject };
59
64
  //# sourceMappingURL=DelegateMap.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DelegateMap.js","sourceRoot":"","sources":["../src/DelegateMap.ts"],"names":[],"mappings":";;;AAYA,MAAa,aAAa;IACxB,YAA6B,QAAyB;QAAzB,aAAQ,GAAR,QAAQ,CAAiB;IAAI,CAAC;IACnD,CAAC,KAAgB,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IAClD,IAAI,IAAI,KAAa,OAAO,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5C,GAAG,CAAC,GAAM,IAAmB,OAAO,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACxD,GAAG,CAAC,GAAM,IAAa,OAAO,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAClD,OAAO,KAA+B,OAAO,IAAI,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAClE,IAAI,KAA0B,OAAO,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACvD,MAAM,KAA0B,OAAO,IAAI,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAC3D,OAAO,CAAC,UAAkE,EAAE,OAAa;QACvF,IAAI,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAI,EAAE,CAAI,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAQ,EAAE,OAAO,CAAC,CAAC;IAC7E,CAAC;IACD,CAAC,MAAM,CAAC,QAAQ,CAAC,KAA+B,OAAO,IAAI,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;CACtF;AAbD,sCAaC;AAED;;;GAGG;AACH,MAAa,gBAAgB;IAE3B,YAA6B,MAA6B,EAAmB,KAA+B;QAA/E,WAAM,GAAN,MAAM,CAAuB;QAAmB,UAAK,GAAL,KAAK,CAA0B;QAC1G,MAAM,MAAM,GAAG,CAAC,CAAI,EAAE,CAAI,EAAK,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAE,CAAkB,CAAC,CAAC;QACxF,MAAM,OAAO,GAAsB;YACjC,GAAG,EAAE,CAAC,OAAO,EAAE,IAAiB,EAAE,QAAQ,EAAE,EAAE;gBAC5C,IAAI,IAAI,KAAK,MAAM,CAAC,WAAW;oBAAE,OAAO,QAAQ,CAAC;gBACjD,IAAI,OAAO,IAAI,KAAK,QAAQ;oBAAE,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;gBACnF,MAAM,GAAG,GAAG,IAAS,CAAC;gBACtB,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAC/B,OAAO,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YACtD,CAAC;YACD,GAAG,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,YAAY;YAC9B,GAAG,EAAE,CAAC,OAAO,EAAE,IAAiB,EAAE,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAS,CAAC;YAC3F,cAAc,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,YAAY;YACzC,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAyC,CAAC;YACpF,wBAAwB,EAAE,CAAC,OAAO,EAAE,IAAiB,EAAE,EAAE;gBACvD,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAS,CAAC,EAAE,CAAC;oBAC3D,MAAM,GAAG,GAAG,IAAS,CAAC;oBACtB,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC;oBAChC,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;gBACzE,CAAC;gBACD,OAAO,SAAS,CAAC;YACnB,CAAC;YACD,cAAc,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,YAAY;SAC1C,CAAC;QACF,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;IACvD,CAAC;IACD,QAAQ,KAAmB,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;CAChD;AA7BD,4CA6BC"}
1
+ {"version":3,"file":"DelegateMap.js","sourceRoot":"","sources":["../src/DelegateMap.ts"],"names":[],"mappings":"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"}
@@ -88,10 +88,11 @@ export declare class MirrorSync extends EventEmitter {
88
88
  private targetMap;
89
89
  private advanceNumeric;
90
90
  private advanceOp;
91
- private subscribe;
91
+ private subscribeInternal;
92
92
  private resubscribe;
93
93
  private start;
94
94
  load(): Promise<ReadonlyMapView<string, any>>;
95
+ subscribe(): Promise<void>;
95
96
  private resetLoaded;
96
97
  private handlePayload;
97
98
  private normalizeItems;
@@ -1,58 +1,132 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
1
+ var __extends = (this && this.__extends) || (function () {
2
+ var extendStatics = function (d, b) {
3
+ extendStatics = Object.setPrototypeOf ||
4
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
5
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
6
+ return extendStatics(d, b);
7
+ };
8
+ return function (d, b) {
9
+ if (typeof b !== "function" && b !== null)
10
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
11
+ extendStatics(d, b);
12
+ function __() { this.constructor = d; }
13
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
14
+ };
15
+ })();
16
+ var __assign = (this && this.__assign) || function () {
17
+ __assign = Object.assign || function(t) {
18
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
19
+ s = arguments[i];
20
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
21
+ t[p] = s[p];
22
+ }
23
+ return t;
24
+ };
25
+ return __assign.apply(this, arguments);
26
+ };
27
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
28
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
29
+ return new (P || (P = Promise))(function (resolve, reject) {
30
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
31
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
32
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
33
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
34
+ });
35
+ };
36
+ var __generator = (this && this.__generator) || function (thisArg, body) {
37
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
38
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
39
+ function verb(n) { return function (v) { return step([n, v]); }; }
40
+ function step(op) {
41
+ if (f) throw new TypeError("Generator is already executing.");
42
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
43
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
44
+ if (y = 0, t) op = [op[0] & 2, t.value];
45
+ switch (op[0]) {
46
+ case 0: case 1: t = op; break;
47
+ case 4: _.label++; return { value: op[1], done: false };
48
+ case 5: _.label++; y = op[1]; op = [0]; continue;
49
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
50
+ default:
51
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
52
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
53
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
54
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
55
+ if (t[2]) _.ops.pop();
56
+ _.trys.pop(); continue;
57
+ }
58
+ op = body.call(thisArg, _);
59
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
60
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
61
+ }
62
+ };
63
+ var __values = (this && this.__values) || function(o) {
64
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
65
+ if (m) return m.call(o);
66
+ if (o && typeof o.length === "number") return {
67
+ next: function () {
68
+ if (o && i >= o.length) o = void 0;
69
+ return { value: o && o[i++], done: !o };
70
+ }
71
+ };
72
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
4
73
  };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.MirrorSync = exports.SyncType = void 0;
7
- const DelegateMap_1 = require("./DelegateMap");
8
- const eventemitter3_1 = __importDefault(require("eventemitter3"));
74
+ import { DelegatingMap } from './DelegateMap';
75
+ import EventEmitter from 'eventemitter3';
9
76
  // SyncType enum as described
10
- var SyncType;
77
+ export var SyncType;
11
78
  (function (SyncType) {
12
79
  SyncType["DELETED"] = "DELETED";
13
80
  SyncType["UPDATED"] = "UPDATED";
14
81
  SyncType["START"] = "START";
15
82
  SyncType["DONE"] = "DONE";
16
83
  SyncType["VERSION_ERROR"] = "VERSION_ERROR";
17
- })(SyncType || (exports.SyncType = SyncType = {}));
84
+ })(SyncType || (SyncType = {}));
18
85
  /**
19
86
  * MirrorSync maintains an in-memory mirror of server state based on CacheSyncResult messages.
20
87
  * Generic TBase is the item shape (must include id & version).
21
88
  */
22
- class MirrorSync extends eventemitter3_1.default {
23
- get Storage() { return this.mirror; }
24
- constructor(client, options) {
25
- super();
26
- this.mirror = new Map();
27
- this.buffer = null; // used during full/resubscription phase
28
- this.currentVersion = -1; // numeric cursor (-1 => full sync needed)
29
- this.currentOpVersion = null; // op cursor (null => full sync needed)
30
- this.unsub = null;
31
- this.fullSyncPhase = false; // only true during START..DONE when initiating from version -1
32
- this.dmap = new DelegateMap_1.DelegatingMap(() => this.mirror);
33
- this.client = client;
34
- this.options = options;
35
- this.log = options.log;
36
- this.attachClientEvents();
37
- this.resetLoaded();
89
+ var MirrorSync = /** @class */ (function (_super) {
90
+ __extends(MirrorSync, _super);
91
+ function MirrorSync(client, options) {
92
+ var _this = _super.call(this) || this;
93
+ _this.mirror = new Map();
94
+ _this.buffer = null; // used during full/resubscription phase
95
+ _this.currentVersion = -1; // numeric cursor (-1 => full sync needed)
96
+ _this.currentOpVersion = null; // op cursor (null => full sync needed)
97
+ _this.unsub = null;
98
+ _this.fullSyncPhase = false; // only true during START..DONE when initiating from version -1
99
+ _this.dmap = new DelegatingMap(function () { return _this.mirror; });
100
+ _this.client = client;
101
+ _this.options = options;
102
+ _this.log = options.log;
103
+ _this.attachClientEvents();
104
+ _this.resetLoaded();
105
+ return _this;
38
106
  }
39
- l(msg, meta) { if (this.log)
40
- this.log(msg, meta); }
41
- attachClientEvents() {
42
- this.onReconnected = () => {
43
- this.emit('resubscribe', { fromVersion: this.currentVersion });
44
- this.resubscribe();
107
+ Object.defineProperty(MirrorSync.prototype, "Storage", {
108
+ get: function () { return this.mirror; },
109
+ enumerable: false,
110
+ configurable: true
111
+ });
112
+ MirrorSync.prototype.l = function (msg, meta) { if (this.log)
113
+ this.log(msg, meta); };
114
+ MirrorSync.prototype.attachClientEvents = function () {
115
+ var _this = this;
116
+ this.onReconnected = function () {
117
+ _this.emit('resubscribe', { fromVersion: _this.currentVersion });
118
+ _this.resubscribe();
45
119
  };
46
- this.onConnected = () => {
47
- if ((this.currentVersion === -1 || this.currentOpVersion === null) && !this.unsub) {
48
- this.l('initial connected subscribe', { version: this.currentVersion, opVersion: this.currentOpVersion });
49
- this.subscribe(this.currentVersion, this.currentOpVersion);
120
+ this.onConnected = function () {
121
+ if ((_this.currentVersion === -1 || _this.currentOpVersion === null) && !_this.unsub) {
122
+ _this.l('initial connected subscribe', { version: _this.currentVersion, opVersion: _this.currentOpVersion });
123
+ _this.subscribeInternal(_this.currentVersion, _this.currentOpVersion);
50
124
  }
51
125
  };
52
126
  this.client.on('reconnected', this.onReconnected);
53
127
  this.client.on('connected', this.onConnected);
54
- }
55
- detachClientEvents() {
128
+ };
129
+ MirrorSync.prototype.detachClientEvents = function () {
56
130
  if (this.onReconnected) {
57
131
  this.client.off('reconnected', this.onReconnected);
58
132
  this.onReconnected = undefined;
@@ -61,75 +135,92 @@ class MirrorSync extends eventemitter3_1.default {
61
135
  this.client.off('connected', this.onConnected);
62
136
  this.onConnected = undefined;
63
137
  }
64
- }
65
- needsFullSync() { return this.currentVersion === -1 || this.currentOpVersion === null; }
66
- targetMap() { return (this.fullSyncPhase && this.buffer) ? this.buffer : this.mirror; }
67
- advanceNumeric(v) { if (typeof v === 'number' && v > this.currentVersion)
68
- this.currentVersion = v; }
69
- advanceOp(v) { if (v && (!this.currentOpVersion || v > this.currentOpVersion))
70
- this.currentOpVersion = v; }
71
- subscribe(version, opVersion) {
138
+ };
139
+ MirrorSync.prototype.needsFullSync = function () { return this.currentVersion === -1 || this.currentOpVersion === null; };
140
+ MirrorSync.prototype.targetMap = function () { return (this.fullSyncPhase && this.buffer) ? this.buffer : this.mirror; };
141
+ MirrorSync.prototype.advanceNumeric = function (v) { if (typeof v === 'number' && v > this.currentVersion)
142
+ this.currentVersion = v; };
143
+ MirrorSync.prototype.advanceOp = function (v) { if (v && (!this.currentOpVersion || v > this.currentOpVersion))
144
+ this.currentOpVersion = v; };
145
+ MirrorSync.prototype.subscribeInternal = function (version, opVersion) {
146
+ var _this = this;
72
147
  if (!this.client)
73
148
  throw new Error('SubscriptionClient missing');
74
149
  if (this.unsub) {
75
150
  this.unsub();
76
151
  this.unsub = null;
77
152
  }
78
- const variables = Object.assign({ version, opVersion }, (this.options.baseVariables || {}));
79
- this.l('subscribe', { version, opVersion });
80
- this.unsub = this.client.subscribe({ query: this.options.subscription, variables }, {
81
- next: (envelope) => {
153
+ var variables = __assign({ version: version, opVersion: opVersion }, (this.options.baseVariables || {}));
154
+ this.l('subscribe', { version: version, opVersion: opVersion });
155
+ this.unsub = this.client.subscribe({ query: this.options.subscription, variables: variables }, {
156
+ next: function (envelope) {
82
157
  if (envelope.errors) {
83
- this.l('graphql errors', envelope.errors);
84
- this.emit('error', envelope.errors);
158
+ _this.l('graphql errors', envelope.errors);
159
+ _this.emit('error', envelope.errors);
85
160
  }
86
- const payload = envelope.data;
161
+ var payload = envelope.data;
87
162
  if (payload)
88
- this.handlePayload(payload);
163
+ _this.handlePayload(payload);
89
164
  },
90
- error: (err) => this.l('subscription error', err),
91
- complete: () => this.l('subscription complete'),
165
+ error: function (err) { return _this.l('subscription error', err); },
166
+ complete: function () { return _this.l('subscription complete'); },
92
167
  });
93
- }
94
- resubscribe() {
168
+ };
169
+ MirrorSync.prototype.resubscribe = function () {
95
170
  // Resubscribe starting from current cursors
96
- this.subscribe(this.currentVersion, this.currentOpVersion);
97
- }
98
- start() {
171
+ this.subscribeInternal(this.currentVersion, this.currentOpVersion);
172
+ };
173
+ MirrorSync.prototype.start = function () {
99
174
  if (!this.client.isConnected()) {
100
175
  this.l('start deferred (not connected)');
101
176
  return;
102
177
  }
103
- this.subscribe(this.currentVersion, this.currentOpVersion);
104
- }
105
- load() {
178
+ this.subscribeInternal(this.currentVersion, this.currentOpVersion);
179
+ };
180
+ MirrorSync.prototype.load = function () {
106
181
  if (!this.unsub)
107
182
  this.start();
108
183
  return this.loaded;
109
- }
110
- resetLoaded() {
111
- this.loaded = new Promise(resolve => {
112
- this.resolveLoaded = resolve;
184
+ };
185
+ MirrorSync.prototype.subscribe = function () {
186
+ return __awaiter(this, void 0, void 0, function () {
187
+ return __generator(this, function (_a) {
188
+ switch (_a.label) {
189
+ case 0:
190
+ if (!this.unsub)
191
+ this.start();
192
+ return [4 /*yield*/, this.loaded];
193
+ case 1:
194
+ _a.sent();
195
+ return [2 /*return*/];
196
+ }
197
+ });
113
198
  });
114
- }
115
- handlePayload(raw) {
199
+ };
200
+ MirrorSync.prototype.resetLoaded = function () {
201
+ var _this = this;
202
+ this.loaded = new Promise(function (resolve) {
203
+ _this.resolveLoaded = resolve;
204
+ });
205
+ };
206
+ MirrorSync.prototype.handlePayload = function (raw) {
116
207
  if (!raw)
117
208
  return;
118
209
  // Always pick the first field in the payload object regardless of configured rootField
119
- const firstKey = Object.keys(raw)[0];
210
+ var firstKey = Object.keys(raw)[0];
120
211
  if (!firstKey)
121
212
  return;
122
- const msg = raw[firstKey];
213
+ var msg = raw[firstKey];
123
214
  if (!msg)
124
215
  return;
125
- const { type } = msg;
216
+ var type = msg.type;
126
217
  switch (type) {
127
218
  case SyncType.START: {
128
- const isFull = this.needsFullSync();
219
+ var isFull = this.needsFullSync();
129
220
  this.fullSyncPhase = isFull;
130
221
  // Only allocate a new buffer for a true full sync; for delta/resubscribe we append directly
131
222
  this.buffer = isFull ? new Map() : null;
132
- const payload = { full: isFull };
223
+ var payload = { full: isFull };
133
224
  this.emit('start', payload);
134
225
  break;
135
226
  }
@@ -140,80 +231,91 @@ class MirrorSync extends eventemitter3_1.default {
140
231
  this.applyDeleted(msg.deleteId, msg.deleteVersion, msg.deleteOpVersion);
141
232
  break;
142
233
  case SyncType.DONE: {
143
- const wasFull = this.fullSyncPhase;
234
+ var wasFull = this.fullSyncPhase;
144
235
  if (wasFull && this.buffer) {
145
236
  this.mirror = this.buffer;
146
237
  this.buffer = null;
147
238
  }
148
239
  this.fullSyncPhase = false;
149
- const d = { full: wasFull };
240
+ var d = { full: wasFull };
150
241
  this.emit('done', d);
151
242
  // Resolve deferred if pending
152
243
  if (this.resolveLoaded) {
153
- const r = this.resolveLoaded;
244
+ var r = this.resolveLoaded;
154
245
  this.resolveLoaded = undefined;
155
246
  r(this.dmap);
156
247
  }
157
248
  break;
158
249
  }
159
250
  case SyncType.VERSION_ERROR:
160
- const ve = { currentVersion: this.currentVersion };
251
+ var ve = { currentVersion: this.currentVersion };
161
252
  this.emit('versionError', ve);
162
253
  // restart as full sync
163
254
  this.currentVersion = -1;
164
255
  this.currentOpVersion = null;
165
256
  this.buffer = null;
166
257
  this.resetLoaded();
167
- this.subscribe(this.currentVersion, this.currentOpVersion);
258
+ this.subscribeInternal(this.currentVersion, this.currentOpVersion);
168
259
  break;
169
260
  }
170
- }
171
- normalizeItems(data) {
261
+ };
262
+ MirrorSync.prototype.normalizeItems = function (data) {
172
263
  if (!data)
173
264
  return [];
174
265
  return Array.isArray(data) ? data : [data];
175
- }
176
- applyUpdated(data, isFullPhase) {
177
- for (const item of this.normalizeItems(data)) {
178
- if (!item || typeof item.id !== 'string')
179
- continue;
180
- const hasNumeric = typeof item.version === 'number';
181
- const hasOp = typeof item.opVersion === 'string';
182
- if (!hasNumeric && !hasOp)
183
- continue;
184
- const existing = this.targetMap().get(item.id);
185
- const newerNumeric = hasNumeric && (!(existing === null || existing === void 0 ? void 0 : existing.version) || item.version >= existing.version);
186
- const newerOp = hasOp && (!(existing === null || existing === void 0 ? void 0 : existing.opVersion) || item.opVersion >= existing.opVersion);
187
- if (!existing || newerNumeric || newerOp) {
188
- this.targetMap().set(item.id, item);
189
- this.advanceNumeric(item.version);
190
- this.advanceOp(item.opVersion);
191
- this.emit('updated', item, isFullPhase);
266
+ };
267
+ MirrorSync.prototype.applyUpdated = function (data, isFullPhase) {
268
+ var e_1, _a;
269
+ try {
270
+ for (var _b = __values(this.normalizeItems(data)), _c = _b.next(); !_c.done; _c = _b.next()) {
271
+ var item = _c.value;
272
+ if (!item || typeof item.id !== 'string')
273
+ continue;
274
+ var hasNumeric = typeof item.version === 'number';
275
+ var hasOp = typeof item.opVersion === 'string';
276
+ if (!hasNumeric && !hasOp)
277
+ continue;
278
+ var existing = this.targetMap().get(item.id);
279
+ var newerNumeric = hasNumeric && (!(existing === null || existing === void 0 ? void 0 : existing.version) || item.version >= existing.version);
280
+ var newerOp = hasOp && (!(existing === null || existing === void 0 ? void 0 : existing.opVersion) || item.opVersion >= existing.opVersion);
281
+ if (!existing || newerNumeric || newerOp) {
282
+ this.targetMap().set(item.id, item);
283
+ this.advanceNumeric(item.version);
284
+ this.advanceOp(item.opVersion);
285
+ this.emit('updated', item, isFullPhase);
286
+ }
192
287
  }
193
288
  }
194
- }
195
- applyDeleted(id, deleteVersion, deleteOpVersion) {
289
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
290
+ finally {
291
+ try {
292
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
293
+ }
294
+ finally { if (e_1) throw e_1.error; }
295
+ }
296
+ };
297
+ MirrorSync.prototype.applyDeleted = function (id, deleteVersion, deleteOpVersion) {
196
298
  var _a;
197
299
  if (!id)
198
300
  return;
199
- const numericStale = !this.fullSyncPhase && typeof deleteVersion === 'number' && this.currentVersion >= 0 && deleteVersion < this.currentVersion;
200
- const opStale = !this.fullSyncPhase && deleteOpVersion && this.currentOpVersion && deleteOpVersion < this.currentOpVersion;
301
+ var numericStale = !this.fullSyncPhase && typeof deleteVersion === 'number' && this.currentVersion >= 0 && deleteVersion < this.currentVersion;
302
+ var opStale = !this.fullSyncPhase && deleteOpVersion && this.currentOpVersion && deleteOpVersion < this.currentOpVersion;
201
303
  if (numericStale && opStale) {
202
- (_a = this.l) === null || _a === void 0 ? void 0 : _a.call(this, 'skip stale delete', { id, deleteVersion, deleteOpVersion });
304
+ (_a = this.l) === null || _a === void 0 ? void 0 : _a.call(this, 'skip stale delete', { id: id, deleteVersion: deleteVersion, deleteOpVersion: deleteOpVersion });
203
305
  return;
204
306
  }
205
307
  this.targetMap().delete(id);
206
308
  this.advanceNumeric(deleteVersion);
207
309
  this.advanceOp(deleteOpVersion);
208
- const del = { id, version: deleteVersion };
310
+ var del = { id: id, version: deleteVersion };
209
311
  if (deleteOpVersion)
210
312
  del.opVersion = deleteOpVersion;
211
313
  this.emit('deleted', del);
212
- }
213
- get(id) { return this.mirror.get(id); }
214
- values() { return Array.from(this.mirror.values()); }
215
- stats() { return { version: this.currentVersion, opVersion: this.currentOpVersion, size: this.mirror.size, fullSyncInProgress: this.fullSyncPhase }; }
216
- stop() {
314
+ };
315
+ MirrorSync.prototype.get = function (id) { return this.mirror.get(id); };
316
+ MirrorSync.prototype.values = function () { return Array.from(this.mirror.values()); };
317
+ MirrorSync.prototype.stats = function () { return { version: this.currentVersion, opVersion: this.currentOpVersion, size: this.mirror.size, fullSyncInProgress: this.fullSyncPhase }; };
318
+ MirrorSync.prototype.stop = function () {
217
319
  if (this.unsub) {
218
320
  this.unsub();
219
321
  this.unsub = null;
@@ -223,12 +325,13 @@ class MirrorSync extends eventemitter3_1.default {
223
325
  this.currentOpVersion = null;
224
326
  this.buffer = null;
225
327
  if (this.resolveLoaded) {
226
- const r = this.resolveLoaded;
328
+ var r = this.resolveLoaded;
227
329
  this.resolveLoaded = undefined;
228
330
  r(this.dmap);
229
331
  }
230
332
  this.resetLoaded();
231
- }
232
- }
233
- exports.MirrorSync = MirrorSync;
333
+ };
334
+ return MirrorSync;
335
+ }(EventEmitter));
336
+ export { MirrorSync };
234
337
  //# sourceMappingURL=MirrorSync.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MirrorSync.js","sourceRoot":"","sources":["../src/MirrorSync.ts"],"names":[],"mappings":";;;;;;AAAA,+CAA+D;AAE/D,kEAAyC;AAEzC,6BAA6B;AAC7B,IAAY,QAMX;AAND,WAAY,QAAQ;IAChB,+BAAmB,CAAA;IACnB,+BAAmB,CAAA;IACnB,2BAAe,CAAA;IACf,yBAAa,CAAA;IACb,2CAA+B,CAAA;AACnC,CAAC,EANW,QAAQ,wBAAR,QAAQ,QAMnB;AA2CD;;;GAGG;AACH,MAAa,UAAW,SAAQ,uBAAY;IAkBxC,IAAI,OAAO,KAAmC,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAEnE,YAAY,MAA0B,EAAE,OAAwE;QAC5G,KAAK,EAAE,CAAC;QAlBJ,WAAM,GAAG,IAAI,GAAG,EAAsB,CAAC;QACvC,WAAM,GAAmC,IAAI,CAAC,CAAC,wCAAwC;QACvF,mBAAc,GAAG,CAAC,CAAC,CAAC,CAAC,0CAA0C;QAC/D,qBAAgB,GAAkB,IAAI,CAAC,CAAC,uCAAuC;QAC/E,UAAK,GAAwB,IAAI,CAAC;QAClC,kBAAa,GAAG,KAAK,CAAC,CAAC,+DAA+D;QAEtF,SAAI,GAAG,IAAI,2BAAa,CAAc,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAY7D,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;QACvB,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,WAAW,EAAE,CAAC;IACvB,CAAC;IAEO,CAAC,CAAC,GAAW,EAAE,IAAU,IAAI,IAAI,IAAI,CAAC,GAAG;QAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAEjE,kBAAkB;QACtB,IAAI,CAAC,aAAa,GAAG,GAAG,EAAE;YACtB,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;YAC/D,IAAI,CAAC,WAAW,EAAE,CAAC;QACvB,CAAC,CAAC;QACF,IAAI,CAAC,WAAW,GAAG,GAAG,EAAE;YACpB,IAAI,CAAC,IAAI,CAAC,cAAc,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,gBAAgB,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;gBAChF,IAAI,CAAC,CAAC,CAAC,6BAA6B,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,SAAS,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;gBAC1G,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAC/D,CAAC;QACL,CAAC,CAAC;QACF,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QAClD,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IAClD,CAAC;IAEO,kBAAkB;QACtB,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YACnD,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;QACnC,CAAC;QACD,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;YAC/C,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;QACjC,CAAC;IACL,CAAC;IAEO,aAAa,KAAc,OAAO,IAAI,CAAC,cAAc,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,gBAAgB,KAAK,IAAI,CAAC,CAAC,CAAC;IACjG,SAAS,KAA8B,OAAO,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAO,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACjH,cAAc,CAAC,CAAU,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,GAAG,IAAI,CAAC,cAAc;QAAE,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC;IAC7G,SAAS,CAAC,CAAU,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAAE,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC,CAAC;IAEpH,SAAS,CAAC,OAAe,EAAE,SAAwB;QACvD,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAChE,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAAC,CAAC;QACpD,MAAM,SAAS,mBAAK,OAAO,EAAE,SAAS,IAAK,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,EAAE,CAAC,CAAE,CAAC;QAChF,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;QAC5C,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAC9B,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,SAAS,EAAE,EAC/C;YACI,IAAI,EAAE,CAAC,QAAmE,EAAE,EAAE;gBAC1E,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;oBAClB,IAAI,CAAC,CAAC,CAAC,gBAAgB,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;oBAC1C,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;gBACxC,CAAC;gBACD,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAoD,CAAC;gBAC9E,IAAI,OAAO;oBAAE,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YAC7C,CAAC;YACD,KAAK,EAAE,CAAC,GAAY,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,oBAAoB,EAAE,GAAG,CAAC;YAC1D,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,uBAAuB,CAAC;SAClD,CACJ,CAAC;IACN,CAAC;IAEO,WAAW;QACf,4CAA4C;QAC5C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC/D,CAAC;IAEO,KAAK;QACT,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC;YAAC,IAAI,CAAC,CAAC,CAAC,gCAAgC,CAAC,CAAC;YAAC,OAAO;QAAC,CAAC;QACrF,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC/D,CAAC;IAED,IAAI;QACA,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,IAAI,CAAC,KAAK,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAEO,WAAW;QACf,IAAI,CAAC,MAAM,GAAG,IAAI,OAAO,CAA+B,OAAO,CAAC,EAAE;YAC9D,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC;QACjC,CAAC,CAAC,CAAC;IACP,CAAC;IAEO,aAAa,CAAC,GAAiD;QACnE,IAAI,CAAC,GAAG;YAAE,OAAO;QACjB,uFAAuF;QACvF,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACrC,IAAI,CAAC,QAAQ;YAAE,OAAO;QACtB,MAAM,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC1B,IAAI,CAAC,GAAG;YAAE,OAAO;QACjB,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC;QACrB,QAAQ,IAAI,EAAE,CAAC;YACX,KAAK,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;gBAClB,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;gBACpC,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC;gBAC5B,4FAA4F;gBAC5F,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;gBACxC,MAAM,OAAO,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;gBACjC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gBAC5B,MAAM;YACV,CAAC;YACD,KAAK,QAAQ,CAAC,OAAO;gBACjB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;gBAChD,MAAM;YACV,KAAK,QAAQ,CAAC,OAAO;gBACjB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,aAAa,EAAE,GAAG,CAAC,eAAe,CAAC,CAAC;gBACxE,MAAM;YACV,KAAK,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;gBACjB,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC;gBACnC,IAAI,OAAO,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;oBACzB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;oBAC1B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;gBACvB,CAAC;gBACD,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;gBAC3B,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;gBAC5B,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;gBACrB,8BAA8B;gBAC9B,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;oBACrB,MAAM,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC;oBAAC,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;oBAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC/E,CAAC;gBACD,MAAM;YACV,CAAC;YACD,KAAK,QAAQ,CAAC,aAAa;gBACvB,MAAM,EAAE,GAAG,EAAE,cAAc,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC;gBACnD,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;gBAC9B,uBAAuB;gBACvB,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC;gBACzB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;gBAC7B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;gBACnB,IAAI,CAAC,WAAW,EAAE,CAAC;gBACnB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;gBAC3D,MAAM;QACd,CAAC;IACL,CAAC;IAEO,cAAc,CAAC,IAAS;QAC5B,IAAI,CAAC,IAAI;YAAE,OAAO,EAAE,CAAC;QACrB,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC/C,CAAC;IAEO,YAAY,CAAC,IAAS,EAAE,WAAoB;QAChD,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3C,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,QAAQ;gBAAE,SAAS;YACnD,MAAM,UAAU,GAAG,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,CAAC;YACpD,MAAM,KAAK,GAAG,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ,CAAC;YACjD,IAAI,CAAC,UAAU,IAAI,CAAC,KAAK;gBAAE,SAAS;YACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC/C,MAAM,YAAY,GAAG,UAAU,IAAI,CAAC,CAAC,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,OAAO,CAAA,IAAI,IAAI,CAAC,OAAQ,IAAI,QAAQ,CAAC,OAAO,CAAC,CAAC;YAC7F,MAAM,OAAO,GAAG,KAAK,IAAI,CAAC,CAAC,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,SAAS,CAAA,IAAI,IAAI,CAAC,SAAU,IAAI,QAAQ,CAAC,SAAS,CAAC,CAAC;YACzF,IAAI,CAAC,QAAQ,IAAI,YAAY,IAAI,OAAO,EAAE,CAAC;gBACvC,IAAI,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;gBACpC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAClC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC/B,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;YAC5C,CAAC;QACL,CAAC;IACL,CAAC;IACO,YAAY,CAAC,EAAW,EAAE,aAAsB,EAAE,eAAwB;;QAC9E,IAAI,CAAC,EAAE;YAAE,OAAO;QAChB,MAAM,YAAY,GAAG,CAAC,IAAI,CAAC,aAAa,IAAI,OAAO,aAAa,KAAK,QAAQ,IAAI,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC;QACjJ,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,aAAa,IAAI,eAAe,IAAI,IAAI,CAAC,gBAAgB,IAAI,eAAe,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAC3H,IAAI,YAAY,IAAI,OAAO,EAAE,CAAC;YAC1B,MAAA,IAAI,CAAC,CAAC,qDAAG,mBAAmB,EAAE,EAAE,EAAE,EAAE,aAAa,EAAE,eAAe,EAAE,CAAC,CAAC;YACtE,OAAO;QACX,CAAC;QACD,IAAI,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC5B,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;QACnC,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;QAChC,MAAM,GAAG,GAAQ,EAAE,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC;QAChD,IAAI,eAAe;YAAE,GAAG,CAAC,SAAS,GAAG,eAAe,CAAC;QACrD,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;IAC9B,CAAC;IAED,GAAG,CAAC,EAAU,IAAqB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAChE,MAAM,KAAY,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;IAC5D,KAAK,KAAkB,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,SAAS,EAAE,IAAI,CAAC,gBAAgB,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,kBAAkB,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;IAEnK,IAAI;QACA,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAAC,CAAC;QACpD,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC;QACzB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC7B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,MAAM,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC;YAAC,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;YAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/E,CAAC;QACD,IAAI,CAAC,WAAW,EAAE,CAAC;IACvB,CAAC;CACJ;AAlND,gCAkNC"}
1
+ {"version":3,"file":"MirrorSync.js","sourceRoot":"","sources":["../src/MirrorSync.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,aAAa,EAAmB,MAAM,eAAe,CAAC;AAE/D,OAAO,YAAY,MAAM,eAAe,CAAC;AAEzC,6BAA6B;AAC7B,MAAM,CAAN,IAAY,QAMX;AAND,WAAY,QAAQ;IAChB,+BAAmB,CAAA;IACnB,+BAAmB,CAAA;IACnB,2BAAe,CAAA;IACf,yBAAa,CAAA;IACb,2CAA+B,CAAA;AACnC,CAAC,EANW,QAAQ,KAAR,QAAQ,QAMnB;AA2CD;;;GAGG;AACH;IAAgC,8BAAY;IAoBxC,oBAAY,MAA0B,EAAE,OAAwE;QAC5G,YAAA,MAAK,WAAE,SAAC;QAlBJ,YAAM,GAAG,IAAI,GAAG,EAAsB,CAAC;QACvC,YAAM,GAAmC,IAAI,CAAC,CAAC,wCAAwC;QACvF,oBAAc,GAAG,CAAC,CAAC,CAAC,CAAC,0CAA0C;QAC/D,sBAAgB,GAAkB,IAAI,CAAC,CAAC,uCAAuC;QAC/E,WAAK,GAAwB,IAAI,CAAC;QAClC,mBAAa,GAAG,KAAK,CAAC,CAAC,+DAA+D;QAEtF,UAAI,GAAG,IAAI,aAAa,CAAc,cAAM,OAAA,KAAI,CAAC,MAAM,EAAX,CAAW,CAAC,CAAC;QAY7D,KAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,KAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,KAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;QACvB,KAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,KAAI,CAAC,WAAW,EAAE,CAAC;;IACvB,CAAC;IATD,sBAAI,+BAAO;aAAX,cAA8C,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;;;OAAA;IAW3D,sBAAC,GAAT,UAAU,GAAW,EAAE,IAAU,IAAI,IAAI,IAAI,CAAC,GAAG;QAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAEjE,uCAAkB,GAA1B;QAAA,iBAaC;QAZG,IAAI,CAAC,aAAa,GAAG;YACjB,KAAI,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,WAAW,EAAE,KAAI,CAAC,cAAc,EAAE,CAAC,CAAC;YAC/D,KAAI,CAAC,WAAW,EAAE,CAAC;QACvB,CAAC,CAAC;QACF,IAAI,CAAC,WAAW,GAAG;YACf,IAAI,CAAC,KAAI,CAAC,cAAc,KAAK,CAAC,CAAC,IAAI,KAAI,CAAC,gBAAgB,KAAK,IAAI,CAAC,IAAI,CAAC,KAAI,CAAC,KAAK,EAAE,CAAC;gBAChF,KAAI,CAAC,CAAC,CAAC,6BAA6B,EAAE,EAAE,OAAO,EAAE,KAAI,CAAC,cAAc,EAAE,SAAS,EAAE,KAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;gBAC1G,KAAI,CAAC,iBAAiB,CAAC,KAAI,CAAC,cAAc,EAAE,KAAI,CAAC,gBAAgB,CAAC,CAAC;YACvE,CAAC;QACL,CAAC,CAAC;QACF,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QAClD,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IAClD,CAAC;IAEO,uCAAkB,GAA1B;QACI,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YACnD,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;QACnC,CAAC;QACD,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;YAC/C,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;QACjC,CAAC;IACL,CAAC;IAEO,kCAAa,GAArB,cAAmC,OAAO,IAAI,CAAC,cAAc,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,gBAAgB,KAAK,IAAI,CAAC,CAAC,CAAC;IACjG,8BAAS,GAAjB,cAA+C,OAAO,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAO,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACjH,mCAAc,GAAtB,UAAuB,CAAU,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,GAAG,IAAI,CAAC,cAAc;QAAE,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC;IAC7G,8BAAS,GAAjB,UAAkB,CAAU,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAAE,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC,CAAC;IAEpH,sCAAiB,GAAzB,UAA0B,OAAe,EAAE,SAAwB;QAAnE,iBAoBC;QAnBG,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAChE,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAAC,CAAC;QACpD,IAAM,SAAS,cAAK,OAAO,SAAA,EAAE,SAAS,WAAA,IAAK,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,EAAE,CAAC,CAAE,CAAC;QAChF,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,OAAO,SAAA,EAAE,SAAS,WAAA,EAAE,CAAC,CAAC;QAC5C,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAC9B,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,SAAS,WAAA,EAAE,EAC/C;YACI,IAAI,EAAE,UAAC,QAAmE;gBACtE,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;oBAClB,KAAI,CAAC,CAAC,CAAC,gBAAgB,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;oBAC1C,KAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;gBACxC,CAAC;gBACD,IAAM,OAAO,GAAG,QAAQ,CAAC,IAAoD,CAAC;gBAC9E,IAAI,OAAO;oBAAE,KAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YAC7C,CAAC;YACD,KAAK,EAAE,UAAC,GAAY,IAAK,OAAA,KAAI,CAAC,CAAC,CAAC,oBAAoB,EAAE,GAAG,CAAC,EAAjC,CAAiC;YAC1D,QAAQ,EAAE,cAAM,OAAA,KAAI,CAAC,CAAC,CAAC,uBAAuB,CAAC,EAA/B,CAA+B;SAClD,CACJ,CAAC;IACN,CAAC;IAEO,gCAAW,GAAnB;QACI,4CAA4C;QAC5C,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACvE,CAAC;IAEO,0BAAK,GAAb;QACI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC;YAAC,IAAI,CAAC,CAAC,CAAC,gCAAgC,CAAC,CAAC;YAAC,OAAO;QAAC,CAAC;QACrF,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACvE,CAAC;IAED,yBAAI,GAAJ;QACI,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,IAAI,CAAC,KAAK,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IACK,8BAAS,GAAf;;;;;wBACI,IAAI,CAAC,IAAI,CAAC,KAAK;4BAAE,IAAI,CAAC,KAAK,EAAE,CAAC;wBAC9B,qBAAM,IAAI,CAAC,MAAM,EAAA;;wBAAjB,SAAiB,CAAC;;;;;KACrB;IAEO,gCAAW,GAAnB;QAAA,iBAIC;QAHG,IAAI,CAAC,MAAM,GAAG,IAAI,OAAO,CAA+B,UAAA,OAAO;YAC3D,KAAI,CAAC,aAAa,GAAG,OAAO,CAAC;QACjC,CAAC,CAAC,CAAC;IACP,CAAC;IAEO,kCAAa,GAArB,UAAsB,GAAiD;QACnE,IAAI,CAAC,GAAG;YAAE,OAAO;QACjB,uFAAuF;QACvF,IAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACrC,IAAI,CAAC,QAAQ;YAAE,OAAO;QACtB,IAAM,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC1B,IAAI,CAAC,GAAG;YAAE,OAAO;QACT,IAAA,IAAI,GAAK,GAAG,KAAR,CAAS;QACrB,QAAQ,IAAI,EAAE,CAAC;YACX,KAAK,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;gBAClB,IAAM,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;gBACpC,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC;gBAC5B,4FAA4F;gBAC5F,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;gBACxC,IAAM,OAAO,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;gBACjC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gBAC5B,MAAM;YACV,CAAC;YACD,KAAK,QAAQ,CAAC,OAAO;gBACjB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;gBAChD,MAAM;YACV,KAAK,QAAQ,CAAC,OAAO;gBACjB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,aAAa,EAAE,GAAG,CAAC,eAAe,CAAC,CAAC;gBACxE,MAAM;YACV,KAAK,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;gBACjB,IAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC;gBACnC,IAAI,OAAO,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;oBACzB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;oBAC1B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;gBACvB,CAAC;gBACD,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;gBAC3B,IAAM,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;gBAC5B,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;gBACrB,8BAA8B;gBAC9B,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;oBACrB,IAAM,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC;oBAAC,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;oBAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC/E,CAAC;gBACD,MAAM;YACV,CAAC;YACD,KAAK,QAAQ,CAAC,aAAa;gBACvB,IAAM,EAAE,GAAG,EAAE,cAAc,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC;gBACnD,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;gBAC9B,uBAAuB;gBACvB,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC;gBACzB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;gBAC7B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;gBACnB,IAAI,CAAC,WAAW,EAAE,CAAC;gBACnB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;gBACnE,MAAM;QACd,CAAC;IACL,CAAC;IAEO,mCAAc,GAAtB,UAAuB,IAAS;QAC5B,IAAI,CAAC,IAAI;YAAE,OAAO,EAAE,CAAC;QACrB,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC/C,CAAC;IAEO,iCAAY,GAApB,UAAqB,IAAS,EAAE,WAAoB;;;YAChD,KAAmB,IAAA,KAAA,SAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA,gBAAA,4BAAE,CAAC;gBAA1C,IAAM,IAAI,WAAA;gBACX,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,QAAQ;oBAAE,SAAS;gBACnD,IAAM,UAAU,GAAG,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,CAAC;gBACpD,IAAM,KAAK,GAAG,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ,CAAC;gBACjD,IAAI,CAAC,UAAU,IAAI,CAAC,KAAK;oBAAE,SAAS;gBACpC,IAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC/C,IAAM,YAAY,GAAG,UAAU,IAAI,CAAC,CAAC,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,OAAO,CAAA,IAAI,IAAI,CAAC,OAAQ,IAAI,QAAQ,CAAC,OAAO,CAAC,CAAC;gBAC7F,IAAM,OAAO,GAAG,KAAK,IAAI,CAAC,CAAC,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,SAAS,CAAA,IAAI,IAAI,CAAC,SAAU,IAAI,QAAQ,CAAC,SAAS,CAAC,CAAC;gBACzF,IAAI,CAAC,QAAQ,IAAI,YAAY,IAAI,OAAO,EAAE,CAAC;oBACvC,IAAI,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;oBACpC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBAClC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBAC/B,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;gBAC5C,CAAC;YACL,CAAC;;;;;;;;;IACL,CAAC;IACO,iCAAY,GAApB,UAAqB,EAAW,EAAE,aAAsB,EAAE,eAAwB;;QAC9E,IAAI,CAAC,EAAE;YAAE,OAAO;QAChB,IAAM,YAAY,GAAG,CAAC,IAAI,CAAC,aAAa,IAAI,OAAO,aAAa,KAAK,QAAQ,IAAI,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC;QACjJ,IAAM,OAAO,GAAG,CAAC,IAAI,CAAC,aAAa,IAAI,eAAe,IAAI,IAAI,CAAC,gBAAgB,IAAI,eAAe,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAC3H,IAAI,YAAY,IAAI,OAAO,EAAE,CAAC;YAC1B,MAAA,IAAI,CAAC,CAAC,qDAAG,mBAAmB,EAAE,EAAE,EAAE,IAAA,EAAE,aAAa,eAAA,EAAE,eAAe,iBAAA,EAAE,CAAC,CAAC;YACtE,OAAO;QACX,CAAC;QACD,IAAI,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC5B,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;QACnC,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;QAChC,IAAM,GAAG,GAAQ,EAAE,EAAE,IAAA,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC;QAChD,IAAI,eAAe;YAAE,GAAG,CAAC,SAAS,GAAG,eAAe,CAAC;QACrD,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;IAC9B,CAAC;IAED,wBAAG,GAAH,UAAI,EAAU,IAAqB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAChE,2BAAM,GAAN,cAAkB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;IAC5D,0BAAK,GAAL,cAAuB,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,SAAS,EAAE,IAAI,CAAC,gBAAgB,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,kBAAkB,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;IAEnK,yBAAI,GAAJ;QACI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAAC,CAAC;QACpD,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC;QACzB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC7B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,IAAM,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC;YAAC,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;YAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/E,CAAC;QACD,IAAI,CAAC,WAAW,EAAE,CAAC;IACvB,CAAC;IACL,iBAAC;AAAD,CAAC,AAtND,CAAgC,YAAY,GAsN3C"}