parent
							
								
									87984e2081
								
							
						
					
					
						commit
						9347c9f034
					
				
							
								
								
									
										9
									
								
								components.d.ts
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										9
									
								
								components.d.ts
									
									
									
									
										vendored
									
									
								
							| @ -130,23 +130,15 @@ declare module '@vue/runtime-core' { | ||||
|     MetaTagGenerator: typeof import('./src/tools/meta-tag-generator/meta-tag-generator.vue')['default'] | ||||
|     MimeTypes: typeof import('./src/tools/mime-types/mime-types.vue')['default'] | ||||
|     NavbarButtons: typeof import('./src/components/NavbarButtons.vue')['default'] | ||||
|     NButton: typeof import('naive-ui')['NButton'] | ||||
|     NCode: typeof import('naive-ui')['NCode'] | ||||
|     NCollapseTransition: typeof import('naive-ui')['NCollapseTransition'] | ||||
|     NConfigProvider: typeof import('naive-ui')['NConfigProvider'] | ||||
|     NEllipsis: typeof import('naive-ui')['NEllipsis'] | ||||
|     NForm: typeof import('naive-ui')['NForm'] | ||||
|     NFormItem: typeof import('naive-ui')['NFormItem'] | ||||
|     NH1: typeof import('naive-ui')['NH1'] | ||||
|     NH3: typeof import('naive-ui')['NH3'] | ||||
|     NIcon: typeof import('naive-ui')['NIcon'] | ||||
|     NInputNumber: typeof import('naive-ui')['NInputNumber'] | ||||
|     NLayout: typeof import('naive-ui')['NLayout'] | ||||
|     NLayoutSider: typeof import('naive-ui')['NLayoutSider'] | ||||
|     NMenu: typeof import('naive-ui')['NMenu'] | ||||
|     NScrollbar: typeof import('naive-ui')['NScrollbar'] | ||||
|     NSlider: typeof import('naive-ui')['NSlider'] | ||||
|     NSwitch: typeof import('naive-ui')['NSwitch'] | ||||
|     NumeronymGenerator: typeof import('./src/tools/numeronym-generator/numeronym-generator.vue')['default'] | ||||
|     OtpCodeGeneratorAndValidator: typeof import('./src/tools/otp-code-generator-and-validator/otp-code-generator-and-validator.vue')['default'] | ||||
|     PasswordStrengthAnalyser: typeof import('./src/tools/password-strength-analyser/password-strength-analyser.vue')['default'] | ||||
| @ -186,6 +178,7 @@ declare module '@vue/runtime-core' { | ||||
|     UserAgentParser: typeof import('./src/tools/user-agent-parser/user-agent-parser.vue')['default'] | ||||
|     UserAgentResultCards: typeof import('./src/tools/user-agent-parser/user-agent-result-cards.vue')['default'] | ||||
|     UuidGenerator: typeof import('./src/tools/uuid-generator/uuid-generator.vue')['default'] | ||||
|     WebsocketTester: typeof import('./src/tools/websocket-tester/websocket-tester.vue')['default'] | ||||
|     WifiQrCodeGenerator: typeof import('./src/tools/wifi-qr-code-generator/wifi-qr-code-generator.vue')['default'] | ||||
|     XmlFormatter: typeof import('./src/tools/xml-formatter/xml-formatter.vue')['default'] | ||||
|     XmlToJson: typeof import('./src/tools/xml-to-json/xml-to-json.vue')['default'] | ||||
|  | ||||
| @ -41,8 +41,8 @@ | ||||
|     "@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", | ||||
|     "@vicons/material": "^0.12.0", | ||||
|     "@vicons/tabler": "^0.12.0", | ||||
|     "@vueuse/core": "^10.3.0", | ||||
| @ -94,6 +94,7 @@ | ||||
|     "vue-i18n": "^9.9.1", | ||||
|     "vue-router": "^4.1.6", | ||||
|     "vue-tsc": "^1.8.1", | ||||
|     "w-websocket-client": "^1.0.29", | ||||
|     "xml-formatter": "^3.3.2", | ||||
|     "xml-js": "^1.6.11", | ||||
|     "yaml": "^2.2.1" | ||||
|  | ||||
							
								
								
									
										273
									
								
								pnpm-lock.yaml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										273
									
								
								pnpm-lock.yaml
									
									
									
										generated
									
									
									
								
							| @ -182,6 +182,9 @@ dependencies: | ||||
|   vue-tsc: | ||||
|     specifier: ^1.8.1 | ||||
|     version: 1.8.1(typescript@5.2.2) | ||||
|   w-websocket-client: | ||||
|     specifier: ^1.0.29 | ||||
|     version: 1.0.29 | ||||
|   xml-formatter: | ||||
|     specifier: ^3.3.2 | ||||
|     version: 3.3.2 | ||||
| @ -4062,6 +4065,11 @@ packages: | ||||
|     engines: {node: '>=0.4.0'} | ||||
|     dev: true | ||||
| 
 | ||||
|   /adler-32@1.3.1: | ||||
|     resolution: {integrity: sha512-ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A==} | ||||
|     engines: {node: '>=0.8'} | ||||
|     dev: false | ||||
| 
 | ||||
|   /agent-base@6.0.2: | ||||
|     resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} | ||||
|     engines: {node: '>= 6.0.0'} | ||||
| @ -4230,6 +4238,10 @@ packages: | ||||
|   /balanced-match@1.0.2: | ||||
|     resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} | ||||
| 
 | ||||
