feat: add some shit
This commit is contained in:
parent
89a202b0a2
commit
057257edd5
@ -33,6 +33,7 @@
|
|||||||
"googleapis": "^128.0.0",
|
"googleapis": "^128.0.0",
|
||||||
"minio": "^7.1.3",
|
"minio": "^7.1.3",
|
||||||
"openai": "^4.17.4",
|
"openai": "^4.17.4",
|
||||||
"pocketbase": "^0.19.0"
|
"pocketbase": "^0.19.0",
|
||||||
|
"svelte-bricks": "^0.2.1"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
16
pb_migrations/1699807218_updated_invites.js
Normal file
16
pb_migrations/1699807218_updated_invites.js
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
/// <reference path="../pb_data/types.d.ts" />
|
||||||
|
migrate((db) => {
|
||||||
|
const dao = new Dao(db)
|
||||||
|
const collection = dao.findCollectionByNameOrId("zfbbb4gbdk9dh6k")
|
||||||
|
|
||||||
|
collection.listRule = ""
|
||||||
|
|
||||||
|
return dao.saveCollection(collection)
|
||||||
|
}, (db) => {
|
||||||
|
const dao = new Dao(db)
|
||||||
|
const collection = dao.findCollectionByNameOrId("zfbbb4gbdk9dh6k")
|
||||||
|
|
||||||
|
collection.listRule = null
|
||||||
|
|
||||||
|
return dao.saveCollection(collection)
|
||||||
|
})
|
@ -17,6 +17,9 @@ dependencies:
|
|||||||
pocketbase:
|
pocketbase:
|
||||||
specifier: ^0.19.0
|
specifier: ^0.19.0
|
||||||
version: 0.19.0
|
version: 0.19.0
|
||||||
|
svelte-bricks:
|
||||||
|
specifier: ^0.2.1
|
||||||
|
version: 0.2.1
|
||||||
|
|
||||||
devDependencies:
|
devDependencies:
|
||||||
'@sveltejs/adapter-auto':
|
'@sveltejs/adapter-auto':
|
||||||
@ -78,7 +81,6 @@ packages:
|
|||||||
dependencies:
|
dependencies:
|
||||||
'@jridgewell/gen-mapping': 0.3.3
|
'@jridgewell/gen-mapping': 0.3.3
|
||||||
'@jridgewell/trace-mapping': 0.3.20
|
'@jridgewell/trace-mapping': 0.3.20
|
||||||
dev: true
|
|
||||||
|
|
||||||
/@esbuild/android-arm64@0.18.20:
|
/@esbuild/android-arm64@0.18.20:
|
||||||
resolution: {integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==}
|
resolution: {integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==}
|
||||||
@ -347,28 +349,23 @@ packages:
|
|||||||
'@jridgewell/set-array': 1.1.2
|
'@jridgewell/set-array': 1.1.2
|
||||||
'@jridgewell/sourcemap-codec': 1.4.15
|
'@jridgewell/sourcemap-codec': 1.4.15
|
||||||
'@jridgewell/trace-mapping': 0.3.20
|
'@jridgewell/trace-mapping': 0.3.20
|
||||||
dev: true
|
|
||||||
|
|
||||||
/@jridgewell/resolve-uri@3.1.1:
|
/@jridgewell/resolve-uri@3.1.1:
|
||||||
resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==}
|
resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==}
|
||||||
engines: {node: '>=6.0.0'}
|
engines: {node: '>=6.0.0'}
|
||||||
dev: true
|
|
||||||
|
|
||||||
/@jridgewell/set-array@1.1.2:
|
/@jridgewell/set-array@1.1.2:
|
||||||
resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==}
|
resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==}
|
||||||
engines: {node: '>=6.0.0'}
|
engines: {node: '>=6.0.0'}
|
||||||
dev: true
|
|
||||||
|
|
||||||
/@jridgewell/sourcemap-codec@1.4.15:
|
/@jridgewell/sourcemap-codec@1.4.15:
|
||||||
resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==}
|
resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==}
|
||||||
dev: true
|
|
||||||
|
|
||||||
/@jridgewell/trace-mapping@0.3.20:
|
/@jridgewell/trace-mapping@0.3.20:
|
||||||
resolution: {integrity: sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==}
|
resolution: {integrity: sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==}
|
||||||
dependencies:
|
dependencies:
|
||||||
'@jridgewell/resolve-uri': 3.1.1
|
'@jridgewell/resolve-uri': 3.1.1
|
||||||
'@jridgewell/sourcemap-codec': 1.4.15
|
'@jridgewell/sourcemap-codec': 1.4.15
|
||||||
dev: true
|
|
||||||
|
|
||||||
/@nodelib/fs.scandir@2.1.5:
|
/@nodelib/fs.scandir@2.1.5:
|
||||||
resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
|
resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
|
||||||
@ -550,7 +547,6 @@ packages:
|
|||||||
|
|
||||||
/@types/estree@1.0.5:
|
/@types/estree@1.0.5:
|
||||||
resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==}
|
resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==}
|
||||||
dev: true
|
|
||||||
|
|
||||||
/@types/json-schema@7.0.15:
|
/@types/json-schema@7.0.15:
|
||||||
resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==}
|
resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==}
|
||||||
@ -741,7 +737,6 @@ packages:
|
|||||||
resolution: {integrity: sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==}
|
resolution: {integrity: sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==}
|
||||||
engines: {node: '>=0.4.0'}
|
engines: {node: '>=0.4.0'}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
dev: true
|
|
||||||
|
|
||||||
/agent-base@7.1.0:
|
/agent-base@7.1.0:
|
||||||
resolution: {integrity: sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==}
|
resolution: {integrity: sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==}
|
||||||
@ -796,7 +791,6 @@ packages:
|
|||||||
resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==}
|
resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==}
|
||||||
dependencies:
|
dependencies:
|
||||||
dequal: 2.0.3
|
dequal: 2.0.3
|
||||||
dev: true
|
|
||||||
|
|
||||||
/array-union@2.1.0:
|
/array-union@2.1.0:
|
||||||
resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==}
|
resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==}
|
||||||
@ -820,7 +814,6 @@ packages:
|
|||||||
resolution: {integrity: sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==}
|
resolution: {integrity: sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==}
|
||||||
dependencies:
|
dependencies:
|
||||||
dequal: 2.0.3
|
dequal: 2.0.3
|
||||||
dev: true
|
|
||||||
|
|
||||||
/balanced-match@1.0.2:
|
/balanced-match@1.0.2:
|
||||||
resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
|
resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
|
||||||
@ -933,7 +926,6 @@ packages:
|
|||||||
acorn: 8.11.2
|
acorn: 8.11.2
|
||||||
estree-walker: 3.0.3
|
estree-walker: 3.0.3
|
||||||
periscopic: 3.1.0
|
periscopic: 3.1.0
|
||||||
dev: true
|
|
||||||
|
|
||||||
/color-convert@2.0.1:
|
/color-convert@2.0.1:
|
||||||
resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
|
resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
|
||||||
@ -985,7 +977,6 @@ packages:
|
|||||||
dependencies:
|
dependencies:
|
||||||
mdn-data: 2.0.30
|
mdn-data: 2.0.30
|
||||||
source-map-js: 1.0.2
|
source-map-js: 1.0.2
|
||||||
dev: true
|
|
||||||
|
|
||||||
/cssesc@3.0.0:
|
/cssesc@3.0.0:
|
||||||
resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==}
|
resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==}
|
||||||
@ -1035,7 +1026,6 @@ packages:
|
|||||||
/dequal@2.0.3:
|
/dequal@2.0.3:
|
||||||
resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==}
|
resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==}
|
||||||
engines: {node: '>=6'}
|
engines: {node: '>=6'}
|
||||||
dev: true
|
|
||||||
|
|
||||||
/detect-indent@6.1.0:
|
/detect-indent@6.1.0:
|
||||||
resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==}
|
resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==}
|
||||||
@ -1259,7 +1249,6 @@ packages:
|
|||||||
resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==}
|
resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==}
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/estree': 1.0.5
|
'@types/estree': 1.0.5
|
||||||
dev: true
|
|
||||||
|
|
||||||
/esutils@2.0.3:
|
/esutils@2.0.3:
|
||||||
resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
|
resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
|
||||||
@ -1722,7 +1711,6 @@ packages:
|
|||||||
resolution: {integrity: sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==}
|
resolution: {integrity: sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==}
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/estree': 1.0.5
|
'@types/estree': 1.0.5
|
||||||
dev: true
|
|
||||||
|
|
||||||
/is-stream@2.0.1:
|
/is-stream@2.0.1:
|
||||||
resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==}
|
resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==}
|
||||||
@ -1814,7 +1802,6 @@ packages:
|
|||||||
|
|
||||||
/locate-character@3.0.0:
|
/locate-character@3.0.0:
|
||||||
resolution: {integrity: sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==}
|
resolution: {integrity: sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==}
|
||||||
dev: true
|
|
||||||
|
|
||||||
/locate-path@6.0.0:
|
/locate-path@6.0.0:
|
||||||
resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
|
resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
|
||||||
@ -1850,7 +1837,6 @@ packages:
|
|||||||
engines: {node: '>=12'}
|
engines: {node: '>=12'}
|
||||||
dependencies:
|
dependencies:
|
||||||
'@jridgewell/sourcemap-codec': 1.4.15
|
'@jridgewell/sourcemap-codec': 1.4.15
|
||||||
dev: true
|
|
||||||
|
|
||||||
/md5@2.3.0:
|
/md5@2.3.0:
|
||||||
resolution: {integrity: sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==}
|
resolution: {integrity: sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==}
|
||||||
@ -1862,7 +1848,6 @@ packages:
|
|||||||
|
|
||||||
/mdn-data@2.0.30:
|
/mdn-data@2.0.30:
|
||||||
resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==}
|
resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==}
|
||||||
dev: true
|
|
||||||
|
|
||||||
/merge2@1.4.1:
|
/merge2@1.4.1:
|
||||||
resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
|
resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
|
||||||
@ -2077,7 +2062,6 @@ packages:
|
|||||||
'@types/estree': 1.0.5
|
'@types/estree': 1.0.5
|
||||||
estree-walker: 3.0.3
|
estree-walker: 3.0.3
|
||||||
is-reference: 3.0.2
|
is-reference: 3.0.2
|
||||||
dev: true
|
|
||||||
|
|
||||||
/picocolors@1.0.0:
|
/picocolors@1.0.0:
|
||||||
resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==}
|
resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==}
|
||||||
@ -2347,7 +2331,6 @@ packages:
|
|||||||
/source-map-js@1.0.2:
|
/source-map-js@1.0.2:
|
||||||
resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==}
|
resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==}
|
||||||
engines: {node: '>=0.10.0'}
|
engines: {node: '>=0.10.0'}
|
||||||
dev: true
|
|
||||||
|
|
||||||
/split-on-first@1.1.0:
|
/split-on-first@1.1.0:
|
||||||
resolution: {integrity: sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==}
|
resolution: {integrity: sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==}
|
||||||
@ -2400,6 +2383,12 @@ packages:
|
|||||||
engines: {node: '>= 0.4'}
|
engines: {node: '>= 0.4'}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/svelte-bricks@0.2.1:
|
||||||
|
resolution: {integrity: sha512-cc3XK3j5ViPyZ3K183+Sr53B2e8mJaiV3POyoJtjmm1dYc/TBMy7jOUMt8MW/snJzodpACfqwFzokBQbrZ297w==}
|
||||||
|
dependencies:
|
||||||
|
svelte: 4.2.3
|
||||||
|
dev: false
|
||||||
|
|
||||||
/svelte-check@3.6.0(postcss@8.4.31)(svelte@4.2.3):
|
/svelte-check@3.6.0(postcss@8.4.31)(svelte@4.2.3):
|
||||||
resolution: {integrity: sha512-8VfqhfuRJ1sKW+o8isH2kPi0RhjXH1nNsIbCFGyoUHG+ZxVxHYRKcb+S8eaL/1tyj3VGvWYx3Y5+oCUsJgnzcw==}
|
resolution: {integrity: sha512-8VfqhfuRJ1sKW+o8isH2kPi0RhjXH1nNsIbCFGyoUHG+ZxVxHYRKcb+S8eaL/1tyj3VGvWYx3Y5+oCUsJgnzcw==}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
@ -2518,7 +2507,6 @@ packages:
|
|||||||
locate-character: 3.0.0
|
locate-character: 3.0.0
|
||||||
magic-string: 0.30.5
|
magic-string: 0.30.5
|
||||||
periscopic: 3.1.0
|
periscopic: 3.1.0
|
||||||
dev: true
|
|
||||||
|
|
||||||
/text-table@0.2.0:
|
/text-table@0.2.0:
|
||||||
resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==}
|
resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==}
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
export let alt = '';
|
export let alt = '';
|
||||||
const u = new URL(src);
|
const u = new URL(src);
|
||||||
const filename = u.pathname.split('/').pop() || '9a8sda';
|
const filename = u.pathname.split('/').pop() || '9a8sda';
|
||||||
const int = parseInt(filename?.slice(0, 8), 16) % 7;
|
const int = (parseInt(filename?.slice(0, 8), 16) % 7) + 1;
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<div class="frame" style="--frame: url(/frames/frame_0{int}.png)">
|
<div class="frame" style="--frame: url(/frames/frame_0{int}.png)">
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
export let value = 50;
|
export let value = 50;
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<input type="range" {min} {max} bind:value />
|
<input type="range" {min} {max} bind:value step={10} />
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
input[type='range'] {
|
input[type='range'] {
|
||||||
|
@ -5,6 +5,7 @@
|
|||||||
import ImageFrame from './ImageFrame.svelte';
|
import ImageFrame from './ImageFrame.svelte';
|
||||||
import Button from './button.svelte';
|
import Button from './button.svelte';
|
||||||
import InputRange from './InputRange.svelte';
|
import InputRange from './InputRange.svelte';
|
||||||
|
import { goto } from '$app/navigation';
|
||||||
|
|
||||||
let data = persisted<{
|
let data = persisted<{
|
||||||
name: string;
|
name: string;
|
||||||
@ -38,8 +39,6 @@
|
|||||||
createPersonality: undefined
|
createPersonality: undefined
|
||||||
});
|
});
|
||||||
|
|
||||||
let nameInputEl: HTMLInputElement;
|
|
||||||
|
|
||||||
let loadingAdelsTitel = false;
|
let loadingAdelsTitel = false;
|
||||||
async function fetchAdelsTitel() {
|
async function fetchAdelsTitel() {
|
||||||
if (loadingAdelsTitel) return;
|
if (loadingAdelsTitel) return;
|
||||||
@ -75,17 +74,21 @@
|
|||||||
async function submit() {
|
async function submit() {
|
||||||
if (isSubmitting) return;
|
if (isSubmitting) return;
|
||||||
isSubmitting = true;
|
isSubmitting = true;
|
||||||
const res = await fetch(`/api/invites`, {
|
await fetch(`/api/invites`, {
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
body: JSON.stringify($data)
|
body: JSON.stringify($data)
|
||||||
});
|
});
|
||||||
|
localStorage.clear();
|
||||||
|
localStorage.setItem('last-name', $data?.adelsTitel || '');
|
||||||
|
isSubmitting = false;
|
||||||
|
goto('/gallery');
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<div class="wrapper">
|
<div class="wrapper">
|
||||||
<section in:slide>
|
<section in:slide={{ delay: 500 }}>
|
||||||
<TextSplit content="Wie lautet euer Name?" />
|
<TextSplit content="Wie lautet euer Name?" />
|
||||||
<input bind:this={nameInputEl} placeholder="Name" type="text" bind:value={$data.name} />
|
<input placeholder="Name" type="text" bind:value={$data.name} />
|
||||||
{#if !$data.nameAccepted}
|
{#if !$data.nameAccepted}
|
||||||
<button
|
<button
|
||||||
on:click={() => {
|
on:click={() => {
|
||||||
@ -208,7 +211,7 @@
|
|||||||
|
|
||||||
{#if $data.providePortrait && !loadingPortrait && !$data.portraitUrl}
|
{#if $data.providePortrait && !loadingPortrait && !$data.portraitUrl}
|
||||||
<p>
|
<p>
|
||||||
Wir werden “{$data.adelsTitel || $data.name}” mit
|
Wir werden {$data.adelsTitel || $data.name} mit
|
||||||
<select placeholder="Typ" bind:value={$data.portraitHairType}>
|
<select placeholder="Typ" bind:value={$data.portraitHairType}>
|
||||||
<option value="straight">glatten</option>
|
<option value="straight">glatten</option>
|
||||||
<option value="curly">lockigen</option>
|
<option value="curly">lockigen</option>
|
||||||
@ -224,7 +227,7 @@
|
|||||||
<option value="black">schwarzen</option>
|
<option value="black">schwarzen</option>
|
||||||
<option value="blond">blonden</option>
|
<option value="blond">blonden</option>
|
||||||
<option value="braunem">braunen</option>
|
<option value="braunem">braunen</option>
|
||||||
</select> Haaren zeichnen?
|
</select> Haaren zeichnen
|
||||||
</p>
|
</p>
|
||||||
<button on:click={() => fetchPortrait()}> porträt malen (~30 Sekunden)</button>
|
<button on:click={() => fetchPortrait()}> porträt malen (~30 Sekunden)</button>
|
||||||
{:else if loadingPortrait}
|
{:else if loadingPortrait}
|
||||||
@ -256,7 +259,11 @@
|
|||||||
|
|
||||||
{#if $data.portraitAccepted}
|
{#if $data.portraitAccepted}
|
||||||
<div class="button-wrapper">
|
<div class="button-wrapper">
|
||||||
|
{#if isSubmitting}
|
||||||
|
<p>Einladung wird abgeschickt</p>
|
||||||
|
{:else}
|
||||||
<Button on:click={() => submit()}>Einladung abschicken</Button>
|
<Button on:click={() => submit()}>Einladung abschicken</Button>
|
||||||
|
{/if}
|
||||||
</div>
|
</div>
|
||||||
{/if}
|
{/if}
|
||||||
</div>
|
</div>
|
||||||
|
@ -14,6 +14,8 @@
|
|||||||
animation-delay: 3s;
|
animation-delay: 3s;
|
||||||
opacity: 0;
|
opacity: 0;
|
||||||
transition: font-size 3s ease;
|
transition: font-size 3s ease;
|
||||||
|
filter: drop-shadow(0px 0px 40px #be8630aa) drop-shadow(0px 0px 5px black)
|
||||||
|
drop-shadow(0px 0px 5px black) drop-shadow(0px 0px 5px black);
|
||||||
}
|
}
|
||||||
|
|
||||||
@keyframes fadeIn {
|
@keyframes fadeIn {
|
||||||
|
@ -3,6 +3,12 @@ import { POCKETBASE_URL } from "$env/dynamic/private"
|
|||||||
|
|
||||||
const pb = new Pocketbase(POCKETBASE_URL || "http://localhost:8090");
|
const pb = new Pocketbase(POCKETBASE_URL || "http://localhost:8090");
|
||||||
|
|
||||||
|
export async function getPublicPortraits() {
|
||||||
|
return (await pb.collection("invites").getList(1, 100, {
|
||||||
|
filter: pb.filter(`portrait_public = true`)
|
||||||
|
})).items
|
||||||
|
}
|
||||||
|
|
||||||
export function createPerson({ name, confidence, portrait, portrait_public, noble_name, hair_color, hair_type, hair_length }: { name: string, portrait: string, portrait_public: boolean, hair_type: string, hair_length: string, hair_color: string, confidence: number, noble_name: string }) {
|
export function createPerson({ name, confidence, portrait, portrait_public, noble_name, hair_color, hair_type, hair_length }: { name: string, portrait: string, portrait_public: boolean, hair_type: string, hair_length: string, hair_color: string, confidence: number, noble_name: string }) {
|
||||||
return pb.collection("invites").create({
|
return pb.collection("invites").create({
|
||||||
name,
|
name,
|
||||||
|
@ -100,8 +100,6 @@ export async function addPerson({ name, confidence, noble_name }: { name: string
|
|||||||
|
|
||||||
if (!api) return;
|
if (!api) return;
|
||||||
|
|
||||||
console.log({ name, confidence, noble_name });
|
|
||||||
|
|
||||||
return api.spreadsheets.values.append({
|
return api.spreadsheets.values.append({
|
||||||
auth, //auth object
|
auth, //auth object
|
||||||
spreadsheetId: GOOGLE_SHEET_ID, // spreadsheet id
|
spreadsheetId: GOOGLE_SHEET_ID, // spreadsheet id
|
||||||
|
@ -6,7 +6,7 @@ export const GET: RequestHandler = async function ({ params }) {
|
|||||||
|
|
||||||
const inputName = params.name
|
const inputName = params.name
|
||||||
|
|
||||||
const prompt = `Generate 10 variants of the name ${inputName}. The names should sound very much like the original but also like noble names from the 1900 century. Examples could be "lady rosalind of whitmore" "lord byron of castlemore" "Lord Max Richter". Choose english, german, french and italian sounding names. Only respond with 10 names seperated be newlines`;
|
const prompt = `Generate 10 variants of the name ${inputName}. The names should sound very much like the original but also like noble names. Examples could be "lady rosalind of whitmore" "lord byron of castlemore" "Lord Max Richter". Choose english, german, french and italian sounding names. Only respond with 10 names seperated be newlines`;
|
||||||
|
|
||||||
const res = await chat(prompt, { isList: true, temperature: 1 });
|
const res = await chat(prompt, { isList: true, temperature: 1 });
|
||||||
|
|
||||||
|
8
src/routes/gallery/+page.server.ts
Normal file
8
src/routes/gallery/+page.server.ts
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
import * as pb from "$lib/helpers/pb"
|
||||||
|
export async function load() {
|
||||||
|
const res = await pb.getPublicPortraits();
|
||||||
|
|
||||||
|
return {
|
||||||
|
data: res
|
||||||
|
}
|
||||||
|
}
|
66
src/routes/gallery/+page.svelte
Normal file
66
src/routes/gallery/+page.svelte
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
<script lang="ts">
|
||||||
|
import ImageFrame from '$lib/components/ImageFrame.svelte';
|
||||||
|
import Confetti from '$lib/components/confetti.svelte';
|
||||||
|
import { onMount } from 'svelte';
|
||||||
|
|
||||||
|
export let data;
|
||||||
|
|
||||||
|
let last_name: string | null = '';
|
||||||
|
|
||||||
|
const items = data.data
|
||||||
|
.map((item) => {
|
||||||
|
return {
|
||||||
|
...item,
|
||||||
|
marginTop: 20 + Math.random() * 50
|
||||||
|
};
|
||||||
|
})
|
||||||
|
.reverse();
|
||||||
|
onMount(() => {
|
||||||
|
last_name = localStorage.getItem('last-name');
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<h1>Gallerie</h1>
|
||||||
|
<div class="grid">
|
||||||
|
{#each items as item}
|
||||||
|
<div style="margin-top: {item.marginTop}px" class:active={item.noble_name === last_name}>
|
||||||
|
<ImageFrame src={item.portrait} />
|
||||||
|
<p>{item.noble_name}</p>
|
||||||
|
</div>
|
||||||
|
{/each}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<Confetti />
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.grid {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));
|
||||||
|
padding-bottom: 100px;
|
||||||
|
}
|
||||||
|
h1 {
|
||||||
|
font-size: 4rem;
|
||||||
|
font-family: Parisienne, cursive;
|
||||||
|
color: white;
|
||||||
|
margin-left: 50px;
|
||||||
|
}
|
||||||
|
p {
|
||||||
|
color: white;
|
||||||
|
font-family: Parisienne, cursive;
|
||||||
|
font-size: 1.2em;
|
||||||
|
margin-left: 40px;
|
||||||
|
width: 80%;
|
||||||
|
margin-top: 10px;
|
||||||
|
}
|
||||||
|
.active {
|
||||||
|
filter: drop-shadow(0px 0px 40px #be8630aa) drop-shadow(0px 0px 5px black)
|
||||||
|
drop-shadow(0px 0px 5px black) drop-shadow(0px 0px 5px black);
|
||||||
|
}
|
||||||
|
div {
|
||||||
|
max-width: 1300px;
|
||||||
|
width: 80%;
|
||||||
|
margin: 0 auto;
|
||||||
|
}
|
||||||
|
</style>
|
@ -12,8 +12,11 @@ html, body {
|
|||||||
height: 100%;
|
height: 100%;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
background-color: black;
|
|
||||||
/* background-image: url(/confetti.png); */
|
|
||||||
background-size: 80%;
|
background-size: 80%;
|
||||||
backdrop-filter: brightness(0.5);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
html {
|
||||||
|
background: black;
|
||||||
|
background-image: url(/pattern_b.jpg);
|
||||||
|
backdrop-filter: brightness(0.3);
|
||||||
|
}
|
||||||
|
@ -1,5 +0,0 @@
|
|||||||
<script lang="ts">
|
|
||||||
import Questions from '$lib/components/Questions.svelte';
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<Questions />
|
|
BIN
static/pattern.jpg
Normal file
BIN
static/pattern.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 245 KiB |
BIN
static/pattern_b.jpg
Normal file
BIN
static/pattern_b.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 17 KiB |
Loading…
Reference in New Issue
Block a user