jwt 生成器
This commit is contained in:
		
							parent
							
								
									07eea0f484
								
							
						
					
					
						commit
						df9a427b09
					
				
							
								
								
									
										21
									
								
								components.d.ts
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										21
									
								
								components.d.ts
									
									
									
									
										vendored
									
									
								
							| @ -91,6 +91,7 @@ declare module '@vue/runtime-core' { | |||||||
|     IbanValidatorAndParser: typeof import('./src/tools/iban-validator-and-parser/iban-validator-and-parser.vue')['default'] |     IbanValidatorAndParser: typeof import('./src/tools/iban-validator-and-parser/iban-validator-and-parser.vue')['default'] | ||||||
|     'IconMdi:brushVariant': typeof import('~icons/mdi/brush-variant')['default'] |     'IconMdi:brushVariant': typeof import('~icons/mdi/brush-variant')['default'] | ||||||
|     'IconMdi:kettleSteamOutline': typeof import('~icons/mdi/kettle-steam-outline')['default'] |     'IconMdi:kettleSteamOutline': typeof import('~icons/mdi/kettle-steam-outline')['default'] | ||||||
|  |     IconMdiArrowRightBottom: typeof import('~icons/mdi/arrow-right-bottom')['default'] | ||||||
|     IconMdiChevronDown: typeof import('~icons/mdi/chevron-down')['default'] |     IconMdiChevronDown: typeof import('~icons/mdi/chevron-down')['default'] | ||||||
|     IconMdiChevronRight: typeof import('~icons/mdi/chevron-right')['default'] |     IconMdiChevronRight: typeof import('~icons/mdi/chevron-right')['default'] | ||||||
|     IconMdiClose: typeof import('~icons/mdi/close')['default'] |     IconMdiClose: typeof import('~icons/mdi/close')['default'] | ||||||
| @ -98,6 +99,7 @@ declare module '@vue/runtime-core' { | |||||||
|     IconMdiEye: typeof import('~icons/mdi/eye')['default'] |     IconMdiEye: typeof import('~icons/mdi/eye')['default'] | ||||||
|     IconMdiEyeOff: typeof import('~icons/mdi/eye-off')['default'] |     IconMdiEyeOff: typeof import('~icons/mdi/eye-off')['default'] | ||||||
|     IconMdiHeart: typeof import('~icons/mdi/heart')['default'] |     IconMdiHeart: typeof import('~icons/mdi/heart')['default'] | ||||||
|  |     IconMdiRefresh: typeof import('~icons/mdi/refresh')['default'] | ||||||
|     IconMdiSearch: typeof import('~icons/mdi/search')['default'] |     IconMdiSearch: typeof import('~icons/mdi/search')['default'] | ||||||
|     IconMdiTranslate: typeof import('~icons/mdi/translate')['default'] |     IconMdiTranslate: typeof import('~icons/mdi/translate')['default'] | ||||||
|     IconMdiTriangleDown: typeof import('~icons/mdi/triangle-down')['default'] |     IconMdiTriangleDown: typeof import('~icons/mdi/triangle-down')['default'] | ||||||
| @ -114,6 +116,7 @@ declare module '@vue/runtime-core' { | |||||||
|     JsonToXml: typeof import('./src/tools/json-to-xml/json-to-xml.vue')['default'] |     JsonToXml: typeof import('./src/tools/json-to-xml/json-to-xml.vue')['default'] | ||||||
|     JsonToYaml: typeof import('./src/tools/json-to-yaml-converter/json-to-yaml.vue')['default'] |     JsonToYaml: typeof import('./src/tools/json-to-yaml-converter/json-to-yaml.vue')['default'] | ||||||
|     JsonViewer: typeof import('./src/tools/json-viewer/json-viewer.vue')['default'] |     JsonViewer: typeof import('./src/tools/json-viewer/json-viewer.vue')['default'] | ||||||
|  |     'JwtGenerator.tool': typeof import('./src/tools/jwt-generator/jwt-generator.tool.vue')['default'] | ||||||
|     JwtParser: typeof import('./src/tools/jwt-parser/jwt-parser.vue')['default'] |     JwtParser: typeof import('./src/tools/jwt-parser/jwt-parser.vue')['default'] | ||||||
|     KeycodeInfo: typeof import('./src/tools/keycode-info/keycode-info.vue')['default'] |     KeycodeInfo: typeof import('./src/tools/keycode-info/keycode-info.vue')['default'] | ||||||
|     ListConverter: typeof import('./src/tools/list-converter/list-converter.vue')['default'] |     ListConverter: typeof import('./src/tools/list-converter/list-converter.vue')['default'] | ||||||
| @ -131,18 +134,36 @@ declare module '@vue/runtime-core' { | |||||||
|     MimeTypes: typeof import('./src/tools/mime-types/mime-types.vue')['default'] |     MimeTypes: typeof import('./src/tools/mime-types/mime-types.vue')['default'] | ||||||
|     NavbarButtons: typeof import('./src/components/NavbarButtons.vue')['default'] |     NavbarButtons: typeof import('./src/components/NavbarButtons.vue')['default'] | ||||||
|     NCheckbox: typeof import('naive-ui')['NCheckbox'] |     NCheckbox: typeof import('naive-ui')['NCheckbox'] | ||||||
|  |     NCode: typeof import('naive-ui')['NCode'] | ||||||
|     NCollapseTransition: typeof import('naive-ui')['NCollapseTransition'] |     NCollapseTransition: typeof import('naive-ui')['NCollapseTransition'] | ||||||
|  |     NColorPicker: typeof import('naive-ui')['NColorPicker'] | ||||||
|     NConfigProvider: typeof import('naive-ui')['NConfigProvider'] |     NConfigProvider: typeof import('naive-ui')['NConfigProvider'] | ||||||
|  |     NDatePicker: typeof import('naive-ui')['NDatePicker'] | ||||||
|     NDivider: typeof import('naive-ui')['NDivider'] |     NDivider: typeof import('naive-ui')['NDivider'] | ||||||
|     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'] | ||||||
|  |     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'] | ||||||
|     NIcon: typeof import('naive-ui')['NIcon'] |     NIcon: typeof import('naive-ui')['NIcon'] | ||||||
|  |     NImage: typeof import('naive-ui')['NImage'] | ||||||
|  |     NInputGroup: typeof import('naive-ui')['NInputGroup'] | ||||||
|  |     NInputGroupLabel: typeof import('naive-ui')['NInputGroupLabel'] | ||||||
|  |     NInputNumber: typeof import('naive-ui')['NInputNumber'] | ||||||
|     NLayout: typeof import('naive-ui')['NLayout'] |     NLayout: typeof import('naive-ui')['NLayout'] | ||||||
|     NLayoutSider: typeof import('naive-ui')['NLayoutSider'] |     NLayoutSider: typeof import('naive-ui')['NLayoutSider'] | ||||||
|     NMenu: typeof import('naive-ui')['NMenu'] |     NMenu: typeof import('naive-ui')['NMenu'] | ||||||
|  |     NProgress: typeof import('naive-ui')['NProgress'] | ||||||
|  |     NScrollbar: typeof import('naive-ui')['NScrollbar'] | ||||||
|  |     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'] |     NTable: typeof import('naive-ui')['NTable'] | ||||||
|  |     NTag: typeof import('naive-ui')['NTag'] | ||||||
|     NumeronymGenerator: typeof import('./src/tools/numeronym-generator/numeronym-generator.vue')['default'] |     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'] |     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'] |     PasswordStrengthAnalyser: typeof import('./src/tools/password-strength-analyser/password-strength-analyser.vue')['default'] | ||||||
|  | |||||||
							
								
								
									
										1
									
								
								js-modules.d.ts
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								js-modules.d.ts
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @ -0,0 +1 @@ | |||||||
|  | declare module 'jsonwebtoken' | ||||||
| @ -93,6 +93,28 @@ tools: | |||||||
|     button: |     button: | ||||||
|       copy: Copy |       copy: Copy | ||||||
|       refresh: Refresh |       refresh: Refresh | ||||||
|  | 
 | ||||||
|  |   jwt-generator: | ||||||
|  |     title: JWT generator | ||||||
|  |     description: Generate JWT (JSON Web Token) tokens with the algorithm you want. | ||||||
|  | 
 | ||||||
|  |     algorithm: | ||||||
|  |       label: Signature or encryption algorithm | ||||||
|  |       placeholder: Select an encryption algorithm... | ||||||
|  |     encoding: | ||||||
|  |       label: Token encoding type | ||||||
|  |       placeholder: Select the result encoding... | ||||||
|  |     payload: | ||||||
|  |       label: JSON payload to generate the JWT | ||||||
|  |       placeholder: Paste your payload here... | ||||||
|  |     secret: | ||||||
|  |       label: Secret key | ||||||
|  |       placeholder: 'Enter the secret key...' | ||||||
|  |     jwt: | ||||||
|  |       label: JSON WEB TOKEN | ||||||
|  |       placeholder: 'The result of the JWT...' | ||||||
|  |     copied: JWT copied to the clipboard | ||||||
|  | 
 | ||||||
|   percentage-calculator: |   percentage-calculator: | ||||||
|     title: Percentage calculator |     title: Percentage calculator | ||||||
|     description: Easily calculate percentages from a value to another value, or from a percentage to a value. |     description: Easily calculate percentages from a value to another value, or from a percentage to a value. | ||||||
|  | |||||||
| @ -92,6 +92,28 @@ tools: | |||||||
|     button: |     button: | ||||||
|       copy: 复制 |       copy: 复制 | ||||||
|       refresh: 刷新 |       refresh: 刷新 | ||||||
|  | 
 | ||||||
|  |   jwt-generator: | ||||||
|  |     title: JWT 生成器 | ||||||
|  |     description: 生成您想要的算法的 JWT(JSON Web Token)令牌。 | ||||||
|  | 
 | ||||||
|  |     algorithm: | ||||||
|  |       label: 签名或加密算法 | ||||||
|  |       placeholder: 选择加密算法... | ||||||
|  |     encoding: | ||||||
|  |       label: 令牌编码类型 | ||||||
|  |       placeholder: 选择结果编码... | ||||||
|  |     payload: | ||||||
|  |       label: 生成 JWT 的 JSON 有效负载 | ||||||
|  |       placeholder: 粘贴您的有效负载... | ||||||
|  |     secret: | ||||||
|  |       label: 秘钥 | ||||||
|  |       placeholder: '输入秘钥...' | ||||||
|  |     jwt: | ||||||
|  |       label: JSON WEB TOKEN | ||||||
|  |       placeholder: 'JWT 的结果...' | ||||||
|  |     copied: JWT 复制到剪贴板 | ||||||
|  | 
 | ||||||
|   percentage-calculator: |   percentage-calculator: | ||||||
|     title: 百分比计算器 |     title: 百分比计算器 | ||||||
|     description: 轻松计算从一个值到另一个值的百分比,或从百分比到值的百分比。 |     description: 轻松计算从一个值到另一个值的百分比,或从百分比到值的百分比。 | ||||||
|  | |||||||
| @ -2,7 +2,7 @@ | |||||||
|   "name": "it-tools", |   "name": "it-tools", | ||||||
|   "type": "module", |   "type": "module", | ||||||
|   "version": "2024.10.22-7ca5933", |   "version": "2024.10.22-7ca5933", | ||||||
|   "packageManager": "pnpm@9.11.0", |   "packageManager": "pnpm@10.17.1+sha512.17c560fca4867ae9473a3899ad84a88334914f379be46d455cbf92e5cf4b39d34985d452d2583baf19967fa76cb5c17bc9e245529d0b98745721aa7200ecaf7a", | ||||||
|   "description": "Collection of handy online tools for developers, with great UX. ", |   "description": "Collection of handy online tools for developers, with great UX. ", | ||||||
|   "author": "Corentin Th <corentin.thomasset74+it-tools@gmail.com> (https://corentin.tech)", |   "author": "Corentin Th <corentin.thomasset74+it-tools@gmail.com> (https://corentin.tech)", | ||||||
|   "license": "GNU GPLv3", |   "license": "GNU GPLv3", | ||||||
| @ -70,6 +70,7 @@ | |||||||
|     "highlight.js": "^11.7.0", |     "highlight.js": "^11.7.0", | ||||||
|     "iarna-toml-esm": "^3.0.5", |     "iarna-toml-esm": "^3.0.5", | ||||||
|     "ibantools": "^4.3.3", |     "ibantools": "^4.3.3", | ||||||
|  |     "jose": "^6.1.0", | ||||||
|     "js-base64": "^3.7.6", |     "js-base64": "^3.7.6", | ||||||
|     "json5": "^2.2.3", |     "json5": "^2.2.3", | ||||||
|     "jwt-decode": "^3.1.2", |     "jwt-decode": "^3.1.2", | ||||||
|  | |||||||
							
								
								
									
										204
									
								
								pnpm-lock.yaml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										204
									
								
								pnpm-lock.yaml
									
									
									
										generated
									
									
									
								
							| @ -49,7 +49,7 @@ importers: | |||||||
|         version: 10.3.0(vue@3.3.4) |         version: 10.3.0(vue@3.3.4) | ||||||
|       '@vueuse/head': |       '@vueuse/head': | ||||||
|         specifier: ^1.0.0 |         specifier: ^1.0.0 | ||||||
|         version: 1.0.0(typescript@5.2.2)(vue@3.3.4) |         version: 1.0.0(vue@3.3.4) | ||||||
|       '@vueuse/router': |       '@vueuse/router': | ||||||
|         specifier: ^10.0.0 |         specifier: ^10.0.0 | ||||||
|         version: 10.0.0(vue-router@4.1.6(vue@3.3.4))(vue@3.3.4) |         version: 10.0.0(vue-router@4.1.6(vue@3.3.4))(vue@3.3.4) | ||||||
| @ -107,6 +107,9 @@ importers: | |||||||
|       ibantools: |       ibantools: | ||||||
|         specifier: ^4.3.3 |         specifier: ^4.3.3 | ||||||
|         version: 4.3.3 |         version: 4.3.3 | ||||||
|  |       jose: | ||||||
|  |         specifier: ^6.1.0 | ||||||
|  |         version: 6.1.0 | ||||||
|       js-base64: |       js-base64: | ||||||
|         specifier: ^3.7.6 |         specifier: ^3.7.6 | ||||||
|         version: 3.7.7 |         version: 3.7.7 | ||||||
| @ -2303,9 +2306,6 @@ packages: | |||||||
|   '@vue/compiler-core@3.3.7': |   '@vue/compiler-core@3.3.7': | ||||||
|     resolution: {integrity: sha512-pACdY6YnTNVLXsB86YD8OF9ihwpolzhhtdLVHhBL6do/ykr6kKXNYABRtNMGrsQXpEXXyAdwvWWkuTbs4MFtPQ==} |     resolution: {integrity: sha512-pACdY6YnTNVLXsB86YD8OF9ihwpolzhhtdLVHhBL6do/ykr6kKXNYABRtNMGrsQXpEXXyAdwvWWkuTbs4MFtPQ==} | ||||||
| 
 | 
 | ||||||
|   '@vue/compiler-core@3.5.13': |  | ||||||
|     resolution: {integrity: sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q==} |  | ||||||
| 
 |  | ||||||
|   '@vue/compiler-dom@3.2.47': |   '@vue/compiler-dom@3.2.47': | ||||||
|     resolution: {integrity: sha512-dBBnEHEPoftUiS03a4ggEig74J2YBZ2UIeyfpcRM2tavgMWo4bsEfgCGsu+uJIL/vax9S+JztH8NmQerUo7shQ==} |     resolution: {integrity: sha512-dBBnEHEPoftUiS03a4ggEig74J2YBZ2UIeyfpcRM2tavgMWo4bsEfgCGsu+uJIL/vax9S+JztH8NmQerUo7shQ==} | ||||||
| 
 | 
 | ||||||
| @ -2315,18 +2315,12 @@ packages: | |||||||
|   '@vue/compiler-dom@3.3.7': |   '@vue/compiler-dom@3.3.7': | ||||||
|     resolution: {integrity: sha512-0LwkyJjnUPssXv/d1vNJ0PKfBlDoQs7n81CbO6Q0zdL7H1EzqYRrTVXDqdBVqro0aJjo/FOa1qBAPVI4PGSHBw==} |     resolution: {integrity: sha512-0LwkyJjnUPssXv/d1vNJ0PKfBlDoQs7n81CbO6Q0zdL7H1EzqYRrTVXDqdBVqro0aJjo/FOa1qBAPVI4PGSHBw==} | ||||||
| 
 | 
 | ||||||
|   '@vue/compiler-dom@3.5.13': |  | ||||||
|     resolution: {integrity: sha512-ZOJ46sMOKUjO3e94wPdCzQ6P1Lx/vhp2RSvfaab88Ajexs0AHeV0uasYhi99WPaogmBlRHNRuly8xV75cNTMDA==} |  | ||||||
| 
 |  | ||||||
|   '@vue/compiler-sfc@3.2.47': |   '@vue/compiler-sfc@3.2.47': | ||||||
|     resolution: {integrity: sha512-rog05W+2IFfxjMcFw10tM9+f7i/+FFpZJJ5XHX72NP9eC2uRD+42M3pYcQqDXVYoj74kHMSEdQ/WmCjt8JFksQ==} |     resolution: {integrity: sha512-rog05W+2IFfxjMcFw10tM9+f7i/+FFpZJJ5XHX72NP9eC2uRD+42M3pYcQqDXVYoj74kHMSEdQ/WmCjt8JFksQ==} | ||||||
| 
 | 
 | ||||||
|   '@vue/compiler-sfc@3.3.4': |   '@vue/compiler-sfc@3.3.4': | ||||||
|     resolution: {integrity: sha512-6y/d8uw+5TkCuzBkgLS0v3lSM3hJDntFEiUORM11pQ/hKvkhSKZrXW6i69UyXlJQisJxuUEJKAWEqWbWsLeNKQ==} |     resolution: {integrity: sha512-6y/d8uw+5TkCuzBkgLS0v3lSM3hJDntFEiUORM11pQ/hKvkhSKZrXW6i69UyXlJQisJxuUEJKAWEqWbWsLeNKQ==} | ||||||
| 
 | 
 | ||||||
|   '@vue/compiler-sfc@3.5.13': |  | ||||||
|     resolution: {integrity: sha512-6VdaljMpD82w6c2749Zhf5T9u5uLBWKnVue6XWxprDobftnletJ8+oel7sexFfM3qIxNmVE7LSFGTpv6obNyaQ==} |  | ||||||
| 
 |  | ||||||
|   '@vue/compiler-ssr@3.2.47': |   '@vue/compiler-ssr@3.2.47': | ||||||
|     resolution: {integrity: sha512-wVXC+gszhulcMD8wpxMsqSOpvDZ6xKXSVWkf50Guf/S+28hTAXPDYRTbLQ3EDkOP5Xz/+SY37YiwDquKbJOgZw==} |     resolution: {integrity: sha512-wVXC+gszhulcMD8wpxMsqSOpvDZ6xKXSVWkf50Guf/S+28hTAXPDYRTbLQ3EDkOP5Xz/+SY37YiwDquKbJOgZw==} | ||||||
| 
 | 
 | ||||||
| @ -2336,9 +2330,6 @@ packages: | |||||||
|   '@vue/compiler-ssr@3.3.7': |   '@vue/compiler-ssr@3.3.7': | ||||||
|     resolution: {integrity: sha512-TxOfNVVeH3zgBc82kcUv+emNHo+vKnlRrkv8YvQU5+Y5LJGJwSNzcmLUoxD/dNzv0bhQ/F0s+InlgV0NrApJZg==} |     resolution: {integrity: sha512-TxOfNVVeH3zgBc82kcUv+emNHo+vKnlRrkv8YvQU5+Y5LJGJwSNzcmLUoxD/dNzv0bhQ/F0s+InlgV0NrApJZg==} | ||||||
| 
 | 
 | ||||||
|   '@vue/compiler-ssr@3.5.13': |  | ||||||
|     resolution: {integrity: sha512-wMH6vrYHxQl/IybKJagqbquvxpWCuVYpoUJfCqFZwa/JY1GdATAQ+TgVtgrwwMZ0D07QhA99rs/EAAWfvG6KpA==} |  | ||||||
| 
 |  | ||||||
|   '@vue/devtools-api@6.5.0': |   '@vue/devtools-api@6.5.0': | ||||||
|     resolution: {integrity: sha512-o9KfBeaBmCKl10usN4crU53fYtC1r7jJwdGKjPT24t348rHxgfpZ0xL3Xm/gLUYnc0oTp8LAmrxOeLyu6tbk2Q==} |     resolution: {integrity: sha512-o9KfBeaBmCKl10usN4crU53fYtC1r7jJwdGKjPT24t348rHxgfpZ0xL3Xm/gLUYnc0oTp8LAmrxOeLyu6tbk2Q==} | ||||||
| 
 | 
 | ||||||
| @ -2359,21 +2350,12 @@ packages: | |||||||
|   '@vue/reactivity@3.3.4': |   '@vue/reactivity@3.3.4': | ||||||
|     resolution: {integrity: sha512-kLTDLwd0B1jG08NBF3R5rqULtv/f8x3rOFByTDz4J53ttIQEDmALqKqXY0J+XQeN0aV2FBxY8nJDf88yvOPAqQ==} |     resolution: {integrity: sha512-kLTDLwd0B1jG08NBF3R5rqULtv/f8x3rOFByTDz4J53ttIQEDmALqKqXY0J+XQeN0aV2FBxY8nJDf88yvOPAqQ==} | ||||||
| 
 | 
 | ||||||
|   '@vue/reactivity@3.5.13': |  | ||||||
|     resolution: {integrity: sha512-NaCwtw8o48B9I6L1zl2p41OHo/2Z4wqYGGIK1Khu5T7yxrn+ATOixn/Udn2m+6kZKB/J7cuT9DbWWhRxqixACg==} |  | ||||||
| 
 |  | ||||||
|   '@vue/runtime-core@3.3.4': |   '@vue/runtime-core@3.3.4': | ||||||
|     resolution: {integrity: sha512-R+bqxMN6pWO7zGI4OMlmvePOdP2c93GsHFM/siJI7O2nxFRzj55pLwkpCedEY+bTMgp5miZ8CxfIZo3S+gFqvA==} |     resolution: {integrity: sha512-R+bqxMN6pWO7zGI4OMlmvePOdP2c93GsHFM/siJI7O2nxFRzj55pLwkpCedEY+bTMgp5miZ8CxfIZo3S+gFqvA==} | ||||||
| 
 | 
 | ||||||
|   '@vue/runtime-core@3.5.13': |  | ||||||
|     resolution: {integrity: sha512-Fj4YRQ3Az0WTZw1sFe+QDb0aXCerigEpw418pw1HBUKFtnQHWzwojaukAs2X/c9DQz4MQ4bsXTGlcpGxU/RCIw==} |  | ||||||
| 
 |  | ||||||
|   '@vue/runtime-dom@3.3.4': |   '@vue/runtime-dom@3.3.4': | ||||||
|     resolution: {integrity: sha512-Aj5bTJ3u5sFsUckRghsNjVTtxZQ1OyMWCr5dZRAPijF/0Vy4xEoRCwLyHXcj4D0UFbJ4lbx3gPTgg06K/GnPnQ==} |     resolution: {integrity: sha512-Aj5bTJ3u5sFsUckRghsNjVTtxZQ1OyMWCr5dZRAPijF/0Vy4xEoRCwLyHXcj4D0UFbJ4lbx3gPTgg06K/GnPnQ==} | ||||||
| 
 | 
 | ||||||
|   '@vue/runtime-dom@3.5.13': |  | ||||||
|     resolution: {integrity: sha512-dLaj94s93NYLqjLiyFzVs9X6dWhTdAlEAciC3Moq7gzAc13VJUdCnjjRurNM6uTLFATRHexHCTu/Xp3eW6yoog==} |  | ||||||
| 
 |  | ||||||
|   '@vue/server-renderer@3.3.4': |   '@vue/server-renderer@3.3.4': | ||||||
|     resolution: {integrity: sha512-Q6jDDzR23ViIb67v+vM1Dqntu+HUexQcsWKhhQa4ARVzxOY2HbC7QRW/ggkDBd5BU+uM1sV6XOAP0b216o34JQ==} |     resolution: {integrity: sha512-Q6jDDzR23ViIb67v+vM1Dqntu+HUexQcsWKhhQa4ARVzxOY2HbC7QRW/ggkDBd5BU+uM1sV6XOAP0b216o34JQ==} | ||||||
|     peerDependencies: |     peerDependencies: | ||||||
| @ -2384,11 +2366,6 @@ packages: | |||||||
|     peerDependencies: |     peerDependencies: | ||||||
|       vue: 3.3.7 |       vue: 3.3.7 | ||||||
| 
 | 
 | ||||||
|   '@vue/server-renderer@3.5.13': |  | ||||||
|     resolution: {integrity: sha512-wAi4IRJV/2SAW3htkTlB+dHeRmpTiVIK1OGLWV1yeStVSebSQQOwGwIq0D3ZIoBj2C2qpgz5+vX9iEBkTdk5YA==} |  | ||||||
|     peerDependencies: |  | ||||||
|       vue: 3.5.13 |  | ||||||
| 
 |  | ||||||
|   '@vue/shared@3.2.47': |   '@vue/shared@3.2.47': | ||||||
|     resolution: {integrity: sha512-BHGyyGN3Q97EZx0taMQ+OLNuZcW3d37ZEVmEAyeoA9ERdGvm9Irc/0Fua8SNyOtV1w6BS4q25wbMzJujO9HIfQ==} |     resolution: {integrity: sha512-BHGyyGN3Q97EZx0taMQ+OLNuZcW3d37ZEVmEAyeoA9ERdGvm9Irc/0Fua8SNyOtV1w6BS4q25wbMzJujO9HIfQ==} | ||||||
| 
 | 
 | ||||||
| @ -2398,9 +2375,6 @@ packages: | |||||||
|   '@vue/shared@3.3.7': |   '@vue/shared@3.3.7': | ||||||
|     resolution: {integrity: sha512-N/tbkINRUDExgcPTBvxNkvHGu504k8lzlNQRITVnm6YjOjwa4r0nnbd4Jb01sNpur5hAllyRJzSK5PvB9PPwRg==} |     resolution: {integrity: sha512-N/tbkINRUDExgcPTBvxNkvHGu504k8lzlNQRITVnm6YjOjwa4r0nnbd4Jb01sNpur5hAllyRJzSK5PvB9PPwRg==} | ||||||
| 
 | 
 | ||||||
|   '@vue/shared@3.5.13': |  | ||||||
|     resolution: {integrity: sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==} |  | ||||||
| 
 |  | ||||||
|   '@vue/test-utils@2.3.2': |   '@vue/test-utils@2.3.2': | ||||||
|     resolution: {integrity: sha512-hJnVaYhbrIm0yBS0+e1Y0Sj85cMyAi+PAbK4JHqMRUZ6S622Goa+G7QzkRSyvCteG8wop7tipuEbHoZo26wsSA==} |     resolution: {integrity: sha512-hJnVaYhbrIm0yBS0+e1Y0Sj85cMyAi+PAbK4JHqMRUZ6S622Goa+G7QzkRSyvCteG8wop7tipuEbHoZo26wsSA==} | ||||||
|     peerDependencies: |     peerDependencies: | ||||||
| @ -2434,8 +2408,10 @@ packages: | |||||||
|   '@vueuse/shared@10.3.0': |   '@vueuse/shared@10.3.0': | ||||||
|     resolution: {integrity: sha512-kGqCTEuFPMK4+fNWy6dUOiYmxGcUbtznMwBZLC1PubidF4VZY05B+Oht7Jh7/6x4VOWGpvu3R37WHi81cKpiqg==} |     resolution: {integrity: sha512-kGqCTEuFPMK4+fNWy6dUOiYmxGcUbtznMwBZLC1PubidF4VZY05B+Oht7Jh7/6x4VOWGpvu3R37WHi81cKpiqg==} | ||||||
| 
 | 
 | ||||||
|   '@vueuse/shared@12.0.0': |   '@vueuse/shared@13.9.0': | ||||||
|     resolution: {integrity: sha512-3i6qtcq2PIio5i/vVYidkkcgvmTjCqrf26u+Fd4LhnbBmIT6FN8y6q/GJERp8lfcB9zVEfjdV0Br0443qZuJpw==} |     resolution: {integrity: sha512-e89uuTLMh0U5cZ9iDpEI2senqPGfbPRTHM/0AaQkcxnpqjkZqDYP8rpfm7edOz8s+pOCOROEy1PIveSW8+fL5g==} | ||||||
|  |     peerDependencies: | ||||||
|  |       vue: ^3.5.0 | ||||||
| 
 | 
 | ||||||
|   '@zhead/schema@1.0.0-beta.13': |   '@zhead/schema@1.0.0-beta.13': | ||||||
|     resolution: {integrity: sha512-P1A1vRGFBhITco8Iw4/hvnDYoE/SoVrd71dW1pBFdXJb3vP+pBtoOuhbEKy0ROJGOyzQuqvFibcwzyLlWMqNiQ==} |     resolution: {integrity: sha512-P1A1vRGFBhITco8Iw4/hvnDYoE/SoVrd71dW1pBFdXJb3vP+pBtoOuhbEKy0ROJGOyzQuqvFibcwzyLlWMqNiQ==} | ||||||
| @ -2896,9 +2872,6 @@ packages: | |||||||
|   csstype@3.1.2: |   csstype@3.1.2: | ||||||
|     resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==} |     resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==} | ||||||
| 
 | 
 | ||||||
|   csstype@3.1.3: |  | ||||||
|     resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} |  | ||||||
| 
 |  | ||||||
