diff --git a/package-lock.json b/package-lock.json index 79c8645..57cb645 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,7 +8,7 @@ "name": "svelte-elemetary-template", "version": "0.1.0", "dependencies": { - "webnative": "0.33.0-alpha-1" + "webnative": "0.33.0-alpha-3" }, "devDependencies": { "@sveltejs/adapter-static": "1.0.0-next.36", @@ -44,9 +44,6 @@ "@babel/highlight": "^7.10.4" } }, - "node_modules/@babel/highlight": { - "dev": true - }, "node_modules/@cspotcode/source-map-support": { "version": "0.8.1", "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", @@ -1699,18 +1696,6 @@ "esbuild-windows-arm64": "0.14.49" } }, - "node_modules/esbuild-android-64": { - "dev": true, - "optional": true - }, - "node_modules/esbuild-android-arm64": { - "dev": true, - "optional": true - }, - "node_modules/esbuild-darwin-64": { - "dev": true, - "optional": true - }, "node_modules/esbuild-darwin-arm64": { "version": "0.14.49", "integrity": "sha512-XMaqDxO846srnGlUSJnwbijV29MTKUATmOLyQSfswbK/2X5Uv28M9tTLUJcKKxzoo9lnkYPsx2o8EJcTYwCs/A==", @@ -1726,70 +1711,6 @@ "node": ">=12" } }, - "node_modules/esbuild-freebsd-64": { - "dev": true, - "optional": true - }, - "node_modules/esbuild-freebsd-arm64": { - "dev": true, - "optional": true - }, - "node_modules/esbuild-linux-32": { - "dev": true, - "optional": true - }, - "node_modules/esbuild-linux-64": { - "dev": true, - "optional": true - }, - "node_modules/esbuild-linux-arm": { - "dev": true, - "optional": true - }, - "node_modules/esbuild-linux-arm64": { - "dev": true, - "optional": true - }, - "node_modules/esbuild-linux-mips64le": { - "dev": true, - "optional": true - }, - "node_modules/esbuild-linux-ppc64le": { - "dev": true, - "optional": true - }, - "node_modules/esbuild-linux-riscv64": { - "dev": true, - "optional": true - }, - "node_modules/esbuild-linux-s390x": { - "dev": true, - "optional": true - }, - "node_modules/esbuild-netbsd-64": { - "dev": true, - "optional": true - }, - "node_modules/esbuild-openbsd-64": { - "dev": true, - "optional": true - }, - "node_modules/esbuild-sunos-64": { - "dev": true, - "optional": true - }, - "node_modules/esbuild-windows-32": { - "dev": true, - "optional": true - }, - "node_modules/esbuild-windows-64": { - "dev": true, - "optional": true - }, - "node_modules/esbuild-windows-arm64": { - "dev": true, - "optional": true - }, "node_modules/escalade": { "version": "3.1.1", "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", @@ -4758,9 +4679,9 @@ } }, "node_modules/webnative": { - "version": "0.33.0-alpha-1", - "resolved": "https://registry.npmjs.org/webnative/-/webnative-0.33.0-alpha-1.tgz", - "integrity": "sha512-g5xg5gkDScTre5IrhcJgWhEgYlI/pri2OTxZxLq832cqgu42gJ9Jzs7B+hgSEDHWB+ROQWCe+RJ9H0dlhTKORw==", + "version": "0.33.0-alpha-3", + "resolved": "https://registry.npmjs.org/webnative/-/webnative-0.33.0-alpha-3.tgz", + "integrity": "sha512-fx7ZNk1eKdt88RHG90fKg99xhBKsPIizOEgggr0HYrbM9G9O4vXGabt48QQF6K9pTuZmrrSW/RyqR/bxCHRc6A==", "dependencies": { "@ipld/dag-cbor": "^7.0.0", "@ipld/dag-pb": "^2.1.15", @@ -4955,9 +4876,6 @@ "@babel/highlight": "^7.10.4" } }, - "@babel/highlight": { - "dev": true - }, "@cspotcode/source-map-support": { "version": "0.8.1", "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", @@ -6126,88 +6044,12 @@ "esbuild-windows-arm64": "0.14.49" } }, - "esbuild-android-64": { - "dev": true, - "optional": true - }, - "esbuild-android-arm64": { - "dev": true, - "optional": true - }, - "esbuild-darwin-64": { - "dev": true, - "optional": true - }, "esbuild-darwin-arm64": { "version": "0.14.49", "integrity": "sha512-XMaqDxO846srnGlUSJnwbijV29MTKUATmOLyQSfswbK/2X5Uv28M9tTLUJcKKxzoo9lnkYPsx2o8EJcTYwCs/A==", "dev": true, "optional": true }, - "esbuild-freebsd-64": { - "dev": true, - "optional": true - }, - "esbuild-freebsd-arm64": { - "dev": true, - "optional": true - }, - "esbuild-linux-32": { - "dev": true, - "optional": true - }, - "esbuild-linux-64": { - "dev": true, - "optional": true - }, - "esbuild-linux-arm": { - "dev": true, - "optional": true - }, - "esbuild-linux-arm64": { - "dev": true, - "optional": true - }, - "esbuild-linux-mips64le": { - "dev": true, - "optional": true - }, - "esbuild-linux-ppc64le": { - "dev": true, - "optional": true - }, - "esbuild-linux-riscv64": { - "dev": true, - "optional": true - }, - "esbuild-linux-s390x": { - "dev": true, - "optional": true - }, - "esbuild-netbsd-64": { - "dev": true, - "optional": true - }, - "esbuild-openbsd-64": { - "dev": true, - "optional": true - }, - "esbuild-sunos-64": { - "dev": true, - "optional": true - }, - "esbuild-windows-32": { - "dev": true, - "optional": true - }, - "esbuild-windows-64": { - "dev": true, - "optional": true - }, - "esbuild-windows-arm64": { - "dev": true, - "optional": true - }, "escalade": { "version": "3.1.1", "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", @@ -8227,9 +8069,9 @@ "peer": true }, "webnative": { - "version": "0.33.0-alpha-1", - "resolved": "https://registry.npmjs.org/webnative/-/webnative-0.33.0-alpha-1.tgz", - "integrity": "sha512-g5xg5gkDScTre5IrhcJgWhEgYlI/pri2OTxZxLq832cqgu42gJ9Jzs7B+hgSEDHWB+ROQWCe+RJ9H0dlhTKORw==", + "version": "0.33.0-alpha-3", + "resolved": "https://registry.npmjs.org/webnative/-/webnative-0.33.0-alpha-3.tgz", + "integrity": "sha512-fx7ZNk1eKdt88RHG90fKg99xhBKsPIizOEgggr0HYrbM9G9O4vXGabt48QQF6K9pTuZmrrSW/RyqR/bxCHRc6A==", "requires": { "@ipld/dag-cbor": "^7.0.0", "@ipld/dag-pb": "^2.1.15", diff --git a/package.json b/package.json index 78874fb..c1dc764 100644 --- a/package.json +++ b/package.json @@ -50,6 +50,6 @@ ] }, "dependencies": { - "webnative": "0.33.0-alpha-1" + "webnative": "0.33.0-alpha-3" } } diff --git a/src/components/auth/LinkDevice.svelte b/src/components/auth/LinkDevice.svelte new file mode 100644 index 0000000..868578f --- /dev/null +++ b/src/components/auth/LinkDevice.svelte @@ -0,0 +1 @@ +

