@appconda/sdk 1.0.410 → 1.0.411
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.
- package/package.json +1 -1
- package/dist/actions/_authOptions.d.ts +0 -5
- package/dist/actions/_authOptions.js +0 -235
- package/dist/actions/actionClient.d.ts +0 -10
- package/dist/actions/actionClient.js +0 -41
- package/dist/actions/auth.d.ts +0 -1
- package/dist/actions/auth.js +0 -7
- package/dist/actions/authOptions.d.ts +0 -5
- package/dist/actions/authOptions.js +0 -133
- package/dist/actions/index.d.ts +0 -3
- package/dist/actions/index.js +0 -4
- package/dist/actions/nextAuthHandler.d.ts +0 -1
- package/dist/actions/nextAuthHandler.js +0 -6
- package/dist/decorators/Cache.d.ts +0 -1
- package/dist/decorators/Cache.js +0 -79
- package/dist/decorators/CacheKey.d.ts +0 -1
- package/dist/decorators/CacheKey.js +0 -9
- package/dist/decorators/Invalidate.d.ts +0 -1
- package/dist/decorators/Invalidate.js +0 -47
- package/dist/getSDKForCurrentUser.d.ts +0 -59
- package/dist/getSDKForCurrentUser.js +0 -100
- package/dist/getSDKForTenant.d.ts +0 -20
- package/dist/getSDKForTenant.js +0 -44
- package/dist/lib/Cache/Adapter.d.ts +0 -10
- package/dist/lib/Cache/Adapter.js +0 -2
- package/dist/lib/Cache/Adapters/Filesystem.d.ts +0 -16
- package/dist/lib/Cache/Adapters/Filesystem.js +0 -103
- package/dist/lib/Cache/Adapters/Memory.d.ts +0 -18
- package/dist/lib/Cache/Adapters/Memory.js +0 -47
- package/dist/lib/Cache/Adapters/None.d.ts +0 -12
- package/dist/lib/Cache/Adapters/None.js +0 -28
- package/dist/lib/Cache/Adapters/Sharding.d.ts +0 -17
- package/dist/lib/Cache/Adapters/Sharding.js +0 -73
- package/dist/lib/Cache/Cache.d.ts +0 -16
- package/dist/lib/Cache/Cache.js +0 -52
- package/dist/lib/Cache/index.d.ts +0 -4
- package/dist/lib/Cache/index.js +0 -5
- package/dist/lib/Cache/test.d.ts +0 -0
- package/dist/lib/Cache/test.js +0 -1
- package/dist/lib/Registry/Registry.d.ts +0 -38
- package/dist/lib/Registry/Registry.js +0 -56
- package/dist/lib/Registry/index.d.ts +0 -1
- package/dist/lib/Registry/index.js +0 -2
- package/dist/lib/Services.d.ts +0 -6
- package/dist/lib/Services.js +0 -14
- package/dist/lib/crypto.d.ts +0 -23
- package/dist/lib/crypto.js +0 -78
- package/dist/lib/env.d.ts +0 -1
- package/dist/lib/env.js +0 -137
- package/dist/lib/jwt.d.ts +0 -12
- package/dist/lib/jwt.js +0 -103
- package/dist/modules/account/actions.d.ts +0 -11
- package/dist/modules/account/actions.js +0 -49
- package/dist/modules/accounv1/action.d.ts +0 -9
- package/dist/modules/accounv1/action.js +0 -88
- package/dist/modules/bpm/action.d.ts +0 -7
- package/dist/modules/bpm/action.js +0 -60
- package/dist/schemas/nodes.d.ts +0 -0
- package/dist/schemas/nodes.js +0 -1
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@appconda/sdk",
|
|
3
3
|
"homepage": "https://appconda.io/support",
|
|
4
4
|
"description": "Appconda is an open-source self-hosted backend server that abstract and simplify complex and repetitive development tasks behind a very simple REST API",
|
|
5
|
-
"version": "1.0.
|
|
5
|
+
"version": "1.0.411",
|
|
6
6
|
"license": "BSD-3-Clause",
|
|
7
7
|
"main": "dist/index.js",
|
|
8
8
|
"types": "dist/index.d.ts",
|
|
@@ -1,235 +0,0 @@
|
|
|
1
|
-
import CredentialsProvider from "next-auth/providers/credentials";
|
|
2
|
-
import { cookies } from "next/headers";
|
|
3
|
-
import { getAppcondaClient } from "../getAppcondaClient";
|
|
4
|
-
import { Account } from "../modules/account/service";
|
|
5
|
-
import { getEnv } from "../lib/env";
|
|
6
|
-
import { getSDKForCurrentUser } from "../getSDKForCurrentUser";
|
|
7
|
-
import { Query } from "../query";
|
|
8
|
-
/* const getEnv = () => {
|
|
9
|
-
return {
|
|
10
|
-
APPCONDA_ENDPOINT: 'process.env.APPCONDA_ENDPOINT',
|
|
11
|
-
APPCONDA_CLIENT_ENDPOINT: 'process.env.APPCONDA_CLIENT_ENDPOINT',
|
|
12
|
-
_SERVICE_TOKEN: 'process.env._SERVICE_TOKEN',
|
|
13
|
-
ENTERPRISE_LICENSE_KEY: 'process.env.ENTERPRISE_LICENSE_KEY',
|
|
14
|
-
};
|
|
15
|
-
}; */
|
|
16
|
-
export async function signIn({ userName, password }) {
|
|
17
|
-
const adminClient = await getAppcondaClient();
|
|
18
|
-
const account = new Account(adminClient);
|
|
19
|
-
const session = await account.createEmailPasswordSession(userName, password);
|
|
20
|
-
const c = await cookies();
|
|
21
|
-
c.set('a_session', session.secret, {
|
|
22
|
-
path: "/",
|
|
23
|
-
httpOnly: true,
|
|
24
|
-
sameSite: "strict",
|
|
25
|
-
secure: true,
|
|
26
|
-
});
|
|
27
|
-
return session;
|
|
28
|
-
}
|
|
29
|
-
export const authOptions = (() => {
|
|
30
|
-
let options = null;
|
|
31
|
-
return () => {
|
|
32
|
-
if (options == null) {
|
|
33
|
-
options = {
|
|
34
|
-
providers: [
|
|
35
|
-
CredentialsProvider({
|
|
36
|
-
id: "credentials",
|
|
37
|
-
// The name to display on the sign in form (e.g. "Sign in with...")
|
|
38
|
-
name: "Credentials",
|
|
39
|
-
// The credentials is used to generate a suitable form on the sign in page.
|
|
40
|
-
// You can specify whatever fields you are expecting to be submitted.
|
|
41
|
-
// e.g. domain, username, password, 2FA token, etc.
|
|
42
|
-
// You can pass any HTML attribute to the <input> tag through the object.
|
|
43
|
-
credentials: {
|
|
44
|
-
email: {
|
|
45
|
-
label: "Email Address",
|
|
46
|
-
type: "email",
|
|
47
|
-
placeholder: "Your email address",
|
|
48
|
-
},
|
|
49
|
-
password: {
|
|
50
|
-
label: "Password",
|
|
51
|
-
type: "password",
|
|
52
|
-
placeholder: "Your password",
|
|
53
|
-
},
|
|
54
|
-
totpCode: { label: "Two-factor Code", type: "input", placeholder: "Code from authenticator app" },
|
|
55
|
-
backupCode: { label: "Backup Code", type: "input", placeholder: "Two-factor backup code" },
|
|
56
|
-
},
|
|
57
|
-
async authorize(credentials, _req) {
|
|
58
|
-
debugger;
|
|
59
|
-
let user;
|
|
60
|
-
const appcondaSession = await signIn({ userName: credentials?.email, password: credentials?.password });
|
|
61
|
-
console.log(credentials);
|
|
62
|
-
/* try {
|
|
63
|
-
user = await prisma.user.findUnique({
|
|
64
|
-
where: {
|
|
65
|
-
email: credentials?.email,
|
|
66
|
-
},
|
|
67
|
-
});
|
|
68
|
-
} catch (e) {
|
|
69
|
-
console.error(e);
|
|
70
|
-
throw Error("Internal server error. Please try again later");
|
|
71
|
-
}
|
|
72
|
-
if (!user || !credentials) {
|
|
73
|
-
throw new Error("Invalid credentials");
|
|
74
|
-
}
|
|
75
|
-
if (!user.password) {
|
|
76
|
-
throw new Error("Invalid credentials");
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
const isValid = await verifyPassword(credentials.password, user.password);
|
|
80
|
-
|
|
81
|
-
if (!isValid) {
|
|
82
|
-
throw new Error("Invalid credentials");
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
if (user.twoFactorEnabled && credentials.backupCode) {
|
|
86
|
-
if (!ENCRYPTION_KEY) {
|
|
87
|
-
console.error("Missing encryption key; cannot proceed with backup code login.");
|
|
88
|
-
throw new Error("Internal Server Error");
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
if (!user.backupCodes) throw new Error("No backup codes found");
|
|
92
|
-
|
|
93
|
-
const backupCodes = JSON.parse(symmetricDecrypt(user.backupCodes, ENCRYPTION_KEY));
|
|
94
|
-
|
|
95
|
-
// check if user-supplied code matches one
|
|
96
|
-
const index = backupCodes.indexOf(credentials.backupCode.replaceAll("-", ""));
|
|
97
|
-
if (index === -1) throw new Error("Invalid backup code");
|
|
98
|
-
|
|
99
|
-
// delete verified backup code and re-encrypt remaining
|
|
100
|
-
backupCodes[index] = null;
|
|
101
|
-
await prisma.user.update({
|
|
102
|
-
where: {
|
|
103
|
-
id: user.id,
|
|
104
|
-
},
|
|
105
|
-
data: {
|
|
106
|
-
backupCodes: symmetricEncrypt(JSON.stringify(backupCodes), ENCRYPTION_KEY),
|
|
107
|
-
},
|
|
108
|
-
});
|
|
109
|
-
} else if (user.twoFactorEnabled) {
|
|
110
|
-
if (!credentials.totpCode) {
|
|
111
|
-
throw new Error("second factor required");
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
if (!user.twoFactorSecret) {
|
|
115
|
-
throw new Error("Internal Server Error");
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
if (!ENCRYPTION_KEY) {
|
|
119
|
-
throw new Error("Internal Server Error");
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
const secret = symmetricDecrypt(user.twoFactorSecret, ENCRYPTION_KEY);
|
|
123
|
-
if (secret.length !== 32) {
|
|
124
|
-
throw new Error("Internal Server Error");
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
const isValidToken = (await import("./totp")).totpAuthenticatorCheck(credentials.totpCode, secret);
|
|
128
|
-
if (!isValidToken) {
|
|
129
|
-
throw new Error("Invalid second factor code");
|
|
130
|
-
}
|
|
131
|
-
} */
|
|
132
|
-
console.log("asafdf");
|
|
133
|
-
return {
|
|
134
|
-
id: appcondaSession.userId,
|
|
135
|
-
email: appcondaSession.providerUid,
|
|
136
|
-
emailVerified: true,
|
|
137
|
-
imageUrl: "",
|
|
138
|
-
};
|
|
139
|
-
},
|
|
140
|
-
}),
|
|
141
|
-
CredentialsProvider({
|
|
142
|
-
id: "token",
|
|
143
|
-
// The name to display on the sign in form (e.g. "Sign in with...")
|
|
144
|
-
name: "Token",
|
|
145
|
-
// The credentials is used to generate a suitable form on the sign in page.
|
|
146
|
-
// You can specify whatever fields you are expecting to be submitted.
|
|
147
|
-
// e.g. domain, username, password, 2FA token, etc.
|
|
148
|
-
// You can pass any HTML attribute to the <input> tag through the object.
|
|
149
|
-
credentials: {
|
|
150
|
-
token: {
|
|
151
|
-
label: "Verification Token",
|
|
152
|
-
type: "string",
|
|
153
|
-
},
|
|
154
|
-
},
|
|
155
|
-
async authorize(credentials, _req) {
|
|
156
|
-
let user;
|
|
157
|
-
/* try {
|
|
158
|
-
if (!credentials?.token) {
|
|
159
|
-
throw new Error("Token not found");
|
|
160
|
-
}
|
|
161
|
-
const { id } = await verifyToken(credentials?.token);
|
|
162
|
-
user = await prisma.user.findUnique({
|
|
163
|
-
where: {
|
|
164
|
-
id: id,
|
|
165
|
-
},
|
|
166
|
-
});
|
|
167
|
-
} catch (e) {
|
|
168
|
-
console.error(e);
|
|
169
|
-
throw new Error("Either a user does not match the provided token or the token is invalid");
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
if (!user) {
|
|
173
|
-
throw new Error("Either a user does not match the provided token or the token is invalid");
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
if (user.emailVerified) {
|
|
177
|
-
throw new Error("Email already verified");
|
|
178
|
-
}
|
|
179
|
-
|
|
180
|
-
user = await updateUser(user.id, { emailVerified: new Date() }); */
|
|
181
|
-
return user || null;
|
|
182
|
-
},
|
|
183
|
-
}),
|
|
184
|
-
// Conditionally add enterprise SSO providers
|
|
185
|
-
...(getEnv().ENTERPRISE_LICENSE_KEY ? [] : []),
|
|
186
|
-
],
|
|
187
|
-
callbacks: {
|
|
188
|
-
async jwt({ token }) {
|
|
189
|
-
const { users } = await getSDKForCurrentUser();
|
|
190
|
-
const userList = await users.list([Query.equal("email", token.email)]);
|
|
191
|
-
const user = userList.users[0] ?? {};
|
|
192
|
-
/* const existingUser = await getUserByEmail(token?.email!);
|
|
193
|
-
|
|
194
|
-
if (!existingUser) {
|
|
195
|
-
return token;
|
|
196
|
-
} */
|
|
197
|
-
return {
|
|
198
|
-
...token,
|
|
199
|
-
//@ts-ignore
|
|
200
|
-
profile: { id: user.$id, ...user },
|
|
201
|
-
};
|
|
202
|
-
},
|
|
203
|
-
async session({ session, token }) {
|
|
204
|
-
//@ts-ignore
|
|
205
|
-
session.user.id = token?.id;
|
|
206
|
-
//@ts-ignore
|
|
207
|
-
session.user = token.profile;
|
|
208
|
-
return session;
|
|
209
|
-
},
|
|
210
|
-
//@ts-ignore
|
|
211
|
-
async signIn({ user, account }) {
|
|
212
|
-
/* if (account?.provider === "credentials" || account?.provider === "token") {
|
|
213
|
-
// check if user's email is verified or not
|
|
214
|
-
if (!user.emailVerified && !EMAIL_VERIFICATION_DISABLED) {
|
|
215
|
-
throw new Error("Email Verification is Pending");
|
|
216
|
-
}
|
|
217
|
-
return true;
|
|
218
|
-
}
|
|
219
|
-
if (ENTERPRISE_LICENSE_KEY) {
|
|
220
|
-
return handleSSOCallback({ user, account });
|
|
221
|
-
} */
|
|
222
|
-
return true;
|
|
223
|
-
},
|
|
224
|
-
},
|
|
225
|
-
pages: {
|
|
226
|
-
signIn: "/auth/login",
|
|
227
|
-
signOut: "/auth/logout",
|
|
228
|
-
error: "/auth/login", // Error code passed in query string as ?error=
|
|
229
|
-
},
|
|
230
|
-
};
|
|
231
|
-
}
|
|
232
|
-
return options;
|
|
233
|
-
};
|
|
234
|
-
})();
|
|
235
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiX2F1dGhPcHRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FjdGlvbnMvX2F1dGhPcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sbUJBQW1CLE1BQU0saUNBQWlDLENBQUM7QUFDbEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN2QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDckQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNwQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRWpDOzs7Ozs7O0tBT0s7QUFFTCxNQUFNLENBQUMsS0FBSyxVQUFVLE1BQU0sQ0FBQyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQTBDO0lBQ3pGLE1BQU0sV0FBVyxHQUFHLE1BQU0saUJBQWlCLEVBQUUsQ0FBQztJQUU5QyxNQUFNLE9BQU8sR0FBRyxJQUFJLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUV6QyxNQUFNLE9BQU8sR0FBRyxNQUFNLE9BQU8sQ0FBQywwQkFBMEIsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFFN0UsTUFBTSxDQUFDLEdBQUcsTUFBTSxPQUFPLEVBQUUsQ0FBQztJQUUxQixDQUFDLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxPQUFPLENBQUMsTUFBTSxFQUFFO1FBQ2pDLElBQUksRUFBRSxHQUFHO1FBQ1QsUUFBUSxFQUFFLElBQUk7UUFDZCxRQUFRLEVBQUUsUUFBUTtRQUNsQixNQUFNLEVBQUUsSUFBSTtLQUNiLENBQUMsQ0FBQztJQUVILE9BQU8sT0FBTyxDQUFDO0FBRWpCLENBQUM7QUFFRCxNQUFNLENBQUMs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S0FBSyxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLEtBQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQTt3QkFFdkUsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7d0JBRXJDOzs7OzZCQUlLO3dCQUVMLE9BQU87NEJBQ0wsR0FBRyxLQUFLOzRCQUNSLFlBQVk7NEJBQ1osT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJLEVBQUU7eUJBQ25DLENBQUM7b0JBQ0osQ0FBQztvQkFDRCxLQUFLLENBQUMsT0FBTyxDQUFDLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRTt3QkFDOUIsWUFBWTt3QkFDWixPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxLQUFLLEVBQUUsRUFBRSxDQUFDO3dCQUM1QixZQUFZO3dCQUNaLE9BQU8sQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQzt3QkFFN0IsT0FBTyxPQUFPLENBQUM7b0JBQ2pCLENBQUM7b0JBQ0QsWUFBWTtvQkFDWixLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBMEM7d0JBQ3BFOzs7Ozs7Ozs7OEJBU007d0JBQ04sT0FBTyxJQUFJLENBQUM7b0JBQ2QsQ0FBQztpQkFDRjtnQkFDRCxLQUFLLEVBQUU7b0JBQ0wsTUFBTSxFQUFFLGFBQWE7b0JBQ3JCLE9BQU8sRUFBRSxjQUFjO29CQUN2QixLQUFLLEVBQUUsYUFBYSxFQUFFLCtDQUErQztpQkFDdEU7YUFDRixDQUFBO1FBQ0gsQ0FBQztRQUNELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUMsQ0FBQTtBQUNILENBQUMsQ0FBQyxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IE5leHRBdXRoT3B0aW9ucyB9IGZyb20gXCJuZXh0LWF1dGhcIjtcbmltcG9ydCBDcmVkZW50aWFsc1Byb3ZpZGVyIGZyb20gXCJuZXh0LWF1dGgvcHJvdmlkZXJzL2NyZWRlbnRpYWxzXCI7XG5pbXBvcnQgeyBjb29raWVzIH0gZnJvbSBcIm5leHQvaGVhZGVyc1wiO1xuaW1wb3J0IHsgZ2V0QXBwY29uZGFDbGllbnQgfSBmcm9tIFwiLi4vZ2V0QXBwY29uZGFDbGllbnRcIjtcbmltcG9ydCB7IEFjY291bnQgfSBmcm9tIFwiLi4vbW9kdWxlcy9hY2NvdW50L3NlcnZpY2VcIjtcbmltcG9ydCB7IGdldEVudiB9IGZyb20gXCIuLi9saWIvZW52XCI7XG5pbXBvcnQgeyBnZXRTREtGb3JDdXJyZW50VXNlciB9IGZyb20gXCIuLi9nZXRTREtGb3JDdXJyZW50VXNlclwiO1xuaW1wb3J0IHsgUXVlcnkgfSBmcm9tIFwiLi4vcXVlcnlcIjtcblxuLyogY29uc3QgZ2V0RW52ID0gKCkgPT4ge1xuICByZXR1cm4ge1xuICAgIEFQUENPTkRBX0VORFBPSU5UOiAncHJvY2Vzcy5lbnYuQVBQQ09OREFfRU5EUE9JTlQnLFxuICAgIEFQUENPTkRBX0NMSUVOVF9FTkRQT0lOVDogJ3Byb2Nlc3MuZW52LkFQUENPTkRBX0NMSUVOVF9FTkRQT0lOVCcsXG4gICAgX1NFUlZJQ0VfVE9LRU46ICdwcm9jZXNzLmVudi5fU0VSVklDRV9UT0tFTicsXG4gICAgRU5URVJQUklTRV9MSUNFTlNFX0tFWTogJ3Byb2Nlc3MuZW52LkVOVEVSUFJJU0VfTElDRU5TRV9LRVknLFxuICB9O1xufTsgKi9cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHNpZ25Jbih7IHVzZXJOYW1lLCBwYXNzd29yZCB9OiB7IHVzZXJOYW1lOiBzdHJpbmcsIHBhc3N3b3JkOiBzdHJpbmcgfSkge1xuICBjb25zdCBhZG1pbkNsaWVudCA9IGF3YWl0IGdldEFwcGNvbmRhQ2xpZW50KCk7XG5cbiAgY29uc3QgYWNjb3VudCA9IG5ldyBBY2NvdW50KGFkbWluQ2xpZW50KTtcblxuICBjb25zdCBzZXNzaW9uID0gYXdhaXQgYWNjb3VudC5jcmVhdGVFbWFpbFBhc3N3b3JkU2Vzc2lvbih1c2VyTmFtZSwgcGFzc3dvcmQpO1xuXG4gIGNvbnN0IGMgPSBhd2FpdCBjb29raWVzKCk7XG5cbiAgYy5zZXQoJ2Ffc2Vzc2lvbicsIHNlc3Npb24uc2VjcmV0LCB7XG4gICAgcGF0aDogXCIvXCIsXG4gICAgaHR0cE9ubHk6IHRydWUsXG4gICAgc2FtZVNpdGU6IFwic3RyaWN0XCIsXG4gICAgc2VjdXJlOiB0cnVlLFxuICB9KTtcblxuICByZXR1cm4gc2Vzc2lvbjtcblxufVxuXG5leHBvcnQgY29uc3QgYXV0aE9wdGlvbnMgPSAoKCkgPT4ge1xuICBsZXQgb3B0aW9ucyA6IGFueT0gbnVsbDtcblxuICByZXR1cm4gKCkgPT4ge1xuICAgIGlmIChvcHRpb25zID09IG51bGwpIHtcbiAgICAgIG9wdGlvbnMgPSB7XG4gICAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICAgIENyZWRlbnRpYWxzUHJvdmlkZXIoe1xuICAgICAgICAgICAgaWQ6IFwiY3JlZGVudGlhbHNcIixcbiAgICAgICAgICAgIC8vIFRoZSBuYW1lIHRvIGRpc3BsYXkgb24gdGhlIHNpZ24gaW4gZm9ybSAoZS5nLiBcIlNpZ24gaW4gd2l0aC4uLlwiKVxuICAgICAgICAgICAgbmFtZTogXCJDcmVkZW50aWFsc1wiLFxuICAgICAgICAgICAgLy8gVGhlIGNyZWRlbnRpYWxzIGlzIHVzZWQgdG8gZ2VuZXJhdGUgYSBzdWl0YWJsZSBmb3JtIG9uIHRoZSBzaWduIGluIHBhZ2UuXG4gICAgICAgICAgICAvLyBZb3UgY2FuIHNwZWNpZnkgd2hhdGV2ZXIgZmllbGRzIHlvdSBhcmUgZXhwZWN0aW5nIHRvIGJlIHN1Ym1pdHRlZC5cbiAgICAgICAgICAgIC8vIGUuZy4gZG9tYWluLCB1c2VybmFtZSwgcGFzc3dvcmQsIDJGQSB0b2tlbiwgZXRjLlxuICAgICAgICAgICAgLy8gWW91IGNhbiBwYXNzIGFueSBIVE1MIGF0dHJpYnV0ZSB0byB0aGUgPGlucHV0PiB0YWcgdGhyb3VnaCB0aGUgb2JqZWN0LlxuICAgICAgICAgICAgY3JlZGVudGlhbHM6IHtcbiAgICAgICAgICAgICAgZW1haWw6IHtcbiAgICAgICAgICAgICAgICBsYWJlbDogXCJFbWFpbCBBZGRyZXNzXCIsXG4gICAgICAgICAgICAgICAgdHlwZTogXCJlbWFpbFwiLFxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyOiBcIllvdXIgZW1haWwgYWRkcmVzc1wiLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBwYXNzd29yZDoge1xuICAgICAgICAgICAgICAgIGxhYmVsOiBcIlBhc3N3b3JkXCIsXG4gICAgICAgICAgICAgICAgdHlwZTogXCJwYXNzd29yZFwiLFxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyOiBcIllvdXIgcGFzc3dvcmRcIixcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgdG90cENvZGU6IHsgbGFiZWw6IFwiVHdvLWZhY3RvciBDb2RlXCIsIHR5cGU6IFwiaW5wdXRcIiwgcGxhY2Vob2xkZXI6IFwiQ29kZSBmcm9tIGF1dGhlbnRpY2F0b3IgYXBwXCIgfSxcbiAgICAgICAgICAgICAgYmFja3VwQ29kZTogeyBsYWJlbDogXCJCYWNrdXAgQ29kZVwiLCB0eXBlOiBcImlucHV0XCIsIHBsYWNlaG9sZGVyOiBcIlR3by1mYWN0b3IgYmFja3VwIGNvZGVcIiB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGFzeW5jIGF1dGhvcml6ZShjcmVkZW50aWFscywgX3JlcSkge1xuICAgICAgICAgICAgICBkZWJ1Z2dlcjtcbiAgICAgICAgICAgICAgbGV0IHVzZXI7XG4gICAgICAgICAgICAgIGNvbnN0IGFwcGNvbmRhU2Vzc2lvbiA9IGF3YWl0IHNpZ25Jbih7IHVzZXJOYW1lOiBjcmVkZW50aWFscz8uZW1haWwgYXMgc3RyaW5nLCBwYXNzd29yZDogY3JlZGVudGlhbHM/LnBhc3N3b3JkIGFzIHN0cmluZyB9KTtcblxuICAgICAgICAgICAgICBjb25zb2xlLmxvZyhjcmVkZW50aWFscyk7XG4gICAgICAgICAgICAgIC8qICB0cnkge1xuICAgICAgICAgICAgICAgICB1c2VyID0gYXdhaXQgcHJpc21hLnVzZXIuZmluZFVuaXF1ZSh7XG4gICAgICAgICAgICAgICAgICAgd2hlcmU6IHtcbiAgICAgICAgICAgICAgICAgICAgIGVtYWlsOiBjcmVkZW50aWFscz8uZW1haWwsXG4gICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZSk7XG4gICAgICAgICAgICAgICAgIHRocm93IEVycm9yKFwiSW50ZXJuYWwgc2VydmVyIGVycm9yLiBQbGVhc2UgdHJ5IGFnYWluIGxhdGVyXCIpO1xuICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgaWYgKCF1c2VyIHx8ICFjcmVkZW50aWFscykge1xuICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJJbnZhbGlkIGNyZWRlbnRpYWxzXCIpO1xuICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgaWYgKCF1c2VyLnBhc3N3b3JkKSB7XG4gICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkludmFsaWQgY3JlZGVudGlhbHNcIik7XG4gICAgICAgICAgICAgICB9XG4gICAgICAgXG4gICAgICAgICAgICAgICBjb25zdCBpc1ZhbGlkID0gYXdhaXQgdmVyaWZ5UGFzc3dvcmQoY3JlZGVudGlhbHMucGFzc3dvcmQsIHVzZXIucGFzc3dvcmQpO1xuICAgICAgIFxuICAgICAgICAgICAgICAgaWYgKCFpc1ZhbGlkKSB7XG4gICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkludmFsaWQgY3JlZGVudGlhbHNcIik7XG4gICAgICAgICAgICAgICB9XG4gICAgICAgXG4gICAgICAgICAgICAgICBpZiAodXNlci50d29GYWN0b3JFbmFibGVkICYmIGNyZWRlbnRpYWxzLmJhY2t1cENvZGUpIHtcbiAgICAgICAgICAgICAgICAgaWYgKCFFTkNSWVBUSU9OX0tFWSkge1xuICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXCJNaXNzaW5nIGVuY3J5cHRpb24ga2V5OyBjYW5ub3QgcHJvY2VlZCB3aXRoIGJhY2t1cCBjb2RlIGxvZ2luLlwiKTtcbiAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJJbnRlcm5hbCBTZXJ2ZXIgRXJyb3JcIik7XG4gICAgICAgICAgICAgICAgIH1cbiAgICAgICBcbiAgICAgICAgICAgICAgICAgaWYgKCF1c2VyLmJhY2t1cENvZGVzKSB0aHJvdyBuZXcgRXJyb3IoXCJObyBiYWNrdXAgY29kZXMgZm91bmRcIik7XG4gICAgICAgXG4gICAgICAgICAgICAgICAgIGNvbnN0IGJhY2t1cENvZGVzID0gSlNPTi5wYXJzZShzeW1tZXRyaWNEZWNyeXB0KHVzZXIuYmFja3VwQ29kZXMsIEVOQ1JZUFRJT05fS0VZKSk7XG4gICAgICAgXG4gICAgICAgICAgICAgICAgIC8vIGNoZWNrIGlmIHVzZXItc3VwcGxpZWQgY29kZSBtYXRjaGVzIG9uZVxuICAgICAgICAgICAgICAgICBjb25zdCBpbmRleCA9IGJhY2t1cENvZGVzLmluZGV4T2YoY3JlZGVudGlhbHMuYmFja3VwQ29kZS5yZXBsYWNlQWxsKFwiLVwiLCBcIlwiKSk7XG4gICAgICAgICAgICAgICAgIGlmIChpbmRleCA9PT0gLTEpIHRocm93IG5ldyBFcnJvcihcIkludmFsaWQgYmFja3VwIGNvZGVcIik7XG4gICAgICAgXG4gICAgICAgICAgICAgICAgIC8vIGRlbGV0ZSB2ZXJpZmllZCBiYWNrdXAgY29kZSBhbmQgcmUtZW5jcnlwdCByZW1haW5pbmdcbiAgICAgICAgICAgICAgICAgYmFja3VwQ29kZXNbaW5kZXhdID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgYXdhaXQgcHJpc21hLnVzZXIudXBkYXRlKHtcbiAgICAgICAgICAgICAgICAgICB3aGVyZToge1xuICAgICAgICAgICAgICAgICAgICAgaWQ6IHVzZXIuaWQsXG4gICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgICAgICBiYWNrdXBDb2Rlczogc3ltbWV0cmljRW5jcnlwdChKU09OLnN0cmluZ2lmeShiYWNrdXBDb2RlcyksIEVOQ1JZUFRJT05fS0VZKSxcbiAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodXNlci50d29GYWN0b3JFbmFibGVkKSB7XG4gICAgICAgICAgICAgICAgIGlmICghY3JlZGVudGlhbHMudG90cENvZGUpIHtcbiAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJzZWNvbmQgZmFjdG9yIHJlcXVpcmVkXCIpO1xuICAgICAgICAgICAgICAgICB9XG4gICAgICAgXG4gICAgICAgICAgICAgICAgIGlmICghdXNlci50d29GYWN0b3JTZWNyZXQpIHtcbiAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJJbnRlcm5hbCBTZXJ2ZXIgRXJyb3JcIik7XG4gICAgICAgICAgICAgICAgIH1cbiAgICAgICBcbiAgICAgICAgICAgICAgICAgaWYgKCFFTkNSWVBUSU9OX0tFWSkge1xuICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkludGVybmFsIFNlcnZlciBFcnJvclwiKTtcbiAgICAgICAgICAgICAgICAgfVxuICAgICAgIFxuICAgICAgICAgICAgICAgICBjb25zdCBzZWNyZXQgPSBzeW1tZXRyaWNEZWNyeXB0KHVzZXIudHdvRmFjdG9yU2VjcmV0LCBFTkNSWVBUSU9OX0tFWSk7XG4gICAgICAgICAgICAgICAgIGlmIChzZWNyZXQubGVuZ3RoICE9PSAzMikge1xuICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkludGVybmFsIFNlcnZlciBFcnJvclwiKTtcbiAgICAgICAgICAgICAgICAgfVxuICAgICAgIFxuICAgICAgICAgICAgICAgICBjb25zdCBpc1ZhbGlkVG9rZW4gPSAoYXdhaXQgaW1wb3J0KFwiLi90b3RwXCIpKS50b3RwQXV0aGVudGljYXRvckNoZWNrKGNyZWRlbnRpYWxzLnRvdHBDb2RlLCBzZWNyZXQpO1xuICAgICAgICAgICAgICAgICBpZiAoIWlzVmFsaWRUb2tlbikge1xuICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkludmFsaWQgc2Vjb25kIGZhY3RvciBjb2RlXCIpO1xuICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICB9ICovXG5cbiAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJhc2FmZGZcIilcblxuICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIGlkOiBhcHBjb25kYVNlc3Npb24udXNlcklkLFxuICAgICAgICAgICAgICAgIGVtYWlsOiBhcHBjb25kYVNlc3Npb24ucHJvdmlkZXJVaWQsXG4gICAgICAgICAgICAgICAgZW1haWxWZXJpZmllZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBpbWFnZVVybDogXCJcIixcbiAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSksXG4gICAgICAgICAgQ3JlZGVudGlhbHNQcm92aWRlcih7XG4gICAgICAgICAgICBpZDogXCJ0b2tlblwiLFxuICAgICAgICAgICAgLy8gVGhlIG5hbWUgdG8gZGlzcGxheSBvbiB0aGUgc2lnbiBpbiBmb3JtIChlLmcuIFwiU2lnbiBpbiB3aXRoLi4uXCIpXG4gICAgICAgICAgICBuYW1lOiBcIlRva2VuXCIsXG4gICAgICAgICAgICAvLyBUaGUgY3JlZGVudGlhbHMgaXMgdXNlZCB0byBnZW5lcmF0ZSBhIHN1aXRhYmxlIGZvcm0gb24gdGhlIHNpZ24gaW4gcGFnZS5cbiAgICAgICAgICAgIC8vIFlvdSBjYW4gc3BlY2lmeSB3aGF0ZXZlciBmaWVsZHMgeW91IGFyZSBleHBlY3RpbmcgdG8gYmUgc3VibWl0dGVkLlxuICAgICAgICAgICAgLy8gZS5nLiBkb21haW4sIHVzZXJuYW1lLCBwYXNzd29yZCwgMkZBIHRva2VuLCBldGMuXG4gICAgICAgICAgICAvLyBZb3UgY2FuIHBhc3MgYW55IEhUTUwgYXR0cmlidXRlIHRvIHRoZSA8aW5wdXQ+IHRhZyB0aHJvdWdoIHRoZSBvYmplY3QuXG4gICAgICAgICAgICBjcmVkZW50aWFsczoge1xuICAgICAgICAgICAgICB0b2tlbjoge1xuICAgICAgICAgICAgICAgIGxhYmVsOiBcIlZlcmlmaWNhdGlvbiBUb2tlblwiLFxuICAgICAgICAgICAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgYXN5bmMgYXV0aG9yaXplKGNyZWRlbnRpYWxzLCBfcmVxKSB7XG5cbiAgICAgICAgICAgICAgbGV0IHVzZXI7XG4gICAgICAgICAgICAgIC8qICB0cnkge1xuICAgICAgICAgICAgICAgICBpZiAoIWNyZWRlbnRpYWxzPy50b2tlbikge1xuICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlRva2VuIG5vdCBmb3VuZFwiKTtcbiAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICBjb25zdCB7IGlkIH0gPSBhd2FpdCB2ZXJpZnlUb2tlbihjcmVkZW50aWFscz8udG9rZW4pO1xuICAgICAgICAgICAgICAgICB1c2VyID0gYXdhaXQgcHJpc21hLnVzZXIuZmluZFVuaXF1ZSh7XG4gICAgICAgICAgICAgICAgICAgd2hlcmU6IHtcbiAgICAgICAgICAgICAgICAgICAgIGlkOiBpZCxcbiAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihlKTtcbiAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiRWl0aGVyIGEgdXNlciBkb2VzIG5vdCBtYXRjaCB0aGUgcHJvdmlkZWQgdG9rZW4gb3IgdGhlIHRva2VuIGlzIGludmFsaWRcIik7XG4gICAgICAgICAgICAgICB9XG4gICAgICAgXG4gICAgICAgICAgICAgICBpZiAoIXVzZXIpIHtcbiAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiRWl0aGVyIGEgdXNlciBkb2VzIG5vdCBtYXRjaCB0aGUgcHJvdmlkZWQgdG9rZW4gb3IgdGhlIHRva2VuIGlzIGludmFsaWRcIik7XG4gICAgICAgICAgICAgICB9XG4gICAgICAgXG4gICAgICAgICAgICAgICBpZiAodXNlci5lbWFpbFZlcmlmaWVkKSB7XG4gICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkVtYWlsIGFscmVhZHkgdmVyaWZpZWRcIik7XG4gICAgICAgICAgICAgICB9XG4gICAgICAgXG4gICAgICAgICAgICAgICB1c2VyID0gYXdhaXQgdXBkYXRlVXNlcih1c2VyLmlkLCB7IGVtYWlsVmVyaWZpZWQ6IG5ldyBEYXRlKCkgfSk7ICovXG5cbiAgICAgICAgICAgICAgcmV0dXJuIHVzZXIgfHwgbnVsbDtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSksXG4gICAgICAgICAgLy8gQ29uZGl0aW9uYWxseSBhZGQgZW50ZXJwcmlzZSBTU08gcHJvdmlkZXJzXG4gICAgICAgICAgLi4uKGdldEVudigpLkVOVEVSUFJJU0VfTElDRU5TRV9LRVkgPyBbXSA6IFtdKSxcbiAgICAgICAgXSxcbiAgICAgICAgY2FsbGJhY2tzOiB7XG4gICAgICAgICAgYXN5bmMgand0KHsgdG9rZW4gfSkge1xuXG4gICAgICAgICAgICBjb25zdCB7IHVzZXJzIH0gPSBhd2FpdCBnZXRTREtGb3JDdXJyZW50VXNlcigpO1xuICAgICAgICAgICAgY29uc3QgdXNlckxpc3QgPSBhd2FpdCB1c2Vycy5saXN0KFtRdWVyeS5lcXVhbChcImVtYWlsXCIsIHRva2VuLmVtYWlsISldKVxuXG4gICAgICAgICAgICBjb25zdCB1c2VyID0gdXNlckxpc3QudXNlcnNbMF0gPz8ge307XG5cbiAgICAgICAgICAgIC8qICBjb25zdCBleGlzdGluZ1VzZXIgPSBhd2FpdCBnZXRVc2VyQnlFbWFpbCh0b2tlbj8uZW1haWwhKTtcbiAgICAgICBcbiAgICAgICAgICAgICBpZiAoIWV4aXN0aW5nVXNlcikge1xuICAgICAgICAgICAgICAgcmV0dXJuIHRva2VuO1xuICAgICAgICAgICAgIH0gKi9cblxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgLi4udG9rZW4sXG4gICAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxuICAgICAgICAgICAgICBwcm9maWxlOiB7IGlkOiB1c2VyLiRpZCwgLi4udXNlciB9LFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIGFzeW5jIHNlc3Npb24oeyBzZXNzaW9uLCB0b2tlbiB9KSB7XG4gICAgICAgICAgICAvL0B0cy1pZ25vcmVcbiAgICAgICAgICAgIHNlc3Npb24udXNlci5pZCA9IHRva2VuPy5pZDtcbiAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxuICAgICAgICAgICAgc2Vzc2lvbi51c2VyID0gdG9rZW4ucHJvZmlsZTtcblxuICAgICAgICAgICAgcmV0dXJuIHNlc3Npb247XG4gICAgICAgICAgfSxcbiAgICAgICAgICAvL0B0cy1pZ25vcmVcbiAgICAgICAgICBhc3luYyBzaWduSW4oeyB1c2VyLCBhY2NvdW50IH06IHsgdXNlcjogYW55OyBhY2NvdW50OiBBY2NvdW50IHwgbnVsbCB9KSB7XG4gICAgICAgICAgICAvKiAgIGlmIChhY2NvdW50Py5wcm92aWRlciA9PT0gXCJjcmVkZW50aWFsc1wiIHx8IGFjY291bnQ/LnByb3ZpZGVyID09PSBcInRva2VuXCIpIHtcbiAgICAgICAgICAgICAgICAvLyBjaGVjayBpZiB1c2VyJ3MgZW1haWwgaXMgdmVyaWZpZWQgb3Igbm90XG4gICAgICAgICAgICAgICAgaWYgKCF1c2VyLmVtYWlsVmVyaWZpZWQgJiYgIUVNQUlMX1ZFUklGSUNBVElPTl9ESVNBQkxFRCkge1xuICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiRW1haWwgVmVyaWZpY2F0aW9uIGlzIFBlbmRpbmdcIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGlmIChFTlRFUlBSSVNFX0xJQ0VOU0VfS0VZKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhhbmRsZVNTT0NhbGxiYWNrKHsgdXNlciwgYWNjb3VudCB9KTtcbiAgICAgICAgICAgICAgfSAqL1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgcGFnZXM6IHtcbiAgICAgICAgICBzaWduSW46IFwiL2F1dGgvbG9naW5cIixcbiAgICAgICAgICBzaWduT3V0OiBcIi9hdXRoL2xvZ291dFwiLFxuICAgICAgICAgIGVycm9yOiBcIi9hdXRoL2xvZ2luXCIsIC8vIEVycm9yIGNvZGUgcGFzc2VkIGluIHF1ZXJ5IHN0cmluZyBhcyA/ZXJyb3I9XG4gICAgICAgIH0sXG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBvcHRpb25zO1xuICB9XG59KSgpO1xuIl19
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
export declare const actionClient: import("next-safe-action").SafeActionClient<string, undefined, undefined, undefined, {}, undefined, undefined, undefined, readonly [], {
|
|
2
|
-
formErrors: string[];
|
|
3
|
-
fieldErrors: {};
|
|
4
|
-
} | undefined, readonly []>;
|
|
5
|
-
export declare const authenticatedActionClient: import("next-safe-action").SafeActionClient<string, undefined, undefined, undefined, {
|
|
6
|
-
user: import("..").Models.User<import("..").Models.Preferences>;
|
|
7
|
-
}, undefined, undefined, undefined, readonly [], {
|
|
8
|
-
formErrors: string[];
|
|
9
|
-
fieldErrors: {};
|
|
10
|
-
} | undefined, readonly []>;
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import { getServerSession } from "next-auth";
|
|
2
|
-
import { DEFAULT_SERVER_ERROR_MESSAGE, createSafeActionClient } from "next-safe-action";
|
|
3
|
-
import { authOptions } from "./authOptions";
|
|
4
|
-
import { AuthenticationError, AuthorizationError } from "../lib/errors";
|
|
5
|
-
import { getSDKForCurrentUser } from "../getSDKForCurrentUser";
|
|
6
|
-
export const actionClient = createSafeActionClient({
|
|
7
|
-
handleServerError(e) {
|
|
8
|
-
/* if (
|
|
9
|
-
e instanceof ResourceNotFoundError ||
|
|
10
|
-
e instanceof AuthorizationError ||
|
|
11
|
-
e instanceof InvalidInputError ||
|
|
12
|
-
e instanceof UnknownError ||
|
|
13
|
-
e instanceof AuthenticationError ||
|
|
14
|
-
e instanceof OperationNotAllowedError ||
|
|
15
|
-
e instanceof AppcondaException
|
|
16
|
-
) {
|
|
17
|
-
return e.message;
|
|
18
|
-
} */
|
|
19
|
-
// eslint-disable-next-line no-console -- This error needs to be logged for debugging server-side errors
|
|
20
|
-
console.error("SERVER ERROR: ", e);
|
|
21
|
-
return DEFAULT_SERVER_ERROR_MESSAGE;
|
|
22
|
-
},
|
|
23
|
-
});
|
|
24
|
-
export const authenticatedActionClient = actionClient.use(async ({ next }) => {
|
|
25
|
-
const options = authOptions();
|
|
26
|
-
const session = options ? await getServerSession(options) : null;
|
|
27
|
-
//@ts-ignore
|
|
28
|
-
if (!session?.user) {
|
|
29
|
-
throw new AuthenticationError("Not authenticated");
|
|
30
|
-
}
|
|
31
|
-
//@ts-ignore
|
|
32
|
-
const userId = session.user.id;
|
|
33
|
-
// Get the SDK and use users.get method to fetch the user
|
|
34
|
-
const { users } = await getSDKForCurrentUser();
|
|
35
|
-
const user = await users.get(userId);
|
|
36
|
-
if (!user) {
|
|
37
|
-
throw new AuthorizationError("User not found");
|
|
38
|
-
}
|
|
39
|
-
return next({ ctx: { user } });
|
|
40
|
-
});
|
|
41
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uQ2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FjdGlvbnMvYWN0aW9uQ2xpZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUM3QyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN4RixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUcvRCxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsc0JBQXNCLENBQUM7SUFDakQsaUJBQWlCLENBQUMsQ0FBUTtRQUN4Qjs7Ozs7Ozs7OztZQVVJO1FBRUosd0dBQXdHO1FBQ3hHLE9BQU8sQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDbkMsT0FBTyw0QkFBNEIsQ0FBQztJQUN0QyxDQUFDO0NBQ0YsQ0FBQyxDQUFDO0FBR0gsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsWUFBWSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFO0lBQzNFLE1BQU0sT0FBTyxHQUFHLFdBQVcsRUFBRSxDQUFDO0lBQzlCLE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ2pFLFlBQVk7SUFDWixJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDO1FBQ25CLE1BQU0sSUFBSSxtQkFBbUIsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRCxZQUFZO0lBQ1osTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7SUFFL0IseURBQXlEO0lBQ3pELE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxNQUFNLG9CQUFvQixFQUFFLENBQUM7SUFDL0MsTUFBTSxJQUFJLEdBQUcsTUFBTSxLQUFLLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3JDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNWLE1BQU0sSUFBSSxrQkFBa0IsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRCxPQUFPLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztBQUNqQyxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIlxuaW1wb3J0IHsgZ2V0U2VydmVyU2Vzc2lvbiB9IGZyb20gXCJuZXh0LWF1dGhcIjtcbmltcG9ydCB7IERFRkFVTFRfU0VSVkVSX0VSUk9SX01FU1NBR0UsIGNyZWF0ZVNhZmVBY3Rpb25DbGllbnQgfSBmcm9tIFwibmV4dC1zYWZlLWFjdGlvblwiO1xuaW1wb3J0IHsgYXV0aE9wdGlvbnMgfSBmcm9tIFwiLi9hdXRoT3B0aW9uc1wiO1xuaW1wb3J0IHsgQXV0aGVudGljYXRpb25FcnJvciwgQXV0aG9yaXphdGlvbkVycm9yIH0gZnJvbSBcIi4uL2xpYi9lcnJvcnNcIjtcbmltcG9ydCB7IGdldFNES0ZvckN1cnJlbnRVc2VyIH0gZnJvbSBcIi4uL2dldFNES0ZvckN1cnJlbnRVc2VyXCI7XG5cblxuZXhwb3J0IGNvbnN0IGFjdGlvbkNsaWVudCA9IGNyZWF0ZVNhZmVBY3Rpb25DbGllbnQoe1xuICBoYW5kbGVTZXJ2ZXJFcnJvcihlOiBFcnJvcikge1xuICAgIC8qIGlmIChcbiAgICAgIGUgaW5zdGFuY2VvZiBSZXNvdXJjZU5vdEZvdW5kRXJyb3IgfHxcbiAgICAgIGUgaW5zdGFuY2VvZiBBdXRob3JpemF0aW9uRXJyb3IgfHxcbiAgICAgIGUgaW5zdGFuY2VvZiBJbnZhbGlkSW5wdXRFcnJvciB8fFxuICAgICAgZSBpbnN0YW5jZW9mIFVua25vd25FcnJvciB8fFxuICAgICAgZSBpbnN0YW5jZW9mIEF1dGhlbnRpY2F0aW9uRXJyb3IgfHxcbiAgICAgIGUgaW5zdGFuY2VvZiBPcGVyYXRpb25Ob3RBbGxvd2VkRXJyb3IgfHxcbiAgICAgIGUgaW5zdGFuY2VvZiBBcHBjb25kYUV4Y2VwdGlvblxuICAgICkge1xuICAgICAgcmV0dXJuIGUubWVzc2FnZTtcbiAgICB9ICovXG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZSAtLSBUaGlzIGVycm9yIG5lZWRzIHRvIGJlIGxvZ2dlZCBmb3IgZGVidWdnaW5nIHNlcnZlci1zaWRlIGVycm9yc1xuICAgIGNvbnNvbGUuZXJyb3IoXCJTRVJWRVIgRVJST1I6IFwiLCBlKTtcbiAgICByZXR1cm4gREVGQVVMVF9TRVJWRVJfRVJST1JfTUVTU0FHRTtcbiAgfSxcbn0pO1xuXG5cbmV4cG9ydCBjb25zdCBhdXRoZW50aWNhdGVkQWN0aW9uQ2xpZW50ID0gYWN0aW9uQ2xpZW50LnVzZShhc3luYyAoeyBuZXh0IH0pID0+IHtcbiAgY29uc3Qgb3B0aW9ucyA9IGF1dGhPcHRpb25zKCk7XG4gIGNvbnN0IHNlc3Npb24gPSBvcHRpb25zID8gYXdhaXQgZ2V0U2VydmVyU2Vzc2lvbihvcHRpb25zKSA6IG51bGw7XG4gIC8vQHRzLWlnbm9yZVxuICBpZiAoIXNlc3Npb24/LnVzZXIpIHtcbiAgICB0aHJvdyBuZXcgQXV0aGVudGljYXRpb25FcnJvcihcIk5vdCBhdXRoZW50aWNhdGVkXCIpO1xuICB9XG5cbiAgLy9AdHMtaWdub3JlXG4gIGNvbnN0IHVzZXJJZCA9IHNlc3Npb24udXNlci5pZDtcblxuICAvLyBHZXQgdGhlIFNESyBhbmQgdXNlIHVzZXJzLmdldCBtZXRob2QgdG8gZmV0Y2ggdGhlIHVzZXJcbiAgY29uc3QgeyB1c2VycyB9ID0gYXdhaXQgZ2V0U0RLRm9yQ3VycmVudFVzZXIoKTtcbiAgY29uc3QgdXNlciA9IGF3YWl0IHVzZXJzLmdldCh1c2VySWQpO1xuICBpZiAoIXVzZXIpIHtcbiAgICB0aHJvdyBuZXcgQXV0aG9yaXphdGlvbkVycm9yKFwiVXNlciBub3QgZm91bmRcIik7XG4gIH1cblxuICByZXR1cm4gbmV4dCh7IGN0eDogeyB1c2VyIH0gfSk7XG59KTtcbiJdfQ==
|
package/dist/actions/auth.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const auth: () => Promise<unknown>;
|
package/dist/actions/auth.js
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { getServerSession } from "next-auth";
|
|
2
|
-
import { authOptions } from "./authOptions";
|
|
3
|
-
export const auth = async () => {
|
|
4
|
-
const options = authOptions();
|
|
5
|
-
return options ? await getServerSession(options) : null;
|
|
6
|
-
};
|
|
7
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hY3Rpb25zL2F1dGgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sV0FBVyxDQUFBO0FBQzVDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFNUMsTUFBTSxDQUFDLE1BQU0sSUFBSSxHQUFHLEtBQUssSUFBRyxFQUFFO0lBQzFCLE1BQU0sT0FBTyxHQUFHLFdBQVcsRUFBRSxDQUFDO0lBQzlCLE9BQU8sT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7QUFDNUQsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ2V0U2VydmVyU2Vzc2lvbiB9IGZyb20gXCJuZXh0LWF1dGhcIlxuaW1wb3J0IHsgYXV0aE9wdGlvbnMgfSBmcm9tIFwiLi9hdXRoT3B0aW9uc1wiO1xuXG5leHBvcnQgY29uc3QgYXV0aCA9IGFzeW5jICgpPT4ge1xuICAgIGNvbnN0IG9wdGlvbnMgPSBhdXRoT3B0aW9ucygpO1xuICAgIHJldHVybiBvcHRpb25zID8gYXdhaXQgZ2V0U2VydmVyU2Vzc2lvbihvcHRpb25zKSA6IG51bGw7XG59XG4iXX0=
|
|
@@ -1,133 +0,0 @@
|
|
|
1
|
-
import CredentialsProvider from "next-auth/providers/credentials";
|
|
2
|
-
import { cookies } from "next/headers";
|
|
3
|
-
import { getAppcondaClient, getAppcondaClientSync } from "../getAppcondaClient";
|
|
4
|
-
import { AccountService } from "../modules";
|
|
5
|
-
/* const getEnv = () => {
|
|
6
|
-
return {
|
|
7
|
-
APPCONDA_ENDPOINT: 'process.env.APPCONDA_ENDPOINT',
|
|
8
|
-
APPCONDA_CLIENT_ENDPOINT: 'process.env.APPCONDA_CLIENT_ENDPOINT',
|
|
9
|
-
_SERVICE_TOKEN: 'process.env._SERVICE_TOKEN',
|
|
10
|
-
ENTERPRISE_LICENSE_KEY: 'process.env.ENTERPRISE_LICENSE_KEY',
|
|
11
|
-
};
|
|
12
|
-
}; */
|
|
13
|
-
const ENCRYPTION_KEY = '51570cb4caa6c1f5f80e6e57a32efb397e9220434532697c94c8f821a7dd1951';
|
|
14
|
-
const ENTERPRISE_LICENSE_KEY = '';
|
|
15
|
-
const EMAIL_VERIFICATION_DISABLED = false;
|
|
16
|
-
export async function signIn({ userName, password }) {
|
|
17
|
-
const adminClient = await getAppcondaClient();
|
|
18
|
-
const account = new Account(adminClient);
|
|
19
|
-
const session = await account.createEmailPasswordSession(userName, password);
|
|
20
|
-
const c = await cookies();
|
|
21
|
-
c.set('a_session', session.secret, {
|
|
22
|
-
path: "/",
|
|
23
|
-
httpOnly: true,
|
|
24
|
-
sameSite: "strict",
|
|
25
|
-
secure: true,
|
|
26
|
-
});
|
|
27
|
-
return session;
|
|
28
|
-
}
|
|
29
|
-
export const authOptions = (() => {
|
|
30
|
-
let options = null;
|
|
31
|
-
return () => {
|
|
32
|
-
if (options == null) {
|
|
33
|
-
options = {
|
|
34
|
-
providers: [
|
|
35
|
-
CredentialsProvider({
|
|
36
|
-
id: "credentials",
|
|
37
|
-
// The name to display on the sign in form (e.g. "Sign in with...")
|
|
38
|
-
name: "Credentials",
|
|
39
|
-
// The credentials is used to generate a suitable form on the sign in page.
|
|
40
|
-
// You can specify whatever fields you are expecting to be submitted.
|
|
41
|
-
// e.g. domain, username, password, 2FA token, etc.
|
|
42
|
-
// You can pass any HTML attribute to the <input> tag through the object.
|
|
43
|
-
credentials: {
|
|
44
|
-
email: {
|
|
45
|
-
label: "Email Address",
|
|
46
|
-
type: "email",
|
|
47
|
-
placeholder: "Your email address",
|
|
48
|
-
},
|
|
49
|
-
password: {
|
|
50
|
-
label: "Password",
|
|
51
|
-
type: "password",
|
|
52
|
-
placeholder: "Your password",
|
|
53
|
-
},
|
|
54
|
-
totpCode: { label: "Two-factor Code", type: "input", placeholder: "Code from authenticator app" },
|
|
55
|
-
backupCode: { label: "Backup Code", type: "input", placeholder: "Two-factor backup code" },
|
|
56
|
-
},
|
|
57
|
-
async authorize(credentials, _req) {
|
|
58
|
-
const adminClient = getAppcondaClientSync();
|
|
59
|
-
const accountService = new AccountService(adminClient);
|
|
60
|
-
const session = await accountService.CredentialLogin(credentials);
|
|
61
|
-
return session;
|
|
62
|
-
},
|
|
63
|
-
}),
|
|
64
|
-
CredentialsProvider({
|
|
65
|
-
id: "token",
|
|
66
|
-
// The name to display on the sign in form (e.g. "Sign in with...")
|
|
67
|
-
name: "Token",
|
|
68
|
-
// The credentials is used to generate a suitable form on the sign in page.
|
|
69
|
-
// You can specify whatever fields you are expecting to be submitted.
|
|
70
|
-
// e.g. domain, username, password, 2FA token, etc.
|
|
71
|
-
// You can pass any HTML attribute to the <input> tag through the object.
|
|
72
|
-
credentials: {
|
|
73
|
-
token: {
|
|
74
|
-
label: "Verification Token",
|
|
75
|
-
type: "string",
|
|
76
|
-
},
|
|
77
|
-
},
|
|
78
|
-
async authorize(credentials, _req) {
|
|
79
|
-
const adminClient = getAppcondaClientSync();
|
|
80
|
-
const accountService = new AccountService(adminClient);
|
|
81
|
-
const token = credentials?.token;
|
|
82
|
-
const user = await accountService.TokenLogin({ token: token });
|
|
83
|
-
return user;
|
|
84
|
-
},
|
|
85
|
-
}),
|
|
86
|
-
// Conditionally add enterprise SSO providers
|
|
87
|
-
// ...(ENTERPRISE_LICENSE_KEY ? getSSOProviders() : []),
|
|
88
|
-
],
|
|
89
|
-
callbacks: {
|
|
90
|
-
async jwt({ token }) {
|
|
91
|
-
const adminClient = getAppcondaClientSync();
|
|
92
|
-
const accountService = new AccountService(adminClient);
|
|
93
|
-
const existingUser = await accountService.GetUserByEmail({ email: token?.email });
|
|
94
|
-
if (!existingUser) {
|
|
95
|
-
return token;
|
|
96
|
-
}
|
|
97
|
-
return {
|
|
98
|
-
...token,
|
|
99
|
-
profile: { id: existingUser.id },
|
|
100
|
-
};
|
|
101
|
-
},
|
|
102
|
-
async session({ session, token }) {
|
|
103
|
-
// @ts-expect-error
|
|
104
|
-
session.user.id = token?.id;
|
|
105
|
-
// @ts-expect-error
|
|
106
|
-
session.user = token.profile;
|
|
107
|
-
return session;
|
|
108
|
-
},
|
|
109
|
-
async signIn({ user, account }) {
|
|
110
|
-
if (account?.provider === "credentials" || account?.provider === "token") {
|
|
111
|
-
// check if user's email is verified or not
|
|
112
|
-
if (!user.emailVerified && !EMAIL_VERIFICATION_DISABLED) {
|
|
113
|
-
throw new Error("Email Verification is Pending");
|
|
114
|
-
}
|
|
115
|
-
return true;
|
|
116
|
-
}
|
|
117
|
-
/* if (ENTERPRISE_LICENSE_KEY) {
|
|
118
|
-
return handleSSOCallback({ user, account });
|
|
119
|
-
} */
|
|
120
|
-
return true;
|
|
121
|
-
},
|
|
122
|
-
},
|
|
123
|
-
pages: {
|
|
124
|
-
signIn: "/auth/login",
|
|
125
|
-
signOut: "/auth/logout",
|
|
126
|
-
error: "/auth/login", // Error code passed in query string as ?error=
|
|
127
|
-
},
|
|
128
|
-
};
|
|
129
|
-
}
|
|
130
|
-
return options;
|
|
131
|
-
};
|
|
132
|
-
})();
|
|
133
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aE9wdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYWN0aW9ucy9hdXRoT3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLG1CQUFtQixNQUFNLGlDQUFpQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDdkMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFLaEYsT0FBTyxFQUFFLGNBQWMsRUFBUyxNQUFNLFlBQVksQ0FBQztBQUVuRDs7Ozs7OztLQU9LO0FBRUwsTUFBTSxjQUFjLEdBQUMsa0VBQWtFLENBQUM7QUFDeEYsTUFBTSxzQkFBc0IsR0FBRyxFQUFFLENBQUM7QUFDbEMsTUFBTSwyQkFBMkIsR0FBRyxLQUFLLENBQUM7QUFFMUMsTUFBTSxDQUFDLEtBQUssVUFBVSxNQUFNLENBQUMsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUEwQztJQUN6RixNQUFNLFdBQVcsR0FBRyxNQUFNLGlCQUFpQixFQUFFLENBQUM7SUFFOUMsTUFBTSxPQUFPLEdBQUcsSUFBSSxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7SUFFekMsTUFBTSxPQUFPLEdBQUcsTUFBTSxPQUFPLENBQUMsMEJBQTBCLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBRTdFLE1BQU0sQ0FBQyxHQUFHLE1BQU0sT0FBTyxFQUFFLENBQUM7SUFFMUIsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLE1BQU0sRUFBRTtRQUNqQyxJQUFJLEVBQUUsR0FBRztRQUNULFFBQVEsRUFBRSxJQUFJO1FBQ2QsUUFBUSxFQUFFLFFBQVE7UUFDbEIsTUFBTSxFQUFFLElBQUk7S0FDYixDQUFDLENBQUM7SUFFSCxPQUFPLE9BQU8sQ0FBQztBQUVqQixDQUFDO0FBSUQsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLENBQUMs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QUUsRUFBRTt5QkFDakMsQ0FBQztvQkFDSixDQUFDO29CQUNELEtBQUssQ0FBQyxPQUFPLENBQUMsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFO3dCQUM5QixtQkFBbUI7d0JBQ25CLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEtBQUssRUFBRSxFQUFFLENBQUM7d0JBQzVCLG1CQUFtQjt3QkFDbkIsT0FBTyxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDO3dCQUU3QixPQUFPLE9BQU8sQ0FBQztvQkFDakIsQ0FBQztvQkFDRCxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBcUM7d0JBQy9ELElBQUksT0FBTyxFQUFFLFFBQVEsS0FBSyxhQUFhLElBQUksT0FBTyxFQUFFLFFBQVEsS0FBSyxPQUFPLEVBQUUsQ0FBQzs0QkFDekUsMkNBQTJDOzRCQUMzQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsSUFBSSxDQUFDLDJCQUEyQixFQUFFLENBQUM7Z0NBQ3hELE1BQU0sSUFBSSxLQUFLLENBQUMsK0JBQStCLENBQUMsQ0FBQzs0QkFDbkQsQ0FBQzs0QkFDRCxPQUFPLElBQUksQ0FBQzt3QkFDZCxDQUFDO3dCQUNEOzs0QkFFSTt3QkFDSixPQUFPLElBQUksQ0FBQztvQkFDZCxDQUFDO2lCQUNGO2dCQUNELEtBQUssRUFBRTtvQkFDTCxNQUFNLEVBQUUsYUFBYTtvQkFDckIsT0FBTyxFQUFFLGNBQWM7b0JBQ3ZCLEtBQUssRUFBRSxhQUFhLEVBQUUsK0NBQStDO2lCQUN0RTthQUNGLENBQUE7UUFDSCxDQUFDO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQyxDQUFBO0FBQ0gsQ0FBQyxDQUFDLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQWNjb3VudCwgTmV4dEF1dGhPcHRpb25zIH0gZnJvbSBcIm5leHQtYXV0aFwiO1xuaW1wb3J0IENyZWRlbnRpYWxzUHJvdmlkZXIgZnJvbSBcIm5leHQtYXV0aC9wcm92aWRlcnMvY3JlZGVudGlhbHNcIjtcbmltcG9ydCB7IGNvb2tpZXMgfSBmcm9tIFwibmV4dC9oZWFkZXJzXCI7XG5pbXBvcnQgeyBnZXRBcHBjb25kYUNsaWVudCwgZ2V0QXBwY29uZGFDbGllbnRTeW5jIH0gZnJvbSBcIi4uL2dldEFwcGNvbmRhQ2xpZW50XCI7XG5cbmltcG9ydCB7IGdldEVudiB9IGZyb20gXCIuLi9saWIvZW52XCI7XG5pbXBvcnQgeyBnZXRTREtGb3JDdXJyZW50VXNlciB9IGZyb20gXCIuLi9nZXRTREtGb3JDdXJyZW50VXNlclwiO1xuaW1wb3J0IHsgUXVlcnkgfSBmcm9tIFwiLi4vcXVlcnlcIjtcbmltcG9ydCB7IEFjY291bnRTZXJ2aWNlLCBUVXNlciB9IGZyb20gXCIuLi9tb2R1bGVzXCI7XG5cbi8qIGNvbnN0IGdldEVudiA9ICgpID0+IHtcbiAgcmV0dXJuIHtcbiAgICBBUFBDT05EQV9FTkRQT0lOVDogJ3Byb2Nlc3MuZW52LkFQUENPTkRBX0VORFBPSU5UJyxcbiAgICBBUFBDT05EQV9DTElFTlRfRU5EUE9JTlQ6ICdwcm9jZXNzLmVudi5BUFBDT05EQV9DTElFTlRfRU5EUE9JTlQnLFxuICAgIF9TRVJWSUNFX1RPS0VOOiAncHJvY2Vzcy5lbnYuX1NFUlZJQ0VfVE9LRU4nLFxuICAgIEVOVEVSUFJJU0VfTElDRU5TRV9LRVk6ICdwcm9jZXNzLmVudi5FTlRFUlBSSVNFX0xJQ0VOU0VfS0VZJyxcbiAgfTtcbn07ICovXG5cbmNvbnN0IEVOQ1JZUFRJT05fS0VZPSc1MTU3MGNiNGNhYTZjMWY1ZjgwZTZlNTdhMzJlZmIzOTdlOTIyMDQzNDUzMjY5N2M5NGM4ZjgyMWE3ZGQxOTUxJztcbmNvbnN0IEVOVEVSUFJJU0VfTElDRU5TRV9LRVkgPSAnJztcbmNvbnN0IEVNQUlMX1ZFUklGSUNBVElPTl9ESVNBQkxFRCA9IGZhbHNlO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2lnbkluKHsgdXNlck5hbWUsIHBhc3N3b3JkIH06IHsgdXNlck5hbWU6IHN0cmluZywgcGFzc3dvcmQ6IHN0cmluZyB9KSB7XG4gIGNvbnN0IGFkbWluQ2xpZW50ID0gYXdhaXQgZ2V0QXBwY29uZGFDbGllbnQoKTtcblxuICBjb25zdCBhY2NvdW50ID0gbmV3IEFjY291bnQoYWRtaW5DbGllbnQpO1xuXG4gIGNvbnN0IHNlc3Npb24gPSBhd2FpdCBhY2NvdW50LmNyZWF0ZUVtYWlsUGFzc3dvcmRTZXNzaW9uKHVzZXJOYW1lLCBwYXNzd29yZCk7XG5cbiAgY29uc3QgYyA9IGF3YWl0IGNvb2tpZXMoKTtcblxuICBjLnNldCgnYV9zZXNzaW9uJywgc2Vzc2lvbi5zZWNyZXQsIHtcbiAgICBwYXRoOiBcIi9cIixcbiAgICBodHRwT25seTogdHJ1ZSxcbiAgICBzYW1lU2l0ZTogXCJzdHJpY3RcIixcbiAgICBzZWN1cmU6IHRydWUsXG4gIH0pO1xuXG4gIHJldHVybiBzZXNzaW9uO1xuXG59XG5cblxuXG5leHBvcnQgY29uc3QgYXV0aE9wdGlvbnMgPSAoKCkgPT4ge1xuICBsZXQgb3B0aW9ucyA6IGFueT0gbnVsbDtcblxuXG4gIHJldHVybiAoKSA9PiB7XG4gICBcblxuICAgIGlmIChvcHRpb25zID09IG51bGwpIHtcbiAgICAgIG9wdGlvbnMgPSB7XG4gICAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICAgIENyZWRlbnRpYWxzUHJvdmlkZXIoe1xuICAgICAgICAgICAgaWQ6IFwiY3JlZGVudGlhbHNcIixcbiAgICAgICAgICAgIC8vIFRoZSBuYW1lIHRvIGRpc3BsYXkgb24gdGhlIHNpZ24gaW4gZm9ybSAoZS5nLiBcIlNpZ24gaW4gd2l0aC4uLlwiKVxuICAgICAgICAgICAgbmFtZTogXCJDcmVkZW50aWFsc1wiLFxuICAgICAgICAgICAgLy8gVGhlIGNyZWRlbnRpYWxzIGlzIHVzZWQgdG8gZ2VuZXJhdGUgYSBzdWl0YWJsZSBmb3JtIG9uIHRoZSBzaWduIGluIHBhZ2UuXG4gICAgICAgICAgICAvLyBZb3UgY2FuIHNwZWNpZnkgd2hhdGV2ZXIgZmllbGRzIHlvdSBhcmUgZXhwZWN0aW5nIHRvIGJlIHN1Ym1pdHRlZC5cbiAgICAgICAgICAgIC8vIGUuZy4gZG9tYWluLCB1c2VybmFtZSwgcGFzc3dvcmQsIDJGQSB0b2tlbiwgZXRjLlxuICAgICAgICAgICAgLy8gWW91IGNhbiBwYXNzIGFueSBIVE1MIGF0dHJpYnV0ZSB0byB0aGUgPGlucHV0PiB0YWcgdGhyb3VnaCB0aGUgb2JqZWN0LlxuICAgICAgICAgICAgY3JlZGVudGlhbHM6IHtcbiAgICAgICAgICAgICAgZW1haWw6IHtcbiAgICAgICAgICAgICAgICBsYWJlbDogXCJFbWFpbCBBZGRyZXNzXCIsXG4gICAgICAgICAgICAgICAgdHlwZTogXCJlbWFpbFwiLFxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyOiBcIllvdXIgZW1haWwgYWRkcmVzc1wiLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBwYXNzd29yZDoge1xuICAgICAgICAgICAgICAgIGxhYmVsOiBcIlBhc3N3b3JkXCIsXG4gICAgICAgICAgICAgICAgdHlwZTogXCJwYXNzd29yZFwiLFxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyOiBcIllvdXIgcGFzc3dvcmRcIixcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgdG90cENvZGU6IHsgbGFiZWw6IFwiVHdvLWZhY3RvciBDb2RlXCIsIHR5cGU6IFwiaW5wdXRcIiwgcGxhY2Vob2xkZXI6IFwiQ29kZSBmcm9tIGF1dGhlbnRpY2F0b3IgYXBwXCIgfSxcbiAgICAgICAgICAgICAgYmFja3VwQ29kZTogeyBsYWJlbDogXCJCYWNrdXAgQ29kZVwiLCB0eXBlOiBcImlucHV0XCIsIHBsYWNlaG9sZGVyOiBcIlR3by1mYWN0b3IgYmFja3VwIGNvZGVcIiB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGFzeW5jIGF1dGhvcml6ZShjcmVkZW50aWFscywgX3JlcSkge1xuICAgICAgICAgICAgICBjb25zdCBhZG1pbkNsaWVudCA9ICBnZXRBcHBjb25kYUNsaWVudFN5bmMoKTtcbiAgICAgICAgICAgICAgY29uc3QgYWNjb3VudFNlcnZpY2UgPSBuZXcgQWNjb3VudFNlcnZpY2UoYWRtaW5DbGllbnQpO1xuICAgICAgICAgICAgICBjb25zdCBzZXNzaW9uID0gYXdhaXQgYWNjb3VudFNlcnZpY2UuQ3JlZGVudGlhbExvZ2luKGNyZWRlbnRpYWxzIGFzIGFueSk7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgICAgcmV0dXJuIHNlc3Npb247XG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0pLFxuICAgICAgICAgIENyZWRlbnRpYWxzUHJvdmlkZXIoe1xuICAgICAgICAgICAgaWQ6IFwidG9rZW5cIixcbiAgICAgICAgICAgIC8vIFRoZSBuYW1lIHRvIGRpc3BsYXkgb24gdGhlIHNpZ24gaW4gZm9ybSAoZS5nLiBcIlNpZ24gaW4gd2l0aC4uLlwiKVxuICAgICAgICAgICAgbmFtZTogXCJUb2tlblwiLFxuICAgICAgICAgICAgLy8gVGhlIGNyZWRlbnRpYWxzIGlzIHVzZWQgdG8gZ2VuZXJhdGUgYSBzdWl0YWJsZSBmb3JtIG9uIHRoZSBzaWduIGluIHBhZ2UuXG4gICAgICAgICAgICAvLyBZb3UgY2FuIHNwZWNpZnkgd2hhdGV2ZXIgZmllbGRzIHlvdSBhcmUgZXhwZWN0aW5nIHRvIGJlIHN1Ym1pdHRlZC5cbiAgICAgICAgICAgIC8vIGUuZy4gZG9tYWluLCB1c2VybmFtZSwgcGFzc3dvcmQsIDJGQSB0b2tlbiwgZXRjLlxuICAgICAgICAgICAgLy8gWW91IGNhbiBwYXNzIGFueSBIVE1MIGF0dHJpYnV0ZSB0byB0aGUgPGlucHV0PiB0YWcgdGhyb3VnaCB0aGUgb2JqZWN0LlxuICAgICAgICAgICAgY3JlZGVudGlhbHM6IHtcbiAgICAgICAgICAgICAgdG9rZW46IHtcbiAgICAgICAgICAgICAgICBsYWJlbDogXCJWZXJpZmljYXRpb24gVG9rZW5cIixcbiAgICAgICAgICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGFzeW5jIGF1dGhvcml6ZShjcmVkZW50aWFscywgX3JlcSkge1xuICAgICAgICAgICAgICBjb25zdCBhZG1pbkNsaWVudCA9ICBnZXRBcHBjb25kYUNsaWVudFN5bmMoKTtcbiAgICAgICAgICAgICAgY29uc3QgYWNjb3VudFNlcnZpY2UgPSBuZXcgQWNjb3VudFNlcnZpY2UoYWRtaW5DbGllbnQpO1xuICAgICAgICAgICAgIFxuICAgICAgICAgICAgICBjb25zdCB0b2tlbiA9IGNyZWRlbnRpYWxzPy50b2tlbjtcbiAgICAgICAgICAgICAgY29uc3QgdXNlciA9IGF3YWl0IGFjY291bnRTZXJ2aWNlLlRva2VuTG9naW4oe3Rva2VuOiB0b2tlbiF9KTtcbiAgICAgIFxuICAgICAgICAgICAgICByZXR1cm4gdXNlcjtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSksXG4gICAgICAgICAgLy8gQ29uZGl0aW9uYWxseSBhZGQgZW50ZXJwcmlzZSBTU08gcHJvdmlkZXJzXG4gICAgICAgICAvLyAuLi4oRU5URVJQUklTRV9MSUNFTlNFX0tFWSA/IGdldFNTT1Byb3ZpZGVycygpIDogW10pLFxuICAgICAgICBdLFxuICAgICAgICBjYWxsYmFja3M6IHtcbiAgICAgICAgICBhc3luYyBqd3QoeyB0b2tlbiB9KSB7XG4gICAgICAgICAgICBjb25zdCBhZG1pbkNsaWVudCA9ICBnZXRBcHBjb25kYUNsaWVudFN5bmMoKTtcbiAgICAgICAgICAgIGNvbnN0IGFjY291bnRTZXJ2aWNlID0gbmV3IEFjY291bnRTZXJ2aWNlKGFkbWluQ2xpZW50KTtcbiAgICAgICAgICAgIGNvbnN0IGV4aXN0aW5nVXNlciA9IGF3YWl0IGFjY291bnRTZXJ2aWNlLkdldFVzZXJCeUVtYWlsKHtlbWFpbDogdG9rZW4/LmVtYWlsIX0pO1xuICAgICAgXG4gICAgICAgICAgICBpZiAoIWV4aXN0aW5nVXNlcikge1xuICAgICAgICAgICAgICByZXR1cm4gdG9rZW47XG4gICAgICAgICAgICB9XG4gICAgICBcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIC4uLnRva2VuLFxuICAgICAgICAgICAgICBwcm9maWxlOiB7IGlkOiBleGlzdGluZ1VzZXIuaWQgfSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfSxcbiAgICAgICAgICBhc3luYyBzZXNzaW9uKHsgc2Vzc2lvbiwgdG9rZW4gfSkge1xuICAgICAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvclxuICAgICAgICAgICAgc2Vzc2lvbi51c2VyLmlkID0gdG9rZW4/LmlkO1xuICAgICAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvclxuICAgICAgICAgICAgc2Vzc2lvbi51c2VyID0gdG9rZW4ucHJvZmlsZTtcbiAgICAgIFxuICAgICAgICAgICAgcmV0dXJuIHNlc3Npb247XG4gICAgICAgICAgfSxcbiAgICAgICAgICBhc3luYyBzaWduSW4oeyB1c2VyLCBhY2NvdW50IH06IHsgdXNlcjogVFVzZXI7IGFjY291bnQ6IEFjY291bnQgfSkge1xuICAgICAgICAgICAgaWYgKGFjY291bnQ/LnByb3ZpZGVyID09PSBcImNyZWRlbnRpYWxzXCIgfHwgYWNjb3VudD8ucHJvdmlkZXIgPT09IFwidG9rZW5cIikge1xuICAgICAgICAgICAgICAvLyBjaGVjayBpZiB1c2VyJ3MgZW1haWwgaXMgdmVyaWZpZWQgb3Igbm90XG4gICAgICAgICAgICAgIGlmICghdXNlci5lbWFpbFZlcmlmaWVkICYmICFFTUFJTF9WRVJJRklDQVRJT05fRElTQUJMRUQpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJFbWFpbCBWZXJpZmljYXRpb24gaXMgUGVuZGluZ1wiKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8qIGlmIChFTlRFUlBSSVNFX0xJQ0VOU0VfS0VZKSB7XG4gICAgICAgICAgICAgIHJldHVybiBoYW5kbGVTU09DYWxsYmFjayh7IHVzZXIsIGFjY291bnQgfSk7XG4gICAgICAgICAgICB9ICovXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBwYWdlczoge1xuICAgICAgICAgIHNpZ25JbjogXCIvYXV0aC9sb2dpblwiLFxuICAgICAgICAgIHNpZ25PdXQ6IFwiL2F1dGgvbG9nb3V0XCIsXG4gICAgICAgICAgZXJyb3I6IFwiL2F1dGgvbG9naW5cIiwgLy8gRXJyb3IgY29kZSBwYXNzZWQgaW4gcXVlcnkgc3RyaW5nIGFzID9lcnJvcj1cbiAgICAgICAgfSxcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG9wdGlvbnM7XG4gIH1cbn0pKCk7XG4iXX0=
|
package/dist/actions/index.d.ts
DELETED
package/dist/actions/index.js
DELETED
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
export * from "./actionClient";
|
|
2
|
-
export * from "./auth";
|
|
3
|
-
export * from "./nextAuthHandler";
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYWN0aW9ucy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsUUFBUSxDQUFDO0FBQ3ZCLGNBQWMsbUJBQW1CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9hY3Rpb25DbGllbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2F1dGhcIjtcbmV4cG9ydCAqIGZyb20gXCIuL25leHRBdXRoSGFuZGxlclwiO1xuIl19
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const getHandler: () => any;
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import NextAuth from "next-auth";
|
|
2
|
-
import { authOptions } from "./authOptions";
|
|
3
|
-
export const getHandler = () => {
|
|
4
|
-
return NextAuth(authOptions());
|
|
5
|
-
};
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV4dEF1dGhIYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FjdGlvbnMvbmV4dEF1dGhIYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sUUFBUSxNQUFNLFdBQVcsQ0FBQztBQUNqQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTVDLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxHQUFHLEVBQUU7SUFDM0IsT0FBTyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQTtBQUNsQyxDQUFDLENBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuaW1wb3J0IE5leHRBdXRoIGZyb20gXCJuZXh0LWF1dGhcIjtcbmltcG9ydCB7IGF1dGhPcHRpb25zIH0gZnJvbSBcIi4vYXV0aE9wdGlvbnNcIjtcblxuZXhwb3J0IGNvbnN0IGdldEhhbmRsZXIgPSAoKSA9PiB7XG4gICAgcmV0dXJuIE5leHRBdXRoKGF1dGhPcHRpb25zKCkpXG59IDtcblxuIl19
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function Cache(): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor;
|