This commit is contained in:
sharevb 2024-08-07 16:40:32 +08:00 committed by GitHub
commit 78a8686e92
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
9 changed files with 394 additions and 10 deletions

1
components.d.ts vendored
View file

@ -64,6 +64,7 @@ declare module '@vue/runtime-core' {
'CTextCopyable.demo': typeof import('./src/ui/c-text-copyable/c-text-copyable.demo.vue')['default'] 'CTextCopyable.demo': typeof import('./src/ui/c-text-copyable/c-text-copyable.demo.vue')['default']
CTooltip: typeof import('./src/ui/c-tooltip/c-tooltip.vue')['default'] CTooltip: typeof import('./src/ui/c-tooltip/c-tooltip.vue')['default']
'CTooltip.demo': typeof import('./src/ui/c-tooltip/c-tooltip.demo.vue')['default'] 'CTooltip.demo': typeof import('./src/ui/c-tooltip/c-tooltip.demo.vue')['default']
CurlConverter: typeof import('./src/tools/curl-converter/curl-converter.vue')['default']
DateTimeConverter: typeof import('./src/tools/date-time-converter/date-time-converter.vue')['default'] DateTimeConverter: typeof import('./src/tools/date-time-converter/date-time-converter.vue')['default']
'DemoHome.page': typeof import('./src/ui/demo/demo-home.page.vue')['default'] 'DemoHome.page': typeof import('./src/ui/demo/demo-home.page.vue')['default']
DemoWrapper: typeof import('./src/ui/demo/demo-wrapper.vue')['default'] DemoWrapper: typeof import('./src/ui/demo/demo-wrapper.vue')['default']

View file

@ -55,6 +55,7 @@
"cron-validator": "^1.3.1", "cron-validator": "^1.3.1",
"cronstrue": "^2.26.0", "cronstrue": "^2.26.0",
"crypto-js": "^4.1.1", "crypto-js": "^4.1.1",
"curlconverter": "^4.10.1",
"date-fns": "^2.29.3", "date-fns": "^2.29.3",
"dompurify": "^3.0.6", "dompurify": "^3.0.6",
"emojilib": "^3.0.10", "emojilib": "^3.0.10",
@ -133,6 +134,7 @@
"unplugin-vue-components": "^0.25.0", "unplugin-vue-components": "^0.25.0",
"vite": "^4.4.9", "vite": "^4.4.9",
"vite-plugin-pwa": "^0.16.0", "vite-plugin-pwa": "^0.16.0",
"vite-plugin-top-level-await": "^1.4.2",
"vite-plugin-vue-markdown": "^0.23.5", "vite-plugin-vue-markdown": "^0.23.5",
"vite-svg-loader": "^4.0.0", "vite-svg-loader": "^4.0.0",
"vitest": "^0.34.0", "vitest": "^0.34.0",

247
pnpm-lock.yaml generated
View file

@ -65,6 +65,9 @@ dependencies:
crypto-js: crypto-js:
specifier: ^4.1.1 specifier: ^4.1.1
version: 4.1.1 version: 4.1.1
curlconverter:
specifier: ^4.10.1
version: 4.10.1
date-fns: date-fns:
specifier: ^2.29.3 specifier: ^2.29.3
version: 2.29.3 version: 2.29.3
@ -295,6 +298,9 @@ devDependencies:
vite-plugin-pwa: vite-plugin-pwa:
specifier: ^0.16.0 specifier: ^0.16.0
version: 0.16.0(vite@4.4.9)(workbox-build@7.0.0)(workbox-window@7.0.0) version: 0.16.0(vite@4.4.9)(workbox-build@7.0.0)(workbox-window@7.0.0)
vite-plugin-top-level-await:
specifier: ^1.4.2
version: 1.4.2(rollup@2.79.1)(vite@4.4.9)
vite-plugin-vue-markdown: vite-plugin-vue-markdown:
specifier: ^0.23.5 specifier: ^0.23.5
version: 0.23.5(rollup@2.79.1)(vite@4.4.9) version: 0.23.5(rollup@2.79.1)(vite@4.4.9)
@ -2544,6 +2550,18 @@ packages:
rollup: 2.79.1 rollup: 2.79.1
dev: true dev: true
/@rollup/plugin-virtual@3.0.2(rollup@2.79.1):
resolution: {integrity: sha512-10monEYsBp3scM4/ND4LNH5Rxvh3e/cVeL3jWTgZ2SrQ+BmUoQcopVQvnaMcOnykb1VkxUFuDAN+0FnpTFRy2A==}
engines: {node: '>=14.0.0'}
peerDependencies:
rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0
peerDependenciesMeta:
rollup:
optional: true
dependencies:
rollup: 2.79.1
dev: true
/@rollup/pluginutils@3.1.0(rollup@2.79.1): /@rollup/pluginutils@3.1.0(rollup@2.79.1):
resolution: {integrity: sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==} resolution: {integrity: sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==}
engines: {node: '>= 8.0.0'} engines: {node: '>= 8.0.0'}
@ -2617,6 +2635,131 @@ packages:
string.prototype.matchall: 4.0.10 string.prototype.matchall: 4.0.10
dev: true dev: true
/@swc/core-darwin-arm64@1.7.0:
resolution: {integrity: sha512-2ylhM7f0HwUwLrFYZAe/dse8PCbPsYcJS3Dt7Q8NT3PUn7vy6QOMxNcOPPuDrnmaXqQQO3oxdmRapguTxaat9g==}
engines: {node: '>=10'}
cpu: [arm64]
os: [darwin]
requiresBuild: true
dev: true
optional: true
/@swc/core-darwin-x64@1.7.0:
resolution: {integrity: sha512-SgVnN4gT1Rb9YfTkp4FCUITqSs7Yj0uB2SUciu5CV3HuGvS5YXCUzh+KrwpLFtx8NIgivISKcNnb41mJi98X8Q==}
engines: {node: '>=10'}
cpu: [x64]
os: [darwin]
requiresBuild: true
dev: true
optional: true
/@swc/core-linux-arm-gnueabihf@1.7.0:
resolution: {integrity: sha512-+Z9Dayart1iKJQEJJ9N/KS4z5EdXJE3WPFikY0jonKTo4Dd8RuyVz5yLvqcIMeVdz/SwximATaL6iJXw7hZS9A==}
engines: {node: '>=10'}
cpu: [arm]
os: [linux]
requiresBuild: true
dev: true
optional: true
/@swc/core-linux-arm64-gnu@1.7.0:
resolution: {integrity: sha512-UnLrCiZ1EI4shznJn0xP6DLgsXUSwtfsdgHhGYCrvbgVBBve3S9iFgVFEB3SPl7Q/TdowNbrN4zHU0oChfiNfw==}
engines: {node: '>=10'}
cpu: [arm64]
os: [linux]
requiresBuild: true
dev: true
optional: true
/@swc/core-linux-arm64-musl@1.7.0:
resolution: {integrity: sha512-H724UANA+ptsfwKRr9mnaDa9cb5fw0oFysiGKTgb3DMYcgk3Od0jMTnXVPFSVpo7FlmyxeC9K8ueUPBOoOK6XA==}
engines: {node: '>=10'}
cpu: [arm64]
os: [linux]
requiresBuild: true
dev: true
optional: true
/@swc/core-linux-x64-gnu@1.7.0:
resolution: {integrity: sha512-SY3HA0K0Dpqt1HIfMLGpwL4hd4UaL2xHP5oZXPlRQPhUDZrbb4PbI3ZJnh66c63eL4ZR8EJ+HRFI0Alx5p69Zw==}
engines: {node: '>=10'}
cpu: [x64]
os: [linux]
requiresBuild: true
dev: true
optional: true
/@swc/core-linux-x64-musl@1.7.0:
resolution: {integrity: sha512-cEJ2ebtV1v/5Ilb55E05J6F5SrHKQWzUttIhR5Mkayyo+yvPslcpByuFC3D+J7X1ebziTOBpWuMpUdjLfh3SMQ==}
engines: {node: '>=10'}
cpu: [x64]
os: [linux]
requiresBuild: true
dev: true
optional: true
/@swc/core-win32-arm64-msvc@1.7.0:
resolution: {integrity: sha512-ecQOOmzEssz+m0pR4xDYCGuvn3E/l0nQ3tk5jp1NA1lsAy4bMV0YbYCHjptYvWL/UjhIerIp3IlCJ8x5DodSog==}
engines: {node: '>=10'}
cpu: [arm64]
os: [win32]
requiresBuild: true
dev: true
optional: true
/@swc/core-win32-ia32-msvc@1.7.0:
resolution: {integrity: sha512-gz81seZkRn3zMnVOc7L5k6F4vQC82gIxmHiL+GedK+A37XI/X26AASU3zxvORnqQbwQYXQ+AEVckxBmFlz3v2g==}
engines: {node: '>=10'}
cpu: [ia32]
os: [win32]
requiresBuild: true
dev: true
optional: true
/@swc/core-win32-x64-msvc@1.7.0:
resolution: {integrity: sha512-b5Fd1xEOw9uqBpj2lqsaR4Iq9UhiL84hNDcEsi6DQA7Y1l85waQAslTbS0E4/pJ1PISAs0jW0zIGLco1eaWBOg==}
engines: {node: '>=10'}
cpu: [x64]
os: [win32]
requiresBuild: true
dev: true
optional: true
/@swc/core@1.7.0:
resolution: {integrity: sha512-d4vMzH6ICllDwlPuhset2h8gu/USHdbyfJim+2hQEdxC0UONtfpmu38XBgNqRjStrji1Q5M10jfeUZL3cu1i8g==}
engines: {node: '>=10'}
requiresBuild: true
peerDependencies:
'@swc/helpers': '*'
peerDependenciesMeta:
'@swc/helpers':
optional: true
dependencies:
'@swc/counter': 0.1.3
'@swc/types': 0.1.12
optionalDependencies:
'@swc/core-darwin-arm64': 1.7.0
'@swc/core-darwin-x64': 1.7.0
'@swc/core-linux-arm-gnueabihf': 1.7.0
'@swc/core-linux-arm64-gnu': 1.7.0
'@swc/core-linux-arm64-musl': 1.7.0
'@swc/core-linux-x64-gnu': 1.7.0
'@swc/core-linux-x64-musl': 1.7.0
'@swc/core-win32-arm64-msvc': 1.7.0
'@swc/core-win32-ia32-msvc': 1.7.0
'@swc/core-win32-x64-msvc': 1.7.0
dev: true
/@swc/counter@0.1.3:
resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==}
dev: true
/@swc/types@0.1.12:
resolution: {integrity: sha512-wBJA+SdtkbFhHjTMYH+dEH1y4VpfGdAc2Kw/LK09i9bXd/K6j6PkDcFCEzb6iVfZMkPRrl/q0e3toqTAJdkIVA==}
dependencies:
'@swc/counter': 0.1.3
dev: true
/@tiptap/core@2.1.12(@tiptap/pm@2.1.6): /@tiptap/core@2.1.12(@tiptap/pm@2.1.6):
resolution: {integrity: sha512-ZGc3xrBJA9KY8kln5AYTj8y+GDrKxi7u95xIl2eccrqTY5CQeRu6HRNM1yT4mAjuSaG9jmazyjGRlQuhyxCKxQ==} resolution: {integrity: sha512-ZGc3xrBJA9KY8kln5AYTj8y+GDrKxi7u95xIl2eccrqTY5CQeRu6HRNM1yT4mAjuSaG9jmazyjGRlQuhyxCKxQ==}
peerDependencies: peerDependencies:
@ -3354,7 +3497,7 @@ packages:
dependencies: dependencies:
'@unhead/dom': 0.5.1 '@unhead/dom': 0.5.1
'@unhead/schema': 0.5.1 '@unhead/schema': 0.5.1
'@vueuse/shared': 10.8.0(vue@3.3.4) '@vueuse/shared': 10.11.0(vue@3.3.4)
unhead: 0.5.1 unhead: 0.5.1
vue: 3.3.4 vue: 3.3.4
transitivePeerDependencies: transitivePeerDependencies:
@ -3987,19 +4130,19 @@ packages:
- vue - vue
dev: false dev: false
/@vueuse/shared@10.3.0(vue@3.3.4): /@vueuse/shared@10.11.0(vue@3.3.4):
resolution: {integrity: sha512-kGqCTEuFPMK4+fNWy6dUOiYmxGcUbtznMwBZLC1PubidF4VZY05B+Oht7Jh7/6x4VOWGpvu3R37WHi81cKpiqg==} resolution: {integrity: sha512-fyNoIXEq3PfX1L3NkNhtVQUSRtqYwJtJg+Bp9rIzculIZWHTkKSysujrOk2J+NrRulLTQH9+3gGSfYLWSEWU1A==}
dependencies: dependencies:
vue-demi: 0.14.5(vue@3.3.4) vue-demi: 0.14.8(vue@3.3.4)
transitivePeerDependencies: transitivePeerDependencies:
- '@vue/composition-api' - '@vue/composition-api'
- vue - vue
dev: false dev: false
/@vueuse/shared@10.8.0(vue@3.3.4): /@vueuse/shared@10.3.0(vue@3.3.4):
resolution: {integrity: sha512-dUdy6zwHhULGxmr9YUg8e+EnB39gcM4Fe2oKBSrh3cOsV30JcMPtsyuspgFCUo5xxFNaeMf/W2yyKfST7Bg8oQ==} resolution: {integrity: sha512-kGqCTEuFPMK4+fNWy6dUOiYmxGcUbtznMwBZLC1PubidF4VZY05B+Oht7Jh7/6x4VOWGpvu3R37WHi81cKpiqg==}
dependencies: dependencies:
vue-demi: 0.14.7(vue@3.3.4) vue-demi: 0.14.5(vue@3.3.4)
transitivePeerDependencies: transitivePeerDependencies:
- '@vue/composition-api' - '@vue/composition-api'
- vue - vue
@ -4715,6 +4858,20 @@ 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==}
/curlconverter@4.10.1:
resolution: {integrity: sha512-cMV9ZsIBgZCeKiTqOvxtBGB58heQbrulPvtff4IbFunbDIuGWu8ZCDlCIEr74aNGCOfQRv9aery8I2GpYGBzyw==}
hasBin: true
dependencies:
jsesc: 3.0.2
lossless-json: 4.0.1
tree-sitter: 0.21.1
tree-sitter-bash: 0.21.0(tree-sitter@0.21.1)
web-tree-sitter: 0.22.6
yamljs: 0.3.0
transitivePeerDependencies:
- tree_sitter
dev: false
/dash-get@1.0.2: /dash-get@1.0.2:
resolution: {integrity: sha512-4FbVrHDwfOASx7uQVxeiCTo7ggSdYZbqs8lH+WU6ViypPlDbe9y6IP5VVUDQBv9DcnyaiPT5XT0UWHgJ64zLeQ==} resolution: {integrity: sha512-4FbVrHDwfOASx7uQVxeiCTo7ggSdYZbqs8lH+WU6ViypPlDbe9y6IP5VVUDQBv9DcnyaiPT5XT0UWHgJ64zLeQ==}
dev: false dev: false
@ -6566,7 +6723,6 @@ packages:
resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==}
engines: {node: '>=6'} engines: {node: '>=6'}
hasBin: true hasBin: true
dev: true
/json-parse-even-better-errors@2.3.1: /json-parse-even-better-errors@2.3.1:
resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==}
@ -6720,6 +6876,10 @@ packages:
is-unicode-supported: 0.1.0 is-unicode-supported: 0.1.0
dev: true dev: true
/lossless-json@4.0.1:
resolution: {integrity: sha512-l0L+ppmgPDnb+JGxNLndPtJZGNf6+ZmVaQzoxQm3u6TXmhdnsA+YtdVR8DjzZd/em58686CQhOFDPewfJ4l7MA==}
dev: false
/loupe@2.3.6: /loupe@2.3.6:
resolution: {integrity: sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==} resolution: {integrity: sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==}
dependencies: dependencies:
@ -7050,6 +7210,15 @@ packages:
tslib: 2.5.0 tslib: 2.5.0
dev: false dev: false
/node-addon-api@7.1.1:
resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==}
dev: false
/node-addon-api@8.1.0:
resolution: {integrity: sha512-yBY+qqWSv3dWKGODD6OGE6GnTX7Q2r+4+DfpqxHSHh8x0B4EKP9+wVGLS6U/AM1vxSNNmUEuIV5EGhYwPpfOwQ==}
engines: {node: ^18 || ^20 || >= 21}
dev: false
/node-domexception@1.0.0: /node-domexception@1.0.0:
resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==}
engines: {node: '>=10.5.0'} engines: {node: '>=10.5.0'}
@ -7073,6 +7242,11 @@ packages:
engines: {node: '>= 6.13.0'} engines: {node: '>= 6.13.0'}
dev: false dev: false
/node-gyp-build@4.8.1:
resolution: {integrity: sha512-OSs33Z9yWr148JZcbZd5WiAXhh/n9z8TxQcdMhIOlpN9AhWpLfvVFO73+m77bBABQMaY9XSvIa+qk0jlI7Gcaw==}
hasBin: true
dev: false
/node-releases@2.0.12: /node-releases@2.0.12:
resolution: {integrity: sha512-QzsYKWhXTWx8h1kIvqfnC++o0pEmpRQA/aenALsL2F4pqNVr7YzcdMlDij5WBnwftRbJCNJL/O7zdKaxKPHqgQ==} resolution: {integrity: sha512-QzsYKWhXTWx8h1kIvqfnC++o0pEmpRQA/aenALsL2F4pqNVr7YzcdMlDij5WBnwftRbJCNJL/O7zdKaxKPHqgQ==}
dev: true dev: true
@ -8488,6 +8662,30 @@ packages:
punycode: 2.3.0 punycode: 2.3.0
dev: true dev: true
/tree-sitter-bash@0.21.0(tree-sitter@0.21.1):
resolution: {integrity: sha512-UuXf+wliu1mmS/O2Iz7OQghExM4a+lk+GaVPndZVpAJnFuzanaN33UcHOsrmngHxaOXHz5JSZrwp6i2qM/PKag==}
requiresBuild: true
peerDependencies:
tree-sitter: ^0.21.0
tree_sitter: '*'
peerDependenciesMeta:
tree_sitter:
optional: true
dependencies:
node-addon-api: 7.1.1
node-gyp-build: 4.8.1
tree-sitter: 0.21.1
web-tree-sitter: 0.21.0
dev: false
/tree-sitter@0.21.1:
resolution: {integrity: sha512-7dxoA6kYvtgWw80265MyqJlkRl4yawIjO7S5MigytjELkX43fV2WsAXzsNfO7sBpPPCF5Gp0+XzHk0DwLCq3xQ==}
requiresBuild: true
dependencies:
node-addon-api: 8.1.0
node-gyp-build: 4.8.1
dev: false
/treemate@0.3.11: /treemate@0.3.11:
resolution: {integrity: sha512-M8RGFoKtZ8dF+iwJfAJTOH/SM4KluKOKRJpjCMhI8bG3qB74zrFoArKZ62ll0Fr3mqkMJiQOmWYkdYgDeITYQg==} resolution: {integrity: sha512-M8RGFoKtZ8dF+iwJfAJTOH/SM4KluKOKRJpjCMhI8bG3qB74zrFoArKZ62ll0Fr3mqkMJiQOmWYkdYgDeITYQg==}
dev: false dev: false
@ -8933,6 +9131,11 @@ packages:
resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
dev: true dev: true
/uuid@10.0.0:
resolution: {integrity: sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==}
hasBin: true
dev: true
/uuid@9.0.0: /uuid@9.0.0:
resolution: {integrity: sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==} resolution: {integrity: sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==}
dev: false dev: false
@ -8992,6 +9195,20 @@ packages:
- supports-color - supports-color
dev: true dev: true
/vite-plugin-top-level-await@1.4.2(rollup@2.79.1)(vite@4.4.9):
resolution: {integrity: sha512-Lz9ZGlDEqLpIJ/NU3toXSUrjmovlJf9qV/LNNa5RB2NYbN3SptfnZEz91//uqahhZtFzL5lKREPwv3YJmlnybg==}
peerDependencies:
vite: '>=2.8'
dependencies:
'@rollup/plugin-virtual': 3.0.2(rollup@2.79.1)
'@swc/core': 1.7.0
uuid: 10.0.0
vite: 4.4.9(@types/node@18.15.11)(less@4.1.3)
transitivePeerDependencies:
- '@swc/helpers'
- rollup
dev: true
/vite-plugin-vue-markdown@0.23.5(rollup@2.79.1)(vite@4.4.9): /vite-plugin-vue-markdown@0.23.5(rollup@2.79.1)(vite@4.4.9):
resolution: {integrity: sha512-NXTZ4y+n691gLPWayMBbh4jldQeaqDp9e9WjWUYbn9obsLqS9qU+hr4RAruDq5kP4siTOp7JDV34Sw5eA7WxLg==} resolution: {integrity: sha512-NXTZ4y+n691gLPWayMBbh4jldQeaqDp9e9WjWUYbn9obsLqS9qU+hr4RAruDq5kP4siTOp7JDV34Sw5eA7WxLg==}
peerDependencies: peerDependencies:
@ -9158,8 +9375,8 @@ packages:
vue: 3.3.4 vue: 3.3.4
dev: false dev: false
/vue-demi@0.14.7(vue@3.3.4): /vue-demi@0.14.8(vue@3.3.4):
resolution: {integrity: sha512-EOG8KXDQNwkJILkx/gPcoL/7vH+hORoBaKgGe+6W7VFMvCYJfmF2dGbvgDroVnI8LU7/kTu8mbjRZGBU1z9NTA==} resolution: {integrity: sha512-Uuqnk9YE9SsWeReYqK2alDI5YzciATE0r2SkA6iMAtuXvNTMNACJLJEXNXaEy94ECuBe4Sk6RzRU80kjdbIo1Q==}
engines: {node: '>=12'} engines: {node: '>=12'}
hasBin: true hasBin: true
requiresBuild: true requiresBuild: true
@ -9276,6 +9493,14 @@ packages:
engines: {node: '>= 8'} engines: {node: '>= 8'}
dev: true dev: true
/web-tree-sitter@0.21.0:
resolution: {integrity: sha512-iJ+QJ6ikN9D9cG7Kh6q3KtAstYFUQbYZ8OjuPEJYWfj2kLrmp5I3C2n6WjE1Y3jvj7nJbkcrJytJGWUEhCxn+g==}
dev: false
/web-tree-sitter@0.22.6:
resolution: {integrity: sha512-hS87TH71Zd6mGAmYCvlgxeGDjqd9GTeqXNqTT+u0Gs51uIozNIaaq/kUAbV/Zf56jb2ZOyG8BxZs2GG9wbLi6Q==}
dev: false
/webidl-conversions@4.0.2: /webidl-conversions@4.0.2:
resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==}
dev: true dev: true
@ -9449,6 +9674,7 @@ packages:
/workbox-google-analytics@7.0.0: /workbox-google-analytics@7.0.0:
resolution: {integrity: sha512-MEYM1JTn/qiC3DbpvP2BVhyIH+dV/5BjHk756u9VbwuAhu0QHyKscTnisQuz21lfRpOwiS9z4XdqeVAKol0bzg==} resolution: {integrity: sha512-MEYM1JTn/qiC3DbpvP2BVhyIH+dV/5BjHk756u9VbwuAhu0QHyKscTnisQuz21lfRpOwiS9z4XdqeVAKol0bzg==}
deprecated: It is not compatible with newer versions of GA starting with v4, as long as you are using GAv3 it should be ok, but the package is not longer being maintained
dependencies: dependencies:
workbox-background-sync: 7.0.0 workbox-background-sync: 7.0.0
workbox-core: 7.0.0 workbox-core: 7.0.0
@ -9592,6 +9818,7 @@ packages:
/yamljs@0.3.0: /yamljs@0.3.0:
resolution: {integrity: sha512-C/FsVVhht4iPQYXOInoxUM/1ELSf9EsgKH34FofQOp6hwCPrW4vG4w5++TED3xRUo8gD7l0P1J1dLlDYzODsTQ==} resolution: {integrity: sha512-C/FsVVhht4iPQYXOInoxUM/1ELSf9EsgKH34FofQOp6hwCPrW4vG4w5++TED3xRUo8gD7l0P1J1dLlDYzODsTQ==}
hasBin: true
dependencies: dependencies:
argparse: 1.0.10 argparse: 1.0.10
glob: 7.2.3 glob: 7.2.3

