auth0 4.0.0-beta.0 → 4.0.0-beta.2

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 (278) hide show
  1. package/README.md +6 -1
  2. package/dist/cjs/auth/base-auth-api.js +60 -0
  3. package/dist/cjs/auth/base-auth-api.js.map +1 -0
  4. package/dist/cjs/auth/client-authentication.js +64 -0
  5. package/dist/cjs/auth/client-authentication.js.map +1 -0
  6. package/dist/cjs/auth/database.js +73 -0
  7. package/dist/cjs/auth/database.js.map +1 -0
  8. package/dist/cjs/auth/id-token-validator.js +135 -0
  9. package/dist/cjs/auth/id-token-validator.js.map +1 -0
  10. package/dist/cjs/auth/index.js +40 -0
  11. package/dist/cjs/auth/index.js.map +1 -0
  12. package/dist/cjs/auth/oauth.js +199 -0
  13. package/dist/cjs/auth/oauth.js.map +1 -0
  14. package/dist/cjs/auth/passwordless.js +154 -0
  15. package/dist/cjs/auth/passwordless.js.map +1 -0
  16. package/dist/cjs/index.js +19 -0
  17. package/dist/cjs/index.js.map +1 -0
  18. package/dist/cjs/lib/errors.js +49 -0
  19. package/dist/cjs/lib/errors.js.map +1 -0
  20. package/dist/cjs/lib/index.js +19 -0
  21. package/dist/cjs/lib/index.js.map +1 -0
  22. package/dist/cjs/lib/middleware/telemetry-middleware.js +27 -0
  23. package/dist/cjs/lib/middleware/telemetry-middleware.js.map +1 -0
  24. package/dist/cjs/lib/models.js +41 -0
  25. package/dist/cjs/lib/models.js.map +1 -0
  26. package/dist/cjs/lib/retry.js +55 -0
  27. package/dist/cjs/lib/retry.js.map +1 -0
  28. package/dist/cjs/lib/runtime.js +250 -0
  29. package/dist/cjs/lib/runtime.js.map +1 -0
  30. package/dist/cjs/management/__generated/index.js +58 -0
  31. package/dist/cjs/management/__generated/index.js.map +1 -0
  32. package/dist/cjs/management/__generated/managers/actions-manager.js +336 -0
  33. package/dist/cjs/management/__generated/managers/actions-manager.js.map +1 -0
  34. package/dist/cjs/management/__generated/managers/anomaly-manager.js +63 -0
  35. package/dist/cjs/management/__generated/managers/anomaly-manager.js.map +1 -0
  36. package/dist/cjs/management/__generated/managers/attack-protection-manager.js +131 -0
  37. package/dist/cjs/management/__generated/managers/attack-protection-manager.js.map +1 -0
  38. package/dist/cjs/management/__generated/managers/blacklists-manager.js +76 -0
  39. package/dist/cjs/management/__generated/managers/blacklists-manager.js.map +1 -0
  40. package/dist/cjs/management/__generated/managers/branding-manager.js +207 -0
  41. package/dist/cjs/management/__generated/managers/branding-manager.js.map +1 -0
  42. package/dist/cjs/management/__generated/managers/client-grants-manager.js +114 -0
  43. package/dist/cjs/management/__generated/managers/client-grants-manager.js.map +1 -0
  44. package/dist/cjs/management/__generated/managers/clients-manager.js +238 -0
  45. package/dist/cjs/management/__generated/managers/clients-manager.js.map +1 -0
  46. package/dist/cjs/management/__generated/managers/connections-manager.js +193 -0
  47. package/dist/cjs/management/__generated/managers/connections-manager.js.map +1 -0
  48. package/dist/cjs/management/__generated/managers/custom-domains-manager.js +179 -0
  49. package/dist/cjs/management/__generated/managers/custom-domains-manager.js.map +1 -0
  50. package/dist/cjs/management/__generated/managers/device-credentials-manager.js +112 -0
  51. package/dist/cjs/management/__generated/managers/device-credentials-manager.js.map +1 -0
  52. package/dist/cjs/management/__generated/managers/email-templates-manager.js +102 -0
  53. package/dist/cjs/management/__generated/managers/email-templates-manager.js.map +1 -0
  54. package/dist/cjs/management/__generated/managers/emails-manager.js +102 -0
  55. package/dist/cjs/management/__generated/managers/emails-manager.js.map +1 -0
  56. package/dist/cjs/management/__generated/managers/grants-manager.js +103 -0
  57. package/dist/cjs/management/__generated/managers/grants-manager.js.map +1 -0
  58. package/dist/cjs/management/__generated/managers/guardian-manager.js +518 -0
  59. package/dist/cjs/management/__generated/managers/guardian-manager.js.map +1 -0
  60. package/dist/cjs/management/__generated/managers/hooks-manager.js +214 -0
  61. package/dist/cjs/management/__generated/managers/hooks-manager.js.map +1 -0
  62. package/dist/cjs/management/__generated/managers/index.js +48 -0
  63. package/dist/cjs/management/__generated/managers/index.js.map +1 -0
  64. package/dist/cjs/management/__generated/managers/jobs-manager.js +139 -0
  65. package/dist/cjs/management/__generated/managers/jobs-manager.js.map +1 -0
  66. package/dist/cjs/management/__generated/managers/keys-manager.js +85 -0
  67. package/dist/cjs/management/__generated/managers/keys-manager.js.map +1 -0
  68. package/dist/cjs/management/__generated/managers/log-streams-manager.js +392 -0
  69. package/dist/cjs/management/__generated/managers/log-streams-manager.js.map +1 -0
  70. package/dist/cjs/management/__generated/managers/logs-manager.js +95 -0
  71. package/dist/cjs/management/__generated/managers/logs-manager.js.map +1 -0
  72. package/dist/cjs/management/__generated/managers/organizations-manager.js +463 -0
  73. package/dist/cjs/management/__generated/managers/organizations-manager.js.map +1 -0
  74. package/dist/cjs/management/__generated/managers/prompts-manager.js +101 -0
  75. package/dist/cjs/management/__generated/managers/prompts-manager.js.map +1 -0
  76. package/dist/cjs/management/__generated/managers/resource-servers-manager.js +131 -0
  77. package/dist/cjs/management/__generated/managers/resource-servers-manager.js.map +1 -0
  78. package/dist/cjs/management/__generated/managers/roles-manager.js +238 -0
  79. package/dist/cjs/management/__generated/managers/roles-manager.js.map +1 -0
  80. package/dist/cjs/management/__generated/managers/rules-configs-manager.js +82 -0
  81. package/dist/cjs/management/__generated/managers/rules-configs-manager.js.map +1 -0
  82. package/dist/cjs/management/__generated/managers/rules-manager.js +149 -0
  83. package/dist/cjs/management/__generated/managers/rules-manager.js.map +1 -0
  84. package/dist/cjs/management/__generated/managers/stats-manager.js +72 -0
  85. package/dist/cjs/management/__generated/managers/stats-manager.js.map +1 -0
  86. package/dist/cjs/management/__generated/managers/tenants-manager.js +76 -0
  87. package/dist/cjs/management/__generated/managers/tenants-manager.js.map +1 -0
  88. package/dist/cjs/management/__generated/managers/tickets-manager.js +69 -0
  89. package/dist/cjs/management/__generated/managers/tickets-manager.js.map +1 -0
  90. package/dist/cjs/management/__generated/managers/user-blocks-manager.js +123 -0
  91. package/dist/cjs/management/__generated/managers/user-blocks-manager.js.map +1 -0
  92. package/dist/cjs/management/__generated/managers/users-by-email-manager.js +69 -0
  93. package/dist/cjs/management/__generated/managers/users-by-email-manager.js.map +1 -0
  94. package/dist/cjs/management/__generated/managers/users-manager.js +634 -0
  95. package/dist/cjs/management/__generated/managers/users-manager.js.map +1 -0
  96. package/dist/cjs/management/__generated/models/index.js +1581 -0
  97. package/dist/cjs/management/__generated/models/index.js.map +1 -0
  98. package/dist/cjs/management/index.js +20 -0
  99. package/dist/cjs/management/index.js.map +1 -0
  100. package/dist/cjs/management/management-client-options.js +3 -0
  101. package/dist/cjs/management/management-client-options.js.map +1 -0
  102. package/dist/cjs/management/management-client.js +54 -0
  103. package/dist/cjs/management/management-client.js.map +1 -0
  104. package/dist/cjs/management/token-provider-middleware.js +39 -0
  105. package/dist/cjs/management/token-provider-middleware.js.map +1 -0
  106. package/dist/cjs/management/token-provider.js +36 -0
  107. package/dist/cjs/management/token-provider.js.map +1 -0
  108. package/dist/cjs/package.json +1 -0
  109. package/dist/cjs/utils.js +16 -0
  110. package/dist/cjs/utils.js.map +1 -0
  111. package/dist/cjs/version.js +5 -0
  112. package/dist/cjs/version.js.map +1 -0
  113. package/dist/esm/auth/base-auth-api.js +55 -0
  114. package/dist/esm/auth/base-auth-api.js.map +1 -0
  115. package/dist/esm/auth/client-authentication.js +37 -0
  116. package/dist/esm/auth/client-authentication.js.map +1 -0
  117. package/dist/esm/auth/database.js +69 -0
  118. package/dist/esm/auth/database.js.map +1 -0
  119. package/dist/esm/auth/id-token-validator.js +107 -0
  120. package/dist/esm/auth/id-token-validator.js.map +1 -0
  121. package/dist/esm/auth/index.js +20 -0
  122. package/dist/esm/auth/index.js.map +1 -0
  123. package/dist/esm/auth/oauth.js +195 -0
  124. package/dist/esm/auth/oauth.js.map +1 -0
  125. package/dist/esm/auth/passwordless.js +150 -0
  126. package/dist/esm/auth/passwordless.js.map +1 -0
  127. package/dist/esm/index.js +3 -0
  128. package/dist/esm/index.js.map +1 -0
  129. package/dist/esm/lib/errors.js +42 -0
  130. package/dist/esm/lib/errors.js.map +1 -0
  131. package/dist/esm/lib/index.js +3 -0
  132. package/dist/esm/lib/index.js.map +1 -0
  133. package/dist/esm/lib/middleware/telemetry-middleware.js +23 -0
  134. package/dist/esm/lib/middleware/telemetry-middleware.js.map +1 -0
  135. package/dist/esm/lib/models.js +35 -0
  136. package/dist/esm/lib/models.js.map +1 -0
  137. package/dist/esm/lib/retry.js +51 -0
  138. package/dist/esm/lib/retry.js.map +1 -0
  139. package/dist/esm/lib/runtime.js +225 -0
  140. package/dist/esm/lib/runtime.js.map +1 -0
  141. package/dist/esm/management/__generated/index.js +40 -0
  142. package/dist/esm/management/__generated/index.js.map +1 -0
  143. package/dist/esm/management/__generated/managers/actions-manager.js +309 -0
  144. package/dist/esm/management/__generated/managers/actions-manager.js.map +1 -0
  145. package/dist/esm/management/__generated/managers/anomaly-manager.js +36 -0
  146. package/dist/esm/management/__generated/managers/anomaly-manager.js.map +1 -0
  147. package/dist/esm/management/__generated/managers/attack-protection-manager.js +104 -0
  148. package/dist/esm/management/__generated/managers/attack-protection-manager.js.map +1 -0
  149. package/dist/esm/management/__generated/managers/blacklists-manager.js +49 -0
  150. package/dist/esm/management/__generated/managers/blacklists-manager.js.map +1 -0
  151. package/dist/esm/management/__generated/managers/branding-manager.js +180 -0
  152. package/dist/esm/management/__generated/managers/branding-manager.js.map +1 -0
  153. package/dist/esm/management/__generated/managers/client-grants-manager.js +87 -0
  154. package/dist/esm/management/__generated/managers/client-grants-manager.js.map +1 -0
  155. package/dist/esm/management/__generated/managers/clients-manager.js +211 -0
  156. package/dist/esm/management/__generated/managers/clients-manager.js.map +1 -0
  157. package/dist/esm/management/__generated/managers/connections-manager.js +166 -0
  158. package/dist/esm/management/__generated/managers/connections-manager.js.map +1 -0
  159. package/dist/esm/management/__generated/managers/custom-domains-manager.js +152 -0
  160. package/dist/esm/management/__generated/managers/custom-domains-manager.js.map +1 -0
  161. package/dist/esm/management/__generated/managers/device-credentials-manager.js +85 -0
  162. package/dist/esm/management/__generated/managers/device-credentials-manager.js.map +1 -0
  163. package/dist/esm/management/__generated/managers/email-templates-manager.js +75 -0
  164. package/dist/esm/management/__generated/managers/email-templates-manager.js.map +1 -0
  165. package/dist/esm/management/__generated/managers/emails-manager.js +75 -0
  166. package/dist/esm/management/__generated/managers/emails-manager.js.map +1 -0
  167. package/dist/esm/management/__generated/managers/grants-manager.js +76 -0
  168. package/dist/esm/management/__generated/managers/grants-manager.js.map +1 -0
  169. package/dist/esm/management/__generated/managers/guardian-manager.js +491 -0
  170. package/dist/esm/management/__generated/managers/guardian-manager.js.map +1 -0
  171. package/dist/esm/management/__generated/managers/hooks-manager.js +187 -0
  172. package/dist/esm/management/__generated/managers/hooks-manager.js.map +1 -0
  173. package/dist/esm/management/__generated/managers/index.js +32 -0
  174. package/dist/esm/management/__generated/managers/index.js.map +1 -0
  175. package/dist/esm/management/__generated/managers/jobs-manager.js +112 -0
  176. package/dist/esm/management/__generated/managers/jobs-manager.js.map +1 -0
  177. package/dist/esm/management/__generated/managers/keys-manager.js +58 -0
  178. package/dist/esm/management/__generated/managers/keys-manager.js.map +1 -0
  179. package/dist/esm/management/__generated/managers/log-streams-manager.js +365 -0
  180. package/dist/esm/management/__generated/managers/log-streams-manager.js.map +1 -0
  181. package/dist/esm/management/__generated/managers/logs-manager.js +68 -0
  182. package/dist/esm/management/__generated/managers/logs-manager.js.map +1 -0
  183. package/dist/esm/management/__generated/managers/organizations-manager.js +436 -0
  184. package/dist/esm/management/__generated/managers/organizations-manager.js.map +1 -0
  185. package/dist/esm/management/__generated/managers/prompts-manager.js +74 -0
  186. package/dist/esm/management/__generated/managers/prompts-manager.js.map +1 -0
  187. package/dist/esm/management/__generated/managers/resource-servers-manager.js +104 -0
  188. package/dist/esm/management/__generated/managers/resource-servers-manager.js.map +1 -0
  189. package/dist/esm/management/__generated/managers/roles-manager.js +211 -0
  190. package/dist/esm/management/__generated/managers/roles-manager.js.map +1 -0
  191. package/dist/esm/management/__generated/managers/rules-configs-manager.js +55 -0
  192. package/dist/esm/management/__generated/managers/rules-configs-manager.js.map +1 -0
  193. package/dist/esm/management/__generated/managers/rules-manager.js +122 -0
  194. package/dist/esm/management/__generated/managers/rules-manager.js.map +1 -0
  195. package/dist/esm/management/__generated/managers/stats-manager.js +45 -0
  196. package/dist/esm/management/__generated/managers/stats-manager.js.map +1 -0
  197. package/dist/esm/management/__generated/managers/tenants-manager.js +49 -0
  198. package/dist/esm/management/__generated/managers/tenants-manager.js.map +1 -0
  199. package/dist/esm/management/__generated/managers/tickets-manager.js +42 -0
  200. package/dist/esm/management/__generated/managers/tickets-manager.js.map +1 -0
  201. package/dist/esm/management/__generated/managers/user-blocks-manager.js +96 -0
  202. package/dist/esm/management/__generated/managers/user-blocks-manager.js.map +1 -0
  203. package/dist/esm/management/__generated/managers/users-by-email-manager.js +42 -0
  204. package/dist/esm/management/__generated/managers/users-by-email-manager.js.map +1 -0
  205. package/dist/esm/management/__generated/managers/users-manager.js +607 -0
  206. package/dist/esm/management/__generated/managers/users-manager.js.map +1 -0
  207. package/dist/esm/management/__generated/models/index.js +1575 -0
  208. package/dist/esm/management/__generated/models/index.js.map +1 -0
  209. package/dist/esm/management/index.js +4 -0
  210. package/dist/esm/management/index.js.map +1 -0
  211. package/dist/esm/management/management-client-options.js +2 -0
  212. package/dist/esm/management/management-client-options.js.map +1 -0
  213. package/dist/esm/management/management-client.js +49 -0
  214. package/dist/esm/management/management-client.js.map +1 -0
  215. package/dist/esm/management/token-provider-middleware.js +35 -0
  216. package/dist/esm/management/token-provider-middleware.js.map +1 -0
  217. package/dist/esm/management/token-provider.js +32 -0
  218. package/dist/esm/management/token-provider.js.map +1 -0
  219. package/dist/esm/utils.js +12 -0
  220. package/dist/esm/utils.js.map +1 -0
  221. package/dist/esm/version.js +2 -0
  222. package/dist/esm/version.js.map +1 -0
  223. package/dist/types/auth/base-auth-api.d.ts +33 -0
  224. package/dist/types/auth/client-authentication.d.ts +26 -0
  225. package/dist/types/auth/database.d.ts +153 -0
  226. package/dist/types/auth/id-token-validator.d.ts +18 -0
  227. package/dist/types/auth/index.d.ts +15 -0
  228. package/dist/types/auth/oauth.d.ts +295 -0
  229. package/dist/types/auth/passwordless.d.ts +165 -0
  230. package/dist/types/index.d.ts +2 -0
  231. package/dist/types/lib/errors.d.ts +34 -0
  232. package/dist/types/lib/index.d.ts +3 -0
  233. package/dist/types/lib/middleware/telemetry-middleware.d.ts +12 -0
  234. package/dist/types/lib/models.d.ts +124 -0
  235. package/dist/types/lib/retry.d.ts +27 -0
  236. package/dist/types/lib/runtime.d.ts +69 -0
  237. package/dist/types/management/__generated/index.d.ts +39 -0
  238. package/dist/types/management/__generated/managers/actions-manager.d.ts +136 -0
  239. package/dist/types/management/__generated/managers/anomaly-manager.d.ts +24 -0
  240. package/dist/types/management/__generated/managers/attack-protection-manager.d.ts +52 -0
  241. package/dist/types/management/__generated/managers/blacklists-manager.d.ts +28 -0
  242. package/dist/types/management/__generated/managers/branding-manager.d.ts +103 -0
  243. package/dist/types/management/__generated/managers/client-grants-manager.d.ts +42 -0
  244. package/dist/types/management/__generated/managers/clients-manager.d.ts +119 -0
  245. package/dist/types/management/__generated/managers/connections-manager.d.ts +71 -0
  246. package/dist/types/management/__generated/managers/custom-domains-manager.d.ts +106 -0
  247. package/dist/types/management/__generated/managers/device-credentials-manager.d.ts +42 -0
  248. package/dist/types/management/__generated/managers/email-templates-manager.d.ts +38 -0
  249. package/dist/types/management/__generated/managers/emails-manager.d.ts +40 -0
  250. package/dist/types/management/__generated/managers/grants-manager.d.ts +34 -0
  251. package/dist/types/management/__generated/managers/guardian-manager.d.ts +240 -0
  252. package/dist/types/management/__generated/managers/hooks-manager.d.ts +94 -0
  253. package/dist/types/management/__generated/managers/index.d.ts +31 -0
  254. package/dist/types/management/__generated/managers/jobs-manager.d.ts +47 -0
  255. package/dist/types/management/__generated/managers/keys-manager.d.ts +34 -0
  256. package/dist/types/management/__generated/managers/log-streams-manager.d.ts +326 -0
  257. package/dist/types/management/__generated/managers/logs-manager.d.ts +56 -0
  258. package/dist/types/management/__generated/managers/organizations-manager.d.ts +191 -0
  259. package/dist/types/management/__generated/managers/prompts-manager.d.ts +42 -0
  260. package/dist/types/management/__generated/managers/resource-servers-manager.d.ts +48 -0
  261. package/dist/types/management/__generated/managers/roles-manager.d.ts +110 -0
  262. package/dist/types/management/__generated/managers/rules-configs-manager.d.ts +33 -0
  263. package/dist/types/management/__generated/managers/rules-manager.d.ts +55 -0
  264. package/dist/types/management/__generated/managers/stats-manager.d.ts +24 -0
  265. package/dist/types/management/__generated/managers/tenants-manager.d.ts +24 -0
  266. package/dist/types/management/__generated/managers/tickets-manager.d.ts +24 -0
  267. package/dist/types/management/__generated/managers/user-blocks-manager.d.ts +45 -0
  268. package/dist/types/management/__generated/managers/users-by-email-manager.d.ts +22 -0
  269. package/dist/types/management/__generated/managers/users-manager.d.ts +323 -0
  270. package/dist/types/management/__generated/models/index.d.ts +12704 -0
  271. package/dist/types/management/index.d.ts +3 -0
  272. package/dist/types/management/management-client-options.d.ts +17 -0
  273. package/dist/types/management/management-client.d.ts +17 -0
  274. package/dist/types/management/token-provider-middleware.d.ts +7 -0
  275. package/dist/types/management/token-provider.d.ts +21 -0
  276. package/dist/types/utils.d.ts +10 -0
  277. package/dist/types/version.d.ts +1 -0
  278. package/package.json +1 -1
