diff --git a/package.json b/package.json index 8cfef66..6542087 100644 --- a/package.json +++ b/package.json @@ -11,8 +11,9 @@ }, "dependencies": { "@astrojs/check": "^0.9.4", - "@astrojs/tailwind": "^5.1.2", - "astro": "^4.16.6", + "@astrojs/tailwind": "^5.1.4", + "astro": "^5.1.2", + "dayjs": "^1.11.13", "tailwindcss": "^3.4.13", "typescript": "^5.6.2" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f5ac80d..624de14 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -12,11 +12,14 @@ importers: specifier: ^0.9.4 version: 0.9.4(typescript@5.6.2) '@astrojs/tailwind': - specifier: ^5.1.2 - version: 5.1.2(astro@4.16.6(rollup@4.24.0)(typescript@5.6.2))(tailwindcss@3.4.13) + specifier: ^5.1.4 + version: 5.1.4(astro@5.1.2(jiti@1.21.6)(rollup@4.24.0)(typescript@5.6.2)(yaml@2.5.1))(tailwindcss@3.4.13) astro: - specifier: ^4.16.6 - version: 4.16.6(rollup@4.24.0)(typescript@5.6.2) + specifier: ^5.1.2 + version: 5.1.2(jiti@1.21.6)(rollup@4.24.0)(typescript@5.6.2)(yaml@2.5.1) + dayjs: + specifier: ^1.11.13 + version: 1.11.13 tailwindcss: specifier: ^3.4.13 version: 3.4.13 @@ -30,10 +33,6 @@ packages: resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} engines: {node: '>=10'} - '@ampproject/remapping@2.3.0': - resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} - engines: {node: '>=6.0.0'} - '@astrojs/check@0.9.4': resolution: {integrity: sha512-IOheHwCtpUfvogHHsvu0AbeRZEnjJg3MopdLddkJE70mULItS/Vh37BHcI00mcOJcH1vhD3odbpvWokpxam7xA==} hasBin: true @@ -43,8 +42,8 @@ packages: '@astrojs/compiler@2.10.3': resolution: {integrity: sha512-bL/O7YBxsFt55YHU021oL+xz+B/9HvGNId3F9xURN16aeqDK9juHGktdkCSXz+U4nqFACq6ZFvWomOzhV+zfPw==} - '@astrojs/internal-helpers@0.4.1': - resolution: {integrity: sha512-bMf9jFihO8YP940uD70SI/RDzIhUHJAolWVcO1v5PUivxGKvfLZTLTVVxEYzGYyPsA3ivdLNqMnL5VgmQySa+g==} + '@astrojs/internal-helpers@0.4.2': + resolution: {integrity: sha512-EdDWkC3JJVcpGpqJAU/5hSk2LKXyG3mNGkzGoAuyK+xoPHbaVdSuIWoN1QTnmK3N/gGfaaAfM8gO2KDCAW7S3w==} '@astrojs/language-server@2.15.0': resolution: {integrity: sha512-wJHSjGApm5X8Rg1GvkevoatZBfvaFizY4kCPvuSYgs3jGCobuY3KstJGKC1yNLsRJlDweHruP+J54iKn9vEKoA==} @@ -58,68 +57,26 @@ packages: prettier-plugin-astro: optional: true - '@astrojs/markdown-remark@5.3.0': - resolution: {integrity: sha512-r0Ikqr0e6ozPb5bvhup1qdWnSPUvQu6tub4ZLYaKyG50BXZ0ej6FhGz3GpChKpH7kglRFPObJd/bDyf2VM9pkg==} + '@astrojs/markdown-remark@6.0.1': + resolution: {integrity: sha512-CTSYijj25NfxgZi15TU3CwPwgyD1/7yA3FcdcNmB9p94nydupiUbrIiq3IqeTp2m5kCVzxbPZeC7fTwEOaNyGw==} - '@astrojs/prism@3.1.0': - resolution: {integrity: sha512-Z9IYjuXSArkAUx3N6xj6+Bnvx8OdUSHA8YoOgyepp3+zJmtVYJIl/I18GozdJVW1p5u/CNpl3Km7/gwTJK85cw==} - engines: {node: ^18.17.1 || ^20.3.0 || >=21.0.0} + '@astrojs/prism@3.2.0': + resolution: {integrity: sha512-GilTHKGCW6HMq7y3BUv9Ac7GMe/MO9gi9GW62GzKtth0SwukCu/qp2wLiGpEujhY+VVhaG9v7kv/5vFzvf4NYw==} + engines: {node: ^18.17.1 || ^20.3.0 || >=22.0.0} - '@astrojs/tailwind@5.1.2': - resolution: {integrity: sha512-IvOF0W/dtHElcXvhrPR35nHmhyV3cfz1EzPitMGtU7sYy9Hci3BNK1To6FWmVuuNKPxza1IgCGetSynJZL7fOg==} + '@astrojs/tailwind@5.1.4': + resolution: {integrity: sha512-EJ3uoTZZr0RYwTrVS2HgYN0+VbXvg7h87AtwpD5OzqS3GyMwRmzfOwHfORTxoWGQRrY9k/Fi+Awk60kwpvRL5Q==} peerDependencies: - astro: ^3.0.0 || ^4.0.0 || ^5.0.0-beta.0 + astro: ^3.0.0 || ^4.0.0 || ^5.0.0 tailwindcss: ^3.0.24 - '@astrojs/telemetry@3.1.0': - resolution: {integrity: sha512-/ca/+D8MIKEC8/A9cSaPUqQNZm+Es/ZinRv0ZAzvu2ios7POQSsVD+VOj7/hypWNsNM3T7RpfgNq7H2TU1KEHA==} - engines: {node: ^18.17.1 || ^20.3.0 || >=21.0.0} + '@astrojs/telemetry@3.2.0': + resolution: {integrity: sha512-wxhSKRfKugLwLlr4OFfcqovk+LIFtKwLyGPqMsv+9/ibqqnW3Gv7tBhtKEb0gAyUAC4G9BTVQeQahqnQAhd6IQ==} + engines: {node: ^18.17.1 || ^20.3.0 || >=22.0.0} '@astrojs/yaml2ts@0.2.1': resolution: {integrity: sha512-CBaNwDQJz20E5WxzQh4thLVfhB3JEEGz72wRA+oJp6fQR37QLAqXZJU0mHC+yqMOQ6oj0GfRPJrz6hjf+zm6zA==} - '@babel/code-frame@7.25.7': - resolution: {integrity: sha512-0xZJFNE5XMpENsgfHYTw8FbX4kv53mFLn2i3XPoq69LyhYSCBJtitaHx9QnsVTrsogI4Z3+HtEfZ2/GFPOtf5g==} - engines: {node: '>=6.9.0'} - - '@babel/compat-data@7.25.7': - resolution: {integrity: sha512-9ickoLz+hcXCeh7jrcin+/SLWm+GkxE2kTvoYyp38p4WkdFXfQJxDFGWp/YHjiKLPx06z2A7W8XKuqbReXDzsw==} - engines: {node: '>=6.9.0'} - - '@babel/core@7.25.8': - resolution: {integrity: sha512-Oixnb+DzmRT30qu9d3tJSQkxuygWm32DFykT4bRoORPa9hZ/L4KhVB/XiRm6KG+roIEM7DBQlmg27kw2HZkdZg==} - engines: {node: '>=6.9.0'} - - '@babel/generator@7.25.7': - resolution: {integrity: sha512-5Dqpl5fyV9pIAD62yK9P7fcA768uVPUyrQmqpqstHWgMma4feF1x/oFysBCVZLY5wJ2GkMUCdsNDnGZrPoR6rA==} - engines: {node: '>=6.9.0'} - - '@babel/helper-annotate-as-pure@7.25.7': - resolution: {integrity: sha512-4xwU8StnqnlIhhioZf1tqnVWeQ9pvH/ujS8hRfw/WOza+/a+1qv69BWNy+oY231maTCWgKWhfBU7kDpsds6zAA==} - engines: {node: '>=6.9.0'} - - '@babel/helper-compilation-targets@7.25.7': - resolution: {integrity: sha512-DniTEax0sv6isaw6qSQSfV4gVRNtw2rte8HHM45t9ZR0xILaufBRNkpMifCRiAPyvL4ACD6v0gfCwCmtOQaV4A==} - engines: {node: '>=6.9.0'} - - '@babel/helper-module-imports@7.25.7': - resolution: {integrity: sha512-o0xCgpNmRohmnoWKQ0Ij8IdddjyBFE4T2kagL/x6M3+4zUgc+4qTOUBoNe4XxDskt1HPKO007ZPiMgLDq2s7Kw==} - engines: {node: '>=6.9.0'} - - '@babel/helper-module-transforms@7.25.7': - resolution: {integrity: sha512-k/6f8dKG3yDz/qCwSM+RKovjMix563SLxQFo0UhRNo239SP6n9u5/eLtKD6EAjwta2JHJ49CsD8pms2HdNiMMQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/helper-plugin-utils@7.25.7': - resolution: {integrity: sha512-eaPZai0PiqCi09pPs3pAFfl/zYgGaE6IdXtYvmf0qlcDTd3WCtO7JWCcRd64e0EQrcYgiHibEZnOGsSY4QSgaw==} - engines: {node: '>=6.9.0'} - - '@babel/helper-simple-access@7.25.7': - resolution: {integrity: sha512-FPGAkJmyoChQeM+ruBGIDyrT2tKfZJO8NcxdC+CWNJi7N8/rZpSxK7yvBJ5O/nF1gfu5KzN7VKG3YVSLFfRSxQ==} - engines: {node: '>=6.9.0'} - '@babel/helper-string-parser@7.25.7': resolution: {integrity: sha512-CbkjYdsJNHFk8uqpEkpCvRs3YRp9tY6FmFY7wLMSYuGYkrdUi7r2lc4/wqsvlHoMznX3WJ9IP8giGPq68T/Y6g==} engines: {node: '>=6.9.0'} @@ -128,48 +85,11 @@ packages: resolution: {integrity: sha512-AM6TzwYqGChO45oiuPqwL2t20/HdMC1rTPAesnBCgPCSF1x3oN9MVUwQV2iyz4xqWrctwK5RNC8LV22kaQCNYg==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-option@7.25.7': - resolution: {integrity: sha512-ytbPLsm+GjArDYXJ8Ydr1c/KJuutjF2besPNbIZnZ6MKUxi/uTA22t2ymmA4WFjZFpjiAMO0xuuJPqK2nvDVfQ==} - engines: {node: '>=6.9.0'} - - '@babel/helpers@7.25.7': - resolution: {integrity: sha512-Sv6pASx7Esm38KQpF/U/OXLwPPrdGHNKoeblRxgZRLXnAtnkEe4ptJPDtAZM7fBLadbc1Q07kQpSiGQ0Jg6tRA==} - engines: {node: '>=6.9.0'} - - '@babel/highlight@7.25.7': - resolution: {integrity: sha512-iYyACpW3iW8Fw+ZybQK+drQre+ns/tKpXbNESfrhNnPLIklLbXr7MYJ6gPEd0iETGLOK+SxMjVvKb/ffmk+FEw==} - engines: {node: '>=6.9.0'} - - '@babel/parser@7.25.7': - resolution: {integrity: sha512-aZn7ETtQsjjGG5HruveUK06cU3Hljuhd9Iojm4M8WWv3wLE6OkE5PWbDUkItmMgegmccaITudyuW5RPYrYlgWw==} - engines: {node: '>=6.0.0'} - hasBin: true - '@babel/parser@7.25.8': resolution: {integrity: sha512-HcttkxzdPucv3nNFmfOOMfFf64KgdJVqm1KaCm25dPGMLElo9nsLvXeJECQg8UzPuBGLyTSA0ZzqCtDSzKTEoQ==} engines: {node: '>=6.0.0'} hasBin: true - '@babel/plugin-syntax-jsx@7.25.7': - resolution: {integrity: sha512-ruZOnKO+ajVL/MVx+PwNBPOkrnXTXoWMtte1MBpegfCArhqOe3Bj52avVj1huLLxNKYKXYaSxZ2F+woK1ekXfw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-react-jsx@7.25.7': - resolution: {integrity: sha512-vILAg5nwGlR9EXE8JIOX4NHXd49lrYbN8hnjffDtoULwpL9hUx/N55nqh2qd0q6FyNDfjl9V79ecKGvFbcSA0Q==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/template@7.25.7': - resolution: {integrity: sha512-wRwtAgI3bAS+JGU2upWNL9lSlDcRCqD05BZ1n3X2ONLH1WilFP6O1otQjeMK/1g0pvYcXC7b/qVUB1keofjtZA==} - engines: {node: '>=6.9.0'} - - '@babel/traverse@7.25.7': - resolution: {integrity: sha512-jatJPT1Zjqvh/1FyJs6qAHL+Dzb7sTb+xr7Q+gM1b+1oBsMsQQ4FkVKb6dFlJvLlVssqkRzV05Jzervt9yhnzg==} - engines: {node: '>=6.9.0'} - '@babel/types@7.25.8': resolution: {integrity: sha512-JWtuCu8VQsMladxVz/P4HzHUGCAwpuqacmowgXFs5XjxIgKuNjnLokQzuVjlTvIzODaDmpjT3oxcC48vyk9EWg==} engines: {node: '>=6.9.0'} @@ -204,138 +124,288 @@ packages: cpu: [ppc64] os: [aix] + '@esbuild/aix-ppc64@0.24.2': + resolution: {integrity: sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] + '@esbuild/android-arm64@0.21.5': resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} engines: {node: '>=12'} cpu: [arm64] os: [android] + '@esbuild/android-arm64@0.24.2': + resolution: {integrity: sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] + '@esbuild/android-arm@0.21.5': resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} engines: {node: '>=12'} cpu: [arm] os: [android] + '@esbuild/android-arm@0.24.2': + resolution: {integrity: sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==} + engines: {node: '>=18'} + cpu: [arm] + os: [android] + '@esbuild/android-x64@0.21.5': resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} engines: {node: '>=12'} cpu: [x64] os: [android] + '@esbuild/android-x64@0.24.2': + resolution: {integrity: sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] + '@esbuild/darwin-arm64@0.21.5': resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] + '@esbuild/darwin-arm64@0.24.2': + resolution: {integrity: sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] + '@esbuild/darwin-x64@0.21.5': resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} engines: {node: '>=12'} cpu: [x64] os: [darwin] + '@esbuild/darwin-x64@0.24.2': + resolution: {integrity: sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] + '@esbuild/freebsd-arm64@0.21.5': resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] + '@esbuild/freebsd-arm64@0.24.2': + resolution: {integrity: sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [freebsd] + '@esbuild/freebsd-x64@0.21.5': resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] + '@esbuild/freebsd-x64@0.24.2': + resolution: {integrity: sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] + '@esbuild/linux-arm64@0.21.5': resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} engines: {node: '>=12'} cpu: [arm64] os: [linux] + '@esbuild/linux-arm64@0.24.2': + resolution: {integrity: sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [linux] + '@esbuild/linux-arm@0.21.5': resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} engines: {node: '>=12'} cpu: [arm] os: [linux] + '@esbuild/linux-arm@0.24.2': + resolution: {integrity: sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==} + engines: {node: '>=18'} + cpu: [arm] + os: [linux] + '@esbuild/linux-ia32@0.21.5': resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} engines: {node: '>=12'} cpu: [ia32] os: [linux] + '@esbuild/linux-ia32@0.24.2': + resolution: {integrity: sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==} + engines: {node: '>=18'} + cpu: [ia32] + os: [linux] + '@esbuild/linux-loong64@0.21.5': resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} engines: {node: '>=12'} cpu: [loong64] os: [linux] + '@esbuild/linux-loong64@0.24.2': + resolution: {integrity: sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==} + engines: {node: '>=18'} + cpu: [loong64] + os: [linux] + '@esbuild/linux-mips64el@0.21.5': resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] + '@esbuild/linux-mips64el@0.24.2': + resolution: {integrity: sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==} + engines: {node: '>=18'} + cpu: [mips64el] + os: [linux] + '@esbuild/linux-ppc64@0.21.5': resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] + '@esbuild/linux-ppc64@0.24.2': + resolution: {integrity: sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [linux] + '@esbuild/linux-riscv64@0.21.5': resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] + '@esbuild/linux-riscv64@0.24.2': + resolution: {integrity: sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==} + engines: {node: '>=18'} + cpu: [riscv64] + os: [linux] + '@esbuild/linux-s390x@0.21.5': resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} engines: {node: '>=12'} cpu: [s390x] os: [linux] + '@esbuild/linux-s390x@0.24.2': + resolution: {integrity: sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==} + engines: {node: '>=18'} + cpu: [s390x] + os: [linux] + '@esbuild/linux-x64@0.21.5': resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} engines: {node: '>=12'} cpu: [x64] os: [linux] + '@esbuild/linux-x64@0.24.2': + resolution: {integrity: sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==} + engines: {node: '>=18'} + cpu: [x64] + os: [linux] + + '@esbuild/netbsd-arm64@0.24.2': + resolution: {integrity: sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [netbsd] + '@esbuild/netbsd-x64@0.21.5': resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] + '@esbuild/netbsd-x64@0.24.2': + resolution: {integrity: sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==} + engines: {node: '>=18'} + cpu: [x64] + os: [netbsd] + + '@esbuild/openbsd-arm64@0.24.2': + resolution: {integrity: sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + '@esbuild/openbsd-x64@0.21.5': resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] + '@esbuild/openbsd-x64@0.24.2': + resolution: {integrity: sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==} + engines: {node: '>=18'} + cpu: [x64] + os: [openbsd] + '@esbuild/sunos-x64@0.21.5': resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} engines: {node: '>=12'} cpu: [x64] os: [sunos] + '@esbuild/sunos-x64@0.24.2': + resolution: {integrity: sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==} + engines: {node: '>=18'} + cpu: [x64] + os: [sunos] + '@esbuild/win32-arm64@0.21.5': resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} engines: {node: '>=12'} cpu: [arm64] os: [win32] + '@esbuild/win32-arm64@0.24.2': + resolution: {integrity: sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==} + engines: {node: '>=18'} + cpu: [arm64] + os: [win32] + '@esbuild/win32-ia32@0.21.5': resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} engines: {node: '>=12'} cpu: [ia32] os: [win32] + '@esbuild/win32-ia32@0.24.2': + resolution: {integrity: sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==} + engines: {node: '>=18'} + cpu: [ia32] + os: [win32] + '@esbuild/win32-x64@0.21.5': resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} engines: {node: '>=12'} cpu: [x64] os: [win32] + '@esbuild/win32-x64@0.24.2': + resolution: {integrity: sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] + '@img/sharp-darwin-arm64@0.33.5': resolution: {integrity: sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} @@ -482,8 +552,8 @@ packages: resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} - '@rollup/pluginutils@5.1.2': - resolution: {integrity: sha512-/FIdS3PyZ39bjZlwqFnWqCOVnW7o963LtKMwQOD0NhQqw22gSr2YY1afu3FxRip4ZCZNsD5jq6Aaz6QV3D/Njw==} + '@rollup/pluginutils@5.1.4': + resolution: {integrity: sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==} engines: {node: '>=14.0.0'} peerDependencies: rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 @@ -571,32 +641,26 @@ packages: cpu: [x64] os: [win32] - '@shikijs/core@1.22.0': - resolution: {integrity: sha512-S8sMe4q71TJAW+qG93s5VaiihujRK6rqDFqBnxqvga/3LvqHEnxqBIOPkt//IdXVtHkQWKu4nOQNk0uBGicU7Q==} + '@shikijs/core@1.26.1': + resolution: {integrity: sha512-yeo7sG+WZQblKPclUOKRPwkv1PyoHYkJ4gP9DzhFJbTdueKR7wYTI1vfF/bFi1NTgc545yG/DzvVhZgueVOXMA==} - '@shikijs/engine-javascript@1.22.0': - resolution: {integrity: sha512-AeEtF4Gcck2dwBqCFUKYfsCq0s+eEbCEbkUuFou53NZ0sTGnJnJ/05KHQFZxpii5HMXbocV9URYVowOP2wH5kw==} + '@shikijs/engine-javascript@1.26.1': + resolution: {integrity: sha512-CRhA0b8CaSLxS0E9A4Bzcb3LKBNpykfo9F85ozlNyArxjo2NkijtiwrJZ6eHa+NT5I9Kox2IXVdjUsP4dilsmw==} - '@shikijs/engine-oniguruma@1.22.0': - resolution: {integrity: sha512-5iBVjhu/DYs1HB0BKsRRFipRrD7rqjxlWTj4F2Pf+nQSPqc3kcyqFFeZXnBMzDf0HdqaFVvhDRAGiYNvyLP+Mw==} + '@shikijs/engine-oniguruma@1.26.1': + resolution: {integrity: sha512-F5XuxN1HljLuvfXv7d+mlTkV7XukC1cawdtOo+7pKgPD83CAB1Sf8uHqP3PK0u7njFH0ZhoXE1r+0JzEgAQ+kg==} - '@shikijs/types@1.22.0': - resolution: {integrity: sha512-Fw/Nr7FGFhlQqHfxzZY8Cwtwk5E9nKDUgeLjZgt3UuhcM3yJR9xj3ZGNravZZok8XmEZMiYkSMTPlPkULB8nww==} + '@shikijs/langs@1.26.1': + resolution: {integrity: sha512-oz/TQiIqZejEIZbGtn68hbJijAOTtYH4TMMSWkWYozwqdpKR3EXgILneQy26WItmJjp3xVspHdiUxUCws4gtuw==} - '@shikijs/vscode-textmate@9.3.0': - resolution: {integrity: sha512-jn7/7ky30idSkd/O5yDBfAnVt+JJpepofP/POZ1iMOxK59cOfqIgg/Dj0eFsjOTMw+4ycJN0uhZH/Eb0bs/EUA==} + '@shikijs/themes@1.26.1': + resolution: {integrity: sha512-JDxVn+z+wgLCiUhBGx2OQrLCkKZQGzNH3nAxFir4PjUcYiyD8Jdms9izyxIogYmSwmoPTatFTdzyrRKbKlSfPA==} - '@types/babel__core@7.20.5': - resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} + '@shikijs/types@1.26.1': + resolution: {integrity: sha512-d4B00TKKAMaHuFYgRf3L0gwtvqpW4hVdVwKcZYbBfAAQXspgkbWqnFfuFl3MDH6gLbsubOcr+prcnsqah3ny7Q==} - '@types/babel__generator@7.6.8': - resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==} - - '@types/babel__template@7.4.4': - resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} - - '@types/babel__traverse@7.20.6': - resolution: {integrity: sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==} + '@shikijs/vscode-textmate@10.0.1': + resolution: {integrity: sha512-fTIQwLF+Qhuws31iw7Ncl1R3HUDtGwIipiJ9iU+UsDUwMhegFcQKQHd51nZjb7CArq0MvON8rbgCGQYWHUKAdg==} '@types/cookie@0.6.0': resolution: {integrity: sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==} @@ -651,8 +715,8 @@ packages: '@vscode/l10n@0.0.18': resolution: {integrity: sha512-KYSIHVmslkaCDyw013pphY+d7x1qV8IZupYfeIfzNA+nsaWHbn5uPuQRvdRFsa9zFzGeudPuoGoZ1Op4jrJXIQ==} - acorn@8.12.1: - resolution: {integrity: sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==} + acorn@8.14.0: + resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==} engines: {node: '>=0.4.0'} hasBin: true @@ -670,10 +734,6 @@ packages: resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} engines: {node: '>=12'} - ansi-styles@3.2.1: - resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} - engines: {node: '>=4'} - ansi-styles@4.3.0: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} engines: {node: '>=8'} @@ -705,9 +765,9 @@ packages: array-iterate@2.0.1: resolution: {integrity: sha512-I1jXZMjAgCMmxT4qxXfPXa6SthSoE8h6gkSI9BGGNv8mP8G/v0blc+qFnZu6K42vTOiuME596QaLO0TP3Lk0xg==} - astro@4.16.6: - resolution: {integrity: sha512-LMMbjr+4aN26MOyJzTdjM+Y+srpAIkx7IX9IcdF3eHQLGr8PgkioZp+VQExRfioDIyA2HY6ottVg3QccTzJqYA==} - engines: {node: ^18.17.1 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0'} + astro@5.1.2: + resolution: {integrity: sha512-+U5lXPEJZ6cQx0botGbPhzN6XGWRgDtXgy/RUkpTmUj18LW6pbzYo0O0k3hFWOazlI039bZ+4P2e/oSNlKzm0Q==} + engines: {node: ^18.17.1 || ^20.3.0 || >=22.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0'} hasBin: true autoprefixer@10.4.20: @@ -764,10 +824,6 @@ packages: ccount@2.0.1: resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} - chalk@2.4.2: - resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} - engines: {node: '>=4'} - chalk@5.3.0: resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} @@ -789,22 +845,14 @@ packages: resolution: {integrity: sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==} engines: {node: '>= 14.16.0'} - ci-info@4.0.0: - resolution: {integrity: sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg==} + ci-info@4.1.0: + resolution: {integrity: sha512-HutrvTNsF48wnxkzERIXOe5/mlcfFcbfCmwcg6CJnizbSue78AbDt+1cgl26zwn61WFxhcPykPfZrbqjGmBb4A==} engines: {node: '>=8'} cli-boxes@3.0.0: resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==} engines: {node: '>=10'} - cli-cursor@5.0.0: - resolution: {integrity: sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==} - engines: {node: '>=18'} - - cli-spinners@2.9.2: - resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} - engines: {node: '>=6'} - cliui@8.0.1: resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} engines: {node: '>=12'} @@ -813,16 +861,10 @@ packages: resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} engines: {node: '>=6'} - color-convert@1.9.3: - resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} - color-convert@2.0.1: resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} engines: {node: '>=7.0.0'} - color-name@1.1.3: - resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} - color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} @@ -843,8 +885,12 @@ packages: common-ancestor-path@1.0.1: resolution: {integrity: sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==} - convert-source-map@2.0.0: - resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + consola@3.3.3: + resolution: {integrity: sha512-Qil5KwghMzlqd51UXM0b6fyaGHtOC22scxrwrz4A2882LyUMwQjnvaedN1HAeXzphspQ6CpHkzMAWxBTUruDLg==} + engines: {node: ^14.18.0 || >=16.10.0} + + cookie-es@1.2.2: + resolution: {integrity: sha512-+W7VmiVINB+ywl1HGXJXmrqkOhpKrIiVZV6tQuV54ZyQC7MMuBt81Vc336GMLoHBq5hV/F9eXgt5Mnx0Rha5Fg==} cookie@0.7.2: resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==} @@ -854,11 +900,17 @@ packages: resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} engines: {node: '>= 8'} + crossws@0.3.1: + resolution: {integrity: sha512-HsZgeVYaG+b5zA+9PbIPGq4+J/CJynJuearykPsXx4V/eMhyQ5EDVg3Ak2FBZtVXCiOLu/U7IiwDHTr9MA+IKw==} + cssesc@3.0.0: resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} engines: {node: '>=4'} hasBin: true + dayjs@1.11.13: + resolution: {integrity: sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==} + debug@4.3.7: resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} engines: {node: '>=6.0'} @@ -871,10 +923,16 @@ packages: decode-named-character-reference@1.0.2: resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==} + defu@6.1.4: + resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} + dequal@2.0.3: resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} engines: {node: '>=6'} + destr@2.0.3: + resolution: {integrity: sha512-2N3BOUU4gYMpTP24s5rF5iP7BDr7uNTCs4ozw3kf/eKfvWSIu93GEBi5m427YoyJoeOzQ5smuu4nNAPGb8idSQ==} + detect-libc@2.0.3: resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==} engines: {node: '>=8'} @@ -912,6 +970,9 @@ packages: emmet@2.4.11: resolution: {integrity: sha512-23QPJB3moh/U9sT4rQzGgeyyGIrcM+GH5uVYg2C6wZIxAIJq7Ng3QLT79tl8FUwDXhyq9SusfknOrofAKqvgyQ==} + emoji-regex-xs@1.0.0: + resolution: {integrity: sha512-LRlerrMYoIDrT6jgpeZ2YYl/L8EulRTt5hQcYjy5AInh7HWXKimpqx68aknBFpGL2+/IcogTcaydJEgaTmOpDg==} + emoji-regex@10.4.0: resolution: {integrity: sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==} @@ -933,14 +994,15 @@ packages: engines: {node: '>=12'} hasBin: true + esbuild@0.24.2: + resolution: {integrity: sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==} + engines: {node: '>=18'} + hasBin: true + escalade@3.2.0: resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} - escape-string-regexp@1.0.5: - resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} - engines: {node: '>=0.8.0'} - escape-string-regexp@5.0.0: resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} engines: {node: '>=12'} @@ -959,10 +1021,6 @@ packages: eventemitter3@5.0.1: resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} - extend-shallow@2.0.1: - resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} - engines: {node: '>=0.10.0'} - extend@3.0.2: resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} @@ -1013,10 +1071,6 @@ packages: function-bind@1.1.2: resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - gensync@1.0.0-beta.2: - resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} - engines: {node: '>=6.9.0'} - get-caller-file@2.0.5: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} @@ -1040,20 +1094,11 @@ packages: resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} hasBin: true - globals@11.12.0: - resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} - engines: {node: '>=4'} - graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - gray-matter@4.0.3: - resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==} - engines: {node: '>=6.0'} - - has-flag@3.0.0: - resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} - engines: {node: '>=4'} + h3@1.13.0: + resolution: {integrity: sha512-vFEAu/yf8UMUcB4s43OaDaigcqpQd14yanmOsn+NcRX3/guSKncyE2rOYhq8RIchgJrPSs/QiIddnTTR1ddiAg==} hasown@2.0.2: resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} @@ -1077,6 +1122,9 @@ packages: hast-util-to-html@9.0.3: resolution: {integrity: sha512-M17uBDzMJ9RPCqLMO92gNNUDuBSq10a25SDBI08iCCxmorf4Yy6sYHK57n9WAbRAAaU+DuR4W6GN9K4DFZesYg==} + hast-util-to-html@9.0.4: + resolution: {integrity: sha512-wxQzXtdbhiwGAUKrnQJXlOPmHnEehzphwkK7aluUPQ+lEc1xefC8pblMgpp2w5ldBTEfveRIrADcrhGIWrlTDA==} + hast-util-to-parse5@8.0.0: resolution: {integrity: sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==} @@ -1101,6 +1149,9 @@ packages: import-meta-resolve@4.1.0: resolution: {integrity: sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==} + iron-webcrypto@1.2.1: + resolution: {integrity: sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg==} + is-arrayish@0.3.2: resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} @@ -1117,10 +1168,6 @@ packages: engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} hasBin: true - is-extendable@0.1.1: - resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} - engines: {node: '>=0.10.0'} - is-extglob@2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} @@ -1138,10 +1185,6 @@ packages: engines: {node: '>=14.16'} hasBin: true - is-interactive@2.0.0: - resolution: {integrity: sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==} - engines: {node: '>=12'} - is-number@7.0.0: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} @@ -1150,14 +1193,6 @@ packages: resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} engines: {node: '>=12'} - is-unicode-supported@1.3.0: - resolution: {integrity: sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==} - engines: {node: '>=12'} - - is-unicode-supported@2.1.0: - resolution: {integrity: sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==} - engines: {node: '>=18'} - is-wsl@3.1.0: resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==} engines: {node: '>=16'} @@ -1172,9 +1207,6 @@ packages: resolution: {integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==} hasBin: true - js-tokens@4.0.0: - resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - js-yaml@3.14.1: resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} hasBin: true @@ -1183,29 +1215,15 @@ packages: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} hasBin: true - jsesc@3.0.2: - resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} - engines: {node: '>=6'} - hasBin: true - json-schema-traverse@1.0.0: resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} - json5@2.2.3: - resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} - engines: {node: '>=6'} - hasBin: true - jsonc-parser@2.3.1: resolution: {integrity: sha512-H8jvkz1O50L3dMZCsLqiuB2tA7muqbSg1AtGEkN0leAqGjsUzDJir3Zwr02BhqdcITPg3ei3mZ+HjMocAknhhg==} jsonc-parser@3.3.1: resolution: {integrity: sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==} - kind-of@6.0.3: - resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} - engines: {node: '>=0.10.0'} - kleur@3.0.3: resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} engines: {node: '>=6'} @@ -1236,21 +1254,14 @@ packages: lodash@4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} - log-symbols@6.0.0: - resolution: {integrity: sha512-i24m8rpwhmPIS4zscNzK6MSEhk0DUWa/8iYQWxhffV8jkI4Phvs3F+quL5xvS0gdQR0FyTCMMH33Y78dDTzzIw==} - engines: {node: '>=18'} - longest-streak@3.1.0: resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} lru-cache@10.4.3: resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} - lru-cache@5.1.1: - resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} - - magic-string@0.30.12: - resolution: {integrity: sha512-Ea8I3sQMVXr8JhN4z+H/d8zwo+tYDgHE9+5G4Wnrwhs0gaK9fXTKx0Tw5Xwsd/bCPTTZNRAdpyzvoeORe9LYpw==} + magic-string@0.30.17: + resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==} magicast@0.3.5: resolution: {integrity: sha512-L0WhttDl+2BOsybvEOLK7fW3UA0OQ0IQ2d6Zl2x/a6vVRs3bAY0ECOSHHeL5jD+SbOpOCUEi0y1DgHEn9Qn1AQ==} @@ -1389,9 +1400,10 @@ packages: resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} engines: {node: '>=8.6'} - mimic-function@5.0.1: - resolution: {integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==} - engines: {node: '>=18'} + mime@3.0.0: + resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==} + engines: {node: '>=10.0.0'} + hasBin: true minimatch@9.0.5: resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} @@ -1426,6 +1438,9 @@ packages: nlcst-to-string@4.0.0: resolution: {integrity: sha512-YKLBCcUYKAg0FNlOBT6aI91qFmSiFKiluk655WzPF+DDMA02qIyy8uiRqI8QXtcFpEvll12LpL5MXqEmAZ+dcA==} + node-fetch-native@1.6.4: + resolution: {integrity: sha512-IhOigYzAKHd244OC0JIMIUrjzctirCmPkaIfhDeGcEETWof5zKYUW7e7MYvChGWh/4CJeXEgsRyGzuF334rOOQ==} + node-releases@2.0.18: resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} @@ -1445,16 +1460,14 @@ packages: resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} engines: {node: '>= 6'} - onetime@7.0.0: - resolution: {integrity: sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==} - engines: {node: '>=18'} + ofetch@1.4.1: + resolution: {integrity: sha512-QZj2DfGplQAr2oj9KzceK9Hwz6Whxazmn85yYeVuS3u9XTMOGMRx0kO95MQ+vLsj/S/NwBDMMLU5hpxvI6Tklw==} - oniguruma-to-js@0.4.3: - resolution: {integrity: sha512-X0jWUcAlxORhOqqBREgPMgnshB7ZGYszBNspP+tS9hPD3l13CdaXcHbgImoHUHlrvGx/7AvFEkTRhAGYh+jzjQ==} + ohash@1.1.4: + resolution: {integrity: sha512-FlDryZAahJmEF3VR3w1KogSEdWX3WhA5GPakFx4J81kEAiHyLMpdLLElS8n8dfNadMgAne/MywcvmogzscVt4g==} - ora@8.1.0: - resolution: {integrity: sha512-GQEkNkH/GHOhPFXcqZs3IDahXEQcQxsSjEkK4KvEEST4t7eNzoMjxTzef+EZ+JluDEV+Raoi3WQ2CflnRdSVnQ==} - engines: {node: '>=18'} + oniguruma-to-es@0.10.0: + resolution: {integrity: sha512-zapyOUOCJxt+xhiNRPPMtfJkHGsZ98HHB9qJEkdT8BGytO/+kpe4m1Ngf0MzbzTmhacn11w9yGeDP6tzDhnCdg==} p-limit@2.3.0: resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} @@ -1507,13 +1520,23 @@ packages: resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} engines: {node: '>=16 || 14 >=14.18'} + pathe@1.1.2: + resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} + picocolors@1.1.0: resolution: {integrity: sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==} + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + picomatch@2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} + picomatch@4.0.2: + resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} + engines: {node: '>=12'} + pify@2.3.0: resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} engines: {node: '>=0.10.0'} @@ -1571,6 +1594,10 @@ packages: resolution: {integrity: sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==} engines: {node: ^10 || ^12 || >=14} + postcss@8.4.49: + resolution: {integrity: sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==} + engines: {node: ^10 || ^12 || >=14} + preferred-pm@4.0.0: resolution: {integrity: sha512-gYBeFTZLu055D8Vv3cSPox/0iTPtkzxpLroSYYA7WXgRi31WCJ51Uyl8ZiPeUUjyvs2MBzK+S8v9JVUgHU/Sqw==} engines: {node: '>=18.12'} @@ -1594,6 +1621,9 @@ packages: queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + radix3@1.1.2: + resolution: {integrity: sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA==} + read-cache@1.0.0: resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} @@ -1605,8 +1635,14 @@ packages: resolution: {integrity: sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==} engines: {node: '>= 14.16.0'} - regex@4.3.3: - resolution: {integrity: sha512-r/AadFO7owAq1QJVeZ/nq9jNS1vyZt+6t1p/E59B56Rn2GCya+gr1KSyOzNL/er+r+B7phv5jG2xU2Nz1YkmJg==} + regex-recursion@5.1.1: + resolution: {integrity: sha512-ae7SBCbzVNrIjgSbh7wMznPcQel1DNlDtzensnFxpiNpXt1U2ju/bHugH422r+4LAVS1FpW1YCwilmnNsjum9w==} + + regex-utilities@2.3.0: + resolution: {integrity: sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==} + + regex@5.1.1: + resolution: {integrity: sha512-dN5I359AVGPnwzJm2jN1k0W9LPZ+ePvoOeVMMfqIMFz53sSwXkxaJoxr50ptnsC771lK95BnTrVSZxq0b9yCGw==} rehype-parse@9.0.1: resolution: {integrity: sha512-ksCzCD0Fgfh7trPDxr2rSylbwq9iYDkSn8TCDmEJ49ljEUBxDVCzCHv7QNzZOfODanX4+bWQ4WZqLCRWYLfhag==} @@ -1654,10 +1690,6 @@ packages: resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} hasBin: true - restore-cursor@5.1.0: - resolution: {integrity: sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==} - engines: {node: '>=18'} - retext-latin@4.0.0: resolution: {integrity: sha512-hv9woG7Fy0M9IlRQloq/N6atV82NxLGveq+3H2WOi79dtIYWN8OaxogDm77f8YnVXJL2VD3bbqowu5E3EMhBYA==} @@ -1682,14 +1714,6 @@ packages: run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} - section-matter@1.0.0: - resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==} - engines: {node: '>=4'} - - semver@6.3.1: - resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} - hasBin: true - semver@7.6.3: resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} engines: {node: '>=10'} @@ -1707,8 +1731,8 @@ packages: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} - shiki@1.22.0: - resolution: {integrity: sha512-/t5LlhNs+UOKQCYBtl5ZsH/Vclz73GIqT2yQsCBygr8L/ppTdmpL4w3kPLoZJbMKVWtoG77Ue1feOjZfDxvMkw==} + shiki@1.26.1: + resolution: {integrity: sha512-Gqg6DSTk3wYqaZ5OaYtzjcdxcBvX5kCy24yvRJEgjT5U+WHlmqCThLuBUx0juyxQBi+6ug53IGeuQS07DWwpcw==} signal-exit@4.1.0: resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} @@ -1730,10 +1754,6 @@ packages: sprintf-js@1.0.3: resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} - stdin-discarder@0.2.2: - resolution: {integrity: sha512-UhDfHmA92YAlNnCfhmq0VeNL5bDbiZGg7sZ2IvPsXubGkiNa9EC+tUTsjBRsYUAz87btI6/1wf4XoVvQ3uRnmQ==} - engines: {node: '>=18'} - string-width@4.2.3: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} @@ -1757,10 +1777,6 @@ packages: resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} engines: {node: '>=12'} - strip-bom-string@1.0.0: - resolution: {integrity: sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==} - engines: {node: '>=0.10.0'} - strip-bom@3.0.0: resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} engines: {node: '>=4'} @@ -1770,10 +1786,6 @@ packages: engines: {node: '>=16 || 14 >=14.17'} hasBin: true - supports-color@5.5.0: - resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} - engines: {node: '>=4'} - supports-preserve-symlinks-flag@1.0.0: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} @@ -1790,8 +1802,8 @@ packages: thenify@3.3.1: resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} - tinyexec@0.3.0: - resolution: {integrity: sha512-tVGE0mVJPGb0chKhqmsoosjsS+qUnJVGJpZgsHYQcGoPlG3B51R3PouqTgEGH2Dc9jjFyOqOpix6ZHNMXp1FZg==} + tinyexec@0.3.2: + resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==} to-fast-properties@2.0.0: resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} @@ -1838,6 +1850,18 @@ packages: engines: {node: '>=14.17'} hasBin: true + ufo@1.5.4: + resolution: {integrity: sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==} + + ultrahtml@1.5.3: + resolution: {integrity: sha512-GykOvZwgDWZlTQMtp5jrD4BVL+gNn2NVlVafjcFUJ7taY20tqYdwdoWBFy6GBJsNTZe1GkGPkSl5knQAjtgceg==} + + uncrypto@0.1.3: + resolution: {integrity: sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==} + + unenv@1.10.0: + resolution: {integrity: sha512-wY5bskBQFL9n3Eca5XnhH6KbUo/tfvkwm9OpcdCvLaeA7piBNbavbOKJySEwQ1V0RH6HvNlSAFRTpvTqgKRQXQ==} + unified@11.0.5: resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} @@ -1868,6 +1892,65 @@ packages: unist-util-visit@5.0.0: resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} + unstorage@1.14.4: + resolution: {integrity: sha512-1SYeamwuYeQJtJ/USE1x4l17LkmQBzg7deBJ+U9qOBoHo15d1cDxG4jM31zKRgF7pG0kirZy4wVMX6WL6Zoscg==} + peerDependencies: + '@azure/app-configuration': ^1.8.0 + '@azure/cosmos': ^4.2.0 + '@azure/data-tables': ^13.3.0 + '@azure/identity': ^4.5.0 + '@azure/keyvault-secrets': ^4.9.0 + '@azure/storage-blob': ^12.26.0 + '@capacitor/preferences': ^6.0.3 + '@deno/kv': '>=0.8.4' + '@netlify/blobs': ^6.5.0 || ^7.0.0 || ^8.1.0 + '@planetscale/database': ^1.19.0 + '@upstash/redis': ^1.34.3 + '@vercel/blob': '>=0.27.0' + '@vercel/kv': ^1.0.1 + aws4fetch: ^1.0.20 + db0: '>=0.2.1' + idb-keyval: ^6.2.1 + ioredis: ^5.4.2 + uploadthing: ^7.4.1 + peerDependenciesMeta: + '@azure/app-configuration': + optional: true + '@azure/cosmos': + optional: true + '@azure/data-tables': + optional: true + '@azure/identity': + optional: true + '@azure/keyvault-secrets': + optional: true + '@azure/storage-blob': + optional: true + '@capacitor/preferences': + optional: true + '@deno/kv': + optional: true + '@netlify/blobs': + optional: true + '@planetscale/database': + optional: true + '@upstash/redis': + optional: true + '@vercel/blob': + optional: true + '@vercel/kv': + optional: true + aws4fetch: + optional: true + db0: + optional: true + idb-keyval: + optional: true + ioredis: + optional: true + uploadthing: + optional: true + update-browserslist-db@1.1.1: resolution: {integrity: sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==} hasBin: true @@ -1886,22 +1969,27 @@ packages: vfile@6.0.3: resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} - vite@5.4.9: - resolution: {integrity: sha512-20OVpJHh0PAM0oSOELa5GaZNWeDjcAvQjGXy2Uyr+Tp+/D2/Hdz6NLgpJLsarPTA2QJ6v8mX2P1ZfbsSKvdMkg==} - engines: {node: ^18.0.0 || >=20.0.0} + vite@6.0.7: + resolution: {integrity: sha512-RDt8r/7qx9940f8FcOIAH9PTViRrghKaK2K1jY3RaAURrEUbm9Du1mJ72G+jlhtG3WwodnfzY8ORQZbBavZEAQ==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} hasBin: true peerDependencies: - '@types/node': ^18.0.0 || >=20.0.0 + '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 + jiti: '>=1.21.0' less: '*' lightningcss: ^1.21.0 sass: '*' sass-embedded: '*' stylus: '*' sugarss: '*' - terser: ^5.4.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: @@ -1916,11 +2004,15 @@ packages: optional: true terser: optional: true + tsx: + optional: true + yaml: + optional: true - vitefu@1.0.3: - resolution: {integrity: sha512-iKKfOMBHob2WxEJbqbJjHAkmYgvFDPhuqrO82om83S8RLk+17FtyMBfcyeH8GqD0ihShtkMW/zzJgiA51hCNCQ==} + vitefu@1.0.5: + resolution: {integrity: sha512-h4Vflt9gxODPFNGPwp4zAMZRpZR7eslzwH2c5hn5kNZ5rhnKyRJ50U+yGCdc2IRaBs8O4haIgLNGrV5CrpMsCA==} peerDependencies: - vite: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0-beta.0 + vite: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 peerDependenciesMeta: vite: optional: true @@ -2066,16 +2158,13 @@ packages: resolution: {integrity: sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==} engines: {node: '>=18'} - xxhash-wasm@1.0.2: - resolution: {integrity: sha512-ibF0Or+FivM9lNrg+HGJfVX8WJqgo+kCLDc4vx6xMeTce7Aj+DLttKbxxRR/gNLSAelRc1omAPlJ77N/Jem07A==} + xxhash-wasm@1.1.0: + resolution: {integrity: sha512-147y/6YNh+tlp6nd/2pWq38i9h6mz/EuQ6njIrmW8D1BS5nCqs0P6DG+m6zTGnNz5I+uhZ0SHxBs9BsPrwcKDA==} y18n@5.0.8: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} engines: {node: '>=10'} - yallist@3.1.1: - resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} - yaml-language-server@1.15.0: resolution: {integrity: sha512-N47AqBDCMQmh6mBLmI6oqxryHRzi33aPFPsJhYy3VTUGCdLHYjGh4FZzpUjRlphaADBBkDmnkM/++KNIOHi5Rw==} hasBin: true @@ -2101,10 +2190,18 @@ packages: resolution: {integrity: sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==} engines: {node: '>=12.20'} - zod-to-json-schema@3.23.3: - resolution: {integrity: sha512-TYWChTxKQbRJp5ST22o/Irt9KC5nj7CdBKYB/AosCRdj/wxEMvv4NNaj9XVUHDOIp53ZxArGhnw5HMZziPFjog==} + yocto-spinner@0.1.2: + resolution: {integrity: sha512-VfmLIh/ZSZOJnVRQZc/dvpPP90lWL4G0bmxQMP0+U/2vKBA8GSpcBuWv17y7F+CZItRuO97HN1wdbb4p10uhOg==} + engines: {node: '>=18.19'} + + yoctocolors@2.1.1: + resolution: {integrity: sha512-GQHQqAopRhwU8Kt1DDM8NjibDXHC8eoh1erhGAJPEyveY9qqVeXvVikNKrDz69sHowPMorbPUrH/mx8c50eiBQ==} + engines: {node: '>=18'} + + zod-to-json-schema@3.24.1: + resolution: {integrity: sha512-3h08nf3Vw3Wl3PK+q3ow/lIil81IT2Oa7YpQyUUDsEWbXveMesdfK1xBd2RhCkynwZndAxixji/7SYJJowr62w==} peerDependencies: - zod: ^3.23.3 + zod: ^3.24.1 zod-to-ts@1.2.0: resolution: {integrity: sha512-x30XE43V+InwGpvTySRNz9kB7qFU8DlyEy7BsSTCHPH1R0QasMmHWZDCzYm6bVXtj/9NNJAZF3jW8rzFvH5OFA==} @@ -2122,11 +2219,6 @@ snapshots: '@alloc/quick-lru@5.2.0': {} - '@ampproject/remapping@2.3.0': - dependencies: - '@jridgewell/gen-mapping': 0.3.5 - '@jridgewell/trace-mapping': 0.3.25 - '@astrojs/check@0.9.4(typescript@5.6.2)': dependencies: '@astrojs/language-server': 2.15.0(typescript@5.6.2) @@ -2140,7 +2232,7 @@ snapshots: '@astrojs/compiler@2.10.3': {} - '@astrojs/internal-helpers@0.4.1': {} + '@astrojs/internal-helpers@0.4.2': {} '@astrojs/language-server@2.15.0(typescript@5.6.2)': dependencies: @@ -2165,13 +2257,14 @@ snapshots: transitivePeerDependencies: - typescript - '@astrojs/markdown-remark@5.3.0': + '@astrojs/markdown-remark@6.0.1': dependencies: - '@astrojs/prism': 3.1.0 + '@astrojs/prism': 3.2.0 github-slugger: 2.0.0 hast-util-from-html: 2.0.3 hast-util-to-text: 4.0.2 import-meta-resolve: 4.1.0 + js-yaml: 4.1.0 mdast-util-definitions: 6.0.0 rehype-raw: 7.0.0 rehype-stringify: 10.0.1 @@ -2179,7 +2272,7 @@ snapshots: remark-parse: 11.0.0 remark-rehype: 11.1.1 remark-smartypants: 3.0.2 - shiki: 1.22.0 + shiki: 1.26.1 unified: 11.0.5 unist-util-remove-position: 5.0.0 unist-util-visit: 5.0.0 @@ -2188,23 +2281,23 @@ snapshots: transitivePeerDependencies: - supports-color - '@astrojs/prism@3.1.0': + '@astrojs/prism@3.2.0': dependencies: prismjs: 1.29.0 - '@astrojs/tailwind@5.1.2(astro@4.16.6(rollup@4.24.0)(typescript@5.6.2))(tailwindcss@3.4.13)': + '@astrojs/tailwind@5.1.4(astro@5.1.2(jiti@1.21.6)(rollup@4.24.0)(typescript@5.6.2)(yaml@2.5.1))(tailwindcss@3.4.13)': dependencies: - astro: 4.16.6(rollup@4.24.0)(typescript@5.6.2) - autoprefixer: 10.4.20(postcss@8.4.47) - postcss: 8.4.47 - postcss-load-config: 4.0.2(postcss@8.4.47) + astro: 5.1.2(jiti@1.21.6)(rollup@4.24.0)(typescript@5.6.2)(yaml@2.5.1) + autoprefixer: 10.4.20(postcss@8.4.49) + postcss: 8.4.49 + postcss-load-config: 4.0.2(postcss@8.4.49) tailwindcss: 3.4.13 transitivePeerDependencies: - ts-node - '@astrojs/telemetry@3.1.0': + '@astrojs/telemetry@3.2.0': dependencies: - ci-info: 4.0.0 + ci-info: 4.1.0 debug: 4.3.7 dlv: 1.1.3 dset: 3.1.4 @@ -2218,138 +2311,14 @@ snapshots: dependencies: yaml: 2.5.1 - '@babel/code-frame@7.25.7': - dependencies: - '@babel/highlight': 7.25.7 - picocolors: 1.1.0 - - '@babel/compat-data@7.25.7': {} - - '@babel/core@7.25.8': - dependencies: - '@ampproject/remapping': 2.3.0 - '@babel/code-frame': 7.25.7 - '@babel/generator': 7.25.7 - '@babel/helper-compilation-targets': 7.25.7 - '@babel/helper-module-transforms': 7.25.7(@babel/core@7.25.8) - '@babel/helpers': 7.25.7 - '@babel/parser': 7.25.8 - '@babel/template': 7.25.7 - '@babel/traverse': 7.25.7 - '@babel/types': 7.25.8 - convert-source-map: 2.0.0 - debug: 4.3.7 - gensync: 1.0.0-beta.2 - json5: 2.2.3 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - - '@babel/generator@7.25.7': - dependencies: - '@babel/types': 7.25.8 - '@jridgewell/gen-mapping': 0.3.5 - '@jridgewell/trace-mapping': 0.3.25 - jsesc: 3.0.2 - - '@babel/helper-annotate-as-pure@7.25.7': - dependencies: - '@babel/types': 7.25.8 - - '@babel/helper-compilation-targets@7.25.7': - dependencies: - '@babel/compat-data': 7.25.7 - '@babel/helper-validator-option': 7.25.7 - browserslist: 4.24.0 - lru-cache: 5.1.1 - semver: 6.3.1 - - '@babel/helper-module-imports@7.25.7': - dependencies: - '@babel/traverse': 7.25.7 - '@babel/types': 7.25.8 - transitivePeerDependencies: - - supports-color - - '@babel/helper-module-transforms@7.25.7(@babel/core@7.25.8)': - dependencies: - '@babel/core': 7.25.8 - '@babel/helper-module-imports': 7.25.7 - '@babel/helper-simple-access': 7.25.7 - '@babel/helper-validator-identifier': 7.25.7 - '@babel/traverse': 7.25.7 - transitivePeerDependencies: - - supports-color - - '@babel/helper-plugin-utils@7.25.7': {} - - '@babel/helper-simple-access@7.25.7': - dependencies: - '@babel/traverse': 7.25.7 - '@babel/types': 7.25.8 - transitivePeerDependencies: - - supports-color - '@babel/helper-string-parser@7.25.7': {} '@babel/helper-validator-identifier@7.25.7': {} - '@babel/helper-validator-option@7.25.7': {} - - '@babel/helpers@7.25.7': - dependencies: - '@babel/template': 7.25.7 - '@babel/types': 7.25.8 - - '@babel/highlight@7.25.7': - dependencies: - '@babel/helper-validator-identifier': 7.25.7 - chalk: 2.4.2 - js-tokens: 4.0.0 - picocolors: 1.1.0 - - '@babel/parser@7.25.7': - dependencies: - '@babel/types': 7.25.8 - '@babel/parser@7.25.8': dependencies: '@babel/types': 7.25.8 - '@babel/plugin-syntax-jsx@7.25.7(@babel/core@7.25.8)': - dependencies: - '@babel/core': 7.25.8 - '@babel/helper-plugin-utils': 7.25.7 - - '@babel/plugin-transform-react-jsx@7.25.7(@babel/core@7.25.8)': - dependencies: - '@babel/core': 7.25.8 - '@babel/helper-annotate-as-pure': 7.25.7 - '@babel/helper-module-imports': 7.25.7 - '@babel/helper-plugin-utils': 7.25.7 - '@babel/plugin-syntax-jsx': 7.25.7(@babel/core@7.25.8) - '@babel/types': 7.25.8 - transitivePeerDependencies: - - supports-color - - '@babel/template@7.25.7': - dependencies: - '@babel/code-frame': 7.25.7 - '@babel/parser': 7.25.8 - '@babel/types': 7.25.8 - - '@babel/traverse@7.25.7': - dependencies: - '@babel/code-frame': 7.25.7 - '@babel/generator': 7.25.7 - '@babel/parser': 7.25.8 - '@babel/template': 7.25.7 - '@babel/types': 7.25.8 - debug: 4.3.7 - globals: 11.12.0 - transitivePeerDependencies: - - supports-color - '@babel/types@7.25.8': dependencies: '@babel/helper-string-parser': 7.25.7 @@ -2387,72 +2356,147 @@ snapshots: '@esbuild/aix-ppc64@0.21.5': optional: true + '@esbuild/aix-ppc64@0.24.2': + optional: true + '@esbuild/android-arm64@0.21.5': optional: true + '@esbuild/android-arm64@0.24.2': + optional: true + '@esbuild/android-arm@0.21.5': optional: true + '@esbuild/android-arm@0.24.2': + optional: true + '@esbuild/android-x64@0.21.5': optional: true + '@esbuild/android-x64@0.24.2': + optional: true + '@esbuild/darwin-arm64@0.21.5': optional: true + '@esbuild/darwin-arm64@0.24.2': + optional: true + '@esbuild/darwin-x64@0.21.5': optional: true + '@esbuild/darwin-x64@0.24.2': + optional: true + '@esbuild/freebsd-arm64@0.21.5': optional: true + '@esbuild/freebsd-arm64@0.24.2': + optional: true + '@esbuild/freebsd-x64@0.21.5': optional: true + '@esbuild/freebsd-x64@0.24.2': + optional: true + '@esbuild/linux-arm64@0.21.5': optional: true + '@esbuild/linux-arm64@0.24.2': + optional: true + '@esbuild/linux-arm@0.21.5': optional: true + '@esbuild/linux-arm@0.24.2': + optional: true + '@esbuild/linux-ia32@0.21.5': optional: true + '@esbuild/linux-ia32@0.24.2': + optional: true + '@esbuild/linux-loong64@0.21.5': optional: true + '@esbuild/linux-loong64@0.24.2': + optional: true + '@esbuild/linux-mips64el@0.21.5': optional: true + '@esbuild/linux-mips64el@0.24.2': + optional: true + '@esbuild/linux-ppc64@0.21.5': optional: true + '@esbuild/linux-ppc64@0.24.2': + optional: true + '@esbuild/linux-riscv64@0.21.5': optional: true + '@esbuild/linux-riscv64@0.24.2': + optional: true + '@esbuild/linux-s390x@0.21.5': optional: true + '@esbuild/linux-s390x@0.24.2': + optional: true + '@esbuild/linux-x64@0.21.5': optional: true + '@esbuild/linux-x64@0.24.2': + optional: true + + '@esbuild/netbsd-arm64@0.24.2': + optional: true + '@esbuild/netbsd-x64@0.21.5': optional: true + '@esbuild/netbsd-x64@0.24.2': + optional: true + + '@esbuild/openbsd-arm64@0.24.2': + optional: true + '@esbuild/openbsd-x64@0.21.5': optional: true + '@esbuild/openbsd-x64@0.24.2': + optional: true + '@esbuild/sunos-x64@0.21.5': optional: true + '@esbuild/sunos-x64@0.24.2': + optional: true + '@esbuild/win32-arm64@0.21.5': optional: true + '@esbuild/win32-arm64@0.24.2': + optional: true + '@esbuild/win32-ia32@0.21.5': optional: true + '@esbuild/win32-ia32@0.24.2': + optional: true + '@esbuild/win32-x64@0.21.5': optional: true + '@esbuild/win32-x64@0.24.2': + optional: true + '@img/sharp-darwin-arm64@0.33.5': optionalDependencies: '@img/sharp-libvips-darwin-arm64': 1.0.4 @@ -2571,11 +2615,11 @@ snapshots: '@pkgjs/parseargs@0.11.0': optional: true - '@rollup/pluginutils@5.1.2(rollup@4.24.0)': + '@rollup/pluginutils@5.1.4(rollup@4.24.0)': dependencies: '@types/estree': 1.0.6 estree-walker: 2.0.2 - picomatch: 2.3.1 + picomatch: 4.0.2 optionalDependencies: rollup: 4.24.0 @@ -2627,53 +2671,40 @@ snapshots: '@rollup/rollup-win32-x64-msvc@4.24.0': optional: true - '@shikijs/core@1.22.0': + '@shikijs/core@1.26.1': dependencies: - '@shikijs/engine-javascript': 1.22.0 - '@shikijs/engine-oniguruma': 1.22.0 - '@shikijs/types': 1.22.0 - '@shikijs/vscode-textmate': 9.3.0 + '@shikijs/engine-javascript': 1.26.1 + '@shikijs/engine-oniguruma': 1.26.1 + '@shikijs/types': 1.26.1 + '@shikijs/vscode-textmate': 10.0.1 '@types/hast': 3.0.4 - hast-util-to-html: 9.0.3 + hast-util-to-html: 9.0.4 - '@shikijs/engine-javascript@1.22.0': + '@shikijs/engine-javascript@1.26.1': dependencies: - '@shikijs/types': 1.22.0 - '@shikijs/vscode-textmate': 9.3.0 - oniguruma-to-js: 0.4.3 + '@shikijs/types': 1.26.1 + '@shikijs/vscode-textmate': 10.0.1 + oniguruma-to-es: 0.10.0 - '@shikijs/engine-oniguruma@1.22.0': + '@shikijs/engine-oniguruma@1.26.1': dependencies: - '@shikijs/types': 1.22.0 - '@shikijs/vscode-textmate': 9.3.0 + '@shikijs/types': 1.26.1 + '@shikijs/vscode-textmate': 10.0.1 - '@shikijs/types@1.22.0': + '@shikijs/langs@1.26.1': dependencies: - '@shikijs/vscode-textmate': 9.3.0 + '@shikijs/types': 1.26.1 + + '@shikijs/themes@1.26.1': + dependencies: + '@shikijs/types': 1.26.1 + + '@shikijs/types@1.26.1': + dependencies: + '@shikijs/vscode-textmate': 10.0.1 '@types/hast': 3.0.4 - '@shikijs/vscode-textmate@9.3.0': {} - - '@types/babel__core@7.20.5': - dependencies: - '@babel/parser': 7.25.7 - '@babel/types': 7.25.8 - '@types/babel__generator': 7.6.8 - '@types/babel__template': 7.4.4 - '@types/babel__traverse': 7.20.6 - - '@types/babel__generator@7.6.8': - dependencies: - '@babel/types': 7.25.8 - - '@types/babel__template@7.4.4': - dependencies: - '@babel/parser': 7.25.7 - '@babel/types': 7.25.8 - - '@types/babel__traverse@7.20.6': - dependencies: - '@babel/types': 7.25.8 + '@shikijs/vscode-textmate@10.0.1': {} '@types/cookie@0.6.0': {} @@ -2751,7 +2782,7 @@ snapshots: '@vscode/l10n@0.0.18': {} - acorn@8.12.1: {} + acorn@8.14.0: {} ajv@8.17.1: dependencies: @@ -2768,10 +2799,6 @@ snapshots: ansi-regex@6.1.0: {} - ansi-styles@3.2.1: - dependencies: - color-convert: 1.9.3 - ansi-styles@4.3.0: dependencies: color-convert: 2.0.1 @@ -2797,24 +2824,20 @@ snapshots: array-iterate@2.0.1: {} - astro@4.16.6(rollup@4.24.0)(typescript@5.6.2): + astro@5.1.2(jiti@1.21.6)(rollup@4.24.0)(typescript@5.6.2)(yaml@2.5.1): dependencies: '@astrojs/compiler': 2.10.3 - '@astrojs/internal-helpers': 0.4.1 - '@astrojs/markdown-remark': 5.3.0 - '@astrojs/telemetry': 3.1.0 - '@babel/core': 7.25.8 - '@babel/plugin-transform-react-jsx': 7.25.7(@babel/core@7.25.8) - '@babel/types': 7.25.8 + '@astrojs/internal-helpers': 0.4.2 + '@astrojs/markdown-remark': 6.0.1 + '@astrojs/telemetry': 3.2.0 '@oslojs/encoding': 1.1.0 - '@rollup/pluginutils': 5.1.2(rollup@4.24.0) - '@types/babel__core': 7.20.5 + '@rollup/pluginutils': 5.1.4(rollup@4.24.0) '@types/cookie': 0.6.0 - acorn: 8.12.1 + acorn: 8.14.0 aria-query: 5.3.2 axobject-query: 4.1.0 boxen: 8.0.1 - ci-info: 4.0.0 + ci-info: 4.1.0 clsx: 2.1.1 common-ancestor-path: 1.0.1 cookie: 0.7.2 @@ -2831,40 +2854,59 @@ snapshots: fast-glob: 3.3.2 flattie: 1.1.1 github-slugger: 2.0.0 - gray-matter: 4.0.3 html-escaper: 3.0.3 http-cache-semantics: 4.1.1 js-yaml: 4.1.0 kleur: 4.1.5 - magic-string: 0.30.12 + magic-string: 0.30.17 magicast: 0.3.5 micromatch: 4.0.8 mrmime: 2.0.0 neotraverse: 0.6.18 - ora: 8.1.0 p-limit: 6.1.0 p-queue: 8.0.1 preferred-pm: 4.0.0 prompts: 2.4.2 rehype: 13.0.2 semver: 7.6.3 - shiki: 1.22.0 - tinyexec: 0.3.0 + shiki: 1.26.1 + tinyexec: 0.3.2 tsconfck: 3.1.4(typescript@5.6.2) + ultrahtml: 1.5.3 unist-util-visit: 5.0.0 + unstorage: 1.14.4 vfile: 6.0.3 - vite: 5.4.9 - vitefu: 1.0.3(vite@5.4.9) + vite: 6.0.7(jiti@1.21.6)(yaml@2.5.1) + vitefu: 1.0.5(vite@6.0.7(jiti@1.21.6)(yaml@2.5.1)) which-pm: 3.0.0 - xxhash-wasm: 1.0.2 + xxhash-wasm: 1.1.0 yargs-parser: 21.1.1 + yocto-spinner: 0.1.2 zod: 3.23.8 - zod-to-json-schema: 3.23.3(zod@3.23.8) + zod-to-json-schema: 3.24.1(zod@3.23.8) zod-to-ts: 1.2.0(typescript@5.6.2)(zod@3.23.8) optionalDependencies: sharp: 0.33.5 transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@deno/kv' + - '@netlify/blobs' + - '@planetscale/database' - '@types/node' + - '@upstash/redis' + - '@vercel/blob' + - '@vercel/kv' + - aws4fetch + - db0 + - idb-keyval + - ioredis + - jiti - less - lightningcss - rollup @@ -2874,16 +2916,19 @@ snapshots: - sugarss - supports-color - terser + - tsx - typescript + - uploadthing + - yaml - autoprefixer@10.4.20(postcss@8.4.47): + autoprefixer@10.4.20(postcss@8.4.49): dependencies: browserslist: 4.24.0 caniuse-lite: 1.0.30001667 fraction.js: 4.3.7 normalize-range: 0.1.2 picocolors: 1.1.0 - postcss: 8.4.47 + postcss: 8.4.49 postcss-value-parser: 4.2.0 axobject-query@4.1.0: {} @@ -2930,12 +2975,6 @@ snapshots: ccount@2.0.1: {} - chalk@2.4.2: - dependencies: - ansi-styles: 3.2.1 - escape-string-regexp: 1.0.5 - supports-color: 5.5.0 - chalk@5.3.0: {} character-entities-html4@2.1.0: {} @@ -2960,16 +2999,10 @@ snapshots: dependencies: readdirp: 4.0.2 - ci-info@4.0.0: {} + ci-info@4.1.0: {} cli-boxes@3.0.0: {} - cli-cursor@5.0.0: - dependencies: - restore-cursor: 5.1.0 - - cli-spinners@2.9.2: {} - cliui@8.0.1: dependencies: string-width: 4.2.3 @@ -2978,16 +3011,10 @@ snapshots: clsx@2.1.1: {} - color-convert@1.9.3: - dependencies: - color-name: 1.1.3 - color-convert@2.0.1: dependencies: color-name: 1.1.4 - color-name@1.1.3: {} - color-name@1.1.4: {} color-string@1.9.1: @@ -3008,7 +3035,9 @@ snapshots: common-ancestor-path@1.0.1: {} - convert-source-map@2.0.0: {} + consola@3.3.3: {} + + cookie-es@1.2.2: {} cookie@0.7.2: {} @@ -3018,8 +3047,14 @@ snapshots: shebang-command: 2.0.0 which: 2.0.2 + crossws@0.3.1: + dependencies: + uncrypto: 0.1.3 + cssesc@3.0.0: {} + dayjs@1.11.13: {} + debug@4.3.7: dependencies: ms: 2.1.3 @@ -3028,8 +3063,12 @@ snapshots: dependencies: character-entities: 2.0.2 + defu@6.1.4: {} + dequal@2.0.3: {} + destr@2.0.3: {} + detect-libc@2.0.3: optional: true @@ -3060,6 +3099,8 @@ snapshots: '@emmetio/abbreviation': 2.3.3 '@emmetio/css-abbreviation': 2.1.8 + emoji-regex-xs@1.0.0: {} + emoji-regex@10.4.0: {} emoji-regex@8.0.0: {} @@ -3096,9 +3137,35 @@ snapshots: '@esbuild/win32-ia32': 0.21.5 '@esbuild/win32-x64': 0.21.5 - escalade@3.2.0: {} + esbuild@0.24.2: + optionalDependencies: + '@esbuild/aix-ppc64': 0.24.2 + '@esbuild/android-arm': 0.24.2 + '@esbuild/android-arm64': 0.24.2 + '@esbuild/android-x64': 0.24.2 + '@esbuild/darwin-arm64': 0.24.2 + '@esbuild/darwin-x64': 0.24.2 + '@esbuild/freebsd-arm64': 0.24.2 + '@esbuild/freebsd-x64': 0.24.2 + '@esbuild/linux-arm': 0.24.2 + '@esbuild/linux-arm64': 0.24.2 + '@esbuild/linux-ia32': 0.24.2 + '@esbuild/linux-loong64': 0.24.2 + '@esbuild/linux-mips64el': 0.24.2 + '@esbuild/linux-ppc64': 0.24.2 + '@esbuild/linux-riscv64': 0.24.2 + '@esbuild/linux-s390x': 0.24.2 + '@esbuild/linux-x64': 0.24.2 + '@esbuild/netbsd-arm64': 0.24.2 + '@esbuild/netbsd-x64': 0.24.2 + '@esbuild/openbsd-arm64': 0.24.2 + '@esbuild/openbsd-x64': 0.24.2 + '@esbuild/sunos-x64': 0.24.2 + '@esbuild/win32-arm64': 0.24.2 + '@esbuild/win32-ia32': 0.24.2 + '@esbuild/win32-x64': 0.24.2 - escape-string-regexp@1.0.5: {} + escalade@3.2.0: {} escape-string-regexp@5.0.0: {} @@ -3112,10 +3179,6 @@ snapshots: eventemitter3@5.0.1: {} - extend-shallow@2.0.1: - dependencies: - is-extendable: 0.1.1 - extend@3.0.2: {} fast-deep-equal@3.1.3: {} @@ -3164,8 +3227,6 @@ snapshots: function-bind@1.1.2: {} - gensync@1.0.0-beta.2: {} - get-caller-file@2.0.5: {} get-east-asian-width@1.2.0: {} @@ -3189,18 +3250,20 @@ snapshots: package-json-from-dist: 1.0.1 path-scurry: 1.11.1 - globals@11.12.0: {} - graceful-fs@4.2.11: {} - gray-matter@4.0.3: + h3@1.13.0: dependencies: - js-yaml: 3.14.1 - kind-of: 6.0.3 - section-matter: 1.0.0 - strip-bom-string: 1.0.0 - - has-flag@3.0.0: {} + cookie-es: 1.2.2 + crossws: 0.3.1 + defu: 6.1.4 + destr: 2.0.3 + iron-webcrypto: 1.2.1 + ohash: 1.1.4 + radix3: 1.1.2 + ufo: 1.5.4 + uncrypto: 0.1.3 + unenv: 1.10.0 hasown@2.0.2: dependencies: @@ -3264,6 +3327,20 @@ snapshots: stringify-entities: 4.0.4 zwitch: 2.0.4 + hast-util-to-html@9.0.4: + dependencies: + '@types/hast': 3.0.4 + '@types/unist': 3.0.3 + ccount: 2.0.1 + comma-separated-tokens: 2.0.3 + hast-util-whitespace: 3.0.0 + html-void-elements: 3.0.0 + mdast-util-to-hast: 13.2.0 + property-information: 6.5.0 + space-separated-tokens: 2.0.2 + stringify-entities: 4.0.4 + zwitch: 2.0.4 + hast-util-to-parse5@8.0.0: dependencies: '@types/hast': 3.0.4 @@ -3301,6 +3378,8 @@ snapshots: import-meta-resolve@4.1.0: {} + iron-webcrypto@1.2.1: {} + is-arrayish@0.3.2: optional: true @@ -3314,8 +3393,6 @@ snapshots: is-docker@3.0.0: {} - is-extendable@0.1.1: {} - is-extglob@2.1.1: {} is-fullwidth-code-point@3.0.0: {} @@ -3328,16 +3405,10 @@ snapshots: dependencies: is-docker: 3.0.0 - is-interactive@2.0.0: {} - is-number@7.0.0: {} is-plain-obj@4.1.0: {} - is-unicode-supported@1.3.0: {} - - is-unicode-supported@2.1.0: {} - is-wsl@3.1.0: dependencies: is-inside-container: 1.0.0 @@ -3352,8 +3423,6 @@ snapshots: jiti@1.21.6: {} - js-tokens@4.0.0: {} - js-yaml@3.14.1: dependencies: argparse: 1.0.10 @@ -3363,18 +3432,12 @@ snapshots: dependencies: argparse: 2.0.1 - jsesc@3.0.2: {} - json-schema-traverse@1.0.0: {} - json5@2.2.3: {} - jsonc-parser@2.3.1: {} jsonc-parser@3.3.1: {} - kind-of@6.0.3: {} - kleur@3.0.3: {} kleur@4.1.5: {} @@ -3398,26 +3461,17 @@ snapshots: lodash@4.17.21: {} - log-symbols@6.0.0: - dependencies: - chalk: 5.3.0 - is-unicode-supported: 1.3.0 - longest-streak@3.1.0: {} lru-cache@10.4.3: {} - lru-cache@5.1.1: - dependencies: - yallist: 3.1.1 - - magic-string@0.30.12: + magic-string@0.30.17: dependencies: '@jridgewell/sourcemap-codec': 1.5.0 magicast@0.3.5: dependencies: - '@babel/parser': 7.25.7 + '@babel/parser': 7.25.8 '@babel/types': 7.25.8 source-map-js: 1.2.1 @@ -3740,7 +3794,7 @@ snapshots: braces: 3.0.3 picomatch: 2.3.1 - mimic-function@5.0.1: {} + mime@3.0.0: {} minimatch@9.0.5: dependencies: @@ -3768,6 +3822,8 @@ snapshots: dependencies: '@types/nlcst': 2.0.3 + node-fetch-native@1.6.4: {} + node-releases@2.0.18: {} normalize-path@3.0.0: {} @@ -3778,25 +3834,19 @@ snapshots: object-hash@3.0.0: {} - onetime@7.0.0: + ofetch@1.4.1: dependencies: - mimic-function: 5.0.1 + destr: 2.0.3 + node-fetch-native: 1.6.4 + ufo: 1.5.4 - oniguruma-to-js@0.4.3: - dependencies: - regex: 4.3.3 + ohash@1.1.4: {} - ora@8.1.0: + oniguruma-to-es@0.10.0: dependencies: - chalk: 5.3.0 - cli-cursor: 5.0.0 - cli-spinners: 2.9.2 - is-interactive: 2.0.0 - is-unicode-supported: 2.1.0 - log-symbols: 6.0.0 - stdin-discarder: 0.2.2 - string-width: 7.2.0 - strip-ansi: 7.1.0 + emoji-regex-xs: 1.0.0 + regex: 5.1.1 + regex-recursion: 5.1.1 p-limit@2.3.0: dependencies: @@ -3847,10 +3897,16 @@ snapshots: lru-cache: 10.4.3 minipass: 7.1.2 + pathe@1.1.2: {} + picocolors@1.1.0: {} + picocolors@1.1.1: {} + picomatch@2.3.1: {} + picomatch@4.0.2: {} + pify@2.3.0: {} pify@4.0.1: {} @@ -3880,6 +3936,13 @@ snapshots: optionalDependencies: postcss: 8.4.47 + postcss-load-config@4.0.2(postcss@8.4.49): + dependencies: + lilconfig: 3.1.2 + yaml: 2.5.1 + optionalDependencies: + postcss: 8.4.49 + postcss-nested@6.2.0(postcss@8.4.47): dependencies: postcss: 8.4.47 @@ -3898,6 +3961,12 @@ snapshots: picocolors: 1.1.0 source-map-js: 1.2.1 + postcss@8.4.49: + dependencies: + nanoid: 3.3.7 + picocolors: 1.1.1 + source-map-js: 1.2.1 + preferred-pm@4.0.0: dependencies: find-up-simple: 1.0.0 @@ -3918,6 +3987,8 @@ snapshots: queue-microtask@1.2.3: {} + radix3@1.1.2: {} + read-cache@1.0.0: dependencies: pify: 2.3.0 @@ -3928,7 +3999,16 @@ snapshots: readdirp@4.0.2: {} - regex@4.3.3: {} + regex-recursion@5.1.1: + dependencies: + regex: 5.1.1 + regex-utilities: 2.3.0 + + regex-utilities@2.3.0: {} + + regex@5.1.1: + dependencies: + regex-utilities: 2.3.0 rehype-parse@9.0.1: dependencies: @@ -4010,11 +4090,6 @@ snapshots: path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 - restore-cursor@5.1.0: - dependencies: - onetime: 7.0.0 - signal-exit: 4.1.0 - retext-latin@4.0.0: dependencies: '@types/nlcst': 2.0.3 @@ -4068,13 +4143,6 @@ snapshots: dependencies: queue-microtask: 1.2.3 - section-matter@1.0.0: - dependencies: - extend-shallow: 2.0.1 - kind-of: 6.0.3 - - semver@6.3.1: {} - semver@7.6.3: {} sharp@0.33.5: @@ -4110,13 +4178,15 @@ snapshots: shebang-regex@3.0.0: {} - shiki@1.22.0: + shiki@1.26.1: dependencies: - '@shikijs/core': 1.22.0 - '@shikijs/engine-javascript': 1.22.0 - '@shikijs/engine-oniguruma': 1.22.0 - '@shikijs/types': 1.22.0 - '@shikijs/vscode-textmate': 9.3.0 + '@shikijs/core': 1.26.1 + '@shikijs/engine-javascript': 1.26.1 + '@shikijs/engine-oniguruma': 1.26.1 + '@shikijs/langs': 1.26.1 + '@shikijs/themes': 1.26.1 + '@shikijs/types': 1.26.1 + '@shikijs/vscode-textmate': 10.0.1 '@types/hast': 3.0.4 signal-exit@4.1.0: {} @@ -4134,8 +4204,6 @@ snapshots: sprintf-js@1.0.3: {} - stdin-discarder@0.2.2: {} - string-width@4.2.3: dependencies: emoji-regex: 8.0.0 @@ -4167,8 +4235,6 @@ snapshots: dependencies: ansi-regex: 6.1.0 - strip-bom-string@1.0.0: {} - strip-bom@3.0.0: {} sucrase@3.35.0: @@ -4181,10 +4247,6 @@ snapshots: pirates: 4.0.6 ts-interface-checker: 0.1.13 - supports-color@5.5.0: - dependencies: - has-flag: 3.0.0 - supports-preserve-symlinks-flag@1.0.0: {} tailwindcss@3.4.13: @@ -4222,7 +4284,7 @@ snapshots: dependencies: any-promise: 1.3.0 - tinyexec@0.3.0: {} + tinyexec@0.3.2: {} to-fast-properties@2.0.0: {} @@ -4253,6 +4315,20 @@ snapshots: typescript@5.6.2: {} + ufo@1.5.4: {} + + ultrahtml@1.5.3: {} + + uncrypto@0.1.3: {} + + unenv@1.10.0: + dependencies: + consola: 3.3.3 + defu: 6.1.4 + mime: 3.0.0 + node-fetch-native: 1.6.4 + pathe: 1.1.2 + unified@11.0.5: dependencies: '@types/unist': 3.0.3 @@ -4305,6 +4381,17 @@ snapshots: unist-util-is: 6.0.0 unist-util-visit-parents: 6.0.1 + unstorage@1.14.4: + dependencies: + anymatch: 3.1.3 + chokidar: 3.6.0 + destr: 2.0.3 + h3: 1.13.0 + lru-cache: 10.4.3 + node-fetch-native: 1.6.4 + ofetch: 1.4.1 + ufo: 1.5.4 + update-browserslist-db@1.1.1(browserslist@4.24.0): dependencies: browserslist: 4.24.0 @@ -4328,17 +4415,19 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.2 - vite@5.4.9: + vite@6.0.7(jiti@1.21.6)(yaml@2.5.1): dependencies: - esbuild: 0.21.5 - postcss: 8.4.47 + esbuild: 0.24.2 + postcss: 8.4.49 rollup: 4.24.0 optionalDependencies: fsevents: 2.3.3 + jiti: 1.21.6 + yaml: 2.5.1 - vitefu@1.0.3(vite@5.4.9): + vitefu@1.0.5(vite@6.0.7(jiti@1.21.6)(yaml@2.5.1)): optionalDependencies: - vite: 5.4.9 + vite: 6.0.7(jiti@1.21.6)(yaml@2.5.1) volar-service-css@0.0.61(@volar/language-service@2.4.5): dependencies: @@ -4485,12 +4574,10 @@ snapshots: string-width: 7.2.0 strip-ansi: 7.1.0 - xxhash-wasm@1.0.2: {} + xxhash-wasm@1.1.0: {} y18n@5.0.8: {} - yallist@3.1.1: {} - yaml-language-server@1.15.0: dependencies: ajv: 8.17.1 @@ -4524,7 +4611,13 @@ snapshots: yocto-queue@1.1.1: {} - zod-to-json-schema@3.23.3(zod@3.23.8): + yocto-spinner@0.1.2: + dependencies: + yoctocolors: 2.1.1 + + yoctocolors@2.1.1: {} + + zod-to-json-schema@3.24.1(zod@3.23.8): dependencies: zod: 3.23.8 diff --git a/src/content.config.ts b/src/content.config.ts new file mode 100644 index 0000000..1a23c7f --- /dev/null +++ b/src/content.config.ts @@ -0,0 +1,18 @@ +import { defineCollection, z } from "astro:content"; + +import { glob } from "astro/loaders"; + +const blog = defineCollection({ + loader: glob({ pattern: "**/*.md", base: "./src/data/blog" }), + schema: z.object({ + title: z.string(), + published: z.date(), + url: z.string(), + draft: z.boolean().optional(), + description: z.string().optional(), + tags: z.array(z.string()).optional(), + category: z.string().optional(), + }), +}); + +export const collections = { blog }; diff --git a/src/data/blog/2012-08-09-battle-of-business-vs-opensource.md b/src/data/blog/2012-08-09-battle-of-business-vs-opensource.md new file mode 100644 index 0000000..cf9ccf5 --- /dev/null +++ b/src/data/blog/2012-08-09-battle-of-business-vs-opensource.md @@ -0,0 +1,21 @@ +--- +title: Battle of Business vs OpenSource +description: Alright lately I have been getting overwhelmed with all the drama of the oldest argument in the world of internet technologies. So who should win? Big business or opensource projects? Well the answer is simple, THE ARE NOT AT WAR!!!! +tags: [OpenSim, Opinion] +published: 2012-08-09 +url: /2012/08/battle-of-business-vs-opensource/ +category: Archive +draft: false + +--- +Alright lately I have been getting overwhelmed with all the drama of the oldest argument in the world of internet technologies. So who should win? Big business or opensource projects? Well the answer is simple, THE ARE NOT AT WAR!!!! + +So let us start off with the ATTACK against an innocent content contribute to the opensim community. Linda Kellie, is a large fan girl of opensim, and that is all she is. She is just like everyone else who uses opensim, she just so happens to release all her stuff completely free on a website. She does this because she likes to see people use her stuff. She doesn't want any sort of credit, in fact all of her stuff is completely royalty free. The only reason people are upset with her is because she has influence in the opensim community, how? Because she just gives away stuff, that doesn't mean she is a representative of the opensim community. + +Linda Kellie is no more of a representative of the opensimulator community than I am. She just wants to login, play, and share stuff she creates. Hey, I do the same thing, but I am not a great builder so I provide opensimulator hosting at affordable costs. Yes she is now on a grid that doesn't have the greatest reputation, but I am going to go into that in the next segment of this blog. She didn't do all this for PR for their grid, she just logged in and fell in love with we what they are doing. I was there in the call when she stated she wanted to go back into making things for money, no one even said anything to her about it. She just decided to do it for SpotOn3D because she really likes it there, so why should we be mad at her for doing what she wants and enjoys. If people fallow her, it is THEIR choice, that is the thing that people need to realize, humans are likes herds of sheep. They go where they see others going, but you know what, they still have free will, if you are nervous they are dragging them away from your product DO SOMETHING BETTER TO ATTRACT ATTENTION DON'T BITCH AND BLAME IT ON SOMEONE ELSE!!!! + +Next onto the SpotOn3D, I am sick and tired of people upset with this grid obtaining patents on OpenSimulator. Hell did you know that most of your human body organs is patented by medical companies, I am not lying it is!!! Now, why I am not throwing a fit about all the patents they have. Well my answer is super simple: I MUCH RATHER HAVE SPOTON3D HAVE THE PATENTS THAN A COMPANY WHO IS SUE HAPPY LIKE WORLDS INC. I know Tessa from a while back, and well I am pretty sure she is not going to use these to stop opensource development? Why because she needs it too, just like any company using opensource. She has her grid upgraded with each opensim release, so honestly, yeah I don't think she is a threat, I think of her as a protector of the development since they are not contributing back code wise, but as long as she doesn't abuse the power of these patents she is protected the sourcecode from companies like Worlds Inc. + +Now onto SecondLife with its latest changes to the viewer, now I am upset like the rest of you. But we need to realize that, OPENSIM NEEDED TO BREAK AWAY, this is good in my opinion. This opens so many new doors, let us make our own changes viewer side as well as server side, we will no longer have to rely on mimicking SecondLife's new features to make our own versions of them. Let us start going a bit more original, come up with features that will be kinda like a slap in the face and make SecondLife really upset that they dropped us, by introducing features they haven't even thought of yet. I know we can do it, we are a strong and large community, so why don't we push to make it happen. + +Side not on viewers: I read that people are upset with Firestorm Team about the whole thing with them getting Armin and that they attacked the angstrom viewer dev. I was in the Aurora-Dev channel when it all went down, they were just upset and asked why the credits of firestorm were removed? They felt really upset that all their work would go un-credited. I would be sad and upset too, but it wasn't really an attack, but while they were there, I spoke with them and was able to show them how many people use their viewer on OSgrid thanks to key's blog. So yeah, just wanted to get that out there, GIVE CREDIT WHERE CREDIT IS DUE. diff --git a/src/data/blog/2012-12-31-new-years-resolutions.md b/src/data/blog/2012-12-31-new-years-resolutions.md new file mode 100644 index 0000000..6fc834d --- /dev/null +++ b/src/data/blog/2012-12-31-new-years-resolutions.md @@ -0,0 +1,19 @@ +--- +title: New Years Resolutions +description: It is that time of the year, when people start making New Year Resolutions. Well I have never really made any other than once for a class assignment. But this year I really think I need to make some real resolutions. So I thought I would post them here on my personal blog for everyone to read and be aware. +tags: [Personal] +published: 2012-12-31 +url: /2012/12/new-years-resolutions/ +category: Archive +draft: false + +--- +It is that time of the year, when people start making New Year Resolutions. Well I have never really made any other than once for a class assignment. But this year I really think I need to make some real resolutions. So I thought I would post them here on my personal blog for everyone to read and be aware. + +Focus on business, and put helping others second. Why because I keep helping others and putting myself in debt. Every time I build myself up, I end up falling back down again. So I need to keep my nose to the grindstone, and quit screwing myself over. But I am still going to help out my friends, just got to make sure I can first. + +Quit with procrastination. I get off track so much, mostly due to my ADHD, but I have to tighten down and make sure I stay focused and get my work done. Time is money, and money is not everything, but it pays the bills, and helps secure my future. + +Work on my relationship. I live in a very interesting relationship, I have two partners. We all live together, and we are all happy together. I know it sounds different, but we are happy and completely settled together. Working on year 3 of being together, and I just want to work on actually being there, because too often I was all busy, no play. So I am going to work on that a bit more this year. + +On the whole thing of focusing more on work, well I have already started some major work on the stuff I do for a living. Get ready for a big surprise, because I can't believe I am going to be doing this myself. \ No newline at end of file diff --git a/src/data/blog/2013-02-11-explaining-opensim-memory-usage.md b/src/data/blog/2013-02-11-explaining-opensim-memory-usage.md new file mode 100644 index 0000000..286624c --- /dev/null +++ b/src/data/blog/2013-02-11-explaining-opensim-memory-usage.md @@ -0,0 +1,41 @@ +--- +title: Explaining OpenSim Memory Usage +description: I have had a couple people ask me to show them some tips and show them how to conserve memory usage in OpenSim. So I am going to be using sim-on-a-stick for today's tips and tricks... +tags: [Resources, OpenSim] +published: 2013-02-11 +url: /2013/02/explaining-opensim-memory-usage/ +category: Archive +draft: false + +--- +I have had a couple people ask me to show them some tips and show them how to conserve memory usage in OpenSim. So I am going to be using sim-on-a-stick for today's tips and tricks. Now the reason for this is because now with sim-on-a-stick, we have the database running in MySQL which saves a bit of memory, and the fact it is already setup and ready to go out of the box.
+ +So out of the box starting everything up, I am now at 95mb of ram: + + + +This is an empty region with absolutely nothing on it. So lets go load an oar on it, and see what it levels out to be. I am going to be loading Linda Kellie's Tropical Oar. It has 1,445 prims on it and well, that is about the standard for one person who just plans on having a region to go and relax on. A place to call home, do small things, etc. you normally don't use more than 2-3k amount of prims. + + + +After loading the oar we are now at 166.2mb of ram so that is still pretty good. Now this is with no one on the region, so lets go and login to the region and walk around. See what happens simulator side. This is still the Tropical Oar. + + + +So I logged in and dressed up in the most prim clothing I have which is some rave gear I made a long time ago. You can see below, and I walked around a bit and open closed a few doors and stuff and we are still only topping out at about 169.0mb. So I figured that means like what 1-3mb per avatar on the region depending on scripts and prims, so not bad. But I am not done, we are going to load Linda Kellie's freebie mall #2 that has 23,620 prims which is about what I see most people top out at building wise. So let's go see what happens. + + + +Well after loading the oar and letting probably a thousand scripts load into the region, we are now at 798.0mb of ram usage. Then means that we are using quite a bit of ram, but most of that is scripts, and lets face it not that meany people are going to have THAT many scripts on their region, maybe 25k prims but not that many scripts. But this gives you an idea, if you are building a heavy scripted region and need that much it is best to run 1 region per simulator, and have about a gig per region. But that is just for big regions with tons and tons of scripts like Linda Kellie's freebie mall #2. Now lets see what happens when I turn off all the scripts. + + + +Wow same region, just with scripts turned off. Wow major difference huh, well see how much scripts impact sims, however you have to keep in mind that Freebie Mall #2 has about 6 scripts in almost all the furniture where there is tons of that, and several scripts in doors and other things. Way more than even a standard fully built up region, this is a store sim, tons of stuff. But we can see a region after all that 23,620 prims don't use much at all. + +Now I am not sure how many people know that you can hook more than one region per simulator instance, to add another region you just type create region Regions.ini and answer the questions like you did for the first region. So let's put up another region on this same instance while scripts are still disabled and load Linda Kellie's Country Cabin OAR. + + + +Alright so now we have 2 regions on the same instance, and we are still quite low on memory usage. Now I will say it is normally a good idea if you don't have hugely scripted regions to put more than one region on the same instance but I don't recommend more than 4 per instance, it is a good number to stop at in my opinion, unless you are doing mega regions, but that is another story for another day. + +I hope this has given you all some insight to hosting regions on your own servers, or rented servers or hosting from other companies to help you understand what is going on in the back ground. \ No newline at end of file diff --git a/src/data/blog/2013-02-13-thank-you.md b/src/data/blog/2013-02-13-thank-you.md new file mode 100644 index 0000000..d0d1571 --- /dev/null +++ b/src/data/blog/2013-02-13-thank-you.md @@ -0,0 +1,34 @@ +--- +title: Thank You +description: Thank You AuroraScape Community +tags: [AuroraSim] +published: 2013-02-13 +url: /2013/02/thank-you/ +category: Archive +draft: false + +--- +Thank You AuroraScape Community, + +In the short 13 days since our very rough start, we have already hit a number of 67 registered residents, 51 Regions, and an average concurrency of 5-9 people online at any time. This is something that really impresses me for us only being 13 days old. I don't think I could have been any happier with the results of the opening of AuroraScape. + + + +I am so excited, just logging in. I see this wonderful welcome area that has slowly been being filled with residents content. I would still love to see more resident's stuff here in world filling up these shops. But with working with everyone and seeing everything looking so clean and cut. + + + +All of Linda Kellie's collections of furries, zoomtada's, and human avatars available upon login so you can get rid of that ugly ruth body. I have to say I can't think of a single grid that I have seen so many furries in, I am completely being serious here, I have seen so many furries apart of this community here as well as humans. + + + +All our meetings currently being held around the fire in the Welcome area, it is quite cozy with all those pillows and many different custom sits and lays, put in by our very own resident Mia Destiny. Our first grid meeting we ran out of seating, this time was have added plenty more pillow for everyone! + + + +Lastly the part that makes me the happiest person ever, is seeing you guys calling this grid home. Putting up your house and moving in, this is what makes me the happiest person ever. I really hope to see more of you guys move in and call AuroraScape your home too. + +Thank you all so much for making AuroraScape a success, this is YOUR GRID, and I mean that. I have a Terms of Service, and require you to be 18+, but I do this because I want us to have a grid that we can make sure is going to be around for a long time to come. Remember that this grid will become what you make it. Remember that, as you all are the key components of this grid's success. + +Thank You with Love, +Timothy Francis Rogers \ No newline at end of file diff --git a/src/data/blog/2013-02-20-needing-rest.md b/src/data/blog/2013-02-20-needing-rest.md new file mode 100644 index 0000000..03bc07d --- /dev/null +++ b/src/data/blog/2013-02-20-needing-rest.md @@ -0,0 +1,17 @@ +--- +title: Needing Rest +description: It sure has been a long first 20 days, I can't believe how far all of us have come. Yes after the upgrade happened, we lost a nice chunk of regions, but I am sure we will be getting them back soon. All I can say is I am taking a few steps back for the next few days, from grid upgrades. +tags: [AuroraSim] +published: 2013-02-20 +url: /2013/02/needing-rest/ +category: Archive +draft: false + +--- +It sure has been a long first 20 days, I can't believe how far all of us have come. Yes after the upgrade happened, we lost a nice chunk of regions, but I am sure we will be getting them back soon. All I can say is I am taking a few steps back for the next few days, from grid upgrades. I will still be around, doing money cash outs, trouble shooting, and processing orders. I just need a break. + +I have been working so hard on the grid, that I got myself sick. I mean physically sick, but I am doing better now, I am just stepping back for a bit. It is really hard running this big grid's back end with just one other volunteer, I been drinking my weight in soda pop(not a coffee man). I tell you if it wasn't for Walmart brand dr. pepper, AuroraScape would suffer from it. + +Anyways, I have been working on my own regions recently on my personal account in world. Feel free to add me _Timothy Vyper_ I like having friends. I am also working on some other features for customers of my Zetamex service. Which helps me fund AuroraScape and my caffeine addiction. I am always working hard to make a better world for you, and from the recent response people be giving me, I think you all are loving it. + +I shall now retreat to my residence in AuroraScape, and continue to work on this castle for me and others to enjoy. I will see you all around, and I thank you all for your support. I will be back in full swing next week, so let us all relax and hang out together in world. \ No newline at end of file diff --git a/src/data/blog/2013-02-21-top-10-reasons-not-to-give-up-on-aurora-sim.md b/src/data/blog/2013-02-21-top-10-reasons-not-to-give-up-on-aurora-sim.md new file mode 100644 index 0000000..ebcb6f4 --- /dev/null +++ b/src/data/blog/2013-02-21-top-10-reasons-not-to-give-up-on-aurora-sim.md @@ -0,0 +1,33 @@ +--- +title: Top 10 Reasons Not To Give Up On Aurora-Sim +description: I am very sad to see so many people tell me that I should give up on Aurora-Sim, and that it is a waste. I think it is mostly been placed there because people remember its biggest tank, and the failure of Nova Grid. +tags: [AuroraSim] +published: 2013-02-21 +url: /2013/02/top-10-reasons-not-to-give-up-on-aurora-sim/ +category: Archive +draft: false + +--- +I am very sad to see so many people tell me that I should give up on Aurora-Sim, and that it is a waste. I think it is mostly been placed there because people remember its biggest tank, and the failure of Nova Grid. So I am going to show you the top 10 reasons why I think the metaverse should give it another shot, and get back to helping with its development. + +**Ready Out of the Box:** When you download the latest aurora-sim master code, and compile it. First time run, it has a built in fully functional WebUI, Fully Working Groups, Fully Working Profiles, Fully Working Search, and easy to use Region GUI. All of this is built into the code, all running for the core code. This all works even in standalone mode all out of the single Aurora.exe! + +**Stable Physics:** Physics in Aurora-Sim is amazing, it is the same engine that OpenSim has been using for a long time. However more hooks, and programming went into it, making it much more stable and react much more realistically. + +**No HelperURI Needed:** One of the biggest issues a lot of standalones and grids run into, is just selling land for free. This is because OpenSim requires a helperURI to process transactions. This however is no problem in Grid Mode or Standalone Mode, as the helperURI is built in. + +**Variable Regions:** You can have regions of any size, and without the parceling issues that Mega Regions suffer in OpenSim. This is because the regions are 1 solid complete full region, however you need to use a viewer which supports it. + +**Completely Free & Open:** The source code is complete free and opensource, meaning anyone can open it up, change it, improve it, and contribute it back to make it better for everyone. + +**Automated Backups:** We all know that it sucks how we get attacked, however Aurora-Sim is completely built in region backups. It can be configured to make backups and keep backups for customized to your liking. In fact, your regions are completely saved in your backups. + +**Less Resources Needed:** You can put double the prims on an Aurora-Sim region than you can on an OpenSim region using the same amount of ram. In fact the default prim count is 80,000 which is far more than anyone could ever use, or is it?. + +**Region WindLight:** With recently implemented region WindLight on SecondLife, Aurora-Sim has processed the code and has made it to where can set region WindLight from your viewer as you would in SecondLife. This avoids needing any special scripts, or modules for LightShare settings. + +**Multiple Attachments:** I know this is something that a lot of people crave, and well a lot of people sacrifice by moving to OpenSim. Being able to wear more than one attachment on the same point. You can wear more than one attachment on the same point in Aurora-Sim. + +**K.I.S.S.:** Aurora-Sim has been modified to be very simple to use, setup, and use. + +Now that I have said all that, you should definitely stop in and visit us at ~~aurorascape.com~~_(defunct)_ a completely free and open to connect grid. diff --git a/src/data/blog/2013-02-23-who-is-timothy-vyperhoxleyrogers.md b/src/data/blog/2013-02-23-who-is-timothy-vyperhoxleyrogers.md new file mode 100644 index 0000000..fb3be0d --- /dev/null +++ b/src/data/blog/2013-02-23-who-is-timothy-vyperhoxleyrogers.md @@ -0,0 +1,20 @@ +--- +title: Who Is Timothy Vyper/Hoxley/Rogers +description: I just keep reading all this stuff about all these other grids, and the people who have influences there. Now that I am a grid owner, been making myself know more and more over the past year with all the things I have started. Grid-Press, SoftPaw Estates, Zetamex, and my latest AuroraScape. +tags: [Personal] +published: 2013-02-23 +url: /2013/02/who-is-timothy-vyperhoxleyrogers/ +category: Archive +draft: false + +--- +I just keep reading all this stuff about all these other grids, and the people who have influences there. Now that I am a grid owner, been making myself know more and more over the past year with all the things I have started. Grid-Press, SoftPaw Estates, Zetamex, and my latest AuroraScape. I will admit I am not perfect, hell I never even went to college! Also another zinger for all you people, did you all know that I am only 20 years old? This year I turn 21, on April 28th. Which surprises a lot of people when I tell them all that, but I did take some college classes in High School, because my school was merged with the local college (due to budget cuts) and got 3 certification, that don't mean crap now. + + + + +That was a lot of information in one paragraph, well I am still wanting to clear up some damage I feel that has been done on the opensim/aurorasim community with BDSM people. Yes there are some people who are in BDSM that take it way to far, and that is just crazy when that happens. I know that it easy for some to be brain washed, that it is physically possible. I am not into the full BDSM but more the S&M part, and still there you have to be careful. I should know, being a sub myself. I just hate saying it, but not long after the osgrid thing started, I saw a lot of kinda like very short, and small responses like they had to post it. I mean if I like something I am going to say more than I like, thank you! at least a sentence or two. But that wasn't the only part it was also all the same with tiny changes to the text, but all the same like robots. + +I am on my personal account Timothy Vyper, on AuroraScape trying to start up a furry S&M community on Furry Mansion. I can't go into to much detail here, because well this is a PG blog, and want to play it safe. I believe I am already pushing the envelope by talking about BDSM on my blog. I just don't want people to think it is all bad, it provides an out let for people like me. There are people out there who have instinctive urges to do things, and as long as everyone is responsible and plays safe it is a good outlet. But then again I am one of the most open people I know, :p have two partners in RL that I live with and all. + +Anyways, that is all I had to say. \ No newline at end of file diff --git a/src/data/blog/2013-03-05-why-i-closed-aurorascape.md b/src/data/blog/2013-03-05-why-i-closed-aurorascape.md new file mode 100644 index 0000000..ab24d48 --- /dev/null +++ b/src/data/blog/2013-03-05-why-i-closed-aurorascape.md @@ -0,0 +1,22 @@ +--- +title: Why I Closed AuroraScape +description: I first want to thank everyone who was on AuroraScape, and I have to apologize to all of you. I know the life of AuroraScape was short but there are multiple reasons to this, and I mean no ill intent to the developers of Aurora by what I have to say in this blog. +tags: [AuroraSim] +published: 2013-03-05 +url: /2013/03/why-i-closed-aurorascape/ +category: Archive +draft: false + +--- +I first want to thank everyone who was on AuroraScape, and I have to apologize to all of you. I know the life of AuroraScape was short but there are multiple reasons to this, and I mean no ill intent to the developers of Aurora by what I have to say in this blog. Firstly, AuroraScape was doing pretty good. But that was how it looked on the outside, there were a lot of problems, things I just cannot work on as I am not a programmer. The software is very stable, very easy to use, and works out of the box. That I am not trying to fight with, but there was just too many people bitching about it. + +I know I shouldn't let people bitching about the software help me close the grid down, but it is not so simple. Many people were just not willing to even give AuroraScape a shot, and many people who joined began to drop out right away. The interest in Aurora-Sim was so limited, and one of the biggest reasons is because the lack of HyperGrid. There were people who literately said things like I will never support an open grid without hypergrid and that type of thing travels and makes other say it and more people see it. People were publicly bitching and complaining about the grid without even giving it a shot. We kept loosing people because of it. + +I did purchase extra hardware to make the grid successful, and now I am going to be using that extra hardware to run others grids and regions as I do already as Zetamex. I was trying so hard to run this grid, but running a grid that brings in virtually no profit at all is very hard. So I am focusing on grid and simulator hosting, stuff that makes money. I have no other job, this is my job, sitting in front of my computer and help the metaverse grow. AuroraScape was just not attracting any attention, it did for a while, and then people just dropped out. + +Working on AuroraScape, took a lot of focus from Zetamex, and Zetamex is filled with paying customers who are looking for top notch service. I have been running Zetamex/SoftPaw Estates for almost a year now, so I need to move my focus back to providing service. + +If people have less faith in me now because of this, I am sorry, but when you have to feed a family, pay rent, and etc. You have to make wise choices, and well the focus needed to be shifted back to Zetamex. + +Thank You, +Timothy Rogers diff --git a/src/data/blog/2013-03-11-closed-vs-open-really.md b/src/data/blog/2013-03-11-closed-vs-open-really.md new file mode 100644 index 0000000..3b7c81c --- /dev/null +++ b/src/data/blog/2013-03-11-closed-vs-open-really.md @@ -0,0 +1,32 @@ +--- +title: Closed vs Open? Really? +description: I am dealing with a lot of people getting stressed over the debate of if grids should all be open or at least have hypergrid open. I am just going to put this out there, there are tons of people who want everything free in life, and never want to pay for anything. +tags: [OpenSim] +published: 2013-03-11T12:03:00+00:00 +url: /2013/03/closed-vs-open-really/ +category: Archive +draft: false + +--- +I am dealing with a lot of people getting stressed over the debate of if grids should all be open or at least have hypergrid open. I am just going to put this out there, there are tons of people who want everything free in life, and never want to pay for anything. I am sorry but the world requires money for us to get things done. + +I have been hearing and seeing people damage grids reputations for charging for regions, making you pay for services and what not. Well honestly, you are paying them so they can turn around and use that money to do the following things: + +1. Pay the server costs (FYI, servers are not cheap, nor is the bandwidth costs normally used to operate them) +2. Their time, these people are managing your entire back end FOR YOU, they deserve your money if you're using thier services. + +What you need to see, the back end of things of how open and closed grids work. + +**Open Grids:** These grids run on sponsors, this means, companies, colleges, universities, and people donating. Perfect example, how many people know that when OSgrid was about to take the dive it was because "THEIR MAIN SPONSOR WAS DROPPING THEIR SUPPORT! they didn't have any other sponsors, or enough donations to keep it going. So SimHost came in and decided to become the new sponsor, and well I am not going to get into that drama, I am just saying that somewhere along the line "SERVERS GOTTA GET PAID, THE AIN'T FREE! + +**Closed Grids:** Why do these grids charge a bit more? Well it is actually the added security, the hands on support, you most likely have in world money investments, etc. These grids charge more because they have a bigger job to worry about. These guys are being PAID to fix your bugs, give your more direct support, manage RL money investment, people go to closed grids to make money. The backend of a grid like InWorldz, Avinations, etc have to be FAR more secure than your standard opensim grid. They gotta have firewalls, bugs fixed that allow you to steal items, etc. People have real investment in these grids. + +Now onto the people getting upset with others for wanting to make money in personal grids, well dammit these people have every right to do this. The reason many people go closed is because these grid owners take care of their content, it is much easier for InWorldz to dispute and catch a content thief than it is for a grid like OSgrid or Metropolis. Because they can look and see the whole backend, and yes I know thieves are in the real world and theft is always going to happen, but does that mean we should let it go. + +EXAMPLE: If we should let someone steal a complete line of clothing someone makes in InWorldz and Avination, and start giving it way for free on other grids. What do you think this does to their profits, their ability to make ends meet? then you might say "but that is virtual! well it is no different than going and robbing a Real Life clothing store, now they just went out several thousand dollars, gotta replace the door you broke, windows, clothes, etc. IT IS NOT RIGHT NO MATTER HOW SMALL THE CRIME!!! + +So to all the people getting upset with content creators who make things for both closed and open grids, DON'T YOU DARE GET MAD AT THEM. They are honest people trying to make a living, that is what the internet is, a ecosystem like RL. I place for people to have fun, mingle and do things for free, but also a place for people to make money too. I mean if you think someone is overcharging for something, go to the competitor and buy the cheaper one, don't steal it. You do that in RL you end up in Jail, just cause it is easier to get away with it online, do you think it is right? No! + +Grow up! This is reality, shut up or go home! Cause you know what? If you live in the USA, ISPs have a new contract to catch online thieves like you, so they just made it harder for you to get away with because no matter how you look at it, it is still THEFT! Let content creators put their content where they feel it is safe, just like in real life, a designer store is not going to setup in the ghetto, because chances are higher they are going to get robbed, some still do it and that is their choice, so let the content creator choose, don't demonize them for making the choose that makes them comfortable and not you. Grow up this isn't high school anymore! + +I am not hating open or closed grids, I believe each serves it's own purpose. I live in both open and closed grids, I feel both are comfortable places to live and be in. I do love all of you, and I hope you understand why I am so harsh in this blog, it is because it needs to be said, so I said it. \ No newline at end of file diff --git a/src/data/blog/2013-04-08-moving-up-around.md b/src/data/blog/2013-04-08-moving-up-around.md new file mode 100644 index 0000000..864a51b --- /dev/null +++ b/src/data/blog/2013-04-08-moving-up-around.md @@ -0,0 +1,22 @@ +--- +title: Moving Up & Around +description: It has been one hell of a past month, I have had to deal with a lot of drama in my real personal life. Sometimes I wish we could all just live in virtual worlds, but drama would just pile up their too... +tags: [Personal] +published: 2013-04-08 +url: /2013/04/moving-up-around/ +category: Archive +draft: false + +--- +It has been one hell of a past month, I have had to deal with a lot of drama in my real personal life. Sometimes I wish we could all just live in virtual worlds, but drama would just pile up their too... so what else is new on that. But besides that point, I have been doing some plotting and planning with Zetamex these past few days so going to be talking a bit about that in this blog. I am also going to gloat about my new boy friend, because I can tell you right now, without him this past month would have just been me crying my heart out. + +Up first is Zetamex, I am been doing some extensive research and testing into finding a way to provide cloud hosting to my customers. I been seeing that people really enjoy being able to control having the ability to render worlds on demand and have almost limitless possibilities. My boyfriend even turned to me and said something I don't think anyone is ready for, but I think I might know how to do it. Virtually Unlimited Prims, that is right, I will be calling it VU Prims and well they will scale depending on weights and what not but the limitation will just not be there. You will be able to build, and build, and build till you just can't move cause your viewer gone and locked up on ya. + +I am still looking into creating a way to give my customers the ability to have a control panel like other hosting companies, where you can upload OARs and IARs with just clicks on a web page. I have been getting a bit closer, but then upgraded to the latest version of opensim and well then shit broke... so starting all over again. I am thinking about going out and hiring someone to professionally build a control panel. I know that this is one of the biggest and most requested features I have been getting from people, so it is on my list. + +Now about why and how I have a new boy friend. Well because my life is an open book I am just going to tell you. Me and my ex who had been together for 2 years in real life, just grew distant from each other. We both realized we have different goals and things we want to achieve in life. I then ran into some issues where I was living and had to move out, so that has been a bit rough but everything is still fine. I made sure to have everything planned out and setup, downtime is not an option with Zetamex. I am dedicated to my clients. I ran into my new sweet foxy lover while I was doing my standard gaming I like to par-take in on SecondLife, it is like the only virtual world I can go to get away from work. Just something clicked, when we bumped into each other, it was like a light bulb went off and things have just been going good ever since. I have to say that is about it, we can't explain it we just fit together like to pieces of a jigsaw puzzle. Best of all he actually plans on coming with me to other virtual worlds with me! So all of you will get a chance to meet my wonderful boy friend. + +That is about it from me for this blog update, stay focused at Zetamex for some really awesome news with some brand new plans rolling out and new features. I tell you all this right now, I thank everyone in the OpenSim community for giving me this career without you guys, I don't believe I would have ever been able to do the things I do. We have virtual worlds because of you. You build everything, and make the developers want to keep going, and then make me want to keep going by providing you service at affordable pricing without fear of delayed customer support. You guys by just being in virtual worlds, have help me found my business and for that I thank you all! + +Thank You, +Timothy Francis Rogers \ No newline at end of file diff --git a/src/data/blog/2013-04-26-my-clocks-are-ticking.md b/src/data/blog/2013-04-26-my-clocks-are-ticking.md new file mode 100644 index 0000000..7b7518d --- /dev/null +++ b/src/data/blog/2013-04-26-my-clocks-are-ticking.md @@ -0,0 +1,23 @@ +--- +title: My Clocks Are Ticking +description: Well it has been a while since I have written on my personal blog again. However I have been feeling a little down lately and I think I need to write to pick up my spirits a bit again. +tags: [Personal] +published: 2013-04-26 +url: /2013/04/my-clocks-are-ticking/ +category: Archive +draft: false + +--- +Well it has been a while since I have written on my personal blog again. However I have been feeling a little down lately and I think I need to write to pick up my spirits a bit again. I just been going through a lot of feelings lately. I guess I should start from the top, which is well I am just so immersed in my work I feel I am loosing more and more touch with my real life. I mean not that is a bad thing, but I am getting to the point that I blow off my boyfriend. I already lost one boyfriend, that I had been with for 2 years, it wasn't only because I was so immersed in my work there were other reasons but this was part of it. + +I don't plan on getting out of virtual worlds, it is how I make my living and what I enjoy doing. But I have gotten to the point that I can't even login to enjoy things, I am always busy working in the background not really getting the chance to enjoy myself. I work so hard and don't get to enjoy what I have made other than the money, which is in and out of my hands as quickly as it gets there. I mean I make a living, and I am not in this for the money so don't get me wrong here. I am just saying all this because I am coming up on my 21st birthday here in just a few days. I mean literately this coming Sunday is my 21st birthday. + +I can't say I don't enjoy what I do for a living, in fact I bet many people would kill to have a job where they could work from home. But just a heads up, it is not as all nice and pretty as you might think! I mean it, am flooded with requests for support, service, and inquires all day long. I just recently switched to a ticket system because my email box was becoming a mess! I wasn't able to keep up with who I have and haven't spoken with. I mean it is not an easy job, and it is not a 9 to 5 job either. I am on call 24/7 because many people don't want their grid, standalone, or region to be down longer than a few minutes let alone hours. My phone is always on and loud alerting me if someone sends me a ticket so I can wake up and come fix it. + +Why am I venting about all this is because I really found someone I truly care about, and I want to be with them. He is someone who doesn't get upset with me when I just randomly hang up on him or close out of a world with him to go help a client that is upset. He claims he understands and says work is first, but I feel so bad about it though. I say that because he is someone I care about, and much like a business a relationship has to be two people working together too. But a relationship we work for each others happiness and not me for just the client's happiness. Now do not worry I am not going anywhere, but I am working on finishing up some work so all my clients don't have to worry about so much stuff anymore. + +Another thing that has been bothering me is that I took so many writing classes in school, even took a creative writing class. That creative writing class I wasn't supposed to get into it because I wasn't an honors English student but my creative poetry and short stories got me in. I mean it made me so happy when I made it, but then half way through I had to quit because real life got really crazy for me, and well that is another story for another day. But the fact I used to be so passionate about writing and now look at me I am stressing, working hard, and pushing my real life away because of my work. However all this may be, I am going to try and push for that balance back in my life. But still keeping my work top priority because well it is my baby, and I am not letting that tank. + +I love and thank all of you who help me out each and every day, the ones who thank me for what I try and do for the community. If you knew half the shit I go through in real life to keep you guys all up and happy you guys might think I am crazy, but who knows maybe I am. + +Love you all! \ No newline at end of file diff --git a/src/data/blog/2013-06-19-upset-with-stiffled-innovation.md b/src/data/blog/2013-06-19-upset-with-stiffled-innovation.md new file mode 100644 index 0000000..929504a --- /dev/null +++ b/src/data/blog/2013-06-19-upset-with-stiffled-innovation.md @@ -0,0 +1,23 @@ +--- +title: Upset With Stiffled Innovation +description: I am constantly hearing about all these people stiffing innovation, well today I had the last straw I could take. Before I begin, I want to make sure say this boldly and clearly. +tags: [OpenSim] +published: 2013-06-19 +url: /2013/06/upset-with-stiffled-innovation/ +category: Archive +draft: false + +--- +I am constantly hearing about all these people stiffing innovation, well today I had the last straw I could take. Before I begin, I want to make sure say this boldly and clearly. **I do not directly represent Zetamex's personal interests, Zetamex represents it's own identity at http://blog.zetamex.com/ and anything said on this blog is unrelated to Zetamex's personal interests.** Now that I got that out of the way, I want to tell you how I was rudely addressed for the last time. + +As some of you may know, I have been promoting Zetamex's latest project that has been being worked on for months now. It is finally done, and released, Metajabber. This is a social network/forum hybrid. This software it runs on pulls your twitter, lets you fallow and do statuses and have your own user galleries to share photos and more with other fellow OpenSim goers. Now I know that forums for some people are a dying nature, however for others they are still a great place for support, community, and hanging out. I mean I personally prefer forums over social networks, they get confusing. Forums I can go right down to the post, but I wanted the features you get out of social networks and merge them together. That is what Metajabber is, anyways I am getting off topic here. + +I was informed by an administrator of a large group on Google+ that I did not directly ask her permission to promote on her group. That being said, they deleted my post, and said though I didn't directly violate it, they regret to tell me they deleted my post because it is competition to their group. I feel like this goes back to exactly what we keep fighting all the time, and it bothers me when people stifle innovation. If something is going to tank, and it is not spamming, why not let it be. + +I feel a good example here is Zetamex, which has just released an amazing product that the big companies been keeping from all of your! Heck I couldn't even get anyone to directly work with me on creating a panel unless I paid them upfront, and well lets face it, I am not rich. I run Zetamex at a profitable company, with FAIR pricing, which means I make just enough to live and buy a few tiny small things like a nice 80usd prepaid phone, because the monthly bill is cheaper pre-paid. Now, that being said where I am getting off topic again. Zetamex is NOT keeping out panel CLOSED SOURCE, not saying it is PROPRIETARY! We are releasing it 100% OPEN SOURCE 100% FREE and yes it will be on GitHub where anyone is 100% FREE to fork it and will be released as promised under PUBLIC DOMAIN, for anyone to use and play with or use to COMPETE with us. Why? WE PROMOTE COMPETITION!! + +My father always told me growing up, there is nothing wrong with competition. That we can learn from competition, if it grows or if it fails, we learn and grow and adapt. Yes people make take and abuse what we have created to use it for their own personal uses and go close the source of their derivative and sell it for tons of money. But you know what? Karma is real, and I am not saying it is bad to go and build a business off of our free public domain stuff. I want people to grow, add, create, and make more of this. I mean look at SecondLife, a lot of people go EWW that big evil giant. Well before the new CEO, they gave us OpenSim working with IBM. Why? Because we make something, free and for the community, see tons of us like it in our community, take it back change it a bit, BOOM! Free ideas to learn and grow from, and we do the same from them too. + +LightShare is a great example of all of this, it was made by Meta7 then the phoenix team made parcel windlight with little viewer code, then SecondLife finally saw we all loved being able to set these user experiences so they made "Region Windlight Settings" which is their new default in all their viewers instead of time based worlds. I feel sharing code is what makes the world go round, makes things keep ticking, create new ideas, and innovation can only occur by people sharing. + +To conclude, yes Zetamex has our own version of our control panel. But the only differences are, that is custom wrapped for our servers, but we are still giving you the same thing we have, just completely free to do what you want with. It doesn't have a few features we have, that is only because we can't setup your server for you, so we have to make it to where you can just use it with any OS and more. \ No newline at end of file diff --git a/src/data/blog/2013-08-12-depression.md b/src/data/blog/2013-08-12-depression.md new file mode 100644 index 0000000..1d4cfa5 --- /dev/null +++ b/src/data/blog/2013-08-12-depression.md @@ -0,0 +1,21 @@ +--- +title: Depression +description: Well I never thought the day would come when I would say that I feel depressed with my work, well I been this way quite a bit lately. Work is getting harder and harder to keep up with lately, not due to being over extended, just that Zetamex seems to be falling behind lately. +tags: [Personal] +published: 2013-08-12 +url: /2013/08/depression/ +category: Archive +draft: false + +--- +Well I never thought the day would come when I would say that I feel depressed with my work, well I been this way quite a bit lately. Work is getting harder and harder to keep up with lately, not due to being over extended, just that Zetamex seems to be falling behind lately. + +I try my absolute hardest to provide the latest and greatest opensim features, code, and even give back as much as I can. But it just seems that I have started to hit a road block. Which has just made me keep pushing and pushing harder, but it doesn't seem to be budging at all. I mean Zetaworlds is delayed because I am just to finish the new ZetaPanel 2.0 which is very complex piece of work. I am the only developer of it, and it so hard to put together since I am not even a real programmer. + +I been trying really hard lately to get Zetamex looked at as a top player, but the only thing that I know is stopping me is that I am not a real programmer. I can write some messy code, that can do things and work, but by no means am I as good as the Snoopy of DreamlandMetaverse or the team behind Kitely, or even that of open grids like Metropolis. That is why when I make code, I opensource it, allow people to take develop and make it better so Zetamex can benefit as well as the rest of the community. + +I guess I am just depressed lately because I really don't know how well this is going to work. I mean Zetaworlds is a big project, and so is ZetaPanel 2.0 which is due to go public and opensource. I just know that I put 110% into everything I do and I am still hitting the peak of my knowledge and having to crack out books, online tutorials, call in favors, just to finish these projects. I just wish I knew how to program like the rest of my competition, then maybe I could offer some good services that are better than they are now. + +I am just a 21 year old man, who has had a rough life. I decided after getting fired from my part time job to create a company in the opensimulator business, and now here I am. I know Zetamex has come a long way, heck it is even 3 years old. So that all being said, I know I shouldn't be depressed, but it is really hard running a business with just one person behind the scenes. I mean we have people who come in and help here and there, but it is all me who actually operates the entire operation. + +Well that is all I guess, back to work on ZetaPanel 2.0 which needs to get finished. So going to go pull out my books on PHP and MySQL to finish this off, wish me luck you guys. I will be giving away its source code when I am finished, so hopefully everyone will enjoy it. \ No newline at end of file diff --git a/src/data/blog/2013-09-02-my-response-to-kitely-marketplace.md b/src/data/blog/2013-09-02-my-response-to-kitely-marketplace.md new file mode 100644 index 0000000..206afbb --- /dev/null +++ b/src/data/blog/2013-09-02-my-response-to-kitely-marketplace.md @@ -0,0 +1,41 @@ +--- +title: My Response To Kitely Marketplace +description: Alright I know right now everyone has been all over this we need to embrace the Kitely Marketplace thing for a while now. However that being said, I want to take to the side and take some notes at some... +tags: [OpenSim, Opinion] +published: 2013-09-02 +url: /2013/09/my-response-to-kitely-marketplace/ +category: Archive +draft: false + +--- +Alright I know right now everyone has been all over this we need to embrace the Kitely Marketplace thing for a while now. However that being said, I want to take to the side and take some notes at some of the advantages and disadvantages of operating business in virtual worlds like this. The insecurities, the profitability, and the over all feeling I take from the whole ordeal. + +So first off let me start off by saying, I might come off a little bias when it comes to Kitely. As I particularly don't like how they operate, but as an American citizen I have all the right in the world to hold any opinion I wish to. That being said I will do my absolute best to keep my bias out of this and focus on what people are saying, and wanting to know, compounding it with what we are getting from Kitely operators and snippets. + +**Why should I use the Kitely Marketplace?** + +Why you should – As a content creator seeking to make profit or just get your item sold across the massive metaverse, this is one of your big chances to do so as it has a lot of attention and has the biggest potential to provide you with the ability to sell to virtually any grid. + +Why you shouldn't – If you are a merchant who cares about the security of your items then this may not be the best solution, but still a decent solution. If you allow your creations to be set as exportable, that means once you are in a new grid, or move it to any grid you or someone else you don't know has access to, that item can now be downloaded, exported again, loaded up and changed owner and permission then given back out 1,000,000 of times. Something that should be explained in BOLD detail to anyone who enables such option. + +**Doesn't this kill stores and malls from getting rented out in other grids?** + +To answer that question, it does, 100% same story as everyone had when the SecondLife Marketplace came into existance so long ago. Its echo's are still there, I can't tell you have many content creators I talk to in world who tell me they don't even bother with renting shops anymore as it is just a waste of profits as they don't bring in as much as the web store does. + +When you talk to mall owners, sim rental companies, and club owners with shops in SecondLife the biggest thing you hear from them is how they now rely more on donations and residential living on their regions as no one really wants to keep in world stores anymore. Now not all inworld stores are gone, but a large majority have left little to no presence in world anymore. + +You might be asking why I brought up SecondLife, well get ready everyone because I know a lot of you are going to hate what I am about to say, but we are now hitting that point where we are becoming SecondLife like in business and life in OpenSim. More and more grids are popping up as commercial grids, only real free grid left standing that focuses on users and has a large support base is Metropolis. The reason I leave OS Grid out is due to it is a testing grid, but it is still a good grid but primarily for testing purposes. + +This issue goes deeper, I read that they are going to give grids commissions on items sold and sent to their grid, which honestly helps, but is more of a consolation prize if you ask me, as a small 5-10% of a 2 or 5 dollar sell is 0.02 or 0.05 per sell. Meaning the grids who loose the store sims will loose profit, on top of that, region owners that run malls will loose profit, and then may drop their sim and cause even more loss for grids. + +**So are you saying the Kitely Marketplace is a bad thing?** + +Yes and no, I mean if you want to get technical this innovation is a step into the future and should be fallowed by others. I think this method in particular is not the right way to go about doing it as it cheats land owners, and grid owners, and only profits Kitely and the content creator. That is not all bad, it is also something that I see as creating a major fix for several educational users, and grid owners who just can't get content in their world themselves. + +When I say not the right way, I can just think of a couple ways off the top of my head to allow residents to not have to register with foreign grids, and still sell across and keep the permissions, and creator information all the same even over the hypergrid. Just would require a little bit of effort and a neutral party to host a small hypergrid port location. All I am saying for now because I will explain it further on a later date. + +**Overall Opinion?** + +Well you are asking me something pretty tough now, and to be honest I normally would not want to respond the way I am about too. But I think it is a great step in the right direct, me personally I stick to shopping in stores, I do the same thing in SecondLife still. I can't stand the marketplace, it is so over crowded, hard to find exactly what you want, and SecondLife the marketplace seems to crash several times a day, so much easier to go in world, look at everything, then go home. + +So if you are an enterprise user, and a content creator who embraces the openness and don't care about the security of your content being exported to foreign grids, then this is great for you! Though personally I would just setup my own standalone store and sell from there and just have people come to my store pick stuff up and leave. \ No newline at end of file diff --git a/src/data/blog/2013-09-19-i-apologzie-to-kitely-dont-be-fooled.md b/src/data/blog/2013-09-19-i-apologzie-to-kitely-dont-be-fooled.md new file mode 100644 index 0000000..1129782 --- /dev/null +++ b/src/data/blog/2013-09-19-i-apologzie-to-kitely-dont-be-fooled.md @@ -0,0 +1,28 @@ +--- +title: I Apologzie to Kitely & Don’t Be Fooled +description: I want to start out this by saying I am only human, hell I know I make more mistakes than most people I know. I admit this and never claim to be perfect, and I most certainly will not say I know what I am doing unless I do. +tags: [Opinion, OpenSim] +published: 2013-09-19 +url: /2013/09/i-apologzie-to-kitely-dont-be-fooled/ +category: Archive + +--- +I want to start out this by saying I am only human, hell I know I make more mistakes than most people I know. I admit this and never claim to be perfect, and I most certainly will not say I know what I am doing unless I do. I am human, and I do get limits pushed and get upset just like everyone else in the world. What I am referencing to is comments I have deleted on the Kitely blog. + +I was being scrutinized just because I stated I never experienced an issue that others were talking about, and then TOLD to PROVE how I fixed it or at least how it was worded sounds. I fixed it completely by accident when I was playing with merging aurora-sim and opensim code. I will not share my code as it is a complete mess, and not even I think it is worth contributing back. I have stated a million times over on my blog that I AM NOT A REAL PROGRAMMER, I NEVER WENT TO COLLEGE FOR IT, I ONLY TOOK CLASSES IN BUSINESS AND ADMINISTRATION. What I do is very messy in C#, but I am getting better as I teach myself. The languages I know are PHP and MySQL so that is more my area of expertise, but even there I never went to college for those, I just worked for companies that managed those types of environments and picked up on it. + +I honestly think grids are getting super defensive about their products, which I think is fine to an extent but honestly it is not a big deal. I don’t just see it with Kitely but other grids I am not going to name them, but if you say something about something they did they will get all snappy at you. It is ridiculous. You can ask some of my clients, before they sign up with me I explain to them what my products are, I have even turned clients away and pointed them to Dreamland Metaverse, because I know I cannot meet their needs but I know that Dreamland has a more developed system and the people behind it are actually programmers. I mean if you even look at our site, we state right on our front page since day one use the back in time machine if you don’t believe me “We never take on a client we cannot handle.” That is not to say Zetamex is a sub-par company, we have made some MAJOR improvements over the past few months alone. Something I am going to get into the next paragraph here. + +One thing that aggravates me and this is as a person not a company. But when companies tell you, “well opensim doesn’t scale well and it needs several gigs of ram, bigger pipes, etc etc etc” well I am going to tell you right now. That is 95% FALSE, well it is 5% true that it does need more than a piece of junk system to do awesome production things, but it doesn’t need no super over powered system, that doesn’t solve the problem that just ignores the problem of slimming up opensim to run more efficiently. The first thing I am going to do here is show you examples of grids not naming their names, but I will name them names that maybe some people will be able to piece them together, if not well then not. Because I speak to TONS of grid owners and I can assure you they run successful grids without any fancy hardware and networks. + +Old And Still Kicking Grid – The owners of this grid have been around for what seems like forever, they even took part in helping back when Linden Labs was still working on OpenSim. They still rely on opensim’s built in MySQL assets server, yes they broke it off in its own instance (which I highly recommend for grids to do, and will show you on zadaroo later this week) and I can almost bet they have more assets in that grid than any grid, because the opensim asset server doesn’t de-duplicate and it is still ticking away and running. They just shove more hard drive space in when they need more space, which works great for them, and host all their servers in house same data center to keep the need to server assets across the web un-needed for the most part by turning on built in region asset caching to take load off the asset server. + +Grid From Home – There is a very big and popular grid that has been gaining a lot of attention lately. In fact I am not positive they still run from home, but they might, and they use base opensim services with slight modifications. The owner is a programmer and has made special advancements to do assets a lot quicker and safer. But the fact is this grid for the longest time runs from home on a business grade connection, and still functions amazingly. You wouldn’t even know if they didn’t tell you. + +OSgrid (this one I can say it is publicly known) – Osgrid has been around for the longest time, and they for the longest time have ran all their services on the same server, with separate servers for regions. I am not sure if it more divided now than it used to be, but they use opensim’s base core and SRAS with a NIGNX Proxy server in front. Let me explain what that means they run multiple robust instances of different services (which it is meant and can very well do), then use NIGNX (a super light powerful webserver) to then load balance incoming requests to the different robust instances to keep things running smoothly. Honestly this is a very ingenious way to load balance, and save tons of money as NIGNX is 100% and opensource. + +As far as hosting regions go, if you read my tutorial before showing how much ram, cpu, and impact regions have on a system on both window and Linux you will see a simulator can run really well with just 1gb of ram which mean I would say, kind of pushing it but maybe 4 regions on one instance safely that has only 1gb of ram. So honestly, don’t believe when someone tells you that you need to have BEAST to run a world. You only need a BEAST system if you’re going to be putting hundreds of people on regions, and even then the software itself can’t support that yet, it needs more work but we are getting there. There are modules though that make it possible to have several people on regions, but that is a work around and not in the base code yet. + +Am I trying to put down Kitely or other grids? ABSOLUTELY NOT! What I am trying to do is just express my opinion as a person who knows what I am talking about. Let me tell you right now Kitely is an amazing invention; they have created one of the best work around for getting around the issues opensim has when it has a lot of prims and people on it by using cloud to affordably provide regions temporarily run when they are needed. This really is amazing, plus automating region creation that is something I don’t see every day done successfully, and they have done it. They do contribute a lot of code back, not saying they haven’t. I just don’t like that they flash that opensim can’t scale, when it can with just the little of effort. + +I do publically apologize for the comment I made about the attachment fix, I miss read the mantis. I also want to point out that it was my fault and I let my anger of Illan’s attitude towards me effect my calm. That was bad of me, and I apologize for that. That is honestly what I want to say, this is the same issue viewer developers are having right now in SecondLife. They can’t work together, because everyone keeps saying he is better or she is better, and many of the developers just want it to stop. Just like the viewer developers, grid owners are the same. We all run worlds for different reasons, for different people, for different communities. But it should not be a competition, especially with hypergrid, there is now need for it anymore. I know it is like asking for world peace here, but we should all work together where we can, and respect grids choices to keep some code to themselves and what to give back. That is their right, as it is their code, but people need to respect that right. I mean if I spent months working on something for a grid, and then asked to port it into opensim, that gives me a tactical advantage over the others, I might and I might not, it all depends. I mean we all got to eat, and many of us, like myself it is my sole job to run Zetamex, it is my sole source of income. I will do my best to submit back as much code as I can, but most of my changes are not things that would improve most users experiences, like Display Names, I been told not to even bother finishing my merge of it because no one wants it. But I did so since they don’t I might just push it out for someone else to use in its own repo. Again I am not a developer so it might not even be accepted in, in the first place. \ No newline at end of file diff --git a/src/data/blog/2013-11-03-why-i-dont-use-the-cloud.md b/src/data/blog/2013-11-03-why-i-dont-use-the-cloud.md new file mode 100644 index 0000000..3d207e0 --- /dev/null +++ b/src/data/blog/2013-11-03-why-i-dont-use-the-cloud.md @@ -0,0 +1,51 @@ +--- +title: Why I Don’t Use The Cloud +description: I have been asked a couple times why I don't want to build Zetamex off the cloud, and well the biggest answer is that the cloud is not really right for the old fashioned and classic usage of opensimulator. +tags: [OpenSim, Opinion] +published: 2013-11-03 +url: /2013/11/why-i-dont-use-the-cloud/ +category: Archive +draft: false + +--- +I have been asked a couple times why I don't want to build Zetamex off the cloud, and well the biggest answer is that the cloud is not really right for the old fashioned and classic usage of opensimulator. The second reason is that it is much more cost efficient to avoid using the cloud, and using dedicated hardware. + +So to break this down, I went in search of numbers and these numbers may differ for some people, but this is based off Zetamex's usage statistics of our clients averaged out. So this should give you an idea of the difference. + +So to start out we are going to just study how much it would cost to run one instance of opensimulator with your average usage which is about 1 to 1.5 gb of ram. That with mysql, mono, and operating system we are going to say on average 15-25 gb of disk space. + +With Amazon Web Services, you have the following pricing for the small instance with is 1.5 gb of ram which is perfect for our demonstration. + +Small Instance ... $0.060 which is about $43.20/month + +Then we need to calculate EBS storage cost, and disk usage costs with amazon. That is about roughly another $4 to $6/month. + +Then we have to calculate the bandwidth charges, that turns into about $2 to $3/month. + +So all together that is about $48.20 per instance per month, if you ran it all month long. Now if we took advantage of the market price which does change and flux every 5 minutes, but using the average market price would be about $12.20 per instance per month. But market pricing is not accurate and your instance gets lower priority, as it is service not being used at the moment so they rent it out cheaper at market based pricing. + +So now let us look at a common server, and since we are only wanting to do for this sake of argument 1 instance just like the one above, since it is not common to find a server with less than 4gb of ram on the market. We are going to go with the average dedicated server price for 4gb ram and 1tb disk-space and 1tb of bandwidth. That is about 40 usd, now that is about enough to fit 3-4 instances, and plenty of space. + +So now we just put the instance on there, and well... now we are done. 40 bucks... plus add 3 more... still 40 bucks. + +Scaling, is the next thing people are going to bring up, and while people believe the cloud is the easiest place to scale, well I disagree. I am going to be using the technology I am been working with Postgres but this can also be done working with MySQL instead of Postgres. + +We can do what is called pooling, and load balancing, so unlike MySQL, Postgres uses less overhead even on heavy usage as it is designed for Enterprise class data. We take advantage of the earlier spoke about 1TB storage and let's add 10 bucks more for RAID storage so if one drive fails we have a secondary drive so acts like nothing ever happened. So now 50 bucks, and that can take a very big hit, but then we realize that we want assets to be more robust and faster for people across the world, in other geographical locations, we can just order another 50 buck server with the 1TB of storage and setup a pool. + +What a pool will do is clone all the data and keep it synchronized between both locations, and on top of that can both load balance and/or query together to find data quicker. Then the worry of growing storage cost is not so much of a problem as most people think, especially with NAS(Network Accessed Storage) to expand the size storage. Postgres can allow us to do this and on top of that, we can start telling Postgres to cache assets that are used more often than others because we know NAS is a bit slower than locally stored data but if it is cached and on hand it is not a problem. + +So total estimated cost of up to say 2 TB of storage in 2 locations pooling, is only about 175usd/month + +Now let's look at the cloud, and say we use one small instance on EC2 to mount S3 as a drive so that we don't have to pay the higher EBS storage costs. That is 0.095/per gb per month so that is not to awful bad, seems pretty cheap. but then we got to keep in mind we need a instance that has a bit more power than the small so lets go with the medium which lets say since you know your going to use a lot of data going to go with a reserved instance for cheaper price to 227 deposit that cost would be $30.24/month still not to bad if your willing to make that deposit, if not $86.40/month for standard instance. But let's not forget you need two of those instances, so we can play fair and give the same results. But for sake of argument i will do both one or two depending on use case. + +So now the cost of the storage lets go up to the 2 tb we were talking about before, now that is cheaper because more than 1 tb making it 0.080/per gb so now we are at 160usd/month just for the storage. + +Now luckily there is no cost for instances to talk to each other in aws, but still got to communicate with viewers and connections, so about 10usd in bandwidth charges. + +1 instance with 2tb storage = $190.24/month with reserved | $246.40/month on demand + +2 instance in different locations = $220.48/month with reserved | $336.80/month on demand + +The reason the price is not double, due to aws is actually shared data in a bucket as amazon calls it unlike how it is replicated completely on dedicated hardware. + +I hope this explains my stance on why I choose to use dedicated services over cloud based services. I am not trying to say cloud based services are bad, just saying average use cases are not great option for them. \ No newline at end of file diff --git a/src/data/blog/2016-01-04-moved-to-wordpress.md b/src/data/blog/2016-01-04-moved-to-wordpress.md new file mode 100644 index 0000000..7100b7e --- /dev/null +++ b/src/data/blog/2016-01-04-moved-to-wordpress.md @@ -0,0 +1,18 @@ +--- +title: Moved To WordPress +description: I have decided to move to WordPress after a long time of inactivity on my personal blog. I just feel there is not a real nice place to get OpenSim related news on the internet anymore, other then people's personal blogs and the blogs themselves of other grids. +tags: [Personal] +published: 2016-01-04 +url: /2016/01/moved-to-wordpress/ +#featured_image: /wp-content/uploads/2016/01/AKAzWTD.jpg +category: Archive +draft: false + +--- +I have decided to move to WordPress after a long time of inactivity on my personal blog. I just feel there is not a real nice place to get OpenSim related news on the internet anymore, other then people's personal blogs and the blogs themselves of other grids. It also still saddens me to this say, that the certain site people go to, still does not provide a good source for OpenSim content. + +I don't plan on re-opening another Grid-Press, because people would believe me to be bias or whatever... I am however choosing to just go back into blogging on my personal site. Also, it is not going to be about just OpenSim... but about my feelings, views, some resources, and just my general overall view of things and kinda like a diary for people to read. + +I am also doing this blog, to try and work on my writing skills... I have been approached a few times inworld being asked if English is my first language.... I sadly have to say it is. I used to be very good at it, but as time progressed, life happened, I just grew lazy and forgetful. + +Anyways, I hope to see you all around on the metaverse, on my blog, and in social media. \ No newline at end of file diff --git a/src/data/blog/2016-01-07-modern-inworldz-website.md b/src/data/blog/2016-01-07-modern-inworldz-website.md new file mode 100644 index 0000000..ee50389 --- /dev/null +++ b/src/data/blog/2016-01-07-modern-inworldz-website.md @@ -0,0 +1,15 @@ +--- +title: Modern InWorldz Website +description: I just really want to take a step back and say I was really happy to see the new site by InWorldz. It looks very nice, however I only have one complaint... When launching a new theme, I would really like to see it implemented throughout before released to the public... +tags: [Opinion, OpenSim] +published: 2016-01-07 +url: /2016/01/modern-inworldz-website/ +category: Archive +draft: false + +--- +I just really want to take a step back and say I was really happy to see the new site by InWorldz. It looks very nice, however I only have one complaint... When launching a new theme, I would really like to see it implemented throughout before released to the public... Because the second you login, you are redirected to a part of the site of the old design. From what I saw only the home page contains the new theme. + + + +Anyways, other then the fact it is only on the home page... I love the new design and I hope they roll it out to the rest of the site. I want to see more grids have modern design sites. So kudos to the InWorldz team! \ No newline at end of file diff --git a/src/data/blog/2018-01-06-where-has-tim-been.md b/src/data/blog/2018-01-06-where-has-tim-been.md new file mode 100644 index 0000000..62211db --- /dev/null +++ b/src/data/blog/2018-01-06-where-has-tim-been.md @@ -0,0 +1,21 @@ +--- +title: Where Has Tim Been? +description: Well, it has been a while since I have been around. I have deleted some of my social media presence because it is needed for how I been feeling. For those who do not know, I work as my primary job these days a UNIX/Linux System Administrator. +tags: [Personal] +published: 2018-01-06 +url: /2018/01/where-has-tim-been/ +category: Archive +draft: false + +--- +Well, it has been a while since I have been around. I have deleted some of my social media presence because it is needed for how I been feeling. For those who do not know, I work as my primary job these days a UNIX/Linux System Administrator. Which has turned into something that has been a very demanding job that I wasn’t aware of? + +I am very much enjoying my new job as a System Administrator and it has been greatly expanding my skills and learning more about managing Linux and UNIX servers at larger scales. However, that being said I put in tons of hours now and outside of those hours I spend a bunch of time studying for required certifications to further my career. That being said, it is the reason I haven’t been around much. + +To claim that is the only reason, would be kind of a lie. My life has changed somewhat in the last few months, finally, I have got into a stable relationship with someone who actually cares about me as well. However, being in a stable relationship has led me to realize I have other issues with myself that I am now working on that are related to depression and stress in my life trying to juggle too many things. That I really need to pull back and adjust my priorities and stop committing myself to more then I can do. + +That being said, the job that pays to keep the lights on and a roof over my head takes precedence over my other projects. Because the work I do, I am required to study and pass so many certification courses a year to keep myself properly employed. I have had to turn some of my focus to working on that, which I thought I was giving enough time too, however, I recently failed my AWS Certified SysOps Administrator - Associates Exam scoring only a 68% overall score. Thus loosing out on a bonus my company was offering to those who passed it a nice one-time bonus for passing before the end of the year. + +So what does this mean for me? Well, to be honest, I am not really sure… I am doing my best to get my certifications I need. I am currently working on the AWS SysOps for my re-take and then I am needing to get back and finish my RedHat Certified System Administrator certifications as well. So, studying for both of those exams right now is keeping me quite the busy fox. However, all of this kinda saddens me and upsets me… because I really enjoy working on other things like OpenSimulator and other small open source projects I am interested in like OpenNIC. I really don’t know what the future holds for me right now, but I am doing my best to get through what I got on my plate right now. + +I hope everyone understands why I haven’t been around much, and deleting my Google Plus because it was really bothering me seeing all the stuff people are doing with the projects I like and I just not having the time or ability to get involved in them like I used to. Anyways, I will continue to push forward and try and get back into things. \ No newline at end of file diff --git a/src/data/blog/2018-01-14-taking-control-of-my-cloud-storage.md b/src/data/blog/2018-01-14-taking-control-of-my-cloud-storage.md new file mode 100644 index 0000000..1a14372 --- /dev/null +++ b/src/data/blog/2018-01-14-taking-control-of-my-cloud-storage.md @@ -0,0 +1,26 @@ +--- +title: Taking Control of My Cloud Storage +description: So I have been someone who has been working with a lot of sync services over the years. Dropbox, Mega, Google Drive, and even open source solutions like Seafile, OwnCloud/NextCloud, and Sparkle Share. +tags: [Opinion, Resources] +published: 2018-01-14 +url: /2018/01/taking-control-of-my-cloud-storage/ +category: Archive + +--- +So I have been someone who has been working with a lot of sync services over the years. Dropbox, Mega, Google Drive, and even open source solutions like Seafile, OwnCloud/NextCloud, and Sparkle Share. But these have all been keeping me locked in with paying for more than I need and the commercial ones paying with my privacy. So I wanted to look into a way of handling my files in a cheaper and more reliable way. + +So you might be saying services like Mega give you 50gb for free or Dropbox 1TB for only 9/month. I would say you are right, but unless you are really using all that space it is not a good deal price wise. That said, it is also a not a great deal if you don't trust third parties with your data. Then you might also start to point out, how paying for hosting your own solution can't cost that much more, but then again it can cost a lot for a server and the disk space. You also have to worry about its backups and the drives if you are not on a VPS. So my idea is to use Object Storage, something that I find to be really the best option for my needs. + +So I want to start out by saying, Object Storage is not going to be the best solution for everyone depending on your use cases. If you are someone who is going to be using a ton of storage and want it at a cheaper cost, Dropbox's price might be a great option for what you are looking for. Also depending on the simplicity of your setup and if you are going to share files with others. So again, this is why I say my solution is not for everyone. + +To start this journey I decided to look at all the options out there. AWS S3, Digital Ocean Spaces, Google Cloud Storage(not Google Drive), BackBlaze B2, and some of the smaller companies out there. I started to see that most people's storage price for good redundant storage was around 0.023 per GB on average with the exception of BackBlaze B2 being the cheapest at 0.005 per GB and OVH being 0.0112 per GB. With this in mind, I realized I had to factor in another cost since I am going the route of object storage, which was how much my bandwidth was going to cost. Meaning while BackBlaze looked great for my storage, it was actually going to cost me more if I was going to be downloading a lot from it or using it to share files. + +Diving into the costs, I found that OVH was actually the cheapest option, and the 0.01/gb bandwidth was a steal compared to the competition. I also happen know it was reliable because I have been hosting Zadaroo’s files on it for years now. The competition is just absolutely expensive averaging around 0.09/gb of outgoing bandwidth, which was just going to be too much money for me if I am also going to using it for syncing and sharing files with others. The other major bonus is that OVH doesn’t charge transactional action charges such as puts, gets, and deletes which most of the competition does. So OVH won out the on what I was looking for. + +I created two buckets for security reasons, one bucket as a private bucket allowing only me access to the files stored on it. Then I created a static site option, as the public option creates an XML index that lists all your files and I didn’t want that. I wanted some control of what people can see and not just navigate to the directory and see all my files in the public bucket. + +Since I run Linux everywhere now, I use RClone and created a cronjob that runs every 30 minutes on my machine to sync any changes up with the service. It does a copy to local if there is anything new, then syncs any local files up. Then for my files I want to share, I use the public bucket which also syncs via cron to the public static site bucket. + +The best part of this is the customization and extra features I get doing this. I can use my own domain like files.example.com/something.txt to send it to a friend or post to link on a forum or embed a picture somewhere. I only pay for what I use, and since I am using less than a terabyte I am not going to pay but for my 0.0112 per gig of storage and 0.01 per gig of outgoing bandwidth. All my uploading to OVH is free, so that is a great perk that only outgoing traffic costs. I also love that the storage is replicated with an SLA of 99.9999% but that doesn't mean I should consider also cloning these buckets to another provider if I want that extra security. + +I will release another post soon going further into the scripts I created and going into how you can do this and encrypt your data in your private bucket so even your provider you choose doesn't know what is in it. All using the tools I talked about in this post. I believe in this new cloud era of not using servers but trying to do stuff as server-less as possible (even though I don't like that terminology I am still using servers just not the classic way) because it really can be much cheaper and if it isn't the trade-off for the extra cost can be a benefit as well. I will have to pay 11.20 for 1Tb of storage instead of the 9, but I know it is replicated across the zone I picked in OVH's object storage and that the bandwidth is more premium vs throttled to me getting a VPS that would only have 100Mbps connection that is shared with other VPS's on the host, no need to worry about patching the server for vulnerabilities, all of that is handed off to OVH. Granted Dropbox is a way to go if you want that route, but if you like to go the route you can tinker and use your own domain and such, object storage is great. \ No newline at end of file diff --git a/src/data/blog/2018-02-13-whats-next-for-tim.md b/src/data/blog/2018-02-13-whats-next-for-tim.md new file mode 100644 index 0000000..0dce2e8 --- /dev/null +++ b/src/data/blog/2018-02-13-whats-next-for-tim.md @@ -0,0 +1,19 @@ +--- +title: Whats Next For Tim? +description: I had a lot of fun working with OpenSimulator over the past few years, it was fun but I have got a more demanding job and new skills to acquire for that job that now just take up far more time than I have to work on anything OpenSimulator. +tags: [Personal] +published: 2018-02-13 +url: /2018/02/whats-next-for-tim/ +category: Archive +draft: false + +--- +I had a lot of fun working with OpenSimulator over the past few years, it was fun but I have got a more demanding job and new skills to acquire for that job that now just take up far more time than I have to work on anything OpenSimulator. I am at this time no longer involved with OpenSimulator in any way other than running my own little standalone that I rarely will go on due to my lack of time but just so I can keep and enjoy my content I own and can have on my own machine something that I have always loved about OpenSimulator the ability to truly own your content if you host it yourself(or a provider like Zetamex Network, Dreamland Metaverse, etc). It is sad to part ways from the community just I feel like it is kinda my time to move on. + +I know I have been in the community a long time and it might not come as a surprise but over the years I have had people enjoy my contributions over the years and just as well made some enemies over the years. I feel the OpenSimulator community has begun to evolve to a point that I am not really sure where it is going, and that is not necessarily a bad thing. I think it has reached a point of stability. I feel it has got to the point where to be successful grids would have to open up to the HyperGrid and with the new security in OpenSimulator for HG content now. However, I am not really sure that this is the peek for the project but I think this is where I get off... I am moving on to new projects that have captured my attention with my job. + +So some of you might be curious where I am moving onto? Well, that is my company has become involved with container technology and I have been selected to study and assist with setting up and managing OpenShift since I have my experience with Docker and Linux under my belt. The company I work for felt it good to pick me to be one of the System Admins to work on this project which has resulted in me having to study and take several certifications and going to several training events. I am super happy to be moving into this space and working with containers, I grew to love them working on OpenSimulator with putting several services into the containers to make it easier to version control key components without fear of breaking things. + +I do still plan to write some free code and contribute to open source projects from time to time if I get the time, to try and help grow and keep my programming skills. I know that being a System Administrator can make you a bit lazy on the coding side of things because you're always deep on the systems fixing issues and just messing with scripts and such; or, at least that is how it works where I am now. But I also plan to keep this blog up to date with various ramblings of things I have been up to in my time between work. + +Anyways, I love you OpenSimulator Community! I just think it is time for me to move onto my next big thing, also something that I can grow into making me a real strong living. \ No newline at end of file diff --git a/src/data/blog/2018-04-26-finding-my-linux-distro.md b/src/data/blog/2018-04-26-finding-my-linux-distro.md new file mode 100644 index 0000000..3857a66 --- /dev/null +++ b/src/data/blog/2018-04-26-finding-my-linux-distro.md @@ -0,0 +1,55 @@ +--- +title: Finding My Linux Distro +description: I have been on a bit of a journey looking for the right Linux distribution for myself. It has been a bit of a challenge, because I have been bouncing around a lot over the past couple months trying to find the one that fits me best. +tags: [Personal, Opinion] +published: 2018-04-26 +draft: true +url: /2018/04/finding-my-linux-distro +category: Archive + +--- +I have been on a bit of a journey looking for the right Linux distribution for myself. It has been a bit of a challenge, because I have been bouncing around a lot over the past couple months trying to find the one that fits me best. There are the LTS(Long Term Support), standard release cycles, and of course the rolling release ones out there. + +While using the various ones out there, I have come to realize I do prefer the rolling release model more than the others. Mainly because I enjoy being able to use the latest and greatest that is currently available to be used rather than waiting for a distro to deem that it is stable for me to use. However, I have learned that it does come at the price of the occasional breakage. Being a Linux System Administrator for my day job does help with the occasional breakage not being too difficult to deal with. + +So I wanted to go over the distro's that I tried and my opinions on them. Note these are my personal opinions and shouldn't be used to sway your opinions of them, I encourage you to go out and test them all for yourself as well. + +**Arch** + +This is where this whole thing began at. I have been an Arch user a long time ago and left because graphics drivers were a horrible headache to keep updated with the system. I switched back a few months ago because they made it easier to manage nvidia drivers, as they are are now maintaining the drivers in the main repositories which is nice. However, I was getting annoyed with the constant kernel updates, meaning updates to drivers, and vitalization tools constantly. However, I learned recently you can install the LTS kernel that makes those updates come way less often and I get to also keep the latest and greatest software as well. + +The ability to configure myself to have only what I want from the point of install is very nice, being able to choose what goes in and what doesn't get installed. I also loving having access to the AUR to install large variety of software where it is easier to get the third party applications in a central place. + +My last bit on loving Arch is the wiki. I honestly just love reading the wiki, it doesn't just tell you how to fix something or install something. The wiki is a trove of knowledge teaching you what everything you do on your system does, and honestly as a SysAdmin who didn't go to college it where I am always learning more about my system. Just as a bonus, lots of the articles can translate to other distributions as the articles cover in detail how things work not just how they work Arch but Linux in general. + +**Fedora** + +I really wanted to fall in love with Fedora because I manage Red Hat at work and started using CentOS on my personal servers because it is so nice and stable in my opinion more secure out of the box than Ubuntu boxes I have setup. However, there was just too many small things that I found kinda annoying or just that I couldn't figure out what was wrong. + +Firstly I would install programs, but they would not run when I launched them from the menu.. but they would if I executed them from the command line. I verified I was executing them exactly the same way the menu was programmed to launch them. I checked every log I could, but I still couldn't figure this one out. + +I was getting some odd graphical glitches with apps with both my laptop which uses the intel free drivers and my desktop using the nvidia drivers... I asked in the IRC and all I got was that I shouldn't have used the minimal install media... But I don't see how or why that would be the issue for my graphical glitches. So it was just all these small things that just caused me to just move away from considering Fedora. + +**openSUSE** + +This one was a really awesome one, I used the net installer just like I have for all the distributions in this list. I just for some reason enjoy the level customization their installer gives you and at the end editing the software configuration. The only complaint is I am not a fan of the default choice to use btrfs as I just have had so many friends who have ran into issues on btrfs. So I just switched it to ext4 which was a very easy change. + +I will say as from a newbie perspective, I think openSUSE might seem a bit intimidating but it really just an intimidation. The system is very easy to manage with zypper and their 1-click installer scripts all over their website and software search system. It is also very easy to add repositories to the system and it usually fetches the GPG Key for you, all you have to do is accept it. + +Overall, as a System Administrator I find it to be kinda a SysOps delight to manage with YaST which just makes everything very simple to manage. It makes me sad to see it is not offered by many providers like Digital Ocean and such because it would be my default option in a heartbeat. It really has all the tools you need to manage your system in one place that is not too confusing for someone who has used Linux for a while. + +There are some small things on this system I am not completely happy with, is that some of the desktop applications I like to use are not available as openSUSE is not normally considered on places like RHEL and Debian based distros are so missing dependencies are quite common. + +**Solus** + +This is a pretty awesome distro, and I think it has a lot of potential. My biggest issue with it right now is that its still so new that there is just a lack of documentation on things when I want to install certain programs without going into the forums and asking for help. Also the fact that its young, I am not saying it is going away... but I do want to revisit it in a maybe another year. + +**Ubuntu** + +So I was on Ubuntu for quite a long time, and I don't have anything particularly bad to say about it. I really enjoy using Ubuntu, however after going back to rolling releases it just started to feel a bit to stale for my personal taste. I also was starting to suffer a few programs I compile requiring a bit more effort under Ubuntu vs other platforms like Arch. + +**Manjaro** + +Lastly, I have tried Manjaro and I found it was a great way to dip your foot into the Arch scene with easier management. The few things I didn't like was I couldn't use the tools that were native to the desktop without issues, I was stuck using octipi software manager instead of using Discover software center. The good thing was it did include native snap support I didn't have to install it from the AUR. + +Again, these are my personal opinions and experiences. I am sure others have their own feelings and I am a strong believer that people should find what works for them. I don't believe there is ever one solution that works for everyone, why I encourage people to use whatever works best for them. But I also believe it is important for people to share their opinions to help people consider what else is out there that might work best for them. \ No newline at end of file diff --git a/src/data/blog/2019-01-26-2019-goals.md b/src/data/blog/2019-01-26-2019-goals.md new file mode 100644 index 0000000..1575840 --- /dev/null +++ b/src/data/blog/2019-01-26-2019-goals.md @@ -0,0 +1,18 @@ +--- +title: 2019 Goals +description: So it has been a while since I have written anything on this site, or let alone touched it. So I have decided to give it a bit of a refresh and set some new goals for 2019 to try and meet. With that said, I want to thank you for taking a peek back at my site after a year of nothing new. +tags: [Personal] +published: 2019-01-26 +url: /2019/01/2019-goals/ +category: Archive + +--- +So it has been a while since I have written anything on this site, or let alone touched it. So I have decided to give it a bit of a refresh and set some new goals for 2019 to try and meet. With that said, I want to thank you for taking a peek back at my site after a year of nothing new. I have been working really hard at my day job that keeps me very busy managing lots of servers. However, I plan to take back my personal life somewhat this year as my biggest goal and start getting back into working on hobby projects in my spare time. With that said, I plan on talking about some of my projects that I have worked on here and there and some of the stuff I have done to keep doing through the year. + +**Decentralized Services** +Well, the biggest thing I want to try and move into this year is going into decentralized services. For those who don't know what that is, it is a service that doesn't depend on one person/organization to keep it running. One of the biggest examples of one I am using is Mastodon, which is an alternative to Twitter. Basically Twitter, but small communities and individuals can host their own instance and link them together. This allows my personal instance to follow and communicate with people in other instances, without them needing to sign up on my server or on mine. +The best part of these decentralized services is, they give me more control over my data and allow me to make better choices of who I want to have my data and who I share it with. There are a few other services that are working their way to decentralization options, such as IPFS(a decentralized file system) which even CloudFlare picked up on and is hosting their own gateway. + + **Sharing Tips** +There are a lot of little cost savings tips and workarounds that I have been building for myself because I want to try and do things as affordable as I can, but also there are times I want to make something work the way I want it too. So I will be posting some short guides on things I have done to just share my knowledge. +Anyways, hope to see you guys around! \ No newline at end of file diff --git a/src/data/blog/2019-01-28-speeding-up-zadaroo-files.md b/src/data/blog/2019-01-28-speeding-up-zadaroo-files.md new file mode 100644 index 0000000..a1f8700 --- /dev/null +++ b/src/data/blog/2019-01-28-speeding-up-zadaroo-files.md @@ -0,0 +1,30 @@ +--- +title: Speeding Up Zadaroo Files +description: As some people may know, I host Zadaroo from an agreement with the original owner that I would continue to host it for as long as I can. Which I believe will be a long time, as it isn't that expensive to host. +tags: [CDN, Cloudflare, Wasabi] +published: 2019-01-28 +url: /2019/01/speeding-up-zadaroo-files/ +category: Archive +draft: false + +--- +As some people may know, I host Zadaroo from an agreement with the original owner that I would continue to host it for as long as I can. Which I believe will be a long time, as it isn't that expensive to host. I have up till a few months ago hosted all the files on OVH Object Storage in their Canadian datacenters. Doing that costed me around 5-6/month just in bandwidth fees, as believe it or not Zadaroo continues to this day consuming around 500-600gb of bandwidth a month, which would be too expensive to host on a provider like AWS. Also, keep in mind this is only for all the files behind Zadaroo, not the site itself as the files are hosted separately because I wanted to ensure the best downloads I could. + +Recently I wanted to try and move away from OVH, not because it is really bad or anything... just they tend to have some network abuse from people using their datacenters for things like seed boxes and such. That said, I moved everything from OVH already but files.zadaroo.com files back-end. The site had been moved to where it is now, on a Linode instance in Newark, NJ behind Cloudflare for caching, as it always had so the move was seamless. Next was to find a place to move the files too. Which I was already using Backblaze B2 as a backup location for everything, but at the time I started using them their costs were a bit higher than they are now. But during the last month I heard about Wasabi from a few furry friends on Mastodon, their pricing and speed seemed like a great fit. + +So I moved everything to Wasabi, but then realized that we were going to lose the ability to let people keep using the original files.zadaroo.com domain that I know many people still rely on for loading OARs and such from the site. So I came up with using the Linode box as a proxy server to pass the requests back to Wasabi using the old domain to mask the Wasabi address and it worked! However, this meant I was using my Linode bandwidth to reserve the files, but that was fine for now. Below is configuration I used to mask the Wasabi address. + + + +So I was forced to stop using Wasabi due to 2 outages, and this latest one from them lasting over 48 hours... I found this to be unacceptable. I quickly in the first 12 hours switched Zadaroo Files over to Backblaze B2 because I didn't want to stop people from being able to download all the files from Zadaroo. + ++Due to the Wasabi outage, Zadaroo Files back-end has been seamlessly failed over to @backblaze B2 to ensure you can keep downloading those OAR files :)
— kite552🦊 (@kite552) January 26, 2019
+ +Another one of these creators I miss seeing is [XylonGrimmwulf](https://linktr.ee/xylongrimm), but they haven't really been posting in a while, but based on their last few posts sadly they had hit a rough spot in their life. But I felt the need to call them out as well as someone who created shorts that were something to spike a nice good and warm feeling of being called nice pet names along with reminding you to keep going and focusing on yourself. + +@hurryxslowly stop lying to yourself 😡😡😡 you deserve love #furrytiktok #furryfandom #vtuber #vrchat ♬ original sound - hurryslowly
+ +Now shifting gears a little bit, there is another creator named [maybes0ul](https://linktr.ee/maybes0ul) who makes a lot of content where they sorta speak their mind about things and reminding you about how sometimes things in life change and that is ok. Below is a short by them I think is really worth a watch, speaking about how friends in our lives truthfully can come and go... and that it is ok. + +@xylongrimmwulf Happiness is worth its weight in gold 💚💚💚 #contentcreator #streamer #vtuber #viralvideo #furry #relateable #wolf #furryfandom #furrytiktok #vtuberclips #praise #goodboy #pawsitivity🐾🐾 ♬ original sound - Xylon
+ +I all I wanted to say here was I enjoy this content, and I hope to see more of it. I think it is good to have content out there that can help people with mental health being such a huge thing these days, and I get this is not a substitute for actual mental health counseling. That said, I don't think people realize how much simple words shorts like this can really impact others... and while parasocial relationships can be unhealthy, I think in the era we live in it isn't a super bad thing to look up to content creators and find comfort in their content... just important to understand that you don't actually fully know the person, just the persona/fursona. With that said, I leave you with one more short by another creator I enjoy [rishouren](https://linktr.ee/RishouH) about mental health. + +@maybes0ul You cant keep someone around for forever, you gotta see them later, and continue walking forward #vrchat #vr #furryfandom #vrc #furry #rexouium ♬ original sound - Søul
diff --git a/src/data/blog/2024-05-onto-astro.md b/src/data/blog/2024-05-onto-astro.md new file mode 100644 index 0000000..93426dd --- /dev/null +++ b/src/data/blog/2024-05-onto-astro.md @@ -0,0 +1,15 @@ +--- +title: HUGO to WordPress to Astro +description: So I moved from HUGO to WordPress so I could handle just writing posts again, and have an easier way to handling it. That said, WordPress is great, but with the new stuff Automattic is doing kinda starting to rub me the wrong way and... +tags: [Opinion, SSG, Astro, WordPress, HUGO] +published: 2024-05-07 +url: /2024/05/onto-astro +category: Thoughts +draft: false +--- + +So I moved from HUGO to WordPress so I could handle just writing posts again, and have an easier way to handling it. That said, WordPress is great, but with the new stuff Automattic is doing kinda starting to rub me the wrong way and I lost the ability to make the site look and behave the way I want so here we are moving back to static site generation and this time we are moving to Astro. + +I am super excited to be leveraging Astro, because I think it is a great learning experience to be able to write JavaScript/TypeScript and work on those skills. I still think HUGO is a great option for those wanting a simple static or even really fancy static site just wanted to move to something that was around a JS/TS stuff I am working on outside of my own site to just keep my knowledge going strong. + +Where I want to go now is just pushing myself to putting out some content, because I just feel like I want to put my thoughts and opinions out there. That said I don't know if that is a great way to handle this going forward, I am just going to focus on writing and putting out my opinions a bit more. Mainly because I have a lot on my mind, and a lot of things I want to do... so I just gotta put my mind too it and do. diff --git a/src/data/blog/2024-08-ai-changing-the-internet.md b/src/data/blog/2024-08-ai-changing-the-internet.md new file mode 100644 index 0000000..1f10b99 --- /dev/null +++ b/src/data/blog/2024-08-ai-changing-the-internet.md @@ -0,0 +1,33 @@ +--- +title: AI Changing The Internet +description: So I moved from HUGO to WordPress so I could handle just writing posts again, and have an easier way to handling it. That said, WordPress is great, but with the new stuff Automattic is doing kinda starting to rub me the wrong way and... +tags: [Opinion, SSG, Astro, WordPress, HUGO] +published: 2024-08-23 +url: /2024/08/ai-changing-the-internet +category: Thoughts +draft: false +--- + +I am not sure who else has noticed this, but it has continued to be a thing I have seen repeatedly. The real solution here is that “regular” people will increasingly use AI to do their searches. This didn’t set in for me until it came up in the podcast I listen to called “The Vergecast” which covered the new Search GPT stuff from Open AI. They were talking about how their partners were no longer using Google or other search engines like they still do to get their answers to questions, but instead, they were using Bing’s AI, Google’s Gemini, or even ChatGPT itself. + +What stuck out to me was that the ones hosting the podcast… mentioned how they were still enjoying using the search engines as they were… which I feel most people reading this blog are also the same way…. As I am sure, it is primarily nerdy fuzz butts like myself. That said, while I haven’t been a fan of Google or Bing’s idea of giving me a quick answer... I miss what Neeva (now defunct paid search engine I used) would take the top 5 search results, summarize them, and provide clickable context to take you to the page from which each sentence was most derived. All these other engines don’t seem to be doing that, which bugs me… + +:::important[Side Thought] + +@rishouren #CapCut #mentalhealth #mentalhealthmatters #youcandoit #xyzabc ♬ original sound - Rishou
+ {dayjs(post.data.published).format("MMMM DD, YYYY")} +
++ {post.data.description}{" "} + + 📖 Continue Reading 📖 + +
+