naystack 1.4.16 → 1.4.20

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