|   /base-64@1.0.0: | ||||
|     resolution: {integrity: sha512-kwDPIFCGx0NZHog36dj+tHiwP4QMzsZ3AgMViUBKI0+V5n4U0ufTCUMhnQ04diaRI8EX/QcPfql7zlhZ7j4zgg==} | ||||
|     dev: false | ||||
| 
 | ||||
|   /base64-js@1.5.1: | ||||
|     resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} | ||||
| 
 | ||||
| @ -4249,6 +4261,10 @@ packages: | ||||
|       readable-stream: 3.6.2 | ||||
|     dev: true | ||||
| 
 | ||||
|   /bmp-js@0.1.0: | ||||
|     resolution: {integrity: sha512-vHdS19CnY3hwiNdkaqk93DvjVLfbEcI8mys4UjuWrlX1haDmroo8o4xCzh4wD6DGV6HxRCyauwhHRqMTfERtjw==} | ||||
|     dev: false | ||||
| 
 | ||||
|   /boolbase@1.0.0: | ||||
|     resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} | ||||
|     dev: true | ||||
| @ -4374,6 +4390,14 @@ packages: | ||||
|     engines: {node: '>=12.13'} | ||||
|     dev: false | ||||
| 
 | ||||
|   /cfb@1.2.2: | ||||
|     resolution: {integrity: sha512-KfdUZsSOw19/ObEWasvBP/Ac4reZvAGauZhs6S/gqNhXhI7cKwvlH7ulj+dOEYnca4bm4SGo8C1bTAQvnTjgQA==} | ||||
|     engines: {node: '>=0.8'} | ||||
|     dependencies: | ||||
|       adler-32: 1.3.1 | ||||
|       crc-32: 1.2.2 | ||||
|     dev: false | ||||
| 
 | ||||
|   /chai@4.3.7: | ||||
|     resolution: {integrity: sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==} | ||||
|     engines: {node: '>=4'} | ||||
| @ -4478,6 +4502,21 @@ packages: | ||||
|     optionalDependencies: | ||||
|       fsevents: 2.3.3 | ||||
| 
 | ||||
|   /chokidar@3.6.0: | ||||
|     resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} | ||||
|     engines: {node: '>= 8.10.0'} | ||||
|     dependencies: | ||||
|       anymatch: 3.1.3 | ||||
|       braces: 3.0.2 | ||||
|       glob-parent: 5.1.2 | ||||
|       is-binary-path: 2.1.0 | ||||
|       is-glob: 4.0.3 | ||||
|       normalize-path: 3.0.0 | ||||
|       readdirp: 3.6.0 | ||||
|     optionalDependencies: | ||||
|       fsevents: 2.3.3 | ||||
|     dev: false | ||||
| 
 | ||||
|   /ci-info@3.8.0: | ||||
|     resolution: {integrity: sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==} | ||||
|     engines: {node: '>=8'} | ||||
| @ -4515,6 +4554,11 @@ packages: | ||||
|     engines: {node: '>=0.8'} | ||||
|     dev: true | ||||
| 
 | ||||
|   /codepage@1.15.0: | ||||
|     resolution: {integrity: sha512-3g6NUTPd/YtuuGrhMnOMRjFc+LJw/bnMp3+0r/Wcz3IXUuCosKRJvMphm5+Q+bvTVGcJJuRvVLuYba+WojaFaA==} | ||||
|     engines: {node: '>=0.8'} | ||||
|     dev: false | ||||
| 
 | ||||
|   /color-convert@1.9.3: | ||||
|     resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} | ||||
|     dependencies: | ||||
| @ -4637,6 +4681,12 @@ packages: | ||||
|     resolution: {integrity: sha512-IOI66HEG+8bXfWPy+sTzuN7161vmDZOHg1wgIPFf3WfD73FeLajnn6C+fnxOIa9RL1WRBDMXQQWW/FOaOYaQ3w==} | ||||
|     dev: false | ||||
| 
 | ||||
|   /crc-32@1.2.2: | ||||
|     resolution: {integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==} | ||||
|     engines: {node: '>=0.8'} | ||||
|     hasBin: true | ||||
|     dev: false | ||||
| 
 | ||||
|   /crelt@1.0.6: | ||||
|     resolution: {integrity: sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==} | ||||
|     dev: false | ||||
| @ -4662,6 +4712,10 @@ packages: | ||||
|     resolution: {integrity: sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw==} | ||||
|     dev: false | ||||
| 
 | ||||
|   /crypto-js@4.2.0: | ||||
|     resolution: {integrity: sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==} | ||||
|     dev: false | ||||
| 
 | ||||
