@ndustrial/contxt-sdk 5.5.7 → 5.6.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.
Files changed (230) hide show
  1. package/.nvmrc +1 -1
  2. package/eslint.config.mjs +44 -0
  3. package/esm/bus/channels.js +1883 -216
  4. package/esm/bus/channels.js.map +1 -1
  5. package/esm/bus/index.browser.js +218 -37
  6. package/esm/bus/index.browser.js.map +1 -1
  7. package/esm/bus/index.js +906 -94
  8. package/esm/bus/index.js.map +1 -1
  9. package/esm/bus/webSocketConnection.browser.js +86 -12
  10. package/esm/bus/webSocketConnection.browser.js.map +1 -1
  11. package/esm/bus/webSocketConnection.js +2464 -332
  12. package/esm/bus/webSocketConnection.js.map +1 -1
  13. package/esm/config/audiences.js +37 -1
  14. package/esm/config/audiences.js.map +1 -1
  15. package/esm/config/defaults.js +37 -1
  16. package/esm/config/defaults.js.map +1 -1
  17. package/esm/config/index.js +1622 -203
  18. package/esm/config/index.js.map +1 -1
  19. package/esm/coordinator/applications.js +1019 -172
  20. package/esm/coordinator/applications.js.map +1 -1
  21. package/esm/coordinator/consent.js +603 -76
  22. package/esm/coordinator/consent.js.map +1 -1
  23. package/esm/coordinator/edgeNodes.js +520 -40
  24. package/esm/coordinator/edgeNodes.js.map +1 -1
  25. package/esm/coordinator/index.js +811 -54
  26. package/esm/coordinator/index.js.map +1 -1
  27. package/esm/coordinator/organizations.js +533 -60
  28. package/esm/coordinator/organizations.js.map +1 -1
  29. package/esm/coordinator/permissions.js +914 -107
  30. package/esm/coordinator/permissions.js.map +1 -1
  31. package/esm/coordinator/roles.js +2146 -258
  32. package/esm/coordinator/roles.js.map +1 -1
  33. package/esm/coordinator/users.js +3427 -484
  34. package/esm/coordinator/users.js.map +1 -1
  35. package/esm/events/index.js +2301 -393
  36. package/esm/events/index.js.map +1 -1
  37. package/esm/files/index.js +2053 -410
  38. package/esm/files/index.js.map +1 -1
  39. package/esm/index.js +1002 -148
  40. package/esm/index.js.map +1 -1
  41. package/esm/iot/feedTypes.js +188 -25
  42. package/esm/iot/feedTypes.js.map +1 -1
  43. package/esm/iot/feeds.js +420 -59
  44. package/esm/iot/feeds.js.map +1 -1
  45. package/esm/iot/fieldCategories.js +1172 -195
  46. package/esm/iot/fieldCategories.js.map +1 -1
  47. package/esm/iot/fieldGroupings.js +1689 -255
  48. package/esm/iot/fieldGroupings.js.map +1 -1
  49. package/esm/iot/fields.js +254 -28
  50. package/esm/iot/fields.js.map +1 -1
  51. package/esm/iot/index.js +212 -34
  52. package/esm/iot/index.js.map +1 -1
  53. package/esm/iot/outputs.js +320 -31
  54. package/esm/iot/outputs.js.map +1 -1
  55. package/esm/nionic/index.js +1097 -97
  56. package/esm/nionic/index.js.map +1 -1
  57. package/esm/request.js +1313 -219
  58. package/esm/request.js.map +1 -1
  59. package/esm/sessionTypes/auth0WebAuth.js +3395 -409
  60. package/esm/sessionTypes/auth0WebAuth.js.map +1 -1
  61. package/esm/sessionTypes/index.js +213 -22
  62. package/esm/sessionTypes/index.js.map +1 -1
  63. package/esm/sessionTypes/machineAuth.js +1314 -144
  64. package/esm/sessionTypes/machineAuth.js.map +1 -1
  65. package/esm/sessionTypes/passwordGrantAuth.js +1060 -145
  66. package/esm/sessionTypes/passwordGrantAuth.js.map +1 -1
  67. package/esm/utils/events/formatEventUpdateToServer.js +107 -4
  68. package/esm/utils/events/formatEventUpdateToServer.js.map +1 -1
  69. package/esm/utils/events/index.js +54 -2
  70. package/esm/utils/events/index.js.map +1 -1
  71. package/esm/utils/iot/formatOutputFieldDataFromServer.js +227 -14
  72. package/esm/utils/iot/formatOutputFieldDataFromServer.js.map +1 -1
  73. package/esm/utils/iot/index.js +56 -3
  74. package/esm/utils/iot/index.js.map +1 -1
  75. package/esm/utils/iot/parseOutputFieldNextPageUrlMetadata.js +207 -7
  76. package/esm/utils/iot/parseOutputFieldNextPageUrlMetadata.js.map +1 -1
  77. package/esm/utils/objects/createCaseChangeFn.js +449 -18
  78. package/esm/utils/objects/createCaseChangeFn.js.map +1 -1
  79. package/esm/utils/objects/index.js +56 -3
  80. package/esm/utils/objects/index.js.map +1 -1
  81. package/esm/utils/objects/map.js +520 -26
  82. package/esm/utils/objects/map.js.map +1 -1
  83. package/esm/utils/objects/toCamelCase.js +39 -3
  84. package/esm/utils/objects/toCamelCase.js.map +1 -1
  85. package/esm/utils/objects/toSnakeCase.js +39 -3
  86. package/esm/utils/objects/toSnakeCase.js.map +1 -1
  87. package/esm/utils/pagination/formatPaginatedDataFromServer.js +268 -11
  88. package/esm/utils/pagination/formatPaginatedDataFromServer.js.map +1 -1
  89. package/esm/utils/pagination/index.js +54 -2
  90. package/esm/utils/pagination/index.js.map +1 -1
  91. package/esm/utils/url/index.js +47 -2
  92. package/esm/utils/url/index.js.map +1 -1
  93. package/esm/utils/url/stringifyParams.js +176 -10
  94. package/esm/utils/url/stringifyParams.js.map +1 -1
  95. package/lib/bus/channels.js +1880 -223
  96. package/lib/bus/channels.js.map +1 -1
  97. package/lib/bus/index.browser.js +215 -43
  98. package/lib/bus/index.browser.js.map +1 -1
  99. package/lib/bus/index.js +903 -106
  100. package/lib/bus/index.js.map +1 -1
  101. package/lib/bus/webSocketConnection.browser.js +83 -15
  102. package/lib/bus/webSocketConnection.browser.js.map +1 -1
  103. package/lib/bus/webSocketConnection.js +2461 -339
  104. package/lib/bus/webSocketConnection.js.map +1 -1
  105. package/lib/config/audiences.js +33 -2
  106. package/lib/config/audiences.js.map +1 -1
  107. package/lib/config/defaults.js +33 -2
  108. package/lib/config/defaults.js.map +1 -1
  109. package/lib/config/index.js +1619 -212
  110. package/lib/config/index.js.map +1 -1
  111. package/lib/coordinator/applications.js +1016 -174
  112. package/lib/coordinator/applications.js.map +1 -1
  113. package/lib/coordinator/consent.js +600 -78
  114. package/lib/coordinator/consent.js.map +1 -1
  115. package/lib/coordinator/edgeNodes.js +517 -42
  116. package/lib/coordinator/edgeNodes.js.map +1 -1
  117. package/lib/coordinator/index.js +808 -78
  118. package/lib/coordinator/index.js.map +1 -1
  119. package/lib/coordinator/organizations.js +530 -62
  120. package/lib/coordinator/organizations.js.map +1 -1
  121. package/lib/coordinator/permissions.js +911 -109
  122. package/lib/coordinator/permissions.js.map +1 -1
  123. package/lib/coordinator/roles.js +2143 -260
  124. package/lib/coordinator/roles.js.map +1 -1
  125. package/lib/coordinator/users.js +3423 -489
  126. package/lib/coordinator/users.js.map +1 -1
  127. package/lib/events/index.js +2297 -404
  128. package/lib/events/index.js.map +1 -1
  129. package/lib/files/index.js +2050 -418
  130. package/lib/files/index.js.map +1 -1
  131. package/lib/index.js +999 -183
  132. package/lib/index.js.map +1 -1
  133. package/lib/iot/feedTypes.js +185 -27
  134. package/lib/iot/feedTypes.js.map +1 -1
  135. package/lib/iot/feeds.js +417 -61
  136. package/lib/iot/feeds.js.map +1 -1
  137. package/lib/iot/fieldCategories.js +1169 -203
  138. package/lib/iot/fieldCategories.js.map +1 -1
  139. package/lib/iot/fieldGroupings.js +1686 -263
  140. package/lib/iot/fieldGroupings.js.map +1 -1
  141. package/lib/iot/fields.js +251 -30
  142. package/lib/iot/fields.js.map +1 -1
  143. package/lib/iot/index.js +209 -55
  144. package/lib/iot/index.js.map +1 -1
  145. package/lib/iot/outputs.js +317 -34
  146. package/lib/iot/outputs.js.map +1 -1
  147. package/lib/nionic/index.js +1094 -98
  148. package/lib/nionic/index.js.map +1 -1
  149. package/lib/request.js +1310 -226
  150. package/lib/request.js.map +1 -1
  151. package/lib/sessionTypes/auth0WebAuth.js +3391 -421
  152. package/lib/sessionTypes/auth0WebAuth.js.map +1 -1
  153. package/lib/sessionTypes/index.js +209 -26
  154. package/lib/sessionTypes/index.js.map +1 -1
  155. package/lib/sessionTypes/machineAuth.js +1311 -151
  156. package/lib/sessionTypes/machineAuth.js.map +1 -1
  157. package/lib/sessionTypes/passwordGrantAuth.js +1057 -156
  158. package/lib/sessionTypes/passwordGrantAuth.js.map +1 -1
  159. package/lib/utils/events/formatEventUpdateToServer.js +102 -4
  160. package/lib/utils/events/formatEventUpdateToServer.js.map +1 -1
  161. package/lib/utils/events/index.js +51 -10
  162. package/lib/utils/events/index.js.map +1 -1
  163. package/lib/utils/iot/formatOutputFieldDataFromServer.js +224 -18
  164. package/lib/utils/iot/formatOutputFieldDataFromServer.js.map +1 -1
  165. package/lib/utils/iot/index.js +53 -15
  166. package/lib/utils/iot/index.js.map +1 -1
  167. package/lib/utils/iot/parseOutputFieldNextPageUrlMetadata.js +203 -13
  168. package/lib/utils/iot/parseOutputFieldNextPageUrlMetadata.js.map +1 -1
  169. package/lib/utils/objects/createCaseChangeFn.js +446 -25
  170. package/lib/utils/objects/createCaseChangeFn.js.map +1 -1
  171. package/lib/utils/objects/index.js +53 -15
  172. package/lib/utils/objects/index.js.map +1 -1
  173. package/lib/utils/objects/map.js +517 -33
  174. package/lib/utils/objects/map.js.map +1 -1
  175. package/lib/utils/objects/toCamelCase.js +36 -11
  176. package/lib/utils/objects/toCamelCase.js.map +1 -1
  177. package/lib/utils/objects/toSnakeCase.js +36 -11
  178. package/lib/utils/objects/toSnakeCase.js.map +1 -1
  179. package/lib/utils/pagination/formatPaginatedDataFromServer.js +265 -14
  180. package/lib/utils/pagination/formatPaginatedDataFromServer.js.map +1 -1
  181. package/lib/utils/pagination/index.js +51 -10
  182. package/lib/utils/pagination/index.js.map +1 -1
  183. package/lib/utils/url/index.js +44 -7
  184. package/lib/utils/url/index.js.map +1 -1
  185. package/lib/utils/url/stringifyParams.js +172 -18
  186. package/lib/utils/url/stringifyParams.js.map +1 -1
  187. package/package.json +32 -36
  188. package/src/bus/channels.js +6 -6
  189. package/src/bus/channels.spec.js +1 -1
  190. package/src/coordinator/applications.js +7 -7
  191. package/src/coordinator/applications.spec.js +1 -1
  192. package/src/coordinator/consent.js +3 -3
  193. package/src/coordinator/edgeNodes.js +3 -3
  194. package/src/coordinator/edgeNodes.spec.js +1 -1
  195. package/src/coordinator/organizations.js +4 -4
  196. package/src/coordinator/organizations.spec.js +1 -1
  197. package/src/coordinator/permissions.js +6 -6
  198. package/src/coordinator/permissions.spec.js +1 -1
  199. package/src/coordinator/roles.js +9 -9
  200. package/src/coordinator/roles.spec.js +1 -1
  201. package/src/coordinator/users.js +13 -13
  202. package/src/coordinator/users.spec.js +294 -294
  203. package/src/events/index.js +18 -18
  204. package/src/events/index.spec.js +3 -3
  205. package/src/files/index.js +9 -9
  206. package/src/files/index.spec.js +2 -2
  207. package/src/index.js +3 -1
  208. package/src/iot/feedTypes.js +2 -2
  209. package/src/iot/feeds.js +4 -4
  210. package/src/iot/feeds.spec.js +1 -1
  211. package/src/iot/fieldCategories.js +10 -10
  212. package/src/iot/fieldCategories.spec.js +2 -2
  213. package/src/iot/fieldGroupings.js +10 -10
  214. package/src/iot/fieldGroupings.spec.js +2 -2
  215. package/src/iot/fields.js +2 -2
  216. package/src/iot/fields.spec.js +1 -1
  217. package/src/iot/outputs.js +2 -2
  218. package/src/iot/outputs.spec.js +1 -1
  219. package/src/sessionTypes/auth0WebAuth.spec.js +1 -1
  220. package/src/utils/events/index.js +2 -1
  221. package/src/utils/iot/formatOutputFieldDataFromServer.js +5 -5
  222. package/src/utils/iot/formatOutputFieldDataFromServer.spec.js +2 -2
  223. package/src/utils/iot/index.js +2 -1
  224. package/src/utils/iot/parseOutputFieldNextPageUrlMetadata.js +3 -1
  225. package/src/utils/objects/index.js +2 -1
  226. package/src/utils/pagination/formatPaginatedDataFromServer.js +3 -3
  227. package/src/utils/pagination/formatPaginatedDataFromServer.spec.js +1 -1
  228. package/src/utils/pagination/index.js +2 -1
  229. package/support/mocharc.yml +1 -1
  230. package/.eslintrc +0 -24