Link Device

diff --git a/src/components/auth/Register.svelte b/src/components/auth/Register.svelte index 924b2da..3453f2d 100644 --- a/src/components/auth/Register.svelte +++ b/src/components/auth/Register.svelte @@ -1,12 +1,22 @@ @@ -27,17 +45,35 @@

Choose a username

- +
+ + {#if checkingUsername} + + {/if} + {#if !(username.length === 0) && usernameAvailable && usernameValid && !checkingUsername} + + {@html checkIcon} + + {/if} + {#if !(username.length === 0) && !checkingUsername && !(usernameAvailable && usernameValid)} + + {@html xIcon} + + {/if} +
{#if !(username.length === 0)} + {/if} + {#if !registrationSuccess} + + + {/if} +
+ +
@@ -75,6 +129,7 @@ disabled={username.length === 0 || !usernameValid || !usernameAvailable} + on:click={registerUser} > Register diff --git a/src/global.css b/src/global.css index 42b90b8..d7dbc06 100644 --- a/src/global.css +++ b/src/global.css @@ -2,22 +2,14 @@ @tailwind components; @tailwind utilities; -input[type='checkbox']::before { - content: ''; - width: 0.65em; - height: 0.65em; - transform: scale(0); - transition: 60ms transform ease-in-out; - box-shadow: inset 1em 1em #fff; - transform-origin: bottom left; - clip-path: polygon(14% 44%, 0 65%, 50% 100%, 100% 16%, 80% 0%, 43% 62%); - cursor: pointer; -} - -input[type='checkbox']:checked::before { - transform: scale(1); -} - .modal-box { @apply p-8; } + +.label { + @apply px-0; +} + +.label-text-alt { + @apply text-sm; +} diff --git a/src/lib/common/webnative.ts b/src/lib/common/webnative.ts index e947f62..87e7339 100644 --- a/src/lib/common/webnative.ts +++ b/src/lib/common/webnative.ts @@ -1,44 +1,28 @@ import * as webnative from 'webnative' -import type FileSystem from 'webnative/fs/index' -import { USE_WNFS_IMPLEMENTATION } from 'webnative/auth/implementation/use-wnfs' +// import type FileSystem from 'webnative/fs/index' import { setup } from 'webnative' import { asyncDebounce } from '$lib/common/utils' // runfission.net = staging setup.endpoints({ api: 'https://runfission.net', user: 'fissionuser.net' }) -setup.setImplementations({ auth: USE_WNFS_IMPLEMENTATION.auth }) - -let state: webnative.State - -const fissionInit = { - permissions: { - app: { - name: 'app-name', - creator: 'creator-name' - }, - // Ask the user permission to additional filesystem paths - fs: { - // private: [webnative.path.directory('Documents', 'Contacts')], - } - } -} +let state: webnative.AppState // TODO: Add a flag or script to turn debugging on/off setup.debug({ enabled: true }) export const initialize = async (): Promise => { try { - const st = await webnative.initialise(fissionInit) + const st = await webnative.app({ useWnfs: true }) state = st switch (state.scenario) { - case webnative.Scenario.NotAuthorised: + case webnative.AppScenario.NotAuthed: console.log('Not logged in') break - case webnative.Scenario.Continuation: + case webnative.AppScenario.Authed: console.log('Logged in') break @@ -62,12 +46,24 @@ export const isUsernameValid = async (username: string): Promise => { return webnative.account.isUsernameValid(username) } -const debouncedIsUsernameAvailable = asyncDebounce(webnative.account.isUsernameAvailable, 300) +const debouncedIsUsernameAvailable = asyncDebounce( + webnative.account.isUsernameAvailable, + 300 +) -export const isUsernameAvailable = async (username: string): Promise => { +export const isUsernameAvailable = async ( + username: string +): Promise => { return debouncedIsUsernameAvailable(username) } +export const register = async (username: string): Promise => { + await initialize() + const { success } = await webnative.account.register({ username }) + + return success +} + // interface StateFS { // fs?: FileSystem // } diff --git a/src/routes/linkDevice.svelte b/src/routes/linkDevice.svelte new file mode 100644 index 0000000..15a2b99 --- /dev/null +++ b/src/routes/linkDevice.svelte @@ -0,0 +1,5 @@ + + +