|   /crypto-random-string@2.0.0: | ||||
|     resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==} | ||||
|     engines: {node: '>=8'} | ||||
| @ -4711,6 +4765,10 @@ packages: | ||||
|     hasBin: true | ||||
|     dev: true | ||||
| 
 | ||||
|   /cssfilter@0.0.10: | ||||
|     resolution: {integrity: sha512-FAaLDaplstoRsDR8XGYH51znUN0UY7nMc6Z9/fvE8EXGwvJE9hu7W2vHwx1+bd6gCYnln9nLbzxFTrcO9YQDZw==} | ||||
|     dev: false | ||||
| 
 | ||||
|   /csso@5.0.5: | ||||
|     resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==} | ||||
|     engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} | ||||
| @ -4770,6 +4828,10 @@ packages: | ||||
|       '@babel/runtime': 7.23.2 | ||||
|     dev: false | ||||
| 
 | ||||
|   /dayjs@1.11.13: | ||||
|     resolution: {integrity: sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==} | ||||
|     dev: false | ||||
| 
 | ||||
|   /de-indent@1.0.2: | ||||
|     resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==} | ||||
|     dev: false | ||||
| @ -4882,6 +4944,11 @@ packages: | ||||
|     engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} | ||||
|     dev: true | ||||
| 
 | ||||
|   /diff@5.2.0: | ||||
|     resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==} | ||||
|     engines: {node: '>=0.3.1'} | ||||
|     dev: false | ||||
| 
 | ||||
|   /dijkstrajs@1.0.2: | ||||
|     resolution: {integrity: sha512-QV6PMaHTCNmKSeP6QoXhVTw9snc9VD8MulTT0Bd99Pacp4SS1cjcrYPgBPmibqKVtMJJfqC6XvOXgPMEEPH/fg==} | ||||
|     dev: false | ||||
| @ -5549,6 +5616,10 @@ packages: | ||||
|       through: 2.3.8 | ||||
|     dev: true | ||||
| 
 | ||||
|   /eventemitter3@5.0.1: | ||||
|     resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} | ||||
|     dev: false | ||||
| 
 | ||||
|   /evtd@0.2.4: | ||||
|     resolution: {integrity: sha512-qaeGN5bx63s/AXgQo8gj6fBkxge+OoLddLniox5qtLAEY5HSnuSlISXVPxnSae1dWblvTh4/HoMIB+mbMsvZzw==} | ||||
|     dev: false | ||||
| @ -5704,6 +5775,11 @@ packages: | ||||
|       fetch-blob: 3.2.0 | ||||
|     dev: true | ||||
| 
 | ||||
|   /frac@1.1.2: | ||||
|     resolution: {integrity: sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA==} | ||||
|     engines: {node: '>=0.8'} | ||||
|     dev: false | ||||
| 
 | ||||
|   /fraction.js@4.2.0: | ||||
|     resolution: {integrity: sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==} | ||||
|     dev: false | ||||
| @ -6058,6 +6134,11 @@ packages: | ||||
|       entities: 4.5.0 | ||||
|     dev: true | ||||
| 
 | ||||
|   /htmlparser@1.7.7: | ||||
|     resolution: {integrity: sha512-zpK66ifkT0fauyFh2Mulrq4AqGTucxGtOhZ8OjkbSfcCpkqQEI8qRkY0tSQSJNAQ4HUZkgWaU4fK4EH6SVH9PQ==} | ||||
|     engines: {node: '>=0.1.33'} | ||||
|     dev: false | ||||
| 
 | ||||
|   /http-proxy-agent@5.0.0: | ||||
|     resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} | ||||
|     engines: {node: '>= 6'} | ||||
| @ -6123,6 +6204,10 @@ packages: | ||||
|       safer-buffer: 2.1.2 | ||||
|     dev: true | ||||
| 
 | ||||
|   /idb-keyval@6.2.1: | ||||
|     resolution: {integrity: sha512-8Sb3veuYCyrZL+VBt9LJfZjLUPWVvqn8tG28VqYNFCo43KHcKuq+b4EiXGeuaLAQWL2YmyDgMp2aSpH9JHsEQg==} | ||||
|     dev: false | ||||
| 
 | ||||
|   /idb@7.1.1: | ||||
|     resolution: {integrity: sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==} | ||||
|     dev: true | ||||
| @ -6294,6 +6379,10 @@ packages: | ||||
|     hasBin: true | ||||
|     dev: true | ||||
| 
 | ||||
|   /is-electron@2.2.2: | ||||
|     resolution: {integrity: sha512-FO/Rhvz5tuw4MCWkpMzHFKWD2LsfHzIb7i6MdPYZ/KW7AlxawyLkqdy+jPZP1WubqEADE3O4FUENlJHDfQASRg==} | ||||
|     dev: false | ||||
| 
 | ||||
|   /is-extendable@0.1.1: | ||||
|     resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} | ||||
|     engines: {node: '>=0.10.0'} | ||||
| @ -6438,6 +6527,10 @@ packages: | ||||
|       upper-case: 1.1.3 | ||||
|     dev: true | ||||
| 
 | ||||
|   /is-url@1.2.4: | ||||
|     resolution: {integrity: sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==} | ||||
|     dev: false | ||||
| 
 | ||||
