From e3cf1eb82d3a705fe03c7af30d969a137a3761a3 Mon Sep 17 00:00:00 2001 From: tuz Date: Fri, 17 Oct 2025 00:23:19 -0500 Subject: [PATCH] Update --- README.md | 351 +++++++ lang/css.border.md | 6 + lang/css.flex.md | 46 + lang/css.grid.md | 0 lang/css.template.md | 34 + lang/css.zoom.md | 22 + lang/html.deprecate.md | 1 + lang/html.div.md | 4 + lang/html.form.md | 58 ++ lang/html.import.md | 25 + lang/html.template.md | 11 + server/caddy/README.md | 321 ++++++ server/nginex/README.md | 0 src/panama_paradise/Readme.md | 2 + .../src/private/template/header.php | 56 + .../src/public/assets/css/base.css | 105 ++ .../src/public/assets/css/header.css | 148 +++ .../src/public/assets/css/page-home.css | 305 ++++++ .../src/public/assets/css/page-planifica.css | 216 ++++ .../public/assets/css/page-promociones.css | 381 +++++++ .../src/public/assets/img/panama-logo.png | Bin 0 -> 23019 bytes .../src/public/assets/img/panama-logo.webp | Bin 0 -> 6358 bytes .../src/public/assets/img/promo/img.md | 0 src/panama_paradise/src/public/error/404.php | 1 + src/panama_paradise/src/public/index.php | 51 + src/panama_paradise/src/public/planifica.php | 78 ++ .../src/public/promociones.php | 106 ++ tool/package/nodejs.md | 17 + tool/responsively.md | 35 + tool/selenium/README.md | 20 + tool/vite/.gitignore | 24 + tool/vite/assets/css/style.css | 3 + tool/vite/assets/js/client.js | 0 tool/vite/assets/js/main.js | 4 + tool/vite/assets/js/xmpp.js | 31 + tool/vite/index.html | 13 + tool/vite/package-lock.json | 971 ++++++++++++++++++ tool/vite/package.json | 14 + tool/vite/public/vite.svg | 1 + tool/vite/src/counter.js | 9 + tool/vite/src/javascript.svg | 1 + tool/vite/src/main.js | 24 + tool/vite/src/style.css | 96 ++ tool/vite/vite.config.js | 15 + tool/web_platform.md | 9 + 45 files changed, 3615 insertions(+) create mode 100644 README.md create mode 100644 lang/css.border.md create mode 100644 lang/css.flex.md create mode 100644 lang/css.grid.md create mode 100644 lang/css.template.md create mode 100644 lang/css.zoom.md create mode 100644 lang/html.deprecate.md create mode 100644 lang/html.div.md create mode 100644 lang/html.form.md create mode 100644 lang/html.import.md create mode 100644 lang/html.template.md create mode 100644 server/caddy/README.md create mode 100644 server/nginex/README.md create mode 100644 src/panama_paradise/Readme.md create mode 100644 src/panama_paradise/src/private/template/header.php create mode 100644 src/panama_paradise/src/public/assets/css/base.css create mode 100644 src/panama_paradise/src/public/assets/css/header.css create mode 100644 src/panama_paradise/src/public/assets/css/page-home.css create mode 100644 src/panama_paradise/src/public/assets/css/page-planifica.css create mode 100644 src/panama_paradise/src/public/assets/css/page-promociones.css create mode 100644 src/panama_paradise/src/public/assets/img/panama-logo.png create mode 100644 src/panama_paradise/src/public/assets/img/panama-logo.webp create mode 100644 src/panama_paradise/src/public/assets/img/promo/img.md create mode 100644 src/panama_paradise/src/public/error/404.php create mode 100644 src/panama_paradise/src/public/index.php create mode 100644 src/panama_paradise/src/public/planifica.php create mode 100644 src/panama_paradise/src/public/promociones.php create mode 100644 tool/package/nodejs.md create mode 100644 tool/responsively.md create mode 100644 tool/selenium/README.md create mode 100644 tool/vite/.gitignore create mode 100644 tool/vite/assets/css/style.css create mode 100644 tool/vite/assets/js/client.js create mode 100644 tool/vite/assets/js/main.js create mode 100644 tool/vite/assets/js/xmpp.js create mode 100644 tool/vite/index.html create mode 100644 tool/vite/package-lock.json create mode 100644 tool/vite/package.json create mode 100644 tool/vite/public/vite.svg create mode 100644 tool/vite/src/counter.js create mode 100644 tool/vite/src/javascript.svg create mode 100644 tool/vite/src/main.js create mode 100644 tool/vite/src/style.css create mode 100644 tool/vite/vite.config.js create mode 100644 tool/web_platform.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..e046c8c --- /dev/null +++ b/README.md @@ -0,0 +1,351 @@ +# HTML CSS JS + +`html` +`HyperText Markup Language` +`css` +`Cascading Style Sheets` +`js` + +## Basic reset + +```css +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} +``` +## ! + +```html + +``` + +## div +```html +
+ + +
+``` + + + +## Sources + +### Link + +```html + + + + + + + +``` + +### Video +```html + +``` + +### Audio +```html + +``` + + + + +```html + + + + + + + +
+
+ +
+ +
+
+ + + +
+
HTML
+
Lenguaje de marcado para crear páginas web
+ +
CSS
+
Lenguaje para dar estilo a las páginas web
+
+ +

Título Principal

+

Subtítulo

+

Sección

+

Subsección

+
Apartado
+
Subapartado
+ +Formato de Texto +Texto importante +Texto enfatizado +Texto resaltado +Texto pequeño +Texto eliminado +Texto insertado +subíndice +superíndice + +Enlaces y Navegación + +Ir a Google + + +Contacto + + +Ir a sección + + +Enviar correo + + +Llamar + +cloud + + + + + + + +home + + +https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/link + + +Home + + + +Home + + +https://stackoverflow.com/questions/68838248/how-do-you-add-a-link-inside-an-svg-image-file + +https://www.w3schools.com/graphics/svg_hyperlinks.asp +``` + +(Noopener noreferrer)[https://stackoverflow.com/questions/79600136/when-adding-target-blank-to-a-html-link-is-it-still-necessary-to-add-rel-no] + + + + +
+
+
+
+

