From 7ca2b25e8fda42874bcd7970e99b27ec253c14ad Mon Sep 17 00:00:00 2001 From: Marco Crapts Date: Mon, 22 May 2023 20:48:53 +0200 Subject: [PATCH] decrypt notes --- package-lock.json | 24 ++++++++++++++ package.json | 2 ++ src/components/Note/Autocomplete.vue | 2 +- src/components/Search/SearchResult.vue | 2 ++ src/components/ViewModes/Mindmap.vue | 12 ++++--- src/composables/useEncryption.ts | 44 ++++++++++++++++++++++++++ src/composables/useFirebase.ts | 21 +++++++----- src/composables/useNotes.ts | 44 ++++++++++++++++++++------ src/types.d.ts | 7 ++++ src/utils/crypto.ts | 15 +++++++++ src/utils/helpers.ts | 3 +- 11 files changed, 152 insertions(+), 24 deletions(-) create mode 100644 src/composables/useEncryption.ts create mode 100644 src/utils/crypto.ts diff --git a/package-lock.json b/package-lock.json index 7ca2b89..6a9b151 100644 --- a/package-lock.json +++ b/package-lock.json @@ -24,6 +24,7 @@ "@types/marked": "^4.0.8", "@vueuse/components": "^10.1.0", "@vueuse/core": "^10.1.2", + "crypto-js": "^4.1.1", "cytoscape": "^3.25.0", "daisyui": "^2.51.6", "date-fns": "^2.29.3", @@ -40,6 +41,7 @@ "devDependencies": { "@rushstack/eslint-patch": "^1.2.0", "@tsconfig/node18": "^2.0.1", + "@types/crypto-js": "^4.1.1", "@types/dompurify": "^3.0.2", "@types/lodash-es": "^4.17.7", "@types/node": "^20.2.1", @@ -2002,6 +2004,12 @@ "integrity": "sha512-UqdfvuJK0SArA2CxhKWwwAWfnVSXiYe63bVpMutc27vpngCntGUZQETO24pEJ46zU6XM+7SpqYoMgcO3bM11Ew==", "dev": true }, + "node_modules/@types/crypto-js": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/@types/crypto-js/-/crypto-js-4.1.1.tgz", + "integrity": "sha512-BG7fQKZ689HIoc5h+6D2Dgq1fABRa0RbBWKBd9SP/MVRVXROflpm5fhwyATX5duFmbStzyzyycPB8qUYKDH3NA==", + "dev": true + }, "node_modules/@types/cytoscape": { "version": "3.19.9", "resolved": "https://registry.npmjs.org/@types/cytoscape/-/cytoscape-3.19.9.tgz", @@ -4324,6 +4332,11 @@ "node": ">= 8" } }, + "node_modules/crypto-js": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.1.1.tgz", + "integrity": "sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw==" + }, "node_modules/crypto-random-string": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", @@ -13838,6 +13851,12 @@ "integrity": "sha512-UqdfvuJK0SArA2CxhKWwwAWfnVSXiYe63bVpMutc27vpngCntGUZQETO24pEJ46zU6XM+7SpqYoMgcO3bM11Ew==", "dev": true }, + "@types/crypto-js": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/@types/crypto-js/-/crypto-js-4.1.1.tgz", + "integrity": "sha512-BG7fQKZ689HIoc5h+6D2Dgq1fABRa0RbBWKBd9SP/MVRVXROflpm5fhwyATX5duFmbStzyzyycPB8qUYKDH3NA==", + "dev": true + }, "@types/cytoscape": { "version": "3.19.9", "resolved": "https://registry.npmjs.org/@types/cytoscape/-/cytoscape-3.19.9.tgz", @@ -15593,6 +15612,11 @@ "which": "^2.0.1" } }, + "crypto-js": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.1.1.tgz", + "integrity": "sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw==" + }, "crypto-random-string": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", diff --git a/package.json b/package.json index c360e75..a01f5a1 100644 --- a/package.json +++ b/package.json @@ -31,6 +31,7 @@ "@types/marked": "^4.0.8", "@vueuse/components": "^10.1.0", "@vueuse/core": "^10.1.2", + "crypto-js": "^4.1.1", "cytoscape": "^3.25.0", "daisyui": "^2.51.6", "date-fns": "^2.29.3", @@ -47,6 +48,7 @@ "devDependencies": { "@rushstack/eslint-patch": "^1.2.0", "@tsconfig/node18": "^2.0.1", + "@types/crypto-js": "^4.1.1", "@types/dompurify": "^3.0.2", "@types/lodash-es": "^4.17.7", "@types/node": "^20.2.1", diff --git a/src/components/Note/Autocomplete.vue b/src/components/Note/Autocomplete.vue index 02c2065..2c55838 100644 --- a/src/components/Note/Autocomplete.vue +++ b/src/components/Note/Autocomplete.vue @@ -12,7 +12,7 @@ const emit = defineEmits<{ const results = computed(() => { return ( props.autocompleteText ? findNotesByByTitle(props.autocompleteText) : notes.value - ).filter((note) => note.id !== activeNote.value?.id) + ).filter((note) => note.id !== activeNote.value?.id).slice(10) }) const activeResult = ref() diff --git a/src/components/Search/SearchResult.vue b/src/components/Search/SearchResult.vue index ce8375c..fb37858 100644 --- a/src/components/Search/SearchResult.vue +++ b/src/components/Search/SearchResult.vue @@ -10,6 +10,8 @@ const props = defineProps<{ const emit = defineEmits<{ goToNote: [] }>() + +console.log(props.activeResult)