|   /is-weakref@1.0.2: | ||||
|     resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} | ||||
|     dependencies: | ||||
| @ -7103,6 +7196,18 @@ packages: | ||||
|     resolution: {integrity: sha512-NsXBU0UgBxo2rQLOeWNZqS3fvflWePMECr8CoSWoSTqCqGbVVsvl9vZu1HfQicYN0g5piV9Gh8RTEvo/uP752w==} | ||||
|     dev: true | ||||
| 
 | ||||
|   /node-fetch@2.7.0: | ||||
|     resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} | ||||
|     engines: {node: 4.x || >=6.0.0} | ||||
|     peerDependencies: | ||||
|       encoding: ^0.1.0 | ||||
|     peerDependenciesMeta: | ||||
|       encoding: | ||||
|         optional: true | ||||
|     dependencies: | ||||
|       whatwg-url: 5.0.0 | ||||
|     dev: false | ||||
| 
 | ||||
|   /node-fetch@3.2.10: | ||||
|     resolution: {integrity: sha512-MhuzNwdURnZ1Cp4XTazr69K0BTizsBroX7Zx3UgDSVcZYKF/6p0CBe4EUb/hLqmzVhl0UpYfgRljQ4yxE+iCxA==} | ||||
|     engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} | ||||
| @ -7223,6 +7328,11 @@ packages: | ||||
|       is-wsl: 2.2.0 | ||||
|     dev: true | ||||
| 
 | ||||
|   /opencollective-postinstall@2.0.3: | ||||
|     resolution: {integrity: sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==} | ||||
|     hasBin: true | ||||
|     dev: false | ||||
| 
 | ||||
|   /optionator@0.9.3: | ||||
|     resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} | ||||
|     engines: {node: '>= 0.8.0'} | ||||
| @ -7729,6 +7839,16 @@ packages: | ||||
|     engines: {node: '>=6'} | ||||
|     dev: true | ||||
| 
 | ||||
|   /pyodide@0.24.1: | ||||
|     resolution: {integrity: sha512-fkNolNwiv41E2KKCP2bgW+dwr95B+0KSC/WG9WCmlWM9MNFbRVX0rF9i4OikRM78bGeVUvLdVJw8jY17wxKoRQ==} | ||||
|     dependencies: | ||||
|       base-64: 1.0.0 | ||||
|       ws: 8.18.0 | ||||
|     transitivePeerDependencies: | ||||
|       - bufferutil | ||||
|       - utf-8-validate | ||||
|     dev: false | ||||
| 
 | ||||
|   /qrcode@1.5.1: | ||||
|     resolution: {integrity: sha512-nS8NJ1Z3md8uTjKtP+SGGhfqmTCs5flU/xR623oI0JX+Wepz9R8UrRVCTBTJm3qGw3rH6jJ6MUHjkDx15cxSSg==} | ||||
|     engines: {node: '>=10.13.0'} | ||||
| @ -7813,6 +7933,10 @@ packages: | ||||
|     resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} | ||||
|     dev: true | ||||
| 
 | ||||
|   /regenerator-runtime@0.13.11: | ||||
|     resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} | ||||
|     dev: false | ||||
| 
 | ||||
|   /regenerator-runtime@0.14.0: | ||||
|     resolution: {integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==} | ||||
| 
 | ||||
| @ -8020,6 +8144,10 @@ packages: | ||||
|     resolution: {integrity: sha512-4AsO/FrViE/iDNEPaAQlb77tf0csuq27EsVpy6ett584EcRTp6pTDLoGWVxCD77y5iU5FauOvhsI4o1APwPoSQ==} | ||||
|     dev: false | ||||
| 
 | ||||
|   /seamless-scroll-polyfill@2.3.4: | ||||
|     resolution: {integrity: sha512-Biobd4LDoeFODX1bfiru84GveSajzFELFB3ejMZsRR2TpD73W46uEZYAEqSx5RtKpN2umhGWaoSRivs0ZcHp9g==} | ||||
|     dev: false | ||||
| 
 | ||||
|   /section-matter@1.0.0: | ||||
|     resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==} | ||||
|     engines: {node: '>=4'} | ||||
| @ -8246,6 +8374,13 @@ packages: | ||||
|       nearley: 2.20.1 | ||||
|     dev: false | ||||
| 
 | ||||
|   /ssf@0.11.2: | ||||
|     resolution: {integrity: sha512-+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g==} | ||||
|     engines: {node: '>=0.8'} | ||||
|     dependencies: | ||||
|       frac: 1.1.2 | ||||
|     dev: false | ||||
| 
 | ||||
|   /stackback@0.0.2: | ||||
|     resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} | ||||
|     dev: true | ||||
| @ -8446,6 +8581,28 @@ packages: | ||||
|       source-map-support: 0.5.21 | ||||
|     dev: true | ||||
| 
 | ||||
|   /tesseract.js-core@4.0.4: | ||||
|     resolution: {integrity: sha512-MJ+vtktjAaT0681uPl6TDUPhbRbpD/S9emko5rtorgHRZpQo7R3BG7h+3pVHgn1KjfNf1bvnx4B7KxEK8YKqpg==} | ||||
|     dev: false | ||||
| 
 | ||||
