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
@@ -38,6 +38,55 @@ var import_headers = require("next/headers");
38
38
  var import_navigation = require("next/navigation");
39
39
  var import_server = require("next/server");
40
40
 
41
+ // src/env.ts
42
+ var getEnvValue = (key) => {
43
+ switch (key) {
44
+ case "NEXT_PUBLIC_GRAPHQL_ENDPOINT" /* NEXT_PUBLIC_GRAPHQL_ENDPOINT */:
45
+ return process.env.NEXT_PUBLIC_GRAPHQL_ENDPOINT;
46
+ case "NEXT_PUBLIC_EMAIL_AUTH_ENDPOINT" /* NEXT_PUBLIC_EMAIL_AUTH_ENDPOINT */:
47
+ return process.env.NEXT_PUBLIC_EMAIL_AUTH_ENDPOINT;
48
+ case "NEXT_PUBLIC_GOOGLE_AUTH_ENDPOINT" /* NEXT_PUBLIC_GOOGLE_AUTH_ENDPOINT */:
49
+ return process.env.NEXT_PUBLIC_GOOGLE_AUTH_ENDPOINT;
50
+ case "NEXT_PUBLIC_INSTAGRAM_AUTH_ENDPOINT" /* NEXT_PUBLIC_INSTAGRAM_AUTH_ENDPOINT */:
51
+ return process.env.NEXT_PUBLIC_INSTAGRAM_AUTH_ENDPOINT;
52
+ case "NEXT_PUBLIC_FILE_ENDPOINT" /* NEXT_PUBLIC_FILE_ENDPOINT */:
53
+ return process.env.NEXT_PUBLIC_FILE_ENDPOINT;
54
+ case "NEXT_PUBLIC_BASE_URL" /* NEXT_PUBLIC_BASE_URL */:
55
+ return process.env.NEXT_PUBLIC_BASE_URL;
56
+ case "REFRESH_KEY" /* REFRESH_KEY */:
57
+ return process.env.REFRESH_KEY;
58
+ case "SIGNING_KEY" /* SIGNING_KEY */:
59
+ return process.env.SIGNING_KEY;
60
+ case "INSTAGRAM_CLIENT_SECRET" /* INSTAGRAM_CLIENT_SECRET */:
61
+ return process.env.INSTAGRAM_CLIENT_SECRET;
62
+ case "INSTAGRAM_CLIENT_ID" /* INSTAGRAM_CLIENT_ID */:
63
+ return process.env.INSTAGRAM_CLIENT_ID;
64
+ case "GOOGLE_CLIENT_SECRET" /* GOOGLE_CLIENT_SECRET */:
65
+ return process.env.GOOGLE_CLIENT_SECRET;
66
+ case "GOOGLE_CLIENT_ID" /* GOOGLE_CLIENT_ID */:
67
+ return process.env.GOOGLE_CLIENT_ID;
68
+ case "TURNSTILE_KEY" /* TURNSTILE_KEY */:
69
+ return process.env.TURNSTILE_KEY;
70
+ case "AWS_ACCESS_KEY_ID" /* AWS_ACCESS_KEY_ID */:
71
+ return process.env.AWS_ACCESS_KEY_ID;
72
+ case "AWS_ACCESS_KEY_SECRET" /* AWS_ACCESS_KEY_SECRET */:
73
+ return process.env.AWS_ACCESS_KEY_SECRET;
74
+ case "AWS_REGION" /* AWS_REGION */:
75
+ return process.env.AWS_REGION;
76
+ case "AWS_BUCKET" /* AWS_BUCKET */:
77
+ return process.env.AWS_BUCKET;
78
+ case "NODE_ENV" /* NODE_ENV */:
79
+ return process.env.NODE_ENV;
80
+ default:
81
+ return process.env[key];
82
+ }
83
+ };
84
+ function getEnv(key, skipCheck) {
85
+ const value = getEnvValue(key);
86
+ if (!skipCheck && !value) throw new Error(`${key} is not defined`);
87
+ return value;
88
+ }
89
+
41
90
  // src/auth/constants.ts
42
91
  var REFRESH_COOKIE_NAME = "refresh";
43
92
 