|   dash-get@1.0.2: |   dash-get@1.0.2: | ||||||
|     resolution: {integrity: sha512-4FbVrHDwfOASx7uQVxeiCTo7ggSdYZbqs8lH+WU6ViypPlDbe9y6IP5VVUDQBv9DcnyaiPT5XT0UWHgJ64zLeQ==} |     resolution: {integrity: sha512-4FbVrHDwfOASx7uQVxeiCTo7ggSdYZbqs8lH+WU6ViypPlDbe9y6IP5VVUDQBv9DcnyaiPT5XT0UWHgJ64zLeQ==} | ||||||
| 
 | 
 | ||||||
| @ -4009,6 +3982,9 @@ packages: | |||||||
|     resolution: {integrity: sha512-pmfRbVRs/7khFrSAYnSiJ8C0D5GvzkE4Ey2pAvUcJsw1ly/p+7ut27jbJrjY79BpAJQJ4gXYFtK6d1Aub+9baQ==} |     resolution: {integrity: sha512-pmfRbVRs/7khFrSAYnSiJ8C0D5GvzkE4Ey2pAvUcJsw1ly/p+7ut27jbJrjY79BpAJQJ4gXYFtK6d1Aub+9baQ==} | ||||||
|     hasBin: true |     hasBin: true | ||||||
| 
 | 
 | ||||||
