From 3305c8124d816aa77ed7e40479815178835f729b Mon Sep 17 00:00:00 2001 From: sharevb Date: Sun, 28 Apr 2024 12:26:27 +0200 Subject: [PATCH] feat(new tool): Morse converter Fix #1001 --- components.d.ts | 1 + package.json | 2 + pnpm-lock.yaml | 27 +++++++-- src/tools/index.ts | 2 + src/tools/morse-converter/index.ts | 12 ++++ src/tools/morse-converter/morse-converter.vue | 56 +++++++++++++++++++ 6 files changed, 94 insertions(+), 6 deletions(-) create mode 100644 src/tools/morse-converter/index.ts create mode 100644 src/tools/morse-converter/morse-converter.vue diff --git a/components.d.ts b/components.d.ts index d034fc78..0d410283 100644 --- a/components.d.ts +++ b/components.d.ts @@ -137,6 +137,7 @@ declare module '@vue/runtime-core' { MenuLayout: typeof import('./src/components/MenuLayout.vue')['default'] MetaTagGenerator: typeof import('./src/tools/meta-tag-generator/meta-tag-generator.vue')['default'] MimeTypes: typeof import('./src/tools/mime-types/mime-types.vue')['default'] + MorseConverter: typeof import('./src/tools/morse-converter/morse-converter.vue')['default'] NAlert: typeof import('naive-ui')['NAlert'] NavbarButtons: typeof import('./src/components/NavbarButtons.vue')['default'] NCheckbox: typeof import('naive-ui')['NCheckbox'] diff --git a/package.json b/package.json index ffa7bd4e..3ee51e17 100644 --- a/package.json +++ b/package.json @@ -41,6 +41,7 @@ "@tiptap/pm": "2.1.6", "@tiptap/starter-kit": "2.1.6", "@tiptap/vue-3": "2.0.3", + "@types/morsee": "^1.0.2", "@vicons/material": "^0.12.0", "@vicons/tabler": "^0.12.0", "@vueuse/core": "^10.3.0", @@ -70,6 +71,7 @@ "mathjs": "^11.9.1", "mime-types": "^2.1.35", "monaco-editor": "^0.43.0", + "morsee": "^1.0.9", "naive-ui": "^2.35.0", "netmask": "^2.0.2", "node-forge": "^1.3.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index dfacabd4..448b5970 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -23,6 +23,9 @@ dependencies: '@tiptap/vue-3': specifier: 2.0.3 version: 2.0.3(@tiptap/core@2.1.12)(@tiptap/pm@2.1.6)(vue@3.3.4) + '@types/morsee': + specifier: ^1.0.2 + version: 1.0.2 '@vicons/material': specifier: ^0.12.0 version: 0.12.0 @@ -110,6 +113,9 @@ dependencies: monaco-editor: specifier: ^0.43.0 version: 0.43.0 + morsee: + specifier: ^1.0.9 + version: 1.0.9 naive-ui: specifier: ^2.35.0 version: 2.35.0(vue@3.3.4) @@ -3006,6 +3012,10 @@ packages: resolution: {integrity: sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==} dev: true + /@types/morsee@1.0.2: + resolution: {integrity: sha512-WANv1kCyQtmGZTiov9FzFdt1X4wRtXYZA6B4YR3CghKgx4ychU7d1gkOx7oD+ddVGI+SWmWOPccco7pAc6wXeA==} + dev: false + /@types/netmask@2.0.0: resolution: {integrity: sha512-6LjGn0BPF0gOHGuRuJ0hGfdBJLz/9K8Ikz+oRThTNc2w7CGLvwqdjAP7/CydsUeL4cxBBXAHLFfC9bMs74757Q==} dev: true @@ -3374,7 +3384,7 @@ packages: dependencies: '@unhead/dom': 0.5.1 '@unhead/schema': 0.5.1 - '@vueuse/shared': 10.6.1(vue@3.3.4) + '@vueuse/shared': 10.9.0(vue@3.3.4) unhead: 0.5.1 vue: 3.3.4 transitivePeerDependencies: @@ -4016,10 +4026,10 @@ packages: - vue dev: false - /@vueuse/shared@10.6.1(vue@3.3.4): - resolution: {integrity: sha512-TECVDTIedFlL0NUfHWncf3zF9Gc4VfdxfQc8JFwoVZQmxpONhLxFrlm0eHQeidHj4rdTPL3KXJa0TZCk1wnc5Q==} + /@vueuse/shared@10.9.0(vue@3.3.4): + resolution: {integrity: sha512-Uud2IWncmAfJvRaFYzv5OHDli+FbOzxiVEQdLCKQKLyhz94PIyFC3CHcH7EDMwIn8NPtD06+PNbC/PiO0LGLtw==} dependencies: - vue-demi: 0.14.6(vue@3.3.4) + vue-demi: 0.14.7(vue@3.3.4) transitivePeerDependencies: - '@vue/composition-api' - vue @@ -6977,6 +6987,10 @@ packages: resolution: {integrity: sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q==} dev: false + /morsee@1.0.9: + resolution: {integrity: sha512-8X8jKVUmZBHKpET9Ap6FPiwlAAASvv60M1K25/YwCU7veuj5MfYgaWX3oEPHtMGgC44IIkIKzyD73fduEKB/9g==} + dev: false + /mrmime@1.0.1: resolution: {integrity: sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==} engines: {node: '>=10'} @@ -9200,8 +9214,8 @@ packages: vue: 3.3.4 dev: false - /vue-demi@0.14.6(vue@3.3.4): - resolution: {integrity: sha512-8QA7wrYSHKaYgUxDA5ZC24w+eHm3sYCbp0EzcDwKqN3p6HqtTCGR/GVsPyZW92unff4UlcSh++lmqDWN3ZIq4w==} + /vue-demi@0.14.7(vue@3.3.4): + resolution: {integrity: sha512-EOG8KXDQNwkJILkx/gPcoL/7vH+hORoBaKgGe+6W7VFMvCYJfmF2dGbvgDroVnI8LU7/kTu8mbjRZGBU1z9NTA==} engines: {node: '>=12'} hasBin: true requiresBuild: true @@ -9497,6 +9511,7 @@ packages: /workbox-google-analytics@7.0.0: resolution: {integrity: sha512-MEYM1JTn/qiC3DbpvP2BVhyIH+dV/5BjHk756u9VbwuAhu0QHyKscTnisQuz21lfRpOwiS9z4XdqeVAKol0bzg==} + deprecated: It is not compatible with newer versions of GA starting with v4, as long as you are using GAv3 it should be ok, but the package is not longer being maintained dependencies: workbox-background-sync: 7.0.0 workbox-core: 7.0.0 diff --git a/src/tools/index.ts b/src/tools/index.ts index 52bdf8e3..52dbadf4 100644 --- a/src/tools/index.ts +++ b/src/tools/index.ts @@ -1,6 +1,7 @@ import { tool as base64FileConverter } from './base64-file-converter'; import { tool as base64StringConverter } from './base64-string-converter'; import { tool as basicAuthGenerator } from './basic-auth-generator'; +import { tool as morseConverter } from './morse-converter'; import { tool as pdfSignatureChecker } from './pdf-signature-checker'; import { tool as numeronymGenerator } from './numeronym-generator'; import { tool as macAddressGenerator } from './mac-address-generator'; @@ -100,6 +101,7 @@ export const toolsByCategory: ToolCategory[] = [ listConverter, tomlToJson, tomlToYaml, + morseConverter, ], }, { diff --git a/src/tools/morse-converter/index.ts b/src/tools/morse-converter/index.ts new file mode 100644 index 00000000..70303301 --- /dev/null +++ b/src/tools/morse-converter/index.ts @@ -0,0 +1,12 @@ +import { ArrowsShuffle } from '@vicons/tabler'; +import { defineTool } from '../tool'; + +export const tool = defineTool({ + name: 'Morse Code Converter', + path: '/morse-converter', + description: 'Encode/Decode to Morse code', + keywords: ['morse', 'converter'], + component: () => import('./morse-converter.vue'), + icon: ArrowsShuffle, + createdAt: new Date('2024-04-20'), +}); diff --git a/src/tools/morse-converter/morse-converter.vue b/src/tools/morse-converter/morse-converter.vue new file mode 100644 index 00000000..3e2a3e55 --- /dev/null +++ b/src/tools/morse-converter/morse-converter.vue @@ -0,0 +1,56 @@ + + +