|   /tesseract.js@4.1.4: | ||||
|     resolution: {integrity: sha512-iLjJjLWVNV4PApofEsd54Y1MbjhzpPxEzF8EjYmC2CLN4hrUqO5aTNTSbGA7/QjycKtAWHhn2YmDR+6GFwi2Zg==} | ||||
|     requiresBuild: true | ||||
|     dependencies: | ||||
|       bmp-js: 0.1.0 | ||||
|       idb-keyval: 6.2.1 | ||||
|       is-electron: 2.2.2 | ||||
|       is-url: 1.2.4 | ||||
|       node-fetch: 2.7.0 | ||||
|       opencollective-postinstall: 2.0.3 | ||||
|       regenerator-runtime: 0.13.11 | ||||
|       tesseract.js-core: 4.0.4 | ||||
|       wasm-feature-detect: 1.6.2 | ||||
|       zlibjs: 0.3.1 | ||||
|     transitivePeerDependencies: | ||||
|       - encoding | ||||
|     dev: false | ||||
| 
 | ||||
|   /text-table@0.2.0: | ||||
|     resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} | ||||
|     dev: true | ||||
| @ -8522,6 +8679,10 @@ packages: | ||||
|       url-parse: 1.5.10 | ||||
|     dev: true | ||||
| 
 | ||||
|   /tr46@0.0.3: | ||||
|     resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} | ||||
|     dev: false | ||||
| 
 | ||||
|   /tr46@1.0.1: | ||||
|     resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} | ||||
|     dependencies: | ||||
| @ -8660,6 +8821,11 @@ packages: | ||||
|     resolution: {integrity: sha512-fKnGuqmTBnIE+/KXSzCn4db8RTigUzw1AN0DmdU6hJovUTbYJKyqj+8Mt1c4VfRDnOVJnENmfYkIPZ946UrSAA==} | ||||
|     dev: false | ||||
| 
 | ||||
|   /ua-parser-js@1.0.39: | ||||
|     resolution: {integrity: sha512-k24RCVWlEcjkdOxYmVJgeD/0a1TiSpqLg+ZalVGV9lsnr4yqu0w7tX/x2xX6G4zpkgQnRf89lxuZ1wsbjXM8lw==} | ||||
|     hasBin: true | ||||
|     dev: false | ||||
| 
 | ||||
|   /uc.micro@1.0.6: | ||||
|     resolution: {integrity: sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==} | ||||
| 
 | ||||
| @ -9010,6 +9176,10 @@ packages: | ||||
|       vue: 3.3.4 | ||||
|     dev: false | ||||
| 
 | ||||
|   /viewerjs@1.11.6: | ||||
|     resolution: {integrity: sha512-TlhdSp2oEOLFXvEp4psKaeTjR5zBjTRcM/sHUN8PkV1UWuY8HKC8n7GaVdW5Xqnwdr/F1OmzLik1QwDjI4w/nw==} | ||||
|     dev: false | ||||
| 
 | ||||
|   /vite-node@0.34.0(@types/node@18.15.11)(less@4.1.3): | ||||
|     resolution: {integrity: sha512-rGZMvpb052rjUwJA/a17xMfOibzNF7byMdRSTcN2Lw8uxX08s5EfjWW5mBkm3MSFTPctMSVtT2yC+8ShrZbT5g==} | ||||
|     engines: {node: '>=v14.18.0'} | ||||
| @ -9311,6 +9481,18 @@ packages: | ||||
|       vue: 3.3.4 | ||||
|     dev: false | ||||
| 
 | ||||
|   /w-websocket-client@1.0.29: | ||||
|     resolution: {integrity: sha512-zZg+dOo4EP3BmvpjlkpThKIgTAzCHoOFSSp6xSNY6EuywM2xDqfkiQU7Ga3QlzEMC9i8TwdXfkntRauA/D2KWA==} | ||||
|     dependencies: | ||||
|       lodash-es: 4.17.21 | ||||
|       ws: 8.18.0 | ||||
|       wsemi: 1.7.58 | ||||
|     transitivePeerDependencies: | ||||
|       - bufferutil | ||||
|       - encoding | ||||
|       - utf-8-validate | ||||
|     dev: false | ||||
| 
 | ||||
|   /w3c-keyname@2.2.8: | ||||
|     resolution: {integrity: sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==} | ||||
|     dev: false | ||||
| @ -9322,6 +9504,10 @@ packages: | ||||
|       xml-name-validator: 4.0.0 | ||||
|     dev: true | ||||
| 
 | ||||
|   /wasm-feature-detect@1.6.2: | ||||
|     resolution: {integrity: sha512-4dnaZ+Fq/q+BbMlTIfaNS851i+0zmHzui++NUZdskESRu3xwB6g6x2FnGvBdWtpijqO5yuj1l+EUTJGc4S4DKg==} | ||||
|     dev: false | ||||
| 
 | ||||