|  |   jose@6.1.0: | ||||||
|  |     resolution: {integrity: sha512-TTQJyoEoKcC1lscpVDCSsVgYzUDg/0Bt3WE//WiTPK6uOCQC2KZS4MpugbMWt/zyjkopgZoXhZuCi00gLudfUA==} | ||||||
|  | 
 | ||||||
|   js-base64@3.7.7: |   js-base64@3.7.7: | ||||||
|     resolution: {integrity: sha512-7rCnleh0z2CkXhH67J8K1Ytz0b2Y+yxTPL+/KOJoa20hfnVQ/3/T6W/KflYI4bRHRagNeXeU2bkNGI3v1oS/lw==} |     resolution: {integrity: sha512-7rCnleh0z2CkXhH67J8K1Ytz0b2Y+yxTPL+/KOJoa20hfnVQ/3/T6W/KflYI4bRHRagNeXeU2bkNGI3v1oS/lw==} | ||||||
| 
 | 
 | ||||||
| @ -4868,10 +4844,6 @@ packages: | |||||||
|     resolution: {integrity: sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==} |     resolution: {integrity: sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==} | ||||||
|     hasBin: true |     hasBin: true | ||||||
| 
 | 
 | ||||||
|   resolve@1.22.8: |  | ||||||
|     resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} |  | ||||||
|     hasBin: true |  | ||||||
| 
 |  | ||||||
