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
@@ -5,29 +5,82 @@ import {
5
5
  S3Client
6
6
  } from "@aws-sdk/client-s3";
7
7
  import { getSignedUrl } from "@aws-sdk/s3-request-presigner";
8
- var getS3Client = (options) => new S3Client({
9
- region: options.region,
8
+
9
+ // src/env.ts
10
+ var getEnvValue = (key) => {
11
+ switch (key) {
12
+ case "NEXT_PUBLIC_GRAPHQL_ENDPOINT" /* NEXT_PUBLIC_GRAPHQL_ENDPOINT */:
13
+ return process.env.NEXT_PUBLIC_GRAPHQL_ENDPOINT;
14
+ case "NEXT_PUBLIC_EMAIL_AUTH_ENDPOINT" /* NEXT_PUBLIC_EMAIL_AUTH_ENDPOINT */:
15
+ return process.env.NEXT_PUBLIC_EMAIL_AUTH_ENDPOINT;
16
+ case "NEXT_PUBLIC_GOOGLE_AUTH_ENDPOINT" /* NEXT_PUBLIC_GOOGLE_AUTH_ENDPOINT */:
17
+ return process.env.NEXT_PUBLIC_GOOGLE_AUTH_ENDPOINT;
18
+ case "NEXT_PUBLIC_INSTAGRAM_AUTH_ENDPOINT" /* NEXT_PUBLIC_INSTAGRAM_AUTH_ENDPOINT */:
19
+ return process.env.NEXT_PUBLIC_INSTAGRAM_AUTH_ENDPOINT;
20
+ case "NEXT_PUBLIC_FILE_ENDPOINT" /* NEXT_PUBLIC_FILE_ENDPOINT */:
21
+ return process.env.NEXT_PUBLIC_FILE_ENDPOINT;
22
+ case "NEXT_PUBLIC_BASE_URL" /* NEXT_PUBLIC_BASE_URL */:
23
+ return process.env.NEXT_PUBLIC_BASE_URL;
24
+ case "REFRESH_KEY" /* REFRESH_KEY */:
25
+ return process.env.REFRESH_KEY;
26
+ case "SIGNING_KEY" /* SIGNING_KEY */:
27
+ return process.env.SIGNING_KEY;
28
+ case "INSTAGRAM_CLIENT_SECRET" /* INSTAGRAM_CLIENT_SECRET */:
29
+ return process.env.INSTAGRAM_CLIENT_SECRET;
30
+ case "INSTAGRAM_CLIENT_ID" /* INSTAGRAM_CLIENT_ID */:
31
+ return process.env.INSTAGRAM_CLIENT_ID;
32
+ case "GOOGLE_CLIENT_SECRET" /* GOOGLE_CLIENT_SECRET */:
33
+ return process.env.GOOGLE_CLIENT_SECRET;
34
+ case "GOOGLE_CLIENT_ID" /* GOOGLE_CLIENT_ID */:
35
+ return process.env.GOOGLE_CLIENT_ID;
36
+ case "TURNSTILE_KEY" /* TURNSTILE_KEY */:
37
+ return process.env.TURNSTILE_KEY;
38
+ case "AWS_ACCESS_KEY_ID" /* AWS_ACCESS_KEY_ID */:
39
+ return process.env.AWS_ACCESS_KEY_ID;
40
+ case "AWS_ACCESS_KEY_SECRET" /* AWS_ACCESS_KEY_SECRET */:
41
+ return process.env.AWS_ACCESS_KEY_SECRET;
42
+ case "AWS_REGION" /* AWS_REGION */:
43
+ return process.env.AWS_REGION;
44
+ case "AWS_BUCKET" /* AWS_BUCKET */:
45
+ return process.env.AWS_BUCKET;
46
+ case "NODE_ENV" /* NODE_ENV */:
47
+ return process.env.NODE_ENV;
48
+ default:
49
+ return process.env[key];
50
+ }
51
+ };
52
+ function getEnv(key, skipCheck) {
53
+ const value = getEnvValue(key);
54
+ if (!skipCheck && !value) throw new Error(`${key} is not defined`);
55
+ return value;
56
+ }
57
+
58
+ // src/file/utils.ts
59
+ var getS3Client = () => new S3Client({
60
+ region: getEnv("AWS_REGION" /* AWS_REGION */),
10
61
  credentials: {
11
- accessKeyId: options.awsKey,
12
- secretAccessKey: options.awsSecret
62
+ accessKeyId: getEnv("AWS_ACCESS_KEY_ID" /* AWS_ACCESS_KEY_ID */),
63
+ secretAccessKey: getEnv("AWS_ACCESS_KEY_SECRET" /* AWS_ACCESS_KEY_SECRET */)
13
64
  }
14
65
  });
15
- var getURLPrefix = (options) => `https://${options.bucket}.s3.${options.region}.amazonaws.com/`;
66
+ var URL_PREFIX = `https://${getEnv("AWS_BUCKET" /* AWS_BUCKET */)}.s3.${getEnv(
67
+ "AWS_REGION" /* AWS_REGION */
68
+ )}.amazonaws.com/`;
16
69
  function getKey(keys) {
17
70
  return typeof keys === "string" ? keys : keys.join("/");
18
71
  }
19
- var getUploadURL = (client, Bucket) => (keys) => {
72
+ var getUploadURL = (client) => (keys) => {
20
73
  const command = new PutObjectCommand({
21
- Bucket,
74
+ Bucket: getEnv("AWS_BUCKET" /* AWS_BUCKET */),
22
75
  Key: getKey(keys),
23
76
  ACL: "public-read"
24
77
  });
25
78
  return getSignedUrl(client, command, { expiresIn: 300 });
26
79
  };
27
- var getDownloadURL = (options) => (keys) => {
28
- return `${getURLPrefix(options)}${getKey(keys)}`;
80
+ var getDownloadURL = (keys) => {
81
+ return `${URL_PREFIX}${getKey(keys)}`;
29
82
  };
30
- var uploadFile = (client, options) => async (keys, {
83
+ var uploadFile = (client) => async (keys, {
31
84
  url,
32
85
  blob
33
86
  }) => {
@@ -35,18 +88,18 @@ var uploadFile = (client, options) => async (keys, {
35
88
  const fileBlob = blob || await fetch(url).then((file) => file.blob());
36
89
  if (fileBlob) {
37
90
  const key = getKey(keys);
38
- await uploadBlob(client, options.bucket)(fileBlob, key);
39
- return getDownloadURL(options)(key);
91
+ await uploadBlob(client)(fileBlob, key);
92
+ return getDownloadURL(key);
40
93
  }
41
94
  return null;
42
95
  };
43
- var deleteFile = (client, options) => async (url) => {
44
- const key = url.split(getURLPrefix(options))[1];
96
+ var deleteFile = (client) => async (url) => {
97
+ const key = url.split(URL_PREFIX)[1];
45
98
  if (key) {
46
99
  try {
47
100
  await client.send(
48
101
  new DeleteObjectCommand({
49
- Bucket: options.bucket,
102
+ Bucket: getEnv("AWS_BUCKET" /* AWS_BUCKET */),
50
103
  Key: key
51
104
  })
52
105
  );
@@ -57,11 +110,11 @@ var deleteFile = (client, options) => async (url) => {
57
110
  }
58
111
  return false;
59
112
  };
60
- var uploadBlob = (client, Bucket) => async (file, key) => {
113
+ var uploadBlob = (client) => async (file, key) => {
61
114
  const fileBuffer = await file.arrayBuffer();
62
115
  return client.send(
63
116
  new PutObjectCommand({
64
- Bucket,
117
+ Bucket: getEnv("AWS_BUCKET" /* AWS_BUCKET */),
65
118
  Key: key,
66
119
  ACL: "public-read",
67
120
  Body: Buffer.from(fileBuffer),
@@ -41,12 +41,66 @@ var import_client = require("@apollo/client");
41
41
  var import_client_integration_nextjs = require("@apollo/client-integration-nextjs");
42
42
  var import_client2 = require("naystack/auth/email/client");
43
43
  var import_react = __toESM(require("react"));
44
- var ApolloWrapper = ({ children, cacheConfig }) => {
44
+
45
+ // src/env.ts
46
+ var getEnvValue = (key) => {
47
+ switch (key) {
48
+ case "NEXT_PUBLIC_GRAPHQL_ENDPOINT" /* NEXT_PUBLIC_GRAPHQL_ENDPOINT */:
49
+ return process.env.NEXT_PUBLIC_GRAPHQL_ENDPOINT;
50
+ case "NEXT_PUBLIC_EMAIL_AUTH_ENDPOINT" /* NEXT_PUBLIC_EMAIL_AUTH_ENDPOINT */:
51
+ return process.env.NEXT_PUBLIC_EMAIL_AUTH_ENDPOINT;
52
+ case "NEXT_PUBLIC_GOOGLE_AUTH_ENDPOINT" /* NEXT_PUBLIC_GOOGLE_AUTH_ENDPOINT */:
53
+ return process.env.NEXT_PUBLIC_GOOGLE_AUTH_ENDPOINT;
54
+ case "NEXT_PUBLIC_INSTAGRAM_AUTH_ENDPOINT" /* NEXT_PUBLIC_INSTAGRAM_AUTH_ENDPOINT */:
55
+ return process.env.NEXT_PUBLIC_INSTAGRAM_AUTH_ENDPOINT;
56
+ case "NEXT_PUBLIC_FILE_ENDPOINT" /* NEXT_PUBLIC_FILE_ENDPOINT */:
57
+ return process.env.NEXT_PUBLIC_FILE_ENDPOINT;
58
+ case "NEXT_PUBLIC_BASE_URL" /* NEXT_PUBLIC_BASE_URL */:
59
+ return process.env.NEXT_PUBLIC_BASE_URL;
60
+ case "REFRESH_KEY" /* REFRESH_KEY */:
61
+ return process.env.REFRESH_KEY;
62
+ case "SIGNING_KEY" /* SIGNING_KEY */:
63
+ return process.env.SIGNING_KEY;
64
+ case "INSTAGRAM_CLIENT_SECRET" /* INSTAGRAM_CLIENT_SECRET */:
65
+ return process.env.INSTAGRAM_CLIENT_SECRET;
66
+ case "INSTAGRAM_CLIENT_ID" /* INSTAGRAM_CLIENT_ID */:
67
+ return process.env.INSTAGRAM_CLIENT_ID;
68
+ case "GOOGLE_CLIENT_SECRET" /* GOOGLE_CLIENT_SECRET */:
69
+ return process.env.GOOGLE_CLIENT_SECRET;
70
+ case "GOOGLE_CLIENT_ID" /* GOOGLE_CLIENT_ID */:
71
+ return process.env.GOOGLE_CLIENT_ID;
72
+ case "TURNSTILE_KEY" /* TURNSTILE_KEY */:
73
+ return process.env.TURNSTILE_KEY;
74
+ case "AWS_ACCESS_KEY_ID" /* AWS_ACCESS_KEY_ID */:
75
+ return process.env.AWS_ACCESS_KEY_ID;
76
+ case "AWS_ACCESS_KEY_SECRET" /* AWS_ACCESS_KEY_SECRET */:
77
+ return process.env.AWS_ACCESS_KEY_SECRET;
78
+ case "AWS_REGION" /* AWS_REGION */:
79
+ return process.env.AWS_REGION;
80
+ case "AWS_BUCKET" /* AWS_BUCKET */:
81
+ return process.env.AWS_BUCKET;
82
+ case "NODE_ENV" /* NODE_ENV */:
83
+ return process.env.NODE_ENV;
84
+ default:
85
+ return process.env[key];
86
+ }
87
+ };
88
+ function getEnv(key, skipCheck) {
89
+ const value = getEnvValue(key);
90
+ if (!skipCheck && !value) throw new Error(`${key} is not defined`);
91
+ return value;
92
+ }
93
+
94
+ // src/graphql/client.tsx
95
+ var ApolloWrapper = ({
96
+ children,
97
+ cacheConfig
98
+ }) => {
45
99
  function makeClient() {
46
100
  return new import_client_integration_nextjs.ApolloClient({
47
101
  cache: new import_client_integration_nextjs.InMemoryCache(cacheConfig),
48
102
  link: new import_client.HttpLink({
49
- uri: process.env.NEXT_PUBLIC_GRAPHQL_ENDPOINT
103
+ uri: getEnv("NEXT_PUBLIC_GRAPHQL_ENDPOINT" /* NEXT_PUBLIC_GRAPHQL_ENDPOINT */)
50
104
  })
51
105
  });
52
106
  }
@@ -90,7 +144,7 @@ function useAuthMutation(mutation, options) {
90
144
  const [mutate, result] = (0, import_client.useMutation)(mutation, options);
91
145
  const method = (0, import_react.useCallback)(
92
146
  (input) => mutate({
93
- // @ts-ignore
147
+ // @ts-expect-error -- to allow dynamic props
94
148
  variables: { input },
95
149
  context: tokenContext(token)
96
150
  }),
@@ -3,7 +3,7 @@ import { InMemoryCacheConfig, OperationVariables, MutationHookOptions } from '@a
3
3
  import { TypedDocumentNode } from '@graphql-typed-document-node/core';
4
4
  import React__default, { PropsWithChildren } from 'react';
5
5
 
6
- declare const ApolloWrapper: ({ children, cacheConfig }: PropsWithChildren<{
6
+ declare const ApolloWrapper: ({ children, cacheConfig, }: PropsWithChildren<{
7
7
  cacheConfig?: InMemoryCacheConfig;
8
8
  }>) => React__default.JSX.Element;
9
9
  declare const tokenContext: (token?: string | null) => {
@@ -3,7 +3,7 @@ import { InMemoryCacheConfig, OperationVariables, MutationHookOptions } from '@a
3
3
  import { TypedDocumentNode } from '@graphql-typed-document-node/core';
4
4
  import React__default, { PropsWithChildren } from 'react';
5
5
 
6
- declare const ApolloWrapper: ({ children, cacheConfig }: PropsWithChildren<{
6
+ declare const ApolloWrapper: ({ children, cacheConfig, }: PropsWithChildren<{
7
7
  cacheConfig?: InMemoryCacheConfig;
8
8
  }>) => React__default.JSX.Element;
9
9
  declare const tokenContext: (token?: string | null) => {
@@ -17,12 +17,66 @@ import React, {
17
17
  useEffect,
18
18
  useState
19
19
  } from "react";
20
- var ApolloWrapper = ({ children, cacheConfig }) => {
20
+
21
+ // src/env.ts
22
+ var getEnvValue = (key) => {
23
+ switch (key) {
24
+ case "NEXT_PUBLIC_GRAPHQL_ENDPOINT" /* NEXT_PUBLIC_GRAPHQL_ENDPOINT */:
25
+ return process.env.NEXT_PUBLIC_GRAPHQL_ENDPOINT;
26
+ case "NEXT_PUBLIC_EMAIL_AUTH_ENDPOINT" /* NEXT_PUBLIC_EMAIL_AUTH_ENDPOINT */:
27
+ return process.env.NEXT_PUBLIC_EMAIL_AUTH_ENDPOINT;
28
+ case "NEXT_PUBLIC_GOOGLE_AUTH_ENDPOINT" /* NEXT_PUBLIC_GOOGLE_AUTH_ENDPOINT */:
29
+ return process.env.NEXT_PUBLIC_GOOGLE_AUTH_ENDPOINT;
30
+ case "NEXT_PUBLIC_INSTAGRAM_AUTH_ENDPOINT" /* NEXT_PUBLIC_INSTAGRAM_AUTH_ENDPOINT */:
31
+ return process.env.NEXT_PUBLIC_INSTAGRAM_AUTH_ENDPOINT;
32
+ case "NEXT_PUBLIC_FILE_ENDPOINT" /* NEXT_PUBLIC_FILE_ENDPOINT */:
33
+ return process.env.NEXT_PUBLIC_FILE_ENDPOINT;
34
+ case "NEXT_PUBLIC_BASE_URL" /* NEXT_PUBLIC_BASE_URL */:
35
+ return process.env.NEXT_PUBLIC_BASE_URL;
36
+ case "REFRESH_KEY" /* REFRESH_KEY */:
37
+ return process.env.REFRESH_KEY;
38
+ case "SIGNING_KEY" /* SIGNING_KEY */:
39
+ return process.env.SIGNING_KEY;
40
+ case "INSTAGRAM_CLIENT_SECRET" /* INSTAGRAM_CLIENT_SECRET */:
41
+ return process.env.INSTAGRAM_CLIENT_SECRET;
42
+ case "INSTAGRAM_CLIENT_ID" /* INSTAGRAM_CLIENT_ID */:
43
+ return process.env.INSTAGRAM_CLIENT_ID;
44
+ case "GOOGLE_CLIENT_SECRET" /* GOOGLE_CLIENT_SECRET */:
45
+ return process.env.GOOGLE_CLIENT_SECRET;
46
+ case "GOOGLE_CLIENT_ID" /* GOOGLE_CLIENT_ID */:
47
+ return process.env.GOOGLE_CLIENT_ID;
48
+ case "TURNSTILE_KEY" /* TURNSTILE_KEY */:
49
+ return process.env.TURNSTILE_KEY;
50
+ case "AWS_ACCESS_KEY_ID" /* AWS_ACCESS_KEY_ID */:
51
+ return process.env.AWS_ACCESS_KEY_ID;
52
+ case "AWS_ACCESS_KEY_SECRET" /* AWS_ACCESS_KEY_SECRET */:
53
+ return process.env.AWS_ACCESS_KEY_SECRET;
54
+ case "AWS_REGION" /* AWS_REGION */:
55
+ return process.env.AWS_REGION;
56
+ case "AWS_BUCKET" /* AWS_BUCKET */:
57
+ return process.env.AWS_BUCKET;
58
+ case "NODE_ENV" /* NODE_ENV */:
59
+ return process.env.NODE_ENV;
60
+ default:
61
+ return process.env[key];
62
+ }
63
+ };
64
+ function getEnv(key, skipCheck) {
65
+ const value = getEnvValue(key);
66
+ if (!skipCheck && !value) throw new Error(`${key} is not defined`);
67
+ return value;
68
+ }
69
+
70
+ // src/graphql/client.tsx
71
+ var ApolloWrapper = ({
72
+ children,
73
+ cacheConfig
74
+ }) => {
21
75
  function makeClient() {
22
76
  return new ApolloClient({
23
77
  cache: new InMemoryCache(cacheConfig),
24
78
  link: new HttpLink({
25
- uri: process.env.NEXT_PUBLIC_GRAPHQL_ENDPOINT
79
+ uri: getEnv("NEXT_PUBLIC_GRAPHQL_ENDPOINT" /* NEXT_PUBLIC_GRAPHQL_ENDPOINT */)
26
80
  })
27
81
  });
28
82
  }
@@ -66,7 +120,7 @@ function useAuthMutation(mutation, options) {
66
120
  const [mutate, result] = useMutation(mutation, options);
67
121
  const method = useCallback(
68
122
  (input) => mutate({
69
- // @ts-ignore
123
+ // @ts-expect-error -- to allow dynamic props
70
124
  variables: { input },
71
125
  context: tokenContext(token)
72
126
  }),
@@ -575,6 +575,57 @@ var import_server = require("@apollo/server");
575
575
  var import_default = require("@apollo/server/plugin/landingPage/default");
576
576
  var import_next = require("@as-integrations/next");
577
577
  var import_type_graphql = require("type-graphql");
578
+
579
+ // src/env.ts
580
+ var getEnvValue = (key) => {
581
+ switch (key) {
582
+ case "NEXT_PUBLIC_GRAPHQL_ENDPOINT" /* NEXT_PUBLIC_GRAPHQL_ENDPOINT */:
583
+ return process.env.NEXT_PUBLIC_GRAPHQL_ENDPOINT;
584
+ case "NEXT_PUBLIC_EMAIL_AUTH_ENDPOINT" /* NEXT_PUBLIC_EMAIL_AUTH_ENDPOINT */:
585
+ return process.env.NEXT_PUBLIC_EMAIL_AUTH_ENDPOINT;
586
+ case "NEXT_PUBLIC_GOOGLE_AUTH_ENDPOINT" /* NEXT_PUBLIC_GOOGLE_AUTH_ENDPOINT */:
587
+ return process.env.NEXT_PUBLIC_GOOGLE_AUTH_ENDPOINT;
588
+ case "NEXT_PUBLIC_INSTAGRAM_AUTH_ENDPOINT" /* NEXT_PUBLIC_INSTAGRAM_AUTH_ENDPOINT */:
589
+ return process.env.NEXT_PUBLIC_INSTAGRAM_AUTH_ENDPOINT;
590
+ case "NEXT_PUBLIC_FILE_ENDPOINT" /* NEXT_PUBLIC_FILE_ENDPOINT */:
591
+ return process.env.NEXT_PUBLIC_FILE_ENDPOINT;
592
+ case "NEXT_PUBLIC_BASE_URL" /* NEXT_PUBLIC_BASE_URL */:
593
+ return process.env.NEXT_PUBLIC_BASE_URL;
594
+ case "REFRESH_KEY" /* REFRESH_KEY */:
595
+ return process.env.REFRESH_KEY;
596
+ case "SIGNING_KEY" /* SIGNING_KEY */:
597
+ return process.env.SIGNING_KEY;
598
+ case "INSTAGRAM_CLIENT_SECRET" /* INSTAGRAM_CLIENT_SECRET */:
599
+ return process.env.INSTAGRAM_CLIENT_SECRET;
600
+ case "INSTAGRAM_CLIENT_ID" /* INSTAGRAM_CLIENT_ID */:
601
+ return process.env.INSTAGRAM_CLIENT_ID;
602
+ case "GOOGLE_CLIENT_SECRET" /* GOOGLE_CLIENT_SECRET */:
603
+ return process.env.GOOGLE_CLIENT_SECRET;
604
+ case "GOOGLE_CLIENT_ID" /* GOOGLE_CLIENT_ID */:
605
+ return process.env.GOOGLE_CLIENT_ID;
606
+ case "TURNSTILE_KEY" /* TURNSTILE_KEY */:
607
+ return process.env.TURNSTILE_KEY;
608
+ case "AWS_ACCESS_KEY_ID" /* AWS_ACCESS_KEY_ID */:
609
+ return process.env.AWS_ACCESS_KEY_ID;
610
+ case "AWS_ACCESS_KEY_SECRET" /* AWS_ACCESS_KEY_SECRET */:
611
+ return process.env.AWS_ACCESS_KEY_SECRET;
612
+ case "AWS_REGION" /* AWS_REGION */:
613
+ return process.env.AWS_REGION;
614
+ case "AWS_BUCKET" /* AWS_BUCKET */:
615
+ return process.env.AWS_BUCKET;
616
+ case "NODE_ENV" /* NODE_ENV */:
617
+ return process.env.NODE_ENV;
618
+ default:
619
+ return process.env[key];
620
+ }
621
+ };
622
+ function getEnv(key, skipCheck) {
623
+ const value = getEnvValue(key);
624
+ if (!skipCheck && !value) throw new Error(`${key} is not defined`);
625
+ return value;
626
+ }
627
+
628
+ // src/graphql/init.ts
578
629
  async function initGraphQLServer({
579
630
  authChecker,
580
631
  resolvers,
@@ -590,7 +641,7 @@ async function initGraphQLServer({
590
641
  typeDefs,
591
642
  resolvers: builtResolvers,
592
643
  plugins: [
593
- process.env.NODE_ENV === "production" ? (0, import_default.ApolloServerPluginLandingPageProductionDefault)() : (0, import_default.ApolloServerPluginLandingPageLocalDefault)(),
644
+ getEnv("NODE_ENV" /* NODE_ENV */, true) === "production" ? (0, import_default.ApolloServerPluginLandingPageProductionDefault)() : (0, import_default.ApolloServerPluginLandingPageLocalDefault)(),
594
645
  {
595
646
  async requestDidStart({ request, contextValue }) {
596
647
  if (contextValue.isRefreshID && !request.query?.startsWith("query"))
@@ -599,7 +650,7 @@ async function initGraphQLServer({
599
650
  },
600
651
  ...plugins || []
601
652
  ],
602
- introspection: process.env.NODE_ENV !== "production",
653
+ introspection: getEnv("NODE_ENV" /* NODE_ENV */, true) !== "production",
603
654
  status400ForVariableCoercionErrors: true
604
655
  });
605
656
  const handler = (0, import_next.startServerAndCreateNextHandler)(server, {
@@ -612,9 +663,62 @@ async function initGraphQLServer({
612
663
  }
613
664
 
614
665
  // src/graphql/utils.ts
666
+ var import_cache = require("next/cache");
667
+ var import_headers2 = require("next/headers");
615
668
  var import_type_graphql2 = require("type-graphql");
669
+
670
+ // src/auth/constants.ts
671
+ var REFRESH_COOKIE_NAME = "refresh";
672
+
673
+ // src/auth/email/token.ts
674
+ var import_bcryptjs = require("bcryptjs");
675
+ var import_jsonwebtoken = require("jsonwebtoken");
676
+ var import_headers = require("next/headers");
677
+ var import_navigation = require("next/navigation");
678
+ var import_server2 = require("next/server");
679
+ function getUserIdFromRefreshToken(refreshKey, refreshToken) {
680
+ if (refreshToken)
681
+ try {
682
+ const decoded = (0, import_jsonwebtoken.verify)(refreshToken, refreshKey);
683
+ if (typeof decoded !== "string" && typeof decoded.id === "number")
684
+ return decoded.id;
685
+ } catch (e) {
686
+ if (!(e instanceof import_jsonwebtoken.JsonWebTokenError)) console.error(e, "errors");
687
+ return null;
688
+ }
689
+ return null;
690
+ }
691
+
692
+ // src/graphql/utils.ts
616
693
  function query(fn, options) {
617
- return { ...options, fn };
694
+ return { ...options, fn, call: getCaller(fn, options) };
695
+ }
696
+ var getUserId = async () => {
697
+ const Cookie = await (0, import_headers2.cookies)();
698
+ const refresh = Cookie.get(REFRESH_COOKIE_NAME)?.value;
699
+ return refresh ? getUserIdFromRefreshToken(refresh) : null;
700
+ };
701
+ function getCaller(fn, options) {
702
+ return async (data, config) => {
703
+ if (config?.revalidate) {
704
+ const cachedFn = (data2, config2) => {
705
+ "use cache";
706
+ if (config2?.revalidate) (0, import_cache.cacheLife)(config2.revalidate);
707
+ if (config2?.tags) (0, import_cache.cacheTag)(...config2.tags);
708
+ const ctx2 = {
709
+ userId: null,
710
+ isRefreshID: true
711
+ };
712
+ return fn(ctx2, data2);
713
+ };
714
+ return cachedFn(data, config);
715
+ }
716
+ const ctx = {
717
+ userId: options.authorized ? await getUserId() : null,
718
+ isRefreshID: true
719
+ };
720
+ return fn(ctx, data);
721
+ };
618
722
  }
619
723
  function field(fn, options) {
620
724
  return { ...options, fn };
@@ -7,3 +7,4 @@ import '@apollo/server';
7
7
  import 'next/server';
8
8
  import 'type-graphql';
9
9
  import 'graphql';
10
+ import 'next/cache';
@@ -7,3 +7,4 @@ import '@apollo/server';
7
7
  import 'next/server';
8
8
  import 'type-graphql';
9
9
  import 'graphql';
10
+ import 'next/cache';
@@ -562,6 +562,57 @@ import { startServerAndCreateNextHandler } from "@as-integrations/next";
562
562
  import {
563
563
  buildTypeDefsAndResolvers
564
564
  } from "type-graphql";
565
+
566
+ // src/env.ts
567
+ var getEnvValue = (key) => {
568
+ switch (key) {
569
+ case "NEXT_PUBLIC_GRAPHQL_ENDPOINT" /* NEXT_PUBLIC_GRAPHQL_ENDPOINT */:
570
+ return process.env.NEXT_PUBLIC_GRAPHQL_ENDPOINT;
571
+ case "NEXT_PUBLIC_EMAIL_AUTH_ENDPOINT" /* NEXT_PUBLIC_EMAIL_AUTH_ENDPOINT */:
572
+ return process.env.NEXT_PUBLIC_EMAIL_AUTH_ENDPOINT;
573
+ case "NEXT_PUBLIC_GOOGLE_AUTH_ENDPOINT" /* NEXT_PUBLIC_GOOGLE_AUTH_ENDPOINT */:
574
+ return process.env.NEXT_PUBLIC_GOOGLE_AUTH_ENDPOINT;
575
+ case "NEXT_PUBLIC_INSTAGRAM_AUTH_ENDPOINT" /* NEXT_PUBLIC_INSTAGRAM_AUTH_ENDPOINT */:
576
+ return process.env.NEXT_PUBLIC_INSTAGRAM_AUTH_ENDPOINT;
577
+ case "NEXT_PUBLIC_FILE_ENDPOINT" /* NEXT_PUBLIC_FILE_ENDPOINT */:
578
+ return process.env.NEXT_PUBLIC_FILE_ENDPOINT;
579
+ case "NEXT_PUBLIC_BASE_URL" /* NEXT_PUBLIC_BASE_URL */:
580
+ return process.env.NEXT_PUBLIC_BASE_URL;
581
+ case "REFRESH_KEY" /* REFRESH_KEY */:
582
+ return process.env.REFRESH_KEY;
583
+ case "SIGNING_KEY" /* SIGNING_KEY */:
584
+ return process.env.SIGNING_KEY;
585
+ case "INSTAGRAM_CLIENT_SECRET" /* INSTAGRAM_CLIENT_SECRET */:
586
+ return process.env.INSTAGRAM_CLIENT_SECRET;
587
+ case "INSTAGRAM_CLIENT_ID" /* INSTAGRAM_CLIENT_ID */:
588
+ return process.env.INSTAGRAM_CLIENT_ID;
589
+ case "GOOGLE_CLIENT_SECRET" /* GOOGLE_CLIENT_SECRET */:
590
+ return process.env.GOOGLE_CLIENT_SECRET;
591
+ case "GOOGLE_CLIENT_ID" /* GOOGLE_CLIENT_ID */:
592
+ return process.env.GOOGLE_CLIENT_ID;
593
+ case "TURNSTILE_KEY" /* TURNSTILE_KEY */:
594
+ return process.env.TURNSTILE_KEY;
595
+ case "AWS_ACCESS_KEY_ID" /* AWS_ACCESS_KEY_ID */:
596
+ return process.env.AWS_ACCESS_KEY_ID;
597
+ case "AWS_ACCESS_KEY_SECRET" /* AWS_ACCESS_KEY_SECRET */:
598
+ return process.env.AWS_ACCESS_KEY_SECRET;
599
+ case "AWS_REGION" /* AWS_REGION */:
600
+ return process.env.AWS_REGION;
601
+ case "AWS_BUCKET" /* AWS_BUCKET */:
602
+ return process.env.AWS_BUCKET;
603
+ case "NODE_ENV" /* NODE_ENV */:
604
+ return process.env.NODE_ENV;
605
+ default:
606
+ return process.env[key];
607
+ }
608
+ };
609
+ function getEnv(key, skipCheck) {
610
+ const value = getEnvValue(key);
611
+ if (!skipCheck && !value) throw new Error(`${key} is not defined`);
612
+ return value;
613
+ }
614
+
615
+ // src/graphql/init.ts
565
616
  async function initGraphQLServer({
566
617
  authChecker,
567
618
  resolvers,
@@ -577,7 +628,7 @@ async function initGraphQLServer({
577
628
  typeDefs,
578
629
  resolvers: builtResolvers,
579
630
  plugins: [
580
- process.env.NODE_ENV === "production" ? ApolloServerPluginLandingPageProductionDefault() : ApolloServerPluginLandingPageLocalDefault(),
631
+ getEnv("NODE_ENV" /* NODE_ENV */, true) === "production" ? ApolloServerPluginLandingPageProductionDefault() : ApolloServerPluginLandingPageLocalDefault(),
581
632
  {
582
633
  async requestDidStart({ request, contextValue }) {
583
634
  if (contextValue.isRefreshID && !request.query?.startsWith("query"))
@@ -586,7 +637,7 @@ async function initGraphQLServer({
586
637
  },
587
638
  ...plugins || []
588
639
  ],
589
- introspection: process.env.NODE_ENV !== "production",
640
+ introspection: getEnv("NODE_ENV" /* NODE_ENV */, true) !== "production",
590
641
  status400ForVariableCoercionErrors: true
591
642
  });
592
643
  const handler = startServerAndCreateNextHandler(server, {
@@ -599,6 +650,8 @@ async function initGraphQLServer({
599
650
  }
600
651
 
601
652
  // src/graphql/utils.ts
653
+ import { cacheLife, cacheTag } from "next/cache";
654
+ import { cookies as cookies2 } from "next/headers";
602
655
  import {
603
656
  Arg,
604
657
  Authorized,
@@ -609,8 +662,59 @@ import {
609
662
  Resolver,
610
663
  Root
611
664
  } from "type-graphql";
665
+
666
+ // src/auth/constants.ts
667
+ var REFRESH_COOKIE_NAME = "refresh";
668
+
669
+ // src/auth/email/token.ts
670
+ import { compare } from "bcryptjs";
671
+ import { JsonWebTokenError, sign, verify } from "jsonwebtoken";
672
+ import { cookies } from "next/headers";
673
+ import { redirect } from "next/navigation";
674
+ import { NextResponse } from "next/server";
675
+ function getUserIdFromRefreshToken(refreshKey, refreshToken) {
676
+ if (refreshToken)
677
+ try {
678
+ const decoded = verify(refreshToken, refreshKey);
679
+ if (typeof decoded !== "string" && typeof decoded.id === "number")
680
+ return decoded.id;
681
+ } catch (e) {
682
+ if (!(e instanceof JsonWebTokenError)) console.error(e, "errors");
683
+ return null;
684
+ }
685
+ return null;
686
+ }
687
+
688
+ // src/graphql/utils.ts
612
689
  function query(fn, options) {
613
- return { ...options, fn };
690
+ return { ...options, fn, call: getCaller(fn, options) };
691
+ }
692
+ var getUserId = async () => {
693
+ const Cookie = await cookies2();
694
+ const refresh = Cookie.get(REFRESH_COOKIE_NAME)?.value;
695
+ return refresh ? getUserIdFromRefreshToken(refresh) : null;
696
+ };
697
+ function getCaller(fn, options) {
698
+ return async (data, config) => {
699
+ if (config?.revalidate) {
700
+ const cachedFn = (data2, config2) => {
701
+ "use cache";
702
+ if (config2?.revalidate) cacheLife(config2.revalidate);
703
+ if (config2?.tags) cacheTag(...config2.tags);
704
+ const ctx2 = {
705
+ userId: null,
706
+ isRefreshID: true
707
+ };
708
+ return fn(ctx2, data2);
709
+ };
710
+ return cachedFn(data, config);
711
+ }
712
+ const ctx = {
713
+ userId: options.authorized ? await getUserId() : null,
714
+ isRefreshID: true
715
+ };
716
+ return fn(ctx, data);
717
+ };
614
718
  }
615
719
  function field(fn, options) {
616
720
  return { ...options, fn };
@@ -28,6 +28,57 @@ var import_server = require("@apollo/server");
28
28
  var import_default = require("@apollo/server/plugin/landingPage/default");
29
29
  var import_next = require("@as-integrations/next");
30
30
  var import_type_graphql = require("type-graphql");
31
+
32
+ // src/env.ts
33
+ var getEnvValue = (key) => {
34
+ switch (key) {
35
+ case "NEXT_PUBLIC_GRAPHQL_ENDPOINT" /* NEXT_PUBLIC_GRAPHQL_ENDPOINT */:
36
+ return process.env.NEXT_PUBLIC_GRAPHQL_ENDPOINT;
37
+ case "NEXT_PUBLIC_EMAIL_AUTH_ENDPOINT" /* NEXT_PUBLIC_EMAIL_AUTH_ENDPOINT */:
38
+ return process.env.NEXT_PUBLIC_EMAIL_AUTH_ENDPOINT;
39
+ case "NEXT_PUBLIC_GOOGLE_AUTH_ENDPOINT" /* NEXT_PUBLIC_GOOGLE_AUTH_ENDPOINT */:
40
+ return process.env.NEXT_PUBLIC_GOOGLE_AUTH_ENDPOINT;
41
+ case "NEXT_PUBLIC_INSTAGRAM_AUTH_ENDPOINT" /* NEXT_PUBLIC_INSTAGRAM_AUTH_ENDPOINT */:
42
+ return process.env.NEXT_PUBLIC_INSTAGRAM_AUTH_ENDPOINT;
43
+ case "NEXT_PUBLIC_FILE_ENDPOINT" /* NEXT_PUBLIC_FILE_ENDPOINT */:
44
+ return process.env.NEXT_PUBLIC_FILE_ENDPOINT;
45
+ case "NEXT_PUBLIC_BASE_URL" /* NEXT_PUBLIC_BASE_URL */:
46
+ return process.env.NEXT_PUBLIC_BASE_URL;
47
+ case "REFRESH_KEY" /* REFRESH_KEY */:
48
+ return process.env.REFRESH_KEY;
49
+ case "SIGNING_KEY" /* SIGNING_KEY */:
50
+ return process.env.SIGNING_KEY;
51
+ case "INSTAGRAM_CLIENT_SECRET" /* INSTAGRAM_CLIENT_SECRET */:
52
+ return process.env.INSTAGRAM_CLIENT_SECRET;
53
+ case "INSTAGRAM_CLIENT_ID" /* INSTAGRAM_CLIENT_ID */:
54
+ return process.env.INSTAGRAM_CLIENT_ID;
55
+ case "GOOGLE_CLIENT_SECRET" /* GOOGLE_CLIENT_SECRET */:
56
+ return process.env.GOOGLE_CLIENT_SECRET;
57
+ case "GOOGLE_CLIENT_ID" /* GOOGLE_CLIENT_ID */:
58
+ return process.env.GOOGLE_CLIENT_ID;
59
+ case "TURNSTILE_KEY" /* TURNSTILE_KEY */:
60
+ return process.env.TURNSTILE_KEY;
61
+ case "AWS_ACCESS_KEY_ID" /* AWS_ACCESS_KEY_ID */:
62
+ return process.env.AWS_ACCESS_KEY_ID;
63
+ case "AWS_ACCESS_KEY_SECRET" /* AWS_ACCESS_KEY_SECRET */:
64
+ return process.env.AWS_ACCESS_KEY_SECRET;
65
+ case "AWS_REGION" /* AWS_REGION */:
66
+ return process.env.AWS_REGION;
67
+ case "AWS_BUCKET" /* AWS_BUCKET */:
68
+ return process.env.AWS_BUCKET;
69
+ case "NODE_ENV" /* NODE_ENV */:
70
+ return process.env.NODE_ENV;
71
+ default:
72
+ return process.env[key];
73
+ }
74
+ };
75
+ function getEnv(key, skipCheck) {
76
+ const value = getEnvValue(key);
77
+ if (!skipCheck && !value) throw new Error(`${key} is not defined`);
78
+ return value;
79
+ }
80
+
81
+ // src/graphql/init.ts
31
82
  async function initGraphQLServer({
32
83
  authChecker,
33
84
  resolvers,
@@ -43,7 +94,7 @@ async function initGraphQLServer({
43
94
  typeDefs,
44
95
  resolvers: builtResolvers,
45
96
  plugins: [
46
- process.env.NODE_ENV === "production" ? (0, import_default.ApolloServerPluginLandingPageProductionDefault)() : (0, import_default.ApolloServerPluginLandingPageLocalDefault)(),
97
+ getEnv("NODE_ENV" /* NODE_ENV */, true) === "production" ? (0, import_default.ApolloServerPluginLandingPageProductionDefault)() : (0, import_default.ApolloServerPluginLandingPageLocalDefault)(),
47
98
  {
48
99
  async requestDidStart({ request, contextValue }) {
49
100
  if (contextValue.isRefreshID && !request.query?.startsWith("query"))
@@ -52,7 +103,7 @@ async function initGraphQLServer({
52
103
  },
53
104
  ...plugins || []
54
105
  ],
55
- introspection: process.env.NODE_ENV !== "production",
106
+ introspection: getEnv("NODE_ENV" /* NODE_ENV */, true) !== "production",
56
107
  status400ForVariableCoercionErrors: true
57
108
  });
58
109
  const handler = (0, import_next.startServerAndCreateNextHandler)(server, {