@aws-amplify/pubsub 4.3.3-unstable.2 → 4.3.3-unstable.6

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 (21) hide show
  1. package/dist/aws-amplify-pubsub.js +174 -145
  2. package/dist/aws-amplify-pubsub.js.map +1 -1
  3. package/dist/aws-amplify-pubsub.min.js +2 -2
  4. package/dist/aws-amplify-pubsub.min.js.map +1 -1
  5. package/lib/Providers/AWSAppSyncRealTimeProvider/constants.d.ts +82 -0
  6. package/lib/Providers/AWSAppSyncRealTimeProvider/constants.js +90 -0
  7. package/lib/Providers/AWSAppSyncRealTimeProvider/constants.js.map +1 -0
  8. package/lib/Providers/{AWSAppSyncRealTimeProvider.d.ts → AWSAppSyncRealTimeProvider/index.d.ts} +14 -3
  9. package/lib/Providers/{AWSAppSyncRealTimeProvider.js → AWSAppSyncRealTimeProvider/index.js} +43 -125
  10. package/lib/Providers/AWSAppSyncRealTimeProvider/index.js.map +1 -0
  11. package/lib-esm/Providers/AWSAppSyncRealTimeProvider/constants.d.ts +82 -0
  12. package/lib-esm/Providers/AWSAppSyncRealTimeProvider/constants.js +88 -0
  13. package/lib-esm/Providers/AWSAppSyncRealTimeProvider/constants.js.map +1 -0
  14. package/lib-esm/Providers/{AWSAppSyncRealTimeProvider.d.ts → AWSAppSyncRealTimeProvider/index.d.ts} +14 -3
  15. package/lib-esm/Providers/{AWSAppSyncRealTimeProvider.js → AWSAppSyncRealTimeProvider/index.js} +9 -91
  16. package/lib-esm/Providers/AWSAppSyncRealTimeProvider/index.js.map +1 -0
  17. package/package.json +13 -7
  18. package/src/Providers/AWSAppSyncRealTimeProvider/constants.ts +95 -0
  19. package/src/Providers/{AWSAppSyncRealTimeProvider.ts → AWSAppSyncRealTimeProvider/index.ts} +23 -101
  20. package/lib/Providers/AWSAppSyncRealTimeProvider.js.map +0 -1
  21. package/lib-esm/Providers/AWSAppSyncRealTimeProvider.js.map +0 -1
@@ -0,0 +1,82 @@
1
+ export declare const MAX_DELAY_MS = 5000;
2
+ export declare const NON_RETRYABLE_CODES: number[];
3
+ export declare enum MESSAGE_TYPES {
4
+ /**
5
+ * Client -> Server message.
6
+ * This message type is the first message after handshake and this will initialize AWS AppSync RealTime communication
7
+ */
8
+ GQL_CONNECTION_INIT = "connection_init",
9
+ /**
10
+ * Server -> Client message
11
+ * This message type is in case there is an issue with AWS AppSync RealTime when establishing connection
12
+ */
13
+ GQL_CONNECTION_ERROR = "connection_error",
14
+ /**
15
+ * Server -> Client message.
16
+ * This message type is for the ack response from AWS AppSync RealTime for GQL_CONNECTION_INIT message
17
+ */
18
+ GQL_CONNECTION_ACK = "connection_ack",
19
+ /**
20
+ * Client -> Server message.
21
+ * This message type is for register subscriptions with AWS AppSync RealTime
22
+ */
23
+ GQL_START = "start",
24
+ /**
25
+ * Server -> Client message.
26
+ * This message type is for the ack response from AWS AppSync RealTime for GQL_START message
27
+ */
28
+ GQL_START_ACK = "start_ack",
29
+ /**
30
+ * Server -> Client message.
31
+ * This message type is for subscription message from AWS AppSync RealTime
32
+ */
33
+ GQL_DATA = "data",
34
+ /**
35
+ * Server -> Client message.
36
+ * This message type helps the client to know is still receiving messages from AWS AppSync RealTime
37
+ */
38
+ GQL_CONNECTION_KEEP_ALIVE = "ka",
39
+ /**
40
+ * Client -> Server message.
41
+ * This message type is for unregister subscriptions with AWS AppSync RealTime
42
+ */
43
+ GQL_STOP = "stop",
44
+ /**
45
+ * Server -> Client message.
46
+ * This message type is for the ack response from AWS AppSync RealTime for GQL_STOP message
47
+ */
48
+ GQL_COMPLETE = "complete",
49
+ /**
50
+ * Server -> Client message.
51
+ * This message type is for sending error messages from AWS AppSync RealTime to the client
52
+ */
53
+ GQL_ERROR = "error"
54
+ }
55
+ export declare enum SUBSCRIPTION_STATUS {
56
+ PENDING = 0,
57
+ CONNECTED = 1,
58
+ FAILED = 2
59
+ }
60
+ export declare enum SOCKET_STATUS {
61
+ CLOSED = 0,
62
+ READY = 1,
63
+ CONNECTING = 2
64
+ }
65
+ export declare const AMPLIFY_SYMBOL: Symbol;
66
+ export declare const AWS_APPSYNC_REALTIME_HEADERS: {
67
+ accept: string;
68
+ 'content-encoding': string;
69
+ 'content-type': string;
70
+ };
71
+ /**
72
+ * Time in milleseconds to wait for GQL_CONNECTION_INIT message
73
+ */
74
+ export declare const CONNECTION_INIT_TIMEOUT = 15000;
75
+ /**
76
+ * Time in milleseconds to wait for GQL_START_ACK message
77
+ */
78
+ export declare const START_ACK_TIMEOUT = 15000;
79
+ /**
80
+ * Default Time in milleseconds to wait for GQL_CONNECTION_KEEP_ALIVE message
81
+ */
82
+ export declare const DEFAULT_KEEP_ALIVE_TIMEOUT: number;
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MAX_DELAY_MS = 5000;
4
+ exports.NON_RETRYABLE_CODES = [400, 401, 403];
5
+ var MESSAGE_TYPES;
6
+ (function (MESSAGE_TYPES) {
7
+ /**
8
+ * Client -> Server message.
9
+ * This message type is the first message after handshake and this will initialize AWS AppSync RealTime communication
10
+ */
11
+ MESSAGE_TYPES["GQL_CONNECTION_INIT"] = "connection_init";
12
+ /**
13
+ * Server -> Client message
14
+ * This message type is in case there is an issue with AWS AppSync RealTime when establishing connection
15
+ */
16
+ MESSAGE_TYPES["GQL_CONNECTION_ERROR"] = "connection_error";
17
+ /**
18
+ * Server -> Client message.
19
+ * This message type is for the ack response from AWS AppSync RealTime for GQL_CONNECTION_INIT message
20
+ */
21
+ MESSAGE_TYPES["GQL_CONNECTION_ACK"] = "connection_ack";
22
+ /**
23
+ * Client -> Server message.
24
+ * This message type is for register subscriptions with AWS AppSync RealTime
25
+ */
26
+ MESSAGE_TYPES["GQL_START"] = "start";
27
+ /**
28
+ * Server -> Client message.
29
+ * This message type is for the ack response from AWS AppSync RealTime for GQL_START message
30
+ */
31
+ MESSAGE_TYPES["GQL_START_ACK"] = "start_ack";
32
+ /**
33
+ * Server -> Client message.
34
+ * This message type is for subscription message from AWS AppSync RealTime
35
+ */
36
+ MESSAGE_TYPES["GQL_DATA"] = "data";
37
+ /**
38
+ * Server -> Client message.
39
+ * This message type helps the client to know is still receiving messages from AWS AppSync RealTime
40
+ */
41
+ MESSAGE_TYPES["GQL_CONNECTION_KEEP_ALIVE"] = "ka";
42
+ /**
43
+ * Client -> Server message.
44
+ * This message type is for unregister subscriptions with AWS AppSync RealTime
45
+ */
46
+ MESSAGE_TYPES["GQL_STOP"] = "stop";
47
+ /**
48
+ * Server -> Client message.
49
+ * This message type is for the ack response from AWS AppSync RealTime for GQL_STOP message
50
+ */
51
+ MESSAGE_TYPES["GQL_COMPLETE"] = "complete";
52
+ /**
53
+ * Server -> Client message.
54
+ * This message type is for sending error messages from AWS AppSync RealTime to the client
55
+ */
56
+ MESSAGE_TYPES["GQL_ERROR"] = "error";
57
+ })(MESSAGE_TYPES = exports.MESSAGE_TYPES || (exports.MESSAGE_TYPES = {}));
58
+ var SUBSCRIPTION_STATUS;
59
+ (function (SUBSCRIPTION_STATUS) {
60
+ SUBSCRIPTION_STATUS[SUBSCRIPTION_STATUS["PENDING"] = 0] = "PENDING";
61
+ SUBSCRIPTION_STATUS[SUBSCRIPTION_STATUS["CONNECTED"] = 1] = "CONNECTED";
62
+ SUBSCRIPTION_STATUS[SUBSCRIPTION_STATUS["FAILED"] = 2] = "FAILED";
63
+ })(SUBSCRIPTION_STATUS = exports.SUBSCRIPTION_STATUS || (exports.SUBSCRIPTION_STATUS = {}));
64
+ var SOCKET_STATUS;
65
+ (function (SOCKET_STATUS) {
66
+ SOCKET_STATUS[SOCKET_STATUS["CLOSED"] = 0] = "CLOSED";
67
+ SOCKET_STATUS[SOCKET_STATUS["READY"] = 1] = "READY";
68
+ SOCKET_STATUS[SOCKET_STATUS["CONNECTING"] = 2] = "CONNECTING";
69
+ })(SOCKET_STATUS = exports.SOCKET_STATUS || (exports.SOCKET_STATUS = {}));
70
+ exports.AMPLIFY_SYMBOL = (typeof Symbol !== 'undefined' && typeof Symbol.for === 'function'
71
+ ? Symbol.for('amplify_default')
72
+ : '@@amplify_default');
73
+ exports.AWS_APPSYNC_REALTIME_HEADERS = {
74
+ accept: 'application/json, text/javascript',
75
+ 'content-encoding': 'amz-1.0',
76
+ 'content-type': 'application/json; charset=UTF-8',
77
+ };
78
+ /**
79
+ * Time in milleseconds to wait for GQL_CONNECTION_INIT message
80
+ */
81
+ exports.CONNECTION_INIT_TIMEOUT = 15000;
82
+ /**
83
+ * Time in milleseconds to wait for GQL_START_ACK message
84
+ */
85
+ exports.START_ACK_TIMEOUT = 15000;
86
+ /**
87
+ * Default Time in milleseconds to wait for GQL_CONNECTION_KEEP_ALIVE message
88
+ */
89
+ exports.DEFAULT_KEEP_ALIVE_TIMEOUT = 5 * 60 * 1000;
90
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/Providers/AWSAppSyncRealTimeProvider/constants.ts"],"names":[],"mappings":";;AAAa,QAAA,YAAY,GAAG,IAAI,CAAC;AAEpB,QAAA,mBAAmB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAEnD,IAAY,aAmDX;AAnDD,WAAY,aAAa;IACxB;;;OAGG;IACH,wDAAuC,CAAA;IACvC;;;OAGG;IACH,0DAAyC,CAAA;IACzC;;;OAGG;IACH,sDAAqC,CAAA;IACrC;;;OAGG;IACH,oCAAmB,CAAA;IACnB;;;OAGG;IACH,4CAA2B,CAAA;IAC3B;;;OAGG;IACH,kCAAiB,CAAA;IACjB;;;OAGG;IACH,iDAAgC,CAAA;IAChC;;;OAGG;IACH,kCAAiB,CAAA;IACjB;;;OAGG;IACH,0CAAyB,CAAA;IACzB;;;OAGG;IACH,oCAAmB,CAAA;AACpB,CAAC,EAnDW,aAAa,GAAb,qBAAa,KAAb,qBAAa,QAmDxB;AAED,IAAY,mBAIX;AAJD,WAAY,mBAAmB;IAC9B,mEAAO,CAAA;IACP,uEAAS,CAAA;IACT,iEAAM,CAAA;AACP,CAAC,EAJW,mBAAmB,GAAnB,2BAAmB,KAAnB,2BAAmB,QAI9B;AAED,IAAY,aAIX;AAJD,WAAY,aAAa;IACxB,qDAAM,CAAA;IACN,mDAAK,CAAA;IACL,6DAAU,CAAA;AACX,CAAC,EAJW,aAAa,GAAb,qBAAa,KAAb,qBAAa,QAIxB;AAEY,QAAA,cAAc,GAAG,CAC7B,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,MAAM,CAAC,GAAG,KAAK,UAAU;IAChE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC;IAC/B,CAAC,CAAC,mBAAmB,CACZ,CAAC;AAEC,QAAA,4BAA4B,GAAG;IAC3C,MAAM,EAAE,mCAAmC;IAC3C,kBAAkB,EAAE,SAAS;IAC7B,cAAc,EAAE,iCAAiC;CACjD,CAAC;AAEF;;GAEG;AACU,QAAA,uBAAuB,GAAG,KAAK,CAAC;AAE7C;;GAEG;AACU,QAAA,iBAAiB,GAAG,KAAK,CAAC;AAEvC;;GAEG;AACU,QAAA,0BAA0B,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC"}
@@ -1,7 +1,17 @@
1
- import Observable from 'zen-observable-ts';
2
- import { ProviderOptions } from '../types';
1
+ import Observable, { ZenObservable } from 'zen-observable-ts';
2
+ import { ProviderOptions } from '../../types';
3
3
  import { GRAPHQL_AUTH_MODE } from '@aws-amplify/auth';
