@ndustrial/contxt-sdk 5.5.6 → 5.6.0

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 (233) hide show
  1. package/.nvmrc +1 -1
  2. package/CHANGELOG.md +6 -0
  3. package/eslint.config.mjs +44 -0
  4. package/esm/bus/channels.js +1883 -216
  5. package/esm/bus/channels.js.map +1 -1
  6. package/esm/bus/index.browser.js +218 -37
  7. package/esm/bus/index.browser.js.map +1 -1
  8. package/esm/bus/index.js +906 -94
  9. package/esm/bus/index.js.map +1 -1
  10. package/esm/bus/webSocketConnection.browser.js +86 -12
  11. package/esm/bus/webSocketConnection.browser.js.map +1 -1
  12. package/esm/bus/webSocketConnection.js +2464 -332
  13. package/esm/bus/webSocketConnection.js.map +1 -1
  14. package/esm/config/audiences.js +37 -1
  15. package/esm/config/audiences.js.map +1 -1
  16. package/esm/config/defaults.js +37 -1
  17. package/esm/config/defaults.js.map +1 -1
  18. package/esm/config/index.js +1622 -203
  19. package/esm/config/index.js.map +1 -1
  20. package/esm/coordinator/applications.js +1019 -172
  21. package/esm/coordinator/applications.js.map +1 -1
  22. package/esm/coordinator/consent.js +603 -76
  23. package/esm/coordinator/consent.js.map +1 -1
  24. package/esm/coordinator/edgeNodes.js +520 -40
  25. package/esm/coordinator/edgeNodes.js.map +1 -1
  26. package/esm/coordinator/index.js +811 -54
  27. package/esm/coordinator/index.js.map +1 -1
  28. package/esm/coordinator/organizations.js +533 -60
  29. package/esm/coordinator/organizations.js.map +1 -1
  30. package/esm/coordinator/permissions.js +914 -107
  31. package/esm/coordinator/permissions.js.map +1 -1
  32. package/esm/coordinator/roles.js +2146 -258
  33. package/esm/coordinator/roles.js.map +1 -1
  34. package/esm/coordinator/users.js +3393 -484
  35. package/esm/coordinator/users.js.map +1 -1
  36. package/esm/events/index.js +2301 -393
  37. package/esm/events/index.js.map +1 -1
  38. package/esm/files/index.js +2053 -410
  39. package/esm/files/index.js.map +1 -1
  40. package/esm/index.js +1002 -148
  41. package/esm/index.js.map +1 -1
  42. package/esm/iot/feedTypes.js +188 -25
  43. package/esm/iot/feedTypes.js.map +1 -1
  44. package/esm/iot/feeds.js +420 -59
  45. package/esm/iot/feeds.js.map +1 -1
  46. package/esm/iot/fieldCategories.js +1172 -195
  47. package/esm/iot/fieldCategories.js.map +1 -1
  48. package/esm/iot/fieldGroupings.js +1689 -255
  49. package/esm/iot/fieldGroupings.js.map +1 -1
  50. package/esm/iot/fields.js +254 -28
  51. package/esm/iot/fields.js.map +1 -1
  52. package/esm/iot/index.js +212 -34
  53. package/esm/iot/index.js.map +1 -1
  54. package/esm/iot/outputs.js +320 -31
  55. package/esm/iot/outputs.js.map +1 -1
  56. package/esm/nionic/index.js +1097 -97
  57. package/esm/nionic/index.js.map +1 -1
  58. package/esm/request.js +1313 -221
  59. package/esm/request.js.map +1 -1
  60. package/esm/sessionTypes/auth0WebAuth.js +3395 -409
  61. package/esm/sessionTypes/auth0WebAuth.js.map +1 -1
  62. package/esm/sessionTypes/index.js +213 -22
  63. package/esm/sessionTypes/index.js.map +1 -1
  64. package/esm/sessionTypes/machineAuth.js +1314 -144
  65. package/esm/sessionTypes/machineAuth.js.map +1 -1
  66. package/esm/sessionTypes/passwordGrantAuth.js +1060 -145
  67. package/esm/sessionTypes/passwordGrantAuth.js.map +1 -1
  68. package/esm/utils/events/formatEventUpdateToServer.js +107 -4
  69. package/esm/utils/events/formatEventUpdateToServer.js.map +1 -1
  70. package/esm/utils/events/index.js +54 -2
  71. package/esm/utils/events/index.js.map +1 -1
  72. package/esm/utils/iot/formatOutputFieldDataFromServer.js +227 -14
  73. package/esm/utils/iot/formatOutputFieldDataFromServer.js.map +1 -1
  74. package/esm/utils/iot/index.js +56 -3
  75. package/esm/utils/iot/index.js.map +1 -1
  76. package/esm/utils/iot/parseOutputFieldNextPageUrlMetadata.js +207 -7
  77. package/esm/utils/iot/parseOutputFieldNextPageUrlMetadata.js.map +1 -1
  78. package/esm/utils/objects/createCaseChangeFn.js +449 -18
  79. package/esm/utils/objects/createCaseChangeFn.js.map +1 -1
  80. package/esm/utils/objects/index.js +56 -3
  81. package/esm/utils/objects/index.js.map +1 -1
  82. package/esm/utils/objects/map.js +520 -26
  83. package/esm/utils/objects/map.js.map +1 -1
  84. package/esm/utils/objects/toCamelCase.js +39 -3
  85. package/esm/utils/objects/toCamelCase.js.map +1 -1
  86. package/esm/utils/objects/toSnakeCase.js +39 -3
  87. package/esm/utils/objects/toSnakeCase.js.map +1 -1
  88. package/esm/utils/pagination/formatPaginatedDataFromServer.js +268 -11
  89. package/esm/utils/pagination/formatPaginatedDataFromServer.js.map +1 -1
  90. package/esm/utils/pagination/index.js +54 -2
  91. package/esm/utils/pagination/index.js.map +1 -1
  92. package/esm/utils/url/index.js +47 -2
  93. package/esm/utils/url/index.js.map +1 -1
  94. package/esm/utils/url/stringifyParams.js +176 -10
  95. package/esm/utils/url/stringifyParams.js.map +1 -1
  96. package/lib/bus/channels.js +1880 -223
  97. package/lib/bus/channels.js.map +1 -1
  98. package/lib/bus/index.browser.js +215 -43
  99. package/lib/bus/index.browser.js.map +1 -1
  100. package/lib/bus/index.js +903 -106
  101. package/lib/bus/index.js.map +1 -1
  102. package/lib/bus/webSocketConnection.browser.js +83 -15
  103. package/lib/bus/webSocketConnection.browser.js.map +1 -1
  104. package/lib/bus/webSocketConnection.js +2461 -339
  105. package/lib/bus/webSocketConnection.js.map +1 -1
  106. package/lib/config/audiences.js +33 -2
  107. package/lib/config/audiences.js.map +1 -1
  108. package/lib/config/defaults.js +33 -2
  109. package/lib/config/defaults.js.map +1 -1
  110. package/lib/config/index.js +1619 -212
  111. package/lib/config/index.js.map +1 -1
  112. package/lib/coordinator/applications.js +1016 -174
  113. package/lib/coordinator/applications.js.map +1 -1
  114. package/lib/coordinator/consent.js +600 -78
  115. package/lib/coordinator/consent.js.map +1 -1
  116. package/lib/coordinator/edgeNodes.js +517 -42
  117. package/lib/coordinator/edgeNodes.js.map +1 -1
  118. package/lib/coordinator/index.js +808 -78
  119. package/lib/coordinator/index.js.map +1 -1
  120. package/lib/coordinator/organizations.js +530 -62
  121. package/lib/coordinator/organizations.js.map +1 -1
  122. package/lib/coordinator/permissions.js +911 -109
  123. package/lib/coordinator/permissions.js.map +1 -1
  124. package/lib/coordinator/roles.js +2143 -260
  125. package/lib/coordinator/roles.js.map +1 -1
  126. package/lib/coordinator/users.js +3389 -489
  127. package/lib/coordinator/users.js.map +1 -1
  128. package/lib/events/index.js +2297 -404
  129. package/lib/events/index.js.map +1 -1
  130. package/lib/files/index.js +2050 -418
  131. package/lib/files/index.js.map +1 -1
  132. package/lib/index.js +999 -183
  133. package/lib/index.js.map +1 -1
  134. package/lib/iot/feedTypes.js +185 -27
  135. package/lib/iot/feedTypes.js.map +1 -1
  136. package/lib/iot/feeds.js +417 -61
  137. package/lib/iot/feeds.js.map +1 -1
  138. package/lib/iot/fieldCategories.js +1169 -203
  139. package/lib/iot/fieldCategories.js.map +1 -1
  140. package/lib/iot/fieldGroupings.js +1686 -263
  141. package/lib/iot/fieldGroupings.js.map +1 -1
  142. package/lib/iot/fields.js +251 -30
  143. package/lib/iot/fields.js.map +1 -1
  144. package/lib/iot/index.js +209 -55
  145. package/lib/iot/index.js.map +1 -1
  146. package/lib/iot/outputs.js +317 -34
  147. package/lib/iot/outputs.js.map +1 -1
  148. package/lib/nionic/index.js +1094 -98
  149. package/lib/nionic/index.js.map +1 -1
  150. package/lib/request.js +1310 -228
  151. package/lib/request.js.map +1 -1
  152. package/lib/sessionTypes/auth0WebAuth.js +3391 -421
  153. package/lib/sessionTypes/auth0WebAuth.js.map +1 -1
  154. package/lib/sessionTypes/index.js +209 -26
  155. package/lib/sessionTypes/index.js.map +1 -1
  156. package/lib/sessionTypes/machineAuth.js +1311 -151
  157. package/lib/sessionTypes/machineAuth.js.map +1 -1
  158. package/lib/sessionTypes/passwordGrantAuth.js +1057 -156
  159. package/lib/sessionTypes/passwordGrantAuth.js.map +1 -1
  160. package/lib/utils/events/formatEventUpdateToServer.js +102 -4
  161. package/lib/utils/events/formatEventUpdateToServer.js.map +1 -1
  162. package/lib/utils/events/index.js +51 -10
  163. package/lib/utils/events/index.js.map +1 -1
  164. package/lib/utils/iot/formatOutputFieldDataFromServer.js +224 -18
  165. package/lib/utils/iot/formatOutputFieldDataFromServer.js.map +1 -1
  166. package/lib/utils/iot/index.js +53 -15
  167. package/lib/utils/iot/index.js.map +1 -1
  168. package/lib/utils/iot/parseOutputFieldNextPageUrlMetadata.js +203 -13
  169. package/lib/utils/iot/parseOutputFieldNextPageUrlMetadata.js.map +1 -1
  170. package/lib/utils/objects/createCaseChangeFn.js +446 -25
  171. package/lib/utils/objects/createCaseChangeFn.js.map +1 -1
  172. package/lib/utils/objects/index.js +53 -15
  173. package/lib/utils/objects/index.js.map +1 -1
  174. package/lib/utils/objects/map.js +517 -33
  175. package/lib/utils/objects/map.js.map +1 -1
  176. package/lib/utils/objects/toCamelCase.js +36 -11
  177. package/lib/utils/objects/toCamelCase.js.map +1 -1
  178. package/lib/utils/objects/toSnakeCase.js +36 -11
  179. package/lib/utils/objects/toSnakeCase.js.map +1 -1
  180. package/lib/utils/pagination/formatPaginatedDataFromServer.js +265 -14
  181. package/lib/utils/pagination/formatPaginatedDataFromServer.js.map +1 -1
  182. package/lib/utils/pagination/index.js +51 -10
  183. package/lib/utils/pagination/index.js.map +1 -1
  184. package/lib/utils/url/index.js +44 -7
  185. package/lib/utils/url/index.js.map +1 -1
  186. package/lib/utils/url/stringifyParams.js +172 -18
  187. package/lib/utils/url/stringifyParams.js.map +1 -1
  188. package/package.json +31 -35
  189. package/src/bus/channels.js +6 -6
  190. package/src/bus/channels.spec.js +1 -1
  191. package/src/coordinator/applications.js +7 -7
  192. package/src/coordinator/applications.spec.js +1 -1
  193. package/src/coordinator/consent.js +3 -3
  194. package/src/coordinator/edgeNodes.js +3 -3
  195. package/src/coordinator/edgeNodes.spec.js +1 -1
  196. package/src/coordinator/organizations.js +4 -4
  197. package/src/coordinator/organizations.spec.js +1 -1
  198. package/src/coordinator/permissions.js +6 -6
  199. package/src/coordinator/permissions.spec.js +1 -1
  200. package/src/coordinator/roles.js +9 -9
  201. package/src/coordinator/roles.spec.js +1 -1
  202. package/src/coordinator/users.js +12 -12
  203. package/src/coordinator/users.spec.js +1 -1
  204. package/src/events/index.js +18 -18
  205. package/src/events/index.spec.js +3 -3
  206. package/src/files/index.js +9 -9
  207. package/src/files/index.spec.js +2 -2
  208. package/src/index.js +3 -1
  209. package/src/iot/feedTypes.js +2 -2
  210. package/src/iot/feeds.js +4 -4
  211. package/src/iot/feeds.spec.js +1 -1
  212. package/src/iot/fieldCategories.js +10 -10
  213. package/src/iot/fieldCategories.spec.js +2 -2
  214. package/src/iot/fieldGroupings.js +10 -10
  215. package/src/iot/fieldGroupings.spec.js +2 -2
  216. package/src/iot/fields.js +2 -2
  217. package/src/iot/fields.spec.js +1 -1
  218. package/src/iot/outputs.js +2 -2
  219. package/src/iot/outputs.spec.js +1 -1
  220. package/src/request.js +2 -4
  221. package/src/request.spec.js +1 -1
  222. package/src/sessionTypes/auth0WebAuth.spec.js +1 -1
  223. package/src/utils/events/index.js +2 -1
  224. package/src/utils/iot/formatOutputFieldDataFromServer.js +5 -5
  225. package/src/utils/iot/formatOutputFieldDataFromServer.spec.js +2 -2
  226. package/src/utils/iot/index.js +2 -1
  227. package/src/utils/iot/parseOutputFieldNextPageUrlMetadata.js +3 -1
  228. package/src/utils/objects/index.js +2 -1
  229. package/src/utils/pagination/formatPaginatedDataFromServer.js +3 -3
  230. package/src/utils/pagination/formatPaginatedDataFromServer.spec.js +1 -1
  231. package/src/utils/pagination/index.js +2 -1
  232. package/support/mocharc.yml +1 -1
  233. package/.eslintrc +0 -24
