diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 0000000..18f1a04 --- /dev/null +++ b/.prettierignore @@ -0,0 +1,2 @@ +**/*.md +pnpm-lock.yaml diff --git a/.prettierrc.yaml b/.prettierrc.yaml new file mode 100644 index 0000000..88e0a15 --- /dev/null +++ b/.prettierrc.yaml @@ -0,0 +1,6 @@ +proseWrap: always +semi: false +singleQuote: true +printWidth: 80 +trailingComma: none +htmlWhitespaceSensitivity: ignore diff --git a/docs/.vitepress/config.ts b/docs/.vitepress/config.ts index 248f522..2139c45 100644 --- a/docs/.vitepress/config.ts +++ b/docs/.vitepress/config.ts @@ -1,20 +1,20 @@ -import {defineConfig} from "vitepress"; -import {sharedConfig} from "./shared"; -import {enLocale} from "./locales/en-us"; -import {brLocale} from "./locales/pt-br"; +import { defineConfig } from 'vitepress' +import { sharedConfig } from './shared' +import { enLocale } from './locales/en-us' +import { brLocale } from './locales/pt-br' export default defineConfig({ - ...sharedConfig, - locales: { - root: { - label: "English", - lang: "en", - ...enLocale, - }, - br: { - label: "Brazilian Portuguese", - lang: "br", - ...brLocale, - }, + ...sharedConfig, + locales: { + root: { + label: 'English', + lang: 'en', + ...enLocale }, -}); + br: { + label: 'Brazilian Portuguese', + lang: 'br', + ...brLocale + } + } +}) diff --git a/docs/.vitepress/hooks/Template.vue b/docs/.vitepress/hooks/Template.vue index 552b518..034dfb7 100644 --- a/docs/.vitepress/hooks/Template.vue +++ b/docs/.vitepress/hooks/Template.vue @@ -1,10 +1,10 @@ diff --git a/docs/.vitepress/hooks/meta.ts b/docs/.vitepress/hooks/meta.ts index f7d32e4..c2f59ec 100644 --- a/docs/.vitepress/hooks/meta.ts +++ b/docs/.vitepress/hooks/meta.ts @@ -1,100 +1,100 @@ -import type {HeadConfig, TransformContext} from "vitepress"; +import type { HeadConfig, TransformContext } from 'vitepress' export function generateMeta(context: TransformContext, hostname: string) { - const head: HeadConfig[] = []; - const {pageData} = context; + const head: HeadConfig[] = [] + const { pageData } = context - const url = `${hostname}/${pageData.relativePath.replace(/((^|\/)index)?\.md$/, "$2")}`; + const url = `${hostname}/${pageData.relativePath.replace(/((^|\/)index)?\.md$/, '$2')}` + + head.push( + ['link', { rel: 'canonical', href: url }], + ['meta', { property: 'og:url', content: url }], + ['meta', { name: 'twitter:url', content: url }], + ['meta', { name: 'twitter:card', content: 'summary_large_image' }], + ['meta', { property: 'og:title', content: pageData.frontmatter.title }], + ['meta', { name: 'twitter:title', content: pageData.frontmatter.title }] + ) + if (pageData.frontmatter.description) { + head.push( + [ + 'meta', + { + property: 'og:description', + content: pageData.frontmatter.description + } + ], + [ + 'meta', + { + name: 'twitter:description', + content: pageData.frontmatter.description + } + ] + ) + } + if (pageData.frontmatter.image) { + head.push([ + 'meta', + { + property: 'og:image', + content: `${hostname}/${pageData.frontmatter.image.replace(/^\//, '')}` + } + ]) + head.push([ + 'meta', + { + name: 'twitter:image', + content: `${hostname}/${pageData.frontmatter.image.replace(/^\//, '')}` + } + ]) + } else { + const url = pageData.filePath.replace('index.md', '').replace('.md', '') + const imageUrl = `${url}/__og_image__/og.png` + .replaceAll('//', '/') + .replace(/^\//, '') head.push( - ["link", {rel: "canonical", href: url}], - ["meta", {property: "og:url", content: url}], - ["meta", {name: "twitter:url", content: url}], - ["meta", {name: "twitter:card", content: "summary_large_image"}], - ["meta", {property: "og:title", content: pageData.frontmatter.title}], - ["meta", {name: "twitter:title", content: pageData.frontmatter.title}], - ); - if (pageData.frontmatter.description) { - head.push( - [ - "meta", - { - property: "og:description", - content: pageData.frontmatter.description, - }, - ], - [ - "meta", - { - name: "twitter:description", - content: pageData.frontmatter.description, - }, - ], - ); - } - if (pageData.frontmatter.image) { - head.push([ - "meta", - { - property: "og:image", - content: `${hostname}/${pageData.frontmatter.image.replace(/^\//, "")}`, - }, - ]); - head.push([ - "meta", - { - name: "twitter:image", - content: `${hostname}/${pageData.frontmatter.image.replace(/^\//, "")}`, - }, - ]); - } else { - const url = pageData.filePath.replace("index.md", "").replace(".md", ""); - const imageUrl = `${url}/__og_image__/og.png` - .replaceAll("//", "/") - .replace(/^\//, ""); + ['meta', { property: 'og:image', content: `${hostname}/${imageUrl}` }], + ['meta', { property: 'og:image:width', content: '1200' }], + ['meta', { property: 'og:image:height', content: '628' }], + ['meta', { property: 'og:image:type', content: 'image/png' }], + [ + 'meta', + { property: 'og:image:alt', content: pageData.frontmatter.title } + ], + ['meta', { name: 'twitter:image', content: `${hostname}/${imageUrl}` }], + ['meta', { name: 'twitter:image:width', content: '1200' }], + ['meta', { name: 'twitter:image:height', content: '628' }], + [ + 'meta', + { name: 'twitter:image:alt', content: pageData.frontmatter.title } + ] + ) + } + if (pageData.frontmatter.tag) { + head.push([ + 'meta', + { property: 'article:tag', content: pageData.frontmatter.tag } + ]) + } + if (pageData.frontmatter.date) { + head.push([ + 'meta', + { + property: 'article:published_time', + content: pageData.frontmatter.date + } + ]) + } + if (pageData.lastUpdated && pageData.frontmatter.lastUpdated !== false) { + head.push([ + 'meta', + { + property: 'article:modified_time', + content: new Date(pageData.lastUpdated).toISOString() + } + ]) + } - head.push( - ["meta", {property: "og:image", content: `${hostname}/${imageUrl}`}], - ["meta", {property: "og:image:width", content: "1200"}], - ["meta", {property: "og:image:height", content: "628"}], - ["meta", {property: "og:image:type", content: "image/png"}], - [ - "meta", - {property: "og:image:alt", content: pageData.frontmatter.title}, - ], - ["meta", {name: "twitter:image", content: `${hostname}/${imageUrl}`}], - ["meta", {name: "twitter:image:width", content: "1200"}], - ["meta", {name: "twitter:image:height", content: "628"}], - [ - "meta", - {name: "twitter:image:alt", content: pageData.frontmatter.title}, - ], - ); - } - if (pageData.frontmatter.tag) { - head.push([ - "meta", - {property: "article:tag", content: pageData.frontmatter.tag}, - ]); - } - if (pageData.frontmatter.date) { - head.push([ - "meta", - { - property: "article:published_time", - content: pageData.frontmatter.date, - }, - ]); - } - if (pageData.lastUpdated && pageData.frontmatter.lastUpdated !== false) { - head.push([ - "meta", - { - property: "article:modified_time", - content: new Date(pageData.lastUpdated).toISOString(), - }, - ]); - } - - return head; + return head } diff --git a/docs/.vitepress/hooks/opengraph.ts b/docs/.vitepress/hooks/opengraph.ts index 647e242..3596f25 100644 --- a/docs/.vitepress/hooks/opengraph.ts +++ b/docs/.vitepress/hooks/opengraph.ts @@ -1,98 +1,95 @@ -import {mkdir, readFile, writeFile} from "node:fs/promises"; -import {dirname, resolve} from "node:path"; -import {fileURLToPath} from "node:url"; -import type {ContentData, SiteConfig} from "vitepress"; -import {createContentLoader} from "vitepress"; -import {type SatoriOptions, satoriVue} from "x-satori/vue"; -import {renderAsync} from "@resvg/resvg-js"; +import { mkdir, readFile, writeFile } from 'node:fs/promises' +import { dirname, resolve } from 'node:path' +import { fileURLToPath } from 'node:url' +import type { ContentData, SiteConfig } from 'vitepress' +import { createContentLoader } from 'vitepress' +import { type SatoriOptions, satoriVue } from 'x-satori/vue' +import { renderAsync } from '@resvg/resvg-js' -const __dirname = dirname(fileURLToPath(import.meta.url)); -const __fonts = resolve(__dirname, "../fonts"); +const __dirname = dirname(fileURLToPath(import.meta.url)) +const __fonts = resolve(__dirname, '../fonts') export async function generateImages(config: SiteConfig): Promise { - const pages = await createContentLoader("**/*.md", {excerpt: true}).load(); - const template = await readFile( - resolve(__dirname, "./Template.vue"), - "utf-8", - ); + const pages = await createContentLoader('*_/_.md', { excerpt: true }).load() + const template = await readFile(resolve(__dirname, './Template.vue'), 'utf-8') - const fonts: SatoriOptions["fonts"] = [ - { - name: "Inter", - data: await readFile(resolve(__fonts, "Inter-Regular.otf")), - weight: 400, - style: "normal", - }, - { - name: "Inter", - data: await readFile(resolve(__fonts, "Inter-Medium.otf")), - weight: 500, - style: "normal", - }, - { - name: "Inter", - data: await readFile(resolve(__fonts, "Inter-SemiBold.otf")), - weight: 600, - style: "normal", - }, - { - name: "Inter", - data: await readFile(resolve(__fonts, "Inter-Bold.otf")), - weight: 700, - style: "normal", - }, - ]; - - for (const page of pages) { - await generateImage({ - page, - template, - outDir: config.outDir, - fonts, - }); + const fonts: SatoriOptions['fonts'] = [ + { + name: 'Inter', + data: await readFile(resolve(__fonts, 'Inter-Regular.otf')), + weight: 400, + style: 'normal' + }, + { + name: 'Inter', + data: await readFile(resolve(__fonts, 'Inter-Medium.otf')), + weight: 500, + style: 'normal' + }, + { + name: 'Inter', + data: await readFile(resolve(__fonts, 'Inter-SemiBold.otf')), + weight: 600, + style: 'normal' + }, + { + name: 'Inter', + data: await readFile(resolve(__fonts, 'Inter-Bold.otf')), + weight: 700, + style: 'normal' } - return console.info("Generated opengraph images."); + ] + + for (const page of pages) { + await generateImage({ + page, + template, + outDir: config.outDir, + fonts + }) + } + return console.info('Generated opengraph images.') } interface GenerateImagesOptions { - page: ContentData; - template: string; - outDir: string; - fonts: SatoriOptions["fonts"]; + page: ContentData + template: string + outDir: string + fonts: SatoriOptions['fonts'] } async function generateImage({ - page, - template, - outDir, - fonts, - }: GenerateImagesOptions): Promise { - const {frontmatter, url} = page; + page, + template, + outDir, + fonts +}: GenerateImagesOptions): Promise { + const { frontmatter, url } = page - const options: SatoriOptions = { - width: 1200, - height: 628, - fonts, - props: { - title: - frontmatter.layout === "home" - ? frontmatter.hero.name ?? frontmatter.title - : frontmatter.title, - description: - frontmatter.layout === "home" - ? frontmatter.hero.tagline ?? frontmatter.description - : frontmatter.description, - }, - }; + const options: SatoriOptions = { + width: 1200, + height: 628, + fonts, + props: { + title: + frontmatter.layout === 'home' + ? frontmatter.hero.name ?? frontmatter.title + : frontmatter.title, + description: + frontmatter.layout === 'home' + ? frontmatter.hero.tagline ?? frontmatter.description + : frontmatter.description + } + } - const svg = await satoriVue(options, template); + const svg = await satoriVue(options, template) - const render = await renderAsync(svg); + const render = await renderAsync(svg) - const outputFolder = resolve(outDir, url.slice(1), "__og_image__"); - const outputFile = resolve(outputFolder, "og.png"); + const outputFolder = resolve(outDir, url.slice(1), '**og_image**') + const outputFile = resolve(outputFolder, 'og.png') - await mkdir(outputFolder, {recursive: true}); + await mkdir(outputFolder, { recursive: true }) - await writeFile(outputFile, render.asPng()); + await writeFile(outputFile, render.asPng()) } diff --git a/docs/.vitepress/hooks/satoriConfig.ts b/docs/.vitepress/hooks/satoriConfig.ts index 71d906f..30a3801 100644 --- a/docs/.vitepress/hooks/satoriConfig.ts +++ b/docs/.vitepress/hooks/satoriConfig.ts @@ -1,47 +1,47 @@ -import {readFile} from "node:fs/promises"; -import {dirname, resolve} from "node:path"; -import {fileURLToPath} from "node:url"; -import type {SatoriOptions} from "x-satori/vue"; -import {defineSatoriConfig} from "x-satori/vue"; +import { readFile } from 'node:fs/promises' +import { dirname, resolve } from 'node:path' +import { fileURLToPath } from 'node:url' +import type { SatoriOptions } from 'x-satori/vue' +import { defineSatoriConfig } from 'x-satori/vue' -const __dirname = dirname(fileURLToPath(import.meta.url)); -const __fonts = resolve(__dirname, "../fonts"); +const __dirname = dirname(fileURLToPath(import.meta.url)) +const __fonts = resolve(__dirname, '../fonts') -const fonts: SatoriOptions["fonts"] = [ - { - name: "Inter", - data: await readFile(resolve(__fonts, "Inter-Regular.otf")), - weight: 400, - style: "normal", - }, - { - name: "Inter", - data: await readFile(resolve(__fonts, "Inter-Medium.otf")), - weight: 500, - style: "normal", - }, - { - name: "Inter", - data: await readFile(resolve(__fonts, "Inter-SemiBold.otf")), - weight: 600, - style: "normal", - }, - { - name: "Inter", - data: await readFile(resolve(__fonts, "Inter-Bold.otf")), - weight: 700, - style: "normal", - }, -]; +const fonts: SatoriOptions['fonts'] = [ + { + name: 'Inter', + data: await readFile(resolve(__fonts, 'Inter-Regular.otf')), + weight: 400, + style: 'normal' + }, + { + name: 'Inter', + data: await readFile(resolve(__fonts, 'Inter-Medium.otf')), + weight: 500, + style: 'normal' + }, + { + name: 'Inter', + data: await readFile(resolve(__fonts, 'Inter-SemiBold.otf')), + weight: 600, + style: 'normal' + }, + { + name: 'Inter', + data: await readFile(resolve(__fonts, 'Inter-Bold.otf')), + weight: 700, + style: 'normal' + } +] export default defineSatoriConfig({ - width: 1200, - height: 628, - fonts, - props: { - title: "Title", - description: - "Lorem ipsum dolor sit amet, qui minim labore adipisicing minim sint cillum sint consectetur cupidatat.", - dir: "/j", - }, -}); + width: 1200, + height: 628, + fonts, + props: { + title: 'Title', + description: + 'Lorem ipsum dolor sit amet, qui minim labore adipisicing minim sint cillum sint consectetur cupidatat.', + dir: '/j' + } +}) diff --git a/docs/.vitepress/locales/en-us.ts b/docs/.vitepress/locales/en-us.ts index b28f8ee..84077b9 100644 --- a/docs/.vitepress/locales/en-us.ts +++ b/docs/.vitepress/locales/en-us.ts @@ -1,27 +1,27 @@ -import {DefaultTheme, LocaleSpecificConfig} from "vitepress"; +import { DefaultTheme, LocaleSpecificConfig } from 'vitepress' const navbar: DefaultTheme.NavItem[] = [ - {text: "Get Started", link: "/start"}, - {text: "Contribute", link: "/contribute"}, -]; + { text: 'Get Started', link: '/start' }, + { text: 'Contribute', link: '/contribute' } +] const sidebar: DefaultTheme.Sidebar = [ - {text: "Glossary", link: "/glossary"}, - {text: "Software", link: "/software"}, - {text: "Download", link: "/download"}, - {text: "Emulation", link: "/emulation"}, - {text: "Linux", link: "/linux"}, - {text: "Useful", link: "/useful"}, - {text: "Unsafe", link: "/unsafe"}, -]; + { text: 'Glossary', link: '/glossary' }, + { text: 'Software', link: '/software' }, + { text: 'Download', link: '/download' }, + { text: 'Emulation', link: '/emulation' }, + { text: 'Linux', link: '/linux' }, + { text: 'Useful', link: '/useful' }, + { text: 'Unsafe', link: '/unsafe' } +] export const enLocale: LocaleSpecificConfig = { - ...navbar, - themeConfig: { - sidebar, - editLink: { - pattern: "https://github.com/privateersclub/wiki/edit/master/docs/:path", - text: "Suggest Changes", - }, - }, -}; + ...navbar, + themeConfig: { + sidebar, + editLink: { + pattern: 'https://github.com/privateersclub/wiki/edit/master/docs/:path', + text: 'Suggest Changes' + } + } +} diff --git a/docs/.vitepress/locales/pt-br.ts b/docs/.vitepress/locales/pt-br.ts index 8f0a64e..37b8700 100644 --- a/docs/.vitepress/locales/pt-br.ts +++ b/docs/.vitepress/locales/pt-br.ts @@ -1,27 +1,27 @@ -import {DefaultTheme, LocaleSpecificConfig} from "vitepress"; +import { DefaultTheme, LocaleSpecificConfig } from 'vitepress' const navbar: DefaultTheme.NavItem[] = [ - {text: "Começar", link: "/start"}, - {text: "Contribuir", link: "/contribute"}, -]; + { text: 'Começar', link: '/start' }, + { text: 'Contribuir', link: '/contribute' } +] const sidebar: DefaultTheme.Sidebar = [ - {text: "Glossário", link: "/br/glossary"}, - {text: "Programas", link: "/br/software"}, - {text: "Downloads", link: "/br/download"}, - {text: "Emulação", link: "/br/emulation"}, - {text: "Linux", link: "/br/linux"}, - {text: "Útil", link: "/br/useful"}, - {text: "Não Seguro", link: "/br/unsafe"}, -]; + { text: 'Glossário', link: '/br/glossary' }, + { text: 'Programas', link: '/br/software' }, + { text: 'Downloads', link: '/br/download' }, + { text: 'Emulação', link: '/br/emulation' }, + { text: 'Linux', link: '/br/linux' }, + { text: 'Útil', link: '/br/useful' }, + { text: 'Não Seguro', link: '/br/unsafe' } +] export const brLocale: LocaleSpecificConfig = { - ...navbar, - themeConfig: { - sidebar: sidebar, - editLink: { - pattern: "https://github.com/privateersclub/wiki/edit/master/docs/:path", - text: "Sugerir Mudanças", - }, - }, -}; + ...navbar, + themeConfig: { + sidebar: sidebar, + editLink: { + pattern: 'https://github.com/privateersclub/wiki/edit/master/docs/:path', + text: 'Sugerir Mudanças' + } + } +} diff --git a/docs/.vitepress/shared.ts b/docs/.vitepress/shared.ts index 9e1806a..276017a 100644 --- a/docs/.vitepress/shared.ts +++ b/docs/.vitepress/shared.ts @@ -1,40 +1,114 @@ -import {defineConfig} from "vitepress"; -import UnoCSS from "unocss/vite"; +import { defineConfig } from 'vitepress' +import UnoCSS from 'unocss/vite' +import { + PageProperties, + PagePropertiesMarkdownSection +} from '@nolebase/vitepress-plugin-page-properties/vite' +import { + GitChangelog, + GitChangelogMarkdownSection +} from '@nolebase/vitepress-plugin-git-changelog/vite' export const sharedConfig = defineConfig({ - title: "privateersclub/wiki", - description: "The most comprehensive game piracy wiki on the internet.", - base: process.env.BASE_URL || "/", - lang: "en-US", - lastUpdated: true, - cleanUrls: true, - appearance: "dark", - titleTemplate: ":title • Wiki", - head: [ - ["meta", {name: "theme-color", content: "#ADF0DD"}], - ["meta", {name: "og:type", content: "website"}], - ["meta", {name: "og:locale", content: "en"}], - ], - vite: {plugins: [UnoCSS()]}, - // transformHead: async (context) => - // generateMeta(context, "https://megathread.pages.dev"), - // buildEnd(siteConfig) { - // generateImages(siteConfig); - // }, - themeConfig: { - search: { - provider: "local", - }, - docFooter: {next: false, prev: false}, - socialLinks: [ - {icon: "github", link: "https://github.com/privateersclub/wiki"}, - {icon: "discord", link: "https://discord.gg/jz8dUnnD6Q"}, - { - icon: { - svg: '', - }, - link: "https://privateer.divolt.xyz", - }, - ], + title: 'privateersclub/wiki', + description: 'The most comprehensive game piracy wiki on the internet.', + base: process.env.BASE_URL || '/', + lang: 'en-US', + lastUpdated: true, + cleanUrls: true, + appearance: 'dark', + titleTemplate: ':title • Wiki', + head: [ + ['meta', { name: 'theme-color', content: '#ADF0DD' }], + ['meta', { name: 'og:type', content: 'website' }], + ['meta', { name: 'og:locale', content: 'en' }] + ], + vite: { + optimizeDeps: { + exclude: ['@nolebase/vitepress-plugin-enhanced-readabilities/client'] }, -}); + ssr: { + noExternal: [ + '@nolebase/vitepress-plugin-enhanced-readabilities', + '@nolebase/vitepress-plugin-page-properties' + ] + }, + plugins: [ + UnoCSS(), + GitChangelog({ + maxGitLogCount: 2000, + repoURL: () => 'https://github.com/privateersclub/wiki' + }), + GitChangelogMarkdownSection(), + PageProperties(), + PagePropertiesMarkdownSection() + ] + }, + // transformHead: async (context) => + // generateMeta(context, "https://megathread.pages.dev"), + // buildEnd(siteConfig) { + // generateImages(siteConfig); + // }, + themeConfig: { + search: { + provider: 'local', + options: { + // Add title ang tags field in frontmatter to search + // You can exclude a page from search by adding search: false to the page's frontmatter. + _render(src, env, md) { + // without `md.render(src, env)`, the some information will be missing from the env. + let html = md.render(src, env) + let tagsPart = '' + let headingPart = '' + let contentPart = '' + let fullContent = '' + const sortContent = () => + [headingPart, tagsPart, contentPart] as const + let { frontmatter, content } = env + + if (!frontmatter) return html + + if (frontmatter.search === false) return '' + + contentPart = content ||= src + + const headingMatch = content.match(/^#{1} .*/m) + const hasHeading = !!( + headingMatch && + headingMatch[0] && + headingMatch.index !== undefined + ) + + if (hasHeading) { + const headingEnd = headingMatch.index! + headingMatch[0].length + headingPart = content.slice(0, headingEnd) + contentPart = content.slice(headingEnd) + } else if (frontmatter.title) { + headingPart = `# ${frontmatter.title}` + } + + const tags = frontmatter.tags + if (tags && Array.isArray(tags) && tags.length) + tagsPart = `Tags: #${tags.join(', #')}` + + fullContent = sortContent().filter(Boolean).join('\n\n') + + html = md.render(fullContent, env) + + return html + } + } + }, + docFooter: { next: false, prev: false }, + socialLinks: [ + { icon: 'github', link: 'https://github.com/privateersclub/wiki' }, + { icon: 'discord', link: 'https://discord.gg/jz8dUnnD6Q' }, + { + icon: { + svg: '' + }, + link: 'https://privateer.divolt.xyz' + } + ] + } +}) diff --git a/docs/.vitepress/theme/composables/nprogress.ts b/docs/.vitepress/theme/composables/nprogress.ts index 7b38406..1ef543d 100644 --- a/docs/.vitepress/theme/composables/nprogress.ts +++ b/docs/.vitepress/theme/composables/nprogress.ts @@ -1,23 +1,23 @@ -import nprogress, {type NProgress} from "nprogress"; -import type {EnhanceAppContext} from "vitepress"; +import nprogress, { type NProgress } from 'nprogress' +import type { EnhanceAppContext } from 'vitepress' -export function loadProgress(router: EnhanceAppContext["router"]): NProgress { - if (typeof window === "undefined") return; +export function loadProgress(router: EnhanceAppContext['router']): NProgress { + if (typeof window === 'undefined') return - setTimeout(() => { - nprogress.configure({showSpinner: false}); + setTimeout(() => { + nprogress.configure({ showSpinner: false }) - const cacheBeforeRouteChange = router.onBeforeRouteChange; - const cacheAfterRouteChange = router.onAfterRouteChanged; - router.onBeforeRouteChange = (to) => { - nprogress.start(); - cacheBeforeRouteChange?.(to); - }; - router.onAfterRouteChanged = (to) => { - nprogress.done(); - cacheAfterRouteChange?.(to); - }; - }); + const cacheBeforeRouteChange = router.onBeforeRouteChange + const cacheAfterRouteChange = router.onAfterRouteChanged + router.onBeforeRouteChange = (to) => { + nprogress.start() + cacheBeforeRouteChange?.(to) + } + router.onAfterRouteChanged = (to) => { + nprogress.done() + cacheAfterRouteChange?.(to) + } + }) - return nprogress; + return nprogress } diff --git a/docs/.vitepress/theme/index.ts b/docs/.vitepress/theme/index.ts index c706941..cd036f5 100644 --- a/docs/.vitepress/theme/index.ts +++ b/docs/.vitepress/theme/index.ts @@ -1,12 +1,101 @@ -import {type Theme} from "vitepress"; -import DefaultTheme from "vitepress/theme"; -import {loadProgress} from "./composables/nprogress"; -import "./style.css"; -import "uno.css"; +import { h } from 'vue' +import { type Theme } from 'vitepress' +import DefaultTheme from 'vitepress/theme' +import { + NolebaseEnhancedReadabilitiesMenu, + NolebaseEnhancedReadabilitiesScreenMenu +} from '@nolebase/vitepress-plugin-enhanced-readabilities/client' +import { NolebaseGitChangelogPlugin } from '@nolebase/vitepress-plugin-git-changelog/client' +import { NolebasePagePropertiesPlugin } from '@nolebase/vitepress-plugin-page-properties/client' +import { loadProgress } from './composables/nprogress' +import '@nolebase/vitepress-plugin-enhanced-readabilities/client/style.css' +import '@nolebase/vitepress-plugin-page-properties/client/style.css' +import '@nolebase/vitepress-plugin-git-changelog/client/style.css' +import './style.css' +import 'uno.css' export default { - extends: DefaultTheme, - enhanceApp({router}) { - loadProgress(router); - }, -} satisfies Theme; + extends: DefaultTheme, + Layout: () => { + return h(DefaultTheme.Layout, null, { + // A enhanced readabilities menu for wider screens + 'nav-bar-content-after': () => h(NolebaseEnhancedReadabilitiesMenu), + // A enhanced readabilities menu for narrower screens (usually smaller than iPad Mini) + 'nav-screen-content-after': () => + h(NolebaseEnhancedReadabilitiesScreenMenu) + }) + }, + enhanceApp({ router, app }) { + loadProgress(router) + app.use(NolebaseGitChangelogPlugin, { + mapAuthors: [ + { + name: 'taskylizard', + username: 'taskylizard', + avatar: 'https://github.com/taskylizard.png' + }, + { + name: 'Kazevic', + username: 'Kazevic', + avatar: 'https://github.com/kazevic.png' + } + ] + }) + // @ts-expect-error + app.use( + NolebasePagePropertiesPlugin<{ tags: string[]; progress: number }>(), + { + properties: { + en: [ + { + key: 'tags', + type: 'tags', + title: 'Tags' + }, + { + key: 'progress', + type: 'progress', + title: 'Progress' + }, + { + key: 'createdAt', + type: 'datetime', + title: 'Created at', + formatAsFrom: true, + dateFnsLocaleName: 'enUS' + }, + { + key: 'updatedAt', + type: 'datetime', + title: 'Updated at', + formatAsFrom: true, + dateFnsLocaleName: 'enUS' + }, + { + key: 'url1', + type: 'link', + title: 'URL 1' + }, + { + key: 'wordsCount', + type: 'dynamic', + title: 'Word count', + options: { + type: 'wordsCount' + } + }, + { + key: 'readingTime', + type: 'dynamic', + title: 'Reading time', + options: { + type: 'readingTime', + dateFnsLocaleName: 'enUS' + } + } + ] + } + } + ) + } +} satisfies Theme diff --git a/docs/.vitepress/theme/style.css b/docs/.vitepress/theme/style.css index 9428d04..206dbf8 100644 --- a/docs/.vitepress/theme/style.css +++ b/docs/.vitepress/theme/style.css @@ -1,176 +1,211 @@ :root { - --vp-c-brand-1: #1fd8a4; - --vp-c-brand-2: #4acdab; - --vp-c-brand-3: #3abd9d; - --vp-c-brand-soft: #2aae8f; + --vp-c-brand-1: #1fd8a4; + --vp-c-brand-2: #4acdab; + --vp-c-brand-3: #3abd9d; + --vp-c-brand-soft: #2aae8f; - /* Colors: Button */ - --vp-button-brand-bg: var(--vp-c-brand-1); - --vp-button-brand-border: var(--vp-c-brand-soft); - --vp-button-brand-text: var(--vp-c-white); - --vp-button-brand-hover-border: var(--vp-c-brand-soft); - --vp-button-brand-hover-text: var(--vp-c-white); - --vp-button-brand-hover-bg: var(--vp-c-brand-soft); - --vp-button-brand-active-border: var(--vp-c-brand-soft); - --vp-button-brand-active-text: var(--vp-c-white); - --vp-button-brand-active-bg: var(--vp-button-brand-bg); - --vp-button-alt-bg: #484848; - --vp-button-alt-text: #f0eeee; - --vp-button-alt-hover-bg: #484848; - --vp-button-alt-hover-text: #f0eeee; + /* Colors: Button */ + --vp-button-brand-bg: var(--vp-c-brand-1); + --vp-button-brand-border: var(--vp-c-brand-soft); + --vp-button-brand-text: var(--vp-c-white); + --vp-button-brand-hover-border: var(--vp-c-brand-soft); + --vp-button-brand-hover-text: var(--vp-c-white); + --vp-button-brand-hover-bg: var(--vp-c-brand-soft); + --vp-button-brand-active-border: var(--vp-c-brand-soft); + --vp-button-brand-active-text: var(--vp-c-white); + --vp-button-brand-active-bg: var(--vp-button-brand-bg); + --vp-button-alt-bg: #484848; + --vp-button-alt-text: #f0eeee; + --vp-button-alt-hover-bg: #484848; + --vp-button-alt-hover-text: #f0eeee; - --vp-c-bg-elv: rgba(255, 255, 255, 0.7); - --vp-c-bg-mark: rgb(232, 232, 232); + --vp-c-bg-elv: rgba(255, 255, 255, 0.7); + --vp-c-bg-mark: rgb(232, 232, 232); - /* Colors: Custom Block */ - --vp-custom-block-info-bg: rgba(171, 210, 244, 0.05); - --vp-custom-block-info-border: #60c4fa; - --vp-custom-block-info-text: rgb(39, 115, 145); - --vp-custom-block-info-text-deep: rgb(18, 121, 162); - --vp-custom-block-tip-bg: rgba(137, 202, 176, 0.05); - --vp-custom-block-tip-border: rgba(34, 197, 94, 1); - --vp-custom-block-tip-text: rgb(10, 128, 90); - --vp-custom-block-tip-text-deep: rgb(11, 133, 94); - --vp-custom-block-warning-bg: rgba(250, 204, 21, 0.05); - --vp-custom-block-warning-border: rgba(245, 158, 11, 1); - --vp-custom-block-warning-text: rgb(166, 114, 35); - --vp-custom-block-warning-text-deep: rgb(199, 109, 6); - --vp-custom-block-danger-bg: rgba(220, 38, 38, 0.05); - --vp-custom-block-danger-border: rgba(248, 113, 113, 1); - --vp-custom-block-danger-text: rgb(196, 46, 46); - --vp-custom-block-danger-text-deep: rgba(220, 38, 38, 1); + /* Colors: Custom Block */ + --vp-custom-block-info-bg: rgba(171, 210, 244, 0.05); + --vp-custom-block-info-border: #60c4fa; + --vp-custom-block-info-text: rgb(39, 115, 145); + --vp-custom-block-info-text-deep: rgb(18, 121, 162); + --vp-custom-block-tip-bg: rgba(137, 202, 176, 0.05); + --vp-custom-block-tip-border: rgba(34, 197, 94, 1); + --vp-custom-block-tip-text: rgb(10, 128, 90); + --vp-custom-block-tip-text-deep: rgb(11, 133, 94); + --vp-custom-block-warning-bg: rgba(250, 204, 21, 0.05); + --vp-custom-block-warning-border: rgba(245, 158, 11, 1); + --vp-custom-block-warning-text: rgb(166, 114, 35); + --vp-custom-block-warning-text-deep: rgb(199, 109, 6); + --vp-custom-block-danger-bg: rgba(220, 38, 38, 0.05); + --vp-custom-block-danger-border: rgba(248, 113, 113, 1); + --vp-custom-block-danger-text: rgb(196, 46, 46); + --vp-custom-block-danger-text-deep: rgba(220, 38, 38, 1); } .dark { - /* Colors: Background */ - --vp-c-bg: rgb(22, 22, 22); - --vp-c-bg-alt: rgb(23, 23, 23); - --vp-c-bg-elv: rgba(23, 23, 23, 0.8); + /* Colors: Background */ + --vp-c-bg: rgb(22, 22, 22); + --vp-c-bg-alt: rgb(23, 23, 23); + --vp-c-bg-elv: rgba(23, 23, 23, 0.8); - /* Colors: Custom Block */ - --vp-custom-block-info-bg: rgba(84, 110, 155, 0.1); - --vp-custom-block-info-border: #3686b1; - --vp-custom-block-info-text: #52b0e3; - --vp-custom-block-info-text-deep: #00b7ff; - --vp-custom-block-tip-bg: rgba(51, 130, 118, 0.1); - --vp-custom-block-tip-border: rgba(4, 120, 87, 1); - --vp-custom-block-tip-text: rgb(25, 190, 129); - --vp-custom-block-tip-text-deep: rgba(52, 211, 153, 1); - --vp-custom-block-warning-bg: rgba(253, 224, 71, 0.1); - --vp-custom-block-warning-border: rgba(202, 138, 4, 1); - --vp-custom-block-warning-text: rgba(234, 179, 8, 1); - --vp-custom-block-warning-text-deep: rgba(250, 204, 21, 1); - --vp-custom-block-danger-bg: rgba(239, 68, 68, 0.1); - --vp-custom-block-danger-border: rgba(127, 29, 29, 1); - --vp-custom-block-danger-text: rgba(248, 113, 113, 1); - --vp-custom-block-danger-text-deep: rgba(248, 113, 113, 1); + /* Colors: Custom Block */ + --vp-custom-block-info-bg: rgba(84, 110, 155, 0.1); + --vp-custom-block-info-border: #3686b1; + --vp-custom-block-info-text: #52b0e3; + --vp-custom-block-info-text-deep: #00b7ff; + --vp-custom-block-tip-bg: rgba(51, 130, 118, 0.1); + --vp-custom-block-tip-border: rgba(4, 120, 87, 1); + --vp-custom-block-tip-text: rgb(25, 190, 129); + --vp-custom-block-tip-text-deep: rgba(52, 211, 153, 1); + --vp-custom-block-warning-bg: rgba(253, 224, 71, 0.1); + --vp-custom-block-warning-border: rgba(202, 138, 4, 1); + --vp-custom-block-warning-text: rgba(234, 179, 8, 1); + --vp-custom-block-warning-text-deep: rgba(250, 204, 21, 1); + --vp-custom-block-danger-bg: rgba(239, 68, 68, 0.1); + --vp-custom-block-danger-border: rgba(127, 29, 29, 1); + --vp-custom-block-danger-text: rgba(248, 113, 113, 1); + --vp-custom-block-danger-text-deep: rgba(248, 113, 113, 1); } .vp-doc a { - color: var(--vp-c-brand-1); - text-decoration: underline; - text-underline-offset: 4px; - text-decoration-style: solid; - text-decoration-color: transparent; - -webkit-text-decoration-color: transparent; - transition: text-decoration-color 0.25s; + color: var(--vp-c-brand-1); + text-decoration: underline; + text-underline-offset: 4px; + text-decoration-style: solid; + text-decoration-color: transparent; + -webkit-text-decoration-color: transparent; + transition: text-decoration-color 0.25s; } .vp-doc a:hover { - color: var(--vp-c-brand-1); - text-decoration-color: var(--vp-c-brand-1); - -webkit-text-decoration-color: var(--vp-c-brand-1); + color: var(--vp-c-brand-1); + text-decoration-color: var(--vp-c-brand-1); + -webkit-text-decoration-color: var(--vp-c-brand-1); } .vp-doc .custom-block a { - text-decoration: underline; - text-underline-offset: 4px; - text-decoration-style: solid; + text-decoration: underline; + text-underline-offset: 4px; + text-decoration-style: solid; } ::selection { - background-color: var(--vp-button-brand-bg); + background-color: var(--vp-button-brand-bg); } /* Make clicks pass-through */ #nprogress { - pointer-events: none; + pointer-events: none; } #nprogress .bar { - background: var(--vp-c-brand-1); - position: fixed; - z-index: 1031; - top: 0; - left: 0; - width: 100%; - height: 2px; + background: var(--vp-c-brand-1); + position: fixed; + z-index: 1031; + top: 0; + left: 0; + width: 100%; + height: 2px; } /* Fancy blur effect */ #nprogress .peg { - display: block; - position: absolute; - right: 0; - width: 100px; - height: 100%; - box-shadow: 0 0 10px var(--vp-c-brand-1), + display: block; + position: absolute; + right: 0; + width: 100px; + height: 100%; + box-shadow: + 0 0 10px var(--vp-c-brand-1), 0 0 5px var(--vp-c-brand-1); - opacity: 1; + opacity: 1; - -webkit-transform: rotate(3deg) translate(0px, -4px); - -ms-transform: rotate(3deg) translate(0px, -4px); - transform: rotate(3deg) translate(0px, -4px); + -webkit-transform: rotate(3deg) translate(0px, -4px); + -ms-transform: rotate(3deg) translate(0px, -4px); + transform: rotate(3deg) translate(0px, -4px); } #nprogress .spinner { - display: block; - position: fixed; - z-index: 1031; - top: 15px; - right: 15px; + display: block; + position: fixed; + z-index: 1031; + top: 15px; + right: 15px; } #nprogress .spinner-icon { - width: 18px; - height: 18px; - box-sizing: border-box; + width: 18px; + height: 18px; + box-sizing: border-box; - border: solid 2px transparent; - border-top-color: var(--vp-c-brand); - border-left-color: var(--vp-c-brand); - border-radius: 50%; + border: solid 2px transparent; + border-top-color: var(--vp-c-brand); + border-left-color: var(--vp-c-brand); + border-radius: 50%; - -webkit-animation: nprogress-spinner 400ms linear infinite; - animation: nprogress-spinner 400ms linear infinite; + -webkit-animation: nprogress-spinner 400ms linear infinite; + animation: nprogress-spinner 400ms linear infinite; } .nprogress-custom-parent { - overflow: hidden; - position: relative; + overflow: hidden; + position: relative; } .nprogress-custom-parent #nprogress .spinner, .nprogress-custom-parent #nprogress .bar { - position: absolute; + position: absolute; } @-webkit-keyframes nprogress-spinner { - 0% { - -webkit-transform: rotate(0deg); - } + 0% { + -webkit-transform: rotate(0deg); + } - 100% { - -webkit-transform: rotate(360deg); - } + 100% { + -webkit-transform: rotate(360deg); + } } @keyframes nprogress-spinner { - 0% { - transform: rotate(0deg); - } + 0% { + transform: rotate(0deg); + } - 100% { - transform: rotate(360deg); - } + 100% { + transform: rotate(360deg); + } +} + +.info.custom-block { + --icon: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGNsYXNzPSJsdWNpZGUgbHVjaWRlLWluZm8iPjxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjEwIi8+PHBhdGggZD0iTTEyIDE2di00Ii8+PHBhdGggZD0iTTEyIDhoLjAxIi8+PC9zdmc+'); +} + +.tip.custom-block { + --icon: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGNsYXNzPSJsdWNpZGUgbHVjaWRlLWxpZ2h0YnVsYiI+PHBhdGggZD0iTTE1IDE0Yy4yLTEgLjctMS43IDEuNS0yLjUgMS0uOSAxLjUtMi4yIDEuNS0zLjVBNiA2IDAgMCAwIDYgOGMwIDEgLjIgMi4yIDEuNSAzLjUuNy43IDEuMyAxLjUgMS41IDIuNSIvPjxwYXRoIGQ9Ik05IDE4aDYiLz48cGF0aCBkPSJNMTAgMjJoNCIvPjwvc3ZnPg=='); +} + +.warning.custom-block { + --icon: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGNsYXNzPSJsdWNpZGUgbHVjaWRlLWFsZXJ0LXRyaWFuZ2xlIj48cGF0aCBkPSJtMjEuNzMgMTgtOC0xNGEyIDIgMCAwIDAtMy40OCAwbC04IDE0QTIgMiAwIDAgMCA0IDIxaDE2YTIgMiAwIDAgMCAxLjczLTNaIi8+PHBhdGggZD0iTTEyIDl2NCIvPjxwYXRoIGQ9Ik0xMiAxN2guMDEiLz48L3N2Zz4='); +} + +.danger.custom-block { + --icon: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGNsYXNzPSJsdWNpZGUgbHVjaWRlLXNrdWxsIj48Y2lyY2xlIGN4PSI5IiBjeT0iMTIiIHI9IjEiLz48Y2lyY2xlIGN4PSIxNSIgY3k9IjEyIiByPSIxIi8+PHBhdGggZD0iTTggMjB2Mmg4di0yIi8+PHBhdGggZD0ibTEyLjUgMTctLjUtMS0uNSAxaDF6Ii8+PHBhdGggZD0iTTE2IDIwYTIgMiAwIDAgMCAxLjU2LTMuMjUgOCA4IDAgMSAwLTExLjEyIDBBMiAyIDAgMCAwIDggMjAiLz48L3N2Zz4='); +} + +.custom-block-title { + display: inline-flex; + align-items: center; + gap: 8px; +} + +.custom-block-title::before { + content: ''; + width: 16px; + height: 16px; + -webkit-mask: var(--icon) no-repeat; + mask: var(--icon) no-repeat; + -webkit-mask-size: 100% 100%; + mask-size: 100% 100%; + background-color: currentColor; + color: inherit; } diff --git a/docs/.vitepress/vue-shim.d.ts b/docs/.vitepress/vue-shim.d.ts index ecc03da..47c6731 100644 --- a/docs/.vitepress/vue-shim.d.ts +++ b/docs/.vitepress/vue-shim.d.ts @@ -1,5 +1,5 @@ /* eslint-disable ts/consistent-type-imports */ -declare module "*.vue" { - const component: import("vue").Component; - export default component; +declare module '*.vue' { + const component: import('vue').Component + export default component } diff --git a/docs/download.md b/docs/download.md index 726afe5..a9e1a9d 100644 --- a/docs/download.md +++ b/docs/download.md @@ -1,15 +1,29 @@ --- title: Download +description: Sites and everything for Direct downloads. +tags: + - downloads + - torrents + - repacks + - linux --- +# Download + +Sites and everything for Direct downloads. + ## Direct download sites -Direct downloads are normal downloads from a server, being safer and not requiring a VPN. You may -need a VPN to access blocked file hosts (like Rapidgator in some EU countries). Check the -[download managers section](software.md#download-managers) for help managing your downloads. +Direct downloads are normal downloads from a server, being safer and not +requiring a VPN. You may need a VPN to access blocked file hosts (like +Rapidgator in some EU countries). Check the +[download managers section](/software#download-managers) for help managing +your downloads. - [🌟 CS.RIN.RU](https://cs.rin.ru/forum) - Game piracy forum / Registration - required / [Enhancement mod](https://github.com/SubZeroPL/cs-rin-ru-enhanced-mod) / Password: `cs.rin.ru` + required / + [Enhancement mod](https://github.com/SubZeroPL/cs-rin-ru-enhanced-mod) / + Password: `cs.rin.ru` - [🌟 SteamRIP](https://steamrip.com) - Steam games - [🌟 GOG Games](https://gog-games.to) - GOG Games - [🌟 GamesDrive](https://gamesdrive.net) @@ -17,17 +31,21 @@ need a VPN to access blocked file hosts (like Rapidgator in some EU countries). - [Ova Games](https://www.ovagames.com) / Password: `www.ovagames.com` - [GLOAD](https://gload.to/pc) - Scene & P2P releases - [GameDrive](https://gamedrive.org) -- [Torrminatorr](https://forum.torrminatorr.com) - GOG, Linux games & Scene releases forum / - Registration required +- [Torrminatorr](https://forum.torrminatorr.com) - GOG, Linux games & Scene + releases forum / Registration required - [ReleaseBB](https://rlsbb.ru/category/games/pc) - Scene and P2P releases -- [Games 4 You](https://g4u.to) - Slow downloads for free users / Password: `404` +- [Games 4 You](https://g4u.to) - Slow downloads for free users / Password: + `404` - [Downloadha](https://www.downloadha.com/category/%D8%A8%D8%A7%D8%B2%DB%8C-%DA%A9%D8%A7%D9%85%D9%BE%DB%8C%D9%88%D8%AA%D8%B1-pc-computer-game) - - Slow downloads / [Translator](useful.md#translator) / Password: `www.downloadha.com` + Slow downloads / [Translator](useful.md#translator) / Password: + `www.downloadha.com` - [Scnlog](https://scnlog.me/games) - Scene releases - [Gamdie](https://gamdie.com) - Indie games - [Leechinghell](http://www.leechinghell.pw) - LAN multiplayer games -- [Wendy's Forum](https://wendysforum.net/index.php) - HOGs / Registration required -- [AppCake](https://iphonecake.com/index.php?device=0&p=1&c=8) - macOS & iOS games & apps +- [Wendy's Forum](https://wendysforum.net/index.php) - HOGs / Registration + required +- [AppCake](https://iphonecake.com/index.php?device=0&p=1&c=8) - macOS & iOS + games & apps - [NMac](https://nmac.to/category/games) - macOS games & apps - [AppKed](https://www.macbed.com/games) - macOS games & apps - [Cmacked](https://cmacked.com) - macOS games & apps @@ -40,55 +58,61 @@ need a VPN to access blocked file hosts (like Rapidgator in some EU countries). - [RB Mods](https://www.rockmods.net) - Android apps - [ARMGDDN Games](https://t.me/ARMGDDNGames) - PCVR games - [My Abandonware](https://www.myabandonware.com) - Old games -- [Old-Games.RU](https://www.old-games.ru/catalog/) - Old games / Switch to English in the top-right corner +- [Old-Games.RU](https://www.old-games.ru/catalog/) - Old games / Switch to + English in the top-right corner - [F95zone](https://f95zone.to) - NSFW games / Registration required - [Software Library: MS-DOS Games](https://archive.org/details/softwarelibrary_msdos_games?and[]=mediatype%3A%22software%22) - MS-DOS games -- [Prism Launcher](https://prismlauncher.org) - - Minecraft / [Play without a legit account](https://github.com/antunnitraj/Prism-Launcher-PolyMC-Offline-Bypass) +- [Prism Launcher](https://prismlauncher.org) - Minecraft / + [Play without a legit account](https://github.com/antunnitraj/Prism-Launcher-PolyMC-Offline-Bypass) - [Moriya Shrine](https://moriyashrine.org) - Touhou ## Torrent sites -Torrents are P2P downloads from other users, without servers. You'll need a VPN to torrent safely -and avoid ISP copyright notices, unless your country tolerates piracy. Check the -[VPNs section](software.md#vpns) for more info. +Torrents are P2P downloads from other users, without servers. You'll need a VPN +to torrent safely and avoid ISP copyright notices, unless your country tolerates +piracy. Check the [VPNs section](software.md#vpns) for more info. -- [🌟 1337x](https://1337x.to/sub/10/0/) / [Safe uploaders (except FileCR)](https://www.reddit.com/r/Piracy/comments/nudfgn/me_after_reading_the_megathread/h0yr0q6/?context=3) / - [Torrent Page Improvements](https://greasyfork.org/scripts/33379-1337x-torrent-page-improvements) / - [Torrent and Magnet Links](https://greasyfork.org/scripts/420754-1337x-torrent-and-magnet-links) / +- [🌟 1337x](https://1337x.to/sub/10/0/) / + [Safe uploaders (except FileCR)](https://www.reddit.com/r/Piracy/comments/nudfgn/me_after_reading_the_megathread/h0yr0q6/?context=3) + / + [Torrent Page Improvements](https://greasyfork.org/scripts/33379-1337x-torrent-page-improvements) + / + [Torrent and Magnet Links](https://greasyfork.org/scripts/420754-1337x-torrent-and-magnet-links) + / [Convert Timestamps to Relative Format](https://greasyfork.org/scripts/421635-1337x-convert-torrent-timestamps-to-relative-format) / [Subtitle Download Links to TV and Movie Torrents](https://greasyfork.org/scripts/29467-1337x-subtitle-download-links-to-tv-and-movie-torrents) -- [🌟 RuTracker](https://rutracker.org/forum/index.php?c=19) / [Translator](useful.md#translator) +- [🌟 RuTracker](https://rutracker.org/forum/index.php?c=19) / + [Translator](useful.md#translator) - [Rutor](http://rutor.info/games) / [Translator](useful.md#translator) -- [Rustorka](https://rustorka.com/forum/index.php?c=6) / [Translator](useful.md#translator) +- [Rustorka](https://rustorka.com/forum/index.php?c=6) / + [Translator](useful.md#translator) - [Mac Torrents](https://www.torrentmac.net/category/games) - macOS games & apps - [Mac Torrent](https://www.mactorrents.is/macos-games) - macOS games & apps ## Repacks -Repacks are compressed games for low-bandwidth users, but installing them takes time due to file -decompression. +Repacks are compressed games for low-bandwidth users, but installing them takes +time due to file decompression. - [🌟 DODI Repacks](https://dodi-repacks.site) - [🌟 FitGirl Repacks](https://fitgirl-repacks.site) -- [🌟 ElAmigos](https://elamigos.site) - Use GameDrive's, GLOAD's or - Ova Games' mirrors for free fast downloads. +- [🌟 ElAmigos](https://elamigos.site) - Use GameDrive's, GLOAD's or Ova Games' + mirrors for free fast downloads. - [🌟 KaOsKrew](https://kaoskrew.org/viewforum.php?f=13&sid=c2dac73979171b67f4c8b70c9c4c72fb) - [Chovka](http://rutor.info/browse/0/8/1642915/0) / [2](https://repack.info) - [R.G. Mechanics](https://tapochek.net/viewforum.php?f=808) - [Xatab](https://byxatab.org) - [ScOOt3r Repacks](https://game-repack.site/scooter) -- [Masquerade Repacks](https://web.archive.org/web/20220616203326/https://masquerade.site) - Repacks - from up to May 2022. - Moved to KaOsKrew in June 2022. +- [Masquerade Repacks](https://web.archive.org/web/20220616203326/https://masquerade.site) - + Repacks from up to May 2022. Moved to KaOsKrew in June 2022. - [FS-Repacks](https://www.fluxyrepacks.site) - [Tiny Repacks](https://www.tiny-repacks.win) - [ZAZIX](https://1337x.to/user/ZAZIX/) - [Gnarly Repacks](https://gnarly-repacks.site) - Emulated console games -- [KAPITALSIN](https://kapitalsin.com/forum) - Game repacks forum (occasionally has lossy, or compressed repacks) / - [Translator](useful.md#translator) +- [KAPITALSIN](https://kapitalsin.com/forum) - Game repacks forum (occasionally + has lossy, or compressed repacks) / [Translator](useful.md#translator) - [M4CKD0GE Repacks](https://m4ckd0ge-repacks.site) - [MagiPack Games](https://www.magipack.games) - Old games - [The Collection Chamber](https://collectionchamber.blogspot.com) - Old games diff --git a/docs/emulation.md b/docs/emulation.md index db35cd4..76d940a 100644 --- a/docs/emulation.md +++ b/docs/emulation.md @@ -1,7 +1,12 @@ --- title: Emulation +description: ROM sites, emulators, discussion pages and more. --- +# Emulation + +ROM sites, emulators, discussion pages and more. + ## ROM sites - [🌟 r/Roms Megathread](https://r-roms.github.io) @@ -13,43 +18,47 @@ title: Emulation - [The ROM Depot](https://theromdepot.com) / Registration required - [Emuparadise](https://www.emuparadise.me/roms-isos-games.php) / [Download workaround guide](https://lemmy.world/post/3061617) -- [NoPayStation](https://nopaystation.com) - PlayStation 1, Vita, 3, and Portable games +- [NoPayStation](https://nopaystation.com) - PlayStation 1, Vita, 3, and + Portable games - [Ziperto](https://www.ziperto.com) - Nintendo games - [NSW2u](https://nsw2u.com) - Nintendo Switch games - [NXBrew](https://nxbrew.com) - Nintendo Switch games ## Emulators -:::tip +:::tip :exclamation: See the -**[Emulation General Wiki](https://emulation.gametechwiki.com/index.php/Main_Page#Emulators)** for -more. Some emulators require additional files (keys or BIOS) and are marked with an *. You can get -them [here](https://r-roms.github.io/megathread/misc/#bios-files). +**[Emulation General Wiki](https://emulation.gametechwiki.com/index.php/Main_Page#Emulators)** +for more. Some emulators require additional files (keys or BIOS) and are marked +with an :gear:. You can get them +[here](https://r-roms.github.io/megathread/misc/#bios-files). ::: -- [RetroArch](https://retroarch.com)* - Multiple consoles games / Avoid the melonDS, PPSSPP, Dolphin, and Citra cores -- [Ares](https://ares-emu.net)* - Multiple consoles games / Avoid the Neo Geo, PlayStation 1, and Game Boy Advance cores -- [Ryujinx](https://ryujinx.org)* / [Torzu](https://github.com/litucks/torzu)* ([Android](https://github.com/sudachi-emu/sudachi)) - - Nintendo - Switch games +- [:gear: RetroArch](https://retroarch.com) - Multiple consoles games / Avoid + the melonDS, PPSSPP, Dolphin, and Citra cores +- [:gear: Ares](https://ares-emu.net) - Multiple consoles games / Avoid the Neo + Geo, PlayStation 1, and Game Boy Advance cores +- [:gear: Ryujinx](https://ryujinx.org) / + [:gear: Torzu](https://github.com/litucks/torzu) + ([Android](https://github.com/sudachi-emu/sudachi)) - Nintendo Switch games - [Cemu](https://cemu.info) - Wii U games - [Vita3K](https://vita3k.org) - PlayStation Vita games -- [Lime3DS](https://github.com/Lime3DS/Lime3DS) - Nintendo - 3DS games +- [Lime3DS](https://github.com/Lime3DS/Lime3DS) - Nintendo 3DS games - [Dolphin Emulator](https://dolphin-emu.org) - Wii & GameCube games - [RPCS3](https://rpcs3.net) - PlayStation 3 games - [xenia](https://xenia.jp) - Xbox 360 games -- [MAME](https://www.mamedev.org)* - Arcade games +- [:gear: MAME](https://www.mamedev.org) - Arcade games - [PPSSPP](https://www.ppsspp.org) - PlayStation Portable games -- [melonDS](https://melonds.kuribo64.net) / [DeSmuME](https://desmume.org) - Nintendo DS games +- [melonDS](https://melonds.kuribo64.net) / [DeSmuME](https://desmume.org) - + Nintendo DS games - [No$GBA](https://www.nogba.com) - Nintendo DS & Game Boy Advance games -- [xemu](https://xemu.app)* - Original Xbox games +- [:gear: xemu](https://xemu.app) - Original Xbox games - [mGBA](https://mgba.io) - Game Boy Advance games -- [PCSX2](https://pcsx2.net)* - PlayStation 2 games +- [:gear: PCSX2](https://pcsx2.net) - PlayStation 2 games - [Parallel Launcher](https://parallel-launcher.ca) - Nintendo 64 games -- [DuckStation](https://www.duckstation.org)* - PlayStation 1 games -- [bsnes](https://github.com/bsnes-emu/bsnes) / [Snes9x](https://www.snes9x.com) - Super Nintendo Entertainment System - games +- [:gear: DuckStation](https://www.duckstation.org) - PlayStation 1 games +- [bsnes](https://github.com/bsnes-emu/bsnes) / + [Snes9x](https://www.snes9x.com) - Super Nintendo Entertainment System games ## Related subreddits diff --git a/docs/glossary.md b/docs/glossary.md index 7a5a93b..4f5989b 100644 --- a/docs/glossary.md +++ b/docs/glossary.md @@ -3,62 +3,70 @@ title: Glossary description: Answers to some of the most commonly asked questions. --- -This page helps summarize over some basic topics on the piracy scene. -This also serves as -referential material to gloss over quickly. +# Glossary + +This page helps summarize over some basic topics on the piracy scene. This also +serves as referential material to gloss over quickly. ## Terms -::: tip What is the Scene? And P2P? -The Scene is an underground community of people who crack and -share copyrighted material. They have strict rules that all scene members have to abide. P2P are -independent crackers who don't follow the [Scene rules](https://scenerules.org). +:::tip What is the Scene? And P2P? +The Scene is an underground community of +people who crack and share copyrighted material. They have strict rules that all +scene members have to abide. P2P are independent crackers who don't follow the +[Scene rules](https://scenerules.org). ::: -::: tip What’re NFOs? -NFOs are like a readme.txt that Scene makes on release. It gives you -instructions, a general description of the game and some additional information. +:::tip What’re NFOs? +NFOs are like a readme.txt that Scene makes on release. It +gives you instructions, a general description of the game and some additional +information. ::: -::: tip Why does X site have so many ads? -**Use an adblocker**. Ads keep the websites running, but -sometimes the ad ruins the experience or even link malware. You can take these steps if you want an -ad-free experience: +:::tip Why does X site have so many ads? +**Use an adblocker**. Ads keep the +websites running, but sometimes the ad ruins the experience or even link +malware. You can take these steps if you want an ad-free experience: ### Android -Install [**Firefox**](https://play.google.com/store/apps/details?id=org.mozilla.firefox) and add -[**uBlock Origin**](https://addons.mozilla.org/android/addon/ublock-origin). This should be more -than enough. If you want system-wide support, try +Install +[**Firefox**](https://play.google.com/store/apps/details?id=org.mozilla.firefox) +and add +[**uBlock Origin**](https://addons.mozilla.org/android/addon/ublock-origin). +This should be more than enough. If you want system-wide support, try [**AdGuard**](https://adguard.com/adguard-android/overview.html) or -[**NextDNS**](https://nextdns.io). You can watch [**this video**](https://youtu.be/WUG57ynLb8I) if -you need guidance. +[**NextDNS**](https://nextdns.io). You can watch +[**this video**](https://youtu.be/WUG57ynLb8I) if you need guidance. ### PC -Install [**uBlock Origin**](https://ublockorigin.com) in your browser and you're done! If you want a -system-wide solution, you _can_ use [**NextDNS**](https://nextdns.io), but it won't be as effective -as uBlock Origin. You can also use [Bypass All Shortlinks](https://codeberg.org/Amm0ni4/bypass-all-shortlinks-debloated) -or -[Bypass.city](https://bypass.city) to _bypass_ redirects. +Install [**uBlock Origin**](https://ublockorigin.com) in your browser and you're +done! If you want a system-wide solution, you _can_ use +[**NextDNS**](https://nextdns.io), but it won't be as effective as uBlock +Origin. You can also use +[Bypass All Shortlinks](https://codeberg.org/Amm0ni4/bypass-all-shortlinks-debloated) +or [Bypass.city](https://bypass.city) to _bypass_ redirects. ### iOS -[**NextDNS**](https://nextdns.io) should cover everything for system-wide ads & trackers. You can -also try [**AhaDNS**](https://ahadns.com). +[**NextDNS**](https://nextdns.io) should cover everything for system-wide ads & +trackers. You can also try [**AhaDNS**](https://ahadns.com). ::: -::: tip Do I need to use VPN while downloading? -The necessity of using a VPN depends on the method -of downloading. For direct downloads, a VPN is typically unnecessary. However, if you're engaging in -peer-to-peer (P2P) activities such as torrenting, it is advisable to employ a VPN for enhanced -security and privacy. Additionally, the legal ramifications in your area play a crucial role; if the -consequences are lenient, you might opt to forgo using a VPN altogether. +:::tip Do I need to use VPN while downloading? +The necessity of using a VPN +depends on the method of downloading. For direct downloads, a VPN is typically +unnecessary. However, if you're engaging in peer-to-peer (P2P) activities such +as torrenting, it is advisable to employ a VPN for enhanced security and +privacy. Additionally, the legal ramifications in your area play a crucial role; +if the consequences are lenient, you might opt to forgo using a VPN altogether. ::: -::: tip Why is my download so slow? -Use a download manager. Some websites impose file transfer -limits for a single thread, thereby restricting download speeds. Download managers overcome this -limitation by leveraging multiple threads for downloading, resulting in faster download speeds. We've listed some -recommended ones [here](useful.md). +:::tip Why is my download so slow? +Use a download manager. Some websites impose +file transfer limits for a single thread, thereby restricting download speeds. +Download managers overcome this limitation by leveraging multiple threads for +downloading, resulting in faster download speeds. We've listed some recommended +ones [here](/useful). ::: diff --git a/docs/index.md b/docs/index.md index 76a0d91..d593486 100644 --- a/docs/index.md +++ b/docs/index.md @@ -18,11 +18,11 @@ features: - icon: 🌐 title: Translations details: - The wiki is elegantly translated into multiple languages, ensuring you can explore its content - with utmost ease and comfort! + The wiki is elegantly translated into multiple languages, ensuring you can + explore its content with utmost ease and comfort! - icon: 🌟 title: Favorite Picks details: - We regularly curate the finest sites for you and emphasize their prominence, so you can have - peace of mind. + We regularly curate the finest sites for you and emphasize their + prominence, so you can have peace of mind. --- diff --git a/docs/linux.md b/docs/linux.md index 3c43358..845630e 100644 --- a/docs/linux.md +++ b/docs/linux.md @@ -1,51 +1,58 @@ --- title: Linux -description: Everything regarding piracy on Linux +description: Everything regarding piracy on Linux. +tags: + - linux --- +# Linux + +Everything regarding piracy on Linux. + ## Downloading ### Direct download sites -- [🌟 Torrminatorr](https://forum.torrminatorr.com) - GOG, Linux games and Scene releases forum / - Registration required -- [🌟 KAPITALSIN](https://kapitalsin.com/forum) - Game repacks forum (occasionally has lossy, or compressed repacks) / +- [🌟 Torrminatorr](https://forum.torrminatorr.com) - GOG, Linux games and Scene + releases forum / Registration required +- [🌟 KAPITALSIN](https://kapitalsin.com/forum) - Game repacks forum + (occasionally has lossy, or compressed repacks) / [Translator](useful.md#translator) - [🌟 CS.RIN.RU](https://cs.rin.ru/forum) - Game piracy forum / Registration - required / [Enhancement mod](https://github.com/SubZeroPL/cs-rin-ru-enhanced-mod) / Password: `cs.rin.ru` + required / + [Enhancement mod](https://github.com/SubZeroPL/cs-rin-ru-enhanced-mod) / + Password: `cs.rin.ru` ### Torrent sites - [🌟 johncena141](https://1337x.to/user/johncena141/) - Linux games -- [🌟 RuTracker](https://rutracker.org/forum/viewforum.php?f=899) - Linux games / - [Translator](useful.md#translator) +- [🌟 RuTracker](https://rutracker.org/forum/viewforum.php?f=899) - Linux games + / [Translator](useful.md#translator) ## Software ### Launchers - [🌟 Lutris](https://lutris.net) - Game launcher -- [🌟 Heroic Games Launcher](https://heroicgameslauncher.com) - Epic, GOG, and Amazon Prime Games - launcher +- [🌟 Heroic Games Launcher](https://heroicgameslauncher.com) - Epic, GOG, and + Amazon Prime Games launcher - [Minigalaxy](https://sharkwouter.github.io/minigalaxy) - GOG client - [Bottles](https://usebottles.com) - Windows software manager ### Tools -- [MangoHud](https://github.com/flightlessmango/MangoHud) - Overlay for monitoring - performance / [GUI](https://github.com/benjamimgois/goverlay) +- [MangoHud](https://github.com/flightlessmango/MangoHud) - Overlay for + monitoring performance / [GUI](https://github.com/benjamimgois/goverlay) - [ProtonUp-Qt](https://github.com/DavidoTek/ProtonUp-Qt) - Proton-GE manager - [Winetricks](https://github.com/Winetricks/winetricks) - Wine fixes & tweaks ## Guides - [🌟 Linux Gaming Wiki](https://linux-gaming.kwindu.eu/index.php) -- [🌟 - Installing repacks with Lutris](https://www.reddit.com/r/LinuxCrackSupport/comments/yqfirv/how_to_install_fitgirl_or_dodi_windows_repacks_in) / [Fix for DLL errors](https://reddit.com/r/LinuxCrackSupport/comments/tirarp/psa_when_installing_repacks_with_custom_wine) +- [🌟 Installing repacks with Lutris](https://www.reddit.com/r/LinuxCrackSupport/comments/yqfirv/how_to_install_fitgirl_or_dodi_windows_repacks_in) + / + [Fix for DLL errors](https://reddit.com/r/LinuxCrackSupport/comments/tirarp/psa_when_installing_repacks_with_custom_wine) -::: info -It's recommended to get games from DODI over FitGirl. -::: ## Related Subreddits diff --git a/docs/software.md b/docs/software.md index 94095ad..78d9261 100644 --- a/docs/software.md +++ b/docs/software.md @@ -1,33 +1,52 @@ --- title: Software +description: Software to enhance your piracy experience. --- +# Software + +Software to enhance your piracy experience. + ## Download managers -- [🌟 Internet Download Manager](https://www.internetdownloadmanager.com) / [Crack](https://cracksurl.com/internet-download-manager) & [instructions](https://rentry.org/installidm) / [Activation script](https://github.com/lstprjct/IDM-Activation-Script) / [Trial reset](https://github.com/J2TEAM/idm-trial-reset) / [IDMHelper](https://github.com/unamer/IDMHelper) +- [🌟 Internet Download Manager](https://www.internetdownloadmanager.com) / + [Crack](https://cracksurl.com/internet-download-manager) & + [instructions](https://rentry.org/installidm) / + [Activation script](https://github.com/lstprjct/IDM-Activation-Script) / + [Trial reset](https://github.com/J2TEAM/idm-trial-reset) / + [IDMHelper](https://github.com/unamer/IDMHelper) - [🌟 JDownloader](https://jdownloader.org/jdownloader2) - Detects most file - hosts / [Enhancement guide](https://lemmy.world/post/3098414) / [Offline CAPTCHA solver](https://github.com/cracker0dks/CaptchaSolver) / [Dark theme](https://support.jdownloader.org/Knowledgebase/Article/View/dark-mode-theme) + hosts / [Enhancement guide](https://lemmy.world/post/3098414) / + [Offline CAPTCHA solver](https://github.com/cracker0dks/CaptchaSolver) / + [Dark theme](https://support.jdownloader.org/Knowledgebase/Article/View/dark-mode-theme) - [🌟 Xtreme Download Manager](https://xtremedownloadmanager.com) -- [Gopeed](https://gopeed.com) / [Plugins](https://github.com/search?q=topic%3Agopeed-extension&type=repositories) -- [imFile](https://github.com/imfile-io/imfile-desktop) or [Motrix](https://motrix.app) -- [Aria2](https://aria2.github.io) - Terminal download - manager / [GUI](https://persepolisdm.github.io) / [Web UI](https://github.com/ziahamza/webui-aria2) -- [Free Download Manager](https://www.freedownloadmanager.org) / [Video downloader](https://github.com/meowcateatrat/elephant) +- [Gopeed](https://gopeed.com) / + [Plugins](https://github.com/search?q=topic%3Agopeed-extension&type=repositories) +- [imFile](https://github.com/imfile-io/imfile-desktop) or + [Motrix](https://motrix.app) +- [Aria2](https://aria2.github.io) - Terminal download manager / + [GUI](https://persepolisdm.github.io) / + [Web UI](https://github.com/ziahamza/webui-aria2) +- [Free Download Manager](https://www.freedownloadmanager.org) / + [Video downloader](https://github.com/meowcateatrat/elephant) ## Torrent clients -- [🌟 qBittorrent](https://www.qbittorrent.org) / [Enhanced edition](https://github.com/c0re100/qBittorrent-Enhanced-Edition) / [Dark theme](https://draculatheme.com/qbittorrent) +- [🌟 qBittorrent](https://www.qbittorrent.org) / + [Enhanced edition](https://github.com/c0re100/qBittorrent-Enhanced-Edition) / + [Dark theme](https://draculatheme.com/qbittorrent) - [🌟 Deluge](https://dev.deluge-torrent.org) - [🌟 Transmission](https://transmissionbt.com) - [Motrix](https://motrix.app) - [Tixati](https://tixati.com) - [PicoTorrent](https://picotorrent.org) - [BiglyBT](https://www.biglybt.com) -- [LibreTorrent](https://github.com/proninyaroslav/libretorrent) - Android devices +- [LibreTorrent](https://github.com/proninyaroslav/libretorrent) - Android + devices ## VPNs -::: danger +:::danger **Tor Browser isn't a VPN, no protection for torrenting!** ::: diff --git a/docs/unsafe.md b/docs/unsafe.md index 12c1944..7a0e75f 100644 --- a/docs/unsafe.md +++ b/docs/unsafe.md @@ -1,25 +1,34 @@ --- title: Unsafe +description: Things you should always avoid using. --- -## Untrusted sites and uploaders +# Unsafe -You can just use -the [FMHY Unsafe Sites/Software](https://fmhy.net/unsafesites) [adblock filter](https://windowsaurora.github.io/FMHYFilterlist/site/index.html) -on uBlacklist (more efficient) or uBlock Origin to block most of the sites mentioned here and more. Follow -[this guide](https://iorate.github.io/ublacklist/docs/advanced-features#subscription) to add the -custom filter to uBlacklist (put +Things you should always avoid using. + +:::tip +You can just use the +[FMHY Unsafe Sites/Software](https://fmhy.net/unsafesites) +[adblock filter](https://windowsaurora.github.io/FMHYFilterlist/site/index.html) +on uBlacklist (more efficient) or uBlock Origin to block most of the sites +mentioned here and more. Follow +[this guide](https://iorate.github.io/ublacklist/docs/advanced-features#subscription) +to add the custom filter to uBlacklist (put [this link](https://raw.githubusercontent.com/privateersclub/wiki/master/unsafe_uBlacklist.txt) under "URL") and [this guide](https://raw.githubusercontent.com/WindowsAurora/FMHYFilterlist/main/filterlist.txt) to add it to uBlock Origin (use -[this](https://raw.githubusercontent.com/WindowsAurora/FMHYFilterlist/main/filterlist.txt) under -"Import…"). +[this](https://raw.githubusercontent.com/WindowsAurora/FMHYFilterlist/main/filterlist.txt) +under "Import…"). +::: -:::danger -**SCENE GROUPS HAVE NO SITES! -Sites with a Scene group name in the URL are fake. -Also beware the [fake 1337x sites](https://redd.it/117fq8t) and [fake Z-Lib sites](https://redd.it/16xtm67).** +## Untrusted sites and uploaders + +:::danger +**SCENE GROUPS HAVE NO SITES! Sites with a Scene group name in the URL +are fake. Also beware the [fake 1337x sites](https://redd.it/117fq8t) and +[fake Z-Lib sites](https://redd.it/16xtm67).** ::: - AGFY - Scam links @@ -27,11 +36,13 @@ Also beware the [fake 1337x sites](https://redd.it/117fq8t) and [fake Z-Lib site - AliPak/AliTPB/b4tman - Constantly caught with malware. - AllPCWorld - Uploaded KMS Matrix, a known malware. - anr285 -- AppValley/Ignition/TutuBox - [DDoS attacks](https://github.com/nbats/FMHYedit/pull/307) history. +- AppValley/Ignition/TutuBox - + [DDoS attacks](https://github.com/fmhy/FMHYedit/pull/307) history. - ApunKaGames - BBRepacks - Caught with malware. - Corepack - Stolen releases and has been caught with malware. -- CNET/Download.com/Softonic/ZDNET - [Adware](https://www.reddit.com/r/software/comments/9s7wyb/whats_the_deal_with_sites_like_cnet_softonic_and/e8mtye9) +- CNET/Download.com/Softonic/ZDNET - + [Adware](https://www.reddit.com/r/software/comments/9s7wyb/whats_the_deal_with_sites_like_cnet_softonic_and/e8mtye9) history. - CracksHash - Caught with [malware](https://redd.it/lklst7). - Crohasit - Is affiliated to SteamUnlocked owners. @@ -43,24 +54,26 @@ Also beware the [fake 1337x sites](https://redd.it/117fq8t) and [fake Z-Lib site - GameFabrique - IGG Games uploads and [adware installers](https://www.reddit.com/r/FREEMEDIAHECKYEAH/comments/10bh0h9/unsafe_sites_software_thread/jhi7u0h). - GetIntoMac/GetIntoPC - Constantly caught with malware. -- GOG Unlocked/RomsUnlocked/SteamUnlocked - [IGG Games and nosTEAM](https://i.ibb.co/VgW2ymY/YUnRNpN.png) uploads, - malicious - redirect ads, and slow downloads. +- `GOG`/`Roms`/`Steam` Unlocked - + [IGG Games and nosTEAM](https://i.ibb.co/VgW2ymY/YUnRNpN.png) uploads, + malicious redirect ads, and slow downloads. - haxNode -- IGG Games/GamesTorrents/LoadGames/PCGamesTorrents - Doxed mercs213 (Good Old Downloads owner), exploits you for ad - revenue, and - puts its own DRM, crypto miner, and malware in games. +- `IGG Games/GamesTorrents/LoadGames/PCGamesTorrents` - Doxed mercs213 (Good Old + Downloads owner), exploits you for ad revenue, and puts its own DRM, crypto + miner, and malware in games. - IGI30 - Caught with malware. - KaranPC - Constantly caught with malware. - KickassTorrents - Long-dead, what is left are sketchy copycats. -- MainRepo/MRepo (unrelated to the Magisk module MRepo) - Caught with [malware](https://rentry.co/zu3i6). -- NexusGames, Steam-Repacks, Unlocked-Games, World of PC Games - Caught with malware. +- MainRepo/MRepo (unrelated to the Magisk module MRepo) - Caught with + [malware](https://rentry.co/zu3i6). +- NexusGames, Steam-Repacks, Unlocked-Games, World of PC Games - Caught with + malware. - nosTEAM - Caught with crypto miners and has malware risk. - Ocean of Games/Ocean of APKs - Constantly caught with malware. - Qoob/Seyter - Caught with crypto miners. - Repack-Games - Mislabels games and steals releases. -- RSLoad - Uploaded the same MalwareBytes version that troubled FileCR and - has [malware in μTorrent](https://i.ibb.co/QXrCfqQ/Untitled.png). +- RSLoad - Uploaded the same MalwareBytes version that troubled FileCR and has + [malware in μTorrent](https://i.ibb.co/QXrCfqQ/Untitled.png). - SadeemAPK/SadeemPC - Constantly caught with malware. - The Pirate Bay - High malware risk due to no moderation. - VitaminX - Caught with crypto miners. @@ -70,8 +83,8 @@ Also beware the [fake 1337x sites](https://redd.it/117fq8t) and [fake Z-Lib site ## Unsafe software -::: info -[Fake Windows activators](https://pastebin.com/gCmWs2GR) +:::tip +[Read this Pastebin about Fake Windows activators.](https://pastebin.com/gCmWs2GR) ::: - μTorrent - Has ads, trackers, and @@ -81,24 +94,29 @@ Also beware the [fake 1337x sites](https://redd.it/117fq8t) and [fake Z-Lib site - BitComet/BitTorrent - Adware - BitLord - [Adware](https://www.virustotal.com/gui/file/3ad1aed8bd704152157ac92afed1c51e60f205fbdce1365bad8eb9b3a69544d0) -- Bluecord/BlueKik - History of [spam](https://redd.it/12h2v6n) and [spying](https://rentry.co/tvrnw). -- CyberGhost/ExpressVPN/Private Internet Access/ZenMate - [Owned](https://rentry.co/i8dwr) by - [Kape](https://www.reddit.com/q3lepv). +- Bluecord/BlueKik - History of [spam](https://redd.it/12h2v6n) and + [spying](https://rentry.co/tvrnw). +- CyberGhost/ExpressVPN/Private Internet Access/ZenMate - + [Owned](https://rentry.co/i8dwr) by [Kape](https://www.reddit.com/q3lepv). - Downloadly (video downloader) - Caught with crypto miners. - FrostWire - [Adware](https://www.virustotal.com/gui/file/f20d66b647f15a5cd5f590b3065a1ef2bcd9dad307478437766640f16d416bbf/detection) -- GShade - Can trigger unwanted - [reboots](https://rentry.co/GShade_notice). +- GShade - Can trigger unwanted [reboots](https://rentry.co/GShade_notice). - Kik - Widely used by [predators and scammers](https://youtu.be/9sPaJxRmIPc). - KLauncher - Contains malware. - Limewire - Long-dead, anything claiming to be them now should be avoided. - McAfee - Installs bloatware. -- Opera ( - browsers) - [very](https://www.kuketz-blog.de/opera-datensendeverhalten-desktop-version-browser-check-teil13) [bad](https://rentry.co/operagx) - privacy policies, besides [predatory](https://www.androidpolice.com/2020/01/21/opera-predatory-loans) loan apps. -- PCProtect/Protected/TotalAV - Antivirus - scams ([1](https://www.malwarebytes.com/blog/detections/pup-optional-pcprotect), [2](https://youtu.be/PcS3EozgyhI), [3](https://www.malwarebytes.com/blog/detections/pup-optional-totalav)). -- PolyMC - Owner [kicked all members](https://www.reddit.com/y6lt6s) from Discord server and - repository. -- TLauncher (unrelated to TLauncher Legacy) - [Shady](https://www.reddit.com/zmzzrt) business practices. -- VSTorrent - Caught with [malware](https://redd.it/x66rz2). \ No newline at end of file +- Opera ( browsers) - + [very](https://www.kuketz-blog.de/opera-datensendeverhalten-desktop-version-browser-check-teil13) + [bad](https://rentry.co/operagx) privacy policies, besides + [predatory](https://www.androidpolice.com/2020/01/21/opera-predatory-loans) + loan apps. +- PCProtect/Protected/TotalAV - Antivirus scams + ([1](https://www.malwarebytes.com/blog/detections/pup-optional-pcprotect), + [2](https://youtu.be/PcS3EozgyhI), + [3](https://www.malwarebytes.com/blog/detections/pup-optional-totalav)). +- PolyMC - Owner [kicked all members](https://www.reddit.com/y6lt6s) from + Discord server and repository. Use PrismLauncher. +- TLauncher (unrelated to TLauncher Legacy) - + [Shady](https://www.reddit.com/zmzzrt) business practices. Use PrismLauncher. +- VSTorrent - Caught with [malware](https://redd.it/x66rz2). diff --git a/docs/useful.md b/docs/useful.md index 2b67953..edc1ea9 100644 --- a/docs/useful.md +++ b/docs/useful.md @@ -1,11 +1,16 @@ --- title: Useful +description: Essential tools, sites, components that are worth using. --- +# Useful + +Essential tools, sites, components that are worth using. + ## Required components -Install all before downloading games (legitimate or pirated) to avoid crashes from missing software -on your computer: +Install all before downloading games (legitimate or pirated) to avoid crashes +from missing software on your computer: - [DirectX](https://www.microsoft.com/download/details.aspx?id=35) - [VisualCppRedist AIO](https://github.com/abbodi1406/vcredist/releases/latest) @@ -14,66 +19,81 @@ on your computer: ## Tools :::tip -:exclamation: See [RIN SteamInternals](https://cs.rin.ru/forum/viewtopic.php?f=10&t=65887) -and [A Collection of Steam Tools](https://steamcommunity.com/sharedfiles/filedetails/?id=451698754) for more Steam tools. +:exclamation: See +[RIN SteamInternals](https://cs.rin.ru/forum/viewtopic.php?f=10&t=65887) and +[A Collection of Steam Tools](https://steamcommunity.com/sharedfiles/filedetails/?id=451698754) +for more Steam tools. ::: -- [🌟 CreamAPI](https://cs.rin.ru/forum/viewtopic.php?f=29&t=70576) - Legitimate Steam game DLC - unlocker / [Automatic setup](https://cs.rin.ru/forum/viewtopic.php?p=2013521) / [Automatic installation](https://github.com/pointfeev/CreamInstaller) -- [Koalageddon](https://github.com/acidicoala/Koalageddon) - Steam, Epic Games Store, EA clients, - & Uplay DLC unlocker -- [Goldberg Steam Emulator](https://cs.rin.ru/forum/viewtopic.php?f=29&t=91627) - Steam - emulator / [GUI](https://cs.rin.ru/forum/viewtopic.php?f=29&t=111152) -- [Steamless](https://github.com/atom0s/Steamless) - SteamStub DRM - remover / [Automatic cracker](https://github.com/oureveryday/Steam-auto-crack) / [Guide](https://rentry.co/goldberg_emulator) -- [Auto SteamFix Tool](https://cs.rin.ru/forum/viewtopic.php?f=29&t=97112) - Automatic Steamworks - fix creator -- [DreamAPI](https://cs.rin.ru/forum/viewtopic.php?f=10&t=111520) - Epic Games Store & EA clients - DLC unlocker -- [ScreamAPI](https://github.com/acidicoala/ScreamAPI) - Epic Games Store DLC unlocker -- [EA DLC Unlocker](https://cs.rin.ru/forum/viewtopic.php?f=20&t=104412) - EA clients DLC unlocker -- [Nemirtingas Epic Emulator](https://cs.rin.ru/forum/viewtopic.php?f=29&t=105551) - Epic Online - Services emulator -- [LumaPlay](https://cs.rin.ru/forum/viewtopic.php?f=29&t=67197) - Uplay emulator -- [Online Fix](https://online-fix.me) - Allows playing pirated games online with other pirated - games / Password: `online-fix.me` -- [WorkshopDL](https://github.com/imwaitingnow/WorkshopDL) - Steam Workshop downloader -- [Sims 4 Updater](https://cs.rin.ru/forum/viewtopic.php?f=29&t=102519) - Pirated The Sims 4 version - updater -- [Plutonium](https://plutonium.pw) - Dedicated Call of Duty servers, with mod support & extended features. -- [Lucky Patcher](https://www.luckypatchers.com) - Android apps patcher (better with root) +- [🌟 CreamAPI](https://cs.rin.ru/forum/viewtopic.php?f=29&t=70576) - Legitimate + Steam game DLC unlocker / + [Automatic setup](https://cs.rin.ru/forum/viewtopic.php?p=2013521) / + [Automatic installation](https://github.com/pointfeev/CreamInstaller) +- [Koalageddon](https://github.com/acidicoala/Koalageddon) - Steam, Epic Games + Store, EA clients, & Uplay DLC unlocker +- [Goldberg Steam Emulator](https://cs.rin.ru/forum/viewtopic.php?f=29&t=91627) - + Steam emulator / [GUI](https://cs.rin.ru/forum/viewtopic.php?f=29&t=111152) +- [Steamless](https://github.com/atom0s/Steamless) - SteamStub DRM remover / + [Automatic cracker](https://github.com/oureveryday/Steam-auto-crack) / + [Guide](https://rentry.co/goldberg_emulator) +- [Auto SteamFix Tool](https://cs.rin.ru/forum/viewtopic.php?f=29&t=97112) - + Automatic Steamworks fix creator +- [DreamAPI](https://cs.rin.ru/forum/viewtopic.php?f=10&t=111520) - Epic Games + Store & EA clients DLC unlocker +- [ScreamAPI](https://github.com/acidicoala/ScreamAPI) - Epic Games Store DLC + unlocker +- [EA DLC Unlocker](https://cs.rin.ru/forum/viewtopic.php?f=20&t=104412) - EA + clients DLC unlocker +- [Nemirtingas Epic Emulator](https://cs.rin.ru/forum/viewtopic.php?f=29&t=105551) - + Epic Online Services emulator +- [LumaPlay](https://cs.rin.ru/forum/viewtopic.php?f=29&t=67197) - Uplay + emulator +- [Online Fix](https://online-fix.me) - Allows playing pirated games online with + other pirated games / Password: `online-fix.me` +- [WorkshopDL](https://github.com/imwaitingnow/WorkshopDL) - Steam Workshop + downloader +- [Sims 4 Updater](https://cs.rin.ru/forum/viewtopic.php?f=29&t=102519) - + Pirated The Sims 4 version updater +- [Plutonium](https://plutonium.pw) - Dedicated Call of Duty servers, with mod + support & extended features. +- [Lucky Patcher](https://www.luckypatchers.com) - Android apps patcher (better + with root) -## Useful software +## Software -:::tip -Activate Microsoft products (Office & Windows) with -**[Microsoft Activation Scripts](https://github.com/massgravel/Microsoft-Activation-Scripts).** -Visit **[m0nkrus](https://w14.monkrus.ws)** for Adobe products. For the rest, -visit [LRepacks](https://lrepacks.net), [CRACKSurl](https://cracksurl.com) -or [GameBounty](https://gamebounty.world/software). +:::tip Activate Microsoft products (Office & Windows) with **[Microsoft Activation Scripts](https://github.com/massgravel/Microsoft-Activation-Scripts).** +Visit **[m0nkrus](https://w14.monkrus.ws)** for Adobe products. + +For the rest, visit [LRepacks](https://lrepacks.net), +[CRACKSurl](https://cracksurl.com) or +[GameBounty](https://gamebounty.world/software). ::: - [7-Zip](https://7-zip.org) - File archiver - [Bitwarden](https://bitwarden.com) - Open-source password manager -- [Tor Browser](https://www.torproject.org) - Private web browser that routes Internet traffic through a decentralized - network of volunteer-operated servers, making you hard to trace. -- [Achievement Watcher](https://xan105.github.io/Achievement-Watcher) - Achievement file parser with - auto-screenshot, playtime tracking, & real-time notification +- [Tor Browser](https://www.torproject.org) - Private web browser that routes + Internet traffic through a decentralized network of volunteer-operated + servers, making you hard to trace. +- [Achievement Watcher](https://xan105.github.io/Achievement-Watcher) - + Achievement file parser with auto-screenshot, playtime tracking, & real-time + notification - [Parsec](https://parsec.app) - Low-latency game streaming software -- [RapidCRC](https://ov2.eu/programs/rapidcrc-unicode) - Checksum verifier & hash info generator +- [RapidCRC](https://ov2.eu/programs/rapidcrc-unicode) - Checksum verifier & + hash info generator -## Useful browser extensions +## Browser Extensions -- [uBlock Origin](https://ublockorigin.com) - Ad content - blocker / [yokoffing's recommendations](https://github.com/yokoffing/filterlists#recommended-filters-for-ublock-origin) +- [uBlock Origin](https://ublockorigin.com) - Ad content blocker / + [yokoffing's recommendations](https://github.com/yokoffing/filterlists#recommended-filters-for-ublock-origin) - [uBlacklist](https://iorate.github.io/ublacklist/docs) - Search filter - [Bypass All Shortlinks Debloated](https://codeberg.org/Amm0ni4/bypass-all-shortlinks-debloated) - Link shorterners bypasser userscript - Needs one of the 3 extensions below -- [FireMonkey](https://addons.mozilla.org/firefox/addon/firemonkey) - Open-source userscript manager - for Firefox -- [Tampermonkey](https://www.tampermonkey.net) - Proprietary userscript manager for most browsers -- [ViolentMonkey](https://violentmonkey.github.io) - Open-source userscript manager for many - browsers +- [FireMonkey](https://addons.mozilla.org/firefox/addon/firemonkey) - + Open-source userscript manager for Firefox +- [Tampermonkey](https://www.tampermonkey.net) - Proprietary userscript manager + for most browsers +- [ViolentMonkey](https://violentmonkey.github.io) - Open-source userscript + manager for many browsers - [Firefox Multi-Account Containers](https://github.com/mozilla/multi-account-containers) - - Color-coded tabs in this tool keep your online life separated, preserving your privacy. Cookies - are containerized, allowing simultaneous use of multiple identities or accounts. + Color-coded tabs in this tool keep your online life separated, preserving your + privacy. Cookies are containerized, allowing simultaneous use of multiple + identities or accounts. ## Trainers (cheats) Not for online games. No cheating in online games! - [🌟 FLiNG Trainer](https://flingtrainer.com) -- [🌟 GameCopyWorld](https://gamecopyworld.com/games) - Also has crack-only and NoCD fixes. +- [🌟 GameCopyWorld](https://gamecopyworld.com/games) - Also has crack-only and + NoCD fixes. - [WeMod](https://www.wemod.com) - [MegaGames](https://megagames.com) - [FearLess Cheat Engine](https://fearlessrevolution.com) - Cheat Engine tables @@ -98,7 +120,8 @@ Not for online games. No cheating in online games! ## Release trackers -No downloads provided. Sites have P2P/Scene release info. Check here to see if a game is cracked! +No downloads provided. Sites have P2P/Scene release info. Check here to see if a +game is cracked! - [🌟 xREL](https://www.xrel.to/games-release-list.html?lang=en_US) - [m2v.ru](https://m2v.ru/?func=part&Part=3) @@ -108,8 +131,8 @@ No downloads provided. Sites have P2P/Scene release info. Check here to see if a - [PreDB.pw](https://predb.pw) - [r/CrackWatch](https://www.reddit.com/r/CrackWatch) - [r/RepackWatchers](https://www.reddit.com/r/RepackWatchers) - Repacks only -- [r/RepackWorld](https://www.reddit.com/r/RepackWorld) - Repacks - only / [r/PiratedGames](https://www.reddit.com/r/PiratedGames)' sister subreddit +- [r/RepackWorld](https://www.reddit.com/r/RepackWorld) - Repacks only / + [r/PiratedGames](https://www.reddit.com/r/PiratedGames)' sister subreddit ## Related subreddits diff --git a/package.json b/package.json index 448b7a6..3a4bd18 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "type": "module", "main": "index.js", "scripts": { - "format": "prettier --log-level=warn --write docs/", + "format": "prettier --cache --write docs/", "build": "pnpm run docs:build && pnpm run i18n:build", "docs:dev": "vitepress dev docs", "docs:build": "vitepress build docs", @@ -16,6 +16,9 @@ }, "license": "Unlicense", "devDependencies": { + "@nolebase/vitepress-plugin-enhanced-readabilities": "^2.2.0", + "@nolebase/vitepress-plugin-git-changelog": "^2.2.0", + "@nolebase/vitepress-plugin-page-properties": "^2.2.0", "@types/node": "^20.14.2", "@types/nprogress": "^0.2.3", "prettier": "^3.3.1", @@ -28,5 +31,6 @@ "unocss": "^0.60.4", "vue": "^3.4.27", "x-satori": "^0.1.5" - } + }, + "packageManager": "pnpm@8.15.4+sha1.c85a4305534f76d461407b59277b954bac97b5c4" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index af36f2e..803a38f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -19,7 +19,7 @@ importers: version: 0.2.0 unocss: specifier: ^0.60.4 - version: 0.60.4(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.12(@types/node@20.14.2)) + version: 0.60.4(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.12(@types/node@20.14.2)(less@4.2.0)) vue: specifier: ^3.4.27 version: 3.4.27 @@ -27,6 +27,15 @@ importers: specifier: ^0.1.5 version: 0.1.5 devDependencies: + '@nolebase/vitepress-plugin-enhanced-readabilities': + specifier: ^2.2.0 + version: 2.2.0(@algolia/client-search@4.23.3)(@types/node@20.14.2)(nprogress@0.2.0)(postcss@8.4.38)(search-insights@2.14.0) + '@nolebase/vitepress-plugin-git-changelog': + specifier: ^2.2.0 + version: 2.2.0(@algolia/client-search@4.23.3)(@types/node@20.14.2)(nprogress@0.2.0)(postcss@8.4.38)(search-insights@2.14.0) + '@nolebase/vitepress-plugin-page-properties': + specifier: ^2.2.0 + version: 2.2.0(@algolia/client-search@4.23.3)(@types/node@20.14.2)(nprogress@0.2.0)(postcss@8.4.38)(search-insights@2.14.0) '@types/node': specifier: ^20.14.2 version: 20.14.2 @@ -38,7 +47,7 @@ importers: version: 3.3.1 vitepress: specifier: npm:@taskylizard/vitepress@1.1.1 - version: '@taskylizard/vitepress@1.1.1(@algolia/client-search@4.23.3)(@types/node@20.14.2)(nprogress@0.2.0)(postcss@8.4.38)(search-insights@2.14.0)' + version: '@taskylizard/vitepress@1.1.1(@algolia/client-search@4.23.3)(@types/node@20.14.2)(less@4.2.0)(nprogress@0.2.0)(postcss@8.4.38)(search-insights@2.14.0)' packages: @@ -55,18 +64,12 @@ packages: peerDependencies: '@algolia/client-search': '>= 4.9.1 < 6' algoliasearch: '>= 4.9.1 < 6' - peerDependenciesMeta: - '@algolia/client-search': - optional: true '@algolia/autocomplete-shared@1.9.3': resolution: {integrity: sha512-Wnm9E4Ye6Rl6sTTqjoymD+l8DjSTHsHboVRYrKgEt8Q7UHm9nYbqhN/i0fhUYA3OAEH7WA8x3jfpnmJm3rKvaQ==} peerDependencies: '@algolia/client-search': '>= 4.9.1 < 6' algoliasearch: '>= 4.9.1 < 6' - peerDependenciesMeta: - '@algolia/client-search': - optional: true '@algolia/cache-browser-local-storage@4.23.3': resolution: {integrity: sha512-vRHXYCpPlTDE7i6UOy2xE03zHF2C8MEFjPN2v7fRbqVpcOvAUQK81x3Kc21xyb5aSIpYCjWCZbYZuz8Glyzyyg==} @@ -436,6 +439,15 @@ packages: cpu: [x64] os: [win32] + '@iconify-json/carbon@1.1.36': + resolution: {integrity: sha512-NC3VcqLtwLZpi7+LeXj+99/byv+asrnCQxiDNCZV6hKr9WcNh6C25kJguJYfN+dV54kOkw78e+6PitQi2Bppnw==} + + '@iconify-json/icon-park-outline@1.1.15': + resolution: {integrity: sha512-jQbk/ETARyYPjX6HolkdjSLJHsNCfSBfYUqcUQLXYK/1tfuVnQsUdWG2IM2a7VBpxJtrK7r4n1iwPOFaZ5T46g==} + + '@iconify-json/octicon@1.1.55': + resolution: {integrity: sha512-TWVO7olfquviijdmdrEbvpjPTxBmVvU0ZoR9BBx9pIhvEsG7emefrLg7eZm1CYGYM+9StkksDbqha8HCy/6kzQ==} + '@iconify/types@2.0.0': resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==} @@ -483,6 +495,18 @@ packages: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} + '@nolebase/ui@2.2.0': + resolution: {integrity: sha512-i2OITf/g/3lpwib1X8NFzJNDOZC2rgUxG0gkwo8mBV2C9pq5WHixBybrwDM54QY1n38Rpg/ZXgoH1jiVuPQewQ==} + + '@nolebase/vitepress-plugin-enhanced-readabilities@2.2.0': + resolution: {integrity: sha512-qdE+yDs4Eso5LZ44vsCO7nG0IGOxmaBhXxrbAm58/vESer/V6/sTWNv5LyrsrQ+QUbLooBEK7PQwrQ5ClKe4fA==} + + '@nolebase/vitepress-plugin-git-changelog@2.2.0': + resolution: {integrity: sha512-FNld1+V4QQ1ZcV1Lx3nC6hw1TPUNv3Ku+tq6OEtiZLJBC988+aI/9T+cgLoLWUWINPsdM3qtrMMDboLDRB9VyA==} + + '@nolebase/vitepress-plugin-page-properties@2.2.0': + resolution: {integrity: sha512-1p6R3Bf2u4+Vj1Z4uTf9hLP4DJOAKLsgLt0T/SMHQtE02ZPto74/C7IsoEZoHtamPuHoCB/2bEdTO6seFhQ9Qg==} + '@polka/url@1.0.0-next.25': resolution: {integrity: sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==} @@ -662,6 +686,10 @@ packages: engines: {node: '>= 8.0.0'} hasBin: true + '@sindresorhus/merge-streams@2.3.0': + resolution: {integrity: sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==} + engines: {node: '>=18'} + '@taskylizard/vitepress@1.1.1': resolution: {integrity: sha512-uWSSQpJSyJVpLORnpZJTbRENTQ6QMk9vnwoss3ORbtlMEyKrhxu1aEMqC2hNT16qa5FkU4s/d3oD+Vstw2OhUQ==} hasBin: true @@ -890,6 +918,10 @@ packages: algoliasearch@4.23.3: resolution: {integrity: sha512-Le/3YgNvjW9zxIQMRhUHuhiUjAlKY/zsdZpfq4dlLqg6mEm0nL6yk+7f2hDOtLpxsgE4jSzDmvHL7nXdBp5feg==} + ansi-regex@6.0.1: + resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} + engines: {node: '>=12'} + ansi-styles@3.2.1: resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} engines: {node: '>=4'} @@ -898,6 +930,9 @@ packages: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} + argparse@1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + array-flatten@1.1.1: resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} @@ -944,10 +979,22 @@ packages: 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} + chokidar@3.6.0: resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} engines: {node: '>= 8.10.0'} + cli-cursor@4.0.0: + resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + cli-spinners@2.9.2: + resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} + engines: {node: '>=6'} + color-convert@1.9.3: resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} @@ -985,6 +1032,9 @@ packages: resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==} engines: {node: '>= 0.6'} + copy-anything@2.0.6: + resolution: {integrity: sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==} + cross-spawn@7.0.3: resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} engines: {node: '>= 8'} @@ -1009,6 +1059,9 @@ packages: csstype@3.1.3: resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + date-fns@3.6.0: + resolution: {integrity: sha512-fRHTG8g/Gif+kSh50gaGEdToemgfj74aRX3swtiouboip5JDLAyDE9F11nHMIcvOaXeOC6D7SpNhi7uFyB7Uww==} + debug@2.6.9: resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} peerDependencies: @@ -1064,6 +1117,10 @@ packages: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} + errno@0.1.8: + resolution: {integrity: sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==} + hasBin: true + es-define-property@1.0.0: resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} engines: {node: '>= 0.4'} @@ -1088,6 +1145,11 @@ packages: resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} engines: {node: '>=0.8.0'} + esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + estree-walker@2.0.2: resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} @@ -1099,10 +1161,18 @@ packages: resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} engines: {node: '>=10'} + execa@8.0.1: + resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} + engines: {node: '>=16.17'} + express@4.19.2: resolution: {integrity: sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==} engines: {node: '>= 0.10.0'} + extend-shallow@2.0.1: + resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} + engines: {node: '>=0.10.0'} + fast-glob@3.3.2: resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} engines: {node: '>=8.6.0'} @@ -1148,6 +1218,10 @@ packages: resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} engines: {node: '>=6.9.0'} + get-east-asian-width@1.2.0: + resolution: {integrity: sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==} + engines: {node: '>=18'} + get-intrinsic@1.2.4: resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} engines: {node: '>= 0.4'} @@ -1160,6 +1234,10 @@ packages: resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} engines: {node: '>=10'} + get-stream@8.0.1: + resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} + engines: {node: '>=16'} + glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} @@ -1168,9 +1246,20 @@ packages: resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} engines: {node: '>=4'} + globby@14.0.2: + resolution: {integrity: sha512-s3Fq41ZVh7vbbe2PN3nrW7yC7U7MFVc5c98/iTl9c2GawNMKx/J648KQRW6WKkuU8GIbbh2IXfIRQjOZnXcTnw==} + engines: {node: '>=18'} + gopd@1.0.1: resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + 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'} + gzip-size@6.0.0: resolution: {integrity: sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==} engines: {node: '>=10'} @@ -1209,10 +1298,27 @@ packages: resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} engines: {node: '>=10.17.0'} + human-signals@5.0.0: + resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} + engines: {node: '>=16.17.0'} + iconv-lite@0.4.24: resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} engines: {node: '>=0.10.0'} + iconv-lite@0.6.3: + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} + engines: {node: '>=0.10.0'} + + ignore@5.3.1: + resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} + engines: {node: '>= 4'} + + image-size@0.5.5: + resolution: {integrity: sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==} + engines: {node: '>=0.10.0'} + hasBin: true + inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} @@ -1224,6 +1330,10 @@ packages: resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} engines: {node: '>=8'} + 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'} @@ -1232,6 +1342,10 @@ packages: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} + 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'} @@ -1240,6 +1354,21 @@ packages: resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} engines: {node: '>=8'} + is-stream@3.0.0: + resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + is-unicode-supported@1.3.0: + resolution: {integrity: sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==} + engines: {node: '>=12'} + + is-unicode-supported@2.0.0: + resolution: {integrity: sha512-FRdAyx5lusK1iHG0TWpVtk9+1i+GjrzRffhDg4ovQ7mcidMQ6mj+MhKPmvh7Xwyv5gIS06ns49CA7Sqg7lC22Q==} + engines: {node: '>=18'} + + is-what@3.14.1: + resolution: {integrity: sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==} + isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} @@ -1250,6 +1379,10 @@ packages: js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + js-yaml@3.14.1: + resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} + hasBin: true + jsesc@2.5.2: resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} engines: {node: '>=4'} @@ -1260,9 +1393,18 @@ packages: engines: {node: '>=6'} hasBin: true + kind-of@6.0.3: + resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} + engines: {node: '>=0.10.0'} + kolorist@1.8.0: resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==} + less@4.2.0: + resolution: {integrity: sha512-P3b3HJDBtSzsXUl0im2L7gTO5Ubg8mEN6G8qoTS77iXxXX4Hvu4Qj540PZDvQ8V6DmX6iXo98k7Md0Cm1PrLaA==} + engines: {node: '>=6'} + hasBin: true + linebreak@1.1.0: resolution: {integrity: sha512-MHp03UImeVhB7XZtjd0E4n6+3xr5Dq/9xI/5FptGk5FrbDR3zagPa2DS6U8ks/3HjbKWG9Q1M2ufOzxV2qLYSQ==} @@ -1274,12 +1416,20 @@ packages: resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} engines: {node: '>=10'} + log-symbols@6.0.0: + resolution: {integrity: sha512-i24m8rpwhmPIS4zscNzK6MSEhk0DUWa/8iYQWxhffV8jkI4Phvs3F+quL5xvS0gdQR0FyTCMMH33Y78dDTzzIw==} + engines: {node: '>=18'} + lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} magic-string@0.30.10: resolution: {integrity: sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==} + make-dir@2.1.0: + resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==} + engines: {node: '>=6'} + mark.js@8.11.1: resolution: {integrity: sha512-1I+1qpDt4idfgLQG+BNWmrqku+7/2bi5nLf4YwF8y8zXvmfiTBY3PV3ZibfrjBueCByROpuBjLLFCajqkgYoLQ==} @@ -1325,6 +1475,10 @@ packages: resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} engines: {node: '>=6'} + mimic-fn@4.0.0: + resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} + engines: {node: '>=12'} + minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} @@ -1355,6 +1509,11 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true + needle@3.3.1: + resolution: {integrity: sha512-6k0YULvhpw+RoLNiQCRKOl09Rv1dPLr8hHnVjHqdolKwDrdNyk+Hmrthi4lIGPPz3r39dLx0hsF5s40sZ3Us4Q==} + engines: {node: '>= 4.4.x'} + hasBin: true + negotiator@0.6.3: resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} engines: {node: '>= 0.6'} @@ -1373,6 +1532,10 @@ packages: resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} engines: {node: '>=8'} + npm-run-path@5.3.0: + resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + nprogress@0.2.0: resolution: {integrity: sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==} @@ -1390,6 +1553,14 @@ packages: resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} engines: {node: '>=6'} + onetime@6.0.0: + resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} + engines: {node: '>=12'} + + ora@8.0.1: + resolution: {integrity: sha512-ANIvzobt1rls2BDny5fWZ3ZVKyD6nscLvfFRpQgfWsythlcsVUC9kL0zq6j2Z5z9wwp1kd7wpsD/T9qNPVLCaQ==} + engines: {node: '>=18'} + p-limit@3.1.0: resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} engines: {node: '>=10'} @@ -1404,6 +1575,10 @@ packages: parse-css-color@0.2.1: resolution: {integrity: sha512-bwS/GGIFV3b6KS4uwpzCFj4w297Yl3uqnSgIPsoQkx7GMLROXfMnWvxfNkL0oh8HVhZA4hvJoEoEIqonfJ3BWg==} + parse-node-version@1.0.1: + resolution: {integrity: sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==} + engines: {node: '>= 0.10'} + parseurl@1.3.3: resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} engines: {node: '>= 0.8'} @@ -1416,12 +1591,20 @@ packages: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} + path-key@4.0.0: + resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} + engines: {node: '>=12'} + path-to-regexp@0.1.7: resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==} path-to-regexp@6.2.2: resolution: {integrity: sha512-GQX3SSMokngb36+whdpRXE+3f9V8UzyAorlYvOGx87ufGHehNTn5lCxrKtLyZ4Yl/wEKnNnr98ZzOwwDZV5ogw==} + path-type@5.0.0: + resolution: {integrity: sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==} + engines: {node: '>=12'} + pathe@1.1.2: resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} @@ -1435,6 +1618,10 @@ packages: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} + pify@4.0.1: + resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} + engines: {node: '>=6'} + pkg-types@1.1.1: resolution: {integrity: sha512-ko14TjmDuQJ14zsotODv7dBlwxKhUKQEhuhmbqo1uCi9BB0Z2alo/wAXg6q1dTR5TyuqYyWhjtfe/Tsh+X28jQ==} @@ -1457,6 +1644,9 @@ packages: resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} engines: {node: '>= 0.10'} + prr@1.0.1: + resolution: {integrity: sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==} + qs@6.11.0: resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} engines: {node: '>=0.6'} @@ -1476,6 +1666,10 @@ packages: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} + restore-cursor@4.0.0: + resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + reusify@1.0.4: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} @@ -1504,9 +1698,20 @@ packages: resolution: {integrity: sha512-klCwkVYMQ/ZN5inJLHzrUmGwoRfsdP7idB5hfpJ1jfiJk1ErDitK8Hkc6Kll1+Ox2WtqEuGecSZLnmup3CGzvQ==} engines: {node: '>=16'} + sax@1.4.1: + resolution: {integrity: sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==} + search-insights@2.14.0: resolution: {integrity: sha512-OLN6MsPMCghDOqlCtsIsYgtsC0pnwVTyT9Mu6A3ewOj1DxvzZF6COrn2g86E/c05xbktB0XN04m/t1Z+n+fTGw==} + section-matter@1.0.0: + resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==} + engines: {node: '>=4'} + + semver@5.7.2: + resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} + hasBin: true + semver@6.3.1: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true @@ -1544,6 +1749,10 @@ packages: signal-exit@3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + simple-git@3.24.0: resolution: {integrity: sha512-QqAKee9Twv+3k8IFOFfPB2hnk6as6Y6ACUpwCtQvRYBAes23Wv3SZlHVobAzqcE8gfsisCvPw3HGW3HYM+VYYw==} @@ -1554,25 +1763,56 @@ packages: sisteransi@1.0.5: resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} + slash@5.1.0: + resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==} + engines: {node: '>=14.16'} + source-map-js@1.2.0: resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} engines: {node: '>=0.10.0'} + source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + speakingurl@14.0.1: resolution: {integrity: sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ==} engines: {node: '>=0.10.0'} + sprintf-js@1.0.3: + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + statuses@2.0.1: resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} engines: {node: '>= 0.8'} + stdin-discarder@0.2.2: + resolution: {integrity: sha512-UhDfHmA92YAlNnCfhmq0VeNL5bDbiZGg7sZ2IvPsXubGkiNa9EC+tUTsjBRsYUAz87btI6/1wf4XoVvQ3uRnmQ==} + engines: {node: '>=18'} + + string-width@7.2.0: + resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==} + engines: {node: '>=18'} + string.prototype.codepointat@0.2.1: resolution: {integrity: sha512-2cBVCj6I4IOvEnjgO/hWqXjqBGsY+zwPmHl12Srk9IXSZ56Jwwmy+66XO5Iut/oQVR7t5ihYdLB0GMa4alEUcg==} + strip-ansi@7.1.0: + 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-final-newline@2.0.0: resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} engines: {node: '>=6'} + strip-final-newline@3.0.0: + resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} + engines: {node: '>=12'} + supports-color@5.5.0: resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} engines: {node: '>=4'} @@ -1599,6 +1839,9 @@ packages: resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} engines: {node: '>=6'} + tslib@2.6.3: + resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==} + type-is@1.6.18: resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} engines: {node: '>= 0.6'} @@ -1615,12 +1858,19 @@ packages: unconfig@0.3.13: resolution: {integrity: sha512-N9Ph5NC4+sqtcOjPfHrRcHekBCadCXWTBzp2VYYbySOHW0PfD9XLCeXshTXjkPYwLrBr9AtSeU0CZmkYECJhng==} + uncrypto@0.1.3: + resolution: {integrity: sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==} + undici-types@5.26.5: resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} unicode-trie@2.0.0: resolution: {integrity: sha512-x7bc76x0bm4prf1VLg79uhAzKw8DVboClSN5VxJuQ+LKDOVEW9CdH+VY7SP+vX7xCYQqzzgQpFqz15zeLvAtZQ==} + unicorn-magic@0.1.0: + resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==} + engines: {node: '>=18'} + unocss@0.60.4: resolution: {integrity: sha512-KtYVzm1sV1J7hpXFvILPZiJVTni+XzC2vJzKYFTEe80fEGsrL+572YjS3QjZB52TMSppLYJk6WIVTb4mE4RmvQ==} engines: {node: '>=14'} @@ -1647,6 +1897,10 @@ packages: resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} engines: {node: '>= 0.4.0'} + uuid@9.0.1: + resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} + hasBin: true + vary@1.1.2: resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} engines: {node: '>= 0.8'} @@ -1679,6 +1933,18 @@ packages: terser: optional: true + vitepress@1.2.3: + resolution: {integrity: sha512-GvEsrEeNLiDE1+fuwDAYJCYLNZDAna+EtnXlPajhv/MYeTjbNK6Bvyg6NoTdO1sbwuQJ0vuJR99bOlH53bo6lg==} + hasBin: true + peerDependencies: + markdown-it-mathjax3: ^4 + postcss: ^8 + peerDependenciesMeta: + markdown-it-mathjax3: + optional: true + postcss: + optional: true + vue-demi@0.14.8: resolution: {integrity: sha512-Uuqnk9YE9SsWeReYqK2alDI5YzciATE0r2SkA6iMAtuXvNTMNACJLJEXNXaEy94ECuBe4Sk6RzRU80kjdbIo1Q==} engines: {node: '>=12'} @@ -1743,15 +2009,13 @@ snapshots: '@algolia/autocomplete-preset-algolia@1.9.3(@algolia/client-search@4.23.3)(algoliasearch@4.23.3)': dependencies: '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.23.3)(algoliasearch@4.23.3) - algoliasearch: 4.23.3 - optionalDependencies: '@algolia/client-search': 4.23.3 + algoliasearch: 4.23.3 '@algolia/autocomplete-shared@1.9.3(@algolia/client-search@4.23.3)(algoliasearch@4.23.3)': dependencies: - algoliasearch: 4.23.3 - optionalDependencies: '@algolia/client-search': 4.23.3 + algoliasearch: 4.23.3 '@algolia/cache-browser-local-storage@4.23.3': dependencies: @@ -2160,6 +2424,18 @@ snapshots: '@esbuild/win32-x64@0.20.2': optional: true + '@iconify-json/carbon@1.1.36': + dependencies: + '@iconify/types': 2.0.0 + + '@iconify-json/icon-park-outline@1.1.15': + dependencies: + '@iconify/types': 2.0.0 + + '@iconify-json/octicon@1.1.55': + dependencies: + '@iconify/types': 2.0.0 + '@iconify/types@2.0.0': {} '@iconify/utils@2.1.24': @@ -2226,6 +2502,155 @@ snapshots: '@nodelib/fs.scandir': 2.1.5 fastq: 1.17.1 + '@nolebase/ui@2.2.0(@algolia/client-search@4.23.3)(@types/node@20.14.2)(nprogress@0.2.0)(postcss@8.4.38)(search-insights@2.14.0)': + dependencies: + '@iconify-json/octicon': 1.1.55 + less: 4.2.0 + vitepress: 1.2.3(@algolia/client-search@4.23.3)(@types/node@20.14.2)(less@4.2.0)(nprogress@0.2.0)(postcss@8.4.38)(search-insights@2.14.0) + vue: 3.4.27 + transitivePeerDependencies: + - '@algolia/client-search' + - '@types/node' + - '@types/react' + - '@vue/composition-api' + - async-validator + - axios + - change-case + - drauu + - fuse.js + - idb-keyval + - jwt-decode + - lightningcss + - markdown-it-mathjax3 + - nprogress + - postcss + - qrcode + - react + - react-dom + - sass + - search-insights + - sortablejs + - stylus + - sugarss + - terser + - typescript + - universal-cookie + + '@nolebase/vitepress-plugin-enhanced-readabilities@2.2.0(@algolia/client-search@4.23.3)(@types/node@20.14.2)(nprogress@0.2.0)(postcss@8.4.38)(search-insights@2.14.0)': + dependencies: + '@iconify-json/carbon': 1.1.36 + '@iconify-json/icon-park-outline': 1.1.15 + '@nolebase/ui': 2.2.0(@algolia/client-search@4.23.3)(@types/node@20.14.2)(nprogress@0.2.0)(postcss@8.4.38)(search-insights@2.14.0) + less: 4.2.0 + vitepress: 1.2.3(@algolia/client-search@4.23.3)(@types/node@20.14.2)(less@4.2.0)(nprogress@0.2.0)(postcss@8.4.38)(search-insights@2.14.0) + transitivePeerDependencies: + - '@algolia/client-search' + - '@types/node' + - '@types/react' + - '@vue/composition-api' + - async-validator + - axios + - change-case + - drauu + - fuse.js + - idb-keyval + - jwt-decode + - lightningcss + - markdown-it-mathjax3 + - nprogress + - postcss + - qrcode + - react + - react-dom + - sass + - search-insights + - sortablejs + - stylus + - sugarss + - terser + - typescript + - universal-cookie + + '@nolebase/vitepress-plugin-git-changelog@2.2.0(@algolia/client-search@4.23.3)(@types/node@20.14.2)(nprogress@0.2.0)(postcss@8.4.38)(search-insights@2.14.0)': + dependencies: + '@iconify-json/octicon': 1.1.55 + '@nolebase/ui': 2.2.0(@algolia/client-search@4.23.3)(@types/node@20.14.2)(nprogress@0.2.0)(postcss@8.4.38)(search-insights@2.14.0) + colorette: 2.0.20 + date-fns: 3.6.0 + defu: 6.1.4 + execa: 8.0.1 + globby: 14.0.2 + gray-matter: 4.0.3 + less: 4.2.0 + ora: 8.0.1 + uncrypto: 0.1.3 + vitepress: 1.2.3(@algolia/client-search@4.23.3)(@types/node@20.14.2)(less@4.2.0)(nprogress@0.2.0)(postcss@8.4.38)(search-insights@2.14.0) + transitivePeerDependencies: + - '@algolia/client-search' + - '@types/node' + - '@types/react' + - '@vue/composition-api' + - async-validator + - axios + - change-case + - drauu + - fuse.js + - idb-keyval + - jwt-decode + - lightningcss + - markdown-it-mathjax3 + - nprogress + - postcss + - qrcode + - react + - react-dom + - sass + - search-insights + - sortablejs + - stylus + - sugarss + - terser + - typescript + - universal-cookie + + '@nolebase/vitepress-plugin-page-properties@2.2.0(@algolia/client-search@4.23.3)(@types/node@20.14.2)(nprogress@0.2.0)(postcss@8.4.38)(search-insights@2.14.0)': + dependencies: + '@iconify-json/icon-park-outline': 1.1.15 + '@iconify-json/octicon': 1.1.55 + '@nolebase/ui': 2.2.0(@algolia/client-search@4.23.3)(@types/node@20.14.2)(nprogress@0.2.0)(postcss@8.4.38)(search-insights@2.14.0) + date-fns: 3.6.0 + gray-matter: 4.0.3 + less: 4.2.0 + uuid: 9.0.1 + vitepress: 1.2.3(@algolia/client-search@4.23.3)(@types/node@20.14.2)(less@4.2.0)(nprogress@0.2.0)(postcss@8.4.38)(search-insights@2.14.0) + transitivePeerDependencies: + - '@algolia/client-search' + - '@types/node' + - '@types/react' + - '@vue/composition-api' + - async-validator + - axios + - change-case + - drauu + - fuse.js + - idb-keyval + - jwt-decode + - lightningcss + - markdown-it-mathjax3 + - nprogress + - postcss + - qrcode + - react + - react-dom + - sass + - search-insights + - sortablejs + - stylus + - sugarss + - terser + - typescript + - universal-cookie + '@polka/url@1.0.0-next.25': {} '@resvg/resvg-js-android-arm-eabi@2.6.2': @@ -2346,14 +2771,16 @@ snapshots: fflate: 0.7.4 string.prototype.codepointat: 0.2.1 - '@taskylizard/vitepress@1.1.1(@algolia/client-search@4.23.3)(@types/node@20.14.2)(nprogress@0.2.0)(postcss@8.4.38)(search-insights@2.14.0)': + '@sindresorhus/merge-streams@2.3.0': {} + + '@taskylizard/vitepress@1.1.1(@algolia/client-search@4.23.3)(@types/node@20.14.2)(less@4.2.0)(nprogress@0.2.0)(postcss@8.4.38)(search-insights@2.14.0)': dependencies: '@docsearch/css': 3.6.0 '@docsearch/js': 3.6.0(@algolia/client-search@4.23.3)(search-insights@2.14.0) '@shikijs/core': 1.6.2 '@shikijs/transformers': 1.6.2 '@types/markdown-it': 14.1.1 - '@vitejs/plugin-vue': 5.0.5(vite@5.2.12(@types/node@20.14.2))(vue@3.4.27) + '@vitejs/plugin-vue': 5.0.5(vite@5.2.12(@types/node@20.14.2)(less@4.2.0))(vue@3.4.27) '@vue/devtools-api': 7.2.1(vue@3.4.27) '@vue/shared': 3.4.27 '@vueuse/core': 10.10.0(vue@3.4.27) @@ -2362,7 +2789,7 @@ snapshots: mark.js: 8.11.1 minisearch: 6.3.0 shiki: 1.6.2 - vite: 5.2.12(@types/node@20.14.2) + vite: 5.2.12(@types/node@20.14.2)(less@4.2.0) vue: 3.4.27 optionalDependencies: postcss: 8.4.38 @@ -2412,13 +2839,13 @@ snapshots: '@types/web-bluetooth@0.0.20': {} - '@unocss/astro@0.60.4(rollup@4.18.0)(vite@5.2.12(@types/node@20.14.2))': + '@unocss/astro@0.60.4(rollup@4.18.0)(vite@5.2.12(@types/node@20.14.2)(less@4.2.0))': dependencies: '@unocss/core': 0.60.4 '@unocss/reset': 0.60.4 - '@unocss/vite': 0.60.4(rollup@4.18.0)(vite@5.2.12(@types/node@20.14.2)) + '@unocss/vite': 0.60.4(rollup@4.18.0)(vite@5.2.12(@types/node@20.14.2)(less@4.2.0)) optionalDependencies: - vite: 5.2.12(@types/node@20.14.2) + vite: 5.2.12(@types/node@20.14.2)(less@4.2.0) transitivePeerDependencies: - rollup @@ -2549,7 +2976,7 @@ snapshots: dependencies: '@unocss/core': 0.60.4 - '@unocss/vite@0.60.4(rollup@4.18.0)(vite@5.2.12(@types/node@20.14.2))': + '@unocss/vite@0.60.4(rollup@4.18.0)(vite@5.2.12(@types/node@20.14.2)(less@4.2.0))': dependencies: '@ampproject/remapping': 2.3.0 '@rollup/pluginutils': 5.1.0(rollup@4.18.0) @@ -2561,13 +2988,13 @@ snapshots: chokidar: 3.6.0 fast-glob: 3.3.2 magic-string: 0.30.10 - vite: 5.2.12(@types/node@20.14.2) + vite: 5.2.12(@types/node@20.14.2)(less@4.2.0) transitivePeerDependencies: - rollup - '@vitejs/plugin-vue@5.0.5(vite@5.2.12(@types/node@20.14.2))(vue@3.4.27)': + '@vitejs/plugin-vue@5.0.5(vite@5.2.12(@types/node@20.14.2)(less@4.2.0))(vue@3.4.27)': dependencies: - vite: 5.2.12(@types/node@20.14.2) + vite: 5.2.12(@types/node@20.14.2)(less@4.2.0) vue: 3.4.27 '@vue/compiler-core@3.4.27': @@ -2698,6 +3125,8 @@ snapshots: '@algolia/requester-node-http': 4.23.3 '@algolia/transporter': 4.23.3 + ansi-regex@6.0.1: {} + ansi-styles@3.2.1: dependencies: color-convert: 1.9.3 @@ -2707,6 +3136,10 @@ snapshots: normalize-path: 3.0.0 picomatch: 2.3.1 + argparse@1.0.10: + dependencies: + sprintf-js: 1.0.3 + array-flatten@1.1.1: {} base64-js@0.0.8: {} @@ -2763,6 +3196,8 @@ snapshots: escape-string-regexp: 1.0.5 supports-color: 5.5.0 + chalk@5.3.0: {} + chokidar@3.6.0: dependencies: anymatch: 3.1.3 @@ -2775,6 +3210,12 @@ snapshots: optionalDependencies: fsevents: 2.3.3 + cli-cursor@4.0.0: + dependencies: + restore-cursor: 4.0.0 + + cli-spinners@2.9.2: {} + color-convert@1.9.3: dependencies: color-name: 1.1.3 @@ -2801,6 +3242,10 @@ snapshots: cookie@0.6.0: {} + copy-anything@2.0.6: + dependencies: + is-what: 3.14.1 + cross-spawn@7.0.3: dependencies: path-key: 3.1.1 @@ -2826,6 +3271,8 @@ snapshots: csstype@3.1.3: {} + date-fns@3.6.0: {} + debug@2.6.9: dependencies: ms: 2.0.0 @@ -2860,6 +3307,11 @@ snapshots: entities@4.5.0: {} + errno@0.1.8: + dependencies: + prr: 1.0.1 + optional: true + es-define-property@1.0.0: dependencies: get-intrinsic: 1.2.4 @@ -2898,6 +3350,8 @@ snapshots: escape-string-regexp@1.0.5: {} + esprima@4.0.1: {} + estree-walker@2.0.2: {} etag@1.8.1: {} @@ -2914,6 +3368,18 @@ snapshots: signal-exit: 3.0.7 strip-final-newline: 2.0.0 + execa@8.0.1: + dependencies: + cross-spawn: 7.0.3 + get-stream: 8.0.1 + human-signals: 5.0.0 + is-stream: 3.0.0 + merge-stream: 2.0.0 + npm-run-path: 5.3.0 + onetime: 6.0.0 + signal-exit: 4.1.0 + strip-final-newline: 3.0.0 + express@4.19.2: dependencies: accepts: 1.3.8 @@ -2950,6 +3416,10 @@ snapshots: transitivePeerDependencies: - supports-color + extend-shallow@2.0.1: + dependencies: + is-extendable: 0.1.1 + fast-glob@3.3.2: dependencies: '@nodelib/fs.stat': 2.0.5 @@ -3000,6 +3470,8 @@ snapshots: gensync@1.0.0-beta.2: {} + get-east-asian-width@1.2.0: {} + get-intrinsic@1.2.4: dependencies: es-errors: 1.3.0 @@ -3012,16 +3484,37 @@ snapshots: get-stream@6.0.1: {} + get-stream@8.0.1: {} + glob-parent@5.1.2: dependencies: is-glob: 4.0.3 globals@11.12.0: {} + globby@14.0.2: + dependencies: + '@sindresorhus/merge-streams': 2.3.0 + fast-glob: 3.3.2 + ignore: 5.3.1 + path-type: 5.0.0 + slash: 5.1.0 + unicorn-magic: 0.1.0 + gopd@1.0.1: dependencies: get-intrinsic: 1.2.4 + graceful-fs@4.2.11: + optional: true + + gray-matter@4.0.3: + dependencies: + js-yaml: 3.14.1 + kind-of: 6.0.3 + section-matter: 1.0.0 + strip-bom-string: 1.0.0 + gzip-size@6.0.0: dependencies: duplexer: 0.1.2 @@ -3054,10 +3547,22 @@ snapshots: human-signals@2.1.0: {} + human-signals@5.0.0: {} + iconv-lite@0.4.24: dependencies: safer-buffer: 2.1.2 + iconv-lite@0.6.3: + dependencies: + safer-buffer: 2.1.2 + optional: true + + ignore@5.3.1: {} + + image-size@0.5.5: + optional: true + inherits@2.0.4: {} ipaddr.js@1.9.1: {} @@ -3066,28 +3571,61 @@ snapshots: dependencies: binary-extensions: 2.3.0 + is-extendable@0.1.1: {} + is-extglob@2.1.1: {} is-glob@4.0.3: dependencies: is-extglob: 2.1.1 + is-interactive@2.0.0: {} + is-number@7.0.0: {} is-stream@2.0.1: {} + is-stream@3.0.0: {} + + is-unicode-supported@1.3.0: {} + + is-unicode-supported@2.0.0: {} + + is-what@3.14.1: {} + isexe@2.0.0: {} jiti@1.21.3: {} js-tokens@4.0.0: {} + js-yaml@3.14.1: + dependencies: + argparse: 1.0.10 + esprima: 4.0.1 + jsesc@2.5.2: {} json5@2.2.3: {} + kind-of@6.0.3: {} + kolorist@1.8.0: {} + less@4.2.0: + dependencies: + copy-anything: 2.0.6 + parse-node-version: 1.0.1 + tslib: 2.6.3 + optionalDependencies: + errno: 0.1.8 + graceful-fs: 4.2.11 + image-size: 0.5.5 + make-dir: 2.1.0 + mime: 1.6.0 + needle: 3.3.1 + source-map: 0.6.1 + linebreak@1.1.0: dependencies: base64-js: 0.0.8 @@ -3102,6 +3640,11 @@ snapshots: dependencies: p-locate: 5.0.0 + log-symbols@6.0.0: + dependencies: + chalk: 5.3.0 + is-unicode-supported: 1.3.0 + lru-cache@5.1.1: dependencies: yallist: 3.1.1 @@ -3110,6 +3653,12 @@ snapshots: dependencies: '@jridgewell/sourcemap-codec': 1.4.15 + make-dir@2.1.0: + dependencies: + pify: 4.0.1 + semver: 5.7.2 + optional: true + mark.js@8.11.1: {} mdn-data@2.0.30: {} @@ -3139,6 +3688,8 @@ snapshots: mimic-fn@2.1.0: {} + mimic-fn@4.0.0: {} + minimist@1.2.8: {} minisearch@6.3.0: {} @@ -3162,6 +3713,12 @@ snapshots: nanoid@3.3.7: {} + needle@3.3.1: + dependencies: + iconv-lite: 0.6.3 + sax: 1.4.1 + optional: true + negotiator@0.6.3: {} node-fetch-native@1.6.4: {} @@ -3174,6 +3731,10 @@ snapshots: dependencies: path-key: 3.1.1 + npm-run-path@5.3.0: + dependencies: + path-key: 4.0.0 + nprogress@0.2.0: {} object-inspect@1.13.1: {} @@ -3192,6 +3753,22 @@ snapshots: dependencies: mimic-fn: 2.1.0 + onetime@6.0.0: + dependencies: + mimic-fn: 4.0.0 + + ora@8.0.1: + dependencies: + chalk: 5.3.0 + cli-cursor: 4.0.0 + cli-spinners: 2.9.2 + is-interactive: 2.0.0 + is-unicode-supported: 2.0.0 + log-symbols: 6.0.0 + stdin-discarder: 0.2.2 + string-width: 7.2.0 + strip-ansi: 7.1.0 + p-limit@3.1.0: dependencies: yocto-queue: 0.1.0 @@ -3207,16 +3784,22 @@ snapshots: color-name: 1.1.4 hex-rgb: 4.3.0 + parse-node-version@1.0.1: {} + parseurl@1.3.3: {} path-exists@4.0.0: {} path-key@3.1.1: {} + path-key@4.0.0: {} + path-to-regexp@0.1.7: {} path-to-regexp@6.2.2: {} + path-type@5.0.0: {} + pathe@1.1.2: {} perfect-debounce@1.0.0: {} @@ -3225,6 +3808,9 @@ snapshots: picomatch@2.3.1: {} + pify@4.0.1: + optional: true + pkg-types@1.1.1: dependencies: confbox: 0.1.7 @@ -3248,6 +3834,9 @@ snapshots: forwarded: 0.2.0 ipaddr.js: 1.9.1 + prr@1.0.1: + optional: true + qs@6.11.0: dependencies: side-channel: 1.0.6 @@ -3267,6 +3856,11 @@ snapshots: dependencies: picomatch: 2.3.1 + restore-cursor@4.0.0: + dependencies: + onetime: 5.1.2 + signal-exit: 3.0.7 + reusify@1.0.4: {} rfdc@1.3.1: {} @@ -3318,8 +3912,19 @@ snapshots: postcss-value-parser: 4.2.0 yoga-wasm-web: 0.3.3 + sax@1.4.1: + optional: true + search-insights@2.14.0: {} + section-matter@1.0.0: + dependencies: + extend-shallow: 2.0.1 + kind-of: 6.0.3 + + semver@5.7.2: + optional: true + semver@6.3.1: {} send@0.18.0: @@ -3379,6 +3984,8 @@ snapshots: signal-exit@3.0.7: {} + signal-exit@4.1.0: {} + simple-git@3.24.0: dependencies: '@kwsites/file-exists': 1.1.1 @@ -3395,16 +4002,39 @@ snapshots: sisteransi@1.0.5: {} + slash@5.1.0: {} + source-map-js@1.2.0: {} + source-map@0.6.1: + optional: true + speakingurl@14.0.1: {} + sprintf-js@1.0.3: {} + statuses@2.0.1: {} + stdin-discarder@0.2.2: {} + + string-width@7.2.0: + dependencies: + emoji-regex: 10.3.0 + get-east-asian-width: 1.2.0 + strip-ansi: 7.1.0 + string.prototype.codepointat@0.2.1: {} + strip-ansi@7.1.0: + dependencies: + ansi-regex: 6.0.1 + + strip-bom-string@1.0.0: {} + strip-final-newline@2.0.0: {} + strip-final-newline@3.0.0: {} + supports-color@5.5.0: dependencies: has-flag: 3.0.0 @@ -3423,6 +4053,8 @@ snapshots: totalist@3.0.1: {} + tslib@2.6.3: {} + type-is@1.6.18: dependencies: media-typer: 0.3.0 @@ -3440,6 +4072,8 @@ snapshots: defu: 6.1.4 jiti: 1.21.3 + uncrypto@0.1.3: {} + undici-types@5.26.5: {} unicode-trie@2.0.0: @@ -3447,9 +4081,11 @@ snapshots: pako: 0.2.9 tiny-inflate: 1.0.3 - unocss@0.60.4(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.12(@types/node@20.14.2)): + unicorn-magic@0.1.0: {} + + unocss@0.60.4(postcss@8.4.38)(rollup@4.18.0)(vite@5.2.12(@types/node@20.14.2)(less@4.2.0)): dependencies: - '@unocss/astro': 0.60.4(rollup@4.18.0)(vite@5.2.12(@types/node@20.14.2)) + '@unocss/astro': 0.60.4(rollup@4.18.0)(vite@5.2.12(@types/node@20.14.2)(less@4.2.0)) '@unocss/cli': 0.60.4(rollup@4.18.0) '@unocss/core': 0.60.4 '@unocss/extractor-arbitrary-variants': 0.60.4 @@ -3468,9 +4104,9 @@ snapshots: '@unocss/transformer-compile-class': 0.60.4 '@unocss/transformer-directives': 0.60.4 '@unocss/transformer-variant-group': 0.60.4 - '@unocss/vite': 0.60.4(rollup@4.18.0)(vite@5.2.12(@types/node@20.14.2)) + '@unocss/vite': 0.60.4(rollup@4.18.0)(vite@5.2.12(@types/node@20.14.2)(less@4.2.0)) optionalDependencies: - vite: 5.2.12(@types/node@20.14.2) + vite: 5.2.12(@types/node@20.14.2)(less@4.2.0) transitivePeerDependencies: - postcss - rollup @@ -3486,9 +4122,11 @@ snapshots: utils-merge@1.0.1: {} + uuid@9.0.1: {} + vary@1.1.2: {} - vite@5.2.12(@types/node@20.14.2): + vite@5.2.12(@types/node@20.14.2)(less@4.2.0): dependencies: esbuild: 0.20.2 postcss: 8.4.38 @@ -3496,6 +4134,54 @@ snapshots: optionalDependencies: '@types/node': 20.14.2 fsevents: 2.3.3 + less: 4.2.0 + + vitepress@1.2.3(@algolia/client-search@4.23.3)(@types/node@20.14.2)(less@4.2.0)(nprogress@0.2.0)(postcss@8.4.38)(search-insights@2.14.0): + dependencies: + '@docsearch/css': 3.6.0 + '@docsearch/js': 3.6.0(@algolia/client-search@4.23.3)(search-insights@2.14.0) + '@shikijs/core': 1.6.2 + '@shikijs/transformers': 1.6.2 + '@types/markdown-it': 14.1.1 + '@vitejs/plugin-vue': 5.0.5(vite@5.2.12(@types/node@20.14.2)(less@4.2.0))(vue@3.4.27) + '@vue/devtools-api': 7.2.1(vue@3.4.27) + '@vue/shared': 3.4.27 + '@vueuse/core': 10.10.0(vue@3.4.27) + '@vueuse/integrations': 10.10.0(focus-trap@7.5.4)(nprogress@0.2.0)(vue@3.4.27) + focus-trap: 7.5.4 + mark.js: 8.11.1 + minisearch: 6.3.0 + shiki: 1.6.2 + vite: 5.2.12(@types/node@20.14.2)(less@4.2.0) + vue: 3.4.27 + optionalDependencies: + postcss: 8.4.38 + transitivePeerDependencies: + - '@algolia/client-search' + - '@types/node' + - '@types/react' + - '@vue/composition-api' + - async-validator + - axios + - change-case + - drauu + - fuse.js + - idb-keyval + - jwt-decode + - less + - lightningcss + - nprogress + - qrcode + - react + - react-dom + - sass + - search-insights + - sortablejs + - stylus + - sugarss + - terser + - typescript + - universal-cookie vue-demi@0.14.8(vue@3.4.27): dependencies: