Client side atproto account migrator in your web browser, along with services for backups and adversarial migrations. pdsmoover.com
pds atproto migrations moo cow
128
fork

Configure Feed

Select the types of activity you want to include in your feed.

fixed did:web env for buildtime

+10 -9
+2 -1
.dockerignore
··· 4 4 .idea 5 5 .env 6 6 */node_modules 7 - */build 7 + */build 8 + /web-ui/.env.local
test.compose.yml

This is a binary file and will not be displayed.

+2 -2
web-ui/src/routes/+page.ts
··· 1 1 import {Client, ok, simpleFetchHandler} from '@atcute/client'; 2 2 import {ComPdsmooverBackupDescribeServer} from '@pds-moover/lexicons'; 3 3 import type {PageLoad} from './$types'; 4 - import {PUBLIC_XRPC_BASE} from '$env/static/public'; 4 + import {env} from '$env/dynamic/public'; 5 5 import type {InferXRPCBodyOutput} from '@atcute/lexicons'; 6 6 7 7 export const load: PageLoad = async () => { 8 - const handler = simpleFetchHandler({service: `https://${PUBLIC_XRPC_BASE}`}); 8 + const handler = simpleFetchHandler({service: `https://${env.PUBLIC_XRPC_BASE}`}); 9 9 const rpc = new Client({handler}); 10 10 return await ok( 11 11 //@ts-expect-error: says it's not assignable to never
+2 -2
web-ui/src/routes/backups/+page.svelte
··· 6 6 import LoadingSpinner from '$lib/components/LoadingSpinner.svelte'; 7 7 import type {InferXRPCBodyOutput} from '@atcute/lexicons'; 8 8 import {ComPdsmooverBackupGetRepoStatus} from '@pds-moover/lexicons'; 9 - import {PUBLIC_XRPC_BASE} from '$env/static/public'; 9 + import {env} from '$env/dynamic/public'; 10 10 11 11 12 12 // Service instances 13 - let backupService = $state(new BackupService(`did:web:${PUBLIC_XRPC_BASE}`)); 13 + let backupService = $state(new BackupService(`did:web:${env.PUBLIC_XRPC_BASE}`)); 14 14 let plcOps = $state(new PlcOps()); 15 15 16 16 // State variables
+2 -2
web-ui/src/routes/moover/[[pds]]/SignThePapers.svelte
··· 3 3 import {resolve} from '$app/paths' 4 4 import RotationKeyDisplay from '$lib/components/RotationKeyDisplay.svelte'; 5 5 import type {RotationKeyType} from '$lib/types'; 6 - import {PUBLIC_XRPC_BASE} from '$env/static/public'; 6 + import {env} from '$env/dynamic/public'; 7 7 8 8 let {migrator, newHandle}: { migrator: Migrator, newHandle: string } = $props(); 9 9 ··· 58 58 try { 59 59 backupSignupMessage = 'Signing you up for automated backups...'; 60 60 //TODO nervous about this state 61 - await migrator.signUpForBackupsFromMigration(`did:web:${PUBLIC_XRPC_BASE}`); 61 + await migrator.signUpForBackupsFromMigration(`did:web:${env.PUBLIC_XRPC_BASE}`); 62 62 backupSignupMessage = 'Signed up for automated backups successfully.'; 63 63 } catch (e) { 64 64 console.error(e);
+2 -2
web-ui/src/routes/restore/+page.svelte
··· 2 2 import {Restore} from '@pds-moover/moover'; 3 3 import MooHeader from '$lib/components/MooHeader.svelte'; 4 4 import LoadingSpinner from '$lib/components/LoadingSpinner.svelte'; 5 - import {PUBLIC_XRPC_BASE} from '$env/static/public'; 5 + import {env} from '$env/dynamic/public'; 6 6 import OgImage from '$lib/components/OgImage.svelte'; 7 7 8 8 //Regexs to catch rotation key type 9 9 const HEX_REGEX = /^[0-9a-f]+$/i; 10 10 11 11 // Service instances 12 - let restoreService = $state(new Restore(`https://${PUBLIC_XRPC_BASE}`)); 12 + let restoreService = $state(new Restore(`https://${env.PUBLIC_XRPC_BASE}`)); 13 13 14 14 // Form inputs 15 15 let currentHandle = $state('');