From ccbe026e3450b1fe0a2f4db06ea2f30a98f501d4 Mon Sep 17 00:00:00 2001 From: saberzero1 Date: Mon, 16 Mar 2026 18:54:25 +0100 Subject: [PATCH] fix: use fetchData global for path-prefixed deployments - Update types/globals.d.ts with centralized type declarations - Use fetchData global instead of hardcoded /static/contentIndex.json - Revert @quartz-community/types from file:../types to github:quartz-community/types - Add .prettierignore, update .eslintrc.json with triple-slash-reference override - Remove duplicate scripts.d.ts/styles.d.ts --- .eslintrc.json | 10 +- .prettierignore | 1 + README.md | 7 +- dist/components/index.js | 2 +- dist/components/index.js.map | 2 +- dist/index.js | 2 +- dist/index.js.map | 2 +- package-lock.json | 602 +---------------------- package.json | 2 +- src/components/StackedPages.tsx | 2 +- src/components/scripts.d.ts | 4 - src/components/scripts/example.inline.ts | 6 +- src/components/scripts/stacked.inline.ts | 20 +- src/components/styles.d.ts | 4 - types/globals.d.ts | 27 +- 15 files changed, 42 insertions(+), 651 deletions(-) create mode 100644 .prettierignore delete mode 100644 src/components/scripts.d.ts delete mode 100644 src/components/styles.d.ts diff --git a/.eslintrc.json b/.eslintrc.json index a9ba90d..dda1fa0 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -22,5 +22,13 @@ "caughtErrorsIgnorePattern": "^_" } ] - } + }, + "overrides": [ + { + "files": ["types/**/*.d.ts"], + "rules": { + "@typescript-eslint/triple-slash-reference": "off" + } + } + ] } diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 0000000..1521c8b --- /dev/null +++ b/.prettierignore @@ -0,0 +1 @@ +dist diff --git a/README.md b/README.md index 67e8982..54d59d9 100644 --- a/README.md +++ b/README.md @@ -196,7 +196,7 @@ Component scripts run in the browser and must handle Quartz's SPA navigation. Ke 2. **Listen to `nav` event** - Fires after each page navigation (including initial load) 3. **Listen to `prenav` event** - Fires before navigation, use for saving state 4. **Use `window.addCleanup()`** - Register cleanup functions for event listeners -5. **Fetch `/static/contentIndex.json`** - Access page metadata for search, graph, etc. +5. **Use `fetchData` global** - Access page metadata via the `fetchData` promise (handles base path correctly) See `src/components/scripts/example.inline.ts` for a complete example with all patterns. @@ -238,9 +238,8 @@ When migrating a v4 component to a standalone plugin: 1. **Replace Quartz imports** with `@quartz-community/types` 2. **Copy utility functions** (path helpers, DOM utils) into your plugin 3. **Use `@ts-nocheck`** for inline scripts that can't be type-checked -4. **Fetch data directly** from `/static/contentIndex.json` instead of using `fetchData` -5. **Handle both data formats**: `data.content || data` for contentIndex compatibility -6. **Test with both local and production builds** +4. **Use the `fetchData` global** to access `contentIndex.json` with the correct base path +5. **Test with both local and production builds** ## License diff --git a/dist/components/index.js b/dist/components/index.js index cb70872..3823b74 100644 --- a/dist/components/index.js +++ b/dist/components/index.js @@ -9,7 +9,7 @@ function classNames(...classes) { var example_default = ".example-component {\n padding: 8px 16px;\n background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\n color: white;\n border-radius: 4px;\n font-weight: 600;\n display: inline-block;\n}"; // src/components/scripts/example.inline.ts -var example_inline_default = 'function c(){let e=window.location.pathname;return e.startsWith("/")&&(e=e.slice(1)),e.endsWith("/")&&(e=e.slice(0,-1)),e||"index"}function r(){let e=document.querySelectorAll(".example-component");if(e.length===0)return;let t=[];function o(n){(n.ctrlKey||n.metaKey)&&n.shiftKey&&n.key.toLowerCase()==="e"&&(n.preventDefault(),console.log("[ExampleComponent] Keyboard shortcut triggered!"))}document.addEventListener("keydown",o),t.push(()=>document.removeEventListener("keydown",o));for(let n of e){let i=()=>{console.log("[ExampleComponent] Clicked!")};n.addEventListener("click",i),t.push(()=>n.removeEventListener("click",i))}typeof window<"u"&&window.addCleanup&&window.addCleanup(()=>{t.forEach(n=>n())}),console.log("[ExampleComponent] Initialized with",e.length,"component(s)")}document.addEventListener("nav",e=>{let t=e.detail?.url||c();console.log("[ExampleComponent] Navigation to:",t),r()});document.addEventListener("render",()=>{console.log("[ExampleComponent] Render event - re-initializing"),r()});document.addEventListener("prenav",()=>{let e=document.querySelector(".example-component");e&&sessionStorage.setItem("exampleScrollTop",e.scrollTop?.toString()||"0")});\n'; +var example_inline_default = 'function l(){let e=window.location.pathname;return e.startsWith("/")&&(e=e.slice(1)),e.endsWith("/")&&(e=e.slice(0,-1)),e||"index"}function r(){let e=document.querySelectorAll(".example-component");if(e.length===0)return;let t=[];function o(n){(n.ctrlKey||n.metaKey)&&n.shiftKey&&n.key.toLowerCase()==="e"&&(n.preventDefault(),console.log("[ExampleComponent] Keyboard shortcut triggered!"))}document.addEventListener("keydown",o),t.push(()=>document.removeEventListener("keydown",o));for(let n of e){let i=()=>{console.log("[ExampleComponent] Clicked!")};n.addEventListener("click",i),t.push(()=>n.removeEventListener("click",i))}typeof window<"u"&&window.addCleanup&&window.addCleanup(()=>{t.forEach(n=>n())}),console.log("[ExampleComponent] Initialized with",e.length,"component(s)")}document.addEventListener("nav",e=>{let t=e.detail?.url||l();console.log("[ExampleComponent] Navigation to:",t),r()});document.addEventListener("render",()=>{console.log("[ExampleComponent] Render event - re-initializing"),r()});document.addEventListener("prenav",()=>{let e=document.querySelector(".example-component");e&&sessionStorage.setItem("exampleScrollTop",e.scrollTop?.toString()||"0")});\n'; var ExampleComponent_default = ((opts) => { const { prefix = "", suffix = "", className = "example-component" } = opts ?? {}; const Component = (props) => { diff --git a/dist/components/index.js.map b/dist/components/index.js.map index 59d1c9b..870293a 100644 --- a/dist/components/index.js.map +++ b/dist/components/index.js.map @@ -1 +1 @@ -{"version":3,"sources":["../../src/util/lang.ts","../../src/components/styles/example.scss","../../src/components/scripts/example.inline.ts","../../src/components/ExampleComponent.tsx","../../src/components/styles/stacked.scss","../../src/components/scripts/stacked.inline.ts","../../src/components/StackedPages.tsx"],"names":["jsx"],"mappings":";;;AAAO,SAAS,cAAc,OAAA,EAAwD;AACpF,EAAA,OAAO,OAAA,CAAQ,MAAA,CAAO,OAAO,CAAA,CAAE,KAAK,GAAG,CAAA;AACzC;;;ACFA,IAAA,eAAA,GAAA,wMAAA;;;ACAA,IAAA,sBAAA,GAAA,mqCAAA;ACgBA,IAAO,wBAAA,IAAS,CAAC,IAAA,KAAmC;AAClD,EAAA,MAAM,EAAE,SAAS,EAAA,EAAI,MAAA,GAAS,IAAI,SAAA,GAAY,mBAAA,EAAoB,GAAI,IAAA,IAAQ,EAAC;AAE/E,EAAA,MAAM,SAAA,GAA6B,CAAC,KAAA,KAAgC;AAClE,IAAA,MAAM,WAAA,GAAc,MAAM,QAAA,EAAU,WAAA;AACpC,IAAA,MAAM,KAAA,GAAQ,aAAa,KAAA,IAAS,UAAA;AACpC,IAAA,MAAM,WAAW,CAAA,EAAG,MAAM,CAAA,EAAG,KAAK,GAAG,MAAM,CAAA,CAAA;AAE3C,IAAA,2BAAQ,KAAA,EAAA,EAAI,KAAA,EAAO,UAAA,CAAW,SAAS,GAAI,QAAA,EAAA,QAAA,EAAS,CAAA;AAAA,EACtD,CAAA;AAEA,EAAA,SAAA,CAAU,GAAA,GAAM,eAAA;AAChB,EAAA,SAAA,CAAU,cAAA,GAAiB,sBAAA;AAE3B,EAAA,OAAO,SAAA;AACT,CAAA;;;AC/BA,IAAA,eAAA,GAAA,qhGAAA;;;ACAA,IAAA,sBAAA,GAAA,27GAAA;ACiBA,IAAO,oBAAA,IAAS,CAAC,IAAA,KAAwC;AACvD,EAAA,MAAM;AAAA,IACJ,OAAA,GAAU,CAAA;AAAA,IACV,gBAAA,GAAmB,GAAA;AAAA,IACnB,UAAA,GAAa,IAAA;AAAA,IACb,kBAAA,GAAqB;AAAA,GACvB,GAAI,QAAQ,EAAC;AAEb,EAAA,MAAM,SAAA,GAA6B,CAAC,MAAA,KAAiC;AACnE,IAAA,uBACEA,GAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,EAAA,EAAG,yBAAA;AAAA,QACH,eAAA,EAAe,OAAA;AAAA,QACf,wBAAA,EAAwB,gBAAA;AAAA,QACxB,kBAAA,EAAkB,UAAA;AAAA,QAClB,cAAA,EAAc;AAAA;AAAA,KAChB;AAAA,EAEJ,CAAA;AAEA,EAAA,SAAA,CAAU,GAAA,GAAM,eAAA;AAChB,EAAA,SAAA,CAAU,cAAA,GAAiB,sBAAA;AAE3B,EAAA,OAAO,SAAA;AACT,CAAA","file":"index.js","sourcesContent":["export function classNames(...classes: (string | undefined | null | false)[]): string {\n return classes.filter(Boolean).join(\" \");\n}\n",".example-component {\n padding: 8px 16px;\n background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\n color: white;\n border-radius: 4px;\n font-weight: 600;\n display: inline-block;\n}","function c(){let e=window.location.pathname;return e.startsWith(\"/\")&&(e=e.slice(1)),e.endsWith(\"/\")&&(e=e.slice(0,-1)),e||\"index\"}function r(){let e=document.querySelectorAll(\".example-component\");if(e.length===0)return;let t=[];function o(n){(n.ctrlKey||n.metaKey)&&n.shiftKey&&n.key.toLowerCase()===\"e\"&&(n.preventDefault(),console.log(\"[ExampleComponent] Keyboard shortcut triggered!\"))}document.addEventListener(\"keydown\",o),t.push(()=>document.removeEventListener(\"keydown\",o));for(let n of e){let i=()=>{console.log(\"[ExampleComponent] Clicked!\")};n.addEventListener(\"click\",i),t.push(()=>n.removeEventListener(\"click\",i))}typeof window<\"u\"&&window.addCleanup&&window.addCleanup(()=>{t.forEach(n=>n())}),console.log(\"[ExampleComponent] Initialized with\",e.length,\"component(s)\")}document.addEventListener(\"nav\",e=>{let t=e.detail?.url||c();console.log(\"[ExampleComponent] Navigation to:\",t),r()});document.addEventListener(\"render\",()=>{console.log(\"[ExampleComponent] Render event - re-initializing\"),r()});document.addEventListener(\"prenav\",()=>{let e=document.querySelector(\".example-component\");e&&sessionStorage.setItem(\"exampleScrollTop\",e.scrollTop?.toString()||\"0\")});\n","import type {\n QuartzComponent,\n QuartzComponentProps,\n QuartzComponentConstructor,\n} from \"@quartz-community/types\";\nimport { classNames } from \"../util/lang\";\nimport style from \"./styles/example.scss\";\n// @ts-expect-error - inline script import handled by Quartz bundler\nimport script from \"./scripts/example.inline.ts\";\n\nexport interface ExampleComponentOptions {\n prefix?: string;\n suffix?: string;\n className?: string;\n}\n\nexport default ((opts?: ExampleComponentOptions) => {\n const { prefix = \"\", suffix = \"\", className = \"example-component\" } = opts ?? {};\n\n const Component: QuartzComponent = (props: QuartzComponentProps) => {\n const frontmatter = props.fileData?.frontmatter as { title?: string } | undefined;\n const title = frontmatter?.title ?? \"Untitled\";\n const fullText = `${prefix}${title}${suffix}`;\n\n return
{fullText}
;\n };\n\n Component.css = style;\n Component.afterDOMLoaded = script;\n\n return Component;\n}) satisfies QuartzComponentConstructor;\n","#stacked-pages-container:not(.binder-active) {\n display: none;\n}\n#stacked-pages-container.binder-active {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n pointer-events: none;\n z-index: 99;\n display: flex;\n justify-content: space-between;\n align-items: stretch;\n}\n\nbody.has-binder-left .page {\n padding-left: 40px;\n}\n\nbody.has-binder-right .page {\n padding-right: 40px;\n}\n\n.binder-strip {\n pointer-events: auto;\n display: flex;\n flex-direction: column;\n gap: 0;\n padding: 0;\n justify-content: stretch;\n align-items: stretch;\n z-index: 100;\n width: 40px;\n height: 100%;\n}\n\n.binder-strip-left {\n align-self: flex-start;\n}\n\n.binder-strip-right {\n align-self: flex-end;\n margin-left: auto;\n}\n\n.binder-tab {\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n gap: 4px;\n padding: 8px 0;\n cursor: pointer;\n background: var(--lightgray);\n border: 1px solid var(--lightgray);\n transition: background 0.15s ease, transform 0.15s ease, border-color 0.15s ease;\n width: 100%;\n flex: 1;\n position: relative;\n writing-mode: vertical-lr;\n overflow: hidden;\n}\n.binder-tab:hover {\n background: var(--light);\n}\n\n.binder-tab.binder-tab-active {\n background: var(--light);\n z-index: 101;\n cursor: default;\n}\n.binder-tab.binder-tab-active.binder-tab-left {\n border-right: none;\n border-left: 3px solid var(--secondary);\n border-radius: 6px 0 0 6px;\n}\n.binder-tab.binder-tab-active.binder-tab-right {\n border-left: none;\n border-right: 3px solid var(--secondary);\n border-radius: 0 6px 6px 0;\n}\n\n.binder-tab:not(.binder-tab-active) {\n color: var(--gray);\n}\n.binder-tab:not(.binder-tab-active).binder-tab-left {\n border-radius: 6px 0 0 6px;\n border-right: 2px solid var(--secondary);\n border-left: 1px solid var(--lightgray);\n}\n.binder-tab:not(.binder-tab-active).binder-tab-left:hover {\n transform: translateX(4px);\n}\n.binder-tab:not(.binder-tab-active).binder-tab-right {\n border-radius: 0 6px 6px 0;\n border-left: 2px solid var(--secondary);\n border-right: 1px solid var(--lightgray);\n}\n.binder-tab:not(.binder-tab-active).binder-tab-right:hover {\n transform: translateX(-4px);\n}\n\n.binder-spine {\n display: none;\n}\n\n.binder-label {\n font-size: 1rem;\n line-height: 1.2;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n color: var(--darkgray);\n user-select: none;\n transform: rotate(180deg);\n text-align: left;\n}\n\n.binder-tab-active .binder-label {\n font-weight: bold;\n color: var(--dark);\n}\n\n.binder-close {\n appearance: none;\n background: none;\n border: none;\n cursor: pointer;\n font-size: 1rem;\n line-height: 1;\n color: var(--gray);\n padding: 2px;\n flex-shrink: 0;\n opacity: 0;\n transition: opacity 0.15s ease, color 0.15s ease;\n transform: rotate(180deg);\n}\n.binder-close:hover {\n color: var(--dark);\n background: rgba(0, 0, 0, 0.05);\n border-radius: 4px;\n}\n\n.binder-tab:hover .binder-close {\n opacity: 1;\n}","var g=\"stacked-pages-state\";function m(){let e=window.location.pathname;return e.startsWith(\"/\")&&(e=e.slice(1)),e.endsWith(\"/\")&&(e=e.slice(0,-1)),e||\"index\"}function w(){return document.querySelector(\"h1\")?.textContent?.trim()||document.title||m()}function l(){try{let e=sessionStorage.getItem(g);if(e){let t=JSON.parse(e);if(Array.isArray(t.tabs)&&typeof t.activeIndex==\"number\")return t}}catch{}return{tabs:[],activeIndex:-1}}function c(e){try{sessionStorage.setItem(g,JSON.stringify(e))}catch{}}function p(e){return{maxTabs:parseInt(e.dataset.maxTabs||\"8\",10),mobileBreakpoint:parseInt(e.dataset.mobileBreakpoint||\"800\",10),showSpines:e.dataset.showSpines!==\"false\",animate:e.dataset.animate!==\"false\"}}function o(e,t){let r=p(e);if(window.innerWidth0){let i=document.createElement(\"div\");i.className=\"binder-strip binder-strip-left\";for(let a=0;a0){let i=document.createElement(\"div\");i.className=\"binder-strip binder-strip-right\";for(let a=0;a0),document.body.classList.toggle(\"has-binder-right\",d.length>0)}function u(e,t,r,n,d){let i=document.createElement(\"div\");if(i.className=`binder-tab binder-tab-${r}`,i.dataset.index=String(t),t===n.activeIndex&&i.classList.add(\"binder-tab-active\"),d.showSpines){let s=document.createElement(\"div\");s.className=\"binder-spine\",i.appendChild(s)}let a=document.createElement(\"span\");if(a.className=\"binder-label\",a.textContent=e.title,i.appendChild(a),n.tabs.length>=2){let s=document.createElement(\"button\");s.className=\"binder-close\",s.textContent=\"\\xD7\",s.setAttribute(\"aria-label\",`Close ${e.title}`),s.addEventListener(\"click\",v=>{v.stopPropagation(),I(t)}),i.appendChild(s)}return i.addEventListener(\"click\",()=>{h(t)}),i}function h(e){let t=l();if(e<0||e>=t.tabs.length)return;let r=t.tabs[e];t.activeIndex=e,c(t);let n=new URL(`/${r.slug}`,window.location.origin);window.spaNavigate?window.spaNavigate(n,!1):window.location.href=n.toString()}function I(e){let t=l();if(t.tabs.length<2)return;let r=e===t.activeIndex;t.tabs.splice(e,1),r?(t.activeIndex=Math.min(e,t.tabs.length-1),c(t),h(t.activeIndex)):(ea.slug===t);if(i>=0)n.tabs[i].title=r,n.activeIndex=i;else{let a={slug:t,title:r},s=n.activeIndex+1;for(n.tabs.splice(s,0,a),n.activeIndex=s;n.tabs.length>d.maxTabs;)n.activeIndex>0?(n.tabs.shift(),n.activeIndex--):n.tabs.pop()}c(n),o(e,n)}function b(){let e=document.getElementById(\"stacked-pages-container\");e&&o(e,l())}function x(){S();let e=()=>b();window.addEventListener(\"resize\",e),window.addCleanup&&window.addCleanup(()=>window.removeEventListener(\"resize\",e))}typeof document<\"u\"&&(document.addEventListener(\"nav\",()=>{x()}),document.addEventListener(\"render\",()=>{b()}));\n","import type {\n QuartzComponent,\n QuartzComponentProps,\n QuartzComponentConstructor,\n} from \"@quartz-community/types\";\nimport type { StackedPagesOptions } from \"../types\";\nimport style from \"./styles/stacked.scss\";\n// @ts-expect-error - inline script import handled by Quartz bundler\nimport script from \"./scripts/stacked.inline.ts\";\n\nexport interface StackedPagesComponentOptions {\n maxTabs?: number;\n mobileBreakpoint?: number;\n showSpines?: boolean;\n animateTransitions?: boolean;\n}\n\nexport default ((opts?: StackedPagesComponentOptions) => {\n const {\n maxTabs = 8,\n mobileBreakpoint = 800,\n showSpines = true,\n animateTransitions = true,\n } = opts ?? {};\n\n const Component: QuartzComponent = (_props: QuartzComponentProps) => {\n return (\n \n );\n };\n\n Component.css = style;\n Component.afterDOMLoaded = script;\n\n return Component;\n}) satisfies QuartzComponentConstructor;\n"]} \ No newline at end of file +{"version":3,"sources":["../../src/util/lang.ts","../../src/components/styles/example.scss","../../src/components/scripts/example.inline.ts","../../src/components/ExampleComponent.tsx","../../src/components/styles/stacked.scss","../../src/components/scripts/stacked.inline.ts","../../src/components/StackedPages.tsx"],"names":["jsx"],"mappings":";;;AAAO,SAAS,cAAc,OAAA,EAAwD;AACpF,EAAA,OAAO,OAAA,CAAQ,MAAA,CAAO,OAAO,CAAA,CAAE,KAAK,GAAG,CAAA;AACzC;;;ACFA,IAAA,eAAA,GAAA,wMAAA;;;ACAA,IAAA,sBAAA,GAAA,mqCAAA;ACgBA,IAAO,wBAAA,IAAS,CAAC,IAAA,KAAmC;AAClD,EAAA,MAAM,EAAE,SAAS,EAAA,EAAI,MAAA,GAAS,IAAI,SAAA,GAAY,mBAAA,EAAoB,GAAI,IAAA,IAAQ,EAAC;AAE/E,EAAA,MAAM,SAAA,GAA6B,CAAC,KAAA,KAAgC;AAClE,IAAA,MAAM,WAAA,GAAc,MAAM,QAAA,EAAU,WAAA;AACpC,IAAA,MAAM,KAAA,GAAQ,aAAa,KAAA,IAAS,UAAA;AACpC,IAAA,MAAM,WAAW,CAAA,EAAG,MAAM,CAAA,EAAG,KAAK,GAAG,MAAM,CAAA,CAAA;AAE3C,IAAA,2BAAQ,KAAA,EAAA,EAAI,KAAA,EAAO,UAAA,CAAW,SAAS,GAAI,QAAA,EAAA,QAAA,EAAS,CAAA;AAAA,EACtD,CAAA;AAEA,EAAA,SAAA,CAAU,GAAA,GAAM,eAAA;AAChB,EAAA,SAAA,CAAU,cAAA,GAAiB,sBAAA;AAE3B,EAAA,OAAO,SAAA;AACT,CAAA;;;AC/BA,IAAA,eAAA,GAAA,qhGAAA;;;ACAA,IAAA,sBAAA,GAAA,27GAAA;ACiBA,IAAO,oBAAA,IAAS,CAAC,IAAA,KAAwC;AACvD,EAAA,MAAM;AAAA,IACJ,OAAA,GAAU,CAAA;AAAA,IACV,gBAAA,GAAmB,GAAA;AAAA,IACnB,UAAA,GAAa,IAAA;AAAA,IACb,kBAAA,GAAqB;AAAA,GACvB,GAAI,QAAQ,EAAC;AAEb,EAAA,MAAM,SAAA,GAA6B,CAAC,MAAA,KAAiC;AACnE,IAAA,uBACEA,GAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,EAAA,EAAG,yBAAA;AAAA,QACH,eAAA,EAAe,OAAA;AAAA,QACf,wBAAA,EAAwB,gBAAA;AAAA,QACxB,kBAAA,EAAkB,UAAA;AAAA,QAClB,cAAA,EAAc;AAAA;AAAA,KAChB;AAAA,EAEJ,CAAA;AAEA,EAAA,SAAA,CAAU,GAAA,GAAM,eAAA;AAChB,EAAA,SAAA,CAAU,cAAA,GAAiB,sBAAA;AAE3B,EAAA,OAAO,SAAA;AACT,CAAA","file":"index.js","sourcesContent":["export function classNames(...classes: (string | undefined | null | false)[]): string {\n return classes.filter(Boolean).join(\" \");\n}\n",".example-component {\n padding: 8px 16px;\n background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\n color: white;\n border-radius: 4px;\n font-weight: 600;\n display: inline-block;\n}","function l(){let e=window.location.pathname;return e.startsWith(\"/\")&&(e=e.slice(1)),e.endsWith(\"/\")&&(e=e.slice(0,-1)),e||\"index\"}function r(){let e=document.querySelectorAll(\".example-component\");if(e.length===0)return;let t=[];function o(n){(n.ctrlKey||n.metaKey)&&n.shiftKey&&n.key.toLowerCase()===\"e\"&&(n.preventDefault(),console.log(\"[ExampleComponent] Keyboard shortcut triggered!\"))}document.addEventListener(\"keydown\",o),t.push(()=>document.removeEventListener(\"keydown\",o));for(let n of e){let i=()=>{console.log(\"[ExampleComponent] Clicked!\")};n.addEventListener(\"click\",i),t.push(()=>n.removeEventListener(\"click\",i))}typeof window<\"u\"&&window.addCleanup&&window.addCleanup(()=>{t.forEach(n=>n())}),console.log(\"[ExampleComponent] Initialized with\",e.length,\"component(s)\")}document.addEventListener(\"nav\",e=>{let t=e.detail?.url||l();console.log(\"[ExampleComponent] Navigation to:\",t),r()});document.addEventListener(\"render\",()=>{console.log(\"[ExampleComponent] Render event - re-initializing\"),r()});document.addEventListener(\"prenav\",()=>{let e=document.querySelector(\".example-component\");e&&sessionStorage.setItem(\"exampleScrollTop\",e.scrollTop?.toString()||\"0\")});\n","import type {\n QuartzComponent,\n QuartzComponentProps,\n QuartzComponentConstructor,\n} from \"@quartz-community/types\";\nimport { classNames } from \"../util/lang\";\nimport style from \"./styles/example.scss\";\n// @ts-expect-error - inline script import handled by Quartz bundler\nimport script from \"./scripts/example.inline.ts\";\n\nexport interface ExampleComponentOptions {\n prefix?: string;\n suffix?: string;\n className?: string;\n}\n\nexport default ((opts?: ExampleComponentOptions) => {\n const { prefix = \"\", suffix = \"\", className = \"example-component\" } = opts ?? {};\n\n const Component: QuartzComponent = (props: QuartzComponentProps) => {\n const frontmatter = props.fileData?.frontmatter as { title?: string } | undefined;\n const title = frontmatter?.title ?? \"Untitled\";\n const fullText = `${prefix}${title}${suffix}`;\n\n return
{fullText}
;\n };\n\n Component.css = style;\n Component.afterDOMLoaded = script;\n\n return Component;\n}) satisfies QuartzComponentConstructor;\n","#stacked-pages-container:not(.binder-active) {\n display: none;\n}\n#stacked-pages-container.binder-active {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n pointer-events: none;\n z-index: 99;\n display: flex;\n justify-content: space-between;\n align-items: stretch;\n}\n\nbody.has-binder-left .page {\n padding-left: 40px;\n}\n\nbody.has-binder-right .page {\n padding-right: 40px;\n}\n\n.binder-strip {\n pointer-events: auto;\n display: flex;\n flex-direction: column;\n gap: 0;\n padding: 0;\n justify-content: stretch;\n align-items: stretch;\n z-index: 100;\n width: 40px;\n height: 100%;\n}\n\n.binder-strip-left {\n align-self: flex-start;\n}\n\n.binder-strip-right {\n align-self: flex-end;\n margin-left: auto;\n}\n\n.binder-tab {\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n gap: 4px;\n padding: 8px 0;\n cursor: pointer;\n background: var(--lightgray);\n border: 1px solid var(--lightgray);\n transition: background 0.15s ease, transform 0.15s ease, border-color 0.15s ease;\n width: 100%;\n flex: 1;\n position: relative;\n writing-mode: vertical-lr;\n overflow: hidden;\n}\n.binder-tab:hover {\n background: var(--light);\n}\n\n.binder-tab.binder-tab-active {\n background: var(--light);\n z-index: 101;\n cursor: default;\n}\n.binder-tab.binder-tab-active.binder-tab-left {\n border-right: none;\n border-left: 3px solid var(--secondary);\n border-radius: 6px 0 0 6px;\n}\n.binder-tab.binder-tab-active.binder-tab-right {\n border-left: none;\n border-right: 3px solid var(--secondary);\n border-radius: 0 6px 6px 0;\n}\n\n.binder-tab:not(.binder-tab-active) {\n color: var(--gray);\n}\n.binder-tab:not(.binder-tab-active).binder-tab-left {\n border-radius: 6px 0 0 6px;\n border-right: 2px solid var(--secondary);\n border-left: 1px solid var(--lightgray);\n}\n.binder-tab:not(.binder-tab-active).binder-tab-left:hover {\n transform: translateX(4px);\n}\n.binder-tab:not(.binder-tab-active).binder-tab-right {\n border-radius: 0 6px 6px 0;\n border-left: 2px solid var(--secondary);\n border-right: 1px solid var(--lightgray);\n}\n.binder-tab:not(.binder-tab-active).binder-tab-right:hover {\n transform: translateX(-4px);\n}\n\n.binder-spine {\n display: none;\n}\n\n.binder-label {\n font-size: 1rem;\n line-height: 1.2;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n color: var(--darkgray);\n user-select: none;\n transform: rotate(180deg);\n text-align: left;\n}\n\n.binder-tab-active .binder-label {\n font-weight: bold;\n color: var(--dark);\n}\n\n.binder-close {\n appearance: none;\n background: none;\n border: none;\n cursor: pointer;\n font-size: 1rem;\n line-height: 1;\n color: var(--gray);\n padding: 2px;\n flex-shrink: 0;\n opacity: 0;\n transition: opacity 0.15s ease, color 0.15s ease;\n transform: rotate(180deg);\n}\n.binder-close:hover {\n color: var(--dark);\n background: rgba(0, 0, 0, 0.05);\n border-radius: 4px;\n}\n\n.binder-tab:hover .binder-close {\n opacity: 1;\n}","var g=\"stacked-pages-state\";function m(){let e=window.location.pathname;return e.startsWith(\"/\")&&(e=e.slice(1)),e.endsWith(\"/\")&&(e=e.slice(0,-1)),e||\"index\"}function w(){return document.querySelector(\"h1\")?.textContent?.trim()||document.title||m()}function l(){try{let e=sessionStorage.getItem(g);if(e){let t=JSON.parse(e);if(Array.isArray(t.tabs)&&typeof t.activeIndex==\"number\")return t}}catch{}return{tabs:[],activeIndex:-1}}function c(e){try{sessionStorage.setItem(g,JSON.stringify(e))}catch{}}function p(e){return{maxTabs:parseInt(e.dataset.maxTabs||\"8\",10),mobileBreakpoint:parseInt(e.dataset.mobileBreakpoint||\"800\",10),showSpines:e.dataset.showSpines!==\"false\",animate:e.dataset.animate!==\"false\"}}function o(e,t){let r=p(e);if(window.innerWidth0){let i=document.createElement(\"div\");i.className=\"binder-strip binder-strip-left\";for(let a=0;a0){let i=document.createElement(\"div\");i.className=\"binder-strip binder-strip-right\";for(let a=0;a0),document.body.classList.toggle(\"has-binder-right\",d.length>0)}function u(e,t,r,n,d){let i=document.createElement(\"div\");if(i.className=`binder-tab binder-tab-${r}`,i.dataset.index=String(t),t===n.activeIndex&&i.classList.add(\"binder-tab-active\"),d.showSpines){let s=document.createElement(\"div\");s.className=\"binder-spine\",i.appendChild(s)}let a=document.createElement(\"span\");if(a.className=\"binder-label\",a.textContent=e.title,i.appendChild(a),n.tabs.length>=2){let s=document.createElement(\"button\");s.className=\"binder-close\",s.textContent=\"\\xD7\",s.setAttribute(\"aria-label\",`Close ${e.title}`),s.addEventListener(\"click\",v=>{v.stopPropagation(),I(t)}),i.appendChild(s)}return i.addEventListener(\"click\",()=>{h(t)}),i}function h(e){let t=l();if(e<0||e>=t.tabs.length)return;let r=t.tabs[e];t.activeIndex=e,c(t);let n=new URL(`/${r.slug}`,window.location.origin);window.spaNavigate?window.spaNavigate(n,!1):window.location.href=n.toString()}function I(e){let t=l();if(t.tabs.length<2)return;let r=e===t.activeIndex;t.tabs.splice(e,1),r?(t.activeIndex=Math.min(e,t.tabs.length-1),c(t),h(t.activeIndex)):(ea.slug===t);if(i>=0)n.tabs[i].title=r,n.activeIndex=i;else{let a={slug:t,title:r},s=n.activeIndex+1;for(n.tabs.splice(s,0,a),n.activeIndex=s;n.tabs.length>d.maxTabs;)n.activeIndex>0?(n.tabs.shift(),n.activeIndex--):n.tabs.pop()}c(n),o(e,n)}function b(){let e=document.getElementById(\"stacked-pages-container\");e&&o(e,l())}function x(){S();let e=()=>b();window.addEventListener(\"resize\",e),window.addCleanup&&window.addCleanup(()=>window.removeEventListener(\"resize\",e))}typeof document<\"u\"&&(document.addEventListener(\"nav\",()=>{x()}),document.addEventListener(\"render\",()=>{b()}));\n","import type {\n QuartzComponent,\n QuartzComponentProps,\n QuartzComponentConstructor,\n} from \"@quartz-community/types\";\nimport type { StackedPagesOptions } from \"../types\";\nimport style from \"./styles/stacked.scss\";\n// @ts-expect-error - inline script import handled by Quartz bundler\nimport script from \"./scripts/stacked.inline.ts\";\n\nexport interface StackedPagesComponentOptions {\n maxTabs?: number;\n mobileBreakpoint?: number;\n showSpines?: boolean;\n animateTransitions?: boolean;\n}\n\nexport default ((opts?: StackedPagesComponentOptions) => {\n const {\n maxTabs = 8,\n mobileBreakpoint = 800,\n showSpines = true,\n animateTransitions = true,\n } = opts ?? {};\n\n const Component: QuartzComponent = (_props: QuartzComponentProps) => {\n return (\n \n );\n };\n\n Component.css = style;\n Component.afterDOMLoaded = script;\n\n return Component;\n}) satisfies QuartzComponentConstructor;\n"]} \ No newline at end of file diff --git a/dist/index.js b/dist/index.js index 0147469..c068443 100644 --- a/dist/index.js +++ b/dist/index.js @@ -191,7 +191,7 @@ function classNames(...classes) { var example_default = ".example-component {\n padding: 8px 16px;\n background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\n color: white;\n border-radius: 4px;\n font-weight: 600;\n display: inline-block;\n}"; // src/components/scripts/example.inline.ts -var example_inline_default = 'function c(){let e=window.location.pathname;return e.startsWith("/")&&(e=e.slice(1)),e.endsWith("/")&&(e=e.slice(0,-1)),e||"index"}function r(){let e=document.querySelectorAll(".example-component");if(e.length===0)return;let t=[];function o(n){(n.ctrlKey||n.metaKey)&&n.shiftKey&&n.key.toLowerCase()==="e"&&(n.preventDefault(),console.log("[ExampleComponent] Keyboard shortcut triggered!"))}document.addEventListener("keydown",o),t.push(()=>document.removeEventListener("keydown",o));for(let n of e){let i=()=>{console.log("[ExampleComponent] Clicked!")};n.addEventListener("click",i),t.push(()=>n.removeEventListener("click",i))}typeof window<"u"&&window.addCleanup&&window.addCleanup(()=>{t.forEach(n=>n())}),console.log("[ExampleComponent] Initialized with",e.length,"component(s)")}document.addEventListener("nav",e=>{let t=e.detail?.url||c();console.log("[ExampleComponent] Navigation to:",t),r()});document.addEventListener("render",()=>{console.log("[ExampleComponent] Render event - re-initializing"),r()});document.addEventListener("prenav",()=>{let e=document.querySelector(".example-component");e&&sessionStorage.setItem("exampleScrollTop",e.scrollTop?.toString()||"0")});\n'; +var example_inline_default = 'function l(){let e=window.location.pathname;return e.startsWith("/")&&(e=e.slice(1)),e.endsWith("/")&&(e=e.slice(0,-1)),e||"index"}function r(){let e=document.querySelectorAll(".example-component");if(e.length===0)return;let t=[];function o(n){(n.ctrlKey||n.metaKey)&&n.shiftKey&&n.key.toLowerCase()==="e"&&(n.preventDefault(),console.log("[ExampleComponent] Keyboard shortcut triggered!"))}document.addEventListener("keydown",o),t.push(()=>document.removeEventListener("keydown",o));for(let n of e){let i=()=>{console.log("[ExampleComponent] Clicked!")};n.addEventListener("click",i),t.push(()=>n.removeEventListener("click",i))}typeof window<"u"&&window.addCleanup&&window.addCleanup(()=>{t.forEach(n=>n())}),console.log("[ExampleComponent] Initialized with",e.length,"component(s)")}document.addEventListener("nav",e=>{let t=e.detail?.url||l();console.log("[ExampleComponent] Navigation to:",t),r()});document.addEventListener("render",()=>{console.log("[ExampleComponent] Render event - re-initializing"),r()});document.addEventListener("prenav",()=>{let e=document.querySelector(".example-component");e&&sessionStorage.setItem("exampleScrollTop",e.scrollTop?.toString()||"0")});\n'; var ExampleComponent_default = ((opts) => { const { prefix = "", suffix = "", className = "example-component" } = opts ?? {}; const Component = (props) => { diff --git a/dist/index.js.map b/dist/index.js.map index 08d6ea9..92621bf 100644 --- a/dist/index.js.map +++ b/dist/index.js.map @@ -1 +1 @@ -{"version":3,"sources":["../src/transformer.ts","../src/filter.ts","../src/emitter.ts","../src/util/lang.ts","../src/components/styles/example.scss","../src/components/scripts/example.inline.ts","../src/components/ExampleComponent.tsx","../src/components/styles/stacked.scss","../src/components/scripts/stacked.inline.ts","../src/components/StackedPages.tsx"],"names":["defaultOptions","jsx"],"mappings":"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","file":"index.js","sourcesContent":["import type { PluggableList, Plugin } from \"unified\";\nimport type { Root as MdastRoot } from \"mdast\";\nimport type { Root as HastRoot, Element } from \"hast\";\nimport type { VFile } from \"vfile\";\nimport remarkGfm from \"remark-gfm\";\nimport rehypeSlug from \"rehype-slug\";\nimport { findAndReplace } from \"mdast-util-find-and-replace\";\nimport { visit } from \"unist-util-visit\";\nimport type { QuartzTransformerPlugin, BuildCtx } from \"@quartz-community/types\";\nimport type { ExampleTransformerOptions } from \"./types\";\n\nconst defaultOptions: ExampleTransformerOptions = {\n highlightToken: \"==\",\n headingClass: \"example-plugin-heading\",\n enableGfm: true,\n addHeadingSlugs: true,\n};\n\nconst escapeRegExp = (value: string) => value.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n\nconst remarkHighlightToken = (token: string): Plugin<[], MdastRoot> => {\n const escapedToken = escapeRegExp(token);\n const pattern = new RegExp(`${escapedToken}([^\\n]+?)${escapedToken}`, \"g\");\n return () => (tree: MdastRoot, _file: VFile) => {\n findAndReplace(tree, [\n [\n pattern,\n (_match: string, value: string) => ({\n type: \"strong\",\n children: [{ type: \"text\", value }],\n }),\n ],\n ]);\n };\n};\n\nconst rehypeHeadingClass = (className: string): Plugin<[], HastRoot> => {\n return () => (tree: HastRoot, _file: VFile) => {\n visit(tree, \"element\", (node: Element) => {\n if (!/^h[1-6]$/.test(node.tagName)) {\n return;\n }\n\n const existing = node.properties?.className;\n const classes: string[] = Array.isArray(existing)\n ? existing.filter((value): value is string => typeof value === \"string\")\n : typeof existing === \"string\"\n ? [existing]\n : [];\n node.properties = {\n ...node.properties,\n className: [...classes, className],\n };\n });\n };\n};\n\n/**\n * Example transformer showing remark/rehype usage and resource injection.\n */\nexport const ExampleTransformer: QuartzTransformerPlugin> = (\n userOptions?: Partial,\n) => {\n const options = { ...defaultOptions, ...userOptions };\n return {\n name: \"ExampleTransformer\",\n textTransform(_ctx: BuildCtx, src: string) {\n return src.endsWith(\"\\n\") ? src : `${src}\\n`;\n },\n markdownPlugins(): PluggableList {\n const plugins: PluggableList = [remarkHighlightToken(options.highlightToken)];\n if (options.enableGfm) {\n plugins.unshift(remarkGfm);\n }\n return plugins;\n },\n htmlPlugins(): PluggableList {\n const plugins: PluggableList = [rehypeHeadingClass(options.headingClass)];\n if (options.addHeadingSlugs) {\n plugins.unshift(rehypeSlug);\n }\n return plugins;\n },\n externalResources() {\n return {\n css: [\n {\n content: `.${options.headingClass} { letter-spacing: 0.02em; }`,\n inline: true,\n },\n ],\n js: [\n {\n contentType: \"inline\",\n loadTime: \"afterDOMReady\",\n script: \"document.documentElement.dataset.exampleTransformer = 'true'\",\n },\n ],\n additionalHead: [],\n };\n },\n };\n};\n","import type { QuartzFilterPlugin, ProcessedContent, BuildCtx } from \"@quartz-community/types\";\nimport type { ExampleFilterOptions } from \"./types\";\n\nconst defaultOptions: ExampleFilterOptions = {\n allowDrafts: false,\n excludeTags: [\"private\"],\n excludePathPrefixes: [\"_drafts/\", \"_private/\"],\n};\n\nconst normalizeTag = (tag: unknown) => (typeof tag === \"string\" ? tag.trim().toLowerCase() : \"\");\n\nconst includesTag = (tags: unknown, excludedTags: string[]) => {\n if (!Array.isArray(tags)) {\n return false;\n }\n\n const normalizedExcluded = excludedTags.map((tag) => tag.toLowerCase());\n return tags.some((tag) => normalizedExcluded.includes(normalizeTag(tag)));\n};\n\n/**\n * Example filter that removes drafts, tagged pages, and excluded path prefixes.\n */\nexport const ExampleFilter: QuartzFilterPlugin> = (\n userOptions?: Partial,\n) => {\n const options = { ...defaultOptions, ...userOptions };\n return {\n name: \"ExampleFilter\",\n shouldPublish(_ctx: BuildCtx, [_tree, vfile]: ProcessedContent) {\n const frontmatter = (vfile.data?.frontmatter ?? {}) as {\n draft?: boolean | string;\n tags?: string[];\n };\n const isDraft = frontmatter.draft === true || frontmatter.draft === \"true\";\n if (isDraft && !options.allowDrafts) {\n return false;\n }\n\n if (includesTag(frontmatter.tags, options.excludeTags)) {\n return false;\n }\n\n const filePath = typeof vfile.data?.filePath === \"string\" ? vfile.data.filePath : \"\";\n const normalizedPath = filePath.replace(/\\\\/g, \"/\");\n if (options.excludePathPrefixes.some((prefix) => normalizedPath.startsWith(prefix))) {\n return false;\n }\n\n return true;\n },\n };\n};\n","import path from \"node:path\";\nimport fs from \"node:fs/promises\";\nimport type {\n QuartzEmitterPlugin,\n ProcessedContent,\n BuildCtx,\n FilePath,\n FullSlug,\n} from \"@quartz-community/types\";\nimport type { ExampleEmitterOptions } from \"./types\";\n\nconst defaultOptions: ExampleEmitterOptions = {\n manifestSlug: \"plugin-manifest\",\n includeFrontmatter: true,\n metadata: {\n generator: \"Quartz Plugin Template\",\n },\n};\n\nconst joinSegments = (...segments: string[]) =>\n segments\n .filter((segment) => segment.length > 0)\n .join(\"/\")\n .replace(/\\/+/g, \"/\") as FilePath;\n\nconst writeFile = async (\n outputDir: string,\n slug: FullSlug,\n ext: `.${string}` | \"\",\n content: string,\n) => {\n const outputPath = joinSegments(outputDir, `${slug}${ext}`) as FilePath;\n await fs.mkdir(path.dirname(outputPath), { recursive: true });\n await fs.writeFile(outputPath, content);\n return outputPath;\n};\n\n/**\n * Example emitter that writes a JSON manifest of content metadata.\n */\nexport const ExampleEmitter: QuartzEmitterPlugin> = (\n userOptions?: Partial,\n) => {\n const options = { ...defaultOptions, ...userOptions };\n const emitManifest = async (ctx: BuildCtx, content: ProcessedContent[]) => {\n const manifest = {\n ...options.metadata,\n generatedAt: new Date().toISOString(),\n pages: content.map(([_tree, vfile]) => {\n const frontmatter = (vfile.data?.frontmatter ?? {}) as {\n title?: string;\n tags?: string[];\n [key: string]: unknown;\n };\n return {\n slug: vfile.data?.slug ?? null,\n title: frontmatter.title ?? null,\n tags: frontmatter.tags ?? null,\n filePath: vfile.data?.filePath ?? null,\n frontmatter: options.includeFrontmatter ? frontmatter : undefined,\n };\n }),\n };\n\n let json = `${JSON.stringify(manifest, null, 2)}\\n`;\n if (options.transformManifest) {\n json = options.transformManifest(json);\n }\n\n const output = await writeFile(\n ctx.argv.output,\n options.manifestSlug as FullSlug,\n \".json\",\n json,\n );\n return [output];\n };\n\n return {\n name: \"ExampleEmitter\",\n async emit(ctx, content, _resources) {\n return emitManifest(ctx, content);\n },\n async *partialEmit(ctx, content, _resources, _changeEvents) {\n const outputPaths = await emitManifest(ctx, content);\n for (const outputPath of outputPaths) {\n yield outputPath;\n }\n },\n };\n};\n","export function classNames(...classes: (string | undefined | null | false)[]): string {\n return classes.filter(Boolean).join(\" \");\n}\n",".example-component {\n padding: 8px 16px;\n background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\n color: white;\n border-radius: 4px;\n font-weight: 600;\n display: inline-block;\n}","function c(){let e=window.location.pathname;return e.startsWith(\"/\")&&(e=e.slice(1)),e.endsWith(\"/\")&&(e=e.slice(0,-1)),e||\"index\"}function r(){let e=document.querySelectorAll(\".example-component\");if(e.length===0)return;let t=[];function o(n){(n.ctrlKey||n.metaKey)&&n.shiftKey&&n.key.toLowerCase()===\"e\"&&(n.preventDefault(),console.log(\"[ExampleComponent] Keyboard shortcut triggered!\"))}document.addEventListener(\"keydown\",o),t.push(()=>document.removeEventListener(\"keydown\",o));for(let n of e){let i=()=>{console.log(\"[ExampleComponent] Clicked!\")};n.addEventListener(\"click\",i),t.push(()=>n.removeEventListener(\"click\",i))}typeof window<\"u\"&&window.addCleanup&&window.addCleanup(()=>{t.forEach(n=>n())}),console.log(\"[ExampleComponent] Initialized with\",e.length,\"component(s)\")}document.addEventListener(\"nav\",e=>{let t=e.detail?.url||c();console.log(\"[ExampleComponent] Navigation to:\",t),r()});document.addEventListener(\"render\",()=>{console.log(\"[ExampleComponent] Render event - re-initializing\"),r()});document.addEventListener(\"prenav\",()=>{let e=document.querySelector(\".example-component\");e&&sessionStorage.setItem(\"exampleScrollTop\",e.scrollTop?.toString()||\"0\")});\n","import type {\n QuartzComponent,\n QuartzComponentProps,\n QuartzComponentConstructor,\n} from \"@quartz-community/types\";\nimport { classNames } from \"../util/lang\";\nimport style from \"./styles/example.scss\";\n// @ts-expect-error - inline script import handled by Quartz bundler\nimport script from \"./scripts/example.inline.ts\";\n\nexport interface ExampleComponentOptions {\n prefix?: string;\n suffix?: string;\n className?: string;\n}\n\nexport default ((opts?: ExampleComponentOptions) => {\n const { prefix = \"\", suffix = \"\", className = \"example-component\" } = opts ?? {};\n\n const Component: QuartzComponent = (props: QuartzComponentProps) => {\n const frontmatter = props.fileData?.frontmatter as { title?: string } | undefined;\n const title = frontmatter?.title ?? \"Untitled\";\n const fullText = `${prefix}${title}${suffix}`;\n\n return
{fullText}
;\n };\n\n Component.css = style;\n Component.afterDOMLoaded = script;\n\n return Component;\n}) satisfies QuartzComponentConstructor;\n","#stacked-pages-container:not(.binder-active) {\n display: none;\n}\n#stacked-pages-container.binder-active {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n pointer-events: none;\n z-index: 99;\n display: flex;\n justify-content: space-between;\n align-items: stretch;\n}\n\nbody.has-binder-left .page {\n padding-left: 40px;\n}\n\nbody.has-binder-right .page {\n padding-right: 40px;\n}\n\n.binder-strip {\n pointer-events: auto;\n display: flex;\n flex-direction: column;\n gap: 0;\n padding: 0;\n justify-content: stretch;\n align-items: stretch;\n z-index: 100;\n width: 40px;\n height: 100%;\n}\n\n.binder-strip-left {\n align-self: flex-start;\n}\n\n.binder-strip-right {\n align-self: flex-end;\n margin-left: auto;\n}\n\n.binder-tab {\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n gap: 4px;\n padding: 8px 0;\n cursor: pointer;\n background: var(--lightgray);\n border: 1px solid var(--lightgray);\n transition: background 0.15s ease, transform 0.15s ease, border-color 0.15s ease;\n width: 100%;\n flex: 1;\n position: relative;\n writing-mode: vertical-lr;\n overflow: hidden;\n}\n.binder-tab:hover {\n background: var(--light);\n}\n\n.binder-tab.binder-tab-active {\n background: var(--light);\n z-index: 101;\n cursor: default;\n}\n.binder-tab.binder-tab-active.binder-tab-left {\n border-right: none;\n border-left: 3px solid var(--secondary);\n border-radius: 6px 0 0 6px;\n}\n.binder-tab.binder-tab-active.binder-tab-right {\n border-left: none;\n border-right: 3px solid var(--secondary);\n border-radius: 0 6px 6px 0;\n}\n\n.binder-tab:not(.binder-tab-active) {\n color: var(--gray);\n}\n.binder-tab:not(.binder-tab-active).binder-tab-left {\n border-radius: 6px 0 0 6px;\n border-right: 2px solid var(--secondary);\n border-left: 1px solid var(--lightgray);\n}\n.binder-tab:not(.binder-tab-active).binder-tab-left:hover {\n transform: translateX(4px);\n}\n.binder-tab:not(.binder-tab-active).binder-tab-right {\n border-radius: 0 6px 6px 0;\n border-left: 2px solid var(--secondary);\n border-right: 1px solid var(--lightgray);\n}\n.binder-tab:not(.binder-tab-active).binder-tab-right:hover {\n transform: translateX(-4px);\n}\n\n.binder-spine {\n display: none;\n}\n\n.binder-label {\n font-size: 1rem;\n line-height: 1.2;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n color: var(--darkgray);\n user-select: none;\n transform: rotate(180deg);\n text-align: left;\n}\n\n.binder-tab-active .binder-label {\n font-weight: bold;\n color: var(--dark);\n}\n\n.binder-close {\n appearance: none;\n background: none;\n border: none;\n cursor: pointer;\n font-size: 1rem;\n line-height: 1;\n color: var(--gray);\n padding: 2px;\n flex-shrink: 0;\n opacity: 0;\n transition: opacity 0.15s ease, color 0.15s ease;\n transform: rotate(180deg);\n}\n.binder-close:hover {\n color: var(--dark);\n background: rgba(0, 0, 0, 0.05);\n border-radius: 4px;\n}\n\n.binder-tab:hover .binder-close {\n opacity: 1;\n}","var g=\"stacked-pages-state\";function m(){let e=window.location.pathname;return e.startsWith(\"/\")&&(e=e.slice(1)),e.endsWith(\"/\")&&(e=e.slice(0,-1)),e||\"index\"}function w(){return document.querySelector(\"h1\")?.textContent?.trim()||document.title||m()}function l(){try{let e=sessionStorage.getItem(g);if(e){let t=JSON.parse(e);if(Array.isArray(t.tabs)&&typeof t.activeIndex==\"number\")return t}}catch{}return{tabs:[],activeIndex:-1}}function c(e){try{sessionStorage.setItem(g,JSON.stringify(e))}catch{}}function p(e){return{maxTabs:parseInt(e.dataset.maxTabs||\"8\",10),mobileBreakpoint:parseInt(e.dataset.mobileBreakpoint||\"800\",10),showSpines:e.dataset.showSpines!==\"false\",animate:e.dataset.animate!==\"false\"}}function o(e,t){let r=p(e);if(window.innerWidth0){let i=document.createElement(\"div\");i.className=\"binder-strip binder-strip-left\";for(let a=0;a0){let i=document.createElement(\"div\");i.className=\"binder-strip binder-strip-right\";for(let a=0;a0),document.body.classList.toggle(\"has-binder-right\",d.length>0)}function u(e,t,r,n,d){let i=document.createElement(\"div\");if(i.className=`binder-tab binder-tab-${r}`,i.dataset.index=String(t),t===n.activeIndex&&i.classList.add(\"binder-tab-active\"),d.showSpines){let s=document.createElement(\"div\");s.className=\"binder-spine\",i.appendChild(s)}let a=document.createElement(\"span\");if(a.className=\"binder-label\",a.textContent=e.title,i.appendChild(a),n.tabs.length>=2){let s=document.createElement(\"button\");s.className=\"binder-close\",s.textContent=\"\\xD7\",s.setAttribute(\"aria-label\",`Close ${e.title}`),s.addEventListener(\"click\",v=>{v.stopPropagation(),I(t)}),i.appendChild(s)}return i.addEventListener(\"click\",()=>{h(t)}),i}function h(e){let t=l();if(e<0||e>=t.tabs.length)return;let r=t.tabs[e];t.activeIndex=e,c(t);let n=new URL(`/${r.slug}`,window.location.origin);window.spaNavigate?window.spaNavigate(n,!1):window.location.href=n.toString()}function I(e){let t=l();if(t.tabs.length<2)return;let r=e===t.activeIndex;t.tabs.splice(e,1),r?(t.activeIndex=Math.min(e,t.tabs.length-1),c(t),h(t.activeIndex)):(ea.slug===t);if(i>=0)n.tabs[i].title=r,n.activeIndex=i;else{let a={slug:t,title:r},s=n.activeIndex+1;for(n.tabs.splice(s,0,a),n.activeIndex=s;n.tabs.length>d.maxTabs;)n.activeIndex>0?(n.tabs.shift(),n.activeIndex--):n.tabs.pop()}c(n),o(e,n)}function b(){let e=document.getElementById(\"stacked-pages-container\");e&&o(e,l())}function x(){S();let e=()=>b();window.addEventListener(\"resize\",e),window.addCleanup&&window.addCleanup(()=>window.removeEventListener(\"resize\",e))}typeof document<\"u\"&&(document.addEventListener(\"nav\",()=>{x()}),document.addEventListener(\"render\",()=>{b()}));\n","import type {\n QuartzComponent,\n QuartzComponentProps,\n QuartzComponentConstructor,\n} from \"@quartz-community/types\";\nimport type { StackedPagesOptions } from \"../types\";\nimport style from \"./styles/stacked.scss\";\n// @ts-expect-error - inline script import handled by Quartz bundler\nimport script from \"./scripts/stacked.inline.ts\";\n\nexport interface StackedPagesComponentOptions {\n maxTabs?: number;\n mobileBreakpoint?: number;\n showSpines?: boolean;\n animateTransitions?: boolean;\n}\n\nexport default ((opts?: StackedPagesComponentOptions) => {\n const {\n maxTabs = 8,\n mobileBreakpoint = 800,\n showSpines = true,\n animateTransitions = true,\n } = opts ?? {};\n\n const Component: QuartzComponent = (_props: QuartzComponentProps) => {\n return (\n \n );\n };\n\n Component.css = style;\n Component.afterDOMLoaded = script;\n\n return Component;\n}) satisfies QuartzComponentConstructor;\n"]} \ No newline at end of file +{"version":3,"sources":["../src/transformer.ts","../src/filter.ts","../src/emitter.ts","../src/util/lang.ts","../src/components/styles/example.scss","../src/components/scripts/example.inline.ts","../src/components/ExampleComponent.tsx","../src/components/styles/stacked.scss","../src/components/scripts/stacked.inline.ts","../src/components/StackedPages.tsx"],"names":["defaultOptions","jsx"],"mappings":";;;;;;;;;AAWA,IAAM,cAAA,GAA4C;AAAA,EAChD,cAAA,EAAgB,IAAA;AAAA,EAChB,YAAA,EAAc,wBAAA;AAAA,EACd,SAAA,EAAW,IAAA;AAAA,EACX,eAAA,EAAiB;AACnB,CAAA;AAEA,IAAM,eAAe,CAAC,KAAA,KAAkB,KAAA,CAAM,OAAA,CAAQ,uBAAuB,MAAM,CAAA;AAEnF,IAAM,oBAAA,GAAuB,CAAC,KAAA,KAAyC;AACrE,EAAA,MAAM,YAAA,GAAe,aAAa,KAAK,CAAA;AACvC,EAAA,MAAM,OAAA,GAAU,IAAI,MAAA,CAAO,CAAA,EAAG,YAAY,CAAA;AAAA,IAAA,EAAY,YAAY,IAAI,GAAG,CAAA;AACzE,EAAA,OAAO,MAAM,CAAC,IAAA,EAAiB,KAAA,KAAiB;AAC9C,IAAA,cAAA,CAAe,IAAA,EAAM;AAAA,MACnB;AAAA,QACE,OAAA;AAAA,QACA,CAAC,QAAgB,KAAA,MAAmB;AAAA,UAClC,IAAA,EAAM,QAAA;AAAA,UACN,UAAU,CAAC,EAAE,IAAA,EAAM,MAAA,EAAQ,OAAO;AAAA,SACpC;AAAA;AACF,KACD,CAAA;AAAA,EACH,CAAA;AACF,CAAA;AAEA,IAAM,kBAAA,GAAqB,CAAC,SAAA,KAA4C;AACtE,EAAA,OAAO,MAAM,CAAC,IAAA,EAAgB,KAAA,KAAiB;AAC7C,IAAA,KAAA,CAAM,IAAA,EAAM,SAAA,EAAW,CAAC,IAAA,KAAkB;AACxC,MAAA,IAAI,CAAC,UAAA,CAAW,IAAA,CAAK,IAAA,CAAK,OAAO,CAAA,EAAG;AAClC,QAAA;AAAA,MACF;AAEA,MAAA,MAAM,QAAA,GAAW,KAAK,UAAA,EAAY,SAAA;AAClC,MAAA,MAAM,UAAoB,KAAA,CAAM,OAAA,CAAQ,QAAQ,CAAA,GAC5C,QAAA,CAAS,OAAO,CAAC,KAAA,KAA2B,OAAO,KAAA,KAAU,QAAQ,IACrE,OAAO,QAAA,KAAa,WAClB,CAAC,QAAQ,IACT,EAAC;AACP,MAAA,IAAA,CAAK,UAAA,GAAa;AAAA,QAChB,GAAG,IAAA,CAAK,UAAA;AAAA,QACR,SAAA,EAAW,CAAC,GAAG,OAAA,EAAS,SAAS;AAAA,OACnC;AAAA,IACF,CAAC,CAAA;AAAA,EACH,CAAA;AACF,CAAA;AAKO,IAAM,kBAAA,GAAkF,CAC7F,WAAA,KACG;AACH,EAAA,MAAM,OAAA,GAAU,EAAE,GAAG,cAAA,EAAgB,GAAG,WAAA,EAAY;AACpD,EAAA,OAAO;AAAA,IACL,IAAA,EAAM,oBAAA;AAAA,IACN,aAAA,CAAc,MAAgB,GAAA,EAAa;AACzC,MAAA,OAAO,IAAI,QAAA,CAAS,IAAI,CAAA,GAAI,GAAA,GAAM,GAAG,GAAG;AAAA,CAAA;AAAA,IAC1C,CAAA;AAAA,IACA,eAAA,GAAiC;AAC/B,MAAA,MAAM,OAAA,GAAyB,CAAC,oBAAA,CAAqB,OAAA,CAAQ,cAAc,CAAC,CAAA;AAC5E,MAAA,IAAI,QAAQ,SAAA,EAAW;AACrB,QAAA,OAAA,CAAQ,QAAQ,SAAS,CAAA;AAAA,MAC3B;AACA,MAAA,OAAO,OAAA;AAAA,IACT,CAAA;AAAA,IACA,WAAA,GAA6B;AAC3B,MAAA,MAAM,OAAA,GAAyB,CAAC,kBAAA,CAAmB,OAAA,CAAQ,YAAY,CAAC,CAAA;AACxE,MAAA,IAAI,QAAQ,eAAA,EAAiB;AAC3B,QAAA,OAAA,CAAQ,QAAQ,UAAU,CAAA;AAAA,MAC5B;AACA,MAAA,OAAO,OAAA;AAAA,IACT,CAAA;AAAA,IACA,iBAAA,GAAoB;AAClB,MAAA,OAAO;AAAA,QACL,GAAA,EAAK;AAAA,UACH;AAAA,YACE,OAAA,EAAS,CAAA,CAAA,EAAI,OAAA,CAAQ,YAAY,CAAA,4BAAA,CAAA;AAAA,YACjC,MAAA,EAAQ;AAAA;AACV,SACF;AAAA,QACA,EAAA,EAAI;AAAA,UACF;AAAA,YACE,WAAA,EAAa,QAAA;AAAA,YACb,QAAA,EAAU,eAAA;AAAA,YACV,MAAA,EAAQ;AAAA;AACV,SACF;AAAA,QACA,gBAAgB;AAAC,OACnB;AAAA,IACF;AAAA,GACF;AACF;;;ACnGA,IAAMA,eAAAA,GAAuC;AAAA,EAC3C,WAAA,EAAa,KAAA;AAAA,EACb,WAAA,EAAa,CAAC,SAAS,CAAA;AAAA,EACvB,mBAAA,EAAqB,CAAC,UAAA,EAAY,WAAW;AAC/C,CAAA;AAEA,IAAM,YAAA,GAAe,CAAC,GAAA,KAAkB,OAAO,GAAA,KAAQ,WAAW,GAAA,CAAI,IAAA,EAAK,CAAE,WAAA,EAAY,GAAI,EAAA;AAE7F,IAAM,WAAA,GAAc,CAAC,IAAA,EAAe,YAAA,KAA2B;AAC7D,EAAA,IAAI,CAAC,KAAA,CAAM,OAAA,CAAQ,IAAI,CAAA,EAAG;AACxB,IAAA,OAAO,KAAA;AAAA,EACT;AAEA,EAAA,MAAM,qBAAqB,YAAA,CAAa,GAAA,CAAI,CAAC,GAAA,KAAQ,GAAA,CAAI,aAAa,CAAA;AACtE,EAAA,OAAO,IAAA,CAAK,KAAK,CAAC,GAAA,KAAQ,mBAAmB,QAAA,CAAS,YAAA,CAAa,GAAG,CAAC,CAAC,CAAA;AAC1E,CAAA;AAKO,IAAM,aAAA,GAAmE,CAC9E,WAAA,KACG;AACH,EAAA,MAAM,OAAA,GAAU,EAAE,GAAGA,eAAAA,EAAgB,GAAG,WAAA,EAAY;AACpD,EAAA,OAAO;AAAA,IACL,IAAA,EAAM,eAAA;AAAA,IACN,aAAA,CAAc,IAAA,EAAgB,CAAC,KAAA,EAAO,KAAK,CAAA,EAAqB;AAC9D,MAAA,MAAM,WAAA,GAAe,KAAA,CAAM,IAAA,EAAM,WAAA,IAAe,EAAC;AAIjD,MAAA,MAAM,OAAA,GAAU,WAAA,CAAY,KAAA,KAAU,IAAA,IAAQ,YAAY,KAAA,KAAU,MAAA;AACpE,MAAA,IAAI,OAAA,IAAW,CAAC,OAAA,CAAQ,WAAA,EAAa;AACnC,QAAA,OAAO,KAAA;AAAA,MACT;AAEA,MAAA,IAAI,WAAA,CAAY,WAAA,CAAY,IAAA,EAAM,OAAA,CAAQ,WAAW,CAAA,EAAG;AACtD,QAAA,OAAO,KAAA;AAAA,MACT;AAEA,MAAA,MAAM,QAAA,GAAW,OAAO,KAAA,CAAM,IAAA,EAAM,aAAa,QAAA,GAAW,KAAA,CAAM,KAAK,QAAA,GAAW,EAAA;AAClF,MAAA,MAAM,cAAA,GAAiB,QAAA,CAAS,OAAA,CAAQ,KAAA,EAAO,GAAG,CAAA;AAClD,MAAA,IAAI,OAAA,CAAQ,oBAAoB,IAAA,CAAK,CAAC,WAAW,cAAA,CAAe,UAAA,CAAW,MAAM,CAAC,CAAA,EAAG;AACnF,QAAA,OAAO,KAAA;AAAA,MACT;AAEA,MAAA,OAAO,IAAA;AAAA,IACT;AAAA,GACF;AACF;ACzCA,IAAMA,eAAAA,GAAwC;AAAA,EAC5C,YAAA,EAAc,iBAAA;AAAA,EACd,kBAAA,EAAoB,IAAA;AAAA,EACpB,QAAA,EAAU;AAAA,IACR,SAAA,EAAW;AAAA;AAEf,CAAA;AAEA,IAAM,eAAe,CAAA,GAAI,QAAA,KACvB,QAAA,CACG,MAAA,CAAO,CAAC,OAAA,KAAY,OAAA,CAAQ,MAAA,GAAS,CAAC,EACtC,IAAA,CAAK,GAAG,CAAA,CACR,OAAA,CAAQ,QAAQ,GAAG,CAAA;AAExB,IAAM,SAAA,GAAY,OAChB,SAAA,EACA,IAAA,EACA,KACA,OAAA,KACG;AACH,EAAA,MAAM,aAAa,YAAA,CAAa,SAAA,EAAW,GAAG,IAAI,CAAA,EAAG,GAAG,CAAA,CAAE,CAAA;AAC1D,EAAA,MAAM,EAAA,CAAG,MAAM,IAAA,CAAK,OAAA,CAAQ,UAAU,CAAA,EAAG,EAAE,SAAA,EAAW,IAAA,EAAM,CAAA;AAC5D,EAAA,MAAM,EAAA,CAAG,SAAA,CAAU,UAAA,EAAY,OAAO,CAAA;AACtC,EAAA,OAAO,UAAA;AACT,CAAA;AAKO,IAAM,cAAA,GAAsE,CACjF,WAAA,KACG;AACH,EAAA,MAAM,OAAA,GAAU,EAAE,GAAGA,eAAAA,EAAgB,GAAG,WAAA,EAAY;AACpD,EAAA,MAAM,YAAA,GAAe,OAAO,GAAA,EAAe,OAAA,KAAgC;AACzE,IAAA,MAAM,QAAA,GAAW;AAAA,MACf,GAAG,OAAA,CAAQ,QAAA;AAAA,MACX,WAAA,EAAA,iBAAa,IAAI,IAAA,EAAK,EAAE,WAAA,EAAY;AAAA,MACpC,OAAO,OAAA,CAAQ,GAAA,CAAI,CAAC,CAAC,KAAA,EAAO,KAAK,CAAA,KAAM;AACrC,QAAA,MAAM,WAAA,GAAe,KAAA,CAAM,IAAA,EAAM,WAAA,IAAe,EAAC;AAKjD,QAAA,OAAO;AAAA,UACL,IAAA,EAAM,KAAA,CAAM,IAAA,EAAM,IAAA,IAAQ,IAAA;AAAA,UAC1B,KAAA,EAAO,YAAY,KAAA,IAAS,IAAA;AAAA,UAC5B,IAAA,EAAM,YAAY,IAAA,IAAQ,IAAA;AAAA,UAC1B,QAAA,EAAU,KAAA,CAAM,IAAA,EAAM,QAAA,IAAY,IAAA;AAAA,UAClC,WAAA,EAAa,OAAA,CAAQ,kBAAA,GAAqB,WAAA,GAAc;AAAA,SAC1D;AAAA,MACF,CAAC;AAAA,KACH;AAEA,IAAA,IAAI,OAAO,CAAA,EAAG,IAAA,CAAK,UAAU,QAAA,EAAU,IAAA,EAAM,CAAC,CAAC;AAAA,CAAA;AAC/C,IAAA,IAAI,QAAQ,iBAAA,EAAmB;AAC7B,MAAA,IAAA,GAAO,OAAA,CAAQ,kBAAkB,IAAI,CAAA;AAAA,IACvC;AAEA,IAAA,MAAM,SAAS,MAAM,SAAA;AAAA,MACnB,IAAI,IAAA,CAAK,MAAA;AAAA,MACT,OAAA,CAAQ,YAAA;AAAA,MACR,OAAA;AAAA,MACA;AAAA,KACF;AACA,IAAA,OAAO,CAAC,MAAM,CAAA;AAAA,EAChB,CAAA;AAEA,EAAA,OAAO;AAAA,IACL,IAAA,EAAM,gBAAA;AAAA,IACN,MAAM,IAAA,CAAK,GAAA,EAAK,OAAA,EAAS,UAAA,EAAY;AACnC,MAAA,OAAO,YAAA,CAAa,KAAK,OAAO,CAAA;AAAA,IAClC,CAAA;AAAA,IACA,OAAO,WAAA,CAAY,GAAA,EAAK,OAAA,EAAS,YAAY,aAAA,EAAe;AAC1D,MAAA,MAAM,WAAA,GAAc,MAAM,YAAA,CAAa,GAAA,EAAK,OAAO,CAAA;AACnD,MAAA,KAAA,MAAW,cAAc,WAAA,EAAa;AACpC,QAAA,MAAM,UAAA;AAAA,MACR;AAAA,IACF;AAAA,GACF;AACF;;;AC1FO,SAAS,cAAc,OAAA,EAAwD;AACpF,EAAA,OAAO,OAAA,CAAQ,MAAA,CAAO,OAAO,CAAA,CAAE,KAAK,GAAG,CAAA;AACzC;;;ACFA,IAAA,eAAA,GAAA,wMAAA;;;ACAA,IAAA,sBAAA,GAAA,mqCAAA;ACgBA,IAAO,wBAAA,IAAS,CAAC,IAAA,KAAmC;AAClD,EAAA,MAAM,EAAE,SAAS,EAAA,EAAI,MAAA,GAAS,IAAI,SAAA,GAAY,mBAAA,EAAoB,GAAI,IAAA,IAAQ,EAAC;AAE/E,EAAA,MAAM,SAAA,GAA6B,CAAC,KAAA,KAAgC;AAClE,IAAA,MAAM,WAAA,GAAc,MAAM,QAAA,EAAU,WAAA;AACpC,IAAA,MAAM,KAAA,GAAQ,aAAa,KAAA,IAAS,UAAA;AACpC,IAAA,MAAM,WAAW,CAAA,EAAG,MAAM,CAAA,EAAG,KAAK,GAAG,MAAM,CAAA,CAAA;AAE3C,IAAA,2BAAQ,KAAA,EAAA,EAAI,KAAA,EAAO,UAAA,CAAW,SAAS,GAAI,QAAA,EAAA,QAAA,EAAS,CAAA;AAAA,EACtD,CAAA;AAEA,EAAA,SAAA,CAAU,GAAA,GAAM,eAAA;AAChB,EAAA,SAAA,CAAU,cAAA,GAAiB,sBAAA;AAE3B,EAAA,OAAO,SAAA;AACT,CAAA;;;AC/BA,IAAA,eAAA,GAAA,qhGAAA;;;ACAA,IAAA,sBAAA,GAAA,27GAAA;ACiBA,IAAO,oBAAA,IAAS,CAAC,IAAA,KAAwC;AACvD,EAAA,MAAM;AAAA,IACJ,OAAA,GAAU,CAAA;AAAA,IACV,gBAAA,GAAmB,GAAA;AAAA,IACnB,UAAA,GAAa,IAAA;AAAA,IACb,kBAAA,GAAqB;AAAA,GACvB,GAAI,QAAQ,EAAC;AAEb,EAAA,MAAM,SAAA,GAA6B,CAAC,MAAA,KAAiC;AACnE,IAAA,uBACEC,GAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,EAAA,EAAG,yBAAA;AAAA,QACH,eAAA,EAAe,OAAA;AAAA,QACf,wBAAA,EAAwB,gBAAA;AAAA,QACxB,kBAAA,EAAkB,UAAA;AAAA,QAClB,cAAA,EAAc;AAAA;AAAA,KAChB;AAAA,EAEJ,CAAA;AAEA,EAAA,SAAA,CAAU,GAAA,GAAM,eAAA;AAChB,EAAA,SAAA,CAAU,cAAA,GAAiB,sBAAA;AAE3B,EAAA,OAAO,SAAA;AACT,CAAA","file":"index.js","sourcesContent":["import type { PluggableList, Plugin } from \"unified\";\nimport type { Root as MdastRoot } from \"mdast\";\nimport type { Root as HastRoot, Element } from \"hast\";\nimport type { VFile } from \"vfile\";\nimport remarkGfm from \"remark-gfm\";\nimport rehypeSlug from \"rehype-slug\";\nimport { findAndReplace } from \"mdast-util-find-and-replace\";\nimport { visit } from \"unist-util-visit\";\nimport type { QuartzTransformerPlugin, BuildCtx } from \"@quartz-community/types\";\nimport type { ExampleTransformerOptions } from \"./types\";\n\nconst defaultOptions: ExampleTransformerOptions = {\n highlightToken: \"==\",\n headingClass: \"example-plugin-heading\",\n enableGfm: true,\n addHeadingSlugs: true,\n};\n\nconst escapeRegExp = (value: string) => value.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n\nconst remarkHighlightToken = (token: string): Plugin<[], MdastRoot> => {\n const escapedToken = escapeRegExp(token);\n const pattern = new RegExp(`${escapedToken}([^\\n]+?)${escapedToken}`, \"g\");\n return () => (tree: MdastRoot, _file: VFile) => {\n findAndReplace(tree, [\n [\n pattern,\n (_match: string, value: string) => ({\n type: \"strong\",\n children: [{ type: \"text\", value }],\n }),\n ],\n ]);\n };\n};\n\nconst rehypeHeadingClass = (className: string): Plugin<[], HastRoot> => {\n return () => (tree: HastRoot, _file: VFile) => {\n visit(tree, \"element\", (node: Element) => {\n if (!/^h[1-6]$/.test(node.tagName)) {\n return;\n }\n\n const existing = node.properties?.className;\n const classes: string[] = Array.isArray(existing)\n ? existing.filter((value): value is string => typeof value === \"string\")\n : typeof existing === \"string\"\n ? [existing]\n : [];\n node.properties = {\n ...node.properties,\n className: [...classes, className],\n };\n });\n };\n};\n\n/**\n * Example transformer showing remark/rehype usage and resource injection.\n */\nexport const ExampleTransformer: QuartzTransformerPlugin> = (\n userOptions?: Partial,\n) => {\n const options = { ...defaultOptions, ...userOptions };\n return {\n name: \"ExampleTransformer\",\n textTransform(_ctx: BuildCtx, src: string) {\n return src.endsWith(\"\\n\") ? src : `${src}\\n`;\n },\n markdownPlugins(): PluggableList {\n const plugins: PluggableList = [remarkHighlightToken(options.highlightToken)];\n if (options.enableGfm) {\n plugins.unshift(remarkGfm);\n }\n return plugins;\n },\n htmlPlugins(): PluggableList {\n const plugins: PluggableList = [rehypeHeadingClass(options.headingClass)];\n if (options.addHeadingSlugs) {\n plugins.unshift(rehypeSlug);\n }\n return plugins;\n },\n externalResources() {\n return {\n css: [\n {\n content: `.${options.headingClass} { letter-spacing: 0.02em; }`,\n inline: true,\n },\n ],\n js: [\n {\n contentType: \"inline\",\n loadTime: \"afterDOMReady\",\n script: \"document.documentElement.dataset.exampleTransformer = 'true'\",\n },\n ],\n additionalHead: [],\n };\n },\n };\n};\n","import type { QuartzFilterPlugin, ProcessedContent, BuildCtx } from \"@quartz-community/types\";\nimport type { ExampleFilterOptions } from \"./types\";\n\nconst defaultOptions: ExampleFilterOptions = {\n allowDrafts: false,\n excludeTags: [\"private\"],\n excludePathPrefixes: [\"_drafts/\", \"_private/\"],\n};\n\nconst normalizeTag = (tag: unknown) => (typeof tag === \"string\" ? tag.trim().toLowerCase() : \"\");\n\nconst includesTag = (tags: unknown, excludedTags: string[]) => {\n if (!Array.isArray(tags)) {\n return false;\n }\n\n const normalizedExcluded = excludedTags.map((tag) => tag.toLowerCase());\n return tags.some((tag) => normalizedExcluded.includes(normalizeTag(tag)));\n};\n\n/**\n * Example filter that removes drafts, tagged pages, and excluded path prefixes.\n */\nexport const ExampleFilter: QuartzFilterPlugin> = (\n userOptions?: Partial,\n) => {\n const options = { ...defaultOptions, ...userOptions };\n return {\n name: \"ExampleFilter\",\n shouldPublish(_ctx: BuildCtx, [_tree, vfile]: ProcessedContent) {\n const frontmatter = (vfile.data?.frontmatter ?? {}) as {\n draft?: boolean | string;\n tags?: string[];\n };\n const isDraft = frontmatter.draft === true || frontmatter.draft === \"true\";\n if (isDraft && !options.allowDrafts) {\n return false;\n }\n\n if (includesTag(frontmatter.tags, options.excludeTags)) {\n return false;\n }\n\n const filePath = typeof vfile.data?.filePath === \"string\" ? vfile.data.filePath : \"\";\n const normalizedPath = filePath.replace(/\\\\/g, \"/\");\n if (options.excludePathPrefixes.some((prefix) => normalizedPath.startsWith(prefix))) {\n return false;\n }\n\n return true;\n },\n };\n};\n","import path from \"node:path\";\nimport fs from \"node:fs/promises\";\nimport type {\n QuartzEmitterPlugin,\n ProcessedContent,\n BuildCtx,\n FilePath,\n FullSlug,\n} from \"@quartz-community/types\";\nimport type { ExampleEmitterOptions } from \"./types\";\n\nconst defaultOptions: ExampleEmitterOptions = {\n manifestSlug: \"plugin-manifest\",\n includeFrontmatter: true,\n metadata: {\n generator: \"Quartz Plugin Template\",\n },\n};\n\nconst joinSegments = (...segments: string[]) =>\n segments\n .filter((segment) => segment.length > 0)\n .join(\"/\")\n .replace(/\\/+/g, \"/\") as FilePath;\n\nconst writeFile = async (\n outputDir: string,\n slug: FullSlug,\n ext: `.${string}` | \"\",\n content: string,\n) => {\n const outputPath = joinSegments(outputDir, `${slug}${ext}`) as FilePath;\n await fs.mkdir(path.dirname(outputPath), { recursive: true });\n await fs.writeFile(outputPath, content);\n return outputPath;\n};\n\n/**\n * Example emitter that writes a JSON manifest of content metadata.\n */\nexport const ExampleEmitter: QuartzEmitterPlugin> = (\n userOptions?: Partial,\n) => {\n const options = { ...defaultOptions, ...userOptions };\n const emitManifest = async (ctx: BuildCtx, content: ProcessedContent[]) => {\n const manifest = {\n ...options.metadata,\n generatedAt: new Date().toISOString(),\n pages: content.map(([_tree, vfile]) => {\n const frontmatter = (vfile.data?.frontmatter ?? {}) as {\n title?: string;\n tags?: string[];\n [key: string]: unknown;\n };\n return {\n slug: vfile.data?.slug ?? null,\n title: frontmatter.title ?? null,\n tags: frontmatter.tags ?? null,\n filePath: vfile.data?.filePath ?? null,\n frontmatter: options.includeFrontmatter ? frontmatter : undefined,\n };\n }),\n };\n\n let json = `${JSON.stringify(manifest, null, 2)}\\n`;\n if (options.transformManifest) {\n json = options.transformManifest(json);\n }\n\n const output = await writeFile(\n ctx.argv.output,\n options.manifestSlug as FullSlug,\n \".json\",\n json,\n );\n return [output];\n };\n\n return {\n name: \"ExampleEmitter\",\n async emit(ctx, content, _resources) {\n return emitManifest(ctx, content);\n },\n async *partialEmit(ctx, content, _resources, _changeEvents) {\n const outputPaths = await emitManifest(ctx, content);\n for (const outputPath of outputPaths) {\n yield outputPath;\n }\n },\n };\n};\n","export function classNames(...classes: (string | undefined | null | false)[]): string {\n return classes.filter(Boolean).join(\" \");\n}\n",".example-component {\n padding: 8px 16px;\n background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\n color: white;\n border-radius: 4px;\n font-weight: 600;\n display: inline-block;\n}","function l(){let e=window.location.pathname;return e.startsWith(\"/\")&&(e=e.slice(1)),e.endsWith(\"/\")&&(e=e.slice(0,-1)),e||\"index\"}function r(){let e=document.querySelectorAll(\".example-component\");if(e.length===0)return;let t=[];function o(n){(n.ctrlKey||n.metaKey)&&n.shiftKey&&n.key.toLowerCase()===\"e\"&&(n.preventDefault(),console.log(\"[ExampleComponent] Keyboard shortcut triggered!\"))}document.addEventListener(\"keydown\",o),t.push(()=>document.removeEventListener(\"keydown\",o));for(let n of e){let i=()=>{console.log(\"[ExampleComponent] Clicked!\")};n.addEventListener(\"click\",i),t.push(()=>n.removeEventListener(\"click\",i))}typeof window<\"u\"&&window.addCleanup&&window.addCleanup(()=>{t.forEach(n=>n())}),console.log(\"[ExampleComponent] Initialized with\",e.length,\"component(s)\")}document.addEventListener(\"nav\",e=>{let t=e.detail?.url||l();console.log(\"[ExampleComponent] Navigation to:\",t),r()});document.addEventListener(\"render\",()=>{console.log(\"[ExampleComponent] Render event - re-initializing\"),r()});document.addEventListener(\"prenav\",()=>{let e=document.querySelector(\".example-component\");e&&sessionStorage.setItem(\"exampleScrollTop\",e.scrollTop?.toString()||\"0\")});\n","import type {\n QuartzComponent,\n QuartzComponentProps,\n QuartzComponentConstructor,\n} from \"@quartz-community/types\";\nimport { classNames } from \"../util/lang\";\nimport style from \"./styles/example.scss\";\n// @ts-expect-error - inline script import handled by Quartz bundler\nimport script from \"./scripts/example.inline.ts\";\n\nexport interface ExampleComponentOptions {\n prefix?: string;\n suffix?: string;\n className?: string;\n}\n\nexport default ((opts?: ExampleComponentOptions) => {\n const { prefix = \"\", suffix = \"\", className = \"example-component\" } = opts ?? {};\n\n const Component: QuartzComponent = (props: QuartzComponentProps) => {\n const frontmatter = props.fileData?.frontmatter as { title?: string } | undefined;\n const title = frontmatter?.title ?? \"Untitled\";\n const fullText = `${prefix}${title}${suffix}`;\n\n return
{fullText}
;\n };\n\n Component.css = style;\n Component.afterDOMLoaded = script;\n\n return Component;\n}) satisfies QuartzComponentConstructor;\n","#stacked-pages-container:not(.binder-active) {\n display: none;\n}\n#stacked-pages-container.binder-active {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n pointer-events: none;\n z-index: 99;\n display: flex;\n justify-content: space-between;\n align-items: stretch;\n}\n\nbody.has-binder-left .page {\n padding-left: 40px;\n}\n\nbody.has-binder-right .page {\n padding-right: 40px;\n}\n\n.binder-strip {\n pointer-events: auto;\n display: flex;\n flex-direction: column;\n gap: 0;\n padding: 0;\n justify-content: stretch;\n align-items: stretch;\n z-index: 100;\n width: 40px;\n height: 100%;\n}\n\n.binder-strip-left {\n align-self: flex-start;\n}\n\n.binder-strip-right {\n align-self: flex-end;\n margin-left: auto;\n}\n\n.binder-tab {\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n gap: 4px;\n padding: 8px 0;\n cursor: pointer;\n background: var(--lightgray);\n border: 1px solid var(--lightgray);\n transition: background 0.15s ease, transform 0.15s ease, border-color 0.15s ease;\n width: 100%;\n flex: 1;\n position: relative;\n writing-mode: vertical-lr;\n overflow: hidden;\n}\n.binder-tab:hover {\n background: var(--light);\n}\n\n.binder-tab.binder-tab-active {\n background: var(--light);\n z-index: 101;\n cursor: default;\n}\n.binder-tab.binder-tab-active.binder-tab-left {\n border-right: none;\n border-left: 3px solid var(--secondary);\n border-radius: 6px 0 0 6px;\n}\n.binder-tab.binder-tab-active.binder-tab-right {\n border-left: none;\n border-right: 3px solid var(--secondary);\n border-radius: 0 6px 6px 0;\n}\n\n.binder-tab:not(.binder-tab-active) {\n color: var(--gray);\n}\n.binder-tab:not(.binder-tab-active).binder-tab-left {\n border-radius: 6px 0 0 6px;\n border-right: 2px solid var(--secondary);\n border-left: 1px solid var(--lightgray);\n}\n.binder-tab:not(.binder-tab-active).binder-tab-left:hover {\n transform: translateX(4px);\n}\n.binder-tab:not(.binder-tab-active).binder-tab-right {\n border-radius: 0 6px 6px 0;\n border-left: 2px solid var(--secondary);\n border-right: 1px solid var(--lightgray);\n}\n.binder-tab:not(.binder-tab-active).binder-tab-right:hover {\n transform: translateX(-4px);\n}\n\n.binder-spine {\n display: none;\n}\n\n.binder-label {\n font-size: 1rem;\n line-height: 1.2;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n color: var(--darkgray);\n user-select: none;\n transform: rotate(180deg);\n text-align: left;\n}\n\n.binder-tab-active .binder-label {\n font-weight: bold;\n color: var(--dark);\n}\n\n.binder-close {\n appearance: none;\n background: none;\n border: none;\n cursor: pointer;\n font-size: 1rem;\n line-height: 1;\n color: var(--gray);\n padding: 2px;\n flex-shrink: 0;\n opacity: 0;\n transition: opacity 0.15s ease, color 0.15s ease;\n transform: rotate(180deg);\n}\n.binder-close:hover {\n color: var(--dark);\n background: rgba(0, 0, 0, 0.05);\n border-radius: 4px;\n}\n\n.binder-tab:hover .binder-close {\n opacity: 1;\n}","var g=\"stacked-pages-state\";function m(){let e=window.location.pathname;return e.startsWith(\"/\")&&(e=e.slice(1)),e.endsWith(\"/\")&&(e=e.slice(0,-1)),e||\"index\"}function w(){return document.querySelector(\"h1\")?.textContent?.trim()||document.title||m()}function l(){try{let e=sessionStorage.getItem(g);if(e){let t=JSON.parse(e);if(Array.isArray(t.tabs)&&typeof t.activeIndex==\"number\")return t}}catch{}return{tabs:[],activeIndex:-1}}function c(e){try{sessionStorage.setItem(g,JSON.stringify(e))}catch{}}function p(e){return{maxTabs:parseInt(e.dataset.maxTabs||\"8\",10),mobileBreakpoint:parseInt(e.dataset.mobileBreakpoint||\"800\",10),showSpines:e.dataset.showSpines!==\"false\",animate:e.dataset.animate!==\"false\"}}function o(e,t){let r=p(e);if(window.innerWidth0){let i=document.createElement(\"div\");i.className=\"binder-strip binder-strip-left\";for(let a=0;a0){let i=document.createElement(\"div\");i.className=\"binder-strip binder-strip-right\";for(let a=0;a0),document.body.classList.toggle(\"has-binder-right\",d.length>0)}function u(e,t,r,n,d){let i=document.createElement(\"div\");if(i.className=`binder-tab binder-tab-${r}`,i.dataset.index=String(t),t===n.activeIndex&&i.classList.add(\"binder-tab-active\"),d.showSpines){let s=document.createElement(\"div\");s.className=\"binder-spine\",i.appendChild(s)}let a=document.createElement(\"span\");if(a.className=\"binder-label\",a.textContent=e.title,i.appendChild(a),n.tabs.length>=2){let s=document.createElement(\"button\");s.className=\"binder-close\",s.textContent=\"\\xD7\",s.setAttribute(\"aria-label\",`Close ${e.title}`),s.addEventListener(\"click\",v=>{v.stopPropagation(),I(t)}),i.appendChild(s)}return i.addEventListener(\"click\",()=>{h(t)}),i}function h(e){let t=l();if(e<0||e>=t.tabs.length)return;let r=t.tabs[e];t.activeIndex=e,c(t);let n=new URL(`/${r.slug}`,window.location.origin);window.spaNavigate?window.spaNavigate(n,!1):window.location.href=n.toString()}function I(e){let t=l();if(t.tabs.length<2)return;let r=e===t.activeIndex;t.tabs.splice(e,1),r?(t.activeIndex=Math.min(e,t.tabs.length-1),c(t),h(t.activeIndex)):(ea.slug===t);if(i>=0)n.tabs[i].title=r,n.activeIndex=i;else{let a={slug:t,title:r},s=n.activeIndex+1;for(n.tabs.splice(s,0,a),n.activeIndex=s;n.tabs.length>d.maxTabs;)n.activeIndex>0?(n.tabs.shift(),n.activeIndex--):n.tabs.pop()}c(n),o(e,n)}function b(){let e=document.getElementById(\"stacked-pages-container\");e&&o(e,l())}function x(){S();let e=()=>b();window.addEventListener(\"resize\",e),window.addCleanup&&window.addCleanup(()=>window.removeEventListener(\"resize\",e))}typeof document<\"u\"&&(document.addEventListener(\"nav\",()=>{x()}),document.addEventListener(\"render\",()=>{b()}));\n","import type {\n QuartzComponent,\n QuartzComponentProps,\n QuartzComponentConstructor,\n} from \"@quartz-community/types\";\nimport type { StackedPagesOptions } from \"../types\";\nimport style from \"./styles/stacked.scss\";\n// @ts-expect-error - inline script import handled by Quartz bundler\nimport script from \"./scripts/stacked.inline.ts\";\n\nexport interface StackedPagesComponentOptions {\n maxTabs?: number;\n mobileBreakpoint?: number;\n showSpines?: boolean;\n animateTransitions?: boolean;\n}\n\nexport default ((opts?: StackedPagesComponentOptions) => {\n const {\n maxTabs = 8,\n mobileBreakpoint = 800,\n showSpines = true,\n animateTransitions = true,\n } = opts ?? {};\n\n const Component: QuartzComponent = (_props: QuartzComponentProps) => {\n return (\n \n );\n };\n\n Component.css = style;\n Component.afterDOMLoaded = script;\n\n return Component;\n}) satisfies QuartzComponentConstructor;\n"]} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index eab104d..de6ad1f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -348,8 +348,6 @@ }, "node_modules/@esbuild/linux-x64": { "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.3.tgz", - "integrity": "sha512-Czi8yzXUWIQYAtL/2y6vogER8pvcsOsk5cpwL4Gk5nJqH5UZiVByIY8Eorm5R13gq+DQKYg0+JyQoytLQas4dA==", "cpu": [ "x64" ], @@ -518,8 +516,6 @@ }, "node_modules/@eslint-community/eslint-utils": { "version": "4.9.1", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.1.tgz", - "integrity": "sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==", "dev": true, "license": "MIT", "dependencies": { @@ -537,8 +533,6 @@ }, "node_modules/@eslint-community/regexpp": { "version": "4.12.2", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.2.tgz", - "integrity": "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==", "dev": true, "license": "MIT", "engines": { @@ -547,8 +541,6 @@ }, "node_modules/@eslint/eslintrc": { "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", - "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", "dev": true, "license": "MIT", "dependencies": { @@ -571,8 +563,6 @@ }, "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { "version": "1.1.12", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", - "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", "dev": true, "license": "MIT", "dependencies": { @@ -582,8 +572,6 @@ }, "node_modules/@eslint/eslintrc/node_modules/minimatch": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "license": "ISC", "dependencies": { @@ -595,8 +583,6 @@ }, "node_modules/@eslint/js": { "version": "8.57.1", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz", - "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==", "dev": true, "license": "MIT", "engines": { @@ -605,9 +591,6 @@ }, "node_modules/@humanwhocodes/config-array": { "version": "0.13.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", - "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==", - "deprecated": "Use @eslint/config-array instead", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -621,8 +604,6 @@ }, "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": { "version": "1.1.12", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", - "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", "dev": true, "license": "MIT", "dependencies": { @@ -632,8 +613,6 @@ }, "node_modules/@humanwhocodes/config-array/node_modules/minimatch": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "license": "ISC", "dependencies": { @@ -645,8 +624,6 @@ }, "node_modules/@humanwhocodes/module-importer": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", "dev": true, "license": "Apache-2.0", "engines": { @@ -659,16 +636,11 @@ }, "node_modules/@humanwhocodes/object-schema": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", - "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", - "deprecated": "Use @eslint/object-schema instead", "dev": true, "license": "BSD-3-Clause" }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.13", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", - "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", "dev": true, "license": "MIT", "dependencies": { @@ -678,8 +650,6 @@ }, "node_modules/@jridgewell/resolve-uri": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", "dev": true, "license": "MIT", "engines": { @@ -688,15 +658,11 @@ }, "node_modules/@jridgewell/sourcemap-codec": { "version": "1.5.5", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", - "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", "dev": true, "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { "version": "0.3.31", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", - "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", "dev": true, "license": "MIT", "dependencies": { @@ -706,8 +672,6 @@ }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, "license": "MIT", "dependencies": { @@ -720,8 +684,6 @@ }, "node_modules/@nodelib/fs.stat": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true, "license": "MIT", "engines": { @@ -730,8 +692,6 @@ }, "node_modules/@nodelib/fs.walk": { "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, "license": "MIT", "dependencies": { @@ -744,8 +704,6 @@ }, "node_modules/@parcel/watcher": { "version": "2.5.6", - "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.6.tgz", - "integrity": "sha512-tmmZ3lQxAe/k/+rNnXQRawJ4NjxO2hqiOLTHvWchtGZULp4RyFeh6aU4XdOYBFe2KE1oShQTv4AblOs2iOrNnQ==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -949,8 +907,6 @@ }, "node_modules/@parcel/watcher-linux-x64-glibc": { "version": "2.5.6", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.6.tgz", - "integrity": "sha512-kbT5wvNQlx7NaGjzPFu8nVIW1rWqV780O7ZtkjuWaPUgpv2NMFpjYERVi0UYj1msZNyCzGlaCWEtzc+exjMGbQ==", "cpu": [ "x64" ], @@ -970,8 +926,6 @@ }, "node_modules/@parcel/watcher-linux-x64-musl": { "version": "2.5.6", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.6.tgz", - "integrity": "sha512-1JRFeC+h7RdXwldHzTsmdtYR/Ku8SylLgTU/reMuqdVD7CtLwf0VR1FqeprZ0eHQkO0vqsbvFLXUmYm/uNKJBg==", "cpu": [ "x64" ], @@ -1054,8 +1008,6 @@ }, "node_modules/@parcel/watcher/node_modules/picomatch": { "version": "4.0.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", - "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "dev": true, "license": "MIT", "optional": true, @@ -1068,7 +1020,7 @@ }, "node_modules/@quartz-community/types": { "version": "0.2.1", - "resolved": "git+ssh://git@github.com/quartz-community/types.git#5786c30b02188ebcccb6f0479205bd6751336015", + "resolved": "git+ssh://git@github.com/quartz-community/types.git#653aece4c90759fb911d62d4af89bf300865f85d", "license": "MIT", "engines": { "node": ">=22", @@ -1327,8 +1279,6 @@ }, "node_modules/@rollup/rollup-linux-x64-gnu": { "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.57.1.tgz", - "integrity": "sha512-ABca4ceT4N+Tv/GtotnWAeXZUZuM/9AQyCyKYyKnpk4yoA7QIAuBt6Hkgpw8kActYlew2mvckXkvx0FfoInnLg==", "cpu": [ "x64" ], @@ -1341,8 +1291,6 @@ }, "node_modules/@rollup/rollup-linux-x64-musl": { "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.57.1.tgz", - "integrity": "sha512-HFps0JeGtuOR2convgRRkHCekD7j+gdAuXM+/i6kGzQtFhlCtQkpwtNzkNj6QhCDp7DRJ7+qC/1Vg2jt5iSOFw==", "cpu": [ "x64" ], @@ -1439,8 +1387,6 @@ }, "node_modules/@types/debug": { "version": "4.1.12", - "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", - "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==", "devOptional": true, "license": "MIT", "dependencies": { @@ -1449,15 +1395,11 @@ }, "node_modules/@types/estree": { "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", - "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", "dev": true, "license": "MIT" }, "node_modules/@types/hast": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", - "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", "dev": true, "license": "MIT", "dependencies": { @@ -1466,8 +1408,6 @@ }, "node_modules/@types/mdast": { "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", - "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", "license": "MIT", "dependencies": { "@types/unist": "*" @@ -1475,15 +1415,11 @@ }, "node_modules/@types/ms": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz", - "integrity": "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==", "devOptional": true, "license": "MIT" }, "node_modules/@types/node": { "version": "24.10.13", - "resolved": "https://registry.npmjs.org/@types/node/-/node-24.10.13.tgz", - "integrity": "sha512-oH72nZRfDv9lADUBSo104Aq7gPHpQZc4BTx38r9xf9pg5LfP6EzSyH2n7qFmmxRQXh7YlUXODcYsg6PuTDSxGg==", "dev": true, "license": "MIT", "peer": true, @@ -1493,14 +1429,10 @@ }, "node_modules/@types/unist": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", - "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", "license": "MIT" }, "node_modules/@typescript-eslint/eslint-plugin": { "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.18.0.tgz", - "integrity": "sha512-94EQTWZ40mzBc42ATNIBimBEDltSJ9RQHCC8vc/PDbxi4k8dVwUAv4o98dk50M1zB+JGFxp43FP7f8+FP8R6Sw==", "dev": true, "license": "MIT", "dependencies": { @@ -1533,8 +1465,6 @@ }, "node_modules/@typescript-eslint/parser": { "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.18.0.tgz", - "integrity": "sha512-4Z+L8I2OqhZV8qA132M4wNL30ypZGYOQVBfMgxDH/K5UX0PNqTu1c6za9ST5r9+tavvHiTWmBnKzpCJ/GlVFtg==", "dev": true, "license": "BSD-2-Clause", "peer": true, @@ -1563,8 +1493,6 @@ }, "node_modules/@typescript-eslint/scope-manager": { "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.18.0.tgz", - "integrity": "sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==", "dev": true, "license": "MIT", "dependencies": { @@ -1581,8 +1509,6 @@ }, "node_modules/@typescript-eslint/type-utils": { "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.18.0.tgz", - "integrity": "sha512-XL0FJXuCLaDuX2sYqZUUSOJ2sG5/i1AAze+axqmLnSkNEVMVYLF+cbwlB2w8D1tinFuSikHmFta+P+HOofrLeA==", "dev": true, "license": "MIT", "dependencies": { @@ -1609,8 +1535,6 @@ }, "node_modules/@typescript-eslint/types": { "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.18.0.tgz", - "integrity": "sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==", "dev": true, "license": "MIT", "engines": { @@ -1623,8 +1547,6 @@ }, "node_modules/@typescript-eslint/typescript-estree": { "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.18.0.tgz", - "integrity": "sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -1652,8 +1574,6 @@ }, "node_modules/@typescript-eslint/utils": { "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.18.0.tgz", - "integrity": "sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==", "dev": true, "license": "MIT", "dependencies": { @@ -1675,8 +1595,6 @@ }, "node_modules/@typescript-eslint/visitor-keys": { "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.18.0.tgz", - "integrity": "sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==", "dev": true, "license": "MIT", "dependencies": { @@ -1693,15 +1611,11 @@ }, "node_modules/@ungap/structured-clone": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz", - "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==", "dev": true, "license": "ISC" }, "node_modules/@vitest/expect": { "version": "2.1.9", - "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-2.1.9.tgz", - "integrity": "sha512-UJCIkTBenHeKT1TTlKMJWy1laZewsRIzYighyYiJKZreqtdxSos/S1t+ktRMQWu2CKqaarrkeszJx1cgC5tGZw==", "dev": true, "license": "MIT", "dependencies": { @@ -1716,8 +1630,6 @@ }, "node_modules/@vitest/mocker": { "version": "2.1.9", - "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-2.1.9.tgz", - "integrity": "sha512-tVL6uJgoUdi6icpxmdrn5YNo3g3Dxv+IHJBr0GXHaEdTcw3F+cPKnsXFhli6nO+f/6SDKPHEK1UN+k+TQv0Ehg==", "dev": true, "license": "MIT", "dependencies": { @@ -1743,8 +1655,6 @@ }, "node_modules/@vitest/pretty-format": { "version": "2.1.9", - "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-2.1.9.tgz", - "integrity": "sha512-KhRIdGV2U9HOUzxfiHmY8IFHTdqtOhIzCpd8WRdJiE7D/HUcZVD0EgQCVjm+Q9gkUXWgBvMmTtZgIG48wq7sOQ==", "dev": true, "license": "MIT", "dependencies": { @@ -1756,8 +1666,6 @@ }, "node_modules/@vitest/runner": { "version": "2.1.9", - "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-2.1.9.tgz", - "integrity": "sha512-ZXSSqTFIrzduD63btIfEyOmNcBmQvgOVsPNPe0jYtESiXkhd8u2erDLnMxmGrDCwHCCHE7hxwRDCT3pt0esT4g==", "dev": true, "license": "MIT", "dependencies": { @@ -1770,15 +1678,11 @@ }, "node_modules/@vitest/runner/node_modules/pathe": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz", - "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==", "dev": true, "license": "MIT" }, "node_modules/@vitest/snapshot": { "version": "2.1.9", - "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-2.1.9.tgz", - "integrity": "sha512-oBO82rEjsxLNJincVhLhaxxZdEtV0EFHMK5Kmx5sJ6H9L183dHECjiefOAdnqpIgT5eZwT04PoggUnW88vOBNQ==", "dev": true, "license": "MIT", "dependencies": { @@ -1792,15 +1696,11 @@ }, "node_modules/@vitest/snapshot/node_modules/pathe": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz", - "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==", "dev": true, "license": "MIT" }, "node_modules/@vitest/spy": { "version": "2.1.9", - "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-2.1.9.tgz", - "integrity": "sha512-E1B35FwzXXTs9FHNK6bDszs7mtydNi5MIfUWpceJ8Xbfb1gBMscAnwLbEu+B44ed6W3XjL9/ehLPHR1fkf1KLQ==", "dev": true, "license": "MIT", "dependencies": { @@ -1812,8 +1712,6 @@ }, "node_modules/@vitest/utils": { "version": "2.1.9", - "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-2.1.9.tgz", - "integrity": "sha512-v0psaMSkNJ3A2NMrUEHFRzJtDPFn+/VWZ5WxImB21T9fjucJRmS7xCS3ppEnARb9y11OAzaD+P2Ps+b+BGX5iQ==", "dev": true, "license": "MIT", "dependencies": { @@ -1827,8 +1725,6 @@ }, "node_modules/acorn": { "version": "8.15.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", - "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", "dev": true, "license": "MIT", "peer": true, @@ -1841,8 +1737,6 @@ }, "node_modules/acorn-jsx": { "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "dev": true, "license": "MIT", "peerDependencies": { @@ -1851,8 +1745,6 @@ }, "node_modules/ajv": { "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, "license": "MIT", "dependencies": { @@ -1868,8 +1760,6 @@ }, "node_modules/ansi-regex": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, "license": "MIT", "engines": { @@ -1878,8 +1768,6 @@ }, "node_modules/ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "license": "MIT", "dependencies": { @@ -1894,22 +1782,16 @@ }, "node_modules/any-promise": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", "dev": true, "license": "MIT" }, "node_modules/argparse": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true, "license": "Python-2.0" }, "node_modules/array-union": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", "dev": true, "license": "MIT", "engines": { @@ -1918,8 +1800,6 @@ }, "node_modules/assertion-error": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", - "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", "dev": true, "license": "MIT", "engines": { @@ -1928,8 +1808,6 @@ }, "node_modules/bail": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", - "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==", "license": "MIT", "funding": { "type": "github", @@ -1938,15 +1816,11 @@ }, "node_modules/balanced-match": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true, "license": "MIT" }, "node_modules/brace-expansion": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", - "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", "dev": true, "license": "MIT", "dependencies": { @@ -1955,8 +1829,6 @@ }, "node_modules/braces": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dev": true, "license": "MIT", "dependencies": { @@ -1968,8 +1840,6 @@ }, "node_modules/bundle-require": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/bundle-require/-/bundle-require-5.1.0.tgz", - "integrity": "sha512-3WrrOuZiyaaZPWiEt4G3+IffISVC9HYlWueJEBWED4ZH4aIAC2PnkdnuRrR94M+w6yGWn4AglWtJtBI8YqvgoA==", "dev": true, "license": "MIT", "dependencies": { @@ -1984,8 +1854,6 @@ }, "node_modules/cac": { "version": "6.7.14", - "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", - "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", "dev": true, "license": "MIT", "engines": { @@ -1994,8 +1862,6 @@ }, "node_modules/callsites": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true, "license": "MIT", "engines": { @@ -2004,8 +1870,6 @@ }, "node_modules/ccount": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz", - "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==", "dev": true, "license": "MIT", "funding": { @@ -2015,8 +1879,6 @@ }, "node_modules/chai": { "version": "5.3.3", - "resolved": "https://registry.npmjs.org/chai/-/chai-5.3.3.tgz", - "integrity": "sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw==", "dev": true, "license": "MIT", "dependencies": { @@ -2032,8 +1894,6 @@ }, "node_modules/chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "license": "MIT", "dependencies": { @@ -2049,8 +1909,6 @@ }, "node_modules/character-entities": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz", - "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==", "license": "MIT", "funding": { "type": "github", @@ -2059,8 +1917,6 @@ }, "node_modules/check-error": { "version": "2.1.3", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.3.tgz", - "integrity": "sha512-PAJdDJusoxnwm1VwW07VWwUN1sl7smmC3OKggvndJFadxxDRyFJBX/ggnu/KE4kQAB7a3Dp8f/YXC1FlUprWmA==", "dev": true, "license": "MIT", "engines": { @@ -2069,8 +1925,6 @@ }, "node_modules/chokidar": { "version": "4.0.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", - "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", "dev": true, "license": "MIT", "dependencies": { @@ -2085,8 +1939,6 @@ }, "node_modules/color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "license": "MIT", "dependencies": { @@ -2098,15 +1950,11 @@ }, "node_modules/color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true, "license": "MIT" }, "node_modules/commander": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", "dev": true, "license": "MIT", "engines": { @@ -2115,22 +1963,16 @@ }, "node_modules/concat-map": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", "dev": true, "license": "MIT" }, "node_modules/confbox": { "version": "0.1.8", - "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.8.tgz", - "integrity": "sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==", "dev": true, "license": "MIT" }, "node_modules/consola": { "version": "3.4.2", - "resolved": "https://registry.npmjs.org/consola/-/consola-3.4.2.tgz", - "integrity": "sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==", "dev": true, "license": "MIT", "engines": { @@ -2139,8 +1981,6 @@ }, "node_modules/cross-spawn": { "version": "7.0.6", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", - "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", "dev": true, "license": "MIT", "dependencies": { @@ -2154,8 +1994,6 @@ }, "node_modules/debug": { "version": "4.4.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", - "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", "devOptional": true, "license": "MIT", "dependencies": { @@ -2172,8 +2010,6 @@ }, "node_modules/decode-named-character-reference": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.3.0.tgz", - "integrity": "sha512-GtpQYB283KrPp6nRw50q3U9/VfOutZOe103qlN7BPP6Ad27xYnOIWv4lPzo8HCAL+mMZofJ9KEy30fq6MfaK6Q==", "license": "MIT", "dependencies": { "character-entities": "^2.0.0" @@ -2185,8 +2021,6 @@ }, "node_modules/deep-eql": { "version": "5.0.2", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz", - "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==", "dev": true, "license": "MIT", "engines": { @@ -2195,15 +2029,11 @@ }, "node_modules/deep-is": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", "dev": true, "license": "MIT" }, "node_modules/dequal": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", - "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", "license": "MIT", "engines": { "node": ">=6" @@ -2211,8 +2041,6 @@ }, "node_modules/detect-libc": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", - "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", "dev": true, "license": "Apache-2.0", "optional": true, @@ -2222,8 +2050,6 @@ }, "node_modules/devlop": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz", - "integrity": "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==", "license": "MIT", "dependencies": { "dequal": "^2.0.0" @@ -2235,8 +2061,6 @@ }, "node_modules/dir-glob": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", "dev": true, "license": "MIT", "dependencies": { @@ -2248,8 +2072,6 @@ }, "node_modules/doctrine": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -2261,15 +2083,11 @@ }, "node_modules/es-module-lexer": { "version": "1.7.0", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz", - "integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==", "dev": true, "license": "MIT" }, "node_modules/esbuild": { "version": "0.27.3", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.3.tgz", - "integrity": "sha512-8VwMnyGCONIs6cWue2IdpHxHnAjzxnw2Zr7MkVxB2vjmQ2ivqGFb4LEG3SMnv0Gb2F/G/2yA8zUaiL1gywDCCg==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -2311,8 +2129,6 @@ }, "node_modules/escape-string-regexp": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true, "license": "MIT", "engines": { @@ -2324,9 +2140,6 @@ }, "node_modules/eslint": { "version": "8.57.1", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz", - "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", - "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", "dev": true, "license": "MIT", "peer": true, @@ -2382,8 +2195,6 @@ }, "node_modules/eslint-config-prettier": { "version": "9.1.2", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.2.tgz", - "integrity": "sha512-iI1f+D2ViGn+uvv5HuHVUamg8ll4tN+JRHGc6IJi4TP9Kl976C57fzPXgseXNs8v0iA8aSJpHsTWjDb9QJamGQ==", "dev": true, "license": "MIT", "bin": { @@ -2395,8 +2206,6 @@ }, "node_modules/eslint-scope": { "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -2412,8 +2221,6 @@ }, "node_modules/eslint-visitor-keys": { "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true, "license": "Apache-2.0", "engines": { @@ -2425,8 +2232,6 @@ }, "node_modules/eslint/node_modules/brace-expansion": { "version": "1.1.12", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", - "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", "dev": true, "license": "MIT", "dependencies": { @@ -2436,8 +2241,6 @@ }, "node_modules/eslint/node_modules/minimatch": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "license": "ISC", "dependencies": { @@ -2449,8 +2252,6 @@ }, "node_modules/espree": { "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -2467,8 +2268,6 @@ }, "node_modules/esquery": { "version": "1.7.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.7.0.tgz", - "integrity": "sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -2480,8 +2279,6 @@ }, "node_modules/esrecurse": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -2493,8 +2290,6 @@ }, "node_modules/estraverse": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, "license": "BSD-2-Clause", "engines": { @@ -2503,8 +2298,6 @@ }, "node_modules/estree-walker": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", - "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", "dev": true, "license": "MIT", "dependencies": { @@ -2513,8 +2306,6 @@ }, "node_modules/esutils": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true, "license": "BSD-2-Clause", "engines": { @@ -2523,8 +2314,6 @@ }, "node_modules/expect-type": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.3.0.tgz", - "integrity": "sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA==", "dev": true, "license": "Apache-2.0", "engines": { @@ -2533,21 +2322,15 @@ }, "node_modules/extend": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", "license": "MIT" }, "node_modules/fast-deep-equal": { "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "dev": true, "license": "MIT" }, "node_modules/fast-glob": { "version": "3.3.3", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", - "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", "dev": true, "license": "MIT", "dependencies": { @@ -2563,8 +2346,6 @@ }, "node_modules/fast-glob/node_modules/glob-parent": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, "license": "ISC", "dependencies": { @@ -2576,22 +2357,16 @@ }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", "dev": true, "license": "MIT" }, "node_modules/fast-levenshtein": { "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", "dev": true, "license": "MIT" }, "node_modules/fastq": { "version": "1.20.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz", - "integrity": "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==", "dev": true, "license": "ISC", "dependencies": { @@ -2600,8 +2375,6 @@ }, "node_modules/file-entry-cache": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", "dev": true, "license": "MIT", "dependencies": { @@ -2613,8 +2386,6 @@ }, "node_modules/fill-range": { "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dev": true, "license": "MIT", "dependencies": { @@ -2626,8 +2397,6 @@ }, "node_modules/find-up": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, "license": "MIT", "dependencies": { @@ -2643,8 +2412,6 @@ }, "node_modules/fix-dts-default-cjs-exports": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/fix-dts-default-cjs-exports/-/fix-dts-default-cjs-exports-1.0.1.tgz", - "integrity": "sha512-pVIECanWFC61Hzl2+oOCtoJ3F17kglZC/6N94eRWycFgBH35hHx0Li604ZIzhseh97mf2p0cv7vVrOZGoqhlEg==", "dev": true, "license": "MIT", "dependencies": { @@ -2655,8 +2422,6 @@ }, "node_modules/flat-cache": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", - "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", "dev": true, "license": "MIT", "dependencies": { @@ -2670,15 +2435,11 @@ }, "node_modules/flatted": { "version": "3.3.3", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", - "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", "dev": true, "license": "ISC" }, "node_modules/fs.realpath": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", "dev": true, "license": "ISC" }, @@ -2699,16 +2460,11 @@ }, "node_modules/github-slugger": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-2.0.0.tgz", - "integrity": "sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==", "dev": true, "license": "ISC" }, "node_modules/glob": { "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "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", "dev": true, "license": "ISC", "dependencies": { @@ -2728,8 +2484,6 @@ }, "node_modules/glob-parent": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, "license": "ISC", "dependencies": { @@ -2741,8 +2495,6 @@ }, "node_modules/glob/node_modules/brace-expansion": { "version": "1.1.12", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", - "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", "dev": true, "license": "MIT", "dependencies": { @@ -2752,8 +2504,6 @@ }, "node_modules/glob/node_modules/minimatch": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "license": "ISC", "dependencies": { @@ -2765,8 +2515,6 @@ }, "node_modules/globals": { "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", "dev": true, "license": "MIT", "dependencies": { @@ -2781,8 +2529,6 @@ }, "node_modules/globby": { "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "dev": true, "license": "MIT", "dependencies": { @@ -2802,15 +2548,11 @@ }, "node_modules/graphemer": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", "dev": true, "license": "MIT" }, "node_modules/has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "license": "MIT", "engines": { @@ -2819,8 +2561,6 @@ }, "node_modules/hast-util-heading-rank": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/hast-util-heading-rank/-/hast-util-heading-rank-3.0.0.tgz", - "integrity": "sha512-EJKb8oMUXVHcWZTDepnr+WNbfnXKFNf9duMesmr4S8SXTJBJ9M4Yok08pu9vxdJwdlGRhVumk9mEhkEvKGifwA==", "dev": true, "license": "MIT", "dependencies": { @@ -2833,8 +2573,6 @@ }, "node_modules/hast-util-to-string": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/hast-util-to-string/-/hast-util-to-string-3.0.1.tgz", - "integrity": "sha512-XelQVTDWvqcl3axRfI0xSeoVKzyIFPwsAGSLIsKdJKQMXDYJS4WYrBNF/8J7RdhIcFI2BOHgAifggsvsxp/3+A==", "dev": true, "license": "MIT", "dependencies": { @@ -2847,8 +2585,6 @@ }, "node_modules/ignore": { "version": "5.3.2", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", - "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", "dev": true, "license": "MIT", "engines": { @@ -2857,15 +2593,11 @@ }, "node_modules/immutable": { "version": "5.1.4", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.1.4.tgz", - "integrity": "sha512-p6u1bG3YSnINT5RQmx/yRZBpenIl30kVxkTLDyHLIMk0gict704Q9n+thfDI7lTRm9vXdDYutVzXhzcThxTnXA==", "dev": true, "license": "MIT" }, "node_modules/import-fresh": { "version": "3.3.1", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", - "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", "dev": true, "license": "MIT", "dependencies": { @@ -2881,8 +2613,6 @@ }, "node_modules/imurmurhash": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "dev": true, "license": "MIT", "engines": { @@ -2891,9 +2621,6 @@ }, "node_modules/inflight": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", "dev": true, "license": "ISC", "dependencies": { @@ -2903,15 +2630,11 @@ }, "node_modules/inherits": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "dev": true, "license": "ISC" }, "node_modules/is-extglob": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true, "license": "MIT", "engines": { @@ -2920,8 +2643,6 @@ }, "node_modules/is-glob": { "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, "license": "MIT", "dependencies": { @@ -2933,8 +2654,6 @@ }, "node_modules/is-number": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true, "license": "MIT", "engines": { @@ -2943,8 +2662,6 @@ }, "node_modules/is-path-inside": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", "dev": true, "license": "MIT", "engines": { @@ -2953,8 +2670,6 @@ }, "node_modules/is-plain-obj": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", - "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", "license": "MIT", "engines": { "node": ">=12" @@ -2965,15 +2680,11 @@ }, "node_modules/isexe": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", "dev": true, "license": "ISC" }, "node_modules/joycon": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/joycon/-/joycon-3.1.1.tgz", - "integrity": "sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==", "dev": true, "license": "MIT", "engines": { @@ -2982,8 +2693,6 @@ }, "node_modules/js-yaml": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", - "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", "dev": true, "license": "MIT", "dependencies": { @@ -2995,29 +2704,21 @@ }, "node_modules/json-buffer": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", "dev": true, "license": "MIT" }, "node_modules/json-schema-traverse": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true, "license": "MIT" }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", "dev": true, "license": "MIT" }, "node_modules/keyv": { "version": "4.5.4", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", - "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", "dev": true, "license": "MIT", "dependencies": { @@ -3026,8 +2727,6 @@ }, "node_modules/levn": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dev": true, "license": "MIT", "dependencies": { @@ -3040,8 +2739,6 @@ }, "node_modules/lilconfig": { "version": "3.1.3", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", - "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", "dev": true, "license": "MIT", "engines": { @@ -3053,15 +2750,11 @@ }, "node_modules/lines-and-columns": { "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", "dev": true, "license": "MIT" }, "node_modules/load-tsconfig": { "version": "0.2.5", - "resolved": "https://registry.npmjs.org/load-tsconfig/-/load-tsconfig-0.2.5.tgz", - "integrity": "sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==", "dev": true, "license": "MIT", "engines": { @@ -3070,8 +2763,6 @@ }, "node_modules/locate-path": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, "license": "MIT", "dependencies": { @@ -3086,15 +2777,11 @@ }, "node_modules/lodash.merge": { "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", "dev": true, "license": "MIT" }, "node_modules/longest-streak": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz", - "integrity": "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==", "license": "MIT", "funding": { "type": "github", @@ -3103,15 +2790,11 @@ }, "node_modules/loupe": { "version": "3.2.1", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.2.1.tgz", - "integrity": "sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ==", "dev": true, "license": "MIT" }, "node_modules/magic-string": { "version": "0.30.21", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", - "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", "dev": true, "license": "MIT", "dependencies": { @@ -3120,8 +2803,6 @@ }, "node_modules/markdown-table": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.4.tgz", - "integrity": "sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==", "dev": true, "license": "MIT", "funding": { @@ -3131,8 +2812,6 @@ }, "node_modules/mdast-util-find-and-replace": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-3.0.2.tgz", - "integrity": "sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==", "devOptional": true, "license": "MIT", "dependencies": { @@ -3148,8 +2827,6 @@ }, "node_modules/mdast-util-find-and-replace/node_modules/escape-string-regexp": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", "devOptional": true, "license": "MIT", "engines": { @@ -3161,8 +2838,6 @@ }, "node_modules/mdast-util-from-markdown": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.3.tgz", - "integrity": "sha512-W4mAWTvSlKvf8L6J+VN9yLSqQ9AOAAvHuoDAmPkz4dHf553m5gVj2ejadHJhoJmcmxEnOv6Pa8XJhpxE93kb8Q==", "devOptional": true, "license": "MIT", "dependencies": { @@ -3186,8 +2861,6 @@ }, "node_modules/mdast-util-gfm": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-3.1.0.tgz", - "integrity": "sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==", "dev": true, "license": "MIT", "dependencies": { @@ -3206,8 +2879,6 @@ }, "node_modules/mdast-util-gfm-autolink-literal": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-2.0.1.tgz", - "integrity": "sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==", "dev": true, "license": "MIT", "dependencies": { @@ -3224,8 +2895,6 @@ }, "node_modules/mdast-util-gfm-footnote": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-2.1.0.tgz", - "integrity": "sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==", "dev": true, "license": "MIT", "dependencies": { @@ -3242,8 +2911,6 @@ }, "node_modules/mdast-util-gfm-strikethrough": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-2.0.0.tgz", - "integrity": "sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==", "dev": true, "license": "MIT", "dependencies": { @@ -3258,8 +2925,6 @@ }, "node_modules/mdast-util-gfm-table": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-2.0.0.tgz", - "integrity": "sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==", "dev": true, "license": "MIT", "dependencies": { @@ -3276,8 +2941,6 @@ }, "node_modules/mdast-util-gfm-task-list-item": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-2.0.0.tgz", - "integrity": "sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==", "dev": true, "license": "MIT", "dependencies": { @@ -3293,8 +2956,6 @@ }, "node_modules/mdast-util-phrasing": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz", - "integrity": "sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==", "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", @@ -3307,8 +2968,6 @@ }, "node_modules/mdast-util-to-markdown": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.2.tgz", - "integrity": "sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==", "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", @@ -3328,8 +2987,6 @@ }, "node_modules/mdast-util-to-string": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz", - "integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==", "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0" @@ -3341,8 +2998,6 @@ }, "node_modules/merge2": { "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "dev": true, "license": "MIT", "engines": { @@ -3351,8 +3006,6 @@ }, "node_modules/micromark": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.2.tgz", - "integrity": "sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==", "devOptional": true, "funding": [ { @@ -3387,8 +3040,6 @@ }, "node_modules/micromark-core-commonmark": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.3.tgz", - "integrity": "sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==", "devOptional": true, "funding": [ { @@ -3422,8 +3073,6 @@ }, "node_modules/micromark-extension-gfm": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-3.0.0.tgz", - "integrity": "sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==", "dev": true, "license": "MIT", "dependencies": { @@ -3443,8 +3092,6 @@ }, "node_modules/micromark-extension-gfm-autolink-literal": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-2.1.0.tgz", - "integrity": "sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==", "dev": true, "license": "MIT", "dependencies": { @@ -3460,8 +3107,6 @@ }, "node_modules/micromark-extension-gfm-footnote": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-2.1.0.tgz", - "integrity": "sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==", "dev": true, "license": "MIT", "dependencies": { @@ -3481,8 +3126,6 @@ }, "node_modules/micromark-extension-gfm-strikethrough": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-2.1.0.tgz", - "integrity": "sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==", "dev": true, "license": "MIT", "dependencies": { @@ -3500,8 +3143,6 @@ }, "node_modules/micromark-extension-gfm-table": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-2.1.1.tgz", - "integrity": "sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==", "dev": true, "license": "MIT", "dependencies": { @@ -3518,8 +3159,6 @@ }, "node_modules/micromark-extension-gfm-tagfilter": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-2.0.0.tgz", - "integrity": "sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==", "dev": true, "license": "MIT", "dependencies": { @@ -3532,8 +3171,6 @@ }, "node_modules/micromark-extension-gfm-task-list-item": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-2.1.0.tgz", - "integrity": "sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==", "dev": true, "license": "MIT", "dependencies": { @@ -3550,8 +3187,6 @@ }, "node_modules/micromark-factory-destination": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.1.tgz", - "integrity": "sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==", "devOptional": true, "funding": [ { @@ -3572,8 +3207,6 @@ }, "node_modules/micromark-factory-label": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.1.tgz", - "integrity": "sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==", "devOptional": true, "funding": [ { @@ -3595,8 +3228,6 @@ }, "node_modules/micromark-factory-space": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", - "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", "devOptional": true, "funding": [ { @@ -3616,8 +3247,6 @@ }, "node_modules/micromark-factory-title": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.1.tgz", - "integrity": "sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==", "devOptional": true, "funding": [ { @@ -3639,8 +3268,6 @@ }, "node_modules/micromark-factory-whitespace": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.1.tgz", - "integrity": "sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==", "devOptional": true, "funding": [ { @@ -3662,8 +3289,6 @@ }, "node_modules/micromark-util-character": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", - "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", "funding": [ { "type": "GitHub Sponsors", @@ -3682,8 +3307,6 @@ }, "node_modules/micromark-util-chunked": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.1.tgz", - "integrity": "sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==", "devOptional": true, "funding": [ { @@ -3702,8 +3325,6 @@ }, "node_modules/micromark-util-classify-character": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.1.tgz", - "integrity": "sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==", "funding": [ { "type": "GitHub Sponsors", @@ -3723,8 +3344,6 @@ }, "node_modules/micromark-util-combine-extensions": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.1.tgz", - "integrity": "sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==", "devOptional": true, "funding": [ { @@ -3744,8 +3363,6 @@ }, "node_modules/micromark-util-decode-numeric-character-reference": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.2.tgz", - "integrity": "sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==", "funding": [ { "type": "GitHub Sponsors", @@ -3763,8 +3380,6 @@ }, "node_modules/micromark-util-decode-string": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.1.tgz", - "integrity": "sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==", "funding": [ { "type": "GitHub Sponsors", @@ -3785,8 +3400,6 @@ }, "node_modules/micromark-util-encode": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz", - "integrity": "sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==", "devOptional": true, "funding": [ { @@ -3802,8 +3415,6 @@ }, "node_modules/micromark-util-html-tag-name": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.1.tgz", - "integrity": "sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==", "devOptional": true, "funding": [ { @@ -3819,8 +3430,6 @@ }, "node_modules/micromark-util-normalize-identifier": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.1.tgz", - "integrity": "sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==", "devOptional": true, "funding": [ { @@ -3839,8 +3448,6 @@ }, "node_modules/micromark-util-resolve-all": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.1.tgz", - "integrity": "sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==", "devOptional": true, "funding": [ { @@ -3859,8 +3466,6 @@ }, "node_modules/micromark-util-sanitize-uri": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz", - "integrity": "sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==", "devOptional": true, "funding": [ { @@ -3881,8 +3486,6 @@ }, "node_modules/micromark-util-subtokenize": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.1.0.tgz", - "integrity": "sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==", "devOptional": true, "funding": [ { @@ -3904,8 +3507,6 @@ }, "node_modules/micromark-util-symbol": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", - "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", "funding": [ { "type": "GitHub Sponsors", @@ -3920,8 +3521,6 @@ }, "node_modules/micromark-util-types": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.2.tgz", - "integrity": "sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==", "funding": [ { "type": "GitHub Sponsors", @@ -3936,8 +3535,6 @@ }, "node_modules/micromatch": { "version": "4.0.8", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", - "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", "dev": true, "license": "MIT", "dependencies": { @@ -3950,8 +3547,6 @@ }, "node_modules/minimatch": { "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, "license": "ISC", "dependencies": { @@ -3966,8 +3561,6 @@ }, "node_modules/mlly": { "version": "1.8.0", - "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.8.0.tgz", - "integrity": "sha512-l8D9ODSRWLe2KHJSifWGwBqpTZXIXTeo8mlKjY+E2HAakaTeNpqAyBZ8GSqLzHgw4XmHmC8whvpjJNMbFZN7/g==", "dev": true, "license": "MIT", "dependencies": { @@ -3979,15 +3572,11 @@ }, "node_modules/ms": { "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "devOptional": true, "license": "MIT" }, "node_modules/mz": { "version": "2.7.0", - "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", - "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", "dev": true, "license": "MIT", "dependencies": { @@ -3998,8 +3587,6 @@ }, "node_modules/nanoid": { "version": "3.3.11", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", - "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", "dev": true, "funding": [ { @@ -4017,23 +3604,17 @@ }, "node_modules/natural-compare": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true, "license": "MIT" }, "node_modules/node-addon-api": { "version": "7.1.1", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", - "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==", "dev": true, "license": "MIT", "optional": true }, "node_modules/object-assign": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", "dev": true, "license": "MIT", "engines": { @@ -4042,8 +3623,6 @@ }, "node_modules/once": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "dev": true, "license": "ISC", "dependencies": { @@ -4052,8 +3631,6 @@ }, "node_modules/optionator": { "version": "0.9.4", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", - "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", "dev": true, "license": "MIT", "dependencies": { @@ -4070,8 +3647,6 @@ }, "node_modules/p-limit": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, "license": "MIT", "dependencies": { @@ -4086,8 +3661,6 @@ }, "node_modules/p-locate": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, "license": "MIT", "dependencies": { @@ -4102,8 +3675,6 @@ }, "node_modules/parent-module": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, "license": "MIT", "dependencies": { @@ -4115,8 +3686,6 @@ }, "node_modules/path-exists": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true, "license": "MIT", "engines": { @@ -4125,8 +3694,6 @@ }, "node_modules/path-is-absolute": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", "dev": true, "license": "MIT", "engines": { @@ -4135,8 +3702,6 @@ }, "node_modules/path-key": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true, "license": "MIT", "engines": { @@ -4145,8 +3710,6 @@ }, "node_modules/path-type": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", "dev": true, "license": "MIT", "engines": { @@ -4155,15 +3718,11 @@ }, "node_modules/pathe": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", - "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", "dev": true, "license": "MIT" }, "node_modules/pathval": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.1.tgz", - "integrity": "sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ==", "dev": true, "license": "MIT", "engines": { @@ -4172,15 +3731,11 @@ }, "node_modules/picocolors": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", - "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", "dev": true, "license": "ISC" }, "node_modules/picomatch": { "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, "license": "MIT", "engines": { @@ -4192,8 +3747,6 @@ }, "node_modules/pirates": { "version": "4.0.7", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz", - "integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==", "dev": true, "license": "MIT", "engines": { @@ -4202,8 +3755,6 @@ }, "node_modules/pkg-types": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.3.1.tgz", - "integrity": "sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==", "dev": true, "license": "MIT", "dependencies": { @@ -4214,8 +3765,6 @@ }, "node_modules/postcss": { "version": "8.5.6", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", - "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", "dev": true, "funding": [ { @@ -4244,8 +3793,6 @@ }, "node_modules/postcss-load-config": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-6.0.1.tgz", - "integrity": "sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==", "dev": true, "funding": [ { @@ -4287,8 +3834,6 @@ }, "node_modules/preact": { "version": "10.28.3", - "resolved": "https://registry.npmjs.org/preact/-/preact-10.28.3.tgz", - "integrity": "sha512-tCmoRkPQLpBeWzpmbhryairGnhW9tKV6c6gr/w+RhoRoKEJwsjzipwp//1oCpGPOchvSLaAPlpcJi9MwMmoPyA==", "dev": true, "license": "MIT", "funding": { @@ -4298,8 +3843,6 @@ }, "node_modules/prelude-ls": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true, "license": "MIT", "engines": { @@ -4308,8 +3851,6 @@ }, "node_modules/prettier": { "version": "3.8.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.8.1.tgz", - "integrity": "sha512-UOnG6LftzbdaHZcKoPFtOcCKztrQ57WkHDeRD9t/PTQtmT0NHSeWWepj6pS0z/N7+08BHFDQVUrfmfMRcZwbMg==", "dev": true, "license": "MIT", "bin": { @@ -4324,8 +3865,6 @@ }, "node_modules/punycode": { "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "dev": true, "license": "MIT", "engines": { @@ -4334,8 +3873,6 @@ }, "node_modules/queue-microtask": { "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", "dev": true, "funding": [ { @@ -4355,8 +3892,6 @@ }, "node_modules/readdirp": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", - "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", "dev": true, "license": "MIT", "engines": { @@ -4369,8 +3904,6 @@ }, "node_modules/rehype-slug": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/rehype-slug/-/rehype-slug-6.0.0.tgz", - "integrity": "sha512-lWyvf/jwu+oS5+hL5eClVd3hNdmwM1kAC0BUvEGD19pajQMIzcNUd/k9GsfQ+FfECvX+JE+e9/btsKH0EjJT6A==", "dev": true, "license": "MIT", "dependencies": { @@ -4387,8 +3920,6 @@ }, "node_modules/remark-gfm": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-4.0.1.tgz", - "integrity": "sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg==", "dev": true, "license": "MIT", "dependencies": { @@ -4406,8 +3937,6 @@ }, "node_modules/remark-parse": { "version": "11.0.0", - "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-11.0.0.tgz", - "integrity": "sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==", "devOptional": true, "license": "MIT", "dependencies": { @@ -4423,8 +3952,6 @@ }, "node_modules/remark-stringify": { "version": "11.0.0", - "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-11.0.0.tgz", - "integrity": "sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==", "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", @@ -4438,8 +3965,6 @@ }, "node_modules/resolve-from": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true, "license": "MIT", "engines": { @@ -4448,8 +3973,6 @@ }, "node_modules/reusify": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", - "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", "dev": true, "license": "MIT", "engines": { @@ -4459,9 +3982,6 @@ }, "node_modules/rimraf": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", "dev": true, "license": "ISC", "dependencies": { @@ -4476,8 +3996,6 @@ }, "node_modules/rollup": { "version": "4.57.1", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.57.1.tgz", - "integrity": "sha512-oQL6lgK3e2QZeQ7gcgIkS2YZPg5slw37hYufJ3edKlfQSGGm8ICoxswK15ntSzF/a8+h7ekRy7k7oWc3BQ7y8A==", "dev": true, "license": "MIT", "dependencies": { @@ -4521,8 +4039,6 @@ }, "node_modules/run-parallel": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", "dev": true, "funding": [ { @@ -4545,8 +4061,6 @@ }, "node_modules/sass": { "version": "1.97.3", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.97.3.tgz", - "integrity": "sha512-fDz1zJpd5GycprAbu4Q2PV/RprsRtKC/0z82z0JLgdytmcq0+ujJbJ/09bPGDxCLkKY3Np5cRAOcWiVkLXJURg==", "dev": true, "license": "MIT", "peer": true, @@ -4567,8 +4081,6 @@ }, "node_modules/semver": { "version": "7.7.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", - "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", "dev": true, "license": "ISC", "bin": { @@ -4580,8 +4092,6 @@ }, "node_modules/shebang-command": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, "license": "MIT", "dependencies": { @@ -4593,8 +4103,6 @@ }, "node_modules/shebang-regex": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true, "license": "MIT", "engines": { @@ -4603,15 +4111,11 @@ }, "node_modules/siginfo": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", - "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==", "dev": true, "license": "ISC" }, "node_modules/slash": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true, "license": "MIT", "engines": { @@ -4620,8 +4124,6 @@ }, "node_modules/source-map": { "version": "0.7.6", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.6.tgz", - "integrity": "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==", "dev": true, "license": "BSD-3-Clause", "engines": { @@ -4630,8 +4132,6 @@ }, "node_modules/source-map-js": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", - "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", "dev": true, "license": "BSD-3-Clause", "engines": { @@ -4640,22 +4140,16 @@ }, "node_modules/stackback": { "version": "0.0.2", - "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", - "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", "dev": true, "license": "MIT" }, "node_modules/std-env": { "version": "3.10.0", - "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.10.0.tgz", - "integrity": "sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==", "dev": true, "license": "MIT" }, "node_modules/strip-ansi": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "license": "MIT", "dependencies": { @@ -4667,8 +4161,6 @@ }, "node_modules/strip-json-comments": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true, "license": "MIT", "engines": { @@ -4680,8 +4172,6 @@ }, "node_modules/sucrase": { "version": "3.35.1", - "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.1.tgz", - "integrity": "sha512-DhuTmvZWux4H1UOnWMB3sk0sbaCVOoQZjv8u1rDoTV0HTdGem9hkAZtl4JZy8P2z4Bg0nT+YMeOFyVr4zcG5Tw==", "dev": true, "license": "MIT", "dependencies": { @@ -4703,8 +4193,6 @@ }, "node_modules/supports-color": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "license": "MIT", "dependencies": { @@ -4716,15 +4204,11 @@ }, "node_modules/text-table": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", "dev": true, "license": "MIT" }, "node_modules/thenify": { "version": "3.3.1", - "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", - "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", "dev": true, "license": "MIT", "dependencies": { @@ -4733,8 +4217,6 @@ }, "node_modules/thenify-all": { "version": "1.6.0", - "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", - "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", "dev": true, "license": "MIT", "dependencies": { @@ -4746,22 +4228,16 @@ }, "node_modules/tinybench": { "version": "2.9.0", - "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz", - "integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==", "dev": true, "license": "MIT" }, "node_modules/tinyexec": { "version": "0.3.2", - "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz", - "integrity": "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==", "dev": true, "license": "MIT" }, "node_modules/tinyglobby": { "version": "0.2.15", - "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", - "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", "dev": true, "license": "MIT", "dependencies": { @@ -4777,8 +4253,6 @@ }, "node_modules/tinyglobby/node_modules/fdir": { "version": "6.5.0", - "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", - "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", "dev": true, "license": "MIT", "engines": { @@ -4795,8 +4269,6 @@ }, "node_modules/tinyglobby/node_modules/picomatch": { "version": "4.0.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", - "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "dev": true, "license": "MIT", "peer": true, @@ -4809,8 +4281,6 @@ }, "node_modules/tinypool": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.1.1.tgz", - "integrity": "sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg==", "dev": true, "license": "MIT", "engines": { @@ -4819,8 +4289,6 @@ }, "node_modules/tinyrainbow": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-1.2.0.tgz", - "integrity": "sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ==", "dev": true, "license": "MIT", "engines": { @@ -4829,8 +4297,6 @@ }, "node_modules/tinyspy": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-3.0.2.tgz", - "integrity": "sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==", "dev": true, "license": "MIT", "engines": { @@ -4839,8 +4305,6 @@ }, "node_modules/to-regex-range": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, "license": "MIT", "dependencies": { @@ -4852,8 +4316,6 @@ }, "node_modules/tree-kill": { "version": "1.2.2", - "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", - "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", "dev": true, "license": "MIT", "bin": { @@ -4862,8 +4324,6 @@ }, "node_modules/trough": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.2.0.tgz", - "integrity": "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==", "license": "MIT", "funding": { "type": "github", @@ -4872,8 +4332,6 @@ }, "node_modules/ts-api-utils": { "version": "1.4.3", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.4.3.tgz", - "integrity": "sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==", "dev": true, "license": "MIT", "engines": { @@ -4885,15 +4343,11 @@ }, "node_modules/ts-interface-checker": { "version": "0.1.13", - "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", - "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", "dev": true, "license": "Apache-2.0" }, "node_modules/tsup": { "version": "8.5.1", - "resolved": "https://registry.npmjs.org/tsup/-/tsup-8.5.1.tgz", - "integrity": "sha512-xtgkqwdhpKWr3tKPmCkvYmS9xnQK3m3XgxZHwSUjvfTjp7YfXe5tT3GgWi0F2N+ZSMsOeWeZFh7ZZFg5iPhing==", "dev": true, "license": "MIT", "dependencies": { @@ -4945,8 +4399,6 @@ }, "node_modules/tsup/node_modules/resolve-from": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true, "license": "MIT", "engines": { @@ -4955,8 +4407,6 @@ }, "node_modules/type-check": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, "license": "MIT", "dependencies": { @@ -4968,8 +4418,6 @@ }, "node_modules/type-fest": { "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true, "license": "(MIT OR CC0-1.0)", "engines": { @@ -4981,8 +4429,6 @@ }, "node_modules/typescript": { "version": "5.9.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", - "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", "dev": true, "license": "Apache-2.0", "peer": true, @@ -4996,22 +4442,16 @@ }, "node_modules/ufo": { "version": "1.6.3", - "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.6.3.tgz", - "integrity": "sha512-yDJTmhydvl5lJzBmy/hyOAA0d+aqCBuwl818haVdYCRrWV84o7YyeVm4QlVHStqNrrJSTb6jKuFAVqAFsr+K3Q==", "dev": true, "license": "MIT" }, "node_modules/undici-types": { "version": "7.16.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz", - "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==", "dev": true, "license": "MIT" }, "node_modules/unified": { "version": "11.0.5", - "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz", - "integrity": "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==", "license": "MIT", "peer": true, "dependencies": { @@ -5030,8 +4470,6 @@ }, "node_modules/unist-util-is": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.1.tgz", - "integrity": "sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==", "license": "MIT", "dependencies": { "@types/unist": "^3.0.0" @@ -5043,8 +4481,6 @@ }, "node_modules/unist-util-stringify-position": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", "license": "MIT", "dependencies": { "@types/unist": "^3.0.0" @@ -5056,8 +4492,6 @@ }, "node_modules/unist-util-visit": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.1.0.tgz", - "integrity": "sha512-m+vIdyeCOpdr/QeQCu2EzxX/ohgS8KbnPDgFni4dQsfSCtpz8UqDyY5GjRru8PDKuYn7Fq19j1CQ+nJSsGKOzg==", "license": "MIT", "dependencies": { "@types/unist": "^3.0.0", @@ -5071,8 +4505,6 @@ }, "node_modules/unist-util-visit-parents": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.2.tgz", - "integrity": "sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==", "license": "MIT", "dependencies": { "@types/unist": "^3.0.0", @@ -5085,8 +4517,6 @@ }, "node_modules/uri-js": { "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -5095,8 +4525,6 @@ }, "node_modules/vfile": { "version": "6.0.3", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", - "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", "license": "MIT", "peer": true, "dependencies": { @@ -5110,8 +4538,6 @@ }, "node_modules/vfile-message": { "version": "4.0.3", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.3.tgz", - "integrity": "sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==", "license": "MIT", "dependencies": { "@types/unist": "^3.0.0", @@ -5124,8 +4550,6 @@ }, "node_modules/vite": { "version": "5.4.21", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.21.tgz", - "integrity": "sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw==", "dev": true, "license": "MIT", "peer": true, @@ -5185,8 +4609,6 @@ }, "node_modules/vite-node": { "version": "2.1.9", - "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-2.1.9.tgz", - "integrity": "sha512-AM9aQ/IPrW/6ENLQg3AGY4K1N2TGZdR5e4gu/MmmR2xR3Ll1+dib+nook92g4TV3PXVyeyxdWwtaCAiUL0hMxA==", "dev": true, "license": "MIT", "dependencies": { @@ -5208,8 +4630,6 @@ }, "node_modules/vite-node/node_modules/pathe": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz", - "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==", "dev": true, "license": "MIT" }, @@ -5487,8 +4907,6 @@ }, "node_modules/vite/node_modules/@esbuild/linux-x64": { "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", - "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", "cpu": [ "x64" ], @@ -5606,8 +5024,6 @@ }, "node_modules/vite/node_modules/esbuild": { "version": "0.21.5", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", - "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -5645,8 +5061,6 @@ }, "node_modules/vitest": { "version": "2.1.9", - "resolved": "https://registry.npmjs.org/vitest/-/vitest-2.1.9.tgz", - "integrity": "sha512-MSmPM9REYqDGBI8439mA4mWhV5sKmDlBKWIYbA3lRb2PTHACE0mgKwA8yQ2xq9vxDTuk4iPrECBAEW2aoFXY0Q==", "dev": true, "license": "MIT", "dependencies": { @@ -5711,15 +5125,11 @@ }, "node_modules/vitest/node_modules/pathe": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz", - "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==", "dev": true, "license": "MIT" }, "node_modules/which": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, "license": "ISC", "dependencies": { @@ -5734,8 +5144,6 @@ }, "node_modules/why-is-node-running": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz", - "integrity": "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==", "dev": true, "license": "MIT", "dependencies": { @@ -5751,8 +5159,6 @@ }, "node_modules/word-wrap": { "version": "1.2.5", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", - "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", "dev": true, "license": "MIT", "engines": { @@ -5761,15 +5167,11 @@ }, "node_modules/wrappy": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", "dev": true, "license": "ISC" }, "node_modules/yocto-queue": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", "dev": true, "license": "MIT", "engines": { @@ -5781,8 +5183,6 @@ }, "node_modules/zwitch": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", - "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==", "license": "MIT", "funding": { "type": "github", diff --git a/package.json b/package.json index 6e54613..666cd30 100644 --- a/package.json +++ b/package.json @@ -52,8 +52,8 @@ }, "peerDependencies": { "@jackyzha0/quartz": "^4.5.2", - "preact": "^10.0.0", "mdast-util-find-and-replace": "^3.0.1", + "preact": "^10.0.0", "rehype-slug": "^6.0.0", "remark-gfm": "^4.0.1", "remark-parse": "^11.0.0", diff --git a/src/components/StackedPages.tsx b/src/components/StackedPages.tsx index 937f49e..4932382 100644 --- a/src/components/StackedPages.tsx +++ b/src/components/StackedPages.tsx @@ -3,7 +3,7 @@ import type { QuartzComponentProps, QuartzComponentConstructor, } from "@quartz-community/types"; -import type { StackedPagesOptions } from "../types"; + import style from "./styles/stacked.scss"; // @ts-expect-error - inline script import handled by Quartz bundler import script from "./scripts/stacked.inline.ts"; diff --git a/src/components/scripts.d.ts b/src/components/scripts.d.ts deleted file mode 100644 index 89df165..0000000 --- a/src/components/scripts.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -declare module "*.inline.ts" { - const content: string; - export default content; -} diff --git a/src/components/scripts/example.inline.ts b/src/components/scripts/example.inline.ts index f167475..ddf0bcf 100644 --- a/src/components/scripts/example.inline.ts +++ b/src/components/scripts/example.inline.ts @@ -39,10 +39,8 @@ function getCurrentSlug() { // Helper: Fetch content index (commonly needed for search, graph, explorer) async function _fetchContentIndex() { try { - const response = await fetch("/static/contentIndex.json"); - const data = await response.json(); - // Handle both formats: { "slug": {...} } or { "content": { "slug": {...} } } - return data.content || data; + const data = await fetchData; + return data; } catch (error) { console.error("[Plugin] Error fetching content index:", error); return null; diff --git a/src/components/scripts/stacked.inline.ts b/src/components/scripts/stacked.inline.ts index fab3da8..a53715b 100644 --- a/src/components/scripts/stacked.inline.ts +++ b/src/components/scripts/stacked.inline.ts @@ -1,4 +1,3 @@ -// @ts-nocheck // Stacked Pages — Binder-style tab navigation for Quartz v5 // // Architecture: @@ -49,18 +48,20 @@ export function loadState(): BinderState { return parsed; } } - } catch {} + } catch { + // Ignore corrupted state + } return { tabs: [], activeIndex: -1 }; } export function saveState(state: BinderState): void { try { sessionStorage.setItem(STORAGE_KEY, JSON.stringify(state)); - } catch {} + } catch { + // Ignore storage write failures (e.g. quota exceeded, private browsing) + } } -// ── Config ──────────────────────────────────────────────────────────── - function readConfig(container: HTMLElement) { return { maxTabs: parseInt(container.dataset.maxTabs || "8", 10), @@ -104,7 +105,8 @@ function renderBinder(container: HTMLElement, state: BinderState) { const leftStrip = document.createElement("div"); leftStrip.className = "binder-strip binder-strip-left"; for (let i = 0; i < leftTabs.length; i++) { - leftStrip.appendChild(createTabElement(leftTabs[i], i, "left", state, config)); + const tab = leftTabs[i]!; + leftStrip.appendChild(createTabElement(tab, i, "left", state, config)); } container.appendChild(leftStrip); } @@ -115,7 +117,8 @@ function renderBinder(container: HTMLElement, state: BinderState) { rightStrip.className = "binder-strip binder-strip-right"; for (let i = 0; i < rightTabs.length; i++) { const realIndex = state.activeIndex + 1 + i; - rightStrip.appendChild(createTabElement(rightTabs[i], realIndex, "right", state, config)); + const tab = rightTabs[i]!; + rightStrip.appendChild(createTabElement(tab, realIndex, "right", state, config)); } container.appendChild(rightStrip); } @@ -179,6 +182,7 @@ function navigateToTab(index: number) { if (index < 0 || index >= state.tabs.length) return; const tab = state.tabs[index]; + if (!tab) return; // Update active index before navigation so the nav handler knows this is a tab switch state.activeIndex = index; saveState(state); @@ -240,7 +244,7 @@ function handleNavigation() { if (existingIndex >= 0) { // Tab already exists — just switch to it, update title in case it changed - state.tabs[existingIndex].title = title; + state.tabs[existingIndex]!.title = title; state.activeIndex = existingIndex; } else { // New page — insert as a new tab after the current active tab diff --git a/src/components/styles.d.ts b/src/components/styles.d.ts deleted file mode 100644 index 0a31e5e..0000000 --- a/src/components/styles.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -declare module "*.scss" { - const content: string; - export default content; -} diff --git a/types/globals.d.ts b/types/globals.d.ts index 4820011..8403f87 100644 --- a/types/globals.d.ts +++ b/types/globals.d.ts @@ -1,22 +1,11 @@ -interface CustomEventMap { - nav: CustomEvent<{ url: string }>; - prenav: CustomEvent; - themechange: CustomEvent<{ theme: "light" | "dark" }>; +/// + +declare module "*.scss" { + const content: string; + export default content; } -interface Document { - addEventListener( - type: K, - listener: (this: Document, ev: CustomEventMap[K]) => void, - ): void; - removeEventListener( - type: K, - listener: (this: Document, ev: CustomEventMap[K]) => void, - ): void; - dispatchEvent(ev: CustomEventMap[K] | UIEvent): void; -} - -interface Window { - addCleanup(fn: (...args: unknown[]) => void): void; - spaNavigate?(url: URL, isBack: boolean): Promise; +declare module "*.inline.ts" { + const content: string; + export default content; }