BIN
public/tree-sitter-bash.wasm Executable file

Binary file not shown.

BIN
public/tree-sitter.wasm Executable file

Binary file not shown.

View file

@ -0,0 +1,133 @@
<script setup lang="ts">
import {
type Warnings, toAnsible, toAnsibleWarn, toCFML, toCFMLWarn, toCSharp,
toCSharpWarn, toClojure, toClojureWarn, toDart, toDartWarn, toElixir, toElixirWarn, toGo,
toGoWarn, toHTTP, toHTTPWarn, toHarString, toHarStringWarn, toHttpie, toHttpieWarn, toJava,
toJavaHttpUrlConnection, toJavaHttpUrlConnectionWarn, toJavaJsoup, toJavaJsoupWarn, toJavaOkHttp,
toJavaOkHttpWarn, toJavaScript, toJavaScriptJquery, toJavaScriptJqueryWarn, toJavaScriptWarn, toJavaScriptXHR,
toJavaScriptXHRWarn, toJavaWarn, toJsonString, toJsonStringWarn, toJulia, toJuliaWarn, toKotlin, toKotlinWarn, toLua,
toLuaWarn, toMATLAB, toMATLABWarn, toNode, toNodeAxios, toNodeAxiosWarn, toNodeGot, toNodeGotWarn, toNodeHttp,
toNodeHttpWarn, toNodeKy, toNodeKyWarn, toNodeRequest, toNodeRequestWarn, toNodeSuperAgent, toNodeSuperAgentWarn,
toNodeWarn, toOCaml, toOCamlWarn, toObjectiveC, toObjectiveCWarn, toPerl, toPerlWarn, toPhp, toPhpGuzzle,
toPhpGuzzleWarn, toPhpRequests, toPhpRequestsWarn, toPhpWarn, toPowershellRestMethod,
toPowershellRestMethodWarn, toPowershellWebRequest, toPowershellWebRequestWarn, toPython, toPythonHttp, toPythonHttpWarn, toPythonWarn,
toR, toRWarn, toRuby, toRubyWarn, toRust, toRustWarn, toSwift, toSwiftWarn, toWget,
toWgetWarn,
} from 'curlconverter';
import TextareaCopyable from '@/components/TextareaCopyable.vue';
const translate = {
'ansible': [toAnsible, toAnsibleWarn],
'cfml': [toCFML, toCFMLWarn],
'clojure': [toClojure, toClojureWarn],
'csharp': [toCSharp, toCSharpWarn],
'c#': [toCSharp, toCSharpWarn],
'browser': [toJavaScript, toJavaScriptWarn],
'dart': [toDart, toDartWarn],
'elixir': [toElixir, toElixirWarn],
'go': [toGo, toGoWarn],
'golang': [toGo, toGoWarn],
'har': [toHarString, toHarStringWarn],
'http': [toHTTP, toHTTPWarn],
'httpie': [toHttpie, toHttpieWarn],
'java': [toJava, toJavaWarn],
'java-httpurlconnection': [
toJavaHttpUrlConnection,
toJavaHttpUrlConnectionWarn,
],
'java-jsoup': [toJavaJsoup, toJavaJsoupWarn],
'java-okhttp': [toJavaOkHttp, toJavaOkHttpWarn],
'javascript': [toJavaScript, toJavaScriptWarn],
'javascript-axios': [toNodeAxios, toNodeAxiosWarn],
'javascript-fetch': [toJavaScript, toJavaScriptWarn],
'javascript-got': [toNodeGot, toNodeGotWarn],
'javascript-ky': [toNodeKy, toNodeKyWarn],
'javascript-jquery': [toJavaScriptJquery, toJavaScriptJqueryWarn],
'javascript-request': [toNodeRequest, toNodeRequestWarn],
'javascript-superagent': [toNodeSuperAgent, toNodeSuperAgentWarn],
'javascript-xhr': [toJavaScriptXHR, toJavaScriptXHRWarn],
'json': [toJsonString, toJsonStringWarn],
'julia': [toJulia, toJuliaWarn],
'kotlin': [toKotlin, toKotlinWarn],
'lua': [toLua, toLuaWarn],
'matlab': [toMATLAB, toMATLABWarn],
'node': [toNode, toNodeWarn],
'nodejs': [toNode, toNodeWarn],
'nodejs-axios': [toNodeAxios, toNodeAxiosWarn],
'nodejs-got': [toNodeGot, toNodeGotWarn],
'nodejs-http': [toNodeHttp, toNodeHttpWarn],
'nodejs-ky': [toNodeKy, toNodeKyWarn],
'nodejs-jquery': [toJavaScriptJquery, toJavaScriptJqueryWarn],
'nodejs-request': [toNodeRequest, toNodeRequestWarn],
'nodejs-superagent': [toNodeSuperAgent, toNodeSuperAgentWarn],
'nodejs-xhr': [toJavaScriptXHR, toJavaScriptXHRWarn],
'objc': [toObjectiveC, toObjectiveCWarn],
'objective-c': [toObjectiveC, toObjectiveCWarn],
'ocaml': [toOCaml, toOCamlWarn],
'perl': [toPerl, toPerlWarn],
'php': [toPhp, toPhpWarn],
'php-guzzle': [toPhpGuzzle, toPhpGuzzleWarn],
'php-requests': [toPhpRequests, toPhpRequestsWarn],
'powershell': [toPowershellRestMethod, toPowershellRestMethodWarn],
'powershell-webrequest': [
toPowershellWebRequest,
toPowershellWebRequestWarn,
],
'python': [toPython, toPythonWarn],
'python-http': [toPythonHttp, toPythonHttpWarn],
'r': [toR, toRWarn],
'ruby': [toRuby, toRubyWarn],
'rust': [toRust, toRustWarn],
'swift': [toSwift, toSwiftWarn],
'wget': [toWget, toWgetWarn],
};
const language = ref('python');
const curl = ref('curl --data "hello=world" example.com');
const inlang = computed(() => {
try {
let curlCommand = curl.value;
if (!curlCommand.startsWith('curl ')) {
curlCommand = `curl ${curlCommand}`;
}
const [translated, warnings] = translate[language.value as (keyof typeof translate)][1](curlCommand);
return {
translated,
warnings,
};
}
catch (e: any) {
return {
translated: e.toString(),
warnings: [],
};
}
});
</script>
<template>
<div>
<c-input-text
v-model:value="curl"
size="large"
placeholder="Your curl command"
mb-3
/>
<c-select
v-model:value="language"
searchable
label="Language:"
:options="Object.keys(translate)"
/>
<n-divider />
<n-form-item label="Curl language equivalent:">
<TextareaCopyable :value="inlang.translated as string" />
</n-form-item>
<n-form-item label="Warnings:">
<TextareaCopyable style="color: red" :value="(inlang.warnings as Warnings || []).map(w => w[1]).join('\n')" />
</n-form-item>
</div>
</template>

