@webex/webex-core 2.59.3-next.1 → 2.59.4

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 (189) hide show
  1. package/.eslintrc.js +6 -6
  2. package/README.md +79 -79
  3. package/babel.config.js +3 -3
  4. package/dist/config.js +24 -24
  5. package/dist/config.js.map +1 -1
  6. package/dist/credentials-config.js +56 -56
  7. package/dist/credentials-config.js.map +1 -1
  8. package/dist/index.js.map +1 -1
  9. package/dist/interceptors/auth.js +28 -28
  10. package/dist/interceptors/auth.js.map +1 -1
  11. package/dist/interceptors/default-options.js +24 -24
  12. package/dist/interceptors/default-options.js.map +1 -1
  13. package/dist/interceptors/embargo.js +9 -9
  14. package/dist/interceptors/embargo.js.map +1 -1
  15. package/dist/interceptors/network-timing.js +19 -19
  16. package/dist/interceptors/network-timing.js.map +1 -1
  17. package/dist/interceptors/payload-transformer.js +19 -19
  18. package/dist/interceptors/payload-transformer.js.map +1 -1
  19. package/dist/interceptors/rate-limit.js +40 -40
  20. package/dist/interceptors/rate-limit.js.map +1 -1
  21. package/dist/interceptors/redirect.js +13 -13
  22. package/dist/interceptors/redirect.js.map +1 -1
  23. package/dist/interceptors/request-event.js +23 -23
  24. package/dist/interceptors/request-event.js.map +1 -1
  25. package/dist/interceptors/request-logger.js +13 -13
  26. package/dist/interceptors/request-logger.js.map +1 -1
  27. package/dist/interceptors/request-timing.js +23 -23
  28. package/dist/interceptors/request-timing.js.map +1 -1
  29. package/dist/interceptors/response-logger.js +19 -19
  30. package/dist/interceptors/response-logger.js.map +1 -1
  31. package/dist/interceptors/user-agent.js +29 -29
  32. package/dist/interceptors/user-agent.js.map +1 -1
  33. package/dist/interceptors/webex-tracking-id.js +15 -15
  34. package/dist/interceptors/webex-tracking-id.js.map +1 -1
  35. package/dist/interceptors/webex-user-agent.js +13 -13
  36. package/dist/interceptors/webex-user-agent.js.map +1 -1
  37. package/dist/lib/batcher.js +83 -83
  38. package/dist/lib/batcher.js.map +1 -1
  39. package/dist/lib/credentials/credentials.js +103 -103
  40. package/dist/lib/credentials/credentials.js.map +1 -1
  41. package/dist/lib/credentials/grant-errors.js +17 -17
  42. package/dist/lib/credentials/grant-errors.js.map +1 -1
  43. package/dist/lib/credentials/index.js +2 -2
  44. package/dist/lib/credentials/index.js.map +1 -1
  45. package/dist/lib/credentials/scope.js +11 -11
  46. package/dist/lib/credentials/scope.js.map +1 -1
  47. package/dist/lib/credentials/token-collection.js +2 -2
  48. package/dist/lib/credentials/token-collection.js.map +1 -1
  49. package/dist/lib/credentials/token.js +145 -145
  50. package/dist/lib/credentials/token.js.map +1 -1
  51. package/dist/lib/page.js +49 -49
  52. package/dist/lib/page.js.map +1 -1
  53. package/dist/lib/services/constants.js.map +1 -1
  54. package/dist/lib/services/index.js +2 -2
  55. package/dist/lib/services/index.js.map +1 -1
  56. package/dist/lib/services/interceptors/server-error.js +9 -9
  57. package/dist/lib/services/interceptors/server-error.js.map +1 -1
  58. package/dist/lib/services/interceptors/service.js +24 -24
  59. package/dist/lib/services/interceptors/service.js.map +1 -1
  60. package/dist/lib/services/metrics.js.map +1 -1
  61. package/dist/lib/services/service-catalog.js +104 -104
  62. package/dist/lib/services/service-catalog.js.map +1 -1
  63. package/dist/lib/services/service-fed-ramp.js.map +1 -1
  64. package/dist/lib/services/service-host.js +134 -134
  65. package/dist/lib/services/service-host.js.map +1 -1
  66. package/dist/lib/services/service-registry.js +175 -175
  67. package/dist/lib/services/service-registry.js.map +1 -1
  68. package/dist/lib/services/service-state.js +38 -38
  69. package/dist/lib/services/service-state.js.map +1 -1
  70. package/dist/lib/services/service-url.js +31 -31
  71. package/dist/lib/services/service-url.js.map +1 -1
  72. package/dist/lib/services/services.js +245 -245
  73. package/dist/lib/services/services.js.map +1 -1
  74. package/dist/lib/stateless-webex-plugin.js +28 -28
  75. package/dist/lib/stateless-webex-plugin.js.map +1 -1
  76. package/dist/lib/storage/decorators.js +27 -27
  77. package/dist/lib/storage/decorators.js.map +1 -1
  78. package/dist/lib/storage/errors.js +4 -4
  79. package/dist/lib/storage/errors.js.map +1 -1
  80. package/dist/lib/storage/index.js.map +1 -1
  81. package/dist/lib/storage/make-webex-plugin-store.js +44 -44
  82. package/dist/lib/storage/make-webex-plugin-store.js.map +1 -1
  83. package/dist/lib/storage/make-webex-store.js +40 -40
  84. package/dist/lib/storage/make-webex-store.js.map +1 -1
  85. package/dist/lib/storage/memory-store-adapter.js +9 -9
  86. package/dist/lib/storage/memory-store-adapter.js.map +1 -1
  87. package/dist/lib/webex-core-plugin-mixin.js +13 -13
  88. package/dist/lib/webex-core-plugin-mixin.js.map +1 -1
  89. package/dist/lib/webex-http-error.js +9 -9
  90. package/dist/lib/webex-http-error.js.map +1 -1
  91. package/dist/lib/webex-internal-core-plugin-mixin.js +13 -13
  92. package/dist/lib/webex-internal-core-plugin-mixin.js.map +1 -1
  93. package/dist/lib/webex-plugin.js +36 -36
  94. package/dist/lib/webex-plugin.js.map +1 -1
  95. package/dist/plugins/logger.js +9 -9
  96. package/dist/plugins/logger.js.map +1 -1
  97. package/dist/webex-core.js +104 -104
  98. package/dist/webex-core.js.map +1 -1
  99. package/dist/webex-internal-core.js +12 -12
  100. package/dist/webex-internal-core.js.map +1 -1
  101. package/jest.config.js +3 -3
  102. package/package.json +19 -20
  103. package/process +1 -1
  104. package/src/config.js +90 -90
  105. package/src/credentials-config.js +212 -212
  106. package/src/index.js +62 -62
  107. package/src/interceptors/auth.js +186 -186
  108. package/src/interceptors/default-options.js +55 -55
  109. package/src/interceptors/embargo.js +43 -43
  110. package/src/interceptors/network-timing.js +54 -54
  111. package/src/interceptors/payload-transformer.js +55 -55
  112. package/src/interceptors/rate-limit.js +169 -169
  113. package/src/interceptors/redirect.js +106 -106
  114. package/src/interceptors/request-event.js +93 -93
  115. package/src/interceptors/request-logger.js +78 -78
  116. package/src/interceptors/request-timing.js +65 -65
  117. package/src/interceptors/response-logger.js +98 -98
  118. package/src/interceptors/user-agent.js +77 -77
  119. package/src/interceptors/webex-tracking-id.js +73 -73
  120. package/src/interceptors/webex-user-agent.js +79 -79
  121. package/src/lib/batcher.js +307 -307
  122. package/src/lib/credentials/credentials.js +552 -552
  123. package/src/lib/credentials/grant-errors.js +92 -92
  124. package/src/lib/credentials/index.js +16 -16
  125. package/src/lib/credentials/scope.js +34 -34
  126. package/src/lib/credentials/token-collection.js +17 -17
  127. package/src/lib/credentials/token.js +559 -559
  128. package/src/lib/page.js +159 -159
  129. package/src/lib/services/constants.js +9 -9
  130. package/src/lib/services/index.js +26 -26
  131. package/src/lib/services/interceptors/server-error.js +48 -48
  132. package/src/lib/services/interceptors/service.js +101 -101
  133. package/src/lib/services/metrics.js +4 -4
  134. package/src/lib/services/service-catalog.js +435 -435
  135. package/src/lib/services/service-fed-ramp.js +4 -4
  136. package/src/lib/services/service-host.js +267 -267
  137. package/src/lib/services/service-registry.js +465 -465
  138. package/src/lib/services/service-state.js +78 -78
  139. package/src/lib/services/service-url.js +124 -124
  140. package/src/lib/services/services.js +1018 -1018
  141. package/src/lib/stateless-webex-plugin.js +98 -98
  142. package/src/lib/storage/decorators.js +220 -220
  143. package/src/lib/storage/errors.js +15 -15
  144. package/src/lib/storage/index.js +10 -10
  145. package/src/lib/storage/make-webex-plugin-store.js +211 -211
  146. package/src/lib/storage/make-webex-store.js +140 -140
  147. package/src/lib/storage/memory-store-adapter.js +79 -79
  148. package/src/lib/webex-core-plugin-mixin.js +114 -114
  149. package/src/lib/webex-http-error.js +61 -61
  150. package/src/lib/webex-internal-core-plugin-mixin.js +107 -107
  151. package/src/lib/webex-plugin.js +222 -222
  152. package/src/plugins/logger.js +60 -60
  153. package/src/webex-core.js +745 -745
  154. package/src/webex-internal-core.js +46 -46
  155. package/test/integration/spec/credentials/credentials.js +139 -139
  156. package/test/integration/spec/credentials/token.js +102 -102
  157. package/test/integration/spec/services/service-catalog.js +838 -838
  158. package/test/integration/spec/services/services.js +1221 -1221
  159. package/test/integration/spec/webex-core.js +178 -178
  160. package/test/unit/spec/_setup.js +44 -44
  161. package/test/unit/spec/credentials/credentials.js +1017 -1017
  162. package/test/unit/spec/credentials/token.js +441 -441
  163. package/test/unit/spec/interceptors/auth.js +521 -521
  164. package/test/unit/spec/interceptors/default-options.js +84 -84
  165. package/test/unit/spec/interceptors/embargo.js +144 -144
  166. package/test/unit/spec/interceptors/network-timing.js +49 -49
  167. package/test/unit/spec/interceptors/payload-transformer.js +155 -155
  168. package/test/unit/spec/interceptors/rate-limit.js +302 -302
  169. package/test/unit/spec/interceptors/redirect.js +102 -102
  170. package/test/unit/spec/interceptors/request-timing.js +92 -92
  171. package/test/unit/spec/interceptors/user-agent.js +76 -76
  172. package/test/unit/spec/interceptors/webex-tracking-id.js +76 -76
  173. package/test/unit/spec/interceptors/webex-user-agent.js +159 -159
  174. package/test/unit/spec/lib/batcher.js +330 -330
  175. package/test/unit/spec/lib/page.js +148 -148
  176. package/test/unit/spec/lib/webex-plugin.js +48 -48
  177. package/test/unit/spec/services/interceptors/server-error.js +204 -204
  178. package/test/unit/spec/services/interceptors/service.js +188 -188
  179. package/test/unit/spec/services/service-catalog.js +194 -194
  180. package/test/unit/spec/services/service-host.js +260 -260
  181. package/test/unit/spec/services/service-registry.js +747 -747
  182. package/test/unit/spec/services/service-state.js +60 -60
  183. package/test/unit/spec/services/service-url.js +258 -258
  184. package/test/unit/spec/services/services.js +348 -348
  185. package/test/unit/spec/storage/persist.js +50 -50
  186. package/test/unit/spec/storage/storage-adapter.js +12 -12
  187. package/test/unit/spec/storage/wait-for-value.js +81 -81
  188. package/test/unit/spec/webex-core.js +253 -253
  189. package/test/unit/spec/webex-internal-core.js +91 -91
