diff --git a/bun.lock b/bun.lock index 59c84b8..af4fb22 100644 --- a/bun.lock +++ b/bun.lock @@ -8,6 +8,7 @@ "@atcute/identity": "^0.1.2", "@atcute/identity-resolver": "^0.1.2", "@atcute/lex-cli": "^1.0.4", + "@atcute/oauth-browser-client": "^1.0.16", "@eslint/compat": "^1.2.5", "@eslint/js": "^9.18.0", "@iconify-json/mynaui": "^1.2.9", @@ -49,6 +50,12 @@ "@atcute/lex-cli": ["@atcute/lex-cli@1.0.4", "", { "dependencies": { "@badrap/valita": "^0.3.11", "@externdefs/collider": "^0.1.0", "picocolors": "^1.1.1", "prettier": "^3.3.3" }, "bin": { "lex-cli": "cli.mjs" } }, "sha512-8mRnjjK+b6Z4wmfFRUYYPswVZhT7PYZBHLMCFNiI1AdrZqaJ1CmoiExYjkVGQkixZURRIaxr49KGBV2iSMF/pQ=="], + "@atcute/multibase": ["@atcute/multibase@1.1.2", "", { "dependencies": { "@atcute/uint8array": "^1.0.1" } }, "sha512-KFX+c7a/u2jSNcRw0rLaUHG/XEKf1A1c8XF5soHnsb1JMCShihf/anfZ1kJ4no/IlIp9HEHV3PQRQO2sWL6ASQ=="], + + "@atcute/oauth-browser-client": ["@atcute/oauth-browser-client@1.0.16", "", { "dependencies": { "@atcute/client": "^2.0.9", "@atcute/multibase": "^1.1.2", "@atcute/uint8array": "^1.0.1" } }, "sha512-BKkA4TPyaLIO+hVxcxZoDfLFUgsd3A47UyzWAbe3BpSoN8Kywy/CqWuAVlqdiUhO1iG+vVqGQhjKy4UxutaU4g=="], + + "@atcute/uint8array": ["@atcute/uint8array@1.0.1", "", {}, "sha512-AAnlFKyfDRgb9GNZJbhQ6OuMhbmNPirQyapb8KnmcEhxQZ3+tt+4NcwqekEegY4MpNqSTYeeTdyxq0wGZv1JHg=="], + "@atcute/util-fetch": ["@atcute/util-fetch@1.0.1", "", { "dependencies": { "@badrap/valita": "^0.4.2" } }, "sha512-Clc0E/5ufyGBVfYBUwWNlHONlZCoblSr4Ho50l1LhmRPGB1Wu/AQ9Sz+rsBg7fdaW/auve8ulmwhRhnX2cGRow=="], "@badrap/valita": ["@badrap/valita@0.4.3", "", {}, "sha512-C9iZSrVlTb610dxZ2oatK5LwefaHv0Q9eYfVDH3co846x7WinhCfc8jCDTE55yM8WxlmOfX2ckKmsSr7KzZ/gg=="], diff --git a/package.json b/package.json index 993ccd6..6920fd3 100644 --- a/package.json +++ b/package.json @@ -20,6 +20,7 @@ "@atcute/identity": "^0.1.2", "@atcute/identity-resolver": "^0.1.2", "@atcute/lex-cli": "^1.0.4", + "@atcute/oauth-browser-client": "^1.0.16", "@eslint/compat": "^1.2.5", "@eslint/js": "^9.18.0", "@iconify-json/mynaui": "^1.2.9", diff --git a/src/lib/state.svelte.ts b/src/lib/state.svelte.ts new file mode 100644 index 0000000..7983a18 --- /dev/null +++ b/src/lib/state.svelte.ts @@ -0,0 +1,12 @@ +import type { XRPC } from '@atcute/client'; +import type { OAuthUserAgent } from '@atcute/oauth-browser-client'; + +export const userState = $state<{ + rpc: XRPC | undefined; + agent: OAuthUserAgent | undefined; + did: string | undefined; +}>({ + rpc: undefined, + agent: undefined, + did: undefined +}); diff --git a/src/lib/store.ts b/src/lib/store.ts deleted file mode 100644 index 09daa18..0000000 --- a/src/lib/store.ts +++ /dev/null @@ -1,6 +0,0 @@ -import type { XRPC } from '@atcute/client'; -import type { OAuthUserAgent } from '@atcute/oauth-browser-client'; -import { writable, type Writable } from 'svelte/store'; - -export const rpc: Writable = writable(undefined); -export const agent: Writable = writable(undefined); diff --git a/src/lib/util.ts b/src/lib/util.ts index cd16435..d01563a 100644 --- a/src/lib/util.ts +++ b/src/lib/util.ts @@ -7,6 +7,8 @@ import { XrpcHandleResolver } from '@atcute/identity-resolver'; +import { configureOAuth } from '@atcute/oauth-browser-client'; + import type { At, MeWoachFeedActivity } from '@atcute/client/lexicons'; const didDocumentResolver = new CompositeDidDocumentResolver({ @@ -152,3 +154,11 @@ export async function getProgress(rpc: XRPC, did: string, uri: At.Uri) { return 0; } } +export async function config() { + configureOAuth({ + metadata: { + client_id: import.meta.env.VITE_OAUTH_CLIENT_ID, + redirect_uri: import.meta.env.VITE_OAUTH_REDIRECT_URI + } + }); +} diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte index 200e357..ffbbfbe 100644 --- a/src/routes/+layout.svelte +++ b/src/routes/+layout.svelte @@ -1,15 +1,97 @@ -