View file

@ -0,0 +1,12 @@
import { ExternalLink } from '@vicons/tabler';
import { defineTool } from '../tool';
export const tool = defineTool({
name: 'Curl Converter',
path: '/curl-converter',
description: 'Generate common coding languages version of provided curl command line',
keywords: ['curl', 'code', 'language', 'generator'],
component: () => import('./curl-converter.vue'),
icon: ExternalLink,
createdAt: new Date('2024-04-20'),
});

View file

@ -6,6 +6,7 @@ import { tool as asciiTextDrawer } from './ascii-text-drawer';
import { tool as textToUnicode } from './text-to-unicode'; import { tool as textToUnicode } from './text-to-unicode';
import { tool as safelinkDecoder } from './safelink-decoder'; import { tool as safelinkDecoder } from './safelink-decoder';
import { tool as curlConverter } from './curl-converter';
import { tool as pdfSignatureChecker } from './pdf-signature-checker'; import { tool as pdfSignatureChecker } from './pdf-signature-checker';
import { tool as numeronymGenerator } from './numeronym-generator'; import { tool as numeronymGenerator } from './numeronym-generator';
import { tool as macAddressGenerator } from './mac-address-generator'; import { tool as macAddressGenerator } from './mac-address-generator';
@ -148,6 +149,7 @@ export const toolsByCategory: ToolCategory[] = [
dockerRunToDockerComposeConverter, dockerRunToDockerComposeConverter,
xmlFormatter, xmlFormatter,
yamlViewer, yamlViewer,
curlConverter,
], ],
}, },
{ {

View file

@ -15,6 +15,7 @@ import { VitePWA } from 'vite-plugin-pwa';
import markdown from 'vite-plugin-vue-markdown'; import markdown from 'vite-plugin-vue-markdown';
import svgLoader from 'vite-svg-loader'; import svgLoader from 'vite-svg-loader';
import { configDefaults } from 'vitest/config'; import { configDefaults } from 'vitest/config';
import topLevelAwait from "vite-plugin-top-level-await";
const baseUrl = process.env.BASE_URL ?? '/'; const baseUrl = process.env.BASE_URL ?? '/';
@ -97,6 +98,12 @@ export default defineConfig({
resolvers: [NaiveUiResolver(), IconsResolver({ prefix: 'icon' })], resolvers: [NaiveUiResolver(), IconsResolver({ prefix: 'icon' })],
}), }),
Unocss(), Unocss(),
topLevelAwait({
// The export name of top-level await promise for each chunk module
promiseExportName: '__tla',
// The function to generate import names of top-level await promise in each chunk module
promiseImportName: i => `__tla_${i}`,
}),
], ],
base: baseUrl, base: baseUrl,
resolve: { resolve: {