diff --git a/package.json b/package.json index 63e5856a5..4e7a9b2d1 100644 --- a/package.json +++ b/package.json @@ -41,8 +41,10 @@ "@tiptap/pm": "2.1.6", "@tiptap/starter-kit": "2.1.6", "@tiptap/vue-3": "2.0.3", - "@types/markdown-it": "^13.0.7", "@types/figlet": "^1.5.8", + "@types/markdown-it": "^13.0.7", + "@types/utf8": "^3.0.3", + "@unicode/unicode-15.1.0": "^1.6.0", "@vicons/material": "^0.12.0", "@vicons/tabler": "^0.12.0", "@vueuse/core": "^10.3.0", @@ -89,6 +91,7 @@ "ulid": "^2.3.0", "unicode-emoji-json": "^0.4.0", "unplugin-auto-import": "^0.16.4", + "utf8": "^3.0.0", "uuid": "^9.0.0", "vue": "^3.3.4", "vue-i18n": "^9.9.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2311f3aff..688b93622 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -29,6 +29,12 @@ dependencies: '@types/markdown-it': specifier: ^13.0.7 version: 13.0.9 + '@types/utf8': + specifier: ^3.0.3 + version: 3.0.3 + '@unicode/unicode-15.1.0': + specifier: ^1.6.0 + version: 1.6.0 '@vicons/material': specifier: ^0.12.0 version: 0.12.0 @@ -167,6 +173,9 @@ dependencies: unplugin-auto-import: specifier: ^0.16.4 version: 0.16.4(@vueuse/core@10.3.0)(rollup@2.79.1) + utf8: + specifier: ^3.0.0 + version: 3.0.0 uuid: specifier: ^9.0.0 version: 9.0.0 @@ -3079,6 +3088,10 @@ packages: resolution: {integrity: sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==} dev: true + /@types/utf8@3.0.3: + resolution: {integrity: sha512-+lqLGxWZsEe4Z6OrzBI7Ym4SMUTaMS5yOrHZ0/IL0bpIye1Qbs4PpobJL2mLDbftUXlPFZR7fu6d1yM+bHLX1w==} + dev: false + /@types/uuid@9.0.0: resolution: {integrity: sha512-kr90f+ERiQtKWMz5rP32ltJ/BtULDI5RVO0uavn1HQUOwjx0R1h0rnDYNL0CepF1zL5bSY6FISAfd9tOdDhU5Q==} dev: true @@ -3378,6 +3391,10 @@ packages: - '@vue/composition-api' dev: false + /@unicode/unicode-15.1.0@1.6.0: + resolution: {integrity: sha512-qGpWJwJ7AtqRrQBjoy4RAuoXlHuQIFcUCXXd4Mh7lcx9B2pVcMZp2eO2G70WydzLsZks/7D27sH30RK7fAnaag==} + dev: false + /@unocss/astro@0.57.1(rollup@2.79.1)(vite@4.4.9): resolution: {integrity: sha512-KNaqN/SGM/uz1QitajIkzNEw0jy9Zx9Wp8fl4GhfGYEMAN2+M4cuvBZRmlb6cLctSXmSAJQDG91ivbD1JijGnw==} peerDependencies: @@ -8986,6 +9003,10 @@ packages: requires-port: 1.0.0 dev: true + /utf8@3.0.0: + resolution: {integrity: sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ==} + dev: false + /util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} dev: true diff --git a/src/tools/index.ts b/src/tools/index.ts index c9003fe81..c5d997cca 100644 --- a/src/tools/index.ts +++ b/src/tools/index.ts @@ -2,6 +2,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 emailNormalizer } from './email-normalizer'; +import { tool as unicodeSearch } from './unicode-search'; import { tool as asciiTextDrawer } from './ascii-text-drawer'; @@ -135,6 +136,7 @@ export const toolsByCategory: ToolCategory[] = [ httpStatusCodes, jsonDiff, safelinkDecoder, + unicodeSearch, ], }, { diff --git a/src/tools/unicode-search/index.ts b/src/tools/unicode-search/index.ts new file mode 100644 index 000000000..b416b4fbd --- /dev/null +++ b/src/tools/unicode-search/index.ts @@ -0,0 +1,12 @@ +import { FileText } from '@vicons/tabler'; +import { defineTool } from '../tool'; + +export const tool = defineTool({ + name: 'Unicode Search', + path: '/unicode-search', + description: 'Search in Unicode Characters', + keywords: ['unicode', 'search'], + component: () => import('./unicode-search.vue'), + icon: FileText, + createdAt: new Date('2024-08-15'), +}); diff --git a/src/tools/unicode-search/unicode-search.vue b/src/tools/unicode-search/unicode-search.vue new file mode 100644 index 000000000..b0942b734 --- /dev/null +++ b/src/tools/unicode-search/unicode-search.vue @@ -0,0 +1,122 @@ + + + diff --git a/src/tools/unicode-search/unicode.d.ts b/src/tools/unicode-search/unicode.d.ts new file mode 100644 index 000000000..b53caff7a --- /dev/null +++ b/src/tools/unicode-search/unicode.d.ts @@ -0,0 +1,9 @@ +declare module '@unicode/unicode-15.1.0/Names/index.js'{ + const unicode: HashSet; + export default unicode; +} + +declare module '@unicode/unicode-15.1.0/General_Category'{ + const unicode: HashSet; + export default unicode; +} \ No newline at end of file