diff --git a/package-lock.json b/package-lock.json index e73cde6..696baf7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,11 +9,14 @@ "version": "0.1.0", "dependencies": { "@fission-codes/homestar": "^1.0.0", + "@fission-codes/ucan": "^0.0.1", "@oddjs/odd": "0.37.0", "@zerodevx/svelte-json-view": "^1.0.7", "chart.js": "^4.4.0", "clipboard-copy": "^4.0.1", "iso-base": "^2.0.1", + "iso-signatures": "^0.2.0", + "iso-web": "^0.3.1", "localforage": "^1.10.0", "marked": "^9.0.3", "multiformats": "^12.1.3", @@ -971,6 +974,17 @@ "@esbuild/win32-x64": "0.19.8" } }, + "node_modules/@fission-codes/ucan": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@fission-codes/ucan/-/ucan-0.0.1.tgz", + "integrity": "sha512-sW7e7a4uXYRc7DMKY8/JQBcNuEyq1cbOtueOuGWoy1Wfa2rSfWDRLUBV9NibFJK3jXrd9h23INOZMWcXOqMEPQ==", + "dependencies": { + "iso-base": "^2.0.1", + "iso-did": "^1.4.0", + "iso-signatures": "^0.2.0", + "multiformats": "^12.1.3" + } + }, "node_modules/@humanwhocodes/config-array": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", @@ -1348,6 +1362,17 @@ "multiformats": "^12.1.0" } }, + "node_modules/@noble/ed25519": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@noble/ed25519/-/ed25519-2.0.0.tgz", + "integrity": "sha512-/extjhkwFupyopDrt80OMWKdLgP429qLZj+z6sYJz90rF2Iz0gjZh2ArMKPImUl13Kx+0EXI2hN9T/KJV0/Zng==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ] + }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -1755,6 +1780,11 @@ "integrity": "sha512-uTuEgFXMknpun//Jj6b1R8T8LiMi9fNpH+cnhZr4b7col2HHTMmjYfm/WOZ7nzjuGpk+oTrpHhePe1qlWtHWTA==", "dev": true }, + "node_modules/@types/retry": { + "version": "0.12.2", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.2.tgz", + "integrity": "sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==" + }, "node_modules/@types/sass": { "version": "1.45.0", "resolved": "https://registry.npmjs.org/@types/sass/-/sass-1.45.0.tgz", @@ -3207,6 +3237,11 @@ "integrity": "sha512-KqFl6pOgOW+Y6wJgu80rHpo2/3H07vr8ntR9rkkFIRETewbf5GaYYcakYfiKz89K+sLsuPkQIZaXDMjUObZwWg==", "dev": true }, + "node_modules/did-resolver": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/did-resolver/-/did-resolver-4.1.0.tgz", + "integrity": "sha512-S6fWHvCXkZg2IhS4RcVHxwuyVejPR7c+a4Go0xbQ9ps5kILa8viiYQgrM4gfTyeTjJ0ekgJH9gk/BawTpmkbZA==" + }, "node_modules/didyoumean": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", @@ -4145,6 +4180,11 @@ "entities": "^4.4.0" } }, + "node_modules/idb-keyval": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/idb-keyval/-/idb-keyval-6.2.1.tgz", + "integrity": "sha512-8Sb3veuYCyrZL+VBt9LJfZjLUPWVvqn8tG28VqYNFCo43KHcKuq+b4EiXGeuaLAQWL2YmyDgMp2aSpH9JHsEQg==" + }, "node_modules/ieee754": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", @@ -4545,6 +4585,17 @@ "node": ">=0.10.0" } }, + "node_modules/is-network-error": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-network-error/-/is-network-error-1.0.1.tgz", + "integrity": "sha512-OwQXkwBJeESyhFw+OumbJVD58BFBJJI5OM5S1+eyrDKlgDZPX2XNT5gXS56GSD3NPbbwUuMlR1Q71SRp5SobuQ==", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", @@ -4620,6 +4671,50 @@ "bigint-mod-arith": "^3.3.1" } }, + "node_modules/iso-did": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/iso-did/-/iso-did-1.5.0.tgz", + "integrity": "sha512-SkMUONxelLV5yipdNaGUqe/1KiKu/pVTBJ46/HbwLtzm6IC2YuJ8E9w7DpwZsnh0G2AlJ+J7i/8ijcZCOp8DWw==", + "dependencies": { + "did-resolver": "^4.1.0", + "iso-base": "^2.0.1", + "iso-web": "^0.3.1", + "multiformats": "^13.0.0" + } + }, + "node_modules/iso-did/node_modules/multiformats": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-13.0.0.tgz", + "integrity": "sha512-xiIB0p7EKmETm3wyKedOg/xuyQ18PoWwXCzzgpZAiDxL9ktl3XTh8AqoDT5kAqRg+DU48XAGPsUJL2Rn6Bx3Lw==" + }, + "node_modules/iso-kv": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/iso-kv/-/iso-kv-0.2.0.tgz", + "integrity": "sha512-n4q64QQO6GPZSeJsTPsU6jHijyDgMb18RCcQ5t065S3p1ddktF1B8tlLhqbcIDqC8ORl77fs7KgTMJDvrccQ9w==", + "dependencies": { + "idb-keyval": "^6.2.1", + "kysely": "^0.26.3" + } + }, + "node_modules/iso-signatures": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/iso-signatures/-/iso-signatures-0.2.0.tgz", + "integrity": "sha512-OfgejGIG7GiCwO5QhcjOTSUJx8Fk+oeWG9GTqAT7eBs4IxqAXCXUAUIRSf9FOr4d39R6y4480pCMz+Aht6/Fgg==", + "dependencies": { + "@noble/ed25519": "^2.0.0", + "iso-base": "^2.0.1", + "iso-did": "^1.4.0" + } + }, + "node_modules/iso-web": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/iso-web/-/iso-web-0.3.1.tgz", + "integrity": "sha512-i63X/p7wHvdTLnA2QgWklDozFkAvOYnxAVmYrUV2M40jDLPFPE7G4utZc7b3SpX4TxQ5GpObn1Cpg7oOne9UNw==", + "dependencies": { + "iso-kv": "^0.2.0", + "p-retry": "^6.2.0" + } + }, "node_modules/iso-websocket": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/iso-websocket/-/iso-websocket-0.1.6.tgz", @@ -4873,6 +4968,14 @@ "node": ">=6" } }, + "node_modules/kysely": { + "version": "0.26.3", + "resolved": "https://registry.npmjs.org/kysely/-/kysely-0.26.3.tgz", + "integrity": "sha512-yWSgGi9bY13b/W06DD2OCDDHQmq1kwTGYlQ4wpZkMOJqMGCstVCFIvxCCVG4KfY1/3G0MhDAcZsip/Lw8/vJWw==", + "engines": { + "node": ">=14.0.0" + } + }, "node_modules/level": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/level/-/level-8.0.0.tgz", @@ -5508,6 +5611,30 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/p-retry": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-6.2.0.tgz", + "integrity": "sha512-JA6nkq6hKyWLLasXQXUrO4z8BUZGUt/LjlJxx8Gb2+2ntodU/SS63YZ8b0LUTbQ8ZB9iwOfhEPhg4ykKnn2KsA==", + "dependencies": { + "@types/retry": "0.12.2", + "is-network-error": "^1.0.0", + "retry": "^0.13.1" + }, + "engines": { + "node": ">=16.17" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-retry/node_modules/retry": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "engines": { + "node": ">= 4" + } + }, "node_modules/p-timeout": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-5.1.0.tgz", @@ -8018,6 +8145,17 @@ } } }, + "@fission-codes/ucan": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@fission-codes/ucan/-/ucan-0.0.1.tgz", + "integrity": "sha512-sW7e7a4uXYRc7DMKY8/JQBcNuEyq1cbOtueOuGWoy1Wfa2rSfWDRLUBV9NibFJK3jXrd9h23INOZMWcXOqMEPQ==", + "requires": { + "iso-base": "^2.0.1", + "iso-did": "^1.4.0", + "iso-signatures": "^0.2.0", + "multiformats": "^12.1.3" + } + }, "@humanwhocodes/config-array": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", @@ -8300,6 +8438,11 @@ "multiformats": "^12.1.0" } }, + "@noble/ed25519": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@noble/ed25519/-/ed25519-2.0.0.tgz", + "integrity": "sha512-/extjhkwFupyopDrt80OMWKdLgP429qLZj+z6sYJz90rF2Iz0gjZh2ArMKPImUl13Kx+0EXI2hN9T/KJV0/Zng==" + }, "@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -8624,6 +8767,11 @@ "integrity": "sha512-uTuEgFXMknpun//Jj6b1R8T8LiMi9fNpH+cnhZr4b7col2HHTMmjYfm/WOZ7nzjuGpk+oTrpHhePe1qlWtHWTA==", "dev": true }, + "@types/retry": { + "version": "0.12.2", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.2.tgz", + "integrity": "sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==" + }, "@types/sass": { "version": "1.45.0", "resolved": "https://registry.npmjs.org/@types/sass/-/sass-1.45.0.tgz", @@ -9604,6 +9752,11 @@ "integrity": "sha512-KqFl6pOgOW+Y6wJgu80rHpo2/3H07vr8ntR9rkkFIRETewbf5GaYYcakYfiKz89K+sLsuPkQIZaXDMjUObZwWg==", "dev": true }, + "did-resolver": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/did-resolver/-/did-resolver-4.1.0.tgz", + "integrity": "sha512-S6fWHvCXkZg2IhS4RcVHxwuyVejPR7c+a4Go0xbQ9ps5kILa8viiYQgrM4gfTyeTjJ0ekgJH9gk/BawTpmkbZA==" + }, "didyoumean": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", @@ -10297,6 +10450,11 @@ "entities": "^4.4.0" } }, + "idb-keyval": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/idb-keyval/-/idb-keyval-6.2.1.tgz", + "integrity": "sha512-8Sb3veuYCyrZL+VBt9LJfZjLUPWVvqn8tG28VqYNFCo43KHcKuq+b4EiXGeuaLAQWL2YmyDgMp2aSpH9JHsEQg==" + }, "ieee754": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", @@ -10570,6 +10728,11 @@ "is-extglob": "^2.1.1" } }, + "is-network-error": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-network-error/-/is-network-error-1.0.1.tgz", + "integrity": "sha512-OwQXkwBJeESyhFw+OumbJVD58BFBJJI5OM5S1+eyrDKlgDZPX2XNT5gXS56GSD3NPbbwUuMlR1Q71SRp5SobuQ==" + }, "is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", @@ -10624,6 +10787,52 @@ "bigint-mod-arith": "^3.3.1" } }, + "iso-did": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/iso-did/-/iso-did-1.5.0.tgz", + "integrity": "sha512-SkMUONxelLV5yipdNaGUqe/1KiKu/pVTBJ46/HbwLtzm6IC2YuJ8E9w7DpwZsnh0G2AlJ+J7i/8ijcZCOp8DWw==", + "requires": { + "did-resolver": "^4.1.0", + "iso-base": "^2.0.1", + "iso-web": "^0.3.1", + "multiformats": "^13.0.0" + }, + "dependencies": { + "multiformats": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-13.0.0.tgz", + "integrity": "sha512-xiIB0p7EKmETm3wyKedOg/xuyQ18PoWwXCzzgpZAiDxL9ktl3XTh8AqoDT5kAqRg+DU48XAGPsUJL2Rn6Bx3Lw==" + } + } + }, + "iso-kv": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/iso-kv/-/iso-kv-0.2.0.tgz", + "integrity": "sha512-n4q64QQO6GPZSeJsTPsU6jHijyDgMb18RCcQ5t065S3p1ddktF1B8tlLhqbcIDqC8ORl77fs7KgTMJDvrccQ9w==", + "requires": { + "idb-keyval": "^6.2.1", + "kysely": "^0.26.3" + } + }, + "iso-signatures": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/iso-signatures/-/iso-signatures-0.2.0.tgz", + "integrity": "sha512-OfgejGIG7GiCwO5QhcjOTSUJx8Fk+oeWG9GTqAT7eBs4IxqAXCXUAUIRSf9FOr4d39R6y4480pCMz+Aht6/Fgg==", + "requires": { + "@noble/ed25519": "^2.0.0", + "iso-base": "^2.0.1", + "iso-did": "^1.4.0" + } + }, + "iso-web": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/iso-web/-/iso-web-0.3.1.tgz", + "integrity": "sha512-i63X/p7wHvdTLnA2QgWklDozFkAvOYnxAVmYrUV2M40jDLPFPE7G4utZc7b3SpX4TxQ5GpObn1Cpg7oOne9UNw==", + "requires": { + "iso-kv": "^0.2.0", + "p-retry": "^6.2.0" + } + }, "iso-websocket": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/iso-websocket/-/iso-websocket-0.1.6.tgz", @@ -10821,6 +11030,11 @@ "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", "dev": true }, + "kysely": { + "version": "0.26.3", + "resolved": "https://registry.npmjs.org/kysely/-/kysely-0.26.3.tgz", + "integrity": "sha512-yWSgGi9bY13b/W06DD2OCDDHQmq1kwTGYlQ4wpZkMOJqMGCstVCFIvxCCVG4KfY1/3G0MhDAcZsip/Lw8/vJWw==" + }, "level": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/level/-/level-8.0.0.tgz", @@ -11263,6 +11477,23 @@ "p-timeout": "^5.0.2" } }, + "p-retry": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-6.2.0.tgz", + "integrity": "sha512-JA6nkq6hKyWLLasXQXUrO4z8BUZGUt/LjlJxx8Gb2+2ntodU/SS63YZ8b0LUTbQ8ZB9iwOfhEPhg4ykKnn2KsA==", + "requires": { + "@types/retry": "0.12.2", + "is-network-error": "^1.0.0", + "retry": "^0.13.1" + }, + "dependencies": { + "retry": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==" + } + } + }, "p-timeout": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-5.1.0.tgz", diff --git a/package.json b/package.json index dfe72d8..de0bcdd 100644 --- a/package.json +++ b/package.json @@ -58,11 +58,14 @@ }, "dependencies": { "@fission-codes/homestar": "^1.0.0", + "@fission-codes/ucan": "^0.0.1", "@oddjs/odd": "0.37.0", "@zerodevx/svelte-json-view": "^1.0.7", "chart.js": "^4.4.0", "clipboard-copy": "^4.0.1", "iso-base": "^2.0.1", + "iso-signatures": "^0.2.0", + "iso-web": "^0.3.1", "localforage": "^1.10.0", "marked": "^9.0.3", "multiformats": "^12.1.3", diff --git a/src/components/auth/backup/AreYouSure.svelte b/src/components/auth/backup/AreYouSure.svelte deleted file mode 100644 index 120bec8..0000000 --- a/src/components/auth/backup/AreYouSure.svelte +++ /dev/null @@ -1,45 +0,0 @@ - - - - diff --git a/src/components/auth/backup/Backup.svelte b/src/components/auth/backup/Backup.svelte deleted file mode 100644 index 0527306..0000000 --- a/src/components/auth/backup/Backup.svelte +++ /dev/null @@ -1,43 +0,0 @@ - - - - diff --git a/src/components/auth/delegate-account/ConnectBackupDevice.svelte b/src/components/auth/delegate-account/ConnectBackupDevice.svelte deleted file mode 100644 index 1b19879..0000000 --- a/src/components/auth/delegate-account/ConnectBackupDevice.svelte +++ /dev/null @@ -1,50 +0,0 @@ - - - - diff --git a/src/components/auth/delegate-account/DelegateAccount.svelte b/src/components/auth/delegate-account/DelegateAccount.svelte deleted file mode 100644 index ff5d236..0000000 --- a/src/components/auth/delegate-account/DelegateAccount.svelte +++ /dev/null @@ -1,69 +0,0 @@ - - - - diff --git a/src/components/auth/link-device/LinkDevice.svelte b/src/components/auth/link-device/LinkDevice.svelte deleted file mode 100644 index ecebad1..0000000 --- a/src/components/auth/link-device/LinkDevice.svelte +++ /dev/null @@ -1,61 +0,0 @@ - - - - diff --git a/src/components/auth/recover/HasRecoveryKit.svelte b/src/components/auth/recover/HasRecoveryKit.svelte deleted file mode 100644 index 1828927..0000000 --- a/src/components/auth/recover/HasRecoveryKit.svelte +++ /dev/null @@ -1,125 +0,0 @@ - - -
-

Recover your account

- - {#if state === RECOVERY_STATES.Done} -

- Account recovered! -

-

- Welcome back {$sessionStore.username.trimmed}. - We were able to successfully recover all of your private data. -

- {:else} -

- If you’ve lost access to all of your connected devices, you can use your - recovery kit to restore access to your private data. -

- {/if} - - {#if state === RECOVERY_STATES.Error} -

- We were unable to recover your account. Please double check that you - uploaded the correct file. -

- {/if} - -
- - - {#if state !== RECOVERY_STATES.Done} -

- {`It should be a file named ODD-RecoveryKit-{yourUsername}.txt`} -

- {/if} -
-
diff --git a/src/components/auth/recover/RecoveryKitButton.svelte b/src/components/auth/recover/RecoveryKitButton.svelte deleted file mode 100644 index d309866..0000000 --- a/src/components/auth/recover/RecoveryKitButton.svelte +++ /dev/null @@ -1,65 +0,0 @@ - - -{#if state === RECOVERY_STATES.Ready || state === RECOVERY_STATES.Error} - - -{:else} - {@const { $$on_click, ...props } = buttonData[state].props} - -{/if} diff --git a/src/components/auth/register/Register.svelte b/src/components/auth/register/Register.svelte deleted file mode 100644 index 4b57c60..0000000 --- a/src/components/auth/register/Register.svelte +++ /dev/null @@ -1,190 +0,0 @@ - - -{#if initializingFilesystem} - -{:else} -
-

Connect this device

- - -
-

Choose a username

-
- - {#if checkingUsername} - - {/if} -
- - {#if !registrationSuccess} - - - {/if} - -
- - - - -
- -
- - Cancel - - -
-
- - -
- - {#if existingAccount} -
-

- Which device are you connected on? -

-

To connect your existing account, you'll need to:

-
    -
  1. Find a device the account is already connected on
  2. -
  3. Navigate to your Account Settings
  4. -
  5. Click "Connect a new device"
  6. -
-
- {/if} -
- - - Recover an account -
-{/if} diff --git a/src/components/auth/register/Welcome.svelte b/src/components/auth/register/Welcome.svelte deleted file mode 100644 index 68e08e2..0000000 --- a/src/components/auth/register/Welcome.svelte +++ /dev/null @@ -1,39 +0,0 @@ - - - - diff --git a/src/components/home/sign-up/Email.svelte b/src/components/home/sign-up/Email.svelte index fc56afd..df8c4b6 100644 --- a/src/components/home/sign-up/Email.svelte +++ b/src/components/home/sign-up/Email.svelte @@ -12,6 +12,7 @@ // Submit email to Fission server to register the account const handleSubmitEmail = async (event: Event) => { loading = true + try { const formEl = event.target as HTMLFormElement const data = new FormData(formEl) @@ -19,6 +20,20 @@ posthog.capture('Email validation sent') + const response = await fetch( + 'http://localhost:3000/api/v0/auth/email/verify', + { + method: 'POST', + headers: { + Accept: 'application/json', + 'Content-Type': 'application/json' + }, + body: JSON.stringify({ email: email.toString() }) + } + ) + + console.log('Response', await response.text()) + dispatch('nextStep', { email }) // addNotification({ msg: 'Account created!', type: 'success'}) @@ -26,6 +41,7 @@ console.error(error) addNotification({ msg: 'Failed to register account', type: 'error' }) } + loading = false } diff --git a/src/components/home/sign-up/Pin.svelte b/src/components/home/sign-up/Pin.svelte index b19b87e..5345be2 100644 --- a/src/components/home/sign-up/Pin.svelte +++ b/src/components/home/sign-up/Pin.svelte @@ -20,9 +20,10 @@ const data = new FormData(formEl) const pin = data.get('pin') + // TODO: Is this correct? Should we perhaps only emit this on the next step? posthog.capture('Account created') - dispatch('nextStep', { pin }) + dispatch('nextStep', { email, pin }) // addNotification({ msg: 'Account created!', type: 'success' }) } catch (error) { @@ -34,7 +35,20 @@ } const handleResendEmail = async () => { - addNotification({ msg: 'Email sent!', type: 'success' }) + try { + await fetch('http://localhost:3000/api/v0/auth/email/verify', { + method: 'POST', + headers: { + Accept: 'application/json', + 'Content-Type': 'application/json' + }, + body: JSON.stringify({ email: email.toString() }) + }) + addNotification({ msg: 'Email sent!', type: 'success' }) + } catch (error) { + console.error('error') + addNotification({ msg: 'Failed to re-send email', type: 'error' }) + } } diff --git a/src/components/home/sign-up/Username.svelte b/src/components/home/sign-up/Username.svelte index 553b927..f0f1425 100644 --- a/src/components/home/sign-up/Username.svelte +++ b/src/components/home/sign-up/Username.svelte @@ -1,9 +1,20 @@ - -{#if $accountSettingsStore.avatar} - {#if $accountSettingsStore.loading} -
- -
- {:else} - User Avatar - {/if} -{:else} -
- {$sessionStore.username.trimmed[0]} -
-{/if} diff --git a/src/components/settings/AvatarUpload.svelte b/src/components/settings/AvatarUpload.svelte deleted file mode 100644 index 0d52afc..0000000 --- a/src/components/settings/AvatarUpload.svelte +++ /dev/null @@ -1,39 +0,0 @@ - - -
-

Avatar

-
- - - - -
-
diff --git a/src/components/settings/ConnectedDevices.svelte b/src/components/settings/ConnectedDevices.svelte deleted file mode 100644 index ed01274..0000000 --- a/src/components/settings/ConnectedDevices.svelte +++ /dev/null @@ -1,20 +0,0 @@ - - -
-

Connected devices

- {#if $sessionStore.backupCreated} -

You have connected at least one other device.

- {:else} -

You have no other connected devices.

- {/if} - -
diff --git a/src/components/settings/RecoveryKit.svelte b/src/components/settings/RecoveryKit.svelte deleted file mode 100644 index 392f3d4..0000000 --- a/src/components/settings/RecoveryKit.svelte +++ /dev/null @@ -1,27 +0,0 @@ - - -
-

Recovery Kit

-

- Your recovery kit will restore access to your data in the event that you - lose access to all of your connected devices. We recommend you store your - kit in a safe place, separate from those devices. -

- - -
- -{#if modalOpen} - -{/if} diff --git a/src/components/settings/RecoveryKitModal.svelte b/src/components/settings/RecoveryKitModal.svelte deleted file mode 100644 index 4eecbd4..0000000 --- a/src/components/settings/RecoveryKitModal.svelte +++ /dev/null @@ -1,87 +0,0 @@ - - - - diff --git a/src/components/settings/TruncatedUsername.svelte b/src/components/settings/TruncatedUsername.svelte deleted file mode 100644 index a64f279..0000000 --- a/src/components/settings/TruncatedUsername.svelte +++ /dev/null @@ -1,12 +0,0 @@ - - -{usernameParts[0]} - - #{usernameParts[1].substring(0, 12)}...{usernameParts[1].substring( - usernameParts[1].length - 5 - )} - diff --git a/src/components/settings/Username.svelte b/src/components/settings/Username.svelte index 9af4055..2cbffbb 100644 --- a/src/components/settings/Username.svelte +++ b/src/components/settings/Username.svelte @@ -4,10 +4,9 @@ import { sessionStore } from '$lib/stores' import { addNotification } from '$lib/notifications' import ClipboardIcon from '$components/icons/ClipboardIcon.svelte' - import TruncatedUsername from '$components/settings/TruncatedUsername.svelte' const handleCopyUsername = async (): Promise => { - await clipboardCopy($sessionStore.username.full) + await clipboardCopy($sessionStore.username) addNotification({ msg: 'Copied to clipboard', type: 'success' }) } @@ -16,7 +15,7 @@

Username

- + {$sessionStore.username}