@aura-stack/auth 0.1.0-rc.7 → 0.1.0-rc.8

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 (117) hide show
  1. package/dist/@types/index.cjs +15 -15
  2. package/dist/@types/index.d.ts +31 -7
  3. package/dist/@types/index.js +1 -1
  4. package/dist/@types/router.d.cjs +1 -1
  5. package/dist/@types/router.d.d.ts +7 -7
  6. package/dist/@types/utility.cjs +15 -15
  7. package/dist/@types/utility.d.ts +6 -6
  8. package/dist/@types/utility.js +1 -1
  9. package/dist/actions/callback/access-token.cjs +143 -143
  10. package/dist/actions/callback/access-token.d.ts +20 -15
  11. package/dist/actions/callback/access-token.js +4 -8
  12. package/dist/actions/callback/callback.cjs +455 -437
  13. package/dist/actions/callback/callback.d.ts +12 -10
  14. package/dist/actions/callback/callback.js +12 -16
  15. package/dist/actions/callback/userinfo.cjs +134 -131
  16. package/dist/actions/callback/userinfo.d.ts +9 -9
  17. package/dist/actions/callback/userinfo.js +6 -10
  18. package/dist/actions/csrfToken/csrfToken.cjs +171 -162
  19. package/dist/actions/csrfToken/csrfToken.d.ts +3 -3
  20. package/dist/actions/csrfToken/csrfToken.js +8 -12
  21. package/dist/actions/index.cjs +773 -746
  22. package/dist/actions/index.d.ts +13 -13
  23. package/dist/actions/index.js +18 -34
  24. package/dist/actions/session/session.cjs +155 -149
  25. package/dist/actions/session/session.d.ts +3 -3
  26. package/dist/actions/session/session.js +7 -11
  27. package/dist/actions/signIn/authorization.cjs +249 -231
  28. package/dist/actions/signIn/authorization.d.ts +18 -12
  29. package/dist/actions/signIn/authorization.js +6 -16
  30. package/dist/actions/signIn/signIn.cjs +423 -396
  31. package/dist/actions/signIn/signIn.d.ts +10 -10
  32. package/dist/actions/signIn/signIn.js +10 -14
  33. package/dist/actions/signOut/signOut.cjs +440 -417
  34. package/dist/actions/signOut/signOut.d.ts +3 -3
  35. package/dist/actions/signOut/signOut.js +11 -15
  36. package/dist/assert.cjs +36 -35
  37. package/dist/assert.d.ts +4 -4
  38. package/dist/assert.js +2 -10
  39. package/dist/chunk-256KIVJL.js +96 -85
  40. package/dist/chunk-42XB3YCW.js +17 -19
  41. package/dist/chunk-6SM22VVJ.js +10 -13
  42. package/dist/chunk-CAKJT3KS.js +69 -84
  43. package/dist/chunk-E3OXBRYF.js +17 -19
  44. package/dist/chunk-EBPE35JT.js +26 -28
  45. package/dist/chunk-FIPU4MLT.js +16 -18
  46. package/dist/chunk-FJUDBLCP.js +43 -50
  47. package/dist/chunk-FKRDCWBF.js +17 -19
  48. package/dist/chunk-GZU3RBTB.js +40 -51
  49. package/dist/chunk-HGJ4TXY4.js +100 -132
  50. package/dist/chunk-HMRKN75I.js +63 -63
  51. package/dist/chunk-IKHPGFCW.js +9 -11
  52. package/dist/chunk-JAPMIE6S.js +5 -7
  53. package/dist/chunk-KRNOMBXQ.js +17 -19
  54. package/dist/chunk-LLR722CL.js +70 -91
  55. package/dist/chunk-RLT4RFKV.js +30 -39
  56. package/dist/chunk-SJPDVKUS.js +88 -107
  57. package/dist/chunk-SMQO5WD7.js +16 -26
  58. package/dist/chunk-STHEPPUZ.js +6 -8
  59. package/dist/chunk-UJJ7R56J.js +37 -47
  60. package/dist/chunk-UTDLUEEG.js +25 -0
  61. package/dist/chunk-VFTYH33W.js +37 -54
  62. package/dist/chunk-XXJKNKGQ.js +23 -33
  63. package/dist/chunk-ZV4BH47P.js +134 -132
  64. package/dist/cookie.cjs +175 -169
  65. package/dist/cookie.d.ts +51 -23
  66. package/dist/cookie.js +34 -34
  67. package/dist/error.cjs +75 -75
  68. package/dist/error.d.ts +30 -30
  69. package/dist/error.js +8 -15
  70. package/dist/headers.cjs +28 -28
  71. package/dist/headers.d.ts +2 -2
  72. package/dist/headers.js +2 -6
  73. package/dist/index-DpfbvTZ_.d.ts +298 -249
  74. package/dist/index.cjs +969 -933
  75. package/dist/index.d.ts +31 -10
  76. package/dist/index.js +50 -70
  77. package/dist/jose.cjs +67 -52
  78. package/dist/jose.d.ts +8 -8
  79. package/dist/jose.js +5 -9
  80. package/dist/oauth/bitbucket.cjs +38 -38
  81. package/dist/oauth/bitbucket.d.ts +7 -7
  82. package/dist/oauth/bitbucket.js +2 -6
  83. package/dist/oauth/discord.cjs +48 -48
  84. package/dist/oauth/discord.d.ts +7 -7
  85. package/dist/oauth/discord.js +2 -6
  86. package/dist/oauth/figma.cjs +39 -39
  87. package/dist/oauth/figma.d.ts +7 -7
  88. package/dist/oauth/figma.js +2 -6
  89. package/dist/oauth/github.cjs +31 -31
  90. package/dist/oauth/github.d.ts +7 -7
  91. package/dist/oauth/github.js +2 -6
  92. package/dist/oauth/gitlab.cjs +39 -39
  93. package/dist/oauth/gitlab.d.ts +7 -7
  94. package/dist/oauth/gitlab.js +2 -6
  95. package/dist/oauth/index.cjs +180 -180
  96. package/dist/oauth/index.d.ts +26 -7
  97. package/dist/oauth/index.js +9 -36
  98. package/dist/oauth/spotify.cjs +39 -39
  99. package/dist/oauth/spotify.d.ts +7 -7
  100. package/dist/oauth/spotify.js +2 -6
  101. package/dist/oauth/x.cjs +39 -39
  102. package/dist/oauth/x.d.ts +7 -7
  103. package/dist/oauth/x.js +2 -6
  104. package/dist/response.cjs +27 -27
  105. package/dist/response.d.ts +2 -2
  106. package/dist/response.js +2 -6
  107. package/dist/schemas.cjs +91 -91
  108. package/dist/schemas.d.ts +126 -93
  109. package/dist/schemas.js +18 -18
  110. package/dist/secure.cjs +98 -95
  111. package/dist/secure.d.ts +17 -17
  112. package/dist/secure.js +4 -18
  113. package/dist/utils.cjs +132 -119
  114. package/dist/utils.d.ts +26 -11
  115. package/dist/utils.js +21 -21
  116. package/package.json +1 -1
  117. package/dist/chunk-X7M4CQTN.js +0 -25
