Compare commits
	
		
			2 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | 0fd99deca9 | ||
|  | f7a1383da5 | 
| @ -136,7 +136,6 @@ | |||||||
|     "useDeviceOrientation": true, |     "useDeviceOrientation": true, | ||||||
|     "useDevicePixelRatio": true, |     "useDevicePixelRatio": true, | ||||||
|     "useDevicesList": true, |     "useDevicesList": true, | ||||||
|     "useDialog": true, |  | ||||||
|     "useDisplayMedia": true, |     "useDisplayMedia": true, | ||||||
|     "useDocumentVisibility": true, |     "useDocumentVisibility": true, | ||||||
|     "useDraggable": true, |     "useDraggable": true, | ||||||
| @ -169,7 +168,6 @@ | |||||||
|     "useKeyModifier": true, |     "useKeyModifier": true, | ||||||
|     "useLastChanged": true, |     "useLastChanged": true, | ||||||
|     "useLink": true, |     "useLink": true, | ||||||
|     "useLoadingBar": true, |  | ||||||
|     "useLocalStorage": true, |     "useLocalStorage": true, | ||||||
|     "useMagicKeys": true, |     "useMagicKeys": true, | ||||||
|     "useManualRefHistory": true, |     "useManualRefHistory": true, | ||||||
| @ -177,7 +175,6 @@ | |||||||
|     "useMediaQuery": true, |     "useMediaQuery": true, | ||||||
|     "useMemoize": true, |     "useMemoize": true, | ||||||
|     "useMemory": true, |     "useMemory": true, | ||||||
|     "useMessage": true, |  | ||||||
|     "useMounted": true, |     "useMounted": true, | ||||||
|     "useMouse": true, |     "useMouse": true, | ||||||
|     "useMouseInElement": true, |     "useMouseInElement": true, | ||||||
| @ -185,7 +182,6 @@ | |||||||
|     "useMutationObserver": true, |     "useMutationObserver": true, | ||||||
|     "useNavigatorLanguage": true, |     "useNavigatorLanguage": true, | ||||||
|     "useNetwork": true, |     "useNetwork": true, | ||||||
|     "useNotification": true, |  | ||||||
|     "useNow": true, |     "useNow": true, | ||||||
|     "useObjectUrl": true, |     "useObjectUrl": true, | ||||||
|     "useOffsetPagination": true, |     "useOffsetPagination": true, | ||||||
|  | |||||||
							
								
								
									
										2
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @ -31,3 +31,5 @@ coverage | |||||||
| /test-results/ | /test-results/ | ||||||
| /playwright-report/ | /playwright-report/ | ||||||
| /playwright/.cache/ | /playwright/.cache/ | ||||||
|  | 
 | ||||||