@@ -1 +1 @@
1
- {"version":3,"sources":["sessionTypes/machineAuth.js"],"names":["MachineAuth","sdk","_sdk","_sessionInfo","_tokenPromises","config","auth","clientId","Error","clientSecret","audienceName","promise","Promise","resolve","then","isAuthenticated","apiToken","_getNewSessionInfo","sessionInfo","expiresAt","tokenExpiresAtBufferMs","bufferedExpiresAt","Date","now","audience","audiences","reject","axios","post","contxtAuth","host","client_id","client_secret","grant_type","data","access_token","expires_in","_saveSession","catch","err","response","status","TYPE"],"mappings":"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","file":"machineAuth.js","sourcesContent":["import axios from 'axios';\n\n/**\n * @typedef {Object} MachineAuthSessionInfo\n * @property {string} apiToken\n * @property {number} expiresAt\n */\n\n/**\n * A SessionType that allows machine to machine communication between Node.js servers. This would\n * only be used in Node.js applications. This SessionType requires a client id and a client secret,\n * which are obtained from Auth0.\n *\n * @type SessionType\n *\n * @typicalname contxtSdk.auth\n *\n * @example\n * const ContxtSdk = require('@ndustrial/contxt-sdk');\n *\n * const contxtSdk = new ContxtSdk({\n * config: {\n * auth: {\n * clientId: '<client id>',\n * clientSecret: '<client secret>'\n * }\n * },\n * sessionType: 'machineAuth'\n * });\n */\nclass MachineAuth {\n /**\n * @param {Object} sdk An instance of the SDK so the module can communicate with other modules\n */\n constructor(sdk) {\n this._sdk = sdk;\n this._sessionInfo = {};\n this._tokenPromises = {};\n\n if (!this._sdk.config.auth.clientId) {\n throw new Error('clientId is required for the MachineAuth config');\n }\n\n if (!this._sdk.config.auth.clientSecret) {\n throw new Error('clientSecret is required for the MachineAuth config');\n }\n }\n\n /**\n * Removes an audience's API token from the in-memory token storage\n *\n * @param audienceName\n *\n * @returns {Promise}\n */\n clearCurrentApiToken(audienceName) {\n const promise = this._tokenPromises[audienceName] || Promise.resolve();\n\n return promise.then(() => {\n delete this._sessionInfo[audienceName];\n });\n }\n\n /**\n * Gets the current API token (used to communicate with other Contxt APIs). Will get and store a\n * token or use a previously acquired and stored token.\n *\n * @param {string} audienceName The audience you wish to get an API for\n *\n * @returns {Promise}\n * @fulfills {string} apiToken\n */\n getCurrentApiToken(audienceName) {\n if (this.isAuthenticated(audienceName)) {\n return Promise.resolve(this._sessionInfo[audienceName].apiToken);\n }\n\n return this._getNewSessionInfo(audienceName).then(\n (sessionInfo) => sessionInfo.apiToken\n );\n }\n\n /**\n * Tells caller if the app is authenticated with a particular service.\n *\n * @param audienceName\n *\n * @returns {boolean}\n */\n isAuthenticated(audienceName) {\n if (!(this._sessionInfo && this._sessionInfo[audienceName])) {\n return false;\n }\n\n const { apiToken, expiresAt } = this._sessionInfo[audienceName];\n const tokenExpiresAtBufferMs =\n this._sdk.config.auth.tokenExpiresAtBufferMs || 0;\n const bufferedExpiresAt = expiresAt - tokenExpiresAtBufferMs;\n\n return !!(apiToken && bufferedExpiresAt > Date.now());\n }\n\n /**\n * Requests an access token from Contxt Auth for the correct audience\n *\n * @param audienceName\n *\n * @returns {Promise}\n * @fulfill {MachineAuthSessionInfo}\n *\n * @private\n */\n _getNewSessionInfo(audienceName) {\n const audience = this._sdk.config.audiences[audienceName];\n\n if (!(audience && audience.clientId)) {\n return Promise.reject(new Error('No valid audience found'));\n }\n\n if (!this._tokenPromises[audienceName]) {\n this._tokenPromises[audienceName] = axios\n .post(`${this._sdk.config.audiences.contxtAuth.host}/v1/oauth/token`, {\n audience: audience.clientId,\n client_id: this._sdk.config.auth.clientId,\n client_secret: this._sdk.config.auth.clientSecret,\n grant_type: 'client_credentials'\n })\n .then(({ data }) => {\n return {\n apiToken: data.access_token,\n expiresAt: Date.now() + data.expires_in * 1000\n };\n })\n .then((sessionInfo) => {\n this._saveSession(audienceName, sessionInfo);\n this._tokenPromises[audienceName] = null;\n\n return sessionInfo;\n })\n .catch((err) => {\n if (!(err.response && err.response.status)) {\n throw new Error(\n 'There was a problem getting a token from the ContxtAuth server. Please check your configuration settings.'\n );\n }\n\n throw err;\n });\n }\n\n return this._tokenPromises[audienceName];\n }\n\n /**\n * Saves a session in the auth instance for future use\n *\n * @param {string} audienceName\n * @param {Object} sessionInfo\n * @param {string} sessionInfo.apiToken\n * @param {number} sessionInfo.expiresAt\n *\n * @private\n */\n _saveSession(audienceName, sessionInfo) {\n this._sessionInfo = {\n ...this._sessionInfo,\n [audienceName]: sessionInfo\n };\n }\n}\n\nexport const TYPE = 'machineAuth';\nexport default MachineAuth;\n"]}
1
+ {"version":3,"file":"machineAuth.js","names":["_axios","_interopRequireDefault","require","e","__esModule","default","cov_1wzdsw0kpo","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","MachineAuth","constructor","sdk","_sdk","_sessionInfo","_tokenPromises","config","auth","clientId","Error","clientSecret","clearCurrentApiToken","audienceName","promise","Promise","resolve","then","getCurrentApiToken","isAuthenticated","apiToken","_getNewSessionInfo","sessionInfo","_ref","expiresAt","tokenExpiresAtBufferMs","bufferedExpiresAt","Date","now","audience","audiences","reject","axios","post","contxtAuth","host","client_id","client_secret","grant_type","_ref2","data","access_token","expires_in","_saveSession","catch","err","response","status","TYPE","exports","_default"],"sources":["sessionTypes/machineAuth.js"],"sourcesContent":["import axios from 'axios';\n\n/**\n * @typedef {Object} MachineAuthSessionInfo\n * @property {string} apiToken\n * @property {number} expiresAt\n */\n\n/**\n * A SessionType that allows machine to machine communication between Node.js servers. This would\n * only be used in Node.js applications. This SessionType requires a client id and a client secret,\n * which are obtained from Auth0.\n *\n * @type SessionType\n *\n * @typicalname contxtSdk.auth\n *\n * @example\n * const ContxtSdk = require('@ndustrial/contxt-sdk');\n *\n * const contxtSdk = new ContxtSdk({\n * config: {\n * auth: {\n * clientId: '<client id>',\n * clientSecret: '<client secret>'\n * }\n * },\n * sessionType: 'machineAuth'\n * });\n */\nclass MachineAuth {\n /**\n * @param {Object} sdk An instance of the SDK so the module can communicate with other modules\n */\n constructor(sdk) {\n this._sdk = sdk;\n this._sessionInfo = {};\n this._tokenPromises = {};\n\n if (!this._sdk.config.auth.clientId) {\n throw new Error('clientId is required for the MachineAuth config');\n }\n\n if (!this._sdk.config.auth.clientSecret) {\n throw new Error('clientSecret is required for the MachineAuth config');\n }\n }\n\n /**\n * Removes an audience's API token from the in-memory token storage\n *\n * @param audienceName\n *\n * @returns {Promise}\n */\n clearCurrentApiToken(audienceName) {\n const promise = this._tokenPromises[audienceName] || Promise.resolve();\n\n return promise.then(() => {\n delete this._sessionInfo[audienceName];\n });\n }\n\n /**\n * Gets the current API token (used to communicate with other Contxt APIs). Will get and store a\n * token or use a previously acquired and stored token.\n *\n * @param {string} audienceName The audience you wish to get an API for\n *\n * @returns {Promise}\n * @fulfills {string} apiToken\n */\n getCurrentApiToken(audienceName) {\n if (this.isAuthenticated(audienceName)) {\n return Promise.resolve(this._sessionInfo[audienceName].apiToken);\n }\n\n return this._getNewSessionInfo(audienceName).then(\n (sessionInfo) => sessionInfo.apiToken\n );\n }\n\n /**\n * Tells caller if the app is authenticated with a particular service.\n *\n * @param audienceName\n *\n * @returns {boolean}\n */\n isAuthenticated(audienceName) {\n if (!(this._sessionInfo && this._sessionInfo[audienceName])) {\n return false;\n }\n\n const { apiToken, expiresAt } = this._sessionInfo[audienceName];\n const tokenExpiresAtBufferMs =\n this._sdk.config.auth.tokenExpiresAtBufferMs || 0;\n const bufferedExpiresAt = expiresAt - tokenExpiresAtBufferMs;\n\n return !!(apiToken && bufferedExpiresAt > Date.now());\n }\n\n /**\n * Requests an access token from Contxt Auth for the correct audience\n *\n * @param audienceName\n *\n * @returns {Promise}\n * @fulfill {MachineAuthSessionInfo}\n *\n * @private\n */\n _getNewSessionInfo(audienceName) {\n const audience = this._sdk.config.audiences[audienceName];\n\n if (!(audience && audience.clientId)) {\n return Promise.reject(new Error('No valid audience found'));\n }\n\n if (!this._tokenPromises[audienceName]) {\n this._tokenPromises[audienceName] = axios\n .post(`${this._sdk.config.audiences.contxtAuth.host}/v1/oauth/token`, {\n audience: audience.clientId,\n client_id: this._sdk.config.auth.clientId,\n client_secret: this._sdk.config.auth.clientSecret,\n grant_type: 'client_credentials'\n })\n .then(({ data }) => {\n return {\n apiToken: data.access_token,\n expiresAt: Date.now() + data.expires_in * 1000\n };\n })\n .then((sessionInfo) => {\n this._saveSession(audienceName, sessionInfo);\n this._tokenPromises[audienceName] = null;\n\n return sessionInfo;\n })\n .catch((err) => {\n if (!(err.response && err.response.status)) {\n throw new Error(\n 'There was a problem getting a token from the ContxtAuth server. Please check your configuration settings.'\n );\n }\n\n throw err;\n });\n }\n\n return this._tokenPromises[audienceName];\n }\n\n /**\n * Saves a session in the auth instance for future use\n *\n * @param {string} audienceName\n * @param {Object} sessionInfo\n * @param {string} sessionInfo.apiToken\n * @param {number} sessionInfo.expiresAt\n *\n * @private\n */\n _saveSession(audienceName, sessionInfo) {\n this._sessionInfo = {\n ...this._sessionInfo,\n [audienceName]: sessionInfo\n };\n }\n}\n\nexport const TYPE = 'machineAuth';\nexport default MachineAuth;\n"],"mappings":";;;;;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAA0B,SAAAD,uBAAAE,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;U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","ignoreList":[]}