@webex/internal-plugin-dss 3.12.0-next.8 → 3.12.0-task-refactor.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/dss.js CHANGED
@@ -83,14 +83,16 @@ var DSS = _webexCore.WebexPlugin.extend({
83
83
  * @memberof DSS
84
84
  */
85
85
  unregister: function unregister() {
86
+ var _this2 = this;
86
87
  if (!this.registered) {
87
88
  this.logger.info('DSS->unregister#INFO, DSS plugin already unregistered');
88
89
  return _promise.default.resolve();
89
90
  }
90
91
  this.stopListeningForEvents();
91
- this.trigger(_constants.DSS_UNREGISTERED);
92
- this.registered = false;
93
- return _promise.default.resolve();
92
+ return this.webex.internal.mercury.disconnect().then(function () {
93
+ _this2.trigger(_constants.DSS_UNREGISTERED);
94
+ _this2.registered = false;
95
+ });
94
96
  },
95
97
  /**
96
98
  * registers for DSS events through mercury
@@ -98,12 +100,12 @@ var DSS = _webexCore.WebexPlugin.extend({
98
100
  * @private
99
101
  */
100
102
  listenForEvents: function listenForEvents() {
101
- var _this2 = this;
103
+ var _this3 = this;
102
104
  this.webex.internal.mercury.on(_constants.DSS_LOOKUP_MERCURY_EVENT, function (envelope) {
103
- _this2._handleEvent(envelope.data);
105
+ _this3._handleEvent(envelope.data);
104
106
  });
105
107
  this.webex.internal.mercury.on(_constants.DSS_SEARCH_MERCURY_EVENT, function (envelope) {
106
- _this2._handleEvent(envelope.data);
108
+ _this3._handleEvent(envelope.data);
107
109
  });
108
110
  },
109
111
  /**
@@ -147,7 +149,7 @@ var DSS = _webexCore.WebexPlugin.extend({
147
149
  * @throws {DssTimeoutError} when server does not respond in the specified timeframe
148
150
  */
149
151
  _request: function _request(options) {
150
- var _this3 = this;
152
+ var _this4 = this;
151
153
  var resource = options.resource,
152
154
  params = options.params,
153
155
  dataPath = options.dataPath,
@@ -161,7 +163,7 @@ var DSS = _webexCore.WebexPlugin.extend({
161
163
  var notFoundArray;
162
164
  return new _promise.default(function (resolve, reject) {
163
165
  var timer = new _commonTimers.Timer(function () {
164
- _this3.stopListening(_this3, eventName);
166
+ _this4.stopListening(_this4, eventName);
165
167
  reject(new _dssErrors.DssTimeoutError({
166
168
  requestId: requestId,
167
169
  timeout: timeout,
@@ -169,7 +171,7 @@ var DSS = _webexCore.WebexPlugin.extend({
169
171
  params: params
170
172
  }));
171
173
  }, timeout);
172
- _this3.listenTo(_this3, eventName, function (data) {
174
+ _this4.listenTo(_this4, eventName, function (data) {
173
175
  timer.reset();
174
176
  var resultData = (0, _lodash.get)(data, dataPath, []);
175
177
  var found;
@@ -212,10 +214,10 @@ var DSS = _webexCore.WebexPlugin.extend({
212
214
  resolveValue.notFoundArray = notFoundArray;
213
215
  }
214
216
  resolve(resolveValue);
215
- _this3.stopListening(_this3, eventName);
217
+ _this4.stopListening(_this4, eventName);
216
218
  }
217
219
  });
218
- _this3.webex.request({
220
+ _this4.webex.request({
219
221
  service: _constants.DSS_SERVICE_NAME,
220
222
  resource: resource,
221
223
  method: 'POST',
@@ -352,7 +354,7 @@ var DSS = _webexCore.WebexPlugin.extend({
352
354
  * console.log('Entities:', result.resultArray);
353
355
  */
354
356
  lookupByPhoneNumbers: function lookupByPhoneNumbers(phoneNumbers) {
355
- var _this4 = this;
357
+ var _this5 = this;
356
358
  if (!phoneNumbers || phoneNumbers.length === 0) {
357
359
  return _promise.default.resolve({
358
360
  resultArray: [],
@@ -372,7 +374,7 @@ var DSS = _webexCore.WebexPlugin.extend({
372
374
  resource: resource,
373
375
  params: (0, _defineProperty2.default)({}, _constants.LOOKUP_REQUEST_KEY, phoneNumbers)
374
376
  }).catch(function (error) {
375
- _this4.logger.error("DSS->lookupByPhoneNumbers#ERROR, Phone number lookup failure, ".concat(error.message));
377
+ _this5.logger.error("DSS->lookupByPhoneNumbers#ERROR, Phone number lookup failure, ".concat(error.message));
376
378
  return _promise.default.reject(error);
377
379
  });
378
380
  },
@@ -419,7 +421,7 @@ var DSS = _webexCore.WebexPlugin.extend({
419
421
  * @returns {Promise} Resolves with an array of entities found
420
422
  */
421
423
  searchPlaces: function searchPlaces(options) {
422
- var _this5 = this;
424
+ var _this6 = this;
423
425
  var resultSize = options.resultSize,
424
426
  queryString = options.queryString,
425
427
  isOnlySchedulableRooms = options.isOnlySchedulableRooms;
@@ -432,11 +434,11 @@ var DSS = _webexCore.WebexPlugin.extend({
432
434
  isOnlySchedulableRooms: isOnlySchedulableRooms
433
435
  }
434
436
  }).catch(function (error) {
435
- _this5.logger.error("DSS->search place#ERROR, search place failure, ".concat(error.message));
437
+ _this6.logger.error("DSS->search place#ERROR, search place failure, ".concat(error.message));
436
438
  return _promise.default.reject(error);
437
439
  });
438
440
  },
439
- version: "3.12.0-next.8"
441
+ version: "3.12.0-task-refactor.1"
440
442
  });
441
443
  var _default = exports.default = DSS;
442
444
  //# sourceMappingURL=dss.js.map
package/dist/dss.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["_uuid","_interopRequireDefault","require","_webexCore","_lodash","_commonTimers","_constants","_dssBatcher","_dssErrors","ownKeys","e","r","t","_Object$keys2","_Object$getOwnPropertySymbols","o","filter","_Object$getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","Object","forEach","_defineProperty2","default","_Object$getOwnPropertyDescriptors","_Object$defineProperties","_Object$defineProperty","DSS","WebexPlugin","extend","namespace","registered","initialize","_len","args","Array","_key","_apply","prototype","batchers","register","_this","webex","canAuthorize","logger","error","_promise","reject","Error","info","resolve","internal","mercury","connect","then","listenForEvents","trigger","DSS_REGISTERED","catch","concat","message","unregister","stopListeningForEvents","DSS_UNREGISTERED","_this2","on","DSS_LOOKUP_MERCURY_EVENT","envelope","_handleEvent","data","DSS_SEARCH_MERCURY_EVENT","off","_getResultEventName","requestId","DSS_RESULT","DSS_LOOKUP_RESULT","_request","options","_this3","resource","params","dataPath","foundPath","notFoundPath","timeout","config","requestTimeout","uuid","v4","eventName","result","expectedSeqNums","notFoundArray","timer","Timer","stopListening","DssTimeoutError","listenTo","reset","resultData","get","found","sequence","finished","range","map","String","done","isEqual","_keys","cancel","resultArray","foundArray","index","seqResult","_toConsumableArray2","resolveValue","request","service","DSS_SERVICE_NAME","method","contentType","body","start","_batchedLookup","lookupValue","LOOKUP_DATA_PATH","entitiesFoundPath","LOOKUP_FOUND_PATH","entitiesNotFoundPath","LOOKUP_NOT_FOUND_PATH","requestKey","LOOKUP_REQUEST_KEY","DssBatcher","parent","lookupDetail","id","device","orgId","_ref","lookup","entityProviderType","_options$shouldBatch","shouldBatch","_ref2","lookupByEmail","email","_ref3","lookupByPhoneNumbers","phoneNumbers","_this4","search","requestedTypes","resultSize","queryString","includeCommonAreaPhones","includeOnlyPairableDevices","includePersonalDevices","SEARCH_DATA_PATH","_ref4","searchPlaces","_this5","isOnlySchedulableRooms","version","_default","exports"],"sources":["dss.ts"],"sourcesContent":["/* eslint-disable no-underscore-dangle */\n/*!\n * Copyright (c) 2015-2022 Cisco Systems, Inc. See LICENSE file.\n */\n/* eslint-disable no-underscore-dangle */\nimport uuid from 'uuid';\nimport {WebexPlugin} from '@webex/webex-core';\nimport '@webex/internal-plugin-mercury';\nimport {range, isEqual, get} from 'lodash';\n\nimport {Timer} from '@webex/common-timers';\nimport type {\n SearchOptions,\n LookupDetailOptions,\n LookupOptions,\n LookupByEmailOptions,\n SearchPlaceOptions,\n} from './types';\nimport {\n DSS_REGISTERED,\n DSS_UNREGISTERED,\n DSS_LOOKUP_MERCURY_EVENT,\n DSS_LOOKUP_RESULT,\n DSS_SERVICE_NAME,\n DSS_SEARCH_MERCURY_EVENT,\n DSS_RESULT,\n LOOKUP_DATA_PATH,\n LOOKUP_FOUND_PATH,\n LOOKUP_NOT_FOUND_PATH,\n LOOKUP_REQUEST_KEY,\n SEARCH_DATA_PATH,\n} from './constants';\nimport DssBatcher from './dss-batcher';\nimport {DssTimeoutError} from './dss-errors';\nimport {BatcherOptions, RequestOptions, RequestResult} from './types';\n\nconst DSS = WebexPlugin.extend({\n namespace: 'DSS',\n\n /**\n * registered value indicating events registration is successful\n * @instance\n * @type {Boolean}\n * @memberof DSS\n */\n registered: false,\n\n /**\n * Initializer\n * @private\n * @param {Object} attrs\n * @param {Object} options\n * @returns {undefined}\n */\n initialize(...args) {\n Reflect.apply(WebexPlugin.prototype.initialize, this, args);\n this.batchers = {};\n },\n\n /**\n * Explicitly sets up the DSS plugin by connecting to mercury, and listening for DSS events.\n * @returns {Promise}\n * @public\n * @memberof DSS\n */\n register() {\n if (!this.webex.canAuthorize) {\n this.logger.error('DSS->register#ERROR, Unable to register, SDK cannot authorize');\n\n return Promise.reject(new Error('SDK cannot authorize'));\n }\n\n if (this.registered) {\n this.logger.info('dss->register#INFO, DSS plugin already registered');\n\n return Promise.resolve();\n }\n\n return this.webex.internal.mercury\n .connect()\n .then(() => {\n this.listenForEvents();\n this.trigger(DSS_REGISTERED);\n this.registered = true;\n })\n .catch((error) => {\n this.logger.error(`DSS->register#ERROR, Unable to register, ${error.message}`);\n\n return Promise.reject(error);\n });\n },\n\n /**\n * Explicitly tears down the DSS plugin by disconnecting from mercury, and stops listening to DSS events\n * @returns {Promise}\n * @public\n * @memberof DSS\n */\n unregister() {\n if (!this.registered) {\n this.logger.info('DSS->unregister#INFO, DSS plugin already unregistered');\n\n return Promise.resolve();\n }\n\n this.stopListeningForEvents();\n\n this.trigger(DSS_UNREGISTERED);\n this.registered = false;\n\n return Promise.resolve();\n },\n\n /**\n * registers for DSS events through mercury\n * @returns {undefined}\n * @private\n */\n listenForEvents() {\n this.webex.internal.mercury.on(DSS_LOOKUP_MERCURY_EVENT, (envelope) => {\n this._handleEvent(envelope.data);\n });\n this.webex.internal.mercury.on(DSS_SEARCH_MERCURY_EVENT, (envelope) => {\n this._handleEvent(envelope.data);\n });\n },\n\n /**\n * unregisteres all the DSS events from mercury\n * @returns {undefined}\n * @private\n */\n stopListeningForEvents() {\n this.webex.internal.mercury.off(DSS_LOOKUP_MERCURY_EVENT);\n this.webex.internal.mercury.off(DSS_SEARCH_MERCURY_EVENT);\n },\n\n /**\n * constructs the event name based on request id\n * @param {UUID} requestId the id of the request\n * @returns {string}\n */\n _getResultEventName(requestId) {\n return `${DSS_RESULT}${requestId}`;\n },\n\n /**\n * Takes incoming data and triggers correct events\n * @param {Object} data the event data\n * @returns {undefined}\n */\n _handleEvent(data) {\n this.trigger(this._getResultEventName(data.requestId), data);\n this.trigger(DSS_LOOKUP_RESULT, data);\n },\n\n /**\n * Makes the request to the directory service\n * @param {Object} options\n * @param {string} options.resource the URL to query\n * @param {Mixed} options.params additional params for the body of the request\n * @param {string} options.dataPath the path to get the data in the result object\n * @param {string} [options.foundPath] the path to get the lookups of the found data\n * @param {string} [options.notFoundPath] the path to get the lookups of the not found data\n * @returns {Promise<Object>} result Resolves with an object\n * @returns {Array} result.resultArray an array of entities found\n * @returns {Array} result.foundArray an array of the lookups of the found entities (if foundPath provided)\n * @returns {Array} result.notFoundArray an array of the lookups of the not found entities (if notFoundPath provided)\n * @throws {DssTimeoutError} when server does not respond in the specified timeframe\n */\n _request(options: RequestOptions): Promise<RequestResult> {\n const {resource, params, dataPath, foundPath, notFoundPath} = options;\n\n const timeout = this.config.requestTimeout;\n const requestId = uuid.v4();\n const eventName = this._getResultEventName(requestId);\n const result = {};\n let expectedSeqNums: string[];\n let notFoundArray: unknown[];\n\n return new Promise((resolve, reject) => {\n const timer = new Timer(() => {\n this.stopListening(this, eventName);\n reject(new DssTimeoutError({requestId, timeout, resource, params}));\n }, timeout);\n\n this.listenTo(this, eventName, (data) => {\n timer.reset();\n const resultData = get(data, dataPath, []);\n let found;\n\n if (foundPath) {\n found = get(data, foundPath, []);\n }\n result[data.sequence] = foundPath ? {resultData, found} : {resultData};\n\n if (data.finished) {\n expectedSeqNums = range(data.sequence + 1).map(String);\n if (notFoundPath) {\n notFoundArray = get(data, notFoundPath, []);\n }\n }\n\n const done = isEqual(expectedSeqNums, Object.keys(result));\n\n if (done) {\n timer.cancel();\n\n const resultArray: any[] = [];\n const foundArray: any[] = [];\n\n expectedSeqNums.forEach((index) => {\n const seqResult = result[index];\n\n if (seqResult) {\n resultArray.push(...seqResult.resultData);\n if (foundPath) {\n foundArray.push(...seqResult.found);\n }\n }\n });\n const resolveValue: RequestResult = {\n resultArray,\n };\n\n if (foundPath) {\n resolveValue.foundArray = foundArray;\n }\n if (notFoundPath) {\n resolveValue.notFoundArray = notFoundArray;\n }\n resolve(resolveValue);\n this.stopListening(this, eventName);\n }\n });\n this.webex.request({\n service: DSS_SERVICE_NAME,\n resource,\n method: 'POST',\n contentType: 'application/json',\n body: {requestId, ...params},\n });\n timer.start();\n });\n },\n\n /**\n * Uses a batcher to make the request to the directory service\n * @param {Object} options\n * @param {string} options.resource the URL to query\n * @param {string} options.value the id or email to lookup\n * @returns {Promise} Resolves with an array of entities found\n * @throws {DssTimeoutError} when server does not respond in the specified timeframe\n */\n _batchedLookup(options: BatcherOptions) {\n const {resource, lookupValue} = options;\n const dataPath = LOOKUP_DATA_PATH;\n const entitiesFoundPath = LOOKUP_FOUND_PATH;\n const entitiesNotFoundPath = LOOKUP_NOT_FOUND_PATH;\n const requestKey = LOOKUP_REQUEST_KEY;\n\n this.batchers[resource] =\n this.batchers[resource] ||\n new DssBatcher({\n resource,\n dataPath,\n entitiesFoundPath,\n entitiesNotFoundPath,\n requestKey,\n parent: this,\n });\n\n return this.batchers[resource].request(lookupValue);\n },\n\n /**\n * Retrieves detailed information about an entity\n * @param {Object} options\n * @param {UUID} options.id the id of the entity to lookup\n * @returns {Promise} Resolves with the entity found or null if not found\n * @throws {DssTimeoutError} when server does not respond in the specified timeframe\n */\n lookupDetail(options: LookupDetailOptions) {\n const {id} = options;\n\n const resource = `/lookup/orgid/${this.webex.internal.device.orgId}/identity/${id}/detail`;\n\n return this._request({\n dataPath: LOOKUP_DATA_PATH,\n foundPath: LOOKUP_FOUND_PATH,\n resource,\n }).then(({resultArray, foundArray}) => {\n // TODO: find out what is actually returned!\n if (foundArray[0] === id) {\n return resultArray[0];\n }\n\n return null;\n });\n },\n\n /**\n * Retrieves basic information about an entity within an organization\n * @param {Object} options\n * @param {UUID} options.id the id of the entity to lookup\n * @param {UUID} [options.entityProviderType] the provider to query\n * @param {Boolean} options.shouldBatch whether to batch the query, set to false for single immediate result (defaults to true)\n * @returns {Promise} Resolves with the entity found or null if not found\n * @throws {DssTimeoutError} when server does not respond in the specified timeframe\n */\n lookup(options: LookupOptions) {\n const {id, entityProviderType, shouldBatch = true} = options;\n\n const resource = entityProviderType\n ? `/lookup/orgid/${this.webex.internal.device.orgId}/entityprovidertype/${entityProviderType}`\n : `/lookup/orgid/${this.webex.internal.device.orgId}/identities`;\n\n if (shouldBatch) {\n return this._batchedLookup({\n resource,\n lookupValue: id,\n });\n }\n\n return this._request({\n dataPath: LOOKUP_DATA_PATH,\n foundPath: LOOKUP_FOUND_PATH,\n resource,\n params: {\n [LOOKUP_REQUEST_KEY]: [id],\n },\n }).then(({resultArray, foundArray}) => {\n if (foundArray[0] === id) {\n return resultArray[0];\n }\n\n return null;\n });\n },\n\n /**\n * Retrieves basic information about an enitity within an organization\n * @param {Object} options\n * @param {UUID} options.email the email of the entity to lookup\n * @returns {Promise} Resolves with the entity found or rejects if not found\n * @throws {DssTimeoutError} when server does not respond in the specified timeframe\n */\n lookupByEmail(options: LookupByEmailOptions) {\n const {email} = options;\n const resource = `/lookup/orgid/${this.webex.internal.device.orgId}/emails`;\n\n return this._request({\n dataPath: LOOKUP_DATA_PATH,\n foundPath: LOOKUP_FOUND_PATH,\n resource,\n params: {\n [LOOKUP_REQUEST_KEY]: [email],\n },\n }).then(({resultArray, foundArray}) => {\n if (foundArray[0] === email) {\n return resultArray[0];\n }\n\n return null;\n });\n },\n\n /**\n * Retrieves basic information about entities by phone numbers within an organization.\n * Supports up to 5 phone numbers per request. For larger batches, client should chunk\n * requests into groups of 5.\n * @param {string[]} phoneNumbers - Array of phone numbers to lookup in E.164 format (max 5)\n * @returns {Promise<RequestResult>} Resolves with object containing:\n * - resultArray: Array of matched entities\n * - foundArray: Array of phone numbers that were found\n * - notFoundArray: Array of phone numbers that were not found\n * @throws {Error} When more than 5 phone numbers provided\n * @throws {DssTimeoutError} When server does not respond in the specified timeframe\n * @example\n * const result = await webex.internal.dss.lookupByPhoneNumbers(['+15551234567']);\n * console.log('Found:', result.foundArray);\n * console.log('Entities:', result.resultArray);\n */\n lookupByPhoneNumbers(phoneNumbers: string[]): Promise<RequestResult> {\n if (!phoneNumbers || phoneNumbers.length === 0) {\n return Promise.resolve({resultArray: [], foundArray: [], notFoundArray: []});\n }\n\n if (phoneNumbers.length > 5) {\n this.logger.error(\n `DSS->lookupByPhoneNumbers#ERROR, Maximum of 5 phone numbers allowed, received: ${phoneNumbers.length}`\n );\n\n return Promise.reject(\n new Error(\n `lookupByPhoneNumbers accepts a maximum of 5 phone numbers. Received: ${phoneNumbers.length}. Please batch requests on the client side if needed.`\n )\n );\n }\n\n const resource = `/lookup/orgid/${this.webex.internal.device.orgId}/phonenumbers`;\n\n return this._request({\n dataPath: LOOKUP_DATA_PATH,\n foundPath: LOOKUP_FOUND_PATH,\n notFoundPath: LOOKUP_NOT_FOUND_PATH,\n resource,\n params: {\n [LOOKUP_REQUEST_KEY]: phoneNumbers,\n },\n }).catch((error) => {\n this.logger.error(\n `DSS->lookupByPhoneNumbers#ERROR, Phone number lookup failure, ${error.message}`\n );\n\n return Promise.reject(error);\n });\n },\n\n /**\n * Search for information about entities\n * @param {Object} options\n * @param {SearchType[]} options.requestedTypes an array of search types from: PERSON, CALLING_SERVICE, EXTERNAL_CALLING, ROOM, ROBOT\n * @param {string[]} options.queryString A query string that will be transformed into a Directory search filter query. It is used to search the following fields: username, givenName, familyName, displayName and email\n * @param {number} options.resultSize The maximum number of results returned from each provider\n * @param {boolean} options.includePersonalDevices If true, includes personal devices associated with users in the search results.\n * @param {boolean} options.includeCommonAreaPhones If true, includes common area phones in the search results.\n * @param {boolean} options.includeOnlyPairableDevices If true, include the devices that are pairable in the search results.\n * @returns {Promise} Resolves with an array of entities found\n * @throws {DssTimeoutError} when server does not respond in the specified timeframe\n */\n search(options: SearchOptions) {\n const {\n requestedTypes,\n resultSize,\n queryString,\n includeCommonAreaPhones,\n includeOnlyPairableDevices,\n includePersonalDevices,\n } = options;\n\n return this._request({\n dataPath: SEARCH_DATA_PATH,\n resource: `/search/orgid/${this.webex.internal.device.orgId}/entities`,\n params: {\n queryString,\n resultSize,\n requestedTypes,\n includeCommonAreaPhones,\n includeOnlyPairableDevices,\n includePersonalDevices,\n },\n }).then(({resultArray}) => resultArray);\n },\n\n /**\n * Search for information about places\n * @param {Object} options\n * @param {string} options.queryString A query string that will be transformed into a Directory search filter query. It is used to search the following fields: placeName, displayName.\n * @param {number} options.resultSize The maximum number of results returned from each provider\n * @returns {Promise} Resolves with an array of entities found\n */\n searchPlaces(options: SearchPlaceOptions) {\n const {resultSize, queryString, isOnlySchedulableRooms} = options;\n\n return this._request({\n dataPath: 'directoryEntities',\n resource: `/search/orgid/${this.webex.internal.device.orgId}/places`,\n params: {\n queryString,\n resultSize,\n isOnlySchedulableRooms,\n },\n }).catch((error) => {\n this.logger.error(`DSS->search place#ERROR, search place failure, ${error.message}`);\n\n return Promise.reject(error);\n });\n },\n});\n\nexport default DSS;\n"],"mappings":";;;;;;;;;;;;;;;;;;AAKA,IAAAA,KAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA;AACAA,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AAEA,IAAAG,aAAA,GAAAH,OAAA;AAQA,IAAAI,UAAA,GAAAJ,OAAA;AAcA,IAAAK,WAAA,GAAAN,sBAAA,CAAAC,OAAA;AACA,IAAAM,UAAA,GAAAN,OAAA;AAA6C,SAAAO,QAAAC,CAAA,EAAAC,CAAA,QAAAC,CAAA,GAAAC,aAAA,CAAAH,CAAA,OAAAI,6BAAA,QAAAC,CAAA,GAAAD,6BAAA,CAAAJ,CAAA,GAAAC,CAAA,KAAAI,CAAA,GAAAA,CAAA,CAAAC,MAAA,WAAAL,CAAA,WAAAM,gCAAA,CAAAP,CAAA,EAAAC,CAAA,EAAAO,UAAA,OAAAN,CAAA,CAAAO,IAAA,CAAAC,KAAA,CAAAR,CAAA,EAAAG,CAAA,YAAAH,CAAA;AAAA,SAAAS,cAAAX,CAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAW,SAAA,CAAAC,MAAA,EAAAZ,CAAA,UAAAC,CAAA,WAAAU,SAAA,CAAAX,CAAA,IAAAW,SAAA,CAAAX,CAAA,QAAAA,CAAA,OAAAF,OAAA,CAAAe,MAAA,CAAAZ,CAAA,OAAAa,OAAA,WAAAd,CAAA,QAAAe,gBAAA,CAAAC,OAAA,EAAAjB,CAAA,EAAAC,CAAA,EAAAC,CAAA,CAAAD,CAAA,SAAAiB,iCAAA,GAAAC,wBAAA,CAAAnB,CAAA,EAAAkB,iCAAA,CAAAhB,CAAA,KAAAH,OAAA,CAAAe,MAAA,CAAAZ,CAAA,GAAAa,OAAA,WAAAd,CAAA,IAAAmB,sBAAA,CAAApB,CAAA,EAAAC,CAAA,EAAAM,gCAAA,CAAAL,CAAA,EAAAD,CAAA,iBAAAD,CAAA,IAjC7C,0CACA;AACA;AACA,GAFA,CAGA;AAgCA,IAAMqB,GAAG,GAAGC,sBAAW,CAACC,MAAM,CAAC;EAC7BC,SAAS,EAAE,KAAK;EAEhB;AACF;AACA;AACA;AACA;AACA;EACEC,UAAU,EAAE,KAAK;EAEjB;AACF;AACA;AACA;AACA;AACA;AACA;EACEC,UAAU,WAAVA,UAAUA,CAAA,EAAU;IAAA,SAAAC,IAAA,GAAAf,SAAA,CAAAC,MAAA,EAANe,IAAI,OAAAC,KAAA,CAAAF,IAAA,GAAAG,IAAA,MAAAA,IAAA,GAAAH,IAAA,EAAAG,IAAA;MAAJF,IAAI,CAAAE,IAAA,IAAAlB,SAAA,CAAAkB,IAAA;IAAA;IAChB,IAAAC,MAAA,CAAAd,OAAA,EAAcK,sBAAW,CAACU,SAAS,CAACN,UAAU,EAAE,IAAI,EAAEE,IAAI,CAAC;IAC3D,IAAI,CAACK,QAAQ,GAAG,CAAC,CAAC;EACpB,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;EACEC,QAAQ,WAARA,QAAQA,CAAA,EAAG;IAAA,IAAAC,KAAA;IACT,IAAI,CAAC,IAAI,CAACC,KAAK,CAACC,YAAY,EAAE;MAC5B,IAAI,CAACC,MAAM,CAACC,KAAK,CAAC,+DAA+D,CAAC;MAElF,OAAOC,QAAA,CAAAvB,OAAA,CAAQwB,MAAM,CAAC,IAAIC,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAC1D;IAEA,IAAI,IAAI,CAACjB,UAAU,EAAE;MACnB,IAAI,CAACa,MAAM,CAACK,IAAI,CAAC,mDAAmD,CAAC;MAErE,OAAOH,QAAA,CAAAvB,OAAA,CAAQ2B,OAAO,CAAC,CAAC;IAC1B;IAEA,OAAO,IAAI,CAACR,KAAK,CAACS,QAAQ,CAACC,OAAO,CAC/BC,OAAO,CAAC,CAAC,CACTC,IAAI,CAAC,YAAM;MACVb,KAAI,CAACc,eAAe,CAAC,CAAC;MACtBd,KAAI,CAACe,OAAO,CAACC,yBAAc,CAAC;MAC5BhB,KAAI,CAACV,UAAU,GAAG,IAAI;IACxB,CAAC,CAAC,CACD2B,KAAK,CAAC,UAACb,KAAK,EAAK;MAChBJ,KAAI,CAACG,MAAM,CAACC,KAAK,6CAAAc,MAAA,CAA6Cd,KAAK,CAACe,OAAO,CAAE,CAAC;MAE9E,OAAOd,QAAA,CAAAvB,OAAA,CAAQwB,MAAM,CAACF,KAAK,CAAC;IAC9B,CAAC,CAAC;EACN,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;EACEgB,UAAU,WAAVA,UAAUA,CAAA,EAAG;IACX,IAAI,CAAC,IAAI,CAAC9B,UAAU,EAAE;MACpB,IAAI,CAACa,MAAM,CAACK,IAAI,CAAC,uDAAuD,CAAC;MAEzE,OAAOH,QAAA,CAAAvB,OAAA,CAAQ2B,OAAO,CAAC,CAAC;IAC1B;IAEA,IAAI,CAACY,sBAAsB,CAAC,CAAC;IAE7B,IAAI,CAACN,OAAO,CAACO,2BAAgB,CAAC;IAC9B,IAAI,CAAChC,UAAU,GAAG,KAAK;IAEvB,OAAOe,QAAA,CAAAvB,OAAA,CAAQ2B,OAAO,CAAC,CAAC;EAC1B,CAAC;EAED;AACF;AACA;AACA;AACA;EACEK,eAAe,WAAfA,eAAeA,CAAA,EAAG;IAAA,IAAAS,MAAA;IAChB,IAAI,CAACtB,KAAK,CAACS,QAAQ,CAACC,OAAO,CAACa,EAAE,CAACC,mCAAwB,EAAE,UAACC,QAAQ,EAAK;MACrEH,MAAI,CAACI,YAAY,CAACD,QAAQ,CAACE,IAAI,CAAC;IAClC,CAAC,CAAC;IACF,IAAI,CAAC3B,KAAK,CAACS,QAAQ,CAACC,OAAO,CAACa,EAAE,CAACK,mCAAwB,EAAE,UAACH,QAAQ,EAAK;MACrEH,MAAI,CAACI,YAAY,CAACD,QAAQ,CAACE,IAAI,CAAC;IAClC,CAAC,CAAC;EACJ,CAAC;EAED;AACF;AACA;AACA;AACA;EACEP,sBAAsB,WAAtBA,sBAAsBA,CAAA,EAAG;IACvB,IAAI,CAACpB,KAAK,CAACS,QAAQ,CAACC,OAAO,CAACmB,GAAG,CAACL,mCAAwB,CAAC;IACzD,IAAI,CAACxB,KAAK,CAACS,QAAQ,CAACC,OAAO,CAACmB,GAAG,CAACD,mCAAwB,CAAC;EAC3D,CAAC;EAED;AACF;AACA;AACA;AACA;EACEE,mBAAmB,WAAnBA,mBAAmBA,CAACC,SAAS,EAAE;IAC7B,UAAAd,MAAA,CAAUe,qBAAU,EAAAf,MAAA,CAAGc,SAAS;EAClC,CAAC;EAED;AACF;AACA;AACA;AACA;EACEL,YAAY,WAAZA,YAAYA,CAACC,IAAI,EAAE;IACjB,IAAI,CAACb,OAAO,CAAC,IAAI,CAACgB,mBAAmB,CAACH,IAAI,CAACI,SAAS,CAAC,EAAEJ,IAAI,CAAC;IAC5D,IAAI,CAACb,OAAO,CAACmB,4BAAiB,EAAEN,IAAI,CAAC;EACvC,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEO,QAAQ,WAARA,QAAQA,CAACC,OAAuB,EAA0B;IAAA,IAAAC,MAAA;IACxD,IAAOC,QAAQ,GAA+CF,OAAO,CAA9DE,QAAQ;MAAEC,MAAM,GAAuCH,OAAO,CAApDG,MAAM;MAAEC,QAAQ,GAA6BJ,OAAO,CAA5CI,QAAQ;MAAEC,SAAS,GAAkBL,OAAO,CAAlCK,SAAS;MAAEC,YAAY,GAAIN,OAAO,CAAvBM,YAAY;IAE1D,IAAMC,OAAO,GAAG,IAAI,CAACC,MAAM,CAACC,cAAc;IAC1C,IAAMb,SAAS,GAAGc,aAAI,CAACC,EAAE,CAAC,CAAC;IAC3B,IAAMC,SAAS,GAAG,IAAI,CAACjB,mBAAmB,CAACC,SAAS,CAAC;IACrD,IAAMiB,MAAM,GAAG,CAAC,CAAC;IACjB,IAAIC,eAAyB;IAC7B,IAAIC,aAAwB;IAE5B,OAAO,IAAA9C,QAAA,CAAAvB,OAAA,CAAY,UAAC2B,OAAO,EAAEH,MAAM,EAAK;MACtC,IAAM8C,KAAK,GAAG,IAAIC,mBAAK,CAAC,YAAM;QAC5BhB,MAAI,CAACiB,aAAa,CAACjB,MAAI,EAAEW,SAAS,CAAC;QACnC1C,MAAM,CAAC,IAAIiD,0BAAe,CAAC;UAACvB,SAAS,EAATA,SAAS;UAAEW,OAAO,EAAPA,OAAO;UAAEL,QAAQ,EAARA,QAAQ;UAAEC,MAAM,EAANA;QAAM,CAAC,CAAC,CAAC;MACrE,CAAC,EAAEI,OAAO,CAAC;MAEXN,MAAI,CAACmB,QAAQ,CAACnB,MAAI,EAAEW,SAAS,EAAE,UAACpB,IAAI,EAAK;QACvCwB,KAAK,CAACK,KAAK,CAAC,CAAC;QACb,IAAMC,UAAU,GAAG,IAAAC,WAAG,EAAC/B,IAAI,EAAEY,QAAQ,EAAE,EAAE,CAAC;QAC1C,IAAIoB,KAAK;QAET,IAAInB,SAAS,EAAE;UACbmB,KAAK,GAAG,IAAAD,WAAG,EAAC/B,IAAI,EAAEa,SAAS,EAAE,EAAE,CAAC;QAClC;QACAQ,MAAM,CAACrB,IAAI,CAACiC,QAAQ,CAAC,GAAGpB,SAAS,GAAG;UAACiB,UAAU,EAAVA,UAAU;UAAEE,KAAK,EAALA;QAAK,CAAC,GAAG;UAACF,UAAU,EAAVA;QAAU,CAAC;QAEtE,IAAI9B,IAAI,CAACkC,QAAQ,EAAE;UACjBZ,eAAe,GAAG,IAAAa,aAAK,EAACnC,IAAI,CAACiC,QAAQ,GAAG,CAAC,CAAC,CAACG,GAAG,CAACC,MAAM,CAAC;UACtD,IAAIvB,YAAY,EAAE;YAChBS,aAAa,GAAG,IAAAQ,WAAG,EAAC/B,IAAI,EAAEc,YAAY,EAAE,EAAE,CAAC;UAC7C;QACF;QAEA,IAAMwB,IAAI,GAAG,IAAAC,eAAO,EAACjB,eAAe,EAAE,IAAAkB,KAAA,CAAAtF,OAAA,EAAYmE,MAAM,CAAC,CAAC;QAE1D,IAAIiB,IAAI,EAAE;UACRd,KAAK,CAACiB,MAAM,CAAC,CAAC;UAEd,IAAMC,WAAkB,GAAG,EAAE;UAC7B,IAAMC,UAAiB,GAAG,EAAE;UAE5BrB,eAAe,CAACtE,OAAO,CAAC,UAAC4F,KAAK,EAAK;YACjC,IAAMC,SAAS,GAAGxB,MAAM,CAACuB,KAAK,CAAC;YAE/B,IAAIC,SAAS,EAAE;cACbH,WAAW,CAAChG,IAAI,CAAAC,KAAA,CAAhB+F,WAAW,MAAAI,mBAAA,CAAA5F,OAAA,EAAS2F,SAAS,CAACf,UAAU,EAAC;cACzC,IAAIjB,SAAS,EAAE;gBACb8B,UAAU,CAACjG,IAAI,CAAAC,KAAA,CAAfgG,UAAU,MAAAG,mBAAA,CAAA5F,OAAA,EAAS2F,SAAS,CAACb,KAAK,EAAC;cACrC;YACF;UACF,CAAC,CAAC;UACF,IAAMe,YAA2B,GAAG;YAClCL,WAAW,EAAXA;UACF,CAAC;UAED,IAAI7B,SAAS,EAAE;YACbkC,YAAY,CAACJ,UAAU,GAAGA,UAAU;UACtC;UACA,IAAI7B,YAAY,EAAE;YAChBiC,YAAY,CAACxB,aAAa,GAAGA,aAAa;UAC5C;UACA1C,OAAO,CAACkE,YAAY,CAAC;UACrBtC,MAAI,CAACiB,aAAa,CAACjB,MAAI,EAAEW,SAAS,CAAC;QACrC;MACF,CAAC,CAAC;MACFX,MAAI,CAACpC,KAAK,CAAC2E,OAAO,CAAC;QACjBC,OAAO,EAAEC,2BAAgB;QACzBxC,QAAQ,EAARA,QAAQ;QACRyC,MAAM,EAAE,MAAM;QACdC,WAAW,EAAE,kBAAkB;QAC/BC,IAAI,EAAAzG,aAAA;UAAGwD,SAAS,EAATA;QAAS,GAAKO,MAAM;MAC7B,CAAC,CAAC;MACFa,KAAK,CAAC8B,KAAK,CAAC,CAAC;IACf,CAAC,CAAC;EACJ,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACEC,cAAc,WAAdA,cAAcA,CAAC/C,OAAuB,EAAE;IACtC,IAAOE,QAAQ,GAAiBF,OAAO,CAAhCE,QAAQ;MAAE8C,WAAW,GAAIhD,OAAO,CAAtBgD,WAAW;IAC5B,IAAM5C,QAAQ,GAAG6C,2BAAgB;IACjC,IAAMC,iBAAiB,GAAGC,4BAAiB;IAC3C,IAAMC,oBAAoB,GAAGC,gCAAqB;IAClD,IAAMC,UAAU,GAAGC,6BAAkB;IAErC,IAAI,CAAC7F,QAAQ,CAACwC,QAAQ,CAAC,GACrB,IAAI,CAACxC,QAAQ,CAACwC,QAAQ,CAAC,IACvB,IAAIsD,mBAAU,CAAC;MACbtD,QAAQ,EAARA,QAAQ;MACRE,QAAQ,EAARA,QAAQ;MACR8C,iBAAiB,EAAjBA,iBAAiB;MACjBE,oBAAoB,EAApBA,oBAAoB;MACpBE,UAAU,EAAVA,UAAU;MACVG,MAAM,EAAE;IACV,CAAC,CAAC;IAEJ,OAAO,IAAI,CAAC/F,QAAQ,CAACwC,QAAQ,CAAC,CAACsC,OAAO,CAACQ,WAAW,CAAC;EACrD,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;AACA;EACEU,YAAY,WAAZA,YAAYA,CAAC1D,OAA4B,EAAE;IACzC,IAAO2D,EAAE,GAAI3D,OAAO,CAAb2D,EAAE;IAET,IAAMzD,QAAQ,oBAAApB,MAAA,CAAoB,IAAI,CAACjB,KAAK,CAACS,QAAQ,CAACsF,MAAM,CAACC,KAAK,gBAAA/E,MAAA,CAAa6E,EAAE,YAAS;IAE1F,OAAO,IAAI,CAAC5D,QAAQ,CAAC;MACnBK,QAAQ,EAAE6C,2BAAgB;MAC1B5C,SAAS,EAAE8C,4BAAiB;MAC5BjD,QAAQ,EAARA;IACF,CAAC,CAAC,CAACzB,IAAI,CAAC,UAAAqF,IAAA,EAA+B;MAAA,IAA7B5B,WAAW,GAAA4B,IAAA,CAAX5B,WAAW;QAAEC,UAAU,GAAA2B,IAAA,CAAV3B,UAAU;MAC/B;MACA,IAAIA,UAAU,CAAC,CAAC,CAAC,KAAKwB,EAAE,EAAE;QACxB,OAAOzB,WAAW,CAAC,CAAC,CAAC;MACvB;MAEA,OAAO,IAAI;IACb,CAAC,CAAC;EACJ,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE6B,MAAM,WAANA,MAAMA,CAAC/D,OAAsB,EAAE;IAC7B,IAAO2D,EAAE,GAA4C3D,OAAO,CAArD2D,EAAE;MAAEK,kBAAkB,GAAwBhE,OAAO,CAAjDgE,kBAAkB;MAAAC,oBAAA,GAAwBjE,OAAO,CAA7BkE,WAAW;MAAXA,WAAW,GAAAD,oBAAA,cAAG,IAAI,GAAAA,oBAAA;IAEjD,IAAM/D,QAAQ,GAAG8D,kBAAkB,oBAAAlF,MAAA,CACd,IAAI,CAACjB,KAAK,CAACS,QAAQ,CAACsF,MAAM,CAACC,KAAK,0BAAA/E,MAAA,CAAuBkF,kBAAkB,qBAAAlF,MAAA,CACzE,IAAI,CAACjB,KAAK,CAACS,QAAQ,CAACsF,MAAM,CAACC,KAAK,gBAAa;IAElE,IAAIK,WAAW,EAAE;MACf,OAAO,IAAI,CAACnB,cAAc,CAAC;QACzB7C,QAAQ,EAARA,QAAQ;QACR8C,WAAW,EAAEW;MACf,CAAC,CAAC;IACJ;IAEA,OAAO,IAAI,CAAC5D,QAAQ,CAAC;MACnBK,QAAQ,EAAE6C,2BAAgB;MAC1B5C,SAAS,EAAE8C,4BAAiB;MAC5BjD,QAAQ,EAARA,QAAQ;MACRC,MAAM,MAAA1D,gBAAA,CAAAC,OAAA,MACH6G,6BAAkB,EAAG,CAACI,EAAE,CAAC;IAE9B,CAAC,CAAC,CAAClF,IAAI,CAAC,UAAA0F,KAAA,EAA+B;MAAA,IAA7BjC,WAAW,GAAAiC,KAAA,CAAXjC,WAAW;QAAEC,UAAU,GAAAgC,KAAA,CAAVhC,UAAU;MAC/B,IAAIA,UAAU,CAAC,CAAC,CAAC,KAAKwB,EAAE,EAAE;QACxB,OAAOzB,WAAW,CAAC,CAAC,CAAC;MACvB;MAEA,OAAO,IAAI;IACb,CAAC,CAAC;EACJ,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;AACA;EACEkC,aAAa,WAAbA,aAAaA,CAACpE,OAA6B,EAAE;IAC3C,IAAOqE,KAAK,GAAIrE,OAAO,CAAhBqE,KAAK;IACZ,IAAMnE,QAAQ,oBAAApB,MAAA,CAAoB,IAAI,CAACjB,KAAK,CAACS,QAAQ,CAACsF,MAAM,CAACC,KAAK,YAAS;IAE3E,OAAO,IAAI,CAAC9D,QAAQ,CAAC;MACnBK,QAAQ,EAAE6C,2BAAgB;MAC1B5C,SAAS,EAAE8C,4BAAiB;MAC5BjD,QAAQ,EAARA,QAAQ;MACRC,MAAM,MAAA1D,gBAAA,CAAAC,OAAA,MACH6G,6BAAkB,EAAG,CAACc,KAAK,CAAC;IAEjC,CAAC,CAAC,CAAC5F,IAAI,CAAC,UAAA6F,KAAA,EAA+B;MAAA,IAA7BpC,WAAW,GAAAoC,KAAA,CAAXpC,WAAW;QAAEC,UAAU,GAAAmC,KAAA,CAAVnC,UAAU;MAC/B,IAAIA,UAAU,CAAC,CAAC,CAAC,KAAKkC,KAAK,EAAE;QAC3B,OAAOnC,WAAW,CAAC,CAAC,CAAC;MACvB;MAEA,OAAO,IAAI;IACb,CAAC,CAAC;EACJ,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEqC,oBAAoB,WAApBA,oBAAoBA,CAACC,YAAsB,EAA0B;IAAA,IAAAC,MAAA;IACnE,IAAI,CAACD,YAAY,IAAIA,YAAY,CAAClI,MAAM,KAAK,CAAC,EAAE;MAC9C,OAAO2B,QAAA,CAAAvB,OAAA,CAAQ2B,OAAO,CAAC;QAAC6D,WAAW,EAAE,EAAE;QAAEC,UAAU,EAAE,EAAE;QAAEpB,aAAa,EAAE;MAAE,CAAC,CAAC;IAC9E;IAEA,IAAIyD,YAAY,CAAClI,MAAM,GAAG,CAAC,EAAE;MAC3B,IAAI,CAACyB,MAAM,CAACC,KAAK,mFAAAc,MAAA,CACmE0F,YAAY,CAAClI,MAAM,CACvG,CAAC;MAED,OAAO2B,QAAA,CAAAvB,OAAA,CAAQwB,MAAM,CACnB,IAAIC,KAAK,yEAAAW,MAAA,CACiE0F,YAAY,CAAClI,MAAM,0DAC7F,CACF,CAAC;IACH;IAEA,IAAM4D,QAAQ,oBAAApB,MAAA,CAAoB,IAAI,CAACjB,KAAK,CAACS,QAAQ,CAACsF,MAAM,CAACC,KAAK,kBAAe;IAEjF,OAAO,IAAI,CAAC9D,QAAQ,CAAC;MACnBK,QAAQ,EAAE6C,2BAAgB;MAC1B5C,SAAS,EAAE8C,4BAAiB;MAC5B7C,YAAY,EAAE+C,gCAAqB;MACnCnD,QAAQ,EAARA,QAAQ;MACRC,MAAM,MAAA1D,gBAAA,CAAAC,OAAA,MACH6G,6BAAkB,EAAGiB,YAAY;IAEtC,CAAC,CAAC,CAAC3F,KAAK,CAAC,UAACb,KAAK,EAAK;MAClByG,MAAI,CAAC1G,MAAM,CAACC,KAAK,kEAAAc,MAAA,CACkDd,KAAK,CAACe,OAAO,CAChF,CAAC;MAED,OAAOd,QAAA,CAAAvB,OAAA,CAAQwB,MAAM,CAACF,KAAK,CAAC;IAC9B,CAAC,CAAC;EACJ,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE0G,MAAM,WAANA,MAAMA,CAAC1E,OAAsB,EAAE;IAC7B,IACE2E,cAAc,GAMZ3E,OAAO,CANT2E,cAAc;MACdC,UAAU,GAKR5E,OAAO,CALT4E,UAAU;MACVC,WAAW,GAIT7E,OAAO,CAJT6E,WAAW;MACXC,uBAAuB,GAGrB9E,OAAO,CAHT8E,uBAAuB;MACvBC,0BAA0B,GAExB/E,OAAO,CAFT+E,0BAA0B;MAC1BC,sBAAsB,GACpBhF,OAAO,CADTgF,sBAAsB;IAGxB,OAAO,IAAI,CAACjF,QAAQ,CAAC;MACnBK,QAAQ,EAAE6E,2BAAgB;MAC1B/E,QAAQ,mBAAApB,MAAA,CAAmB,IAAI,CAACjB,KAAK,CAACS,QAAQ,CAACsF,MAAM,CAACC,KAAK,cAAW;MACtE1D,MAAM,EAAE;QACN0E,WAAW,EAAXA,WAAW;QACXD,UAAU,EAAVA,UAAU;QACVD,cAAc,EAAdA,cAAc;QACdG,uBAAuB,EAAvBA,uBAAuB;QACvBC,0BAA0B,EAA1BA,0BAA0B;QAC1BC,sBAAsB,EAAtBA;MACF;IACF,CAAC,CAAC,CAACvG,IAAI,CAAC,UAAAyG,KAAA;MAAA,IAAEhD,WAAW,GAAAgD,KAAA,CAAXhD,WAAW;MAAA,OAAMA,WAAW;IAAA,EAAC;EACzC,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;AACA;EACEiD,YAAY,WAAZA,YAAYA,CAACnF,OAA2B,EAAE;IAAA,IAAAoF,MAAA;IACxC,IAAOR,UAAU,GAAyC5E,OAAO,CAA1D4E,UAAU;MAAEC,WAAW,GAA4B7E,OAAO,CAA9C6E,WAAW;MAAEQ,sBAAsB,GAAIrF,OAAO,CAAjCqF,sBAAsB;IAEtD,OAAO,IAAI,CAACtF,QAAQ,CAAC;MACnBK,QAAQ,EAAE,mBAAmB;MAC7BF,QAAQ,mBAAApB,MAAA,CAAmB,IAAI,CAACjB,KAAK,CAACS,QAAQ,CAACsF,MAAM,CAACC,KAAK,YAAS;MACpE1D,MAAM,EAAE;QACN0E,WAAW,EAAXA,WAAW;QACXD,UAAU,EAAVA,UAAU;QACVS,sBAAsB,EAAtBA;MACF;IACF,CAAC,CAAC,CAACxG,KAAK,CAAC,UAACb,KAAK,EAAK;MAClBoH,MAAI,CAACrH,MAAM,CAACC,KAAK,mDAAAc,MAAA,CAAmDd,KAAK,CAACe,OAAO,CAAE,CAAC;MAEpF,OAAOd,QAAA,CAAAvB,OAAA,CAAQwB,MAAM,CAACF,KAAK,CAAC;IAC9B,CAAC,CAAC;EACJ,CAAC;EAAAsH,OAAA;AACH,CAAC,CAAC;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAA9I,OAAA,GAEYI,GAAG","ignoreList":[]}
1
+ {"version":3,"names":["_uuid","_interopRequireDefault","require","_webexCore","_lodash","_commonTimers","_constants","_dssBatcher","_dssErrors","ownKeys","e","r","t","_Object$keys2","_Object$getOwnPropertySymbols","o","filter","_Object$getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","Object","forEach","_defineProperty2","default","_Object$getOwnPropertyDescriptors","_Object$defineProperties","_Object$defineProperty","DSS","WebexPlugin","extend","namespace","registered","initialize","_len","args","Array","_key","_apply","prototype","batchers","register","_this","webex","canAuthorize","logger","error","_promise","reject","Error","info","resolve","internal","mercury","connect","then","listenForEvents","trigger","DSS_REGISTERED","catch","concat","message","unregister","_this2","stopListeningForEvents","disconnect","DSS_UNREGISTERED","_this3","on","DSS_LOOKUP_MERCURY_EVENT","envelope","_handleEvent","data","DSS_SEARCH_MERCURY_EVENT","off","_getResultEventName","requestId","DSS_RESULT","DSS_LOOKUP_RESULT","_request","options","_this4","resource","params","dataPath","foundPath","notFoundPath","timeout","config","requestTimeout","uuid","v4","eventName","result","expectedSeqNums","notFoundArray","timer","Timer","stopListening","DssTimeoutError","listenTo","reset","resultData","get","found","sequence","finished","range","map","String","done","isEqual","_keys","cancel","resultArray","foundArray","index","seqResult","_toConsumableArray2","resolveValue","request","service","DSS_SERVICE_NAME","method","contentType","body","start","_batchedLookup","lookupValue","LOOKUP_DATA_PATH","entitiesFoundPath","LOOKUP_FOUND_PATH","entitiesNotFoundPath","LOOKUP_NOT_FOUND_PATH","requestKey","LOOKUP_REQUEST_KEY","DssBatcher","parent","lookupDetail","id","device","orgId","_ref","lookup","entityProviderType","_options$shouldBatch","shouldBatch","_ref2","lookupByEmail","email","_ref3","lookupByPhoneNumbers","phoneNumbers","_this5","search","requestedTypes","resultSize","queryString","includeCommonAreaPhones","includeOnlyPairableDevices","includePersonalDevices","SEARCH_DATA_PATH","_ref4","searchPlaces","_this6","isOnlySchedulableRooms","version","_default","exports"],"sources":["dss.ts"],"sourcesContent":["/* eslint-disable no-underscore-dangle */\n/*!\n * Copyright (c) 2015-2022 Cisco Systems, Inc. See LICENSE file.\n */\n/* eslint-disable no-underscore-dangle */\nimport uuid from 'uuid';\nimport {WebexPlugin} from '@webex/webex-core';\nimport '@webex/internal-plugin-mercury';\nimport {range, isEqual, get} from 'lodash';\n\nimport {Timer} from '@webex/common-timers';\nimport type {\n SearchOptions,\n LookupDetailOptions,\n LookupOptions,\n LookupByEmailOptions,\n SearchPlaceOptions,\n} from './types';\nimport {\n DSS_REGISTERED,\n DSS_UNREGISTERED,\n DSS_LOOKUP_MERCURY_EVENT,\n DSS_LOOKUP_RESULT,\n DSS_SERVICE_NAME,\n DSS_SEARCH_MERCURY_EVENT,\n DSS_RESULT,\n LOOKUP_DATA_PATH,\n LOOKUP_FOUND_PATH,\n LOOKUP_NOT_FOUND_PATH,\n LOOKUP_REQUEST_KEY,\n SEARCH_DATA_PATH,\n} from './constants';\nimport DssBatcher from './dss-batcher';\nimport {DssTimeoutError} from './dss-errors';\nimport {BatcherOptions, RequestOptions, RequestResult} from './types';\n\nconst DSS = WebexPlugin.extend({\n namespace: 'DSS',\n\n /**\n * registered value indicating events registration is successful\n * @instance\n * @type {Boolean}\n * @memberof DSS\n */\n registered: false,\n\n /**\n * Initializer\n * @private\n * @param {Object} attrs\n * @param {Object} options\n * @returns {undefined}\n */\n initialize(...args) {\n Reflect.apply(WebexPlugin.prototype.initialize, this, args);\n this.batchers = {};\n },\n\n /**\n * Explicitly sets up the DSS plugin by connecting to mercury, and listening for DSS events.\n * @returns {Promise}\n * @public\n * @memberof DSS\n */\n register() {\n if (!this.webex.canAuthorize) {\n this.logger.error('DSS->register#ERROR, Unable to register, SDK cannot authorize');\n\n return Promise.reject(new Error('SDK cannot authorize'));\n }\n\n if (this.registered) {\n this.logger.info('dss->register#INFO, DSS plugin already registered');\n\n return Promise.resolve();\n }\n\n return this.webex.internal.mercury\n .connect()\n .then(() => {\n this.listenForEvents();\n this.trigger(DSS_REGISTERED);\n this.registered = true;\n })\n .catch((error) => {\n this.logger.error(`DSS->register#ERROR, Unable to register, ${error.message}`);\n\n return Promise.reject(error);\n });\n },\n\n /**\n * Explicitly tears down the DSS plugin by disconnecting from mercury, and stops listening to DSS events\n * @returns {Promise}\n * @public\n * @memberof DSS\n */\n unregister() {\n if (!this.registered) {\n this.logger.info('DSS->unregister#INFO, DSS plugin already unregistered');\n\n return Promise.resolve();\n }\n\n this.stopListeningForEvents();\n\n return this.webex.internal.mercury.disconnect().then(() => {\n this.trigger(DSS_UNREGISTERED);\n this.registered = false;\n });\n },\n\n /**\n * registers for DSS events through mercury\n * @returns {undefined}\n * @private\n */\n listenForEvents() {\n this.webex.internal.mercury.on(DSS_LOOKUP_MERCURY_EVENT, (envelope) => {\n this._handleEvent(envelope.data);\n });\n this.webex.internal.mercury.on(DSS_SEARCH_MERCURY_EVENT, (envelope) => {\n this._handleEvent(envelope.data);\n });\n },\n\n /**\n * unregisteres all the DSS events from mercury\n * @returns {undefined}\n * @private\n */\n stopListeningForEvents() {\n this.webex.internal.mercury.off(DSS_LOOKUP_MERCURY_EVENT);\n this.webex.internal.mercury.off(DSS_SEARCH_MERCURY_EVENT);\n },\n\n /**\n * constructs the event name based on request id\n * @param {UUID} requestId the id of the request\n * @returns {string}\n */\n _getResultEventName(requestId) {\n return `${DSS_RESULT}${requestId}`;\n },\n\n /**\n * Takes incoming data and triggers correct events\n * @param {Object} data the event data\n * @returns {undefined}\n */\n _handleEvent(data) {\n this.trigger(this._getResultEventName(data.requestId), data);\n this.trigger(DSS_LOOKUP_RESULT, data);\n },\n\n /**\n * Makes the request to the directory service\n * @param {Object} options\n * @param {string} options.resource the URL to query\n * @param {Mixed} options.params additional params for the body of the request\n * @param {string} options.dataPath the path to get the data in the result object\n * @param {string} [options.foundPath] the path to get the lookups of the found data\n * @param {string} [options.notFoundPath] the path to get the lookups of the not found data\n * @returns {Promise<Object>} result Resolves with an object\n * @returns {Array} result.resultArray an array of entities found\n * @returns {Array} result.foundArray an array of the lookups of the found entities (if foundPath provided)\n * @returns {Array} result.notFoundArray an array of the lookups of the not found entities (if notFoundPath provided)\n * @throws {DssTimeoutError} when server does not respond in the specified timeframe\n */\n _request(options: RequestOptions): Promise<RequestResult> {\n const {resource, params, dataPath, foundPath, notFoundPath} = options;\n\n const timeout = this.config.requestTimeout;\n const requestId = uuid.v4();\n const eventName = this._getResultEventName(requestId);\n const result = {};\n let expectedSeqNums: string[];\n let notFoundArray: unknown[];\n\n return new Promise((resolve, reject) => {\n const timer = new Timer(() => {\n this.stopListening(this, eventName);\n reject(new DssTimeoutError({requestId, timeout, resource, params}));\n }, timeout);\n\n this.listenTo(this, eventName, (data) => {\n timer.reset();\n const resultData = get(data, dataPath, []);\n let found;\n\n if (foundPath) {\n found = get(data, foundPath, []);\n }\n result[data.sequence] = foundPath ? {resultData, found} : {resultData};\n\n if (data.finished) {\n expectedSeqNums = range(data.sequence + 1).map(String);\n if (notFoundPath) {\n notFoundArray = get(data, notFoundPath, []);\n }\n }\n\n const done = isEqual(expectedSeqNums, Object.keys(result));\n\n if (done) {\n timer.cancel();\n\n const resultArray: any[] = [];\n const foundArray: any[] = [];\n\n expectedSeqNums.forEach((index) => {\n const seqResult = result[index];\n\n if (seqResult) {\n resultArray.push(...seqResult.resultData);\n if (foundPath) {\n foundArray.push(...seqResult.found);\n }\n }\n });\n const resolveValue: RequestResult = {\n resultArray,\n };\n\n if (foundPath) {\n resolveValue.foundArray = foundArray;\n }\n if (notFoundPath) {\n resolveValue.notFoundArray = notFoundArray;\n }\n resolve(resolveValue);\n this.stopListening(this, eventName);\n }\n });\n this.webex.request({\n service: DSS_SERVICE_NAME,\n resource,\n method: 'POST',\n contentType: 'application/json',\n body: {requestId, ...params},\n });\n timer.start();\n });\n },\n\n /**\n * Uses a batcher to make the request to the directory service\n * @param {Object} options\n * @param {string} options.resource the URL to query\n * @param {string} options.value the id or email to lookup\n * @returns {Promise} Resolves with an array of entities found\n * @throws {DssTimeoutError} when server does not respond in the specified timeframe\n */\n _batchedLookup(options: BatcherOptions) {\n const {resource, lookupValue} = options;\n const dataPath = LOOKUP_DATA_PATH;\n const entitiesFoundPath = LOOKUP_FOUND_PATH;\n const entitiesNotFoundPath = LOOKUP_NOT_FOUND_PATH;\n const requestKey = LOOKUP_REQUEST_KEY;\n\n this.batchers[resource] =\n this.batchers[resource] ||\n new DssBatcher({\n resource,\n dataPath,\n entitiesFoundPath,\n entitiesNotFoundPath,\n requestKey,\n parent: this,\n });\n\n return this.batchers[resource].request(lookupValue);\n },\n\n /**\n * Retrieves detailed information about an entity\n * @param {Object} options\n * @param {UUID} options.id the id of the entity to lookup\n * @returns {Promise} Resolves with the entity found or null if not found\n * @throws {DssTimeoutError} when server does not respond in the specified timeframe\n */\n lookupDetail(options: LookupDetailOptions) {\n const {id} = options;\n\n const resource = `/lookup/orgid/${this.webex.internal.device.orgId}/identity/${id}/detail`;\n\n return this._request({\n dataPath: LOOKUP_DATA_PATH,\n foundPath: LOOKUP_FOUND_PATH,\n resource,\n }).then(({resultArray, foundArray}) => {\n // TODO: find out what is actually returned!\n if (foundArray[0] === id) {\n return resultArray[0];\n }\n\n return null;\n });\n },\n\n /**\n * Retrieves basic information about an entity within an organization\n * @param {Object} options\n * @param {UUID} options.id the id of the entity to lookup\n * @param {UUID} [options.entityProviderType] the provider to query\n * @param {Boolean} options.shouldBatch whether to batch the query, set to false for single immediate result (defaults to true)\n * @returns {Promise} Resolves with the entity found or null if not found\n * @throws {DssTimeoutError} when server does not respond in the specified timeframe\n */\n lookup(options: LookupOptions) {\n const {id, entityProviderType, shouldBatch = true} = options;\n\n const resource = entityProviderType\n ? `/lookup/orgid/${this.webex.internal.device.orgId}/entityprovidertype/${entityProviderType}`\n : `/lookup/orgid/${this.webex.internal.device.orgId}/identities`;\n\n if (shouldBatch) {\n return this._batchedLookup({\n resource,\n lookupValue: id,\n });\n }\n\n return this._request({\n dataPath: LOOKUP_DATA_PATH,\n foundPath: LOOKUP_FOUND_PATH,\n resource,\n params: {\n [LOOKUP_REQUEST_KEY]: [id],\n },\n }).then(({resultArray, foundArray}) => {\n if (foundArray[0] === id) {\n return resultArray[0];\n }\n\n return null;\n });\n },\n\n /**\n * Retrieves basic information about an enitity within an organization\n * @param {Object} options\n * @param {UUID} options.email the email of the entity to lookup\n * @returns {Promise} Resolves with the entity found or rejects if not found\n * @throws {DssTimeoutError} when server does not respond in the specified timeframe\n */\n lookupByEmail(options: LookupByEmailOptions) {\n const {email} = options;\n const resource = `/lookup/orgid/${this.webex.internal.device.orgId}/emails`;\n\n return this._request({\n dataPath: LOOKUP_DATA_PATH,\n foundPath: LOOKUP_FOUND_PATH,\n resource,\n params: {\n [LOOKUP_REQUEST_KEY]: [email],\n },\n }).then(({resultArray, foundArray}) => {\n if (foundArray[0] === email) {\n return resultArray[0];\n }\n\n return null;\n });\n },\n\n /**\n * Retrieves basic information about entities by phone numbers within an organization.\n * Supports up to 5 phone numbers per request. For larger batches, client should chunk\n * requests into groups of 5.\n * @param {string[]} phoneNumbers - Array of phone numbers to lookup in E.164 format (max 5)\n * @returns {Promise<RequestResult>} Resolves with object containing:\n * - resultArray: Array of matched entities\n * - foundArray: Array of phone numbers that were found\n * - notFoundArray: Array of phone numbers that were not found\n * @throws {Error} When more than 5 phone numbers provided\n * @throws {DssTimeoutError} When server does not respond in the specified timeframe\n * @example\n * const result = await webex.internal.dss.lookupByPhoneNumbers(['+15551234567']);\n * console.log('Found:', result.foundArray);\n * console.log('Entities:', result.resultArray);\n */\n lookupByPhoneNumbers(phoneNumbers: string[]): Promise<RequestResult> {\n if (!phoneNumbers || phoneNumbers.length === 0) {\n return Promise.resolve({resultArray: [], foundArray: [], notFoundArray: []});\n }\n\n if (phoneNumbers.length > 5) {\n this.logger.error(\n `DSS->lookupByPhoneNumbers#ERROR, Maximum of 5 phone numbers allowed, received: ${phoneNumbers.length}`\n );\n\n return Promise.reject(\n new Error(\n `lookupByPhoneNumbers accepts a maximum of 5 phone numbers. Received: ${phoneNumbers.length}. Please batch requests on the client side if needed.`\n )\n );\n }\n\n const resource = `/lookup/orgid/${this.webex.internal.device.orgId}/phonenumbers`;\n\n return this._request({\n dataPath: LOOKUP_DATA_PATH,\n foundPath: LOOKUP_FOUND_PATH,\n notFoundPath: LOOKUP_NOT_FOUND_PATH,\n resource,\n params: {\n [LOOKUP_REQUEST_KEY]: phoneNumbers,\n },\n }).catch((error) => {\n this.logger.error(\n `DSS->lookupByPhoneNumbers#ERROR, Phone number lookup failure, ${error.message}`\n );\n\n return Promise.reject(error);\n });\n },\n\n /**\n * Search for information about entities\n * @param {Object} options\n * @param {SearchType[]} options.requestedTypes an array of search types from: PERSON, CALLING_SERVICE, EXTERNAL_CALLING, ROOM, ROBOT\n * @param {string[]} options.queryString A query string that will be transformed into a Directory search filter query. It is used to search the following fields: username, givenName, familyName, displayName and email\n * @param {number} options.resultSize The maximum number of results returned from each provider\n * @param {boolean} options.includePersonalDevices If true, includes personal devices associated with users in the search results.\n * @param {boolean} options.includeCommonAreaPhones If true, includes common area phones in the search results.\n * @param {boolean} options.includeOnlyPairableDevices If true, include the devices that are pairable in the search results.\n * @returns {Promise} Resolves with an array of entities found\n * @throws {DssTimeoutError} when server does not respond in the specified timeframe\n */\n search(options: SearchOptions) {\n const {\n requestedTypes,\n resultSize,\n queryString,\n includeCommonAreaPhones,\n includeOnlyPairableDevices,\n includePersonalDevices,\n } = options;\n\n return this._request({\n dataPath: SEARCH_DATA_PATH,\n resource: `/search/orgid/${this.webex.internal.device.orgId}/entities`,\n params: {\n queryString,\n resultSize,\n requestedTypes,\n includeCommonAreaPhones,\n includeOnlyPairableDevices,\n includePersonalDevices,\n },\n }).then(({resultArray}) => resultArray);\n },\n\n /**\n * Search for information about places\n * @param {Object} options\n * @param {string} options.queryString A query string that will be transformed into a Directory search filter query. It is used to search the following fields: placeName, displayName.\n * @param {number} options.resultSize The maximum number of results returned from each provider\n * @returns {Promise} Resolves with an array of entities found\n */\n searchPlaces(options: SearchPlaceOptions) {\n const {resultSize, queryString, isOnlySchedulableRooms} = options;\n\n return this._request({\n dataPath: 'directoryEntities',\n resource: `/search/orgid/${this.webex.internal.device.orgId}/places`,\n params: {\n queryString,\n resultSize,\n isOnlySchedulableRooms,\n },\n }).catch((error) => {\n this.logger.error(`DSS->search place#ERROR, search place failure, ${error.message}`);\n\n return Promise.reject(error);\n });\n },\n});\n\nexport default DSS;\n"],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -20,10 +20,10 @@
20
20
  ]
21
21
  },
22
22
  "dependencies": {
23
- "@webex/common": "3.11.0-next.1",
24
- "@webex/common-timers": "3.11.0-next.1",
25
- "@webex/internal-plugin-mercury": "3.12.0-next.8",
26
- "@webex/webex-core": "3.12.0-next.7",
23
+ "@webex/common": "3.12.0-task-refactor.1",
24
+ "@webex/common-timers": "3.12.0-task-refactor.1",
25
+ "@webex/internal-plugin-mercury": "3.12.0-task-refactor.1",
26
+ "@webex/webex-core": "3.12.0-task-refactor.1",
27
27
  "lodash": "^4.17.21",
28
28
  "uuid": "^3.3.2"
29
29
  },
@@ -33,9 +33,9 @@
33
33
  "@webex/eslint-config-legacy": "0.0.0",
34
34
  "@webex/jest-config-legacy": "0.0.0",
35
35
  "@webex/legacy-tools": "0.0.0",
36
- "@webex/test-helper-chai": "3.11.0-next.1",
37
- "@webex/test-helper-mock-webex": "3.11.0-next.1",
38
- "@webex/test-helper-test-users": "3.11.0-next.1",
36
+ "@webex/test-helper-chai": "3.12.0-task-refactor.1",
37
+ "@webex/test-helper-mock-webex": "3.12.0-task-refactor.1",
38
+ "@webex/test-helper-test-users": "3.12.0-task-refactor.1",
39
39
  "eslint": "^8.24.0",
40
40
  "prettier": "^2.7.1",
41
41
  "sinon": "^9.2.4"
@@ -49,5 +49,5 @@
49
49
  "test:style": "eslint ./src/**/*.*",
50
50
  "test:unit": "webex-legacy-tools test --unit --runner jest"
51
51
  },
52
- "version": "3.12.0-next.8"
52
+ "version": "3.12.0-task-refactor.1"
53
53
  }
package/src/dss.ts CHANGED
@@ -105,10 +105,10 @@ const DSS = WebexPlugin.extend({
105
105
 
106
106
  this.stopListeningForEvents();
107
107
 
108
- this.trigger(DSS_UNREGISTERED);
109
- this.registered = false;
110
-
111
- return Promise.resolve();
108
+ return this.webex.internal.mercury.disconnect().then(() => {
109
+ this.trigger(DSS_UNREGISTERED);
110
+ this.registered = false;
111
+ });
112
112
  },
113
113
 
114
114
  /**
@@ -764,18 +764,12 @@ describe('plugin-dss', () => {
764
764
  const PHONE_1 = '+15551234567';
765
765
  const PHONE_2 = '+442012345678';
766
766
  const PHONE_3 = '+33123456789';
767
- const PHONE_BATCH = [
768
- '+15551111111',
769
- '+15552222222',
770
- '+15553333333',
771
- '+15554444444',
772
- '+15555555555',
773
- ];
774
-
767
+ const PHONE_BATCH = ['+15551111111', '+15552222222', '+15553333333', '+15554444444', '+15555555555'];
768
+
775
769
  const ENTITY_1 = {id: 'user1', displayName: 'John Doe', phoneNumbers: [PHONE_1]};
776
770
  const ENTITY_2 = {id: 'user2', displayName: 'Jane Smith', phoneNumbers: [PHONE_2]};
777
771
  const ENTITY_3 = {id: 'user3', phoneNumbers: [PHONE_3]};
778
-
772
+
779
773
  const EMPTY_RESULT = {
780
774
  resultArray: [],
781
775
  foundArray: [],
@@ -824,7 +818,7 @@ describe('plugin-dss', () => {
824
818
 
825
819
  it('works correctly with multiple phone numbers, some found', async () => {
826
820
  const phoneNumbers = [PHONE_1, PHONE_2, PHONE_3];
827
-
821
+
828
822
  const {requestId, promise} = await testMakeRequest({
829
823
  method: 'lookupByPhoneNumbers',
830
824
  resource: '/lookup/orgid/userOrgId/phonenumbers',
@@ -850,7 +844,7 @@ describe('plugin-dss', () => {
850
844
 
851
845
  it('works correctly with all phone numbers not found', async () => {
852
846
  const phoneNumbers = [PHONE_1, PHONE_2];
853
-
847
+
854
848
  const {requestId, promise} = await testMakeRequest({
855
849
  method: 'lookupByPhoneNumbers',
856
850
  resource: '/lookup/orgid/userOrgId/phonenumbers',
@@ -983,7 +977,7 @@ describe('plugin-dss', () => {
983
977
 
984
978
  it('fails with timeout when request only partially resolved', async () => {
985
979
  const phoneNumbers = [PHONE_1, PHONE_2];
986
-
980
+
987
981
  const {requestId, promise} = await testMakeRequest({
988
982
  method: 'lookupByPhoneNumbers',
989
983
  resource: '/lookup/orgid/userOrgId/phonenumbers',