@_mustachio/openauth 0.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 (192) hide show
  1. package/dist/esm/client.js +186 -0
  2. package/dist/esm/css.d.js +0 -0
  3. package/dist/esm/error.js +73 -0
  4. package/dist/esm/index.js +14 -0
  5. package/dist/esm/issuer.js +558 -0
  6. package/dist/esm/jwt.js +16 -0
  7. package/dist/esm/keys.js +113 -0
  8. package/dist/esm/pkce.js +35 -0
  9. package/dist/esm/provider/apple.js +28 -0
  10. package/dist/esm/provider/arctic.js +43 -0
  11. package/dist/esm/provider/code.js +58 -0
  12. package/dist/esm/provider/cognito.js +16 -0
  13. package/dist/esm/provider/discord.js +15 -0
  14. package/dist/esm/provider/facebook.js +24 -0
  15. package/dist/esm/provider/github.js +15 -0
  16. package/dist/esm/provider/google.js +25 -0
  17. package/dist/esm/provider/index.js +3 -0
  18. package/dist/esm/provider/jumpcloud.js +15 -0
  19. package/dist/esm/provider/keycloak.js +15 -0
  20. package/dist/esm/provider/linkedin.js +15 -0
  21. package/dist/esm/provider/m2m.js +17 -0
  22. package/dist/esm/provider/microsoft.js +24 -0
  23. package/dist/esm/provider/oauth2.js +119 -0
  24. package/dist/esm/provider/oidc.js +69 -0
  25. package/dist/esm/provider/passkey.js +315 -0
  26. package/dist/esm/provider/password.js +306 -0
  27. package/dist/esm/provider/provider.js +10 -0
  28. package/dist/esm/provider/slack.js +15 -0
  29. package/dist/esm/provider/spotify.js +15 -0
  30. package/dist/esm/provider/twitch.js +15 -0
  31. package/dist/esm/provider/x.js +16 -0
  32. package/dist/esm/provider/yahoo.js +15 -0
  33. package/dist/esm/random.js +27 -0
  34. package/dist/esm/storage/aws.js +39 -0
  35. package/dist/esm/storage/cloudflare.js +42 -0
  36. package/dist/esm/storage/dynamo.js +116 -0
  37. package/dist/esm/storage/memory.js +88 -0
  38. package/dist/esm/storage/storage.js +36 -0
  39. package/dist/esm/subject.js +7 -0
  40. package/dist/esm/ui/base.js +407 -0
  41. package/dist/esm/ui/code.js +151 -0
  42. package/dist/esm/ui/form.js +43 -0
  43. package/dist/esm/ui/icon.js +92 -0
  44. package/dist/esm/ui/passkey.js +329 -0
  45. package/dist/esm/ui/password.js +338 -0
  46. package/dist/esm/ui/select.js +187 -0
  47. package/dist/esm/ui/theme.js +115 -0
  48. package/dist/esm/util.js +54 -0
  49. package/dist/types/client.d.ts +466 -0
  50. package/dist/types/client.d.ts.map +1 -0
  51. package/dist/types/error.d.ts +77 -0
  52. package/dist/types/error.d.ts.map +1 -0
  53. package/dist/types/index.d.ts +20 -0
  54. package/dist/types/index.d.ts.map +1 -0
  55. package/dist/types/issuer.d.ts +465 -0
  56. package/dist/types/issuer.d.ts.map +1 -0
  57. package/dist/types/jwt.d.ts +6 -0
  58. package/dist/types/jwt.d.ts.map +1 -0
  59. package/dist/types/keys.d.ts +18 -0
  60. package/dist/types/keys.d.ts.map +1 -0
  61. package/dist/types/pkce.d.ts +7 -0
  62. package/dist/types/pkce.d.ts.map +1 -0
  63. package/dist/types/provider/apple.d.ts +108 -0
  64. package/dist/types/provider/apple.d.ts.map +1 -0
  65. package/dist/types/provider/arctic.d.ts +16 -0
  66. package/dist/types/provider/arctic.d.ts.map +1 -0
  67. package/dist/types/provider/code.d.ts +74 -0
  68. package/dist/types/provider/code.d.ts.map +1 -0
  69. package/dist/types/provider/cognito.d.ts +64 -0
  70. package/dist/types/provider/cognito.d.ts.map +1 -0
  71. package/dist/types/provider/discord.d.ts +38 -0
  72. package/dist/types/provider/discord.d.ts.map +1 -0
  73. package/dist/types/provider/facebook.d.ts +74 -0
  74. package/dist/types/provider/facebook.d.ts.map +1 -0
  75. package/dist/types/provider/github.d.ts +38 -0
  76. package/dist/types/provider/github.d.ts.map +1 -0
  77. package/dist/types/provider/google.d.ts +74 -0
  78. package/dist/types/provider/google.d.ts.map +1 -0
  79. package/dist/types/provider/index.d.ts +4 -0
  80. package/dist/types/provider/index.d.ts.map +1 -0
  81. package/dist/types/provider/jumpcloud.d.ts +38 -0
  82. package/dist/types/provider/jumpcloud.d.ts.map +1 -0
  83. package/dist/types/provider/keycloak.d.ts +67 -0
  84. package/dist/types/provider/keycloak.d.ts.map +1 -0
  85. package/dist/types/provider/linkedin.d.ts +6 -0
  86. package/dist/types/provider/linkedin.d.ts.map +1 -0
  87. package/dist/types/provider/m2m.d.ts +34 -0
  88. package/dist/types/provider/m2m.d.ts.map +1 -0
  89. package/dist/types/provider/microsoft.d.ts +89 -0
  90. package/dist/types/provider/microsoft.d.ts.map +1 -0
  91. package/dist/types/provider/oauth2.d.ts +133 -0
  92. package/dist/types/provider/oauth2.d.ts.map +1 -0
  93. package/dist/types/provider/oidc.d.ts +91 -0
  94. package/dist/types/provider/oidc.d.ts.map +1 -0
  95. package/dist/types/provider/passkey.d.ts +143 -0
  96. package/dist/types/provider/passkey.d.ts.map +1 -0
  97. package/dist/types/provider/password.d.ts +210 -0
  98. package/dist/types/provider/password.d.ts.map +1 -0
  99. package/dist/types/provider/provider.d.ts +29 -0
  100. package/dist/types/provider/provider.d.ts.map +1 -0
  101. package/dist/types/provider/slack.d.ts +59 -0
  102. package/dist/types/provider/slack.d.ts.map +1 -0
  103. package/dist/types/provider/spotify.d.ts +38 -0
  104. package/dist/types/provider/spotify.d.ts.map +1 -0
  105. package/dist/types/provider/twitch.d.ts +38 -0
  106. package/dist/types/provider/twitch.d.ts.map +1 -0
  107. package/dist/types/provider/x.d.ts +38 -0
  108. package/dist/types/provider/x.d.ts.map +1 -0
  109. package/dist/types/provider/yahoo.d.ts +38 -0
  110. package/dist/types/provider/yahoo.d.ts.map +1 -0
  111. package/dist/types/random.d.ts +3 -0
  112. package/dist/types/random.d.ts.map +1 -0
  113. package/dist/types/storage/aws.d.ts +4 -0
  114. package/dist/types/storage/aws.d.ts.map +1 -0
  115. package/dist/types/storage/cloudflare.d.ts +34 -0
  116. package/dist/types/storage/cloudflare.d.ts.map +1 -0
  117. package/dist/types/storage/dynamo.d.ts +65 -0
  118. package/dist/types/storage/dynamo.d.ts.map +1 -0
  119. package/dist/types/storage/memory.d.ts +49 -0
  120. package/dist/types/storage/memory.d.ts.map +1 -0
  121. package/dist/types/storage/storage.d.ts +15 -0
  122. package/dist/types/storage/storage.d.ts.map +1 -0
  123. package/dist/types/subject.d.ts +122 -0
  124. package/dist/types/subject.d.ts.map +1 -0
  125. package/dist/types/ui/base.d.ts +5 -0
  126. package/dist/types/ui/base.d.ts.map +1 -0
  127. package/dist/types/ui/code.d.ts +104 -0
  128. package/dist/types/ui/code.d.ts.map +1 -0
  129. package/dist/types/ui/form.d.ts +6 -0
  130. package/dist/types/ui/form.d.ts.map +1 -0
  131. package/dist/types/ui/icon.d.ts +6 -0
  132. package/dist/types/ui/icon.d.ts.map +1 -0
  133. package/dist/types/ui/passkey.d.ts +5 -0
  134. package/dist/types/ui/passkey.d.ts.map +1 -0
  135. package/dist/types/ui/password.d.ts +139 -0
  136. package/dist/types/ui/password.d.ts.map +1 -0
  137. package/dist/types/ui/select.d.ts +55 -0
  138. package/dist/types/ui/select.d.ts.map +1 -0
  139. package/dist/types/ui/theme.d.ts +207 -0
  140. package/dist/types/ui/theme.d.ts.map +1 -0
  141. package/dist/types/util.d.ts +8 -0
  142. package/dist/types/util.d.ts.map +1 -0
  143. package/package.json +51 -0
  144. package/src/client.ts +749 -0
  145. package/src/css.d.ts +4 -0
  146. package/src/error.ts +120 -0
  147. package/src/index.ts +26 -0
  148. package/src/issuer.ts +1302 -0
  149. package/src/jwt.ts +17 -0
  150. package/src/keys.ts +139 -0
  151. package/src/pkce.ts +40 -0
  152. package/src/provider/apple.ts +127 -0
  153. package/src/provider/arctic.ts +66 -0
  154. package/src/provider/code.ts +227 -0
  155. package/src/provider/cognito.ts +74 -0
  156. package/src/provider/discord.ts +45 -0
  157. package/src/provider/facebook.ts +84 -0
  158. package/src/provider/github.ts +45 -0
  159. package/src/provider/google.ts +85 -0
  160. package/src/provider/index.ts +3 -0
  161. package/src/provider/jumpcloud.ts +45 -0
  162. package/src/provider/keycloak.ts +75 -0
  163. package/src/provider/linkedin.ts +12 -0
  164. package/src/provider/m2m.ts +56 -0
  165. package/src/provider/microsoft.ts +100 -0
  166. package/src/provider/oauth2.ts +297 -0
  167. package/src/provider/oidc.ts +179 -0
  168. package/src/provider/passkey.ts +655 -0
  169. package/src/provider/password.ts +672 -0
  170. package/src/provider/provider.ts +33 -0
  171. package/src/provider/slack.ts +67 -0
  172. package/src/provider/spotify.ts +45 -0
  173. package/src/provider/twitch.ts +45 -0
  174. package/src/provider/x.ts +46 -0
  175. package/src/provider/yahoo.ts +45 -0
  176. package/src/random.ts +24 -0
  177. package/src/storage/aws.ts +59 -0
  178. package/src/storage/cloudflare.ts +77 -0
  179. package/src/storage/dynamo.ts +193 -0
  180. package/src/storage/memory.ts +135 -0
  181. package/src/storage/storage.ts +46 -0
  182. package/src/subject.ts +130 -0
  183. package/src/ui/base.tsx +118 -0
  184. package/src/ui/code.tsx +215 -0
  185. package/src/ui/form.tsx +40 -0
  186. package/src/ui/icon.tsx +95 -0
  187. package/src/ui/passkey.tsx +321 -0
  188. package/src/ui/password.tsx +405 -0
  189. package/src/ui/select.tsx +221 -0
  190. package/src/ui/theme.ts +319 -0
  191. package/src/ui/ui.css +252 -0
  192. package/src/util.ts +58 -0