@@ -1,12 +1,14 @@
1
- import * as _aura_stack_router from '@aura-stack/router';
2
- import { A as AuthRuntimeConfig } from '../../index-DpfbvTZ_.js';
3
- import 'zod/v4';
4
- import '@aura-stack/jose/jose';
5
- import '../../schemas.js';
6
- import 'zod/v4/core';
7
- import 'cookie';
8
- import '../../@types/utility.js';
1
+ import * as _aura_stack_router from "@aura-stack/router"
2
+ import { A as AuthRuntimeConfig } from "../../index-DpfbvTZ_.js"
3
+ import "zod/v4"
4
+ import "@aura-stack/jose/jose"
5
+ import "../../schemas.js"
6
+ import "zod/v4/core"
7
+ import "cookie"
8
+ import "../../@types/utility.js"
9
9
 
10
- declare const callbackAction: (oauth: AuthRuntimeConfig["oauth"]) => _aura_stack_router.RouteEndpoint<"GET", "/callback/:oauth", {}>;
10
+ declare const callbackAction: (
11
+ oauth: AuthRuntimeConfig["oauth"]
12
+ ) => _aura_stack_router.RouteEndpoint<"GET", "/callback/:oauth", {}>
11
13
 
12
- export { callbackAction };
14
+ export { callbackAction }
@@ -1,16 +1,12 @@
1
- import {
2
- callbackAction
3
- } from "../../chunk-HGJ4TXY4.js";
4
- import "../../chunk-RLT4RFKV.js";
5
- import "../../chunk-UJJ7R56J.js";
6
- import "../../chunk-ZV4BH47P.js";
7
- import "../../chunk-6SM22VVJ.js";
8
- import "../../chunk-STHEPPUZ.js";
9
- import "../../chunk-GZU3RBTB.js";
10
- import "../../chunk-256KIVJL.js";
11
- import "../../chunk-FJUDBLCP.js";
12
- import "../../chunk-JAPMIE6S.js";
13
- import "../../chunk-HMRKN75I.js";
14
- export {
15
- callbackAction
16
- };
1
+ import { callbackAction } from "../../chunk-HGJ4TXY4.js"
2
+ import "../../chunk-RLT4RFKV.js"
3
+ import "../../chunk-UJJ7R56J.js"
4
+ import "../../chunk-ZV4BH47P.js"
5
+ import "../../chunk-6SM22VVJ.js"
6
+ import "../../chunk-STHEPPUZ.js"
7
+ import "../../chunk-GZU3RBTB.js"
8
+ import "../../chunk-256KIVJL.js"
9
+ import "../../chunk-FJUDBLCP.js"
10
+ import "../../chunk-JAPMIE6S.js"
11
+ import "../../chunk-HMRKN75I.js"
12
+ export { callbackAction }
@@ -1,165 +1,168 @@
1
- "use strict";
2
- var __create = Object.create;
3
- var __defProp = Object.defineProperty;
4
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
- var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
1
+ "use strict"
2
+ var __create = Object.create
3
+ var __defProp = Object.defineProperty
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor
5
+ var __getOwnPropNames = Object.getOwnPropertyNames
6
+ var __getProtoOf = Object.getPrototypeOf
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty
8
8
  var __export = (target, all) => {
9
- for (var name in all)
10
- __defProp(target, name, { get: all[name], enumerable: true });
11
- };
9
+ for (var name in all) __defProp(target, name, { get: all[name], enumerable: true })
10
+ }
12
11
  var __copyProps = (to, from, except, desc) => {
13
- if (from && typeof from === "object" || typeof from === "function") {
14
- for (let key of __getOwnPropNames(from))
15
- if (!__hasOwnProp.call(to, key) && key !== except)
16
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
- }
18
- return to;
19
- };
20
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
- // If the importer is in node compatibility mode or this is not an ESM
22
- // file that has been converted to a CommonJS file using a Babel-
23
- // compatible transform (i.e. "__esModule" has not been set), then set
24
- // "default" to the CommonJS "module.exports" for node compatibility.
25
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
- mod
27
- ));
28
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
12
+ if ((from && typeof from === "object") || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable })
16
+ }
17
+ return to
18
+ }
19
+ var __toESM = (mod, isNodeMode, target) => (
20
+ (target = mod != null ? __create(__getProtoOf(mod)) : {}),
21
+ __copyProps(
22
+ // If the importer is in node compatibility mode or this is not an ESM
23
+ // file that has been converted to a CommonJS file using a Babel-
24
+ // compatible transform (i.e. "__esModule" has not been set), then set
25
+ // "default" to the CommonJS "module.exports" for node compatibility.
26
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
27
+ mod
28
+ )
29
+ )
30
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod)
29
31
 
