Merge branch 'main' into fix/token-generator

This commit is contained in:
sharevb 2024-05-13 08:37:09 +02:00 committed by GitHub
commit 8a49f233a0
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
27 changed files with 1008 additions and 358 deletions

View file

@ -1,34 +0,0 @@
---
name: Bug report
about: Create a report to help us improve our tools
title: '[BUG] '
labels: bug
assignees: CorentinTh
---
**Which tool is impacted?**
Example: the token generator
**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
**Expected behavior**
A clear and concise description of what you expected to happen.
**Screenshots**
If applicable, add screenshots to help explain your problem.
**Configuration (please complete the following information):**
- Device: [e.g. iPhone6, ]
- OS: [e.g. iOS]
- Browser [e.g. chrome, safari]
- Version [e.g. 22]
**Additional context**
Add any other context about the problem here.

48
.github/ISSUE_TEMPLATE/bug-report.yml vendored Normal file
View file

@ -0,0 +1,48 @@
name: 🐞 Bug Report
description: File a bug report.
labels: ['bug', 'triage']
assignees:
- CorentinTh
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to fill out this bug report!
- type: textarea
id: bug-description
attributes:
label: Describe the bug
description: A clear and concise description of what the bug is. If you intend to submit a PR for this issue, tell us in the description. Thanks!
placeholder: Bug description
validations:
required: true
- type: textarea
id: what-happened
attributes:
label: What happened?
description: Also tell us, what did you expect to happen? If you have a screenshot, you can paste it here.
placeholder: Tell us what you see!
value: 'A bug happened!'
validations:
required: true
- type: textarea
id: version
attributes:
label: System information
description: What is you environment? You can use the `npx envinfo --system --browsers` command to get this information.
validations:
required: true
- type: dropdown
id: app-type
attributes:
label: Where did you encounter the bug?
options:
- Public app (it-tools.tech)
- A self hosted
- Other (installations, docker, etc.)
validations:
required: true

View file

@ -0,0 +1,56 @@
name: 🚀 New feature proposal
description: Propose a new feature to be added to IT-Tools.
labels: ['enhancement', 'triage']
body:
- type: markdown
attributes:
value: |
Thanks for your interest in the project and taking the time to fill out this feature report!
- type: dropdown
id: request-type
attributes:
label: What type of request is this?
options:
- New tool idea
- New feature for an existing tool
- Deployment or CI/CD improvement
- Self-hosting improvement
- Other
validations:
required: true
- type: textarea
id: feature-description
attributes:
label: Clear and concise description of the feature you are proposing
description: A clear and concise description of what the feature is.
placeholder: 'Example: a token generator tool'
validations:
required: true
- type: textarea
id: alternative
attributes:
label: Is their example of this tool in the wild?
description: Provide link to already existing tool (like websites, apps, cli, ...) or npm packages that could be used or provide inspiration for the feature.
- type: textarea
id: additional-context
attributes:
label: Additional context
description: Any other context or screenshots about the feature request here.
- type: checkboxes
id: checkboxes
attributes:
label: Validations
description: Before submitting the issue, please make sure you do the following
options:
- label: Check the feature is not already implemented in the project.
required: true
- label: Check that there isn't already an issue that request the same feature to avoid creating a duplicate.
required: true
- label: Check that the feature can be implemented in a client side only app (IT-Tools is client side only, no server).
required: true

View file

@ -15,7 +15,7 @@ jobs:
- run: corepack enable
- uses: actions/setup-node@v3
with:
node-version: 16
node-version: 20
cache: 'pnpm'
- name: Install dependencies

View file

@ -1,69 +0,0 @@
# For most projects, this workflow file will not need changing; you simply need
# to commit it to your repository.
#
# You may wish to alter this file to override the set of languages analyzed,
# or to provide custom queries or build logic.
#
# ******** NOTE ********
# We have attempted to detect the languages in your repository. Please check
# the `language` matrix defined below to confirm you have the correct set of
# supported CodeQL languages.
#
name: "CodeQL"
on:
push:
branches: [ dev ]
pull_request:
# The branches below must be a subset of the branches above
branches: [ dev ]
jobs:
analyze:
name: Analyze
runs-on: ubuntu-latest
permissions:
actions: read
contents: read
security-events: write
strategy:
fail-fast: false
matrix:
language: [ 'javascript' ]
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ]
# Learn more:
# https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#changing-the-languages-that-are-analyzed
steps:
- name: Checkout repository
uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v2
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.
# queries: ./path/to/local/query, your-org/your-repo/queries@main
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@v2
# Command-line programs to run using the OS shell.
# 📚 https://git.io/JvXDl
# ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
# and modify them (or add more) to build your code if your project
# uses a compiled language
#- run: |
# make bootstrap
# make release
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v2

View file

@ -32,7 +32,7 @@ jobs:
- run: corepack enable
- uses: actions/setup-node@v3
with:
node-version: 16
node-version: 20
cache: 'pnpm'
- name: Install dependencies

View file

@ -18,7 +18,7 @@ jobs:
- uses: actions/setup-node@v3
with:
node-version: 16
node-version: 20
cache: 'pnpm'
- name: Get Playwright version

View file

@ -61,7 +61,7 @@ jobs:
- uses: actions/setup-node@v3
with:
node-version: 16
node-version: 20
cache: 'pnpm'
- name: Install dependencies

View file