@@ -59,17 +108,20 @@ function getUserIdFromRefreshToken(refreshKey, refreshToken) {
59
108
  var import_server2 = require("next/server");
60
109
 
61
110
  // src/auth/email/utils.ts
62
- var getContext = (keys, req) => {
111
+ var getContext = (req) => {
63
112
  const bearer = req.headers.get("authorization");
64
113
  if (!bearer) {
65
114
  const refresh = req.cookies.get(REFRESH_COOKIE_NAME)?.value;
66
- const userId = getUserIdFromRefreshToken(keys.refresh, refresh);
115
+ const userId = getUserIdFromRefreshToken(
116
+ getEnv("REFRESH_KEY" /* REFRESH_KEY */),
117
+ refresh
118
+ );
67
119
  if (userId) return { userId, isRefreshID: true };
68
120
  return { userId: null };
69
121
  }
70
122
  const token = bearer.slice(7);
71
123
  try {
72
- const res = (0, import_jsonwebtoken2.verify)(token, keys.signing);
124
+ const res = (0, import_jsonwebtoken2.verify)(token, getEnv("SIGNING_KEY" /* SIGNING_KEY */));
73
125
  if (typeof res === "string") {
74
126
  return { userId: null };
75
127
  }
@@ -84,29 +136,31 @@ var getContext = (keys, req) => {
84
136
  // src/file/utils.ts
85
137
  var import_client_s3 = require("@aws-sdk/client-s3");
86
138
  var import_s3_request_presigner = require("@aws-sdk/s3-request-presigner");
87
- var getS3Client = (options) => new import_client_s3.S3Client({
88
- region: options.region,
139
+ var getS3Client = () => new import_client_s3.S3Client({
140
+ region: getEnv("AWS_REGION" /* AWS_REGION */),
89
141
  credentials: {
90
- accessKeyId: options.awsKey,
91
- secretAccessKey: options.awsSecret
142
+ accessKeyId: getEnv("AWS_ACCESS_KEY_ID" /* AWS_ACCESS_KEY_ID */),
143
+ secretAccessKey: getEnv("AWS_ACCESS_KEY_SECRET" /* AWS_ACCESS_KEY_SECRET */)
92
144
  }
93
145
  });
94
- var getURLPrefix = (options) => `https://${options.bucket}.s3.${options.region}.amazonaws.com/`;
146
+ var URL_PREFIX = `https://${getEnv("AWS_BUCKET" /* AWS_BUCKET */)}.s3.${getEnv(
147
+ "AWS_REGION" /* AWS_REGION */
148
+ )}.amazonaws.com/`;
95
149
  function getKey(keys) {
96
150
  return typeof keys === "string" ? keys : keys.join("/");
97
151
  }
98
- var getUploadURL = (client, Bucket) => (keys) => {
152
+ var getUploadURL = (client) => (keys) => {
99
153
  const command = new import_client_s3.PutObjectCommand({
100
- Bucket,
154
+ Bucket: getEnv("AWS_BUCKET" /* AWS_BUCKET */),
101
155
  Key: getKey(keys),
102
156
  ACL: "public-read"
103
157
  });
104
158
  return (0, import_s3_request_presigner.getSignedUrl)(client, command, { expiresIn: 300 });
105
159
  };
106
- var getDownloadURL = (options) => (keys) => {
107
- return `${getURLPrefix(options)}${getKey(keys)}`;
160
+ var getDownloadURL = (keys) => {
161
+ return `${URL_PREFIX}${getKey(keys)}`;
108
162
  };
109
- var uploadFile = (client, options) => async (keys, {
163
+ var uploadFile = (client) => async (keys, {
110
164
  url,
111
165
  blob
112
166
  }) => {
@@ -114,18 +168,18 @@ var uploadFile = (client, options) => async (keys, {
114
168
  const fileBlob = blob || await fetch(url).then((file) => file.blob());
115
169
  if (fileBlob) {
116
170
  const key = getKey(keys);
117
- await uploadBlob(client, options.bucket)(fileBlob, key);
118
- return getDownloadURL(options)(key);
171
+ await uploadBlob(client)(fileBlob, key);
172
+ return getDownloadURL(key);
119
173
  }
120
174
  return null;
121
175
  };
122
- var deleteFile = (client, options) => async (url) => {
123
- const key = url.split(getURLPrefix(options))[1];
176
+ var deleteFile = (client) => async (url) => {
177
+ const key = url.split(URL_PREFIX)[1];
124
178
  if (key) {
125
179
  try {
126
180
  await client.send(
127
181
  new import_client_s3.DeleteObjectCommand({
128
- Bucket: options.bucket,
182
+ Bucket: getEnv("AWS_BUCKET" /* AWS_BUCKET */),
129
183
  Key: key
130
184
  })
131
185
  );
@@ -136,11 +190,11 @@ var deleteFile = (client, options) => async (url) => {
136
190
  }
137
191
  return false;
138
192
  };
139
- var uploadBlob = (client, Bucket) => async (file, key) => {
193
+ var uploadBlob = (client) => async (file, key) => {
140
194
  const fileBuffer = await file.arrayBuffer();
141
195
  return client.send(
142
196
  new import_client_s3.PutObjectCommand({
143
- Bucket,
197
+ Bucket: getEnv("AWS_BUCKET" /* AWS_BUCKET */),
144
198
  Key: key,
145
199
  ACL: "public-read",
146
200
  Body: Buffer.from(fileBuffer),
@@ -152,7 +206,7 @@ var uploadBlob = (client, Bucket) => async (file, key) => {
152
206
 
153
207
  // src/file/put.ts
154
208
  var getFileUploadPutRoute = (options, client) => async (req) => {
155
- const ctx = getContext(options.keys, req);
209
+ const ctx = getContext(req);
156
210
  if (!ctx?.userId || ctx.isRefreshID)
157
211
  return import_server3.NextResponse.json({ error: "unauthorized" }, { status: 401 });
158
212
  const formData = await req.formData();
@@ -165,8 +219,8 @@ var getFileUploadPutRoute = (options, client) => async (req) => {
165
219
  data: typeof data === "string" ? JSON.parse(data) : void 0
166
220
  };
167
221
  const fileKey = options.getKey ? await options.getKey(inputData) : (0, import_uuid.v4)();
168
- const url = getDownloadURL(options)(fileKey);
169
- await uploadBlob(client, options.bucket)(file, fileKey);
222
+ const url = getDownloadURL(fileKey);
223
+ await uploadBlob(client)(file, fileKey);
170
224
  const onUploadResponse = await options.onUpload({
171
225
  ...inputData,
172
226
  url
@@ -179,13 +233,13 @@ var getFileUploadPutRoute = (options, client) => async (req) => {
179
233
 
180
234
  // src/file/setup.ts
181
235
  function setupFileUpload(options) {
182
- const client = getS3Client(options);
236
+ const client = getS3Client();
183
237
  return {
184
238
  PUT: getFileUploadPutRoute(options, client),
185
- uploadFile: uploadFile(client, options),
186
- deleteFile: deleteFile(client, options),
187
- getUploadURL: getUploadURL(client, options.bucket),
188
- getDownloadURL: getDownloadURL(options)
239
+ uploadFile: uploadFile(client),
240
+ deleteFile: deleteFile(client),
241
+ getUploadURL: getUploadURL(client),
242
+ getDownloadURL
189
243
  };
190
244
  }
191
245
  // Annotate the CommonJS export names for ESM import in node:
@@ -1,13 +1,6 @@
1
1
  import * as next_server from 'next/server';
2
- import { AuthKeys } from '../auth/email/types.mjs';
3
- import '../auth/types.mjs';
4
2
 
5
3
  interface SetupFileUploadOptions {
6
- keys: AuthKeys;
7
- region: string;
8
- bucket: string;
9
- awsSecret: string;
10
- awsKey: string;
11
4
  getKey?: (data: {
12
5
  type: string;
13
6
  userId: number;
@@ -1,13 +1,6 @@
1
1
  import * as next_server from 'next/server';
2
- import { AuthKeys } from '../auth/email/types.js';
3
- import '../auth/types.js';
4
2
 
5
3
  interface SetupFileUploadOptions {
6
- keys: AuthKeys;
7
- region: string;
8
- bucket: string;
9
- awsSecret: string;
10
- awsKey: string;
11
4
  getKey?: (data: {
12
5
  type: string;
13
6
  userId: number;
@@ -12,6 +12,55 @@ import { cookies } from "next/headers";
12
12
  import { redirect } from "next/navigation";
13
13
  import { NextResponse } from "next/server";
14
14
 
15
+ // src/env.ts
16
+ var getEnvValue = (key) => {
17
+ switch (key) {
18
+ case "NEXT_PUBLIC_GRAPHQL_ENDPOINT" /* NEXT_PUBLIC_GRAPHQL_ENDPOINT */:
19
+ return process.env.NEXT_PUBLIC_GRAPHQL_ENDPOINT;
20
+ case "NEXT_PUBLIC_EMAIL_AUTH_ENDPOINT" /* NEXT_PUBLIC_EMAIL_AUTH_ENDPOINT */:
21
+ return process.env.NEXT_PUBLIC_EMAIL_AUTH_ENDPOINT;
22
+ case "NEXT_PUBLIC_GOOGLE_AUTH_ENDPOINT" /* NEXT_PUBLIC_GOOGLE_AUTH_ENDPOINT */:
23
+ return process.env.NEXT_PUBLIC_GOOGLE_AUTH_ENDPOINT;
24
+ case "NEXT_PUBLIC_INSTAGRAM_AUTH_ENDPOINT" /* NEXT_PUBLIC_INSTAGRAM_AUTH_ENDPOINT */:
25
+ return process.env.NEXT_PUBLIC_INSTAGRAM_AUTH_ENDPOINT;
26
+ case "NEXT_PUBLIC_FILE_ENDPOINT" /* NEXT_PUBLIC_FILE_ENDPOINT */:
27
+ return process.env.NEXT_PUBLIC_FILE_ENDPOINT;
28
+ case "NEXT_PUBLIC_BASE_URL" /* NEXT_PUBLIC_BASE_URL */:
29
+ return process.env.NEXT_PUBLIC_BASE_URL;
30
+ case "REFRESH_KEY" /* REFRESH_KEY */:
31
+ return process.env.REFRESH_KEY;
32
+ case "SIGNING_KEY" /* SIGNING_KEY */:
33
+ return process.env.SIGNING_KEY;
34
+ case "INSTAGRAM_CLIENT_SECRET" /* INSTAGRAM_CLIENT_SECRET */:
35
+ return process.env.INSTAGRAM_CLIENT_SECRET;
36
+ case "INSTAGRAM_CLIENT_ID" /* INSTAGRAM_CLIENT_ID */:
37
+ return process.env.INSTAGRAM_CLIENT_ID;
38
+ case "GOOGLE_CLIENT_SECRET" /* GOOGLE_CLIENT_SECRET */:
39
+ return process.env.GOOGLE_CLIENT_SECRET;
40
+ case "GOOGLE_CLIENT_ID" /* GOOGLE_CLIENT_ID */:
41
+ return process.env.GOOGLE_CLIENT_ID;
42
+ case "TURNSTILE_KEY" /* TURNSTILE_KEY */:
43
+ return process.env.TURNSTILE_KEY;
44
+ case "AWS_ACCESS_KEY_ID" /* AWS_ACCESS_KEY_ID */:
45
+ return process.env.AWS_ACCESS_KEY_ID;
46
+ case "AWS_ACCESS_KEY_SECRET" /* AWS_ACCESS_KEY_SECRET */:
47
+ return process.env.AWS_ACCESS_KEY_SECRET;
48
+ case "AWS_REGION" /* AWS_REGION */:
49
+ return process.env.AWS_REGION;
50
+ case "AWS_BUCKET" /* AWS_BUCKET */:
51
+ return process.env.AWS_BUCKET;
52
+ case "NODE_ENV" /* NODE_ENV */:
53
+ return process.env.NODE_ENV;
54
+ default:
55
+ return process.env[key];
56
+ }
57
+ };
58
+ function getEnv(key, skipCheck) {
59
+ const value = getEnvValue(key);
60
+ if (!skipCheck && !value) throw new Error(`${key} is not defined`);
61
+ return value;
62
+ }
63
+
15
64
  // src/auth/constants.ts
16
65
  var REFRESH_COOKIE_NAME = "refresh";
17
66
 
@@ -33,17 +82,20 @@ function getUserIdFromRefreshToken(refreshKey, refreshToken) {
33
82
  import { NextResponse as NextResponse2 } from "next/server";
34
83
 
35
84
  // src/auth/email/utils.ts
36
- var getContext = (keys, req) => {
85
+ var getContext = (req) => {
37
86
  const bearer = req.headers.get("authorization");
38
87
  if (!bearer) {
39
88
  const refresh = req.cookies.get(REFRESH_COOKIE_NAME)?.value;
40
- const userId = getUserIdFromRefreshToken(keys.refresh, refresh);
89
+ const userId = getUserIdFromRefreshToken(
90
+ getEnv("REFRESH_KEY" /* REFRESH_KEY */),
91
+ refresh
92
+ );
41
93
  if (userId) return { userId, isRefreshID: true };
42
94
  return { userId: null };
43
95
  }
44
96
  const token = bearer.slice(7);
45
97
  try {
46
- const res = verify2(token, keys.signing);
98
+ const res = verify2(token, getEnv("SIGNING_KEY" /* SIGNING_KEY */));
47
99
  if (typeof res === "string") {
48
100
  return { userId: null };
49
101
  }
@@ -62,29 +114,31 @@ import {
62
114
  S3Client
63
115
  } from "@aws-sdk/client-s3";
64
116
  import { getSignedUrl } from "@aws-sdk/s3-request-presigner";
65
- var getS3Client = (options) => new S3Client({
66
- region: options.region,
117
+ var getS3Client = () => new S3Client({
118
+ region: getEnv("AWS_REGION" /* AWS_REGION */),
67
119
  credentials: {
68
- accessKeyId: options.awsKey,
69
- secretAccessKey: options.awsSecret
120
+ accessKeyId: getEnv("AWS_ACCESS_KEY_ID" /* AWS_ACCESS_KEY_ID */),
121
+ secretAccessKey: getEnv("AWS_ACCESS_KEY_SECRET" /* AWS_ACCESS_KEY_SECRET */)
70
122
  }
71
123
  });
72
- var getURLPrefix = (options) => `https://${options.bucket}.s3.${options.region}.amazonaws.com/`;
124
+ var URL_PREFIX = `https://${getEnv("AWS_BUCKET" /* AWS_BUCKET */)}.s3.${getEnv(
125
+ "AWS_REGION" /* AWS_REGION */
126
+ )}.amazonaws.com/`;
73
127
  function getKey(keys) {
74
128
  return typeof keys === "string" ? keys : keys.join("/");
75
129
  }
76
- var getUploadURL = (client, Bucket) => (keys) => {
130
+ var getUploadURL = (client) => (keys) => {
77
131
  const command = new PutObjectCommand({
78
- Bucket,
132
+ Bucket: getEnv("AWS_BUCKET" /* AWS_BUCKET */),
79
133
  Key: getKey(keys),
80
134
  ACL: "public-read"
81
135
  });
82
136
  return getSignedUrl(client, command, { expiresIn: 300 });
83
137
  };
84
- var getDownloadURL = (options) => (keys) => {
85
- return `${getURLPrefix(options)}${getKey(keys)}`;
138
+ var getDownloadURL = (keys) => {
139
+ return `${URL_PREFIX}${getKey(keys)}`;
86
140
  };
87
- var uploadFile = (client, options) => async (keys, {
141
+ var uploadFile = (client) => async (keys, {
88
142
  url,
89
143
  blob
90
144
  }) => {
@@ -92,18 +146,18 @@ var uploadFile = (client, options) => async (keys, {
92
146
  const fileBlob = blob || await fetch(url).then((file) => file.blob());
93
147
  if (fileBlob) {
94
148
  const key = getKey(keys);
95
- await uploadBlob(client, options.bucket)(fileBlob, key);
96
- return getDownloadURL(options)(key);
149
+ await uploadBlob(client)(fileBlob, key);
150
+ return getDownloadURL(key);
97
151
  }
98
152
  return null;
99
153
  };
100
- var deleteFile = (client, options) => async (url) => {
101
- const key = url.split(getURLPrefix(options))[1];
154
+ var deleteFile = (client) => async (url) => {
155
+ const key = url.split(URL_PREFIX)[1];
102
156
  if (key) {
103
157
  try {
104
158
  await client.send(
105
159
  new DeleteObjectCommand({
106
- Bucket: options.bucket,
160
+ Bucket: getEnv("AWS_BUCKET" /* AWS_BUCKET */),
107
161
  Key: key
108
162
  })
109
163
  );
@@ -114,11 +168,11 @@ var deleteFile = (client, options) => async (url) => {
114
168
  }
115
169
  return false;
116
170
  };
117
- var uploadBlob = (client, Bucket) => async (file, key) => {
171
+ var uploadBlob = (client) => async (file, key) => {
118
172
  const fileBuffer = await file.arrayBuffer();
119
173
  return client.send(
120
174
  new PutObjectCommand({
121
- Bucket,
175
+ Bucket: getEnv("AWS_BUCKET" /* AWS_BUCKET */),
122
176
  Key: key,
123
177
  ACL: "public-read",
124
178
  Body: Buffer.from(fileBuffer),
@@ -130,7 +184,7 @@ var uploadBlob = (client, Bucket) => async (file, key) => {
130
184
 
131
185
  // src/file/put.ts
132
186
  var getFileUploadPutRoute = (options, client) => async (req) => {
133
- const ctx = getContext(options.keys, req);
187
+ const ctx = getContext(req);
134
188
  if (!ctx?.userId || ctx.isRefreshID)
135
189
  return NextResponse3.json({ error: "unauthorized" }, { status: 401 });
136
190
  const formData = await req.formData();
@@ -143,8 +197,8 @@ var getFileUploadPutRoute = (options, client) => async (req) => {
143
197
  data: typeof data === "string" ? JSON.parse(data) : void 0
144
198
  };
145
199
  const fileKey = options.getKey ? await options.getKey(inputData) : v4();
146
- const url = getDownloadURL(options)(fileKey);
147
- await uploadBlob(client, options.bucket)(file, fileKey);
200
+ const url = getDownloadURL(fileKey);
201
+ await uploadBlob(client)(file, fileKey);
148
202
  const onUploadResponse = await options.onUpload({
149
203
  ...inputData,
150
204
  url
@@ -157,13 +211,13 @@ var getFileUploadPutRoute = (options, client) => async (req) => {
157
211
 
158
212
  // src/file/setup.ts
159
213
  function setupFileUpload(options) {
160
- const client = getS3Client(options);
214
+ const client = getS3Client();
161
215
  return {
162
216
  PUT: getFileUploadPutRoute(options, client),
163
- uploadFile: uploadFile(client, options),
164
- deleteFile: deleteFile(client, options),
165
- getUploadURL: getUploadURL(client, options.bucket),
166
- getDownloadURL: getDownloadURL(options)
217
+ uploadFile: uploadFile(client),
218
+ deleteFile: deleteFile(client),
219
+ getUploadURL: getUploadURL(client),
220
+ getDownloadURL
167
221
  };
168
222
  }
169
223
  export {
@@ -30,29 +30,82 @@ __export(utils_exports, {
30
30
  module.exports = __toCommonJS(utils_exports);
31
31
  var import_client_s3 = require("@aws-sdk/client-s3");
32
32
  var import_s3_request_presigner = require("@aws-sdk/s3-request-presigner");
33
- var getS3Client = (options) => new import_client_s3.S3Client({
34
- region: options.region,
33
+
34
+ // src/env.ts
35
+ var getEnvValue = (key) => {
36
+ switch (key) {
37
+ case "NEXT_PUBLIC_GRAPHQL_ENDPOINT" /* NEXT_PUBLIC_GRAPHQL_ENDPOINT */:
38
+ return process.env.NEXT_PUBLIC_GRAPHQL_ENDPOINT;
39
+ case "NEXT_PUBLIC_EMAIL_AUTH_ENDPOINT" /* NEXT_PUBLIC_EMAIL_AUTH_ENDPOINT */:
40
+ return process.env.NEXT_PUBLIC_EMAIL_AUTH_ENDPOINT;
41
+ case "NEXT_PUBLIC_GOOGLE_AUTH_ENDPOINT" /* NEXT_PUBLIC_GOOGLE_AUTH_ENDPOINT */:
42
+ return process.env.NEXT_PUBLIC_GOOGLE_AUTH_ENDPOINT;
43
+ case "NEXT_PUBLIC_INSTAGRAM_AUTH_ENDPOINT" /* NEXT_PUBLIC_INSTAGRAM_AUTH_ENDPOINT */:
44
+ return process.env.NEXT_PUBLIC_INSTAGRAM_AUTH_ENDPOINT;
45
+ case "NEXT_PUBLIC_FILE_ENDPOINT" /* NEXT_PUBLIC_FILE_ENDPOINT */:
46
+ return process.env.NEXT_PUBLIC_FILE_ENDPOINT;
47
+ case "NEXT_PUBLIC_BASE_URL" /* NEXT_PUBLIC_BASE_URL */:
48
+ return process.env.NEXT_PUBLIC_BASE_URL;
49
+ case "REFRESH_KEY" /* REFRESH_KEY */:
50
+ return process.env.REFRESH_KEY;
51
+ case "SIGNING_KEY" /* SIGNING_KEY */:
52
+ return process.env.SIGNING_KEY;
53
+ case "INSTAGRAM_CLIENT_SECRET" /* INSTAGRAM_CLIENT_SECRET */:
54
+ return process.env.INSTAGRAM_CLIENT_SECRET;
55
+ case "INSTAGRAM_CLIENT_ID" /* INSTAGRAM_CLIENT_ID */:
56
+ return process.env.INSTAGRAM_CLIENT_ID;
57
+ case "GOOGLE_CLIENT_SECRET" /* GOOGLE_CLIENT_SECRET */:
58
+ return process.env.GOOGLE_CLIENT_SECRET;
59
+ case "GOOGLE_CLIENT_ID" /* GOOGLE_CLIENT_ID */:
60
+ return process.env.GOOGLE_CLIENT_ID;
61
+ case "TURNSTILE_KEY" /* TURNSTILE_KEY */:
62
+ return process.env.TURNSTILE_KEY;
63
+ case "AWS_ACCESS_KEY_ID" /* AWS_ACCESS_KEY_ID */:
64
+ return process.env.AWS_ACCESS_KEY_ID;
65
+ case "AWS_ACCESS_KEY_SECRET" /* AWS_ACCESS_KEY_SECRET */:
66
+ return process.env.AWS_ACCESS_KEY_SECRET;
67
+ case "AWS_REGION" /* AWS_REGION */:
68
+ return process.env.AWS_REGION;
69
+ case "AWS_BUCKET" /* AWS_BUCKET */:
70
+ return process.env.AWS_BUCKET;
71
+ case "NODE_ENV" /* NODE_ENV */:
72
+ return process.env.NODE_ENV;
73
+ default:
74
+ return process.env[key];
75
+ }
76
+ };
77
+ function getEnv(key, skipCheck) {
78
+ const value = getEnvValue(key);
79
+ if (!skipCheck && !value) throw new Error(`${key} is not defined`);
80
+ return value;
81
+ }
82
+
83
+ // src/file/utils.ts
84
+ var getS3Client = () => new import_client_s3.S3Client({
85
+ region: getEnv("AWS_REGION" /* AWS_REGION */),
35
86
  credentials: {
36
- accessKeyId: options.awsKey,
37
- secretAccessKey: options.awsSecret
87
+ accessKeyId: getEnv("AWS_ACCESS_KEY_ID" /* AWS_ACCESS_KEY_ID */),
88
+ secretAccessKey: getEnv("AWS_ACCESS_KEY_SECRET" /* AWS_ACCESS_KEY_SECRET */)
38
89
  }
39
90
  });
40
- var getURLPrefix = (options) => `https://${options.bucket}.s3.${options.region}.amazonaws.com/`;
91
+ var URL_PREFIX = `https://${getEnv("AWS_BUCKET" /* AWS_BUCKET */)}.s3.${getEnv(
92
+ "AWS_REGION" /* AWS_REGION */
93
+ )}.amazonaws.com/`;
41
94
  function getKey(keys) {
42
95
  return typeof keys === "string" ? keys : keys.join("/");
43
96
  }
44
- var getUploadURL = (client, Bucket) => (keys) => {
97
+ var getUploadURL = (client) => (keys) => {
45
98
  const command = new import_client_s3.PutObjectCommand({
46
- Bucket,
99
+ Bucket: getEnv("AWS_BUCKET" /* AWS_BUCKET */),
47
100
  Key: getKey(keys),
48
101
  ACL: "public-read"
49
102
  });
50
103
  return (0, import_s3_request_presigner.getSignedUrl)(client, command, { expiresIn: 300 });
51
104
  };
52
- var getDownloadURL = (options) => (keys) => {
53
- return `${getURLPrefix(options)}${getKey(keys)}`;
105
+ var getDownloadURL = (keys) => {
106
+ return `${URL_PREFIX}${getKey(keys)}`;
54
107
  };
55
- var uploadFile = (client, options) => async (keys, {
108
+ var uploadFile = (client) => async (keys, {
56
109
  url,
57
110
  blob
58
111
  }) => {
@@ -60,18 +113,18 @@ var uploadFile = (client, options) => async (keys, {
60
113
  const fileBlob = blob || await fetch(url).then((file) => file.blob());
61
114
  if (fileBlob) {
62
115
  const key = getKey(keys);
63
- await uploadBlob(client, options.bucket)(fileBlob, key);
64
- return getDownloadURL(options)(key);
116
+ await uploadBlob(client)(fileBlob, key);
117
+ return getDownloadURL(key);
65
118
  }
66
119
  return null;
67
120
  };
68
- var deleteFile = (client, options) => async (url) => {
69
- const key = url.split(getURLPrefix(options))[1];
121
+ var deleteFile = (client) => async (url) => {
122
+ const key = url.split(URL_PREFIX)[1];
70
123
  if (key) {
71
124
  try {
72
125
  await client.send(
73
126
  new import_client_s3.DeleteObjectCommand({
74
- Bucket: options.bucket,
127
+ Bucket: getEnv("AWS_BUCKET" /* AWS_BUCKET */),
75
128
  Key: key
76
129
  })
77
130
  );
@@ -82,11 +135,11 @@ var deleteFile = (client, options) => async (url) => {
82
135
  }
83
136
  return false;
84
137
  };
85
- var uploadBlob = (client, Bucket) => async (file, key) => {
138
+ var uploadBlob = (client) => async (file, key) => {
86
139
  const fileBuffer = await file.arrayBuffer();
87
140
  return client.send(
88
141
  new import_client_s3.PutObjectCommand({
89
- Bucket,
142
+ Bucket: getEnv("AWS_BUCKET" /* AWS_BUCKET */),
90
143
  Key: key,
91
144
  ACL: "public-read",
92
145
  Body: Buffer.from(fileBuffer),
@@ -1,18 +1,14 @@
1
1
  import * as _aws_sdk_client_s3 from '@aws-sdk/client-s3';
2
2
  import { S3Client } from '@aws-sdk/client-s3';
3
- import { SetupFileUploadOptions } from './setup.mjs';
4
- import 'next/server';
5
- import '../auth/email/types.mjs';
6
- import '../auth/types.mjs';
7
3
 
8
- declare const getS3Client: (options: SetupFileUploadOptions) => S3Client;
9
- declare const getUploadURL: (client: S3Client, Bucket: string) => (keys: string | string[]) => Promise<string>;
10
- declare const getDownloadURL: (options: SetupFileUploadOptions) => (keys: string | string[]) => string;
11
- declare const uploadFile: (client: S3Client, options: SetupFileUploadOptions) => (keys: string | string[], { url, blob, }: {
4
+ declare const getS3Client: () => S3Client;
5
+ declare const getUploadURL: (client: S3Client) => (keys: string | string[]) => Promise<string>;
6
+ declare const getDownloadURL: (keys: string | string[]) => string;
7
+ declare const uploadFile: (client: S3Client) => (keys: string | string[], { url, blob, }: {
12
8
  blob?: Blob;
13
9
  url?: string;
14
10
  }) => Promise<string | null>;
15
- declare const deleteFile: (client: S3Client, options: SetupFileUploadOptions) => (url: string) => Promise<boolean>;
16
- declare const uploadBlob: (client: S3Client, Bucket: string) => (file: File | Blob, key: string) => Promise<_aws_sdk_client_s3.PutObjectCommandOutput>;
11
+ declare const deleteFile: (client: S3Client) => (url: string) => Promise<boolean>;
12
+ declare const uploadBlob: (client: S3Client) => (file: File | Blob, key: string) => Promise<_aws_sdk_client_s3.PutObjectCommandOutput>;
17
13
 
18
14
  export { deleteFile, getDownloadURL, getS3Client, getUploadURL, uploadBlob, uploadFile };
@@ -1,18 +1,14 @@
1
1
  import * as _aws_sdk_client_s3 from '@aws-sdk/client-s3';
2
2
  import { S3Client } from '@aws-sdk/client-s3';
3
- import { SetupFileUploadOptions } from './setup.js';
4
- import 'next/server';
5
- import '../auth/email/types.js';
6
- import '../auth/types.js';
7
3
 
8
- declare const getS3Client: (options: SetupFileUploadOptions) => S3Client;
9
- declare const getUploadURL: (client: S3Client, Bucket: string) => (keys: string | string[]) => Promise<string>;
10
- declare const getDownloadURL: (options: SetupFileUploadOptions) => (keys: string | string[]) => string;
11
- declare const uploadFile: (client: S3Client, options: SetupFileUploadOptions) => (keys: string | string[], { url, blob, }: {
4
+ declare const getS3Client: () => S3Client;
5
+ declare const getUploadURL: (client: S3Client) => (keys: string | string[]) => Promise<string>;
6
+ declare const getDownloadURL: (keys: string | string[]) => string;
7
+ declare const uploadFile: (client: S3Client) => (keys: string | string[], { url, blob, }: {
12
8
  blob?: Blob;
13
9
  url?: string;
14
10
  }) => Promise<string | null>;
15
- declare const deleteFile: (client: S3Client, options: SetupFileUploadOptions) => (url: string) => Promise<boolean>;
16
- declare const uploadBlob: (client: S3Client, Bucket: string) => (file: File | Blob, key: string) => Promise<_aws_sdk_client_s3.PutObjectCommandOutput>;
11
+ declare const deleteFile: (client: S3Client) => (url: string) => Promise<boolean>;
12
+ declare const uploadBlob: (client: S3Client) => (file: File | Blob, key: string) => Promise<_aws_sdk_client_s3.PutObjectCommandOutput>;
17
13
 
18
14
  export { deleteFile, getDownloadURL, getS3Client, getUploadURL, uploadBlob, uploadFile };