|   resolve@1.22.9: |   resolve@1.22.9: | ||||||
|     resolution: {integrity: sha512-QxrmX1DzraFIi9PxdG5VkRfRwIgjwyud+z/iBwfRRrVmHc+P9Q7u2lSSpQ6bjr2gy5lrqIiU9vb6iAeGf2400A==} |     resolution: {integrity: sha512-QxrmX1DzraFIi9PxdG5VkRfRwIgjwyud+z/iBwfRRrVmHc+P9Q7u2lSSpQ6bjr2gy5lrqIiU9vb6iAeGf2400A==} | ||||||
|     hasBin: true |     hasBin: true | ||||||
| @ -4962,11 +4934,6 @@ packages: | |||||||
|     engines: {node: '>=10'} |     engines: {node: '>=10'} | ||||||
|     hasBin: true |     hasBin: true | ||||||
| 
 | 
 | ||||||
|   semver@7.5.4: |  | ||||||
|     resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} |  | ||||||
|     engines: {node: '>=10'} |  | ||||||
|     hasBin: true |  | ||||||
| 
 |  | ||||||
|   semver@7.6.3: |   semver@7.6.3: | ||||||
|     resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} |     resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} | ||||||
|     engines: {node: '>=10'} |     engines: {node: '>=10'} | ||||||
| @ -5071,6 +5038,7 @@ packages: | |||||||
|   source-map@0.8.0-beta.0: |   source-map@0.8.0-beta.0: | ||||||
|     resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} |     resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} | ||||||
|     engines: {node: '>= 8'} |     engines: {node: '>= 8'} | ||||||
|  |     deprecated: The work that was done in this beta branch won't be included in future versions | ||||||
| 
 | 
 | ||||||
|   sourcemap-codec@1.4.8: |   sourcemap-codec@1.4.8: | ||||||
|     resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} |     resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} | ||||||
| @ -5701,14 +5669,6 @@ packages: | |||||||
|   vue@3.3.4: |   vue@3.3.4: | ||||||
|     resolution: {integrity: sha512-VTyEYn3yvIeY1Py0WaYGZsXnz3y5UnGi62GjVEqvEGPl6nxbOrCXbVOTQWBEJUqAyTUk2uJ5JLVnYJ6ZzGbrSw==} |     resolution: {integrity: sha512-VTyEYn3yvIeY1Py0WaYGZsXnz3y5UnGi62GjVEqvEGPl6nxbOrCXbVOTQWBEJUqAyTUk2uJ5JLVnYJ6ZzGbrSw==} | ||||||
| 
 | 
 | ||||||
|   vue@3.5.13: |  | ||||||
|     resolution: {integrity: sha512-wmeiSMxkZCSc+PM2w2VRsOYAZC8GdipNFRTsLSfodVqI9mbejKeXEGr8SckuLnrQPGe3oJN5c3K0vpoU9q/wCQ==} |  | ||||||
|     peerDependencies: |  | ||||||
|       typescript: '*' |  | ||||||
|     peerDependenciesMeta: |  | ||||||
|       typescript: |  | ||||||
|         optional: true |  | ||||||
| 
 |  | ||||||