package/README.md CHANGED
@@ -8,7 +8,7 @@
8
8
  [![License](https://img.shields.io/:license-mit-blue.svg?style=flat)](https://opensource.org/licenses/MIT)
9
9
  ![CircleCI](https://img.shields.io/circleci/build/github/auth0/node-auth0)
10
10
 
11
- 📚 [Documentation](#documentation) - 🚀 [Getting Started](#getting-started) - 💬 [Feedback](#feedback)
11
+ 📚 [Documentation](#documentation) - 🚀 [Getting Started](#getting-started) - 💻 [API Reference](#api-reference) - 💬 [Feedback](#feedback)
12
12
 
13
13
  ## Documentation
14
14
 
@@ -74,6 +74,11 @@ var management = new ManagementClient({
74
74
  });
75
75
  ```
76
76
 
77
+ ## API Reference
78
+
79
+ - [AuthenticationClient](https://auth0.github.io/node-auth0/beta/classes/auth.AuthenticationClient.html)
80
+ - [ManagementClient](https://auth0.github.io/node-auth0/beta/classes/management.ManagementClient.html)
81
+
77
82
  ## Feedback
78
83
 
79
84
  ### Contributing
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BaseAuthAPI = exports.AuthApiError = void 0;
4
+ const errors_js_1 = require("../lib/errors.js");
5
+ const runtime_js_1 = require("../lib/runtime.js");
6
+ const client_authentication_js_1 = require("./client-authentication.js");
7
+ class AuthApiError extends Error {
8
+ constructor(error, error_description, statusCode, body, headers) {
9
+ super(error_description || error);
10
+ this.error = error;
11
+ this.error_description = error_description;
12
+ this.statusCode = statusCode;
13
+ this.body = body;
14
+ this.headers = headers;
15
+ this.name = 'AuthApiError';
16
+ }
17
+ }
18
+ exports.AuthApiError = AuthApiError;
19
+ async function parseError(response) {
20
+ // Errors typically have a specific format:
21
+ // {
22
+ // error: 'invalid_body',
23
+ // error_description: 'Bad Request',
24
+ // }
25
+ const body = await response.text();
26
+ let data;
27
+ try {
28
+ data = JSON.parse(body);
29
+ return new AuthApiError(data.error, data.error_description, response.status, body, response.headers);
30
+ }
31
+ catch (_) {
32
+ return new errors_js_1.ResponseError(response.status, body, response.headers, 'Response returned an error code');
33
+ }
34
+ }
35
+ class BaseAuthAPI extends runtime_js_1.BaseAPI {
36
+ constructor(options) {
37
+ super({ ...options, baseUrl: `https://${options.domain}`, parseError });
38
+ this.domain = options.domain;
39
+ this.clientId = options.clientId;
40
+ this.clientSecret = options.clientSecret;
41
+ this.clientAssertionSigningKey = options.clientAssertionSigningKey;
42
+ this.clientAssertionSigningAlg = options.clientAssertionSigningAlg;
43
+ }
44
+ /**
45
+ * @private
46
+ */
47
+ async addClientAuthentication(payload, required) {
48
+ return (0, client_authentication_js_1.addClientAuthentication)({
49
+ payload,
50
+ domain: this.domain,
51
+ required,
52
+ clientId: this.clientId,
53
+ clientSecret: this.clientSecret,
54
+ clientAssertionSigningKey: this.clientAssertionSigningKey,
55
+ clientAssertionSigningAlg: this.clientAssertionSigningAlg,
56
+ });
57
+ }
58
+ }
59
+ exports.BaseAuthAPI = BaseAuthAPI;
60
+ //# sourceMappingURL=base-auth-api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-auth-api.js","sourceRoot":"","sources":["../../../src/auth/base-auth-api.ts"],"names":[],"mappings":";;;AAAA,gDAAiD;AACjD,kDAA2D;AAC3D,yEAGoC;AAkBpC,MAAa,YAAa,SAAQ,KAAK;IAErC,YACS,KAAa,EACb,iBAAyB,EACzB,UAAkB,EAClB,IAAY,EACZ,OAAgB;QAEvB,KAAK,CAAC,iBAAiB,IAAI,KAAK,CAAC,CAAC;QAN3B,UAAK,GAAL,KAAK,CAAQ;QACb,sBAAiB,GAAjB,iBAAiB,CAAQ;QACzB,eAAU,GAAV,UAAU,CAAQ;QAClB,SAAI,GAAJ,IAAI,CAAQ;QACZ,YAAO,GAAP,OAAO,CAAS;QANhB,SAAI,GAAG,cAAuB,CAAC;IASxC,CAAC;CACF;AAXD,oCAWC;AAED,KAAK,UAAU,UAAU,CAAC,QAAkB;IAC1C,2CAA2C;IAC3C,IAAI;IACJ,4BAA4B;IAC5B,uCAAuC;IACvC,IAAI;IAEJ,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IACnC,IAAI,IAA0B,CAAC;IAE/B,IAAI;QACF,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAyB,CAAC;QAChD,OAAO,IAAI,YAAY,CACrB,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,iBAAiB,EACtB,QAAQ,CAAC,MAAM,EACf,IAAI,EACJ,QAAQ,CAAC,OAAO,CACjB,CAAC;KACH;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,IAAI,yBAAa,CACtB,QAAQ,CAAC,MAAM,EACf,IAAI,EACJ,QAAQ,CAAC,OAAO,EAChB,iCAAiC,CAClC,CAAC;KACH;AACH,CAAC;AACD,MAAa,WAAY,SAAQ,oBAAO;IAOtC,YAAY,OAAoC;QAC9C,KAAK,CAAC,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,WAAW,OAAO,CAAC,MAAM,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;QAExE,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;QACzC,IAAI,CAAC,yBAAyB,GAAG,OAAO,CAAC,yBAAyB,CAAC;QACnE,IAAI,CAAC,yBAAyB,GAAG,OAAO,CAAC,yBAAyB,CAAC;IACrE,CAAC;IAED;;OAEG;IACO,KAAK,CAAC,uBAAuB,CACrC,OAAuC,EACvC,QAAiB;QAEjB,OAAO,IAAA,kDAAuB,EAAC;YAC7B,OAAO;YACP,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,QAAQ;YACR,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,yBAAyB,EAAE,IAAI,CAAC,yBAAyB;YACzD,yBAAyB,EAAE,IAAI,CAAC,yBAAyB;SAC1D,CAAC,CAAC;IACL,CAAC;CACF;AAlCD,kCAkCC"}
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.addClientAuthentication = void 0;
27
+ const jose = __importStar(require("jose"));
28
+ const uuid_1 = require("uuid");
29
+ /**
30
+ * Adds client authentication, if available, to the provided payload.
31
+ *
32
+ * Adds `client_secret` for Client Secret Post token endpoint auth method (the SDK doesn't use Client Secret Basic)
33
+ * Adds `client_assertion` and `client_assertion_type` for Private Key JWT token endpoint auth method.
34
+ *
35
+ * If `clientAssertionSigningKey` is provided it takes precedent over `clientSecret` .
36
+ */
37
+ const addClientAuthentication = async ({ payload, domain, clientId, required, clientAssertionSigningKey, clientAssertionSigningAlg, clientSecret, }) => {
38
+ const cid = payload.client_id || clientId;
39
+ if (clientAssertionSigningKey && !payload.client_assertion) {
40
+ const alg = clientAssertionSigningAlg || 'RS256';
41
+ const privateKey = await jose.importPKCS8(clientAssertionSigningKey, alg);
42
+ payload.client_assertion = await new jose.SignJWT({})
43
+ .setProtectedHeader({ alg })
44
+ .setIssuedAt()
45
+ .setSubject(cid)
46
+ .setJti((0, uuid_1.v4)())
47
+ .setIssuer(cid)
48
+ .setAudience(`https://${domain}/`)
49
+ .setExpirationTime('2mins')
50
+ .sign(privateKey);
51
+ payload.client_assertion_type = 'urn:ietf:params:oauth:client-assertion-type:jwt-bearer';
52
+ }
53
+ else if (clientSecret && !payload.client_secret) {
54
+ payload.client_secret = clientSecret;
55
+ }
56
+ if (required &&
57
+ (!payload.client_secret || payload.client_secret.trim().length === 0) &&
58
+ (!payload.client_assertion || payload.client_assertion.trim().length === 0)) {
59
+ throw new Error('The client_secret or client_assertion field is required.');
60
+ }
61
+ return payload;
62
+ };
63
+ exports.addClientAuthentication = addClientAuthentication;
64
+ //# sourceMappingURL=client-authentication.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client-authentication.js","sourceRoot":"","sources":["../../../src/auth/client-authentication.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAA6B;AAC7B,+BAAkC;AAoBlC;;;;;;;GAOG;AACI,MAAM,uBAAuB,GAAG,KAAK,EAAE,EAC5C,OAAO,EACP,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,yBAAyB,EACzB,yBAAyB,EACzB,YAAY,GACmB,EAAoC,EAAE;IACrE,MAAM,GAAG,GAAG,OAAO,CAAC,SAAS,IAAI,QAAQ,CAAC;IAC1C,IAAI,yBAAyB,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE;QAC1D,MAAM,GAAG,GAAG,yBAAyB,IAAI,OAAO,CAAC;QACjD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,yBAAyB,EAAE,GAAG,CAAC,CAAC;QAE1E,OAAO,CAAC,gBAAgB,GAAG,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;aAClD,kBAAkB,CAAC,EAAE,GAAG,EAAE,CAAC;aAC3B,WAAW,EAAE;aACb,UAAU,CAAC,GAAG,CAAC;aACf,MAAM,CAAC,IAAA,SAAI,GAAE,CAAC;aACd,SAAS,CAAC,GAAG,CAAC;aACd,WAAW,CAAC,WAAW,MAAM,GAAG,CAAC;aACjC,iBAAiB,CAAC,OAAO,CAAC;aAC1B,IAAI,CAAC,UAAU,CAAC,CAAC;QACpB,OAAO,CAAC,qBAAqB,GAAG,wDAAwD,CAAC;KAC1F;SAAM,IAAI,YAAY,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE;QACjD,OAAO,CAAC,aAAa,GAAG,YAAY,CAAC;KACtC;IACD,IACE,QAAQ;QACR,CAAC,CAAC,OAAO,CAAC,aAAa,IAAI,OAAO,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,CAAC;QACrE,CAAC,CAAC,OAAO,CAAC,gBAAgB,IAAI,OAAO,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,CAAC,EAC3E;QACA,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;KAC7E;IACD,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAnCW,QAAA,uBAAuB,2BAmClC"}
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Database = void 0;
4
+ const models_js_1 = require("../lib/models.js");
5
+ const runtime_js_1 = require("../lib/runtime.js");
6
+ const base_auth_api_js_1 = require("./base-auth-api.js");
7
+ /**
8
+ * Sign-up and change-password for Database & Active Directory authentication services.
9
+ */
10
+ class Database extends base_auth_api_js_1.BaseAuthAPI {
11
+ /**
12
+ * Given a user's credentials, and a connection, this endpoint will create a new user using active authentication.
13
+ *
14
+ * This endpoint only works for database connections.
15
+ *
16
+ * See: https://auth0.com/docs/api/authentication#signup
17
+ *
18
+ * @example
19
+ * ```js
20
+ * var data = {
21
+ * email: '{EMAIL}',
22
+ * password: '{PASSWORD}',
23
+ * connection: 'Username-Password-Authentication'
24
+ * };
25
+ *
26
+ * await auth0.database.signUp(data);
27
+ * ```
28
+ */
29
+ async signUp(bodyParameters, initOverrides) {
30
+ // TODO: call this `validateRequiredParams` so we can use with bodyParameters in the auth api
31
+ (0, runtime_js_1.validateRequiredRequestParams)(bodyParameters, ['email', 'password', 'connection']);
32
+ const response = await this.request({
33
+ path: '/dbconnections/signup',
34
+ method: 'POST',
35
+ headers: {
36
+ 'Content-Type': 'application/json',
37
+ },
38
+ body: { client_id: this.clientId, ...bodyParameters },
39
+ }, initOverrides);
40
+ return models_js_1.JSONApiResponse.fromResponse(response);
41
+ }
42
+ /**
43
+ * Given a user's email address and a connection, Auth0 will send a change password email.
44
+ *
45
+ * This endpoint only works for database connections.
46
+ *
47
+ * See: https://auth0.com/docs/api/authentication#change-password
48
+ *
49
+ * @example
50
+ * ```js
51
+ * var data = {
52
+ * email: '{EMAIL}',
53
+ * connection: 'Username-Password-Authentication'
54
+ * };
55
+ *
56
+ * await auth0.database.changePassword(data);
57
+ * ```
58
+ */
59
+ async changePassword(bodyParameters, initOverrides) {
60
+ (0, runtime_js_1.validateRequiredRequestParams)(bodyParameters, ['email', 'connection']);
61
+ const response = await this.request({
62
+ path: '/dbconnections/change_password',
63
+ method: 'POST',
64
+ headers: {
65
+ 'Content-Type': 'application/json',
66
+ },
67
+ body: { client_id: this.clientId, ...bodyParameters },
68
+ }, initOverrides);
69
+ return models_js_1.TextApiResponse.fromResponse(response);
70
+ }
71
+ }
72
+ exports.Database = Database;
73
+ //# sourceMappingURL=database.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database.js","sourceRoot":"","sources":["../../../src/auth/database.ts"],"names":[],"mappings":";;;AAAA,gDAAkF;AAClF,kDAAkE;AAClE,yDAAiD;AA8GjD;;GAEG;AACH,MAAa,QAAS,SAAQ,8BAAW;IACvC;;;;;;;;;;;;;;;;;OAiBG;IACH,KAAK,CAAC,MAAM,CACV,cAA6B,EAC7B,aAA4B;QAE5B,6FAA6F;QAC7F,IAAA,0CAA6B,EAAC,cAAc,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC,CAAC;QAEnF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CACjC;YACE,IAAI,EAAE,uBAAuB;YAC7B,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;aACnC;YACD,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE,GAAG,cAAc,EAAE;SACtD,EACD,aAAa,CACd,CAAC;QAEF,OAAO,2BAAe,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IAChD,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,KAAK,CAAC,cAAc,CAClB,cAAqC,EACrC,aAA4B;QAE5B,IAAA,0CAA6B,EAAC,cAAc,EAAE,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC;QACvE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CACjC;YACE,IAAI,EAAE,gCAAgC;YACtC,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;aACnC;YACD,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE,GAAG,cAAc,EAAE;SACtD,EACD,aAAa,CACd,CAAC;QAEF,OAAO,2BAAe,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IAChD,CAAC;CACF;AA7ED,4BA6EC"}
@@ -0,0 +1,135 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.IDTokenValidator = exports.IdTokenValidatorError = void 0;
27
+ const jose = __importStar(require("jose"));
28
+ const DEFAULT_CLOCK_TOLERANCE = 60; // secs
29
+ class IdTokenValidatorError extends Error {
30
+ }
31
+ exports.IdTokenValidatorError = IdTokenValidatorError;
32
+ class IDTokenValidator {
33
+ constructor({ domain, clientId, clientSecret, agent, headers, timeoutDuration, idTokenSigningAlg = 'RS256', clockTolerance = DEFAULT_CLOCK_TOLERANCE, }) {
34
+ this.jwks = jose.createRemoteJWKSet(new URL(`https://${domain}/.well-known/jwks.json`), {
35
+ timeoutDuration,
36
+ agent,
37
+ headers,
38
+ });
39
+ this.alg = idTokenSigningAlg;
40
+ this.audience = clientId;
41
+ this.secret = new TextEncoder().encode(clientSecret);
42
+ this.issuer = `https://${domain}/`;
43
+ this.clockTolerance = clockTolerance;
44
+ }
45
+ async validate(idToken, { nonce, maxAge, organization } = {}) {
46
+ const secret = this.alg === 'HS256' ? this.secret : this.jwks;
47
+ const header = jose.decodeProtectedHeader(idToken);
48
+ const payload = jose.decodeJwt(idToken);
49
+ // Check algorithm
50
+ if (header.alg !== 'RS256' && header.alg !== 'HS256') {
51
+ throw new Error(`Signature algorithm of "${header.alg}" is not supported. Expected the ID token to be signed with "RS256" or "HS256".`);
52
+ }
53
+ // Issuer
54
+ if (!payload.iss || typeof payload.iss !== 'string') {
55
+ throw new IdTokenValidatorError('Issuer (iss) claim must be a string present in the ID token');
56
+ }
57
+ if (payload.iss !== this.issuer) {
58
+ throw new IdTokenValidatorError(`Issuer (iss) claim mismatch in the ID token; expected "${this.issuer}", found "${payload.iss}"`);
59
+ }
60
+ // Subject
61
+ if (!payload.sub || typeof payload.sub !== 'string') {
62
+ throw new IdTokenValidatorError('Subject (sub) claim must be a string present in the ID token');
63
+ }
64
+ // Audience
65
+ if (!payload.aud || !(typeof payload.aud === 'string' || Array.isArray(payload.aud))) {
66
+ throw new IdTokenValidatorError('Audience (aud) claim must be a string or array of strings present in the ID token');
67
+ }
68
+ if (Array.isArray(payload.aud) && !payload.aud.includes(this.audience)) {
69
+ throw new IdTokenValidatorError(`Audience (aud) claim mismatch in the ID token; expected "${this.audience}" but was not one of "${payload.aud.join(', ')}"`);
70
+ }
71
+ else if (typeof payload.aud === 'string' && payload.aud !== this.audience) {
72
+ throw new IdTokenValidatorError(`Audience (aud) claim mismatch in the ID token; expected "${this.audience}" but found "${payload.aud}"`);
73
+ }
74
+ // Organization
75
+ if (organization) {
76
+ if (!payload.org_id || typeof payload.org_id !== 'string') {
77
+ throw new IdTokenValidatorError('Organization Id (org_id) claim must be a string present in the ID token');
78
+ }
79
+ if (payload.org_id !== organization) {
80
+ throw new IdTokenValidatorError(`Organization Id (org_id) claim value mismatch in the ID token; expected "${organization}", found "${payload.org_id}"'`);
81
+ }
82
+ }
83
+ // Time validation (epoch)
84
+ const now = Math.floor(Date.now() / 1000);
85
+ // Expires at
86
+ if (!payload.exp || typeof payload.exp !== 'number') {
87
+ throw new IdTokenValidatorError('Expiration Time (exp) claim must be a number present in the ID token');
88
+ }
89
+ const expTime = payload.exp + this.clockTolerance;
90
+ if (now > expTime) {
91
+ throw new IdTokenValidatorError(`Expiration Time (exp) claim error in the ID token; current time (${now}) is after expiration time (${expTime})`);
92
+ }
93
+ // Issued at
94
+ if (!payload.iat || typeof payload.iat !== 'number') {
95
+ throw new IdTokenValidatorError('Issued At (iat) claim must be a number present in the ID token');
96
+ }
97
+ // Nonce
98
+ if (nonce || payload.nonce) {
99
+ if (!payload.nonce || typeof payload.nonce !== 'string') {
100
+ throw new IdTokenValidatorError('Nonce (nonce) claim must be a string present in the ID token');
101
+ }
102
+ if (payload.nonce !== nonce) {
103
+ throw new IdTokenValidatorError(`Nonce (nonce) claim mismatch in the ID token; expected "${nonce}", found "${payload.nonce}"`);
104
+ }
105
+ }
106
+ // Authorized party
107
+ if (Array.isArray(payload.aud) && payload.aud.length > 1) {
108
+ if (!payload.azp || typeof payload.azp !== 'string') {
109
+ throw new IdTokenValidatorError('Authorized Party (azp) claim must be a string present in the ID token when Audience (aud) claim has multiple values');
110
+ }
111
+ if (payload.azp !== this.audience) {
112
+ throw new IdTokenValidatorError(`Authorized Party (azp) claim mismatch in the ID token; expected "${this.audience}", found "${payload.azp}"`);
113
+ }
114
+ }
115
+ // Authentication time
116
+ if (maxAge) {
117
+ if (!payload.auth_time || typeof payload.auth_time !== 'number') {
118
+ throw new IdTokenValidatorError('Authentication Time (auth_time) claim must be a number present in the ID token when Max Age (max_age) is specified');
119
+ }
120
+ const authValidUntil = payload.auth_time + maxAge + this.clockTolerance;
121
+ if (now > authValidUntil) {
122
+ throw new IdTokenValidatorError(`Authentication Time (auth_time) claim in the ID token indicates that too much time has passed since the last end-user authentication. Currrent time (${now}) is after last auth at ${authValidUntil}`);
123
+ }
124
+ }
125
+ await jose.jwtVerify(idToken, secret, {
126
+ issuer: this.issuer,
127
+ audience: this.audience,
128
+ clockTolerance: this.clockTolerance,
129
+ maxTokenAge: maxAge,
130
+ algorithms: ['HS256', 'RS256'],
131
+ });
132
+ }
133
+ }
134
+ exports.IDTokenValidator = IDTokenValidator;
135
+ //# sourceMappingURL=id-token-validator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"id-token-validator.js","sourceRoot":"","sources":["../../../src/auth/id-token-validator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.AuthenticationClient = exports.AuthApiError = exports.IdTokenValidatorError = void 0;
18
+ const telemetry_middleware_js_1 = require("../lib/middleware/telemetry-middleware.js");
19
+ const database_js_1 = require("./database.js");
20
+ const oauth_js_1 = require("./oauth.js");
21
+ const passwordless_js_1 = require("./passwordless.js");
22
+ __exportStar(require("./database.js"), exports);
23
+ __exportStar(require("./oauth.js"), exports);
24
+ __exportStar(require("./passwordless.js"), exports);
25
+ var id_token_validator_js_1 = require("./id-token-validator.js");
26
+ Object.defineProperty(exports, "IdTokenValidatorError", { enumerable: true, get: function () { return id_token_validator_js_1.IdTokenValidatorError; } });
27
+ var base_auth_api_js_1 = require("./base-auth-api.js");
28
+ Object.defineProperty(exports, "AuthApiError", { enumerable: true, get: function () { return base_auth_api_js_1.AuthApiError; } });
29
+ class AuthenticationClient {
30
+ constructor(options) {
31
+ if (options.telemetry !== false) {
32
+ options.middleware = [...(options.middleware || []), new telemetry_middleware_js_1.TelemetryMiddleware(options)];
33
+ }
34
+ this.database = new database_js_1.Database(options);
35
+ this.oauth = new oauth_js_1.OAuth(options);
36
+ this.passwordless = new passwordless_js_1.Passwordless(options);
37
+ }
38
+ }
39
+ exports.AuthenticationClient = AuthenticationClient;
40
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/auth/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,uFAAgF;AAEhF,+CAAyC;AACzC,yCAAmC;AACnC,uDAAiD;AAEjD,gDAA8B;AAC9B,6CAA2B;AAC3B,oDAAkC;AAClC,iEAAwF;AAAvD,8HAAA,qBAAqB,OAAA;AACtD,uDAA+E;AAAtE,gHAAA,YAAY,OAAA;AAErB,MAAa,oBAAoB;IAK/B,YAAY,OAAoC;QAC9C,IAAI,OAAO,CAAC,SAAS,KAAK,KAAK,EAAE;YAC/B,OAAO,CAAC,UAAU,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC,EAAE,IAAI,6CAAmB,CAAC,OAAO,CAAC,CAAC,CAAC;SACxF;QAED,IAAI,CAAC,QAAQ,GAAG,IAAI,sBAAQ,CAAC,OAAO,CAAC,CAAC;QACtC,IAAI,CAAC,KAAK,GAAG,IAAI,gBAAK,CAAC,OAAO,CAAC,CAAC;QAChC,IAAI,CAAC,YAAY,GAAG,IAAI,8BAAY,CAAC,OAAO,CAAC,CAAC;IAChD,CAAC;CACF;AAdD,oDAcC"}
@@ -0,0 +1,199 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OAuth = void 0;
4
+ const runtime_js_1 = require("../lib/runtime.js");
5
+ const base_auth_api_js_1 = require("./base-auth-api.js");
6
+ const id_token_validator_js_1 = require("./id-token-validator.js");
7
+ /**
8
+ * OAuth 2.0 flows.
9
+ */
10
+ class OAuth extends base_auth_api_js_1.BaseAuthAPI {
11
+ constructor(options) {
12
+ super(options);
13
+ this.idTokenValidator = new id_token_validator_js_1.IDTokenValidator(options);
14
+ }
15
+ async validateIdToken(tokenSet, idTokenValidateOptions) {
16
+ const { id_token: idToken } = tokenSet;
17
+ if (idToken) {
18
+ await this.idTokenValidator.validate(idToken, idTokenValidateOptions);
19
+ }
20
+ }
21
+ /**
22
+ * Perform an OAuth 2.0 grant.
23
+ * (You should only need this if you can't find the grant you need in this library.)
24
+ */
25
+ async grant(grantType, bodyParameters, { idTokenValidateOptions, initOverrides } = {}) {
26
+ const response = await this.request({
27
+ path: '/oauth/token',
28
+ method: 'POST',
29
+ headers: {
30
+ 'Content-Type': 'application/x-www-form-urlencoded',
31
+ },
32
+ body: new URLSearchParams({
33
+ client_id: this.clientId,
34
+ ...bodyParameters,
35
+ grant_type: grantType,
36
+ }),
37
+ }, initOverrides);
38
+ const res = await runtime_js_1.JSONApiResponse.fromResponse(response);
39
+ await this.validateIdToken(res.data, idTokenValidateOptions);
40
+ return res;
41
+ }
42
+ /**
43
+ * This is the flow that regular web apps use to access an API.
44
+ *
45
+ * Use this endpoint to exchange an Authorization Code for a Token.
46
+ *
47
+ * See: https://auth0.com/docs/api/authentication#authorization-code-flow44
48
+ *
49
+ * @example
50
+ * ```js
51
+ * const auth0 = new AuthenticationApi({
52
+ * domain: 'my-domain.auth0.com',
53
+ * clientId: 'myClientId',
54
+ * clientSecret: 'myClientSecret'
55
+ * });
56
+ *
57
+ * await auth0.oauth.authorizationCodeGrant({ code: 'mycode' });
58
+ * ```
59
+ */
60
+ async authorizationCodeGrant(bodyParameters, options = {}) {
61
+ (0, runtime_js_1.validateRequiredRequestParams)(bodyParameters, ['code']);
62
+ return this.grant('authorization_code', await this.addClientAuthentication(bodyParameters, true), options);
63
+ }
64
+ /**
65
+ * PKCE was originally designed to protect the authorization code flow in mobile apps,
66
+ * but its ability to prevent authorization code injection makes it useful for every type of OAuth client,
67
+ * even web apps that use client authentication.
68
+ *
69
+ * See: https://auth0.com/docs/api/authentication#authorization-code-flow-with-pkce45
70
+ *
71
+ * @example
72
+ * ```js
73
+ * const auth0 = new AuthenticationApi({
74
+ * domain: 'my-domain.auth0.com',
75
+ * clientId: 'myClientId',
76
+ * clientSecret: 'myClientSecret'
77
+ * });
78
+ *
79
+ * await auth0.oauth.authorizationCodeGrantWithPKCE({
80
+ * code: 'mycode',
81
+ * code_verifier: 'mycodeverifier'
82
+ * });
83
+ * ```
84
+ */
85
+ async authorizationCodeGrantWithPKCE(bodyParameters, options = {}) {
86
+ (0, runtime_js_1.validateRequiredRequestParams)(bodyParameters, ['code', 'code_verifier']);
87
+ return this.grant('authorization_code', await this.addClientAuthentication(bodyParameters, false), options);
88
+ }
89
+ /**
90
+ * This is the OAuth 2.0 grant that server processes use to access an API.
91
+ *
92
+ * Use this endpoint to directly request an Access Token by using the Client's credentials
93
+ * (a Client ID and a Client Secret or a Client Assertion).
94
+ *
95
+ * See: https://auth0.com/docs/api/authentication#client-credentials-flow
96
+ *
97
+ * @example
98
+ * ```js
99
+ * const auth0 = new AuthenticationApi({
100
+ * domain: 'my-domain.auth0.com',
101
+ * clientId: 'myClientId',
102
+ * clientSecret: 'myClientSecret'
103
+ * });
104
+ *
105
+ * await auth0.oauth.clientCredentialsGrant({ audience: 'myaudience' });
106
+ * ```
107
+ */
108
+ async clientCredentialsGrant(bodyParameters, options = {}) {
109
+ (0, runtime_js_1.validateRequiredRequestParams)(bodyParameters, ['audience']);
110
+ return this.grant('client_credentials', await this.addClientAuthentication(bodyParameters, true), options);
111
+ }
112
+ /**
113
+ * This information is typically received from a highly trusted public client like a SPA*.
114
+ * (<strong>*Note:</string> For single-page applications and native/mobile apps, we recommend using web flows instead.)
115
+ *
116
+ * See: https://auth0.com/docs/api/authentication#resource-owner-password
117
+ *
118
+ * @example
119
+ * ```js
120
+ * const auth0 = new AuthenticationApi({
121
+ * domain: 'my-domain.auth0.com',
122
+ * clientId: 'myClientId'
123
+ * clientSecret: 'myClientSecret'
124
+ * });
125
+ *
126
+ * await auth0.oauth.clientCredentialsGrant({
127
+ * username: 'myusername@example.com',
128
+ * password: 'mypassword'
129
+ * },
130
+ * { headers: { 'auth0-forwarded-for': 'END.USER.IP.123' } }
131
+ * );
132
+ * ```
133
+ *
134
+ * Set the'auth0-forwarded-for' header to the end-user IP as a string value if you want
135
+ * brute-force protection to work in server-side scenarios.
136
+ *
137
+ * See https://auth0.com/docs/get-started/authentication-and-authorization-flow/avoid-common-issues-with-resource-owner-password-flow-and-attack-protection
138
+ *
139
+ */
140
+ async passwordGrant(bodyParameters, options = {}) {
141
+ (0, runtime_js_1.validateRequiredRequestParams)(bodyParameters, ['username', 'password']);
142
+ return this.grant(bodyParameters.realm ? 'http://auth0.com/oauth/grant-type/password-realm' : 'password', await this.addClientAuthentication(bodyParameters, false), options);
143
+ }
144
+ /**
145
+ * Use this endpoint to refresh an Access Token using the Refresh Token you got during authorization.
146
+ *
147
+ * See: https://auth0.com/docs/api/authentication#refresh-token
148
+ *
149
+ * @example
150
+ * ```js
151
+ * const auth0 = new AuthenticationApi({
152
+ * domain: 'my-domain.auth0.com',
153
+ * clientId: 'myClientId'
154
+ * clientSecret: 'myClientSecret'
155
+ * });
156
+ *
157
+ * await auth0.oauth.refreshTokenGrant({ refresh_token: 'myrefreshtoken' })
158
+ * ```
159
+ */
160
+ async refreshTokenGrant(bodyParameters, options = {}) {
161
+ (0, runtime_js_1.validateRequiredRequestParams)(bodyParameters, ['refresh_token']);
162
+ return this.grant('refresh_token', await this.addClientAuthentication(bodyParameters, false), options);
163
+ }
164
+ /**
165
+ * Use this endpoint to invalidate a Refresh Token if it has been compromised.
166
+ *
167
+ * The behaviour of this endpoint depends on the state of the <a href="https://auth0.com/docs/secure/tokens/refresh-tokens/revoke-refresh-tokens#refresh-tokens-and-grants">Refresh Token Revocation Deletes Grant</a> toggle.
168
+ * If this toggle is enabled, then each revocation request invalidates not only the specific token, but all other tokens based on the same authorization grant.
169
+ * This means that all Refresh Tokens that have been issued for the same user, application, and audience will be revoked.
170
+ * If this toggle is disabled, then only the refresh token is revoked, while the grant is left intact.
171
+ *
172
+ * See: https://auth0.com/docs/api/authentication#revoke-refresh-token
173
+ *
174
+ * @example
175
+ * ```js
176
+ * const auth0 = new AuthenticationApi({
177
+ * domain: 'my-domain.auth0.com',
178
+ * clientId: 'myClientId'
179
+ * clientSecret: 'myClientSecret'
180
+ * });
181
+ *
182
+ * await auth0.oauth.revokeRefreshToken({ token: 'myrefreshtoken' })
183
+ * ```
184
+ */
185
+ async revokeRefreshToken(bodyParameters, options = {}) {
186
+ (0, runtime_js_1.validateRequiredRequestParams)(bodyParameters, ['token']);
187
+ const response = await this.request({
188
+ path: '/oauth/revoke',
189
+ method: 'POST',
190
+ headers: {
191
+ 'Content-Type': 'application/json',
192
+ },
193
+ body: await this.addClientAuthentication({ client_id: this.clientId, ...bodyParameters }, false),
194
+ }, options.initOverrides);
195
+ return runtime_js_1.VoidApiResponse.fromResponse(response);
196
+ }
197
+ }
198
+ exports.OAuth = OAuth;
199
+ //# sourceMappingURL=oauth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oauth.js","sourceRoot":"","sources":["../../../src/auth/oauth.ts"],"names":[],"mappings":"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"}