30
32
  // src/actions/callback/userinfo.ts
31
- var userinfo_exports = {};
33
+ var userinfo_exports = {}
32
34
  __export(userinfo_exports, {
33
- getUserInfo: () => getUserInfo
34
- });
35
- module.exports = __toCommonJS(userinfo_exports);
35
+ getUserInfo: () => getUserInfo,
36
+ })
37
+ module.exports = __toCommonJS(userinfo_exports)
36
38
 
37
39
  // src/secure.ts
38
- var import_node_crypto = __toESM(require("crypto"), 1);
40
+ var import_node_crypto = __toESM(require("crypto"), 1)
39
41
 
40
42
  // src/utils.ts
41
- var import_router = require("@aura-stack/router");
43
+ var import_router = require("@aura-stack/router")
42
44
 
43
45
  // src/error.ts
44
46
  var AuthError = class extends Error {
45
- constructor(type, message) {
46
- super(message);
47
- this.type = type;
48
- this.name = "AuthError";
49
- }
50
- };
47
+ constructor(type, message) {
48
+ super(message)
49
+ this.type = type
50
+ this.name = "AuthError"
51
+ }
52
+ }
51
53
  var isAuthError = (error) => {
52
- return error instanceof AuthError;
53
- };
54
+ return error instanceof AuthError
55
+ }
54
56
  var throwAuthError = (error, message) => {
55
- if (error instanceof Error) {
56
- if (isAuthError(error)) {
57
- throw error;
57
+ if (error instanceof Error) {
58
+ if (isAuthError(error)) {
59
+ throw error
60
+ }
61
+ throw new AuthError("invalid_request", error.message ?? message)
58
62
  }
59
- throw new AuthError("invalid_request", error.message ?? message);
60
- }
61
- };
63
+ }
62
64
 