|   vuedraggable@4.1.0: |   vuedraggable@4.1.0: | ||||||
|     resolution: {integrity: sha512-FU5HCWBmsf20GpP3eudURW3WdWTKIbEIQxh9/8GE806hydR9qZqRRxRE3RjqX7PkuLuMQG/A7n3cfj9rCEchww==} |     resolution: {integrity: sha512-FU5HCWBmsf20GpP3eudURW3WdWTKIbEIQxh9/8GE806hydR9qZqRRxRE3RjqX7PkuLuMQG/A7n3cfj9rCEchww==} | ||||||
|     peerDependencies: |     peerDependencies: | ||||||
| @ -6117,7 +6077,7 @@ snapshots: | |||||||
|       '@babel/traverse': 7.23.2 |       '@babel/traverse': 7.23.2 | ||||||
|       '@babel/types': 7.23.0 |       '@babel/types': 7.23.0 | ||||||
|       convert-source-map: 2.0.0 |       convert-source-map: 2.0.0 | ||||||
|       debug: 4.3.4 |       debug: 4.4.0 | ||||||
|       gensync: 1.0.0-beta.2 |       gensync: 1.0.0-beta.2 | ||||||
|       json5: 2.2.3 |       json5: 2.2.3 | ||||||
|       semver: 6.3.1 |       semver: 6.3.1 | ||||||
| @ -7000,7 +6960,7 @@ snapshots: | |||||||
|       '@babel/helper-split-export-declaration': 7.22.6 |       '@babel/helper-split-export-declaration': 7.22.6 | ||||||
|       '@babel/parser': 7.22.10 |       '@babel/parser': 7.22.10 | ||||||
|       '@babel/types': 7.22.10 |       '@babel/types': 7.22.10 | ||||||
|       debug: 4.3.4 |       debug: 4.4.0 | ||||||
|       globals: 11.12.0 |       globals: 11.12.0 | ||||||
|     transitivePeerDependencies: |     transitivePeerDependencies: | ||||||
|       - supports-color |       - supports-color | ||||||
| @ -7015,7 +6975,7 @@ snapshots: | |||||||
|       '@babel/helper-split-export-declaration': 7.22.5 |       '@babel/helper-split-export-declaration': 7.22.5 | ||||||
|       '@babel/parser': 7.22.5 |       '@babel/parser': 7.22.5 | ||||||
|       '@babel/types': 7.22.5 |       '@babel/types': 7.22.5 | ||||||
|       debug: 4.3.4 |       debug: 4.4.0 | ||||||
|       globals: 11.12.0 |       globals: 11.12.0 | ||||||
|     transitivePeerDependencies: |     transitivePeerDependencies: | ||||||
|       - supports-color |       - supports-color | ||||||
| @ -7030,7 +6990,7 @@ snapshots: | |||||||
|       '@babel/helper-split-export-declaration': 7.22.6 |       '@babel/helper-split-export-declaration': 7.22.6 | ||||||
|       '@babel/parser': 7.23.0 |       '@babel/parser': 7.23.0 | ||||||
|       '@babel/types': 7.23.0 |       '@babel/types': 7.23.0 | ||||||
|       debug: 4.3.4 |       debug: 4.4.0 | ||||||
|       globals: 11.12.0 |       globals: 11.12.0 | ||||||
|     transitivePeerDependencies: |     transitivePeerDependencies: | ||||||
|       - supports-color |       - supports-color | ||||||
| @ -7401,7 +7361,7 @@ snapshots: | |||||||
| 
 | 
 | ||||||
|   '@linaria/logger@4.0.0': |   '@linaria/logger@4.0.0': | ||||||
|     dependencies: |     dependencies: | ||||||
|       debug: 4.3.4 |       debug: 4.4.0 | ||||||
|       picocolors: 1.0.0 |       picocolors: 1.0.0 | ||||||
|     transitivePeerDependencies: |     transitivePeerDependencies: | ||||||
|       - supports-color |       - supports-color | ||||||
| @ -7883,7 +7843,7 @@ snapshots: | |||||||
|       graphemer: 1.4.0 |       graphemer: 1.4.0 | ||||||
|       ignore: 5.2.4 |       ignore: 5.2.4 | ||||||
|       natural-compare: 1.4.0 |       natural-compare: 1.4.0 | ||||||
|       semver: 7.5.4 |       semver: 7.6.3 | ||||||
|       ts-api-utils: 1.0.1(typescript@5.2.2) |       ts-api-utils: 1.0.1(typescript@5.2.2) | ||||||
|     optionalDependencies: |     optionalDependencies: | ||||||
|       typescript: 5.2.2 |       typescript: 5.2.2 | ||||||
| @ -7940,10 +7900,10 @@ snapshots: | |||||||
|     dependencies: |     dependencies: | ||||||
|       '@typescript-eslint/types': 5.60.0 |       '@typescript-eslint/types': 5.60.0 | ||||||
|       '@typescript-eslint/visitor-keys': 5.60.0 |       '@typescript-eslint/visitor-keys': 5.60.0 | ||||||
|       debug: 4.3.4 |       debug: 4.4.0 | ||||||
|       globby: 11.1.0 |       globby: 11.1.0 | ||||||
|       is-glob: 4.0.3 |       is-glob: 4.0.3 | ||||||
|       semver: 7.5.4 |       semver: 7.6.3 | ||||||
|       tsutils: 3.21.0(typescript@5.2.2) |       tsutils: 3.21.0(typescript@5.2.2) | ||||||
|     optionalDependencies: |     optionalDependencies: | ||||||
|       typescript: 5.2.2 |       typescript: 5.2.2 | ||||||
| @ -7957,7 +7917,7 @@ snapshots: | |||||||
|       debug: 4.3.4 |       debug: 4.3.4 | ||||||
|       globby: 11.1.0 |       globby: 11.1.0 | ||||||
|       is-glob: 4.0.3 |       is-glob: 4.0.3 | ||||||
|       semver: 7.5.4 |       semver: 7.6.3 | ||||||
|       ts-api-utils: 1.0.1(typescript@5.2.2) |       ts-api-utils: 1.0.1(typescript@5.2.2) | ||||||
|     optionalDependencies: |     optionalDependencies: | ||||||
|       typescript: 5.2.2 |       typescript: 5.2.2 | ||||||
| @ -7968,10 +7928,10 @@ snapshots: | |||||||
|     dependencies: |     dependencies: | ||||||
|       '@typescript-eslint/types': 6.9.1 |       '@typescript-eslint/types': 6.9.1 | ||||||
|       '@typescript-eslint/visitor-keys': 6.9.1 |       '@typescript-eslint/visitor-keys': 6.9.1 | ||||||
|       debug: 4.3.4 |       debug: 4.4.0 | ||||||
|       globby: 11.1.0 |       globby: 11.1.0 | ||||||
|       is-glob: 4.0.3 |       is-glob: 4.0.3 | ||||||
|       semver: 7.5.4 |       semver: 7.6.3 | ||||||
|       ts-api-utils: 1.0.1(typescript@5.2.2) |       ts-api-utils: 1.0.1(typescript@5.2.2) | ||||||
|     optionalDependencies: |     optionalDependencies: | ||||||
|       typescript: 5.2.2 |       typescript: 5.2.2 | ||||||
| @ -7988,7 +7948,7 @@ snapshots: | |||||||
|       '@typescript-eslint/typescript-estree': 5.60.0(typescript@5.2.2) |       '@typescript-eslint/typescript-estree': 5.60.0(typescript@5.2.2) | ||||||
|       eslint: 8.47.0 |       eslint: 8.47.0 | ||||||
|       eslint-scope: 5.1.1 |       eslint-scope: 5.1.1 | ||||||
|       semver: 7.5.4 |       semver: 7.6.3 | ||||||
|     transitivePeerDependencies: |     transitivePeerDependencies: | ||||||
|       - supports-color |       - supports-color | ||||||
|       - typescript |       - typescript | ||||||
| @ -8002,7 +7962,7 @@ snapshots: | |||||||
|       '@typescript-eslint/types': 6.4.1 |       '@typescript-eslint/types': 6.4.1 | ||||||
|       '@typescript-eslint/typescript-estree': 6.4.1(typescript@5.2.2) |       '@typescript-eslint/typescript-estree': 6.4.1(typescript@5.2.2) | ||||||
|       eslint: 8.47.0 |       eslint: 8.47.0 | ||||||
|       semver: 7.5.4 |       semver: 7.6.3 | ||||||
|     transitivePeerDependencies: |     transitivePeerDependencies: | ||||||
|       - supports-color |       - supports-color | ||||||
|       - typescript |       - typescript | ||||||
| @ -8016,7 +7976,7 @@ snapshots: | |||||||
|       '@typescript-eslint/types': 6.9.1 |       '@typescript-eslint/types': 6.9.1 | ||||||
|       '@typescript-eslint/typescript-estree': 6.9.1(typescript@5.2.2) |       '@typescript-eslint/typescript-estree': 6.9.1(typescript@5.2.2) | ||||||
|       eslint: 8.47.0 |       eslint: 8.47.0 | ||||||
|       semver: 7.5.4 |       semver: 7.6.3 | ||||||
|     transitivePeerDependencies: |     transitivePeerDependencies: | ||||||
|       - supports-color |       - supports-color | ||||||
|       - typescript |       - typescript | ||||||
| @ -8049,15 +8009,13 @@ snapshots: | |||||||
|     dependencies: |     dependencies: | ||||||
|       '@unhead/schema': 0.5.1 |       '@unhead/schema': 0.5.1 | ||||||
| 
 | 
 | ||||||
|   '@unhead/vue@0.5.1(typescript@5.2.2)(vue@3.3.4)': |   '@unhead/vue@0.5.1(vue@3.3.4)': | ||||||
|     dependencies: |     dependencies: | ||||||
|       '@unhead/dom': 0.5.1 |       '@unhead/dom': 0.5.1 | ||||||
|       '@unhead/schema': 0.5.1 |       '@unhead/schema': 0.5.1 | ||||||
|       '@vueuse/shared': 12.0.0(typescript@5.2.2) |       '@vueuse/shared': 13.9.0(vue@3.3.4) | ||||||
|       unhead: 0.5.1 |       unhead: 0.5.1 | ||||||
|       vue: 3.3.4 |       vue: 3.3.4 | ||||||
|     transitivePeerDependencies: |  | ||||||
|       - typescript |  | ||||||
| 
 | 
 | ||||||