@@ -0,0 +1,74 @@
1
+ import { Provider } from "./provider.js";
2
+ export interface CodeProviderConfig<Claims extends Record<string, string> = Record<string, string>> {
3
+ /**
4
+ * The length of the pin code.
5
+ *
6
+ * @default 6
7
+ */
8
+ length?: number;
9
+ /**
10
+ * The request handler to generate the UI for the code flow.
11
+ *
12
+ * Takes the standard [`Request`](https://developer.mozilla.org/en-US/docs/Web/API/Request)
13
+ * and optionally [`FormData`](https://developer.mozilla.org/en-US/docs/Web/API/FormData)
14
+ * ojects.
15
+ *
16
+ * Also passes in the current `state` of the flow and any `error` that occurred.
17
+ *
18
+ * Expects the [`Response`](https://developer.mozilla.org/en-US/docs/Web/API/Response) object
19
+ * in return.
20
+ */
21
+ request: (req: Request, state: CodeProviderState, form?: FormData, error?: CodeProviderError) => Promise<Response>;
22
+ /**
23
+ * Callback to send the pin code to the user.
24
+ *
25
+ * @example
26
+ * ```ts
27
+ * {
28
+ * sendCode: async (claims, code) => {
29
+ * // Send the code through the email or phone number based on the claims
30
+ * }
31
+ * }
32
+ * ```
33
+ */
34
+ sendCode: (claims: Claims, code: string) => Promise<void | CodeProviderError>;
35
+ }
36
+ /**
37
+ * The state of the code flow.
38
+ *
39
+ * | State | Description |
40
+ * | ----- | ----------- |
41
+ * | `start` | The user is asked to enter their email address or phone number to start the flow. |
42
+ * | `code` | The user needs to enter the pin code to verify their _claim_. |
43
+ */
44
+ export type CodeProviderState = {
45
+ type: "start";
46
+ } | {
47
+ type: "code";
48
+ resend?: boolean;
49
+ code: string;
50
+ claims: Record<string, string>;
51
+ };
52
+ /**
53
+ * The errors that can happen on the code flow.
54
+ *
55
+ * | Error | Description |
56
+ * | ----- | ----------- |
57
+ * | `invalid_code` | The code is invalid. |
58
+ * | `invalid_claim` | The _claim_, email or phone number, is invalid. |
59
+ */
60
+ export type CodeProviderError = {
61
+ type: "invalid_code";
62
+ } | {
63
+ type: "invalid_claim";
64
+ key: string;
65
+ value: string;
66
+ };
67
+ export declare function CodeProvider<Claims extends Record<string, string> = Record<string, string>>(config: CodeProviderConfig<Claims>): Provider<{
68
+ claims: Claims;
69
+ }>;
70
+ /**
71
+ * @internal
72
+ */
73
+ export type CodeProviderOptions = Parameters<typeof CodeProvider>[0];
74
+ //# sourceMappingURL=code.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"code.d.ts","sourceRoot":"","sources":["../../../src/provider/code.ts"],"names":[],"mappings":"AAuDA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAGxC,MAAM,WAAW,kBAAkB,CACjC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAE9D;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;;;;;;;;;;OAWG;IACH,OAAO,EAAE,CACP,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,iBAAiB,EACxB,IAAI,CAAC,EAAE,QAAQ,EACf,KAAK,CAAC,EAAE,iBAAiB,KACtB,OAAO,CAAC,QAAQ,CAAC,CAAA;IACtB;;;;;;;;;;;OAWG;IACH,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,GAAG,iBAAiB,CAAC,CAAA;CAC9E;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,iBAAiB,GACzB;IACE,IAAI,EAAE,OAAO,CAAA;CACd,GACD;IACE,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAC/B,CAAA;AAEL;;;;;;;GAOG;AACH,MAAM,MAAM,iBAAiB,GACzB;IACE,IAAI,EAAE,cAAc,CAAA;CACrB,GACD;IACE,IAAI,EAAE,eAAe,CAAA;IACrB,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAEL,wBAAgB,YAAY,CAC1B,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC9D,MAAM,EAAE,kBAAkB,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAkFlE;AAED;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC,CAAA"}
@@ -0,0 +1,64 @@
1
+ /**
2
+ * Use this provider to authenticate with a Cognito OAuth endpoint.
3
+ *
4
+ * ```ts {5-10}
5
+ * import { CognitoProvider } from "@openauthjs/openauth/provider/cognito"
6
+ *
7
+ * export default issuer({
8
+ * providers: {
9
+ * cognito: CognitoProvider({
10
+ * domain: "your-domain.auth.us-east-1.amazoncognito.com",
11
+ * region: "us-east-1",
12
+ * clientID: "1234567890",
13
+ * clientSecret: "0987654321"
14
+ * })
15
+ * }
16
+ * })
17
+ * ```
18
+ *
19
+ * @packageDocumentation
20
+ */
21
+ import { Oauth2WrappedConfig } from "./oauth2.js";
22
+ export interface CognitoConfig extends Oauth2WrappedConfig {
23
+ /**
24
+ * The domain of the Cognito User Pool.
25
+ *
26
+ * @example
27
+ * ```ts
28
+ * {
29
+ * domain: "your-domain.auth.us-east-1.amazoncognito.com"
30
+ * }
31
+ * ```
32
+ */
33
+ domain: string;
34
+ /**
35
+ * The region the Cognito User Pool is in.
36
+ *
37
+ * @example
38
+ * ```ts
39
+ * {
40
+ * region: "us-east-1"
41
+ * }
42
+ * ```
43
+ */
44
+ region: string;
45
+ }
46
+ /**
47
+ * Create a Cognito OAuth2 provider.
48
+ *
49
+ * @param config - The config for the provider.
50
+ * @example
51
+ * ```ts
52
+ * CognitoProvider({
53
+ * domain: "your-domain.auth.us-east-1.amazoncognito.com",
54
+ * region: "us-east-1",
55
+ * clientID: "1234567890",
56
+ * clientSecret: "0987654321"
57
+ * })
58
+ * ```
59
+ */
60
+ export declare function CognitoProvider(config: CognitoConfig): import("./provider.js").Provider<{
61
+ tokenset: import("./oauth2.js").Oauth2Token;
62
+ clientID: string;
63
+ }>;
64
+ //# sourceMappingURL=cognito.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cognito.d.ts","sourceRoot":"","sources":["../../../src/provider/cognito.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAkB,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAEjE,MAAM,WAAW,aAAc,SAAQ,mBAAmB;IACxD;;;;;;;;;OASG;IACH,MAAM,EAAE,MAAM,CAAA;IACd;;;;;;;;;OASG;IACH,MAAM,EAAE,MAAM,CAAA;CACf;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,aAAa;;;GAWpD"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Use this provider to authenticate with Discord.
3
+ *
4
+ * ```ts {5-8}
5
+ * import { DiscordProvider } from "@openauthjs/openauth/provider/discord"
6
+ *
7
+ * export default issuer({
8
+ * providers: {
9
+ * discord: DiscordProvider({
10
+ * clientID: "1234567890",
11
+ * clientSecret: "0987654321"
12
+ * })
13
+ * }
14
+ * })
15
+ * ```
16
+ *
17
+ * @packageDocumentation
18
+ */
19
+ import { Oauth2WrappedConfig } from "./oauth2.js";
20
+ export interface DiscordConfig extends Oauth2WrappedConfig {
21
+ }
22
+ /**
23
+ * Create a Discord OAuth2 provider.
24
+ *
25
+ * @param config - The config for the provider.
26
+ * @example
27
+ * ```ts
28
+ * DiscordProvider({
29
+ * clientID: "1234567890",
30
+ * clientSecret: "0987654321"
31
+ * })
32
+ * ```
33
+ */
34
+ export declare function DiscordProvider(config: DiscordConfig): import("./provider.js").Provider<{
35
+ tokenset: import("./oauth2.js").Oauth2Token;
36
+ clientID: string;
37
+ }>;
38
+ //# sourceMappingURL=discord.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"discord.d.ts","sourceRoot":"","sources":["../../../src/provider/discord.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAkB,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAEjE,MAAM,WAAW,aAAc,SAAQ,mBAAmB;CAAG;AAE7D;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,aAAa;;;GASpD"}
@@ -0,0 +1,74 @@
1
+ /**
2
+ * Use this provider to authenticate with Facebook. Supports both OAuth2 and OIDC.
3
+ *
4
+ * #### Using OAuth
5
+ *
6
+ * ```ts {5-8}
7
+ * import { FacebookProvider } from "@openauthjs/openauth/provider/facebook"
8
+ *
9
+ * export default issuer({
10
+ * providers: {
11
+ * facebook: FacebookProvider({
12
+ * clientID: "1234567890",
13
+ * clientSecret: "0987654321"
14
+ * })
15
+ * }
16
+ * })
17
+ * ```
18
+ *
19
+ * #### Using OIDC
20
+ *
21
+ * ```ts {5-7}
22
+ * import { FacebookOidcProvider } from "@openauthjs/openauth/provider/facebook"
23
+ *
24
+ * export default issuer({
25
+ * providers: {
26
+ * facebook: FacebookOidcProvider({
27
+ * clientID: "1234567890"
28
+ * })
29
+ * }
30
+ * })
31
+ * ```
32
+ *
33
+ * @packageDocumentation
34
+ */
35
+ import { Oauth2WrappedConfig } from "./oauth2.js";
36
+ import { OidcWrappedConfig } from "./oidc.js";
37
+ export interface FacebookConfig extends Oauth2WrappedConfig {
38
+ }
39
+ export interface FacebookOidcConfig extends OidcWrappedConfig {
40
+ }
41
+ /**
42
+ * Create a Facebook OAuth2 provider.
43
+ *
44
+ * @param config - The config for the provider.
45
+ * @example
46
+ * ```ts
47
+ * FacebookProvider({
48
+ * clientID: "1234567890",
49
+ * clientSecret: "0987654321"
50
+ * })
51
+ * ```
52
+ */
53
+ export declare function FacebookProvider(config: FacebookConfig): import("./provider.js").Provider<{
54
+ tokenset: import("./oauth2.js").Oauth2Token;
55
+ clientID: string;
56
+ }>;
57
+ /**
58
+ * Create a Facebook OIDC provider.
59
+ *
60
+ * This is useful if you just want to verify the user's email address.
61
+ *
62
+ * @param config - The config for the provider.
63
+ * @example
64
+ * ```ts
65
+ * FacebookOidcProvider({
66
+ * clientID: "1234567890"
67
+ * })
68
+ * ```
69
+ */
70
+ export declare function FacebookOidcProvider(config: FacebookOidcConfig): import("./provider.js").Provider<{
71
+ id: import("hono/utils/jwt/types").JWTPayload;
72
+ clientID: string;
73
+ }>;
74
+ //# sourceMappingURL=facebook.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"facebook.d.ts","sourceRoot":"","sources":["../../../src/provider/facebook.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAEH,OAAO,EAAkB,mBAAmB,EAAE,MAAM,aAAa,CAAA;AACjE,OAAO,EAAgB,iBAAiB,EAAE,MAAM,WAAW,CAAA;AAE3D,MAAM,WAAW,cAAe,SAAQ,mBAAmB;CAAG;AAC9D,MAAM,WAAW,kBAAmB,SAAQ,iBAAiB;CAAG;AAEhE;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,cAAc;;;GAStD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,kBAAkB;;;GAM9D"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Use this provider to authenticate with Github.
3
+ *
4
+ * ```ts {5-8}
5
+ * import { GithubProvider } from "@openauthjs/openauth/provider/github"
6
+ *
7
+ * export default issuer({
8
+ * providers: {
9
+ * github: GithubProvider({
10
+ * clientID: "1234567890",
11
+ * clientSecret: "0987654321"
12
+ * })
13
+ * }
14
+ * })
15
+ * ```
16
+ *
17
+ * @packageDocumentation
18
+ */
19
+ import { Oauth2WrappedConfig } from "./oauth2.js";
20
+ export interface GithubConfig extends Oauth2WrappedConfig {
21
+ }
22
+ /**
23
+ * Create a Github OAuth2 provider.
24
+ *
25
+ * @param config - The config for the provider.
26
+ * @example
27
+ * ```ts
28
+ * GithubProvider({
29
+ * clientID: "1234567890",
30
+ * clientSecret: "0987654321"
31
+ * })
32
+ * ```
33
+ */
34
+ export declare function GithubProvider(config: GithubConfig): import("./provider.js").Provider<{
35
+ tokenset: import("./oauth2.js").Oauth2Token;
36
+ clientID: string;
37
+ }>;
38
+ //# sourceMappingURL=github.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"github.d.ts","sourceRoot":"","sources":["../../../src/provider/github.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAkB,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAEjE,MAAM,WAAW,YAAa,SAAQ,mBAAmB;CAAG;AAE5D;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,YAAY;;;GASlD"}
@@ -0,0 +1,74 @@
1
+ /**
2
+ * Use this provider to authenticate with Google. Supports both OAuth2 and OIDC.
3
+ *
4
+ * #### Using OAuth
5
+ *
6
+ * ```ts {5-8}
7
+ * import { GoogleProvider } from "@openauthjs/openauth/provider/google"
8
+ *
9
+ * export default issuer({
10
+ * providers: {
11
+ * google: GoogleProvider({
12
+ * clientID: "1234567890",
13
+ * clientSecret: "0987654321"
14
+ * })
15
+ * }
16
+ * })
17
+ * ```
18
+ *
19
+ * #### Using OIDC
20
+ *
21
+ * ```ts {5-7}
22
+ * import { GoogleOidcProvider } from "@openauthjs/openauth/provider/google"
23
+ *
24
+ * export default issuer({
25
+ * providers: {
26
+ * google: GoogleOidcProvider({
27
+ * clientID: "1234567890"
28
+ * })
29
+ * }
30
+ * })
31
+ * ```
32
+ *
33
+ * @packageDocumentation
34
+ */
35
+ import { Oauth2WrappedConfig } from "./oauth2.js";
36
+ import { OidcWrappedConfig } from "./oidc.js";
37
+ export interface GoogleConfig extends Oauth2WrappedConfig {
38
+ }
39
+ export interface GoogleOidcConfig extends OidcWrappedConfig {
40
+ }
41
+ /**
42
+ * Create a Google OAuth2 provider.
43
+ *
44
+ * @param config - The config for the provider.
45
+ * @example
46
+ * ```ts
47
+ * GoogleProvider({
48
+ * clientID: "1234567890",
49
+ * clientSecret: "0987654321"
50
+ * })
51
+ * ```
52
+ */
53
+ export declare function GoogleProvider(config: GoogleConfig): import("./provider.js").Provider<{
54
+ tokenset: import("./oauth2.js").Oauth2Token;
55
+ clientID: string;
56
+ }>;
57
+ /**
58
+ * Create a Google OIDC provider.
59
+ *
60
+ * This is useful if you just want to verify the user's email address.
61
+ *
62
+ * @param config - The config for the provider.
63
+ * @example
64
+ * ```ts
65
+ * GoogleOidcProvider({
66
+ * clientID: "1234567890"
67
+ * })
68
+ * ```
69
+ */
70
+ export declare function GoogleOidcProvider(config: GoogleOidcConfig): import("./provider.js").Provider<{
71
+ id: import("hono/utils/jwt/types").JWTPayload;
72
+ clientID: string;
73
+ }>;
74
+ //# sourceMappingURL=google.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"google.d.ts","sourceRoot":"","sources":["../../../src/provider/google.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAEH,OAAO,EAAkB,mBAAmB,EAAE,MAAM,aAAa,CAAA;AACjE,OAAO,EAAgB,iBAAiB,EAAE,MAAM,WAAW,CAAA;AAE3D,MAAM,WAAW,YAAa,SAAQ,mBAAmB;CAAG;AAC5D,MAAM,WAAW,gBAAiB,SAAQ,iBAAiB;CAAG;AAE9D;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,YAAY;;;GAUlD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,gBAAgB;;;GAM1D"}
@@ -0,0 +1,4 @@
1
+ export * from "./code.js";
2
+ export type { Provider as Provider } from "./provider.js";
3
+ export * from "./spotify.js";
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/provider/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA;AACzB,YAAY,EAAE,QAAQ,IAAI,QAAQ,EAAE,MAAM,eAAe,CAAA;AACzD,cAAc,cAAc,CAAA"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Use this provider to authenticate with JumpCloud.
3
+ *
4
+ * ```ts {5-8}
5
+ * import { JumpCloudProvider } from "@openauthjs/openauth/provider/jumpcloud"
6
+ *
7
+ * export default issuer({
8
+ * providers: {
9
+ * jumpcloud: JumpCloudProvider({
10
+ * clientID: "1234567890",
11
+ * clientSecret: "0987654321"
12
+ * })
13
+ * }
14
+ * })
15
+ * ```
16
+ *
17
+ * @packageDocumentation
18
+ */
19
+ import { Oauth2WrappedConfig } from "./oauth2.js";
20
+ export interface JumpCloudConfig extends Oauth2WrappedConfig {
21
+ }
22
+ /**
23
+ * Create a JumpCloud OAuth2 provider.
24
+ *
25
+ * @param config - The config for the provider.
26
+ * @example
27
+ * ```ts
28
+ * JumpCloudProvider({
29
+ * clientID: "1234567890",
30
+ * clientSecret: "0987654321"
31
+ * })
32
+ * ```
33
+ */
34
+ export declare function JumpCloudProvider(config: JumpCloudConfig): import("./provider.js").Provider<{
35
+ tokenset: import("./oauth2.js").Oauth2Token;
36
+ clientID: string;
37
+ }>;
38
+ //# sourceMappingURL=jumpcloud.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jumpcloud.d.ts","sourceRoot":"","sources":["../../../src/provider/jumpcloud.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAkB,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAEjE,MAAM,WAAW,eAAgB,SAAQ,mBAAmB;CAAG;AAE/D;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,eAAe;;;GASxD"}
@@ -0,0 +1,67 @@
1
+ /**
2
+ * Use this provider to authenticate with a Keycloak server.
3
+ *
4
+ * ```ts {5-10}
5
+ * import { KeycloakProvider } from "@openauthjs/openauth/provider/keycloak"
6
+ *
7
+ * export default issuer({
8
+ * providers: {
9
+ * keycloak: KeycloakProvider({
10
+ * baseUrl: "https://your-keycloak-domain",
11
+ * realm: "your-realm",
12
+ * clientID: "1234567890",
13
+ * clientSecret: "0987654321"
14
+ * })
15
+ * }
16
+ * })
17
+ * ```
18
+ *
19
+ * @packageDocumentation
20
+ */
21
+ import { Oauth2WrappedConfig } from "./oauth2.js";
22
+ export interface KeycloakConfig extends Oauth2WrappedConfig {
23
+ /**
24
+ * The base URL of the Keycloak server.
25
+ *
26
+ * @example
27
+ * ```ts
28
+ * {
29
+ * baseUrl: "https://your-keycloak-domain"
30
+ * }
31
+ * ```
32
+ */
33
+ baseUrl: string;
34
+ /**
35
+ * The realm in the Keycloak server to authenticate against.
36
+ *
37
+ * A realm in Keycloak is like a tenant or namespace that manages a set of
38
+ * users, credentials, roles, and groups.
39
+ *
40
+ * @example
41
+ * ```ts
42
+ * {
43
+ * realm: "your-realm"
44
+ * }
45
+ * ```
46
+ */
47
+ realm: string;
48
+ }
49
+ /**
50
+ * Create a Keycloak OAuth2 provider.
51
+ *
52
+ * @param config - The config for the provider.
53
+ * @example
54
+ * ```ts
55
+ * KeycloakProvider({
56
+ * baseUrl: "https://your-keycloak-domain",
57
+ * realm: "your-realm",
58
+ * clientID: "1234567890",
59
+ * clientSecret: "0987654321"
60
+ * })
61
+ * ```
62
+ */
63
+ export declare function KeycloakProvider(config: KeycloakConfig): import("./provider.js").Provider<{
64
+ tokenset: import("./oauth2.js").Oauth2Token;
65
+ clientID: string;
66
+ }>;
67
+ //# sourceMappingURL=keycloak.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keycloak.d.ts","sourceRoot":"","sources":["../../../src/provider/keycloak.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAkB,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAEjE,MAAM,WAAW,cAAe,SAAQ,mBAAmB;IACzD;;;;;;;;;OASG;IACH,OAAO,EAAE,MAAM,CAAA;IACf;;;;;;;;;;;;OAYG;IACH,KAAK,EAAE,MAAM,CAAA;CACd;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,cAAc;;;GAStD"}
@@ -0,0 +1,6 @@
1
+ import { type Oauth2WrappedConfig } from "./oauth2.js";
2
+ export declare function LinkedInAdapter(config: Oauth2WrappedConfig): import("./provider.js").Provider<{
3
+ tokenset: import("./oauth2.js").Oauth2Token;
4
+ clientID: string;
5
+ }>;
6
+ //# sourceMappingURL=linkedin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"linkedin.d.ts","sourceRoot":"","sources":["../../../src/provider/linkedin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAEtE,wBAAgB,eAAe,CAAC,MAAM,EAAE,mBAAmB;;;GAS1D"}
@@ -0,0 +1,34 @@
1
+ import { Provider } from "./provider.js";
2
+ export interface M2MProviderConfig {
3
+ /**
4
+ * Callback to verify client credentials.
5
+ * Should return data about the client (e.g., associated User or Org ID).
6
+ * Returning undefined or throwing indicates invalid credentials.
7
+ */
8
+ verify: (clientID: string, clientSecret: string, params: Record<string, string>) => Promise<{
9
+ id: string;
10
+ [key: string]: any;
11
+ } | undefined>;
12
+ }
13
+ /**
14
+ * Creates a provider for Machine-to-Machine (M2M) authentication using the
15
+ * OAuth 2.0 `client_credentials` grant type.
16
+ *
17
+ * This provider does not have a UI and is intended for service-to-service
18
+ * communication where the client can securely store a secret.
19
+ *
20
+ * @example
21
+ * ```ts
22
+ * const m2m = M2MProvider({
23
+ * verify: async (clientID, clientSecret) => {
24
+ * const client = await db.clients.findUnique({ where: { clientID } })
25
+ * if (client && client.secret === clientSecret) return client
26
+ * }
27
+ * })
28
+ * ```
29
+ */
30
+ export declare function M2MProvider(config: M2MProviderConfig): Provider<{
31
+ id: string;
32
+ [key: string]: any;
33
+ }>;
34
+ //# sourceMappingURL=m2m.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"m2m.d.ts","sourceRoot":"","sources":["../../../src/provider/m2m.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAExC,MAAM,WAAW,iBAAiB;IAChC;;;;OAIG;IACH,MAAM,EAAE,CACN,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAC3B,OAAO,CACR;QACE,EAAE,EAAE,MAAM,CAAA;QACV,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KACnB,GACD,SAAS,CACZ,CAAA;CACF;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,iBAAiB,GAAG,QAAQ,CAAC;IAC/D,EAAE,EAAE,MAAM,CAAA;IACV,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CACnB,CAAC,CAcD"}
@@ -0,0 +1,89 @@
1
+ /**
2
+ * Use this provider to authenticate with Microsoft. Supports both OAuth2 and OIDC.
3
+ *
4
+ * #### Using OAuth
5
+ *
6
+ * ```ts {5-9}
7
+ * import { MicrosoftProvider } from "@openauthjs/openauth/provider/microsoft"
8
+ *
9
+ * export default issuer({
10
+ * providers: {
11
+ * microsoft: MicrosoftProvider({
12
+ * tenant: "1234567890",
13
+ * clientID: "1234567890",
14
+ * clientSecret: "0987654321"
15
+ * })
16
+ * }
17
+ * })
18
+ * ```
19
+ *
20
+ * #### Using OIDC
21
+ *
22
+ * ```ts {5-7}
23
+ * import { MicrosoftOidcProvider } from "@openauthjs/openauth/provider/microsoft"
24
+ *
25
+ * export default issuer({
26
+ * providers: {
27
+ * microsoft: MicrosoftOidcProvider({
28
+ * clientID: "1234567890"
29
+ * })
30
+ * }
31
+ * })
32
+ * ```
33
+ *
34
+ * @packageDocumentation
35
+ */
36
+ import { Oauth2WrappedConfig } from "./oauth2.js";
37
+ import { OidcWrappedConfig } from "./oidc.js";
38
+ export interface MicrosoftConfig extends Oauth2WrappedConfig {
39
+ /**
40
+ * The tenant ID of the Microsoft account.
41
+ *
42
+ * This is usually the same as the client ID.
43
+ *
44
+ * @example
45
+ * ```ts
46
+ * {
47
+ * tenant: "1234567890"
48
+ * }
49
+ * ```
50
+ */
51
+ tenant: string;
52
+ }
53
+ export interface MicrosoftOidcConfig extends OidcWrappedConfig {
54
+ }
55
+ /**
56
+ * Create a Microsoft OAuth2 provider.
57
+ *
58
+ * @param config - The config for the provider.
59
+ * @example
60
+ * ```ts
61
+ * MicrosoftProvider({
62
+ * tenant: "1234567890",
63
+ * clientID: "1234567890",
64
+ * clientSecret: "0987654321"
65
+ * })
66
+ * ```
67
+ */
68
+ export declare function MicrosoftProvider(config: MicrosoftConfig): import("./provider.js").Provider<{
69
+ tokenset: import("./oauth2.js").Oauth2Token;
70
+ clientID: string;
71
+ }>;
72
+ /**
73
+ * Create a Microsoft OIDC provider.
74
+ *
75
+ * This is useful if you just want to verify the user's email address.
76
+ *
77
+ * @param config - The config for the provider.
78
+ * @example
79
+ * ```ts
80
+ * MicrosoftOidcProvider({
81
+ * clientID: "1234567890"
82
+ * })
83
+ * ```
84
+ */
85
+ export declare function MicrosoftOidcProvider(config: MicrosoftOidcConfig): import("./provider.js").Provider<{
86
+ id: import("hono/utils/jwt/types").JWTPayload;
87
+ clientID: string;
88
+ }>;
89
+ //# sourceMappingURL=microsoft.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"microsoft.d.ts","sourceRoot":"","sources":["../../../src/provider/microsoft.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,OAAO,EAAkB,mBAAmB,EAAE,MAAM,aAAa,CAAA;AACjE,OAAO,EAAgB,iBAAiB,EAAE,MAAM,WAAW,CAAA;AAE3D,MAAM,WAAW,eAAgB,SAAQ,mBAAmB;IAC1D;;;;;;;;;;;OAWG;IACH,MAAM,EAAE,MAAM,CAAA;CACf;AACD,MAAM,WAAW,mBAAoB,SAAQ,iBAAiB;CAAG;AAEjE;;;;;;;;;;;;GAYG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,eAAe;;;GASxD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,mBAAmB;;;GAMhE"}