diff --git a/.changeset/breezy-wombats-sin.md b/.changeset/breezy-wombats-sin.md new file mode 100644 index 000000000..cc63234b1 --- /dev/null +++ b/.changeset/breezy-wombats-sin.md @@ -0,0 +1,5 @@ +--- +'@blockchain-lab-um/dapp': patch +--- + +Updated the table using NextUI, drastically improved filtering & fixed some bugs diff --git a/.changeset/young-camels-give.md b/.changeset/young-camels-give.md new file mode 100644 index 000000000..c18363a1d --- /dev/null +++ b/.changeset/young-camels-give.md @@ -0,0 +1,5 @@ +--- +'@blockchain-lab-um/dapp': minor +--- + +Add support for credential sharing. diff --git a/.eslintrc.cjs b/.eslintrc.cjs index 7b28c1d08..daf11b937 100644 --- a/.eslintrc.cjs +++ b/.eslintrc.cjs @@ -105,5 +105,6 @@ module.exports = { 'templates', 'external', '.nx', + '**/database.types.ts', ], }; diff --git a/.npmrc b/.npmrc index 6c59086d8..f84ca57e8 100644 --- a/.npmrc +++ b/.npmrc @@ -1 +1,3 @@ enable-pre-post-scripts=true + +public-hoist-pattern[]=*@nextui-org/* diff --git a/packages/dapp/.env.example b/packages/dapp/.env.example index fe377ee95..629bb043a 100644 --- a/packages/dapp/.env.example +++ b/packages/dapp/.env.example @@ -1,11 +1,19 @@ NEXT_PUBLIC_DEMO_ISSUER=http://localhost:3003 NEXT_PUBLIC_DEMO_VERIFIER=http://localhost:3004 NEXT_PUBLIC_GOOGLE_CLIENT_ID= -NEXT_PUBLIC_GOOGLE_SCOPES= -GOOGLE_DRIVE_FILE_NAME= +NEXT_PUBLIC_GOOGLE_SCOPES=https://www.googleapis.com/auth/drive.appdata +GOOGLE_DRIVE_FILE_NAME=masca-backup- # Prisma DATABASE_URL= # Masca version -NEXT_PUBLIC_MASCA_VERSION=v1.0.0 +NEXT_PUBLIC_MASCA_VERSION=v1.1.0 + +# SupaBase Public +NEXT_PUBLIC_SUPABASE_URL= +NEXT_PUBLIC_SUPABASE_ANON_KEY= + +# SupaBase Private +SUPABASE_SECRET_KEY= +SUPABASE_JWT_SECRET= diff --git a/packages/dapp/next.config.js b/packages/dapp/next.config.js index 6c31912f0..8ebf78fd9 100644 --- a/packages/dapp/next.config.js +++ b/packages/dapp/next.config.js @@ -1,5 +1,6 @@ const StylelintPlugin = require('stylelint-webpack-plugin'); const path = require('path'); +const withNextIntl = require('next-intl/plugin')(); // Content-Security-Policy // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy @@ -109,4 +110,4 @@ const nextConfig = { }, }; -module.exports = nextConfig; +module.exports = withNextIntl(nextConfig); diff --git a/packages/dapp/package.json b/packages/dapp/package.json index 93709b74d..2284295da 100644 --- a/packages/dapp/package.json +++ b/packages/dapp/package.json @@ -8,7 +8,8 @@ "build": "rimraf .next && next build", "postbuild": "next-sitemap --config=next-sitemap.config.js", "build:docker": "pnpm build", - "dev": "cross-env USE_LOCAL='true' next dev", + "dev": "cross-env next dev", + "dev:local": "cross-env USE_LOCAL='true' next dev", "docker:build": "docker build . -t blockchain-lab-um/dapp:latest", "postinstall": "pnpm prisma generate --schema=./prisma/schema.prisma", "lint": "pnpm lint:next && pnpm lint:tsc && pnpm lint:prettier && pnpm lint:stylelint", @@ -20,30 +21,46 @@ "start": "next start" }, "dependencies": { + "@blockchain-lab-um/did-provider-key": "1.0.7", "@blockchain-lab-um/masca-connector": "1.2.1", "@blockchain-lab-um/oidc-types": "0.0.8", + "@ethersproject/providers": "^5.7.2", "@headlessui/react": "^1.7.17", "@heroicons/react": "^2.0.18", "@metamask/detect-provider": "^2.0.0", "@metamask/providers": "13.1.0", + "@nextui-org/react": "^2.2.9", "@prisma/client": "^5.7.0", "@radix-ui/react-toast": "^1.1.5", "@react-oauth/google": "^0.11.1", + "@supabase/supabase-js": "^2.38.5", "@tanstack/react-table": "^8.10.7", + "@types/js-cookie": "^3.0.6", "@veramo/core": "5.5.3", + "@veramo/credential-eip712": "5.5.3", + "@veramo/credential-w3c": "5.5.3", + "@veramo/did-provider-ethr": "5.5.3", + "@veramo/did-provider-pkh": "5.5.3", + "@veramo/did-resolver": "5.5.3", "@veramo/utils": "5.5.3", "@vercel/analytics": "^1.1.1", "@vercel/og": "^0.5.20", "clsx": "^2.0.0", + "date-fns": "^2.30.0", "did-jwt-vc": "^3.2.13", + "did-resolver": "4.1.0", "ethers": "^6.9.0", + "ethr-did-resolver": "8.1.2", "file-saver": "^2.0.5", + "framer-motion": "^10.16.5", "googleapis": "^128.0.0", "headless-stepper": "^1.9.1", "html5-qrcode": "^2.3.8", + "js-cookie": "^3.0.5", + "jsonwebtoken": "^9.0.2", "luxon": "^3.4.3", "next": "13.5.6", - "next-intl": "3.0.0-beta.9", + "next-intl": "3.4.0", "next-sitemap": "^4.2.3", "next-themes": "^0.2.1", "qrcode.react": "^3.1.0", @@ -51,6 +68,7 @@ "react": "18.2.0", "react-dom": "18.2.0", "sharp": "^0.32.6", + "siwe": "^2.1.4", "swr": "^2.2.4", "tailwind-scrollbar": "^3.0.5", "zustand": "^4.4.4" @@ -58,6 +76,7 @@ "devDependencies": { "@svgr/webpack": "^8.1.0", "@types/file-saver": "^2.0.6", + "@types/jsonwebtoken": "^9.0.5", "@types/luxon": "^3.3.3", "@types/qs": "^6.9.9", "@types/react": "18.2.33", @@ -73,6 +92,7 @@ "stylelint-config-standard-scss": "^11.0.0", "stylelint-prettier": "^4.0.2", "stylelint-webpack-plugin": "^4.1.1", + "supabase": "^1.113.3", "tailwindcss": "^3.3.5" }, "nx": { diff --git a/packages/dapp/src/app/[locale]/app/(protected)/create-credential/page.tsx b/packages/dapp/src/app/[locale]/app/(protected)/create-credential/page.tsx index 0800e826f..1411c4a44 100644 --- a/packages/dapp/src/app/[locale]/app/(protected)/create-credential/page.tsx +++ b/packages/dapp/src/app/[locale]/app/(protected)/create-credential/page.tsx @@ -9,7 +9,7 @@ export const metadata: Metadata = { export default function Page() { return ( -
{t('desc')}
-+ {t('desc')} +
+