|   '@unocss/astro@0.65.1(rollup@2.79.2)(vite@4.4.9(@types/node@18.15.11)(less@4.1.3)(terser@5.37.0))(vue@3.3.4)': |   '@unocss/astro@0.65.1(rollup@2.79.2)(vite@4.4.9(@types/node@18.15.11)(less@4.1.3)(terser@5.37.0))(vue@3.3.4)': | ||||||
|     dependencies: |     dependencies: | ||||||
| @ -8341,14 +8299,6 @@ snapshots: | |||||||
|       source-map-js: 1.0.2 |       source-map-js: 1.0.2 | ||||||
|     optional: true |     optional: true | ||||||
| 
 | 
 | ||||||
|   '@vue/compiler-core@3.5.13': |  | ||||||
|     dependencies: |  | ||||||
|       '@babel/parser': 7.26.3 |  | ||||||
|       '@vue/shared': 3.5.13 |  | ||||||
|       entities: 4.5.0 |  | ||||||
|       estree-walker: 2.0.2 |  | ||||||
|       source-map-js: 1.2.1 |  | ||||||
| 
 |  | ||||||
|   '@vue/compiler-dom@3.2.47': |   '@vue/compiler-dom@3.2.47': | ||||||
|     dependencies: |     dependencies: | ||||||
|       '@vue/compiler-core': 3.2.47 |       '@vue/compiler-core': 3.2.47 | ||||||
| @ -8365,11 +8315,6 @@ snapshots: | |||||||
|       '@vue/shared': 3.3.7 |       '@vue/shared': 3.3.7 | ||||||
|     optional: true |     optional: true | ||||||
| 
 | 
 | ||||||
|   '@vue/compiler-dom@3.5.13': |  | ||||||
|     dependencies: |  | ||||||
|       '@vue/compiler-core': 3.5.13 |  | ||||||
|       '@vue/shared': 3.5.13 |  | ||||||
| 
 |  | ||||||
|   '@vue/compiler-sfc@3.2.47': |   '@vue/compiler-sfc@3.2.47': | ||||||
|     dependencies: |     dependencies: | ||||||
|       '@babel/parser': 7.21.4 |       '@babel/parser': 7.21.4 | ||||||
| @ -8396,18 +8341,6 @@ snapshots: | |||||||
|       postcss: 8.4.28 |       postcss: 8.4.28 | ||||||
|       source-map-js: 1.0.2 |       source-map-js: 1.0.2 | ||||||
| 
 | 
 | ||||||
|   '@vue/compiler-sfc@3.5.13': |  | ||||||
|     dependencies: |  | ||||||
|       '@babel/parser': 7.26.3 |  | ||||||
|       '@vue/compiler-core': 3.5.13 |  | ||||||
|       '@vue/compiler-dom': 3.5.13 |  | ||||||
|       '@vue/compiler-ssr': 3.5.13 |  | ||||||
|       '@vue/shared': 3.5.13 |  | ||||||
|       estree-walker: 2.0.2 |  | ||||||
|       magic-string: 0.30.15 |  | ||||||
|       postcss: 8.4.49 |  | ||||||
|       source-map-js: 1.2.1 |  | ||||||
| 
 |  | ||||||
|   '@vue/compiler-ssr@3.2.47': |   '@vue/compiler-ssr@3.2.47': | ||||||
|     dependencies: |     dependencies: | ||||||
|       '@vue/compiler-dom': 3.2.47 |       '@vue/compiler-dom': 3.2.47 | ||||||
| @ -8424,11 +8357,6 @@ snapshots: | |||||||
|       '@vue/shared': 3.3.7 |       '@vue/shared': 3.3.7 | ||||||
|     optional: true |     optional: true | ||||||
| 
 | 
 | ||||||
|   '@vue/compiler-ssr@3.5.13': |  | ||||||
|     dependencies: |  | ||||||
|       '@vue/compiler-dom': 3.5.13 |  | ||||||
|       '@vue/shared': 3.5.13 |  | ||||||
| 
 |  | ||||||
|   '@vue/devtools-api@6.5.0': {} |   '@vue/devtools-api@6.5.0': {} | ||||||
| 
 | 
 | ||||||
|   '@vue/language-core@1.8.1(typescript@5.2.2)': |   '@vue/language-core@1.8.1(typescript@5.2.2)': | ||||||
| @ -8464,33 +8392,17 @@ snapshots: | |||||||
|     dependencies: |     dependencies: | ||||||
|       '@vue/shared': 3.3.4 |       '@vue/shared': 3.3.4 | ||||||
| 
 | 
 | ||||||
|   '@vue/reactivity@3.5.13': |  | ||||||
|     dependencies: |  | ||||||
|       '@vue/shared': 3.5.13 |  | ||||||
| 
 |  | ||||||
|   '@vue/runtime-core@3.3.4': |   '@vue/runtime-core@3.3.4': | ||||||
|     dependencies: |     dependencies: | ||||||
|       '@vue/reactivity': 3.3.4 |       '@vue/reactivity': 3.3.4 | ||||||
|       '@vue/shared': 3.3.4 |       '@vue/shared': 3.3.4 | ||||||
| 
 | 
 | ||||||
|   '@vue/runtime-core@3.5.13': |  | ||||||
|     dependencies: |  | ||||||
|       '@vue/reactivity': 3.5.13 |  | ||||||
|       '@vue/shared': 3.5.13 |  | ||||||
| 
 |  | ||||||
|   '@vue/runtime-dom@3.3.4': |   '@vue/runtime-dom@3.3.4': | ||||||
|     dependencies: |     dependencies: | ||||||
|       '@vue/runtime-core': 3.3.4 |       '@vue/runtime-core': 3.3.4 | ||||||
|       '@vue/shared': 3.3.4 |       '@vue/shared': 3.3.4 | ||||||
|       csstype: 3.1.2 |       csstype: 3.1.2 | ||||||
| 
 | 
 | ||||||
|   '@vue/runtime-dom@3.5.13': |  | ||||||
|     dependencies: |  | ||||||
|       '@vue/reactivity': 3.5.13 |  | ||||||
|       '@vue/runtime-core': 3.5.13 |  | ||||||
|       '@vue/shared': 3.5.13 |  | ||||||
|       csstype: 3.1.3 |  | ||||||
| 
 |  | ||||||
|   '@vue/server-renderer@3.3.4(vue@3.3.4)': |   '@vue/server-renderer@3.3.4(vue@3.3.4)': | ||||||
|     dependencies: |     dependencies: | ||||||
|       '@vue/compiler-ssr': 3.3.4 |       '@vue/compiler-ssr': 3.3.4 | ||||||
| @ -8504,12 +8416,6 @@ snapshots: | |||||||
|       vue: 3.3.4 |       vue: 3.3.4 | ||||||
|     optional: true |     optional: true | ||||||
| 
 | 
 | ||||||
|   '@vue/server-renderer@3.5.13(vue@3.5.13(typescript@5.2.2))': |  | ||||||
|     dependencies: |  | ||||||
|       '@vue/compiler-ssr': 3.5.13 |  | ||||||
|       '@vue/shared': 3.5.13 |  | ||||||
|       vue: 3.5.13(typescript@5.2.2) |  | ||||||
| 
 |  | ||||||
|   '@vue/shared@3.2.47': {} |   '@vue/shared@3.2.47': {} | ||||||
| 
 | 
 | ||||||
|   '@vue/shared@3.3.4': {} |   '@vue/shared@3.3.4': {} | ||||||
| @ -8517,8 +8423,6 @@ snapshots: | |||||||
|   '@vue/shared@3.3.7': |   '@vue/shared@3.3.7': | ||||||
|     optional: true |     optional: true | ||||||
| 
 | 
 | ||||||
|   '@vue/shared@3.5.13': {} |  | ||||||
| 
 |  | ||||||
|   '@vue/test-utils@2.3.2(vue@3.3.4)': |   '@vue/test-utils@2.3.2(vue@3.3.4)': | ||||||
|     dependencies: |     dependencies: | ||||||
|       js-beautify: 1.14.6 |       js-beautify: 1.14.6 | ||||||
| @ -8546,14 +8450,12 @@ snapshots: | |||||||
|       - '@vue/composition-api' |       - '@vue/composition-api' | ||||||
|       - vue |       - vue | ||||||
| 
 | 
 | ||||||
|   '@vueuse/head@1.0.0(typescript@5.2.2)(vue@3.3.4)': |   '@vueuse/head@1.0.0(vue@3.3.4)': | ||||||
|     dependencies: |     dependencies: | ||||||
|       '@unhead/schema': 0.5.1 |       '@unhead/schema': 0.5.1 | ||||||
|       '@unhead/ssr': 0.5.1 |       '@unhead/ssr': 0.5.1 | ||||||
|       '@unhead/vue': 0.5.1(typescript@5.2.2)(vue@3.3.4) |       '@unhead/vue': 0.5.1(vue@3.3.4) | ||||||
|       vue: 3.3.4 |       vue: 3.3.4 | ||||||
|     transitivePeerDependencies: |  | ||||||
|       - typescript |  | ||||||
| 
 | 
 | ||||||
|   '@vueuse/metadata@10.3.0': {} |   '@vueuse/metadata@10.3.0': {} | ||||||
| 
 | 
 | ||||||
| @ -8580,11 +8482,9 @@ snapshots: | |||||||
|       - '@vue/composition-api' |       - '@vue/composition-api' | ||||||
|       - vue |       - vue | ||||||
| 
 | 
 | ||||||