|  | .vite-ssg-temp | ||||||
							
								
								
									
										8
									
								
								auto-imports.d.ts
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								auto-imports.d.ts
									
									
									
									
										vendored
									
									
								
							| @ -133,7 +133,6 @@ declare global { | |||||||
|   const useDeviceOrientation: typeof import('@vueuse/core')['useDeviceOrientation'] |   const useDeviceOrientation: typeof import('@vueuse/core')['useDeviceOrientation'] | ||||||
|   const useDevicePixelRatio: typeof import('@vueuse/core')['useDevicePixelRatio'] |   const useDevicePixelRatio: typeof import('@vueuse/core')['useDevicePixelRatio'] | ||||||
|   const useDevicesList: typeof import('@vueuse/core')['useDevicesList'] |   const useDevicesList: typeof import('@vueuse/core')['useDevicesList'] | ||||||
|   const useDialog: typeof import('naive-ui')['useDialog'] |  | ||||||
|   const useDisplayMedia: typeof import('@vueuse/core')['useDisplayMedia'] |   const useDisplayMedia: typeof import('@vueuse/core')['useDisplayMedia'] | ||||||
|   const useDocumentVisibility: typeof import('@vueuse/core')['useDocumentVisibility'] |   const useDocumentVisibility: typeof import('@vueuse/core')['useDocumentVisibility'] | ||||||
|   const useDraggable: typeof import('@vueuse/core')['useDraggable'] |   const useDraggable: typeof import('@vueuse/core')['useDraggable'] | ||||||
| @ -166,7 +165,6 @@ declare global { | |||||||
|   const useKeyModifier: typeof import('@vueuse/core')['useKeyModifier'] |   const useKeyModifier: typeof import('@vueuse/core')['useKeyModifier'] | ||||||
|   const useLastChanged: typeof import('@vueuse/core')['useLastChanged'] |   const useLastChanged: typeof import('@vueuse/core')['useLastChanged'] | ||||||
|   const useLink: typeof import('vue-router')['useLink'] |   const useLink: typeof import('vue-router')['useLink'] | ||||||
|   const useLoadingBar: typeof import('naive-ui')['useLoadingBar'] |  | ||||||
|   const useLocalStorage: typeof import('@vueuse/core')['useLocalStorage'] |   const useLocalStorage: typeof import('@vueuse/core')['useLocalStorage'] | ||||||
|   const useMagicKeys: typeof import('@vueuse/core')['useMagicKeys'] |   const useMagicKeys: typeof import('@vueuse/core')['useMagicKeys'] | ||||||
|   const useManualRefHistory: typeof import('@vueuse/core')['useManualRefHistory'] |   const useManualRefHistory: typeof import('@vueuse/core')['useManualRefHistory'] | ||||||
| @ -174,7 +172,6 @@ declare global { | |||||||
|   const useMediaQuery: typeof import('@vueuse/core')['useMediaQuery'] |   const useMediaQuery: typeof import('@vueuse/core')['useMediaQuery'] | ||||||
|   const useMemoize: typeof import('@vueuse/core')['useMemoize'] |   const useMemoize: typeof import('@vueuse/core')['useMemoize'] | ||||||
|   const useMemory: typeof import('@vueuse/core')['useMemory'] |   const useMemory: typeof import('@vueuse/core')['useMemory'] | ||||||
|   const useMessage: typeof import('naive-ui')['useMessage'] |  | ||||||
|   const useMounted: typeof import('@vueuse/core')['useMounted'] |   const useMounted: typeof import('@vueuse/core')['useMounted'] | ||||||
|   const useMouse: typeof import('@vueuse/core')['useMouse'] |   const useMouse: typeof import('@vueuse/core')['useMouse'] | ||||||
|   const useMouseInElement: typeof import('@vueuse/core')['useMouseInElement'] |   const useMouseInElement: typeof import('@vueuse/core')['useMouseInElement'] | ||||||
| @ -182,7 +179,6 @@ declare global { | |||||||
|   const useMutationObserver: typeof import('@vueuse/core')['useMutationObserver'] |   const useMutationObserver: typeof import('@vueuse/core')['useMutationObserver'] | ||||||
|   const useNavigatorLanguage: typeof import('@vueuse/core')['useNavigatorLanguage'] |   const useNavigatorLanguage: typeof import('@vueuse/core')['useNavigatorLanguage'] | ||||||
|   const useNetwork: typeof import('@vueuse/core')['useNetwork'] |   const useNetwork: typeof import('@vueuse/core')['useNetwork'] | ||||||
|   const useNotification: typeof import('naive-ui')['useNotification'] |  | ||||||
|   const useNow: typeof import('@vueuse/core')['useNow'] |   const useNow: typeof import('@vueuse/core')['useNow'] | ||||||
|   const useObjectUrl: typeof import('@vueuse/core')['useObjectUrl'] |   const useObjectUrl: typeof import('@vueuse/core')['useObjectUrl'] | ||||||
|   const useOffsetPagination: typeof import('@vueuse/core')['useOffsetPagination'] |   const useOffsetPagination: typeof import('@vueuse/core')['useOffsetPagination'] | ||||||
| @ -396,7 +392,6 @@ declare module 'vue' { | |||||||
|     readonly useDeviceOrientation: UnwrapRef<typeof import('@vueuse/core')['useDeviceOrientation']> |     readonly useDeviceOrientation: UnwrapRef<typeof import('@vueuse/core')['useDeviceOrientation']> | ||||||
|     readonly useDevicePixelRatio: UnwrapRef<typeof import('@vueuse/core')['useDevicePixelRatio']> |     readonly useDevicePixelRatio: UnwrapRef<typeof import('@vueuse/core')['useDevicePixelRatio']> | ||||||
|     readonly useDevicesList: UnwrapRef<typeof import('@vueuse/core')['useDevicesList']> |     readonly useDevicesList: UnwrapRef<typeof import('@vueuse/core')['useDevicesList']> | ||||||
|     readonly useDialog: UnwrapRef<typeof import('naive-ui')['useDialog']> |  | ||||||
|     readonly useDisplayMedia: UnwrapRef<typeof import('@vueuse/core')['useDisplayMedia']> |     readonly useDisplayMedia: UnwrapRef<typeof import('@vueuse/core')['useDisplayMedia']> | ||||||
|     readonly useDocumentVisibility: UnwrapRef<typeof import('@vueuse/core')['useDocumentVisibility']> |     readonly useDocumentVisibility: UnwrapRef<typeof import('@vueuse/core')['useDocumentVisibility']> | ||||||
|     readonly useDraggable: UnwrapRef<typeof import('@vueuse/core')['useDraggable']> |     readonly useDraggable: UnwrapRef<typeof import('@vueuse/core')['useDraggable']> | ||||||
| @ -429,7 +424,6 @@ declare module 'vue' { | |||||||
|     readonly useKeyModifier: UnwrapRef<typeof import('@vueuse/core')['useKeyModifier']> |     readonly useKeyModifier: UnwrapRef<typeof import('@vueuse/core')['useKeyModifier']> | ||||||
|     readonly useLastChanged: UnwrapRef<typeof import('@vueuse/core')['useLastChanged']> |     readonly useLastChanged: UnwrapRef<typeof import('@vueuse/core')['useLastChanged']> | ||||||
|     readonly useLink: UnwrapRef<typeof import('vue-router')['useLink']> |     readonly useLink: UnwrapRef<typeof import('vue-router')['useLink']> | ||||||
|     readonly useLoadingBar: UnwrapRef<typeof import('naive-ui')['useLoadingBar']> |  | ||||||
|     readonly useLocalStorage: UnwrapRef<typeof import('@vueuse/core')['useLocalStorage']> |     readonly useLocalStorage: UnwrapRef<typeof import('@vueuse/core')['useLocalStorage']> | ||||||
|     readonly useMagicKeys: UnwrapRef<typeof import('@vueuse/core')['useMagicKeys']> |     readonly useMagicKeys: UnwrapRef<typeof import('@vueuse/core')['useMagicKeys']> | ||||||
|     readonly useManualRefHistory: UnwrapRef<typeof import('@vueuse/core')['useManualRefHistory']> |     readonly useManualRefHistory: UnwrapRef<typeof import('@vueuse/core')['useManualRefHistory']> | ||||||
| @ -437,7 +431,6 @@ declare module 'vue' { | |||||||
|     readonly useMediaQuery: UnwrapRef<typeof import('@vueuse/core')['useMediaQuery']> |     readonly useMediaQuery: UnwrapRef<typeof import('@vueuse/core')['useMediaQuery']> | ||||||
|     readonly useMemoize: UnwrapRef<typeof import('@vueuse/core')['useMemoize']> |     readonly useMemoize: UnwrapRef<typeof import('@vueuse/core')['useMemoize']> | ||||||
|     readonly useMemory: UnwrapRef<typeof import('@vueuse/core')['useMemory']> |     readonly useMemory: UnwrapRef<typeof import('@vueuse/core')['useMemory']> | ||||||
|     readonly useMessage: UnwrapRef<typeof import('naive-ui')['useMessage']> |  | ||||||
|     readonly useMounted: UnwrapRef<typeof import('@vueuse/core')['useMounted']> |     readonly useMounted: UnwrapRef<typeof import('@vueuse/core')['useMounted']> | ||||||
|     readonly useMouse: UnwrapRef<typeof import('@vueuse/core')['useMouse']> |     readonly useMouse: UnwrapRef<typeof import('@vueuse/core')['useMouse']> | ||||||
|     readonly useMouseInElement: UnwrapRef<typeof import('@vueuse/core')['useMouseInElement']> |     readonly useMouseInElement: UnwrapRef<typeof import('@vueuse/core')['useMouseInElement']> | ||||||
| @ -445,7 +438,6 @@ declare module 'vue' { | |||||||
|     readonly useMutationObserver: UnwrapRef<typeof import('@vueuse/core')['useMutationObserver']> |     readonly useMutationObserver: UnwrapRef<typeof import('@vueuse/core')['useMutationObserver']> | ||||||
|     readonly useNavigatorLanguage: UnwrapRef<typeof import('@vueuse/core')['useNavigatorLanguage']> |     readonly useNavigatorLanguage: UnwrapRef<typeof import('@vueuse/core')['useNavigatorLanguage']> | ||||||
|     readonly useNetwork: UnwrapRef<typeof import('@vueuse/core')['useNetwork']> |     readonly useNetwork: UnwrapRef<typeof import('@vueuse/core')['useNetwork']> | ||||||
|     readonly useNotification: UnwrapRef<typeof import('naive-ui')['useNotification']> |  | ||||||
|     readonly useNow: UnwrapRef<typeof import('@vueuse/core')['useNow']> |     readonly useNow: UnwrapRef<typeof import('@vueuse/core')['useNow']> | ||||||
|     readonly useObjectUrl: UnwrapRef<typeof import('@vueuse/core')['useObjectUrl']> |     readonly useObjectUrl: UnwrapRef<typeof import('@vueuse/core')['useObjectUrl']> | ||||||
|     readonly useOffsetPagination: UnwrapRef<typeof import('@vueuse/core')['useOffsetPagination']> |     readonly useOffsetPagination: UnwrapRef<typeof import('@vueuse/core')['useOffsetPagination']> | ||||||
|  | |||||||
							
								
								
									
										34
									
								
								components.d.ts
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										34
									
								
								components.d.ts
									
									
									
									
										vendored
									
									
								
							| @ -16,53 +16,19 @@ declare module '@vue/runtime-core' { | |||||||
|     InputCopyable: typeof import('./src/components/InputCopyable.vue')['default'] |     InputCopyable: typeof import('./src/components/InputCopyable.vue')['default'] | ||||||
|     MenuIconItem: typeof import('./src/components/MenuIconItem.vue')['default'] |     MenuIconItem: typeof import('./src/components/MenuIconItem.vue')['default'] | ||||||
|     MenuLayout: typeof import('./src/components/MenuLayout.vue')['default'] |     MenuLayout: typeof import('./src/components/MenuLayout.vue')['default'] | ||||||
|     NAlert: typeof import('naive-ui')['NAlert'] |  | ||||||
|     NAutoComplete: typeof import('naive-ui')['NAutoComplete'] |  | ||||||
|     NavbarButtons: typeof import('./src/components/NavbarButtons.vue')['default'] |     NavbarButtons: typeof import('./src/components/NavbarButtons.vue')['default'] | ||||||
|     NButton: typeof import('naive-ui')['NButton'] |     NButton: typeof import('naive-ui')['NButton'] | ||||||
|     NCard: typeof import('naive-ui')['NCard'] |     NCard: typeof import('naive-ui')['NCard'] | ||||||
|     NCheckbox: typeof import('naive-ui')['NCheckbox'] |  | ||||||
|     NCode: typeof import('naive-ui')['NCode'] |  | ||||||
|     NCollapseTransition: typeof import('naive-ui')['NCollapseTransition'] |  | ||||||
|     NColorPicker: typeof import('naive-ui')['NColorPicker'] |  | ||||||
|     NConfigProvider: typeof import('naive-ui')['NConfigProvider'] |  | ||||||
|     NDatePicker: typeof import('naive-ui')['NDatePicker'] |  | ||||||
|     NDivider: typeof import('naive-ui')['NDivider'] |  | ||||||
|     NDynamicInput: typeof import('naive-ui')['NDynamicInput'] |  | ||||||
|     NEllipsis: typeof import('naive-ui')['NEllipsis'] |     NEllipsis: typeof import('naive-ui')['NEllipsis'] | ||||||
|     NForm: typeof import('naive-ui')['NForm'] |  | ||||||
|     NFormItem: typeof import('naive-ui')['NFormItem'] |  | ||||||
|     NGi: typeof import('naive-ui')['NGi'] |     NGi: typeof import('naive-ui')['NGi'] | ||||||
|     NGrid: typeof import('naive-ui')['NGrid'] |     NGrid: typeof import('naive-ui')['NGrid'] | ||||||
|     NH1: typeof import('naive-ui')['NH1'] |     NH1: typeof import('naive-ui')['NH1'] | ||||||
|     NH2: typeof import('naive-ui')['NH2'] |  | ||||||
|     NH3: typeof import('naive-ui')['NH3'] |     NH3: typeof import('naive-ui')['NH3'] | ||||||
|     NH4: typeof import('naive-ui')['NH4'] |  | ||||||
|     NIcon: typeof import('naive-ui')['NIcon'] |     NIcon: typeof import('naive-ui')['NIcon'] | ||||||
|     NImage: typeof import('naive-ui')['NImage'] |  | ||||||
|     NInput: typeof import('naive-ui')['NInput'] |  | ||||||
|     NInputGroup: typeof import('naive-ui')['NInputGroup'] |  | ||||||
|     NInputGroupLabel: typeof import('naive-ui')['NInputGroupLabel'] |  | ||||||
|     NInputNumber: typeof import('naive-ui')['NInputNumber'] |  | ||||||
|     NLayout: typeof import('naive-ui')['NLayout'] |  | ||||||
|     NLayoutSider: typeof import('naive-ui')['NLayoutSider'] |  | ||||||
|     NMenu: typeof import('naive-ui')['NMenu'] |  | ||||||
|     NP: typeof import('naive-ui')['NP'] |  | ||||||
|     NPageHeader: typeof import('naive-ui')['NPageHeader'] |  | ||||||
|     NProgress: typeof import('naive-ui')['NProgress'] |  | ||||||
|     NResult: typeof import('naive-ui')['NResult'] |  | ||||||
|     NScrollbar: typeof import('naive-ui')['NScrollbar'] |  | ||||||
|     NSelect: typeof import('naive-ui')['NSelect'] |  | ||||||
|     NSlider: typeof import('naive-ui')['NSlider'] |  | ||||||
|     NSpace: typeof import('naive-ui')['NSpace'] |     NSpace: typeof import('naive-ui')['NSpace'] | ||||||
|     NStatistic: typeof import('naive-ui')['NStatistic'] |  | ||||||
|     NSwitch: typeof import('naive-ui')['NSwitch'] |  | ||||||
|     NTable: typeof import('naive-ui')['NTable'] |  | ||||||
|     NTag: typeof import('naive-ui')['NTag'] |     NTag: typeof import('naive-ui')['NTag'] | ||||||
|     NText: typeof import('naive-ui')['NText'] |     NText: typeof import('naive-ui')['NText'] | ||||||
|     NTooltip: typeof import('naive-ui')['NTooltip'] |     NTooltip: typeof import('naive-ui')['NTooltip'] | ||||||
|     NUpload: typeof import('naive-ui')['NUpload'] |  | ||||||
|     NUploadDragger: typeof import('naive-ui')['NUploadDragger'] |  | ||||||
|     RouterLink: typeof import('vue-router')['RouterLink'] |     RouterLink: typeof import('vue-router')['RouterLink'] | ||||||
|     RouterView: typeof import('vue-router')['RouterView'] |     RouterView: typeof import('vue-router')['RouterView'] | ||||||
|     SearchBar: typeof import('./src/components/SearchBar.vue')['default'] |     SearchBar: typeof import('./src/components/SearchBar.vue')['default'] | ||||||
|  | |||||||
							
								
								
									
										26
									
								
								package.json
									
									
									
									
									
								
							
							
						
						
									
										26
									
								
								package.json
									
									
									
									
									
								
							| @ -2,6 +2,7 @@ | |||||||
|   "name": "it-tools", |   "name": "it-tools", | ||||||
|   "version": "2023.4.14-dbad773", |   "version": "2023.4.14-dbad773", | ||||||
|   "description": "Collection of handy online tools for developers, with great UX. ", |   "description": "Collection of handy online tools for developers, with great UX. ", | ||||||
|  |   "type": "module", | ||||||
|   "keywords": [ |   "keywords": [ | ||||||
|     "productivity", |     "productivity", | ||||||
|     "converter", |     "converter", | ||||||
| @ -21,7 +22,7 @@ | |||||||
|   }, |   }, | ||||||
|   "scripts": { |   "scripts": { | ||||||
|     "dev": "vite", |     "dev": "vite", | ||||||
|     "build": "vue-tsc --noEmit && vite build", |     "build": "vue-tsc --noEmit && vite-ssg build", | ||||||
|     "preview": "vite preview --port 5050", |     "preview": "vite preview --port 5050", | ||||||
|     "test": "npm run test:unit", |     "test": "npm run test:unit", | ||||||
|     "test:unit": "vitest --environment jsdom", |     "test:unit": "vitest --environment jsdom", | ||||||
| @ -42,7 +43,6 @@ | |||||||
|     "@vicons/material": "^0.12.0", |     "@vicons/material": "^0.12.0", | ||||||
|     "@vicons/tabler": "^0.12.0", |     "@vicons/tabler": "^0.12.0", | ||||||
|     "@vueuse/core": "^8.9.4", |     "@vueuse/core": "^8.9.4", | ||||||
|     "@vueuse/head": "^0.7.13", |  | ||||||
|     "@vueuse/router": "^9.13.0", |     "@vueuse/router": "^9.13.0", | ||||||
|     "bcryptjs": "^2.4.3", |     "bcryptjs": "^2.4.3", | ||||||
|     "change-case": "^4.1.2", |     "change-case": "^4.1.2", | ||||||
| @ -73,7 +73,6 @@ | |||||||
|     "ua-parser-js": "^1.0.35", |     "ua-parser-js": "^1.0.35", | ||||||
|     "uuid": "^8.3.2", |     "uuid": "^8.3.2", | ||||||
|     "vue": "^3.2.47", |     "vue": "^3.2.47", | ||||||
|     "vue-router": "^4.1.6", |  | ||||||
|     "yaml": "^2.2.1" |     "yaml": "^2.2.1" | ||||||
|   }, |   }, | ||||||
|   "devDependencies": { |   "devDependencies": { | ||||||
| @ -82,7 +81,7 @@ | |||||||
|     "@types/bcryptjs": "^2.4.2", |     "@types/bcryptjs": "^2.4.2", | ||||||
|     "@types/crypto-js": "^4.1.1", |     "@types/crypto-js": "^4.1.1", | ||||||
|     "@types/jsdom": "^16.2.15", |     "@types/jsdom": "^16.2.15", | ||||||
|     "@types/lodash": "^4.14.192", |     "@types/lodash": "^4.14.194", | ||||||
|     "@types/mime-types": "^2.1.1", |     "@types/mime-types": "^2.1.1", | ||||||
|     "@types/netmask": "^2.0.0", |     "@types/netmask": "^2.0.0", | ||||||
|     "@types/node": "^16.18.23", |     "@types/node": "^16.18.23", | ||||||
| @ -94,12 +93,13 @@ | |||||||
|     "@types/uuid": "^8.3.4", |     "@types/uuid": "^8.3.4", | ||||||
|     "@typescript-eslint/parser": "^5.58.0", |     "@typescript-eslint/parser": "^5.58.0", | ||||||
|     "@unocss/eslint-config": "^0.50.8", |     "@unocss/eslint-config": "^0.50.8", | ||||||
|     "@vitejs/plugin-vue": "^2.3.4", |     "@vitejs/plugin-vue": "^4.1.0", | ||||||
|     "@vitejs/plugin-vue-jsx": "^1.3.10", |     "@vitejs/plugin-vue-jsx": "^1.3.10", | ||||||
|     "@vue/eslint-config-prettier": "^7.1.0", |     "@vue/eslint-config-prettier": "^7.1.0", | ||||||
|     "@vue/eslint-config-typescript": "^10.0.0", |     "@vue/eslint-config-typescript": "^10.0.0", | ||||||
|     "@vue/test-utils": "^2.3.2", |     "@vue/test-utils": "^2.3.2", | ||||||
|     "@vue/tsconfig": "^0.1.3", |     "@vue/tsconfig": "^0.1.3", | ||||||
|  |     "@vueuse/head": "^1.1.23", | ||||||
|     "c8": "^7.13.0", |     "c8": "^7.13.0", | ||||||
|     "consola": "^3.0.2", |     "consola": "^3.0.2", | ||||||
|     "eslint": "^8.38.0", |     "eslint": "^8.38.0", | ||||||
| @ -111,16 +111,18 @@ | |||||||
|     "less": "^4.1.3", |     "less": "^4.1.3", | ||||||
|     "prettier": "^2.8.7", |     "prettier": "^2.8.7", | ||||||
|     "start-server-and-test": "^1.15.4", |     "start-server-and-test": "^1.15.4", | ||||||
|     "typescript": "~4.5.5", |     "typescript": "~4.9.5", | ||||||
|     "unocss": "^0.50.8", |     "unocss": "^0.50.8", | ||||||
|     "unplugin-auto-import": "^0.15.2", |     "unplugin-auto-import": "^0.15.3", | ||||||
|     "unplugin-vue-components": "^0.24.1", |     "unplugin-vue-components": "^0.24.1", | ||||||
|     "vite": "^2.9.15", |     "vite": "^4.2.1", | ||||||
|     "vite-plugin-md": "^0.12.4", |     "vite-plugin-md": "^0.21.5", | ||||||
|     "vite-plugin-pwa": "^0.11.13", |     "vite-plugin-pwa": "^0.14.7", | ||||||
|  |     "vite-ssg": "^0.22.2", | ||||||
|     "vite-svg-loader": "^3.6.0", |     "vite-svg-loader": "^3.6.0", | ||||||
|     "vitest": "^0.13.1", |     "vitest": "^0.30.1", | ||||||
|     "vue-tsc": "^0.31.4", |     "vue-router": "^4.1.6", | ||||||
|  |     "vue-tsc": "^1.2.0", | ||||||
|     "workbox-window": "^6.5.4", |     "workbox-window": "^6.5.4", | ||||||
|     "zx": "^7.2.1" |     "zx": "^7.2.1" | ||||||
|   } |   } | ||||||
|  | |||||||
							
								
								
									
										2258
									
								
								pnpm-lock.yaml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										2258
									
								
								pnpm-lock.yaml
									
									
									
										generated
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										32
									
								
								src/App.vue
									
									
									
									
									
								
							
							
						
						
									
										32
									
								
								src/App.vue
									
									
									
									
									
								
							| @ -1,30 +1,30 @@ | |||||||
| <script setup lang="ts"> | <script setup lang="ts"> | ||||||
| import { computed } from 'vue'; | // import { computed } from 'vue'; | ||||||
| import { useRoute, RouterView } from 'vue-router'; | // import { darkTheme, NGlobalStyle, NMessageProvider, NNotificationProvider } from 'naive-ui'; | ||||||
| import { darkTheme, NGlobalStyle, NMessageProvider, NNotificationProvider } from 'naive-ui'; | // import { useRoute, RouterView } from 'vue-router'; | ||||||
| import { darkThemeOverrides, lightThemeOverrides } from './themes'; | // import { darkThemeOverrides, lightThemeOverrides } from './themes'; | ||||||
| import { layouts } from './layouts'; | // import { layouts } from './layouts'; | ||||||
| import { useStyleStore } from './stores/style.store'; | // import { useStyleStore } from './stores/style.store'; | ||||||
| 
 | 
 | ||||||
| const route = useRoute(); | // const route = useRoute(); | ||||||
| const layout = computed(() => route?.meta?.layout ?? layouts.base); | // const layout = computed(() => route?.meta?.layout ?? layouts.base); | ||||||
| const styleStore = useStyleStore(); | // const styleStore = useStyleStore(); | ||||||
| 
 | 
 | ||||||
| const theme = computed(() => (styleStore.isDarkTheme ? darkTheme : null)); | // const theme = computed(() => (styleStore.isDarkTheme ? darkTheme : null)); | ||||||
| const themeOverrides = computed(() => (styleStore.isDarkTheme ? darkThemeOverrides : lightThemeOverrides)); | // const themeOverrides = computed(() => (styleStore.isDarkTheme ? darkThemeOverrides : lightThemeOverrides)); | ||||||
| </script> | </script> | ||||||
| 
 | 
 | ||||||
| <template> | <template> | ||||||
|   <n-config-provider :theme="theme" :theme-overrides="themeOverrides"> |   <!-- <n-config-provider :theme="theme" :theme-overrides="themeOverrides"> | ||||||
|     <n-global-style /> |     <n-global-style /> | ||||||
|     <n-message-provider placement="bottom"> |     <n-message-provider placement="bottom"> | ||||||
|       <n-notification-provider placement="bottom-right"> |       <n-notification-provider placement="bottom-right"> | ||||||
|         <component :is="layout"> |         <component :is="layout"> --> | ||||||
|           <router-view /> |   <router-view /> | ||||||
|         </component> |   <!-- </component> | ||||||
|       </n-notification-provider> |       </n-notification-provider> | ||||||
|     </n-message-provider> |     </n-message-provider> | ||||||
|   </n-config-provider> |   </n-config-provider> --> | ||||||
| </template> | </template> | ||||||
| 
 | 
 | ||||||
| <style> | <style> | ||||||
|  | |||||||
| @ -14,7 +14,6 @@ | |||||||
| 
 | 
 | ||||||
|         <n-menu |         <n-menu | ||||||
|           class="menu" |           class="menu" | ||||||
|           :value="(route.name as string)" |  | ||||||
|           :collapsed-width="64" |           :collapsed-width="64" | ||||||
|           :collapsed-icon-size="22" |           :collapsed-icon-size="22" | ||||||
|           :options="tools" |           :options="tools" | ||||||
| @ -32,7 +31,7 @@ import { ChevronRight } from '@vicons/tabler'; | |||||||
| import { useStorage } from '@vueuse/core'; | import { useStorage } from '@vueuse/core'; | ||||||
| import { useThemeVars } from 'naive-ui'; | import { useThemeVars } from 'naive-ui'; | ||||||
| import { toRefs, computed, h } from 'vue'; | import { toRefs, computed, h } from 'vue'; | ||||||
| import { RouterLink, useRoute } from 'vue-router'; | import { RouterLink } from 'vue-router'; | ||||||
| import MenuIconItem from './MenuIconItem.vue'; | import MenuIconItem from './MenuIconItem.vue'; | ||||||
| 
 | 
 | ||||||
| const props = withDefaults(defineProps<{ toolsByCategory?: ToolCategory[] }>(), { toolsByCategory: () => [] }); | const props = withDefaults(defineProps<{ toolsByCategory?: ToolCategory[] }>(), { toolsByCategory: () => [] }); | ||||||
|  | |||||||
| @ -6,12 +6,12 @@ | |||||||
|     <n-h3 class="title"> |     <n-h3 class="title"> | ||||||
|       <n-ellipsis>{{ title }}</n-ellipsis> |       <n-ellipsis>{{ title }}</n-ellipsis> | ||||||
|     </n-h3> |     </n-h3> | ||||||
| 
 |     <!--  | ||||||
|     <div class="description"> |     <div class="description"> | ||||||
|       <n-ellipsis :line-clamp="2" :tooltip="false"> |       <n-ellipsis :line-clamp="2" :tooltip="false"> | ||||||
|         <slot /> |         <slot /> | ||||||
|       </n-ellipsis> |       </n-ellipsis> | ||||||
|     </div> |     </div> --> | ||||||
|   </n-card> |   </n-card> | ||||||
| </template> | </template> | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -7,7 +7,6 @@ import { SearchRound } from '@vicons/material'; | |||||||
| import { useMagicKeys, whenever } from '@vueuse/core'; | import { useMagicKeys, whenever } from '@vueuse/core'; | ||||||
| import type { NInput } from 'naive-ui'; | import type { NInput } from 'naive-ui'; | ||||||
| import { computed, h, ref } from 'vue'; | import { computed, h, ref } from 'vue'; | ||||||
| import { useRouter } from 'vue-router'; |  | ||||||
| import SearchBarItem from './SearchBarItem.vue'; | import SearchBarItem from './SearchBarItem.vue'; | ||||||
| 
 | 
 | ||||||
| const toolToOption = (tool: Tool) => ({ label: tool.name, value: tool.path, tool }); | const toolToOption = (tool: Tool) => ({ label: tool.name, value: tool.path, tool }); | ||||||
|  | |||||||
| @ -1,7 +1,6 @@ | |||||||
| <script lang="ts" setup> | <script lang="ts" setup> | ||||||
| import { NIcon, useThemeVars } from 'naive-ui'; | import { NIcon, useThemeVars } from 'naive-ui'; | ||||||
| import { computed } from 'vue'; | import { computed } from 'vue'; | ||||||
| import { RouterLink } from 'vue-router'; |  | ||||||
| import { Heart, Menu2, Home2 } from '@vicons/tabler'; | import { Heart, Menu2, Home2 } from '@vicons/tabler'; | ||||||
| import { toolsByCategory } from '@/tools'; | import { toolsByCategory } from '@/tools'; | ||||||
| import { useStyleStore } from '@/stores/style.store'; | import { useStyleStore } from '@/stores/style.store'; | ||||||
|  | |||||||
| @ -1,5 +1,4 @@ | |||||||
| <script lang="ts" setup> | <script lang="ts" setup> | ||||||
| import { useRoute } from 'vue-router'; |  | ||||||
| import { useHead } from '@vueuse/head'; | import { useHead } from '@vueuse/head'; | ||||||
| import type { HeadObject } from '@vueuse/head'; | import type { HeadObject } from '@vueuse/head'; | ||||||
| import { computed } from 'vue'; | import { computed } from 'vue'; | ||||||
|  | |||||||
							
								
								
									
										35
									
								
								src/main.ts
									
									
									
									
									
								
							
							
						
						
									
										35
									
								
								src/main.ts
									
									
									
									
									
								
							| @ -1,25 +1,30 @@ | |||||||
| import { createApp } from 'vue'; |  | ||||||
| import { createPinia } from 'pinia'; | import { createPinia } from 'pinia'; | ||||||
| import { createHead } from '@vueuse/head'; |  | ||||||
| // eslint-disable-next-line import/no-unresolved
 | // eslint-disable-next-line import/no-unresolved
 | ||||||
| import { registerSW } from 'virtual:pwa-register'; | import { ViteSSG } from 'vite-ssg'; | ||||||
| import { plausible } from './plugins/plausible.plugin'; | import { plausible } from './plugins/plausible.plugin'; | ||||||
| 
 | 
 | ||||||
| import 'virtual:uno.css'; | import 'virtual:uno.css'; | ||||||
| 
 | 
 | ||||||
| registerSW(); | // import { naive } from './plugins/naive.plugin';
 | ||||||
| 
 |  | ||||||
| import { naive } from './plugins/naive.plugin'; |  | ||||||
| 
 | 
 | ||||||
| import App from './App.vue'; | import App from './App.vue'; | ||||||
| import router from './router'; | import { routes } from './router'; | ||||||
|  | import { config } from './config'; | ||||||
|  | // import { useToolStore } from './tools/tools.store';
 | ||||||
| 
 | 
 | ||||||
| const app = createApp(App); | export const createApp = ViteSSG( | ||||||
|  |   // the root component
 | ||||||
|  |   App, | ||||||
|  |   // vue-router options
 | ||||||
|  |   { routes, base: config.app.baseUrl }, | ||||||
|  |   // function to have custom setups
 | ||||||
|  |   async ({ app, router, routes, isClient, initialState }) => { | ||||||
|  |     // install plugins etc.
 | ||||||
|  |     const pinia = createPinia(); | ||||||
|  |     app.use(pinia); | ||||||
| 
 | 
 | ||||||
| app.use(createPinia()); |     app.use(plausible); | ||||||
| app.use(createHead()); |     // import { registerSW } from 'virtual:pwa-register';
 | ||||||
| app.use(router); |     // registerSW();
 | ||||||
| app.use(naive); |   }, | ||||||
| app.use(plausible); | ); | ||||||
| 
 |  | ||||||
| app.mount('#app'); |  | ||||||
|  | |||||||
| @ -12,6 +12,38 @@ useHead({ title: 'IT Tools - Handy online tools for developers' }); | |||||||
| </script> | </script> | ||||||
| 
 | 
 | ||||||
| <template> | <template> | ||||||
|  |   Lorem ipsum dolor sit amet, consectetur adipisicing elit. Earum voluptatibus, voluptatum excepturi quidem ipsam | ||||||
|  |   dignissimos sit eius illo corrupti, provident aliquam quaerat nostrum obcaecati velit ratione neque possimus beatae | ||||||
|  |   quod? | ||||||
|  | 
 | ||||||
|  |   <n-grid v-if="config.showBanner" x-gap="12" y-gap="12" cols="1 400:2 800:3 1200:4 2000:8"> | ||||||
|  |     <n-gi> | ||||||
|  |       aa | ||||||
|  |       <colored-card title="You like it-tools?" :icon="Heart"> | ||||||
|  |         Give us a star on | ||||||
|  |         <!-- <a | ||||||
|  |           href="https://github.com/CorentinTh/it-tools" | ||||||
|  |           rel="noopener" | ||||||
|  |           target="_blank" | ||||||
|  |           aria-label="IT-Tools' GitHub repository" | ||||||
|  |           >GitHub</a | ||||||
|  |         > | ||||||
|  |         or follow us on | ||||||
|  |         <a | ||||||
|  |           href="https://twitter.com/ittoolsdottech" | ||||||
|  |           rel="noopener" | ||||||
|  |           target="_blank" | ||||||
|  |           aria-label="IT-Tools' Twitter account" | ||||||
|  |           >Twitter</a | ||||||
|  |         >! Thank you | ||||||
|  |         <n-icon :component="Heart" /> --> | ||||||
|  |       </colored-card> | ||||||
|  |     </n-gi> | ||||||
|  |   </n-grid> | ||||||
|  | 
 | ||||||
|  |   <n-button>a</n-button> | ||||||
|  | 
 | ||||||
|  |   <!-- | ||||||
|   <div class="home-page"> |   <div class="home-page"> | ||||||
|     <div class="grid-wrapper"> |     <div class="grid-wrapper"> | ||||||
|       <n-grid v-if="config.showBanner" x-gap="12" y-gap="12" cols="1 400:2 800:3 1200:4 2000:8"> |       <n-grid v-if="config.showBanner" x-gap="12" y-gap="12" cols="1 400:2 800:3 1200:4 2000:8"> | ||||||
| @ -67,7 +99,7 @@ useHead({ title: 'IT Tools - Handy online tools for developers' }); | |||||||
|         </n-gi> |         </n-gi> | ||||||
|       </n-grid> |       </n-grid> | ||||||
|     </div> |     </div> | ||||||
|   </div> |   </div> --> | ||||||
| </template> | </template> | ||||||
| 
 | 
 | ||||||
| <style scoped lang="less"> | <style scoped lang="less"> | ||||||
|  | |||||||
| @ -21,7 +21,7 @@ function createPlausibleInstance({ | |||||||
|     trackLocalhost: boolean; |     trackLocalhost: boolean; | ||||||
|   }; |   }; | ||||||
| }) { | }) { | ||||||
|   if (config.isTrackerEnabled) { |   if (config.isTrackerEnabled && !import.meta.env.SSR) { | ||||||
|     return Plausible(config); |     return Plausible(config); | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -1,39 +1,38 @@ | |||||||
| import { createRouter, createWebHistory } from 'vue-router'; | import type { RouteRecordRaw } from 'vue-router'; | ||||||
| import { layouts } from './layouts/index'; |  | ||||||
| import HomePage from './pages/Home.page.vue'; | import HomePage from './pages/Home.page.vue'; | ||||||
|  | // import { layouts } from './layouts/index';
 | ||||||
| import NotFound from './pages/404.page.vue'; | import NotFound from './pages/404.page.vue'; | ||||||
| import { tools } from './tools'; | // import { tools } from './tools';
 | ||||||
| import { config } from './config'; |  | ||||||
| 
 | 
 | ||||||
| const toolsRoutes = tools.map(({ path, name, component, ...config }) => ({ | // const toolsRoutes = tools.map(({ path, name, component, ...config }) => ({
 | ||||||
|   path, | //   path,
 | ||||||
|   name, | //   name,
 | ||||||
|   component, | //   component,
 | ||||||
|   meta: { isTool: true, layout: layouts.toolLayout, name, ...config }, | //   meta: { isTool: true, layout: layouts.toolLayout, name, ...config },
 | ||||||
| })); | // }));
 | ||||||
| const toolsRedirectRoutes = tools | // const toolsRedirectRoutes = tools
 | ||||||
|   .filter(({ redirectFrom }) => redirectFrom && redirectFrom.length > 0) | //   .filter(({ redirectFrom }) => redirectFrom && redirectFrom.length > 0)
 | ||||||
|   .flatMap( | //   .flatMap(
 | ||||||
|     ({ path, redirectFrom }) => redirectFrom?.map((redirectSource) => ({ path: redirectSource, redirect: path })) ?? [], | //     ({ path, redirectFrom }) => redirectFrom?.map((redirectSource) => ({ path: redirectSource, redirect: path })) ?? [],
 | ||||||
|   ); | //   );
 | ||||||
|  | //
 | ||||||
|  | // console.log({ toolsRoutes, toolsRedirectRoutes });
 | ||||||
| 
 | 
 | ||||||
| const router = createRouter({ | const routes: RouteRecordRaw[] = [ | ||||||
|   history: createWebHistory(config.app.baseUrl), |   // ...toolsRoutes,
 | ||||||
|   routes: [ |   // ...toolsRedirectRoutes,
 | ||||||
|     { |   { | ||||||
|       path: '/', |     path: '/', | ||||||
|       name: 'home', |     name: 'home', | ||||||
|       component: HomePage, |     component: HomePage, | ||||||
|     }, |   }, | ||||||
|     { |   // {
 | ||||||
|       path: '/about', |   //   path: '/about',
 | ||||||
|       name: 'about', |   //   name: 'about',
 | ||||||
|       component: () => import('./pages/About.vue'), |   //   component: () => import('./pages/About.vue'),
 | ||||||
|     }, |   // },
 | ||||||
|     ...toolsRoutes, |  | ||||||
|     ...toolsRedirectRoutes, |  | ||||||
|     { path: '/:pathMatch(.*)*', name: 'NotFound', component: NotFound }, |  | ||||||
|   ], |  | ||||||
| }); |  | ||||||
| 
 | 
 | ||||||
| export default router; |   // { path: '/:pathMatch(.*)*', name: 'NotFound', component: NotFound },
 | ||||||
|  | ]; | ||||||
|  | 
 | ||||||
|  | export { routes }; | ||||||
|  | |||||||
| @ -1,130 +1,132 @@ | |||||||
| import { tool as base64FileConverter } from './base64-file-converter'; | // import { tool as base64FileConverter } from './base64-file-converter';
 | ||||||
| import { tool as base64StringConverter } from './base64-string-converter'; | // import { tool as base64StringConverter } from './base64-string-converter';
 | ||||||
| import { tool as basicAuthGenerator } from './basic-auth-generator'; | // import { tool as basicAuthGenerator } from './basic-auth-generator';
 | ||||||
| import { tool as httpStatusCodes } from './http-status-codes'; | // import { tool as httpStatusCodes } from './http-status-codes';
 | ||||||
| import { tool as yamlToJson } from './yaml-to-json-converter'; | // import { tool as yamlToJson } from './yaml-to-json-converter';
 | ||||||
| import { tool as jsonToYaml } from './json-to-yaml-converter'; | // import { tool as jsonToYaml } from './json-to-yaml-converter';
 | ||||||
| import { tool as ipv6UlaGenerator } from './ipv6-ula-generator'; | // import { tool as ipv6UlaGenerator } from './ipv6-ula-generator';
 | ||||||
| import { tool as ipv4AddressConverter } from './ipv4-address-converter'; | // import { tool as ipv4AddressConverter } from './ipv4-address-converter';
 | ||||||
| import { tool as benchmarkBuilder } from './benchmark-builder'; | // import { tool as benchmarkBuilder } from './benchmark-builder';
 | ||||||
| import { tool as userAgentParser } from './user-agent-parser'; | // import { tool as userAgentParser } from './user-agent-parser';
 | ||||||
| import { tool as ipv4SubnetCalculator } from './ipv4-subnet-calculator'; | // import { tool as ipv4SubnetCalculator } from './ipv4-subnet-calculator';
 | ||||||
| import { tool as dockerRunToDockerComposeConverter } from './docker-run-to-docker-compose-converter'; | // import { tool as dockerRunToDockerComposeConverter } from './docker-run-to-docker-compose-converter';
 | ||||||
| import { tool as htmlWysiwygEditor } from './html-wysiwyg-editor'; | // import { tool as htmlWysiwygEditor } from './html-wysiwyg-editor';
 | ||||||
| import { tool as rsaKeyPairGenerator } from './rsa-key-pair-generator'; | // import { tool as rsaKeyPairGenerator } from './rsa-key-pair-generator';
 | ||||||
| import { tool as textToNatoAlphabet } from './text-to-nato-alphabet'; | // import { tool as textToNatoAlphabet } from './text-to-nato-alphabet';
 | ||||||
| import { tool as slugifyString } from './slugify-string'; | // import { tool as slugifyString } from './slugify-string';
 | ||||||
| import { tool as keycodeInfo } from './keycode-info'; | // import { tool as keycodeInfo } from './keycode-info';
 | ||||||
| import { tool as jsonMinify } from './json-minify'; | // import { tool as jsonMinify } from './json-minify';
 | ||||||
| import { tool as bcrypt } from './bcrypt'; | // import { tool as bcrypt } from './bcrypt';
 | ||||||
| import { tool as bip39 } from './bip39-generator'; | // import { tool as bip39 } from './bip39-generator';
 | ||||||
| import { tool as caseConverter } from './case-converter'; | // import { tool as caseConverter } from './case-converter';
 | ||||||
| import { tool as chmodCalculator } from './chmod-calculator'; | // import { tool as chmodCalculator } from './chmod-calculator';
 | ||||||
| import { tool as chronometer } from './chronometer'; | // import { tool as chronometer } from './chronometer';
 | ||||||
| import { tool as colorConverter } from './color-converter'; | // import { tool as colorConverter } from './color-converter';
 | ||||||
| import { tool as crontabGenerator } from './crontab-generator'; | // import { tool as crontabGenerator } from './crontab-generator';
 | ||||||
| import { tool as dateTimeConverter } from './date-time-converter'; | // import { tool as dateTimeConverter } from './date-time-converter';
 | ||||||
| import { tool as deviceInformation } from './device-information'; | // import { tool as deviceInformation } from './device-information';
 | ||||||
| import { tool as cypher } from './encryption'; | // import { tool as cypher } from './encryption';
 | ||||||
| import { tool as etaCalculator } from './eta-calculator'; | // import { tool as etaCalculator } from './eta-calculator';
 | ||||||
| import { tool as gitMemo } from './git-memo'; | // import { tool as gitMemo } from './git-memo';
 | ||||||
| import { tool as hashText } from './hash-text'; | // import { tool as hashText } from './hash-text';
 | ||||||
| import { tool as hmacGenerator } from './hmac-generator'; | // import { tool as hmacGenerator } from './hmac-generator';
 | ||||||
| import { tool as htmlEntities } from './html-entities'; | // import { tool as htmlEntities } from './html-entities';
 | ||||||
| import { tool as baseConverter } from './integer-base-converter'; | // import { tool as baseConverter } from './integer-base-converter';
 | ||||||
| import { tool as jsonViewer } from './json-viewer'; | // import { tool as jsonViewer } from './json-viewer';
 | ||||||
| import { tool as jwtParser } from './jwt-parser'; | // import { tool as jwtParser } from './jwt-parser';
 | ||||||
| import { tool as loremIpsumGenerator } from './lorem-ipsum-generator'; | // import { tool as loremIpsumGenerator } from './lorem-ipsum-generator';
 | ||||||
| import { tool as mathEvaluator } from './math-evaluator'; | // import { tool as mathEvaluator } from './math-evaluator';
 | ||||||
| import { tool as metaTagGenerator } from './meta-tag-generator'; | // import { tool as metaTagGenerator } from './meta-tag-generator';
 | ||||||
| import { tool as mimeTypes } from './mime-types'; | // import { tool as mimeTypes } from './mime-types';
 | ||||||
| import { tool as otpCodeGeneratorAndValidator } from './otp-code-generator-and-validator'; | // import { tool as otpCodeGeneratorAndValidator } from './otp-code-generator-and-validator';
 | ||||||
| import { tool as qrCodeGenerator } from './qr-code-generator'; | // import { tool as qrCodeGenerator } from './qr-code-generator';
 | ||||||
| import { tool as randomPortGenerator } from './random-port-generator'; | // import { tool as randomPortGenerator } from './random-port-generator';
 | ||||||
| import { tool as romanNumeralConverter } from './roman-numeral-converter'; | // import { tool as romanNumeralConverter } from './roman-numeral-converter';
 | ||||||
| import { tool as sqlPrettify } from './sql-prettify'; | // import { tool as sqlPrettify } from './sql-prettify';
 | ||||||
| import { tool as svgPlaceholderGenerator } from './svg-placeholder-generator'; | // import { tool as svgPlaceholderGenerator } from './svg-placeholder-generator';
 | ||||||
| import { tool as temperatureConverter } from './temperature-converter'; | // import { tool as temperatureConverter } from './temperature-converter';
 | ||||||
| import { tool as textStatistics } from './text-statistics'; | // import { tool as textStatistics } from './text-statistics';
 | ||||||
| import { tool as tokenGenerator } from './token-generator'; | // import { tool as tokenGenerator } from './token-generator';
 | ||||||
| import type { ToolCategory } from './tools.types'; | import type { ToolCategory } from './tools.types'; | ||||||
| import { tool as urlEncoder } from './url-encoder'; | // import { tool as urlEncoder } from './url-encoder';
 | ||||||
| import { tool as urlParser } from './url-parser'; | // import { tool as urlParser } from './url-parser';
 | ||||||
| import { tool as uuidGenerator } from './uuid-generator'; | // import { tool as uuidGenerator } from './uuid-generator';
 | ||||||
| import { tool as macAddressLookup } from './mac-address-lookup'; | // import { tool as macAddressLookup } from './mac-address-lookup';
 | ||||||
| 
 | 
 | ||||||
| export const toolsByCategory: ToolCategory[] = [ | export const toolsByCategory: ToolCategory[] = [ | ||||||
|   { |   { | ||||||
|     name: 'Crypto', |     name: 'Crypto', | ||||||
|     components: [tokenGenerator, hashText, bcrypt, uuidGenerator, cypher, bip39, hmacGenerator, rsaKeyPairGenerator], |  | ||||||
|   }, |  | ||||||
|   { |  | ||||||
|     name: 'Converter', |  | ||||||
|     components: [ |     components: [ | ||||||
|       dateTimeConverter, |       /* tokenGenerator, hashText, bcrypt, uuidGenerator, cypher, bip39, hmacGenerator, rsaKeyPairGenerator*/ | ||||||
|       baseConverter, |  | ||||||
|       romanNumeralConverter, |  | ||||||
|       base64StringConverter, |  | ||||||
|       base64FileConverter, |  | ||||||
|       colorConverter, |  | ||||||
|       caseConverter, |  | ||||||
|       textToNatoAlphabet, |  | ||||||
|       yamlToJson, |  | ||||||
|       jsonToYaml, |  | ||||||
|     ], |     ], | ||||||
|   }, |   }, | ||||||
|   { |   // {
 | ||||||
|     name: 'Web', |   //   name: 'Converter',
 | ||||||
|     components: [ |   //   components: [
 | ||||||
|       urlEncoder, |   //     dateTimeConverter,
 | ||||||
|       htmlEntities, |   //     baseConverter,
 | ||||||
|       urlParser, |   //     romanNumeralConverter,
 | ||||||
|       deviceInformation, |   //     base64StringConverter,
 | ||||||
|       basicAuthGenerator, |   //     base64FileConverter,
 | ||||||
|       metaTagGenerator, |   //     colorConverter,
 | ||||||
|       otpCodeGeneratorAndValidator, |   //     caseConverter,
 | ||||||
|       mimeTypes, |   //     textToNatoAlphabet,
 | ||||||
|       jwtParser, |   //     yamlToJson,
 | ||||||
|       keycodeInfo, |   //     jsonToYaml,
 | ||||||
|       slugifyString, |   //   ],
 | ||||||
|       htmlWysiwygEditor, |   // },
 | ||||||
|       userAgentParser, |   // {
 | ||||||
|       httpStatusCodes, |   //   name: 'Web',
 | ||||||
|     ], |   //   components: [
 | ||||||
|   }, |   //     urlEncoder,
 | ||||||
|   { |   //     htmlEntities,
 | ||||||
|     name: 'Images', |   //     urlParser,
 | ||||||
|     components: [qrCodeGenerator, svgPlaceholderGenerator], |   //     deviceInformation,
 | ||||||
|   }, |   //     basicAuthGenerator,
 | ||||||
|   { |   //     metaTagGenerator,
 | ||||||
|     name: 'Development', |   //     otpCodeGeneratorAndValidator,
 | ||||||
|     components: [ |   //     mimeTypes,
 | ||||||
|       gitMemo, |   //     jwtParser,
 | ||||||
|       randomPortGenerator, |   //     keycodeInfo,
 | ||||||
|       crontabGenerator, |   //     slugifyString,
 | ||||||
|       jsonViewer, |   //     htmlWysiwygEditor,
 | ||||||
|       jsonMinify, |   //     userAgentParser,
 | ||||||
|       sqlPrettify, |   //     httpStatusCodes,
 | ||||||
|       chmodCalculator, |   //   ],
 | ||||||
|       dockerRunToDockerComposeConverter, |   // },
 | ||||||
|     ], |   // {
 | ||||||
|   }, |   //   name: 'Images',
 | ||||||
|   { |   //   components: [qrCodeGenerator, svgPlaceholderGenerator],
 | ||||||
|     name: 'Network', |   // },
 | ||||||
|     components: [ipv4SubnetCalculator, ipv4AddressConverter, macAddressLookup, ipv6UlaGenerator], |   // {
 | ||||||
|   }, |   //   name: 'Development',
 | ||||||
|   { |   //   components: [
 | ||||||
|     name: 'Math', |   //     gitMemo,
 | ||||||
|     components: [mathEvaluator, etaCalculator], |   //     randomPortGenerator,
 | ||||||
|   }, |   //     crontabGenerator,
 | ||||||
|   { |   //     jsonViewer,
 | ||||||
|     name: 'Measurement', |   //     jsonMinify,
 | ||||||
|     components: [chronometer, temperatureConverter, benchmarkBuilder], |   //     sqlPrettify,
 | ||||||
|   }, |   //     chmodCalculator,
 | ||||||
|   { |   //     dockerRunToDockerComposeConverter,
 | ||||||
|     name: 'Text', |   //   ],
 | ||||||
|     components: [loremIpsumGenerator, textStatistics], |   // },
 | ||||||
|   }, |   // {
 | ||||||
|  |   //   name: 'Network',
 | ||||||
|  |   //   components: [ipv4SubnetCalculator, ipv4AddressConverter, macAddressLookup, ipv6UlaGenerator],
 | ||||||
|  |   // },
 | ||||||
|  |   // {
 | ||||||
|  |   //   name: 'Math',
 | ||||||
|  |   //   components: [mathEvaluator, etaCalculator],
 | ||||||
|  |   // },
 | ||||||
|  |   // {
 | ||||||
|  |   //   name: 'Measurement',
 | ||||||
|  |   //   components: [chronometer, temperatureConverter, benchmarkBuilder],
 | ||||||
|  |   // },
 | ||||||
|  |   // {
 | ||||||
|  |   //   name: 'Text',
 | ||||||
|  |   //   components: [loremIpsumGenerator, textStatistics],
 | ||||||
|  |   // },
 | ||||||
| ]; | ]; | ||||||
| 
 | 
 | ||||||
| export const tools = toolsByCategory.flatMap(({ components }) => components); | export const tools = toolsByCategory.flatMap(({ components }) => components); | ||||||
|  | |||||||
| @ -15,15 +15,9 @@ import Unocss from 'unocss/vite'; | |||||||
| export default defineConfig({ | export default defineConfig({ | ||||||
|   plugins: [ |   plugins: [ | ||||||
|     AutoImport({ |     AutoImport({ | ||||||
|       imports: [ |       imports: ['vue', 'vue-router', '@vueuse/core'], | ||||||
|         'vue', |  | ||||||
|         'vue-router', |  | ||||||
|         '@vueuse/core', |  | ||||||
|         { |  | ||||||
|           'naive-ui': ['useDialog', 'useMessage', 'useNotification', 'useLoadingBar'], |  | ||||||
|         }, |  | ||||||
|       ], |  | ||||||
|       vueTemplate: true, |       vueTemplate: true, | ||||||
|  |       dts: true, | ||||||
|       eslintrc: { |       eslintrc: { | ||||||
|         enabled: true, |         enabled: true, | ||||||
|       }, |       }, | ||||||
| @ -77,6 +71,21 @@ export default defineConfig({ | |||||||
|     }), |     }), | ||||||
|     Unocss(), |     Unocss(), | ||||||
|   ], |   ], | ||||||
|  | 
 | ||||||
|  |   ssgOptions: { | ||||||
|  |     script: 'async', | ||||||
|  |     format: 'cjs', | ||||||
|  |     formatting: 'prettify', | ||||||
|  |   }, | ||||||
|  | 
 | ||||||
|  |   ssr: { | ||||||
|  |     noExternal: ['lodash', 'date-fns'], | ||||||
|  |     //   noExternal: Object.keys(pkg.dependencies || {}),
 | ||||||
|  |   }, | ||||||
|  |   optimizeDeps: { | ||||||
|  |     include: ['naive-ui'], | ||||||
|  |   }, | ||||||
|  | 
 | ||||||
|   resolve: { |   resolve: { | ||||||
|     alias: { |     alias: { | ||||||
|       '@': fileURLToPath(new URL('./src', import.meta.url)), |       '@': fileURLToPath(new URL('./src', import.meta.url)), | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user