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.
- package/dist/auth/email/client.cjs.js +27 -12
- package/dist/auth/email/client.esm.js +27 -12
- package/dist/auth/email/index.cjs.js +32 -15
- package/dist/auth/email/index.esm.js +32 -15
- package/dist/auth/email/routes/delete.cjs.js +14 -4
- package/dist/auth/email/routes/delete.esm.js +14 -4
- package/dist/auth/email/routes/get.cjs.js +12 -2
- package/dist/auth/email/routes/get.esm.js +12 -2
- package/dist/auth/email/routes/post.cjs.js +17 -6
- package/dist/auth/email/routes/post.esm.js +17 -6
- package/dist/auth/email/routes/put.cjs.js +12 -4
- package/dist/auth/email/routes/put.esm.js +12 -4
- package/dist/auth/email/token.cjs.js +9 -2
- package/dist/auth/email/token.esm.js +9 -2
- package/dist/auth/email/types.d.mts +1 -7
- package/dist/auth/email/types.d.ts +1 -7
- package/dist/auth/email/utils.cjs.js +16 -5
- package/dist/auth/email/utils.d.mts +2 -2
- package/dist/auth/email/utils.d.ts +2 -2
- package/dist/auth/email/utils.esm.js +16 -5
- package/dist/auth/google/get.cjs.js +15 -7
- package/dist/auth/google/get.d.mts +1 -3
- package/dist/auth/google/get.d.ts +1 -3
- package/dist/auth/google/get.esm.js +15 -7
- package/dist/auth/google/index.cjs.js +15 -7
- package/dist/auth/google/index.d.mts +0 -5
- package/dist/auth/google/index.d.ts +0 -5
- package/dist/auth/google/index.esm.js +15 -7
- package/dist/auth/index.cjs.js +47 -31
- package/dist/auth/index.esm.js +47 -31
- package/dist/auth/instagram/client.cjs.js +12 -1
- package/dist/auth/instagram/client.d.mts +1 -1
- package/dist/auth/instagram/client.d.ts +1 -1
- package/dist/auth/instagram/client.esm.js +10 -1
- package/dist/auth/instagram/index.cjs.js +16 -9
- package/dist/auth/instagram/index.d.mts +0 -2
- package/dist/auth/instagram/index.d.ts +0 -2
- package/dist/auth/instagram/index.esm.js +16 -9
- package/dist/auth/instagram/route.cjs.js +16 -9
- package/dist/auth/instagram/route.d.mts +1 -1
- package/dist/auth/instagram/route.d.ts +1 -1
- package/dist/auth/instagram/route.esm.js +16 -9
- package/dist/auth/instagram/utils.cjs.js +10 -1
- package/dist/auth/instagram/utils.esm.js +8 -1
- package/dist/client/index.cjs.js +8 -1
- package/dist/client/index.esm.js +8 -1
- package/dist/client/seo.cjs.js +10 -1
- package/dist/client/seo.esm.js +8 -1
- package/dist/env.cjs.js +57 -0
- package/dist/env.d.mts +23 -0
- package/dist/env.d.ts +23 -0
- package/dist/env.esm.js +31 -0
- package/dist/file/client.cjs.js +10 -1
- package/dist/file/client.esm.js +10 -1
- package/dist/file/index.cjs.js +40 -28
- package/dist/file/index.d.mts +0 -2
- package/dist/file/index.d.ts +0 -2
- package/dist/file/index.esm.js +40 -28
- package/dist/file/put.cjs.js +23 -11
- package/dist/file/put.d.mts +0 -2
- package/dist/file/put.d.ts +0 -2
- package/dist/file/put.esm.js +23 -11
- package/dist/file/setup.cjs.js +40 -28
- package/dist/file/setup.d.mts +0 -7
- package/dist/file/setup.d.ts +0 -7
- package/dist/file/setup.esm.js +40 -28
- package/dist/file/utils.cjs.js +28 -17
- package/dist/file/utils.d.mts +6 -10
- package/dist/file/utils.d.ts +6 -10
- package/dist/file/utils.esm.js +28 -17
- package/dist/graphql/client.cjs.js +15 -3
- package/dist/graphql/client.d.mts +1 -1
- package/dist/graphql/client.d.ts +1 -1
- package/dist/graphql/client.esm.js +15 -3
- package/dist/graphql/index.cjs.js +65 -3
- package/dist/graphql/index.d.mts +1 -0
- package/dist/graphql/index.d.ts +1 -0
- package/dist/graphql/index.esm.js +65 -3
- package/dist/graphql/init.cjs.js +11 -2
- package/dist/graphql/init.esm.js +11 -2
- package/dist/graphql/server.cjs.js +10 -1
- package/dist/graphql/server.esm.js +10 -1
- package/dist/graphql/utils.cjs.js +54 -1
- package/dist/graphql/utils.d.mts +10 -3
- package/dist/graphql/utils.d.ts +10 -3
- package/dist/graphql/utils.esm.js +54 -1
- package/package.json +1 -1
|
@@ -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
|
|
20
|
+
if (refreshToken)
|
|
12
21
|
try {
|
|
13
|
-
const decoded = verify(refreshToken,
|
|
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) {
|
|
@@ -37,7 +46,7 @@ async function getLongLivedToken(code, redirectURL, clientId, clientSecret) {
|
|
|
37
46
|
if (shortResData.access_token) {
|
|
38
47
|
const shortLivedToken = shortResData.access_token;
|
|
39
48
|
const longRes = await fetch(
|
|
40
|
-
`https://graph.instagram.com/access_token?grant_type=ig_exchange_token&access_token=${shortLivedToken}&client_secret=${
|
|
49
|
+
`https://graph.instagram.com/access_token?grant_type=ig_exchange_token&access_token=${shortLivedToken}&client_secret=${getEnv("INSTAGRAM_CLIENT_SECRET" /* INSTAGRAM_CLIENT_SECRET */)}`
|
|
41
50
|
);
|
|
42
51
|
if (longRes.ok) {
|
|
43
52
|
const longResData = await longRes.json();
|
|
@@ -79,9 +88,7 @@ import { NextResponse as NextResponse2 } from "next/server";
|
|
|
79
88
|
var getInstagramRoute = ({
|
|
80
89
|
successRedirectURL,
|
|
81
90
|
errorRedirectURL,
|
|
82
|
-
onUser
|
|
83
|
-
clientSecret,
|
|
84
|
-
clientId
|
|
91
|
+
onUser
|
|
85
92
|
}) => {
|
|
86
93
|
const handleError = (message) => NextResponse3.redirect(`${errorRedirectURL}?error=${message}`);
|
|
87
94
|
return async (req) => {
|
|
@@ -92,9 +99,9 @@ var getInstagramRoute = ({
|
|
|
92
99
|
if (!stateToken || !accessCode) return handleError("Invalid request");
|
|
93
100
|
const instagramData = await getLongLivedToken(
|
|
94
101
|
accessCode,
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
102
|
+
getEnv("NEXT_PUBLIC_INSTAGRAM_AUTH_ENDPOINT" /* NEXT_PUBLIC_INSTAGRAM_AUTH_ENDPOINT */),
|
|
103
|
+
getEnv("INSTAGRAM_CLIENT_ID" /* INSTAGRAM_CLIENT_ID */),
|
|
104
|
+
getEnv("INSTAGRAM_CLIENT_SECRET" /* INSTAGRAM_CLIENT_SECRET */)
|
|
98
105
|
);
|
|
99
106
|
if (!instagramData?.accessToken)
|
|
100
107
|
return handleError("Unable to reach Instagram");
|
|
@@ -24,6 +24,15 @@ __export(utils_exports, {
|
|
|
24
24
|
getRefreshedAccessToken: () => getRefreshedAccessToken
|
|
25
25
|
});
|
|
26
26
|
module.exports = __toCommonJS(utils_exports);
|
|
27
|
+
|
|
28
|
+
// src/env.ts
|
|
29
|
+
function getEnv(key, skipCheck) {
|
|
30
|
+
const value = process.env[key];
|
|
31
|
+
if (!skipCheck && !value) throw new Error(`${key} is not defined`);
|
|
32
|
+
return value;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
// src/auth/instagram/utils.ts
|
|
27
36
|
async function getRefreshedAccessToken(token) {
|
|
28
37
|
const request = await fetch(
|
|
29
38
|
`https://graph.instagram.com/refresh_access_token?grant_type=ig_refresh_token&access_token=${token}`
|
|
@@ -47,7 +56,7 @@ async function getLongLivedToken(code, redirectURL, clientId, clientSecret) {
|
|
|
47
56
|
if (shortResData.access_token) {
|
|
48
57
|
const shortLivedToken = shortResData.access_token;
|
|
49
58
|
const longRes = await fetch(
|
|
50
|
-
`https://graph.instagram.com/access_token?grant_type=ig_exchange_token&access_token=${shortLivedToken}&client_secret=${
|
|
59
|
+
`https://graph.instagram.com/access_token?grant_type=ig_exchange_token&access_token=${shortLivedToken}&client_secret=${getEnv("INSTAGRAM_CLIENT_SECRET" /* INSTAGRAM_CLIENT_SECRET */)}`
|
|
51
60
|
);
|
|
52
61
|
if (longRes.ok) {
|
|
53
62
|
const longResData = await longRes.json();
|
|
@@ -1,3 +1,10 @@
|
|
|
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/utils.ts
|
|
2
9
|
async function getRefreshedAccessToken(token) {
|
|
3
10
|
const request = await fetch(
|
|
@@ -22,7 +29,7 @@ async function getLongLivedToken(code, redirectURL, clientId, clientSecret) {
|
|
|
22
29
|
if (shortResData.access_token) {
|
|
23
30
|
const shortLivedToken = shortResData.access_token;
|
|
24
31
|
const longRes = await fetch(
|
|
25
|
-
`https://graph.instagram.com/access_token?grant_type=ig_exchange_token&access_token=${shortLivedToken}&client_secret=${
|
|
32
|
+
`https://graph.instagram.com/access_token?grant_type=ig_exchange_token&access_token=${shortLivedToken}&client_secret=${getEnv("INSTAGRAM_CLIENT_SECRET" /* INSTAGRAM_CLIENT_SECRET */)}`
|
|
26
33
|
);
|
|
27
34
|
if (longRes.ok) {
|
|
28
35
|
const longResData = await longRes.json();
|
package/dist/client/index.cjs.js
CHANGED
|
@@ -71,6 +71,13 @@ function useBreakpoint(query) {
|
|
|
71
71
|
return matches;
|
|
72
72
|
}
|
|
73
73
|
|
|
74
|
+
// src/env.ts
|
|
75
|
+
function getEnv(key, skipCheck) {
|
|
76
|
+
const value = process.env[key];
|
|
77
|
+
if (!skipCheck && !value) throw new Error(`${key} is not defined`);
|
|
78
|
+
return value;
|
|
79
|
+
}
|
|
80
|
+
|
|
74
81
|
// src/client/seo.ts
|
|
75
82
|
var setupSEO = (SEO) => (title, description, image) => ({
|
|
76
83
|
title: title ? `${title} \u2022 ${SEO.siteName}` : SEO.title,
|
|
@@ -87,7 +94,7 @@ var setupSEO = (SEO) => (title, description, image) => ({
|
|
|
87
94
|
appleWebApp: {
|
|
88
95
|
title: title ? title : SEO.title,
|
|
89
96
|
capable: true,
|
|
90
|
-
startupImage: `${
|
|
97
|
+
startupImage: `${getEnv("NEXT_PUBLIC_BASE_URL" /* NEXT_PUBLIC_BASE_URL */)}/apple-icon.png`
|
|
91
98
|
},
|
|
92
99
|
applicationName: SEO.siteName,
|
|
93
100
|
creator: SEO.siteName,
|
package/dist/client/index.esm.js
CHANGED
|
@@ -43,6 +43,13 @@ function useBreakpoint(query) {
|
|
|
43
43
|
return matches;
|
|
44
44
|
}
|
|
45
45
|
|
|
46
|
+
// src/env.ts
|
|
47
|
+
function getEnv(key, skipCheck) {
|
|
48
|
+
const value = process.env[key];
|
|
49
|
+
if (!skipCheck && !value) throw new Error(`${key} is not defined`);
|
|
50
|
+
return value;
|
|
51
|
+
}
|
|
52
|
+
|
|
46
53
|
// src/client/seo.ts
|
|
47
54
|
var setupSEO = (SEO) => (title, description, image) => ({
|
|
48
55
|
title: title ? `${title} \u2022 ${SEO.siteName}` : SEO.title,
|
|
@@ -59,7 +66,7 @@ var setupSEO = (SEO) => (title, description, image) => ({
|
|
|
59
66
|
appleWebApp: {
|
|
60
67
|
title: title ? title : SEO.title,
|
|
61
68
|
capable: true,
|
|
62
|
-
startupImage: `${
|
|
69
|
+
startupImage: `${getEnv("NEXT_PUBLIC_BASE_URL" /* NEXT_PUBLIC_BASE_URL */)}/apple-icon.png`
|
|
63
70
|
},
|
|
64
71
|
applicationName: SEO.siteName,
|
|
65
72
|
creator: SEO.siteName,
|
package/dist/client/seo.cjs.js
CHANGED
|
@@ -23,6 +23,15 @@ __export(seo_exports, {
|
|
|
23
23
|
setupSEO: () => setupSEO
|
|
24
24
|
});
|
|
25
25
|
module.exports = __toCommonJS(seo_exports);
|
|
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/client/seo.ts
|
|
26
35
|
var setupSEO = (SEO) => (title, description, image) => ({
|
|
27
36
|
title: title ? `${title} \u2022 ${SEO.siteName}` : SEO.title,
|
|
28
37
|
description: description || SEO.description,
|
|
@@ -38,7 +47,7 @@ var setupSEO = (SEO) => (title, description, image) => ({
|
|
|
38
47
|
appleWebApp: {
|
|
39
48
|
title: title ? title : SEO.title,
|
|
40
49
|
capable: true,
|
|
41
|
-
startupImage: `${
|
|
50
|
+
startupImage: `${getEnv("NEXT_PUBLIC_BASE_URL" /* NEXT_PUBLIC_BASE_URL */)}/apple-icon.png`
|
|
42
51
|
},
|
|
43
52
|
applicationName: SEO.siteName,
|
|
44
53
|
creator: SEO.siteName,
|
package/dist/client/seo.esm.js
CHANGED
|
@@ -1,3 +1,10 @@
|
|
|
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/client/seo.ts
|
|
2
9
|
var setupSEO = (SEO) => (title, description, image) => ({
|
|
3
10
|
title: title ? `${title} \u2022 ${SEO.siteName}` : SEO.title,
|
|
@@ -14,7 +21,7 @@ var setupSEO = (SEO) => (title, description, image) => ({
|
|
|
14
21
|
appleWebApp: {
|
|
15
22
|
title: title ? title : SEO.title,
|
|
16
23
|
capable: true,
|
|
17
|
-
startupImage: `${
|
|
24
|
+
startupImage: `${getEnv("NEXT_PUBLIC_BASE_URL" /* NEXT_PUBLIC_BASE_URL */)}/apple-icon.png`
|
|
18
25
|
},
|
|
19
26
|
applicationName: SEO.siteName,
|
|
20
27
|
creator: SEO.siteName,
|
package/dist/env.cjs.js
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
|
|
20
|
+
// src/env.ts
|
|
21
|
+
var env_exports = {};
|
|
22
|
+
__export(env_exports, {
|
|
23
|
+
EnvVariable: () => EnvVariable,
|
|
24
|
+
getEnv: () => getEnv
|
|
25
|
+
});
|
|
26
|
+
module.exports = __toCommonJS(env_exports);
|
|
27
|
+
var EnvVariable = /* @__PURE__ */ ((EnvVariable2) => {
|
|
28
|
+
EnvVariable2["NEXT_PUBLIC_GRAPHQL_ENDPOINT"] = "NEXT_PUBLIC_GRAPHQL_ENDPOINT";
|
|
29
|
+
EnvVariable2["NEXT_PUBLIC_EMAIL_AUTH_ENDPOINT"] = "NEXT_PUBLIC_EMAIL_AUTH_ENDPOINT";
|
|
30
|
+
EnvVariable2["NEXT_PUBLIC_GOOGLE_AUTH_ENDPOINT"] = "NEXT_PUBLIC_GOOGLE_AUTH_ENDPOINT";
|
|
31
|
+
EnvVariable2["NEXT_PUBLIC_INSTAGRAM_AUTH_ENDPOINT"] = "NEXT_PUBLIC_INSTAGRAM_AUTH_ENDPOINT";
|
|
32
|
+
EnvVariable2["NEXT_PUBLIC_FILE_ENDPOINT"] = "NEXT_PUBLIC_FILE_ENDPOINT";
|
|
33
|
+
EnvVariable2["NEXT_PUBLIC_BASE_URL"] = "NEXT_PUBLIC_BASE_URL";
|
|
34
|
+
EnvVariable2["REFRESH_KEY"] = "REFRESH_KEY";
|
|
35
|
+
EnvVariable2["SIGNING_KEY"] = "SIGNING_KEY";
|
|
36
|
+
EnvVariable2["INSTAGRAM_CLIENT_SECRET"] = "INSTAGRAM_CLIENT_SECRET";
|
|
37
|
+
EnvVariable2["INSTAGRAM_CLIENT_ID"] = "INSTAGRAM_CLIENT_ID";
|
|
38
|
+
EnvVariable2["GOOGLE_CLIENT_SECRET"] = "GOOGLE_CLIENT_SECRET";
|
|
39
|
+
EnvVariable2["GOOGLE_CLIENT_ID"] = "GOOGLE_CLIENT_ID";
|
|
40
|
+
EnvVariable2["TURNSTILE_KEY"] = "TURNSTILE_KEY";
|
|
41
|
+
EnvVariable2["AWS_ACCESS_KEY_ID"] = "AWS_ACCESS_KEY_ID";
|
|
42
|
+
EnvVariable2["AWS_ACCESS_KEY_SECRET"] = "AWS_ACCESS_KEY_SECRET";
|
|
43
|
+
EnvVariable2["AWS_REGION"] = "AWS_REGION";
|
|
44
|
+
EnvVariable2["AWS_BUCKET"] = "AWS_BUCKET";
|
|
45
|
+
EnvVariable2["NODE_ENV"] = "NODE_ENV";
|
|
46
|
+
return EnvVariable2;
|
|
47
|
+
})(EnvVariable || {});
|
|
48
|
+
function getEnv(key, skipCheck) {
|
|
49
|
+
const value = process.env[key];
|
|
50
|
+
if (!skipCheck && !value) throw new Error(`${key} is not defined`);
|
|
51
|
+
return value;
|
|
52
|
+
}
|
|
53
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
54
|
+
0 && (module.exports = {
|
|
55
|
+
EnvVariable,
|
|
56
|
+
getEnv
|
|
57
|
+
});
|
package/dist/env.d.mts
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
declare enum EnvVariable {
|
|
2
|
+
NEXT_PUBLIC_GRAPHQL_ENDPOINT = "NEXT_PUBLIC_GRAPHQL_ENDPOINT",
|
|
3
|
+
NEXT_PUBLIC_EMAIL_AUTH_ENDPOINT = "NEXT_PUBLIC_EMAIL_AUTH_ENDPOINT",
|
|
4
|
+
NEXT_PUBLIC_GOOGLE_AUTH_ENDPOINT = "NEXT_PUBLIC_GOOGLE_AUTH_ENDPOINT",
|
|
5
|
+
NEXT_PUBLIC_INSTAGRAM_AUTH_ENDPOINT = "NEXT_PUBLIC_INSTAGRAM_AUTH_ENDPOINT",
|
|
6
|
+
NEXT_PUBLIC_FILE_ENDPOINT = "NEXT_PUBLIC_FILE_ENDPOINT",
|
|
7
|
+
NEXT_PUBLIC_BASE_URL = "NEXT_PUBLIC_BASE_URL",
|
|
8
|
+
REFRESH_KEY = "REFRESH_KEY",
|
|
9
|
+
SIGNING_KEY = "SIGNING_KEY",
|
|
10
|
+
INSTAGRAM_CLIENT_SECRET = "INSTAGRAM_CLIENT_SECRET",
|
|
11
|
+
INSTAGRAM_CLIENT_ID = "INSTAGRAM_CLIENT_ID",
|
|
12
|
+
GOOGLE_CLIENT_SECRET = "GOOGLE_CLIENT_SECRET",
|
|
13
|
+
GOOGLE_CLIENT_ID = "GOOGLE_CLIENT_ID",
|
|
14
|
+
TURNSTILE_KEY = "TURNSTILE_KEY",
|
|
15
|
+
AWS_ACCESS_KEY_ID = "AWS_ACCESS_KEY_ID",
|
|
16
|
+
AWS_ACCESS_KEY_SECRET = "AWS_ACCESS_KEY_SECRET",
|
|
17
|
+
AWS_REGION = "AWS_REGION",
|
|
18
|
+
AWS_BUCKET = "AWS_BUCKET",
|
|
19
|
+
NODE_ENV = "NODE_ENV"
|
|
20
|
+
}
|
|
21
|
+
declare function getEnv<T extends boolean = false>(key: EnvVariable, skipCheck?: T): T extends true ? string | undefined : string;
|
|
22
|
+
|
|
23
|
+
export { EnvVariable, getEnv };
|
package/dist/env.d.ts
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
declare enum EnvVariable {
|
|
2
|
+
NEXT_PUBLIC_GRAPHQL_ENDPOINT = "NEXT_PUBLIC_GRAPHQL_ENDPOINT",
|
|
3
|
+
NEXT_PUBLIC_EMAIL_AUTH_ENDPOINT = "NEXT_PUBLIC_EMAIL_AUTH_ENDPOINT",
|
|
4
|
+
NEXT_PUBLIC_GOOGLE_AUTH_ENDPOINT = "NEXT_PUBLIC_GOOGLE_AUTH_ENDPOINT",
|
|
5
|
+
NEXT_PUBLIC_INSTAGRAM_AUTH_ENDPOINT = "NEXT_PUBLIC_INSTAGRAM_AUTH_ENDPOINT",
|
|
6
|
+
NEXT_PUBLIC_FILE_ENDPOINT = "NEXT_PUBLIC_FILE_ENDPOINT",
|
|
7
|
+
NEXT_PUBLIC_BASE_URL = "NEXT_PUBLIC_BASE_URL",
|
|
8
|
+
REFRESH_KEY = "REFRESH_KEY",
|
|
9
|
+
SIGNING_KEY = "SIGNING_KEY",
|
|
10
|
+
INSTAGRAM_CLIENT_SECRET = "INSTAGRAM_CLIENT_SECRET",
|
|
11
|
+
INSTAGRAM_CLIENT_ID = "INSTAGRAM_CLIENT_ID",
|
|
12
|
+
GOOGLE_CLIENT_SECRET = "GOOGLE_CLIENT_SECRET",
|
|
13
|
+
GOOGLE_CLIENT_ID = "GOOGLE_CLIENT_ID",
|
|
14
|
+
TURNSTILE_KEY = "TURNSTILE_KEY",
|
|
15
|
+
AWS_ACCESS_KEY_ID = "AWS_ACCESS_KEY_ID",
|
|
16
|
+
AWS_ACCESS_KEY_SECRET = "AWS_ACCESS_KEY_SECRET",
|
|
17
|
+
AWS_REGION = "AWS_REGION",
|
|
18
|
+
AWS_BUCKET = "AWS_BUCKET",
|
|
19
|
+
NODE_ENV = "NODE_ENV"
|
|
20
|
+
}
|
|
21
|
+
declare function getEnv<T extends boolean = false>(key: EnvVariable, skipCheck?: T): T extends true ? string | undefined : string;
|
|
22
|
+
|
|
23
|
+
export { EnvVariable, getEnv };
|
package/dist/env.esm.js
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
// src/env.ts
|
|
2
|
+
var EnvVariable = /* @__PURE__ */ ((EnvVariable2) => {
|
|
3
|
+
EnvVariable2["NEXT_PUBLIC_GRAPHQL_ENDPOINT"] = "NEXT_PUBLIC_GRAPHQL_ENDPOINT";
|
|
4
|
+
EnvVariable2["NEXT_PUBLIC_EMAIL_AUTH_ENDPOINT"] = "NEXT_PUBLIC_EMAIL_AUTH_ENDPOINT";
|
|
5
|
+
EnvVariable2["NEXT_PUBLIC_GOOGLE_AUTH_ENDPOINT"] = "NEXT_PUBLIC_GOOGLE_AUTH_ENDPOINT";
|
|
6
|
+
EnvVariable2["NEXT_PUBLIC_INSTAGRAM_AUTH_ENDPOINT"] = "NEXT_PUBLIC_INSTAGRAM_AUTH_ENDPOINT";
|
|
7
|
+
EnvVariable2["NEXT_PUBLIC_FILE_ENDPOINT"] = "NEXT_PUBLIC_FILE_ENDPOINT";
|
|
8
|
+
EnvVariable2["NEXT_PUBLIC_BASE_URL"] = "NEXT_PUBLIC_BASE_URL";
|
|
9
|
+
EnvVariable2["REFRESH_KEY"] = "REFRESH_KEY";
|
|
10
|
+
EnvVariable2["SIGNING_KEY"] = "SIGNING_KEY";
|
|
11
|
+
EnvVariable2["INSTAGRAM_CLIENT_SECRET"] = "INSTAGRAM_CLIENT_SECRET";
|
|
12
|
+
EnvVariable2["INSTAGRAM_CLIENT_ID"] = "INSTAGRAM_CLIENT_ID";
|
|
13
|
+
EnvVariable2["GOOGLE_CLIENT_SECRET"] = "GOOGLE_CLIENT_SECRET";
|
|
14
|
+
EnvVariable2["GOOGLE_CLIENT_ID"] = "GOOGLE_CLIENT_ID";
|
|
15
|
+
EnvVariable2["TURNSTILE_KEY"] = "TURNSTILE_KEY";
|
|
16
|
+
EnvVariable2["AWS_ACCESS_KEY_ID"] = "AWS_ACCESS_KEY_ID";
|
|
17
|
+
EnvVariable2["AWS_ACCESS_KEY_SECRET"] = "AWS_ACCESS_KEY_SECRET";
|
|
18
|
+
EnvVariable2["AWS_REGION"] = "AWS_REGION";
|
|
19
|
+
EnvVariable2["AWS_BUCKET"] = "AWS_BUCKET";
|
|
20
|
+
EnvVariable2["NODE_ENV"] = "NODE_ENV";
|
|
21
|
+
return EnvVariable2;
|
|
22
|
+
})(EnvVariable || {});
|
|
23
|
+
function getEnv(key, skipCheck) {
|
|
24
|
+
const value = process.env[key];
|
|
25
|
+
if (!skipCheck && !value) throw new Error(`${key} is not defined`);
|
|
26
|
+
return value;
|
|
27
|
+
}
|
|
28
|
+
export {
|
|
29
|
+
EnvVariable,
|
|
30
|
+
getEnv
|
|
31
|
+
};
|
package/dist/file/client.cjs.js
CHANGED
|
@@ -24,6 +24,15 @@ __export(client_exports, {
|
|
|
24
24
|
});
|
|
25
25
|
module.exports = __toCommonJS(client_exports);
|
|
26
26
|
var import_client = require("naystack/auth/email/client");
|
|
27
|
+
|
|
28
|
+
// src/env.ts
|
|
29
|
+
function getEnv(key, skipCheck) {
|
|
30
|
+
const value = process.env[key];
|
|
31
|
+
if (!skipCheck && !value) throw new Error(`${key} is not defined`);
|
|
32
|
+
return value;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
// src/file/client.ts
|
|
27
36
|
var useFileUpload = () => {
|
|
28
37
|
const token = (0, import_client.useToken)();
|
|
29
38
|
return (file, type, data) => {
|
|
@@ -31,7 +40,7 @@ var useFileUpload = () => {
|
|
|
31
40
|
formData.append("type", type);
|
|
32
41
|
formData.append("file", file);
|
|
33
42
|
if (data) formData.append("data", JSON.stringify(data));
|
|
34
|
-
return fetch(
|
|
43
|
+
return fetch(getEnv("NEXT_PUBLIC_FILE_ENDPOINT" /* NEXT_PUBLIC_FILE_ENDPOINT */), {
|
|
35
44
|
method: "PUT",
|
|
36
45
|
body: formData,
|
|
37
46
|
headers: {
|
package/dist/file/client.esm.js
CHANGED
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
// src/file/client.ts
|
|
2
2
|
import { useToken } from "naystack/auth/email/client";
|
|
3
|
+
|
|
4
|
+
// src/env.ts
|
|
5
|
+
function getEnv(key, skipCheck) {
|
|
6
|
+
const value = process.env[key];
|
|
7
|
+
if (!skipCheck && !value) throw new Error(`${key} is not defined`);
|
|
8
|
+
return value;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
// src/file/client.ts
|
|
3
12
|
var useFileUpload = () => {
|
|
4
13
|
const token = useToken();
|
|
5
14
|
return (file, type, data) => {
|
|
@@ -7,7 +16,7 @@ var useFileUpload = () => {
|
|
|
7
16
|
formData.append("type", type);
|
|
8
17
|
formData.append("file", file);
|
|
9
18
|
if (data) formData.append("data", JSON.stringify(data));
|
|
10
|
-
return fetch(
|
|
19
|
+
return fetch(getEnv("NEXT_PUBLIC_FILE_ENDPOINT" /* NEXT_PUBLIC_FILE_ENDPOINT */), {
|
|
11
20
|
method: "PUT",
|
|
12
21
|
body: formData,
|
|
13
22
|
headers: {
|
package/dist/file/index.cjs.js
CHANGED
|
@@ -38,6 +38,13 @@ 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
|
+
function getEnv(key, skipCheck) {
|
|
43
|
+
const value = process.env[key];
|
|
44
|
+
if (!skipCheck && !value) throw new Error(`${key} is not defined`);
|
|
45
|
+
return value;
|
|
46
|
+
}
|
|
47
|
+
|
|
41
48
|
// src/auth/constants.ts
|
|
42
49
|
var REFRESH_COOKIE_NAME = "refresh";
|
|
43
50
|
|
|
@@ -59,17 +66,20 @@ function getUserIdFromRefreshToken(refreshKey, refreshToken) {
|
|
|
59
66
|
var import_server2 = require("next/server");
|
|
60
67
|
|
|
61
68
|
// src/auth/email/utils.ts
|
|
62
|
-
var getContext = (
|
|
69
|
+
var getContext = (req) => {
|
|
63
70
|
const bearer = req.headers.get("authorization");
|
|
64
71
|
if (!bearer) {
|
|
65
72
|
const refresh = req.cookies.get(REFRESH_COOKIE_NAME)?.value;
|
|
66
|
-
const userId = getUserIdFromRefreshToken(
|
|
73
|
+
const userId = getUserIdFromRefreshToken(
|
|
74
|
+
getEnv("REFRESH_KEY" /* REFRESH_KEY */),
|
|
75
|
+
refresh
|
|
76
|
+
);
|
|
67
77
|
if (userId) return { userId, isRefreshID: true };
|
|
68
78
|
return { userId: null };
|
|
69
79
|
}
|
|
70
80
|
const token = bearer.slice(7);
|
|
71
81
|
try {
|
|
72
|
-
const res = (0, import_jsonwebtoken2.verify)(token,
|
|
82
|
+
const res = (0, import_jsonwebtoken2.verify)(token, getEnv("SIGNING_KEY" /* SIGNING_KEY */));
|
|
73
83
|
if (typeof res === "string") {
|
|
74
84
|
return { userId: null };
|
|
75
85
|
}
|
|
@@ -84,29 +94,31 @@ var getContext = (keys, req) => {
|
|
|
84
94
|
// src/file/utils.ts
|
|
85
95
|
var import_client_s3 = require("@aws-sdk/client-s3");
|
|
86
96
|
var import_s3_request_presigner = require("@aws-sdk/s3-request-presigner");
|
|
87
|
-
var getS3Client = (
|
|
88
|
-
region:
|
|
97
|
+
var getS3Client = () => new import_client_s3.S3Client({
|
|
98
|
+
region: getEnv("AWS_REGION" /* AWS_REGION */),
|
|
89
99
|
credentials: {
|
|
90
|
-
accessKeyId:
|
|
91
|
-
secretAccessKey:
|
|
100
|
+
accessKeyId: getEnv("AWS_ACCESS_KEY_ID" /* AWS_ACCESS_KEY_ID */),
|
|
101
|
+
secretAccessKey: getEnv("AWS_ACCESS_KEY_SECRET" /* AWS_ACCESS_KEY_SECRET */)
|
|
92
102
|
}
|
|
93
103
|
});
|
|
94
|
-
var
|
|
104
|
+
var URL_PREFIX = `https://${getEnv("AWS_BUCKET" /* AWS_BUCKET */)}.s3.${getEnv(
|
|
105
|
+
"AWS_REGION" /* AWS_REGION */
|
|
106
|
+
)}.amazonaws.com/`;
|
|
95
107
|
function getKey(keys) {
|
|
96
108
|
return typeof keys === "string" ? keys : keys.join("/");
|
|
97
109
|
}
|
|
98
|
-
var getUploadURL = (client
|
|
110
|
+
var getUploadURL = (client) => (keys) => {
|
|
99
111
|
const command = new import_client_s3.PutObjectCommand({
|
|
100
|
-
Bucket,
|
|
112
|
+
Bucket: getEnv("AWS_BUCKET" /* AWS_BUCKET */),
|
|
101
113
|
Key: getKey(keys),
|
|
102
114
|
ACL: "public-read"
|
|
103
115
|
});
|
|
104
116
|
return (0, import_s3_request_presigner.getSignedUrl)(client, command, { expiresIn: 300 });
|
|
105
117
|
};
|
|
106
|
-
var getDownloadURL = (
|
|
107
|
-
return `${
|
|
118
|
+
var getDownloadURL = (keys) => {
|
|
119
|
+
return `${URL_PREFIX}${getKey(keys)}`;
|
|
108
120
|
};
|
|
109
|
-
var uploadFile = (client
|
|
121
|
+
var uploadFile = (client) => async (keys, {
|
|
110
122
|
url,
|
|
111
123
|
blob
|
|
112
124
|
}) => {
|
|
@@ -114,18 +126,18 @@ var uploadFile = (client, options) => async (keys, {
|
|
|
114
126
|
const fileBlob = blob || await fetch(url).then((file) => file.blob());
|
|
115
127
|
if (fileBlob) {
|
|
116
128
|
const key = getKey(keys);
|
|
117
|
-
await uploadBlob(client
|
|
118
|
-
return getDownloadURL(
|
|
129
|
+
await uploadBlob(client)(fileBlob, key);
|
|
130
|
+
return getDownloadURL(key);
|
|
119
131
|
}
|
|
120
132
|
return null;
|
|
121
133
|
};
|
|
122
|
-
var deleteFile = (client
|
|
123
|
-
const key = url.split(
|
|
134
|
+
var deleteFile = (client) => async (url) => {
|
|
135
|
+
const key = url.split(URL_PREFIX)[1];
|
|
124
136
|
if (key) {
|
|
125
137
|
try {
|
|
126
138
|
await client.send(
|
|
127
139
|
new import_client_s3.DeleteObjectCommand({
|
|
128
|
-
Bucket:
|
|
140
|
+
Bucket: getEnv("AWS_BUCKET" /* AWS_BUCKET */),
|
|
129
141
|
Key: key
|
|
130
142
|
})
|
|
131
143
|
);
|
|
@@ -136,11 +148,11 @@ var deleteFile = (client, options) => async (url) => {
|
|
|
136
148
|
}
|
|
137
149
|
return false;
|
|
138
150
|
};
|
|
139
|
-
var uploadBlob = (client
|
|
151
|
+
var uploadBlob = (client) => async (file, key) => {
|
|
140
152
|
const fileBuffer = await file.arrayBuffer();
|
|
141
153
|
return client.send(
|
|
142
154
|
new import_client_s3.PutObjectCommand({
|
|
143
|
-
Bucket,
|
|
155
|
+
Bucket: getEnv("AWS_BUCKET" /* AWS_BUCKET */),
|
|
144
156
|
Key: key,
|
|
145
157
|
ACL: "public-read",
|
|
146
158
|
Body: Buffer.from(fileBuffer),
|
|
@@ -152,7 +164,7 @@ var uploadBlob = (client, Bucket) => async (file, key) => {
|
|
|
152
164
|
|
|
153
165
|
// src/file/put.ts
|
|
154
166
|
var getFileUploadPutRoute = (options, client) => async (req) => {
|
|
155
|
-
const ctx = getContext(
|
|
167
|
+
const ctx = getContext(req);
|
|
156
168
|
if (!ctx?.userId || ctx.isRefreshID)
|
|
157
169
|
return import_server3.NextResponse.json({ error: "unauthorized" }, { status: 401 });
|
|
158
170
|
const formData = await req.formData();
|
|
@@ -165,8 +177,8 @@ var getFileUploadPutRoute = (options, client) => async (req) => {
|
|
|
165
177
|
data: typeof data === "string" ? JSON.parse(data) : void 0
|
|
166
178
|
};
|
|
167
179
|
const fileKey = options.getKey ? await options.getKey(inputData) : (0, import_uuid.v4)();
|
|
168
|
-
const url = getDownloadURL(
|
|
169
|
-
await uploadBlob(client
|
|
180
|
+
const url = getDownloadURL(fileKey);
|
|
181
|
+
await uploadBlob(client)(file, fileKey);
|
|
170
182
|
const onUploadResponse = await options.onUpload({
|
|
171
183
|
...inputData,
|
|
172
184
|
url
|
|
@@ -179,13 +191,13 @@ var getFileUploadPutRoute = (options, client) => async (req) => {
|
|
|
179
191
|
|
|
180
192
|
// src/file/setup.ts
|
|
181
193
|
function setupFileUpload(options) {
|
|
182
|
-
const client = getS3Client(
|
|
194
|
+
const client = getS3Client();
|
|
183
195
|
return {
|
|
184
196
|
PUT: getFileUploadPutRoute(options, client),
|
|
185
|
-
uploadFile: uploadFile(client
|
|
186
|
-
deleteFile: deleteFile(client
|
|
187
|
-
getUploadURL: getUploadURL(client
|
|
188
|
-
getDownloadURL
|
|
197
|
+
uploadFile: uploadFile(client),
|
|
198
|
+
deleteFile: deleteFile(client),
|
|
199
|
+
getUploadURL: getUploadURL(client),
|
|
200
|
+
getDownloadURL
|
|
189
201
|
};
|
|
190
202
|
}
|
|
191
203
|
// Annotate the CommonJS export names for ESM import in node:
|
package/dist/file/index.d.mts
CHANGED
package/dist/file/index.d.ts
CHANGED