veryfront 0.0.56 → 0.0.58
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/ai/index.js +104 -13
- package/dist/ai/index.js.map +3 -3
- package/dist/ai/workflow.js +1 -1
- package/dist/ai/workflow.js.map +1 -1
- package/dist/cli.js +183 -26
- package/dist/components.js +1 -1
- package/dist/components.js.map +1 -1
- package/dist/config.js +1 -1
- package/dist/config.js.map +1 -1
- package/dist/data.js +1 -1
- package/dist/data.js.map +1 -1
- package/dist/index.js +2 -4
- package/dist/index.js.map +2 -2
- package/dist/integrations/_base/files/app/api/integrations/status/route.ts +1 -1
- package/dist/integrations/_base/files/app/api/integrations/token-storage/route.ts +7 -3
- package/dist/integrations/_base/files/app/setup/page.tsx +81 -23
- package/dist/integrations/_base/files/lib/token-store-examples.ts +1 -1
- package/dist/integrations/_base/files/lib/token-store.ts +35 -9
- package/dist/integrations/airtable/files/app/api/auth/airtable/callback/route.ts +23 -3
- package/dist/integrations/asana/files/app/api/auth/asana/callback/route.ts +23 -3
- package/dist/integrations/bitbucket/files/app/api/auth/bitbucket/callback/route.ts +23 -3
- package/dist/integrations/box/files/app/api/auth/box/callback/route.ts +23 -3
- package/dist/integrations/calendar/files/app/api/auth/calendar/callback/route.ts +23 -3
- package/dist/integrations/clickup/files/app/api/auth/clickup/callback/route.ts +23 -3
- package/dist/integrations/confluence/files/app/api/auth/confluence/callback/route.ts +23 -3
- package/dist/integrations/discord/files/app/api/auth/discord/callback/route.ts +23 -3
- package/dist/integrations/docs-google/files/app/api/auth/docs-google/callback/route.ts +24 -4
- package/dist/integrations/drive/files/app/api/auth/drive/callback/route.ts +24 -4
- package/dist/integrations/dropbox/files/app/api/auth/dropbox/callback/route.ts +23 -3
- package/dist/integrations/figma/files/app/api/auth/figma/callback/route.ts +23 -3
- package/dist/integrations/freshdesk/files/app/api/auth/freshdesk/callback/route.ts +24 -4
- package/dist/integrations/github/files/app/api/auth/github/callback/route.ts +23 -3
- package/dist/integrations/gitlab/files/app/api/auth/gitlab/callback/route.ts +23 -3
- package/dist/integrations/gmail/files/app/api/auth/gmail/callback/route.ts +1 -1
- package/dist/integrations/gmail/files/lib/gmail-client.ts +21 -3
- package/dist/integrations/hubspot/files/app/api/auth/hubspot/callback/route.ts +23 -3
- package/dist/integrations/intercom/files/app/api/auth/intercom/callback/route.ts +24 -4
- package/dist/integrations/jira/files/app/api/auth/jira/callback/route.ts +23 -3
- package/dist/integrations/linear/files/app/api/auth/linear/callback/route.ts +23 -3
- package/dist/integrations/mailchimp/files/app/api/auth/mailchimp/callback/route.ts +23 -3
- package/dist/integrations/monday/files/app/api/auth/monday/callback/route.ts +24 -4
- package/dist/integrations/neon/files/app/api/auth/neon/route.ts +1 -1
- package/dist/integrations/notion/files/app/api/auth/notion/callback/route.ts +23 -3
- package/dist/integrations/onedrive/files/app/api/auth/onedrive/callback/route.ts +23 -3
- package/dist/integrations/outlook/files/app/api/auth/outlook/callback/route.ts +23 -3
- package/dist/integrations/pipedrive/files/app/api/auth/pipedrive/callback/route.ts +24 -4
- package/dist/integrations/quickbooks/files/app/api/auth/quickbooks/callback/route.ts +24 -4
- package/dist/integrations/salesforce/files/app/api/auth/salesforce/callback/route.ts +23 -3
- package/dist/integrations/sharepoint/files/app/api/auth/sharepoint/callback/route.ts +23 -3
- package/dist/integrations/sheets/files/app/api/auth/sheets/callback/route.ts +23 -3
- package/dist/integrations/shopify/files/app/api/auth/shopify/callback/route.ts +24 -4
- package/dist/integrations/slack/files/app/api/auth/slack/callback/route.ts +23 -3
- package/dist/integrations/teams/files/app/api/auth/teams/callback/route.ts +23 -3
- package/dist/integrations/trello/files/app/api/auth/trello/callback/route.ts +24 -4
- package/dist/integrations/twitter/files/app/api/auth/twitter/callback/route.ts +23 -3
- package/dist/integrations/webex/files/app/api/auth/webex/callback/route.ts +23 -3
- package/dist/integrations/xero/files/app/api/auth/xero/callback/route.ts +24 -4
- package/dist/integrations/zoom/files/app/api/auth/zoom/callback/route.ts +24 -4
- package/package.json +1 -1
|
@@ -1,11 +1,31 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Figma OAuth Callback
|
|
3
|
+
*
|
|
4
|
+
* Handles the OAuth callback from Figma and stores the tokens.
|
|
3
5
|
*/
|
|
4
6
|
|
|
5
7
|
import { createOAuthCallbackHandler, figmaConfig, memoryTokenStore } from "veryfront/oauth";
|
|
8
|
+
import { tokenStore } from "../../../../../lib/token-store.ts";
|
|
9
|
+
|
|
10
|
+
// Hybrid adapter: uses framework's memoryTokenStore for state (PKCE),
|
|
11
|
+
// but user's tokenStore for actual token storage
|
|
12
|
+
const hybridTokenStore = {
|
|
13
|
+
// Token methods - delegate to user's tokenStore
|
|
14
|
+
async getTokens(serviceId: string) {
|
|
15
|
+
return tokenStore.getToken("current-user", serviceId);
|
|
16
|
+
},
|
|
17
|
+
async setTokens(serviceId: string, tokens: { accessToken: string; refreshToken?: string; expiresAt?: number }) {
|
|
18
|
+
await tokenStore.setToken("current-user", serviceId, tokens);
|
|
19
|
+
},
|
|
20
|
+
async clearTokens(serviceId: string) {
|
|
21
|
+
await tokenStore.revokeToken("current-user", serviceId);
|
|
22
|
+
},
|
|
23
|
+
// State methods - delegate to framework's memoryTokenStore (shared with init route)
|
|
24
|
+
getState: (state: string) => memoryTokenStore.getState(state),
|
|
25
|
+
setState: (state: { state: string; codeVerifier?: string; createdAt: number }) => memoryTokenStore.setState(state),
|
|
26
|
+
clearState: (state: string) => memoryTokenStore.clearState(state),
|
|
27
|
+
};
|
|
6
28
|
|
|
7
29
|
export const GET = createOAuthCallbackHandler(figmaConfig, {
|
|
8
|
-
tokenStore:
|
|
9
|
-
onSuccess: () => "/",
|
|
10
|
-
onError: () => "/",
|
|
30
|
+
tokenStore: hybridTokenStore,
|
|
11
31
|
});
|
|
@@ -1,11 +1,31 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Freshdesk OAuth Callback
|
|
3
|
+
*
|
|
4
|
+
* Handles the OAuth callback from Freshdesk and stores the tokens.
|
|
3
5
|
*/
|
|
4
6
|
|
|
5
|
-
import {
|
|
7
|
+
import { createOAuthCallbackHandler, freshdeskConfig, memoryTokenStore } from "veryfront/oauth";
|
|
8
|
+
import { tokenStore } from "../../../../../lib/token-store.ts";
|
|
9
|
+
|
|
10
|
+
// Hybrid adapter: uses framework's memoryTokenStore for state (PKCE),
|
|
11
|
+
// but user's tokenStore for actual token storage
|
|
12
|
+
const hybridTokenStore = {
|
|
13
|
+
// Token methods - delegate to user's tokenStore
|
|
14
|
+
async getTokens(serviceId: string) {
|
|
15
|
+
return tokenStore.getToken("current-user", serviceId);
|
|
16
|
+
},
|
|
17
|
+
async setTokens(serviceId: string, tokens: { accessToken: string; refreshToken?: string; expiresAt?: number }) {
|
|
18
|
+
await tokenStore.setToken("current-user", serviceId, tokens);
|
|
19
|
+
},
|
|
20
|
+
async clearTokens(serviceId: string) {
|
|
21
|
+
await tokenStore.revokeToken("current-user", serviceId);
|
|
22
|
+
},
|
|
23
|
+
// State methods - delegate to framework's memoryTokenStore (shared with init route)
|
|
24
|
+
getState: (state: string) => memoryTokenStore.getState(state),
|
|
25
|
+
setState: (state: { state: string; codeVerifier?: string; createdAt: number }) => memoryTokenStore.setState(state),
|
|
26
|
+
clearState: (state: string) => memoryTokenStore.clearState(state),
|
|
27
|
+
};
|
|
6
28
|
|
|
7
29
|
export const GET = createOAuthCallbackHandler(freshdeskConfig, {
|
|
8
|
-
tokenStore:
|
|
9
|
-
onSuccess: () => "/",
|
|
10
|
-
onError: () => "/",
|
|
30
|
+
tokenStore: hybridTokenStore,
|
|
11
31
|
});
|
|
@@ -1,11 +1,31 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* GitHub OAuth Callback
|
|
3
|
+
*
|
|
4
|
+
* Handles the OAuth callback from GitHub and stores the tokens.
|
|
3
5
|
*/
|
|
4
6
|
|
|
5
7
|
import { createOAuthCallbackHandler, githubConfig, memoryTokenStore } from "veryfront/oauth";
|
|
8
|
+
import { tokenStore } from "../../../../../lib/token-store.ts";
|
|
9
|
+
|
|
10
|
+
// Hybrid adapter: uses framework's memoryTokenStore for state (PKCE),
|
|
11
|
+
// but user's tokenStore for actual token storage
|
|
12
|
+
const hybridTokenStore = {
|
|
13
|
+
// Token methods - delegate to user's tokenStore
|
|
14
|
+
async getTokens(serviceId: string) {
|
|
15
|
+
return tokenStore.getToken("current-user", serviceId);
|
|
16
|
+
},
|
|
17
|
+
async setTokens(serviceId: string, tokens: { accessToken: string; refreshToken?: string; expiresAt?: number }) {
|
|
18
|
+
await tokenStore.setToken("current-user", serviceId, tokens);
|
|
19
|
+
},
|
|
20
|
+
async clearTokens(serviceId: string) {
|
|
21
|
+
await tokenStore.revokeToken("current-user", serviceId);
|
|
22
|
+
},
|
|
23
|
+
// State methods - delegate to framework's memoryTokenStore (shared with init route)
|
|
24
|
+
getState: (state: string) => memoryTokenStore.getState(state),
|
|
25
|
+
setState: (state: { state: string; codeVerifier?: string; createdAt: number }) => memoryTokenStore.setState(state),
|
|
26
|
+
clearState: (state: string) => memoryTokenStore.clearState(state),
|
|
27
|
+
};
|
|
6
28
|
|
|
7
29
|
export const GET = createOAuthCallbackHandler(githubConfig, {
|
|
8
|
-
tokenStore:
|
|
9
|
-
onSuccess: () => "/",
|
|
10
|
-
onError: () => "/",
|
|
30
|
+
tokenStore: hybridTokenStore,
|
|
11
31
|
});
|
|
@@ -1,11 +1,31 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* GitLab OAuth Callback
|
|
3
|
+
*
|
|
4
|
+
* Handles the OAuth callback from GitLab and stores the tokens.
|
|
3
5
|
*/
|
|
4
6
|
|
|
5
7
|
import { createOAuthCallbackHandler, gitlabConfig, memoryTokenStore } from "veryfront/oauth";
|
|
8
|
+
import { tokenStore } from "../../../../../lib/token-store.ts";
|
|
9
|
+
|
|
10
|
+
// Hybrid adapter: uses framework's memoryTokenStore for state (PKCE),
|
|
11
|
+
// but user's tokenStore for actual token storage
|
|
12
|
+
const hybridTokenStore = {
|
|
13
|
+
// Token methods - delegate to user's tokenStore
|
|
14
|
+
async getTokens(serviceId: string) {
|
|
15
|
+
return tokenStore.getToken("current-user", serviceId);
|
|
16
|
+
},
|
|
17
|
+
async setTokens(serviceId: string, tokens: { accessToken: string; refreshToken?: string; expiresAt?: number }) {
|
|
18
|
+
await tokenStore.setToken("current-user", serviceId, tokens);
|
|
19
|
+
},
|
|
20
|
+
async clearTokens(serviceId: string) {
|
|
21
|
+
await tokenStore.revokeToken("current-user", serviceId);
|
|
22
|
+
},
|
|
23
|
+
// State methods - delegate to framework's memoryTokenStore (shared with init route)
|
|
24
|
+
getState: (state: string) => memoryTokenStore.getState(state),
|
|
25
|
+
setState: (state: { state: string; codeVerifier?: string; createdAt: number }) => memoryTokenStore.setState(state),
|
|
26
|
+
clearState: (state: string) => memoryTokenStore.clearState(state),
|
|
27
|
+
};
|
|
6
28
|
|
|
7
29
|
export const GET = createOAuthCallbackHandler(gitlabConfig, {
|
|
8
|
-
tokenStore:
|
|
9
|
-
onSuccess: () => "/",
|
|
10
|
-
onError: () => "/",
|
|
30
|
+
tokenStore: hybridTokenStore,
|
|
11
31
|
});
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
7
|
import { createOAuthCallbackHandler, gmailConfig, memoryTokenStore } from "veryfront/oauth";
|
|
8
|
-
import { tokenStore } from "../../../../../lib/token-store";
|
|
8
|
+
import { tokenStore } from "../../../../../lib/token-store.ts";
|
|
9
9
|
|
|
10
10
|
// Hybrid adapter: uses framework's memoryTokenStore for state (PKCE),
|
|
11
11
|
// but user's tokenStore for actual token storage
|
|
@@ -5,7 +5,8 @@
|
|
|
5
5
|
* using the veryfront/oauth module for authentication.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
import { gmailConfig,
|
|
8
|
+
import { gmailConfig, OAuthService } from "veryfront/oauth";
|
|
9
|
+
import { tokenStore } from "./token-store.ts";
|
|
9
10
|
|
|
10
11
|
export interface GmailMessage {
|
|
11
12
|
id: string;
|
|
@@ -39,8 +40,25 @@ export interface SendEmailOptions {
|
|
|
39
40
|
isHtml?: boolean;
|
|
40
41
|
}
|
|
41
42
|
|
|
42
|
-
//
|
|
43
|
-
const
|
|
43
|
+
// Adapter to bridge user's tokenStore with framework's TokenStore interface
|
|
44
|
+
const tokenStoreAdapter = {
|
|
45
|
+
async getTokens(serviceId: string) {
|
|
46
|
+
return tokenStore.getToken("current-user", serviceId);
|
|
47
|
+
},
|
|
48
|
+
async setTokens(serviceId: string, tokens: { accessToken: string; refreshToken?: string; expiresAt?: number }) {
|
|
49
|
+
await tokenStore.setToken("current-user", serviceId, tokens);
|
|
50
|
+
},
|
|
51
|
+
async clearTokens(serviceId: string) {
|
|
52
|
+
await tokenStore.revokeToken("current-user", serviceId);
|
|
53
|
+
},
|
|
54
|
+
// State methods not needed for API client
|
|
55
|
+
async getState() { return null; },
|
|
56
|
+
async setState() {},
|
|
57
|
+
async clearState() {},
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
// Create Gmail service using the user's token store
|
|
61
|
+
const gmailService = new OAuthService(gmailConfig, tokenStoreAdapter);
|
|
44
62
|
|
|
45
63
|
/**
|
|
46
64
|
* Create a Gmail client for API operations
|
|
@@ -1,11 +1,31 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* HubSpot OAuth Callback
|
|
3
|
+
*
|
|
4
|
+
* Handles the OAuth callback from HubSpot and stores the tokens.
|
|
3
5
|
*/
|
|
4
6
|
|
|
5
7
|
import { createOAuthCallbackHandler, hubspotConfig, memoryTokenStore } from "veryfront/oauth";
|
|
8
|
+
import { tokenStore } from "../../../../../lib/token-store.ts";
|
|
9
|
+
|
|
10
|
+
// Hybrid adapter: uses framework's memoryTokenStore for state (PKCE),
|
|
11
|
+
// but user's tokenStore for actual token storage
|
|
12
|
+
const hybridTokenStore = {
|
|
13
|
+
// Token methods - delegate to user's tokenStore
|
|
14
|
+
async getTokens(serviceId: string) {
|
|
15
|
+
return tokenStore.getToken("current-user", serviceId);
|
|
16
|
+
},
|
|
17
|
+
async setTokens(serviceId: string, tokens: { accessToken: string; refreshToken?: string; expiresAt?: number }) {
|
|
18
|
+
await tokenStore.setToken("current-user", serviceId, tokens);
|
|
19
|
+
},
|
|
20
|
+
async clearTokens(serviceId: string) {
|
|
21
|
+
await tokenStore.revokeToken("current-user", serviceId);
|
|
22
|
+
},
|
|
23
|
+
// State methods - delegate to framework's memoryTokenStore (shared with init route)
|
|
24
|
+
getState: (state: string) => memoryTokenStore.getState(state),
|
|
25
|
+
setState: (state: { state: string; codeVerifier?: string; createdAt: number }) => memoryTokenStore.setState(state),
|
|
26
|
+
clearState: (state: string) => memoryTokenStore.clearState(state),
|
|
27
|
+
};
|
|
6
28
|
|
|
7
29
|
export const GET = createOAuthCallbackHandler(hubspotConfig, {
|
|
8
|
-
tokenStore:
|
|
9
|
-
onSuccess: () => "/",
|
|
10
|
-
onError: () => "/",
|
|
30
|
+
tokenStore: hybridTokenStore,
|
|
11
31
|
});
|
|
@@ -1,11 +1,31 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Intercom OAuth Callback
|
|
3
|
+
*
|
|
4
|
+
* Handles the OAuth callback from Intercom and stores the tokens.
|
|
3
5
|
*/
|
|
4
6
|
|
|
5
|
-
import {
|
|
7
|
+
import { createOAuthCallbackHandler, intercomConfig, memoryTokenStore } from "veryfront/oauth";
|
|
8
|
+
import { tokenStore } from "../../../../../lib/token-store.ts";
|
|
9
|
+
|
|
10
|
+
// Hybrid adapter: uses framework's memoryTokenStore for state (PKCE),
|
|
11
|
+
// but user's tokenStore for actual token storage
|
|
12
|
+
const hybridTokenStore = {
|
|
13
|
+
// Token methods - delegate to user's tokenStore
|
|
14
|
+
async getTokens(serviceId: string) {
|
|
15
|
+
return tokenStore.getToken("current-user", serviceId);
|
|
16
|
+
},
|
|
17
|
+
async setTokens(serviceId: string, tokens: { accessToken: string; refreshToken?: string; expiresAt?: number }) {
|
|
18
|
+
await tokenStore.setToken("current-user", serviceId, tokens);
|
|
19
|
+
},
|
|
20
|
+
async clearTokens(serviceId: string) {
|
|
21
|
+
await tokenStore.revokeToken("current-user", serviceId);
|
|
22
|
+
},
|
|
23
|
+
// State methods - delegate to framework's memoryTokenStore (shared with init route)
|
|
24
|
+
getState: (state: string) => memoryTokenStore.getState(state),
|
|
25
|
+
setState: (state: { state: string; codeVerifier?: string; createdAt: number }) => memoryTokenStore.setState(state),
|
|
26
|
+
clearState: (state: string) => memoryTokenStore.clearState(state),
|
|
27
|
+
};
|
|
6
28
|
|
|
7
29
|
export const GET = createOAuthCallbackHandler(intercomConfig, {
|
|
8
|
-
tokenStore:
|
|
9
|
-
onSuccess: () => "/",
|
|
10
|
-
onError: () => "/",
|
|
30
|
+
tokenStore: hybridTokenStore,
|
|
11
31
|
});
|
|
@@ -1,11 +1,31 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Jira OAuth Callback
|
|
3
|
+
*
|
|
4
|
+
* Handles the OAuth callback from Atlassian and stores the tokens.
|
|
3
5
|
*/
|
|
4
6
|
|
|
5
7
|
import { createOAuthCallbackHandler, jiraConfig, memoryTokenStore } from "veryfront/oauth";
|
|
8
|
+
import { tokenStore } from "../../../../../lib/token-store.ts";
|
|
9
|
+
|
|
10
|
+
// Hybrid adapter: uses framework's memoryTokenStore for state (PKCE),
|
|
11
|
+
// but user's tokenStore for actual token storage
|
|
12
|
+
const hybridTokenStore = {
|
|
13
|
+
// Token methods - delegate to user's tokenStore
|
|
14
|
+
async getTokens(serviceId: string) {
|
|
15
|
+
return tokenStore.getToken("current-user", serviceId);
|
|
16
|
+
},
|
|
17
|
+
async setTokens(serviceId: string, tokens: { accessToken: string; refreshToken?: string; expiresAt?: number }) {
|
|
18
|
+
await tokenStore.setToken("current-user", serviceId, tokens);
|
|
19
|
+
},
|
|
20
|
+
async clearTokens(serviceId: string) {
|
|
21
|
+
await tokenStore.revokeToken("current-user", serviceId);
|
|
22
|
+
},
|
|
23
|
+
// State methods - delegate to framework's memoryTokenStore (shared with init route)
|
|
24
|
+
getState: (state: string) => memoryTokenStore.getState(state),
|
|
25
|
+
setState: (state: { state: string; codeVerifier?: string; createdAt: number }) => memoryTokenStore.setState(state),
|
|
26
|
+
clearState: (state: string) => memoryTokenStore.clearState(state),
|
|
27
|
+
};
|
|
6
28
|
|
|
7
29
|
export const GET = createOAuthCallbackHandler(jiraConfig, {
|
|
8
|
-
tokenStore:
|
|
9
|
-
onSuccess: () => "/",
|
|
10
|
-
onError: () => "/",
|
|
30
|
+
tokenStore: hybridTokenStore,
|
|
11
31
|
});
|
|
@@ -1,11 +1,31 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Linear OAuth Callback
|
|
3
|
+
*
|
|
4
|
+
* Handles the OAuth callback from Linear and stores the tokens.
|
|
3
5
|
*/
|
|
4
6
|
|
|
5
7
|
import { createOAuthCallbackHandler, linearConfig, memoryTokenStore } from "veryfront/oauth";
|
|
8
|
+
import { tokenStore } from "../../../../../lib/token-store.ts";
|
|
9
|
+
|
|
10
|
+
// Hybrid adapter: uses framework's memoryTokenStore for state (PKCE),
|
|
11
|
+
// but user's tokenStore for actual token storage
|
|
12
|
+
const hybridTokenStore = {
|
|
13
|
+
// Token methods - delegate to user's tokenStore
|
|
14
|
+
async getTokens(serviceId: string) {
|
|
15
|
+
return tokenStore.getToken("current-user", serviceId);
|
|
16
|
+
},
|
|
17
|
+
async setTokens(serviceId: string, tokens: { accessToken: string; refreshToken?: string; expiresAt?: number }) {
|
|
18
|
+
await tokenStore.setToken("current-user", serviceId, tokens);
|
|
19
|
+
},
|
|
20
|
+
async clearTokens(serviceId: string) {
|
|
21
|
+
await tokenStore.revokeToken("current-user", serviceId);
|
|
22
|
+
},
|
|
23
|
+
// State methods - delegate to framework's memoryTokenStore (shared with init route)
|
|
24
|
+
getState: (state: string) => memoryTokenStore.getState(state),
|
|
25
|
+
setState: (state: { state: string; codeVerifier?: string; createdAt: number }) => memoryTokenStore.setState(state),
|
|
26
|
+
clearState: (state: string) => memoryTokenStore.clearState(state),
|
|
27
|
+
};
|
|
6
28
|
|
|
7
29
|
export const GET = createOAuthCallbackHandler(linearConfig, {
|
|
8
|
-
tokenStore:
|
|
9
|
-
onSuccess: () => "/",
|
|
10
|
-
onError: () => "/",
|
|
30
|
+
tokenStore: hybridTokenStore,
|
|
11
31
|
});
|
|
@@ -1,11 +1,31 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Mailchimp OAuth Callback
|
|
3
|
+
*
|
|
4
|
+
* Handles the OAuth callback from Mailchimp and stores the tokens.
|
|
3
5
|
*/
|
|
4
6
|
|
|
5
7
|
import { createOAuthCallbackHandler, mailchimpConfig, memoryTokenStore } from "veryfront/oauth";
|
|
8
|
+
import { tokenStore } from "../../../../../lib/token-store.ts";
|
|
9
|
+
|
|
10
|
+
// Hybrid adapter: uses framework's memoryTokenStore for state (PKCE),
|
|
11
|
+
// but user's tokenStore for actual token storage
|
|
12
|
+
const hybridTokenStore = {
|
|
13
|
+
// Token methods - delegate to user's tokenStore
|
|
14
|
+
async getTokens(serviceId: string) {
|
|
15
|
+
return tokenStore.getToken("current-user", serviceId);
|
|
16
|
+
},
|
|
17
|
+
async setTokens(serviceId: string, tokens: { accessToken: string; refreshToken?: string; expiresAt?: number }) {
|
|
18
|
+
await tokenStore.setToken("current-user", serviceId, tokens);
|
|
19
|
+
},
|
|
20
|
+
async clearTokens(serviceId: string) {
|
|
21
|
+
await tokenStore.revokeToken("current-user", serviceId);
|
|
22
|
+
},
|
|
23
|
+
// State methods - delegate to framework's memoryTokenStore (shared with init route)
|
|
24
|
+
getState: (state: string) => memoryTokenStore.getState(state),
|
|
25
|
+
setState: (state: { state: string; codeVerifier?: string; createdAt: number }) => memoryTokenStore.setState(state),
|
|
26
|
+
clearState: (state: string) => memoryTokenStore.clearState(state),
|
|
27
|
+
};
|
|
6
28
|
|
|
7
29
|
export const GET = createOAuthCallbackHandler(mailchimpConfig, {
|
|
8
|
-
tokenStore:
|
|
9
|
-
onSuccess: () => "/",
|
|
10
|
-
onError: () => "/",
|
|
30
|
+
tokenStore: hybridTokenStore,
|
|
11
31
|
});
|
|
@@ -1,11 +1,31 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Monday.com OAuth Callback
|
|
3
|
+
*
|
|
4
|
+
* Handles the OAuth callback from Monday.com and stores the tokens.
|
|
3
5
|
*/
|
|
4
6
|
|
|
5
|
-
import {
|
|
7
|
+
import { createOAuthCallbackHandler, memoryTokenStore, mondayConfig } from "veryfront/oauth";
|
|
8
|
+
import { tokenStore } from "../../../../../lib/token-store.ts";
|
|
9
|
+
|
|
10
|
+
// Hybrid adapter: uses framework's memoryTokenStore for state (PKCE),
|
|
11
|
+
// but user's tokenStore for actual token storage
|
|
12
|
+
const hybridTokenStore = {
|
|
13
|
+
// Token methods - delegate to user's tokenStore
|
|
14
|
+
async getTokens(serviceId: string) {
|
|
15
|
+
return tokenStore.getToken("current-user", serviceId);
|
|
16
|
+
},
|
|
17
|
+
async setTokens(serviceId: string, tokens: { accessToken: string; refreshToken?: string; expiresAt?: number }) {
|
|
18
|
+
await tokenStore.setToken("current-user", serviceId, tokens);
|
|
19
|
+
},
|
|
20
|
+
async clearTokens(serviceId: string) {
|
|
21
|
+
await tokenStore.revokeToken("current-user", serviceId);
|
|
22
|
+
},
|
|
23
|
+
// State methods - delegate to framework's memoryTokenStore (shared with init route)
|
|
24
|
+
getState: (state: string) => memoryTokenStore.getState(state),
|
|
25
|
+
setState: (state: { state: string; codeVerifier?: string; createdAt: number }) => memoryTokenStore.setState(state),
|
|
26
|
+
clearState: (state: string) => memoryTokenStore.clearState(state),
|
|
27
|
+
};
|
|
6
28
|
|
|
7
29
|
export const GET = createOAuthCallbackHandler(mondayConfig, {
|
|
8
|
-
tokenStore:
|
|
9
|
-
onSuccess: () => "/",
|
|
10
|
-
onError: () => "/",
|
|
30
|
+
tokenStore: hybridTokenStore,
|
|
11
31
|
});
|
|
@@ -1,11 +1,31 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Notion OAuth Callback
|
|
3
|
+
*
|
|
4
|
+
* Handles the OAuth callback from Notion and stores the tokens.
|
|
3
5
|
*/
|
|
4
6
|
|
|
5
7
|
import { createOAuthCallbackHandler, memoryTokenStore, notionConfig } from "veryfront/oauth";
|
|
8
|
+
import { tokenStore } from "../../../../../lib/token-store.ts";
|
|
9
|
+
|
|
10
|
+
// Hybrid adapter: uses framework's memoryTokenStore for state (PKCE),
|
|
11
|
+
// but user's tokenStore for actual token storage
|
|
12
|
+
const hybridTokenStore = {
|
|
13
|
+
// Token methods - delegate to user's tokenStore
|
|
14
|
+
async getTokens(serviceId: string) {
|
|
15
|
+
return tokenStore.getToken("current-user", serviceId);
|
|
16
|
+
},
|
|
17
|
+
async setTokens(serviceId: string, tokens: { accessToken: string; refreshToken?: string; expiresAt?: number }) {
|
|
18
|
+
await tokenStore.setToken("current-user", serviceId, tokens);
|
|
19
|
+
},
|
|
20
|
+
async clearTokens(serviceId: string) {
|
|
21
|
+
await tokenStore.revokeToken("current-user", serviceId);
|
|
22
|
+
},
|
|
23
|
+
// State methods - delegate to framework's memoryTokenStore (shared with init route)
|
|
24
|
+
getState: (state: string) => memoryTokenStore.getState(state),
|
|
25
|
+
setState: (state: { state: string; codeVerifier?: string; createdAt: number }) => memoryTokenStore.setState(state),
|
|
26
|
+
clearState: (state: string) => memoryTokenStore.clearState(state),
|
|
27
|
+
};
|
|
6
28
|
|
|
7
29
|
export const GET = createOAuthCallbackHandler(notionConfig, {
|
|
8
|
-
tokenStore:
|
|
9
|
-
onSuccess: () => "/",
|
|
10
|
-
onError: () => "/",
|
|
30
|
+
tokenStore: hybridTokenStore,
|
|
11
31
|
});
|
|
@@ -1,11 +1,31 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* OneDrive OAuth Callback
|
|
3
|
+
*
|
|
4
|
+
* Handles the OAuth callback from Microsoft and stores the tokens.
|
|
3
5
|
*/
|
|
4
6
|
|
|
5
7
|
import { createOAuthCallbackHandler, memoryTokenStore, oneDriveConfig } from "veryfront/oauth";
|
|
8
|
+
import { tokenStore } from "../../../../../lib/token-store.ts";
|
|
9
|
+
|
|
10
|
+
// Hybrid adapter: uses framework's memoryTokenStore for state (PKCE),
|
|
11
|
+
// but user's tokenStore for actual token storage
|
|
12
|
+
const hybridTokenStore = {
|
|
13
|
+
// Token methods - delegate to user's tokenStore
|
|
14
|
+
async getTokens(serviceId: string) {
|
|
15
|
+
return tokenStore.getToken("current-user", serviceId);
|
|
16
|
+
},
|
|
17
|
+
async setTokens(serviceId: string, tokens: { accessToken: string; refreshToken?: string; expiresAt?: number }) {
|
|
18
|
+
await tokenStore.setToken("current-user", serviceId, tokens);
|
|
19
|
+
},
|
|
20
|
+
async clearTokens(serviceId: string) {
|
|
21
|
+
await tokenStore.revokeToken("current-user", serviceId);
|
|
22
|
+
},
|
|
23
|
+
// State methods - delegate to framework's memoryTokenStore (shared with init route)
|
|
24
|
+
getState: (state: string) => memoryTokenStore.getState(state),
|
|
25
|
+
setState: (state: { state: string; codeVerifier?: string; createdAt: number }) => memoryTokenStore.setState(state),
|
|
26
|
+
clearState: (state: string) => memoryTokenStore.clearState(state),
|
|
27
|
+
};
|
|
6
28
|
|
|
7
29
|
export const GET = createOAuthCallbackHandler(oneDriveConfig, {
|
|
8
|
-
tokenStore:
|
|
9
|
-
onSuccess: () => "/",
|
|
10
|
-
onError: () => "/",
|
|
30
|
+
tokenStore: hybridTokenStore,
|
|
11
31
|
});
|
|
@@ -1,11 +1,31 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Outlook OAuth Callback
|
|
3
|
+
*
|
|
4
|
+
* Handles the OAuth callback from Microsoft and stores the tokens.
|
|
3
5
|
*/
|
|
4
6
|
|
|
5
7
|
import { createOAuthCallbackHandler, memoryTokenStore, outlookConfig } from "veryfront/oauth";
|
|
8
|
+
import { tokenStore } from "../../../../../lib/token-store.ts";
|
|
9
|
+
|
|
10
|
+
// Hybrid adapter: uses framework's memoryTokenStore for state (PKCE),
|
|
11
|
+
// but user's tokenStore for actual token storage
|
|
12
|
+
const hybridTokenStore = {
|
|
13
|
+
// Token methods - delegate to user's tokenStore
|
|
14
|
+
async getTokens(serviceId: string) {
|
|
15
|
+
return tokenStore.getToken("current-user", serviceId);
|
|
16
|
+
},
|
|
17
|
+
async setTokens(serviceId: string, tokens: { accessToken: string; refreshToken?: string; expiresAt?: number }) {
|
|
18
|
+
await tokenStore.setToken("current-user", serviceId, tokens);
|
|
19
|
+
},
|
|
20
|
+
async clearTokens(serviceId: string) {
|
|
21
|
+
await tokenStore.revokeToken("current-user", serviceId);
|
|
22
|
+
},
|
|
23
|
+
// State methods - delegate to framework's memoryTokenStore (shared with init route)
|
|
24
|
+
getState: (state: string) => memoryTokenStore.getState(state),
|
|
25
|
+
setState: (state: { state: string; codeVerifier?: string; createdAt: number }) => memoryTokenStore.setState(state),
|
|
26
|
+
clearState: (state: string) => memoryTokenStore.clearState(state),
|
|
27
|
+
};
|
|
6
28
|
|
|
7
29
|
export const GET = createOAuthCallbackHandler(outlookConfig, {
|
|
8
|
-
tokenStore:
|
|
9
|
-
onSuccess: () => "/",
|
|
10
|
-
onError: () => "/",
|
|
30
|
+
tokenStore: hybridTokenStore,
|
|
11
31
|
});
|
|
@@ -1,11 +1,31 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Pipedrive OAuth Callback
|
|
3
|
+
*
|
|
4
|
+
* Handles the OAuth callback from Pipedrive and stores the tokens.
|
|
3
5
|
*/
|
|
4
6
|
|
|
5
|
-
import {
|
|
7
|
+
import { createOAuthCallbackHandler, memoryTokenStore, pipedriveConfig } from "veryfront/oauth";
|
|
8
|
+
import { tokenStore } from "../../../../../lib/token-store.ts";
|
|
9
|
+
|
|
10
|
+
// Hybrid adapter: uses framework's memoryTokenStore for state (PKCE),
|
|
11
|
+
// but user's tokenStore for actual token storage
|
|
12
|
+
const hybridTokenStore = {
|
|
13
|
+
// Token methods - delegate to user's tokenStore
|
|
14
|
+
async getTokens(serviceId: string) {
|
|
15
|
+
return tokenStore.getToken("current-user", serviceId);
|
|
16
|
+
},
|
|
17
|
+
async setTokens(serviceId: string, tokens: { accessToken: string; refreshToken?: string; expiresAt?: number }) {
|
|
18
|
+
await tokenStore.setToken("current-user", serviceId, tokens);
|
|
19
|
+
},
|
|
20
|
+
async clearTokens(serviceId: string) {
|
|
21
|
+
await tokenStore.revokeToken("current-user", serviceId);
|
|
22
|
+
},
|
|
23
|
+
// State methods - delegate to framework's memoryTokenStore (shared with init route)
|
|
24
|
+
getState: (state: string) => memoryTokenStore.getState(state),
|
|
25
|
+
setState: (state: { state: string; codeVerifier?: string; createdAt: number }) => memoryTokenStore.setState(state),
|
|
26
|
+
clearState: (state: string) => memoryTokenStore.clearState(state),
|
|
27
|
+
};
|
|
6
28
|
|
|
7
29
|
export const GET = createOAuthCallbackHandler(pipedriveConfig, {
|
|
8
|
-
tokenStore:
|
|
9
|
-
onSuccess: () => "/",
|
|
10
|
-
onError: () => "/",
|
|
30
|
+
tokenStore: hybridTokenStore,
|
|
11
31
|
});
|
|
@@ -1,11 +1,31 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* QuickBooks OAuth Callback
|
|
3
|
+
*
|
|
4
|
+
* Handles the OAuth callback from QuickBooks and stores the tokens.
|
|
3
5
|
*/
|
|
4
6
|
|
|
5
|
-
import {
|
|
7
|
+
import { createOAuthCallbackHandler, memoryTokenStore, quickbooksConfig } from "veryfront/oauth";
|
|
8
|
+
import { tokenStore } from "../../../../../lib/token-store.ts";
|
|
9
|
+
|
|
10
|
+
// Hybrid adapter: uses framework's memoryTokenStore for state (PKCE),
|
|
11
|
+
// but user's tokenStore for actual token storage
|
|
12
|
+
const hybridTokenStore = {
|
|
13
|
+
// Token methods - delegate to user's tokenStore
|
|
14
|
+
async getTokens(serviceId: string) {
|
|
15
|
+
return tokenStore.getToken("current-user", serviceId);
|
|
16
|
+
},
|
|
17
|
+
async setTokens(serviceId: string, tokens: { accessToken: string; refreshToken?: string; expiresAt?: number }) {
|
|
18
|
+
await tokenStore.setToken("current-user", serviceId, tokens);
|
|
19
|
+
},
|
|
20
|
+
async clearTokens(serviceId: string) {
|
|
21
|
+
await tokenStore.revokeToken("current-user", serviceId);
|
|
22
|
+
},
|
|
23
|
+
// State methods - delegate to framework's memoryTokenStore (shared with init route)
|
|
24
|
+
getState: (state: string) => memoryTokenStore.getState(state),
|
|
25
|
+
setState: (state: { state: string; codeVerifier?: string; createdAt: number }) => memoryTokenStore.setState(state),
|
|
26
|
+
clearState: (state: string) => memoryTokenStore.clearState(state),
|
|
27
|
+
};
|
|
6
28
|
|
|
7
29
|
export const GET = createOAuthCallbackHandler(quickbooksConfig, {
|
|
8
|
-
tokenStore:
|
|
9
|
-
onSuccess: () => "/",
|
|
10
|
-
onError: () => "/",
|
|
30
|
+
tokenStore: hybridTokenStore,
|
|
11
31
|
});
|
|
@@ -1,11 +1,31 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Salesforce OAuth Callback
|
|
3
|
+
*
|
|
4
|
+
* Handles the OAuth callback from Salesforce and stores the tokens.
|
|
3
5
|
*/
|
|
4
6
|
|
|
5
7
|
import { createOAuthCallbackHandler, memoryTokenStore, salesforceConfig } from "veryfront/oauth";
|
|
8
|
+
import { tokenStore } from "../../../../../lib/token-store.ts";
|
|
9
|
+
|
|
10
|
+
// Hybrid adapter: uses framework's memoryTokenStore for state (PKCE),
|
|
11
|
+
// but user's tokenStore for actual token storage
|
|
12
|
+
const hybridTokenStore = {
|
|
13
|
+
// Token methods - delegate to user's tokenStore
|
|
14
|
+
async getTokens(serviceId: string) {
|
|
15
|
+
return tokenStore.getToken("current-user", serviceId);
|
|
16
|
+
},
|
|
17
|
+
async setTokens(serviceId: string, tokens: { accessToken: string; refreshToken?: string; expiresAt?: number }) {
|
|
18
|
+
await tokenStore.setToken("current-user", serviceId, tokens);
|
|
19
|
+
},
|
|
20
|
+
async clearTokens(serviceId: string) {
|
|
21
|
+
await tokenStore.revokeToken("current-user", serviceId);
|
|
22
|
+
},
|
|
23
|
+
// State methods - delegate to framework's memoryTokenStore (shared with init route)
|
|
24
|
+
getState: (state: string) => memoryTokenStore.getState(state),
|
|
25
|
+
setState: (state: { state: string; codeVerifier?: string; createdAt: number }) => memoryTokenStore.setState(state),
|
|
26
|
+
clearState: (state: string) => memoryTokenStore.clearState(state),
|
|
27
|
+
};
|
|
6
28
|
|
|
7
29
|
export const GET = createOAuthCallbackHandler(salesforceConfig, {
|
|
8
|
-
tokenStore:
|
|
9
|
-
onSuccess: () => "/",
|
|
10
|
-
onError: () => "/",
|
|
30
|
+
tokenStore: hybridTokenStore,
|
|
11
31
|
});
|