4
- import { AbstractPubSubProvider } from './PubSubProvider';
4
+ import { AbstractPubSubProvider } from '../PubSubProvider';
5
+ import { SUBSCRIPTION_STATUS } from './constants';
6
+ export declare type ObserverQuery = {
7
+ observer: ZenObservable.SubscriptionObserver<any>;
8
+ query: string;
9
+ variables: object;
10
+ subscriptionState: SUBSCRIPTION_STATUS;
11
+ subscriptionReadyCallback?: Function;
12
+ subscriptionFailedCallback?: Function;
13
+ startAckTimeoutId?: ReturnType<typeof setTimeout>;
14
+ };
5
15
  declare type GraphqlAuthModes = keyof typeof GRAPHQL_AUTH_MODE;
6
16
  export interface AWSAppSyncRealTimeProviderOptions extends ProviderOptions {
7
17
  appSyncGraphqlEndpoint?: string;
@@ -22,6 +32,7 @@ export declare class AWSAppSyncRealTimeProvider extends AbstractPubSubProvider {
22
32
  private keepAliveTimeout;
23
33
  private subscriptionObserverMap;
24
34
  private promiseArray;
35
+ getNewWebSocket(url: any, protocol: any): WebSocket;
25
36
  getProviderName(): string;
26
37
  newClient(): Promise<any>;
27
38
  publish(_topics: string[] | string, _msg: any, _options?: any): Promise<void>;
@@ -106,111 +106,28 @@ var buffer_1 = require("buffer");
106
106
  var core_1 = require("@aws-amplify/core");
107
107
  var cache_1 = __importDefault(require("@aws-amplify/cache"));
108
108
  var auth_1 = __importDefault(require("@aws-amplify/auth"));
109
- var PubSubProvider_1 = require("./PubSubProvider");
110
- var index_1 = require("../index");
109
+ var PubSubProvider_1 = require("../PubSubProvider");
110
+ var index_1 = require("../../index");
111
+ var constants_1 = require("./constants");
111
112
  var logger = new core_1.Logger('AWSAppSyncRealTimeProvider');
112
- var AMPLIFY_SYMBOL = (typeof Symbol !== 'undefined' && typeof Symbol.for === 'function'
113
- ? Symbol.for('amplify_default')
114
- : '@@amplify_default');
115
113
  var dispatchApiEvent = function (event, data, message) {
116
- core_1.Hub.dispatch('api', { event: event, data: data, message: message }, 'PubSub', AMPLIFY_SYMBOL);
114
+ core_1.Hub.dispatch('api', { event: event, data: data, message: message }, 'PubSub', constants_1.AMPLIFY_SYMBOL);
117
115
  };
118
- var MAX_DELAY_MS = 5000;
119
- var NON_RETRYABLE_CODES = [400, 401, 403];
120
- var MESSAGE_TYPES;
121
- (function (MESSAGE_TYPES) {
122
- /**
123
- * Client -> Server message.
124
- * This message type is the first message after handshake and this will initialize AWS AppSync RealTime communication
125
- */
126
- MESSAGE_TYPES["GQL_CONNECTION_INIT"] = "connection_init";
127
- /**
128
- * Server -> Client message
129
- * This message type is in case there is an issue with AWS AppSync RealTime when establishing connection
130
- */
131
- MESSAGE_TYPES["GQL_CONNECTION_ERROR"] = "connection_error";
132
- /**
133
- * Server -> Client message.
134
- * This message type is for the ack response from AWS AppSync RealTime for GQL_CONNECTION_INIT message
135
- */
136
- MESSAGE_TYPES["GQL_CONNECTION_ACK"] = "connection_ack";
137
- /**
138
- * Client -> Server message.
139
- * This message type is for register subscriptions with AWS AppSync RealTime
140
- */
141
- MESSAGE_TYPES["GQL_START"] = "start";
142
- /**
143
- * Server -> Client message.
144
- * This message type is for the ack response from AWS AppSync RealTime for GQL_START message
145
- */
146
- MESSAGE_TYPES["GQL_START_ACK"] = "start_ack";
147
- /**
148
- * Server -> Client message.
149
- * This message type is for subscription message from AWS AppSync RealTime
150
- */
151
- MESSAGE_TYPES["GQL_DATA"] = "data";
152
- /**
153
- * Server -> Client message.
154
- * This message type helps the client to know is still receiving messages from AWS AppSync RealTime
155
- */
156
- MESSAGE_TYPES["GQL_CONNECTION_KEEP_ALIVE"] = "ka";
157
- /**
158
- * Client -> Server message.
159
- * This message type is for unregister subscriptions with AWS AppSync RealTime
160
- */
161
- MESSAGE_TYPES["GQL_STOP"] = "stop";
162
- /**
163
- * Server -> Client message.
164
- * This message type is for the ack response from AWS AppSync RealTime for GQL_STOP message
165
- */
166
- MESSAGE_TYPES["GQL_COMPLETE"] = "complete";
167
- /**
168
- * Server -> Client message.
169
- * This message type is for sending error messages from AWS AppSync RealTime to the client
170
- */
171
- MESSAGE_TYPES["GQL_ERROR"] = "error";
172
- })(MESSAGE_TYPES || (MESSAGE_TYPES = {}));
173
- var SUBSCRIPTION_STATUS;
174
- (function (SUBSCRIPTION_STATUS) {
175
- SUBSCRIPTION_STATUS[SUBSCRIPTION_STATUS["PENDING"] = 0] = "PENDING";
176
- SUBSCRIPTION_STATUS[SUBSCRIPTION_STATUS["CONNECTED"] = 1] = "CONNECTED";
177
- SUBSCRIPTION_STATUS[SUBSCRIPTION_STATUS["FAILED"] = 2] = "FAILED";
178
- })(SUBSCRIPTION_STATUS || (SUBSCRIPTION_STATUS = {}));
179
- var SOCKET_STATUS;
180
- (function (SOCKET_STATUS) {
181
- SOCKET_STATUS[SOCKET_STATUS["CLOSED"] = 0] = "CLOSED";
182
- SOCKET_STATUS[SOCKET_STATUS["READY"] = 1] = "READY";
183
- SOCKET_STATUS[SOCKET_STATUS["CONNECTING"] = 2] = "CONNECTING";
184
- })(SOCKET_STATUS || (SOCKET_STATUS = {}));
185
- var AWS_APPSYNC_REALTIME_HEADERS = {
186
- accept: 'application/json, text/javascript',
187
- 'content-encoding': 'amz-1.0',
188
- 'content-type': 'application/json; charset=UTF-8',
189
- };
190
- /**
191
- * Time in milleseconds to wait for GQL_CONNECTION_INIT message
192
- */
193
- var CONNECTION_INIT_TIMEOUT = 15000;
194
- /**
195
- * Time in milleseconds to wait for GQL_START_ACK message
196
- */
197
- var START_ACK_TIMEOUT = 15000;
198
- /**
199
- * Default Time in milleseconds to wait for GQL_CONNECTION_KEEP_ALIVE message
200
- */
201
- var DEFAULT_KEEP_ALIVE_TIMEOUT = 5 * 60 * 1000;
202
116
  var standardDomainPattern = /^https:\/\/\w{26}\.appsync\-api\.\w{2}(?:(?:\-\w{2,})+)\-\d\.amazonaws.com\/graphql$/i;
203
117
  var customDomainPath = '/realtime';
204
118
  var AWSAppSyncRealTimeProvider = /** @class */ (function (_super) {
205
119
  __extends(AWSAppSyncRealTimeProvider, _super);
206
120
  function AWSAppSyncRealTimeProvider() {
207
121
  var _this = _super !== null && _super.apply(this, arguments) || this;
208
- _this.socketStatus = SOCKET_STATUS.CLOSED;
209
- _this.keepAliveTimeout = DEFAULT_KEEP_ALIVE_TIMEOUT;
122
+ _this.socketStatus = constants_1.SOCKET_STATUS.CLOSED;
123
+ _this.keepAliveTimeout = constants_1.DEFAULT_KEEP_ALIVE_TIMEOUT;
210
124
  _this.subscriptionObserverMap = new Map();
211
125
  _this.promiseArray = [];
212
126
  return _this;
213
127
  }
128
+ AWSAppSyncRealTimeProvider.prototype.getNewWebSocket = function (url, protocol) {
129
+ return new WebSocket(url, protocol);
130
+ };
214
131
  AWSAppSyncRealTimeProvider.prototype.getProviderName = function () {
215
132
  return 'AWSAppSyncRealTimeProvider';
216
133
  };
@@ -270,7 +187,7 @@ var AWSAppSyncRealTimeProvider = /** @class */ (function (_super) {
270
187
  // subscription already unsubscribed
271
188
  return [2 /*return*/];
272
189
  }
273
- if (subscriptionState === SUBSCRIPTION_STATUS.CONNECTED) {
190
+ if (subscriptionState === constants_1.SUBSCRIPTION_STATUS.CONNECTED) {
274
191
  this._sendUnsubscriptionMessage(subscriptionId_1);
275
192
  }
276
193
  else {
@@ -310,7 +227,7 @@ var AWSAppSyncRealTimeProvider = /** @class */ (function (_super) {
310
227
  switch (_k.label) {
311
228
  case 0:
312
229
  appSyncGraphqlEndpoint = options.appSyncGraphqlEndpoint, authenticationType = options.authenticationType, query = options.query, variables = options.variables, apiKey = options.apiKey, region = options.region, _d = options.graphql_headers, graphql_headers = _d === void 0 ? function () { return ({}); } : _d, _e = options.additionalHeaders, additionalHeaders = _e === void 0 ? {} : _e;
313
- subscriptionState = SUBSCRIPTION_STATUS.PENDING;
230
+ subscriptionState = constants_1.SUBSCRIPTION_STATUS.PENDING;
314
231
  data = {
315
232
  query: query,
316
233
  variables: variables,
@@ -347,7 +264,7 @@ var AWSAppSyncRealTimeProvider = /** @class */ (function (_super) {
347
264
  authorization: __assign({}, headerObj),
348
265
  },
349
266
  },
350
- type: MESSAGE_TYPES.GQL_START,
267
+ type: constants_1.MESSAGE_TYPES.GQL_START,
351
268
  };
352
269
  stringToAWSRealTime = JSON.stringify(subscriptionMessage);
353
270
  _k.label = 3;
@@ -391,7 +308,7 @@ var AWSAppSyncRealTimeProvider = /** @class */ (function (_super) {
391
308
  subscriptionFailedCallback: subscriptionFailedCallback,
392
309
  startAckTimeoutId: setTimeout(function () {
393
310
  _this._timeoutStartSubscriptionAck.call(_this, subscriptionId);
394
- }, START_ACK_TIMEOUT),
311
+ }, constants_1.START_ACK_TIMEOUT),
395
312
  });
396
313
  if (this.awsRealTimeSocket) {
397
314
  this.awsRealTimeSocket.send(stringToAWSRealTime);
@@ -411,7 +328,7 @@ var AWSAppSyncRealTimeProvider = /** @class */ (function (_super) {
411
328
  if (subscriptionObserver) {
412
329
  subscriptionState = subscriptionObserver.subscriptionState;
413
330
  // This in case unsubscribe is invoked before sending start subscription message
414
- if (subscriptionState === SUBSCRIPTION_STATUS.PENDING) {
331
+ if (subscriptionState === constants_1.SUBSCRIPTION_STATUS.PENDING) {
415
332
  return [2 /*return*/, new Promise(function (res, rej) {
416
333
  var observer = subscriptionObserver.observer, subscriptionState = subscriptionObserver.subscriptionState, variables = subscriptionObserver.variables, query = subscriptionObserver.query;
417
334
  _this.subscriptionObserverMap.set(subscriptionId, {
@@ -433,11 +350,11 @@ var AWSAppSyncRealTimeProvider = /** @class */ (function (_super) {
433
350
  try {
434
351
  if (this.awsRealTimeSocket &&
435
352
  this.awsRealTimeSocket.readyState === WebSocket.OPEN &&
436
- this.socketStatus === SOCKET_STATUS.READY) {
353
+ this.socketStatus === constants_1.SOCKET_STATUS.READY) {
437
354
  // Preparing unsubscribe message to stop receiving messages for that subscription
438
355
  var unsubscribeMessage = {
439
356
  id: subscriptionId,
440
- type: MESSAGE_TYPES.GQL_STOP,
357
+ type: constants_1.MESSAGE_TYPES.GQL_STOP,
441
358
  };
442
359
  var stringToAWSRealTime = JSON.stringify(unsubscribeMessage);
443
360
  this.awsRealTimeSocket.send(stringToAWSRealTime);
@@ -459,7 +376,7 @@ var AWSAppSyncRealTimeProvider = /** @class */ (function (_super) {
459
376
  return;
460
377
  }
461
378
  if (!this.awsRealTimeSocket) {
462
- this.socketStatus = SOCKET_STATUS.CLOSED;
379
+ this.socketStatus = constants_1.SOCKET_STATUS.CLOSED;
463
380
  return;
464
381
  }
465
382
  if (this.awsRealTimeSocket.bufferedAmount > 0) {
@@ -476,7 +393,7 @@ var AWSAppSyncRealTimeProvider = /** @class */ (function (_super) {
476
393
  tempSocket.onerror = null;
477
394
  tempSocket.close(1000);
478
395
  this.awsRealTimeSocket = undefined;
479
- this.socketStatus = SOCKET_STATUS.CLOSED;
396
+ this.socketStatus = constants_1.SOCKET_STATUS.CLOSED;
480
397
  }
481
398
  };
482
399
  AWSAppSyncRealTimeProvider.prototype._handleIncomingSubscriptionMessage = function (message) {
@@ -484,7 +401,7 @@ var AWSAppSyncRealTimeProvider = /** @class */ (function (_super) {
484
401
  var _a = JSON.parse(message.data), _b = _a.id, id = _b === void 0 ? '' : _b, payload = _a.payload, type = _a.type;
485
402
  var _c = this.subscriptionObserverMap.get(id) || {}, _d = _c.observer, observer = _d === void 0 ? null : _d, _e = _c.query, query = _e === void 0 ? '' : _e, _f = _c.variables, variables = _f === void 0 ? {} : _f, startAckTimeoutId = _c.startAckTimeoutId, subscriptionReadyCallback = _c.subscriptionReadyCallback, subscriptionFailedCallback = _c.subscriptionFailedCallback;
486
403
  logger.debug({ id: id, observer: observer, query: query, variables: variables });
487
- if (type === MESSAGE_TYPES.GQL_DATA && payload && payload.data) {
404
+ if (type === constants_1.MESSAGE_TYPES.GQL_DATA && payload && payload.data) {
488
405
  if (observer) {
489
406
  observer.next(payload);
490
407
  }
@@ -493,7 +410,7 @@ var AWSAppSyncRealTimeProvider = /** @class */ (function (_super) {
493
410
  }
494
411
  return;
495
412
  }
496
- if (type === MESSAGE_TYPES.GQL_START_ACK) {
413
+ if (type === constants_1.MESSAGE_TYPES.GQL_START_ACK) {
497
414
  logger.debug("subscription ready for " + JSON.stringify({ query: query, variables: variables }));
498
415
  if (typeof subscriptionReadyCallback === 'function') {
499
416
  subscriptionReadyCallback();
@@ -501,7 +418,7 @@ var AWSAppSyncRealTimeProvider = /** @class */ (function (_super) {
501
418
  if (startAckTimeoutId)
502
419
  clearTimeout(startAckTimeoutId);
503
420
  dispatchApiEvent(index_1.CONTROL_MSG.SUBSCRIPTION_ACK, { query: query, variables: variables }, 'Connection established for subscription');
504
- var subscriptionState = SUBSCRIPTION_STATUS.CONNECTED;
421
+ var subscriptionState = constants_1.SUBSCRIPTION_STATUS.CONNECTED;
505
422
  if (observer) {
506
423
  this.subscriptionObserverMap.set(id, {
507
424
  observer: observer,
@@ -516,14 +433,14 @@ var AWSAppSyncRealTimeProvider = /** @class */ (function (_super) {
516
433
  // TODO: emit event on hub but it requires to store the id first
517
434
  return;
518
435
  }
519
- if (type === MESSAGE_TYPES.GQL_CONNECTION_KEEP_ALIVE) {
436
+ if (type === constants_1.MESSAGE_TYPES.GQL_CONNECTION_KEEP_ALIVE) {
520
437
  if (this.keepAliveTimeoutId)
521
438
  clearTimeout(this.keepAliveTimeoutId);
522
439
  this.keepAliveTimeoutId = setTimeout(this._errorDisconnect.bind(this, index_1.CONTROL_MSG.TIMEOUT_DISCONNECT), this.keepAliveTimeout);
523
440
  return;
524
441
  }
525
- if (type === MESSAGE_TYPES.GQL_ERROR) {
526
- var subscriptionState = SUBSCRIPTION_STATUS.FAILED;
442
+ if (type === constants_1.MESSAGE_TYPES.GQL_ERROR) {
443
+ var subscriptionState = constants_1.SUBSCRIPTION_STATUS.FAILED;
527
444
  if (observer) {
528
445
  this.subscriptionObserverMap.set(id, {
529
446
  observer: observer,
@@ -562,7 +479,7 @@ var AWSAppSyncRealTimeProvider = /** @class */ (function (_super) {
562
479
  if (this.awsRealTimeSocket) {
563
480
  this.awsRealTimeSocket.close();
564
481
  }
565
- this.socketStatus = SOCKET_STATUS.CLOSED;
482
+ this.socketStatus = constants_1.SOCKET_STATUS.CLOSED;
566
483
  };
567
484
  AWSAppSyncRealTimeProvider.prototype._timeoutStartSubscriptionAck = function (subscriptionId) {
568
485
  var subscriptionObserver = this.subscriptionObserverMap.get(subscriptionId);
@@ -575,7 +492,7 @@ var AWSAppSyncRealTimeProvider = /** @class */ (function (_super) {
575
492
  observer: observer,
576
493
  query: query,
577
494
  variables: variables,
578
- subscriptionState: SUBSCRIPTION_STATUS.FAILED,
495
+ subscriptionState: constants_1.SUBSCRIPTION_STATUS.FAILED,
579
496
  });
580
497
  if (observer && !observer.closed) {
581
498
  observer.error({
@@ -595,7 +512,7 @@ var AWSAppSyncRealTimeProvider = /** @class */ (function (_super) {
595
512
  AWSAppSyncRealTimeProvider.prototype._initializeWebSocketConnection = function (_a) {
596
513
  var _this = this;
597
514
  var appSyncGraphqlEndpoint = _a.appSyncGraphqlEndpoint, authenticationType = _a.authenticationType, apiKey = _a.apiKey, region = _a.region, additionalHeaders = _a.additionalHeaders;
598
- if (this.socketStatus === SOCKET_STATUS.READY) {
515
+ if (this.socketStatus === constants_1.SOCKET_STATUS.READY) {
599
516
  return;
600
517
  }
601
518
  return new Promise(function (res, rej) { return __awaiter(_this, void 0, void 0, function () {
@@ -604,11 +521,11 @@ var AWSAppSyncRealTimeProvider = /** @class */ (function (_super) {
604
521
  switch (_c.label) {
605
522
  case 0:
606
523
  this.promiseArray.push({ res: res, rej: rej });
607
- if (!(this.socketStatus === SOCKET_STATUS.CLOSED)) return [3 /*break*/, 5];
524
+ if (!(this.socketStatus === constants_1.SOCKET_STATUS.CLOSED)) return [3 /*break*/, 5];
608
525
  _c.label = 1;
609
526
  case 1:
610
527
  _c.trys.push([1, 4, , 5]);
611
- this.socketStatus = SOCKET_STATUS.CONNECTING;
528
+ this.socketStatus = constants_1.SOCKET_STATUS.CONNECTING;
612
529
  payloadString = '{}';
613
530
  _b = (_a = JSON).stringify;
614
531
  return [4 /*yield*/, this._awsRealTimeHeaderBasedAuth({
@@ -647,7 +564,7 @@ var AWSAppSyncRealTimeProvider = /** @class */ (function (_super) {
647
564
  logger.debug('Notifying connection successful');
648
565
  res();
649
566
  });
650
- this.socketStatus = SOCKET_STATUS.READY;
567
+ this.socketStatus = constants_1.SOCKET_STATUS.READY;
651
568
  this.promiseArray = [];
652
569
  return [3 /*break*/, 5];
653
570
  case 4:
@@ -662,7 +579,7 @@ var AWSAppSyncRealTimeProvider = /** @class */ (function (_super) {
662
579
  this.awsRealTimeSocket.close(3001);
663
580
  }
664
581
  this.awsRealTimeSocket = undefined;
665
- this.socketStatus = SOCKET_STATUS.CLOSED;
582
+ this.socketStatus = constants_1.SOCKET_STATUS.CLOSED;
666
583
  return [3 /*break*/, 5];
667
584
  case 5: return [2 /*return*/];
668
585
  }
@@ -675,7 +592,7 @@ var AWSAppSyncRealTimeProvider = /** @class */ (function (_super) {
675
592
  switch (_a.label) {
676
593
  case 0:
677
594
  logger.debug("Initializaling retryable Handshake");
678
- return [4 /*yield*/, core_1.jitteredExponentialRetry(this._initializeHandshake.bind(this), [awsRealTimeUrl], MAX_DELAY_MS)];
595
+ return [4 /*yield*/, core_1.jitteredExponentialRetry(this._initializeHandshake.bind(this), [awsRealTimeUrl], constants_1.MAX_DELAY_MS)];
679
596
  case 1:
680
597
  _a.sent();
681
598
  return [2 /*return*/];
@@ -696,7 +613,7 @@ var AWSAppSyncRealTimeProvider = /** @class */ (function (_super) {
696
613
  _b.trys.push([1, 4, , 5]);
697
614
  return [4 /*yield*/, (function () {
698
615
  return new Promise(function (res, rej) {
699
- var newSocket = new WebSocket(awsRealTimeUrl, 'graphql-ws');
616
+ var newSocket = _this.getNewWebSocket(awsRealTimeUrl, 'graphql-ws');
700
617
  newSocket.onerror = function () {
701
618
  logger.debug("WebSocket connection error");
702
619
  };
@@ -726,8 +643,8 @@ var AWSAppSyncRealTimeProvider = /** @class */ (function (_super) {
726
643
  _this.awsRealTimeSocket.onmessage = function (message) {
727
644
  logger.debug("subscription message from AWS AppSyncRealTime: " + message.data + " ");
728
645
  var data = JSON.parse(message.data);
729
- var type = data.type, _a = data.payload, _b = (_a === void 0 ? {} : _a).connectionTimeoutMs, connectionTimeoutMs = _b === void 0 ? DEFAULT_KEEP_ALIVE_TIMEOUT : _b;
730
- if (type === MESSAGE_TYPES.GQL_CONNECTION_ACK) {
646
+ var type = data.type, _a = data.payload, _b = (_a === void 0 ? {} : _a).connectionTimeoutMs, connectionTimeoutMs = _b === void 0 ? constants_1.DEFAULT_KEEP_ALIVE_TIMEOUT : _b;
647
+ if (type === constants_1.MESSAGE_TYPES.GQL_CONNECTION_ACK) {
731
648
  ackOk_1 = true;
732
649
  if (_this.awsRealTimeSocket) {
733
650
  _this.keepAliveTimeout = connectionTimeoutMs;
@@ -745,20 +662,20 @@ var AWSAppSyncRealTimeProvider = /** @class */ (function (_super) {
745
662
  res('Cool, connected to AWS AppSyncRealTime');
746
663
  return;
747
664
  }
748
- if (type === MESSAGE_TYPES.GQL_CONNECTION_ERROR) {
665
+ if (type === constants_1.MESSAGE_TYPES.GQL_CONNECTION_ERROR) {
749
666
  var _c = data.payload, _d = (_c === void 0 ? {} : _c).errors, _e = __read(_d === void 0 ? [] : _d, 1), _f = _e[0], _g = _f === void 0 ? {} : _f, _h = _g.errorType, errorType = _h === void 0 ? '' : _h, _j = _g.errorCode, errorCode = _j === void 0 ? 0 : _j;
750
667
  rej({ errorType: errorType, errorCode: errorCode });
751
668
  }
752
669
  };
753
670
  var gqlInit = {
754
- type: MESSAGE_TYPES.GQL_CONNECTION_INIT,
671
+ type: constants_1.MESSAGE_TYPES.GQL_CONNECTION_INIT,
755
672
  };
756
673
  _this.awsRealTimeSocket.send(JSON.stringify(gqlInit));
757
- setTimeout(checkAckOk.bind(_this, ackOk_1), CONNECTION_INIT_TIMEOUT);
674
+ setTimeout(checkAckOk.bind(_this, ackOk_1), constants_1.CONNECTION_INIT_TIMEOUT);
758
675
  }
759
676
  function checkAckOk(ackOk) {
760
677
  if (!ackOk) {
761
- rej(new Error("Connection timeout: ack from AWSRealTime was not received on " + CONNECTION_INIT_TIMEOUT + " ms"));
678
+ rej(new Error("Connection timeout: ack from AWSRealTime was not received on " + constants_1.CONNECTION_INIT_TIMEOUT + " ms"));
762
679
  }
763
680
  }
764
681
  });
@@ -770,7 +687,7 @@ var AWSAppSyncRealTimeProvider = /** @class */ (function (_super) {
770
687
  case 4:
771
688
  err_4 = _b.sent();
772
689
  _a = err_4, errorType = _a.errorType, errorCode = _a.errorCode;
773
- if (NON_RETRYABLE_CODES.includes(errorCode)) {
690
+ if (constants_1.NON_RETRYABLE_CODES.includes(errorCode)) {
774
691
  throw new core_1.NonRetryableError(errorType);
775
692
  }
776
693
  else if (errorType) {
@@ -805,6 +722,7 @@ var AWSAppSyncRealTimeProvider = /** @class */ (function (_super) {
805
722
  case 1:
806
723
  handler = headerHandler[authenticationType];
807
724
  host = url.parse(appSyncGraphqlEndpoint !== null && appSyncGraphqlEndpoint !== void 0 ? appSyncGraphqlEndpoint : '').host;
725
+ logger.debug("Authenticating with " + authenticationType);
808
726
  return [4 /*yield*/, handler({
809
727
  payload: payload,
810
728
  canonicalUri: canonicalUri,
@@ -915,7 +833,7 @@ var AWSAppSyncRealTimeProvider = /** @class */ (function (_super) {
915
833
  url: "" + appSyncGraphqlEndpoint + canonicalUri,
916
834
  data: payload,
917
835
  method: 'POST',
918
- headers: __assign({}, AWS_APPSYNC_REALTIME_HEADERS),
836
+ headers: __assign({}, constants_1.AWS_APPSYNC_REALTIME_HEADERS),
919
837
  };
920
838
  signed_params = core_1.Signer.sign(request, creds, endpointInfo);
921
839
  return [2 /*return*/, signed_params.headers];
@@ -953,4 +871,4 @@ var AWSAppSyncRealTimeProvider = /** @class */ (function (_super) {
953
871
  return AWSAppSyncRealTimeProvider;
954
872
  }(PubSubProvider_1.AbstractPubSubProvider));
955
873
  exports.AWSAppSyncRealTimeProvider = AWSAppSyncRealTimeProvider;
956
- //# sourceMappingURL=AWSAppSyncRealTimeProvider.js.map
874
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Providers/AWSAppSyncRealTimeProvider/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;;;GAWG;AACH,wEAA8D;AAC9D,mCAAuC;AACvC,uCAA2B;AAC3B,6BAAkC;AAClC,iCAAgC;AAEhC,0CAU2B;AAC3B,6DAAuC;AACvC,2DAA4D;AAC5D,oDAA2D;AAC3D,qCAA0C;AAC1C,yCAWqB;AAErB,IAAM,MAAM,GAAG,IAAI,aAAM,CAAC,4BAA4B,CAAC,CAAC;AAExD,IAAM,gBAAgB,GAAG,UAAC,KAAa,EAAE,IAAS,EAAE,OAAe;IAClE,UAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,KAAK,OAAA,EAAE,IAAI,MAAA,EAAE,OAAO,SAAA,EAAE,EAAE,QAAQ,EAAE,0BAAc,CAAC,CAAC;AACzE,CAAC,CAAC;AAYF,IAAM,qBAAqB,GAC1B,uFAAuF,CAAC;AAEzF,IAAM,gBAAgB,GAAG,WAAW,CAAC;AAqBrC;IAAgD,8CAAsB;IAAtE;QAAA,qEAgyBC;QA9xBQ,kBAAY,GAAkB,yBAAa,CAAC,MAAM,CAAC;QAEnD,sBAAgB,GAAG,sCAA0B,CAAC;QAC9C,6BAAuB,GAA+B,IAAI,GAAG,EAAE,CAAC;QAChE,kBAAY,GAA4C,EAAE,CAAC;;IA0xBpE,CAAC;IAxxBA,oDAAe,GAAf,UAAgB,GAAG,EAAE,QAAQ;QAC5B,OAAO,IAAI,SAAS,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IACrC,CAAC;IAED,oDAAe,GAAf;QACC,OAAO,4BAA4B,CAAC;IACrC,CAAC;IAED,8CAAS,GAAT;QACC,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;IAClC,CAAC;IAEY,4CAAO,GAApB,UAAqB,OAA0B,EAAE,IAAS,EAAE,QAAc;;;gBACzE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;;;KAC3C;IAED,+CAA+C;IACvC,mDAAc,GAAtB,UAAuB,GAAW;QACjC,OAAO,GAAG,CAAC,KAAK,CAAC,qBAAqB,CAAC,KAAK,IAAI,CAAC;IAClD,CAAC;IAED,8CAAS,GAAT,UACC,OAA0B,EAC1B,OAA2C;QAF5C,iBAgEC;QA5DA,IAAM,sBAAsB,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,sBAAsB,CAAC;QAE/D,OAAO,IAAI,2BAAU,CAAC,UAAA,QAAQ;YAC7B,IAAI,CAAC,OAAO,IAAI,CAAC,sBAAsB,EAAE;gBACxC,QAAQ,CAAC,KAAK,CAAC;oBACd,MAAM,EAAE;qCAEH,IAAI,sBAAY,CAClB,mDAAmD,CACnD;qBAEF;iBACD,CAAC,CAAC;gBACH,QAAQ,CAAC,QAAQ,EAAE,CAAC;aACpB;iBAAM;gBACN,IAAM,gBAAc,GAAG,SAAI,EAAE,CAAC;gBAC9B,KAAI,CAAC,wCAAwC,CAAC;oBAC7C,OAAO,SAAA;oBACP,QAAQ,UAAA;oBACR,cAAc,kBAAA;iBACd,CAAC,CAAC,KAAK,CAAM,UAAA,GAAG;oBAChB,QAAQ,CAAC,KAAK,CAAC;wBACd,MAAM,EAAE;yCAEH,IAAI,sBAAY,CACf,mBAAW,CAAC,gCAAgC,UAAK,GAAK,CACzD;yBAEF;qBACD,CAAC,CAAC;oBACH,QAAQ,CAAC,QAAQ,EAAE,CAAC;gBACrB,CAAC,CAAC,CAAC;gBAEH,OAAO;;;;;;gCAGL,4EAA4E;gCAC5E,qBAAM,IAAI,CAAC,iCAAiC,CAAC,gBAAc,CAAC,EAAA;;gCAD5D,4EAA4E;gCAC5E,SAA4D,CAAC;gCAErD,iBAAiB,GACxB,CAAA,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,gBAAc,CAAC,IAAI,EAAE,CAAA,kBAD9B,CAC+B;gCAExD,IAAI,CAAC,iBAAiB,EAAE;oCACvB,oCAAoC;oCACpC,sBAAO;iCACP;gCAED,IAAI,iBAAiB,KAAK,+BAAmB,CAAC,SAAS,EAAE;oCACxD,IAAI,CAAC,0BAA0B,CAAC,gBAAc,CAAC,CAAC;iCAChD;qCAAM;oCACN,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;iCAChD;;;;gCAED,MAAM,CAAC,KAAK,CAAC,+BAA6B,KAAK,CAAC,CAAC;;;gCAEjD,IAAI,CAAC,2BAA2B,CAAC,gBAAc,CAAC,CAAC;;;;;qBAElD,CAAC;aACF;QACF,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,sBAAc,oDAAY;aAA1B;YACC,OAAO,CAAC,IAAI,CAAC,OAAO;iBAClB,4DAA4D,CAAC;QAChE,CAAC;;;OAAA;IAEa,6EAAwC,GAAtD,UAAuD,EAQtD;YAPA,oBAAO,EACP,sBAAQ,EACR,kCAAc;;;;;;;;;wBAOb,sBAAsB,GAQnB,OAAO,uBARY,EACtB,kBAAkB,GAOf,OAAO,mBAPQ,EAClB,KAAK,GAMF,OAAO,MANL,EACL,SAAS,GAKN,OAAO,UALD,EACT,MAAM,GAIH,OAAO,OAJJ,EACN,MAAM,GAGH,OAAO,OAHJ,EACN,KAEG,OAAO,gBAFkB,EAA5B,eAAe,mBAAG,cAAM,OAAA,CAAC,EAAE,CAAC,EAAJ,CAAI,KAAA,EAC5B,KACG,OAAO,kBADY,EAAtB,iBAAiB,mBAAG,EAAE,KAAA,CACX;wBAEN,iBAAiB,GAAwB,+BAAmB,CAAC,OAAO,CAAC;wBACrE,IAAI,GAAG;4BACZ,KAAK,OAAA;4BACL,SAAS,WAAA;yBACT,CAAC;wBACF,gFAAgF;wBAChF,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,cAAc,EAAE;4BAChD,QAAQ,UAAA;4BACR,KAAK,EAAE,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,EAAE;4BAClB,SAAS,EAAE,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI,EAAE;4BAC1B,iBAAiB,mBAAA;4BACjB,iBAAiB,EAAE,SAAS;yBAC5B,CAAC,CAAC;wBAIG,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;;wBAEnC,qBAAM,IAAI,CAAC,2BAA2B,CAAC;gCAC1C,MAAM,QAAA;gCACN,sBAAsB,wBAAA;gCACtB,kBAAkB,oBAAA;gCAClB,OAAO,EAAE,UAAU;gCACnB,YAAY,EAAE,EAAE;gCAChB,MAAM,QAAA;gCACN,iBAAiB,mBAAA;6BACjB,CAAC,EAAA;;gEARC,CAAC,SAQF,CAAC;wBACC,qBAAM,eAAe,EAAE,EAAA;;wBAVtB,SAAS,qFAUX,CAAC,SAAuB,CAAC,KACzB,iBAAiB,iBACnB,wBAAiB,IAAG,gBAAS,CAAC,SAAS,OACxC;wBAEK,mBAAmB,GAAG;4BAC3B,EAAE,EAAE,cAAc;4BAClB,OAAO,EAAE;gCACR,IAAI,EAAE,UAAU;gCAChB,UAAU,EAAE;oCACX,aAAa,eACT,SAAS,CACZ;iCACD;6BACD;4BACD,IAAI,EAAE,yBAAa,CAAC,SAAS;yBAC7B,CAAC;wBAEI,mBAAmB,GAAG,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;;;;wBAG/D,qBAAM,IAAI,CAAC,8BAA8B,CAAC;gCACzC,MAAM,QAAA;gCACN,sBAAsB,wBAAA;gCACtB,kBAAkB,oBAAA;gCAClB,MAAM,QAAA;gCACN,iBAAiB,mBAAA;6BACjB,CAAC,EAAA;;wBANF,SAME,CAAC;;;;wBAEH,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,OAAA,EAAE,CAAC,CAAC;wBAChB,OAAO,SAAG,KAAG,CAAC,SAAS,CAAC,mCAAI,EAAE,CAAC;wBACrC,QAAQ,CAAC,KAAK,CAAC;4BACd,MAAM,EAAE;6CAEH,IAAI,sBAAY,CAAI,mBAAW,CAAC,iBAAiB,UAAK,OAAS,CAAC;6BAEpE;yBACD,CAAC,CAAC;wBACH,QAAQ,CAAC,QAAQ,EAAE,CAAC;wBACZ,+BACP,CAAA,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,CAAA,2BADrB,CACsB;wBAExD,mCAAmC;wBACnC,IAAI,OAAO,4BAA0B,KAAK,UAAU,EAAE;4BACrD,4BAA0B,EAAE,CAAC;yBAC7B;wBACD,sBAAO;;wBAOF,WACL,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,cAAc,CAAC,mCAAI,EAAE,EAD/C,0BAA0B,gCAAA,EAAE,yBAAyB,+BAAA,CACL;wBAExD,oFAAoF;wBACpF,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,cAAc,EAAE;4BAChD,QAAQ,UAAA;4BACR,iBAAiB,mBAAA;4BACjB,KAAK,EAAE,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,EAAE;4BAClB,SAAS,EAAE,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI,EAAE;4BAC1B,yBAAyB,2BAAA;4BACzB,0BAA0B,4BAAA;4BAC1B,iBAAiB,EAAE,UAAU,CAAC;gCAC7B,KAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,KAAI,EAAE,cAAc,CAAC,CAAC;4BAC9D,CAAC,EAAE,6BAAiB,CAAC;yBACrB,CAAC,CAAC;wBACH,IAAI,IAAI,CAAC,iBAAiB,EAAE;4BAC3B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;yBACjD;;;;;KACD;IAED,4EAA4E;IAC9D,sEAAiC,GAA/C,UAAgD,cAAsB;;;;;gBAC/D,oBAAoB,GACzB,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;gBAClD,IAAI,oBAAoB,EAAE;oBACjB,iBAAiB,GAAK,oBAAoB,kBAAzB,CAA0B;oBACnD,gFAAgF;oBAChF,IAAI,iBAAiB,KAAK,+BAAmB,CAAC,OAAO,EAAE;wBACtD,sBAAO,IAAI,OAAO,CAAC,UAAC,GAAG,EAAE,GAAG;gCACnB,IAAA,wCAAQ,EAAE,0DAAiB,EAAE,0CAAS,EAAE,kCAAK,CAC/B;gCACtB,KAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,cAAc,EAAE;oCAChD,QAAQ,UAAA;oCACR,iBAAiB,mBAAA;oCACjB,SAAS,WAAA;oCACT,KAAK,OAAA;oCACL,yBAAyB,EAAE,GAAG;oCAC9B,0BAA0B,EAAE,GAAG;iCAC/B,CAAC,CAAC;4BACJ,CAAC,CAAC,EAAC;qBACH;iBACD;;;;KACD;IAEO,+DAA0B,GAAlC,UAAmC,cAAsB;QACxD,IAAI;YACH,IACC,IAAI,CAAC,iBAAiB;gBACtB,IAAI,CAAC,iBAAiB,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI;gBACpD,IAAI,CAAC,YAAY,KAAK,yBAAa,CAAC,KAAK,EACxC;gBACD,iFAAiF;gBACjF,IAAM,kBAAkB,GAAG;oBAC1B,EAAE,EAAE,cAAc;oBAClB,IAAI,EAAE,yBAAa,CAAC,QAAQ;iBAC5B,CAAC;gBACF,IAAM,mBAAmB,GAAG,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;gBAC/D,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;aACjD;SACD;QAAC,OAAO,GAAG,EAAE;YACb,kGAAkG;YAClG,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,KAAA,EAAE,CAAC,CAAC;SACtB;IACF,CAAC;IAEO,gEAA2B,GAAnC,UAAoC,cAAsB;QACzD,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QAEpD,gGAAgG;QAChG,UAAU,CAAC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;IAC1D,CAAC;IAEO,2DAAsB,GAA9B;QACC,IAAI,IAAI,CAAC,uBAAuB,CAAC,IAAI,GAAG,CAAC,EAAE;YAC1C,wCAAwC;YACxC,OAAO;SACP;QAED,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;YAC5B,IAAI,CAAC,YAAY,GAAG,yBAAa,CAAC,MAAM,CAAC;YACzC,OAAO;SACP;QACD,IAAI,IAAI,CAAC,iBAAiB,CAAC,cAAc,GAAG,CAAC,EAAE;YAC9C,8BAA8B;YAC9B,UAAU,CAAC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;SACzD;aAAM;YACN,MAAM,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;YACrC,IAAI,IAAI,CAAC,kBAAkB;gBAAE,YAAY,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YACnE,IAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC;YAC1C,kEAAkE;YAClE,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC;YAC1B,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC;YAC1B,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACvB,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC;YACnC,IAAI,CAAC,YAAY,GAAG,yBAAa,CAAC,MAAM,CAAC;SACzC;IACF,CAAC;IAEO,uEAAkC,GAA1C,UAA2C,OAAqB;QAC/D,MAAM,CAAC,KAAK,CACX,qDAAmD,OAAO,CAAC,IAAM,CACjE,CAAC;QACI,IAAA,6BAAqD,EAAnD,UAAO,EAAP,4BAAO,EAAE,oBAAO,EAAE,cAAiC,CAAC;QACtD,IAAA,+CAOwC,EAN7C,gBAAe,EAAf,oCAAe,EACf,aAAU,EAAV,+BAAU,EACV,iBAAc,EAAd,mCAAc,EACd,wCAAiB,EACjB,wDAAyB,EACzB,0DAC6C,CAAC;QAE/C,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,IAAA,EAAE,QAAQ,UAAA,EAAE,KAAK,OAAA,EAAE,SAAS,WAAA,EAAE,CAAC,CAAC;QAEjD,IAAI,IAAI,KAAK,yBAAa,CAAC,QAAQ,IAAI,OAAO,IAAI,OAAO,CAAC,IAAI,EAAE;YAC/D,IAAI,QAAQ,EAAE;gBACb,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;aACvB;iBAAM;gBACN,MAAM,CAAC,KAAK,CAAC,gCAA8B,EAAI,CAAC,CAAC;aACjD;YACD,OAAO;SACP;QAED,IAAI,IAAI,KAAK,yBAAa,CAAC,aAAa,EAAE;YACzC,MAAM,CAAC,KAAK,CACX,4BAA0B,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,OAAA,EAAE,SAAS,WAAA,EAAE,CAAG,CAChE,CAAC;YACF,IAAI,OAAO,yBAAyB,KAAK,UAAU,EAAE;gBACpD,yBAAyB,EAAE,CAAC;aAC5B;YACD,IAAI,iBAAiB;gBAAE,YAAY,CAAC,iBAAiB,CAAC,CAAC;YACvD,gBAAgB,CACf,mBAAW,CAAC,gBAAgB,EAC5B,EAAE,KAAK,OAAA,EAAE,SAAS,WAAA,EAAE,EACpB,yCAAyC,CACzC,CAAC;YACF,IAAM,iBAAiB,GAAG,+BAAmB,CAAC,SAAS,CAAC;YACxD,IAAI,QAAQ,EAAE;gBACb,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,EAAE,EAAE;oBACpC,QAAQ,UAAA;oBACR,KAAK,OAAA;oBACL,SAAS,WAAA;oBACT,iBAAiB,EAAE,SAAS;oBAC5B,iBAAiB,mBAAA;oBACjB,yBAAyB,2BAAA;oBACzB,0BAA0B,4BAAA;iBAC1B,CAAC,CAAC;aACH;YAED,gEAAgE;YAChE,OAAO;SACP;QAED,IAAI,IAAI,KAAK,yBAAa,CAAC,yBAAyB,EAAE;YACrD,IAAI,IAAI,CAAC,kBAAkB;gBAAE,YAAY,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YACnE,IAAI,CAAC,kBAAkB,GAAG,UAAU,CACnC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,mBAAW,CAAC,kBAAkB,CAAC,EAChE,IAAI,CAAC,gBAAgB,CACrB,CAAC;YACF,OAAO;SACP;QAED,IAAI,IAAI,KAAK,yBAAa,CAAC,SAAS,EAAE;YACrC,IAAM,iBAAiB,GAAG,+BAAmB,CAAC,MAAM,CAAC;YACrD,IAAI,QAAQ,EAAE;gBACb,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,EAAE,EAAE;oBACpC,QAAQ,UAAA;oBACR,KAAK,OAAA;oBACL,SAAS,WAAA;oBACT,iBAAiB,mBAAA;oBACjB,yBAAyB,2BAAA;oBACzB,0BAA0B,4BAAA;oBAC1B,iBAAiB,mBAAA;iBACjB,CAAC,CAAC;gBAEH,QAAQ,CAAC,KAAK,CAAC;oBACd,MAAM,EAAE;qCAEH,IAAI,sBAAY,CACf,mBAAW,CAAC,iBAAiB,UAAK,IAAI,CAAC,SAAS,CAAC,OAAO,CAAG,CAC9D;qBAEF;iBACD,CAAC,CAAC;gBACH,IAAI,iBAAiB;oBAAE,YAAY,CAAC,iBAAiB,CAAC,CAAC;gBAEvD,QAAQ,CAAC,QAAQ,EAAE,CAAC;gBACpB,IAAI,OAAO,0BAA0B,KAAK,UAAU,EAAE;oBACrD,0BAA0B,EAAE,CAAC;iBAC7B;aACD;SACD;IACF,CAAC;IAEO,qDAAgB,GAAxB,UAAyB,GAAW;QACnC,MAAM,CAAC,KAAK,CAAC,uBAAqB,GAAK,CAAC,CAAC;QACzC,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,UAAC,EAAY;gBAAV,sBAAQ;YAC/C,IAAI,QAAQ,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;gBACjC,QAAQ,CAAC,KAAK,CAAC;oBACd,MAAM,EAAE,cAAM,IAAI,sBAAY,CAAC,GAAG,CAAC,EAAG;iBACtC,CAAC,CAAC;aACH;QACF,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,CAAC;QACrC,IAAI,IAAI,CAAC,iBAAiB,EAAE;YAC3B,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;SAC/B;QAED,IAAI,CAAC,YAAY,GAAG,yBAAa,CAAC,MAAM,CAAC;IAC1C,CAAC;IAEO,iEAA4B,GAApC,UAAqC,cAAsB;QAC1D,IAAM,oBAAoB,GACzB,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAClD,IAAI,oBAAoB,EAAE;YACjB,IAAA,wCAAQ,EAAE,kCAAK,EAAE,0CAAS,CAA0B;YAC5D,IAAI,CAAC,QAAQ,EAAE;gBACd,OAAO;aACP;YACD,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,cAAc,EAAE;gBAChD,QAAQ,UAAA;gBACR,KAAK,OAAA;gBACL,SAAS,WAAA;gBACT,iBAAiB,EAAE,+BAAmB,CAAC,MAAM;aAC7C,CAAC,CAAC;YAEH,IAAI,QAAQ,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;gBACjC,QAAQ,CAAC,KAAK,CAAC;oBACd,MAAM,EAAE;qCAEH,IAAI,sBAAY,CAClB,0BAAwB,IAAI,CAAC,SAAS,CAAC;4BACtC,KAAK,OAAA;4BACL,SAAS,WAAA;yBACT,CAAG,CACJ;qBAEF;iBACD,CAAC,CAAC;gBACH,yCAAyC;gBACzC,QAAQ,CAAC,QAAQ,EAAE,CAAC;aACpB;YACD,MAAM,CAAC,KAAK,CACX,0BAA0B,EAC1B,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,OAAA,EAAE,SAAS,WAAA,EAAE,CAAC,CACpC,CAAC;SACF;IACF,CAAC;IAEO,mEAA8B,GAAtC,UAAuC,EAMH;QANpC,iBA0EC;YAzEA,kDAAsB,EACtB,0CAAkB,EAClB,kBAAM,EACN,kBAAM,EACN,wCAAiB;QAEjB,IAAI,IAAI,CAAC,YAAY,KAAK,yBAAa,CAAC,KAAK,EAAE;YAC9C,OAAO;SACP;QACD,OAAO,IAAI,OAAO,CAAC,UAAO,GAAG,EAAE,GAAG;;;;;wBACjC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,GAAG,KAAA,EAAE,GAAG,KAAA,EAAE,CAAC,CAAC;6BAEjC,CAAA,IAAI,CAAC,YAAY,KAAK,yBAAa,CAAC,MAAM,CAAA,EAA1C,wBAA0C;;;;wBAE5C,IAAI,CAAC,YAAY,GAAG,yBAAa,CAAC,UAAU,CAAC;wBAEvC,aAAa,GAAG,IAAI,CAAC;wBACN,KAAA,CAAA,KAAA,IAAI,CAAA,CAAC,SAAS,CAAA;wBAClC,qBAAM,IAAI,CAAC,2BAA2B,CAAC;gCACtC,kBAAkB,oBAAA;gCAClB,OAAO,EAAE,aAAa;gCACtB,YAAY,EAAE,UAAU;gCACxB,MAAM,QAAA;gCACN,sBAAsB,wBAAA;gCACtB,MAAM,QAAA;gCACN,iBAAiB,mBAAA;6BACjB,CAAC,EAAA;;wBATG,YAAY,GAAG,cACpB,SAQE,EACF;wBACK,QAAQ,GAAG,eAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;wBAExD,SAAS,GAAG,eAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;wBAE5D,oBAAoB,GAAG,sBAAsB,aAAtB,sBAAsB,cAAtB,sBAAsB,GAAI,EAAE,CAAC;wBAExD,IAAI,IAAI,CAAC,cAAc,CAAC,oBAAoB,CAAC,EAAE;4BAC9C,oBAAoB;gCACnB,oBAAoB,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;yBAC/C;6BAAM;4BACN,oBAAoB,GAAG,oBAAoB;iCACzC,OAAO,CAAC,aAAa,EAAE,sBAAsB,CAAC;iCAC9C,OAAO,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;yBACnC;wBAGK,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC;wBACxD,oBAAoB,GAAG,oBAAoB;6BACzC,OAAO,CAAC,UAAU,EAAE,QAAQ,CAAC;6BAC7B,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;wBAEzB,cAAc,GAAM,oBAAoB,gBAAW,QAAQ,iBAAY,SAAW,CAAC;wBAEzF,qBAAM,IAAI,CAAC,6BAA6B,CAAC,cAAc,CAAC,EAAA;;wBAAxD,SAAwD,CAAC;wBAEzD,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,UAAC,EAAO;gCAAL,YAAG;4BAC/B,MAAM,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;4BAChD,GAAG,EAAE,CAAC;wBACP,CAAC,CAAC,CAAC;wBACH,IAAI,CAAC,YAAY,GAAG,yBAAa,CAAC,KAAK,CAAC;wBACxC,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;;;;wBAEvB,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,UAAC,EAAO;gCAAL,YAAG;4BAAO,OAAA,GAAG,CAAC,KAAG,CAAC;wBAAR,CAAQ,CAAC,CAAC;wBACjD,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;wBACvB,IACC,IAAI,CAAC,iBAAiB;4BACtB,IAAI,CAAC,iBAAiB,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,EACnD;4BACD,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;yBACnC;wBACD,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC;wBACnC,IAAI,CAAC,YAAY,GAAG,yBAAa,CAAC,MAAM,CAAC;;;;;aAG3C,CAAC,CAAC;IACJ,CAAC;IAEa,kEAA6B,GAA3C,UAA4C,cAAsB;;;;;wBACjE,MAAM,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;wBACnD,qBAAM,+BAAwB,CAC7B,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,EACpC,CAAC,cAAc,CAAC,EAChB,wBAAY,CACZ,EAAA;;wBAJD,SAIC,CAAC;;;;;KACF;IAEa,yDAAoB,GAAlC,UAAmC,cAAsB;;;;;;;wBACxD,MAAM,CAAC,KAAK,CAAC,4BAA0B,cAAgB,CAAC,CAAC;;;;wBAIxD,qBAAM,CAAC;gCACN,OAAO,IAAI,OAAO,CAAO,UAAC,GAAG,EAAE,GAAG;oCACjC,IAAM,SAAS,GAAG,KAAI,CAAC,eAAe,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;oCACrE,SAAS,CAAC,OAAO,GAAG;wCACnB,MAAM,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;oCAC5C,CAAC,CAAC;oCACF,SAAS,CAAC,OAAO,GAAG;wCACnB,GAAG,CAAC,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC,CAAC;oCAC9C,CAAC,CAAC;oCACF,SAAS,CAAC,MAAM,GAAG;wCAClB,KAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC;wCACnC,OAAO,GAAG,EAAE,CAAC;oCACd,CAAC,CAAC;gCACH,CAAC,CAAC,CAAC;4BACJ,CAAC,CAAC,EAAE,EAAA;;wBAdJ,SAcI,CAAC;wBAEL,kEAAkE;wBAClE,qBAAM,CAAC;gCACN,OAAO,IAAI,OAAO,CAAC,UAAC,GAAG,EAAE,GAAG;oCAC3B,IAAI,KAAI,CAAC,iBAAiB,EAAE;wCAC3B,IAAI,OAAK,GAAG,KAAK,CAAC;wCAClB,KAAI,CAAC,iBAAiB,CAAC,OAAO,GAAG,UAAA,KAAK;4CACrC,MAAM,CAAC,KAAK,CAAC,qBAAmB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAG,CAAC,CAAC;wCAC1D,CAAC,CAAC;wCACF,KAAI,CAAC,iBAAiB,CAAC,OAAO,GAAG,UAAA,KAAK;4CACrC,MAAM,CAAC,KAAK,CAAC,sBAAoB,KAAK,CAAC,MAAQ,CAAC,CAAC;4CACjD,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;wCACvC,CAAC,CAAC;wCAEF,KAAI,CAAC,iBAAiB,CAAC,SAAS,GAAG,UAAC,OAAqB;4CACxD,MAAM,CAAC,KAAK,CACX,oDAAkD,OAAO,CAAC,IAAI,MAAG,CACjE,CAAC;4CACF,IAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;4CAErC,IAAA,gBAAI,EACJ,iBAEM,EADL,kDAAgD,EAAhD,iFACK,CACE;4CACT,IAAI,IAAI,KAAK,yBAAa,CAAC,kBAAkB,EAAE;gDAC9C,OAAK,GAAG,IAAI,CAAC;gDACb,IAAI,KAAI,CAAC,iBAAiB,EAAE;oDAC3B,KAAI,CAAC,gBAAgB,GAAG,mBAAmB,CAAC;oDAC5C,KAAI,CAAC,iBAAiB,CAAC,SAAS;wDAC/B,KAAI,CAAC,kCAAkC,CAAC,IAAI,CAAC,KAAI,CAAC,CAAC;oDACpD,KAAI,CAAC,iBAAiB,CAAC,OAAO,GAAG,UAAA,GAAG;wDACnC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;wDAClB,KAAI,CAAC,gBAAgB,CAAC,mBAAW,CAAC,iBAAiB,CAAC,CAAC;oDACtD,CAAC,CAAC;oDACF,KAAI,CAAC,iBAAiB,CAAC,OAAO,GAAG,UAAA,KAAK;wDACrC,MAAM,CAAC,KAAK,CAAC,sBAAoB,KAAK,CAAC,MAAQ,CAAC,CAAC;wDACjD,KAAI,CAAC,gBAAgB,CAAC,mBAAW,CAAC,iBAAiB,CAAC,CAAC;oDACtD,CAAC,CAAC;iDACF;gDACD,GAAG,CAAC,wCAAwC,CAAC,CAAC;gDAC9C,OAAO;6CACP;4CAED,IAAI,IAAI,KAAK,yBAAa,CAAC,oBAAoB,EAAE;gDAE/C,IAAA,iBAEM,EADL,qCAAqD,EAArD,uCAAqD,EAA5C,UAAsC,EAAtC,4BAAsC,EAApC,iBAAc,EAAd,mCAAc,EAAE,iBAAa,EAAb,kCACtB,CACE;gDAET,GAAG,CAAC,EAAE,SAAS,WAAA,EAAE,SAAS,WAAA,EAAE,CAAC,CAAC;6CAC9B;wCACF,CAAC,CAAC;wCAEF,IAAM,OAAO,GAAG;4CACf,IAAI,EAAE,yBAAa,CAAC,mBAAmB;yCACvC,CAAC;wCACF,KAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;wCAErD,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,KAAI,EAAE,OAAK,CAAC,EAAE,mCAAuB,CAAC,CAAC;qCAClE;oCAED,SAAS,UAAU,CAAC,KAAc;wCACjC,IAAI,CAAC,KAAK,EAAE;4CACX,GAAG,CACF,IAAI,KAAK,CACR,kEAAgE,mCAAuB,QAAK,CAC5F,CACD,CAAC;yCACF;oCACF,CAAC;gCACF,CAAC,CAAC,CAAC;4BACJ,CAAC,CAAC,EAAE,EAAA;;wBAxEJ,kEAAkE;wBAClE,SAuEI,CAAC;;;;wBAEC,KAA2B,KAGhC,EAHO,SAAS,eAAA,EAAE,SAAS,eAAA,CAG1B;wBAEF,IAAI,+BAAmB,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;4BAC5C,MAAM,IAAI,wBAAiB,CAAC,SAAS,CAAC,CAAC;yBACvC;6BAAM,IAAI,SAAS,EAAE;4BACrB,MAAM,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC;yBAC3B;6BAAM;4BACN,MAAM,KAAG,CAAC;yBACV;;;;;;KAEF;IAEa,gEAA2B,GAAzC,UAA0C,EAQN;YAPnC,0CAAkB,EAClB,oBAAO,EACP,8BAAY,EACZ,kDAAsB,EACtB,kBAAM,EACN,kBAAM,EACN,wCAAiB;;;;;;wBAEX,aAAa,GAEf;4BACH,OAAO,EAAE,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC;4BACjD,OAAO,EAAE,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC;4BAC9C,cAAc,EAAE,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC;4BACxD,yBAAyB,EAAE,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC;4BAChE,UAAU,EAAE,IAAI,CAAC,iBAAiB;yBAClC,CAAC;6BAEE,CAAA,CAAC,kBAAkB,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAA,EAAzD,wBAAyD;wBAC5D,MAAM,CAAC,KAAK,CAAC,yBAAuB,kBAAkB,mBAAgB,CAAC,CAAC;wBACxE,sBAAO,EAAE,EAAC;;wBAEJ,OAAO,GAAG,aAAa,CAAC,kBAAkB,CAAC,CAAC;wBAE1C,IAAI,GAAK,GAAG,CAAC,KAAK,CAAC,sBAAsB,aAAtB,sBAAsB,cAAtB,sBAAsB,GAAI,EAAE,CAAC,KAA5C,CAA6C;wBAEzD,MAAM,CAAC,KAAK,CAAC,yBAAuB,kBAAoB,CAAC,CAAC;wBAE3C,qBAAM,OAAO,CAAC;gCAC5B,OAAO,SAAA;gCACP,YAAY,cAAA;gCACZ,sBAAsB,wBAAA;gCACtB,MAAM,QAAA;gCACN,MAAM,QAAA;gCACN,IAAI,MAAA;gCACJ,iBAAiB,mBAAA;6BACjB,CAAC,EAAA;;wBARI,MAAM,GAAG,SAQb;wBAEF,sBAAO,MAAM,EAAC;;;;KAEf;IAEa,0DAAqB,GAAnC,UAAoC,EAAqC;YAAnC,cAAI;;;;;4BACzB,qBAAM,cAAI,CAAC,cAAc,EAAE,EAAA;;wBAArC,OAAO,GAAG,SAA2B;wBAC3C,sBAAO;gCACN,aAAa,EAAE,OAAO,CAAC,cAAc,EAAE,CAAC,WAAW,EAAE;gCACrD,IAAI,MAAA;6BACJ,EAAC;;;;KACF;IAEa,6DAAwB,GAAtC,UAAuC,EAET;YAD7B,cAAI;;;;;4BAIkB,qBAAM,eAAK,CAAC,OAAO,CAAC,eAAe,CAAC,EAAA;;wBAApD,aAAa,GAAG,SAAoC;6BACtD,aAAa,EAAb,wBAAa;wBAChB,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC;;4BAER,qBAAM,cAAI,CAAC,wBAAwB,EAAE,EAAA;;wBAAnD,WAAW,GAAG,SAAqC;wBACzD,IAAI,WAAW,EAAE;4BAChB,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC;yBAC1B;;;wBAEF,IAAI,CAAC,KAAK,EAAE;4BACX,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;yBACpC;wBACD,sBAAO;gCACN,aAAa,EAAE,KAAK;gCACpB,IAAI,MAAA;6BACJ,EAAC;;;;KACF;IAEa,6DAAwB,GAAtC,UAAuC,EAGT;YAF7B,kBAAM,EACN,cAAI;;;;gBAEE,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC;gBAChB,KAAK,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;gBAE7D,sBAAO;wBACN,IAAI,MAAA;wBACJ,YAAY,EAAE,KAAK;wBACnB,WAAW,EAAE,MAAM;qBACnB,EAAC;;;KACF;IAEa,0DAAqB,GAAnC,UAAoC,EAKN;YAJ7B,oBAAO,EACP,8BAAY,EACZ,kDAAsB,EACtB,kBAAM;;;;;;wBAEA,YAAY,GAAG;4BACpB,MAAM,QAAA;4BACN,OAAO,EAAE,SAAS;yBAClB,CAAC;wBAEoB,qBAAM,IAAI,CAAC,kBAAkB,EAAE,EAAA;;wBAA/C,aAAa,GAAG,SAA+B;wBACrD,IAAI,CAAC,aAAa,EAAE;4BACnB,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;yBAClC;wBACa,qBAAM,kBAAW,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,UAAC,WAAgB;gCACrD,IAAA,gBACsB,EADpB,oCAAe,EAAE,4BAAW,EAAE,8BACV,CAAC;gCAE7B,OAAO;oCACN,UAAU,EAAE,eAAe;oCAC3B,UAAU,EAAE,WAAW;oCACvB,aAAa,EAAE,YAAY;iCAC3B,CAAC;4BACH,CAAC,CAAC,EAAA;;wBATI,KAAK,GAAG,SASZ;wBAEI,OAAO,GAAG;4BACf,GAAG,EAAE,KAAG,sBAAsB,GAAG,YAAc;4BAC/C,IAAI,EAAE,OAAO;4BACb,MAAM,EAAE,MAAM;4BACd,OAAO,eAAO,wCAA4B,CAAE;yBAC5C,CAAC;wBAEI,aAAa,GAAG,aAAM,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;wBAChE,sBAAO,aAAa,CAAC,OAAO,EAAC;;;;KAC7B;IAEO,sDAAiB,GAAzB,UAA0B,EAGI;YAF7B,cAAI,EACJ,wCAAiB;QAEjB,IAAI,CAAC,iBAAiB,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,EAAE;YAC9D,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;SAC3C;QAED,OAAO;YACN,aAAa,EAAE,iBAAiB,CAAC,aAAa;YAC9C,IAAI,MAAA;SACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACH,uDAAkB,GAAlB;QACC,OAAO,kBAAW,CAAC,GAAG,EAAE;aACtB,IAAI,CAAC,UAAC,WAAgB;YACtB,IAAI,CAAC,WAAW;gBAAE,OAAO,KAAK,CAAC;YAC/B,IAAM,IAAI,GAAG,kBAAW,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YAC5C,MAAM,CAAC,KAAK,CAAC,gDAAgD,EAAE,IAAI,CAAC,CAAC;YAErE,OAAO,IAAI,CAAC;QACb,CAAC,CAAC;aACD,KAAK,CAAC,UAAC,GAAQ;YACf,MAAM,CAAC,IAAI,CAAC,0BAA0B,EAAE,GAAG,CAAC,CAAC;YAC7C,OAAO,KAAK,CAAC;QACd,CAAC,CAAC,CAAC;IACL,CAAC;IACF,iCAAC;AAAD,CAAC,AAhyBD,CAAgD,uCAAsB,GAgyBrE;AAhyBY,gEAA0B"}