@@ -1 +1 @@
1
- {"version":3,"sources":["config/index.js"],"names":["defaultAudiences","defaultConfigs","Config","userConfig","externalModules","Object","assign","_dynamicAudienceNames","_replacedAudiences","audiences","_getAudiences","customModuleConfigs","auth","env","interceptors","bus","audienceName","clientId","host","Error","indexOf","filter","name","config","audience","webSocket","options","_getInternalAudiences","_getExternalAudiences","keys","reduce","memo","key","hasClientId","hasHost","customModuleConfig","moduleAudiences","_getAudienceFromCustomConfig"],"mappings":"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","file":"index.js","sourcesContent":["import defaultAudiences from './audiences';\nimport defaultConfigs from './defaults';\n\n/**\n * A single audience used for authenticating and communicating with an individual API.\n *\n * @typedef {Object} Audience\n * @param {string} config.clientId Client Id provided by Auth0 for the environment you are\n * trying to communicate with\n * @param {string} config.host Hostname for the API that corresponds with the clientId provided\n * @param {string} [config.webSocket] WebSocket URL for the API that corresponds with the clientId provided\n */\n\n/**\n * A custom audience that will override the configuration of an individual module. Consists of\n * either a reference to an environment that already exists or a clientId and host for a\n * custom environment.\n *\n * @typedef {Object} CustomAudience\n * @param {string} [config.clientId] Client Id provided by Auth0 for the environment you are\n * trying to communicate with\n * @param {string} [config.env] The SDK provided environment name you are trying to reach\n * @param {string} [config.host] Hostname for the API that corresponds with the clientId provided\n * @param {string} [config.webSocket] WebSocket URL for the API that corresponds with the clientId provided\n */\n\n/**\n * An object of audiences that corresponds to all the different environments available for a\n * single module.\n *\n * @typedef {Object.<string, Audience>} Environments\n */\n\n/**\n * An external module to be integrated into the SDK as a first class citizen. Includes information\n * for authenticating and communicating with an individual API and the external module itself.\n *\n * @typedef {Object} ExternalModule\n * @param {string} config.clientId Client Id provided by Auth0 for the environment you are\n * trying to communicate with. Can be a `null` value if the value is not needed. Some SessionType\n * adapters (currently, just the MachineAuth adapter) require a value other than `null` if the\n * built-in `request` module is used since they acquire contxt tokens based on a single clientId.\n * @param {string} config.host Hostname for the API that corresponds with the clientId provided.\n * Can be a `null` value if the value is not needed.\n * @param {function} config.module The module that will be decorated into the SDK\n */\n\n/**\n * An object of interceptors that get called on every request or response.\n * More information at {@link https://github.com/axios/axios#interceptors axios Interceptors}\n *\n * @typedef {Object} AxiosInterceptor\n * @param {function} interceptor.fulfilled A function that is run on every successful request or\n * response\n * @param {function} interceptor.rejected A function that is run on every failed request or response\n */\n\n/**\n * User provided configuration options\n *\n * @typedef {Object} UserConfig\n * @property {Object} auth User assigned configurations specific for their authentication methods\n * @property {string} [auth.authorizationPath] Path Auth0WebAuth process should redirect to after a\n * successful sign in attempt\n * @property {string} auth.clientId Client Id provided by Auth0 for this application\n * @property {string} [auth.clientSecret] Client secret provided by Auth0 for this application. This\n * is optional for the auth0WebAuth SessionType, but required for the machineAuth SessionType\n * @property {string} [auth.domain] Auth0 domain for this application. This is an optional configuration\n * that defaults to the production Auth0 tenant\n * @property {Object.<string, CustomAudience>} [auth.customModuleConfigs] Custom environment setups\n * for individual modules. Requires clientId/host or env\n * @property {string} [auth.env = 'production'] The environment that every module should use for\n * their clientId and host\n * @property {function} [auth.onAuthenticate = (auth0WebAuthSessionInfo) => handleSuccessfulAuth(auth0WebAuthSessionInfo); ] An optional\n * hook for handling a successful authentication request or overriding returned values.\n * @property {function} [auth.onRedirect = (pathname) => { window.location = pathname; }] A redirect\n * method used for navigating through Auth0 callbacks in Web applications\n * @property {number} [auth.tokenExpiresAtBufferMs = 300000] The time (in milliseconds) before a\n * token truly expires that we consider it expired (i.e. the token's expiresAt - this = calculated\n * expiresAt). Defaults to 5 minutes.\n * @property {Object} [interceptors] Axios interceptors that can transform requests and responses.\n * More information at {@link https://github.com/axios/axios#interceptors axios Interceptors}\n * @property {AxiosInterceptor[]} [interceptors.request] Interceptors that act on every request\n * @property {AxiosInterceptor[]} [intercepotrs.response] Intereptors that act on every response\n */\n\n/**\n * Module that merges user assigned configurations with default configurations.\n *\n * @typicalname contxtSdk.config\n */\nclass Config {\n /**\n * @param {UserConfig} userConfig The user provided configuration options\n * @param {Object.<string, ExternalModule>} [externalModules] User provided external modules that should be treated as\n * first class citizens\n */\n constructor(userConfig, externalModules) {\n Object.assign(this, userConfig);\n\n this._dynamicAudienceNames = [];\n this._replacedAudiences = {};\n\n this.audiences = this._getAudiences({\n externalModules,\n customModuleConfigs: userConfig.auth.customModuleConfigs,\n env: userConfig.auth.env\n });\n\n this.auth = {\n ...defaultConfigs.auth,\n ...userConfig.auth\n };\n\n this.interceptors = {\n ...defaultConfigs.interceptors,\n ...userConfig.interceptors\n };\n\n this.bus = {\n ...defaultConfigs.bus,\n ...userConfig.bus\n };\n }\n\n addDynamicAudience(audienceName, { clientId, host }) {\n if (!clientId || !host) {\n throw new Error(\n 'A dynamic audience must contain `clientId` and `host` properties'\n );\n }\n\n if (this._dynamicAudienceNames.indexOf(audienceName) > -1) {\n throw new Error(\n `A dynamic audience of the name \\`${audienceName}\\` already exists. This problem can be rectified by using a different name for the audience.`\n );\n }\n\n this._dynamicAudienceNames = [...this._dynamicAudienceNames, audienceName];\n\n if (this.audiences[audienceName]) {\n this._replacedAudiences[audienceName] = this.audiences[audienceName];\n }\n\n this.audiences[audienceName] = {\n clientId,\n host\n };\n }\n\n removeDynamicAudience(audienceName) {\n if (this._dynamicAudienceNames.indexOf(audienceName) === -1) {\n throw new Error('There is no dynamic audience to remove.');\n }\n\n this.audiences[audienceName] = this._replacedAudiences[audienceName];\n\n delete this._replacedAudiences[audienceName];\n this._dynamicAudienceNames = this._dynamicAudienceNames.filter(\n (name) => name !== audienceName\n );\n }\n\n /**\n * Parses a custom module configuration for a valid environment/audience. Requires either a\n * clientId and host, or an environment that matches a default audience/environment.\n *\n * @param {CustomAudience} config A custom audience configuration to parse\n * @param {Object.<string, Audience>} audiences An object with keys for environment names and values of Audience information\n *\n * @returns {Audience}\n * @throws {Error}\n *\n * @private\n */\n _getAudienceFromCustomConfig(config, audiences) {\n if (config.clientId && config.host) {\n const audience = {\n clientId: config.clientId,\n host: config.host\n };\n\n if (config.webSocket) {\n audience.webSocket = config.webSocket;\n }\n\n return audience;\n } else if (config.env) {\n return audiences[config.env];\n } else {\n throw new Error(\n 'Custom module configurations must either contain a `host` and `clientId` or specify a specific target environment via the `env` property'\n );\n }\n }\n\n /**\n * Reconciles the main environment with custom environments and external modules.\n *\n * @param {Object} options\n * @param {Object.<string, CustomAudience>} [options.customModuleConfigs = {}] Any custom\n * configurations for internal modules\n * @param {string} [options.env = 'production'] The base environment for any\n * non-overridden modules\n * @param {Object.<string, ExternalModule>} [options.externalModules = {}] An object of external\n * modules from which to build a set of audiences\n *\n * @returns {Object.<string, Audience>}\n *\n * @private\n */\n _getAudiences(options = {}) {\n const {\n customModuleConfigs = {},\n env = 'production',\n externalModules = {}\n } = options;\n\n return {\n ...this._getInternalAudiences({\n customModuleConfigs,\n env,\n audiences: defaultAudiences\n }),\n ...this._getExternalAudiences({ externalModules })\n };\n }\n\n /**\n * Builds up the audiences for external modules.\n *\n * @param {Object}\n * @param {Object.<string, ExternalModule>} externalModules An object of external modules from\n * which to build a set of audiences\n *\n * @returns {Object.<string, Audience>}\n * @throws {Error}\n *\n * @private\n */\n _getExternalAudiences({ externalModules }) {\n return Object.keys(externalModules).reduce((memo, key) => {\n const clientId = externalModules[key].clientId;\n const host = externalModules[key].host;\n const hasClientId = !!clientId || clientId === null;\n const hasHost = !!host || host === null;\n\n if (!(hasClientId && hasHost)) {\n throw new Error(\n 'External modules must contain `clientId` and `host` properties'\n );\n }\n\n memo[key] = {\n clientId,\n host\n };\n\n return memo;\n }, {});\n }\n\n /**\n * Reconciles the main environment with custom environments to build up audiences for\n * internal modules.\n *\n * @param {Object.<string, Environments>} audiences All possible audiences/environments for\n * internal modules\n * @param {Object.<string, CustomAudience>} customModuleConfigs Any custom configurations for\n * internal modules\n * @param {string} env The base environment for any non-overridden modules\n *\n * @returns {Object.<string, Audience>}\n *\n * @private\n */\n _getInternalAudiences({ audiences, customModuleConfigs, env }) {\n return Object.keys(audiences).reduce((memo, key) => {\n const customModuleConfig = customModuleConfigs[key];\n const moduleAudiences = audiences[key];\n\n if (customModuleConfig) {\n memo[key] = this._getAudienceFromCustomConfig(\n customModuleConfig,\n moduleAudiences\n );\n } else {\n memo[key] = moduleAudiences[env];\n }\n\n return memo;\n }, {});\n }\n}\n\nexport default Config;\n"]}
1
+ {"version":3,"file":"index.js","names":["_audiences","_interopRequireDefault","require","_defaults","e","__esModule","default","cov_1n1bb4mnsz","path","hash","global","Function","gcv","coverageData","statementMap","start","line","column","end","fnMap","name","decl","loc","branchMap","type","locations","undefined","s","f","b","_coverageSchema","coverage","actualCoverage","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","Config","constructor","userConfig","externalModules","assign","_dynamicAudienceNames","_replacedAudiences","audiences","_getAudiences","customModuleConfigs","auth","env","defaultConfigs","interceptors","bus","addDynamicAudience","audienceName","_ref","clientId","host","Error","indexOf","removeDynamicAudience","_getAudienceFromCustomConfig","config","audience","webSocket","options","_ref2","_ref2$customModuleCon","_ref2$env","_ref2$externalModules","_getInternalAudiences","defaultAudiences","_getExternalAudiences","_ref3","reduce","memo","key","hasClientId","hasHost","_ref4","customModuleConfig","moduleAudiences","_default","exports"],"sources":["config/index.js"],"sourcesContent":["import defaultAudiences from './audiences';\nimport defaultConfigs from './defaults';\n\n/**\n * A single audience used for authenticating and communicating with an individual API.\n *\n * @typedef {Object} Audience\n * @param {string} config.clientId Client Id provided by Auth0 for the environment you are\n * trying to communicate with\n * @param {string} config.host Hostname for the API that corresponds with the clientId provided\n * @param {string} [config.webSocket] WebSocket URL for the API that corresponds with the clientId provided\n */\n\n/**\n * A custom audience that will override the configuration of an individual module. Consists of\n * either a reference to an environment that already exists or a clientId and host for a\n * custom environment.\n *\n * @typedef {Object} CustomAudience\n * @param {string} [config.clientId] Client Id provided by Auth0 for the environment you are\n * trying to communicate with\n * @param {string} [config.env] The SDK provided environment name you are trying to reach\n * @param {string} [config.host] Hostname for the API that corresponds with the clientId provided\n * @param {string} [config.webSocket] WebSocket URL for the API that corresponds with the clientId provided\n */\n\n/**\n * An object of audiences that corresponds to all the different environments available for a\n * single module.\n *\n * @typedef {Object.<string, Audience>} Environments\n */\n\n/**\n * An external module to be integrated into the SDK as a first class citizen. Includes information\n * for authenticating and communicating with an individual API and the external module itself.\n *\n * @typedef {Object} ExternalModule\n * @param {string} config.clientId Client Id provided by Auth0 for the environment you are\n * trying to communicate with. Can be a `null` value if the value is not needed. Some SessionType\n * adapters (currently, just the MachineAuth adapter) require a value other than `null` if the\n * built-in `request` module is used since they acquire contxt tokens based on a single clientId.\n * @param {string} config.host Hostname for the API that corresponds with the clientId provided.\n * Can be a `null` value if the value is not needed.\n * @param {function} config.module The module that will be decorated into the SDK\n */\n\n/**\n * An object of interceptors that get called on every request or response.\n * More information at {@link https://github.com/axios/axios#interceptors axios Interceptors}\n *\n * @typedef {Object} AxiosInterceptor\n * @param {function} interceptor.fulfilled A function that is run on every successful request or\n * response\n * @param {function} interceptor.rejected A function that is run on every failed request or response\n */\n\n/**\n * User provided configuration options\n *\n * @typedef {Object} UserConfig\n * @property {Object} auth User assigned configurations specific for their authentication methods\n * @property {string} [auth.authorizationPath] Path Auth0WebAuth process should redirect to after a\n * successful sign in attempt\n * @property {string} auth.clientId Client Id provided by Auth0 for this application\n * @property {string} [auth.clientSecret] Client secret provided by Auth0 for this application. This\n * is optional for the auth0WebAuth SessionType, but required for the machineAuth SessionType\n * @property {string} [auth.domain] Auth0 domain for this application. This is an optional configuration\n * that defaults to the production Auth0 tenant\n * @property {Object.<string, CustomAudience>} [auth.customModuleConfigs] Custom environment setups\n * for individual modules. Requires clientId/host or env\n * @property {string} [auth.env = 'production'] The environment that every module should use for\n * their clientId and host\n * @property {function} [auth.onAuthenticate = (auth0WebAuthSessionInfo) => handleSuccessfulAuth(auth0WebAuthSessionInfo); ] An optional\n * hook for handling a successful authentication request or overriding returned values.\n * @property {function} [auth.onRedirect = (pathname) => { window.location = pathname; }] A redirect\n * method used for navigating through Auth0 callbacks in Web applications\n * @property {number} [auth.tokenExpiresAtBufferMs = 300000] The time (in milliseconds) before a\n * token truly expires that we consider it expired (i.e. the token's expiresAt - this = calculated\n * expiresAt). Defaults to 5 minutes.\n * @property {Object} [interceptors] Axios interceptors that can transform requests and responses.\n * More information at {@link https://github.com/axios/axios#interceptors axios Interceptors}\n * @property {AxiosInterceptor[]} [interceptors.request] Interceptors that act on every request\n * @property {AxiosInterceptor[]} [intercepotrs.response] Intereptors that act on every response\n */\n\n/**\n * Module that merges user assigned configurations with default configurations.\n *\n * @typicalname contxtSdk.config\n */\nclass Config {\n /**\n * @param {UserConfig} userConfig The user provided configuration options\n * @param {Object.<string, ExternalModule>} [externalModules] User provided external modules that should be treated as\n * first class citizens\n */\n constructor(userConfig, externalModules) {\n Object.assign(this, userConfig);\n\n this._dynamicAudienceNames = [];\n this._replacedAudiences = {};\n\n this.audiences = this._getAudiences({\n externalModules,\n customModuleConfigs: userConfig.auth.customModuleConfigs,\n env: userConfig.auth.env\n });\n\n this.auth = {\n ...defaultConfigs.auth,\n ...userConfig.auth\n };\n\n this.interceptors = {\n ...defaultConfigs.interceptors,\n ...userConfig.interceptors\n };\n\n this.bus = {\n ...defaultConfigs.bus,\n ...userConfig.bus\n };\n }\n\n addDynamicAudience(audienceName, { clientId, host }) {\n if (!clientId || !host) {\n throw new Error(\n 'A dynamic audience must contain `clientId` and `host` properties'\n );\n }\n\n if (this._dynamicAudienceNames.indexOf(audienceName) > -1) {\n throw new Error(\n `A dynamic audience of the name \\`${audienceName}\\` already exists. This problem can be rectified by using a different name for the audience.`\n );\n }\n\n this._dynamicAudienceNames = [...this._dynamicAudienceNames, audienceName];\n\n if (this.audiences[audienceName]) {\n this._replacedAudiences[audienceName] = this.audiences[audienceName];\n }\n\n this.audiences[audienceName] = {\n clientId,\n host\n };\n }\n\n removeDynamicAudience(audienceName) {\n if (this._dynamicAudienceNames.indexOf(audienceName) === -1) {\n throw new Error('There is no dynamic audience to remove.');\n }\n\n this.audiences[audienceName] = this._replacedAudiences[audienceName];\n\n delete this._replacedAudiences[audienceName];\n this._dynamicAudienceNames = this._dynamicAudienceNames.filter(\n (name) => name !== audienceName\n );\n }\n\n /**\n * Parses a custom module configuration for a valid environment/audience. Requires either a\n * clientId and host, or an environment that matches a default audience/environment.\n *\n * @param {CustomAudience} config A custom audience configuration to parse\n * @param {Object.<string, Audience>} audiences An object with keys for environment names and values of Audience information\n *\n * @returns {Audience}\n * @throws {Error}\n *\n * @private\n */\n _getAudienceFromCustomConfig(config, audiences) {\n if (config.clientId && config.host) {\n const audience = {\n clientId: config.clientId,\n host: config.host\n };\n\n if (config.webSocket) {\n audience.webSocket = config.webSocket;\n }\n\n return audience;\n } else if (config.env) {\n return audiences[config.env];\n } else {\n throw new Error(\n 'Custom module configurations must either contain a `host` and `clientId` or specify a specific target environment via the `env` property'\n );\n }\n }\n\n /**\n * Reconciles the main environment with custom environments and external modules.\n *\n * @param {Object} options\n * @param {Object.<string, CustomAudience>} [options.customModuleConfigs = {}] Any custom\n * configurations for internal modules\n * @param {string} [options.env = 'production'] The base environment for any\n * non-overridden modules\n * @param {Object.<string, ExternalModule>} [options.externalModules = {}] An object of external\n * modules from which to build a set of audiences\n *\n * @returns {Object.<string, Audience>}\n *\n * @private\n */\n _getAudiences(options = {}) {\n const {\n customModuleConfigs = {},\n env = 'production',\n externalModules = {}\n } = options;\n\n return {\n ...this._getInternalAudiences({\n customModuleConfigs,\n env,\n audiences: defaultAudiences\n }),\n ...this._getExternalAudiences({ externalModules })\n };\n }\n\n /**\n * Builds up the audiences for external modules.\n *\n * @param {Object}\n * @param {Object.<string, ExternalModule>} externalModules An object of external modules from\n * which to build a set of audiences\n *\n * @returns {Object.<string, Audience>}\n * @throws {Error}\n *\n * @private\n */\n _getExternalAudiences({ externalModules }) {\n return Object.keys(externalModules).reduce((memo, key) => {\n const clientId = externalModules[key].clientId;\n const host = externalModules[key].host;\n const hasClientId = !!clientId || clientId === null;\n const hasHost = !!host || host === null;\n\n if (!(hasClientId && hasHost)) {\n throw new Error(\n 'External modules must contain `clientId` and `host` properties'\n );\n }\n\n memo[key] = {\n clientId,\n host\n };\n\n return memo;\n }, {});\n }\n\n /**\n * Reconciles the main environment with custom environments to build up audiences for\n * internal modules.\n *\n * @param {Object.<string, Environments>} audiences All possible audiences/environments for\n * internal modules\n * @param {Object.<string, CustomAudience>} customModuleConfigs Any custom configurations for\n * internal modules\n * @param {string} env The base environment for any non-overridden modules\n *\n * @returns {Object.<string, Audience>}\n *\n * @private\n */\n _getInternalAudiences({ audiences, customModuleConfigs, env }) {\n return Object.keys(audiences).reduce((memo, key) => {\n const customModuleConfig = customModuleConfigs[key];\n const moduleAudiences = audiences[key];\n\n if (customModuleConfig) {\n memo[key] = this._getAudienceFromCustomConfig(\n customModuleConfig,\n moduleAudiences\n );\n } else {\n memo[key] = moduleAudiences[env];\n }\n\n return memo;\n }, {});\n }\n}\n\nexport default Config;\n"],"mappings":";;;;;;;;;;;;;;AAAA,IAAAA,UAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,SAAA,GAAAF,sBAAA,CAAAC,OAAA;AAAwC,SAAAD,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,SAAAG,eAAA;EAAA,IAAAC,IAAA;EAAA,IAAAC,IAAA;EAAA,IAAAC,MAAA,OAAAC,QAAA;EAAA,IAAAC,GAAA;EAAA,IAAAC,YAAA;IAAAL,IAAA;IAAAM,YAAA;MAAA;QAAAC,KAAA;UAAAC,IAAA;UAAAC,MAAA;QAAA;QAAAC,GAAA;UAAAF,IAAA;UAAAC,MAAA;QAAA;MAAA;MAAA;QAAAF,KAAA;UAAAC,IAAA;UAAAC,MAAA;QAAA;QAAAC,GAAA;UAAAF,IAAA;UAAAC,MAAA;QAAA;MAAA;MAAA;QAAAF,KAAA;UAAAC,IAAA;UAAAC,MAAA;QAAA;QAAAC,GAAA;UAAAF,IAAA;UAAAC,MAAA;QAAA;MAAA;MAAA;QAAAF,KAAA;UAAAC,IAAA;UAAAC,MAAA;QAAA;QAAAC,GAAA;UAAAF,IAAA;UAAAC,MAAA;QAAA;MAAA;MAAA;QAAAF,KAAA;UAAAC,IAAA;UAAAC,MAAA;QAAA;QAAAC,GAAA;UAAAF,IAAA;UAAAC,MAAA;QAAA;MAAA;MAAA;QAAAF,KAAA;UAAAC,IAAA;UAAAC,MAAA;QAAA;QAAAC,GAAA;UAAAF,IAAA;UAAAC,MAAA;QAAA;MAAA;MAAA;QAAAF,KAAA;UAAAC,IAAA;UAAAC,MAAA;QAAA;QAAAC,GAAA;UAAAF,IAAA;UAAAC,MAAA;QAAA;MAAA;MAAA;QAAAF,KAAA;UAAAC,IAAA;UAAAC,MAAA;QAAA;QAAAC,GAAA;UAAAF,IAAA;UAAAC,MAAA;QAAA;MAAA;MAAA;QAAAF,KAAA;UAAAC,IAAA;UAAAC,MAAA;QAAA;QAAAC,GAAA;UAAAF,IAAA;UAAAC,MAAA;QAAA;MAAA;MAAA;QAAAF,KAAA;UAAAC,IAAA;UAAAC,MAAA;QAAA;QAAAC,GAAA;UAAAF,IAAA;UAAAC,MAAA;QAAA;MAAA;MAAA;QAAAF,KAAA;UAAAC,IAAA;UAAAC,MAAA;QAAA;QAAAC,GAAA;UAAAF,IAAA;UAAAC,MAAA;QAAA;MAAA;MAAA;QAAAF,KAAA;UAAAC,IAAA;UAAAC,MAAA;QAAA;QAAAC,GAAA;UAAAF,IAAA;UAAAC,MAAA;QAAA;MAAA;MAAA;QAAAF,KAAA;UAAAC,IAAA;UAAAC,MAAA;QAAA;QAAAC,GAAA;UAAAF,IAAA;UAAAC,MAAA;QAAA;MAAA;MAAA;QAAAF,KAAA;UAAAC,IAAA;UAAAC,MAAA;QAAA;QAAAC,GAAA;UAAAF,IAAA;UAAAC,MAAA;QAAA;MAAA;MAAA;QAAAF,KAAA;UAAAC,IAAA;UAAAC,MAAA;QAAA;QAAAC,GAAA;UAAAF,IAAA;UAAAC,MAAA;QAAA;MAAA;MAAA;QAAAF,KAAA;UAAAC,IAAA;UAAAC,MAAA;QAAA;QAAAC,GAAA;UAAAF,IAAA;UAAAC,MAAA;QAAA;MAAA;MAAA;QAAAF,KAAA;UAAAC,IAAA;UAAAC,MAAA;QAAA;QAAAC,GAAA;UAAAF,IAAA;UAAAC,MAAA;QAAA;MAAA;MAAA;QAAAF,KAAA;UAAAC,IAAA;UAAAC,MAAA;QAAA;QAAAC,GAAA;UAAAF,IAAA;UAAAC,MAAA;QAAA;MAAA;MAAA;QAAAF,KAAA;UAAAC,IAAA;UAAAC,MAAA;QAAA;QAAAC,GAAA;UAAAF,IAAA;UAAAC,MAAA;QAAA;MAAA;MAAA;QAAAF,KAAA;UAAAC,IAAA;UAAAC,MAAA;QAAA;QAAAC,GAAA;UAAAF,IAAA;UAAAC,MAAA;QAAA;MAAA;MAAA;QAAAF,KAAA;UAAAC,IAAA;UAAAC,MAAA;QAAA;QAAAC,GAAA;UAAAF,IAAA;UAAAC,MAAA;QAAA;MAAA;MAAA;QAAAF,KAAA;UAAAC,IAAA;UAAAC,MAAA;QAAA;QAAAC,GAAA;UAAAF,IAAA;UAAAC,MAAA;QAAA;MAAA;MAAA;QAAAF,KAAA;UAAAC,IAAA;UAAAC,MAAA;QAAA;QAAAC,GAAA;UAAAF,IAAA;UAAAC,MAAA;QAAA;MAAA;MAAA;QAAAF,KAAA;UAAAC,IAAA;UAAAC,MAAA;QAAA;QAAAC,GAAA;UAAAF,IAAA;UAAAC,MAAA;QAAA;MAAA;MAAA;QAAAF,KAAA;UAAAC,IAAA;UAAAC,MAAA;QAAA;QAAAC,GAAA;UAAAF,IAAA;UAAAC,MAAA;QAAA;MAAA;MAAA;QAAAF,KAAA;UAAAC,IAAA;UAAAC,MAAA;QAAA;QAAAC,GAAA;UAAAF,IAAA;UAAAC,MAAA;QAAA;MAAA;MAAA;QAAAF,KAAA;UAAAC,IAAA;UAAAC,MAAA;QAAA;QAAAC,GAAA;UAAAF,IAAA;UAAAC,MAAA;QAAA;MAAA;MAAA;QAAAF,KAAA;UAAAC,IAAA;UAAAC,MAAA;QAAA;QAAAC,GAAA;UAAAF,IAAA;UAAAC,MAAA;QAAA;MAAA;MAAA;QAAAF,KAAA;UAAAC,IAAA;UAAAC,MAAA;QAAA;QAAAC,GAAA;UAAAF,IAAA;UAAAC,MAAA;QAAA;MAAA;MAAA;QAAAF,KAAA;UAAAC,IAAA;UAAAC,MAAA;QAAA;QAAAC,GAAA;UAAAF,IAAA;UAAAC,MAAA;QAAA;MAAA;MAAA;QAAAF,KAAA;UAAAC,IAAA;UAAAC,MAAA;QAAA;QAAAC,GAAA;UAAAF,IAAA;UAAAC,MAAA;QAAA;MAAA;MAAA;QAAAF,KAAA;UAAAC,IAAA;UAAAC,MAAA;QAAA;QAAAC,GAAA;UAAAF,IAAA;UAAAC,MAAA;QAAA;MAAA;MAAA;QAAAF,KAAA;UAAAC,IAAA;UAAAC,MAAA;QAAA;QAAAC,GAAA;UAAAF,IAAA;UAAAC,MAAA;QAAA;MAAA;MAAA;QAAAF,KAAA;UAAAC,IAAA;UAAAC,MAAA;QAAA;QAAAC,GAAA;UAAAF,IAAA;UAAAC,MAAA;QAAA;MAAA;MAAA;QAAAF,KAAA;UAAAC,IAAA;UAAAC,MAAA;QAAA;QAAAC,GAAA;UAAAF,IAAA;UAAAC,MAAA;QAAA;MAAA;MAAA;QAAAF,KAAA;UAAAC,IAAA;UAAAC,MAAA;QAAA;QAAAC,GAAA;UAAAF,IAAA;UAAAC,MAAA;QAAA;MAAA;MAAA;QAAAF,KAAA;UAAAC,IAAA;UAAAC,MAAA;QAAA;QAAAC,GAAA;UAAAF,IAAA;UAAAC,MAAA;QAAA;MAAA;MAAA;QAAAF,KAAA;UAAAC,IAAA;UAAAC,MAAA;QAAA;QAAAC,GAAA;UAAAF,IAAA;UAAAC,MAAA;QAAA;MAAA;MAAA;QAAAF,KAAA;UAAAC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","ignoreList":[]}