naystack 1.4.16 → 1.4.21

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 (87) hide show
  1. package/dist/auth/email/client.cjs.js +69 -12
  2. package/dist/auth/email/client.esm.js +69 -12
  3. package/dist/auth/email/index.cjs.js +74 -15
  4. package/dist/auth/email/index.esm.js +74 -15
  5. package/dist/auth/email/routes/delete.cjs.js +56 -4
  6. package/dist/auth/email/routes/delete.esm.js +56 -4
  7. package/dist/auth/email/routes/get.cjs.js +54 -2
  8. package/dist/auth/email/routes/get.esm.js +54 -2
  9. package/dist/auth/email/routes/post.cjs.js +59 -6
  10. package/dist/auth/email/routes/post.esm.js +59 -6
  11. package/dist/auth/email/routes/put.cjs.js +54 -4
  12. package/dist/auth/email/routes/put.esm.js +54 -4
  13. package/dist/auth/email/token.cjs.js +51 -2
  14. package/dist/auth/email/token.esm.js +51 -2
  15. package/dist/auth/email/types.d.mts +1 -7
  16. package/dist/auth/email/types.d.ts +1 -7
  17. package/dist/auth/email/utils.cjs.js +58 -5
  18. package/dist/auth/email/utils.d.mts +2 -2
  19. package/dist/auth/email/utils.d.ts +2 -2
  20. package/dist/auth/email/utils.esm.js +58 -5
  21. package/dist/auth/google/get.cjs.js +57 -7
  22. package/dist/auth/google/get.d.mts +1 -3
  23. package/dist/auth/google/get.d.ts +1 -3
  24. package/dist/auth/google/get.esm.js +57 -7
  25. package/dist/auth/google/index.cjs.js +57 -7
  26. package/dist/auth/google/index.d.mts +0 -5
  27. package/dist/auth/google/index.d.ts +0 -5
  28. package/dist/auth/google/index.esm.js +57 -7
  29. package/dist/auth/index.cjs.js +89 -31
  30. package/dist/auth/index.esm.js +89 -31
  31. package/dist/auth/instagram/client.cjs.js +54 -1
  32. package/dist/auth/instagram/client.d.mts +1 -1
  33. package/dist/auth/instagram/client.d.ts +1 -1
  34. package/dist/auth/instagram/client.esm.js +52 -1
  35. package/dist/auth/instagram/index.cjs.js +58 -9
  36. package/dist/auth/instagram/index.d.mts +0 -2
  37. package/dist/auth/instagram/index.d.ts +0 -2
  38. package/dist/auth/instagram/index.esm.js +58 -9
  39. package/dist/auth/instagram/route.cjs.js +58 -9
  40. package/dist/auth/instagram/route.d.mts +1 -1
  41. package/dist/auth/instagram/route.d.ts +1 -1
  42. package/dist/auth/instagram/route.esm.js +58 -9
  43. package/dist/auth/instagram/utils.cjs.js +52 -1
  44. package/dist/auth/instagram/utils.esm.js +50 -1
  45. package/dist/client/index.cjs.js +50 -1
  46. package/dist/client/index.esm.js +50 -1
  47. package/dist/client/seo.cjs.js +52 -1
  48. package/dist/client/seo.esm.js +50 -1
  49. package/dist/env.cjs.js +101 -0
  50. package/dist/env.d.mts +24 -0
  51. package/dist/env.d.ts +24 -0
  52. package/dist/env.esm.js +74 -0
  53. package/dist/file/client.cjs.js +52 -1
  54. package/dist/file/client.esm.js +52 -1
  55. package/dist/file/index.cjs.js +82 -28
  56. package/dist/file/index.d.mts +0 -2
  57. package/dist/file/index.d.ts +0 -2
  58. package/dist/file/index.esm.js +82 -28
  59. package/dist/file/put.cjs.js +65 -11
  60. package/dist/file/put.d.mts +0 -2
  61. package/dist/file/put.d.ts +0 -2
  62. package/dist/file/put.esm.js +65 -11
  63. package/dist/file/setup.cjs.js +82 -28
  64. package/dist/file/setup.d.mts +0 -7
  65. package/dist/file/setup.d.ts +0 -7
  66. package/dist/file/setup.esm.js +82 -28
  67. package/dist/file/utils.cjs.js +70 -17
  68. package/dist/file/utils.d.mts +6 -10
  69. package/dist/file/utils.d.ts +6 -10
  70. package/dist/file/utils.esm.js +70 -17
  71. package/dist/graphql/client.cjs.js +57 -3
  72. package/dist/graphql/client.d.mts +1 -1
  73. package/dist/graphql/client.d.ts +1 -1
  74. package/dist/graphql/client.esm.js +57 -3
  75. package/dist/graphql/index.cjs.js +107 -3
  76. package/dist/graphql/index.d.mts +1 -0
  77. package/dist/graphql/index.d.ts +1 -0
  78. package/dist/graphql/index.esm.js +107 -3
  79. package/dist/graphql/init.cjs.js +53 -2
  80. package/dist/graphql/init.esm.js +53 -2
  81. package/dist/graphql/server.cjs.js +52 -1
  82. package/dist/graphql/server.esm.js +52 -1
  83. package/dist/graphql/utils.cjs.js +54 -1
  84. package/dist/graphql/utils.d.mts +10 -3
  85. package/dist/graphql/utils.d.ts +10 -3
  86. package/dist/graphql/utils.esm.js +54 -1
  87. package/package.json +1 -1
@@ -10,6 +10,55 @@ import { cookies } from "next/headers";
10
10
  import { redirect } from "next/navigation";
11
11
  import { NextResponse } from "next/server";
12
12
 
