diff --git a/.gitignore b/.gitignore index 5bc0cb0..b9fa43c 100644 --- a/.gitignore +++ b/.gitignore @@ -30,6 +30,7 @@ dist-ssr .dfx .vessel .mops +deps # Environment variables /build diff --git a/backend/main.mo b/backend/main.mo index 5473b12..74cc1a5 100644 --- a/backend/main.mo +++ b/backend/main.mo @@ -1,5 +1,9 @@ actor class Main() { - public func greet(name : Text) : async Text { + public query func greet(name : Text) : async Text { return "Hello, " # name # "!"; }; + + public query ({ caller }) func whoAmI() : async Principal { + return caller; + }; }; diff --git a/dfx.json b/dfx.json index ea527d5..9545d5a 100644 --- a/dfx.json +++ b/dfx.json @@ -7,7 +7,11 @@ "frontend": { "dependencies": ["backend"], "type": "assets", - "source": ["dist/"] + "source": ["build/"] + }, + "internet_identity": { + "type": "pull", + "id": "rdmx6-jaaaa-aaaaa-aaadq-cai" } }, "defaults": { diff --git a/package-lock.json b/package-lock.json index a43f6e4..ad150b9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,9 +10,11 @@ "hasInstallScript": true, "devDependencies": { "@dfinity/agent": "^0.20.2", + "@dfinity/auth-client": "^0.20.2", "@dfinity/candid": "^0.20.2", "@dfinity/principal": "^0.20.2", "@sveltejs/adapter-auto": "^3.0.0", + "@sveltejs/adapter-static": "^3.0.1", "@sveltejs/kit": "^2.0.0", "@sveltejs/vite-plugin-svelte": "^3.0.0", "@types/eslint": "8.56.0", @@ -449,6 +451,20 @@ "@dfinity/principal": "^0.20.2" } }, + "node_modules/@dfinity/auth-client": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@dfinity/auth-client/-/auth-client-0.20.2.tgz", + "integrity": "sha512-HP1vTktFldkuQtv5JBQ3/IsnzV5UK3ma405jpCGYNq95kqgFEx746Ja3FrPw4x9dbAulOtu/Zc4zK9lcLv87mw==", + "dev": true, + "dependencies": { + "idb": "^7.0.2" + }, + "peerDependencies": { + "@dfinity/agent": "^0.20.2", + "@dfinity/identity": "^0.20.2", + "@dfinity/principal": "^0.20.2" + } + }, "node_modules/@dfinity/candid": { "version": "0.20.2", "resolved": "https://registry.npmjs.org/@dfinity/candid/-/candid-0.20.2.tgz", @@ -458,6 +474,23 @@ "@dfinity/principal": "^0.20.2" } }, + "node_modules/@dfinity/identity": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@dfinity/identity/-/identity-0.20.2.tgz", + "integrity": "sha512-0mrbJPSva8wei8KYpybFGVD2tWfx0Jd9EJDrAuWiW++JDtZTYql2e2/8Vg5vcrGuqWLP3qMP2YC1dziJqgcUdA==", + "dev": true, + "peer": true, + "dependencies": { + "@noble/curves": "^1.2.0", + "@noble/hashes": "^1.3.1", + "borc": "^2.1.1" + }, + "peerDependencies": { + "@dfinity/agent": "^0.20.2", + "@dfinity/principal": "^0.20.2", + "@peculiar/webcrypto": "^1.4.0" + } + }, "node_modules/@dfinity/principal": { "version": "0.20.2", "resolved": "https://registry.npmjs.org/@dfinity/principal/-/principal-0.20.2.tgz", @@ -718,6 +751,48 @@ "node": ">= 8" } }, + "node_modules/@peculiar/asn1-schema": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-schema/-/asn1-schema-2.3.8.tgz", + "integrity": "sha512-ULB1XqHKx1WBU/tTFIA+uARuRoBVZ4pNdOA878RDrRbBfBGcSzi5HBkdScC6ZbHn8z7L8gmKCgPC1LHRrP46tA==", + "dev": true, + "peer": true, + "dependencies": { + "asn1js": "^3.0.5", + "pvtsutils": "^1.3.5", + "tslib": "^2.6.2" + } + }, + "node_modules/@peculiar/json-schema": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/@peculiar/json-schema/-/json-schema-1.1.12.tgz", + "integrity": "sha512-coUfuoMeIB7B8/NMekxaDzLhaYmp0HZNPEjYRm9goRou8UZIC3z21s0sL9AWoCw4EG876QyO3kYrc61WNF9B/w==", + "dev": true, + "peer": true, + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@peculiar/webcrypto": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/@peculiar/webcrypto/-/webcrypto-1.4.4.tgz", + "integrity": "sha512-VETlZgJqOP3OLRC7AcEYfb6/u05evqsW0Vgs9DyCBATp3FSx7D30Z8ALuDJHsmXCsMblfyTwvB9PLR6IfdlRhg==", + "dev": true, + "peer": true, + "dependencies": { + "@peculiar/asn1-schema": "^2.3.8", + "@peculiar/json-schema": "^1.1.12", + "pvtsutils": "^1.3.5", + "tslib": "^2.6.2", + "webcrypto-core": "^1.7.7" + }, + "engines": { + "node": ">=10.12.0" + } + }, "node_modules/@polka/url": { "version": "1.0.0-next.24", "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.24.tgz", @@ -755,6 +830,15 @@ "@sveltejs/kit": "^2.0.0" } }, + "node_modules/@sveltejs/adapter-static": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sveltejs/adapter-static/-/adapter-static-3.0.1.tgz", + "integrity": "sha512-6lMvf7xYEJ+oGeR5L8DFJJrowkefTK6ZgA4JiMqoClMkKq0s6yvsd3FZfCFvX1fQ0tpCD7fkuRVHsnUVgsHyNg==", + "dev": true, + "peerDependencies": { + "@sveltejs/kit": "^2.0.0" + } + }, "node_modules/@sveltejs/kit": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-2.3.3.tgz", @@ -1556,6 +1640,21 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/asn1js": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/asn1js/-/asn1js-3.0.5.tgz", + "integrity": "sha512-FVnvrKJwpt9LP2lAMl8qZswRNm3T4q9CON+bxldk2iwk3FFpuwhx2FfinyitizWHsVYyaY+y5JzDR0rCMV5yTQ==", + "dev": true, + "peer": true, + "dependencies": { + "pvtsutils": "^1.3.2", + "pvutils": "^1.1.3", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=12.0.0" + } + }, "node_modules/assertion-error": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", @@ -3747,6 +3846,12 @@ "node": ">=0.10.0" } }, + "node_modules/idb": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/idb/-/idb-7.1.1.tgz", + "integrity": "sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==", + "dev": true + }, "node_modules/ieee754": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", @@ -5512,6 +5617,26 @@ "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", "dev": true }, + "node_modules/pvtsutils": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/pvtsutils/-/pvtsutils-1.3.5.tgz", + "integrity": "sha512-ARvb14YB9Nm2Xi6nBq1ZX6dAM0FsJnuk+31aUp4TrcZEdKUlSqOqsxJHUPJDNE3qiIp+iUPEIeR6Je/tgV7zsA==", + "dev": true, + "peer": true, + "dependencies": { + "tslib": "^2.6.1" + } + }, + "node_modules/pvutils": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/pvutils/-/pvutils-1.1.3.tgz", + "integrity": "sha512-pMpnA0qRdFp32b1sJl1wOJNxZLQ2cbQx+k6tjNtZ8CpvVhNqEPRgivZ2WOUev2YMajecdH7ctUPDvEe87nariQ==", + "dev": true, + "peer": true, + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/qs": { "version": "6.11.0", "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", @@ -7239,6 +7364,20 @@ "node": ">=14" } }, + "node_modules/webcrypto-core": { + "version": "1.7.7", + "resolved": "https://registry.npmjs.org/webcrypto-core/-/webcrypto-core-1.7.7.tgz", + "integrity": "sha512-7FjigXNsBfopEj+5DV2nhNpfic2vumtjjgPmeDKk45z+MJwXKKfhPB7118Pfzrmh4jqOMST6Ch37iPAHoImg5g==", + "dev": true, + "peer": true, + "dependencies": { + "@peculiar/asn1-schema": "^2.3.6", + "@peculiar/json-schema": "^1.1.12", + "asn1js": "^3.0.1", + "pvtsutils": "^1.3.2", + "tslib": "^2.4.0" + } + }, "node_modules/webidl-conversions": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", diff --git a/package.json b/package.json index 74835a8..afcf5ce 100644 --- a/package.json +++ b/package.json @@ -3,14 +3,15 @@ "version": "0.0.1", "private": true, "scripts": { - "setup": "npm i && dfx generate backend && dfx deploy backend", + "setup": "npm i && npm run init-ii && dfx generate backend && dfx generate internet_identity && dfx deploy backend && dfx deps deploy", + "init-ii": "dfx deps pull && dfx deps init internet_identity --argument '(null)'", "start": "run-p frontend backend", "frontend": "vite --port 3000", "backend": "mo-dev --generate --deploy -y", "build": "vite build", "test": "run-s test:backend test:frontend", "test:frontend": "vitest run", - "test:backend": "mo-test", + "test:backend": "mops test", "format": "prettier --write .", "sources": "mops sources", "postinstall": "mops install", @@ -22,9 +23,11 @@ }, "devDependencies": { "@dfinity/agent": "^0.20.2", + "@dfinity/auth-client": "^0.20.2", "@dfinity/candid": "^0.20.2", "@dfinity/principal": "^0.20.2", "@sveltejs/adapter-auto": "^3.0.0", + "@sveltejs/adapter-static": "^3.0.1", "@sveltejs/kit": "^2.0.0", "@sveltejs/vite-plugin-svelte": "^3.0.0", "@types/eslint": "8.56.0", diff --git a/src/app.html b/src/app.html index 84efa1c..c1524fb 100644 --- a/src/app.html +++ b/src/app.html @@ -4,7 +4,6 @@ - %sveltekit.head%
diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte new file mode 100644 index 0000000..4dd03ed --- /dev/null +++ b/src/routes/+layout.svelte @@ -0,0 +1,5 @@ + + +