63
65
  // src/secure.ts
64
66
  var generateSecure = (length = 32) => {
65
- return import_node_crypto.default.randomBytes(length).toString("base64url");
66
- };
67
+ return import_node_crypto.default.randomBytes(length).toString("base64url")
68
+ }
67
69
 
68
70
  // src/schemas.ts
69
- var import_v4 = require("zod/v4");
71
+ var import_v4 = require("zod/v4")
70
72
  var OAuthProviderConfigSchema = (0, import_v4.object)({
71
- authorizeURL: (0, import_v4.url)(),
72
- accessToken: (0, import_v4.url)(),
73
- scope: (0, import_v4.string)().optional(),
74
- userInfo: (0, import_v4.url)(),
75
- responseType: (0, import_v4.enum)(["code", "token", "id_token"]),
76
- clientId: (0, import_v4.string)(),
77
- clientSecret: (0, import_v4.string)()
78
- });
73
+ authorizeURL: (0, import_v4.url)(),
74
+ accessToken: (0, import_v4.url)(),
75
+ scope: (0, import_v4.string)().optional(),
76
+ userInfo: (0, import_v4.url)(),
77
+ responseType: (0, import_v4.enum)(["code", "token", "id_token"]),
78
+ clientId: (0, import_v4.string)(),
79
+ clientSecret: (0, import_v4.string)(),
80
+ })
79
81
  var OAuthAuthorization = OAuthProviderConfigSchema.extend({
80
- redirectURI: (0, import_v4.string)(),
81
- state: (0, import_v4.string)(),
82
- codeChallenge: (0, import_v4.string)(),
83
- codeChallengeMethod: (0, import_v4.enum)(["plain", "S256"])
84
- });
82
+ redirectURI: (0, import_v4.string)(),
83
+ state: (0, import_v4.string)(),
84
+ codeChallenge: (0, import_v4.string)(),
85
+ codeChallengeMethod: (0, import_v4.enum)(["plain", "S256"]),
86
+ })
85
87
  var OAuthAuthorizationResponse = (0, import_v4.object)({
86
- state: (0, import_v4.string)(),
87
- code: (0, import_v4.string)()
88
- });
88
+ state: (0, import_v4.string)(),
89
+ code: (0, import_v4.string)(),
90
+ })
89
91
  var OAuthAuthorizationErrorResponse = (0, import_v4.object)({
90
- error: (0, import_v4.enum)([
91
- "invalid_request",
92
- "unauthorized_client",
93
- "access_denied",
94
- "unsupported_response_type",
95
- "invalid_scope",
96
- "server_error",
97
- "temporarily_unavailable"
98
- ]),
99
- error_description: (0, import_v4.string)().optional(),
100
- error_uri: (0, import_v4.string)().optional(),
101
- state: (0, import_v4.string)()
102
- });
92
+ error: (0, import_v4.enum)([
93
+ "invalid_request",
94
+ "unauthorized_client",
95
+ "access_denied",
96
+ "unsupported_response_type",
97
+ "invalid_scope",
98
+ "server_error",
99
+ "temporarily_unavailable",
100
+ ]),
101
+ error_description: (0, import_v4.string)().optional(),
102
+ error_uri: (0, import_v4.string)().optional(),
103
+ state: (0, import_v4.string)(),
104
+ })
103
105
  var OAuthAccessToken = OAuthProviderConfigSchema.extend({
104
- redirectURI: (0, import_v4.string)(),
105
- code: (0, import_v4.string)(),
106
- codeVerifier: (0, import_v4.string)().min(43).max(128)
107
- });
106
+ redirectURI: (0, import_v4.string)(),
107
+ code: (0, import_v4.string)(),
108
+ codeVerifier: (0, import_v4.string)().min(43).max(128),
109
+ })
108
110
  var OAuthAccessTokenResponse = (0, import_v4.object)({
109
- access_token: (0, import_v4.string)(),
110
- token_type: (0, import_v4.string)(),
111
- expires_in: (0, import_v4.number)().optional(),
112
- refresh_token: (0, import_v4.string)().optional(),
113
- scope: (0, import_v4.string)().optional()
114
- });
111
+ access_token: (0, import_v4.string)(),
112
+ token_type: (0, import_v4.string)(),
113
+ expires_in: (0, import_v4.number)().optional(),
114
+ refresh_token: (0, import_v4.string)().optional(),
115
+ scope: (0, import_v4.string)().optional(),
116
+ })
115
117
  var OAuthAccessTokenErrorResponse = (0, import_v4.object)({
116
- error: (0, import_v4.enum)([
117
- "invalid_request",
118
- "invalid_client",
119
- "invalid_grant",
120
- "unauthorized_client",
121
- "unsupported_grant_type",
122
- "invalid_scope"
123
- ]),
124
- error_description: (0, import_v4.string)().optional(),
125
- error_uri: (0, import_v4.string)().optional()
126
- });
118
+ error: (0, import_v4.enum)([
119
+ "invalid_request",
120
+ "invalid_client",
121
+ "invalid_grant",
122
+ "unauthorized_client",
123
+ "unsupported_grant_type",
124
+ "invalid_scope",
125
+ ]),
126
+ error_description: (0, import_v4.string)().optional(),
127
+ error_uri: (0, import_v4.string)().optional(),
128
+ })
127
129
  var OAuthErrorResponse = (0, import_v4.object)({
128
- error: (0, import_v4.string)(),
129
- error_description: (0, import_v4.string)().optional()
130
- });
130
+ error: (0, import_v4.string)(),
131
+ error_description: (0, import_v4.string)().optional(),
132
+ })
131
133
 