13
+ // src/env.ts
14
+ var getEnvValue = (key) => {
15
+ switch (key) {
16
+ case "NEXT_PUBLIC_GRAPHQL_ENDPOINT" /* NEXT_PUBLIC_GRAPHQL_ENDPOINT */:
17
+ return process.env.NEXT_PUBLIC_GRAPHQL_ENDPOINT;
18
+ case "NEXT_PUBLIC_EMAIL_AUTH_ENDPOINT" /* NEXT_PUBLIC_EMAIL_AUTH_ENDPOINT */:
19
+ return process.env.NEXT_PUBLIC_EMAIL_AUTH_ENDPOINT;
20
+ case "NEXT_PUBLIC_GOOGLE_AUTH_ENDPOINT" /* NEXT_PUBLIC_GOOGLE_AUTH_ENDPOINT */:
21
+ return process.env.NEXT_PUBLIC_GOOGLE_AUTH_ENDPOINT;
22
+ case "NEXT_PUBLIC_INSTAGRAM_AUTH_ENDPOINT" /* NEXT_PUBLIC_INSTAGRAM_AUTH_ENDPOINT */:
23
+ return process.env.NEXT_PUBLIC_INSTAGRAM_AUTH_ENDPOINT;
24
+ case "NEXT_PUBLIC_FILE_ENDPOINT" /* NEXT_PUBLIC_FILE_ENDPOINT */:
25
+ return process.env.NEXT_PUBLIC_FILE_ENDPOINT;
26
+ case "NEXT_PUBLIC_BASE_URL" /* NEXT_PUBLIC_BASE_URL */:
27
+ return process.env.NEXT_PUBLIC_BASE_URL;
28
+ case "REFRESH_KEY" /* REFRESH_KEY */:
29
+ return process.env.REFRESH_KEY;
30
+ case "SIGNING_KEY" /* SIGNING_KEY */:
31
+ return process.env.SIGNING_KEY;
32
+ case "INSTAGRAM_CLIENT_SECRET" /* INSTAGRAM_CLIENT_SECRET */:
33
+ return process.env.INSTAGRAM_CLIENT_SECRET;
34
+ case "INSTAGRAM_CLIENT_ID" /* INSTAGRAM_CLIENT_ID */:
35
+ return process.env.INSTAGRAM_CLIENT_ID;
36
+ case "GOOGLE_CLIENT_SECRET" /* GOOGLE_CLIENT_SECRET */:
37
+ return process.env.GOOGLE_CLIENT_SECRET;
38
+ case "GOOGLE_CLIENT_ID" /* GOOGLE_CLIENT_ID */:
39
+ return process.env.GOOGLE_CLIENT_ID;
40
+ case "TURNSTILE_KEY" /* TURNSTILE_KEY */:
41
+ return process.env.TURNSTILE_KEY;
42
+ case "AWS_ACCESS_KEY_ID" /* AWS_ACCESS_KEY_ID */:
43
+ return process.env.AWS_ACCESS_KEY_ID;
44
+ case "AWS_ACCESS_KEY_SECRET" /* AWS_ACCESS_KEY_SECRET */:
45
+ return process.env.AWS_ACCESS_KEY_SECRET;
46
+ case "AWS_REGION" /* AWS_REGION */:
47
+ return process.env.AWS_REGION;
48
+ case "AWS_BUCKET" /* AWS_BUCKET */:
49
+ return process.env.AWS_BUCKET;
50
+ case "NODE_ENV" /* NODE_ENV */:
51
+ return process.env.NODE_ENV;
52
+ default:
53
+ return process.env[key];
54
+ }
55
+ };
56
+ function getEnv(key, skipCheck) {
57
+ const value = getEnvValue(key);
58
+ if (!skipCheck && !value) throw new Error(`${key} is not defined`);
59
+ return value;
60
+ }
61
+
13
62
  // src/auth/constants.ts
14
63
  var REFRESH_COOKIE_NAME = "refresh";
15
64
 