+ +
+ + + +
+
+ Ubicación + + + + + +
+
+ + + + + + + + + + + + + + + +# Web + +## Lang + +- html +- css +- js + + + + + + + +Link: +http://fngggljygpsc653xd22hyyvubyxeubymaomjqjwnd5tjo64mwo73fsad.onion +http://fngggljygpsc653xd22hyyvubyxeubymaomjqjwnd5tjo64mwo73fsad.onion/public/ + + +--------------------------------------------- + +nginx +https://nginx.org/en/ + +command: +taskkill /IM nginx.exe /F + + +Tor Browser +https://www.torproject.org/ +https://www.torproject.org/download/ + +command: +taskkill /IM tor.exe /F + +--------------------------------------------- + + +Config: + +Tor +1: +C:\root\src\zarga\TorBrowser\Browser\TorBrowser\Data\Tor\torrc + +torrc.txt = +HiddenServiceDir C:\root\src\zarga\TorBrowser\hidden_service +HiddenServicePort 80 127.0.0.1:8080 + + +--------------------------------------------- + +nginx +2: +nginx/conf = + + + + + +Check url: + +hidden_Service = Hotname = fngggljygpsc653xd22hyyvubyxeubymaomjqjwnd5tjo64mwo73fsad.onion + + + + +Start: + +win + r, sysdm.cpl + +path = +C:\root\src\zarga\nginx + +Descartado [ +NGINX_CONF_PATH=C:\root\src\zarga\nginx\conf\nginx.conf +Set Variable Name: NGINX_CONF_PATH +Set Variable Value: C:\root\src\zarga\nginx\conf\nginx.conf + +C:/root/src/zarga/nginx/conf/nginx.conf + +C:\root\src\zarga\TorBrowser\Browser +] + +firefox.exe + +cd C:\root\src\zarga\nginx +nginx.exe + + + + +//////////////////////////////////////////////////////////// + +path: +C:\root\src\zarga\php-8.4.3-nts-Win32-vs17-x64 + +Build web server: + +php: +https://windows.php.net/download +VS17 x64 Non Thread Safe (2025-Jan-15 11:07:36) + + +php/php.ini-production + + +cd C:\root\src\zarga\php-8.4.3-nts-Win32-vs17-x64 + +php-cgi.exe -b 127.0.0.1:9000 + +nginx -s reload + + + + + + +Execute compile: + +php-cgi.exe -b 127.0.0.1:9000 + +cd C:\root\src\zarga\nginx> +nginx.exe + +firefox.exe + + +Stop run: + +taskkill /IM nginx.exe /F +taskkill /F /IM tor.exe + + + +--------------------------------------------- + +https://www.apachefriends.org/es/index.html +https://www.apachefriends.org/es/download_success.html +https://www.apachefriends.org/es/download.html + + +C:\xampp\htdocs\ + + taskkill /IM xampp-control.exe /F + +DocumentRoot "C:/xampp/htdocs" to +C:/root/src/php/htdocss + +DocumentRoot "C:/root/src/php/htdocs" + + + +Listen 80 +ServerName localhost:80 + +Listen 8080 +ServerName localhost:8080 + + +http://localhost:80/ diff --git a/lang/css.border.md b/lang/css.border.md new file mode 100644 index 0000000..9e68bcd --- /dev/null +++ b/lang/css.border.md @@ -0,0 +1,6 @@ +# border + + +```css +border-radius +``` diff --git a/lang/css.flex.md b/lang/css.flex.md new file mode 100644 index 0000000..32ac6d2 --- /dev/null +++ b/lang/css.flex.md @@ -0,0 +1,46 @@ +# Flex + +```css +.div-flex { + display: flex; +} +``` + + +## flex tag + +`Flex equivalent` +```css +flex: 1; + +flex: 1 1 0%; + +flex-grow: 1; +flex-shrink: 1; +flex-basis: 0%; +``` + + +## Order +```css +justify-content: center; +align-items: center; +``` + +### Example +```css +Center horizontal +<--------x--------> +justify-content: center; + + +Center vertical +^ +| +| +x +| +| +v +align-items: center; +``` \ No newline at end of file diff --git a/lang/css.grid.md b/lang/css.grid.md new file mode 100644 index 0000000..e69de29 diff --git a/lang/css.template.md b/lang/css.template.md new file mode 100644 index 0000000..b4286df --- /dev/null +++ b/lang/css.template.md @@ -0,0 +1,34 @@ +# Template +```css +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} +``` + +```css +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +/* Movil */ + + +/* Tablet */ +@media (min-width: 600px) { + +} + +/* Desktop 1 */ +@media (min-width: 900px) { + +} + +/* Desktop 2 */ +@media (min-width: 1200px) { + +} +``` \ No newline at end of file diff --git a/lang/css.zoom.md b/lang/css.zoom.md new file mode 100644 index 0000000..90d70a2 --- /dev/null +++ b/lang/css.zoom.md @@ -0,0 +1,22 @@ +# Zoom + +```css +/* values */ +zoom: 50%; +zoom: 200%; + +/* values */ +zoom: 1.1; +zoom: 0.7; + +/* Non-standard keyword values */ +zoom: normal; +zoom: reset; + +/* Global values */ +zoom: inherit; +zoom: initial; +zoom: revert; +zoom: revert-layer; +zoom: unset; +``` \ No newline at end of file diff --git a/lang/html.deprecate.md b/lang/html.deprecate.md new file mode 100644 index 0000000..b9a724f --- /dev/null +++ b/lang/html.deprecate.md @@ -0,0 +1 @@ +br diff --git a/lang/html.div.md b/lang/html.div.md new file mode 100644 index 0000000..2f4fc17 --- /dev/null +++ b/lang/html.div.md @@ -0,0 +1,4 @@ +
+ + +
diff --git a/lang/html.form.md b/lang/html.form.md new file mode 100644 index 0000000..50ea32a --- /dev/null +++ b/lang/html.form.md @@ -0,0 +1,58 @@ + +## Upload files + +`multiple files` + +```html +
+ + +
+``` + + + +
+ + +
+ +```html +
+
+ + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
+ +``` diff --git a/lang/html.import.md b/lang/html.import.md new file mode 100644 index 0000000..4f9bc24 --- /dev/null +++ b/lang/html.import.md @@ -0,0 +1,25 @@ +# CSS import + +```html + +``` + + +## Example +```html + + + + + + Document + + + +
+
+
+ + +``` + diff --git a/lang/html.template.md b/lang/html.template.md new file mode 100644 index 0000000..a14cc8b --- /dev/null +++ b/lang/html.template.md @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/server/caddy/README.md b/server/caddy/README.md new file mode 100644 index 0000000..3e2bd02 --- /dev/null +++ b/server/caddy/README.md @@ -0,0 +1,321 @@ +# Caddy + +## Remove + +### Apache + +```sh +sudo lsof -i :80 +sudo systemctl stop apache2 +sudo systemctl disable apache2 +sudo apt remove --purge apache2 apache2-utils apache2-bin apache2.2-common -y +sudo apt autoremove -y +sudo rm -rf /etc/apache2 +``` + +## Install + +```sh +sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https curl +curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg +curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | \ +sudo tee /etc/apt/sources.list.d/caddy-stable.list +sudo apt update +sudo apt install caddy -y + +sudo chown -R caddy:caddy /var/lib/caddy +sudo chmod -R 700 /var/lib/caddy + +sudo chown root:caddy /etc/caddy/Caddyfile +sudo chmod 640 /etc/caddy/Caddyfile + +ufw allow 80 +ufw allow 443 +``` + + +## Commands + +```sh +sudo systemctl start caddy +sudo systemctl enable caddy +sudo systemctl stop caddy + +sudo systemctl daemon-reload + +sudo systemctl status caddy +sudo systemctl reload caddy +sudo systemctl restart caddy + + +sudo systemctl status caddy +journalctl -u caddy -f + + +sudo caddy validate --config /etc/caddy/Caddyfile +sudo caddy fmt --overwrite /etc/caddy/Caddyfile +sudo nano /etc/caddy/Caddyfile +sudo systemctl stop caddy +sudo caddy run --config /etc/caddy/Caddyfile --adapter caddyfile + + +Server +sudo nano /etc/caddy/Caddyfile + +http://your.server.ip:8080 { + root * /var/www/my-site + file_server +} + + + +sudo chown -R caddy:caddy /var/www/xmpp.chat.local +sudo chmod -R 755 /var/www/xmpp.chat.local + + +sudo chown -R caddy:caddy /var/www/www.ts +sudo chmod -R 755 /var/www/www.ts +``` + + + + + + + + echo Markdown::code(" +tls internal + +tls /etc/caddy/certs/xmpp.chat.local.crt /etc/caddy/certs/xmpp.chat.local.key + + +cd /var/lib/caddy + +ls ~/.local/share/caddy/pki/authorities/local + +sudo chown -R caddy:caddy /var/lib/caddy +sudo chmod 700 /var/lib/caddy +/var/lib/caddy + +~/.local/share/caddy + + +sudo chown caddy:caddy /etc/ssl/certs/yourcert.pem /etc/ssl/private/yourkey.pem +sudo chmod 600 /etc/ssl/private/yourkey.pem +sudo chmod 644 /etc/ssl/certs/yourcert.pem + + +sudo chown -R navide:navide /home/navide/share/ +cp ~/.local/share/caddy/pki/authorities/local/root.crt /home/navide/share/root.crt +"); + + + + + + + + +sudo caddy adapt --config /etc/caddy/Caddyfile --pretty + +sudo cat ~/.ssh/id_ed25519.pub + + + + +```shell +nano /etc/caddy/Caddyfile + +php_fastcgi unix//run/php/php8.2-fpm.sock + + + +composer dump-autoload + +composer --version +--> + +cp -r /home/nabide/code/www.ruchimi.panama_paradise /var/www/www.ruchimi.panama_paradise/ +rm -r /var/www/www.ruchimi.panama_paradise/ + + + + +caddy fmt --overwrite /home/nabide/code + + + + + + + +cp /home/nabide/code/Caddyfile /etc/caddy/ +sudo systemctl restart caddy + +cd /var/www/ + +sudo nano /etc/hosts + +cp -r /home/nabide/code/www.ruchimi.panama_paradise /var/www/www.ruchimi.panama_paradise/ +rm -r /var/www/www.ruchimi.panama_paradise/ + + + +sudo systemctl restart caddy + +caddy fmt --overwrite /home/nabide/code + + + + + +cd /var/www/ + +sudo nano /etc/hosts + +cp -r /home/nabide/code/www.ruchimi.panama_paradise /var/www/www.ruchimi.panama_paradise/ +rm -r /var/www/www.ruchimi.panama_paradise/ + + + +sudo systemctl restart caddy + +caddy fmt --overwrite /home/nabide/code + + +sudo chown -R nabide:nabide /home/nabide/code +cp /home/nabide/code/Caddyfile /etc/caddy/ + + + +cp /etc/caddy/Caddyfile /home/nabide/code + +cp /home/nabide/code/Caddyfile /etc/caddy/ +sudo systemctl restart caddy + +cd /var/www/ + +sudo nano /etc/hosts +cp -r /home/nabide/code/www.ruchimi.panama_paradise /var/www/www.ruchimi.panama_paradise/ +rm -r /var/www/www.ruchimi.panama_paradise/ + + + +sudo systemctl restart caddy + +caddy fmt --overwrite /home/nabide/code + + +sudo chown -R nabide:nabide /home/nabide/code +cp /home/nabide/code/Caddyfile /etc/caddy/ + + + +cp /etc/caddy/Caddyfile /home/nabide/code + +cp /home/nabide/code/Caddyfile /etc/caddy/ +sudo systemctl restart caddy + +cd /var/www/ + +sudo nano /etc/hosts + + + + +cp -r /home/nabide/code/www.ruchimi.panama_paradise /var/www/www.ruchimi.panama_paradise/ +rm -r /var/www/www.ruchimi.panama_paradise/ + + + +cp /etc/hosts /home/nabide/code/hosts +cp /home/nabide/code/hosts /etc/hosts + + + +sudo systemctl restart caddy + + + + + +## Caddy + +```shell +sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https curl + +curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg + +curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | \ +sudo tee /etc/apt/sources.list.d/caddy-stable.list + +sudo apt update +sudo apt install caddy -y +``` + + + + + +```shell +mkdir -p /var/www/my-site +echo "Hello from Caddy!" > /var/www/my-site/index.html +``` + + + + + + + + +# Import the GPG key +sudo apt install -y debian-keyring debian-archive-keyring curl +curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-archive-keyring.gpg + +# Add the Caddy repo +curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | \ + sed 's/^deb /deb [signed-by=\/usr\/share\/keyrings\/caddy-archive-keyring.gpg] /' | \ + sudo tee /etc/apt/sources.list.d/caddy-stable.list + + + +sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https curl + +curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg + +curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | \ +sudo tee /etc/apt/sources.list.d/caddy-stable.list + +sudo apt update +sudo apt install caddy -y +``` + +xmpp.chat.local { + # encode gzip zstd + tls internal + root * /var/www/www.ts/src/public/xmpp + file_server + + reverse_proxy 127.0.0.1:5280 + + # WebSocket for Converse.js + reverse_proxy /ws 127.0.0.1:5280 { + transport http { + versions 1.1 + } + header_up -Origin + } + + reverse_proxy /bosh 127.0.0.1:5280 + reverse_proxy /upload 127.0.0.1:5280 +} + + + +sudo systemctl restart caddy +sudo systemctl reload caddy + + +sudo nvim /etc/hosts +sudo nvim /etc/caddy/Caddyfile diff --git a/server/nginex/README.md b/server/nginex/README.md new file mode 100644 index 0000000..e69de29 diff --git a/src/panama_paradise/Readme.md b/src/panama_paradise/Readme.md new file mode 100644 index 0000000..4faa975 --- /dev/null +++ b/src/panama_paradise/Readme.md @@ -0,0 +1,2 @@ +# Panama paradise + diff --git a/src/panama_paradise/src/private/template/header.php b/src/panama_paradise/src/private/template/header.php new file mode 100644 index 0000000..c276d23 --- /dev/null +++ b/src/panama_paradise/src/private/template/header.php @@ -0,0 +1,56 @@ + + + + + + + + <?php echo $page . " - " . $site?> + + + + + + + + + + + +
+ +
+
+ + + +
+ + + + + + + +
+ + + diff --git a/src/panama_paradise/src/public/assets/css/base.css b/src/panama_paradise/src/public/assets/css/base.css new file mode 100644 index 0000000..cc220b0 --- /dev/null +++ b/src/panama_paradise/src/public/assets/css/base.css @@ -0,0 +1,105 @@ +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +html, body { + height: 100%; + width: 100%; + font-family: "Times New Roman", Times, serif; + font-size: 12px; + position: relative; + overflow-x: hidden; + color: whitesmoke; + overflow-x: hidden; +} + +.background-wrap { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + + overflow: hidden; + z-index: -1; + pointer-events: none; +} + +.background { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + filter: blur(2px); + + + + background-image: url('../img/waterfall.webp'); + background-size: cover; + background-position: center; + background-repeat: no-repeat; + background-color: #222; + + + transform: scale(1.1); + will-change: transform; + + opacity: 0; + animation: fadeIn 1.2s ease-in-out forwards; +} + +@keyframes fadeIn { + to { opacity: 1; } +} + + +.background::after { + background-color: rgba(0, 0, 0, 0.4); + + top: 0; + left: 0; + width: 100%; + height: 100%; + + content: ""; + position: fixed; + + z-index: -1; +} + + + +.bg-cristal { + position: absolute; + inset: 0; + background-color: rgba(0, 0, 0, 0.4); + backdrop-filter: blur(3px); + -webkit-backdrop-filter: blur(3px); + z-index: 1; +} + +.bg-wrap { + position: fixed; + inset: 0; + z-index: -1; + overflow: hidden; +} + + +.bg-img { + position: absolute; + top: -5%; + left: -5%; + width: 110%; + height: 110%; + object-fit: cover; + + filter: blur(8px); + transform: scale(1.05); + + opacity: 0; + animation: fadeIn 1.2s ease-in-out forwards; +} diff --git a/src/panama_paradise/src/public/assets/css/header.css b/src/panama_paradise/src/public/assets/css/header.css new file mode 100644 index 0000000..12502fc --- /dev/null +++ b/src/panama_paradise/src/public/assets/css/header.css @@ -0,0 +1,148 @@ +header { + display: flex; + justify-content: space-between; + align-items: center; + + color: whitesmoke; + position: relative; + + background-color: #051F40; + font-weight: bolder; + padding: 0.8rem; + padding-top: 0rem; + padding-bottom: 0rem; + z-index: 1002; +} + +header .logo img { + height: 50px; +} + + +header nav { + display: none; +} + +header nav ul { + display: flex; + list-style: none; + gap: 20px; + margin-left: auto; +} + + +header nav ul a { + color: whitesmoke; + white-space: nowrap; + text-decoration: none; + font-weight: bold; + font-size: 1.2em; + padding: 18px 10px; +} + + + +header .menu-acordeon { + font-size: 3rem; + cursor: pointer; + user-select: none; +} + + + +aside { + position: fixed; + top: 0; + left: 0; + width: 100vw; + height: 100vh; + background: #051F40; + color: whitesmoke; + display: flex; + justify-content: center; + align-items: center; + transform: translateX(-100%); + transition: transform 0.3s ease; + z-index: 1001; +} + + +aside ul { + display: flex; + flex-direction: column; + list-style: none; + text-align: center; + gap: 0.5rem; + width: 100%; +} + +aside ul li { + width: 100%; +} + +aside ul li a { + padding: 0.4rem 1rem; + text-decoration: none; + + display: inline-block; + width: 100%; + + font-size: 1.7rem; + + color: inherit; +} + +aside ul li a:hover { + background-color: #036; +} + + +.cristal { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: rgba(0, 0, 0, 0.5); + opacity: 0; + pointer-events: none; + transition: opacity 0.3s ease; + z-index: 1001; +} + + +#menu-toggle:checked ~ aside { + transform: translateX(0); +} + +#menu-toggle:checked ~ .overlay { + opacity: 1; + pointer-events: auto; +} + + + +@media (min-width: 768px) { + header nav { + display: block; + } + + header nav ul a:hover { + background-color: #069; + } + + header .menu-acordeon { + display: none; + } + + header nav ul a { + font-size: 1.1em; + } + +} + +@media (min-width: 1024px) { + header nav ul a { + font-size: 1.5em; + } +} \ No newline at end of file diff --git a/src/panama_paradise/src/public/assets/css/page-home.css b/src/panama_paradise/src/public/assets/css/page-home.css new file mode 100644 index 0000000..3453742 --- /dev/null +++ b/src/panama_paradise/src/public/assets/css/page-home.css @@ -0,0 +1,305 @@ +main { + display: flex; + padding: 10px; + height: 85%; + gap: 25px; +} + +main .suscripcion { + padding: 5px; + padding-bottom: 0; + + text-align: center; + + + display: flex; + justify-content: center; + align-items: center; + flex-direction: column; + + flex-grow: 1; + flex-shrink: 1; + flex-basis: 0; + + gap: 15px; + + color: whitesmoke; + background: rgba(78, 78, 78, 0.514); + border-radius: 3px; +} + +main .suscripcion h2 { + font-size: 2.2em; +} + + +main .suscripcion p { + font-size: 1.4em; +} + +main .suscripcion-form { + display: flex; + flex-direction: column; +} + + +main .suscripcion-form input[type="email"] { + padding: 14px 18px; + font-size: 1.2em; + + border-radius: 4px; + outline: none; + transition: border-color 0.3s, box-shadow 0.3s; +} + +main .suscripcion-form input[type="email"]:focus { + border-color: #006BFF; + box-shadow: 0 0 4px rgba(0, 123, 255, 0.5); +} + + +main .suscripcion-form button { + border: none; + outline: none; + box-shadow: none; + padding: 12px 16px; + font-size: 1.4em; + font-weight: bolder; + background-color: #036; + color: whitesmoke; + border-radius: 2px; + cursor: pointer; +} + +main .suscripcion-form button:hover { + background-color: #0056b3; + transform: scale(1.01); +} + + + + + + + + + + + + + + + + + + + + +main .buscador { + padding: 10px; + + text-align: center; + + display: flex; + flex: 1; + flex-direction: column; + justify-content: center; + gap: 40%; + + color: whitesmoke; + /* background: rgba(78, 78, 78, 0.514); */ + border-radius: 3px; +} + + +main .buscador .buscador-buscar .buscador-titulo { + margin-bottom: 0.5rem; + white-space: nowrap; + font-weight: bolder; + font-size: 3.0em; +} + +main .buscador .buscador-buscar input[type="text"] { + width: 70%; + font-style: italic; + + padding: 14px 18px; + font-size: 1.2em; + + border-radius: 4px; + outline: none; + transition: border-color 0.3s, box-shadow 0.3s; + + border: none; + outline: none; + box-shadow: none; + cursor: pointer; +} + +main .buscador .buscador-buscar button { + border: none; + outline: none; + box-shadow: none; + background-color: #036; + color: whitesmoke; + border-radius: 2px; + cursor: pointer; + + font-size: 1.4em; + font-weight: bolder; + + padding: 12px 16px; +} + +main .buscador .buscador-buscar button:hover { + background-color: #069; + transform: scale(1.01); +} + + + + + + + + + + + + + + + + + + + + + + + + + +footer { + justify-content: center; + display: flex; + bottom: 2rem; + z-index: 1000; +} + +footer .contacta-un-asesor { + white-space: nowrap; + background-color: #036; + padding: 1rem 2rem; + font-size: 1.5em; + + border: none; + outline: none; + box-shadow: none; + cursor: pointer; + + flex-grow: 0; + flex-shrink: 1; + flex-basis: auto; + + + color: whitesmoke; +} + +footer .contacta-un-asesor:hover { + background-color: #096; +} + + +footer .contacta-un-asesor:hover .lucide-phone-icon { + transform: translateY(4px); + opacity: 1; +} + +.lucide-phone-icon { + opacity: 0.6; + width: 16px; + height: 16px; + color: whitesmoke; + transition: opacity 0.3s ease; + transform: translateY(2px); +} + + + +@media (orientation: landscape) { + main { + display: flex; + flex-direction: row; + } + footer { + position: fixed; + bottom: 1rem; + right: 1rem; + z-index: 1000; + } +} + +@media (orientation: portrait) { + main { + display: flex; + flex-wrap: wrap; + flex-direction: column; + } + + footer { + position: fixed; + bottom: 1rem; + right: 1rem; + z-index: 1000; + } +} + + + +@media (min-width: 768px) and (max-width: 1023px) and (orientation: portrait) { + + main { + display: flex; + flex-direction: column; + } + + main .suscripcion { + + display: flex; + justify-content: center; + align-items: center; + flex-direction: column; + + flex-grow: 1; + flex-shrink: 1; + flex-basis: auto; + + } +} + +@media (min-width: 768px) { + main .suscripcion-form { + gap: 22px; + } +} + +@media (min-width: 820px) { + main { + display: flex; + } + + main .suscripcion { + flex-grow: 1; + flex-shrink: 1; + flex-basis: 0; + gap: 22px; + } + + main .buscador { + flex-basis: auto; + } + +} + + diff --git a/src/panama_paradise/src/public/assets/css/page-planifica.css b/src/panama_paradise/src/public/assets/css/page-planifica.css new file mode 100644 index 0000000..da90721 --- /dev/null +++ b/src/panama_paradise/src/public/assets/css/page-planifica.css @@ -0,0 +1,216 @@ +main { + display: flex; + flex-direction: column; + align-items: center; + background: rgba(78, 78, 78, 0.514); + + padding-top: 20px; + padding: 30px; + gap: 30px; +} + +textarea { + width: 100%; + max-width: 100%; + min-height: 150px; + + overflow-x: hidden; + resize: vertical; + + + border: 2px solid; + transition: border-color 0.3s ease; + outline: none; + box-shadow: none; + + background-color: whitesmoke; + + padding: 10px 14px; + font-size: 1.5em; + + border-radius: 2px; + + +} + +textarea::placeholder { + font-style: italic; +} + +textarea:hover { + border-color: #069; +} + +textarea:focus { + border-color: #069; +} + + +h1 { + font-weight: bold; + font-size: 1.3em; + white-space: nowrap; +} + +h2 { + font-weight: bold; + font-size: 1.6em; + padding-bottom: 10px; + text-align: center; +} + +form { + display: flex; + flex-direction: column; + gap: 20px; +} + +.lista-de-deseos { + display: flex; + + flex-direction: column; + + gap: 10px; + +} + + +ul { + list-style: none; +} + +.selector-multiple { + max-width: 100%; + position: relative; + padding-top: 20px; + + border-radius: 6px; + + background-color: rgba(78, 78, 78, 0.514); +} + + + +.selector-multiple-label { + display: block; + font-weight: bold; + padding-bottom: 10px; + width: 100%; + font-size: 1.6em; + + text-align: center; +} + +.multi-select-option { + list-style: none; + display: flex; + flex-direction: column; + align-items: center; + + font-size: 20px; + cursor: pointer; + + white-space: nowrap; + gap: 12px; +} + +.multi-select-option li { + width: 100%; +} + + + +.multi-select-option li label { + display: flex; + justify-content: space-between; + + padding: 12px 15px; + cursor: pointer; + font-size: 1em; + gap: 20px; + + width: 100%; + align-items: center; + text-align: center; +} + +.multi-select-option li label:hover { + background-color: #069; +} + + +.multi-select-option input[type="checkbox"] { + width: 18px; + height: 18px; + accent-color: #007bff; +} + +.multi-select-option .checkbox { + flex-shrink: 0; +} + +.multi-select-option .txt { + flex: 1; + text-align: center; + transform: translateX(-5%); +} + + + +main .mostrar-sugerencias button { + width: 100%; + + border: none; + outline: none; + box-shadow: none; + padding: 12px 16px; + font-size: 1.4em; + font-weight: bolder; + background-color: #036; + color: whitesmoke; + border-radius: 2px; + cursor: pointer; + +} + +main .mostrar-sugerencias button:hover { + background-color: #069; + transform: scale(1.01); +} + + +.multi-select-option li label { + justify-content: center; + width: 100%; +} + +@media (min-width: 768px) { + h1 { + font-size: 2em; + } + + h2 { + display: block; + } + + .lista-de-deseos { + flex-direction: row; + } + + .multi-select-option li label { + justify-content: center; + } +} + +@media (min-width: 768px) and (orientation: portrait) { + .lista-de-deseos { + display: flex; + flex-direction: column; + } + + .multi-select-option li label { + justify-content: center; + width: 100%; + } +} + diff --git a/src/panama_paradise/src/public/assets/css/page-promociones.css b/src/panama_paradise/src/public/assets/css/page-promociones.css new file mode 100644 index 0000000..abdf4e8 --- /dev/null +++ b/src/panama_paradise/src/public/assets/css/page-promociones.css @@ -0,0 +1,381 @@ +main { + + display: flex; + /* height: 90vh; */ + flex-direction: column; + gap: 5px; +} + +main .section-promo { + + flex: 1; + padding: 10px; + + background: rgba(78, 78, 78, 0.514); + background: rgba(70, 70, 85, 0.6); + +} + + +main .section-promo .promo { + display: flex; + justify-content: space-between; + + + border-radius: 10px; + padding: 15px; + margin-bottom: 10px; + + + background-color: rgba(100, 138, 160, 0.95); + background-color: #051c3a52; + +} + +a { + color: whitesmoke; + text-decoration: none; +} + +h2 { + color: whitesmoke; + font-size: 2em; + display: inline; + text-align: center; +} + +.filtro { + flex: 0; + display: flex; + color: whitesmoke; + background: rgba(70, 70, 85, 0.6); + background-color: #051c3a52; +} + +.form-filtro { + display: flex; + flex-direction: column; + gap: 10px; +} + + + +.buscar-btn { + width: 100%; + border: none; + outline: none; + box-shadow: none; + padding: 12px 16px; + font-size: 1.4em; + font-weight: bolder; + background-color: #036; + color: whitesmoke; + border-radius: 2px; + cursor: pointer; +} + +.buscar-btn button:hover { + background-color: #069; + transform: scale(1.01); +} + + + +input::placeholder { + font-style: italic; + color: #888; +} + +strong { + font-size: 1.7em; +} + +.fecha-title { + font-size: 1.8em; +} + +.div-fecha { + padding-top: 4px; + padding-bottom: 4px; +} + +.labell { + margin-bottom: 10px; +} + +main .section-promo .promo .promo-contenido { + flex: 1; + display: flex; + justify-content: space-between; + flex-direction: column; + gap: 10px; +} + + + +.puntuacion { + color: gold; + font-size: 2em; +} + +.promo-img { + width: 200px; + height: 200px; + object-fit: cover; + + border-radius: 1px; + transform: translateY(10px); +} + + +.promo-contenido-txt { + font-size: 1.5em; + +} + +.promo-content-a { + display: flex +} + + + + + +/* --------------------------------------------------- */ + + + + + +a { + color: whitesmoke; + text-decoration: none; +} + +h3 { + color: whitesmoke; + font-size: 2.2em; + display: inline; +} + + +.puntuacion { + color: gold; + font-size: 2.2em; +} + +.promo-img { + width: 150px; + height: 150px; + object-fit: cover; + padding: 10px; + + border-radius: 1px; +} + + +.promo-contenido-txt { + font-size: 1.5em; + +} + +.promo-content-a { + display: flex; + flex-direction: column; + justify-content: space-between; + height: 100%; + font-size: 0.5em; +} + + +.promo-contenido-mostrar { + font-size: 1.3em; + font-style: italic; + text-align: end; +} + + +p { + text-align: justify; + font-size: 0.1em; + max-height: 85px; + overflow: hidden; + +} + +.promo-contenido-titulo { + font-size: 0.6em; +} + + +.filtro { + /* display: none; */ + color: whitesmoke; + display: flex; + flex-direction: column; +} + + + + +input[type="text"], +input[type="number"], +input[type="date"] { + width: 100%; + padding: 10px 14px; + font-size: 1em; + border: 1px solid #ccc; + border-radius: 8px; + background: whitesmoke; + transition: border-color 0.3s, box-shadow 0.3s; +} + +input[type="date"] { + padding: 10px 14px; + border: 1px solid #ccc; + border-radius: 4px; + background-color: whitesmoke; + font-size: 12px; + box-shadow: 0.2px 4px rgba(78, 78, 78, 0.5); + transition: border-color 0.3s, box-shadow 0.3s; + width: 100%; + max-width: 100px; +} + +input[type="date"]focus { + border-color: #069; + outline: none; + background-color: rgba(78, 78, 78, 0.8); +} + + + + + + + + + +ul { + list-style: none; +} + +.selector-multiple { + max-width: 100%; + position: relative; + padding-top: 20px; + + border-radius: 6px; + + background-color: rgba(78, 78, 78, 0.514); +} + + + +.selector-multiple-label { + display: block; + font-weight: bold; + padding-bottom: 10px; + width: 100%; + font-size: 1.3em; + + text-align: center; +} + +.multi-select-option { + list-style: none; + display: flex; + flex-direction: column; + align-items: center; + + + font-size: 20px; + cursor: pointer; + + white-space: nowrap; + gap: 12px; +} + +.multi-select-option li { + width: 100%; +} + + + +.multi-select-option li label { + display: flex; + justify-content: space-between; + + padding: 12px 15px; + cursor: pointer; + font-size: 1em; + gap: 20px; + + width: 100%; + align-items: center; + text-align: center; +} + +.multi-select-option li label:hover { + background-color: #069; +} + + + +.filtro-titulo { + padding-top: 10px; +} + + +.multi-select-option input[type="checkbox"] { + width: 18px; + height: 18px; + accent-color: #007bff; +} + +.multi-select-option .checkbox { + flex-shrink: 0; +} + +.multi-select-option .txt { + flex: 1; + text-align: center; + transform: translateX(-5%); +} + + + +@media (min-width: 768px) { + main { + /* overflow: hidden; */ + flex-direction: row; + padding: 10px; + } + + + .promo-contenido-txt { + font-size: 3em; + } + + .promo-contenido-mostrar { + font-size: 1.7em; + } + + h3 { + color: whitesmoke; + font-size: 2.7em; + display: inline; + } + + + .filtro { + /* overflow-y: auto; */ + padding: 10px; + } + + .puntuacion { + color: gold; + font-size: 2.6em; + } +} + diff --git a/src/panama_paradise/src/public/assets/img/panama-logo.png b/src/panama_paradise/src/public/assets/img/panama-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..d2a1ff6c52fffae7aa8d1460187c9966fc7edf36 GIT binary patch literal 23019 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 IQ?ZHs4~&xPxc~qF literal 0 HcmV?d00001 diff --git a/src/panama_paradise/src/public/assets/img/panama-logo.webp b/src/panama_paradise/src/public/assets/img/panama-logo.webp new file mode 100644 index 0000000000000000000000000000000000000000..11b53ef60b551d543ff695e526068a3088b873af GIT binary patch literal 6358 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 Y#Q9!*7!we6l$1<%fyTH1000000F3x6QUCw| literal 0 HcmV?d00001 diff --git a/src/panama_paradise/src/public/assets/img/promo/img.md b/src/panama_paradise/src/public/assets/img/promo/img.md new file mode 100644 index 0000000..e69de29 diff --git a/src/panama_paradise/src/public/error/404.php b/src/panama_paradise/src/public/error/404.php new file mode 100644 index 0000000..57db2e9 --- /dev/null +++ b/src/panama_paradise/src/public/error/404.php @@ -0,0 +1 @@ +404 \ No newline at end of file diff --git a/src/panama_paradise/src/public/index.php b/src/panama_paradise/src/public/index.php new file mode 100644 index 0000000..3f897e3 --- /dev/null +++ b/src/panama_paradise/src/public/index.php @@ -0,0 +1,51 @@ + + + + + + +
+
+
+

"Panamá es tu casa"

+
+ +
+

Suscríbete y recibe las últimas notificaciones directamente en tu correo: eventos especiales, temporadas de viaje, promociones exclusivas y mucho más. ¡Viaja con comodidad y descubre todo lo que Panamá tiene para ti!.

+
+ +
+ + +
+
+ + +
+
+
Todos los destinos
+ +
+ + +
+
+
+ + +
+ +
+ +
+ + + + diff --git a/src/panama_paradise/src/public/planifica.php b/src/panama_paradise/src/public/planifica.php new file mode 100644 index 0000000..578b664 --- /dev/null +++ b/src/panama_paradise/src/public/planifica.php @@ -0,0 +1,78 @@ + + + + + +
+

Planea las vacaciones de tus sueños

+ +
+
+

¿Que estas buscando?

+
+
+ +
+ + +
+

Lista de deseos

+
+ +
+
+ +
    +
  • +
  • +
  • +
  • +
  • +
  • +
+
+ +
+ +
    +
  • + +
  • +
+
+ +
+ +
    +
  • +
  • +
  • +
  • +
  • +
+
+ +
+ +
    +
  • +
  • +
  • +
  • +
+
+ + +
+ +
+ + +
+ + diff --git a/src/panama_paradise/src/public/promociones.php b/src/panama_paradise/src/public/promociones.php new file mode 100644 index 0000000..12728d4 --- /dev/null +++ b/src/panama_paradise/src/public/promociones.php @@ -0,0 +1,106 @@ + + + + +
+
+

Filtros de busqueda

+ +
+
+ +
+
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ + +
+ +
+
    +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
+
+
+ + + + +
+
+ + + +
+ + + + + + preview + + +"; +}?> + +
+
+ + + diff --git a/tool/package/nodejs.md b/tool/package/nodejs.md new file mode 100644 index 0000000..ebd2b7e --- /dev/null +++ b/tool/package/nodejs.md @@ -0,0 +1,17 @@ + + + +npm init -y + + +npm -v + +sudo npm install -g npm@latest + + +sudo npm install -g npm@latest + + + +curl -fsSL https://deb.nodesource.com/setup_22.x | sudo bash - +sudo apt-get install -y nodejs diff --git a/tool/responsively.md b/tool/responsively.md new file mode 100644 index 0000000..ceb6fce --- /dev/null +++ b/tool/responsively.md @@ -0,0 +1,35 @@ +# Responsively + + +## Install + +[Responsively](https://responsively.app/) + +```sh +wget https://github.com/responsively-org/responsively-app-releases/releases/download/v1.16.0/ResponsivelyApp-1.16.0.AppImage + +chmod +x ResponsivelyApp-1.16.0.AppImage +mv ResponsivelyApp-1.16.0.AppImage ResponsivelyApp.AppImage +mkdir -p ~/.local/bin/ +mv ResponsivelyApp.AppImage ~/.local/bin/ +``` + +## Config + +```sh +nano ~/.local/share/applications/responsively.desktop + + +[Desktop Entry] +Name=Responsively App +Exec=/home/your-username/.local/bin/ResponsivelyApp.AppImage +Icon=web +Type=Application +Categories=Development; +``` + +## Execute +``` +~/.local/bin/ResponsivelyApp.AppImage +``` + diff --git a/tool/selenium/README.md b/tool/selenium/README.md new file mode 100644 index 0000000..bfac232 --- /dev/null +++ b/tool/selenium/README.md @@ -0,0 +1,20 @@ +# Selenium + + +## Install + +```sh +pip install selenium +pip3 install selenium +``` + + +https://www.selenium.dev/ + +https://sites.google.com/chromium.org/driver/ + +the Chrome for Testing availability dashboard. + +https://googlechromelabs.github.io/chrome-for-testing/#stable + +chromedriver diff --git a/tool/vite/.gitignore b/tool/vite/.gitignore new file mode 100644 index 0000000..a547bf3 --- /dev/null +++ b/tool/vite/.gitignore @@ -0,0 +1,24 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/tool/vite/assets/css/style.css b/tool/vite/assets/css/style.css new file mode 100644 index 0000000..196a6e9 --- /dev/null +++ b/tool/vite/assets/css/style.css @@ -0,0 +1,3 @@ +* { + background-color: brown; +} \ No newline at end of file diff --git a/tool/vite/assets/js/client.js b/tool/vite/assets/js/client.js new file mode 100644 index 0000000..e69de29 diff --git a/tool/vite/assets/js/main.js b/tool/vite/assets/js/main.js new file mode 100644 index 0000000..9fa9f7a --- /dev/null +++ b/tool/vite/assets/js/main.js @@ -0,0 +1,4 @@ +import '../css/style.css' + + +console.log("VIte php"); \ No newline at end of file diff --git a/tool/vite/assets/js/xmpp.js b/tool/vite/assets/js/xmpp.js new file mode 100644 index 0000000..acec543 --- /dev/null +++ b/tool/vite/assets/js/xmpp.js @@ -0,0 +1,31 @@ +// import { Strophe } from "strophe.js"; + +// const connection = new Strophe.Connection("wss://xmpp.chat.local/xmpp-websocket"); + +// connection.connect("user@xmpp.chat.local", "password", function (status) { +// console.log("Status:", status); +// }); + +// +// + + +// import '/node_modules/converse.js/dist/converse.min.css'; +// import converse from '/node_modules/converse.js/dist/converse.min.js'; +// // import '/node_modules/converse.js/dist/converse-omemo.min.js'; + +// import './plugins/omemo'; + +// +// +// + + +// converse.initialize({ +// bosh_service_url: 'https://xmpp.chat.local/http-bind', +// authentication: 'login', +// auto_login: false, +// allow_omemo: true, +// whitelisted_plugins: ['converse-omemo'], +// view_mode: 'fullscreen' +// }); \ No newline at end of file diff --git a/tool/vite/index.html b/tool/vite/index.html new file mode 100644 index 0000000..72ba3a8 --- /dev/null +++ b/tool/vite/index.html @@ -0,0 +1,13 @@ + + + + + + + Vite App + + +
+ + + diff --git a/tool/vite/package-lock.json b/tool/vite/package-lock.json new file mode 100644 index 0000000..9ded576 --- /dev/null +++ b/tool/vite/package-lock.json @@ -0,0 +1,971 @@ +{ + "name": "vite", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "vite", + "version": "0.0.0", + "devDependencies": { + "vite": "^7.1.2" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.9.tgz", + "integrity": "sha512-OaGtL73Jck6pBKjNIe24BnFE6agGl+6KxDtTfHhy1HmhthfKouEcOhqpSL64K4/0WCtbKFLOdzD/44cJ4k9opA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.9.tgz", + "integrity": "sha512-5WNI1DaMtxQ7t7B6xa572XMXpHAaI/9Hnhk8lcxF4zVN4xstUgTlvuGDorBguKEnZO70qwEcLpfifMLoxiPqHQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.9.tgz", + "integrity": "sha512-IDrddSmpSv51ftWslJMvl3Q2ZT98fUSL2/rlUXuVqRXHCs5EUF1/f+jbjF5+NG9UffUDMCiTyh8iec7u8RlTLg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.9.tgz", + "integrity": "sha512-I853iMZ1hWZdNllhVZKm34f4wErd4lMyeV7BLzEExGEIZYsOzqDWDf+y082izYUE8gtJnYHdeDpN/6tUdwvfiw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.9.tgz", + "integrity": "sha512-XIpIDMAjOELi/9PB30vEbVMs3GV1v2zkkPnuyRRURbhqjyzIINwj+nbQATh4H9GxUgH1kFsEyQMxwiLFKUS6Rg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.9.tgz", + "integrity": "sha512-jhHfBzjYTA1IQu8VyrjCX4ApJDnH+ez+IYVEoJHeqJm9VhG9Dh2BYaJritkYK3vMaXrf7Ogr/0MQ8/MeIefsPQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.9.tgz", + "integrity": "sha512-z93DmbnY6fX9+KdD4Ue/H6sYs+bhFQJNCPZsi4XWJoYblUqT06MQUdBCpcSfuiN72AbqeBFu5LVQTjfXDE2A6Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.9.tgz", + "integrity": "sha512-mrKX6H/vOyo5v71YfXWJxLVxgy1kyt1MQaD8wZJgJfG4gq4DpQGpgTB74e5yBeQdyMTbgxp0YtNj7NuHN0PoZg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.9.tgz", + "integrity": "sha512-HBU2Xv78SMgaydBmdor38lg8YDnFKSARg1Q6AT0/y2ezUAKiZvc211RDFHlEZRFNRVhcMamiToo7bDx3VEOYQw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.9.tgz", + "integrity": "sha512-BlB7bIcLT3G26urh5Dmse7fiLmLXnRlopw4s8DalgZ8ef79Jj4aUcYbk90g8iCa2467HX8SAIidbL7gsqXHdRw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.9.tgz", + "integrity": "sha512-e7S3MOJPZGp2QW6AK6+Ly81rC7oOSerQ+P8L0ta4FhVi+/j/v2yZzx5CqqDaWjtPFfYz21Vi1S0auHrap3Ma3A==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.9.tgz", + "integrity": "sha512-Sbe10Bnn0oUAB2AalYztvGcK+o6YFFA/9829PhOCUS9vkJElXGdphz0A3DbMdP8gmKkqPmPcMJmJOrI3VYB1JQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.9.tgz", + "integrity": "sha512-YcM5br0mVyZw2jcQeLIkhWtKPeVfAerES5PvOzaDxVtIyZ2NUBZKNLjC5z3/fUlDgT6w89VsxP2qzNipOaaDyA==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.9.tgz", + "integrity": "sha512-++0HQvasdo20JytyDpFvQtNrEsAgNG2CY1CLMwGXfFTKGBGQT3bOeLSYE2l1fYdvML5KUuwn9Z8L1EWe2tzs1w==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.9.tgz", + "integrity": "sha512-uNIBa279Y3fkjV+2cUjx36xkx7eSjb8IvnL01eXUKXez/CBHNRw5ekCGMPM0BcmqBxBcdgUWuUXmVWwm4CH9kg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.9.tgz", + "integrity": "sha512-Mfiphvp3MjC/lctb+7D287Xw1DGzqJPb/J2aHHcHxflUo+8tmN/6d4k6I2yFR7BVo5/g7x2Monq4+Yew0EHRIA==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.9.tgz", + "integrity": "sha512-iSwByxzRe48YVkmpbgoxVzn76BXjlYFXC7NvLYq+b+kDjyyk30J0JY47DIn8z1MO3K0oSl9fZoRmZPQI4Hklzg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.9.tgz", + "integrity": "sha512-9jNJl6FqaUG+COdQMjSCGW4QiMHH88xWbvZ+kRVblZsWrkXlABuGdFJ1E9L7HK+T0Yqd4akKNa/lO0+jDxQD4Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.9.tgz", + "integrity": "sha512-RLLdkflmqRG8KanPGOU7Rpg829ZHu8nFy5Pqdi9U01VYtG9Y0zOG6Vr2z4/S+/3zIyOxiK6cCeYNWOFR9QP87g==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.9.tgz", + "integrity": "sha512-YaFBlPGeDasft5IIM+CQAhJAqS3St3nJzDEgsgFixcfZeyGPCd6eJBWzke5piZuZ7CtL656eOSYKk4Ls2C0FRQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.9.tgz", + "integrity": "sha512-1MkgTCuvMGWuqVtAvkpkXFmtL8XhWy+j4jaSO2wxfJtilVCi0ZE37b8uOdMItIHz4I6z1bWWtEX4CJwcKYLcuA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openharmony-arm64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.9.tgz", + "integrity": "sha512-4Xd0xNiMVXKh6Fa7HEJQbrpP3m3DDn43jKxMjxLLRjWnRsfxjORYJlXPO4JNcXtOyfajXorRKY9NkOpTHptErg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.9.tgz", + "integrity": "sha512-WjH4s6hzo00nNezhp3wFIAfmGZ8U7KtrJNlFMRKxiI9mxEK1scOMAaa9i4crUtu+tBr+0IN6JCuAcSBJZfnphw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.9.tgz", + "integrity": "sha512-mGFrVJHmZiRqmP8xFOc6b84/7xa5y5YvR1x8djzXpJBSv/UsNK6aqec+6JDjConTgvvQefdGhFDAs2DLAds6gQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.9.tgz", + "integrity": "sha512-b33gLVU2k11nVx1OhX3C8QQP6UHQK4ZtN56oFWvVXvz2VkDoe6fbG8TOgHFxEvqeqohmRnIHe5A1+HADk4OQww==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.9.tgz", + "integrity": "sha512-PPOl1mi6lpLNQxnGoyAfschAodRFYXJ+9fs6WHXz7CSWKbOqiMZsubC+BQsVKuul+3vKLuwTHsS2c2y9EoKwxQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.46.2.tgz", + "integrity": "sha512-Zj3Hl6sN34xJtMv7Anwb5Gu01yujyE/cLBDB2gnHTAHaWS1Z38L7kuSG+oAh0giZMqG060f/YBStXtMH6FvPMA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.46.2.tgz", + "integrity": "sha512-nTeCWY83kN64oQ5MGz3CgtPx8NSOhC5lWtsjTs+8JAJNLcP3QbLCtDDgUKQc/Ro/frpMq4SHUaHN6AMltcEoLQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.46.2.tgz", + "integrity": "sha512-HV7bW2Fb/F5KPdM/9bApunQh68YVDU8sO8BvcW9OngQVN3HHHkw99wFupuUJfGR9pYLLAjcAOA6iO+evsbBaPQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.46.2.tgz", + "integrity": "sha512-SSj8TlYV5nJixSsm/y3QXfhspSiLYP11zpfwp6G/YDXctf3Xkdnk4woJIF5VQe0of2OjzTt8EsxnJDCdHd2xMA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.46.2.tgz", + "integrity": "sha512-ZyrsG4TIT9xnOlLsSSi9w/X29tCbK1yegE49RYm3tu3wF1L/B6LVMqnEWyDB26d9Ecx9zrmXCiPmIabVuLmNSg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.46.2.tgz", + "integrity": "sha512-pCgHFoOECwVCJ5GFq8+gR8SBKnMO+xe5UEqbemxBpCKYQddRQMgomv1104RnLSg7nNvgKy05sLsY51+OVRyiVw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.46.2.tgz", + "integrity": "sha512-EtP8aquZ0xQg0ETFcxUbU71MZlHaw9MChwrQzatiE8U/bvi5uv/oChExXC4mWhjiqK7azGJBqU0tt5H123SzVA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.46.2.tgz", + "integrity": "sha512-qO7F7U3u1nfxYRPM8HqFtLd+raev2K137dsV08q/LRKRLEc7RsiDWihUnrINdsWQxPR9jqZ8DIIZ1zJJAm5PjQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.46.2.tgz", + "integrity": "sha512-3dRaqLfcOXYsfvw5xMrxAk9Lb1f395gkoBYzSFcc/scgRFptRXL9DOaDpMiehf9CO8ZDRJW2z45b6fpU5nwjng==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.46.2.tgz", + "integrity": "sha512-fhHFTutA7SM+IrR6lIfiHskxmpmPTJUXpWIsBXpeEwNgZzZZSg/q4i6FU4J8qOGyJ0TR+wXBwx/L7Ho9z0+uDg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loongarch64-gnu": { + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.46.2.tgz", + "integrity": "sha512-i7wfGFXu8x4+FRqPymzjD+Hyav8l95UIZ773j7J7zRYc3Xsxy2wIn4x+llpunexXe6laaO72iEjeeGyUFmjKeA==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.46.2.tgz", + "integrity": "sha512-B/l0dFcHVUnqcGZWKcWBSV2PF01YUt0Rvlurci5P+neqY/yMKchGU8ullZvIv5e8Y1C6wOn+U03mrDylP5q9Yw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.46.2.tgz", + "integrity": "sha512-32k4ENb5ygtkMwPMucAb8MtV8olkPT03oiTxJbgkJa7lJ7dZMr0GCFJlyvy+K8iq7F/iuOr41ZdUHaOiqyR3iQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.46.2.tgz", + "integrity": "sha512-t5B2loThlFEauloaQkZg9gxV05BYeITLvLkWOkRXogP4qHXLkWSbSHKM9S6H1schf/0YGP/qNKtiISlxvfmmZw==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.46.2.tgz", + "integrity": "sha512-YKjekwTEKgbB7n17gmODSmJVUIvj8CX7q5442/CK80L8nqOUbMtf8b01QkG3jOqyr1rotrAnW6B/qiHwfcuWQA==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.46.2.tgz", + "integrity": "sha512-Jj5a9RUoe5ra+MEyERkDKLwTXVu6s3aACP51nkfnK9wJTraCC8IMe3snOfALkrjTYd2G1ViE1hICj0fZ7ALBPA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.46.2.tgz", + "integrity": "sha512-7kX69DIrBeD7yNp4A5b81izs8BqoZkCIaxQaOpumcJ1S/kmqNFjPhDu1LHeVXv0SexfHQv5cqHsxLOjETuqDuA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.46.2.tgz", + "integrity": "sha512-wiJWMIpeaak/jsbaq2HMh/rzZxHVW1rU6coyeNNpMwk5isiPjSTx0a4YLSlYDwBH/WBvLz+EtsNqQScZTLJy3g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.46.2.tgz", + "integrity": "sha512-gBgaUDESVzMgWZhcyjfs9QFK16D8K6QZpwAaVNJxYDLHWayOta4ZMjGm/vsAEy3hvlS2GosVFlBlP9/Wb85DqQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.46.2.tgz", + "integrity": "sha512-CvUo2ixeIQGtF6WvuB87XWqPQkoFAFqW+HUo/WzHwuHDvIwZCtjdWXoYCcr06iKGydiqTclC4jU/TNObC/xKZg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "dev": true + }, + "node_modules/esbuild": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.9.tgz", + "integrity": "sha512-CRbODhYyQx3qp7ZEwzxOk4JBqmD/seJrzPa/cGjY1VtIn5E09Oi9/dB4JwctnfZ8Q8iT7rioVv5k/FNT/uf54g==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.25.9", + "@esbuild/android-arm": "0.25.9", + "@esbuild/android-arm64": "0.25.9", + "@esbuild/android-x64": "0.25.9", + "@esbuild/darwin-arm64": "0.25.9", + "@esbuild/darwin-x64": "0.25.9", + "@esbuild/freebsd-arm64": "0.25.9", + "@esbuild/freebsd-x64": "0.25.9", + "@esbuild/linux-arm": "0.25.9", + "@esbuild/linux-arm64": "0.25.9", + "@esbuild/linux-ia32": "0.25.9", + "@esbuild/linux-loong64": "0.25.9", + "@esbuild/linux-mips64el": "0.25.9", + "@esbuild/linux-ppc64": "0.25.9", + "@esbuild/linux-riscv64": "0.25.9", + "@esbuild/linux-s390x": "0.25.9", + "@esbuild/linux-x64": "0.25.9", + "@esbuild/netbsd-arm64": "0.25.9", + "@esbuild/netbsd-x64": "0.25.9", + "@esbuild/openbsd-arm64": "0.25.9", + "@esbuild/openbsd-x64": "0.25.9", + "@esbuild/openharmony-arm64": "0.25.9", + "@esbuild/sunos-x64": "0.25.9", + "@esbuild/win32-arm64": "0.25.9", + "@esbuild/win32-ia32": "0.25.9", + "@esbuild/win32-x64": "0.25.9" + } + }, + "node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true + }, + "node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/postcss": { + "version": "8.5.6", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", + "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/rollup": { + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.46.2.tgz", + "integrity": "sha512-WMmLFI+Boh6xbop+OAGo9cQ3OgX9MIg7xOQjn+pTCwOkk+FNDAeAemXkJ3HzDJrVXleLOFVa1ipuc1AmEx1Dwg==", + "dev": true, + "dependencies": { + "@types/estree": "1.0.8" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.46.2", + "@rollup/rollup-android-arm64": "4.46.2", + "@rollup/rollup-darwin-arm64": "4.46.2", + "@rollup/rollup-darwin-x64": "4.46.2", + "@rollup/rollup-freebsd-arm64": "4.46.2", + "@rollup/rollup-freebsd-x64": "4.46.2", + "@rollup/rollup-linux-arm-gnueabihf": "4.46.2", + "@rollup/rollup-linux-arm-musleabihf": "4.46.2", + "@rollup/rollup-linux-arm64-gnu": "4.46.2", + "@rollup/rollup-linux-arm64-musl": "4.46.2", + "@rollup/rollup-linux-loongarch64-gnu": "4.46.2", + "@rollup/rollup-linux-ppc64-gnu": "4.46.2", + "@rollup/rollup-linux-riscv64-gnu": "4.46.2", + "@rollup/rollup-linux-riscv64-musl": "4.46.2", + "@rollup/rollup-linux-s390x-gnu": "4.46.2", + "@rollup/rollup-linux-x64-gnu": "4.46.2", + "@rollup/rollup-linux-x64-musl": "4.46.2", + "@rollup/rollup-win32-arm64-msvc": "4.46.2", + "@rollup/rollup-win32-ia32-msvc": "4.46.2", + "@rollup/rollup-win32-x64-msvc": "4.46.2", + "fsevents": "~2.3.2" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/tinyglobby": { + "version": "0.2.14", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.14.tgz", + "integrity": "sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==", + "dev": true, + "dependencies": { + "fdir": "^6.4.4", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/vite": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.1.2.tgz", + "integrity": "sha512-J0SQBPlQiEXAF7tajiH+rUooJPo0l8KQgyg4/aMunNtrOa7bwuZJsJbDWzeljqQpgftxuq5yNJxQ91O9ts29UQ==", + "dev": true, + "dependencies": { + "esbuild": "^0.25.0", + "fdir": "^6.4.6", + "picomatch": "^4.0.3", + "postcss": "^8.5.6", + "rollup": "^4.43.0", + "tinyglobby": "^0.2.14" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^20.19.0 || >=22.12.0", + "jiti": ">=1.21.0", + "less": "^4.0.0", + "lightningcss": "^1.21.0", + "sass": "^1.70.0", + "sass-embedded": "^1.70.0", + "stylus": ">=0.54.8", + "sugarss": "^5.0.0", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + } + } +} diff --git a/tool/vite/package.json b/tool/vite/package.json new file mode 100644 index 0000000..efc105c --- /dev/null +++ b/tool/vite/package.json @@ -0,0 +1,14 @@ +{ + "name": "vite", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build", + "preview": "vite preview" + }, + "devDependencies": { + "vite": "^7.1.2" + } +} diff --git a/tool/vite/public/vite.svg b/tool/vite/public/vite.svg new file mode 100644 index 0000000..e7b8dfb --- /dev/null +++ b/tool/vite/public/vite.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/tool/vite/src/counter.js b/tool/vite/src/counter.js new file mode 100644 index 0000000..881e2d7 --- /dev/null +++ b/tool/vite/src/counter.js @@ -0,0 +1,9 @@ +export function setupCounter(element) { + let counter = 0 + const setCounter = (count) => { + counter = count + element.innerHTML = `count is ${counter}` + } + element.addEventListener('click', () => setCounter(counter + 1)) + setCounter(0) +} diff --git a/tool/vite/src/javascript.svg b/tool/vite/src/javascript.svg new file mode 100644 index 0000000..f9abb2b --- /dev/null +++ b/tool/vite/src/javascript.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/tool/vite/src/main.js b/tool/vite/src/main.js new file mode 100644 index 0000000..5fc3358 --- /dev/null +++ b/tool/vite/src/main.js @@ -0,0 +1,24 @@ +import './style.css' +import javascriptLogo from './javascript.svg' +import viteLogo from '/vite.svg' +import { setupCounter } from './counter.js' + +document.querySelector('#app').innerHTML = ` +
+ + + + + + +

Hello Vite!

+
+ +
+

+ Click on the Vite logo to learn more +

+
+` + +setupCounter(document.querySelector('#counter')) diff --git a/tool/vite/src/style.css b/tool/vite/src/style.css new file mode 100644 index 0000000..8df73e3 --- /dev/null +++ b/tool/vite/src/style.css @@ -0,0 +1,96 @@ +:root { + font-family: system-ui, Avenir, Helvetica, Arial, sans-serif; + line-height: 1.5; + font-weight: 400; + + color-scheme: light dark; + color: rgba(255, 255, 255, 0.87); + background-color: #242424; + + font-synthesis: none; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +a { + font-weight: 500; + color: #646cff; + text-decoration: inherit; +} +a:hover { + color: #535bf2; +} + +body { + margin: 0; + display: flex; + place-items: center; + min-width: 320px; + min-height: 100vh; +} + +h1 { + font-size: 3.2em; + line-height: 1.1; +} + +#app { + max-width: 1280px; + margin: 0 auto; + padding: 2rem; + text-align: center; +} + +.logo { + height: 6em; + padding: 1.5em; + will-change: filter; + transition: filter 300ms; +} +.logo:hover { + filter: drop-shadow(0 0 2em #646cffaa); +} +.logo.vanilla:hover { + filter: drop-shadow(0 0 2em #f7df1eaa); +} + +.card { + padding: 2em; +} + +.read-the-docs { + color: #888; +} + +button { + border-radius: 8px; + border: 1px solid transparent; + padding: 0.6em 1.2em; + font-size: 1em; + font-weight: 500; + font-family: inherit; + background-color: #1a1a1a; + cursor: pointer; + transition: border-color 0.25s; +} +button:hover { + border-color: #646cff; +} +button:focus, +button:focus-visible { + outline: 4px auto -webkit-focus-ring-color; +} + +@media (prefers-color-scheme: light) { + :root { + color: #213547; + background-color: #ffffff; + } + a:hover { + color: #747bff; + } + button { + background-color: #f9f9f9; + } +} diff --git a/tool/vite/vite.config.js b/tool/vite/vite.config.js new file mode 100644 index 0000000..052fb78 --- /dev/null +++ b/tool/vite/vite.config.js @@ -0,0 +1,15 @@ +import { defineConfig } from 'vite'; +import path from 'path'; + +export default defineConfig({ + build: { + manifest: true, + outDir: './dist', + rollupOptions: { + input: { + 'main.js': path.resolve(__dirname, './assets/js/main.js'), + } + } + } +}); + diff --git a/tool/web_platform.md b/tool/web_platform.md new file mode 100644 index 0000000..e99b535 --- /dev/null +++ b/tool/web_platform.md @@ -0,0 +1,9 @@ +regex101 + +wappalyze.com + +https://builtwith.com/es/ + +whois.domaintools.com + +ipinfo