|   /wcwidth@1.0.1: | ||||
|     resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} | ||||
|     dependencies: | ||||
| @ -9333,6 +9519,10 @@ packages: | ||||
|     engines: {node: '>= 8'} | ||||
|     dev: true | ||||
| 
 | ||||
|   /webidl-conversions@3.0.1: | ||||
|     resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} | ||||
|     dev: false | ||||
| 
 | ||||
|   /webidl-conversions@4.0.2: | ||||
|     resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} | ||||
|     dev: true | ||||
| @ -9373,6 +9563,13 @@ packages: | ||||
|       webidl-conversions: 7.0.0 | ||||
|     dev: true | ||||
| 
 | ||||
|   /whatwg-url@5.0.0: | ||||
|     resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} | ||||
|     dependencies: | ||||
|       tr46: 0.0.3 | ||||
|       webidl-conversions: 3.0.1 | ||||
|     dev: false | ||||
| 
 | ||||
|   /whatwg-url@7.1.0: | ||||
|     resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} | ||||
|     dependencies: | ||||
| @ -9428,6 +9625,16 @@ packages: | ||||
|       stackback: 0.0.2 | ||||
|     dev: true | ||||
| 
 | ||||
|   /wmf@1.0.2: | ||||
|     resolution: {integrity: sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw==} | ||||
|     engines: {node: '>=0.8'} | ||||
|     dev: false | ||||
| 
 | ||||
|   /word@0.3.0: | ||||
|     resolution: {integrity: sha512-OELeY0Q61OXpdUfTp+oweA/vtLVg5VDOXh+3he3PNzLGG/y0oylSOC1xRVj0+l4vQ3tj/bB1HVHv1ocXkQceFA==} | ||||
|     engines: {node: '>=0.8'} | ||||
|     dev: false | ||||
| 
 | ||||
|   /workbox-background-sync@7.0.0: | ||||
|     resolution: {integrity: sha512-S+m1+84gjdueM+jIKZ+I0Lx0BDHkk5Nu6a3kTVxP4fdj3gKouRNmhO8H290ybnJTOPfBDtTMXSQA/QLTvr7PeA==} | ||||
|     dependencies: | ||||
| @ -9600,6 +9807,59 @@ packages: | ||||
|         optional: true | ||||
|     dev: true | ||||
| 
 | ||||
|   /ws@8.18.0: | ||||
|     resolution: {integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==} | ||||
|     engines: {node: '>=10.0.0'} | ||||
|     peerDependencies: | ||||
|       bufferutil: ^4.0.1 | ||||
|       utf-8-validate: '>=5.0.2' | ||||
|     peerDependenciesMeta: | ||||
|       bufferutil: | ||||
|         optional: true | ||||
|       utf-8-validate: | ||||
|         optional: true | ||||
|     dev: false | ||||
| 
 | ||||
|   /wsemi@1.7.58: | ||||
|     resolution: {integrity: sha512-poZrjb7GiTnaoOArjGBcPcpGJhyzwPS5MO2CYdAzeXzrV/GCjd9fgc7P+se3YwETKJ9TvaZcgZXMot9NBSlzuQ==} | ||||
|     dependencies: | ||||
|       chokidar: 3.6.0 | ||||
|       crypto-js: 4.2.0 | ||||
|       dayjs: 1.11.13 | ||||
|       decimal.js: 10.4.3 | ||||
|       diff: 5.2.0 | ||||
|       eventemitter3: 5.0.1 | ||||
|       fuse.js: 6.6.2 | ||||
|       htmlparser: 1.7.7 | ||||
|       lodash-es: 4.17.21 | ||||
|       pyodide: 0.24.1 | ||||
|       seamless-scroll-polyfill: 2.3.4 | ||||
|       tesseract.js: 4.1.4 | ||||
|       tippy.js: 6.3.7 | ||||
|       ua-parser-js: 1.0.39 | ||||
|       viewerjs: 1.11.6 | ||||
|       xlsx: 0.18.5 | ||||
|       xss: 1.0.15 | ||||
|     transitivePeerDependencies: | ||||
|       - bufferutil | ||||
|       - encoding | ||||
|       - utf-8-validate | ||||
|     dev: false | ||||
| 
 | ||||
|   /xlsx@0.18.5: | ||||
|     resolution: {integrity: sha512-dmg3LCjBPHZnQp5/F/+nnTa+miPJxUXB6vtk42YjBBKayDNagxGEeIdWApkYPOf3Z3pm3k62Knjzp7lMeTEtFQ==} | ||||
|     engines: {node: '>=0.8'} | ||||
|     hasBin: true | ||||
|     dependencies: | ||||
|       adler-32: 1.3.1 | ||||
|       cfb: 1.2.2 | ||||
|       codepage: 1.15.0 | ||||
|       crc-32: 1.2.2 | ||||
|       ssf: 0.11.2 | ||||
|       wmf: 1.0.2 | ||||
|       word: 0.3.0 | ||||
|     dev: false | ||||
| 
 | ||||
