naystack 1.8.19 → 1.9.1
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/README.md +99 -34
- package/dist/auth/client.cjs.js +2 -2
- package/dist/auth/client.esm.js +2 -2
- package/dist/auth/email/client.cjs.js +2 -2
- package/dist/auth/email/client.esm.js +2 -2
- package/dist/auth/email/index.cjs.js +2 -2
- package/dist/auth/email/index.esm.js +2 -2
- package/dist/auth/email/next.cjs.js +2 -2
- package/dist/auth/email/next.esm.js +2 -2
- package/dist/auth/email/routes/delete.cjs.js +2 -2
- package/dist/auth/email/routes/delete.esm.js +2 -2
- package/dist/auth/email/routes/get.cjs.js +2 -2
- package/dist/auth/email/routes/get.esm.js +2 -2
- package/dist/auth/email/routes/post.cjs.js +2 -2
- package/dist/auth/email/routes/post.esm.js +2 -2
- package/dist/auth/email/routes/put.cjs.js +2 -2
- package/dist/auth/email/routes/put.esm.js +2 -2
- package/dist/auth/email/token.cjs.js +2 -2
- package/dist/auth/email/token.esm.js +2 -2
- package/dist/auth/email/utils.cjs.js +2 -2
- package/dist/auth/email/utils.esm.js +2 -2
- package/dist/auth/google/get.cjs.js +2 -2
- package/dist/auth/google/get.esm.js +2 -2
- package/dist/auth/google/index.cjs.js +2 -2
- package/dist/auth/google/index.esm.js +2 -2
- package/dist/auth/index.cjs.js +4 -306
- package/dist/auth/index.d.mts +0 -5
- package/dist/auth/index.d.ts +0 -5
- package/dist/auth/index.esm.js +3 -302
- package/dist/auth/token-store.cjs.js +2 -2
- package/dist/auth/token-store.esm.js +2 -2
- package/dist/env.cjs.js +3 -3
- package/dist/env.d.mts +3 -2
- package/dist/env.d.ts +3 -2
- package/dist/env.esm.js +3 -3
- package/dist/file/client.cjs.js +2 -2
- package/dist/file/client.esm.js +2 -2
- package/dist/file/index.cjs.js +2 -2
- package/dist/file/index.esm.js +2 -2
- package/dist/file/put.cjs.js +2 -2
- package/dist/file/put.esm.js +2 -2
- package/dist/file/setup.cjs.js +2 -2
- package/dist/file/setup.esm.js +2 -2
- package/dist/file/utils.cjs.js +2 -2
- package/dist/file/utils.esm.js +2 -2
- package/dist/graphql/client.cjs.js +2 -2
- package/dist/graphql/client.esm.js +2 -2
- package/dist/graphql/index.cjs.js +2 -2
- package/dist/graphql/index.esm.js +2 -2
- package/dist/graphql/init.cjs.js +2 -2
- package/dist/graphql/init.esm.js +2 -2
- package/dist/graphql/links.cjs.js +2 -2
- package/dist/graphql/links.esm.js +2 -2
- package/dist/graphql/next.cjs.js +2 -2
- package/dist/graphql/next.esm.js +2 -2
- package/dist/graphql/server.cjs.js +2 -2
- package/dist/graphql/server.esm.js +2 -2
- package/dist/graphql/utils.cjs.js +2 -2
- package/dist/graphql/utils.esm.js +2 -2
- package/dist/socials/connect.cjs.js +151 -0
- package/dist/socials/connect.d.mts +70 -0
- package/dist/socials/connect.d.ts +70 -0
- package/dist/socials/connect.esm.js +126 -0
- package/dist/socials/index.cjs.js +345 -21
- package/dist/socials/index.d.mts +8 -2
- package/dist/socials/index.d.ts +8 -2
- package/dist/socials/index.esm.js +335 -20
- package/dist/socials/instagram/adapter.cjs.js +276 -0
- package/dist/socials/instagram/adapter.d.mts +30 -0
- package/dist/socials/instagram/adapter.d.ts +30 -0
- package/dist/socials/instagram/adapter.esm.js +249 -0
- package/dist/{auth/instagram/utils.cjs.js → socials/instagram/auth.cjs.js} +43 -41
- package/dist/socials/instagram/auth.d.mts +52 -0
- package/dist/socials/instagram/auth.d.ts +52 -0
- package/dist/{auth/instagram/utils.esm.js → socials/instagram/auth.esm.js} +37 -35
- package/dist/socials/instagram/getters.d.mts +1 -0
- package/dist/socials/instagram/getters.d.ts +1 -0
- package/dist/socials/instagram/setters.cjs.js +33 -17
- package/dist/socials/instagram/setters.d.mts +1 -0
- package/dist/socials/instagram/setters.d.ts +1 -0
- package/dist/socials/instagram/setters.esm.js +33 -17
- package/dist/socials/instagram/types.d.mts +2 -1
- package/dist/socials/instagram/types.d.ts +2 -1
- package/dist/socials/meta/container.cjs.js +34 -16
- package/dist/socials/meta/container.d.mts +5 -27
- package/dist/socials/meta/container.d.ts +5 -27
- package/dist/socials/meta/container.esm.js +33 -17
- package/dist/socials/provider.cjs.js +18 -0
- package/dist/socials/provider.d.mts +54 -0
- package/dist/socials/provider.d.ts +54 -0
- package/dist/socials/provider.esm.js +0 -0
- package/dist/socials/threads/getters.d.mts +1 -0
- package/dist/socials/threads/getters.d.ts +1 -0
- package/dist/socials/threads/setters.cjs.js +33 -17
- package/dist/socials/threads/setters.d.mts +1 -0
- package/dist/socials/threads/setters.d.ts +1 -0
- package/dist/socials/threads/setters.esm.js +33 -17
- package/dist/socials/threads/types.d.mts +2 -1
- package/dist/socials/threads/types.d.ts +2 -1
- package/dist/socials/types.cjs.js +43 -0
- package/dist/socials/types.d.mts +99 -0
- package/dist/socials/types.d.ts +99 -0
- package/dist/socials/types.esm.js +17 -0
- package/dist/socials/utils/poll.cjs.js +59 -0
- package/dist/socials/utils/poll.d.mts +85 -0
- package/dist/socials/utils/poll.d.ts +85 -0
- package/dist/socials/utils/poll.esm.js +33 -0
- package/dist/utils/client/index.cjs.js +2 -2
- package/dist/utils/client/index.esm.js +2 -2
- package/dist/utils/client/seo.cjs.js +2 -2
- package/dist/utils/client/seo.esm.js +2 -2
- package/package.json +1 -1
- package/dist/auth/instagram/index.cjs.js +0 -388
- package/dist/auth/instagram/index.d.mts +0 -58
- package/dist/auth/instagram/index.d.ts +0 -58
- package/dist/auth/instagram/index.esm.js +0 -359
- package/dist/auth/instagram/route.cjs.js +0 -368
- package/dist/auth/instagram/route.d.mts +0 -15
- package/dist/auth/instagram/route.d.ts +0 -15
- package/dist/auth/instagram/route.esm.js +0 -343
- package/dist/auth/instagram/utils.d.mts +0 -57
- package/dist/auth/instagram/utils.d.ts +0 -57
package/dist/auth/index.cjs.js
CHANGED
|
@@ -34,13 +34,10 @@ __export(auth_exports, {
|
|
|
34
34
|
AuthWrapper: () => AuthWrapper,
|
|
35
35
|
checkAuthStatus: () => checkAuthStatus,
|
|
36
36
|
getContext: () => getContext,
|
|
37
|
-
getInstagramAuthorizationURL: () => getInstagramAuthorizationURL,
|
|
38
37
|
getRefreshToken: () => getRefreshToken,
|
|
39
|
-
getRefreshedInstagramAccessToken: () => getRefreshedInstagramAccessToken,
|
|
40
38
|
getTokenizedResponse: () => getTokenizedResponse,
|
|
41
39
|
setupEmailAuth: () => setupEmailAuth,
|
|
42
|
-
setupGoogleAuth: () => setupGoogleAuth
|
|
43
|
-
setupInstagramAuth: () => setupInstagramAuth
|
|
40
|
+
setupGoogleAuth: () => setupGoogleAuth
|
|
44
41
|
});
|
|
45
42
|
module.exports = __toCommonJS(auth_exports);
|
|
46
43
|
|
|
@@ -107,8 +104,8 @@ var getEnvValue = (key) => {
|
|
|
107
104
|
return process.env.NEXT_PUBLIC_EMAIL_AUTH_ENDPOINT || EXTRA_ENV.EMAIL_AUTH_ENDPOINT;
|
|
108
105
|
case "NEXT_PUBLIC_GOOGLE_AUTH_ENDPOINT" /* NEXT_PUBLIC_GOOGLE_AUTH_ENDPOINT */:
|
|
109
106
|
return process.env.NEXT_PUBLIC_GOOGLE_AUTH_ENDPOINT || EXTRA_ENV.GOOGLE_AUTH_ENDPOINT;
|
|
110
|
-
case "
|
|
111
|
-
return process.env.
|
|
107
|
+
case "NEXT_PUBLIC_SOCIAL_AUTH_ENDPOINT" /* NEXT_PUBLIC_SOCIAL_AUTH_ENDPOINT */:
|
|
108
|
+
return process.env.NEXT_PUBLIC_SOCIAL_AUTH_ENDPOINT || EXTRA_ENV.SOCIAL_AUTH_ENDPOINT;
|
|
112
109
|
case "NEXT_PUBLIC_FILE_ENDPOINT" /* NEXT_PUBLIC_FILE_ENDPOINT */:
|
|
113
110
|
return process.env.NEXT_PUBLIC_FILE_ENDPOINT || EXTRA_ENV.FILE_ENDPOINT;
|
|
114
111
|
case "NEXT_PUBLIC_BASE_URL" /* NEXT_PUBLIC_BASE_URL */:
|
|
@@ -192,18 +189,6 @@ function getUserIdFromRefreshToken(refreshToken) {
|
|
|
192
189
|
}
|
|
193
190
|
return null;
|
|
194
191
|
}
|
|
195
|
-
function getUserIdFromAccessToken(accessToken) {
|
|
196
|
-
if (accessToken)
|
|
197
|
-
try {
|
|
198
|
-
const decoded = (0, import_jsonwebtoken.verify)(accessToken, getEnv("SIGNING_KEY" /* SIGNING_KEY */));
|
|
199
|
-
if (typeof decoded !== "string" && typeof decoded.id === "number")
|
|
200
|
-
return decoded.id;
|
|
201
|
-
} catch (e) {
|
|
202
|
-
if (!(e instanceof import_jsonwebtoken.JsonWebTokenError)) console.error(e, "errors");
|
|
203
|
-
return null;
|
|
204
|
-
}
|
|
205
|
-
return null;
|
|
206
|
-
}
|
|
207
192
|
function verifyUser(user, password) {
|
|
208
193
|
if (!user.password) return false;
|
|
209
194
|
return (0, import_bcryptjs.compare)(password, user.password);
|
|
@@ -574,290 +559,6 @@ function setupGoogleAuth(props) {
|
|
|
574
559
|
};
|
|
575
560
|
}
|
|
576
561
|
|
|
577
|
-
// src/auth/instagram/route.ts
|
|
578
|
-
var import_server8 = require("next/server");
|
|
579
|
-
|
|
580
|
-
// src/auth/instagram/utils.ts
|
|
581
|
-
async function getRefreshedInstagramAccessToken(token) {
|
|
582
|
-
const request = await fetch(
|
|
583
|
-
`https://graph.instagram.com/refresh_access_token?grant_type=ig_refresh_token&access_token=${token}`
|
|
584
|
-
);
|
|
585
|
-
const response = await request.json();
|
|
586
|
-
return response.access_token;
|
|
587
|
-
}
|
|
588
|
-
async function getLongLivedToken(code, redirectURL, clientId, clientSecret) {
|
|
589
|
-
const formData = new FormData();
|
|
590
|
-
formData.set("client_id", clientId);
|
|
591
|
-
formData.set("client_secret", clientSecret);
|
|
592
|
-
formData.set("grant_type", "authorization_code");
|
|
593
|
-
formData.set("redirect_uri", redirectURL);
|
|
594
|
-
formData.set("code", code);
|
|
595
|
-
const shortRes = await fetch("https://api.instagram.com/oauth/access_token", {
|
|
596
|
-
method: "POST",
|
|
597
|
-
body: formData
|
|
598
|
-
});
|
|
599
|
-
if (shortRes.ok) {
|
|
600
|
-
const shortResData = await shortRes.json();
|
|
601
|
-
if (shortResData.access_token) {
|
|
602
|
-
const shortLivedToken = shortResData.access_token;
|
|
603
|
-
const longRes = await fetch(
|
|
604
|
-
`https://graph.instagram.com/access_token?grant_type=ig_exchange_token&access_token=${shortLivedToken}&client_secret=${getEnv("INSTAGRAM_CLIENT_SECRET" /* INSTAGRAM_CLIENT_SECRET */)}`
|
|
605
|
-
);
|
|
606
|
-
if (longRes.ok) {
|
|
607
|
-
const longResData = await longRes.json();
|
|
608
|
-
return {
|
|
609
|
-
accessToken: longResData.access_token,
|
|
610
|
-
userId: shortResData.user_id
|
|
611
|
-
};
|
|
612
|
-
}
|
|
613
|
-
}
|
|
614
|
-
}
|
|
615
|
-
}
|
|
616
|
-
var getInstagramAuthorizationURL = (token, scopes = ["instagram_business_basic"]) => `https://www.instagram.com/oauth/authorize/?client_id=${getEnv(
|
|
617
|
-
"INSTAGRAM_CLIENT_ID" /* INSTAGRAM_CLIENT_ID */
|
|
618
|
-
)}&response_type=code&enable_fb_login=0&force_authentication=1&scope=${scopes.join(",")}&state=${token}&redirect_uri=${getEnv("NEXT_PUBLIC_INSTAGRAM_AUTH_ENDPOINT" /* NEXT_PUBLIC_INSTAGRAM_AUTH_ENDPOINT */)}#weblink`;
|
|
619
|
-
|
|
620
|
-
// src/socials/meta/request.ts
|
|
621
|
-
function createGraphClient(baseURL) {
|
|
622
|
-
const buildURL = (token, path, params = {}) => {
|
|
623
|
-
const search = new URLSearchParams();
|
|
624
|
-
for (const [key, value] of Object.entries(params)) {
|
|
625
|
-
if (value !== void 0) search.set(key, String(value));
|
|
626
|
-
}
|
|
627
|
-
search.set("access_token", token);
|
|
628
|
-
return `${baseURL}/${path}?${search.toString()}`;
|
|
629
|
-
};
|
|
630
|
-
const request = async (token, path, options = {}) => {
|
|
631
|
-
const response = await fetch(buildURL(token, path, options.params), {
|
|
632
|
-
method: options.method || (options.body ? "POST" : "GET"),
|
|
633
|
-
headers: {
|
|
634
|
-
Authorization: `Bearer ${token}`,
|
|
635
|
-
...options.body ? { "Content-Type": "application/json" } : {}
|
|
636
|
-
},
|
|
637
|
-
...options.body ? { body: JSON.stringify(options.body) } : {}
|
|
638
|
-
});
|
|
639
|
-
return response.json().catch(() => null);
|
|
640
|
-
};
|
|
641
|
-
return { buildURL, request };
|
|
642
|
-
}
|
|
643
|
-
function readGraphID(label, result) {
|
|
644
|
-
if (result?.error) {
|
|
645
|
-
console.error(`[naystack] ${label} failed: ${result.error.message}`);
|
|
646
|
-
return null;
|
|
647
|
-
}
|
|
648
|
-
return result?.id || null;
|
|
649
|
-
}
|
|
650
|
-
|
|
651
|
-
// src/socials/instagram/utils.ts
|
|
652
|
-
var client = createGraphClient("https://graph.instagram.com/v23.0");
|
|
653
|
-
var getInstagramData = client.request;
|
|
654
|
-
|
|
655
|
-
// src/socials/instagram/getters.ts
|
|
656
|
-
var getInstagramUser = (token, id, fields) => {
|
|
657
|
-
return getInstagramData(token, id || "me", {
|
|
658
|
-
params: {
|
|
659
|
-
fields: fields ? fields.join(",") : "username,followers_count,media_count"
|
|
660
|
-
}
|
|
661
|
-
});
|
|
662
|
-
};
|
|
663
|
-
var getInstagramContainerStatus = async (token, id) => {
|
|
664
|
-
const result = await getInstagramData(token, id, { params: { fields: "status_code,status" } });
|
|
665
|
-
if (!result?.status_code) return null;
|
|
666
|
-
return {
|
|
667
|
-
status: result.status_code,
|
|
668
|
-
error: result.status_code === "ERROR" ? result.status : void 0
|
|
669
|
-
};
|
|
670
|
-
};
|
|
671
|
-
|
|
672
|
-
// src/socials/meta/container.ts
|
|
673
|
-
var sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
|
|
674
|
-
async function waitForContainer(getState, { intervalMS = 5e3, timeoutMS = 3e5 } = {}) {
|
|
675
|
-
const deadline = Date.now() + timeoutMS;
|
|
676
|
-
let state = await getState();
|
|
677
|
-
if (!state) {
|
|
678
|
-
await sleep(2e3);
|
|
679
|
-
return null;
|
|
680
|
-
}
|
|
681
|
-
while (state?.status === "IN_PROGRESS" && Date.now() < deadline) {
|
|
682
|
-
await sleep(intervalMS);
|
|
683
|
-
state = await getState();
|
|
684
|
-
}
|
|
685
|
-
return state;
|
|
686
|
-
}
|
|
687
|
-
function createPublisher(platform) {
|
|
688
|
-
const isReady = async (token, id, label, wait) => {
|
|
689
|
-
const state = await waitForContainer(
|
|
690
|
-
() => platform.getStatus(token, id),
|
|
691
|
-
wait
|
|
692
|
-
);
|
|
693
|
-
if (state && state.status !== "FINISHED" && state.status !== "PUBLISHED") {
|
|
694
|
-
console.error(
|
|
695
|
-
`[naystack] ${platform.name} ${label} ${id} is ${state.status}${state.error ? `: ${state.error}` : ""}`
|
|
696
|
-
);
|
|
697
|
-
return false;
|
|
698
|
-
}
|
|
699
|
-
return true;
|
|
700
|
-
};
|
|
701
|
-
const createReady = async (token, params, label, wait, retry) => {
|
|
702
|
-
const attempts = Math.max(1, retry?.attempts ?? 3);
|
|
703
|
-
const backoffMS = retry?.backoffMS ?? 2e3;
|
|
704
|
-
for (let attempt = 1; attempt <= attempts; attempt++) {
|
|
705
|
-
const id = await platform.createContainer(token, params);
|
|
706
|
-
if (id && await isReady(token, id, label, wait)) return id;
|
|
707
|
-
if (attempt < attempts) {
|
|
708
|
-
const delay = backoffMS * 2 ** (attempt - 1);
|
|
709
|
-
console.warn(
|
|
710
|
-
`[naystack] ${platform.name} ${label} attempt ${attempt}/${attempts} failed \u2014 retrying in ${delay}ms`
|
|
711
|
-
);
|
|
712
|
-
await sleep(delay);
|
|
713
|
-
}
|
|
714
|
-
}
|
|
715
|
-
return null;
|
|
716
|
-
};
|
|
717
|
-
return {
|
|
718
|
-
/** Creates a container, waits for it to finish processing, then publishes it. */
|
|
719
|
-
publish: async (token, params, wait, retry) => {
|
|
720
|
-
const containerID = await createReady(
|
|
721
|
-
token,
|
|
722
|
-
params,
|
|
723
|
-
"container",
|
|
724
|
-
wait,
|
|
725
|
-
retry
|
|
726
|
-
);
|
|
727
|
-
if (!containerID) return null;
|
|
728
|
-
return platform.publish(token, containerID);
|
|
729
|
-
},
|
|
730
|
-
/**
|
|
731
|
-
* Creates and awaits every carousel child **in parallel**, resolving to
|
|
732
|
-
* their ids in input order — or `null` if any failed.
|
|
733
|
-
*
|
|
734
|
-
* Parallel because each child is an independent create-then-poll and Meta
|
|
735
|
-
* spends ~5s accepting a single container, so ten sequential children cost
|
|
736
|
-
* ~50s of mostly waiting — past what a serverless caller can fit in its
|
|
737
|
-
* timeout. `Promise.all` preserves input order, which the carousel's slide
|
|
738
|
-
* order depends on.
|
|
739
|
-
*/
|
|
740
|
-
createChildren: async (token, items, wait, retry) => {
|
|
741
|
-
const children = await Promise.all(
|
|
742
|
-
items.map(
|
|
743
|
-
(item) => createReady(
|
|
744
|
-
token,
|
|
745
|
-
{ ...item, is_carousel_item: true },
|
|
746
|
-
"carousel item",
|
|
747
|
-
wait,
|
|
748
|
-
retry
|
|
749
|
-
)
|
|
750
|
-
)
|
|
751
|
-
);
|
|
752
|
-
const created = children.filter((childID) => childID !== null);
|
|
753
|
-
return created.length === children.length ? created : null;
|
|
754
|
-
}
|
|
755
|
-
};
|
|
756
|
-
}
|
|
757
|
-
|
|
758
|
-
// src/socials/instagram/setters.ts
|
|
759
|
-
var publisher = createPublisher({
|
|
760
|
-
name: "Instagram",
|
|
761
|
-
getStatus: getInstagramContainerStatus,
|
|
762
|
-
createContainer: async (token, params) => readGraphID(
|
|
763
|
-
"Instagram media container",
|
|
764
|
-
await getInstagramData(token, "me/media", {
|
|
765
|
-
params,
|
|
766
|
-
method: "POST"
|
|
767
|
-
})
|
|
768
|
-
),
|
|
769
|
-
publish: async (token, creationID) => readGraphID(
|
|
770
|
-
"Instagram publish",
|
|
771
|
-
await getInstagramData(token, "me/media_publish", {
|
|
772
|
-
params: { creation_id: creationID },
|
|
773
|
-
method: "POST"
|
|
774
|
-
})
|
|
775
|
-
)
|
|
776
|
-
});
|
|
777
|
-
|
|
778
|
-
// src/socials/meta/webhook.ts
|
|
779
|
-
var import_server7 = require("next/server");
|
|
780
|
-
|
|
781
|
-
// src/socials/threads/utils.ts
|
|
782
|
-
var client2 = createGraphClient("https://graph.threads.net/v1.0");
|
|
783
|
-
var getThreadsData = client2.request;
|
|
784
|
-
|
|
785
|
-
// src/socials/threads/getters.ts
|
|
786
|
-
var getThreadsContainerStatus = async (token, id) => {
|
|
787
|
-
const result = await getThreadsData(token, id, { params: { fields: "status,error_message" } });
|
|
788
|
-
if (!result?.status) return null;
|
|
789
|
-
return { status: result.status, error: result.error_message };
|
|
790
|
-
};
|
|
791
|
-
|
|
792
|
-
// src/socials/threads/setters.ts
|
|
793
|
-
var publisher2 = createPublisher({
|
|
794
|
-
name: "Threads",
|
|
795
|
-
getStatus: getThreadsContainerStatus,
|
|
796
|
-
createContainer: async (token, params) => readGraphID(
|
|
797
|
-
"Threads container",
|
|
798
|
-
await getThreadsData(token, "me/threads", {
|
|
799
|
-
params,
|
|
800
|
-
method: "POST"
|
|
801
|
-
})
|
|
802
|
-
),
|
|
803
|
-
publish: async (token, creationID) => readGraphID(
|
|
804
|
-
"Threads publish",
|
|
805
|
-
await getThreadsData(token, "me/threads_publish", {
|
|
806
|
-
params: { creation_id: creationID },
|
|
807
|
-
method: "POST"
|
|
808
|
-
})
|
|
809
|
-
)
|
|
810
|
-
});
|
|
811
|
-
|
|
812
|
-
// src/auth/instagram/route.ts
|
|
813
|
-
var getInstagramRoute = ({
|
|
814
|
-
redirectURL,
|
|
815
|
-
errorRedirectURL,
|
|
816
|
-
onUser,
|
|
817
|
-
scopes
|
|
818
|
-
}) => {
|
|
819
|
-
const handleError2 = (message) => import_server8.NextResponse.redirect(`${errorRedirectURL}?error=${message}`);
|
|
820
|
-
return async (req) => {
|
|
821
|
-
const accessCode = req.nextUrl.searchParams.get("code");
|
|
822
|
-
const error = req.nextUrl.searchParams.get("error");
|
|
823
|
-
const stateToken = req.nextUrl.searchParams.get("state");
|
|
824
|
-
if (error) return handleError2(error);
|
|
825
|
-
if (!accessCode) {
|
|
826
|
-
if (!stateToken) return handleError2("Invalid request");
|
|
827
|
-
return import_server8.NextResponse.redirect(
|
|
828
|
-
getInstagramAuthorizationURL(stateToken, scopes),
|
|
829
|
-
302
|
|
830
|
-
);
|
|
831
|
-
}
|
|
832
|
-
if (!stateToken) return handleError2("Invalid request");
|
|
833
|
-
const instagramData = await getLongLivedToken(
|
|
834
|
-
accessCode,
|
|
835
|
-
getEnv("NEXT_PUBLIC_INSTAGRAM_AUTH_ENDPOINT" /* NEXT_PUBLIC_INSTAGRAM_AUTH_ENDPOINT */),
|
|
836
|
-
getEnv("INSTAGRAM_CLIENT_ID" /* INSTAGRAM_CLIENT_ID */),
|
|
837
|
-
getEnv("INSTAGRAM_CLIENT_SECRET" /* INSTAGRAM_CLIENT_SECRET */)
|
|
838
|
-
);
|
|
839
|
-
if (!instagramData?.accessToken)
|
|
840
|
-
return handleError2("Unable to reach Instagram");
|
|
841
|
-
const personalInfo = await getInstagramUser(instagramData.accessToken);
|
|
842
|
-
if (!personalInfo?.username) return handleError2("You are not logged in");
|
|
843
|
-
const loggedInUserID = getUserIdFromAccessToken(stateToken);
|
|
844
|
-
const errorMessage = await onUser(
|
|
845
|
-
personalInfo,
|
|
846
|
-
loggedInUserID,
|
|
847
|
-
instagramData.accessToken
|
|
848
|
-
);
|
|
849
|
-
if (errorMessage) return handleError2(errorMessage);
|
|
850
|
-
return import_server8.NextResponse.redirect(redirectURL);
|
|
851
|
-
};
|
|
852
|
-
};
|
|
853
|
-
|
|
854
|
-
// src/auth/instagram/index.ts
|
|
855
|
-
function setupInstagramAuth(props) {
|
|
856
|
-
return {
|
|
857
|
-
GET: getInstagramRoute(props)
|
|
858
|
-
};
|
|
859
|
-
}
|
|
860
|
-
|
|
861
562
|
// src/auth/utils/token.ts
|
|
862
563
|
var import_headers4 = require("next/headers");
|
|
863
564
|
async function getRefreshToken() {
|
|
@@ -870,11 +571,8 @@ async function getRefreshToken() {
|
|
|
870
571
|
AuthWrapper,
|
|
871
572
|
checkAuthStatus,
|
|
872
573
|
getContext,
|
|
873
|
-
getInstagramAuthorizationURL,
|
|
874
574
|
getRefreshToken,
|
|
875
|
-
getRefreshedInstagramAccessToken,
|
|
876
575
|
getTokenizedResponse,
|
|
877
576
|
setupEmailAuth,
|
|
878
|
-
setupGoogleAuth
|
|
879
|
-
setupInstagramAuth
|
|
577
|
+
setupGoogleAuth
|
|
880
578
|
});
|
package/dist/auth/index.d.mts
CHANGED
|
@@ -1,18 +1,13 @@
|
|
|
1
1
|
export { setupEmailAuth } from './email/index.mjs';
|
|
2
2
|
export { SetupGoogleAuthOptions, setupGoogleAuth } from './google/index.mjs';
|
|
3
|
-
export { SetupInstagramAuthOptions, setupInstagramAuth } from './instagram/index.mjs';
|
|
4
3
|
export { getRefreshToken } from './utils/token.mjs';
|
|
5
4
|
export { AuthFetch, AuthWrapper } from './email/next.mjs';
|
|
6
5
|
export { checkAuthStatus, getTokenizedResponse } from './email/token.mjs';
|
|
7
6
|
export { getContext } from './email/utils.mjs';
|
|
8
|
-
export { InstagramScope, getInstagramAuthorizationURL, getRefreshedInstagramAccessToken } from './instagram/utils.mjs';
|
|
9
7
|
import 'next/server';
|
|
10
8
|
import './email/types.mjs';
|
|
11
9
|
import './types.mjs';
|
|
12
10
|
import 'googleapis';
|
|
13
|
-
import '../socials/instagram/types.mjs';
|
|
14
|
-
import '../socials/meta/container.mjs';
|
|
15
|
-
import '../socials/meta/types.mjs';
|
|
16
11
|
import 'react';
|
|
17
12
|
import './email/client.mjs';
|
|
18
13
|
import 'naystack/auth/token-store';
|
package/dist/auth/index.d.ts
CHANGED
|
@@ -1,18 +1,13 @@
|
|
|
1
1
|
export { setupEmailAuth } from './email/index.js';
|
|
2
2
|
export { SetupGoogleAuthOptions, setupGoogleAuth } from './google/index.js';
|
|
3
|
-
export { SetupInstagramAuthOptions, setupInstagramAuth } from './instagram/index.js';
|
|
4
3
|
export { getRefreshToken } from './utils/token.js';
|
|
5
4
|
export { AuthFetch, AuthWrapper } from './email/next.js';
|
|
6
5
|
export { checkAuthStatus, getTokenizedResponse } from './email/token.js';
|
|
7
6
|
export { getContext } from './email/utils.js';
|
|
8
|
-
export { InstagramScope, getInstagramAuthorizationURL, getRefreshedInstagramAccessToken } from './instagram/utils.js';
|
|
9
7
|
import 'next/server';
|
|
10
8
|
import './email/types.js';
|
|
11
9
|
import './types.js';
|
|
12
10
|
import 'googleapis';
|
|
13
|
-
import '../socials/instagram/types.js';
|
|
14
|
-
import '../socials/meta/container.js';
|
|
15
|
-
import '../socials/meta/types.js';
|
|
16
11
|
import 'react';
|
|
17
12
|
import './email/client.js';
|
|
18
13
|
import 'naystack/auth/token-store';
|