|   '@vueuse/shared@12.0.0(typescript@5.2.2)': |   '@vueuse/shared@13.9.0(vue@3.3.4)': | ||||||
|     dependencies: |     dependencies: | ||||||
|       vue: 3.5.13(typescript@5.2.2) |       vue: 3.3.4 | ||||||
|     transitivePeerDependencies: |  | ||||||
|       - typescript |  | ||||||
| 
 | 
 | ||||||
|   '@zhead/schema@1.0.0-beta.13': {} |   '@zhead/schema@1.0.0-beta.13': {} | ||||||
| 
 | 
 | ||||||
| @ -8780,7 +8680,7 @@ snapshots: | |||||||
| 
 | 
 | ||||||
|   builtins@5.0.1: |   builtins@5.0.1: | ||||||
|     dependencies: |     dependencies: | ||||||
|       semver: 7.5.4 |       semver: 7.6.3 | ||||||
| 
 | 
 | ||||||
|   bundle-require@5.0.0(esbuild@0.23.1): |   bundle-require@5.0.0(esbuild@0.23.1): | ||||||
|     dependencies: |     dependencies: | ||||||
| @ -9084,8 +8984,6 @@ snapshots: | |||||||
| 
 | 
 | ||||||
|   csstype@3.1.2: {} |   csstype@3.1.2: {} | ||||||
| 
 | 
 | ||||||
|   csstype@3.1.3: {} |  | ||||||
| 
 |  | ||||||
|   dash-get@1.0.2: {} |   dash-get@1.0.2: {} | ||||||
| 
 | 
 | ||||||
|   data-uri-to-buffer@4.0.1: {} |   data-uri-to-buffer@4.0.1: {} | ||||||
| @ -9529,7 +9427,7 @@ snapshots: | |||||||
|       is-core-module: 2.13.0 |       is-core-module: 2.13.0 | ||||||
|       minimatch: 3.1.2 |       minimatch: 3.1.2 | ||||||
|       resolve: 1.22.4 |       resolve: 1.22.4 | ||||||
|       semver: 7.5.4 |       semver: 7.6.3 | ||||||
| 
 | 
 | ||||||
|   eslint-plugin-no-only-tests@3.1.0: {} |   eslint-plugin-no-only-tests@3.1.0: {} | ||||||
| 
 | 
 | ||||||
| @ -9553,7 +9451,7 @@ snapshots: | |||||||
|       read-pkg-up: 7.0.1 |       read-pkg-up: 7.0.1 | ||||||
|       regexp-tree: 0.1.27 |       regexp-tree: 0.1.27 | ||||||
|       regjsparser: 0.10.0 |       regjsparser: 0.10.0 | ||||||
|       semver: 7.5.4 |       semver: 7.6.3 | ||||||
|       strip-indent: 3.0.0 |       strip-indent: 3.0.0 | ||||||
| 
 | 
 | ||||||
|   eslint-plugin-unused-imports@3.0.0(@typescript-eslint/eslint-plugin@6.4.1(@typescript-eslint/parser@6.4.1(eslint@8.47.0)(typescript@5.2.2))(eslint@8.47.0)(typescript@5.2.2))(eslint@8.47.0): |   eslint-plugin-unused-imports@3.0.0(@typescript-eslint/eslint-plugin@6.4.1(@typescript-eslint/parser@6.4.1(eslint@8.47.0)(typescript@5.2.2))(eslint@8.47.0)(typescript@5.2.2))(eslint@8.47.0): | ||||||
| @ -9570,7 +9468,7 @@ snapshots: | |||||||
|       natural-compare: 1.4.0 |       natural-compare: 1.4.0 | ||||||
|       nth-check: 2.1.1 |       nth-check: 2.1.1 | ||||||
|       postcss-selector-parser: 6.0.13 |       postcss-selector-parser: 6.0.13 | ||||||
|       semver: 7.5.4 |       semver: 7.6.3 | ||||||
|       vue-eslint-parser: 9.3.1(eslint@8.47.0) |       vue-eslint-parser: 9.3.1(eslint@8.47.0) | ||||||
|       xml-name-validator: 4.0.0 |       xml-name-validator: 4.0.0 | ||||||
|     transitivePeerDependencies: |     transitivePeerDependencies: | ||||||
| @ -10321,6 +10219,8 @@ snapshots: | |||||||
| 
 | 
 | ||||||
|   jiti@2.0.0-beta.3: {} |   jiti@2.0.0-beta.3: {} | ||||||
| 
 | 
 | ||||||
|  |   jose@6.1.0: {} | ||||||
|  | 
 | ||||||
|   js-base64@3.7.7: {} |   js-base64@3.7.7: {} | ||||||
| 
 | 
 | ||||||
|   js-beautify@1.14.6: |   js-beautify@1.14.6: | ||||||
| @ -10400,7 +10300,7 @@ snapshots: | |||||||
|       acorn: 8.10.0 |       acorn: 8.10.0 | ||||||
|       eslint-visitor-keys: 3.4.3 |       eslint-visitor-keys: 3.4.3 | ||||||
|       espree: 9.6.1 |       espree: 9.6.1 | ||||||
|       semver: 7.5.4 |       semver: 7.6.3 | ||||||
| 
 | 
 | ||||||
|   jsonc-parser@3.2.0: {} |   jsonc-parser@3.2.0: {} | ||||||
| 
 | 
 | ||||||
| @ -10753,7 +10653,7 @@ snapshots: | |||||||
|   normalize-package-data@2.5.0: |   normalize-package-data@2.5.0: | ||||||
|     dependencies: |     dependencies: | ||||||
|       hosted-git-info: 2.8.9 |       hosted-git-info: 2.8.9 | ||||||
|       resolve: 1.22.8 |       resolve: 1.22.9 | ||||||
|       semver: 5.7.2 |       semver: 5.7.2 | ||||||
|       validate-npm-package-license: 3.0.4 |       validate-npm-package-license: 3.0.4 | ||||||
| 
 | 
 | ||||||
| @ -11267,13 +11167,7 @@ snapshots: | |||||||
| 
 | 
 | ||||||
|   resolve@1.22.4: |   resolve@1.22.4: | ||||||
|     dependencies: |     dependencies: | ||||||
|       is-core-module: 2.13.1 |       is-core-module: 2.16.0 | ||||||
|       path-parse: 1.0.7 |  | ||||||
|       supports-preserve-symlinks-flag: 1.0.0 |  | ||||||
| 
 |  | ||||||
|   resolve@1.22.8: |  | ||||||
|     dependencies: |  | ||||||
|       is-core-module: 2.13.1 |  | ||||||
|       path-parse: 1.0.7 |       path-parse: 1.0.7 | ||||||
|       supports-preserve-symlinks-flag: 1.0.0 |       supports-preserve-symlinks-flag: 1.0.0 | ||||||
| 
 | 
 | ||||||
| @ -11357,10 +11251,6 @@ snapshots: | |||||||
|     dependencies: |     dependencies: | ||||||
|       lru-cache: 6.0.0 |       lru-cache: 6.0.0 | ||||||
| 
 | 
 | ||||||
|   semver@7.5.4: |  | ||||||
|     dependencies: |  | ||||||
|       lru-cache: 6.0.0 |  | ||||||
| 
 |  | ||||||
|   semver@7.6.3: {} |   semver@7.6.3: {} | ||||||
| 
 | 
 | ||||||
|   sentence-case@2.1.1: |   sentence-case@2.1.1: | ||||||
| @ -12132,7 +12022,7 @@ snapshots: | |||||||
|       espree: 9.6.1 |       espree: 9.6.1 | ||||||
|       esquery: 1.5.0 |       esquery: 1.5.0 | ||||||
|       lodash: 4.17.21 |       lodash: 4.17.21 | ||||||
|       semver: 7.5.4 |       semver: 7.6.3 | ||||||
|     transitivePeerDependencies: |     transitivePeerDependencies: | ||||||
|       - supports-color |       - supports-color | ||||||
| 
 | 
 | ||||||
| @ -12180,16 +12070,6 @@ snapshots: | |||||||
|       '@vue/server-renderer': 3.3.4(vue@3.3.4) |       '@vue/server-renderer': 3.3.4(vue@3.3.4) | ||||||
|       '@vue/shared': 3.3.4 |       '@vue/shared': 3.3.4 | ||||||
| 
 | 
 | ||||||
|   vue@3.5.13(typescript@5.2.2): |  | ||||||
|     dependencies: |  | ||||||
|       '@vue/compiler-dom': 3.5.13 |  | ||||||
|       '@vue/compiler-sfc': 3.5.13 |  | ||||||
|       '@vue/runtime-dom': 3.5.13 |  | ||||||
|       '@vue/server-renderer': 3.5.13(vue@3.5.13(typescript@5.2.2)) |  | ||||||
|       '@vue/shared': 3.5.13 |  | ||||||
|     optionalDependencies: |  | ||||||
|       typescript: 5.2.2 |  | ||||||
| 
 |  | ||||||