@ -2,6 +2,40 @@
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
## Version 2024.05.10-33e5294
### Features
- **i18n**: added German translation (#1038) (2c2fb21)
- **new tool**: Outlook Safelink Decoder (#911) (d3b32cc)
- **new tool**: ascii art generator (#886) (fe349ad)
- **i18n**: get locales on build (#880) (dc04615)
- **i18n**: added vi tools translations (#876) (079aa21)
- **i18n**: added zh tools translations (#874) (9c6b122)
- **i18n**: added missing locale files in tools (#863) (7f5fa00)
- **i18n**: added vietnamese language (#859) (1334bff)
- **i18n**: added spanish language (#854) (85b50bb)
- **i18n**: added portuguese language (#813) (c65ffb6)
- **i18n**: added ukrainian language (#827) (693f362)
- **new-tool**: yaml formater (#779) (fc06f01)
- **new-tool**: added unicode conversion utilities (#858) (c46207f)
### Bug fixes
- **language**: English language cleanup (#1036) (221ddfa)
- **url-encoder, validation**: typo in validation of url-encoder.vue #1024 (cb5b462)
- **integer base converter**: support bigint (#872) (9eac9cb)
- **bcrypt tool**: allow salt rounds up to 100 (#987) (23f82d9)
### Refactoring
- **lint**: removed extra semi (33e5294)
- **auto-imports**: regen auto imports (1242842)
- **home**: lightened tool cards (#882) (a07806c)
- **home**: removed n-grid to prevent layout shift (#881) (10e56b3)
- **i18n**: added locales per tool (#861) (95698cb)
### Chores
- **issues**: improved issues template (2852c30)
- **issues**: improved bug issue template (#1046) (a799234)
## Version 2023.12.21-5ed3693
### Features

31
components.d.ts vendored
View file

@ -12,6 +12,7 @@ declare module '@vue/runtime-core' {
'404.page': typeof import('./src/pages/404.page.vue')['default']
About: typeof import('./src/pages/About.vue')['default']
App: typeof import('./src/App.vue')['default']
AsciiTextDrawer: typeof import('./src/tools/ascii-text-drawer/ascii-text-drawer.vue')['default']
'Base.layout': typeof import('./src/layouts/base.layout.vue')['default']
Base64FileConverter: typeof import('./src/tools/base64-file-converter/base64-file-converter.vue')['default']
Base64StringConverter: typeof import('./src/tools/base64-string-converter/base64-string-converter.vue')['default']
@ -88,28 +89,17 @@ declare module '@vue/runtime-core' {
HttpStatusCodes: typeof import('./src/tools/http-status-codes/http-status-codes.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:contentCopy': typeof import('~icons/mdi/content-copy')['default']
'IconMdi:kettleSteamOutline': typeof import('~icons/mdi/kettle-steam-outline')['default']
IconMdiArrowDown: typeof import('~icons/mdi/arrow-down')['default']
IconMdiArrowRightBottom: typeof import('~icons/mdi/arrow-right-bottom')['default']
IconMdiCamera: typeof import('~icons/mdi/camera')['default']
IconMdiChevronDown: typeof import('~icons/mdi/chevron-down')['default']
IconMdiChevronRight: typeof import('~icons/mdi/chevron-right')['default']
IconMdiClose: typeof import('~icons/mdi/close')['default']
IconMdiContentCopy: typeof import('~icons/mdi/content-copy')['default']
IconMdiDeleteOutline: typeof import('~icons/mdi/delete-outline')['default']
IconMdiDownload: typeof import('~icons/mdi/download')['default']
IconMdiEye: typeof import('~icons/mdi/eye')['default']
IconMdiEyeOff: typeof import('~icons/mdi/eye-off')['default']
IconMdiHeart: typeof import('~icons/mdi/heart')['default']
IconMdiPause: typeof import('~icons/mdi/pause')['default']
IconMdiPlay: typeof import('~icons/mdi/play')['default']
IconMdiRecord: typeof import('~icons/mdi/record')['default']
IconMdiRefresh: typeof import('~icons/mdi/refresh')['default']
IconMdiSearch: typeof import('~icons/mdi/search')['default']
IconMdiTranslate: typeof import('~icons/mdi/translate')['default']
IconMdiTriangleDown: typeof import('~icons/mdi/triangle-down')['default']
IconMdiVideo: typeof import('~icons/mdi/video')['default']
InputCopyable: typeof import('./src/components/InputCopyable.vue')['default']
IntegerBaseConverter: typeof import('./src/tools/integer-base-converter/integer-base-converter.vue')['default']
Ipv4AddressConverter: typeof import('./src/tools/ipv4-address-converter/ipv4-address-converter.vue')['default']
@ -136,39 +126,25 @@ declare module '@vue/runtime-core' {
MenuLayout: typeof import('./src/components/MenuLayout.vue')['default']
MetaTagGenerator: typeof import('./src/tools/meta-tag-generator/meta-tag-generator.vue')['default']
MimeTypes: typeof import('./src/tools/mime-types/mime-types.vue')['default']
NAlert: typeof import('naive-ui')['NAlert']
NavbarButtons: typeof import('./src/components/NavbarButtons.vue')['default']
NCheckbox: typeof import('naive-ui')['NCheckbox']
NCode: typeof import('naive-ui')['NCode']
NCollapseTransition: typeof import('naive-ui')['NCollapseTransition']
NColorPicker: typeof import('naive-ui')['NColorPicker']
NConfigProvider: typeof import('naive-ui')['NConfigProvider']
NDatePicker: typeof import('naive-ui')['NDatePicker']
NDivider: typeof import('naive-ui')['NDivider']
NDynamicInput: typeof import('naive-ui')['NDynamicInput']
NEllipsis: typeof import('naive-ui')['NEllipsis']
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']
NH2: typeof import('naive-ui')['NH2']
NH3: typeof import('naive-ui')['NH3']
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']
NLabel: typeof import('naive-ui')['NLabel']
NLayout: typeof import('naive-ui')['NLayout']
NLayoutSider: typeof import('naive-ui')['NLayoutSider']
NMenu: typeof import('naive-ui')['NMenu']
NProgress: typeof import('naive-ui')['NProgress']
NScrollbar: typeof import('naive-ui')['NScrollbar']
NSlider: typeof import('naive-ui')['NSlider']
NStatistic: typeof import('naive-ui')['NStatistic']
NSwitch: typeof import('naive-ui')['NSwitch']
NTable: typeof import('naive-ui')['NTable']
NTag: typeof import('naive-ui')['NTag']
NSpin: typeof import('naive-ui')['NSpin']
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']
@ -183,6 +159,7 @@ declare module '@vue/runtime-core' {
RouterLink: typeof import('vue-router')['RouterLink']
RouterView: typeof import('vue-router')['RouterView']
RsaKeyPairGenerator: typeof import('./src/tools/rsa-key-pair-generator/rsa-key-pair-generator.vue')['default']
SafelinkDecoder: typeof import('./src/tools/safelink-decoder/safelink-decoder.vue')['default']
SlugifyString: typeof import('./src/tools/slugify-string/slugify-string.vue')['default']
SpanCopyable: typeof import('./src/components/SpanCopyable.vue')['default']
SqlPrettify: typeof import('./src/tools/sql-prettify/sql-prettify.vue')['default']

455
locales/de.yml Normal file
View file

@ -0,0 +1,455 @@
'404':
notFound: 404 Nicht gefunden
sorry: Entschuldigung, diese Seite scheint nicht zu existieren
maybe: >-
Vielleicht macht der Cache etwas Seltsames. Mit einem erzwungenen Neuladen
versuchen?
backHome: Zurück zur Startseite
home:
categories:
newestTools: Neueste Tools
favoriteTools: Deine Lieblingstools
allTools: Alle Tools
subtitle: Praktische Tools für Entwickler
toggleMenu: Menü umschalten
home: Startseite
uiLib: UI-Bibliothek
support: Unterstütze die Entwicklung von IT-Tools
buyMeACoffee: Kauf mir einen Kaffee
follow:
title: Magst du IT-Tools?
p1: Gib uns einen Stern auf
githubRepository: IT-Tools GitHub-Repository
p2: oder folge uns auf
twitterAccount: IT-Tools Twitter-Konto
thankYou: Vielen Dank!
nav:
github: GitHub-Repository
githubRepository: IT-Tools GitHub-Repository
twitter: Twitter-Konto
twitterAccount: IT-Tools Twitter-Konto
about: Über IT-Tools
aboutLabel: Über
darkMode: Dunkelmodus
lightMode: Hellmodus
mode: Wechseln zwischen dunklem/hellem Modus
about:
content: >
# Über IT-Tools
Diese wunderbare Website, erstellt mit ❤ von [Corentin
Thomasset](https://github.com/CorentinTh), sammelt nützliche Tools für
Entwickler und Menschen, die in der IT arbeiten. Wenn du sie nützlich
findest, teile sie gerne mit Personen, von denen du denkst, dass sie sie
ebenfalls nützlich finden könnten, und vergiss nicht, sie in deiner
Lesezeichenleiste zu speichern!
IT-Tools ist Open Source (unter der MIT-Lizenz) und kostenlos und wird es
immer sein, aber es kostet mich Geld, die Website zu hosten und den
Domainnamen zu erneuern. Wenn du meine Arbeit unterstützen möchtest und mich
ermutigen möchtest, mehr Tools hinzuzufügen, überlege bitte, mich durch
[Sponsoring](https://www.buymeacoffee.com/cthmsst) zu unterstützen.
## Technologien
IT-Tools wurde mit Vue.js (Vue 3) und der Naive UI-Komponentenbibliothek
erstellt und wird von Vercel gehostet und kontinuierlich bereitgestellt. In
einigen Tools werden Drittanbieter-Open-Source-Bibliotheken verwendet. Du
findest die vollständige Liste in der
[package.json](https://github.com/CorentinTh/it-tools/blob/main/package.json)-Datei
des Repositorys.
## Einen Fehler gefunden? Ein Tool fehlt?
Wenn du ein Tool benötigst, das hier noch nicht vorhanden ist, und du
denkst, dass es nützlich sein könnte, bist du herzlich eingeladen, einen
Feature-Request im
[Issues-Bereich](https://github.com/CorentinTh/it-tools/issues/new/choose)
im GitHub-Repository einzureichen.
Und wenn du einen Fehler gefunden hast oder etwas nicht wie erwartet
funktioniert, melde bitte einen Fehler im
[Issues-Bereich](https://github.com/CorentinTh/it-tools/issues/new/choose)
im GitHub-Repository.
favoriteButton:
remove: Aus Favoriten entfernen
add: Zu Favoriten hinzufügen
toolCard:
new: Neu
search:
label: Suche
tools:
categories:
favorite-tools: Deine Lieblingstools
crypto: Krypto
converter: Konverter
web: Web
images and videos: Bilder & Videos
development: Entwicklung
network: Netzwerk
math: Mathematik
measurement: Messung
text: Text
data: Daten
password-strength-analyser:
title: Passwortstärken-Analysator
description: >-
Ermittle die Stärke deines Passworts mit diesem Client-seitigen
Passwortstärken-Analysator und Tool zur Schätzung der Knackzeit.
chronometer:
title: Chronometer
description: >-
Überwache die Dauer einer Sache. Im Grunde ein Chronometer mit einfachen
Chronometerfunktionen.
token-generator:
title: Token-Generator
description: >-
Generiere eine zufällige Zeichenfolge mit den von dir gewünschten Zeichen,
Groß- oder Kleinbuchstaben, Zahlen und/oder Symbolen.
uppercase: Großbuchstaben (ABC...)
lowercase: Kleinbuchstaben (abc...)
numbers: Zahlen (123...)
symbols: Symbole (!-;...)
length: Länge
tokenPlaceholder: Der Token ...
copied: Token in die Zwischenablage kopiert
button:
copy: Kopieren
refresh: Aktualisieren
percentage-calculator:
title: Prozentrechner
description: >-
Berechne einfach Prozentsätze von einem Wert zu einem anderen Wert oder
von einem Prozentsatz zu einem Wert.
svg-placeholder-generator:
title: SVG-Platzhalter-Generator
description: >-
Generiere SVG-Bilder, die als Platzhalter in deinen Anwendungen verwendet
werden können.
json-to-csv:
title: JSON zu CSV
description: Konvertiere JSON mit automatischer Headererkennung in CSV.
camera-recorder:
title: Kamera-Rekorder
description: Mache ein Foto oder nimm ein Video von deiner Webcam oder Kamera auf.
keycode-info:
title: Keycode-Info
description: >-
Finde den JavaScript-Keycode, den Code, den Standort und die Modifikatoren
einer beliebigen gedrückten Taste.
emoji-picker:
title: Emoji-Picker
description: >-
Einfaches Kopieren und Einfügen von Emojis. Erhalte außerdem den Unicode-
und Codepunkt-Wert jedes Emojis.
color-converter:
title: Farbkonverter
description: >-
Konvertiere Farben zwischen den verschiedenen Formaten (Hex, RGB, HSL und
CSS-Name).
bcrypt:
title: Bcrypt
description: >-
Hashen und Vergleichen von Strings mit bcrypt. Bcrypt ist eine auf der
Blowfish-Chiffre basierende Hash-Funktion.
crontab-generator:
title: Crontab-Generator
description: >-
Überprüfe und generiere Crontab und erhalte die menschenlesbare
Beschreibung des Cron-Zeitplans.
http-status-codes:
title: HTTP-Statuscodes
description: Liste aller HTTP-Statuscodes, ihrer Namen und ihrer Bedeutung.
sql-prettify:
title: SQL verschönern und formatieren
description: >-
Formatiere und verschönere deine SQL-Abfragen online (unterstützt
verschiedene SQL-Dialekte).
benchmark-builder:
title: Benchmark-Builder
description: >-
Vergleiche ganz einfach die Ausführungszeit von Aufgaben mit diesem sehr
einfachen Online-Benchmark-Builder.
git-memo:
title: Git-Spickzettel
description: >-
Git ist eine dezentrale Versionsverwaltungssoftware. Mit diesem
Spickzettel hast du schnellen Zugriff auf die gängigsten Git-Befehle.
slugify-string:
title: Slugify String
description: Mache einen String URL-, Dateinamen- und ID-sicher.
encryption:
title: Text verschlüsseln / entschlüsseln
description: >-
Verschlüssele und entschlüssele Klartext mithilfe von Kryptoalgorithmen
wie AES, TripleDES, Rabbit oder RC4.
random-port-generator:
title: Zufälliger Port-Generator
description: >-
Generiere zufällige Portnummern außerhalb des Bereichs der "bekannten"
Ports (0-1023).
yaml-prettify:
title: YAML verschönern und formatieren
description: Verschönere deinen YAML-String in ein menschenlesbares Format.
eta-calculator:
title: ETA-Rechner
description: >-
Ein ETA (Estimated Time of Arrival)-Rechner, um die ungefähre Endzeit
einer Aufgabe zu erfahren, z. B. den Zeitpunkt des Endes eines Downloads.
roman-numeral-converter:
title: Römische Zahlen Konverter
description: >-
Konvertiere römische Zahlen in Dezimalzahlen und Dezimalzahlen in römische
Zahlen.
hmac-generator:
title: HMAC-Generator
description: >-
Berechnet einen hashbasierten Nachrichtenauthentifizierungscode (HMAC)
unter Verwendung eines geheimen Schlüssels und deiner bevorzugten
Hash-Funktion.
bip39-generator:
title: BIP39-Passphrasengenerator
description: >-
Generiere BIP39-Passphrasen aus vorhandener oder zufälliger Mnemonik oder
erhalte die Mnemonik aus der Passphrase.
base64-file-converter:
title: Base64-Dateikonverter
description: Konvertiere Strings, Dateien oder Bilder in ihre Base64-Repräsentation.
list-converter:
title: Listenkonverter
description: >-
Dieses Tool kann spaltenbasierte Daten verarbeiten und verschiedene
Änderungen (transponieren, Präfix und Suffix hinzufügen, Liste umkehren,
Liste sortieren, Werte in Kleinbuchstaben umwandeln, Werte abschneiden)
auf jede Zeile anwenden.
base64-string-converter:
title: Base64-String-Encoder/Decoder
description: Codiere und decodiere Strings einfach in ihre Base64-Repräsentation.
toml-to-yaml:
title: TOML zu YAML
description: Parse und konvertiere TOML zu YAML.
math-evaluator:
title: Mathematischer Auswerter
description: >-
Ein Taschenrechner zum Auswerten mathematischer Ausdrücke. Du kannst
Funktionen wie sqrt, cos, sin, abs usw. verwenden.
json-to-yaml-converter:
title: JSON zu YAML
description: Konvertiere JSON einfach in YAML mit diesem Live-Online-Konverter.
url-parser:
title: URL-Parser
description: >-
Parse eine URL-Zeichenfolge, um alle verschiedenen Teile (Protokoll,
Ursprung, Parameter, Port, Benutzername-Passwort usw.) zu erhalten.
iban-validator-and-parser:
title: IBAN-Validator und -Parser
description: >-
Validiere und parse IBAN-Nummern. Überprüfe, ob die IBAN gültig ist, und
erhalte das Land, BBAN, ob es sich um eine QR-IBAN handelt und das
IBAN-freundliche Format.
user-agent-parser:
title: User-Agent-Parser
description: >-
Erkenne und parse Browser, Engine, Betriebssystem, CPU und
Gerätetyp/-modell aus einer User-Agent-Zeichenfolge.
numeronym-generator:
title: Numeronym-Generator
description: >-
Ein Numeronym ist ein Wort, bei dem eine Zahl verwendet wird, um eine
Abkürzung zu bilden. Zum Beispiel ist "i18n" ein Numeronym für
"internationalization", wobei 18 für die Anzahl der Buchstaben zwischen
dem ersten "i" und dem letzten "n" im Wort steht.
case-converter:
title: Fall-Konverter
description: >-
Ändere den Fall eines Strings und wähle zwischen verschiedenen Formaten
aus.
html-entities:
title: HTML-Entity-Escape
description: >-
Escape oder unescape HTML-Entitäten (ersetze <, >, &, " und ' durch ihre
HTML-Version).
json-prettify:
title: JSON verschönern und formatieren
description: Verschönere deinen JSON-String in ein menschenlesbares Format.
docker-run-to-docker-compose-converter:
title: Docker run zu Docker compose Konverter
description: Wandle docker run-Befehle in docker-compose-Dateien um!
mac-address-lookup:
title: MAC-Adressensuche
description: Finde den Anbieter und Hersteller eines Geräts anhand seiner MAC-Adresse.
mime-types:
title: MIME-Typen
description: Konvertiere MIME-Typen in Erweiterungen und umgekehrt.
toml-to-json:
title: TOML zu JSON
description: Parse und konvertiere TOML zu JSON.
lorem-ipsum-generator:
title: Lorem Ipsum Generator
description: >-
Lorem Ipsum ist ein Platzhaltertext, der häufig verwendet wird, um die
visuelle Form eines Dokuments oder einer Schriftart ohne Verwendung von
bedeutendem Inhalt zu demonstrieren.
qrcode-generator:
title: QR-Code-Generator
description: >-
Generiere und downloade QR-Codes für eine URL oder einfach einen Text und
passe die Hintergrund- und Vordergrundfarben an.
wifi-qrcode-generator:
title: WLAN-QR-Code-Generator
description: >-
Generiere und lade QR-Codes für schnelle Verbindungen zu WLAN-Netzwerken
herunter.
xml-formatter:
title: XML-Formatter
description: Verschönere deinen XML-String in ein menschenlesbares Format.
temperature-converter:
title: Temperaturkonverter
description: >-
Temperaturgradumrechnungen für Kelvin, Celsius, Fahrenheit, Rankine,
Delisle, Newton, Réaumur und Rømer.
chmod-calculator:
title: Chmod-Rechner
description: >-
Berechne deine Chmod-Berechtigungen und -Befehle mit diesem
Online-Chmod-Rechner.
rsa-key-pair-generator:
title: RSA-Schlüsselpaar-Generator
description: Generiere neue zufällige RSA-Private- und Public-Key-PEM-Zertifikate.
html-wysiwyg-editor:
title: HTML-WYSIWYG-Editor
description: >-
Online-HTML-Editor mit funktionsreichem WYSIWYG-Editor, erhalte sofort den
Quellcode des Inhalts.
yaml-to-toml:
title: YAML zu TOML
description: Parse und konvertiere YAML zu TOML.
mac-address-generator:
title: MAC-Adressen-Generator
description: >-
Gebe die Menge und das Präfix ein. MAC-Adressen werden in deiner gewählten
Schreibweise (Groß- oder Kleinbuchstaben) generiert.
json-diff:
title: JSON-Unterschied
description: Vergleiche zwei JSON-Objekte und erhalte die Unterschiede zwischen ihnen.
jwt-parser:
title: JWT-Parser
description: >-
Parse und decodiere deinen JSON-Web-Token (JWT) und zeige dessen Inhalt
an.
date-converter:
title: Datum-Uhrzeit-Konverter
description: Konvertiere Datum und Uhrzeit in verschiedene Formate.
phone-parser-and-formatter:
title: Telefonnummer-Parser und -Formatter
description: >-
Parse, validiere und formatiere Telefonnummern. Erhalte Informationen zur
Telefonnummer, wie z. B. die Landesvorwahl, den Typ usw.
ipv4-subnet-calculator:
title: IPv4-Subnetzrechner
description: >-
Parse deine IPv4-CIDR-Blöcke und erhalte alle Informationen, die du über
dein Subnetz benötigst.
og-meta-generator:
title: Open Graph Meta-Generator
description: Generiere Open Graph- und Social-HTML-Metatags für deine Website.
ipv6-ula-generator:
title: IPv6-ULA-Generator
description: >-
Generiere deine eigenen lokalen, nicht routbaren IP-Adressen in deinem
Netzwerk gemäß RFC4193.
hash-text:
title: Text hashen
description: >-
Hashe einen Text-String mit der von dir benötigten Funktion: MD5, SHA1,
SHA256, SHA224, SHA512, SHA384, SHA3 oder RIPEMD160
json-to-toml:
title: JSON zu TOML
description: Parse und konvertiere JSON zu TOML.
device-information:
title: Geräteinformationen
description: >-
Informationen zu deinem aktuellen Gerät (Bildschirmgröße, Pixelverhältnis,
Benutzeragent, ...) erhalten.
pdf-signature-checker:
title: PDF-Signaturprüfer
description: >-
Überprüfe die Signaturen einer PDF-Datei. Eine signierte PDF-Datei enthält
eine oder mehrere Signaturen, die verwendet werden können, um
festzustellen, ob der Inhalt der Datei seit dem Zeitpunkt der Signierung
geändert wurde.
json-minify:
title: JSON minifizieren
description: >-
Minifiziere und komprimiere dein JSON, indem unnötige Leerzeichen entfernt
werden.
ulid-generator:
title: ULID-Generator
description: >-
Generiere zufällige Universally Unique Lexicographically Sortable
Identifier (ULID).
string-obfuscator:
title: String-Verschleierer
description: >-
Verschleiere einen String (wie ein Secret, eine IBAN oder ein Token), um
ihn weitergeben zu können und identifizierbar zu machen, ohne seinen
Inhalt preiszugeben.
base-converter:
title: Ganzzahl-Basiskonverter
description: >-
Konvertiere Zahlen zwischen verschiedenen Basen (Dezimal, Hexadezimal,
Binär, Oktal, Base64, ...).
yaml-to-json-converter:
title: YAML zu JSON
description: Konvertiere YAML einfach in JSON mit diesem Live-Online-Konverter.
uuid-generator:
title: UUID-Generator
description: >-
Ein Universally Unique Identifier (UUID) ist eine 128-Bit-Nummer, die zur
Identifizierung von Informationen in Computersystemen verwendet wird. Die
Anzahl der möglichen UUIDs beträgt 16^32, was 2^128 oder etwa 3,4x10^38
entspricht (was ziemlich viel ist!).
ipv4-address-converter:
title: IPv4-Adresskonverter
description: >-
Konvertiere eine IP-Adresse in Dezimal, Binär, Hexadezimal oder sogar in
IPv6.
text-statistics:
title: Textstatistiken
description: >-
Informationen zu einem Text erhalten, wie die Anzahl der Zeichen, die
Anzahl der Wörter, die Größe usw.
text-to-nato-alphabet:
title: Text zu NATO-Alphabet
description: >-
Wandle Text in das NATO-Phonetik-Alphabet für die mündliche Übermittlung
um.
basic-auth-generator:
title: Basic-Auth-Generator
description: >-
Generiere einen Base64-Basic-Auth-Header aus einem Benutzernamen und einem
Passwort.
text-to-unicode:
title: Text zu Unicode
description: Parse und konvertiere Text in Unicode und umgekehrt.
ipv4-range-expander:
title: IPv4-Bereichserweiterer
description: >-
Bei Angabe einer Start- und End-IPv4-Adresse berechnet dieses Tool ein
gültiges IPv4-Netzwerk mit seiner CIDR-Notation.
text-diff:
title: Textunterschied
description: Vergleiche zwei Texte und sieh die Unterschiede zwischen ihnen.
otp-generator:
title: OTP-Code-Generator
description: >-
Generiere und validiere zeitbasierte OTPs (Einmalpasswörter) für
Multi-Faktor-Authentifizierung.
url-encoder:
title: Kodieren/Decodieren von URL-formatierten Zeichenfolgen
description: >-
Kodiere zum URL-kodierten Format (auch als "prozentkodiert" bekannt) oder
decodiere es.
text-to-binary:
title: Text zu ASCII-Binär
description: Konvertiere Text in seine ASCII-Binärrepräsentation und umgekehrt.

View file

@ -1,422 +1,393 @@
'404':
notFound: 404 Not Found
sorry: Sorry, this page does not seem to exist
maybe: Maybe the cache is doing tricky things, try force-refreshing?
backHome: Back home
home:
categories:
newestTools: Newest tools
favoriteTools: Your favorite tools
allTools: All the tools
subtitle: Handy tools for developers
toggleMenu: Toggle menu
favoriteTools: 'Your favorite tools'
allTools: 'All the tools'
subtitle: 'Handy tools for developers'
toggleMenu: 'Toggle menu'
home: Home
uiLib: UI Lib
support: Support IT Tools development
buyMeACoffee: Buy me a coffee
uiLib: 'UI Lib'
support: 'Support IT-Tools development'
buyMeACoffee: 'Buy me a coffee'
follow:
title: You like it-tools?
p1: Give us a star on
githubRepository: IT-Tools GitHub repository
p2: or follow us on
twitterAccount: IT-Tools Twitter account
thankYou: Thank you !
title: 'You like it-tools?'
p1: 'Give us a star on'
githubRepository: 'IT-Tools GitHub repository'
p2: 'or follow us on'
twitterAccount: 'IT-Tools Twitter account'
thankYou: 'Thank you!'
nav:
github: GitHub repository
githubRepository: IT-Tools GitHub repository
twitter: Twitter account
twitterAccount: IT Tools Twitter account
about: About IT-Tools
aboutLabel: About
darkMode: Dark mode
lightMode: Light mode
mode: Toggle dark/light mode
github: 'GitHub repository'
githubRepository: 'IT-Tools GitHub repository'
twitter: 'Twitter account'
twitterAccount: 'IT Tools Twitter account'
about: 'About IT-Tools'
aboutLabel: 'About'
darkMode: 'Dark mode'
lightMode: 'Light mode'
mode: 'Toggle dark/light mode'
about:
content: >
# About IT-Tools
This wonderful website, made with ❤ by [Corentin
Thomasset](https://github.com/CorentinTh) , aggregates useful tools for
developer and people working in IT. If you find it useful, please feel free
to share it to people you think may find it useful too and don't forget to
bookmark it in your shortcut bar!
This wonderful website, made with ❤ by [Corentin Thomasset](https://github.com/CorentinTh) , aggregates useful tools for developer and people working in IT. If you find it useful, please feel free to share it to people you think may find it useful too and don't forget to bookmark it in your shortcut bar!
IT Tools is open-source (under the MIT license) and free, and will always
be, but it costs me money to host and renew the domain name. If you want to
support my work, and encourage me to add more tools, please consider
supporting by [sponsoring me](https://www.buymeacoffee.com/cthmsst).
IT Tools is open-source (under the MIT license) and free, and will always be, but it costs me money to host and renew the domain name. If you want to support my work, and encourage me to add more tools, please consider supporting by [sponsoring me](https://www.buymeacoffee.com/cthmsst).
## Technologies
IT Tools is made in Vue.js (Vue 3) with the the Naive UI component library
and is hosted and continuously deployed by Vercel. Third-party open-source
libraries are used in some tools, you may find the complete list in the
[package.json](https://github.com/CorentinTh/it-tools/blob/main/package.json)
file of the repository.
IT Tools is made in Vue.js (Vue 3) with the the Naive UI component library and is hosted and continuously deployed by Vercel. Third-party open-source libraries are used in some tools, you may find the complete list in the [package.json](https://github.com/CorentinTh/it-tools/blob/main/package.json) file of the repository.
## Found a bug? A tool is missing?
If you need a tool that is currently not present here, and you think can be
useful, you are welcome to submit a feature request in the [issues
section](https://github.com/CorentinTh/it-tools/issues/new/choose) in the
GitHub repository.
If you need a tool that is currently not present here, and you think can be useful, you are welcome to submit a feature request in the [issues section](https://github.com/CorentinTh/it-tools/issues/new/choose) in the GitHub repository.
And if you found a bug, or something doesn't work as expected, please file a
bug report in the [issues
section](https://github.com/CorentinTh/it-tools/issues/new/choose) in the
GitHub repository.
And if you found a bug, or something doesn't work as expected, please file a bug report in the [issues section](https://github.com/CorentinTh/it-tools/issues/new/choose) in the GitHub repository.
404:
notFound: '404 Not Found'
sorry: 'Sorry, this page does not seem to exist'
maybe: 'Maybe the cache is doing tricky things, try force-refreshing?'
backHome: 'Back home'
favoriteButton:
remove: Remove from favorites
add: Add to favorites
remove: 'Remove from favorites'
add: 'Add to favorites'
toolCard:
new: New
search:
label: Search
tools:
categories:
favorite-tools: Your favorite tools
favorite-tools: 'Your favorite tools'
crypto: Crypto
converter: Converter
web: Web
images and videos: Images & Videos
images and videos: 'Images & Videos'
development: Development
network: Network
math: Math
measurement: Measurement
text: Text
data: Data
password-strength-analyser:
title: Password strength analyser
description: >-
Discover the strength of your password with this client side only password
strength analyser and crack time estimation tool.
description: Discover the strength of your password with this client-side-only password strength analyser and crack time estimation tool.
chronometer:
title: Chronometer
description: >-
Monitor the duration of a thing. Basically a chronometer with simple
chronometer features.
description: Monitor the duration of a thing. Basically a chronometer with simple chronometer features.
token-generator:
title: Token generator
description: >-
Generate random string with the chars you want, uppercase or lowercase
letters, numbers and/or symbols.
description: Generate random string with the chars you want, uppercase or lowercase letters, numbers and/or symbols.
uppercase: Uppercase (ABC...)
lowercase: Lowercase (abc...)
numbers: Numbers (123...)
symbols: Symbols (!-;...)
length: Length
tokenPlaceholder: The token...
tokenPlaceholder: 'The token...'
copied: Token copied to the clipboard
button:
copy: Copy
refresh: Refresh
count: Tokens to generate
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.
svg-placeholder-generator:
title: SVG placeholder generator
description: Generate svg images to use as placeholder in your applications.
description: Generate svg images to use as a placeholder in your applications.
json-to-csv:
title: JSON to CSV
description: Convert JSON to CSV with automatic header detection.
camera-recorder:
title: Camera recorder
description: Take a picture or record a video from your webcam or camera.
keycode-info:
title: Keycode info
description: >-
Find the javascript keycode, code, location and modifiers of any pressed
key.
description: Find the javascript keycode, code, location and modifiers of any pressed key.
emoji-picker:
title: Emoji picker
description: >-
Copy and paste emojis easily and get the unicode and code points value of
each emoji.
description: Copy and paste emojis easily and get the unicode and code points value of each emoji.
color-converter:
title: Color converter
description: Convert color between the different formats (hex, rgb, hsl and css name)
bcrypt:
title: Bcrypt
description: >-
Hash and compare text string using bcrypt. Bcrypt is a password-hashing
function based on the Blowfish cipher.
description: Hash and compare text string using bcrypt. Bcrypt is a password-hashing function based on the Blowfish cipher.
crontab-generator:
title: Crontab generator
description: >-
Validate and generate crontab and get the human readable description of
the cron schedule.
description: Validate and generate crontab and get the human-readable description of the cron schedule.
http-status-codes:
title: HTTP status codes
description: The list of all HTTP status codes their name and their meaning.
description: The list of all HTTP status codes, their name, and their meaning.
sql-prettify:
title: SQL prettify and format
description: >-
Format and prettify your SQL queries online (it supports various SQL
dialects).
description: Format and prettify your SQL queries online (it supports various SQL dialects).
benchmark-builder:
title: Benchmark builder
description: >-
Easily compare execution time of tasks with this very simple online
benchmark builder.
description: Easily compare execution time of tasks with this very simple online benchmark builder.
git-memo:
title: Git cheatsheet
description: >-
Git is a decentralized version management software. With this cheatsheet
you will have a quick access to the most common git commands.
description: Git is a decentralized version management software. With this cheatsheet, you will have quick access to the most common git commands.
slugify-string:
title: Slugify string
description: Make a string url, filename and id safe.
encryption:
title: Encrypt / decrypt text
description: >-
Encrypt and decrypt text clear text using crypto algorithm like AES,
TripleDES, Rabbit or RC4.
description: Encrypt clear text and decrypt ciphertext using crypto algorithms like AES, TripleDES, Rabbit or RC4.
random-port-generator:
title: Random port generator
description: >-
Generate random port numbers outside of the range of "known" ports
(0-1023).
description: Generate random port numbers outside of the range of "known" ports (0-1023).
yaml-prettify:
title: YAML prettify and format
description: Prettify your YAML string to a human friendly readable format.
description: Prettify your YAML string into a friendly, human-readable format.
eta-calculator:
title: ETA calculator
description: >-
An ETA (Estimated Time of Arrival) calculator to know the approximate end
time of a task, for example the moment of ending of a download.
description: An ETA (Estimated Time of Arrival) calculator to determine the approximate end time of a task, for example, the end time and duration of a file download.
roman-numeral-converter:
title: Roman numeral converter
description: Convert Roman numerals to numbers and convert numbers to Roman numerals.
hmac-generator:
title: Hmac generator
description: >-
Computes a hash-based message authentication code (HMAC) using a secret
key and your favorite hashing function.
description: Computes a hash-based message authentication code (HMAC) using a secret key and your favorite hashing function.
bip39-generator:
title: BIP39 passphrase generator
description: >-
Generate BIP39 passphrase from existing or random mnemonic, or get the
mnemonic from the passphrase.
description: Generate a BIP39 passphrase from an existing or random mnemonic, or get the mnemonic from the passphrase.
base64-file-converter:
title: Base64 file converter
description: Convert string, files or images into a it\'s base64 representation.
description: Convert a string, file, or image into its base64 representation.
list-converter:
title: List converter
description: >-
This tool can process column-based data and apply various changes
(transpose, add prefix and suffix, reverse list, sort list, lowercase
values, truncate values) to each row.
description: This tool can process column-based data and apply various changes (transpose, add prefix and suffix, reverse list, sort list, lowercase values, truncate values) to each row.
base64-string-converter:
title: Base64 string encoder/decoder
description: Simply encode and decode string into a their base64 representation.
description: Simply encode and decode strings into their base64 representation.
toml-to-yaml:
title: TOML to YAML
description: Parse and convert TOML to YAML.
math-evaluator:
title: Math evaluator
description: >-
A calculator for evaluating mathematical expressions. You can use
functions like sqrt, cos, sin, abs, etc.
description: A calculator for evaluating mathematical expressions. You can use functions like sqrt, cos, sin, abs, etc.
json-to-yaml-converter:
title: JSON to YAML converter
description: Simply convert JSON to YAML with this live online converter.
description: Simply convert JSON to YAML with this online live converter.
url-parser:
title: Url parser
description: >-
Parse an url string to get all the different parts (protocol, origin,
params, port, username-password, ...)
title: URL parser
description: Parse a URL into its separate constituent parts (protocol, origin, params, port, username-password, ...)
iban-validator-and-parser:
title: IBAN validator and parser
description: >-
Validate and parse IBAN numbers. Check if IBAN is valid and get the
country, BBAN, if it is a QR-IBAN and the IBAN friendly format.
description: Validate and parse IBAN numbers. Check if an IBAN is valid and get the country, BBAN, if it is a QR-IBAN and the IBAN friendly format.
user-agent-parser:
title: User-agent parser
description: >-
Detect and parse Browser, Engine, OS, CPU, and Device type/model from an
user-agent string.
description: Detect and parse Browser, Engine, OS, CPU, and Device type/model from an user-agent string.
numeronym-generator:
title: Numeronym generator
description: >-
A numeronym is a word where a number is used to form an abbreviation. For
example, "i18n" is a numeronym of "internationalization" where 18 stands
for the number of letters between the first i and the last n in the word.
description: A numeronym is a word where a number is used to form an abbreviation. For example, "i18n" is a numeronym of "internationalization" where 18 stands for the number of letters between the first i and the last n in the word.
case-converter:
title: Case converter
description: Change the case of a string and chose between different formats
description: Transform the case of a string and choose between different formats
html-entities:
title: Escape html entities
description: >-
Escape or unescape html entities (replace <,>, &, " and \' to their html
version)
title: Escape HTML entities
description: Escape or unescape HTML entities (replace characters like <,>, &, " and \' with their HTML version)
json-prettify:
title: JSON prettify and format
description: Prettify your JSON string to a human friendly readable format.
description: Prettify your JSON string into a friendly, human-readable format.
docker-run-to-docker-compose-converter:
title: Docker run to Docker compose converter
description: Turns docker run commands into docker-compose files!
description: Transforms "docker run" commands into docker-compose files!
mac-address-lookup:
title: MAC address lookup
description: Find the vendor and manufacturer of a device by its MAC address.
mime-types:
title: Mime types
description: Convert mime types to extensions and vice-versa.
title: MIME types
description: Convert MIME types to file extensions and vice-versa.
toml-to-json:
title: TOML to JSON
description: Parse and convert TOML to JSON.
lorem-ipsum-generator:
title: Lorem ipsum generator
description: >-
Lorem ipsum is a placeholder text commonly used to demonstrate the visual
form of a document or a typeface without relying on meaningful content
description: Lorem ipsum is a placeholder text commonly used to demonstrate the visual form of a document or a typeface without relying on meaningful content
qrcode-generator:
title: QR Code generator
description: >-
Generate and download QR-code for an url or just a text and customize the
background and foreground colors.
description: Generate and download a QR code for a URL (or just plain text), and customize the background and foreground colors.
wifi-qrcode-generator:
title: WiFi QR Code generator
description: Generate and download QR-codes for quick connections to WiFi networks.
description: Generate and download QR codes for quick connections to WiFi networks.
xml-formatter:
title: XML formatter
description: Prettify your XML string to a human friendly readable format.
description: Prettify your XML string into a friendly, human-readable format.
temperature-converter:
title: Temperature converter
description: >-
Temperature degrees conversions for Kelvin, Celsius, Fahrenheit, Rankine,
Delisle, Newton, Réaumur and Rømer.
description: Degrees temperature conversions for Kelvin, Celsius, Fahrenheit, Rankine, Delisle, Newton, Réaumur, and Rømer.
chmod-calculator:
title: Chmod calculator
description: >-
Compute your chmod permissions and commands with this online chmod
calculator.
description: Compute your chmod permissions and commands with this online chmod calculator.
rsa-key-pair-generator:
title: RSA key pair generator
description: Generate new random RSA private and public key pem certificates.
description: Generate a new random RSA private and public pem certificate key pair.
html-wysiwyg-editor:
title: HTML WYSIWYG editor
description: >-
Online HTML editor with feature-rich WYSIWYG editor, get the source code
of the content immediately.
description: Online, feature-rich WYSIWYG HTML editor which generates the source code of the content immediately.
yaml-to-toml:
title: YAML to TOML
description: Parse and convert YAML to TOML.
mac-address-generator:
title: MAC address generator
description: >-
Enter the quantity and prefix. MAC addresses will be generated in your
chosen case (uppercase or lowercase)
description: Enter the quantity and prefix. MAC addresses will be generated in your chosen case (uppercase or lowercase)
json-diff:
title: JSON diff
description: Compare two JSON objects and get the differences between them.
jwt-parser:
title: JWT parser
description: Parse and decode your JSON Web Token (jwt) and display its content.
date-converter:
title: Date-time converter
description: Convert date and time into the various different formats
phone-parser-and-formatter:
title: Phone parser and formatter
description: >-
Parse, validate and format phone numbers. Get information about the phone
number, like the country code, type, etc.
description: Parse, validate and format phone numbers. Get information about the phone number, like the country code, type, etc.
ipv4-subnet-calculator:
title: IPv4 subnet calculator
description: >-
Parse your IPv4 CIDR blocks and get all the info you need about your sub
network.
description: Parse your IPv4 CIDR blocks and get all the info you need about your subnet.
og-meta-generator:
title: Open graph meta generator
description: Generate open-graph and socials html meta tags for your website.
description: Generate open-graph and socials HTML meta tags for your website.
ipv6-ula-generator:
title: IPv6 ULA generator
description: >-
Generate your own local, non-routable IP addresses on your network
according to RFC4193.
description: Generate your own local, non-routable IP addresses for your network according to RFC4193.
hash-text:
title: Hash text
description: >-
Hash a text string using the function you need : MD5, SHA1, SHA256,
SHA224, SHA512, SHA384, SHA3 or RIPEMD160
description: 'Hash a text string using the function you need : MD5, SHA1, SHA256, SHA224, SHA512, SHA384, SHA3 or RIPEMD160'
json-to-toml:
title: JSON to TOML
description: Parse and convert JSON to TOML.
device-information:
title: Device information
description: >-
Get information about your current device (screen size, pixel-ratio, user
agent, ...)
description: Get information about your current device (screen size, pixel-ratio, user agent, ...)
pdf-signature-checker:
title: PDF signature checker
description: >-
Verify the signatures of a PDF file. A signed PDF file contains one or
more signatures that may be used to determine whether the contents of the
file have been altered since the file was signed.
description: Verify the signatures of a PDF file. A signed PDF file contains one or more signatures that may be used to determine whether the contents of the file have been altered since the file was signed.
json-minify:
title: JSON minify
description: Minify and compress your JSON by removing unnecessary white spaces.
description: Minify and compress your JSON by removing unnecessary whitespace.
ulid-generator:
title: ULID generator
description: >-
Generate random Universally Unique Lexicographically Sortable Identifier
(ULID).
description: Generate random Universally Unique Lexicographically Sortable Identifier (ULID).
string-obfuscator:
title: String obfuscator
description: >-
Obfuscate a string (like a secret, an IBAN, or a token) to make it
shareable and identifiable without revealing its content.
description: Obfuscate a string (like a secret, an IBAN, or a token) to make it shareable and identifiable without revealing its content.
base-converter:
title: Integer base converter
description: >-
Convert number between different bases (decimal, hexadecimal, binary,
octal, base64, ...)
description: Convert a number between different bases (decimal, hexadecimal, binary, octal, base64, ...)
yaml-to-json-converter:
title: YAML to JSON converter
description: Simply convert YAML to JSON with this live online converter.
description: Simply convert YAML to JSON with this online live converter.
uuid-generator:
title: UUIDs generator
description: >-
A Universally Unique Identifier (UUID) is a 128-bit number used to
identify information in computer systems. The number of possible UUIDs is
16^32, which is 2^128 or about 3.4x10^38 (which is a lot!).
description: A Universally Unique Identifier (UUID) is a 128-bit number used to identify information in computer systems. The number of possible UUIDs is 16^32, which is 2^128 or about 3.4x10^38 (which is a lot!).
ipv4-address-converter:
title: Ipv4 address converter
description: Convert an ip address into decimal, binary, hexadecimal or event in ipv6
title: IPv4 address converter
description: Convert an IP address into decimal, binary, hexadecimal, or even an IPv6 representation of it.
text-statistics:
title: Text statistics
description: >-
Get information about a text, the amount of characters, the amount of
words, it\'s size, ...
description: Get information about a text, the number of characters, the number of words, its size in bytes, ...
text-to-nato-alphabet:
title: Text to NATO alphabet
description: Transform text into NATO phonetic alphabet for oral transmission.
description: Transform text into the NATO phonetic alphabet for oral transmission.
basic-auth-generator:
title: Basic auth generator
description: Generate a base64 basic auth header from an username and a password.
description: Generate a base64 basic auth header from a username and password.
text-to-unicode:
title: Text to Unicode
description: Parse and convert text to unicode and vice-versa
ipv4-range-expander:
title: IPv4 range expander
description: >-
Given a start and an end IPv4 address this tool calculates a valid IPv4
network with its CIDR notation.
description: Given a start and an end IPv4 address, this tool calculates a valid IPv4 subnet along with its CIDR notation.
text-diff:
title: Text diff
description: Compare two texts and see the differences between them.
otp-generator:
title: OTP code generator
description: >-
Generate and validate time-based OTP (one time password) for multi-factor
authentication.
description: Generate and validate time-based OTP (one time password) for multi-factor authentication.
url-encoder:
title: Encode/decode url formatted strings
description: >-
Encode to url-encoded format (also known as "percent-encoded") or decode
from it.
title: Encode/decode URL-formatted strings
description: Encode text to URL-encoded format (also known as "percent-encoded"), or decode from it.
text-to-binary:
title: Text to ASCII binary
description: Convert text to its ASCII binary representation and vice versa.
description: Convert text to its ASCII binary representation and vice-versa.

View file

@ -1,6 +1,6 @@
{
"name": "it-tools",
"version": "2023.12.21-5ed3693",
"version": "2024.5.10-33e5294",
"description": "Collection of handy online tools for developers, with great UX. ",
"keywords": [
"productivity",
@ -41,6 +41,7 @@
"@tiptap/pm": "2.1.6",
"@tiptap/starter-kit": "2.1.6",
"@tiptap/vue-3": "2.0.3",
"@types/figlet": "^1.5.8",
"@vicons/material": "^0.12.0",
"@vicons/tabler": "^0.12.0",
"@vueuse/core": "^10.3.0",
@ -57,6 +58,7 @@
"date-fns": "^2.29.3",
"dompurify": "^3.0.6",
"emojilib": "^3.0.10",
"figlet": "^1.7.0",
"figue": "^1.2.0",
"fuse.js": "^6.6.2",
"highlight.js": "^11.7.0",

View file

@ -9,7 +9,7 @@ const useWebServer = process.env.NO_WEB_SERVER !== 'true';
*/
export default defineConfig({
testDir: './src',
testMatch: /.*\.e2e\.(spec\.)?ts/,
testMatch: /\.e2e\.(spec\.)?ts$/,
/* Run tests in files in parallel */
fullyParallel: true,
/* Fail the build on CI if you accidentally left test.only in the source code. */
@ -57,7 +57,7 @@ export default defineConfig({
&& {
webServer: {
command: 'npm run preview',
url: 'http://127.0.0.1:5050',
url: 'http://localhost:5050',
reuseExistingServer: !isCI,
},
}

16
pnpm-lock.yaml generated
View file

@ -23,6 +23,9 @@ dependencies:
'@tiptap/vue-3':
specifier: 2.0.3
version: 2.0.3(@tiptap/core@2.1.12)(@tiptap/pm@2.1.6)(vue@3.3.4)
'@types/figlet':
specifier: ^1.5.8
version: 1.5.8
'@vicons/material':
specifier: ^0.12.0
version: 0.12.0
@ -71,6 +74,9 @@ dependencies:
emojilib:
specifier: ^3.0.10
version: 3.0.10
figlet:
specifier: ^1.7.0
version: 1.7.0
figue:
specifier: ^1.2.0
version: 1.2.0
@ -2902,6 +2908,10 @@ packages:
/@types/estree@1.0.0:
resolution: {integrity: sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==}
/@types/figlet@1.5.8:
resolution: {integrity: sha512-G22AUvy4Tl95XLE7jmUM8s8mKcoz+Hr+Xm9W90gJsppJq9f9tHvOGkrpn4gRX0q/cLtBdNkWtWCKDg2UDZoZvQ==}
dev: false
/@types/fs-extra@11.0.1:
resolution: {integrity: sha512-MxObHvNl4A69ofaTRU8DFqvgzzv8s9yRtaPPm5gud9HDNvpB3GPQFvNuTWAI59B9huVGV5jXYJwbCsmBsOGYWA==}
dependencies:
@ -5585,6 +5595,12 @@ packages:
web-streams-polyfill: 3.2.1
dev: true
/figlet@1.7.0:
resolution: {integrity: sha512-gO8l3wvqo0V7wEFLXPbkX83b7MVjRrk1oRLfYlZXol8nEpb/ON9pcKLI4qpBv5YtOTfrINtqb7b40iYY2FTWFg==}
engines: {node: '>= 0.4.0'}
hasBin: true
dev: false
/figue@1.2.0:
resolution: {integrity: sha512-CXKr12kiNWjKtUK3X+YHeXKepn80s9Rg6pgZXoLQYEybgwaGJ9uGW4DrBrVK30ZWZf1mcvTbXF56AcovG7gLVw==}
dependencies:

View file

@ -3,6 +3,7 @@ const { availableLocales, locale } = useI18n();
const localesLong: Record<string, string> = {
en: 'English',
de: 'Deutsch',
es: 'Español',
fr: 'Français',
pt: 'Português',

View file

@ -0,0 +1,93 @@
<script setup lang="ts">
import figlet from 'figlet';
import TextareaCopyable from '@/components/TextareaCopyable.vue';
const input = ref('Ascii ART');
const font = useStorage('ascii-text-drawer:font', 'Standard');
const width = useStorage('ascii-text-drawer:width', 80);
const output = ref('');
const errored = ref(false);
const processing = ref(false);
figlet.defaults({ fontPath: '//unpkg.com/figlet@1.6.0/fonts/' });
watchEffect(async () => {
processing.value = true;
try {
const options: figlet.Options = {
font: font.value as figlet.Fonts,
width: width.value,
whitespaceBreak: true,
};
output.value = await (new Promise<string>((resolve, reject) =>
figlet.text(input.value, options,
(err, text) => {
if (err) {
reject(err);
return;
}
resolve(text ?? '');
})));
errored.value = false;
}
catch (e: any) {
errored.value = true;
}
processing.value = false;
});
const fonts = ['1Row', '3-D', '3D Diagonal', '3D-ASCII', '3x5', '4Max', '5 Line Oblique', 'AMC 3 Line', 'AMC 3 Liv1', 'AMC AAA01', 'AMC Neko', 'AMC Razor', 'AMC Razor2', 'AMC Slash', 'AMC Slider', 'AMC Thin', 'AMC Tubes', 'AMC Untitled', 'ANSI Shadow', 'ASCII New Roman', 'Acrobatic', 'Alligator', 'Alligator2', 'Alpha', 'Alphabet', 'Arrows', 'Avatar', 'B1FF', 'B1FF', 'Banner', 'Banner3-D', 'Banner3', 'Banner4', 'Barbwire', 'Basic', 'Bear', 'Bell', 'Benjamin', 'Big Chief', 'Big Money-ne', 'Big Money-nw', 'Big Money-se', 'Big Money-sw', 'Big', 'Bigfig', 'Binary', 'Block', 'Blocks', 'Bloody', 'Bolger', 'Braced', 'Bright', 'Broadway KB', 'Broadway', 'Bubble', 'Bulbhead', 'Caligraphy', 'Caligraphy2', 'Calvin S', 'Cards', 'Catwalk', 'Chiseled', 'Chunky', 'Coinstak', 'Cola', 'Colossal', 'Computer', 'Contessa', 'Contrast', 'Cosmike', 'Crawford', 'Crawford2', 'Crazy', 'Cricket', 'Cursive', 'Cyberlarge', 'Cybermedium', 'Cybersmall', 'Cygnet', 'DANC4', 'DOS Rebel', 'DWhistled', 'Dancing Font', 'Decimal', 'Def Leppard', 'Delta Corps Priest 1', 'Diamond', 'Diet Cola', 'Digital', 'Doh', 'Doom', 'Dot Matrix', 'Double Shorts', 'Double', 'Dr Pepper', 'Efti Chess', 'Efti Font', 'Efti Italic', 'Efti Piti', 'Efti Robot', 'Efti Wall', 'Efti Water', 'Electronic', 'Elite', 'Epic', 'Fender', 'Filter', 'Fire Font-k', 'Fire Font-s', 'Flipped', 'Flower Power', 'Four Tops', 'Fraktur', 'Fun Face', 'Fun Faces', 'Fuzzy', 'Georgi16', 'Georgia11', 'Ghost', 'Ghoulish', 'Glenyn', 'Goofy', 'Gothic', 'Graceful', 'Gradient', 'Graffiti', 'Greek', 'Heart Left', 'Heart Right', 'Henry 3D', 'Hex', 'Hieroglyphs', 'Hollywood', 'Horizontal Left', 'Horizontal Right', 'ICL-1900', 'Impossible', 'Invita', 'Isometric1', 'Isometric2', 'Isometric3', 'Isometric4', 'Italic', 'Ivrit', 'JS Block Letters', 'JS Bracket Letters', 'JS Capital Curves', 'JS Cursive', 'JS Stick Letters', 'Jacky', 'Jazmine', 'Jerusalem', 'Katakana', 'Kban', 'Keyboard', 'Knob', 'Konto Slant', 'Konto', 'LCD', 'Larry 3D 2', 'Larry 3D', 'Lean', 'Letters', 'Lil Devil', 'Line Blocks', 'Linux', 'Lockergnome', 'Madrid', 'Marquee', 'Maxfour', 'Merlin1', 'Merlin2', 'Mike', 'Mini', 'Mirror', 'Mnemonic', 'Modular', 'Morse', 'Morse2', 'Moscow', 'Mshebrew210', 'Muzzle', 'NScript', 'NT Greek', 'NV Script', 'Nancyj-Fancy', 'Nancyj-Improved', 'Nancyj-Underlined', 'Nancyj', 'Nipples', 'O8', 'OS2', 'Octal', 'Ogre', 'Old Banner', 'Patorjk\'s Cheese', 'Patorjk-HeX', 'Pawp', 'Peaks Slant', 'Peaks', 'Pebbles', 'Pepper', 'Poison', 'Puffy', 'Puzzle', 'Pyramid', 'Rammstein', 'Rectangles', 'Red Phoenix', 'Relief', 'Relief2', 'Reverse', 'Roman', 'Rot13', 'Rot13', 'Rotated', 'Rounded', 'Rowan Cap', 'Rozzo', 'Runic', 'Runyc', 'S Blood', 'SL Script', 'Santa Clara', 'Script', 'Serifcap', 'Shadow', 'Shimrod', 'Short', 'Slant Relief', 'Slant', 'Slide', 'Small Caps', 'Small Isometric1', 'Small Keyboard', 'Small Poison', 'Small Script', 'Small Shadow', 'Small Slant', 'Small Tengwar', 'Small', 'Soft', 'Speed', 'Spliff', 'Stacey', 'Stampate', 'Stampatello', 'Standard', 'Star Strips', 'Star Wars', 'Stellar', 'Stforek', 'Stick Letters', 'Stop', 'Straight', 'Stronger Than All', 'Sub-Zero', 'Swamp Land', 'Swan', 'Sweet', 'THIS', 'Tanja', 'Tengwar', 'Term', 'Test1', 'The Edge', 'Thick', 'Thin', 'Thorned', 'Three Point', 'Ticks Slant', 'Ticks', 'Tiles', 'Tinker-Toy', 'Tombstone', 'Train', 'Trek', 'Tsalagi', 'Tubular', 'Twisted', 'Two Point', 'USA Flag', 'Univers', 'Varsity', 'Wavy', 'Weird', 'Wet Letter', 'Whimsy', 'Wow'];
</script>
<template>
<c-card style="max-width: 600px;">
<c-input-text
v-model:value="input"
label="Your text:"
placeholder="Your text to draw"
raw-text
multiline
rows="4"
/>
<n-divider />
<n-grid cols="4" x-gap="12" w-full>
<n-gi span="2">
<c-select
v-model:value="font"
label-position="top"
label="Font:"
:options="fonts"
searchable="true"
placeholder="Select font to use"
/>
</n-gi>
<n-gi span="2">
<n-form-item label="Width:" label-placement="top" label-width="100" :show-feedback="false">
<n-input-number v-model:value="width" min="0" max="10000" w-full placeholder="Width of the text" />
</n-form-item>
</n-gi>
</n-grid>
<n-divider />
<div v-if="processing" flex items-center justify-center>
<n-spin size="medium" />
<span class="ml-2">Loading font...</span>
</div>
<c-alert v-if="errored" mt-1 text-center type="error">
Current settings resulted in error.
</c-alert>
<n-form-item v-if="!processing && !errored" label="Ascii Art text:">
<TextareaCopyable
:value="output"
mb-1 mt-1
copy-placement="outside"
/>
</n-form-item>
</c-card>
</template>

View file

@ -0,0 +1,12 @@
import { Artboard } from '@vicons/tabler';
import { defineTool } from '../tool';
export const tool = defineTool({
name: 'ASCII Art Text Generator',
path: '/ascii-text-drawer',
description: 'Create ASCII art text with many fonts and styles.',
keywords: ['ascii', 'asciiart', 'text', 'drawer'],
component: () => import('./ascii-text-drawer.vue'),
icon: Artboard,
createdAt: new Date('2024-03-03'),
});

View file

@ -28,7 +28,7 @@ const compareMatch = computed(() => compareSync(compareString.value, compareHash
mb-2
/>
<n-form-item label="Salt count: " label-placement="left" label-width="120">
<n-input-number v-model:value="saltCount" placeholder="Salt rounds..." :max="10" :min="0" w-full />
<n-input-number v-model:value="saltCount" placeholder="Salt rounds..." :max="100" :min="0" w-full />
</n-form-item>
<c-input-text :value="hashed" readonly text-center />

View file

@ -1,7 +1,11 @@
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 asciiTextDrawer } from './ascii-text-drawer';
import { tool as textToUnicode } from './text-to-unicode';
import { tool as safelinkDecoder } from './safelink-decoder';
import { tool as pdfSignatureChecker } from './pdf-signature-checker';
import { tool as numeronymGenerator } from './numeronym-generator';
import { tool as macAddressGenerator } from './mac-address-generator';
@ -123,6 +127,7 @@ export const toolsByCategory: ToolCategory[] = [
userAgentParser,
httpStatusCodes,
jsonDiff,
safelinkDecoder,
],
},
{
@ -159,7 +164,15 @@ export const toolsByCategory: ToolCategory[] = [
},
{
name: 'Text',
components: [loremIpsumGenerator, textStatistics, emojiPicker, stringObfuscator, textDiff, numeronymGenerator],
components: [
loremIpsumGenerator,
textStatistics,
emojiPicker,
stringObfuscator,
textDiff,
numeronymGenerator,
asciiTextDrawer,
],
},
{
name: 'Data',

View file

@ -11,6 +11,9 @@ describe('integer-base-converter', () => {
expect(convertBase({ value: '10100101', fromBase: 2, toBase: 16 })).toEqual('a5');
expect(convertBase({ value: '192654', fromBase: 10, toBase: 8 })).toEqual('570216');
expect(convertBase({ value: 'zz', fromBase: 64, toBase: 10 })).toEqual('2275');
expect(convertBase({ value: '42540766411283223938465490632011909384', fromBase: 10, toBase: 10 })).toEqual('42540766411283223938465490632011909384');
expect(convertBase({ value: '42540766411283223938465490632011909384', fromBase: 10, toBase: 16 })).toEqual('20010db8000085a300000000ac1f8908');
expect(convertBase({ value: '20010db8000085a300000000ac1f8908', fromBase: 16, toBase: 10 })).toEqual('42540766411283223938465490632011909384');
});
});
});

View file

@ -5,16 +5,16 @@ export function convertBase({ value, fromBase, toBase }: { value: string; fromBa
let decValue = value
.split('')
.reverse()
.reduce((carry: number, digit: string, index: number) => {
.reduce((carry: bigint, digit: string, index: number) => {
if (!fromRange.includes(digit)) {
throw new Error(`Invalid digit "${digit}" for base ${fromBase}.`);
}
return (carry += fromRange.indexOf(digit) * fromBase ** index);
}, 0);
return (carry += BigInt(fromRange.indexOf(digit)) * BigInt(fromBase) ** BigInt(index));
}, 0n);
let newValue = '';
while (decValue > 0) {
newValue = toRange[decValue % toBase] + newValue;
decValue = (decValue - (decValue % toBase)) / toBase;
newValue = toRange[Number(decValue % BigInt(toBase))] + newValue;
decValue = (decValue - (decValue % BigInt(toBase))) / BigInt(toBase);
}
return newValue || '0';
}

View file

@ -0,0 +1,12 @@
import { Mailbox } from '@vicons/tabler';
import { defineTool } from '../tool';
export const tool = defineTool({
name: 'Outlook Safelink decoder',
path: '/safelink-decoder',
description: 'Decode Outlook SafeLink links',
keywords: ['outlook', 'safelink', 'decoder'],
component: () => import('./safelink-decoder.vue'),
icon: Mailbox,
createdAt: new Date('2024-03-11'),
});

View file

@ -0,0 +1,21 @@
import { describe, expect, it } from 'vitest';
import { decodeSafeLinksURL } from './safelink-decoder.service';
describe('safelink-decoder', () => {
describe('decodeSafeLinksURL', () => {
describe('decode outlook safelink urls', () => {
it('should decode basic safelink urls', () => {
expect(decodeSafeLinksURL('https://aus01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.google.com%2Fsearch%3Fq%3Dsafelink%26rlz%3D1&data=05%7C02%7C%7C1ed07253975b46da1d1508dc3443752a%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C638442711583216725%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C0%7C%7C%7C&sdata=%2BQY0HBnnxfI7pzZoxzlhZdDvYu80LwQB0zUUjrffVnk%3D&reserved=0'))
.toBe('https://www.google.com/search?q=safelink&rlz=1');
});
it('should decode encoded safelink urls', () => {
expect(decodeSafeLinksURL('https://aus01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.google.com%2Fsearch%3Fq%3Dsafelink%26rlz%3D1&amp;data=05%7C02%7C%7C1ed07253975b46da1d1508dc3443752a%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C638442711583216725%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C0%7C%7C%7C&amp;sdata=%2BQY0HBnnxfI7pzZoxzlhZdDvYu80LwQB0zUUjrffVnk%3D&amp;reserved=0'))
.toBe('https://www.google.com/search?q=safelink&rlz=1');
});
it('throw on not outlook safelink urls', () => {
expect(() => decodeSafeLinksURL('https://google.com'))
.toThrow('Invalid SafeLinks URL provided');
});
});
});
});

View file

@ -0,0 +1,7 @@
export function decodeSafeLinksURL(safeLinksUrl: string) {
if (!safeLinksUrl.match(/\.safelinks\.protection\.outlook\.com/)) {
throw new Error('Invalid SafeLinks URL provided');
}
return new URL(safeLinksUrl).searchParams.get('url');
}

View file

@ -0,0 +1,32 @@
<script setup lang="ts">
import { decodeSafeLinksURL } from './safelink-decoder.service';
import TextareaCopyable from '@/components/TextareaCopyable.vue';
const inputSafeLinkUrl = ref('');
const outputDecodedUrl = computed(() => {
try {
return decodeSafeLinksURL(inputSafeLinkUrl.value);
}
catch (e: any) {
return e.toString();
}
});
</script>
<template>
<div>
<c-input-text
v-model:value="inputSafeLinkUrl"
raw-text
placeholder="Your input Outlook SafeLink Url..."
autofocus
label="Your input Outlook SafeLink Url:"
/>
<n-divider />
<n-form-item label="Output decoded URL:">
<TextareaCopyable :value="outputDecodedUrl" :word-wrap="true" />
</n-form-item>
</div>
</template>

View file

@ -23,7 +23,7 @@ const decodeInput = ref('Hello%20world%20%3A)');
const decodeOutput = computed(() => withDefaultOnError(() => decodeURIComponent(decodeInput.value), ''));
const decodeValidation = useValidation({
source: encodeInput,
source: decodeInput,
rules: [
{
validator: value => isNotThrowing(() => decodeURIComponent(value)),