132
134
  // src/actions/callback/userinfo.ts
133
135
  var getDefaultUserInfo = (profile) => {
134
- const sub = generateSecure(16);
135
- return {
136
- sub: profile?.id ?? profile?.sub ?? sub,
137
- email: profile?.email,
138
- name: profile?.name ?? profile?.username ?? profile?.nickname,
139
- image: profile?.image ?? profile?.picture
140
- };
141
- };
136
+ const sub = generateSecure(16)
137
+ return {
138
+ sub: profile?.id ?? profile?.sub ?? sub,
139
+ email: profile?.email,
140
+ name: profile?.name ?? profile?.username ?? profile?.nickname,
141
+ image: profile?.image ?? profile?.picture,
142
+ }
143
+ }
142
144
  var getUserInfo = async (oauthConfig, accessToken) => {
143
- const userinfoEndpoint = oauthConfig.userInfo;
144
- try {
145
- const response = await fetch(userinfoEndpoint, {
146
- method: "GET",
147
- headers: {
148
- Accept: "application/json",
149
- Authorization: `Bearer ${accessToken}`
150
- }
151
- });
152
- const json = await response.json();
153
- const { success, data } = OAuthErrorResponse.safeParse(json);
154
- if (success) {
155
- throw new AuthError(data.error, data?.error_description ?? "An error occurred while fetching user information.");
145
+ const userinfoEndpoint = oauthConfig.userInfo
146
+ try {
147
+ const response = await fetch(userinfoEndpoint, {
148
+ method: "GET",
149
+ headers: {
150
+ Accept: "application/json",
151
+ Authorization: `Bearer ${accessToken}`,
152
+ },
153
+ })
154
+ const json = await response.json()
155
+ const { success, data } = OAuthErrorResponse.safeParse(json)
156
+ if (success) {
157
+ throw new AuthError(data.error, data?.error_description ?? "An error occurred while fetching user information.")
158
+ }
159
+ return oauthConfig?.profile ? oauthConfig.profile(json) : getDefaultUserInfo(json)
160
+ } catch (error) {
161
+ throw throwAuthError(error, "Failed to retrieve userinfo")
156
162
  }
157
- return oauthConfig?.profile ? oauthConfig.profile(json) : getDefaultUserInfo(json);
158
- } catch (error) {
159
- throw throwAuthError(error, "Failed to retrieve userinfo");
160
- }
161
- };
163
+ }
162
164
  // Annotate the CommonJS export names for ESM import in node:
163
- 0 && (module.exports = {
164
- getUserInfo
165
- });
165
+ 0 &&
166
+ (module.exports = {
167
+ getUserInfo,
168
+ })
@@ -1,10 +1,10 @@
1
- import { f as OAuthProviderCredentials, U as User } from '../../index-DpfbvTZ_.js';
2
- import 'zod/v4';
3
- import '@aura-stack/jose/jose';
4
- import '../../schemas.js';
5
- import 'zod/v4/core';
6
- import 'cookie';
7
- import '../../@types/utility.js';
1
+ import { f as OAuthProviderCredentials, U as User } from "../../index-DpfbvTZ_.js"
2
+ import "zod/v4"
3
+ import "@aura-stack/jose/jose"
4
+ import "../../schemas.js"
5
+ import "zod/v4/core"
6
+ import "cookie"
7
+ import "../../@types/utility.js"
8
8
 
9
9
  /**
10
10
  * Get user information from the OAuth provider's userinfo endpoint using the provided access token.
@@ -15,6 +15,6 @@ import '../../@types/utility.js';
15
15
  * @param accessToken - Access Token to access the userinfo endpoint
16
16
  * @returns The user information retrieved from the userinfo endpoint
17
17
  */
18
- declare const getUserInfo: (oauthConfig: OAuthProviderCredentials, accessToken: string) => Promise<User>;
18
+ declare const getUserInfo: (oauthConfig: OAuthProviderCredentials, accessToken: string) => Promise<User>
19
19
 
20
- export { getUserInfo };
20
+ export { getUserInfo }
@@ -1,10 +1,6 @@
1
- import {
2
- getUserInfo
3
- } from "../../chunk-RLT4RFKV.js";
4
- import "../../chunk-GZU3RBTB.js";
5
- import "../../chunk-256KIVJL.js";
6
- import "../../chunk-FJUDBLCP.js";
7
- import "../../chunk-HMRKN75I.js";
8
- export {
9
- getUserInfo
10
- };
1
+ import { getUserInfo } from "../../chunk-RLT4RFKV.js"
2
+ import "../../chunk-GZU3RBTB.js"
3
+ import "../../chunk-256KIVJL.js"
4
+ import "../../chunk-FJUDBLCP.js"
5
+ import "../../chunk-HMRKN75I.js"
6
+ export { getUserInfo }