|   /xml-formatter@3.3.2: | ||||
|     resolution: {integrity: sha512-ld34F1b7+2UQGNkfsAV4MN3/b7cdUstyMj3XJhzKFasOPtMToVCkqmrNcmrRuSlPxgH1K9tXPkqr75gAT3ix2g==} | ||||
|     engines: {node: '>= 14'} | ||||
| @ -9628,6 +9888,15 @@ packages: | ||||
|     resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} | ||||
|     dev: true | ||||
| 
 | ||||
|   /xss@1.0.15: | ||||
|     resolution: {integrity: sha512-FVdlVVC67WOIPvfOwhoMETV72f6GbW7aOabBC3WxN/oUdoEMDyLz4OgRv5/gck2ZeNqEQu+Tb0kloovXOfpYVg==} | ||||
|     engines: {node: '>= 0.10.0'} | ||||
|     hasBin: true | ||||
|     dependencies: | ||||
|       commander: 2.20.3 | ||||
|       cssfilter: 0.0.10 | ||||
|     dev: false | ||||
| 
 | ||||
|   /y18n@4.0.3: | ||||
|     resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} | ||||
|     dev: false | ||||
| @ -9702,6 +9971,10 @@ packages: | ||||
|     engines: {node: '>=12.20'} | ||||
|     dev: true | ||||
| 
 | ||||
|   /zlibjs@0.3.1: | ||||
|     resolution: {integrity: sha512-+J9RrgTKOmlxFSDHo0pI1xM6BLVUv+o0ZT9ANtCxGkjIVCCUdx9alUF8Gm+dGLKbkkkidWIHFDZHDMpfITt4+w==} | ||||
|     dev: false | ||||
| 
 | ||||
|   /zx@7.2.1: | ||||
|     resolution: {integrity: sha512-TgKwppaMLMNAXHhlhbBh7rMoOSx3/9qqnkv8frmhVlSomEuWkDijh/BCmYntkoS7ZQyemApAUyEi24jIrrS+hA==} | ||||
|     engines: {node: '>= 16.0.0'} | ||||
|  | ||||
| @ -1,7 +1,8 @@ | ||||
| import { useRouteQuery } from '@vueuse/router'; | ||||
| import { computed } from 'vue'; | ||||
| import { useStorage } from '@vueuse/core'; | ||||
| 
 | ||||
| export { useQueryParam }; | ||||
| export { useQueryParam, useQueryParamOrStorage }; | ||||
| 
 | ||||
| const transformers = { | ||||
|   number: { | ||||
| @ -16,6 +17,12 @@ const transformers = { | ||||
|     fromQuery: (value: string) => value.toLowerCase() === 'true', | ||||
|     toQuery: (value: boolean) => (value ? 'true' : 'false'), | ||||
|   }, | ||||
|   object: { | ||||
|     fromQuery: (value: string) => { | ||||
|       return JSON.parse(value); | ||||
|     }, | ||||
|     toQuery: (value: object) => JSON.stringify(value), | ||||
|   }, | ||||
| }; | ||||
| 
 | ||||
| function useQueryParam<T>({ name, defaultValue }: { name: string; defaultValue: T }) { | ||||
| @ -33,3 +40,27 @@ function useQueryParam<T>({ name, defaultValue }: { name: string; defaultValue: | ||||
|     }, | ||||
|   }); | ||||
| } | ||||
| 
 | ||||
| function useQueryParamOrStorage<T>({ name, storageName, defaultValue }: { name: string; storageName: string; defaultValue: T }) { | ||||
|   const type = typeof defaultValue; | ||||
|   const transformer = transformers[type as keyof typeof transformers] ?? transformers.string; | ||||
| 
 | ||||
|   const storageRef = useStorage(storageName, defaultValue); | ||||
|   const proxyDefaultValue = transformer.toQuery(defaultValue as never); | ||||
|   const proxy = useRouteQuery(name, proxyDefaultValue); | ||||
| 
 | ||||
|   const r = ref(defaultValue); | ||||
| 
 | ||||
|   watch(r, | ||||
|     (value) => { | ||||
|       proxy.value = transformer.toQuery(value as never); | ||||
|       storageRef.value = value as never; | ||||
|     }, | ||||
|     { deep: true }); | ||||
| 
 | ||||
|   r.value = (proxy.value && proxy.value !== proxyDefaultValue | ||||
|     ? transformer.fromQuery(proxy.value) as unknown as T | ||||
|     : storageRef.value as T) as never; | ||||
| 
 | ||||
|   return r; | ||||
| } | ||||
|  | ||||
| @ -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 websocketTester } from './websocket-tester'; | ||||
| 
 | ||||
| import { tool as asciiTextDrawer } from './ascii-text-drawer'; | ||||
| 
 | ||||