|   vuedraggable@4.1.0(vue@3.3.4): |   vuedraggable@4.1.0(vue@3.3.4): | ||||||
|     dependencies: |     dependencies: | ||||||
|       sortablejs: 1.14.0 |       sortablejs: 1.14.0 | ||||||
|  | |||||||
| @ -66,6 +66,7 @@ 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 jwtGenerator } from './jwt-generator'; | ||||||
| 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'; | ||||||
| @ -91,7 +92,20 @@ import { tool as yamlViewer } from './yaml-viewer'; | |||||||
| export const toolsByCategory: ToolCategory[] = [ | export const toolsByCategory: ToolCategory[] = [ | ||||||
|   { |   { | ||||||
|     name: 'Crypto', |     name: 'Crypto', | ||||||
|     components: [tokenGenerator, hashText, bcrypt, uuidGenerator, ulidGenerator, cypher, bip39, hmacGenerator, rsaKeyPairGenerator, passwordStrengthAnalyser, pdfSignatureChecker], |     components: [ | ||||||
|  |       tokenGenerator, | ||||||
|  |       jwtGenerator, | ||||||
|  |       hashText, | ||||||
|  |       bcrypt, | ||||||
|  |       uuidGenerator, | ||||||
|  |       ulidGenerator, | ||||||
|  |       cypher, | ||||||
|  |       bip39, | ||||||
|  |       hmacGenerator, | ||||||
|  |       rsaKeyPairGenerator, | ||||||
|  |       passwordStrengthAnalyser, | ||||||
|  |       pdfSignatureChecker, | ||||||
|  |     ], | ||||||
|   }, |   }, | ||||||
|   { |   { | ||||||
|     name: 'Converter', |     name: 'Converter', | ||||||
| @ -164,7 +178,14 @@ export const toolsByCategory: ToolCategory[] = [ | |||||||
|   }, |   }, | ||||||
|   { |   { | ||||||
|     name: 'Network', |     name: 'Network', | ||||||
|     components: [ipv4SubnetCalculator, ipv4AddressConverter, ipv4RangeExpander, macAddressLookup, macAddressGenerator, ipv6UlaGenerator], |     components: [ | ||||||
|  |       ipv4SubnetCalculator, | ||||||
|  |       ipv4AddressConverter, | ||||||
|  |       ipv4RangeExpander, | ||||||
|  |       macAddressLookup, | ||||||
|  |       macAddressGenerator, | ||||||
|  |       ipv6UlaGenerator, | ||||||
|  |     ], | ||||||
|   }, |   }, | ||||||
|   { |   { | ||||||
|     name: 'Math', |     name: 'Math', | ||||||
| @ -194,5 +215,5 @@ export const toolsByCategory: ToolCategory[] = [ | |||||||
| 
 | 
 | ||||||
| export const tools = toolsByCategory.flatMap(({ components }) => components); | export const tools = toolsByCategory.flatMap(({ components }) => components); | ||||||
| export const toolsWithCategory = toolsByCategory.flatMap(({ components, name }) => | export const toolsWithCategory = toolsByCategory.flatMap(({ components, name }) => | ||||||
|   components.map(tool => ({ category: name, ...tool })), |   components.map((tool) => ({ category: name, ...tool })), | ||||||
| ); | ); | ||||||
|  | |||||||
							
								
								
									
										12
									
								
								src/tools/jwt-generator/index.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								src/tools/jwt-generator/index.ts
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,12 @@ | |||||||
|  | import { ArrowsShuffle } from '@vicons/tabler'; | ||||||
|  | import { defineTool } from '../tool'; | ||||||
|  | import { translate } from '@/plugins/i18n.plugin'; | ||||||
|  | 
 | ||||||
|  | export const tool = defineTool({ | ||||||
|  |   name: translate('tools.jwt-generator.title'), | ||||||
|  |   path: '/jwt-generator', | ||||||
|  |   description: translate('tools.jwt-generator.description'), | ||||||
|  |   keywords: ['token', 'random', 'string', 'alphanumeric', 'symbols', 'number', 'letters', 'lowercase', 'uppercase', 'password'], | ||||||
|  |   component: () => import('./jwt-generator.tool.vue'), | ||||||
|  |   icon: ArrowsShuffle, | ||||||
|  | }); | ||||||
							
								
								
									
										112
									
								
								src/tools/jwt-generator/jwt-generator.tool.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										112
									
								
								src/tools/jwt-generator/jwt-generator.tool.vue
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,112 @@ | |||||||
|  | <script setup lang="ts"> | ||||||
|  | import JSON5 from 'json5'; | ||||||
|  | import * as jose from 'jose'; | ||||||
|  | import { useCopy } from '@/composable/copy'; | ||||||
|  | import type { UseValidationRule } from '@/composable/validation'; | ||||||
|  | 
 | ||||||
|  | const algs = ['HS256', 'HS384', 'HS512'] as const; | ||||||
|  | 
 | ||||||
|  | type Encoding = 'JWT'; | ||||||
|  | 
 | ||||||
|  | const rules: UseValidationRule<string>[] = [ | ||||||
|  |   { | ||||||
|  |     validator: (v: string) => v === '' || JSON5.parse(v), | ||||||
|  |     message: 'Provided JSON is not valid.', | ||||||
|  |   }, | ||||||
|  | ]; | ||||||
|  | 
 | ||||||
|  | const { t } = useI18n(); | ||||||
|  | const alg = ref<(typeof algs)[number]>('HS256'); | ||||||
|  | const encoding = ref<Encoding>('JWT'); | ||||||
|  | const payload = ref(''); | ||||||
|  | const secret = ref(''); | ||||||
|  | const jwt = ref(''); | ||||||
|  | 
 | ||||||
|  | watch( | ||||||
|  |   [alg, encoding, payload, secret], | ||||||
|  |   async () => { | ||||||
|  |     if (!payload.value || !secret.value) { | ||||||
|  |       jwt.value = ''; | ||||||
|  |       return; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     const parsedPayload = JSON5.parse(payload.value); | ||||||
|  |     const decodedSecret = new TextEncoder().encode(secret.value); | ||||||
|  | 
 | ||||||
|  |     console.error('Decoded secret:', decodedSecret); | ||||||
|  | 
 | ||||||
|  |     try { | ||||||
|  |       const token = await new jose.SignJWT(parsedPayload) | ||||||
|  |         .setProtectedHeader({ alg: alg.value, typ: 'JWT' }) | ||||||
|  |         .setIssuedAt(parsedPayload.iat || undefined) | ||||||
|  |         .setExpirationTime(parsedPayload.exp || undefined) | ||||||
|  |         .sign(decodedSecret); | ||||||
|  |       jwt.value = token; | ||||||
|  |     } catch (e) { | ||||||
|  |       jwt.value = `Error: ${(e as Error).message}`; | ||||||
|  |     } | ||||||
|  |   }, | ||||||
|  |   { immediate: true }, | ||||||
|  | ); | ||||||
|  | 
 | ||||||
|  | const { copy } = useCopy({ source: jwt }); | ||||||
|  | </script> | ||||||
|  | 
 | ||||||
|  | <template> | ||||||
|  |   <div flex flex-col gap-4> | ||||||
|  |     <div flex gap-2> | ||||||
|  |       <c-select | ||||||
|  |         v-model:value="alg" | ||||||
|  |         :label="t('tools.jwt-generator.algorithm.label')" | ||||||
|  |         flex-1 | ||||||
|  |         :placeholder="t('tools.jwt-generator.algorithm.placeholder')" | ||||||
|  |         :options="algs.map((a) => ({ label: a, value: a }))" | ||||||
|  |       /> | ||||||
|  |       <c-select | ||||||
|  |         v-model:value="encoding" | ||||||
|  |         :label="t('tools.jwt-generator.encoding.label')" | ||||||
|  |         flex-1 | ||||||
|  |         :placeholder="t('tools.jwt-generator.encoding.placeholder')" | ||||||
|  |         :options="[ | ||||||
|  |           { | ||||||
|  |             label: 'JWT', | ||||||
|  |             value: 'JWT', | ||||||
|  |           }, | ||||||
|  |         ]" | ||||||
|  |       /> | ||||||
|  |     </div> | ||||||
|  |     <c-input-text | ||||||
|  |       v-model:value="payload" | ||||||
|  |       multiline | ||||||
|  |       raw-text | ||||||
|  |       :placeholder="t('tools.jwt-generator.payload.placeholder')" | ||||||
|  |       rows="8" | ||||||
|  |       autosize | ||||||
|  |       autofocus | ||||||
|  |       :label="t('tools.jwt-generator.payload.label')" | ||||||
|  |       :input-validation-rules="rules" | ||||||
|  |     /> | ||||||
|  | 
 | ||||||
|  |     <c-input-text | ||||||
|  |       v-model:value="secret" | ||||||
|  |       raw-text | ||||||
|  |       :placeholder="t('tools.jwt-generator.secret.placeholder')" | ||||||
|  |       :label="t('tools.jwt-generator.secret.label')" | ||||||
|  |       clearable | ||||||
|  |     /> | ||||||
|  | 
 | ||||||
|  |     <c-input-text | ||||||
|  |       v-model:value="jwt" | ||||||
|  |       :label="t('tools.jwt-generator.jwt.label')" | ||||||
|  |       :placeholder="t('tools.jwt-generator.jwt.placeholder')" | ||||||
|  |       rows="5" | ||||||
|  |       multiline | ||||||
|  |       raw-text | ||||||
|  |       autofocus | ||||||
|  |       mb-3 | ||||||
|  |     /> | ||||||
|  |     <div flex justify-center> | ||||||
|  |       <c-button @click="copy()"> {{ t('tools.jwt-generator.jwt.copied') }} </c-button> | ||||||
|  |     </div> | ||||||
|  |   </div> | ||||||
|  | </template> | ||||||
		Loading…
	
		Reference in New Issue
	
	Block a user