diff --git a/.gitignore b/.gitignore index a96a1a90..265b49a8 100644 --- a/.gitignore +++ b/.gitignore @@ -5,6 +5,7 @@ # documentation /public/docs/**/sections.* +/public/docs/**/termDefinitions.* /public/docs/languages.* /public/docs/revisions-dev.yml /public/docs/commits-dev.yml diff --git a/README.md b/README.md index 28ae57c5..09b11f42 100644 --- a/README.md +++ b/README.md @@ -101,6 +101,10 @@ Cloudflare Worker のビルドログとステータス表示が見れますが - このセクションに関連する、想定される質問例。 # question: 自体を省略すると、GitHub ActionがGeminiを呼び出して質問例を生成しpushします。 # 質問例が不要な場合は question: [] にしてください。 + term: + - キーワード + - きーわーど + # 他のページで [[キーワード]] と書いた場合に、このセクションの内容がポップアップで表示される。 ``` * コード例はそれが配置されているセクションの内容と関連するようにする。 ````md diff --git a/app/(docs)/@chat/chat/[chatId]/page.tsx b/app/(docs)/@chat/chat/[chatId]/page.tsx index a2bc364b..00484739 100644 --- a/app/(docs)/@chat/chat/[chatId]/page.tsx +++ b/app/(docs)/@chat/chat/[chatId]/page.tsx @@ -4,7 +4,7 @@ import { getChatOne, initContext, } from "@/lib/chatHistory"; -import { getMarkdownSections, getPagesList } from "@/lib/docs"; +import { getMarkdownSections, getPagesListForLang, LangId } from "@/lib/docs"; import { ChatAreaContainer, ChatAreaContent } from "./chatArea"; import { cacheLife, cacheTag } from "next/cache"; import { isCloudflare } from "@/lib/detectCloudflare"; @@ -29,9 +29,8 @@ export default async function ChatPage({ ); } - const pagesList = await getPagesList(); - const targetLang = pagesList.find( - (lang) => lang.id === chatData.section.pagePath.split("/")[0] + const targetLang = await getPagesListForLang( + chatData.section.pagePath.split("/")[0] as LangId ); const targetPage = targetLang?.pages.find( (page) => page.slug === chatData.section.pagePath.split("/")[1] diff --git a/app/(docs)/@docs/[lang]/[pageId]/page.tsx b/app/(docs)/@docs/[lang]/[pageId]/page.tsx index 524ddd20..dc860432 100644 --- a/app/(docs)/@docs/[lang]/[pageId]/page.tsx +++ b/app/(docs)/@docs/[lang]/[pageId]/page.tsx @@ -9,7 +9,8 @@ import { } from "@/lib/chatHistory"; import { getMarkdownSections, - getPagesList, + getPagesListForLang, + getTermDefinitions, LangId, PagePath, PageSlug, @@ -18,6 +19,7 @@ import { cacheLife, cacheTag } from "next/cache"; import { isCloudflare } from "@/lib/detectCloudflare"; import { DocsAutoRedirect } from "./autoRedirect"; import { dateReviver } from "@/lib/dateReviver"; +import { TermDefinitionProvider } from "@/markdown/term"; export async function generateMetadata({ params, @@ -25,8 +27,7 @@ export async function generateMetadata({ params: Promise<{ lang: LangId; pageId: PageSlug }>; }): Promise { const { lang, pageId } = await params; - const pagesList = await getPagesList(); - const langEntry = pagesList.find((l) => l.id === lang); + const langEntry = await getPagesListForLang(lang); const pageEntry = langEntry?.pages.find((p) => p.slug === pageId); if (!langEntry || !pageEntry) notFound(); @@ -45,8 +46,7 @@ export default async function Page({ params: Promise<{ lang: LangId; pageId: PageSlug }>; }) { const { lang, pageId } = await params; - const pagesList = await getPagesList(); - const langEntry = pagesList.find((l) => l.id === lang); + const langEntry = await getPagesListForLang(lang); const pageEntryIndex = langEntry?.pages.findIndex((p) => p.slug === pageId) ?? -1; const pageEntry = langEntry?.pages[pageEntryIndex]; @@ -62,17 +62,21 @@ export default async function Page({ const context = await initContext(); const chatHistories = await getChatFromCache(path, context.userId); + const termDefinitions = await getTermDefinitions(lang); + return ( <> - + + + ); diff --git a/app/(docs)/@docs/[lang]/[pageId]/pageContent.tsx b/app/(docs)/@docs/[lang]/[pageId]/pageContent.tsx index 29bc52d3..55b98e18 100644 --- a/app/(docs)/@docs/[lang]/[pageId]/pageContent.tsx +++ b/app/(docs)/@docs/[lang]/[pageId]/pageContent.tsx @@ -159,6 +159,7 @@ export function PageContent(props: PageContentProps) {
diff --git a/app/api/chat/route.ts b/app/api/chat/route.ts index a4c182cf..cca53f93 100644 --- a/app/api/chat/route.ts +++ b/app/api/chat/route.ts @@ -9,7 +9,7 @@ import { import { DynamicMarkdownSectionSchema, getMarkdownSections, - getPagesList, + getPagesListForLang, introSectionId, PagePathSchema, SectionId, @@ -57,8 +57,7 @@ export async function POST(request: NextRequest) { execResults, } = parseResult.data; - const pagesList = await getPagesList(); - const langEntry = pagesList.find((lang) => lang.id === path.lang); + const langEntry = await getPagesListForLang(path.lang); const langName = langEntry?.name ?? path.lang; let targetPath = path; let targetSectionContent = sectionContent; diff --git a/app/featureCard.tsx b/app/featureCard.tsx index 69ca1fb5..0d973b69 100644 --- a/app/featureCard.tsx +++ b/app/featureCard.tsx @@ -181,6 +181,7 @@ Pythonは整数 (\`int\`) と浮動小数点数 (\`float\`) を区別します 浮動小数点数 (\`float\`) は、他の言語の double 型に相当する倍精度浮動小数点数です。 `} replacedRange={[{ start: 64, end: 120, id: "sample" }]} + interactive />
diff --git a/app/lib/docs.ts b/app/lib/docs.ts index 54d1be1d..12405ab3 100644 --- a/app/lib/docs.ts +++ b/app/lib/docs.ts @@ -43,6 +43,10 @@ export const SectionFrontMatterSchema = z.object({ * scripts/questionExample.ts で生成する */ question: z.array(z.string()).optional(), + /** + * 他のページで [[キーワード]] と書いた場合に、このセクションの内容がポップアップで表示される。 + */ + term: z.array(z.string()).optional(), }); export type SectionFrontMatter = z.output; export const MarkdownSectionSchema = SectionFrontMatterSchema.extend({ @@ -61,6 +65,16 @@ export const MarkdownSectionSchema = SectionFrontMatterSchema.extend({ }); export type MarkdownSection = z.output; +export interface TermDefinition { + alias: string[]; + pageSlug: PageSlug; + pageIndex: number; + pageName: string; + id: SectionId; + title: string; + rawContentWithoutCode: string; +} + export const ReplacedRangeSchema = z.object({ start: z.number(), end: z.number(), @@ -197,22 +211,23 @@ async function getLanguageIds(): Promise { export async function getPagesList(): Promise { const langIds = await getLanguageIds(); - return await Promise.all( - langIds.map(async (langId) => { - const raw = await readPublicFile(`docs/${langId}/index.yml`); - const data = yaml.load(raw) as IndexYml; - return { - id: langId, - name: data.name as LangName, - description: data.description, - pages: data.pages.map((p, index) => ({ - ...p, - slug: p.slug as PageSlug, - index, - })), - }; - }) - ); + return await Promise.all(langIds.map(getPagesListForLang)); +} +export async function getPagesListForLang( + langId: LangId +): Promise { + const raw = await readPublicFile(`docs/${langId}/index.yml`); + const data = yaml.load(raw) as IndexYml; + return { + id: langId, + name: data.name as LangName, + description: data.description, + pages: data.pages.map((p, index) => ({ + ...p, + slug: p.slug as PageSlug, + index, + })), + }; } export async function getRevisions( @@ -328,6 +343,7 @@ function parseFrontmatter(content: string, file: string): MarkdownSection { title: fm.title, level: fm.level, question: fm.question, + term: fm.term, rawContent, md5: crypto.createHash("md5").update(rawContent).digest("base64"), }; @@ -360,3 +376,49 @@ export async function getRevisionOfMarkdownSection( ); } } + +export async function getTermDefinitions( + langId: LangId +): Promise { + if (isCloudflare()) { + const termsJson = await readPublicFile( + `docs/${langId}/termDefinitions.json` + ); + return JSON.parse(termsJson) as TermDefinition[]; + } else { + // これに関してはの表示のたびに毎回全ファイルを読むのは非効率なので、 + // cloudflareでない場合でも事前生成済みファイルがあれば利用 + try { + const termsJson = await readPublicFile( + `docs/${langId}/termDefinitions.json` + ); + return JSON.parse(termsJson) as TermDefinition[]; + } catch (e) { + // not found? + console.warn(`failed to read docs/${langId}/termDefinitions.json:`, e); + } + const terms: TermDefinition[] = []; + const langEntry = await getPagesListForLang(langId); + const headingRegex = /^#+(.*)$/m; + const codeBlockRegex = /^(`{3,})(.*)\n([\s\S]*?)\n^\1/gm; + for (const page of langEntry.pages) { + const sections = await getMarkdownSections(langId, page.slug); + for (const section of sections) { + if (section.term && section.term.length >= 1) { + terms.push({ + alias: section.term, + pageSlug: page.slug, + pageIndex: page.index, + pageName: page.name, + id: section.id, + title: section.title, + rawContentWithoutCode: section.rawContent + .replace(codeBlockRegex, "") + .replace(headingRegex, ""), + }); + } + } + } + return terms; + } +} diff --git a/app/markdown/codeBlock.tsx b/app/markdown/codeBlock.tsx index 9e2164e7..18f96038 100644 --- a/app/markdown/codeBlock.tsx +++ b/app/markdown/codeBlock.tsx @@ -9,18 +9,19 @@ import { ExtraProps } from "react-markdown"; import { StyledSyntaxHighlighter } from "./styledSyntaxHighlighter"; export function AutoCodeBlock({ + interactive, node, className, ref, style, ...props -}: JSX.IntrinsicElements["code"] & ExtraProps) { +}: JSX.IntrinsicElements["code"] & ExtraProps & { interactive: boolean }) { const match = /^language-(\w+)(-repl|-exec|-readonly)?\:?(.+)?$/.exec( className || "" ); if (match) { const language = langConstants(match[1] as MarkdownLang | undefined); - if (match[2] === "-exec" && match[3]) { + if (interactive && match[2] === "-exec" && match[3]) { /* ```python-exec:main.py hello, world! @@ -40,7 +41,7 @@ export function AutoCodeBlock({ /> ); } - } else if (match[2] === "-repl") { + } else if (interactive && match[2] === "-repl") { // repl付きの言語指定 if (!match[3]) { console.error( @@ -56,7 +57,7 @@ export function AutoCodeBlock({ /> ); } - } else if (match[3]) { + } else if (interactive && match[3]) { // ファイル名指定がある場合、ファイルエディター return ( {props.content} @@ -30,7 +31,8 @@ export function StyledMarkdown(props: { } // TailwindCSSがh1などのタグのスタイルを消してしまうので、手動でスタイルを指定する必要がある -const components: Components = { +// チャット回答、term定義内などではコードブロックの操作やtermリンクを無効化したbaseComponentを使用 +const baseComponents: Components = { h1: ({ children }) => {children}, h2: ({ children }) => {children}, h3: ({ children }) => {children}, @@ -55,7 +57,15 @@ const components: Components = {
), hr: () => null, - pre: ({ node, ...props }) => props.children, - code: AutoCodeBlock, + pre: ({ children }) => children, + code: (props) => , + ins: ({ children }) => children, + q: ({ children }) => children, +}; +// ドキュメント本文で使うフルバージョン: +const interactiveComponents: Components = { + ...baseComponents, + code: (props) => , ins: MultiHighlightTag, + q: Term, }; diff --git a/app/markdown/remarkTerm.ts b/app/markdown/remarkTerm.ts new file mode 100644 index 00000000..69da4ac4 --- /dev/null +++ b/app/markdown/remarkTerm.ts @@ -0,0 +1,94 @@ +import type { Plugin } from "unified"; +import type { Nodes, PhrasingContent, Root, RootContent } from "mdast"; +import { phrasing } from "mdast-util-phrasing"; + +/** + * `[[用語]]`を`用語`に変換するプラグイン。 + * + * https://github.com/ut-code/utcode-learn/blob/main/src/remark/remark-term.ts からコピペ + * Copyright (c) 2023 ut.code(); + * + * @example + * // returns "**HTML**CSS、そしてJavaScriptです。" + * String( + * await remark() + * .use(remarkMdx) + * .use(remarkTerm) + * .process("[[**HTML**]]と[[CSS]]、そして[[JavaScript]]です。"), + * ); + */ +const remarkTerm: Plugin<[], Root> = () => (tree) => transform(tree); + +export default remarkTerm; + +function isParent(node: Nodes) { + return "children" in node; +} + +function transform(node: Nodes) { + if (!isParent(node)) return; + + for (const child of node.children) { + transform(child); + } + + node.children = wrapDelimitedPhrasingContentsAsTerm( + node.children.flatMap((child) => isolateTermDelimiters(child)) + ); +} + +function isolateTermDelimiters(node: RootContent): RootContent[] { + if (node.type !== "text") return [node]; + + return node.value + .split(/(\[\[|\]\])/) + .filter((segment) => segment !== "") + .map((segment) => ({ + type: "text", + value: segment, + })); +} + +function wrapDelimitedPhrasingContentsAsTerm( + children: RootContent[] +): RootContent[] { + const result: RootContent[] = []; + const buffer: PhrasingContent[] = []; + + for (const child of children) { + if (buffer.length === 0) { + if (child.type === "text" && child.value === "[[") { + buffer.push(child); + continue; + } + result.push(child); + continue; + } + + if (child.type === "text" && child.value === "]]") { + // 修正ポイント:MDXノードの代わりに、hNameを持った汎用ノードを作成 + result.push({ + // eslint-disable-next-line @typescript-eslint/no-explicit-any + type: "term" as any, + data: { + hName: "q", + }, + children: buffer.slice(1), + }); + buffer.length = 0; + continue; + } + + if (phrasing(child)) { + buffer.push(child); + continue; + } + + result.push(...buffer, child); + buffer.length = 0; + } + + result.push(...buffer); + + return result; +} diff --git a/app/markdown/term.tsx b/app/markdown/term.tsx new file mode 100644 index 00000000..050d6c49 --- /dev/null +++ b/app/markdown/term.tsx @@ -0,0 +1,130 @@ +"use client"; + +import { createContext, JSX, ReactNode, useContext, useState } from "react"; +import { ExtraProps } from "react-markdown"; +import { onlyText } from "react-children-utilities"; +import { LangId, TermDefinition } from "@/lib/docs"; +import Link from "next/link"; +import { StyledMarkdown } from "./markdown"; +import { + useFloating, + autoUpdate, + offset, + flip, + shift, + useHover, + useFocus, + useDismiss, + useRole, + useInteractions, + FloatingPortal, +} from "@floating-ui/react"; +import clsx from "clsx"; + +const TermDefinitionContext = createContext<{ + lang: LangId; + termDefinitions: TermDefinition[]; +} | null>(null); +export function TermDefinitionProvider({ + lang, + termDefinitions, + children, +}: { + lang: LangId; + termDefinitions: TermDefinition[]; + children: ReactNode; +}) { + return ( + + {children} + + ); +} + +/** + * https://github.com/ut-code/utcode-learn/blob/main/src/components/Term/index.tsx をもとに独自実装 + * Copyright (c) 2023 ut.code(); + */ +export default function Term(props: JSX.IntrinsicElements["q"] & ExtraProps) { + // termDefinitionの取得がasync関数であり、clientコンポーネントから直接取得できないので、 + // @docs/lang/pageId/page.tsx で取得したものをcontextに渡してそれを取得する + const { lang, termDefinitions } = useContext(TermDefinitionContext) ?? {}; + + // 1. Manage the tooltip's open state + const [isOpen, setIsOpen] = useState(false); + + // 2. Setup Floating UI + const { refs, floatingStyles, context } = useFloating({ + open: isOpen, + onOpenChange: setIsOpen, + placement: "top", // Preferred placement + // Make sure the tooltip stays anchored to the trigger when scrolling/resizing + whileElementsMounted: autoUpdate, + middleware: [ + offset(2), // Gap between trigger and tooltip + flip(), // Flip to bottom if no space on top + shift(), // Keep tooltip on screen + ], + }); + + // 3. Setup interactions (trigger on hover, focus, and dismiss on click outside/escape) + const hover = useHover(context, { move: false }); + const focus = useFocus(context); + const dismiss = useDismiss(context); + const role = useRole(context, { role: "tooltip" }); + + // Merge the interactions into prop getters + const { getReferenceProps, getFloatingProps } = useInteractions([ + hover, + focus, + dismiss, + role, + ]); + + if (!termDefinitions) { + return props.children; + } + + const termText = onlyText(props.children); + const term = termDefinitions.find((t) => t.alias.includes(termText)); + if (!term) { + console.error(`'${termText}'という用語は定義されていません`); + return props.children; + } + + return ( + <> + + {props.children} + + {isOpen && ( + +
+
+
    +
  • {term.pageIndex}. {term.pageName}
  • +
  • {term.title}
  • +
+
+ +
+
+ )} + + ); +} diff --git a/package-lock.json b/package-lock.json index 2f757556..71977521 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,6 +12,7 @@ ], "dependencies": { "@better-auth/drizzle-adapter": "^1.6.23", + "@floating-ui/react": "^0.27.20", "@fontsource-variable/inconsolata": "^5.2.7", "@fontsource/m-plus-rounded-1c": "^5.2.9", "@google/genai": "^1.21.0", @@ -33,6 +34,7 @@ "prismjs": "^1.30.0", "react": "^19", "react-ace": "^14.0.1", + "react-children-utilities": "^2.10.0", "react-dom": "^19", "react-markdown": "^10.1.0", "react-syntax-highlighter": "^16.1.0", @@ -1380,7 +1382,6 @@ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.0.tgz", "integrity": "sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==", "license": "MIT", - "peer": true, "dependencies": { "@babel/code-frame": "^7.29.0", "@babel/generator": "^7.29.0", @@ -1633,7 +1634,6 @@ "resolved": "https://registry.npmjs.org/@better-auth/core/-/core-1.6.23.tgz", "integrity": "sha512-beEhOs0uVeOxYOZKUfIEBd/nQV2Bd4/6wyLxZ0OFkn6CMTK2Vi+hXuZLnyPBeB6RdHpebEoJWiHqwHxBIxgPDQ==", "license": "MIT", - "peer": true, "dependencies": { "@opentelemetry/semantic-conventions": "^1.39.0", "@standard-schema/spec": "^1.1.0", @@ -1752,7 +1752,6 @@ "resolved": "https://registry.npmjs.org/@better-auth/utils/-/utils-0.4.2.tgz", "integrity": "sha512-AUxrvu+HaaODsUyzDxFgwd/8RZ1yZaYo42LXKSrU2oGgR38pS1ij8nqQKNgtTWoYGpNevNXtCfgTy6loHveW9A==", "license": "MIT", - "peer": true, "dependencies": { "@noble/hashes": "^2.0.1" } @@ -1761,8 +1760,7 @@ "version": "1.3.1", "resolved": "https://registry.npmjs.org/@better-fetch/fetch/-/fetch-1.3.1.tgz", "integrity": "sha512-ABkD1WhyfPZprKRQI3bhATjeiFuNWC9PXhfGWqL+sg/gKrM977oFrYkdb4msM3hgUGonr7KlOsOFT5TU2rht9g==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/@bjorn3/browser_wasi_shim": { "version": "0.3.0", @@ -3070,6 +3068,59 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/@floating-ui/core": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.8.0.tgz", + "integrity": "sha512-0CIZ5itps/8x7BG8dEIhs53BvCUH2PCoogtakwRTut+Arm58sJooJ0AuZhLw2HJYIR5cMLNPBSS728sPho2khQ==", + "license": "MIT", + "dependencies": { + "@floating-ui/utils": "^0.2.12" + } + }, + "node_modules/@floating-ui/dom": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.8.0.tgz", + "integrity": "sha512-yXSrzeHZBTZadLOlfyhCkJHNeLJnHRnRInwdZ40L7ZiaAtrBwoYlsDrX3v5zB1Utk7CLfzcOVnVVWoXEky7Ceg==", + "license": "MIT", + "dependencies": { + "@floating-ui/core": "^1.8.0", + "@floating-ui/utils": "^0.2.12" + } + }, + "node_modules/@floating-ui/react": { + "version": "0.27.20", + "resolved": "https://registry.npmjs.org/@floating-ui/react/-/react-0.27.20.tgz", + "integrity": "sha512-CMqMy7OaXl9W0eq1Uy7L7i2Y/anPvHmFmESd2CEw0t5YvZhcVCeo4MBevAmswRllX7Y2dEidA4ozGPunLSTQpw==", + "license": "MIT", + "dependencies": { + "@floating-ui/react-dom": "^2.1.9", + "@floating-ui/utils": "^0.2.12", + "tabbable": "^6.0.0" + }, + "peerDependencies": { + "react": ">=17.0.0", + "react-dom": ">=17.0.0" + } + }, + "node_modules/@floating-ui/react-dom": { + "version": "2.1.9", + "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.9.tgz", + "integrity": "sha512-JDjEFGCpImxDCA7JJKviA0M9+RtmJdj0m/NVU5IMgBK+AmZouAQQ7/+2GLH0GXXY0YMw9oXPB8hKdbPYg5QLYg==", + "license": "MIT", + "dependencies": { + "@floating-ui/dom": "^1.8.0" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, + "node_modules/@floating-ui/utils": { + "version": "0.2.12", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.12.tgz", + "integrity": "sha512-HpCo8tmWzLVad5s2d19EhAz5zqrrQ6s69qd6moPMQvkOuSwDT1YgRfWSVuc4ennqrgv3OHppiOGMQ7oC13yIww==", + "license": "MIT" + }, "node_modules/@fontsource-variable/inconsolata": { "version": "5.2.8", "resolved": "https://registry.npmjs.org/@fontsource-variable/inconsolata/-/inconsolata-5.2.8.tgz", @@ -4151,7 +4202,6 @@ "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.9.1.tgz", "integrity": "sha512-gLyJlPHPZYdAk1JENA9LeHejZe1Ti77/pTeFm/nMXmQH/HFZlcS/O2XJB+L8fkbrNSqhdtlvjBVjxwUYanNH5Q==", "license": "Apache-2.0", - "peer": true, "engines": { "node": ">=8.0.0" } @@ -4173,7 +4223,6 @@ "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-2.7.1.tgz", "integrity": "sha512-QAqIj32AtK6+pEVNG7EOVxHdE06RP+FM5qpiEJ4RtDcFIqKUZHYhl7/7UY5efhwmwNAg7j8QbJVBLxMerc0+gw==", "license": "Apache-2.0", - "peer": true, "dependencies": { "@opentelemetry/semantic-conventions": "^1.29.0" }, @@ -4536,7 +4585,6 @@ "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-2.7.1.tgz", "integrity": "sha512-NAYIlsF8MPUsKqJMiDQJTMPOmlbawC1Iz/omMLygZ1C9am8fTKYjTaI+OZM+WTY3t3Glo0wnOg/6/pac6RGPPw==", "license": "Apache-2.0", - "peer": true, "dependencies": { "@opentelemetry/core": "2.7.1", "@opentelemetry/resources": "2.7.1", @@ -4554,7 +4602,6 @@ "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.41.1.tgz", "integrity": "sha512-/UhIkaZgPutTFmQ7RnIJGgDXZmtEJ7Dvi86xNTFWcnRxVRNk/aotsqDJYeEvDP+FSMB2SdW+pQzNMcWP0rwuNA==", "license": "Apache-2.0", - "peer": true, "engines": { "node": ">=14" } @@ -4761,6 +4808,7 @@ } ], "license": "CC-BY-4.0", + "peer": true, "dependencies": { "spacetrim": "0.11.59" } @@ -4835,6 +4883,7 @@ "integrity": "sha512-5EUZSUIc37H6aIXyWO0Z4y8NlF8NnjgmqeQgOGiswAU7pY0HOo16ho4+alIWmSfdZnjqBRawMsP3I5YqLSn6kw==", "devOptional": true, "license": "Apache-2.0", + "peer": true, "dependencies": { "debug": "^4.4.3", "extract-zip": "^2.0.1", @@ -4857,6 +4906,7 @@ "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "devOptional": true, "license": "ISC", + "peer": true, "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.1", @@ -4871,7 +4921,8 @@ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "devOptional": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/@puppeteer/browsers/node_modules/semver": { "version": "7.8.5", @@ -4879,6 +4930,7 @@ "integrity": "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==", "devOptional": true, "license": "ISC", + "peer": true, "bin": { "semver": "bin/semver.js" }, @@ -4892,6 +4944,7 @@ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "devOptional": true, "license": "MIT", + "peer": true, "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -4907,6 +4960,7 @@ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "devOptional": true, "license": "MIT", + "peer": true, "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -4925,6 +4979,7 @@ "integrity": "sha512-GZtjxm/J/4TSxuL3FNYjCmLktBTnIw/rVmKSIyKeYAZpmJB2ig9VauCC5xsa82GNKVKDAqpOn3KVzNt0zmrU0g==", "devOptional": true, "license": "MIT", + "peer": true, "dependencies": { "cliui": "^8.0.1", "escalade": "^3.1.1", @@ -7349,7 +7404,8 @@ "resolved": "https://registry.npmjs.org/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz", "integrity": "sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==", "devOptional": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/@tsconfig/node18": { "version": "1.0.3", @@ -7594,7 +7650,6 @@ "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.14.tgz", "integrity": "sha512-ilcTH/UniCkMdtexkoCN0bI7pMcJDvmQFPvuPvmEaYA/NSfFTAgdUSLAoVjaRJm7+6PvcM+q1zYOwS4wTYMF9w==", "license": "MIT", - "peer": true, "dependencies": { "csstype": "^3.2.2" } @@ -7605,7 +7660,6 @@ "integrity": "sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==", "dev": true, "license": "MIT", - "peer": true, "peerDependencies": { "@types/react": "^19.2.0" } @@ -7631,7 +7685,8 @@ "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.5.tgz", "integrity": "sha512-mQkU2jY8jJEF7YHjHvsQO8+3ughTL1mcnn96igfhONmR+fUPSKIkefQYpSe8bsly2Ep7oQbn/6VG5/9/0qcArQ==", "devOptional": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/@types/tedious": { "version": "4.0.14", @@ -7653,7 +7708,8 @@ "resolved": "https://registry.npmjs.org/@types/which/-/which-2.0.2.tgz", "integrity": "sha512-113D3mDkZDjo+EeUEHCFy0qniNc1ZpecGiAU7WSo7YDoSzolZIQKpYFHrPpjkB2nuyahcKfrmLXeQlh7gqJYdw==", "devOptional": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/@types/ws": { "version": "8.18.1", @@ -7661,6 +7717,7 @@ "integrity": "sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==", "devOptional": true, "license": "MIT", + "peer": true, "dependencies": { "@types/node": "*" } @@ -7671,6 +7728,7 @@ "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", "license": "MIT", "optional": true, + "peer": true, "dependencies": { "@types/node": "*" } @@ -7720,7 +7778,6 @@ "integrity": "sha512-30ScMRHIAD33JJQkgfGW1t8CURZtjc2JpTrq5n2HFhOefbAhb7ucc7xJwdWcrEtqUIYJ73Nybpsggii6GtAHjA==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@typescript-eslint/scope-manager": "8.57.2", "@typescript-eslint/types": "8.57.2", @@ -8441,6 +8498,7 @@ "integrity": "sha512-8IXDiRG9wUUnpU6M/uzsVqIHJD/7o4y9RaOU2Jh/OdRJP/7rxwfGsa24Bv486rnMGdghztkwLCBJWG0jbeEtfw==", "devOptional": true, "license": "MIT", + "peer": true, "dependencies": { "@wdio/logger": "9.29.1", "@wdio/types": "9.29.1", @@ -8460,6 +8518,7 @@ "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", "devOptional": true, "license": "ISC", + "peer": true, "dependencies": { "string-width": "^5.1.2", "string-width-cjs": "npm:string-width@^4.2.0", @@ -8478,6 +8537,7 @@ "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", "devOptional": true, "license": "MIT", + "peer": true, "engines": { "node": ">=12" }, @@ -8491,6 +8551,7 @@ "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", "devOptional": true, "license": "MIT", + "peer": true, "engines": { "node": ">=12" }, @@ -8504,6 +8565,7 @@ "integrity": "sha512-w5JZcKgdhDOgOwm8H+KgbosopHMuGcl6qbulwjtz3SM7I7P3yW1eAjzMPLrIE+NQ9vjgANKHWeMHnrT0OXW1oA==", "devOptional": true, "license": "MIT", + "peer": true, "dependencies": { "balanced-match": "^1.0.0" } @@ -8515,6 +8577,7 @@ "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", "devOptional": true, "license": "ISC", + "peer": true, "dependencies": { "foreground-child": "^3.1.0", "jackspeak": "^3.1.2", @@ -8536,6 +8599,7 @@ "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", "devOptional": true, "license": "BlueOak-1.0.0", + "peer": true, "dependencies": { "@isaacs/cliui": "^8.0.2" }, @@ -8551,7 +8615,8 @@ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", "devOptional": true, - "license": "ISC" + "license": "ISC", + "peer": true }, "node_modules/@wdio/config/node_modules/minimatch": { "version": "9.0.9", @@ -8559,6 +8624,7 @@ "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==", "devOptional": true, "license": "ISC", + "peer": true, "dependencies": { "brace-expansion": "^2.0.2" }, @@ -8575,6 +8641,7 @@ "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", "devOptional": true, "license": "BlueOak-1.0.0", + "peer": true, "dependencies": { "lru-cache": "^10.2.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" @@ -8592,6 +8659,7 @@ "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", "devOptional": true, "license": "MIT", + "peer": true, "dependencies": { "eastasianwidth": "^0.2.0", "emoji-regex": "^9.2.2", @@ -8610,6 +8678,7 @@ "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", "devOptional": true, "license": "MIT", + "peer": true, "dependencies": { "ansi-regex": "^6.2.2" }, @@ -8626,6 +8695,7 @@ "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", "devOptional": true, "license": "MIT", + "peer": true, "dependencies": { "ansi-styles": "^6.1.0", "string-width": "^5.0.1", @@ -8644,6 +8714,7 @@ "integrity": "sha512-0ZAEIo6PNyMIJPlOGkIgyOJUjcd0pC8/QHlVAAe1c91/IcjZ1X+k0yidXHaboJdN7dq1XPUacmhRdtua0U5EZg==", "devOptional": true, "license": "MIT", + "peer": true, "dependencies": { "chalk": "^5.1.2", "loglevel": "^1.6.0", @@ -8661,6 +8732,7 @@ "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", "devOptional": true, "license": "MIT", + "peer": true, "engines": { "node": ">=12" }, @@ -8674,6 +8746,7 @@ "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", "devOptional": true, "license": "MIT", + "peer": true, "dependencies": { "ansi-regex": "^6.2.2" }, @@ -8689,7 +8762,8 @@ "resolved": "https://registry.npmjs.org/@wdio/protocols/-/protocols-9.29.1.tgz", "integrity": "sha512-NFlBQOA4zDb4D/ETpVMqDgbJyEqdhGRsJWybLOXG7PGlPwfcrfmTMHC1+Boq4KODgpwbhCmI9zIk2JQmGYIttQ==", "devOptional": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/@wdio/repl": { "version": "9.16.2", @@ -8697,6 +8771,7 @@ "integrity": "sha512-FLTF0VL6+o5BSTCO7yLSXocm3kUnu31zYwzdsz4n9s5YWt83sCtzGZlZpt7TaTzb3jVUfxuHNQDTb8UMkCu0lQ==", "devOptional": true, "license": "MIT", + "peer": true, "dependencies": { "@types/node": "^20.1.0" }, @@ -8710,6 +8785,7 @@ "integrity": "sha512-jp8jgMv6TS35G96YzHZxw3PVN0Dz6xQ6tnMAicndAJ8Jt9AIXb0ywIse4TjaFywakO3dLoEhlyA3ZtR26vmt+w==", "devOptional": true, "license": "MIT", + "peer": true, "dependencies": { "@types/node": "^20.1.0" }, @@ -8723,6 +8799,7 @@ "integrity": "sha512-jyt6b6FfdYwVbMISVhuyGC1xQGZj6xM03KhTHozH7a9/zu9b++94KRdT9HRbwX8zefjW0YeIC5+qWSIf7WWHZg==", "devOptional": true, "license": "MIT", + "peer": true, "dependencies": { "@puppeteer/browsers": "^2.2.0", "@wdio/logger": "9.29.1", @@ -8748,6 +8825,7 @@ "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz", "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==", "license": "MIT", + "peer": true, "dependencies": { "@webassemblyjs/helper-numbers": "1.13.2", "@webassemblyjs/helper-wasm-bytecode": "1.13.2" @@ -8757,25 +8835,29 @@ "version": "1.13.2", "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz", "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/@webassemblyjs/helper-api-error": { "version": "1.13.2", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz", "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/@webassemblyjs/helper-buffer": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz", "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/@webassemblyjs/helper-numbers": { "version": "1.13.2", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz", "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==", "license": "MIT", + "peer": true, "dependencies": { "@webassemblyjs/floating-point-hex-parser": "1.13.2", "@webassemblyjs/helper-api-error": "1.13.2", @@ -8786,13 +8868,15 @@ "version": "1.13.2", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz", "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/@webassemblyjs/helper-wasm-section": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz", "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==", "license": "MIT", + "peer": true, "dependencies": { "@webassemblyjs/ast": "1.14.1", "@webassemblyjs/helper-buffer": "1.14.1", @@ -8805,6 +8889,7 @@ "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz", "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==", "license": "MIT", + "peer": true, "dependencies": { "@xtuc/ieee754": "^1.2.0" } @@ -8814,6 +8899,7 @@ "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz", "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==", "license": "Apache-2.0", + "peer": true, "dependencies": { "@xtuc/long": "4.2.2" } @@ -8822,13 +8908,15 @@ "version": "1.13.2", "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz", "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/@webassemblyjs/wasm-edit": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz", "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==", "license": "MIT", + "peer": true, "dependencies": { "@webassemblyjs/ast": "1.14.1", "@webassemblyjs/helper-buffer": "1.14.1", @@ -8845,6 +8933,7 @@ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz", "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==", "license": "MIT", + "peer": true, "dependencies": { "@webassemblyjs/ast": "1.14.1", "@webassemblyjs/helper-wasm-bytecode": "1.13.2", @@ -8858,6 +8947,7 @@ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz", "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==", "license": "MIT", + "peer": true, "dependencies": { "@webassemblyjs/ast": "1.14.1", "@webassemblyjs/helper-buffer": "1.14.1", @@ -8870,6 +8960,7 @@ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz", "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==", "license": "MIT", + "peer": true, "dependencies": { "@webassemblyjs/ast": "1.14.1", "@webassemblyjs/helper-api-error": "1.13.2", @@ -8884,6 +8975,7 @@ "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz", "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==", "license": "MIT", + "peer": true, "dependencies": { "@webassemblyjs/ast": "1.14.1", "@xtuc/long": "4.2.2" @@ -8918,13 +9010,15 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "license": "BSD-3-Clause" + "license": "BSD-3-Clause", + "peer": true }, "node_modules/@xtuc/long": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", - "license": "Apache-2.0" + "license": "Apache-2.0", + "peer": true }, "node_modules/@zip.js/zip.js": { "version": "2.8.33", @@ -8932,6 +9026,7 @@ "integrity": "sha512-Mc+s4DdDl9lmhFmkOmNDryC/b4rZm7y2/qBUQTCwPYGkQ8dkCeykILqEYBd+14ATuj93XWZJBrPe2x+cF9LcGA==", "devOptional": true, "license": "BSD-3-Clause", + "peer": true, "engines": { "bun": ">=0.7.0", "deno": ">=1.0.0", @@ -8974,7 +9069,6 @@ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz", "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==", "license": "MIT", - "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -9007,6 +9101,7 @@ "resolved": "https://registry.npmjs.org/acorn-import-phases/-/acorn-import-phases-1.0.4.tgz", "integrity": "sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ==", "license": "MIT", + "peer": true, "engines": { "node": ">=10.13.0" }, @@ -9153,6 +9248,7 @@ "integrity": "sha512-ZcbTaIqJOfCc03QwD468Unz/5Ir8ATtvAHsK+FdXbDIbGfihqh9mrvdcYunQzqn4HrvWWaFyaxJhGZagaJJpPQ==", "devOptional": true, "license": "MIT", + "peer": true, "dependencies": { "archiver-utils": "^5.0.2", "async": "^3.2.4", @@ -9172,6 +9268,7 @@ "integrity": "sha512-wuLJMmIBQYCsGZgYLTy5FIB2pF6Lfb6cXMSF8Qywwk3t20zWnAi7zLcQFdKQmIB8wyZpY5ER38x08GbwtR2cLA==", "devOptional": true, "license": "MIT", + "peer": true, "dependencies": { "glob": "^10.0.0", "graceful-fs": "^4.2.0", @@ -9191,6 +9288,7 @@ "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", "devOptional": true, "license": "ISC", + "peer": true, "dependencies": { "string-width": "^5.1.2", "string-width-cjs": "npm:string-width@^4.2.0", @@ -9209,6 +9307,7 @@ "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", "devOptional": true, "license": "MIT", + "peer": true, "engines": { "node": ">=12" }, @@ -9222,6 +9321,7 @@ "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", "devOptional": true, "license": "MIT", + "peer": true, "engines": { "node": ">=12" }, @@ -9235,6 +9335,7 @@ "integrity": "sha512-w5JZcKgdhDOgOwm8H+KgbosopHMuGcl6qbulwjtz3SM7I7P3yW1eAjzMPLrIE+NQ9vjgANKHWeMHnrT0OXW1oA==", "devOptional": true, "license": "MIT", + "peer": true, "dependencies": { "balanced-match": "^1.0.0" } @@ -9246,6 +9347,7 @@ "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", "devOptional": true, "license": "ISC", + "peer": true, "dependencies": { "foreground-child": "^3.1.0", "jackspeak": "^3.1.2", @@ -9267,6 +9369,7 @@ "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", "devOptional": true, "license": "BlueOak-1.0.0", + "peer": true, "dependencies": { "@isaacs/cliui": "^8.0.2" }, @@ -9282,7 +9385,8 @@ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", "devOptional": true, - "license": "ISC" + "license": "ISC", + "peer": true }, "node_modules/archiver-utils/node_modules/minimatch": { "version": "9.0.9", @@ -9290,6 +9394,7 @@ "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==", "devOptional": true, "license": "ISC", + "peer": true, "dependencies": { "brace-expansion": "^2.0.2" }, @@ -9306,6 +9411,7 @@ "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", "devOptional": true, "license": "BlueOak-1.0.0", + "peer": true, "dependencies": { "lru-cache": "^10.2.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" @@ -9323,6 +9429,7 @@ "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", "devOptional": true, "license": "MIT", + "peer": true, "dependencies": { "eastasianwidth": "^0.2.0", "emoji-regex": "^9.2.2", @@ -9341,6 +9448,7 @@ "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", "devOptional": true, "license": "MIT", + "peer": true, "dependencies": { "ansi-regex": "^6.2.2" }, @@ -9357,6 +9465,7 @@ "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", "devOptional": true, "license": "MIT", + "peer": true, "dependencies": { "ansi-styles": "^6.1.0", "string-width": "^5.0.1", @@ -9567,6 +9676,7 @@ "integrity": "sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==", "devOptional": true, "license": "MIT", + "peer": true, "dependencies": { "tslib": "^2.0.1" }, @@ -9586,7 +9696,8 @@ "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", "devOptional": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/async-function": { "version": "1.0.0", @@ -9661,6 +9772,7 @@ "integrity": "sha512-aiqre1Nr0B/6DgE2N5vwTc+2/oQZ4Wh1t4NznYY4E00y8LCt6NqdRv81so00oo27D8MVKTpUa/MwUUtBLXCoDw==", "devOptional": true, "license": "Apache-2.0", + "peer": true, "peerDependencies": { "react-native-b4a": "*" }, @@ -9692,6 +9804,7 @@ "integrity": "sha512-Z0oHEHAFDZkffN8Qc39zNZjQlMDkPJRyyyZieU1VH7u8c5S+qHZ2S8ixdKIAxEjfHO7FJxXmJWgteOghVanIsg==", "devOptional": true, "license": "Apache-2.0", + "peer": true, "peerDependencies": { "bare-abort-controller": "*" }, @@ -9707,6 +9820,7 @@ "integrity": "sha512-y1kC+ffIx/tPLdTE693uNjHfzTfr+ravR5tvWlMXe25nELbkqV400S71qHDwbkAQ1FVEZobB1NFRzFbCCcyBCQ==", "devOptional": true, "license": "Apache-2.0", + "peer": true, "dependencies": { "bare-events": "^2.5.4", "bare-path": "^3.0.0", @@ -9731,7 +9845,8 @@ "resolved": "https://registry.npmjs.org/bare-path/-/bare-path-3.1.1.tgz", "integrity": "sha512-JprUlveX3QjApC1cTpsUOiscADftCGVWkzitbHsRqv84hzYwYHw2mbluddsq5TvI8mH/8Ov1f4BiMAdcB0oYnQ==", "devOptional": true, - "license": "Apache-2.0" + "license": "Apache-2.0", + "peer": true }, "node_modules/bare-stream": { "version": "2.13.3", @@ -9739,6 +9854,7 @@ "integrity": "sha512-Kc+brLqvEqGkjyfiwJmImAOqLZL7OsoLKuavx+hJjgVV3nLTOjloJyPMFxjUPerGGHrNH0fLU06jjykMLWrERQ==", "devOptional": true, "license": "Apache-2.0", + "peer": true, "dependencies": { "b4a": "^1.8.1", "streamx": "^2.25.0", @@ -9767,6 +9883,7 @@ "integrity": "sha512-K+y9xF1tN+CdPu4qWwr0QiK1Al07eFPGYK5M2pDXcmHdMdgC/tT/bpmMe1hrmRHaidKLkXrC+cRNYf3XVDUhSQ==", "devOptional": true, "license": "Apache-2.0", + "peer": true, "dependencies": { "bare-path": "^3.0.0" } @@ -9809,6 +9926,7 @@ "integrity": "sha512-bopVNp6ugyA150DDuZfPFdt1KZ5a94ZDiwX4hMgZDzF+GttD80lEy8kj98kbyhLXnPvhtIo93mdnLIjpCAeeOw==", "devOptional": true, "license": "MIT", + "peer": true, "engines": { "node": ">=10.0.0" } @@ -9982,7 +10100,8 @@ "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", "devOptional": true, - "license": "ISC" + "license": "ISC", + "peer": true }, "node_modules/bowser": { "version": "2.14.1", @@ -10039,7 +10158,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "baseline-browser-mapping": "^2.9.0", "caniuse-lite": "^1.0.30001759", @@ -10074,6 +10192,7 @@ } ], "license": "MIT", + "peer": true, "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.2.1" @@ -10085,6 +10204,7 @@ "integrity": "sha512-Db1SbgBS/fg/392AblrMJk97KggmvYhr4pB5ZIMTWtaivCPMWLkmb7m21cJvpvgK+J3nsU2CmmixNBZx4vFj/w==", "devOptional": true, "license": "MIT", + "peer": true, "engines": { "node": ">=8.0.0" } @@ -10319,6 +10439,7 @@ "integrity": "sha512-WDrybc/gKFpTYQutKIK6UvfcuxijIZfMfXaYm8NMsPQxSYvf+13fXUJ4rztGGbJcBQ/GF55gvrZ0Bc0bj/mqvg==", "devOptional": true, "license": "MIT", + "peer": true, "dependencies": { "cheerio-select": "^2.1.0", "dom-serializer": "^2.0.0", @@ -10345,6 +10466,7 @@ "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==", "devOptional": true, "license": "BSD-2-Clause", + "peer": true, "dependencies": { "boolbase": "^1.0.0", "css-select": "^5.1.0", @@ -10377,6 +10499,7 @@ "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", "license": "MIT", + "peer": true, "engines": { "node": ">=6.0" } @@ -10579,6 +10702,7 @@ "integrity": "sha512-6FqVXeETqWPoGcfzrXb37E50NP0LXT8kAMu5ooZayhWWdgEY4lBEEcbQNXtkuKQsGduxiIcI4gOTsxTmuq/bSg==", "devOptional": true, "license": "MIT", + "peer": true, "dependencies": { "crc-32": "^1.2.0", "crc32-stream": "^6.0.0", @@ -10700,6 +10824,7 @@ "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", "devOptional": true, "license": "Apache-2.0", + "peer": true, "bin": { "crc32": "bin/crc32.njs" }, @@ -10713,6 +10838,7 @@ "integrity": "sha512-piICUB6ei4IlTv1+653yq5+KoqfBYmj9bw6LqXoOneTMDXk5nM1qt12mFW1caG3LlJXEKW1Bp0WggEmIfQB34g==", "devOptional": true, "license": "MIT", + "peer": true, "dependencies": { "crc-32": "^1.2.0", "readable-stream": "^4.0.0" @@ -10762,6 +10888,7 @@ "integrity": "sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==", "devOptional": true, "license": "BSD-2-Clause", + "peer": true, "dependencies": { "boolbase": "^1.0.0", "css-what": "^6.1.0", @@ -10778,13 +10905,15 @@ "resolved": "https://registry.npmjs.org/css-shorthand-properties/-/css-shorthand-properties-1.1.2.tgz", "integrity": "sha512-C2AugXIpRGQTxaCW0N7n5jD/p5irUmCrwl03TrnMFBHDbdq44CFWR2zO7rK9xPN4Eo3pUxC4vQzQgbIpzrD1PQ==", "devOptional": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/css-value": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/css-value/-/css-value-0.0.1.tgz", "integrity": "sha512-FUV3xaJ63buRLgHrLQVlVgQnQdR4yqdLGaDu7g8CQcWjInDfM9plBTPI9FRfpahju1UBSaMckeb2/46ApS/V1Q==", - "devOptional": true + "devOptional": true, + "peer": true }, "node_modules/css-what": { "version": "6.2.2", @@ -10792,6 +10921,7 @@ "integrity": "sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==", "devOptional": true, "license": "BSD-2-Clause", + "peer": true, "engines": { "node": ">= 6" }, @@ -10828,6 +10958,7 @@ "integrity": "sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==", "devOptional": true, "license": "MIT", + "peer": true, "engines": { "node": ">= 14" } @@ -10909,6 +11040,7 @@ "integrity": "sha512-G7Cqgaelq68XHJNGlZ7lrNQyhZGsFqpwtGFexqUv4IQdjKoSYF7ipZ9UuTJZUSQXFj/XaoBLuEVIVqr8EJngEQ==", "devOptional": true, "license": "MIT", + "peer": true, "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, @@ -10994,6 +11126,7 @@ "integrity": "sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==", "devOptional": true, "license": "MIT", + "peer": true, "dependencies": { "ast-types": "^0.13.4", "escodegen": "^2.1.0", @@ -11093,6 +11226,7 @@ "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", "devOptional": true, "license": "MIT", + "peer": true, "dependencies": { "domelementtype": "^2.3.0", "domhandler": "^5.0.2", @@ -11113,7 +11247,8 @@ "url": "https://github.com/sponsors/fb55" } ], - "license": "BSD-2-Clause" + "license": "BSD-2-Clause", + "peer": true }, "node_modules/domhandler": { "version": "5.0.3", @@ -11121,6 +11256,7 @@ "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", "devOptional": true, "license": "BSD-2-Clause", + "peer": true, "dependencies": { "domelementtype": "^2.3.0" }, @@ -11137,6 +11273,7 @@ "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==", "devOptional": true, "license": "BSD-2-Clause", + "peer": true, "dependencies": { "dom-serializer": "^2.0.0", "domelementtype": "^2.3.0", @@ -11164,7 +11301,6 @@ "integrity": "sha512-7OZcmQUrdGI+DUNNsKBn1aW8qSoKuTH7d0mYgSP8bAzdFzKoovxEFnoGQp2dVs82EOJeYycqRtciopszwUf8bw==", "devOptional": true, "license": "MIT", - "peer": true, "dependencies": { "@drizzle-team/brocli": "^0.10.2", "@esbuild-kit/esm-loader": "^2.5.5", @@ -11180,7 +11316,6 @@ "resolved": "https://registry.npmjs.org/drizzle-orm/-/drizzle-orm-0.45.2.tgz", "integrity": "sha512-kY0BSaTNYWnoDMVoyY8uxmyHjpJW1geOmBMdSSicKo9CIIWkSxMIj2rkeSR51b8KAPB7m+qysjuHme5nKP+E5Q==", "license": "Apache-2.0", - "peer": true, "peerDependencies": { "@aws-sdk/client-rds-data": ">=3", "@cloudflare/workers-types": ">=4", @@ -11372,7 +11507,6 @@ "resolved": "https://registry.npmjs.org/@noble/ciphers/-/ciphers-1.3.0.tgz", "integrity": "sha512-2I0gnIVPtfnMw9ee9h1dJG7tp81+8Ob3OJb3Mv37rx5L40/b0i7djjCVvGOVqc9AEIQyvyu1i6ypKdFw8R8gQw==", "license": "MIT", - "peer": true, "engines": { "node": "^14.21.3 || >=16" }, @@ -11398,6 +11532,7 @@ "integrity": "sha512-sB7vSrDnFa4ezWQk9nZ/n0FdpdUuC6R1EOrlU3DL+bovcNFK28rqu2emmAUjujYEJTWIgQGqgVVWUZXMnc8iWg==", "devOptional": true, "license": "MIT", + "peer": true, "dependencies": { "@types/which": "^2.0.1", "which": "^2.0.2" @@ -11414,7 +11549,8 @@ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", "devOptional": true, - "license": "ISC" + "license": "ISC", + "peer": true }, "node_modules/edge-paths/node_modules/which": { "version": "2.0.2", @@ -11422,6 +11558,7 @@ "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "devOptional": true, "license": "ISC", + "peer": true, "dependencies": { "isexe": "^2.0.0" }, @@ -11439,6 +11576,7 @@ "devOptional": true, "hasInstallScript": true, "license": "MIT", + "peer": true, "dependencies": { "@wdio/logger": "^9.18.0", "@zip.js/zip.js": "^2.8.11", @@ -11462,6 +11600,7 @@ "integrity": "sha512-FFUtZMpoZ8RqHS3XeXEmHWLA4thH+ZxCv2lOiPIn1Xc7CxrqhWzNSDzD+/chS/zbYezmiwWLdQC09JdQKmthOw==", "devOptional": true, "license": "BlueOak-1.0.0", + "peer": true, "engines": { "node": ">=20" } @@ -11472,6 +11611,7 @@ "integrity": "sha512-oGLe46MIrCRqX7ytPUf66EAYvdeMIZYn3WaocqqKZAxrBpkqHfL/qvTyJ/bTk5+AqHCjXmrv3CEWgy368zhRUg==", "devOptional": true, "license": "ISC", + "peer": true, "dependencies": { "isexe": "^4.0.0" }, @@ -11536,6 +11676,7 @@ "integrity": "sha512-5gvq20T6vfpekVtqrYQsSCFZ1wEg5+wW0/QaZMWkFr6BqD3NfKs0rLCx4rrVlSWJeZb5NBJgVLswK/w2MWU+Gw==", "devOptional": true, "license": "MIT", + "peer": true, "dependencies": { "iconv-lite": "^0.6.3", "whatwg-encoding": "^3.1.1" @@ -11550,6 +11691,7 @@ "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "devOptional": true, "license": "MIT", + "peer": true, "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" }, @@ -11563,6 +11705,7 @@ "integrity": "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==", "devOptional": true, "license": "MIT", + "peer": true, "dependencies": { "once": "^1.4.0" } @@ -11599,6 +11742,7 @@ "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", "devOptional": true, "license": "BSD-2-Clause", + "peer": true, "engines": { "node": ">=0.12" }, @@ -11868,6 +12012,7 @@ "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", "devOptional": true, "license": "BSD-2-Clause", + "peer": true, "dependencies": { "esprima": "^4.0.1", "estraverse": "^5.2.0", @@ -11890,7 +12035,6 @@ "integrity": "sha512-VmQ+sifHUbI/IcSopBCF/HO3YiHQx/AVd3UVyYL6weuwW+HvON9VYn5l6Zl1WZzPWXPNZrSQpxwkkZ/VuvJZzg==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/regexpp": "^4.12.1", @@ -12076,7 +12220,6 @@ "integrity": "sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@rtsao/scc": "^1.1.0", "array-includes": "^3.1.9", @@ -12400,6 +12543,7 @@ "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", "license": "MIT", + "peer": true, "engines": { "node": ">=0.8.x" } @@ -12410,6 +12554,7 @@ "integrity": "sha512-LUd5euvbMLpwOF8m6ivPCbhQeSiYVNb8Vs0fQ8QjXo0JTkEHpz8pxdQf0gStltaPpw0Cca8b39KxvK9cfKRiAw==", "devOptional": true, "license": "Apache-2.0", + "peer": true, "dependencies": { "bare-events": "^2.7.0" } @@ -12518,6 +12663,7 @@ "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", "devOptional": true, "license": "BSD-2-Clause", + "peer": true, "dependencies": { "debug": "^4.1.1", "get-stream": "^5.1.0", @@ -12539,6 +12685,7 @@ "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", "devOptional": true, "license": "MIT", + "peer": true, "dependencies": { "pump": "^3.0.0" }, @@ -12583,7 +12730,8 @@ "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==", "devOptional": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/fast-glob": { "version": "3.3.1", @@ -12711,6 +12859,7 @@ "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", "devOptional": true, "license": "MIT", + "peer": true, "dependencies": { "pend": "~1.2.0" } @@ -13133,6 +13282,7 @@ "devOptional": true, "hasInstallScript": true, "license": "MIT", + "peer": true, "dependencies": { "@wdio/logger": "^9.18.0", "@zip.js/zip.js": "^2.8.11", @@ -13218,6 +13368,7 @@ "integrity": "sha512-afP4W205ONCuMoPBqcR6PSXnzX35KTcJygfJfcp+QY+uwm3p20p1YczWXhlICIzGMCxYBQcySEcOgsJcrkyobg==", "devOptional": true, "license": "MIT", + "peer": true, "engines": { "node": ">=16" }, @@ -13287,6 +13438,7 @@ "integrity": "sha512-b1O07XYq8eRuVzBNgJLstU6FYc1tS6wnMtF1I1D9lE8LxZSOGZ7LhxN54yPP6mGw5f2CkXY2BQUL9Fx41qvcIg==", "devOptional": true, "license": "MIT", + "peer": true, "dependencies": { "basic-ftp": "^5.0.2", "data-uri-to-buffer": "^6.0.2", @@ -13465,7 +13617,8 @@ "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", "devOptional": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/gzip-size": { "version": "6.0.0", @@ -13704,7 +13857,8 @@ "resolved": "https://registry.npmjs.org/htmlfy/-/htmlfy-0.8.1.tgz", "integrity": "sha512-xWROBw9+MEGwxpotll0h672KCaLrKKiCYzsyN8ZgL9cQbVumFnyvsk2JqiB9ELAV1GLj1GG/jxZUjV9OZZi/yQ==", "devOptional": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/htmlparser2": { "version": "10.1.0", @@ -13719,6 +13873,7 @@ } ], "license": "MIT", + "peer": true, "dependencies": { "domelementtype": "^2.3.0", "domhandler": "^5.0.3", @@ -13732,6 +13887,7 @@ "integrity": "sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==", "devOptional": true, "license": "BSD-2-Clause", + "peer": true, "engines": { "node": ">=0.12" }, @@ -13765,6 +13921,7 @@ "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", "devOptional": true, "license": "MIT", + "peer": true, "dependencies": { "agent-base": "^7.1.0", "debug": "^4.3.4" @@ -13839,7 +13996,8 @@ "url": "https://feross.org/support" } ], - "license": "BSD-3-Clause" + "license": "BSD-3-Clause", + "peer": true }, "node_modules/ignore": { "version": "5.3.2", @@ -13855,7 +14013,8 @@ "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==", "devOptional": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/import-fresh": { "version": "3.3.1", @@ -13895,6 +14054,7 @@ "integrity": "sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg==", "devOptional": true, "license": "MIT", + "peer": true, "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -13943,6 +14103,7 @@ "integrity": "sha512-/+S6j4E9AHvW9SWMSEY9Xfy66O5PWvVEJ08O0y5JGyEKQpojb0K0GKpz/v5HJ/G0vi3D2sjGK78119oXZeE0qA==", "devOptional": true, "license": "MIT", + "peer": true, "engines": { "node": ">= 12" } @@ -14538,6 +14699,7 @@ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", "license": "MIT", + "peer": true, "dependencies": { "@types/node": "*", "merge-stream": "^2.0.0", @@ -14660,6 +14822,7 @@ "integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==", "devOptional": true, "license": "(MIT OR GPL-3.0-or-later)", + "peer": true, "dependencies": { "lie": "~3.3.0", "pako": "~1.0.2", @@ -14672,14 +14835,16 @@ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", "devOptional": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/jszip/node_modules/pako": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", "devOptional": true, - "license": "(MIT AND Zlib)" + "license": "(MIT AND Zlib)", + "peer": true }, "node_modules/jszip/node_modules/readable-stream": { "version": "2.3.8", @@ -14687,6 +14852,7 @@ "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "devOptional": true, "license": "MIT", + "peer": true, "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -14702,7 +14868,8 @@ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "devOptional": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/jszip/node_modules/string_decoder": { "version": "1.1.1", @@ -14710,6 +14877,7 @@ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "devOptional": true, "license": "MIT", + "peer": true, "dependencies": { "safe-buffer": "~5.1.0" } @@ -14759,7 +14927,6 @@ "resolved": "https://registry.npmjs.org/kysely/-/kysely-0.28.17.tgz", "integrity": "sha512-nbD8lB9EB3wNdMhOCdx5Li8DxnLbvKByylRLcJ1h+4SkrowVeECAyZlyiKMThF7xFdRz0jSQ2MoJr+wXux2y0Q==", "license": "MIT", - "peer": true, "engines": { "node": ">=20.0.0" } @@ -14790,6 +14957,7 @@ "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==", "devOptional": true, "license": "MIT", + "peer": true, "dependencies": { "readable-stream": "^2.0.5" }, @@ -14802,7 +14970,8 @@ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", "devOptional": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/lazystream/node_modules/readable-stream": { "version": "2.3.8", @@ -14810,6 +14979,7 @@ "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "devOptional": true, "license": "MIT", + "peer": true, "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -14825,7 +14995,8 @@ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "devOptional": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/lazystream/node_modules/string_decoder": { "version": "1.1.1", @@ -14833,6 +15004,7 @@ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "devOptional": true, "license": "MIT", + "peer": true, "dependencies": { "safe-buffer": "~5.1.0" } @@ -14857,6 +15029,7 @@ "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", "devOptional": true, "license": "MIT", + "peer": true, "dependencies": { "immediate": "~3.0.5" } @@ -14867,7 +15040,6 @@ "integrity": "sha512-l51N2r93WmGUye3WuFoN5k10zyvrVs0qfKBhyC5ogUQ6Ew6JUSswh78mbSO+IU3nTWsyOArqPCcShdQSadghBQ==", "devOptional": true, "license": "MPL-2.0", - "peer": true, "dependencies": { "detect-libc": "^2.0.3" }, @@ -15128,6 +15300,7 @@ "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.2.tgz", "integrity": "sha512-DFEqQ3ihfS9blba08cLfYf1NRAIEm+dDjic073DRDc3/JspI/8wYmtDsHwd3+4hwvdxSK7PGaElfTmm0awWJ4w==", "license": "MIT", + "peer": true, "engines": { "node": ">=6.11.5" }, @@ -15152,6 +15325,7 @@ } ], "license": "Apache-2.0", + "peer": true, "dependencies": { "@promptbook/utils": "0.69.5", "type-fest": "4.26.0", @@ -15184,7 +15358,8 @@ "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==", "devOptional": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/lodash.get": { "version": "4.4.2", @@ -15212,7 +15387,8 @@ "resolved": "https://registry.npmjs.org/lodash.zip/-/lodash.zip-4.2.0.tgz", "integrity": "sha512-C7IOaBBK/0gMORRBd8OETNx3kmOkgIWIPvyDpZSCTwUrpYmgZwJkjZeOD8ww4xbOUOs4/attY+pciKvadNfFbg==", "devOptional": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/log-symbols": { "version": "4.1.0", @@ -15264,6 +15440,7 @@ "integrity": "sha512-HgMmCqIJSAKqo68l0rS2AanEWfkxaZ5wNiEFb5ggm08lDs9Xl2KxBlX3PTcaD2chBM1gXAYf491/M2Rv8Jwayg==", "devOptional": true, "license": "MIT", + "peer": true, "engines": { "node": ">= 0.6.0" }, @@ -15277,7 +15454,8 @@ "resolved": "https://registry.npmjs.org/loglevel-plugin-prefix/-/loglevel-plugin-prefix-0.8.4.tgz", "integrity": "sha512-WpG9CcFAOjz/FtNht+QJeGpvVl/cdR6P0z6OcXSkr8wFJOsV2GRj2j10JLfjuA4aYkcKCNIEqRGCyTife9R8/g==", "devOptional": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/long": { "version": "5.3.2", @@ -15692,7 +15870,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "@types/debug": "^4.0.0", "debug": "^4.0.0", @@ -16283,8 +16460,7 @@ "url": "https://opencollective.com/unified" } ], - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/micromatch": { "version": "4.0.8", @@ -16416,6 +16592,7 @@ "resolved": "https://registry.npmjs.org/minimizer-webpack-plugin/-/minimizer-webpack-plugin-5.6.1.tgz", "integrity": "sha512-DoeAZz8Q1C1znwsUzej1fdoi4jCf7/+Em27ouLqfK/+3m8G+D7yDhUwrc3CNhjSzGUN1kn7Iv4sWmjflQHenpw==", "license": "MIT", + "peer": true, "dependencies": { "@jridgewell/trace-mapping": "^0.3.25", "jest-worker": "^27.4.5", @@ -16475,13 +16652,15 @@ "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/minimizer-webpack-plugin/node_modules/terser": { "version": "5.49.0", "resolved": "https://registry.npmjs.org/terser/-/terser-5.49.0.tgz", "integrity": "sha512-SNiDnXyHSrxVcIOtVbULzcTmniUiwcV7Nwdyj1twVubeTmbjoa8p69KKDpfkdoOavuM4/GRm1+ykI8qqnavHoA==", "license": "BSD-2-Clause", + "peer": true, "dependencies": { "@jridgewell/source-map": "^0.3.3", "acorn": "^8.15.0", @@ -16509,7 +16688,8 @@ "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz", "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==", "devOptional": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/mkdirp": { "version": "1.0.4", @@ -16892,6 +17072,7 @@ "integrity": "sha512-t9VmxaqrmANnEOBhpSDI6HD192Ge48k8vmWqQQL7hSFEqHEYwZbbsu49+aKLWZeRvFs3j1pMhXOqqF4kPlvjkQ==", "devOptional": true, "license": "MIT", + "peer": true, "engines": { "node": ">=18.0.0" } @@ -17015,7 +17196,8 @@ "version": "2.6.2", "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/netmask": { "version": "2.1.1", @@ -17023,6 +17205,7 @@ "integrity": "sha512-eonl3sLUha+S1GzTPxychyhnUzKyeQkZ7jLjKrBagJgPla13F+uQ71HgpFefyHgqrjEbCPkDArxYsjY8/+gLKA==", "devOptional": true, "license": "MIT", + "peer": true, "engines": { "node": ">= 0.4.0" } @@ -17032,7 +17215,6 @@ "resolved": "https://registry.npmjs.org/next/-/next-16.2.6.tgz", "integrity": "sha512-qOVgKJg1+At15NpeUP+eJgCHvTCgXsogweq87Ri/Ix7PkqQHg4sdaXmSFqKlgaIXE4kW0g25LE68W87UANlHtw==", "license": "MIT", - "peer": true, "dependencies": { "@next/env": "16.2.6", "@swc/helpers": "0.5.15", @@ -17240,6 +17422,7 @@ "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", "devOptional": true, "license": "BSD-2-Clause", + "peer": true, "dependencies": { "boolbase": "^1.0.0" }, @@ -17547,6 +17730,7 @@ "integrity": "sha512-TEB8ESquiLMc0lV8vcd5Ql/JAKAoyzHFXaStwjkzpOpC5Yv+pIzLfHvjTSdf3vpa2bMiUQrg9i6276yn8666aA==", "devOptional": true, "license": "MIT", + "peer": true, "dependencies": { "@tootallnate/quickjs-emscripten": "^0.23.0", "agent-base": "^7.1.2", @@ -17567,6 +17751,7 @@ "integrity": "sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==", "devOptional": true, "license": "MIT", + "peer": true, "dependencies": { "degenerator": "^5.0.0", "netmask": "^2.0.2" @@ -17632,6 +17817,7 @@ "integrity": "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==", "devOptional": true, "license": "MIT", + "peer": true, "dependencies": { "entities": "^6.0.0" }, @@ -17645,6 +17831,7 @@ "integrity": "sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g==", "devOptional": true, "license": "MIT", + "peer": true, "dependencies": { "domhandler": "^5.0.3", "parse5": "^7.0.0" @@ -17659,6 +17846,7 @@ "integrity": "sha512-JyeQc9iwFLn5TbvvqACIF/VXG6abODeB3Fwmv/TGdLk2LfbWkaySGY72at4+Ty7EkPZj854u4CrICqNk2qIbow==", "devOptional": true, "license": "MIT", + "peer": true, "dependencies": { "parse5": "^7.0.0" }, @@ -17672,6 +17860,7 @@ "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", "devOptional": true, "license": "BSD-2-Clause", + "peer": true, "engines": { "node": ">=0.12" }, @@ -17770,7 +17959,8 @@ "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", "devOptional": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/perfect-debounce": { "version": "1.0.0", @@ -17784,7 +17974,6 @@ "resolved": "https://registry.npmjs.org/pg/-/pg-8.19.0.tgz", "integrity": "sha512-QIcLGi508BAHkQ3pJNptsFz5WQMlpGbuBGBaIaXsWK8mel2kQ/rThYI+DbgjUvZrIr7MiuEuc9LcChJoEZK1xQ==", "license": "MIT", - "peer": true, "dependencies": { "pg-connection-string": "^2.11.0", "pg-pool": "^3.12.0", @@ -18033,7 +18222,6 @@ "devOptional": true, "hasInstallScript": true, "license": "Apache-2.0", - "peer": true, "dependencies": { "@prisma/config": "6.19.3", "@prisma/engines": "6.19.3" @@ -18068,6 +18256,7 @@ "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", "devOptional": true, "license": "MIT", + "peer": true, "engines": { "node": ">= 0.6.0" } @@ -18077,7 +18266,8 @@ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", "devOptional": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/progress": { "version": "2.0.3", @@ -18158,6 +18348,7 @@ "integrity": "sha512-TmatMXdr2KlRiA2CyDu8GqR8EjahTG3aY3nXjdzFyoZbmB8hrBsTyMezhULIXKnC0jpfjlmiZ3+EaCzoInSu/A==", "devOptional": true, "license": "MIT", + "peer": true, "dependencies": { "agent-base": "^7.1.2", "debug": "^4.3.4", @@ -18178,6 +18369,7 @@ "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", "devOptional": true, "license": "ISC", + "peer": true, "engines": { "node": ">=12" } @@ -18194,6 +18386,7 @@ "integrity": "sha512-VS7sjc6KR7e1ukRFhQSY5LM2uBWAUPiOPa/A3mkKmiMwSmRFUITt0xuj+/lesgnCv+dPIEYlkzrcyXgquIHMcA==", "devOptional": true, "license": "MIT", + "peer": true, "dependencies": { "end-of-stream": "^1.1.0", "once": "^1.3.1" @@ -18231,7 +18424,6 @@ "resolved": "https://registry.npmjs.org/pyodide/-/pyodide-0.29.3.tgz", "integrity": "sha512-22UBuhOJawj7vKUnS7/F3xK+515LJdjiMAHoCfuS6/PbHiOrSQVnYwDe+2sbVwiOZ3sMMexdXICew6NqOMQGgA==", "license": "MPL-2.0", - "peer": true, "dependencies": { "@types/emscripten": "^1.41.4", "ws": "^8.5.0" @@ -18260,7 +18452,8 @@ "resolved": "https://registry.npmjs.org/query-selector-shadow-dom/-/query-selector-shadow-dom-1.0.1.tgz", "integrity": "sha512-lT5yCqEBgfoMYpf3F2xQRK7zEr1rhIIZuceDK6+xRkJQ4NMbHTwXqk4NkwDwQMNqXgG9r9fyHnzwNVs6zV5KRw==", "devOptional": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/queue-microtask": { "version": "1.2.3", @@ -18332,7 +18525,6 @@ "resolved": "https://registry.npmjs.org/react/-/react-19.2.4.tgz", "integrity": "sha512-9nfp2hYpCwOjAN+8TZFGhtWEwgvWHXqESH8qT89AT/lWklpLON22Lc8pEtnpsZz7VmawabSU0gCjnj8aC0euHQ==", "license": "MIT", - "peer": true, "engines": { "node": ">=0.10.0" } @@ -18354,12 +18546,20 @@ "react-dom": "^0.13.0 || ^0.14.0 || ^15.0.1 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, + "node_modules/react-children-utilities": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/react-children-utilities/-/react-children-utilities-2.10.0.tgz", + "integrity": "sha512-9naSkrOHACjoDsHDtAQR5mGMp3ffv1DkUSQPDa8iJFP0+lXloS4fw44hMHaWeNF3qL4B3GPiJ9032Oo309oa9g==", + "license": "MIT", + "peerDependencies": { + "react": ">=15" + } + }, "node_modules/react-dom": { "version": "19.2.4", "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.4.tgz", "integrity": "sha512-AXJdLo8kgMbimY95O2aKQqsz2iWi9jMgKJhRBAxECE4IFxfcazB2LmzloIoibJI3C12IlY20+KFaLv+71bUJeQ==", "license": "MIT", - "peer": true, "dependencies": { "scheduler": "^0.27.0" }, @@ -18430,6 +18630,7 @@ "integrity": "sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg==", "devOptional": true, "license": "MIT", + "peer": true, "dependencies": { "abort-controller": "^3.0.0", "buffer": "^6.0.3", @@ -18447,6 +18648,7 @@ "integrity": "sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==", "devOptional": true, "license": "Apache-2.0", + "peer": true, "dependencies": { "minimatch": "^5.1.0" } @@ -18457,6 +18659,7 @@ "integrity": "sha512-w5JZcKgdhDOgOwm8H+KgbosopHMuGcl6qbulwjtz3SM7I7P3yW1eAjzMPLrIE+NQ9vjgANKHWeMHnrT0OXW1oA==", "devOptional": true, "license": "MIT", + "peer": true, "dependencies": { "balanced-match": "^1.0.0" } @@ -18467,6 +18670,7 @@ "integrity": "sha512-7o1wEA2RyMP7Iu7GNba9vc0RWWGACJOCZBJX2GJWip0ikV+wcOsgVuY9uE8CPiyQhkGFSlhuSkZPavN7u1c2Fw==", "devOptional": true, "license": "ISC", + "peer": true, "dependencies": { "brace-expansion": "^2.0.1" }, @@ -18724,6 +18928,7 @@ "integrity": "sha512-G10EBz+zAAy3zUd/CDoBbXRL6ia9kOo3xRHrMDsHljI0GDkhYlyjwoCx5+3eCC4swi1uCoZQhskuJkj7Gp57Bw==", "devOptional": true, "license": "MIT", + "peer": true, "dependencies": { "fast-deep-equal": "^2.0.1" } @@ -18733,7 +18938,8 @@ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", "integrity": "sha512-bCK/2Z4zLidyB4ReuIsvALH6w31YfAQDmXMqMx6FyfHqvBxtjC0eRumeSu4Bs3XtXwpyIywtSTrVT99BxY1f9w==", "devOptional": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/ret": { "version": "0.5.0", @@ -18741,6 +18947,7 @@ "integrity": "sha512-I1XxrZSQ+oErkRR4jYbAyEEu2I0avBvvMM5JN+6EBprOGRCs63ENqZ3vjavq8fBw2+62G5LF5XelKwuJpcvcxw==", "devOptional": true, "license": "MIT", + "peer": true, "engines": { "node": ">=10" } @@ -18770,7 +18977,8 @@ "resolved": "https://registry.npmjs.org/rgb2hex/-/rgb2hex-0.2.5.tgz", "integrity": "sha512-22MOP1Rh7sAo1BZpDG6R5RFYzR2lYEgwq7HEmyW2qcsOqR2lQKmn+O//xV3YG/0rrhMC6KVX2hU+ZXuaw9a5bw==", "devOptional": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/rimraf": { "version": "5.0.10", @@ -18964,7 +19172,6 @@ "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.60.3.tgz", "integrity": "sha512-pAQK9HalE84QSm4Po3EmWIZPd3FnjkShVkiMlz1iligWYkWQ7wHYd1PF/T7QZ5TVSD6uSTon5gBVMSM4JfBV+A==", "license": "MIT", - "peer": true, "dependencies": { "@types/estree": "1.0.8" }, @@ -19066,6 +19273,7 @@ "integrity": "sha512-jkg4434cYgtrIF2AeY/X0Wmd2W73cK5qIEFE3hDrrQenJH/2SDJIXGvPAigfvQTcE9+H31zkiNHbUqcihEiMRA==", "devOptional": true, "license": "MIT", + "peer": true, "engines": { "node": ">=18.0.0" } @@ -19161,6 +19369,7 @@ } ], "license": "MIT", + "peer": true, "dependencies": { "ret": "~0.5.0" }, @@ -19213,7 +19422,6 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.20.0.tgz", "integrity": "sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==", "license": "MIT", - "peer": true, "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", @@ -19284,6 +19492,7 @@ "integrity": "sha512-ZYkZLAvKTKQXWuh5XpBw7CdbSzagarX39WyZ2H07CDLC5/KfsRGlIXV8d4+tfqX1M7916mRqR1QfNHSij+c9Pw==", "devOptional": true, "license": "MIT", + "peer": true, "dependencies": { "type-fest": "^4.31.0" }, @@ -19300,6 +19509,7 @@ "integrity": "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==", "devOptional": true, "license": "(MIT OR CC0-1.0)", + "peer": true, "engines": { "node": ">=16" }, @@ -19395,7 +19605,8 @@ "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", "devOptional": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/setprototypeof": { "version": "1.2.0", @@ -19586,6 +19797,7 @@ "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", "devOptional": true, "license": "MIT", + "peer": true, "engines": { "node": ">= 6.0.0", "npm": ">= 3.0.0" @@ -19597,6 +19809,7 @@ "integrity": "sha512-LJhUYUvItdQ0LkJTmPeaEObWXAqFyfmP85x0tch/ez9cahmhlBBLbIqDFnvBnUJGagb0JbIQrkBs1wJ+yRYpEw==", "devOptional": true, "license": "MIT", + "peer": true, "dependencies": { "ip-address": "^10.1.1", "smart-buffer": "^4.2.0" @@ -19612,6 +19825,7 @@ "integrity": "sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==", "devOptional": true, "license": "MIT", + "peer": true, "dependencies": { "agent-base": "^7.1.2", "debug": "^4.3.4", @@ -19674,7 +19888,8 @@ "url": "https://github.com/hejny/spacetrim/blob/main/README.md#%EF%B8%8F-contributing" } ], - "license": "Apache-2.0" + "license": "Apache-2.0", + "peer": true }, "node_modules/spdx-exceptions": { "version": "2.5.0", @@ -19787,6 +20002,7 @@ "integrity": "sha512-1Yowhzjf0ivGMrTIkY9hav5TxobO9qIVqUE41fiCGMGgc3CLlf4MY+9AHmZqBWgDTue0fY9zWjYFVyf6Diuobw==", "devOptional": true, "license": "MIT", + "peer": true, "dependencies": { "events-universal": "^1.0.0", "fast-fifo": "^1.3.2", @@ -19799,6 +20015,7 @@ "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", "devOptional": true, "license": "MIT", + "peer": true, "dependencies": { "safe-buffer": "~5.2.0" } @@ -20151,6 +20368,12 @@ "react": "^16.11.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, + "node_modules/tabbable": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.5.0.tgz", + "integrity": "sha512-wieBHXygIm7OyQOu5hQlkk62/WyCFYGlWg7L6/ZCUZwx0o398Zkn4pVmMyfYhfMG8kGrj/Krt8eIk6UKC6VzwA==", + "license": "MIT" + }, "node_modules/tailwindcss": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.2.1.tgz", @@ -20177,6 +20400,7 @@ "integrity": "sha512-/hU4AXnIdZu+Gvl1pk0oI5f5HxWsCJRtY2aFaJdk9VvyL48DWU6iU5WAIPG+wIi1YvWA6eTJvIviP/tMAZZNwQ==", "devOptional": true, "license": "MIT", + "peer": true, "dependencies": { "pump": "^3.0.0", "tar-stream": "^3.1.5" @@ -20192,6 +20416,7 @@ "integrity": "sha512-ojzvCvVaNp6aOTFmG7jaRD0meowIAuPc3cMMhSgKiVWws1GyHbGd/xvnyuRKcKlMpt3qvxx6r0hreCNITP9hIg==", "devOptional": true, "license": "MIT", + "peer": true, "dependencies": { "b4a": "^1.6.4", "bare-fs": "^4.5.5", @@ -20205,6 +20430,7 @@ "integrity": "sha512-eYE6iEI62Ni1H8oIa7KlDU6uQBtqr4Eajni3wX7rpfXD8ysFx8z0+dri+KWEPWpBsxXfxu58x/0jvTVT1ekOSg==", "devOptional": true, "license": "MIT", + "peer": true, "dependencies": { "streamx": "^2.12.5" } @@ -20239,6 +20465,7 @@ "integrity": "sha512-vlLytXkeP4xvEq2otHeJfSQIRyWxo/oZGEbXrtEEF9Hnmrdly59sUbzZ/QgyWuLYHctCHxFF4tRQZNQ9k60ExQ==", "devOptional": true, "license": "Apache-2.0", + "peer": true, "dependencies": { "b4a": "^1.6.4" } @@ -20913,6 +21140,7 @@ "integrity": "sha512-OduNjVJsFbifKb57UqZ2EMP1i4u64Xwow3NYXUtBbD4vIwJdQd4+xl8YDou1dlm4DVrtwT/7Ky8z8WyCULVfxw==", "devOptional": true, "license": "(MIT OR CC0-1.0)", + "peer": true, "engines": { "node": ">=16" }, @@ -21017,7 +21245,6 @@ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", "license": "Apache-2.0", - "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -21089,7 +21316,6 @@ "resolved": "https://registry.npmjs.org/unenv/-/unenv-2.0.0-rc.24.tgz", "integrity": "sha512-i7qRCmY42zmCwnYlh9H2SvLEypEFGye5iRmEMKjcGi7zk9UquigRjFtTLz0TYqr0ZGLZhaMHl/foy1bZR+Cwlw==", "license": "MIT", - "peer": true, "dependencies": { "pathe": "^2.0.3" } @@ -21099,7 +21325,6 @@ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz", "integrity": "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==", "license": "MIT", - "peer": true, "dependencies": { "@types/unist": "^3.0.0", "bail": "^2.0.0", @@ -21287,6 +21512,7 @@ "integrity": "sha512-5cnLm4gseXjAclKowC4IjByaGsjtAoV6PrOQOljplNB54ReUYJP8HdAFq2muHinSDAh09PPX/uXDPfdxRHvuSA==", "devOptional": true, "license": "MIT", + "peer": true, "engines": { "node": ">= 0.8.0" } @@ -21296,7 +21522,8 @@ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", "devOptional": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/vary": { "version": "1.1.2", @@ -21341,7 +21568,6 @@ "integrity": "sha512-Bby3NOsna2jsjfLVOHKes8sGwgl4TT0E6vvpYgnAYDIF/tie7MRaFthmKuHx1NSXjiTueXH3do80FMQgvEktRg==", "devOptional": true, "license": "MIT", - "peer": true, "dependencies": { "esbuild": "^0.27.0", "fdir": "^6.5.0", @@ -21423,6 +21649,7 @@ "os": [ "aix" ], + "peer": true, "engines": { "node": ">=18" } @@ -21439,6 +21666,7 @@ "os": [ "android" ], + "peer": true, "engines": { "node": ">=18" } @@ -21455,6 +21683,7 @@ "os": [ "android" ], + "peer": true, "engines": { "node": ">=18" } @@ -21471,6 +21700,7 @@ "os": [ "android" ], + "peer": true, "engines": { "node": ">=18" } @@ -21487,6 +21717,7 @@ "os": [ "darwin" ], + "peer": true, "engines": { "node": ">=18" } @@ -21503,6 +21734,7 @@ "os": [ "darwin" ], + "peer": true, "engines": { "node": ">=18" } @@ -21519,6 +21751,7 @@ "os": [ "freebsd" ], + "peer": true, "engines": { "node": ">=18" } @@ -21535,6 +21768,7 @@ "os": [ "freebsd" ], + "peer": true, "engines": { "node": ">=18" } @@ -21551,6 +21785,7 @@ "os": [ "linux" ], + "peer": true, "engines": { "node": ">=18" } @@ -21567,6 +21802,7 @@ "os": [ "linux" ], + "peer": true, "engines": { "node": ">=18" } @@ -21583,6 +21819,7 @@ "os": [ "linux" ], + "peer": true, "engines": { "node": ">=18" } @@ -21599,6 +21836,7 @@ "os": [ "linux" ], + "peer": true, "engines": { "node": ">=18" } @@ -21615,6 +21853,7 @@ "os": [ "linux" ], + "peer": true, "engines": { "node": ">=18" } @@ -21631,6 +21870,7 @@ "os": [ "linux" ], + "peer": true, "engines": { "node": ">=18" } @@ -21647,6 +21887,7 @@ "os": [ "linux" ], + "peer": true, "engines": { "node": ">=18" } @@ -21663,6 +21904,7 @@ "os": [ "linux" ], + "peer": true, "engines": { "node": ">=18" } @@ -21679,6 +21921,7 @@ "os": [ "linux" ], + "peer": true, "engines": { "node": ">=18" } @@ -21695,6 +21938,7 @@ "os": [ "netbsd" ], + "peer": true, "engines": { "node": ">=18" } @@ -21711,6 +21955,7 @@ "os": [ "netbsd" ], + "peer": true, "engines": { "node": ">=18" } @@ -21727,6 +21972,7 @@ "os": [ "openbsd" ], + "peer": true, "engines": { "node": ">=18" } @@ -21743,6 +21989,7 @@ "os": [ "openbsd" ], + "peer": true, "engines": { "node": ">=18" } @@ -21759,6 +22006,7 @@ "os": [ "openharmony" ], + "peer": true, "engines": { "node": ">=18" } @@ -21775,6 +22023,7 @@ "os": [ "sunos" ], + "peer": true, "engines": { "node": ">=18" } @@ -21791,6 +22040,7 @@ "os": [ "win32" ], + "peer": true, "engines": { "node": ">=18" } @@ -21807,6 +22057,7 @@ "os": [ "win32" ], + "peer": true, "engines": { "node": ">=18" } @@ -21823,6 +22074,7 @@ "os": [ "win32" ], + "peer": true, "engines": { "node": ">=18" } @@ -21953,6 +22205,7 @@ "integrity": "sha512-3e04qkoN3LxTMLakdqeWth8nih8usyg+sf1Bgdf9wwUkp05iuK1eSY/QpLvscT/+F/gA89+LpUmmgBtesbqI2Q==", "devOptional": true, "license": "MIT", + "peer": true, "dependencies": { "chalk": "^4.1.2", "commander": "^9.3.0", @@ -21971,6 +22224,7 @@ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "devOptional": true, "license": "MIT", + "peer": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -21988,6 +22242,7 @@ "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", "devOptional": true, "license": "MIT", + "peer": true, "engines": { "node": "^12.20.0 || >=14" } @@ -21998,6 +22253,7 @@ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "devOptional": true, "license": "MIT", + "peer": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -22010,6 +22266,7 @@ "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.5.2.tgz", "integrity": "sha512-6i/00NBjP4yGPs+caKSyRfpTF/8Torsu0MOW3mMzIbhgISFder8i7xbqgHlLMwJrdiN8ndBV3UA1/AfzPSr+jg==", "license": "MIT", + "peer": true, "dependencies": { "graceful-fs": "^4.1.2" }, @@ -22032,6 +22289,7 @@ "integrity": "sha512-uhxYap3qQXC9H2V8SDr7vcy0blZETeri4goLwbw1TFq4EZHF1Dv503Zc0PAjfkNQJCD4/rzAyr07+EX72kx1pg==", "devOptional": true, "license": "MIT", + "peer": true, "dependencies": { "@types/node": "^20.1.0", "@types/ws": "^8.5.3", @@ -22055,6 +22313,7 @@ "integrity": "sha512-YmfV3YnEDzXRC5lZ2jWtWWHKGUm1zIt8AhesR1tens+HTNv+YZlN/dp6G727LOvMJ8xjP9Be7Y2Sdr96LDm+pg==", "devOptional": true, "license": "MIT", + "peer": true, "engines": { "node": ">=18.17" } @@ -22065,6 +22324,7 @@ "integrity": "sha512-UIplAnvbjdE0tucHVR/8Uk0Y7rz72VaEx/s0Tq91fMdXm+m+Za16e+b5tObh4xEEfyCITODPfzgBva9rA+xApQ==", "devOptional": true, "license": "MIT", + "peer": true, "dependencies": { "@types/node": "^20.11.30", "@types/sinonjs__fake-timers": "^8.1.5", @@ -22182,13 +22442,15 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.3.1.tgz", "integrity": "sha512-shc1dbU90Yl/xq1QrC7QRtfcwURZuVRfPhZbDoldJ1cn1gzDvBaBWlv0eFolj5+0znnPJz5TXLxsN77X/12KTA==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/webpack/node_modules/eslint-scope": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", "license": "BSD-2-Clause", + "peer": true, "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^4.1.1" @@ -22202,6 +22464,7 @@ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", "license": "BSD-2-Clause", + "peer": true, "engines": { "node": ">=4.0" } @@ -22213,6 +22476,7 @@ "deprecated": "Use @exodus/bytes instead for a more spec-conformant and faster implementation", "devOptional": true, "license": "MIT", + "peer": true, "dependencies": { "iconv-lite": "0.6.3" }, @@ -22226,6 +22490,7 @@ "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "devOptional": true, "license": "MIT", + "peer": true, "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" }, @@ -22239,6 +22504,7 @@ "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==", "devOptional": true, "license": "MIT", + "peer": true, "engines": { "node": ">=18" } @@ -22380,7 +22646,6 @@ "integrity": "sha512-VlnjyH3AjVddpSK7J54nsCVgf8i2733pl8GjKttfNi7vN/hEjjAk20d2b1nDToOLKvRQpTewRnVkqaaeGHCaAw==", "hasInstallScript": true, "license": "Apache-2.0", - "peer": true, "bin": { "workerd": "bin/workerd" }, @@ -22406,7 +22671,6 @@ "resolved": "https://registry.npmjs.org/wrangler/-/wrangler-4.90.1.tgz", "integrity": "sha512-u2KrieKSMfRM0toTst/CfDtcRraeoVjmcExcMWgILM/ytq3qcDhuOAULoZSyPHzma43lfLJy1BC544drFyqe1A==", "license": "MIT OR Apache-2.0", - "peer": true, "dependencies": { "@cloudflare/kv-asset-handler": "0.5.0", "@cloudflare/unenv-preset": "2.16.1", @@ -23129,6 +23393,7 @@ "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", "devOptional": true, "license": "MIT", + "peer": true, "dependencies": { "buffer-crc32": "~0.2.3", "fd-slicer": "~1.1.0" @@ -23140,6 +23405,7 @@ "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", "devOptional": true, "license": "MIT", + "peer": true, "engines": { "node": "*" } @@ -23185,6 +23451,7 @@ "integrity": "sha512-zK7YHHz4ZXpW89AHXUPbQVGKI7uvkd3hzusTdotCg1UxyaVtg0zFJSTfW/Dq5f7OBBVnq6cZIaC8Ti4hb6dtCA==", "devOptional": true, "license": "MIT", + "peer": true, "dependencies": { "archiver-utils": "^5.0.0", "compress-commons": "^6.0.2", @@ -23199,7 +23466,6 @@ "resolved": "https://registry.npmjs.org/zod/-/zod-4.3.6.tgz", "integrity": "sha512-rftlrkhHZOcjDwkGlnUtZZkvaPHCsDATp4pGpuOOMDaTdDDXF91wuVDJoWoPsKX/3YPQ5fHuF3STjcYyKr+Qhg==", "license": "MIT", - "peer": true, "funding": { "url": "https://github.com/sponsors/colinhacks" } diff --git a/package.json b/package.json index e5b4bc9f..2803a53c 100644 --- a/package.json +++ b/package.json @@ -23,6 +23,7 @@ }, "dependencies": { "@better-auth/drizzle-adapter": "^1.6.23", + "@floating-ui/react": "^0.27.20", "@fontsource-variable/inconsolata": "^5.2.7", "@fontsource/m-plus-rounded-1c": "^5.2.9", "@google/genai": "^1.21.0", @@ -44,6 +45,7 @@ "prismjs": "^1.30.0", "react": "^19", "react-ace": "^14.0.1", + "react-children-utilities": "^2.10.0", "react-dom": "^19", "react-markdown": "^10.1.0", "react-syntax-highlighter": "^16.1.0", diff --git a/scripts/generateDocsMeta.ts b/scripts/generateDocsMeta.ts index aa7744c0..18e33dad 100644 --- a/scripts/generateDocsMeta.ts +++ b/scripts/generateDocsMeta.ts @@ -1,9 +1,14 @@ // Generates public/docs/{lang}/{pageId}/sections.yml for each page directory. // Each sections.yml lists the .md files in that directory in display order. -import { writeFile } from "node:fs/promises"; +import { unlink, writeFile } from "node:fs/promises"; import { join } from "node:path"; -import { getMarkdownSections, getPagesList } from "@/lib/docs"; +import { + getMarkdownSections, + getPagesList, + getTermDefinitions, +} from "@/lib/docs"; +import { existsSync } from "node:fs"; const docsDir = join(process.cwd(), "public", "docs"); @@ -16,6 +21,19 @@ console.log( ); for (const lang of langEntries) { + if (existsSync(join(docsDir, lang.id, "termDefinitions.json"))) { + await unlink(join(docsDir, lang.id, "termDefinitions.json")); + } + const terms = await getTermDefinitions(lang.id); + await writeFile( + join(docsDir, lang.id, "termDefinitions.json"), + JSON.stringify(terms), + "utf-8" + ); + console.log( + `Generated ${lang.id}/termDefinitions.json (${terms.length} definitions, ${terms.reduce((sum, td) => sum + td.alias.length, 0)} terms)` + ); + for (const page of lang.pages) { const sections = await getMarkdownSections(lang.id, page.slug); await writeFile(