@@ -1 +1 @@
1
- {"version":3,"names":["_querystring","_interopRequireDefault","require","_url","_jsonwebtoken","_common","_commonTimers","_webexPlugin","_decorators","_grantErrors","_scope","_token","_tokenCollection","_dec","_dec2","_dec3","_dec4","_dec5","_dec6","_obj","ownKeys","object","enumerableOnly","keys","_Object$keys2","_Object$getOwnPropertySymbols","symbols","filter","sym","_Object$getOwnPropertyDescriptor2","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","Object","forEach","key","_defineProperty2","default","_Object$getOwnPropertyDescriptors","_Object$defineProperties","_Object$defineProperty","Credentials","WebexPlugin","extend","oneFlight","keyFactory","scope","waitForValue","persist","whileInFlight","collections","userTokens","TokenCollection","dataTypes","token","makeStateDataType","Token","dataType","derived","canAuthorize","deps","fn","Boolean","supertoken","canRefresh","config","jwtRefreshCallback","props","prop","namespace","session","isRefreshing","type","ready","refreshTimer","undefined","buildLoginUrl","options","clientType","state","_isObject2","Error","client_id","redirect_uri","_cloneDeep2","response_type","_deleteProperty","_isEmpty2","base64","toBase64Url","_stringify","concat","authorizeUrl","querystring","stringify","getOrgId","logger","info","extractOrgIdFromJWT","access_token","e","_this$supertoken","extractOrgIdFromUserToken","f","decodedJWT","jwt","decode","realm","fields","split","buildLogoutUrl","logoutUrl","cisService","service","goto","calcRefreshTimeout","expiration","Math","floor","random","constructor","_this","_dataTypes","_keys","set","bind","_len","args","Array","_key","_apply","downscope","_this2","catch","reason","trace","_promise","resolve","serialize","parent","getClientToken","_this3","webex","request","method","uri","tokenUrl","form","grant_type","self_contained_token","auth","user","pass","client_secret","sendImmediately","shouldRefreshAccessToken","then","res","body","statusCode","reject","ErrorConstructor","grantErrors","select","error","_res","getUserToken","_this4","once","filterScope","sortScope","get","tap","t","add","initialize","attrs","_this5","authorization","expires","scheduleRefresh","prototype","listenToOnce","authorizationString","parsed","url","parse","query","href","substr","indexOf","invalidate","clearTimeout","unset","err","warn","models","remove","refresh","_this6","tokens","_clone2","requestAccessTokenFromJwt","internal","services","updateCredentialsConfig","st","all","map","revoke","InvalidRequestError","trigger","_this7","expiresIn","_now","timeoutLength","safeSetTimeout","version","_applyDecoratedDescriptor2","_getOwnPropertyDescriptor","_default","exports"],"sources":["credentials.js"],"sourcesContent":["/*!\r\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\r\n */\r\n\r\nimport querystring from 'querystring';\r\nimport url from 'url';\r\n\r\nimport jwt from 'jsonwebtoken';\r\nimport {base64, makeStateDataType, oneFlight, tap, whileInFlight} from '@webex/common';\r\nimport {safeSetTimeout} from '@webex/common-timers';\r\nimport {clone, cloneDeep, isObject, isEmpty} from 'lodash';\r\n\r\nimport WebexPlugin from '../webex-plugin';\r\nimport {persist, waitForValue} from '../storage/decorators';\r\n\r\nimport grantErrors from './grant-errors';\r\nimport {filterScope, sortScope} from './scope';\r\nimport Token from './token';\r\nimport TokenCollection from './token-collection';\r\n\r\n/**\r\n * @class\r\n */\r\nconst Credentials = WebexPlugin.extend({\r\n collections: {\r\n userTokens: TokenCollection,\r\n },\r\n\r\n dataTypes: {\r\n token: makeStateDataType(Token, 'token').dataType,\r\n },\r\n\r\n derived: {\r\n canAuthorize: {\r\n deps: ['supertoken', 'supertoken.canAuthorize', 'canRefresh'],\r\n fn() {\r\n return Boolean((this.supertoken && this.supertoken.canAuthorize) || this.canRefresh);\r\n },\r\n },\r\n canRefresh: {\r\n deps: ['supertoken', 'supertoken.canRefresh'],\r\n fn() {\r\n // If we're operating in JWT mode, we have to delegate to the consumer\r\n if (this.config.jwtRefreshCallback) {\r\n return true;\r\n }\r\n\r\n return Boolean(this.supertoken && this.supertoken.canRefresh);\r\n },\r\n },\r\n },\r\n\r\n props: {\r\n supertoken: makeStateDataType(Token, 'token').prop,\r\n },\r\n\r\n namespace: 'Credentials',\r\n\r\n session: {\r\n isRefreshing: {\r\n default: false,\r\n type: 'boolean',\r\n },\r\n /**\r\n * Becomes `true` once the {@link loaded} event fires.\r\n * @see {@link WebexPlugin#ready}\r\n * @instance\r\n * @memberof Credentials\r\n * @type {boolean}\r\n */\r\n ready: {\r\n default: false,\r\n type: 'boolean',\r\n },\r\n refreshTimer: {\r\n default: undefined,\r\n type: 'any',\r\n },\r\n },\r\n\r\n /**\r\n * Generates an OAuth Login URL. Prefers the api.ciscospark.com proxy if the\r\n * instance is initialize with an authorizatUrl, but fallsback to idbroker\r\n * as the base otherwise.\r\n * @instance\r\n * @memberof Credentials\r\n * @param {Object} [options={}]\r\n * @returns {string}\r\n */\r\n buildLoginUrl(options = {clientType: 'public'}) {\r\n /* eslint-disable camelcase */\r\n if (options.state && !isObject(options.state)) {\r\n throw new Error('if specified, `options.state` must be an object');\r\n }\r\n\r\n options.client_id = this.config.client_id;\r\n options.redirect_uri = this.config.redirect_uri;\r\n options.scope = this.config.scope;\r\n\r\n options = cloneDeep(options);\r\n\r\n if (!options.response_type) {\r\n options.response_type = options.clientType === 'public' ? 'token' : 'code';\r\n }\r\n Reflect.deleteProperty(options, 'clientType');\r\n\r\n if (options.state) {\r\n if (!isEmpty(options.state)) {\r\n options.state = base64.toBase64Url(JSON.stringify(options.state));\r\n } else {\r\n delete options.state;\r\n }\r\n }\r\n\r\n return `${this.config.authorizeUrl}?${querystring.stringify(options)}`;\r\n /* eslint-enable camelcase */\r\n },\r\n\r\n /**\r\n * Get the determined OrgId.\r\n *\r\n * @throws {Error} - If the OrgId could not be determined.\r\n * @returns {string} - The OrgId.\r\n */\r\n getOrgId() {\r\n this.logger.info('credentials: attempting to retrieve the OrgId from token');\r\n\r\n try {\r\n // Attempt to extract a client-authenticated token's OrgId.\r\n this.logger.info('credentials: trying to extract OrgId from JWT');\r\n\r\n return this.extractOrgIdFromJWT(this.supertoken.access_token);\r\n } catch (e) {\r\n // Attempt to extract a user token's OrgId.\r\n this.logger.info('credentials: could not extract OrgId from JWT');\r\n this.logger.info('credentials: attempting to extract OrgId from user token');\r\n\r\n try {\r\n return this.extractOrgIdFromUserToken(this.supertoken?.access_token);\r\n } catch (f) {\r\n this.logger.info('credentials: could not extract OrgId from user token');\r\n throw f;\r\n }\r\n }\r\n },\r\n\r\n /**\r\n * Extract the OrgId [realm] from a provided JWT.\r\n *\r\n * @private\r\n * @param {string} token - The JWT to extract the OrgId from.\r\n * @throws {Error} - If the token does not pass JWT general/realm validation.\r\n * @returns {string} - The OrgId.\r\n */\r\n extractOrgIdFromJWT(token = '') {\r\n // Decoded the provided token.\r\n const decodedJWT = jwt.decode(token);\r\n\r\n // Validate that the provided token is a JWT.\r\n if (!decodedJWT) {\r\n throw new Error('unable to extract the OrgId from the provided JWT');\r\n }\r\n\r\n if (!decodedJWT.realm) {\r\n throw new Error('the provided JWT does not contain an OrgId');\r\n }\r\n\r\n // Return the OrgId [realm].\r\n return decodedJWT.realm;\r\n },\r\n\r\n /**\r\n * Extract the OrgId [realm] from a provided user token.\r\n *\r\n * @private\r\n * @param {string} token - The user token to extract the OrgId from.\r\n * @throws {Error} - Will throw an error if the provided token is invalid.\r\n * @returns {string} - The OrgId.\r\n */\r\n extractOrgIdFromUserToken(token = '') {\r\n // Split the provided token into subsections.\r\n const fields = token.split('_');\r\n\r\n // Validate that the provided token has the proper amount of sections.\r\n if (fields.length !== 3) {\r\n throw new Error('the provided token is not a valid format');\r\n }\r\n\r\n // Return the token section that contains the OrgId.\r\n return fields[2];\r\n },\r\n\r\n /**\r\n * Generates a Logout URL\r\n * @instance\r\n * @memberof Credentials\r\n * @param {Object} [options={}]\r\n * @returns {[type]}\r\n */\r\n buildLogoutUrl(options = {}) {\r\n return `${this.config.logoutUrl}?${querystring.stringify({\r\n cisService: this.config.service,\r\n goto: this.config.redirect_uri,\r\n ...options,\r\n })}`;\r\n },\r\n\r\n /**\r\n * Generates a number between 60% - 90% of expired value\r\n * @instance\r\n * @memberof Credentials\r\n * @param {number} expiration\r\n * @private\r\n * @returns {number}\r\n */\r\n calcRefreshTimeout(expiration) {\r\n return Math.floor(((Math.floor(Math.random() * 4) + 6) / 10) * expiration);\r\n },\r\n\r\n constructor(...args) {\r\n // HACK to deal with the fact that AmpersandState#dataTypes#set is a pure\r\n // function.\r\n this._dataTypes = cloneDeep(this._dataTypes);\r\n Object.keys(this._dataTypes).forEach((key) => {\r\n if (this._dataTypes[key].set) {\r\n this._dataTypes[key].set = this._dataTypes[key].set.bind(this);\r\n }\r\n });\r\n // END HACK\r\n Reflect.apply(WebexPlugin, this, args);\r\n },\r\n\r\n /**\r\n * Downscopes a token\r\n * @instance\r\n * @memberof Credentials\r\n * @param {string} scope\r\n * @private\r\n * @returns {Promise<Token>}\r\n */\r\n downscope(scope) {\r\n return this.supertoken.downscope(scope).catch((reason) => {\r\n this.logger.trace(`credentials: failed to downscope supertoken to ${scope}`, reason);\r\n this.logger.trace(`credentials: falling back to supertoken for ${scope}`);\r\n\r\n return Promise.resolve(new Token({scope, ...this.supertoken.serialize()}), {\r\n parent: this,\r\n });\r\n });\r\n },\r\n\r\n /**\r\n * Requests a client credentials grant and returns the token. Given the\r\n * limited use for such tokens as this time, this method does not cache its\r\n * token.\r\n * @instance\r\n * @memberof Credentials\r\n * @param {Object} options\r\n * @returns {Promise<Token>}\r\n */\r\n getClientToken(options = {}) {\r\n this.logger.info('credentials: requesting client credentials grant');\r\n\r\n return this.webex\r\n .request({\r\n /* eslint-disable camelcase */\r\n method: 'POST',\r\n uri: options.uri || this.config.tokenUrl,\r\n form: {\r\n grant_type: 'client_credentials',\r\n scope: options.scope || 'webexsquare:admin',\r\n self_contained_token: true,\r\n },\r\n auth: {\r\n user: this.config.client_id,\r\n pass: this.config.client_secret,\r\n sendImmediately: true,\r\n },\r\n shouldRefreshAccessToken: false,\r\n /* eslint-enable camelcase */\r\n })\r\n .then((res) => new Token(res.body, {parent: this}))\r\n .catch((res) => {\r\n if (res.statusCode !== 400) {\r\n return Promise.reject(res);\r\n }\r\n\r\n const ErrorConstructor = grantErrors.select(res.body.error);\r\n\r\n return Promise.reject(new ErrorConstructor(res._res || res));\r\n });\r\n },\r\n\r\n @oneFlight({keyFactory: (scope) => scope})\r\n @waitForValue('@')\r\n /**\r\n * Resolves with a token with the specified scopes. If no scope is specified,\r\n * defaults to omit(webex.credentials.scope, 'spark:kms'). If no such token is\r\n * available, downscopes the supertoken to that scope.\r\n * @instance\r\n * @memberof Credentials\r\n * @param {string} scope\r\n * @returns {Promise<Token>}\r\n */\r\n getUserToken(scope) {\r\n return Promise.resolve(\r\n !this.isRefreshing ||\r\n new Promise((resolve) => {\r\n this.logger.info(\r\n 'credentials: token refresh inflight; delaying getUserToken until refresh completes'\r\n );\r\n this.once('change:isRefreshing', () => {\r\n this.logger.info('credentials: token refresh complete; reinvoking getUserToken');\r\n resolve();\r\n });\r\n })\r\n ).then(() => {\r\n if (!this.canAuthorize) {\r\n this.logger.info('credentials: cannot produce an access token from current state');\r\n\r\n return Promise.reject(new Error('Current state cannot produce an access token'));\r\n }\r\n\r\n if (!scope) {\r\n scope = filterScope('spark:kms', this.config.scope);\r\n }\r\n\r\n scope = sortScope(scope);\r\n\r\n if (scope === sortScope(this.config.scope)) {\r\n return Promise.resolve(this.supertoken);\r\n }\r\n\r\n const token = this.userTokens.get(scope);\r\n\r\n // we should also check for the token.access_token since token object does\r\n // not get cleared on unsetting while logging out.\r\n if (!token || !token.access_token) {\r\n return this.downscope(scope).then(tap((t) => this.userTokens.add(t)));\r\n }\r\n\r\n return Promise.resolve(token);\r\n });\r\n },\r\n\r\n @persist('@')\r\n /**\r\n * Initializer\r\n * @instance\r\n * @memberof Credentials\r\n * @param {Object} attrs\r\n * @param {Object} options\r\n * @private\r\n * @returns {Credentials}\r\n */\r\n initialize(attrs, options) {\r\n if (attrs) {\r\n if (typeof attrs === 'string') {\r\n this.supertoken = attrs;\r\n }\r\n\r\n if (attrs.access_token) {\r\n this.supertoken = attrs;\r\n }\r\n\r\n if (attrs.authorization) {\r\n if (attrs.authorization.supertoken) {\r\n this.supertoken = attrs.authorization.supertoken;\r\n } else {\r\n this.supertoken = attrs.authorization;\r\n }\r\n }\r\n\r\n // schedule refresh\r\n if (this.supertoken && this.supertoken.expires) {\r\n this.scheduleRefresh(this.supertoken.expires);\r\n }\r\n }\r\n\r\n Reflect.apply(WebexPlugin.prototype.initialize, this, [attrs, options]);\r\n\r\n this.listenToOnce(this.parent, 'change:config', () => {\r\n if (this.config.authorizationString) {\r\n const parsed = url.parse(this.config.authorizationString, true);\r\n\r\n /* eslint-disable camelcase */\r\n this.config.client_id = parsed.query.client_id;\r\n this.config.redirect_uri = parsed.query.redirect_uri;\r\n this.config.scope = parsed.query.scope;\r\n this.config.authorizeUrl = parsed.href.substr(0, parsed.href.indexOf('?'));\r\n /* eslint-enable camelcase */\r\n }\r\n });\r\n\r\n this.webex.once('loaded', () => {\r\n this.ready = true;\r\n });\r\n },\r\n\r\n @oneFlight\r\n @waitForValue('@')\r\n /**\r\n * Clears all tokens from store them from the stores.\r\n *\r\n * This is no longer quite the right name for this method, but all of the\r\n * alternatives I'm coming up with are already taken.\r\n * @instance\r\n * @memberof Credentials\r\n * @returns {Promise}\r\n */\r\n invalidate() {\r\n this.logger.info('credentials: invalidating tokens');\r\n\r\n // clear refresh timer\r\n if (this.refreshTimer) {\r\n clearTimeout(this.refreshTimer);\r\n this.unset('refreshTimer');\r\n }\r\n\r\n try {\r\n this.unset('supertoken');\r\n } catch (err) {\r\n this.logger.warn('credentials: failed to clear supertoken', err);\r\n }\r\n\r\n while (this.userTokens.models.length) {\r\n try {\r\n this.userTokens.remove(this.userTokens.models[0]);\r\n } catch (err) {\r\n this.logger.warn('credentials: failed to remove user token', err);\r\n }\r\n }\r\n\r\n this.logger.info('credentials: finished removing tokens');\r\n\r\n // Return a promise to give the storage layer a tick or two to clear\r\n // localStorage\r\n return Promise.resolve();\r\n },\r\n\r\n @oneFlight\r\n @whileInFlight('isRefreshing')\r\n @waitForValue('@')\r\n /**\r\n * Removes the supertoken and child tokens, then refreshes the supertoken;\r\n * subsequent calls to {@link Credentials#getUserToken()} will re-downscope\r\n * child tokens. Enqueus revocation of previous previousTokens. Yes, that's\r\n * the correct number of \"previous\"es.\r\n * @instance\r\n * @memberof Credentials\r\n * @returns {Promise}\r\n */\r\n refresh() {\r\n this.logger.info('credentials: refresh requested');\r\n\r\n const {supertoken} = this;\r\n const tokens = clone(this.userTokens.models);\r\n\r\n // This is kind of a leaky abstraction, since it relies on the authorization\r\n // plugin, but the only alternatives I see are\r\n // 1. put all JWT support in core\r\n // 2. have separate jwt and non-jwt auth plugins\r\n // while I like #2 from a code simplicity standpoint, the third-party DX\r\n // isn't great\r\n if (this.config.jwtRefreshCallback) {\r\n return (\r\n this.config\r\n .jwtRefreshCallback(this.webex)\r\n // eslint-disable-next-line no-shadow\r\n .then((jwt) => this.webex.authorization.requestAccessTokenFromJwt({jwt}))\r\n );\r\n }\r\n\r\n if (this.webex.internal.services) {\r\n this.webex.internal.services.updateCredentialsConfig();\r\n }\r\n\r\n return supertoken\r\n .refresh()\r\n .then((st) => {\r\n // clear refresh timer\r\n if (this.refreshTimer) {\r\n clearTimeout(this.refreshTimer);\r\n this.unset('refreshTimer');\r\n }\r\n this.supertoken = st;\r\n\r\n return Promise.all(\r\n tokens.map((token) =>\r\n this.downscope(token.scope)\r\n // eslint-disable-next-line max-nested-callbacks\r\n .then((t) => {\r\n this.logger.info(`credentials: revoking token for ${token.scope}`);\r\n\r\n return token\r\n .revoke()\r\n .catch((err) => {\r\n this.logger.warn('credentials: failed to revoke user token', err);\r\n })\r\n .then(() => {\r\n this.userTokens.remove(token.scope);\r\n this.userTokens.add(t);\r\n });\r\n })\r\n )\r\n );\r\n })\r\n .then(() => {\r\n this.scheduleRefresh(this.supertoken.expires);\r\n })\r\n .catch((error) => {\r\n const {InvalidRequestError} = grantErrors;\r\n\r\n if (error instanceof InvalidRequestError) {\r\n // Error: The refresh token provided is expired, revoked, malformed, or invalid. Hence emit an event to the client, an opportunity to logout.\r\n this.unset('supertoken');\r\n while (this.userTokens.models.length) {\r\n try {\r\n this.userTokens.remove(this.userTokens.models[0]);\r\n } catch (err) {\r\n this.logger.warn('credentials: failed to remove user token', err);\r\n }\r\n }\r\n this.webex.trigger('client:InvalidRequestError');\r\n }\r\n\r\n return Promise.reject(error);\r\n });\r\n },\r\n\r\n /**\r\n * Schedules a token refresh or refreshes the token if token has expired\r\n * @instance\r\n * @memberof Credentials\r\n * @param {number} expires\r\n * @private\r\n * @returns {undefined}\r\n */\r\n scheduleRefresh(expires) {\r\n const expiresIn = expires - Date.now();\r\n\r\n if (expiresIn > 0) {\r\n const timeoutLength = this.calcRefreshTimeout(expiresIn);\r\n\r\n this.refreshTimer = safeSetTimeout(() => this.refresh(), timeoutLength);\r\n } else {\r\n this.refresh();\r\n }\r\n },\r\n});\r\n\r\nexport default Credentials;\r\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,IAAAA,YAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,IAAA,GAAAF,sBAAA,CAAAC,OAAA;AAEA,IAAAE,aAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AACA,IAAAI,aAAA,GAAAJ,OAAA;AAGA,IAAAK,YAAA,GAAAN,sBAAA,CAAAC,OAAA;AACA,IAAAM,WAAA,GAAAN,OAAA;AAEA,IAAAO,YAAA,GAAAR,sBAAA,CAAAC,OAAA;AACA,IAAAQ,MAAA,GAAAR,OAAA;AACA,IAAAS,MAAA,GAAAV,sBAAA,CAAAC,OAAA;AACA,IAAAU,gBAAA,GAAAX,sBAAA,CAAAC,OAAA;AAAiD,IAAAW,IAAA,EAAAC,KAAA,EAAAC,KAAA,EAAAC,KAAA,EAAAC,KAAA,EAAAC,KAAA,EAAAC,IAAA;AAAA,SAAAC,QAAAC,MAAA,EAAAC,cAAA,QAAAC,IAAA,GAAAC,aAAA,CAAAH,MAAA,OAAAI,6BAAA,QAAAC,OAAA,GAAAD,6BAAA,CAAAJ,MAAA,GAAAC,cAAA,KAAAI,OAAA,GAAAA,OAAA,CAAAC,MAAA,WAAAC,GAAA,WAAAC,iCAAA,CAAAR,MAAA,EAAAO,GAAA,EAAAE,UAAA,OAAAP,IAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,IAAA,EAAAG,OAAA,YAAAH,IAAA;AAAA,SAAAU,cAAAC,MAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAF,CAAA,UAAAG,MAAA,WAAAF,SAAA,CAAAD,CAAA,IAAAC,SAAA,CAAAD,CAAA,QAAAA,CAAA,OAAAf,OAAA,CAAAmB,MAAA,CAAAD,MAAA,OAAAE,OAAA,WAAAC,GAAA,QAAAC,gBAAA,CAAAC,OAAA,EAAAT,MAAA,EAAAO,GAAA,EAAAH,MAAA,CAAAG,GAAA,SAAAG,iCAAA,GAAAC,wBAAA,CAAAX,MAAA,EAAAU,iCAAA,CAAAN,MAAA,KAAAlB,OAAA,CAAAmB,MAAA,CAAAD,MAAA,GAAAE,OAAA,WAAAC,GAAA,IAAAK,sBAAA,CAAAZ,MAAA,EAAAO,GAAA,EAAAZ,iCAAA,CAAAS,MAAA,EAAAG,GAAA,iBAAAP,MAAA;AAEjD;AACA;AACA;AACA,IAAMa,WAAW,GAAGC,oBAAW,CAACC,MAAM,EAAApC,IAAA,GA8QnC,IAAAqC,iBAAS,EAAC;EAACC,UAAU,EAAE,SAAAA,WAACC,KAAK;IAAA,OAAKA,KAAK;EAAA;AAAA,CAAC,CAAC,EAAAtC,KAAA,GACzC,IAAAuC,wBAAY,EAAC,GAAG,CAAC,EAAAtC,KAAA,GAmDjB,IAAAuC,mBAAO,EAAC,GAAG,CAAC,EAAAtC,KAAA,GAuDZ,IAAAqC,wBAAY,EAAC,GAAG,CAAC,EAAApC,KAAA,GAyCjB,IAAAsC,qBAAa,EAAC,cAAc,CAAC,EAAArC,KAAA,GAC7B,IAAAmC,wBAAY,EAAC,GAAG,CAAC,GAAAlC,IAAA,GAnamB;EACrCqC,WAAW,EAAE;IACXC,UAAU,EAAEC;EACd,CAAC;EAEDC,SAAS,EAAE;IACTC,KAAK,EAAE,IAAAC,yBAAiB,EAACC,cAAK,EAAE,OAAO,CAAC,CAACC;EAC3C,CAAC;EAEDC,OAAO,EAAE;IACPC,YAAY,EAAE;MACZC,IAAI,EAAE,CAAC,YAAY,EAAE,yBAAyB,EAAE,YAAY,CAAC;MAC7DC,EAAE,WAAAA,GAAA,EAAG;QACH,OAAOC,OAAO,CAAE,IAAI,CAACC,UAAU,IAAI,IAAI,CAACA,UAAU,CAACJ,YAAY,IAAK,IAAI,CAACK,UAAU,CAAC;MACtF;IACF,CAAC;IACDA,UAAU,EAAE;MACVJ,IAAI,EAAE,CAAC,YAAY,EAAE,uBAAuB,CAAC;MAC7CC,EAAE,WAAAA,GAAA,EAAG;QACH;QACA,IAAI,IAAI,CAACI,MAAM,CAACC,kBAAkB,EAAE;UAClC,OAAO,IAAI;QACb;QAEA,OAAOJ,OAAO,CAAC,IAAI,CAACC,UAAU,IAAI,IAAI,CAACA,UAAU,CAACC,UAAU,CAAC;MAC/D;IACF;EACF,CAAC;EAEDG,KAAK,EAAE;IACLJ,UAAU,EAAE,IAAAR,yBAAiB,EAACC,cAAK,EAAE,OAAO,CAAC,CAACY;EAChD,CAAC;EAEDC,SAAS,EAAE,aAAa;EAExBC,OAAO,EAAE;IACPC,YAAY,EAAE;MACZlC,OAAO,EAAE,KAAK;MACdmC,IAAI,EAAE;IACR,CAAC;IACD;AACJ;AACA;AACA;AACA;AACA;AACA;IACIC,KAAK,EAAE;MACLpC,OAAO,EAAE,KAAK;MACdmC,IAAI,EAAE;IACR,CAAC;IACDE,YAAY,EAAE;MACZrC,OAAO,EAAEsC,SAAS;MAClBH,IAAI,EAAE;IACR;EACF,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEI,aAAa,WAAAA,cAAA,EAAmC;IAAA,IAAlCC,OAAO,GAAA/C,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAA6C,SAAA,GAAA7C,SAAA,MAAG;MAACgD,UAAU,EAAE;IAAQ,CAAC;IAC5C;IACA,IAAID,OAAO,CAACE,KAAK,IAAI,CAAC,IAAAC,UAAA,CAAA3C,OAAA,EAASwC,OAAO,CAACE,KAAK,CAAC,EAAE;MAC7C,MAAM,IAAIE,KAAK,CAAC,iDAAiD,CAAC;IACpE;IAEAJ,OAAO,CAACK,SAAS,GAAG,IAAI,CAACjB,MAAM,CAACiB,SAAS;IACzCL,OAAO,CAACM,YAAY,GAAG,IAAI,CAAClB,MAAM,CAACkB,YAAY;IAC/CN,OAAO,CAAC/B,KAAK,GAAG,IAAI,CAACmB,MAAM,CAACnB,KAAK;IAEjC+B,OAAO,GAAG,IAAAO,WAAA,CAAA/C,OAAA,EAAUwC,OAAO,CAAC;IAE5B,IAAI,CAACA,OAAO,CAACQ,aAAa,EAAE;MAC1BR,OAAO,CAACQ,aAAa,GAAGR,OAAO,CAACC,UAAU,KAAK,QAAQ,GAAG,OAAO,GAAG,MAAM;IAC5E;IACA,IAAAQ,eAAA,CAAAjD,OAAA,EAAuBwC,OAAO,EAAE,YAAY,CAAC;IAE7C,IAAIA,OAAO,CAACE,KAAK,EAAE;MACjB,IAAI,CAAC,IAAAQ,SAAA,CAAAlD,OAAA,EAAQwC,OAAO,CAACE,KAAK,CAAC,EAAE;QAC3BF,OAAO,CAACE,KAAK,GAAGS,cAAM,CAACC,WAAW,CAAC,IAAAC,UAAA,CAAArD,OAAA,EAAewC,OAAO,CAACE,KAAK,CAAC,CAAC;MACnE,CAAC,MAAM;QACL,OAAOF,OAAO,CAACE,KAAK;MACtB;IACF;IAEA,UAAAY,MAAA,CAAU,IAAI,CAAC1B,MAAM,CAAC2B,YAAY,OAAAD,MAAA,CAAIE,oBAAW,CAACC,SAAS,CAACjB,OAAO,CAAC;IACpE;EACF,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;EACEkB,QAAQ,WAAAA,SAAA,EAAG;IACT,IAAI,CAACC,MAAM,CAACC,IAAI,CAAC,0DAA0D,CAAC;IAE5E,IAAI;MACF;MACA,IAAI,CAACD,MAAM,CAACC,IAAI,CAAC,+CAA+C,CAAC;MAEjE,OAAO,IAAI,CAACC,mBAAmB,CAAC,IAAI,CAACnC,UAAU,CAACoC,YAAY,CAAC;IAC/D,CAAC,CAAC,OAAOC,CAAC,EAAE;MACV;MACA,IAAI,CAACJ,MAAM,CAACC,IAAI,CAAC,+CAA+C,CAAC;MACjE,IAAI,CAACD,MAAM,CAACC,IAAI,CAAC,0DAA0D,CAAC;MAE5E,IAAI;QAAA,IAAAI,gBAAA;QACF,OAAO,IAAI,CAACC,yBAAyB,EAAAD,gBAAA,GAAC,IAAI,CAACtC,UAAU,cAAAsC,gBAAA,uBAAfA,gBAAA,CAAiBF,YAAY,CAAC;MACtE,CAAC,CAAC,OAAOI,CAAC,EAAE;QACV,IAAI,CAACP,MAAM,CAACC,IAAI,CAAC,sDAAsD,CAAC;QACxE,MAAMM,CAAC;MACT;IACF;EACF,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACEL,mBAAmB,WAAAA,oBAAA,EAAa;IAAA,IAAZ5C,KAAK,GAAAxB,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAA6C,SAAA,GAAA7C,SAAA,MAAG,EAAE;IAC5B;IACA,IAAM0E,UAAU,GAAGC,qBAAG,CAACC,MAAM,CAACpD,KAAK,CAAC;;IAEpC;IACA,IAAI,CAACkD,UAAU,EAAE;MACf,MAAM,IAAIvB,KAAK,CAAC,mDAAmD,CAAC;IACtE;IAEA,IAAI,CAACuB,UAAU,CAACG,KAAK,EAAE;MACrB,MAAM,IAAI1B,KAAK,CAAC,4CAA4C,CAAC;IAC/D;;IAEA;IACA,OAAOuB,UAAU,CAACG,KAAK;EACzB,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACEL,yBAAyB,WAAAA,0BAAA,EAAa;IAAA,IAAZhD,KAAK,GAAAxB,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAA6C,SAAA,GAAA7C,SAAA,MAAG,EAAE;IAClC;IACA,IAAM8E,MAAM,GAAGtD,KAAK,CAACuD,KAAK,CAAC,GAAG,CAAC;;IAE/B;IACA,IAAID,MAAM,CAAC7E,MAAM,KAAK,CAAC,EAAE;MACvB,MAAM,IAAIkD,KAAK,CAAC,0CAA0C,CAAC;IAC7D;;IAEA;IACA,OAAO2B,MAAM,CAAC,CAAC,CAAC;EAClB,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;AACA;EACEE,cAAc,WAAAA,eAAA,EAAe;IAAA,IAAdjC,OAAO,GAAA/C,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAA6C,SAAA,GAAA7C,SAAA,MAAG,CAAC,CAAC;IACzB,UAAA6D,MAAA,CAAU,IAAI,CAAC1B,MAAM,CAAC8C,SAAS,OAAApB,MAAA,CAAIE,oBAAW,CAACC,SAAS,CAAAnE,aAAA;MACtDqF,UAAU,EAAE,IAAI,CAAC/C,MAAM,CAACgD,OAAO;MAC/BC,IAAI,EAAE,IAAI,CAACjD,MAAM,CAACkB;IAAY,GAC3BN,OAAO,EACV;EACJ,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACEsC,kBAAkB,WAAAA,mBAACC,UAAU,EAAE;IAC7B,OAAOC,IAAI,CAACC,KAAK,CAAE,CAACD,IAAI,CAACC,KAAK,CAACD,IAAI,CAACE,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,GAAIH,UAAU,CAAC;EAC5E,CAAC;EAEDI,WAAW,WAAAA,YAAA,EAAU;IAAA,IAAAC,KAAA;IACnB;IACA;IACA,IAAI,CAACC,UAAU,GAAG,IAAAtC,WAAA,CAAA/C,OAAA,EAAU,IAAI,CAACqF,UAAU,CAAC;IAC5C,IAAAC,KAAA,CAAAtF,OAAA,EAAY,IAAI,CAACqF,UAAU,CAAC,CAACxF,OAAO,CAAC,UAACC,GAAG,EAAK;MAC5C,IAAIsF,KAAI,CAACC,UAAU,CAACvF,GAAG,CAAC,CAACyF,GAAG,EAAE;QAC5BH,KAAI,CAACC,UAAU,CAACvF,GAAG,CAAC,CAACyF,GAAG,GAAGH,KAAI,CAACC,UAAU,CAACvF,GAAG,CAAC,CAACyF,GAAG,CAACC,IAAI,CAACJ,KAAI,CAAC;MAChE;IACF,CAAC,CAAC;IACF;IAAA,SAAAK,IAAA,GAAAhG,SAAA,CAAAC,MAAA,EATagG,IAAI,OAAAC,KAAA,CAAAF,IAAA,GAAAG,IAAA,MAAAA,IAAA,GAAAH,IAAA,EAAAG,IAAA;MAAJF,IAAI,CAAAE,IAAA,IAAAnG,SAAA,CAAAmG,IAAA;IAAA;IAUjB,IAAAC,MAAA,CAAA7F,OAAA,EAAcK,oBAAW,EAAE,IAAI,EAAEqF,IAAI,CAAC;EACxC,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACEI,SAAS,WAAAA,UAACrF,KAAK,EAAE;IAAA,IAAAsF,MAAA;IACf,OAAO,IAAI,CAACrE,UAAU,CAACoE,SAAS,CAACrF,KAAK,CAAC,CAACuF,KAAK,CAAC,UAACC,MAAM,EAAK;MACxDF,MAAI,CAACpC,MAAM,CAACuC,KAAK,mDAAA5C,MAAA,CAAmD7C,KAAK,GAAIwF,MAAM,CAAC;MACpFF,MAAI,CAACpC,MAAM,CAACuC,KAAK,gDAAA5C,MAAA,CAAgD7C,KAAK,EAAG;MAEzE,OAAO0F,QAAA,CAAAnG,OAAA,CAAQoG,OAAO,CAAC,IAAIjF,cAAK,CAAA7B,aAAA;QAAEmB,KAAK,EAALA;MAAK,GAAKsF,MAAI,CAACrE,UAAU,CAAC2E,SAAS,EAAE,EAAE,EAAE;QACzEC,MAAM,EAAEP;MACV,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEQ,cAAc,WAAAA,eAAA,EAAe;IAAA,IAAAC,MAAA;IAAA,IAAdhE,OAAO,GAAA/C,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAA6C,SAAA,GAAA7C,SAAA,MAAG,CAAC,CAAC;IACzB,IAAI,CAACkE,MAAM,CAACC,IAAI,CAAC,kDAAkD,CAAC;IAEpE,OAAO,IAAI,CAAC6C,KAAK,CACdC,OAAO,CAAC;MACP;MACAC,MAAM,EAAE,MAAM;MACdC,GAAG,EAAEpE,OAAO,CAACoE,GAAG,IAAI,IAAI,CAAChF,MAAM,CAACiF,QAAQ;MACxCC,IAAI,EAAE;QACJC,UAAU,EAAE,oBAAoB;QAChCtG,KAAK,EAAE+B,OAAO,CAAC/B,KAAK,IAAI,mBAAmB;QAC3CuG,oBAAoB,EAAE;MACxB,CAAC;MACDC,IAAI,EAAE;QACJC,IAAI,EAAE,IAAI,CAACtF,MAAM,CAACiB,SAAS;QAC3BsE,IAAI,EAAE,IAAI,CAACvF,MAAM,CAACwF,aAAa;QAC/BC,eAAe,EAAE;MACnB,CAAC;MACDC,wBAAwB,EAAE;MAC1B;IACF,CAAC,CAAC,CACDC,IAAI,CAAC,UAACC,GAAG;MAAA,OAAK,IAAIrG,cAAK,CAACqG,GAAG,CAACC,IAAI,EAAE;QAACnB,MAAM,EAAEE;MAAI,CAAC,CAAC;IAAA,EAAC,CAClDR,KAAK,CAAC,UAACwB,GAAG,EAAK;MACd,IAAIA,GAAG,CAACE,UAAU,KAAK,GAAG,EAAE;QAC1B,OAAOvB,QAAA,CAAAnG,OAAA,CAAQ2H,MAAM,CAACH,GAAG,CAAC;MAC5B;MAEA,IAAMI,gBAAgB,GAAGC,oBAAW,CAACC,MAAM,CAACN,GAAG,CAACC,IAAI,CAACM,KAAK,CAAC;MAE3D,OAAO5B,QAAA,CAAAnG,OAAA,CAAQ2H,MAAM,CAAC,IAAIC,gBAAgB,CAACJ,GAAG,CAACQ,IAAI,IAAIR,GAAG,CAAC,CAAC;IAC9D,CAAC,CAAC;EACN,CAAC;EAID;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACES,YAAY,WAAAA,aAACxH,KAAK,EAAE;IAAA,IAAAyH,MAAA;IAClB,OAAO/B,QAAA,CAAAnG,OAAA,CAAQoG,OAAO,CACpB,CAAC,IAAI,CAAClE,YAAY,IAChB,IAAAiE,QAAA,CAAAnG,OAAA,CAAY,UAACoG,OAAO,EAAK;MACvB8B,MAAI,CAACvE,MAAM,CAACC,IAAI,CACd,oFAAoF,CACrF;MACDsE,MAAI,CAACC,IAAI,CAAC,qBAAqB,EAAE,YAAM;QACrCD,MAAI,CAACvE,MAAM,CAACC,IAAI,CAAC,8DAA8D,CAAC;QAChFwC,OAAO,EAAE;MACX,CAAC,CAAC;IACJ,CAAC,CAAC,CACL,CAACmB,IAAI,CAAC,YAAM;MACX,IAAI,CAACW,MAAI,CAAC5G,YAAY,EAAE;QACtB4G,MAAI,CAACvE,MAAM,CAACC,IAAI,CAAC,gEAAgE,CAAC;QAElF,OAAOuC,QAAA,CAAAnG,OAAA,CAAQ2H,MAAM,CAAC,IAAI/E,KAAK,CAAC,8CAA8C,CAAC,CAAC;MAClF;MAEA,IAAI,CAACnC,KAAK,EAAE;QACVA,KAAK,GAAG,IAAA2H,kBAAW,EAAC,WAAW,EAAEF,MAAI,CAACtG,MAAM,CAACnB,KAAK,CAAC;MACrD;MAEAA,KAAK,GAAG,IAAA4H,gBAAS,EAAC5H,KAAK,CAAC;MAExB,IAAIA,KAAK,KAAK,IAAA4H,gBAAS,EAACH,MAAI,CAACtG,MAAM,CAACnB,KAAK,CAAC,EAAE;QAC1C,OAAO0F,QAAA,CAAAnG,OAAA,CAAQoG,OAAO,CAAC8B,MAAI,CAACxG,UAAU,CAAC;MACzC;MAEA,IAAMT,KAAK,GAAGiH,MAAI,CAACpH,UAAU,CAACwH,GAAG,CAAC7H,KAAK,CAAC;;MAExC;MACA;MACA,IAAI,CAACQ,KAAK,IAAI,CAACA,KAAK,CAAC6C,YAAY,EAAE;QACjC,OAAOoE,MAAI,CAACpC,SAAS,CAACrF,KAAK,CAAC,CAAC8G,IAAI,CAAC,IAAAgB,WAAG,EAAC,UAACC,CAAC;UAAA,OAAKN,MAAI,CAACpH,UAAU,CAAC2H,GAAG,CAACD,CAAC,CAAC;QAAA,EAAC,CAAC;MACvE;MAEA,OAAOrC,QAAA,CAAAnG,OAAA,CAAQoG,OAAO,CAACnF,KAAK,CAAC;IAC/B,CAAC,CAAC;EACJ,CAAC;EAGD;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEyH,UAAU,WAAAA,WAACC,KAAK,EAAEnG,OAAO,EAAE;IAAA,IAAAoG,MAAA;IACzB,IAAID,KAAK,EAAE;MACT,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;QAC7B,IAAI,CAACjH,UAAU,GAAGiH,KAAK;MACzB;MAEA,IAAIA,KAAK,CAAC7E,YAAY,EAAE;QACtB,IAAI,CAACpC,UAAU,GAAGiH,KAAK;MACzB;MAEA,IAAIA,KAAK,CAACE,aAAa,EAAE;QACvB,IAAIF,KAAK,CAACE,aAAa,CAACnH,UAAU,EAAE;UAClC,IAAI,CAACA,UAAU,GAAGiH,KAAK,CAACE,aAAa,CAACnH,UAAU;QAClD,CAAC,MAAM;UACL,IAAI,CAACA,UAAU,GAAGiH,KAAK,CAACE,aAAa;QACvC;MACF;;MAEA;MACA,IAAI,IAAI,CAACnH,UAAU,IAAI,IAAI,CAACA,UAAU,CAACoH,OAAO,EAAE;QAC9C,IAAI,CAACC,eAAe,CAAC,IAAI,CAACrH,UAAU,CAACoH,OAAO,CAAC;MAC/C;IACF;IAEA,IAAAjD,MAAA,CAAA7F,OAAA,EAAcK,oBAAW,CAAC2I,SAAS,CAACN,UAAU,EAAE,IAAI,EAAE,CAACC,KAAK,EAAEnG,OAAO,CAAC,CAAC;IAEvE,IAAI,CAACyG,YAAY,CAAC,IAAI,CAAC3C,MAAM,EAAE,eAAe,EAAE,YAAM;MACpD,IAAIsC,MAAI,CAAChH,MAAM,CAACsH,mBAAmB,EAAE;QACnC,IAAMC,MAAM,GAAGC,YAAG,CAACC,KAAK,CAACT,MAAI,CAAChH,MAAM,CAACsH,mBAAmB,EAAE,IAAI,CAAC;;QAE/D;QACAN,MAAI,CAAChH,MAAM,CAACiB,SAAS,GAAGsG,MAAM,CAACG,KAAK,CAACzG,SAAS;QAC9C+F,MAAI,CAAChH,MAAM,CAACkB,YAAY,GAAGqG,MAAM,CAACG,KAAK,CAACxG,YAAY;QACpD8F,MAAI,CAAChH,MAAM,CAACnB,KAAK,GAAG0I,MAAM,CAACG,KAAK,CAAC7I,KAAK;QACtCmI,MAAI,CAAChH,MAAM,CAAC2B,YAAY,GAAG4F,MAAM,CAACI,IAAI,CAACC,MAAM,CAAC,CAAC,EAAEL,MAAM,CAACI,IAAI,CAACE,OAAO,CAAC,GAAG,CAAC,CAAC;QAC1E;MACF;IACF,CAAC,CAAC;;IAEF,IAAI,CAAChD,KAAK,CAAC0B,IAAI,CAAC,QAAQ,EAAE,YAAM;MAC9BS,MAAI,CAACxG,KAAK,GAAG,IAAI;IACnB,CAAC,CAAC;EACJ,CAAC;EAID;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEsH,UAAU,WAAAA,WAAA,EAAG;IACX,IAAI,CAAC/F,MAAM,CAACC,IAAI,CAAC,kCAAkC,CAAC;;IAEpD;IACA,IAAI,IAAI,CAACvB,YAAY,EAAE;MACrBsH,YAAY,CAAC,IAAI,CAACtH,YAAY,CAAC;MAC/B,IAAI,CAACuH,KAAK,CAAC,cAAc,CAAC;IAC5B;IAEA,IAAI;MACF,IAAI,CAACA,KAAK,CAAC,YAAY,CAAC;IAC1B,CAAC,CAAC,OAAOC,GAAG,EAAE;MACZ,IAAI,CAAClG,MAAM,CAACmG,IAAI,CAAC,yCAAyC,EAAED,GAAG,CAAC;IAClE;IAEA,OAAO,IAAI,CAAC/I,UAAU,CAACiJ,MAAM,CAACrK,MAAM,EAAE;MACpC,IAAI;QACF,IAAI,CAACoB,UAAU,CAACkJ,MAAM,CAAC,IAAI,CAAClJ,UAAU,CAACiJ,MAAM,CAAC,CAAC,CAAC,CAAC;MACnD,CAAC,CAAC,OAAOF,GAAG,EAAE;QACZ,IAAI,CAAClG,MAAM,CAACmG,IAAI,CAAC,0CAA0C,EAAED,GAAG,CAAC;MACnE;IACF;IAEA,IAAI,CAAClG,MAAM,CAACC,IAAI,CAAC,uCAAuC,CAAC;;IAEzD;IACA;IACA,OAAOuC,QAAA,CAAAnG,OAAA,CAAQoG,OAAO,EAAE;EAC1B,CAAC;EAKD;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE6D,OAAO,WAAAA,QAAA,EAAG;IAAA,IAAAC,MAAA;IACR,IAAI,CAACvG,MAAM,CAACC,IAAI,CAAC,gCAAgC,CAAC;IAElD,IAAOlC,UAAU,GAAI,IAAI,CAAlBA,UAAU;IACjB,IAAMyI,MAAM,GAAG,IAAAC,OAAA,CAAApK,OAAA,EAAM,IAAI,CAACc,UAAU,CAACiJ,MAAM,CAAC;;IAE5C;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,IAAI,CAACnI,MAAM,CAACC,kBAAkB,EAAE;MAClC,OACE,IAAI,CAACD,MAAM,CACRC,kBAAkB,CAAC,IAAI,CAAC4E,KAAK;MAC9B;MAAA,CACCc,IAAI,CAAC,UAACnD,GAAG;QAAA,OAAK8F,MAAI,CAACzD,KAAK,CAACoC,aAAa,CAACwB,yBAAyB,CAAC;UAACjG,GAAG,EAAHA;QAAG,CAAC,CAAC;MAAA,EAAC;IAE/E;IAEA,IAAI,IAAI,CAACqC,KAAK,CAAC6D,QAAQ,CAACC,QAAQ,EAAE;MAChC,IAAI,CAAC9D,KAAK,CAAC6D,QAAQ,CAACC,QAAQ,CAACC,uBAAuB,EAAE;IACxD;IAEA,OAAO9I,UAAU,CACduI,OAAO,EAAE,CACT1C,IAAI,CAAC,UAACkD,EAAE,EAAK;MACZ;MACA,IAAIP,MAAI,CAAC7H,YAAY,EAAE;QACrBsH,YAAY,CAACO,MAAI,CAAC7H,YAAY,CAAC;QAC/B6H,MAAI,CAACN,KAAK,CAAC,cAAc,CAAC;MAC5B;MACAM,MAAI,CAACxI,UAAU,GAAG+I,EAAE;MAEpB,OAAOtE,QAAA,CAAAnG,OAAA,CAAQ0K,GAAG,CAChBP,MAAM,CAACQ,GAAG,CAAC,UAAC1J,KAAK;QAAA,OACfiJ,MAAI,CAACpE,SAAS,CAAC7E,KAAK,CAACR,KAAK;QACxB;QAAA,CACC8G,IAAI,CAAC,UAACiB,CAAC,EAAK;UACX0B,MAAI,CAACvG,MAAM,CAACC,IAAI,oCAAAN,MAAA,CAAoCrC,KAAK,CAACR,KAAK,EAAG;UAElE,OAAOQ,KAAK,CACT2J,MAAM,EAAE,CACR5E,KAAK,CAAC,UAAC6D,GAAG,EAAK;YACdK,MAAI,CAACvG,MAAM,CAACmG,IAAI,CAAC,0CAA0C,EAAED,GAAG,CAAC;UACnE,CAAC,CAAC,CACDtC,IAAI,CAAC,YAAM;YACV2C,MAAI,CAACpJ,UAAU,CAACkJ,MAAM,CAAC/I,KAAK,CAACR,KAAK,CAAC;YACnCyJ,MAAI,CAACpJ,UAAU,CAAC2H,GAAG,CAACD,CAAC,CAAC;UACxB,CAAC,CAAC;QACN,CAAC,CAAC;MAAA,EACL,CACF;IACH,CAAC,CAAC,CACDjB,IAAI,CAAC,YAAM;MACV2C,MAAI,CAACnB,eAAe,CAACmB,MAAI,CAACxI,UAAU,CAACoH,OAAO,CAAC;IAC/C,CAAC,CAAC,CACD9C,KAAK,CAAC,UAAC+B,KAAK,EAAK;MAChB,IAAO8C,mBAAmB,GAAIhD,oBAAW,CAAlCgD,mBAAmB;MAE1B,IAAI9C,KAAK,YAAY8C,mBAAmB,EAAE;QACxC;QACAX,MAAI,CAACN,KAAK,CAAC,YAAY,CAAC;QACxB,OAAOM,MAAI,CAACpJ,UAAU,CAACiJ,MAAM,CAACrK,MAAM,EAAE;UACpC,IAAI;YACFwK,MAAI,CAACpJ,UAAU,CAACkJ,MAAM,CAACE,MAAI,CAACpJ,UAAU,CAACiJ,MAAM,CAAC,CAAC,CAAC,CAAC;UACnD,CAAC,CAAC,OAAOF,GAAG,EAAE;YACZK,MAAI,CAACvG,MAAM,CAACmG,IAAI,CAAC,0CAA0C,EAAED,GAAG,CAAC;UACnE;QACF;QACAK,MAAI,CAACzD,KAAK,CAACqE,OAAO,CAAC,4BAA4B,CAAC;MAClD;MAEA,OAAO3E,QAAA,CAAAnG,OAAA,CAAQ2H,MAAM,CAACI,KAAK,CAAC;IAC9B,CAAC,CAAC;EACN,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACEgB,eAAe,WAAAA,gBAACD,OAAO,EAAE;IAAA,IAAAiC,MAAA;IACvB,IAAMC,SAAS,GAAGlC,OAAO,GAAG,IAAAmC,IAAA,CAAAjL,OAAA,GAAU;IAEtC,IAAIgL,SAAS,GAAG,CAAC,EAAE;MACjB,IAAME,aAAa,GAAG,IAAI,CAACpG,kBAAkB,CAACkG,SAAS,CAAC;MAExD,IAAI,CAAC3I,YAAY,GAAG,IAAA8I,4BAAc,EAAC;QAAA,OAAMJ,MAAI,CAACd,OAAO,EAAE;MAAA,GAAEiB,aAAa,CAAC;IACzE,CAAC,MAAM;MACL,IAAI,CAACjB,OAAO,EAAE;IAChB;EACF,CAAC;EAAAmB,OAAA;AACH,CAAC,OAAAC,0BAAA,CAAArL,OAAA,EAAAxB,IAAA,mBAAAN,IAAA,EAAAC,KAAA,OAAAmN,yBAAA,CAAAtL,OAAA,EAAAxB,IAAA,mBAAAA,IAAA,OAAA6M,0BAAA,CAAArL,OAAA,EAAAxB,IAAA,iBAAAJ,KAAA,OAAAkN,yBAAA,CAAAtL,OAAA,EAAAxB,IAAA,iBAAAA,IAAA,OAAA6M,0BAAA,CAAArL,OAAA,EAAAxB,IAAA,iBAtJE+B,iBAAS,EAAAlC,KAAA,OAAAiN,yBAAA,CAAAtL,OAAA,EAAAxB,IAAA,iBAAAA,IAAA,OAAA6M,0BAAA,CAAArL,OAAA,EAAAxB,IAAA,cAyCT+B,iBAAS,EAAAjC,KAAA,EAAAC,KAAA,OAAA+M,yBAAA,CAAAtL,OAAA,EAAAxB,IAAA,cAAAA,IAAA,IAAAA,IAAA,GA6GV;AAAC,IAAA+M,QAAA,GAEYnL,WAAW;AAAAoL,OAAA,CAAAxL,OAAA,GAAAuL,QAAA"}
1
+ {"version":3,"names":["_querystring","_interopRequireDefault","require","_url","_jsonwebtoken","_common","_commonTimers","_webexPlugin","_decorators","_grantErrors","_scope","_token","_tokenCollection","_dec","_dec2","_dec3","_dec4","_dec5","_dec6","_obj","ownKeys","object","enumerableOnly","keys","_Object$keys2","_Object$getOwnPropertySymbols","symbols","filter","sym","_Object$getOwnPropertyDescriptor2","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","Object","forEach","key","_defineProperty2","default","_Object$getOwnPropertyDescriptors","_Object$defineProperties","_Object$defineProperty","Credentials","WebexPlugin","extend","oneFlight","keyFactory","scope","waitForValue","persist","whileInFlight","collections","userTokens","TokenCollection","dataTypes","token","makeStateDataType","Token","dataType","derived","canAuthorize","deps","fn","Boolean","supertoken","canRefresh","config","jwtRefreshCallback","props","prop","namespace","session","isRefreshing","type","ready","refreshTimer","undefined","buildLoginUrl","options","clientType","state","_isObject2","Error","client_id","redirect_uri","_cloneDeep2","response_type","_deleteProperty","_isEmpty2","base64","toBase64Url","_stringify","concat","authorizeUrl","querystring","stringify","getOrgId","logger","info","extractOrgIdFromJWT","access_token","e","_this$supertoken","extractOrgIdFromUserToken","f","decodedJWT","jwt","decode","realm","fields","split","buildLogoutUrl","logoutUrl","cisService","service","goto","calcRefreshTimeout","expiration","Math","floor","random","constructor","_this","_dataTypes","_keys","set","bind","_len","args","Array","_key","_apply","downscope","_this2","catch","reason","trace","_promise","resolve","serialize","parent","getClientToken","_this3","webex","request","method","uri","tokenUrl","form","grant_type","self_contained_token","auth","user","pass","client_secret","sendImmediately","shouldRefreshAccessToken","then","res","body","statusCode","reject","ErrorConstructor","grantErrors","select","error","_res","getUserToken","_this4","once","filterScope","sortScope","get","tap","t","add","initialize","attrs","_this5","authorization","expires","scheduleRefresh","prototype","listenToOnce","authorizationString","parsed","url","parse","query","href","substr","indexOf","invalidate","clearTimeout","unset","err","warn","models","remove","refresh","_this6","tokens","_clone2","requestAccessTokenFromJwt","internal","services","updateCredentialsConfig","st","all","map","revoke","InvalidRequestError","trigger","_this7","expiresIn","_now","timeoutLength","safeSetTimeout","version","_applyDecoratedDescriptor2","_getOwnPropertyDescriptor","_default","exports"],"sources":["credentials.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport querystring from 'querystring';\nimport url from 'url';\n\nimport jwt from 'jsonwebtoken';\nimport {base64, makeStateDataType, oneFlight, tap, whileInFlight} from '@webex/common';\nimport {safeSetTimeout} from '@webex/common-timers';\nimport {clone, cloneDeep, isObject, isEmpty} from 'lodash';\n\nimport WebexPlugin from '../webex-plugin';\nimport {persist, waitForValue} from '../storage/decorators';\n\nimport grantErrors from './grant-errors';\nimport {filterScope, sortScope} from './scope';\nimport Token from './token';\nimport TokenCollection from './token-collection';\n\n/**\n * @class\n */\nconst Credentials = WebexPlugin.extend({\n collections: {\n userTokens: TokenCollection,\n },\n\n dataTypes: {\n token: makeStateDataType(Token, 'token').dataType,\n },\n\n derived: {\n canAuthorize: {\n deps: ['supertoken', 'supertoken.canAuthorize', 'canRefresh'],\n fn() {\n return Boolean((this.supertoken && this.supertoken.canAuthorize) || this.canRefresh);\n },\n },\n canRefresh: {\n deps: ['supertoken', 'supertoken.canRefresh'],\n fn() {\n // If we're operating in JWT mode, we have to delegate to the consumer\n if (this.config.jwtRefreshCallback) {\n return true;\n }\n\n return Boolean(this.supertoken && this.supertoken.canRefresh);\n },\n },\n },\n\n props: {\n supertoken: makeStateDataType(Token, 'token').prop,\n },\n\n namespace: 'Credentials',\n\n session: {\n isRefreshing: {\n default: false,\n type: 'boolean',\n },\n /**\n * Becomes `true` once the {@link loaded} event fires.\n * @see {@link WebexPlugin#ready}\n * @instance\n * @memberof Credentials\n * @type {boolean}\n */\n ready: {\n default: false,\n type: 'boolean',\n },\n refreshTimer: {\n default: undefined,\n type: 'any',\n },\n },\n\n /**\n * Generates an OAuth Login URL. Prefers the api.ciscospark.com proxy if the\n * instance is initialize with an authorizatUrl, but fallsback to idbroker\n * as the base otherwise.\n * @instance\n * @memberof Credentials\n * @param {Object} [options={}]\n * @returns {string}\n */\n buildLoginUrl(options = {clientType: 'public'}) {\n /* eslint-disable camelcase */\n if (options.state && !isObject(options.state)) {\n throw new Error('if specified, `options.state` must be an object');\n }\n\n options.client_id = this.config.client_id;\n options.redirect_uri = this.config.redirect_uri;\n options.scope = this.config.scope;\n\n options = cloneDeep(options);\n\n if (!options.response_type) {\n options.response_type = options.clientType === 'public' ? 'token' : 'code';\n }\n Reflect.deleteProperty(options, 'clientType');\n\n if (options.state) {\n if (!isEmpty(options.state)) {\n options.state = base64.toBase64Url(JSON.stringify(options.state));\n } else {\n delete options.state;\n }\n }\n\n return `${this.config.authorizeUrl}?${querystring.stringify(options)}`;\n /* eslint-enable camelcase */\n },\n\n /**\n * Get the determined OrgId.\n *\n * @throws {Error} - If the OrgId could not be determined.\n * @returns {string} - The OrgId.\n */\n getOrgId() {\n this.logger.info('credentials: attempting to retrieve the OrgId from token');\n\n try {\n // Attempt to extract a client-authenticated token's OrgId.\n this.logger.info('credentials: trying to extract OrgId from JWT');\n\n return this.extractOrgIdFromJWT(this.supertoken.access_token);\n } catch (e) {\n // Attempt to extract a user token's OrgId.\n this.logger.info('credentials: could not extract OrgId from JWT');\n this.logger.info('credentials: attempting to extract OrgId from user token');\n\n try {\n return this.extractOrgIdFromUserToken(this.supertoken?.access_token);\n } catch (f) {\n this.logger.info('credentials: could not extract OrgId from user token');\n throw f;\n }\n }\n },\n\n /**\n * Extract the OrgId [realm] from a provided JWT.\n *\n * @private\n * @param {string} token - The JWT to extract the OrgId from.\n * @throws {Error} - If the token does not pass JWT general/realm validation.\n * @returns {string} - The OrgId.\n */\n extractOrgIdFromJWT(token = '') {\n // Decoded the provided token.\n const decodedJWT = jwt.decode(token);\n\n // Validate that the provided token is a JWT.\n if (!decodedJWT) {\n throw new Error('unable to extract the OrgId from the provided JWT');\n }\n\n if (!decodedJWT.realm) {\n throw new Error('the provided JWT does not contain an OrgId');\n }\n\n // Return the OrgId [realm].\n return decodedJWT.realm;\n },\n\n /**\n * Extract the OrgId [realm] from a provided user token.\n *\n * @private\n * @param {string} token - The user token to extract the OrgId from.\n * @throws {Error} - Will throw an error if the provided token is invalid.\n * @returns {string} - The OrgId.\n */\n extractOrgIdFromUserToken(token = '') {\n // Split the provided token into subsections.\n const fields = token.split('_');\n\n // Validate that the provided token has the proper amount of sections.\n if (fields.length !== 3) {\n throw new Error('the provided token is not a valid format');\n }\n\n // Return the token section that contains the OrgId.\n return fields[2];\n },\n\n /**\n * Generates a Logout URL\n * @instance\n * @memberof Credentials\n * @param {Object} [options={}]\n * @returns {[type]}\n */\n buildLogoutUrl(options = {}) {\n return `${this.config.logoutUrl}?${querystring.stringify({\n cisService: this.config.service,\n goto: this.config.redirect_uri,\n ...options,\n })}`;\n },\n\n /**\n * Generates a number between 60% - 90% of expired value\n * @instance\n * @memberof Credentials\n * @param {number} expiration\n * @private\n * @returns {number}\n */\n calcRefreshTimeout(expiration) {\n return Math.floor(((Math.floor(Math.random() * 4) + 6) / 10) * expiration);\n },\n\n constructor(...args) {\n // HACK to deal with the fact that AmpersandState#dataTypes#set is a pure\n // function.\n this._dataTypes = cloneDeep(this._dataTypes);\n Object.keys(this._dataTypes).forEach((key) => {\n if (this._dataTypes[key].set) {\n this._dataTypes[key].set = this._dataTypes[key].set.bind(this);\n }\n });\n // END HACK\n Reflect.apply(WebexPlugin, this, args);\n },\n\n /**\n * Downscopes a token\n * @instance\n * @memberof Credentials\n * @param {string} scope\n * @private\n * @returns {Promise<Token>}\n */\n downscope(scope) {\n return this.supertoken.downscope(scope).catch((reason) => {\n this.logger.trace(`credentials: failed to downscope supertoken to ${scope}`, reason);\n this.logger.trace(`credentials: falling back to supertoken for ${scope}`);\n\n return Promise.resolve(new Token({scope, ...this.supertoken.serialize()}), {\n parent: this,\n });\n });\n },\n\n /**\n * Requests a client credentials grant and returns the token. Given the\n * limited use for such tokens as this time, this method does not cache its\n * token.\n * @instance\n * @memberof Credentials\n * @param {Object} options\n * @returns {Promise<Token>}\n */\n getClientToken(options = {}) {\n this.logger.info('credentials: requesting client credentials grant');\n\n return this.webex\n .request({\n /* eslint-disable camelcase */\n method: 'POST',\n uri: options.uri || this.config.tokenUrl,\n form: {\n grant_type: 'client_credentials',\n scope: options.scope || 'webexsquare:admin',\n self_contained_token: true,\n },\n auth: {\n user: this.config.client_id,\n pass: this.config.client_secret,\n sendImmediately: true,\n },\n shouldRefreshAccessToken: false,\n /* eslint-enable camelcase */\n })\n .then((res) => new Token(res.body, {parent: this}))\n .catch((res) => {\n if (res.statusCode !== 400) {\n return Promise.reject(res);\n }\n\n const ErrorConstructor = grantErrors.select(res.body.error);\n\n return Promise.reject(new ErrorConstructor(res._res || res));\n });\n },\n\n @oneFlight({keyFactory: (scope) => scope})\n @waitForValue('@')\n /**\n * Resolves with a token with the specified scopes. If no scope is specified,\n * defaults to omit(webex.credentials.scope, 'spark:kms'). If no such token is\n * available, downscopes the supertoken to that scope.\n * @instance\n * @memberof Credentials\n * @param {string} scope\n * @returns {Promise<Token>}\n */\n getUserToken(scope) {\n return Promise.resolve(\n !this.isRefreshing ||\n new Promise((resolve) => {\n this.logger.info(\n 'credentials: token refresh inflight; delaying getUserToken until refresh completes'\n );\n this.once('change:isRefreshing', () => {\n this.logger.info('credentials: token refresh complete; reinvoking getUserToken');\n resolve();\n });\n })\n ).then(() => {\n if (!this.canAuthorize) {\n this.logger.info('credentials: cannot produce an access token from current state');\n\n return Promise.reject(new Error('Current state cannot produce an access token'));\n }\n\n if (!scope) {\n scope = filterScope('spark:kms', this.config.scope);\n }\n\n scope = sortScope(scope);\n\n if (scope === sortScope(this.config.scope)) {\n return Promise.resolve(this.supertoken);\n }\n\n const token = this.userTokens.get(scope);\n\n // we should also check for the token.access_token since token object does\n // not get cleared on unsetting while logging out.\n if (!token || !token.access_token) {\n return this.downscope(scope).then(tap((t) => this.userTokens.add(t)));\n }\n\n return Promise.resolve(token);\n });\n },\n\n @persist('@')\n /**\n * Initializer\n * @instance\n * @memberof Credentials\n * @param {Object} attrs\n * @param {Object} options\n * @private\n * @returns {Credentials}\n */\n initialize(attrs, options) {\n if (attrs) {\n if (typeof attrs === 'string') {\n this.supertoken = attrs;\n }\n\n if (attrs.access_token) {\n this.supertoken = attrs;\n }\n\n if (attrs.authorization) {\n if (attrs.authorization.supertoken) {\n this.supertoken = attrs.authorization.supertoken;\n } else {\n this.supertoken = attrs.authorization;\n }\n }\n\n // schedule refresh\n if (this.supertoken && this.supertoken.expires) {\n this.scheduleRefresh(this.supertoken.expires);\n }\n }\n\n Reflect.apply(WebexPlugin.prototype.initialize, this, [attrs, options]);\n\n this.listenToOnce(this.parent, 'change:config', () => {\n if (this.config.authorizationString) {\n const parsed = url.parse(this.config.authorizationString, true);\n\n /* eslint-disable camelcase */\n this.config.client_id = parsed.query.client_id;\n this.config.redirect_uri = parsed.query.redirect_uri;\n this.config.scope = parsed.query.scope;\n this.config.authorizeUrl = parsed.href.substr(0, parsed.href.indexOf('?'));\n /* eslint-enable camelcase */\n }\n });\n\n this.webex.once('loaded', () => {\n this.ready = true;\n });\n },\n\n @oneFlight\n @waitForValue('@')\n /**\n * Clears all tokens from store them from the stores.\n *\n * This is no longer quite the right name for this method, but all of the\n * alternatives I'm coming up with are already taken.\n * @instance\n * @memberof Credentials\n * @returns {Promise}\n */\n invalidate() {\n this.logger.info('credentials: invalidating tokens');\n\n // clear refresh timer\n if (this.refreshTimer) {\n clearTimeout(this.refreshTimer);\n this.unset('refreshTimer');\n }\n\n try {\n this.unset('supertoken');\n } catch (err) {\n this.logger.warn('credentials: failed to clear supertoken', err);\n }\n\n while (this.userTokens.models.length) {\n try {\n this.userTokens.remove(this.userTokens.models[0]);\n } catch (err) {\n this.logger.warn('credentials: failed to remove user token', err);\n }\n }\n\n this.logger.info('credentials: finished removing tokens');\n\n // Return a promise to give the storage layer a tick or two to clear\n // localStorage\n return Promise.resolve();\n },\n\n @oneFlight\n @whileInFlight('isRefreshing')\n @waitForValue('@')\n /**\n * Removes the supertoken and child tokens, then refreshes the supertoken;\n * subsequent calls to {@link Credentials#getUserToken()} will re-downscope\n * child tokens. Enqueus revocation of previous previousTokens. Yes, that's\n * the correct number of \"previous\"es.\n * @instance\n * @memberof Credentials\n * @returns {Promise}\n */\n refresh() {\n this.logger.info('credentials: refresh requested');\n\n const {supertoken} = this;\n const tokens = clone(this.userTokens.models);\n\n // This is kind of a leaky abstraction, since it relies on the authorization\n // plugin, but the only alternatives I see are\n // 1. put all JWT support in core\n // 2. have separate jwt and non-jwt auth plugins\n // while I like #2 from a code simplicity standpoint, the third-party DX\n // isn't great\n if (this.config.jwtRefreshCallback) {\n return (\n this.config\n .jwtRefreshCallback(this.webex)\n // eslint-disable-next-line no-shadow\n .then((jwt) => this.webex.authorization.requestAccessTokenFromJwt({jwt}))\n );\n }\n\n if (this.webex.internal.services) {\n this.webex.internal.services.updateCredentialsConfig();\n }\n\n return supertoken\n .refresh()\n .then((st) => {\n // clear refresh timer\n if (this.refreshTimer) {\n clearTimeout(this.refreshTimer);\n this.unset('refreshTimer');\n }\n this.supertoken = st;\n\n return Promise.all(\n tokens.map((token) =>\n this.downscope(token.scope)\n // eslint-disable-next-line max-nested-callbacks\n .then((t) => {\n this.logger.info(`credentials: revoking token for ${token.scope}`);\n\n return token\n .revoke()\n .catch((err) => {\n this.logger.warn('credentials: failed to revoke user token', err);\n })\n .then(() => {\n this.userTokens.remove(token.scope);\n this.userTokens.add(t);\n });\n })\n )\n );\n })\n .then(() => {\n this.scheduleRefresh(this.supertoken.expires);\n })\n .catch((error) => {\n const {InvalidRequestError} = grantErrors;\n\n if (error instanceof InvalidRequestError) {\n // Error: The refresh token provided is expired, revoked, malformed, or invalid. Hence emit an event to the client, an opportunity to logout.\n this.unset('supertoken');\n while (this.userTokens.models.length) {\n try {\n this.userTokens.remove(this.userTokens.models[0]);\n } catch (err) {\n this.logger.warn('credentials: failed to remove user token', err);\n }\n }\n this.webex.trigger('client:InvalidRequestError');\n }\n\n return Promise.reject(error);\n });\n },\n\n /**\n * Schedules a token refresh or refreshes the token if token has expired\n * @instance\n * @memberof Credentials\n * @param {number} expires\n * @private\n * @returns {undefined}\n */\n scheduleRefresh(expires) {\n const expiresIn = expires - Date.now();\n\n if (expiresIn > 0) {\n const timeoutLength = this.calcRefreshTimeout(expiresIn);\n\n this.refreshTimer = safeSetTimeout(() => this.refresh(), timeoutLength);\n } else {\n this.refresh();\n }\n },\n});\n\nexport default Credentials;\n"],"mappings":"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"}
@@ -16,8 +16,8 @@ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime-corejs2/he
16
16
  var _common = require("@webex/common");
17
17
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = _Reflect$construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
18
18
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !_Reflect$construct) return false; if (_Reflect$construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
19
- /**
20
- * Error thrown during oauth flow
19
+ /**
20
+ * Error thrown during oauth flow
21
21
  */
22
22
  var OAuthError = /*#__PURE__*/function (_Exception) {
23
23
  (0, _inherits2.default)(OAuthError, _Exception);
@@ -29,9 +29,9 @@ var OAuthError = /*#__PURE__*/function (_Exception) {
29
29
  (0, _createClass2.default)(OAuthError, [{
30
30
  key: "parse",
31
31
  value:
32
- /**
33
- * @param {HttpResponse} res
34
- * @returns {string}
32
+ /**
33
+ * @param {HttpResponse} res
34
+ * @returns {string}
35
35
  */
36
36
  function parse(res) {
37
37
  // This error may be returned in an HTTPResponse or as part of a querystring
@@ -59,8 +59,8 @@ var OAuthError = /*#__PURE__*/function (_Exception) {
59
59
  }]);
60
60
  return OAuthError;
61
61
  }(_common.Exception);
62
- /**
63
- * InvalidRequestError
62
+ /**
63
+ * InvalidRequestError
64
64
  */
65
65
  exports.OAuthError = OAuthError;
66
66
  var InvalidRequestError = /*#__PURE__*/function (_OAuthError) {
@@ -72,8 +72,8 @@ var InvalidRequestError = /*#__PURE__*/function (_OAuthError) {
72
72
  }
73
73
  return (0, _createClass2.default)(InvalidRequestError);
74
74
  }(OAuthError);
75
- /**
76
- * InvalidClientError
75
+ /**
76
+ * InvalidClientError
77
77
  */
78
78
  var InvalidClientError = /*#__PURE__*/function (_OAuthError2) {
79
79
  (0, _inherits2.default)(InvalidClientError, _OAuthError2);
@@ -84,8 +84,8 @@ var InvalidClientError = /*#__PURE__*/function (_OAuthError2) {
84
84
  }
85
85
  return (0, _createClass2.default)(InvalidClientError);
86
86
  }(OAuthError);
87
- /**
88
- * InvalidGrantError
87
+ /**
88
+ * InvalidGrantError
89
89
  */
90
90
  var InvalidGrantError = /*#__PURE__*/function (_OAuthError3) {
91
91
  (0, _inherits2.default)(InvalidGrantError, _OAuthError3);
@@ -96,8 +96,8 @@ var InvalidGrantError = /*#__PURE__*/function (_OAuthError3) {
96
96
  }
97
97
  return (0, _createClass2.default)(InvalidGrantError);
98
98
  }(OAuthError);
99
- /**
100
- * UnauthorizedClientError
99
+ /**
100
+ * UnauthorizedClientError
101
101
  */
102
102
  var UnauthorizedClientError = /*#__PURE__*/function (_OAuthError4) {
103
103
  (0, _inherits2.default)(UnauthorizedClientError, _OAuthError4);
@@ -108,8 +108,8 @@ var UnauthorizedClientError = /*#__PURE__*/function (_OAuthError4) {
108
108
  }
109
109
  return (0, _createClass2.default)(UnauthorizedClientError);
110
110
  }(OAuthError);
111
- /**
112
- * UnsupportGrantTypeError
111
+ /**
112
+ * UnsupportGrantTypeError
113
113
  */
114
114
  var UnsupportGrantTypeError = /*#__PURE__*/function (_OAuthError5) {
115
115
  (0, _inherits2.default)(UnsupportGrantTypeError, _OAuthError5);
@@ -120,8 +120,8 @@ var UnsupportGrantTypeError = /*#__PURE__*/function (_OAuthError5) {
120
120
  }
121
121
  return (0, _createClass2.default)(UnsupportGrantTypeError);
122
122
  }(OAuthError);
123
- /**
124
- * InvalidScopeError
123
+ /**
124
+ * InvalidScopeError
125
125
  */
126
126
  var InvalidScopeError = /*#__PURE__*/function (_OAuthError6) {
127
127
  (0, _inherits2.default)(InvalidScopeError, _OAuthError6);
@@ -1 +1 @@
1
- {"version":3,"names":["_common","require","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","default","result","NewTarget","constructor","_Reflect$construct","arguments","apply","_possibleConstructorReturn2","Reflect","sham","Proxy","Boolean","prototype","valueOf","call","e","OAuthError","_Exception","_inherits2","_super","_classCallCheck2","_createClass2","key","value","parse","res","body","_defineProperties","error","enumerable","errorDescription","error_description","errorUri","error_uri","Exception","exports","InvalidRequestError","_OAuthError","_super2","InvalidClientError","_OAuthError2","_super3","InvalidGrantError","_OAuthError3","_super4","UnauthorizedClientError","_OAuthError4","_super5","UnsupportGrantTypeError","_OAuthError5","_super6","InvalidScopeError","_OAuthError6","_super7","errors","invalid_request","invalid_client","invalid_grant","unauthorized_client","unsupported_grant_type","invalid_scope","select","errorString","_default"],"sources":["grant-errors.js"],"sourcesContent":["/*!\r\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\r\n */\r\n\r\n/* eslint camelcase: [0] */\r\n\r\nimport {Exception} from '@webex/common';\r\n\r\n/**\r\n * Error thrown during oauth flow\r\n */\r\nexport class OAuthError extends Exception {\r\n /**\r\n * @param {HttpResponse} res\r\n * @returns {string}\r\n */\r\n parse(res) {\r\n // This error may be returned in an HTTPResponse or as part of a querystring\r\n const body = res.body || res;\r\n\r\n Object.defineProperties(this, {\r\n error: {\r\n enumerable: true,\r\n value: body.error,\r\n },\r\n errorDescription: {\r\n enumerable: true,\r\n value: body.error_description,\r\n },\r\n errorUri: {\r\n enumerable: true,\r\n value: body.error_uri,\r\n },\r\n res: {\r\n enumerable: false,\r\n value: res,\r\n },\r\n });\r\n\r\n return this.errorDescription;\r\n }\r\n}\r\n/**\r\n * InvalidRequestError\r\n */\r\nclass InvalidRequestError extends OAuthError {}\r\n\r\n/**\r\n * InvalidClientError\r\n */\r\nclass InvalidClientError extends OAuthError {}\r\n\r\n/**\r\n * InvalidGrantError\r\n */\r\nclass InvalidGrantError extends OAuthError {}\r\n\r\n/**\r\n * UnauthorizedClientError\r\n */\r\nclass UnauthorizedClientError extends OAuthError {}\r\n\r\n/**\r\n * UnsupportGrantTypeError\r\n */\r\nclass UnsupportGrantTypeError extends OAuthError {}\r\n\r\n/**\r\n * InvalidScopeError\r\n */\r\nclass InvalidScopeError extends OAuthError {}\r\n\r\nconst errors = {\r\n OAuthError,\r\n InvalidRequestError,\r\n InvalidClientError,\r\n InvalidGrantError,\r\n UnauthorizedClientError,\r\n UnsupportGrantTypeError,\r\n InvalidScopeError,\r\n invalid_request: InvalidRequestError,\r\n invalid_client: InvalidClientError,\r\n invalid_grant: InvalidGrantError,\r\n unauthorized_client: UnauthorizedClientError,\r\n unsupported_grant_type: UnsupportGrantTypeError,\r\n invalid_scope: InvalidScopeError,\r\n select(errorString) {\r\n return errors[errorString] || OAuthError;\r\n },\r\n};\r\n\r\nexport default errors;\r\n"],"mappings":"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"}
1
+ {"version":3,"names":["_common","require","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","default","result","NewTarget","constructor","_Reflect$construct","arguments","apply","_possibleConstructorReturn2","Reflect","sham","Proxy","Boolean","prototype","valueOf","call","e","OAuthError","_Exception","_inherits2","_super","_classCallCheck2","_createClass2","key","value","parse","res","body","_defineProperties","error","enumerable","errorDescription","error_description","errorUri","error_uri","Exception","exports","InvalidRequestError","_OAuthError","_super2","InvalidClientError","_OAuthError2","_super3","InvalidGrantError","_OAuthError3","_super4","UnauthorizedClientError","_OAuthError4","_super5","UnsupportGrantTypeError","_OAuthError5","_super6","InvalidScopeError","_OAuthError6","_super7","errors","invalid_request","invalid_client","invalid_grant","unauthorized_client","unsupported_grant_type","invalid_scope","select","errorString","_default"],"sources":["grant-errors.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\n/* eslint camelcase: [0] */\n\nimport {Exception} from '@webex/common';\n\n/**\n * Error thrown during oauth flow\n */\nexport class OAuthError extends Exception {\n /**\n * @param {HttpResponse} res\n * @returns {string}\n */\n parse(res) {\n // This error may be returned in an HTTPResponse or as part of a querystring\n const body = res.body || res;\n\n Object.defineProperties(this, {\n error: {\n enumerable: true,\n value: body.error,\n },\n errorDescription: {\n enumerable: true,\n value: body.error_description,\n },\n errorUri: {\n enumerable: true,\n value: body.error_uri,\n },\n res: {\n enumerable: false,\n value: res,\n },\n });\n\n return this.errorDescription;\n }\n}\n/**\n * InvalidRequestError\n */\nclass InvalidRequestError extends OAuthError {}\n\n/**\n * InvalidClientError\n */\nclass InvalidClientError extends OAuthError {}\n\n/**\n * InvalidGrantError\n */\nclass InvalidGrantError extends OAuthError {}\n\n/**\n * UnauthorizedClientError\n */\nclass UnauthorizedClientError extends OAuthError {}\n\n/**\n * UnsupportGrantTypeError\n */\nclass UnsupportGrantTypeError extends OAuthError {}\n\n/**\n * InvalidScopeError\n */\nclass InvalidScopeError extends OAuthError {}\n\nconst errors = {\n OAuthError,\n InvalidRequestError,\n InvalidClientError,\n InvalidGrantError,\n UnauthorizedClientError,\n UnsupportGrantTypeError,\n InvalidScopeError,\n invalid_request: InvalidRequestError,\n invalid_client: InvalidClientError,\n invalid_grant: InvalidGrantError,\n unauthorized_client: UnauthorizedClientError,\n unsupported_grant_type: UnsupportGrantTypeError,\n invalid_scope: InvalidScopeError,\n select(errorString) {\n return errors[errorString] || OAuthError;\n },\n};\n\nexport default errors;\n"],"mappings":"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"}
@@ -40,8 +40,8 @@ var _credentials = _interopRequireDefault(require("./credentials"));
40
40
  var _scope = require("./scope");
41
41
  var _token = _interopRequireDefault(require("./token"));
42
42
  var _grantErrors = _interopRequireDefault(require("./grant-errors"));
43
- /*!
44
- * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
43
+ /*!
44
+ * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
45
45
  */
46
46
 
47
47
  (0, _webexCore.registerPlugin)('credentials', _credentials.default, {
@@ -1 +1 @@
1
- {"version":3,"names":["_webexCore","require","_credentials","_interopRequireDefault","_scope","_token","_grantErrors","registerPlugin","Credentials","proxies"],"sources":["index.js"],"sourcesContent":["/*!\r\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\r\n */\r\n\r\nimport {registerPlugin} from '../../webex-core';\r\n\r\nimport Credentials from './credentials';\r\n\r\nregisterPlugin('credentials', Credentials, {\r\n proxies: ['canAuthorize', 'canRefresh'],\r\n});\r\n\r\nexport {default as Credentials} from './credentials';\r\nexport {filterScope, sortScope} from './scope';\r\nexport {default as Token} from './token';\r\nexport {default as grantErrors} from './grant-errors';\r\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,IAAAA,UAAA,GAAAC,OAAA;AAEA,IAAAC,YAAA,GAAAC,sBAAA,CAAAF,OAAA;AAOA,IAAAG,MAAA,GAAAH,OAAA;AACA,IAAAI,MAAA,GAAAF,sBAAA,CAAAF,OAAA;AACA,IAAAK,YAAA,GAAAH,sBAAA,CAAAF,OAAA;AAfA;AACA;AACA;;AAMA,IAAAM,yBAAc,EAAC,aAAa,EAAEC,oBAAW,EAAE;EACzCC,OAAO,EAAE,CAAC,cAAc,EAAE,YAAY;AACxC,CAAC,CAAC"}
1
+ {"version":3,"names":["_webexCore","require","_credentials","_interopRequireDefault","_scope","_token","_grantErrors","registerPlugin","Credentials","proxies"],"sources":["index.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {registerPlugin} from '../../webex-core';\n\nimport Credentials from './credentials';\n\nregisterPlugin('credentials', Credentials, {\n proxies: ['canAuthorize', 'canRefresh'],\n});\n\nexport {default as Credentials} from './credentials';\nexport {filterScope, sortScope} from './scope';\nexport {default as Token} from './token';\nexport {default as grantErrors} from './grant-errors';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,IAAAA,UAAA,GAAAC,OAAA;AAEA,IAAAC,YAAA,GAAAC,sBAAA,CAAAF,OAAA;AAOA,IAAAG,MAAA,GAAAH,OAAA;AACA,IAAAI,MAAA,GAAAF,sBAAA,CAAAF,OAAA;AACA,IAAAK,YAAA,GAAAH,sBAAA,CAAAF,OAAA;AAfA;AACA;AACA;;AAMA,IAAAM,yBAAc,EAAC,aAAa,EAAEC,oBAAW,EAAE;EACzCC,OAAO,EAAE,CAAC,cAAc,EAAE,YAAY;AACxC,CAAC,CAAC"}
@@ -6,14 +6,14 @@ _Object$defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.filterScope = filterScope;
8
8
  exports.sortScope = sortScope;
9
- /*!
10
- * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
9
+ /*!
10
+ * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
11
11
  */
12
12
 
13
- /**
14
- * sorts a list of scopes
15
- * @param {string} scope
16
- * @returns {string}
13
+ /**
14
+ * sorts a list of scopes
15
+ * @param {string} scope
16
+ * @returns {string}
17
17
  */
18
18
  function sortScope(scope) {
19
19
  if (!scope) {
@@ -22,11 +22,11 @@ function sortScope(scope) {
22
22
  return scope.split(' ').sort().join(' ');
23
23
  }
24
24
 
25
- /**
26
- * sorts a list of scopes and filters the specified scope
27
- * @param {string} toFilter
28
- * @param {string} scope
29
- * @returns {string}
25
+ /**
26
+ * sorts a list of scopes and filters the specified scope
27
+ * @param {string} toFilter
28
+ * @param {string} scope
29
+ * @returns {string}
30
30
  */
31
31
  function filterScope(toFilter, scope) {
32
32
  if (!scope) {
@@ -1 +1 @@
1
- {"version":3,"names":["sortScope","scope","split","sort","join","filterScope","toFilter","filter","item"],"sources":["scope.js"],"sourcesContent":["/*!\r\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\r\n */\r\n\r\n/**\r\n * sorts a list of scopes\r\n * @param {string} scope\r\n * @returns {string}\r\n */\r\nexport function sortScope(scope) {\r\n if (!scope) {\r\n return '';\r\n }\r\n\r\n return scope.split(' ').sort().join(' ');\r\n}\r\n\r\n/**\r\n * sorts a list of scopes and filters the specified scope\r\n * @param {string} toFilter\r\n * @param {string} scope\r\n * @returns {string}\r\n */\r\nexport function filterScope(toFilter, scope) {\r\n if (!scope) {\r\n return '';\r\n }\r\n\r\n return scope\r\n .split(' ')\r\n .filter((item) => item !== toFilter)\r\n .sort()\r\n .join(' ');\r\n}\r\n"],"mappings":";;;;;;;;AAAA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACO,SAASA,SAASA,CAACC,KAAK,EAAE;EAC/B,IAAI,CAACA,KAAK,EAAE;IACV,OAAO,EAAE;EACX;EAEA,OAAOA,KAAK,CAACC,KAAK,CAAC,GAAG,CAAC,CAACC,IAAI,EAAE,CAACC,IAAI,CAAC,GAAG,CAAC;AAC1C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,WAAWA,CAACC,QAAQ,EAAEL,KAAK,EAAE;EAC3C,IAAI,CAACA,KAAK,EAAE;IACV,OAAO,EAAE;EACX;EAEA,OAAOA,KAAK,CACTC,KAAK,CAAC,GAAG,CAAC,CACVK,MAAM,CAAC,UAACC,IAAI;IAAA,OAAKA,IAAI,KAAKF,QAAQ;EAAA,EAAC,CACnCH,IAAI,EAAE,CACNC,IAAI,CAAC,GAAG,CAAC;AACd"}
1
+ {"version":3,"names":["sortScope","scope","split","sort","join","filterScope","toFilter","filter","item"],"sources":["scope.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\n/**\n * sorts a list of scopes\n * @param {string} scope\n * @returns {string}\n */\nexport function sortScope(scope) {\n if (!scope) {\n return '';\n }\n\n return scope.split(' ').sort().join(' ');\n}\n\n/**\n * sorts a list of scopes and filters the specified scope\n * @param {string} toFilter\n * @param {string} scope\n * @returns {string}\n */\nexport function filterScope(toFilter, scope) {\n if (!scope) {\n return '';\n }\n\n return scope\n .split(' ')\n .filter((item) => item !== toFilter)\n .sort()\n .join(' ');\n}\n"],"mappings":";;;;;;;;AAAA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACO,SAASA,SAASA,CAACC,KAAK,EAAE;EAC/B,IAAI,CAACA,KAAK,EAAE;IACV,OAAO,EAAE;EACX;EAEA,OAAOA,KAAK,CAACC,KAAK,CAAC,GAAG,CAAC,CAACC,IAAI,EAAE,CAACC,IAAI,CAAC,GAAG,CAAC;AAC1C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,WAAWA,CAACC,QAAQ,EAAEL,KAAK,EAAE;EAC3C,IAAI,CAACA,KAAK,EAAE;IACV,OAAO,EAAE;EACX;EAEA,OAAOA,KAAK,CACTC,KAAK,CAAC,GAAG,CAAC,CACVK,MAAM,CAAC,UAACC,IAAI;IAAA,OAAKA,IAAI,KAAKF,QAAQ;EAAA,EAAC,CACnCH,IAAI,EAAE,CACNC,IAAI,CAAC,GAAG,CAAC;AACd"}
@@ -8,8 +8,8 @@ _Object$defineProperty(exports, "__esModule", {
8
8
  exports.default = void 0;
9
9
  var _ampersandCollection = _interopRequireDefault(require("ampersand-collection"));
10
10
  var _token = _interopRequireDefault(require("./token"));
11
- /*!
12
- * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
11
+ /*!
12
+ * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
13
13
  */
14
14
 
15
15
  var TokenCollection = _ampersandCollection.default.extend({
@@ -1 +1 @@
1
- {"version":3,"names":["_ampersandCollection","_interopRequireDefault","require","_token","TokenCollection","AmpCollection","extend","mainIndex","model","Token","namespace","_default","exports","default"],"sources":["token-collection.js"],"sourcesContent":["/*!\r\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\r\n */\r\n\r\nimport AmpCollection from 'ampersand-collection';\r\n\r\nimport Token from './token';\r\n\r\nconst TokenCollection = AmpCollection.extend({\r\n mainIndex: 'scope',\r\n\r\n model: Token,\r\n\r\n namespace: 'Credentials',\r\n});\r\n\r\nexport default TokenCollection;\r\n"],"mappings":";;;;;;;;AAIA,IAAAA,oBAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,MAAA,GAAAF,sBAAA,CAAAC,OAAA;AANA;AACA;AACA;;AAMA,IAAME,eAAe,GAAGC,4BAAa,CAACC,MAAM,CAAC;EAC3CC,SAAS,EAAE,OAAO;EAElBC,KAAK,EAAEC,cAAK;EAEZC,SAAS,EAAE;AACb,CAAC,CAAC;AAAC,IAAAC,QAAA,GAEYP,eAAe;AAAAQ,OAAA,CAAAC,OAAA,GAAAF,QAAA"}
1
+ {"version":3,"names":["_ampersandCollection","_interopRequireDefault","require","_token","TokenCollection","AmpCollection","extend","mainIndex","model","Token","namespace","_default","exports","default"],"sources":["token-collection.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport AmpCollection from 'ampersand-collection';\n\nimport Token from './token';\n\nconst TokenCollection = AmpCollection.extend({\n mainIndex: 'scope',\n\n model: Token,\n\n namespace: 'Credentials',\n});\n\nexport default TokenCollection;\n"],"mappings":";;;;;;;;AAIA,IAAAA,oBAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,MAAA,GAAAF,sBAAA,CAAAC,OAAA;AANA;AACA;AACA;;AAMA,IAAME,eAAe,GAAGC,4BAAa,CAACC,MAAM,CAAC;EAC3CC,SAAS,EAAE,OAAO;EAElBC,KAAK,EAAEC,cAAK;EAEZC,SAAS,EAAE;AACb,CAAC,CAAC;AAAC,IAAAC,QAAA,GAEYP,eAAe;AAAAQ,OAAA,CAAAC,OAAA,GAAAF,QAAA"}