diff --git a/.gitignore b/.gitignore index 4094a70b..7afdbe21 100644 --- a/.gitignore +++ b/.gitignore @@ -15,6 +15,8 @@ out .next .vscode pnpm-lock.yaml +*.db +*.db-journal # Editor directories and files .vscode/* diff --git a/README.md b/README.md index 586e7641..fb8cb536 100644 --- a/README.md +++ b/README.md @@ -93,6 +93,12 @@ Install dependencies pnpm install ``` +Generate prisma database + +``` +pnpm init-db +``` + Run development window ``` diff --git a/package.json b/package.json index 6edca038..5ff1829c 100644 --- a/package.json +++ b/package.json @@ -6,6 +6,7 @@ "dev": "next dev -p 1420", "build": "next build && next export -o dist", "tauri": "tauri", + "init-db": "cd src-tauri/ && cargo prisma generate", "prepare": "husky install" }, "lint-staged": { @@ -20,24 +21,22 @@ "@radix-ui/react-icons": "^1.3.0", "@radix-ui/react-popover": "^1.0.5", "@radix-ui/react-tabs": "^1.0.3", - "@supabase/supabase-js": "^2.13.0", + "@supabase/supabase-js": "^2.15.0", "@tauri-apps/api": "^1.2.0", "dayjs": "^1.11.7", "destr": "^1.2.2", "emoji-mart": "^5.5.2", "framer-motion": "^9.1.7", "jotai": "^2.0.3", - "jotai-cache": "^0.3.0", - "next": "^13.2.4", + "next": "^13.3.0", "nostr-relaypool": "^0.5.18", - "nostr-tools": "^1.8.1", + "nostr-tools": "^1.8.2", "react": "^18.2.0", "react-dom": "^18.2.0", "react-hook-form": "^7.43.9", "react-player": "^2.12.0", "react-string-replace": "^1.1.0", - "react-virtuoso": "^4.1.1", - "tauri-plugin-sql-api": "github:tauri-apps/tauri-plugin-sql", + "react-virtuoso": "^4.2.0", "unique-names-generator": "^4.7.1", "ws": "^8.13.0" }, @@ -46,14 +45,14 @@ "@tauri-apps/cli": "^1.2.3", "@trivago/prettier-plugin-sort-imports": "^4.1.1", "@types/node": "^18.15.11", - "@types/react": "^18.0.31", + "@types/react": "^18.0.33", "@types/react-dom": "^18.0.11", - "@typescript-eslint/eslint-plugin": "^5.57.0", - "@typescript-eslint/parser": "^5.57.0", + "@typescript-eslint/eslint-plugin": "^5.57.1", + "@typescript-eslint/parser": "^5.57.1", "autoprefixer": "^10.4.14", - "csstype": "^3.1.1", + "csstype": "^3.1.2", "eslint": "^8.37.0", - "eslint-config-next": "^13.2.4", + "eslint-config-next": "^13.3.0", "eslint-config-prettier": "^8.8.0", "eslint-plugin-react": "^7.32.2", "eslint-plugin-react-hooks": "^4.6.0", @@ -61,7 +60,7 @@ "lint-staged": "^13.2.0", "postcss": "^8.4.21", "prettier": "^2.8.7", - "prettier-plugin-tailwindcss": "^0.2.6", + "prettier-plugin-tailwindcss": "^0.2.7", "prop-types": "^15.8.1", "tailwindcss": "^3.3.1", "typescript": "^4.9.5" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b2b8a461..e899822a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,46 +9,44 @@ specifiers: '@radix-ui/react-icons': ^1.3.0 '@radix-ui/react-popover': ^1.0.5 '@radix-ui/react-tabs': ^1.0.3 - '@supabase/supabase-js': ^2.13.0 + '@supabase/supabase-js': ^2.15.0 '@tailwindcss/typography': ^0.5.9 '@tauri-apps/api': ^1.2.0 '@tauri-apps/cli': ^1.2.3 '@trivago/prettier-plugin-sort-imports': ^4.1.1 '@types/node': ^18.15.11 - '@types/react': ^18.0.31 + '@types/react': ^18.0.33 '@types/react-dom': ^18.0.11 - '@typescript-eslint/eslint-plugin': ^5.57.0 - '@typescript-eslint/parser': ^5.57.0 + '@typescript-eslint/eslint-plugin': ^5.57.1 + '@typescript-eslint/parser': ^5.57.1 autoprefixer: ^10.4.14 - csstype: ^3.1.1 + csstype: ^3.1.2 dayjs: ^1.11.7 destr: ^1.2.2 emoji-mart: ^5.5.2 eslint: ^8.37.0 - eslint-config-next: ^13.2.4 + eslint-config-next: ^13.3.0 eslint-config-prettier: ^8.8.0 eslint-plugin-react: ^7.32.2 eslint-plugin-react-hooks: ^4.6.0 framer-motion: ^9.1.7 husky: ^8.0.3 jotai: ^2.0.3 - jotai-cache: ^0.3.0 lint-staged: ^13.2.0 - next: ^13.2.4 + next: ^13.3.0 nostr-relaypool: ^0.5.18 - nostr-tools: ^1.8.1 + nostr-tools: ^1.8.2 postcss: ^8.4.21 prettier: ^2.8.7 - prettier-plugin-tailwindcss: ^0.2.6 + prettier-plugin-tailwindcss: ^0.2.7 prop-types: ^15.8.1 react: ^18.2.0 react-dom: ^18.2.0 react-hook-form: ^7.43.9 react-player: ^2.12.0 react-string-replace: ^1.1.0 - react-virtuoso: ^4.1.1 + react-virtuoso: ^4.2.0 tailwindcss: ^3.3.1 - tauri-plugin-sql-api: github:tauri-apps/tauri-plugin-sql typescript: ^4.9.5 unique-names-generator: ^4.7.1 ws: ^8.13.0 @@ -57,29 +55,27 @@ dependencies: '@emoji-mart/data': 1.1.2 '@emoji-mart/react': 1.1.1_kyrnz3vmphzqyjjk2ivrm6bcsu '@radix-ui/react-collapsible': 1.0.2_biqbaboplfbrettd7655fr4n2y - '@radix-ui/react-dialog': 1.0.3_6ayuu6vm2uqggsikytom4xssc4 - '@radix-ui/react-dropdown-menu': 2.0.4_6ayuu6vm2uqggsikytom4xssc4 + '@radix-ui/react-dialog': 1.0.3_zn3vyfk3tbnwebg5ldvieekjaq + '@radix-ui/react-dropdown-menu': 2.0.4_zn3vyfk3tbnwebg5ldvieekjaq '@radix-ui/react-icons': 1.3.0_react@18.2.0 - '@radix-ui/react-popover': 1.0.5_6ayuu6vm2uqggsikytom4xssc4 + '@radix-ui/react-popover': 1.0.5_zn3vyfk3tbnwebg5ldvieekjaq '@radix-ui/react-tabs': 1.0.3_biqbaboplfbrettd7655fr4n2y - '@supabase/supabase-js': 2.13.0 + '@supabase/supabase-js': 2.15.0 '@tauri-apps/api': 1.2.0 dayjs: 1.11.7 destr: 1.2.2 emoji-mart: 5.5.2 framer-motion: 9.1.7_biqbaboplfbrettd7655fr4n2y jotai: 2.0.3_react@18.2.0 - jotai-cache: 0.3.0_jotai@2.0.3 - next: 13.2.4_biqbaboplfbrettd7655fr4n2y + next: 13.3.0_biqbaboplfbrettd7655fr4n2y nostr-relaypool: 0.5.18_ws@8.13.0 - nostr-tools: 1.8.1 + nostr-tools: 1.8.2 react: 18.2.0 react-dom: 18.2.0_react@18.2.0 react-hook-form: 7.43.9_react@18.2.0 react-player: 2.12.0_react@18.2.0 react-string-replace: 1.1.0 - react-virtuoso: 4.1.1_biqbaboplfbrettd7655fr4n2y - tauri-plugin-sql-api: github.com/tauri-apps/tauri-plugin-sql/3a8b9a6b244df7512bc5ef8692cebdedbab3ccce + react-virtuoso: 4.2.0_biqbaboplfbrettd7655fr4n2y unique-names-generator: 4.7.1 ws: 8.13.0 @@ -88,14 +84,14 @@ devDependencies: '@tauri-apps/cli': 1.2.3 '@trivago/prettier-plugin-sort-imports': 4.1.1_prettier@2.8.7 '@types/node': 18.15.11 - '@types/react': 18.0.31 + '@types/react': 18.0.33 '@types/react-dom': 18.0.11 - '@typescript-eslint/eslint-plugin': 5.57.0_x4rubgibnu7ujqspfqdeho4yiu - '@typescript-eslint/parser': 5.57.0_ip5up2nocltd47wbnuyybe5dxu + '@typescript-eslint/eslint-plugin': 5.57.1_iify4w3mi7rbbu6mxzspkpx4b4 + '@typescript-eslint/parser': 5.57.1_ip5up2nocltd47wbnuyybe5dxu autoprefixer: 10.4.14_postcss@8.4.21 - csstype: 3.1.1 + csstype: 3.1.2 eslint: 8.37.0 - eslint-config-next: 13.2.4_ip5up2nocltd47wbnuyybe5dxu + eslint-config-next: 13.3.0_ip5up2nocltd47wbnuyybe5dxu eslint-config-prettier: 8.8.0_eslint@8.37.0 eslint-plugin-react: 7.32.2_eslint@8.37.0 eslint-plugin-react-hooks: 4.6.0_eslint@8.37.0 @@ -103,15 +99,15 @@ devDependencies: lint-staged: 13.2.0 postcss: 8.4.21 prettier: 2.8.7 - prettier-plugin-tailwindcss: 0.2.6_yk5p2qt6yzw3zyyilt4azle7eu + prettier-plugin-tailwindcss: 0.2.7_yk5p2qt6yzw3zyyilt4azle7eu prop-types: 15.8.1 tailwindcss: 3.3.1_postcss@8.4.21 typescript: 4.9.5 packages: - /@babel/code-frame/7.18.6: + /@babel/code-frame/7.21.4: resolution: - { integrity: sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q== } + { integrity: sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g== } engines: { node: '>=6.9.0' } dependencies: '@babel/highlight': 7.18.6 @@ -139,7 +135,7 @@ packages: engines: { node: '>=6.9.0' } dependencies: '@babel/template': 7.20.7 - '@babel/types': 7.21.3 + '@babel/types': 7.21.4 dev: true /@babel/helper-hoist-variables/7.18.6: @@ -147,7 +143,7 @@ packages: { integrity: sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q== } engines: { node: '>=6.9.0' } dependencies: - '@babel/types': 7.21.3 + '@babel/types': 7.21.4 dev: true /@babel/helper-split-export-declaration/7.18.6: @@ -155,7 +151,7 @@ packages: { integrity: sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA== } engines: { node: '>=6.9.0' } dependencies: - '@babel/types': 7.21.3 + '@babel/types': 7.21.4 dev: true /@babel/helper-string-parser/7.19.4: @@ -180,9 +176,9 @@ packages: js-tokens: 4.0.0 dev: true - /@babel/parser/7.21.3: + /@babel/parser/7.21.4: resolution: - { integrity: sha512-lobG0d7aOfQRXh8AyklEAgZGvA4FShxo6xQbUrrT/cNBPUdIDojlokwJsQyCC/eKia7ifqM0yP+2DRZ4WKw2RQ== } + { integrity: sha512-alVJj7k7zIxqBZ7BTRhz0IqJFxW1VJbm6N8JbcYhQ186df9ZBPbZBmWSqAMXwHGsCJdYks7z/voa3ibiS5bCIw== } engines: { node: '>=6.0.0' } hasBin: true dependencies: @@ -201,9 +197,9 @@ packages: { integrity: sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw== } engines: { node: '>=6.9.0' } dependencies: - '@babel/code-frame': 7.18.6 - '@babel/parser': 7.21.3 - '@babel/types': 7.21.3 + '@babel/code-frame': 7.21.4 + '@babel/parser': 7.21.4 + '@babel/types': 7.21.4 dev: true /@babel/traverse/7.17.3: @@ -211,13 +207,13 @@ packages: { integrity: sha512-5irClVky7TxRWIRtxlh2WPUUOLhcPN06AGgaQSB8AEwuyEBgJVuJ5imdHm5zxk8w0QS5T+tDfnDxAlhWjpb7cw== } engines: { node: '>=6.9.0' } dependencies: - '@babel/code-frame': 7.18.6 + '@babel/code-frame': 7.21.4 '@babel/generator': 7.17.7 '@babel/helper-environment-visitor': 7.18.9 '@babel/helper-function-name': 7.21.0 '@babel/helper-hoist-variables': 7.18.6 '@babel/helper-split-export-declaration': 7.18.6 - '@babel/parser': 7.21.3 + '@babel/parser': 7.21.4 '@babel/types': 7.17.0 debug: 4.3.4 globals: 11.12.0 @@ -234,9 +230,9 @@ packages: to-fast-properties: 2.0.0 dev: true - /@babel/types/7.21.3: + /@babel/types/7.21.4: resolution: - { integrity: sha512-sBGdETxC+/M4o/zKC0sl6sjWv62WFR/uzxrJ6uYyMLZOUlPnwzw0tKgVHOXxaAd5l2g8pEDM5RZ495GPQI77kg== } + { integrity: sha512-rU2oY501qDxE8Pyo7i/Orqma4ziCOrby0/9mvbDUGEfvZjb279Nk9k19e2fiCxHbRRpY2ZyrgW1eq22mvmOIzA== } engines: { node: '>=6.9.0' } dependencies: '@babel/helper-string-parser': 7.19.4 @@ -328,7 +324,7 @@ packages: '@floating-ui/core': 0.7.3 dev: false - /@floating-ui/react-dom/0.7.2_6ayuu6vm2uqggsikytom4xssc4: + /@floating-ui/react-dom/0.7.2_zn3vyfk3tbnwebg5ldvieekjaq: resolution: { integrity: sha512-1T0sJcpHgX/u4I1OzIEhlcrvkUN8ln39nz7fMoE/2HDHrPiMFoOGR7++GYyfUmIQHkkrTinaeQsO3XWubjSvGg== } peerDependencies: @@ -338,7 +334,7 @@ packages: '@floating-ui/dom': 0.5.4 react: 18.2.0 react-dom: 18.2.0_react@18.2.0 - use-isomorphic-layout-effect: 1.1.2_o2wclmlv6kymw75psj4clbbe6a + use-isomorphic-layout-effect: 1.1.2_pofolu2o2erjq4lhyzl3hqovzq transitivePeerDependencies: - '@types/react' dev: false @@ -371,7 +367,7 @@ packages: { integrity: sha512-qyt/mb6rLyd9j1jUts4EQncvS6Yy3PM9HghnNv86QBlV+zdL2inCdK1tuVlL+J+lpiw2BI67qXOrX3UurBqQ1w== } engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } dependencies: - '@jridgewell/trace-mapping': 0.3.17 + '@jridgewell/trace-mapping': 0.3.18 callsites: 3.1.0 graceful-fs: 4.2.11 dev: false @@ -387,49 +383,29 @@ packages: { integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== } dev: false - /@jridgewell/trace-mapping/0.3.17: + /@jridgewell/trace-mapping/0.3.18: resolution: - { integrity: sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g== } + { integrity: sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA== } dependencies: '@jridgewell/resolve-uri': 3.1.0 '@jridgewell/sourcemap-codec': 1.4.14 dev: false - /@next/env/13.2.4: + /@next/env/13.3.0: resolution: - { integrity: sha512-+Mq3TtpkeeKFZanPturjcXt+KHfKYnLlX6jMLyCrmpq6OOs4i1GqBOAauSkii9QeKCMTYzGppar21JU57b/GEA== } + { integrity: sha512-AjppRV4uG3No7L1plinoTQETH+j2F10TEnrMfzbTUYwze5sBUPveeeBAPZPm8OkJZ1epq9OyYKhZrvbD6/9HCQ== } dev: false - /@next/eslint-plugin-next/13.2.4: + /@next/eslint-plugin-next/13.3.0: resolution: - { integrity: sha512-ck1lI+7r1mMJpqLNa3LJ5pxCfOB1lfJncKmRJeJxcJqcngaFwylreLP7da6Rrjr6u2gVRTfmnkSkjc80IiQCwQ== } + { integrity: sha512-wuGN5qSEjSgcq9fVkH0Y/qIPFjnZtW3ZPwfjJOn7l/rrf6y8J24h/lo61kwqunTyzZJm/ETGfGVU9PUs8cnzEA== } dependencies: glob: 7.1.7 dev: true - /@next/swc-android-arm-eabi/13.2.4: + /@next/swc-darwin-arm64/13.3.0: resolution: - { integrity: sha512-DWlalTSkLjDU11MY11jg17O1gGQzpRccM9Oes2yTqj2DpHndajrXHGxj9HGtJ+idq2k7ImUdJVWS2h2l/EDJOw== } - engines: { node: '>= 10' } - cpu: [arm] - os: [android] - requiresBuild: true - dev: false - optional: true - - /@next/swc-android-arm64/13.2.4: - resolution: - { integrity: sha512-sRavmUImUCf332Gy+PjIfLkMhiRX1Ez4SI+3vFDRs1N5eXp+uNzjFUK/oLMMOzk6KFSkbiK/3Wt8+dHQR/flNg== } - engines: { node: '>= 10' } - cpu: [arm64] - os: [android] - requiresBuild: true - dev: false - optional: true - - /@next/swc-darwin-arm64/13.2.4: - resolution: - { integrity: sha512-S6vBl+OrInP47TM3LlYx65betocKUUlTZDDKzTiRDbsRESeyIkBtZ6Qi5uT2zQs4imqllJznVjFd1bXLx3Aa6A== } + { integrity: sha512-DmIQCNq6JtccLPPBzf0dgh2vzMWt5wjxbP71pCi5EWpWYE3MsP6FcRXi4MlAmFNDQOfcFXR2r7kBeG1LpZUh1w== } engines: { node: '>= 10' } cpu: [arm64] os: [darwin] @@ -437,9 +413,9 @@ packages: dev: false optional: true - /@next/swc-darwin-x64/13.2.4: + /@next/swc-darwin-x64/13.3.0: resolution: - { integrity: sha512-a6LBuoYGcFOPGd4o8TPo7wmv5FnMr+Prz+vYHopEDuhDoMSHOnC+v+Ab4D7F0NMZkvQjEJQdJS3rqgFhlZmKlw== } + { integrity: sha512-oQoqFa88OGgwnYlnAGHVct618FRI/749se0N3S8t9Bzdv5CRbscnO0RcX901+YnNK4Q6yeiizfgO3b7kogtsZg== } engines: { node: '>= 10' } cpu: [x64] os: [darwin] @@ -447,29 +423,9 @@ packages: dev: false optional: true - /@next/swc-freebsd-x64/13.2.4: + /@next/swc-linux-arm64-gnu/13.3.0: resolution: - { integrity: sha512-kkbzKVZGPaXRBPisoAQkh3xh22r+TD+5HwoC5bOkALraJ0dsOQgSMAvzMXKsN3tMzJUPS0tjtRf1cTzrQ0I5vQ== } - engines: { node: '>= 10' } - cpu: [x64] - os: [freebsd] - requiresBuild: true - dev: false - optional: true - - /@next/swc-linux-arm-gnueabihf/13.2.4: - resolution: - { integrity: sha512-7qA1++UY0fjprqtjBZaOA6cas/7GekpjVsZn/0uHvquuITFCdKGFCsKNBx3S0Rpxmx6WYo0GcmhNRM9ru08BGg== } - engines: { node: '>= 10' } - cpu: [arm] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /@next/swc-linux-arm64-gnu/13.2.4: - resolution: - { integrity: sha512-xzYZdAeq883MwXgcwc72hqo/F/dwUxCukpDOkx/j1HTq/J0wJthMGjinN9wH5bPR98Mfeh1MZJ91WWPnZOedOg== } + { integrity: sha512-Wzz2p/WqAJUqTVoLo6H18WMeAXo3i+9DkPDae4oQG8LMloJ3if4NEZTnOnTUlro6cq+S/W4pTGa97nWTrOjbGw== } engines: { node: '>= 10' } cpu: [arm64] os: [linux] @@ -477,9 +433,9 @@ packages: dev: false optional: true - /@next/swc-linux-arm64-musl/13.2.4: + /@next/swc-linux-arm64-musl/13.3.0: resolution: - { integrity: sha512-8rXr3WfmqSiYkb71qzuDP6I6R2T2tpkmf83elDN8z783N9nvTJf2E7eLx86wu2OJCi4T05nuxCsh4IOU3LQ5xw== } + { integrity: sha512-xPVrIQOQo9WXJYgmoTlMnAD/HlR/1e1ZIWGbwIzEirXBVBqMARUulBEIKdC19zuvoJ477qZJgBDCKtKEykCpyQ== } engines: { node: '>= 10' } cpu: [arm64] os: [linux] @@ -487,9 +443,9 @@ packages: dev: false optional: true - /@next/swc-linux-x64-gnu/13.2.4: + /@next/swc-linux-x64-gnu/13.3.0: resolution: - { integrity: sha512-Ngxh51zGSlYJ4EfpKG4LI6WfquulNdtmHg1yuOYlaAr33KyPJp4HeN/tivBnAHcZkoNy0hh/SbwDyCnz5PFJQQ== } + { integrity: sha512-jOFlpGuPD7W2tuXVJP4wt9a3cpNxWAPcloq5EfMJRiXsBBOjLVFZA7boXYxEBzSVgUiVVr1V9T0HFM7pULJ1qA== } engines: { node: '>= 10' } cpu: [x64] os: [linux] @@ -497,9 +453,9 @@ packages: dev: false optional: true - /@next/swc-linux-x64-musl/13.2.4: + /@next/swc-linux-x64-musl/13.3.0: resolution: - { integrity: sha512-gOvwIYoSxd+j14LOcvJr+ekd9fwYT1RyMAHOp7znA10+l40wkFiMONPLWiZuHxfRk+Dy7YdNdDh3ImumvL6VwA== } + { integrity: sha512-2OwKlzaBgmuet9XYHc3KwsEilzb04F540rlRXkAcjMHL7eCxB7uZIGtsVvKOnQLvC/elrUegwSw1+5f7WmfyOw== } engines: { node: '>= 10' } cpu: [x64] os: [linux] @@ -507,9 +463,9 @@ packages: dev: false optional: true - /@next/swc-win32-arm64-msvc/13.2.4: + /@next/swc-win32-arm64-msvc/13.3.0: resolution: - { integrity: sha512-q3NJzcfClgBm4HvdcnoEncmztxrA5GXqKeiZ/hADvC56pwNALt3ngDC6t6qr1YW9V/EPDxCYeaX4zYxHciW4Dw== } + { integrity: sha512-OeHiA6YEvndxT46g+rzFK/MQTfftKxJmzslERMu9LDdC6Kez0bdrgEYed5eXFK2Z1viKZJCGRlhd06rBusyztA== } engines: { node: '>= 10' } cpu: [arm64] os: [win32] @@ -517,9 +473,9 @@ packages: dev: false optional: true - /@next/swc-win32-ia32-msvc/13.2.4: + /@next/swc-win32-ia32-msvc/13.3.0: resolution: - { integrity: sha512-/eZ5ncmHUYtD2fc6EUmAIZlAJnVT2YmxDsKs1Ourx0ttTtvtma/WKlMV5NoUsyOez0f9ExLyOpeCoz5aj+MPXw== } + { integrity: sha512-4aB7K9mcVK1lYEzpOpqWrXHEZympU3oK65fnNcY1Qc4HLJFLJj8AViuqQd4jjjPNuV4sl8jAwTz3gN5VNGWB7w== } engines: { node: '>= 10' } cpu: [ia32] os: [win32] @@ -527,9 +483,9 @@ packages: dev: false optional: true - /@next/swc-win32-x64-msvc/13.2.4: + /@next/swc-win32-x64-msvc/13.3.0: resolution: - { integrity: sha512-0MffFmyv7tBLlji01qc0IaPP/LVExzvj7/R5x1Jph1bTAIj4Vu81yFQWHHQAP6r4ff9Ukj1mBK6MDNVXm7Tcvw== } + { integrity: sha512-Reer6rkLLcoOvB0dd66+Y7WrWVFH7sEEkF/4bJCIfsSKnTStTYaHtwIJAwbqnt9I392Tqvku0KkoqZOryWV9LQ== } engines: { node: '>= 10' } cpu: [x64] os: [win32] @@ -672,7 +628,7 @@ packages: react: 18.2.0 dev: false - /@radix-ui/react-dialog/1.0.3_6ayuu6vm2uqggsikytom4xssc4: + /@radix-ui/react-dialog/1.0.3_zn3vyfk3tbnwebg5ldvieekjaq: resolution: { integrity: sha512-owNhq36kNPqC2/a+zJRioPg6HHnTn5B/sh/NjTY8r4W9g1L5VJlrzZIVcBr7R9Mg8iLjVmh6MGgMlfoVf/WO/A== } peerDependencies: @@ -695,7 +651,7 @@ packages: aria-hidden: 1.2.3 react: 18.2.0 react-dom: 18.2.0_react@18.2.0 - react-remove-scroll: 2.5.5_o2wclmlv6kymw75psj4clbbe6a + react-remove-scroll: 2.5.5_pofolu2o2erjq4lhyzl3hqovzq transitivePeerDependencies: - '@types/react' dev: false @@ -727,7 +683,7 @@ packages: react-dom: 18.2.0_react@18.2.0 dev: false - /@radix-ui/react-dropdown-menu/2.0.4_6ayuu6vm2uqggsikytom4xssc4: + /@radix-ui/react-dropdown-menu/2.0.4_zn3vyfk3tbnwebg5ldvieekjaq: resolution: { integrity: sha512-y6AT9+MydyXcByivdK1+QpjWoKaC7MLjkS/cH1Q3keEyMvDkiY85m8o2Bi6+Z1PPUlCsMULopxagQOSfN0wahg== } peerDependencies: @@ -739,7 +695,7 @@ packages: '@radix-ui/react-compose-refs': 1.0.0_react@18.2.0 '@radix-ui/react-context': 1.0.0_react@18.2.0 '@radix-ui/react-id': 1.0.0_react@18.2.0 - '@radix-ui/react-menu': 2.0.4_6ayuu6vm2uqggsikytom4xssc4 + '@radix-ui/react-menu': 2.0.4_zn3vyfk3tbnwebg5ldvieekjaq '@radix-ui/react-primitive': 1.0.2_biqbaboplfbrettd7655fr4n2y '@radix-ui/react-use-controllable-state': 1.0.0_react@18.2.0 react: 18.2.0 @@ -793,7 +749,7 @@ packages: react: 18.2.0 dev: false - /@radix-ui/react-menu/2.0.4_6ayuu6vm2uqggsikytom4xssc4: + /@radix-ui/react-menu/2.0.4_zn3vyfk3tbnwebg5ldvieekjaq: resolution: { integrity: sha512-mzKR47tZ1t193trEqlQoJvzY4u9vYfVH16ryBrVrCAGZzkgyWnMQYEZdUkM7y8ak9mrkKtJiqB47TlEnubeOFQ== } peerDependencies: @@ -810,7 +766,7 @@ packages: '@radix-ui/react-focus-guards': 1.0.0_react@18.2.0 '@radix-ui/react-focus-scope': 1.0.2_biqbaboplfbrettd7655fr4n2y '@radix-ui/react-id': 1.0.0_react@18.2.0 - '@radix-ui/react-popper': 1.1.1_6ayuu6vm2uqggsikytom4xssc4 + '@radix-ui/react-popper': 1.1.1_zn3vyfk3tbnwebg5ldvieekjaq '@radix-ui/react-portal': 1.0.2_biqbaboplfbrettd7655fr4n2y '@radix-ui/react-presence': 1.0.0_biqbaboplfbrettd7655fr4n2y '@radix-ui/react-primitive': 1.0.2_biqbaboplfbrettd7655fr4n2y @@ -820,12 +776,12 @@ packages: aria-hidden: 1.2.3 react: 18.2.0 react-dom: 18.2.0_react@18.2.0 - react-remove-scroll: 2.5.5_o2wclmlv6kymw75psj4clbbe6a + react-remove-scroll: 2.5.5_pofolu2o2erjq4lhyzl3hqovzq transitivePeerDependencies: - '@types/react' dev: false - /@radix-ui/react-popover/1.0.5_6ayuu6vm2uqggsikytom4xssc4: + /@radix-ui/react-popover/1.0.5_zn3vyfk3tbnwebg5ldvieekjaq: resolution: { integrity: sha512-GRHZ8yD12MrN2NLobHPE8Rb5uHTxd9x372DE9PPNnBjpczAQHcZ5ne0KXG4xpf+RDdXSzdLv9ym6mYJCDTaUZg== } peerDependencies: @@ -840,7 +796,7 @@ packages: '@radix-ui/react-focus-guards': 1.0.0_react@18.2.0 '@radix-ui/react-focus-scope': 1.0.2_biqbaboplfbrettd7655fr4n2y '@radix-ui/react-id': 1.0.0_react@18.2.0 - '@radix-ui/react-popper': 1.1.1_6ayuu6vm2uqggsikytom4xssc4 + '@radix-ui/react-popper': 1.1.1_zn3vyfk3tbnwebg5ldvieekjaq '@radix-ui/react-portal': 1.0.2_biqbaboplfbrettd7655fr4n2y '@radix-ui/react-presence': 1.0.0_biqbaboplfbrettd7655fr4n2y '@radix-ui/react-primitive': 1.0.2_biqbaboplfbrettd7655fr4n2y @@ -849,12 +805,12 @@ packages: aria-hidden: 1.2.3 react: 18.2.0 react-dom: 18.2.0_react@18.2.0 - react-remove-scroll: 2.5.5_o2wclmlv6kymw75psj4clbbe6a + react-remove-scroll: 2.5.5_pofolu2o2erjq4lhyzl3hqovzq transitivePeerDependencies: - '@types/react' dev: false - /@radix-ui/react-popper/1.1.1_6ayuu6vm2uqggsikytom4xssc4: + /@radix-ui/react-popper/1.1.1_zn3vyfk3tbnwebg5ldvieekjaq: resolution: { integrity: sha512-keYDcdMPNMjSC8zTsZ8wezUMiWM9Yj14wtF3s0PTIs9srnEPC9Kt2Gny1T3T81mmSeyDjZxsD9N5WCwNNb712w== } peerDependencies: @@ -862,7 +818,7 @@ packages: react-dom: ^16.8 || ^17.0 || ^18.0 dependencies: '@babel/runtime': 7.21.0 - '@floating-ui/react-dom': 0.7.2_6ayuu6vm2uqggsikytom4xssc4 + '@floating-ui/react-dom': 0.7.2_zn3vyfk3tbnwebg5ldvieekjaq '@radix-ui/react-arrow': 1.0.2_biqbaboplfbrettd7655fr4n2y '@radix-ui/react-compose-refs': 1.0.0_react@18.2.0 '@radix-ui/react-context': 1.0.0_react@18.2.0 @@ -1077,18 +1033,18 @@ packages: - encoding dev: false - /@supabase/gotrue-js/2.16.0: + /@supabase/gotrue-js/2.20.1: resolution: - { integrity: sha512-k7curH5xxnQmUiG8AeFW7KEJST99vhFnBCidWFhuSSyLP1Ja8Ix3g4bmLUv209mhX8LmAaDMGKNQs8gG0MOKCw== } + { integrity: sha512-TvXAhLpB/ghLAMNRX5Du3EAc9t0W1w9OFKFn9FNgX3mCAvyhJOni2DVdeSYas4xKbUuyMt4Mp3NDSculLtD0DA== } dependencies: cross-fetch: 3.1.5 transitivePeerDependencies: - encoding dev: false - /@supabase/postgrest-js/1.4.1: + /@supabase/postgrest-js/1.5.0: resolution: - { integrity: sha512-aruqwV/aTggkM7OVv2JinCeXmRMKHJCZpkuS1nuoa0NgLw7g3NyILSyWOKYTBJ/PxE/zXtWsBhdxFzaaNz5uxg== } + { integrity: sha512-YaU1HBE43Ba+FGmnXuvK+xYeHylkDKd04PYeKDUCoE2bUHoxSDqnjHbOwmLjnusGZi3X1MrFeUH1Wwb4bHYyIg== } dependencies: cross-fetch: 3.1.5 transitivePeerDependencies: @@ -1106,24 +1062,24 @@ packages: - supports-color dev: false - /@supabase/storage-js/2.3.1: + /@supabase/storage-js/2.4.0: resolution: - { integrity: sha512-BaPIvyvjuZW1V0CnfGKUZyzpBUXnsh0XD8eqTOYd+MdiGPmIPI0vtwnT4fAoK8mipp1vpcN62EVQaqeUnWXPtQ== } + { integrity: sha512-uCT6WjeZsyxH/Br1MnXieJnXrYxS3DpIkdNxEFTKCoaPX/KZ2t62v++R2IMNB/XGI1LMuJfN5wM28uuK6DMpfw== } dependencies: cross-fetch: 3.1.5 transitivePeerDependencies: - encoding dev: false - /@supabase/supabase-js/2.13.0: + /@supabase/supabase-js/2.15.0: resolution: - { integrity: sha512-D37k5BIwYa4/XNe9eEPz8W0L8MS5w0j16wFDd0twClJC/z+wA4tbcaeWm5Q8IsMeExPa0LrdSrQwPI5bBg6trg== } + { integrity: sha512-gtgq8Tyb4AJoTGeUH3EISOiobdSYwUPcjV+mqL8zGMND+mfqh6l90fnxVPxepnIFXeppJh67YIFTu2bZhr6AMA== } dependencies: '@supabase/functions-js': 2.1.0 - '@supabase/gotrue-js': 2.16.0 - '@supabase/postgrest-js': 1.4.1 + '@supabase/gotrue-js': 2.20.1 + '@supabase/postgrest-js': 1.5.0 '@supabase/realtime-js': 2.7.1 - '@supabase/storage-js': 2.3.1 + '@supabase/storage-js': 2.4.0 cross-fetch: 3.1.5 transitivePeerDependencies: - encoding @@ -1274,7 +1230,7 @@ packages: optional: true dependencies: '@babel/generator': 7.17.7 - '@babel/parser': 7.21.3 + '@babel/parser': 7.21.4 '@babel/traverse': 7.17.3 '@babel/types': 7.17.0 javascript-natural-sort: 0.7.1 @@ -1311,16 +1267,16 @@ packages: resolution: { integrity: sha512-O38bPbI2CWtgw/OoQoY+BRelw7uysmXbWvw3nLWO21H1HSh+GOlqPuXshJfjmpNlKiiSDG9cc1JZAaMmVdcTlw== } dependencies: - '@types/react': 18.0.31 + '@types/react': 18.0.33 dev: true - /@types/react/18.0.31: + /@types/react/18.0.33: resolution: - { integrity: sha512-EEG67of7DsvRDU6BLLI0p+k1GojDLz9+lZsnCpCRTa/lOokvyPBvp8S5x+A24hME3yyQuIipcP70KJ6H7Qupww== } + { integrity: sha512-sHxzVxeanvQyQ1lr8NSHaj0kDzcNiGpILEVt69g9S31/7PfMvNCKLKcsHw4lYKjs3cGNJjXSP4mYzX43QlnjNA== } dependencies: '@types/prop-types': 15.7.5 '@types/scheduler': 0.16.3 - csstype: 3.1.1 + csstype: 3.1.2 /@types/scheduler/0.16.3: resolution: @@ -1338,9 +1294,9 @@ packages: '@types/node': 18.15.11 dev: false - /@typescript-eslint/eslint-plugin/5.57.0_x4rubgibnu7ujqspfqdeho4yiu: + /@typescript-eslint/eslint-plugin/5.57.1_iify4w3mi7rbbu6mxzspkpx4b4: resolution: - { integrity: sha512-itag0qpN6q2UMM6Xgk6xoHa0D0/P+M17THnr4SVgqn9Rgam5k/He33MA7/D7QoJcdMxHFyX7U9imaBonAX/6qA== } + { integrity: sha512-1MeobQkQ9tztuleT3v72XmY0XuKXVXusAhryoLuU5YZ+mXoYKZP9SQ7Flulh1NX4DTjpGTc2b/eMu4u7M7dhnQ== } engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } peerDependencies: '@typescript-eslint/parser': ^5.0.0 @@ -1351,10 +1307,10 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.5.0 - '@typescript-eslint/parser': 5.57.0_ip5up2nocltd47wbnuyybe5dxu - '@typescript-eslint/scope-manager': 5.57.0 - '@typescript-eslint/type-utils': 5.57.0_ip5up2nocltd47wbnuyybe5dxu - '@typescript-eslint/utils': 5.57.0_ip5up2nocltd47wbnuyybe5dxu + '@typescript-eslint/parser': 5.57.1_ip5up2nocltd47wbnuyybe5dxu + '@typescript-eslint/scope-manager': 5.57.1 + '@typescript-eslint/type-utils': 5.57.1_ip5up2nocltd47wbnuyybe5dxu + '@typescript-eslint/utils': 5.57.1_ip5up2nocltd47wbnuyybe5dxu debug: 4.3.4 eslint: 8.37.0 grapheme-splitter: 1.0.4 @@ -1367,9 +1323,9 @@ packages: - supports-color dev: true - /@typescript-eslint/parser/5.57.0_ip5up2nocltd47wbnuyybe5dxu: + /@typescript-eslint/parser/5.57.1_ip5up2nocltd47wbnuyybe5dxu: resolution: - { integrity: sha512-orrduvpWYkgLCyAdNtR1QIWovcNZlEm6yL8nwH/eTxWLd8gsP+25pdLHYzL2QdkqrieaDwLpytHqycncv0woUQ== } + { integrity: sha512-hlA0BLeVSA/wBPKdPGxoVr9Pp6GutGoY380FEhbVi0Ph4WNe8kLvqIRx76RSQt1lynZKfrXKs0/XeEk4zZycuA== } engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -1378,9 +1334,9 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 5.57.0 - '@typescript-eslint/types': 5.57.0 - '@typescript-eslint/typescript-estree': 5.57.0_typescript@4.9.5 + '@typescript-eslint/scope-manager': 5.57.1 + '@typescript-eslint/types': 5.57.1 + '@typescript-eslint/typescript-estree': 5.57.1_typescript@4.9.5 debug: 4.3.4 eslint: 8.37.0 typescript: 4.9.5 @@ -1388,18 +1344,18 @@ packages: - supports-color dev: true - /@typescript-eslint/scope-manager/5.57.0: + /@typescript-eslint/scope-manager/5.57.1: resolution: - { integrity: sha512-NANBNOQvllPlizl9LatX8+MHi7bx7WGIWYjPHDmQe5Si/0YEYfxSljJpoTyTWFTgRy3X8gLYSE4xQ2U+aCozSw== } + { integrity: sha512-N/RrBwEUKMIYxSKl0oDK5sFVHd6VI7p9K5MyUlVYAY6dyNb/wHUqndkTd3XhpGlXgnQsBkRZuu4f9kAHghvgPw== } engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } dependencies: - '@typescript-eslint/types': 5.57.0 - '@typescript-eslint/visitor-keys': 5.57.0 + '@typescript-eslint/types': 5.57.1 + '@typescript-eslint/visitor-keys': 5.57.1 dev: true - /@typescript-eslint/type-utils/5.57.0_ip5up2nocltd47wbnuyybe5dxu: + /@typescript-eslint/type-utils/5.57.1_ip5up2nocltd47wbnuyybe5dxu: resolution: - { integrity: sha512-kxXoq9zOTbvqzLbdNKy1yFrxLC6GDJFE2Yuo3KqSwTmDOFjUGeWSakgoXT864WcK5/NAJkkONCiKb1ddsqhLXQ== } + { integrity: sha512-/RIPQyx60Pt6ga86hKXesXkJ2WOS4UemFrmmq/7eOyiYjYv/MUSHPlkhU6k9T9W1ytnTJueqASW+wOmW4KrViw== } engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } peerDependencies: eslint: '*' @@ -1408,8 +1364,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 5.57.0_typescript@4.9.5 - '@typescript-eslint/utils': 5.57.0_ip5up2nocltd47wbnuyybe5dxu + '@typescript-eslint/typescript-estree': 5.57.1_typescript@4.9.5 + '@typescript-eslint/utils': 5.57.1_ip5up2nocltd47wbnuyybe5dxu debug: 4.3.4 eslint: 8.37.0 tsutils: 3.21.0_typescript@4.9.5 @@ -1418,15 +1374,15 @@ packages: - supports-color dev: true - /@typescript-eslint/types/5.57.0: + /@typescript-eslint/types/5.57.1: resolution: - { integrity: sha512-mxsod+aZRSyLT+jiqHw1KK6xrANm19/+VFALVFP5qa/aiJnlP38qpyaTd0fEKhWvQk6YeNZ5LGwI1pDpBRBhtQ== } + { integrity: sha512-bSs4LOgyV3bJ08F5RDqO2KXqg3WAdwHCu06zOqcQ6vqbTJizyBhuh1o1ImC69X4bV2g1OJxbH71PJqiO7Y1RuA== } engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } dev: true - /@typescript-eslint/typescript-estree/5.57.0_typescript@4.9.5: + /@typescript-eslint/typescript-estree/5.57.1_typescript@4.9.5: resolution: - { integrity: sha512-LTzQ23TV82KpO8HPnWuxM2V7ieXW8O142I7hQTxWIHDcCEIjtkat6H96PFkYBQqGFLW/G/eVVOB9Z8rcvdY/Vw== } + { integrity: sha512-A2MZqD8gNT0qHKbk2wRspg7cHbCDCk2tcqt6ScCFLr5Ru8cn+TCfM786DjPhqwseiS+PrYwcXht5ztpEQ6TFTw== } engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } peerDependencies: typescript: '*' @@ -1434,8 +1390,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 5.57.0 - '@typescript-eslint/visitor-keys': 5.57.0 + '@typescript-eslint/types': 5.57.1 + '@typescript-eslint/visitor-keys': 5.57.1 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 @@ -1446,9 +1402,9 @@ packages: - supports-color dev: true - /@typescript-eslint/utils/5.57.0_ip5up2nocltd47wbnuyybe5dxu: + /@typescript-eslint/utils/5.57.1_ip5up2nocltd47wbnuyybe5dxu: resolution: - { integrity: sha512-ps/4WohXV7C+LTSgAL5CApxvxbMkl9B9AUZRtnEFonpIxZDIT7wC1xfvuJONMidrkB9scs4zhtRyIwHh4+18kw== } + { integrity: sha512-kN6vzzf9NkEtawECqze6v99LtmDiUJCVpvieTFA1uL7/jDghiJGubGZ5csicYHU1Xoqb3oH/R5cN5df6W41Nfg== } engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -1456,9 +1412,9 @@ packages: '@eslint-community/eslint-utils': 4.4.0_eslint@8.37.0 '@types/json-schema': 7.0.11 '@types/semver': 7.3.13 - '@typescript-eslint/scope-manager': 5.57.0 - '@typescript-eslint/types': 5.57.0 - '@typescript-eslint/typescript-estree': 5.57.0_typescript@4.9.5 + '@typescript-eslint/scope-manager': 5.57.1 + '@typescript-eslint/types': 5.57.1 + '@typescript-eslint/typescript-estree': 5.57.1_typescript@4.9.5 eslint: 8.37.0 eslint-scope: 5.1.1 semver: 7.3.8 @@ -1467,12 +1423,12 @@ packages: - typescript dev: true - /@typescript-eslint/visitor-keys/5.57.0: + /@typescript-eslint/visitor-keys/5.57.1: resolution: - { integrity: sha512-ery2g3k0hv5BLiKpPuwYt9KBkAp2ugT6VvyShXdLOkax895EC55sP0Tx5L0fZaQueiK3fBLvHVvEl3jFS5ia+g== } + { integrity: sha512-RjQrAniDU0CEk5r7iphkm731zKlFiUjvcBS2yHAg8WWqFMCaCrD0rKEVOMUyMMcbGPZ0bPp56srkGWrgfZqLRA== } engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } dependencies: - '@typescript-eslint/types': 5.57.0 + '@typescript-eslint/types': 5.57.1 eslint-visitor-keys: 3.4.0 dev: true @@ -1671,7 +1627,7 @@ packages: postcss: ^8.1.0 dependencies: browserslist: 4.21.5 - caniuse-lite: 1.0.30001473 + caniuse-lite: 1.0.30001474 fraction.js: 4.2.0 normalize-range: 0.1.2 picocolors: 1.0.0 @@ -1731,8 +1687,8 @@ packages: engines: { node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7 } hasBin: true dependencies: - caniuse-lite: 1.0.30001473 - electron-to-chromium: 1.4.347 + caniuse-lite: 1.0.30001474 + electron-to-chromium: 1.4.355 node-releases: 2.0.10 update-browserslist-db: 1.0.10_browserslist@4.21.5 dev: true @@ -1746,6 +1702,14 @@ packages: node-gyp-build: 4.6.0 dev: false + /busboy/1.6.0: + resolution: + { integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA== } + engines: { node: '>=10.16.0' } + dependencies: + streamsearch: 1.1.0 + dev: false + /call-bind/1.0.2: resolution: { integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== } @@ -1765,9 +1729,9 @@ packages: engines: { node: '>= 6' } dev: true - /caniuse-lite/1.0.30001473: + /caniuse-lite/1.0.30001474: resolution: - { integrity: sha512-ewDad7+D2vlyy+E4UJuVfiBsU69IL+8oVmTuZnH5Q6CIUbxNfI50uVpRHbUPDD6SUaN2o0Lh4DhTrvLG/Tn1yg== } + { integrity: sha512-iaIZ8gVrWfemh5DG3T9/YqarVZoYf0r188IjaGwx68j4Pf0SGY6CQkmJUIE+NZHkkecQGohzXmBGEwWDr9aM3Q== } /chalk/2.4.2: resolution: @@ -1920,9 +1884,9 @@ packages: hasBin: true dev: true - /csstype/3.1.1: + /csstype/3.1.2: resolution: - { integrity: sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw== } + { integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ== } /d/1.0.1: resolution: @@ -2077,9 +2041,9 @@ packages: { integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== } dev: true - /electron-to-chromium/1.4.347: + /electron-to-chromium/1.4.355: resolution: - { integrity: sha512-LNi3+/9nV0vT6Bz1OsSoZ/w7IgNuWdefZ7mjKNjZxyRlI/ag6uMXxsxAy5Etvuixq3Q26exw2fc4bNYvYQqXSw== } + { integrity: sha512-056hxzEE4l667YeOccgjhRr5fTiwZ6EIJ4FpzGps4k3YcS8iAhiaBYUBrv5E2LDQJsussscv9EEUwAYKnv+ZKg== } dev: true /emoji-mart/5.5.2: @@ -2235,9 +2199,9 @@ packages: engines: { node: '>=10' } dev: true - /eslint-config-next/13.2.4_ip5up2nocltd47wbnuyybe5dxu: + /eslint-config-next/13.3.0_ip5up2nocltd47wbnuyybe5dxu: resolution: - { integrity: sha512-lunIBhsoeqw6/Lfkd6zPt25w1bn0znLA/JCL+au1HoEpSb4/PpsOYsYtgV/q+YPsoKIOzFyU5xnb04iZnXjUvg== } + { integrity: sha512-6YEwmFBX0VjBd3ODGW9df0Is0FLaRFdMN8eAahQG9CN6LjQ28J8AFr19ngxqMSg7Qv6Uca/3VeeBosJh1bzu0w== } peerDependencies: eslint: ^7.23.0 || ^8.0.0 typescript: '>=3.3.1' @@ -2245,13 +2209,13 @@ packages: typescript: optional: true dependencies: - '@next/eslint-plugin-next': 13.2.4 + '@next/eslint-plugin-next': 13.3.0 '@rushstack/eslint-patch': 1.2.0 - '@typescript-eslint/parser': 5.57.0_ip5up2nocltd47wbnuyybe5dxu + '@typescript-eslint/parser': 5.57.1_ip5up2nocltd47wbnuyybe5dxu eslint: 8.37.0 eslint-import-resolver-node: 0.3.7 - eslint-import-resolver-typescript: 3.5.4_rbts4wm34tb3x7owcp777e4f4y - eslint-plugin-import: 2.27.5_f66okp2kqrdiymeqhgaog6g5pu + eslint-import-resolver-typescript: 3.5.5_u7atknl6eku5bjfaby3se6aesi + eslint-plugin-import: 2.27.5_lzketmck77f3sl4imublpv5fl4 eslint-plugin-jsx-a11y: 6.7.1_eslint@8.37.0 eslint-plugin-react: 7.32.2_eslint@8.37.0 eslint-plugin-react-hooks: 4.6.0_eslint@8.37.0 @@ -2277,14 +2241,14 @@ packages: dependencies: debug: 3.2.7 is-core-module: 2.11.0 - resolve: 1.22.1 + resolve: 1.22.2 transitivePeerDependencies: - supports-color dev: true - /eslint-import-resolver-typescript/3.5.4_rbts4wm34tb3x7owcp777e4f4y: + /eslint-import-resolver-typescript/3.5.5_u7atknl6eku5bjfaby3se6aesi: resolution: - { integrity: sha512-9xUpnedEmSfG57sN1UvWPiEhfJ8bPt0Wg2XysA7Mlc79iFGhmJtRUg9LxtkK81FhMUui0YuR2E8iUsVhePkh4A== } + { integrity: sha512-TdJqPHs2lW5J9Zpe17DZNQuDnox4xo2o+0tE7Pggain9Rbc19ik8kFtXdxZ250FVx2kF4vlt2RSf4qlUpG7bhw== } engines: { node: ^14.18.0 || >=16.0.0 } peerDependencies: eslint: '*' @@ -2293,17 +2257,21 @@ packages: debug: 4.3.4 enhanced-resolve: 5.12.0 eslint: 8.37.0 - eslint-plugin-import: 2.27.5_f66okp2kqrdiymeqhgaog6g5pu + eslint-module-utils: 2.7.4_5iihppue53jnqu3izaqooslrtm + eslint-plugin-import: 2.27.5_lzketmck77f3sl4imublpv5fl4 get-tsconfig: 4.5.0 globby: 13.1.3 is-core-module: 2.11.0 is-glob: 4.0.3 synckit: 0.8.5 transitivePeerDependencies: + - '@typescript-eslint/parser' + - eslint-import-resolver-node + - eslint-import-resolver-webpack - supports-color dev: true - /eslint-module-utils/2.7.4_kilwkdng6ctuxxd7dfjxtekdra: + /eslint-module-utils/2.7.4_5iihppue53jnqu3izaqooslrtm: resolution: { integrity: sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA== } engines: { node: '>=4' } @@ -2325,16 +2293,16 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 5.57.0_ip5up2nocltd47wbnuyybe5dxu + '@typescript-eslint/parser': 5.57.1_ip5up2nocltd47wbnuyybe5dxu debug: 3.2.7 eslint: 8.37.0 eslint-import-resolver-node: 0.3.7 - eslint-import-resolver-typescript: 3.5.4_rbts4wm34tb3x7owcp777e4f4y + eslint-import-resolver-typescript: 3.5.5_u7atknl6eku5bjfaby3se6aesi transitivePeerDependencies: - supports-color dev: true - /eslint-plugin-import/2.27.5_f66okp2kqrdiymeqhgaog6g5pu: + /eslint-plugin-import/2.27.5_lzketmck77f3sl4imublpv5fl4: resolution: { integrity: sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow== } engines: { node: '>=4' } @@ -2345,7 +2313,7 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 5.57.0_ip5up2nocltd47wbnuyybe5dxu + '@typescript-eslint/parser': 5.57.1_ip5up2nocltd47wbnuyybe5dxu array-includes: 3.1.6 array.prototype.flat: 1.3.1 array.prototype.flatmap: 1.3.1 @@ -2353,13 +2321,13 @@ packages: doctrine: 2.1.0 eslint: 8.37.0 eslint-import-resolver-node: 0.3.7 - eslint-module-utils: 2.7.4_kilwkdng6ctuxxd7dfjxtekdra + eslint-module-utils: 2.7.4_5iihppue53jnqu3izaqooslrtm has: 1.0.3 is-core-module: 2.11.0 is-glob: 4.0.3 minimatch: 3.1.2 object.values: 1.1.6 - resolve: 1.22.1 + resolve: 1.22.2 semver: 6.3.0 tsconfig-paths: 3.14.2 transitivePeerDependencies: @@ -3231,15 +3199,6 @@ packages: hasBin: true dev: true - /jotai-cache/0.3.0_jotai@2.0.3: - resolution: - { integrity: sha512-hV6DUD1frRpW0EN8Ss7n4KNaMZRBokQw6KPT3seA4P35QRXctMNUn4pHRlg3hzO+KBPpEZw+fyKlWAqagmuIwQ== } - peerDependencies: - jotai: '>=1.11.0' - dependencies: - jotai: 2.0.3_react@18.2.0 - dev: false - /jotai/2.0.3_react@18.2.0: resolution: { integrity: sha512-MMjhSPAL3RoeZD9WbObufRT2quThEAEknHHridf2ma8Ml7ZVQmUiHk0ssdbR3F0h3kcwhYqSGJ59OjhPge7RRg== } @@ -3533,13 +3492,13 @@ packages: { integrity: sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ== } dev: false - /next/13.2.4_biqbaboplfbrettd7655fr4n2y: + /next/13.3.0_biqbaboplfbrettd7655fr4n2y: resolution: - { integrity: sha512-g1I30317cThkEpvzfXujf0O4wtaQHtDCLhlivwlTJ885Ld+eOgcz7r3TGQzeU+cSRoNHtD8tsJgzxVdYojFssw== } + { integrity: sha512-OVTw8MpIPa12+DCUkPqRGPS3thlJPcwae2ZL4xti3iBff27goH024xy4q2lhlsdoYiKOi8Kz6uJoLW/GXwgfOA== } engines: { node: '>=14.6.0' } hasBin: true peerDependencies: - '@opentelemetry/api': ^1.4.0 + '@opentelemetry/api': ^1.1.0 fibers: '>= 3.1.0' node-sass: ^6.0.0 || ^7.0.0 react: ^18.2.0 @@ -3555,27 +3514,24 @@ packages: sass: optional: true dependencies: - '@next/env': 13.2.4 + '@next/env': 13.3.0 '@swc/helpers': 0.4.14 - caniuse-lite: 1.0.30001473 + busboy: 1.6.0 + caniuse-lite: 1.0.30001474 postcss: 8.4.14 react: 18.2.0 react-dom: 18.2.0_react@18.2.0 styled-jsx: 5.1.1_react@18.2.0 optionalDependencies: - '@next/swc-android-arm-eabi': 13.2.4 - '@next/swc-android-arm64': 13.2.4 - '@next/swc-darwin-arm64': 13.2.4 - '@next/swc-darwin-x64': 13.2.4 - '@next/swc-freebsd-x64': 13.2.4 - '@next/swc-linux-arm-gnueabihf': 13.2.4 - '@next/swc-linux-arm64-gnu': 13.2.4 - '@next/swc-linux-arm64-musl': 13.2.4 - '@next/swc-linux-x64-gnu': 13.2.4 - '@next/swc-linux-x64-musl': 13.2.4 - '@next/swc-win32-arm64-msvc': 13.2.4 - '@next/swc-win32-ia32-msvc': 13.2.4 - '@next/swc-win32-x64-msvc': 13.2.4 + '@next/swc-darwin-arm64': 13.3.0 + '@next/swc-darwin-x64': 13.3.0 + '@next/swc-linux-arm64-gnu': 13.3.0 + '@next/swc-linux-arm64-musl': 13.3.0 + '@next/swc-linux-x64-gnu': 13.3.0 + '@next/swc-linux-x64-musl': 13.3.0 + '@next/swc-win32-arm64-msvc': 13.3.0 + '@next/swc-win32-ia32-msvc': 13.3.0 + '@next/swc-win32-x64-msvc': 13.3.0 transitivePeerDependencies: - '@babel/core' - babel-plugin-macros @@ -3623,15 +3579,15 @@ packages: dependencies: '@jest/source-map': 29.4.3 isomorphic-ws: 5.0.0_ws@8.13.0 - nostr-tools: 1.8.1 + nostr-tools: 1.8.2 safe-stable-stringify: 2.4.3 transitivePeerDependencies: - ws dev: false - /nostr-tools/1.8.1: + /nostr-tools/1.8.2: resolution: - { integrity: sha512-/2IUe5xINUYT5hYBoEz51dfRaodbRHnyF8n+ZbKWCoh0ZRX6AL88OoDNrWaWWo7tP5j5OyzSL9g/z4TP7bshEA== } + { integrity: sha512-r9erqxO96E2BqvOvR/5W0usY7GlcO9fVLKc1Q8b/LCBgISVaMWD2VFmjdSUcHSGPMWHLvB6k4Jui+FTi5KAprw== } dependencies: '@noble/hashes': 1.0.0 '@noble/secp256k1': 1.7.1 @@ -3881,7 +3837,7 @@ packages: postcss: 8.4.21 postcss-value-parser: 4.2.0 read-cache: 1.0.0 - resolve: 1.22.1 + resolve: 1.22.2 dev: true /postcss-js/4.0.1_postcss@8.4.21: @@ -3973,9 +3929,9 @@ packages: engines: { node: '>= 0.8.0' } dev: true - /prettier-plugin-tailwindcss/0.2.6_yk5p2qt6yzw3zyyilt4azle7eu: + /prettier-plugin-tailwindcss/0.2.7_yk5p2qt6yzw3zyyilt4azle7eu: resolution: - { integrity: sha512-F+7XCl9RLF/LPrGdUMHWpsT6TM31JraonAUyE6eBmpqymFvDwyl0ETHsKFHP1NG+sEfv8bmKqnTxEbWQbHPlBA== } + { integrity: sha512-jQopIOgjLpX+y8HeD56XZw7onupRTC0cw7eKKUimI7vhjkPF5/1ltW5LyqaPtSyc8HvEpvNZsvvsGFa2qpa59w== } engines: { node: '>=12.17.0' } peerDependencies: '@ianvs/prettier-plugin-sort-imports': '*' @@ -4105,7 +4061,7 @@ packages: react-fast-compare: 3.2.1 dev: false - /react-remove-scroll-bar/2.3.4_o2wclmlv6kymw75psj4clbbe6a: + /react-remove-scroll-bar/2.3.4_pofolu2o2erjq4lhyzl3hqovzq: resolution: { integrity: sha512-63C4YQBUt0m6ALadE9XV56hV8BgJWDmmTPY758iIJjfQKt2nYwoUrPk0LXRXcB/yIj82T1/Ixfdpdk68LwIB0A== } engines: { node: '>=10' } @@ -4116,13 +4072,13 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.0.31 + '@types/react': 18.0.33 react: 18.2.0 - react-style-singleton: 2.2.1_o2wclmlv6kymw75psj4clbbe6a + react-style-singleton: 2.2.1_pofolu2o2erjq4lhyzl3hqovzq tslib: 2.5.0 dev: false - /react-remove-scroll/2.5.5_o2wclmlv6kymw75psj4clbbe6a: + /react-remove-scroll/2.5.5_pofolu2o2erjq4lhyzl3hqovzq: resolution: { integrity: sha512-ImKhrzJJsyXJfBZ4bzu8Bwpka14c/fQt0k+cyFp/PBhTfyDnU5hjOtM4AG/0AMyy8oKzOTR0lDgJIM7pYXI0kw== } engines: { node: '>=10' } @@ -4133,13 +4089,13 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.0.31 + '@types/react': 18.0.33 react: 18.2.0 - react-remove-scroll-bar: 2.3.4_o2wclmlv6kymw75psj4clbbe6a - react-style-singleton: 2.2.1_o2wclmlv6kymw75psj4clbbe6a + react-remove-scroll-bar: 2.3.4_pofolu2o2erjq4lhyzl3hqovzq + react-style-singleton: 2.2.1_pofolu2o2erjq4lhyzl3hqovzq tslib: 2.5.0 - use-callback-ref: 1.3.0_o2wclmlv6kymw75psj4clbbe6a - use-sidecar: 1.1.2_o2wclmlv6kymw75psj4clbbe6a + use-callback-ref: 1.3.0_pofolu2o2erjq4lhyzl3hqovzq + use-sidecar: 1.1.2_pofolu2o2erjq4lhyzl3hqovzq dev: false /react-string-replace/1.1.0: @@ -4148,7 +4104,7 @@ packages: engines: { node: '>=0.12.0' } dev: false - /react-style-singleton/2.2.1_o2wclmlv6kymw75psj4clbbe6a: + /react-style-singleton/2.2.1_pofolu2o2erjq4lhyzl3hqovzq: resolution: { integrity: sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g== } engines: { node: '>=10' } @@ -4159,16 +4115,16 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.0.31 + '@types/react': 18.0.33 get-nonce: 1.0.1 invariant: 2.2.4 react: 18.2.0 tslib: 2.5.0 dev: false - /react-virtuoso/4.1.1_biqbaboplfbrettd7655fr4n2y: + /react-virtuoso/4.2.0_biqbaboplfbrettd7655fr4n2y: resolution: - { integrity: sha512-G2lyifG5UIRZI9vgcBt+6OLDL6CO5/O6YiGS+O9z+VNRjVSTioSwfBC7sVSLspYq7iyL60aIXlVqSKVJiSVhlg== } + { integrity: sha512-lO1akVyALlDMp+eIo4E99HjSQ8Cn2AKXBVfq7GaBjdlnlJaRvou8az6tVYGHFD6Az5EcPUc7OfzHvAyojOhgqw== } engines: { node: '>=10' } peerDependencies: react: '>=16 || >=17 || >= 18' @@ -4221,9 +4177,9 @@ packages: engines: { node: '>=4' } dev: true - /resolve/1.22.1: + /resolve/1.22.2: resolution: - { integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== } + { integrity: sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g== } hasBin: true dependencies: is-core-module: 2.11.0 @@ -4408,6 +4364,12 @@ packages: internal-slot: 1.0.5 dev: true + /streamsearch/1.1.0: + resolution: + { integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg== } + engines: { node: '>=10.0.0' } + dev: false + /string-argv/0.3.1: resolution: { integrity: sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg== } @@ -4603,7 +4565,7 @@ packages: postcss-selector-parser: 6.0.11 postcss-value-parser: 4.2.0 quick-lru: 5.1.1 - resolve: 1.22.1 + resolve: 1.22.2 sucrase: 3.31.0 transitivePeerDependencies: - ts-node @@ -4790,7 +4752,7 @@ packages: punycode: 2.3.0 dev: true - /use-callback-ref/1.3.0_o2wclmlv6kymw75psj4clbbe6a: + /use-callback-ref/1.3.0_pofolu2o2erjq4lhyzl3hqovzq: resolution: { integrity: sha512-3FT9PRuRdbB9HfXhEq35u4oZkvpJ5kuYbpqhCfmiZyReuRgpnhDlbr2ZEnnuS0RrJAPn6l23xjFg9kpDM+Ms7w== } engines: { node: '>=10' } @@ -4801,12 +4763,12 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.0.31 + '@types/react': 18.0.33 react: 18.2.0 tslib: 2.5.0 dev: false - /use-isomorphic-layout-effect/1.1.2_o2wclmlv6kymw75psj4clbbe6a: + /use-isomorphic-layout-effect/1.1.2_pofolu2o2erjq4lhyzl3hqovzq: resolution: { integrity: sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA== } peerDependencies: @@ -4816,11 +4778,11 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.0.31 + '@types/react': 18.0.33 react: 18.2.0 dev: false - /use-sidecar/1.1.2_o2wclmlv6kymw75psj4clbbe6a: + /use-sidecar/1.1.2_pofolu2o2erjq4lhyzl3hqovzq: resolution: { integrity: sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw== } engines: { node: '>=10' } @@ -4831,7 +4793,7 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.0.31 + '@types/react': 18.0.33 detect-node-es: 1.1.0 react: 18.2.0 tslib: 2.5.0 @@ -4995,14 +4957,3 @@ packages: { integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== } engines: { node: '>=10' } dev: true - - github.com/tauri-apps/tauri-plugin-sql/3a8b9a6b244df7512bc5ef8692cebdedbab3ccce: - resolution: - { - tarball: https://codeload.github.com/tauri-apps/tauri-plugin-sql/tar.gz/3a8b9a6b244df7512bc5ef8692cebdedbab3ccce, - } - name: tauri-plugin-sql-api - version: 0.0.0 - dependencies: - '@tauri-apps/api': 1.2.0 - dev: false diff --git a/src-tauri/.cargo/config.toml b/src-tauri/.cargo/config.toml new file mode 100644 index 00000000..97680697 --- /dev/null +++ b/src-tauri/.cargo/config.toml @@ -0,0 +1,2 @@ +[alias] +prisma = "run --bin prisma --" diff --git a/src-tauri/.gitignore b/src-tauri/.gitignore index f4dfb82b..0c1d05c7 100644 --- a/src-tauri/.gitignore +++ b/src-tauri/.gitignore @@ -2,3 +2,5 @@ # will have compiled files and executables /target/ +# prisma +src/db.rs diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock index b1dd6ce0..7129ab10 100644 --- a/src-tauri/Cargo.lock +++ b/src-tauri/Cargo.lock @@ -2,6 +2,21 @@ # It is not intended for manual editing. version = 3 +[[package]] +name = "Inflector" +version = "0.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3" + +[[package]] +name = "addr2line" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a76fd60b23679b7d19bd066031410fb7e458ccc5e958eb5c325888ce4baedc97" +dependencies = [ + "gimli", +] + [[package]] name = "adler" version = "1.0.2" @@ -43,12 +58,38 @@ dependencies = [ "alloc-no-stdlib", ] +[[package]] +name = "android_system_properties" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" +dependencies = [ + "libc", +] + [[package]] name = "anyhow" version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "224afbd727c3d6e4b90103ece64b8d1b67fbb1973b1046c2281eed3f3803f800" +[[package]] +name = "ascii" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eab1c04a571841102f5345a8fc0f6bb3d31c315dec879b5c6e42e40ce7ffa34e" + +[[package]] +name = "async-trait" +version = "0.1.68" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9ccdd8f2a161be9bd5c023df56f1b2a0bd1d83872ae53b71a84a12c9bf6e842" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.13", +] + [[package]] name = "atk" version = "0.15.1" @@ -74,12 +115,12 @@ dependencies = [ ] [[package]] -name = "atoi" -version = "1.0.0" +name = "atomic-shim" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7c57d12312ff59c811c0643f4d80830505833c9ffaebd193d819392b265be8e" +checksum = "67cd4b51d303cf3501c301e8125df442128d3c6d7c69f71b27833d253de47e77" dependencies = [ - "num-traits", + "crossbeam-utils", ] [[package]] @@ -98,12 +139,60 @@ dependencies = [ "url", ] +[[package]] +name = "atty" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" +dependencies = [ + "hermit-abi 0.1.19", + "libc", + "winapi", +] + [[package]] name = "autocfg" version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" +[[package]] +name = "backtrace" +version = "0.3.67" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "233d376d6d185f2a3093e58f283f60f880315b6c60075b01f36b3b85154564ca" +dependencies = [ + "addr2line", + "cc", + "cfg-if", + "libc", + "miniz_oxide", + "object", + "rustc-demangle", +] + +[[package]] +name = "base-x" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cbbc9d0964165b47557570cce6c952866c2678457aca742aafc9fb771d30270" + +[[package]] +name = "base36" +version = "0.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9c26bddc1271f7112e5ec797e8eeba6de2de211c1488e506b9500196dbf77c5" +dependencies = [ + "base-x", + "failure", +] + +[[package]] +name = "base64" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3441f0f7b02788e948e47f457ca01f1d7e6d92c693bc132c22b087d3141c03ff" + [[package]] name = "base64" version = "0.13.1" @@ -116,6 +205,43 @@ version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a4a4ddaa51a5bc52a6948f74c06d20aaaddb71924eab79b8c97a8c556e942d6a" +[[package]] +name = "bigdecimal" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6aaf33151a6429fe9211d1b276eafdf70cdff28b071e76c0b0e1503221ea3744" +dependencies = [ + "num-bigint", + "num-integer", + "num-traits", + "serde", +] + +[[package]] +name = "bigint" +version = "4.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0e8c8a600052b52482eff2cf4d810e462fdff1f656ac1ecb6232132a1ed7def" +dependencies = [ + "byteorder", + "crunchy", +] + +[[package]] +name = "bit-set" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" +dependencies = [ + "bit-vec", +] + +[[package]] +name = "bit-vec" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" + [[package]] name = "bitflags" version = "1.3.2" @@ -128,6 +254,15 @@ version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a" +[[package]] +name = "block-buffer" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" +dependencies = [ + "generic-array", +] + [[package]] name = "block-buffer" version = "0.10.3" @@ -168,6 +303,21 @@ dependencies = [ "serde", ] +[[package]] +name = "builtin-psl-connectors" +version = "0.1.0" +source = "git+https://github.com/Brendonovich/prisma-engines?tag=pcr-0.6.5#7cc20cc54a7ab0b5e38c81901826939a91a17ba0" +dependencies = [ + "connection-string", + "either", + "enumflags2", + "indoc 1.0.9", + "lsp-types", + "once_cell", + "psl-core", + "regex", +] + [[package]] name = "bumpalo" version = "3.12.0" @@ -272,6 +422,22 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +[[package]] +name = "chrono" +version = "0.4.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e3c5919066adf22df73762e50cffcde3a758f2a848b113b586d1f86728b673b" +dependencies = [ + "iana-time-zone", + "js-sys", + "num-integer", + "num-traits", + "serde", + "time 0.1.43", + "wasm-bindgen", + "winapi", +] + [[package]] name = "cocoa" version = "0.24.1" @@ -303,12 +469,46 @@ dependencies = [ "objc", ] +[[package]] +name = "codespan-reporting" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e" +dependencies = [ + "termcolor", + "unicode-width", +] + [[package]] name = "color_quant" version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b" +[[package]] +name = "colored" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b3616f750b84d8f0de8a58bda93e08e2a81ad3f523089b05f1dffecab48c6cbd" +dependencies = [ + "atty", + "lazy_static", + "winapi", +] + +[[package]] +name = "combine" +version = "3.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da3da6baa321ec19e1cc41d31bf599f00c783d0517095cdaf0332e3fe8d20680" +dependencies = [ + "ascii", + "byteorder", + "either", + "memchr", + "unreachable", +] + [[package]] name = "combine" version = "4.6.6" @@ -319,12 +519,37 @@ dependencies = [ "memchr", ] +[[package]] +name = "connection-string" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c4ecb0dc8c35d2c626e45ae70bbfcb1050b302f42bcdf025d913cc0c5a0b443" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + [[package]] name = "convert_case" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" +[[package]] +name = "convert_case" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb4a24b1aaf0fd0ce8b45161144d6f42cd91677fd5940fd431183eb023b3a2b8" + +[[package]] +name = "convert_case" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec182b0ca2f35d8fc196cf3404988fd8b8c739a4d270ff118a398feb0cbec1ca" +dependencies = [ + "unicode-segmentation", +] + [[package]] name = "core-foundation" version = "0.9.3" @@ -375,21 +600,6 @@ dependencies = [ "libc", ] -[[package]] -name = "crc" -version = "3.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86ec7a15cbe22e59248fc7eadb1907dab5ba09372595da4d73dd805ed4417dfe" -dependencies = [ - "crc-catalog", -] - -[[package]] -name = "crc-catalog" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cace84e55f07e7301bae1c519df89cdad8cc3cd868413d3fdbdeca9ff3db484" - [[package]] name = "crc32fast" version = "1.3.2" @@ -409,6 +619,19 @@ dependencies = [ "crossbeam-utils", ] +[[package]] +name = "crossbeam-epoch" +version = "0.9.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46bd5f3f85273295a9d14aedfb86f6aadbff6d8f5295c4a9edb08e819dcf5695" +dependencies = [ + "autocfg", + "cfg-if", + "crossbeam-utils", + "memoffset 0.8.0", + "scopeguard", +] + [[package]] name = "crossbeam-queue" version = "0.3.8" @@ -428,6 +651,12 @@ dependencies = [ "cfg-if", ] +[[package]] +name = "crunchy" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2f4a431c5c9f662e1200b7c7f02c34e91361150e382089a8f2dec3ba680cbda" + [[package]] name = "crypto-common" version = "0.1.6" @@ -452,7 +681,7 @@ dependencies = [ "proc-macro2", "quote", "smallvec", - "syn", + "syn 1.0.107", ] [[package]] @@ -462,7 +691,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dfae75de57f2b2e85e8768c3ea840fd159c8f33e2b6522c7835b7abac81be16e" dependencies = [ "quote", - "syn", + "syn 1.0.107", ] [[package]] @@ -472,7 +701,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6d2301688392eb071b0bf1a37be05c469d3cc4dbbd95df672fe28ab021e6a096" dependencies = [ "quote", - "syn", + "syn 1.0.107", ] [[package]] @@ -481,6 +710,77 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b365fabc795046672053e29c954733ec3b05e4be654ab130fe8f1f94d7051f35" +[[package]] +name = "cuid" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe5d03ac594f5f9cc680b142fff46f3ad9f197e19272042ebf1a40b383fee6fb" +dependencies = [ + "base36", + "bigint", + "cuid2", + "hostname", + "num", + "once_cell", + "rand 0.8.5", +] + +[[package]] +name = "cuid2" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1debbff0c0f0b54e681296c6f064a78f8ecec8e89e7fcc472443d9f85b98ca9a" +dependencies = [ + "num", + "proptest", + "rand 0.8.5", + "sha3", +] + +[[package]] +name = "cxx" +version = "1.0.94" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f61f1b6389c3fe1c316bf8a4dccc90a38208354b330925bce1f74a6c4756eb93" +dependencies = [ + "cc", + "cxxbridge-flags", + "cxxbridge-macro", + "link-cplusplus", +] + +[[package]] +name = "cxx-build" +version = "1.0.94" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12cee708e8962df2aeb38f594aae5d827c022b6460ac71a7a3e2c3c2aae5a07b" +dependencies = [ + "cc", + "codespan-reporting", + "once_cell", + "proc-macro2", + "quote", + "scratch", + "syn 2.0.13", +] + +[[package]] +name = "cxxbridge-flags" +version = "1.0.94" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7944172ae7e4068c533afbb984114a56c46e9ccddda550499caa222902c7f7bb" + +[[package]] +name = "cxxbridge-macro" +version = "1.0.94" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2345488264226bf682893e25de0769f3360aac9957980ec49361b083ddaa5bc5" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.13", +] + [[package]] name = "darling" version = "0.13.4" @@ -502,7 +802,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn", + "syn 1.0.107", ] [[package]] @@ -513,7 +813,18 @@ checksum = "9c972679f83bdf9c42bd905396b6c3588a843a17f0f16dfcfa3e2c5d57441835" dependencies = [ "darling_core", "quote", - "syn", + "syn 1.0.107", +] + +[[package]] +name = "datamodel-renderer" +version = "0.1.0" +source = "git+https://github.com/Brendonovich/prisma-engines?tag=pcr-0.6.5#7cc20cc54a7ab0b5e38c81901826939a91a17ba0" +dependencies = [ + "base64 0.13.1", + "once_cell", + "psl", + "regex", ] [[package]] @@ -522,11 +833,30 @@ version = "0.99.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" dependencies = [ - "convert_case", + "convert_case 0.4.0", "proc-macro2", "quote", "rustc_version 0.4.0", - "syn", + "syn 1.0.107", +] + +[[package]] +name = "diagnostics" +version = "0.1.0" +source = "git+https://github.com/Brendonovich/prisma-engines?tag=pcr-0.6.5#7cc20cc54a7ab0b5e38c81901826939a91a17ba0" +dependencies = [ + "colored", + "indoc 1.0.9", + "pest", +] + +[[package]] +name = "digest" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" +dependencies = [ + "generic-array", ] [[package]] @@ -535,10 +865,19 @@ version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8168378f4e5023e7218c89c891c0fd8ecdb5e5e4f18cb78f38cf245dd021e76f" dependencies = [ - "block-buffer", + "block-buffer 0.10.3", "crypto-common", ] +[[package]] +name = "directories" +version = "4.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f51c5d4ddabd36886dd3e1438cb358cdcb0d7c499cb99cb4ac2e38e18b5cb210" +dependencies = [ + "dirs-sys", +] + [[package]] name = "dirs-next" version = "2.0.0" @@ -549,6 +888,17 @@ dependencies = [ "dirs-sys-next", ] +[[package]] +name = "dirs-sys" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6" +dependencies = [ + "libc", + "redox_users", + "winapi", +] + [[package]] name = "dirs-sys-next" version = "0.1.2" @@ -567,10 +917,52 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b" [[package]] -name = "dotenvy" -version = "0.15.6" +name = "dml" +version = "0.1.0" +source = "git+https://github.com/Brendonovich/prisma-engines?tag=pcr-0.6.5#7cc20cc54a7ab0b5e38c81901826939a91a17ba0" +dependencies = [ + "chrono", + "cuid", + "either", + "enumflags2", + "indoc 1.0.9", + "prisma-value", + "psl-core", + "schema-ast", + "serde", + "serde_json", + "uuid 1.3.0", +] + +[[package]] +name = "dmmf" +version = "0.1.0" +source = "git+https://github.com/Brendonovich/prisma-engines?tag=pcr-0.6.5#7cc20cc54a7ab0b5e38c81901826939a91a17ba0" +dependencies = [ + "bigdecimal", + "indexmap", + "prisma-models", + "psl", + "schema", + "schema-builder", + "serde", + "serde_json", +] + +[[package]] +name = "document-features" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03d8c417d7a8cb362e0c37e5d815f5eb7c37f79ff93707329d5a194e42e54ca0" +checksum = "e493c573fce17f00dcab13b6ac057994f3ce17d1af4dc39bfd482b83c6eb6157" +dependencies = [ + "litrs", +] + +[[package]] +name = "dotenv" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77c90badedccf4105eca100756a0b1289e191f6fcbdadd3cee1d2f614f97da8f" [[package]] name = "dtoa" @@ -615,10 +1007,64 @@ dependencies = [ ] [[package]] -name = "event-listener" -version = "2.5.3" +name = "endian-type" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" +checksum = "c34f04666d835ff5d62e058c3995147c06f42fe86ff053337632bca83e42702d" + +[[package]] +name = "enumflags2" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0044ebdf7fbb2a772e0c0233a9d3173c5cd8af8ae7078d4c5188af44ffffaa4b" +dependencies = [ + "enumflags2_derive", +] + +[[package]] +name = "enumflags2_derive" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d2c772ccdbdfd1967b4f5d79d17c98ebf92009fdcc838db7aa434462f600c26" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.13", +] + +[[package]] +name = "failure" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d32e9bd16cc02eae7db7ef620b392808b89f6a5e16bb3497d159c6b92a0f4f86" +dependencies = [ + "backtrace", + "failure_derive", +] + +[[package]] +name = "failure_derive" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa4da3c766cd7a0db8242e326e9e4e081edd567072893ed320008189715366a4" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.107", + "synstructure", +] + +[[package]] +name = "fallible-iterator" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7" + +[[package]] +name = "fallible-streaming-iterator" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7360491ce676a36bf9bb3c56c1aa791658183a54d2744120f27285738d90465a" [[package]] name = "fastrand" @@ -635,7 +1081,7 @@ version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e1c54951450cbd39f3dbcf1005ac413b49487dabf18a720ad2383eccfeffb92" dependencies = [ - "memoffset", + "memoffset 0.6.5", "rustc_version 0.3.3", ] @@ -651,6 +1097,12 @@ dependencies = [ "windows-sys 0.42.0", ] +[[package]] +name = "fixedbitset" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86d4de0081402f5e88cdac65c8dcdcc73118c1a7a465e2a05f0da05843a8ea33" + [[package]] name = "flate2" version = "1.0.25" @@ -661,18 +1113,6 @@ dependencies = [ "miniz_oxide", ] -[[package]] -name = "flume" -version = "0.10.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1657b4441c3403d9f7b3409e47575237dac27b1b5726df654a6ecbf92f0f7577" -dependencies = [ - "futures-core", - "futures-sink", - "pin-project", - "spin 0.9.4", -] - [[package]] name = "fnv" version = "1.0.7" @@ -703,6 +1143,12 @@ dependencies = [ "percent-encoding", ] +[[package]] +name = "fuchsia-cprng" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba" + [[package]] name = "futf" version = "0.1.5" @@ -755,17 +1201,6 @@ dependencies = [ "futures-util", ] -[[package]] -name = "futures-intrusive" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a604f7a68fbf8103337523b1fadc8ade7361ee3f112f7c680ad179651616aed5" -dependencies = [ - "futures-core", - "lock_api", - "parking_lot 0.11.2", -] - [[package]] name = "futures-io" version = "0.3.26" @@ -780,7 +1215,7 @@ checksum = "95a73af87da33b5acf53acfebdc339fe592ecf5357ac7c0a7734ab9d8c876a70" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.107", ] [[package]] @@ -795,6 +1230,12 @@ version = "0.3.26" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dcf79a1bf610b10f42aea489289c5a2c478a786509693b80cd39c44ccd936366" +[[package]] +name = "futures-timer" +version = "3.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e64b03909df88034c26dc1547e8970b91f98bdb65165d6a4e9110d94263dbb2c" + [[package]] name = "futures-util" version = "0.3.26" @@ -939,6 +1380,12 @@ dependencies = [ "wasi 0.11.0+wasi-snapshot-preview1", ] +[[package]] +name = "gimli" +version = "0.27.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad0a93d233ebf96623465aad4046a8d3aa4da22d4f4beba5388838c8a434bbb4" + [[package]] name = "gio" version = "0.15.12" @@ -1001,7 +1448,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn", + "syn 1.0.107", ] [[package]] @@ -1044,6 +1491,16 @@ dependencies = [ "system-deps 6.0.3", ] +[[package]] +name = "graphql-parser" +version = "0.3.0" +source = "git+https://github.com/prisma/graphql-parser#6a3f58bd879065588e710cb02b5bd30c1ce182c3" +dependencies = [ + "combine 3.8.1", + "indexmap", + "thiserror", +] + [[package]] name = "gtk" version = "0.15.5" @@ -1096,7 +1553,35 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn", + "syn 1.0.107", +] + +[[package]] +name = "h2" +version = "0.3.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5be7b54589b581f624f566bf5d8eb2bab1db736c51528720b6bd36b96b55924d" +dependencies = [ + "bytes", + "fnv", + "futures-core", + "futures-sink", + "futures-util", + "http", + "indexmap", + "slab", + "tokio", + "tokio-util", + "tracing", +] + +[[package]] +name = "hashbrown" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e" +dependencies = [ + "ahash", ] [[package]] @@ -1110,11 +1595,11 @@ dependencies = [ [[package]] name = "hashlink" -version = "0.8.1" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69fe1fcf8b4278d860ad0548329f892a3631fb63f82574df68275f34cdbe0ffa" +checksum = "7249a3129cbc1ffccd74857f81464a323a152173cdb134e0fd81bc803b29facf" dependencies = [ - "hashbrown", + "hashbrown 0.11.2", ] [[package]] @@ -1131,8 +1616,14 @@ name = "heck" version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" + +[[package]] +name = "hermit-abi" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" dependencies = [ - "unicode-segmentation", + "libc", ] [[package]] @@ -1150,6 +1641,17 @@ version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" +[[package]] +name = "hostname" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c731c3e10504cc8ed35cfe2f1db4c9274c3d35fa486e3b31df46f068ef3e867" +dependencies = [ + "libc", + "match_cfg", + "winapi", +] + [[package]] name = "html5ever" version = "0.25.2" @@ -1161,7 +1663,7 @@ dependencies = [ "markup5ever", "proc-macro2", "quote", - "syn", + "syn 1.0.107", ] [[package]] @@ -1175,12 +1677,96 @@ dependencies = [ "itoa 1.0.5", ] +[[package]] +name = "http-body" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" +dependencies = [ + "bytes", + "http", + "pin-project-lite", +] + [[package]] name = "http-range" version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "21dec9db110f5f872ed9699c3ecf50cf16f423502706ba5c72462e28d3157573" +[[package]] +name = "httparse" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" + +[[package]] +name = "httpdate" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421" + +[[package]] +name = "hyper" +version = "0.14.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc5e554ff619822309ffd57d8734d77cd5ce6238bc956f037ea06c58238c9899" +dependencies = [ + "bytes", + "futures-channel", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "httparse", + "httpdate", + "itoa 1.0.5", + "pin-project-lite", + "socket2", + "tokio", + "tower-service", + "tracing", + "want", +] + +[[package]] +name = "hyper-tls" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" +dependencies = [ + "bytes", + "hyper", + "native-tls", + "tokio", + "tokio-native-tls", +] + +[[package]] +name = "iana-time-zone" +version = "0.1.53" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64c122667b287044802d6ce17ee2ddf13207ed924c712de9a66a5814d5b64765" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "wasm-bindgen", + "winapi", +] + +[[package]] +name = "iana-time-zone-haiku" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0703ae284fc167426161c2e3f1da3ea71d94b21bedbcc9494e92b28e334e3dca" +dependencies = [ + "cxx", + "cxx-build", +] + [[package]] name = "ico" version = "0.2.0" @@ -1238,6 +1824,25 @@ dependencies = [ "num-traits", ] +[[package]] +name = "include_dir" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18762faeff7122e89e0857b02f7ce6fcc0d101d5e9ad2ad7846cc01d61b7f19e" +dependencies = [ + "include_dir_macros", +] + +[[package]] +name = "include_dir_macros" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b139284b5cf57ecfa712bcc66950bb635b31aff41c188e8a4cfc758eca374a3f" +dependencies = [ + "proc-macro2", + "quote", +] + [[package]] name = "indexmap" version = "1.9.2" @@ -1245,9 +1850,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1885e79c1fc4b10f0e172c475f458b7f7b93061064d98c3293e98c5ba0c8b399" dependencies = [ "autocfg", - "hashbrown", + "hashbrown 0.12.3", + "serde", ] +[[package]] +name = "indoc" +version = "1.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa799dd5ed20a7e349f3b4639aa80d74549c81716d9ec4f994c9b5815598306" + +[[package]] +name = "indoc" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f2cb48b81b1dc9f39676bf99f5499babfec7cd8fe14307f7b3d747208fb5690" + [[package]] name = "infer" version = "0.7.0" @@ -1266,6 +1884,27 @@ dependencies = [ "cfg-if", ] +[[package]] +name = "introspection-connector" +version = "0.1.0" +source = "git+https://github.com/Brendonovich/prisma-engines?tag=pcr-0.6.5#7cc20cc54a7ab0b5e38c81901826939a91a17ba0" +dependencies = [ + "anyhow", + "async-trait", + "enumflags2", + "psl", + "serde", + "serde_json", + "thiserror", + "user-facing-errors", +] + +[[package]] +name = "ipnet" +version = "2.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12b6ee2129af8d4fb011108c73d99a1b83a85977f23b82460c0ae2e25bb4b57f" + [[package]] name = "itertools" version = "0.10.5" @@ -1317,7 +1956,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "039022cdf4d7b1cf548d31f60ae783138e5fd42013f6271049d7df7afadef96c" dependencies = [ "cesu8", - "combine", + "combine 4.6.6", "jni-sys", "log", "thiserror", @@ -1332,9 +1971,9 @@ checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" [[package]] name = "js-sys" -version = "0.3.61" +version = "0.3.56" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "445dde2150c55e483f3d8416706b97ec8e8237c307e5b7b4b8dd15e6af2a0730" +checksum = "a38fc24e30fd564ce974c02bf1d337caddff65be6cc4735a1f7eab22a7440f04" dependencies = [ "wasm-bindgen", ] @@ -1350,6 +1989,41 @@ dependencies = [ "treediff", ] +[[package]] +name = "json-rpc-api-build" +version = "0.1.0" +source = "git+https://github.com/Brendonovich/prisma-engines?tag=pcr-0.6.5#7cc20cc54a7ab0b5e38c81901826939a91a17ba0" +dependencies = [ + "backtrace", + "heck 0.3.3", + "serde", + "toml", +] + +[[package]] +name = "jsonrpc-core" +version = "17.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4467ab6dfa369b69e52bd0692e480c4d117410538526a57a304a0f2250fd95e" +dependencies = [ + "futures", + "futures-executor", + "futures-util", + "log", + "serde", + "serde_derive", + "serde_json", +] + +[[package]] +name = "keccak" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3afef3b6eff9ce9d8ff9b3601125eec7f0c8cbac7abd14f355d053fa56c98768" +dependencies = [ + "cpufeatures", +] + [[package]] name = "kuchiki" version = "0.8.1" @@ -1409,10 +2083,16 @@ dependencies = [ ] [[package]] -name = "libsqlite3-sys" -version = "0.24.2" +name = "libm" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "898745e570c7d0453cc1fbc4a701eb6c662ed54e8fec8b7d14be137ebeeb9d14" +checksum = "348108ab3fba42ec82ff6e9564fc4ca0247bdccdc68dd8af9764bbc79c3c8ffb" + +[[package]] +name = "libsqlite3-sys" +version = "0.22.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "290b64917f8b0cb885d9de0f9959fe1f775d7fa12f1da2db9001c1c8ab60f89d" dependencies = [ "cc", "pkg-config", @@ -1428,6 +2108,21 @@ dependencies = [ "safemem", ] +[[package]] +name = "link-cplusplus" +version = "1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ecd207c9c713c34f95a097a5b029ac2ce6010530c7b49d7fea24d977dede04f5" +dependencies = [ + "cc", +] + +[[package]] +name = "litrs" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9275e0933cf8bb20f008924c0cb07a0692fe54d8064996520bf998de9eb79aa" + [[package]] name = "lock_api" version = "0.4.9" @@ -1462,17 +2157,43 @@ dependencies = [ "tracing-subscriber", ] +[[package]] +name = "lru" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e999beba7b6e8345721bd280141ed958096a2e4abdf74f67ff4ce49b4b54e47a" +dependencies = [ + "hashbrown 0.12.3", +] + +[[package]] +name = "lsp-types" +version = "0.91.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2368312c59425dd133cb9a327afee65be0a633a8ce471d248e2202a48f8f68ae" +dependencies = [ + "bitflags", + "serde", + "serde_json", + "serde_repr", + "url", +] + [[package]] name = "lume" version = "0.2.1" dependencies = [ "cocoa", "objc", + "prisma-client-rust", + "prisma-client-rust-cli", "serde", "serde_json", + "specta", "tauri", "tauri-build", - "tauri-plugin-sql", + "tauri-specta", + "tokio", ] [[package]] @@ -1481,6 +2202,15 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4" +[[package]] +name = "mach" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b823e83b2affd8f40a9ee8c29dbc56404c1e34cd2710921f2801e2cf29527afa" +dependencies = [ + "libc", +] + [[package]] name = "malloc_buf" version = "0.0.6" @@ -1504,6 +2234,12 @@ dependencies = [ "tendril", ] +[[package]] +name = "match_cfg" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffbee8634e0d45d258acb448e7eaab3fce7a0a467395d4d9f228e3c1f01fb2e4" + [[package]] name = "matchers" version = "0.1.0" @@ -1534,6 +2270,146 @@ dependencies = [ "autocfg", ] +[[package]] +name = "memoffset" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d61c719bcfbcf5d62b3a09efa6088de8c54bc0bfcd3ea7ae39fcc186108b8de1" +dependencies = [ + "autocfg", +] + +[[package]] +name = "metrics" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e52eb6380b6d2a10eb3434aec0885374490f5b82c8aaf5cd487a183c98be834" +dependencies = [ + "ahash", + "metrics-macros", +] + +[[package]] +name = "metrics" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "142c53885123b68d94108295a09d4afe1a1388ed95b54d5dacd9a454753030f2" +dependencies = [ + "ahash", + "metrics-macros", +] + +[[package]] +name = "metrics-exporter-prometheus" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "953cbbb6f9ba4b9304f4df79b98cdc9d14071ed93065a9fca11c00c5d9181b66" +dependencies = [ + "hyper", + "indexmap", + "ipnet", + "metrics 0.19.0", + "metrics-util 0.13.0", + "parking_lot 0.11.2", + "quanta", + "thiserror", + "tokio", + "tracing", +] + +[[package]] +name = "metrics-macros" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49e30813093f757be5cf21e50389a24dc7dbb22c49f23b7e8f51d69b508a5ffa" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.107", +] + +[[package]] +name = "metrics-util" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "65a9e83b833e1d2e07010a386b197c13aa199bbd0fca5cf69bfa147972db890a" +dependencies = [ + "aho-corasick", + "atomic-shim", + "crossbeam-epoch", + "crossbeam-utils", + "hashbrown 0.11.2", + "indexmap", + "metrics 0.18.1", + "num_cpus", + "ordered-float", + "parking_lot 0.11.2", + "quanta", + "radix_trie", + "sketches-ddsketch", +] + +[[package]] +name = "metrics-util" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd1f4b69bef1e2b392b2d4a12902f2af90bb438ba4a66aa222d1023fa6561b50" +dependencies = [ + "atomic-shim", + "crossbeam-epoch", + "crossbeam-utils", + "hashbrown 0.11.2", + "metrics 0.19.0", + "num_cpus", + "parking_lot 0.11.2", + "quanta", + "sketches-ddsketch", +] + +[[package]] +name = "migration-connector" +version = "0.1.0" +source = "git+https://github.com/Brendonovich/prisma-engines?tag=pcr-0.6.5#7cc20cc54a7ab0b5e38c81901826939a91a17ba0" +dependencies = [ + "chrono", + "enumflags2", + "introspection-connector", + "psl", + "sha2 0.9.9", + "tracing", + "tracing-error", + "user-facing-errors", +] + +[[package]] +name = "migration-core" +version = "0.1.0" +source = "git+https://github.com/Brendonovich/prisma-engines?tag=pcr-0.6.5#7cc20cc54a7ab0b5e38c81901826939a91a17ba0" +dependencies = [ + "async-trait", + "chrono", + "enumflags2", + "json-rpc-api-build", + "jsonrpc-core", + "migration-connector", + "psl", + "serde", + "serde_json", + "sql-migration-connector", + "tokio", + "tracing", + "tracing-futures", + "tracing-subscriber", + "url", + "user-facing-errors", +] + +[[package]] +name = "mime" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" + [[package]] name = "minimal-lexical" version = "0.2.1" @@ -1561,6 +2437,24 @@ dependencies = [ "windows-sys 0.42.0", ] +[[package]] +name = "mobc" +version = "0.7.3" +source = "git+https://github.com/prisma/mobc?tag=1.0.6#80462c4870a2bf6aab49da15c88c021bae531da8" +dependencies = [ + "async-trait", + "futures-channel", + "futures-core", + "futures-timer", + "futures-util", + "log", + "metrics 0.18.1", + "thiserror", + "tokio", + "tracing", + "tracing-subscriber", +] + [[package]] name = "native-tls" version = "0.2.11" @@ -1613,6 +2507,15 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e4a24736216ec316047a1fc4252e27dabb04218aa4a3f37c6e7ddbf1f9782b54" +[[package]] +name = "nibble_vec" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77a5d83df9f36fe23f0c3648c6bbb8b0298bb5f1939c8f2704431371f4b84d43" +dependencies = [ + "smallvec", +] + [[package]] name = "nodrop" version = "0.1.14" @@ -1648,6 +2551,40 @@ dependencies = [ "winapi", ] +[[package]] +name = "num" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43db66d1170d347f9a065114077f7dccb00c1b9478c89384490a3425279a4606" +dependencies = [ + "num-bigint", + "num-complex", + "num-integer", + "num-iter", + "num-rational", + "num-traits", +] + +[[package]] +name = "num-bigint" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f93ab6289c7b344a8a9f60f88d80aa20032336fe78da341afc91c8a2341fc75f" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-complex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02e0d21255c828d6f128a1e41534206671e8c3ea0c62f32291e808dc82cff17d" +dependencies = [ + "num-traits", +] + [[package]] name = "num-integer" version = "0.1.45" @@ -1658,6 +2595,17 @@ dependencies = [ "num-traits", ] +[[package]] +name = "num-iter" +version = "0.1.43" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + [[package]] name = "num-rational" version = "0.4.1" @@ -1665,6 +2613,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0" dependencies = [ "autocfg", + "num-bigint", "num-integer", "num-traits", ] @@ -1676,6 +2625,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" dependencies = [ "autocfg", + "libm", ] [[package]] @@ -1684,7 +2634,7 @@ version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0fac9e2da13b5eb447a6ce3d392f23a29d8694bff781bf03a16cd9ac8697593b" dependencies = [ - "hermit-abi", + "hermit-abi 0.2.6", "libc", ] @@ -1706,7 +2656,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn", + "syn 1.0.107", ] [[package]] @@ -1737,12 +2687,27 @@ dependencies = [ "objc", ] +[[package]] +name = "object" +version = "0.30.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea86265d3d3dcb6a27fc51bd29a4bf387fae9d2986b823079d4986af253eb439" +dependencies = [ + "memchr", +] + [[package]] name = "once_cell" version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6f61fba1741ea2b3d6a1e3178721804bb716a68a6aeba1149b5d52e3d464ea66" +[[package]] +name = "opaque-debug" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" + [[package]] name = "open" version = "3.2.0" @@ -1776,7 +2741,7 @@ checksum = "b501e44f11665960c7e7fcf062c7d96a14ade4aa98116c004b2e37b5be7d736c" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.107", ] [[package]] @@ -1798,6 +2763,41 @@ dependencies = [ "vcpkg", ] +[[package]] +name = "opentelemetry" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6105e89802af13fdf48c49d7646d3b533a70e536d818aae7e78ba0433d01acb8" +dependencies = [ + "async-trait", + "crossbeam-channel", + "futures-channel", + "futures-executor", + "futures-util", + "js-sys", + "lazy_static", + "percent-encoding", + "pin-project", + "rand 0.8.5", + "thiserror", + "tokio", +] + +[[package]] +name = "ordered-float" +version = "2.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7940cf2ca942593318d07fcf2596cdca60a85c9e7fab408a5e21a4f9dcd40d87" +dependencies = [ + "num-traits", +] + +[[package]] +name = "ordermap" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a86ed3f5f244b372d6b1a00b72ef7f8876d0bc6a78a4c9985c53614041512063" + [[package]] name = "os_info" version = "3.6.0" @@ -1888,6 +2888,18 @@ dependencies = [ "windows-sys 0.45.0", ] +[[package]] +name = "parser-database" +version = "0.1.0" +source = "git+https://github.com/Brendonovich/prisma-engines?tag=pcr-0.6.5#7cc20cc54a7ab0b5e38c81901826939a91a17ba0" +dependencies = [ + "diagnostics", + "either", + "enumflags2", + "indexmap", + "schema-ast", +] + [[package]] name = "paste" version = "1.0.11" @@ -1916,6 +2928,50 @@ dependencies = [ "ucd-trie", ] +[[package]] +name = "pest_derive" +version = "2.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8bf026e2d0581559db66d837fe5242320f525d85c76283c61f4d51a1238d65ea" +dependencies = [ + "pest", + "pest_generator", +] + +[[package]] +name = "pest_generator" +version = "2.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b27bd18aa01d91c8ed2b61ea23406a676b42d82609c6e2581fba42f0c15f17f" +dependencies = [ + "pest", + "pest_meta", + "proc-macro2", + "quote", + "syn 1.0.107", +] + +[[package]] +name = "pest_meta" +version = "2.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f02b677c1859756359fc9983c2e56a0237f18624a3789528804406b7e915e5d" +dependencies = [ + "once_cell", + "pest", + "sha2 0.10.6", +] + +[[package]] +name = "petgraph" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c3659d1ee90221741f65dd128d9998311b0e40c5d3c23a62445938214abce4f" +dependencies = [ + "fixedbitset", + "ordermap", +] + [[package]] name = "phf" version = "0.8.0" @@ -1979,7 +3035,7 @@ dependencies = [ "proc-macro-hack", "proc-macro2", "quote", - "syn", + "syn 1.0.107", ] [[package]] @@ -1993,7 +3049,7 @@ dependencies = [ "proc-macro-hack", "proc-macro2", "quote", - "syn", + "syn 1.0.107", ] [[package]] @@ -2031,7 +3087,7 @@ checksum = "069bdb1e05adc7a8990dce9cc75370895fbe4e3d58b9b73bf1aee56359344a55" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.107", ] [[package]] @@ -2063,7 +3119,7 @@ dependencies = [ "line-wrap", "quick-xml", "serde", - "time", + "time 0.3.17", ] [[package]] @@ -2090,6 +3146,125 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" +[[package]] +name = "prisma-client-rust" +version = "0.6.7" +source = "git+https://github.com/Brendonovich/prisma-client-rust?tag=0.6.7#f71ad9122537c4ed29bf496a4a643947a5fe9aef" +dependencies = [ + "base64 0.13.1", + "bigdecimal", + "chrono", + "diagnostics", + "dml", + "dmmf", + "dotenv", + "futures", + "include_dir", + "indexmap", + "migration-core", + "paste", + "prisma-client-rust-macros", + "prisma-models", + "psl", + "query-connector", + "query-core", + "schema", + "serde", + "serde-value", + "serde_json", + "specta", + "tempdir", + "thiserror", + "tokio", + "tracing", + "user-facing-errors", + "uuid 1.3.0", +] + +[[package]] +name = "prisma-client-rust-cli" +version = "0.6.7" +source = "git+https://github.com/Brendonovich/prisma-client-rust?tag=0.6.7#f71ad9122537c4ed29bf496a4a643947a5fe9aef" +dependencies = [ + "directories", + "flate2", + "http", + "prisma-client-rust-sdk", + "proc-macro2", + "quote", + "regex", + "reqwest", + "serde", + "serde_json", + "serde_path_to_error", + "syn 1.0.107", + "thiserror", +] + +[[package]] +name = "prisma-client-rust-macros" +version = "0.6.7" +source = "git+https://github.com/Brendonovich/prisma-client-rust?tag=0.6.7#f71ad9122537c4ed29bf496a4a643947a5fe9aef" +dependencies = [ + "convert_case 0.6.0", + "proc-macro2", + "quote", + "specta", + "syn 1.0.107", +] + +[[package]] +name = "prisma-client-rust-sdk" +version = "0.6.7" +source = "git+https://github.com/Brendonovich/prisma-client-rust?tag=0.6.7#f71ad9122537c4ed29bf496a4a643947a5fe9aef" +dependencies = [ + "convert_case 0.5.0", + "dml", + "dmmf", + "prisma-models", + "proc-macro2", + "psl", + "query-core", + "quote", + "request-handlers", + "serde", + "serde_json", + "serde_path_to_error", + "syn 1.0.107", + "thiserror", +] + +[[package]] +name = "prisma-models" +version = "0.0.0" +source = "git+https://github.com/Brendonovich/prisma-engines?tag=pcr-0.6.5#7cc20cc54a7ab0b5e38c81901826939a91a17ba0" +dependencies = [ + "bigdecimal", + "chrono", + "itertools", + "once_cell", + "prisma-value", + "psl", + "serde", + "serde_json", + "thiserror", +] + +[[package]] +name = "prisma-value" +version = "0.1.0" +source = "git+https://github.com/Brendonovich/prisma-engines?tag=pcr-0.6.5#7cc20cc54a7ab0b5e38c81901826939a91a17ba0" +dependencies = [ + "base64 0.12.3", + "bigdecimal", + "chrono", + "once_cell", + "regex", + "serde", + "serde_json", + "uuid 1.3.0", +] + [[package]] name = "proc-macro-crate" version = "1.3.0" @@ -2109,7 +3284,7 @@ dependencies = [ "proc-macro-error-attr", "proc-macro2", "quote", - "syn", + "syn 1.0.107", "version_check", ] @@ -2132,13 +3307,203 @@ checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068" [[package]] name = "proc-macro2" -version = "1.0.51" +version = "1.0.55" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d727cae5b39d21da60fa540906919ad737832fe0b1c165da3a34d6548c849d6" +checksum = "1d0dd4be24fcdcfeaa12a432d588dc59bbad6cad3510c67e74a2b6b2fc950564" dependencies = [ "unicode-ident", ] +[[package]] +name = "proptest" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29f1b898011ce9595050a68e60f90bad083ff2987a695a42357134c8381fba70" +dependencies = [ + "bit-set", + "bitflags", + "byteorder", + "lazy_static", + "num-traits", + "quick-error 2.0.1", + "rand 0.8.5", + "rand_chacha 0.3.1", + "rand_xorshift", + "regex-syntax", + "rusty-fork", + "tempfile", + "unarray", +] + +[[package]] +name = "psl" +version = "0.1.0" +source = "git+https://github.com/Brendonovich/prisma-engines?tag=pcr-0.6.5#7cc20cc54a7ab0b5e38c81901826939a91a17ba0" +dependencies = [ + "builtin-psl-connectors", + "dml", + "psl-core", +] + +[[package]] +name = "psl-core" +version = "0.1.0" +source = "git+https://github.com/Brendonovich/prisma-engines?tag=pcr-0.6.5#7cc20cc54a7ab0b5e38c81901826939a91a17ba0" +dependencies = [ + "bigdecimal", + "chrono", + "diagnostics", + "enumflags2", + "indoc 1.0.9", + "itertools", + "lsp-types", + "once_cell", + "parser-database", + "prisma-value", + "regex", + "schema-ast", + "serde", + "serde_json", + "url", +] + +[[package]] +name = "quaint" +version = "0.2.0-alpha.13" +source = "git+https://github.com/Brendonovich/quaint?tag=0.6.5#2bf0c3620f76d83982c17e567b71da6fc9d65d14" +dependencies = [ + "async-trait", + "base64 0.12.3", + "bigdecimal", + "chrono", + "connection-string", + "futures", + "hex", + "libsqlite3-sys", + "metrics 0.18.1", + "mobc", + "num_cpus", + "percent-encoding", + "rusqlite", + "serde_json", + "sqlformat", + "thiserror", + "tokio", + "tracing", + "tracing-core", + "url", + "uuid 1.3.0", +] + +[[package]] +name = "quanta" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20afe714292d5e879d8b12740aa223c6a88f118af41870e8b6196e39a02238a8" +dependencies = [ + "crossbeam-utils", + "libc", + "mach", + "once_cell", + "raw-cpuid", + "wasi 0.10.2+wasi-snapshot-preview1", + "web-sys", + "winapi", +] + +[[package]] +name = "query-connector" +version = "0.1.0" +source = "git+https://github.com/Brendonovich/prisma-engines?tag=pcr-0.6.5#7cc20cc54a7ab0b5e38c81901826939a91a17ba0" +dependencies = [ + "anyhow", + "async-trait", + "chrono", + "futures", + "indexmap", + "itertools", + "prisma-models", + "prisma-value", + "serde", + "serde_json", + "thiserror", + "user-facing-errors", + "uuid 1.3.0", +] + +[[package]] +name = "query-core" +version = "0.1.0" +source = "git+https://github.com/Brendonovich/prisma-engines?tag=pcr-0.6.5#7cc20cc54a7ab0b5e38c81901826939a91a17ba0" +dependencies = [ + "async-trait", + "base64 0.12.3", + "bigdecimal", + "chrono", + "connection-string", + "crossbeam-queue", + "cuid", + "enumflags2", + "futures", + "indexmap", + "itertools", + "lazy_static", + "lru", + "once_cell", + "opentelemetry", + "parking_lot 0.12.1", + "petgraph", + "pin-utils", + "prisma-models", + "prisma-value", + "psl", + "query-connector", + "query-engine-metrics", + "schema", + "schema-builder", + "serde", + "serde_json", + "sql-query-connector", + "thiserror", + "tokio", + "tracing", + "tracing-futures", + "tracing-opentelemetry", + "tracing-subscriber", + "url", + "user-facing-errors", + "uuid 1.3.0", +] + +[[package]] +name = "query-engine-metrics" +version = "0.1.0" +source = "git+https://github.com/Brendonovich/prisma-engines?tag=pcr-0.6.5#7cc20cc54a7ab0b5e38c81901826939a91a17ba0" +dependencies = [ + "metrics 0.18.1", + "metrics-exporter-prometheus", + "metrics-util 0.12.1", + "once_cell", + "parking_lot 0.12.1", + "serde", + "serde_json", + "tracing", + "tracing-futures", + "tracing-subscriber", +] + +[[package]] +name = "quick-error" +version = "1.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" + +[[package]] +name = "quick-error" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a993555f31e5a609f617c12db6250dedcac1b0a85076912c436e6fc9b2c8e6a3" + [[package]] name = "quick-xml" version = "0.26.0" @@ -2150,13 +3515,36 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.23" +version = "1.0.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8856d8364d252a14d474036ea1358d63c9e6965c8e5c1885c18f73d70bff9c7b" +checksum = "4424af4bf778aae2051a77b60283332f386554255d722233d09fbfc7e30da2fc" dependencies = [ "proc-macro2", ] +[[package]] +name = "radix_trie" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c069c179fcdc6a2fe24d8d18305cf085fdbd4f922c041943e203685d6a1c58fd" +dependencies = [ + "endian-type", + "nibble_vec", +] + +[[package]] +name = "rand" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "552840b97013b1a26992c11eac34bdd778e464601a4c2054b5f0bff7c6761293" +dependencies = [ + "fuchsia-cprng", + "libc", + "rand_core 0.3.1", + "rdrand", + "winapi", +] + [[package]] name = "rand" version = "0.7.3" @@ -2202,6 +3590,21 @@ dependencies = [ "rand_core 0.6.4", ] +[[package]] +name = "rand_core" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b" +dependencies = [ + "rand_core 0.4.2", +] + +[[package]] +name = "rand_core" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc" + [[package]] name = "rand_core" version = "0.5.1" @@ -2238,6 +3641,24 @@ dependencies = [ "rand_core 0.5.1", ] +[[package]] +name = "rand_xorshift" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d25bf25ec5ae4a3f1b92f929810509a2f53d7dca2f50b794ff57e3face536c8f" +dependencies = [ + "rand_core 0.6.4", +] + +[[package]] +name = "raw-cpuid" +version = "10.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c297679cb867470fa8c9f67dbba74a78d78e3e98d7cf2b08d6d71540f797332" +dependencies = [ + "bitflags", +] + [[package]] name = "raw-window-handle" version = "0.5.0" @@ -2247,6 +3668,15 @@ dependencies = [ "cty", ] +[[package]] +name = "rdrand" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2" +dependencies = [ + "rand_core 0.3.1", +] + [[package]] name = "redox_syscall" version = "0.2.16" @@ -2303,20 +3733,86 @@ dependencies = [ ] [[package]] -name = "ring" -version = "0.16.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" +name = "request-handlers" +version = "0.1.0" +source = "git+https://github.com/Brendonovich/prisma-engines?tag=pcr-0.6.5#7cc20cc54a7ab0b5e38c81901826939a91a17ba0" dependencies = [ - "cc", - "libc", - "once_cell", - "spin 0.5.2", - "untrusted", - "web-sys", - "winapi", + "bigdecimal", + "connection-string", + "dmmf", + "futures", + "graphql-parser", + "indexmap", + "itertools", + "psl", + "query-core", + "serde", + "serde_json", + "thiserror", + "tracing", + "url", + "user-facing-errors", ] +[[package]] +name = "reqwest" +version = "0.11.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "27b71749df584b7f4cac2c426c127a7c785a5106cc98f7a8feb044115f0fa254" +dependencies = [ + "base64 0.21.0", + "bytes", + "encoding_rs", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "hyper", + "hyper-tls", + "ipnet", + "js-sys", + "log", + "mime", + "native-tls", + "once_cell", + "percent-encoding", + "pin-project-lite", + "serde", + "serde_json", + "serde_urlencoded", + "tokio", + "tokio-native-tls", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "winreg", +] + +[[package]] +name = "rusqlite" +version = "0.25.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c4b1eaf239b47034fb450ee9cdedd7d0226571689d8823030c4b6c2cb407152" +dependencies = [ + "bitflags", + "chrono", + "fallible-iterator", + "fallible-streaming-iterator", + "hashlink", + "libsqlite3-sys", + "memchr", + "smallvec", +] + +[[package]] +name = "rustc-demangle" +version = "0.1.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4a36c42d1873f9a77c53bde094f9664d9891bc604a45b4798fd2c389ed12e5b" + [[package]] name = "rustc_version" version = "0.3.3" @@ -2335,33 +3831,24 @@ dependencies = [ "semver 1.0.16", ] -[[package]] -name = "rustls" -version = "0.20.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fff78fc74d175294f4e83b28343315ffcfb114b156f0185e9741cb5570f50e2f" -dependencies = [ - "log", - "ring", - "sct", - "webpki", -] - -[[package]] -name = "rustls-pemfile" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d194b56d58803a43635bdc398cd17e383d6f71f9182b9a192c127ca42494a59b" -dependencies = [ - "base64 0.21.0", -] - [[package]] name = "rustversion" version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5583e89e108996506031660fe09baa5011b9dd0341b89029313006d1fb508d70" +[[package]] +name = "rusty-fork" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb3dcc6e454c328bb824492db107ab7c0ae8fcffe4ad210136ef014458c1bc4f" +dependencies = [ + "fnv", + "quick-error 1.2.3", + "tempfile", + "wait-timeout", +] + [[package]] name = "ryu" version = "1.0.12" @@ -2392,6 +3879,39 @@ dependencies = [ "windows-sys 0.42.0", ] +[[package]] +name = "schema" +version = "0.1.0" +source = "git+https://github.com/Brendonovich/prisma-engines?tag=pcr-0.6.5#7cc20cc54a7ab0b5e38c81901826939a91a17ba0" +dependencies = [ + "once_cell", + "prisma-models", + "psl", +] + +[[package]] +name = "schema-ast" +version = "0.1.0" +source = "git+https://github.com/Brendonovich/prisma-engines?tag=pcr-0.6.5#7cc20cc54a7ab0b5e38c81901826939a91a17ba0" +dependencies = [ + "diagnostics", + "pest", + "pest_derive", +] + +[[package]] +name = "schema-builder" +version = "0.1.0" +source = "git+https://github.com/Brendonovich/prisma-engines?tag=pcr-0.6.5#7cc20cc54a7ab0b5e38c81901826939a91a17ba0" +dependencies = [ + "itertools", + "lazy_static", + "once_cell", + "prisma-models", + "psl", + "schema", +] + [[package]] name = "scoped-tls" version = "1.0.1" @@ -2405,14 +3925,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" [[package]] -name = "sct" -version = "0.7.0" +name = "scratch" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4" -dependencies = [ - "ring", - "untrusted", -] +checksum = "1792db035ce95be60c3f8853017b3999209281c24e2ba5bc8e59bf97a0c590c1" [[package]] name = "security-framework" @@ -2493,6 +4009,16 @@ dependencies = [ "serde_derive", ] +[[package]] +name = "serde-value" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3a1a3341211875ef120e117ea7fd5228530ae7e7036a779fdc9117be6b3282c" +dependencies = [ + "ordered-float", + "serde", +] + [[package]] name = "serde_derive" version = "1.0.152" @@ -2501,20 +4027,30 @@ checksum = "af487d118eecd09402d70a5d72551860e788df87b464af30e5ea6a38c75c541e" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.107", ] [[package]] name = "serde_json" -version = "1.0.92" +version = "1.0.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7434af0dc1cbd59268aa98b4c22c131c0584d2232f6fb166efb993e2832e896a" +checksum = "d721eca97ac802aa7777b701877c8004d950fc142651367300d21c1cc0194744" dependencies = [ + "indexmap", "itoa 1.0.5", "ryu", "serde", ] +[[package]] +name = "serde_path_to_error" +version = "0.1.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7f05c1d5476066defcdfacce1f52fc3cae3af1d3089727100c02ae92e5abbe0" +dependencies = [ + "serde", +] + [[package]] name = "serde_repr" version = "0.1.10" @@ -2523,7 +4059,7 @@ checksum = "9a5ec9fa74a20ebbe5d9ac23dac1fc96ba0ecfe9f50f2843b52e537b10fbcb4e" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.107", ] [[package]] @@ -2557,7 +4093,7 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn", + "syn 1.0.107", ] [[package]] @@ -2579,7 +4115,7 @@ checksum = "74064874e9f6a15f04c1f3cb627902d0e6b410abbf36668afa873c61889f1763" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.107", ] [[package]] @@ -2592,6 +4128,19 @@ dependencies = [ "stable_deref_trait", ] +[[package]] +name = "sha2" +version = "0.9.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" +dependencies = [ + "block-buffer 0.9.0", + "cfg-if", + "cpufeatures", + "digest 0.9.0", + "opaque-debug", +] + [[package]] name = "sha2" version = "0.10.6" @@ -2600,7 +4149,17 @@ checksum = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0" dependencies = [ "cfg-if", "cpufeatures", - "digest", + "digest 0.10.6", +] + +[[package]] +name = "sha3" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bdf0c33fae925bdc080598b84bc15c55e7b9a4a43b3c704da051f977469691c9" +dependencies = [ + "digest 0.10.6", + "keccak", ] [[package]] @@ -2618,6 +4177,12 @@ version = "0.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7bd3e3206899af3f8b12af284fafc038cc1dc2b41d1b89dd17297221c5d225de" +[[package]] +name = "sketches-ddsketch" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04d2ecae5fcf33b122e2e6bd520a57ccf152d2dde3b38c71039df1a6867264ee" + [[package]] name = "slab" version = "0.4.7" @@ -2635,9 +4200,9 @@ checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0" [[package]] name = "socket2" -version = "0.4.7" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02e2d2db9033d13a1567121ddd7a095ee144db4e1ca1b1bda3419bc0da294ebd" +checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662" dependencies = [ "libc", "winapi", @@ -2672,18 +4237,144 @@ dependencies = [ ] [[package]] -name = "spin" -version = "0.5.2" +name = "specta" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" +checksum = "4be6d92bb3d2a34fd5da2463089b44e67d6e83eedff074a82ba0b3e830dbff7c" +dependencies = [ + "chrono", + "document-features", + "indexmap", + "indoc 1.0.9", + "once_cell", + "paste", + "serde", + "serde_json", + "specta-macros", + "tauri", + "thiserror", + "uuid 1.3.0", +] [[package]] -name = "spin" -version = "0.9.4" +name = "specta-macros" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f6002a767bff9e83f8eeecf883ecb8011875a21ae8da43bffb817a57e78cc09" +checksum = "123bd8f0d65f556dce3d0e84346b759ad9701c49700cd9aa12c522bd0310d90b" dependencies = [ - "lock_api", + "Inflector", + "itertools", + "proc-macro2", + "quote", + "syn 1.0.107", + "termcolor", +] + +[[package]] +name = "sql-ddl" +version = "0.1.0" +source = "git+https://github.com/Brendonovich/prisma-engines?tag=pcr-0.6.5#7cc20cc54a7ab0b5e38c81901826939a91a17ba0" + +[[package]] +name = "sql-introspection-connector" +version = "0.1.0" +source = "git+https://github.com/Brendonovich/prisma-engines?tag=pcr-0.6.5#7cc20cc54a7ab0b5e38c81901826939a91a17ba0" +dependencies = [ + "anyhow", + "async-trait", + "bigdecimal", + "datamodel-renderer", + "enumflags2", + "introspection-connector", + "once_cell", + "psl", + "quaint", + "regex", + "serde", + "serde_json", + "sql-schema-describer", + "thiserror", + "tracing", + "tracing-futures", + "user-facing-errors", +] + +[[package]] +name = "sql-migration-connector" +version = "0.1.0" +source = "git+https://github.com/Brendonovich/prisma-engines?tag=pcr-0.6.5#7cc20cc54a7ab0b5e38c81901826939a91a17ba0" +dependencies = [ + "chrono", + "connection-string", + "either", + "enumflags2", + "indoc 1.0.9", + "migration-connector", + "once_cell", + "psl", + "quaint", + "regex", + "serde_json", + "sql-ddl", + "sql-introspection-connector", + "sql-schema-describer", + "tokio", + "tracing", + "tracing-futures", + "url", + "user-facing-errors", + "uuid 1.3.0", +] + +[[package]] +name = "sql-query-connector" +version = "0.1.0" +source = "git+https://github.com/Brendonovich/prisma-engines?tag=pcr-0.6.5#7cc20cc54a7ab0b5e38c81901826939a91a17ba0" +dependencies = [ + "anyhow", + "async-trait", + "bigdecimal", + "chrono", + "cuid", + "futures", + "itertools", + "once_cell", + "opentelemetry", + "prisma-models", + "prisma-value", + "psl", + "quaint", + "query-connector", + "rand 0.7.3", + "serde", + "serde_json", + "thiserror", + "tokio", + "tracing", + "tracing-futures", + "tracing-opentelemetry", + "user-facing-errors", + "uuid 1.3.0", +] + +[[package]] +name = "sql-schema-describer" +version = "0.1.0" +source = "git+https://github.com/Brendonovich/prisma-engines?tag=pcr-0.6.5#7cc20cc54a7ab0b5e38c81901826939a91a17ba0" +dependencies = [ + "async-trait", + "bigdecimal", + "enumflags2", + "indexmap", + "indoc 1.0.9", + "once_cell", + "psl", + "quaint", + "regex", + "serde", + "tracing", + "tracing-error", + "tracing-futures", ] [[package]] @@ -2697,95 +4388,6 @@ dependencies = [ "unicode_categories", ] -[[package]] -name = "sqlx" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9249290c05928352f71c077cc44a464d880c63f26f7534728cca008e135c0428" -dependencies = [ - "sqlx-core", - "sqlx-macros", -] - -[[package]] -name = "sqlx-core" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcbc16ddba161afc99e14d1713a453747a2b07fc097d2009f4c300ec99286105" -dependencies = [ - "ahash", - "atoi", - "bitflags", - "byteorder", - "bytes", - "crc", - "crossbeam-queue", - "dotenvy", - "either", - "event-listener", - "flume", - "futures-channel", - "futures-core", - "futures-executor", - "futures-intrusive", - "futures-util", - "hashlink", - "hex", - "indexmap", - "itoa 1.0.5", - "libc", - "libsqlite3-sys", - "log", - "memchr", - "once_cell", - "paste", - "percent-encoding", - "rustls", - "rustls-pemfile", - "serde", - "serde_json", - "sha2", - "smallvec", - "sqlformat", - "sqlx-rt", - "stringprep", - "thiserror", - "tokio-stream", - "url", - "webpki-roots", -] - -[[package]] -name = "sqlx-macros" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b850fa514dc11f2ee85be9d055c512aa866746adfacd1cb42d867d68e6a5b0d9" -dependencies = [ - "dotenvy", - "either", - "heck 0.4.1", - "once_cell", - "proc-macro2", - "quote", - "serde_json", - "sha2", - "sqlx-core", - "sqlx-rt", - "syn", - "url", -] - -[[package]] -name = "sqlx-rt" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24c5b2d25fa654cc5f841750b8e1cdedbe21189bf9a9382ee90bfa9dd3562396" -dependencies = [ - "once_cell", - "tokio", - "tokio-rustls", -] - [[package]] name = "stable_deref_trait" version = "1.2.0" @@ -2827,16 +4429,6 @@ dependencies = [ "quote", ] -[[package]] -name = "stringprep" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ee348cb74b87454fff4b551cbf727025810a004f88aeacae7f85b87f4e9a1c1" -dependencies = [ - "unicode-bidi", - "unicode-normalization", -] - [[package]] name = "strsim" version = "0.10.0" @@ -2854,6 +4446,29 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "syn" +version = "2.0.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c9da457c5285ac1f936ebd076af6dac17a61cfe7826f2076b4d015cf47bc8ec" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "synstructure" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.107", + "unicode-xid", +] + [[package]] name = "system-deps" version = "5.0.0" @@ -3022,10 +4637,10 @@ dependencies = [ "semver 1.0.16", "serde", "serde_json", - "sha2", + "sha2 0.10.6", "tauri-utils", "thiserror", - "time", + "time 0.3.17", "uuid 1.3.0", "walkdir", ] @@ -3039,26 +4654,11 @@ dependencies = [ "heck 0.4.1", "proc-macro2", "quote", - "syn", + "syn 1.0.107", "tauri-codegen", "tauri-utils", ] -[[package]] -name = "tauri-plugin-sql" -version = "0.1.0" -source = "git+https://github.com/tauri-apps/plugins-workspace?branch=dev#8f34eb83e4f9a8c72fd3823a066c94f861f2d021" -dependencies = [ - "futures", - "log", - "serde", - "serde_json", - "sqlx", - "tauri", - "thiserror", - "tokio", -] - [[package]] name = "tauri-runtime" version = "0.12.1" @@ -3099,6 +4699,21 @@ dependencies = [ "wry", ] +[[package]] +name = "tauri-specta" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23419889204476d5a70a04077d4628061a5bb667b18804a4572df2fe6ccb8ba5" +dependencies = [ + "heck 0.4.1", + "indoc 2.0.1", + "serde", + "serde_json", + "specta", + "tauri", + "thiserror", +] + [[package]] name = "tauri-utils" version = "1.2.1" @@ -3127,6 +4742,16 @@ dependencies = [ "windows", ] +[[package]] +name = "tempdir" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15f2b5fb00ccdf689e0149d1b1b3c03fead81c2b37735d812fa8bddbbf41b6d8" +dependencies = [ + "rand 0.4.6", + "remove_dir_all", +] + [[package]] name = "tempfile" version = "3.3.0" @@ -3152,6 +4777,15 @@ dependencies = [ "utf-8", ] +[[package]] +name = "termcolor" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6" +dependencies = [ + "winapi-util", +] + [[package]] name = "thin-slice" version = "0.1.1" @@ -3175,7 +4809,7 @@ checksum = "1fb327af4685e4d03fa8cbcf1716380da910eeb2bb8be417e7f9fd3fb164f36f" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.107", ] [[package]] @@ -3187,6 +4821,16 @@ dependencies = [ "once_cell", ] +[[package]] +name = "time" +version = "0.1.43" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca8a50ef2360fbd1eeb0ecd46795a87a19024eb4b53c5dc916ca1fd95fe62438" +dependencies = [ + "libc", + "winapi", +] + [[package]] name = "time" version = "0.3.17" @@ -3231,41 +4875,55 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.25.0" +version = "1.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8e00990ebabbe4c14c08aca901caed183ecd5c09562a12c824bb53d3c3fd3af" +checksum = "d0de47a4eecbe11f498978a9b29d792f0d2692d1dd003650c24c76510e3bc001" dependencies = [ "autocfg", "bytes", "libc", - "memchr", "mio", "num_cpus", + "parking_lot 0.12.1", "pin-project-lite", "socket2", - "windows-sys 0.42.0", + "tokio-macros", + "windows-sys 0.45.0", ] [[package]] -name = "tokio-rustls" -version = "0.23.4" +name = "tokio-macros" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c43ee83903113e03984cb9e5cebe6c04a5116269e900e3ddba8f068a62adda59" +checksum = "61a573bdc87985e9d6ddeed1b3d864e8a302c847e40d647746df2f1de209d1ce" dependencies = [ - "rustls", + "proc-macro2", + "quote", + "syn 2.0.13", +] + +[[package]] +name = "tokio-native-tls" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" +dependencies = [ + "native-tls", "tokio", - "webpki", ] [[package]] -name = "tokio-stream" -version = "0.1.11" +name = "tokio-util" +version = "0.7.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d660770404473ccd7bc9f8b28494a811bc18542b915c0855c51e8f419d5223ce" +checksum = "5427d89453009325de0d8f342c9490009f76e999cb7672d77e46267448f7e6b2" dependencies = [ + "bytes", "futures-core", + "futures-sink", "pin-project-lite", "tokio", + "tracing", ] [[package]] @@ -3294,6 +4952,12 @@ dependencies = [ "toml_datetime", ] +[[package]] +name = "tower-service" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" + [[package]] name = "tracing" version = "0.1.37" @@ -3314,7 +4978,7 @@ checksum = "4017f8f45139870ca7e672686113917c71c7a6e02d4924eda67186083c03081a" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.107", ] [[package]] @@ -3327,6 +4991,26 @@ dependencies = [ "valuable", ] +[[package]] +name = "tracing-error" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d686ec1c0f384b1277f097b2f279a2ecc11afe8c133c1aabf036a27cb4cd206e" +dependencies = [ + "tracing", + "tracing-subscriber", +] + +[[package]] +name = "tracing-futures" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" +dependencies = [ + "pin-project", + "tracing", +] + [[package]] name = "tracing-log" version = "0.1.3" @@ -3338,6 +5022,20 @@ dependencies = [ "tracing-core", ] +[[package]] +name = "tracing-opentelemetry" +version = "0.17.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fbbe89715c1dbbb790059e2565353978564924ee85017b5fff365c872ff6721f" +dependencies = [ + "once_cell", + "opentelemetry", + "tracing", + "tracing-core", + "tracing-log", + "tracing-subscriber", +] + [[package]] name = "tracing-subscriber" version = "0.3.16" @@ -3365,6 +5063,12 @@ dependencies = [ "serde_json", ] +[[package]] +name = "try-lock" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed" + [[package]] name = "typenum" version = "1.16.0" @@ -3377,6 +5081,12 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e79c4d996edb816c91e4308506774452e55e95c3c9de07b6729e17e15a5ef81" +[[package]] +name = "unarray" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94" + [[package]] name = "unicode-bidi" version = "0.3.10" @@ -3404,6 +5114,18 @@ version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36" +[[package]] +name = "unicode-width" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b" + +[[package]] +name = "unicode-xid" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" + [[package]] name = "unicode_categories" version = "0.1.1" @@ -3411,10 +5133,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "39ec24b3121d976906ece63c9daad25b85969647682eee313cb5779fdd69e14e" [[package]] -name = "untrusted" -version = "0.7.1" +name = "unreachable" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" +checksum = "382810877fe448991dfc7f0dd6e3ae5d58088fd0ea5e35189655f84e6814fa56" +dependencies = [ + "void", +] [[package]] name = "url" @@ -3428,6 +5153,30 @@ dependencies = [ "serde", ] +[[package]] +name = "user-facing-error-macros" +version = "0.1.0" +source = "git+https://github.com/Brendonovich/prisma-engines?tag=pcr-0.6.5#7cc20cc54a7ab0b5e38c81901826939a91a17ba0" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.107", +] + +[[package]] +name = "user-facing-errors" +version = "0.1.0" +source = "git+https://github.com/Brendonovich/prisma-engines?tag=pcr-0.6.5#7cc20cc54a7ab0b5e38c81901826939a91a17ba0" +dependencies = [ + "backtrace", + "indoc 1.0.9", + "quaint", + "serde", + "serde_json", + "tracing", + "user-facing-error-macros", +] + [[package]] name = "utf-8" version = "0.7.6" @@ -3447,6 +5196,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1674845326ee10d37ca60470760d4288a6f80f304007d92e5c53bab78c9cfd79" dependencies = [ "getrandom 0.2.8", + "serde", ] [[package]] @@ -3479,6 +5229,21 @@ version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" +[[package]] +name = "void" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" + +[[package]] +name = "wait-timeout" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f200f5b12eb75f8c1ed65abd4b2db8a6e1b138a20de009dacee265a2498f3f6" +dependencies = [ + "libc", +] + [[package]] name = "walkdir" version = "2.3.2" @@ -3490,12 +5255,28 @@ dependencies = [ "winapi-util", ] +[[package]] +name = "want" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0" +dependencies = [ + "log", + "try-lock", +] + [[package]] name = "wasi" version = "0.9.0+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" +[[package]] +name = "wasi" +version = "0.10.2+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6" + [[package]] name = "wasi" version = "0.11.0+wasi-snapshot-preview1" @@ -3504,9 +5285,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.84" +version = "0.2.79" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31f8dcbc21f30d9b8f2ea926ecb58f6b91192c17e9d33594b3df58b2007ca53b" +checksum = "25f1af7423d8588a3d840681122e72e6a24ddbcb3f0ec385cac0d12d24256c06" dependencies = [ "cfg-if", "wasm-bindgen-macro", @@ -3514,24 +5295,36 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.84" +version = "0.2.79" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95ce90fd5bcc06af55a641a86428ee4229e44e07033963a2290a8e241607ccb9" +checksum = "8b21c0df030f5a177f3cba22e9bc4322695ec43e7257d865302900290bcdedca" dependencies = [ "bumpalo", + "lazy_static", "log", - "once_cell", "proc-macro2", "quote", - "syn", + "syn 1.0.107", "wasm-bindgen-shared", ] [[package]] -name = "wasm-bindgen-macro" -version = "0.2.84" +name = "wasm-bindgen-futures" +version = "0.4.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c21f77c0bedc37fd5dc21f897894a5ca01e7bb159884559461862ae90c0b4c5" +checksum = "2eb6ec270a31b1d3c7e266b999739109abce8b6c87e4b31fcfcd788b65267395" +dependencies = [ + "cfg-if", + "js-sys", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.79" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f4203d69e40a52ee523b2529a773d5ffc1dc0071801c87b3d270b471b80ed01" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -3539,28 +5332,28 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.84" +version = "0.2.79" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2aff81306fcac3c7515ad4e177f521b5c9a15f2b08f4e32d823066102f35a5f6" +checksum = "bfa8a30d46208db204854cadbb5d4baf5fcf8071ba5bf48190c3e59937962ebc" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.107", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.84" +version = "0.2.79" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0046fef7e28c3804e5e38bfa31ea2a0f73905319b677e57ebe37e49358989b5d" +checksum = "3d958d035c4438e28c70e4321a2911302f10135ce78a9c7834c0cab4123d06a2" [[package]] name = "web-sys" -version = "0.3.61" +version = "0.3.56" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e33b99f4b23ba3eec1a53ac264e35a755f00e966e0065077d6027c0f575b0b97" +checksum = "c060b319f29dd25724f09a2ba1418f142f539b2be99fbf4d2d5a8f7330afb8eb" dependencies = [ "js-sys", "wasm-bindgen", @@ -3613,25 +5406,6 @@ dependencies = [ "system-deps 6.0.3", ] -[[package]] -name = "webpki" -version = "0.22.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f095d78192e208183081cc07bc5515ef55216397af48b873e5edcd72637fa1bd" -dependencies = [ - "ring", - "untrusted", -] - -[[package]] -name = "webpki-roots" -version = "0.22.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6c71e40d7d2c34a5106301fb632274ca37242cd0c9d3e64dbece371a40a2d87" -dependencies = [ - "webpki", -] - [[package]] name = "webview2-com" version = "0.19.1" @@ -3652,7 +5426,7 @@ checksum = "eaebe196c01691db62e9e4ca52c5ef1e4fd837dcae27dae3ada599b5a8fd05ac" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.107", ] [[package]] @@ -3731,7 +5505,7 @@ version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ba01f98f509cb5dc05f4e5fc95e535f78260f15fea8fe1a8abdd08f774f1cee7" dependencies = [ - "syn", + "syn 1.0.107", "windows-tokens", ] @@ -3858,6 +5632,15 @@ version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "447660ad36a13288b1db4d4248e857b510e8c3a225c822ba4fb748c0aafecffd" +[[package]] +name = "winreg" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80d0f4e272c85def139476380b12f9ac60926689dd2e01d4923222f40580869d" +dependencies = [ + "winapi", +] + [[package]] name = "winres" version = "0.1.12" @@ -3893,7 +5676,7 @@ dependencies = [ "once_cell", "serde", "serde_json", - "sha2", + "sha2 0.10.6", "soup2", "tao", "thiserror", diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index b95c9fe2..a01d8208 100644 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -17,11 +17,11 @@ tauri-build = { version = "1.2", features = [] } serde_json = "1.0" serde = { version = "1.0", features = ["derive"] } tauri = { version = "1.2", features = ["clipboard-read-text", "clipboard-write-text", "http-request", "os-all", "shell-open", "system-tray", "window-close", "window-start-dragging"] } - -[dependencies.tauri-plugin-sql] -git = "https://github.com/tauri-apps/plugins-workspace" -branch = "dev" -features = ["sqlite"] +prisma-client-rust = { git = "https://github.com/Brendonovich/prisma-client-rust", tag = "0.6.7", default-features = false, features = ["sqlite", "migrations", "mocking", "specta"] } +prisma-client-rust-cli = { git = "https://github.com/Brendonovich/prisma-client-rust", tag = "0.6.7", default-features = false, features = ["sqlite", "migrations", "mocking", "specta"] } +specta = "1.0.0" +tauri-specta = { version = "1.0.0", features = ["typescript"] } +tokio = { version = "1.26.0", features = ["macros"] } [target.'cfg(target_os = "macos")'.dependencies] objc = "0.2.7" diff --git a/src-tauri/migrations/20230226004139_create_tables.sql b/src-tauri/migrations/20230226004139_create_tables.sql deleted file mode 100644 index ee4a05b7..00000000 --- a/src-tauri/migrations/20230226004139_create_tables.sql +++ /dev/null @@ -1,104 +0,0 @@ --- Add migration script here --- create relays -CREATE TABLE - relays ( - id INTEGER PRIMARY KEY, - relay_url TEXT NOT NULL, - relay_status INTEGER NOT NULL DEFAULT 1, - created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, - updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP - ); - --- add default relays --- relay status: --- 0: off --- 1: on -INSERT INTO - relays (relay_url, relay_status) -VALUES - ("wss://relay.damus.io", "1"), - ("wss://eden.nostr.land", "0"), - ("wss://nostr-pub.wellorder.net", "1"), - ("wss://nostr.bongbong.com", "1"), - ("wss://nostr.zebedee.cloud", "1"), - ("wss://nostr.fmt.wiz.biz", "1"), - ("wss://nostr.walletofsatoshi.com", "0"), - ("wss://relay.snort.social", "1"), - ("wss://offchain.pub", "1"), - ("wss://brb.io", "0"), - ("wss://relay.current.fyi", "1"), - ("wss://nostr.relayer.se", "0"), - ("wss://nostr.bitcoiner.social", "1"), - ("wss://relay.nostr.info", "1"), - ("wss://relay.zeh.app", "0"), - ("wss://nostr-01.dorafactory.org", "1"), - ("wss://nostr.zhongwen.world", "1"), - ("wss://nostro.cc", "1"), - ("wss://relay.nostr.net.in", "1"), - ("wss://nos.lol", "1"); - --- create accounts --- is_active (part of multi-account feature): --- 0: false --- 1: true -CREATE TABLE - accounts ( - id TEXT PRIMARY KEY, - privkey TEXT NOT NULL, - npub TEXT NOT NULL, - nsec TEXT NOT NULL, - is_active INTEGER NOT NULL DEFAULT 0, - metadata TEXT - ); - --- create follows --- kind (part of multi-newsfeed feature): --- 0: direct --- 1: follow of follow -CREATE TABLE - follows ( - id INTEGER PRIMARY KEY, - pubkey TEXT NOT NULL, - account TEXT NOT NULL, - kind INTEGER NOT NULL DEFAULT 0, - metadata TEXT - ); - --- create index for pubkey in follows -CREATE UNIQUE INDEX index_pubkey_on_follows ON follows (pubkey); - --- create cache profiles -CREATE TABLE - cache_profiles ( - id TEXT PRIMARY KEY, - metadata TEXT, - created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, - updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP - ); - --- create cache notes -CREATE TABLE - cache_notes ( - id TEXT PRIMARY KEY, - pubkey TEXT NOT NULL, - created_at TEXT, - kind INTEGER NOT NULL DEFAULT 1, - tags TEXT NOT NULL, - content TEXT NOT NULL, - parent_id TEXT, - parent_comment_id TEXT - ); - --- create settings -CREATE TABLE - settings ( - id INTEGER PRIMARY KEY AUTOINCREMENT, - setting_key TEXT NOT NULL, - setting_value TEXT NOT NULL - ); - --- add default setting -INSERT INTO - settings (setting_key, setting_value) -VALUES - ("last_login", "0"); \ No newline at end of file diff --git a/src-tauri/prisma/migrations/.keep b/src-tauri/prisma/migrations/.keep new file mode 100644 index 00000000..e69de29b diff --git a/src-tauri/prisma/migrations/20230404081740_initial/migration.sql b/src-tauri/prisma/migrations/20230404081740_initial/migration.sql new file mode 100644 index 00000000..a682a658 --- /dev/null +++ b/src-tauri/prisma/migrations/20230404081740_initial/migration.sql @@ -0,0 +1,73 @@ +-- CreateTable +CREATE TABLE "Account" ( + "id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + "pubkey" TEXT NOT NULL, + "privkey" TEXT NOT NULL, + "active" BOOLEAN NOT NULL DEFAULT false, + "metadata" TEXT NOT NULL +); + +-- CreateTable +CREATE TABLE "Follow" ( + "id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + "pubkey" TEXT NOT NULL, + "kind" INTEGER NOT NULL, + "metadata" TEXT NOT NULL, + "accountId" INTEGER NOT NULL, + CONSTRAINT "Follow_accountId_fkey" FOREIGN KEY ("accountId") REFERENCES "Account" ("id") ON DELETE RESTRICT ON UPDATE CASCADE +); + +-- CreateTable +CREATE TABLE "Note" ( + "id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + "eventId" TEXT NOT NULL, + "pubkey" TEXT NOT NULL, + "kind" INTEGER NOT NULL, + "tags" TEXT NOT NULL, + "content" TEXT NOT NULL, + "parent_id" TEXT NOT NULL, + "parent_comment_id" TEXT NOT NULL, + "createdAt" INTEGER NOT NULL, + "accountId" INTEGER NOT NULL, + CONSTRAINT "Note_accountId_fkey" FOREIGN KEY ("accountId") REFERENCES "Account" ("id") ON DELETE RESTRICT ON UPDATE CASCADE +); + +-- CreateTable +CREATE TABLE "Message" ( + "id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + "pubkey" TEXT NOT NULL, + "content" TEXT NOT NULL, + "tags" TEXT NOT NULL, + "createdAt" INTEGER NOT NULL, + "accountId" INTEGER NOT NULL, + CONSTRAINT "Message_accountId_fkey" FOREIGN KEY ("accountId") REFERENCES "Account" ("id") ON DELETE RESTRICT ON UPDATE CASCADE +); + +-- CreateTable +CREATE TABLE "Relay" ( + "id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + "url" TEXT NOT NULL, + "active" BOOLEAN NOT NULL DEFAULT true +); + +-- CreateTable +CREATE TABLE "Setting" ( + "id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + "key" TEXT NOT NULL, + "value" TEXT NOT NULL +); + +-- CreateIndex +CREATE UNIQUE INDEX "Account_privkey_key" ON "Account"("privkey"); + +-- CreateIndex +CREATE INDEX "Account_pubkey_idx" ON "Account"("pubkey"); + +-- CreateIndex +CREATE UNIQUE INDEX "Note_eventId_key" ON "Note"("eventId"); + +-- CreateIndex +CREATE INDEX "Note_eventId_idx" ON "Note"("eventId"); + +-- CreateIndex +CREATE INDEX "Message_pubkey_idx" ON "Message"("pubkey"); diff --git a/src-tauri/prisma/migrations/20230405012355_add_index_to_created_at/migration.sql b/src-tauri/prisma/migrations/20230405012355_add_index_to_created_at/migration.sql new file mode 100644 index 00000000..bea82ded --- /dev/null +++ b/src-tauri/prisma/migrations/20230405012355_add_index_to_created_at/migration.sql @@ -0,0 +1,11 @@ +-- DropIndex +DROP INDEX "Message_pubkey_idx"; + +-- DropIndex +DROP INDEX "Note_eventId_idx"; + +-- CreateIndex +CREATE INDEX "Message_pubkey_createdAt_idx" ON "Message"("pubkey", "createdAt"); + +-- CreateIndex +CREATE INDEX "Note_eventId_createdAt_idx" ON "Note"("eventId", "createdAt"); diff --git a/src-tauri/prisma/migrations/20230405082721_rename_follow_to_pleb/migration.sql b/src-tauri/prisma/migrations/20230405082721_rename_follow_to_pleb/migration.sql new file mode 100644 index 00000000..84fee655 --- /dev/null +++ b/src-tauri/prisma/migrations/20230405082721_rename_follow_to_pleb/migration.sql @@ -0,0 +1,30 @@ +/* + Warnings: + + - You are about to drop the `Follow` table. If the table is not empty, all the data it contains will be lost. + - A unique constraint covering the columns `[pubkey]` on the table `Account` will be added. If there are existing duplicate values, this will fail. + +*/ +-- DropTable +PRAGMA foreign_keys=off; +DROP TABLE "Follow"; +PRAGMA foreign_keys=on; + +-- CreateTable +CREATE TABLE "Pleb" ( + "id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + "pubkey" TEXT NOT NULL, + "kind" INTEGER NOT NULL, + "metadata" TEXT NOT NULL, + "accountId" INTEGER NOT NULL, + CONSTRAINT "Pleb_accountId_fkey" FOREIGN KEY ("accountId") REFERENCES "Account" ("id") ON DELETE RESTRICT ON UPDATE CASCADE +); + +-- CreateIndex +CREATE UNIQUE INDEX "Pleb_pubkey_key" ON "Pleb"("pubkey"); + +-- CreateIndex +CREATE INDEX "Pleb_pubkey_idx" ON "Pleb"("pubkey"); + +-- CreateIndex +CREATE UNIQUE INDEX "Account_pubkey_key" ON "Account"("pubkey"); diff --git a/src-tauri/prisma/migrations/20230406012222_remove_unique_from_pleb/migration.sql b/src-tauri/prisma/migrations/20230406012222_remove_unique_from_pleb/migration.sql new file mode 100644 index 00000000..8bac356c --- /dev/null +++ b/src-tauri/prisma/migrations/20230406012222_remove_unique_from_pleb/migration.sql @@ -0,0 +1,5 @@ +-- DropIndex +DROP INDEX "Pleb_pubkey_idx"; + +-- DropIndex +DROP INDEX "Pleb_pubkey_key"; diff --git a/src-tauri/prisma/migrations/20230406014004_add_plebid_to_pleb/migration.sql b/src-tauri/prisma/migrations/20230406014004_add_plebid_to_pleb/migration.sql new file mode 100644 index 00000000..e2ed75a4 --- /dev/null +++ b/src-tauri/prisma/migrations/20230406014004_add_plebid_to_pleb/migration.sql @@ -0,0 +1,23 @@ +/* + Warnings: + + - Added the required column `plebId` to the `Pleb` table without a default value. This is not possible if the table is not empty. + +*/ +-- RedefineTables +PRAGMA foreign_keys=OFF; +CREATE TABLE "new_Pleb" ( + "id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + "plebId" TEXT NOT NULL, + "pubkey" TEXT NOT NULL, + "kind" INTEGER NOT NULL, + "metadata" TEXT NOT NULL, + "accountId" INTEGER NOT NULL, + CONSTRAINT "Pleb_accountId_fkey" FOREIGN KEY ("accountId") REFERENCES "Account" ("id") ON DELETE RESTRICT ON UPDATE CASCADE +); +INSERT INTO "new_Pleb" ("accountId", "id", "kind", "metadata", "pubkey") SELECT "accountId", "id", "kind", "metadata", "pubkey" FROM "Pleb"; +DROP TABLE "Pleb"; +ALTER TABLE "new_Pleb" RENAME TO "Pleb"; +CREATE UNIQUE INDEX "Pleb_plebId_key" ON "Pleb"("plebId"); +PRAGMA foreign_key_check; +PRAGMA foreign_keys=ON; diff --git a/src-tauri/prisma/migrations/migration_lock.toml b/src-tauri/prisma/migrations/migration_lock.toml new file mode 100644 index 00000000..e5e5c470 --- /dev/null +++ b/src-tauri/prisma/migrations/migration_lock.toml @@ -0,0 +1,3 @@ +# Please do not edit this file manually +# It should be added in your version-control system (i.e. Git) +provider = "sqlite" \ No newline at end of file diff --git a/src-tauri/prisma/schema.prisma b/src-tauri/prisma/schema.prisma new file mode 100644 index 00000000..780eca94 --- /dev/null +++ b/src-tauri/prisma/schema.prisma @@ -0,0 +1,79 @@ +datasource db { + provider = "sqlite" + url = "file:../../lume.db" +} + +generator client { + provider = "cargo prisma" + // The location to generate the client. Is relative to the position of the schema + output = "../src/db.rs" + module_path = "db" +} + +model Account { + id Int @id @default(autoincrement()) + pubkey String @unique + privkey String @unique + active Boolean @default(false) + metadata String + + // related + plebs Pleb[] + messages Message[] + notes Note[] + + @@index([pubkey]) +} + +model Pleb { + id Int @id @default(autoincrement()) + plebId String @unique + pubkey String + kind Int + metadata String + + Account Account @relation(fields: [accountId], references: [id]) + accountId Int +} + +model Note { + id Int @id @default(autoincrement()) + eventId String @unique + pubkey String + kind Int + tags String + content String + parent_id String + parent_comment_id String + createdAt Int + + Account Account @relation(fields: [accountId], references: [id]) + accountId Int + + @@index([eventId, createdAt]) +} + +model Message { + id Int @id @default(autoincrement()) + pubkey String + content String + tags String + createdAt Int + + Account Account @relation(fields: [accountId], references: [id]) + accountId Int + + @@index([pubkey, createdAt]) +} + +model Relay { + id Int @id @default(autoincrement()) + url String + active Boolean @default(true) +} + +model Setting { + id Int @id @default(autoincrement()) + key String + value String +} diff --git a/src-tauri/src/bin/prisma.rs b/src-tauri/src/bin/prisma.rs new file mode 100644 index 00000000..b873b532 --- /dev/null +++ b/src-tauri/src/bin/prisma.rs @@ -0,0 +1,3 @@ +fn main() { + prisma_client_rust_cli::run(); +} diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs index 5001c2e3..fe5caa84 100644 --- a/src-tauri/src/main.rs +++ b/src-tauri/src/main.rs @@ -7,15 +7,238 @@ #[macro_use] extern crate objc; +use prisma_client_rust::Direction; use tauri::{Manager, WindowEvent}; -use tauri_plugin_sql::{Migration, MigrationKind}; - #[cfg(target_os = "macos")] use window_ext::WindowExt; #[cfg(target_os = "macos")] mod window_ext; -fn main() { +mod db; + +use db::*; +use serde::Deserialize; +use specta::{collect_types, Type}; +use std::{sync::Arc, vec}; +use tauri::State; +use tauri_specta::ts; + +type DbState<'a> = State<'a, Arc>; + +#[derive(Deserialize, Type)] +struct CreateAccountData { + pubkey: String, + privkey: String, + metadata: String, +} + +#[derive(Deserialize, Type)] +struct GetPlebData { + account_id: i32, +} + +#[derive(Deserialize, Type)] +struct GetPlebPubkeyData { + pubkey: String, +} + +#[derive(Deserialize, Type)] +struct CreatePlebData { + pleb_id: String, + pubkey: String, + kind: i32, + metadata: String, + account_id: i32, +} + +#[derive(Deserialize, Type)] +struct CreateNoteData { + event_id: String, + pubkey: String, + kind: i32, + tags: String, + content: String, + parent_id: String, + parent_comment_id: String, + created_at: i32, + account_id: i32, +} + +#[derive(Deserialize, Type)] +struct GetNoteByIdData { + event_id: String, +} + +#[derive(Deserialize, Type)] +struct GetNoteData { + date: i32, + limit: i32, + offset: i32, +} + +#[derive(Deserialize, Type)] +struct GetLatestNoteData { + date: i32, +} + +#[tauri::command] +#[specta::specta] +async fn get_accounts(db: DbState<'_>) -> Result, ()> { + db.account() + .find_many(vec![account::active::equals(false)]) + .exec() + .await + .map_err(|_| ()) +} + +#[tauri::command] +#[specta::specta] +async fn create_account(db: DbState<'_>, data: CreateAccountData) -> Result { + db.account() + .create(data.pubkey, data.privkey, data.metadata, vec![]) + .exec() + .await + .map_err(|_| ()) +} + +#[tauri::command] +#[specta::specta] +async fn get_plebs(db: DbState<'_>, data: GetPlebData) -> Result, ()> { + db.pleb() + .find_many(vec![pleb::account_id::equals(data.account_id)]) + .exec() + .await + .map_err(|_| ()) +} + +#[tauri::command] +#[specta::specta] +async fn get_pleb_by_pubkey( + db: DbState<'_>, + data: GetPlebPubkeyData, +) -> Result, ()> { + db.pleb() + .find_first(vec![pleb::pubkey::equals(data.pubkey)]) + .exec() + .await + .map_err(|_| ()) +} + +#[tauri::command] +#[specta::specta] +async fn create_pleb(db: DbState<'_>, data: CreatePlebData) -> Result { + let pleb_id = data.pleb_id.clone(); + let metadata = data.metadata.clone(); + + db.pleb() + .upsert( + pleb::pleb_id::equals(pleb_id), + pleb::create( + data.pleb_id, + data.pubkey, + data.kind, + data.metadata, + account::id::equals(data.account_id), + vec![], + ), + vec![pleb::metadata::set(metadata)], + ) + .exec() + .await + .map_err(|_| ()) +} + +#[tauri::command] +#[specta::specta] +async fn create_note(db: DbState<'_>, data: CreateNoteData) -> Result { + let event_id = data.event_id.clone(); + let content = data.content.clone(); + + db.note() + .upsert( + note::event_id::equals(event_id), + note::create( + data.event_id, + data.pubkey, + data.kind, + data.tags, + data.content, + data.parent_id, + data.parent_comment_id, + data.created_at, + account::id::equals(data.account_id), + vec![], + ), + vec![note::content::set(content)], + ) + .exec() + .await + .map_err(|_| ()) +} + +#[tauri::command] +#[specta::specta] +async fn get_notes(db: DbState<'_>, data: GetNoteData) -> Result, ()> { + db.note() + .find_many(vec![note::created_at::lte(data.date)]) + .order_by(note::created_at::order(Direction::Desc)) + .take(data.limit.into()) + .skip(data.offset.into()) + .exec() + .await + .map_err(|_| ()) +} + +#[tauri::command] +#[specta::specta] +async fn get_latest_notes(db: DbState<'_>, data: GetLatestNoteData) -> Result, ()> { + db.note() + .find_many(vec![note::created_at::gt(data.date)]) + .order_by(note::created_at::order(Direction::Desc)) + .exec() + .await + .map_err(|_| ()) +} + +#[tauri::command] +#[specta::specta] +async fn get_note_by_id(db: DbState<'_>, data: GetNoteByIdData) -> Result, ()> { + db.note() + .find_unique(note::event_id::equals(data.event_id)) + .exec() + .await + .map_err(|_| ()) +} + +#[tauri::command] +async fn count_total_notes(db: DbState<'_>) -> Result { + db.note().count(vec![]).exec().await.map_err(|_| ()) +} + +#[tokio::main] +async fn main() { + let db = PrismaClient::_builder().build().await.unwrap(); + + #[cfg(debug_assertions)] + ts::export( + collect_types![ + get_accounts, + create_account, + get_plebs, + get_pleb_by_pubkey, + create_pleb, + create_note, + get_notes, + get_latest_notes, + get_note_by_id + ], + "../src/utils/bindings.ts", + ) + .unwrap(); + + #[cfg(debug_assertions)] + db._db_push().await.unwrap(); + tauri::Builder::default() .setup(|app| { let main_window = app.get_window("main").unwrap(); @@ -25,23 +248,11 @@ fn main() { Ok(()) }) - .plugin( - tauri_plugin_sql::Builder::default() - .add_migrations( - "sqlite:lume.db", - vec![Migration { - version: 1, - description: "create default tables", - sql: include_str!("../migrations/20230226004139_create_tables.sql"), - kind: MigrationKind::Up, - }], - ) - .build(), - ) .on_window_event(|e| { #[cfg(target_os = "macos")] let apply_offset = || { let win = e.window(); + // keep inset for traffic lights when window resize (macos) win.position_traffic_lights(8.0, 20.0); }; #[cfg(target_os = "macos")] @@ -51,6 +262,19 @@ fn main() { _ => {} } }) + .invoke_handler(tauri::generate_handler![ + get_accounts, + create_account, + get_plebs, + get_pleb_by_pubkey, + create_pleb, + create_note, + get_notes, + get_latest_notes, + get_note_by_id, + count_total_notes + ]) + .manage(Arc::new(db)) .run(tauri::generate_context!()) .expect("error while running tauri application"); } diff --git a/src/components/chats/chatList.tsx b/src/components/chats/chatList.tsx new file mode 100644 index 00000000..2a929c1f --- /dev/null +++ b/src/components/chats/chatList.tsx @@ -0,0 +1,77 @@ +import { ChatListItem } from '@components/chats/chatListItem'; +import { ChatModal } from '@components/chats/chatModal'; +import { ImageWithFallback } from '@components/imageWithFallback'; +import { RelayContext } from '@components/relaysProvider'; + +import { activeAccountAtom } from '@stores/account'; +import { DEFAULT_AVATAR } from '@stores/constants'; + +import { useAtomValue } from 'jotai'; +import { useRouter } from 'next/router'; +import { useContext, useEffect, useState } from 'react'; + +export default function ChatList() { + const [pool, relays]: any = useContext(RelayContext); + const router = useRouter(); + + const activeAccount: any = useAtomValue(activeAccountAtom); + const accountProfile = JSON.parse(activeAccount.metadata); + + const [list, setList] = useState(new Set()); + + const openSelfChat = () => { + router.push({ + pathname: '/chats/[pubkey]', + query: { pubkey: activeAccount.pubkey }, + }); + }; + + useEffect(() => { + const unsubscribe = pool.subscribe( + [ + { + kinds: [4], + '#p': [activeAccount.pubkey], + since: 0, + }, + ], + relays, + (event: any) => { + if (event.pubkey !== activeAccount.pubkey) { + setList((list) => new Set(list).add(event.pubkey)); + } + } + ); + + return () => { + unsubscribe; + }; + }, [pool, relays, activeAccount.pubkey]); + + return ( +
+
openSelfChat()} + className="inline-flex items-center gap-2 rounded-md px-2.5 py-1.5 hover:bg-zinc-900" + > +
+ +
+
+
+ {accountProfile.display_name || accountProfile.name} (you) +
+
+
+ {[...list].map((item: string, index) => ( + + ))} + +
+ ); +} diff --git a/src/components/chats/chatListItem.tsx b/src/components/chats/chatListItem.tsx new file mode 100644 index 00000000..f9f2c6c0 --- /dev/null +++ b/src/components/chats/chatListItem.tsx @@ -0,0 +1,41 @@ +import { ImageWithFallback } from '@components/imageWithFallback'; + +import { DEFAULT_AVATAR } from '@stores/constants'; + +import { useMetadata } from '@utils/metadata'; +import { truncate } from '@utils/truncate'; + +import { useRouter } from 'next/router'; + +export const ChatListItem = ({ pubkey }: { pubkey: string }) => { + const router = useRouter(); + const profile = useMetadata(pubkey); + + const openChat = () => { + router.push({ + pathname: '/chats/[pubkey]', + query: { pubkey: pubkey }, + }); + }; + + return ( +
openChat()} + className="inline-flex items-center gap-2 rounded-md px-2.5 py-1.5 hover:bg-zinc-900" + > +
+ +
+
+
+ {profile?.display_name || profile?.name || truncate(pubkey, 16, ' .... ')} +
+
+
+ ); +}; diff --git a/src/components/chats/chatModal.tsx b/src/components/chats/chatModal.tsx new file mode 100644 index 00000000..b6e45e9e --- /dev/null +++ b/src/components/chats/chatModal.tsx @@ -0,0 +1,63 @@ +import { ChatModalUser } from '@components/chats/chatModalUser'; + +import { activeAccountAtom } from '@stores/account'; + +import * as Dialog from '@radix-ui/react-dialog'; +import { Cross1Icon, PlusIcon } from '@radix-ui/react-icons'; +import { useAtomValue } from 'jotai'; +import { useCallback, useEffect, useState } from 'react'; + +export const ChatModal = () => { + const [plebs, setPlebs] = useState([]); + const activeAccount: any = useAtomValue(activeAccountAtom); + + const fetchPlebsByAccount = useCallback(async (id) => { + const { getPlebs } = await import('@utils/bindings'); + return await getPlebs({ account_id: id }); + }, []); + + useEffect(() => { + fetchPlebsByAccount(activeAccount.id) + .then((res) => setPlebs(res)) + .catch(console.error); + }, [activeAccount.id, fetchPlebsByAccount]); + + return ( + + +
+
+ +
+
+
Add a new chat
+
+
+
+ + + +
+
+
+
+ + + +
New chat
+
+
+
+ {plebs.map((pleb) => ( + + ))} +
+
+
+
+
+
+ ); +}; diff --git a/src/components/chats/chatModalUser.tsx b/src/components/chats/chatModalUser.tsx new file mode 100644 index 00000000..d673dfd1 --- /dev/null +++ b/src/components/chats/chatModalUser.tsx @@ -0,0 +1,48 @@ +import { ImageWithFallback } from '@components/imageWithFallback'; + +import { DEFAULT_AVATAR } from '@stores/constants'; + +import { truncate } from '@utils/truncate'; + +import { useRouter } from 'next/router'; + +export const ChatModalUser = ({ data }: { data: any }) => { + const router = useRouter(); + const profile = JSON.parse(data.metadata); + + const openNewChat = () => { + router.push({ + pathname: '/chats/[pubkey]', + query: { pubkey: data.pubkey }, + }); + }; + + return ( +
+
+
+ +
+
+ + {profile?.display_name || profile?.name} + + {truncate(data.pubkey, 16, ' .... ')} +
+
+
+ +
+
+ ); +}; diff --git a/src/components/chats/messageList.tsx b/src/components/chats/messageList.tsx new file mode 100644 index 00000000..aaea7aac --- /dev/null +++ b/src/components/chats/messageList.tsx @@ -0,0 +1,46 @@ +import MessageListItem from '@components/chats/messageListItem'; + +import { useCallback, useRef } from 'react'; +import { Virtuoso } from 'react-virtuoso'; + +export const MessageList = ({ data }: { data: any }) => { + const virtuosoRef = useRef(null); + + const itemContent: any = useCallback( + (index: string | number) => { + const activeAccount = JSON.parse(localStorage.getItem('activeAccount')); + return ( + + ); + }, + [data] + ); + + const computeItemKey = useCallback( + (index: string | number) => { + return data[index].id; + }, + [data] + ); + + return ( +
+ +
+ ); +}; diff --git a/src/components/chats/messageListItem.tsx b/src/components/chats/messageListItem.tsx new file mode 100644 index 00000000..4947fb1f --- /dev/null +++ b/src/components/chats/messageListItem.tsx @@ -0,0 +1,51 @@ +import { MessageUser } from '@components/chats/messageUser'; + +import { nip04 } from 'nostr-tools'; +import { memo, useCallback, useEffect, useMemo, useState } from 'react'; + +const MessageListItem = ({ + data, + activeAccountPubkey, + activeAccountPrivkey, +}: { + data: any; + activeAccountPubkey: string; + activeAccountPrivkey: string; +}) => { + const [content, setContent] = useState(''); + + const sender = useMemo(() => { + const pTag = data.tags.find(([k, v]) => k === 'p' && v && v !== '')[1]; + if (pTag === activeAccountPubkey) { + return data.pubkey; + } else { + return pTag; + } + }, [data.pubkey, data.tags, activeAccountPubkey]); + + const decryptContent = useCallback(async () => { + const result = await nip04.decrypt(activeAccountPrivkey, sender, data.content); + setContent(result); + }, [data.content, activeAccountPrivkey, sender]); + + useEffect(() => { + decryptContent().catch(console.error); + }, [decryptContent]); + + return ( +
+
+ +
+
+
+ {content} +
+
+
+
+
+ ); +}; + +export default memo(MessageListItem); diff --git a/src/components/chats/messageUser.tsx b/src/components/chats/messageUser.tsx new file mode 100644 index 00000000..8ff71336 --- /dev/null +++ b/src/components/chats/messageUser.tsx @@ -0,0 +1,37 @@ +import { ImageWithFallback } from '@components/imageWithFallback'; + +import { DEFAULT_AVATAR } from '@stores/constants'; + +import { useMetadata } from '@utils/metadata'; +import { truncate } from '@utils/truncate'; + +import dayjs from 'dayjs'; +import relativeTime from 'dayjs/plugin/relativeTime'; + +dayjs.extend(relativeTime); + +export const MessageUser = ({ pubkey, time }: { pubkey: string; time: number }) => { + const profile = useMetadata(pubkey); + + return ( +
+
+ +
+
+
+ + {profile?.display_name || profile?.name || truncate(pubkey, 16, ' .... ')} + + · + {dayjs().to(dayjs.unix(time))} +
+
+
+ ); +}; diff --git a/src/components/columns/account/index.tsx b/src/components/columns/account/index.tsx deleted file mode 100644 index 79856a62..00000000 --- a/src/components/columns/account/index.tsx +++ /dev/null @@ -1,47 +0,0 @@ -import AccountList from '@components/columns/account/list'; - -import LumeSymbol from '@assets/icons/Lume'; - -import { PlusIcon } from '@radix-ui/react-icons'; -import { getVersion } from '@tauri-apps/api/app'; -import Link from 'next/link'; -import { useCallback, useEffect, useState } from 'react'; - -export default function AccountColumn() { - const [version, setVersion] = useState(null); - - const getAppVersion = useCallback(async () => { - const appVersion = await getVersion(); - setVersion(appVersion); - }, []); - - useEffect(() => { - getAppVersion().catch(console.error); - }, [getAppVersion]); - - return ( -
-
- - - - - - - -
-
- - Lume - - v{version} -
-
- ); -} diff --git a/src/components/columns/account/list.tsx b/src/components/columns/account/list.tsx deleted file mode 100644 index a92141bc..00000000 --- a/src/components/columns/account/list.tsx +++ /dev/null @@ -1,36 +0,0 @@ -import { ActiveAccount } from '@components/columns/account/active'; -import { InactiveAccount } from '@components/columns/account/inactive'; - -import { activeAccountAtom } from '@stores/account'; - -import { getAccounts } from '@utils/storage'; - -import { useAtomValue } from 'jotai'; -import { useCallback, useEffect, useState } from 'react'; - -export default function AccountList() { - const activeAccount: any = useAtomValue(activeAccountAtom); - const [users, setUsers] = useState([]); - - const renderAccount = useCallback( - (user: { id: string }) => { - if (user.id === activeAccount.id) { - return ; - } else { - return ; - } - }, - [activeAccount.id] - ); - - useEffect(() => { - const fetchAccount = async () => { - const result: any = await getAccounts(); - setUsers(result); - }; - - fetchAccount().catch(console.error); - }, []); - - return <>{users.map((user) => renderAccount(user))}; -} diff --git a/src/components/columns/navigator/chats.tsx b/src/components/columns/navigator/chats.tsx deleted file mode 100644 index f9169731..00000000 --- a/src/components/columns/navigator/chats.tsx +++ /dev/null @@ -1,27 +0,0 @@ -import * as Collapsible from '@radix-ui/react-collapsible'; -import { TriangleUpIcon } from '@radix-ui/react-icons'; -import { useState } from 'react'; - -export default function Chats() { - const [open, setOpen] = useState(true); - - return ( - -
- -
- -
-

- Chats -

-
- -
-
- ); -} diff --git a/src/components/columns/navigator/index.tsx b/src/components/columns/navigator/index.tsx deleted file mode 100644 index 324e1582..00000000 --- a/src/components/columns/navigator/index.tsx +++ /dev/null @@ -1,13 +0,0 @@ -import Chats from '@components/columns/navigator/chats'; -import Newsfeed from '@components/columns/navigator/newsfeed'; - -export default function NavigatorColumn() { - return ( -
- {/* Newsfeed */} - - {/* Chats */} - -
- ); -} diff --git a/src/components/columns/navigator/newsfeed.tsx b/src/components/columns/navigator/newsfeed.tsx deleted file mode 100644 index 9a1318c7..00000000 --- a/src/components/columns/navigator/newsfeed.tsx +++ /dev/null @@ -1,50 +0,0 @@ -import ActiveLink from '@components/activeLink'; - -import * as Collapsible from '@radix-ui/react-collapsible'; -import { TriangleUpIcon } from '@radix-ui/react-icons'; -import { useState } from 'react'; - -export default function Newsfeed() { - const [open, setOpen] = useState(true); - - return ( - -
- -
- -
-

- Newsfeed -

-
- - -
- -
- Following -
- -
- -
- Circle -
-
-
-
- ); -} diff --git a/src/components/form/base.tsx b/src/components/form/base.tsx index 1a940502..c34e270e 100644 --- a/src/components/form/base.tsx +++ b/src/components/form/base.tsx @@ -2,12 +2,11 @@ import EmojiPicker from '@components/form/emojiPicker'; import ImagePicker from '@components/form/imagePicker'; import { RelayContext } from '@components/relaysProvider'; -import { activeAccountAtom } from '@stores/account'; import { noteContentAtom } from '@stores/note'; import { dateToUnix } from '@utils/getDate'; -import { useAtom, useAtomValue } from 'jotai'; +import { useAtom } from 'jotai'; import { useResetAtom } from 'jotai/utils'; import { getEventHash, signEvent } from 'nostr-tools'; import { useContext } from 'react'; @@ -15,23 +14,21 @@ import { useContext } from 'react'; export default function FormBase() { const [pool, relays]: any = useContext(RelayContext); - const activeAccount: any = useAtomValue(activeAccountAtom); const [value, setValue] = useAtom(noteContentAtom); const resetValue = useResetAtom(noteContentAtom); - const pubkey = activeAccount.id; - const privkey = activeAccount.privkey; - const submitEvent = () => { + const activeAccount = JSON.parse(localStorage.getItem('activeAccount')); + const event: any = { content: value, created_at: dateToUnix(), kind: 1, - pubkey: pubkey, + pubkey: activeAccount.pubkey, tags: [], }; event.id = getEventHash(event); - event.sig = signEvent(event, privkey); + event.sig = signEvent(event, activeAccount.privkey); // publish note pool.publish(event, relays); diff --git a/src/components/form/chat.tsx b/src/components/form/chat.tsx new file mode 100644 index 00000000..6681b1d2 --- /dev/null +++ b/src/components/form/chat.tsx @@ -0,0 +1,79 @@ +import ImagePicker from '@components/form/imagePicker'; +import { RelayContext } from '@components/relaysProvider'; + +import { dateToUnix } from '@utils/getDate'; + +import { getEventHash, nip04, signEvent } from 'nostr-tools'; +import { useCallback, useContext, useState } from 'react'; + +export default function FormChat({ receiverPubkey }: { receiverPubkey: string }) { + const [pool, relays]: any = useContext(RelayContext); + const [value, setValue] = useState(''); + + const encryptMessage = useCallback( + async (privkey: string) => { + return await nip04.encrypt(privkey, receiverPubkey, value); + }, + [receiverPubkey, value] + ); + + const submitEvent = useCallback(() => { + const activeAccount = JSON.parse(localStorage.getItem('activeAccount')); + encryptMessage(activeAccount.privkey) + .then((encryptedContent) => { + const event: any = { + content: encryptedContent, + created_at: dateToUnix(), + kind: 4, + pubkey: activeAccount.pubkey, + tags: [['p', receiverPubkey]], + }; + event.id = getEventHash(event); + event.sig = signEvent(event, activeAccount.privkey); + // publish note + pool.publish(event, relays); + // reset state + setValue(''); + }) + .catch(console.error); + }, [encryptMessage, receiverPubkey, pool, relays]); + + const handleEnterPress = (e) => { + if (e.key === 'Enter' && !e.shiftKey) { + e.preventDefault(); + submitEvent(); + } + }; + + return ( +
+
+