diff --git a/CNAME b/CNAME index 2135feb..062bf3c 100644 --- a/CNAME +++ b/CNAME @@ -1 +1 @@ -mr.touno.io \ No newline at end of file +dvgamerr.app diff --git a/astro.config.mjs b/astro.config.mjs index 5c3ccc5..ae048f2 100644 --- a/astro.config.mjs +++ b/astro.config.mjs @@ -1,8 +1,32 @@ import { defineConfig } from 'astro/config'; import robotsTxt from 'astro-robots-txt'; +import sitemap from "@astrojs/sitemap"; + +import webmanifest from "astro-webmanifest"; // https://astro.build/config export default defineConfig({ - site: 'https://mr.touno.io', - integrations: [ robotsTxt() ], + site: 'https://dvgamerr.app', + integrations: [ + robotsTxt(), + sitemap({ + i18n: { + defaultLocale: 'en', + locales: { + en: 'en-US', + th: 'th-TH' + }, + }, + }), + webmanifest({ + name: 'Kananek Thongkam | Full Stack Engineer', + icon: 'public/icon.webp', // source for favicon & icons + short_name: 'dvgamerr', + description: 'Hey there, My name is Kananek T. and I\'m a Full Stack Engineer.', + start_url: '/', + theme_color: '#3068d9', + background_color: '#f8f8f8', + display: 'standalone', + }) + ] }); diff --git a/collect/index.js b/collect/index.js deleted file mode 100644 index 6142d87..0000000 --- a/collect/index.js +++ /dev/null @@ -1,260 +0,0 @@ -require('dotenv').config() - -const { Octokit } = require('@octokit/core') -const dayjs = require('dayjs') - -const { readdir, readFile, writeFile } = require('fs/promises') -const { existsSync, unlinkSync } = require('fs') -const { extname, join } = require('path') - -// // const logger = debuger('GEN') -// const enableGithub = process.argv.filter(e => e === '--github').length > 0 -// const enableWakatime = process.argv.filter(e => e === '--wakatime').length > 0 - -// const updateJSONfile = async (file, updated) => { -// const dirData = './docs/data' -// if (existsSync(join(dirData, file))) { -// const rawData = await readFile(join(dirData, file)) -// const data = JSON.parse(rawData.toString()) - -// for (const key in updated) { -// if (updated[key] instanceof Array) { -// data[key] = updated[key] -// } else if (updated[key] instanceof Object) { -// data[key] = Object.assign(data[key] || {}, updated[key]) -// } else { -// data[key] = updated[key] -// } -// } - -// await writeFile(join(dirData, file), JSON.stringify(data, null, 2)) -// } else { -// await writeFile(join(dirData, file), JSON.stringify(updated, null, 2)) -// } -// } - -// // const apiGitHub = Octokit.defaults() - -// const apiGitHub = new Octokit({ -// auth: process.env.GH_TOKEN, -// baseUrl: 'https://api.github.com', -// Accept: 'application/vnd.github.v3+json', -// }) - -// const apiWaka = new Octokit({ -// baseUrl: 'https://wakatime.com/api/v1' -// }) - -// const markdownToJson = async (filename) => { -// const dirData = './docs' -// let workData = {} -// const files = await readdir(dirData) -// for await (const file of files) { -// if (extname(file) !== '.md') continue -// const data = await readFile(join(dirData, file)) -// workData[file] = data.toString() -// } - -// await writeFile(join(dirData, 'data', filename), JSON.stringify(workData, null, 2)) -// } - -// const fetchContributors = r => apiGitHub.request('GET /repos/{owner}/{repos}/stats/contributors', { owner: r.owner.login, repos: r.name }) - -// const fetchCommitActivity = r => apiGitHub.request('GET /repos/{owner}/{repos}/stats/commit_activity', { owner: r.owner.login, repos: r.name }) - -// const getGithubStats = async () => { -// if (!process.env.GH_TOKEN || !enableGithub) return - -// // logger.info('Query Repositories') -// const coding = { -// // Total Repos -// project: 0, -// // Public Repos -// opensource: 0, -// // https://api.github.com/repos/dvgamerr/dvgamerr/languages -// languages: 0, -// // https://api.github.com/repos/dvgamerr/dvgamerr/stats/contributors -// loc: 0, -// commits: 0 -// } - -// let orgRepos = [] -// let nextPage = false -// const { data: orgs } = await apiGitHub.request('GET /user/orgs') -// for await (const org of orgs) { -// let page = 0 -// do { -// page++ -// const { data: repos } = await apiGitHub.request('GET /orgs/{org}/repos', { org: org.login, per_page: 100, page }) -// orgRepos = orgRepos.concat(repos) -// nextPage = repos.length > 0 -// } while(nextPage) -// } - -// let page = 0 -// do { -// page++ -// const { data: repos } = await apiGitHub.request('GET /user/repos', { type: 'owner', per_page: 100, page }) -// orgRepos = orgRepos.concat(repos) -// nextPage = repos.length > 0 -// } while(nextPage) - -// coding.project = orgRepos.length - -// // logger.info('Contributors Task...') -// const savedRepos = {} -// const reposTask = [] -// for await (const repo of orgRepos) { -// if (!repo.private) coding.opensource++ -// savedRepos[repo.full_name] = { commits: 0, added: 0, deleted: 0 } -// reposTask.push((async () => { -// let tries = 4 -// let contri = await fetchContributors(repo) -// while (contri.status === 202 && tries > 0) { -// await new Promise(resolve => setTimeout(resolve, 2000)); -// contri = await fetchContributors(repo) -// tries-- -// } - -// if (contri.status === 200) { -// for (const c of contri.data) { -// if (c.author.login !== 'dvgamerr') continue -// savedRepos[repo.full_name].commits += c.total -// savedRepos[repo.full_name].added += c.weeks.reduce((sum, { a }) => sum + a, 0) -// savedRepos[repo.full_name].deleted += c.weeks.reduce((sum, { d }) => sum + d, 0) -// } - -// coding.commits += savedRepos[repo.full_name].commits -// coding.loc += savedRepos[repo.full_name].added -// coding.loc += savedRepos[repo.full_name].deleted -// } else { -// // logger.log(` - [commits] ${repo.full_name} status:${contri.status})`) -// delete savedRepos[repo.full_name].commits -// delete savedRepos[repo.full_name].added -// delete savedRepos[repo.full_name].deleted -// } - -// const languages = await apiGitHub.request('GET /repos/{owner}/{repos}/languages', { owner: repo.owner.login, repos: repo.name }) -// if (languages.status === 200) { -// savedRepos[repo.full_name].languages = languages.data -// coding.languages = Object.assign(coding.languages, languages.data) -// } else { -// // logger.log(` - [languages] ${repo.full_name} status:${contri.status})`) -// delete savedRepos[repo.full_name].languages -// } -// })()) -// } -// // logger.info('Github API...') -// await Promise.all(reposTask) -// coding.languages = Object.keys(coding.languages).length -// // savedRepos -// // logger.info('Saving...') - -// unlinkSync('./docs/data/repos.json') -// await updateJSONfile('repos.json', savedRepos) -// await updateJSONfile('coding.json', coding) -// } - -// const getWakaTime = async () => { -// if (!process.env.WK_TOKEN || !enableWakatime) return -// // https://wakatime.com/api/v1/users/current/durations?api_key=f389e6d1-207e-4c49-9526-d2623ce7b6d1&date=2022-03-26 - - -// const coding = { -// updated: new Date().toISOString(), -// weekly_seconds: 0, -// average_seconds: 0, -// best_seconds: 0, -// daytime: [], -// weektime: [] -// } - -// let beginDateTime = '' -// let currDateTime = '' -// let dayTime = {} -// let weekTime = {} - -// for (let i = 0; i <= 23; i++) dayTime[i] = 0 -// for (let i = 0; i <= 6; i++) weekTime[i] = 0 - -// wakaTask = [] -// const totalDay = 365 -// let cDate = dayjs().startOf('d') -// for (let i = totalDay; i >= 0; i--) { -// cDate = dayjs().startOf('d') -// currDateTime = cDate.add(i * -1, 'd').format('YYYY-MM-DD') -// const currDay = cDate.add(i * -1, 'd').day() -// if (!beginDateTime) beginDateTime = currDateTime -// wakaTask.push((async () => { -// const { status, data: { data: durations } } = await apiWaka.request('GET /users/current/durations', { -// api_key: process.env.WK_TOKEN, -// date: currDateTime -// }) -// // if (status !== 200) return logger.error(status) - -// let totalDuration = 0 -// for (const data of durations) { -// if (data.duration == 0) continue -// const beginTime = dayjs(data.time * 1000).hour() -// const endTime = dayjs((data.time + data.duration) * 1000).hour() - -// for (let i = beginTime; i <= endTime; i++) { -// dayTime[i] = (dayTime[i] || 0) + 1 -// } -// totalDuration += data.duration -// } -// coding.average_seconds += totalDuration -// if (totalDuration > coding.best_seconds) coding.best_seconds = totalDuration -// if (i < 7) coding.weekly_seconds = totalDuration - -// weekTime[currDay] = (weekTime[currDay] || 0) + totalDuration -// })()) -// if (wakaTask.length == 10) { -// logger.log(`- fetch: ${beginDateTime} to ${currDateTime}`) -// await Promise.all(wakaTask) -// wakaTask = [] -// beginDateTime = '' -// } -// } - -// if (wakaTask.length > 0) { -// logger.log(`- fetch: ${beginDateTime} to ${currDateTime}`) -// await Promise.all(wakaTask) -// } - -// coding.average_seconds /= totalDay -// coding.daytime = Object.values(dayTime) -// weekTime = Object.values(weekTime).map(e => parseInt(e / 60 / 60 * 100) / 100) -// weekTime.push(weekTime.shift()) - -// coding.weektime = weekTime -// await updateJSONfile('coding.json', coding) -// } - -// const apiLayer = new Octokit({ -// baseUrl: 'https://api.bitkub.com/api' -// }) - -// const getCurrencryUSD = async () => { - -// // logger.info('Query bitkub.com THB-USDT') -// const symbols = 'THB_USDT' -// const { data, status } = await apiLayer.request('GET /market/ticker?sym={?symbols}', { -// symbols -// }) - -// const salary = { rate: data[symbols].highestBid } -// await updateJSONfile('resume.json', { salary }) -// } - -// Promise.all([ -// markdownToJson('work.json'), -// getCurrencryUSD(), -// getGithubStats(), -// getWakaTime(), -// ]).then(() => { -// // logger.log('Complated') -// }).catch(ex => { -// console.error(ex) -// }) - diff --git a/package.json b/package.json index 394623e..88010f8 100644 --- a/package.json +++ b/package.json @@ -8,15 +8,20 @@ "dev": "astro dev", "start": "astro dev", "build": "astro build", - "collector": "node ./src/ --github --wakatime", + "collector": "node ./collector/index.js --wakatime --github | pino-pretty", "astro": "astro" }, "dependencies": { + "@astrojs/sitemap": "^3.1.1", "@cronitorio/cronitor-rum": "^0.4.1", - "astro": "^4.4.8", + "arg": "^5.0.2", + "astro": "^4.4.11", "astro-google-fonts-optimizer": "^0.2.2", "astro-robots-txt": "^1.0.0", + "astro-webmanifest": "^1.0.0", + "merge-json-file": "^1.0.1", "numeral": "^2.0.6", + "pino": "^8.19.0", "sharp": "^0.32.6" }, "devDependencies": { @@ -28,6 +33,7 @@ "charts.css": "^1.1.0", "dayjs": "^1.11.10", "dotenv": "^16.4.5", + "pino-pretty": "^10.3.1", "sass": "^1.71.1" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c8890e8..0125b41 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -5,21 +5,36 @@ settings: excludeLinksFromLockfile: false dependencies: + '@astrojs/sitemap': + specifier: ^3.1.1 + version: 3.1.1 '@cronitorio/cronitor-rum': specifier: ^0.4.1 version: 0.4.1 + arg: + specifier: ^5.0.2 + version: 5.0.2 astro: - specifier: ^4.4.8 - version: 4.4.8(@types/node@20.11.24)(sass@1.71.1)(typescript@5.3.3) + specifier: ^4.4.11 + version: 4.4.11(@types/node@20.11.24)(sass@1.71.1)(typescript@5.3.3) astro-google-fonts-optimizer: specifier: ^0.2.2 version: 0.2.2 astro-robots-txt: specifier: ^1.0.0 version: 1.0.0 + astro-webmanifest: + specifier: ^1.0.0 + version: 1.0.0 + merge-json-file: + specifier: ^1.0.1 + version: 1.0.1 numeral: specifier: ^2.0.6 version: 2.0.6 + pino: + specifier: ^8.19.0 + version: 8.19.0 sharp: specifier: ^0.32.6 version: 0.32.6 @@ -49,6 +64,9 @@ devDependencies: dotenv: specifier: ^16.4.5 version: 16.4.5 + pino-pretty: + specifier: ^10.3.1 + version: 10.3.1 sass: specifier: ^1.71.1 version: 1.71.1 @@ -60,7 +78,7 @@ packages: engines: {node: '>=6.0.0'} dependencies: '@jridgewell/gen-mapping': 0.3.5 - '@jridgewell/trace-mapping': 0.3.24 + '@jridgewell/trace-mapping': 0.3.25 dev: false /@astrojs/compiler@2.6.0: @@ -99,6 +117,13 @@ packages: prismjs: 1.29.0 dev: false + /@astrojs/sitemap@3.1.1: + resolution: {integrity: sha512-qPgdBIcDUaea98mTtLfi5z9oXZpzSjEn/kes70/Ex8FOZZ+DIHVKRYOLOtvy8p+FTXr/9oc7BjmIbTYmYLLJVg==} + dependencies: + sitemap: 7.1.1 + zod: 3.22.4 + dev: false + /@astrojs/telemetry@3.0.4: resolution: {integrity: sha512-A+0c7k/Xy293xx6odsYZuXiaHO0PL+bnDoXOc47sGDF5ffIKdKQGRPFl2NMlCF4L0NqN4Ynbgnaip+pPF0s7pQ==} engines: {node: '>=18.14.1'} @@ -155,7 +180,7 @@ packages: dependencies: '@babel/types': 7.24.0 '@jridgewell/gen-mapping': 0.3.5 - '@jridgewell/trace-mapping': 0.3.24 + '@jridgewell/trace-mapping': 0.3.25 jsesc: 2.5.2 dev: false @@ -719,7 +744,7 @@ packages: dependencies: '@jridgewell/set-array': 1.2.1 '@jridgewell/sourcemap-codec': 1.4.15 - '@jridgewell/trace-mapping': 0.3.24 + '@jridgewell/trace-mapping': 0.3.25 dev: false /@jridgewell/resolve-uri@3.1.2: @@ -736,8 +761,8 @@ packages: resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} dev: false - /@jridgewell/trace-mapping@0.3.24: - resolution: {integrity: sha512-+VaWXDa6+l6MhflBvVXjIEAzb59nQ2JUK3bwRp2zRpPtU+8TFRy9Gg/5oIcNlkEL5PGlBFGfemUVvIgLnTzq7Q==} + /@jridgewell/trace-mapping@0.3.25: + resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} dependencies: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.4.15 @@ -1013,11 +1038,21 @@ packages: '@types/unist': 2.0.10 dev: false + /@types/node@17.0.45: + resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==} + dev: false + /@types/node@20.11.24: resolution: {integrity: sha512-Kza43ewS3xoLgCEpQrsT+xRo/EJej1y0kVYGiLFE1NEODXGzTfwiC6tXTLMQskn1X4/Rjlh0MQUvx9W+L9long==} dependencies: undici-types: 5.26.5 + /@types/sax@1.2.7: + resolution: {integrity: sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==} + dependencies: + '@types/node': 20.11.24 + dev: false + /@types/unist@2.0.10: resolution: {integrity: sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==} dev: false @@ -1038,6 +1073,12 @@ packages: through: 2.3.8 dev: true + /abort-controller@3.0.0: + resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} + engines: {node: '>=6.5'} + dependencies: + event-target-shim: 5.0.1 + /acorn@8.11.3: resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} engines: {node: '>=0.4.0'} @@ -1093,6 +1134,10 @@ packages: normalize-path: 3.0.0 picomatch: 2.3.1 + /arg@5.0.2: + resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} + dev: false + /argparse@1.0.10: resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} dependencies: @@ -1127,8 +1172,16 @@ packages: zod: 3.22.4 dev: false - /astro@4.4.8(@types/node@20.11.24)(sass@1.71.1)(typescript@5.3.3): - resolution: {integrity: sha512-jAAfzvgHOfuZmqJjnSDownVNuWKYmsGkrFqecEppHarMA/cZ5QIboW6GQHZ8eGZQdtYRCjON3h4i64XFZfuwSg==} + /astro-webmanifest@1.0.0: + resolution: {integrity: sha512-ar8SZuFf8k2XuqAYpiaiGmzgpqVufyPx0A9d8OljPup+Sgs+1trG2bpvo7JcM+m4L3figPaYEZOy1rRawCEU0w==} + dependencies: + sharp: 0.32.6 + valid-filename: 4.0.0 + zod: 3.22.4 + dev: false + + /astro@4.4.11(@types/node@20.11.24)(sass@1.71.1)(typescript@5.3.3): + resolution: {integrity: sha512-mJ1k67xzAJO1vTTpATe76uSWhOgiEj3Id7narE6X2rMMOBjR8vJM+9Cmv/Wbpot6uMwFo780skUowlMptK96fQ==} engines: {node: '>=18.14.1', npm: '>=6.14.0'} hasBin: true dependencies: @@ -1172,7 +1225,7 @@ packages: http-cache-semantics: 4.1.1 js-yaml: 4.1.0 kleur: 4.1.5 - magic-string: 0.30.7 + magic-string: 0.30.8 mdast-util-to-hast: 13.0.2 mime: 3.0.0 ora: 7.0.1 @@ -1191,8 +1244,8 @@ packages: tsconfck: 3.0.2(typescript@5.3.3) unist-util-visit: 5.0.0 vfile: 6.0.1 - vite: 5.1.4(@types/node@20.11.24)(sass@1.71.1) - vitefu: 0.2.5(vite@5.1.4) + vite: 5.1.5(@types/node@20.11.24)(sass@1.71.1) + vitefu: 0.2.5(vite@5.1.5) which-pm: 2.1.1 yargs-parser: 21.1.1 zod: 3.22.4 @@ -1210,6 +1263,10 @@ packages: - typescript dev: false + /atomic-sleep@1.0.0: + resolution: {integrity: sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==} + engines: {node: '>=8.0.0'} + /axobject-query@4.0.0: resolution: {integrity: sha512-+60uv1hiVFhHZeO+Lz0RYzsVHy5Wr1ayX0mwda9KPDVLNJgZ1T9Ny7VmFbLDzxsH0D87I86vgj3gFrjTJUYznw==} dependencies: @@ -1262,7 +1319,6 @@ packages: /base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - dev: false /before-after-hook@3.0.2: resolution: {integrity: sha512-Nik3Sc0ncrMK4UUdXQmAnRtzmNQTAAXmXIopizwZ1W1t8QmfJj+zL4OA2I7XPTPW5z5TDqv4hRo/JzouDJnX3A==} @@ -1322,8 +1378,8 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001591 - electron-to-chromium: 1.4.690 + caniuse-lite: 1.0.30001593 + electron-to-chromium: 1.4.692 node-releases: 2.0.14 update-browserslist-db: 1.0.13(browserslist@4.23.0) dev: false @@ -1341,7 +1397,6 @@ packages: dependencies: base64-js: 1.5.1 ieee754: 1.2.1 - dev: false /callsites@3.1.0: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} @@ -1353,8 +1408,8 @@ packages: engines: {node: '>=14.16'} dev: false - /caniuse-lite@1.0.30001591: - resolution: {integrity: sha512-PCzRMei/vXjJyL5mJtzNiUCKP59dm8Apqc3PH8gJkMnMXZGox93RbE76jHsmLwmIo6/3nsYIpJtx0O7u5PqFuQ==} + /caniuse-lite@1.0.30001593: + resolution: {integrity: sha512-UWM1zlo3cZfkpBysd7AS+z+v007q9G1+fLTUU42rQnY6t2axoogPW/xol6T7juU5EUoOhML4WgBIdG+9yYqAjQ==} dev: false /ccount@2.0.1: @@ -1373,6 +1428,10 @@ packages: resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + /char-to-string@1.0.0: + resolution: {integrity: sha512-9WeQ+l5COfnFkuDmTJ5zXzMhb4xpMPDu24pD50cMvWT+Br9Sni1hlpvdPK/YpZl1+QI15f4pMWfyEzyyIHJr2Q==} + dev: false + /character-entities-html4@2.1.0: resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} dev: false @@ -1490,6 +1549,10 @@ packages: color-string: 1.9.1 dev: false + /colorette@2.0.20: + resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} + dev: true + /comma-separated-tokens@2.0.3: resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} dev: false @@ -1593,6 +1656,10 @@ packages: engines: {node: '>=4.0'} dev: true + /dateformat@4.6.3: + resolution: {integrity: sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==} + dev: true + /dayjs@1.11.10: resolution: {integrity: sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==} dev: true @@ -1629,6 +1696,11 @@ packages: requiresBuild: true dev: false + /deepmerge@4.3.1: + resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} + engines: {node: '>=0.10.0'} + dev: false + /dequal@2.0.3: resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} engines: {node: '>=6'} @@ -1640,6 +1712,11 @@ packages: requiresBuild: true dev: false + /detect-newline@3.1.0: + resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} + engines: {node: '>=8'} + dev: false + /deterministic-object-hash@2.0.2: resolution: {integrity: sha512-KxektNH63SrbfUyDiwXqRb1rLwKt33AmMv+5Nhsw1kqZ13SJBRTgZHtGbE+hH3a1mVW1cz+4pqSWVPAtLVXTzQ==} engines: {node: '>=18'} @@ -1687,8 +1764,8 @@ packages: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} dev: false - /electron-to-chromium@1.4.690: - resolution: {integrity: sha512-+2OAGjUx68xElQhydpcbqH50hE8Vs2K6TkAeLhICYfndb67CVH0UsZaijmRUE3rHlIxU1u0jxwhgVe6fK3YANA==} + /electron-to-chromium@1.4.692: + resolution: {integrity: sha512-d5rZRka9n2Y3MkWRN74IoAsxR0HK3yaAt7T50e3iT9VZmCCQDT3geXUO5ZRMhDToa1pkCeQXuNo+0g+NfDOVPA==} dev: false /emoji-regex@10.3.0: @@ -1707,6 +1784,11 @@ packages: requiresBuild: true dependencies: once: 1.4.0 + + /ends-with-string@1.0.1: + resolution: {integrity: sha512-TQg80EKJsnNfH9H/5HpAXKJP7YMYFkoUeS9ayMY60zwNoiNecv8D0+a9cycqdM8rhj/hfBqJb+9uLMsYP8d/Bw==} + dependencies: + char-to-string: 1.0.0 dev: false /entities@4.5.0: @@ -1780,10 +1862,18 @@ packages: '@types/estree': 1.0.5 dev: false + /event-target-shim@5.0.1: + resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} + engines: {node: '>=6'} + /eventemitter3@5.0.1: resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} dev: false + /events@3.3.0: + resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} + engines: {node: '>=0.8.x'} + /execa@8.0.1: resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} engines: {node: '>=16.17'} @@ -1815,6 +1905,10 @@ packages: resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} dev: false + /fast-copy@3.0.1: + resolution: {integrity: sha512-Knr7NOtK3HWRYGtHoJrjkaWepqT8thIVGAwt0p0aUs1zqkAzXZV4vo9fFNwyb5fcqK1GKYFYxldQdIDVKhUAfA==} + dev: true + /fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} dev: true @@ -1835,12 +1929,25 @@ packages: micromatch: 4.0.5 dev: false + /fast-redact@3.3.0: + resolution: {integrity: sha512-6T5V1QK1u4oF+ATxs1lWUmlEk6P2T9HqJG3e2DnHOdVgZy2rFJBoEnrIedcTXlkAHU/zKC+7KETJ+KGGKwxgMQ==} + engines: {node: '>=6'} + dev: false + + /fast-safe-stringify@2.1.1: + resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==} + dev: true + /fastq@1.17.1: resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} dependencies: reusify: 1.0.4 dev: false + /file-exists-safe@1.1.0: + resolution: {integrity: sha512-F0gcLPWcrLnYxlU46sf0UdgDsVaYCDyVVVsT1fpfUJ726R+GmS220+6LCPT1xbU8r6lCrwlG1gnKLF7slnObQw==} + dev: false + /filename-reserved-regex@3.0.0: resolution: {integrity: sha512-hn4cQfU6GOT/7cFHXBqeBg2TbrMBgdD0kcjLhvSQYYwm3s4B6cjvBfb7nBALJLAXqmU5xajSa7X2NnUud/VCdw==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -2079,6 +2186,10 @@ packages: space-separated-tokens: 2.0.2 dev: false + /help-me@5.0.0: + resolution: {integrity: sha512-7xgomUX6ADmcYzFik0HzAxh/73YlKR9bmFzf51CZwR+b6YtzU2m0u49hQCqV6SvlqIqsaxovfwdvbnsw3b/zpg==} + dev: true + /html-escaper@3.0.3: resolution: {integrity: sha512-RuMffC89BOWQoY0WKGpIhn5gX3iI54O6nRA0yC124NYVtzjmFWBIiFd8M0x+ZdX0P9R4lADg1mgP8C7PxGOWuQ==} dev: false @@ -2097,7 +2208,6 @@ packages: /ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} - dev: false /immutable@4.3.5: resolution: {integrity: sha512-8eabxkth9gZatlwl5TBuJnCsoTADlL6ftEr7A4qgdaTsPyreilDSnUk57SO+jfKcNtxPa22U5KK6DSeAYhpBJw==} @@ -2235,6 +2345,11 @@ packages: hasBin: true dev: true + /joycon@3.1.1: + resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} + engines: {node: '>=10'} + dev: true + /js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} @@ -2387,8 +2502,8 @@ packages: dependencies: yallist: 4.0.0 - /magic-string@0.30.7: - resolution: {integrity: sha512-8vBuFF/I/+OSLRmdf2wwFCJCz+nSn0m6DPvGH1fS/KiQoSaR+sETbov0eIk9KhEKy8CYqIkIAnbohxT/4H0kuA==} + /magic-string@0.30.8: + resolution: {integrity: sha512-ISQTe55T2ao7XtlAStud6qwYPZjE4GK1S/BeVPus4jrq6JuOnQ00YKQC581RWhR122W7msZV263KzVeLoqidyQ==} engines: {node: '>=12'} dependencies: '@jridgewell/sourcemap-codec': 1.4.15 @@ -2547,6 +2662,15 @@ packages: engines: {node: '>=16.10'} dev: true + /merge-json-file@1.0.1: + resolution: {integrity: sha512-n68QJgDHQkydX9gwSJWIkydWr2cgb3NfUGrzsylSq9phIseg3/Zj1Mbf+fgy18OCJ3lkMnOGjVm37P4nvvP++Q==} + dependencies: + deepmerge: 4.3.1 + read-json-safe: 2.0.2 + types-json: 1.2.2 + write-json-safe: 2.1.0 + dev: false + /merge-stream@2.0.0: resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} @@ -2891,11 +3015,14 @@ packages: resolution: {integrity: sha512-qaKRmtYPZ5qdw4jWJD6bxEf1FJEqllJrwxCLIm0sQU/A7v2/czigzOb+C2uSiFsa9lBUzeH7M1oK+Q+OLxL3kA==} dev: false + /on-exit-leak-free@2.1.2: + resolution: {integrity: sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==} + engines: {node: '>=14.0.0'} + /once@1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} dependencies: wrappy: 1.0.2 - dev: false /onetime@5.1.2: resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} @@ -2999,6 +3126,12 @@ packages: callsites: 3.1.0 dev: true + /parse-json-object@2.0.1: + resolution: {integrity: sha512-/oF7PUUBjCqHmMEE6xIQeX5ZokQ9+miudACzPt4KBU2qi6CxZYPdisPXx4ad7wpZJYi2ZpcW2PacLTU3De3ebw==} + dependencies: + types-json: 1.2.2 + dev: false + /parse-json@5.2.0: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} @@ -3067,6 +3200,53 @@ packages: engines: {node: '>=6'} dev: false + /pino-abstract-transport@1.1.0: + resolution: {integrity: sha512-lsleG3/2a/JIWUtf9Q5gUNErBqwIu1tUKTT3dUzaf5DySw9ra1wcqKjJjLX1VTY64Wk1eEOYsVGSaGfCK85ekA==} + dependencies: + readable-stream: 4.5.2 + split2: 4.2.0 + + /pino-pretty@10.3.1: + resolution: {integrity: sha512-az8JbIYeN/1iLj2t0jR9DV48/LQ3RC6hZPpapKPkb84Q+yTidMCpgWxIT3N0flnBDilyBQ1luWNpOeJptjdp/g==} + hasBin: true + dependencies: + colorette: 2.0.20 + dateformat: 4.6.3 + fast-copy: 3.0.1 + fast-safe-stringify: 2.1.1 + help-me: 5.0.0 + joycon: 3.1.1 + minimist: 1.2.8 + on-exit-leak-free: 2.1.2 + pino-abstract-transport: 1.1.0 + pump: 3.0.0 + readable-stream: 4.5.2 + secure-json-parse: 2.7.0 + sonic-boom: 3.8.0 + strip-json-comments: 3.1.1 + dev: true + + /pino-std-serializers@6.2.2: + resolution: {integrity: sha512-cHjPPsE+vhj/tnhCy/wiMh3M3z3h/j15zHQX+S9GkTBgqJuTuJzYJ4gUyACLhDaJ7kk9ba9iRDmbH2tJU03OiA==} + dev: false + + /pino@8.19.0: + resolution: {integrity: sha512-oswmokxkav9bADfJ2ifrvfHUwad6MLp73Uat0IkQWY3iAw5xTRoznXbXksZs8oaOUMpmhVWD+PZogNzllWpJaA==} + hasBin: true + dependencies: + atomic-sleep: 1.0.0 + fast-redact: 3.3.0 + on-exit-leak-free: 2.1.2 + pino-abstract-transport: 1.1.0 + pino-std-serializers: 6.2.2 + process-warning: 3.0.0 + quick-format-unescaped: 4.0.4 + real-require: 0.2.0 + safe-stable-stringify: 2.4.3 + sonic-boom: 3.8.0 + thread-stream: 2.4.1 + dev: false + /pkg-dir@4.2.0: resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} engines: {node: '>=8'} @@ -3118,6 +3298,14 @@ packages: engines: {node: '>=6'} dev: false + /process-warning@3.0.0: + resolution: {integrity: sha512-mqn0kFRl0EoqhnL0GQ0veqFHyIN1yig9RHh/InzORTUiZHFRAur+aMtRkELNwGs9aNwKS6tg/An4NYBPGwvtzQ==} + dev: false + + /process@0.11.10: + resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} + engines: {node: '>= 0.6.0'} + /prompts@2.4.2: resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} engines: {node: '>= 6'} @@ -3136,7 +3324,6 @@ packages: dependencies: end-of-stream: 1.4.4 once: 1.4.0 - dev: false /punycode@2.3.1: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} @@ -3152,6 +3339,10 @@ packages: requiresBuild: true dev: false + /quick-format-unescaped@4.0.4: + resolution: {integrity: sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==} + dev: false + /rc@1.2.8: resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} hasBin: true @@ -3163,6 +3354,17 @@ packages: strip-json-comments: 2.0.1 dev: false + /read-file-safe@1.0.10: + resolution: {integrity: sha512-qW25fd2uMX3dV6Ui/R0jYK1MhTpjx8FO/VHaHTXzwWsGnkNwLRcqYfCXd9qDM+NZ273DPUvP2RaimYuLSu1K/g==} + dev: false + + /read-json-safe@2.0.2: + resolution: {integrity: sha512-8YIzUwt++g+w5t495q+AIYSOMHgVs3elDf+WJC0XEBs+Zo/1l8vNn2Ha1evKdYY3J6DhjiOZdVyBqkrFIaD20Q==} + dependencies: + parse-json-object: 2.0.1 + read-file-safe: 1.0.10 + dev: false + /readable-stream@3.6.2: resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} engines: {node: '>= 6'} @@ -3172,12 +3374,27 @@ packages: util-deprecate: 1.0.2 dev: false + /readable-stream@4.5.2: + resolution: {integrity: sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + abort-controller: 3.0.0 + buffer: 6.0.3 + events: 3.3.0 + process: 0.11.10 + string_decoder: 1.3.0 + /readdirp@3.6.0: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} dependencies: picomatch: 2.3.1 + /real-require@0.2.0: + resolution: {integrity: sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==} + engines: {node: '>= 12.13.0'} + dev: false + /rehype-parse@9.0.0: resolution: {integrity: sha512-WG7nfvmWWkCR++KEkZevZb/uw41E8TsH4DsY9UxsTbIXCVGbAs4S+r8FrQ+OtH5EEQAs+5UxKC42VinkmpA1Yw==} dependencies: @@ -3262,6 +3479,10 @@ packages: unified: 11.0.4 dev: false + /remove-file-safe@1.0.1: + resolution: {integrity: sha512-YzBF0IfrPG9PMGCZsQjMNeIyi9+PPYLDHTcU+bDhgZhfaO6WFpA75+kB5eEkg9C3Puomo6Y50Ll8sCem2TiBdA==} + dev: false + /require-directory@2.1.1: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} @@ -3370,6 +3591,10 @@ packages: /safe-buffer@5.2.1: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + + /safe-stable-stringify@2.4.3: + resolution: {integrity: sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==} + engines: {node: '>=10'} dev: false /sass@1.71.1: @@ -3381,6 +3606,10 @@ packages: immutable: 4.3.5 source-map-js: 1.0.2 + /sax@1.3.0: + resolution: {integrity: sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==} + dev: false + /section-matter@1.0.0: resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==} engines: {node: '>=4'} @@ -3389,6 +3618,10 @@ packages: kind-of: 6.0.3 dev: false + /secure-json-parse@2.7.0: + resolution: {integrity: sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==} + dev: true + /semver@6.3.1: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true @@ -3469,6 +3702,22 @@ packages: resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} dev: false + /sitemap@7.1.1: + resolution: {integrity: sha512-mK3aFtjz4VdJN0igpIJrinf3EO8U8mxOPsTBzSsy06UtjZQJ3YY3o3Xa7zSc5nMqcMrRwlChHZ18Kxg0caiPBg==} + engines: {node: '>=12.0.0', npm: '>=5.6.0'} + hasBin: true + dependencies: + '@types/node': 17.0.45 + '@types/sax': 1.2.7 + arg: 5.0.2 + sax: 1.3.0 + dev: false + + /sonic-boom@3.8.0: + resolution: {integrity: sha512-ybz6OYOUjoQQCQ/i4LU8kaToD8ACtYP+Cj5qd2AO36bwbdewxWJ3ArmJ2cr6AvxlL2o0PqnCcPGUgkILbfkaCA==} + dependencies: + atomic-sleep: 1.0.0 + /source-map-js@1.0.2: resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} engines: {node: '>=0.10.0'} @@ -3480,7 +3729,6 @@ packages: /split2@4.2.0: resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} engines: {node: '>= 10.x'} - dev: true /sprintf-js@1.0.3: resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} @@ -3541,7 +3789,6 @@ packages: resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} dependencies: safe-buffer: 5.2.1 - dev: false /stringify-entities@4.0.3: resolution: {integrity: sha512-BP9nNHMhhfcMbiuQKCqMjhDP5yBCAxsPu4pHFFzJ6Alo9dZgY4VLDPutXqIjpRiMoKdp7Av85Gr73Q5uH9k7+g==} @@ -3550,6 +3797,12 @@ packages: character-entities-legacy: 3.0.0 dev: false + /stringify-json-object@1.0.7: + resolution: {integrity: sha512-swTYj+6RL1e4a6whybHPSw+/7X54fyEKbK/fK6uL81PMHohHawfpZDwtFU49vw/Mey6j19m9emN1YA2VE4aCog==} + dependencies: + types-json: 1.2.2 + dev: false + /strip-ansi@6.0.1: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} engines: {node: '>=8'} @@ -3583,6 +3836,11 @@ packages: requiresBuild: true dev: false + /strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + dev: true + /supports-color@5.5.0: resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} engines: {node: '>=4'} @@ -3636,11 +3894,24 @@ packages: streamx: 2.16.1 dev: false + /terminating-newline@1.2.4: + resolution: {integrity: sha512-zJ7ECSI+Ackgbck4h0n8tUg5Q/3vRpVV3T7ITb9w1NY6ezrA0oY0LTDEu1m3hstev7Ok4ZssS+UkL/PIXMz9vQ==} + dependencies: + detect-newline: 3.1.0 + ends-with-string: 1.0.1 + dev: false + /text-extensions@2.4.0: resolution: {integrity: sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g==} engines: {node: '>=8'} dev: true + /thread-stream@2.4.1: + resolution: {integrity: sha512-d/Ex2iWd1whipbT681JmTINKw0ZwOUBZm7+Gjs64DHuX34mmw8vJL2bFAaNacaW72zYiTJxSHi5abUuOi5nsfg==} + dependencies: + real-require: 0.2.0 + dev: false + /through@2.3.8: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} dev: true @@ -3689,6 +3960,10 @@ packages: engines: {node: '>=12.20'} dev: false + /types-json@1.2.2: + resolution: {integrity: sha512-VfVLISHypS7ayIHvhacOESOTib4Sm4mAhnsgR8fzQdGp89YoBwMqvGmqENjtYehUQzgclT+7NafpEXkK/MHKwA==} + dev: false + /typescript@5.3.3: resolution: {integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==} engines: {node: '>=14.17'} @@ -3873,8 +4148,8 @@ packages: vfile-message: 4.0.2 dev: false - /vite@5.1.4(@types/node@20.11.24)(sass@1.71.1): - resolution: {integrity: sha512-n+MPqzq+d9nMVTKyewqw6kSt+R3CkvF9QAKY8obiQn8g1fwTscKxyfaYnC632HtBXAQGc1Yjomphwn1dtwGAHg==} + /vite@5.1.5(@types/node@20.11.24)(sass@1.71.1): + resolution: {integrity: sha512-BdN1xh0Of/oQafhU+FvopafUp6WaYenLU/NFoL5WyJL++GxkNfieKzBhM24H3HVsPQrlAqB7iJYTHabzaRed5Q==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: @@ -3910,7 +4185,7 @@ packages: fsevents: 2.3.3 dev: false - /vitefu@0.2.5(vite@5.1.4): + /vitefu@0.2.5(vite@5.1.5): resolution: {integrity: sha512-SgHtMLoqaeeGnd2evZ849ZbACbnwQCIwRH57t18FxcXoZop0uQu0uzlIhJBlF/eWVzuce0sHeqPcDo+evVcg8Q==} peerDependencies: vite: ^3.0.0 || ^4.0.0 || ^5.0.0 @@ -3918,7 +4193,7 @@ packages: vite: optional: true dependencies: - vite: 5.1.4(@types/node@20.11.24)(sass@1.71.1) + vite: 5.1.5(@types/node@20.11.24)(sass@1.71.1) dev: false /web-namespaces@2.0.1: @@ -3984,6 +4259,25 @@ packages: /wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + + /write-dir-safe@1.0.1: + resolution: {integrity: sha512-wnY2yzWbfawmHs6sbAOsqLf+yEPS3I+9/kRrL9zAESb56KQa7gVG8ofxtZcdIAqsb47lHPXqEMOhzXoFJkE9Pw==} + dev: false + + /write-file-safe@1.3.1: + resolution: {integrity: sha512-9WC/i6b/WDNEtFFftvcnOwBD9QHmofAcURq1KsSxGsAHHTrQNbuwXApE11UcLuX0d49SU7W6CaV9Nqgaive8tw==} + dependencies: + file-exists-safe: 1.1.0 + remove-file-safe: 1.0.1 + terminating-newline: 1.2.4 + write-dir-safe: 1.0.1 + dev: false + + /write-json-safe@2.1.0: + resolution: {integrity: sha512-YORxvFx9nGlVcyhIHhUoApjeaf3Dom5KmnfQVOvDclfiS6yYhXhFXEmycksyhDlzzjKaLIwRUZDYyTg0jYlaRQ==} + dependencies: + stringify-json-object: 1.0.7 + write-file-safe: 1.3.1 dev: false /y18n@5.0.8: diff --git a/src/layouts/Layout.astro b/src/layouts/Layout.astro index ebe41aa..d0b93c9 100644 --- a/src/layouts/Layout.astro +++ b/src/layouts/Layout.astro @@ -13,7 +13,7 @@ interface Props { } const { title, desc } = Astro.props -const website = 'https://mr.touno.io' +const website = 'https://dvgamerr.app' const date = new Date().toISOString() const lang = getLangFromUrl(Astro.url)