| @ -160,7 +161,15 @@ export const toolsByCategory: ToolCategory[] = [ | ||||
|   }, | ||||
|   { | ||||
|     name: 'Network', | ||||
|     components: [ipv4SubnetCalculator, ipv4AddressConverter, ipv4RangeExpander, macAddressLookup, macAddressGenerator, ipv6UlaGenerator], | ||||
|     components: [ | ||||
|       ipv4SubnetCalculator, | ||||
|       ipv4AddressConverter, | ||||
|       ipv4RangeExpander, | ||||
|       macAddressLookup, | ||||
|       macAddressGenerator, | ||||
|       ipv6UlaGenerator, | ||||
|       websocketTester, | ||||
|     ], | ||||
|   }, | ||||
|   { | ||||
|     name: 'Math', | ||||
|  | ||||
							
								
								
									
										12
									
								
								src/tools/websocket-tester/index.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								src/tools/websocket-tester/index.ts
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,12 @@ | ||||
| import { Sock } from '@vicons/tabler'; | ||||
| import { defineTool } from '../tool'; | ||||
| 
 | ||||
| export const tool = defineTool({ | ||||
|   name: 'Websocket tester', | ||||
|   path: '/websocket-tester', | ||||
|   description: 'Allows to test WebSocket connections', | ||||
|   keywords: ['websocket', 'ws', 'tester'], | ||||
|   component: () => import('./websocket-tester.vue'), | ||||
|   icon: Sock, | ||||
|   createdAt: new Date('2024-08-15'), | ||||
| }); | ||||
							
								
								
									
										14
									
								
								src/tools/websocket-tester/w-websocket-client.d.ts
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								src/tools/websocket-tester/w-websocket-client.d.ts
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @ -0,0 +1,14 @@ | ||||
| declare module "w-websocket-client/dist/w-websocket-client.umd.js" { | ||||
|     export default class WSC { | ||||
|         constructor(options: { | ||||
|             url: string | ||||
|             token: string | ||||
|             open?: () => void | ||||
|             close?: () => void | ||||
|             message?: (data: any) => void | ||||
|             error?: (err: any) => void | ||||
|           }); | ||||
|          | ||||
|         send(data: any): void | ||||
|     } | ||||
| } | ||||
							
								
								
									
										84
									
								
								src/tools/websocket-tester/websocket-tester.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										84
									
								
								src/tools/websocket-tester/websocket-tester.vue
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,84 @@ | ||||
| <script setup lang="ts"> | ||||
| import WSC from 'w-websocket-client/dist/w-websocket-client.umd.js'; | ||||
| import { useQueryParamOrStorage } from '@/composable/queryParams'; | ||||
| 
 | ||||
| const url = useQueryParamOrStorage({ name: 'url', storageName: 'ws-tester:url', defaultValue: 'ws://host:port' }); | ||||
| const token = useQueryParamOrStorage({ name: 'token', storageName: 'ws-tester:token', defaultValue: '*' }); | ||||
| const logs = ref<string[]>([]); | ||||
| const message = ref(''); | ||||
| const connected = ref(false); | ||||
| let wsc: WSC; | ||||
| 
 | ||||
| function send() { | ||||
|   logs.value.push(`Sent: ${message.value}`); | ||||
|   wsc.send(message.value); | ||||
| } | ||||
| function connect() { | ||||
|   wsc = new WSC({ | ||||
|     url: url.value, | ||||
|     token: token.value, | ||||
|     open() { | ||||
|       logs.value.push('WebSocket Connection opened'); | ||||
|       connected.value = true; | ||||
|     }, | ||||
|     close() { | ||||
|       connected.value = false; | ||||
|       logs.value.push('WebSocket Connection closed'); | ||||
|     }, | ||||
|     message(data: any) { | ||||
|       logs.value.push(`Received: ${JSON.stringify(data)}`); | ||||
|     }, | ||||
|     error(err: any) { | ||||
|       logs.value.push(`Error: ${err}`); | ||||
|     }, | ||||
|   }); | ||||
| } | ||||
| </script> | ||||
| 
 | ||||
| <template> | ||||
|   <div> | ||||
|     <c-card title="Connection"> | ||||
|       <c-input-text | ||||
|         v-model:value="url" | ||||
|         placeholder="Enter url of WebSocket server here" | ||||
|         label="Url" | ||||
|         raw-text | ||||
|       /> | ||||
|       <c-input-text | ||||
|         v-model:value="token" | ||||
|         placeholder="Enter token here" | ||||
|         label="Token" | ||||
|         raw-text | ||||
|       /> | ||||
|       <div v-if="!connected" mt-5 flex justify-center> | ||||
|         <c-button @click="connect()"> | ||||
|           Connect | ||||
|         </c-button> | ||||
|       </div> | ||||
|     </c-card> | ||||
|     <c-card v-if="connected" title="Send"> | ||||
|       <c-input-text | ||||
|         v-model:value="message" | ||||
|         placeholder="Enter message to send here" | ||||
|         label="Message" | ||||
|         rows="5" | ||||
|         autosize | ||||
|         raw-text | ||||
|         multiline | ||||
|         monospace | ||||
|       /> | ||||
|       <div mt-5 flex justify-center> | ||||
|         <c-button @click="send()"> | ||||
|           Send | ||||
|         </c-button> | ||||
|       </div> | ||||
|     </c-card> | ||||
|     <c-card title="Logs"> | ||||
|       <ul> | ||||
|         <li v-for="(line, index) in logs" :key="index"> | ||||
|           {{ line }} | ||||
|         </li> | ||||
|       </ul> | ||||
|     </c-card> | ||||
|   </div> | ||||
| </template> | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user