@@ -22,13 +71,14 @@ function generateRefreshToken(id, refreshKey) {
22
71
  var getGoogleGetRoute = ({
23
72
  getUserIdFromEmail,
24
73
  redirectURL,
25
- errorRedirectURL,
26
- clientId,
27
- clientSecret,
28
- keys
74
+ errorRedirectURL
29
75
  }) => {
30
- const url = process.env.NEXT_PUBLIC_GOOGLE_AUTH_ENDPOINT;
31
- const oauth2Client = new google.auth.OAuth2(clientId, clientSecret, url);
76
+ const url = getEnv("NEXT_PUBLIC_GOOGLE_AUTH_ENDPOINT" /* NEXT_PUBLIC_GOOGLE_AUTH_ENDPOINT */);
77
+ const oauth2Client = new google.auth.OAuth2(
78
+ getEnv("GOOGLE_CLIENT_ID" /* GOOGLE_CLIENT_ID */),
79
+ getEnv("GOOGLE_CLIENT_SECRET" /* GOOGLE_CLIENT_SECRET */),
80
+ url
81
+ );
32
82
  return async (req) => {
33
83
  const code = req.nextUrl.searchParams.get("code");
34
84
  const error = req.nextUrl.searchParams.get("error");
@@ -72,7 +122,7 @@ var getGoogleGetRoute = ({
72
122
  if (id) {
73
123
  res.cookies.set(
74
124
  REFRESH_COOKIE_NAME,
75
- generateRefreshToken(id, keys.refresh),
125
+ generateRefreshToken(id, getEnv("REFRESH_KEY" /* REFRESH_KEY */)),
76
126
  {
77
127
  httpOnly: true,
78
128
  secure: true
@@ -37,6 +37,55 @@ var import_headers = require("next/headers");
37
37
  var import_navigation = require("next/navigation");
38
38
  var import_server = require("next/server");
39
39
 
40
+ // src/env.ts
41
+ var getEnvValue = (key) => {
42
+ switch (key) {
43
+ case "NEXT_PUBLIC_GRAPHQL_ENDPOINT" /* NEXT_PUBLIC_GRAPHQL_ENDPOINT */:
44
+ return process.env.NEXT_PUBLIC_GRAPHQL_ENDPOINT;
45
+ case "NEXT_PUBLIC_EMAIL_AUTH_ENDPOINT" /* NEXT_PUBLIC_EMAIL_AUTH_ENDPOINT */:
46
+ return process.env.NEXT_PUBLIC_EMAIL_AUTH_ENDPOINT;
47
+ case "NEXT_PUBLIC_GOOGLE_AUTH_ENDPOINT" /* NEXT_PUBLIC_GOOGLE_AUTH_ENDPOINT */:
48
+ return process.env.NEXT_PUBLIC_GOOGLE_AUTH_ENDPOINT;
49
+ case "NEXT_PUBLIC_INSTAGRAM_AUTH_ENDPOINT" /* NEXT_PUBLIC_INSTAGRAM_AUTH_ENDPOINT */:
50
+ return process.env.NEXT_PUBLIC_INSTAGRAM_AUTH_ENDPOINT;
51
+ case "NEXT_PUBLIC_FILE_ENDPOINT" /* NEXT_PUBLIC_FILE_ENDPOINT */:
52
+ return process.env.NEXT_PUBLIC_FILE_ENDPOINT;
53
+ case "NEXT_PUBLIC_BASE_URL" /* NEXT_PUBLIC_BASE_URL */:
54
+ return process.env.NEXT_PUBLIC_BASE_URL;
55
+ case "REFRESH_KEY" /* REFRESH_KEY */:
56
+ return process.env.REFRESH_KEY;
57
+ case "SIGNING_KEY" /* SIGNING_KEY */:
58
+ return process.env.SIGNING_KEY;
59
+ case "INSTAGRAM_CLIENT_SECRET" /* INSTAGRAM_CLIENT_SECRET */:
60
+ return process.env.INSTAGRAM_CLIENT_SECRET;
61
+ case "INSTAGRAM_CLIENT_ID" /* INSTAGRAM_CLIENT_ID */:
62
+ return process.env.INSTAGRAM_CLIENT_ID;
63
+ case "GOOGLE_CLIENT_SECRET" /* GOOGLE_CLIENT_SECRET */:
64
+ return process.env.GOOGLE_CLIENT_SECRET;
65
+ case "GOOGLE_CLIENT_ID" /* GOOGLE_CLIENT_ID */:
66
+ return process.env.GOOGLE_CLIENT_ID;
67
+ case "TURNSTILE_KEY" /* TURNSTILE_KEY */:
68
+ return process.env.TURNSTILE_KEY;
69
+ case "AWS_ACCESS_KEY_ID" /* AWS_ACCESS_KEY_ID */:
70
+ return process.env.AWS_ACCESS_KEY_ID;
71
+ case "AWS_ACCESS_KEY_SECRET" /* AWS_ACCESS_KEY_SECRET */:
72
+ return process.env.AWS_ACCESS_KEY_SECRET;
73
+ case "AWS_REGION" /* AWS_REGION */:
74
+ return process.env.AWS_REGION;
75
+ case "AWS_BUCKET" /* AWS_BUCKET */:
76
+ return process.env.AWS_BUCKET;
77
+ case "NODE_ENV" /* NODE_ENV */:
78
+ return process.env.NODE_ENV;
79
+ default:
80
+ return process.env[key];
81
+ }
82
+ };
83
+ function getEnv(key, skipCheck) {
84
+ const value = getEnvValue(key);
85
+ if (!skipCheck && !value) throw new Error(`${key} is not defined`);
86
+ return value;
87
+ }
88
+
40
89
  // src/auth/constants.ts
41
90
  var REFRESH_COOKIE_NAME = "refresh";
42
91
 
@@ -83,9 +132,9 @@ function getUserIdFromRefreshToken(refreshKey, refreshToken) {
83
132
  return null;
84
133
  }
85
134
  function getUserIdFromAccessToken(refreshToken) {
86
- if (refreshToken && process.env.SIGNING_KEY)
135
+ if (refreshToken)
87
136
  try {
88
- const decoded = (0, import_jsonwebtoken.verify)(refreshToken, process.env.SIGNING_KEY);
137
+ const decoded = (0, import_jsonwebtoken.verify)(refreshToken, getEnv("SIGNING_KEY" /* SIGNING_KEY */));
89
138
  if (typeof decoded !== "string" && typeof decoded.id === "number")
90
139
  return decoded.id;
91
140
  } catch (e) {
@@ -121,12 +170,13 @@ async function massageRequest(req, options) {
121
170
  return {
122
171
  error: handleError(400, "Missing password", options.onError)
123
172
  };
124
- if (options.turnstileKey) {
173
+ const turnstileKey = getEnv("TURNSTILE_KEY" /* TURNSTILE_KEY */, true);
174
+ if (turnstileKey) {
125
175
  if (!data.captchaToken)
126
176
  return {
127
177
  error: handleError(400, "Missing captchaToken", options.onError)
128
178
  };
129
- if (!await verifyCaptcha(data.captchaToken, options.turnstileKey))
179
+ if (!await verifyCaptcha(data.captchaToken, turnstileKey))
130
180
  return {
131
181
  error: handleError(400, "Invalid captcha", options.onError)
132
182
  };
@@ -159,17 +209,20 @@ async function verifyCaptcha(token, secret) {
159
209
  }
160
210
  return false;
161
211
  }
162
- var getContext = (keys, req) => {
212
+ var getContext = (req) => {
163
213
  const bearer = req.headers.get("authorization");
164
214
  if (!bearer) {
165
215
  const refresh = req.cookies.get(REFRESH_COOKIE_NAME)?.value;
166
- const userId = getUserIdFromRefreshToken(keys.refresh, refresh);
216
+ const userId = getUserIdFromRefreshToken(
217
+ getEnv("REFRESH_KEY" /* REFRESH_KEY */),
218
+ refresh
219
+ );
167
220
  if (userId) return { userId, isRefreshID: true };
168
221
  return { userId: null };
169
222
  }
170
223
  const token = bearer.slice(7);
171
224
  try {
172
- const res = (0, import_jsonwebtoken2.verify)(token, keys.signing);
225
+ const res = (0, import_jsonwebtoken2.verify)(token, getEnv("SIGNING_KEY" /* SIGNING_KEY */));
173
226
  if (typeof res === "string") {
174
227
  return { userId: null };
175
228
  }
@@ -184,7 +237,7 @@ var getContext = (keys, req) => {
184
237
  // src/auth/email/routes/delete.ts
185
238
  var getDeleteRoute = (options) => async (req) => {
186
239
  if (options.onLogout) {
187
- const ctx = await getContext(options.keys, req);
240
+ const ctx = await getContext(req);
188
241
  const body = await req.json();
189
242
  await options.onLogout?.(ctx.userId, body);
190
243
  }
@@ -194,14 +247,17 @@ var getDeleteRoute = (options) => async (req) => {
194
247
  // src/auth/email/routes/get.ts
195
248
  var getGetRoute = (options) => async (req) => {
196
249
  const refresh = req.cookies.get(REFRESH_COOKIE_NAME)?.value;
197
- const userID = getUserIdFromRefreshToken(options.keys.refresh, refresh);
250
+ const userID = getUserIdFromRefreshToken(
251
+ getEnv("REFRESH_KEY" /* REFRESH_KEY */),
252
+ refresh
253
+ );
198
254
  if (userID) {
199
255
  if (options.onRefresh) {
200
256
  const body = await req.json();
201
257
  await options.onRefresh?.(userID, body);
202
258
  }
203
259
  return getTokenizedResponse(
204
- generateAccessToken(userID, options.keys.signing)
260
+ generateAccessToken(userID, getEnv("SIGNING_KEY" /* SIGNING_KEY */))
205
261
  );
206
262
  }
207
263
  return getTokenizedResponse();
@@ -216,8 +272,11 @@ var getPostRoute = (options) => async (req) => {
216
272
  if (existingUser) {
217
273
  if (await verifyUser(existingUser, data.password)) {
218
274
  return getTokenizedResponse(
219
- generateAccessToken(existingUser.id, options.keys.signing),
220
- generateRefreshToken(existingUser.id, options.keys.refresh)
275
+ generateAccessToken(existingUser.id, getEnv("SIGNING_KEY" /* SIGNING_KEY */)),
276
+ generateRefreshToken(
277
+ existingUser.id,
278
+ getEnv("REFRESH_KEY" /* REFRESH_KEY */)
279
+ )
221
280
  );
222
281
  }
223
282
  return handleError(400, "A user already exists", options.onError);
@@ -232,8 +291,8 @@ var getPostRoute = (options) => async (req) => {
232
291
  await options.onSignUp?.(newUser.id, data);
233
292
  }
234
293
  return getTokenizedResponse(
235
- generateAccessToken(newUser.id, options.keys.signing),
236
- generateRefreshToken(newUser.id, options.keys.refresh)
294
+ generateAccessToken(newUser.id, getEnv("SIGNING_KEY" /* SIGNING_KEY */)),
295
+ generateRefreshToken(newUser.id, getEnv("REFRESH_KEY" /* REFRESH_KEY */))
237
296
  );
238
297
  }
239
298
  return getTokenizedResponse();
@@ -251,8 +310,8 @@ var getPutRoute = (options) => async (req) => {
251
310
  await options.onLogin?.(user.id, data);
252
311
  }
253
312
  return getTokenizedResponse(
254
- generateAccessToken(user.id, options.keys.signing),
255
- generateRefreshToken(user.id, options.keys.refresh)
313
+ generateAccessToken(user.id, getEnv("SIGNING_KEY" /* SIGNING_KEY */)),
314
+ generateRefreshToken(user.id, getEnv("REFRESH_KEY" /* REFRESH_KEY */))
256
315
  );
257
316
  }
258
317
  return handleError(403, "Invalid password", options.onError);
@@ -265,7 +324,7 @@ function getEmailAuthRoutes(options) {
265
324
  POST: getPostRoute(options),
266
325
  PUT: getPutRoute(options),
267
326
  DELETE: getDeleteRoute(options),
268
- getContext: (req) => getContext(options.keys, req)
327
+ getContext
269
328
  };
270
329
  }
271
330
 
@@ -276,13 +335,14 @@ var import_uuid = require("uuid");
276
335
  var getGoogleGetRoute = ({
277
336
  getUserIdFromEmail,
278
337
  redirectURL,
279
- errorRedirectURL,
280
- clientId,
281
- clientSecret,
282
- keys
338
+ errorRedirectURL
283
339
  }) => {
284
- const url = process.env.NEXT_PUBLIC_GOOGLE_AUTH_ENDPOINT;
285
- const oauth2Client = new import_googleapis.google.auth.OAuth2(clientId, clientSecret, url);
340
+ const url = getEnv("NEXT_PUBLIC_GOOGLE_AUTH_ENDPOINT" /* NEXT_PUBLIC_GOOGLE_AUTH_ENDPOINT */);
341
+ const oauth2Client = new import_googleapis.google.auth.OAuth2(
342
+ getEnv("GOOGLE_CLIENT_ID" /* GOOGLE_CLIENT_ID */),
343
+ getEnv("GOOGLE_CLIENT_SECRET" /* GOOGLE_CLIENT_SECRET */),
344
+ url
345
+ );
286
346
  return async (req) => {
287
347
  const code = req.nextUrl.searchParams.get("code");
288
348
  const error = req.nextUrl.searchParams.get("error");
@@ -326,7 +386,7 @@ var getGoogleGetRoute = ({
326
386
  if (id) {
327
387
  res.cookies.set(
328
388
  REFRESH_COOKIE_NAME,
329
- generateRefreshToken(id, keys.refresh),
389
+ generateRefreshToken(id, getEnv("REFRESH_KEY" /* REFRESH_KEY */)),
330
390
  {
331
391
  httpOnly: true,
332
392
  secure: true
@@ -379,7 +439,7 @@ async function getLongLivedToken(code, redirectURL, clientId, clientSecret) {
379
439
  if (shortResData.access_token) {
380
440
  const shortLivedToken = shortResData.access_token;
381
441
  const longRes = await fetch(
382
- `https://graph.instagram.com/access_token?grant_type=ig_exchange_token&access_token=${shortLivedToken}&client_secret=${process.env.INSTAGRAM_CLIENT_SECRET}`
442
+ `https://graph.instagram.com/access_token?grant_type=ig_exchange_token&access_token=${shortLivedToken}&client_secret=${getEnv("INSTAGRAM_CLIENT_SECRET" /* INSTAGRAM_CLIENT_SECRET */)}`
383
443
  );
384
444
  if (longRes.ok) {
385
445
  const longResData = await longRes.json();
@@ -421,9 +481,7 @@ var import_server4 = require("next/server");
421
481
  var getInstagramRoute = ({
422
482
  successRedirectURL,
423
483
  errorRedirectURL,
424
- onUser,
425
- clientSecret,
426
- clientId
484
+ onUser
427
485
  }) => {
428
486
  const handleError2 = (message) => import_server5.NextResponse.redirect(`${errorRedirectURL}?error=${message}`);
429
487
  return async (req) => {
@@ -434,9 +492,9 @@ var getInstagramRoute = ({
434
492
  if (!stateToken || !accessCode) return handleError2("Invalid request");
435
493
  const instagramData = await getLongLivedToken(
436
494
  accessCode,
437
- process.env.NEXT_PUBLIC_INSTAGRAM_AUTH_ENDPOINT,
438
- clientId,
439
- clientSecret
495
+ getEnv("NEXT_PUBLIC_INSTAGRAM_AUTH_ENDPOINT" /* NEXT_PUBLIC_INSTAGRAM_AUTH_ENDPOINT */),
496
+ getEnv("INSTAGRAM_CLIENT_ID" /* INSTAGRAM_CLIENT_ID */),
497
+ getEnv("INSTAGRAM_CLIENT_SECRET" /* INSTAGRAM_CLIENT_SECRET */)
440
498
  );
441
499
  if (!instagramData?.accessToken)
442
500
  return handleError2("Unable to reach Instagram");
@@ -8,6 +8,55 @@ import { cookies } from "next/headers";
8
8
  import { redirect } from "next/navigation";
9
9
  import { NextResponse } from "next/server";
10
10
 
11
+ // src/env.ts
12
+ var getEnvValue = (key) => {
13
+ switch (key) {
14
+ case "NEXT_PUBLIC_GRAPHQL_ENDPOINT" /* NEXT_PUBLIC_GRAPHQL_ENDPOINT */:
15
+ return process.env.NEXT_PUBLIC_GRAPHQL_ENDPOINT;
16
+ case "NEXT_PUBLIC_EMAIL_AUTH_ENDPOINT" /* NEXT_PUBLIC_EMAIL_AUTH_ENDPOINT */:
17
+ return process.env.NEXT_PUBLIC_EMAIL_AUTH_ENDPOINT;
18
+ case "NEXT_PUBLIC_GOOGLE_AUTH_ENDPOINT" /* NEXT_PUBLIC_GOOGLE_AUTH_ENDPOINT */:
19
+ return process.env.NEXT_PUBLIC_GOOGLE_AUTH_ENDPOINT;
20
+ case "NEXT_PUBLIC_INSTAGRAM_AUTH_ENDPOINT" /* NEXT_PUBLIC_INSTAGRAM_AUTH_ENDPOINT */:
21
+ return process.env.NEXT_PUBLIC_INSTAGRAM_AUTH_ENDPOINT;
22
+ case "NEXT_PUBLIC_FILE_ENDPOINT" /* NEXT_PUBLIC_FILE_ENDPOINT */:
23
+ return process.env.NEXT_PUBLIC_FILE_ENDPOINT;
24
+ case "NEXT_PUBLIC_BASE_URL" /* NEXT_PUBLIC_BASE_URL */:
25
+ return process.env.NEXT_PUBLIC_BASE_URL;
26
+ case "REFRESH_KEY" /* REFRESH_KEY */:
27
+ return process.env.REFRESH_KEY;
28
+ case "SIGNING_KEY" /* SIGNING_KEY */:
29
+ return process.env.SIGNING_KEY;
30
+ case "INSTAGRAM_CLIENT_SECRET" /* INSTAGRAM_CLIENT_SECRET */:
31
+ return process.env.INSTAGRAM_CLIENT_SECRET;
32
+ case "INSTAGRAM_CLIENT_ID" /* INSTAGRAM_CLIENT_ID */:
33
+ return process.env.INSTAGRAM_CLIENT_ID;
34
+ case "GOOGLE_CLIENT_SECRET" /* GOOGLE_CLIENT_SECRET */:
35
+ return process.env.GOOGLE_CLIENT_SECRET;
36
+ case "GOOGLE_CLIENT_ID" /* GOOGLE_CLIENT_ID */:
37
+ return process.env.GOOGLE_CLIENT_ID;
38
+ case "TURNSTILE_KEY" /* TURNSTILE_KEY */:
39
+ return process.env.TURNSTILE_KEY;
40
+ case "AWS_ACCESS_KEY_ID" /* AWS_ACCESS_KEY_ID */:
41
+ return process.env.AWS_ACCESS_KEY_ID;
42
+ case "AWS_ACCESS_KEY_SECRET" /* AWS_ACCESS_KEY_SECRET */:
43
+ return process.env.AWS_ACCESS_KEY_SECRET;
44
+ case "AWS_REGION" /* AWS_REGION */:
45
+ return process.env.AWS_REGION;
46
+ case "AWS_BUCKET" /* AWS_BUCKET */:
47
+ return process.env.AWS_BUCKET;
48
+ case "NODE_ENV" /* NODE_ENV */:
49
+ return process.env.NODE_ENV;
50
+ default:
51
+ return process.env[key];
52
+ }
53
+ };
54
+ function getEnv(key, skipCheck) {
55
+ const value = getEnvValue(key);
56
+ if (!skipCheck && !value) throw new Error(`${key} is not defined`);
57
+ return value;
58
+ }
59
+
11
60
  // src/auth/constants.ts
12
61
  var REFRESH_COOKIE_NAME = "refresh";
13
62
 
@@ -54,9 +103,9 @@ function getUserIdFromRefreshToken(refreshKey, refreshToken) {
54
103
  return null;
55
104
  }
56
105
  function getUserIdFromAccessToken(refreshToken) {
57
- if (refreshToken && process.env.SIGNING_KEY)
106
+ if (refreshToken)
58
107
  try {
59
- const decoded = verify(refreshToken, process.env.SIGNING_KEY);
108
+ const decoded = verify(refreshToken, getEnv("SIGNING_KEY" /* SIGNING_KEY */));
60
109
  if (typeof decoded !== "string" && typeof decoded.id === "number")
61
110
  return decoded.id;
62
111
  } catch (e) {
@@ -92,12 +141,13 @@ async function massageRequest(req, options) {
92
141
  return {
93
142
  error: handleError(400, "Missing password", options.onError)
94
143
  };
95
- if (options.turnstileKey) {
144
+ const turnstileKey = getEnv("TURNSTILE_KEY" /* TURNSTILE_KEY */, true);
145
+ if (turnstileKey) {
96
146
  if (!data.captchaToken)
97
147
  return {
98
148
  error: handleError(400, "Missing captchaToken", options.onError)
99
149
  };
100
- if (!await verifyCaptcha(data.captchaToken, options.turnstileKey))
150
+ if (!await verifyCaptcha(data.captchaToken, turnstileKey))
101
151
  return {
102
152
  error: handleError(400, "Invalid captcha", options.onError)
103
153
  };
@@ -130,17 +180,20 @@ async function verifyCaptcha(token, secret) {
130
180
  }
131
181
  return false;
132
182
  }
133
- var getContext = (keys, req) => {
183
+ var getContext = (req) => {
134
184
  const bearer = req.headers.get("authorization");
135
185
  if (!bearer) {
136
186
  const refresh = req.cookies.get(REFRESH_COOKIE_NAME)?.value;
137
- const userId = getUserIdFromRefreshToken(keys.refresh, refresh);
187
+ const userId = getUserIdFromRefreshToken(
188
+ getEnv("REFRESH_KEY" /* REFRESH_KEY */),
189
+ refresh
190
+ );
138
191
  if (userId) return { userId, isRefreshID: true };
139
192
  return { userId: null };
140
193
  }
141
194
  const token = bearer.slice(7);
142
195
  try {
143
- const res = verify2(token, keys.signing);
196
+ const res = verify2(token, getEnv("SIGNING_KEY" /* SIGNING_KEY */));
144
197
  if (typeof res === "string") {
145
198
  return { userId: null };
146
199
  }
@@ -155,7 +208,7 @@ var getContext = (keys, req) => {
155
208
  // src/auth/email/routes/delete.ts
156
209
  var getDeleteRoute = (options) => async (req) => {
157
210
  if (options.onLogout) {
158
- const ctx = await getContext(options.keys, req);
211
+ const ctx = await getContext(req);
159
212
  const body = await req.json();
160
213
  await options.onLogout?.(ctx.userId, body);
161
214
  }
@@ -165,14 +218,17 @@ var getDeleteRoute = (options) => async (req) => {
165
218
  // src/auth/email/routes/get.ts
166
219
  var getGetRoute = (options) => async (req) => {
167
220
  const refresh = req.cookies.get(REFRESH_COOKIE_NAME)?.value;
168
- const userID = getUserIdFromRefreshToken(options.keys.refresh, refresh);
221
+ const userID = getUserIdFromRefreshToken(
222
+ getEnv("REFRESH_KEY" /* REFRESH_KEY */),
223
+ refresh
224
+ );
169
225
  if (userID) {
170
226
  if (options.onRefresh) {
171
227
  const body = await req.json();
172
228
  await options.onRefresh?.(userID, body);
173
229
  }
174
230
  return getTokenizedResponse(
175
- generateAccessToken(userID, options.keys.signing)
231
+ generateAccessToken(userID, getEnv("SIGNING_KEY" /* SIGNING_KEY */))
176
232
  );
177
233
  }
178
234
  return getTokenizedResponse();
@@ -187,8 +243,11 @@ var getPostRoute = (options) => async (req) => {
187
243
  if (existingUser) {
188
244
  if (await verifyUser(existingUser, data.password)) {
189
245
  return getTokenizedResponse(
190
- generateAccessToken(existingUser.id, options.keys.signing),
191
- generateRefreshToken(existingUser.id, options.keys.refresh)
246
+ generateAccessToken(existingUser.id, getEnv("SIGNING_KEY" /* SIGNING_KEY */)),
247
+ generateRefreshToken(
248
+ existingUser.id,
249
+ getEnv("REFRESH_KEY" /* REFRESH_KEY */)
250
+ )
192
251
  );
193
252
  }
194
253
  return handleError(400, "A user already exists", options.onError);
@@ -203,8 +262,8 @@ var getPostRoute = (options) => async (req) => {
203
262
  await options.onSignUp?.(newUser.id, data);
204
263
  }
205
264
  return getTokenizedResponse(
206
- generateAccessToken(newUser.id, options.keys.signing),
207
- generateRefreshToken(newUser.id, options.keys.refresh)
265
+ generateAccessToken(newUser.id, getEnv("SIGNING_KEY" /* SIGNING_KEY */)),
266
+ generateRefreshToken(newUser.id, getEnv("REFRESH_KEY" /* REFRESH_KEY */))
208
267
  );
209
268
  }
210
269
  return getTokenizedResponse();
@@ -222,8 +281,8 @@ var getPutRoute = (options) => async (req) => {
222
281
  await options.onLogin?.(user.id, data);
223
282
  }
224
283
  return getTokenizedResponse(
225
- generateAccessToken(user.id, options.keys.signing),
226
- generateRefreshToken(user.id, options.keys.refresh)
284
+ generateAccessToken(user.id, getEnv("SIGNING_KEY" /* SIGNING_KEY */)),
285
+ generateRefreshToken(user.id, getEnv("REFRESH_KEY" /* REFRESH_KEY */))
227
286
  );
228
287
  }
229
288
  return handleError(403, "Invalid password", options.onError);
@@ -236,7 +295,7 @@ function getEmailAuthRoutes(options) {
236
295
  POST: getPostRoute(options),
237
296
  PUT: getPutRoute(options),
238
297
  DELETE: getDeleteRoute(options),
239
- getContext: (req) => getContext(options.keys, req)
298
+ getContext
240
299
  };
241
300
  }
242
301
 
@@ -247,13 +306,14 @@ import { v4 } from "uuid";
247
306
  var getGoogleGetRoute = ({
248
307
  getUserIdFromEmail,
249
308
  redirectURL,
250
- errorRedirectURL,
251
- clientId,
252
- clientSecret,
253
- keys
309
+ errorRedirectURL
254
310
  }) => {
255
- const url = process.env.NEXT_PUBLIC_GOOGLE_AUTH_ENDPOINT;
256
- const oauth2Client = new google.auth.OAuth2(clientId, clientSecret, url);
311
+ const url = getEnv("NEXT_PUBLIC_GOOGLE_AUTH_ENDPOINT" /* NEXT_PUBLIC_GOOGLE_AUTH_ENDPOINT */);
312
+ const oauth2Client = new google.auth.OAuth2(
313
+ getEnv("GOOGLE_CLIENT_ID" /* GOOGLE_CLIENT_ID */),
314
+ getEnv("GOOGLE_CLIENT_SECRET" /* GOOGLE_CLIENT_SECRET */),
315
+ url
316
+ );
257
317
  return async (req) => {
258
318
  const code = req.nextUrl.searchParams.get("code");
259
319
  const error = req.nextUrl.searchParams.get("error");
@@ -297,7 +357,7 @@ var getGoogleGetRoute = ({
297
357
  if (id) {
298
358
  res.cookies.set(
299
359
  REFRESH_COOKIE_NAME,
300
- generateRefreshToken(id, keys.refresh),
360
+ generateRefreshToken(id, getEnv("REFRESH_KEY" /* REFRESH_KEY */)),
301
361
  {
302
362
  httpOnly: true,
303
363
  secure: true
@@ -350,7 +410,7 @@ async function getLongLivedToken(code, redirectURL, clientId, clientSecret) {
350
410
  if (shortResData.access_token) {
351
411
  const shortLivedToken = shortResData.access_token;
352
412
  const longRes = await fetch(
353
- `https://graph.instagram.com/access_token?grant_type=ig_exchange_token&access_token=${shortLivedToken}&client_secret=${process.env.INSTAGRAM_CLIENT_SECRET}`
413
+ `https://graph.instagram.com/access_token?grant_type=ig_exchange_token&access_token=${shortLivedToken}&client_secret=${getEnv("INSTAGRAM_CLIENT_SECRET" /* INSTAGRAM_CLIENT_SECRET */)}`
354
414
  );
355
415
  if (longRes.ok) {
356
416
  const longResData = await longRes.json();
@@ -392,9 +452,7 @@ import { NextResponse as NextResponse4 } from "next/server";
392
452
  var getInstagramRoute = ({
393
453
  successRedirectURL,
394
454
  errorRedirectURL,
395
- onUser,
396
- clientSecret,
397
- clientId
455
+ onUser
398
456
  }) => {
399
457
  const handleError2 = (message) => NextResponse5.redirect(`${errorRedirectURL}?error=${message}`);
400
458
  return async (req) => {
@@ -405,9 +463,9 @@ var getInstagramRoute = ({
405
463
  if (!stateToken || !accessCode) return handleError2("Invalid request");
406
464
  const instagramData = await getLongLivedToken(
407
465
  accessCode,
408
- process.env.NEXT_PUBLIC_INSTAGRAM_AUTH_ENDPOINT,
409
- clientId,
410
- clientSecret
466
+ getEnv("NEXT_PUBLIC_INSTAGRAM_AUTH_ENDPOINT" /* NEXT_PUBLIC_INSTAGRAM_AUTH_ENDPOINT */),
467
+ getEnv("INSTAGRAM_CLIENT_ID" /* INSTAGRAM_CLIENT_ID */),
468
+ getEnv("INSTAGRAM_CLIENT_SECRET" /* INSTAGRAM_CLIENT_SECRET */)
411
469
  );
412
470
  if (!instagramData?.accessToken)
413
471
  return handleError2("Unable to reach Instagram");
@@ -23,7 +23,60 @@ __export(client_exports, {
23
23
  getInstagramAuthorizationURLSetup: () => getInstagramAuthorizationURLSetup
24
24
  });
25
25
  module.exports = __toCommonJS(client_exports);
26
- var getInstagramAuthorizationURLSetup = (clientId, redirectURL) => (token) => `https://www.instagram.com/oauth/authorize?client_id=${clientId}&response_type=code&enable_fb_login=0&force_authentication=1&scope=instagram_business_basic&state=${token}&redirect_uri=${redirectURL}`;
26
+
27
+ // src/env.ts
28
+ var getEnvValue = (key) => {
29
+ switch (key) {
30
+ case "NEXT_PUBLIC_GRAPHQL_ENDPOINT" /* NEXT_PUBLIC_GRAPHQL_ENDPOINT */:
31
+ return process.env.NEXT_PUBLIC_GRAPHQL_ENDPOINT;
32
+ case "NEXT_PUBLIC_EMAIL_AUTH_ENDPOINT" /* NEXT_PUBLIC_EMAIL_AUTH_ENDPOINT */:
33
+ return process.env.NEXT_PUBLIC_EMAIL_AUTH_ENDPOINT;
34
+ case "NEXT_PUBLIC_GOOGLE_AUTH_ENDPOINT" /* NEXT_PUBLIC_GOOGLE_AUTH_ENDPOINT */:
35
+ return process.env.NEXT_PUBLIC_GOOGLE_AUTH_ENDPOINT;
36
+ case "NEXT_PUBLIC_INSTAGRAM_AUTH_ENDPOINT" /* NEXT_PUBLIC_INSTAGRAM_AUTH_ENDPOINT */:
37
+ return process.env.NEXT_PUBLIC_INSTAGRAM_AUTH_ENDPOINT;
38
+ case "NEXT_PUBLIC_FILE_ENDPOINT" /* NEXT_PUBLIC_FILE_ENDPOINT */:
39
+ return process.env.NEXT_PUBLIC_FILE_ENDPOINT;
40
+ case "NEXT_PUBLIC_BASE_URL" /* NEXT_PUBLIC_BASE_URL */:
41
+ return process.env.NEXT_PUBLIC_BASE_URL;
42
+ case "REFRESH_KEY" /* REFRESH_KEY */:
43
+ return process.env.REFRESH_KEY;
44
+ case "SIGNING_KEY" /* SIGNING_KEY */:
45
+ return process.env.SIGNING_KEY;
46
+ case "INSTAGRAM_CLIENT_SECRET" /* INSTAGRAM_CLIENT_SECRET */:
47
+ return process.env.INSTAGRAM_CLIENT_SECRET;
48
+ case "INSTAGRAM_CLIENT_ID" /* INSTAGRAM_CLIENT_ID */:
49
+ return process.env.INSTAGRAM_CLIENT_ID;
50
+ case "GOOGLE_CLIENT_SECRET" /* GOOGLE_CLIENT_SECRET */:
51
+ return process.env.GOOGLE_CLIENT_SECRET;
52
+ case "GOOGLE_CLIENT_ID" /* GOOGLE_CLIENT_ID */:
53
+ return process.env.GOOGLE_CLIENT_ID;
54
+ case "TURNSTILE_KEY" /* TURNSTILE_KEY */:
55
+ return process.env.TURNSTILE_KEY;
56
+ case "AWS_ACCESS_KEY_ID" /* AWS_ACCESS_KEY_ID */:
57
+ return process.env.AWS_ACCESS_KEY_ID;
58
+ case "AWS_ACCESS_KEY_SECRET" /* AWS_ACCESS_KEY_SECRET */:
59
+ return process.env.AWS_ACCESS_KEY_SECRET;
60
+ case "AWS_REGION" /* AWS_REGION */:
61
+ return process.env.AWS_REGION;
62
+ case "AWS_BUCKET" /* AWS_BUCKET */:
63
+ return process.env.AWS_BUCKET;
64
+ case "NODE_ENV" /* NODE_ENV */:
65
+ return process.env.NODE_ENV;
66
+ default:
67
+ return process.env[key];
68
+ }
69
+ };
70
+ function getEnv(key, skipCheck) {
71
+ const value = getEnvValue(key);
72
+ if (!skipCheck && !value) throw new Error(`${key} is not defined`);
73
+ return value;
74
+ }
75
+
76
+ // src/auth/instagram/client.ts
77
+ var getInstagramAuthorizationURLSetup = (redirectURL) => (token) => `https://www.instagram.com/oauth/authorize?client_id=${getEnv(
78
+ "INSTAGRAM_CLIENT_ID" /* INSTAGRAM_CLIENT_ID */
79
+ )}&response_type=code&enable_fb_login=0&force_authentication=1&scope=instagram_business_basic&state=${token}&redirect_uri=${redirectURL}`;
27
80
  // Annotate the CommonJS export names for ESM import in node:
28
81
  0 && (module.exports = {
29
82
  getInstagramAuthorizationURLSetup
@@ -1,3 +1,3 @@
1
- declare const getInstagramAuthorizationURLSetup: (clientId: string, redirectURL: string) => (token: string) => string;
1
+ declare const getInstagramAuthorizationURLSetup: (redirectURL: string) => (token: string) => string;
2
2
 
3
3
  export { getInstagramAuthorizationURLSetup };
@@ -1,3 +1,3 @@
1
- declare const getInstagramAuthorizationURLSetup: (clientId: string, redirectURL: string) => (token: string) => string;
1
+ declare const getInstagramAuthorizationURLSetup: (redirectURL: string) => (token: string) => string;
2
2
 
3
3
  export { getInstagramAuthorizationURLSetup };