diff --git a/.gitattributes b/.gitattributes index 4fc99af2783fb8e611ae7baa0b2051f0d397d1ac..8e6d57ba0bc89ef9f83fa07ca4d81f5813e0b3da 100644 --- a/.gitattributes +++ b/.gitattributes @@ -70,3 +70,5 @@ e-commerce/.next/dev/cache/turbopack/v16.4.0-e273d5b2/00000073.sst filter=lfs di e-commerce/.next/dev/cache/turbopack/v16.4.0-e273d5b2/00000090.sst filter=lfs diff=lfs merge=lfs -text e-commerce/.next/dev/cache/turbopack/v16.4.0-e273d5b2/00000091.sst filter=lfs diff=lfs merge=lfs -text e-commerce/.next/dev/cache/turbopack/v16.4.0-e273d5b2/00000092.meta filter=lfs diff=lfs merge=lfs -text +e-commerce/node_modules/.bin/esbuild filter=lfs diff=lfs merge=lfs -text +e-commerce/node_modules/@biomejs/cli-linux-x64/biome filter=lfs diff=lfs merge=lfs -text diff --git a/e-commerce/.next/server/chunks/ssr/[root-of-the-server]__1tesa5bbyzv6u._.js.map b/e-commerce/.next/server/chunks/ssr/[root-of-the-server]__1tesa5bbyzv6u._.js.map new file mode 100644 index 0000000000000000000000000000000000000000..9704d45d2cd9260a6ab62ad8f28df5b78fbabfaf --- /dev/null +++ b/e-commerce/.next/server/chunks/ssr/[root-of-the-server]__1tesa5bbyzv6u._.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../app/favicon.ico.mjs%20%28structured%20image%20object%29","../../../../app/page.tsx","../../../../node_modules/next/src/client/image-component.tsx","../../../../node_modules/next/src/server/route-modules/app-page/vendored/rsc/react.ts","turbopack:///[project]/app/page.module.css [app-rsc] (css module)","../../../../node_modules/next/dist/client/image-component.js/__nextjs-internal-proxy.cjs%20%7B%20server%20%3D%3E%20%22%5Bproject%5D/node_modules/next/dist/client/image-component.js%22%20%7D","../../../../node_modules/next/dist/compiled/bytes/index.js"],"sourcesContent":["import src from \"IMAGE\";\nexport default { src, width: 48, height: 48 }\n","import Image from \"next/image\";\nimport styles from \"./page.module.css\";\n\nexport default function Home() {\n return (\n
\n
\n \n
\n

\n To get started, edit the{\" \"}\n page.tsx file.\n

\n

\n Looking for a starting point or more instructions? Head over to{\" \"}\n \n Templates\n {\" \"}\n or the{\" \"}\n \n Learning\n {\" \"}\n center.\n

\n
\n
\n \n \n Deploy Now\n \n \n Documentation\n \n
\n
\n
\n );\n}\n","'use client'\n\nimport React, {\n useRef,\n useEffect,\n useContext,\n useState,\n forwardRef,\n use,\n useLayoutEffect,\n} from 'react'\nimport ReactDOM from 'react-dom'\nimport Head from '../shared/lib/head'\nimport { getImgProps } from '../shared/lib/get-img-props'\nimport type {\n ImageProps,\n ImgProps,\n OnLoad,\n OnLoadingComplete,\n PlaceholderValue,\n} from '../shared/lib/get-img-props'\nimport type { ImageLoaderProps } from '../shared/lib/image-config'\nimport { RouterContext } from '../shared/lib/router-context.shared-runtime'\nimport { useImageConfig } from './use-image-config'\n\n// This is replaced by webpack alias\nimport defaultLoader from 'next/dist/shared/lib/image-loader'\nimport { useMergedRef } from './use-merged-ref'\n\nif (typeof window === 'undefined') {\n ;(globalThis as any).__NEXT_IMAGE_IMPORTED = true\n}\n\nexport type { ImageLoaderProps }\nexport type ImageLoader = (p: ImageLoaderProps) => string\n\ntype ImgElementWithDataProp = HTMLImageElement & {\n 'data-loaded-src'?: string | undefined\n}\n\ntype ImageElementProps = ImgProps & {\n unoptimized: boolean\n placeholder: PlaceholderValue\n onLoadRef: React.MutableRefObject\n onLoadingCompleteRef: React.MutableRefObject\n setBlurComplete: (b: boolean) => void\n setShowAltText: (b: boolean) => void\n sizesInput: string | undefined\n}\n\n// See https://stackoverflow.com/q/39777833/266535 for why we use this ref\n// handler instead of the img's onLoad attribute.\nfunction handleLoading(\n img: ImgElementWithDataProp,\n placeholder: PlaceholderValue,\n onLoadRef: React.MutableRefObject,\n onLoadingCompleteRef: React.MutableRefObject,\n setBlurComplete: (b: boolean) => void,\n unoptimized: boolean,\n sizesInput: string | undefined\n) {\n const src = img?.src\n if (!img || img['data-loaded-src'] === src) {\n return\n }\n img['data-loaded-src'] = src\n const p = 'decode' in img ? img.decode() : Promise.resolve()\n p.catch(() => {}).then(() => {\n if (!img.parentElement || !img.isConnected) {\n // Exit early in case of race condition:\n // - onload() is called\n // - decode() is called but incomplete\n // - unmount is called\n // - decode() completes\n return\n }\n if (placeholder !== 'empty') {\n setBlurComplete(true)\n }\n if (onLoadRef?.current) {\n // Since we don't have the SyntheticEvent here,\n // we must create one with the same shape.\n // See https://reactjs.org/docs/events.html\n const event = new Event('load')\n Object.defineProperty(event, 'target', { writable: false, value: img })\n let prevented = false\n let stopped = false\n onLoadRef.current({\n ...event,\n nativeEvent: event,\n currentTarget: img,\n target: img,\n isDefaultPrevented: () => prevented,\n isPropagationStopped: () => stopped,\n persist: () => {},\n preventDefault: () => {\n prevented = true\n event.preventDefault()\n },\n stopPropagation: () => {\n stopped = true\n event.stopPropagation()\n },\n })\n }\n if (onLoadingCompleteRef?.current) {\n onLoadingCompleteRef.current(img)\n }\n if (process.env.NODE_ENV !== 'production') {\n const { warnOnce } =\n require('../shared/lib/utils/warn-once') as typeof import('../shared/lib/utils/warn-once')\n const origSrc = new URL(src, 'http://n').searchParams.get('url') || src\n if (img.getAttribute('data-nimg') === 'fill') {\n if (!unoptimized && (!sizesInput || sizesInput === '100vw')) {\n let widthViewportRatio =\n img.getBoundingClientRect().width / window.innerWidth\n if (widthViewportRatio < 0.6) {\n if (sizesInput === '100vw') {\n warnOnce(\n `Image with src \"${origSrc}\" has \"fill\" prop and \"sizes\" prop of \"100vw\", but image is not rendered at full viewport width. Please adjust \"sizes\" to improve page performance. Read more: https://nextjs.org/docs/api-reference/next/image#sizes`\n )\n } else {\n warnOnce(\n `Image with src \"${origSrc}\" has \"fill\" but is missing \"sizes\" prop. Please add it to improve page performance. Read more: https://nextjs.org/docs/api-reference/next/image#sizes`\n )\n }\n }\n }\n if (img.parentElement) {\n const { position } = window.getComputedStyle(img.parentElement)\n const valid = ['absolute', 'fixed', 'relative']\n if (!valid.includes(position)) {\n warnOnce(\n `Image with src \"${origSrc}\" has \"fill\" and parent element with invalid \"position\". Provided \"${position}\" should be one of ${valid\n .map(String)\n .join(',')}.`\n )\n }\n }\n if (img.height === 0) {\n warnOnce(\n `Image with src \"${origSrc}\" has \"fill\" and a height value of 0. This is likely because the parent element of the image has not been styled to have a set height.`\n )\n }\n }\n\n const heightModified =\n img.height.toString() !== img.getAttribute('height')\n const widthModified = img.width.toString() !== img.getAttribute('width')\n if (\n (heightModified && !widthModified) ||\n (!heightModified && widthModified)\n ) {\n warnOnce(\n `Image with src \"${origSrc}\" has either width or height modified, but not the other. If you use CSS to change the size of your image, also include the styles 'width: \"auto\"' or 'height: \"auto\"' to maintain the aspect ratio.`\n )\n }\n }\n })\n}\n\nfunction getDynamicProps(\n fetchPriority?: string\n): Record {\n if (Boolean(use)) {\n // In React 19.0.0 or newer, we must use camelCase\n // prop to avoid \"Warning: Invalid DOM property\".\n // See https://github.com/facebook/react/pull/25927\n return { fetchPriority }\n }\n // In React 18.2.0 or older, we must use lowercase prop\n // to avoid \"Warning: Invalid DOM property\".\n return { fetchpriority: fetchPriority }\n}\n\n/**\n * A version of useLayoutEffect that doesn't warn during SSR.\n * TODO: Just useLayoutEffect once support for React 18 is dropped.\n * Do not rename this to \"isomorphic layout effect\". There is no such thing as\n * an isomorphic Layout Effect since there is no Layout on the server\n */\nconst useNonWarningLayoutEffect =\n typeof window === 'undefined' ? useEffect : useLayoutEffect\n\nconst ImageElement = forwardRef(\n (\n {\n src,\n srcSet,\n sizes,\n height,\n width,\n decoding,\n className,\n style,\n fetchPriority,\n placeholder,\n loading,\n unoptimized,\n fill,\n onLoadRef,\n onLoadingCompleteRef,\n setBlurComplete,\n setShowAltText,\n sizesInput,\n onLoad,\n onError,\n ...rest\n },\n forwardedRef\n ) => {\n const didInsertRef = useRef(false)\n const insertedImgRef = useRef(null)\n\n useNonWarningLayoutEffect(() => {\n const { current: didInsert } = didInsertRef\n const { current: img } = insertedImgRef\n\n if (!didInsert && img !== null) {\n // Replay events from during hydration that React doesn't replay.\n if (onError) {\n // If the image has an error before react hydrates, then the error is lost.\n // The workaround is to wait until the image is mounted which is after hydration,\n // then we set the src again to trigger the error handler (if there was an error).\n // This doesn't just trigger the error handler but retries the whole request.\n // TODO: Consider dispatching a synthetic event instead.\n // eslint-disable-next-line no-self-assign\n img.src = img.src\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (!src) {\n console.error(`Image is missing required \"src\" property:`, img)\n }\n if (img.getAttribute('alt') === null) {\n console.error(\n `Image is missing required \"alt\" property. Please add Alternative Text to describe the image for screen readers and search engines.`\n )\n }\n }\n if (img.complete) {\n handleLoading(\n img,\n placeholder,\n onLoadRef,\n onLoadingCompleteRef,\n setBlurComplete,\n unoptimized,\n sizesInput\n )\n }\n didInsertRef.current = true\n }\n }, [\n src,\n placeholder,\n onLoadRef,\n onLoadingCompleteRef,\n onError,\n unoptimized,\n sizesInput,\n ])\n\n const ref = useMergedRef(forwardedRef, insertedImgRef)\n\n return (\n // If you move this element creation, also move the Layout Effect above\n // reading from the ref. Otherwise we might run the Layout Effect when\n // the current value isn't set to the HTMLImageElement instance.\n {\n const currentImage = event.currentTarget\n handleLoading(\n currentImage,\n placeholder,\n onLoadRef,\n onLoadingCompleteRef,\n setBlurComplete,\n unoptimized,\n sizesInput\n )\n }}\n onError={(event) => {\n // if the real image fails to load, this will ensure \"alt\" is visible\n setShowAltText(true)\n if (placeholder !== 'empty') {\n // If the real image fails to load, this will still remove the placeholder.\n setBlurComplete(true)\n }\n if (onError) {\n onError(event)\n }\n }}\n />\n )\n }\n)\n\nfunction ImagePreload({\n isAppRouter,\n imgAttributes,\n}: {\n isAppRouter: boolean\n imgAttributes: ImgProps\n}) {\n const opts: ReactDOM.PreloadOptions = {\n as: 'image',\n imageSrcSet: imgAttributes.srcSet,\n imageSizes: imgAttributes.sizes,\n crossOrigin: imgAttributes.crossOrigin,\n referrerPolicy: imgAttributes.referrerPolicy,\n ...getDynamicProps(imgAttributes.fetchPriority),\n }\n\n if (isAppRouter && ReactDOM.preload) {\n ReactDOM.preload(imgAttributes.src, opts)\n return null\n }\n\n return (\n \n \n \n )\n}\n\n/**\n * The `Image` component is used to optimize images.\n *\n * Read more: [Next.js docs: `Image`](https://nextjs.org/docs/app/api-reference/components/image)\n */\nexport const Image = forwardRef(\n (props, forwardedRef) => {\n const pagesRouter = useContext(RouterContext)\n // We're in the app directory if there is no pages router.\n const isAppRouter = !pagesRouter\n\n const config = useImageConfig()\n\n const { onLoad, onLoadingComplete } = props\n const onLoadRef = useRef(onLoad)\n\n useEffect(() => {\n onLoadRef.current = onLoad\n }, [onLoad])\n\n const onLoadingCompleteRef = useRef(onLoadingComplete)\n\n useEffect(() => {\n onLoadingCompleteRef.current = onLoadingComplete\n }, [onLoadingComplete])\n\n const [blurComplete, setBlurComplete] = useState(false)\n const [showAltText, setShowAltText] = useState(false)\n const { props: imgAttributes, meta: imgMeta } = getImgProps(props, {\n defaultLoader,\n imgConf: config,\n blurComplete,\n showAltText,\n })\n\n return (\n <>\n {\n \n }\n {imgMeta.preload ? (\n \n ) : null}\n \n )\n }\n)\n","module.exports = (\n require('../../module.compiled') as typeof import('../../module.compiled')\n).vendored['react-rsc']!.React\n","__turbopack_context__.v({\n \"code\": \"E0kJGG_code\",\n \"ctas\": \"E0kJGG_ctas\",\n \"intro\": \"E0kJGG_intro\",\n \"logo\": \"E0kJGG_logo\",\n \"main\": \"E0kJGG_main\",\n \"page\": \"E0kJGG_page\",\n \"primary\": \"E0kJGG_primary\",\n \"secondary\": \"E0kJGG_secondary\",\n});\n","// This file is generated by next-core EcmascriptClientReferenceModule.\nconst { createClientModuleProxy } = require(\"react-server-dom-turbopack/server\");\n\n__turbopack_context__.n(createClientModuleProxy(\"[project]/node_modules/next/dist/client/image-component.js\"));\n","(()=>{\"use strict\";var e={86:e=>{\n/*!\n * bytes\n * Copyright(c) 2012-2014 TJ Holowaychuk\n * Copyright(c) 2015 Jed Watson\n * MIT Licensed\n */\ne.exports=bytes;e.exports.format=format;e.exports.parse=parse;var r=/\\B(?=(\\d{3})+(?!\\d))/g;var a=/(?:\\.0*|(\\.[^0]+)0+)$/;var t={b:1,kb:1<<10,mb:1<<20,gb:1<<30,tb:Math.pow(1024,4),pb:Math.pow(1024,5)};var i=/^((-|\\+)?(\\d+(?:\\.\\d+)?)) *(kb|mb|gb|tb|pb)$/i;function bytes(e,r){if(typeof e===\"string\"){return parse(e)}if(typeof e===\"number\"){return format(e,r)}return null}function format(e,i){if(!Number.isFinite(e)){return null}var n=Math.abs(e);var o=i&&i.thousandsSeparator||\"\";var s=i&&i.unitSeparator||\"\";var f=i&&i.decimalPlaces!==undefined?i.decimalPlaces:2;var u=Boolean(i&&i.fixedDecimals);var p=i&&i.unit||\"\";if(!p||!t[p.toLowerCase()]){if(n>=t.pb){p=\"PB\"}else if(n>=t.tb){p=\"TB\"}else if(n>=t.gb){p=\"GB\"}else if(n>=t.mb){p=\"MB\"}else if(n>=t.kb){p=\"KB\"}else{p=\"B\"}}var b=e/t[p.toLowerCase()];var l=b.toFixed(f);if(!u){l=l.replace(a,\"$1\")}if(o){l=l.split(\".\").map((function(e,a){return a===0?e.replace(r,o):e})).join(\".\")}return l+s+p}function parse(e){if(typeof e===\"number\"&&!isNaN(e)){return e}if(typeof e!==\"string\"){return null}var r=i.exec(e);var a;var n=\"b\";if(!r){a=parseInt(e,10);n=\"b\"}else{a=parseFloat(r[1]);n=r[4].toLowerCase()}return Math.floor(t[n]*a)}}};var r={};function __nccwpck_require__(a){var t=r[a];if(t!==undefined){return t.exports}var i=r[a]={exports:{}};var n=true;try{e[a](i,i.exports,__nccwpck_require__);n=false}finally{if(n)delete r[a]}return i.exports}if(typeof __nccwpck_require__!==\"undefined\")__nccwpck_require__.ab=__dirname+\"/\";var a=__nccwpck_require__(86);module.exports=a})();"],"names":["src","width","height","Image","window","globalThis","__NEXT_IMAGE_IMPORTED","handleLoading","img","placeholder","onLoadRef","onLoadingCompleteRef","setBlurComplete","unoptimized","sizesInput","p","decode","Promise","resolve","catch","then","parentElement","isConnected","current","event","Event","Object","defineProperty","writable","value","prevented","stopped","nativeEvent","currentTarget","target","isDefaultPrevented","isPropagationStopped","persist","preventDefault","stopPropagation","process","env","NODE_ENV","warnOnce","require","origSrc","URL","searchParams","get","getAttribute","widthViewportRatio","getBoundingClientRect","innerWidth","position","getComputedStyle","valid","includes","map","String","join","heightModified","toString","widthModified","getDynamicProps","fetchPriority","Boolean","use","fetchpriority","useNonWarningLayoutEffect","useEffect","useLayoutEffect","ImageElement","forwardRef","srcSet","sizes","decoding","className","style","loading","fill","setShowAltText","onLoad","onError","rest","forwardedRef","didInsertRef","useRef","insertedImgRef","didInsert","console","error","complete","ref","useMergedRef","data-nimg","currentImage","ImagePreload","isAppRouter","imgAttributes","opts","as","imageSrcSet","imageSizes","crossOrigin","referrerPolicy","ReactDOM","preload","Head","link","rel","href","undefined","props","pagesRouter","useContext","RouterContext","config","useImageConfig","onLoadingComplete","blurComplete","useState","showAltText","meta","imgMeta","getImgProps","defaultLoader","imgConf","module","exports","vendored","React","createClientModuleProxy","__turbopack_context__","n","e","bytes","format","parse","r","a","t","b","kb","mb","gb","tb","Math","pow","pb","i","Number","isFinite","abs","o","thousandsSeparator","s","unitSeparator","f","decimalPlaces","u","fixedDecimals","unit","toLowerCase","l","toFixed","replace","split","isNaN","exec","parseInt","parseFloat","floor","__nccwpck_require__","ab"],"mappings":"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","ignoreList":[3,5,6]} \ No newline at end of file diff --git a/e-commerce/.next/server/chunks/ssr/[root-of-the-server]__1uyyd8v8upnf3._.js b/e-commerce/.next/server/chunks/ssr/[root-of-the-server]__1uyyd8v8upnf3._.js new file mode 100644 index 0000000000000000000000000000000000000000..1f6129fd2299eb265922a031d1127466c8e4a14e --- /dev/null +++ b/e-commerce/.next/server/chunks/ssr/[root-of-the-server]__1uyyd8v8upnf3._.js @@ -0,0 +1,14 @@ +module.exports=[[4054,(a,b,c)=>{var d=a.r(24361),e=a.r(75465),f={stream:!0},g=Object.prototype.hasOwnProperty;function h(a){var b=globalThis.__next_require__(a);return"function"!=typeof b.then||"fulfilled"===b.status?null:(b.then(function(a){b.status="fulfilled",b.value=a},function(a){b.status="rejected",b.reason=a}),b)}var i=new WeakSet,j=new WeakSet;function k(){}function l(a){for(var b=a[1],c=[],d=0;de||35===e||114===e||120===e?(h=e,e=3,d++):(h=0,e=3);continue;case 2:44===(l=c[d++])?e=4:i=i<<4|(96c.length&&(l=-1)}var m=c.byteOffset+d;if(-1c||114===c||120===c?(g=c,c=3,b++):(g=0,c=3);continue;case 2:44===(k=a.charCodeAt(b++))?c=4:h=h<<4|(963*h)throw Error("String chunks need to be passed in their original shape. Not split into smaller string chunks. This is a bug in the wiring of the React streams.");k=a.length}if(-1{b.exports=a.r(4054)},43070,54015,a=>{var b;let{env:c,stdout:d}=(null==(b=globalThis)?void 0:b.process)??{},e=c&&!c.NO_COLOR&&(c.FORCE_COLOR||(null==d?void 0:d.isTTY)&&!c.CI&&"dumb"!==c.TERM);(null==d?void 0:d.isTTY)||c.NEXT_PRIVATE_PROMPT_OUTPUT;let f=(a,b,c,d)=>{let e=a.substring(0,d)+c,g=a.substring(d+b.length),h=g.indexOf(b);return~h?e+f(g,b,c,h):e+g},g=(a,b,c=a)=>e?d=>{let e=""+d,g=e.indexOf(b,a.length);return~g?a+f(e,b,c,g)+b:a+e+b}:String,h=g("\x1b[1m","\x1b[22m","\x1b[22m\x1b[1m");g("\x1b[2m","\x1b[22m","\x1b[22m\x1b[2m"),g("\x1b[3m","\x1b[23m"),g("\x1b[4m","\x1b[24m"),g("\x1b[7m","\x1b[27m"),g("\x1b[8m","\x1b[28m"),g("\x1b[9m","\x1b[29m"),g("\x1b[30m","\x1b[39m");let i=g("\x1b[31m","\x1b[39m"),j=g("\x1b[32m","\x1b[39m"),k=g("\x1b[33m","\x1b[39m");g("\x1b[34m","\x1b[39m");let l=g("\x1b[35m","\x1b[39m");g("\x1b[38;2;173;127;168m","\x1b[39m"),g("\x1b[36m","\x1b[39m");let m=g("\x1b[37m","\x1b[39m");g("\x1b[90m","\x1b[39m"),g("\x1b[40m","\x1b[49m"),g("\x1b[41m","\x1b[49m"),g("\x1b[42m","\x1b[49m"),g("\x1b[43m","\x1b[49m"),g("\x1b[44m","\x1b[49m"),g("\x1b[45m","\x1b[49m"),g("\x1b[46m","\x1b[49m"),g("\x1b[47m","\x1b[49m");class n{constructor(a,b,c){this.prev=null,this.next=null,this.key=a,this.data=b,this.size=c}}class o{constructor(){this.prev=null,this.next=null}}class p{constructor(a,b,c){this.cache=new Map,this.totalSize=0,this.maxSize=a,this.calculateSize=b,this.onEvict=c,this.head=new o,this.tail=new o,this.head.next=this.tail,this.tail.prev=this.head}addToHead(a){a.prev=this.head,a.next=this.head.next,this.head.next.prev=a,this.head.next=a}removeNode(a){a.prev.next=a.next,a.next.prev=a.prev}moveToHead(a){this.removeNode(a),this.addToHead(a)}removeTail(){let a=this.tail.prev;return this.removeNode(a),a}set(a,b){let c=(null==this.calculateSize?void 0:this.calculateSize.call(this,b,a))??1;if(c<=0)throw Error(`LRUCache: calculateSize returned ${c}, but size must be > 0. Items with size 0 would never be evicted, causing unbounded cache growth.`);if(c>this.maxSize)return console.warn("Single item size exceeds maxSize"),!1;let d=this.cache.get(a);if(d)d.data=b,this.totalSize=this.totalSize-d.size+c,d.size=c,this.moveToHead(d);else{let d=new n(a,b,c);this.cache.set(a,d),this.addToHead(d),this.totalSize+=c}for(;this.totalSize>this.maxSize&&this.cache.size>0;){let a=this.removeTail();this.cache.delete(a.key),this.totalSize-=a.size,null==this.onEvict||this.onEvict.call(this,a.key,a.data)}return!0}has(a){return this.cache.has(a)}get(a){let b=this.cache.get(a);if(b)return this.moveToHead(b),b.data}*[Symbol.iterator](){let a=this.head.next;for(;a&&a!==this.tail;){let b=a;yield[b.key,b.data],a=a.next}}remove(a){let b=this.cache.get(a);b&&(this.removeNode(b),this.cache.delete(a),this.totalSize-=b.size)}get size(){return this.cache.size}get currentSize(){return this.totalSize}}a.s(["f",0,p],54015);let q={wait:m(h("○")),error:i(h("⨯")),warn:k(h("⚠")),ready:"▲",info:m(h(" ")),event:j(h("✓")),trace:l(h("»"))},r={log:"log",warn:"warn",error:"error"};function s(...a){!function(a,...b){(""===b[0]||void 0===b[0])&&1===b.length&&b.shift();let c=a in r?r[a]:"log",d=q[a];0===b.length?console[c](""):1===b.length&&"string"==typeof b[0]?console[c](d+" "+b[0]):console[c](d,...b)}("warn",...a)}let t=new p(1e4,a=>a.length);new p(1e4,a=>a.length),a.s(["S",0,s,"R",0,function(...a){let b=a.join(" ");t.has(b)||(t.set(b,b),s(...a))}],43070)},91562,a=>{let b="next-router-state-tree",c="next-router-prefetch",d="next-router-segment-prefetch",e="next-hmr-refresh",f=["rsc",b,c,e,d];a.s(["ACTION_HEADER",0,"next-action","FLIGHT_HEADERS",0,f,"NEXT_DID_POSTPONE_HEADER",0,"x-nextjs-postponed","NEXT_HMR_REFRESH_HEADER",0,e,"NEXT_INSTANT_TEST_COOKIE",0,"next-instant-navigation-testing","NEXT_IS_PRERENDER_HEADER",0,"x-nextjs-prerender","NEXT_ROUTER_PREFETCH_HEADER",0,c,"NEXT_ROUTER_SEGMENT_PREFETCH_HEADER",0,d,"NEXT_ROUTER_STATE_TREE_HEADER",0,b,"RSC_CONTENT_TYPE_HEADER",0,"text/x-component","RSC_HEADER",0,"rsc"])},20575,a=>{var b=a.i(92977);a.n(b)},5476,a=>{var b=a.i(48552);a.n(b)},88471,a=>{var b=a.i(83919);a.n(b)},28212,a=>{var b=a.i(26768);a.n(b)},71717,a=>{var b,c=((b={})[b.SeeOther=303]="SeeOther",b[b.TemporaryRedirect=307]="TemporaryRedirect",b[b.PermanentRedirect=308]="PermanentRedirect",b);a.s(["RedirectStatusCode",0,c])},54691,a=>{var b=a.i(17910);a.n(b)},21751,a=>{let b={shared:"shared",reactServerComponents:"rsc",serverSideRendering:"ssr",actionBrowser:"action-browser",apiNode:"api-node",apiEdge:"api-edge",middleware:"middleware",instrument:"instrument",edgeAsset:"edge-asset",appPagesBrowser:"app-pages-browser",pagesDirBrowser:"pages-dir-browser",pagesDirEdge:"pages-dir-edge",pagesDirNode:"pages-dir-node"};b.reactServerComponents,b.actionBrowser,b.reactServerComponents,b.actionBrowser,b.instrument,b.middleware,b.apiNode,b.apiEdge,b.serverSideRendering,b.appPagesBrowser,b.reactServerComponents,b.actionBrowser,b.serverSideRendering,b.appPagesBrowser,b.shared,b.instrument,b.middleware,b.reactServerComponents,b.serverSideRendering,b.appPagesBrowser,b.actionBrowser,a.s(["CACHE_ONE_YEAR_SECONDS",0,31536e3,"HTML_CONTENT_TYPE_HEADER",0,"text/html; charset=utf-8","INFINITE_CACHE",0,0xfffffffe,"NEXT_CACHE_REVALIDATED_TAGS_HEADER",0,"x-next-revalidated-tags","NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER",0,"x-next-revalidate-tag-token","NEXT_CACHE_TAGS_HEADER",0,"x-next-cache-tags","NEXT_CACHE_TAG_MAX_ITEMS",0,128,"NEXT_CACHE_TAG_MAX_LENGTH",0,256,"NEXT_NAV_DEPLOYMENT_ID_HEADER",0,"x-nextjs-deployment-id","NEXT_RESUME_HEADER",0,"next-resume","NEXT_RESUME_STATE_LENGTH_HEADER",0,"x-next-resume-state-length"])},40795,a=>{var b,c=((b={}).BLOCKING_STATIC_RENDER="BLOCKING_STATIC_RENDER",b.PRERENDER="PRERENDER",b.NOT_FOUND="NOT_FOUND",b);a.s(["FallbackMode",0,c,"parseFallbackField",0,function(a){if("string"==typeof a)return"PRERENDER";if(null===a)return"BLOCKING_STATIC_RENDER";if(!1===a)return"NOT_FOUND";if(void 0!==a)throw Error(`Invalid fallback option: ${a}. Fallback option must be a string, null, undefined, or false.`)}])},82622,a=>{var b=a.i(24150);a.n(b)},6983,a=>{var b=a.i(40771);a.n(b)},2754,a=>{var b=a.i(7997),c=a.i(717),d=a.i(91505),e=a.i(56704),f=a.i(85034),g=a.i(32885);async function h(a){let b,c,d,{layout:e,page:f,defaultPage:h}=a[2],i=void 0!==e,j=void 0!==f,k=void 0!==h&&a[0]===g.F;return i?(b=await e[0](),c="layout",d=e[1]):j?(b=await f[0](),c="page",d=f[1]):k&&(b=await h[0](),c="page",d=h[1]),{mod:b,modType:c,filePath:d}}async function i(a,b){let{[b]:c}=a[2];if(void 0!==c)return await c[0]()}var j=a.i(43070),k=a.i(52589),l=a.i(52879);function m(a){return a.$$typeof===Symbol.for("react.server.reference")}function n(a){return Array.isArray(a)?a:[a]}function o(a){if(null!=a)return n(a)}var p=a.i(24373);function q(a){return"string"==typeof a||a instanceof URL}function r(){let a=!!process.env.__NEXT_EXPERIMENTAL_HTTPS;return new URL(`${a?"https":"http"}://localhost:${process.env.PORT||3e3}`)}function s(a,b){if(a instanceof URL)return a;if(!a)return null;try{return new URL(a)}catch{}b||(b=r());let c=b.pathname||"";return new URL(p.default.posix.join(c,a),b)}let t=/^(?:\/((?!\.well-known(?:\/.*)?)(?:[^/]+\/)*[^/]+\.\w+))(\/?|$)/i;function u(a,b,c,{trailingSlash:d}){var e,f;a="string"==typeof(e=a)&&e.startsWith("./")?p.default.posix.resolve(c,e):e;let g="",h=b?s(a,b):a;if(g="string"==typeof h?h:"/"===h.pathname&&0===h.searchParams.size?h.origin:h.href,d&&!g.endsWith("/")){let a=g.startsWith("/"),c=g.includes("?"),d=!1,e=!1;if(!a){try{let a=new URL(g);d=null!=b&&a.origin!==b.origin,f=a.pathname,e=t.test(f)}catch{d=!0}if(!e&&!d&&!c)return`${g}/`}}return g}function v(a,b){return a?a.replace(/%s/g,b):b}function w(a,b){let c,d="string"!=typeof a&&a&&"template"in a?a.template:null;return("string"==typeof a?c=v(b,a):a&&("default"in a&&(c=v(b,a.default)),"absolute"in a&&a.absolute&&(c=a.absolute)),a&&"string"!=typeof a)?{template:d,absolute:c||""}:{absolute:c||a||"",template:d}}var x=a.i(42440);let y=["authors","tags"],z=["albums","musicians"],A=["actors","directors","writers","tags"],B=["emails","phoneNumbers","faxNumbers","alternateLocale","audio","videos"];function C(a,b,c){let d=o(a);if(!d)return d;let e=[];for(let a of d){let d=function(a,b,c){if(!a)return;let d=q(a),e=d?a:a.url;if(!e)return;let f=!!process.env.VERCEL;if("string"==typeof e&&!(0,x.isFullStringUrl)(e)&&(!b||c)){let a=function(a){let b,c,d=r(),e=(b=process.env.VERCEL_BRANCH_URL||process.env.VERCEL_URL)?new URL(`https://${b}`):void 0,f=(c=process.env.VERCEL_PROJECT_PRODUCTION_URL)?new URL(`https://${c}`):void 0;return e&&"preview"===process.env.VERCEL_ENV?e:a||f||d}(b);f||b||(0,j.R)(`metadataBase property in metadata export is not set for resolving social open graph or twitter images, using "${a.origin}". See https://nextjs.org/docs/app/api-reference/functions/generate-metadata#metadatabase`),b=a}return d?{url:s(e,b)}:{...a,url:s(e,b)}}(a,b,c);d&&e.push(d)}return e}let D={article:y,book:y,"music.song":z,"music.album":z,"music.playlist":["albums","musicians"],"music.radio_station":["creators"],"video.movie":A,"video.episode":A},E=async(a,b,c,d,e)=>{var f;if(!a)return null;let g={...a,title:w(a.title,e)};for(let b of(f=a&&"type"in a?a.type:void 0)&&f in D?D[f].concat(B):B)if(b in a&&"url"!==b){let c=a[b];g[b]=c?n(c):null}return g.images=C(a.images,b,d.isStaticMetadataRouteFile),g.url=a.url?u(a.url,b,await c,d):null,g},F=["site","siteId","creator","creatorId","description"],G=(a,b,c,d)=>{var e;if(!a)return null;let f="card"in a?a.card:void 0,g={...a,title:w(a.title,d)};for(let b of F)g[b]=a[b]||null;if(g.images=C(a.images,b,c.isStaticMetadataRouteFile),f=f||((null==(e=g.images)?void 0:e.length)?"summary_large_image":"summary"),g.card=f,"card"in g)switch(g.card){case"player":g.players=o(g.players)||[];break;case"app":g.app=g.app||{}}return g};function H(a,b,c,d){if(a instanceof URL){let b=new URL(c,a);a.searchParams.forEach((a,c)=>b.searchParams.set(c,a)),a=b}return u(a,b,c,d)}let I=a=>{var b;if(!a)return null;let c=[];return null==(b=o(a))||b.forEach(a=>{"string"==typeof a?c.push({color:a}):"object"==typeof a&&c.push({color:a.color,media:a.media})}),c};async function J(a,b,c,d){if(!a)return null;let e={};for(let[f,g]of Object.entries(a))if("string"==typeof g||g instanceof URL){let a=await c;e[f]=[{url:H(g,b,a,d)}]}else if(g&&g.length){e[f]=[];let a=await c;g.forEach((c,g)=>{let h=H(c.url,b,a,d);e[f][g]={url:h,title:c.title}})}return e}async function K(a,b,c,d){return a?{url:H("string"==typeof a||a instanceof URL?a:a.url,b,await c,d)}:null}let L=async(a,b,c,d)=>{if(!a)return null;let e=await K(a.canonical,b,c,d),f=await J(a.languages,b,c,d);return{canonical:e,languages:f,media:await J(a.media,b,c,d),types:await J(a.types,b,c,d)}},M=["noarchive","nosnippet","noimageindex","nocache","notranslate","indexifembedded","nositelinkssearchbox","unavailable_after","max-video-preview","max-image-preview","max-snippet"],N=a=>{if(!a)return null;if("string"==typeof a)return a;let b=[];for(let c of(a.index?b.push("index"):"boolean"==typeof a.index&&b.push("noindex"),a.follow?b.push("follow"):"boolean"==typeof a.follow&&b.push("nofollow"),M)){let d=a[c];void 0!==d&&!1!==d&&b.push("boolean"==typeof d?c:`${c}:${d}`)}return b.join(", ")},O=a=>a?{basic:N(a),googleBot:"string"!=typeof a?N(a.googleBot):null}:null,P=["google","yahoo","yandex","me","other"],Q=a=>{if(!a)return null;let b={};for(let c of P){let d=a[c];if(d)if("other"===c)for(let c in b.other={},a.other){let d=o(a.other[c]);d&&(b.other[c]=d)}else b[c]=o(d)}return b},R=a=>{var b;if(!a)return null;if(!0===a)return{capable:!0};let c=a.startupImage?null==(b=o(a.startupImage))?void 0:b.map(a=>"string"==typeof a?{url:a}:a):null;return{capable:!("capable"in a)||!!a.capable,title:a.title||null,startupImage:c,statusBarStyle:a.statusBarStyle||"default"}},S=a=>{if(!a)return null;for(let b in a)a[b]=o(a[b]);return a},T=async(a,b,c,d)=>a?{appId:a.appId,appArgument:a.appArgument?H(a.appArgument,b,await c,d):void 0}:null,U=a=>a?{appId:a.appId,admins:o(a.admins)}:null,V=async(a,b,c,d)=>({previous:(null==a?void 0:a.previous)?H(a.previous,b,await c,d):null,next:(null==a?void 0:a.next)?H(a.next,b,await c,d):null}),W=["icon","shortcut","apple","other"];function X(a){return q(a)?{url:a}:(Array.isArray(a),a)}let Y=a=>{if(!a)return null;let b={icon:[],apple:[]};if(Array.isArray(a))b.icon=a.map(X).filter(Boolean);else if(q(a))b.icon=[X(a)];else for(let c of W){let d=o(a[c]);d&&(b[c]=d.map(X))}return b};var Z=a.i(75164),$=a.i(18970);function _(a){if(a instanceof URL)return a.toString();if(Array.isArray(a))return a.map(a=>_(a));if(a&&"object"==typeof a){let b={};for(let[c,d]of Object.entries(a))b[c]=_(d);return b}return a}function aa(a){if("string"==typeof a)try{a=new URL(a)}catch{throw Error(`metadataBase is not a valid URL: ${a}`)}return a}async function ab(a,b,c,d,e,f,g,h){var i,j;if(!d)return c;let{icon:k,apple:l,openGraph:m,twitter:n,manifest:o}=d;if(k&&(g.icon=k),l&&(g.apple=l),n&&!(null==b||null==(i=b.twitter)?void 0:i.hasOwnProperty("images"))){let b=G({...c.twitter,images:n},a,{...e,isStaticMetadataRouteFile:!0},f.twitter);c.twitter=_(b)}if(m&&!(null==b||null==(j=b.openGraph)?void 0:j.hasOwnProperty("images"))){let b=await E({...c.openGraph,images:m},a,h,{...e,isStaticMetadataRouteFile:!0},f.openGraph);c.openGraph=_(b)}return o&&(c.manifest=o),c}async function ac(a,b,{metadata:c,resolvedMetadata:d,staticFilesMetadata:e,titleTemplates:f,metadataContext:g,buildState:h,leafSegmentStaticIcons:i,cloneResolvedMetadata:j=!0}){let k=j?structuredClone(d):d,l=aa((null==c?void 0:c.metadataBase)!==void 0?c.metadataBase:d.metadataBase);for(let d in c)switch(d){case"title":k.title=w(c.title,f.title);break;case"alternates":k.alternates=_(await L(c.alternates,l,b,g));break;case"openGraph":k.openGraph=_(await E(c.openGraph,l,b,g,f.openGraph));break;case"twitter":k.twitter=_(G(c.twitter,l,g,f.twitter));break;case"facebook":k.facebook=U(c.facebook);break;case"verification":k.verification=Q(c.verification);break;case"icons":k.icons=_(Y(c.icons));break;case"appleWebApp":k.appleWebApp=R(c.appleWebApp);break;case"appLinks":k.appLinks=_(S(c.appLinks));break;case"robots":k.robots=O(c.robots);break;case"archives":case"assets":case"bookmarks":case"keywords":k[d]=o(c[d]);break;case"authors":k[d]=_(o(c.authors));break;case"itunes":k[d]=await T(c.itunes,l,b,g);break;case"pagination":k.pagination=await V(c.pagination,l,b,g);break;case"abstract":case"applicationName":case"description":case"generator":case"creator":case"publisher":case"category":case"classification":case"referrer":case"formatDetection":k[d]=c[d]??null;break;case"manifest":case"pinterest":k[d]=_(c[d])??null;break;case"other":k.other=Object.assign({},k.other,c.other),c.other&&("apple-touch-fullscreen"in c.other&&h.warnings.add(`Use appleWebApp instead +Read more: https://nextjs.org/docs/app/api-reference/functions/generate-metadata`),"apple-touch-icon-precomposed"in c.other&&h.warnings.add(`Use icons.apple instead +Read more: https://nextjs.org/docs/app/api-reference/functions/generate-metadata`));break;case"metadataBase":k.metadataBase=l?l.toString():null;break;case"apple-touch-fullscreen":h.warnings.add(`Use appleWebApp instead +Read more: https://nextjs.org/docs/app/api-reference/functions/generate-metadata`);break;case"apple-touch-icon-precomposed":h.warnings.add(`Use icons.apple instead +Read more: https://nextjs.org/docs/app/api-reference/functions/generate-metadata`);break;case"themeColor":case"colorScheme":case"viewport":null!=c[d]&&h.warnings.add(`Unsupported metadata ${d} is configured in metadata export in ${a}. Please move it to viewport export instead. +Read more: https://nextjs.org/docs/app/api-reference/functions/generate-viewport`)}return ab(l,c,k,e,g,f,i,b)}function ad(a,b,c){if("function"==typeof a.generateViewport){let{route:d}=c,e=af(a.generateViewport,b);return Object.assign(b=>(0,Z.getTracer)().trace($.ResolveMetadataSpan.generateViewport,{spanName:`generateViewport ${d}`,attributes:{"next.page":d}},()=>a.generateViewport(e,b)),{$$original:a.generateViewport})}return a.viewport||null}function ae(a,b,c){if("function"==typeof a.generateMetadata){let{route:d}=c,e=af(a.generateMetadata,b);return Object.assign(b=>(0,Z.getTracer)().trace($.ResolveMetadataSpan.generateMetadata,{spanName:`generateMetadata ${d}`,attributes:{"next.page":d}},()=>a.generateMetadata(e,b)),{$$original:a.generateMetadata})}return a.metadata||null}function af(a,b){return!function(a){if(!m(a))return!1;let{type:b}=(0,l.p)(a.$$id);return"use-cache"===b}(a)?b:"searchParams"in b?{...b,$$isPage:!0}:{...b,$$isLayout:!0}}async function ag(a,b,c){if(!(null==a?void 0:a[c]))return;let d=a[c].map(async a=>await a(b));return(null==d?void 0:d.length)>0?(await Promise.all(d)).flat():void 0}async function ah(a,b){let{metadata:c}=a;if(!c)return null;let[d,e,f,g]=await Promise.all([ag(c,b,"icon"),ag(c,b,"apple"),ag(c,b,"openGraph"),ag(c,b,"twitter")]);return{icon:d,apple:e,openGraph:f,twitter:g,manifest:c.manifest}}let ai=a=>!!(null==a?void 0:a.absolute),aj=a=>ai(null==a?void 0:a.title);function ak(a,b){a&&(!aj(a)&&aj(b)&&(a.title=b.title),!a.description&&b.description&&(a.description=b.description))}async function al({tree:a,metadataItems:b,errorMetadataItem:c,props:d,route:e,errorConvention:f}){let g,j,k=!!(f&&a[2][f]);if(f)g=await i(a,"layout"),j=f;else{let{mod:b,modType:c}=await h(a);g=b,j=c}j&&(e+=`/${j}`);let l=await ah(a[2],d),m=g?ae(g,d,{route:e}):null;if(b.push([m,l]),k&&f){let b=await i(a,f),g=b?ae(b,d,{route:e}):null;c[0]=g,c[1]=l}}async function am({tree:a,viewportItems:b,errorViewportItemRef:c,props:d,route:e,errorConvention:f}){let g,j,k=!!(f&&a[2][f]);if(f)g=await i(a,"layout"),j=f;else{let{mod:b,modType:c}=await h(a);g=b,j=c}j&&(e+=`/${j}`);let l=g?ad(g,d,{route:e}):null;if(b.push(l),k&&f){let b=await i(a,f);c.current=b?ad(b,d,{route:e}):null}}let an=(0,c.cache)(async function(a,b,c,d){return ao([],a,void 0,{},null,b,c,[null,null],d)});async function ao(a,b,c,e,f,h,i,j,l){let[m,n,{page:o}]=b,p=c&&c.length?[...c,m]:[m],q=e,r=(0,d.getSegmentParam)(m);if(r){let a=l[r.paramName];null!=a&&(q={...e,[r.paramName]:a})}let s=(null==r?void 0:r.paramType)==="optional-catchall"&&(null===l[r.paramName]||void 0===l[r.paramName])?r.paramName:f,t=(0,k._)(q,s);for(let c in await al({tree:b,metadataItems:a,errorMetadataItem:j,errorConvention:i,props:void 0!==o?{params:t,searchParams:h}:{params:t},route:p.filter(a=>a!==g.z).join("/")}),n){let b=n[c];await ao(a,b,p,q,s,h,i,j,l)}return 0===Object.keys(n).length&&i&&a.push(j),a}let ap=(0,c.cache)(async function(a,b,c,d){return aq([],a,void 0,{},null,b,c,{current:null},d)});async function aq(a,b,c,e,f,h,i,j,l){let m,[n,o,{page:p}]=b,q=c&&c.length?[...c,n]:[n],r=e,s=(0,d.getSegmentParam)(n);if(s){let a=l[s.paramName];null!=a&&(r={...e,[s.paramName]:a})}let t=(null==s?void 0:s.paramType)==="optional-catchall"&&(null===l[s.paramName]||void 0===l[s.paramName])?s.paramName:f,u=(0,k._)(r,t);for(let c in m=void 0!==p?{params:u,searchParams:h}:{params:u},await am({tree:b,viewportItems:a,errorViewportItemRef:j,errorConvention:i,props:m,route:q.filter(a=>a!==g.z).join("/")}),o){let b=o[c];await aq(a,b,q,r,t,h,i,j,l)}return 0===Object.keys(o).length&&i&&a.push(j.current),a}let ar=()=>{};function as(a,b){if("function"==typeof b){let d=function(a){if(!m(a))return null;let b=(0,l.p)(a.$$id);return"use-cache"===b.type?b:null}(b.$$original);if(d&&d.usedArgs[1]){var c;let d,e,f=new Promise(b=>a.push(b));a.push((c=async()=>b(f),e={then:(a,b)=>(d||(d=Promise.resolve(c())),d.then(a=>{e.value=a}).catch(()=>{}),d.then(a,b))}))}else{let c;d?(a.push(ar),c=b()):c=b(new Promise(b=>a.push(b))),a.push(c),c instanceof Promise&&c.catch(a=>({__nextError:a}))}}else"object"==typeof b?a.push(b):a.push(null)}async function at(a,b,c,d){let e,f={viewport:null,themeColor:null,colorScheme:null,metadataBase:null,title:null,description:null,applicationName:null,authors:null,generator:null,keywords:null,referrer:null,creator:null,publisher:null,robots:null,manifest:null,alternates:{canonical:null,languages:null,media:null,types:null},icons:null,openGraph:null,twitter:null,verification:{},appleWebApp:null,formatDetection:null,itunes:null,facebook:null,pinterest:null,abstract:null,appLinks:null,archives:null,assets:null,bookmarks:null,category:null,classification:null,pagination:{previous:null,next:null},other:{}},g={title:null,twitter:null,openGraph:null},h={warnings:new Set},i={icon:[],apple:[]},k=function(a){let b=[];for(let c=0;c0||i.apple.length>0)&&!f.icons&&(f.icons={icon:[],apple:[]},i.icon.length>0&&f.icons.icon.unshift(...i.icon),i.apple.length>0&&f.icons.apple.unshift(...i.apple)),h.warnings.size>0)for(let a of h.warnings)j.S(a);return function(a,b,c,d){let{openGraph:e,twitter:f}=a;if(e){let b={},g=aj(f),h=null==f?void 0:f.description,i=!!((null==f?void 0:f.hasOwnProperty("images"))&&f.images);if(!g&&(ai(e.title)?b.title=e.title:a.title&&ai(a.title)&&(b.title=a.title)),h||(b.description=e.description||a.description||void 0),i||(b.images=e.images),Object.keys(b).length>0){let e=G(b,aa(a.metadataBase),d,c.twitter);a.twitter?a.twitter=Object.assign({},a.twitter,{...!g&&{title:null==e?void 0:e.title},...!h&&{description:null==e?void 0:e.description},...!i&&{images:null==e?void 0:e.images}}):a.twitter=_(e)}}return ak(e,a),ak(f,a),b&&(a.icons||(a.icons={icon:[],apple:[]}),a.icons.icon.unshift(b)),a}(f,e,g,d)}async function au(a){let b={width:"device-width",initialScale:1,themeColor:null,colorScheme:null},c=function(a){let b=[];for(let c=0;c0)return(0,aB.E)(h.renderSignal,g.route,"`pathname`",h)}return Promise.resolve(d);case"prerender-client":case"validation-client":throw new f.InvariantError("createServerPathnameForMetadata should not be called in client contexts.");case"cache":case"private-cache":case"unstable-cache":throw new f.InvariantError("createServerPathnameForMetadata should not be called in cache contexts.");case"build-time-generator":throw new f.InvariantError(`createServerPathnameForMetadata should not be called inside ${c.functionName}.`);case"prerender-runtime":{let{stagedRendering:d}=c,e=aB.Y.runtimeUrlData;if(d)return d.delayUntilStage(e,void 0,a);if(c.finalStage!j&&(0,ay.f)(b)?aL(a,l,i).catch(()=>null):null)}function o(){return aF(a,m,l,i,h,j).catch(b=>!j&&(0,ay.f)(b)?aH(a,m,l,i,h).catch(()=>null):null)}async function p(){return await o()}function q(){return k?null:o().then(()=>null)}function r(){let d=Promise.all([aF(a,m,l,i,h,j),aJ(a,l,i,j)]).then(()=>null);return k?(0,b.jsx)(aD.OutletBoundary,{children:(0,b.jsx)(c.Suspense,{name:"Next.MetadataOutlet",children:d})}):(0,b.jsx)(aD.OutletBoundary,{children:d})}return n.displayName="Next.Viewport",p.displayName="Next.Metadata",r.displayName="Next.MetadataOutlet",{Viewport:function(){return(0,b.jsx)(aD.ViewportBoundary,{children:(0,b.jsx)(n,{})})},Metadata:function(){return(0,b.jsxs)(aD.MetadataBoundary,{children:[(0,b.jsx)("div",{hidden:!0,children:(0,b.jsx)(c.Suspense,{name:"Next.Metadata",children:(0,b.jsx)(p,{})})}),(0,b.jsx)(q,{})]})},MetadataOutlet:r}}],2754)},68113,a=>{a.s(["scheduleOnNextTick",0,a=>{Promise.resolve().then(()=>{process.nextTick(a)})},"waitAtLeastOneReactRenderTask",0,function(){return new Promise(a=>setImmediate(a))}])},42440,a=>{a.s(["isFullStringUrl",0,function(a){return/https?:\/\//.test(a)},"parseUrl",0,function(a){let b;try{b=new URL(a,"http://n")}catch{}return b}])},96772,a=>{var b=a.i(9095),c=a.i(11857),d=a.i(10990),e=a.i(717),f=a.i(28212),g=a.i(54691),h=a.i(20575),i=a.i(5476),j=a.i(98499),k=a.i(52589),l=a.i(81793),m=a.i(88471),n=a.i(38676),o=a.i(82622),p=a.i(641),q=a.i(78266),r=a.i(75385),s=a.i(34373);a.s(["ClientPageRoot",()=>h.ClientPageRoot,"ClientSegmentRoot",()=>i.ClientSegmentRoot,"Fragment",()=>e.Fragment,"HTTPAccessFallbackBoundary",()=>m.HTTPAccessFallbackBoundary,"InstantValidation",()=>b.InstantValidation,"LayoutRouter",()=>f.default,"LoadingBoundaryProvider",()=>f.LoadingBoundaryProvider,"RenderFromTemplateContext",()=>g.default,"RootLayoutBoundary",()=>o.RootLayoutBoundary,"SegmentViewNode",()=>b.SegmentViewNode,"SegmentViewStateNode",()=>b.SegmentViewStateNode,"captureOwnerStack",()=>e.captureOwnerStack,"collectPrefetchHints",()=>s.T,"collectSegmentData",()=>s.E,"createElement",()=>e.createElement,"createMetadataComponents",()=>n.f,"createPrerenderParamsForClientSegment",()=>k.v,"createPrerenderSearchParamsForClientPage",()=>j.Q,"createServerParamsForServerSegment",()=>k.A,"createServerSearchParamsForServerPage",()=>j.Z,"createTemporaryReferenceSet",()=>c.createTemporaryReferenceSet,"decodeAction",()=>c.decodeAction,"decodeFormState",()=>c.decodeFormState,"decodeReply",()=>c.decodeReply,"isEmptyHTMLPrelude",()=>q.f,"patchFetch",()=>b.patchFetch,"preconnect",()=>p.F,"preloadFont",()=>p.i,"preloadStyle",()=>p.n,"prerender",()=>d.prerender,"prerenderToNodeStream",()=>b.prerenderToNodeStream,"renderToPipeableStream",()=>b.renderToPipeableStream,"renderToReadableStream",()=>c.renderToReadableStream,"serverHooks",0,l,"taintObjectReference",()=>r.f])},9095,38676,641,78266,75385,34373,a=>{let b,c,d,e,f,g;var h,i,j=a.i(11857),k=a.i(10990),l=a.i(717);a.i(28212),a.i(54691),a.i(20575),a.i(5476),a.i(98499),a.i(52589),a.i(88471),b=a.r(2754).createMetadataComponents,a.s(["f",0,b],38676),a.i(82622);var m=a.i(75465);a.s(["F",0,function(a,b,c){let d={};"string"==typeof b&&(d.crossOrigin=b),"string"==typeof c&&(d.nonce=c),m.default.preconnect(a,d)},"i",0,function(a,b,c,d){let e={as:"font",type:b};"string"==typeof c&&(e.crossOrigin=c),"string"==typeof d&&(e.nonce=d),m.default.preload(a,e)},"n",0,function(a,b,c){let d={as:"style"};"string"==typeof b&&(d.crossOrigin=b),"string"==typeof c&&(d.nonce=c),m.default.preload(a,d)}],641),a.i(33169),Symbol.for("next.resume-data-cache.fallback-params"),Symbol.for("next.resume-data-cache.runtime-data"),Symbol.for("next.resume-data-cache.session-data"),a.s(["f",0,function(a){try{var b,c;let d=null==(b=a.match(/^([0-9]*):/))?void 0:b[1];if(!d)return!1;let e=parseInt(d),f=a.slice(d.length+1,d.length+1+e);if("null"===f)return!1;if(/^[0-9]/.test(f)){let a=null==(c=f.match(/^([0-9]*)/))?void 0:c[1];if(!a)return!1;let b=parseInt(a);f=f.slice(a.length+b)}let g=JSON.parse(f);return Array.isArray(g)&&0===g[0]}catch{return!1}}],78266),a.s(["f",0,function(){throw Error("Taint can only be used with the taint flag.")}],75385);var n=a.i(7997),o=((h={})[h.SubtreeHasPartialPrefetching=2]="SubtreeHasPartialPrefetching",h[h.SegmentHasLoadingBoundary=4]="SegmentHasLoadingBoundary",h[h.SubtreeHasLoadingBoundary=8]="SubtreeHasLoadingBoundary",h[h.IsRootLayoutOrAbove=16]="IsRootLayoutOrAbove",h[h.ParentInlinedIntoSelf=32]="ParentInlinedIntoSelf",h[h.InlinedIntoChild=64]="InlinedIntoChild",h[h.HeadInlinedIntoSelf=128]="HeadInlinedIntoSelf",h[h.HeadOutlined=256]="HeadOutlined",h[h.InliningHintsStale=512]="InliningHintsStale",h[h.PrefetchDisabled=1024]="PrefetchDisabled",h[h.SubtreeHasInstantFalse=8192]="SubtreeHasInstantFalse",h[h.ShouldAttemptStaticShell=16384]="ShouldAttemptStaticShell",h[h.ShouldAttemptStaticPrefetch=32768]="ShouldAttemptStaticPrefetch",h[h.IsClosedParam=65536]="IsClosedParam",h[h.SubtreeHasClosedParams=131072]="SubtreeHasClosedParams",h),p=a.i(35427),q=a.i(22693),r=a.i(32885),s=a.i(68113),t=a.i(26407);let u="/_head";function v(a){if("string"==typeof a)return"/_not-found"===a?"_not-found":y(a);let b=a[0];return"$"+a[2]+"$"+y(b)}function w(a,b,c){return a+"/"+("children"===b?c:`@${y(b)}/${c}`)}let x=/^[a-zA-Z0-9\-_@]+$/;function y(a){return x.test(a)?a:"!"+btoa(a).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}a.i(23932);var z=a.i(75164);a.i(14976);var A=a.i(81793),B=a.i(22298),C=a.i(71717),D=a.i(7891),E=a.i(91191);function F(a){if("object"==typeof a&&null!==a&&"digest"in a&&"BAILOUT_TO_CLIENT_SIDE_RENDERING"===a.digest||function(a){if("object"!=typeof a||null===a||!("digest"in a)||"string"!=typeof a.digest)return!1;let b=a.digest.split(";"),[c,d]=b,e=b.slice(2,-2).join(";"),f=Number(b.at(-2));return"NEXT_REDIRECT"===c&&("replace"===d||"push"===d)&&"string"==typeof e&&!isNaN(f)&&f in C.RedirectStatusCode}(a)||(0,B.f)(a)||(0,A.isDynamicServerError)(a)||(0,D.i)(a)||(0,E.N)(a))return a.digest}var G=((i={}).ProspectiveRender="the prospective render",i.SegmentCollection="segment collection",i.InstantValidation="instant validation",i),H=a.i(56704);let I=()=>{};function J(a){return"string"==typeof a?a:[a.n,a.k??"",a.t,a.s]}function K(a,b){return"string"!=typeof a&&b&&null!==a.k?{n:a.n,t:a.t,k:null,s:a.s}:a}function L(a){let b=F(a);if(b)return b;if(process.env.NEXT_DEBUG_BUILD||process.env.__NEXT_VERBOSE_LOGGING){let b=H.workAsyncStorage.getStore();!function(a,b,c){let d;if(!F(a)){if("object"==typeof a&&null!==a&&"message"in a&&"string"==typeof a.message&&a.message.startsWith("This rendered a large document (>"))return console.error(a);if("object"==typeof a&&null!==a&&"string"==typeof a.message){if(d=a.message,"string"==typeof a.stack){let e=a.stack,f=e.indexOf("\n");if(f>-1){let a=Error(`Route ${b} errored during ${c}. These errors are normally ignored and may not prevent the route from prerendering but are logged here because build debugging is enabled. + +Original Error: ${d}`);a.stack="Error: "+a.message+e.slice(f),console.error(a);return}}}else"string"==typeof a&&(d=a);if(d)return console.error(`Route ${b} errored during ${c}. These errors are normally ignored and may not prevent the route from prerendering but are logged here because build debugging is enabled. No stack was provided. + +Original Message: ${d}`);console.error(`Route ${b} errored during ${c}. These errors are normally ignored and may not prevent the route from prerendering but are logged here because build debugging is enabled. The thrown value is logged just following this message`),console.error(a)}}(a,(null==b?void 0:b.route)??"unknown route",G.SegmentCollection)}}async function M(a,b,c,d,e,h,i,j){let l,m,o,r=new Map,u=!0;try{let a=await (0,p.createFromReadableStream)(U((0,q.H)(b)),{findSourceMapURL:g,serverConsumerManifest:e});await (0,s.waitAtLeastOneReactRenderTask)(),void 0!==a.a&&(o=await a.a),void 0!==a.u&&(u=function(a,b,c=b){switch(a.then(I,I),a.status){case"fulfilled":return a.value;case"rejected":return c;default:return b}}(a.u,!1,!0))}catch{}let v=(0,t.f)();if("number"==typeof o){let a=o;l=new ReadableStream({async start(c){c.enqueue(b.subarray(0,a)),await v.promise,c.enqueue(b.subarray(a))}})}else l=U((0,q.H)(b)),v.resolve(null===o);let w=new AbortController,x=async()=>{await (0,s.waitAtLeastOneReactRenderTask)(),w.abort()},y=[];try{m=(await (0,k.prerender)((0,n.jsx)(Q,{isClientParamParsingEnabled:a,pageDataStream:l,serverConsumerManifest:e,clientModules:d,staleTime:c,segmentTasks:y,onCompletedProcessingRouteTree:x,prefetchInlining:h,hints:i,isUpgradeableISRFallback:j,runtimeDataAccessed:u,shellStageRelease:v.promise}),d,{filterStackFrame:f,signal:w.signal,onError:L})).prelude,await (0,s.waitAtLeastOneReactRenderTask)()}catch(a){throw Promise.allSettled(y),a}finally{v.resolve(!1)}let z=await (0,q.W)(m);r.set("/_tree",z),r.set("/_full",b);let A=!1;for(let[a,b]of(await Promise.all(y)))r.set(a,b),a.endsWith("__PAGE__")&&(A=!0);return A||r.set("/todo-remove-fake-segment/__PAGE__",Buffer.alloc(0)),r}async function N(a,b,c,d,e,f,h,i){try{await (0,p.createFromReadableStream)((0,q.H)(b),{findSourceMapURL:g,serverConsumerManifest:e}),await (0,s.waitAtLeastOneReactRenderTask)()}catch{}let j=await (0,p.createFromReadableStream)(U((0,q.H)(b)),{findSourceMapURL:g,serverConsumerManifest:e}),k=j.t,l=k.t,m=j.b,n=k.h.r,r=0;if(h&&(r|=o.ShouldAttemptStaticShell),i&&(r|=o.ShouldAttemptStaticPrefetch),!1===f)return function a(b,c){let d=null,e=b.c;if(void 0!==e)for(let[b,f]of e)null===d&&(d={}),d[b]=a(f,c);return{hints:c,slots:d}}(l,r);let{maxSize:t,maxBundleSize:v}=f,w=j.r??null,x=j.s??T(c),y=j.u??Promise.resolve(!0),z=Promise.resolve(!1),A={segment:K(l.s,a),prefetchHints:((l.h??0)|r)&~o.InliningHintsStale,parallelRouteKey:null,parent:null},[,B]=await R(m,x,null,u,A,null,{rsc:n,varyParams:j.t.h.v},w,d,!1,y,z),C=await P(B),D={inlined:!1},{node:E}=await O(a,l,m,x,d,"",A,null,r,t,v,C,D,w,y,z);return D.inlined||(E.hints|=o.HeadOutlined),E}async function O(a,b,c,d,e,f,g,h,i,j,k,l,m,n,p,q){let s=((b.h??0)&1024)!=0,t=b.d.r,u=null;if(!s&&null!==t){let[,a]=await R(c,d,{rsc:t,varyParams:b.d.v},f,g,null,null,n,e,!1,p,q);u=await P(a)}let x=null!==u&&uR(d,e,{rsc:A,varyParams:x},g,h,a,b,n,f,p,q,r)))}let C=c.c;if(void 0!==C)for(let[c,l]of C){let o=w(g,c,v(J(l.s))),s=null!==k&&null!==k.slots?k.slots[c]??null:null,u=a(b,l,d,e,f,o,{segment:K(l.s,b),prefetchHints:0,parallelRouteKey:c,parent:h},i,j,s,B,m,n,p,q,r);void 0===t&&(t=new Map),t.set(c,u)}let D={s:h.segment};return 0!==u&&(D.h=u),void 0!==t&&(D.c=t),D}(a,r,t,z,d,"",D,f,i,j,null,B?C:null,y,k,A,m);return B||f.push((0,s.waitAtLeastOneReactRenderTask)().then(()=>R(t,z,null,u,D,null,C,y,d,k,A,m))),h(),t?{b:t,t:{t:E}}:{t:{t:E}}}async function R(a,b,c,d,e,g,h,i,k,l,m,n){let o=(0,t.f)(),p={s:e.segment};0!==e.prefetchHints&&(p.h=e.prefetchHints),null!==c&&(p.d=S(c,b,k,o.promise));let q=e.parallelRouteKey,r=e.parent,u=g;for(;null!==r&&null!==q;){let a={s:r.segment};0!==r.prefetchHints&&(a.h=r.prefetchHints),null!==u&&(null!==u.data&&(a.d=S(u.data,b,k,o.promise)),u=u.next),a.c=new Map([[q,p]]),p=a,q=r.parallelRouteKey,r=r.parent}let v={t:p};null!==h&&(v.h=S(h,b,k,o.promise));let w=0,x=(0,t.f)(),y={t:v,a:x.promise,u:m};a&&(y.b=a),null!==i&&(y.r=i),l&&(y.f=!0);let z=new AbortController,A=(0,j.renderToReadableStream)(y,k,{filterStackFrame:f,signal:z.signal,onError(a){if(!z.signal.aborted)return L(a)}}).getReader(),B=new Promise(async a=>{let b=[];for(;;){let{done:a,value:c}=await A.read();if(a)break;z.signal.aborted||(b.push(c),w+=c.byteLength)}a(b)}),C=await n,D=w;return await (0,s.waitAtLeastOneReactRenderTask)(),C?x.resolve(null):x.resolve(D),o.resolve(),await (0,s.waitAtLeastOneReactRenderTask)(),await (0,s.waitAtLeastOneReactRenderTask)(),z.abort(),[""===d?"/_index":d,Buffer.concat(await B)]}function S(a,b,c,d){let e=new Promise(async b=>{await d,await (0,k.prerender)(a.rsc,c,{filterStackFrame:f,onError(){}}),b()});return{r:a.rsc,p:e,v:a.varyParams,s:b}}function T(a){return{async *[Symbol.asyncIterator](){yield a}}}function U(a){let b=a.getReader();return new ReadableStream({async pull(a){for(;;){let{done:c,value:d}=await b.read();if(!c){a.enqueue(d);continue}return}}})}a.s(["T",0,N,"E",0,M],34373);var V=a.i(32319),W=a.i(18970);Symbol.for("@next/request-insights-store");Error("Invariant: AsyncLocalStorage accessed in runtime where it is not available");var X=a.i(21751),Y=a.i(99771);let Z=()=>{};function $(a){if(!a.body)return[a,a];let[b,d]=a.body.tee(),e=new Response(b,{status:a.status,statusText:a.statusText,headers:a.headers});Object.defineProperty(e,"url",{value:a.url,configurable:!0,enumerable:!0,writable:!1});let f=new Response(d,{status:a.status,statusText:a.statusText,headers:a.headers});return Object.defineProperty(f,"url",{value:a.url,configurable:!0,enumerable:!0,writable:!1}),c&&(e.body&&c.register(e,new WeakRef(e.body)),f.body&&c.register(f,new WeakRef(f.body))),[e,f]}globalThis.FinalizationRegistry&&(c=new FinalizationRegistry(a=>{let b=a.deref();b&&!b.locked&&b.cancel("Response object has been garbage collected").then(Z)}));var _=a.i(85034);let aa=new Set(["traceparent","tracestate"]);a.i(75700);var ab=a.i(276);let ac=/[^\t\x20-\x7e]/,ad=/[^\t\x20-\x7e]+/g,ae=Symbol.for("next-patch");function af(a,b,c){let d={...c,end:performance.timeOrigin+performance.now(),idx:a.nextFetchId||0};null==b||b.setAttributes({"http.status_code":d.status,"next.fetch.idx":d.idx,"next.fetch.cache_status":d.cacheStatus,"next.fetch.cache_reason":d.cacheReason}),a.shouldTrackFetchMetrics&&(a.fetchMetrics??=[],a.fetchMetrics.push(d))}async function ag(a,b,c,d,e,f){let g=await a.arrayBuffer(),h={headers:Object.fromEntries(a.headers.entries()),body:Buffer.from(g).toString("base64"),status:a.status,url:a.url};return c&&await d.set(b,{kind:ab.CachedRouteKind.FETCH,data:h,revalidate:e},c),await f(),new Response(g,{headers:a.headers,status:a.status,statusText:a.statusText})}async function ah(a,b,c,d,e,f,g,h,i,j){let[k,l]=$(b),m=k.arrayBuffer().then(async a=>{let b=Buffer.from(a),h={headers:Object.fromEntries(k.headers.entries()),body:b.toString("base64"),status:k.status,url:k.url};null==f||f.set(c,h),d&&await e.set(c,{kind:ab.CachedRouteKind.FETCH,data:h,revalidate:g},d)}).catch(a=>{(null==j?void 0:j.aborted)||console.warn("Failed to set fetch cache",h,a)}).finally(i),n=`cache-set-${c}`,o=a.pendingRevalidates??={},p=Promise.resolve();return n in o&&(p=o[n]),o[n]=p.then(()=>m).finally(()=>{(null==o?void 0:o[n])&&delete o[n]}),l}let ai=null;d=a.r(11857).renderToPipeableStream,e=a.r(10990).prerenderToNodeStream,globalThis.__next__clear_chunk_cache__=a.C,a.s(["InstantValidation",0,()=>{},"SegmentViewNode",0,()=>null,"SegmentViewStateNode",0,()=>null,"patchFetch",0,function(){return function(a){var b;let c;if(!0===globalThis[ae])return;let d=(b=globalThis.fetch,c=l.cache(a=>[]),function(a,d){let e,f;if(d&&d.signal)return b(a,d);if("string"!=typeof a||d){let c,g="string"==typeof a||a instanceof URL?new Request(a,d):a;if("GET"!==g.method&&"HEAD"!==g.method||g.keepalive)return b(a,d);c=Array.from(g.headers.entries()).filter(([a])=>!aa.has(a.toLowerCase())),f=JSON.stringify([g.method,c,g.mode,g.redirect,g.credentials,g.referrer,g.referrerPolicy,g.integrity]),e=g.url}else f='["GET",[],null,"follow",null,null,null,null]',e=a;let g=c(e);for(let a=0,b=g.length;a{let b=g[a][2];if(!b)throw new _.InvariantError("No cached response");let[c,d]=$(b);return g[a][2]=d,c})}let h=b(a,d),i=[f,h,null];return g.push(i),h.then(a=>{let[b,c]=$(a);return i[2]=c,b})});globalThis.fetch=function(a,{workAsyncStorage:b,workUnitAsyncStorage:c}){let d=async function(d,e){var f,g;let h;try{(h=new URL(d instanceof Request?d.url:d)).username="",h.password=""}catch{h=void 0}let i=(null==h?void 0:h.href)??"",j=(null==e||null==(f=e.method)?void 0:f.toUpperCase())||"GET",k=(null==e||null==(g=e.next)?void 0:g.internal)===!0,l="1"===process.env.NEXT_OTEL_FETCH_DISABLED,m=k?void 0:performance.timeOrigin+performance.now(),n=b.getStore(),o=c.getStore(),p=o?(0,V.getCacheSignal)(o):null;p&&p.beginRead();let q=(0,z.getTracer)().trace(k?W.NextNodeServerSpan.internalFetch:W.AppRenderSpan.fetch,{hideSpan:l,kind:z.SpanKind.CLIENT,spanName:["fetch",j,i].filter(Boolean).join(" "),attributes:{"http.url":i,"http.method":j,"net.peer.name":null==h?void 0:h.hostname,"net.peer.port":(null==h?void 0:h.port)||void 0}},async b=>{var c;let f,g,h,j,l,q;if(k||!n||n.isDraftMode)return a(d,e);let r=d&&"object"==typeof d&&"string"==typeof d.method;if(r&&e){let{next:a,...b}=e;d=new Request(d,b),e=a?{next:a}:void 0}let s=a=>(null==e?void 0:e[a])||(r?d[a]:null),t=a=>{var b,c,f;return void 0!==(null==e||null==(b=e.next)?void 0:b[a])?null==e||null==(c=e.next)?void 0:c[a]:r?null==(f=d.next)?void 0:f[a]:void 0},u=t("revalidate"),v=u,w=function(a,b){let c=[],d=[];for(let e=0;eX.NEXT_CACHE_TAG_MAX_LENGTH)d.push({tag:f,reason:`exceeded max length of ${X.NEXT_CACHE_TAG_MAX_LENGTH}`});else c.push(ac.test(f)?f.replace(ad,a=>encodeURIComponent(a)):f);if(c.length>X.NEXT_CACHE_TAG_MAX_ITEMS){console.warn(`Warning: exceeded max tag count for ${b}, dropped tags:`,a.slice(e).join(", "));break}}if(d.length>0)for(let{tag:a,reason:c}of(console.warn(`Warning: invalid tags passed to ${b}: `),d))console.log(`tag: "${a}" ${c}`);return c}(t("tags")||[],`fetch ${d.toString()}`);if(o)switch(o.type){case"prerender":case"prerender-runtime":case"prerender-client":case"validation-client":case"prerender-legacy":case"cache":case"private-cache":f=o}if(f&&Array.isArray(w)){let a=f.tags??(f.tags=[]);for(let b of w)a.includes(b)||a.push(b)}let x=null==o?void 0:o.implicitTags,y=n.fetchCache;o&&"unstable-cache"===o.type&&(y="force-no-store");let z=!!n.isUnstableNoStore,A=s("cache"),B="";"string"==typeof A&&void 0!==v&&("force-cache"===A&&0===v||"no-store"===A&&(v>0||!1===v))&&(g=`Specified "cache: ${A}" and "revalidate: ${v}", only one should be specified.`,A=void 0,v=void 0);let C="no-cache"===A||"no-store"===A||"force-no-store"===y||"only-no-store"===y,E=!y&&!A&&!v&&n.forceDynamic;"force-cache"===A&&void 0===v?v=!1:(C||E)&&(v=0),("no-cache"===A||"no-store"===A)&&(B=`cache: ${A}`),q=function(a,b){try{let c;if(!1===a||1/0===a)c=X.INFINITE_CACHE;else if("number"==typeof a&&!isNaN(a)&&a>-1)c=a;else if(void 0!==a)throw Error(`Invalid revalidate value "${a}" on "${b}", must be a non-negative number or false`);return c}catch(a){if(a instanceof Error&&a.message.includes("Invalid revalidate"))throw a;return}}(v,n.route);let F=s("headers"),G="function"==typeof(null==F?void 0:F.get)?F:new Headers(F||{}),H=G.get("authorization")||G.get("cookie"),I=!["get","head"].includes((null==(c=s("method"))?void 0:c.toLowerCase())||"get"),J=void 0==y&&(void 0==A||"default"===A)&&void 0==v,K=!!((H||I)&&(null==f?void 0:f.revalidate)===0),L=!1;if(!K&&J&&(n.isBuildTimePrerendering?L=!0:K=!0),J&&void 0!==o)switch(o.type){case"prerender":case"prerender-runtime":case"prerender-client":return p&&(p.endRead(),p=null),(0,Y.W)(o.renderSignal,n.route,"fetch()")}switch(y){case"force-no-store":B="fetchCache = force-no-store";break;case"only-no-store":if("force-cache"===A||void 0!==q&&q>0)throw Error(`cache: 'force-cache' used on fetch for ${i} with 'export const fetchCache = 'only-no-store'`);B="fetchCache = only-no-store";break;case"only-cache":if("no-store"===A)throw Error(`cache: 'no-store' used on fetch for ${i} with 'export const fetchCache = 'only-cache'`);break;case"force-cache":(void 0===v||0===v)&&(B="fetchCache = force-cache",q=X.INFINITE_CACHE)}if(void 0===q?"default-cache"!==y||z?"default-no-store"===y?(q=0,B="fetchCache = default-no-store"):z?(q=0,B="noStore call"):K?(q=0,B="auto no cache"):(B="auto cache",q=f?f.revalidate:X.INFINITE_CACHE):(q=X.INFINITE_CACHE,B="fetchCache = default-cache"):B||(B=`revalidate: ${q}`),!(n.forceStatic&&0===q)&&!K&&f&&q0,{incrementalCache:N}=n,O=!1;if(o)switch(o.type){case"request":case"cache":case"private-cache":O=o.isHmrRefresh??!1,j=o.serverComponentsHmrCache}if(N&&(M||j))try{h=await N.generateCacheKey(i,r?d:e)}catch(a){console.error("Failed to generate cache key for",d,a)}let P=n.nextFetchId??1;n.nextFetchId=P+1;let Q=()=>{},R=async(c,f)=>{let k=["cache","credentials","headers","integrity","keepalive","method","mode","redirect","referrer","referrerPolicy","window","duplex",...c?[]:["signal"]];if(r){let a=d,b={body:a._ogBody||a.body};for(let c of k)b[c]=a[c];d=new Request(a.url,b)}else if(e){let{_ogBody:a,body:b,signal:d,...f}=e;e={...f,body:a||b,signal:c?void 0:d}}let l={...e,next:{...null==e?void 0:e.next,fetchType:"origin",fetchIdx:P}};return a(d,l).then(async a=>{if(!c&&m&&af(n,b,{start:m,url:i,cacheReason:f||B,cacheStatus:0===q||f?"skip":"miss",cacheWarning:g,status:a.status,method:l.method||"GET"}),200===a.status&&N&&h&&(M||j)){let b=q>=X.INFINITE_CACHE?X.CACHE_ONE_YEAR_SECONDS:q,c=M?{fetchCache:!0,fetchUrl:i,fetchIdx:P,tags:w,isImplicitBuildTimeCache:L}:void 0;switch(null==o?void 0:o.type){case"prerender":case"prerender-client":case"validation-client":case"prerender-runtime":return ag(a,h,c,N,b,Q);case"request":case"prerender-legacy":case"cache":case"private-cache":case"unstable-cache":case"build-time-generator":case void 0:return ah(n,a,h,c,N,j,b,d,Q,s("signal"))}}return await Q(),a}).catch(a=>{throw Q(),a})},S=!1,T=!1;if(h&&N){let a;if(O&&j&&(a=j.get(h),T=!0),M&&!a){Q=await N.lock(h);let b=n.isOnDemandRevalidate?null:await N.get(h,{kind:ab.IncrementalCacheKind.FETCH,revalidate:q,fetchUrl:i,fetchIdx:P,tags:w,softTags:null==x?void 0:x.tags});if(J&&o)switch(o.type){case"prerender":case"prerender-client":case"validation-client":case"prerender-runtime":await (ai||(ai=new Promise(a=>{setTimeout(()=>{ai=null,a()},0)})),ai)}if(b?await Q():l="cache-control: no-cache (hard refresh)",(null==b?void 0:b.value)&&b.value.kind===ab.CachedRouteKind.FETCH)if((0,V.willConsumerServerCache)(o)&&b.isStale)S=!0;else{if(b.isStale&&(n.pendingRevalidates??={},!n.pendingRevalidates[h])){let a=R(!0).then(async a=>({body:await a.arrayBuffer(),headers:a.headers,status:a.status,statusText:a.statusText})).finally(()=>{n.pendingRevalidates??={},delete n.pendingRevalidates[h||""]});a.catch(console.error),n.pendingRevalidates[h]=a}a=b.value.data}}if(a){m&&af(n,b,{start:m,url:i,cacheReason:B,cacheStatus:T?"hmr":"hit",cacheWarning:g,status:a.status||200,method:(null==e?void 0:e.method)||"GET"});let c=new Response(Buffer.from(a.body,"base64"),{headers:a.headers,status:a.status});return Object.defineProperty(c,"url",{value:a.url}),c}}if(e&&"object"==typeof e&&function(a){if(!a)return!1;switch(a.type){case"prerender":case"prerender-client":case"prerender-legacy":case"cache":case"private-cache":case"unstable-cache":return!0;case"request":case"prerender-runtime":case"validation-client":case"build-time-generator":return!1;default:return a}}(o)){let{cache:a}=e;if("no-store"===a){if(o)switch(o.type){case"prerender":case"prerender-client":case"prerender-runtime":case"validation-client":return p&&(p.endRead(),p=null),(0,Y.W)(o.renderSignal,n.route,"fetch()")}(0,D.g)(n,o,`no-store fetch ${d} ${n.route}`)}let b="next"in e,{next:c={}}=e;if("number"==typeof c.revalidate&&f&&c.revalidate{let b=a[0];return{body:await b.arrayBuffer(),headers:b.headers,status:b.status,statusText:b.statusText}}).finally(()=>{var b;(null==(b=n.pendingRevalidates)?void 0:b[a])&&delete n.pendingRevalidates[a]})).catch(()=>{}),n.pendingRevalidates[a]=b,c.then(a=>a[1])}});if(p)try{return await q}finally{p&&p.endRead()}return q};return d.__nextPatched=!0,d.__nextGetStaticStore=()=>b,d._nextOriginalFetch=a,globalThis[ae]=!0,Object.defineProperty(d,"name",{value:"fetch",writable:!1}),d}(d,a)}({workAsyncStorage:H.workAsyncStorage,workUnitAsyncStorage:V.workUnitAsyncStorage})},"prerenderToNodeStream",0,e,"renderToPipeableStream",0,d],9095)},39783,a=>{a.i(72051);var b=a.i(36226),c=a.i(84513);a.i(56704);class d extends Error{constructor(){super("Cookies can only be modified in a Server Action or Route Handler. Read more: https://nextjs.org/docs/app/api-reference/functions/cookies#options")}static callable(){throw new d}}class e{static seal(a){return new Proxy(a,{get(a,b,e){switch(b){case"clear":case"delete":case"set":return d.callable;default:return c.f.get(a,b,e)}}})}static fresh(a){return new Proxy(a,{get:(a,b,d)=>c.f.get(a,b,d)})}}Symbol.for("next.mutated.cookies");class f extends Error{constructor(){super("Headers cannot be modified. Read more: https://nextjs.org/docs/app/api-reference/functions/headers")}static callable(){throw new f}}class g extends Headers{constructor(a){super(),this.headers=new Proxy(a,{get(b,d,e){if("symbol"==typeof d)return c.f.get(b,d,e);let f=d.toLowerCase(),g=Object.keys(a).find(a=>a.toLowerCase()===f);if(void 0!==g)return c.f.get(b,g,e)},set(b,d,e,f){if("symbol"==typeof d)return c.f.set(b,d,e,f);let g=d.toLowerCase(),h=Object.keys(a).find(a=>a.toLowerCase()===g);return c.f.set(b,h??d,e,f)},has(b,d){if("symbol"==typeof d)return c.f.has(b,d);let e=d.toLowerCase(),f=Object.keys(a).find(a=>a.toLowerCase()===e);return void 0!==f&&c.f.has(b,f)},deleteProperty(b,d){if("symbol"==typeof d)return c.f.deleteProperty(b,d);let e=d.toLowerCase(),f=Object.keys(a).find(a=>a.toLowerCase()===e);return void 0===f||c.f.deleteProperty(b,f)}})}static seal(a,b){let d,e=b&&b.size>0?a=>b.has(a.toLowerCase()):null,g=new Proxy(a,{get(a,b,e){switch(b){case"append":case"delete":case"set":return f.callable;case Symbol.iterator:return d[Symbol.iterator];case"get":case"has":case"getSetCookie":case"keys":case"values":case"entries":case"forEach":return d[b];default:return c.f.get(a,b,e)}}});return d=e?function(a,b,c){function*d(){for(let b of a.entries())c(b[0])||(yield b)}return{entries:d,[Symbol.iterator]:d,get:b=>c(b)?null:a.get(b),has:b=>!c(b)&&a.has(b),getSetCookie:()=>c("set-cookie")?[]:a.getSetCookie(),*keys(){for(let b of a.keys())c(b)||(yield b)},*values(){for(let[,a]of d())yield a},forEach(a,c){for(let[e,f]of d())a.call(c,f,e,b)}}}(a,g,e):{get:a.get.bind(a),has:a.has.bind(a),getSetCookie:a.getSetCookie.bind(a),keys:a.keys.bind(a),values:a.values.bind(a),entries:a.entries.bind(a),[Symbol.iterator]:a[Symbol.iterator].bind(a),forEach(b,c){for(let[d,e]of a.entries())b.call(c,e,d,g)}},g}static fresh(a){return new Proxy(a,{get:(a,b,d)=>c.f.get(a,b,d)})}merge(a){return Array.isArray(a)?a.join(", "):a}static from(a){return a instanceof Headers?a:new g(a)}append(a,b){let c=this.headers[a];"string"==typeof c?this.headers[a]=[c,b]:Array.isArray(c)?c.push(b):this.headers[a]=b}delete(a){delete this.headers[a]}get(a){let b=this.headers[a];return void 0!==b?this.merge(b):null}has(a){return void 0!==this.headers[a]}set(a,b){this.headers[a]=b}forEach(a,b){for(let[c,d]of this.entries())a.call(b,d,c,this)}*entries(){for(let a of Object.keys(this.headers)){let b=a.toLowerCase(),c=this.get(b);yield[b,c]}}*keys(){for(let a of Object.keys(this.headers)){let b=a.toLowerCase();yield b}}*values(){for(let a of Object.keys(this.headers)){let b=this.get(a);yield b}}[Symbol.iterator](){return this.entries()}}var h=a.i(91505),i=a.i(85034),j=a.i(91191),k=a.i(32319),l=a.i(88652);function m(a){(function(){let a=null,b=k.workUnitAsyncStorage.getStore();if(b)switch(b.type){case"request":case"validation-client":a=b.validationSampleTracking??null}if(!a)throw new i.InvariantError("Expected to have a workUnitStore that provides validationSampleTracking");return a})().missingSampleErrors.push(a)}function n(a){throw m(a),a}function o(a,b){return new j.g(`Route "${a}" accessed cookie "${b}" which is not defined in the \`unstable_samples\` of \`instant\`. Add it to the sample's \`cookies\` array, or \`{ name: "${b}", value: null }\` if it should be absent.`)}function p(a,b){return new j.g(`Route "${a}" accessed searchParam "${b}" which is not defined in the \`unstable_samples\` of \`instant\`. Add it to the sample's \`searchParams\` object, or \`{ "${b}": null }\` if it should be absent.`)}a.s(["assertRootParamInSamples",0,function(a,b,c){if(b&&c in b);else{let b=a.route;n(new j.g(`Route "${b}" accessed root param "${c}" which is not defined in the \`unstable_samples\` of \`instant\`. Add it to the sample's \`params\` object.`))}},"createCookiesFromSample",0,function(a,c){let d=new Set,f=new b.RequestCookies(new Headers);if(a)for(let b of a)d.add(b.name),null!==b.value&&f.set(b.name,b.value);return new Proxy(e.seal(f),{get(a,b,e){if("has"===b){let f=Reflect.get(a,b,e);return function(b){return d.has(b)||n(o(c,b)),f.call(a,b)}}if("get"===b){let f=Reflect.get(a,b,e);return function(b){let e;if("string"==typeof b)e=b;else{if(!b||"object"!=typeof b||"string"!=typeof b.name)return f.call(a,b);e=b.name}return d.has(e)||n(o(c,e)),f.call(a,e)}}return Reflect.get(a,b,e)}})},"createDraftModeForValidation",0,function(){return{get isEnabled(){return!1},enable(){throw Error("Draft mode cannot be enabled during build-time instant validation.")},disable(){throw Error("Draft mode cannot be disabled during build-time instant validation.")}}},"createExhaustiveParamsProxy",0,function(a,b,c){return new Proxy(a,{get:(d,e,f)=>("string"==typeof e&&!l.A.has(e)&&e in a&&!b.has(e)&&n(new j.g(`Route "${c}" accessed param "${e}" which is not defined in the \`unstable_samples\` of \`instant\`. Add it to the sample's \`params\` object.`)),Reflect.get(d,e,f))})},"createExhaustiveSearchParamsProxy",0,function(a,b,c){return new Proxy(a,{get:(a,d,e)=>("string"!=typeof d||l.A.has(d)||b.has(d)||n(p(c,d)),Reflect.get(a,d,e)),has:(a,d)=>("string"!=typeof d||l.A.has(d)||b.has(d)||n(p(c,d)),Reflect.has(a,d))})},"createExhaustiveURLSearchParamsProxy",0,function(a,b,c){return new Proxy(a,{get(a,d,e){if("get"===d||"getAll"===d||"has"===d){let f=Reflect.get(a,d,e);return d=>("string"!=typeof d||b.has(d)||n(p(c,d)),f.call(a,d))}let f=Reflect.get(a,d,e);return"function"!=typeof f||Object.hasOwn(a,d)?f:f.bind(a)}})},"createHeadersFromSample",0,function(a,b,c){let d=a?[...a]:[];if(d.find(([a])=>"cookie"===a.toLowerCase()))throw new j.g('Invalid sample: Defining cookies via a "cookie" header is not supported. Use `cookies: [{ name: ..., value: ... }]` instead.');if(b){let a=b.toString();d.push(["cookie",""!==a?a:null])}let e=new Set,f={};for(let[a,b]of d)e.add(a.toLowerCase()),null!==b&&(f[a.toLowerCase()]=b);return new Proxy(g.seal(g.from(f)),{get(a,b,d){if("get"===b||"has"===b){let f=Reflect.get(a,b,d);return function(b){let d=b.toLowerCase();return e.has(d)||n(new j.g(`Route "${c}" accessed header "${d}" which is not defined in the \`unstable_samples\` of \`instant\`. Add it to the sample's \`headers\` array, or \`["${d}", null]\` if it should be absent.`)),f.call(a,d)}}return Reflect.get(a,b,d)}})},"createRelativeURLFromSamples",0,function(a,b,c){let d=function(a,b){let c=[];for(let d of a.split("/")){let a=(0,h.getSegmentParam)(d);if(a)switch(a.paramType){case"catchall":case"optional-catchall":{let e=b[a.paramName];if(void 0===e)e=[d];else if(!Array.isArray(e))throw new j.g(`Expected sample param value for segment '${d}' to be an array of strings, got ${typeof e}`);c.push(...e.map(a=>encodeURIComponent(a)));break}case"dynamic":{let e=b[a.paramName];if(void 0===e)e=d;else if("string"!=typeof e)throw new j.g(`Expected sample param value for segment '${d}' to be a string, got ${typeof e}`);c.push(encodeURIComponent(e));break}case"catchall-intercepted-(..)(..)":case"catchall-intercepted-(.)":case"catchall-intercepted-(..)":case"catchall-intercepted-(...)":case"dynamic-intercepted-(..)(..)":case"dynamic-intercepted-(.)":case"dynamic-intercepted-(..)":case"dynamic-intercepted-(...)":throw new i.InvariantError("Not implemented: Validation of interception routes");default:a.paramType}else c.push(d)}return c.join("/")}(a,b??{}),e="";if(c){let a=(function(a){let b=new URLSearchParams;if(a){for(let[c,d]of Object.entries(a))if(null!=d)if(Array.isArray(d))for(let a of d)b.append(c,a);else b.set(c,d)}return b})(c).toString();a&&(e="?"+a)}return function(a,b,c=!0){let d=new URL("http://n"),e=b?new URL(b,d):a.startsWith(".")?new URL("http://n"):d,{pathname:f,searchParams:g,search:h,hash:i,href:j,origin:k}=a.startsWith("/")?new URL(`${e.protocol}//${e.host}${a}`):new URL(a,e);if(k!==d.origin)throw Error(`invariant: invalid relative URL, router received ${a}`);return{auth:null,host:null,hostname:null,pathname:f,port:null,protocol:null,query:c?function(a){let b={};for(let[c,d]of a.entries()){let a=b[c];void 0===a?b[c]=d:Array.isArray(a)?a.push(d):b[c]=[a,d]}return b}(g):void 0,search:h,hash:i,href:j.slice(k.length),slashes:null}}(d+e,void 0,!0)},"createValidationSampleTracking",0,function(){return{missingSampleErrors:[]}},"trackMissingSampleError",0,m,"trackMissingSampleErrorAndThrow",0,n],39783)},91191,a=>{let b="INSTANT_VALIDATION_ERROR";a.s(["g",0,class extends Error{constructor(...a){super(...a),this.digest=b}},"N",0,function(a){return!!(a&&"object"==typeof a&&a instanceof Error&&a.digest===b)}])},60644,a=>{a.s(["interopDefault",0,function(a){return a.default||a}])},33169,a=>{var b=a.i(85034),c=a.i(41763),d=a.i(83838),e=a.i(52879),f=a.i(88652),g=a.i(56704),h=a.i(32319);function i(a){return Error(`Failed to find Server Action${a?` "${a}"`:""}. This request might be from an older or newer deployment. +Read more: https://nextjs.org/docs/messages/failed-to-find-server-action`)}let j=Symbol.for("next.server.manifests"),k=globalThis;a.s(["setManifestsSingleton",0,function({page:a,clientReferenceManifest:l,serverActionsManifest:m}){let n=k[j],o=(0,c.normalizeAppPath)(a),p={encryptionKey:m.encryptionKey,node:Object.assign(Object.create(null),m.node),edge:Object.assign(Object.create(null),m.edge)};if(n)n.clientReferenceManifestsPerRoute.set(o,{page:a,clientReferenceManifest:l}),n.serverActionsManifest=p;else{let c,m,n,q=new Map([[o,{page:a,clientReferenceManifest:l}]]),{proxiedClientReferenceManifest:r,rscModuleMappingForUseCache:s}=(c=new Map,m=new Proxy({},{get(a,d){let e=g.workAsyncStorage.getStore();switch(d){case"moduleLoading":case"entryCSSFiles":case"entryJSFiles":{if(!e)throw new b.InvariantError(`Cannot access "${d}" without a work store.`);let a=q.get(e.route);if(!a)throw new b.InvariantError(`The client reference manifest for route "${e.route}" does not exist.`);return a.clientReferenceManifest[d]}case"clientModules":case"rscModuleMapping":case"edgeRscModuleMapping":case"ssrModuleMapping":case"edgeSSRModuleMapping":{let a=c.get(d);!a&&(a=new Proxy({},{get(a,b){let c=g.workAsyncStorage.getStore();if(c){var e;let a=null==(e=q.get(c.route))?void 0:e.clientReferenceManifest;if(null==a?void 0:a[d][b]){if(c.durableUseCacheEntries&&"clientModules"===d&&function(a){if(!a)return!1;switch(a.type){case"cache":case"private-cache":return!0;case"request":case"unstable-cache":case"prerender":case"prerender-client":case"prerender-legacy":case"prerender-runtime":case"validation-client":case"build-time-generator":return!1;default:return a}}(h.workUnitAsyncStorage.getStore())){let c=a.clientModules[b];return{id:b,name:c.name,chunks:["stub"],async:!1}}return a[d][b]}}else for(let{clientReferenceManifest:a}of q.values()){let c=a[d][b];if(void 0!==c)return c}}}),c.set(d,a));return a}default:throw new b.InvariantError(`This is a proxied client reference manifest. The property "${String(d)}" is not handled.`)}}}),n=new Proxy({},{get(a,b){let c=g.workAsyncStorage.getStore();if(!c||!c.durableUseCacheEntries)return m.rscModuleMapping[b];{var d;let a=null==(d=q.get(c.route))?void 0:d.clientReferenceManifest,e=null==a?void 0:a.clientModules[b];if(void 0===e)return;let f=e.id;return null==a?void 0:a.rscModuleMapping[f]}}}),{proxiedClientReferenceManifest:m,rscModuleMappingForUseCache:n});k[j]={clientReferenceManifestsPerRoute:q,proxiedClientReferenceManifest:r,rscModuleMappingForUseCache:s,serverActionsManifest:p,serverModuleMap:new Proxy(Object.create(null),{get:(a,c,h)=>{var l,m,n;let o;if("string"!=typeof c||f.A.has(c))return Reflect.get(a,c,h);if(!(0,e.s)(c)){let a;throw a=JSON.stringify(c.length>100?c.slice(0,90)+"…":c),Error(`The Server Reference ID did not match the expected format. Received ${a}. +Read more: https://nextjs.org/docs/messages/failed-to-find-server-action`)}let p=null==(m=function(){let a=k[j];if(!a)throw new b.InvariantError("The manifests singleton was not initialized.");return a}().serverActionsManifest.node)||null==(l=m[c])?void 0:l.workers;if(!p)throw i(c);let q=g.workAsyncStorage.getStore();if(!(o=q?p[n=q.page,(0,d.f)(n,"app")?n:"app"+n]:Object.values(p).at(0)))throw i(c);let{moduleId:r,async:s,durability:t}=o;return{id:r,name:c,chunks:[],async:s,durability:t}}})}}}])},56952,a=>{var b=a.i(91562);a.s(["stripFlightHeaders",0,function(a){for(let c of b.FLIGHT_HEADERS)delete a[c]}])},77341,a=>{a.i(75164),Symbol("__next_preview_data");let b=Symbol("__prerender_bypass");var c,d=a.i(30106),e=a.i(71717);class f{constructor(a,b,c){this.method=a,this.url=b,this.body=c}get cookies(){var b;return this._cookies?this._cookies:this._cookies=(b=this.headers,function(){let{cookie:c}=b;if(!c)return{};let{parse:d}=a.r(20460);return d(Array.isArray(c)?c.join("; "):c)})()}}class g{constructor(a){this.destination=a}redirect(a,b){return this.setHeader("Location",a),this.statusCode=b,b===e.RedirectStatusCode.PermanentRedirect&&this.setHeader("Refresh",`0;url=${a}`),this}}class h extends f{static #a=c=d.NEXT_REQUEST_META;constructor(a){var b;super(a.method.toUpperCase(),a.url,a),this._req=a,this.headers=this._req.headers,this.fetchMetrics=null==(b=this._req)?void 0:b.fetchMetrics,this[c]=this._req[d.NEXT_REQUEST_META]||{},this.streaming=!1}get originalRequest(){return this._req[d.NEXT_REQUEST_META]=this[d.NEXT_REQUEST_META],this._req.url=this.url,this._req.cookies=this.cookies,this._req}set originalRequest(a){this._req=a}stream(){if(this.streaming)throw Error("Invariant: NodeNextRequest.stream() can only be called once");return this.streaming=!0,new ReadableStream({start:a=>{this._req.on("data",b=>{a.enqueue(new Uint8Array(b))}),this._req.on("end",()=>{a.close()}),this._req.on("error",b=>{a.error(b)})}})}}a.s(["NodeNextRequest",0,h,"NodeNextResponse",0,class extends g{get originalResponse(){return b in this&&(this._res[b]=this[b]),this._res}constructor(a){super(a),this._res=a,this.textBody=void 0}get sent(){return this._res.finished||this._res.headersSent}get statusCode(){return this._res.statusCode}set statusCode(a){this._res.statusCode=a}get statusMessage(){return this._res.statusMessage}set statusMessage(a){this._res.statusMessage=a}setHeader(a,b){return this._res.setHeader(a,b),this}removeHeader(a){return this._res.removeHeader(a),this}getHeaderValues(a){let b=this._res.getHeader(a);if(void 0!==b)return(Array.isArray(b)?b:[b]).map(a=>a.toString())}hasHeader(a){return this._res.hasHeader(a)}getHeader(a){let b=this.getHeaderValues(a);return Array.isArray(b)?b.join(","):void 0}getHeaders(){return this._res.getHeaders()}appendHeader(a,b){let c=this.getHeaderValues(a)??[];return c.includes(b)||this._res.setHeader(a,[...c,b]),this}body(a){return this.textBody=a,this}send(){this._res.end(this.textBody)}onClose(a){this.originalResponse.on("close",a)}}],77341)},29432,a=>{a.s(["getRevalidateReason",0,function(a){return a.isOnDemandRevalidate?"on-demand":a.isStaticGeneration?"stale":void 0}])},975,a=>{let b=new Set(["audio","audioworklet","font","image","json","manifest","paintworklet","report","script","serviceworker","sharedworker","style","track","video","webidentity","worker","xslt"]);a.s(["isNonHtmlSecFetchDest",0,function(a){return"string"==typeof a&&b.has(a)}])},46994,a=>{a.s(["isRSCRequestHeader",0,function(a){return"1"===a}])},98175,a=>{var b=a.i(1082);async function c(a,b){let c=[],d=0;for await(let e of a){let a=Buffer.isBuffer(e)?e:Buffer.from(e);if((d+=a.byteLength)>b)return null;c.push(a)}return Buffer.concat(c)}a.s(["getMaxPostponedStateSize",0,function(a){let c=a??b.DEFAULT_MAX_POSTPONED_STATE_SIZE,d=(0,b.parseMaxPostponedStateSize)(a);if(void 0===d)throw Error('maxPostponedStateSize must be a valid number (bytes) or filesize format string (e.g., "5mb")');return{maxPostponedStateSize:c,maxPostponedStateSizeBytes:d}},"getPostponedStateExceededErrorMessage",0,function(a){return`Postponed state exceeded ${a} limit. To configure the limit, see: https://nextjs.org/docs/app/api-reference/config/next-config-js/max-postponed-state-size`},"readBodyWithSizeLimit",0,c])},96195,a=>{var b=a.i(71200),c=a.i(41763);class d{constructor(a=[]){this.normalizers=a}push(a){this.normalizers.push(a)}normalize(a){return this.normalizers.reduce((a,b)=>b.normalize(a),a)}}class e{normalize(a){return a.replace(/%5F/g,"_")}}var f=a.i(3343);let g=new class extends d{constructor(){super([{normalize:c.normalizeAppPath},new e])}normalize(a){return super.normalize(a)}};a.s(["isRouteCacheOwner",0,function(a,c,d,e){if(!d)return!1;let h=null===d.dataRoute?f.RouteKind.APP_ROUTE:d.dataRoute.endsWith(".json")?f.RouteKind.PAGES:d.dataRoute.endsWith(".rsc")?f.RouteKind.APP_PAGE:void 0;return h===c.kind&&(("srcRoute"in d?d.srcRoute:d.fallbackSourceRoute)??(h===f.RouteKind.PAGES?(0,b.f)(a,e).pathname:a))===(h===f.RouteKind.PAGES?c.sourceRoute:g.normalize(c.sourceRoute))}],96195)},8950,a=>{var b=a.i(91562);a.s(["getIsPossibleServerAction",0,function(a){let c,d,e,f,g;return(a.headers instanceof Headers?(c=a.headers.get(b.ACTION_HEADER)??null,d=a.headers.get("content-type")):(c=a.headers[b.ACTION_HEADER]??null,d=a.headers["content-type"]??null),e="POST"===a.method&&"application/x-www-form-urlencoded"===d,f=!!("POST"===a.method&&(null==d?void 0:d.startsWith("multipart/form-data"))),g=void 0!==c&&"string"==typeof c&&"POST"===a.method,{actionId:c,isURLEncodedAction:e,isMultipartAction:f,isFetchAction:g,isPossibleServerAction:!!(g||e||f)}).isPossibleServerAction}])},37111,a=>{let b,c;var d=a.i(49670);a.s(["shouldServeStreamingMetadata",0,function(a,e){let f=e||d.HTML_LIMITED_BOT_UA_RE_STRING;return b!==f&&(b=f,c=RegExp(f,"i")),!(a&&c.test(a))}])},18970,a=>{var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r=((b=r||{}).handleRequest="BaseServer.handleRequest",b.run="BaseServer.run",b.pipe="BaseServer.pipe",b.getStaticHTML="BaseServer.getStaticHTML",b.render="BaseServer.render",b.renderToResponseWithComponents="BaseServer.renderToResponseWithComponents",b.renderToResponse="BaseServer.renderToResponse",b.renderToHTML="BaseServer.renderToHTML",b.renderError="BaseServer.renderError",b.renderErrorToResponse="BaseServer.renderErrorToResponse",b.renderErrorToHTML="BaseServer.renderErrorToHTML",b.render404="BaseServer.render404",b),s=((c=s||{}).loadDefaultErrorComponents="LoadComponents.loadDefaultErrorComponents",c.loadComponents="LoadComponents.loadComponents",c.loadRouteModule="LoadComponents.loadRouteModule",c),t=((d=t||{}).loadModule="Instrumentation.loadModule",d.register="Instrumentation.register",d),u=((e=u||{}).getRequestHandler="NextServer.getRequestHandler",e.getRequestHandlerWithMetadata="NextServer.getRequestHandlerWithMetadata",e.getServer="NextServer.getServer",e.getServerRequestHandler="NextServer.getServerRequestHandler",e.createServer="createServer.createServer",e),v=((f=v||{}).compression="NextNodeServer.compression",f.getBuildId="NextNodeServer.getBuildId",f.createComponentTree="NextNodeServer.createComponentTree",f.clientComponentLoading="NextNodeServer.clientComponentLoading",f.getLayoutOrPageModule="NextNodeServer.getLayoutOrPageModule",f.generateStaticRoutes="NextNodeServer.generateStaticRoutes",f.generateFsStaticRoutes="NextNodeServer.generateFsStaticRoutes",f.generatePublicRoutes="NextNodeServer.generatePublicRoutes",f.generateImageRoutes="NextNodeServer.generateImageRoutes.route",f.sendRenderResult="NextNodeServer.sendRenderResult",f.proxyRequest="NextNodeServer.proxyRequest",f.runApi="NextNodeServer.runApi",f.render="NextNodeServer.render",f.renderHTML="NextNodeServer.renderHTML",f.imageOptimizer="NextNodeServer.imageOptimizer",f.getPagePath="NextNodeServer.getPagePath",f.getRoutesManifest="NextNodeServer.getRoutesManifest",f.findPageComponents="NextNodeServer.findPageComponents",f.getFontManifest="NextNodeServer.getFontManifest",f.getServerComponentManifest="NextNodeServer.getServerComponentManifest",f.getRequestHandler="NextNodeServer.getRequestHandler",f.renderToHTML="NextNodeServer.renderToHTML",f.renderError="NextNodeServer.renderError",f.renderErrorToHTML="NextNodeServer.renderErrorToHTML",f.render404="NextNodeServer.render404",f.startResponse="NextNodeServer.startResponse",f.route="route",f.onProxyReq="onProxyReq",f.apiResolver="apiResolver",f.internalFetch="internalFetch",f),w=((g=w||{}).startServer="startServer.startServer",g),x=((h=x||{}).getServerSideProps="Render.getServerSideProps",h.getStaticProps="Render.getStaticProps",h.renderToString="Render.renderToString",h.renderDocument="Render.renderDocument",h.createBodyResult="Render.createBodyResult",h),y=((i=y||{}).renderToString="AppRender.renderToString",i.renderToReadableStream="AppRender.renderToReadableStream",i.getBodyResult="AppRender.getBodyResult",i.fetch="AppRender.fetch",i.waitShellReady="AppRender.waitShellReady",i.renderToNodeFizzStream="AppRender.renderToNodeFizzStream",i.instantInsights="AppRender.instantInsights",i.instantInsightsPrepareValidation="AppRender.instantInsights.prepareValidation",i.instantInsightsRunValidation="AppRender.instantInsights.runValidation",i),z=((j=z||{}).ensurePage="DevBundlerService.ensurePage",j),A=((k=A||{}).executeRoute="Router.executeRoute",k),B=((l=B||{}).runHandler="Node.runHandler",l),C=((m=C||{}).runHandler="AppRouteRouteHandlers.runHandler",m),D=((n=D||{}).loadUserland="AppRouteRouteModule.loadUserland",n),E=((o=E||{}).prepare="RouteModule.prepare",o.loadManifests="RouteModule.loadManifests",o),F=((p=F||{}).generateMetadata="ResolveMetadata.generateMetadata",p.generateViewport="ResolveMetadata.generateViewport",p),G=((q=G||{}).execute="Middleware.execute",q);let H=new Set(["Middleware.execute","BaseServer.handleRequest","Render.getServerSideProps","Render.getStaticProps","AppRender.fetch","AppRender.getBodyResult","LoadComponents.loadRouteModule","Render.renderDocument","Node.runHandler","AppRouteRouteHandlers.runHandler","AppRouteRouteModule.loadUserland","RouteModule.prepare","Instrumentation.loadModule","Instrumentation.register","ResolveMetadata.generateMetadata","ResolveMetadata.generateViewport","NextNodeServer.createComponentTree","NextNodeServer.findPageComponents","NextNodeServer.getLayoutOrPageModule","NextNodeServer.startResponse","NextNodeServer.clientComponentLoading"]),I=new Set(["NextNodeServer.findPageComponents","NextNodeServer.createComponentTree","NextNodeServer.clientComponentLoading"]);a.s(["AppRenderSpan",0,y,"BaseServerSpan",0,r,"LogSpanAllowList",0,I,"NextNodeServerSpan",0,v,"NextVanillaSpanAllowlist",0,H,"ResolveMetadataSpan",0,F])},75164,a=>{let b,c;var d=a.i(18970);let e=process.env.NEXT_OTEL_PERFORMANCE_PREFIX;function f(){}Symbol.for("@next/local-span-recorder");try{b=a.r(70406)}catch(c){b=a.r(62562)}let{context:g,propagation:h,trace:i,SpanStatusCode:j,SpanKind:k,ROOT_CONTEXT:l}=b;class m extends Error{constructor(a,b){super(),this.bubble=a,this.result=b}}let n=(a,b,c)=>{"object"==typeof b&&null!==b&&b instanceof m&&b.bubble?a.setAttribute("next.bubble",!0):(b&&(a.recordException(b),a.setAttribute("error.type",b.name)),a.setStatus({code:j.ERROR,message:null==b?void 0:b.message})),a.end(c)},o=new Map,p=b.createContextKey("next.rootSpanId"),q=0,r={set(a,b,c){a.push({key:b,value:c})}},s=(c=new class a{getTracerInstance(){return i.getTracer("next.js","16.4.0")}isOpenTelemetryEnabled(){var a,b;let c=i.getSpan(g.active());if(null==c?void 0:c.isRecording())return!0;let d=i.getTracerProvider();return!("getDelegate"in d)||(null==d.getDelegate||null==(b=d.getDelegate.call(d))||null==(a=b.constructor)?void 0:a.name)!=="NoopTracerProvider"}getContext(){return g}getTracePropagationData(){let a=g.active(),b=[];return h.inject(a,b,r),b}getActiveScopeSpan(){let a=f(),b=null==a?void 0:a.getActiveLocalSpan();return b&&(null==a?void 0:a.isOpenTelemetryIsolatedSpan(b))?b:i.getSpan(g.active())}runWithDetachedContext(a){return e||this.isOpenTelemetryEnabled()?g.with(l,a):a()}withPropagatedContext(a,b,c,d=!1){let f=g.active();if(!e&&!this.isOpenTelemetryEnabled()&&!i.getSpanContext(f))return b();if(d){let d=h.extract(l,a,c);if(i.getSpanContext(d))return g.with(d,b);let e=h.extract(f,a,c);return g.with(e,b)}if(i.getSpanContext(f))return b();let j=h.extract(f,a,c);return g.with(j,b)}trace(...a){let[b,c,h]=a,i=!!e||this.isOpenTelemetryEnabled(),j=f(),k=(null==j?void 0:j.isLocalSpanRecordingEnabled())??!1;if(!i&&!k)return"function"==typeof c?c():h();let{fn:m,options:r}="function"==typeof c?{fn:c,options:{}}:{fn:h,options:{...c}},s=r.spanName??b,t=r.parentSpan??this.getActiveScopeSpan(),u=t&&(null==j?void 0:j.isOpenTelemetryIsolatedSpan(t))?t:void 0,v=!u&&(d.NextVanillaSpanAllowlist.has(b)||"1"===process.env.NEXT_OTEL_VERBOSE);if(!(v||(null==j?void 0:j.isRequestInsightsEnabled()))||r.hideSpan)return m();let w=u?g.active():this.getSpanContext(t);w||(w=(null==g?void 0:g.active())??l);let x=w.getValue(p),y="number"!=typeof x||!o.has(x),z=q++;return r.attributes={"next.span_category":"nextjs","next.span_name":s,"next.span_type":b,...r.attributes},g.with(w.setValue(p,z),()=>this.runWithActiveSpan(s,r,w,i&&v,k,u,a=>{let c;e&&b&&d.LogSpanAllowList.has(b)&&(c="performance"in globalThis&&"measure"in performance?globalThis.performance.now():void 0);let f=!1,g=()=>{!f&&(f=!0,o.delete(z),c&&performance.measure(`${e}:next-${(b.split(".").pop()||"").replace(/[A-Z]/g,a=>"-"+a.toLowerCase())}`,{start:c,end:performance.now()}))};if(y&&o.set(z,new Map(Object.entries(r.attributes??{}))),m.length>1)try{return m(a,b=>{b?n(a,b,r.endTime):a.end(r.endTime)})}catch(b){throw n(a,b,r.endTime),b}finally{g()}try{let b=m(a);if(null!==b&&"object"==typeof b&&"then"in b&&"function"==typeof b.then)return b.then(b=>(a.end(r.endTime),b)).catch(b=>{throw n(a,b,r.endTime),b}).finally(g);return a.end(r.endTime),g(),b}catch(b){throw n(a,b,r.endTime),g(),b}}))}runWithActiveSpan(a,b,c,d,e,h,j){if(d)return this.getTracerInstance().startActiveSpan(a,b,d=>j(e?this.createLocalRecordingSpan(a,b,c,d,h):d));let k=this.createLocalRecordingSpan(a,b,c,void 0,h),l=f();return l.withLocalSpan(k,()=>l.isOpenTelemetryIsolatedSpan(k)?j(k):g.with(i.setSpan(g.active(),k),j,void 0,k))}createLocalRecordingSpan(a,b,c,d,e){let g=(null==e?void 0:e.spanContext())??i.getSpanContext(c),h=null==d?void 0:d.spanContext();return f().createLocalSpan({name:a,attributes:b.attributes,links:b.links,startTime:b.startTime,delegateSpan:d,traceId:(null==h?void 0:h.traceId)??(null==g?void 0:g.traceId),spanId:null==h?void 0:h.spanId,parentSpanId:null==g?void 0:g.spanId,isolateOpenTelemetry:void 0!==e})}wrap(...a){let b=this,[c,e,f]=3===a.length?a:[a[0],{},a[1]];return d.NextVanillaSpanAllowlist.has(c)||"1"===process.env.NEXT_OTEL_VERBOSE?function(){let a=e;"function"==typeof a&&"function"==typeof f&&(a=a.apply(this,arguments));let d=arguments.length-1,h=arguments[d];if("function"!=typeof h)return b.trace(c,a,()=>f.apply(this,arguments));{let e=b.getContext().bind(g.active(),h);return b.trace(c,a,(a,b)=>(arguments[d]=function(a){return null==b||b(a),e.apply(this,arguments)},f.apply(this,arguments)))}}:f}startSpan(...a){let[b,c]=a,d=c?{...c,attributes:{"next.span_category":"nextjs",...c.attributes}}:{attributes:{"next.span_category":"nextjs"}},e=f(),h=d.parentSpan??this.getActiveScopeSpan(),i=h&&(null==e?void 0:e.isOpenTelemetryIsolatedSpan(h))?h:void 0,j=(i?void 0:this.getSpanContext(h))??g.active();if(!(null==e?void 0:e.isLocalSpanRecordingEnabled()))return this.getTracerInstance().startSpan(b,d,j);let k=!i&&this.isOpenTelemetryEnabled()?this.getTracerInstance().startSpan(b,d,j):void 0;return this.createLocalRecordingSpan(b,d,j,k,i)}getSpanContext(a){return a?i.setSpan(g.active(),a):void 0}getRootSpanAttributes(){let a=g.active().getValue(p);return o.get(a)}setRootSpanAttribute(a,b){let c=g.active().getValue(p),d=o.get(c);d&&!d.has(a)&&d.set(a,b)}withSpan(a,b){let c=f();return(null==c?void 0:c.isLocalRecordingSpan(a))?c.withLocalSpan(a,()=>c.isOpenTelemetryIsolatedSpan(a)?b():g.with(i.setSpan(g.active(),a),b)):g.with(i.setSpan(g.active(),a),b)}},()=>c);a.s(["SpanKind",0,k,"SpanStatusCode",0,j,"getTracer",0,s],75164)},30106,a=>{let b=Symbol.for("NextInternalRequestMeta");function c(a,c){let d=a[b]||{};return"string"==typeof c?d[c]:d}function d(a,c){return a[b]=c,c}a.s(["NEXT_REQUEST_META",0,b,"addRequestMeta",0,function(a,b,e){let f=c(a);return f[b]=e,d(a,f)},"getRequestMeta",0,c,"setRequestMeta",0,d])},90588,a=>{var b=a.i(8770),c=a.i(32885);function d(a){let[b,d,e,f]=a,{layout:g,template:h}=e,{page:i}=e;i=b===c.F?e.defaultPage:i;let j=g?.[1]||h?.[1]||i?.[1];return{page:i,segment:b,modules:e,conventionPath:j,parallelRoutes:d,staticSiblings:f}}var e=a.i(85034);function f(a){switch(a){case"catchall-intercepted-(..)(..)":case"dynamic-intercepted-(..)(..)":return"(..)(..)";case"catchall-intercepted-(.)":case"dynamic-intercepted-(.)":return"(.)";case"catchall-intercepted-(..)":case"dynamic-intercepted-(..)":return"(..)";case"catchall-intercepted-(...)":case"dynamic-intercepted-(...)":return"(...)";default:return null}}function g(a,b,c,d,g){switch(b){case"catchall":case"optional-catchall":case"catchall-intercepted-(..)(..)":case"catchall-intercepted-(.)":case"catchall-intercepted-(..)":case"catchall-intercepted-(...)":let h=[];for(let a=c;a0)return h;if("optional-catchall"===b)return;throw new e.InvariantError(`Unexpected empty path segments match for a route "${d.pathname}" with param "${a}" of type "${b}"`);case"dynamic":case"dynamic-intercepted-(..)(..)":case"dynamic-intercepted-(.)":case"dynamic-intercepted-(..)":case"dynamic-intercepted-(...)":if(c0;){let{tree:a,depth:i,currentPath:j}=h.shift(),{segment:k,parallelRoutes:l}=d(a),m=j,n=i,o=(0,b.parseAppRouteSegment)(k);if(o&&"route-group"!==o.type&&"parallel-route"!==o.type&&(m=[...j,o],n=i+1),(null==o?void 0:o.type)==="dynamic"){let{paramName:a,paramType:b}=o.param;if(ia-b).map(([,a])=>a),params:f}}(c.userland.loaderTree,e),j=f.map(({paramName:a,paramType:b})=>({paramName:a,paramType:b}));return!function(a,c,e,f){let h=[{tree:a,depth:0}];for(;h.length>0;){let{tree:a,depth:i}=h.pop(),{segment:j,parallelRoutes:k}=d(a),l=(0,b.parseAppRouteSegment)(j);if((null==l?void 0:l.type)==="dynamic"&&!c.hasOwnProperty(l.param.paramName)&&!f.some(a=>a.paramName===l.param.paramName)){let{paramName:a,paramType:b}=l.param,d=g(a,b,i,e,c);void 0!==d?c[a]=d:"optional-catchall"!==b&&f.push({paramName:a,paramType:b})}let m=i;for(let a of(l&&"route-group"!==l.type&&"parallel-route"!==l.type&&m++,Object.values(k)))h.push({tree:a,depth:m})}}(c.userland.loaderTree,h,e,j),i(j)},"getPlaceholderFallbackRouteParams",0,function(a,b){return b.filter(b=>{let c=j(b),d=null==a?void 0:a[b.paramName];return d===c||Array.isArray(d)&&1===d.length&&d[0]===c})},"getStagedFallbackParams",0,function(a){let{fallbackRouteParams:b,remainingPrerenderableParams:c}=a;if(!(null==b?void 0:b.length))return null;if(void 0===a.throwOnEmptyStaticShell)throw new e.InvariantError("Expected throwOnEmptyStaticShell for a route with fallback params");return!a.throwOnEmptyStaticShell&&(null==c?void 0:c.length)?i(b.filter(a=>!c.some(b=>b.paramName===a.paramName))):i(b)}],90588)},98499,81793,99771,7891,52589,22298,a=>{var b,c,d,e=a.i(56704),f=a.i(32319);class g{add(a){this._done||this._seen.has(a)||(this._seen.add(a),null!==this._resolve?(this._resolve({value:a,done:!1}),this._resolve=null):this._buffer.push(a))}close(){this._done||(this._done=!0,null!==this._resolve&&(this._resolve({value:void 0,done:!0}),this._resolve=null))}[Symbol.asyncIterator](){return{next:()=>this._buffer.length>0?Promise.resolve({value:this._buffer.shift(),done:!1}):this._done?Promise.resolve({value:void 0,done:!0}):new Promise(a=>{this._resolve=a})}}constructor(){this._resolve=null,this._done=!1,this._buffer=[],this._seen=new Set}}function h(){var a;let b=f.workUnitAsyncStorage.getStore();return b?(null==(a=(0,f.getVaryParamsAccumulator)(b))?void 0:a.head)??null:null}function i(a,b,c){if(null!==c)return new Proxy(b,{get:(b,d,e)=>("string"==typeof d&&(d===c||Object.prototype.hasOwnProperty.call(b,d))&&a.add(d),Reflect.get(b,d,e)),has:(b,d)=>(d===c&&a.add(c),Reflect.has(b,d)),ownKeys:b=>(a.add(c),Reflect.ownKeys(b))});let d={};for(let c in b)Object.defineProperty(d,c,{get:()=>(a.add(c),b[c]),enumerable:!0});return d}new g().close();var j=a.i(84513),k=a.i(717);let l="DYNAMIC_SERVER_USAGE";class m extends Error{constructor(a){super(`Dynamic server usage: ${a}`),this.description=a,this.digest=l}}a.s(["DynamicServerError",0,m,"isDynamicServerError",0,function(a){return"object"==typeof a&&null!==a&&"digest"in a&&"string"==typeof a.digest&&a.digest===l}],81793);class n extends Error{constructor(...a){super(...a),this.code="NEXT_STATIC_GEN_BAILOUT"}}var o=a.i(85034),p=((b={})[b.None=0]="None",b[b.Shell=1]="Shell",b[b.Prefetch=2]="Prefetch",b[b.Navigation=3]="Navigation",b),q=((c=q||{})[c.LessConstrained=1]="LessConstrained",c[c.Compatible=2]="Compatible",c[c.MoreConstrained=3]="MoreConstrained",c[c.Incompatible=4]="Incompatible",c);a.i(26407);var r=((d={})[d.Before=1]="Before",d[d.ShellStatic=10]="ShellStatic",d[d.PrefetchStatic_prefetchApi=11]="PrefetchStatic_prefetchApi",d[d.PrefetchStatic=12]="PrefetchStatic",d[d.NavigationStatic=13]="NavigationStatic",d[d.Static=14]="Static",d[d.ShellRuntime=20]="ShellRuntime",d[d.PrefetchRuntime_prefetchApi=21]="PrefetchRuntime_prefetchApi",d[d.PrefetchRuntime=22]="PrefetchRuntime",d[d.NavigationRuntime=23]="NavigationRuntime",d[d.Dynamic=30]="Dynamic",d[d.Abandoned=40]="Abandoned",d);a.i(59043);class s extends Error{constructor(a,b){super(`During prerendering, ${b} rejects when the prerender is complete. Typically these errors are handled by React but if you move ${b} to a different context by using \`setTimeout\`, \`after\`, or similar functions you may observe this error and you should handle it in that context. This occurred at route "${a}".`),this.route=a,this.expression=b,this.digest="HANGING_PROMISE_REJECTION"}}let t=new WeakMap;function u(a,b,c,d){var e,f;let g=C(a,new s(b,c));return null===d?g:(e=g,f=w.bind(null,d,c),F.from(e,f))}function v(a,b,c,d){var e,f;let g=C(a,new s(b,c));return null===d?g:(e=g,f=x.bind(null,d,c),F.from(e,f))}function w(a,b){y(a,2,b)}function x(a,b){y(a,3,b)}function y(a,b,c){if("prerender"===a.type){let{prerenderDataTracking:d,stagedRendering:e}=a;if(!d||!e)return;let{currentStage:f}=e;if(f===r.Before)return void console.error(new o.InvariantError("Unexpected trackRuntimeDataAccessed in the Before stage."));if(f>=r.NavigationStatic)return;let g=a.ensureStaticLevel??p.None;switch(b){case 1:{let a=null;f<=r.ShellStatic&&g=c?d.resolve(!0):b.onStage(c,d.resolve.bind(null,!0))}let A=process.env.NEXT_PRIVATE_DEBUG_RUNTIME_DATA?(a,b)=>{let{route:c}=e.workAsyncStorage.getStore();console.log(`Route '${c}': deopting to a runtime ${b} because it used ${a}`)}:void 0,B=process.env.NEXT_PRIVATE_DEBUG_RUNTIME_DATA?()=>{let{route:a}=e.workAsyncStorage.getStore();console.log(`Route '${a}': marking upgradeable fallback as runtime prefetchable`)}:void 0;function C(a,b){if(a.aborted)return Promise.reject(b);{let c=new Promise((c,d)=>{let e=d.bind(null,b),f=t.get(a);if(f)f.push(e);else{let b=[e];t.set(a,b),a.addEventListener("abort",()=>{for(let a=0;ab);return c.catch(D),c}class F extends Promise{#b;static get[Symbol.species](){return Promise}static from(a,b){let c=new F(a.then.bind(a));return c.#b=b,Promise.prototype.then.call(c,void 0,D),c}then(a,b){let c=this.#b;if(c)try{c()}catch(a){console.error(a)}return Promise.prototype.then.call(this,a,b)}constructor(...a){super(...a),this.#b=null}}let G={sessionData:r.ShellRuntime,staticUrlData:{prefetchApi:{static:r.PrefetchStatic_prefetchApi,runtime:r.PrefetchRuntime_prefetchApi},static:r.PrefetchStatic,runtime:r.PrefetchRuntime},runtimeUrlData:r.PrefetchRuntime};function H(a,b,c){let d=new m(`Route ${b.route} couldn't be rendered statically because it used \`${a}\`. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`);throw c.revalidate=0,b.dynamicUsageDescription=a,b.dynamicUsageStack=d.stack,d}function I(a,b){let c=b.dynamicTracking;c&&c.dynamicAccesses.push({stack:c.isDebugDynamicAccesses?Error().stack:void 0,expression:a})}a.s(["Y",0,G,"n",0,function(a,b,c){return b.stagedRendering?b.stagedRendering.delayUntilStage(c,void 0,a):new Promise(b=>{setTimeout(()=>{b(a)},0)})},"W",0,function(a,b,c){return C(a,new s(b,c))},"E",0,v,"o",0,E,"S",0,u,"F",0,x,"p",0,w],99771),RegExp("\\n\\s+at Suspense \\(\\)(?:(?!\\n\\s+at (?:body|div|main|section|article|aside|header|footer|nav|form|p|span|h1|h2|h3|h4|h5|h6) \\(\\))[\\s\\S])*?\\n\\s+at __next_root_layout_boundary__ \\([^\\n]*\\)"),RegExp("\\n\\s+at __next_metadata_boundary__[\\n\\s]"),RegExp("\\n\\s+at __next_viewport_boundary__[\\n\\s]"),RegExp("\\n\\s+at __next_outlet_boundary__[\\n\\s]"),RegExp("\\n\\s+at __next_instant_validation_boundary__[\\n\\s]"),RegExp("\\n\\s+at __next_instant_slot_(\\d+)__[\\n\\s]"),a.s(["D",0,I,"i",0,function(a){return"object"==typeof a&&null!==a&&"NEXT_PRERENDER_INTERRUPTED"===a.digest&&"name"in a&&"message"in a&&a instanceof Error},"g",0,function(a,b,c){if(b)switch(b.type){case"cache":case"unstable-cache":case"private-cache":return}if(!a.forceDynamic&&!a.forceStatic){if(a.dynamicShouldError)throw new n(`Route ${a.route} with \`dynamic = "error"\` couldn't be rendered statically because it used \`${c}\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`);if(b&&"prerender-legacy"===b.type){b.revalidate=0;let d=new m(`Route ${a.route} couldn't be rendered statically because it used ${c}. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`);throw a.dynamicUsageDescription=c,a.dynamicUsageStack=d.stack,d}}},"L",0,H],7891);var J=a.i(43285);let K={current:null},L="function"==typeof k.cache?k.cache:a=>a,M=console.warn;function N(a){return function(...b){M(a(...b))}}function O(b,c){let d=e.workAsyncStorage.getStore();if(!d)throw new o.InvariantError("Expected workStore to be initialized");let g=f.workUnitAsyncStorage.getStore();if(g)switch(g.type){case"prerender":case"prerender-client":case"prerender-legacy":return function(a,b){if(a.forceStatic)return Promise.resolve({});switch(b.type){case"prerender":case"prerender-client":return Q(a,b);case"prerender-legacy":var c=a,d=b;let e=P.get(c);if(e)return e;let f=Promise.resolve({}),g=new Proxy(f,{get(a,b,e){if(Object.hasOwn(f,b))return j.f.get(a,b,e);if("string"==typeof b&&"then"===b){let a="`await searchParams`, `searchParams.then`, or similar";if(c.dynamicShouldError){var g=c.route;throw new n(`Route ${g} with \`dynamic = "error"\` couldn't be rendered statically because it used ${a}. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`)}H(a,c,d)}return j.f.get(a,b,e)}});return P.set(c,g),g;default:return b}}(d,g);case"validation-client":throw new o.InvariantError("createServerSearchParamsForServerPage should not be called in a client validation.");case"cache":case"private-cache":case"unstable-cache":throw new o.InvariantError("createServerSearchParamsForServerPage should not be called in cache contexts.");case"build-time-generator":throw new o.InvariantError(`createServerSearchParamsForServerPage should not be called inside ${g.functionName}.`);case"prerender-runtime":return function(a,b,c,d){let e=null!==d?new Proxy(a,{get:(a,b,c)=>("string"==typeof b&&d.add(0),Reflect.get(a,b,c)),has:(a,b)=>("string"==typeof b&&d.add(0),Reflect.has(a,b)),ownKeys:a=>(d.add(0),Reflect.ownKeys(a))}):a,f=G.runtimeUrlData,{stagedRendering:g}=c;if(!g)if(c.finalStage{try{M(K.current)}finally{K.current=null}}),a.i(88652),a.i(20635),a.i(24725);let P=new WeakMap;function Q(a,b){let c=P.get(b);if(c)return c;let d=u(b.renderSignal,a.route,"`searchParams`",null),e=()=>{w(f.workUnitAsyncStorage.getStore()??b,"`searchParams`")},g={get(a,c,d){if(Object.hasOwn(a,c))return j.f.get(a,c,d);switch(c){case"then":case"catch":case"finally":{let f=j.f.get(a,c,d);return({[c]:(...c)=>(e(),I("`await searchParams`, `searchParams.then`, or similar",b),(0,J.abortOnDynamicAccess)("runtime",Error("Accessed `searchParams` during prerendering.")),new Proxy(f.apply(a,c),g))})[c]}case"status":return e(),I("`use(searchParams)`, `searchParams.status`, or similar",b),j.f.get(a,c,d);default:return j.f.get(a,c,d)}}},h=new Proxy(d,g);return P.set(b,h),h}function R(a){let b=P.get(a);if(b)return b;let c=Promise.resolve(a);return P.set(a,c),c}function S(a,b){for(let c in a)if(!Object.hasOwn(b,c))return!1;return!0}function T(a){for(let b in a)return!1;return!0}function U(a,b){if(b){for(let c in a)if(b.has(c))return!0}return!1}function V(b,c,d){let g=e.workAsyncStorage.getStore();if(!g)throw new o.InvariantError("Expected workStore to be initialized");let h=f.workUnitAsyncStorage.getStore();if(h)switch(h.type){case"prerender":case"prerender-client":case"prerender-legacy":return function(a,b,c,d,e){switch(d.type){case"prerender":{let f=a;if(null!==e&&(f=i(e,a,b)),T(a))return Z(f);if(U(a,d.fallbackRouteParams))return Y(a,c,d);let{stagedRendering:g}=d;if(g&&!S(a,d.rootParams)){let a=G.staticUrlData.static;return g.delayUntilStage(a,"params",f)}return Z(f)}case"prerender-client":{let b=d.fallbackRouteParams;if(b){for(let e in a)if(b.has(e))return Y(a,c,d)}}}let f=a;return null!==e&&(f=i(e,a,b)),Z(f)}(b,c,g,h,d);case"validation-client":throw new o.InvariantError("createServerParamsForServerSegment should not be called in client contexts.");case"cache":case"private-cache":case"unstable-cache":throw new o.InvariantError("createServerParamsForServerSegment should not be called in cache contexts.");case"build-time-generator":throw new o.InvariantError(`createServerParamsForServerSegment should not be called inside ${h.functionName}.`);case"prerender-runtime":return function(a,b,c,d,e){let f=a;if(null!==e&&(f=i(e,a,b)),T(a)||S(a,d.rootParams))return Z(f);let g=G.runtimeUrlData,{stagedRendering:h}=d;if(!h)if(d.finalStage{let c=f.workUnitAsyncStorage.getStore();return void 0!==c&&x(c,"`params`"),(0,J.abortOnDynamicAccess)("fallback-params",Error("Accessed fallback `params` during prerendering.")),new Proxy(d.apply(a,b),X)}})[b]}return j.f.get(a,b,c)}};function Y(a,b,c){let d=W.get(a);if(d)return d;let e=new Proxy(v(c.renderSignal,b.route,"`params`",null),X);return W.set(a,e),e}function Z(a){let b=W.get(a);if(b)return b;let c=Promise.resolve(a);return W.set(a,c),c}N(function(a,b){let c=a?`Route "${a}" `:"This route ";return Error(`${c}used ${b}. \`params\` is a Promise and must be unwrapped with \`await\` or \`React.use()\` before accessing its properties. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`)}),a.s(["v",0,function(a){let b=e.workAsyncStorage.getStore();if(!b)throw new o.InvariantError("Missing workStore in createPrerenderParamsForClientSegment");let c=f.workUnitAsyncStorage.getStore();if(c)switch(c.type){case"prerender":case"prerender-client":let d=c.fallbackRouteParams;if(d){for(let e in a)if(d.has(e))return v(c.renderSignal,b.route,"`params`",c)}break;case"validation-client":throw new o.InvariantError("createPrerenderParamsForClientSegment should not be called in validation contexts.");case"cache":case"private-cache":case"unstable-cache":throw new o.InvariantError("createPrerenderParamsForClientSegment should not be called in cache contexts.");case"build-time-generator":throw new o.InvariantError(`createPrerenderParamsForClientSegment should not be called inside ${c.functionName}.`)}return Promise.resolve(a)},"_",0,function(a,b){return V(a,b,h())},"A",0,V],52589);let $=new Set(Object.values({NOT_FOUND:404,FORBIDDEN:403,UNAUTHORIZED:401}));a.s(["f",0,function(a){if("object"!=typeof a||null===a||!("digest"in a)||"string"!=typeof a.digest)return!1;let[b,c]=a.digest.split(";");return"NEXT_HTTP_ERROR_FALLBACK"===b&&$.has(Number(c))}],22298)},75700,a=>{function b(a,b){if(!a)return b;let c=parseInt(a,10);return Number.isFinite(c)&&c>0?c:b}a.i(276),a.i(85034),a.i(26407),a.i(54015),a.i(43070),a.i(68113),a.i(11614),a.i(3343),a.i(21751),b(process.env.NEXT_PRIVATE_RESPONSE_CACHE_TTL,1e4),b(process.env.NEXT_PRIVATE_RESPONSE_CACHE_MAX_SIZE,150),a.s([],75700)},276,a=>{var b,c,d=((b={}).APP_PAGE="APP_PAGE",b.APP_ROUTE="APP_ROUTE",b.PAGES="PAGES",b.FETCH="FETCH",b.REDIRECT="REDIRECT",b.IMAGE="IMAGE",b),e=((c={}).APP_PAGE="APP_PAGE",c.APP_ROUTE="APP_ROUTE",c.PAGES="PAGES",c.FETCH="FETCH",c.IMAGE="IMAGE",c);a.s(["CachedRouteKind",0,d,"IncrementalCacheKind",0,e])},3343,a=>{var b,c=((b={}).PAGES="PAGES",b.PAGES_API="PAGES_API",b.APP_PAGE="APP_PAGE",b.APP_ROUTE="APP_ROUTE",b.IMAGE="IMAGE",b);a.s(["RouteKind",0,c])},9210,a=>{a.s(["createDevRenderContext",0,function(a,b){}])},91315,a=>{var b=a.i(91562),c=a.i(46994);let d=/^'nonce-([A-Za-z0-9+/_-]+={0,2})'$/;var e=a.i(91673);let f=e.default.enums(["c","ci(..)(..)","ci(.)","ci(..)","ci(...)","oc","d","di(..)(..)","di(.)","di(..)","di(...)"]),g=e.default.union([e.default.string(),e.default.tuple([e.default.string(),e.default.string(),f,e.default.nullable(e.default.array(e.default.string()))])]),h=e.default.tuple([g,e.default.record(e.default.string(),e.default.lazy(()=>h)),e.default.optional(e.default.nullable(e.default.tuple([e.default.string(),e.default.string()]))),e.default.optional(e.default.nullable(e.default.union([e.default.literal("refetch"),e.default.literal("inside-shared-layout"),e.default.literal("metadata-only")]))),e.default.optional(e.default.nullable(e.default.number())),e.default.optional(e.default.string())]);a.i(43428);var i=a.i(21751);a.s(["parseRequestHeaders",0,function(a,f){var g;let j,k,l=(0,c.isRSCRequestHeader)(a[b.RSC_HEADER]),m=l&&"1"===a[b.NEXT_ROUTER_PREFETCH_HEADER],n=l&&"3"===a[b.NEXT_ROUTER_PREFETCH_HEADER],o=l&&("2"===a[b.NEXT_ROUTER_PREFETCH_HEADER]||n),p=void 0!==a[b.NEXT_HMR_REFRESH_HEADER],q=!l||m&&f.isRoutePPREnabled?void 0:function(a){if(void 0!==a){if(Array.isArray(a))throw Error("Multiple router state headers were sent. This is not allowed.");if(a.length>4e4)throw Error("The router state header was too large.");try{let b=JSON.parse(decodeURIComponent(a));return(0,e.assert)(b,h),b}catch{throw Error("The router state header was sent but could not be parsed.")}}}(a[b.NEXT_ROUTER_STATE_TREE_HEADER]),r=l&&"/_tree"===a[b.NEXT_ROUTER_SEGMENT_PREFETCH_HEADER],s=a["content-security-policy"]||a["content-security-policy-report-only"],t="string"==typeof s?function(a){let b=a.split(";").map(a=>a.trim()),c=b.find(a=>a.startsWith("script-src"))||b.find(a=>a.startsWith("default-src"));if(c)for(let a of c.split(/\s+/).slice(1)){let b=a.trim().match(d);if(b)return b[1]}}(s):void 0;return{flightRouterState:q,isPrefetchRequest:m,isRuntimePrefetchRequest:o,isAppShellPrefetchRequest:n,isRouteTreePrefetchRequest:r,isHmrRefresh:p,isRSCRequest:l,nonce:t,previouslyRevalidatedTags:(g=f.previewModeId,"string"==typeof a[i.NEXT_CACHE_REVALIDATED_TAGS_HEADER]&&a[i.NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER]===g?a[i.NEXT_CACHE_REVALIDATED_TAGS_HEADER].split(","):[]),requestId:j,htmlRequestId:k}}],91315)},10531,a=>{"u">typeof performance&&["mark","measure","getEntriesByName"].every(a=>"function"==typeof performance[a]);var b=a.i(19026),c=a.i(21751);async function d({req:a,res:e,result:f,generateEtags:g,poweredByHeader:h,cacheControl:i}){if(e.finished||e.headersSent)return;h&&f.contentType===c.HTML_CONTENT_TYPE_HEADER&&e.setHeader("X-Powered-By","Next.js"),i&&!e.getHeader("Cache-Control")&&e.setHeader("Cache-Control",function({revalidate:a,expire:b}){let d="number"==typeof a&&void 0!==b&&a(b?'W/"':'"')+(a=>{let b=a.length,c=0,d=0,e=8997,f=0,g=33826,h=0,i=40164,j=0,k=52210;for(;c>>16,e=65535&d,h+=f>>>16,g=65535&f,k=j+(h>>>16)&65535,i=65535&h;return(15&k)*0x1000000000000+0x100000000*i+65536*g+(e^k>>4)})(a).toString(36)+a.length.toString(36)+'"')(j);if(c&&e.setHeader("ETag",c),(0,b.default)(a.headers,{etag:c})&&(e.statusCode=304,e.end(),1))return}(!e.getHeader("Content-Type")&&f.contentType&&e.setHeader("Content-Type",f.contentType),j&&e.setHeader("Content-Length",Buffer.byteLength(j)),"HEAD"===a.method)?e.end(null):null!==j?e.end(j):await f.pipeToNodeResponse(e)}a.s(["sendRenderResult",0,d],10531)},12213,a=>{let b={OPENING:{HTML:new Uint8Array([60,104,116,109,108]),HEAD:new Uint8Array([60,104,101,97,100]),BODY:new Uint8Array([60,98,111,100,121])},CLOSED:{HEAD:new Uint8Array([60,47,104,101,97,100,62]),BODY:new Uint8Array([60,47,98,111,100,121,62]),HTML:new Uint8Array([60,47,104,116,109,108,62]),BODY_AND_HTML:new Uint8Array([60,47,98,111,100,121,62,60,47,104,116,109,108,62])},META:{ICON_MARK:new Uint8Array([60,109,101,116,97,32,110,97,109,101,61,34,194,171,110,120,116,45,105,99,111,110,194,187,34])}};a.s(["ENCODED_TAGS",0,b])},22693,14976,11614,a=>{var b=a.i(75164);function c(){}new TextEncoder;let d=new TextEncoder;function e(...a){if(0===a.length)return new ReadableStream({start(a){a.close()}});if(1===a.length)return a[0];let{readable:b,writable:d}=new TransformStream,f=a[0].pipeTo(d,{preventClose:!0}),g=1;for(;gb.pipeTo(d,{preventClose:!0}))}let h=a[g];return(f=f.then(()=>h.pipeTo(d))).catch(c),b}function f(a){return new ReadableStream({start(b){b.enqueue(d.encode(a)),b.close()}})}function g(a){return new ReadableStream({start(b){b.enqueue(a),b.close()}})}async function h(a){let b=a.getReader(),c=[];for(;;){let{done:a,value:d}=await b.read();if(a)break;c.push(d)}return c}async function i(a){return Buffer.concat(await h(a))}async function j(a,b){let c=new TextDecoder("utf-8",{fatal:!0}),d="";for await(let e of a){if(null==b?void 0:b.aborted)return d;d+=c.decode(e,{stream:!0})}return d+c.decode()}a.s(["y",0,e,"H",0,g,"n",0,f,"W",0,i,"x",0,j],22693),a.i(30106);a.i(38549);a.i(83838),a.i(71200);Symbol("NextURLInternal");Symbol.for("edge-runtime.inspect.custom");a.i(72051),a.i(36226),Symbol("internal request"),Request,Symbol.for("edge-runtime.inspect.custom");let k="ResponseAborted";class l extends Error{constructor(...a){super(...a),this.name=k}}var m=a.i(26407),n=a.i(18970);function o(a){return(null==a?void 0:a.name)==="AbortError"||(null==a?void 0:a.name)===k}let p="performance"in globalThis&&process.env.NEXT_OTEL_PERFORMANCE_PREFIX;async function q(a,c,d,e){try{let f,{errored:g,destroyed:h}=c;if(g||h)return;let i=(f=new AbortController,c.once("close",()=>{c.writableFinished||f.abort(new l)}),f),j=function(a,c,d){let e=!1,f=(0,m.f)();function g(){f.resolve()}a.on("drain",g),a.once("close",()=>{a.off("drain",g),f.resolve()});let h=(0,m.f)();return a.once("finish",()=>{h.resolve()}),new WritableStream({write:async c=>{if(!e){if(e=!0,p){let a=null==d?void 0:d.snapshot();a&&performance.measure(`${process.env.NEXT_OTEL_PERFORMANCE_PREFIX}:next-client-component-loading`,{start:a.clientComponentLoadStart,end:a.clientComponentLoadStart+a.clientComponentLoadTimes})}a.flushHeaders(),(0,b.getTracer)().trace(n.NextNodeServerSpan.startResponse,{spanName:"start response"},()=>void 0)}try{let b=a.write(c);"flush"in a&&"function"==typeof a.flush&&a.flush(),b||(await f.promise,f=(0,m.f)())}catch(b){throw a.end(),Error("failed to write chunk to response",{cause:b})}},abort:b=>{a.writableFinished||a.destroy(b)},close:async()=>{if(c&&await c,!a.writableFinished)return a.end(),h.promise}})}(c,d,e);await a.pipeTo(j,{signal:i.signal})}catch(a){if(o(a))return;throw Error("failed to pipe response",{cause:a})}}async function r(a,c,d,e){try{let{errored:f,destroyed:g}=c;if(f||g)return;let h=!1,i=(0,m.f)(),j=!1,k=()=>{j&&!a.destroyed&&(j=!1,a.resume())};c.on("drain",k),c.once("close",()=>{c.off("drain",k),a.destroy(),i.resolve()}),a.on("data",d=>{if(!h){if(h=!0,"performance"in globalThis&&process.env.NEXT_OTEL_PERFORMANCE_PREFIX){let a=null==e?void 0:e.snapshot();a&&performance.measure(`${process.env.NEXT_OTEL_PERFORMANCE_PREFIX}:next-client-component-loading`,{start:a.clientComponentLoadStart,end:a.clientComponentLoadStart+a.clientComponentLoadTimes})}c.flushHeaders(),(0,b.getTracer)().trace(n.NextNodeServerSpan.startResponse,{spanName:"start response"},()=>void 0)}let f=c.write(d);"flush"in c&&"function"==typeof c.flush&&c.flush(),f||(j=!0,a.pause())}),a.on("end",async()=>{d&&await d,c.writableFinished||c.end(),i.resolve()}),a.on("error",a=>{o(a)||c.destroy(a),i.resolve()}),await i.promise}catch(a){if(o(a))return;throw Error("failed to pipe response",{cause:a})}}a.s(["c",0,o,"H",0,r,"X",0,q],14976);var s=a.i(85034);function t(a){return null!==a&&"object"==typeof a&&"function"==typeof a.pipe&&"function"==typeof a.on&&!(a instanceof ReadableStream)}class u{static #a=this.EMPTY=new u(null,{metadata:{},contentType:null});static fromStatic(a,b){return new u(a,{metadata:{},contentType:b})}constructor(a,{contentType:b,waitUntil:c,metadata:d}){this.response=a,this.contentType=b,this.metadata=d,this.waitUntil=c}assignMetadata(a){Object.assign(this.metadata,a)}get isNull(){return null===this.response}get isDynamic(){return"string"!=typeof this.response}toUnchunkedString(a=!1){if(null===this.response)return"";if("string"!=typeof this.response){if(!a)throw new s.InvariantError("dynamic responses cannot be unchunked. This is a bug in Next.js");return j(this.readable)}return this.response}get readable(){return null===this.response?new ReadableStream({start(a){a.close()}}):"string"==typeof this.response?f(this.response):Buffer.isBuffer(this.response)?g(this.response):Array.isArray(this.response)?e(...this.response):t(this.response)?a.r(81111).Readable.toWeb(this.response):this.response}coerce(){return null===this.response?[]:"string"==typeof this.response?[f(this.response)]:Array.isArray(this.response)?this.response:Buffer.isBuffer(this.response)?[g(this.response)]:t(this.response)?[a.r(81111).Readable.toWeb(this.response)]:[this.response]}pipeThrough(a){this.response=this.readable.pipeThrough(a)}unshift(a){this.response=this.coerce(),this.response.unshift(a)}push(a){this.response=this.coerce(),this.response.push(a)}async pipeTo(a){try{await this.readable.pipeTo(a,{preventClose:!0}),this.waitUntil&&await this.waitUntil,await a.close()}catch(b){if(o(b))return void await a.abort(b);throw b}}async pipeToNodeResponse(a){null!==this.response&&"string"!=typeof this.response&&!Buffer.isBuffer(this.response)&&!Array.isArray(this.response)&&t(this.response)?await r(this.response,a,this.waitUntil,this.metadata.clientComponentLoadTracker):await q(this.readable,a,this.waitUntil,this.metadata.clientComponentLoadTracker)}}a.s(["default",0,u],11614)},84513,a=>{a.s(["f",0,class{static get(a,b,c){let d=Reflect.get(a,b,c);return"function"==typeof d?d.bind(a):d}static set(a,b,c,d){return Reflect.set(a,b,c,d)}static has(a,b){return Reflect.has(a,b)}static deleteProperty(a,b){return Reflect.deleteProperty(a,b)}}])},72051,a=>{a.i(36226),a.s([])},58579,a=>{a.s(["UNDERSCORE_NOT_FOUND_ROUTE",0,"/_not-found"])},71200,a=>{let b=new WeakMap;a.s(["f",0,function(a,c){let d;if(!c)return{pathname:a};let e=b.get(c);e||(e=c.map(a=>a.toLowerCase()),b.set(c,e));let f=a.split("/",2);if(!f[1])return{pathname:a};let g=f[1].toLowerCase(),h=e.indexOf(g);return h<0?{pathname:a}:(d=c[h],{pathname:a=a.slice(d.length+1)||"/",detectedLocale:d})}])},85034,a=>{a.s(["InvariantError",0,class extends Error{constructor(a,b){super(`Invariant: ${a.endsWith(".")?a:a+"."} This is a bug in Next.js.`,b),this.name="InvariantError"}}])},26407,a=>{a.s(["f",0,function(){let a,b,c=new Promise((c,d)=>{a=c,b=d});return{resolve:a,reject:b,promise:c}}])},8770,a=>{var b=a.i(85034),c=a.i(91505),d=a.i(66482);function e(a){if(""===a)return null;let b=d.f.find(b=>a.startsWith(b)),e=(0,c.getSegmentParam)(a);return e?{type:"dynamic",name:a,param:e,interceptionMarker:b}:a.startsWith("(")&&a.endsWith(")")?{type:"route-group",name:a,interceptionMarker:b}:a.startsWith("@")?{type:"parallel-route",name:a,interceptionMarker:b}:{type:"static",name:a,interceptionMarker:b}}a.s(["parseAppRouteSegment",0,e,"parseNormalizedAppRoute",0,function(a){return function a(d,f){let g,h,i,j=d.split("/").filter(Boolean),k=[];for(let l of j){let j=e(function(a){if(!/%5b|%5d/i.test(a))return a;try{let b=decodeURIComponent(a);return(0,c.getSegmentParam)(b)?b:a}catch{return a}}(l));if(j){if("route-group"===j.type&&!(2&f))throw new b.InvariantError(`${d} is being parsed as a normalized route, but it has a route group segment.`);if("parallel-route"===j.type&&!(1&f))throw new b.InvariantError(`${d} is being parsed as a normalized route, but it has a parallel route segment.`);if(k.push(j),j.interceptionMarker){let b=d.split(j.interceptionMarker);if(2!==b.length)throw Error(`Invalid interception route: ${d}`);h=a(b[0],f),i=a(b[1],f),g=j.interceptionMarker}}}let l=k.filter(a=>"dynamic"===a.type);return{normalized:0===f,pathname:d,segments:k,dynamicSegments:l,interceptionMarker:g,interceptingRoute:h,interceptedRoute:i}}(a,0)}])},41763,a=>{var b=a.i(32885);a.s(["normalizeAppPath",0,function(a){var c;return(c=a.split("/").reduce((a,c,d,e)=>!c||(0,b.Q)(c)||"@"===c[0]||("page"===c||"route"===c)&&d===e.length-1?a:`${a}/${c}`,"")).startsWith("/")?c:`/${c}`}],41763)},91505,66482,a=>{let b=["(..)(..)","(.)","(..)","(...)"];a.s(["f",0,b],66482),a.s(["getParamProperties",0,function(a){let b=!1,c=!1;switch(a){case"catchall":case"catchall-intercepted-(..)(..)":case"catchall-intercepted-(.)":case"catchall-intercepted-(..)":case"catchall-intercepted-(...)":b=!0;break;case"optional-catchall":b=!0,c=!0}return{repeat:b,optional:c}},"getSegmentParam",0,function(a){let c=b.find(b=>a.startsWith(b));return(c&&(a=a.slice(c.length)),a.startsWith("[[...")&&a.endsWith("]]"))?{paramType:"optional-catchall",paramName:a.slice(5,-2)}:a.startsWith("[...")&&a.endsWith("]")?{paramType:c?`catchall-intercepted-${c}`:"catchall",paramName:a.slice(4,-1)}:a.startsWith("[")&&a.endsWith("]")?{paramType:c?`dynamic-intercepted-${c}`:"dynamic",paramName:a.slice(1,-1)}:null}],91505)},49670,a=>{let b=/[\w-]+-Google|Google-[\w-]+|Chrome-Lighthouse|Slurp|DuckDuckBot|baiduspider|yandex|sogou|bitlybot|tumblr|vkShare|quora link preview|redditbot|ia_archiver|Bingbot|BingPreview|applebot|facebookexternalhit|facebookcatalog|Twitterbot|LinkedInBot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|Yeti|googleweblight/i,c=/Googlebot(?!-)|Googlebot$/i,d=b.source;a.s(["HTML_LIMITED_BOT_UA_RE_STRING",0,d,"getBotType",0,function(a){return c.test(a)?"dom":b.test(a)?"html":void 0}],49670)},83838,38549,a=>{function b(a){let b=a.indexOf("#"),c=a.indexOf("?"),d=c>-1&&(b<0||c-1?{pathname:a.substring(0,d?c:b),query:d?a.substring(c,b>-1?b:void 0):"",hash:b>-1?a.slice(b):""}:{pathname:a,query:"",hash:""}}a.s(["f",0,b],38549),a.s(["f",0,function(a,c){if("string"!=typeof a)return!1;let{pathname:d}=b(a);return d===c||d.startsWith(c+"/")}],83838)},32885,a=>{a.s(["F",0,"__DEFAULT__","z",0,"__PAGE__","Q",0,function(a){return"("===a[0]&&a.endsWith(")")}])},52879,a=>{a.s(["p",0,function(a){let b=parseInt(a.slice(0,2),16),c=b>>1&63,d=Array(6);for(let a=0;a<6;a++){let b=c>>5-a&1;d[a]=1===b}return{type:1==(b>>7&1)?"use-cache":"server-action",usedArgs:d,hasRestArgs:1==(1&b)}},"s",0,function(a){return 42===a.length}])},1082,a=>{a.s(["DEFAULT_MAX_POSTPONED_STATE_SIZE",0,"100 MB","parseMaxPostponedStateSize",0,function(b){if(!b)return 0x6400000;let c=a.r(14465).parse(b);return null===c||isNaN(c)||c<1?void 0:c}])},88652,a=>{let b=/^[A-Za-z_$][A-Za-z0-9_$]*$/,c=new Set(["hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toString","valueOf","toLocaleString","then","catch","finally","status","displayName","_debugInfo","toJSON","$$typeof","__esModule","@@iterator"]);a.s(["L",0,function(a,b){let c=JSON.stringify(b);return`\`Reflect.has(${a}, ${c})\`, \`${c} in ${a}\`, or similar`},"r",0,function(a,c){return b.test(c)?`\`${a}.${c}\``:`\`${a}[${JSON.stringify(c)}]\``},"A",0,c])},75465,(a,b,c)=>{b.exports=a.r(24951).vendored["react-rsc"].ReactDOM},10990,(a,b,c)=>{b.exports=a.r(24951).vendored["react-rsc"].ReactServerDOMTurbopackStatic}],27028,(a,b,c)=>{b.exports=a.x("node:zlib",()=>require("node:zlib"))},24361,(a,b,c)=>{b.exports=a.x("util",()=>require("util"))},62562,(a,b,c)=>{(()=>{"use strict";let c,d,e,f,g;var h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x={912:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.ContextAPI=void 0;let d=c(108),e=c(221),f=c(44),g="context",h=new d.NoopContextManager;b.ContextAPI=class a{static getInstance(){return this._instance||(this._instance=new a),this._instance}setGlobalContextManager(a){return(0,e.registerGlobal)(g,a,f.DiagAPI.instance())}active(){return this._getContextManager().active()}with(a,b,c,...d){return this._getContextManager().with(a,b,c,...d)}bind(a,b){return this._getContextManager().bind(a,b)}_getContextManager(){return(0,e.getGlobal)(g)||h}disable(){this._getContextManager().disable(),(0,e.unregisterGlobal)(g,f.DiagAPI.instance())}}},44:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.DiagAPI=void 0;let d=c(757),e=c(412),f=c(711),g=c(221);b.DiagAPI=class a{constructor(){function a(a){return function(...b){let c=(0,g.getGlobal)("diag");if(c)return c[a](...b)}}let b=this;b.setLogger=(a,c={logLevel:f.DiagLogLevel.INFO})=>{var d,h,i;if(a===b){let a=Error("Cannot use diag as the logger for itself. Please use a DiagLogger implementation like ConsoleDiagLogger or a custom implementation");return b.error(null!=(d=a.stack)?d:a.message),!1}"number"==typeof c&&(c={logLevel:c});let j=(0,g.getGlobal)("diag"),k=(0,e.createLogLevelDiagLogger)(null!=(h=c.logLevel)?h:f.DiagLogLevel.INFO,a);if(j&&!c.suppressOverrideMessage){let a=null!=(i=Error().stack)?i:"";j.warn(`Current logger will be overwritten from ${a}`),k.warn(`Current logger will overwrite one already registered from ${a}`)}return(0,g.registerGlobal)("diag",k,b,!0)},b.disable=()=>{(0,g.unregisterGlobal)("diag",b)},b.createComponentLogger=a=>new d.DiagComponentLogger(a),b.verbose=a("verbose"),b.debug=a("debug"),b.info=a("info"),b.warn=a("warn"),b.error=a("error")}static instance(){return this._instance||(this._instance=new a),this._instance}}},262:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.MetricsAPI=void 0;let d=c(586),e=c(221),f=c(44),g="metrics";b.MetricsAPI=class a{static getInstance(){return this._instance||(this._instance=new a),this._instance}setGlobalMeterProvider(a){return(0,e.registerGlobal)(g,a,f.DiagAPI.instance())}getMeterProvider(){return(0,e.getGlobal)(g)||d.NOOP_METER_PROVIDER}getMeter(a,b,c){return this.getMeterProvider().getMeter(a,b,c)}disable(){(0,e.unregisterGlobal)(g,f.DiagAPI.instance())}}},25:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.PropagationAPI=void 0;let d=c(221),e=c(19),f=c(92),g=c(398),h=c(504),i=c(44),j="propagation",k=new e.NoopTextMapPropagator;b.PropagationAPI=class a{constructor(){this.createBaggage=h.createBaggage,this.getBaggage=g.getBaggage,this.getActiveBaggage=g.getActiveBaggage,this.setBaggage=g.setBaggage,this.deleteBaggage=g.deleteBaggage}static getInstance(){return this._instance||(this._instance=new a),this._instance}setGlobalPropagator(a){return(0,d.registerGlobal)(j,a,i.DiagAPI.instance())}inject(a,b,c=f.defaultTextMapSetter){return this._getGlobalPropagator().inject(a,b,c)}extract(a,b,c=f.defaultTextMapGetter){return this._getGlobalPropagator().extract(a,b,c)}fields(){return this._getGlobalPropagator().fields()}disable(){(0,d.unregisterGlobal)(j,i.DiagAPI.instance())}_getGlobalPropagator(){return(0,d.getGlobal)(j)||k}}},397:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.TraceAPI=void 0;let d=c(221),e=c(498),f=c(477),g=c(793),h=c(44),i="trace";b.TraceAPI=class a{constructor(){this._proxyTracerProvider=new e.ProxyTracerProvider,this.wrapSpanContext=f.wrapSpanContext,this.isSpanContextValid=f.isSpanContextValid,this.deleteSpan=g.deleteSpan,this.getSpan=g.getSpan,this.getActiveSpan=g.getActiveSpan,this.getSpanContext=g.getSpanContext,this.setSpan=g.setSpan,this.setSpanContext=g.setSpanContext}static getInstance(){return this._instance||(this._instance=new a),this._instance}setGlobalTracerProvider(a){let b=(0,d.registerGlobal)(i,this._proxyTracerProvider,h.DiagAPI.instance());return b&&this._proxyTracerProvider.setDelegate(a),b}getTracerProvider(){return(0,d.getGlobal)(i)||this._proxyTracerProvider}getTracer(a,b){return this.getTracerProvider().getTracer(a,b)}disable(){(0,d.unregisterGlobal)(i,h.DiagAPI.instance()),this._proxyTracerProvider=new e.ProxyTracerProvider}}},398:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.deleteBaggage=b.setBaggage=b.getActiveBaggage=b.getBaggage=void 0;let d=c(912),e=(0,c(23).createContextKey)("OpenTelemetry Baggage Key");function f(a){return a.getValue(e)||void 0}b.getBaggage=f,b.getActiveBaggage=function(){return f(d.ContextAPI.getInstance().active())},b.setBaggage=function(a,b){return a.setValue(e,b)},b.deleteBaggage=function(a){return a.deleteValue(e)}},152:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.BaggageImpl=void 0,b.BaggageImpl=class a{constructor(a){this._entries=a?new Map(a):new Map}getEntry(a){let b=this._entries.get(a);if(b)return Object.assign({},b)}getAllEntries(){return Array.from(this._entries.entries()).map(([a,b])=>[a,b])}setEntry(b,c){let d=new a(this._entries);return d._entries.set(b,c),d}removeEntry(b){let c=new a(this._entries);return c._entries.delete(b),c}removeEntries(...b){let c=new a(this._entries);for(let a of b)c._entries.delete(a);return c}clear(){return new a}}},647:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.baggageEntryMetadataSymbol=void 0,b.baggageEntryMetadataSymbol=Symbol("BaggageEntryMetadata")},504:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.baggageEntryMetadataFromString=b.createBaggage=void 0;let d=c(44),e=c(152),f=c(647),g=d.DiagAPI.instance();b.createBaggage=function(a={}){return new e.BaggageImpl(new Map(Object.entries(a)))},b.baggageEntryMetadataFromString=function(a){return"string"!=typeof a&&(g.error(`Cannot create baggage metadata from unknown type: ${typeof a}`),a=""),{__TYPE__:f.baggageEntryMetadataSymbol,toString:()=>a}}},778:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.context=void 0,b.context=c(912).ContextAPI.getInstance()},108:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.NoopContextManager=void 0;let d=c(23);b.NoopContextManager=class{active(){return d.ROOT_CONTEXT}with(a,b,c,...d){return b.call(c,...d)}bind(a,b){return b}enable(){return this}disable(){return this}}},23:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.ROOT_CONTEXT=b.createContextKey=void 0,b.createContextKey=function(a){return Symbol.for(a)},b.ROOT_CONTEXT=new class a{constructor(b){let c=this;c._currentContext=b?new Map(b):new Map,c.getValue=a=>c._currentContext.get(a),c.setValue=(b,d)=>{let e=new a(c._currentContext);return e._currentContext.set(b,d),e},c.deleteValue=b=>{let d=new a(c._currentContext);return d._currentContext.delete(b),d}}}},304:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.diag=void 0,b.diag=c(44).DiagAPI.instance()},757:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.DiagComponentLogger=void 0;let d=c(221);function e(a,b,c){let e=(0,d.getGlobal)("diag");if(e)return c.unshift(b),e[a](...c)}b.DiagComponentLogger=class{constructor(a){this._namespace=a.namespace||"DiagComponentLogger"}debug(...a){return e("debug",this._namespace,a)}error(...a){return e("error",this._namespace,a)}info(...a){return e("info",this._namespace,a)}warn(...a){return e("warn",this._namespace,a)}verbose(...a){return e("verbose",this._namespace,a)}}},83:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.DiagConsoleLogger=void 0;let c=[{n:"error",c:"error"},{n:"warn",c:"warn"},{n:"info",c:"info"},{n:"debug",c:"debug"},{n:"verbose",c:"trace"}];b.DiagConsoleLogger=class{constructor(){for(let a=0;a{Object.defineProperty(b,"__esModule",{value:!0}),b.createLogLevelDiagLogger=void 0;let d=c(711);b.createLogLevelDiagLogger=function(a,b){function c(c,d){let e=b[c];return"function"==typeof e&&a>=d?e.bind(b):function(){}}return ad.DiagLogLevel.ALL&&(a=d.DiagLogLevel.ALL),b=b||{},{error:c("error",d.DiagLogLevel.ERROR),warn:c("warn",d.DiagLogLevel.WARN),info:c("info",d.DiagLogLevel.INFO),debug:c("debug",d.DiagLogLevel.DEBUG),verbose:c("verbose",d.DiagLogLevel.VERBOSE)}}},711:(a,b)=>{var c;Object.defineProperty(b,"__esModule",{value:!0}),b.DiagLogLevel=void 0,(c=b.DiagLogLevel||(b.DiagLogLevel={}))[c.NONE=0]="NONE",c[c.ERROR=30]="ERROR",c[c.WARN=50]="WARN",c[c.INFO=60]="INFO",c[c.DEBUG=70]="DEBUG",c[c.VERBOSE=80]="VERBOSE",c[c.ALL=9999]="ALL"},221:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.unregisterGlobal=b.getGlobal=b.registerGlobal=void 0;let d=c(678),e=c(652),f=c(662),g=e.VERSION.split(".")[0],h=Symbol.for(`opentelemetry.js.api.${g}`),i=d._globalThis;b.registerGlobal=function(a,b,c,d=!1){var f;let g=i[h]=null!=(f=i[h])?f:{version:e.VERSION};if(!d&&g[a]){let b=Error(`@opentelemetry/api: Attempted duplicate registration of API: ${a}`);return c.error(b.stack||b.message),!1}if(g.version!==e.VERSION){let b=Error(`@opentelemetry/api: Registration of version v${g.version} for ${a} does not match previously registered API v${e.VERSION}`);return c.error(b.stack||b.message),!1}return g[a]=b,c.debug(`@opentelemetry/api: Registered a global for ${a} v${e.VERSION}.`),!0},b.getGlobal=function(a){var b,c;let d=null==(b=i[h])?void 0:b.version;if(d&&(0,f.isCompatible)(d))return null==(c=i[h])?void 0:c[a]},b.unregisterGlobal=function(a,b){b.debug(`@opentelemetry/api: Unregistering a global for ${a} v${e.VERSION}.`);let c=i[h];c&&delete c[a]}},662:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.isCompatible=b._makeCompatibilityCheck=void 0;let d=c(652),e=/^(\d+)\.(\d+)\.(\d+)(-(.+))?$/;function f(a){let b=new Set([a]),c=new Set,d=a.match(e);if(!d)return()=>!1;let f={major:+d[1],minor:+d[2],patch:+d[3],prerelease:d[4]};if(null!=f.prerelease)return function(b){return b===a};function g(a){return c.add(a),!1}return function(a){if(b.has(a))return!0;if(c.has(a))return!1;let d=a.match(e);if(!d)return g(a);let h={major:+d[1],minor:+d[2],patch:+d[3],prerelease:d[4]};if(null!=h.prerelease||f.major!==h.major)return g(a);if(0===f.major)return f.minor===h.minor&&f.patch<=h.patch?(b.add(a),!0):g(a);return f.minor<=h.minor?(b.add(a),!0):g(a)}}b._makeCompatibilityCheck=f,b.isCompatible=f(d.VERSION)},120:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.metrics=void 0,b.metrics=c(262).MetricsAPI.getInstance()},532:(a,b)=>{var c;Object.defineProperty(b,"__esModule",{value:!0}),b.ValueType=void 0,(c=b.ValueType||(b.ValueType={}))[c.INT=0]="INT",c[c.DOUBLE=1]="DOUBLE"},440:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.createNoopMeter=b.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC=b.NOOP_OBSERVABLE_GAUGE_METRIC=b.NOOP_OBSERVABLE_COUNTER_METRIC=b.NOOP_UP_DOWN_COUNTER_METRIC=b.NOOP_HISTOGRAM_METRIC=b.NOOP_COUNTER_METRIC=b.NOOP_METER=b.NoopObservableUpDownCounterMetric=b.NoopObservableGaugeMetric=b.NoopObservableCounterMetric=b.NoopObservableMetric=b.NoopHistogramMetric=b.NoopUpDownCounterMetric=b.NoopCounterMetric=b.NoopMetric=b.NoopMeter=void 0;class c{createHistogram(a,c){return b.NOOP_HISTOGRAM_METRIC}createCounter(a,c){return b.NOOP_COUNTER_METRIC}createUpDownCounter(a,c){return b.NOOP_UP_DOWN_COUNTER_METRIC}createObservableGauge(a,c){return b.NOOP_OBSERVABLE_GAUGE_METRIC}createObservableCounter(a,c){return b.NOOP_OBSERVABLE_COUNTER_METRIC}createObservableUpDownCounter(a,c){return b.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC}addBatchObservableCallback(a,b){}removeBatchObservableCallback(a){}}b.NoopMeter=c;class d{}b.NoopMetric=d;class e extends d{add(a,b){}}b.NoopCounterMetric=e;class f extends d{add(a,b){}}b.NoopUpDownCounterMetric=f;class g extends d{record(a,b){}}b.NoopHistogramMetric=g;class h{addCallback(a){}removeCallback(a){}}b.NoopObservableMetric=h;class i extends h{}b.NoopObservableCounterMetric=i;class j extends h{}b.NoopObservableGaugeMetric=j;class k extends h{}b.NoopObservableUpDownCounterMetric=k,b.NOOP_METER=new c,b.NOOP_COUNTER_METRIC=new e,b.NOOP_HISTOGRAM_METRIC=new g,b.NOOP_UP_DOWN_COUNTER_METRIC=new f,b.NOOP_OBSERVABLE_COUNTER_METRIC=new i,b.NOOP_OBSERVABLE_GAUGE_METRIC=new j,b.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC=new k,b.createNoopMeter=function(){return b.NOOP_METER}},586:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.NOOP_METER_PROVIDER=b.NoopMeterProvider=void 0;let d=c(440);class e{getMeter(a,b,c){return d.NOOP_METER}}b.NoopMeterProvider=e,b.NOOP_METER_PROVIDER=new e},678:function(a,b,c){var d=this&&this.__createBinding||(Object.create?function(a,b,c,d){void 0===d&&(d=c),Object.defineProperty(a,d,{enumerable:!0,get:function(){return b[c]}})}:function(a,b,c,d){void 0===d&&(d=c),a[d]=b[c]}),e=this&&this.__exportStar||function(a,b){for(var c in a)"default"===c||Object.prototype.hasOwnProperty.call(b,c)||d(b,a,c)};Object.defineProperty(b,"__esModule",{value:!0}),e(c(59),b)},460:(b,c)=>{Object.defineProperty(c,"__esModule",{value:!0}),c._globalThis=void 0,c._globalThis="object"==typeof globalThis?globalThis:a.g},59:function(a,b,c){var d=this&&this.__createBinding||(Object.create?function(a,b,c,d){void 0===d&&(d=c),Object.defineProperty(a,d,{enumerable:!0,get:function(){return b[c]}})}:function(a,b,c,d){void 0===d&&(d=c),a[d]=b[c]}),e=this&&this.__exportStar||function(a,b){for(var c in a)"default"===c||Object.prototype.hasOwnProperty.call(b,c)||d(b,a,c)};Object.defineProperty(b,"__esModule",{value:!0}),e(c(460),b)},27:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.propagation=void 0,b.propagation=c(25).PropagationAPI.getInstance()},19:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.NoopTextMapPropagator=void 0,b.NoopTextMapPropagator=class{inject(a,b){}extract(a,b){return a}fields(){return[]}}},92:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.defaultTextMapSetter=b.defaultTextMapGetter=void 0,b.defaultTextMapGetter={get(a,b){if(null!=a)return a[b]},keys:a=>null==a?[]:Object.keys(a)},b.defaultTextMapSetter={set(a,b,c){null!=a&&(a[b]=c)}}},816:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.trace=void 0,b.trace=c(397).TraceAPI.getInstance()},374:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.NonRecordingSpan=void 0;let d=c(546);b.NonRecordingSpan=class{constructor(a=d.INVALID_SPAN_CONTEXT){this._spanContext=a}spanContext(){return this._spanContext}setAttribute(a,b){return this}setAttributes(a){return this}addEvent(a,b){return this}setStatus(a){return this}updateName(a){return this}end(a){}isRecording(){return!1}recordException(a,b){}}},637:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.NoopTracer=void 0;let d=c(912),e=c(793),f=c(374),g=c(477),h=d.ContextAPI.getInstance();b.NoopTracer=class{startSpan(a,b,c=h.active()){var d;if(null==b?void 0:b.root)return new f.NonRecordingSpan;let i=c&&(0,e.getSpanContext)(c);return"object"==typeof(d=i)&&"string"==typeof d.spanId&&"string"==typeof d.traceId&&"number"==typeof d.traceFlags&&(0,g.isSpanContextValid)(i)?new f.NonRecordingSpan(i):new f.NonRecordingSpan}startActiveSpan(a,b,c,d){let f,g,i;if(arguments.length<2)return;2==arguments.length?i=b:3==arguments.length?(f=b,i=c):(f=b,g=c,i=d);let j=null!=g?g:h.active(),k=this.startSpan(a,f,j),l=(0,e.setSpan)(j,k);return h.with(l,i,void 0,k)}}},76:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.NoopTracerProvider=void 0;let d=c(637);b.NoopTracerProvider=class{getTracer(a,b,c){return new d.NoopTracer}}},779:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.ProxyTracer=void 0;let d=new(c(637)).NoopTracer;b.ProxyTracer=class{constructor(a,b,c,d){this._provider=a,this.name=b,this.version=c,this.options=d}startSpan(a,b,c){return this._getTracer().startSpan(a,b,c)}startActiveSpan(a,b,c,d){let e=this._getTracer();return Reflect.apply(e.startActiveSpan,e,arguments)}_getTracer(){if(this._delegate)return this._delegate;let a=this._provider.getDelegateTracer(this.name,this.version,this.options);return a?(this._delegate=a,this._delegate):d}}},498:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.ProxyTracerProvider=void 0;let d=c(779),e=new(c(76)).NoopTracerProvider;b.ProxyTracerProvider=class{getTracer(a,b,c){var e;return null!=(e=this.getDelegateTracer(a,b,c))?e:new d.ProxyTracer(this,a,b,c)}getDelegate(){var a;return null!=(a=this._delegate)?a:e}setDelegate(a){this._delegate=a}getDelegateTracer(a,b,c){var d;return null==(d=this._delegate)?void 0:d.getTracer(a,b,c)}}},312:(a,b)=>{var c;Object.defineProperty(b,"__esModule",{value:!0}),b.SamplingDecision=void 0,(c=b.SamplingDecision||(b.SamplingDecision={}))[c.NOT_RECORD=0]="NOT_RECORD",c[c.RECORD=1]="RECORD",c[c.RECORD_AND_SAMPLED=2]="RECORD_AND_SAMPLED"},793:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.getSpanContext=b.setSpanContext=b.deleteSpan=b.setSpan=b.getActiveSpan=b.getSpan=void 0;let d=c(23),e=c(374),f=c(912),g=(0,d.createContextKey)("OpenTelemetry Context Key SPAN");function h(a){return a.getValue(g)||void 0}function i(a,b){return a.setValue(g,b)}b.getSpan=h,b.getActiveSpan=function(){return h(f.ContextAPI.getInstance().active())},b.setSpan=i,b.deleteSpan=function(a){return a.deleteValue(g)},b.setSpanContext=function(a,b){return i(a,new e.NonRecordingSpan(b))},b.getSpanContext=function(a){var b;return null==(b=h(a))?void 0:b.spanContext()}},285:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.TraceStateImpl=void 0;let d=c(240);b.TraceStateImpl=class a{constructor(a){this._internalState=new Map,a&&this._parse(a)}set(a,b){let c=this._clone();return c._internalState.has(a)&&c._internalState.delete(a),c._internalState.set(a,b),c}unset(a){let b=this._clone();return b._internalState.delete(a),b}get(a){return this._internalState.get(a)}serialize(){return this._keys().reduce((a,b)=>(a.push(b+"="+this.get(b)),a),[]).join(",")}_parse(a){!(a.length>512)&&(this._internalState=a.split(",").reverse().reduce((a,b)=>{let c=b.trim(),e=c.indexOf("=");if(-1!==e){let f=c.slice(0,e),g=c.slice(e+1,b.length);(0,d.validateKey)(f)&&(0,d.validateValue)(g)&&a.set(f,g)}return a},new Map),this._internalState.size>32&&(this._internalState=new Map(Array.from(this._internalState.entries()).reverse().slice(0,32))))}_keys(){return Array.from(this._internalState.keys()).reverse()}_clone(){let b=new a;return b._internalState=new Map(this._internalState),b}}},240:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.validateValue=b.validateKey=void 0;let c="[_0-9a-z-*/]",d=`[a-z]${c}{0,255}`,e=`[a-z0-9]${c}{0,240}@[a-z]${c}{0,13}`,f=RegExp(`^(?:${d}|${e})$`),g=/^[ -~]{0,255}[!-~]$/,h=/,|=/;b.validateKey=function(a){return f.test(a)},b.validateValue=function(a){return g.test(a)&&!h.test(a)}},87:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.createTraceState=void 0;let d=c(285);b.createTraceState=function(a){return new d.TraceStateImpl(a)}},546:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.INVALID_SPAN_CONTEXT=b.INVALID_TRACEID=b.INVALID_SPANID=void 0;let d=c(731);b.INVALID_SPANID="0000000000000000",b.INVALID_TRACEID="00000000000000000000000000000000",b.INVALID_SPAN_CONTEXT={traceId:b.INVALID_TRACEID,spanId:b.INVALID_SPANID,traceFlags:d.TraceFlags.NONE}},613:(a,b)=>{var c;Object.defineProperty(b,"__esModule",{value:!0}),b.SpanKind=void 0,(c=b.SpanKind||(b.SpanKind={}))[c.INTERNAL=0]="INTERNAL",c[c.SERVER=1]="SERVER",c[c.CLIENT=2]="CLIENT",c[c.PRODUCER=3]="PRODUCER",c[c.CONSUMER=4]="CONSUMER"},477:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.wrapSpanContext=b.isSpanContextValid=b.isValidSpanId=b.isValidTraceId=void 0;let d=c(546),e=c(374),f=/^([0-9a-f]{32})$/i,g=/^[0-9a-f]{16}$/i;function h(a){return f.test(a)&&a!==d.INVALID_TRACEID}function i(a){return g.test(a)&&a!==d.INVALID_SPANID}b.isValidTraceId=h,b.isValidSpanId=i,b.isSpanContextValid=function(a){return h(a.traceId)&&i(a.spanId)},b.wrapSpanContext=function(a){return new e.NonRecordingSpan(a)}},854:(a,b)=>{var c;Object.defineProperty(b,"__esModule",{value:!0}),b.SpanStatusCode=void 0,(c=b.SpanStatusCode||(b.SpanStatusCode={}))[c.UNSET=0]="UNSET",c[c.OK=1]="OK",c[c.ERROR=2]="ERROR"},731:(a,b)=>{var c;Object.defineProperty(b,"__esModule",{value:!0}),b.TraceFlags=void 0,(c=b.TraceFlags||(b.TraceFlags={}))[c.NONE=0]="NONE",c[c.SAMPLED=1]="SAMPLED"},652:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.VERSION=void 0,b.VERSION="1.6.0"}},y={};function z(a){var b=y[a];if(void 0!==b)return b.exports;var c=y[a]={exports:{}},d=!0;try{x[a].call(c.exports,c,c.exports,z),d=!1}finally{d&&delete y[a]}return c.exports}z.ab="/ROOT/node_modules/next/dist/compiled/@opentelemetry/api/";var A={};Object.defineProperty(A,"__esModule",{value:!0}),A.trace=A.propagation=A.metrics=A.diag=A.context=A.INVALID_SPAN_CONTEXT=A.INVALID_TRACEID=A.INVALID_SPANID=A.isValidSpanId=A.isValidTraceId=A.isSpanContextValid=A.createTraceState=A.TraceFlags=A.SpanStatusCode=A.SpanKind=A.SamplingDecision=A.ProxyTracerProvider=A.ProxyTracer=A.defaultTextMapSetter=A.defaultTextMapGetter=A.ValueType=A.createNoopMeter=A.DiagLogLevel=A.DiagConsoleLogger=A.ROOT_CONTEXT=A.createContextKey=A.baggageEntryMetadataFromString=void 0,h=z(504),Object.defineProperty(A,"baggageEntryMetadataFromString",{enumerable:!0,get:function(){return h.baggageEntryMetadataFromString}}),i=z(23),Object.defineProperty(A,"createContextKey",{enumerable:!0,get:function(){return i.createContextKey}}),Object.defineProperty(A,"ROOT_CONTEXT",{enumerable:!0,get:function(){return i.ROOT_CONTEXT}}),j=z(83),Object.defineProperty(A,"DiagConsoleLogger",{enumerable:!0,get:function(){return j.DiagConsoleLogger}}),k=z(711),Object.defineProperty(A,"DiagLogLevel",{enumerable:!0,get:function(){return k.DiagLogLevel}}),l=z(440),Object.defineProperty(A,"createNoopMeter",{enumerable:!0,get:function(){return l.createNoopMeter}}),m=z(532),Object.defineProperty(A,"ValueType",{enumerable:!0,get:function(){return m.ValueType}}),n=z(92),Object.defineProperty(A,"defaultTextMapGetter",{enumerable:!0,get:function(){return n.defaultTextMapGetter}}),Object.defineProperty(A,"defaultTextMapSetter",{enumerable:!0,get:function(){return n.defaultTextMapSetter}}),o=z(779),Object.defineProperty(A,"ProxyTracer",{enumerable:!0,get:function(){return o.ProxyTracer}}),p=z(498),Object.defineProperty(A,"ProxyTracerProvider",{enumerable:!0,get:function(){return p.ProxyTracerProvider}}),q=z(312),Object.defineProperty(A,"SamplingDecision",{enumerable:!0,get:function(){return q.SamplingDecision}}),r=z(613),Object.defineProperty(A,"SpanKind",{enumerable:!0,get:function(){return r.SpanKind}}),s=z(854),Object.defineProperty(A,"SpanStatusCode",{enumerable:!0,get:function(){return s.SpanStatusCode}}),t=z(731),Object.defineProperty(A,"TraceFlags",{enumerable:!0,get:function(){return t.TraceFlags}}),u=z(87),Object.defineProperty(A,"createTraceState",{enumerable:!0,get:function(){return u.createTraceState}}),v=z(477),Object.defineProperty(A,"isSpanContextValid",{enumerable:!0,get:function(){return v.isSpanContextValid}}),Object.defineProperty(A,"isValidTraceId",{enumerable:!0,get:function(){return v.isValidTraceId}}),Object.defineProperty(A,"isValidSpanId",{enumerable:!0,get:function(){return v.isValidSpanId}}),w=z(546),Object.defineProperty(A,"INVALID_SPANID",{enumerable:!0,get:function(){return w.INVALID_SPANID}}),Object.defineProperty(A,"INVALID_TRACEID",{enumerable:!0,get:function(){return w.INVALID_TRACEID}}),Object.defineProperty(A,"INVALID_SPAN_CONTEXT",{enumerable:!0,get:function(){return w.INVALID_SPAN_CONTEXT}}),c=z(778),Object.defineProperty(A,"context",{enumerable:!0,get:function(){return c.context}}),d=z(304),Object.defineProperty(A,"diag",{enumerable:!0,get:function(){return d.diag}}),e=z(120),Object.defineProperty(A,"metrics",{enumerable:!0,get:function(){return e.metrics}}),f=z(27),Object.defineProperty(A,"propagation",{enumerable:!0,get:function(){return f.propagation}}),g=z(816),Object.defineProperty(A,"trace",{enumerable:!0,get:function(){return g.trace}}),A.default={context:c.context,diag:d.diag,metrics:e.metrics,propagation:f.propagation,trace:g.trace},b.exports=A})()},20460,(a,b,c)=>{(()=>{"use strict";"u">typeof __nccwpck_require__&&(__nccwpck_require__.ab="/ROOT/node_modules/next/dist/compiled/cookie/");var a,c,d,e,f={};f.parse=function(b,c){if("string"!=typeof b)throw TypeError("argument str must be a string");for(var e={},f=b.split(d),g=(c||{}).decode||a,h=0;h{(()=>{"use strict";var a={928:a=>{var b=/(?:^|,)\s*?no-cache\s*?(?:,|$)/;function c(a){var b=a&&Date.parse(a);return"number"==typeof b?b:0/0}a.exports=function(a,d){var e=a["if-modified-since"],f=a["if-none-match"];if(!e&&!f)return!1;var g=a["cache-control"];if(g&&b.test(g))return!1;if(f&&"*"!==f){var h=d.etag;if(!h)return!1;for(var i=!0,j=function(a){for(var b=0,c=[],d=0,e=0,f=a.length;e{(()=>{"use strict";"u">typeof __nccwpck_require__&&(__nccwpck_require__.ab="/ROOT/node_modules/next/dist/compiled/path-to-regexp/");var a={};(()=>{function b(a,b){void 0===b&&(b={});for(var c=function(a){for(var b=[],c=0;c=48&&g<=57||g>=65&&g<=90||g>=97&&g<=122||95===g){e+=a[f++];continue}break}if(!e)throw TypeError("Missing parameter name at ".concat(c));b.push({type:"NAME",index:c,value:e}),c=f;continue}if("("===d){var h=1,i="",f=c+1;if("?"===a[f])throw TypeError('Pattern cannot start with "?" at '.concat(f));for(;f-1)return!0}return!1},q=function(a){var b=i[i.length-1],c=a||(b&&"string"==typeof b?b:"");if(b&&!c)throw TypeError('Must have text between two parameters, missing text after "'.concat(b.name,'"'));return!c||p(c)?"[^".concat(e(h),"]+?"):"(?:(?!".concat(e(c),")[^").concat(e(h),"])+?")};k-1:void 0===v;g||(p+="(?:".concat(o,"(?=").concat(n,"))?")),w||(p+="(?=".concat(o,"|").concat(n,")"))}return new RegExp(p,f(c))}function h(a,c,d){if(a instanceof RegExp){var e;if(!c)return a;for(var i=/\((?:\?<(.*?)>)?(?!\?)/g,j=0,k=i.exec(a.source);k;)c.push({name:k[1]||j++,prefix:"",suffix:"",modifier:"",pattern:""}),k=i.exec(a.source);return a}return Array.isArray(a)?(e=a.map(function(a){return h(a,c,d).source}),new RegExp("(?:".concat(e.join("|"),")"),f(d))):g(b(a,d),c,d)}Object.defineProperty(a,"__esModule",{value:!0}),a.pathToRegexp=a.tokensToRegexp=a.regexpToFunction=a.match=a.tokensToFunction=a.compile=a.parse=void 0,a.parse=b,a.compile=function(a,d){return c(b(a,d),d)},a.tokensToFunction=c,a.match=function(a,b){var c=[];return d(h(a,c,b),c,b)},a.regexpToFunction=d,a.tokensToRegexp=g,a.pathToRegexp=h})(),b.exports=a})()},23932,(a,b,c)=>{(()=>{"use strict";var a={36:a=>{a.exports=function(a){for(var b=5381,c=a.length;c;)b=33*b^a.charCodeAt(--c);return b>>>0}}},c={};function d(b){var e=c[b];if(void 0!==e)return e.exports;var f=c[b]={exports:{}},g=!0;try{a[b](f,f.exports,d),g=!1}finally{g&&delete c[b]}return f.exports}d.ab="/ROOT/node_modules/next/dist/compiled/string-hash/",b.exports=d(36)})()},91673,(a,b,c)=>{var d;"u">typeof __nccwpck_require__&&(__nccwpck_require__.ab="/ROOT/node_modules/next/dist/compiled/superstruct/"),({293:function(a,b){!function(a){"use strict";class b extends TypeError{constructor(a,b){let c,{message:d,explanation:e,...f}=a,{path:g}=a,h=0===g.length?d:`At path: ${g.join(".")} -- ${d}`;super(e??h),null!=e&&(this.cause=h),Object.assign(this,f),this.name=this.constructor.name,this.failures=()=>c??(c=[a,...b()])}}function c(a){return"object"==typeof a&&null!=a}function d(a){if("[object Object]"!==Object.prototype.toString.call(a))return!1;let b=Object.getPrototypeOf(a);return null===b||b===Object.prototype}function e(a){return"symbol"==typeof a?a.toString():"string"==typeof a?JSON.stringify(a):`${a}`}function*f(a,b,d,f){var g;for(let h of(c(g=a)&&"function"==typeof g[Symbol.iterator]||(a=[a]),a)){let a=function(a,b,c,d){if(!0===a)return;!1===a?a={}:"string"==typeof a&&(a={message:a});let{path:f,branch:g}=b,{type:h}=c,{refinement:i,message:j=`Expected a value of type \`${h}\`${i?` with refinement \`${i}\``:""}, but received: \`${e(d)}\``}=a;return{value:d,type:h,refinement:i,key:f[f.length-1],path:f,branch:g,...a,message:j}}(h,b,d,f);a&&(yield a)}}function*g(a,b,d={}){let{path:e=[],branch:f=[a],coerce:h=!1,mask:i=!1}=d,j={path:e,branch:f};if(h&&(a=b.coercer(a,j),i&&"type"!==b.type&&c(b.schema)&&c(a)&&!Array.isArray(a)))for(let c in a)void 0===b.schema[c]&&delete a[c];let k="valid";for(let c of b.validator(a,j))c.explanation=d.message,k="not_valid",yield[c,void 0];for(let[l,m,n]of b.entries(a,j))for(let b of g(m,n,{path:void 0===l?e:[...e,l],branch:void 0===l?f:[...f,m],coerce:h,mask:i,message:d.message}))b[0]?(k=null!=b[0].refinement?"not_refined":"not_valid",yield[b[0],void 0]):h&&(m=b[1],void 0===l?a=m:a instanceof Map?a.set(l,m):a instanceof Set?a.add(m):c(a)&&(void 0!==m||l in a)&&(a[l]=m));if("not_valid"!==k)for(let c of b.refiner(a,j))c.explanation=d.message,k="not_refined",yield[c,void 0];"valid"===k&&(yield[void 0,a])}class h{constructor(a){let{type:b,schema:c,validator:d,refiner:e,coercer:g=a=>a,entries:h=function*(){}}=a;this.type=b,this.schema=c,this.entries=h,this.coercer=g,d?this.validator=(a,b)=>f(d(a,b),b,this,a):this.validator=()=>[],e?this.refiner=(a,b)=>f(e(a,b),b,this,a):this.refiner=()=>[]}assert(a,b){return i(a,this,b)}create(a,b){return j(a,this,b)}is(a){return l(a,this)}mask(a,b){return k(a,this,b)}validate(a,b={}){return m(a,this,b)}}function i(a,b,c){let d=m(a,b,{message:c});if(d[0])throw d[0]}function j(a,b,c){let d=m(a,b,{coerce:!0,message:c});if(!d[0])return d[1];throw d[0]}function k(a,b,c){let d=m(a,b,{coerce:!0,mask:!0,message:c});if(!d[0])return d[1];throw d[0]}function l(a,b){return!m(a,b)[0]}function m(a,c,d={}){let e=g(a,c,d),f=function(a){let{done:b,value:c}=a.next();return b?void 0:c}(e);return f[0]?[new b(f[0],function*(){for(let a of e)a[0]&&(yield a[0])}),void 0]:[void 0,f[1]]}function n(a,b){return new h({type:a,schema:null,validator:b})}function o(){return n("never",()=>!1)}function p(a){let b=a?Object.keys(a):[],d=o();return new h({type:"object",schema:a||null,*entries(e){if(a&&c(e)){let c=new Set(Object.keys(e));for(let d of b)c.delete(d),yield[d,e[d],a[d]];for(let a of c)yield[a,e[a],d]}},validator:a=>c(a)||`Expected an object, but received: ${e(a)}`,coercer:a=>c(a)?{...a}:a})}function q(a){return new h({...a,validator:(b,c)=>void 0===b||a.validator(b,c),refiner:(b,c)=>void 0===b||a.refiner(b,c)})}function r(){return n("string",a=>"string"==typeof a||`Expected a string, but received: ${e(a)}`)}function s(a){let b=Object.keys(a);return new h({type:"type",schema:a,*entries(d){if(c(d))for(let c of b)yield[c,d[c],a[c]]},validator:a=>c(a)||`Expected an object, but received: ${e(a)}`,coercer:a=>c(a)?{...a}:a})}function t(){return n("unknown",()=>!0)}function u(a,b,c){return new h({...a,coercer:(d,e)=>l(d,b)?a.coercer(c(d,e),e):a.coercer(d,e)})}function v(a){return a instanceof Map||a instanceof Set?a.size:a.length}function w(a,b,c){return new h({...a,*refiner(d,e){for(let g of(yield*a.refiner(d,e),f(c(d,e),e,a,d)))yield{...g,refinement:b}}})}a.Struct=h,a.StructError=b,a.any=function(){return n("any",()=>!0)},a.array=function(a){return new h({type:"array",schema:a,*entries(b){if(a&&Array.isArray(b))for(let[c,d]of b.entries())yield[c,d,a]},coercer:a=>Array.isArray(a)?a.slice():a,validator:a=>Array.isArray(a)||`Expected an array value, but received: ${e(a)}`})},a.assert=i,a.assign=function(...a){let b="type"===a[0].type,c=Object.assign({},...a.map(a=>a.schema));return b?s(c):p(c)},a.bigint=function(){return n("bigint",a=>"bigint"==typeof a)},a.boolean=function(){return n("boolean",a=>"boolean"==typeof a)},a.coerce=u,a.create=j,a.date=function(){return n("date",a=>a instanceof Date&&!isNaN(a.getTime())||`Expected a valid \`Date\` object, but received: ${e(a)}`)},a.defaulted=function(a,b,c={}){return u(a,t(),a=>{let e="function"==typeof b?b():b;if(void 0===a)return e;if(!c.strict&&d(a)&&d(e)){let b={...a},c=!1;for(let a in e)void 0===b[a]&&(b[a]=e[a],c=!0);if(c)return b}return a})},a.define=n,a.deprecated=function(a,b){return new h({...a,refiner:(b,c)=>void 0===b||a.refiner(b,c),validator:(c,d)=>void 0===c||(b(c,d),a.validator(c,d))})},a.dynamic=function(a){return new h({type:"dynamic",schema:null,*entries(b,c){let d=a(b,c);yield*d.entries(b,c)},validator:(b,c)=>a(b,c).validator(b,c),coercer:(b,c)=>a(b,c).coercer(b,c),refiner:(b,c)=>a(b,c).refiner(b,c)})},a.empty=function(a){return w(a,"empty",b=>{let c=v(b);return 0===c||`Expected an empty ${a.type} but received one with a size of \`${c}\``})},a.enums=function(a){let b={},c=a.map(a=>e(a)).join();for(let c of a)b[c]=c;return new h({type:"enums",schema:b,validator:b=>a.includes(b)||`Expected one of \`${c}\`, but received: ${e(b)}`})},a.func=function(){return n("func",a=>"function"==typeof a||`Expected a function, but received: ${e(a)}`)},a.instance=function(a){return n("instance",b=>b instanceof a||`Expected a \`${a.name}\` instance, but received: ${e(b)}`)},a.integer=function(){return n("integer",a=>"number"==typeof a&&!isNaN(a)&&Number.isInteger(a)||`Expected an integer, but received: ${e(a)}`)},a.intersection=function(a){return new h({type:"intersection",schema:null,*entries(b,c){for(let d of a)yield*d.entries(b,c)},*validator(b,c){for(let d of a)yield*d.validator(b,c)},*refiner(b,c){for(let d of a)yield*d.refiner(b,c)}})},a.is=l,a.lazy=function(a){let b;return new h({type:"lazy",schema:null,*entries(c,d){b??(b=a()),yield*b.entries(c,d)},validator:(c,d)=>(b??(b=a()),b.validator(c,d)),coercer:(c,d)=>(b??(b=a()),b.coercer(c,d)),refiner:(c,d)=>(b??(b=a()),b.refiner(c,d))})},a.literal=function(a){let b=e(a),c=typeof a;return new h({type:"literal",schema:"string"===c||"number"===c||"boolean"===c?a:null,validator:c=>c===a||`Expected the literal \`${b}\`, but received: ${e(c)}`})},a.map=function(a,b){return new h({type:"map",schema:null,*entries(c){if(a&&b&&c instanceof Map)for(let[d,e]of c.entries())yield[d,d,a],yield[d,e,b]},coercer:a=>a instanceof Map?new Map(a):a,validator:a=>a instanceof Map||`Expected a \`Map\` object, but received: ${e(a)}`})},a.mask=k,a.max=function(a,b,c={}){let{exclusive:d}=c;return w(a,"max",c=>d?cd?c>b:c>=b||`Expected a ${a.type} greater than ${d?"":"or equal to "}${b} but received \`${c}\``)},a.never=o,a.nonempty=function(a){return w(a,"nonempty",b=>v(b)>0||`Expected a nonempty ${a.type} but received an empty one`)},a.nullable=function(a){return new h({...a,validator:(b,c)=>null===b||a.validator(b,c),refiner:(b,c)=>null===b||a.refiner(b,c)})},a.number=function(){return n("number",a=>"number"==typeof a&&!isNaN(a)||`Expected a number, but received: ${e(a)}`)},a.object=p,a.omit=function(a,b){let{schema:c}=a,d={...c};for(let a of b)delete d[a];return"type"===a.type?s(d):p(d)},a.optional=q,a.partial=function(a){let b=a instanceof h?{...a.schema}:{...a};for(let a in b)b[a]=q(b[a]);return p(b)},a.pattern=function(a,b){return w(a,"pattern",c=>b.test(c)||`Expected a ${a.type} matching \`/${b.source}/\` but received "${c}"`)},a.pick=function(a,b){let{schema:c}=a,d={};for(let a of b)d[a]=c[a];return p(d)},a.record=function(a,b){return new h({type:"record",schema:null,*entries(d){if(c(d))for(let c in d){let e=d[c];yield[c,c,a],yield[c,e,b]}},validator:a=>c(a)||`Expected an object, but received: ${e(a)}`})},a.refine=w,a.regexp=function(){return n("regexp",a=>a instanceof RegExp)},a.set=function(a){return new h({type:"set",schema:null,*entries(b){if(a&&b instanceof Set)for(let c of b)yield[c,c,a]},coercer:a=>a instanceof Set?new Set(a):a,validator:a=>a instanceof Set||`Expected a \`Set\` object, but received: ${e(a)}`})},a.size=function(a,b,c=b){let d=`Expected a ${a.type}`,e=b===c?`of \`${b}\``:`between \`${b}\` and \`${c}\``;return w(a,"size",a=>{if("number"==typeof a||a instanceof Date)return b<=a&&a<=c||`${d} ${e} but received \`${a}\``;if(a instanceof Map||a instanceof Set){let{size:f}=a;return b<=f&&f<=c||`${d} with a size ${e} but received one with a size of \`${f}\``}{let{length:f}=a;return b<=f&&f<=c||`${d} with a length ${e} but received one with a length of \`${f}\``}})},a.string=r,a.struct=function(a,b){return console.warn("superstruct@0.11 - The `struct` helper has been renamed to `define`."),n(a,b)},a.trimmed=function(a){return u(a,r(),a=>a.trim())},a.tuple=function(a){let b=o();return new h({type:"tuple",schema:null,*entries(c){if(Array.isArray(c)){let d=Math.max(a.length,c.length);for(let e=0;eArray.isArray(a)||`Expected an array, but received: ${e(a)}`})},a.type=s,a.union=function(a){let b=a.map(a=>a.type).join(" | ");return new h({type:"union",schema:null,coercer(b){for(let c of a){let[a,d]=c.validate(b,{coerce:!0});if(!a)return d}return b},validator(c,d){let f=[];for(let b of a){let[...a]=g(c,b,d),[e]=a;if(!e[0])return[];for(let[b]of a)b&&f.push(b)}return[`Expected the value to satisfy a union of \`${b}\`, but received: ${e(c)}`,...f]}})},a.unknown=t,a.validate=m}(b)}})[293](0,d={}),b.exports=d},92977,(a,b,c)=>{let{createClientModuleProxy:d}=a.r(11857);a.n(d("[project]/node_modules/next/dist/esm/client/components/client-page.js"))},48552,(a,b,c)=>{let{createClientModuleProxy:d}=a.r(11857);a.n(d("[project]/node_modules/next/dist/esm/client/components/client-segment.js"))},83919,(a,b,c)=>{let{createClientModuleProxy:d}=a.r(11857);a.n(d("[project]/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js"))},26768,(a,b,c)=>{let{createClientModuleProxy:d}=a.r(11857);a.n(d("[project]/node_modules/next/dist/esm/client/components/layout-router.js"))},17910,(a,b,c)=>{let{createClientModuleProxy:d}=a.r(11857);a.n(d("[project]/node_modules/next/dist/esm/client/components/render-from-template-context.js"))},24150,(a,b,c)=>{let{createClientModuleProxy:d}=a.r(11857);a.n(d("[project]/node_modules/next/dist/esm/lib/framework/boundary-components.js"))},40771,(a,b,c)=>{let{createClientModuleProxy:d}=a.r(11857);a.n(d("[project]/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js"))},24373,(a,b,c)=>{b.exports=a.r(14747)}]; + +//# sourceMappingURL=%5Broot-of-the-server%5D__1uyyd8v8upnf3._.js.map \ No newline at end of file diff --git a/e-commerce/.next/server/chunks/ssr/[root-of-the-server]__1uyyd8v8upnf3._.js.map b/e-commerce/.next/server/chunks/ssr/[root-of-the-server]__1uyyd8v8upnf3._.js.map new file mode 100644 index 0000000000000000000000000000000000000000..c16b29d504cb33446dd1540080e334a50aabdb1f --- /dev/null +++ b/e-commerce/.next/server/chunks/ssr/[root-of-the-server]__1uyyd8v8upnf3._.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../node_modules/next/dist/compiled/react-server-dom-turbopack/cjs/react-server-dom-turbopack-client.node.production.js","../../../../node_modules/next/dist/compiled/react-server-dom-turbopack/client.node.js","../../../../node_modules/next/dist/esm/server/lib/lru-cache.js","../../../../node_modules/next/dist/esm/lib/picocolors.js","../../../../node_modules/next/dist/esm/build/output/log.js","../../../../node_modules/next/src/client/components/app-router-headers.ts","../../../../node_modules/next/src/client/components/client-page.tsx","../../../../node_modules/next/src/client/components/client-segment.tsx","../../../../node_modules/next/src/client/components/http-access-fallback/error-boundary.tsx","../../../../node_modules/next/src/client/components/layout-router.tsx","../../../../node_modules/next/src/client/components/redirect-status-code.ts","../../../../node_modules/next/src/client/components/render-from-template-context.tsx","../../../../node_modules/next/src/lib/constants.ts","../../../../node_modules/next/src/lib/fallback.ts","../../../../node_modules/next/src/lib/framework/boundary-components.tsx","../../../../node_modules/next/src/lib/metadata/generate/icon-mark.tsx","../../../../node_modules/next/dist/esm/lib/metadata/metadata.js","../../../../node_modules/next/dist/esm/server/lib/app-dir-module.js","../../../../node_modules/next/dist/esm/lib/client-and-server-references.js","../../../../node_modules/next/dist/esm/lib/metadata/generate/utils.js","../../../../node_modules/next/dist/esm/lib/metadata/resolvers/resolve-url.js","../../../../node_modules/next/dist/esm/lib/metadata/resolvers/resolve-title.js","../../../../node_modules/next/dist/esm/lib/metadata/resolve-metadata.js","../../../../node_modules/next/dist/esm/lib/metadata/default-metadata.js","../../../../node_modules/next/dist/esm/lib/metadata/constants.js","../../../../node_modules/next/dist/esm/server/request/pathname.js","../../../../node_modules/next/dist/esm/lib/metadata/resolvers/resolve-basics.js","../../../../node_modules/next/dist/esm/lib/metadata/resolvers/resolve-opengraph.js","../../../../node_modules/next/dist/esm/lib/metadata/metadata-elements.js","../../../../node_modules/next/dist/esm/lib/metadata/resolvers/resolve-icons.js","../../../../node_modules/next/dist/esm/server/lib/lazy-result.js","../../../../node_modules/next/dist/esm/lib/metadata/metadata-resolution-primitives.js","../../../../node_modules/next/src/lib/scheduler.ts","../../../../node_modules/next/src/lib/url.ts","../../../../node_modules/next/dist/esm/server/lib/encode-header-safe.js","../../../../node_modules/next/dist/esm/server/app-render/rsc/preloads.js","../../../../node_modules/next/dist/esm/server/app-render/collect-segment-data.js","../../../../node_modules/next/dist/esm/server/app-render/create-error-handler.js","../../../../node_modules/next/dist/esm/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../node_modules/next/dist/esm/client/components/is-next-router-error.js","../../../../node_modules/next/dist/esm/client/components/redirect-error.js","../../../../node_modules/next/dist/esm/server/lib/patch-fetch.js","../../../../node_modules/next/dist/esm/server/lib/trace/span-store.js","../../../../node_modules/next/dist/esm/server/app-render/entry-base.js","../../../../node_modules/next/dist/esm/server/app-render/async-local-storage.js","../../../../node_modules/next/dist/esm/lib/metadata/index.js","../../../../node_modules/next/dist/esm/server/lib/clone-response.js","../../../../node_modules/next/dist/esm/shared/lib/segment-cache/segment-value-encoding.js","../../../../node_modules/next/dist/esm/shared/lib/request-insights.js","../../../../node_modules/next/dist/esm/server/app-render/encryption-utils.js","../../../../node_modules/next/dist/esm/server/lib/trace/request-insights-identity.js","../../../../node_modules/next/dist/esm/server/use-cache/constants.js","../../../../node_modules/next/dist/esm/server/app-render/postponed-state.js","../../../../node_modules/next/dist/esm/server/lib/trace/request-insights.js","../../../../node_modules/next/dist/esm/server/app-render/react-large-shell-error.js","../../../../node_modules/next/dist/esm/server/app-render/prospective-render-utils.js","../../../../node_modules/next/dist/esm/server/lib/dedupe-fetch.js","../../../../node_modules/next/dist/esm/server/app-render/rsc/taint.js","../../../../node_modules/next/dist/esm/server/resume-data-cache/cache-store.js","../../../../node_modules/next/dist/esm/shared/lib/app-router-types.js","../../../../node_modules/next/dist/esm/shared/lib/rsc-transport.js","../../../../node_modules/next/dist/esm/server/resume-data-cache/resume-data-cache.js","../../../../node_modules/next/dist/esm/server/app-render/instant-validation/instant-samples.js","../../../../node_modules/next/dist/esm/shared/lib/action-revalidation-kind.js","../../../../node_modules/next/dist/esm/shared/lib/router/utils/querystring.js","../../../../node_modules/next/dist/esm/server/web/spec-extension/adapters/request-cookies.js","../../../../node_modules/next/dist/esm/shared/lib/router/utils/parse-relative-url.js","../../../../node_modules/next/dist/esm/server/web/spec-extension/adapters/headers.js","../../../../node_modules/next/src/server/app-render/instant-validation/instant-validation-error.ts","../../../../node_modules/next/src/server/app-render/interop-default.ts","../../../../node_modules/next/src/server/app-render/manifests-singleton.ts","../../../../node_modules/next/src/server/app-render/strip-flight-headers.ts","../../../../node_modules/next/dist/esm/server/base-http/index.js","../../../../node_modules/next/dist/esm/server/base-http/node.js","../../../../node_modules/next/dist/esm/server/api-utils/index.js","../../../../node_modules/next/dist/esm/server/api-utils/get-cookie-parser.js","../../../../node_modules/next/src/server/instrumentation/utils.ts","../../../../node_modules/next/src/server/lib/is-non-html-sec-fetch-dest.ts","../../../../node_modules/next/src/server/lib/is-rsc-request.ts","../../../../node_modules/next/src/server/lib/postponed-request-body.ts","../../../../node_modules/next/dist/esm/server/normalizers/built/app/app-pathname-normalizer.js","../../../../node_modules/next/dist/esm/server/normalizers/wrap-normalizer-fn.js","../../../../node_modules/next/dist/esm/server/lib/route-cache-key.js","../../../../node_modules/next/dist/esm/server/normalizers/underscore-normalizer.js","../../../../node_modules/next/dist/esm/server/normalizers/normalizers.js","../../../../node_modules/next/dist/esm/shared/lib/page-path/normalize-page-path.js","../../../../node_modules/next/src/server/lib/server-action-request-meta.ts","../../../../node_modules/next/src/server/lib/streaming-metadata.ts","../../../../node_modules/next/src/server/lib/trace/constants.ts","../../../../node_modules/next/dist/esm/server/lib/trace/tracer.js","../../../../node_modules/next/dist/esm/shared/lib/is-thenable.js","../../../../node_modules/next/src/server/request-meta.ts","../../../../node_modules/next/dist/esm/shared/lib/router/utils/resolve-param-value.js","../../../../node_modules/next/dist/esm/shared/lib/router/utils/parse-loader-tree.js","../../../../node_modules/next/dist/esm/shared/lib/router/utils/interception-prefix-from-param-type.js","../../../../node_modules/next/dist/esm/build/static-paths/utils.js","../../../../node_modules/next/dist/esm/build/static-paths/app/extract-pathname-route-param-segments-from-loader-tree.js","../../../../node_modules/next/dist/esm/server/request/fallback-params.js","../../../../node_modules/next/dist/esm/server/app-render/dynamic-rendering.js","../../../../node_modules/next/dist/esm/client/components/hooks-server-context.js","../../../../node_modules/next/dist/esm/client/components/static-generation-bailout.js","../../../../node_modules/next/dist/esm/server/dynamic-rendering-utils.js","../../../../node_modules/next/dist/esm/server/app-render/vary-params.js","../../../../node_modules/next/dist/esm/server/request/search-params.js","../../../../node_modules/next/dist/esm/lib/framework/boundary-constants.js","../../../../node_modules/next/dist/esm/server/app-render/instant-validation/boundary-constants.js","../../../../node_modules/next/dist/esm/server/lib/params-utils.js","../../../../node_modules/next/dist/esm/client/components/http-access-fallback/http-access-fallback.js","../../../../node_modules/next/dist/esm/server/create-deduped-by-callsite-server-error-logger.js","../../../../node_modules/next/dist/esm/server/request/utils.js","../../../../node_modules/next/dist/esm/server/app-render/staged-rendering.js","../../../../node_modules/next/dist/esm/server/request/params.js","../../../../node_modules/next/dist/esm/shared/lib/segment-cache/vary-params-decoding.js","../../../../node_modules/next/dist/esm/server/app-render/segment-config/ensure-static.js","../../../../node_modules/next/dist/esm/lib/batcher.js","../../../../node_modules/next/dist/esm/server/response-cache/index.js","../../../../node_modules/next/dist/esm/server/response-cache/utils.js","../../../../node_modules/next/src/server/response-cache/types.ts","../../../../node_modules/next/src/server/route-kind.ts","../../../../node_modules/next/src/server/route-modules/app-page/dev-render-context.ts","../../../../node_modules/next/dist/esm/server/app-render/types.js","../../../../node_modules/next/dist/esm/server/app-render/get-script-nonce-from-header.js","../../../../node_modules/next/dist/esm/shared/lib/router/utils/path-match.js","../../../../node_modules/next/dist/esm/server/route-modules/app-page/parse-request-headers.js","../../../../node_modules/next/dist/esm/server/app-render/parse-and-validate-flight-router-state.js","../../../../node_modules/next/dist/esm/shared/lib/router/utils/route-matcher.js","../../../../node_modules/next/dist/esm/shared/lib/router/utils/prepare-destination.js","../../../../node_modules/next/dist/esm/server/server-utils.js","../../../../node_modules/next/dist/esm/shared/lib/router/utils/route-match-utils.js","../../../../node_modules/next/dist/esm/server/lib/cache-control.js","../../../../node_modules/next/dist/esm/server/send-payload.js","../../../../node_modules/next/dist/esm/shared/lib/utils.js","../../../../node_modules/next/dist/esm/server/lib/etag.js","../../../../node_modules/next/src/server/stream-utils/encoded-tags.ts","../../../../node_modules/next/dist/esm/server/stream-utils/node-web-streams-helper.js","../../../../node_modules/next/dist/esm/server/web/spec-extension/adapters/next-request.js","../../../../node_modules/next/dist/esm/shared/lib/router/utils/add-path-prefix.js","../../../../node_modules/next/dist/esm/shared/lib/router/utils/get-next-pathname-info.js","../../../../node_modules/next/dist/esm/shared/lib/i18n/detect-domain-locale.js","../../../../node_modules/next/dist/esm/server/web/error.js","../../../../node_modules/next/dist/esm/shared/lib/router/utils/add-locale.js","../../../../node_modules/next/dist/esm/shared/lib/router/utils/cache-busting-search-param.js","../../../../node_modules/next/dist/esm/server/pipe-readable.js","../../../../node_modules/next/dist/esm/server/render-result.js","../../../../node_modules/next/dist/esm/server/web/spec-extension/request.js","../../../../node_modules/next/dist/esm/server/web/next-url.js","../../../../node_modules/next/dist/esm/shared/lib/router/utils/format-next-pathname-info.js","../../../../node_modules/next/dist/esm/shared/lib/router/utils/add-path-suffix.js","../../../../node_modules/next/dist/esm/shared/lib/get-hostname.js","../../../../node_modules/next/dist/esm/shared/lib/router/utils/remove-trailing-slash.js","../../../../node_modules/next/dist/esm/shared/lib/router/utils/remove-path-prefix.js","../../../../node_modules/next/dist/esm/server/web/utils.js","../../../../node_modules/next/dist/esm/server/base-http/helpers.js","../../../../node_modules/next/src/server/web/spec-extension/adapters/reflect.ts","../../../../node_modules/next/src/server/web/spec-extension/cookies.ts","../../../../node_modules/next/src/shared/lib/entry-constants.ts","../../../../node_modules/next/src/shared/lib/i18n/normalize-locale-path.ts","../../../../node_modules/next/src/shared/lib/invariant-error.ts","../../../../node_modules/next/src/shared/lib/promise-with-resolvers.ts","../../../../node_modules/next/src/shared/lib/router/routes/app.ts","../../../../node_modules/next/dist/esm/shared/lib/router/utils/app-paths.js","../../../../node_modules/next/dist/esm/shared/lib/page-path/ensure-leading-slash.js","../../../../node_modules/next/dist/esm/shared/lib/router/utils/interception-routes.js","../../../../node_modules/next/dist/esm/shared/lib/router/utils/get-segment-param.js","../../../../node_modules/next/dist/esm/shared/lib/router/utils/is-bot.js","../../../../node_modules/next/dist/esm/shared/lib/router/utils/html-bots.js","../../../../node_modules/next/dist/esm/shared/lib/router/utils/parse-path.js","../../../../node_modules/next/dist/esm/shared/lib/router/utils/path-has-prefix.js","../../../../node_modules/next/src/shared/lib/segment.ts","../../../../node_modules/next/src/shared/lib/server-reference-info.ts","../../../../node_modules/next/src/shared/lib/size-limit.ts","../../../../node_modules/next/src/shared/lib/utils/reflect-utils.ts","../../../../node_modules/next/src/server/route-modules/app-page/vendored/rsc/react-dom.ts","../../../../node_modules/next/src/server/route-modules/app-page/vendored/rsc/react-server-dom-turbopack-static.ts","../../../../node_modules/next/dist/compiled/%40opentelemetry/api/index.js","../../../../node_modules/next/dist/compiled/cookie/index.js","../../../../node_modules/next/dist/compiled/fresh/index.js","../../../../node_modules/next/dist/compiled/path-to-regexp/index.js","../../../../node_modules/next/dist/compiled/string-hash/index.js","../../../../node_modules/next/dist/compiled/superstruct/index.cjs","../../../../node_modules/next/dist/esm/client/components/client-page.js/__nextjs-internal-proxy.cjs%20%7B%20server%20%3D%3E%20%22%5Bproject%5D/node_modules/next/dist/esm/client/components/client-page.js%22%20%7D","../../../../node_modules/next/dist/esm/client/components/client-segment.js/__nextjs-internal-proxy.cjs%20%7B%20server%20%3D%3E%20%22%5Bproject%5D/node_modules/next/dist/esm/client/components/client-segment.js%22%20%7D","../../../../node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js/__nextjs-internal-proxy.cjs%20%7B%20server%20%3D%3E%20%22%5Bproject%5D/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js%22%20%7D","../../../../node_modules/next/dist/esm/client/components/layout-router.js/__nextjs-internal-proxy.cjs%20%7B%20server%20%3D%3E%20%22%5Bproject%5D/node_modules/next/dist/esm/client/components/layout-router.js%22%20%7D","../../../../node_modules/next/dist/esm/client/components/render-from-template-context.js/__nextjs-internal-proxy.cjs%20%7B%20server%20%3D%3E%20%22%5Bproject%5D/node_modules/next/dist/esm/client/components/render-from-template-context.js%22%20%7D","../../../../node_modules/next/dist/esm/lib/framework/boundary-components.js/__nextjs-internal-proxy.cjs%20%7B%20server%20%3D%3E%20%22%5Bproject%5D/node_modules/next/dist/esm/lib/framework/boundary-components.js%22%20%7D","../../../../node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js/__nextjs-internal-proxy.cjs%20%7B%20server%20%3D%3E%20%22%5Bproject%5D/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js%22%20%7D","../../../../node_modules/next/src/shared/lib/isomorphic/path.js"],"sourcesContent":["/**\n * @license React\n * react-server-dom-turbopack-client.node.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar util = require(\"util\"),\n ReactDOM = require(\"react-dom\");\nfunction createStringDecoder() {\n return new util.TextDecoder(\"utf-8\", {\n ignoreBOM:\n 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : !1\n });\n}\nvar decoderOptions = { stream: !0 },\n hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction resolveClientReference(bundlerConfig, metadata) {\n if (bundlerConfig) {\n var moduleExports = bundlerConfig[metadata[0]];\n if ((bundlerConfig = moduleExports && moduleExports[metadata[2]]))\n moduleExports = bundlerConfig.name;\n else {\n bundlerConfig = moduleExports && moduleExports[\"*\"];\n if (!bundlerConfig)\n throw Error(\n 'Could not find the module \"' +\n metadata[0] +\n '\" in the React Server Consumer Manifest. This is probably a bug in the React Server Components bundler.'\n );\n moduleExports = metadata[2];\n }\n return 4 === metadata.length\n ? [bundlerConfig.id, bundlerConfig.chunks, moduleExports, 1]\n : [bundlerConfig.id, bundlerConfig.chunks, moduleExports];\n }\n return metadata;\n}\nfunction resolveServerReference(bundlerConfig, id) {\n var name = \"\",\n resolvedModuleData = bundlerConfig[id];\n if (resolvedModuleData) name = resolvedModuleData.name;\n else {\n var idx = id.lastIndexOf(\"#\");\n -1 !== idx &&\n ((name = id.slice(idx + 1)),\n (resolvedModuleData = bundlerConfig[id.slice(0, idx)]));\n if (!resolvedModuleData)\n throw Error(\n 'Could not find the module \"' +\n id +\n '\" in the React Server Manifest. This is probably a bug in the React Server Components bundler.'\n );\n }\n return resolvedModuleData.async\n ? [resolvedModuleData.id, resolvedModuleData.chunks, name, 1]\n : [resolvedModuleData.id, resolvedModuleData.chunks, name];\n}\nfunction requireAsyncModule(id) {\n var promise = globalThis.__next_require__(id);\n if (\"function\" !== typeof promise.then || \"fulfilled\" === promise.status)\n return null;\n promise.then(\n function (value) {\n promise.status = \"fulfilled\";\n promise.value = value;\n },\n function (reason) {\n promise.status = \"rejected\";\n promise.reason = reason;\n }\n );\n return promise;\n}\nvar instrumentedChunks = new WeakSet(),\n loadedChunks = new WeakSet();\nfunction ignoreReject() {}\nfunction preloadModule(metadata) {\n for (var chunks = metadata[1], promises = [], i = 0; i < chunks.length; i++) {\n var thenable = globalThis.__next_chunk_load__(chunks[i]);\n loadedChunks.has(thenable) || promises.push(thenable);\n if (!instrumentedChunks.has(thenable)) {\n var resolve = loadedChunks.add.bind(loadedChunks, thenable);\n thenable.then(resolve, ignoreReject);\n instrumentedChunks.add(thenable);\n }\n }\n return 4 === metadata.length\n ? 0 === promises.length\n ? requireAsyncModule(metadata[0])\n : Promise.all(promises).then(function () {\n return requireAsyncModule(metadata[0]);\n })\n : 0 < promises.length\n ? Promise.all(promises)\n : null;\n}\nfunction requireModule(metadata) {\n var moduleExports = globalThis.__next_require__(metadata[0]);\n if (4 === metadata.length && \"function\" === typeof moduleExports.then)\n if (\"fulfilled\" === moduleExports.status)\n moduleExports = moduleExports.value;\n else throw moduleExports.reason;\n if (\"*\" === metadata[2]) return moduleExports;\n if (\"\" === metadata[2])\n return moduleExports.__esModule ? moduleExports.default : moduleExports;\n if (hasOwnProperty.call(moduleExports, metadata[2]))\n return moduleExports[metadata[2]];\n}\nfunction prepareDestinationWithChunks(moduleLoading, chunks, nonce$jscomp$0) {\n if (null !== moduleLoading)\n for (var i = 0; i < chunks.length; i++) {\n var chunk = chunks[i],\n nonce = nonce$jscomp$0,\n JSCompiler_temp_const = ReactDOMSharedInternals.d,\n JSCompiler_temp_const$jscomp$0 = JSCompiler_temp_const.X;\n chunk =\n moduleLoading.prefix + (\"string\" === typeof chunk ? chunk : chunk[0]);\n var JSCompiler_inline_result = moduleLoading.crossOrigin;\n JSCompiler_inline_result =\n \"string\" === typeof JSCompiler_inline_result\n ? \"use-credentials\" === JSCompiler_inline_result\n ? JSCompiler_inline_result\n : \"\"\n : void 0;\n JSCompiler_temp_const$jscomp$0.call(JSCompiler_temp_const, chunk, {\n crossOrigin: JSCompiler_inline_result,\n integrity: void 0,\n fetchPriority: void 0,\n nonce: nonce\n });\n }\n}\nvar ReactDOMSharedInternals =\n ReactDOM.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,\n REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\nfunction getIteratorFn(maybeIterable) {\n if (null === maybeIterable || \"object\" !== typeof maybeIterable) return null;\n maybeIterable =\n (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||\n maybeIterable[\"@@iterator\"];\n return \"function\" === typeof maybeIterable ? maybeIterable : null;\n}\nvar ASYNC_ITERATOR = Symbol.asyncIterator,\n isArrayImpl = Array.isArray,\n getPrototypeOf = Object.getPrototypeOf,\n ObjectPrototype$1 = Object.prototype,\n knownServerReferences = new WeakMap();\nfunction serializeNumber(number) {\n return Number.isFinite(number)\n ? 0 === number && -Infinity === 1 / number\n ? \"$-0\"\n : number\n : Infinity === number\n ? \"$Infinity\"\n : -Infinity === number\n ? \"$-Infinity\"\n : \"$NaN\";\n}\nfunction processReply(\n root,\n formFieldPrefix,\n temporaryReferences,\n onResolve,\n onReject,\n signal\n) {\n function endReplyLifetime() {\n null !== replyLifetimeController &&\n replyLifetimeController.abort(\"The reply ended.\");\n }\n function resolve(value) {\n settled = !0;\n endReplyLifetime();\n onResolve(value);\n }\n function reject(error) {\n settled = !0;\n endReplyLifetime();\n onReject(error);\n }\n function attachAbortSignal(abortSignal) {\n abortSignal.aborted\n ? abort()\n : ((replyLifetimeController = new AbortController()),\n abortSignal.addEventListener(\n \"abort\",\n function () {\n abort();\n },\n { signal: replyLifetimeController.signal }\n ));\n }\n function serializeTypedArray(tag, typedArray) {\n typedArray = new Blob([\n new Uint8Array(\n typedArray.buffer,\n typedArray.byteOffset,\n typedArray.byteLength\n )\n ]);\n var blobId = nextPartId++;\n null === formData && (formData = new FormData());\n formData.append(formFieldPrefix + blobId, typedArray);\n return \"$\" + tag + blobId.toString(16);\n }\n function serializeBinaryReader(reader) {\n function progress(entry) {\n entry.done\n ? ((entry = nextPartId++),\n data.append(formFieldPrefix + entry, new Blob(buffer)),\n data.append(\n formFieldPrefix + streamId,\n '\"$o' + entry.toString(16) + '\"'\n ),\n data.append(formFieldPrefix + streamId, \"C\"),\n pendingParts--,\n 0 === pendingParts && resolve(data))\n : (buffer.push(entry.value),\n reader.read(new Uint8Array(1024)).then(progress, reject));\n }\n null === formData && (formData = new FormData());\n var data = formData;\n pendingParts++;\n var streamId = nextPartId++,\n buffer = [];\n reader.read(new Uint8Array(1024)).then(progress, reject);\n return \"$r\" + streamId.toString(16);\n }\n function serializeReader(reader) {\n function progress(entry) {\n if (entry.done)\n data.append(formFieldPrefix + streamId, \"C\"),\n pendingParts--,\n 0 === pendingParts && resolve(data);\n else\n try {\n var partJSON = JSON.stringify(entry.value, resolveToJSON);\n data.append(formFieldPrefix + streamId, partJSON);\n reader.read().then(progress, reject);\n } catch (x) {\n reject(x);\n }\n }\n null === formData && (formData = new FormData());\n var data = formData;\n pendingParts++;\n var streamId = nextPartId++;\n reader.read().then(progress, reject);\n return \"$R\" + streamId.toString(16);\n }\n function serializeReadableStream(stream) {\n try {\n var binaryReader = stream.getReader({ mode: \"byob\" });\n } catch (x) {\n return serializeReader(stream.getReader());\n }\n return serializeBinaryReader(binaryReader);\n }\n function serializeAsyncIterable(iterable, iterator) {\n function progress(entry) {\n if (entry.done) {\n if (void 0 === entry.value)\n data.append(formFieldPrefix + streamId, \"C\");\n else\n try {\n var partJSON = JSON.stringify(entry.value, resolveToJSON);\n data.append(formFieldPrefix + streamId, \"C\" + partJSON);\n } catch (x) {\n reject(x);\n return;\n }\n pendingParts--;\n 0 === pendingParts && resolve(data);\n } else\n try {\n var partJSON$21 = JSON.stringify(entry.value, resolveToJSON);\n data.append(formFieldPrefix + streamId, partJSON$21);\n iterator.next().then(progress, reject);\n } catch (x$22) {\n reject(x$22);\n }\n }\n null === formData && (formData = new FormData());\n var data = formData;\n pendingParts++;\n var streamId = nextPartId++;\n iterable = iterable === iterator;\n iterator.next().then(progress, reject);\n return \"$\" + (iterable ? \"x\" : \"X\") + streamId.toString(16);\n }\n function resolveToJSON(key, value) {\n if (null === value) return null;\n if (\"object\" === typeof value) {\n switch (value.$$typeof) {\n case REACT_ELEMENT_TYPE:\n if (void 0 !== temporaryReferences && -1 === key.indexOf(\":\")) {\n var parentReference = writtenObjects.get(this);\n if (void 0 !== parentReference)\n return (\n temporaryReferences.set(parentReference + \":\" + key, value),\n \"$T\"\n );\n }\n if (void 0 !== temporaryReferences && modelRoot === value)\n return (modelRoot = null), \"$T\";\n throw Error(\n \"React Element cannot be passed to Server Functions from the Client without a temporary reference set. Pass a TemporaryReferenceSet to the options.\"\n );\n case REACT_LAZY_TYPE:\n parentReference = value._payload;\n var init = value._init;\n null === formData && (formData = new FormData());\n pendingParts++;\n try {\n var resolvedModel = init(parentReference),\n lazyId = nextPartId++,\n partJSON = serializeModel(resolvedModel, lazyId);\n formData.append(formFieldPrefix + lazyId, partJSON);\n return \"$\" + lazyId.toString(16);\n } catch (x) {\n if (\n \"object\" === typeof x &&\n null !== x &&\n \"function\" === typeof x.then\n ) {\n pendingParts++;\n var lazyId$23 = nextPartId++;\n parentReference = function () {\n try {\n var partJSON$24 = serializeModel(value, lazyId$23),\n data$25 = formData;\n data$25.append(formFieldPrefix + lazyId$23, partJSON$24);\n pendingParts--;\n 0 === pendingParts && resolve(data$25);\n } catch (reason) {\n reject(reason);\n }\n };\n x.then(parentReference, parentReference);\n return \"$\" + lazyId$23.toString(16);\n }\n reject(x);\n return null;\n } finally {\n pendingParts--;\n }\n }\n parentReference = writtenObjects.get(value);\n if (\"function\" === typeof value.then) {\n if (void 0 !== parentReference)\n if (modelRoot === value) modelRoot = null;\n else return parentReference;\n null === formData && (formData = new FormData());\n pendingParts++;\n var promiseId = nextPartId++;\n key = \"$@\" + promiseId.toString(16);\n writtenObjects.set(value, key);\n value.then(function (partValue) {\n try {\n var previousReference = writtenObjects.get(partValue);\n var partJSON$27 =\n void 0 !== previousReference\n ? JSON.stringify(previousReference)\n : serializeModel(partValue, promiseId);\n partValue = formData;\n partValue.append(formFieldPrefix + promiseId, partJSON$27);\n pendingParts--;\n 0 === pendingParts && resolve(partValue);\n } catch (reason) {\n reject(reason);\n }\n }, reject);\n return key;\n }\n if (void 0 !== parentReference)\n if (modelRoot === value) modelRoot = null;\n else return parentReference;\n else\n -1 === key.indexOf(\":\") &&\n ((parentReference = writtenObjects.get(this)),\n void 0 !== parentReference &&\n ((key = parentReference + \":\" + key),\n writtenObjects.set(value, key),\n void 0 !== temporaryReferences &&\n temporaryReferences.set(key, value)));\n if (isArrayImpl(value)) return value;\n if (value instanceof FormData) {\n null === formData && (formData = new FormData());\n var data$31 = formData;\n key = nextPartId++;\n var prefix = formFieldPrefix + \"_\" + key + \"_\";\n value.forEach(function (originalValue, originalKey) {\n data$31.append(prefix + originalKey, originalValue);\n });\n return \"$K\" + key.toString(16);\n }\n if (value instanceof Map)\n return (\n (key = nextPartId++),\n (parentReference = serializeModel(Array.from(value), key)),\n null === formData && (formData = new FormData()),\n formData.append(formFieldPrefix + key, parentReference),\n \"$Q\" + key.toString(16)\n );\n if (value instanceof Set)\n return (\n (key = nextPartId++),\n (parentReference = serializeModel(Array.from(value), key)),\n null === formData && (formData = new FormData()),\n formData.append(formFieldPrefix + key, parentReference),\n \"$W\" + key.toString(16)\n );\n if (value instanceof ArrayBuffer)\n return (\n (key = new Blob([value])),\n (parentReference = nextPartId++),\n null === formData && (formData = new FormData()),\n formData.append(formFieldPrefix + parentReference, key),\n \"$A\" + parentReference.toString(16)\n );\n if (value instanceof Int8Array) return serializeTypedArray(\"O\", value);\n if (value instanceof Uint8Array) return serializeTypedArray(\"o\", value);\n if (value instanceof Uint8ClampedArray)\n return serializeTypedArray(\"U\", value);\n if (value instanceof Int16Array) return serializeTypedArray(\"S\", value);\n if (value instanceof Uint16Array) return serializeTypedArray(\"s\", value);\n if (value instanceof Int32Array) return serializeTypedArray(\"L\", value);\n if (value instanceof Uint32Array) return serializeTypedArray(\"l\", value);\n if (value instanceof Float32Array) return serializeTypedArray(\"G\", value);\n if (value instanceof Float64Array) return serializeTypedArray(\"g\", value);\n if (value instanceof BigInt64Array)\n return serializeTypedArray(\"M\", value);\n if (value instanceof BigUint64Array)\n return serializeTypedArray(\"m\", value);\n if (value instanceof DataView) return serializeTypedArray(\"V\", value);\n if (\"function\" === typeof Blob && value instanceof Blob)\n return (\n null === formData && (formData = new FormData()),\n (key = nextPartId++),\n formData.append(formFieldPrefix + key, value),\n \"$B\" + key.toString(16)\n );\n if ((key = getIteratorFn(value)))\n return (\n (parentReference = key.call(value)),\n parentReference === value\n ? ((key = nextPartId++),\n (parentReference = serializeModel(\n Array.from(parentReference),\n key\n )),\n null === formData && (formData = new FormData()),\n formData.append(formFieldPrefix + key, parentReference),\n \"$i\" + key.toString(16))\n : Array.from(parentReference)\n );\n if (\n \"function\" === typeof ReadableStream &&\n value instanceof ReadableStream\n )\n return serializeReadableStream(value);\n key = value[ASYNC_ITERATOR];\n if (\"function\" === typeof key)\n return serializeAsyncIterable(value, key.call(value));\n key = getPrototypeOf(value);\n if (\n key !== ObjectPrototype$1 &&\n (null === key || null !== getPrototypeOf(key))\n ) {\n if (void 0 === temporaryReferences)\n throw Error(\n \"Only plain objects, and a few built-ins, can be passed to Server Functions. Classes or null prototypes are not supported.\"\n );\n return \"$T\";\n }\n return value;\n }\n if (\"string\" === typeof value) {\n if (\"Z\" === value[value.length - 1] && this[key] instanceof Date)\n return \"$D\" + value;\n key = \"$\" === value[0] ? \"$\" + value : value;\n return key;\n }\n if (\"boolean\" === typeof value) return value;\n if (\"number\" === typeof value) return serializeNumber(value);\n if (\"undefined\" === typeof value) return \"$undefined\";\n if (\"function\" === typeof value) {\n parentReference = knownServerReferences.get(value);\n if (void 0 !== parentReference) {\n key = writtenObjects.get(value);\n if (void 0 !== key) return key;\n key = JSON.stringify(\n { id: parentReference.id, bound: parentReference.bound },\n resolveToJSON\n );\n null === formData && (formData = new FormData());\n parentReference = nextPartId++;\n formData.set(formFieldPrefix + parentReference, key);\n key = \"$h\" + parentReference.toString(16);\n writtenObjects.set(value, key);\n return key;\n }\n if (\n void 0 !== temporaryReferences &&\n -1 === key.indexOf(\":\") &&\n ((parentReference = writtenObjects.get(this)),\n void 0 !== parentReference)\n )\n return (\n temporaryReferences.set(parentReference + \":\" + key, value), \"$T\"\n );\n throw Error(\n \"Client Functions cannot be passed directly to Server Functions. Only Functions passed from the Server can be passed back again.\"\n );\n }\n if (\"symbol\" === typeof value) {\n if (\n void 0 !== temporaryReferences &&\n -1 === key.indexOf(\":\") &&\n ((parentReference = writtenObjects.get(this)),\n void 0 !== parentReference)\n )\n return (\n temporaryReferences.set(parentReference + \":\" + key, value), \"$T\"\n );\n throw Error(\n \"Symbols cannot be passed to a Server Function without a temporary reference set. Pass a TemporaryReferenceSet to the options.\"\n );\n }\n if (\"bigint\" === typeof value) return \"$n\" + value.toString(10);\n throw Error(\n \"Type \" +\n typeof value +\n \" is not supported as an argument to a Server Function.\"\n );\n }\n function serializeModel(model, id) {\n \"object\" === typeof model &&\n null !== model &&\n ((id = \"$\" + id.toString(16)),\n writtenObjects.set(model, id),\n void 0 !== temporaryReferences && temporaryReferences.set(id, model));\n modelRoot = model;\n return JSON.stringify(model, resolveToJSON);\n }\n function abort() {\n endReplyLifetime();\n 0 < pendingParts &&\n ((pendingParts = 0),\n null === formData ? resolve(json) : resolve(formData));\n }\n var nextPartId = 1,\n pendingParts = 0,\n formData = null,\n writtenObjects = new WeakMap(),\n modelRoot = root,\n settled = !1,\n replyLifetimeController = null,\n json = serializeModel(root, 0);\n null === formData\n ? resolve(json)\n : (formData.set(formFieldPrefix + \"0\", json),\n 0 === pendingParts && resolve(formData));\n void 0 === signal || settled || attachAbortSignal(signal);\n}\nvar boundCache = new WeakMap();\nfunction encodeFormData(reference) {\n var resolve,\n reject,\n thenable = new Promise(function (res, rej) {\n resolve = res;\n reject = rej;\n });\n processReply(\n reference,\n \"\",\n void 0,\n function (body) {\n if (\"string\" === typeof body) {\n var data = new FormData();\n data.append(\"0\", body);\n body = data;\n }\n thenable.status = \"fulfilled\";\n thenable.value = body;\n resolve(body);\n },\n function (e) {\n thenable.status = \"rejected\";\n thenable.reason = e;\n reject(e);\n }\n );\n return thenable;\n}\nfunction defaultEncodeFormAction(identifierPrefix) {\n var referenceClosure = knownServerReferences.get(this);\n if (!referenceClosure)\n throw Error(\n \"Tried to encode a Server Action from a different instance than the encoder is from. This is a bug in React.\"\n );\n var data = null;\n if (null !== referenceClosure.bound) {\n data = boundCache.get(referenceClosure);\n data ||\n ((data = encodeFormData({\n id: referenceClosure.id,\n bound: referenceClosure.bound\n })),\n boundCache.set(referenceClosure, data));\n if (\"rejected\" === data.status) throw data.reason;\n if (\"fulfilled\" !== data.status) throw data;\n referenceClosure = data.value;\n var prefixedData = new FormData();\n referenceClosure.forEach(function (value, key) {\n prefixedData.append(\"$ACTION_\" + identifierPrefix + \":\" + key, value);\n });\n data = prefixedData;\n referenceClosure = \"$ACTION_REF_\" + identifierPrefix;\n } else referenceClosure = \"$ACTION_ID_\" + referenceClosure.id;\n return {\n name: referenceClosure,\n method: \"POST\",\n encType: \"multipart/form-data\",\n data: data\n };\n}\nfunction isSignatureEqual(referenceId, numberOfBoundArgs) {\n var referenceClosure = knownServerReferences.get(this);\n if (!referenceClosure)\n throw Error(\n \"Tried to encode a Server Action from a different instance than the encoder is from. This is a bug in React.\"\n );\n if (referenceClosure.id !== referenceId) return !1;\n var boundPromise = referenceClosure.bound;\n if (null === boundPromise) return 0 === numberOfBoundArgs;\n switch (boundPromise.status) {\n case \"fulfilled\":\n return boundPromise.value.length === numberOfBoundArgs;\n case \"pending\":\n throw boundPromise;\n case \"rejected\":\n throw boundPromise.reason;\n default:\n throw (\n (\"string\" !== typeof boundPromise.status &&\n ((boundPromise.status = \"pending\"),\n boundPromise.then(\n function (boundArgs) {\n boundPromise.status = \"fulfilled\";\n boundPromise.value = boundArgs;\n },\n function (error) {\n boundPromise.status = \"rejected\";\n boundPromise.reason = error;\n }\n )),\n boundPromise)\n );\n }\n}\nfunction registerBoundServerReference(reference, id, bound, encodeFormAction) {\n knownServerReferences.has(reference) ||\n (knownServerReferences.set(reference, {\n id: id,\n originalBind: reference.bind,\n bound: bound\n }),\n Object.defineProperties(reference, {\n $$FORM_ACTION: {\n value:\n void 0 === encodeFormAction\n ? defaultEncodeFormAction\n : function () {\n var referenceClosure = knownServerReferences.get(this);\n if (!referenceClosure)\n throw Error(\n \"Tried to encode a Server Action from a different instance than the encoder is from. This is a bug in React.\"\n );\n var boundPromise = referenceClosure.bound;\n null === boundPromise && (boundPromise = Promise.resolve([]));\n return encodeFormAction(referenceClosure.id, boundPromise);\n }\n },\n $$IS_SIGNATURE_EQUAL: { value: isSignatureEqual },\n bind: { value: bind }\n }));\n}\nvar FunctionBind = Function.prototype.bind,\n ArraySlice = Array.prototype.slice;\nfunction bind() {\n var referenceClosure = knownServerReferences.get(this);\n if (!referenceClosure) return FunctionBind.apply(this, arguments);\n var newFn = referenceClosure.originalBind.apply(this, arguments),\n args = ArraySlice.call(arguments, 1),\n boundPromise = null;\n boundPromise =\n null !== referenceClosure.bound\n ? Promise.resolve(referenceClosure.bound).then(function (boundArgs) {\n return boundArgs.concat(args);\n })\n : Promise.resolve(args);\n knownServerReferences.set(newFn, {\n id: referenceClosure.id,\n originalBind: newFn.bind,\n bound: boundPromise\n });\n Object.defineProperties(newFn, {\n $$FORM_ACTION: { value: this.$$FORM_ACTION },\n $$IS_SIGNATURE_EQUAL: { value: isSignatureEqual },\n bind: { value: bind }\n });\n return newFn;\n}\nfunction createBoundServerReference(metaData, callServer, encodeFormAction) {\n function action() {\n var args = Array.prototype.slice.call(arguments);\n return bound\n ? \"fulfilled\" === bound.status\n ? callServer(id, bound.value.concat(args))\n : Promise.resolve(bound).then(function (boundArgs) {\n return callServer(id, boundArgs.concat(args));\n })\n : callServer(id, args);\n }\n var id = metaData.id,\n bound = metaData.bound;\n registerBoundServerReference(action, id, bound, encodeFormAction);\n return action;\n}\nfunction createServerReference$1(id, callServer, encodeFormAction) {\n function action() {\n var args = Array.prototype.slice.call(arguments);\n return callServer(id, args);\n }\n registerBoundServerReference(action, id, null, encodeFormAction);\n return action;\n}\nvar ObjectPrototype = Object.prototype,\n ArrayPrototype = Array.prototype;\nfunction ReactPromise(status, value, reason) {\n this.status = status;\n this.value = value;\n this.reason = reason;\n}\nReactPromise.prototype = Object.create(Promise.prototype);\nObject.defineProperty(ReactPromise.prototype, \"then\", {\n writable: !0,\n enumerable: !0,\n configurable: !0,\n value: function (resolve, reject) {\n switch (this.status) {\n case \"resolved_model\":\n initializeModelChunk(this);\n break;\n case \"resolved_module\":\n initializeModuleChunk(this);\n }\n switch (this.status) {\n case \"fulfilled\":\n \"function\" === typeof resolve && resolve(this.value);\n break;\n case \"pending\":\n case \"pending_weak\":\n case \"blocked\":\n \"function\" === typeof resolve &&\n (null === this.value && (this.value = []), this.value.push(resolve));\n \"function\" === typeof reject &&\n (null === this.reason && (this.reason = []),\n this.reason.push(reject));\n break;\n case \"halted\":\n break;\n default:\n \"function\" === typeof reject && reject(this.reason);\n }\n }\n});\nfunction readChunk(chunk) {\n switch (chunk.status) {\n case \"resolved_model\":\n initializeModelChunk(chunk);\n break;\n case \"resolved_module\":\n initializeModuleChunk(chunk);\n }\n switch (chunk.status) {\n case \"fulfilled\":\n return chunk.value;\n case \"pending\":\n case \"pending_weak\":\n case \"blocked\":\n case \"halted\":\n throw chunk;\n default:\n throw chunk.reason;\n }\n}\nfunction wakeChunk(response, listeners, value, chunk) {\n for (var i = 0; i < listeners.length; i++) {\n var listener = listeners[i];\n \"function\" === typeof listener\n ? listener(value)\n : fulfillReference(response, listener, value, chunk);\n }\n}\nfunction rejectChunk(response, listeners, error) {\n for (var i = 0; i < listeners.length; i++) {\n var listener = listeners[i];\n \"function\" === typeof listener\n ? listener(error)\n : rejectReference(response, listener.handler, error);\n }\n}\nfunction resolveBlockedCycle(resolvedChunk, reference) {\n var referencedChunk = reference.handler.chunk;\n if (null === referencedChunk) return null;\n if (referencedChunk === resolvedChunk) return reference.handler;\n reference = referencedChunk.value;\n if (null !== reference)\n for (\n referencedChunk = 0;\n referencedChunk < reference.length;\n referencedChunk++\n ) {\n var listener = reference[referencedChunk];\n if (\n \"function\" !== typeof listener &&\n ((listener = resolveBlockedCycle(resolvedChunk, listener)),\n null !== listener)\n )\n return listener;\n }\n return null;\n}\nfunction wakeChunkIfInitialized(\n response,\n chunk,\n resolveListeners,\n rejectListeners\n) {\n switch (chunk.status) {\n case \"fulfilled\":\n wakeChunk(response, resolveListeners, chunk.value, chunk);\n break;\n case \"blocked\":\n for (var i = 0; i < resolveListeners.length; i++) {\n var listener = resolveListeners[i];\n if (\"function\" !== typeof listener) {\n var cyclicHandler = resolveBlockedCycle(chunk, listener);\n if (null !== cyclicHandler)\n switch (\n (fulfillReference(response, listener, cyclicHandler.value, chunk),\n resolveListeners.splice(i, 1),\n i--,\n null !== rejectListeners &&\n ((listener = rejectListeners.indexOf(listener)),\n -1 !== listener && rejectListeners.splice(listener, 1)),\n chunk.status)\n ) {\n case \"fulfilled\":\n wakeChunk(response, resolveListeners, chunk.value, chunk);\n return;\n case \"rejected\":\n null !== rejectListeners &&\n rejectChunk(response, rejectListeners, chunk.reason);\n return;\n }\n }\n }\n case \"pending\":\n if (chunk.value)\n for (response = 0; response < resolveListeners.length; response++)\n chunk.value.push(resolveListeners[response]);\n else chunk.value = resolveListeners;\n if (chunk.reason) {\n if (rejectListeners)\n for (\n resolveListeners = 0;\n resolveListeners < rejectListeners.length;\n resolveListeners++\n )\n chunk.reason.push(rejectListeners[resolveListeners]);\n } else chunk.reason = rejectListeners;\n break;\n case \"rejected\":\n rejectListeners && rejectChunk(response, rejectListeners, chunk.reason);\n }\n}\nfunction triggerErrorOnChunk(response, chunk, error) {\n if (\n \"pending\" !== chunk.status &&\n \"pending_weak\" !== chunk.status &&\n \"blocked\" !== chunk.status\n )\n chunk.reason.error(error);\n else {\n var listeners = chunk.reason;\n chunk.status = \"rejected\";\n chunk.reason = error;\n null !== listeners && rejectChunk(response, listeners, error);\n }\n}\nfunction createResolvedIteratorResultChunk(response, value, done) {\n return new ReactPromise(\n \"resolved_model\",\n (done ? '{\"done\":true,\"value\":' : '{\"done\":false,\"value\":') + value + \"}\",\n response\n );\n}\nfunction resolveIteratorResultChunk(response, chunk, value, done) {\n resolveModelChunk(\n response,\n chunk,\n (done ? '{\"done\":true,\"value\":' : '{\"done\":false,\"value\":') + value + \"}\"\n );\n}\nfunction resolveModelChunk(response, chunk, value) {\n if (\"pending\" !== chunk.status && \"pending_weak\" !== chunk.status)\n chunk.reason.enqueueModel(value);\n else {\n var resolveListeners = chunk.value,\n rejectListeners = chunk.reason;\n chunk.status = \"resolved_model\";\n chunk.value = value;\n chunk.reason = response;\n null !== resolveListeners &&\n (initializeModelChunk(chunk),\n wakeChunkIfInitialized(\n response,\n chunk,\n resolveListeners,\n rejectListeners\n ));\n }\n}\nfunction resolveModuleChunk(response, chunk, value) {\n if (\n \"pending\" === chunk.status ||\n \"pending_weak\" === chunk.status ||\n \"blocked\" === chunk.status\n ) {\n var resolveListeners = chunk.value,\n rejectListeners = chunk.reason;\n chunk.status = \"resolved_module\";\n chunk.value = value;\n chunk.reason = null;\n null !== resolveListeners &&\n (initializeModuleChunk(chunk),\n wakeChunkIfInitialized(\n response,\n chunk,\n resolveListeners,\n rejectListeners\n ));\n }\n}\nvar initializingHandler = null;\nfunction initializeModelChunk(chunk) {\n var prevHandler = initializingHandler;\n initializingHandler = null;\n var resolvedModel = chunk.value,\n response = chunk.reason;\n chunk.status = \"blocked\";\n chunk.value = null;\n chunk.reason = null;\n try {\n var value = parseModel(response, resolvedModel);\n resolvedModel = initializingHandler;\n if (null !== resolvedModel) {\n if (resolvedModel.errored) {\n \"blocked\" === chunk.status &&\n triggerErrorOnChunk(response, chunk, resolvedModel.reason);\n return;\n }\n resolvedModel.value = value;\n resolvedModel.chunk = chunk;\n }\n var listeners = chunk.value,\n rejectListeners = chunk.reason;\n chunk.value = null;\n chunk.reason = null;\n if (null !== listeners) {\n for (\n var cyclic = null, deferred = null, i = 0;\n i < listeners.length;\n i++\n ) {\n var listener = listeners[i];\n if (\n \"function\" !== typeof listener &&\n null !== resolveBlockedCycle(chunk, listener)\n ) {\n if (\n (null === cyclic && (cyclic = []),\n cyclic.push(listener),\n null !== rejectListeners)\n ) {\n var rejectionIdx = rejectListeners.indexOf(listener);\n -1 !== rejectionIdx && rejectListeners.splice(rejectionIdx, 1);\n }\n } else null === deferred && (deferred = []), deferred.push(listener);\n }\n null !== deferred &&\n ((chunk.value = deferred), (chunk.reason = rejectListeners));\n if (null !== cyclic)\n for (listeners = 0; listeners < cyclic.length; listeners++)\n fulfillReference(response, cyclic[listeners], value, chunk);\n }\n \"blocked\" !== chunk.status ||\n (null !== resolvedModel && 0 < resolvedModel.deps) ||\n initializeBlockedChunk(response, chunk, value, null);\n } catch (error) {\n (chunk.status = \"rejected\"), (chunk.reason = error);\n } finally {\n initializingHandler = prevHandler;\n }\n}\nfunction initializeModuleChunk(chunk) {\n try {\n var value = requireModule(chunk.value);\n chunk.status = \"fulfilled\";\n chunk.value = value;\n chunk.reason = null;\n } catch (error) {\n (chunk.status = \"rejected\"), (chunk.reason = error);\n }\n}\nfunction reportGlobalError(weakResponse, error) {\n weakResponse._closed = !0;\n weakResponse._closedReason = error;\n weakResponse._chunks.forEach(function (chunk) {\n \"pending\" === chunk.status\n ? triggerErrorOnChunk(weakResponse, chunk, error)\n : \"fulfilled\" === chunk.status &&\n null !== chunk.reason &&\n chunk.reason.error(error);\n });\n}\nfunction createLazyChunkWrapper(chunk) {\n return { $$typeof: REACT_LAZY_TYPE, _payload: chunk, _init: readChunk };\n}\nfunction getChunk(response, id) {\n var chunks = response._chunks,\n chunk = chunks.get(id);\n chunk ||\n ((chunk = response._closed\n ? response._allowPartialStream\n ? new ReactPromise(\"halted\", null, null)\n : new ReactPromise(\"rejected\", null, response._closedReason)\n : new ReactPromise(\"pending\", null, null)),\n chunks.set(id, chunk));\n return chunk;\n}\nfunction initializeBlockedChunk(response, chunk, value, reason) {\n var resolveListeners = chunk.value;\n chunk.status = \"fulfilled\";\n chunk.value = value;\n chunk.reason = reason;\n null !== resolveListeners &&\n wakeChunk(response, resolveListeners, value, chunk);\n}\nfunction initializeChunkIfUnblocked(response, handler) {\n if (0 === handler.deps && !handler.errored) {\n var chunk = handler.chunk;\n null !== chunk &&\n \"blocked\" === chunk.status &&\n initializeBlockedChunk(response, chunk, handler.value, handler.reason);\n }\n}\nfunction fulfillReference(response, reference, value) {\n var handler = reference.handler,\n parentObject = reference.parentObject,\n key = reference.key,\n map = reference.map,\n path = reference.path;\n try {\n for (var i = 1; i < path.length; i++) {\n for (\n ;\n \"object\" === typeof value &&\n null !== value &&\n value.$$typeof === REACT_LAZY_TYPE;\n\n ) {\n var referencedChunk = value._payload;\n if (referencedChunk === handler.chunk) value = handler.value;\n else {\n switch (referencedChunk.status) {\n case \"resolved_model\":\n initializeModelChunk(referencedChunk);\n break;\n case \"resolved_module\":\n initializeModuleChunk(referencedChunk);\n }\n switch (referencedChunk.status) {\n case \"fulfilled\":\n value = referencedChunk.value;\n continue;\n case \"blocked\":\n var cyclicHandler = resolveBlockedCycle(\n referencedChunk,\n reference\n );\n if (null !== cyclicHandler) {\n value = cyclicHandler.value;\n continue;\n }\n case \"pending\":\n case \"pending_weak\":\n path.splice(0, i - 1);\n null === referencedChunk.value\n ? (referencedChunk.value = [reference])\n : referencedChunk.value.push(reference);\n null === referencedChunk.reason\n ? (referencedChunk.reason = [reference])\n : referencedChunk.reason.push(reference);\n return;\n case \"halted\":\n return;\n default:\n rejectReference(\n response,\n reference.handler,\n referencedChunk.reason\n );\n return;\n }\n }\n }\n var name = path[i];\n if (\n \"object\" === typeof value &&\n null !== value &&\n hasOwnProperty.call(value, name)\n )\n value = value[name];\n else throw Error(\"Invalid reference.\");\n }\n for (\n ;\n \"object\" === typeof value &&\n null !== value &&\n value.$$typeof === REACT_LAZY_TYPE;\n\n ) {\n var referencedChunk$45 = value._payload;\n if (referencedChunk$45 === handler.chunk) value = handler.value;\n else {\n switch (referencedChunk$45.status) {\n case \"resolved_model\":\n initializeModelChunk(referencedChunk$45);\n break;\n case \"resolved_module\":\n initializeModuleChunk(referencedChunk$45);\n }\n switch (referencedChunk$45.status) {\n case \"fulfilled\":\n value = referencedChunk$45.value;\n continue;\n }\n break;\n }\n }\n var mappedValue = map(response, value, parentObject, key);\n \"__proto__\" !== key && (parentObject[key] = mappedValue);\n \"\" === key && null === handler.value && (handler.value = mappedValue);\n if (\n parentObject[0] === REACT_ELEMENT_TYPE &&\n \"object\" === typeof handler.value &&\n null !== handler.value &&\n handler.value.$$typeof === REACT_ELEMENT_TYPE\n ) {\n var element = handler.value;\n switch (key) {\n case \"3\":\n element.props = mappedValue;\n }\n }\n } catch (error) {\n rejectReference(response, reference.handler, error);\n return;\n }\n handler.deps--;\n initializeChunkIfUnblocked(response, handler);\n}\nfunction rejectReference(response, handler, error) {\n handler.errored ||\n ((handler.errored = !0),\n (handler.value = null),\n (handler.reason = error),\n (handler = handler.chunk),\n null !== handler &&\n \"blocked\" === handler.status &&\n triggerErrorOnChunk(response, handler, error));\n}\nfunction waitForReference(\n referencedChunk,\n parentObject,\n key,\n response,\n map,\n path\n) {\n initializingHandler\n ? ((response = initializingHandler), response.deps++)\n : (response = initializingHandler =\n {\n parent: null,\n chunk: null,\n value: null,\n reason: null,\n deps: 1,\n errored: !1\n });\n parentObject = {\n handler: response,\n parentObject: parentObject,\n key: key,\n map: map,\n path: path\n };\n null === referencedChunk.value\n ? (referencedChunk.value = [parentObject])\n : referencedChunk.value.push(parentObject);\n null === referencedChunk.reason\n ? (referencedChunk.reason = [parentObject])\n : referencedChunk.reason.push(parentObject);\n return null;\n}\nfunction loadServerReference(response, metaData, parentObject, key) {\n if (!response._serverReferenceConfig)\n return createBoundServerReference(\n metaData,\n response._callServer,\n response._encodeFormAction\n );\n var serverReference = resolveServerReference(\n response._serverReferenceConfig,\n metaData.id\n ),\n promise = preloadModule(serverReference);\n if (promise)\n metaData.bound && (promise = Promise.all([promise, metaData.bound]));\n else if (metaData.bound) promise = Promise.resolve(metaData.bound);\n else\n return (\n (promise = requireModule(serverReference)),\n registerBoundServerReference(\n promise,\n metaData.id,\n metaData.bound,\n response._encodeFormAction\n ),\n promise\n );\n if (initializingHandler) {\n var handler = initializingHandler;\n handler.deps++;\n } else\n handler = initializingHandler = {\n parent: null,\n chunk: null,\n value: null,\n reason: null,\n deps: 1,\n errored: !1\n };\n promise.then(\n function () {\n var resolvedValue = requireModule(serverReference);\n if (metaData.bound) {\n var boundArgs = metaData.bound.value.slice(0);\n boundArgs.unshift(null);\n resolvedValue = resolvedValue.bind.apply(resolvedValue, boundArgs);\n }\n registerBoundServerReference(\n resolvedValue,\n metaData.id,\n metaData.bound,\n response._encodeFormAction\n );\n \"__proto__\" !== key && (parentObject[key] = resolvedValue);\n \"\" === key && null === handler.value && (handler.value = resolvedValue);\n if (\n parentObject[0] === REACT_ELEMENT_TYPE &&\n \"object\" === typeof handler.value &&\n null !== handler.value &&\n handler.value.$$typeof === REACT_ELEMENT_TYPE\n )\n switch (((boundArgs = handler.value), key)) {\n case \"3\":\n boundArgs.props = resolvedValue;\n }\n handler.deps--;\n initializeChunkIfUnblocked(response, handler);\n },\n function (error) {\n if (!handler.errored) {\n var erroredHandler = handler;\n erroredHandler.errored = !0;\n erroredHandler.value = null;\n erroredHandler.reason = error;\n erroredHandler = handler.chunk;\n null !== erroredHandler &&\n \"blocked\" === erroredHandler.status &&\n triggerErrorOnChunk(response, erroredHandler, error);\n }\n }\n );\n return null;\n}\nvar EMPTY_REFERENCE_PATH = [];\nfunction getOutlinedModel(response, reference, parentObject, key, map) {\n var id = parseInt(reference, 16);\n reference =\n -1 === reference.indexOf(\":\") ? EMPTY_REFERENCE_PATH : reference.split(\":\");\n id = getChunk(response, id);\n switch (id.status) {\n case \"resolved_model\":\n initializeModelChunk(id);\n break;\n case \"resolved_module\":\n initializeModuleChunk(id);\n }\n switch (id.status) {\n case \"fulfilled\":\n id = id.value;\n for (var i = 1; i < reference.length; i++) {\n for (\n ;\n \"object\" === typeof id &&\n null !== id &&\n id.$$typeof === REACT_LAZY_TYPE;\n\n ) {\n id = id._payload;\n switch (id.status) {\n case \"resolved_model\":\n initializeModelChunk(id);\n break;\n case \"resolved_module\":\n initializeModuleChunk(id);\n }\n switch (id.status) {\n case \"fulfilled\":\n id = id.value;\n break;\n case \"blocked\":\n case \"pending\":\n case \"pending_weak\":\n return waitForReference(\n id,\n parentObject,\n key,\n response,\n map,\n reference.slice(i - 1)\n );\n case \"halted\":\n return (\n initializingHandler\n ? ((response = initializingHandler), response.deps++)\n : (initializingHandler = {\n parent: null,\n chunk: null,\n value: null,\n reason: null,\n deps: 1,\n errored: !1\n }),\n null\n );\n default:\n return (\n initializingHandler\n ? ((response = initializingHandler),\n (response.errored = !0),\n (response.value = null),\n (response.reason = id.reason))\n : (initializingHandler = {\n parent: null,\n chunk: null,\n value: null,\n reason: id.reason,\n deps: 0,\n errored: !0\n }),\n null\n );\n }\n }\n var name = reference[i];\n if (\n \"object\" !== typeof id ||\n null === id ||\n (getPrototypeOf(id) !== ObjectPrototype &&\n getPrototypeOf(id) !== ArrayPrototype) ||\n !hasOwnProperty.call(id, name)\n )\n throw Error(\"Invalid reference.\");\n id = id[name];\n }\n for (\n ;\n \"object\" === typeof id &&\n null !== id &&\n id.$$typeof === REACT_LAZY_TYPE;\n\n ) {\n reference = id._payload;\n switch (reference.status) {\n case \"resolved_model\":\n initializeModelChunk(reference);\n break;\n case \"resolved_module\":\n initializeModuleChunk(reference);\n }\n switch (reference.status) {\n case \"fulfilled\":\n id = reference.value;\n continue;\n }\n break;\n }\n return map(response, id, parentObject, key);\n case \"pending\":\n case \"pending_weak\":\n case \"blocked\":\n return waitForReference(id, parentObject, key, response, map, reference);\n case \"halted\":\n return (\n initializingHandler\n ? ((response = initializingHandler), response.deps++)\n : (initializingHandler = {\n parent: null,\n chunk: null,\n value: null,\n reason: null,\n deps: 1,\n errored: !1\n }),\n null\n );\n default:\n return (\n initializingHandler\n ? ((response = initializingHandler),\n (response.errored = !0),\n (response.value = null),\n (response.reason = id.reason))\n : (initializingHandler = {\n parent: null,\n chunk: null,\n value: null,\n reason: id.reason,\n deps: 0,\n errored: !0\n }),\n null\n );\n }\n}\nfunction createMap(response, model) {\n return new Map(model);\n}\nfunction createSet(response, model) {\n return new Set(model);\n}\nfunction createBlob(response, model) {\n return new Blob(model.slice(1), { type: model[0] });\n}\nfunction createFormData(response, model) {\n response = new FormData();\n for (var i = 0; i < model.length; i++)\n response.append(model[i][0], model[i][1]);\n return response;\n}\nfunction extractIterator(response, model) {\n return model[Symbol.iterator]();\n}\nfunction createModel(response, model) {\n return model;\n}\nfunction parseModelString(response, parentObject, key, value) {\n if (\"$\" === value[0]) {\n if (\"$\" === value)\n return (\n null !== initializingHandler &&\n \"0\" === key &&\n (initializingHandler = {\n parent: initializingHandler,\n chunk: null,\n value: null,\n reason: null,\n deps: 0,\n errored: !1\n }),\n REACT_ELEMENT_TYPE\n );\n switch (value[1]) {\n case \"$\":\n return value.slice(1);\n case \"L\":\n return (\n (parentObject = parseInt(value.slice(2), 16)),\n (response = getChunk(response, parentObject)),\n createLazyChunkWrapper(response)\n );\n case \"@\":\n return (\n (parentObject = parseInt(value.slice(2), 16)),\n getChunk(response, parentObject)\n );\n case \"w\":\n return;\n case \"S\":\n return Symbol.for(value.slice(2));\n case \"h\":\n return (\n (value = value.slice(2)),\n getOutlinedModel(\n response,\n value,\n parentObject,\n key,\n loadServerReference\n )\n );\n case \"H\":\n return;\n case \"T\":\n parentObject = \"$\" + value.slice(2);\n response = response._tempRefs;\n if (null == response)\n throw Error(\n \"Missing a temporary reference set but the RSC response returned a temporary reference. Pass a temporaryReference option with the set that was used with the reply.\"\n );\n return response.get(parentObject);\n case \"Q\":\n return (\n (value = value.slice(2)),\n getOutlinedModel(response, value, parentObject, key, createMap)\n );\n case \"W\":\n return (\n (value = value.slice(2)),\n getOutlinedModel(response, value, parentObject, key, createSet)\n );\n case \"B\":\n return (\n (value = value.slice(2)),\n getOutlinedModel(response, value, parentObject, key, createBlob)\n );\n case \"K\":\n return (\n (value = value.slice(2)),\n getOutlinedModel(response, value, parentObject, key, createFormData)\n );\n case \"Z\":\n return resolveErrorProd();\n case \"i\":\n return (\n (value = value.slice(2)),\n getOutlinedModel(response, value, parentObject, key, extractIterator)\n );\n case \"I\":\n return Infinity;\n case \"-\":\n return \"$-0\" === value ? -0 : -Infinity;\n case \"N\":\n return NaN;\n case \"u\":\n return;\n case \"D\":\n return new Date(Date.parse(value.slice(2)));\n case \"n\":\n return BigInt(value.slice(2));\n default:\n return (\n (value = value.slice(1)),\n getOutlinedModel(response, value, parentObject, key, createModel)\n );\n }\n }\n return value;\n}\nfunction missingCall() {\n throw Error(\n 'Trying to call a function from \"use server\" but the callServer option was not implemented in your router runtime.'\n );\n}\nfunction ResponseInstance(\n bundlerConfig,\n serverReferenceConfig,\n moduleLoading,\n callServer,\n encodeFormAction,\n nonce,\n temporaryReferences,\n allowPartialStream\n) {\n var chunks = new Map();\n this._bundlerConfig = bundlerConfig;\n this._serverReferenceConfig = serverReferenceConfig;\n this._moduleLoading = moduleLoading;\n this._callServer = void 0 !== callServer ? callServer : missingCall;\n this._encodeFormAction = encodeFormAction;\n this._nonce = nonce;\n this._chunks = chunks;\n this._stringDecoder = createStringDecoder(!0);\n this._closed = !1;\n this._closedReason = null;\n this._allowPartialStream = allowPartialStream;\n this._tempRefs = temporaryReferences;\n}\nfunction createStreamState() {\n return { _rowState: 0, _rowID: 0, _rowTag: 0, _rowLength: 0, _buffer: [] };\n}\nfunction resolveBuffer(response, id, buffer) {\n response = response._chunks;\n var chunk = response.get(id);\n chunk && \"pending\" !== chunk.status\n ? chunk.reason.enqueueValue(buffer)\n : ((buffer = new ReactPromise(\"fulfilled\", buffer, null)),\n response.set(id, buffer));\n}\nfunction resolveModule(response, id, model) {\n var chunks = response._chunks,\n chunk = chunks.get(id),\n prevHandler = initializingHandler;\n initializingHandler = null;\n try {\n var clientReferenceMetadata = parseModel(response, model);\n if (null !== initializingHandler)\n throw Error(\n \"A client reference was blocked on a row that has not been received yet. This is a bug in React.\"\n );\n } finally {\n initializingHandler = prevHandler;\n }\n var clientReference = resolveClientReference(\n response._bundlerConfig,\n clientReferenceMetadata\n );\n prepareDestinationWithChunks(\n response._moduleLoading,\n clientReferenceMetadata[1],\n response._nonce\n );\n if ((model = preloadModule(clientReference))) {\n if (chunk) {\n var blockedChunk = chunk;\n blockedChunk.status = \"blocked\";\n } else\n (blockedChunk = new ReactPromise(\"blocked\", null, null)),\n chunks.set(id, blockedChunk);\n model.then(\n function () {\n return resolveModuleChunk(response, blockedChunk, clientReference);\n },\n function (error) {\n return triggerErrorOnChunk(response, blockedChunk, error);\n }\n );\n } else\n chunk\n ? resolveModuleChunk(response, chunk, clientReference)\n : ((chunk = new ReactPromise(\"resolved_module\", clientReference, null)),\n chunks.set(id, chunk));\n}\nfunction resolveStream(response, id, stream, controller) {\n var chunks = response._chunks,\n chunk = chunks.get(id);\n chunk\n ? \"pending\" === chunk.status &&\n ((id = chunk.value),\n (chunk.status = \"fulfilled\"),\n (chunk.value = stream),\n (chunk.reason = controller),\n null !== id && wakeChunk(response, id, chunk.value, chunk))\n : ((response = new ReactPromise(\"fulfilled\", stream, controller)),\n chunks.set(id, response));\n}\nfunction startReadableStream(response, id, type) {\n var controller = null,\n closed = !1;\n type = new ReadableStream({\n type: type,\n start: function (c) {\n controller = c;\n }\n });\n var previousBlockedChunk = null;\n resolveStream(response, id, type, {\n enqueueValue: function (value) {\n null === previousBlockedChunk\n ? controller.enqueue(value)\n : previousBlockedChunk.then(function () {\n controller.enqueue(value);\n });\n },\n enqueueModel: function (json) {\n if (null === previousBlockedChunk) {\n var chunk = new ReactPromise(\"resolved_model\", json, response);\n initializeModelChunk(chunk);\n \"fulfilled\" === chunk.status\n ? controller.enqueue(chunk.value)\n : (chunk.then(\n function (v) {\n return controller.enqueue(v);\n },\n function (e) {\n return controller.error(e);\n }\n ),\n (previousBlockedChunk = chunk));\n } else {\n chunk = previousBlockedChunk;\n var chunk$57 = new ReactPromise(\"pending\", null, null);\n chunk$57.then(\n function (v) {\n return controller.enqueue(v);\n },\n function (e) {\n return controller.error(e);\n }\n );\n previousBlockedChunk = chunk$57;\n chunk.then(function () {\n previousBlockedChunk === chunk$57 && (previousBlockedChunk = null);\n resolveModelChunk(response, chunk$57, json);\n });\n }\n },\n close: function () {\n if (!closed)\n if (((closed = !0), null === previousBlockedChunk)) controller.close();\n else {\n var blockedChunk = previousBlockedChunk;\n previousBlockedChunk = null;\n blockedChunk.then(function () {\n return controller.close();\n });\n }\n },\n error: function (error) {\n if (!closed)\n if (((closed = !0), null === previousBlockedChunk))\n controller.error(error);\n else {\n var blockedChunk = previousBlockedChunk;\n previousBlockedChunk = null;\n blockedChunk.then(function () {\n return controller.error(error);\n });\n }\n }\n });\n}\nfunction asyncIterator() {\n return this;\n}\nfunction createIterator(next) {\n next = { next: next };\n next[ASYNC_ITERATOR] = asyncIterator;\n return next;\n}\nfunction startAsyncIterable(response, id, iterator) {\n var buffer = [],\n closed = !1,\n nextWriteIndex = 0,\n iterable = {};\n iterable[ASYNC_ITERATOR] = function () {\n var nextReadIndex = 0;\n return createIterator(function (arg) {\n if (void 0 !== arg)\n throw Error(\n \"Values cannot be passed to next() of AsyncIterables passed to Client Components.\"\n );\n if (nextReadIndex === buffer.length) {\n if (closed)\n return new ReactPromise(\n \"fulfilled\",\n { done: !0, value: void 0 },\n null\n );\n buffer[nextReadIndex] = new ReactPromise(\"pending\", null, null);\n }\n return buffer[nextReadIndex++];\n });\n };\n resolveStream(\n response,\n id,\n iterator ? iterable[ASYNC_ITERATOR]() : iterable,\n {\n enqueueValue: function (value) {\n if (nextWriteIndex === buffer.length)\n buffer[nextWriteIndex] = new ReactPromise(\n \"fulfilled\",\n { done: !1, value: value },\n null\n );\n else {\n var chunk = buffer[nextWriteIndex],\n resolveListeners = chunk.value,\n rejectListeners = chunk.reason;\n chunk.status = \"fulfilled\";\n chunk.value = { done: !1, value: value };\n chunk.reason = null;\n null !== resolveListeners &&\n wakeChunkIfInitialized(\n response,\n chunk,\n resolveListeners,\n rejectListeners\n );\n }\n nextWriteIndex++;\n },\n enqueueModel: function (value) {\n nextWriteIndex === buffer.length\n ? (buffer[nextWriteIndex] = createResolvedIteratorResultChunk(\n response,\n value,\n !1\n ))\n : resolveIteratorResultChunk(\n response,\n buffer[nextWriteIndex],\n value,\n !1\n );\n nextWriteIndex++;\n },\n close: function (value) {\n if (!closed)\n for (\n closed = !0,\n nextWriteIndex === buffer.length\n ? (buffer[nextWriteIndex] = createResolvedIteratorResultChunk(\n response,\n value,\n !0\n ))\n : resolveIteratorResultChunk(\n response,\n buffer[nextWriteIndex],\n value,\n !0\n ),\n nextWriteIndex++;\n nextWriteIndex < buffer.length;\n\n )\n resolveIteratorResultChunk(\n response,\n buffer[nextWriteIndex++],\n '\"$undefined\"',\n !0\n );\n },\n error: function (error) {\n if (!closed)\n for (\n closed = !0,\n nextWriteIndex === buffer.length &&\n (buffer[nextWriteIndex] = new ReactPromise(\n \"pending\",\n null,\n null\n ));\n nextWriteIndex < buffer.length;\n\n )\n triggerErrorOnChunk(response, buffer[nextWriteIndex++], error);\n }\n }\n );\n}\nfunction resolveErrorProd() {\n var error = Error(\n \"An error occurred in the Server Components render. The specific message is omitted in production builds to avoid leaking sensitive details. A digest property is included on this error instance which may provide additional details about the nature of the error.\"\n );\n error.stack = \"Error: \" + error.message;\n return error;\n}\nfunction mergeBuffer(buffer, lastChunk) {\n for (var l = buffer.length, byteLength = lastChunk.length, i = 0; i < l; i++)\n byteLength += buffer[i].byteLength;\n byteLength = new Uint8Array(byteLength);\n for (var i$58 = (i = 0); i$58 < l; i$58++) {\n var chunk = buffer[i$58];\n byteLength.set(chunk, i);\n i += chunk.byteLength;\n }\n byteLength.set(lastChunk, i);\n return byteLength;\n}\nfunction resolveTypedArray(\n response,\n id,\n buffer,\n lastChunk,\n constructor,\n bytesPerElement\n) {\n buffer =\n 0 === buffer.length && 0 === lastChunk.byteOffset % bytesPerElement\n ? lastChunk\n : mergeBuffer(buffer, lastChunk);\n constructor = new constructor(\n buffer.buffer,\n buffer.byteOffset,\n buffer.byteLength / bytesPerElement\n );\n resolveBuffer(response, id, constructor);\n}\nfunction processFullBinaryRow(response, streamState, id, tag, buffer, chunk) {\n switch (tag) {\n case 65:\n resolveBuffer(response, id, mergeBuffer(buffer, chunk).buffer);\n return;\n case 79:\n resolveTypedArray(response, id, buffer, chunk, Int8Array, 1);\n return;\n case 111:\n resolveBuffer(\n response,\n id,\n 0 === buffer.length ? chunk : mergeBuffer(buffer, chunk)\n );\n return;\n case 85:\n resolveTypedArray(response, id, buffer, chunk, Uint8ClampedArray, 1);\n return;\n case 83:\n resolveTypedArray(response, id, buffer, chunk, Int16Array, 2);\n return;\n case 115:\n resolveTypedArray(response, id, buffer, chunk, Uint16Array, 2);\n return;\n case 76:\n resolveTypedArray(response, id, buffer, chunk, Int32Array, 4);\n return;\n case 108:\n resolveTypedArray(response, id, buffer, chunk, Uint32Array, 4);\n return;\n case 71:\n resolveTypedArray(response, id, buffer, chunk, Float32Array, 4);\n return;\n case 103:\n resolveTypedArray(response, id, buffer, chunk, Float64Array, 8);\n return;\n case 77:\n resolveTypedArray(response, id, buffer, chunk, BigInt64Array, 8);\n return;\n case 109:\n resolveTypedArray(response, id, buffer, chunk, BigUint64Array, 8);\n return;\n case 86:\n resolveTypedArray(response, id, buffer, chunk, DataView, 1);\n return;\n }\n for (\n var stringDecoder = response._stringDecoder, row = \"\", i = 0;\n i < buffer.length;\n i++\n )\n row += stringDecoder.decode(buffer[i], decoderOptions);\n row += stringDecoder.decode(chunk);\n processFullStringRow(response, streamState, id, tag, row);\n}\nfunction processFullStringRow(response, streamState, id, tag, row) {\n switch (tag) {\n case 73:\n resolveModule(response, id, row);\n break;\n case 72:\n id = row[0];\n row = row.slice(1);\n response = parseModel(response, row);\n row = ReactDOMSharedInternals.d;\n switch (id) {\n case \"D\":\n row.D(response);\n break;\n case \"C\":\n \"string\" === typeof response\n ? row.C(response)\n : row.C(response[0], response[1]);\n break;\n case \"L\":\n id = response[0];\n streamState = response[1];\n 3 === response.length\n ? row.L(id, streamState, response[2])\n : row.L(id, streamState);\n break;\n case \"m\":\n \"string\" === typeof response\n ? row.m(response)\n : row.m(response[0], response[1]);\n break;\n case \"X\":\n \"string\" === typeof response\n ? row.X(response)\n : row.X(response[0], response[1]);\n break;\n case \"S\":\n \"string\" === typeof response\n ? row.S(response)\n : row.S(\n response[0],\n 0 === response[1] ? void 0 : response[1],\n 3 === response.length ? response[2] : void 0\n );\n break;\n case \"M\":\n \"string\" === typeof response\n ? row.M(response)\n : row.M(response[0], response[1]);\n }\n break;\n case 69:\n streamState = response._chunks;\n tag = streamState.get(id);\n row = JSON.parse(row);\n var error = resolveErrorProd();\n error.digest = row.digest;\n tag\n ? triggerErrorOnChunk(response, tag, error)\n : ((response = new ReactPromise(\"rejected\", null, error)),\n streamState.set(id, response));\n break;\n case 84:\n response = response._chunks;\n (streamState = response.get(id)) && \"pending\" !== streamState.status\n ? streamState.reason.enqueueValue(row)\n : ((row = new ReactPromise(\"fulfilled\", row, null)),\n response.set(id, row));\n break;\n case 78:\n case 68:\n case 74:\n case 87:\n throw Error(\n \"Failed to read a RSC payload created by a development version of React on the server while using a production version on the client. Always use matching versions on the server and the client.\"\n );\n case 82:\n startReadableStream(response, id, void 0);\n break;\n case 114:\n startReadableStream(response, id, \"bytes\");\n break;\n case 88:\n startAsyncIterable(response, id, !1);\n break;\n case 120:\n startAsyncIterable(response, id, !0);\n break;\n case 67:\n (id = response._chunks.get(id)) &&\n \"fulfilled\" === id.status &&\n id.reason.close(\"\" === row ? '\"$undefined\"' : row);\n break;\n default:\n (streamState = response._chunks),\n (tag = streamState.get(id))\n ? resolveModelChunk(response, tag, row)\n : ((response = new ReactPromise(\"resolved_model\", row, response)),\n streamState.set(id, response));\n }\n}\nfunction processBinaryChunk(weakResponse, streamState, chunk) {\n for (\n var i = 0,\n rowState = streamState._rowState,\n rowID = streamState._rowID,\n rowTag = streamState._rowTag,\n rowLength = streamState._rowLength,\n buffer = streamState._buffer,\n chunkLength = chunk.length;\n i < chunkLength;\n\n ) {\n var lastIdx = -1;\n switch (rowState) {\n case 0:\n lastIdx = chunk[i++];\n 58 === lastIdx\n ? (rowState = 1)\n : (rowID =\n (rowID << 4) | (96 < lastIdx ? lastIdx - 87 : lastIdx - 48));\n continue;\n case 1:\n rowState = chunk[i];\n 84 === rowState ||\n 65 === rowState ||\n 79 === rowState ||\n 111 === rowState ||\n 98 === rowState ||\n 85 === rowState ||\n 83 === rowState ||\n 115 === rowState ||\n 76 === rowState ||\n 108 === rowState ||\n 71 === rowState ||\n 103 === rowState ||\n 77 === rowState ||\n 109 === rowState ||\n 86 === rowState\n ? ((rowTag = rowState), (rowState = 2), i++)\n : (64 < rowState && 91 > rowState) ||\n 35 === rowState ||\n 114 === rowState ||\n 120 === rowState\n ? ((rowTag = rowState), (rowState = 3), i++)\n : ((rowTag = 0), (rowState = 3));\n continue;\n case 2:\n lastIdx = chunk[i++];\n 44 === lastIdx\n ? (rowState = 4)\n : (rowLength =\n (rowLength << 4) | (96 < lastIdx ? lastIdx - 87 : lastIdx - 48));\n continue;\n case 3:\n lastIdx = chunk.indexOf(10, i);\n break;\n case 4:\n (lastIdx = i + rowLength), lastIdx > chunk.length && (lastIdx = -1);\n }\n var offset = chunk.byteOffset + i;\n if (-1 < lastIdx)\n (rowLength = new Uint8Array(chunk.buffer, offset, lastIdx - i)),\n 98 === rowTag\n ? resolveBuffer(\n weakResponse,\n rowID,\n lastIdx === chunkLength ? rowLength : rowLength.slice()\n )\n : processFullBinaryRow(\n weakResponse,\n streamState,\n rowID,\n rowTag,\n buffer,\n rowLength\n ),\n (i = lastIdx),\n 3 === rowState && i++,\n (rowLength = rowID = rowTag = rowState = 0),\n (buffer.length = 0);\n else {\n chunk = new Uint8Array(chunk.buffer, offset, chunk.byteLength - i);\n 98 === rowTag\n ? ((rowLength -= chunk.byteLength),\n resolveBuffer(weakResponse, rowID, chunk))\n : (buffer.push(chunk), (rowLength -= chunk.byteLength));\n break;\n }\n }\n streamState._rowState = rowState;\n streamState._rowID = rowID;\n streamState._rowTag = rowTag;\n streamState._rowLength = rowLength;\n}\nfunction parseModel(response, json) {\n json = JSON.parse(json);\n return reviveModel(response, json, { \"\": json }, \"\");\n}\nfunction reviveModel(response, value, parentObject, key) {\n if (\"string\" === typeof value)\n return \"$\" === value[0]\n ? parseModelString(response, parentObject, key, value)\n : value;\n if (\"object\" !== typeof value || null === value) return value;\n if (isArrayImpl(value)) {\n for (var i = 0; i < value.length; i++)\n value[i] = reviveModel(response, value[i], value, \"\" + i);\n return value[0] === REACT_ELEMENT_TYPE\n ? (value[0] === REACT_ELEMENT_TYPE\n ? ((response = {\n $$typeof: REACT_ELEMENT_TYPE,\n type: value[1],\n key: value[2],\n ref: null,\n props: value[3]\n }),\n null !== initializingHandler &&\n ((value = initializingHandler),\n (initializingHandler = value.parent),\n value.errored\n ? ((response = new ReactPromise(\n \"rejected\",\n null,\n value.reason\n )),\n (response = createLazyChunkWrapper(response)))\n : 0 < value.deps &&\n ((i = new ReactPromise(\"blocked\", null, null)),\n (value.value = response),\n (value.chunk = i),\n (response = createLazyChunkWrapper(i)))))\n : (response = value),\n response)\n : value;\n }\n for (i in value)\n hasOwnProperty.call(value, i) &&\n (\"__proto__\" === i\n ? delete value[i]\n : ((parentObject = reviveModel(response, value[i], value, i)),\n void 0 !== parentObject\n ? (value[i] = parentObject)\n : delete value[i]));\n return value;\n}\nfunction close(weakResponse) {\n weakResponse._allowPartialStream\n ? ((weakResponse._closed = !0),\n weakResponse._chunks.forEach(function (chunk) {\n \"pending\" === chunk.status\n ? ((chunk.status = \"halted\"),\n (chunk.value = null),\n (chunk.reason = null))\n : \"fulfilled\" === chunk.status &&\n null !== chunk.reason &&\n chunk.reason.close('\"$undefined\"');\n }))\n : reportGlobalError(weakResponse, Error(\"Connection closed.\"));\n}\nfunction noServerCall$1() {\n throw Error(\n \"Server Functions cannot be called during initial render. This would create a fetch waterfall. Try to use a Server Component to pass data to Client Components instead.\"\n );\n}\nfunction createResponseFromOptions(options) {\n return new ResponseInstance(\n options.serverConsumerManifest.moduleMap,\n options.serverConsumerManifest.serverModuleMap,\n options.serverConsumerManifest.moduleLoading,\n noServerCall$1,\n options.encodeFormAction,\n \"string\" === typeof options.nonce ? options.nonce : void 0,\n options && options.temporaryReferences\n ? options.temporaryReferences\n : void 0,\n options && options.unstable_allowPartialStream\n ? options.unstable_allowPartialStream\n : !1\n );\n}\nfunction startReadingFromStream$1(response, stream, onDone) {\n function progress(_ref) {\n var value = _ref.value;\n if (_ref.done) return onDone();\n processBinaryChunk(response, streamState, value);\n return reader.read().then(progress).catch(error);\n }\n function error(e) {\n reportGlobalError(response, e);\n }\n var streamState = createStreamState(),\n reader = stream.getReader();\n reader.read().then(progress).catch(error);\n}\nfunction noServerCall() {\n throw Error(\n \"Server Functions cannot be called during initial render. This would create a fetch waterfall. Try to use a Server Component to pass data to Client Components instead.\"\n );\n}\nfunction startReadingFromStream(response, stream, onEnd) {\n var streamState = createStreamState();\n stream.on(\"data\", function (chunk) {\n if (\"string\" === typeof chunk) {\n for (\n var i = 0,\n rowState = streamState._rowState,\n rowID = streamState._rowID,\n rowTag = streamState._rowTag,\n rowLength = streamState._rowLength,\n buffer = streamState._buffer,\n chunkLength = chunk.length;\n i < chunkLength;\n\n ) {\n var lastIdx = -1;\n switch (rowState) {\n case 0:\n lastIdx = chunk.charCodeAt(i++);\n 58 === lastIdx\n ? (rowState = 1)\n : (rowID =\n (rowID << 4) | (96 < lastIdx ? lastIdx - 87 : lastIdx - 48));\n continue;\n case 1:\n rowState = chunk.charCodeAt(i);\n 84 === rowState ||\n 65 === rowState ||\n 79 === rowState ||\n 111 === rowState ||\n 85 === rowState ||\n 83 === rowState ||\n 115 === rowState ||\n 76 === rowState ||\n 108 === rowState ||\n 71 === rowState ||\n 103 === rowState ||\n 77 === rowState ||\n 109 === rowState ||\n 86 === rowState\n ? ((rowTag = rowState), (rowState = 2), i++)\n : (64 < rowState && 91 > rowState) ||\n 114 === rowState ||\n 120 === rowState\n ? ((rowTag = rowState), (rowState = 3), i++)\n : ((rowTag = 0), (rowState = 3));\n continue;\n case 2:\n lastIdx = chunk.charCodeAt(i++);\n 44 === lastIdx\n ? (rowState = 4)\n : (rowLength =\n (rowLength << 4) |\n (96 < lastIdx ? lastIdx - 87 : lastIdx - 48));\n continue;\n case 3:\n lastIdx = chunk.indexOf(\"\\n\", i);\n break;\n case 4:\n if (84 !== rowTag)\n throw Error(\n \"Binary RSC chunks cannot be encoded as strings. This is a bug in the wiring of the React streams.\"\n );\n if (rowLength < chunk.length || chunk.length > 3 * rowLength)\n throw Error(\n \"String chunks need to be passed in their original shape. Not split into smaller string chunks. This is a bug in the wiring of the React streams.\"\n );\n lastIdx = chunk.length;\n }\n if (-1 < lastIdx) {\n if (0 < buffer.length)\n throw Error(\n \"String chunks need to be passed in their original shape. Not split into smaller string chunks. This is a bug in the wiring of the React streams.\"\n );\n i = chunk.slice(i, lastIdx);\n processFullStringRow(response, streamState, rowID, rowTag, i);\n i = lastIdx;\n 3 === rowState && i++;\n rowLength = rowID = rowTag = rowState = 0;\n buffer.length = 0;\n } else if (chunk.length !== i)\n throw Error(\n \"String chunks need to be passed in their original shape. Not split into smaller string chunks. This is a bug in the wiring of the React streams.\"\n );\n }\n streamState._rowState = rowState;\n streamState._rowID = rowID;\n streamState._rowTag = rowTag;\n streamState._rowLength = rowLength;\n } else processBinaryChunk(response, streamState, chunk);\n });\n stream.on(\"error\", function (error) {\n reportGlobalError(response, error);\n });\n stream.on(\"end\", onEnd);\n}\nexports.createFromFetch = function (promiseForResponse, options) {\n var response = createResponseFromOptions(options);\n promiseForResponse.then(\n function (r) {\n startReadingFromStream$1(response, r.body, close.bind(null, response));\n },\n function (e) {\n reportGlobalError(response, e);\n }\n );\n return getChunk(response, 0);\n};\nexports.createFromNodeStream = function (\n stream,\n serverConsumerManifest,\n options\n) {\n serverConsumerManifest = new ResponseInstance(\n serverConsumerManifest.moduleMap,\n serverConsumerManifest.serverModuleMap,\n serverConsumerManifest.moduleLoading,\n noServerCall,\n options ? options.encodeFormAction : void 0,\n options && \"string\" === typeof options.nonce ? options.nonce : void 0,\n void 0,\n options && options.unstable_allowPartialStream\n ? options.unstable_allowPartialStream\n : !1\n );\n startReadingFromStream(\n serverConsumerManifest,\n stream,\n close.bind(null, serverConsumerManifest)\n );\n return getChunk(serverConsumerManifest, 0);\n};\nexports.createFromReadableStream = function (stream, options) {\n options = createResponseFromOptions(options);\n startReadingFromStream$1(options, stream, close.bind(null, options));\n return getChunk(options, 0);\n};\nexports.createServerReference = function (id) {\n return createServerReference$1(id, noServerCall$1);\n};\nexports.createTemporaryReferenceSet = function () {\n return new Map();\n};\nexports.encodeReply = function (value, options) {\n return new Promise(function (resolve, reject) {\n processReply(\n value,\n \"\",\n options && options.temporaryReferences\n ? options.temporaryReferences\n : void 0,\n resolve,\n reject,\n options ? options.signal : void 0\n );\n });\n};\nexports.registerServerReference = function (reference, id, encodeFormAction) {\n registerBoundServerReference(reference, id, null, encodeFormAction);\n return reference;\n};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-server-dom-turbopack-client.node.production.js');\n} else {\n module.exports = require('./cjs/react-server-dom-turbopack-client.node.development.js');\n}\n","/**\n * Node in the doubly-linked list used for LRU tracking.\n * Each node represents a cache entry with bidirectional pointers.\n */ class LRUNode {\n constructor(key, data, size){\n this.prev = null;\n this.next = null;\n this.key = key;\n this.data = data;\n this.size = size;\n }\n}\n/**\n * Sentinel node used for head/tail boundaries.\n * These nodes don't contain actual cache data but simplify list operations.\n */ class SentinelNode {\n constructor(){\n this.prev = null;\n this.next = null;\n }\n}\n/**\n * LRU (Least Recently Used) Cache implementation using a doubly-linked list\n * and hash map for O(1) operations.\n *\n * Algorithm:\n * - Uses a doubly-linked list to maintain access order (most recent at head)\n * - Hash map provides O(1) key-to-node lookup\n * - Sentinel head/tail nodes simplify edge case handling\n * - Size-based eviction supports custom size calculation functions\n *\n * Data Structure Layout:\n * HEAD <-> [most recent] <-> ... <-> [least recent] <-> TAIL\n *\n * Operations:\n * - get(): Move accessed node to head (mark as most recent)\n * - set(): Add new node at head, evict from tail if over capacity\n * - Eviction: Remove least recent node (tail.prev) when size exceeds limit\n */ export class LRUCache {\n constructor(maxSize, calculateSize, onEvict){\n this.cache = new Map();\n this.totalSize = 0;\n this.maxSize = maxSize;\n this.calculateSize = calculateSize;\n this.onEvict = onEvict;\n // Create sentinel nodes to simplify doubly-linked list operations\n // HEAD <-> TAIL (empty list)\n this.head = new SentinelNode();\n this.tail = new SentinelNode();\n this.head.next = this.tail;\n this.tail.prev = this.head;\n }\n /**\n * Adds a node immediately after the head (marks as most recently used).\n * Used when inserting new items or when an item is accessed.\n * PRECONDITION: node must be disconnected (prev/next should be null)\n */ addToHead(node) {\n node.prev = this.head;\n node.next = this.head.next;\n // head.next is always non-null (points to tail or another node)\n this.head.next.prev = node;\n this.head.next = node;\n }\n /**\n * Removes a node from its current position in the doubly-linked list.\n * Updates the prev/next pointers of adjacent nodes to maintain list integrity.\n * PRECONDITION: node must be connected (prev/next are non-null)\n */ removeNode(node) {\n // Connected nodes always have non-null prev/next\n node.prev.next = node.next;\n node.next.prev = node.prev;\n }\n /**\n * Moves an existing node to the head position (marks as most recently used).\n * This is the core LRU operation - accessed items become most recent.\n */ moveToHead(node) {\n this.removeNode(node);\n this.addToHead(node);\n }\n /**\n * Removes and returns the least recently used node (the one before tail).\n * This is called during eviction when the cache exceeds capacity.\n * PRECONDITION: cache is not empty (ensured by caller)\n */ removeTail() {\n const lastNode = this.tail.prev;\n // tail.prev is always non-null and always LRUNode when cache is not empty\n this.removeNode(lastNode);\n return lastNode;\n }\n /**\n * Sets a key-value pair in the cache.\n * If the key exists, updates the value and moves to head.\n * If new, adds at head and evicts from tail if necessary.\n *\n * Time Complexity:\n * - O(1) for uniform item sizes\n * - O(k) where k is the number of items evicted (can be O(N) for variable sizes)\n */ set(key, value) {\n const size = (this.calculateSize == null ? void 0 : this.calculateSize.call(this, value, key)) ?? 1;\n if (size <= 0) {\n throw new Error(`LRUCache: calculateSize returned ${size}, but size must be > 0. ` + `Items with size 0 would never be evicted, causing unbounded cache growth.`);\n }\n if (size > this.maxSize) {\n console.warn('Single item size exceeds maxSize');\n return false;\n }\n const existing = this.cache.get(key);\n if (existing) {\n // Update existing node: adjust size and move to head (most recent)\n existing.data = value;\n this.totalSize = this.totalSize - existing.size + size;\n existing.size = size;\n this.moveToHead(existing);\n } else {\n // Add new node at head (most recent position)\n const newNode = new LRUNode(key, value, size);\n this.cache.set(key, newNode);\n this.addToHead(newNode);\n this.totalSize += size;\n }\n // Evict least recently used items until under capacity\n while(this.totalSize > this.maxSize && this.cache.size > 0){\n const tail = this.removeTail();\n this.cache.delete(tail.key);\n this.totalSize -= tail.size;\n this.onEvict == null ? void 0 : this.onEvict.call(this, tail.key, tail.data);\n }\n return true;\n }\n /**\n * Checks if a key exists in the cache.\n * This is a pure query operation - does NOT update LRU order.\n *\n * Time Complexity: O(1)\n */ has(key) {\n return this.cache.has(key);\n }\n /**\n * Retrieves a value by key and marks it as most recently used.\n * Moving to head maintains the LRU property for future evictions.\n *\n * Time Complexity: O(1)\n */ get(key) {\n const node = this.cache.get(key);\n if (!node) return undefined;\n // Mark as most recently used by moving to head\n this.moveToHead(node);\n return node.data;\n }\n /**\n * Returns an iterator over the cache entries. The order is outputted in the\n * order of most recently used to least recently used.\n */ *[Symbol.iterator]() {\n let current = this.head.next;\n while(current && current !== this.tail){\n // Between head and tail, current is always LRUNode\n const node = current;\n yield [\n node.key,\n node.data\n ];\n current = current.next;\n }\n }\n /**\n * Removes a specific key from the cache.\n * Updates both the hash map and doubly-linked list.\n *\n * Note: This is an explicit removal and does NOT trigger the `onEvict`\n * callback. Use this for intentional deletions where eviction tracking\n * is not needed.\n *\n * Time Complexity: O(1)\n */ remove(key) {\n const node = this.cache.get(key);\n if (!node) return;\n this.removeNode(node);\n this.cache.delete(key);\n this.totalSize -= node.size;\n }\n /**\n * Returns the number of items in the cache.\n */ get size() {\n return this.cache.size;\n }\n /**\n * Returns the current total size of all cached items.\n * This uses the custom size calculation if provided.\n */ get currentSize() {\n return this.totalSize;\n }\n}\n\n//# sourceMappingURL=lru-cache.js.map","// ISC License\n// Copyright (c) 2021 Alexey Raspopov, Kostiantyn Denysov, Anton Verinov\n// Permission to use, copy, modify, and/or distribute this software for any\n// purpose with or without fee is hereby granted, provided that the above\n// copyright notice and this permission notice appear in all copies.\n// THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\n// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\n// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\n// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\n// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\n// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\n// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n//\n// https://github.com/alexeyraspopov/picocolors/blob/b6261487e7b81aaab2440e397a356732cad9e342/picocolors.js#L1\nvar _globalThis;\nconst { env, stdout } = ((_globalThis = globalThis) == null ? void 0 : _globalThis.process) ?? {};\nconst enabled = env && !env.NO_COLOR && (env.FORCE_COLOR || (stdout == null ? void 0 : stdout.isTTY) && !env.CI && env.TERM !== 'dumb');\nexport const isColorSupported = Boolean(enabled);\n// Whether stdout ends up on a terminal: directly, or through the CLI, which\n// pipes a child's output while the upgrade menu is open.\nexport const stdoutIsTerminal = Boolean(stdout == null ? void 0 : stdout.isTTY) || env.NEXT_PRIVATE_PROMPT_OUTPUT === '1';\nconst replaceClose = (str, close, replace, index)=>{\n const start = str.substring(0, index) + replace;\n const end = str.substring(index + close.length);\n const nextIndex = end.indexOf(close);\n return ~nextIndex ? start + replaceClose(end, close, replace, nextIndex) : start + end;\n};\nconst formatter = (open, close, replace = open)=>{\n if (!enabled) return String;\n return (input)=>{\n const string = '' + input;\n const index = string.indexOf(close, open.length);\n return ~index ? open + replaceClose(string, close, replace, index) + close : open + string + close;\n };\n};\nexport const reset = enabled ? (s)=>`\\x1b[0m${s}\\x1b[0m` : String;\nexport const bold = formatter('\\x1b[1m', '\\x1b[22m', '\\x1b[22m\\x1b[1m');\nexport const dim = formatter('\\x1b[2m', '\\x1b[22m', '\\x1b[22m\\x1b[2m');\nexport const italic = formatter('\\x1b[3m', '\\x1b[23m');\nexport const underline = formatter('\\x1b[4m', '\\x1b[24m');\nexport const inverse = formatter('\\x1b[7m', '\\x1b[27m');\nexport const hidden = formatter('\\x1b[8m', '\\x1b[28m');\nexport const strikethrough = formatter('\\x1b[9m', '\\x1b[29m');\nexport const black = formatter('\\x1b[30m', '\\x1b[39m');\nexport const red = formatter('\\x1b[31m', '\\x1b[39m');\nexport const green = formatter('\\x1b[32m', '\\x1b[39m');\nexport const yellow = formatter('\\x1b[33m', '\\x1b[39m');\nexport const blue = formatter('\\x1b[34m', '\\x1b[39m');\nexport const magenta = formatter('\\x1b[35m', '\\x1b[39m');\nexport const purple = formatter('\\x1b[38;2;173;127;168m', '\\x1b[39m');\nexport const cyan = formatter('\\x1b[36m', '\\x1b[39m');\nexport const white = formatter('\\x1b[37m', '\\x1b[39m');\nexport const gray = formatter('\\x1b[90m', '\\x1b[39m');\nexport const bgBlack = formatter('\\x1b[40m', '\\x1b[49m');\nexport const bgRed = formatter('\\x1b[41m', '\\x1b[49m');\nexport const bgGreen = formatter('\\x1b[42m', '\\x1b[49m');\nexport const bgYellow = formatter('\\x1b[43m', '\\x1b[49m');\nexport const bgBlue = formatter('\\x1b[44m', '\\x1b[49m');\nexport const bgMagenta = formatter('\\x1b[45m', '\\x1b[49m');\nexport const bgCyan = formatter('\\x1b[46m', '\\x1b[49m');\nexport const bgWhite = formatter('\\x1b[47m', '\\x1b[49m');\n\n//# sourceMappingURL=picocolors.js.map","import { bold, green, magenta, red, yellow, white } from '../../lib/picocolors';\nimport { LRUCache } from '../../server/lib/lru-cache';\nexport const prefixes = {\n wait: white(bold('○')),\n error: red(bold('⨯')),\n warn: yellow(bold('⚠')),\n ready: '▲',\n info: white(bold(' ')),\n event: green(bold('✓')),\n trace: magenta(bold('»'))\n};\nconst LOGGING_METHOD = {\n log: 'log',\n warn: 'warn',\n error: 'error'\n};\nfunction prefixedLog(prefixType, ...message) {\n if ((message[0] === '' || message[0] === undefined) && message.length === 1) {\n message.shift();\n }\n const consoleMethod = prefixType in LOGGING_METHOD ? LOGGING_METHOD[prefixType] : 'log';\n const prefix = prefixes[prefixType];\n // If there's no message, don't print the prefix but a new line\n if (message.length === 0) {\n console[consoleMethod]('');\n } else {\n // Ensure if there's ANSI escape codes it's concatenated into one string.\n // Chrome DevTool can only handle color if it's in one string.\n if (message.length === 1 && typeof message[0] === 'string') {\n console[consoleMethod](prefix + ' ' + message[0]);\n } else {\n console[consoleMethod](prefix, ...message);\n }\n }\n}\nexport function bootstrap(message) {\n console.log(message);\n}\nexport function wait(...message) {\n prefixedLog('wait', ...message);\n}\nexport function error(...message) {\n prefixedLog('error', ...message);\n}\nexport function warn(...message) {\n prefixedLog('warn', ...message);\n}\nexport function ready(...message) {\n prefixedLog('ready', ...message);\n}\nexport function info(...message) {\n prefixedLog('info', ...message);\n}\nexport function event(...message) {\n prefixedLog('event', ...message);\n}\nexport function trace(...message) {\n prefixedLog('trace', ...message);\n}\nconst warnOnceCache = new LRUCache(10000, (value)=>value.length);\nexport function warnOnce(...message) {\n const key = message.join(' ');\n if (!warnOnceCache.has(key)) {\n warnOnceCache.set(key, key);\n warn(...message);\n }\n}\nconst errorOnceCache = new LRUCache(10000, (value)=>value.length);\nexport function errorOnce(...message) {\n const key = message.join(' ');\n if (!errorOnceCache.has(key)) {\n errorOnceCache.set(key, key);\n error(...message);\n }\n}\n\n//# sourceMappingURL=log.js.map","export const RSC_HEADER = 'rsc' as const\nexport const ACTION_HEADER = 'next-action' as const\n// TODO: Instead of sending the full router state, we only need to send the\n// segment path. Saves bytes. Then we could also use this field for segment\n// prefetches, which also need to specify a particular segment.\nexport const NEXT_ROUTER_STATE_TREE_HEADER = 'next-router-state-tree' as const\nexport const NEXT_ROUTER_PREFETCH_HEADER = 'next-router-prefetch' as const\n// This contains the path to the segment being prefetched.\n// TODO: If we change next-router-state-tree to be a segment path, we can use\n// that instead. Then next-router-prefetch and next-router-segment-prefetch can\n// be merged into a single enum.\nexport const NEXT_ROUTER_SEGMENT_PREFETCH_HEADER =\n 'next-router-segment-prefetch' as const\nexport const NEXT_HMR_REFRESH_HEADER = 'next-hmr-refresh' as const\nexport const NEXT_URL = 'next-url' as const\nexport const RSC_CONTENT_TYPE_HEADER = 'text/x-component' as const\n\n// Cookie for the Instant Navigation Testing API. Sent automatically with all\n// requests while a navigation lock is held; the server uses its presence to\n// render only the shell. Not exposed in production builds by default.\nexport const NEXT_INSTANT_TEST_COOKIE =\n 'next-instant-navigation-testing' as const\n\nexport const FLIGHT_HEADERS = [\n RSC_HEADER,\n NEXT_ROUTER_STATE_TREE_HEADER,\n NEXT_ROUTER_PREFETCH_HEADER,\n NEXT_HMR_REFRESH_HEADER,\n NEXT_ROUTER_SEGMENT_PREFETCH_HEADER,\n] as const\n\nexport const NEXT_RSC_UNION_QUERY = '_rsc' as const\n\nexport const NEXT_ROUTER_STALE_TIME_HEADER = 'x-nextjs-stale-time' as const\nexport const NEXT_DID_POSTPONE_HEADER = 'x-nextjs-postponed' as const\nexport const NEXT_REWRITTEN_PATH_HEADER = 'x-nextjs-rewritten-path' as const\nexport const NEXT_REWRITTEN_QUERY_HEADER = 'x-nextjs-rewritten-query' as const\nexport const NEXT_IS_PRERENDER_HEADER = 'x-nextjs-prerender' as const\nexport const NEXT_ACTION_NOT_FOUND_HEADER = 'x-nextjs-action-not-found' as const\nexport const NEXT_REQUEST_ID_HEADER = 'x-nextjs-request-id' as const\nexport const NEXT_HTML_REQUEST_ID_HEADER = 'x-nextjs-html-request-id' as const\n\n// TODO: Should this include nextjs in the name, like the others?\nexport const NEXT_ACTION_REVALIDATED_HEADER = 'x-action-revalidated' as const\n","'use client'\n\nimport type { ParsedUrlQuery } from 'querystring'\nimport type { Params } from '../../server/request/params'\nimport { LayoutRouterContext } from '../../shared/lib/app-router-context.shared-runtime'\nimport { use } from 'react'\nimport { urlSearchParamsToParsedUrlQuery } from '../route-params'\nimport { SearchParamsContext } from '../../shared/lib/hooks-client-context.shared-runtime'\nimport {\n createClientParams,\n createClientSearchParams,\n} from './client-boundary-params'\n\n/**\n * When the Page is a client component we send the params and searchParams to this client wrapper\n * where they are turned into dynamically tracked values before being passed to the actual Page component.\n *\n * additionally we may send promises representing the params and searchParams. We don't ever use these passed\n * values but it can be necessary for the sender to send a Promise that doesn't resolve in certain situations.\n * It is up to the caller to decide if the promises are needed.\n */\nexport function ClientPageRoot({\n Component,\n serverProvidedParams,\n}: {\n Component: React.ComponentType\n serverProvidedParams: null | {\n searchParams: ParsedUrlQuery\n params: Params\n promises: Array> | null\n }\n}) {\n let searchParams: ParsedUrlQuery\n let params: Params\n if (serverProvidedParams !== null) {\n searchParams = serverProvidedParams.searchParams\n params = serverProvidedParams.params\n } else {\n // When Cache Components is enabled, the server does not pass the params as\n // props; they are parsed on the client and passed via context.\n const layoutRouterContext = use(LayoutRouterContext)\n params =\n layoutRouterContext !== null ? layoutRouterContext.parentParams : {}\n\n // This is an intentional behavior change: when Cache Components is enabled,\n // client segments receive the \"canonical\" search params, not the\n // rewritten ones. Users should either call useSearchParams directly or pass\n // the rewritten ones in from a Server Component.\n // TODO: Log a deprecation error when this object is accessed\n searchParams = urlSearchParamsToParsedUrlQuery(use(SearchParamsContext)!)\n }\n\n const clientSearchParams = createClientSearchParams(searchParams)\n const clientParams = createClientParams(params)\n\n return \n}\n","'use client'\n\nimport type { Params } from '../../server/request/params'\nimport { LayoutRouterContext } from '../../shared/lib/app-router-context.shared-runtime'\nimport { use } from 'react'\nimport { createClientParams } from './client-boundary-params'\n\n/**\n * When the Page is a client component we send the params to this client wrapper\n * where they are turned into dynamically tracked values before being passed to the actual Segment component.\n *\n * additionally we may send a promise representing params. We don't ever use this passed\n * value but it can be necessary for the sender to send a Promise that doesn't resolve in certain situations\n * such as when cacheComponents is enabled. It is up to the caller to decide if the promises are needed.\n */\nexport function ClientSegmentRoot({\n Component,\n slots,\n serverProvidedParams,\n}: {\n Component: React.ComponentType\n slots: { [key: string]: React.ReactNode }\n serverProvidedParams: null | {\n params: Params\n promises: Array> | null\n }\n}) {\n let params: Params\n if (serverProvidedParams !== null) {\n params = serverProvidedParams.params\n } else {\n // When Cache Components is enabled, the server does not pass the params\n // as props; they are parsed on the client and passed via context.\n const layoutRouterContext = use(LayoutRouterContext)\n params =\n layoutRouterContext !== null ? layoutRouterContext.parentParams : {}\n }\n\n const clientParams = createClientParams(params)\n\n return \n}\n","'use client'\n\n/**\n * HTTPAccessFallbackBoundary is a boundary that catches errors and renders a\n * fallback component for HTTP errors.\n *\n * It receives the status code, and determine if it should render fallbacks for few HTTP 4xx errors.\n *\n * e.g. 404\n * 404 represents not found, and the fallback component pair contains the component and its styles.\n *\n */\n\nimport React, { useContext } from 'react'\nimport { useUntrackedPathname } from '../navigation-untracked'\nimport {\n HTTPAccessErrorStatus,\n getAccessFallbackHTTPStatus,\n getAccessFallbackErrorTypeByStatus,\n isHTTPAccessFallbackError,\n} from './http-access-fallback'\nimport { MissingSlotContext } from '../../../shared/lib/app-router-context.shared-runtime'\n\ninterface HTTPAccessFallbackBoundaryProps {\n notFound?: React.ReactNode\n forbidden?: React.ReactNode\n unauthorized?: React.ReactNode\n // TODO: Make this required once `React.createElement` understands that positional args go into children\n children?: React.ReactNode\n missingSlots?: Set\n}\n\ninterface HTTPAccessFallbackErrorBoundaryProps\n extends HTTPAccessFallbackBoundaryProps {\n pathname: string | null\n missingSlots?: Set\n}\n\ninterface HTTPAccessBoundaryState {\n triggeredStatus: number | undefined\n previousPathname: string | null\n}\n\nclass HTTPAccessFallbackErrorBoundary extends React.Component<\n HTTPAccessFallbackErrorBoundaryProps,\n HTTPAccessBoundaryState\n> {\n constructor(props: HTTPAccessFallbackErrorBoundaryProps) {\n super(props)\n this.state = {\n triggeredStatus: undefined,\n previousPathname: props.pathname,\n }\n }\n\n componentDidCatch(): void {\n if (\n process.env.NODE_ENV === 'development' &&\n this.props.missingSlots &&\n this.props.missingSlots.size > 0 &&\n // A missing children slot is the typical not-found case, so no need to warn\n !this.props.missingSlots.has('children')\n ) {\n const { warnOnce } =\n require('../../../shared/lib/utils/warn-once') as typeof import('../../../shared/lib/utils/warn-once')\n let warningMessage =\n 'No default component was found for a parallel route rendered on this page. Falling back to nearest NotFound boundary.\\n' +\n 'Learn more: https://nextjs.org/docs/app/building-your-application/routing/parallel-routes#defaultjs\\n\\n'\n\n const formattedSlots = Array.from(this.props.missingSlots)\n .sort((a, b) => a.localeCompare(b))\n .map((slot) => `@${slot}`)\n .join(', ')\n\n warningMessage += 'Missing slots: ' + formattedSlots\n\n warnOnce(warningMessage)\n }\n }\n\n static getDerivedStateFromError(error: unknown) {\n if (isHTTPAccessFallbackError(error)) {\n const httpStatus = getAccessFallbackHTTPStatus(error)\n return {\n triggeredStatus: httpStatus,\n }\n }\n // Re-throw if error is not for 404\n throw error\n }\n\n static getDerivedStateFromProps(\n props: HTTPAccessFallbackErrorBoundaryProps,\n state: HTTPAccessBoundaryState\n ): HTTPAccessBoundaryState | null {\n /**\n * Handles reset of the error boundary when a navigation happens.\n * Ensures the error boundary does not stay enabled when navigating to a new page.\n * Approach of setState in render is safe as it checks the previous pathname and then overrides\n * it as outlined in https://react.dev/reference/react/useState#storing-information-from-previous-renders\n */\n if (props.pathname !== state.previousPathname && state.triggeredStatus) {\n return {\n triggeredStatus: undefined,\n previousPathname: props.pathname,\n }\n }\n return {\n triggeredStatus: state.triggeredStatus,\n previousPathname: props.pathname,\n }\n }\n\n render() {\n const { notFound, forbidden, unauthorized, children } = this.props\n const { triggeredStatus } = this.state\n const errorComponents = {\n [HTTPAccessErrorStatus.NOT_FOUND]: notFound,\n [HTTPAccessErrorStatus.FORBIDDEN]: forbidden,\n [HTTPAccessErrorStatus.UNAUTHORIZED]: unauthorized,\n }\n\n if (triggeredStatus) {\n const isNotFound =\n triggeredStatus === HTTPAccessErrorStatus.NOT_FOUND && notFound\n const isForbidden =\n triggeredStatus === HTTPAccessErrorStatus.FORBIDDEN && forbidden\n const isUnauthorized =\n triggeredStatus === HTTPAccessErrorStatus.UNAUTHORIZED && unauthorized\n\n // If there's no matched boundary in this layer, keep throwing the error by rendering the children\n if (!(isNotFound || isForbidden || isUnauthorized)) {\n return children\n }\n\n return (\n <>\n \n {process.env.NODE_ENV === 'development' && (\n \n )}\n {errorComponents[triggeredStatus]}\n \n )\n }\n\n return children\n }\n}\n\nexport function HTTPAccessFallbackBoundary({\n notFound,\n forbidden,\n unauthorized,\n children,\n}: HTTPAccessFallbackBoundaryProps) {\n // When we're rendering the missing params shell, this will return null. This\n // is because we won't be rendering any not found boundaries or error\n // boundaries for the missing params shell. When this runs on the client\n // (where these error can occur), we will get the correct pathname.\n const pathname = useUntrackedPathname()\n const missingSlots = useContext(MissingSlotContext)\n const hasErrorFallback = !!(notFound || forbidden || unauthorized)\n\n if (hasErrorFallback) {\n return (\n \n {children}\n \n )\n }\n\n return <>{children}\n}\n","'use client'\n\nimport type { RouteTree } from './segment-cache/cache'\n\nimport type { CacheNode } from '../../shared/lib/app-router-types'\nimport type { LoadingModuleData } from '../../shared/lib/app-router-types'\nimport type {\n FlightRouterState,\n FlightSegmentPath,\n Segment,\n} from '../../shared/lib/app-router-types'\nimport type { ErrorComponent } from './error-boundary'\nimport type { ScrollHandlerRef } from './router-reducer/router-reducer-types'\n\nimport React, {\n Activity,\n Fragment,\n useContext,\n use,\n Suspense,\n useDeferredValue,\n useLayoutEffect,\n type FragmentInstance,\n type JSX,\n type ActivityProps,\n} from 'react'\nimport {\n LayoutRouterContext,\n GlobalLayoutRouterContext,\n TemplateContext,\n} from '../../shared/lib/app-router-context.shared-runtime'\nimport { unresolvedThenable } from './unresolved-thenable'\nimport { ErrorBoundary } from './error-boundary'\nimport { disableSmoothScrollDuringRouteTransition } from '../../shared/lib/router/utils/disable-smooth-scroll'\nimport { RedirectBoundary } from './redirect-boundary'\nimport { HTTPAccessFallbackBoundary } from './http-access-fallback/error-boundary'\nimport {\n InstantValidationBoundaryContext,\n RenderValidationBoundaryAtThisLevel,\n} from './instant-validation/boundary'\nimport { createSegmentKey } from './router-reducer/create-segment-key'\nimport {\n useRouterBFCache,\n type RouterBFCacheEntry,\n} from './bfcache-state-manager'\nimport { normalizeAppPath } from '../../shared/lib/router/utils/app-paths'\nimport {\n NavigationPromisesContext,\n type NavigationPromises,\n} from '../../shared/lib/hooks-client-context.shared-runtime'\nimport { getParamValueFromCacheKey } from '../route-params'\nimport type { Params } from '../../server/request/params'\nimport { isDeferredRsc } from './render-tree'\n\nconst enum ScrollTargetState {\n NoClientRects,\n InViewport,\n OutOfViewport,\n}\n\n/**\n * Resolve the root scroll padding used by the viewport check.\n *\n * Computed lengths serialize as pixels, but percentages remain relative to\n * the scrollport. Preserve the existing behavior for values that still\n * contain unresolved CSS math.\n */\nfunction getScrollPaddingTopInPixels(\n htmlElement: HTMLElement,\n viewportHeight: number\n): number {\n const scrollPaddingTop = getComputedStyle(htmlElement).scrollPaddingTop\n const value = Number.parseFloat(scrollPaddingTop)\n\n if (!Number.isFinite(value) || value < 0) {\n return 0\n }\n\n if (scrollPaddingTop.endsWith('px')) {\n return value\n }\n\n if (scrollPaddingTop.endsWith('%')) {\n return (value / 100) * viewportHeight\n }\n\n return 0\n}\n\n/**\n * Check where the top corner of the HTMLElement is relative to the usable\n * viewport.\n *\n * Scroll padding is resolved lazily so an empty Fragment does not trigger a\n * computed style read. The caller caches the value for the second check.\n */\nfunction getScrollTargetState(\n instance: HTMLElement | FragmentInstance,\n viewportHeight: number,\n getScrollPaddingTop: () => number\n): ScrollTargetState {\n const rects = instance.getClientRects()\n if (rects.length === 0) {\n return ScrollTargetState.NoClientRects\n }\n let elementTop = Number.POSITIVE_INFINITY\n for (let i = 0; i < rects.length; i++) {\n const rect = rects[i]\n if (rect.top < elementTop) {\n elementTop = rect.top\n }\n }\n return elementTop >= getScrollPaddingTop() && elementTop <= viewportHeight\n ? ScrollTargetState.InViewport\n : ScrollTargetState.OutOfViewport\n}\n\n/**\n * Find the DOM node for a hash fragment.\n * If `top` the page has to scroll to the top of the page. This mirrors the browser's behavior.\n * If the hash fragment is an id, the page has to scroll to the element with that id.\n * If the hash fragment is a name, the page has to scroll to the first element with that name.\n */\nfunction getHashFragmentDomNode(hashFragment: string) {\n // If the hash fragment is `top` the page has to scroll to the top of the page.\n if (hashFragment === 'top') {\n return document.body\n }\n\n // If the hash fragment is an id, the page has to scroll to the element with that id.\n return (\n document.getElementById(hashFragment) ??\n // If the hash fragment is a name, the page has to scroll to the first element with that name.\n document.getElementsByName(hashFragment)[0] ??\n null\n )\n}\ninterface ScrollHandlerProps {\n scrollRef: ScrollHandlerRef\n children: React.ReactNode\n renderTree: RouteTree\n}\n\n/**\n * Uses Fragment refs for scrolling.\n * Does not focus the first host descendant.\n */\nfunction InnerScrollHandler(props: ScrollHandlerProps) {\n const childrenRef = React.useRef(null)\n\n useLayoutEffect(\n () => {\n const { scrollRef: scrollHandlerRef, renderTree } = props\n\n const scrollRef = scrollHandlerRef.forceScroll\n ? scrollHandlerRef.scrollRef\n : renderTree.data.scrollRef\n if (scrollRef === null || !scrollRef.current) return\n\n let instance: FragmentInstance | HTMLElement | null = null\n const hashFragment = scrollHandlerRef.hashFragment\n\n if (hashFragment) {\n instance = getHashFragmentDomNode(hashFragment)\n if (instance === null) {\n // A missing hash target is still a handled scroll intent. Do not\n // fall back to the route Fragment or leave the intent pending.\n scrollRef.current = false\n scrollHandlerRef.onlyHashChange = false\n scrollHandlerRef.hashFragment = null\n return\n }\n } else {\n instance = childrenRef.current\n }\n\n // If there is no DOM node this layout-router level is skipped. It'll be handled higher-up in the tree.\n if (instance === null) {\n return\n }\n\n let didHandleScroll = false\n\n disableSmoothScrollDuringRouteTransition(\n () => {\n const htmlElement = document.documentElement\n let viewportHeight: number | null = null\n let initialTargetState: ScrollTargetState | null = null\n let scrollPaddingTop: number | null = null\n const getScrollPaddingTop = () => {\n if (scrollPaddingTop === null) {\n // Reuse the style and layout update from the geometry read.\n scrollPaddingTop = getScrollPaddingTopInPixels(\n htmlElement,\n viewportHeight!\n )\n }\n return scrollPaddingTop\n }\n\n if (!hashFragment) {\n // Store the current viewport height because reading `clientHeight` causes a reflow,\n // and it won't change during this function.\n viewportHeight = htmlElement.clientHeight\n initialTargetState = getScrollTargetState(\n instance,\n viewportHeight,\n getScrollPaddingTop\n )\n\n // An empty Fragment is not a scroll target. In particular, avoid\n // React's sibling fallback and leave the scroll signal available\n // for another changed segment.\n if (initialTargetState === ScrollTargetState.NoClientRects) {\n return\n }\n }\n\n didHandleScroll = true\n\n // Mark as scrolled so no other segment scrolls for this navigation.\n scrollRef.current = false\n\n // This handler intentionally leaves focus untouched; resetting focus on\n // navigation is deferred.\n\n // In case of hash scroll, we only need to scroll the element into view\n if (hashFragment) {\n instance.scrollIntoView()\n\n return\n }\n\n // If the element's top edge is already in the viewport, exit early.\n if (initialTargetState === ScrollTargetState.InViewport) {\n return\n }\n\n // Otherwise, try scrolling go the top of the document to be backward compatible with pages\n // scrollIntoView() called on `` element scrolls horizontally on chrome and firefox (that shouldn't happen)\n // We could use it to scroll horizontally following RTL but that also seems to be broken - it will always scroll left\n // scrollLeft = 0 also seems to ignore RTL and manually checking for RTL is too much hassle so we will scroll just vertically\n htmlElement.scrollTop = 0\n\n // Scroll to domNode if domNode is not in viewport when scrolled to top of document\n if (\n getScrollTargetState(\n instance,\n viewportHeight!,\n getScrollPaddingTop\n ) === ScrollTargetState.OutOfViewport\n ) {\n // Scroll into view doesn't scroll horizontally by default when not needed\n instance.scrollIntoView()\n }\n },\n {\n // We will force layout by querying domNode position\n dontForceLayout: true,\n onlyHashChange: scrollHandlerRef.onlyHashChange,\n }\n )\n\n if (!didHandleScroll) {\n return\n }\n\n // Mutate after scrolling so that it can be read by `disableSmoothScrollDuringRouteTransition`\n scrollHandlerRef.onlyHashChange = false\n scrollHandlerRef.hashFragment = null\n },\n // Used to run on every commit. We may be able to be smarter about this\n // but be prepared for lots of manual testing.\n undefined\n )\n\n return {props.children}\n}\n\nfunction ScrollHandler({\n children,\n renderTree,\n}: {\n children: React.ReactNode\n renderTree: RouteTree\n}) {\n const context = useContext(GlobalLayoutRouterContext)\n if (!context) {\n throw new Error('invariant global layout router not mounted')\n }\n\n return (\n \n {children}\n \n )\n}\n\n/**\n * InnerLayoutRouter handles rendering the provided segment based on the cache.\n */\nfunction InnerLayoutRouter({\n tree,\n segmentPath,\n debugNameContext,\n renderTree,\n params,\n url,\n isActive,\n}: {\n tree: FlightRouterState\n segmentPath: FlightSegmentPath\n debugNameContext: string\n renderTree: RouteTree\n params: Params\n url: string\n isActive: boolean\n}) {\n const context = useContext(GlobalLayoutRouterContext)\n const parentNavPromises = useContext(NavigationPromisesContext)\n\n if (!context) {\n throw new Error('invariant global layout router not mounted')\n }\n\n // `rsc` represents the renderable node for this segment.\n\n // If this segment has a `prefetchRsc`, it's the statically prefetched data.\n // We should use that on initial render instead of `rsc`. Then we'll switch\n // to `rsc` when the dynamic response streams in.\n //\n // If no prefetch data is available, then we go straight to rendering `rsc`.\n const resolvedPrefetchRsc =\n renderTree.data.prefetchRsc !== null\n ? renderTree.data.prefetchRsc\n : renderTree.data.rsc\n\n // We use `useDeferredValue` to handle switching between the prefetched and\n // final values. The second argument is returned on initial render, then it\n // re-renders with the first argument.\n const rsc: any = useDeferredValue(renderTree.data.rsc, resolvedPrefetchRsc)\n\n // `rsc` is either a React node or a promise for a React node, except we\n // special case `null` to represent that this segment's data is missing. If\n // it's a promise, we need to unwrap it so we can determine whether or not the\n // data is missing.\n let resolvedRsc: React.ReactNode\n if (isDeferredRsc(rsc)) {\n const unwrappedRsc = use(rsc)\n if (unwrappedRsc === null) {\n // If the promise was resolved to `null`, it means the data for this\n // segment was not returned by the server. Suspend indefinitely. When this\n // happens, the router is responsible for triggering a new state update to\n // un-suspend this segment.\n use(unresolvedThenable) as never\n }\n resolvedRsc = unwrappedRsc\n } else {\n // This is not a deferred RSC promise. Don't need to unwrap it.\n if (rsc === null) {\n use(unresolvedThenable) as never\n }\n resolvedRsc = rsc\n }\n\n // In dev, we create a NavigationPromisesContext containing the instrumented promises that provide\n // `useSelectedLayoutSegment` and `useSelectedLayoutSegments`.\n // Promises are cached outside of render to survive suspense retries.\n let navigationPromises: NavigationPromises | null = null\n if (process.env.NODE_ENV !== 'production') {\n const { createNestedLayoutNavigationPromises } =\n require('./navigation-devtools') as typeof import('./navigation-devtools')\n\n navigationPromises = createNestedLayoutNavigationPromises(\n tree,\n parentNavPromises\n )\n }\n\n let children = resolvedRsc\n\n if (navigationPromises) {\n children = (\n \n {resolvedRsc}\n \n )\n }\n\n children = (\n // The layout router context narrows down tree and childNodes at each level.\n \n {children}\n \n )\n\n return children\n}\n\nexport function LoadingBoundaryProvider({\n loading,\n children,\n}: {\n loading: LoadingModuleData\n children: React.ReactNode\n}) {\n // Provides the data needed to render a loading.tsx boundary, via context.\n //\n // loading.tsx creates a Suspense boundary around each of a layout's child\n // slots. (Might be bit confusing to think about the data flow, but: if\n // loading.tsx and layout.tsx are in the same directory, they are assigned\n // to the same render tree.)\n //\n // This provider component does not render the Suspense boundary directly;\n // that's handled by LoadingBoundary.\n //\n // TODO: For simplicity, we should combine this provider with LoadingBoundary\n // and render the Suspense boundary directly. The only real benefit of doing\n // it separately is so that when there are multiple parallel routes, we only\n // send the boundary data once, rather than once per child. But that's a\n // negligible benefit and can be achieved via caching instead.\n const parentContext = use(LayoutRouterContext)\n if (parentContext === null) {\n return children\n }\n // All values except for parentLoadingData are the same as the parent context.\n return (\n \n {children}\n \n )\n}\n\n/**\n * Renders suspense boundary with the provided \"loading\" property as the fallback.\n * If no loading property is provided it renders the children without a suspense boundary.\n */\nfunction LoadingBoundary({\n name,\n loading,\n children,\n}: {\n name: ActivityProps['name']\n loading: LoadingModuleData | null\n children: React.ReactNode\n}): JSX.Element {\n // TODO: For LoadingBoundary, and the other built-in boundary types, don't\n // wrap in an extra function component if no user-defined boundary is\n // provided. In other words, inline this conditional wrapping logic into\n // the parent component. More efficient and keeps unnecessary junk out of\n // the component stack.\n if (loading !== null) {\n const loadingRsc = loading[0]\n const loadingStyles = loading[1]\n const loadingScripts = loading[2]\n return (\n \n {loadingStyles}\n {loadingScripts}\n {loadingRsc}\n \n }\n >\n {children}\n \n )\n }\n\n return <>{children}\n}\n\n/**\n * OuterLayoutRouter handles the current segment as well as rendering of other segments.\n * It can be rendered next to each other with a different `parallelRouterKey`, allowing for Parallel routes.\n */\nexport default function OuterLayoutRouter({\n parallelRouterKey,\n error,\n errorStyles,\n errorScripts,\n templateStyles,\n templateScripts,\n template,\n notFound,\n forbidden,\n unauthorized,\n segmentViewBoundaries,\n}: {\n parallelRouterKey: string\n error: ErrorComponent | undefined\n errorStyles: React.ReactNode | undefined\n errorScripts: React.ReactNode | undefined\n templateStyles: React.ReactNode | undefined\n templateScripts: React.ReactNode | undefined\n template: React.ReactNode\n notFound: React.ReactNode | undefined\n forbidden: React.ReactNode | undefined\n unauthorized: React.ReactNode | undefined\n segmentViewBoundaries?: React.ReactNode\n}) {\n const context = useContext(LayoutRouterContext)\n if (!context) {\n throw new Error('invariant expected layout router to be mounted')\n }\n\n const {\n parentTree,\n parentRenderTree,\n parentSegmentPath,\n parentParams,\n parentLoadingData,\n url,\n isActive,\n debugNameContext,\n } = context\n\n // Get the render tree for this segment by reading it from the parent segment's\n // child map.\n const parentTreeSegment = parentTree[0]\n const segmentPath =\n parentSegmentPath === null\n ? // TODO: The root segment value is currently omitted from the segment\n // path. This has led to a bunch of special cases scattered throughout\n // the code. We should clean this up.\n [parallelRouterKey]\n : parentSegmentPath.concat([parentTreeSegment, parallelRouterKey])\n\n // The \"state\" key of a segment is the one passed to React. In the browser it\n // represents the identity of the UI tree. Whenever the state key changes,\n // the tree is recreated and the state is reset. In the App Router model,\n // search params do not cause state to be lost, so two segments with the same\n // segment path but different search params should have the same state key.\n // On the server, the key describes the segment's structure instead, so it\n // stays the same when unknown params become known during HTML resume.\n //\n // Whether the data can be reused is tracked separately, by the segment\n // cache's vary paths.\n const activeTree = parentTree[1][parallelRouterKey]\n const activeRenderTree = parentRenderTree.slots?.get(parallelRouterKey)\n if (activeTree === undefined || activeRenderTree === undefined) {\n // Could not find a matching segment. The client tree is inconsistent with\n // the server tree. Suspend indefinitely; the router will have already\n // detected the inconsistency when handling the server response, and\n // triggered a refresh of the page to recover.\n use(unresolvedThenable) as never\n }\n\n let maybeValidationBoundaryId: string | null = null\n if (typeof window === 'undefined' && process.env.__NEXT_CACHE_COMPONENTS) {\n maybeValidationBoundaryId = use(InstantValidationBoundaryContext)\n }\n\n const activeSegment = activeTree[0]\n const activeStateKey = createSegmentKey(activeSegment)\n\n // At each level of the route tree, not only do we render the currently\n // active segment — we also render the last N segments that were active at\n // this level inside a hidden boundary, to preserve their state\n // if or when the user navigates to them again.\n //\n // bfcacheEntry is a linked list of FlightRouterStates.\n let bfcacheEntry: RouterBFCacheEntry | null = useRouterBFCache(\n activeTree,\n activeRenderTree!,\n activeStateKey\n )\n let children: Array = []\n do {\n const tree = bfcacheEntry.tree\n const renderTree = bfcacheEntry.renderTree\n const stateKey = bfcacheEntry.stateKey\n const segment = tree[0]\n /*\n - Error boundary\n - Only renders error boundary if error component is provided.\n - Rendered for each segment to ensure they have their own error state.\n - When gracefully degrade for bots, skip rendering error boundary.\n - Loading boundary\n - Only renders suspense boundary if loading components is provided.\n - Rendered for each segment to ensure they have their own loading state.\n - Passed to the router during rendering to ensure it can be immediately rendered when suspending on a Flight fetch.\n */\n\n let segmentBoundaryTriggerNode: React.ReactNode = null\n let segmentViewStateNode: React.ReactNode = null\n if (process.env.NODE_ENV !== 'production') {\n const { SegmentBoundaryTriggerNode, SegmentViewStateNode } =\n require('../../next-devtools/userspace/app/segment-explorer-node') as typeof import('../../next-devtools/userspace/app/segment-explorer-node')\n\n const pagePrefix = normalizeAppPath(url)\n segmentViewStateNode = (\n \n )\n\n segmentBoundaryTriggerNode = (\n <>\n \n \n )\n }\n\n let params = parentParams\n if (Array.isArray(segment)) {\n // This segment contains a route param. Accumulate these as we traverse\n // down the router tree. The result represents the set of params that\n // the layout/page components are permitted to access below this point.\n const paramName = segment[0]\n const paramCacheKey = segment[1]\n const paramType = segment[2]\n const paramValue = getParamValueFromCacheKey(paramCacheKey, paramType)\n if (paramValue !== null) {\n params = {\n ...parentParams,\n [paramName]: paramValue,\n }\n }\n }\n\n const debugName = getBoundaryDebugNameFromSegment(segment)\n // `debugNameContext` represents the nearest non-\"virtual\" parent segment.\n // `getBoundaryDebugNameFromSegment` returns undefined for virtual segments.\n // So if `debugName` is undefined, the context is passed through unchanged.\n const childDebugNameContext = debugName ?? debugNameContext\n\n // In practical terms, clicking this name in the Suspense DevTools\n // should select the child slots of that layout.\n //\n // So the name we apply to the Activity boundary is actually based on\n // the nearest parent segments.\n //\n // We skip over \"virtual\" parents, i.e. ones inserted by Next.js that\n // don't correspond to application-defined code.\n const isVirtual = debugName === undefined\n const debugNameToDisplay = isVirtual ? undefined : debugNameContext\n\n let templateValue = (\n \n \n \n \n \n \n {segmentBoundaryTriggerNode}\n \n \n \n \n {segmentViewStateNode}\n \n )\n\n if (\n typeof window === 'undefined' &&\n process.env.__NEXT_CACHE_COMPONENTS &&\n typeof maybeValidationBoundaryId === 'string'\n ) {\n templateValue = (\n \n {templateValue}\n \n )\n }\n\n let child = (\n \n {templateStyles}\n {templateScripts}\n {template}\n \n )\n\n if (process.env.NODE_ENV !== 'production') {\n const { SegmentStateProvider } =\n require('../../next-devtools/userspace/app/segment-explorer-node') as typeof import('../../next-devtools/userspace/app/segment-explorer-node')\n\n child = (\n \n {child}\n {segmentViewBoundaries}\n \n )\n }\n\n if (process.env.__NEXT_CACHE_COMPONENTS) {\n child = (\n \n {child}\n \n )\n }\n\n children.push(child)\n\n bfcacheEntry = bfcacheEntry.next\n } while (bfcacheEntry !== null)\n\n return children\n}\n\nfunction getBoundaryDebugNameFromSegment(segment: Segment): string | undefined {\n if (segment === '/') {\n // Reached the root\n return '/'\n }\n if (typeof segment === 'string') {\n if (isVirtualLayout(segment)) {\n return undefined\n } else {\n return segment + '/'\n }\n }\n const paramCacheKey = segment[1]\n return paramCacheKey + '/'\n}\n\nfunction isVirtualLayout(segment: string): boolean {\n return (\n // This is inserted by the loader. Uses double-underscore convention\n // (like __PAGE__ and __DEFAULT__) to avoid collisions with\n // user-defined route groups.\n segment === '(__SLOT__)'\n )\n}\n","export enum RedirectStatusCode {\n SeeOther = 303,\n TemporaryRedirect = 307,\n PermanentRedirect = 308,\n}\n","'use client'\n\nimport React, { useContext, type JSX } from 'react'\nimport { TemplateContext } from '../../shared/lib/app-router-context.shared-runtime'\n\nexport default function RenderFromTemplateContext(): JSX.Element {\n const children = useContext(TemplateContext)\n return <>{children}\n}\n","import type { ServerRuntime } from '../types'\n\nexport const TEXT_PLAIN_CONTENT_TYPE_HEADER = 'text/plain'\nexport const HTML_CONTENT_TYPE_HEADER = 'text/html; charset=utf-8'\nexport const JSON_CONTENT_TYPE_HEADER = 'application/json; charset=utf-8'\nexport const NEXT_QUERY_PARAM_PREFIX = 'nxtP'\nexport const NEXT_INTERCEPTION_MARKER_PREFIX = 'nxtI'\n\nexport const MATCHED_PATH_HEADER = 'x-matched-path'\nexport const PRERENDER_REVALIDATE_HEADER = 'x-prerender-revalidate'\nexport const PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER =\n 'x-prerender-revalidate-if-generated'\n\nexport const RSC_SEGMENTS_DIR_SUFFIX = '.segments'\nexport const RSC_SEGMENT_SUFFIX = '.segment.rsc'\nexport const RSC_SUFFIX = '.rsc'\nexport const ACTION_SUFFIX = '.action'\nexport const NEXT_DATA_SUFFIX = '.json'\nexport const NEXT_META_SUFFIX = '.meta'\nexport const NEXT_BODY_SUFFIX = '.body'\n\nexport const NEXT_NAV_DEPLOYMENT_ID_HEADER = 'x-nextjs-deployment-id'\n\nexport const NEXT_CACHE_TAGS_HEADER = 'x-next-cache-tags'\nexport const NEXT_CACHE_REVALIDATED_TAGS_HEADER = 'x-next-revalidated-tags'\nexport const NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER =\n 'x-next-revalidate-tag-token'\n\nexport const NEXT_RESUME_HEADER = 'next-resume'\nexport const NEXT_RESUME_STATE_LENGTH_HEADER = 'x-next-resume-state-length'\n\n// if these change make sure we update the related\n// documentation as well\nexport const NEXT_CACHE_TAG_MAX_ITEMS = 128\nexport const NEXT_CACHE_TAG_MAX_LENGTH = 256\nexport const NEXT_CACHE_SOFT_TAG_MAX_LENGTH = 1024\nexport const NEXT_CACHE_IMPLICIT_TAG_ID = '_N_T_'\nexport const NEXT_CACHE_ROOT_PARAM_TAG_ID = '_N_RP_'\n\n// in seconds\nexport const CACHE_ONE_YEAR_SECONDS = 31536000\n\n// in seconds, represents revalidate=false. I.e. never revaliate.\n// We use this value since it can be represented as a V8 SMI for optimal performance.\n// It can also be serialized as JSON if it ever leaks accidentally as an actual value.\nexport const INFINITE_CACHE = 0xfffffffe\n\n// Patterns to detect middleware files\nexport const MIDDLEWARE_FILENAME = 'middleware'\nexport const MIDDLEWARE_LOCATION_REGEXP = `(?:src/)?${MIDDLEWARE_FILENAME}`\n\n// Patterns to detect proxy files (replacement for middleware)\nexport const PROXY_FILENAME = 'proxy'\nexport const PROXY_LOCATION_REGEXP = `(?:src/)?${PROXY_FILENAME}`\n\n// Pattern to detect instrumentation hooks file\nexport const INSTRUMENTATION_HOOK_FILENAME = 'instrumentation'\n\n// Because on Windows absolute paths in the generated code can break because of numbers, eg 1 in the path,\n// we have to use a private alias\nexport const PAGES_DIR_ALIAS = 'private-next-pages'\nexport const DOT_NEXT_ALIAS = 'private-dot-next'\nexport const ROOT_DIR_ALIAS = 'private-next-root-dir'\nexport const APP_DIR_ALIAS = 'private-next-app-dir'\nexport const RSC_MOD_REF_PROXY_ALIAS = 'private-next-rsc-mod-ref-proxy'\nexport const RSC_ACTION_VALIDATE_ALIAS = 'private-next-rsc-action-validate'\nexport const RSC_ACTION_PROXY_ALIAS = 'private-next-rsc-server-reference'\nexport const RSC_CACHE_WRAPPER_ALIAS = 'private-next-rsc-cache-wrapper'\nexport const RSC_DYNAMIC_IMPORT_WRAPPER_ALIAS =\n 'private-next-rsc-track-dynamic-import'\nexport const RSC_ACTION_ENCRYPTION_ALIAS = 'private-next-rsc-action-encryption'\nexport const RSC_ACTION_CLIENT_WRAPPER_ALIAS =\n 'private-next-rsc-action-client-wrapper'\n\nexport const PUBLIC_DIR_MIDDLEWARE_CONFLICT = `You can not have a '_next' folder inside of your public folder. This conflicts with the internal '/_next' route. https://nextjs.org/docs/messages/public-next-folder-conflict`\n\nexport const SSG_GET_INITIAL_PROPS_CONFLICT = `You can not use getInitialProps with getStaticProps. To use SSG, please remove your getInitialProps`\n\nexport const SERVER_PROPS_GET_INIT_PROPS_CONFLICT = `You can not use getInitialProps with getServerSideProps. Please remove getInitialProps.`\n\nexport const SERVER_PROPS_SSG_CONFLICT = `You can not use getStaticProps or getStaticPaths with getServerSideProps. To use SSG, please remove getServerSideProps`\n\nexport const STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR = `can not have getInitialProps/getServerSideProps, https://nextjs.org/docs/messages/404-get-initial-props`\n\nexport const SERVER_PROPS_EXPORT_ERROR = `pages with \\`getServerSideProps\\` can not be exported. See more info here: https://nextjs.org/docs/messages/gssp-export`\n\nexport const GSP_NO_RETURNED_VALUE =\n 'Your `getStaticProps` function did not return an object. Did you forget to add a `return`?'\nexport const GSSP_NO_RETURNED_VALUE =\n 'Your `getServerSideProps` function did not return an object. Did you forget to add a `return`?'\n\nexport const UNSTABLE_REVALIDATE_RENAME_ERROR =\n 'The `unstable_revalidate` property is available for general use.\\n' +\n 'Please use `revalidate` instead.'\n\nexport const GSSP_COMPONENT_MEMBER_ERROR = `can not be attached to a page's component and must be exported from the page. See more info here: https://nextjs.org/docs/messages/gssp-component-member`\n\nexport const NON_STANDARD_NODE_ENV = `You are using a non-standard \"NODE_ENV\" value in your environment. This creates inconsistencies in the project and is strongly advised against. Read more: https://nextjs.org/docs/messages/non-standard-node-env`\n\nexport const SSG_FALLBACK_EXPORT_ERROR = `Pages with \\`fallback\\` enabled in \\`getStaticPaths\\` can not be exported. See more info here: https://nextjs.org/docs/messages/ssg-fallback-true-export`\n\nexport const ESLINT_DEFAULT_DIRS = ['app', 'pages', 'components', 'lib', 'src']\n\nexport const SERVER_RUNTIME: Record = {\n edge: 'edge',\n experimentalEdge: 'experimental-edge',\n nodejs: 'nodejs',\n}\n\nexport const WEB_SOCKET_MAX_RECONNECTIONS = 12\n\n/**\n * The names of the webpack layers. These layers are the primitives for the\n * webpack chunks.\n */\nconst WEBPACK_LAYERS_NAMES = {\n /**\n * The layer for the shared code between the client and server bundles.\n */\n shared: 'shared',\n /**\n * The layer for server-only runtime and picking up `react-server` export conditions.\n * Including app router RSC pages and app router custom routes and metadata routes.\n */\n reactServerComponents: 'rsc',\n /**\n * Server Side Rendering layer for app (ssr).\n */\n serverSideRendering: 'ssr',\n /**\n * The browser client bundle layer for actions.\n */\n actionBrowser: 'action-browser',\n /**\n * The Node.js bundle layer for the API routes.\n */\n apiNode: 'api-node',\n /**\n * The Edge Lite bundle layer for the API routes.\n */\n apiEdge: 'api-edge',\n /**\n * The layer for the middleware code.\n */\n middleware: 'middleware',\n /**\n * The layer for the instrumentation hooks.\n */\n instrument: 'instrument',\n /**\n * The layer for assets on the edge.\n */\n edgeAsset: 'edge-asset',\n /**\n * The browser client bundle layer for App directory.\n */\n appPagesBrowser: 'app-pages-browser',\n /**\n * The browser client bundle layer for Pages directory.\n */\n pagesDirBrowser: 'pages-dir-browser',\n /**\n * The Edge Lite bundle layer for Pages directory.\n */\n pagesDirEdge: 'pages-dir-edge',\n /**\n * The Node.js bundle layer for Pages directory.\n */\n pagesDirNode: 'pages-dir-node',\n} as const\n\nexport type WebpackLayerName =\n (typeof WEBPACK_LAYERS_NAMES)[keyof typeof WEBPACK_LAYERS_NAMES]\n\nconst WEBPACK_LAYERS = {\n ...WEBPACK_LAYERS_NAMES,\n GROUP: {\n builtinReact: [\n WEBPACK_LAYERS_NAMES.reactServerComponents,\n WEBPACK_LAYERS_NAMES.actionBrowser,\n ],\n serverOnly: [\n WEBPACK_LAYERS_NAMES.reactServerComponents,\n WEBPACK_LAYERS_NAMES.actionBrowser,\n WEBPACK_LAYERS_NAMES.instrument,\n WEBPACK_LAYERS_NAMES.middleware,\n ],\n neutralTarget: [\n // pages api\n WEBPACK_LAYERS_NAMES.apiNode,\n WEBPACK_LAYERS_NAMES.apiEdge,\n ],\n clientOnly: [\n WEBPACK_LAYERS_NAMES.serverSideRendering,\n WEBPACK_LAYERS_NAMES.appPagesBrowser,\n ],\n bundled: [\n WEBPACK_LAYERS_NAMES.reactServerComponents,\n WEBPACK_LAYERS_NAMES.actionBrowser,\n WEBPACK_LAYERS_NAMES.serverSideRendering,\n WEBPACK_LAYERS_NAMES.appPagesBrowser,\n WEBPACK_LAYERS_NAMES.shared,\n WEBPACK_LAYERS_NAMES.instrument,\n WEBPACK_LAYERS_NAMES.middleware,\n ],\n appPages: [\n // app router pages and layouts\n WEBPACK_LAYERS_NAMES.reactServerComponents,\n WEBPACK_LAYERS_NAMES.serverSideRendering,\n WEBPACK_LAYERS_NAMES.appPagesBrowser,\n WEBPACK_LAYERS_NAMES.actionBrowser,\n ],\n },\n}\n\nconst WEBPACK_RESOURCE_QUERIES = {\n edgeSSREntry: '__next_edge_ssr_entry__',\n metadata: '__next_metadata__',\n metadataRoute: '__next_metadata_route__',\n metadataImageMeta: '__next_metadata_image_meta__',\n}\n\nexport { WEBPACK_LAYERS, WEBPACK_RESOURCE_QUERIES }\n","/**\n * Describes the different fallback modes that a given page can have.\n */\nexport const enum FallbackMode {\n /**\n * A BLOCKING_STATIC_RENDER fallback will block the request until the page is\n * generated. No fallback page will be rendered, and users will have to wait\n * to render the page.\n */\n BLOCKING_STATIC_RENDER = 'BLOCKING_STATIC_RENDER',\n\n /**\n * When set to PRERENDER, a fallback page will be sent to users in place of\n * forcing them to wait for the page to be generated. This allows the user to\n * see a rendered page earlier.\n */\n PRERENDER = 'PRERENDER',\n\n /**\n * When set to NOT_FOUND, pages that are not already prerendered will result\n * in a not found response.\n */\n NOT_FOUND = 'NOT_FOUND',\n}\n\n/**\n * The fallback value returned from the `getStaticPaths` function.\n */\nexport type GetStaticPathsFallback = boolean | 'blocking'\n\n/**\n * Parses the fallback field from the prerender manifest.\n *\n * @param fallbackField The fallback field from the prerender manifest.\n * @returns The fallback mode.\n */\nexport function parseFallbackField(\n fallbackField: string | boolean | null | undefined\n): FallbackMode | undefined {\n if (typeof fallbackField === 'string') {\n return FallbackMode.PRERENDER\n } else if (fallbackField === null) {\n return FallbackMode.BLOCKING_STATIC_RENDER\n } else if (fallbackField === false) {\n return FallbackMode.NOT_FOUND\n } else if (fallbackField === undefined) {\n return undefined\n } else {\n throw new Error(\n `Invalid fallback option: ${fallbackField}. Fallback option must be a string, null, undefined, or false.`\n )\n }\n}\n\nexport function fallbackModeToFallbackField(\n fallback: FallbackMode,\n page: string | undefined\n): string | false | null {\n switch (fallback) {\n case FallbackMode.BLOCKING_STATIC_RENDER:\n return null\n case FallbackMode.NOT_FOUND:\n return false\n case FallbackMode.PRERENDER:\n if (!page) {\n throw new Error(\n `Invariant: expected a page to be provided when fallback mode is \"${fallback}\"`\n )\n }\n\n return page\n default:\n throw new Error(`Invalid fallback mode: ${fallback}`)\n }\n}\n\n/**\n * Parses the fallback from the static paths result.\n *\n * @param result The result from the static paths function.\n * @returns The fallback mode.\n */\nexport function parseStaticPathsResult(\n result: GetStaticPathsFallback\n): FallbackMode {\n if (result === true) {\n return FallbackMode.PRERENDER\n } else if (result === 'blocking') {\n return FallbackMode.BLOCKING_STATIC_RENDER\n } else {\n return FallbackMode.NOT_FOUND\n }\n}\n","'use client'\n\nimport type { ReactNode } from 'react'\nimport {\n METADATA_BOUNDARY_NAME,\n VIEWPORT_BOUNDARY_NAME,\n OUTLET_BOUNDARY_NAME,\n ROOT_LAYOUT_BOUNDARY_NAME,\n} from './boundary-constants'\n\n// We use a namespace object to allow us to recover the name of the function\n// at runtime even when production bundling/minification is used.\nconst NameSpace = {\n [METADATA_BOUNDARY_NAME]: function ({ children }: { children: ReactNode }) {\n return children\n },\n [VIEWPORT_BOUNDARY_NAME]: function ({ children }: { children: ReactNode }) {\n return children\n },\n [OUTLET_BOUNDARY_NAME]: function ({ children }: { children: ReactNode }) {\n return children\n },\n [ROOT_LAYOUT_BOUNDARY_NAME]: function ({\n children,\n }: {\n children: ReactNode\n }) {\n return children\n },\n}\n\nexport const MetadataBoundary =\n // We use slice(0) to trick the bundler into not inlining/minifying the function\n // so it retains the name inferred from the namespace object\n NameSpace[METADATA_BOUNDARY_NAME.slice(0) as typeof METADATA_BOUNDARY_NAME]\n\nexport const ViewportBoundary =\n // We use slice(0) to trick the bundler into not inlining/minifying the function\n // so it retains the name inferred from the namespace object\n NameSpace[VIEWPORT_BOUNDARY_NAME.slice(0) as typeof VIEWPORT_BOUNDARY_NAME]\n\nexport const OutletBoundary =\n // We use slice(0) to trick the bundler into not inlining/minifying the function\n // so it retains the name inferred from the namespace object\n NameSpace[OUTLET_BOUNDARY_NAME.slice(0) as typeof OUTLET_BOUNDARY_NAME]\n\nexport const RootLayoutBoundary =\n // We use slice(0) to trick the bundler into not inlining/minifying the function\n // so it retains the name inferred from the namespace object\n NameSpace[\n ROOT_LAYOUT_BOUNDARY_NAME.slice(0) as typeof ROOT_LAYOUT_BOUNDARY_NAME\n ]\n","'use client'\n\n// This is a client component that only renders during SSR,\n// but will be replaced during streaming with an icon insertion script tag.\n// We don't want it to be presented anywhere so it's only visible during streaming,\n// right after the icon meta tags so that browser can pick it up as soon as it's rendered.\n// Note: we don't just emit the script here because we only need the script if it's not in the head,\n// and we need it to be hoistable alongside the other metadata but sync scripts are not hoistable.\nexport const IconMark = () => {\n if (typeof window !== 'undefined') {\n return null\n }\n return \n}\n","import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from \"react/jsx-runtime\";\nimport React, { Suspense, cache } from 'react';\nimport { createSelectedMetadata, resolveMetadata, resolveViewport } from './resolve-metadata';\nimport { isHTTPAccessFallbackError } from '../../client/components/http-access-fallback/http-access-fallback';\nimport { createServerSearchParamsForMetadata } from '../../server/request/search-params';\nimport { createServerPathnameForMetadata } from '../../server/request/pathname';\nimport { MetadataBoundary, ViewportBoundary, OutletBoundary } from '../framework/boundary-components';\nimport { createMetadataElements, createViewportElements } from './metadata-elements';\n// Use a promise to share the status of the metadata resolving,\n// returning two components `MetadataTree` and `MetadataOutlet`\n// `MetadataTree` is the one that will be rendered at first in the content sequence for metadata tags.\n// `MetadataOutlet` is the one that will be rendered under error boundaries for metadata resolving errors.\n// In this way we can let the metadata tags always render successfully,\n// and the error will be caught by the error boundary and trigger fallbacks.\nexport function createMetadataComponents({ tree, pathname, parsedQuery, metadataContext, interpolatedParams, errorType, serveStreamingMetadata }) {\n const searchParams = createServerSearchParamsForMetadata(parsedQuery);\n const pathnameForMetadata = createServerPathnameForMetadata(pathname);\n async function Viewport() {\n const tags = await getResolvedViewport(tree, searchParams, interpolatedParams, errorType).catch((viewportErr)=>{\n if (!errorType && isHTTPAccessFallbackError(viewportErr)) {\n return getNotFoundViewport(tree, searchParams, interpolatedParams).catch(()=>null);\n }\n // We're going to throw the error from the metadata outlet so we just render null here instead\n return null;\n });\n return tags;\n }\n Viewport.displayName = 'Next.Viewport';\n function ViewportWrapper() {\n return /*#__PURE__*/ _jsx(ViewportBoundary, {\n children: /*#__PURE__*/ _jsx(Viewport, {})\n });\n }\n // Metadata resolution must start while rendering so it observes the current\n // work unit store.\n function getSelectedMetadata() {\n return getResolvedMetadata(tree, pathnameForMetadata, searchParams, interpolatedParams, metadataContext, errorType).catch((metadataErr)=>{\n if (!errorType && isHTTPAccessFallbackError(metadataErr)) {\n return getNotFoundMetadata(tree, pathnameForMetadata, searchParams, interpolatedParams, metadataContext).catch(()=>null);\n }\n // We're going to throw the error from the metadata outlet so we just render null here instead\n return null;\n });\n }\n async function Metadata() {\n return await getSelectedMetadata();\n }\n Metadata.displayName = 'Next.Metadata';\n function MetadataBlocker() {\n return serveStreamingMetadata ? null : getSelectedMetadata().then(()=>null);\n }\n function MetadataWrapper() {\n // Keep the same component structure in streaming and blocking renders.\n // The blocker only holds the shell open when metadata must not stream.\n // React requires top-level suspenseful metadata to be nested under a host\n // element. Otherwise it becomes part of the document preamble and blocks\n // shell flushing instead of streaming. Metadata tags are hoisted out, so\n // this hidden wrapper remains empty.\n return /*#__PURE__*/ _jsxs(MetadataBoundary, {\n children: [\n /*#__PURE__*/ _jsx(\"div\", {\n hidden: true,\n children: /*#__PURE__*/ _jsx(Suspense, {\n name: \"Next.Metadata\",\n children: /*#__PURE__*/ _jsx(Metadata, {})\n })\n }),\n /*#__PURE__*/ _jsx(MetadataBlocker, {})\n ]\n });\n }\n function MetadataOutlet() {\n const pendingOutlet = Promise.all([\n getResolvedMetadata(tree, pathnameForMetadata, searchParams, interpolatedParams, metadataContext, errorType),\n getResolvedViewport(tree, searchParams, interpolatedParams, errorType)\n ]).then(()=>null);\n if (!serveStreamingMetadata) {\n return /*#__PURE__*/ _jsx(OutletBoundary, {\n children: pendingOutlet\n });\n }\n return /*#__PURE__*/ _jsx(OutletBoundary, {\n children: /*#__PURE__*/ _jsx(Suspense, {\n name: \"Next.MetadataOutlet\",\n children: pendingOutlet\n })\n });\n }\n MetadataOutlet.displayName = 'Next.MetadataOutlet';\n return {\n Viewport: ViewportWrapper,\n Metadata: MetadataWrapper,\n MetadataOutlet\n };\n}\nconst getResolvedMetadata = cache(getResolvedMetadataImpl);\nasync function getResolvedMetadataImpl(tree, pathname, searchParams, interpolatedParams, metadataContext, errorType) {\n const errorConvention = errorType === 'redirect' ? undefined : errorType;\n return renderMetadata(tree, pathname, searchParams, interpolatedParams, metadataContext, errorConvention);\n}\nconst getNotFoundMetadata = cache(getNotFoundMetadataImpl);\nasync function getNotFoundMetadataImpl(tree, pathname, searchParams, interpolatedParams, metadataContext) {\n const notFoundErrorConvention = 'not-found';\n return renderMetadata(tree, pathname, searchParams, interpolatedParams, metadataContext, notFoundErrorConvention);\n}\nconst getResolvedViewport = cache(getResolvedViewportImpl);\nasync function getResolvedViewportImpl(tree, searchParams, interpolatedParams, errorType) {\n const errorConvention = errorType === 'redirect' ? undefined : errorType;\n return renderViewport(tree, searchParams, interpolatedParams, errorConvention);\n}\nconst getNotFoundViewport = cache(getNotFoundViewportImpl);\nasync function getNotFoundViewportImpl(tree, searchParams, interpolatedParams) {\n const notFoundErrorConvention = 'not-found';\n return renderViewport(tree, searchParams, interpolatedParams, notFoundErrorConvention);\n}\nasync function renderMetadata(tree, pathname, searchParams, interpolatedParams, metadataContext, errorConvention) {\n const resolvedMetadata = await resolveMetadata(tree, pathname, searchParams, errorConvention, interpolatedParams, metadataContext);\n return /*#__PURE__*/ _jsx(_Fragment, {\n children: createMetadataElements(createSelectedMetadata(resolvedMetadata))\n });\n}\nasync function renderViewport(tree, searchParams, interpolatedParams, errorConvention) {\n const resolvedViewport = await resolveViewport(tree, searchParams, errorConvention, interpolatedParams);\n return /*#__PURE__*/ _jsx(_Fragment, {\n children: createViewportElements(resolvedViewport)\n });\n}\n\n//# sourceMappingURL=metadata.js.map","import { DEFAULT_SEGMENT_KEY } from '../../shared/lib/segment';\nexport async function getLayoutOrPageModule(loaderTree) {\n const { layout, page, defaultPage } = loaderTree[2];\n const isLayout = typeof layout !== 'undefined';\n const isPage = typeof page !== 'undefined';\n const isDefaultPage = typeof defaultPage !== 'undefined' && loaderTree[0] === DEFAULT_SEGMENT_KEY;\n let mod = undefined;\n let modType = undefined;\n let filePath = undefined;\n if (isLayout) {\n mod = await layout[0]();\n modType = 'layout';\n filePath = layout[1];\n } else if (isPage) {\n mod = await page[0]();\n modType = 'page';\n filePath = page[1];\n } else if (isDefaultPage) {\n mod = await defaultPage[0]();\n modType = 'page';\n filePath = defaultPage[1];\n }\n return {\n mod,\n modType,\n filePath\n };\n}\nexport async function getComponentTypeModule(loaderTree, moduleType) {\n const { [moduleType]: module } = loaderTree[2];\n if (typeof module !== 'undefined') {\n return await module[0]();\n }\n return undefined;\n}\n\n//# sourceMappingURL=app-dir-module.js.map","import { extractInfoFromServerReferenceId } from '../shared/lib/server-reference-info';\nexport function isServerReference(value) {\n return value.$$typeof === Symbol.for('react.server.reference');\n}\nexport function isUseCacheFunction(value) {\n if (!isServerReference(value)) {\n return false;\n }\n const { type } = extractInfoFromServerReferenceId(value.$$id);\n return type === 'use-cache';\n}\nexport function getUseCacheFunctionInfo(value) {\n if (!isServerReference(value)) {\n return null;\n }\n const info = extractInfoFromServerReferenceId(value.$$id);\n return info.type === 'use-cache' ? info : null;\n}\nexport function isClientReference(mod) {\n const defaultExport = (mod == null ? void 0 : mod.default) || mod;\n return (defaultExport == null ? void 0 : defaultExport.$$typeof) === Symbol.for('react.client.reference');\n}\n\n//# sourceMappingURL=client-and-server-references.js.map","function resolveArray(value) {\n if (Array.isArray(value)) {\n return value;\n }\n return [\n value\n ];\n}\nfunction resolveAsArrayOrUndefined(value) {\n if (typeof value === 'undefined' || value === null) {\n return undefined;\n }\n return resolveArray(value);\n}\nfunction getOrigin(url) {\n let origin = undefined;\n if (typeof url === 'string') {\n try {\n url = new URL(url);\n origin = url.origin;\n } catch {}\n }\n return origin;\n}\nexport { resolveAsArrayOrUndefined, resolveArray, getOrigin };\n\n//# sourceMappingURL=utils.js.map","import path from '../../../shared/lib/isomorphic/path';\nfunction isStringOrURL(icon) {\n return typeof icon === 'string' || icon instanceof URL;\n}\nfunction createLocalMetadataBase() {\n // Check if experimental HTTPS is enabled\n const isExperimentalHttps = Boolean(process.env.__NEXT_EXPERIMENTAL_HTTPS);\n const protocol = isExperimentalHttps ? 'https' : 'http';\n return new URL(`${protocol}://localhost:${process.env.PORT || 3000}`);\n}\nfunction getPreviewDeploymentUrl() {\n const origin = process.env.VERCEL_BRANCH_URL || process.env.VERCEL_URL;\n return origin ? new URL(`https://${origin}`) : undefined;\n}\nfunction getProductionDeploymentUrl() {\n const origin = process.env.VERCEL_PROJECT_PRODUCTION_URL;\n return origin ? new URL(`https://${origin}`) : undefined;\n}\n/**\n * Given an optional user-provided metadataBase, this determines what the metadataBase should\n * fallback to. Specifically:\n * - In dev, it should always be localhost\n * - In Vercel preview builds, it should be the preview build ID\n * - In start, it should be the user-provided metadataBase value. Otherwise,\n * it'll fall back to the Vercel production deployment, and localhost as a last resort.\n */ export function getSocialImageMetadataBaseFallback(metadataBase) {\n const defaultMetadataBase = createLocalMetadataBase();\n const previewDeploymentUrl = getPreviewDeploymentUrl();\n const productionDeploymentUrl = getProductionDeploymentUrl();\n let fallbackMetadataBase;\n if (process.env.NODE_ENV === 'development') {\n fallbackMetadataBase = defaultMetadataBase;\n } else {\n fallbackMetadataBase = process.env.NODE_ENV === 'production' && previewDeploymentUrl && process.env.VERCEL_ENV === 'preview' ? previewDeploymentUrl : metadataBase || productionDeploymentUrl || defaultMetadataBase;\n }\n return fallbackMetadataBase;\n}\nfunction resolveUrl(url, metadataBase) {\n if (url instanceof URL) return url;\n if (!url) return null;\n try {\n // If we can construct a URL instance from url, ignore metadataBase\n const parsedUrl = new URL(url);\n return parsedUrl;\n } catch {}\n if (!metadataBase) {\n metadataBase = createLocalMetadataBase();\n }\n // Handle relative or absolute paths\n const pathname = metadataBase.pathname || '';\n const joinedPath = path.posix.join(pathname, url);\n return new URL(joinedPath, metadataBase);\n}\n// Resolve with `pathname` if `url` is a relative path.\nfunction resolveRelativeUrl(url, pathname) {\n if (typeof url === 'string' && url.startsWith('./')) {\n return path.posix.resolve(pathname, url);\n }\n return url;\n}\n// The regex is matching logic from packages/next/src/lib/load-custom-routes.ts\nconst FILE_REGEX = /^(?:\\/((?!\\.well-known(?:\\/.*)?)(?:[^/]+\\/)*[^/]+\\.\\w+))(\\/?|$)/i;\nfunction isFilePattern(pathname) {\n return FILE_REGEX.test(pathname);\n}\n// Resolve `pathname` if `url` is a relative path the compose with `metadataBase`.\nfunction resolveAbsoluteUrlWithPathname(url, metadataBase, pathname, { trailingSlash }) {\n // Resolve url with pathname that always starts with `/`\n url = resolveRelativeUrl(url, pathname);\n // Convert string url or URL instance to absolute url string,\n // if there's case needs to be resolved with metadataBase\n let resolvedUrl = '';\n const result = metadataBase ? resolveUrl(url, metadataBase) : url;\n if (typeof result === 'string') {\n resolvedUrl = result;\n } else {\n resolvedUrl = result.pathname === '/' && result.searchParams.size === 0 ? result.origin : result.href;\n }\n // Add trailing slash if it's enabled for urls matches the condition\n // - Not external, same origin with metadataBase\n // - Doesn't have query\n if (trailingSlash && !resolvedUrl.endsWith('/')) {\n let isRelative = resolvedUrl.startsWith('/');\n let hasQuery = resolvedUrl.includes('?');\n let isExternal = false;\n let isFileUrl = false;\n if (!isRelative) {\n try {\n const parsedUrl = new URL(resolvedUrl);\n isExternal = metadataBase != null && parsedUrl.origin !== metadataBase.origin;\n isFileUrl = isFilePattern(parsedUrl.pathname);\n } catch {\n // If it's not a valid URL, treat it as external\n isExternal = true;\n }\n if (// Do not apply trailing slash for file like urls, aligning with the behavior with `trailingSlash`\n !isFileUrl && !isExternal && !hasQuery) return `${resolvedUrl}/`;\n }\n }\n return resolvedUrl;\n}\nexport { isStringOrURL, resolveUrl, resolveRelativeUrl, resolveAbsoluteUrlWithPathname, };\n\n//# sourceMappingURL=resolve-url.js.map","function resolveTitleTemplate(template, title) {\n return template ? template.replace(/%s/g, title) : title;\n}\nexport function resolveTitle(title, stashedTemplate) {\n let resolved;\n const template = typeof title !== 'string' && title && 'template' in title ? title.template : null;\n if (typeof title === 'string') {\n resolved = resolveTitleTemplate(stashedTemplate, title);\n } else if (title) {\n if ('default' in title) {\n resolved = resolveTitleTemplate(stashedTemplate, title.default);\n }\n if ('absolute' in title && title.absolute) {\n resolved = title.absolute;\n }\n }\n if (title && typeof title !== 'string') {\n return {\n template,\n absolute: resolved || ''\n };\n } else {\n return {\n absolute: resolved || title || '',\n template\n };\n }\n}\n\n//# sourceMappingURL=resolve-title.js.map","import { getSegmentParam } from '../../shared/lib/router/utils/get-segment-param';\nimport { workAsyncStorage } from '../../server/app-render/work-async-storage.external';\nimport { InvariantError } from '../../shared/lib/invariant-error';\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport 'server-only';\nimport { cache } from 'react';\nimport { createDefaultMetadata, createDefaultViewport } from './default-metadata';\nimport { getComponentTypeModule, getLayoutOrPageModule } from '../../server/lib/app-dir-module';\nimport { PAGE_SEGMENT_KEY } from '../../shared/lib/segment';\nimport * as Log from '../../build/output/log';\nimport { createServerParamsForMetadata } from '../../server/request/params';\nimport { getUseCacheFunctionInfo } from '../client-and-server-references';\nimport { createLazyResult } from '../../server/lib/lazy-result';\nimport { createSelectedMetadata, getDefinedMetadata, getDefinedViewport, isFavicon, mergeMetadata, mergeViewport, postProcessMetadata, resolveStaticMetadata } from './metadata-resolution-primitives';\nexport { createSelectedMetadata };\n// [layout.metadata, static files metadata] -> ... -> [page.metadata, static files metadata]\nasync function collectMetadata({ tree, metadataItems, errorMetadataItem, props, route, errorConvention }) {\n let mod;\n let modType;\n const hasErrorConventionComponent = Boolean(errorConvention && tree[2][errorConvention]);\n if (errorConvention) {\n mod = await getComponentTypeModule(tree, 'layout');\n modType = errorConvention;\n } else {\n const { mod: layoutOrPageMod, modType: layoutOrPageModType } = await getLayoutOrPageModule(tree);\n mod = layoutOrPageMod;\n modType = layoutOrPageModType;\n }\n if (modType) {\n route += `/${modType}`;\n }\n const staticFilesMetadata = await resolveStaticMetadata(tree[2], props);\n const metadataExport = mod ? getDefinedMetadata(mod, props, {\n route\n }) : null;\n metadataItems.push([\n metadataExport,\n staticFilesMetadata\n ]);\n if (hasErrorConventionComponent && errorConvention) {\n const errorMod = await getComponentTypeModule(tree, errorConvention);\n const errorMetadataExport = errorMod ? getDefinedMetadata(errorMod, props, {\n route\n }) : null;\n errorMetadataItem[0] = errorMetadataExport;\n errorMetadataItem[1] = staticFilesMetadata;\n }\n}\n// [layout.metadata, static files metadata] -> ... -> [page.metadata, static files metadata]\nasync function collectViewport({ tree, viewportItems, errorViewportItemRef, props, route, errorConvention }) {\n let mod;\n let modType;\n const hasErrorConventionComponent = Boolean(errorConvention && tree[2][errorConvention]);\n if (errorConvention) {\n mod = await getComponentTypeModule(tree, 'layout');\n modType = errorConvention;\n } else {\n const { mod: layoutOrPageMod, modType: layoutOrPageModType } = await getLayoutOrPageModule(tree);\n mod = layoutOrPageMod;\n modType = layoutOrPageModType;\n }\n if (modType) {\n route += `/${modType}`;\n }\n const viewportExport = mod ? getDefinedViewport(mod, props, {\n route\n }) : null;\n viewportItems.push(viewportExport);\n if (hasErrorConventionComponent && errorConvention) {\n const errorMod = await getComponentTypeModule(tree, errorConvention);\n const errorViewportExport = errorMod ? getDefinedViewport(errorMod, props, {\n route\n }) : null;\n errorViewportItemRef.current = errorViewportExport;\n }\n}\nconst resolveMetadataItems = cache(async function(tree, searchParams, errorConvention, interpolatedParams) {\n const parentParams = {};\n const metadataItems = [];\n const errorMetadataItem = [\n null,\n null\n ];\n const treePrefix = undefined;\n return resolveMetadataItemsImpl(metadataItems, tree, treePrefix, parentParams, null, searchParams, errorConvention, errorMetadataItem, interpolatedParams);\n});\nasync function resolveMetadataItemsImpl(metadataItems, tree, /** Provided tree can be nested subtree, this argument says what is the path of such subtree */ treePrefix, parentParams, parentOptionalCatchAllParamName, searchParams, errorConvention, errorMetadataItem, interpolatedParams) {\n const [segment, parallelRoutes, { page }] = tree;\n const currentTreePrefix = treePrefix && treePrefix.length ? [\n ...treePrefix,\n segment\n ] : [\n segment\n ];\n const isPage = typeof page !== 'undefined';\n // Handle dynamic segment params.\n let currentParams = parentParams;\n const segmentParam = getSegmentParam(segment);\n if (segmentParam) {\n const value = interpolatedParams[segmentParam.paramName];\n if (value !== null && value !== undefined) {\n currentParams = {\n ...parentParams,\n [segmentParam.paramName]: value\n };\n }\n }\n // Track optional catch-all params with no value (see comment in\n // create-component-tree.tsx for full explanation).\n const optionalCatchAllParamName = (segmentParam == null ? void 0 : segmentParam.paramType) === 'optional-catchall' && (interpolatedParams[segmentParam.paramName] === null || interpolatedParams[segmentParam.paramName] === undefined) ? segmentParam.paramName : parentOptionalCatchAllParamName;\n const params = createServerParamsForMetadata(currentParams, optionalCatchAllParamName);\n const props = isPage ? {\n params,\n searchParams\n } : {\n params\n };\n await collectMetadata({\n tree,\n metadataItems,\n errorMetadataItem,\n errorConvention,\n props,\n route: currentTreePrefix// __PAGE__ shouldn't be shown in a route\n .filter((s)=>s !== PAGE_SEGMENT_KEY).join('/')\n });\n for(const key in parallelRoutes){\n const childTree = parallelRoutes[key];\n await resolveMetadataItemsImpl(metadataItems, childTree, currentTreePrefix, currentParams, optionalCatchAllParamName, searchParams, errorConvention, errorMetadataItem, interpolatedParams);\n }\n if (Object.keys(parallelRoutes).length === 0 && errorConvention) {\n // If there are no parallel routes, place error metadata as the last item.\n // e.g. layout -> layout -> not-found\n metadataItems.push(errorMetadataItem);\n }\n return metadataItems;\n}\nconst resolveViewportItems = cache(async function(tree, searchParams, errorConvention, interpolatedParams) {\n const parentParams = {};\n const viewportItems = [];\n const errorViewportItemRef = {\n current: null\n };\n const treePrefix = undefined;\n return resolveViewportItemsImpl(viewportItems, tree, treePrefix, parentParams, null, searchParams, errorConvention, errorViewportItemRef, interpolatedParams);\n});\nasync function resolveViewportItemsImpl(viewportItems, tree, /** Provided tree can be nested subtree, this argument says what is the path of such subtree */ treePrefix, parentParams, parentOptionalCatchAllParamName, searchParams, errorConvention, errorViewportItemRef, interpolatedParams) {\n const [segment, parallelRoutes, { page }] = tree;\n const currentTreePrefix = treePrefix && treePrefix.length ? [\n ...treePrefix,\n segment\n ] : [\n segment\n ];\n const isPage = typeof page !== 'undefined';\n // Handle dynamic segment params.\n let currentParams = parentParams;\n const segmentParam = getSegmentParam(segment);\n if (segmentParam) {\n const value = interpolatedParams[segmentParam.paramName];\n if (value !== null && value !== undefined) {\n currentParams = {\n ...parentParams,\n [segmentParam.paramName]: value\n };\n }\n }\n // Track optional catch-all params with no value (see comment in\n // create-component-tree.tsx for full explanation).\n const optionalCatchAllParamName = (segmentParam == null ? void 0 : segmentParam.paramType) === 'optional-catchall' && (interpolatedParams[segmentParam.paramName] === null || interpolatedParams[segmentParam.paramName] === undefined) ? segmentParam.paramName : parentOptionalCatchAllParamName;\n const params = createServerParamsForMetadata(currentParams, optionalCatchAllParamName);\n let layerProps;\n if (isPage) {\n layerProps = {\n params,\n searchParams\n };\n } else {\n layerProps = {\n params\n };\n }\n await collectViewport({\n tree,\n viewportItems,\n errorViewportItemRef,\n errorConvention,\n props: layerProps,\n route: currentTreePrefix// __PAGE__ shouldn't be shown in a route\n .filter((s)=>s !== PAGE_SEGMENT_KEY).join('/')\n });\n for(const key in parallelRoutes){\n const childTree = parallelRoutes[key];\n await resolveViewportItemsImpl(viewportItems, childTree, currentTreePrefix, currentParams, optionalCatchAllParamName, searchParams, errorConvention, errorViewportItemRef, interpolatedParams);\n }\n if (Object.keys(parallelRoutes).length === 0 && errorConvention) {\n // If there are no parallel routes, place error metadata as the last item.\n // e.g. layout -> layout -> not-found\n viewportItems.push(errorViewportItemRef.current);\n }\n return viewportItems;\n}\nfunction prerenderMetadata(metadataItems) {\n // If the index is a function then it is a resolver and the next slot\n // is the corresponding result. If the index is not a function it is the result\n // itself.\n const resolversAndResults = [];\n for(let i = 0; i < metadataItems.length; i++){\n const metadataExport = metadataItems[i][0];\n getResult(resolversAndResults, metadataExport);\n }\n return resolversAndResults;\n}\nfunction prerenderViewport(viewportItems) {\n // If the index is a function then it is a resolver and the next slot\n // is the corresponding result. If the index is not a function it is the result\n // itself.\n const resolversAndResults = [];\n for(let i = 0; i < viewportItems.length; i++){\n const viewportExport = viewportItems[i];\n getResult(resolversAndResults, viewportExport);\n }\n return resolversAndResults;\n}\nconst noop = ()=>{};\nfunction getResult(resolversAndResults, exportForResult) {\n if (typeof exportForResult === 'function') {\n // If the function is a 'use cache' function that uses the parent data as\n // the second argument, we don't want to eagerly execute it during\n // metadata/viewport pre-rendering, as the parent data might also be\n // computed from another 'use cache' function. To ensure that the hanging\n // input abort signal handling works in this case (i.e. the depending\n // function waits for the cached input to resolve while encoding its args),\n // they must be called sequentially. This can be accomplished by wrapping\n // the call in a lazy promise, so that the original function is only called\n // when the result is actually awaited.\n const useCacheFunctionInfo = getUseCacheFunctionInfo(exportForResult.$$original);\n if (useCacheFunctionInfo && useCacheFunctionInfo.usedArgs[1]) {\n const promise = new Promise((resolve)=>resolversAndResults.push(resolve));\n resolversAndResults.push(createLazyResult(async ()=>exportForResult(promise)));\n } else {\n let result;\n if (useCacheFunctionInfo) {\n resolversAndResults.push(noop);\n // @ts-expect-error We intentionally omit the parent argument, because\n // we know from the check above that the 'use cache' function does not\n // use it.\n result = exportForResult();\n } else {\n result = exportForResult(new Promise((resolve)=>resolversAndResults.push(resolve)));\n }\n resolversAndResults.push(result);\n if (result instanceof Promise) {\n // since we eager execute generateMetadata and\n // they can reject at anytime we need to ensure\n // we attach the catch handler right away to\n // prevent unhandled rejections crashing the process\n result.catch((err)=>{\n return {\n __nextError: err\n };\n });\n }\n }\n } else if (typeof exportForResult === 'object') {\n resolversAndResults.push(exportForResult);\n } else {\n resolversAndResults.push(null);\n }\n}\nfunction freezeInDev(obj) {\n if (process.env.NODE_ENV === 'development') {\n return require('../../shared/lib/deep-freeze').deepFreeze(obj);\n }\n return obj;\n}\nexport async function accumulateMetadata(route, metadataItems, pathname, metadataContext) {\n let resolvedMetadata = createDefaultMetadata();\n let titleTemplates = {\n title: null,\n twitter: null,\n openGraph: null\n };\n const buildState = {\n warnings: new Set()\n };\n let favicon;\n // Collect the static icons in the most leaf node,\n // since we don't collect all the static metadata icons in the parent segments.\n const leafSegmentStaticIcons = {\n icon: [],\n apple: []\n };\n const resolversAndResults = prerenderMetadata(metadataItems);\n let resultIndex = 0;\n for(let i = 0; i < metadataItems.length; i++){\n var _staticFilesMetadata_icon;\n const staticFilesMetadata = metadataItems[i][1];\n // Treat favicon as special case, it should be the first icon in the list\n // i <= 1 represents root layout, and if current page is also at root\n if (i <= 1 && isFavicon(staticFilesMetadata == null ? void 0 : (_staticFilesMetadata_icon = staticFilesMetadata.icon) == null ? void 0 : _staticFilesMetadata_icon[0])) {\n var _staticFilesMetadata_icon1;\n const iconMod = staticFilesMetadata == null ? void 0 : (_staticFilesMetadata_icon1 = staticFilesMetadata.icon) == null ? void 0 : _staticFilesMetadata_icon1.shift();\n if (i === 0) favicon = iconMod;\n }\n let pendingMetadata = resolversAndResults[resultIndex++];\n if (typeof pendingMetadata === 'function') {\n // This metadata item had a `generateMetadata` and\n // we need to provide the currently resolved metadata\n // to it before we continue;\n const resolveParentMetadata = pendingMetadata;\n // we know that the next item is a result if this item\n // was a resolver\n pendingMetadata = resolversAndResults[resultIndex++];\n resolveParentMetadata(freezeInDev(resolvedMetadata));\n }\n // Otherwise the item was either null or a static export\n let metadata;\n if (isPromiseLike(pendingMetadata)) {\n metadata = await pendingMetadata;\n } else {\n metadata = pendingMetadata;\n }\n resolvedMetadata = await mergeMetadata(route, pathname, {\n resolvedMetadata,\n metadata,\n metadataContext,\n staticFilesMetadata,\n titleTemplates,\n buildState,\n leafSegmentStaticIcons\n });\n // If the layout is the same layer with page, skip the leaf layout and leaf page\n // The leaf layout and page are the last two items\n if (i < metadataItems.length - 2) {\n var _resolvedMetadata_title, _resolvedMetadata_openGraph, _resolvedMetadata_twitter;\n titleTemplates = {\n title: ((_resolvedMetadata_title = resolvedMetadata.title) == null ? void 0 : _resolvedMetadata_title.template) || null,\n openGraph: ((_resolvedMetadata_openGraph = resolvedMetadata.openGraph) == null ? void 0 : _resolvedMetadata_openGraph.title.template) || null,\n twitter: ((_resolvedMetadata_twitter = resolvedMetadata.twitter) == null ? void 0 : _resolvedMetadata_twitter.title.template) || null\n };\n }\n }\n if (leafSegmentStaticIcons.icon.length > 0 || leafSegmentStaticIcons.apple.length > 0) {\n if (!resolvedMetadata.icons) {\n resolvedMetadata.icons = {\n icon: [],\n apple: []\n };\n if (leafSegmentStaticIcons.icon.length > 0) {\n resolvedMetadata.icons.icon.unshift(...leafSegmentStaticIcons.icon);\n }\n if (leafSegmentStaticIcons.apple.length > 0) {\n resolvedMetadata.icons.apple.unshift(...leafSegmentStaticIcons.apple);\n }\n }\n }\n // Only log warnings if there are any, and only once after the metadata resolving process is finished\n if (buildState.warnings.size > 0) {\n for (const warning of buildState.warnings){\n Log.warn(warning);\n }\n }\n return postProcessMetadata(resolvedMetadata, favicon, titleTemplates, metadataContext);\n}\nexport async function accumulateViewport(viewportItems) {\n let resolvedViewport = createDefaultViewport();\n const resolversAndResults = prerenderViewport(viewportItems);\n let i = 0;\n while(i < resolversAndResults.length){\n let pendingViewport = resolversAndResults[i++];\n if (typeof pendingViewport === 'function') {\n // this viewport item had a `generateViewport` and\n // we need to provide the currently resolved viewport\n // to it before we continue;\n const resolveParentViewport = pendingViewport;\n // we know that the next item is a result if this item\n // was a resolver\n pendingViewport = resolversAndResults[i++];\n resolveParentViewport(freezeInDev(resolvedViewport));\n }\n // Otherwise the item was either null or a static export\n let viewport;\n if (isPromiseLike(pendingViewport)) {\n viewport = await pendingViewport;\n } else {\n viewport = pendingViewport;\n }\n resolvedViewport = mergeViewport({\n resolvedViewport,\n viewport\n });\n }\n return resolvedViewport;\n}\n// Exposed API for metadata component, that directly resolve the loader tree and related context as resolved metadata.\nexport async function resolveMetadata(tree, pathname, searchParams, errorConvention, interpolatedParams, metadataContext) {\n const metadataItems = await resolveMetadataItems(tree, searchParams, errorConvention, interpolatedParams);\n const workStore = workAsyncStorage.getStore();\n if (!workStore) {\n throw new InvariantError('Expected workStore to be initialized');\n }\n return accumulateMetadata(workStore.route, metadataItems, pathname, metadataContext);\n}\n// Exposed API for viewport component, that directly resolve the loader tree and related context as resolved viewport.\nexport async function resolveViewport(tree, searchParams, errorConvention, interpolatedParams) {\n const viewportItems = await resolveViewportItems(tree, searchParams, errorConvention, interpolatedParams);\n return accumulateViewport(viewportItems);\n}\nfunction isPromiseLike(value) {\n return typeof value === 'object' && value !== null && typeof value.then === 'function';\n}\n\n//# sourceMappingURL=resolve-metadata.js.map","export function createDefaultViewport() {\n return {\n // name=viewport\n width: 'device-width',\n initialScale: 1,\n // visual metadata\n themeColor: null,\n colorScheme: null\n };\n}\nexport function createDefaultMetadata() {\n return {\n // Deprecated ones\n viewport: null,\n themeColor: null,\n colorScheme: null,\n metadataBase: null,\n // Other values are all null\n title: null,\n description: null,\n applicationName: null,\n authors: null,\n generator: null,\n keywords: null,\n referrer: null,\n creator: null,\n publisher: null,\n robots: null,\n manifest: null,\n alternates: {\n canonical: null,\n languages: null,\n media: null,\n types: null\n },\n icons: null,\n openGraph: null,\n twitter: null,\n verification: {},\n appleWebApp: null,\n formatDetection: null,\n itunes: null,\n facebook: null,\n pinterest: null,\n abstract: null,\n appLinks: null,\n archives: null,\n assets: null,\n bookmarks: null,\n category: null,\n classification: null,\n pagination: {\n previous: null,\n next: null\n },\n other: {}\n };\n}\n\n//# sourceMappingURL=default-metadata.js.map","export const ViewportMetaKeys = {\n width: 'width',\n height: 'height',\n initialScale: 'initial-scale',\n minimumScale: 'minimum-scale',\n maximumScale: 'maximum-scale',\n viewportFit: 'viewport-fit',\n userScalable: 'user-scalable',\n interactiveWidget: 'interactive-widget'\n};\nexport const IconKeys = [\n 'icon',\n 'shortcut',\n 'apple',\n 'other'\n];\n\n//# sourceMappingURL=constants.js.map","import { workAsyncStorage } from '../app-render/work-async-storage.external';\nimport { throwInvariantForMissingStore, workUnitAsyncStorage } from '../app-render/work-unit-async-storage.external';\nimport { makeDynamicHangingPromise, makeFallbackParamsHangingPromise, RENDER_STAGES_BY_DATA_KIND } from '../dynamic-rendering-utils';\nimport { InvariantError } from '../../shared/lib/invariant-error';\nexport function createServerPathnameForMetadata(underlyingPathname) {\n const workStore = workAsyncStorage.getStore();\n if (!workStore) {\n throw new InvariantError('Expected workStore to be initialized');\n }\n const workUnitStore = workUnitAsyncStorage.getStore();\n if (workUnitStore) {\n switch(workUnitStore.type){\n case 'prerender':\n case 'prerender-legacy':\n {\n return createPrerenderPathname(underlyingPathname, workStore, workUnitStore);\n }\n case 'prerender-client':\n case 'validation-client':\n throw new InvariantError('createServerPathnameForMetadata should not be called in client contexts.');\n case 'cache':\n case 'private-cache':\n case 'unstable-cache':\n throw new InvariantError('createServerPathnameForMetadata should not be called in cache contexts.');\n case 'build-time-generator':\n throw new InvariantError(`createServerPathnameForMetadata should not be called inside ${workUnitStore.functionName}.`);\n case 'prerender-runtime':\n {\n // TODO(app-shells): whether or not this is included in the shell\n // should depend on whether this route has params.\n // if there's no params, it can be included.\n // for now, we defensively exclude it to match the earlier pessimistic\n // behavior of always resolving in the PrefetchRuntime stage\n // (i.e. assuming that we have non-static params in the pathname)\n const { stagedRendering } = workUnitStore;\n const pathnameStage = RENDER_STAGES_BY_DATA_KIND.runtimeUrlData;\n if (stagedRendering) {\n return stagedRendering.delayUntilStage(pathnameStage, undefined, underlyingPathname);\n } else {\n if (workUnitStore.finalStage < pathnameStage) {\n return makeDynamicHangingPromise(workUnitStore.renderSignal, workStore.route, '`pathname`');\n } else {\n return createRenderPathname(underlyingPathname);\n }\n }\n }\n case 'request':\n // TODO(app-shells): this should be delayed if there's non-static params\n return createRenderPathname(underlyingPathname);\n default:\n workUnitStore;\n }\n }\n throwInvariantForMissingStore();\n}\nfunction createPrerenderPathname(underlyingPathname, workStore, prerenderStore) {\n switch(prerenderStore.type){\n case 'prerender':\n {\n const fallbackParams = prerenderStore.fallbackRouteParams;\n if (fallbackParams && fallbackParams.size > 0) {\n // The pathname depends on params, so we track it like a fallback params access.\n return makeFallbackParamsHangingPromise(prerenderStore.renderSignal, workStore.route, '`pathname`', prerenderStore);\n }\n break;\n }\n case 'prerender-legacy':\n break;\n default:\n prerenderStore;\n }\n // We don't have any fallback params so we have an entirely static safe params object\n return Promise.resolve(underlyingPathname);\n}\nfunction createRenderPathname(underlyingPathname) {\n return Promise.resolve(underlyingPathname);\n}\n\n//# sourceMappingURL=pathname.js.map","import { resolveAsArrayOrUndefined } from '../generate/utils';\nimport { resolveAbsoluteUrlWithPathname } from './resolve-url';\nfunction resolveAlternateUrl(url, metadataBase, pathname, metadataContext) {\n // If alter native url is an URL instance,\n // we treat it as a URL base and resolve with current pathname\n if (url instanceof URL) {\n const newUrl = new URL(pathname, url);\n url.searchParams.forEach((value, key)=>newUrl.searchParams.set(key, value));\n url = newUrl;\n }\n return resolveAbsoluteUrlWithPathname(url, metadataBase, pathname, metadataContext);\n}\nexport const resolveThemeColor = (themeColor)=>{\n var _resolveAsArrayOrUndefined;\n if (!themeColor) return null;\n const themeColorDescriptors = [];\n (_resolveAsArrayOrUndefined = resolveAsArrayOrUndefined(themeColor)) == null ? void 0 : _resolveAsArrayOrUndefined.forEach((descriptor)=>{\n if (typeof descriptor === 'string') themeColorDescriptors.push({\n color: descriptor\n });\n else if (typeof descriptor === 'object') themeColorDescriptors.push({\n color: descriptor.color,\n media: descriptor.media\n });\n });\n return themeColorDescriptors;\n};\nasync function resolveUrlValuesOfObject(obj, metadataBase, pathname, metadataContext) {\n if (!obj) return null;\n const result = {};\n for (const [key, value] of Object.entries(obj)){\n if (typeof value === 'string' || value instanceof URL) {\n const pathnameForUrl = await pathname;\n result[key] = [\n {\n url: resolveAlternateUrl(value, metadataBase, pathnameForUrl, metadataContext)\n }\n ];\n } else if (value && value.length) {\n result[key] = [];\n const pathnameForUrl = await pathname;\n value.forEach((item, index)=>{\n const url = resolveAlternateUrl(item.url, metadataBase, pathnameForUrl, metadataContext);\n result[key][index] = {\n url,\n title: item.title\n };\n });\n }\n }\n return result;\n}\nasync function resolveCanonicalUrl(urlOrDescriptor, metadataBase, pathname, metadataContext) {\n if (!urlOrDescriptor) return null;\n const url = typeof urlOrDescriptor === 'string' || urlOrDescriptor instanceof URL ? urlOrDescriptor : urlOrDescriptor.url;\n const pathnameForUrl = await pathname;\n // Return string url because structureClone can't handle URL instance\n return {\n url: resolveAlternateUrl(url, metadataBase, pathnameForUrl, metadataContext)\n };\n}\nexport const resolveAlternates = async (alternates, metadataBase, pathname, context)=>{\n if (!alternates) return null;\n const canonical = await resolveCanonicalUrl(alternates.canonical, metadataBase, pathname, context);\n const languages = await resolveUrlValuesOfObject(alternates.languages, metadataBase, pathname, context);\n const media = await resolveUrlValuesOfObject(alternates.media, metadataBase, pathname, context);\n const types = await resolveUrlValuesOfObject(alternates.types, metadataBase, pathname, context);\n return {\n canonical,\n languages,\n media,\n types\n };\n};\nconst robotsKeys = [\n 'noarchive',\n 'nosnippet',\n 'noimageindex',\n 'nocache',\n 'notranslate',\n 'indexifembedded',\n 'nositelinkssearchbox',\n 'unavailable_after',\n 'max-video-preview',\n 'max-image-preview',\n 'max-snippet'\n];\nconst resolveRobotsValue = (robots)=>{\n if (!robots) return null;\n if (typeof robots === 'string') return robots;\n const values = [];\n if (robots.index) values.push('index');\n else if (typeof robots.index === 'boolean') values.push('noindex');\n if (robots.follow) values.push('follow');\n else if (typeof robots.follow === 'boolean') values.push('nofollow');\n for (const key of robotsKeys){\n const value = robots[key];\n if (typeof value !== 'undefined' && value !== false) {\n values.push(typeof value === 'boolean' ? key : `${key}:${value}`);\n }\n }\n return values.join(', ');\n};\nexport const resolveRobots = (robots)=>{\n if (!robots) return null;\n return {\n basic: resolveRobotsValue(robots),\n googleBot: typeof robots !== 'string' ? resolveRobotsValue(robots.googleBot) : null\n };\n};\nconst VerificationKeys = [\n 'google',\n 'yahoo',\n 'yandex',\n 'me',\n 'other'\n];\nexport const resolveVerification = (verification)=>{\n if (!verification) return null;\n const res = {};\n for (const key of VerificationKeys){\n const value = verification[key];\n if (value) {\n if (key === 'other') {\n res.other = {};\n for(const otherKey in verification.other){\n const otherValue = resolveAsArrayOrUndefined(verification.other[otherKey]);\n if (otherValue) res.other[otherKey] = otherValue;\n }\n } else res[key] = resolveAsArrayOrUndefined(value);\n }\n }\n return res;\n};\nexport const resolveAppleWebApp = (appWebApp)=>{\n var _resolveAsArrayOrUndefined;\n if (!appWebApp) return null;\n if (appWebApp === true) {\n return {\n capable: true\n };\n }\n const startupImages = appWebApp.startupImage ? (_resolveAsArrayOrUndefined = resolveAsArrayOrUndefined(appWebApp.startupImage)) == null ? void 0 : _resolveAsArrayOrUndefined.map((item)=>typeof item === 'string' ? {\n url: item\n } : item) : null;\n return {\n capable: 'capable' in appWebApp ? !!appWebApp.capable : true,\n title: appWebApp.title || null,\n startupImage: startupImages,\n statusBarStyle: appWebApp.statusBarStyle || 'default'\n };\n};\nexport const resolveAppLinks = (appLinks)=>{\n if (!appLinks) return null;\n for(const key in appLinks){\n // @ts-ignore // TODO: type infer\n appLinks[key] = resolveAsArrayOrUndefined(appLinks[key]);\n }\n return appLinks;\n};\nexport const resolveItunes = async (itunes, metadataBase, pathname, context)=>{\n if (!itunes) return null;\n return {\n appId: itunes.appId,\n appArgument: itunes.appArgument ? resolveAlternateUrl(itunes.appArgument, metadataBase, await pathname, context) : undefined\n };\n};\nexport const resolveFacebook = (facebook)=>{\n if (!facebook) return null;\n return {\n appId: facebook.appId,\n admins: resolveAsArrayOrUndefined(facebook.admins)\n };\n};\nexport const resolvePagination = async (pagination, metadataBase, pathname, context)=>{\n return {\n previous: (pagination == null ? void 0 : pagination.previous) ? resolveAlternateUrl(pagination.previous, metadataBase, await pathname, context) : null,\n next: (pagination == null ? void 0 : pagination.next) ? resolveAlternateUrl(pagination.next, metadataBase, await pathname, context) : null\n };\n};\n\n//# sourceMappingURL=resolve-basics.js.map","import { resolveArray, resolveAsArrayOrUndefined } from '../generate/utils';\nimport { getSocialImageMetadataBaseFallback, isStringOrURL, resolveUrl, resolveAbsoluteUrlWithPathname } from './resolve-url';\nimport { resolveTitle } from './resolve-title';\nimport { isFullStringUrl } from '../../url';\nimport { warnOnce } from '../../../build/output/log';\nconst OgTypeFields = {\n article: [\n 'authors',\n 'tags'\n ],\n song: [\n 'albums',\n 'musicians'\n ],\n playlist: [\n 'albums',\n 'musicians'\n ],\n radio: [\n 'creators'\n ],\n video: [\n 'actors',\n 'directors',\n 'writers',\n 'tags'\n ],\n basic: [\n 'emails',\n 'phoneNumbers',\n 'faxNumbers',\n 'alternateLocale',\n 'audio',\n 'videos'\n ]\n};\nfunction resolveAndValidateImage(item, metadataBase, isStaticMetadataRouteFile) {\n if (!item) return undefined;\n const isItemUrl = isStringOrURL(item);\n const inputUrl = isItemUrl ? item : item.url;\n if (!inputUrl) return undefined;\n // process.env.VERCEL is set to \"1\" when System Environment Variables are\n // exposed. When exposed, validation is not necessary since we are falling back to\n // process.env.VERCEL_PROJECT_PRODUCTION_URL, process.env.VERCEL_BRANCH_URL, or\n // process.env.VERCEL_URL for the `metadataBase`. process.env.VERCEL is undefined\n // when System Environment Variables are not exposed. When not exposed, we cannot\n // detect in the build environment if the deployment is a Vercel deployment or not.\n //\n // x-ref: https://vercel.com/docs/projects/environment-variables/system-environment-variables#system-environment-variables\n const isUsingVercelSystemEnvironmentVariables = Boolean(process.env.VERCEL);\n const isRelativeUrl = typeof inputUrl === 'string' && !isFullStringUrl(inputUrl);\n // When no explicit metadataBase is specified by the user, we'll override it with the fallback metadata\n // under the following conditions:\n // - The provided URL is relative (ie ./og-image).\n // - The image is statically generated by Next.js (such as the special `opengraph-image` route)\n // In both cases, we want to ensure that across all environments, the ogImage is a fully qualified URL.\n // In the `opengraph-image` case, since the user isn't explicitly passing a relative path, this ensures\n // the ogImage will be properly discovered across different environments without the user needing to\n // have a bunch of `process.env` checks when defining their `metadataBase`.\n if (isRelativeUrl && (!metadataBase || isStaticMetadataRouteFile)) {\n const fallbackMetadataBase = getSocialImageMetadataBaseFallback(metadataBase);\n // When not using Vercel environment variables for URL injection, we aren't able to determine\n // a fallback value for `metadataBase`. For self-hosted setups, we want to warn\n // about this since the only fallback we'll be able to generate is `localhost`.\n // In development, we'll only warn for relative metadata that isn't part of the static\n // metadata conventions (eg `opengraph-image`), as otherwise it's currently very noisy\n // for common cases. Eventually we should remove this warning all together in favor of\n // devtools.\n const shouldWarn = !isUsingVercelSystemEnvironmentVariables && !metadataBase && (process.env.NODE_ENV === 'production' || !isStaticMetadataRouteFile);\n if (shouldWarn) {\n warnOnce(`metadataBase property in metadata export is not set for resolving social open graph or twitter images, using \"${fallbackMetadataBase.origin}\". See https://nextjs.org/docs/app/api-reference/functions/generate-metadata#metadatabase`);\n }\n metadataBase = fallbackMetadataBase;\n }\n return isItemUrl ? {\n url: resolveUrl(inputUrl, metadataBase)\n } : {\n ...item,\n // Update image descriptor url\n url: resolveUrl(inputUrl, metadataBase)\n };\n}\nexport function resolveImages(images, metadataBase, isStaticMetadataRouteFile) {\n const resolvedImages = resolveAsArrayOrUndefined(images);\n if (!resolvedImages) return resolvedImages;\n const nonNullableImages = [];\n for (const item of resolvedImages){\n const resolvedItem = resolveAndValidateImage(item, metadataBase, isStaticMetadataRouteFile);\n if (!resolvedItem) continue;\n nonNullableImages.push(resolvedItem);\n }\n return nonNullableImages;\n}\nconst ogTypeToFields = {\n article: OgTypeFields.article,\n book: OgTypeFields.article,\n 'music.song': OgTypeFields.song,\n 'music.album': OgTypeFields.song,\n 'music.playlist': OgTypeFields.playlist,\n 'music.radio_station': OgTypeFields.radio,\n 'video.movie': OgTypeFields.video,\n 'video.episode': OgTypeFields.video\n};\nfunction getFieldsByOgType(ogType) {\n if (!ogType || !(ogType in ogTypeToFields)) return OgTypeFields.basic;\n return ogTypeToFields[ogType].concat(OgTypeFields.basic);\n}\nexport const resolveOpenGraph = async (openGraph, metadataBase, pathname, metadataContext, titleTemplate)=>{\n if (!openGraph) return null;\n function resolveProps(target, og) {\n const ogType = og && 'type' in og ? og.type : undefined;\n const keys = getFieldsByOgType(ogType);\n for (const k of keys){\n const key = k;\n if (key in og && key !== 'url') {\n const value = og[key];\n target[key] = value ? resolveArray(value) : null;\n }\n }\n target.images = resolveImages(og.images, metadataBase, metadataContext.isStaticMetadataRouteFile);\n }\n const resolved = {\n ...openGraph,\n title: resolveTitle(openGraph.title, titleTemplate)\n };\n resolveProps(resolved, openGraph);\n resolved.url = openGraph.url ? resolveAbsoluteUrlWithPathname(openGraph.url, metadataBase, await pathname, metadataContext) : null;\n return resolved;\n};\nconst TwitterBasicInfoKeys = [\n 'site',\n 'siteId',\n 'creator',\n 'creatorId',\n 'description'\n];\nexport const resolveTwitter = (twitter, metadataBase, metadataContext, titleTemplate)=>{\n var _resolved_images;\n if (!twitter) return null;\n let card = 'card' in twitter ? twitter.card : undefined;\n const resolved = {\n ...twitter,\n title: resolveTitle(twitter.title, titleTemplate)\n };\n for (const infoKey of TwitterBasicInfoKeys){\n resolved[infoKey] = twitter[infoKey] || null;\n }\n resolved.images = resolveImages(twitter.images, metadataBase, metadataContext.isStaticMetadataRouteFile);\n card = card || (((_resolved_images = resolved.images) == null ? void 0 : _resolved_images.length) ? 'summary_large_image' : 'summary');\n resolved.card = card;\n if ('card' in resolved) {\n switch(resolved.card){\n case 'player':\n {\n resolved.players = resolveAsArrayOrUndefined(resolved.players) || [];\n break;\n }\n case 'app':\n {\n resolved.app = resolved.app || {};\n break;\n }\n case 'summary':\n case 'summary_large_image':\n break;\n default:\n resolved;\n }\n }\n return resolved;\n};\n\n//# sourceMappingURL=resolve-opengraph.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport React from 'react';\nimport { getOrigin } from './generate/utils';\nimport { IconMark } from './generate/icon-mark';\n// ---------------------------------------------------------------------------\n// Viewport tag rendering\n// ---------------------------------------------------------------------------\nexport function createViewportElements(viewport) {\n const tags = [];\n let i = 0;\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n charSet: \"utf-8\"\n }, i++));\n // Build viewport content string from layout properties\n const viewportParts = [];\n if (viewport.width != null) {\n viewportParts.push(`width=${viewport.width}`);\n }\n if (viewport.height != null) {\n viewportParts.push(`height=${viewport.height}`);\n }\n if (viewport.initialScale != null) {\n viewportParts.push(`initial-scale=${viewport.initialScale}`);\n }\n if (viewport.minimumScale != null) {\n viewportParts.push(`minimum-scale=${viewport.minimumScale}`);\n }\n if (viewport.maximumScale != null) {\n viewportParts.push(`maximum-scale=${viewport.maximumScale}`);\n }\n if (viewport.userScalable != null) {\n viewportParts.push(`user-scalable=${viewport.userScalable ? 'yes' : 'no'}`);\n }\n if (viewport.viewportFit) {\n viewportParts.push(`viewport-fit=${viewport.viewportFit}`);\n }\n if (viewport.interactiveWidget) {\n viewportParts.push(`interactive-widget=${viewport.interactiveWidget}`);\n }\n if (viewportParts.length) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n name: \"viewport\",\n content: viewportParts.join(', ')\n }, i++));\n }\n if (viewport.themeColor) {\n for (const themeColor of viewport.themeColor){\n if (themeColor.media) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n name: \"theme-color\",\n content: themeColor.color,\n media: themeColor.media\n }, i++));\n } else {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n name: \"theme-color\",\n content: themeColor.color\n }, i++));\n }\n }\n }\n if (viewport.colorScheme) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n name: \"color-scheme\",\n content: viewport.colorScheme\n }, i++));\n }\n return tags;\n}\n// ---------------------------------------------------------------------------\n// Metadata tag rendering\n// ---------------------------------------------------------------------------\nexport function createMetadataElements(metadata) {\n var _metadata_robots, _metadata_robots1;\n const tags = [];\n let i = 0;\n // --- Title ---\n if (metadata.title) {\n tags.push(/*#__PURE__*/ _jsx(\"title\", {\n children: metadata.title\n }, i++));\n }\n // --- Basic meta tags ---\n if (metadata.description) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n name: \"description\",\n content: metadata.description\n }, i++));\n }\n if (metadata.applicationName) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n name: \"application-name\",\n content: metadata.applicationName\n }, i++));\n }\n // --- Authors ---\n if (metadata.authors) {\n for (const author of metadata.authors){\n if (author.url) {\n tags.push(/*#__PURE__*/ _jsx(\"link\", {\n rel: \"author\",\n href: author.url.toString()\n }, i++));\n }\n if (author.name) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n name: \"author\",\n content: author.name\n }, i++));\n }\n }\n }\n // --- Manifest ---\n if (metadata.manifest) {\n const manifestOrigin = getOrigin(metadata.manifest);\n tags.push(/*#__PURE__*/ _jsx(\"link\", {\n rel: \"manifest\",\n href: metadata.manifest.toString(),\n crossOrigin: !manifestOrigin && process.env.VERCEL_ENV === 'preview' ? 'use-credentials' : undefined\n }, i++));\n }\n if (metadata.generator) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n name: \"generator\",\n content: metadata.generator\n }, i++));\n }\n if (metadata.keywords && metadata.keywords.length) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n name: \"keywords\",\n content: metadata.keywords.join(',')\n }, i++));\n }\n if (metadata.referrer) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n name: \"referrer\",\n content: metadata.referrer\n }, i++));\n }\n if (metadata.creator) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n name: \"creator\",\n content: metadata.creator\n }, i++));\n }\n if (metadata.publisher) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n name: \"publisher\",\n content: metadata.publisher\n }, i++));\n }\n if ((_metadata_robots = metadata.robots) == null ? void 0 : _metadata_robots.basic) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n name: \"robots\",\n content: metadata.robots.basic\n }, i++));\n }\n if ((_metadata_robots1 = metadata.robots) == null ? void 0 : _metadata_robots1.googleBot) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n name: \"googlebot\",\n content: metadata.robots.googleBot\n }, i++));\n }\n if (metadata.abstract) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n name: \"abstract\",\n content: metadata.abstract\n }, i++));\n }\n // --- Link rel arrays ---\n if (metadata.archives) {\n for (const archive of metadata.archives){\n tags.push(/*#__PURE__*/ _jsx(\"link\", {\n rel: \"archives\",\n href: archive\n }, i++));\n }\n }\n if (metadata.assets) {\n for (const asset of metadata.assets){\n tags.push(/*#__PURE__*/ _jsx(\"link\", {\n rel: \"assets\",\n href: asset\n }, i++));\n }\n }\n if (metadata.bookmarks) {\n for (const bookmark of metadata.bookmarks){\n tags.push(/*#__PURE__*/ _jsx(\"link\", {\n rel: \"bookmarks\",\n href: bookmark\n }, i++));\n }\n }\n // --- Pagination ---\n if (metadata.pagination) {\n if (metadata.pagination.previous) {\n tags.push(/*#__PURE__*/ _jsx(\"link\", {\n rel: \"prev\",\n href: metadata.pagination.previous\n }, i++));\n }\n if (metadata.pagination.next) {\n tags.push(/*#__PURE__*/ _jsx(\"link\", {\n rel: \"next\",\n href: metadata.pagination.next\n }, i++));\n }\n }\n if (metadata.category) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n name: \"category\",\n content: metadata.category\n }, i++));\n }\n if (metadata.classification) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n name: \"classification\",\n content: metadata.classification\n }, i++));\n }\n // --- Other (arbitrary name/value pairs) ---\n if (metadata.other) {\n for (const [name, content] of Object.entries(metadata.other)){\n if (Array.isArray(content)) {\n for (const contentItem of content){\n if (contentItem != null && contentItem !== '') {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n name: name,\n content: String(contentItem)\n }, i++));\n }\n }\n } else if (content != null && content !== '') {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n name: name,\n content: String(content)\n }, i++));\n }\n }\n }\n // --- Alternates ---\n if (metadata.alternates) {\n const { canonical, languages, media, types } = metadata.alternates;\n if (canonical && canonical.url) {\n tags.push(/*#__PURE__*/ _jsx(\"link\", {\n rel: \"canonical\",\n href: canonical.url.toString(),\n ...canonical.title ? {\n title: canonical.title\n } : undefined\n }, i++));\n }\n if (languages) {\n for (const [locale, descriptors] of Object.entries(languages)){\n if (descriptors) {\n for (const descriptor of descriptors){\n if (descriptor.url) {\n tags.push(/*#__PURE__*/ _jsx(\"link\", {\n rel: \"alternate\",\n hrefLang: locale,\n href: descriptor.url.toString(),\n ...descriptor.title ? {\n title: descriptor.title\n } : undefined\n }, i++));\n }\n }\n }\n }\n }\n if (media) {\n for (const [mediaName, descriptors] of Object.entries(media)){\n if (descriptors) {\n for (const descriptor of descriptors){\n if (descriptor.url) {\n tags.push(/*#__PURE__*/ _jsx(\"link\", {\n rel: \"alternate\",\n media: mediaName,\n href: descriptor.url.toString(),\n ...descriptor.title ? {\n title: descriptor.title\n } : undefined\n }, i++));\n }\n }\n }\n }\n }\n if (types) {\n for (const [type, descriptors] of Object.entries(types)){\n if (descriptors) {\n for (const descriptor of descriptors){\n if (descriptor.url) {\n tags.push(/*#__PURE__*/ _jsx(\"link\", {\n rel: \"alternate\",\n type: type,\n href: descriptor.url.toString(),\n ...descriptor.title ? {\n title: descriptor.title\n } : undefined\n }, i++));\n }\n }\n }\n }\n }\n }\n // --- iTunes ---\n if (metadata.itunes) {\n const { appId, appArgument } = metadata.itunes;\n let itunesContent = `app-id=${appId}`;\n if (appArgument) {\n itunesContent += `, app-argument=${appArgument}`;\n }\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n name: \"apple-itunes-app\",\n content: itunesContent\n }, i++));\n }\n // --- Facebook ---\n if (metadata.facebook) {\n if (metadata.facebook.appId) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"fb:app_id\",\n content: metadata.facebook.appId\n }, i++));\n }\n if (metadata.facebook.admins) {\n for (const admin of metadata.facebook.admins){\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"fb:admins\",\n content: admin\n }, i++));\n }\n }\n }\n // --- Pinterest ---\n if (metadata.pinterest && metadata.pinterest.richPin !== undefined) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"pinterest-rich-pin\",\n content: metadata.pinterest.richPin.toString()\n }, i++));\n }\n // --- Format Detection ---\n if (metadata.formatDetection) {\n const formatDetectionKeys = [\n 'telephone',\n 'date',\n 'address',\n 'email',\n 'url'\n ];\n let formatContent = '';\n for (const key of formatDetectionKeys){\n if (metadata.formatDetection[key] === false) {\n if (formatContent) formatContent += ', ';\n formatContent += `${key}=no`;\n }\n }\n if (formatContent) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n name: \"format-detection\",\n content: formatContent\n }, i++));\n }\n }\n // --- Verification ---\n if (metadata.verification) {\n const verification = metadata.verification;\n if (verification.google) {\n for (const value of verification.google){\n if (value != null && value !== '') {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n name: \"google-site-verification\",\n content: String(value)\n }, i++));\n }\n }\n }\n if (verification.yahoo) {\n for (const value of verification.yahoo){\n if (value != null && value !== '') {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n name: \"y_key\",\n content: String(value)\n }, i++));\n }\n }\n }\n if (verification.yandex) {\n for (const value of verification.yandex){\n if (value != null && value !== '') {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n name: \"yandex-verification\",\n content: String(value)\n }, i++));\n }\n }\n }\n if (verification.me) {\n for (const value of verification.me){\n if (value != null && value !== '') {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n name: \"me\",\n content: String(value)\n }, i++));\n }\n }\n }\n if (verification.other) {\n for (const [name, values] of Object.entries(verification.other)){\n for (const value of values){\n if (value != null && value !== '') {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n name: name,\n content: String(value)\n }, i++));\n }\n }\n }\n }\n }\n // --- Apple Web App ---\n if (metadata.appleWebApp) {\n const { capable, title, startupImage, statusBarStyle } = metadata.appleWebApp;\n if (capable) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n name: \"mobile-web-app-capable\",\n content: \"yes\"\n }, i++));\n }\n if (title) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n name: \"apple-mobile-web-app-title\",\n content: title\n }, i++));\n }\n if (startupImage) {\n for (const image of startupImage){\n if (image.media) {\n tags.push(/*#__PURE__*/ _jsx(\"link\", {\n href: image.url,\n media: image.media,\n rel: \"apple-touch-startup-image\"\n }, i++));\n } else {\n tags.push(/*#__PURE__*/ _jsx(\"link\", {\n href: image.url,\n rel: \"apple-touch-startup-image\"\n }, i++));\n }\n }\n }\n if (statusBarStyle) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n name: \"apple-mobile-web-app-status-bar-style\",\n content: statusBarStyle\n }, i++));\n }\n }\n // --- Open Graph ---\n if (metadata.openGraph) {\n const og = metadata.openGraph;\n if (og.determiner) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"og:determiner\",\n content: og.determiner\n }, i++));\n }\n if (og.title) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"og:title\",\n content: og.title\n }, i++));\n }\n if (og.description) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"og:description\",\n content: og.description\n }, i++));\n }\n if (og.url) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"og:url\",\n content: og.url.toString()\n }, i++));\n }\n if (og.siteName) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"og:site_name\",\n content: og.siteName\n }, i++));\n }\n if (og.locale) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"og:locale\",\n content: og.locale\n }, i++));\n }\n if (og.countryName) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"og:country_name\",\n content: og.countryName\n }, i++));\n }\n if (og.ttl != null) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"og:ttl\",\n content: og.ttl.toString()\n }, i++));\n }\n // OG images\n if (og.images) {\n for (const image of og.images){\n if (typeof image === 'string') {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"og:image\",\n content: image\n }, i++));\n } else {\n if (image.url) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"og:image\",\n content: String(image.url)\n }, i++));\n }\n if (image.secureUrl) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"og:image:secure_url\",\n content: String(image.secureUrl)\n }, i++));\n }\n if (image.type) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"og:image:type\",\n content: image.type\n }, i++));\n }\n if (image.width) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"og:image:width\",\n content: String(image.width)\n }, i++));\n }\n if (image.height) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"og:image:height\",\n content: String(image.height)\n }, i++));\n }\n if (image.alt) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"og:image:alt\",\n content: image.alt\n }, i++));\n }\n }\n }\n }\n // OG videos\n if (og.videos) {\n for (const video of og.videos){\n if (typeof video === 'string') {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"og:video\",\n content: video\n }, i++));\n } else {\n if (video.url) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"og:video\",\n content: String(video.url)\n }, i++));\n }\n if (video.secureUrl) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"og:video:secure_url\",\n content: String(video.secureUrl)\n }, i++));\n }\n if (video.type) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"og:video:type\",\n content: video.type\n }, i++));\n }\n if (video.width) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"og:video:width\",\n content: String(video.width)\n }, i++));\n }\n if (video.height) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"og:video:height\",\n content: String(video.height)\n }, i++));\n }\n }\n }\n }\n // OG audio\n if (og.audio) {\n for (const audio of og.audio){\n if (typeof audio === 'string') {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"og:audio\",\n content: audio\n }, i++));\n } else {\n if (audio.url) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"og:audio\",\n content: String(audio.url)\n }, i++));\n }\n if (audio.secureUrl) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"og:audio:secure_url\",\n content: String(audio.secureUrl)\n }, i++));\n }\n if (audio.type) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"og:audio:type\",\n content: audio.type\n }, i++));\n }\n }\n }\n }\n // OG simple array properties\n if (og.emails) {\n for (const email of og.emails){\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"og:email\",\n content: email\n }, i++));\n }\n }\n if (og.phoneNumbers) {\n for (const phone of og.phoneNumbers){\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"og:phone_number\",\n content: phone\n }, i++));\n }\n }\n if (og.faxNumbers) {\n for (const fax of og.faxNumbers){\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"og:fax_number\",\n content: fax\n }, i++));\n }\n }\n if (og.alternateLocale) {\n for (const locale of og.alternateLocale){\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"og:locale:alternate\",\n content: locale\n }, i++));\n }\n }\n // OG type-specific tags\n if ('type' in og) {\n const ogType = og.type;\n switch(ogType){\n case 'website':\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"og:type\",\n content: \"website\"\n }, i++));\n break;\n case 'article':\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"og:type\",\n content: \"article\"\n }, i++));\n if (og.publishedTime) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"article:published_time\",\n content: og.publishedTime.toString()\n }, i++));\n }\n if (og.modifiedTime) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"article:modified_time\",\n content: og.modifiedTime.toString()\n }, i++));\n }\n if (og.expirationTime) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"article:expiration_time\",\n content: og.expirationTime.toString()\n }, i++));\n }\n if (og.authors) {\n for (const author of og.authors){\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"article:author\",\n content: String(author)\n }, i++));\n }\n }\n if (og.section) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"article:section\",\n content: og.section\n }, i++));\n }\n if (og.tags) {\n for (const tag of og.tags){\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"article:tag\",\n content: tag\n }, i++));\n }\n }\n break;\n case 'book':\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"og:type\",\n content: \"book\"\n }, i++));\n if (og.isbn) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"book:isbn\",\n content: og.isbn\n }, i++));\n }\n if (og.releaseDate) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"book:release_date\",\n content: og.releaseDate\n }, i++));\n }\n if (og.authors) {\n for (const author of og.authors){\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"book:author\",\n content: String(author)\n }, i++));\n }\n }\n if (og.tags) {\n for (const tag of og.tags){\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"book:tag\",\n content: tag\n }, i++));\n }\n }\n break;\n case 'profile':\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"og:type\",\n content: \"profile\"\n }, i++));\n if (og.firstName) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"profile:first_name\",\n content: og.firstName\n }, i++));\n }\n if (og.lastName) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"profile:last_name\",\n content: og.lastName\n }, i++));\n }\n if (og.username) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"profile:username\",\n content: og.username\n }, i++));\n }\n if (og.gender) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"profile:gender\",\n content: og.gender\n }, i++));\n }\n break;\n case 'music.song':\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"og:type\",\n content: \"music.song\"\n }, i++));\n if (og.duration != null) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"music:duration\",\n content: og.duration.toString()\n }, i++));\n }\n if (og.albums) {\n for (const album of og.albums){\n if (typeof album === 'string') {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"music:album\",\n content: album\n }, i++));\n } else {\n if (album.url) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"music:album\",\n content: String(album.url)\n }, i++));\n }\n if (album.disc != null) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"music:album:disc\",\n content: String(album.disc)\n }, i++));\n }\n if (album.track != null) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"music:album:track\",\n content: String(album.track)\n }, i++));\n }\n }\n }\n }\n if (og.musicians) {\n for (const musician of og.musicians){\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"music:musician\",\n content: String(musician)\n }, i++));\n }\n }\n break;\n case 'music.album':\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"og:type\",\n content: \"music.album\"\n }, i++));\n if (og.songs) {\n for (const song of og.songs){\n if (typeof song === 'string') {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"music:song\",\n content: song\n }, i++));\n } else {\n if (song.url) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"music:song\",\n content: String(song.url)\n }, i++));\n }\n if (song.disc != null) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"music:song:disc\",\n content: String(song.disc)\n }, i++));\n }\n if (song.track != null) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"music:song:track\",\n content: String(song.track)\n }, i++));\n }\n }\n }\n }\n if (og.musicians) {\n for (const musician of og.musicians){\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"music:musician\",\n content: String(musician)\n }, i++));\n }\n }\n if (og.releaseDate) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"music:release_date\",\n content: og.releaseDate\n }, i++));\n }\n break;\n case 'music.playlist':\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"og:type\",\n content: \"music.playlist\"\n }, i++));\n if (og.songs) {\n for (const song of og.songs){\n if (typeof song === 'string') {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"music:song\",\n content: song\n }, i++));\n } else {\n if (song.url) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"music:song\",\n content: String(song.url)\n }, i++));\n }\n if (song.disc != null) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"music:song:disc\",\n content: String(song.disc)\n }, i++));\n }\n if (song.track != null) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"music:song:track\",\n content: String(song.track)\n }, i++));\n }\n }\n }\n }\n if (og.creators) {\n for (const creator of og.creators){\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"music:creator\",\n content: String(creator)\n }, i++));\n }\n }\n break;\n case 'music.radio_station':\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"og:type\",\n content: \"music.radio_station\"\n }, i++));\n if (og.creators) {\n for (const creator of og.creators){\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"music:creator\",\n content: String(creator)\n }, i++));\n }\n }\n break;\n case 'video.movie':\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"og:type\",\n content: \"video.movie\"\n }, i++));\n if (og.actors) {\n for (const actor of og.actors){\n if (typeof actor === 'string') {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"video:actor\",\n content: actor\n }, i++));\n } else {\n if (actor.url) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"video:actor\",\n content: String(actor.url)\n }, i++));\n }\n if (actor.role) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"video:actor:role\",\n content: actor.role\n }, i++));\n }\n }\n }\n }\n if (og.directors) {\n for (const director of og.directors){\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"video:director\",\n content: String(director)\n }, i++));\n }\n }\n if (og.writers) {\n for (const writer of og.writers){\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"video:writer\",\n content: String(writer)\n }, i++));\n }\n }\n if (og.duration != null) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"video:duration\",\n content: String(og.duration)\n }, i++));\n }\n if (og.releaseDate) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"video:release_date\",\n content: og.releaseDate\n }, i++));\n }\n if (og.tags) {\n for (const tag of og.tags){\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"video:tag\",\n content: tag\n }, i++));\n }\n }\n break;\n case 'video.episode':\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"og:type\",\n content: \"video.episode\"\n }, i++));\n if (og.actors) {\n for (const actor of og.actors){\n if (typeof actor === 'string') {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"video:actor\",\n content: actor\n }, i++));\n } else {\n if (actor.url) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"video:actor\",\n content: String(actor.url)\n }, i++));\n }\n if (actor.role) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"video:actor:role\",\n content: actor.role\n }, i++));\n }\n }\n }\n }\n if (og.directors) {\n for (const director of og.directors){\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"video:director\",\n content: String(director)\n }, i++));\n }\n }\n if (og.writers) {\n for (const writer of og.writers){\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"video:writer\",\n content: String(writer)\n }, i++));\n }\n }\n if (og.duration != null) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"video:duration\",\n content: String(og.duration)\n }, i++));\n }\n if (og.releaseDate) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"video:release_date\",\n content: og.releaseDate\n }, i++));\n }\n if (og.tags) {\n for (const tag of og.tags){\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"video:tag\",\n content: tag\n }, i++));\n }\n }\n if (og.series) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"video:series\",\n content: String(og.series)\n }, i++));\n }\n break;\n case 'video.tv_show':\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"og:type\",\n content: \"video.tv_show\"\n }, i++));\n break;\n case 'video.other':\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"og:type\",\n content: \"video.other\"\n }, i++));\n break;\n default:\n const _exhaustiveCheck = ogType;\n throw new Error(`Invalid OpenGraph type: ${_exhaustiveCheck}`);\n }\n }\n }\n // --- Twitter ---\n if (metadata.twitter) {\n const tw = metadata.twitter;\n const { card } = tw;\n if (card) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n name: \"twitter:card\",\n content: card\n }, i++));\n }\n if (tw.site) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n name: \"twitter:site\",\n content: tw.site\n }, i++));\n }\n if (tw.siteId) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n name: \"twitter:site:id\",\n content: tw.siteId\n }, i++));\n }\n if (tw.creator) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n name: \"twitter:creator\",\n content: tw.creator\n }, i++));\n }\n if (tw.creatorId) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n name: \"twitter:creator:id\",\n content: tw.creatorId\n }, i++));\n }\n if (tw.title) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n name: \"twitter:title\",\n content: tw.title\n }, i++));\n }\n if (tw.description) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n name: \"twitter:description\",\n content: tw.description\n }, i++));\n }\n // Twitter images\n if (tw.images) {\n for (const image of tw.images){\n if (typeof image === 'string') {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n name: \"twitter:image\",\n content: image\n }, i++));\n } else {\n if (image.url) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n name: \"twitter:image\",\n content: String(image.url)\n }, i++));\n }\n if (image.alt) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n name: \"twitter:image:alt\",\n content: image.alt\n }, i++));\n }\n if (image.secureUrl) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n name: \"twitter:image:secure_url\",\n content: String(image.secureUrl)\n }, i++));\n }\n if (image.type) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n name: \"twitter:image:type\",\n content: image.type\n }, i++));\n }\n if (image.width) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n name: \"twitter:image:width\",\n content: String(image.width)\n }, i++));\n }\n if (image.height) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n name: \"twitter:image:height\",\n content: String(image.height)\n }, i++));\n }\n }\n }\n }\n // Twitter player cards\n if (card === 'player') {\n for (const player of tw.players){\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n name: \"twitter:player\",\n content: player.playerUrl.toString()\n }, i++));\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n name: \"twitter:player:stream\",\n content: player.streamUrl.toString()\n }, i++));\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n name: \"twitter:player:width\",\n content: String(player.width)\n }, i++));\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n name: \"twitter:player:height\",\n content: String(player.height)\n }, i++));\n }\n }\n // Twitter app cards\n if (card === 'app') {\n const { app } = tw;\n for (const platform of [\n 'iphone',\n 'ipad',\n 'googleplay'\n ]){\n var _app_url;\n if (app.name) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n name: `twitter:app:name:${platform}`,\n content: app.name\n }, i++));\n }\n if (app.id[platform]) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n name: `twitter:app:id:${platform}`,\n content: String(app.id[platform])\n }, i++));\n }\n if ((_app_url = app.url) == null ? void 0 : _app_url[platform]) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n name: `twitter:app:url:${platform}`,\n content: app.url[platform].toString()\n }, i++));\n }\n }\n }\n }\n // --- App Links ---\n if (metadata.appLinks) {\n const appLinks = metadata.appLinks;\n // iOS / iPhone / iPad (AppLinksApple: url, app_store_id, app_name)\n if (appLinks.ios) {\n for (const item of appLinks.ios){\n if (item.url) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"al:ios:url\",\n content: String(item.url)\n }, i++));\n }\n if (item.app_store_id) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"al:ios:app_store_id\",\n content: String(item.app_store_id)\n }, i++));\n }\n if (item.app_name) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"al:ios:app_name\",\n content: item.app_name\n }, i++));\n }\n }\n }\n if (appLinks.iphone) {\n for (const item of appLinks.iphone){\n if (item.url) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"al:iphone:url\",\n content: String(item.url)\n }, i++));\n }\n if (item.app_store_id) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"al:iphone:app_store_id\",\n content: String(item.app_store_id)\n }, i++));\n }\n if (item.app_name) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"al:iphone:app_name\",\n content: item.app_name\n }, i++));\n }\n }\n }\n if (appLinks.ipad) {\n for (const item of appLinks.ipad){\n if (item.url) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"al:ipad:url\",\n content: String(item.url)\n }, i++));\n }\n if (item.app_store_id) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"al:ipad:app_store_id\",\n content: String(item.app_store_id)\n }, i++));\n }\n if (item.app_name) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"al:ipad:app_name\",\n content: item.app_name\n }, i++));\n }\n }\n }\n // Android (AppLinksAndroid: package, url, class, app_name)\n if (appLinks.android) {\n for (const item of appLinks.android){\n if (item.package) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"al:android:package\",\n content: item.package\n }, i++));\n }\n if (item.url) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"al:android:url\",\n content: String(item.url)\n }, i++));\n }\n if (item.class) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"al:android:class\",\n content: item.class\n }, i++));\n }\n if (item.app_name) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"al:android:app_name\",\n content: item.app_name\n }, i++));\n }\n }\n }\n // Windows Phone (AppLinksWindows: url, app_id, app_name)\n if (appLinks.windows_phone) {\n for (const item of appLinks.windows_phone){\n if (item.url) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"al:windows_phone:url\",\n content: String(item.url)\n }, i++));\n }\n if (item.app_id) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"al:windows_phone:app_id\",\n content: item.app_id\n }, i++));\n }\n if (item.app_name) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"al:windows_phone:app_name\",\n content: item.app_name\n }, i++));\n }\n }\n }\n // Windows (AppLinksWindows: url, app_id, app_name)\n if (appLinks.windows) {\n for (const item of appLinks.windows){\n if (item.url) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"al:windows:url\",\n content: String(item.url)\n }, i++));\n }\n if (item.app_id) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"al:windows:app_id\",\n content: item.app_id\n }, i++));\n }\n if (item.app_name) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"al:windows:app_name\",\n content: item.app_name\n }, i++));\n }\n }\n }\n // Windows Universal (AppLinksWindows: url, app_id, app_name)\n if (appLinks.windows_universal) {\n for (const item of appLinks.windows_universal){\n if (item.url) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"al:windows_universal:url\",\n content: String(item.url)\n }, i++));\n }\n if (item.app_id) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"al:windows_universal:app_id\",\n content: item.app_id\n }, i++));\n }\n if (item.app_name) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"al:windows_universal:app_name\",\n content: item.app_name\n }, i++));\n }\n }\n }\n // Web (AppLinksWeb: url, should_fallback)\n if (appLinks.web) {\n for (const item of appLinks.web){\n if (item.url) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"al:web:url\",\n content: String(item.url)\n }, i++));\n }\n if (item.should_fallback != null) {\n tags.push(/*#__PURE__*/ _jsx(\"meta\", {\n property: \"al:web:should_fallback\",\n content: String(item.should_fallback)\n }, i++));\n }\n }\n }\n }\n // --- Icons ---\n if (metadata.icons) {\n const { shortcut, icon, apple, other } = metadata.icons;\n const hasIcon = Boolean((shortcut == null ? void 0 : shortcut.length) || (icon == null ? void 0 : icon.length) || (apple == null ? void 0 : apple.length) || (other == null ? void 0 : other.length));\n if (shortcut) {\n for (const ic of shortcut){\n const { url, rel, ...props } = ic;\n tags.push(/*#__PURE__*/ _jsx(\"link\", {\n rel: rel || 'shortcut icon',\n href: url.toString(),\n ...props\n }, i++));\n }\n }\n if (icon) {\n for (const ic of icon){\n const { url, rel, ...props } = ic;\n tags.push(/*#__PURE__*/ _jsx(\"link\", {\n rel: rel || 'icon',\n href: url.toString(),\n ...props\n }, i++));\n }\n }\n if (apple) {\n for (const ic of apple){\n const { url, rel, ...props } = ic;\n tags.push(/*#__PURE__*/ _jsx(\"link\", {\n rel: rel || 'apple-touch-icon',\n href: url.toString(),\n ...props\n }, i++));\n }\n }\n if (other) {\n for (const ic of other){\n const { url, rel, ...props } = ic;\n tags.push(/*#__PURE__*/ _jsx(\"link\", {\n rel: rel || 'icon',\n href: url.toString(),\n ...props\n }, i++));\n }\n }\n if (hasIcon) {\n tags.push(/*#__PURE__*/ _jsx(IconMark, {}, i++));\n }\n }\n return tags;\n}\n\n//# sourceMappingURL=metadata-elements.js.map","import { resolveAsArrayOrUndefined } from '../generate/utils';\nimport { isStringOrURL } from './resolve-url';\nimport { IconKeys } from '../constants';\nexport function resolveIcon(icon) {\n if (isStringOrURL(icon)) return {\n url: icon\n };\n else if (Array.isArray(icon)) return icon;\n return icon;\n}\nexport const resolveIcons = (icons)=>{\n if (!icons) {\n return null;\n }\n const resolved = {\n icon: [],\n apple: []\n };\n if (Array.isArray(icons)) {\n resolved.icon = icons.map(resolveIcon).filter(Boolean);\n } else if (isStringOrURL(icons)) {\n resolved.icon = [\n resolveIcon(icons)\n ];\n } else {\n for (const key of IconKeys){\n const values = resolveAsArrayOrUndefined(icons[key]);\n if (values) resolved[key] = values.map(resolveIcon);\n }\n }\n return resolved;\n};\n\n//# sourceMappingURL=resolve-icons.js.map","/**\n * Calls the given function only when the returned promise-like object is\n * awaited. Afterwards, it provides the resolved value synchronously as `value`\n * property.\n */ export function createLazyResult(fn) {\n let pendingResult;\n const result = {\n then (onfulfilled, onrejected) {\n if (!pendingResult) {\n pendingResult = Promise.resolve(fn());\n }\n pendingResult.then((value)=>{\n result.value = value;\n }).catch(()=>{\n // The externally awaited result will be rejected via `onrejected`. We\n // don't need to handle it here. But we do want to avoid an unhandled\n // rejection.\n });\n return pendingResult.then(onfulfilled, onrejected);\n }\n };\n return result;\n}\nexport function isResolvedLazyResult(result) {\n return result.hasOwnProperty('value');\n}\n\n//# sourceMappingURL=lazy-result.js.map","// eslint-disable-next-line import/no-extraneous-dependencies\nimport 'server-only';\nimport { resolveOpenGraph, resolveTwitter } from './resolvers/resolve-opengraph';\nimport { resolveTitle } from './resolvers/resolve-title';\nimport { resolveAsArrayOrUndefined } from './generate/utils';\nimport { resolveAlternates, resolveAppleWebApp, resolveAppLinks, resolveRobots, resolveThemeColor, resolveVerification, resolveItunes, resolveFacebook, resolvePagination } from './resolvers/resolve-basics';\nimport { resolveIcons } from './resolvers/resolve-icons';\nimport { getTracer } from '../../server/lib/trace/tracer';\nimport { ResolveMetadataSpan } from '../../server/lib/trace/constants';\nimport { isUseCacheFunction } from '../client-and-server-references';\nexport function isFavicon(icon) {\n if (!icon) {\n return false;\n }\n // turbopack appends a hash to all images\n return (icon.url === '/favicon.ico' || icon.url.toString().startsWith('/favicon.ico?')) && icon.type === 'image/x-icon';\n}\nexport function convertUrlsToStrings(input) {\n if (input instanceof URL) {\n return input.toString();\n } else if (Array.isArray(input)) {\n return input.map((item)=>convertUrlsToStrings(item));\n } else if (input && typeof input === 'object') {\n const result = {};\n for (const [key, value] of Object.entries(input)){\n result[key] = convertUrlsToStrings(value);\n }\n return result;\n }\n return input;\n}\nfunction normalizeMetadataBase(metadataBase) {\n if (typeof metadataBase === 'string') {\n try {\n metadataBase = new URL(metadataBase);\n } catch {\n throw new Error(`metadataBase is not a valid URL: ${metadataBase}`);\n }\n }\n return metadataBase;\n}\nasync function mergeStaticMetadata(metadataBase, source, target, staticFilesMetadata, metadataContext, titleTemplates, leafSegmentStaticIcons, pathname) {\n var _source_twitter, _source_openGraph;\n if (!staticFilesMetadata) return target;\n const { icon, apple, openGraph, twitter, manifest } = staticFilesMetadata;\n // Keep updating the static icons in the most leaf node\n if (icon) {\n leafSegmentStaticIcons.icon = icon;\n }\n if (apple) {\n leafSegmentStaticIcons.apple = apple;\n }\n // file based metadata is specified and current level metadata twitter.images is not specified\n if (twitter && !(source == null ? void 0 : (_source_twitter = source.twitter) == null ? void 0 : _source_twitter.hasOwnProperty('images'))) {\n const resolvedTwitter = resolveTwitter({\n ...target.twitter,\n images: twitter\n }, metadataBase, {\n ...metadataContext,\n isStaticMetadataRouteFile: true\n }, titleTemplates.twitter);\n target.twitter = convertUrlsToStrings(resolvedTwitter);\n }\n // file based metadata is specified and current level metadata openGraph.images is not specified\n if (openGraph && !(source == null ? void 0 : (_source_openGraph = source.openGraph) == null ? void 0 : _source_openGraph.hasOwnProperty('images'))) {\n const resolvedOpenGraph = await resolveOpenGraph({\n ...target.openGraph,\n images: openGraph\n }, metadataBase, pathname, {\n ...metadataContext,\n isStaticMetadataRouteFile: true\n }, titleTemplates.openGraph);\n target.openGraph = convertUrlsToStrings(resolvedOpenGraph);\n }\n if (manifest) {\n target.manifest = manifest;\n }\n return target;\n}\n/**\n * Merges the given metadata with the resolved metadata. Returns a new object.\n */ export async function mergeMetadata(route, pathname, { metadata, resolvedMetadata, staticFilesMetadata, titleTemplates, metadataContext, buildState, leafSegmentStaticIcons, cloneResolvedMetadata = true }) {\n const newResolvedMetadata = cloneResolvedMetadata ? structuredClone(resolvedMetadata) : resolvedMetadata;\n const metadataBase = normalizeMetadataBase((metadata == null ? void 0 : metadata.metadataBase) !== undefined ? metadata.metadataBase : resolvedMetadata.metadataBase);\n for(const key_ in metadata){\n const key = key_;\n switch(key){\n case 'title':\n {\n newResolvedMetadata.title = resolveTitle(metadata.title, titleTemplates.title);\n break;\n }\n case 'alternates':\n {\n newResolvedMetadata.alternates = convertUrlsToStrings(await resolveAlternates(metadata.alternates, metadataBase, pathname, metadataContext));\n break;\n }\n case 'openGraph':\n {\n newResolvedMetadata.openGraph = convertUrlsToStrings(await resolveOpenGraph(metadata.openGraph, metadataBase, pathname, metadataContext, titleTemplates.openGraph));\n break;\n }\n case 'twitter':\n {\n newResolvedMetadata.twitter = convertUrlsToStrings(resolveTwitter(metadata.twitter, metadataBase, metadataContext, titleTemplates.twitter));\n break;\n }\n case 'facebook':\n newResolvedMetadata.facebook = resolveFacebook(metadata.facebook);\n break;\n case 'verification':\n newResolvedMetadata.verification = resolveVerification(metadata.verification);\n break;\n case 'icons':\n {\n newResolvedMetadata.icons = convertUrlsToStrings(resolveIcons(metadata.icons));\n break;\n }\n case 'appleWebApp':\n newResolvedMetadata.appleWebApp = resolveAppleWebApp(metadata.appleWebApp);\n break;\n case 'appLinks':\n newResolvedMetadata.appLinks = convertUrlsToStrings(resolveAppLinks(metadata.appLinks));\n break;\n case 'robots':\n {\n newResolvedMetadata.robots = resolveRobots(metadata.robots);\n break;\n }\n case 'archives':\n case 'assets':\n case 'bookmarks':\n case 'keywords':\n {\n newResolvedMetadata[key] = resolveAsArrayOrUndefined(metadata[key]);\n break;\n }\n case 'authors':\n {\n newResolvedMetadata[key] = convertUrlsToStrings(resolveAsArrayOrUndefined(metadata.authors));\n break;\n }\n case 'itunes':\n {\n newResolvedMetadata[key] = await resolveItunes(metadata.itunes, metadataBase, pathname, metadataContext);\n break;\n }\n case 'pagination':\n {\n newResolvedMetadata.pagination = await resolvePagination(metadata.pagination, metadataBase, pathname, metadataContext);\n break;\n }\n // directly assign fields that fallback to null\n case 'abstract':\n newResolvedMetadata[key] = metadata[key] ?? null;\n break;\n case 'applicationName':\n newResolvedMetadata[key] = metadata[key] ?? null;\n break;\n case 'description':\n newResolvedMetadata[key] = metadata[key] ?? null;\n break;\n case 'generator':\n newResolvedMetadata[key] = metadata[key] ?? null;\n break;\n case 'creator':\n newResolvedMetadata[key] = metadata[key] ?? null;\n break;\n case 'publisher':\n newResolvedMetadata[key] = metadata[key] ?? null;\n break;\n case 'category':\n newResolvedMetadata[key] = metadata[key] ?? null;\n break;\n case 'classification':\n newResolvedMetadata[key] = metadata[key] ?? null;\n break;\n case 'referrer':\n newResolvedMetadata[key] = metadata[key] ?? null;\n break;\n case 'formatDetection':\n newResolvedMetadata[key] = metadata[key] ?? null;\n break;\n case 'manifest':\n newResolvedMetadata[key] = convertUrlsToStrings(metadata[key]) ?? null;\n break;\n case 'pinterest':\n newResolvedMetadata[key] = convertUrlsToStrings(metadata[key]) ?? null;\n break;\n case 'other':\n newResolvedMetadata.other = Object.assign({}, newResolvedMetadata.other, metadata.other);\n if (metadata.other) {\n if ('apple-touch-fullscreen' in metadata.other) {\n buildState.warnings.add(`Use appleWebApp instead\\nRead more: https://nextjs.org/docs/app/api-reference/functions/generate-metadata`);\n }\n if ('apple-touch-icon-precomposed' in metadata.other) {\n buildState.warnings.add(`Use icons.apple instead\\nRead more: https://nextjs.org/docs/app/api-reference/functions/generate-metadata`);\n }\n }\n break;\n case 'metadataBase':\n newResolvedMetadata.metadataBase = metadataBase ? metadataBase.toString() : null;\n break;\n case 'apple-touch-fullscreen':\n {\n buildState.warnings.add(`Use appleWebApp instead\\nRead more: https://nextjs.org/docs/app/api-reference/functions/generate-metadata`);\n break;\n }\n case 'apple-touch-icon-precomposed':\n {\n buildState.warnings.add(`Use icons.apple instead\\nRead more: https://nextjs.org/docs/app/api-reference/functions/generate-metadata`);\n break;\n }\n case 'themeColor':\n case 'colorScheme':\n case 'viewport':\n if (metadata[key] != null) {\n buildState.warnings.add(`Unsupported metadata ${key} is configured in metadata export in ${route}. Please move it to viewport export instead.\\nRead more: https://nextjs.org/docs/app/api-reference/functions/generate-viewport`);\n }\n break;\n default:\n {\n key;\n }\n }\n }\n return mergeStaticMetadata(metadataBase, metadata, newResolvedMetadata, staticFilesMetadata, metadataContext, titleTemplates, leafSegmentStaticIcons, pathname);\n}\n/**\n * Merges the given viewport with the resolved viewport. Returns a new object.\n */ export function mergeViewport({ resolvedViewport, viewport, cloneResolvedViewport = true }) {\n const newResolvedViewport = cloneResolvedViewport ? structuredClone(resolvedViewport) : resolvedViewport;\n if (viewport) {\n for(const key_ in viewport){\n const key = key_;\n switch(key){\n case 'themeColor':\n {\n newResolvedViewport.themeColor = resolveThemeColor(viewport.themeColor);\n break;\n }\n case 'colorScheme':\n newResolvedViewport.colorScheme = viewport.colorScheme || null;\n break;\n case 'width':\n case 'height':\n case 'initialScale':\n case 'minimumScale':\n case 'maximumScale':\n case 'userScalable':\n case 'viewportFit':\n case 'interactiveWidget':\n // always override the target with the source\n // @ts-ignore viewport properties\n newResolvedViewport[key] = viewport[key];\n break;\n default:\n key;\n }\n }\n }\n return newResolvedViewport;\n}\nexport function getDefinedViewport(mod, props, tracingProps) {\n if (typeof mod.generateViewport === 'function') {\n const { route } = tracingProps;\n const segmentProps = createSegmentProps(mod.generateViewport, props);\n return Object.assign((parent)=>getTracer().trace(ResolveMetadataSpan.generateViewport, {\n spanName: `generateViewport ${route}`,\n attributes: {\n 'next.page': route\n }\n }, ()=>mod.generateViewport(segmentProps, parent)), {\n $$original: mod.generateViewport\n });\n }\n return mod.viewport || null;\n}\nexport function getDefinedMetadata(mod, props, tracingProps) {\n if (typeof mod.generateMetadata === 'function') {\n const { route } = tracingProps;\n const segmentProps = createSegmentProps(mod.generateMetadata, props);\n return Object.assign((parent)=>getTracer().trace(ResolveMetadataSpan.generateMetadata, {\n spanName: `generateMetadata ${route}`,\n attributes: {\n 'next.page': route\n }\n }, ()=>mod.generateMetadata(segmentProps, parent)), {\n $$original: mod.generateMetadata\n });\n }\n return mod.metadata || null;\n}\n/**\n * If `fn` is a `'use cache'` function, we add special markers to the props,\n * that the cache wrapper reads and removes, before passing the props to the\n * user function.\n */ function createSegmentProps(fn, props) {\n return isUseCacheFunction(fn) ? 'searchParams' in props ? {\n ...props,\n $$isPage: true\n } : {\n ...props,\n $$isLayout: true\n } : props;\n}\nasync function collectStaticImagesFiles(metadata, props, type) {\n if (!(metadata == null ? void 0 : metadata[type])) return undefined;\n const iconPromises = metadata[type].map(async (imageModule)=>await imageModule(props));\n return (iconPromises == null ? void 0 : iconPromises.length) > 0 ? (await Promise.all(iconPromises)).flat() : undefined;\n}\nexport async function resolveStaticMetadata(modules, props) {\n const { metadata } = modules;\n if (!metadata) return null;\n const [icon, apple, openGraph, twitter] = await Promise.all([\n collectStaticImagesFiles(metadata, props, 'icon'),\n collectStaticImagesFiles(metadata, props, 'apple'),\n collectStaticImagesFiles(metadata, props, 'openGraph'),\n collectStaticImagesFiles(metadata, props, 'twitter')\n ]);\n const staticMetadata = {\n icon,\n apple,\n openGraph,\n twitter,\n manifest: metadata.manifest\n };\n return staticMetadata;\n}\nconst isTitleTruthy = (title)=>!!(title == null ? void 0 : title.absolute);\nconst hasTitle = (metadata)=>isTitleTruthy(metadata == null ? void 0 : metadata.title);\nfunction inheritFromMetadata(target, metadata) {\n if (target) {\n if (!hasTitle(target) && hasTitle(metadata)) {\n target.title = metadata.title;\n }\n if (!target.description && metadata.description) {\n target.description = metadata.description;\n }\n }\n}\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst commonOgKeys = [\n 'title',\n 'description',\n 'images'\n];\nexport function postProcessMetadata(metadata, favicon, titleTemplates, metadataContext) {\n const { openGraph, twitter } = metadata;\n if (openGraph) {\n // If there's openGraph information but not configured in twitter,\n // inherit them from openGraph metadata.\n let autoFillProps = {};\n const hasTwTitle = hasTitle(twitter);\n const hasTwDescription = twitter == null ? void 0 : twitter.description;\n const hasTwImages = Boolean((twitter == null ? void 0 : twitter.hasOwnProperty('images')) && twitter.images);\n if (!hasTwTitle) {\n if (isTitleTruthy(openGraph.title)) {\n autoFillProps.title = openGraph.title;\n } else if (metadata.title && isTitleTruthy(metadata.title)) {\n autoFillProps.title = metadata.title;\n }\n }\n if (!hasTwDescription) autoFillProps.description = openGraph.description || metadata.description || undefined;\n if (!hasTwImages) autoFillProps.images = openGraph.images;\n if (Object.keys(autoFillProps).length > 0) {\n const partialTwitter = resolveTwitter(autoFillProps, normalizeMetadataBase(metadata.metadataBase), metadataContext, titleTemplates.twitter);\n if (metadata.twitter) {\n metadata.twitter = Object.assign({}, metadata.twitter, {\n ...!hasTwTitle && {\n title: partialTwitter == null ? void 0 : partialTwitter.title\n },\n ...!hasTwDescription && {\n description: partialTwitter == null ? void 0 : partialTwitter.description\n },\n ...!hasTwImages && {\n images: partialTwitter == null ? void 0 : partialTwitter.images\n }\n });\n } else {\n metadata.twitter = convertUrlsToStrings(partialTwitter);\n }\n }\n }\n // If there's no title and description configured in openGraph or twitter,\n // use the title and description from metadata.\n inheritFromMetadata(openGraph, metadata);\n inheritFromMetadata(twitter, metadata);\n if (favicon) {\n if (!metadata.icons) {\n metadata.icons = {\n icon: [],\n apple: []\n };\n }\n metadata.icons.icon.unshift(favicon);\n }\n return metadata;\n}\nexport function createSelectedMetadata(metadata) {\n const { metadataBase, title, openGraph, twitter, themeColor, colorScheme, viewport, ...metadataTagFields } = metadata;\n // These fields are only used while resolving metadata, or are rendered by\n // the separate viewport pipeline.\n void metadataBase;\n void themeColor;\n void colorScheme;\n void viewport;\n return {\n ...metadataTagFields,\n title: (title == null ? void 0 : title.absolute) || null,\n openGraph: openGraph ? {\n ...openGraph,\n title: openGraph.title.absolute\n } : null,\n twitter: twitter ? {\n ...twitter,\n title: twitter.title.absolute\n } : null\n };\n}\n\n//# sourceMappingURL=metadata-resolution-primitives.js.map","export type ScheduledFn = () => T | PromiseLike\nexport type SchedulerFn = (cb: ScheduledFn) => void\n\n/**\n * Schedules a function to be called on the next tick after the other promises\n * have been resolved.\n *\n * @param cb the function to schedule\n */\nexport const scheduleOnNextTick = (cb: ScheduledFn) => {\n // We use Promise.resolve().then() here so that the operation is scheduled at\n // the end of the promise job queue, we then add it to the next process tick\n // to ensure it's evaluated afterwards.\n //\n // This was inspired by the implementation of the DataLoader interface: https://github.com/graphql/dataloader/blob/d336bd15282664e0be4b4a657cb796f09bafbc6b/src/index.js#L213-L255\n //\n Promise.resolve().then(() => {\n if (process.env.NEXT_RUNTIME === 'edge') {\n setTimeout(cb, 0)\n } else {\n process.nextTick(cb)\n }\n })\n}\n\n/**\n * Schedules a function to be called using `setImmediate` or `setTimeout` if\n * `setImmediate` is not available (like in the Edge runtime).\n *\n * @param cb the function to schedule\n */\nexport const scheduleImmediate = (cb: ScheduledFn): void => {\n if (process.env.NEXT_RUNTIME === 'edge') {\n setTimeout(cb, 0)\n } else {\n setImmediate(cb)\n }\n}\n\n/**\n * returns a promise than resolves in a future task. There is no guarantee that the task it resolves in\n * will be the next task but if you await it you can at least be sure that the current task is over and\n * most usefully that the entire microtask queue of the current task has been emptied.\n */\nexport function atLeastOneTask() {\n return new Promise((resolve) => scheduleImmediate(resolve))\n}\n\n/**\n * This utility function is extracted to make it easier to find places where we are doing\n * specific timing tricks to try to schedule work after React has rendered. This is especially\n * important at the moment because Next.js uses the edge builds of React which use setTimeout to\n * schedule work when you might expect that something like setImmediate would do the trick.\n *\n * Long term we should switch to the node versions of React rendering when possible and then\n * update this to use setImmediate rather than setTimeout\n */\nexport function waitAtLeastOneReactRenderTask(): Promise {\n if (process.env.NEXT_RUNTIME === 'edge') {\n return new Promise((r) => setTimeout(r, 0))\n } else {\n return new Promise((r) => setImmediate(r))\n }\n}\n","import type { UrlWithParsedQuery } from 'url'\nimport { NEXT_RSC_UNION_QUERY } from '../client/components/app-router-headers'\n\nconst DUMMY_ORIGIN = 'http://n'\n\nexport function isFullStringUrl(url: string) {\n return /https?:\\/\\//.test(url)\n}\n\nexport function parseUrl(url: string): URL | undefined {\n let parsed: URL | undefined = undefined\n try {\n parsed = new URL(url, DUMMY_ORIGIN)\n } catch {}\n return parsed\n}\n\nexport function parseReqUrl(url: string): UrlWithParsedQuery | undefined {\n const parsedUrl: URL | undefined = parseUrl(url)\n\n if (!parsedUrl) {\n return\n }\n\n const query: Record = {}\n\n for (const key of parsedUrl.searchParams.keys()) {\n const values = parsedUrl.searchParams.getAll(key)\n query[key] = values.length > 1 ? values : values[0]\n }\n\n const legacyUrl: UrlWithParsedQuery = {\n query,\n hash: parsedUrl.hash,\n search: parsedUrl.search,\n path: parsedUrl.pathname,\n pathname: parsedUrl.pathname,\n href: `${parsedUrl.pathname}${parsedUrl.search}${parsedUrl.hash}`,\n host: '',\n hostname: '',\n auth: '',\n protocol: '',\n slashes: null,\n port: '',\n }\n return legacyUrl\n}\n\nexport function stripNextRscUnionQuery(relativeUrl: string): string {\n const urlInstance = new URL(relativeUrl, DUMMY_ORIGIN)\n urlInstance.searchParams.delete(NEXT_RSC_UNION_QUERY)\n\n return urlInstance.pathname + urlInstance.search\n}\n","/**\n * Percent-encode every character other than horizontal tab and printable ASCII\n * so a value can be safely serialized into an HTTP header.\n *\n * Node's `validateHeaderValue` and `fetch`'s ByteString conversion accept\n * different character ranges. Restricting values to `\\t\\x20-\\x7e` produces a\n * conservative representation that both can serialize. Characters outside a\n * transport's accepted range (Hebrew, Arabic, Chinese, emoji, …) would\n * otherwise throw `ERR_INVALID_CHAR` or a `TypeError`, which crashes ISR or\n * fails a cache read on every affected request.\n *\n * Cache tags are encoded at the public boundaries — tag construction\n * (`getImplicitTags`, `validateTags`) and invalidation input\n * (`revalidatePath`, `revalidateTag`, `updateTag`) — so storage, comparison,\n * and the wire all see the same canonical form.\n *\n * The class is narrower than either transport accepts. Everything inside it\n * passes through byte-for-byte, including `,`, `/`, `%`, `[`, `]`, `_`, `-` and\n * `\\t`, which preserves the comma-separated header format and the\n * dynamic-segment markers in derived tags (`_N_T_/[slug]/page`).\n *\n * Properties:\n * - Fast-path: input that already fits the class is returned unchanged. This\n * makes the encoder idempotent on already-encoded `%xx` sequences.\n * - Matches *runs* of out-of-class code units so surrogate pairs (e.g. an\n * emoji) are handed to `encodeURIComponent` as a complete code point — a\n * per-code-unit regex would split the pair and throw `URIError`.\n */ const OUT_OF_CLASS_CHAR = /[^\\t\\x20-\\x7e]/;\nconst OUT_OF_CLASS_RUN = /[^\\t\\x20-\\x7e]+/g;\nexport function encodeHeaderSafe(value) {\n return OUT_OF_CLASS_CHAR.test(value) ? value.replace(OUT_OF_CLASS_RUN, (run)=>encodeURIComponent(run)) : value;\n}\n\n//# sourceMappingURL=encode-header-safe.js.map","/*\n\nFiles in the rsc directory are meant to be packaged as part of the RSC graph using next-app-loader.\n\n*/ import ReactDOM from 'react-dom';\nexport function preloadStyle(href, crossOrigin, nonce) {\n const opts = {\n as: 'style'\n };\n if (typeof crossOrigin === 'string') {\n opts.crossOrigin = crossOrigin;\n }\n if (typeof nonce === 'string') {\n opts.nonce = nonce;\n }\n ReactDOM.preload(href, opts);\n}\nexport function preloadFont(href, type, crossOrigin, nonce) {\n const opts = {\n as: 'font',\n type\n };\n if (typeof crossOrigin === 'string') {\n opts.crossOrigin = crossOrigin;\n }\n if (typeof nonce === 'string') {\n opts.nonce = nonce;\n }\n ReactDOM.preload(href, opts);\n}\nexport function preconnect(href, crossOrigin, nonce) {\n const opts = {};\n if (typeof crossOrigin === 'string') {\n opts.crossOrigin = crossOrigin;\n }\n if (typeof nonce === 'string') {\n opts.nonce = nonce;\n }\n ;\n ReactDOM.preconnect(href, opts);\n}\n\n//# sourceMappingURL=preloads.js.map","/* eslint-disable @next/internal/no-ambiguous-jsx -- Bundled in entry-base so it gets the right JSX runtime. */ import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { PrefetchHint, StaticPrefetchDisabled } from '../../shared/lib/app-router-types';\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport { createFromReadableStream } from 'react-server-dom-webpack/client';\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport { prerender } from 'react-server-dom-webpack/static';\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport { renderToReadableStream } from 'react-server-dom-webpack/server';\nimport { streamFromBuffer, streamToBuffer } from '../stream-utils/node-web-streams-helper';\nimport { PAGE_SEGMENT_KEY } from '../../shared/lib/segment';\nimport { waitAtLeastOneReactRenderTask } from '../../lib/scheduler';\nimport { createPromiseWithResolvers } from '../../shared/lib/promise-with-resolvers';\nimport { createSegmentRequestKeyPart, appendSegmentRequestKeyPart, ROOT_SEGMENT_REQUEST_KEY, HEAD_REQUEST_KEY } from '../../shared/lib/segment-cache/segment-value-encoding';\nimport { getDigestForWellKnownError } from './create-error-handler';\nimport { Phase, printDebugThrownValueForProspectiveRender } from './prospective-render-utils';\nimport { workAsyncStorage } from './work-async-storage.external';\nimport { readFulfilledValue, transportSegmentToSegment } from '../../shared/lib/rsc-transport';\n/**\n * Returns the wire identity for a segment in a per-segment prefetch\n * response. When client param parsing is enabled (cacheComponents), the\n * param value is omitted (`k: null`) so the response stays byte-identical —\n * and therefore cacheable — across param values; the client parses the value\n * from the rendered pathname instead.\n */ function createPrefetchTransportSegment(segment, isClientParamParsingEnabled) {\n if (typeof segment === 'string' || !isClientParamParsingEnabled || segment.k === null) {\n return segment;\n }\n return {\n n: segment.n,\n t: segment.t,\n k: null,\n s: segment.s\n };\n}\nconst filterStackFrame = process.env.NODE_ENV !== 'production' ? require('../lib/source-maps').filterStackFrameDEV : undefined;\nconst findSourceMapURL = process.env.NODE_ENV !== 'production' ? require('../lib/source-maps').findSourceMapURLDEV : undefined;\nfunction onSegmentPrerenderError(error) {\n const digest = getDigestForWellKnownError(error);\n if (digest) {\n return digest;\n }\n // We don't need to log the errors because we would have already done that\n // when generating the original Flight stream for the whole page.\n if (process.env.NEXT_DEBUG_BUILD || process.env.__NEXT_VERBOSE_LOGGING) {\n const workStore = workAsyncStorage.getStore();\n printDebugThrownValueForProspectiveRender(error, (workStore == null ? void 0 : workStore.route) ?? 'unknown route', Phase.SegmentCollection);\n }\n}\nexport async function collectSegmentData(isCacheComponentsEnabled, fullPageDataBuffer, staleTime, clientModules, serverConsumerManifest, prefetchInlining, hints, isUpgradeableISRFallback) {\n // Traverse the router tree and generate a prefetch response for each segment.\n // A mutable map to collect the results as we traverse the route tree.\n const resultMap = new Map();\n // Before we start, warm up the module cache by decoding the page data once.\n // Then we can assume that any remaining async tasks that occur the next time\n // are due to hanging promises caused by dynamic data access. Note we only\n // have to do this once per page, not per individual segment.\n //\n // The warm-up decode also tells us the page's own shell byte boundary (its\n // `a` field): a byte offset into fullPageDataBuffer marking the end of the\n // page's shell stage, null if the shell is identical to the full static\n // response, or undefined if the render wasn't staged (no shell exists).\n //\n // And it tells us whether the render accessed runtime data (cookies,\n // headers, fallback params, searchParams, ...): the settled value of the\n // page's embedded access flag (its `u` field). Conservatively true when\n // the page carries no flag (legacy render paths) or the decode fails.\n let pageShellByteLength = undefined;\n let runtimeDataAccessed = true;\n try {\n const pagePayload = await createFromReadableStream(// Use a stream that never closes so pending references (dynamic\n // holes) can't error the decode.\n createUnclosingPrefetchStream(streamFromBuffer(fullPageDataBuffer)), {\n findSourceMapURL,\n serverConsumerManifest\n });\n await waitAtLeastOneReactRenderTask();\n // `a` is a promise resolved mid-stream; the whole buffer is present, so\n // it resolves. undefined means the render wasn't staged (no shell).\n if (pagePayload.a !== undefined) {\n pageShellByteLength = await pagePayload.a;\n }\n if (pagePayload.u !== undefined) {\n // Every byte of the page buffer is present, so the flag's row (if the\n // render emitted one) is readable off its thenable status. A pending\n // row reads as `false`: a successful render always settles the flag\n // (prerender completion resolves `false`), so a pending row can only\n // appear in an aborted render's buffer, where it means no access was\n // recorded before the abort. A rejected row reads as `true`,\n // conservatively — an abort errors rows that were still pending when\n // it happened.\n runtimeDataAccessed = readFulfilledValue(pagePayload.u, false, true);\n }\n } catch {}\n // All segment responses of a page share one decode of the page buffer, and\n // one `release` promise that coordinates the two serialization stages: it\n // resolves when the coordinator lets the shell-stage bytes settle into the\n // rest of the page data (see renderSegmentPrefetch, which measures each\n // response's shell boundary at that moment). Its resolved value is true\n // when the page's shell is identical to its full static response — then so\n // is every segment's, so each resolves `a` to null instead of a boundary.\n //\n // When the page has a real shell boundary the decode is staged: only the\n // shell byte prefix is enqueued now, the rest held until the release. With\n // no boundary there's nothing to stage on, so the whole buffer is decoded\n // at once and the release is resolved eagerly (segment boundaries then fall\n // out as 0 or null without any measurement).\n const release = createPromiseWithResolvers();\n let pageDataStream;\n if (typeof pageShellByteLength === 'number') {\n const prefixLength = pageShellByteLength;\n pageDataStream = new ReadableStream({\n async start (controller) {\n // The shell byte prefix decodes to the page's shell variant:\n // everything the staged page render serialized after its shell stage\n // stays a pending reference until the release enqueues the rest.\n controller.enqueue(fullPageDataBuffer.subarray(0, prefixLength));\n await release.promise;\n controller.enqueue(fullPageDataBuffer.subarray(prefixLength));\n // Intentionally never closed, like createUnclosingPrefetchStream:\n // the page stream may hold references that never resolve (dynamic\n // holes), and Flight errors if the stream closes while any are pending.\n }\n });\n } else {\n pageDataStream = createUnclosingPrefetchStream(streamFromBuffer(fullPageDataBuffer));\n release.resolve(pageShellByteLength === null);\n }\n // Create an abort controller that we'll use to stop the stream.\n const abortController = new AbortController();\n const onCompletedProcessingRouteTree = async ()=>{\n // Since all we're doing is decoding and re-encoding a cached prerender, if\n // serializing the stream takes longer than a microtask, it must because of\n // hanging promises caused by dynamic data.\n await waitAtLeastOneReactRenderTask();\n abortController.abort();\n };\n // Generate a stream for the route tree prefetch. While we're walking the\n // tree, we'll also spawn additional tasks to generate the segment prefetches.\n // The promises for these tasks are pushed to a mutable array that we will\n // await once the route tree is fully rendered.\n const segmentTasks = [];\n let treeStream;\n try {\n const prerenderResult = await prerender(// PrefetchFlightResponse is not a valid return type for a React\n // component, but we need to use a component so that when we decode the\n // original stream inside of it, the side effects are transferred to the\n // new stream.\n // @ts-expect-error\n /*#__PURE__*/ _jsx(PrefetchTreeData, {\n isClientParamParsingEnabled: isCacheComponentsEnabled,\n pageDataStream: pageDataStream,\n serverConsumerManifest: serverConsumerManifest,\n clientModules: clientModules,\n staleTime: staleTime,\n segmentTasks: segmentTasks,\n onCompletedProcessingRouteTree: onCompletedProcessingRouteTree,\n prefetchInlining: prefetchInlining,\n hints: hints,\n isUpgradeableISRFallback: isUpgradeableISRFallback,\n runtimeDataAccessed: runtimeDataAccessed,\n shellStageRelease: release.promise\n }), clientModules, {\n filterStackFrame,\n signal: abortController.signal,\n onError: onSegmentPrerenderError\n });\n treeStream = prerenderResult.prelude;\n // The tree walk has spawned every segment render, each against the fully\n // available shell prefix; one task later they've flushed their shells and\n // are blocked on the release for the rest.\n await waitAtLeastOneReactRenderTask();\n } catch (error) {\n // The release still fires (finally below), so the spawned tasks run to\n // completion — but the throw skips the Promise.all that observes them.\n // Absorb their rejections so a failing task can't crash as an unhandled\n // rejection and mask this error.\n void Promise.allSettled(segmentTasks);\n throw error;\n } finally{\n // Start the second stage: settle the rest of the page data into the\n // decode so each render can measure its boundary and finish. Runs on\n // failure too, so a tree-render error can't strand the spawned tasks on\n // a release that never comes. (false is inert here: a staged page's shell\n // is always a strict prefix, and an unstaged release already resolved.)\n // TODO: I don't think it's really necessary to unblock the spawned tasks.\n // It's fine if they hang indefinitely; the tasks will be garbage collected.\n release.resolve(false);\n }\n // Write the route tree to a special `/_tree` segment.\n const treeBuffer = await streamToBuffer(treeStream);\n resultMap.set('/_tree', treeBuffer);\n // Also output the entire full page data response\n resultMap.set('/_full', fullPageDataBuffer);\n // Await the segment tasks in parallel and write the segment prefetches to\n // the result map.\n let hasPageSegment = false;\n for (const [segmentPath, buffer] of (await Promise.all(segmentTasks))){\n resultMap.set(segmentPath, buffer);\n if (segmentPath.endsWith('__PAGE__')) {\n hasPageSegment = true;\n }\n }\n if (!hasPageSegment) {\n // The build requires at least one segment path ending with __PAGE__ to\n // register the catch-all segment data route. When all page segments are\n // disabled (e.g. every leaf has runtime prefetching), no __PAGE__ entry\n // is emitted. Write a dummy entry with a path that doesn't match any\n // real route segment so the client will never request it.\n //\n // TODO: Remove the __PAGE__ requirement from the build instead of\n // working around it here. The invariant is outdated now that segments\n // can be disabled.\n resultMap.set('/todo-remove-fake-segment/__PAGE__', Buffer.alloc(0));\n }\n return resultMap;\n}\n/**\n * Compute prefetch hints for a route by measuring segment sizes and deciding\n * which segments should be inlined. Only runs at build time. The results are\n * written to prefetch-hints.json and loaded at server startup.\n *\n * This is a separate pass from collectSegmentData so that the inlining\n * decisions can be fed back into collectSegmentData to control which segments\n * are output as separate entries vs. inlined into their parent.\n *\n * `shouldAttemptStatic{Shell,Prefetch}` (computed by the caller from the prerender's\n * runtime-data tracking) is folded onto every node of the result, so the\n * manifest delivers it to every response like the other hint bits. It's\n * independent of the inlining feature: when `inlining` is false the sizing\n * pass is skipped entirely — no inlining bits are emitted — and only the\n * tree shape carrying the static-prefetch hint is built.\n *\n * Both kinds of hint have the same structure and the same lifetime — one\n * bitmask per node of the route tree, measured once per build and constant\n * for the deployment. They differ only in what they're derived from: the\n * inlining bits from the size of each segment's encoded response, the\n * static-prefetch bit from what the decoded body turned out to access.\n */ export async function collectPrefetchHints(isCacheComponentsEnabled, fullPageDataBuffer, staleTime, clientModules, serverConsumerManifest, inlining, shouldAttemptStaticShell, shouldAttemptStaticPrefetch) {\n // Warm up the module cache, same as collectSegmentData.\n try {\n await createFromReadableStream(streamFromBuffer(fullPageDataBuffer), {\n findSourceMapURL,\n serverConsumerManifest\n });\n await waitAtLeastOneReactRenderTask();\n } catch {}\n // Decode the Flight data to walk the route tree.\n const initialRSCPayload = await createFromReadableStream(createUnclosingPrefetchStream(streamFromBuffer(fullPageDataBuffer)), {\n findSourceMapURL,\n serverConsumerManifest\n });\n const transportData = initialRSCPayload.t;\n const rootNode = transportData.t;\n const buildId = initialRSCPayload.b;\n const head = transportData.h.r;\n // The hints every node starts from. The static-prefetch-attempt hints are\n // page-global (the tracking that creates them is), so they go on every node,\n // non-propagating — the client reads it per segment, and the runtime\n // hint merging walks the manifest tree node-by-node.\n // (NOTE: if the prefetch is static, then the shell must be as well)\n let baseHints = 0;\n if (shouldAttemptStaticShell) {\n baseHints |= PrefetchHint.ShouldAttemptStaticShell;\n }\n if (shouldAttemptStaticPrefetch) {\n baseHints |= PrefetchHint.ShouldAttemptStaticPrefetch;\n }\n if (inlining === false) {\n // Prefetch inlining is disabled: nothing to measure, and no inlining\n // bits may be emitted (the client would act on them even though the\n // responses aren't bundled). Just mirror the route tree's shape with\n // the base hints on every node.\n return createUniformHintTree(rootNode, baseHints);\n }\n const { maxSize, maxBundleSize } = inlining;\n // Root params are forwarded once at the top level of each segment\n // response, same as the page response's own root vary params; the client\n // unions them into each segment's set at read time.\n const rootVaryParamsIterable = initialRSCPayload.r ?? null;\n // The page's staleTime iterable, forwarded into each segment response. When\n // Cache Components is off the page carries no `s`, so wrap the eager value.\n const staleTimeIterable = initialRSCPayload.s ?? createStaleTimeIterable(staleTime);\n // The page's runtime-data-access flag, forwarded into each segment\n // response's `needsRuntimeRequest`. This pass only measures sizes, so a\n // conservative already-resolved `true` stands in when the page carries\n // no `u`.\n const needsRuntimeRequest = initialRSCPayload.u ?? Promise.resolve(true);\n // This pass only measures gzip sizes for inlining hints, so nothing is\n // staged (each response's `a` falls out as the no-shell sentinel, 0), but\n // the responses are byte-identical in shape to the real ones — the point\n // of measuring. Pre-resolving false is the \"nothing staged\" release.\n const shellStageRelease = Promise.resolve(false);\n // This is the pass that COMPUTES the hints, so the spine hints here can't\n // be the final merged values the real pass emits — use the best available\n // approximation (the payload's own hints plus the base hints) so the\n // measured responses stay representative in size. The difference is at\n // most a few bytes per spine node (the inlining bits, on the first build).\n const rootSpine = {\n segment: createPrefetchTransportSegment(rootNode.s, isCacheComponentsEnabled),\n prefetchHints: ((rootNode.h ?? 0) | baseHints) & ~PrefetchHint.InliningHintsStale,\n parallelRouteKey: null,\n parent: null\n };\n // Measure the head (metadata/viewport) gzip size so the main traversal\n // can decide whether to inline it into a page's bundle.\n const [, headBuffer] = await renderSegmentPrefetch(buildId, staleTimeIterable, null, HEAD_REQUEST_KEY, rootSpine, null, {\n rsc: head,\n varyParams: initialRSCPayload.t.h.v\n }, rootVaryParamsIterable, clientModules, // Fallback-ness doesn't affect size, so pass false.\n false, needsRuntimeRequest, shellStageRelease);\n const headGzipSize = await getGzipSize(headBuffer);\n // Mutable accumulator: the first segment that accepts the head sets this\n // to true. Once set, subsequent segments skip the check.\n const headInlineState = {\n inlined: false\n };\n // Walk the tree with the parent-first, child-decides algorithm.\n const { node } = await collectPrefetchHintsImpl(isCacheComponentsEnabled, rootNode, buildId, staleTimeIterable, clientModules, ROOT_SEGMENT_REQUEST_KEY, rootSpine, null, baseHints, maxSize, maxBundleSize, headGzipSize, headInlineState, rootVaryParamsIterable, needsRuntimeRequest, shellStageRelease);\n if (!headInlineState.inlined) {\n // No page could accept the head. Set HeadOutlined on the root so the\n // client knows to fetch the head separately.\n node.hints |= PrefetchHint.HeadOutlined;\n }\n return node;\n}\n// Measure a segment's gzip size and decide whether it should be inlined.\n//\n// These hints are computed once during build and never change for the\n// lifetime of that deployment. The client can assume that hints delivered as\n// part of one request will be the same during a subsequent request, given\n// the same build ID. There's no skew to worry about as long as the build\n// itself is consistent.\n//\n// In the Segment Cache, we split page prefetches into multiple requests so\n// that each one can be cached and deduped independently. However, some\n// segments are small enough that the potential caching benefits are not worth\n// the additional network overhead. For these, we inline a parent's data into\n// one of its children's responses, avoiding a separate request. The parent\n// is inlined into the child (not the other way around) because the parent's\n// response is more likely to be shared across multiple pages. The child's\n// response is already page-specific, so adding the parent's data there\n// doesn't meaningfully reduce deduplication. It's similar to how JS bundlers\n// decide whether to inline a module into a chunk.\n//\n// The algorithm is parent-first, child-decides: the parent measures itself\n// and passes its gzip size down. Each child decides whether to accept. A\n// child rejects if the parent exceeds maxSize or if accepting would push\n// the cumulative inlined bytes past maxBundleSize. This produces\n// both ParentInlinedIntoSelf (on the child) and InlinedIntoChild (on the\n// parent) in a single pass.\nasync function collectPrefetchHintsImpl(isClientParamParsingEnabled, node, buildId, staleTimeIterable, clientModules, // TODO: Consider persisting the computed requestKey into the hints output\n// so it doesn't need to be recomputed during the build. This might also\n// suggest renaming prefetch-hints.json to something like\n// segment-manifest.json, since it would contain more than just hints.\nrequestKey, spine, parentGzipSize, // Hints every node starts from (the page-global static-prefetch-attempt\n// hint); the inlining bits computed here are OR'd on top.\nbaseHints, maxSize, maxBundleSize, headGzipSize, headInlineState, rootVaryParamsIterable, needsRuntimeRequest, shellStageRelease) {\n // Check if static prefetching is disabled for this segment\n // (prefetch: 'force-disabled' / instant = false). Such segments act as\n // transparent pass-throughs in the bundle chain: they contribute zero\n // bytes of their own and pass parent data through to children. However,\n // they cannot be the terminal of a chain — if no child accepts the parent\n // data, the parent cannot be inlined into this segment because there's no\n // static response to carry it. See the ParentInlinedIntoSelf check below.\n //\n // Partial Prefetching segments are NOT disabled even though they may need\n // a runtime prefetch: they have static data — emitted unconditionally, so\n // the client can attempt a static prefetch before deciding whether the\n // runtime request is needed — and are measured and inlined like any other\n // segment.\n const isStaticPrefetchDisabled = ((node.h ?? 0) & StaticPrefetchDisabled) !== 0;\n // Render current segment and measure its gzip size. Skip measurement for\n // segments with static prefetching disabled since they contribute nothing.\n const nodeRsc = node.d.r;\n let currentGzipSize = null;\n if (!isStaticPrefetchDisabled && nodeRsc !== null) {\n const [, buffer] = await renderSegmentPrefetch(buildId, staleTimeIterable, {\n rsc: nodeRsc,\n varyParams: node.d.v\n }, requestKey, spine, null, null, rootVaryParamsIterable, clientModules, // Size-measurement pass only; fallback-ness is irrelevant here.\n false, needsRuntimeRequest, shellStageRelease);\n currentGzipSize = await getGzipSize(buffer);\n }\n // Only offer this segment to its children for inlining if its gzip size\n // is below maxSize. Segments with static prefetching disabled have\n // nothing to offer (their slot in the bundle is null).\n const sizeToInline = currentGzipSize !== null && currentGzipSize < maxSize ? currentGzipSize : null;\n // Process children serially (not in parallel) to ensure deterministic\n // results. Since this only runs at build time and the rendering is just\n // re-encoding cached prerenders, this won't impact build times. Each child\n // receives our gzip size and decides whether to inline us. Once a child\n // accepts, we stop offering to remaining siblings — the parent is only\n // inlined into one child. In parallel routes, this avoids duplicating the\n // parent's data across multiple sibling responses.\n const children = node.c;\n let slots = null;\n let didInlineIntoChild = false;\n let acceptingChildInlinedBytes = 0;\n // Track the smallest inlinedBytes across all children so we know how much\n // budget remains along the best path. When our own parent asks whether we\n // can accept its data, the parent's bytes would flow through to the child\n // with the most remaining headroom.\n let smallestChildInlinedBytes = Infinity;\n if (children === undefined) {\n // Leaf segment: no children have consumed any budget yet.\n smallestChildInlinedBytes = 0;\n } else {\n for (const [parallelRouteKey, childNode] of children){\n const childRequestKey = appendSegmentRequestKeyPart(requestKey, parallelRouteKey, createSegmentRequestKeyPart(transportSegmentToSegment(childNode.s)));\n // Determine what size to offer children for inlining. Normally we offer\n // our own size. But if static prefetching is disabled for this segment,\n // it has no data of its own — instead it passes the parent's offer\n // through to children. This allows a static grandparent to inline\n // through a disabled intermediate segment into a static grandchild.\n const sizeToOfferChild = isStaticPrefetchDisabled ? parentGzipSize : sizeToInline;\n const childResult = await collectPrefetchHintsImpl(isClientParamParsingEnabled, childNode, buildId, staleTimeIterable, clientModules, childRequestKey, {\n segment: createPrefetchTransportSegment(childNode.s, isClientParamParsingEnabled),\n // Best-available approximation of the merged hints, for\n // representative sizes — see the root spine in\n // collectPrefetchHints.\n prefetchHints: ((childNode.h ?? 0) | baseHints) & ~PrefetchHint.InliningHintsStale,\n parallelRouteKey,\n parent: spine\n }, // Once a child has accepted us, stop offering to remaining siblings.\n didInlineIntoChild ? null : sizeToOfferChild, baseHints, maxSize, maxBundleSize, headGzipSize, headInlineState, rootVaryParamsIterable, needsRuntimeRequest, shellStageRelease);\n if (slots === null) {\n slots = {};\n }\n slots[parallelRouteKey] = childResult.node;\n if (childResult.node.hints & PrefetchHint.ParentInlinedIntoSelf) {\n // This child accepted our data — it will include our segment's\n // response in its own. No need to track headroom anymore since\n // we already know which child we're inlined into.\n didInlineIntoChild = true;\n acceptingChildInlinedBytes = childResult.inlinedBytes;\n } else if (!didInlineIntoChild) {\n // Track the child with the most remaining headroom. Used below\n // when deciding whether to accept our own parent's data.\n if (childResult.inlinedBytes < smallestChildInlinedBytes) {\n smallestChildInlinedBytes = childResult.inlinedBytes;\n }\n }\n }\n }\n // Mark this segment as InlinedIntoChild if one of its children accepted.\n // This means this segment doesn't need its own prefetch response — its\n // data is included in the accepting child's response instead.\n let hints = baseHints;\n if (didInlineIntoChild) {\n hints |= PrefetchHint.InlinedIntoChild;\n }\n // inlinedBytes represents the total gzipped bytes of parent data inlined\n // into the deepest \"inlining target\" along this branch. It starts at 0 at\n // the leaves and grows as parents are inlined going back up the tree. If a\n // child accepted us, our size is already counted in that child's value.\n let inlinedBytes = didInlineIntoChild ? acceptingChildInlinedBytes : smallestChildInlinedBytes;\n // Determine which segment is responsible for the head (metadata/viewport).\n //\n // The head is assigned to the first page bundle terminal that has budget\n // room; otherwise it's outlined as a standalone response (HeadOutlined,\n // set by the caller). Head can only be inlined into a page, not a layout,\n // because pages may access additional params (e.g. searchParams) that\n // layouts cannot. It must be a bundle terminal because only bundle\n // terminals emit a static response of their own (the head bundle is\n // appended in collectSegmentDataImpl's standalone-task branch) —\n // assigning the head to an inlined segment would leave it out of every\n // static response.\n //\n // A disabled segment (prefetch: 'force-disabled' / instant = false) is\n // never a valid target — it has no response at all. A Partial Prefetching\n // segment, by contrast, DOES have a static response (see\n // isStaticPrefetchDisabled above) and is an ordinary candidate. Runtime\n // prefetching gets no special treatment here: whether the client will\n // actually issue a runtime request can't be known at build time (a static\n // prefetch attempt may prove sufficient and skip it), so the head must\n // always be reachable through the static responses — inlined into one of\n // them, or outlined.\n const isBundleTerminal = !didInlineIntoChild && !isStaticPrefetchDisabled;\n const segment = node.s;\n const isPageSegment = typeof segment === 'string' ? segment === PAGE_SEGMENT_KEY : segment.n === PAGE_SEGMENT_KEY;\n if (!headInlineState.inlined && isBundleTerminal && isPageSegment) {\n // The head counts against the bundle budget.\n if (inlinedBytes + headGzipSize < maxBundleSize) {\n hints |= PrefetchHint.HeadInlinedIntoSelf;\n inlinedBytes += headGzipSize;\n headInlineState.inlined = true;\n }\n }\n // Decide whether to accept our own parent's data. Conditions:\n //\n // 1. The parent offered us a size (parentGzipSize is not null). It's null\n // when the parent is too large to inline or when this is the root.\n //\n // 2. The total inlined bytes along this branch wouldn't exceed the budget.\n // Even if each segment is individually small, at some point it no\n // longer makes sense to keep adding bytes because the combined response\n // is unique per URL and can't be deduped.\n //\n // 3. If this segment has static prefetching disabled, it can only accept\n // the parent if it has successfully inlined into a child. A disabled\n // segment is a transparent pass-through — it passes parent data through\n // to descendants. But if no descendant accepted, there's no static\n // response to carry the parent's data, so the parent must remain\n // outlined.\n //\n // A node can be both InlinedIntoChild and ParentInlinedIntoSelf. This\n // happens in multi-level chains: GP → P → C where all are small. C\n // accepts P (P is InlinedIntoChild), then P also accepts GP (P is\n // ParentInlinedIntoSelf). The result: C's response includes both P's\n // and GP's data. The parent's data flows through to the deepest\n // accepting descendant.\n if (parentGzipSize !== null) {\n // A disabled segment can only pass through — it needs a child to\n // ultimately accept the parent's data.\n const canAcceptParent = !isStaticPrefetchDisabled || didInlineIntoChild;\n if (canAcceptParent && inlinedBytes + parentGzipSize < maxBundleSize) {\n hints |= PrefetchHint.ParentInlinedIntoSelf;\n inlinedBytes += parentGzipSize;\n }\n }\n return {\n node: {\n hints,\n slots\n },\n inlinedBytes\n };\n}\n// Mirrors the route tree's shape with the same hints on every node. Used by\n// collectPrefetchHints when prefetch inlining is disabled: there are no sizes\n// to measure, but the static-prefetch-attempt hint still needs a manifest\n// tree — the client reads the bit per node, and the runtime hint merging\n// (createTransportTreeFromLoaderTree) walks the manifest tree in parallel\n// with the loader tree, so a bit that's missing from a node never reaches the\n// corresponding segment.\nfunction createUniformHintTree(node, hints) {\n let slots = null;\n const children = node.c;\n if (children !== undefined) {\n for (const [parallelRouteKey, childNode] of children){\n if (slots === null) {\n slots = {};\n }\n slots[parallelRouteKey] = createUniformHintTree(childNode, hints);\n }\n }\n return {\n hints,\n slots\n };\n}\n// We use gzip size rather than raw size because it better reflects the actual\n// transfer cost. The inlining trade-off is about whether the overhead of an\n// additional HTTP request (connection setup, headers, round trip) is worth\n// the deduplication benefit of keeping a segment separate. Below some\n// compressed size, the request overhead dominates and inlining is better.\n// Above it, the deduplication benefit of a cacheable standalone response\n// wins out.\nasync function getGzipSize(buffer) {\n const stream = new Blob([\n new Uint8Array(buffer)\n ]).stream().pipeThrough(new CompressionStream('gzip'));\n const compressedBlob = await new Response(stream).blob();\n return compressedBlob.size;\n}\nasync function PrefetchTreeData({ isClientParamParsingEnabled, pageDataStream, serverConsumerManifest, clientModules, staleTime, segmentTasks, onCompletedProcessingRouteTree, prefetchInlining, hints, isUpgradeableISRFallback, runtimeDataAccessed, shellStageRelease }) {\n // We're currently rendering a Flight response for the route tree prefetch.\n // Inside this component, decode the Flight stream for the whole page. This is\n // a hack to transfer the side effects from the original Flight stream (e.g.\n // Float preloads) onto the Flight stream for the tree prefetch.\n // TODO: React needs a better way to do this. Needed for Server Actions, too.\n //\n // This is the decode that everything downstream reads from: the route tree\n // walk below and, through it, every segment task. When staged, the values\n // extracted here hold pending references at the param-dependent holes; the\n // shell byte prefix carries the full router tree and the skeleton of every\n // segment's data, so the root resolves from the prefix alone (the rest\n // arrives at the release).\n const initialRSCPayload = await createFromReadableStream(pageDataStream, {\n findSourceMapURL,\n serverConsumerManifest\n });\n const transportData = initialRSCPayload.t;\n const rootNode = transportData.t;\n const buildId = initialRSCPayload.b;\n const head = transportData.h.r;\n // Root params are forwarded once at the top level of each segment\n // response, same as the page response's own root vary params; the client\n // unions them into each segment's set at read time.\n const rootVaryParamsIterable = initialRSCPayload.r ?? null;\n // The page's staleTime iterable, forwarded into each segment response. When\n // Cache Components is off the page carries no `s`, so wrap the eager value.\n const staleTimeIterable = initialRSCPayload.s ?? createStaleTimeIterable(staleTime);\n // The page's runtime-data-access flag, forwarded into each segment\n // response's `needsRuntimeRequest`. When the page carries no `u` (e.g.\n // legacy render paths), wrap the flag the caller read from the warm-up\n // decode in an already-resolved promise.\n const needsRuntimeRequest = initialRSCPayload.u ?? Promise.resolve(runtimeDataAccessed);\n // Only applies when prefetch inlining is enabled — the client doesn't\n // know to look for the head inside a page's response otherwise.\n const headIsInlined = prefetchInlining && hints !== null && !(hints.hints & PrefetchHint.HeadOutlined);\n // Compute the route metadata tree by traversing the page payload's\n // transport tree. As we walk the tree, we will also spawn a task to produce\n // a prefetch response for each segment. When prefetch inlining is enabled,\n // small segments are bundled into their children's responses based on the\n // hint bits.\n const headData = {\n rsc: head,\n varyParams: initialRSCPayload.t.h.v\n };\n const rootSpine = {\n segment: createPrefetchTransportSegment(rootNode.s, isClientParamParsingEnabled),\n prefetchHints: 0,\n parallelRouteKey: null,\n parent: null\n };\n const tree = collectSegmentDataImpl(isClientParamParsingEnabled, rootNode, buildId, staleTimeIterable, clientModules, ROOT_SEGMENT_REQUEST_KEY, rootSpine, segmentTasks, prefetchInlining, hints, null, headIsInlined ? headData : null, rootVaryParamsIterable, isUpgradeableISRFallback, needsRuntimeRequest, shellStageRelease);\n // Spawn a task to produce a prefetch response for the \"head\" segment,\n // unless it was inlined into a page's bundle.\n if (!headIsInlined) {\n segmentTasks.push(waitAtLeastOneReactRenderTask().then(()=>renderSegmentPrefetch(buildId, staleTimeIterable, null, HEAD_REQUEST_KEY, rootSpine, null, headData, rootVaryParamsIterable, clientModules, isUpgradeableISRFallback, needsRuntimeRequest, shellStageRelease)));\n }\n // Notify the abort controller that we're done processing the route tree.\n // Anything async that happens after this point must be due to hanging\n // promises in the original stream.\n onCompletedProcessingRouteTree();\n // Render the route tree to a special `/_tree` segment. The response is an\n // ordinary PrefetchFlightResponse carrying only a buildId and a\n // structure-only tree.\n return buildId ? {\n b: buildId,\n t: {\n t: tree\n }\n } : {\n t: {\n t: tree\n }\n };\n}\nfunction collectSegmentDataImpl(isClientParamParsingEnabled, node, buildId, staleTimeIterable, clientModules, requestKey, // The identity path from the root down to this segment, used by each\n// spawned segment response to emit a root-anchored tree.\nspine, segmentTasks, prefetchInlining, hintTree, parentBundle, headData, rootVaryParamsIterable, isUpgradeableISRFallback, needsRuntimeRequest, shellStageRelease) {\n // Union the hints already embedded in the page payload's tree with the\n // separately-computed build-time hints. During the initial build, the\n // payload was produced before collectPrefetchHints ran, so inlining hints\n // (ParentInlinedIntoSelf, InlinedIntoChild) won't be in the node's hints\n // yet. On subsequent renders the hints are already there, so the union is\n // idempotent.\n //\n // Always strip InliningHintsStale from the result. That bit is only\n // relevant for the initial RSC payload baked into HTML — the /_tree\n // response produced here always has correct hints, so the client should\n // never see InliningHintsStale in a /_tree response.\n const prefetchHints = ((node.h ?? 0) | (hintTree !== null ? hintTree.hints : 0)) & ~PrefetchHint.InliningHintsStale;\n // Record the merged hints on this segment's spine node, so every segment\n // response whose tree passes through this position emits them (see\n // SegmentSpine). Spawned response renders run after the walk, so the\n // mutation is always visible to them.\n spine.prefetchHints = prefetchHints;\n // The params this segment's own output varies on, forwarded into its\n // response as-is. Root params are forwarded separately, once per response.\n const varyParams = node.d.v;\n // If static prefetching is disabled for this segment (prefetch: 'force-disabled'),\n // it still participates in the bundle chain but with null data.\n // Its node in the response tree carries identity only, so the client skips\n // creating a cache entry for it.\n //\n // Partial Prefetching segments are NOT disabled even though they may need\n // a runtime prefetch: their static data is emitted UNCONDITIONALLY, so the\n // client can use it to attempt a static prefetch before deciding whether\n // the segment's runtime request is actually needed.\n const staticPrefetchDisabled = (prefetchHints & StaticPrefetchDisabled) !== 0;\n const nodeRsc = node.d.r;\n const rsc = !staticPrefetchDisabled ? nodeRsc : null;\n // Determine whether this segment's data should be accumulated into a\n // child's response (inlining) or spawned as its own task. When inlining\n // is disabled, the hint bits may still be set (they're computed at build\n // time regardless) but we ignore them — every segment is rendered\n // standalone because the client doesn't know how to parse bundled\n // responses.\n let childBundle = null;\n if (prefetchInlining && prefetchHints & PrefetchHint.InlinedIntoChild) {\n // This segment is small enough that its data will be included in one\n // of its children's responses. Don't spawn a separate task — prepend\n // this segment's data onto the linked list so the accepting child can\n // bundle it into its response.\n if (nodeRsc !== null) {\n childBundle = {\n data: rsc !== null ? {\n rsc,\n varyParams\n } : null,\n next: parentBundle\n };\n }\n } else {\n // This segment is not inlined into a child. Spawn a task to render it.\n // If it has ParentInlinedIntoSelf, the accumulated parents are included\n // in its response. Otherwise parentBundle is null and it renders as a\n // standalone single-segment response.\n //\n // Skip spawning a task if rsc is null (disabled segment) — there's no\n // data to serve and the client won't request it.\n if (rsc !== null) {\n const bundle = prefetchHints & PrefetchHint.ParentInlinedIntoSelf ? parentBundle : null;\n // If this page accepts the head, include it in the response, where it\n // rides on the envelope (a response's tree only carries route\n // segments; the head has no tree position).\n const headForResponse = headData !== null && prefetchHints & PrefetchHint.HeadInlinedIntoSelf ? headData : null;\n segmentTasks.push(waitAtLeastOneReactRenderTask().then(()=>renderSegmentPrefetch(buildId, staleTimeIterable, {\n rsc,\n varyParams\n }, requestKey, spine, bundle, headForResponse, rootVaryParamsIterable, clientModules, isUpgradeableISRFallback, needsRuntimeRequest, shellStageRelease)));\n }\n // childBundle stays null — reset the accumulator for children.\n }\n // The child nodes of the tree prefetch. Sent to the client as part of the\n // /_tree response.\n let slots;\n const children = node.c;\n if (children !== undefined) {\n for (const [parallelRouteKey, childNode] of children){\n const childRequestKey = appendSegmentRequestKeyPart(requestKey, parallelRouteKey, createSegmentRequestKeyPart(transportSegmentToSegment(childNode.s)));\n const childHintTree = hintTree !== null && hintTree.slots !== null ? hintTree.slots[parallelRouteKey] ?? null : null;\n const childTree = collectSegmentDataImpl(isClientParamParsingEnabled, childNode, buildId, staleTimeIterable, clientModules, childRequestKey, {\n segment: createPrefetchTransportSegment(childNode.s, isClientParamParsingEnabled),\n prefetchHints: 0,\n parallelRouteKey,\n parent: spine\n }, segmentTasks, prefetchInlining, childHintTree, childBundle, headData, rootVaryParamsIterable, isUpgradeableISRFallback, needsRuntimeRequest, shellStageRelease);\n if (slots === undefined) {\n slots = new Map();\n }\n slots.set(parallelRouteKey, childTree);\n }\n }\n // Structure of the segment — identity and hints, no render output. Sent to\n // the client as part of the /_tree response. The identity is shared with\n // this segment's own spine node (same object), where it serves the same\n // purpose for the per-segment responses.\n const treeNode = {\n s: spine.segment\n };\n if (prefetchHints !== 0) {\n treeNode.h = prefetchHints;\n }\n if (slots !== undefined) {\n treeNode.c = slots;\n }\n return treeNode;\n}\n/**\n * Renders one segment prefetch response, and with it a shell byte boundary\n * (`a`) — the per-segment analogue of the route-level `a`. The boundary lets a\n * client later truncate the buffered response and re-decode the prefix into\n * the segment's shell variant (param-dependent content reduced to pending\n * references) without a second request.\n *\n * That boundary is the whole reason this isn't a plain re-serialize. A shell\n * is a temporal property of the staged page render, already collapsed by the\n * time the page stream is decoded, so it can't be recovered from the settled\n * values. Instead the response is serialized against a staged decode of the\n * page (the caller drip-feeds it in two stages): the shell rows flush first,\n * and the byte count when the rest is released is the boundary.\n *\n * Uses the streaming renderer, not `prerender`, because the boundary must be\n * observed mid-stream — `prerender` only exposes its prelude once finished.\n */ async function renderSegmentPrefetch(buildId, staleTime, // Data for the requested (terminal) segment. Null for the standalone head\n// response, which has no tree position (its tree is the bare root\n// identity). Disabled segments are skipped by the caller.\nterminal, requestKey, // The identity path from the root to the terminal segment (the root\n// itself for the standalone head response).\nspine, // The data of the ancestors bundled into this response, nearest ancestor\n// first, aligned with the spine's innermost ancestors.\nbundle, // The head's data, when it's bundled into this response (or when this IS\n// the standalone head response).\nhead, rootVaryParams, clientModules, isUpgradeableISRFallback, needsRuntimeRequest, shellStageRelease) {\n const streamInfoStage = createPromiseWithResolvers();\n // Build the response's root-anchored tree: start at the terminal segment,\n // which carries data (identity only for the standalone head response),\n // then wrap upward along the identity spine. Ancestors carry data while\n // the bundle chain lasts (it's contiguous and aligned with the innermost\n // ancestors); a chain node with null data is a segment with static\n // prefetching disabled, and it — like every ancestor above the chain —\n // carries identity only, which the client treats as \"no claim\" (no cache\n // entry is created). Every node carries the same prefetch hints the /_tree\n // response emits for it, so the tree is decodable like any other transport\n // tree (see SegmentSpine).\n let node = {\n s: spine.segment\n };\n if (spine.prefetchHints !== 0) {\n node.h = spine.prefetchHints;\n }\n if (terminal !== null) {\n node.d = createStagedSegmentData(terminal, staleTime, clientModules, streamInfoStage.promise);\n }\n let edgeParallelRouteKey = spine.parallelRouteKey;\n let ancestor = spine.parent;\n let bundleNode = bundle;\n while(ancestor !== null && edgeParallelRouteKey !== null){\n const parentNode = {\n s: ancestor.segment\n };\n if (ancestor.prefetchHints !== 0) {\n parentNode.h = ancestor.prefetchHints;\n }\n if (bundleNode !== null) {\n if (bundleNode.data !== null) {\n parentNode.d = createStagedSegmentData(bundleNode.data, staleTime, clientModules, streamInfoStage.promise);\n }\n bundleNode = bundleNode.next;\n }\n parentNode.c = new Map([\n [\n edgeParallelRouteKey,\n node\n ]\n ]);\n node = parentNode;\n edgeParallelRouteKey = ancestor.parallelRouteKey;\n ancestor = ancestor.parent;\n }\n const transportData = {\n t: node\n };\n if (head !== null) {\n transportData.h = createStagedSegmentData(head, staleTime, clientModules, streamInfoStage.promise);\n }\n const responseKey = requestKey === ROOT_SEGMENT_REQUEST_KEY ? '/_index' : requestKey;\n // `a` (see PrefetchFlightResponse['a']) is resolved below, once the\n // shell stage's bytes have been counted.\n let totalByteLength = 0;\n const shellByteOffset = createPromiseWithResolvers();\n // Wrap in the response envelope — an ordinary PrefetchFlightResponse.\n const payload = {\n t: transportData,\n a: shellByteOffset.promise,\n u: needsRuntimeRequest\n };\n if (buildId) {\n payload.b = buildId;\n }\n if (rootVaryParams !== null) {\n payload.r = rootVaryParams;\n }\n if (isUpgradeableISRFallback) {\n payload.f = true;\n }\n const abortController = new AbortController();\n const segmentStream = renderToReadableStream(payload, clientModules, {\n filterStackFrame,\n signal: abortController.signal,\n onError (error) {\n if (abortController.signal.aborted) {\n // Expected: aborting the render \"errors\" every reference that is\n // still pending, i.e. the dynamic holes. The corresponding error\n // rows are discarded below.\n return undefined;\n }\n return onSegmentPrerenderError(error);\n }\n });\n // Consume the stream as it's emitted, counting bytes so the shell boundary\n // can be measured. Reads settle within a microtask of each enqueue, so by\n // the time the release resolves (in a task after the renderer's last\n // flush), every byte the renderer has emitted has been counted.\n const reader = segmentStream.getReader();\n const chunksPromise = new Promise(async (resolve)=>{\n const chunks = [];\n while(true){\n const { done, value } = await reader.read();\n if (done) {\n break;\n }\n if (abortController.signal.aborted) {\n continue;\n }\n chunks.push(value);\n totalByteLength += value.byteLength;\n }\n resolve(chunks);\n });\n // The release's value is true when the page's shell is its entire static\n // response — then so is every segment's, so `a` is null (no separate shell\n // to extract). Otherwise we measure.\n const shellIsFullResponse = await shellStageRelease;\n // The shell stage is complete: everything the render can emit from the shell\n // prefix has flushed, so this is the shell's byte length.\n const byteLengthAfterShellStage = totalByteLength;\n // Wait one task for the rest of the segment data (past the page's own shell\n // boundary) to flush, per the timing rule: one macrotask after the release\n // enqueues it into the input decode, the render has emitted all of it.\n await waitAtLeastOneReactRenderTask();\n // Resolve `a`: null when the page said its shell is the whole response\n // (shellIsFullResponse) — then so is every segment's. Otherwise resolve the\n // measured boundary, even if no segment *content* follows it: the\n // stage-dependent metadata (`staleTime`, `needsRuntimeRequest`) always\n // lands its post-shell values and completion rows after this point, so a\n // truncated decode is meaningful for every segment of a staged page. When\n // the page wasn't staged at all, the release resolved before any bytes\n // flushed and the measured boundary falls out as 0, the \"no shell\"\n // sentinel.\n if (shellIsFullResponse) {\n shellByteOffset.resolve(null);\n } else {\n shellByteOffset.resolve(byteLengthAfterShellStage);\n }\n // Now write the stream metadata (`a`, the `isPartial` promises, and a\n // post-shell `needsRuntimeRequest` resolution). This is gated behind\n // streamInfoStage so it lands strictly after the boundary measurement\n // above — the post-shell values must not count as (or leak into) the\n // shell prefix.\n streamInfoStage.resolve();\n // Wait for the metadata rows to flush before halting — two macrotasks,\n // each a distinct hop:\n // 1. streamInfoStage unblocks the completeness probe renders; a static\n // segment's probe resolves within this task (a partial one never does,\n // which is how it stays pending → read as partial).\n // 2. those resolutions (and the already-resolved `a`) ping the render,\n // which emits their rows; the consumer reads that chunk here.\n // Halting after only the first hop would drop the not-yet-flushed metadata.\n await waitAtLeastOneReactRenderTask();\n await waitAtLeastOneReactRenderTask();\n // We're done writing, so we can abort the stream.\n abortController.abort();\n return [\n responseKey,\n Buffer.concat(await chunksPromise)\n ];\n}\n// Attaches the staged per-segment fields to a segment's data. We can\n// determine if a segment contains only partial data if it takes longer\n// than a task to encode, because dynamic data is encoded as an infinite\n// promise. We must do this in a separate Flight prerender from the one\n// that actually generates the prefetch stream because we need to include\n// the result in the stream itself.\nfunction createStagedSegmentData(data, staleTime, clientModules, // The response's streamInfoStage gate; the completeness probe must not\n// start until it resolves, i.e. until the input stream is fully unblocked.\nstreamInfoStage) {\n const contentIsComplete = new Promise(async (resolve)=>{\n // Wait for the input stream to be fully unblocked before checking if\n // the data can be decoded synchronously.\n await streamInfoStage;\n // If the data is fully static, this will resolve synchronously.\n // Otherwise, the promise stays unresolved forever, and so does\n // whatever field it's encoded into in the outer response.\n await prerender(data.rsc, clientModules, {\n filterStackFrame,\n onError () {}\n });\n resolve();\n });\n return {\n r: data.rsc,\n p: contentIsComplete,\n v: data.varyParams,\n s: staleTime\n };\n}\n// Wraps a known staleTime value in the same async-iterable shape as the page\n// response's `s`, so segment responses carry staleTime uniformly (and\n// rewindably) whether or not Cache Components supplied a real `s` iterable.\n// Re-consumable: each consumer gets a fresh generator (one segment response's\n// render, and there can be several).\nfunction createStaleTimeIterable(staleTime) {\n return {\n async *[Symbol.asyncIterator] () {\n yield staleTime;\n }\n };\n}\nfunction createUnclosingPrefetchStream(originalFlightStream) {\n // When PPR is enabled, prefetch streams may contain references that never\n // resolve, because that's how we encode dynamic data access. In the decoded\n // object returned by the Flight client, these are reified into hanging\n // promises that suspend during render, which is effectively what we want.\n // The UI resolves when it switches to the dynamic data stream\n // (via useDeferredValue(dynamic, static)).\n //\n // However, the Flight implementation currently errors if the server closes\n // the response before all the references are resolved. As a cheat to work\n // around this, we wrap the original stream in a new stream that never closes,\n // and therefore doesn't error.\n const reader = originalFlightStream.getReader();\n return new ReadableStream({\n async pull (controller) {\n while(true){\n const { done, value } = await reader.read();\n if (!done) {\n // Pass to the target stream and keep consuming the Flight response\n // from the server.\n controller.enqueue(value);\n continue;\n }\n // The server stream has closed. Exit, but intentionally do not close\n // the target stream.\n return;\n }\n }\n });\n}\n\n//# sourceMappingURL=collect-segment-data.js.map","import stringHash from 'next/dist/compiled/string-hash';\nimport { formatServerError } from '../../lib/format-server-error';\nimport { SpanStatusCode, getTracer } from '../lib/trace/tracer';\nimport { isAbortError } from '../pipe-readable';\nimport { isBailoutToCSRError } from '../../shared/lib/lazy-dynamic/bailout-to-csr';\nimport { isDynamicServerError } from '../../client/components/hooks-server-context';\nimport { isNextRouterError } from '../../client/components/is-next-router-error';\nimport { isPrerenderInterruptedError } from './dynamic-rendering';\nimport { getProperError } from '../../lib/is-error';\nimport { isReactLargeShellError } from './react-large-shell-error';\nimport { isInstantValidationError } from './instant-validation/instant-validation-error';\nimport { isNextBrowserBailoutError } from '../../shared/lib/lazy-dynamic/react-browser-bailout';\n/**\n * Returns a digest for well-known Next.js errors, otherwise `undefined`. If a\n * digest is returned this also means that the error does not need to be\n * reported.\n */ export function getDigestForWellKnownError(error) {\n // If we're bailing out to CSR, we don't need to log the error.\n if (isBailoutToCSRError(error)) return error.digest;\n // If this is a navigation error, we don't need to log the error.\n if (isNextRouterError(error)) return error.digest;\n // If this error occurs, we know that we should be stopping the static\n // render. This is only thrown in static generation when PPR is not enabled,\n // which causes the whole page to be marked as dynamic. We don't need to\n // tell the user about this error, as it's not actionable.\n if (isDynamicServerError(error)) return error.digest;\n // If this is a prerender interrupted error, we don't need to log the error.\n if (isPrerenderInterruptedError(error)) return error.digest;\n if (isInstantValidationError(error)) return error.digest;\n return undefined;\n}\nexport function createReactServerErrorHandler(shouldFormatError, isBuildTimePrerendering, reactServerErrors, onReactServerRenderError, spanToRecordOn) {\n return (thrownValue)=>{\n var _err_message;\n // If the response was closed, we don't need to log the error.\n if (isAbortError(thrownValue)) return;\n const digest = getDigestForWellKnownError(thrownValue);\n if (digest) {\n return digest;\n }\n if (isReactLargeShellError(thrownValue)) {\n // TODO: Aggregate\n console.error(thrownValue);\n return undefined;\n }\n let err = getProperError(thrownValue);\n let silenceLog = false;\n // If the error already has a digest, respect the original digest,\n // so it won't get re-generated into another new error.\n if (err.digest) {\n const originalError = reactServerErrors.get(err.digest);\n if (originalError) {\n // This error crossed a react-server boundary (e.g. from a `'use cache'`\n // render). Reaching the handler means it surfaced (it wasn't caught in\n // userland), so stamp the digest onto the original to mark it surfaced.\n // If the original was recorded as `invalidDynamicUsageError` without a\n // digest (a cache that aborted across the boundary), this is what lets\n // the dev overlay dedup: the separate forwarding checks for that digest\n // and skips it.\n originalError.digest ??= err.digest;\n if (process.env.NODE_ENV === 'production') {\n // In production we use the recovered original (de-obfuscated!) error\n // for reporting, and don't log it again as it was already logged in\n // the original environment.\n err = originalError;\n silenceLog = true;\n }\n }\n } else {\n // TODO-APP: look at using webcrypto instead of string-hash. Requires a promise to be awaited.\n err.digest = typeof thrownValue === 'string' ? stringHash(thrownValue).toString() : stringHash(err.message + (err.stack || '')).toString();\n }\n // @TODO by putting this here and not at the top it is possible that\n // we don't error the build in places we actually expect to\n if (!reactServerErrors.has(err.digest)) {\n reactServerErrors.set(err.digest, err);\n }\n // Format server errors in development to add more helpful error messages\n if (shouldFormatError) {\n formatServerError(err);\n }\n // Don't log the suppressed error during export\n if (!(isBuildTimePrerendering && (err == null ? void 0 : (_err_message = err.message) == null ? void 0 : _err_message.includes('The specific message is omitted in production builds to avoid leaking sensitive details.')))) {\n // Record exception on the provided span if available, otherwise try active span.\n const span = spanToRecordOn ?? getTracer().getActiveScopeSpan();\n if (span) {\n span.recordException(err);\n span.setAttribute('error.type', err.name);\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: err.message\n });\n }\n onReactServerRenderError(err, silenceLog);\n }\n return err.digest;\n };\n}\nexport function createHTMLErrorHandler(shouldFormatError, isBuildTimePrerendering, reactBrowserBailout, reactServerErrors, allCapturedErrors, onHTMLRenderSSRError, spanToRecordOn) {\n return (thrownValue, errorInfo)=>{\n var _err_message;\n if (isReactLargeShellError(thrownValue)) {\n // TODO: Aggregate\n console.error(thrownValue);\n return undefined;\n }\n let isSSRError = true;\n allCapturedErrors.push(thrownValue);\n // If the response was closed, we don't need to log the error.\n if (isAbortError(thrownValue)) return;\n // React turns a browser bailout outside Suspense into a fatal error. This\n // is a framework signal handled by the prerender caller, so don't report it\n // as a userland render error here.\n if (reactBrowserBailout && isNextBrowserBailoutError(thrownValue)) {\n return;\n }\n const digest = getDigestForWellKnownError(thrownValue);\n if (digest) {\n return digest;\n }\n const err = getProperError(thrownValue);\n // If the error already has a digest, respect the original digest,\n // so it won't get re-generated into another new error.\n if (err.digest) {\n if (reactServerErrors.has(err.digest)) {\n // This error is likely an obfuscated error from react-server.\n // We recover the original error here.\n thrownValue = reactServerErrors.get(err.digest);\n isSSRError = false;\n } else {\n // The error is not from react-server but has a digest\n // from other means so we don't need to produce a new one\n }\n } else {\n err.digest = stringHash(err.message + ((errorInfo == null ? void 0 : errorInfo.componentStack) || err.stack || '')).toString();\n }\n // Format server errors in development to add more helpful error messages\n if (shouldFormatError) {\n formatServerError(err);\n }\n // Don't log the suppressed error during export\n if (!(isBuildTimePrerendering && (err == null ? void 0 : (_err_message = err.message) == null ? void 0 : _err_message.includes('The specific message is omitted in production builds to avoid leaking sensitive details.')))) {\n // HTML errors contain RSC errors as well, filter them out before reporting\n if (isSSRError) {\n // Record exception on the provided span if available, otherwise try active span.\n const span = spanToRecordOn ?? getTracer().getActiveScopeSpan();\n if (span) {\n span.recordException(err);\n span.setAttribute('error.type', err.name);\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: err.message\n });\n }\n onHTMLRenderSSRError(err, errorInfo);\n }\n }\n return err.digest;\n };\n}\nexport function isUserLandError(err, reactBrowserBailout) {\n return !isAbortError(err) && !isBailoutToCSRError(err) && !(reactBrowserBailout && isNextBrowserBailoutError(err)) && !isNextRouterError(err);\n}\n\n//# sourceMappingURL=create-error-handler.js.map","// This has to be a shared module which is shared between client component error boundary and dynamic component\nconst BAILOUT_TO_CSR = 'BAILOUT_TO_CLIENT_SIDE_RENDERING';\n/** An error that should be thrown when we want to bail out to client-side rendering. */ export class BailoutToCSRError extends Error {\n constructor(reason){\n super(`Bail out to client-side rendering: ${reason}`), this.reason = reason, this.digest = BAILOUT_TO_CSR;\n }\n}\n/** Checks if a passed argument is an error that is thrown if we want to bail out to client-side rendering. */ export function isBailoutToCSRError(err) {\n if (typeof err !== 'object' || err === null || !('digest' in err)) {\n return false;\n }\n return err.digest === BAILOUT_TO_CSR;\n}\n\n//# sourceMappingURL=bailout-to-csr.js.map","import { isHTTPAccessFallbackError } from './http-access-fallback/http-access-fallback';\nimport { isRedirectError } from './redirect-error';\n/**\n * Returns true if the error is a navigation signal error. These errors are\n * thrown by user code to perform navigation operations and interrupt the React\n * render.\n */ export function isNextRouterError(error) {\n return isRedirectError(error) || isHTTPAccessFallbackError(error);\n}\n\n//# sourceMappingURL=is-next-router-error.js.map","import { RedirectStatusCode } from './redirect-status-code';\nexport const REDIRECT_ERROR_CODE = 'NEXT_REDIRECT';\n/**\n * Checks an error to determine if it's an error generated by the\n * `redirect(url)` helper.\n *\n * @param error the error that may reference a redirect error\n * @returns true if the error is a redirect error\n */ export function isRedirectError(error) {\n if (typeof error !== 'object' || error === null || !('digest' in error) || typeof error.digest !== 'string') {\n return false;\n }\n const digest = error.digest.split(';');\n const [errorCode, type] = digest;\n const destination = digest.slice(2, -2).join(';');\n const status = digest.at(-2);\n const statusCode = Number(status);\n return errorCode === REDIRECT_ERROR_CODE && (type === 'replace' || type === 'push') && typeof destination === 'string' && !isNaN(statusCode) && statusCode in RedirectStatusCode;\n}\n\n//# sourceMappingURL=redirect-error.js.map","import { AppRenderSpan, NextNodeServerSpan } from './trace/constants';\nimport { isRequestInsightsEnabled, recordRequestInsightFetch } from './trace/request-insights';\nimport { getRequestInsightsIdentity } from './trace/request-insights-identity';\nimport { getTracer, SpanKind } from './trace/tracer';\nimport { CACHE_ONE_YEAR_SECONDS, INFINITE_CACHE, NEXT_CACHE_TAG_MAX_ITEMS, NEXT_CACHE_TAG_MAX_LENGTH } from '../../lib/constants';\nimport { markCurrentScopeAsDynamic } from '../app-render/dynamic-rendering';\nimport { makeDynamicHangingPromise } from '../dynamic-rendering-utils';\nimport { createDedupeFetch } from './dedupe-fetch';\nimport { getCacheSignal, willConsumerServerCache } from '../app-render/work-unit-async-storage.external';\nimport { CachedRouteKind, IncrementalCacheKind } from '../response-cache';\nimport { cloneResponse } from './clone-response';\nimport { RenderStage } from '../app-render/staged-rendering';\nimport { encodeHeaderSafe } from './encode-header-safe';\nconst isEdgeRuntime = process.env.NEXT_RUNTIME === 'edge';\n/**\n * Whether fetch cache configuration needs to be processed for the current work\n * unit before an origin fetch. Static prerender stores use it for dynamic\n * access tracking. Cache scopes apply it to their own cache policy, regardless\n * of which outer work unit created them. Development staged renders additionally\n * coordinate dynamic fetches with the dynamic render stage.\n */ function shouldProcessFetchConfigForWorkUnit(workUnitStore) {\n if (!workUnitStore) {\n return false;\n }\n switch(workUnitStore.type){\n case 'prerender':\n case 'prerender-client':\n case 'prerender-legacy':\n case 'cache':\n case 'private-cache':\n case 'unstable-cache':\n return true;\n case 'request':\n return Boolean(process.env.NODE_ENV === 'development' && process.env.__NEXT_CACHE_COMPONENTS && workUnitStore.stagedRendering);\n case 'prerender-runtime':\n case 'validation-client':\n case 'build-time-generator':\n return false;\n default:\n return workUnitStore;\n }\n}\nexport const NEXT_PATCH_SYMBOL = Symbol.for('next-patch');\nfunction isFetchPatched() {\n return globalThis[NEXT_PATCH_SYMBOL] === true;\n}\nexport function validateRevalidate(revalidateVal, route) {\n try {\n let normalizedRevalidate = undefined;\n if (revalidateVal === false || revalidateVal === Infinity) {\n // Unlike Infinity, INFINITE_CACHE survives JSON serialization (e.g. in\n // the fetch cache).\n normalizedRevalidate = INFINITE_CACHE;\n } else if (typeof revalidateVal === 'number' && !isNaN(revalidateVal) && revalidateVal > -1) {\n normalizedRevalidate = revalidateVal;\n } else if (typeof revalidateVal !== 'undefined') {\n throw new Error(`Invalid revalidate value \"${revalidateVal}\" on \"${route}\", must be a non-negative number or false`);\n }\n return normalizedRevalidate;\n } catch (err) {\n // handle client component error from attempting to check revalidate value\n if (err instanceof Error && err.message.includes('Invalid revalidate')) {\n throw err;\n }\n return undefined;\n }\n}\nexport function validateTags(tags, description) {\n const validTags = [];\n const invalidTags = [];\n for(let i = 0; i < tags.length; i++){\n const tag = tags[i];\n if (typeof tag !== 'string') {\n invalidTags.push({\n tag,\n reason: 'invalid type, must be a string'\n });\n } else if (tag.length > NEXT_CACHE_TAG_MAX_LENGTH) {\n invalidTags.push({\n tag,\n reason: `exceeded max length of ${NEXT_CACHE_TAG_MAX_LENGTH}`\n });\n } else {\n // Encode so a non-ASCII tag can be safely serialized into the\n // `x-next-cache-tags` HTTP header without tripping Node's header\n // validation. Length is checked on the raw input above.\n validTags.push(encodeHeaderSafe(tag));\n }\n if (validTags.length > NEXT_CACHE_TAG_MAX_ITEMS) {\n console.warn(`Warning: exceeded max tag count for ${description}, dropped tags:`, tags.slice(i).join(', '));\n break;\n }\n }\n if (invalidTags.length > 0) {\n console.warn(`Warning: invalid tags passed to ${description}: `);\n for (const { tag, reason } of invalidTags){\n console.log(`tag: \"${tag}\" ${reason}`);\n }\n }\n return validTags;\n}\nfunction trackFetchMetric(workStore, span, ctx) {\n const metric = {\n ...ctx,\n end: performance.timeOrigin + performance.now(),\n idx: workStore.nextFetchId || 0\n };\n span == null ? void 0 : span.setAttributes({\n 'http.status_code': metric.status,\n 'next.fetch.idx': metric.idx,\n 'next.fetch.cache_status': metric.cacheStatus,\n 'next.fetch.cache_reason': metric.cacheReason\n });\n if (isRequestInsightsEnabled()) {\n const requestInsightsIdentity = getRequestInsightsIdentity();\n const requestInsightsRequestId = (requestInsightsIdentity == null ? void 0 : requestInsightsIdentity.requestId) ?? workStore.requestId;\n if (requestInsightsRequestId) {\n recordRequestInsightFetch({\n requestId: requestInsightsRequestId,\n kind: requestInsightsIdentity == null ? void 0 : requestInsightsIdentity.kind,\n htmlRequestId: (requestInsightsIdentity == null ? void 0 : requestInsightsIdentity.htmlRequestId) ?? workStore.htmlRequestId,\n route: workStore.route\n }, {\n url: metric.url,\n method: metric.method,\n statusCode: metric.status,\n startTime: metric.start,\n durationMs: metric.end - metric.start,\n cacheStatus: metric.cacheStatus,\n cacheReason: metric.cacheReason,\n index: metric.idx\n });\n }\n }\n if (!workStore.shouldTrackFetchMetrics) {\n return;\n }\n workStore.fetchMetrics ??= [];\n workStore.fetchMetrics.push(metric);\n}\nasync function createCachedPrerenderResponse(res, cacheKey, incrementalCacheContext, incrementalCache, revalidate, handleUnlock) {\n // We are prerendering at build time or revalidate time with cacheComponents so we\n // need to buffer the response so we can guarantee it can be read in a\n // microtask.\n const bodyBuffer = await res.arrayBuffer();\n const fetchedData = {\n headers: Object.fromEntries(res.headers.entries()),\n body: Buffer.from(bodyBuffer).toString('base64'),\n status: res.status,\n url: res.url\n };\n // We can skip setting the serverComponentsHmrCache because we aren't in dev\n // mode.\n if (incrementalCacheContext) {\n await incrementalCache.set(cacheKey, {\n kind: CachedRouteKind.FETCH,\n data: fetchedData,\n revalidate\n }, incrementalCacheContext);\n }\n await handleUnlock();\n // We return a new Response to the caller.\n return new Response(bodyBuffer, {\n headers: res.headers,\n status: res.status,\n statusText: res.statusText\n });\n}\nasync function createCachedDynamicResponse(workStore, res, cacheKey, incrementalCacheContext, incrementalCache, serverComponentsHmrCache, revalidate, input, handleUnlock, signal) {\n // We're cloning the response using this utility because there exists a bug in\n // the undici library around response cloning. See the following pull request\n // for more details: https://github.com/vercel/next.js/pull/73274\n const [cloned1, cloned2] = cloneResponse(res);\n // We are dynamically rendering including dev mode. We want to return the\n // response to the caller as soon as possible because it might stream over a\n // very long time.\n const cacheSetPromise = cloned1.arrayBuffer().then(async (arrayBuffer)=>{\n const bodyBuffer = Buffer.from(arrayBuffer);\n const fetchedData = {\n headers: Object.fromEntries(cloned1.headers.entries()),\n body: bodyBuffer.toString('base64'),\n status: cloned1.status,\n url: cloned1.url\n };\n serverComponentsHmrCache == null ? void 0 : serverComponentsHmrCache.set(cacheKey, fetchedData);\n if (incrementalCacheContext) {\n await incrementalCache.set(cacheKey, {\n kind: CachedRouteKind.FETCH,\n data: fetchedData,\n revalidate\n }, incrementalCacheContext);\n }\n }).catch((error)=>{\n // Don't warn if the request was aborted intentionally.\n if (!(signal == null ? void 0 : signal.aborted)) {\n console.warn(`Failed to set fetch cache`, input, error);\n }\n }).finally(handleUnlock);\n const pendingRevalidateKey = `cache-set-${cacheKey}`;\n const pendingRevalidates = workStore.pendingRevalidates ??= {};\n let pendingRevalidatePromise = Promise.resolve();\n if (pendingRevalidateKey in pendingRevalidates) {\n // There is already a pending revalidate entry that we need to await to\n // avoid race conditions.\n pendingRevalidatePromise = pendingRevalidates[pendingRevalidateKey];\n }\n pendingRevalidates[pendingRevalidateKey] = pendingRevalidatePromise.then(()=>cacheSetPromise).finally(()=>{\n // If the pending revalidate is not present in the store, then we have\n // nothing to delete.\n if (!(pendingRevalidates == null ? void 0 : pendingRevalidates[pendingRevalidateKey])) {\n return;\n }\n delete pendingRevalidates[pendingRevalidateKey];\n });\n return cloned2;\n}\nexport function createPatchedFetcher(originFetch, { workAsyncStorage, workUnitAsyncStorage }) {\n // Create the patched fetch function.\n const patched = async function fetch(input, init) {\n var _init_method, _init_next;\n let url;\n try {\n url = new URL(input instanceof Request ? input.url : input);\n url.username = '';\n url.password = '';\n } catch {\n // Error caused by malformed URL should be handled by native fetch\n url = undefined;\n }\n const fetchUrl = (url == null ? void 0 : url.href) ?? '';\n const method = (init == null ? void 0 : (_init_method = init.method) == null ? void 0 : _init_method.toUpperCase()) || 'GET';\n // Do create a new span trace for internal fetches in the\n // non-verbose mode.\n const isInternal = (init == null ? void 0 : (_init_next = init.next) == null ? void 0 : _init_next.internal) === true;\n const hideSpan = process.env.NEXT_OTEL_FETCH_DISABLED === '1';\n // We don't track fetch metrics for internal fetches\n // so it's not critical that we have a start time, as it won't be recorded.\n // This is to workaround a flaky issue where performance APIs might\n // not be available and will require follow-up investigation.\n const fetchStart = isInternal ? undefined : performance.timeOrigin + performance.now();\n const workStore = workAsyncStorage.getStore();\n const workUnitStore = workUnitAsyncStorage.getStore();\n let cacheSignal = workUnitStore ? getCacheSignal(workUnitStore) : null;\n if (cacheSignal) {\n cacheSignal.beginRead();\n }\n const result = getTracer().trace(isInternal ? NextNodeServerSpan.internalFetch : AppRenderSpan.fetch, {\n hideSpan,\n kind: SpanKind.CLIENT,\n spanName: [\n 'fetch',\n method,\n fetchUrl\n ].filter(Boolean).join(' '),\n attributes: {\n 'http.url': fetchUrl,\n 'http.method': method,\n 'net.peer.name': url == null ? void 0 : url.hostname,\n 'net.peer.port': (url == null ? void 0 : url.port) || undefined\n }\n }, async (span)=>{\n var _getRequestMeta;\n // If this is an internal fetch, we should not do any special treatment.\n if (isInternal) {\n return originFetch(input, init);\n }\n // If the workStore is not available, we can't do any\n // special treatment of fetch, therefore fallback to the original\n // fetch implementation.\n if (!workStore) {\n return originFetch(input, init);\n }\n // We should also fallback to the original fetch implementation if we\n // are in draft mode, it does not constitute a static generation.\n if (workStore.isDraftMode) {\n return originFetch(input, init);\n }\n const isRequestInput = input && typeof input === 'object' && typeof input.method === 'string';\n // With `fetch(new Request(url), init)`, native fetch lets `init`\n // override the base Request. Merge them into a single effective Request\n // so cacheability, the cache key, and the upstream request all describe\n // the same thing.\n if (isRequestInput && init) {\n // `next` (revalidate/tags) is Next-specific and dropped by\n // `new Request`, so keep it on `init` and move the rest onto input.\n const { next, ...overrides } = init;\n input = new Request(input, overrides);\n init = next ? {\n next\n } : undefined;\n }\n const getRequestMeta = (field)=>{\n // If request input is present but init is not, retrieve from input first.\n const value = init == null ? void 0 : init[field];\n return value || (isRequestInput ? input[field] : null);\n };\n let finalRevalidate = undefined;\n const getNextField = (field)=>{\n var _init_next, _init_next1, _input_next;\n return typeof (init == null ? void 0 : (_init_next = init.next) == null ? void 0 : _init_next[field]) !== 'undefined' ? init == null ? void 0 : (_init_next1 = init.next) == null ? void 0 : _init_next1[field] : isRequestInput ? (_input_next = input.next) == null ? void 0 : _input_next[field] : undefined;\n };\n // RequestInit doesn't keep extra fields e.g. next so it's\n // only available if init is used separate\n const originalFetchRevalidate = getNextField('revalidate');\n let currentFetchRevalidate = originalFetchRevalidate;\n const tags = validateTags(getNextField('tags') || [], `fetch ${input.toString()}`);\n let revalidateStore;\n if (workUnitStore) {\n switch(workUnitStore.type){\n case 'prerender':\n case 'prerender-runtime':\n // TODO: Stop accumulating tags in client prerender. (fallthrough)\n case 'prerender-client':\n case 'validation-client':\n case 'prerender-legacy':\n case 'cache':\n case 'private-cache':\n revalidateStore = workUnitStore;\n break;\n case 'request':\n case 'unstable-cache':\n case 'build-time-generator':\n break;\n default:\n workUnitStore;\n }\n }\n if (revalidateStore) {\n if (Array.isArray(tags)) {\n // Collect tags onto parent caches or parent prerenders.\n const collectedTags = revalidateStore.tags ?? (revalidateStore.tags = []);\n for (const tag of tags){\n if (!collectedTags.includes(tag)) {\n collectedTags.push(tag);\n }\n }\n }\n }\n const implicitTags = workUnitStore == null ? void 0 : workUnitStore.implicitTags;\n let pageFetchCacheMode = workStore.fetchCache;\n if (workUnitStore) {\n switch(workUnitStore.type){\n case 'unstable-cache':\n // Inside unstable-cache we treat it the same as force-no-store on\n // the page.\n pageFetchCacheMode = 'force-no-store';\n break;\n case 'prerender':\n case 'prerender-client':\n case 'validation-client':\n case 'prerender-runtime':\n case 'prerender-legacy':\n case 'request':\n case 'cache':\n case 'private-cache':\n case 'build-time-generator':\n break;\n default:\n workUnitStore;\n }\n }\n const isUsingNoStore = !!workStore.isUnstableNoStore;\n let currentFetchCacheConfig = getRequestMeta('cache');\n let cacheReason = '';\n let cacheWarning;\n if (typeof currentFetchCacheConfig === 'string' && typeof currentFetchRevalidate !== 'undefined') {\n // If the revalidate value conflicts with the cache value, we should warn the user and unset the conflicting values.\n const isConflictingRevalidate = // revalidate: 0 and cache: force-cache\n currentFetchCacheConfig === 'force-cache' && currentFetchRevalidate === 0 || // revalidate: >0 or revalidate: false and cache: no-store\n currentFetchCacheConfig === 'no-store' && (currentFetchRevalidate > 0 || currentFetchRevalidate === false);\n if (isConflictingRevalidate) {\n cacheWarning = `Specified \"cache: ${currentFetchCacheConfig}\" and \"revalidate: ${currentFetchRevalidate}\", only one should be specified.`;\n currentFetchCacheConfig = undefined;\n currentFetchRevalidate = undefined;\n }\n }\n const hasExplicitFetchCacheOptOut = // fetch config itself signals not to cache\n currentFetchCacheConfig === 'no-cache' || currentFetchCacheConfig === 'no-store' || // the fetch isn't explicitly caching and the segment level cache config signals not to cache\n // note: `pageFetchCacheMode` is also set by being in an unstable_cache context.\n pageFetchCacheMode === 'force-no-store' || pageFetchCacheMode === 'only-no-store';\n // If no explicit fetch cache mode is set, but dynamic = `force-dynamic` is set,\n // we shouldn't consider caching the fetch. This is because the `dynamic` cache\n // is considered a \"top-level\" cache mode, whereas something like `fetchCache` is more\n // fine-grained. Top-level modes are responsible for setting reasonable defaults for the\n // other configurations.\n const noFetchConfigAndForceDynamic = !pageFetchCacheMode && !currentFetchCacheConfig && !currentFetchRevalidate && workStore.forceDynamic;\n if (// force-cache was specified without a revalidate value. We set the revalidate value to false\n // which will signal the cache to not revalidate\n currentFetchCacheConfig === 'force-cache' && typeof currentFetchRevalidate === 'undefined') {\n currentFetchRevalidate = false;\n } else if (hasExplicitFetchCacheOptOut || noFetchConfigAndForceDynamic) {\n currentFetchRevalidate = 0;\n }\n if (currentFetchCacheConfig === 'no-cache' || currentFetchCacheConfig === 'no-store') {\n cacheReason = `cache: ${currentFetchCacheConfig}`;\n }\n finalRevalidate = validateRevalidate(currentFetchRevalidate, workStore.route);\n const _headers = getRequestMeta('headers');\n const initHeaders = typeof (_headers == null ? void 0 : _headers.get) === 'function' ? _headers : new Headers(_headers || {});\n const hasUnCacheableHeader = initHeaders.get('authorization') || initHeaders.get('cookie');\n const isUnCacheableMethod = ![\n 'get',\n 'head'\n ].includes(((_getRequestMeta = getRequestMeta('method')) == null ? void 0 : _getRequestMeta.toLowerCase()) || 'get');\n /**\n * We automatically disable fetch caching under the following conditions:\n * - Fetch cache configs are not set. Specifically:\n * - A page fetch cache mode is not set (export const fetchCache=...)\n * - A fetch cache mode is not set in the fetch call (fetch(url, { cache: ... }))\n * or the fetch cache mode is set to 'default'\n * - A fetch revalidate value is not set in the fetch call (fetch(url, { revalidate: ... }))\n * - OR the fetch comes after a configuration that triggered dynamic rendering (e.g., reading cookies())\n * and the fetch was considered uncacheable (e.g., POST method or has authorization headers)\n */ const hasNoExplicitCacheConfig = // eslint-disable-next-line eqeqeq\n pageFetchCacheMode == undefined && // eslint-disable-next-line eqeqeq\n (currentFetchCacheConfig == undefined || // when considering whether to opt into the default \"no-cache\" fetch semantics,\n // a \"default\" cache config should be treated the same as no cache config\n currentFetchCacheConfig === 'default') && // eslint-disable-next-line eqeqeq\n currentFetchRevalidate == undefined;\n let autoNoCache = Boolean((hasUnCacheableHeader || isUnCacheableMethod) && (revalidateStore == null ? void 0 : revalidateStore.revalidate) === 0);\n let isImplicitBuildTimeCache = false;\n if (!autoNoCache && hasNoExplicitCacheConfig) {\n // We don't enable automatic no-cache behavior during build-time\n // prerendering so that we can still leverage the fetch cache between\n // export workers.\n if (workStore.isBuildTimePrerendering) {\n isImplicitBuildTimeCache = true;\n } else {\n autoNoCache = true;\n }\n }\n // If we have no cache config, and we're in Dynamic I/O prerendering,\n // it'll be a dynamic call. We don't have to issue that dynamic call.\n if (hasNoExplicitCacheConfig && workUnitStore !== undefined) {\n switch(workUnitStore.type){\n case 'prerender':\n case 'prerender-runtime':\n // While we don't want to do caching in the client scope we know the\n // fetch will be dynamic for cacheComponents so we may as well avoid the\n // call here. (fallthrough)\n case 'prerender-client':\n if (cacheSignal) {\n cacheSignal.endRead();\n cacheSignal = null;\n }\n return makeDynamicHangingPromise(workUnitStore.renderSignal, workStore.route, 'fetch()');\n case 'validation-client':\n break;\n case 'request':\n if (process.env.NODE_ENV === 'development' && workUnitStore.stagedRendering) {\n if (cacheSignal) {\n cacheSignal.endRead();\n cacheSignal = null;\n }\n await workUnitStore.stagedRendering.waitForStage(RenderStage.Dynamic);\n }\n break;\n case 'prerender-legacy':\n case 'cache':\n case 'private-cache':\n case 'unstable-cache':\n case 'build-time-generator':\n break;\n default:\n workUnitStore;\n }\n }\n switch(pageFetchCacheMode){\n case 'force-no-store':\n {\n cacheReason = 'fetchCache = force-no-store';\n break;\n }\n case 'only-no-store':\n {\n if (currentFetchCacheConfig === 'force-cache' || typeof finalRevalidate !== 'undefined' && finalRevalidate > 0) {\n throw new Error(`cache: 'force-cache' used on fetch for ${fetchUrl} with 'export const fetchCache = 'only-no-store'`);\n }\n cacheReason = 'fetchCache = only-no-store';\n break;\n }\n case 'only-cache':\n {\n if (currentFetchCacheConfig === 'no-store') {\n throw new Error(`cache: 'no-store' used on fetch for ${fetchUrl} with 'export const fetchCache = 'only-cache'`);\n }\n break;\n }\n case 'force-cache':\n {\n if (typeof currentFetchRevalidate === 'undefined' || currentFetchRevalidate === 0) {\n cacheReason = 'fetchCache = force-cache';\n finalRevalidate = INFINITE_CACHE;\n }\n break;\n }\n case 'default-cache':\n case 'default-no-store':\n case 'auto':\n case undefined:\n break;\n default:\n pageFetchCacheMode;\n }\n if (typeof finalRevalidate === 'undefined') {\n if (pageFetchCacheMode === 'default-cache' && !isUsingNoStore) {\n finalRevalidate = INFINITE_CACHE;\n cacheReason = 'fetchCache = default-cache';\n } else if (pageFetchCacheMode === 'default-no-store') {\n finalRevalidate = 0;\n cacheReason = 'fetchCache = default-no-store';\n } else if (isUsingNoStore) {\n finalRevalidate = 0;\n cacheReason = 'noStore call';\n } else if (autoNoCache) {\n finalRevalidate = 0;\n cacheReason = 'auto no cache';\n } else {\n // TODO: should we consider this case an invariant?\n cacheReason = 'auto cache';\n finalRevalidate = revalidateStore ? revalidateStore.revalidate : INFINITE_CACHE;\n }\n } else if (!cacheReason) {\n cacheReason = `revalidate: ${finalRevalidate}`;\n }\n if (// when force static is configured we don't bail from\n // `revalidate: 0` values\n !(workStore.forceStatic && finalRevalidate === 0) && // we don't consider autoNoCache to switch to dynamic for ISR\n !autoNoCache && // If the revalidate value isn't currently set or the value is less\n // than the current revalidate value, we should update the revalidate\n // value.\n revalidateStore && finalRevalidate < revalidateStore.revalidate) {\n // If we were setting the revalidate value to 0, we should try to\n // postpone instead first.\n if (finalRevalidate === 0) {\n if (workUnitStore) {\n switch(workUnitStore.type){\n case 'prerender':\n case 'prerender-client':\n case 'prerender-runtime':\n // If we're in an instant validation, a dynamic fetch won't\n // have time to resolve during the validation prerender anyway,\n // so we leave it hanging. This can cause false negatives in shared parents,\n // but we accept that for now, because client data fetching is non-idiomatic.\n // eslint-disable-next-line no-fallthrough\n case 'validation-client':\n if (cacheSignal) {\n cacheSignal.endRead();\n cacheSignal = null;\n }\n return makeDynamicHangingPromise(workUnitStore.renderSignal, workStore.route, 'fetch()');\n case 'request':\n if (process.env.NODE_ENV === 'development' && workUnitStore.stagedRendering) {\n if (cacheSignal) {\n cacheSignal.endRead();\n cacheSignal = null;\n }\n await workUnitStore.stagedRendering.waitForStage(RenderStage.Dynamic);\n }\n break;\n case 'prerender-legacy':\n case 'cache':\n case 'private-cache':\n case 'unstable-cache':\n case 'build-time-generator':\n break;\n default:\n workUnitStore;\n }\n }\n markCurrentScopeAsDynamic(workStore, workUnitStore, `revalidate: 0 fetch ${input} ${workStore.route}`);\n }\n // We only want to set the revalidate store's revalidate time if it\n // was explicitly set for the fetch call, i.e.\n // originalFetchRevalidate.\n if (revalidateStore && originalFetchRevalidate === finalRevalidate) {\n revalidateStore.revalidate = finalRevalidate;\n }\n }\n const isCacheableRevalidate = typeof finalRevalidate === 'number' && finalRevalidate > 0;\n let cacheKey;\n const { incrementalCache } = workStore;\n let isHmrRefresh = false;\n let serverComponentsHmrCache;\n if (workUnitStore) {\n switch(workUnitStore.type){\n case 'request':\n case 'cache':\n case 'private-cache':\n isHmrRefresh = workUnitStore.isHmrRefresh ?? false;\n serverComponentsHmrCache = workUnitStore.serverComponentsHmrCache;\n break;\n case 'prerender':\n case 'prerender-client':\n case 'validation-client':\n case 'prerender-runtime':\n case 'prerender-legacy':\n case 'unstable-cache':\n case 'build-time-generator':\n break;\n default:\n workUnitStore;\n }\n }\n if (incrementalCache && (isCacheableRevalidate || serverComponentsHmrCache)) {\n try {\n cacheKey = await incrementalCache.generateCacheKey(fetchUrl, isRequestInput ? input : init);\n } catch (cause) {\n console.error(`Failed to generate cache key for`, input, cause);\n }\n }\n const fetchIdx = workStore.nextFetchId ?? 1;\n workStore.nextFetchId = fetchIdx + 1;\n let handleUnlock = ()=>{};\n const doOriginalFetch = async (isStale, cacheReasonOverride)=>{\n const requestInputFields = [\n 'cache',\n 'credentials',\n 'headers',\n 'integrity',\n 'keepalive',\n 'method',\n 'mode',\n 'redirect',\n 'referrer',\n 'referrerPolicy',\n 'window',\n 'duplex',\n // don't pass through signal when revalidating\n ...isStale ? [] : [\n 'signal'\n ]\n ];\n if (isRequestInput) {\n const reqInput = input;\n const reqOptions = {\n body: reqInput._ogBody || reqInput.body\n };\n for (const field of requestInputFields){\n // @ts-expect-error custom fields\n reqOptions[field] = reqInput[field];\n }\n input = new Request(reqInput.url, reqOptions);\n } else if (init) {\n const { _ogBody, body, signal, ...otherInput } = init;\n init = {\n ...otherInput,\n body: _ogBody || body,\n signal: isStale ? undefined : signal\n };\n }\n // add metadata to init without editing the original\n const clonedInit = {\n ...init,\n next: {\n ...init == null ? void 0 : init.next,\n fetchType: 'origin',\n fetchIdx\n }\n };\n return originFetch(input, clonedInit).then(async (res)=>{\n if (!isStale && fetchStart) {\n trackFetchMetric(workStore, span, {\n start: fetchStart,\n url: fetchUrl,\n cacheReason: cacheReasonOverride || cacheReason,\n cacheStatus: finalRevalidate === 0 || cacheReasonOverride ? 'skip' : 'miss',\n cacheWarning,\n status: res.status,\n method: clonedInit.method || 'GET'\n });\n }\n if (res.status === 200 && incrementalCache && cacheKey && (isCacheableRevalidate || serverComponentsHmrCache)) {\n const normalizedRevalidate = finalRevalidate >= INFINITE_CACHE ? CACHE_ONE_YEAR_SECONDS : finalRevalidate;\n const incrementalCacheConfig = isCacheableRevalidate ? {\n fetchCache: true,\n fetchUrl,\n fetchIdx,\n tags,\n isImplicitBuildTimeCache\n } : undefined;\n switch(workUnitStore == null ? void 0 : workUnitStore.type){\n case 'prerender':\n case 'prerender-client':\n case 'validation-client':\n case 'prerender-runtime':\n return createCachedPrerenderResponse(res, cacheKey, incrementalCacheConfig, incrementalCache, normalizedRevalidate, handleUnlock);\n case 'request':\n if (process.env.NODE_ENV === 'development' && workUnitStore.stagedRendering && workUnitStore.cacheSignal && isCacheableRevalidate) {\n // We're filling caches for a staged render with an\n // explicit cache config, so we need to wait for the\n // response to finish instead of streaming. For HMR-only\n // caching (no explicit revalidate), we fall through to\n // createCachedDynamicResponse which handles streaming\n // and abort gracefully.\n return createCachedPrerenderResponse(res, cacheKey, incrementalCacheConfig, incrementalCache, normalizedRevalidate, handleUnlock);\n }\n // fallthrough\n case 'prerender-legacy':\n case 'cache':\n case 'private-cache':\n case 'unstable-cache':\n case 'build-time-generator':\n case undefined:\n return createCachedDynamicResponse(workStore, res, cacheKey, incrementalCacheConfig, incrementalCache, serverComponentsHmrCache, normalizedRevalidate, input, handleUnlock, getRequestMeta('signal'));\n default:\n workUnitStore;\n }\n }\n // we had response that we determined shouldn't be cached so we return it\n // and don't cache it. This also needs to unlock the cache lock we acquired.\n await handleUnlock();\n return res;\n }).catch((error)=>{\n handleUnlock();\n throw error;\n });\n };\n let cacheReasonOverride;\n let isForegroundRevalidate = false;\n let isHmrRefreshCache = false;\n if (cacheKey && incrementalCache) {\n let cachedFetchData;\n if (isHmrRefresh && serverComponentsHmrCache) {\n cachedFetchData = serverComponentsHmrCache.get(cacheKey);\n isHmrRefreshCache = true;\n }\n if (isCacheableRevalidate && !cachedFetchData) {\n handleUnlock = await incrementalCache.lock(cacheKey);\n const entry = workStore.isOnDemandRevalidate ? null : await incrementalCache.get(cacheKey, {\n kind: IncrementalCacheKind.FETCH,\n revalidate: finalRevalidate,\n fetchUrl,\n fetchIdx,\n tags,\n softTags: implicitTags == null ? void 0 : implicitTags.tags\n });\n if (hasNoExplicitCacheConfig && workUnitStore) {\n switch(workUnitStore.type){\n case 'prerender':\n case 'prerender-client':\n case 'validation-client':\n case 'prerender-runtime':\n // We sometimes use the cache to dedupe fetches that do not\n // specify a cache configuration. In these cases we want to\n // make sure we still exclude them from prerenders if\n // cacheComponents is on so we introduce an artificial task boundary\n // here.\n await getTimeoutBoundary();\n break;\n case 'request':\n if (process.env.NODE_ENV === 'development' && workUnitStore.stagedRendering) {\n await workUnitStore.stagedRendering.waitForStage(RenderStage.Dynamic);\n }\n break;\n case 'prerender-legacy':\n case 'cache':\n case 'private-cache':\n case 'unstable-cache':\n case 'build-time-generator':\n break;\n default:\n workUnitStore;\n }\n }\n if (entry) {\n await handleUnlock();\n } else {\n // in dev, incremental cache response will be null in case the browser adds `cache-control: no-cache` in the request headers\n // TODO: it seems like we also hit this after revalidates in dev?\n cacheReasonOverride = 'cache-control: no-cache (hard refresh)';\n }\n if ((entry == null ? void 0 : entry.value) && entry.value.kind === CachedRouteKind.FETCH) {\n // If the consumer will persist this result in a server cache,\n // wait for fresh data so it doesn't persist a stale value.\n if (willConsumerServerCache(workUnitStore) && entry.isStale) {\n isForegroundRevalidate = true;\n } else {\n if (entry.isStale) {\n workStore.pendingRevalidates ??= {};\n if (!workStore.pendingRevalidates[cacheKey]) {\n const pendingRevalidate = doOriginalFetch(true).then(async (response)=>({\n body: await response.arrayBuffer(),\n headers: response.headers,\n status: response.status,\n statusText: response.statusText\n })).finally(()=>{\n workStore.pendingRevalidates ??= {};\n delete workStore.pendingRevalidates[cacheKey || ''];\n });\n // Attach the empty catch here so we don't get a \"unhandled\n // promise rejection\" warning.\n pendingRevalidate.catch(console.error);\n workStore.pendingRevalidates[cacheKey] = pendingRevalidate;\n }\n }\n cachedFetchData = entry.value.data;\n }\n }\n }\n if (cachedFetchData) {\n if (fetchStart) {\n trackFetchMetric(workStore, span, {\n start: fetchStart,\n url: fetchUrl,\n cacheReason,\n cacheStatus: isHmrRefreshCache ? 'hmr' : 'hit',\n cacheWarning,\n status: cachedFetchData.status || 200,\n method: (init == null ? void 0 : init.method) || 'GET'\n });\n }\n const response = new Response(Buffer.from(cachedFetchData.body, 'base64'), {\n headers: cachedFetchData.headers,\n status: cachedFetchData.status\n });\n Object.defineProperty(response, 'url', {\n value: cachedFetchData.url\n });\n return response;\n }\n }\n if (init && typeof init === 'object' && shouldProcessFetchConfigForWorkUnit(workUnitStore)) {\n const { cache } = init;\n // Delete `cache` property as Cloudflare Workers will throw an error\n if (isEdgeRuntime) delete init.cache;\n if (cache === 'no-store') {\n // If enabled, we should bail out of static generation.\n if (workUnitStore) {\n switch(workUnitStore.type){\n case 'prerender':\n case 'prerender-client':\n case 'prerender-runtime':\n case 'validation-client':\n if (cacheSignal) {\n cacheSignal.endRead();\n cacheSignal = null;\n }\n return makeDynamicHangingPromise(workUnitStore.renderSignal, workStore.route, 'fetch()');\n case 'request':\n if (process.env.NODE_ENV === 'development' && workUnitStore.stagedRendering) {\n if (cacheSignal) {\n cacheSignal.endRead();\n cacheSignal = null;\n }\n await workUnitStore.stagedRendering.waitForStage(RenderStage.Dynamic);\n }\n break;\n case 'prerender-legacy':\n case 'cache':\n case 'private-cache':\n case 'unstable-cache':\n case 'build-time-generator':\n break;\n default:\n workUnitStore;\n }\n }\n markCurrentScopeAsDynamic(workStore, workUnitStore, `no-store fetch ${input} ${workStore.route}`);\n }\n const hasNextConfig = 'next' in init;\n const { next = {} } = init;\n if (typeof next.revalidate === 'number' && revalidateStore && next.revalidate < revalidateStore.revalidate) {\n if (next.revalidate === 0) {\n // If enabled, we should bail out of static generation.\n if (workUnitStore) {\n switch(workUnitStore.type){\n case 'prerender':\n case 'prerender-client':\n case 'prerender-runtime':\n case 'validation-client':\n return makeDynamicHangingPromise(workUnitStore.renderSignal, workStore.route, 'fetch()');\n case 'request':\n if (process.env.NODE_ENV === 'development' && workUnitStore.stagedRendering) {\n await workUnitStore.stagedRendering.waitForStage(RenderStage.Dynamic);\n }\n break;\n case 'cache':\n case 'private-cache':\n case 'unstable-cache':\n case 'prerender-legacy':\n case 'build-time-generator':\n break;\n default:\n workUnitStore;\n }\n }\n markCurrentScopeAsDynamic(workStore, workUnitStore, `revalidate: 0 fetch ${input} ${workStore.route}`);\n }\n if (!workStore.forceStatic || next.revalidate !== 0) {\n revalidateStore.revalidate = next.revalidate;\n }\n }\n if (hasNextConfig) delete init.next;\n }\n // if we are revalidating the whole page via time or on-demand and\n // the fetch cache entry is stale we should still de-dupe the\n // origin hit if it's a cache-able entry\n if (cacheKey && isForegroundRevalidate) {\n const pendingRevalidateKey = cacheKey;\n workStore.pendingRevalidates ??= {};\n let pendingRevalidate = workStore.pendingRevalidates[pendingRevalidateKey];\n if (pendingRevalidate) {\n const revalidatedResult = await pendingRevalidate;\n return new Response(revalidatedResult.body, {\n headers: revalidatedResult.headers,\n status: revalidatedResult.status,\n statusText: revalidatedResult.statusText\n });\n }\n // We used to just resolve the Response and clone it however for\n // static generation with cacheComponents we need the response to be able to\n // be resolved in a microtask and cloning the response will never have\n // a body that can resolve in a microtask in node (as observed through\n // experimentation) So instead we await the body and then when it is\n // available we construct manually cloned Response objects with the\n // body as an ArrayBuffer. This will be resolvable in a microtask\n // making it compatible with cacheComponents.\n const pendingResponse = doOriginalFetch(true, cacheReasonOverride)// We're cloning the response using this utility because there\n // exists a bug in the undici library around response cloning.\n // See the following pull request for more details:\n // https://github.com/vercel/next.js/pull/73274\n .then(cloneResponse);\n pendingRevalidate = pendingResponse.then(async (responses)=>{\n const response = responses[0];\n return {\n body: await response.arrayBuffer(),\n headers: response.headers,\n status: response.status,\n statusText: response.statusText\n };\n }).finally(()=>{\n var _workStore_pendingRevalidates;\n // If the pending revalidate is not present in the store, then\n // we have nothing to delete.\n if (!((_workStore_pendingRevalidates = workStore.pendingRevalidates) == null ? void 0 : _workStore_pendingRevalidates[pendingRevalidateKey])) {\n return;\n }\n delete workStore.pendingRevalidates[pendingRevalidateKey];\n });\n // Attach the empty catch here so we don't get a \"unhandled promise\n // rejection\" warning\n pendingRevalidate.catch(()=>{});\n workStore.pendingRevalidates[pendingRevalidateKey] = pendingRevalidate;\n return pendingResponse.then((responses)=>responses[1]);\n } else {\n return doOriginalFetch(false, cacheReasonOverride);\n }\n });\n if (cacheSignal) {\n try {\n return await result;\n } finally{\n if (cacheSignal) {\n cacheSignal.endRead();\n }\n }\n }\n return result;\n };\n // Attach the necessary properties to the patched fetch function.\n // We don't use this to determine if the fetch function has been patched,\n // but for external consumers to determine if the fetch function has been\n // patched.\n patched.__nextPatched = true;\n patched.__nextGetStaticStore = ()=>workAsyncStorage;\n patched._nextOriginalFetch = originFetch;\n globalThis[NEXT_PATCH_SYMBOL] = true;\n // Assign the function name also as a name property, so that it's preserved\n // even when mangling is enabled.\n Object.defineProperty(patched, 'name', {\n value: 'fetch',\n writable: false\n });\n return patched;\n}\n// we patch fetch to collect cache information used for\n// determining if a page is static or not\nexport function patchFetch(options) {\n // If we've already patched fetch, we should not patch it again.\n if (isFetchPatched()) return;\n // Grab the original fetch function. We'll attach this so we can use it in\n // the patched fetch function.\n const original = createDedupeFetch(globalThis.fetch);\n // Set the global fetch to the patched fetch.\n globalThis.fetch = createPatchedFetcher(original, options);\n}\nlet currentTimeoutBoundary = null;\nfunction getTimeoutBoundary() {\n if (!currentTimeoutBoundary) {\n currentTimeoutBoundary = new Promise((r)=>{\n setTimeout(()=>{\n currentTimeoutBoundary = null;\n r();\n }, 0);\n });\n }\n return currentTimeoutBoundary;\n}\n\n//# sourceMappingURL=patch-fetch.js.map","let spanRecorderForTest;\nexport function recordSpan(record) {\n if (!isLocalSpanRecordingEnabled()) {\n return;\n }\n const spanRecord = {\n timestamp: getCurrentTimestamp(),\n ...record\n };\n spanRecorderForTest == null ? void 0 : spanRecorderForTest(spanRecord);\n if (isRequestInsightsEnabled() && spanRecord.requestId) {\n const { recordRequestInsightSpan } = require('./request-insights');\n recordRequestInsightSpan(spanRecord);\n }\n}\nexport function setSpanRecorderForTest(recorder) {\n spanRecorderForTest = recorder;\n}\nexport function isLocalSpanRecordingEnabled() {\n if (!process.env.__NEXT_DEV_SERVER) {\n return false;\n }\n return spanRecorderForTest !== undefined || isRequestInsightsEnabled();\n}\nexport function isRequestInsightsEnabled() {\n if (!process.env.__NEXT_DEV_SERVER) {\n return false;\n }\n const value = process.env.__NEXT_REQUEST_INSIGHTS;\n return isEnabledEnvValue(value);\n}\nfunction isEnabledEnvValue(value) {\n return value === '1' || value === 'true' || value === true;\n}\nfunction getCurrentTimestamp() {\n return performance.timeOrigin + performance.now();\n}\n\n//# sourceMappingURL=span-store.js.map","// eslint-disable-next-line import/no-extraneous-dependencies\nexport { createTemporaryReferenceSet, renderToReadableStream, decodeReply, decodeAction, decodeFormState } from 'react-server-dom-webpack/server';\n// eslint-disable-next-line import/no-extraneous-dependencies\nexport { prerender } from 'react-server-dom-webpack/static';\n/* eslint-disable import/no-extraneous-dependencies */ export let renderToPipeableStream;\nexport let prerenderToNodeStream;\nif (process.env.__NEXT_USE_NODE_STREAMS) {\n renderToPipeableStream = require('react-server-dom-webpack/server.node').renderToPipeableStream;\n prerenderToNodeStream = require('react-server-dom-webpack/static').prerenderToNodeStream;\n} else {\n renderToPipeableStream = undefined;\n prerenderToNodeStream = undefined;\n}\n/* eslint-enable import/no-extraneous-dependencies */ // TODO: Just re-export `* as ReactServer`\nexport { captureOwnerStack, createElement, Fragment } from 'react';\nexport { default as LayoutRouter, LoadingBoundaryProvider } from '../../client/components/layout-router';\nexport { default as RenderFromTemplateContext } from '../../client/components/render-from-template-context';\nexport { ClientPageRoot } from '../../client/components/client-page';\nexport { ClientSegmentRoot } from '../../client/components/client-segment';\nexport { createServerSearchParamsForServerPage, createPrerenderSearchParamsForClientPage } from '../request/search-params';\nexport { createServerParamsForServerSegment, createPrerenderParamsForClientSegment } from '../request/params';\nexport * as serverHooks from '../../client/components/hooks-server-context';\nexport { HTTPAccessFallbackBoundary } from '../../client/components/http-access-fallback/error-boundary';\nexport { createMetadataComponents } from '../../lib/metadata';\nexport { RootLayoutBoundary } from '../../lib/framework/boundary-components';\nexport { preloadStyle, preloadFont, preconnect } from './rsc/preloads';\nexport { isEmptyHTMLPrelude } from './postponed-state';\nexport { taintObjectReference } from './rsc/taint';\nexport { collectSegmentData, collectPrefetchHints } from './collect-segment-data';\nexport const InstantValidation = ()=>{\n if (process.env.NEXT_RUNTIME !== 'edge' && process.env.__NEXT_CACHE_COMPONENTS) {\n return require('./instant-validation/instant-validation');\n } else {\n return undefined;\n }\n};\nimport { workAsyncStorage } from '../app-render/work-async-storage.external';\nimport { workUnitAsyncStorage } from './work-unit-async-storage.external';\nimport { patchFetch as _patchFetch } from '../lib/patch-fetch';\nlet SegmentViewNode = ()=>null;\nlet SegmentViewStateNode = ()=>null;\nif (process.env.NODE_ENV === 'development') {\n const mod = require('../../next-devtools/userspace/app/segment-explorer-node');\n SegmentViewNode = mod.SegmentViewNode;\n SegmentViewStateNode = mod.SegmentViewStateNode;\n}\n// hot-reloader modules are not bundled so we need to inject `__next__clear_chunk_cache__`\n// into globalThis from this file which is bundled.\nif (process.env.TURBOPACK) {\n globalThis.__next__clear_chunk_cache__ = __turbopack_clear_chunk_cache__;\n} else {\n // Webpack does not have chunks on the server\n globalThis.__next__clear_chunk_cache__ = null;\n}\nexport function patchFetch() {\n return _patchFetch({\n workAsyncStorage,\n workUnitAsyncStorage\n });\n}\n// Development only\nexport { SegmentViewNode, SegmentViewStateNode };\n\n//# sourceMappingURL=entry-base.js.map","const sharedAsyncLocalStorageNotAvailableError = new Error('Invariant: AsyncLocalStorage accessed in runtime where it is not available');\nclass FakeAsyncLocalStorage {\n disable() {\n throw sharedAsyncLocalStorageNotAvailableError;\n }\n getStore() {\n // This fake implementation of AsyncLocalStorage always returns `undefined`.\n return undefined;\n }\n run() {\n throw sharedAsyncLocalStorageNotAvailableError;\n }\n exit() {\n throw sharedAsyncLocalStorageNotAvailableError;\n }\n enterWith() {\n throw sharedAsyncLocalStorageNotAvailableError;\n }\n static bind(fn) {\n return fn;\n }\n}\nconst maybeGlobalAsyncLocalStorage = typeof globalThis !== 'undefined' && globalThis.AsyncLocalStorage;\nexport function createAsyncLocalStorage() {\n if (maybeGlobalAsyncLocalStorage) {\n return new maybeGlobalAsyncLocalStorage();\n }\n return new FakeAsyncLocalStorage();\n}\n/**\n * Returns the storage registered under `name`, and creates it on first use.\n *\n * These storages must be singletons within a realm. A store that is entered\n * through one reference to a storage must be readable through every other\n * reference to it. If it is not, code that runs inside the scope sees no store\n * at all. Module identity does not guarantee this. A realm can evaluate the\n * same `next` file more than once if the package is reachable through more than\n * one path, and then each evaluation creates a storage of its own. A global\n * symbol keeps the singleton intact for any number of copies. Worker threads\n * and edge sandboxes still get separate storages, because each of them has its\n * own `globalThis`.\n *\n * Module identity broke this way in `next dev`. A bug in Node's\n * `fs.realpathSync` can return a path with its symlinks unresolved, and the\n * module loader keys the module cache on that path. On a pnpm install it then\n * resolves `next/dist/...` through the `node_modules/next` symlink instead of\n * the real path, so the file is evaluated a second time. See\n * https://github.com/nodejs/node/pull/65113. Node versions without that fix\n * stay affected.\n *\n * The key includes the Next.js version, so two different versions of Next.js in\n * the same realm keep separate storages. Their store shapes might not be\n * compatible.\n */ export function getOrCreateGlobalAsyncLocalStorage(name) {\n const key = Symbol.for(`@next/${name}@${\"16.4.0\"}`);\n const globalStore = globalThis;\n return globalStore[key] ??= createAsyncLocalStorage();\n}\nexport function bindSnapshot(// WARNING: Don't pass a named function to this argument! See: https://github.com/facebook/react/pull/34911\nfn) {\n if (maybeGlobalAsyncLocalStorage) {\n return maybeGlobalAsyncLocalStorage.bind(fn);\n }\n return FakeAsyncLocalStorage.bind(fn);\n}\nexport function createSnapshot() {\n if (maybeGlobalAsyncLocalStorage) {\n return maybeGlobalAsyncLocalStorage.snapshot();\n }\n return function(fn, ...args) {\n return fn(...args);\n };\n}\n\n//# sourceMappingURL=async-local-storage.js.map","let createMetadataComponentsImpl;\nif (process.env.__NEXT_PARALLEL_ROUTE_METADATA) {\n createMetadataComponentsImpl = require('./metadata-parallel').createMetadataComponents;\n} else {\n createMetadataComponentsImpl = require('./metadata').createMetadataComponents;\n}\nexport { createMetadataComponentsImpl as createMetadataComponents };\n\n//# sourceMappingURL=index.js.map","const noop = ()=>{};\nlet registry;\nif (globalThis.FinalizationRegistry) {\n registry = new FinalizationRegistry((weakRef)=>{\n const stream = weakRef.deref();\n if (stream && !stream.locked) {\n stream.cancel('Response object has been garbage collected').then(noop);\n }\n });\n}\n/**\n * Clones a response by teeing the body so we can return two independent\n * ReadableStreams from it. This avoids the bug in the undici library around\n * response cloning.\n *\n * After cloning, the original response's body will be consumed and closed.\n *\n * @see https://github.com/vercel/next.js/pull/73274\n *\n * @param original - The original response to clone.\n * @returns A tuple containing two independent clones of the original response.\n */ export function cloneResponse(original) {\n // If the response has no body, then we can just return the original response\n // twice because it's immutable.\n if (!original.body) {\n return [\n original,\n original\n ];\n }\n const [body1, body2] = original.body.tee();\n const cloned1 = new Response(body1, {\n status: original.status,\n statusText: original.statusText,\n headers: original.headers\n });\n Object.defineProperty(cloned1, 'url', {\n value: original.url,\n // How the original response.url behaves\n configurable: true,\n enumerable: true,\n writable: false\n });\n const cloned2 = new Response(body2, {\n status: original.status,\n statusText: original.statusText,\n headers: original.headers\n });\n Object.defineProperty(cloned2, 'url', {\n value: original.url,\n // How the original response.url behaves\n configurable: true,\n enumerable: true,\n writable: false\n });\n // The Fetch Standard allows users to skip consuming the response body by\n // relying on garbage collection to release connection resources.\n // https://github.com/nodejs/undici?tab=readme-ov-file#garbage-collection\n //\n // To cancel the stream you then need to cancel both resulting branches.\n // Teeing a stream will generally lock it for the duration, preventing other\n // readers from locking it.\n // https://developer.mozilla.org/en-US/docs/Web/API/ReadableStream/tee\n if (registry) {\n if (cloned1.body) {\n registry.register(cloned1, new WeakRef(cloned1.body));\n }\n if (cloned2.body) {\n registry.register(cloned2, new WeakRef(cloned2.body));\n }\n }\n return [\n cloned1,\n cloned2\n ];\n}\n\n//# sourceMappingURL=clone-response.js.map","export const ROOT_SEGMENT_REQUEST_KEY = '';\nexport const HEAD_REQUEST_KEY = '/_head';\nexport function createSegmentRequestKeyPart(segment) {\n if (typeof segment === 'string') {\n const safeName = // TODO: FlightRouterState encodes Not Found routes as \"/_not-found\".\n // But params typically don't include the leading slash. We should use\n // a different encoding to avoid this special case.\n segment === '/_not-found' ? '_not-found' : encodeToFilesystemAndURLSafeString(segment);\n // Since this is not a dynamic segment, it's fully encoded. It does not\n // need to be \"hydrated\" with a param value.\n return safeName;\n }\n const name = segment[0];\n const paramType = segment[2];\n const safeName = encodeToFilesystemAndURLSafeString(name);\n const encodedName = '$' + paramType + '$' + safeName;\n return encodedName;\n}\nexport function appendSegmentRequestKeyPart(parentRequestKey, parallelRouteKey, childRequestKeyPart) {\n // Aside from being filesystem safe, segment keys are also designed so that\n // each segment and parallel route creates its own subdirectory. Roughly in\n // the same shape as the source app directory. This is mostly just for easier\n // debugging (you can open up the build folder and navigate the output); if\n // we wanted to do we could just use a flat structure.\n // Omit the parallel route key for children, since this is the most\n // common case. Saves some bytes (and it's what the app directory does).\n const slotKey = parallelRouteKey === 'children' ? childRequestKeyPart : `@${encodeToFilesystemAndURLSafeString(parallelRouteKey)}/${childRequestKeyPart}`;\n return parentRequestKey + '/' + slotKey;\n}\n// Define a regex pattern to match the most common characters found in a route\n// param. It excludes anything that might not be cross-platform filesystem\n// compatible, like |. It does not need to be precise because the fallback is to\n// just base64url-encode the whole parameter, which is fine; we just don't do it\n// by default for compactness, and for easier debugging.\nconst simpleParamValueRegex = /^[a-zA-Z0-9\\-_@]+$/;\nfunction encodeToFilesystemAndURLSafeString(value) {\n if (simpleParamValueRegex.test(value)) {\n return value;\n }\n // If there are any unsafe characters, base64url-encode the entire value.\n // We also add a ! prefix so it doesn't collide with the simple case.\n const base64url = btoa(value).replace(/\\+/g, '-') // Replace '+' with '-'\n .replace(/\\//g, '_') // Replace '/' with '_'\n .replace(/=+$/, '') // Remove trailing '='\n ;\n return '!' + base64url;\n}\nexport function convertSegmentPathToStaticExportFilename(segmentPath) {\n return `__next${segmentPath.replace(/\\//g, '.')}.txt`;\n}\n\n//# sourceMappingURL=segment-value-encoding.js.map","export function getRequestInsightKind(insight) {\n return insight.kind ?? 'request';\n}\nexport function getRequestInsightKey(insight) {\n return `${getRequestInsightKind(insight)}:${insight.requestId}`;\n}\n\n//# sourceMappingURL=request-insights.js.map","import { InvariantError } from '../../shared/lib/invariant-error';\nimport { getServerActionsManifest } from './manifests-singleton';\nlet __next_loaded_action_key;\nexport function arrayBufferToString(buffer) {\n const bytes = new Uint8Array(buffer);\n const len = bytes.byteLength;\n // @anonrig: V8 has a limit of 65535 arguments in a function.\n // For len < 65535, this is faster.\n // https://github.com/vercel/next.js/pull/56377#pullrequestreview-1656181623\n if (len < 65535) {\n return String.fromCharCode.apply(null, bytes);\n }\n let binary = '';\n for(let i = 0; i < len; i++){\n binary += String.fromCharCode(bytes[i]);\n }\n return binary;\n}\nexport function stringToUint8Array(binary) {\n const len = binary.length;\n const arr = new Uint8Array(len);\n for(let i = 0; i < len; i++){\n arr[i] = binary.charCodeAt(i);\n }\n return arr;\n}\nexport function encrypt(key, iv, data) {\n return crypto.subtle.encrypt({\n name: 'AES-GCM',\n iv\n }, key, data);\n}\nexport function decrypt(key, iv, data) {\n return crypto.subtle.decrypt({\n name: 'AES-GCM',\n iv\n }, key, data);\n}\nexport async function getActionEncryptionKey() {\n if (__next_loaded_action_key) {\n return __next_loaded_action_key;\n }\n const serverActionsManifest = getServerActionsManifest();\n const rawKey = process.env.NEXT_SERVER_ACTIONS_ENCRYPTION_KEY || serverActionsManifest.encryptionKey;\n if (rawKey === undefined) {\n throw new InvariantError('Missing encryption key for Server Actions');\n }\n __next_loaded_action_key = await crypto.subtle.importKey('raw', stringToUint8Array(atob(rawKey)), 'AES-GCM', true, [\n 'encrypt',\n 'decrypt'\n ]);\n return __next_loaded_action_key;\n}\n\n//# sourceMappingURL=encryption-utils.js.map","import { getOrCreateGlobalAsyncLocalStorage } from '../../app-render/async-local-storage';\n// This storage covers the part of BaseServer request handling that runs before\n// App Render creates workAsyncStorage. Once available, workStore remains the\n// primary identity source for locally recorded spans.\nfunction getRequestInsightsIdentityStorage() {\n return getOrCreateGlobalAsyncLocalStorage('request-insights-identity-storage');\n}\nexport function runWithRequestInsightsIdentity(identity, fn) {\n return getRequestInsightsIdentityStorage().run(identity, fn);\n}\nexport function getRequestInsightsIdentity() {\n return getRequestInsightsIdentityStorage().getStore();\n}\n\n//# sourceMappingURL=request-insights-identity.js.map","import { InvariantError } from '../../shared/lib/invariant-error';\nexport const MIN_PRERENDERABLE_EXPIRE = 300 // 5 minutes\n;\nexport const MIN_PREFETCHABLE_STALE = 30 // 30 seconds\n;\nexport const MIN_SHELL_STALE = 300 // 5 minutes\n;\nif (process.env.NODE_ENV !== 'production') {\n if (MIN_PREFETCHABLE_STALE > MIN_SHELL_STALE) {\n throw new InvariantError('MIN_PREFETCHABLE_STALE must not exceed MIN_SHELL_STALE.');\n }\n}\n\n//# sourceMappingURL=constants.js.map","import { createPrerenderResumeDataCache, createRenderResumeDataCache, deflateResumeDataCache, stringifyResumeDataCache } from '../resume-data-cache/resume-data-cache';\nexport var DynamicState = /*#__PURE__*/ function(DynamicState) {\n /**\n * The dynamic access occurred during the RSC render phase.\n */ DynamicState[DynamicState[\"DATA\"] = 1] = \"DATA\";\n /**\n * The dynamic access occurred during the HTML shell render phase.\n */ DynamicState[DynamicState[\"HTML\"] = 2] = \"HTML\";\n return DynamicState;\n}({});\nexport var DynamicHTMLPreludeState = /*#__PURE__*/ function(DynamicHTMLPreludeState) {\n DynamicHTMLPreludeState[DynamicHTMLPreludeState[\"Empty\"] = 0] = \"Empty\";\n DynamicHTMLPreludeState[DynamicHTMLPreludeState[\"Full\"] = 1] = \"Full\";\n return DynamicHTMLPreludeState;\n}({});\nasync function serializePostponedState(postponedString, resumeDataCache, isCacheComponentsEnabled, maxPostponedStateSizeBytes, disableResumeDataCacheCompression) {\n const prefix = `${postponedString.length}:${postponedString}`;\n let serializedResumeDataCache = await stringifyResumeDataCache(resumeDataCache, isCacheComponentsEnabled);\n if (!disableResumeDataCacheCompression) {\n if (maxPostponedStateSizeBytes !== undefined) {\n const uncompressedPostponedStateByteLength = Buffer.byteLength(prefix) + Buffer.byteLength(serializedResumeDataCache);\n if (uncompressedPostponedStateByteLength > maxPostponedStateSizeBytes) {\n console.warn(`The uncompressed postponed state is ${uncompressedPostponedStateByteLength} bytes, which exceeds the configured experimental.maxPostponedStateSize limit of ${maxPostponedStateSizeBytes} bytes. Next.js currently compresses the Resume Data Cache before persisting the postponed state, but this compression will be removed in a future release. Increase experimental.maxPostponedStateSize to ensure this route can still be resumed after that change.`);\n }\n }\n serializedResumeDataCache = deflateResumeDataCache(serializedResumeDataCache);\n }\n return prefix + serializedResumeDataCache;\n}\nexport async function getDynamicHTMLPostponedState(postponed, preludeState, fallbackRouteParams, resumeDataCache, isCacheComponentsEnabled, maxPostponedStateSizeBytes, disableResumeDataCacheCompression = false) {\n const data = [\n preludeState,\n postponed\n ];\n const dataString = JSON.stringify(data);\n // If there are no fallback route params, we can just serialize the postponed\n // state as is.\n if (!fallbackRouteParams || fallbackRouteParams.size === 0) {\n // Serialized as `:`\n return serializePostponedState(dataString, resumeDataCache, isCacheComponentsEnabled, maxPostponedStateSizeBytes, disableResumeDataCacheCompression);\n }\n const fallbackParamsString = JSON.stringify(Array.from(fallbackRouteParams.keys()));\n // Render staging only needs to know which params were unknown. Their opaque\n // placeholders and types aren't needed to resume, since React's server keys\n // don't depend on param values.\n // Serialized as ``\n const postponedString = `${fallbackParamsString.length}${fallbackParamsString}${dataString}`;\n // Serialized as `:`\n return serializePostponedState(postponedString, resumeDataCache, isCacheComponentsEnabled, maxPostponedStateSizeBytes, disableResumeDataCacheCompression);\n}\nexport async function getDynamicDataPostponedState(resumeDataCache, isCacheComponentsEnabled, maxPostponedStateSizeBytes, disableResumeDataCacheCompression = false, fallbackRouteParams) {\n let postponedString = 'null';\n if (fallbackRouteParams !== undefined) {\n const fallbackParamsString = JSON.stringify(fallbackRouteParams ? Array.from(fallbackRouteParams.keys()) : []);\n // Record the unknown param names even when React has no HTML to resume.\n // An empty array explicitly records that this shell has no fallback params.\n postponedString = `${fallbackParamsString.length}${fallbackParamsString}null`;\n }\n return serializePostponedState(postponedString, resumeDataCache, isCacheComponentsEnabled, maxPostponedStateSizeBytes, disableResumeDataCacheCompression);\n}\nfunction parsePostponedStateParts(state, maxPostponedStateSizeBytes, disableResumeDataCacheCompression) {\n var _state_match;\n const postponedStringLengthMatch = (_state_match = state.match(/^([0-9]*):/)) == null ? void 0 : _state_match[1];\n if (!postponedStringLengthMatch) {\n // Do not include the raw state in the message: it can be large and may\n // contain sensitive serialized data.\n throw new Error('Invariant: invalid postponed state: missing length prefix');\n }\n const postponedStringLength = parseInt(postponedStringLengthMatch);\n const tailStart = postponedStringLengthMatch.length + postponedStringLength + 1;\n return {\n postponedString: state.slice(postponedStringLengthMatch.length + 1, tailStart),\n renderResumeDataCache: createRenderResumeDataCache(state.slice(tailStart), maxPostponedStateSizeBytes, disableResumeDataCacheCompression)\n };\n}\nexport function parseResumeDataCacheFromPostponedState(state, maxPostponedStateSizeBytes, disableResumeDataCacheCompression = false) {\n try {\n return parsePostponedStateParts(state, maxPostponedStateSizeBytes, disableResumeDataCacheCompression).renderResumeDataCache;\n } catch (err) {\n console.error('Failed to parse postponed state', describePostponedStateParseFailure(state, err));\n return createRenderResumeDataCache(createPrerenderResumeDataCache());\n }\n}\nexport function parsePostponedState(state, maxPostponedStateSizeBytes, disableResumeDataCacheCompression = false) {\n try {\n const { postponedString, renderResumeDataCache } = parsePostponedStateParts(state, maxPostponedStateSizeBytes, disableResumeDataCacheCompression);\n try {\n if (postponedString === 'null') {\n // Leave `stagedFallbackParams` unset for the `4:null` form. It\n // contains no fallback-parameter information. A platform can send\n // `4:nullnull` when it invokes the renderer without a cached shell.\n return {\n type: 1,\n renderResumeDataCache\n };\n }\n if (/^[0-9]/.test(postponedString)) {\n var _postponedString_match;\n const match = (_postponedString_match = postponedString.match(/^([0-9]*)/)) == null ? void 0 : _postponedString_match[1];\n if (!match) {\n throw new Error(`Invariant: invalid postponed state ${JSON.stringify(postponedString)}`);\n }\n // This is the length of the serialized fallback params.\n const length = parseInt(match);\n const fallbackParamNames = JSON.parse(postponedString.slice(match.length, // We then go to the end of the string.\n match.length + length));\n const stagedFallbackParams = fallbackParamNames.length > 0 ? new Set(fallbackParamNames) : null;\n const postponed = postponedString.slice(match.length + length);\n if (postponed === 'null') {\n return {\n type: 1,\n stagedFallbackParams,\n renderResumeDataCache\n };\n }\n return {\n type: 2,\n stagedFallbackParams,\n data: JSON.parse(postponed),\n renderResumeDataCache\n };\n }\n return {\n type: 2,\n stagedFallbackParams: null,\n data: JSON.parse(postponedString),\n renderResumeDataCache\n };\n } catch (err) {\n console.error('Failed to parse postponed state', describePostponedStateParseFailure(state, err));\n return {\n type: 1,\n renderResumeDataCache\n };\n }\n } catch (err) {\n console.error('Failed to parse postponed state', describePostponedStateParseFailure(state, err));\n return {\n type: 1,\n renderResumeDataCache: createRenderResumeDataCache(createPrerenderResumeDataCache())\n };\n }\n}\n/**\n * Derives content-free diagnostics about a postponed state that failed to\n * parse, so the error log is actionable without exposing the (potentially\n * sensitive) serialized contents. Every field is a size, a structural flag, or\n * an error code, never the state bytes themselves.\n *\n * The serialized layout is `:`. The cache is a\n * base64-deflate string by default and raw JSON when RDC compression is\n * disabled, so these fields distinguish the failure shapes:\n * - `postponedStringComplete: false`: the declared length `N` exceeds what\n * actually arrived, i.e. the postponed string itself was truncated.\n * - `errorCode: 'Z_BUF_ERROR'` with an empty or short tail: the\n * resume-data-cache tail was truncated (ran out of input while inflating).\n * - `errorCode: 'Z_DATA_ERROR'`: the tail bytes are corrupt, not merely short.\n * - `hasLengthPrefix: false`: the body had no `:` prefix at all (e.g. empty\n * or otherwise malformed input).\n */ function describePostponedStateParseFailure(state, error) {\n const errnoError = error;\n const diagnostics = {\n stateLength: state.length,\n errorName: error instanceof Error ? error.name : typeof error,\n errorCode: errnoError == null ? void 0 : errnoError.code\n };\n const prefixMatch = state.match(/^([0-9]+):/);\n if (!prefixMatch) {\n diagnostics.hasLengthPrefix = false;\n return diagnostics;\n }\n const declaredPostponedLength = parseInt(prefixMatch[1], 10);\n const tailStart = prefixMatch[0].length + declaredPostponedLength;\n const tail = state.slice(tailStart);\n diagnostics.hasLengthPrefix = true;\n diagnostics.declaredPostponedLength = declaredPostponedLength;\n diagnostics.postponedStringComplete = state.length >= tailStart;\n diagnostics.resumeDataCacheTailLength = tail.length;\n diagnostics.resumeDataCacheTailIsNull = tail === 'null';\n return diagnostics;\n}\nexport function getPostponedFromState(state) {\n const [preludeState, postponed] = state.data;\n return {\n preludeState,\n postponed\n };\n}\n/**\n * Cheaply determines whether a serialized postponed state represents an empty\n * HTML prelude — i.e. the static shell rendered no bytes before the first\n * dynamic hole (a blocking dynamic API at the root with no Suspense boundary\n * above it). Returns false for dynamic-data states or unparseable input.\n *\n * Unlike `parsePostponedState`, this does not build a resume data cache: it only\n * reads the prelude marker. The Instant Navigation Testing API uses this to\n * detect the blank-document case in both dev (fresh render) and production\n * (prebuilt shell), where the marker is persisted in the postponed state.\n */ export function isEmptyHTMLPrelude(state) {\n try {\n var _state_match;\n const lengthMatch = (_state_match = state.match(/^([0-9]*):/)) == null ? void 0 : _state_match[1];\n if (!lengthMatch) {\n return false;\n }\n const length = parseInt(lengthMatch);\n let postponedString = state.slice(lengthMatch.length + 1, lengthMatch.length + 1 + length);\n // `null` is the dynamic-data case (a full shell was produced).\n if (postponedString === 'null') {\n return false;\n }\n // An optional `` prefix records the unknown params;\n // skip it to reach the `[preludeState, postponed]` data.\n if (/^[0-9]/.test(postponedString)) {\n var _postponedString_match;\n const fallbackParamsLengthMatch = (_postponedString_match = postponedString.match(/^([0-9]*)/)) == null ? void 0 : _postponedString_match[1];\n if (!fallbackParamsLengthMatch) {\n return false;\n }\n const fallbackParamsLength = parseInt(fallbackParamsLengthMatch);\n postponedString = postponedString.slice(fallbackParamsLengthMatch.length + fallbackParamsLength);\n }\n const data = JSON.parse(postponedString);\n return Array.isArray(data) && data[0] === 0;\n } catch {\n return false;\n }\n}\n\n//# sourceMappingURL=postponed-state.js.map","import { getRequestInsightKey, getRequestInsightKind } from '../../../shared/lib/request-insights';\nexport { isRequestInsightsEnabled } from './span-store';\nconst MAX_REQUEST_INSIGHTS = 100;\nconst REQUEST_INSIGHTS_STORE_KEY = Symbol.for('@next/request-insights-store');\nconst CLIENT_COMPONENT_LOADING_SPAN_TYPE = 'NextNodeServer.clientComponentLoading';\nconst REDACTED_VALUE = 'redacted';\nconst SAFE_SPAN_ATTRIBUTE_KEYS = new Set([\n 'http.method',\n 'http.route',\n 'http.status_code',\n 'http.url',\n 'net.peer.name',\n 'net.peer.port',\n 'next.fetch.cache_reason',\n 'next.fetch.cache_status',\n 'next.fetch.idx',\n 'next.route',\n 'next.rsc',\n 'next.segment',\n 'next.span_category',\n 'next.span_name',\n 'next.span_type'\n]);\nconst SENSITIVE_PARAM_NAME_RE = /(?:^|[_-])(?:access[_-]?token|api[_-]?key|auth|authorization|code|cookie|credential|id[_-]?token|jwt|key|password|secret|session|signature|sig|token)(?:$|[_-])/i;\nclass InMemoryRequestInsightsStore {\n recordSpan(span) {\n var _span_attributes;\n if (!span.requestId) {\n return;\n }\n const insight = this.getOrCreateRequest({\n requestId: span.requestId,\n kind: span.requestInsightKind,\n htmlRequestId: span.htmlRequestId,\n route: span.route,\n url: span.url\n }, span.startTime ?? span.timestamp);\n const spanStartTime = span.startTime ?? span.timestamp;\n insight.htmlRequestId = span.htmlRequestId ?? insight.htmlRequestId;\n insight.route = insight.route ?? span.route;\n insight.url = insight.url ?? sanitizeUrl(span.url);\n this.updateTiming(insight, spanStartTime, span.durationMs, ((_span_attributes = span.attributes) == null ? void 0 : _span_attributes['next.span_type']) === 'BaseServer.handleRequest');\n insight.status = insight.status === 'error' || span.status === 'error' ? 'error' : span.status === 'ok' ? 'ok' : insight.status;\n insight.spans.push({\n name: span.name,\n startTime: spanStartTime,\n durationMs: span.durationMs,\n status: span.status,\n traceId: span.traceId,\n spanId: span.spanId,\n parentSpanId: span.parentSpanId,\n attributes: sanitizeSpanAttributes(span.attributes),\n links: sanitizeSpanLinks(span.links),\n events: sanitizeSpanEvents(span.events),\n error: span.error\n });\n const fetch = getFetchInsight(span);\n if (fetch) {\n this.recordFetchForInsight(insight, fetch);\n }\n this.notify(insight);\n }\n recordFetch(identity, fetch) {\n if (!identity.requestId) {\n return;\n }\n const fetchStartTime = fetch.startTime ?? getCurrentTimestamp();\n const insight = this.getOrCreateRequest(identity, fetchStartTime);\n this.updateTiming(insight, fetchStartTime, fetch.durationMs, false);\n this.recordFetchForInsight(insight, sanitizeFetchInsight(fetch));\n this.notify(insight);\n }\n getSnapshot() {\n return {\n requests: this.requestOrder.map((insightKey)=>this.requests.get(insightKey)).filter((request)=>request !== undefined)\n };\n }\n subscribe(listener) {\n this.listeners.add(listener);\n return ()=>{\n this.listeners.delete(listener);\n };\n }\n clear() {\n this.requests.clear();\n this.requestTimings.clear();\n this.requestOrder.length = 0;\n }\n updateTiming(insight, startTime, durationMs, isRequestSpan) {\n const insightKey = getRequestInsightKey(insight);\n if (isRequestSpan && durationMs !== undefined) {\n const requestTiming = {\n startTime,\n durationMs\n };\n this.requestTimings.set(insightKey, requestTiming);\n insight.startTime = requestTiming.startTime;\n insight.durationMs = requestTiming.durationMs;\n return;\n }\n const requestTiming = this.requestTimings.get(insightKey);\n if (requestTiming) {\n insight.startTime = requestTiming.startTime;\n insight.durationMs = requestTiming.durationMs;\n return;\n }\n const endTime = startTime + (durationMs ?? 0);\n const requestEndTime = insight.startTime + (insight.durationMs ?? 0);\n insight.startTime = Math.min(insight.startTime, startTime);\n insight.durationMs = Math.max(requestEndTime, endTime) - insight.startTime;\n }\n notify(insight) {\n for (const listener of this.listeners){\n listener(insight);\n }\n }\n getOrCreateRequest(identity, startTime) {\n const requestId = identity.requestId;\n const insightKey = getRequestInsightKey({\n requestId,\n kind: identity.kind\n });\n let insight = this.requests.get(insightKey);\n if (!insight) {\n insight = {\n requestId,\n kind: getRequestInsightKind(identity),\n htmlRequestId: identity.htmlRequestId ?? requestId,\n route: identity.route,\n url: sanitizeUrl(identity.url),\n startTime,\n status: 'pending',\n spans: [],\n fetches: []\n };\n this.requests.set(insightKey, insight);\n this.requestOrder.push(insightKey);\n this.trim();\n }\n insight.htmlRequestId = identity.htmlRequestId ?? insight.htmlRequestId;\n insight.route = insight.route ?? identity.route;\n insight.url = insight.url ?? sanitizeUrl(identity.url);\n insight.startTime = Math.min(insight.startTime, startTime);\n return insight;\n }\n recordFetchForInsight(insight, fetch) {\n if (insight.fetches.some((existingFetch)=>existingFetch.url === fetch.url && (existingFetch.index !== undefined && fetch.index !== undefined ? existingFetch.index === fetch.index : existingFetch.startTime === fetch.startTime))) {\n return;\n }\n insight.fetches.push(sanitizeFetchInsight(fetch));\n }\n trim() {\n while(this.requestOrder.length > MAX_REQUEST_INSIGHTS){\n const insightKey = this.requestOrder.shift();\n if (insightKey) {\n this.requests.delete(insightKey);\n this.requestTimings.delete(insightKey);\n }\n }\n }\n constructor(){\n this.requests = new Map();\n this.requestTimings = new Map();\n this.requestOrder = [];\n this.listeners = new Set();\n }\n}\nexport function recordRequestInsightSpan(span) {\n var _span_attributes;\n if (((_span_attributes = span.attributes) == null ? void 0 : _span_attributes['next.span_type']) === CLIENT_COMPONENT_LOADING_SPAN_TYPE) {\n return;\n }\n getRequestInsightsStore().recordSpan(span);\n}\nexport function recordRequestInsightFetch(identity, fetch) {\n getRequestInsightsStore().recordFetch(identity, fetch);\n}\nexport function getRequestInsightsSnapshot() {\n return getRequestInsightsStore().getSnapshot();\n}\nexport function subscribeRequestInsights(listener) {\n return getRequestInsightsStore().subscribe(listener);\n}\nexport function clearRequestInsightsForTest() {\n getRequestInsightsStore().clear();\n}\nfunction getRequestInsightsStore() {\n const globalStore = globalThis;\n return globalStore[REQUEST_INSIGHTS_STORE_KEY] ??= new InMemoryRequestInsightsStore();\n}\nfunction getFetchInsight(span) {\n const attributes = span.attributes;\n if (!attributes || attributes['next.span_type'] !== 'AppRender.fetch') {\n return null;\n }\n return {\n url: sanitizeUrl(getStringAttribute(attributes['http.url']) ?? span.url),\n method: getStringAttribute(attributes['http.method']),\n statusCode: getNumberAttribute(attributes['http.status_code']),\n startTime: span.startTime ?? span.timestamp,\n durationMs: span.durationMs,\n cacheStatus: getStringAttribute(attributes['next.fetch.cache_status']),\n cacheReason: getStringAttribute(attributes['next.fetch.cache_reason']),\n index: getNumberAttribute(attributes['next.fetch.idx'])\n };\n}\nfunction sanitizeFetchInsight(fetch) {\n return {\n ...fetch,\n url: sanitizeUrl(fetch.url)\n };\n}\nfunction getCurrentTimestamp() {\n return performance.timeOrigin + performance.now();\n}\nfunction sanitizeSpanAttributes(attributes) {\n if (!attributes) {\n return undefined;\n }\n const sanitized = {};\n for (const [key, value] of Object.entries(attributes)){\n if (!SAFE_SPAN_ATTRIBUTE_KEYS.has(key)) {\n continue;\n }\n sanitized[key] = key === 'http.url' ? sanitizeUrlAttribute(value) : value;\n }\n return Object.keys(sanitized).length > 0 ? sanitized : undefined;\n}\nfunction sanitizeSpanEvents(events) {\n return events == null ? void 0 : events.map((event)=>({\n ...event,\n attributes: sanitizeSpanAttributes(event.attributes)\n }));\n}\nfunction sanitizeSpanLinks(links) {\n return links == null ? void 0 : links.map((link)=>({\n ...link,\n attributes: sanitizeSpanAttributes(link.attributes)\n }));\n}\nfunction sanitizeUrlAttribute(value) {\n return typeof value === 'string' ? sanitizeUrl(value) ?? '' : value;\n}\nfunction sanitizeUrl(value) {\n if (!value) {\n return value;\n }\n const isRelativeUrl = value.startsWith('/');\n try {\n const url = isRelativeUrl ? new URL(value, 'http://n') : new URL(value);\n url.username = '';\n url.password = '';\n for (const name of Array.from(url.searchParams.keys())){\n if (SENSITIVE_PARAM_NAME_RE.test(name)) {\n url.searchParams.set(name, REDACTED_VALUE);\n }\n }\n return isRelativeUrl ? `${url.pathname}${url.search}${url.hash}` : url.href;\n } catch {\n return value;\n }\n}\nfunction getStringAttribute(value) {\n return typeof value === 'string' ? value : undefined;\n}\nfunction getNumberAttribute(value) {\n return typeof value === 'number' ? value : undefined;\n}\n\n//# sourceMappingURL=request-insights.js.map","// TODO: isWellKnownError -> isNextInternalError\n// isReactLargeShellError -> isWarning\nexport function isReactLargeShellError(error) {\n return typeof error === 'object' && error !== null && 'message' in error && typeof error.message === 'string' && error.message.startsWith('This rendered a large document (>');\n}\n\n//# sourceMappingURL=react-large-shell-error.js.map","import { getDigestForWellKnownError } from './create-error-handler';\nimport { isReactLargeShellError } from './react-large-shell-error';\nexport var Phase = /*#__PURE__*/ function(Phase) {\n Phase[\"ProspectiveRender\"] = \"the prospective render\";\n Phase[\"SegmentCollection\"] = \"segment collection\";\n Phase[\"InstantValidation\"] = \"instant validation\";\n return Phase;\n}({});\nexport function printDebugThrownValueForProspectiveRender(thrownValue, route, phase) {\n // We don't need to print well-known Next.js errors.\n if (getDigestForWellKnownError(thrownValue)) {\n return;\n }\n if (isReactLargeShellError(thrownValue)) {\n // TODO: Aggregate\n console.error(thrownValue);\n return undefined;\n }\n let message;\n if (typeof thrownValue === 'object' && thrownValue !== null && typeof thrownValue.message === 'string') {\n message = thrownValue.message;\n if (typeof thrownValue.stack === 'string') {\n const originalErrorStack = thrownValue.stack;\n const stackStart = originalErrorStack.indexOf('\\n');\n if (stackStart > -1) {\n const error = new Error(`Route ${route} errored during ${phase}. These errors are normally ignored and may not prevent the route from prerendering but are logged here because build debugging is enabled.\n \nOriginal Error: ${message}`);\n error.stack = 'Error: ' + error.message + originalErrorStack.slice(stackStart);\n console.error(error);\n return;\n }\n }\n } else if (typeof thrownValue === 'string') {\n message = thrownValue;\n }\n if (message) {\n console.error(`Route ${route} errored during ${phase}. These errors are normally ignored and may not prevent the route from prerendering but are logged here because build debugging is enabled. No stack was provided.\n \nOriginal Message: ${message}`);\n return;\n }\n console.error(`Route ${route} errored during ${phase}. These errors are normally ignored and may not prevent the route from prerendering but are logged here because build debugging is enabled. The thrown value is logged just following this message`);\n console.error(thrownValue);\n return;\n}\n\n//# sourceMappingURL=prospective-render-utils.js.map","/**\n * Based on https://github.com/facebook/react/blob/d4e78c42a94be027b4dc7ed2659a5fddfbf9bd4e/packages/react/src/ReactFetch.js\n */ import * as React from 'react';\nimport { cloneResponse } from './clone-response';\nimport { InvariantError } from '../../shared/lib/invariant-error';\nconst simpleCacheKey = '[\"GET\",[],null,\"follow\",null,null,null,null]' // generateCacheKey(new Request('https://blank'));\n;\n// Headers that should not affect deduplication\n// traceparent and tracestate are used for distributed tracing and should not affect cache keys\nconst headersToExcludeInCacheKey = new Set([\n 'traceparent',\n 'tracestate'\n]);\nfunction generateCacheKey(request) {\n // We pick the fields that goes into the key used to dedupe requests.\n // We don't include the `cache` field, because we end up using whatever\n // caching resulted from the first request.\n // Notably we currently don't consider non-standard (or future) options.\n // This might not be safe. TODO: warn for non-standard extensions differing.\n // IF YOU CHANGE THIS UPDATE THE simpleCacheKey ABOVE.\n const filteredHeaders = Array.from(request.headers.entries()).filter(([key])=>!headersToExcludeInCacheKey.has(key.toLowerCase()));\n return JSON.stringify([\n request.method,\n filteredHeaders,\n request.mode,\n request.redirect,\n request.credentials,\n request.referrer,\n request.referrerPolicy,\n request.integrity\n ]);\n}\nexport function createDedupeFetch(originalFetch) {\n const getCacheEntries = React.cache(// eslint-disable-next-line @typescript-eslint/no-unused-vars -- url is the cache key\n (url)=>[]);\n return function dedupeFetch(resource, options) {\n if (options && options.signal) {\n // If we're passed a signal, then we assume that\n // someone else controls the lifetime of this object and opts out of\n // caching. It's effectively the opt-out mechanism.\n // Ideally we should be able to check this on the Request but\n // it always gets initialized with its own signal so we don't\n // know if it's supposed to override - unless we also override the\n // Request constructor.\n return originalFetch(resource, options);\n }\n // Normalize the Request\n let url;\n let cacheKey;\n if (typeof resource === 'string' && !options) {\n // Fast path.\n cacheKey = simpleCacheKey;\n url = resource;\n } else {\n // Normalize the request.\n // if resource is not a string or a URL (its an instance of Request)\n // then do not instantiate a new Request but instead\n // reuse the request as to not disturb the body in the event it's a ReadableStream.\n const request = typeof resource === 'string' || resource instanceof URL ? new Request(resource, options) : resource;\n if (request.method !== 'GET' && request.method !== 'HEAD' || request.keepalive) {\n // We currently don't dedupe requests that might have side-effects. Those\n // have to be explicitly cached. We assume that the request doesn't have a\n // body if it's GET or HEAD.\n // keepalive gets treated the same as if you passed a custom cache signal.\n return originalFetch(resource, options);\n }\n cacheKey = generateCacheKey(request);\n url = request.url;\n }\n const cacheEntries = getCacheEntries(url);\n for(let i = 0, j = cacheEntries.length; i < j; i += 1){\n const [key, promise] = cacheEntries[i];\n if (key === cacheKey) {\n return promise.then(()=>{\n const response = cacheEntries[i][2];\n if (!response) throw new InvariantError('No cached response');\n // We're cloning the response using this utility because there exists\n // a bug in the undici library around response cloning. See the\n // following pull request for more details:\n // https://github.com/vercel/next.js/pull/73274\n const [cloned1, cloned2] = cloneResponse(response);\n cacheEntries[i][2] = cloned2;\n return cloned1;\n });\n }\n }\n // We pass the original arguments here in case normalizing the Request\n // doesn't include all the options in this environment.\n const promise = originalFetch(resource, options);\n const entry = [\n cacheKey,\n promise,\n null\n ];\n cacheEntries.push(entry);\n return promise.then((response)=>{\n // We're cloning the response using this utility because there exists\n // a bug in the undici library around response cloning. See the\n // following pull request for more details:\n // https://github.com/vercel/next.js/pull/73274\n const [cloned1, cloned2] = cloneResponse(response);\n entry[2] = cloned2;\n return cloned1;\n });\n };\n}\n\n//# sourceMappingURL=dedupe-fetch.js.map","/*\n\nFiles in the rsc directory are meant to be packaged as part of the RSC graph using next-app-loader.\n\n*/ import * as React from 'react';\nfunction notImplemented() {\n throw new Error('Taint can only be used with the taint flag.');\n}\nexport const taintObjectReference = process.env.__NEXT_EXPERIMENTAL_REACT ? React.experimental_taintObjectReference : notImplemented;\nexport const taintUniqueValue = process.env.__NEXT_EXPERIMENTAL_REACT ? React.experimental_taintUniqueValue : notImplemented;\n\n//# sourceMappingURL=taint.js.map","import { arrayBufferToString, stringToUint8Array } from '../app-render/encryption-utils';\nimport { MIN_PRERENDERABLE_EXPIRE } from '../use-cache/constants';\n// These markers carry holes from the prospective prerender to the final pass.\n// They are never serialized: a request resuming the shell must be able to fill\n// them. Symbol.for keeps their identity across separately bundled runtime code.\nexport const FALLBACK_PARAMS = Symbol.for('next.resume-data-cache.fallback-params');\nexport const RUNTIME_DATA = Symbol.for('next.resume-data-cache.runtime-data');\n// Unlike params/searchParams, short-lived data also prevents a static shell.\nexport const SESSION_DATA = Symbol.for('next.resume-data-cache.session-data');\n/**\n * Parses serialized cache entries into a UseCacheCacheStore\n * @param entries - The serialized entries to parse\n * @returns A new UseCacheCacheStore containing the parsed entries\n */ export function parseUseCacheCacheStore(entries) {\n const store = new Map();\n for (const [key, { entry, hasExplicitRevalidate, hasExplicitExpire, readRootParamNames }] of entries){\n store.set(key, Promise.resolve({\n entry: {\n // Create a ReadableStream from the Uint8Array\n value: new ReadableStream({\n start (controller) {\n // Enqueue the Uint8Array to the stream\n controller.enqueue(stringToUint8Array(atob(entry.value)));\n // Close the stream\n controller.close();\n }\n }),\n tags: entry.tags,\n stale: entry.stale,\n timestamp: entry.timestamp,\n expire: entry.expire,\n revalidate: entry.revalidate\n },\n hasExplicitRevalidate,\n hasExplicitExpire,\n readRootParamNames: readRootParamNames ? new Set(readRootParamNames) : undefined,\n // Serialized RDC entries are non-dynamic by construction (the\n // serializer drops dynamic entries), so this is never produced from the\n // wire — the throw path that consumes it is only reachable for dynamic\n // entries, which only exist in the in-memory RDC.\n dynamicNestedCacheError: undefined\n }));\n }\n return store;\n}\n/**\n * Serializes UseCacheCacheStore entries into an array of key-value pairs\n * @param entries - The store entries to stringify\n * @returns A promise that resolves to an array of key-value pairs with serialized values\n */ export async function serializeUseCacheCacheStore(entries, isCacheComponentsEnabled) {\n return Promise.all(Array.from(entries).map(([key, value])=>{\n if (value === FALLBACK_PARAMS || value === RUNTIME_DATA || value === SESSION_DATA) {\n return null;\n }\n return value.then(async ({ entry, hasExplicitRevalidate, hasExplicitExpire, readRootParamNames })=>{\n if (isCacheComponentsEnabled && (entry.revalidate === 0 || entry.expire < MIN_PRERENDERABLE_EXPIRE)) {\n // The entry was omitted from the prerender result, and subsequently\n // does not need to be included in the serialized RDC.\n return null;\n }\n const [left, right] = entry.value.tee();\n entry.value = right;\n let binaryString = '';\n // We want to encode the value as a string, but we aren't sure if the\n // value is a a stream of UTF-8 bytes or not, so let's just encode it\n // as a string using base64.\n for await (const chunk of left){\n binaryString += arrayBufferToString(chunk);\n }\n return [\n key,\n {\n entry: {\n // Encode the value as a base64 string.\n value: btoa(binaryString),\n tags: entry.tags,\n stale: entry.stale,\n timestamp: entry.timestamp,\n expire: entry.expire,\n revalidate: entry.revalidate\n },\n hasExplicitRevalidate,\n hasExplicitExpire,\n readRootParamNames: readRootParamNames ? [\n ...readRootParamNames\n ] : undefined\n }\n ];\n }).catch(()=>{\n // Any failed cache writes should be ignored as to not discard the\n // entire cache.\n return null;\n });\n }));\n}\n\n//# sourceMappingURL=cache-store.js.map","/**\n * App Router types - Client-safe types for the Next.js App Router\n *\n * This file contains type definitions that can be safely imported\n * by both client-side and server-side code without circular dependencies.\n */ export var PrefetchHint = /*#__PURE__*/ function(PrefetchHint) {\n // NOTE: The 0b00001 bit was previously HasRuntimePrefetch (prefetch:\n // 'allow-runtime'). Partial Prefetching allows using runtime requests\n // for every segment, so the bit was removed. Do not reuse it without\n // considering caches populated by older builds.\n // This segment or one of its descendants opts into Partial Prefetching, i.e.\n // uses the two-phase (Shell then Speculative) prefetch flow. Set when\n // `prefetch` is 'partial' (including the default implied by the global\n // `partialPrefetching` config). Propagates upward so the root segment\n // reflects the entire subtree.\n //\n // Partial Prefetching routes may use runtime requests for both shells\n // and prefetches. They *may* be optimized to a use a static request\n // if no runtime data was accessed during the prerender.\n // However, If the route has `ensureStatic` configured to \"shell\", \"prefetch\",\n // or \"navigation\", we *must* use static requests for the shell (and possibly the\n // prefetch).\n // Both of these cases are signalled to the scheduler via the\n // `ShouldAttemptStatic{Shell,Prefetch}` hints and the `needsRuntimeRequest`\n // promise.\n PrefetchHint[PrefetchHint[\"SubtreeHasPartialPrefetching\"] = 2] = \"SubtreeHasPartialPrefetching\";\n // This segment itself has a loading.tsx boundary.\n PrefetchHint[PrefetchHint[\"SegmentHasLoadingBoundary\"] = 4] = \"SegmentHasLoadingBoundary\";\n // A descendant segment (but not this one) has a loading.tsx boundary.\n // Propagates upward so the root reflects the entire subtree.\n PrefetchHint[PrefetchHint[\"SubtreeHasLoadingBoundary\"] = 8] = \"SubtreeHasLoadingBoundary\";\n // This segment is at or above the application's root layout — the root layout\n // segment itself and all of its ancestors. A dynamic param in one of these\n // segments is a \"root param\".\n PrefetchHint[PrefetchHint[\"IsRootLayoutOrAbove\"] = 16] = \"IsRootLayoutOrAbove\";\n // This segment's response includes its parent's data inlined into it.\n // Set at build time by the segment size measurement pass.\n PrefetchHint[PrefetchHint[\"ParentInlinedIntoSelf\"] = 32] = \"ParentInlinedIntoSelf\";\n // This segment's data is inlined into one of its children — don't fetch\n // it separately. Set at build time by the segment size measurement pass.\n PrefetchHint[PrefetchHint[\"InlinedIntoChild\"] = 64] = \"InlinedIntoChild\";\n // On a __PAGE__: this page's response includes the head (metadata/viewport)\n // in its transport data (PartialTransportData's `h`).\n PrefetchHint[PrefetchHint[\"HeadInlinedIntoSelf\"] = 128] = \"HeadInlinedIntoSelf\";\n // On the root hint node: the head was NOT inlined into any page — fetch\n // it separately. Absence of this bit means the head is bundled into a page.\n PrefetchHint[PrefetchHint[\"HeadOutlined\"] = 256] = \"HeadOutlined\";\n // The inlining hints in this tree may be stale because the tree was\n // generated before collectPrefetchHints ran (e.g. the initial RSC payload\n // for a fully static page at build time). When writing this tree into the\n // cache, the route entry should be immediately expired so it gets\n // re-fetched with correct hints. Only set during build-time prerendering,\n // never at runtime.\n PrefetchHint[PrefetchHint[\"InliningHintsStale\"] = 512] = \"InliningHintsStale\";\n // This segment has prefetch = 'force-disabled'. The opt-out is passive\n // and applies to this segment only: it never INITIATES a prefetch — no\n // static data is emitted or fetched, and it's never the reason a runtime\n // prefetch spawns — but it may ride along in a runtime response issued on\n // another segment's behalf. Descendants prefetch normally.\n //\n // TODO: Also set as an internal fallback when the prefetch hints manifest\n // is unavailable (see #91407 mitigations), which only means \"no static\n // prefetch data exists\" — not a user opt-out. Split the fallback into its\n // own bit so the two intents can diverge.\n PrefetchHint[PrefetchHint[\"PrefetchDisabled\"] = 1024] = \"PrefetchDisabled\";\n // NOTE: The 0b100000000000 bit was previously SubtreeHasRuntimePrefetch.\n // Partial Prefetching now implies runtime completeness for every segment\n // (see SubtreeHasPartialPrefetching), so the bit was removed. Do not reuse\n // it without considering caches populated by older builds.\n // NOTE: The 0b1000000000000 bit was previously SubtreeHasEagerPrefetch\n // (prefetch: 'unstable_eager', plus every segment that did not opt into\n // Partial Prefetching). After `unstable_eager` was removed, it's no longer needed.\n // This segment or one of its descendants exports `instant = false`,\n // explicitly opting out of Partial Prefetching. Propagates upward so the root\n // reflects the entire subtree. Used only to suppress the dev-time\n // `` warning — unlike PrefetchDisabled, it has no effect\n // on the actual prefetch behavior.\n PrefetchHint[PrefetchHint[\"SubtreeHasInstantFalse\"] = 8192] = \"SubtreeHasInstantFalse\";\n // The client should attempt a static prefetch for this route: the\n // build-time prerender did not access any runtime data (cookies, headers,\n // searchParams, ...), so a static prefetch is expected to be as complete\n // as a runtime one. A fallback-param access only unsets the bit when the\n // route can never be upgraded from a fallback to a concrete prerender —\n // on an upgradeable route, ISR later produces the concrete prerender a\n // static attempt would hit (until then, the static responses' own\n // signal reports the insufficiency per response). Purely advisory, and\n // both error directions are safe: if set when a runtime request is\n // actually needed, that same response-level signal (the load-bearing\n // `needsRuntimeRequest` promise combined with each segment's `isPartial`)\n // directs the client to follow up — the cost is a wasted static attempt.\n // If unset when static would have sufficed, the client goes straight to a\n // runtime prefetch, which is a superset of the static response — the cost\n // is only reduced cacheability. Like the other bits, this one is computed\n // once per build and stays constant for the build's lifetime; it rides\n // the prefetch-hints manifest into every response that carries hints —\n // `/_tree` prefetch responses and the FlightRouterState of dynamic\n // navigations alike. (Routes missing from the manifest — see the #91407\n // fallbacks — simply never carry it.) Set on every node of the tree, but\n // does not propagate.\n PrefetchHint[PrefetchHint[\"ShouldAttemptStaticShell\"] = 16384] = \"ShouldAttemptStaticShell\";\n PrefetchHint[PrefetchHint[\"ShouldAttemptStaticPrefetch\"] = 32768] = \"ShouldAttemptStaticPrefetch\";\n // This dynamic segment only accepts build-time parameter values. Kept on\n // the affected node, without propagating or copying it to other segments.\n // Until the client knows the allowed values, any such node prevents route\n // prediction, even when the route's components never read the parameter.\n PrefetchHint[PrefetchHint[\"IsClosedParam\"] = 65536] = \"IsClosedParam\";\n // A descendant segment (but not this one) has a closed parameter. Propagates\n // upward so route prediction can check the root instead of walking the tree.\n PrefetchHint[PrefetchHint[\"SubtreeHasClosedParams\"] = 131072] = \"SubtreeHasClosedParams\";\n return PrefetchHint;\n}({});\n/**\n * Bitmask for checking whether a segment's static prefetch is skipped — i.e.\n * the server emits no static data for it (its node in a segment response\n * carries identity only, and it participates in a bundle only as a\n * pass-through) and the client never issues a static request for it.\n *\n * Static prefetching is disabled ONLY by `prefetch: 'force-disabled'`\n * (PrefetchDisabled). Notably, Partial Prefetching segments DO have static\n * data even though they can use runtime requests: the server emits it\n * unconditionally — it can't be gated on the ShouldAttemptStatic{Shell,Prefetch}\n * hints, because which segments carry static data must be deterministic\n * from build-time config. A runtime request may still be needed for the\n * segment, but the scheduler may attempt a static prefetch first (per the\n * ShouldAttemptStatic{Shell,Prefetch} hints) and skip the runtime request if the\n * static response proves sufficient.\n *\n * Usage: `(hints & StaticPrefetchDisabled) !== 0`\n */ export const StaticPrefetchDisabled = 1024;\nexport const StaticAttemptHints = 16384 | 32768;\n/**\n * The subset of PrefetchHint bits that propagate upward from a child segment to\n * its ancestors (as opposed to segment-local bits like SegmentHasLoadingBoundary\n * or IsRootLayoutOrAbove). Used to clear stale propagated bits before re-deriving them\n * from a node's children.\n */ export const SubtreePrefetchHints = 2 | 8 | 8192 | 131072;\n/**\n * Folds a child segment's prefetch hints into its parent's, propagating the\n * \"subtree\" flags. A child's segment-local flag (e.g. it has a loading\n * boundary) becomes the corresponding \"subtree\" flag on the parent, so the\n * root segment ends up reflecting the entire subtree.\n *\n * Used wherever a route tree is assembled bottom-up: on the server when building\n * a transport tree (createTransportTreeFromLoaderTree) and on the client when\n * overlaying a navigation response onto the existing tree\n * (createNavigationSeed). Keep these in sync by routing both through\n * this helper.\n */ export function propagateSubtreeBits(parentHints, childHints) {\n if (childHints & 2) {\n parentHints |= 2;\n }\n // A child with a loading boundary (directly, or anywhere in its subtree) makes\n // this a SubtreeHasLoadingBoundary on the parent.\n if (childHints & (4 | 8)) {\n parentHints |= 8;\n }\n // And for `instant = false`. The bit is set directly on each opted-out\n // segment, so there's no separate segment-local flag — propagate it as-is.\n if (childHints & 8192) {\n parentHints |= 8192;\n }\n if (childHints & (65536 | 131072)) {\n parentHints |= 131072;\n }\n return parentHints;\n}\n\n//# sourceMappingURL=app-router-types.js.map","import { PAGE_SEGMENT_KEY } from './segment';\n/**\n * Creates the data for a skipped segment: a null `r` marks the position as\n * acknowledged by the response, with no output attached (see the note on\n * TransportSegmentData). Used by producers for the segments along the path\n * from the root down to the rendered subtrees.\n */ export function createSkippedSegmentData() {\n return {\n r: null,\n p: true,\n v: null\n };\n}\n/**\n * Reads a late-resolving value from a fully-buffered Flight decode via the\n * thenable's status. Flight sets `status`/`value` on a row's promise once\n * its bytes are processed, and a buffered decode processes every byte\n * synchronously, so any row that made it into the payload is readable\n * without awaiting. Returns `unresolvedValue` for a row that is pending or\n * absent in this decode — e.g. one whose fulfillment landed past a\n * truncated shell decode's boundary; that's what scopes a response's\n * late-resolving signals to the payload being decoded. Returns\n * `rejectedValue` (defaults to `unresolvedValue`) for a rejected row — an\n * aborted render errors rows that were still pending when it happened.\n *\n * Shared by client and server: the client reads buffered prefetch\n * responses; the server (collect-segment-data) reads the buffered page\n * payload it re-serializes into per-segment responses.\n */ export function readFulfilledValue(valueFromServer, unresolvedValue, rejectedValue = unresolvedValue) {\n const thenable = valueFromServer;\n // Force Flight to unwrap a received-but-not-yet-settled row.\n thenable.then(noop, noop);\n switch(thenable.status){\n case 'fulfilled':\n return thenable.value;\n case 'rejected':\n return rejectedValue;\n // No status yet: the row is still pending, or absent from this decode.\n case undefined:\n default:\n return unresolvedValue;\n }\n}\nconst noop = ()=>{};\n/**\n * Converts a segment's client/server-internal representation to its wire\n * representation.\n */ export function segmentToTransportSegment(segment) {\n if (typeof segment === 'string') {\n return segment;\n }\n return {\n n: segment[0],\n t: segment[2],\n k: segment[1],\n s: segment[3]\n };\n}\n/**\n * Converts a segment's wire representation to the client/server-internal\n * `Segment` type.\n */ export function transportSegmentToSegment(transportSegment) {\n if (typeof transportSegment === 'string') {\n return transportSegment;\n }\n return [\n transportSegment.n,\n // `k` may be null when the client is expected to parse the param value\n // from the URL (per-segment prefetch responses). Callers that need the\n // real value resolve it from the rendered pathname instead of using this\n // function (see resolveTransportSegment in decode-server-response); the\n // remaining callers are value-insensitive (segment request keys, which\n // never include param values) or only see concrete keys.\n transportSegment.k ?? '',\n transportSegment.t,\n transportSegment.s\n ];\n}\n/**\n * Derives a FlightRouterState from a transport tree. Used where the client\n * needs a router-state representation of a full response (e.g. the initial\n * hydration payload). Render output (`d`) is not carried over.\n */ export function transportNodeToFlightRouterState(node, renderedSearch) {\n const parallelRoutes = {};\n const children = node.c;\n if (children !== undefined) {\n for (const [parallelRouteKey, childNode] of children){\n parallelRoutes[parallelRouteKey] = transportNodeToFlightRouterState(childNode, renderedSearch);\n }\n }\n const flightRouterState = [\n transportSegmentToSegment(node.s),\n parallelRoutes\n ];\n if (node.h !== undefined) {\n flightRouterState[4] = node.h;\n }\n if (flightRouterState[0] === PAGE_SEGMENT_KEY) {\n flightRouterState[5] = renderedSearch;\n }\n return flightRouterState;\n}\n\n//# sourceMappingURL=rsc-transport.js.map","import { InvariantError } from '../../shared/lib/invariant-error';\nimport { serializeUseCacheCacheStore, parseUseCacheCacheStore } from './cache-store';\n/**\n * Serializes a resume data cache into a JSON string for storage or\n * transmission. Handles 'use cache' values, fetch responses, and encrypted\n * bound args for inline server functions.\n *\n * @param resumeDataCache - The immutable cache to serialize\n * @returns A Promise that resolves to the serialized cache as a JSON string, or\n * 'null' if empty\n */ export async function stringifyResumeDataCache(resumeDataCache, isCacheComponentsEnabled) {\n if (process.env.NEXT_RUNTIME === 'edge') {\n throw new InvariantError('`stringifyResumeDataCache` should not be called in edge runtime.');\n }\n if (resumeDataCache.fetch.size === 0 && resumeDataCache.cache.size === 0) {\n return 'null';\n }\n const json = {\n store: {\n fetch: Object.fromEntries(resumeDataCache.fetch),\n cache: Object.fromEntries((await serializeUseCacheCacheStore(resumeDataCache.cache.entries(), isCacheComponentsEnabled)).filter((entry)=>entry !== null)),\n encryptedBoundArgs: Object.fromEntries(resumeDataCache.encryptedBoundArgs)\n }\n };\n return JSON.stringify(json);\n}\nexport function deflateResumeDataCache(serializedResumeDataCache) {\n if (process.env.NEXT_RUNTIME === 'edge') {\n throw new InvariantError('`deflateResumeDataCache` should not be called in edge runtime.');\n } else {\n if (serializedResumeDataCache === 'null') {\n return serializedResumeDataCache;\n }\n // Compress the JSON string using zlib. As the data is already in memory,\n // we use the synchronous deflateSync function.\n const { deflateSync } = require('node:zlib');\n return deflateSync(serializedResumeDataCache).toString('base64');\n }\n}\n/**\n * Creates a new empty mutable resume data cache for pre-rendering.\n * Initializes fresh Map instances for both the 'use cache' and fetch caches.\n * Used at the start of pre-rendering to begin collecting cached values.\n *\n * @returns A new empty PrerenderResumeDataCache instance\n */ export function createPrerenderResumeDataCache(source) {\n if (source) {\n return {\n mutable: true,\n cache: new Map(source.cache),\n fetch: new Map(source.fetch),\n encryptedBoundArgs: new Map(source.encryptedBoundArgs),\n decryptedBoundArgs: new Map(source.decryptedBoundArgs),\n imageResponses: new Map(source.imageResponses)\n };\n } else {\n return {\n mutable: true,\n cache: new Map(),\n fetch: new Map(),\n encryptedBoundArgs: new Map(),\n decryptedBoundArgs: new Map(),\n imageResponses: new Map()\n };\n }\n}\nexport function createRenderResumeDataCache(resumeDataCacheOrPersistedCache, maxPostponedStateSizeBytes, disableResumeDataCacheCompression = false) {\n if (process.env.NEXT_RUNTIME === 'edge') {\n throw new InvariantError('`createRenderResumeDataCache` should not be called in edge runtime.');\n } else {\n if (typeof resumeDataCacheOrPersistedCache !== 'string') {\n // If the cache is already read-only, return it directly. Otherwise we\n // perform a type change by overriding the discriminator — the underlying\n // Map references are still shared, but callers should treat the result\n // as immutable.\n if (!resumeDataCacheOrPersistedCache.mutable) {\n return resumeDataCacheOrPersistedCache;\n }\n return {\n ...resumeDataCacheOrPersistedCache,\n mutable: false\n };\n }\n if (resumeDataCacheOrPersistedCache === 'null') {\n return {\n mutable: false,\n cache: new Map(),\n fetch: new Map(),\n encryptedBoundArgs: new Map(),\n decryptedBoundArgs: new Map(),\n imageResponses: new Map()\n };\n }\n let serializedResumeDataCache = resumeDataCacheOrPersistedCache;\n if (!disableResumeDataCacheCompression) {\n // This should be a compressed string. Let's decompress it using zlib.\n // As the data we already want to decompress is in memory, we use the\n // synchronous inflateSync function.\n const { inflateSync } = require('node:zlib');\n // Limit decompressed size to prevent zipbomb attacks. This is 5x the\n // configured maxPostponedStateSize, allowing reasonable compression\n // ratios while preventing extreme decompression bombs.\n // Default is 500MB (5x the default 100MB compressed limit).\n const maxDecompressedSize = maxPostponedStateSizeBytes ? maxPostponedStateSizeBytes * 5 : 500 * 1024 * 1024;\n try {\n serializedResumeDataCache = inflateSync(Buffer.from(serializedResumeDataCache, 'base64'), {\n maxOutputLength: maxDecompressedSize\n }).toString('utf-8');\n } catch (err) {\n if (err instanceof RangeError && err.code === 'ERR_BUFFER_TOO_LARGE') {\n throw new Error(`Decompressed resume data cache exceeded ${maxDecompressedSize} byte limit`);\n }\n throw err;\n }\n }\n const json = JSON.parse(serializedResumeDataCache);\n return {\n mutable: false,\n cache: parseUseCacheCacheStore(Object.entries(json.store.cache)),\n fetch: new Map(Object.entries(json.store.fetch)),\n encryptedBoundArgs: new Map(Object.entries(json.store.encryptedBoundArgs)),\n decryptedBoundArgs: new Map(),\n imageResponses: new Map()\n };\n }\n}\n\n//# sourceMappingURL=resume-data-cache.js.map","import { RequestCookies } from '../../web/spec-extension/cookies';\nimport { RequestCookiesAdapter } from '../../web/spec-extension/adapters/request-cookies';\nimport { HeadersAdapter } from '../../web/spec-extension/adapters/headers';\nimport { getSegmentParam } from '../../../shared/lib/router/utils/get-segment-param';\nimport { parseRelativeUrl } from '../../../shared/lib/router/utils/parse-relative-url';\nimport { InvariantError } from '../../../shared/lib/invariant-error';\nimport { InstantValidationError } from './instant-validation-error';\nimport { workUnitAsyncStorage } from '../work-unit-async-storage.external';\nimport { wellKnownProperties } from '../../../shared/lib/utils/reflect-utils';\nexport function createValidationSampleTracking() {\n return {\n missingSampleErrors: []\n };\n}\nfunction getExpectedSampleTracking() {\n let validationSampleTracking = null;\n const workUnitStore = workUnitAsyncStorage.getStore();\n if (workUnitStore) {\n switch(workUnitStore.type){\n case 'request':\n case 'validation-client':\n // TODO(instant-validation-build): do we need any special handling for caches?\n validationSampleTracking = workUnitStore.validationSampleTracking ?? null;\n break;\n case 'cache':\n case 'private-cache':\n case 'unstable-cache':\n case 'prerender-legacy':\n case 'prerender-client':\n case 'prerender':\n case 'prerender-runtime':\n case 'build-time-generator':\n break;\n default:\n workUnitStore;\n }\n }\n if (!validationSampleTracking) {\n throw new InvariantError('Expected to have a workUnitStore that provides validationSampleTracking');\n }\n return validationSampleTracking;\n}\nexport function trackMissingSampleError(error) {\n const validationSampleTracking = getExpectedSampleTracking();\n validationSampleTracking.missingSampleErrors.push(error);\n}\nexport function trackMissingSampleErrorAndThrow(error) {\n // TODO(instant-validation-build): this should abort the render\n trackMissingSampleError(error);\n throw error;\n}\n/**\n * Creates ReadonlyRequestCookies from sample cookie data.\n * Accessing a cookie not declared in the sample will throw an error.\n * Cookies with `value: null` are declared (allowed to access) but return no value.\n */ export function createCookiesFromSample(sampleCookies, route) {\n const declaredNames = new Set();\n const cookies = new RequestCookies(new Headers());\n if (sampleCookies) {\n for (const cookie of sampleCookies){\n declaredNames.add(cookie.name);\n if (cookie.value !== null) {\n cookies.set(cookie.name, cookie.value);\n }\n }\n }\n const sealed = RequestCookiesAdapter.seal(cookies);\n return new Proxy(sealed, {\n get (target, prop, receiver) {\n if (prop === 'has') {\n const originalMethod = Reflect.get(target, prop, receiver);\n const wrappedMethod = function(name) {\n if (!declaredNames.has(name)) {\n trackMissingSampleErrorAndThrow(createMissingCookieSampleError(route, name));\n }\n return originalMethod.call(target, name);\n };\n return wrappedMethod;\n }\n if (prop === 'get') {\n const originalMethod = Reflect.get(target, prop, receiver);\n const wrappedMethod = function(nameOrCookie) {\n let name;\n if (typeof nameOrCookie === 'string') {\n name = nameOrCookie;\n } else if (nameOrCookie && typeof nameOrCookie === 'object' && typeof nameOrCookie.name === 'string') {\n name = nameOrCookie.name;\n } else {\n // This is an invalid input. Pass it through to the original method so it can error.\n return originalMethod.call(target, nameOrCookie);\n }\n if (!declaredNames.has(name)) {\n trackMissingSampleErrorAndThrow(createMissingCookieSampleError(route, name));\n }\n return originalMethod.call(target, name);\n };\n return wrappedMethod;\n }\n // TODO(instant-validation-build): what should getAll do?\n // Maybe we should only allow it if there's an array (possibly empty?)\n return Reflect.get(target, prop, receiver);\n }\n });\n}\nfunction createMissingCookieSampleError(route, name) {\n return new InstantValidationError(`Route \"${route}\" accessed cookie \"${name}\" which is not defined in the \\`unstable_samples\\` ` + `of \\`instant\\`. Add it to the sample's \\`cookies\\` array, ` + `or \\`{ name: \"${name}\", value: null }\\` if it should be absent.`);\n}\n/**\n * Creates ReadonlyHeaders from sample header data.\n * Accessing a header not declared in the sample will throw an error.\n * Headers with `value: null` are declared (allowed to access) but return null.\n */ export function createHeadersFromSample(rawSampleHeaders, sampleCookies, route) {\n // If we have cookie samples, add a `cookie` header to match.\n // Accessing it will be implicitly allowed by the proxy --\n // if the user defined some cookies, accessing the \"cookie\" header is also fine.\n const sampleHeaders = rawSampleHeaders ? [\n ...rawSampleHeaders\n ] : [];\n if (sampleHeaders.find(([name])=>name.toLowerCase() === 'cookie')) {\n throw new InstantValidationError('Invalid sample: Defining cookies via a \"cookie\" header is not supported. Use `cookies: [{ name: ..., value: ... }]` instead.');\n }\n if (sampleCookies) {\n const cookieHeaderValue = sampleCookies.toString();\n sampleHeaders.push([\n 'cookie',\n // if the `cookies` samples were empty, or they were all `null`, then we have no cookies,\n // and the header isn't present, but should remains readable, so we set it to null.\n cookieHeaderValue !== '' ? cookieHeaderValue : null\n ]);\n }\n const declaredNames = new Set();\n const headersInit = {};\n for (const [name, value] of sampleHeaders){\n declaredNames.add(name.toLowerCase());\n if (value !== null) {\n headersInit[name.toLowerCase()] = value;\n }\n }\n const sealed = HeadersAdapter.seal(HeadersAdapter.from(headersInit));\n return new Proxy(sealed, {\n get (target, prop, receiver) {\n if (prop === 'get' || prop === 'has') {\n const originalMethod = Reflect.get(target, prop, receiver);\n const patchedMethod = function(rawName) {\n const name = rawName.toLowerCase();\n if (!declaredNames.has(name)) {\n trackMissingSampleErrorAndThrow(new InstantValidationError(`Route \"${route}\" accessed header \"${name}\" which is not defined in the \\`unstable_samples\\` ` + `of \\`instant\\`. Add it to the sample's \\`headers\\` array, ` + `or \\`[\"${name}\", null]\\` if it should be absent.`));\n }\n // typescript can't reconcile a union of functions with a union of return types,\n // so we have to cast the original return type away\n return originalMethod.call(target, name);\n };\n return patchedMethod;\n }\n return Reflect.get(target, prop, receiver);\n }\n });\n}\n/**\n * Creates a DraftModeProvider that always returns isEnabled: false.\n */ export function createDraftModeForValidation() {\n // Create a minimal DraftModeProvider-compatible object\n // that always reports draft mode as disabled.\n //\n // private properties that can't be set from outside the class.\n return {\n get isEnabled () {\n return false;\n },\n enable () {\n throw new Error('Draft mode cannot be enabled during build-time instant validation.');\n },\n disable () {\n throw new Error('Draft mode cannot be disabled during build-time instant validation.');\n }\n };\n}\n/**\n * Creates params wrapped with an exhaustive proxy.\n * Accessing a param not declared in the sample will throw an error.\n */ export function createExhaustiveParamsProxy(underlyingParams, declaredParamNames, route) {\n return new Proxy(underlyingParams, {\n get (target, prop, receiver) {\n if (typeof prop === 'string' && !wellKnownProperties.has(prop) && // Only error when accessing a param that is part of the route but wasn't provided.\n // accessing properties that aren't expected to be a valid param value is fine.\n prop in underlyingParams && !declaredParamNames.has(prop)) {\n trackMissingSampleErrorAndThrow(new InstantValidationError(`Route \"${route}\" accessed param \"${prop}\" which is not defined in the \\`unstable_samples\\` ` + `of \\`instant\\`. Add it to the sample's \\`params\\` object.`));\n }\n return Reflect.get(target, prop, receiver);\n }\n });\n}\n/**\n * Creates searchParams wrapped with an exhaustive proxy.\n * Accessing a searchParam not declared in the sample will throw an error.\n * A searchParam with `value: undefined` means \"declared but absent\" (allowed to access, returns undefined).\n */ export function createExhaustiveSearchParamsProxy(searchParams, declaredSearchParamNames, route) {\n return new Proxy(searchParams, {\n get (target, prop, receiver) {\n if (typeof prop === 'string' && !wellKnownProperties.has(prop) && !declaredSearchParamNames.has(prop)) {\n trackMissingSampleErrorAndThrow(createMissingSearchParamSampleError(route, prop));\n }\n return Reflect.get(target, prop, receiver);\n },\n has (target, prop) {\n if (typeof prop === 'string' && !wellKnownProperties.has(prop) && !declaredSearchParamNames.has(prop)) {\n trackMissingSampleErrorAndThrow(createMissingSearchParamSampleError(route, prop));\n }\n return Reflect.has(target, prop);\n }\n });\n}\n/**\n * Wraps a URLSearchParams (or subclass like ReadonlyURLSearchParams) with an\n * exhaustive proxy. Accessing a search param not declared in the sample via\n * get/getAll/has will throw an error.\n */ export function createExhaustiveURLSearchParamsProxy(searchParams, declaredSearchParamNames, route) {\n return new Proxy(searchParams, {\n get (target, prop, receiver) {\n // Intercept method calls that access specific param names\n if (prop === 'get' || prop === 'getAll' || prop === 'has') {\n const originalMathod = Reflect.get(target, prop, receiver);\n return (name)=>{\n if (typeof name === 'string' && !declaredSearchParamNames.has(name)) {\n trackMissingSampleErrorAndThrow(createMissingSearchParamSampleError(route, name));\n }\n return originalMathod.call(target, name);\n };\n }\n const value = Reflect.get(target, prop, receiver);\n // Prevent `TypeError: Value of \"this\" must be of type URLSearchParams` for methods\n if (typeof value === 'function' && !Object.hasOwn(target, prop)) {\n return value.bind(target);\n }\n return value;\n }\n });\n}\nfunction createMissingSearchParamSampleError(route, name) {\n return new InstantValidationError(`Route \"${route}\" accessed searchParam \"${name}\" which is not defined in the \\`unstable_samples\\` ` + `of \\`instant\\`. Add it to the sample's \\`searchParams\\` object, ` + `or \\`{ \"${name}\": null }\\` if it should be absent.`);\n}\nexport function createRelativeURLFromSamples(route, sampleParams, sampleSearchParams) {\n // Build searchParams query object and URL search string from sample\n const pathname = createPathnameFromRouteAndSampleParams(route, sampleParams ?? {});\n let search = '';\n if (sampleSearchParams) {\n const qs = createURLSearchParamsFromSample(sampleSearchParams).toString();\n if (qs) {\n search = '?' + qs;\n }\n }\n return parseRelativeUrl(pathname + search, undefined, true);\n}\nfunction createURLSearchParamsFromSample(sampleSearchParams) {\n const result = new URLSearchParams();\n if (sampleSearchParams) {\n for (const [key, value] of Object.entries(sampleSearchParams)){\n if (value === null || value === undefined) continue;\n if (Array.isArray(value)) {\n for (const v of value){\n result.append(key, v);\n }\n } else {\n result.set(key, value);\n }\n }\n }\n return result;\n}\n/**\n * Substitute sample params into `workStore.route` to create a plausible pathname.\n * TODO(instant-validation-build): this logic is somewhat hacky and likely incomplete,\n * but it should be good enough for some initial testing.\n */ function createPathnameFromRouteAndSampleParams(route, params) {\n let interpolatedSegments = [];\n const rawSegments = route.split('/');\n for (const rawSegment of rawSegments){\n const param = getSegmentParam(rawSegment);\n if (param) {\n switch(param.paramType){\n case 'catchall':\n case 'optional-catchall':\n {\n let paramValue = params[param.paramName];\n if (paramValue === undefined) {\n // The value for the param was not provided. `usePathname` will detect this and throw\n // before this can surface to userspace. Use `[...NAME]` as a placeholder for the param value\n // in case it pops up somewhere unexpectedly.\n paramValue = [\n rawSegment\n ];\n } else if (!Array.isArray(paramValue)) {\n // NOTE: this happens outside of render, so we don't need `trackMissingSampleErrorAndThrow`\n throw new InstantValidationError(`Expected sample param value for segment '${rawSegment}' to be an array of strings, got ${typeof paramValue}`);\n }\n interpolatedSegments.push(...paramValue.map((v)=>encodeURIComponent(v)));\n break;\n }\n case 'dynamic':\n {\n let paramValue = params[param.paramName];\n if (paramValue === undefined) {\n // The value for the param was not provided. `usePathname` will detect this and throw\n // before this can surface to userspace. Use `[NAME]` as a placeholder for the param value\n // in case it pops up somewhere unexpectedly.\n paramValue = rawSegment;\n } else if (typeof paramValue !== 'string') {\n // NOTE: this happens outside of render, so we don't need `trackMissingSampleErrorAndThrow`\n throw new InstantValidationError(`Expected sample param value for segment '${rawSegment}' to be a string, got ${typeof paramValue}`);\n }\n interpolatedSegments.push(encodeURIComponent(paramValue));\n break;\n }\n case 'catchall-intercepted-(..)(..)':\n case 'catchall-intercepted-(.)':\n case 'catchall-intercepted-(..)':\n case 'catchall-intercepted-(...)':\n case 'dynamic-intercepted-(..)(..)':\n case 'dynamic-intercepted-(.)':\n case 'dynamic-intercepted-(..)':\n case 'dynamic-intercepted-(...)':\n {\n // TODO(instant-validation-build): i don't know how these are supposed to work, or if we can even get them here\n throw new InvariantError('Not implemented: Validation of interception routes');\n }\n default:\n {\n param.paramType;\n }\n }\n } else {\n interpolatedSegments.push(rawSegment);\n }\n }\n return interpolatedSegments.join('/');\n}\nexport function assertRootParamInSamples(workStore, sampleParams, paramName) {\n if (sampleParams && paramName in sampleParams) {\n // The param is defined in the samples.\n } else {\n const route = workStore.route;\n trackMissingSampleErrorAndThrow(new InstantValidationError(`Route \"${route}\" accessed root param \"${paramName}\" which is not defined in the \\`unstable_samples\\` ` + `of \\`instant\\`. Add it to the sample's \\`params\\` object.`));\n }\n}\n\n//# sourceMappingURL=instant-samples.js.map","export const ActionDidNotRevalidate = 0;\nexport const ActionDidRevalidateStaticAndDynamic = 1;\nexport const ActionDidRevalidateDynamicOnly = 2;\n\n//# sourceMappingURL=action-revalidation-kind.js.map","export function getRenderedSearch(query) {\n // Inlined implementation of querystring.encode, which is not available in\n // the Edge runtime.\n const pairs = [];\n for(const key in query){\n const value = query[key];\n if (value == null) continue;\n if (Array.isArray(value)) {\n for (const v of value){\n pairs.push(`${encodeURIComponent(key)}=${encodeURIComponent(String(v))}`);\n }\n } else {\n pairs.push(`${encodeURIComponent(key)}=${encodeURIComponent(String(value))}`);\n }\n }\n // The result should match the format of a web URL's `search` property, since\n // this is the format that's stored in the App Router state.\n // TODO: We're a bit inconsistent about this. The x-nextjs-rewritten-query\n // header omits the leading question mark. Should refactor to always do\n // that instead.\n if (pairs.length === 0) {\n // If the search string is empty, return an empty string.\n return '';\n }\n // Prepend '?' to the search params string.\n return '?' + pairs.join('&');\n}\nexport function searchParamsToUrlQuery(searchParams) {\n const query = {};\n for (const [key, value] of searchParams.entries()){\n const existing = query[key];\n if (typeof existing === 'undefined') {\n query[key] = value;\n } else if (Array.isArray(existing)) {\n existing.push(value);\n } else {\n query[key] = [\n existing,\n value\n ];\n }\n }\n return query;\n}\nfunction stringifyUrlQueryParam(param) {\n if (typeof param === 'string') {\n return param;\n }\n if (typeof param === 'number' && !isNaN(param) || typeof param === 'boolean') {\n return String(param);\n } else {\n return '';\n }\n}\nexport function urlQueryToSearchParams(query) {\n const searchParams = new URLSearchParams();\n for (const [key, value] of Object.entries(query)){\n if (Array.isArray(value)) {\n for (const item of value){\n searchParams.append(key, stringifyUrlQueryParam(item));\n }\n } else {\n searchParams.set(key, stringifyUrlQueryParam(value));\n }\n }\n return searchParams;\n}\nexport function assign(target, ...searchParamsList) {\n for (const searchParams of searchParamsList){\n for (const key of searchParams.keys()){\n target.delete(key);\n }\n for (const [key, value] of searchParams.entries()){\n target.append(key, value);\n }\n }\n return target;\n}\n\n//# sourceMappingURL=querystring.js.map","import { RequestCookies } from '../cookies';\nimport { ResponseCookies } from '../cookies';\nimport { ReflectAdapter } from './reflect';\nimport { workAsyncStorage } from '../../../app-render/work-async-storage.external';\nimport { ActionDidRevalidateStaticAndDynamic } from '../../../../shared/lib/action-revalidation-kind';\n/**\n * @internal\n */ export class ReadonlyRequestCookiesError extends Error {\n constructor(){\n super('Cookies can only be modified in a Server Action or Route Handler. Read more: https://nextjs.org/docs/app/api-reference/functions/cookies#options');\n }\n static callable() {\n throw new ReadonlyRequestCookiesError();\n }\n}\nexport class RequestCookiesAdapter {\n static seal(cookies) {\n return new Proxy(cookies, {\n get (target, prop, receiver) {\n switch(prop){\n case 'clear':\n case 'delete':\n case 'set':\n return ReadonlyRequestCookiesError.callable;\n default:\n return ReflectAdapter.get(target, prop, receiver);\n }\n }\n });\n }\n /**\n * @param cookies\n * @returns A fresh object identity backed by the original value\n */ static fresh(cookies) {\n return new Proxy(cookies, {\n get (target, prop, receiver) {\n return ReflectAdapter.get(target, prop, receiver);\n }\n });\n }\n}\nconst SYMBOL_MODIFY_COOKIE_VALUES = Symbol.for('next.mutated.cookies');\nexport function getModifiedCookieValues(cookies) {\n const modified = cookies[SYMBOL_MODIFY_COOKIE_VALUES];\n if (!modified || !Array.isArray(modified) || modified.length === 0) {\n return [];\n }\n return modified;\n}\nexport function appendMutableCookies(headers, mutableCookies) {\n const modifiedCookieValues = getModifiedCookieValues(mutableCookies);\n if (modifiedCookieValues.length === 0) {\n return false;\n }\n // Return a new response that extends the response with\n // the modified cookies as fallbacks. `res` cookies\n // will still take precedence.\n const resCookies = new ResponseCookies(headers);\n const returnedCookies = resCookies.getAll();\n // Set the modified cookies as fallbacks.\n for (const cookie of modifiedCookieValues){\n resCookies.set(cookie);\n }\n // Set the original cookies as the final values.\n for (const cookie of returnedCookies){\n resCookies.set(cookie);\n }\n return true;\n}\nexport class MutableRequestCookiesAdapter {\n static wrap(cookies, onUpdateCookies) {\n const responseCookies = new ResponseCookies(new Headers());\n for (const cookie of cookies.getAll()){\n responseCookies.set(cookie);\n }\n let modifiedValues = [];\n const modifiedCookies = new Set();\n const updateResponseCookies = ()=>{\n // TODO-APP: change method of getting workStore\n const workStore = workAsyncStorage.getStore();\n if (workStore) {\n workStore.pathWasRevalidated = ActionDidRevalidateStaticAndDynamic;\n }\n const allCookies = responseCookies.getAll();\n modifiedValues = allCookies.filter((c)=>modifiedCookies.has(c.name));\n if (onUpdateCookies) {\n const serializedCookies = [];\n for (const cookie of modifiedValues){\n const tempCookies = new ResponseCookies(new Headers());\n tempCookies.set(cookie);\n serializedCookies.push(tempCookies.toString());\n }\n onUpdateCookies(serializedCookies);\n }\n };\n const wrappedCookies = new Proxy(responseCookies, {\n get (target, prop, receiver) {\n switch(prop){\n // A special symbol to get the modified cookie values\n case SYMBOL_MODIFY_COOKIE_VALUES:\n return modifiedValues;\n // TODO: Throw error if trying to set a cookie after the response\n // headers have been set.\n case 'delete':\n return function(...args) {\n modifiedCookies.add(typeof args[0] === 'string' ? args[0] : args[0].name);\n try {\n target.delete(...args);\n return wrappedCookies;\n } finally{\n updateResponseCookies();\n }\n };\n case 'set':\n return function(...args) {\n modifiedCookies.add(typeof args[0] === 'string' ? args[0] : args[0].name);\n try {\n target.set(...args);\n return wrappedCookies;\n } finally{\n updateResponseCookies();\n }\n };\n default:\n return ReflectAdapter.get(target, prop, receiver);\n }\n }\n });\n return wrappedCookies;\n }\n}\nexport function createCookiesWithMutableAccessCheck(requestStore) {\n const wrappedCookies = new Proxy(requestStore.mutableCookies, {\n get (target, prop, receiver) {\n switch(prop){\n case 'delete':\n return function(...args) {\n ensureCookiesAreStillMutable(requestStore, 'cookies().delete');\n target.delete(...args);\n return wrappedCookies;\n };\n case 'set':\n return function(...args) {\n ensureCookiesAreStillMutable(requestStore, 'cookies().set');\n target.set(...args);\n return wrappedCookies;\n };\n default:\n return ReflectAdapter.get(target, prop, receiver);\n }\n }\n });\n return wrappedCookies;\n}\nexport function areCookiesMutableInCurrentPhase(requestStore) {\n return requestStore.phase === 'action';\n}\n/** Ensure that cookies() starts throwing on mutation\n * if we changed phases and can no longer mutate.\n *\n * This can happen when going:\n * 'render' -> 'after'\n * 'action' -> 'render'\n * */ function ensureCookiesAreStillMutable(requestStore, _callingExpression) {\n if (!areCookiesMutableInCurrentPhase(requestStore)) {\n // TODO: maybe we can give a more precise error message based on callingExpression?\n throw new ReadonlyRequestCookiesError();\n }\n}\nexport function responseCookiesToRequestCookies(responseCookies) {\n const requestCookies = new RequestCookies(new Headers());\n for (const cookie of responseCookies.getAll()){\n requestCookies.set(cookie);\n }\n return requestCookies;\n}\n\n//# sourceMappingURL=request-cookies.js.map","import { getLocationOrigin } from '../../utils';\nimport { searchParamsToUrlQuery } from './querystring';\nexport function parseRelativeUrl(url, base, parseQuery = true) {\n const globalBase = new URL(typeof window === 'undefined' ? 'http://n' : getLocationOrigin());\n const resolvedBase = base ? new URL(base, globalBase) : url.startsWith('.') ? new URL(typeof window === 'undefined' ? 'http://n' : window.location.href) : globalBase;\n const { pathname, searchParams, search, hash, href, origin } = url.startsWith('/') ? // See https://nodejs.org/api/http.html#messageurl\n // Not using `origin` to support other protocols\n new URL(`${resolvedBase.protocol}//${resolvedBase.host}${url}`) : new URL(url, resolvedBase);\n if (origin !== globalBase.origin) {\n throw new Error(`invariant: invalid relative URL, router received ${url}`);\n }\n return {\n auth: null,\n host: null,\n hostname: null,\n pathname,\n port: null,\n protocol: null,\n query: parseQuery ? searchParamsToUrlQuery(searchParams) : undefined,\n search,\n hash,\n href: href.slice(origin.length),\n // We don't know for relative URLs at this point since we set a custom, internal\n // base that isn't surfaced to users.\n slashes: null\n };\n}\n\n//# sourceMappingURL=parse-relative-url.js.map","import { ReflectAdapter } from './reflect';\n/**\n * @internal\n */ export class ReadonlyHeadersError extends Error {\n constructor(){\n super('Headers cannot be modified. Read more: https://nextjs.org/docs/app/api-reference/functions/headers');\n }\n static callable() {\n throw new ReadonlyHeadersError();\n }\n}\n/**\n * Builds the read methods for a sealed view that exposes all of `target`.\n */ function createPassThroughMethods(target, sealed) {\n return {\n get: target.get.bind(target),\n has: target.has.bind(target),\n getSetCookie: target.getSetCookie.bind(target),\n keys: target.keys.bind(target),\n values: target.values.bind(target),\n entries: target.entries.bind(target),\n [Symbol.iterator]: target[Symbol.iterator].bind(target),\n // The native method passes the unsealed target as the callback's `parent`\n // argument. That is a mutable handle on the underlying headers. Pass the\n // sealed view instead.\n forEach (callbackfn, thisArg) {\n for (const [name, value] of target.entries()){\n callbackfn.call(thisArg, value, name, sealed);\n }\n }\n };\n}\n/**\n * Builds the read methods for a sealed view that omits the header names matched\n * by `isHidden`.\n */ function createHidingMethods(target, sealed, isHidden) {\n function* entries() {\n for (const entry of target.entries()){\n if (!isHidden(entry[0])) {\n yield entry;\n }\n }\n }\n return {\n entries,\n [Symbol.iterator]: entries,\n get: (name)=>isHidden(name) ? null : target.get(name),\n has: (name)=>isHidden(name) ? false : target.has(name),\n getSetCookie: ()=>isHidden('set-cookie') ? [] : target.getSetCookie(),\n *keys () {\n for (const name of target.keys()){\n if (!isHidden(name)) {\n yield name;\n }\n }\n },\n *values () {\n for (const [, value] of entries()){\n yield value;\n }\n },\n // The native method passes the unsealed target as the callback's `parent`\n // argument. That is a mutable handle on the underlying headers. Pass the\n // sealed view instead.\n forEach (callbackfn, thisArg) {\n for (const [name, value] of entries()){\n callbackfn.call(thisArg, value, name, sealed);\n }\n }\n };\n}\nexport class HeadersAdapter extends Headers {\n constructor(headers){\n // We've already overridden the methods that would be called, so we're just\n // calling the super constructor to ensure that the instanceof check works.\n super();\n this.headers = new Proxy(headers, {\n get (target, prop, receiver) {\n // Because this is just an object, we expect that all \"get\" operations\n // are for properties. If it's a \"get\" for a symbol, we'll just return\n // the symbol.\n if (typeof prop === 'symbol') {\n return ReflectAdapter.get(target, prop, receiver);\n }\n const lowercased = prop.toLowerCase();\n // Let's find the original casing of the key. This assumes that there is\n // no mixed case keys (e.g. \"Content-Type\" and \"content-type\") in the\n // headers object.\n const original = Object.keys(headers).find((o)=>o.toLowerCase() === lowercased);\n // If the original casing doesn't exist, return undefined.\n if (typeof original === 'undefined') return;\n // If the original casing exists, return the value.\n return ReflectAdapter.get(target, original, receiver);\n },\n set (target, prop, value, receiver) {\n if (typeof prop === 'symbol') {\n return ReflectAdapter.set(target, prop, value, receiver);\n }\n const lowercased = prop.toLowerCase();\n // Let's find the original casing of the key. This assumes that there is\n // no mixed case keys (e.g. \"Content-Type\" and \"content-type\") in the\n // headers object.\n const original = Object.keys(headers).find((o)=>o.toLowerCase() === lowercased);\n // If the original casing doesn't exist, use the prop as the key.\n return ReflectAdapter.set(target, original ?? prop, value, receiver);\n },\n has (target, prop) {\n if (typeof prop === 'symbol') return ReflectAdapter.has(target, prop);\n const lowercased = prop.toLowerCase();\n // Let's find the original casing of the key. This assumes that there is\n // no mixed case keys (e.g. \"Content-Type\" and \"content-type\") in the\n // headers object.\n const original = Object.keys(headers).find((o)=>o.toLowerCase() === lowercased);\n // If the original casing doesn't exist, return false.\n if (typeof original === 'undefined') return false;\n // If the original casing exists, return true.\n return ReflectAdapter.has(target, original);\n },\n deleteProperty (target, prop) {\n if (typeof prop === 'symbol') return ReflectAdapter.deleteProperty(target, prop);\n const lowercased = prop.toLowerCase();\n // Let's find the original casing of the key. This assumes that there is\n // no mixed case keys (e.g. \"Content-Type\" and \"content-type\") in the\n // headers object.\n const original = Object.keys(headers).find((o)=>o.toLowerCase() === lowercased);\n // If the original casing doesn't exist, return true.\n if (typeof original === 'undefined') return true;\n // If the original casing exists, delete the property.\n return ReflectAdapter.deleteProperty(target, original);\n }\n });\n }\n /**\n * Seals a Headers instance to prevent modification by throwing an error when\n * any mutating method is called.\n *\n * The sealed view stays live. Later writes to `headers` remain visible\n * through it.\n *\n * `hidden` omits the given header names from every read operation (`get`,\n * `has`, `getSetCookie`, `forEach`, and iteration). The names must be\n * lowercase. The underlying headers are neither copied nor mutated, so hidden\n * headers remain available to the framework.\n */ static seal(headers, hidden) {\n const isHidden = hidden && hidden.size > 0 ? (name)=>hidden.has(name.toLowerCase()) : null;\n // The methods are built once per sealed view and reused, so repeated access\n // returns the same function instead of a fresh closure. They are assigned\n // after the proxy exists because `forEach` hands the proxy to its callback.\n // Creating the proxy runs no trap, so nothing can read them before then.\n let methods;\n const sealed = new Proxy(headers, {\n get (target, prop, receiver) {\n switch(prop){\n case 'append':\n case 'delete':\n case 'set':\n return ReadonlyHeadersError.callable;\n case Symbol.iterator:\n return methods[Symbol.iterator];\n case 'get':\n case 'has':\n case 'getSetCookie':\n case 'keys':\n case 'values':\n case 'entries':\n case 'forEach':\n return methods[prop];\n default:\n return ReflectAdapter.get(target, prop, receiver);\n }\n }\n });\n methods = isHidden ? createHidingMethods(headers, sealed, isHidden) : createPassThroughMethods(headers, sealed);\n return sealed;\n }\n /**\n * @param headers\n * @returns A fresh object identity backed by the original value\n */ static fresh(headers) {\n return new Proxy(headers, {\n get (target, prop, receiver) {\n return ReflectAdapter.get(target, prop, receiver);\n }\n });\n }\n /**\n * Merges a header value into a string. This stores multiple values as an\n * array, so we need to merge them into a string.\n *\n * @param value a header value\n * @returns a merged header value (a string)\n */ merge(value) {\n if (Array.isArray(value)) return value.join(', ');\n return value;\n }\n /**\n * Creates a Headers instance from a plain object or a Headers instance.\n *\n * @param headers a plain object or a Headers instance\n * @returns a headers instance\n */ static from(headers) {\n if (headers instanceof Headers) return headers;\n return new HeadersAdapter(headers);\n }\n append(name, value) {\n const existing = this.headers[name];\n if (typeof existing === 'string') {\n this.headers[name] = [\n existing,\n value\n ];\n } else if (Array.isArray(existing)) {\n existing.push(value);\n } else {\n this.headers[name] = value;\n }\n }\n delete(name) {\n delete this.headers[name];\n }\n get(name) {\n const value = this.headers[name];\n if (typeof value !== 'undefined') return this.merge(value);\n return null;\n }\n has(name) {\n return typeof this.headers[name] !== 'undefined';\n }\n set(name, value) {\n this.headers[name] = value;\n }\n forEach(callbackfn, thisArg) {\n for (const [name, value] of this.entries()){\n callbackfn.call(thisArg, value, name, this);\n }\n }\n *entries() {\n for (const key of Object.keys(this.headers)){\n const name = key.toLowerCase();\n // We assert here that this is a string because we got it from the\n // Object.keys() call above.\n const value = this.get(name);\n yield [\n name,\n value\n ];\n }\n }\n *keys() {\n for (const key of Object.keys(this.headers)){\n const name = key.toLowerCase();\n yield name;\n }\n }\n *values() {\n for (const key of Object.keys(this.headers)){\n // We assert here that this is a string because we got it from the\n // Object.keys() call above.\n const value = this.get(key);\n yield value;\n }\n }\n [Symbol.iterator]() {\n return this.entries();\n }\n}\n\n//# sourceMappingURL=headers.js.map","const INSTANT_VALIDATION_ERROR_DIGEST = 'INSTANT_VALIDATION_ERROR'\n\n/** Check if an error is an exhaustive samples validation error (by digest). */\nexport function isInstantValidationError(\n err: unknown\n): err is InstantValidationError {\n return !!(\n err &&\n typeof err === 'object' &&\n err instanceof Error &&\n (err as any).digest === INSTANT_VALIDATION_ERROR_DIGEST\n )\n}\n\nexport class InstantValidationError extends Error {\n digest = INSTANT_VALIDATION_ERROR_DIGEST\n}\n","/**\n * Interop between \"export default\" and \"module.exports\".\n */\nexport function interopDefault(mod: any) {\n return mod.default || mod\n}\n","import type { ActionManifest } from '../../build/webpack/plugins/flight-client-entry-plugin'\nimport type { ClientReferenceManifest } from '../../build/webpack/plugins/flight-manifest-plugin'\nimport type { DeepReadonly } from '../../shared/lib/deep-readonly'\nimport { InvariantError } from '../../shared/lib/invariant-error'\nimport { normalizeAppPath } from '../../shared/lib/router/utils/app-paths'\nimport { pathHasPrefix } from '../../shared/lib/router/utils/path-has-prefix'\nimport { removePathPrefix } from '../../shared/lib/router/utils/remove-path-prefix'\nimport { mightBeServerReferenceId } from '../../shared/lib/server-reference-info'\nimport { wellKnownProperties } from '../../shared/lib/utils/reflect-utils'\nimport { workAsyncStorage } from './work-async-storage.external'\nimport {\n workUnitAsyncStorage,\n type WorkUnitStore,\n} from './work-unit-async-storage.external'\n\nexport interface ServerModuleMap {\n readonly [name: string]: {\n readonly id: string | number\n readonly name: string\n readonly chunks: Readonly> // currently not used\n readonly async?: boolean\n }\n}\n\nexport function getActionNotFoundError(actionId: string | null): Error {\n return new Error(\n `Failed to find Server Action${actionId ? ` \"${actionId}\"` : ''}. This request might be from an older or newer deployment.\\nRead more: https://nextjs.org/docs/messages/failed-to-find-server-action`\n )\n}\n\nexport function getInvalidServerReferenceIdError(id: string): Error {\n // `id` is arbitrary client-provided input. Unlike the not-found case, it has\n // not passed the length gate and can reach this error via a malformed server\n // reference in an action payload, so it may be of any length and contain\n // control characters. `JSON.stringify` escapes newlines and quotes so it\n // can't forge log lines, and truncating overly long ids prevents log\n // flooding. Ids at or below the cap are logged in full so that we only add an\n // ellipsis to ids that are meaningfully longer than the truncated length.\n const encoded = JSON.stringify(\n id.length > MAX_LOGGED_SERVER_REFERENCE_ID_LENGTH\n ? id.slice(0, TRUNCATED_SERVER_REFERENCE_ID_LENGTH) + '…'\n : id\n )\n\n return new Error(\n `The Server Reference ID did not match the expected format. Received ${encoded}.\\nRead more: https://nextjs.org/docs/messages/failed-to-find-server-action`\n )\n}\n\n// Ids at or below the cap are logged in full. Longer ids are truncated to the\n// shorter length and marked with an ellipsis, so the cap leaves headroom over\n// the truncated length rather than ellipsizing ids that are barely too long.\nconst MAX_LOGGED_SERVER_REFERENCE_ID_LENGTH = 100\nconst TRUNCATED_SERVER_REFERENCE_ID_LENGTH = 90\n\n// This is a global singleton that is, among other things, also used to\n// encode/decode bound args of server function closures. This can't be using a\n// AsyncLocalStorage as it might happen at the module level.\nconst MANIFESTS_SINGLETON = Symbol.for('next.server.manifests')\n\ninterface RegisteredClientReferenceManifest {\n /**\n * The page the manifest was registered with. Routes are normalized app paths,\n * which is lossy (route groups, parallel slots and the trailing `/page` are\n * stripped), so this is kept alongside for consumers that need to address the\n * manifest on disk again rather than reversing the normalization.\n */\n readonly page: string\n readonly clientReferenceManifest: DeepReadonly\n}\n\ninterface ManifestsSingleton {\n readonly clientReferenceManifestsPerRoute: Map<\n string,\n RegisteredClientReferenceManifest\n >\n readonly proxiedClientReferenceManifest: DeepReadonly\n readonly rscModuleMappingForUseCache: DeepReadonly<\n ClientReferenceManifest['rscModuleMapping']\n >\n serverActionsManifest: DeepReadonly\n serverModuleMap: ServerModuleMap\n}\n\ntype GlobalThisWithManifests = typeof globalThis & {\n [MANIFESTS_SINGLETON]?: ManifestsSingleton\n}\n\ntype ClientReferenceManifestMappingProp =\n | 'clientModules'\n | 'rscModuleMapping'\n | 'edgeRscModuleMapping'\n | 'ssrModuleMapping'\n | 'edgeSSRModuleMapping'\n\nconst globalThisWithManifests = globalThis as GlobalThisWithManifests\n\nfunction isUseCacheStore(workUnitStore: WorkUnitStore | undefined): boolean {\n if (!workUnitStore) {\n return false\n }\n\n switch (workUnitStore.type) {\n case 'cache':\n case 'private-cache':\n return true\n case 'request':\n case 'unstable-cache':\n case 'prerender':\n case 'prerender-client':\n case 'prerender-legacy':\n case 'prerender-runtime':\n case 'validation-client':\n case 'build-time-generator':\n return false\n default:\n return workUnitStore satisfies never\n }\n}\n\nfunction createProxiedClientReferenceManifest(\n clientReferenceManifestsPerRoute: Map<\n string,\n RegisteredClientReferenceManifest\n >\n): Pick<\n ManifestsSingleton,\n 'proxiedClientReferenceManifest' | 'rscModuleMappingForUseCache'\n> {\n const createMappingProxy = (prop: ClientReferenceManifestMappingProp) => {\n return new Proxy(\n {},\n {\n get(_, id: string) {\n const workStore = workAsyncStorage.getStore()\n\n if (workStore) {\n const currentManifest = clientReferenceManifestsPerRoute.get(\n workStore.route\n )?.clientReferenceManifest\n\n if (currentManifest?.[prop][id]) {\n if (\n workStore.durableUseCacheEntries &&\n prop === 'clientModules'\n ) {\n const workUnitStore = workUnitAsyncStorage.getStore()\n if (isUseCacheStore(workUnitStore)) {\n // This creates a mapping so that a given client references with name\n // `app/foo/client.tsx` is serialized as\n // ```\n // { id: `app/foo/client.tsx`, name: `*`, chunks: [\"stub\"], async: false }\n // ```\n // instead of the actual\n // ```\n // { id: 19132, name: `*`, chunks: [\"/_next/static/chunks/...\"], async: true }\n // ```\n //\n // This means that not the unstable client module id is used for the cache entry,\n // but the stable client reference name. The stable client reference name is\n // resolved against the current manifest via rscModuleMappingForUseCache when the\n // entry is read.\n const clientReferenceManifestEntry =\n currentManifest.clientModules[id]\n return {\n // Return `id` instead of `clientReferenceManifestEntry.id` here.\n id,\n name: clientReferenceManifestEntry.name,\n // Set a sentinel value just in case this does ends up being read at some point\n // in the future, then at least we'll get \"Failed to load chunk stub (404)\"\n // instead of \"Failed to load module 1234\".\n chunks: ['stub'],\n async: false,\n }\n }\n }\n return currentManifest[prop][id]\n }\n\n // In development, we also check all other manifests to see if the\n // module exists there. This is to support a scenario where React's\n // I/O tracking (dev-only) creates a connection from one page to\n // another through an emitted async I/O node that references client\n // components from the other page, e.g. in owner props.\n // TODO: Maybe we need to add a `debugBundlerConfig` option to React\n // to avoid this workaround. The current workaround has the\n // disadvantage that one might accidentally or intentionally share\n // client references across pages (e.g. by storing them in a global\n // variable), which would then only be caught in production.\n if (process.env.NODE_ENV !== 'production') {\n for (const [\n route,\n { page, clientReferenceManifest },\n ] of clientReferenceManifestsPerRoute) {\n if (route === workStore.route) {\n continue\n }\n\n const entry = clientReferenceManifest[prop][id]\n\n if (entry !== undefined) {\n if (process.env.__NEXT_DEV_SERVER) {\n // The dev validation worker rebuilds this registry in its\n // own thread, seeded with only the route it validates, so\n // it has to be told which other manifests it needs.\n workStore.additionalClientReferenceManifestPages ??=\n new Set()\n workStore.additionalClientReferenceManifestPages.add(page)\n }\n\n return entry\n }\n }\n }\n } else {\n // If there's no work store defined, we can assume that a client\n // reference manifest is needed during module evaluation, e.g. to\n // create a server function using a higher-order function. This\n // might also use client components which need to be serialized by\n // Flight, and therefore client references need to be resolvable. In\n // that case we search all page manifests to find the module.\n for (const {\n clientReferenceManifest,\n } of clientReferenceManifestsPerRoute.values()) {\n const entry = clientReferenceManifest[prop][id]\n\n if (entry !== undefined) {\n return entry\n }\n }\n }\n\n return undefined\n },\n }\n )\n }\n\n const mappingProxies = new Map<\n ClientReferenceManifestMappingProp,\n ReturnType\n >()\n\n const proxiedClientReferenceManifest = new Proxy(\n {},\n {\n get(_, prop) {\n const workStore = workAsyncStorage.getStore()\n\n switch (prop) {\n case 'moduleLoading':\n case 'entryCSSFiles':\n case 'entryJSFiles': {\n if (!workStore) {\n throw new InvariantError(\n `Cannot access \"${prop}\" without a work store.`\n )\n }\n\n const registeredManifest = clientReferenceManifestsPerRoute.get(\n workStore.route\n )\n\n if (!registeredManifest) {\n throw new InvariantError(\n `The client reference manifest for route \"${workStore.route}\" does not exist.`\n )\n }\n\n return registeredManifest.clientReferenceManifest[prop]\n }\n case 'clientModules':\n case 'rscModuleMapping':\n case 'edgeRscModuleMapping':\n case 'ssrModuleMapping':\n case 'edgeSSRModuleMapping': {\n let proxy = mappingProxies.get(prop)\n\n if (!proxy) {\n proxy = createMappingProxy(prop)\n mappingProxies.set(prop, proxy)\n }\n\n return proxy\n }\n default: {\n throw new InvariantError(\n `This is a proxied client reference manifest. The property \"${String(prop)}\" is not handled.`\n )\n }\n }\n },\n }\n ) as DeepReadonly\n\n // Performs the inverse of the clientModules isUseCacheStore(workUnitStore) special case above:\n //\n // For cache functions, don't do the usual rscModuleMapping lookup by module ID, but instead look\n // up by the stable client reference name. This is because cache entries must not depend on\n // build-local module IDs or chunks. So we need a second layer of indirection here to do client\n // reference name -> client module id -> rsc module mapping lookup.\n //\n // This one is created separately (not inside proxiedClientReferenceManifest.rscModuleMapping) as\n // we don't necessarily are inside a workUnitStore when we need to access this mapping (as opposed\n // to the clientModules mapping, which always has the ALS set).\n const rscModuleMappingForUseCache = new Proxy(\n {},\n {\n get(\n _,\n key: string\n ): ClientReferenceManifest['rscModuleMapping'][string] | undefined {\n const workStore = workAsyncStorage.getStore()\n if (workStore && workStore.durableUseCacheEntries) {\n const currentManifest = clientReferenceManifestsPerRoute.get(\n workStore.route\n )?.clientReferenceManifest\n\n const clientReferenceName = key\n const clientReferenceManifestEntry =\n currentManifest?.clientModules[clientReferenceName]\n if (clientReferenceManifestEntry === undefined) {\n return undefined\n }\n\n const clientModuleId = clientReferenceManifestEntry.id\n return currentManifest?.rscModuleMapping[clientModuleId]\n } else {\n return proxiedClientReferenceManifest.rscModuleMapping[key]\n }\n },\n }\n ) as DeepReadonly\n\n return { proxiedClientReferenceManifest, rscModuleMappingForUseCache }\n}\n\n/**\n * This function creates a Flight-acceptable server module map proxy from our\n * Server Reference Manifest similar to our client module map. This is because\n * our manifest contains a lot of internal Next.js data that are relevant to the\n * runtime, workers, etc. that React doesn't need to know.\n */\nfunction createServerModuleMap(): ServerModuleMap {\n return new Proxy(Object.create(null) as ServerModuleMap, {\n get: (target, id: string | symbol, receiver) => {\n // React's debug serialization can probe the module map like a plain object.\n // These probes are not server reference lookups.\n if (typeof id !== 'string') {\n return Reflect.get(target, id, receiver)\n }\n\n if (wellKnownProperties.has(id)) {\n return Reflect.get(target, id, receiver)\n }\n\n if (!mightBeServerReferenceId(id)) {\n throw getInvalidServerReferenceIdError(id)\n }\n\n const workers =\n getServerActionsManifest()[\n process.env.NEXT_RUNTIME === 'edge' ? 'edge' : 'node'\n ]?.[id]?.workers\n\n if (!workers) {\n throw getActionNotFoundError(id)\n }\n\n const workStore = workAsyncStorage.getStore()\n\n let workerEntry:\n | {\n moduleId: string | number\n async: boolean\n durability?: {\n codeHash: string\n runtimeEnvVarsRead: readonly string[]\n runtimeEnvVarsExistence: readonly string[]\n }\n }\n | undefined\n\n if (workStore) {\n workerEntry = workers[normalizeWorkerPageName(workStore.page)]\n } else {\n // If there's no work store defined, we can assume that a server\n // module map is needed during module evaluation, e.g. to create a\n // server action using a higher-order function. Therefore it should be\n // safe to return any entry from the manifest that matches the action\n // ID. They all refer to the same module ID, which must also exist in\n // the current page bundle. TODO: This is currently not guaranteed in\n // Turbopack, and needs to be fixed.\n workerEntry = Object.values(workers).at(0)\n }\n\n if (!workerEntry) {\n throw getActionNotFoundError(id)\n }\n\n const { moduleId, async, durability } = workerEntry\n\n return {\n id: moduleId,\n name: id,\n chunks: [],\n async,\n durability,\n }\n },\n })\n}\n\n/**\n * The flight entry loader keys actions by bundlePath. bundlePath corresponds\n * with the relative path (including 'app') to the page entrypoint.\n */\nexport function normalizeWorkerPageName(pageName: string) {\n if (pathHasPrefix(pageName, 'app')) {\n return pageName\n }\n\n return 'app' + pageName\n}\n\n/**\n * Converts a bundlePath (relative path to the entrypoint) to a routable page\n * name.\n */\nfunction denormalizeWorkerPageName(bundlePath: string) {\n return normalizeAppPath(removePathPrefix(bundlePath, 'app'))\n}\n\n/**\n * Checks if the requested action has a worker for the current page.\n * If not, it returns the first worker that has a handler for the action.\n */\nexport function selectWorkerForForwarding(\n actionId: string,\n pageName: string\n): string | undefined {\n const serverActionsManifest = getServerActionsManifest()\n const workers =\n serverActionsManifest[\n process.env.NEXT_RUNTIME === 'edge' ? 'edge' : 'node'\n ][actionId]?.workers\n\n // There are no workers to handle this action, nothing to forward to.\n if (!workers) {\n return\n }\n\n // If there is an entry for the current page, we don't need to forward.\n if (workers[normalizeWorkerPageName(pageName)]) {\n return\n }\n\n // Otherwise, grab the first worker that has a handler for this action id.\n return denormalizeWorkerPageName(Object.keys(workers)[0])\n}\n\nexport function setManifestsSingleton({\n page,\n clientReferenceManifest,\n serverActionsManifest: rawServerActionsManifest,\n}: {\n page: string\n clientReferenceManifest: DeepReadonly\n serverActionsManifest: DeepReadonly\n}) {\n const existingSingleton = globalThisWithManifests[MANIFESTS_SINGLETON]\n const route = normalizeAppPath(page)\n\n const serverActionsManifest: DeepReadonly = {\n encryptionKey: rawServerActionsManifest.encryptionKey,\n // Use null-prototypes for the action objects to prevent prototype pollution\n // from affecting action ID lookups.\n node: Object.assign(Object.create(null), rawServerActionsManifest.node),\n edge: Object.assign(Object.create(null), rawServerActionsManifest.edge),\n }\n\n if (existingSingleton) {\n existingSingleton.clientReferenceManifestsPerRoute.set(route, {\n page,\n clientReferenceManifest,\n })\n\n existingSingleton.serverActionsManifest = serverActionsManifest\n } else {\n const clientReferenceManifestsPerRoute = new Map<\n string,\n RegisteredClientReferenceManifest\n >([[route, { page, clientReferenceManifest }]])\n\n const { proxiedClientReferenceManifest, rscModuleMappingForUseCache } =\n createProxiedClientReferenceManifest(clientReferenceManifestsPerRoute)\n\n globalThisWithManifests[MANIFESTS_SINGLETON] = {\n clientReferenceManifestsPerRoute,\n proxiedClientReferenceManifest,\n rscModuleMappingForUseCache,\n serverActionsManifest,\n serverModuleMap: createServerModuleMap(),\n }\n }\n}\n\nfunction getManifestsSingleton(): ManifestsSingleton {\n const manifestSingleton = globalThisWithManifests[MANIFESTS_SINGLETON]\n\n if (!manifestSingleton) {\n throw new InvariantError('The manifests singleton was not initialized.')\n }\n\n return manifestSingleton\n}\n\n/**\n * Returns the usual client_reference_manifest.json.\n *\n * In dev, it also looks up references of other pages (due to overlapping processing on\n * navigations).\n *\n * Inside a use-cache workUnitStore, clientModules instead map to a stable dummy value (see comments\n * above).\n */\nexport function getClientReferenceManifest(): DeepReadonly {\n return getManifestsSingleton().proxiedClientReferenceManifest\n}\n\n/**\n * A mapping of client reference names to the RSC module id. (So a double lookup of clientModules ->\n * rscModuleMapping)\n */\nexport function getRscModuleMappingForUseCache(): DeepReadonly<\n ClientReferenceManifest['rscModuleMapping']\n> {\n return getManifestsSingleton().rscModuleMappingForUseCache\n}\n\nexport function getServerActionsManifest(): DeepReadonly {\n return getManifestsSingleton().serverActionsManifest\n}\n\nexport function getServerModuleMap() {\n return getManifestsSingleton().serverModuleMap\n}\n","import type { IncomingHttpHeaders } from 'node:http'\n\nimport { FLIGHT_HEADERS } from '../../client/components/app-router-headers'\n\n/**\n * Removes the flight headers from the request.\n *\n * @param req the request to strip the headers from\n */\nexport function stripFlightHeaders(headers: IncomingHttpHeaders) {\n for (const header of FLIGHT_HEADERS) {\n delete headers[header]\n }\n}\n","import { RedirectStatusCode } from '../../client/components/redirect-status-code';\nimport { getCookieParser } from '../api-utils/get-cookie-parser';\nexport class BaseNextRequest {\n constructor(method, url, body){\n this.method = method;\n this.url = url;\n this.body = body;\n }\n // Utils implemented using the abstract methods above\n get cookies() {\n if (this._cookies) return this._cookies;\n return this._cookies = getCookieParser(this.headers)();\n }\n}\nexport class BaseNextResponse {\n constructor(destination){\n this.destination = destination;\n }\n // Utils implemented using the abstract methods above\n redirect(destination, statusCode) {\n this.setHeader('Location', destination);\n this.statusCode = statusCode;\n // Since IE11 doesn't support the 308 header add backwards\n // compatibility using refresh header\n if (statusCode === RedirectStatusCode.PermanentRedirect) {\n this.setHeader('Refresh', `0;url=${destination}`);\n }\n return this;\n }\n}\n\n//# sourceMappingURL=index.js.map","import { SYMBOL_CLEARED_COOKIES } from '../api-utils';\nimport { NEXT_REQUEST_META } from '../request-meta';\nimport { BaseNextRequest, BaseNextResponse } from './index';\nlet prop;\nexport class NodeNextRequest extends BaseNextRequest {\n static #_ = prop = _NEXT_REQUEST_META = NEXT_REQUEST_META;\n constructor(_req){\n var _this__req;\n super(_req.method.toUpperCase(), _req.url, _req), this._req = _req, this.headers = this._req.headers, this.fetchMetrics = (_this__req = this._req) == null ? void 0 : _this__req.fetchMetrics, this[_NEXT_REQUEST_META] = this._req[NEXT_REQUEST_META] || {}, this.streaming = false;\n }\n get originalRequest() {\n // Need to mimic these changes to the original req object for places where we use it:\n // render.tsx, api/ssg requests\n this._req[NEXT_REQUEST_META] = this[NEXT_REQUEST_META];\n this._req.url = this.url;\n this._req.cookies = this.cookies;\n return this._req;\n }\n set originalRequest(value) {\n this._req = value;\n }\n /**\n * Returns the request body as a Web Readable Stream. The body here can only\n * be read once as the body will start flowing as soon as the data handler\n * is attached.\n *\n * @internal\n */ stream() {\n if (this.streaming) {\n throw new Error('Invariant: NodeNextRequest.stream() can only be called once');\n }\n this.streaming = true;\n return new ReadableStream({\n start: (controller)=>{\n this._req.on('data', (chunk)=>{\n controller.enqueue(new Uint8Array(chunk));\n });\n this._req.on('end', ()=>{\n controller.close();\n });\n this._req.on('error', (err)=>{\n controller.error(err);\n });\n }\n });\n }\n}\nexport class NodeNextResponse extends BaseNextResponse {\n get originalResponse() {\n if (SYMBOL_CLEARED_COOKIES in this) {\n this._res[SYMBOL_CLEARED_COOKIES] = this[SYMBOL_CLEARED_COOKIES];\n }\n return this._res;\n }\n constructor(_res){\n super(_res), this._res = _res, this.textBody = undefined;\n }\n get sent() {\n return this._res.finished || this._res.headersSent;\n }\n get statusCode() {\n return this._res.statusCode;\n }\n set statusCode(value) {\n this._res.statusCode = value;\n }\n get statusMessage() {\n return this._res.statusMessage;\n }\n set statusMessage(value) {\n this._res.statusMessage = value;\n }\n setHeader(name, value) {\n this._res.setHeader(name, value);\n return this;\n }\n removeHeader(name) {\n this._res.removeHeader(name);\n return this;\n }\n getHeaderValues(name) {\n const values = this._res.getHeader(name);\n if (values === undefined) return undefined;\n return (Array.isArray(values) ? values : [\n values\n ]).map((value)=>value.toString());\n }\n hasHeader(name) {\n return this._res.hasHeader(name);\n }\n getHeader(name) {\n const values = this.getHeaderValues(name);\n return Array.isArray(values) ? values.join(',') : undefined;\n }\n getHeaders() {\n return this._res.getHeaders();\n }\n appendHeader(name, value) {\n const currentValues = this.getHeaderValues(name) ?? [];\n if (!currentValues.includes(value)) {\n this._res.setHeader(name, [\n ...currentValues,\n value\n ]);\n }\n return this;\n }\n body(value) {\n this.textBody = value;\n return this;\n }\n send() {\n this._res.end(this.textBody);\n }\n onClose(callback) {\n this.originalResponse.on('close', callback);\n }\n}\nvar _NEXT_REQUEST_META;\n\n//# sourceMappingURL=node.js.map","import { HeadersAdapter } from '../web/spec-extension/adapters/headers';\nimport { PRERENDER_REVALIDATE_HEADER, PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER } from '../../lib/constants';\nimport { getTracer } from '../lib/trace/tracer';\nimport { NodeSpan } from '../lib/trace/constants';\nexport function wrapApiHandler(page, handler) {\n return (...args)=>{\n getTracer().setRootSpanAttribute('next.route', page);\n // Call API route method\n return getTracer().trace(NodeSpan.runHandler, {\n spanName: `executing api route (pages) ${page}`\n }, ()=>handler(...args));\n };\n}\n/**\n *\n * @param res response object\n * @param statusCode `HTTP` status code of response\n */ export function sendStatusCode(res, statusCode) {\n res.statusCode = statusCode;\n return res;\n}\n/**\n *\n * @param res response object\n * @param [statusOrUrl] `HTTP` status code of redirect\n * @param url URL of redirect\n */ export function redirect(res, statusOrUrl, url) {\n if (typeof statusOrUrl === 'string') {\n url = statusOrUrl;\n statusOrUrl = 307;\n }\n if (typeof statusOrUrl !== 'number' || typeof url !== 'string') {\n throw new Error(`Invalid redirect arguments. Please use a single argument URL, e.g. res.redirect('/destination') or use a status code and URL, e.g. res.redirect(307, '/destination').`);\n }\n res.writeHead(statusOrUrl, {\n Location: url\n });\n res.write(url);\n res.end();\n return res;\n}\nexport function checkIsOnDemandRevalidate(rawHeaders, previewProps) {\n // Headers is a plain object for Node.js, Headers object in Edge runtime\n if (typeof rawHeaders.get === 'function') {\n const headers = HeadersAdapter.from(rawHeaders);\n const previewModeId = headers.get(PRERENDER_REVALIDATE_HEADER);\n const isOnDemandRevalidate = previewModeId === previewProps.previewModeId;\n const revalidateOnlyGenerated = headers.has(PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER);\n return {\n isOnDemandRevalidate,\n revalidateOnlyGenerated\n };\n }\n const headers = rawHeaders;\n const previewModeId = headers[PRERENDER_REVALIDATE_HEADER];\n const isOnDemandRevalidate = previewModeId === previewProps.previewModeId;\n const revalidateOnlyGenerated = headers.hasOwnProperty(PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER);\n return {\n isOnDemandRevalidate,\n revalidateOnlyGenerated\n };\n}\nexport const COOKIE_NAME_PRERENDER_BYPASS = `__prerender_bypass`;\nexport const COOKIE_NAME_PRERENDER_DATA = `__next_preview_data`;\nexport const RESPONSE_LIMIT_DEFAULT = 4 * 1024 * 1024;\nexport const SYMBOL_PREVIEW_DATA = Symbol(COOKIE_NAME_PRERENDER_DATA);\nexport const SYMBOL_CLEARED_COOKIES = Symbol(COOKIE_NAME_PRERENDER_BYPASS);\nexport function clearPreviewData(res, options = {}) {\n if (SYMBOL_CLEARED_COOKIES in res) {\n return res;\n }\n const { serialize } = require('next/dist/compiled/cookie');\n const previous = res.getHeader('Set-Cookie');\n res.setHeader(`Set-Cookie`, [\n ...typeof previous === 'string' ? [\n previous\n ] : Array.isArray(previous) ? previous : [],\n serialize(COOKIE_NAME_PRERENDER_BYPASS, '', {\n // To delete a cookie, set `expires` to a date in the past:\n // https://tools.ietf.org/html/rfc6265#section-4.1.1\n // `Max-Age: 0` is not valid, thus ignored, and the cookie is persisted.\n expires: new Date(0),\n httpOnly: true,\n sameSite: process.env.NODE_ENV !== 'development' ? 'none' : 'lax',\n secure: process.env.NODE_ENV !== 'development',\n path: '/',\n ...options.path !== undefined ? {\n path: options.path\n } : undefined\n }),\n serialize(COOKIE_NAME_PRERENDER_DATA, '', {\n // To delete a cookie, set `expires` to a date in the past:\n // https://tools.ietf.org/html/rfc6265#section-4.1.1\n // `Max-Age: 0` is not valid, thus ignored, and the cookie is persisted.\n expires: new Date(0),\n httpOnly: true,\n sameSite: process.env.NODE_ENV !== 'development' ? 'none' : 'lax',\n secure: process.env.NODE_ENV !== 'development',\n path: '/',\n ...options.path !== undefined ? {\n path: options.path\n } : undefined\n })\n ]);\n Object.defineProperty(res, SYMBOL_CLEARED_COOKIES, {\n value: true,\n enumerable: false\n });\n return res;\n}\n/**\n * Custom error class\n */ export class ApiError extends Error {\n constructor(statusCode, message){\n super(message);\n this.statusCode = statusCode;\n }\n}\n/**\n * Sends error in `response`\n * @param res response object\n * @param statusCode of response\n * @param message of response\n */ export function sendError(res, statusCode, message) {\n res.statusCode = statusCode;\n res.statusMessage = message;\n res.end(message);\n}\n/**\n * Execute getter function only if its needed\n * @param LazyProps `req` and `params` for lazyProp\n * @param prop name of property\n * @param getter function to get data\n */ export function setLazyProp({ req }, prop, getter) {\n const opts = {\n configurable: true,\n enumerable: true\n };\n const optsReset = {\n ...opts,\n writable: true\n };\n Object.defineProperty(req, prop, {\n ...opts,\n get: ()=>{\n const value = getter();\n // we set the property on the object to avoid recalculating it\n Object.defineProperty(req, prop, {\n ...optsReset,\n value\n });\n return value;\n },\n set: (value)=>{\n Object.defineProperty(req, prop, {\n ...optsReset,\n value\n });\n }\n });\n}\n\n//# sourceMappingURL=index.js.map","/**\n * Parse cookies from the `headers` of request\n * @param req request object\n */ export function getCookieParser(headers) {\n return function parseCookie() {\n const { cookie } = headers;\n if (!cookie) {\n return {};\n }\n const { parse: parseCookieFn } = require('next/dist/compiled/cookie');\n return parseCookieFn(Array.isArray(cookie) ? cookie.join('; ') : cookie);\n };\n}\n\n//# sourceMappingURL=get-cookie-parser.js.map","export function getRevalidateReason(params: {\n isOnDemandRevalidate?: boolean\n isStaticGeneration?: boolean\n}): 'on-demand' | 'stale' | undefined {\n if (params.isOnDemandRevalidate) {\n return 'on-demand'\n }\n if (params.isStaticGeneration) {\n return 'stale'\n }\n return undefined\n}\n","/**\n * `Sec-Fetch-Dest` values for subresource requests that can never render an\n * HTML response. Excludes destinations that can display HTML (`document`,\n * `iframe`, etc.) and `empty` (`fetch()`/XHR, including RSC requests).\n */\nconst NON_HTML_SEC_FETCH_DESTS = new Set([\n 'audio',\n 'audioworklet',\n 'font',\n 'image',\n 'json',\n 'manifest',\n 'paintworklet',\n 'report',\n 'script',\n 'serviceworker',\n 'sharedworker',\n 'style',\n 'track',\n 'video',\n 'webidentity',\n 'worker',\n 'xslt',\n])\n\nexport function isNonHtmlSecFetchDest(\n value: string | string[] | null | undefined\n): boolean {\n return typeof value === 'string' && NON_HTML_SEC_FETCH_DESTS.has(value)\n}\n","/**\n * Normalizes the raw RSC header value. Only the literal string \"1\" is treated\n * as a valid RSC request marker; malformed or repeated values are ignored.\n */\nexport function isRSCRequestHeader(\n value: string | string[] | null | undefined\n): boolean {\n return value === '1'\n}\n","import {\n DEFAULT_MAX_POSTPONED_STATE_SIZE,\n parseMaxPostponedStateSize,\n} from '../../shared/lib/size-limit'\nimport type { SizeLimit } from '../../types'\n\nconst INVALID_MAX_POSTPONED_STATE_SIZE_ERROR_MESSAGE =\n 'maxPostponedStateSize must be a valid number (bytes) or filesize format string (e.g., \"5mb\")'\n\nexport type PostponedRequestBodyChunk = Buffer | Uint8Array | string\n\nexport function getMaxPostponedStateSize(\n configuredMaxPostponedStateSize: SizeLimit | undefined\n): {\n maxPostponedStateSize: SizeLimit\n maxPostponedStateSizeBytes: number\n} {\n const maxPostponedStateSize =\n configuredMaxPostponedStateSize ?? DEFAULT_MAX_POSTPONED_STATE_SIZE\n const maxPostponedStateSizeBytes = parseMaxPostponedStateSize(\n configuredMaxPostponedStateSize\n )\n\n if (maxPostponedStateSizeBytes === undefined) {\n throw new Error(INVALID_MAX_POSTPONED_STATE_SIZE_ERROR_MESSAGE)\n }\n\n return { maxPostponedStateSize, maxPostponedStateSizeBytes }\n}\n\nexport function getPostponedStateExceededErrorMessage(\n maxPostponedStateSize: SizeLimit\n): string {\n return (\n `Postponed state exceeded ${maxPostponedStateSize} limit. ` +\n `To configure the limit, see: https://nextjs.org/docs/app/api-reference/config/next-config-js/max-postponed-state-size`\n )\n}\n\nfunction toBuffer(chunk: PostponedRequestBodyChunk): Buffer {\n return Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk)\n}\n\nexport async function readBodyWithSizeLimit(\n body: AsyncIterable,\n maxBodySizeBytes: number\n): Promise {\n const chunks: Array = []\n let size = 0\n\n for await (const chunk of body) {\n const buffer = toBuffer(chunk)\n size += buffer.byteLength\n if (size > maxBodySizeBytes) {\n return null\n }\n chunks.push(buffer)\n }\n\n return Buffer.concat(chunks)\n}\n","import { normalizeAppPath } from '../../../../shared/lib/router/utils/app-paths';\nimport { Normalizers } from '../../normalizers';\nimport { wrapNormalizerFn } from '../../wrap-normalizer-fn';\nimport { UnderscoreNormalizer } from '../../underscore-normalizer';\nexport class AppPathnameNormalizer extends Normalizers {\n constructor(){\n super([\n // The pathname to match should have the trailing `/page` and other route\n // group information stripped from it.\n wrapNormalizerFn(normalizeAppPath),\n // The page should have the `%5F` characters replaced with `_` characters.\n new UnderscoreNormalizer()\n ]);\n }\n normalize(page) {\n return super.normalize(page);\n }\n}\nexport class DevAppPathnameNormalizer extends Normalizers {\n constructor(pageNormalizer){\n super([\n // This should normalize the filename to a page.\n pageNormalizer,\n // Normalize the app page to a pathname.\n new AppPathnameNormalizer()\n ]);\n }\n normalize(filename) {\n return super.normalize(filename);\n }\n}\n\n//# sourceMappingURL=app-pathname-normalizer.js.map","export function wrapNormalizerFn(fn) {\n return {\n normalize: fn\n };\n}\n\n//# sourceMappingURL=wrap-normalizer-fn.js.map","import { normalizePagePath } from '../../shared/lib/page-path/normalize-page-path';\nimport { normalizeLocalePath } from '../../shared/lib/i18n/normalize-locale-path';\nimport { InvariantError } from '../../shared/lib/invariant-error';\nimport { AppPathnameNormalizer } from '../normalizers/built/app/app-pathname-normalizer';\nimport { RouteKind } from '../route-kind';\nexport const ROUTE_CACHE_DIRECTORY = 'route-cache';\nconst appPathnameNormalizer = new AppPathnameNormalizer();\n/** Convert a runtime route definition to the identity used by response caches. */ export function getResponseCacheOwner(definition) {\n return {\n kind: definition.kind,\n // Pages module names can include a trailing /index in Turbopack. Their\n // pathname matches the manifest's source in both bundlers. App modules\n // retain groups and parallel slots in their cache identity.\n sourceRoute: definition.kind === RouteKind.PAGES ? definition.pathname : definition.page\n };\n}\n/**\n * Prerender metadata already identifies its source route. Compare that source\n * with the selected module before using its metadata, including negative\n * entries and partially specialized fallback shells. Cache storage continues\n * to use the full module identity, including groups and parallel slots.\n */ export function isRouteCacheOwner(pathname, owner, prerender, locales) {\n if (!prerender) {\n return false;\n }\n // Pages have JSON data routes, App Pages have RSC data routes, and App\n // Route Handlers have no separate data route.\n const kind = prerender.dataRoute === null ? RouteKind.APP_ROUTE : prerender.dataRoute.endsWith('.json') ? RouteKind.PAGES : prerender.dataRoute.endsWith('.rsc') ? RouteKind.APP_PAGE : undefined;\n if (kind !== owner.kind) {\n return false;\n }\n const source = 'srcRoute' in prerender ? prerender.srcRoute : prerender.fallbackSourceRoute;\n const prerenderOwner = source ?? (kind === RouteKind.PAGES ? normalizeLocalePath(pathname, locales).pathname : pathname);\n return prerenderOwner === (kind === RouteKind.PAGES ? owner.sourceRoute : appPathnameNormalizer.normalize(owner.sourceRoute));\n}\n/**\n * Response keys are opaque to cache handlers. Hash the source route into one\n * fixed-length directory, preserving App groups and slots without expanding\n * Unicode names or repeating the source directory hierarchy on disk. The\n * pathname stays readable and is normalized exactly once before namespacing.\n */ export function getRouteCacheKey(pathname, owner) {\n if (!owner) {\n throw new InvariantError('Response cache requires a source route');\n }\n const { sourceRoute } = owner;\n let source;\n if (process.env.NEXT_RUNTIME === 'edge') {\n const sha256 = require('next/dist/compiled/hash.js/sha256');\n source = sha256().update(new TextEncoder().encode(sourceRoute)).digest('hex');\n } else {\n const { createHash } = require('crypto');\n source = createHash('sha256').update(sourceRoute).digest('hex');\n }\n return `/${ROUTE_CACHE_DIRECTORY}/${owner.kind}/${source}/$${normalizePagePath(pathname)}`;\n}\n\n//# sourceMappingURL=route-cache-key.js.map","/**\n * UnderscoreNormalizer replaces all instances of %5F with _.\n */ export class UnderscoreNormalizer {\n normalize(pathname) {\n return pathname.replace(/%5F/g, '_');\n }\n}\n\n//# sourceMappingURL=underscore-normalizer.js.map","/**\n * Normalizers combines many normalizers into a single normalizer interface that\n * will normalize the inputted pathname with each normalizer in order.\n */ export class Normalizers {\n constructor(normalizers = []){\n this.normalizers = normalizers;\n }\n push(normalizer) {\n this.normalizers.push(normalizer);\n }\n normalize(pathname) {\n return this.normalizers.reduce((normalized, normalizer)=>normalizer.normalize(normalized), pathname);\n }\n}\n\n//# sourceMappingURL=normalizers.js.map","import { ensureLeadingSlash } from './ensure-leading-slash';\nimport { isDynamicRoute } from '../router/utils';\nimport { NormalizeError } from '../utils';\n/**\n * Takes a page and transforms it into its file counterpart ensuring that the\n * output is normalized. Note this function is not idempotent because a page\n * `/index` can be referencing `/index/index.js` and `/index/index` could be\n * referencing `/index/index/index.js`. Examples:\n * - `/` -> `/index`\n * - `/index/foo` -> `/index/index/foo`\n * - `/index` -> `/index/index`\n */ export function normalizePagePath(page) {\n const normalized = /^\\/index(\\/|$)/.test(page) && !isDynamicRoute(page) ? `/index${page}` : page === '/' ? '/index' : ensureLeadingSlash(page);\n if (process.env.NEXT_RUNTIME !== 'edge') {\n const { posix } = require('path');\n const resolvedPage = posix.normalize(normalized);\n if (resolvedPage !== normalized) {\n throw new NormalizeError(`Requested and resolved page mismatch: ${normalized} ${resolvedPage}`);\n }\n }\n return normalized;\n}\n\n//# sourceMappingURL=normalize-page-path.js.map","import type { IncomingMessage } from 'http'\nimport type { BaseNextRequest } from '../base-http'\nimport type { NextRequest } from '../web/exports'\nimport { ACTION_HEADER } from '../../client/components/app-router-headers'\n\nexport function getServerActionRequestMetadata(\n req: IncomingMessage | BaseNextRequest | NextRequest\n): {\n actionId: string | null\n isURLEncodedAction: boolean\n isMultipartAction: boolean\n isFetchAction: boolean\n isPossibleServerAction: boolean\n} {\n let actionId: string | null\n let contentType: string | null\n\n if (req.headers instanceof Headers) {\n actionId = req.headers.get(ACTION_HEADER) ?? null\n contentType = req.headers.get('content-type')\n } else {\n actionId = (req.headers[ACTION_HEADER] as string) ?? null\n contentType = req.headers['content-type'] ?? null\n }\n\n // We don't actually support URL encoded actions, and the action handler will bail out if it sees one.\n // But we still want it to flow through to the action handler, to prevent changes in behavior when a regular\n // page component tries to handle a POST.\n const isURLEncodedAction = Boolean(\n req.method === 'POST' && contentType === 'application/x-www-form-urlencoded'\n )\n const isMultipartAction = Boolean(\n req.method === 'POST' && contentType?.startsWith('multipart/form-data')\n )\n const isFetchAction = Boolean(\n actionId !== undefined &&\n typeof actionId === 'string' &&\n req.method === 'POST'\n )\n\n const isPossibleServerAction = Boolean(\n isFetchAction || isURLEncodedAction || isMultipartAction\n )\n\n return {\n actionId,\n isURLEncodedAction,\n isMultipartAction,\n isFetchAction,\n isPossibleServerAction,\n }\n}\n\nexport function getIsPossibleServerAction(\n req: IncomingMessage | BaseNextRequest | NextRequest\n): boolean {\n return getServerActionRequestMetadata(req).isPossibleServerAction\n}\n","import { HTML_LIMITED_BOT_UA_RE_STRING } from '../../shared/lib/router/utils/is-bot'\n\nlet cachedPattern: string | undefined\nlet cachedRegex: RegExp | undefined\n\nexport function shouldServeStreamingMetadata(\n userAgent: string,\n htmlLimitedBots: string | undefined\n): boolean {\n const pattern = htmlLimitedBots || HTML_LIMITED_BOT_UA_RE_STRING\n if (cachedPattern !== pattern) {\n cachedPattern = pattern\n cachedRegex = new RegExp(pattern, 'i')\n }\n // Only block metadata for HTML-limited bots\n if (userAgent && cachedRegex!.test(userAgent)) {\n return false\n }\n return true\n}\n","/**\n * Contains predefined constants for the trace span name in next/server.\n *\n * Currently, next/server/tracer is internal implementation only for tracking\n * next.js's implementation only with known span names defined here.\n **/\n\n// eslint typescript has a bug with TS enums\n\nenum BaseServerSpan {\n handleRequest = 'BaseServer.handleRequest',\n run = 'BaseServer.run',\n pipe = 'BaseServer.pipe',\n getStaticHTML = 'BaseServer.getStaticHTML',\n render = 'BaseServer.render',\n renderToResponseWithComponents = 'BaseServer.renderToResponseWithComponents',\n renderToResponse = 'BaseServer.renderToResponse',\n renderToHTML = 'BaseServer.renderToHTML',\n renderError = 'BaseServer.renderError',\n renderErrorToResponse = 'BaseServer.renderErrorToResponse',\n renderErrorToHTML = 'BaseServer.renderErrorToHTML',\n render404 = 'BaseServer.render404',\n}\n\nenum LoadComponentsSpan {\n loadDefaultErrorComponents = 'LoadComponents.loadDefaultErrorComponents',\n loadComponents = 'LoadComponents.loadComponents',\n loadRouteModule = 'LoadComponents.loadRouteModule',\n}\n\nenum InstrumentationSpan {\n loadModule = 'Instrumentation.loadModule',\n register = 'Instrumentation.register',\n}\n\nenum NextServerSpan {\n getRequestHandler = 'NextServer.getRequestHandler',\n getRequestHandlerWithMetadata = 'NextServer.getRequestHandlerWithMetadata',\n getServer = 'NextServer.getServer',\n getServerRequestHandler = 'NextServer.getServerRequestHandler',\n createServer = 'createServer.createServer',\n}\n\nenum NextNodeServerSpan {\n compression = 'NextNodeServer.compression',\n getBuildId = 'NextNodeServer.getBuildId',\n createComponentTree = 'NextNodeServer.createComponentTree',\n clientComponentLoading = 'NextNodeServer.clientComponentLoading',\n getLayoutOrPageModule = 'NextNodeServer.getLayoutOrPageModule',\n generateStaticRoutes = 'NextNodeServer.generateStaticRoutes',\n generateFsStaticRoutes = 'NextNodeServer.generateFsStaticRoutes',\n generatePublicRoutes = 'NextNodeServer.generatePublicRoutes',\n generateImageRoutes = 'NextNodeServer.generateImageRoutes.route',\n sendRenderResult = 'NextNodeServer.sendRenderResult',\n proxyRequest = 'NextNodeServer.proxyRequest',\n runApi = 'NextNodeServer.runApi',\n render = 'NextNodeServer.render',\n renderHTML = 'NextNodeServer.renderHTML',\n imageOptimizer = 'NextNodeServer.imageOptimizer',\n getPagePath = 'NextNodeServer.getPagePath',\n getRoutesManifest = 'NextNodeServer.getRoutesManifest',\n findPageComponents = 'NextNodeServer.findPageComponents',\n getFontManifest = 'NextNodeServer.getFontManifest',\n getServerComponentManifest = 'NextNodeServer.getServerComponentManifest',\n getRequestHandler = 'NextNodeServer.getRequestHandler',\n renderToHTML = 'NextNodeServer.renderToHTML',\n renderError = 'NextNodeServer.renderError',\n renderErrorToHTML = 'NextNodeServer.renderErrorToHTML',\n render404 = 'NextNodeServer.render404',\n startResponse = 'NextNodeServer.startResponse',\n\n // nested inner span, does not require parent scope name\n route = 'route',\n onProxyReq = 'onProxyReq',\n apiResolver = 'apiResolver',\n internalFetch = 'internalFetch',\n}\n\nenum StartServerSpan {\n startServer = 'startServer.startServer',\n}\n\nenum RenderSpan {\n getServerSideProps = 'Render.getServerSideProps',\n getStaticProps = 'Render.getStaticProps',\n renderToString = 'Render.renderToString',\n renderDocument = 'Render.renderDocument',\n createBodyResult = 'Render.createBodyResult',\n}\n\nenum AppRenderSpan {\n renderToString = 'AppRender.renderToString',\n renderToReadableStream = 'AppRender.renderToReadableStream',\n getBodyResult = 'AppRender.getBodyResult',\n fetch = 'AppRender.fetch',\n waitShellReady = 'AppRender.waitShellReady',\n renderToNodeFizzStream = 'AppRender.renderToNodeFizzStream',\n instantInsights = 'AppRender.instantInsights',\n instantInsightsPrepareValidation = 'AppRender.instantInsights.prepareValidation',\n instantInsightsRunValidation = 'AppRender.instantInsights.runValidation',\n}\n\nenum DevBundlerServiceSpan {\n ensurePage = 'DevBundlerService.ensurePage',\n}\n\nenum RouterSpan {\n executeRoute = 'Router.executeRoute',\n}\n\nenum NodeSpan {\n runHandler = 'Node.runHandler',\n}\n\nenum AppRouteRouteHandlersSpan {\n runHandler = 'AppRouteRouteHandlers.runHandler',\n}\n\nenum AppRouteRouteModuleSpan {\n loadUserland = 'AppRouteRouteModule.loadUserland',\n}\n\nenum RouteModuleSpan {\n prepare = 'RouteModule.prepare',\n loadManifests = 'RouteModule.loadManifests',\n}\nenum ResolveMetadataSpan {\n generateMetadata = 'ResolveMetadata.generateMetadata',\n generateViewport = 'ResolveMetadata.generateViewport',\n}\n\nenum MiddlewareSpan {\n execute = 'Middleware.execute',\n}\n\ntype SpanTypes =\n | `${BaseServerSpan}`\n | `${LoadComponentsSpan}`\n | `${InstrumentationSpan}`\n | `${NextServerSpan}`\n | `${StartServerSpan}`\n | `${NextNodeServerSpan}`\n | `${RenderSpan}`\n | `${RouterSpan}`\n | `${AppRenderSpan}`\n | `${DevBundlerServiceSpan}`\n | `${NodeSpan}`\n | `${AppRouteRouteHandlersSpan}`\n | `${AppRouteRouteModuleSpan}`\n | `${RouteModuleSpan}`\n | `${ResolveMetadataSpan}`\n | `${MiddlewareSpan}`\n\n// This list is used to filter out spans that are not relevant to the user\nexport const NextVanillaSpanAllowlist = new Set([\n MiddlewareSpan.execute,\n BaseServerSpan.handleRequest,\n RenderSpan.getServerSideProps,\n RenderSpan.getStaticProps,\n AppRenderSpan.fetch,\n AppRenderSpan.getBodyResult,\n LoadComponentsSpan.loadRouteModule,\n RenderSpan.renderDocument,\n NodeSpan.runHandler,\n AppRouteRouteHandlersSpan.runHandler,\n AppRouteRouteModuleSpan.loadUserland,\n RouteModuleSpan.prepare,\n InstrumentationSpan.loadModule,\n InstrumentationSpan.register,\n ResolveMetadataSpan.generateMetadata,\n ResolveMetadataSpan.generateViewport,\n NextNodeServerSpan.createComponentTree,\n NextNodeServerSpan.findPageComponents,\n NextNodeServerSpan.getLayoutOrPageModule,\n NextNodeServerSpan.startResponse,\n NextNodeServerSpan.clientComponentLoading,\n])\n\n// These Spans are allowed to be always logged\n// when the otel log prefix env is set\nexport const LogSpanAllowList = new Set([\n NextNodeServerSpan.findPageComponents,\n NextNodeServerSpan.createComponentTree,\n NextNodeServerSpan.clientComponentLoading,\n])\n\nexport {\n BaseServerSpan,\n LoadComponentsSpan,\n InstrumentationSpan,\n NextServerSpan,\n NextNodeServerSpan,\n StartServerSpan,\n RenderSpan,\n RouterSpan,\n AppRenderSpan,\n DevBundlerServiceSpan,\n NodeSpan,\n AppRouteRouteHandlersSpan,\n AppRouteRouteModuleSpan,\n RouteModuleSpan,\n ResolveMetadataSpan,\n MiddlewareSpan,\n}\n\nexport type { SpanTypes }\n","import { LogSpanAllowList, NextVanillaSpanAllowlist } from './constants';\nimport { isThenable } from '../../../shared/lib/is-thenable';\nconst NEXT_OTEL_PERFORMANCE_PREFIX = process.env.NEXT_OTEL_PERFORMANCE_PREFIX;\nconst LOCAL_SPAN_RECORDER_KEY = Symbol.for('@next/local-span-recorder');\nlet api;\nfunction getLocalSpanRecorder() {\n if (process.env.__NEXT_DEV_SERVER) {\n return globalThis[LOCAL_SPAN_RECORDER_KEY];\n } else {\n return undefined;\n }\n}\n// we want to allow users to use their own version of @opentelemetry/api if they\n// want to, so we try to require it first, and if it fails we fall back to the\n// version that is bundled with Next.js\n// this is because @opentelemetry/api has to be synced with the version of\n// @opentelemetry/tracing that is used, and we don't want to force users to use\n// the version that is bundled with Next.js.\n// the API is ~stable, so this should be fine\nif (process.env.NEXT_RUNTIME === 'edge') {\n api = require('@opentelemetry/api');\n} else {\n try {\n api = require('@opentelemetry/api');\n } catch (err) {\n api = require('next/dist/compiled/@opentelemetry/api');\n }\n}\nconst { context, propagation, trace, SpanStatusCode, SpanKind, ROOT_CONTEXT } = api;\nexport class BubbledError extends Error {\n constructor(bubble, result){\n super(), this.bubble = bubble, this.result = result;\n }\n}\nexport function isBubbledError(error) {\n if (typeof error !== 'object' || error === null) return false;\n return error instanceof BubbledError;\n}\nconst closeSpanWithError = (span, error, endTime)=>{\n if (isBubbledError(error) && error.bubble) {\n span.setAttribute('next.bubble', true);\n } else {\n if (error) {\n span.recordException(error);\n span.setAttribute('error.type', error.name);\n }\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: error == null ? void 0 : error.message\n });\n }\n span.end(endTime);\n};\n/** we use this map to propagate attributes from nested spans to the top span */ const rootSpanAttributesStore = new Map();\nconst rootSpanIdKey = api.createContextKey('next.rootSpanId');\nlet lastSpanId = 0;\nconst getSpanId = ()=>lastSpanId++;\nconst clientTraceDataSetter = {\n set (carrier, key, value) {\n carrier.push({\n key,\n value\n });\n }\n};\nclass NextTracerImpl {\n /**\n * Returns an instance to the trace with configured name.\n * Since wrap / trace can be defined in any place prior to actual trace subscriber initialization,\n * This should be lazily evaluated.\n */ getTracerInstance() {\n return trace.getTracer('next.js', \"16.4.0\");\n }\n isOpenTelemetryEnabled() {\n var _tracerProvider_getDelegate_constructor, _tracerProvider_getDelegate;\n const activeSpan = trace.getSpan(context.active());\n if (activeSpan == null ? void 0 : activeSpan.isRecording()) {\n return true;\n }\n const tracerProvider = trace.getTracerProvider();\n if (!('getDelegate' in tracerProvider)) {\n return true;\n }\n return (tracerProvider.getDelegate == null ? void 0 : (_tracerProvider_getDelegate = tracerProvider.getDelegate.call(tracerProvider)) == null ? void 0 : (_tracerProvider_getDelegate_constructor = _tracerProvider_getDelegate.constructor) == null ? void 0 : _tracerProvider_getDelegate_constructor.name) !== 'NoopTracerProvider';\n }\n getContext() {\n return context;\n }\n getTracePropagationData() {\n const activeContext = context.active();\n const entries = [];\n propagation.inject(activeContext, entries, clientTraceDataSetter);\n return entries;\n }\n getActiveScopeSpan() {\n const localSpanRecorder = getLocalSpanRecorder();\n const activeLocalSpan = localSpanRecorder == null ? void 0 : localSpanRecorder.getActiveLocalSpan();\n if (activeLocalSpan && (localSpanRecorder == null ? void 0 : localSpanRecorder.isOpenTelemetryIsolatedSpan(activeLocalSpan))) {\n return activeLocalSpan;\n }\n const activeSpan = trace.getSpan(context.active());\n if (activeSpan || !process.env.__NEXT_DEV_SERVER) {\n return activeSpan;\n }\n return activeLocalSpan;\n }\n /**\n * Run `fn` with the active span cleared, so spans created inside become new\n * roots (or parent to incoming propagated context). Used for in-process\n * Node.js middleware so its span is a sibling of the request span, matching\n * edge middleware which runs in a detached sandbox.\n */ runWithDetachedContext(fn) {\n if (!NEXT_OTEL_PERFORMANCE_PREFIX && !this.isOpenTelemetryEnabled()) {\n return fn();\n }\n return context.with(ROOT_CONTEXT, fn);\n }\n withPropagatedContext(carrier, fn, getter, force = false) {\n const activeContext = context.active();\n if (!NEXT_OTEL_PERFORMANCE_PREFIX && !this.isOpenTelemetryEnabled() && !trace.getSpanContext(activeContext)) {\n return fn();\n }\n if (force) {\n const remoteContext = propagation.extract(ROOT_CONTEXT, carrier, getter);\n if (trace.getSpanContext(remoteContext)) {\n return context.with(remoteContext, fn);\n }\n // Preserve the current active span while still merging any extracted\n // baggage/context values from the carrier.\n const mergedContext = propagation.extract(activeContext, carrier, getter);\n return context.with(mergedContext, fn);\n }\n if (trace.getSpanContext(activeContext)) {\n // Active span is already set, too late to propagate.\n return fn();\n }\n const remoteContext = propagation.extract(activeContext, carrier, getter);\n return context.with(remoteContext, fn);\n }\n trace(...args) {\n const [type, fnOrOptions, fnOrEmpty] = args;\n const tracingEnabled = Boolean(NEXT_OTEL_PERFORMANCE_PREFIX) || this.isOpenTelemetryEnabled();\n const localSpanRecorder = getLocalSpanRecorder();\n const localSpanRecordingEnabled = (localSpanRecorder == null ? void 0 : localSpanRecorder.isLocalSpanRecordingEnabled()) ?? false;\n if (!tracingEnabled && !localSpanRecordingEnabled) {\n return typeof fnOrOptions === 'function' ? fnOrOptions() : fnOrEmpty();\n }\n // coerce options form overload\n const { fn, options } = typeof fnOrOptions === 'function' ? {\n fn: fnOrOptions,\n options: {}\n } : {\n fn: fnOrEmpty,\n options: {\n ...fnOrOptions\n }\n };\n const spanName = options.spanName ?? type;\n const parentSpan = options.parentSpan ?? this.getActiveScopeSpan();\n const isolatedParentSpan = parentSpan && (localSpanRecorder == null ? void 0 : localSpanRecorder.isOpenTelemetryIsolatedSpan(parentSpan)) ? parentSpan : undefined;\n const shouldDelegateSpan = !isolatedParentSpan && (NextVanillaSpanAllowlist.has(type) || process.env.NEXT_OTEL_VERBOSE === '1');\n const shouldTraceSpan = shouldDelegateSpan || ((localSpanRecorder == null ? void 0 : localSpanRecorder.isRequestInsightsEnabled()) ?? false);\n if (!shouldTraceSpan || options.hideSpan) {\n return fn();\n }\n // Trying to get active scoped span to assign parent. If option specifies parent span manually, will try to use it.\n let spanContext = isolatedParentSpan ? context.active() : this.getSpanContext(parentSpan);\n if (!spanContext) {\n spanContext = (context == null ? void 0 : context.active()) ?? ROOT_CONTEXT;\n }\n // Check if there's already a root span in the store for this trace\n // We are intentionally not checking whether there is an active context\n // from outside of nextjs to ensure that we can provide the same level\n // of telemetry when using a custom server\n const existingRootSpanId = spanContext.getValue(rootSpanIdKey);\n const isRootSpan = typeof existingRootSpanId !== 'number' || !rootSpanAttributesStore.has(existingRootSpanId);\n const spanId = getSpanId();\n options.attributes = {\n 'next.span_category': 'nextjs',\n 'next.span_name': spanName,\n 'next.span_type': type,\n ...options.attributes\n };\n return context.with(spanContext.setValue(rootSpanIdKey, spanId), ()=>this.runWithActiveSpan(spanName, options, spanContext, tracingEnabled && shouldDelegateSpan, localSpanRecordingEnabled, isolatedParentSpan, (span)=>{\n let startTime;\n if (NEXT_OTEL_PERFORMANCE_PREFIX && type && LogSpanAllowList.has(type)) {\n startTime = 'performance' in globalThis && 'measure' in performance ? globalThis.performance.now() : undefined;\n }\n let cleanedUp = false;\n const onCleanup = ()=>{\n if (cleanedUp) return;\n cleanedUp = true;\n rootSpanAttributesStore.delete(spanId);\n if (startTime) {\n performance.measure(`${NEXT_OTEL_PERFORMANCE_PREFIX}:next-${(type.split('.').pop() || '').replace(/[A-Z]/g, (match)=>'-' + match.toLowerCase())}`, {\n start: startTime,\n end: performance.now()\n });\n }\n };\n if (isRootSpan) {\n rootSpanAttributesStore.set(spanId, new Map(Object.entries(options.attributes ?? {})));\n }\n if (fn.length > 1) {\n try {\n return fn(span, (err)=>{\n if (err) {\n closeSpanWithError(span, err, options.endTime);\n } else {\n span.end(options.endTime);\n }\n });\n } catch (err) {\n closeSpanWithError(span, err, options.endTime);\n throw err;\n } finally{\n onCleanup();\n }\n }\n try {\n const result = fn(span);\n if (isThenable(result)) {\n // If there's error make sure it throws\n return result.then((res)=>{\n span.end(options.endTime);\n // Need to pass down the promise result,\n // it could be react stream response with error { error, stream }\n return res;\n }).catch((err)=>{\n closeSpanWithError(span, err, options.endTime);\n throw err;\n }).finally(onCleanup);\n } else {\n span.end(options.endTime);\n onCleanup();\n }\n return result;\n } catch (err) {\n closeSpanWithError(span, err, options.endTime);\n onCleanup();\n throw err;\n }\n }));\n }\n runWithActiveSpan(spanName, options, parentContext, tracingEnabled, localSpanRecordingEnabled, isolatedParentSpan, fn) {\n if (tracingEnabled) {\n return this.getTracerInstance().startActiveSpan(spanName, options, (span)=>fn(localSpanRecordingEnabled ? this.createLocalRecordingSpan(spanName, options, parentContext, span, isolatedParentSpan) : span));\n }\n const span = this.createLocalRecordingSpan(spanName, options, parentContext, undefined, isolatedParentSpan);\n const localSpanRecorder = getLocalSpanRecorder();\n return localSpanRecorder.withLocalSpan(span, ()=>localSpanRecorder.isOpenTelemetryIsolatedSpan(span) ? fn(span) : context.with(trace.setSpan(context.active(), span), fn, undefined, span));\n }\n createLocalRecordingSpan(name, options, parentContext, delegateSpan, isolatedParentSpan) {\n const parentSpanContext = (isolatedParentSpan == null ? void 0 : isolatedParentSpan.spanContext()) ?? trace.getSpanContext(parentContext);\n const delegateSpanContext = delegateSpan == null ? void 0 : delegateSpan.spanContext();\n return getLocalSpanRecorder().createLocalSpan({\n name,\n attributes: options.attributes,\n links: options.links,\n startTime: options.startTime,\n delegateSpan,\n traceId: (delegateSpanContext == null ? void 0 : delegateSpanContext.traceId) ?? (parentSpanContext == null ? void 0 : parentSpanContext.traceId),\n spanId: delegateSpanContext == null ? void 0 : delegateSpanContext.spanId,\n parentSpanId: parentSpanContext == null ? void 0 : parentSpanContext.spanId,\n isolateOpenTelemetry: isolatedParentSpan !== undefined\n });\n }\n wrap(...args) {\n const tracer = this;\n const [name, options, fn] = args.length === 3 ? args : [\n args[0],\n {},\n args[1]\n ];\n if (!NextVanillaSpanAllowlist.has(name) && process.env.NEXT_OTEL_VERBOSE !== '1' && !process.env.__NEXT_DEV_SERVER) {\n return fn;\n }\n return function() {\n let optionsObj = options;\n if (typeof optionsObj === 'function' && typeof fn === 'function') {\n optionsObj = optionsObj.apply(this, arguments);\n }\n const lastArgId = arguments.length - 1;\n const cb = arguments[lastArgId];\n if (typeof cb === 'function') {\n const scopeBoundCb = tracer.getContext().bind(context.active(), cb);\n return tracer.trace(name, optionsObj, (_span, done)=>{\n arguments[lastArgId] = function(err) {\n done == null ? void 0 : done(err);\n return scopeBoundCb.apply(this, arguments);\n };\n return fn.apply(this, arguments);\n });\n } else {\n return tracer.trace(name, optionsObj, ()=>fn.apply(this, arguments));\n }\n };\n }\n startSpan(...args) {\n const [type, passedOptions] = args;\n const options = passedOptions ? {\n ...passedOptions,\n attributes: {\n 'next.span_category': 'nextjs',\n ...passedOptions.attributes\n }\n } : {\n attributes: {\n 'next.span_category': 'nextjs'\n }\n };\n const localSpanRecorder = getLocalSpanRecorder();\n const parentSpan = options.parentSpan ?? this.getActiveScopeSpan();\n const isolatedParentSpan = parentSpan && (localSpanRecorder == null ? void 0 : localSpanRecorder.isOpenTelemetryIsolatedSpan(parentSpan)) ? parentSpan : undefined;\n const parentContext = (isolatedParentSpan ? undefined : this.getSpanContext(parentSpan)) ?? context.active();\n const localSpanRecordingEnabled = (localSpanRecorder == null ? void 0 : localSpanRecorder.isLocalSpanRecordingEnabled()) ?? false;\n if (!localSpanRecordingEnabled) {\n return this.getTracerInstance().startSpan(type, options, parentContext);\n }\n const delegateSpan = !isolatedParentSpan && this.isOpenTelemetryEnabled() ? this.getTracerInstance().startSpan(type, options, parentContext) : undefined;\n return this.createLocalRecordingSpan(type, options, parentContext, delegateSpan, isolatedParentSpan);\n }\n getSpanContext(parentSpan) {\n const spanContext = parentSpan ? trace.setSpan(context.active(), parentSpan) : undefined;\n return spanContext;\n }\n getRootSpanAttributes() {\n const spanId = context.active().getValue(rootSpanIdKey);\n return rootSpanAttributesStore.get(spanId);\n }\n setRootSpanAttribute(key, value) {\n const spanId = context.active().getValue(rootSpanIdKey);\n const attributes = rootSpanAttributesStore.get(spanId);\n if (attributes && !attributes.has(key)) {\n attributes.set(key, value);\n }\n if (process.env.__NEXT_DEV_SERVER) {\n var _getLocalSpanRecorder;\n const localSpan = (_getLocalSpanRecorder = getLocalSpanRecorder()) == null ? void 0 : _getLocalSpanRecorder.getActiveLocalSpan();\n if (localSpan) {\n localSpan.setAttribute(key, value);\n }\n }\n }\n withSpan(span, fn) {\n const recorder = getLocalSpanRecorder();\n if (recorder == null ? void 0 : recorder.isLocalRecordingSpan(span)) {\n return recorder.withLocalSpan(span, ()=>recorder.isOpenTelemetryIsolatedSpan(span) ? fn() : context.with(trace.setSpan(context.active(), span), fn));\n }\n return context.with(trace.setSpan(context.active(), span), fn);\n }\n}\nconst getTracer = (()=>{\n const tracer = new NextTracerImpl();\n return ()=>tracer;\n})();\nexport { getTracer, SpanStatusCode, SpanKind };\n\n//# sourceMappingURL=tracer.js.map","/**\n * Check to see if a value is Thenable.\n *\n * @param promise the maybe-thenable value\n * @returns true if the value is thenable\n */ export function isThenable(promise) {\n return promise !== null && typeof promise === 'object' && 'then' in promise && typeof promise.then === 'function';\n}\n\n//# sourceMappingURL=is-thenable.js.map","import type { IncomingMessage, ServerResponse } from 'http'\nimport type { ParsedUrlQuery } from 'querystring'\nimport type { UrlWithParsedQuery } from 'url'\nimport type { BaseNextRequest } from './base-http'\nimport type { CloneableBody } from './body-streams'\nimport type { RouteMatch } from './route-matches/route-match'\nimport type { NEXT_RSC_UNION_QUERY } from '../client/components/app-router-headers'\nimport type {\n ResponseCacheEntry,\n ServerComponentsHmrCache,\n} from './response-cache'\nimport type { PagesDevOverlayBridgeType } from '../next-devtools/userspace/pages/pages-dev-overlay-setup'\nimport type { OpaqueFallbackRouteParams } from './request/fallback-params'\nimport type { IncrementalCache } from './lib/incremental-cache'\nimport type { RevalidateFn } from './lib/router-utils/router-server-context'\nimport type { NextRequest } from './web/exports'\n\n// FIXME: (wyattjoh) this is a temporary solution to allow us to pass data between bundled modules\nexport const NEXT_REQUEST_META = Symbol.for('NextInternalRequestMeta')\n\nexport type NextIncomingMessage = (\n | BaseNextRequest\n | IncomingMessage\n | NextRequest\n) & {\n [NEXT_REQUEST_META]?: RequestMeta\n}\n\n/**\n * The callback function to call when a response cache entry was generated or\n * looked up in the cache. When it returns true, the server assumes that the\n * handler has already responded to the request and will not do so itself.\n */\nexport type OnCacheEntryHandler = (\n /**\n * The response cache entry that was generated or looked up in the cache.\n */\n cacheEntry: ResponseCacheEntry,\n\n /**\n * The request metadata.\n */\n requestMeta: {\n /**\n * The URL that was used to make the request.\n */\n url: string | undefined\n }\n) => Promise | boolean | void\n\nexport interface RequestMeta {\n /**\n * The query that was used to make the request.\n */\n initQuery?: ParsedUrlQuery\n\n /**\n * The URL that was used to make the request.\n */\n initURL?: string\n\n /**\n * The protocol that was used to make the request.\n */\n initProtocol?: string\n\n /**\n * The body that was read from the request. This is used to allow the body to\n * be read multiple times.\n */\n clonableBody?: CloneableBody\n\n /**\n * True when the request matched a locale domain that was configured in the\n * next.config.js file.\n */\n isLocaleDomain?: boolean\n\n /**\n * True when the request had locale information stripped from the pathname\n * part of the URL.\n */\n didStripLocale?: boolean\n\n /**\n * If the request had its URL rewritten, this is the pathname it was rewritten\n * to (not a full URL, just the pathname).\n */\n rewrittenPathname?: string\n\n /**\n * The cookies that were added by middleware and were added to the response.\n */\n middlewareCookie?: string[]\n\n /**\n * The match on the request for a given route.\n */\n match?: RouteMatch\n\n /**\n * The incremental cache to use for the request.\n */\n incrementalCache?: IncrementalCache\n\n /**\n * The server components HMR cache, only for dev.\n */\n serverComponentsHmrCache?: ServerComponentsHmrCache\n\n /**\n * The hash of the most recent server component change (dev only), set by the\n * router-server from the hot-reloader. Included in `\"use cache\"` cache keys\n * so that cached entries are revalidated after an edit, for every client,\n * regardless of whether it runs the HMR client.\n */\n hmrRefreshHash?: string\n\n /**\n * Equals the segment path that was used for the prefetch RSC request.\n */\n segmentPrefetchRSCRequest?: string\n\n /**\n * True when the request is for the prefetch flight data.\n */\n isPrefetchRSCRequest?: true\n\n /**\n * True when the request is for the flight data.\n */\n isRSCRequest?: true\n\n /**\n * A search param set by the Next.js client when performing RSC requests.\n * Because some CDNs do not vary their cache entries on our custom headers,\n * this search param represents a hash of the header values. For any cached\n * RSC request, we should verify that the hash matches before responding.\n * Otherwise this can lead to cache poisoning.\n * TODO: Consider not using custom request headers at all, and instead encode\n * everything into the search param.\n */\n cacheBustingSearchParam?: string\n\n /**\n * True when the request is for the `/_next/data` route using the pages\n * router.\n */\n isNextDataReq?: true\n\n /**\n * Postponed state to use for resumption. When absent, the request is not a\n * resume request. A non-empty string contains the state to resume, while an\n * empty string represents a resume request without postponed state and\n * signals that the renderer should perform a full dynamic render.\n *\n * There are no guarantees that the page actually postponed, as verifying\n * that would incur an additional cache lookup.\n */\n postponed?: string\n\n /**\n * The action body extracted from a server action request when the postponed\n * state was prepended to the body by the proxy. This allows the action\n * handler to read the action payload without re-reading the consumed stream.\n */\n actionBody?: Buffer\n\n /**\n * If provided, this will be called when a response cache entry was generated\n * or looked up in the cache.\n *\n * @deprecated Use `onCacheEntryV2` instead.\n */\n onCacheEntry?: OnCacheEntryHandler\n\n /**\n * If provided, this will be called when a response cache entry was generated\n * or looked up in the cache.\n */\n onCacheEntryV2?: OnCacheEntryHandler\n\n /**\n * The previous revalidate before rendering 404 page for notFound: true\n */\n notFoundRevalidate?: number | false\n\n /**\n * In development, the original source page that returned a 404.\n */\n developmentNotFoundSourcePage?: string\n\n /**\n * The path we routed to and should be invoked\n */\n invokePath?: string\n\n /**\n * The specific page output we should be matching\n */\n invokeOutput?: string\n\n /**\n * The status we are invoking the request with from routing\n */\n invokeStatus?: number\n\n /**\n * The routing error we are invoking with\n */\n invokeError?: Error\n\n /**\n * The query parsed for the invocation\n */\n invokeQuery?: Record\n\n /**\n * Whether the request is a middleware invocation\n */\n middlewareInvoke?: boolean\n\n /**\n * Whether the request should render the fallback shell or not.\n */\n renderFallbackShell?: boolean\n\n /**\n * Route param keys that were explicitly resolved from partial nxtP*\n * query params during background revalidation. Used by app-page.ts to\n * determine which fallback params should remain deferred vs resolved\n * in intermediate PPR shells.\n */\n resolvedRouteParamKeys?: Set\n\n /**\n * Whether the request is for the custom error page.\n */\n customErrorRender?: true\n\n /**\n * Whether to bubble up the NoFallbackError to the caller when a 404 is\n * returned.\n */\n bubbleNoFallback?: true\n\n /**\n * True when the request had locale information inferred from the default\n * locale.\n */\n localeInferredFromDefault?: true\n\n /**\n * The locale that was inferred or explicitly set for the request.\n */\n locale?: string\n\n /**\n * The default locale that was inferred or explicitly set for the request.\n */\n defaultLocale?: string\n\n /**\n * The relative project dir the server is running in from project root\n */\n relativeProjectDir?: string\n\n /**\n * The dist directory the server is currently using\n */\n distDir?: string\n\n /**\n Optional hostname used by route handlers when constructing absolute URLs.\n hostname: '127.0.0.1',\n */\n hostname?: string\n\n /**\n Optional internal revalidate function to avoid revalidating over the network\n */\n revalidate?: RevalidateFn\n\n /**\n Optional function to render the 404 page for pages router `notFound: true`\n */\n render404?: (\n req: IncomingMessage,\n res: ServerResponse,\n parsedUrl?: UrlWithParsedQuery,\n setHeaders?: boolean\n ) => Promise\n\n /**\n * The query after resolving routes\n */\n query?: ParsedUrlQuery\n\n /**\n * The params after resolving routes\n */\n params?: ParsedUrlQuery\n\n /**\n * ErrorOverlay component to use in development for pages router\n */\n PagesErrorDebug?: PagesDevOverlayBridgeType\n\n /**\n * Whether server is in minimal mode (this will be replaced with more\n * specific flags in future)\n */\n minimalMode?: boolean\n\n /**\n * Staged renders defer these route params until after the static stage. They\n * keep their concrete request values instead of replacing them with\n * placeholders. Dev static-shell validation uses the same set for the\n * selected shell.\n *\n * For `/t2/items/b2` with selected shell `/t2/items/[bottom]`, this map\n * contains only `bottom`:\n * - A layout's `params` containing only `top` can resolve statically.\n * - A page's `params` containing `bottom` waits until after the static stage.\n *\n * A set recorded in postponed state overrides this metadata on a resume,\n * including an explicitly empty set.\n */\n stagedFallbackParams?: OpaqueFallbackRouteParams | null\n\n /**\n * Dev static-shell debug renders use these params to prerender the matched\n * source shell. The Instant Navigation Testing API uses this path too. The\n * prerender substitutes opaque placeholders for these params rather than\n * using their request values.\n *\n * Suppose `generateStaticParams` returns `[{ top: 't1' }]` for\n * `/[top]/items/[bottom]`. A request for `/t2/items/b2` has:\n * - Source `/[top]/items/[bottom]`: `top` and `bottom` are unresolved.\n * - Completed shell `/t2/items/[bottom]`: only `bottom` is unresolved.\n *\n * This map contains the source's `top` and `bottom`. A debug render of that\n * source also uses this map as `stagedFallbackParams`.\n */\n fallbackRouteParams?: OpaqueFallbackRouteParams | null\n\n /** DEV only: parameter matching rejected this request as not found. */\n devParamMatchingRejected?: boolean\n\n /** DEV only: closed parameters, including for successful allowed values. */\n devNotFoundParams?: readonly string[]\n\n /**\n * DEV only: Request timings in process.hrtime.bigint()\n */\n devRequestTimingStart?: bigint\n devRequestTimingMiddlewareStart?: bigint\n devRequestTimingMiddlewareEnd?: bigint\n devRequestTimingInternalsEnd?: bigint\n\n /**\n * DEV only: The duration of getStaticPaths/generateStaticParams in process.hrtime.bigint()\n */\n devGenerateStaticParamsDuration?: bigint\n\n /**\n * DEV only: Server action log info to be logged after the request log\n */\n devServerActionLog?: {\n functionName: string\n args: unknown[]\n location: string\n duration: number\n }\n}\n\n/**\n * Gets the request metadata. If no key is provided, the entire metadata object\n * is returned.\n *\n * @param req the request to get the metadata from\n * @param key the key to get from the metadata (optional)\n * @returns the value for the key or the entire metadata object\n */\nexport function getRequestMeta(\n req: NextIncomingMessage,\n key?: undefined\n): RequestMeta\nexport function getRequestMeta(\n req: NextIncomingMessage,\n key: K\n): RequestMeta[K]\nexport function getRequestMeta(\n req: NextIncomingMessage,\n key?: K\n): RequestMeta | RequestMeta[K] {\n const meta = req[NEXT_REQUEST_META] || {}\n return typeof key === 'string' ? meta[key] : meta\n}\n\n/**\n * Sets the request metadata.\n *\n * @param req the request to set the metadata on\n * @param meta the metadata to set\n * @returns the mutated request metadata\n */\nexport function setRequestMeta(req: NextIncomingMessage, meta: RequestMeta) {\n req[NEXT_REQUEST_META] = meta\n return meta\n}\n\n/**\n * Adds a value to the request metadata.\n *\n * @param request the request to mutate\n * @param key the key to set\n * @param value the value to set\n * @returns the mutated request metadata\n */\nexport function addRequestMeta(\n request: NextIncomingMessage,\n key: K,\n value: RequestMeta[K]\n) {\n const meta = getRequestMeta(request)\n meta[key] = value\n return setRequestMeta(request, meta)\n}\n\n/**\n * Removes a key from the request metadata.\n *\n * @param request the request to mutate\n * @param key the key to remove\n * @returns the mutated request metadata\n */\nexport function removeRequestMeta(\n request: NextIncomingMessage,\n key: K\n) {\n const meta = getRequestMeta(request)\n delete meta[key]\n return setRequestMeta(request, meta)\n}\n\ntype NextQueryMetadata = {\n /**\n * The `_rsc` query parameter used for cache busting to ensure that the RSC\n * requests do not get cached by the browser explicitly.\n */\n [NEXT_RSC_UNION_QUERY]?: string\n}\n\nexport type NextParsedUrlQuery = ParsedUrlQuery & NextQueryMetadata\n\n/**\n * subset of `url.parse` return value\n */\ninterface LegacyUrl {\n auth?: string | null\n hash: string | null\n hostname: string | null\n href: string\n pathname: string | null\n protocol: string | null\n search: string | null\n slashes: boolean | null\n port: string | null\n query: string | null | ParsedUrlQuery\n}\ninterface LegacyUrlWithParsedQuery extends LegacyUrl {\n query: ParsedUrlQuery\n}\n\n// TODO: Remove in favor of WHATWG URLs\nexport interface NextUrlWithParsedQuery extends LegacyUrlWithParsedQuery {\n query: NextParsedUrlQuery\n}\n","import { InvariantError } from '../../invariant-error';\nimport { interceptionPrefixFromParamType } from './interception-prefix-from-param-type';\n/**\n * Extracts the param value from a path segment, handling interception markers\n * based on the expected param type.\n *\n * @param pathSegment - The path segment to extract the value from\n * @param params - The current params object for resolving dynamic param references\n * @param paramType - The expected param type which may include interception marker info\n * @returns The extracted param value\n */ function getParamValueFromSegment(pathSegment, params, paramType) {\n // If the segment is dynamic, resolve it from the params object\n if (pathSegment.type === 'dynamic') {\n return params[pathSegment.param.paramName];\n }\n // If the paramType indicates this is an intercepted param, strip the marker\n // that matches the interception marker in the param type\n const interceptionPrefix = interceptionPrefixFromParamType(paramType);\n if (interceptionPrefix === pathSegment.interceptionMarker) {\n return pathSegment.name.replace(pathSegment.interceptionMarker, '');\n }\n // For static segments, use the name\n return pathSegment.name;\n}\n/**\n * Resolves a route parameter value from the route segments at the given depth.\n * This shared logic is used by both extractPathnameRouteParamSegmentsFromLoaderTree\n * and resolveRouteParamsFromTree.\n *\n * @param paramName - The parameter name to resolve\n * @param paramType - The parameter type (dynamic, catchall, etc.)\n * @param depth - The current depth in the route tree\n * @param route - The normalized route containing segments\n * @param params - The current params object (used to resolve embedded param references)\n * @param options - Configuration options\n * @returns The resolved parameter value, or undefined if it cannot be resolved\n */ export function resolveParamValue(paramName, paramType, depth, route, params) {\n switch(paramType){\n case 'catchall':\n case 'optional-catchall':\n case 'catchall-intercepted-(..)(..)':\n case 'catchall-intercepted-(.)':\n case 'catchall-intercepted-(..)':\n case 'catchall-intercepted-(...)':\n // For catchall routes, derive from pathname using depth to determine\n // which segments to use\n const processedSegments = [];\n // Process segments to handle any embedded dynamic params\n for(let index = depth; index < route.segments.length; index++){\n const pathSegment = route.segments[index];\n if (pathSegment.type === 'static') {\n let value = pathSegment.name;\n // For intercepted catch-all params, strip the marker from the first segment\n const interceptionPrefix = interceptionPrefixFromParamType(paramType);\n if (interceptionPrefix && index === depth && interceptionPrefix === pathSegment.interceptionMarker) {\n // Strip the interception marker from the value\n value = value.replace(pathSegment.interceptionMarker, '');\n }\n processedSegments.push(value);\n } else {\n // If the segment is a param placeholder, check if we have its value\n if (!params.hasOwnProperty(pathSegment.param.paramName)) {\n // If the segment is an optional catchall, we can break out of the\n // loop because it's optional!\n if (pathSegment.param.paramType === 'optional-catchall') {\n break;\n }\n // Unknown param placeholder in pathname - can't derive full value\n return undefined;\n }\n // If the segment matches a param, use the param value\n // We don't encode values here as that's handled during retrieval.\n const paramValue = params[pathSegment.param.paramName];\n if (Array.isArray(paramValue)) {\n processedSegments.push(...paramValue);\n } else {\n processedSegments.push(paramValue);\n }\n }\n }\n if (processedSegments.length > 0) {\n return processedSegments;\n } else if (paramType === 'optional-catchall') {\n return undefined;\n } else {\n // We shouldn't be able to match a catchall segment without any path\n // segments if it's not an optional catchall\n throw new InvariantError(`Unexpected empty path segments match for a route \"${route.pathname}\" with param \"${paramName}\" of type \"${paramType}\"`);\n }\n case 'dynamic':\n case 'dynamic-intercepted-(..)(..)':\n case 'dynamic-intercepted-(.)':\n case 'dynamic-intercepted-(..)':\n case 'dynamic-intercepted-(...)':\n // For regular dynamic parameters, take the segment at this depth\n if (depth < route.segments.length) {\n const pathSegment = route.segments[depth];\n // Check if the segment at this depth is a placeholder for an unknown param\n if (pathSegment.type === 'dynamic' && !params.hasOwnProperty(pathSegment.param.paramName)) {\n // The segment is a placeholder like [category] and we don't have the value\n return undefined;\n }\n // If the segment matches a param, use the param value from params object\n // Otherwise it's a static segment, just use it directly\n // We don't encode values here as that's handled during retrieval\n return getParamValueFromSegment(pathSegment, params, paramType);\n }\n return undefined;\n default:\n paramType;\n }\n}\n\n//# sourceMappingURL=resolve-param-value.js.map","import { DEFAULT_SEGMENT_KEY } from '../../segment';\nexport function parseLoaderTree(tree) {\n const [segment, parallelRoutes, modules, staticSiblings] = tree;\n const { layout, template } = modules;\n let { page } = modules;\n // a __DEFAULT__ segment means that this route didn't match any of the\n // segments in the route, so we should use the default page\n page = segment === DEFAULT_SEGMENT_KEY ? modules.defaultPage : page;\n const conventionPath = layout?.[1] || template?.[1] || page?.[1];\n return {\n page,\n segment,\n modules,\n /* it can be either layout / template / page */ conventionPath,\n parallelRoutes,\n staticSiblings\n };\n}\n\n//# sourceMappingURL=parse-loader-tree.js.map","export function interceptionPrefixFromParamType(paramType) {\n switch(paramType){\n case 'catchall-intercepted-(..)(..)':\n case 'dynamic-intercepted-(..)(..)':\n return '(..)(..)';\n case 'catchall-intercepted-(.)':\n case 'dynamic-intercepted-(.)':\n return '(.)';\n case 'catchall-intercepted-(..)':\n case 'dynamic-intercepted-(..)':\n return '(..)';\n case 'catchall-intercepted-(...)':\n case 'dynamic-intercepted-(...)':\n return '(...)';\n case 'catchall':\n case 'dynamic':\n case 'optional-catchall':\n default:\n return null;\n }\n}\n\n//# sourceMappingURL=interception-prefix-from-param-type.js.map","import { isAppPageRouteModule } from '../../server/route-modules/checks';\nimport { parseAppRouteSegment } from '../../shared/lib/router/routes/app';\nimport { parseLoaderTree } from '../../shared/lib/router/utils/parse-loader-tree';\nimport { extractPathnameRouteParamSegmentsFromLoaderTree } from './app/extract-pathname-route-param-segments-from-loader-tree';\nimport { resolveParamValue } from '../../shared/lib/router/utils/resolve-param-value';\n/**\n * Encodes a parameter value using the provided encoder.\n *\n * @param value - The value to encode.\n * @param encoder - The encoder to use.\n * @returns The encoded value.\n */ export function encodeParam(value, encoder) {\n let replaceValue;\n if (Array.isArray(value)) {\n replaceValue = value.map(encoder).join('/');\n } else {\n replaceValue = encoder(value);\n }\n return replaceValue;\n}\n/**\n * Normalizes a pathname to a consistent format.\n *\n * @param pathname - The pathname to normalize.\n * @returns The normalized pathname.\n */ export function normalizePathname(pathname) {\n return pathname.replace(/\\\\/g, '/').replace(/(?!^)\\/$/, '');\n}\n/**\n * Extracts segments that contribute to the pathname by traversing the loader tree\n * based on the route module type.\n *\n * @param routeModule - The app route module (page or route handler)\n * @param segments - Array of AppSegment objects collected from the route\n * @param page - The target pathname to match against, INCLUDING interception\n * markers (e.g., \"/blog/[slug]\", \"/(.)photo/[id]\")\n * @returns Array of segments with param info that contribute to the pathname\n */ export function extractPathnameRouteParamSegments(routeModule, segments, route) {\n // For AppPageRouteModule, use the loaderTree traversal approach\n if (isAppPageRouteModule(routeModule)) {\n const { pathnameRouteParamSegments } = extractPathnameRouteParamSegmentsFromLoaderTree(routeModule.userland.loaderTree, route);\n return pathnameRouteParamSegments;\n }\n return extractPathnameRouteParamSegmentsFromSegments(segments);\n}\nexport function extractPathnameRouteParamSegmentsFromSegments(segments) {\n // TODO: should we consider what values are already present in the page?\n // For AppRouteRouteModule, filter the segments array to get the route params\n // that contribute to the pathname.\n const result = [];\n for (const segment of segments){\n // Skip segments without param info.\n if (!segment.paramName || !segment.paramType) continue;\n // Collect all the route param keys that contribute to the pathname.\n result.push({\n name: segment.name,\n paramName: segment.paramName,\n paramType: segment.paramType\n });\n }\n return result;\n}\n/**\n * Resolves all route parameters from the loader tree. This function uses\n * tree-based traversal to correctly handle the hierarchical structure of routes\n * and accurately determine parameter values based on their depth in the tree.\n *\n * This processes both regular route parameters (from the main children route) and\n * parallel route parameters (from slots like @modal, @sidebar).\n *\n * Unlike interpolateParallelRouteParams (which has a complete URL at runtime),\n * this build-time function determines which route params are unknown.\n * The pathname may contain placeholders like [slug], making it incomplete.\n *\n * @param loaderTree - The loader tree structure containing route hierarchy\n * @param params - The current route parameters object (will be mutated)\n * @param route - The current route being processed\n * @param fallbackRouteParams - Array of fallback route parameters (will be mutated)\n */ export function resolveRouteParamsFromTree(loaderTree, params, route, fallbackRouteParams) {\n // Stack-based traversal with depth tracking\n const stack = [\n {\n tree: loaderTree,\n depth: 0\n }\n ];\n while(stack.length > 0){\n const { tree, depth } = stack.pop();\n const { segment, parallelRoutes } = parseLoaderTree(tree);\n const appSegment = parseAppRouteSegment(segment);\n // If this segment is a route parameter, then we should process it if it's\n // not already known and is not already marked as a fallback route param.\n if ((appSegment == null ? void 0 : appSegment.type) === 'dynamic' && !params.hasOwnProperty(appSegment.param.paramName) && !fallbackRouteParams.some((param)=>param.paramName === appSegment.param.paramName)) {\n const { paramName, paramType } = appSegment.param;\n const paramValue = resolveParamValue(paramName, paramType, depth, route, params);\n if (paramValue !== undefined) {\n params[paramName] = paramValue;\n } else if (paramType !== 'optional-catchall') {\n // If we couldn't resolve the param, mark it as a fallback\n fallbackRouteParams.push({\n paramName,\n paramType\n });\n }\n }\n // Calculate next depth - increment if this is not a route group and not empty\n let nextDepth = depth;\n if (appSegment && appSegment.type !== 'route-group' && appSegment.type !== 'parallel-route') {\n nextDepth++;\n }\n // Add all parallel routes to the stack for processing.\n for (const parallelRoute of Object.values(parallelRoutes)){\n stack.push({\n tree: parallelRoute,\n depth: nextDepth\n });\n }\n }\n}\n\n//# sourceMappingURL=utils.js.map","import { parseAppRouteSegment } from '../../../shared/lib/router/routes/app';\nimport { parseLoaderTree } from '../../../shared/lib/router/utils/parse-loader-tree';\nimport { resolveParamValue } from '../../../shared/lib/router/utils/resolve-param-value';\n/**\n * Validates that the static segments in currentPath match the corresponding\n * segments in targetSegments. This ensures we only extract dynamic parameters\n * that are part of the target pathname structure.\n *\n * Segments are compared literally - interception markers like \"(.)photo\" are\n * part of the pathname and must match exactly.\n *\n * @example\n * // Matching paths\n * currentPath: ['blog', '(.)photo']\n * targetSegments: ['blog', '(.)photo', '[id]']\n * → Returns true (both static segments match exactly)\n *\n * @example\n * // Non-matching paths\n * currentPath: ['blog', '(.)photo']\n * targetSegments: ['blog', 'photo', '[id]']\n * → Returns false (segments don't match - marker is part of pathname)\n *\n * @param currentPath - The accumulated path segments from the loader tree\n * @param targetSegments - The target pathname split into segments\n * @returns true if all static segments match, false otherwise\n */ function validatePrefixMatch(currentPath, route) {\n for(let i = 0; i < currentPath.length; i++){\n const pathSegment = currentPath[i];\n const targetPathSegment = route.segments[i];\n // Type mismatch - one is static, one is dynamic\n if (pathSegment.type !== targetPathSegment.type) {\n return false;\n }\n // One has an interception marker, the other doesn't.\n if (pathSegment.interceptionMarker !== targetPathSegment.interceptionMarker) {\n return false;\n }\n // Both are static but names don't match\n if (pathSegment.type === 'static' && targetPathSegment.type === 'static' && pathSegment.name !== targetPathSegment.name) {\n return false;\n } else if (pathSegment.type === 'dynamic' && targetPathSegment.type === 'dynamic' && pathSegment.param.paramType !== targetPathSegment.param.paramType && pathSegment.param.paramName !== targetPathSegment.param.paramName) {\n return false;\n }\n }\n return true;\n}\n/**\n * Extracts pathname route param segments from a loader tree and resolves\n * parameter values from static segments in the route.\n *\n * @param loaderTree - The loader tree structure containing route hierarchy\n * @param route - The target route to match against\n * @returns Object containing pathname route param segments and resolved params\n */ export function extractPathnameRouteParamSegmentsFromLoaderTree(loaderTree, route) {\n const segmentsByDepth = new Map();\n const params = {};\n // BFS traversal with depth and path tracking\n const queue = [\n {\n tree: loaderTree,\n depth: 0,\n currentPath: []\n }\n ];\n while(queue.length > 0){\n const { tree, depth, currentPath } = queue.shift();\n const { segment, parallelRoutes } = parseLoaderTree(tree);\n // Build the path for the current node\n let updatedPath = currentPath;\n let nextDepth = depth;\n const appSegment = parseAppRouteSegment(segment);\n // Only add to path if it's a real segment that appears in the URL\n // Route groups and parallel markers don't contribute to URL pathname\n if (appSegment && appSegment.type !== 'route-group' && appSegment.type !== 'parallel-route') {\n updatedPath = [\n ...currentPath,\n appSegment\n ];\n nextDepth = depth + 1;\n }\n // Check if this segment has a param and matches the target pathname at this depth\n if ((appSegment == null ? void 0 : appSegment.type) === 'dynamic') {\n const { paramName, paramType } = appSegment.param;\n // Check if this segment is at the correct depth in the target pathname\n // A segment matches if:\n // 1. There's a dynamic segment at this depth in the pathname\n // 2. The parameter names match (e.g., [id] matches [id], not [category])\n // 3. The static segments leading up to this point match (prefix check)\n if (depth < route.segments.length) {\n const targetSegment = route.segments[depth];\n // Match if the target pathname has a dynamic segment at this depth\n if (targetSegment.type === 'dynamic') {\n // Check that parameter names match exactly\n // This prevents [category] from matching against /[id]\n if (paramName !== targetSegment.param.paramName) {\n continue; // Different param names, skip this segment\n }\n // Validate that the path leading up to this dynamic segment matches\n // the target pathname. This prevents false matches like extracting\n // [slug] from \"/news/[slug]\" when the tree has \"/blog/[slug]\"\n if (validatePrefixMatch(currentPath, route)) {\n segmentsByDepth.set(depth, {\n name: segment,\n paramName,\n paramType\n });\n }\n }\n }\n // Resolve parameter value if it's not already known.\n if (!params.hasOwnProperty(paramName)) {\n const paramValue = resolveParamValue(paramName, paramType, depth, route, params);\n if (paramValue !== undefined) {\n params[paramName] = paramValue;\n }\n }\n }\n // Continue traversing all parallel routes to find matching segments\n for (const parallelRoute of Object.values(parallelRoutes)){\n queue.push({\n tree: parallelRoute,\n depth: nextDepth,\n currentPath: updatedPath\n });\n }\n }\n // Parallel slots can repeat a parameter, and route groups can make loader\n // tree traversal encounter deeper URL parameters before shallower ones.\n // Consumers need each parameter once, in URL order, not tree traversal order.\n const pathnameRouteParamSegments = [\n ...segmentsByDepth\n ].sort(([a], [b])=>a - b).map(([, segment])=>segment);\n return {\n pathnameRouteParamSegments,\n params\n };\n}\n\n//# sourceMappingURL=extract-pathname-route-param-segments-from-loader-tree.js.map","import { resolveRouteParamsFromTree } from '../../build/static-paths/utils';\nimport { parseNormalizedAppRoute } from '../../shared/lib/router/routes/app';\nimport { extractPathnameRouteParamSegmentsFromLoaderTree } from '../../build/static-paths/app/extract-pathname-route-param-segments-from-loader-tree';\nimport { getParamProperties } from '../../shared/lib/router/utils/get-segment-param';\nimport { InvariantError } from '../../shared/lib/invariant-error';\n/**\n * Creates an opaque fallback route params object from the fallback route params.\n *\n * @param fallbackRouteParams the fallback route params\n * @returns the opaque fallback route params\n */ export function createOpaqueFallbackRouteParams(fallbackRouteParams) {\n // If there are no fallback route params, we can return early.\n if (fallbackRouteParams.length === 0) return null;\n // As we're creating unique keys for each of the dynamic route params, we only\n // need to generate a unique ID once per request because each of the keys will\n // be also be unique.\n const uniqueID = Math.random().toString(16).slice(2);\n const keys = new Map();\n // Generate a unique key for the fallback route param, if this key is found\n // in the static output, it represents a bug in cache components.\n for (const { paramName } of fallbackRouteParams){\n keys.set(paramName, `%%drp:${paramName}:${uniqueID}%%`);\n }\n return keys;\n}\n/**\n * Selects the params that a staged render defers for the shell target that a\n * request selects. Dev static-shell validation stages the same set, so it\n * checks the shell that the build validates.\n *\n * The set derives from the build's shell metadata, not from the serving mode. A\n * required shell (`throwOnEmptyStaticShell`) is the most specific shell the\n * build generated for its params, and the build fails when its prelude is\n * empty. Staging defers all of its fallback params, because the build validated\n * exactly that shape. Any other shell may be empty, and a request completes it\n * with the params that `generateStaticParams` can still supply. Only the params\n * that completion never resolves stay deferred.\n */ export function getStagedFallbackParams(route) {\n const { fallbackRouteParams, remainingPrerenderableParams } = route;\n if (!(fallbackRouteParams == null ? void 0 : fallbackRouteParams.length)) {\n return null;\n }\n if (route.throwOnEmptyStaticShell === undefined) {\n throw new InvariantError('Expected throwOnEmptyStaticShell for a route with fallback params');\n }\n // A required shell keeps all of its fallback params deferred.\n if (route.throwOnEmptyStaticShell || !(remainingPrerenderableParams == null ? void 0 : remainingPrerenderableParams.length)) {\n return createOpaqueFallbackRouteParams(fallbackRouteParams);\n }\n return createOpaqueFallbackRouteParams(fallbackRouteParams.filter((param)=>!remainingPrerenderableParams.some((prerenderableParam)=>prerenderableParam.paramName === param.paramName)));\n}\nexport function buildDynamicSegmentPlaceholder(param) {\n const { repeat, optional } = getParamProperties(param.paramType);\n if (optional) {\n return `[[...${param.paramName}]]`;\n }\n if (repeat) {\n return `[...${param.paramName}]`;\n }\n return `[${param.paramName}]`;\n}\nexport function getPlaceholderFallbackRouteParams(params, fallbackRouteParams) {\n return fallbackRouteParams.filter((param)=>{\n const placeholder = buildDynamicSegmentPlaceholder(param);\n const value = params == null ? void 0 : params[param.paramName];\n return value === placeholder || Array.isArray(value) && value.length === 1 && value[0] === placeholder;\n });\n}\n/**\n * Gets the fallback route params for a given page. This is an expensive\n * operation because it requires parsing the loader tree to extract the fallback\n * route params.\n *\n * @param page the page\n * @param routeModule the route module\n * @returns the opaque fallback route params\n */ export function getFallbackRouteParams(page, routeModule) {\n const route = parseNormalizedAppRoute(page);\n // Extract the pathname-contributing segments from the loader tree. This\n // mirrors the logic in buildAppStaticPaths where we determine which segments\n // actually contribute to the pathname.\n const { pathnameRouteParamSegments, params } = extractPathnameRouteParamSegmentsFromLoaderTree(routeModule.userland.loaderTree, route);\n // Create fallback route params for the pathname segments.\n const fallbackRouteParams = pathnameRouteParamSegments.map(({ paramName, paramType })=>({\n paramName,\n paramType\n }));\n // Resolve route params from the loader tree. This mutates the\n // fallbackRouteParams array to add any route params that are\n // unknown at request time.\n //\n // The page parameter contains placeholders like [slug], which helps\n // resolveRouteParamsFromTree determine which params are unknown.\n resolveRouteParamsFromTree(routeModule.userland.loaderTree, params, route, fallbackRouteParams // Will be mutated to add route params\n );\n // Track the unknown params using the same opaque placeholders as prerenders.\n return createOpaqueFallbackRouteParams(fallbackRouteParams);\n}\n\n//# sourceMappingURL=fallback-params.js.map","/**\n * The functions provided by this module are used to communicate certain properties\n * about the currently running code so that Next.js can make decisions on how to handle\n * the current execution in different rendering modes such as pre-rendering, resuming, and SSR.\n *\n * Today Next.js treats all code as potentially static. Certain APIs may only make sense when dynamically rendering.\n * Traditionally this meant deopting the entire render to dynamic however with PPR we can now deopt parts\n * of a React tree as dynamic while still keeping other parts static. There are really two different kinds of\n * Dynamic indications.\n *\n * The first is simply an intention to be dynamic. unstable_noStore is an example of this where\n * the currently executing code simply declares that the current scope is dynamic but if you use it\n * inside unstable_cache it can still be cached. This type of indication can be removed if we ever\n * make the default dynamic to begin with because the only way you would ever be static is inside\n * a cache scope which this indication does not affect.\n *\n * The second is an indication that a dynamic data source was read. This is a stronger form of dynamic\n * because it means that it is inappropriate to cache this at all. using a dynamic data source inside\n * unstable_cache should error. If you want to use some dynamic data inside unstable_cache you should\n * read that data outside the cache and pass it in as an argument to the cached function.\n */ // Once postpone is in stable we should switch to importing the postpone export directly\nimport React from 'react';\nimport { DynamicServerError } from '../../client/components/hooks-server-context';\nimport { StaticGenBailoutError } from '../../client/components/static-generation-bailout';\nimport { getStagedRenderingController } from './work-unit-async-storage.external';\nimport { isClientHookDynamicError } from '../dynamic-rendering-utils';\nimport { METADATA_BOUNDARY_NAME, VIEWPORT_BOUNDARY_NAME, OUTLET_BOUNDARY_NAME, ROOT_LAYOUT_BOUNDARY_NAME } from '../../lib/framework/boundary-constants';\nimport { scheduleOnNextTick } from '../../lib/scheduler';\nimport { createRuntimeBodyError, createDynamicBodyError, createRuntimeBodyErrorInNavigation, createNavigationBodyErrorInNavigation, createPrefetchBodyErrorInNavigation, createDynamicBodyErrorInNavigation, createDynamicOrRuntimeBodyError, createRuntimeMetadataError, createDynamicMetadataError, createRuntimeViewportError, createNavigationViewportError, createPrefetchViewportError, createDynamicViewportError, createDynamicOrRuntimeViewportError, createDynamicOrRuntimeMetadataError, logBuildDebugHint, createLinkBodyErrorInNavigation, createLinkMetadataError, createLinkViewportError, createNavigationMetadataError, createPrefetchMetadataError, createNonPrerenderableMetadataErrorInStaticRoute, createNonPrerenderableViewportErrorInStaticRoute, createNonPrerenderableBodyErrorInStaticRoute, createRuntimeBodyErrorInStaticRoute, createDynamicBodyErrorInStaticRoute, createRuntimeMetadataErrorInStaticRoute, createDynamicMetadataErrorInStaticRoute, createRuntimeViewportErrorInStaticRoute, createDynamicViewportErrorInStaticRoute } from './blocking-route-messages';\nimport { InvariantError } from '../../shared/lib/invariant-error';\nimport { INSTANT_VALIDATION_BOUNDARY_NAME, INSTANT_SLOT_MARKER_PREFIX, INSTANT_SLOT_MARKER_SUFFIX } from './instant-validation/boundary-constants';\nimport { allRequiredBoundariesRendered } from './instant-validation/boundary-tracking';\nimport { createUnrenderedSegmentError } from '../../shared/lib/instant-messages';\nimport { getReactBrowserBailoutReason } from '../../shared/lib/lazy-dynamic/react-browser-bailout';\nexport function createDynamicTrackingState(isDebugDynamicAccesses) {\n return {\n isDebugDynamicAccesses,\n dynamicAccesses: [],\n syncDynamicErrorWithStack: null,\n syncDynamicErrorWithStackPostMicrotask: false\n };\n}\nexport function createDynamicValidationState() {\n return {\n hasSuspenseAboveBody: false,\n hasDynamicMetadata: false,\n dynamicMetadata: null,\n hasDynamicViewport: false,\n hasAllowedDynamic: false,\n dynamicErrors: []\n };\n}\nfunction getPendingClientSyncDynamicError(clientDynamic) {\n return clientDynamic.syncDynamicErrorWithStackPostMicrotask ? null : clientDynamic.syncDynamicErrorWithStack;\n}\nexport function getFirstDynamicReason(trackingState) {\n var _trackingState_dynamicAccesses_;\n return (_trackingState_dynamicAccesses_ = trackingState.dynamicAccesses[0]) == null ? void 0 : _trackingState_dynamicAccesses_.expression;\n}\n/**\n * This function communicates that the current scope should be treated as dynamic.\n *\n * In most cases this function is a no-op but if called during\n * a PPR prerender it will postpone the current sub-tree and calling\n * it during a normal prerender will cause the entire prerender to abort\n */ export function markCurrentScopeAsDynamic(store, workUnitStore, expression) {\n if (workUnitStore) {\n switch(workUnitStore.type){\n case 'cache':\n case 'unstable-cache':\n // Inside cache scopes, marking a scope as dynamic has no effect,\n // because the outer cache scope creates a cache boundary. This is\n // subtly different from reading a dynamic data source, which is\n // forbidden inside a cache scope.\n return;\n case 'private-cache':\n // A private cache scope is already dynamic by definition.\n return;\n case 'prerender-legacy':\n case 'request':\n case 'build-time-generator':\n break;\n default:\n workUnitStore;\n }\n }\n // If we're forcing dynamic rendering or we're forcing static rendering, we\n // don't need to do anything here because the entire page is already dynamic\n // or it's static and it should not throw or postpone here.\n if (store.forceDynamic || store.forceStatic) return;\n if (store.dynamicShouldError) {\n throw new StaticGenBailoutError(`Route ${store.route} with \\`dynamic = \"error\"\\` couldn't be rendered statically because it used \\`${expression}\\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`);\n }\n if (workUnitStore) {\n switch(workUnitStore.type){\n case 'prerender-legacy':\n workUnitStore.revalidate = 0;\n // We aren't prerendering, but we are generating a static page. We need\n // to bail out of static generation.\n const err = new DynamicServerError(`Route ${store.route} couldn't be rendered statically because it used ${expression}. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`);\n store.dynamicUsageDescription = expression;\n store.dynamicUsageStack = err.stack;\n throw err;\n case 'request':\n markRequestStoreAsDynamic(workUnitStore);\n break;\n case 'build-time-generator':\n break;\n default:\n workUnitStore;\n }\n }\n}\n/**\n * This function is meant to be used when prerendering without cacheComponents or PPR.\n * When called during a build it will cause Next.js to consider the route as dynamic.\n *\n * @internal\n */ export function throwToInterruptStaticGeneration(expression, store, prerenderStore) {\n // We aren't prerendering but we are generating a static page. We need to bail out of static generation\n const err = new DynamicServerError(`Route ${store.route} couldn't be rendered statically because it used \\`${expression}\\`. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`);\n prerenderStore.revalidate = 0;\n store.dynamicUsageDescription = expression;\n store.dynamicUsageStack = err.stack;\n throw err;\n}\n/**\n * This function should be used to track whether something dynamic happened even when\n * we are in a dynamic render. This is useful for Dev where all renders are dynamic but\n * we still track whether dynamic APIs were accessed for helpful messaging\n *\n * @internal\n */ export function trackDynamicDataInDynamicRender(workUnitStore) {\n switch(workUnitStore.type){\n case 'cache':\n case 'unstable-cache':\n // Inside cache scopes, marking a scope as dynamic has no effect,\n // because the outer cache scope creates a cache boundary. This is\n // subtly different from reading a dynamic data source, which is\n // forbidden inside a cache scope.\n return;\n case 'private-cache':\n // A private cache scope is already dynamic by definition.\n return;\n case 'prerender':\n case 'prerender-runtime':\n case 'prerender-legacy':\n case 'prerender-client':\n case 'validation-client':\n case 'build-time-generator':\n break;\n case 'request':\n markRequestStoreAsDynamic(workUnitStore);\n break;\n default:\n workUnitStore;\n }\n}\nfunction markRequestStoreAsDynamic(requestStore) {\n if (process.env.__NEXT_DEV_SERVER && requestStore.phase === 'render') {\n requestStore.usedDynamic = true;\n }\n}\nfunction abortOnSynchronousDynamicDataAccess(route, expression, prerenderStore) {\n const reason = `Route ${route} needs to bail out of prerendering at this point because it used ${expression}.`;\n const error = createPrerenderInterruptedError(reason);\n prerenderStore.controller.abort(error);\n const dynamicTracking = prerenderStore.dynamicTracking;\n if (dynamicTracking) {\n dynamicTracking.dynamicAccesses.push({\n // When we aren't debugging, we don't need to create another error for the\n // stack trace.\n stack: dynamicTracking.isDebugDynamicAccesses ? new Error().stack : undefined,\n expression\n });\n }\n}\nexport function abortOnSynchronousPlatformIOAccess(route, expression, errorWithStack, prerenderStore) {\n const dynamicTracking = prerenderStore.dynamicTracking;\n if (dynamicTracking && dynamicTracking.syncDynamicErrorWithStack === null) {\n dynamicTracking.syncDynamicErrorWithStack = errorWithStack;\n // React completes the task that is currently rendering before scheduled\n // abort cleanup. Client tracking can attribute the sync IO only during\n // that current task; server tracking keeps the error regardless.\n queueMicrotask(()=>{\n dynamicTracking.syncDynamicErrorWithStackPostMicrotask = true;\n });\n }\n abortOnSynchronousDynamicDataAccess(route, expression, prerenderStore);\n}\n/**\n * use this function when prerendering with cacheComponents. If we are doing a\n * prospective prerender we don't actually abort because we want to discover\n * all caches for the shell. If this is the actual prerender we do abort.\n *\n * This function accepts a prerenderStore but the caller should ensure we're\n * actually running in cacheComponents mode.\n *\n * @internal\n */ export function abortAndThrowOnSynchronousRequestDataAccess(route, expression, errorWithStack, prerenderStore) {\n const prerenderSignal = prerenderStore.controller.signal;\n if (prerenderSignal.aborted === false) {\n // TODO it would be better to move this aborted check into the callsite so we can avoid making\n // the error object when it isn't relevant to the aborting of the prerender however\n // since we need the throw semantics regardless of whether we abort it is easier to land\n // this way. See how this was handled with `abortOnSynchronousPlatformIOAccess` for a closer\n // to ideal implementation\n abortOnSynchronousDynamicDataAccess(route, expression, prerenderStore);\n // Preserve the exact server-side dynamic access for final validation after\n // interrupting this render.\n const dynamicTracking = prerenderStore.dynamicTracking;\n if (dynamicTracking) {\n if (dynamicTracking.syncDynamicErrorWithStack === null) {\n dynamicTracking.syncDynamicErrorWithStack = errorWithStack;\n }\n }\n }\n throw createPrerenderInterruptedError(`Route ${route} needs to bail out of prerendering at this point because it used ${expression}.`);\n}\nconst NEXT_PRERENDER_INTERRUPTED = 'NEXT_PRERENDER_INTERRUPTED';\nfunction createPrerenderInterruptedError(message) {\n const error = new Error(message);\n error.digest = NEXT_PRERENDER_INTERRUPTED;\n return error;\n}\nexport function isPrerenderInterruptedError(error) {\n return typeof error === 'object' && error !== null && error.digest === NEXT_PRERENDER_INTERRUPTED && 'name' in error && 'message' in error && error instanceof Error;\n}\nexport function accessedDynamicData(dynamicAccesses) {\n return dynamicAccesses.length > 0;\n}\nexport function consumeDynamicAccess(serverDynamic, clientDynamic) {\n // We mutate because we only call this once we are no longer writing\n // to the dynamicTrackingState and it's more efficient than creating a new\n // array.\n serverDynamic.dynamicAccesses.push(...clientDynamic.dynamicAccesses);\n return serverDynamic.dynamicAccesses;\n}\nexport function formatDynamicAPIAccesses(dynamicAccesses) {\n return dynamicAccesses.filter((access)=>typeof access.stack === 'string' && access.stack.length > 0).map(({ expression, stack })=>{\n stack = stack.split('\\n')// Remove the \"Error: \" prefix from the first line of the stack trace as\n // well as the first 4 lines of the stack trace which is the distance\n // from the user code and the `new Error().stack` call.\n .slice(4).filter((line)=>{\n // Exclude Next.js internals from the stack trace.\n if (line.includes('node_modules/next/')) {\n return false;\n }\n // Exclude anonymous functions from the stack trace.\n if (line.includes(' ()')) {\n return false;\n }\n // Exclude Node.js internals from the stack trace.\n if (line.includes(' (node:')) {\n return false;\n }\n return true;\n }).join('\\n');\n return `Dynamic API Usage Debug - ${expression}:\\n${stack}`;\n });\n}\nexport function createHangingInputAbortSignal(workUnitStore) {\n switch(workUnitStore.type){\n case 'prerender':\n case 'prerender-runtime':\n const controller = new AbortController();\n if (workUnitStore.cacheSignal) {\n // If we have a cacheSignal it means we're in a prospective render. If\n // the input we're waiting on is coming from another cache, we do want\n // to wait for it so that we can resolve this cache entry too.\n workUnitStore.cacheSignal.inputReady().then(()=>{\n controller.abort();\n });\n } else {\n // Otherwise we're in the final render and we should already have all\n // our caches filled.\n // If the prerender uses stages, we have wait until the final stage.\n // if an input didn't resolve at that point, then we can assume it never will.\n //\n // We might still be waiting on some microtasks so we\n // wait one tick before giving up. When we give up, we still want to\n // render the content of this cache as deeply as we can so that we can\n // suspend as deeply as possible in the tree or not at all if we don't\n // end up waiting for the input.\n const stagedRendering = getStagedRenderingController(workUnitStore);\n if (stagedRendering && stagedRendering.finalStage !== null) {\n stagedRendering.waitForStage(stagedRendering.finalStage).then(()=>scheduleOnNextTick(()=>controller.abort()), noop);\n } else {\n scheduleOnNextTick(()=>controller.abort());\n }\n }\n return controller.signal;\n case 'prerender-client':\n case 'validation-client':\n case 'prerender-legacy':\n case 'request':\n case 'cache':\n case 'private-cache':\n case 'unstable-cache':\n case 'build-time-generator':\n return undefined;\n default:\n workUnitStore;\n }\n}\nfunction noop() {}\nexport function annotateDynamicAccess(expression, prerenderStore) {\n const dynamicTracking = prerenderStore.dynamicTracking;\n if (dynamicTracking) {\n dynamicTracking.dynamicAccesses.push({\n stack: dynamicTracking.isDebugDynamicAccesses ? new Error().stack : undefined,\n expression\n });\n }\n}\nconst hasSuspenseRegex = /\\n\\s+at Suspense \\(\\)/;\n// Common implicit body tags that React will treat as body when placed directly in html\nconst bodyAndImplicitTags = 'body|div|main|section|article|aside|header|footer|nav|form|p|span|h1|h2|h3|h4|h5|h6';\n// Detects when RootLayoutBoundary (our framework marker component) appears\n// after Suspense in the component stack, indicating the root layout is wrapped\n// within a Suspense boundary. Ensures no body/html/implicit-body components are in between.\n//\n// Example matches:\n// at Suspense ()\n// at __next_root_layout_boundary__ ()\n//\n// Or with other components in between (but not body/html/implicit-body):\n// at Suspense ()\n// at SomeComponent ()\n// at __next_root_layout_boundary__ ()\nconst hasSuspenseBeforeRootLayoutWithoutBodyOrImplicitBodyRegex = new RegExp(`\\\\n\\\\s+at Suspense \\\\(\\\\)(?:(?!\\\\n\\\\s+at (?:${bodyAndImplicitTags}) \\\\(\\\\))[\\\\s\\\\S])*?\\\\n\\\\s+at ${ROOT_LAYOUT_BOUNDARY_NAME} \\\\([^\\\\n]*\\\\)`);\nconst hasMetadataRegex = new RegExp(`\\\\n\\\\s+at ${METADATA_BOUNDARY_NAME}[\\\\n\\\\s]`);\nconst hasViewportRegex = new RegExp(`\\\\n\\\\s+at ${VIEWPORT_BOUNDARY_NAME}[\\\\n\\\\s]`);\nconst hasOutletRegex = new RegExp(`\\\\n\\\\s+at ${OUTLET_BOUNDARY_NAME}[\\\\n\\\\s]`);\nconst hasInstantValidationBoundaryRegex = new RegExp(`\\\\n\\\\s+at ${INSTANT_VALIDATION_BOUNDARY_NAME}[\\\\n\\\\s]`);\nconst slotMarkerRegex = new RegExp(`\\\\n\\\\s+at ${INSTANT_SLOT_MARKER_PREFIX}(\\\\d+)${INSTANT_SLOT_MARKER_SUFFIX}[\\\\n\\\\s]`);\n/** Look up the config factory for the slot this error belongs to.\n * Checks the component stack for a slot marker (__next_instant_slot_N__)\n * and returns the config at that index. Falls back to index 0 (root\n * config) when no slot marker is found or the slot has no config. */ function resolveInstantStack(componentStack, dynamicValidation) {\n const { slotStacks } = dynamicValidation;\n if (slotStacks.length > 1) {\n const match = slotMarkerRegex.exec(componentStack);\n if (match) {\n // Slot markers are 0-indexed in the component name but\n // slotStacks is 1-indexed (index 0 is the root config).\n const slotIndex = parseInt(match[1], 10) + 1;\n const slotStack = slotStacks[slotIndex];\n if (slotStack != null) {\n return slotStack;\n }\n }\n }\n // Fall back to root config (index 0)\n return slotStacks[0] ?? null;\n}\n/**\n * Inspects the component stack of an outlet boundary to discover whether the\n * user placed a Suspense boundary above the document body, and records the\n * opt-in on `dynamicValidation.hasSuspenseAboveBody` if so.\n *\n * The outlet itself isn't a meaningful source of dynamic — it only resolves\n * when metadata/viewport are dynamic, which we track via their own boundaries.\n * However, the outlet renders alongside the page content, so its stack passes\n * through the user's layout chain (typically reaching into `` via the\n * root layout). That makes the outlet stack our best opportunity to spot a\n * Suspense boundary above the body, even when no real body content is dynamic.\n * Without this, a route whose only dynamic source is `generateViewport()` would\n * miss the Suspense-above-body opt-in, because the viewport's stack lives in\n * the head and never sees the user's root layout.\n *\n * We deliberately only set `hasSuspenseAboveBody`, not `hasAllowedDynamic`. The\n * latter tracks whether the body has dynamic content that's been wrapped in\n * Suspense (i.e., the page is partially dynamic). The outlet rendering tells us\n * about the structural opt-in for an empty shell, not about the body being\n * partially dynamic. The distinction matters because dynamic metadata is only\n * acceptable when the page is partially dynamic (via real body holes), and we\n * don't want this outlet-based detection to mask that case.\n */ function trackOutletSuspenseAboveBody(componentStack, dynamicValidation) {\n if (hasSuspenseBeforeRootLayoutWithoutBodyOrImplicitBodyRegex.test(componentStack)) {\n dynamicValidation.hasSuspenseAboveBody = true;\n }\n}\nexport function trackDynamicAccessInStaticRoute(dynamicReason, workStore, componentStack, dynamicValidation, clientDynamic, isServerPartial, kind) {\n const syncDynamicError = getPendingClientSyncDynamicError(clientDynamic);\n if (hasOutletRegex.test(componentStack)) {\n trackOutletSuspenseAboveBody(componentStack, dynamicValidation);\n return;\n }\n if (hasMetadataRegex.test(componentStack)) {\n dynamicValidation.dynamicErrors.push(addErrorContext(createMetadataErrorInStaticRoute(kind, workStore.route), componentStack, null));\n return;\n }\n if (hasViewportRegex.test(componentStack)) {\n dynamicValidation.dynamicErrors.push(addErrorContext(createViewportErrorInStaticRoute(kind, workStore.route), componentStack, null));\n return;\n }\n let hasSuspense = false;\n if (hasSuspenseBeforeRootLayoutWithoutBodyOrImplicitBodyRegex.test(componentStack)) {\n // this error had a Suspense boundary above it, and it's above the body as well.\n dynamicValidation.hasSuspenseAboveBody = true;\n hasSuspense = true;\n } else if (hasSuspenseRegex.test(componentStack)) {\n // this error had a Suspense boundary above it.\n hasSuspense = true;\n }\n if (hasSuspense) {\n if (!isServerPartial) {\n // If we don't have holes caused by server data, then any holes must be caused\n // by client-only code, which is allowed.\n dynamicValidation.hasAllowedDynamic = true;\n return;\n }\n // We have holes that may be caused by server data.\n if (syncDynamicError || isClientHookDynamicError(dynamicReason)) {\n // We know this hole wasn't caused by server data, so it's allowed\n // (because it's wrapped in a Suspense)\n dynamicValidation.hasAllowedDynamic = true;\n return;\n }\n // Any remaining hole may be caused by a server hole.\n // These are not allowed even with Suspense.\n // (NOTE: this may misreport valid client dynamic holes as server holes)\n dynamicValidation.dynamicErrors.push(addErrorContext(createBodyErrorInStaticRoute(kind, workStore.route), componentStack, null));\n return;\n }\n if (syncDynamicError) {\n dynamicValidation.dynamicErrors.push(syncDynamicError);\n return;\n }\n if (isClientHookDynamicError(dynamicReason)) {\n dynamicValidation.dynamicErrors.push(addErrorContext(dynamicReason, componentStack, null));\n return;\n }\n const error = addErrorContext(isServerPartial ? // (NOTE: this may misreport client dynamic holes as server holes)\n createBodyErrorInStaticRoute(kind, workStore.route) : // that server data is complete\n createBodyError(kind, workStore.route), componentStack, null);\n dynamicValidation.dynamicErrors.push(error);\n}\nexport function trackAllowedDynamicAccess(dynamicReason, workStore, componentStack, dynamicValidation, clientDynamic) {\n const dynamicHoleKind = 6;\n const syncDynamicError = getPendingClientSyncDynamicError(clientDynamic);\n if (hasOutletRegex.test(componentStack)) {\n trackOutletSuspenseAboveBody(componentStack, dynamicValidation);\n return;\n } else if (hasMetadataRegex.test(componentStack)) {\n dynamicValidation.hasDynamicMetadata = true;\n return;\n } else if (hasViewportRegex.test(componentStack)) {\n dynamicValidation.hasDynamicViewport = true;\n return;\n } else if (hasSuspenseBeforeRootLayoutWithoutBodyOrImplicitBodyRegex.test(componentStack)) {\n // For Suspense within body, the prelude wouldn't be empty so it wouldn't violate the empty static shells rule.\n // But if you have Suspense above body, the prelude is empty but we allow that because having Suspense\n // is an explicit signal from the user that they acknowledge the empty shell and want dynamic rendering.\n dynamicValidation.hasAllowedDynamic = true;\n dynamicValidation.hasSuspenseAboveBody = true;\n return;\n } else if (hasSuspenseRegex.test(componentStack)) {\n // this error had a Suspense boundary above it so we don't need to report it as a source\n // of disallowed\n dynamicValidation.hasAllowedDynamic = true;\n return;\n } else if (syncDynamicError) {\n dynamicValidation.dynamicErrors.push(syncDynamicError);\n return;\n }\n if (isClientHookDynamicError(dynamicReason)) {\n dynamicValidation.dynamicErrors.push(addErrorContext(dynamicReason, componentStack, null));\n return;\n }\n const error = addErrorContext(createBodyError(dynamicHoleKind, workStore.route), componentStack, null);\n dynamicValidation.dynamicErrors.push(error);\n return;\n}\nexport var DynamicHoleKind = /*#__PURE__*/ function(DynamicHoleKind) {\n /** We know that this hole is caused by runtime data. */ DynamicHoleKind[DynamicHoleKind[\"Runtime\"] = 1] = \"Runtime\";\n /** We know that this hole is caused by link data. */ DynamicHoleKind[DynamicHoleKind[\"Link\"] = 2] = \"Link\";\n /** We know that this hole is caused by navigation(). */ DynamicHoleKind[DynamicHoleKind[\"Navigation\"] = 3] = \"Navigation\";\n /** We know that this hole is caused by prefetch(). */ DynamicHoleKind[DynamicHoleKind[\"Prefetch\"] = 4] = \"Prefetch\";\n /** We know that this hole is caused by dynamic data. */ DynamicHoleKind[DynamicHoleKind[\"Dynamic\"] = 5] = \"Dynamic\";\n /** We know that this hole is caused by runtime or dynamic data, but don't know which. */ DynamicHoleKind[DynamicHoleKind[\"RuntimeOrDynamic\"] = 6] = \"RuntimeOrDynamic\";\n return DynamicHoleKind;\n}({});\nexport function createInstantValidationState(slotStacks) {\n return {\n hasDynamicMetadata: false,\n hasAllowedClientDynamicAboveBoundary: false,\n dynamicMetadata: null,\n hasDynamicViewport: false,\n hasAllowedDynamic: false,\n dynamicErrors: [],\n validationPreventingErrors: [],\n thrownErrorsOutsideBoundary: [],\n slotStacks\n };\n}\nexport function trackDynamicHoleInNavigation(dynamicReason, workStore, componentStack, dynamicValidation, clientDynamic, kind, boundaryState) {\n const syncDynamicError = getPendingClientSyncDynamicError(clientDynamic);\n if (hasOutletRegex.test(componentStack)) {\n // We don't need to track that this is dynamic. It is only so when something else is also dynamic.\n return;\n }\n // Resolve the config stack for this specific error. If the error\n // is inside a slot marker, use that slot's config. Otherwise fall\n // back to the default.\n const effectiveCreateInstantStack = resolveInstantStack(componentStack, dynamicValidation);\n if (hasMetadataRegex.test(componentStack)) {\n const error = addErrorContext(createMetadataError(kind, workStore.route), componentStack, effectiveCreateInstantStack);\n dynamicValidation.dynamicMetadata = error;\n return;\n }\n if (hasViewportRegex.test(componentStack)) {\n const error = addErrorContext(createViewportError(kind, workStore.route), componentStack, effectiveCreateInstantStack);\n dynamicValidation.dynamicErrors.push(error);\n return;\n }\n const boundaryLocation = hasInstantValidationBoundaryRegex.exec(componentStack);\n if (!boundaryLocation) {\n // We don't see the validation boundary in the component stack,\n // so this hole must be coming from a shared parent.\n // Shared parents are fully resolved and don't have RSC holes,\n // but they can still suspend in a client component during SSR.\n // If we managed to render all the validation boundaries, that means\n // that the client holes aren't blocking validation and we can disregard them.\n // Note that we don't even care whether they have suspense or not.\n if (allRequiredBoundariesRendered(boundaryState)) {\n dynamicValidation.hasAllowedClientDynamicAboveBoundary = true;\n dynamicValidation.hasAllowedDynamic = true // Holes outside the boundary contribute to allowing dynamic metadata\n ;\n return;\n } else {\n // TODO(instant-validation) TODO(NAR-787)\n // If shared parents blocked us from validating, we should only log\n // the errors from the innermost (segments), i.e. omit layouts whose\n // slots managed to render (because clearly they didn't block validation)\n const message = `Route \"${workStore.route}\": Could not validate \\`instant\\` because a Client Component in a parent segment prevented the page from rendering.`;\n const error = addErrorContext(new Error(message), componentStack, effectiveCreateInstantStack);\n dynamicValidation.validationPreventingErrors.push(error);\n return;\n }\n } else {\n // The hole originates inside the validation boundary.\n //\n // Check if we have a Suspense above the hole, but below the validation boundary.\n // If we do, then this dynamic usage wouldn't block a navigation to this subtree.\n // Conversely, if the nearest suspense is above the validation boundary, then this subtree would block.\n //\n // Note that in the component stack, children come before parents.\n //\n // Valid:\n // ...\n // at Suspense\n // ...\n // at __next_prefetch_validation_boundary__\n //\n // Invalid:\n // ...\n // at __next_prefetch_validation_boundary__\n // ...\n // at Suspense\n //\n const suspenseLocation = hasSuspenseRegex.exec(componentStack);\n if (suspenseLocation) {\n if (suspenseLocation.index < boundaryLocation.index) {\n dynamicValidation.hasAllowedDynamic = true;\n return;\n } else {\n // invalid - fallthrough\n }\n }\n }\n if (syncDynamicError) {\n if (effectiveCreateInstantStack !== null && syncDynamicError.cause === undefined) {\n syncDynamicError.cause = effectiveCreateInstantStack();\n }\n dynamicValidation.dynamicErrors.push(syncDynamicError);\n return;\n }\n if (isClientHookDynamicError(dynamicReason)) {\n dynamicValidation.dynamicErrors.push(addErrorContext(dynamicReason, componentStack, effectiveCreateInstantStack));\n return;\n }\n const error = addErrorContext(createBodyErrorInNavigation(kind, workStore.route), componentStack, effectiveCreateInstantStack);\n dynamicValidation.dynamicErrors.push(error);\n return;\n}\nfunction createBodyError(kind, route) {\n switch(kind){\n case 1:\n return createRuntimeBodyError(route);\n case 5:\n return createDynamicBodyError(route);\n case 6:\n return createDynamicOrRuntimeBodyError(route);\n }\n}\nfunction createBodyErrorInNavigation(kind, route) {\n switch(kind){\n case 1:\n return createRuntimeBodyErrorInNavigation(route);\n case 2:\n return createLinkBodyErrorInNavigation(route);\n case 3:\n return createNavigationBodyErrorInNavigation(route);\n case 4:\n return createPrefetchBodyErrorInNavigation(route);\n case 5:\n return createDynamicBodyErrorInNavigation(route);\n }\n}\nfunction createMetadataError(kind, route) {\n switch(kind){\n case 1:\n return createRuntimeMetadataError(route);\n case 2:\n return createLinkMetadataError(route);\n case 3:\n return createNavigationMetadataError(route);\n case 4:\n return createPrefetchMetadataError(route);\n case 5:\n return createDynamicMetadataError(route);\n case 6:\n return createDynamicOrRuntimeMetadataError(route);\n }\n}\nfunction createViewportError(kind, route) {\n switch(kind){\n case 1:\n return createRuntimeViewportError(route);\n case 2:\n return createLinkViewportError(route);\n case 3:\n return createNavigationViewportError(route);\n case 4:\n return createPrefetchViewportError(route);\n case 5:\n return createDynamicViewportError(route);\n case 6:\n return createDynamicOrRuntimeViewportError(route);\n }\n}\nfunction createBodyErrorInStaticRoute(kind, route) {\n switch(kind){\n case 1:\n return createRuntimeBodyErrorInStaticRoute(route);\n case 5:\n return createDynamicBodyErrorInStaticRoute(route);\n case 6:\n return createNonPrerenderableBodyErrorInStaticRoute(route);\n }\n}\nfunction createMetadataErrorInStaticRoute(kind, route) {\n switch(kind){\n case 1:\n return createRuntimeMetadataErrorInStaticRoute(route);\n case 5:\n return createDynamicMetadataErrorInStaticRoute(route);\n case 6:\n return createNonPrerenderableMetadataErrorInStaticRoute(route);\n }\n}\nfunction createViewportErrorInStaticRoute(kind, route) {\n switch(kind){\n case 1:\n return createRuntimeViewportErrorInStaticRoute(route);\n case 5:\n return createDynamicViewportErrorInStaticRoute(route);\n case 6:\n return createNonPrerenderableViewportErrorInStaticRoute(route);\n }\n}\nexport function trackThrownErrorInNavigation(workStore, dynamicValidation, thrownValue, componentStack, reactBrowserBailout) {\n const boundaryLocation = hasInstantValidationBoundaryRegex.exec(componentStack);\n if (!boundaryLocation) {\n // There's no validation boundary on the component stack.\n // This error may have blocked a boundary from rendering.\n // Wrap the error to provide component context.\n // This helps for errors from node_modules which would otherwise\n // have no useful stack information due to ignore-listing,\n // e.g. next/dynamic with `ssr: false`.\n if (reactBrowserBailout) {\n // React preserves Next's branded bailout reason as the error cause.\n // Replace the internal wrapper before storing the user-facing diagnostic.\n const browserBailoutReason = getReactBrowserBailoutReason(thrownValue);\n if (browserBailoutReason !== undefined) {\n const browserBailoutError = thrownValue;\n browserBailoutError.cause = browserBailoutReason;\n }\n }\n const error = addErrorContext(new Error('An error occurred while attempting to validate instant UI. This error may be preventing the validation from completing.', {\n cause: thrownValue\n }), componentStack, null);\n dynamicValidation.thrownErrorsOutsideBoundary.push(error);\n } else {\n // There's validation boundary on the component stack,\n // so we know this error didn't block a validation boundary from rendering.\n // However, this error might be hiding be hiding dynamic content that would\n // cause validation to fail.\n const suspenseLocation = hasSuspenseRegex.exec(componentStack);\n if (suspenseLocation) {\n if (suspenseLocation.index < boundaryLocation.index) {\n // There's a Suspense below the validation boundary but above this error's location.\n // This subtree can't fail instant validation because any potential\n // dynamic holes would be guarded by the Suspense anyway,\n // so we can allow this.\n return;\n } else {\n // invalid - fallthrough\n }\n }\n if (reactBrowserBailout) {\n // React preserves Next's branded bailout reason as the error cause.\n // Replace the internal wrapper before storing the user-facing diagnostic.\n const browserBailoutReason = getReactBrowserBailoutReason(thrownValue);\n if (browserBailoutReason !== undefined) {\n const browserBailoutError = thrownValue;\n browserBailoutError.cause = browserBailoutReason;\n }\n }\n const message = `Route \"${workStore.route}\": Could not validate \\`instant\\` because an error prevented the target segment from rendering.`;\n const error = addErrorContext(new Error(message, {\n cause: thrownValue\n }), componentStack, null // TODO(instant-validation-build): conflicting use of cause\n );\n dynamicValidation.validationPreventingErrors.push(error);\n }\n}\nexport function trackDynamicHoleInStaticShell(dynamicReason, workStore, componentStack, dynamicValidation, clientDynamic, kind) {\n const syncDynamicError = getPendingClientSyncDynamicError(clientDynamic);\n if (hasOutletRegex.test(componentStack)) {\n trackOutletSuspenseAboveBody(componentStack, dynamicValidation);\n return;\n } else if (hasMetadataRegex.test(componentStack)) {\n const error = addErrorContext(createMetadataError(kind, workStore.route), componentStack, null);\n dynamicValidation.dynamicMetadata = error;\n return;\n } else if (hasViewportRegex.test(componentStack)) {\n const error = addErrorContext(createViewportError(kind, workStore.route), componentStack, null);\n dynamicValidation.dynamicErrors.push(error);\n return;\n } else if (hasSuspenseBeforeRootLayoutWithoutBodyOrImplicitBodyRegex.test(componentStack)) {\n // For Suspense within body, the prelude wouldn't be empty so it wouldn't violate the empty static shells rule.\n // But if you have Suspense above body, the prelude is empty but we allow that because having Suspense\n // is an explicit signal from the user that they acknowledge the empty shell and want dynamic rendering.\n dynamicValidation.hasAllowedDynamic = true;\n dynamicValidation.hasSuspenseAboveBody = true;\n return;\n } else if (hasSuspenseRegex.test(componentStack)) {\n // this error had a Suspense boundary above it so we don't need to report it as a source\n // of disallowed\n dynamicValidation.hasAllowedDynamic = true;\n return;\n } else if (syncDynamicError) {\n dynamicValidation.dynamicErrors.push(syncDynamicError);\n return;\n }\n if (isClientHookDynamicError(dynamicReason)) {\n dynamicValidation.dynamicErrors.push(addErrorContext(dynamicReason, componentStack, null));\n return;\n }\n const error = addErrorContext(kind === 1 ? createRuntimeBodyError(workStore.route) : createDynamicBodyError(workStore.route), componentStack, null);\n dynamicValidation.dynamicErrors.push(error);\n return;\n}\n/**\n * In dev mode, we prefer using the owner stack, otherwise the provided\n * component stack is used.\n */ function addErrorContext(error, componentStack, createInstantStack) {\n const ownerStack = process.env.NODE_ENV !== 'production' && React.captureOwnerStack ? React.captureOwnerStack() : null;\n if (createInstantStack !== null) {\n error.cause = createInstantStack();\n }\n // TODO go back to owner stack here if available. This is temporarily using componentStack to get the right\n //\n error.stack = error.name + ': ' + error.message + (ownerStack || componentStack);\n return error;\n}\nexport var PreludeState = /*#__PURE__*/ function(PreludeState) {\n PreludeState[PreludeState[\"Full\"] = 0] = \"Full\";\n PreludeState[PreludeState[\"Empty\"] = 1] = \"Empty\";\n PreludeState[PreludeState[\"Errored\"] = 2] = \"Errored\";\n return PreludeState;\n}({});\nexport function logDisallowedDynamicError(workStore, error) {\n console.error(error);\n logBuildDebugHint(workStore.route);\n}\nexport function throwIfSyncIOUsed(workStore, serverDynamic) {\n if (serverDynamic.syncDynamicErrorWithStack) {\n logDisallowedDynamicError(workStore, serverDynamic.syncDynamicErrorWithStack);\n throw new StaticGenBailoutError();\n }\n}\nexport function throwIfDisallowedDynamic(workStore, prelude, dynamicValidation, serverDynamic, allowEmptyStaticShell) {\n const dynamicHoleKind = 6;\n throwIfSyncIOUsed(workStore, serverDynamic);\n // The dynamic metadata error is a mistake-detection signal. It fires when the\n // rest of the shell is otherwise fully static apart from metadata, suggesting\n // the dynamic data access in `generateMetadata` was probably unintentional.\n // That condition is independent of whether the user or build phase accepted\n // an empty shell, so we surface it before any opt-in bypass.\n if (prelude === 0 && dynamicValidation.hasAllowedDynamic === false && dynamicValidation.hasDynamicMetadata) {\n console.error(createMetadataError(dynamicHoleKind, workStore.route).message);\n throw new StaticGenBailoutError();\n }\n // Either flag expresses \"this shell is allowed to be empty/blocking\":\n // - `allowEmptyStaticShell` covers `instant = false` (user opt-in)\n // and the build-phase fallback-shell case.\n // - `hasSuspenseAboveBody` is the structural opt-in inside the user's root\n // layout.\n // Treat them as synonyms for the purpose of bypassing shell-failure errors.\n if (allowEmptyStaticShell || dynamicValidation.hasSuspenseAboveBody) {\n return;\n }\n if (prelude !== 0) {\n // We didn't have any sync bailouts but there may be user code which\n // blocked the root. We would have captured these during the prerender\n // and can log them here and then terminate the build/validating render\n const dynamicErrors = dynamicValidation.dynamicErrors;\n if (dynamicErrors.length > 0) {\n for(let i = 0; i < dynamicErrors.length; i++){\n logDisallowedDynamicError(workStore, dynamicErrors[i]);\n }\n throw new StaticGenBailoutError();\n }\n // If we got this far then the only other thing that could be blocking\n // the root is dynamic Viewport. If this is dynamic then\n // you need to opt into that by adding a Suspense boundary above the body\n // to indicate your are ok with fully dynamic rendering.\n if (dynamicValidation.hasDynamicViewport) {\n console.error(createViewportError(dynamicHoleKind, workStore.route).message);\n throw new StaticGenBailoutError();\n }\n if (prelude === 1) {\n // If we ever get this far then we messed up the tracking of invalid dynamic.\n // We still adhere to the constraint that you must produce a shell but invite the\n // user to report this as a bug in Next.js.\n console.error(`Route \"${workStore.route}\" did not produce a static shell and Next.js was unable to determine a reason. This is a bug in Next.js.`);\n throw new StaticGenBailoutError();\n }\n }\n}\nexport function throwIfDisallowedDynamicInStaticRoute(workStore, prelude, dynamicValidation, serverDynamic, isFallbackShell, allowEmptyStaticShell, isServerPartial) {\n const reasons = getDisallowedReasonsInStaticRoute(workStore, prelude, dynamicValidation, serverDynamic, isFallbackShell, allowEmptyStaticShell, isServerPartial);\n if (reasons.length > 0) {\n for (const reason of reasons){\n logDisallowedDynamicError(workStore, reason);\n }\n throw new StaticGenBailoutError();\n }\n}\nexport function getDisallowedReasonsInStaticRoute(workStore, prelude, dynamicValidation, serverDynamic, isFallbackShell, allowEmptyStaticShell, isServerPartial) {\n if (serverDynamic && serverDynamic.syncDynamicErrorWithStack) {\n return [\n serverDynamic.syncDynamicErrorWithStack\n ];\n }\n // We do a fallback shell prerender, but it's not meant to be validated --\n // we just need it to create the relevant prerender outputs.\n if (isFallbackShell) {\n return [];\n }\n // Suspense-above-body and `instant = false` bypass reporting\n // that the shell is blocked. However, if we have non-prerenderable server\n // data, we still have to error, regardless of those two.\n if (!isServerPartial && (allowEmptyStaticShell || dynamicValidation.hasSuspenseAboveBody)) {\n return [];\n }\n const { dynamicErrors } = dynamicValidation;\n if (dynamicErrors.length > 0) {\n return dynamicErrors;\n }\n // Dynamic data may have been passed into a client component without calling `use()`,\n // in which case we wouldn't see it during the prerender, but still need to error.\n // Fall back to a generic error message.\n if (isServerPartial) {\n return [\n new Error(`Route \"${workStore.route}\": Next.js encountered data that is not available during a static prerender, but is unable to provide a location.`)\n ];\n }\n if (prelude === 1 || prelude === 2) {\n // We've somehow ended up with an empty prelude but no dynamic errors.\n // We must've messed up the tracking somehow.\n return [\n new InvariantError(`Route \"${workStore.route}\" did not produce a static shell and Next.js was unable to determine a reason.`)\n ];\n }\n return [];\n}\nexport function getStaticShellDisallowedDynamicReasons(workStore, prelude, dynamicValidation, allowEmptyStaticShell) {\n // The dynamic metadata error is a mistake-detection signal. It fires when the\n // rest of the shell is otherwise fully static apart from metadata, suggesting\n // the dynamic data access in `generateMetadata` was probably unintentional.\n // That condition is independent of whether the user or build phase accepted\n // an empty shell, so we surface it before any opt-in bypass.\n if (prelude === 0 && dynamicValidation.hasAllowedDynamic === false && dynamicValidation.dynamicErrors.length === 0 && dynamicValidation.dynamicMetadata) {\n return [\n dynamicValidation.dynamicMetadata\n ];\n }\n // Either flag expresses \"this shell is allowed to be empty/blocking\":\n // - `allowEmptyStaticShell` covers `instant = false` (user opt-in)\n // and the build-phase fallback-shell case.\n // - `hasSuspenseAboveBody` is the structural opt-in inside the user's root\n // layout.\n // Treat them as synonyms for the purpose of bypassing shell-failure errors.\n if (allowEmptyStaticShell || dynamicValidation.hasSuspenseAboveBody) {\n return [];\n }\n if (prelude !== 0) {\n // We didn't have any sync bailouts but there may be user code which\n // blocked the root. We would have captured these during the prerender\n // and can log them here and then terminate the build/validating render\n const dynamicErrors = dynamicValidation.dynamicErrors;\n if (dynamicErrors.length > 0) {\n return dynamicErrors;\n }\n if (prelude === 1) {\n // If we ever get this far then we messed up the tracking of invalid dynamic.\n // We still adhere to the constraint that you must produce a shell but invite the\n // user to report this as a bug in Next.js.\n return [\n new InvariantError(`Route \"${workStore.route}\" did not produce a static shell and Next.js was unable to determine a reason.`)\n ];\n }\n }\n // We had a non-empty prelude and there are no dynamic holes\n return [];\n}\nexport function getNavigationDisallowedDynamicReasons(workStore, prelude, dynamicValidation, validationSampleTracking, boundaryState, devRenderDidError) {\n // If we have errors related to missing samples, those should take precedence over everything else.\n if (validationSampleTracking) {\n const { missingSampleErrors } = validationSampleTracking;\n if (missingSampleErrors.length > 0) {\n return missingSampleErrors;\n }\n }\n const { validationPreventingErrors } = dynamicValidation;\n if (validationPreventingErrors.length > 0) {\n if (process.env.__NEXT_DEV_SERVER && devRenderDidError) {\n // The dev render already surfaced server errors to the user.\n // The same errors likely caused validation to be inconclusive,\n // so reporting them again as validation failures would be noisy.\n return [];\n }\n return validationPreventingErrors;\n }\n // NOTE: We don't care about Suspense above body here,\n // we're only concerned with the validation boundary\n if (prelude !== 0) {\n const dynamicErrors = dynamicValidation.dynamicErrors;\n if (dynamicErrors.length > 0) {\n return dynamicErrors;\n }\n if (prelude === 1 && !dynamicValidation.hasAllowedClientDynamicAboveBoundary && allRequiredBoundariesRendered(boundaryState)) {\n // If we ever get this far then we messed up the tracking of invalid\n // dynamic. (When boundaries are missing the deferred fallback below\n // will surface a more useful error.)\n return new InvariantError(`Route \"${workStore.route}\" failed to render during instant validation and Next.js was unable to determine a reason.`);\n }\n } else {\n const dynamicErrors = dynamicValidation.dynamicErrors;\n if (dynamicErrors.length > 0) {\n return dynamicErrors;\n }\n if (dynamicValidation.hasAllowedDynamic === false && dynamicValidation.dynamicMetadata) {\n return [\n dynamicValidation.dynamicMetadata\n ];\n }\n }\n // Missing boundaries on their own aren't a strong signal — a parent\n // layout may legitimately omit a slot. Defer this so the caller can\n // try shallower validation depths first; if every depth comes up\n // empty we still want to surface this so the user is made aware that\n // validation didn't complete. When we add a markers API, the\n // marker-based variant of this check can become strict again.\n if (!allRequiredBoundariesRendered(boundaryState)) {\n const { thrownErrorsOutsideBoundary } = dynamicValidation;\n const rootInstantStack = dynamicValidation.slotStacks[0];\n if (thrownErrorsOutsideBoundary.length === 0) {\n const missingFiles = [];\n for (const [id, filePaths] of boundaryState.requiredIds){\n if (!boundaryState.renderedIds.has(id)) {\n for (const filePath of filePaths){\n let normalized = filePath.replace(/^\\[project\\][\\\\/]?/, '').replace(process.cwd() + '/', '').replace(process.cwd() + '\\\\', '');\n missingFiles.push(normalized);\n }\n }\n }\n missingFiles.sort();\n return createUnrenderedSegmentError(workStore.route, missingFiles);\n } else if (process.env.__NEXT_DEV_SERVER && devRenderDidError) {\n // Errors outside the boundary likely blocked it from rendering,\n // but they're already being reported to the user via the dev\n // render. Suppress the validation failure to avoid noise.\n return [];\n } else if (thrownErrorsOutsideBoundary.length === 1) {\n const message = `Route \"${workStore.route}\": Could not validate \\`instant\\` because the target segment was prevented from rendering, likely due to the following error.`;\n const error = rootInstantStack !== null ? rootInstantStack() : new Error();\n error.name = 'Error';\n error.message = message;\n return new AggregateError([\n error,\n thrownErrorsOutsideBoundary[0]\n ]);\n } else {\n const message = `Route \"${workStore.route}\": Could not validate \\`instant\\` because the target segment was prevented from rendering, likely due to one of the following errors.`;\n const error = rootInstantStack !== null ? rootInstantStack() : new Error();\n error.name = 'Error';\n error.message = message;\n return new AggregateError([\n error,\n ...thrownErrorsOutsideBoundary\n ]);\n }\n }\n // We had a non-empty prelude and there are no dynamic holes\n return [];\n}\n\n//# sourceMappingURL=dynamic-rendering.js.map","const DYNAMIC_ERROR_CODE = 'DYNAMIC_SERVER_USAGE';\nexport class DynamicServerError extends Error {\n constructor(description){\n super(`Dynamic server usage: ${description}`), this.description = description, this.digest = DYNAMIC_ERROR_CODE;\n }\n}\nexport function isDynamicServerError(err) {\n if (typeof err !== 'object' || err === null || !('digest' in err) || typeof err.digest !== 'string') {\n return false;\n }\n return err.digest === DYNAMIC_ERROR_CODE;\n}\n\n//# sourceMappingURL=hooks-server-context.js.map","const NEXT_STATIC_GEN_BAILOUT = 'NEXT_STATIC_GEN_BAILOUT';\nexport class StaticGenBailoutError extends Error {\n constructor(...args){\n super(...args), this.code = NEXT_STATIC_GEN_BAILOUT;\n }\n}\nexport function isStaticGenBailoutError(error) {\n if (typeof error !== 'object' || error === null || !('code' in error)) {\n return false;\n }\n return error.code === NEXT_STATIC_GEN_BAILOUT;\n}\n\n//# sourceMappingURL=static-generation-bailout.js.map","import { InvariantError } from '../shared/lib/invariant-error';\nimport { createPromiseWithResolvers } from '../shared/lib/promise-with-resolvers';\nimport { EnsureStaticLevel } from './app-render/segment-config/ensure-static';\nimport { RenderStage } from './app-render/staged-rendering';\nimport { workAsyncStorage } from './app-render/work-async-storage.external';\nimport { workUnitAsyncStorage } from './app-render/work-unit-async-storage.external';\nimport { getServerReact, getClientReact } from './runtime-reacts.external';\nexport function isHangingPromiseRejectionError(err) {\n if (typeof err !== 'object' || err === null || !('digest' in err)) {\n return false;\n }\n return err.digest === HANGING_PROMISE_REJECTION;\n}\nconst HANGING_PROMISE_REJECTION = 'HANGING_PROMISE_REJECTION';\nclass HangingPromiseRejectionError extends Error {\n constructor(route, expression){\n super(`During prerendering, ${expression} rejects when the prerender is complete. Typically these errors are handled by React but if you move ${expression} to a different context by using \\`setTimeout\\`, \\`after\\`, or similar functions you may observe this error and you should handle it in that context. This occurred at route \"${route}\".`), this.route = route, this.expression = expression, this.digest = HANGING_PROMISE_REJECTION;\n }\n}\nconst CLIENT_HOOK_DYNAMIC = 'CLIENT_HOOK_DYNAMIC';\nexport class ClientHookDynamicError extends Error {\n constructor(route, expression){\n super(`Route \"${route}\": Next.js encountered URL data \\`${expression}\\` in a Client Component outside of \\`\\`.\\n\\n` + `This blocks prerendering because the value is only available at runtime.\\n\\n` + `Ways to fix this:\\n` + ` - [stream] Wrap the component in \\`\\` so the hook value streams in after prerendering\\n` + ` - [block] Set \\`export const instant = false\\` to allow a blocking route\\n\\n` + `Learn more: https://nextjs.org/docs/messages/blocking-prerender-client-hook`), this.digest = CLIENT_HOOK_DYNAMIC;\n }\n}\nexport function isClientHookDynamicError(err) {\n if (typeof err !== 'object' || err === null || !('digest' in err)) {\n return false;\n }\n return err.digest === CLIENT_HOOK_DYNAMIC;\n}\nconst abortListenersBySignal = new WeakMap();\n/**\n * Constructs a promise that never resolves, standing in for *dynamic* data:\n * data that is only available during a real dynamic request and hangs in\n * every kind of prerender — `io()`, `connection()`, uncached `fetch()`.\n *\n * This is primarily useful for cacheComponents where we use promise\n * resolution timing to determine which parts of a render can be included in a\n * prerender.\n *\n * Records nothing on the prerender store: the promise's holes are only ever\n * filled by a real dynamic request, so a runtime prefetch response would have\n * the same holes as the static one. If the data source would resolve during a\n * runtime prerender, use `makeRuntimeHangingPromise` instead.\n */ export function makeDynamicHangingPromise(signal, route, expression) {\n return makeHangingPromiseWithError(signal, new HangingPromiseRejectionError(route, expression));\n}\nexport function makeUntrackedHangingPromise(signal, route, expression) {\n return makeHangingPromiseWithError(signal, new HangingPromiseRejectionError(route, expression));\n}\n/**\n * Constructs a promise that never resolves, standing in for session data\n * (which a runtime shell can access).\n * Examples: cookies, headers\n *\n * Awaiting one of these during a static prerender records on the prerender\n * store that a runtime shell would produce more content than the static\n * static shell, which the segment prefetch encoding uses\n * to tell the client whether a runtime request could be skipped.\n *\n * When unsure whether data is dynamic or runtime, prefer this method — the\n * cost of over-recording is a redundant runtime prefetch request; the cost of\n * under-recording is a permanently missing one.\n *\n * For fallback-param data — data a concrete (ISR-upgraded) prerender would\n * resolve — use `makeFallbackParamsHangingPromise` instead, so the access\n * is recorded with the right effect on the static-prefetch hint.\n */ export function makeSessionDataHangingPromise(signal, route, expression, workUnitStore) {\n const promise = makeHangingPromiseWithError(signal, new HangingPromiseRejectionError(route, expression));\n return trackPromiseUsed(promise, trackSessionDataAccessed.bind(null, workUnitStore, expression));\n}\n/**\n * Constructs a promise that never resolves, standing in for URL data,\n * which can be accessed in a runtime prefetch (but not a runtime shell).\n * Examples: fallback params, searchParams\n *\n * Awaiting one of these during a static prerender records on the prerender\n * store that a runtime prefetch would produce more content than the static\n * response, which the segment prefetch encoding uses\n * to tell the client whether a runtime prefetch request could be skipped.\n *\n * When unsure whether data is dynamic or runtime, prefer this method — the\n * cost of over-recording is a redundant runtime prefetch request; the cost of\n * under-recording is a permanently missing one.\n *\n * `workUnitStore` may be null ONLY when the caller tracks the access itself.\n * Such a caller MUST call `trackURLDataAccessed` from every path that\n * observes the promise (e.g. the proxy traps for `then`/`status`),\n * against the work unit store active at access time.\n *\n * For fallback-param data — data a concrete (ISR-upgraded) prerender would\n * resolve — use `makeFallbackParamsHangingPromise` instead, so the access\n * is recorded with the right effect on the static-prefetch hint.\n */ export function makeURLDataHangingPromise(signal, route, expression, workUnitStore) {\n const promise = makeHangingPromiseWithError(signal, new HangingPromiseRejectionError(route, expression));\n if (workUnitStore === null) {\n return promise;\n }\n return trackPromiseUsed(promise, trackURLDataAccessed.bind(null, workUnitStore, expression));\n}\n/**\n * Creates a promise that stands in for a result that will either be session data\n * or URL data, but we don't know which.\n */ export function makeUnknownRuntimeDataHangingPromise(signal, route, expression, workUnitStore) {\n // We don't know if this is session or URL data, i.e. if it should affect the shell\n // or only the prefetch. Track it conservatively as affecting both.\n return makeSessionDataHangingPromise(signal, route, expression, workUnitStore);\n}\n/**\n * Constructs a promise that never resolves, standing in for data that is only\n * accessible in the prefetch, but not in the shell, e.g. `prefetch()`.\n * This usage does *not* indicate that a runtime request is needed,\n * only that the data is not available in a shell.\n *\n * @internal\n */ export function makePrefetchHangingPromise(signal, route, expression) {\n return makeUntrackedHangingPromise(signal, route, expression);\n}\n/**\n * Variant of `makeRuntimeHangingPromise` for *fallback-param* data: fallback\n * route params and values derived solely from them (`params`, `rootParams`,\n * `pathname` during a fallback prerender). Like every runtime data access,\n * awaiting it records the access on the prerender store's response-level flag,\n * but its effect on the build-time static-prefetch hint differs — on a\n * fallback-upgradeable route the access is transient (a concrete prerender\n * resolves it), so it leaves the hint intact. See `trackFallbackParamsAccessed`.\n *\n * As with `makeRuntimeHangingPromise`, `workUnitStore` may be null ONLY when\n * the caller tracks the access itself by calling `trackFallbackParamsAccessed`\n * from every path that observes the promise.\n */ export function makeFallbackParamsHangingPromise(signal, route, expression, workUnitStore) {\n const promise = makeHangingPromiseWithError(signal, new HangingPromiseRejectionError(route, expression));\n if (workUnitStore === null) {\n return promise;\n }\n return trackPromiseUsed(promise, trackFallbackParamsAccessed.bind(null, workUnitStore, expression));\n}\nexport function createPrerenderDataTracking() {\n return {\n runtimeDataAccessed: createPromiseWithResolvers(),\n shouldAttemptStaticShell: true,\n shouldAttemptStaticPrefetch: true\n };\n}\nexport function finishPrerenderDataTracking(prerenderDataTracking) {\n // If a runtime data access already resolved this promise, this is a no-op.\n prerenderDataTracking.runtimeDataAccessed.resolve(false);\n}\n/**\n * Records on a static prerender store that the render accessed a data source\n * which would have resolved in a runtime shell (or runtime prefetch).\n * No-op for all other store types.\n *\n * Prefer `makeRuntimeHangingPromise`. Use this function only when implementing\n * similar tracking and that one is not enough.\n */ function trackSessionDataAccessed(workUnitStore, expression) {\n trackRuntimeDataAccessed(workUnitStore, 1, expression);\n}\n/**\n * Records on a static prerender store that the render accessed a data source\n * which would have resolved in a runtime prefetch (but NOT in a runtime shell)\n * No-op for all other store types.\n *\n * Prefer `makeRuntimeHangingPromise`. Use this function only when implementing\n * similar tracking and that one is not enough.\n *\n * For fallback-param data, use `trackFallbackParamsAccessed` instead. When\n * unsure, this is the conservative choice.\n */ export function trackURLDataAccessed(workUnitStore, expression) {\n trackRuntimeDataAccessed(workUnitStore, 2, expression);\n}\n/**\n * Fallback-param variant of `trackRuntimeDataAccessed`, for accesses of\n * fallback route params and values derived solely from them. It records the\n * response-level flag all the same, but only clears the build-time\n * static-prefetch hint when the route is not fallback-upgradeable — on an\n * upgradeable route the access is transient, since ISR later produces a\n * concrete prerender that resolves it.\n */ export function trackFallbackParamsAccessed(workUnitStore, expression) {\n trackRuntimeDataAccessed(workUnitStore, 3, expression);\n}\nfunction trackRuntimeDataAccessed(workUnitStore, dataKind, expression) {\n switch(workUnitStore.type){\n case 'prerender':\n {\n const { prerenderDataTracking, stagedRendering } = workUnitStore;\n if (!prerenderDataTracking || !stagedRendering) {\n return;\n }\n const { currentStage } = stagedRendering;\n if (currentStage === RenderStage.Before) {\n console.error(new InvariantError('Unexpected trackRuntimeDataAccessed in the Before stage.'));\n return;\n }\n if (currentStage >= RenderStage.NavigationStatic) {\n // Ignore any accesses that happen after `navigation()` resolves.\n // The purpose of this tracking is to judge whether a runtime prefetch\n // would give us a more complete result than a static one.\n // But `navigation()` wouldn't have resolved in a runtime prefetch,\n // so e.g. `await navigation(); await cookies()` wouldn't have more content\n // in those, and we shouldn't count it.\n return;\n }\n const ensureStaticLevel = workUnitStore.ensureStaticLevel ?? EnsureStaticLevel.None;\n // NOTE: In general, we keep hints in sync with `needsRuntimeRequest`, but they\n // don't have to always match. The client re-uses hints for the entire route,\n // while `needsRuntimeRequest` can vary across individual prerendered param values\n // (e.g. if cookies are accessed depending on a param value).\n // Hints can also become outdated if a route only starts using runtime data\n // after a revalidation, so we have to expect this and be resilient to it.\n // Also see the upgradeable fallback params case below, which deliberately\n // puts them out of sync.\n switch(dataKind){\n case 1:\n {\n // Potentially deopt both the shell and the prefetch,\n // because if the shell accessed runtime data, so does the prefetch.\n // However, if we're already past the shell stage, the shell is not affected.\n // (which makes e.g. `await prefetch(); await cookies()` only affect the prefetch)\n let firstAffectedStage = null;\n if (currentStage <= RenderStage.ShellStatic && // Only track if we're not forcing the shell to be static.\n ensureStaticLevel < EnsureStaticLevel.Shell) {\n prerenderDataTracking.shouldAttemptStaticShell = false;\n firstAffectedStage ??= RenderStage.ShellStatic;\n logRuntimeDeopt == null ? void 0 : logRuntimeDeopt(expression, 'shell');\n }\n if (currentStage <= RenderStage.PrefetchStatic && // Only track if we're not forcing the prefetch to be static.\n ensureStaticLevel < EnsureStaticLevel.Prefetch) {\n prerenderDataTracking.shouldAttemptStaticPrefetch = false;\n // NOTE: if the shell is affected, don't override it.\n firstAffectedStage ??= RenderStage.PrefetchStatic;\n logRuntimeDeopt == null ? void 0 : logRuntimeDeopt(expression, 'prefetch');\n }\n if (firstAffectedStage !== null) {\n markRuntimeDataAccessWhenStageReached(prerenderDataTracking, stagedRendering, firstAffectedStage);\n }\n break;\n }\n case 3:\n {\n if (workUnitStore.isFallbackUpgradeable) {\n // An fallback-param access is transient when the route is\n // fallback-upgradeable (i.e. ISR later produces the concrete prerender a\n // static prefetch would hit) so it does not indicate the need for a runtime\n // request and thus does not affect the static hints.\n //\n // If runtime prefetches are not disallowed by `ensureStatic`, then we still\n // set `runtimeDataAccessed` (while keeping the hints static). This means that\n // if the concrete prerender isn't ready yet and we served the fallback, then\n // the client knows it can use a *runtime* prefetch for speculative links --\n // a runtime prefetch can provide the same content (or more) as the concrete\n // prerender would.\n if (ensureStaticLevel < EnsureStaticLevel.Prefetch) {\n markRuntimeDataAccessWhenStageReached(prerenderDataTracking, stagedRendering, // `params` are URL data, so they only affect the prefetch\n RenderStage.PrefetchStatic);\n logRuntimeUpgradeableFallback == null ? void 0 : logRuntimeUpgradeableFallback();\n }\n break;\n }\n // not an upgradeable fallback param access, so we treat it as URL data.\n // intentional fallthrough\n }\n case 2:\n {\n // Only deopt the prefetch, not the shell, which cannot access URL data anyway.\n if (currentStage <= RenderStage.PrefetchStatic && ensureStaticLevel < EnsureStaticLevel.Prefetch) {\n prerenderDataTracking.shouldAttemptStaticPrefetch = false;\n logRuntimeDeopt == null ? void 0 : logRuntimeDeopt(expression, 'prefetch');\n markRuntimeDataAccessWhenStageReached(prerenderDataTracking, stagedRendering, RenderStage.PrefetchStatic);\n }\n break;\n }\n }\n break;\n }\n case 'prerender-client':\n case 'prerender-legacy':\n case 'prerender-runtime':\n case 'validation-client':\n case 'request':\n case 'cache':\n case 'private-cache':\n case 'unstable-cache':\n case 'build-time-generator':\n break;\n default:\n workUnitStore;\n }\n}\n/**\n * Tracks a runtime data access on the `runtimeDataAccessed` promise,\n * but with a delay until `targetStage`.\n *\n * When we encounter a URL data access like `await params`, we need to mark the\n * *prefetch* as needing runtime data, but the *shell* should remain unaffected\n * (because it cannot access params anyway).\n *\n * However, the shell and the prefetch share one `runtimeDataAccessed` promise,\n * and it needs to be accurately rewindable by the client\n * In other words, we need to make sure that it reads as `false` when rewound\n * to a shell, but as `true` in the final response (the prefetch).\n *\n * This means that if the `await params` is encountered during the shell stage, we\n * cannot resolve `runtimeDataAccessed` immediately.\n * Instead, we delay the resolution until the PrefetchStatic stage, so the promise\n * will remain unresolved when rewound to the shell stage (which reads as `false`).\n */ function markRuntimeDataAccessWhenStageReached(prerenderDataTracking, stageController, targetStage) {\n const { runtimeDataAccessed } = prerenderDataTracking;\n // NOTE: If we're already in or past the target stage, we can avoid allocating a closure,\n // because `onStage` would've executed the callback immediately anyway.\n if (stageController.currentStage >= targetStage) {\n runtimeDataAccessed.resolve(true);\n } else {\n stageController.onStage(targetStage, runtimeDataAccessed.resolve.bind(null, true));\n }\n}\nconst logRuntimeDeopt = process.env.NEXT_PRIVATE_DEBUG_RUNTIME_DATA ? (expression, kind)=>{\n const { route } = workAsyncStorage.getStore();\n console.log(`Route '${route}': deopting to a runtime ${kind} because it used ${expression}`);\n} : undefined;\nconst logRuntimeUpgradeableFallback = process.env.NEXT_PRIVATE_DEBUG_RUNTIME_DATA ? ()=>{\n const { route } = workAsyncStorage.getStore();\n console.log(`Route '${route}': marking upgradeable fallback as runtime prefetchable`);\n} : undefined;\n/**\n * Signals that we cannot recover both a runtime shell and a static (PPR) shell\n * from the same render. Use this whenever the stage of a promise varies on\n * `RequestStore.needsRuntimeShell`.\n * */ export function trackIncompatibleShellContent(workUnitStore, reason) {\n const { stagedRendering } = workUnitStore;\n if (!stagedRendering) {\n return;\n }\n // TODO(app-shells): optimize this to only consider stages that are relevant for validation.\n // We should only track incompatible content when it can affect them.\n // For now, we simply exclude everything that happens in the dynamic stage.\n // (Note that we also need to account for cache misses that move things to a\n // different stage -- those should also preemptively set `hasIncompatibleShellContent`\n // because there's a chance that a render with warm caches would set it)\n const { currentStage } = stagedRendering;\n if (currentStage === RenderStage.Dynamic || currentStage === RenderStage.Abandoned) {\n return;\n }\n if (process.env.NEXT_PRIVATE_DEBUG_VALIDATION) {\n const workStore = workAsyncStorage.getStore();\n console.log(`Route ${workStore.route}: Incompatible shell content: ${reason}`);\n }\n workUnitStore.hasIncompatibleShellContent = true;\n}\nexport function makeClientHookHangingPromise(signal, error) {\n return makeHangingPromiseWithError(signal, error);\n}\nfunction makeHangingPromiseWithError(signal, error) {\n if (signal.aborted) {\n return Promise.reject(error);\n } else {\n const hangingPromise = new Promise((_, reject)=>{\n const boundRejection = reject.bind(null, error);\n let currentListeners = abortListenersBySignal.get(signal);\n if (currentListeners) {\n currentListeners.push(boundRejection);\n } else {\n const listeners = [\n boundRejection\n ];\n abortListenersBySignal.set(signal, listeners);\n signal.addEventListener('abort', ()=>{\n for(let i = 0; i < listeners.length; i++){\n listeners[i]();\n }\n }, {\n once: true\n });\n }\n });\n // We are fine if no one actually awaits this promise. We shouldn't consider this an unhandled rejection so\n // we attach a noop catch handler here to suppress this warning. If you actually await somewhere or construct\n // your own promise out of it you'll need to ensure you handle the error when it rejects.\n hangingPromise.catch(ignoreReject);\n return hangingPromise;\n }\n}\nfunction ignoreReject() {}\n/**\n * Creates a promise that will be triggered when another promise resolves.\n * It will not emit unhandled rejections, which is important if the trigger\n * is a promise that might itself get rejected (e.g. when a prerender/render\n * are aborted due to sync IO)\n */ export function makePromiseFromTrigger(trigger, value) {\n const promise = trigger.then(()=>value);\n promise.catch(ignoreReject);\n return promise;\n}\nexport function makeDevtoolsIOAwarePromise(underlying, requestStore, stage) {\n if (requestStore.stagedRendering) {\n // We resolve each stage in a timeout, so React DevTools will pick this up as IO.\n return requestStore.stagedRendering.delayUntilStage(stage, undefined, underlying);\n }\n // in React DevTools if we resolve in a setTimeout we will observe\n // the promise resolution as something that can suspend a boundary or root.\n return new Promise((resolve)=>{\n // Must use setTimeout to be considered IO React DevTools. setImmediate will not work.\n setTimeout(()=>{\n resolve(underlying);\n }, 0);\n });\n}\n/**\n * Invokes `onUse` whenever `then()/catch()/finally()` are called on the promise\n * or when the promise is awaited. */ export function trackPromiseUsed(promise, onUse) {\n // We can instrument `.then()/.catch()/.finally()` in one go by using a Promise subclass\n // that implements a custom `.then()`, because `catch` and `finally` delegate to it.\n //\n // Alternative implementation ideas that were tried and rejected:\n //\n // 1. Patching the methods directly via `promise.then = (..args) => { ... }`:\n // doesn't work, because Node does not call the monkeypatched methods for native `await`:\n // > Native Promise [...]: The promise is directly used and awaited natively, without calling `then()`.\n // > https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/await#description\n //\n // 2. Wrapping in a proxy that returns a custom `then/catch/finally`:\n // breaks async stacks in React's IO tracking (stack becomes `Promise.then`)\n return TrackedPromise.from(promise, onUse);\n}\nclass TrackedPromise extends Promise {\n #onUse;\n // We don't need derived promises to also be a TrackedPromise.\n // We only care about the first level of `.then()`.\n static get [Symbol.species]() {\n return Promise;\n }\n static from(promise, onUse) {\n // Whenever the promise we're tracking resolves/rejects, we should follow.\n const tracked = new TrackedPromise(promise.then.bind(promise));\n tracked.#onUse = onUse;\n // Hanging promises catch rejections when created. Tracked promises are generally derived\n // from promises that may hang & reject, so we need to do the same.\n // However, we have to bypass the tracking we do in `TrackedPromise.then`.\n // (we're using `then` directly, because `catch` ends up delegating `TrackedPromise.then`)\n Promise.prototype.then.call(tracked, undefined, ignoreReject);\n return tracked;\n }\n then(onFulfilled, onRejected) {\n const onUse = this.#onUse;\n if (onUse) {\n try {\n onUse();\n } catch (err) {\n // We don't want to break the method even if our tracking errored.\n console.error(err);\n }\n }\n return Promise.prototype.then.call(this, onFulfilled, onRejected);\n }\n constructor(...args){\n super(...args), this.#onUse = null;\n }\n}\nexport const RENDER_STAGES_BY_DATA_KIND = {\n sessionData: RenderStage.ShellRuntime,\n /**\n * Statically-prerenderable URL data, like static `params`.\n * It may need to be pushed to a runtime stage in a runtime prerender,\n * but it's semantically distinct from `runtimeUrlData` like `searchParams`,\n * which is always excluded from static prerenders.\n * */ staticUrlData: {\n /**\n * From that app's point of view, `prefetch()` is semantically the same as\n * `staticUrlData`, because it does not resolve in a shell but resolves in\n * a prefetch (even a static one).\n * We handle it separately to provide a specialized error in validation renders.\n */ prefetchApi: {\n static: RenderStage.PrefetchStatic_prefetchApi,\n runtime: RenderStage.PrefetchRuntime_prefetchApi\n },\n static: RenderStage.PrefetchStatic,\n runtime: RenderStage.PrefetchRuntime\n },\n /**\n * URL data that is never statically-prerenderable, like static `searchParams`.\n * */ runtimeUrlData: RenderStage.PrefetchRuntime\n};\nexport function applyOwnerStack(error) {\n if (process.env.NODE_ENV !== 'production') {\n var _getClientReact_captureOwnerStack, _getClientReact, _getServerReact_captureOwnerStack, _getServerReact;\n let ownerStack;\n const workUnitStore = workUnitAsyncStorage.getStore();\n // captureOwnerStack() returns the owner stack for the current React\n // rendering context. Inside a cache scope this only includes the inner\n // component tree. The outer owner stack (captured before entering the\n // cache boundary in use-cache-wrapper.ts) is stored on the cache store.\n // We concatenate both to get the full component tree.\n const innerOwnerStack = ((_getClientReact = getClientReact()) == null ? void 0 : (_getClientReact_captureOwnerStack = _getClientReact.captureOwnerStack) == null ? void 0 : _getClientReact_captureOwnerStack.call(_getClientReact)) ?? ((_getServerReact = getServerReact()) == null ? void 0 : (_getServerReact_captureOwnerStack = _getServerReact.captureOwnerStack) == null ? void 0 : _getServerReact_captureOwnerStack.call(_getServerReact));\n switch(workUnitStore == null ? void 0 : workUnitStore.type){\n case 'cache':\n case 'private-cache':\n ownerStack = (innerOwnerStack || '') + (workUnitStore.outerOwnerStack || '') || undefined;\n break;\n case 'unstable-cache':\n case 'request':\n case 'prerender':\n case 'prerender-legacy':\n case 'prerender-runtime':\n case 'prerender-client':\n case 'validation-client':\n case 'build-time-generator':\n case undefined:\n ownerStack = innerOwnerStack;\n break;\n default:\n workUnitStore;\n }\n if (ownerStack) {\n let stack = ownerStack;\n if (error.stack) {\n const frames = [];\n for (const frame of error.stack.split('\\n').slice(1)){\n if (frame.includes('react_stack_bottom_frame')) {\n break;\n }\n frames.push(frame);\n }\n stack = '\\n' + frames.join('\\n') + stack;\n }\n error.stack = error.name + ': ' + error.message + stack;\n }\n }\n return error;\n}\n\n//# sourceMappingURL=dynamic-rendering-utils.js.map","import { getVaryParamsAccumulator, workUnitAsyncStorage } from './work-unit-async-storage.external';\nimport { SEARCH_PARAMS_VARY_ID } from '../../shared/lib/segment-cache/vary-params-decoding';\n/**\n * Accumulates vary params for a single segment (or for metadata/rootParams).\n *\n * A VaryParamsAccumulator is an `AsyncIterable` that can be serialized\n * by React Flight. As params are accessed during render, each newly-seen param\n * name is `add`ed, which yields it into the Flight stream immediately. After\n * rendering, call `close()` (via `finishAccumulatingVaryParams`) to end the\n * iteration.\n *\n * Because each access is flushed into the stream as it happens, the set of\n * accessed params is built up incrementally, with no step at the end of the\n * render that has to run for the client to read anything. If the prerender is\n * aborted by sync I/O, the params yielded before the abort are already in the\n * stream — and they're exactly the params the partial response depends on.\n * This mirrors how `StaleTimeIterable` works (see stale-time.ts).\n *\n * Each name is emitted at most once: `add` dedupes against the set of\n * already-yielded names, so the stream never contains a duplicate.\n *\n * NOTE: like `StaleTimeIterable`, this supports a single concurrent iteration\n * (Flight iterates it exactly once). The shared empty singleton below is the\n * only instance referenced by more than one segment, and it only ever yields\n * \"done\", so concurrent iteration of it is safe.\n */ export class VaryParamsAccumulator {\n /**\n * Records that a param was accessed. Yields the name into the stream the\n * first time it's seen; subsequent accesses of the same name are no-ops.\n */ add(id) {\n if (this._done || this._seen.has(id)) {\n return;\n }\n this._seen.add(id);\n if (this._resolve !== null) {\n this._resolve({\n value: id,\n done: false\n });\n this._resolve = null;\n } else {\n this._buffer.push(id);\n }\n }\n /** Ends the iteration. Best-effort: if skipped (e.g. on a sync-I/O abort),\n * the consumer simply reads the params yielded so far. */ close() {\n if (this._done) {\n return;\n }\n this._done = true;\n if (this._resolve !== null) {\n this._resolve({\n value: undefined,\n done: true\n });\n this._resolve = null;\n }\n }\n [Symbol.asyncIterator]() {\n return {\n next: ()=>{\n if (this._buffer.length > 0) {\n return Promise.resolve({\n value: this._buffer.shift(),\n done: false\n });\n }\n if (this._done) {\n return Promise.resolve({\n value: undefined,\n done: true\n });\n }\n return new Promise((resolve)=>{\n this._resolve = resolve;\n });\n }\n };\n }\n constructor(){\n this._resolve = null;\n this._done = false;\n this._buffer = [];\n // The set of param names already yielded. Doubles as the dedupe guard so the\n // same name is never emitted twice.\n this._seen = new Set();\n }\n}\n/**\n * A singleton accumulator that's already closed with no params. Use this for\n * segments where we know upfront that no params will be accessed, such as\n * client components or segments without user code.\n *\n * Benefits:\n * - No need to accumulate or close later\n * - Resilient: reads as an empty set even if other tracking fails\n * - Memory efficient: reuses the same object\n *\n * It's never added to `ResponseVaryParamsAccumulator.segments` (callers pass it\n * directly), so `finishAccumulatingVaryParams` doesn't touch it.\n */ export const emptyVaryParamsAccumulator = new VaryParamsAccumulator();\nemptyVaryParamsAccumulator.close();\nexport function createResponseVaryParamsAccumulator() {\n // Create the head and rootParams accumulators as top-level fields.\n // Segment accumulators are added to the segments set as they are created.\n const head = new VaryParamsAccumulator();\n const rootParams = new VaryParamsAccumulator();\n const segments = new Set();\n return {\n head,\n rootParams,\n segments\n };\n}\n/**\n * Allocates a new VaryParamsAccumulator and adds it to the response accumulator\n * associated with the current WorkUnitStore.\n *\n * Returns an iterable that yields the segment's vary params as they're\n * accessed. The iterable can be passed directly to React Flight for\n * serialization.\n */ export function createVaryParamsAccumulator() {\n const workUnitStore = workUnitAsyncStorage.getStore();\n if (!workUnitStore) {\n return null;\n }\n const responseAccumulator = getVaryParamsAccumulator(workUnitStore);\n if (!responseAccumulator) {\n return null;\n }\n const accumulator = new VaryParamsAccumulator();\n responseAccumulator.segments.add(accumulator);\n return accumulator;\n}\nexport function getMetadataVaryParamsAccumulator() {\n var _getVaryParamsAccumulator;\n const workUnitStore = workUnitAsyncStorage.getStore();\n if (!workUnitStore) {\n return null;\n }\n return ((_getVaryParamsAccumulator = getVaryParamsAccumulator(workUnitStore)) == null ? void 0 : _getVaryParamsAccumulator.head) ?? null;\n}\n// The metadata and viewport are always delivered in a single payload, so they\n// don't need to be tracked separately. This may change in the future, but for\n// now this is just an alias.\nexport const getViewportVaryParamsAccumulator = getMetadataVaryParamsAccumulator;\n/**\n * Returns the response-level root params iterable for serialization. Root\n * params are emitted once at the top level (not folded into every segment);\n * the client unions them into each segment's set.\n */ export function getRootParamsVaryParamsAccumulator() {\n var _getVaryParamsAccumulator;\n const workUnitStore = workUnitAsyncStorage.getStore();\n if (!workUnitStore) {\n return null;\n }\n return ((_getVaryParamsAccumulator = getVaryParamsAccumulator(workUnitStore)) == null ? void 0 : _getVaryParamsAccumulator.rootParams) ?? null;\n}\n/**\n * Records that a param was accessed. Adds the param name to the accumulator.\n */ export function accumulateVaryParam(accumulator, id) {\n accumulator.add(id);\n}\n/**\n * Records a root param access.\n */ export function accumulateRootVaryParam(paramName) {\n const rootParamsAccumulator = getRootParamsVaryParamsAccumulator();\n if (rootParamsAccumulator !== null) {\n accumulateVaryParam(rootParamsAccumulator, paramName);\n }\n}\nexport function createVaryingParams(accumulator, originalParamsObject, optionalCatchAllParamName) {\n if (optionalCatchAllParamName !== null) {\n // When there's an optional catch-all param with no value (e.g.,\n // [[...slug]] at /), the param doesn't exist as a property on the params\n // object. Use a Proxy to track all param access — both existing params\n // and the missing optional param — including enumeration patterns like\n // Object.keys(), spread, for...in, and `in` checks.\n return new Proxy(originalParamsObject, {\n get (target, prop, receiver) {\n if (typeof prop === 'string') {\n if (prop === optionalCatchAllParamName || Object.prototype.hasOwnProperty.call(target, prop)) {\n accumulateVaryParam(accumulator, prop);\n }\n }\n return Reflect.get(target, prop, receiver);\n },\n has (target, prop) {\n if (prop === optionalCatchAllParamName) {\n accumulateVaryParam(accumulator, optionalCatchAllParamName);\n }\n return Reflect.has(target, prop);\n },\n ownKeys (target) {\n // Enumerating the params object means the user's code may depend on\n // which params are present, so conservatively track the optional\n // param as accessed.\n accumulateVaryParam(accumulator, optionalCatchAllParamName);\n return Reflect.ownKeys(target);\n }\n });\n }\n // When there's no optional catch-all, all params exist as properties on the\n // object, so we can use defineProperty getters instead of a Proxy. This is\n // faster because the engine can optimize property access on regular objects\n // more aggressively than Proxy trap calls.\n const underlyingParamsWithVarying = {};\n for(const paramName in originalParamsObject){\n Object.defineProperty(underlyingParamsWithVarying, paramName, {\n get () {\n accumulateVaryParam(accumulator, paramName);\n return originalParamsObject[paramName];\n },\n enumerable: true\n });\n }\n return underlyingParamsWithVarying;\n}\nexport function createVaryingSearchParams(accumulator, originalSearchParamsObject) {\n // Search params have no fixed schema, so any access — missing-key reads, `in`\n // checks, or enumeration — must register as varying. A Proxy is required\n // (rather than per-property getters) so that enumeration of an empty\n // searchParams object still triggers a vary. All accesses bucket into the\n // single search params id; the segment is keyed by the whole query string.\n // TODO: Split into per-param tracking if the cache key evolves.\n return new Proxy(originalSearchParamsObject, {\n get (target, prop, receiver) {\n if (typeof prop === 'string') {\n accumulateVaryParam(accumulator, SEARCH_PARAMS_VARY_ID);\n }\n return Reflect.get(target, prop, receiver);\n },\n has (target, prop) {\n if (typeof prop === 'string') {\n accumulateVaryParam(accumulator, SEARCH_PARAMS_VARY_ID);\n }\n return Reflect.has(target, prop);\n },\n ownKeys (target) {\n accumulateVaryParam(accumulator, SEARCH_PARAMS_VARY_ID);\n return Reflect.ownKeys(target);\n }\n });\n}\n/**\n * Closes all accumulators in a ResponseVaryParamsAccumulator, ending their\n * iterables. Call this after rendering is complete.\n *\n * This does NOT merge root params into each segment — root params are\n * serialized separately (at the top level of the response) and unioned in by\n * the client. And it's best-effort: if it's skipped because the render was\n * aborted by sync I/O, the consumer just reads the params each iterable yielded\n * before the abort.\n *\n * If we can't track vary params (e.g., legacy prerender), simply don't call\n * this function - the client treats a missing iterable as \"unknown\" vary\n * params.\n */ export function finishAccumulatingVaryParams(responseAccumulator) {\n responseAccumulator.head.close();\n responseAccumulator.rootParams.close();\n for (const segmentAccumulator of responseAccumulator.segments){\n segmentAccumulator.close();\n }\n}\n\n//# sourceMappingURL=vary-params.js.map","import { workAsyncStorage } from '../app-render/work-async-storage.external';\nimport { createVaryingSearchParams, getMetadataVaryParamsAccumulator } from '../app-render/vary-params';\nimport { ReflectAdapter } from '../web/spec-extension/adapters/reflect';\nimport { throwToInterruptStaticGeneration, annotateDynamicAccess } from '../app-render/dynamic-rendering';\nimport { abortOnDynamicAccess } from '../app-render/dynamic-access-async-storage.external';\nimport { workUnitAsyncStorage, throwInvariantForMissingStore } from '../app-render/work-unit-async-storage.external';\nimport { InvariantError } from '../../shared/lib/invariant-error';\nimport { makeDevtoolsIOAwarePromise, makeURLDataHangingPromise, makePromiseFromTrigger, trackURLDataAccessed, RENDER_STAGES_BY_DATA_KIND } from '../dynamic-rendering-utils';\nimport { createDedupedByCallsiteServerErrorLoggerDev } from '../create-deduped-by-callsite-server-error-logger';\nimport { describeStringPropertyAccess, describeHasCheckingStringProperty, wellKnownProperties } from '../../shared/lib/utils/reflect-utils';\nimport { throwWithStaticGenerationBailoutErrorWithDynamicError, throwForSearchParamsAccessInUseCache } from './utils';\nexport function createSearchParamsFromClient(underlyingSearchParams) {\n const workStore = workAsyncStorage.getStore();\n if (!workStore) {\n throw new InvariantError('Expected workStore to be initialized');\n }\n const workUnitStore = workUnitAsyncStorage.getStore();\n if (workUnitStore) {\n switch(workUnitStore.type){\n case 'prerender':\n case 'prerender-client':\n case 'prerender-legacy':\n return createStaticPrerenderSearchParams(workStore, workUnitStore);\n case 'prerender-runtime':\n throw new InvariantError('createSearchParamsFromClient should not be called in a runtime prerender.');\n case 'cache':\n case 'private-cache':\n case 'unstable-cache':\n throw new InvariantError('createSearchParamsFromClient should not be called in cache contexts.');\n case 'build-time-generator':\n throw new InvariantError(`createSearchParamsFromClient should not be called inside ${workUnitStore.functionName}.`);\n case 'validation-client':\n {\n if (workUnitStore.validationSamples) {\n return createClientSearchParamsInValidation(underlyingSearchParams, workStore, workUnitStore);\n }\n return makeUntrackedSearchParams(underlyingSearchParams);\n }\n case 'request':\n return createRenderSearchParams(underlyingSearchParams, workStore, workUnitStore);\n default:\n workUnitStore;\n }\n }\n throwInvariantForMissingStore();\n}\n// generateMetadata always runs in RSC context so it is equivalent to a Server Page Component\nexport function createServerSearchParamsForMetadata(underlyingSearchParams) {\n const metadataVaryParamsAccumulator = getMetadataVaryParamsAccumulator();\n return createServerSearchParamsForServerPage(underlyingSearchParams, metadataVaryParamsAccumulator);\n}\nexport function createServerSearchParamsForServerPage(underlyingSearchParams, varyParamsAccumulator) {\n const workStore = workAsyncStorage.getStore();\n if (!workStore) {\n throw new InvariantError('Expected workStore to be initialized');\n }\n const workUnitStore = workUnitAsyncStorage.getStore();\n if (workUnitStore) {\n switch(workUnitStore.type){\n case 'prerender':\n case 'prerender-client':\n case 'prerender-legacy':\n return createStaticPrerenderSearchParams(workStore, workUnitStore);\n case 'validation-client':\n throw new InvariantError('createServerSearchParamsForServerPage should not be called in a client validation.');\n case 'cache':\n case 'private-cache':\n case 'unstable-cache':\n throw new InvariantError('createServerSearchParamsForServerPage should not be called in cache contexts.');\n case 'build-time-generator':\n throw new InvariantError(`createServerSearchParamsForServerPage should not be called inside ${workUnitStore.functionName}.`);\n case 'prerender-runtime':\n return createRuntimePrerenderSearchParams(underlyingSearchParams, workStore, workUnitStore, varyParamsAccumulator);\n case 'request':\n return createRenderSearchParams(underlyingSearchParams, workStore, workUnitStore);\n default:\n workUnitStore;\n }\n }\n throwInvariantForMissingStore();\n}\nexport function createPrerenderSearchParamsForClientPage() {\n const workStore = workAsyncStorage.getStore();\n if (!workStore) {\n throw new InvariantError('Expected workStore to be initialized');\n }\n if (workStore.forceStatic) {\n // When using forceStatic we override all other logic and always just return an empty\n // dictionary object.\n return Promise.resolve({});\n }\n const workUnitStore = workUnitAsyncStorage.getStore();\n if (workUnitStore) {\n switch(workUnitStore.type){\n case 'prerender':\n case 'prerender-client':\n // We're prerendering in a mode that aborts (cacheComponents) and should stall\n // the promise to ensure the RSC side is considered dynamic\n return makeURLDataHangingPromise(workUnitStore.renderSignal, workStore.route, '`searchParams`', workUnitStore);\n case 'validation-client':\n throw new InvariantError('createPrerenderSearchParamsForClientPage should not be called in a client validation.');\n case 'prerender-runtime':\n throw new InvariantError('createPrerenderSearchParamsForClientPage should not be called in a runtime prerender.');\n case 'cache':\n case 'private-cache':\n case 'unstable-cache':\n throw new InvariantError('createPrerenderSearchParamsForClientPage should not be called in cache contexts.');\n case 'build-time-generator':\n throw new InvariantError(`createPrerenderSearchParamsForClientPage should not be called inside ${workUnitStore.functionName}.`);\n case 'prerender-legacy':\n case 'request':\n return Promise.resolve({});\n default:\n workUnitStore;\n }\n }\n throwInvariantForMissingStore();\n}\nfunction createStaticPrerenderSearchParams(workStore, prerenderStore) {\n if (workStore.forceStatic) {\n // When using forceStatic we override all other logic and always just return an empty\n // dictionary object.\n return Promise.resolve({});\n }\n switch(prerenderStore.type){\n case 'prerender':\n case 'prerender-client':\n {\n // We are in a cacheComponents (PPR or otherwise) prerender\n return makeHangingSearchParams(workStore, prerenderStore);\n }\n case 'prerender-legacy':\n // We are in a legacy static generation and need to interrupt the\n // prerender when search params are accessed.\n return makeErroringSearchParams(workStore, prerenderStore);\n default:\n return prerenderStore;\n }\n}\nfunction createRuntimePrerenderSearchParams(underlyingSearchParams, workStore, workUnitStore, varyParamsAccumulator) {\n const userspaceSearchParams = varyParamsAccumulator !== null ? createVaryingSearchParams(varyParamsAccumulator, underlyingSearchParams) : underlyingSearchParams;\n const searchParamsStage = RENDER_STAGES_BY_DATA_KIND.runtimeUrlData;\n const { stagedRendering } = workUnitStore;\n if (!stagedRendering) {\n // If there's no stage controller, we're in a prospective runtime prerender.\n // Make sure we don't unblock content that won't be reached in the final prerender.\n if (workUnitStore.finalStage < searchParamsStage) {\n return makeHangingSearchParams(workStore, workUnitStore);\n } else {\n return makeUntrackedSearchParams(userspaceSearchParams);\n }\n }\n // If search params don't resolve in this prerender, caches need to treat them as a hanging input.\n if (stagedRendering.finalStage && stagedRendering.finalStage < searchParamsStage) {\n return makeHangingSearchParams(workStore, workUnitStore);\n } else {\n return stagedRendering.delayUntilStage(searchParamsStage, 'searchParams', userspaceSearchParams);\n }\n}\nfunction createRenderSearchParams(underlyingSearchParams, workStore, requestStore) {\n const { asyncApiPromises, validationSamples } = requestStore;\n if (asyncApiPromises) {\n let userspaceSearchParams = underlyingSearchParams;\n if (validationSamples) {\n userspaceSearchParams = createSearchParamsProxyForInstantValidation(workStore, validationSamples, underlyingSearchParams);\n }\n return createStagedRenderSearchParams(workStore, asyncApiPromises, underlyingSearchParams, userspaceSearchParams);\n }\n // No staged rendering = no cacheComponents, or cacheComponents prod without cachedNavigations\n if (workStore.forceStatic) {\n // When using forceStatic we override all other logic and always just return an empty\n // dictionary object.\n return Promise.resolve({});\n }\n if (process.env.NODE_ENV === 'development') {\n // Semantically we only need the dev tracking when running in `next dev`\n // but since you would never use next dev with production NODE_ENV we use this\n // as a proxy so we can statically exclude this code from production builds.\n return makeUntrackedSearchParamsWithDevWarnings(underlyingSearchParams, workStore, requestStore);\n } else {\n return makeUntrackedSearchParams(underlyingSearchParams);\n }\n}\nfunction createStagedRenderSearchParams(workStore, asyncApiPromises, underlyingSearchParams, userspaceSearchParams) {\n const trigger = asyncApiPromises.sharedSearchParamsParent;\n if (process.env.NODE_ENV === 'development') {\n // We wrap each instance of searchParams in a `new Promise()`.\n // This is important when all awaits are in third party which would otherwise\n // track all the way to the internal params.\n const promise = new Promise((resolve, reject)=>{\n trigger.then(()=>resolve(userspaceSearchParams), reject);\n });\n // @ts-expect-error\n promise.displayName = 'searchParams';\n promise.catch(ignoreReject);\n return instrumentSearchParamsPromiseWithDevWarnings(underlyingSearchParams, promise, workStore);\n } else {\n return makePromiseFromTrigger(trigger, userspaceSearchParams);\n }\n}\nfunction createSearchParamsProxyForInstantValidation(workStore, validationSamples, underlyingSearchParams) {\n const { createExhaustiveSearchParamsProxy } = require('../app-render/instant-validation/instant-samples');\n const declaredKeys = new Set(Object.keys(validationSamples.searchParams ?? {}));\n return createExhaustiveSearchParamsProxy(underlyingSearchParams, declaredKeys, workStore.route);\n}\nconst CachedSearchParams = new WeakMap();\nconst CachedSearchParamsForUseCache = new WeakMap();\nfunction makeHangingSearchParams(workStore, prerenderStore) {\n const cachedSearchParams = CachedSearchParams.get(prerenderStore);\n if (cachedSearchParams) {\n return cachedSearchParams;\n }\n const promise = makeURLDataHangingPromise(prerenderStore.renderSignal, workStore.route, '`searchParams`', // Passing `null` for the store disables tracking of params usage.\n // We want accesses of chained promises to be tracked as well.\n // TODO: The custom tracking seems unnecessary, we should standardize it\n null);\n const trackSearchParamsAccessed = ()=>{\n // Record against the store that's active at access time: the promise is\n // created while the RSC payload is constructed, but typically accessed\n // later, during the render, under a different store.\n const workUnitStore = workUnitAsyncStorage.getStore();\n trackURLDataAccessed(workUnitStore ?? prerenderStore, '`searchParams`');\n };\n const proxyHandler = {\n get (target, prop, receiver) {\n if (Object.hasOwn(target, prop)) {\n // The promise has this property directly. we must return it.\n // We know it isn't a dynamic access because it can only be something\n // that was previously written to the promise and thus not an underlying searchParam value\n return ReflectAdapter.get(target, prop, receiver);\n }\n switch(prop){\n case 'then':\n case 'catch':\n case 'finally':\n {\n const originalMethod = ReflectAdapter.get(target, prop, receiver);\n return ({\n [prop]: (...args)=>{\n const expression = '`await searchParams`, `searchParams.then`, or similar';\n trackSearchParamsAccessed();\n annotateDynamicAccess(expression, prerenderStore);\n // Mirror `makeHangingParams`: when this never-resolving promise\n // is awaited while a `use cache` key is being encoded\n // (dynamicAccessAsyncStorage is set), abort so the surrounding\n // cache bails out to a dynamic hole instead of hanging on it.\n // Without this, a private cache that reads `searchParams` would\n // stall the App Shell cache-warming render. Re-wrapping the\n // result propagates the same behavior to promises derived via\n // `.then`/`.catch`/`.finally` that are then passed into a cache.\n abortOnDynamicAccess('runtime', new Error('Accessed `searchParams` during prerendering.'));\n return new Proxy(originalMethod.apply(target, args), proxyHandler);\n }\n })[prop];\n }\n case 'status':\n {\n const expression = '`use(searchParams)`, `searchParams.status`, or similar';\n trackSearchParamsAccessed();\n annotateDynamicAccess(expression, prerenderStore);\n return ReflectAdapter.get(target, prop, receiver);\n }\n default:\n {\n return ReflectAdapter.get(target, prop, receiver);\n }\n }\n }\n };\n const proxiedPromise = new Proxy(promise, proxyHandler);\n CachedSearchParams.set(prerenderStore, proxiedPromise);\n return proxiedPromise;\n}\nfunction makeErroringSearchParams(workStore, prerenderStore) {\n const cachedSearchParams = CachedSearchParams.get(workStore);\n if (cachedSearchParams) {\n return cachedSearchParams;\n }\n const underlyingSearchParams = {};\n // For search params we don't construct a ReactPromise because we want to interrupt\n // rendering on any property access that was not set from outside and so we only want\n // to have properties like value and status if React sets them.\n const promise = Promise.resolve(underlyingSearchParams);\n const proxiedPromise = new Proxy(promise, {\n get (target, prop, receiver) {\n if (Object.hasOwn(promise, prop)) {\n // The promise has this property directly. we must return it.\n // We know it isn't a dynamic access because it can only be something\n // that was previously written to the promise and thus not an underlying searchParam value\n return ReflectAdapter.get(target, prop, receiver);\n }\n if (typeof prop === 'string' && prop === 'then') {\n const expression = '`await searchParams`, `searchParams.then`, or similar';\n if (workStore.dynamicShouldError) {\n throwWithStaticGenerationBailoutErrorWithDynamicError(workStore.route, expression);\n } else {\n // Legacy Prerender\n throwToInterruptStaticGeneration(expression, workStore, prerenderStore);\n }\n }\n return ReflectAdapter.get(target, prop, receiver);\n }\n });\n CachedSearchParams.set(workStore, proxiedPromise);\n return proxiedPromise;\n}\n/**\n * This is a variation of `makeErroringSearchParams` that always throws an\n * error on access, because accessing searchParams inside of `\"use cache\"` is\n * not allowed.\n */ export function makeErroringSearchParamsForUseCache() {\n const workStore = workAsyncStorage.getStore();\n if (!workStore) {\n throw new InvariantError('Expected workStore to be initialized');\n }\n const cachedSearchParams = CachedSearchParamsForUseCache.get(workStore);\n if (cachedSearchParams) {\n return cachedSearchParams;\n }\n const promise = Promise.resolve({});\n const proxiedPromise = new Proxy(promise, {\n get: function get(target, prop, receiver) {\n if (Object.hasOwn(promise, prop)) {\n // The promise has this property directly. we must return it. We know it\n // isn't a dynamic access because it can only be something that was\n // previously written to the promise and thus not an underlying\n // searchParam value\n return ReflectAdapter.get(target, prop, receiver);\n }\n if (typeof prop === 'string' && (prop === 'then' || !wellKnownProperties.has(prop))) {\n throwForSearchParamsAccessInUseCache(workStore, get);\n }\n return ReflectAdapter.get(target, prop, receiver);\n }\n });\n CachedSearchParamsForUseCache.set(workStore, proxiedPromise);\n return proxiedPromise;\n}\nfunction makeUntrackedSearchParams(underlyingSearchParams) {\n const cachedSearchParams = CachedSearchParams.get(underlyingSearchParams);\n if (cachedSearchParams) {\n return cachedSearchParams;\n }\n const promise = Promise.resolve(underlyingSearchParams);\n CachedSearchParams.set(underlyingSearchParams, promise);\n return promise;\n}\nfunction makeUntrackedSearchParamsWithDevWarnings(underlyingSearchParams, workStore, requestStore) {\n const cachedSearchParams = CachedSearchParams.get(underlyingSearchParams);\n if (cachedSearchParams) {\n return cachedSearchParams;\n }\n const promise = makeUntrackedSearchParamsWithDevWarningsImpl(underlyingSearchParams, workStore, requestStore);\n CachedSearchParams.set(requestStore, promise);\n return promise;\n}\nfunction makeUntrackedSearchParamsWithDevWarningsImpl(underlyingSearchParams, workStore, requestStore) {\n const promiseInitialized = {\n current: false\n };\n const proxiedUnderlying = instrumentSearchParamsObjectWithDevWarnings(underlyingSearchParams, workStore, promiseInitialized);\n const promise = makeDevtoolsIOAwarePromise(proxiedUnderlying, requestStore, RENDER_STAGES_BY_DATA_KIND.runtimeUrlData);\n promise.then(()=>{\n promiseInitialized.current = true;\n }, // If we're in staged rendering, this promise will reject if the render\n // is aborted before it can reach the PrefetchRuntime stage.\n // In that case, we have to prevent an unhandled rejection from the promise\n // created by this `.then()` call.\n // This does not affect the `promiseInitialized` logic above,\n // because `proxiedUnderlying` will not be used to resolve the promise,\n // so there's no risk of any of its properties being accessed and triggering\n // an undesireable warning.\n ignoreReject);\n return instrumentSearchParamsPromiseWithDevWarnings(underlyingSearchParams, promise, workStore);\n}\nfunction ignoreReject() {}\nfunction instrumentSearchParamsObjectWithDevWarnings(underlyingSearchParams, workStore, promiseInitialized) {\n // We have an unfortunate sequence of events that requires this initialization logic. We want to instrument the underlying\n // searchParams object to detect if you are accessing values in dev. This is used for warnings and for things like the static prerender\n // indicator. However when we pass this proxy to our Promise.resolve() below the VM checks if the resolved value is a promise by looking\n // at the `.then` property. To our dynamic tracking logic this is indistinguishable from a `then` searchParam and so we would normally trigger\n // dynamic tracking. However we know that this .then is not real dynamic access, it's just how thenables resolve in sequence. So we introduce\n // this initialization concept so we omit the dynamic check until after we've constructed our resolved promise.\n return new Proxy(underlyingSearchParams, {\n get (target, prop, receiver) {\n if (typeof prop === 'string' && promiseInitialized.current) {\n if (workStore.dynamicShouldError) {\n const expression = describeStringPropertyAccess('searchParams', prop);\n throwWithStaticGenerationBailoutErrorWithDynamicError(workStore.route, expression);\n }\n }\n return ReflectAdapter.get(target, prop, receiver);\n },\n has (target, prop) {\n if (typeof prop === 'string') {\n if (workStore.dynamicShouldError) {\n const expression = describeHasCheckingStringProperty('searchParams', prop);\n throwWithStaticGenerationBailoutErrorWithDynamicError(workStore.route, expression);\n }\n }\n return Reflect.has(target, prop);\n },\n ownKeys (target) {\n if (workStore.dynamicShouldError) {\n const expression = '`{...searchParams}`, `Object.keys(searchParams)`, or similar';\n throwWithStaticGenerationBailoutErrorWithDynamicError(workStore.route, expression);\n }\n return Reflect.ownKeys(target);\n }\n });\n}\nfunction instrumentSearchParamsPromiseWithDevWarnings(underlyingSearchParams, promise, workStore) {\n // Track which properties we should warn for.\n const proxiedProperties = new Set();\n Object.keys(underlyingSearchParams).forEach((prop)=>{\n if (wellKnownProperties.has(prop)) {\n // These properties cannot be shadowed because they need to be the\n // true underlying value for Promises to work correctly at runtime\n } else {\n proxiedProperties.add(prop);\n }\n });\n return new Proxy(promise, {\n get (target, prop, receiver) {\n if (prop === 'then' && workStore.dynamicShouldError) {\n const expression = '`searchParams.then`';\n throwWithStaticGenerationBailoutErrorWithDynamicError(workStore.route, expression);\n }\n if (typeof prop === 'string') {\n if (!wellKnownProperties.has(prop) && (proxiedProperties.has(prop) || // We are accessing a property that doesn't exist on the promise nor\n // the underlying searchParams.\n Reflect.has(target, prop) === false)) {\n const expression = describeStringPropertyAccess('searchParams', prop);\n warnForSyncAccess(workStore.route, expression);\n }\n }\n return ReflectAdapter.get(target, prop, receiver);\n },\n set (target, prop, value, receiver) {\n if (typeof prop === 'string') {\n proxiedProperties.delete(prop);\n }\n return Reflect.set(target, prop, value, receiver);\n },\n has (target, prop) {\n if (typeof prop === 'string') {\n if (!wellKnownProperties.has(prop) && (proxiedProperties.has(prop) || // We are accessing a property that doesn't exist on the promise nor\n // the underlying searchParams.\n Reflect.has(target, prop) === false)) {\n const expression = describeHasCheckingStringProperty('searchParams', prop);\n warnForSyncAccess(workStore.route, expression);\n }\n }\n return Reflect.has(target, prop);\n },\n ownKeys (target) {\n const expression = '`Object.keys(searchParams)` or similar';\n warnForSyncAccess(workStore.route, expression);\n return Reflect.ownKeys(target);\n }\n });\n}\nconst warnForSyncAccess = createDedupedByCallsiteServerErrorLoggerDev(createSearchAccessError);\nfunction createSearchAccessError(route, expression) {\n const prefix = route ? `Route \"${route}\" ` : 'This route ';\n return new Error(`${prefix}used ${expression}. ` + `\\`searchParams\\` is a Promise and must be unwrapped with \\`await\\` or \\`React.use()\\` before accessing its properties. ` + `Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`);\n}\nfunction createClientSearchParamsInValidation(underlyingSearchParams, workStore, workUnitStore) {\n var _workUnitStore_validationSamples;\n const { createExhaustiveSearchParamsProxy } = require('../app-render/instant-validation/instant-samples');\n const declaredKeys = new Set(Object.keys(((_workUnitStore_validationSamples = workUnitStore.validationSamples) == null ? void 0 : _workUnitStore_validationSamples.searchParams) ?? {}));\n underlyingSearchParams = createExhaustiveSearchParamsProxy(underlyingSearchParams, declaredKeys, workStore.route);\n return Promise.resolve(underlyingSearchParams);\n}\n\n//# sourceMappingURL=search-params.js.map","export const METADATA_BOUNDARY_NAME = '__next_metadata_boundary__';\nexport const VIEWPORT_BOUNDARY_NAME = '__next_viewport_boundary__';\nexport const OUTLET_BOUNDARY_NAME = '__next_outlet_boundary__';\nexport const ROOT_LAYOUT_BOUNDARY_NAME = '__next_root_layout_boundary__';\n\n//# sourceMappingURL=boundary-constants.js.map","export const INSTANT_VALIDATION_BOUNDARY_NAME = '__next_instant_validation_boundary__';\nexport const INSTANT_SLOT_MARKER_PREFIX = '__next_instant_slot_';\nexport const INSTANT_SLOT_MARKER_SUFFIX = '__';\n\n//# sourceMappingURL=boundary-constants.js.map","export function allParamsAreRootParams(underlyingParams, rootParams) {\n for(const paramName in underlyingParams){\n if (!Object.hasOwn(rootParams, paramName)) {\n return false;\n }\n }\n return true;\n}\nexport function isEmptyParams(params) {\n for(const _paramKey in params){\n return false;\n }\n return true;\n}\nexport function hasFallbackRouteParams(underlyingParams, fallbackParams) {\n if (fallbackParams) {\n for(let key in underlyingParams){\n if (fallbackParams.has(key)) {\n return true;\n }\n }\n }\n return false;\n}\n\n//# sourceMappingURL=params-utils.js.map","export const HTTPAccessErrorStatus = {\n NOT_FOUND: 404,\n FORBIDDEN: 403,\n UNAUTHORIZED: 401\n};\nconst ALLOWED_CODES = new Set(Object.values(HTTPAccessErrorStatus));\nexport const HTTP_ERROR_FALLBACK_ERROR_CODE = 'NEXT_HTTP_ERROR_FALLBACK';\n/**\n * Checks an error to determine if it's an error generated by\n * the HTTP navigation APIs `notFound()`, `forbidden()` or `unauthorized()`.\n *\n * @param error the error that may reference a HTTP access error\n * @returns true if the error is a HTTP access error\n */ export function isHTTPAccessFallbackError(error) {\n if (typeof error !== 'object' || error === null || !('digest' in error) || typeof error.digest !== 'string') {\n return false;\n }\n const [prefix, httpStatus] = error.digest.split(';');\n return prefix === HTTP_ERROR_FALLBACK_ERROR_CODE && ALLOWED_CODES.has(Number(httpStatus));\n}\nexport function getAccessFallbackHTTPStatus(error) {\n const httpStatus = error.digest.split(';')[1];\n return Number(httpStatus);\n}\nexport function getAccessFallbackErrorTypeByStatus(status) {\n switch(status){\n case 401:\n return 'unauthorized';\n case 403:\n return 'forbidden';\n case 404:\n return 'not-found';\n default:\n return;\n }\n}\n\n//# sourceMappingURL=http-access-fallback.js.map","import * as React from 'react';\nconst errorRef = {\n current: null\n};\n// React.cache is currently only available in canary/experimental React channels.\nconst cache = typeof React.cache === 'function' ? React.cache : (fn)=>fn;\n// When Cache Components is enabled, we record these as errors so that they\n// are captured by the dev overlay as it's more critical to fix these\n// when enabled.\nconst logErrorOrWarn = process.env.__NEXT_CACHE_COMPONENTS ? console.error : console.warn;\n// We don't want to dedupe across requests.\n// The developer might've just attempted to fix the warning so we should warn again if it still happens.\nconst flushCurrentErrorIfNew = cache(// eslint-disable-next-line @typescript-eslint/no-unused-vars -- cache key\n(key)=>{\n try {\n logErrorOrWarn(errorRef.current);\n } finally{\n errorRef.current = null;\n }\n});\n/**\n * Creates a function that logs an error message that is deduped by the userland\n * callsite.\n * This requires no indirection between the call of this function and the userland\n * callsite i.e. there's only a single library frame above this.\n * Do not use on the Client where sourcemaps and ignore listing might be enabled.\n * Only use that for warnings need a fix independent of the callstack.\n *\n * @param getMessage\n * @returns\n */ export function createDedupedByCallsiteServerErrorLoggerDev(getMessage) {\n return function logDedupedError(...args) {\n const message = getMessage(...args);\n if (process.env.NODE_ENV !== 'production') {\n var _stack;\n const callStackFrames = (_stack = new Error().stack) == null ? void 0 : _stack.split('\\n');\n if (callStackFrames === undefined || callStackFrames.length < 4) {\n logErrorOrWarn(message);\n } else {\n // Error:\n // logDedupedError\n // asyncApiBeingAccessedSynchronously\n // \n // TODO: This breaks if sourcemaps with ignore lists are enabled.\n const key = callStackFrames[4];\n errorRef.current = message;\n flushCurrentErrorIfNew(key);\n }\n } else {\n logErrorOrWarn(message);\n }\n };\n}\n\n//# sourceMappingURL=create-deduped-by-callsite-server-error-logger.js.map","import { StaticGenBailoutError } from '../../client/components/static-generation-bailout';\nimport { actionAsyncStorage } from '../app-render/action-async-storage.external';\nimport { afterTaskAsyncStorage } from '../app-render/after-task-async-storage.external';\nimport { createSearchParamsInUseCacheError } from '../use-cache/use-cache-messages';\nexport function throwWithStaticGenerationBailoutErrorWithDynamicError(route, expression) {\n throw new StaticGenBailoutError(`Route ${route} with \\`dynamic = \"error\"\\` couldn't be rendered statically because it used ${expression}. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`);\n}\nexport function throwForSearchParamsAccessInUseCache(workStore, constructorOpt) {\n const error = createSearchParamsInUseCacheError(workStore.route);\n Error.captureStackTrace(error, constructorOpt);\n workStore.invalidDynamicUsageError ??= error;\n throw error;\n}\nexport function isRequestApiAllowedInCurrentPhase(workUnitStore) {\n switch(workUnitStore.phase){\n case 'action':\n case 'render':\n {\n // The request is still in progress. The API may be disallowed for other reasons,\n // but not because of phase.\n return true;\n }\n case 'after':\n {\n // The request has finished.\n // If we're in a Route Handler or a Server Action,\n // request APIs can be called everywhere, even in after().\n const actionStore = actionAsyncStorage.getStore();\n if (actionStore && (actionStore.isAppRoute || actionStore.isAction)) {\n return true;\n }\n const afterTaskStore = afterTaskAsyncStorage.getStore();\n if (afterTaskStore) {\n // We're in an `after` callback. Request APIs are callable if\n // the `after()` call happened in an action phase:\n // - in a Route Handler\n // - in a Server Action's body (but not the render after)\n //\n // TODO(after): Is it even possible to have `phase === 'action'` but no `actionStore`?\n // We should revisit this setup and simplify this.\n return afterTaskStore.rootTaskSpawnPhase === 'action';\n }\n // Otherwise, we must be in a page, in the `after` phase.\n // We don't allow calling request APIs here because we'd miss\n // them during prerendering and wouldn't know that the page is dynamic.\n return false;\n }\n }\n}\n\n//# sourceMappingURL=utils.js.map","import { InvariantError } from '../../shared/lib/invariant-error';\nimport { createPromiseWithResolvers } from '../../shared/lib/promise-with-resolvers';\nexport var RenderStage = /*#__PURE__*/ function(RenderStage) {\n RenderStage[RenderStage[\"Before\"] = 1] = \"Before\";\n //\n RenderStage[RenderStage[\"ShellStatic\"] = 10] = \"ShellStatic\";\n /** Discrimination-only stage: `prefetch()` in validation renders (static) */ RenderStage[RenderStage[\"PrefetchStatic_prefetchApi\"] = 11] = \"PrefetchStatic_prefetchApi\";\n RenderStage[RenderStage[\"PrefetchStatic\"] = 12] = \"PrefetchStatic\";\n RenderStage[RenderStage[\"NavigationStatic\"] = 13] = \"NavigationStatic\";\n RenderStage[RenderStage[\"Static\"] = 14] = \"Static\";\n //\n RenderStage[RenderStage[\"ShellRuntime\"] = 20] = \"ShellRuntime\";\n /** Discrimination-only stage: `prefetch()` in validation renders (runtime) */ RenderStage[RenderStage[\"PrefetchRuntime_prefetchApi\"] = 21] = \"PrefetchRuntime_prefetchApi\";\n RenderStage[RenderStage[\"PrefetchRuntime\"] = 22] = \"PrefetchRuntime\";\n RenderStage[RenderStage[\"NavigationRuntime\"] = 23] = \"NavigationRuntime\";\n //\n RenderStage[RenderStage[\"Dynamic\"] = 30] = \"Dynamic\";\n RenderStage[RenderStage[\"Abandoned\"] = 40] = \"Abandoned\";\n return RenderStage;\n}({});\nexport const RENDER_STAGE_ADVANCE_ORDER = [\n 10,\n 11,\n 12,\n 13,\n 14,\n 20,\n 21,\n 22,\n 23,\n 30\n];\nexport function getNextStage(stage) {\n return RENDER_STAGE_ADVANCE_ORDER[RENDER_STAGE_ADVANCE_ORDER.indexOf(stage) + 1];\n}\nexport function isAdvanceableRenderStage(stage) {\n return 1 < stage && stage <= 30;\n}\nexport var SyncIOMode = /*#__PURE__*/ function(SyncIOMode) {\n /** Sync IO does not error in any stage. */ SyncIOMode[SyncIOMode[\"Untracked\"] = 1] = \"Untracked\";\n /** Before `partialPrefetching`: Sync IO errors in static stages, and is allowed otherwise. */ SyncIOMode[SyncIOMode[\"AllowedInRuntimeOrDynamic\"] = 2] = \"AllowedInRuntimeOrDynamic\";\n /** After `partialPrefetching`: Sync IO errors in all stages other than dynamic. */ SyncIOMode[SyncIOMode[\"AllowedInDynamic\"] = 3] = \"AllowedInDynamic\";\n return SyncIOMode;\n}({});\nexport class StagedRenderingController {\n constructor({ abortSignal, abandonController, syncIO, finalStage }){\n this.currentStage = 1;\n this.syncInterruptReason = null;\n this.triggers = createAdvanceableStageTriggers();\n this.abortSignal = abortSignal;\n this.abandonController = abandonController;\n this.syncIOMode = syncIO;\n this.finalStage = finalStage;\n if (abortSignal) {\n abortSignal.addEventListener('abort', ()=>{\n // Reject all stage promises that haven't already been resolved.\n // `cancelStageTrigger` is a noop if the trigger already resolved.\n const { reason } = abortSignal;\n for (const trigger of Object.values(this.triggers)){\n cancelStageTrigger(trigger, reason);\n }\n }, {\n once: true\n });\n }\n if (abandonController) {\n abandonController.signal.addEventListener('abort', ()=>{\n this.abandonRender();\n }, {\n once: true\n });\n }\n }\n /**\n * Schedules a callback that will execute synchronously when the controller is advanced\n * to `stage` or past it, before any promises for that stage are resolved.\n * If the controller is already past `stage`, the callback is executed immediately.\n * */ onStage(stage, callback) {\n addSyncTriggerListener(this.triggers[stage], callback);\n }\n shouldTrackSyncInterrupt() {\n const { syncIOMode, currentStage } = this;\n switch(syncIOMode){\n case 1:\n {\n return false;\n }\n case 2:\n {\n // Legacy: track Sync IO only in static stages.\n // Do not track it before the render, or in runtime/dynamic stages.\n return currentStage > 1 && currentStage <= 14;\n }\n case 3:\n {\n // Track sync IO in all cacheable stages.\n // This means all stages except:\n // - before the render\n // - in the dynamic stage\n return currentStage > 1 && currentStage < 30;\n }\n }\n }\n /** Note: only call this if `shouldTrackSyncInterrupt()` returned true */ syncInterruptCurrentStageWithReason(reason) {\n const { currentStage } = this;\n if (currentStage === 1 || currentStage === 30 || currentStage === 40) {\n // Not interruptible. Defensive noop.\n return;\n }\n // If Sync IO occurs during an abandonable render, we trigger the abandon.\n // The abandon listener will call abandonRender which advances through\n // stages to let caches fill before marking as Abandoned.\n if (this.abandonController) {\n this.abandonController.abort();\n return;\n }\n if (this.abortSignal) {\n // If this is an abortable render, we capture the interruption reason and stop advancing.\n // We don't release any more promises.\n // The caller is expected to abort the signal.\n this.syncInterruptReason = reason;\n this.currentStage = 40;\n return;\n }\n // If we're in a non-abandonable & non-abortable render,\n // we need to advance to the Dynamic stage and capture the interruption reason.\n // (in dev, this will be the restarted render)\n this.syncInterruptReason = reason;\n this.advanceStage(30);\n }\n getSyncInterruptReason() {\n return this.syncInterruptReason;\n }\n getStageEndTime(stage) {\n return this.triggers[getNextStage(stage)].triggeredAt ?? Infinity;\n }\n abandonRender() {\n // In staged rendering, only the initial render is abandonable.\n // We can abandon the initial render if\n // 1. We notice a cache miss, and need to wait for caches to fill\n // 2. A sync IO error occurs, and the render should be interrupted\n // (this might be a lazy intitialization of a module,\n // so we still want to restart in this case and see if it still occurs)\n // In either case, we'll be doing another render after this one,\n // so we only want to unblock the next stage, not Dynamic, because\n // unblocking the dynamic stage would likely lead to wasted (uncached) IO.\n const { currentStage } = this;\n if (currentStage === 1) {\n throw new InvariantError(\"A render that hasn't started yet cannot be abandoned\");\n }\n if (currentStage === 30 || currentStage === 40) {\n // We shouldn't ever trigger an abandon in these. Defensive noop.\n return;\n }\n // Resolve all stages after the current one, up to runtime (excluding dynamic)\n const nextStageIx = RENDER_STAGE_ADVANCE_ORDER.indexOf(currentStage) + 1;\n const dynamicStageIx = RENDER_STAGE_ADVANCE_ORDER.indexOf(30);\n for(let i = nextStageIx; i < dynamicStageIx; i++){\n this.resolveStage(RENDER_STAGE_ADVANCE_ORDER[i]);\n }\n this.currentStage = 40;\n }\n advanceStage(targetStage) {\n if (this.finalStage !== null && targetStage > this.finalStage) {\n throw new InvariantError(`Attempted to advance to stage ${RenderStage[targetStage]} but the render is limited to ${RenderStage[this.finalStage]}`);\n }\n const { currentStage } = this;\n if (currentStage === 30 || currentStage === 40) {\n // Terminal stages, nowhere left to advance.\n return;\n }\n // If we're already at the target stage or beyond, do nothing.\n if (targetStage <= currentStage) {\n return;\n }\n this.currentStage = targetStage;\n // Resolve all stages between the current stage and the target.\n const nextStageIx = currentStage === 1 ? 0 : RENDER_STAGE_ADVANCE_ORDER.indexOf(currentStage) + 1;\n const targetStageIx = RENDER_STAGE_ADVANCE_ORDER.indexOf(targetStage);\n for(let i = nextStageIx; i <= targetStageIx; i++){\n this.resolveStage(RENDER_STAGE_ADVANCE_ORDER[i]);\n }\n }\n resolveStage(stage) {\n fireStageTrigger(this.triggers[stage]);\n }\n getStagePromise(stage) {\n return this.triggers[stage].promise;\n }\n waitForStage(stage) {\n return this.getStagePromise(stage);\n }\n delayUntilStage(stage, displayName, resolvedValue) {\n const stagePromise = this.getStagePromise(stage);\n const promise = process.env.NODE_ENV === 'development' ? makeDevtoolsIOPromiseFromIOTrigger(stagePromise, displayName, resolvedValue) : stagePromise.then(()=>resolvedValue);\n // Analogously to `makeDynamicHangingPromise`, we might reject this promise if the signal is invoked.\n // (e.g. in the case where we don't want want the render to proceed to the dynamic stage and abort it).\n // We shouldn't consider this an unhandled rejection, so we attach a noop catch handler here to suppress this warning.\n if (this.abortSignal) {\n promise.catch(ignoreReject);\n }\n return promise;\n }\n}\nfunction createAdvanceableStageTriggers() {\n const triggers = {};\n for (const stage of RENDER_STAGE_ADVANCE_ORDER){\n triggers[stage] = createStageTrigger();\n }\n return triggers;\n}\nfunction ignoreReject() {}\n// TODO(restart-on-cache-miss): the layering of `delayUntilStage`,\n// `makeDevtoolsIOPromiseFromIOTrigger` and and `makeDevtoolsIOAwarePromise`\n// is confusing, we should clean it up.\nfunction makeDevtoolsIOPromiseFromIOTrigger(ioTrigger, displayName, resolvedValue) {\n // If we create a `new Promise` and give it a displayName\n // (with no userspace code above us in the stack)\n // React Devtools will use it as the IO cause when determining \"suspended by\".\n // In particular, it should shadow any inner IO that resolved/rejected the promise\n // (in case of staged rendering, this will be the `setTimeout` that triggers the relevant stage)\n const promise = new Promise((resolve, reject)=>{\n ioTrigger.then(resolve.bind(null, resolvedValue), reject);\n });\n if (displayName !== undefined) {\n // @ts-expect-error\n promise.displayName = displayName;\n }\n return promise;\n}\nfunction addSyncTriggerListener(trigger, listener) {\n if (trigger.state === 'pending') {\n trigger._listeners.push(listener);\n } else {\n listener();\n }\n}\nfunction createStageTrigger() {\n const { promise, resolve, reject } = createPromiseWithResolvers();\n return {\n state: 'pending',\n triggeredAt: null,\n promise,\n _listeners: [],\n _resolvePromise: resolve,\n _rejectPromise: reject\n };\n}\nfunction fireStageTrigger(trigger) {\n if (trigger.state !== 'pending') {\n return;\n }\n trigger.state = 'triggered';\n trigger.triggeredAt = performance.now() + performance.timeOrigin;\n try {\n const { _listeners: listeners } = trigger;\n for(let i = 0; i < listeners.length; i++){\n listeners[i]();\n }\n listeners.length = 0;\n } finally{\n trigger._resolvePromise();\n }\n}\nfunction cancelStageTrigger(trigger, reason) {\n if (trigger.state !== 'pending') {\n return;\n }\n trigger.state = 'cancelled';\n // we didn't trigger, so don't save `triggeredAt`.\n // We're not gonna fire the listeners, we may as well free them.\n trigger._listeners.length = 0;\n // Suppress unhandled rejection warnings for promises that no one is awaiting.\n trigger.promise.catch(ignoreReject);\n trigger._rejectPromise(reason);\n}\n\n//# sourceMappingURL=staged-rendering.js.map","import { workAsyncStorage } from '../app-render/work-async-storage.external';\nimport { createVaryingParams, getMetadataVaryParamsAccumulator } from '../app-render/vary-params';\nimport { ReflectAdapter } from '../web/spec-extension/adapters/reflect';\nimport { workUnitAsyncStorage, throwInvariantForMissingStore } from '../app-render/work-unit-async-storage.external';\nimport { InvariantError } from '../../shared/lib/invariant-error';\nimport { describeStringPropertyAccess, wellKnownProperties } from '../../shared/lib/utils/reflect-utils';\nimport { makeDevtoolsIOAwarePromise, makeFallbackParamsHangingPromise, makePromiseFromTrigger, trackFallbackParamsAccessed, RENDER_STAGES_BY_DATA_KIND, trackPromiseUsed, trackIncompatibleShellContent } from '../dynamic-rendering-utils';\nimport { createDedupedByCallsiteServerErrorLoggerDev } from '../create-deduped-by-callsite-server-error-logger';\nimport { abortOnDynamicAccess } from '../app-render/dynamic-access-async-storage.external';\nimport { isEmptyParams, hasFallbackRouteParams, allParamsAreRootParams } from '../lib/params-utils';\nexport function createParamsFromClient(underlyingParams) {\n const workStore = workAsyncStorage.getStore();\n if (!workStore) {\n throw new InvariantError('Expected workStore to be initialized');\n }\n const workUnitStore = workUnitAsyncStorage.getStore();\n if (workUnitStore) {\n switch(workUnitStore.type){\n case 'prerender':\n case 'prerender-client':\n case 'prerender-legacy':\n // Client params don't need additional vary tracking because by the\n // time they reach the client, the access would have already been\n // tracked by the server.\n const varyParamsAccumulator = null;\n return createStaticPrerenderParams(underlyingParams, null, workStore, workUnitStore, varyParamsAccumulator);\n case 'cache':\n case 'private-cache':\n case 'unstable-cache':\n throw new InvariantError('createParamsFromClient should not be called in cache contexts.');\n case 'prerender-runtime':\n throw new InvariantError('createParamsFromClient should not be called in a runtime prerender.');\n case 'build-time-generator':\n throw new InvariantError(`createParamsFromClient should not be called inside ${workUnitStore.functionName}.`);\n case 'validation-client':\n {\n if (workUnitStore.validationSamples) {\n return createClientParamsInInstantValidation(underlyingParams, workStore, workUnitStore.validationSamples);\n }\n return makeUntrackedParams(underlyingParams);\n }\n case 'request':\n {\n if (workUnitStore.validationSamples) {\n return createClientParamsInInstantValidation(underlyingParams, workStore, workUnitStore.validationSamples);\n }\n if (process.env.NODE_ENV === 'development') {\n const stagedFallbackParams = workUnitStore.stagedFallbackParams;\n const userspaceParams = underlyingParams;\n return createRenderParamsInDev(underlyingParams, userspaceParams, stagedFallbackParams, workStore, workUnitStore);\n } else {\n return createRenderParamsInProd(underlyingParams);\n }\n }\n default:\n workUnitStore;\n }\n }\n throwInvariantForMissingStore();\n}\nexport function createServerParamsForMetadata(underlyingParams, optionalCatchAllParamName) {\n const metadataVaryParamsAccumulator = getMetadataVaryParamsAccumulator();\n return createServerParamsForServerSegment(underlyingParams, optionalCatchAllParamName, metadataVaryParamsAccumulator);\n}\n// routes always runs in RSC context so it is equivalent to a Server Page Component\nexport function createServerParamsForRoute(underlyingParams, varyParamsAccumulator = null) {\n const workStore = workAsyncStorage.getStore();\n if (!workStore) {\n throw new InvariantError('Expected workStore to be initialized');\n }\n const workUnitStore = workUnitAsyncStorage.getStore();\n if (workUnitStore) {\n switch(workUnitStore.type){\n case 'prerender':\n case 'prerender-legacy':\n return createStaticPrerenderParams(underlyingParams, null, workStore, workUnitStore, varyParamsAccumulator);\n case 'prerender-client':\n case 'validation-client':\n throw new InvariantError('createServerParamsForRoute should not be called in client contexts.');\n case 'cache':\n case 'private-cache':\n case 'unstable-cache':\n throw new InvariantError('createServerParamsForRoute should not be called in cache contexts.');\n case 'build-time-generator':\n throw new InvariantError(`createServerParamsForRoute should not be called inside ${workUnitStore.functionName}.`);\n case 'prerender-runtime':\n {\n throw new InvariantError('createServerParamsForRoute should not be called in runtime prerenders.');\n }\n case 'request':\n if (process.env.NODE_ENV === 'development') {\n const stagedFallbackParams = workUnitStore.stagedFallbackParams;\n const userspaceParams = underlyingParams;\n return createRenderParamsInDev(underlyingParams, userspaceParams, stagedFallbackParams, workStore, workUnitStore);\n } else {\n return createRenderParamsInProd(underlyingParams);\n }\n default:\n workUnitStore;\n }\n }\n throwInvariantForMissingStore();\n}\nexport function createServerParamsForServerSegment(underlyingParams, optionalCatchAllParamName, varyParamsAccumulator) {\n const workStore = workAsyncStorage.getStore();\n if (!workStore) {\n throw new InvariantError('Expected workStore to be initialized');\n }\n const workUnitStore = workUnitAsyncStorage.getStore();\n if (workUnitStore) {\n switch(workUnitStore.type){\n case 'prerender':\n case 'prerender-client':\n case 'prerender-legacy':\n return createStaticPrerenderParams(underlyingParams, optionalCatchAllParamName, workStore, workUnitStore, varyParamsAccumulator);\n case 'validation-client':\n throw new InvariantError('createServerParamsForServerSegment should not be called in client contexts.');\n case 'cache':\n case 'private-cache':\n case 'unstable-cache':\n throw new InvariantError('createServerParamsForServerSegment should not be called in cache contexts.');\n case 'build-time-generator':\n throw new InvariantError(`createServerParamsForServerSegment should not be called inside ${workUnitStore.functionName}.`);\n case 'prerender-runtime':\n return createRuntimePrerenderParams(underlyingParams, optionalCatchAllParamName, workStore, workUnitStore, varyParamsAccumulator);\n case 'request':\n {\n return createRenderParamsForPage(workStore, workUnitStore, underlyingParams, optionalCatchAllParamName, varyParamsAccumulator);\n }\n default:\n workUnitStore;\n }\n }\n throwInvariantForMissingStore();\n}\nexport function createPrerenderParamsForClientSegment(underlyingParams) {\n const workStore = workAsyncStorage.getStore();\n if (!workStore) {\n throw new InvariantError('Missing workStore in createPrerenderParamsForClientSegment');\n }\n const workUnitStore = workUnitAsyncStorage.getStore();\n if (workUnitStore) {\n switch(workUnitStore.type){\n case 'prerender':\n case 'prerender-client':\n const fallbackParams = workUnitStore.fallbackRouteParams;\n if (fallbackParams) {\n for(let key in underlyingParams){\n if (fallbackParams.has(key)) {\n // This params object has one or more fallback params, so we need\n // to consider the awaiting of this params object \"dynamic\". Since\n // we are in cacheComponents mode we encode this as a promise that never\n // resolves.\n return makeFallbackParamsHangingPromise(workUnitStore.renderSignal, workStore.route, '`params`', workUnitStore);\n }\n }\n }\n break;\n case 'validation-client':\n throw new InvariantError('createPrerenderParamsForClientSegment should not be called in validation contexts.');\n break;\n case 'cache':\n case 'private-cache':\n case 'unstable-cache':\n throw new InvariantError('createPrerenderParamsForClientSegment should not be called in cache contexts.');\n case 'build-time-generator':\n throw new InvariantError(`createPrerenderParamsForClientSegment should not be called inside ${workUnitStore.functionName}.`);\n case 'prerender-runtime':\n case 'prerender-legacy':\n case 'request':\n break;\n default:\n workUnitStore;\n }\n }\n // We're prerendering in a mode that does not abort. We resolve the promise without\n // any tracking because we're just transporting a value from server to client where the tracking\n // will be applied.\n return Promise.resolve(underlyingParams);\n}\nfunction createStaticPrerenderParams(underlyingParams, optionalCatchAllParamName, workStore, prerenderStore, varyParamsAccumulator) {\n switch(prerenderStore.type){\n case 'prerender':\n {\n let userspaceParams = underlyingParams;\n if (varyParamsAccumulator !== null) {\n userspaceParams = createVaryingParams(varyParamsAccumulator, underlyingParams, optionalCatchAllParamName);\n }\n if (isEmptyParams(underlyingParams)) {\n // This route has no params.\n return makeUntrackedParams(userspaceParams);\n }\n const fallbackParams = prerenderStore.fallbackRouteParams;\n if (hasFallbackRouteParams(underlyingParams, fallbackParams)) {\n // This params object has one or more fallback params, so we need\n // to consider the awaiting of this params object dynamic.\n return makeHangingParams(underlyingParams, workStore, prerenderStore);\n }\n // All params are static.\n const { stagedRendering } = prerenderStore;\n if (stagedRendering) {\n // Even if all params are static, we need to exclude them from the app shell\n // by delaying them to the static stage. However, root params are allowed in shells,\n // so if all the params are root params, they can be included as well.\n if (!allParamsAreRootParams(underlyingParams, prerenderStore.rootParams)) {\n const staticParamsStage = RENDER_STAGES_BY_DATA_KIND.staticUrlData.static;\n return stagedRendering.delayUntilStage(staticParamsStage, 'params', userspaceParams);\n }\n }\n return makeUntrackedParams(userspaceParams);\n }\n case 'prerender-client':\n {\n const fallbackParams = prerenderStore.fallbackRouteParams;\n if (fallbackParams) {\n for(const key in underlyingParams){\n if (fallbackParams.has(key)) {\n // This params object has one or more fallback params, so we need\n // to consider the awaiting of this params object \"dynamic\". Since\n // we are in cacheComponents mode we encode this as a promise that never\n // resolves.\n return makeHangingParams(underlyingParams, workStore, prerenderStore);\n }\n }\n }\n break;\n }\n case 'prerender-legacy':\n break;\n default:\n prerenderStore;\n }\n let userspaceParams = underlyingParams;\n if (varyParamsAccumulator !== null) {\n userspaceParams = createVaryingParams(varyParamsAccumulator, underlyingParams, optionalCatchAllParamName);\n }\n return makeUntrackedParams(userspaceParams);\n}\nfunction createRuntimePrerenderParams(underlyingParams, optionalCatchAllParamName, workStore, workUnitStore, varyParamsAccumulator) {\n let userspaceParams = underlyingParams;\n if (varyParamsAccumulator !== null) {\n userspaceParams = createVaryingParams(varyParamsAccumulator, underlyingParams, optionalCatchAllParamName);\n }\n if (isEmptyParams(underlyingParams)) {\n // This route has no params.\n return makeUntrackedParams(userspaceParams);\n }\n // Root params are allowed in shells, so we allow them to resolve without a delay.\n if (allParamsAreRootParams(underlyingParams, workUnitStore.rootParams)) {\n return makeUntrackedParams(userspaceParams);\n }\n // Non-root params are URL data, and we need to recover a param-less session shell,\n // so we delay all params until the PrefetchRuntime stage (even if they're static)\n const paramsStage = RENDER_STAGES_BY_DATA_KIND.runtimeUrlData;\n const { stagedRendering } = workUnitStore;\n if (!stagedRendering) {\n // If there's no stage controller, we're in a prospective runtime prerender.\n // Make sure we don't unblock content that won't be reached in the final prerender.\n if (workUnitStore.finalStage < paramsStage) {\n return makeHangingParams(underlyingParams, workStore, workUnitStore);\n } else {\n return makeUntrackedParams(userspaceParams);\n }\n }\n // If params don't resolve in this prerender, caches need to treat them as a hanging input.\n if (stagedRendering.finalStage && stagedRendering.finalStage < paramsStage) {\n return makeHangingParams(underlyingParams, workStore, workUnitStore);\n } else {\n return stagedRendering.delayUntilStage(paramsStage, 'params', userspaceParams);\n }\n}\nfunction createRenderParamsForPage(workStore, workUnitStore, underlyingParams, optionalCatchAllParamName, varyParamsAccumulator) {\n const { stagedRendering, asyncApiPromises, validationSamples } = workUnitStore;\n // Distinguish the params that we expose to userspace (potentially wrapped in proxies)\n // and the underlying object containing params values. We do this because wrappers\n // like `instrumentParamsPromiseWithDevWarnings` need to be able to get the known param names\n // without triggering other wrapper proxies.\n let userspaceParams = underlyingParams;\n if (validationSamples) {\n userspaceParams = createServerParamsProxyForInstantValidation(underlyingParams, workStore, validationSamples);\n }\n if (varyParamsAccumulator) {\n userspaceParams = createVaryingParams(varyParamsAccumulator, userspaceParams, optionalCatchAllParamName);\n }\n if (stagedRendering && asyncApiPromises) {\n return createStagedRenderParams(workStore, workUnitStore, stagedRendering, asyncApiPromises, underlyingParams, userspaceParams);\n }\n // No staged rendering = no cacheComponents, or cacheComponents prod without cachedNavigations\n if (process.env.NODE_ENV === 'development') {\n const stagedFallbackParams = workUnitStore.stagedFallbackParams;\n return createRenderParamsInDev(underlyingParams, userspaceParams, stagedFallbackParams, workStore, workUnitStore);\n } else {\n return createRenderParamsInProd(userspaceParams);\n }\n}\nfunction createStagedRenderParams(workStore, workUnitStore, stagedRendering, asyncApiPromises, underlyingParams, userspaceParams) {\n const promise = createStagedRenderParamsImpl(workUnitStore, stagedRendering, asyncApiPromises, underlyingParams, userspaceParams);\n if (process.env.NODE_ENV === 'development') {\n return instrumentParamsPromiseWithDevWarnings(underlyingParams, promise, workStore);\n } else {\n return promise;\n }\n}\nfunction createStagedRenderParamsImpl(workUnitStore, stagedRendering, asyncApiPromises, /** The actual param values, without any instrumentation */ underlyingParams, /** The params object to return to userspace, possibly wrapped in a proxy */ userspaceParams) {\n // If the route has no params, they should resolve immediately.\n if (isEmptyParams(underlyingParams)) {\n return makeUntrackedParams(userspaceParams);\n }\n // If we have fallback params, then they should always resolve in the runtime link data stage.\n // We do this indirectly via the shared params parent for better debug info.\n if (hasFallbackRouteParams(underlyingParams, workUnitStore.stagedFallbackParams)) {\n return createParamsPromiseFromTrigger(asyncApiPromises.sharedParamsParent, userspaceParams);\n }\n // All params are static.\n // If we're rendering with shells, even static params must be delayed to exclude them from the shell.\n // However, root params are allowed in shells, so if all the params are root params, they can be included as well.\n if (!allParamsAreRootParams(underlyingParams, workUnitStore.rootParams)) {\n // For a dynamic request we generally want to recover a static shell,\n // so static params can resolve in the static stage, because session\n // shells are handled with a separate render.\n // However, in dev we might need to recover a session shell for instant validation.\n // This is indicated by `needsRuntimeShell`.\n const staticParamsStage = RENDER_STAGES_BY_DATA_KIND.staticUrlData[workUnitStore.needsRuntimeShell ? 'runtime' : 'static'];\n const promise = stagedRendering.delayUntilStage(staticParamsStage, 'params', userspaceParams);\n if (process.env.__NEXT_DEV_SERVER) {\n // If static params are accessed, we can recover a static shell or a session shell, but not both.\n return trackPromiseUsed(promise, trackIncompatibleShellContent.bind(null, workUnitStore, 'static `params`'));\n } else {\n return promise;\n }\n }\n return makeUntrackedParams(userspaceParams);\n}\nfunction createParamsPromiseFromTrigger(trigger, userspaceParams) {\n if (process.env.NODE_ENV === 'development') {\n // We wrap each instance of params in a `new Promise()`, which lets us show each\n // await a different set of values. This is important when all awaits\n // are in third party which would otherwise track all the way to the\n // internal params.\n const promise = new Promise((resolve, reject)=>{\n trigger.then(()=>resolve(userspaceParams), reject);\n });\n promise.catch(noop);\n // @ts-expect-error\n promise.displayName = 'params';\n return promise;\n } else {\n return makePromiseFromTrigger(trigger, userspaceParams);\n }\n}\nfunction noop() {}\nfunction createServerParamsProxyForInstantValidation(underlyingParams, workStore, validationSamples) {\n const { createExhaustiveParamsProxy } = require('../app-render/instant-validation/instant-samples');\n const declaredParams = new Set(Object.keys(validationSamples.params ?? {}));\n return createExhaustiveParamsProxy(underlyingParams, declaredParams, workStore.route);\n}\nfunction createClientParamsInInstantValidation(underlyingParams, workStore, validationSamples) {\n const { createExhaustiveParamsProxy } = require('../app-render/instant-validation/instant-samples');\n const declaredParams = new Set(Object.keys((validationSamples == null ? void 0 : validationSamples.params) ?? {}));\n const proxiedUnderlying = createExhaustiveParamsProxy(underlyingParams, declaredParams, workStore.route);\n return Promise.resolve(proxiedUnderlying);\n}\nfunction createRenderParamsInProd(userspaceParams) {\n return makeUntrackedParams(userspaceParams);\n}\nfunction createRenderParamsInDev(underlyingParams, userpaceParams, stagedFallbackParams, workStore, requestStore) {\n return makeDynamicallyTrackedParamsWithDevWarnings(underlyingParams, userpaceParams, hasFallbackRouteParams(underlyingParams, stagedFallbackParams), workStore, requestStore);\n}\nconst CachedParams = new WeakMap();\nconst fallbackParamsProxyHandler = {\n get: function get(target, prop, receiver) {\n if (prop === 'then' || prop === 'catch' || prop === 'finally') {\n const originalMethod = ReflectAdapter.get(target, prop, receiver);\n return ({\n [prop]: (...args)=>{\n // Record against the store that's active at access time: the\n // hanging promise is cached by params object across prerender\n // stores, so the store that created it may not be the one that's\n // rendering when it's finally awaited.\n const workUnitStore = workUnitAsyncStorage.getStore();\n if (workUnitStore !== undefined) {\n trackFallbackParamsAccessed(workUnitStore, '`params`');\n }\n abortOnDynamicAccess('fallback-params', new Error(`Accessed fallback \\`params\\` during prerendering.`));\n return new Proxy(originalMethod.apply(target, args), fallbackParamsProxyHandler);\n }\n })[prop];\n }\n return ReflectAdapter.get(target, prop, receiver);\n }\n};\nfunction makeHangingParams(underlyingParams, workStore, prerenderStore) {\n const cachedParams = CachedParams.get(underlyingParams);\n if (cachedParams) {\n return cachedParams;\n }\n const promise = new Proxy(makeFallbackParamsHangingPromise(prerenderStore.renderSignal, workStore.route, '`params`', // Passing `null` for the store disables tracking of params usage.\n // Caches need the additional logic from `fallbackParamsProxyHandler`,\n // so we track params usage there instead.\n null), fallbackParamsProxyHandler);\n CachedParams.set(underlyingParams, promise);\n return promise;\n}\nfunction makeUntrackedParams(underlyingParams) {\n const cachedParams = CachedParams.get(underlyingParams);\n if (cachedParams) {\n return cachedParams;\n }\n const promise = Promise.resolve(underlyingParams);\n CachedParams.set(underlyingParams, promise);\n return promise;\n}\nfunction makeDynamicallyTrackedParamsWithDevWarnings(underlyingParams, userspaceParams, hasFallbackParams, workStore, requestStore) {\n const cachedParams = CachedParams.get(underlyingParams);\n if (cachedParams) {\n return cachedParams;\n }\n // We don't use makeResolvedReactPromise here because params\n // supports copying with spread and we don't want to unnecessarily\n // instrument the promise with spreadable properties of ReactPromise.\n const promise = hasFallbackParams ? makeDevtoolsIOAwarePromise(userspaceParams, requestStore, RENDER_STAGES_BY_DATA_KIND.runtimeUrlData) : Promise.resolve(userspaceParams);\n const proxiedPromise = instrumentParamsPromiseWithDevWarnings(underlyingParams, promise, workStore);\n CachedParams.set(underlyingParams, proxiedPromise);\n return proxiedPromise;\n}\nfunction instrumentParamsPromiseWithDevWarnings(underlyingParams, promise, workStore) {\n // Track which properties we should warn for.\n const proxiedProperties = new Set();\n Object.keys(underlyingParams).forEach((prop)=>{\n if (wellKnownProperties.has(prop)) {\n // These properties cannot be shadowed because they need to be the\n // true underlying value for Promises to work correctly at runtime\n } else {\n proxiedProperties.add(prop);\n }\n });\n return new Proxy(promise, {\n get (target, prop, receiver) {\n if (typeof prop === 'string') {\n if (// We are accessing a property that was proxied to the promise instance\n proxiedProperties.has(prop)) {\n const expression = describeStringPropertyAccess('params', prop);\n warnForSyncAccess(workStore.route, expression);\n }\n }\n return ReflectAdapter.get(target, prop, receiver);\n },\n set (target, prop, value, receiver) {\n if (typeof prop === 'string') {\n proxiedProperties.delete(prop);\n }\n return ReflectAdapter.set(target, prop, value, receiver);\n },\n ownKeys (target) {\n const expression = '`...params` or similar expression';\n warnForSyncAccess(workStore.route, expression);\n return Reflect.ownKeys(target);\n }\n });\n}\nconst warnForSyncAccess = createDedupedByCallsiteServerErrorLoggerDev(createParamsAccessError);\nfunction createParamsAccessError(route, expression) {\n const prefix = route ? `Route \"${route}\" ` : 'This route ';\n return new Error(`${prefix}used ${expression}. ` + `\\`params\\` is a Promise and must be unwrapped with \\`await\\` or \\`React.use()\\` before accessing its properties. ` + `Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`);\n}\n\n//# sourceMappingURL=params.js.map","/**\n * Vary Params Decoding\n *\n * This module is shared between server and client.\n */ import { readFulfilledValue } from '../rsc-transport';\n/**\n * The vary path id for search params. Path params are identified by their\n * name. Search params don't have a fixed set of names, so any access to them\n * is reported under this one id, and the segment is keyed by the whole search\n * string (see createVaryingSearchParams in app-render/vary-params.ts).\n *\n * It's a number so it can't collide with a param name. `app/[?]/page.tsx` is a\n * valid route.\n */ export const SEARCH_PARAMS_VARY_ID = 0;\n/**\n * Synchronously drains a vary params `AsyncIterable`, adding each yielded name\n * to `target`.\n *\n * By the time this runs (on the client, or in collectSegmentData), the Flight\n * stream has been fully buffered, so every yielded value is already\n * materialized and can be read without awaiting: each iterator result is a\n * Flight chunk whose settled state `readFulfilledValue` reads off the\n * thenable's status.\n *\n * We add \"every param yielded up to the point the stream suspends\": a\n * normally-closed iterable drains fully, while one left hanging (a sync-I/O\n * abort, or a `close()` whose row hasn't flushed yet) drains to the prefix\n * already in the stream. Both are correct — a segment's param accesses are all\n * flushed as they happen during its render, so the prefix is exactly the set\n * the response depends on. We therefore never need the terminating `done` row\n * to be present; it's only stream hygiene.\n */ function drainVaryParams(iterable, target) {\n const iterator = iterable[Symbol.asyncIterator]();\n while(true){\n const step = readFulfilledValue(iterator.next(), undefined);\n if (step === undefined || step.done) {\n // Either the stream suspended here — everything yielded before this\n // point has already been added — or the iterable finished cleanly.\n return;\n }\n target.add(step.value);\n }\n}\n/**\n * Converts a segment's (or the head's) vary params off the wire, at the\n * decode boundary, unioning in the response-level root params.\n *\n * Root params are emitted once at the top level rather than folded into every\n * segment by the server, so every decode recombines them here — building the\n * merge into the decode means a caller can't forget it, and it's done in a\n * single pass with no intermediate set.\n *\n * Returns null (\"unknown\", key on all params) unless BOTH iterables are\n * present. A null/absent `iterable` means the segment's own tracking wasn't\n * enabled (e.g. not a prerender). A null/absent `rootIterable` means root\n * params weren't tracked — and since a segment's own iterable never includes\n * root params (those are accessed in layouts above it), narrowing on the\n * segment set alone would wrongly assume no root params were accessed. In\n * either case we stay conservative.\n *\n * When both are present each is authoritative even when it drains to the empty\n * set — a tracked segment that read no params, with no root params accessed,\n * can be shared across all param values.\n */ export function decodeVaryParams(iterable, rootIterable) {\n if (iterable === null || iterable === undefined || rootIterable === null || rootIterable === undefined) {\n return null;\n }\n const total = new Set();\n drainVaryParams(iterable, total);\n drainVaryParams(rootIterable, total);\n return createVaryParams(total);\n}\n/**\n * Wraps an already-known set as a vary params source. Shaped like a settled\n * Flight promise so readVaryParams can read it off the thenable's status.\n */ export function createVaryParams(total) {\n // TODO: Don't need to use a native promise. Just inline a thenable that\n // immediately calls its listener.\n const settled = Promise.resolve(total);\n settled.status = 'fulfilled';\n settled.value = total;\n return settled;\n}\n/**\n * Reads the set from a vary params source. Null when it is not available;\n * the reader assumes every param varies.\n */ export function readVaryParams(varyParams) {\n return readFulfilledValue(varyParams, null);\n}\n\n//# sourceMappingURL=vary-params-decoding.js.map","import { parseLoaderTree } from '../../../shared/lib/router/utils/parse-loader-tree';\nimport { getLayoutOrPageModule } from '../../lib/app-dir-module';\n/**\n * The outcome of resolving a route's `ensureStatic` config.\n * The ordering is intentional -- higher values indicate a\n * more constrained route that forces more request kinds to be static.\n *\n * A constraint also implies all its predecessors:\n * - `Prefetch` implies `Shell`, i.e. if prefetches are static, so are shells.\n * - `Navigation` implies `Prefetch` and `Shell`, i.e. if the whole page is static,\n * then so are its shells and prefetches.\n *\n * Note that this flattens `\"auto\"` and `false` into `None`.\n * This is because rendering code does not need to distinguish them --\n * both indicate that the route follows normal Partial Prefetching semantics\n * and does not force anything to be static.\n * However, it is only correct to collapse them into one *after* resolving the\n * config for the entire route, because they have different interactions with\n * configs from other segments on the same route.\n */ export var EnsureStaticLevel = /*#__PURE__*/ function(EnsureStaticLevel) {\n /** The route follows standard Partial Prefetching semantics. */ EnsureStaticLevel[EnsureStaticLevel[\"None\"] = 0] = \"None\";\n /** The route requires that app shells must be statically prerendered. */ EnsureStaticLevel[EnsureStaticLevel[\"Shell\"] = 1] = \"Shell\";\n /** The route requires that app shells and prefetches must be statically prerendered. */ EnsureStaticLevel[EnsureStaticLevel[\"Prefetch\"] = 2] = \"Prefetch\";\n /** The route requires that app shells, prefetches, and the whole page must be statically prerendered. */ EnsureStaticLevel[EnsureStaticLevel[\"Navigation\"] = 3] = \"Navigation\";\n return EnsureStaticLevel;\n}({});\nfunction getEnsureStaticLevel(ensureStatic) {\n switch(ensureStatic){\n case 'auto':\n case false:\n {\n return 0;\n }\n case 'shell':\n {\n return 1;\n }\n case 'prefetch':\n {\n return 2;\n }\n case 'navigation':\n {\n return 3;\n }\n }\n}\nexport async function resolveEnsureStaticLevel(tree, partialPrefetching) {\n return getEnsureStaticLevel(await resolveEnsureStaticConfig(tree, partialPrefetching));\n}\nexport async function resolveEnsureStaticConfig(tree, partialPrefetching) {\n let { config, filePath } = await resolveEnsureStaticConfigImpl(tree);\n if (!partialPrefetching) {\n // If Partial Prefetching is not enabled for this route, we only support\n // a subset of `ensureStatic` values.\n // (We error in `getAppPageStaticInfo` if `ensureStatic` is used without enabling\n // Cache Components, so we don't have to assert that here)\n switch(config){\n case 'auto':\n {\n // Default to the equivalent of Cache Components prefetching behavior.\n config = 'prefetch';\n break;\n }\n case false:\n case 'shell':\n {\n // Not meaningful in Cache Components without Partial Prefetching\n const originalConfig = config;\n config = 'prefetch';\n console.warn(`${formatEnsureStaticExport(originalConfig)} has no effect unless the route is using Partial Prefetching.` + `\\n (from: ${filePath})`);\n break;\n }\n case 'prefetch':\n break;\n case 'navigation':\n break;\n default:\n config;\n }\n }\n if (config === false) {\n // `false` and \"auto\" are equivalent once resolved.\n return 'auto';\n } else {\n return config;\n }\n}\nasync function resolveEnsureStaticConfigImpl(tree) {\n const { mod: layoutOrPageMod, filePath } = await getLayoutOrPageModule(tree);\n const config = getEnsureStaticConfigForModule(layoutOrPageMod);\n const parentResult = {\n config,\n filePath: filePath ?? null\n };\n // Walk the slots if any and validate that they don't have incompatible configs\n // with each other. If compatible, pick the most constrained value from the slots.\n let slotsResult = null;\n let slotResultKey = null;\n const { parallelRoutes } = parseLoaderTree(tree);\n for(const parallelRouteKey in parallelRoutes){\n const parallelRoute = parallelRoutes[parallelRouteKey];\n const childResult = await resolveEnsureStaticConfigImpl(parallelRoute);\n if (!slotsResult) {\n slotsResult = childResult;\n slotResultKey = parallelRouteKey;\n } else {\n // Check if the child is compatible with the current result for the slots.\n switch(compareEnsureStatic(childResult.config, slotsResult.config)){\n case 2:\n {\n // 'auto' is compatible with anything, but if the current result is 'auto' and the new one isn't,\n // we want to use the more specific result.\n if (slotsResult.config === 'auto' && childResult.config !== 'auto') {\n slotsResult = childResult;\n slotResultKey = parallelRouteKey;\n }\n break;\n }\n case 4:\n case 1:\n case 3:\n {\n throw new Error(`Parallel slots cannot have incompatible \\`ensureStatic\\`.` + `\\n ${formatParallelSlot(slotResultKey)}: ` + `\\n ${formatEnsureStaticExport(slotsResult.config)}` + `\\n (from: ${slotsResult.filePath})` + `\\n` + `\\n ${formatParallelSlot(parallelRouteKey)}: ` + `\\n ${formatEnsureStaticExport(childResult.config)}` + `\\n (from: ${childResult.filePath})` + `\\n` + `\\n Possible fixes:` + `\\n - Remove one of the \\`ensureStatic\\` exports` + `\\n - Change one of the \\`ensureStatic\\` exports to match the other`);\n }\n }\n }\n }\n // Child segments can override the config from the parent with a more constrained value,\n // but they cannot have a less constrained value.\n if (!slotsResult) {\n return parentResult;\n } else {\n const comparison = compareEnsureStatic(slotsResult.config, parentResult.config);\n switch(comparison){\n case 2:\n {\n // 'auto' is compatible with anything, but if the parent result is 'auto' and the slots one isn't,\n // we want to use the more constrained result.\n if (parentResult.config === 'auto' && slotsResult.config !== 'auto') {\n return slotsResult;\n } else {\n return parentResult;\n }\n }\n case 3:\n {\n return slotsResult;\n }\n case 1:\n case 4:\n {\n throw new Error((comparison === 1 ? `A child segment cannot override a parent segment with a less-constrained \\`ensureStatic\\`.` : `A child segment cannot override a parent segment with an incompatible \\`ensureStatic\\`.`) + `\\n Parent has: ` + `\\n ${formatEnsureStaticExport(parentResult.config)}` + `\\n (from: ${parentResult.filePath})` + `\\n Child has: ` + `\\n ${formatEnsureStaticExport(slotsResult.config)}` + `\\n (from: ${slotsResult.filePath})` + `\\n` + `\\n Possible fixes:` + `\\n - Remove one of the \\`ensureStatic\\` exports` + `\\n - Change one of the \\`ensureStatic\\` exports to match the other`);\n }\n }\n }\n}\nfunction formatParallelSlot(slot) {\n return slot === 'children' ? slot : `@${slot}`;\n}\nfunction formatEnsureStaticExport(config) {\n return `export const ensureStatic = ${JSON.stringify(config)}`;\n}\nvar Comparison = /*#__PURE__*/ function(Comparison) {\n Comparison[Comparison[\"LessConstrained\"] = 1] = \"LessConstrained\";\n Comparison[Comparison[\"Compatible\"] = 2] = \"Compatible\";\n Comparison[Comparison[\"MoreConstrained\"] = 3] = \"MoreConstrained\";\n Comparison[Comparison[\"Incompatible\"] = 4] = \"Incompatible\";\n return Comparison;\n}(Comparison || {});\nconst ENSURE_STATIC_ORDER = [\n 'shell',\n 'prefetch',\n 'navigation'\n];\nfunction compareEnsureStatic(left, right) {\n // 'auto' is compatible with everything.\n if (left === 'auto' || right === 'auto') {\n return 2;\n }\n // `false` is compatible with false.\n if (left === false && right === false) {\n return 2;\n }\n // If only one of the values is `false` (we know it's not both), it's incompatible.\n if (left === false || right === false) {\n return 4;\n }\n const leftSort = ENSURE_STATIC_ORDER.indexOf(left);\n const rightSort = ENSURE_STATIC_ORDER.indexOf(right);\n return leftSort < rightSort ? 1 : leftSort === rightSort ? 2 : 3;\n}\nfunction getEnsureStaticConfigForModule(mod) {\n return (mod ? mod.ensureStatic : undefined) ?? 'auto';\n}\n\n//# sourceMappingURL=ensure-static.js.map","import { createPromiseWithResolvers } from '../shared/lib/promise-with-resolvers';\n/**\n * A wrapper for a function that will only allow one call to the function to\n * execute at a time.\n */ export class Batcher {\n constructor(cacheKeyFn, /**\n * A function that will be called to schedule the wrapped function to be\n * executed. This defaults to a function that will execute the function\n * immediately.\n */ schedulerFn = (fn)=>fn()){\n this.cacheKeyFn = cacheKeyFn;\n this.schedulerFn = schedulerFn;\n this.pending = new Map();\n }\n static create(options) {\n return new Batcher(options == null ? void 0 : options.cacheKeyFn, options == null ? void 0 : options.schedulerFn);\n }\n /**\n * Wraps a function in a promise that will be resolved or rejected only once\n * for a given key. This will allow multiple calls to the function to be\n * made, but only one will be executed at a time. The result of the first\n * call will be returned to all callers.\n *\n * @param key the key to use for the cache\n * @param fn the function to wrap\n * @returns a promise that resolves to the result of the function\n */ async batch(key, fn) {\n const cacheKey = this.cacheKeyFn ? await this.cacheKeyFn(key) : key;\n if (cacheKey === null) {\n return fn({\n resolve: (value)=>Promise.resolve(value),\n key\n });\n }\n const pending = this.pending.get(cacheKey);\n if (pending) return pending;\n const { promise, resolve, reject } = createPromiseWithResolvers();\n this.pending.set(cacheKey, promise);\n this.schedulerFn(async ()=>{\n try {\n const result = await fn({\n resolve,\n key\n });\n // Resolving a promise multiple times is a no-op, so we can safely\n // resolve all pending promises with the same result.\n resolve(result);\n } catch (err) {\n reject(err);\n } finally{\n this.pending.delete(cacheKey);\n }\n });\n return promise;\n }\n}\n\n//# sourceMappingURL=batcher.js.map","import { IncrementalCacheKind } from './types';\nimport { InvariantError } from '../../shared/lib/invariant-error';\nimport { Batcher } from '../../lib/batcher';\nimport { LRUCache } from '../lib/lru-cache';\nimport { warnOnce } from '../../build/output/log';\nimport { scheduleOnNextTick } from '../../lib/scheduler';\nimport { fromResponseCacheEntry, routeKindToIncrementalCacheKind, toResponseCacheEntry } from './utils';\n/**\n * Parses an environment variable as a positive integer, returning the fallback\n * if the value is missing, not a number, or not positive.\n */ function parsePositiveInt(envValue, fallback) {\n if (!envValue) return fallback;\n const parsed = parseInt(envValue, 10);\n return Number.isFinite(parsed) && parsed > 0 ? parsed : fallback;\n}\n/**\n * Default TTL (in milliseconds) for minimal mode response cache entries.\n * Used for cache hit validation as a fallback for providers that don't\n * send the x-invocation-id header yet.\n *\n * 10 seconds chosen because:\n * - Long enough to dedupe rapid successive requests (e.g., page + data)\n * - Short enough to not serve stale data across unrelated requests\n *\n * Can be configured via `NEXT_PRIVATE_RESPONSE_CACHE_TTL` environment variable.\n */ const DEFAULT_TTL_MS = parsePositiveInt(process.env.NEXT_PRIVATE_RESPONSE_CACHE_TTL, 10000);\n/**\n * Default maximum number of entries in the response cache.\n * Can be configured via `NEXT_PRIVATE_RESPONSE_CACHE_MAX_SIZE` environment variable.\n */ const DEFAULT_MAX_SIZE = parsePositiveInt(process.env.NEXT_PRIVATE_RESPONSE_CACHE_MAX_SIZE, 150);\n/**\n * Separator used in compound cache keys to join pathname and invocationID.\n * Using null byte (\\0) since it cannot appear in valid URL paths or UUIDs.\n */ const KEY_SEPARATOR = '\\0';\n/**\n * Sentinel value used for TTL-based cache entries (when invocationID is undefined).\n * Chosen to be a clearly reserved marker for internal cache keys.\n */ const TTL_SENTINEL = '__ttl_sentinel__';\n/**\n * Creates a compound cache key from pathname and invocationID.\n */ function createCacheKey(pathname, invocationID) {\n return `${pathname}${KEY_SEPARATOR}${invocationID ?? TTL_SENTINEL}`;\n}\n/**\n * Extracts the invocationID from a compound cache key.\n * Returns undefined if the key used TTL_SENTINEL.\n */ function extractInvocationID(compoundKey) {\n const separatorIndex = compoundKey.lastIndexOf(KEY_SEPARATOR);\n if (separatorIndex === -1) return undefined;\n const invocationID = compoundKey.slice(separatorIndex + 1);\n return invocationID === TTL_SENTINEL ? undefined : invocationID;\n}\nexport * from './types';\nexport default class ResponseCache {\n constructor({ minimalMode, route, maxSize = DEFAULT_MAX_SIZE, ttl = DEFAULT_TTL_MS }){\n // The get and revalidate batchers share pending renders across invocation\n // IDs, including failures. Invocation IDs scope reuse of completed results in\n // the LRU below.\n this.getBatcher = Batcher.create({\n // Ensure on-demand revalidate doesn't block normal requests, it should be\n // safe to run an on-demand revalidate for the same key as a normal request.\n cacheKeyFn: ({ key, isOnDemandRevalidate })=>`${key}-${isOnDemandRevalidate ? '1' : '0'}`,\n // We wait to do any async work until after we've added our promise to\n // `pendingResponses` to ensure that any any other calls will reuse the\n // same promise until we've fully finished our work.\n schedulerFn: scheduleOnNextTick\n });\n this.revalidateBatcher = Batcher.create({\n // We wait to do any async work until after we've added our promise to\n // `pendingResponses` to ensure that any any other calls will reuse the\n // same promise until we've fully finished our work.\n schedulerFn: scheduleOnNextTick\n });\n /**\n * Set of invocation IDs that have had cache entries evicted.\n * Used to detect when the cache size may be too small.\n * Bounded to prevent memory growth.\n */ this.evictedInvocationIDs = new Set();\n if (!route) {\n throw new InvariantError('Response cache requires a source route');\n }\n this.route = route;\n this.minimal_mode = minimalMode;\n this.maxSize = maxSize;\n this.ttl = ttl;\n // Create the LRU cache with eviction tracking\n this.cache = new LRUCache(maxSize, undefined, (compoundKey)=>{\n const invocationID = extractInvocationID(compoundKey);\n if (invocationID) {\n // Bound to 100 entries to prevent unbounded memory growth.\n // FIFO eviction is acceptable here because:\n // 1. Invocations are short-lived (single request lifecycle), so older\n // invocations are unlikely to still be active after 100 newer ones\n // 2. This warning mechanism is best-effort for developer guidance—\n // missing occasional eviction warnings doesn't affect correctness\n // 3. If a long-running invocation is somehow evicted and then has\n // another cache entry evicted, it will simply be re-added\n if (this.evictedInvocationIDs.size >= 100) {\n const first = this.evictedInvocationIDs.values().next().value;\n if (first) this.evictedInvocationIDs.delete(first);\n }\n this.evictedInvocationIDs.add(invocationID);\n }\n });\n }\n /**\n * Gets the response cache entry for the given key.\n *\n * @param key - The key to get the response cache entry for.\n * @param responseGenerator - The response generator to use to generate the response cache entry.\n * @param context - The context for the get request.\n * @returns The response cache entry.\n */ async get(key, responseGenerator, context) {\n // If there is no key for the cache, we can't possibly look this up in the\n // cache so just return the result of the response generator.\n if (!key) {\n return responseGenerator({\n hasResolved: false,\n previousCacheEntry: null\n });\n }\n // Check minimal mode cache before doing any other work.\n if (this.minimal_mode) {\n const cacheKey = createCacheKey(key, context.invocationID);\n const cachedItem = this.cache.get(cacheKey);\n if (cachedItem) {\n // With invocationID: exact match found - always a hit\n // With TTL mode: must check expiration\n if (context.invocationID !== undefined) {\n return cachedItem.entry !== null && 'error' in cachedItem.entry ? cachedItem.entry : toResponseCacheEntry(cachedItem.entry);\n }\n // TTL entries can be reused by unrelated requests. Exclude failures so\n // those requests can retry instead of receiving a cached error.\n const now = Date.now();\n if ((cachedItem.entry === null || !('error' in cachedItem.entry)) && cachedItem.expiresAt > now) {\n return toResponseCacheEntry(cachedItem.entry);\n }\n // TTL expired - clean up\n this.cache.remove(cacheKey);\n }\n // Warn if this invocation had entries evicted - indicates cache may be too small.\n if (context.invocationID && this.evictedInvocationIDs.has(context.invocationID)) {\n warnOnce(`Response cache entry was evicted for invocation ${context.invocationID}. ` + `Consider increasing NEXT_PRIVATE_RESPONSE_CACHE_MAX_SIZE (current: ${this.maxSize}).`);\n }\n }\n const { incrementalCache, isOnDemandRevalidate = false, isFallback = false, isRoutePPREnabled = false, isPrefetch = false, waitUntil, invocationID } = context;\n const response = await this.getBatcher.batch({\n key,\n isOnDemandRevalidate\n }, ({ resolve })=>{\n const promise = this.handleGet(key, responseGenerator, {\n incrementalCache,\n isOnDemandRevalidate,\n isFallback,\n isRoutePPREnabled,\n isPrefetch,\n invocationID\n }, resolve);\n // We need to ensure background revalidates are passed to waitUntil.\n if (waitUntil) waitUntil(promise);\n return promise;\n });\n // In minimal mode, each caller with an invocation ID stores the shared\n // failure under its own ID for reuse by related requests. Callers without\n // an invocation ID receive the failure but do not store it in the LRU.\n if (this.minimal_mode && response && ('error' in response ? invocationID !== undefined : response.cacheControl)) {\n const cacheKey = createCacheKey(key, invocationID);\n this.cache.set(cacheKey, {\n entry: response,\n expiresAt: Date.now() + this.ttl\n });\n }\n return response !== null && 'error' in response ? response : toResponseCacheEntry(response);\n }\n /**\n * Handles the get request for the response cache.\n *\n * @param key - The key to get the response cache entry for.\n * @param responseGenerator - The response generator to use to generate the response cache entry.\n * @param context - The context for the get request.\n * @param resolve - The resolve function to use to resolve the response cache entry.\n * @returns The response cache entry.\n */ async handleGet(key, responseGenerator, context, resolve) {\n let previousIncrementalCacheEntry = null;\n let resolved = false;\n try {\n // Get the previous cache entry if not in minimal mode\n previousIncrementalCacheEntry = !this.minimal_mode ? await context.incrementalCache.get(key, this.getCacheContext(context.isRoutePPREnabled, context.isFallback)) : null;\n // `isStale === -1` signals that the entry is past its `expire` (either\n // via an expired tag or, with `cacheLife({ expire })`, past the route's\n // expire time in the prerender manifest). In that case we must NOT\n // early-resolve with the stale value — instead we fall through to a\n // blocking revalidation so the response returned to the user is fresh.\n if (previousIncrementalCacheEntry && !context.isOnDemandRevalidate && previousIncrementalCacheEntry.isStale !== -1) {\n resolve(previousIncrementalCacheEntry);\n resolved = true;\n if (!previousIncrementalCacheEntry.isStale || context.isPrefetch) {\n // The cached value is still valid, so we don't need to update it yet.\n return previousIncrementalCacheEntry;\n }\n }\n // Revalidate the cache entry.\n //\n // A prefetch request that missed must run its own response generator\n // rather than joining an in-flight revalidation through the batcher. A\n // background revalidation may be regenerating the concrete (non-fallback)\n // entry for this route — e.g. an ISR fallback-shell upgrade scheduled by\n // an earlier prefetch sub-request. Joining it would serve that concrete\n // result to the prefetch instead of the fallback shell, and which segment\n // wins would depend purely on request timing. Running the generator\n // directly lets every prefetch segment take the same fallback-shell path,\n // independent of any concurrent background upgrade.\n const incrementalResponseCacheEntry = context.isPrefetch && previousIncrementalCacheEntry === null ? await this.handleRevalidate(key, context.incrementalCache, context.isRoutePPREnabled, context.isFallback, responseGenerator, previousIncrementalCacheEntry, resolved) : await this.revalidate(key, context.incrementalCache, context.isRoutePPREnabled, context.isFallback, responseGenerator, previousIncrementalCacheEntry, resolved);\n if (incrementalResponseCacheEntry !== null && 'error' in incrementalResponseCacheEntry && resolved) {\n // The caller already received the stale entry. Report the background\n // failure here, as the catch below does for a thrown error.\n console.error(incrementalResponseCacheEntry.error);\n return null;\n }\n // Handle null response\n if (!incrementalResponseCacheEntry) {\n // Remove the cache item if it was set so we don't use it again.\n if (this.minimal_mode) {\n const cacheKey = createCacheKey(key, context.invocationID);\n this.cache.remove(cacheKey);\n }\n return null;\n }\n // Resolve for on-demand revalidation or if not already resolved\n if (context.isOnDemandRevalidate && !resolved) {\n return incrementalResponseCacheEntry;\n }\n return incrementalResponseCacheEntry;\n } catch (err) {\n // If we've already resolved the cache entry, we can't reject as we\n // already resolved the cache entry so log the error here.\n if (resolved) {\n console.error(err);\n return null;\n }\n throw err;\n }\n }\n /**\n * Revalidates the cache entry for the given key.\n *\n * @param key - The key to revalidate the cache entry for.\n * @param incrementalCache - The incremental cache to use to revalidate the cache entry.\n * @param isRoutePPREnabled - Whether the route is PPR enabled.\n * @param isFallback - Whether the route is a fallback.\n * @param responseGenerator - The response generator to use to generate the response cache entry.\n * @param previousIncrementalCacheEntry - The previous cache entry to use to revalidate the cache entry.\n * @param hasResolved - Whether the response has been resolved.\n * @param waitUntil - Optional function to register background work.\n * @param invocationID - The invocation ID for cache key scoping.\n * @returns The revalidated cache entry.\n */ async revalidate(key, incrementalCache, isRoutePPREnabled, isFallback, responseGenerator, previousIncrementalCacheEntry, hasResolved, waitUntil) {\n return this.revalidateBatcher.batch(key, ()=>{\n const promise = this.handleRevalidate(key, incrementalCache, isRoutePPREnabled, isFallback, responseGenerator, previousIncrementalCacheEntry, hasResolved);\n // We need to ensure background revalidates are passed to waitUntil.\n if (waitUntil) waitUntil(promise);\n return promise;\n });\n }\n async handleRevalidate(key, incrementalCache, isRoutePPREnabled, isFallback, responseGenerator, previousIncrementalCacheEntry, hasResolved) {\n let failure;\n try {\n // Generate the response cache entry using the response generator.\n const responseCacheEntry = await responseGenerator({\n hasResolved,\n previousCacheEntry: previousIncrementalCacheEntry,\n isRevalidating: true\n });\n if (!responseCacheEntry) {\n return null;\n }\n if ('error' in responseCacheEntry) {\n failure = responseCacheEntry;\n } else {\n // Convert the response cache entry to an incremental response cache entry.\n const incrementalResponseCacheEntry = await fromResponseCacheEntry({\n ...responseCacheEntry,\n isMiss: !previousIncrementalCacheEntry\n });\n // We want to persist the result only if it has a cache control value\n // defined. The minimal mode LRU write is handled in get() so that every\n // caller, including batched invocations, populates the cache.\n if (incrementalResponseCacheEntry.cacheControl && !this.minimal_mode) {\n await incrementalCache.set(key, incrementalResponseCacheEntry.value, {\n ...this.getCacheContext(isRoutePPREnabled, isFallback),\n cacheControl: incrementalResponseCacheEntry.cacheControl\n });\n }\n return incrementalResponseCacheEntry;\n }\n } catch (err) {\n await this.retainPreviousCacheEntry(key, incrementalCache, isRoutePPREnabled, isFallback, previousIncrementalCacheEntry);\n throw err;\n }\n await this.retainPreviousCacheEntry(key, incrementalCache, isRoutePPREnabled, isFallback, previousIncrementalCacheEntry);\n return failure;\n }\n // Retain the previous successful value and delay retries after revalidation\n // fails.\n async retainPreviousCacheEntry(key, incrementalCache, isRoutePPREnabled, isFallback, previousIncrementalCacheEntry) {\n if (previousIncrementalCacheEntry == null ? void 0 : previousIncrementalCacheEntry.cacheControl) {\n const revalidate = Math.min(Math.max(previousIncrementalCacheEntry.cacheControl.revalidate || 3, 3), 30);\n const expire = previousIncrementalCacheEntry.cacheControl.expire === undefined ? undefined : Math.max(revalidate + 3, previousIncrementalCacheEntry.cacheControl.expire);\n await incrementalCache.set(key, previousIncrementalCacheEntry.value, {\n ...this.getCacheContext(isRoutePPREnabled, isFallback),\n cacheControl: {\n revalidate: revalidate,\n expire: expire\n }\n });\n }\n }\n getCacheContext(isRoutePPREnabled, isFallback) {\n if (this.route === 'image') {\n return {\n kind: IncrementalCacheKind.IMAGE,\n isFallback: false\n };\n }\n const kind = routeKindToIncrementalCacheKind(this.route.kind);\n if (kind === IncrementalCacheKind.IMAGE) {\n throw new InvariantError('Images must use the image response cache');\n }\n return {\n route: this.route,\n kind,\n isRoutePPREnabled,\n isFallback\n };\n }\n}\n\n//# sourceMappingURL=index.js.map","import { CachedRouteKind, IncrementalCacheKind } from './types';\nimport RenderResult from '../render-result';\nimport { RouteKind } from '../route-kind';\nimport { HTML_CONTENT_TYPE_HEADER } from '../../lib/constants';\nexport async function fromResponseCacheEntry(cacheEntry) {\n var _cacheEntry_value, _cacheEntry_value1;\n return {\n ...cacheEntry,\n value: ((_cacheEntry_value = cacheEntry.value) == null ? void 0 : _cacheEntry_value.kind) === CachedRouteKind.PAGES ? {\n kind: CachedRouteKind.PAGES,\n html: await cacheEntry.value.html.toUnchunkedString(true),\n pageData: cacheEntry.value.pageData,\n headers: cacheEntry.value.headers,\n status: cacheEntry.value.status\n } : ((_cacheEntry_value1 = cacheEntry.value) == null ? void 0 : _cacheEntry_value1.kind) === CachedRouteKind.APP_PAGE ? {\n kind: CachedRouteKind.APP_PAGE,\n html: await cacheEntry.value.html.toUnchunkedString(true),\n postponed: cacheEntry.value.postponed,\n rscData: cacheEntry.value.rscData,\n headers: cacheEntry.value.headers,\n status: cacheEntry.value.status,\n segmentData: cacheEntry.value.segmentData\n } : cacheEntry.value\n };\n}\nexport async function toResponseCacheEntry(response) {\n var _response_value, _response_value1;\n if (!response) return null;\n return {\n isMiss: response.isMiss,\n isStale: response.isStale,\n cacheControl: response.cacheControl,\n isFallback: response.isFallback,\n value: ((_response_value = response.value) == null ? void 0 : _response_value.kind) === CachedRouteKind.PAGES ? {\n kind: CachedRouteKind.PAGES,\n html: RenderResult.fromStatic(response.value.html, HTML_CONTENT_TYPE_HEADER),\n pageData: response.value.pageData,\n headers: response.value.headers,\n status: response.value.status\n } : ((_response_value1 = response.value) == null ? void 0 : _response_value1.kind) === CachedRouteKind.APP_PAGE ? {\n kind: CachedRouteKind.APP_PAGE,\n html: RenderResult.fromStatic(response.value.html, HTML_CONTENT_TYPE_HEADER),\n rscData: response.value.rscData,\n headers: response.value.headers,\n status: response.value.status,\n postponed: response.value.postponed,\n segmentData: response.value.segmentData\n } : response.value\n };\n}\nexport function routeKindToIncrementalCacheKind(routeKind) {\n switch(routeKind){\n case RouteKind.PAGES:\n return IncrementalCacheKind.PAGES;\n case RouteKind.APP_PAGE:\n return IncrementalCacheKind.APP_PAGE;\n case RouteKind.IMAGE:\n return IncrementalCacheKind.IMAGE;\n case RouteKind.APP_ROUTE:\n return IncrementalCacheKind.APP_ROUTE;\n case RouteKind.PAGES_API:\n // Pages Router API routes are not cached in the incremental cache.\n throw new Error(`Unexpected route kind ${routeKind}`);\n default:\n return routeKind;\n }\n}\n\n//# sourceMappingURL=utils.js.map","import type { ResponseCacheOwner } from '../lib/route-cache-key'\nimport type { OutgoingHttpHeaders } from 'http'\nimport type RenderResult from '../render-result'\nimport type { CacheControl, Revalidate } from '../lib/cache-control'\nimport type { RouteKind } from '../route-kind'\nimport type { PrerenderFailure } from '../render-result'\n\nexport interface ResponseCacheBase {\n get(\n key: string | null,\n responseGenerator: ResponseGenerator,\n context: {\n isOnDemandRevalidate?: boolean\n isPrefetch?: boolean\n incrementalCache: IncrementalCache\n /**\n * This is a hint to the cache to help it determine what kind of route\n * this is so it knows where to look up the cache entry from. If not\n * provided it will test the filesystem to check.\n */\n routeKind: RouteKind\n\n /**\n * True if this is a fallback request.\n */\n isFallback?: boolean\n\n /**\n * True if the route is enabled for PPR.\n */\n isRoutePPREnabled?: boolean\n }\n ): Promise\n}\n\n// The server components HMR cache might store other data as well in the future,\n// at which point this should be refactored to a discriminated union type.\nexport interface ServerComponentsHmrCache {\n get(key: string): CachedFetchData | undefined\n set(key: string, data: CachedFetchData): void\n}\n\nexport type CachedFetchData = {\n headers: Record\n body: string\n url: string\n status?: number\n}\n\nexport const enum CachedRouteKind {\n APP_PAGE = 'APP_PAGE',\n APP_ROUTE = 'APP_ROUTE',\n PAGES = 'PAGES',\n FETCH = 'FETCH',\n REDIRECT = 'REDIRECT',\n IMAGE = 'IMAGE',\n}\n\nexport interface CachedFetchValue {\n kind: CachedRouteKind.FETCH\n data: CachedFetchData\n // tags are only present with file-system-cache\n // fetch cache stores tags outside of cache entry\n tags?: string[]\n revalidate: number\n}\n\nexport interface CachedRedirectValue {\n kind: CachedRouteKind.REDIRECT\n props: Object\n}\n\nexport interface CachedAppPageValue {\n kind: CachedRouteKind.APP_PAGE\n // this needs to be a RenderResult so since renderResponse\n // expects that type instead of a string\n html: RenderResult\n rscData: Buffer | undefined\n status: number | undefined\n postponed: string | undefined\n headers: OutgoingHttpHeaders | undefined\n segmentData: Map | undefined\n}\n\nexport interface CachedPageValue {\n kind: CachedRouteKind.PAGES\n // this needs to be a RenderResult so since renderResponse\n // expects that type instead of a string\n html: RenderResult\n pageData: Object\n status: number | undefined\n headers: OutgoingHttpHeaders | undefined\n}\n\nexport interface CachedRouteValue {\n kind: CachedRouteKind.APP_ROUTE\n // this needs to be a RenderResult so since renderResponse\n // expects that type instead of a string\n body: Buffer\n status: number\n headers: OutgoingHttpHeaders\n}\n\nexport interface CachedImageValue {\n kind: CachedRouteKind.IMAGE\n etag: string\n upstreamEtag: string\n buffer: Buffer\n extension: string\n revalidate?: number\n isMiss?: boolean\n isStale?: boolean\n}\n\nexport interface IncrementalCachedAppPageValue {\n kind: CachedRouteKind.APP_PAGE\n // this needs to be a string since the cache expects to store\n // the string value\n html: string\n rscData: Buffer | undefined\n headers: OutgoingHttpHeaders | undefined\n postponed: string | undefined\n status: number | undefined\n segmentData: Map | undefined\n}\n\nexport interface IncrementalCachedPageValue {\n kind: CachedRouteKind.PAGES\n // this needs to be a string since the cache expects to store\n // the string value\n html: string\n pageData: Object\n headers: OutgoingHttpHeaders | undefined\n status: number | undefined\n}\n\nexport interface IncrementalResponseCacheEntry {\n cacheControl?: CacheControl\n /**\n * timestamp in milliseconds to revalidate after\n */\n revalidateAfter?: Revalidate\n /**\n * `-1` here dictates a blocking revalidate should be used\n */\n isStale?: boolean | -1\n isMiss?: boolean\n isFallback?: boolean\n value: Exclude | null\n}\n\nexport interface IncrementalFetchCacheEntry {\n /**\n * `-1` here dictates a blocking revalidate should be used\n */\n isStale?: boolean | -1\n value: CachedFetchValue\n}\n\nexport type IncrementalCacheEntry =\n | IncrementalResponseCacheEntry\n | IncrementalFetchCacheEntry\n\nexport type IncrementalCacheValue =\n | CachedRedirectValue\n | IncrementalCachedPageValue\n | IncrementalCachedAppPageValue\n | CachedImageValue\n | CachedFetchValue\n | CachedRouteValue\n\nexport type ResponseCacheValue =\n | CachedRedirectValue\n | CachedPageValue\n | CachedAppPageValue\n | CachedImageValue\n | CachedRouteValue\n\nexport type ResponseCacheEntry = {\n cacheControl?: CacheControl\n value: ResponseCacheValue | null\n isStale?: boolean | -1\n isMiss?: boolean\n isFallback?: boolean\n}\n\nexport type ResponseCacheResult = ResponseCacheEntry | PrerenderFailure | null\n\n/**\n * @param hasResolved whether the responseGenerator has resolved it's promise\n * @param previousCacheEntry the previous cache entry if it exists or the current\n */\nexport type ResponseGenerator = (state: {\n hasResolved: boolean\n previousCacheEntry?: IncrementalResponseCacheEntry | null\n isRevalidating?: boolean\n span?: any\n\n /**\n * When true, this indicates that the response generator is being called in a\n * context where the response must be generated statically.\n *\n * CRITICAL: This should only currently be used when revalidating due to a\n * dynamic RSC request.\n */\n forceStaticRender?: boolean\n}) => Promise\n\nexport const enum IncrementalCacheKind {\n APP_PAGE = 'APP_PAGE',\n APP_ROUTE = 'APP_ROUTE',\n PAGES = 'PAGES',\n FETCH = 'FETCH',\n IMAGE = 'IMAGE',\n}\n\nexport interface GetIncrementalFetchCacheContext {\n kind: IncrementalCacheKind.FETCH\n revalidate?: Revalidate\n fetchUrl?: string\n fetchIdx?: number\n tags?: string[]\n softTags?: string[]\n}\n\nexport interface GetIncrementalResponseCacheHandlerContext {\n kind: Exclude<\n IncrementalCacheKind,\n IncrementalCacheKind.FETCH | IncrementalCacheKind.IMAGE\n >\n\n /**\n * True if the route is enabled for PPR.\n */\n isRoutePPREnabled?: boolean\n\n /**\n * True if this is a fallback request.\n */\n isFallback: boolean\n}\n\nexport interface GetIncrementalResponseCacheContext\n extends GetIncrementalResponseCacheHandlerContext {\n /** Internal ownership used before invoking the storage handler. */\n route: ResponseCacheOwner\n}\n\nexport interface SetIncrementalFetchCacheContext {\n fetchCache: true\n fetchUrl?: string\n fetchIdx?: number\n tags?: string[]\n isImplicitBuildTimeCache?: boolean\n}\n\nexport interface SetIncrementalResponseCacheHandlerContext {\n fetchCache?: false\n cacheControl?: CacheControl\n\n /**\n * True if the route is enabled for PPR.\n */\n isRoutePPREnabled?: boolean\n\n /**\n * True if this is a fallback request.\n */\n isFallback?: boolean\n}\n\nexport interface SetIncrementalResponseCacheContext\n extends SetIncrementalResponseCacheHandlerContext {\n /** Internal ownership used before invoking the storage handler. */\n route: ResponseCacheOwner\n}\n\nexport interface GetIncrementalImageCacheContext {\n kind: IncrementalCacheKind.IMAGE\n route?: never\n isFallback: false\n isRoutePPREnabled?: false\n}\n\nexport interface SetIncrementalImageCacheContext {\n kind: IncrementalCacheKind.IMAGE\n route?: never\n fetchCache?: false\n cacheControl?: CacheControl\n}\n\nexport interface IncrementalResponseCache {\n get(\n cacheKey: string,\n ctx: GetIncrementalResponseCacheContext | GetIncrementalImageCacheContext\n ): Promise\n set(\n key: string,\n data: Exclude | null,\n ctx: SetIncrementalResponseCacheContext | SetIncrementalImageCacheContext\n ): Promise\n}\n\nexport interface IncrementalCache extends IncrementalResponseCache {\n get(\n cacheKey: string,\n ctx: GetIncrementalFetchCacheContext\n ): Promise\n get(\n cacheKey: string,\n ctx: GetIncrementalResponseCacheContext | GetIncrementalImageCacheContext\n ): Promise\n set(\n key: string,\n data: CachedFetchValue | null,\n ctx: SetIncrementalFetchCacheContext\n ): Promise\n set(\n key: string,\n data: Exclude | null,\n ctx: SetIncrementalResponseCacheContext | SetIncrementalImageCacheContext\n ): Promise\n revalidateTag(\n tags: string | string[],\n durations?: { expire?: number }\n ): Promise\n}\n","export const enum RouteKind {\n /**\n * `PAGES` represents all the React pages that are under `pages/`.\n */\n PAGES = 'PAGES',\n /**\n * `PAGES_API` represents all the API routes under `pages/api/`.\n */\n PAGES_API = 'PAGES_API',\n /**\n * `APP_PAGE` represents all the React pages that are under `app/` with the\n * filename of `page.{j,t}s{,x}`.\n */\n APP_PAGE = 'APP_PAGE',\n /**\n * `APP_ROUTE` represents all the API routes and metadata routes that are under `app/` with the\n * filename of `route.{j,t}s{,x}`.\n */\n APP_ROUTE = 'APP_ROUTE',\n\n /**\n * `IMAGE` represents all the images that are generated by `next/image`.\n */\n IMAGE = 'IMAGE',\n}\n","import { getRequestMeta, type NextIncomingMessage } from '../../request-meta'\nimport type { ServerComponentsHmrCache } from '../../response-cache'\nimport type { DevRenderContext } from './module'\n\n/** Capture HMR inputs at the App Page handler boundary in dev. */\nexport function createDevRenderContext(\n req: NextIncomingMessage,\n hmrCacheFallback?: ServerComponentsHmrCache\n): DevRenderContext | undefined {\n if (!process.env.__NEXT_DEV_SERVER) {\n return undefined\n }\n\n const { serverComponentsHmrCache, hmrRefreshHash } = getRequestMeta(req)\n return {\n serverComponentsHmrCache: serverComponentsHmrCache ?? hmrCacheFallback,\n hmrRefreshHash,\n }\n}\n","import s from 'next/dist/compiled/superstruct';\nconst dynamicParamTypesSchema = s.enums([\n 'c',\n 'ci(..)(..)',\n 'ci(.)',\n 'ci(..)',\n 'ci(...)',\n 'oc',\n 'd',\n 'di(..)(..)',\n 'di(.)',\n 'di(..)',\n 'di(...)'\n]);\nconst segmentSchema = s.union([\n s.string(),\n s.tuple([\n // Param name\n s.string(),\n // Param cache key (almost the same as the value, but arrays are\n // concatenated into strings)\n // TODO: We should change this to just be the value. Currently we convert\n // it back to a value when passing to useParams. It only needs to be\n // a string when converted to a a cache key, but that doesn't mean we\n // need to store it as that representation.\n s.string(),\n // Dynamic param type\n dynamicParamTypesSchema,\n // Static siblings at the same URL level. Used by the client router to\n // determine if a prefetch can be reused when navigating to a static\n // sibling of a dynamic route. null means siblings are unknown.\n s.nullable(s.array(s.string()))\n ])\n]);\n// unfortunately the tuple is not understood well by Describe so we have to\n// use any here. This does not have any impact on the runtime type since the validation\n// does work correctly.\nexport const flightRouterStateSchema = s.tuple([\n segmentSchema,\n s.record(s.string(), s.lazy(()=>flightRouterStateSchema)),\n s.optional(s.nullable(s.tuple([\n s.string(),\n s.string()\n ]))),\n s.optional(s.nullable(s.union([\n s.literal('refetch'),\n s.literal('inside-shared-layout'),\n s.literal('metadata-only')\n ]))),\n s.optional(s.nullable(s.number())),\n s.optional(s.string())\n]);\n\n//# sourceMappingURL=types.js.map","const CSP_NONCE_SOURCE_REGEX = /^'nonce-([A-Za-z0-9+/_-]+={0,2})'$/;\nexport function getScriptNonceFromHeader(cspHeaderValue) {\n const directives = cspHeaderValue// Directives are split by ';'.\n .split(';').map((directive)=>directive.trim());\n // First try to find the directive for the 'script-src', otherwise try to\n // fallback to the 'default-src'.\n const directive = directives.find((dir)=>dir.startsWith('script-src')) || directives.find((dir)=>dir.startsWith('default-src'));\n // If no directive could be found, then we're done.\n if (!directive) {\n return;\n }\n // Extract the first valid nonce from the directive. Malformed nonces are\n // ignored so the request can continue without a nonce instead of failing.\n for (const source of directive.split(/\\s+/).slice(1)){\n const match = source.trim().match(CSP_NONCE_SOURCE_REGEX);\n if (match) {\n return match[1];\n }\n }\n}\n\n//# sourceMappingURL=get-script-nonce-from-header.js.map","import { regexpToFunction } from 'next/dist/compiled/path-to-regexp';\nimport { pathToRegexp } from 'next/dist/compiled/path-to-regexp';\n/**\n * Generates a path matcher function for a given path and options based on\n * path-to-regexp. By default the match will be case insensitive, non strict\n * and delimited by `/`.\n */ export function getPathMatch(path, options) {\n const keys = [];\n const regexp = pathToRegexp(path, keys, {\n delimiter: '/',\n sensitive: typeof options?.sensitive === 'boolean' ? options.sensitive : false,\n strict: options?.strict\n });\n const matcher = regexpToFunction(options?.regexModifier ? new RegExp(options.regexModifier(regexp.source), regexp.flags) : regexp, keys);\n /**\n * A matcher function that will check if a given pathname matches the path\n * given in the builder function. When the path does not match it will return\n * `false` but if it does it will return an object with the matched params\n * merged with the params provided in the second argument.\n */ return (pathname, params)=>{\n // If no pathname is provided it's not a match.\n if (typeof pathname !== 'string') return false;\n const match = matcher(pathname);\n // If the path did not match `false` will be returned.\n if (!match) return false;\n /**\n * If unnamed params are not allowed they must be removed from\n * the matched parameters. path-to-regexp uses \"string\" for named and\n * \"number\" for unnamed parameters.\n */ if (options?.removeUnnamedParams) {\n for (const key of keys){\n if (typeof key.name === 'number') {\n delete match.params[key.name];\n }\n }\n }\n return {\n ...params,\n ...match.params\n };\n };\n}\n\n//# sourceMappingURL=path-match.js.map","import { NEXT_HMR_REFRESH_HEADER, NEXT_ROUTER_PREFETCH_HEADER, NEXT_ROUTER_STATE_TREE_HEADER, RSC_HEADER, NEXT_ROUTER_SEGMENT_PREFETCH_HEADER, NEXT_REQUEST_ID_HEADER, NEXT_HTML_REQUEST_ID_HEADER } from '../../../client/components/app-router-headers';\nimport { isRSCRequestHeader } from '../../lib/is-rsc-request';\nimport { getScriptNonceFromHeader } from '../../app-render/get-script-nonce-from-header';\nimport { parseAndValidateFlightRouterState } from '../../app-render/parse-and-validate-flight-router-state';\nimport { getPreviouslyRevalidatedTags } from '../../server-utils';\nexport function parseRequestHeaders(headers, options) {\n const isRSCRequest = isRSCRequestHeader(headers[RSC_HEADER]);\n // runtime prefetch requests are *not* treated as prefetch requests\n // (TODO: this is confusing, we should refactor this to express this better)\n const isPrefetchRequest = isRSCRequest && headers[NEXT_ROUTER_PREFETCH_HEADER] === '1';\n const isAppShellPrefetchRequest = isRSCRequest && headers[NEXT_ROUTER_PREFETCH_HEADER] === '3';\n // App Shell prefetches are a subtype of runtime prefetch — same code path,\n // but with less resolved content (omitting link data)\n const isRuntimePrefetchRequest = isRSCRequest && (headers[NEXT_ROUTER_PREFETCH_HEADER] === '2' || isAppShellPrefetchRequest);\n const isHmrRefresh = headers[NEXT_HMR_REFRESH_HEADER] !== undefined;\n const shouldProvideFlightRouterState = isRSCRequest && (!isPrefetchRequest || !options.isRoutePPREnabled);\n const flightRouterState = shouldProvideFlightRouterState ? parseAndValidateFlightRouterState(headers[NEXT_ROUTER_STATE_TREE_HEADER]) : undefined;\n // Checks if this is a prefetch of the Route Tree by the Segment Cache\n const isRouteTreePrefetchRequest = isRSCRequest && headers[NEXT_ROUTER_SEGMENT_PREFETCH_HEADER] === '/_tree';\n const csp = headers['content-security-policy'] || headers['content-security-policy-report-only'];\n const nonce = typeof csp === 'string' ? getScriptNonceFromHeader(csp) : undefined;\n const previouslyRevalidatedTags = getPreviouslyRevalidatedTags(headers, options.previewModeId);\n let requestId;\n let htmlRequestId;\n if (process.env.__NEXT_DEV_SERVER) {\n // The request IDs are only used for the dev server to send debug\n // information to the matching client (identified by the HTML request ID\n // that was sent to the client with the HTML document) for the current\n // request (identified by the request ID, as defined by the client).\n requestId = typeof headers[NEXT_REQUEST_ID_HEADER] === 'string' ? headers[NEXT_REQUEST_ID_HEADER] : undefined;\n htmlRequestId = typeof headers[NEXT_HTML_REQUEST_ID_HEADER] === 'string' ? headers[NEXT_HTML_REQUEST_ID_HEADER] : undefined;\n }\n return {\n flightRouterState,\n isPrefetchRequest,\n isRuntimePrefetchRequest,\n isAppShellPrefetchRequest,\n isRouteTreePrefetchRequest,\n isHmrRefresh,\n isRSCRequest,\n nonce,\n previouslyRevalidatedTags,\n requestId,\n htmlRequestId\n };\n}\n\n//# sourceMappingURL=parse-request-headers.js.map","import { flightRouterStateSchema } from './types';\nimport { assert } from 'next/dist/compiled/superstruct';\nexport function parseAndValidateFlightRouterState(stateHeader) {\n if (typeof stateHeader === 'undefined') {\n return undefined;\n }\n if (Array.isArray(stateHeader)) {\n throw new Error('Multiple router state headers were sent. This is not allowed.');\n }\n // We limit the size of the router state header to ~40kb. This is to prevent\n // a malicious user from sending a very large header and slowing down the\n // resolving of the router state.\n // This is around 2,000 nested or parallel route segment states:\n // '{\"children\":[\"\",{}]}'.length === 20.\n if (stateHeader.length > 20 * 2000) {\n throw new Error('The router state header was too large.');\n }\n try {\n const state = JSON.parse(decodeURIComponent(stateHeader));\n assert(state, flightRouterStateSchema);\n return state;\n } catch {\n throw new Error('The router state header was sent but could not be parsed.');\n }\n}\n\n//# sourceMappingURL=parse-and-validate-flight-router-state.js.map","import { DecodeError } from '../../utils';\nimport { safeRouteMatcher } from './route-match-utils';\nexport function getRouteMatcher({ re, groups }) {\n const rawMatcher = (pathname)=>{\n const routeMatch = re.exec(pathname);\n if (!routeMatch) return false;\n const decode = (param)=>{\n try {\n return decodeURIComponent(param);\n } catch {\n throw new DecodeError('failed to decode param');\n }\n };\n const params = {};\n for (const [key, group] of Object.entries(groups)){\n const match = routeMatch[group.pos];\n if (match !== undefined) {\n if (group.repeat) {\n params[key] = match.split('/').map((entry)=>decode(entry));\n } else {\n params[key] = decode(match);\n }\n }\n }\n return params;\n };\n // Wrap with safe matcher to handle parameter cleaning\n return safeRouteMatcher(rawMatcher);\n}\n\n//# sourceMappingURL=route-matcher.js.map","import { escapeStringRegexp } from '../../escape-regexp';\nimport { parseUrl } from './parse-url';\nimport { INTERCEPTION_ROUTE_MARKERS, isInterceptionRouteAppPath } from './interception-routes';\nimport { getCookieParser } from '../../../../server/api-utils/get-cookie-parser';\nimport { safePathToRegexp, safeCompile } from './route-match-utils';\n/**\n * Ensure only a-zA-Z are used for param names for proper interpolating\n * with path-to-regexp\n */ function getSafeParamName(paramName) {\n let newParamName = '';\n for(let i = 0; i < paramName.length; i++){\n const charCode = paramName.charCodeAt(i);\n if (charCode > 64 && charCode < 91 || // A-Z\n charCode > 96 && charCode < 123 // a-z\n ) {\n newParamName += paramName[i];\n }\n }\n return newParamName;\n}\nfunction escapeSegment(str, segmentName) {\n return str.replace(new RegExp(`:${escapeStringRegexp(segmentName)}`, 'g'), `__ESC_COLON_${segmentName}`);\n}\nfunction unescapeSegments(str) {\n return str.replace(/__ESC_COLON_/gi, ':');\n}\nexport function matchHas(req, query, has = [], missing = []) {\n const params = {};\n const hasMatch = (hasItem)=>{\n let value;\n let key = hasItem.key;\n switch(hasItem.type){\n case 'header':\n {\n key = key.toLowerCase();\n value = req.headers[key];\n break;\n }\n case 'cookie':\n {\n if ('cookies' in req) {\n value = req.cookies[hasItem.key];\n } else {\n const cookies = getCookieParser(req.headers)();\n value = cookies[hasItem.key];\n }\n break;\n }\n case 'query':\n {\n value = query[key];\n break;\n }\n case 'host':\n {\n const { host } = req?.headers || {};\n // remove port from host if present\n const hostname = host?.split(':', 1)[0].toLowerCase();\n value = hostname;\n break;\n }\n default:\n {\n break;\n }\n }\n if (!hasItem.value && value) {\n params[getSafeParamName(key)] = value;\n return true;\n } else if (value) {\n const matcher = new RegExp(`^${hasItem.value}$`);\n const matches = Array.isArray(value) ? value.slice(-1)[0].match(matcher) : value.match(matcher);\n if (matches) {\n if (Array.isArray(matches)) {\n if (matches.groups) {\n Object.keys(matches.groups).forEach((groupKey)=>{\n params[groupKey] = matches.groups[groupKey];\n });\n } else if (hasItem.type === 'host' && matches[0]) {\n params.host = matches[0];\n }\n }\n return true;\n }\n }\n return false;\n };\n const allMatch = has.every((item)=>hasMatch(item)) && !missing.some((item)=>hasMatch(item));\n if (allMatch) {\n return params;\n }\n return false;\n}\nexport function compileNonPath(value, params) {\n if (!value.includes(':')) {\n return value;\n }\n for (const key of Object.keys(params)){\n if (value.includes(`:${key}`)) {\n value = value.replace(new RegExp(`:${key}\\\\*`, 'g'), `:${key}--ESCAPED_PARAM_ASTERISKS`).replace(new RegExp(`:${key}\\\\?`, 'g'), `:${key}--ESCAPED_PARAM_QUESTION`).replace(new RegExp(`:${key}\\\\+`, 'g'), `:${key}--ESCAPED_PARAM_PLUS`).replace(new RegExp(`:${key}(?!\\\\w)`, 'g'), `--ESCAPED_PARAM_COLON${key}`);\n }\n }\n value = value.replace(/(:|\\*|\\?|\\+|\\(|\\)|\\{|\\})/g, '\\\\$1').replace(/--ESCAPED_PARAM_PLUS/g, '+').replace(/--ESCAPED_PARAM_COLON/g, ':').replace(/--ESCAPED_PARAM_QUESTION/g, '?').replace(/--ESCAPED_PARAM_ASTERISKS/g, '*');\n // the value needs to start with a forward-slash to be compiled\n // correctly\n return safeCompile(`/${value}`, {\n validate: false\n })(params).slice(1);\n}\nexport function parseDestination(args) {\n let escaped = args.destination;\n for (const param of Object.keys({\n ...args.params,\n ...args.query\n })){\n if (!param) continue;\n escaped = escapeSegment(escaped, param);\n }\n const parsed = parseUrl(escaped);\n let pathname = parsed.pathname;\n if (pathname) {\n pathname = unescapeSegments(pathname);\n }\n let href = parsed.href;\n if (href) {\n href = unescapeSegments(href);\n }\n let hostname = parsed.hostname;\n if (hostname) {\n hostname = unescapeSegments(hostname);\n }\n let hash = parsed.hash;\n if (hash) {\n hash = unescapeSegments(hash);\n }\n let search = parsed.search;\n if (search) {\n search = unescapeSegments(search);\n }\n let origin = parsed.origin;\n if (origin) {\n origin = unescapeSegments(origin);\n }\n return {\n ...parsed,\n pathname,\n hostname,\n href,\n hash,\n search,\n origin\n };\n}\nexport function prepareDestination(args) {\n const parsedDestination = parseDestination(args);\n const { hostname: destHostname, query: destQuery, search: destSearch } = parsedDestination;\n // The following code assumes that the pathname here includes the hash if it's\n // present.\n let destPath = parsedDestination.pathname;\n if (parsedDestination.hash) {\n destPath = `${destPath}${parsedDestination.hash}`;\n }\n const destParams = [];\n const destPathParamKeys = [];\n safePathToRegexp(destPath, destPathParamKeys);\n for (const key of destPathParamKeys){\n destParams.push(key.name);\n }\n if (destHostname) {\n const destHostnameParamKeys = [];\n safePathToRegexp(destHostname, destHostnameParamKeys);\n for (const key of destHostnameParamKeys){\n destParams.push(key.name);\n }\n }\n const destPathCompiler = safeCompile(destPath, // we don't validate while compiling the destination since we should\n // have already validated before we got to this point and validating\n // breaks compiling destinations with named pattern params from the source\n // e.g. /something:hello(.*) -> /another/:hello is broken with validation\n // since compile validation is meant for reversing and not for inserting\n // params from a separate path-regex into another\n {\n validate: false\n });\n let destHostnameCompiler;\n if (destHostname) {\n destHostnameCompiler = safeCompile(destHostname, {\n validate: false,\n encode: encodeURIComponent\n });\n }\n // update any params in query values\n for (const [key, strOrArray] of Object.entries(destQuery)){\n // the value needs to start with a forward-slash to be compiled\n // correctly\n if (Array.isArray(strOrArray)) {\n destQuery[key] = strOrArray.map((value)=>compileNonPath(unescapeSegments(value), args.params));\n } else if (typeof strOrArray === 'string') {\n destQuery[key] = compileNonPath(unescapeSegments(strOrArray), args.params);\n }\n }\n // add path params to query if it's not a redirect and not\n // already defined in destination query or path\n let paramKeys = Object.keys(args.params).filter((name)=>name !== 'nextInternalLocale');\n if (args.appendParamsToQuery && !paramKeys.some((key)=>destParams.includes(key))) {\n for (const key of paramKeys){\n if (!(key in destQuery)) {\n destQuery[key] = args.params[key];\n }\n }\n }\n let newUrl;\n // The compiler also that the interception route marker is an unnamed param, hence '0',\n // so we need to add it to the params object.\n if (isInterceptionRouteAppPath(destPath)) {\n for (const segment of destPath.split('/')){\n const marker = INTERCEPTION_ROUTE_MARKERS.find((m)=>segment.startsWith(m));\n if (marker) {\n if (marker === '(..)(..)') {\n args.params['0'] = '(..)';\n args.params['1'] = '(..)';\n } else {\n args.params['0'] = marker;\n }\n break;\n }\n }\n }\n try {\n newUrl = destPathCompiler(args.params);\n const [pathname, hash] = newUrl.split('#', 2);\n if (destHostnameCompiler) {\n parsedDestination.hostname = destHostnameCompiler(args.params);\n }\n parsedDestination.pathname = pathname;\n parsedDestination.hash = `${hash ? '#' : ''}${hash || ''}`;\n parsedDestination.search = destSearch ? compileNonPath(destSearch, args.params) : '';\n } catch (err) {\n if (err.message.match(/Expected .*? to not repeat, but got an array/)) {\n throw new Error(`To use a multi-match in the destination you must add \\`*\\` at the end of the param name to signify it should repeat. https://nextjs.org/docs/messages/invalid-multi-match`);\n }\n throw err;\n }\n // Query merge order lowest priority to highest\n // 1. initial URL query values\n // 2. path segment values\n // 3. destination specified query values\n parsedDestination.query = {\n ...args.query,\n ...parsedDestination.query\n };\n return {\n newUrl,\n destQuery,\n parsedDestination\n };\n}\n\n//# sourceMappingURL=prepare-destination.js.map","import { normalizeLocalePath } from '../shared/lib/i18n/normalize-locale-path';\nimport { getPathMatch } from '../shared/lib/router/utils/path-match';\nimport { getNamedRouteRegex } from '../shared/lib/router/utils/route-regex';\nimport { getRouteMatcher } from '../shared/lib/router/utils/route-matcher';\nimport { matchHas, prepareDestination } from '../shared/lib/router/utils/prepare-destination';\nimport { removeTrailingSlash } from '../shared/lib/router/utils/remove-trailing-slash';\nimport { normalizeRscURL } from '../shared/lib/router/utils/app-paths';\nimport { NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER, NEXT_CACHE_REVALIDATED_TAGS_HEADER, NEXT_INTERCEPTION_MARKER_PREFIX, NEXT_QUERY_PARAM_PREFIX } from '../lib/constants';\nimport { normalizeNextQueryParam } from './web/utils';\nimport { decodeQueryPathParameter } from './lib/decode-query-path-parameter';\nimport { parseReqUrl } from '../lib/url';\nimport { formatUrl } from '../shared/lib/router/utils/format-url';\nfunction filterInternalQuery(query, paramKeys) {\n // this is used to pass query information in rewrites\n // but should not be exposed in final query\n delete query['nextInternalLocale'];\n for(const key in query){\n const isNextQueryPrefix = key !== NEXT_QUERY_PARAM_PREFIX && key.startsWith(NEXT_QUERY_PARAM_PREFIX);\n const isNextInterceptionMarkerPrefix = key !== NEXT_INTERCEPTION_MARKER_PREFIX && key.startsWith(NEXT_INTERCEPTION_MARKER_PREFIX);\n if (isNextQueryPrefix || isNextInterceptionMarkerPrefix || paramKeys.includes(key)) {\n delete query[key];\n }\n }\n}\nexport function normalizeCdnUrl(req, paramKeys) {\n // make sure to normalize req.url from CDNs to strip dynamic and rewrite\n // params from the query which are added during routing\n const _parsedUrl = parseReqUrl(req.url);\n // we can't normalize if we can't parse\n if (!_parsedUrl) {\n return req.url;\n }\n delete _parsedUrl.search;\n filterInternalQuery(_parsedUrl.query, paramKeys);\n req.url = formatUrl(_parsedUrl);\n}\nexport function interpolateDynamicPath(pathname, params, defaultRouteRegex) {\n if (!defaultRouteRegex) return pathname;\n for (const param of Object.keys(defaultRouteRegex.groups)){\n const { optional, repeat } = defaultRouteRegex.groups[param];\n let builtParam = `[${repeat ? '...' : ''}${param}]`;\n if (optional) {\n builtParam = `[${builtParam}]`;\n }\n let paramValue;\n const value = params[param];\n if (Array.isArray(value)) {\n paramValue = value.map((v)=>v && encodeURIComponent(v)).join('/');\n } else if (value) {\n paramValue = encodeURIComponent(value);\n } else {\n paramValue = '';\n }\n if (paramValue || optional) {\n pathname = pathname.replaceAll(builtParam, paramValue);\n }\n }\n return pathname;\n}\nexport function normalizeDynamicRouteParams(query, defaultRouteRegex, defaultRouteMatches, ignoreMissingOptional) {\n const isDefaultValueMatch = (candidateValue, defaultValue)=>{\n if (!candidateValue) {\n return false;\n }\n let normalizedCandidateValue = normalizeRscURL(candidateValue);\n for(let i = 0; i < 3; i++){\n if (normalizedCandidateValue === defaultValue) {\n return true;\n }\n const decodedCandidateValue = decodeQueryPathParameter(normalizedCandidateValue);\n if (decodedCandidateValue === normalizedCandidateValue) {\n break;\n }\n normalizedCandidateValue = decodedCandidateValue;\n }\n return false;\n };\n let hasValidParams = true;\n let params = {};\n for (const key of Object.keys(defaultRouteRegex.groups)){\n let value = query[key];\n if (typeof value === 'string') {\n value = normalizeRscURL(value);\n } else if (Array.isArray(value)) {\n value = value.map(normalizeRscURL);\n }\n // if the value matches the default value we can't rely\n // on the parsed params, this is used to signal if we need\n // to parse x-now-route-matches or not\n const defaultValue = defaultRouteMatches[key];\n const isOptional = defaultRouteRegex.groups[key].optional;\n const isDefaultValue = Array.isArray(defaultValue) ? defaultValue.some((defaultVal)=>{\n return Array.isArray(value) ? value.some((val)=>isDefaultValueMatch(val, defaultVal)) : isDefaultValueMatch(value, defaultVal);\n }) : Array.isArray(value) ? value.some((val)=>isDefaultValueMatch(val, defaultValue)) : isDefaultValueMatch(value, defaultValue);\n if (isDefaultValue || typeof value === 'undefined' && !(isOptional && ignoreMissingOptional)) {\n return {\n params: {},\n hasValidParams: false\n };\n }\n // non-provided optional values should be undefined so normalize\n // them to undefined\n if (isOptional && (!value || Array.isArray(value) && value.length === 1 && // fallback optional catch-all SSG pages have\n // [[...paramName]] for the root path on Vercel\n (value[0] === 'index' || value[0] === `[[...${key}]]`) || value === 'index' || value === `[[...${key}]]`)) {\n value = undefined;\n delete query[key];\n }\n // query values from the proxy aren't already split into arrays\n // so make sure to normalize catch-all values\n if (value && typeof value === 'string' && defaultRouteRegex.groups[key].repeat) {\n value = value.split('/');\n }\n if (value) {\n params[key] = value;\n }\n }\n return {\n params,\n hasValidParams\n };\n}\nexport function getServerUtils({ page, i18n, basePath, rewrites, pageIsDynamic, trailingSlash, caseSensitive }) {\n let defaultRouteRegex;\n let dynamicRouteMatcher;\n let defaultRouteMatches;\n if (pageIsDynamic) {\n defaultRouteRegex = getNamedRouteRegex(page, {\n prefixRouteKeys: false\n });\n dynamicRouteMatcher = getRouteMatcher(defaultRouteRegex);\n defaultRouteMatches = dynamicRouteMatcher(page);\n }\n function handleRewrites(req, parsedUrl) {\n // Here we deep clone the parsedUrl to avoid mutating the original. We also\n // cast this to a mutable type so we can mutate it within this scope.\n const rewrittenParsedUrl = structuredClone(parsedUrl);\n const rewriteParams = {};\n let fsPathname = rewrittenParsedUrl.pathname;\n const matchesPage = ()=>{\n const fsPathnameNoSlash = removeTrailingSlash(fsPathname || '');\n return fsPathnameNoSlash === removeTrailingSlash(page) || (dynamicRouteMatcher == null ? void 0 : dynamicRouteMatcher(fsPathnameNoSlash));\n };\n const checkRewrite = (rewrite)=>{\n const matcher = getPathMatch(rewrite.source + (trailingSlash ? '(/)?' : ''), {\n removeUnnamedParams: true,\n strict: true,\n sensitive: !!caseSensitive\n });\n if (!rewrittenParsedUrl.pathname) return false;\n let params = matcher(rewrittenParsedUrl.pathname);\n if ((rewrite.has || rewrite.missing) && params) {\n const hasParams = matchHas(req, rewrittenParsedUrl.query, rewrite.has, rewrite.missing);\n if (hasParams) {\n Object.assign(params, hasParams);\n } else {\n params = false;\n }\n }\n if (params) {\n const { parsedDestination, destQuery } = prepareDestination({\n appendParamsToQuery: true,\n destination: rewrite.destination,\n params: params,\n query: rewrittenParsedUrl.query\n });\n // if the rewrite destination is external break rewrite chain\n if (parsedDestination.protocol) {\n return true;\n }\n Object.assign(rewriteParams, destQuery, params);\n Object.assign(rewrittenParsedUrl.query, parsedDestination.query);\n delete parsedDestination.query;\n Object.assign(rewrittenParsedUrl, parsedDestination);\n fsPathname = rewrittenParsedUrl.pathname;\n if (!fsPathname) return false;\n if (basePath) {\n fsPathname = fsPathname.replace(new RegExp(`^${basePath}`), '') || '/';\n }\n if (i18n) {\n const result = normalizeLocalePath(fsPathname, i18n.locales);\n fsPathname = result.pathname;\n rewrittenParsedUrl.query.nextInternalLocale = result.detectedLocale || params.nextInternalLocale;\n }\n if (fsPathname === page) {\n return true;\n }\n if (pageIsDynamic && dynamicRouteMatcher) {\n const dynamicParams = dynamicRouteMatcher(fsPathname);\n if (dynamicParams) {\n rewrittenParsedUrl.query = {\n ...rewrittenParsedUrl.query,\n ...dynamicParams\n };\n return true;\n }\n }\n }\n return false;\n };\n for (const rewrite of rewrites.beforeFiles || []){\n checkRewrite(rewrite);\n }\n if (fsPathname !== page) {\n let finished = false;\n for (const rewrite of rewrites.afterFiles || []){\n finished = checkRewrite(rewrite);\n if (finished) break;\n }\n if (!finished && !matchesPage()) {\n for (const rewrite of rewrites.fallback || []){\n finished = checkRewrite(rewrite);\n if (finished) break;\n }\n }\n }\n return {\n rewriteParams,\n rewrittenParsedUrl\n };\n }\n function getParamsFromRouteMatches(routeMatchesHeader) {\n // If we don't have a default route regex, we can't get params from route\n // matches\n if (!defaultRouteRegex) return null;\n const { groups, routeKeys } = defaultRouteRegex;\n const matcher = getRouteMatcher({\n re: {\n // Simulate a RegExp match from the \\`req.url\\` input\n exec: (str)=>{\n // Normalize all the prefixed query params.\n const obj = Object.fromEntries(new URLSearchParams(str));\n for (const [key, value] of Object.entries(obj)){\n const normalizedKey = normalizeNextQueryParam(key);\n if (!normalizedKey) continue;\n obj[normalizedKey] = value;\n delete obj[key];\n }\n // Use all the named route keys.\n const result = {};\n for (const keyName of Object.keys(routeKeys)){\n const paramName = routeKeys[keyName];\n // If this param name is not a valid parameter name, then skip it.\n if (!paramName) continue;\n const group = groups[paramName];\n const value = obj[keyName];\n // When we're missing a required param, we can't match the route.\n if (!group.optional && !value) return null;\n result[group.pos] = value;\n }\n return result;\n }\n },\n groups\n });\n const routeMatches = matcher(routeMatchesHeader);\n if (!routeMatches) return null;\n return routeMatches;\n }\n function normalizeQueryParams(query, routeParamKeys) {\n // this is used to pass query information in rewrites\n // but should not be exposed in final query\n delete query['nextInternalLocale'];\n for (const [key, value] of Object.entries(query)){\n const normalizedKey = normalizeNextQueryParam(key);\n if (!normalizedKey) continue;\n // Remove the prefixed key from the query params because we want\n // to consume it for the dynamic route matcher.\n delete query[key];\n routeParamKeys.add(normalizedKey);\n if (typeof value === 'undefined') continue;\n query[normalizedKey] = Array.isArray(value) ? value.map((v)=>decodeQueryPathParameter(v)) : decodeQueryPathParameter(value);\n }\n }\n return {\n handleRewrites,\n defaultRouteRegex,\n dynamicRouteMatcher,\n defaultRouteMatches,\n normalizeQueryParams,\n getParamsFromRouteMatches,\n /**\n * Normalize dynamic route params.\n *\n * @param query - The query params to normalize.\n * @param ignoreMissingOptional - Whether to ignore missing optional params.\n * @returns The normalized params and whether they are valid.\n */ normalizeDynamicRouteParams: (query, ignoreMissingOptional)=>{\n if (!defaultRouteRegex || !defaultRouteMatches) {\n return {\n params: {},\n hasValidParams: false\n };\n }\n return normalizeDynamicRouteParams(query, defaultRouteRegex, defaultRouteMatches, ignoreMissingOptional);\n },\n normalizeCdnUrl: (req, paramKeys)=>normalizeCdnUrl(req, paramKeys),\n interpolateDynamicPath: (pathname, params)=>interpolateDynamicPath(pathname, params, defaultRouteRegex),\n filterInternalQuery: (query, paramKeys)=>filterInternalQuery(query, paramKeys)\n };\n}\nexport function getPreviouslyRevalidatedTags(headers, previewModeId) {\n return typeof headers[NEXT_CACHE_REVALIDATED_TAGS_HEADER] === 'string' && headers[NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER] === previewModeId ? headers[NEXT_CACHE_REVALIDATED_TAGS_HEADER].split(',') : [];\n}\n\n//# sourceMappingURL=server-utils.js.map","/**\n * Client-safe utilities for route matching that don't import server-side\n * utilities to avoid bundling issues with Turbopack\n */ import { pathToRegexp, compile, regexpToFunction } from 'next/dist/compiled/path-to-regexp';\nimport { hasAdjacentParameterIssues, normalizeAdjacentParameters, stripParameterSeparators, stripNormalizedSeparators } from '../../../../lib/route-pattern-normalizer';\n/**\n * Client-safe wrapper around pathToRegexp that handles path-to-regexp 6.3.0+ validation errors.\n * This includes both \"Can not repeat without prefix/suffix\" and \"Must have text between parameters\" errors.\n */ export function safePathToRegexp(route, keys, options) {\n if (typeof route !== 'string') {\n return pathToRegexp(route, keys, options);\n }\n // Check if normalization is needed and cache the result\n const needsNormalization = hasAdjacentParameterIssues(route);\n const routeToUse = needsNormalization ? normalizeAdjacentParameters(route) : route;\n try {\n return pathToRegexp(routeToUse, keys, options);\n } catch (error) {\n // Only try normalization if we haven't already normalized\n if (!needsNormalization) {\n try {\n const normalizedRoute = normalizeAdjacentParameters(route);\n return pathToRegexp(normalizedRoute, keys, options);\n } catch (retryError) {\n // If that doesn't work, fall back to original error\n throw error;\n }\n }\n throw error;\n }\n}\n/**\n * Client-safe wrapper around compile that handles path-to-regexp 6.3.0+ validation errors.\n * No server-side error reporting to avoid bundling issues.\n * When normalization is applied, the returned compiler function automatically strips\n * the internal separator from the output URL.\n */ export function safeCompile(route, options) {\n // Check if normalization is needed and cache the result\n const needsNormalization = hasAdjacentParameterIssues(route);\n const routeToUse = needsNormalization ? normalizeAdjacentParameters(route) : route;\n try {\n const compiler = compile(routeToUse, options);\n // If we normalized the route, wrap the compiler to strip separators from output\n // The normalization inserts _NEXTSEP_ as a literal string in the pattern to satisfy\n // path-to-regexp validation, but we don't want it in the final compiled URL\n if (needsNormalization) {\n return (params)=>{\n return stripNormalizedSeparators(compiler(params));\n };\n }\n return compiler;\n } catch (error) {\n // Only try normalization if we haven't already normalized\n if (!needsNormalization) {\n try {\n const normalizedRoute = normalizeAdjacentParameters(route);\n const compiler = compile(normalizedRoute, options);\n // Wrap the compiler to strip separators from output\n return (params)=>{\n return stripNormalizedSeparators(compiler(params));\n };\n } catch (retryError) {\n // If that doesn't work, fall back to original error\n throw error;\n }\n }\n throw error;\n }\n}\n/**\n * Client-safe wrapper around regexpToFunction that automatically cleans parameters.\n */ export function safeRegexpToFunction(regexp, keys) {\n const originalMatcher = regexpToFunction(regexp, keys || []);\n return (pathname)=>{\n const result = originalMatcher(pathname);\n if (!result) return false;\n // Clean parameters before returning\n return {\n ...result,\n params: stripParameterSeparators(result.params)\n };\n };\n}\n/**\n * Safe wrapper for route matcher functions that automatically cleans parameters.\n * This is client-safe and doesn't import path-to-regexp.\n */ export function safeRouteMatcher(matcherFn) {\n return (pathname)=>{\n const result = matcherFn(pathname);\n if (!result) return false;\n // Clean parameters before returning\n return stripParameterSeparators(result);\n };\n}\n\n//# sourceMappingURL=route-match-utils.js.map","import { CACHE_ONE_YEAR_SECONDS } from '../../lib/constants';\nexport function getCacheControlHeader({ revalidate, expire }) {\n const swrHeader = typeof revalidate === 'number' && expire !== undefined && revalidate < expire ? `, stale-while-revalidate=${expire - revalidate}` : '';\n if (revalidate === 0) {\n return 'private, no-cache, no-store, max-age=0, must-revalidate';\n } else if (typeof revalidate === 'number') {\n return `s-maxage=${revalidate}${swrHeader}`;\n }\n return `s-maxage=${CACHE_ONE_YEAR_SECONDS}${swrHeader}`;\n}\n\n//# sourceMappingURL=cache-control.js.map","import { isResSent } from '../shared/lib/utils';\nimport { generateETag } from './lib/etag';\nimport fresh from 'next/dist/compiled/fresh';\nimport { getCacheControlHeader } from './lib/cache-control';\nimport { HTML_CONTENT_TYPE_HEADER } from '../lib/constants';\nexport function sendEtagResponse(req, res, etag) {\n if (etag) {\n /**\n * The server generating a 304 response MUST generate any of the\n * following header fields that would have been sent in a 200 (OK)\n * response to the same request: Cache-Control, Content-Location, Date,\n * ETag, Expires, and Vary. https://tools.ietf.org/html/rfc7232#section-4.1\n */ res.setHeader('ETag', etag);\n }\n if (fresh(req.headers, {\n etag\n })) {\n res.statusCode = 304;\n res.end();\n return true;\n }\n return false;\n}\nexport async function sendRenderResult({ req, res, result, generateEtags, poweredByHeader, cacheControl }) {\n if (isResSent(res)) {\n return;\n }\n if (poweredByHeader && result.contentType === HTML_CONTENT_TYPE_HEADER) {\n res.setHeader('X-Powered-By', 'Next.js');\n }\n // If cache control is already set on the response we don't\n // override it to allow users to customize it via next.config\n if (cacheControl && !res.getHeader('Cache-Control')) {\n res.setHeader('Cache-Control', getCacheControlHeader(cacheControl));\n }\n const payload = result.isDynamic ? null : result.toUnchunkedString();\n if (generateEtags && payload !== null) {\n const etag = generateETag(payload);\n if (sendEtagResponse(req, res, etag)) {\n return;\n }\n }\n if (!res.getHeader('Content-Type') && result.contentType) {\n res.setHeader('Content-Type', result.contentType);\n }\n if (payload) {\n res.setHeader('Content-Length', Buffer.byteLength(payload));\n }\n if (req.method === 'HEAD') {\n res.end(null);\n return;\n }\n if (payload !== null) {\n res.end(payload);\n return;\n }\n // Pipe the render result to the response after we get a writer for it.\n await result.pipeToNodeResponse(res);\n}\n\n//# sourceMappingURL=send-payload.js.map","/**\n * Web vitals provided to _app.reportWebVitals by Core Web Vitals plugin developed by Google Chrome team.\n * https://nextjs.org/blog/next-9-4#integrated-web-vitals-reporting\n */ export const WEB_VITALS = [\n 'CLS',\n 'FCP',\n 'INP',\n 'LCP',\n 'TTFB'\n];\n/**\n * Utils\n */ export function execOnce(fn) {\n let used = false;\n let result;\n return (...args)=>{\n if (!used) {\n used = true;\n result = fn(...args);\n }\n return result;\n };\n}\n// Scheme: https://tools.ietf.org/html/rfc3986#section-3.1\n// Absolute URL: https://tools.ietf.org/html/rfc3986#section-4.3\nconst ABSOLUTE_URL_REGEX = /^[a-zA-Z][a-zA-Z\\d+\\-.]*?:/;\nexport const isAbsoluteUrl = (url)=>{\n // Fast path: an absolute URL must start with a letter (the scheme).\n // Check for a-z and A-Z without the cost of the regex.\n const c = url.charCodeAt(0);\n const isLetter = c >= 65 /* A */ && c <= 90 || c >= 97 /* a */ && c <= 122;\n /* z */ if (!isLetter) {\n return false;\n }\n return ABSOLUTE_URL_REGEX.test(url);\n};\nexport function getLocationOrigin() {\n const { protocol, hostname, port } = window.location;\n return `${protocol}//${hostname}${port ? ':' + port : ''}`;\n}\nexport function getURL() {\n const { href } = window.location;\n const origin = getLocationOrigin();\n return href.substring(origin.length);\n}\nexport function getDisplayName(Component) {\n return typeof Component === 'string' ? Component : Component.displayName || Component.name || 'Unknown';\n}\nexport function isResSent(res) {\n return res.finished || res.headersSent;\n}\nexport function normalizeRepeatedSlashes(url) {\n const urlParts = url.split('?');\n const urlNoQuery = urlParts[0];\n return urlNoQuery// first we replace any non-encoded backslashes with forward\n // then normalize repeated forward slashes\n .replace(/\\\\/g, '/').replace(/\\/\\/+/g, '/') + (urlParts[1] ? `?${urlParts.slice(1).join('?')}` : '');\n}\nexport async function loadGetInitialProps(App, ctx) {\n if (process.env.NODE_ENV !== 'production') {\n if (App.prototype?.getInitialProps) {\n const message = `\"${getDisplayName(App)}.getInitialProps()\" is defined as an instance method - visit https://nextjs.org/docs/messages/get-initial-props-as-an-instance-method for more information.`;\n throw new Error(message);\n }\n }\n // when called from _app `ctx` is nested in `ctx`\n const res = ctx.res || ctx.ctx && ctx.ctx.res;\n if (!App.getInitialProps) {\n if (ctx.ctx && ctx.Component) {\n // @ts-ignore pageProps default\n return {\n pageProps: await loadGetInitialProps(ctx.Component, ctx.ctx)\n };\n }\n return {};\n }\n const props = await App.getInitialProps(ctx);\n if (res && isResSent(res)) {\n return props;\n }\n if (!props) {\n const message = `\"${getDisplayName(App)}.getInitialProps()\" should resolve to an object. But found \"${props}\" instead.`;\n throw new Error(message);\n }\n if (process.env.NODE_ENV !== 'production') {\n if (Object.keys(props).length === 0 && !ctx.ctx) {\n console.warn(`${getDisplayName(App)} returned an empty object from \\`getInitialProps\\`. This de-optimizes and prevents automatic static optimization. https://nextjs.org/docs/messages/empty-object-getInitialProps`);\n }\n }\n return props;\n}\nexport const SP = typeof performance !== 'undefined';\nexport const ST = SP && [\n 'mark',\n 'measure',\n 'getEntriesByName'\n].every((method)=>typeof performance[method] === 'function');\nexport class DecodeError extends Error {\n}\nexport class NormalizeError extends Error {\n}\nexport class PageNotFoundError extends Error {\n constructor(page){\n super();\n this.code = 'ENOENT';\n this.name = 'PageNotFoundError';\n this.message = `Cannot find module for page: ${page}`;\n }\n}\nexport class MissingStaticPage extends Error {\n constructor(page, message){\n super();\n this.message = `Failed to load static file for page: ${page} ${message}`;\n }\n}\nexport class MiddlewareNotFoundError extends Error {\n constructor(){\n super();\n this.code = 'ENOENT';\n this.message = `Cannot find the middleware module`;\n }\n}\nexport function stringifyError(error) {\n return JSON.stringify({\n message: error.message,\n stack: error.stack\n });\n}\n\n//# sourceMappingURL=utils.js.map","/**\n * FNV-1a Hash implementation\n * @author Travis Webb (tjwebb) \n *\n * Ported from https://github.com/tjwebb/fnv-plus/blob/master/index.js\n *\n * Simplified, optimized and add modified for 52 bit, which provides a larger hash space\n * and still making use of Javascript's 53-bit integer space.\n */ export const fnv1a52 = (str)=>{\n const len = str.length;\n let i = 0, t0 = 0, v0 = 0x2325, t1 = 0, v1 = 0x8422, t2 = 0, v2 = 0x9ce4, t3 = 0, v3 = 0xcbf2;\n while(i < len){\n v0 ^= str.charCodeAt(i++);\n t0 = v0 * 435;\n t1 = v1 * 435;\n t2 = v2 * 435;\n t3 = v3 * 435;\n t2 += v0 << 8;\n t3 += v1 << 8;\n t1 += t0 >>> 16;\n v0 = t0 & 65535;\n t2 += t1 >>> 16;\n v1 = t1 & 65535;\n v3 = t3 + (t2 >>> 16) & 65535;\n v2 = t2 & 65535;\n }\n return (v3 & 15) * 281474976710656 + v2 * 4294967296 + v1 * 65536 + (v0 ^ v3 >> 4);\n};\nexport const generateETag = (payload, weak = false)=>{\n const prefix = weak ? 'W/\"' : '\"';\n return prefix + fnv1a52(payload).toString(36) + payload.length.toString(36) + '\"';\n};\n\n//# sourceMappingURL=etag.js.map","export const ENCODED_TAGS = {\n // opening tags do not have the closing `>` since they can contain other attributes such as ``\n OPENING: {\n // \n HEAD: new Uint8Array([60, 47, 104, 101, 97, 100, 62]),\n // \n BODY: new Uint8Array([60, 47, 98, 111, 100, 121, 62]),\n // \n HTML: new Uint8Array([60, 47, 104, 116, 109, 108, 62]),\n // \n BODY_AND_HTML: new Uint8Array([\n 60, 47, 98, 111, 100, 121, 62, 60, 47, 104, 116, 109, 108, 62,\n ]),\n },\n META: {\n // Only the match the prefix cause the suffix can be different whether it's xml compatible or not \">\" or \"/>\"\n // nextStream.pipeTo(writable, {\n preventClose: true\n }));\n }\n // We can omit the length check because we halted before the last stream and there\n // is at least two streams so the lastStream here will always be defined\n const lastStream = streams[i];\n promise = promise.then(()=>lastStream.pipeTo(writable));\n // Catch any errors from the streams and ignore them, they will be handled\n // by whatever is consuming the readable stream.\n promise.catch(voidCatch);\n return readable;\n}\nexport function streamFromString(str) {\n return new ReadableStream({\n start (controller) {\n controller.enqueue(encoder.encode(str));\n controller.close();\n }\n });\n}\n/**\n * Creates a stream that delivers `chunk` and then closes.\n *\n * The stream is a default stream, and it has to stay one. A byte stream (`type:\n * 'bytes'`) transfers the buffer of each chunk that it receives, which detaches\n * `chunk`. A caller that keeps `chunk` to serve more than one read, such as an\n * in-memory cache handler, loses the data on the first read.\n *\n * Every reader receives the same `chunk` instance. A reader that modifies it\n * changes what later readers see.\n */ export function streamFromBuffer(chunk) {\n return new ReadableStream({\n start (controller) {\n controller.enqueue(chunk);\n controller.close();\n }\n });\n}\nasync function streamToChunks(stream) {\n const reader = stream.getReader();\n const chunks = [];\n while(true){\n const { done, value } = await reader.read();\n if (done) {\n break;\n }\n chunks.push(value);\n }\n return chunks;\n}\nfunction concatUint8Arrays(chunks) {\n const totalLength = chunks.reduce((sum, chunk)=>sum + chunk.length, 0);\n const result = new Uint8Array(totalLength);\n let offset = 0;\n for (const chunk of chunks){\n result.set(chunk, offset);\n offset += chunk.length;\n }\n return result;\n}\nexport async function webstreamToUint8Array(stream) {\n return concatUint8Arrays(await streamToChunks(stream));\n}\nfunction webToReadable(stream) {\n if (process.env.NEXT_RUNTIME === 'edge') {\n throw new Error('webToReadable cannot be used in the edge runtime');\n } else {\n let Readable;\n if (process.env.TURBOPACK) {\n Readable = require('node:stream').Readable;\n } else if (process.env.__NEXT_BUNDLER === 'Webpack' || process.env.__NEXT_BUNDLER === 'Rspack') {\n Readable = __non_webpack_require__('node:stream').Readable;\n } else {\n Readable = require('node:stream').Readable;\n }\n if (stream instanceof Readable) {\n return stream;\n }\n return Readable.fromWeb(stream);\n }\n}\nexport async function nodestreamToUint8Array(stream) {\n const chunks = [];\n for await (const chunk of webToReadable(stream)){\n chunks.push(typeof chunk === 'string' ? Buffer.from(chunk) : chunk);\n }\n return Buffer.concat(chunks);\n}\nexport async function streamToUint8Array(stream) {\n if (process.env.NEXT_RUNTIME === 'edge') {\n // Edge runtime always uses web streams\n return webstreamToUint8Array(stream);\n } else {\n let Readable;\n if (process.env.TURBOPACK) {\n Readable = require('node:stream').Readable;\n } else if (process.env.__NEXT_BUNDLER === 'Webpack' || process.env.__NEXT_BUNDLER === 'Rspack') {\n Readable = __non_webpack_require__('node:stream').Readable;\n } else {\n Readable = require('node:stream').Readable;\n }\n if (stream instanceof Readable) {\n return nodestreamToUint8Array(stream);\n }\n return webstreamToUint8Array(stream);\n }\n}\nexport async function streamToBuffer(stream) {\n return Buffer.concat(await streamToChunks(stream));\n}\nexport async function streamToString(stream, signal) {\n const decoder = new TextDecoder('utf-8', {\n fatal: true\n });\n let string = '';\n for await (const chunk of stream){\n if (signal == null ? void 0 : signal.aborted) {\n return string;\n }\n string += decoder.decode(chunk, {\n stream: true\n });\n }\n string += decoder.decode();\n return string;\n}\nexport function createBufferedTransformStream(options = {}) {\n const { maxBufferByteLength = Infinity } = options;\n let bufferedChunks = [];\n let bufferByteLength = 0;\n let pending;\n const flush = (controller)=>{\n try {\n if (bufferedChunks.length === 0) {\n return;\n }\n const chunk = new Uint8Array(bufferByteLength);\n let copiedBytes = 0;\n for(let i = 0; i < bufferedChunks.length; i++){\n const bufferedChunk = bufferedChunks[i];\n chunk.set(bufferedChunk, copiedBytes);\n copiedBytes += bufferedChunk.byteLength;\n }\n // We just wrote all the buffered chunks so we need to reset the bufferedChunks array\n // and our bufferByteLength to prepare for the next round of buffered chunks\n bufferedChunks.length = 0;\n bufferByteLength = 0;\n controller.enqueue(chunk);\n } catch {\n // If an error occurs while enqueuing, it can't be due to this\n // transformer. It's most likely caused by the controller having been\n // errored (for example, if the stream was cancelled).\n }\n };\n const scheduleFlush = (controller)=>{\n if (pending) {\n return;\n }\n const detached = createPromiseWithResolvers();\n pending = detached;\n scheduleImmediate(()=>{\n try {\n flush(controller);\n } finally{\n pending = undefined;\n detached.resolve();\n }\n });\n };\n return new TransformStream({\n transform (chunk, controller) {\n // Combine the previous buffer with the new chunk.\n bufferedChunks.push(chunk);\n bufferByteLength += chunk.byteLength;\n if (bufferByteLength >= maxBufferByteLength) {\n flush(controller);\n } else {\n scheduleFlush(controller);\n }\n },\n flush () {\n return pending == null ? void 0 : pending.promise;\n }\n });\n}\n// TODO this is currently unused but once we add proper output:export support, it needs to be\n// revisited. See https://github.com/vercel/next.js/pull/89478 for more details\n//\n// function createPrefetchCommentStream(\n// isBuildTimePrerendering: boolean,\n// buildId: string\n// ): TransformStream {\n// // Insert an extra comment at the beginning of the HTML document. This must\n// // come after the DOCTYPE, which is inserted by React.\n// //\n// // The first chunk sent by React will contain the doctype. After that, we can\n// // pass through the rest of the chunks as-is.\n// let didTransformFirstChunk = false\n// return new TransformStream({\n// transform(chunk, controller) {\n// if (isBuildTimePrerendering && !didTransformFirstChunk) {\n// didTransformFirstChunk = true\n// const decoder = new TextDecoder('utf-8', { fatal: true })\n// const chunkStr = decoder.decode(chunk, {\n// stream: true,\n// })\n// const updatedChunkStr = insertBuildIdComment(chunkStr, buildId)\n// controller.enqueue(encoder.encode(updatedChunkStr))\n// return\n// }\n// controller.enqueue(chunk)\n// },\n// })\n// }\nexport function renderToInitialFizzStream({ ReactDOMServer, element, streamOptions }) {\n return getTracer().trace(AppRenderSpan.renderToReadableStream, async ()=>ReactDOMServer.renderToReadableStream(element, streamOptions));\n}\nexport function createMetadataTransformStream(insert) {\n let chunkIndex = -1;\n let isMarkRemoved = false;\n return new TransformStream({\n async transform (chunk, controller) {\n let iconMarkIndex = -1;\n let closedHeadIndex = -1;\n chunkIndex++;\n if (isMarkRemoved) {\n controller.enqueue(chunk);\n return;\n }\n let iconMarkLength = 0;\n // Only search for the closed head tag once\n if (iconMarkIndex === -1) {\n iconMarkIndex = indexOfUint8Array(chunk, ENCODED_TAGS.META.ICON_MARK);\n if (iconMarkIndex === -1) {\n controller.enqueue(chunk);\n return;\n } else {\n // When we found the `` or `>`, checking the next char to ensure we cover both cases.\n iconMarkLength = ENCODED_TAGS.META.ICON_MARK.length;\n // Check if next char is /, this is for xml mode.\n if (chunk[iconMarkIndex + iconMarkLength] === 47) {\n iconMarkLength += 2;\n } else {\n // The last char is `>`\n iconMarkLength++;\n }\n }\n }\n // Check if icon mark is inside tag in the first chunk.\n if (chunkIndex === 0) {\n closedHeadIndex = indexOfUint8Array(chunk, ENCODED_TAGS.CLOSED.HEAD);\n if (iconMarkIndex !== -1) {\n // The mark icon is located in the 1st chunk before the head tag.\n // We do not need to insert the script tag in this case because it's in the head.\n // Just remove the icon mark from the chunk.\n if (iconMarkIndex < closedHeadIndex) {\n const replaced = new Uint8Array(chunk.length - iconMarkLength);\n // Remove the icon mark from the chunk.\n replaced.set(chunk.subarray(0, iconMarkIndex));\n replaced.set(chunk.subarray(iconMarkIndex + iconMarkLength), iconMarkIndex);\n chunk = replaced;\n } else {\n // The icon mark is after the head tag, replace and insert the script tag at that position.\n const insertion = await insert();\n const encodedInsertion = encoder.encode(insertion);\n const insertionLength = encodedInsertion.length;\n const replaced = new Uint8Array(chunk.length - iconMarkLength + insertionLength);\n replaced.set(chunk.subarray(0, iconMarkIndex));\n replaced.set(encodedInsertion, iconMarkIndex);\n replaced.set(chunk.subarray(iconMarkIndex + iconMarkLength), iconMarkIndex + insertionLength);\n chunk = replaced;\n }\n isMarkRemoved = true;\n }\n // If there's no icon mark located, it will be handled later when if present in the following chunks.\n } else {\n // When it's appeared in the following chunks, we'll need to\n // remove the mark and then insert the script tag at that position.\n const insertion = await insert();\n const encodedInsertion = encoder.encode(insertion);\n const insertionLength = encodedInsertion.length;\n // Replace the icon mark with the hoist script or empty string.\n const replaced = new Uint8Array(chunk.length - iconMarkLength + insertionLength);\n // Set the first part of the chunk, before the icon mark.\n replaced.set(chunk.subarray(0, iconMarkIndex));\n // Set the insertion after the icon mark.\n replaced.set(encodedInsertion, iconMarkIndex);\n // Set the rest of the chunk after the icon mark.\n replaced.set(chunk.subarray(iconMarkIndex + iconMarkLength), iconMarkIndex + insertionLength);\n chunk = replaced;\n isMarkRemoved = true;\n }\n controller.enqueue(chunk);\n }\n });\n}\nexport function createHeadInsertionTransformStream(insert) {\n let inserted = false;\n // We need to track if this transform saw any bytes because if it didn't\n // we won't want to insert any server HTML at all\n let hasBytes = false;\n return new TransformStream({\n async transform (chunk, controller) {\n hasBytes = true;\n const insertion = await insert();\n if (inserted) {\n if (insertion) {\n const encodedInsertion = encoder.encode(insertion);\n controller.enqueue(encodedInsertion);\n }\n controller.enqueue(chunk);\n } else {\n // TODO (@Ethan-Arrowood): Replace the generic `indexOfUint8Array` method with something finely tuned for the subset of things actually being checked for.\n const index = indexOfUint8Array(chunk, ENCODED_TAGS.CLOSED.HEAD);\n // In fully static rendering or non PPR rendering cases:\n // `/head>` will always be found in the chunk in first chunk rendering.\n if (index !== -1) {\n if (insertion) {\n const encodedInsertion = encoder.encode(insertion);\n // Get the total count of the bytes in the chunk and the insertion\n // e.g.\n // chunk = \n // insertion = \n // output = [ ] \n const insertedHeadContent = new Uint8Array(chunk.length + encodedInsertion.length);\n // Append the first part of the chunk, before the head tag\n insertedHeadContent.set(chunk.slice(0, index));\n // Append the server inserted content\n insertedHeadContent.set(encodedInsertion, index);\n // Append the rest of the chunk\n insertedHeadContent.set(chunk.slice(index), index + encodedInsertion.length);\n controller.enqueue(insertedHeadContent);\n } else {\n controller.enqueue(chunk);\n }\n inserted = true;\n } else {\n // This will happens in PPR rendering during next start, when the page is partially rendered.\n // When the page resumes, the head tag will be found in the middle of the chunk.\n // Where we just need to append the insertion and chunk to the current stream.\n // e.g.\n // PPR-static: ... [ resume content ] \n // PPR-resume: [ insertion ] [ rest content ]\n if (insertion) {\n controller.enqueue(encoder.encode(insertion));\n }\n controller.enqueue(chunk);\n inserted = true;\n }\n }\n },\n async flush (controller) {\n // Check before closing if there's anything remaining to insert.\n if (hasBytes) {\n const insertion = await insert();\n if (insertion) {\n controller.enqueue(encoder.encode(insertion));\n }\n }\n }\n });\n}\nasync function createClientResumeScriptInsertionTransformStream() {\n const segmentPath = '/_full';\n const cacheBustingHeader = await computeCacheBustingSearchParam('1', '/_full', undefined, undefined // headers[NEXT_URL]\n );\n const searchStr = `${NEXT_RSC_UNION_QUERY}=${cacheBustingHeader}`;\n const NEXT_CLIENT_RESUME_SCRIPT = ``;\n let didAlreadyInsert = false;\n return new TransformStream({\n transform (chunk, controller) {\n if (didAlreadyInsert) {\n // Already inserted the script into the head. Pass through.\n controller.enqueue(chunk);\n return;\n }\n // TODO (@Ethan-Arrowood): Replace the generic `indexOfUint8Array` method with something finely tuned for the subset of things actually being checked for.\n const headClosingTagIndex = indexOfUint8Array(chunk, ENCODED_TAGS.CLOSED.HEAD);\n if (headClosingTagIndex === -1) {\n // In fully static rendering or non PPR rendering cases:\n // `/head>` will always be found in the chunk in first chunk rendering.\n controller.enqueue(chunk);\n return;\n }\n const encodedInsertion = encoder.encode(NEXT_CLIENT_RESUME_SCRIPT);\n // Get the total count of the bytes in the chunk and the insertion\n // e.g.\n // chunk = \n // insertion = \n // output = [ ] \n const insertedHeadContent = new Uint8Array(chunk.length + encodedInsertion.length);\n // Append the first part of the chunk, before the head tag\n insertedHeadContent.set(chunk.slice(0, headClosingTagIndex));\n // Append the server inserted content\n insertedHeadContent.set(encodedInsertion, headClosingTagIndex);\n // Append the rest of the chunk\n insertedHeadContent.set(chunk.slice(headClosingTagIndex), headClosingTagIndex + encodedInsertion.length);\n controller.enqueue(insertedHeadContent);\n didAlreadyInsert = true;\n }\n });\n}\n// Suffix after main body content - scripts before ,\n// but wait for the major chunks to be enqueued.\nexport function createDeferredSuffixStream(suffix) {\n let flushed = false;\n let pending;\n const flush = (controller)=>{\n const detached = createPromiseWithResolvers();\n pending = detached;\n scheduleImmediate(()=>{\n try {\n controller.enqueue(encoder.encode(suffix));\n } catch {\n // If an error occurs while enqueuing it can't be due to this\n // transformers fault. It's likely due to the controller being\n // errored due to the stream being cancelled.\n } finally{\n pending = undefined;\n detached.resolve();\n }\n });\n };\n return new TransformStream({\n transform (chunk, controller) {\n controller.enqueue(chunk);\n // If we've already flushed, we're done.\n if (flushed) return;\n // Schedule the flush to happen.\n flushed = true;\n flush(controller);\n },\n flush (controller) {\n if (pending) return pending.promise;\n if (flushed) return;\n // Flush now.\n controller.enqueue(encoder.encode(suffix));\n }\n });\n}\nexport function createFlightDataInjectionTransformStream(stream, delayDataUntilFirstHtmlChunk) {\n let htmlStreamFinished = false;\n let pull = null;\n let donePulling = false;\n function startOrContinuePulling(controller) {\n if (!pull) {\n pull = startPulling(controller);\n }\n return pull;\n }\n async function startPulling(controller) {\n const reader = stream.getReader();\n if (delayDataUntilFirstHtmlChunk) {\n // NOTE: streaming flush\n // We are buffering here for the inlined data stream because the\n // \"shell\" stream might be chunkenized again by the underlying stream\n // implementation, e.g. with a specific high-water mark. To ensure it's\n // the safe timing to pipe the data stream, this extra tick is\n // necessary.\n // We don't start reading until we've left the current Task to ensure\n // that it's inserted after flushing the shell. Note that this implementation\n // might get stale if impl details of Fizz change in the future.\n await atLeastOneTask();\n }\n try {\n while(true){\n const { done, value } = await reader.read();\n if (done) {\n donePulling = true;\n return;\n }\n // We want to prioritize HTML over RSC data.\n // The SSR render is based on the same RSC stream, so when we get a new RSC chunk,\n // we're likely to produce an HTML chunk as well, so give it a chance to flush first.\n if (!delayDataUntilFirstHtmlChunk && !htmlStreamFinished) {\n await atLeastOneTask();\n }\n controller.enqueue(value);\n }\n } catch (err) {\n controller.error(err);\n }\n }\n return new TransformStream({\n start (controller) {\n if (!delayDataUntilFirstHtmlChunk) {\n startOrContinuePulling(controller);\n }\n },\n transform (chunk, controller) {\n controller.enqueue(chunk);\n // Start the streaming if it hasn't already been started yet.\n if (delayDataUntilFirstHtmlChunk) {\n startOrContinuePulling(controller);\n }\n },\n flush (controller) {\n htmlStreamFinished = true;\n if (donePulling) {\n return;\n }\n return startOrContinuePulling(controller);\n }\n });\n}\nexport const CLOSE_TAG = '';\n/**\n * This transform stream moves the suffix to the end of the stream, so results\n * like `` will be transformed to\n * ``.\n */ export function createMoveSuffixStream() {\n let foundSuffix = false;\n return new TransformStream({\n transform (chunk, controller) {\n if (foundSuffix) {\n return controller.enqueue(chunk);\n }\n const index = indexOfUint8Array(chunk, ENCODED_TAGS.CLOSED.BODY_AND_HTML);\n if (index > -1) {\n foundSuffix = true;\n // If the whole chunk is the suffix, then don't write anything, it will\n // be written in the flush.\n if (chunk.length === ENCODED_TAGS.CLOSED.BODY_AND_HTML.length) {\n return;\n }\n // Write out the part before the suffix.\n const before = chunk.slice(0, index);\n controller.enqueue(before);\n // In the case where the suffix is in the middle of the chunk, we need\n // to split the chunk into two parts.\n if (chunk.length > ENCODED_TAGS.CLOSED.BODY_AND_HTML.length + index) {\n // Write out the part after the suffix.\n const after = chunk.slice(index + ENCODED_TAGS.CLOSED.BODY_AND_HTML.length);\n controller.enqueue(after);\n }\n } else {\n controller.enqueue(chunk);\n }\n },\n flush (controller) {\n // Even if we didn't find the suffix, the HTML is not valid if we don't\n // add it, so insert it at the end.\n controller.enqueue(ENCODED_TAGS.CLOSED.BODY_AND_HTML);\n }\n });\n}\nfunction createStripDocumentClosingTagsTransform() {\n return new TransformStream({\n transform (chunk, controller) {\n // We rely on the assumption that chunks will never break across a code unit.\n // This is reasonable because we currently concat all of React's output from a single\n // flush into one chunk before streaming it forward which means the chunk will represent\n // a single coherent utf-8 string. This is not safe to use if we change our streaming to no\n // longer do this large buffered chunk\n if (isEquivalentUint8Arrays(chunk, ENCODED_TAGS.CLOSED.BODY_AND_HTML) || isEquivalentUint8Arrays(chunk, ENCODED_TAGS.CLOSED.BODY) || isEquivalentUint8Arrays(chunk, ENCODED_TAGS.CLOSED.HTML)) {\n // the entire chunk is the closing tags; return without enqueueing anything.\n return;\n }\n // We assume these tags will go at together at the end of the document and that\n // they won't appear anywhere else in the document. This is not really a safe assumption\n // but until we revamp our streaming infra this is a performant way to string the tags\n chunk = removeFromUint8Array(chunk, ENCODED_TAGS.CLOSED.BODY);\n chunk = removeFromUint8Array(chunk, ENCODED_TAGS.CLOSED.HTML);\n controller.enqueue(chunk);\n }\n });\n}\nexport function createHtmlDataDplIdTransformStream(dplId) {\n let didTransform = false;\n return new TransformStream({\n transform (chunk, controller) {\n if (didTransform) {\n controller.enqueue(chunk);\n return;\n }\n const htmlTagIndex = indexOfUint8Array(chunk, ENCODED_TAGS.OPENING.HTML);\n if (htmlTagIndex === -1) {\n controller.enqueue(chunk);\n return;\n }\n // Insert the data-dpl-id attribute right after \" -1) {\n foundHtml = true;\n }\n if (!foundBody && indexOfUint8Array(chunk, ENCODED_TAGS.OPENING.BODY) > -1) {\n foundBody = true;\n }\n controller.enqueue(chunk);\n },\n flush (controller) {\n const missingTags = [];\n if (!foundHtml) missingTags.push('html');\n if (!foundBody) missingTags.push('body');\n if (!missingTags.length) return;\n controller.enqueue(encoder.encode(`\n `<${c}>`).join(missingTags.length > 1 ? ' and ' : '')} tags in the root layout.\\nRead more at https://nextjs.org/docs/messages/missing-root-layout-tags\"\n data-next-error-digest=\"${MISSING_ROOT_TAGS_ERROR}\"\n data-next-error-stack=\"\"\n >\n `));\n }\n });\n}\nexport function chainTransformers(readable, transformers) {\n let stream = readable;\n for (const transformer of transformers){\n if (!transformer) continue;\n stream = stream.pipeThrough(transformer);\n }\n return stream;\n}\nexport async function continueFizzStream(renderStream, { suffix, inlinedDataStream, waitForAllReady, deploymentId, getServerInsertedHTML, getServerInsertedMetadata, validateRootLayout }) {\n // Suffix itself might contain close tags at the end, so we need to split it.\n const suffixUnclosed = suffix ? suffix.split(CLOSE_TAG, 1)[0] : null;\n if (waitForAllReady) {\n // Wait for all Suspense boundaries to resolve before continuing.\n await renderStream.allReady;\n } else {\n // Otherwise, we want to make sure Fizz is done with all microtasky work\n // before we start pulling the stream and cause a flush.\n await waitAtLeastOneReactRenderTask();\n }\n return chainTransformers(renderStream, [\n // Buffer everything to avoid flushing too frequently\n createBufferedTransformStream(),\n // Insert data-dpl-id attribute on the html tag\n deploymentId ? createHtmlDataDplIdTransformStream(deploymentId) : null,\n // Transform metadata\n createMetadataTransformStream(getServerInsertedMetadata),\n // Insert suffix content\n suffixUnclosed != null && suffixUnclosed.length > 0 ? createDeferredSuffixStream(suffixUnclosed) : null,\n // Insert the inlined data (Flight data, form state, etc.) stream into the HTML\n inlinedDataStream ? createFlightDataInjectionTransformStream(inlinedDataStream, true) : null,\n // Validate the root layout for missing html or body tags\n validateRootLayout ? createRootLayoutValidatorStream() : null,\n // Close tags should always be deferred to the end\n createMoveSuffixStream(),\n // Special head insertions\n // TODO-APP: Insert server side html to end of head in app layout rendering, to avoid\n // hydration errors. Remove this once it's ready to be handled by react itself.\n createHeadInsertionTransformStream(getServerInsertedHTML)\n ]);\n}\nexport async function continueDynamicPrerender(prerenderStream, { getServerInsertedHTML, getServerInsertedMetadata, deploymentId }) {\n return chainTransformers(prerenderStream, [\n // Buffer everything to avoid flushing too frequently\n createBufferedTransformStream(),\n createStripDocumentClosingTagsTransform(),\n // Insert data-dpl-id attribute on the html tag\n deploymentId ? createHtmlDataDplIdTransformStream(deploymentId) : null,\n // Insert generated tags to head\n createHeadInsertionTransformStream(getServerInsertedHTML),\n // Transform metadata\n createMetadataTransformStream(getServerInsertedMetadata)\n ]);\n}\nexport async function continueStaticPrerender(prerenderStream, { inlinedDataStream, getServerInsertedHTML, getServerInsertedMetadata, deploymentId }) {\n return chainTransformers(prerenderStream, [\n // Buffer everything to avoid flushing too frequently\n createBufferedTransformStream(),\n // Add build id comment to start of the HTML document (in export mode)\n // Insert data-dpl-id attribute on the html tag\n deploymentId ? createHtmlDataDplIdTransformStream(deploymentId) : null,\n // Insert generated tags to head\n createHeadInsertionTransformStream(getServerInsertedHTML),\n // Transform metadata\n createMetadataTransformStream(getServerInsertedMetadata),\n // Insert the inlined data (Flight data, form state, etc.) stream into the HTML\n createFlightDataInjectionTransformStream(inlinedDataStream, true),\n // Close tags should always be deferred to the end\n createMoveSuffixStream()\n ]);\n}\nexport async function continueStaticFallbackPrerender(prerenderStream, { inlinedDataStream, getServerInsertedHTML, getServerInsertedMetadata, deploymentId }) {\n // Same as `continueStaticPrerender`, but also inserts an additional script\n // to instruct the client to start fetching the hydration data as early\n // as possible.\n return chainTransformers(prerenderStream, [\n // Buffer everything to avoid flushing too frequently\n createBufferedTransformStream(),\n // Insert data-dpl-id attribute on the html tag\n deploymentId ? createHtmlDataDplIdTransformStream(deploymentId) : null,\n // Insert generated tags to head\n createHeadInsertionTransformStream(getServerInsertedHTML),\n // Insert the client resume script into the head\n await createClientResumeScriptInsertionTransformStream(),\n // Transform metadata\n createMetadataTransformStream(getServerInsertedMetadata),\n // Insert the inlined data (Flight data, form state, etc.) stream into the HTML\n createFlightDataInjectionTransformStream(inlinedDataStream, true),\n // Close tags should always be deferred to the end\n createMoveSuffixStream()\n ]);\n}\nexport async function continueDynamicHTMLResume(renderStream, { delayDataUntilFirstHtmlChunk, inlinedDataStream, getServerInsertedHTML, getServerInsertedMetadata, deploymentId }) {\n return chainTransformers(renderStream, [\n // Buffer everything to avoid flushing too frequently\n createBufferedTransformStream(),\n // Insert data-dpl-id attribute on the html tag\n deploymentId ? createHtmlDataDplIdTransformStream(deploymentId) : null,\n // Insert generated tags to head\n createHeadInsertionTransformStream(getServerInsertedHTML),\n // Transform metadata\n createMetadataTransformStream(getServerInsertedMetadata),\n // Insert the inlined data (Flight data, form state, etc.) stream into the HTML\n createFlightDataInjectionTransformStream(inlinedDataStream, delayDataUntilFirstHtmlChunk),\n // Close tags should always be deferred to the end\n createMoveSuffixStream()\n ]);\n}\nexport function createDocumentClosingStream() {\n return streamFromString(CLOSE_TAG);\n}\n// ---------------------------------------------------------------------------\n// Runtime prefetch transform (Web streams)\n// ---------------------------------------------------------------------------\n/**\n * Web TransformStream that replaces the runtime prefetch sentinel in an RSC\n * payload stream: `[]` -> `[,]`.\n *\n * This is the web equivalent of createRuntimePrefetchNodeTransform\n * in node-stream-helpers.ts.\n */ export function createRuntimePrefetchTransformStream(sentinel, isPartial, staleTime) {\n const enc = new TextEncoder();\n // Search for: []\n // Replace with: [,]\n const search = enc.encode(`[${sentinel}]`);\n const first = search[0];\n const replace = enc.encode(`[${isPartial},${staleTime}]`);\n const searchLen = search.length;\n let currentChunk = null;\n let found = false;\n function processChunk(controller, nextChunk) {\n if (found) {\n if (nextChunk) {\n controller.enqueue(nextChunk);\n }\n return;\n }\n if (currentChunk) {\n // We can't search past the index that can contain a full match\n let exclusiveUpperBound = currentChunk.length - (searchLen - 1);\n if (nextChunk) {\n // If we have any overflow bytes we can search up to the chunk's final byte\n exclusiveUpperBound += Math.min(nextChunk.length, searchLen - 1);\n }\n if (exclusiveUpperBound < 1) {\n // we can't match the current chunk.\n controller.enqueue(currentChunk);\n currentChunk = nextChunk // advance so we don't process this chunk again\n ;\n return;\n }\n let currentIndex = currentChunk.indexOf(first);\n // check the current candidate match if it is within the bounds of our search space for the currentChunk\n candidateLoop: while(-1 < currentIndex && currentIndex < exclusiveUpperBound){\n // We already know index 0 matches because we used indexOf to find the candidateIndex so we start at index 1\n let matchIndex = 1;\n while(matchIndex < searchLen){\n const candidateIndex = currentIndex + matchIndex;\n const candidateValue = candidateIndex < currentChunk.length ? currentChunk[candidateIndex] : nextChunk[candidateIndex - currentChunk.length];\n if (candidateValue !== search[matchIndex]) {\n // No match, reset and continue the search from the next position\n currentIndex = currentChunk.indexOf(first, currentIndex + 1);\n continue candidateLoop;\n }\n matchIndex++;\n }\n // We found a complete match. currentIndex is our starting point to replace the value.\n found = true;\n // enqueue everything up to the match\n controller.enqueue(currentChunk.subarray(0, currentIndex));\n // enqueue the replacement value\n controller.enqueue(replace);\n // If there are bytes in the currentChunk after the match enqueue them\n if (currentIndex + searchLen < currentChunk.length) {\n controller.enqueue(currentChunk.slice(currentIndex + searchLen));\n }\n // If we have a next chunk we enqueue it now\n if (nextChunk) {\n // if replacement spills over to the next chunk we first exclude the replaced bytes\n const overflowBytes = currentIndex + searchLen - currentChunk.length;\n const truncatedChunk = overflowBytes > 0 ? nextChunk.subarray(overflowBytes) : nextChunk;\n controller.enqueue(truncatedChunk);\n }\n // We are now in found mode and don't need to track currentChunk anymore\n currentChunk = null;\n return;\n }\n // No match found in this chunk, emit it and wait for the next one\n controller.enqueue(currentChunk);\n }\n // Advance to the next chunk\n currentChunk = nextChunk;\n }\n return new TransformStream({\n transform (chunk, controller) {\n processChunk(controller, chunk);\n },\n flush (controller) {\n processChunk(controller, null);\n }\n });\n}\n\n//# sourceMappingURL=node-web-streams-helper.js.map","import { getRequestMeta } from '../../../request-meta';\nimport { fromNodeOutgoingHttpHeaders } from '../../utils';\nimport { NextRequest } from '../request';\nimport { isNodeNextRequest, isWebNextRequest } from '../../../base-http/helpers';\nexport const ResponseAbortedName = 'ResponseAborted';\nexport class ResponseAborted extends Error {\n constructor(...args){\n super(...args), this.name = ResponseAbortedName;\n }\n}\n/**\n * Creates an AbortController tied to the closing of a ServerResponse (or other\n * appropriate Writable).\n *\n * If the `close` event is fired before the `finish` event, then we'll send the\n * `abort` signal.\n */ export function createAbortController(response) {\n const controller = new AbortController();\n // If `finish` fires first, then `res.end()` has been called and the close is\n // just us finishing the stream on our side. If `close` fires first, then we\n // know the client disconnected before we finished.\n response.once('close', ()=>{\n if (response.writableFinished) return;\n controller.abort(new ResponseAborted());\n });\n return controller;\n}\n/**\n * Creates an AbortSignal tied to the closing of a ServerResponse (or other\n * appropriate Writable).\n *\n * This cannot be done with the request (IncomingMessage or Readable) because\n * the `abort` event will not fire if to data has been fully read (because that\n * will \"close\" the readable stream and nothing fires after that).\n */ export function signalFromNodeResponse(response) {\n const { errored, destroyed } = response;\n if (errored || destroyed) {\n return AbortSignal.abort(errored ?? new ResponseAborted());\n }\n const { signal } = createAbortController(response);\n return signal;\n}\nexport class NextRequestAdapter {\n static fromBaseNextRequest(request, signal) {\n if (// The type check here ensures that `req` is correctly typed, and the\n // environment variable check provides dead code elimination.\n process.env.NEXT_RUNTIME === 'edge' && isWebNextRequest(request)) {\n return NextRequestAdapter.fromWebNextRequest(request);\n } else if (// The type check here ensures that `req` is correctly typed, and the\n // environment variable check provides dead code elimination.\n process.env.NEXT_RUNTIME !== 'edge' && isNodeNextRequest(request)) {\n return NextRequestAdapter.fromNodeNextRequest(request, signal);\n } else {\n throw new Error('Invariant: Unsupported NextRequest type');\n }\n }\n static fromNodeNextRequest(request, signal) {\n // HEAD and GET requests can not have a body.\n let body = null;\n if (request.method !== 'GET' && request.method !== 'HEAD' && request.body) {\n // @ts-expect-error - this is handled by undici, when streams/web land use it instead\n body = request.body;\n }\n let url;\n if (request.url.startsWith('http')) {\n url = new URL(request.url);\n } else {\n // Grab the full URL from the request metadata.\n const base = getRequestMeta(request, 'initURL');\n if (!base || !base.startsWith('http')) {\n // Because the URL construction relies on the fact that the URL provided\n // is absolute, we need to provide a base URL. We can't use the request\n // URL because it's relative, so we use a dummy URL instead.\n url = new URL(request.url, 'http://n');\n } else {\n url = new URL(request.url, base);\n }\n }\n return new NextRequest(url, {\n method: request.method,\n headers: fromNodeOutgoingHttpHeaders(request.headers),\n duplex: 'half',\n signal,\n // geo\n // ip\n // nextConfig\n // body can not be passed if request was aborted\n // or we get a Request body was disturbed error\n ...signal.aborted ? {} : {\n body\n }\n });\n }\n static fromWebNextRequest(request) {\n // HEAD and GET requests can not have a body.\n let body = null;\n if (request.method !== 'GET' && request.method !== 'HEAD') {\n body = request.body;\n }\n return new NextRequest(request.url, {\n method: request.method,\n headers: fromNodeOutgoingHttpHeaders(request.headers),\n duplex: 'half',\n signal: request.request.signal,\n // geo\n // ip\n // nextConfig\n // body can not be passed if request was aborted\n // or we get a Request body was disturbed error\n ...request.request.signal.aborted ? {} : {\n body\n }\n });\n }\n}\n\n//# sourceMappingURL=next-request.js.map","import { parsePath } from './parse-path';\n/**\n * Adds the provided prefix to the given path. It first ensures that the path\n * is indeed starting with a slash.\n */ export function addPathPrefix(path, prefix) {\n if (!path.startsWith('/') || !prefix) {\n return path;\n }\n const { pathname, query, hash } = parsePath(path);\n return `${prefix}${pathname}${query}${hash}`;\n}\n\n//# sourceMappingURL=add-path-prefix.js.map","import { normalizeLocalePath } from '../../i18n/normalize-locale-path';\nimport { removePathPrefix } from './remove-path-prefix';\nimport { pathHasPrefix } from './path-has-prefix';\nexport function getNextPathnameInfo(pathname, options) {\n const { basePath, i18n, trailingSlash } = options.nextConfig ?? {};\n const info = {\n pathname,\n trailingSlash: pathname !== '/' ? pathname.endsWith('/') : trailingSlash\n };\n if (basePath && pathHasPrefix(info.pathname, basePath)) {\n info.pathname = removePathPrefix(info.pathname, basePath);\n info.basePath = basePath;\n }\n let pathnameNoDataPrefix = info.pathname;\n if (info.pathname.startsWith('/_next/data/') && info.pathname.endsWith('.json')) {\n const paths = info.pathname.replace(/^\\/_next\\/data\\//, '').replace(/\\.json$/, '').split('/');\n const buildId = paths[0];\n info.buildId = buildId;\n pathnameNoDataPrefix = paths[1] !== 'index' ? `/${paths.slice(1).join('/')}` : '/';\n // update pathname with normalized if enabled although\n // we use normalized to populate locale info still\n if (options.parseData === true) {\n info.pathname = pathnameNoDataPrefix;\n }\n }\n // If provided, use the locale route normalizer to detect the locale instead\n // of the function below.\n if (i18n) {\n let result = options.i18nProvider ? options.i18nProvider.analyze(info.pathname) : normalizeLocalePath(info.pathname, i18n.locales);\n info.locale = result.detectedLocale;\n info.pathname = result.pathname ?? info.pathname;\n if (!result.detectedLocale && info.buildId) {\n result = options.i18nProvider ? options.i18nProvider.analyze(pathnameNoDataPrefix) : normalizeLocalePath(pathnameNoDataPrefix, i18n.locales);\n if (result.detectedLocale) {\n info.locale = result.detectedLocale;\n }\n }\n }\n return info;\n}\n\n//# sourceMappingURL=get-next-pathname-info.js.map","export function detectDomainLocale(domainItems, hostname, detectedLocale) {\n if (!domainItems) return;\n if (detectedLocale) {\n detectedLocale = detectedLocale.toLowerCase();\n }\n for (const item of domainItems){\n // remove port if present\n const domainHostname = item.domain?.split(':', 1)[0].toLowerCase();\n if (hostname === domainHostname || detectedLocale === item.defaultLocale.toLowerCase() || item.locales?.some((locale)=>locale.toLowerCase() === detectedLocale)) {\n return item;\n }\n }\n}\n\n//# sourceMappingURL=detect-domain-locale.js.map","export class PageSignatureError extends Error {\n constructor({ page }){\n super(`The middleware \"${page}\" accepts an async API directly with the form:\n \n export function middleware(request, event) {\n return NextResponse.redirect('/new-location')\n }\n \n Read more: https://nextjs.org/docs/messages/middleware-new-signature\n `);\n }\n}\nexport class RemovedPageError extends Error {\n constructor(){\n super(`The request.page has been deprecated in favour of \\`URLPattern\\`.\n Read more: https://nextjs.org/docs/messages/middleware-request-page\n `);\n }\n}\nexport class RemovedUAError extends Error {\n constructor(){\n super(`The request.ua has been removed in favour of \\`userAgent\\` function.\n Read more: https://nextjs.org/docs/messages/middleware-parse-user-agent\n `);\n }\n}\n\n//# sourceMappingURL=error.js.map","import { addPathPrefix } from './add-path-prefix';\nimport { pathHasPrefix } from './path-has-prefix';\n/**\n * For a given path and a locale, if the locale is given, it will prefix the\n * locale. The path shouldn't be an API path. If a default locale is given the\n * prefix will be omitted if the locale is already the default locale.\n */ export function addLocale(path, locale, defaultLocale, ignorePrefix) {\n // If no locale was given or the locale is the default locale, we don't need\n // to prefix the path.\n if (!locale || locale === defaultLocale) return path;\n const lower = path.toLowerCase();\n // If the path is an API path or the path already has the locale prefix, we\n // don't need to prefix the path.\n if (!ignorePrefix) {\n if (pathHasPrefix(lower, '/api')) return path;\n if (pathHasPrefix(lower, `/${locale.toLowerCase()}`)) return path;\n }\n // Add the locale prefix to the path.\n return addPathPrefix(path, `/${locale}`);\n}\n\n//# sourceMappingURL=add-locale.js.map","import { hexHash } from '../../hash';\nconst CACHE_BUSTING_SEARCH_PARAM_DIGEST_BYTES = 12;\nconst textEncoder = new TextEncoder();\nfunction encodeCacheBustingSearchParam(bytes) {\n let binary = '';\n for(let i = 0; i < bytes.length; i++){\n binary += String.fromCharCode(bytes[i]);\n }\n return btoa(binary).replace(/\\+/g, '-').replace(/\\//g, '_').replace(/=+$/, '');\n}\nfunction normalizeCacheBustingInput(value) {\n if (value === undefined) {\n return '0';\n }\n return Array.isArray(value) ? value.join(',') : value;\n}\nfunction createCacheBustingSearchParamInput(prefetchHeader, segmentPrefetchHeader, stateTreeHeader, nextUrlHeader) {\n if ((prefetchHeader === undefined || prefetchHeader === '0') && segmentPrefetchHeader === undefined && stateTreeHeader === undefined && nextUrlHeader === undefined) {\n return null;\n }\n return [\n prefetchHeader ?? '0',\n normalizeCacheBustingInput(segmentPrefetchHeader),\n normalizeCacheBustingInput(stateTreeHeader),\n normalizeCacheBustingInput(nextUrlHeader)\n ].join(',');\n}\nasync function computeCacheBustingSearchParamFromInput(input) {\n // Truncate SHA-256 to 96 bits to keep `_rsc` compact\n const digest = await globalThis.crypto.subtle.digest('SHA-256', textEncoder.encode(input));\n return encodeCacheBustingSearchParam(new Uint8Array(digest).subarray(0, CACHE_BUSTING_SEARCH_PARAM_DIGEST_BYTES));\n}\nexport async function computeCacheBustingSearchParam(prefetchHeader, segmentPrefetchHeader, stateTreeHeader, nextUrlHeader) {\n const input = createCacheBustingSearchParamInput(prefetchHeader, segmentPrefetchHeader, stateTreeHeader, nextUrlHeader);\n if (input === null) {\n return '';\n }\n return computeCacheBustingSearchParamFromInput(input);\n}\nexport function computeLegacyCacheBustingSearchParam(prefetchHeader, segmentPrefetchHeader, stateTreeHeader, nextUrlHeader) {\n const input = createCacheBustingSearchParamInput(prefetchHeader, segmentPrefetchHeader, stateTreeHeader, nextUrlHeader);\n if (input === null) {\n return '';\n }\n return hexHash(input);\n}\n\n//# sourceMappingURL=cache-busting-search-param.js.map","import { ResponseAbortedName, createAbortController } from './web/spec-extension/adapters/next-request';\nimport { createPromiseWithResolvers } from '../shared/lib/promise-with-resolvers';\nimport { getTracer } from './lib/trace/tracer';\nimport { NextNodeServerSpan } from './lib/trace/constants';\nexport function isAbortError(e) {\n return (e == null ? void 0 : e.name) === 'AbortError' || (e == null ? void 0 : e.name) === ResponseAbortedName;\n}\nconst HAS_CLIENT_COMPONENT_METRICS_ENABLED = 'performance' in globalThis && process.env.NEXT_OTEL_PERFORMANCE_PREFIX;\nfunction createWriterFromResponse(res, waitUntilForEnd, clientComponentLoadTracker) {\n let started = false;\n // Create a promise that will resolve once the response has drained. See\n // https://nodejs.org/api/stream.html#stream_event_drain\n let drained = createPromiseWithResolvers();\n function onDrain() {\n drained.resolve();\n }\n res.on('drain', onDrain);\n // If the finish event fires, it means we shouldn't block and wait for the\n // drain event.\n res.once('close', ()=>{\n res.off('drain', onDrain);\n drained.resolve();\n });\n // Create a promise that will resolve once the response has finished. See\n // https://nodejs.org/api/http.html#event-finish_1\n const finished = createPromiseWithResolvers();\n res.once('finish', ()=>{\n finished.resolve();\n });\n // Create a writable stream that will write to the response.\n return new WritableStream({\n write: async (chunk)=>{\n // You'd think we'd want to use `start` instead of placing this in `write`\n // but this ensures that we don't actually flush the headers until we've\n // started writing chunks.\n if (!started) {\n started = true;\n if (HAS_CLIENT_COMPONENT_METRICS_ENABLED) {\n const metrics = clientComponentLoadTracker == null ? void 0 : clientComponentLoadTracker.snapshot();\n if (metrics) {\n performance.measure(`${process.env.NEXT_OTEL_PERFORMANCE_PREFIX}:next-client-component-loading`, {\n start: metrics.clientComponentLoadStart,\n end: metrics.clientComponentLoadStart + metrics.clientComponentLoadTimes\n });\n }\n }\n res.flushHeaders();\n getTracer().trace(NextNodeServerSpan.startResponse, {\n spanName: 'start response'\n }, ()=>undefined);\n }\n try {\n const ok = res.write(chunk);\n // Added by the `compression` middleware, this is a function that will\n // flush the partially-compressed response to the client.\n if ('flush' in res && typeof res.flush === 'function') {\n res.flush();\n }\n // If the write returns false, it means there's some backpressure, so\n // wait until it's streamed before continuing.\n if (!ok) {\n await drained.promise;\n // Reset the drained promise so that we can wait for the next drain event.\n drained = createPromiseWithResolvers();\n }\n } catch (err) {\n res.end();\n throw new Error('failed to write chunk to response', {\n cause: err\n });\n }\n },\n abort: (err)=>{\n if (res.writableFinished) return;\n res.destroy(err);\n },\n close: async ()=>{\n // if a waitUntil promise was passed, wait for it to resolve before\n // ending the response.\n if (waitUntilForEnd) {\n await waitUntilForEnd;\n }\n if (res.writableFinished) return;\n res.end();\n return finished.promise;\n }\n });\n}\nexport async function pipeToNodeResponse(readable, res, waitUntilForEnd, clientComponentLoadTracker) {\n try {\n // If the response has already errored, then just return now.\n const { errored, destroyed } = res;\n if (errored || destroyed) return;\n // Create a new AbortController so that we can abort the readable if the\n // client disconnects.\n const controller = createAbortController(res);\n const writer = createWriterFromResponse(res, waitUntilForEnd, clientComponentLoadTracker);\n await readable.pipeTo(writer, {\n signal: controller.signal\n });\n } catch (err) {\n // If this isn't related to an abort error, re-throw it.\n if (isAbortError(err)) return;\n throw new Error('failed to pipe response', {\n cause: err\n });\n }\n}\nexport async function pipeNodeReadableToNodeResponse(readable, res, waitUntilForEnd, clientComponentLoadTracker) {\n try {\n const { errored, destroyed } = res;\n if (errored || destroyed) return;\n let started = false;\n const finished = createPromiseWithResolvers();\n // One `drain` listener for the whole response, as in\n // `createWriterFromResponse` above. It must not be `res.once('drain')` per\n // backpressured write: the `compression` middleware forwards `res.on` to\n // its zlib stream but leaves `removeListener` pointing at the response, so\n // a `once` listener is never removed from the stream it was added to. Each\n // backpressured write would leak one, and past ten Node reports the stream\n // as a probable leak via `MaxListenersExceededWarning`.\n //\n // TODO: the upstream fix for that asymmetry is\n // https://github.com/expressjs/compression/pull/153, which intercepts\n // `removeListener` so it reaches the zlib stream. It has been open since\n // 2019 and is not in upstream 1.8.1; we vendor 1.7.4. If it ever lands and\n // we upgrade, `res.off('drain', onDrain)` below would start working with\n // compression active and the caveat on the `close` handler could go away.\n let paused = false;\n const onDrain = ()=>{\n // The listener outlives the readable: `off` below cannot reach the zlib\n // stream either, so a late drain can arrive after teardown.\n if (!paused || readable.destroyed) return;\n paused = false;\n readable.resume();\n };\n res.on('drain', onDrain);\n res.once('close', ()=>{\n // Only removes the listener when compression is inactive, which is the\n // case where it was added to the response itself. Otherwise it lives on\n // the zlib stream, which is released with the response.\n res.off('drain', onDrain);\n readable.destroy();\n finished.resolve();\n });\n readable.on('data', (chunk)=>{\n if (!started) {\n started = true;\n if ('performance' in globalThis && process.env.NEXT_OTEL_PERFORMANCE_PREFIX) {\n const metrics = clientComponentLoadTracker == null ? void 0 : clientComponentLoadTracker.snapshot();\n if (metrics) {\n performance.measure(`${process.env.NEXT_OTEL_PERFORMANCE_PREFIX}:next-client-component-loading`, {\n start: metrics.clientComponentLoadStart,\n end: metrics.clientComponentLoadStart + metrics.clientComponentLoadTimes\n });\n }\n }\n res.flushHeaders();\n getTracer().trace(NextNodeServerSpan.startResponse, {\n spanName: 'start response'\n }, ()=>undefined);\n }\n const ok = res.write(chunk);\n if ('flush' in res && typeof res.flush === 'function') {\n res.flush();\n }\n if (!ok) {\n paused = true;\n readable.pause();\n }\n });\n readable.on('end', async ()=>{\n if (waitUntilForEnd) {\n await waitUntilForEnd;\n }\n if (!res.writableFinished) {\n res.end();\n }\n finished.resolve();\n });\n readable.on('error', (err)=>{\n if (isAbortError(err)) {\n finished.resolve();\n return;\n }\n res.destroy(err);\n finished.resolve();\n });\n await finished.promise;\n } catch (err) {\n if (isAbortError(err)) return;\n throw new Error('failed to pipe response', {\n cause: err\n });\n }\n}\n\n//# sourceMappingURL=pipe-readable.js.map","import { chainStreams, streamFromBuffer, streamFromString, streamToString } from './stream-utils/node-web-streams-helper';\nimport { isAbortError, pipeToNodeResponse, pipeNodeReadableToNodeResponse } from './pipe-readable';\nimport { InvariantError } from '../shared/lib/invariant-error';\nfunction isNodeReadable(value) {\n return value !== null && typeof value === 'object' && typeof value.pipe === 'function' && typeof value.on === 'function' && !(value instanceof ReadableStream);\n}\nexport default class RenderResult {\n static #_ = /**\n * A render result that represents an empty response. This is used to\n * represent a response that was not found or was already sent.\n */ this.EMPTY = new RenderResult(null, {\n metadata: {},\n contentType: null\n });\n /**\n * Creates a new RenderResult instance from a static response.\n *\n * @param value the static response value\n * @param contentType the content type of the response\n * @returns a new RenderResult instance\n */ static fromStatic(value, contentType) {\n return new RenderResult(value, {\n metadata: {},\n contentType\n });\n }\n constructor(response, { contentType, waitUntil, metadata }){\n this.response = response;\n this.contentType = contentType;\n this.metadata = metadata;\n this.waitUntil = waitUntil;\n }\n assignMetadata(metadata) {\n Object.assign(this.metadata, metadata);\n }\n /**\n * Returns true if the response is null. It can be null if the response was\n * not found or was already sent.\n */ get isNull() {\n return this.response === null;\n }\n /**\n * Returns false if the response is a string. It can be a string if the page\n * was prerendered. If it's not, then it was generated dynamically.\n */ get isDynamic() {\n return typeof this.response !== 'string';\n }\n toUnchunkedString(stream = false) {\n if (this.response === null) {\n // If the response is null, return an empty string. This behavior is\n // intentional as we're now providing the `RenderResult.EMPTY` value.\n return '';\n }\n if (typeof this.response !== 'string') {\n if (!stream) {\n throw new InvariantError('dynamic responses cannot be unchunked. This is a bug in Next.js');\n }\n return streamToString(this.readable);\n }\n return this.response;\n }\n /**\n * Returns a readable stream of the response.\n */ get readable() {\n if (this.response === null) {\n // If the response is null, return an empty stream. This behavior is\n // intentional as we're now providing the `RenderResult.EMPTY` value.\n return new ReadableStream({\n start (controller) {\n controller.close();\n }\n });\n }\n if (typeof this.response === 'string') {\n return streamFromString(this.response);\n }\n if (Buffer.isBuffer(this.response)) {\n return streamFromBuffer(this.response);\n }\n // If the response is an array of streams, then chain them together.\n if (Array.isArray(this.response)) {\n return chainStreams(...this.response);\n }\n if (isNodeReadable(this.response)) {\n if (process.env.NEXT_RUNTIME === 'edge') {\n throw new InvariantError('Node.js Readable cannot be converted to a web stream in the edge runtime');\n } else {\n let Readable;\n if (process.env.TURBOPACK) {\n Readable = require('node:stream').Readable;\n } else {\n Readable = __non_webpack_require__('node:stream').Readable;\n }\n return Readable.toWeb(this.response);\n }\n }\n return this.response;\n }\n /**\n * Coerces the response to an array of streams. This will convert the response\n * to an array of streams if it is not already one.\n *\n * @returns An array of streams\n */ coerce() {\n if (this.response === null) {\n // If the response is null, return an empty stream. This behavior is\n // intentional as we're now providing the `RenderResult.EMPTY` value.\n return [];\n }\n if (typeof this.response === 'string') {\n return [\n streamFromString(this.response)\n ];\n } else if (Array.isArray(this.response)) {\n return this.response;\n } else if (Buffer.isBuffer(this.response)) {\n return [\n streamFromBuffer(this.response)\n ];\n } else if (isNodeReadable(this.response)) {\n if (process.env.NEXT_RUNTIME === 'edge') {\n throw new InvariantError('Node.js Readable cannot be converted to a web stream in the edge runtime');\n } else {\n let Readable;\n if (process.env.TURBOPACK) {\n Readable = require('node:stream').Readable;\n } else {\n Readable = __non_webpack_require__('node:stream').Readable;\n }\n return [\n Readable.toWeb(this.response)\n ];\n }\n } else {\n return [\n this.response\n ];\n }\n }\n /**\n * Pipes the response through a transform stream. This converts the response\n * to a single readable stream (chaining if needed) and pipes it through the\n * provided transform.\n *\n * @param transform The transform stream to pipe through\n */ pipeThrough(transform) {\n this.response = this.readable.pipeThrough(transform);\n }\n /**\n * Unshifts a new stream to the response. This will convert the response to an\n * array of streams if it is not already one and will add the new stream to\n * the start of the array. When this response is piped, all of the streams\n * will be piped one after the other.\n *\n * @param readable The new stream to unshift\n */ unshift(readable) {\n // Coerce the response to an array of streams.\n this.response = this.coerce();\n // Add the new stream to the start of the array.\n this.response.unshift(readable);\n }\n /**\n * Chains a new stream to the response. This will convert the response to an\n * array of streams if it is not already one and will add the new stream to\n * the end. When this response is piped, all of the streams will be piped\n * one after the other.\n *\n * @param readable The new stream to chain\n */ push(readable) {\n // Coerce the response to an array of streams.\n this.response = this.coerce();\n // Add the new stream to the end of the array.\n this.response.push(readable);\n }\n /**\n * Pipes the response to a writable stream. This will close/cancel the\n * writable stream if an error is encountered. If this doesn't throw, then\n * the writable stream will be closed or aborted.\n *\n * @param writable Writable stream to pipe the response to\n */ async pipeTo(writable) {\n try {\n await this.readable.pipeTo(writable, {\n // We want to close the writable stream ourselves so that we can wait\n // for the waitUntil promise to resolve before closing it. If an error\n // is encountered, we'll abort the writable stream if we swallowed the\n // error.\n preventClose: true\n });\n // If there is a waitUntil promise, wait for it to resolve before\n // closing the writable stream.\n if (this.waitUntil) await this.waitUntil;\n // Close the writable stream.\n await writable.close();\n } catch (err) {\n // If this is an abort error, we should abort the writable stream (as we\n // took ownership of it when we started piping). We don't need to re-throw\n // because we handled the error.\n if (isAbortError(err)) {\n // Abort the writable stream if an error is encountered.\n await writable.abort(err);\n return;\n }\n // We're not aborting the writer here as when this method throws it's not\n // clear as to how so the caller should assume it's their responsibility\n // to clean up the writer.\n throw err;\n }\n }\n /**\n * Pipes the response to a node response. This will close/cancel the node\n * response if an error is encountered.\n *\n * @param res\n */ async pipeToNodeResponse(res) {\n if (this.response !== null && typeof this.response !== 'string' && !Buffer.isBuffer(this.response) && !Array.isArray(this.response) && isNodeReadable(this.response)) {\n await pipeNodeReadableToNodeResponse(this.response, res, this.waitUntil, this.metadata.clientComponentLoadTracker);\n return;\n }\n await pipeToNodeResponse(this.readable, res, this.waitUntil, this.metadata.clientComponentLoadTracker);\n }\n}\n\n//# sourceMappingURL=render-result.js.map","import { NextURL } from '../next-url';\nimport { toNodeOutgoingHttpHeaders, validateURL } from '../utils';\nimport { RemovedUAError, RemovedPageError } from '../error';\nimport { RequestCookies } from './cookies';\nexport const INTERNALS = Symbol('internal request');\n/**\n * This class extends the [Web `Request` API](https://developer.mozilla.org/docs/Web/API/Request) with additional convenience methods.\n *\n * Read more: [Next.js Docs: `NextRequest`](https://nextjs.org/docs/app/api-reference/functions/next-request)\n */ export class NextRequest extends Request {\n constructor(input, init = {}){\n const url = typeof input !== 'string' && 'url' in input ? input.url : String(input);\n validateURL(url);\n // node Request instance requires duplex option when a body\n // is present or it errors, we don't handle this for\n // Request being passed in since it would have already\n // errored if this wasn't configured\n if (process.env.NEXT_RUNTIME !== 'edge') {\n if (init.body && init.duplex !== 'half') {\n init.duplex = 'half';\n }\n }\n if (input instanceof Request) super(input, init);\n else super(url, init);\n const nextUrl = new NextURL(url, {\n headers: toNodeOutgoingHttpHeaders(this.headers),\n nextConfig: init.nextConfig\n });\n this[INTERNALS] = {\n cookies: new RequestCookies(this.headers),\n nextUrl,\n url: process.env.__NEXT_NO_MIDDLEWARE_URL_NORMALIZE ? url : nextUrl.toString()\n };\n }\n [Symbol.for('edge-runtime.inspect.custom')]() {\n return {\n cookies: this.cookies,\n nextUrl: this.nextUrl,\n url: this.url,\n // rest of props come from Request\n bodyUsed: this.bodyUsed,\n cache: this.cache,\n credentials: this.credentials,\n destination: this.destination,\n headers: Object.fromEntries(this.headers),\n integrity: this.integrity,\n keepalive: this.keepalive,\n method: this.method,\n mode: this.mode,\n redirect: this.redirect,\n referrer: this.referrer,\n referrerPolicy: this.referrerPolicy,\n signal: this.signal\n };\n }\n get cookies() {\n return this[INTERNALS].cookies;\n }\n get nextUrl() {\n return this[INTERNALS].nextUrl;\n }\n /**\n * @deprecated\n * `page` has been deprecated in favour of `URLPattern`.\n * Read more: https://nextjs.org/docs/messages/middleware-request-page\n */ get page() {\n throw new RemovedPageError();\n }\n /**\n * @deprecated\n * `ua` has been removed in favour of \\`userAgent\\` function.\n * Read more: https://nextjs.org/docs/messages/middleware-parse-user-agent\n */ get ua() {\n throw new RemovedUAError();\n }\n get url() {\n return this[INTERNALS].url;\n }\n}\n\n//# sourceMappingURL=request.js.map","import { detectDomainLocale } from '../../shared/lib/i18n/detect-domain-locale';\nimport { formatNextPathnameInfo } from '../../shared/lib/router/utils/format-next-pathname-info';\nimport { getHostname } from '../../shared/lib/get-hostname';\nimport { getNextPathnameInfo } from '../../shared/lib/router/utils/get-next-pathname-info';\nconst REGEX_LOCALHOST_HOSTNAME = /^(?:127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}|\\[::1\\]|localhost)$/;\nfunction parseURL(url, base) {\n const parsed = new URL(String(url), base && String(base));\n if (REGEX_LOCALHOST_HOSTNAME.test(parsed.hostname)) {\n parsed.hostname = 'localhost';\n }\n return parsed;\n}\nconst Internal = Symbol('NextURLInternal');\nexport class NextURL {\n constructor(input, baseOrOpts, opts){\n let base;\n let options;\n if (typeof baseOrOpts === 'object' && 'pathname' in baseOrOpts || typeof baseOrOpts === 'string') {\n base = baseOrOpts;\n options = opts || {};\n } else {\n options = opts || baseOrOpts || {};\n }\n this[Internal] = {\n url: parseURL(input, base ?? options.base),\n options: options,\n basePath: ''\n };\n this.analyze();\n }\n analyze() {\n var _this_Internal_options_nextConfig_i18n, _this_Internal_options_nextConfig, _this_Internal_domainLocale, _this_Internal_options_nextConfig_i18n1, _this_Internal_options_nextConfig1;\n const info = getNextPathnameInfo(this[Internal].url.pathname, {\n nextConfig: this[Internal].options.nextConfig,\n parseData: !process.env.__NEXT_NO_MIDDLEWARE_URL_NORMALIZE,\n i18nProvider: this[Internal].options.i18nProvider\n });\n const hostname = getHostname(this[Internal].url, this[Internal].options.headers);\n this[Internal].domainLocale = this[Internal].options.i18nProvider ? this[Internal].options.i18nProvider.detectDomainLocale(hostname) : detectDomainLocale((_this_Internal_options_nextConfig = this[Internal].options.nextConfig) == null ? void 0 : (_this_Internal_options_nextConfig_i18n = _this_Internal_options_nextConfig.i18n) == null ? void 0 : _this_Internal_options_nextConfig_i18n.domains, hostname);\n const defaultLocale = ((_this_Internal_domainLocale = this[Internal].domainLocale) == null ? void 0 : _this_Internal_domainLocale.defaultLocale) || ((_this_Internal_options_nextConfig1 = this[Internal].options.nextConfig) == null ? void 0 : (_this_Internal_options_nextConfig_i18n1 = _this_Internal_options_nextConfig1.i18n) == null ? void 0 : _this_Internal_options_nextConfig_i18n1.defaultLocale);\n this[Internal].url.pathname = info.pathname;\n this[Internal].defaultLocale = defaultLocale;\n this[Internal].basePath = info.basePath ?? '';\n this[Internal].buildId = info.buildId;\n this[Internal].locale = info.locale ?? defaultLocale;\n this[Internal].trailingSlash = info.trailingSlash;\n }\n formatPathname() {\n return formatNextPathnameInfo({\n basePath: this[Internal].basePath,\n buildId: this[Internal].buildId,\n defaultLocale: !this[Internal].options.forceLocale ? this[Internal].defaultLocale : undefined,\n locale: this[Internal].locale,\n pathname: this[Internal].url.pathname,\n trailingSlash: this[Internal].trailingSlash\n });\n }\n formatSearch() {\n return this[Internal].url.search;\n }\n get buildId() {\n return this[Internal].buildId;\n }\n set buildId(buildId) {\n this[Internal].buildId = buildId;\n }\n get locale() {\n return this[Internal].locale ?? '';\n }\n set locale(locale) {\n var _this_Internal_options_nextConfig_i18n, _this_Internal_options_nextConfig;\n if (!this[Internal].locale || !((_this_Internal_options_nextConfig = this[Internal].options.nextConfig) == null ? void 0 : (_this_Internal_options_nextConfig_i18n = _this_Internal_options_nextConfig.i18n) == null ? void 0 : _this_Internal_options_nextConfig_i18n.locales.includes(locale))) {\n throw new TypeError(`The NextURL configuration includes no locale \"${locale}\"`);\n }\n this[Internal].locale = locale;\n }\n get defaultLocale() {\n return this[Internal].defaultLocale;\n }\n get domainLocale() {\n return this[Internal].domainLocale;\n }\n get searchParams() {\n return this[Internal].url.searchParams;\n }\n get host() {\n return this[Internal].url.host;\n }\n set host(value) {\n this[Internal].url.host = value;\n }\n get hostname() {\n return this[Internal].url.hostname;\n }\n set hostname(value) {\n this[Internal].url.hostname = value;\n }\n get port() {\n return this[Internal].url.port;\n }\n set port(value) {\n this[Internal].url.port = value;\n }\n get protocol() {\n return this[Internal].url.protocol;\n }\n set protocol(value) {\n this[Internal].url.protocol = value;\n }\n get href() {\n const pathname = this.formatPathname();\n const search = this.formatSearch();\n return `${this.protocol}//${this.host}${pathname}${search}${this.hash}`;\n }\n set href(url) {\n this[Internal].url = parseURL(url);\n this.analyze();\n }\n get origin() {\n return this[Internal].url.origin;\n }\n get pathname() {\n return this[Internal].url.pathname;\n }\n set pathname(value) {\n this[Internal].url.pathname = value;\n }\n get hash() {\n return this[Internal].url.hash;\n }\n set hash(value) {\n this[Internal].url.hash = value;\n }\n get search() {\n return this[Internal].url.search;\n }\n set search(value) {\n this[Internal].url.search = value;\n }\n get password() {\n return this[Internal].url.password;\n }\n set password(value) {\n this[Internal].url.password = value;\n }\n get username() {\n return this[Internal].url.username;\n }\n set username(value) {\n this[Internal].url.username = value;\n }\n get basePath() {\n return this[Internal].basePath;\n }\n set basePath(value) {\n this[Internal].basePath = value.startsWith('/') ? value : `/${value}`;\n }\n toString() {\n return this.href;\n }\n toJSON() {\n return this.href;\n }\n [Symbol.for('edge-runtime.inspect.custom')]() {\n return {\n href: this.href,\n origin: this.origin,\n protocol: this.protocol,\n username: this.username,\n password: this.password,\n host: this.host,\n hostname: this.hostname,\n port: this.port,\n pathname: this.pathname,\n search: this.search,\n searchParams: this.searchParams,\n hash: this.hash\n };\n }\n clone() {\n return new NextURL(String(this), this[Internal].options);\n }\n}\n\n//# sourceMappingURL=next-url.js.map","import { removeTrailingSlash } from './remove-trailing-slash';\nimport { addPathPrefix } from './add-path-prefix';\nimport { addPathSuffix } from './add-path-suffix';\nimport { addLocale } from './add-locale';\nexport function formatNextPathnameInfo(info) {\n let pathname = addLocale(info.pathname, info.locale, info.buildId ? undefined : info.defaultLocale, info.ignorePrefix);\n if (info.buildId || !info.trailingSlash) {\n pathname = removeTrailingSlash(pathname);\n }\n if (info.buildId) {\n pathname = addPathSuffix(addPathPrefix(pathname, `/_next/data/${info.buildId}`), info.pathname === '/' ? 'index.json' : '.json');\n }\n pathname = addPathPrefix(pathname, info.basePath);\n return !info.buildId && info.trailingSlash ? !pathname.endsWith('/') ? addPathSuffix(pathname, '/') : pathname : removeTrailingSlash(pathname);\n}\n\n//# sourceMappingURL=format-next-pathname-info.js.map","import { parsePath } from './parse-path';\n/**\n * Similarly to `addPathPrefix`, this function adds a suffix at the end on the\n * provided path. It also works only for paths ensuring the argument starts\n * with a slash.\n */ export function addPathSuffix(path, suffix) {\n if (!path.startsWith('/') || !suffix) {\n return path;\n }\n const { pathname, query, hash } = parsePath(path);\n return `${pathname}${suffix}${query}${hash}`;\n}\n\n//# sourceMappingURL=add-path-suffix.js.map","/**\n * Takes an object with a hostname property (like a parsed URL) and some\n * headers that may contain Host and returns the preferred hostname.\n * @param parsed An object containing a hostname property.\n * @param headers A dictionary with headers containing a `host`.\n */ export function getHostname(parsed, headers) {\n // Get the hostname from the headers if it exists, otherwise use the parsed\n // hostname.\n let hostname;\n if (headers?.host && !Array.isArray(headers.host)) {\n hostname = headers.host.toString().split(':', 1)[0];\n } else if (parsed.hostname) {\n hostname = parsed.hostname;\n } else return;\n return hostname.toLowerCase();\n}\n\n//# sourceMappingURL=get-hostname.js.map","/**\n * Removes the trailing slash for a given route or page path. Examples:\n * - `/foo/bar/` -> `/foo/bar`\n * - `/foo/bar` -> `/foo/bar`\n *\n * Uses charCodeAt (47 === '/') instead of regex to avoid the overhead of\n * compiling and executing a RegExp on every call (~3-5x faster).\n */ export function removeTrailingSlash(route) {\n return route.charCodeAt(route.length - 1) === 47 && route.length > 1 ? route.slice(0, -1) : route;\n}\n\n//# sourceMappingURL=remove-trailing-slash.js.map","import { pathHasPrefix } from './path-has-prefix';\n/**\n * Given a path and a prefix it will remove the prefix when it exists in the\n * given path. It ensures it matches exactly without containing extra chars\n * and if the prefix is not there it will be noop.\n *\n * @param path The path to remove the prefix from.\n * @param prefix The prefix to be removed.\n */ export function removePathPrefix(path, prefix) {\n // If the path doesn't start with the prefix we can return it as is. This\n // protects us from situations where the prefix is a substring of the path\n // prefix such as:\n //\n // For prefix: /blog\n //\n // /blog -> true\n // /blog/ -> true\n // /blog/1 -> true\n // /blogging -> false\n // /blogging/ -> false\n // /blogging/1 -> false\n if (!pathHasPrefix(path, prefix)) {\n return path;\n }\n // Remove the prefix from the path via slicing.\n const withoutPrefix = path.slice(prefix.length);\n // If the path without the prefix starts with a `/` we can return it as is.\n if (withoutPrefix.startsWith('/')) {\n return withoutPrefix;\n }\n // If the path without the prefix doesn't start with a `/` we need to add it\n // back to the path to make sure it's a valid path.\n return `/${withoutPrefix}`;\n}\n\n//# sourceMappingURL=remove-path-prefix.js.map","import { NEXT_INTERCEPTION_MARKER_PREFIX, NEXT_QUERY_PARAM_PREFIX } from '../../lib/constants';\n/**\n * Converts a Node.js IncomingHttpHeaders object to a Headers object. Any\n * headers with multiple values will be joined with a comma and space. Any\n * headers that have an undefined value will be ignored and others will be\n * coerced to strings.\n *\n * @param nodeHeaders the headers object to convert\n * @returns the converted headers object\n */ export function fromNodeOutgoingHttpHeaders(nodeHeaders) {\n const headers = new Headers();\n for (let [key, value] of Object.entries(nodeHeaders)){\n const values = Array.isArray(value) ? value : [\n value\n ];\n for (let v of values){\n if (typeof v === 'undefined') continue;\n if (typeof v === 'number') {\n v = v.toString();\n }\n headers.append(key, v);\n }\n }\n return headers;\n}\n/*\n Set-Cookie header field-values are sometimes comma joined in one string. This splits them without choking on commas\n that are within a single set-cookie field-value, such as in the Expires portion.\n This is uncommon, but explicitly allowed - see https://tools.ietf.org/html/rfc2616#section-4.2\n Node.js does this for every header *except* set-cookie - see https://github.com/nodejs/node/blob/d5e363b77ebaf1caf67cd7528224b651c86815c1/lib/_http_incoming.js#L128\n React Native's fetch does this for *every* header, including set-cookie.\n \n Based on: https://github.com/google/j2objc/commit/16820fdbc8f76ca0c33472810ce0cb03d20efe25\n Credits to: https://github.com/tomball for original and https://github.com/chrusart for JavaScript implementation\n*/ export function splitCookiesString(cookiesString) {\n var cookiesStrings = [];\n var pos = 0;\n var start;\n var ch;\n var lastComma;\n var nextStart;\n var cookiesSeparatorFound;\n function skipWhitespace() {\n while(pos < cookiesString.length && /\\s/.test(cookiesString.charAt(pos))){\n pos += 1;\n }\n return pos < cookiesString.length;\n }\n function notSpecialChar() {\n ch = cookiesString.charAt(pos);\n return ch !== '=' && ch !== ';' && ch !== ',';\n }\n while(pos < cookiesString.length){\n start = pos;\n cookiesSeparatorFound = false;\n while(skipWhitespace()){\n ch = cookiesString.charAt(pos);\n if (ch === ',') {\n // ',' is a cookie separator if we have later first '=', not ';' or ','\n lastComma = pos;\n pos += 1;\n skipWhitespace();\n nextStart = pos;\n while(pos < cookiesString.length && notSpecialChar()){\n pos += 1;\n }\n // currently special character\n if (pos < cookiesString.length && cookiesString.charAt(pos) === '=') {\n // we found cookies separator\n cookiesSeparatorFound = true;\n // pos is inside the next cookie, so back up and return it.\n pos = nextStart;\n cookiesStrings.push(cookiesString.substring(start, lastComma));\n start = pos;\n } else {\n // in param ',' or param separator ';',\n // we continue from that comma\n pos = lastComma + 1;\n }\n } else {\n pos += 1;\n }\n }\n if (!cookiesSeparatorFound || pos >= cookiesString.length) {\n cookiesStrings.push(cookiesString.substring(start, cookiesString.length));\n }\n }\n return cookiesStrings;\n}\n/**\n * Converts a Headers object to a Node.js OutgoingHttpHeaders object. This is\n * required to support the set-cookie header, which may have multiple values.\n *\n * @param headers the headers object to convert\n * @returns the converted headers object\n */ export function toNodeOutgoingHttpHeaders(headers) {\n const nodeHeaders = {};\n const cookies = [];\n if (headers) {\n for (const [key, value] of headers.entries()){\n if (key.toLowerCase() === 'set-cookie') {\n // We may have gotten a comma joined string of cookies, or multiple\n // set-cookie headers. We need to merge them into one header array\n // to represent all the cookies.\n cookies.push(...splitCookiesString(value));\n nodeHeaders[key] = cookies.length === 1 ? cookies[0] : cookies;\n } else {\n nodeHeaders[key] = value;\n }\n }\n }\n return nodeHeaders;\n}\n/**\n * Validate the correctness of a user-provided URL.\n */ export function validateURL(url) {\n try {\n return String(new URL(String(url)));\n } catch (error) {\n throw new Error(`URL is malformed \"${String(url)}\". Please use only absolute URLs - https://nextjs.org/docs/messages/middleware-relative-urls`, {\n cause: error\n });\n }\n}\n/**\n * Normalizes `nxtP` and `nxtI` query param values to remove the prefix.\n * This function does not mutate the input key.\n */ export function normalizeNextQueryParam(key) {\n const prefixes = [\n NEXT_QUERY_PARAM_PREFIX,\n NEXT_INTERCEPTION_MARKER_PREFIX\n ];\n for (const prefix of prefixes){\n if (key !== prefix && key.startsWith(prefix)) {\n return key.substring(prefix.length);\n }\n }\n return null;\n}\n\n//# sourceMappingURL=utils.js.map","/**\n * This file provides some helpers that should be used in conjunction with\n * explicit environment checks. When combined with the environment checks, it\n * will ensure that the correct typings are used as well as enable code\n * elimination.\n */ /**\n * Type guard to determine if a request is a WebNextRequest. This does not\n * actually check the type of the request, but rather the runtime environment.\n * It's expected that when the runtime environment is the edge runtime, that any\n * base request is a WebNextRequest.\n */ export const isWebNextRequest = (req)=>process.env.NEXT_RUNTIME === 'edge';\n/**\n * Type guard to determine if a response is a WebNextResponse. This does not\n * actually check the type of the response, but rather the runtime environment.\n * It's expected that when the runtime environment is the edge runtime, that any\n * base response is a WebNextResponse.\n */ export const isWebNextResponse = (res)=>process.env.NEXT_RUNTIME === 'edge';\n/**\n * Type guard to determine if a request is a NodeNextRequest. This does not\n * actually check the type of the request, but rather the runtime environment.\n * It's expected that when the runtime environment is the node runtime, that any\n * base request is a NodeNextRequest.\n */ export const isNodeNextRequest = (req)=>process.env.NEXT_RUNTIME !== 'edge';\n/**\n * Type guard to determine if a response is a NodeNextResponse. This does not\n * actually check the type of the response, but rather the runtime environment.\n * It's expected that when the runtime environment is the node runtime, that any\n * base response is a NodeNextResponse.\n */ export const isNodeNextResponse = (res)=>process.env.NEXT_RUNTIME !== 'edge';\n\n//# sourceMappingURL=helpers.js.map","export class ReflectAdapter {\n static get(\n target: T,\n prop: string | symbol,\n receiver: unknown\n ): any {\n const value = Reflect.get(target, prop, receiver)\n if (typeof value === 'function') {\n return value.bind(target)\n }\n\n return value\n }\n\n static set(\n target: T,\n prop: string | symbol,\n value: any,\n receiver: any\n ): boolean {\n return Reflect.set(target, prop, value, receiver)\n }\n\n static has(target: T, prop: string | symbol): boolean {\n return Reflect.has(target, prop)\n }\n\n static deleteProperty(\n target: T,\n prop: string | symbol\n ): boolean {\n return Reflect.deleteProperty(target, prop)\n }\n}\n","export {\n RequestCookies,\n ResponseCookies,\n stringifyCookie,\n} from 'next/dist/compiled/@edge-runtime/cookies'\n","export const UNDERSCORE_NOT_FOUND_ROUTE = '/_not-found'\nexport const UNDERSCORE_NOT_FOUND_ROUTE_ENTRY = `${UNDERSCORE_NOT_FOUND_ROUTE}/page`\nexport const UNDERSCORE_GLOBAL_ERROR_ROUTE = '/_global-error'\nexport const UNDERSCORE_GLOBAL_ERROR_ROUTE_ENTRY = `${UNDERSCORE_GLOBAL_ERROR_ROUTE}/page`\n","export interface PathLocale {\n detectedLocale?: string\n pathname: string\n}\n\n/**\n * A cache of lowercased locales for each list of locales. This is stored as a\n * WeakMap so if the locales are garbage collected, the cache entry will be\n * removed as well.\n */\nconst cache = new WeakMap()\n\n/**\n * For a pathname that may include a locale from a list of locales, it\n * removes the locale from the pathname returning it alongside with the\n * detected locale.\n *\n * @param pathname A pathname that may include a locale.\n * @param locales A list of locales.\n * @returns The detected locale and pathname without locale\n */\nexport function normalizeLocalePath(\n pathname: string,\n locales?: readonly string[]\n): PathLocale {\n // If locales is undefined, return the pathname as is.\n if (!locales) return { pathname }\n\n // Get the cached lowercased locales or create a new cache entry.\n let lowercasedLocales = cache.get(locales)\n if (!lowercasedLocales) {\n lowercasedLocales = locales.map((locale) => locale.toLowerCase())\n cache.set(locales, lowercasedLocales)\n }\n\n let detectedLocale: string | undefined\n\n // The first segment will be empty, because it has a leading `/`. If\n // there is no further segment, there is no locale (or it's the default).\n const segments = pathname.split('/', 2)\n\n // If there's no second segment (ie, the pathname is just `/`), there's no\n // locale.\n if (!segments[1]) return { pathname }\n\n // The second segment will contain the locale part if any.\n const segment = segments[1].toLowerCase()\n\n // See if the segment matches one of the locales. If it doesn't, there is\n // no locale (or it's the default).\n const index = lowercasedLocales.indexOf(segment)\n if (index < 0) return { pathname }\n\n // Return the case-sensitive locale.\n detectedLocale = locales[index]\n\n // Remove the `/${locale}` part of the pathname.\n pathname = pathname.slice(detectedLocale.length + 1) || '/'\n\n return { pathname, detectedLocale }\n}\n","export class InvariantError extends Error {\n constructor(message: string, options?: ErrorOptions) {\n super(\n `Invariant: ${message.endsWith('.') ? message : message + '.'} This is a bug in Next.js.`,\n options\n )\n this.name = 'InvariantError'\n }\n}\n","export function createPromiseWithResolvers(): PromiseWithResolvers {\n // Shim of Stage 4 Promise.withResolvers proposal\n let resolve: (value: T | PromiseLike) => void\n let reject: (reason: any) => void\n const promise = new Promise((res, rej) => {\n resolve = res\n reject = rej\n })\n return { resolve: resolve!, reject: reject!, promise }\n}\n","import { InvariantError } from '../../invariant-error'\nimport { getSegmentParam, type SegmentParam } from '../utils/get-segment-param'\nimport {\n INTERCEPTION_ROUTE_MARKERS,\n type InterceptionMarker,\n} from '../utils/interception-routes'\n\nexport type RouteGroupAppRouteSegment = {\n type: 'route-group'\n name: string\n\n /**\n * If present, this segment has an interception marker prefixing it.\n */\n interceptionMarker?: InterceptionMarker\n}\n\nexport type ParallelRouteAppRouteSegment = {\n type: 'parallel-route'\n name: string\n\n /**\n * If present, this segment has an interception marker prefixing it.\n */\n interceptionMarker?: InterceptionMarker\n}\n\nexport type StaticAppRouteSegment = {\n type: 'static'\n name: string\n\n /**\n * If present, this segment has an interception marker prefixing it.\n */\n interceptionMarker?: InterceptionMarker\n}\n\nexport type DynamicAppRouteSegment = {\n type: 'dynamic'\n name: string\n param: SegmentParam\n\n /**\n * If present, this segment has an interception marker prefixing it.\n */\n interceptionMarker?: InterceptionMarker\n}\n\n/**\n * Represents a single segment in a route path.\n * Can be either static (e.g., \"blog\") or dynamic (e.g., \"[slug]\").\n */\nexport type AppRouteSegment =\n | StaticAppRouteSegment\n | DynamicAppRouteSegment\n | RouteGroupAppRouteSegment\n | ParallelRouteAppRouteSegment\n\nexport type NormalizedAppRouteSegment =\n | StaticAppRouteSegment\n | DynamicAppRouteSegment\n\nfunction normalizeEncodedDynamicPlaceholder(segment: string): string {\n if (!/%5b|%5d/i.test(segment)) {\n return segment\n }\n\n try {\n const decodedSegment = decodeURIComponent(segment)\n return getSegmentParam(decodedSegment) ? decodedSegment : segment\n } catch {\n return segment\n }\n}\n\nexport function parseAppRouteSegment(segment: string): AppRouteSegment | null {\n if (segment === '') {\n return null\n }\n\n // Check if the segment starts with an interception marker\n const interceptionMarker = INTERCEPTION_ROUTE_MARKERS.find((m) =>\n segment.startsWith(m)\n )\n\n const param = getSegmentParam(segment)\n if (param) {\n return {\n type: 'dynamic',\n name: segment,\n param,\n interceptionMarker,\n }\n } else if (segment.startsWith('(') && segment.endsWith(')')) {\n return {\n type: 'route-group',\n name: segment,\n interceptionMarker,\n }\n } else if (segment.startsWith('@')) {\n return {\n type: 'parallel-route',\n name: segment,\n interceptionMarker,\n }\n } else {\n return {\n type: 'static',\n name: segment,\n interceptionMarker,\n }\n }\n}\n\nexport type AppRoute = {\n normalized: boolean\n pathname: string\n segments: AppRouteSegment[]\n dynamicSegments: DynamicAppRouteSegment[]\n interceptionMarker: InterceptionMarker | undefined\n interceptingRoute: AppRoute | undefined\n interceptedRoute: AppRoute | undefined\n}\n\nexport type NormalizedAppRoute = Omit & {\n normalized: true\n segments: NormalizedAppRouteSegment[]\n}\n\nexport function isNormalizedAppRoute(\n route: InterceptionAppRoute\n): route is NormalizedInterceptionAppRoute\nexport function isNormalizedAppRoute(\n route: AppRoute | InterceptionAppRoute\n): route is NormalizedAppRoute {\n return route.normalized\n}\n\nexport type InterceptionAppRoute = Omit<\n AppRoute,\n 'interceptionMarker' | 'interceptingRoute' | 'interceptedRoute'\n> & {\n interceptionMarker: InterceptionMarker\n interceptingRoute: AppRoute\n interceptedRoute: AppRoute\n}\n\nexport type NormalizedInterceptionAppRoute = Omit<\n InterceptionAppRoute,\n | 'normalized'\n | 'segments'\n | 'interceptionMarker'\n | 'interceptingRoute'\n | 'interceptedRoute'\n> & {\n normalized: true\n segments: NormalizedAppRouteSegment[]\n interceptionMarker: InterceptionMarker\n interceptingRoute: NormalizedAppRoute\n interceptedRoute: NormalizedAppRoute\n}\n\nexport function isInterceptionAppRoute(\n route: NormalizedAppRoute\n): route is NormalizedInterceptionAppRoute\nexport function isInterceptionAppRoute(\n route: AppRoute\n): route is InterceptionAppRoute {\n return (\n route.interceptionMarker !== undefined &&\n route.interceptingRoute !== undefined &&\n route.interceptedRoute !== undefined\n )\n}\n\n// Bitmask for which non-URL segment types to allow during parsing.\n// By default, route groups and parallel routes are rejected because\n// they should have been stripped by normalizeAppPath. These flags\n// let callers opt in to allowing specific types.\nconst OnlyRoutableSegments = /* */ 0b00\nconst AllowParallelSegments = /* */ 0b01\nconst AllowGroupSegments = /* */ 0b10\n\nfunction parseAppRouteImpl(\n pathname: string,\n allowedTypes: number\n): AppRoute | NormalizedAppRoute {\n const pathnameSegments = pathname.split('/').filter(Boolean)\n\n // Build segments array with static and dynamic segments\n const segments: AppRouteSegment[] = []\n\n // Parse if this is an interception route.\n let interceptionMarker: InterceptionMarker | undefined\n let interceptingRoute: AppRoute | NormalizedAppRoute | undefined\n let interceptedRoute: AppRoute | NormalizedAppRoute | undefined\n\n for (const segment of pathnameSegments) {\n const normalizedSegment = normalizeEncodedDynamicPlaceholder(segment)\n\n // Parse the segment into an AppSegment.\n const appSegment = parseAppRouteSegment(normalizedSegment)\n if (!appSegment) {\n continue\n }\n\n if (\n appSegment.type === 'route-group' &&\n !(allowedTypes & AllowGroupSegments)\n ) {\n throw new InvariantError(\n `${pathname} is being parsed as a normalized route, but it has a route group segment.`\n )\n }\n\n if (\n appSegment.type === 'parallel-route' &&\n !(allowedTypes & AllowParallelSegments)\n ) {\n throw new InvariantError(\n `${pathname} is being parsed as a normalized route, but it has a parallel route segment.`\n )\n }\n\n segments.push(appSegment)\n\n if (appSegment.interceptionMarker) {\n const parts = pathname.split(appSegment.interceptionMarker)\n if (parts.length !== 2) {\n throw new Error(`Invalid interception route: ${pathname}`)\n }\n\n interceptingRoute = parseAppRouteImpl(parts[0], allowedTypes)\n interceptedRoute = parseAppRouteImpl(parts[1], allowedTypes)\n interceptionMarker = appSegment.interceptionMarker\n }\n }\n\n const dynamicSegments = segments.filter(\n (segment) => segment.type === 'dynamic'\n )\n\n return {\n normalized: allowedTypes === OnlyRoutableSegments,\n pathname,\n segments,\n dynamicSegments,\n interceptionMarker,\n interceptingRoute,\n interceptedRoute,\n }\n}\n\n/**\n * Parse an app route that has been fully normalized (no @slot or ()\n * group segments). Throws if either is present.\n */\nexport function parseNormalizedAppRoute(pathname: string): NormalizedAppRoute {\n return parseAppRouteImpl(pathname, OnlyRoutableSegments) as NormalizedAppRoute\n}\n\n/**\n * Parse an app route that may contain @slot segments but not ()\n * group segments. Slot segments are preserved as parallel-route\n * type segments so callers can distinguish routes in different\n * parallel slots.\n */\nexport function parseAppRouteWithSlots(pathname: string): AppRoute {\n return parseAppRouteImpl(pathname, AllowParallelSegments) as AppRoute\n}\n","import { ensureLeadingSlash } from '../../page-path/ensure-leading-slash';\nimport { isGroupSegment } from '../../segment';\n/**\n * Normalizes an app route so it represents the actual request path. Essentially\n * performing the following transformations:\n *\n * - `/(dashboard)/user/[id]/page` to `/user/[id]`\n * - `/(dashboard)/account/page` to `/account`\n * - `/user/[id]/page` to `/user/[id]`\n * - `/account/page` to `/account`\n * - `/page` to `/`\n * - `/(dashboard)/user/[id]/route` to `/user/[id]`\n * - `/(dashboard)/account/route` to `/account`\n * - `/user/[id]/route` to `/user/[id]`\n * - `/account/route` to `/account`\n * - `/route` to `/`\n * - `/` to `/`\n *\n * @param route the app route to normalize\n * @returns the normalized pathname\n */ export function normalizeAppPath(route) {\n return ensureLeadingSlash(route.split('/').reduce((pathname, segment, index, segments)=>{\n // Empty segments are ignored.\n if (!segment) {\n return pathname;\n }\n // Groups are ignored.\n if (isGroupSegment(segment)) {\n return pathname;\n }\n // Parallel segments are ignored.\n if (segment[0] === '@') {\n return pathname;\n }\n // The last segment (if it's a leaf) should be ignored.\n if ((segment === 'page' || segment === 'route') && index === segments.length - 1) {\n return pathname;\n }\n return `${pathname}/${segment}`;\n }, ''));\n}\n/**\n * Comparator for sorting app paths so that parallel slot paths (containing\n * `/@`) come before the children/root page path. This keeps the direct\n * children/root page last so it can be selected as the canonical entry.\n *\n * Without this, route group prefixes like `(group)` (char code 0x28) sort\n * before `@` (0x40), causing the children page to sort first instead of last\n * and leading to a manifest mismatch / 404 in webpack dev mode.\n */ export function compareAppPaths(a, b) {\n const aHasSlot = a.includes('/@');\n const bHasSlot = b.includes('/@');\n if (aHasSlot && !bHasSlot) return -1;\n if (!aHasSlot && bHasSlot) return 1;\n return a.localeCompare(b);\n}\nfunction normalizeAppPageEntryPathname(appPath) {\n // Webpack app entries preserve escaped underscore segments as `%5F`, while\n // normalized request pathnames expose the decoded `_` segment.\n return normalizeAppPath(appPath).replace(/%5F/g, '_');\n}\n/**\n * Selects the app path that owns the compiled entry for a normalized route.\n * Catch-all normalization can add app paths from other routes, so only direct\n * paths are candidates. Among those, compareAppPaths deterministically prefers\n * the children/root page, or a stable slot when the route only has slots.\n */ export function selectAppPageEntry(pathname, appPaths, normalizePathname = normalizeAppPageEntryPathname) {\n let entry;\n for (const appPath of appPaths){\n if (normalizePathname(appPath) !== pathname) continue;\n if (entry === undefined || compareAppPaths(entry, appPath) < 0) {\n entry = appPath;\n }\n }\n if (entry === undefined) {\n throw new Error(`Invariant: no direct app page entry found for ${pathname}`);\n }\n return entry;\n}\n/**\n * Strips the `.rsc` extension if it's in the pathname.\n * Since this function is used on full urls it checks `?` for searchParams handling.\n */ export function normalizeRscURL(url) {\n return url.replace(/\\.rsc($|\\?)/, // $1 ensures `?` is preserved\n '$1');\n}\n\n//# sourceMappingURL=app-paths.js.map","/**\n * For a given page path, this function ensures that there is a leading slash.\n * If there is not a leading slash, one is added, otherwise it is noop.\n */ export function ensureLeadingSlash(path) {\n return path.startsWith('/') ? path : `/${path}`;\n}\n\n//# sourceMappingURL=ensure-leading-slash.js.map","import { normalizeAppPath } from './app-paths';\n// order matters here, the first match will be used\nexport const INTERCEPTION_ROUTE_MARKERS = [\n '(..)(..)',\n '(.)',\n '(..)',\n '(...)'\n];\nfunction parseRoutePattern(route) {\n const segments = route.split('/').filter(Boolean);\n const tail = segments.at(-1);\n const isOptionalCatchAll = tail !== undefined && tail.startsWith('[[...') && tail.endsWith(']]');\n const isCatchAll = tail !== undefined && tail.startsWith('[...') && tail.endsWith(']');\n const unbounded = isOptionalCatchAll || isCatchAll;\n const prefixSegments = unbounded ? segments.slice(0, -1) : segments;\n return {\n prefix: prefixSegments.map((segment)=>segment.startsWith('[') && segment.endsWith(']') ? null : segment),\n minLength: prefixSegments.length + (isCatchAll && !isOptionalCatchAll ? 1 : 0),\n unbounded\n };\n}\nfunction acceptsLength(pattern, length) {\n return pattern.unbounded ? length >= pattern.minLength : length === pattern.minLength;\n}\nfunction prefixCovers(canonical, intercepted) {\n return canonical.prefix.every((canonicalSegment, index)=>{\n if (canonicalSegment === null) return true;\n const interceptedSegment = intercepted.prefix[index];\n return interceptedSegment !== undefined && interceptedSegment !== null && canonicalSegment === interceptedSegment;\n });\n}\nfunction patternCoversAtLength(canonical, intercepted, length) {\n return acceptsLength(canonical, length) && acceptsLength(intercepted, length) && prefixCovers(canonical, intercepted);\n}\n/** Returns whether ordinary route patterns cover every URL in `route`. */ function isRoutePatternCovered(route, ordinaryRoutes) {\n const intercepted = parseRoutePattern(route);\n if (!intercepted.unbounded) {\n return ordinaryRoutes.some((pattern)=>patternCoversAtLength(pattern, intercepted, intercepted.minLength));\n }\n let unboundedCoverageStart = Infinity;\n for (const pattern of ordinaryRoutes){\n if (pattern.unbounded && prefixCovers(pattern, intercepted)) {\n unboundedCoverageStart = Math.min(unboundedCoverageStart, Math.max(intercepted.minLength, pattern.minLength));\n }\n }\n if (unboundedCoverageStart === Infinity) return false;\n // An optional or required catchall can have its shorter paths covered by\n // fixed routes before another catchall takes over the remaining suffix.\n for(let length = intercepted.minLength; length < unboundedCoverageStart; length++){\n if (!ordinaryRoutes.some((pattern)=>patternCoversAtLength(pattern, intercepted, length))) {\n return false;\n }\n }\n return true;\n}\nexport function isInterceptionRouteAppPath(path) {\n // TODO-APP: add more serious validation\n return path.split('/').find((segment)=>INTERCEPTION_ROUTE_MARKERS.find((m)=>segment.startsWith(m))) !== undefined;\n}\nexport function extractInterceptionRouteInformation(path) {\n let interceptingRoute;\n let marker;\n let interceptedRoute;\n for (const segment of path.split('/')){\n marker = INTERCEPTION_ROUTE_MARKERS.find((m)=>segment.startsWith(m));\n if (marker) {\n ;\n [interceptingRoute, interceptedRoute] = path.split(marker, 2);\n break;\n }\n }\n if (!interceptingRoute || !marker || !interceptedRoute) {\n throw new Error(`Invalid interception route: ${path}. Must be in the format //(..|...|..)(..)/`);\n }\n interceptingRoute = normalizeAppPath(interceptingRoute) // normalize the path, e.g. /(blog)/feed -> /feed\n ;\n switch(marker){\n case '(.)':\n // (.) indicates that we should match with sibling routes, so we just need to append the intercepted route to the intercepting route\n if (interceptingRoute === '/') {\n interceptedRoute = `/${interceptedRoute}`;\n } else {\n interceptedRoute = interceptingRoute + '/' + interceptedRoute;\n }\n break;\n case '(..)':\n // (..) indicates that we should match at one level up, so we need to remove the last segment of the intercepting route\n if (interceptingRoute === '/') {\n throw new Error(`Invalid interception route: ${path}. Cannot use (..) marker at the root level, use (.) instead.`);\n }\n interceptedRoute = interceptingRoute.split('/').slice(0, -1).concat(interceptedRoute).join('/');\n break;\n case '(...)':\n // (...) will match the route segment in the root directory, so we need to use the root directory to prepend the intercepted route\n interceptedRoute = '/' + interceptedRoute;\n break;\n case '(..)(..)':\n // (..)(..) indicates that we should match at two levels up, so we need to remove the last two segments of the intercepting route\n const splitInterceptingRoute = interceptingRoute.split('/');\n if (splitInterceptingRoute.length <= 2) {\n throw new Error(`Invalid interception route: ${path}. Cannot use (..)(..) marker at the root level or one level up.`);\n }\n interceptedRoute = splitInterceptingRoute.slice(0, -2).concat(interceptedRoute).join('/');\n break;\n default:\n throw new Error('Invariant: unexpected marker');\n }\n return {\n interceptingRoute,\n interceptedRoute\n };\n}\n/**\n * Finds interception matchers that cannot be loaded as an ordinary request.\n *\n * This must run after catch-all normalization and pruning so `appPaths`\n * contains the final matcher set rather than every possible matcher candidate.\n */ export function findMissingCanonicalInterceptionRoutes(appPaths) {\n const canonicalRoutes = Object.keys(appPaths).filter((route)=>!isInterceptionRouteAppPath(route));\n const canonicalRoutePatterns = canonicalRoutes.map(parseRoutePattern);\n return Object.keys(appPaths).filter(isInterceptionRouteAppPath).map((interceptionRoute)=>({\n interceptionRoute,\n canonicalRoute: extractInterceptionRouteInformation(interceptionRoute).interceptedRoute\n })).filter(({ canonicalRoute })=>!isRoutePatternCovered(canonicalRoute, canonicalRoutePatterns)).sort((a, b)=>a.interceptionRoute.localeCompare(b.interceptionRoute));\n}\n\n//# sourceMappingURL=interception-routes.js.map","import { INTERCEPTION_ROUTE_MARKERS } from './interception-routes';\n/**\n * Parse dynamic route segment to type of parameter\n */ export function getSegmentParam(segment) {\n const interceptionMarker = INTERCEPTION_ROUTE_MARKERS.find((marker)=>segment.startsWith(marker));\n // if an interception marker is part of the path segment, we need to jump ahead\n // to the relevant portion for param parsing\n if (interceptionMarker) {\n segment = segment.slice(interceptionMarker.length);\n }\n if (segment.startsWith('[[...') && segment.endsWith(']]')) {\n return {\n // TODO-APP: Optional catchall does not currently work with parallel routes,\n // so for now aren't handling a potential interception marker.\n paramType: 'optional-catchall',\n paramName: segment.slice(5, -2)\n };\n }\n if (segment.startsWith('[...') && segment.endsWith(']')) {\n return {\n paramType: interceptionMarker ? `catchall-intercepted-${interceptionMarker}` : 'catchall',\n paramName: segment.slice(4, -1)\n };\n }\n if (segment.startsWith('[') && segment.endsWith(']')) {\n return {\n paramType: interceptionMarker ? `dynamic-intercepted-${interceptionMarker}` : 'dynamic',\n paramName: segment.slice(1, -1)\n };\n }\n return null;\n}\nexport function isCatchAll(type) {\n return type === 'catchall' || type === 'catchall-intercepted-(..)(..)' || type === 'catchall-intercepted-(.)' || type === 'catchall-intercepted-(..)' || type === 'catchall-intercepted-(...)' || type === 'optional-catchall';\n}\nexport function getParamProperties(paramType) {\n let repeat = false;\n let optional = false;\n switch(paramType){\n case 'catchall':\n case 'catchall-intercepted-(..)(..)':\n case 'catchall-intercepted-(.)':\n case 'catchall-intercepted-(..)':\n case 'catchall-intercepted-(...)':\n repeat = true;\n break;\n case 'optional-catchall':\n repeat = true;\n optional = true;\n break;\n case 'dynamic':\n case 'dynamic-intercepted-(..)(..)':\n case 'dynamic-intercepted-(.)':\n case 'dynamic-intercepted-(..)':\n case 'dynamic-intercepted-(...)':\n break;\n default:\n paramType;\n }\n return {\n repeat,\n optional\n };\n}\n\n//# sourceMappingURL=get-segment-param.js.map","import { HTML_LIMITED_BOT_UA_RE } from './html-bots';\n// Bot crawler that will spin up a headless browser and execute JS.\n// Only the main Googlebot search crawler executes JavaScript, not other Google crawlers.\n// x-ref: https://developers.google.com/search/docs/crawling-indexing/google-common-crawlers\n// This regex specifically matches \"Googlebot\" but NOT \"Mediapartners-Google\", \"AdsBot-Google\", etc.\nconst HEADLESS_BROWSER_BOT_UA_RE = /Googlebot(?!-)|Googlebot$/i;\nexport const HTML_LIMITED_BOT_UA_RE_STRING = HTML_LIMITED_BOT_UA_RE.source;\nexport { HTML_LIMITED_BOT_UA_RE };\nfunction isDomBotUA(userAgent) {\n return HEADLESS_BROWSER_BOT_UA_RE.test(userAgent);\n}\nfunction isHtmlLimitedBotUA(userAgent) {\n return HTML_LIMITED_BOT_UA_RE.test(userAgent);\n}\nexport function isBot(userAgent) {\n return isDomBotUA(userAgent) || isHtmlLimitedBotUA(userAgent);\n}\nexport function getBotType(userAgent) {\n if (isDomBotUA(userAgent)) {\n return 'dom';\n }\n if (isHtmlLimitedBotUA(userAgent)) {\n return 'html';\n }\n return undefined;\n}\n\n//# sourceMappingURL=is-bot.js.map","// This regex contains the bots that we need to do a blocking render for and can't safely stream the response\n// due to how they parse the DOM. For example, they might explicitly check for metadata in the `head` tag, so we can't stream metadata tags after the `head` was sent.\n// Note: The pattern [\\w-]+-Google captures all Google crawlers with \"-Google\" suffix (e.g., Mediapartners-Google, AdsBot-Google, Storebot-Google)\n// as well as crawlers starting with \"Google-\" (e.g., Google-PageRenderer, Google-InspectionTool)\nexport const HTML_LIMITED_BOT_UA_RE = /[\\w-]+-Google|Google-[\\w-]+|Chrome-Lighthouse|Slurp|DuckDuckBot|baiduspider|yandex|sogou|bitlybot|tumblr|vkShare|quora link preview|redditbot|ia_archiver|Bingbot|BingPreview|applebot|facebookexternalhit|facebookcatalog|Twitterbot|LinkedInBot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|Yeti|googleweblight/i;\n\n//# sourceMappingURL=html-bots.js.map","/**\n * Given a path this function will find the pathname, query and hash and return\n * them. This is useful to parse full paths on the client side.\n * @param path A path to parse e.g. /foo/bar?id=1#hash\n */ export function parsePath(path) {\n const hashIndex = path.indexOf('#');\n const queryIndex = path.indexOf('?');\n const hasQuery = queryIndex > -1 && (hashIndex < 0 || queryIndex < hashIndex);\n if (hasQuery || hashIndex > -1) {\n return {\n pathname: path.substring(0, hasQuery ? queryIndex : hashIndex),\n query: hasQuery ? path.substring(queryIndex, hashIndex > -1 ? hashIndex : undefined) : '',\n hash: hashIndex > -1 ? path.slice(hashIndex) : ''\n };\n }\n return {\n pathname: path,\n query: '',\n hash: ''\n };\n}\n\n//# sourceMappingURL=parse-path.js.map","import { parsePath } from './parse-path';\n/**\n * Checks if a given path starts with a given prefix. It ensures it matches\n * exactly without containing extra chars. e.g. prefix /docs should replace\n * for /docs, /docs/, /docs/a but not /docsss\n * @param path The path to check.\n * @param prefix The prefix to check against.\n */ export function pathHasPrefix(path, prefix) {\n if (typeof path !== 'string') {\n return false;\n }\n const { pathname } = parsePath(path);\n return pathname === prefix || pathname.startsWith(prefix + '/');\n}\n\n//# sourceMappingURL=path-has-prefix.js.map","import type { FlightRouterState, Segment } from './app-router-types'\n\nexport function getSegmentValue(segment: Segment) {\n return Array.isArray(segment) ? segment[1] : segment\n}\n\nexport function isGroupSegment(segment: string) {\n // Use array[0] for performant purpose\n return segment[0] === '(' && segment.endsWith(')')\n}\n\nexport function isParallelRouteSegment(segment: string) {\n return segment.startsWith('@') && segment !== '@children'\n}\n\nexport function computeSelectedLayoutSegment(\n segments: string[] | null,\n parallelRouteKey: string\n): string | null {\n if (!segments || segments.length === 0) {\n return null\n }\n\n // For 'children', use first segment; for other parallel routes, use last segment\n const rawSegment =\n parallelRouteKey === 'children'\n ? segments[0]\n : segments[segments.length - 1]\n\n // If the default slot is showing, return null since it's not technically \"selected\" (it's a fallback)\n // Returning an internal value like `__DEFAULT__` would be confusing\n return rawSegment === DEFAULT_SEGMENT_KEY ? null : rawSegment\n}\n\n/** Get the canonical parameters from the current level to the leaf node. */\nexport function getSelectedLayoutSegmentPath(\n tree: FlightRouterState,\n parallelRouteKey: string,\n first = true,\n segmentPath: string[] = []\n): string[] {\n let node: FlightRouterState\n if (first) {\n // Use the provided parallel route key on the first parallel route\n node = tree[1][parallelRouteKey]\n } else {\n // After first parallel route prefer children, if there's no children pick the first parallel route.\n const parallelRoutes = tree[1]\n node = parallelRoutes.children ?? Object.values(parallelRoutes)[0]\n }\n\n if (!node) return segmentPath\n const segment = node[0]\n\n let segmentValue = getSegmentValue(segment)\n\n if (!segmentValue || segmentValue === PAGE_SEGMENT_KEY) {\n return segmentPath\n }\n\n segmentPath.push(segmentValue)\n\n return getSelectedLayoutSegmentPath(\n node,\n parallelRouteKey,\n false,\n segmentPath\n )\n}\n\nexport const PAGE_SEGMENT_KEY = '__PAGE__'\nexport const DEFAULT_SEGMENT_KEY = '__DEFAULT__'\nexport const NOT_FOUND_SEGMENT_KEY = '/_not-found'\n","export interface ServerReferenceInfo {\n type: 'server-action' | 'use-cache'\n usedArgs: [boolean, boolean, boolean, boolean, boolean, boolean]\n hasRestArgs: boolean\n}\n\nexport const SERVER_REFERENCE_ID_LENGTH = 42\n\nexport function mightBeServerReferenceId(id: string): boolean {\n return id.length === SERVER_REFERENCE_ID_LENGTH\n}\n\n/**\n * Extracts info about the server reference for the given server reference ID by\n * parsing the first byte of the hex-encoded ID.\n *\n * ```\n * Bit positions: [7] [6] [5] [4] [3] [2] [1] [0]\n * Bits: typeBit argMask restArgs\n * ```\n *\n * If the `typeBit` is `1` the server reference represents a `\"use cache\"`\n * function, otherwise a server action.\n *\n * The `argMask` encodes whether the function uses the argument at the\n * respective position.\n *\n * The `restArgs` bit indicates whether the function uses a rest parameter. It's\n * also set to 1 if the function has more than 6 args.\n *\n * @param id hex-encoded server reference ID\n */\nexport function extractInfoFromServerReferenceId(\n id: string\n): ServerReferenceInfo {\n const infoByte = parseInt(id.slice(0, 2), 16)\n const typeBit = (infoByte >> 7) & 0x1\n const argMask = (infoByte >> 1) & 0x3f\n const restArgs = infoByte & 0x1\n const usedArgs = Array(6)\n\n for (let index = 0; index < 6; index++) {\n const bitPosition = 5 - index\n const bit = (argMask >> bitPosition) & 0x1\n usedArgs[index] = bit === 1\n }\n\n return {\n type: typeBit === 1 ? 'use-cache' : 'server-action',\n usedArgs: usedArgs as [\n boolean,\n boolean,\n boolean,\n boolean,\n boolean,\n boolean,\n ],\n hasRestArgs: restArgs === 1,\n }\n}\n\n/**\n * Creates a sparse array containing only the used arguments based on the\n * provided action info.\n */\nexport function omitUnusedArgs(\n args: unknown[],\n info: ServerReferenceInfo\n): unknown[] {\n const filteredArgs = new Array(args.length)\n let length = 0\n\n for (let index = 0; index < args.length; index++) {\n if (\n (index < 6 && info.usedArgs[index]) ||\n // This assumes that the server reference info byte has the restArgs bit\n // set to 1 if there are more than 6 args.\n (index >= 6 && info.hasRestArgs)\n ) {\n filteredArgs[index] = args[index]\n length = index + 1\n }\n }\n\n // Trim trailing unused args from the array.\n filteredArgs.length = length\n\n return filteredArgs\n}\n","import type { SizeLimit } from '../../types'\n\nexport const DEFAULT_MAX_POSTPONED_STATE_SIZE: SizeLimit = '100 MB'\n\n// 100MB in bytes. Not using the parseSizeLimit for performance as parseMaxPostponedStateSize is in the hot path for rendering.\nconst DEFAULT_MAX_POSTPONED_STATE_SIZE_BYTES = 104_857_600\n\nfunction parseSizeLimit(size: SizeLimit): number | undefined {\n const bytes = (\n require('next/dist/compiled/bytes') as typeof import('next/dist/compiled/bytes')\n ).parse(size)\n if (bytes === null || isNaN(bytes) || bytes < 1) {\n return undefined\n }\n return bytes\n}\n\n/**\n * Parses the maxPostponedStateSize config value, using the default if not provided.\n */\nexport function parseMaxPostponedStateSize(\n size: SizeLimit | undefined\n): number | undefined {\n if (!size) {\n return DEFAULT_MAX_POSTPONED_STATE_SIZE_BYTES\n }\n return parseSizeLimit(size)\n}\n","// This regex will have fast negatives meaning valid identifiers may not pass\n// this test. However this is only used during static generation to provide hints\n// about why a page bailed out of some or all prerendering and we can use bracket notation\n// for example while `ಠ_ಠ` is a valid identifier it's ok to print `searchParams['ಠ_ಠ']`\n// even if this would have been fine too `searchParams.ಠ_ಠ`\nconst isDefinitelyAValidIdentifier = /^[A-Za-z_$][A-Za-z0-9_$]*$/\n\nexport function describeStringPropertyAccess(target: string, prop: string) {\n if (isDefinitelyAValidIdentifier.test(prop)) {\n return `\\`${target}.${prop}\\``\n }\n return `\\`${target}[${JSON.stringify(prop)}]\\``\n}\n\nexport function describeHasCheckingStringProperty(\n target: string,\n prop: string\n) {\n const stringifiedProp = JSON.stringify(prop)\n return `\\`Reflect.has(${target}, ${stringifiedProp})\\`, \\`${stringifiedProp} in ${target}\\`, or similar`\n}\n\nexport const wellKnownProperties = new Set([\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toString',\n 'valueOf',\n 'toLocaleString',\n\n // Promise prototype\n 'then',\n 'catch',\n 'finally',\n\n // React Promise extension\n 'status',\n // 'value',\n // 'error',\n\n // React introspection\n 'displayName',\n '_debugInfo',\n\n // Common tested properties\n 'toJSON',\n '$$typeof',\n '__esModule',\n\n // Tested by flight when checking for iterables\n '@@iterator',\n])\n","module.exports = (\n require('../../module.compiled') as typeof import('../../module.compiled')\n).vendored['react-rsc']!.ReactDOM\n","module.exports = (\n require('../../module.compiled') as typeof import('../../module.compiled')\n).vendored['react-rsc']!.ReactServerDOMTurbopackStatic\n","(()=>{\"use strict\";var e={912:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.ContextAPI=void 0;const n=r(108);const a=r(221);const o=r(44);const i=\"context\";const c=new n.NoopContextManager;class ContextAPI{constructor(){}static getInstance(){if(!this._instance){this._instance=new ContextAPI}return this._instance}setGlobalContextManager(e){return(0,a.registerGlobal)(i,e,o.DiagAPI.instance())}active(){return this._getContextManager().active()}with(e,t,r,...n){return this._getContextManager().with(e,t,r,...n)}bind(e,t){return this._getContextManager().bind(e,t)}_getContextManager(){return(0,a.getGlobal)(i)||c}disable(){this._getContextManager().disable();(0,a.unregisterGlobal)(i,o.DiagAPI.instance())}}t.ContextAPI=ContextAPI},44:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.DiagAPI=void 0;const n=r(757);const a=r(412);const o=r(711);const i=r(221);const c=\"diag\";class DiagAPI{constructor(){function _logProxy(e){return function(...t){const r=(0,i.getGlobal)(\"diag\");if(!r)return;return r[e](...t)}}const e=this;const setLogger=(t,r={logLevel:o.DiagLogLevel.INFO})=>{var n,c,s;if(t===e){const t=new Error(\"Cannot use diag as the logger for itself. Please use a DiagLogger implementation like ConsoleDiagLogger or a custom implementation\");e.error((n=t.stack)!==null&&n!==void 0?n:t.message);return false}if(typeof r===\"number\"){r={logLevel:r}}const u=(0,i.getGlobal)(\"diag\");const l=(0,a.createLogLevelDiagLogger)((c=r.logLevel)!==null&&c!==void 0?c:o.DiagLogLevel.INFO,t);if(u&&!r.suppressOverrideMessage){const e=(s=(new Error).stack)!==null&&s!==void 0?s:\"\";u.warn(`Current logger will be overwritten from ${e}`);l.warn(`Current logger will overwrite one already registered from ${e}`)}return(0,i.registerGlobal)(\"diag\",l,e,true)};e.setLogger=setLogger;e.disable=()=>{(0,i.unregisterGlobal)(c,e)};e.createComponentLogger=e=>new n.DiagComponentLogger(e);e.verbose=_logProxy(\"verbose\");e.debug=_logProxy(\"debug\");e.info=_logProxy(\"info\");e.warn=_logProxy(\"warn\");e.error=_logProxy(\"error\")}static instance(){if(!this._instance){this._instance=new DiagAPI}return this._instance}}t.DiagAPI=DiagAPI},262:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.MetricsAPI=void 0;const n=r(586);const a=r(221);const o=r(44);const i=\"metrics\";class MetricsAPI{constructor(){}static getInstance(){if(!this._instance){this._instance=new MetricsAPI}return this._instance}setGlobalMeterProvider(e){return(0,a.registerGlobal)(i,e,o.DiagAPI.instance())}getMeterProvider(){return(0,a.getGlobal)(i)||n.NOOP_METER_PROVIDER}getMeter(e,t,r){return this.getMeterProvider().getMeter(e,t,r)}disable(){(0,a.unregisterGlobal)(i,o.DiagAPI.instance())}}t.MetricsAPI=MetricsAPI},25:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.PropagationAPI=void 0;const n=r(221);const a=r(19);const o=r(92);const i=r(398);const c=r(504);const s=r(44);const u=\"propagation\";const l=new a.NoopTextMapPropagator;class PropagationAPI{constructor(){this.createBaggage=c.createBaggage;this.getBaggage=i.getBaggage;this.getActiveBaggage=i.getActiveBaggage;this.setBaggage=i.setBaggage;this.deleteBaggage=i.deleteBaggage}static getInstance(){if(!this._instance){this._instance=new PropagationAPI}return this._instance}setGlobalPropagator(e){return(0,n.registerGlobal)(u,e,s.DiagAPI.instance())}inject(e,t,r=o.defaultTextMapSetter){return this._getGlobalPropagator().inject(e,t,r)}extract(e,t,r=o.defaultTextMapGetter){return this._getGlobalPropagator().extract(e,t,r)}fields(){return this._getGlobalPropagator().fields()}disable(){(0,n.unregisterGlobal)(u,s.DiagAPI.instance())}_getGlobalPropagator(){return(0,n.getGlobal)(u)||l}}t.PropagationAPI=PropagationAPI},397:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.TraceAPI=void 0;const n=r(221);const a=r(498);const o=r(477);const i=r(793);const c=r(44);const s=\"trace\";class TraceAPI{constructor(){this._proxyTracerProvider=new a.ProxyTracerProvider;this.wrapSpanContext=o.wrapSpanContext;this.isSpanContextValid=o.isSpanContextValid;this.deleteSpan=i.deleteSpan;this.getSpan=i.getSpan;this.getActiveSpan=i.getActiveSpan;this.getSpanContext=i.getSpanContext;this.setSpan=i.setSpan;this.setSpanContext=i.setSpanContext}static getInstance(){if(!this._instance){this._instance=new TraceAPI}return this._instance}setGlobalTracerProvider(e){const t=(0,n.registerGlobal)(s,this._proxyTracerProvider,c.DiagAPI.instance());if(t){this._proxyTracerProvider.setDelegate(e)}return t}getTracerProvider(){return(0,n.getGlobal)(s)||this._proxyTracerProvider}getTracer(e,t){return this.getTracerProvider().getTracer(e,t)}disable(){(0,n.unregisterGlobal)(s,c.DiagAPI.instance());this._proxyTracerProvider=new a.ProxyTracerProvider}}t.TraceAPI=TraceAPI},398:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.deleteBaggage=t.setBaggage=t.getActiveBaggage=t.getBaggage=void 0;const n=r(912);const a=r(23);const o=(0,a.createContextKey)(\"OpenTelemetry Baggage Key\");function getBaggage(e){return e.getValue(o)||undefined}t.getBaggage=getBaggage;function getActiveBaggage(){return getBaggage(n.ContextAPI.getInstance().active())}t.getActiveBaggage=getActiveBaggage;function setBaggage(e,t){return e.setValue(o,t)}t.setBaggage=setBaggage;function deleteBaggage(e){return e.deleteValue(o)}t.deleteBaggage=deleteBaggage},152:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.BaggageImpl=void 0;class BaggageImpl{constructor(e){this._entries=e?new Map(e):new Map}getEntry(e){const t=this._entries.get(e);if(!t){return undefined}return Object.assign({},t)}getAllEntries(){return Array.from(this._entries.entries()).map((([e,t])=>[e,t]))}setEntry(e,t){const r=new BaggageImpl(this._entries);r._entries.set(e,t);return r}removeEntry(e){const t=new BaggageImpl(this._entries);t._entries.delete(e);return t}removeEntries(...e){const t=new BaggageImpl(this._entries);for(const r of e){t._entries.delete(r)}return t}clear(){return new BaggageImpl}}t.BaggageImpl=BaggageImpl},647:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.baggageEntryMetadataSymbol=void 0;t.baggageEntryMetadataSymbol=Symbol(\"BaggageEntryMetadata\")},504:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.baggageEntryMetadataFromString=t.createBaggage=void 0;const n=r(44);const a=r(152);const o=r(647);const i=n.DiagAPI.instance();function createBaggage(e={}){return new a.BaggageImpl(new Map(Object.entries(e)))}t.createBaggage=createBaggage;function baggageEntryMetadataFromString(e){if(typeof e!==\"string\"){i.error(`Cannot create baggage metadata from unknown type: ${typeof e}`);e=\"\"}return{__TYPE__:o.baggageEntryMetadataSymbol,toString(){return e}}}t.baggageEntryMetadataFromString=baggageEntryMetadataFromString},778:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.context=void 0;const n=r(912);t.context=n.ContextAPI.getInstance()},108:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.NoopContextManager=void 0;const n=r(23);class NoopContextManager{active(){return n.ROOT_CONTEXT}with(e,t,r,...n){return t.call(r,...n)}bind(e,t){return t}enable(){return this}disable(){return this}}t.NoopContextManager=NoopContextManager},23:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.ROOT_CONTEXT=t.createContextKey=void 0;function createContextKey(e){return Symbol.for(e)}t.createContextKey=createContextKey;class BaseContext{constructor(e){const t=this;t._currentContext=e?new Map(e):new Map;t.getValue=e=>t._currentContext.get(e);t.setValue=(e,r)=>{const n=new BaseContext(t._currentContext);n._currentContext.set(e,r);return n};t.deleteValue=e=>{const r=new BaseContext(t._currentContext);r._currentContext.delete(e);return r}}}t.ROOT_CONTEXT=new BaseContext},304:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.diag=void 0;const n=r(44);t.diag=n.DiagAPI.instance()},757:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.DiagComponentLogger=void 0;const n=r(221);class DiagComponentLogger{constructor(e){this._namespace=e.namespace||\"DiagComponentLogger\"}debug(...e){return logProxy(\"debug\",this._namespace,e)}error(...e){return logProxy(\"error\",this._namespace,e)}info(...e){return logProxy(\"info\",this._namespace,e)}warn(...e){return logProxy(\"warn\",this._namespace,e)}verbose(...e){return logProxy(\"verbose\",this._namespace,e)}}t.DiagComponentLogger=DiagComponentLogger;function logProxy(e,t,r){const a=(0,n.getGlobal)(\"diag\");if(!a){return}r.unshift(t);return a[e](...r)}},83:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.DiagConsoleLogger=void 0;const r=[{n:\"error\",c:\"error\"},{n:\"warn\",c:\"warn\"},{n:\"info\",c:\"info\"},{n:\"debug\",c:\"debug\"},{n:\"verbose\",c:\"trace\"}];class DiagConsoleLogger{constructor(){function _consoleFunc(e){return function(...t){if(console){let r=console[e];if(typeof r!==\"function\"){r=console.log}if(typeof r===\"function\"){return r.apply(console,t)}}}}for(let e=0;e{Object.defineProperty(t,\"__esModule\",{value:true});t.createLogLevelDiagLogger=void 0;const n=r(711);function createLogLevelDiagLogger(e,t){if(en.DiagLogLevel.ALL){e=n.DiagLogLevel.ALL}t=t||{};function _filterFunc(r,n){const a=t[r];if(typeof a===\"function\"&&e>=n){return a.bind(t)}return function(){}}return{error:_filterFunc(\"error\",n.DiagLogLevel.ERROR),warn:_filterFunc(\"warn\",n.DiagLogLevel.WARN),info:_filterFunc(\"info\",n.DiagLogLevel.INFO),debug:_filterFunc(\"debug\",n.DiagLogLevel.DEBUG),verbose:_filterFunc(\"verbose\",n.DiagLogLevel.VERBOSE)}}t.createLogLevelDiagLogger=createLogLevelDiagLogger},711:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.DiagLogLevel=void 0;var r;(function(e){e[e[\"NONE\"]=0]=\"NONE\";e[e[\"ERROR\"]=30]=\"ERROR\";e[e[\"WARN\"]=50]=\"WARN\";e[e[\"INFO\"]=60]=\"INFO\";e[e[\"DEBUG\"]=70]=\"DEBUG\";e[e[\"VERBOSE\"]=80]=\"VERBOSE\";e[e[\"ALL\"]=9999]=\"ALL\"})(r=t.DiagLogLevel||(t.DiagLogLevel={}))},221:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.unregisterGlobal=t.getGlobal=t.registerGlobal=void 0;const n=r(678);const a=r(652);const o=r(662);const i=a.VERSION.split(\".\")[0];const c=Symbol.for(`opentelemetry.js.api.${i}`);const s=n._globalThis;function registerGlobal(e,t,r,n=false){var o;const i=s[c]=(o=s[c])!==null&&o!==void 0?o:{version:a.VERSION};if(!n&&i[e]){const t=new Error(`@opentelemetry/api: Attempted duplicate registration of API: ${e}`);r.error(t.stack||t.message);return false}if(i.version!==a.VERSION){const t=new Error(`@opentelemetry/api: Registration of version v${i.version} for ${e} does not match previously registered API v${a.VERSION}`);r.error(t.stack||t.message);return false}i[e]=t;r.debug(`@opentelemetry/api: Registered a global for ${e} v${a.VERSION}.`);return true}t.registerGlobal=registerGlobal;function getGlobal(e){var t,r;const n=(t=s[c])===null||t===void 0?void 0:t.version;if(!n||!(0,o.isCompatible)(n)){return}return(r=s[c])===null||r===void 0?void 0:r[e]}t.getGlobal=getGlobal;function unregisterGlobal(e,t){t.debug(`@opentelemetry/api: Unregistering a global for ${e} v${a.VERSION}.`);const r=s[c];if(r){delete r[e]}}t.unregisterGlobal=unregisterGlobal},662:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.isCompatible=t._makeCompatibilityCheck=void 0;const n=r(652);const a=/^(\\d+)\\.(\\d+)\\.(\\d+)(-(.+))?$/;function _makeCompatibilityCheck(e){const t=new Set([e]);const r=new Set;const n=e.match(a);if(!n){return()=>false}const o={major:+n[1],minor:+n[2],patch:+n[3],prerelease:n[4]};if(o.prerelease!=null){return function isExactmatch(t){return t===e}}function _reject(e){r.add(e);return false}function _accept(e){t.add(e);return true}return function isCompatible(e){if(t.has(e)){return true}if(r.has(e)){return false}const n=e.match(a);if(!n){return _reject(e)}const i={major:+n[1],minor:+n[2],patch:+n[3],prerelease:n[4]};if(i.prerelease!=null){return _reject(e)}if(o.major!==i.major){return _reject(e)}if(o.major===0){if(o.minor===i.minor&&o.patch<=i.patch){return _accept(e)}return _reject(e)}if(o.minor<=i.minor){return _accept(e)}return _reject(e)}}t._makeCompatibilityCheck=_makeCompatibilityCheck;t.isCompatible=_makeCompatibilityCheck(n.VERSION)},120:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.metrics=void 0;const n=r(262);t.metrics=n.MetricsAPI.getInstance()},532:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.ValueType=void 0;var r;(function(e){e[e[\"INT\"]=0]=\"INT\";e[e[\"DOUBLE\"]=1]=\"DOUBLE\"})(r=t.ValueType||(t.ValueType={}))},440:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.createNoopMeter=t.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC=t.NOOP_OBSERVABLE_GAUGE_METRIC=t.NOOP_OBSERVABLE_COUNTER_METRIC=t.NOOP_UP_DOWN_COUNTER_METRIC=t.NOOP_HISTOGRAM_METRIC=t.NOOP_COUNTER_METRIC=t.NOOP_METER=t.NoopObservableUpDownCounterMetric=t.NoopObservableGaugeMetric=t.NoopObservableCounterMetric=t.NoopObservableMetric=t.NoopHistogramMetric=t.NoopUpDownCounterMetric=t.NoopCounterMetric=t.NoopMetric=t.NoopMeter=void 0;class NoopMeter{constructor(){}createHistogram(e,r){return t.NOOP_HISTOGRAM_METRIC}createCounter(e,r){return t.NOOP_COUNTER_METRIC}createUpDownCounter(e,r){return t.NOOP_UP_DOWN_COUNTER_METRIC}createObservableGauge(e,r){return t.NOOP_OBSERVABLE_GAUGE_METRIC}createObservableCounter(e,r){return t.NOOP_OBSERVABLE_COUNTER_METRIC}createObservableUpDownCounter(e,r){return t.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC}addBatchObservableCallback(e,t){}removeBatchObservableCallback(e){}}t.NoopMeter=NoopMeter;class NoopMetric{}t.NoopMetric=NoopMetric;class NoopCounterMetric extends NoopMetric{add(e,t){}}t.NoopCounterMetric=NoopCounterMetric;class NoopUpDownCounterMetric extends NoopMetric{add(e,t){}}t.NoopUpDownCounterMetric=NoopUpDownCounterMetric;class NoopHistogramMetric extends NoopMetric{record(e,t){}}t.NoopHistogramMetric=NoopHistogramMetric;class NoopObservableMetric{addCallback(e){}removeCallback(e){}}t.NoopObservableMetric=NoopObservableMetric;class NoopObservableCounterMetric extends NoopObservableMetric{}t.NoopObservableCounterMetric=NoopObservableCounterMetric;class NoopObservableGaugeMetric extends NoopObservableMetric{}t.NoopObservableGaugeMetric=NoopObservableGaugeMetric;class NoopObservableUpDownCounterMetric extends NoopObservableMetric{}t.NoopObservableUpDownCounterMetric=NoopObservableUpDownCounterMetric;t.NOOP_METER=new NoopMeter;t.NOOP_COUNTER_METRIC=new NoopCounterMetric;t.NOOP_HISTOGRAM_METRIC=new NoopHistogramMetric;t.NOOP_UP_DOWN_COUNTER_METRIC=new NoopUpDownCounterMetric;t.NOOP_OBSERVABLE_COUNTER_METRIC=new NoopObservableCounterMetric;t.NOOP_OBSERVABLE_GAUGE_METRIC=new NoopObservableGaugeMetric;t.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC=new NoopObservableUpDownCounterMetric;function createNoopMeter(){return t.NOOP_METER}t.createNoopMeter=createNoopMeter},586:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.NOOP_METER_PROVIDER=t.NoopMeterProvider=void 0;const n=r(440);class NoopMeterProvider{getMeter(e,t,r){return n.NOOP_METER}}t.NoopMeterProvider=NoopMeterProvider;t.NOOP_METER_PROVIDER=new NoopMeterProvider},678:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;Object.defineProperty(e,n,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var a=this&&this.__exportStar||function(e,t){for(var r in e)if(r!==\"default\"&&!Object.prototype.hasOwnProperty.call(t,r))n(t,e,r)};Object.defineProperty(t,\"__esModule\",{value:true});a(r(59),t)},460:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t._globalThis=void 0;t._globalThis=typeof globalThis===\"object\"?globalThis:global},59:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;Object.defineProperty(e,n,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var a=this&&this.__exportStar||function(e,t){for(var r in e)if(r!==\"default\"&&!Object.prototype.hasOwnProperty.call(t,r))n(t,e,r)};Object.defineProperty(t,\"__esModule\",{value:true});a(r(460),t)},27:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.propagation=void 0;const n=r(25);t.propagation=n.PropagationAPI.getInstance()},19:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.NoopTextMapPropagator=void 0;class NoopTextMapPropagator{inject(e,t){}extract(e,t){return e}fields(){return[]}}t.NoopTextMapPropagator=NoopTextMapPropagator},92:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.defaultTextMapSetter=t.defaultTextMapGetter=void 0;t.defaultTextMapGetter={get(e,t){if(e==null){return undefined}return e[t]},keys(e){if(e==null){return[]}return Object.keys(e)}};t.defaultTextMapSetter={set(e,t,r){if(e==null){return}e[t]=r}}},816:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.trace=void 0;const n=r(397);t.trace=n.TraceAPI.getInstance()},374:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.NonRecordingSpan=void 0;const n=r(546);class NonRecordingSpan{constructor(e=n.INVALID_SPAN_CONTEXT){this._spanContext=e}spanContext(){return this._spanContext}setAttribute(e,t){return this}setAttributes(e){return this}addEvent(e,t){return this}setStatus(e){return this}updateName(e){return this}end(e){}isRecording(){return false}recordException(e,t){}}t.NonRecordingSpan=NonRecordingSpan},637:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.NoopTracer=void 0;const n=r(912);const a=r(793);const o=r(374);const i=r(477);const c=n.ContextAPI.getInstance();class NoopTracer{startSpan(e,t,r=c.active()){const n=Boolean(t===null||t===void 0?void 0:t.root);if(n){return new o.NonRecordingSpan}const s=r&&(0,a.getSpanContext)(r);if(isSpanContext(s)&&(0,i.isSpanContextValid)(s)){return new o.NonRecordingSpan(s)}else{return new o.NonRecordingSpan}}startActiveSpan(e,t,r,n){let o;let i;let s;if(arguments.length<2){return}else if(arguments.length===2){s=t}else if(arguments.length===3){o=t;s=r}else{o=t;i=r;s=n}const u=i!==null&&i!==void 0?i:c.active();const l=this.startSpan(e,o,u);const g=(0,a.setSpan)(u,l);return c.with(g,s,undefined,l)}}t.NoopTracer=NoopTracer;function isSpanContext(e){return typeof e===\"object\"&&typeof e[\"spanId\"]===\"string\"&&typeof e[\"traceId\"]===\"string\"&&typeof e[\"traceFlags\"]===\"number\"}},76:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.NoopTracerProvider=void 0;const n=r(637);class NoopTracerProvider{getTracer(e,t,r){return new n.NoopTracer}}t.NoopTracerProvider=NoopTracerProvider},779:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.ProxyTracer=void 0;const n=r(637);const a=new n.NoopTracer;class ProxyTracer{constructor(e,t,r,n){this._provider=e;this.name=t;this.version=r;this.options=n}startSpan(e,t,r){return this._getTracer().startSpan(e,t,r)}startActiveSpan(e,t,r,n){const a=this._getTracer();return Reflect.apply(a.startActiveSpan,a,arguments)}_getTracer(){if(this._delegate){return this._delegate}const e=this._provider.getDelegateTracer(this.name,this.version,this.options);if(!e){return a}this._delegate=e;return this._delegate}}t.ProxyTracer=ProxyTracer},498:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.ProxyTracerProvider=void 0;const n=r(779);const a=r(76);const o=new a.NoopTracerProvider;class ProxyTracerProvider{getTracer(e,t,r){var a;return(a=this.getDelegateTracer(e,t,r))!==null&&a!==void 0?a:new n.ProxyTracer(this,e,t,r)}getDelegate(){var e;return(e=this._delegate)!==null&&e!==void 0?e:o}setDelegate(e){this._delegate=e}getDelegateTracer(e,t,r){var n;return(n=this._delegate)===null||n===void 0?void 0:n.getTracer(e,t,r)}}t.ProxyTracerProvider=ProxyTracerProvider},312:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.SamplingDecision=void 0;var r;(function(e){e[e[\"NOT_RECORD\"]=0]=\"NOT_RECORD\";e[e[\"RECORD\"]=1]=\"RECORD\";e[e[\"RECORD_AND_SAMPLED\"]=2]=\"RECORD_AND_SAMPLED\"})(r=t.SamplingDecision||(t.SamplingDecision={}))},793:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.getSpanContext=t.setSpanContext=t.deleteSpan=t.setSpan=t.getActiveSpan=t.getSpan=void 0;const n=r(23);const a=r(374);const o=r(912);const i=(0,n.createContextKey)(\"OpenTelemetry Context Key SPAN\");function getSpan(e){return e.getValue(i)||undefined}t.getSpan=getSpan;function getActiveSpan(){return getSpan(o.ContextAPI.getInstance().active())}t.getActiveSpan=getActiveSpan;function setSpan(e,t){return e.setValue(i,t)}t.setSpan=setSpan;function deleteSpan(e){return e.deleteValue(i)}t.deleteSpan=deleteSpan;function setSpanContext(e,t){return setSpan(e,new a.NonRecordingSpan(t))}t.setSpanContext=setSpanContext;function getSpanContext(e){var t;return(t=getSpan(e))===null||t===void 0?void 0:t.spanContext()}t.getSpanContext=getSpanContext},285:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.TraceStateImpl=void 0;const n=r(240);const a=32;const o=512;const i=\",\";const c=\"=\";class TraceStateImpl{constructor(e){this._internalState=new Map;if(e)this._parse(e)}set(e,t){const r=this._clone();if(r._internalState.has(e)){r._internalState.delete(e)}r._internalState.set(e,t);return r}unset(e){const t=this._clone();t._internalState.delete(e);return t}get(e){return this._internalState.get(e)}serialize(){return this._keys().reduce(((e,t)=>{e.push(t+c+this.get(t));return e}),[]).join(i)}_parse(e){if(e.length>o)return;this._internalState=e.split(i).reverse().reduce(((e,t)=>{const r=t.trim();const a=r.indexOf(c);if(a!==-1){const o=r.slice(0,a);const i=r.slice(a+1,t.length);if((0,n.validateKey)(o)&&(0,n.validateValue)(i)){e.set(o,i)}else{}}return e}),new Map);if(this._internalState.size>a){this._internalState=new Map(Array.from(this._internalState.entries()).reverse().slice(0,a))}}_keys(){return Array.from(this._internalState.keys()).reverse()}_clone(){const e=new TraceStateImpl;e._internalState=new Map(this._internalState);return e}}t.TraceStateImpl=TraceStateImpl},240:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.validateValue=t.validateKey=void 0;const r=\"[_0-9a-z-*/]\";const n=`[a-z]${r}{0,255}`;const a=`[a-z0-9]${r}{0,240}@[a-z]${r}{0,13}`;const o=new RegExp(`^(?:${n}|${a})$`);const i=/^[ -~]{0,255}[!-~]$/;const c=/,|=/;function validateKey(e){return o.test(e)}t.validateKey=validateKey;function validateValue(e){return i.test(e)&&!c.test(e)}t.validateValue=validateValue},87:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.createTraceState=void 0;const n=r(285);function createTraceState(e){return new n.TraceStateImpl(e)}t.createTraceState=createTraceState},546:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.INVALID_SPAN_CONTEXT=t.INVALID_TRACEID=t.INVALID_SPANID=void 0;const n=r(731);t.INVALID_SPANID=\"0000000000000000\";t.INVALID_TRACEID=\"00000000000000000000000000000000\";t.INVALID_SPAN_CONTEXT={traceId:t.INVALID_TRACEID,spanId:t.INVALID_SPANID,traceFlags:n.TraceFlags.NONE}},613:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.SpanKind=void 0;var r;(function(e){e[e[\"INTERNAL\"]=0]=\"INTERNAL\";e[e[\"SERVER\"]=1]=\"SERVER\";e[e[\"CLIENT\"]=2]=\"CLIENT\";e[e[\"PRODUCER\"]=3]=\"PRODUCER\";e[e[\"CONSUMER\"]=4]=\"CONSUMER\"})(r=t.SpanKind||(t.SpanKind={}))},477:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.wrapSpanContext=t.isSpanContextValid=t.isValidSpanId=t.isValidTraceId=void 0;const n=r(546);const a=r(374);const o=/^([0-9a-f]{32})$/i;const i=/^[0-9a-f]{16}$/i;function isValidTraceId(e){return o.test(e)&&e!==n.INVALID_TRACEID}t.isValidTraceId=isValidTraceId;function isValidSpanId(e){return i.test(e)&&e!==n.INVALID_SPANID}t.isValidSpanId=isValidSpanId;function isSpanContextValid(e){return isValidTraceId(e.traceId)&&isValidSpanId(e.spanId)}t.isSpanContextValid=isSpanContextValid;function wrapSpanContext(e){return new a.NonRecordingSpan(e)}t.wrapSpanContext=wrapSpanContext},854:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.SpanStatusCode=void 0;var r;(function(e){e[e[\"UNSET\"]=0]=\"UNSET\";e[e[\"OK\"]=1]=\"OK\";e[e[\"ERROR\"]=2]=\"ERROR\"})(r=t.SpanStatusCode||(t.SpanStatusCode={}))},731:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.TraceFlags=void 0;var r;(function(e){e[e[\"NONE\"]=0]=\"NONE\";e[e[\"SAMPLED\"]=1]=\"SAMPLED\"})(r=t.TraceFlags||(t.TraceFlags={}))},652:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.VERSION=void 0;t.VERSION=\"1.6.0\"}};var t={};function __nccwpck_require__(r){var n=t[r];if(n!==undefined){return n.exports}var a=t[r]={exports:{}};var o=true;try{e[r].call(a.exports,a,a.exports,__nccwpck_require__);o=false}finally{if(o)delete t[r]}return a.exports}if(typeof __nccwpck_require__!==\"undefined\")__nccwpck_require__.ab=__dirname+\"/\";var r={};(()=>{var e=r;Object.defineProperty(e,\"__esModule\",{value:true});e.trace=e.propagation=e.metrics=e.diag=e.context=e.INVALID_SPAN_CONTEXT=e.INVALID_TRACEID=e.INVALID_SPANID=e.isValidSpanId=e.isValidTraceId=e.isSpanContextValid=e.createTraceState=e.TraceFlags=e.SpanStatusCode=e.SpanKind=e.SamplingDecision=e.ProxyTracerProvider=e.ProxyTracer=e.defaultTextMapSetter=e.defaultTextMapGetter=e.ValueType=e.createNoopMeter=e.DiagLogLevel=e.DiagConsoleLogger=e.ROOT_CONTEXT=e.createContextKey=e.baggageEntryMetadataFromString=void 0;var t=__nccwpck_require__(504);Object.defineProperty(e,\"baggageEntryMetadataFromString\",{enumerable:true,get:function(){return t.baggageEntryMetadataFromString}});var n=__nccwpck_require__(23);Object.defineProperty(e,\"createContextKey\",{enumerable:true,get:function(){return n.createContextKey}});Object.defineProperty(e,\"ROOT_CONTEXT\",{enumerable:true,get:function(){return n.ROOT_CONTEXT}});var a=__nccwpck_require__(83);Object.defineProperty(e,\"DiagConsoleLogger\",{enumerable:true,get:function(){return a.DiagConsoleLogger}});var o=__nccwpck_require__(711);Object.defineProperty(e,\"DiagLogLevel\",{enumerable:true,get:function(){return o.DiagLogLevel}});var i=__nccwpck_require__(440);Object.defineProperty(e,\"createNoopMeter\",{enumerable:true,get:function(){return i.createNoopMeter}});var c=__nccwpck_require__(532);Object.defineProperty(e,\"ValueType\",{enumerable:true,get:function(){return c.ValueType}});var s=__nccwpck_require__(92);Object.defineProperty(e,\"defaultTextMapGetter\",{enumerable:true,get:function(){return s.defaultTextMapGetter}});Object.defineProperty(e,\"defaultTextMapSetter\",{enumerable:true,get:function(){return s.defaultTextMapSetter}});var u=__nccwpck_require__(779);Object.defineProperty(e,\"ProxyTracer\",{enumerable:true,get:function(){return u.ProxyTracer}});var l=__nccwpck_require__(498);Object.defineProperty(e,\"ProxyTracerProvider\",{enumerable:true,get:function(){return l.ProxyTracerProvider}});var g=__nccwpck_require__(312);Object.defineProperty(e,\"SamplingDecision\",{enumerable:true,get:function(){return g.SamplingDecision}});var p=__nccwpck_require__(613);Object.defineProperty(e,\"SpanKind\",{enumerable:true,get:function(){return p.SpanKind}});var d=__nccwpck_require__(854);Object.defineProperty(e,\"SpanStatusCode\",{enumerable:true,get:function(){return d.SpanStatusCode}});var _=__nccwpck_require__(731);Object.defineProperty(e,\"TraceFlags\",{enumerable:true,get:function(){return _.TraceFlags}});var f=__nccwpck_require__(87);Object.defineProperty(e,\"createTraceState\",{enumerable:true,get:function(){return f.createTraceState}});var b=__nccwpck_require__(477);Object.defineProperty(e,\"isSpanContextValid\",{enumerable:true,get:function(){return b.isSpanContextValid}});Object.defineProperty(e,\"isValidTraceId\",{enumerable:true,get:function(){return b.isValidTraceId}});Object.defineProperty(e,\"isValidSpanId\",{enumerable:true,get:function(){return b.isValidSpanId}});var v=__nccwpck_require__(546);Object.defineProperty(e,\"INVALID_SPANID\",{enumerable:true,get:function(){return v.INVALID_SPANID}});Object.defineProperty(e,\"INVALID_TRACEID\",{enumerable:true,get:function(){return v.INVALID_TRACEID}});Object.defineProperty(e,\"INVALID_SPAN_CONTEXT\",{enumerable:true,get:function(){return v.INVALID_SPAN_CONTEXT}});const O=__nccwpck_require__(778);Object.defineProperty(e,\"context\",{enumerable:true,get:function(){return O.context}});const P=__nccwpck_require__(304);Object.defineProperty(e,\"diag\",{enumerable:true,get:function(){return P.diag}});const N=__nccwpck_require__(120);Object.defineProperty(e,\"metrics\",{enumerable:true,get:function(){return N.metrics}});const S=__nccwpck_require__(27);Object.defineProperty(e,\"propagation\",{enumerable:true,get:function(){return S.propagation}});const C=__nccwpck_require__(816);Object.defineProperty(e,\"trace\",{enumerable:true,get:function(){return C.trace}});e[\"default\"]={context:O.context,diag:P.diag,metrics:N.metrics,propagation:S.propagation,trace:C.trace}})();module.exports=r})();","(()=>{\"use strict\";if(typeof __nccwpck_require__!==\"undefined\")__nccwpck_require__.ab=__dirname+\"/\";var e={};(()=>{var r=e;\n/*!\n * cookie\n * Copyright(c) 2012-2014 Roman Shtylman\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */r.parse=parse;r.serialize=serialize;var i=decodeURIComponent;var t=encodeURIComponent;var a=/; */;var n=/^[\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+$/;function parse(e,r){if(typeof e!==\"string\"){throw new TypeError(\"argument str must be a string\")}var t={};var n=r||{};var o=e.split(a);var s=n.decode||i;for(var p=0;p{\"use strict\";var e={928:e=>{\n/*!\n * fresh\n * Copyright(c) 2012 TJ Holowaychuk\n * Copyright(c) 2016-2017 Douglas Christopher Wilson\n * MIT Licensed\n */\nvar r=/(?:^|,)\\s*?no-cache\\s*?(?:,|$)/;e.exports=fresh;function fresh(e,a){var t=e[\"if-modified-since\"];var s=e[\"if-none-match\"];if(!t&&!s){return false}var i=e[\"cache-control\"];if(i&&r.test(i)){return false}if(s&&s!==\"*\"){var f=a[\"etag\"];if(!f){return false}var n=true;var u=parseTokenList(s);for(var _=0;_{\"use strict\";if(typeof __nccwpck_require__!==\"undefined\")__nccwpck_require__.ab=__dirname+\"/\";var e={};(()=>{var n=e;Object.defineProperty(n,\"__esModule\",{value:true});n.pathToRegexp=n.tokensToRegexp=n.regexpToFunction=n.match=n.tokensToFunction=n.compile=n.parse=void 0;function lexer(e){var n=[];var r=0;while(r=48&&o<=57||o>=65&&o<=90||o>=97&&o<=122||o===95){a+=e[i++];continue}break}if(!a)throw new TypeError(\"Missing parameter name at \".concat(r));n.push({type:\"NAME\",index:r,value:a});r=i;continue}if(t===\"(\"){var c=1;var f=\"\";var i=r+1;if(e[i]===\"?\"){throw new TypeError('Pattern cannot start with \"?\" at '.concat(i))}while(i-1)return true}return false};var safePattern=function(e){var n=c[c.length-1];var r=e||(n&&typeof n===\"string\"?n:\"\");if(n&&!r){throw new TypeError('Must have text between two parameters, missing text after \"'.concat(n.name,'\"'))}if(!r||isSafe(r))return\"[^\".concat(escapeString(o),\"]+?\");return\"(?:(?!\".concat(escapeString(r),\")[^\").concat(escapeString(o),\"])+?\")};while(u)?(?!\\?)/g;var t=0;var a=r.exec(e.source);while(a){n.push({name:a[1]||t++,prefix:\"\",suffix:\"\",modifier:\"\",pattern:\"\"});a=r.exec(e.source)}return e}function arrayToRegexp(e,n,r){var t=e.map((function(e){return pathToRegexp(e,n,r).source}));return new RegExp(\"(?:\".concat(t.join(\"|\"),\")\"),flags(r))}function stringToRegexp(e,n,r){return tokensToRegexp(parse(e,r),n,r)}function tokensToRegexp(e,n,r){if(r===void 0){r={}}var t=r.strict,a=t===void 0?false:t,i=r.start,o=i===void 0?true:i,c=r.end,f=c===void 0?true:c,u=r.encode,p=u===void 0?function(e){return e}:u,v=r.delimiter,s=v===void 0?\"/#?\":v,d=r.endsWith,g=d===void 0?\"\":d;var x=\"[\".concat(escapeString(g),\"]|$\");var h=\"[\".concat(escapeString(s),\"]\");var l=o?\"^\":\"\";for(var m=0,T=e;m-1:A===undefined;if(!a){l+=\"(?:\".concat(h,\"(?=\").concat(x,\"))?\")}if(!_){l+=\"(?=\".concat(h,\"|\").concat(x,\")\")}}return new RegExp(l,flags(r))}n.tokensToRegexp=tokensToRegexp;function pathToRegexp(e,n,r){if(e instanceof RegExp)return regexpToRegexp(e,n);if(Array.isArray(e))return arrayToRegexp(e,n,r);return stringToRegexp(e,n,r)}n.pathToRegexp=pathToRegexp})();module.exports=e})();","(()=>{\"use strict\";var e={36:e=>{function hash(e){var r=5381,_=e.length;while(_){r=r*33^e.charCodeAt(--_)}return r>>>0}e.exports=hash}};var r={};function __nccwpck_require__(_){var a=r[_];if(a!==undefined){return a.exports}var t=r[_]={exports:{}};var i=true;try{e[_](t,t.exports,__nccwpck_require__);i=false}finally{if(i)delete r[_]}return t.exports}if(typeof __nccwpck_require__!==\"undefined\")__nccwpck_require__.ab=__dirname+\"/\";var _=__nccwpck_require__(36);module.exports=_})();","(()=>{var e={293:function(e,t){(function(e,n){true?n(t):0})(this,(function(e){\"use strict\";class StructError extends TypeError{constructor(e,t){let n;const{message:r,explanation:i,...c}=e;const{path:o}=e;const a=o.length===0?r:`At path: ${o.join(\".\")} -- ${r}`;super(i??a);if(i!=null)this.cause=a;Object.assign(this,c);this.name=this.constructor.name;this.failures=()=>n??(n=[e,...t()])}}function isIterable(e){return isObject(e)&&typeof e[Symbol.iterator]===\"function\"}function isObject(e){return typeof e===\"object\"&&e!=null}function isPlainObject(e){if(Object.prototype.toString.call(e)!==\"[object Object]\"){return false}const t=Object.getPrototypeOf(e);return t===null||t===Object.prototype}function print(e){if(typeof e===\"symbol\"){return e.toString()}return typeof e===\"string\"?JSON.stringify(e):`${e}`}function shiftIterator(e){const{done:t,value:n}=e.next();return t?undefined:n}function toFailure(e,t,n,r){if(e===true){return}else if(e===false){e={}}else if(typeof e===\"string\"){e={message:e}}const{path:i,branch:c}=t;const{type:o}=n;const{refinement:a,message:s=`Expected a value of type \\`${o}\\`${a?` with refinement \\`${a}\\``:\"\"}, but received: \\`${print(r)}\\``}=e;return{value:r,type:o,refinement:a,key:i[i.length-1],path:i,branch:c,...e,message:s}}function*toFailures(e,t,n,r){if(!isIterable(e)){e=[e]}for(const i of e){const e=toFailure(i,t,n,r);if(e){yield e}}}function*run(e,t,n={}){const{path:r=[],branch:i=[e],coerce:c=false,mask:o=false}=n;const a={path:r,branch:i};if(c){e=t.coercer(e,a);if(o&&t.type!==\"type\"&&isObject(t.schema)&&isObject(e)&&!Array.isArray(e)){for(const n in e){if(t.schema[n]===undefined){delete e[n]}}}}let s=\"valid\";for(const r of t.validator(e,a)){r.explanation=n.message;s=\"not_valid\";yield[r,undefined]}for(let[u,f,l]of t.entries(e,a)){const t=run(f,l,{path:u===undefined?r:[...r,u],branch:u===undefined?i:[...i,f],coerce:c,mask:o,message:n.message});for(const n of t){if(n[0]){s=n[0].refinement!=null?\"not_refined\":\"not_valid\";yield[n[0],undefined]}else if(c){f=n[1];if(u===undefined){e=f}else if(e instanceof Map){e.set(u,f)}else if(e instanceof Set){e.add(f)}else if(isObject(e)){if(f!==undefined||u in e)e[u]=f}}}}if(s!==\"not_valid\"){for(const r of t.refiner(e,a)){r.explanation=n.message;s=\"not_refined\";yield[r,undefined]}}if(s===\"valid\"){yield[undefined,e]}}class Struct{constructor(e){const{type:t,schema:n,validator:r,refiner:i,coercer:c=e=>e,entries:o=function*(){}}=e;this.type=t;this.schema=n;this.entries=o;this.coercer=c;if(r){this.validator=(e,t)=>{const n=r(e,t);return toFailures(n,t,this,e)}}else{this.validator=()=>[]}if(i){this.refiner=(e,t)=>{const n=i(e,t);return toFailures(n,t,this,e)}}else{this.refiner=()=>[]}}assert(e,t){return assert(e,this,t)}create(e,t){return create(e,this,t)}is(e){return is(e,this)}mask(e,t){return mask(e,this,t)}validate(e,t={}){return validate(e,this,t)}}function assert(e,t,n){const r=validate(e,t,{message:n});if(r[0]){throw r[0]}}function create(e,t,n){const r=validate(e,t,{coerce:true,message:n});if(r[0]){throw r[0]}else{return r[1]}}function mask(e,t,n){const r=validate(e,t,{coerce:true,mask:true,message:n});if(r[0]){throw r[0]}else{return r[1]}}function is(e,t){const n=validate(e,t);return!n[0]}function validate(e,t,n={}){const r=run(e,t,n);const i=shiftIterator(r);if(i[0]){const e=new StructError(i[0],(function*(){for(const e of r){if(e[0]){yield e[0]}}}));return[e,undefined]}else{const e=i[1];return[undefined,e]}}function assign(...e){const t=e[0].type===\"type\";const n=e.map((e=>e.schema));const r=Object.assign({},...n);return t?type(r):object(r)}function define(e,t){return new Struct({type:e,schema:null,validator:t})}function deprecated(e,t){return new Struct({...e,refiner:(t,n)=>t===undefined||e.refiner(t,n),validator(n,r){if(n===undefined){return true}else{t(n,r);return e.validator(n,r)}}})}function dynamic(e){return new Struct({type:\"dynamic\",schema:null,*entries(t,n){const r=e(t,n);yield*r.entries(t,n)},validator(t,n){const r=e(t,n);return r.validator(t,n)},coercer(t,n){const r=e(t,n);return r.coercer(t,n)},refiner(t,n){const r=e(t,n);return r.refiner(t,n)}})}function lazy(e){let t;return new Struct({type:\"lazy\",schema:null,*entries(n,r){t??(t=e());yield*t.entries(n,r)},validator(n,r){t??(t=e());return t.validator(n,r)},coercer(n,r){t??(t=e());return t.coercer(n,r)},refiner(n,r){t??(t=e());return t.refiner(n,r)}})}function omit(e,t){const{schema:n}=e;const r={...n};for(const e of t){delete r[e]}switch(e.type){case\"type\":return type(r);default:return object(r)}}function partial(e){const t=e instanceof Struct?{...e.schema}:{...e};for(const e in t){t[e]=optional(t[e])}return object(t)}function pick(e,t){const{schema:n}=e;const r={};for(const e of t){r[e]=n[e]}return object(r)}function struct(e,t){console.warn(\"superstruct@0.11 - The `struct` helper has been renamed to `define`.\");return define(e,t)}function any(){return define(\"any\",(()=>true))}function array(e){return new Struct({type:\"array\",schema:e,*entries(t){if(e&&Array.isArray(t)){for(const[n,r]of t.entries()){yield[n,r,e]}}},coercer(e){return Array.isArray(e)?e.slice():e},validator(e){return Array.isArray(e)||`Expected an array value, but received: ${print(e)}`}})}function bigint(){return define(\"bigint\",(e=>typeof e===\"bigint\"))}function boolean(){return define(\"boolean\",(e=>typeof e===\"boolean\"))}function date(){return define(\"date\",(e=>e instanceof Date&&!isNaN(e.getTime())||`Expected a valid \\`Date\\` object, but received: ${print(e)}`))}function enums(e){const t={};const n=e.map((e=>print(e))).join();for(const n of e){t[n]=n}return new Struct({type:\"enums\",schema:t,validator(t){return e.includes(t)||`Expected one of \\`${n}\\`, but received: ${print(t)}`}})}function func(){return define(\"func\",(e=>typeof e===\"function\"||`Expected a function, but received: ${print(e)}`))}function instance(e){return define(\"instance\",(t=>t instanceof e||`Expected a \\`${e.name}\\` instance, but received: ${print(t)}`))}function integer(){return define(\"integer\",(e=>typeof e===\"number\"&&!isNaN(e)&&Number.isInteger(e)||`Expected an integer, but received: ${print(e)}`))}function intersection(e){return new Struct({type:\"intersection\",schema:null,*entries(t,n){for(const r of e){yield*r.entries(t,n)}},*validator(t,n){for(const r of e){yield*r.validator(t,n)}},*refiner(t,n){for(const r of e){yield*r.refiner(t,n)}}})}function literal(e){const t=print(e);const n=typeof e;return new Struct({type:\"literal\",schema:n===\"string\"||n===\"number\"||n===\"boolean\"?e:null,validator(n){return n===e||`Expected the literal \\`${t}\\`, but received: ${print(n)}`}})}function map(e,t){return new Struct({type:\"map\",schema:null,*entries(n){if(e&&t&&n instanceof Map){for(const[r,i]of n.entries()){yield[r,r,e];yield[r,i,t]}}},coercer(e){return e instanceof Map?new Map(e):e},validator(e){return e instanceof Map||`Expected a \\`Map\\` object, but received: ${print(e)}`}})}function never(){return define(\"never\",(()=>false))}function nullable(e){return new Struct({...e,validator:(t,n)=>t===null||e.validator(t,n),refiner:(t,n)=>t===null||e.refiner(t,n)})}function number(){return define(\"number\",(e=>typeof e===\"number\"&&!isNaN(e)||`Expected a number, but received: ${print(e)}`))}function object(e){const t=e?Object.keys(e):[];const n=never();return new Struct({type:\"object\",schema:e?e:null,*entries(r){if(e&&isObject(r)){const i=new Set(Object.keys(r));for(const n of t){i.delete(n);yield[n,r[n],e[n]]}for(const e of i){yield[e,r[e],n]}}},validator(e){return isObject(e)||`Expected an object, but received: ${print(e)}`},coercer(e){return isObject(e)?{...e}:e}})}function optional(e){return new Struct({...e,validator:(t,n)=>t===undefined||e.validator(t,n),refiner:(t,n)=>t===undefined||e.refiner(t,n)})}function record(e,t){return new Struct({type:\"record\",schema:null,*entries(n){if(isObject(n)){for(const r in n){const i=n[r];yield[r,r,e];yield[r,i,t]}}},validator(e){return isObject(e)||`Expected an object, but received: ${print(e)}`}})}function regexp(){return define(\"regexp\",(e=>e instanceof RegExp))}function set(e){return new Struct({type:\"set\",schema:null,*entries(t){if(e&&t instanceof Set){for(const n of t){yield[n,n,e]}}},coercer(e){return e instanceof Set?new Set(e):e},validator(e){return e instanceof Set||`Expected a \\`Set\\` object, but received: ${print(e)}`}})}function string(){return define(\"string\",(e=>typeof e===\"string\"||`Expected a string, but received: ${print(e)}`))}function tuple(e){const t=never();return new Struct({type:\"tuple\",schema:null,*entries(n){if(Array.isArray(n)){const r=Math.max(e.length,n.length);for(let i=0;ie.type)).join(\" | \");return new Struct({type:\"union\",schema:null,coercer(t){for(const n of e){const[e,r]=n.validate(t,{coerce:true});if(!e){return r}}return t},validator(n,r){const i=[];for(const t of e){const[...e]=run(n,t,r);const[c]=e;if(!c[0]){return[]}else{for(const[t]of e){if(t){i.push(t)}}}}return[`Expected the value to satisfy a union of \\`${t}\\`, but received: ${print(n)}`,...i]}})}function unknown(){return define(\"unknown\",(()=>true))}function coerce(e,t,n){return new Struct({...e,coercer:(r,i)=>is(r,t)?e.coercer(n(r,i),i):e.coercer(r,i)})}function defaulted(e,t,n={}){return coerce(e,unknown(),(e=>{const r=typeof t===\"function\"?t():t;if(e===undefined){return r}if(!n.strict&&isPlainObject(e)&&isPlainObject(r)){const t={...e};let n=false;for(const e in r){if(t[e]===undefined){t[e]=r[e];n=true}}if(n){return t}}return e}))}function trimmed(e){return coerce(e,string(),(e=>e.trim()))}function empty(e){return refine(e,\"empty\",(t=>{const n=getSize(t);return n===0||`Expected an empty ${e.type} but received one with a size of \\`${n}\\``}))}function getSize(e){if(e instanceof Map||e instanceof Set){return e.size}else{return e.length}}function max(e,t,n={}){const{exclusive:r}=n;return refine(e,\"max\",(n=>r?nr?n>t:n>=t||`Expected a ${e.type} greater than ${r?\"\":\"or equal to \"}${t} but received \\`${n}\\``))}function nonempty(e){return refine(e,\"nonempty\",(t=>{const n=getSize(t);return n>0||`Expected a nonempty ${e.type} but received an empty one`}))}function pattern(e,t){return refine(e,\"pattern\",(n=>t.test(n)||`Expected a ${e.type} matching \\`/${t.source}/\\` but received \"${n}\"`))}function size(e,t,n=t){const r=`Expected a ${e.type}`;const i=t===n?`of \\`${t}\\``:`between \\`${t}\\` and \\`${n}\\``;return refine(e,\"size\",(e=>{if(typeof e===\"number\"||e instanceof Date){return t<=e&&e<=n||`${r} ${i} but received \\`${e}\\``}else if(e instanceof Map||e instanceof Set){const{size:c}=e;return t<=c&&c<=n||`${r} with a size ${i} but received one with a size of \\`${c}\\``}else{const{length:c}=e;return t<=c&&c<=n||`${r} with a length ${i} but received one with a length of \\`${c}\\``}}))}function refine(e,t,n){return new Struct({...e,*refiner(r,i){yield*e.refiner(r,i);const c=n(r,i);const o=toFailures(c,i,e,r);for(const e of o){yield{...e,refinement:t}}}})}e.Struct=Struct;e.StructError=StructError;e.any=any;e.array=array;e.assert=assert;e.assign=assign;e.bigint=bigint;e.boolean=boolean;e.coerce=coerce;e.create=create;e.date=date;e.defaulted=defaulted;e.define=define;e.deprecated=deprecated;e.dynamic=dynamic;e.empty=empty;e.enums=enums;e.func=func;e.instance=instance;e.integer=integer;e.intersection=intersection;e.is=is;e.lazy=lazy;e.literal=literal;e.map=map;e.mask=mask;e.max=max;e.min=min;e.never=never;e.nonempty=nonempty;e.nullable=nullable;e.number=number;e.object=object;e.omit=omit;e.optional=optional;e.partial=partial;e.pattern=pattern;e.pick=pick;e.record=record;e.refine=refine;e.regexp=regexp;e.set=set;e.size=size;e.string=string;e.struct=struct;e.trimmed=trimmed;e.tuple=tuple;e.type=type;e.union=union;e.unknown=unknown;e.validate=validate}))}};if(typeof __nccwpck_require__!==\"undefined\")__nccwpck_require__.ab=__dirname+\"/\";var t={};e[293](0,t);module.exports=t})();","// This file is generated by next-core EcmascriptClientReferenceModule.\nconst { createClientModuleProxy } = require(\"react-server-dom-turbopack/server\");\n\n__turbopack_context__.n(createClientModuleProxy(\"[project]/node_modules/next/dist/esm/client/components/client-page.js\"));\n","// This file is generated by next-core EcmascriptClientReferenceModule.\nconst { createClientModuleProxy } = require(\"react-server-dom-turbopack/server\");\n\n__turbopack_context__.n(createClientModuleProxy(\"[project]/node_modules/next/dist/esm/client/components/client-segment.js\"));\n","// This file is generated by next-core EcmascriptClientReferenceModule.\nconst { createClientModuleProxy } = require(\"react-server-dom-turbopack/server\");\n\n__turbopack_context__.n(createClientModuleProxy(\"[project]/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js\"));\n","// This file is generated by next-core EcmascriptClientReferenceModule.\nconst { createClientModuleProxy } = require(\"react-server-dom-turbopack/server\");\n\n__turbopack_context__.n(createClientModuleProxy(\"[project]/node_modules/next/dist/esm/client/components/layout-router.js\"));\n","// This file is generated by next-core EcmascriptClientReferenceModule.\nconst { createClientModuleProxy } = require(\"react-server-dom-turbopack/server\");\n\n__turbopack_context__.n(createClientModuleProxy(\"[project]/node_modules/next/dist/esm/client/components/render-from-template-context.js\"));\n","// This file is generated by next-core EcmascriptClientReferenceModule.\nconst { createClientModuleProxy } = require(\"react-server-dom-turbopack/server\");\n\n__turbopack_context__.n(createClientModuleProxy(\"[project]/node_modules/next/dist/esm/lib/framework/boundary-components.js\"));\n","// This file is generated by next-core EcmascriptClientReferenceModule.\nconst { createClientModuleProxy } = require(\"react-server-dom-turbopack/server\");\n\n__turbopack_context__.n(createClientModuleProxy(\"[project]/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js\"));\n","/**\n * This module is for next.js server internal usage of path module.\n * It will use native path module for nodejs runtime.\n * It will use path-browserify polyfill for edge runtime.\n */\nlet path\n\nif (process.env.NEXT_RUNTIME === 'edge') {\n path = require('next/dist/compiled/path-browserify')\n} else {\n path = require('path')\n}\n\nmodule.exports = path\n"],"names":["util","ReactDOM","createStringDecoder","TextDecoder","ignoreBOM","arguments","length","decoderOptions","stream","hasOwnProperty","Object","prototype","resolveClientReference","bundlerConfig","metadata","moduleExports","name","Error","id","chunks","resolveServerReference","resolvedModuleData","idx","lastIndexOf","slice","async","requireAsyncModule","promise","globalThis","__next_require__","then","status","value","reason","instrumentedChunks","WeakSet","loadedChunks","ignoreReject","preloadModule","promises","i","thenable","__next_chunk_load__","has","push","resolve","add","bind","Promise","all","requireModule","__esModule","default","call","prepareDestinationWithChunks","moduleLoading","nonce$jscomp$0","chunk","nonce","JSCompiler_temp_const","ReactDOMSharedInternals","d","JSCompiler_temp_const$jscomp$0","X","prefix","JSCompiler_inline_result","crossOrigin","integrity","fetchPriority","__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE","REACT_ELEMENT_TYPE","Symbol","for","REACT_LAZY_TYPE","MAYBE_ITERATOR_SYMBOL","iterator","getIteratorFn","maybeIterable","ASYNC_ITERATOR","asyncIterator","isArrayImpl","Array","isArray","getPrototypeOf","ObjectPrototype$1","knownServerReferences","WeakMap","serializeNumber","number","Number","isFinite","Infinity","processReply","root","formFieldPrefix","temporaryReferences","onResolve","onReject","signal","endReplyLifetime","replyLifetimeController","abort","settled","reject","error","attachAbortSignal","abortSignal","aborted","AbortController","addEventListener","serializeTypedArray","tag","typedArray","Blob","Uint8Array","buffer","byteOffset","byteLength","blobId","nextPartId","formData","FormData","append","toString","serializeBinaryReader","reader","progress","entry","done","data","streamId","pendingParts","read","serializeReader","partJSON","JSON","stringify","resolveToJSON","x","serializeReadableStream","binaryReader","getReader","mode","serializeAsyncIterable","iterable","partJSON$21","next","x$22","key","$$typeof","indexOf","parentReference","writtenObjects","get","set","modelRoot","_payload","init","_init","resolvedModel","lazyId","serializeModel","lazyId$23","partJSON$24","data$25","promiseId","partValue","previousReference","partJSON$27","data$31","forEach","originalValue","originalKey","Map","from","Set","ArrayBuffer","Int8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","BigInt64Array","BigUint64Array","DataView","ReadableStream","Date","bound","model","json","boundCache","encodeFormData","reference","res","rej","body","e","defaultEncodeFormAction","identifierPrefix","referenceClosure","prefixedData","method","encType","isSignatureEqual","referenceId","numberOfBoundArgs","boundPromise","boundArgs","registerBoundServerReference","encodeFormAction","originalBind","defineProperties","$$FORM_ACTION","$$IS_SIGNATURE_EQUAL","FunctionBind","Function","ArraySlice","apply","newFn","args","concat","createBoundServerReference","metaData","callServer","action","createServerReference$1","ObjectPrototype","ArrayPrototype","ReactPromise","create","defineProperty","writable","enumerable","configurable","initializeModelChunk","initializeModuleChunk","readChunk","wakeChunk","response","listeners","listener","fulfillReference","rejectChunk","rejectReference","handler","resolveBlockedCycle","resolvedChunk","referencedChunk","wakeChunkIfInitialized","resolveListeners","rejectListeners","cyclicHandler","splice","triggerErrorOnChunk","createResolvedIteratorResultChunk","resolveIteratorResultChunk","resolveModelChunk","enqueueModel","resolveModuleChunk","initializingHandler","prevHandler","parseModel","errored","cyclic","deferred","rejectionIdx","deps","initializeBlockedChunk","reportGlobalError","weakResponse","_closed","_closedReason","_chunks","createLazyChunkWrapper","getChunk","_allowPartialStream","initializeChunkIfUnblocked","parentObject","map","path","referencedChunk$45","mappedValue","element","props","waitForReference","parent","loadServerReference","_serverReferenceConfig","_callServer","_encodeFormAction","serverReference","resolvedValue","unshift","erroredHandler","EMPTY_REFERENCE_PATH","getOutlinedModel","parseInt","split","createMap","createSet","createBlob","type","createFormData","extractIterator","createModel","parseModelString","_tempRefs","resolveErrorProd","NaN","parse","BigInt","missingCall","ResponseInstance","serverReferenceConfig","allowPartialStream","_bundlerConfig","_moduleLoading","_nonce","_stringDecoder","createStreamState","_rowState","_rowID","_rowTag","_rowLength","_buffer","resolveBuffer","enqueueValue","resolveModule","clientReferenceMetadata","clientReference","blockedChunk","resolveStream","controller","startReadableStream","closed","start","c","previousBlockedChunk","enqueue","v","chunk$57","close","createIterator","startAsyncIterable","nextWriteIndex","nextReadIndex","arg","stack","message","mergeBuffer","lastChunk","l","i$58","resolveTypedArray","constructor","bytesPerElement","processFullBinaryRow","streamState","stringDecoder","row","decode","processFullStringRow","D","C","L","m","S","M","digest","processBinaryChunk","rowState","rowID","rowTag","rowLength","chunkLength","lastIdx","offset","reviveModel","ref","noServerCall$1","createResponseFromOptions","options","serverConsumerManifest","moduleMap","serverModuleMap","unstable_allowPartialStream","startReadingFromStream$1","onDone","_ref","catch","noServerCall","startReadingFromStream","onEnd","on","charCodeAt","exports","createFromFetch","promiseForResponse","r","createFromNodeStream","createFromReadableStream","createServerReference","createTemporaryReferenceSet","encodeReply","registerServerReference","module","_globalThis","env","stdout","process","enabled","NO_COLOR","FORCE_COLOR","isTTY","CI","TERM","isColorSupported","Boolean","stdoutIsTerminal","NEXT_PRIVATE_PROMPT_OUTPUT","replaceClose","str","replace","index","substring","end","nextIndex","formatter","open","String","input","string","reset","s","bold","dim","italic","underline","inverse","hidden","strikethrough","black","red","green","yellow","blue","magenta","purple","cyan","white","gray","bgBlack","bgRed","bgGreen","bgYellow","bgBlue","bgMagenta","bgCyan","bgWhite","RSC_HEADER","ACTION_HEADER","NEXT_ROUTER_STATE_TREE_HEADER","NEXT_ROUTER_PREFETCH_HEADER","NEXT_ROUTER_SEGMENT_PREFETCH_HEADER","NEXT_HMR_REFRESH_HEADER","NEXT_URL","RSC_CONTENT_TYPE_HEADER","NEXT_INSTANT_TEST_COOKIE","FLIGHT_HEADERS","NEXT_RSC_UNION_QUERY","NEXT_ROUTER_STALE_TIME_HEADER","NEXT_DID_POSTPONE_HEADER","NEXT_REWRITTEN_PATH_HEADER","NEXT_REWRITTEN_QUERY_HEADER","NEXT_IS_PRERENDER_HEADER","NEXT_ACTION_NOT_FOUND_HEADER","NEXT_REQUEST_ID_HEADER","NEXT_HTML_REQUEST_ID_HEADER","NEXT_ACTION_REVALIDATED_HEADER","LayoutRouterContext","use","urlSearchParamsToParsedUrlQuery","SearchParamsContext","createClientParams","createClientSearchParams","ClientPageRoot","Component","serverProvidedParams","searchParams","params","layoutRouterContext","parentParams","clientSearchParams","clientParams","ClientSegmentRoot","slots","React","useContext","useUntrackedPathname","HTTPAccessErrorStatus","getAccessFallbackHTTPStatus","getAccessFallbackErrorTypeByStatus","isHTTPAccessFallbackError","MissingSlotContext","HTTPAccessFallbackErrorBoundary","state","triggeredStatus","undefined","previousPathname","pathname","componentDidCatch","NODE_ENV","missingSlots","size","warnOnce","require","warningMessage","formattedSlots","sort","a","b","localeCompare","slot","join","getDerivedStateFromError","httpStatus","getDerivedStateFromProps","render","notFound","forbidden","unauthorized","children","errorComponents","NOT_FOUND","FORBIDDEN","UNAUTHORIZED","isNotFound","isForbidden","isUnauthorized","meta","content","HTTPAccessFallbackBoundary","hasErrorFallback","Activity","Fragment","Suspense","useDeferredValue","useLayoutEffect","GlobalLayoutRouterContext","TemplateContext","unresolvedThenable","ErrorBoundary","disableSmoothScrollDuringRouteTransition","RedirectBoundary","InstantValidationBoundaryContext","RenderValidationBoundaryAtThisLevel","createSegmentKey","useRouterBFCache","normalizeAppPath","NavigationPromisesContext","getParamValueFromCacheKey","isDeferredRsc","getScrollPaddingTopInPixels","htmlElement","viewportHeight","scrollPaddingTop","getComputedStyle","parseFloat","endsWith","getScrollTargetState","instance","getScrollPaddingTop","rects","getClientRects","elementTop","POSITIVE_INFINITY","rect","top","getHashFragmentDomNode","hashFragment","document","getElementById","getElementsByName","InnerScrollHandler","childrenRef","useRef","scrollRef","scrollHandlerRef","renderTree","forceScroll","current","onlyHashChange","didHandleScroll","documentElement","initialTargetState","clientHeight","scrollIntoView","scrollTop","dontForceLayout","ScrollHandler","context","InnerLayoutRouter","tree","segmentPath","debugNameContext","url","isActive","parentNavPromises","resolvedPrefetchRsc","prefetchRsc","rsc","resolvedRsc","unwrappedRsc","navigationPromises","createNestedLayoutNavigationPromises","Provider","parentTree","parentRenderTree","parentSegmentPath","parentLoadingData","LoadingBoundaryProvider","loading","parentContext","LoadingBoundary","loadingRsc","loadingStyles","loadingScripts","fallback","OuterLayoutRouter","parallelRouterKey","errorStyles","errorScripts","templateStyles","templateScripts","template","segmentViewBoundaries","parentTreeSegment","activeTree","activeRenderTree","maybeValidationBoundaryId","window","__NEXT_CACHE_COMPONENTS","activeSegment","activeStateKey","bfcacheEntry","stateKey","segment","segmentBoundaryTriggerNode","segmentViewStateNode","SegmentBoundaryTriggerNode","SegmentViewStateNode","pagePrefix","page","paramName","paramCacheKey","paramType","paramValue","debugName","getBoundaryDebugNameFromSegment","childDebugNameContext","isVirtual","debugNameToDisplay","templateValue","errorComponent","child","SegmentStateProvider","isVirtualLayout","RedirectStatusCode","RenderFromTemplateContext","TEXT_PLAIN_CONTENT_TYPE_HEADER","HTML_CONTENT_TYPE_HEADER","JSON_CONTENT_TYPE_HEADER","NEXT_QUERY_PARAM_PREFIX","NEXT_INTERCEPTION_MARKER_PREFIX","MATCHED_PATH_HEADER","PRERENDER_REVALIDATE_HEADER","PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER","RSC_SEGMENTS_DIR_SUFFIX","RSC_SEGMENT_SUFFIX","RSC_SUFFIX","ACTION_SUFFIX","NEXT_DATA_SUFFIX","NEXT_META_SUFFIX","NEXT_BODY_SUFFIX","NEXT_NAV_DEPLOYMENT_ID_HEADER","NEXT_CACHE_TAGS_HEADER","NEXT_CACHE_REVALIDATED_TAGS_HEADER","NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER","NEXT_RESUME_HEADER","NEXT_RESUME_STATE_LENGTH_HEADER","NEXT_CACHE_TAG_MAX_ITEMS","NEXT_CACHE_TAG_MAX_LENGTH","NEXT_CACHE_SOFT_TAG_MAX_LENGTH","NEXT_CACHE_IMPLICIT_TAG_ID","NEXT_CACHE_ROOT_PARAM_TAG_ID","CACHE_ONE_YEAR_SECONDS","INFINITE_CACHE","MIDDLEWARE_FILENAME","MIDDLEWARE_LOCATION_REGEXP","PROXY_FILENAME","PROXY_LOCATION_REGEXP","INSTRUMENTATION_HOOK_FILENAME","PAGES_DIR_ALIAS","DOT_NEXT_ALIAS","ROOT_DIR_ALIAS","APP_DIR_ALIAS","RSC_MOD_REF_PROXY_ALIAS","RSC_ACTION_VALIDATE_ALIAS","RSC_ACTION_PROXY_ALIAS","RSC_CACHE_WRAPPER_ALIAS","RSC_DYNAMIC_IMPORT_WRAPPER_ALIAS","RSC_ACTION_ENCRYPTION_ALIAS","RSC_ACTION_CLIENT_WRAPPER_ALIAS","PUBLIC_DIR_MIDDLEWARE_CONFLICT","SSG_GET_INITIAL_PROPS_CONFLICT","SERVER_PROPS_GET_INIT_PROPS_CONFLICT","SERVER_PROPS_SSG_CONFLICT","STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR","SERVER_PROPS_EXPORT_ERROR","GSP_NO_RETURNED_VALUE","GSSP_NO_RETURNED_VALUE","UNSTABLE_REVALIDATE_RENAME_ERROR","GSSP_COMPONENT_MEMBER_ERROR","NON_STANDARD_NODE_ENV","SSG_FALLBACK_EXPORT_ERROR","ESLINT_DEFAULT_DIRS","SERVER_RUNTIME","edge","experimentalEdge","nodejs","WEB_SOCKET_MAX_RECONNECTIONS","WEBPACK_LAYERS_NAMES","shared","reactServerComponents","serverSideRendering","actionBrowser","apiNode","apiEdge","middleware","instrument","edgeAsset","appPagesBrowser","pagesDirBrowser","pagesDirEdge","pagesDirNode","WEBPACK_LAYERS","GROUP","builtinReact","serverOnly","neutralTarget","clientOnly","bundled","appPages","WEBPACK_RESOURCE_QUERIES","edgeSSREntry","metadataRoute","metadataImageMeta","FallbackMode","parseFallbackField","fallbackField","fallbackModeToFallbackField","parseStaticPathsResult","result","METADATA_BOUNDARY_NAME","VIEWPORT_BOUNDARY_NAME","OUTLET_BOUNDARY_NAME","ROOT_LAYOUT_BOUNDARY_NAME","NameSpace","MetadataBoundary","ViewportBoundary","OutletBoundary","RootLayoutBoundary","IconMark","createDefaultViewport","width","themeColor","initialScale","description","colorScheme","generator","viewport","title","createDefaultMetadata","authors","keywords","other","creator","metadataBase","robots","languages","previous","twitter","canonical","applicationName","abstract","types","icons","category","referrer","manifest","formatDetection","itunes","publisher","media","pagination","appleWebApp","alternates","openGraph","verification","facebook","pinterest","appLinks","archives","assets","bookmarks","classification","scheduleOnNextTick","cb","NEXT_RUNTIME","setTimeout","nextTick","scheduleImmediate","setImmediate","atLeastOneTask","waitAtLeastOneReactRenderTask","DUMMY_ORIGIN","isFullStringUrl","test","parseUrl","parsed","URL","parseReqUrl","parsedUrl","query","keys","values","getAll","legacyUrl","hash","search","href","host","hostname","auth","protocol","slashes","port","stripNextRscUnionQuery","relativeUrl","urlInstance","delete","createMetadataComponentsImpl","createMetadataComponents","ActionDidNotRevalidate","ActionDidRevalidateStaticAndDynamic","ActionDidRevalidateDynamicOnly","INSTANT_VALIDATION_ERROR_DIGEST","isInstantValidationError","err","InstantValidationError","interopDefault","mod","InvariantError","pathHasPrefix","removePathPrefix","mightBeServerReferenceId","wellKnownProperties","workAsyncStorage","workUnitAsyncStorage","getActionNotFoundError","actionId","getInvalidServerReferenceIdError","encoded","MAX_LOGGED_SERVER_REFERENCE_ID_LENGTH","TRUNCATED_SERVER_REFERENCE_ID_LENGTH","MANIFESTS_SINGLETON","globalThisWithManifests","isUseCacheStore","workUnitStore","createProxiedClientReferenceManifest","clientReferenceManifestsPerRoute","createMappingProxy","prop","Proxy","_","workStore","getStore","currentManifest","route","clientReferenceManifest","durableUseCacheEntries","clientReferenceManifestEntry","clientModules","__NEXT_DEV_SERVER","additionalClientReferenceManifestPages","mappingProxies","proxiedClientReferenceManifest","registeredManifest","proxy","rscModuleMappingForUseCache","clientReferenceName","clientModuleId","rscModuleMapping","createServerModuleMap","target","receiver","getServerActionsManifest","Reflect","workers","workerEntry","normalizeWorkerPageName","at","moduleId","durability","pageName","denormalizeWorkerPageName","bundlePath","selectWorkerForForwarding","serverActionsManifest","setManifestsSingleton","rawServerActionsManifest","existingSingleton","encryptionKey","node","assign","getManifestsSingleton","manifestSingleton","getClientReferenceManifest","getRscModuleMappingForUseCache","getServerModuleMap","stripFlightHeaders","headers","header","wrapApiHandler","getTracer","setRootSpanAttribute","trace","NodeSpan","runHandler","spanName","redirect","sendStatusCode","statusCode","statusOrUrl","writeHead","Location","write","checkIsOnDemandRevalidate","rawHeaders","previewProps","HeadersAdapter","previewModeId","isOnDemandRevalidate","revalidateOnlyGenerated","COOKIE_NAME_PRERENDER_BYPASS","COOKIE_NAME_PRERENDER_DATA","RESPONSE_LIMIT_DEFAULT","SYMBOL_PREVIEW_DATA","SYMBOL_CLEARED_COOKIES","clearPreviewData","serialize","getHeader","setHeader","expires","httpOnly","sameSite","secure","ApiError","sendError","statusMessage","setLazyProp","req","getter","opts","optsReset","getRevalidateReason","isStaticGeneration","NON_HTML_SEC_FETCH_DESTS","isNonHtmlSecFetchDest","isRSCRequestHeader","DEFAULT_MAX_POSTPONED_STATE_SIZE","parseMaxPostponedStateSize","INVALID_MAX_POSTPONED_STATE_SIZE_ERROR_MESSAGE","getMaxPostponedStateSize","configuredMaxPostponedStateSize","maxPostponedStateSize","maxPostponedStateSizeBytes","getPostponedStateExceededErrorMessage","toBuffer","Buffer","isBuffer","readBodyWithSizeLimit","maxBodySizeBytes","normalizePagePath1","normalized","isDynamicRoute","ensureLeadingSlash","posix","resolvedPage","normalize","NormalizeError","getServerActionRequestMetadata","contentType","Headers","isURLEncodedAction","isMultipartAction","startsWith","isFetchAction","isPossibleServerAction","getIsPossibleServerAction","HTML_LIMITED_BOT_UA_RE_STRING","cachedPattern","cachedRegex","shouldServeStreamingMetadata","userAgent","htmlLimitedBots","pattern","RegExp","BaseServerSpan","LoadComponentsSpan","InstrumentationSpan","NextServerSpan","NextNodeServerSpan","StartServerSpan","RenderSpan","AppRenderSpan","DevBundlerServiceSpan","RouterSpan","AppRouteRouteHandlersSpan","AppRouteRouteModuleSpan","RouteModuleSpan","ResolveMetadataSpan","MiddlewareSpan","NextVanillaSpanAllowlist","LogSpanAllowList","isThenable","NEXT_REQUEST_META","getRequestMeta","setRequestMeta","addRequestMeta","request","removeRequestMeta","parseLoaderTree","parallelRoutes","modules","staticSiblings","layout","defaultPage","conventionPath","SEARCH_PARAMS_VARY_ID","drainVaryParams","step","readFulfilledValue","decodeVaryParams","rootIterable","total","createVaryParams","readVaryParams","varyParams","Batcher","cacheKeyFn","schedulerFn","fn","pending","batch","cacheKey","CachedRouteKind","IncrementalCacheKind","RouteKind","createDevRenderContext","hmrCacheFallback","serverComponentsHmrCache","hmrRefreshHash","CSP_NONCE_SOURCE_REGEX","getScriptNonceFromHeader","cspHeaderValue","directives","directive","trim","find","dir","source","match","WEB_VITALS","execOnce","used","ABSOLUTE_URL_REGEX","isAbsoluteUrl","isLetter","getURL","location","getLocationOrigin","displayName","headersSent","origin","urlNoQuery","urlParts","getDisplayName","isResSent","finished","normalizeRepeatedSlashes","loadGetInitialProps","App","ctx","getInitialProps","pageProps","SP","performance","ST","every","DecodeError","PageNotFoundError","code","MissingStaticPage","MiddlewareNotFoundError","stringifyError","ENCODED_TAGS","OPENING","HTML","HEAD","BODY","CLOSED","BODY_AND_HTML","META","ICON_MARK","CACHE_BUSTING_SEARCH_PARAM_DIGEST_BYTES","textEncoder","TextEncoder","encodeCacheBustingSearchParam","bytes","binary","normalizeCacheBustingInput","fromCharCode","segmentPrefetchHeader","btoa","prefetchHeader","createCacheBustingSearchParamInput","stateTreeHeader","nextUrlHeader","computeCacheBustingSearchParamFromInput","crypto","subtle","encode","subarray","computeCacheBustingSearchParam1","computeLegacyCacheBustingSearchParam","hexHash","ReflectAdapter","deleteProperty","RequestCookies","ResponseCookies","stringifyCookie","UNDERSCORE_NOT_FOUND_ROUTE","UNDERSCORE_NOT_FOUND_ROUTE_ENTRY","UNDERSCORE_GLOBAL_ERROR_ROUTE","UNDERSCORE_GLOBAL_ERROR_ROUTE_ENTRY","cache","normalizeLocalePath","locales","lowercasedLocales","locale","toLowerCase","detectedLocale","segments","createPromiseWithResolvers","getSegmentParam","INTERCEPTION_ROUTE_MARKERS","normalizeEncodedDynamicPlaceholder","decodedSegment","decodeURIComponent","parseAppRouteSegment","interceptionMarker","param","isNormalizedAppRoute","isInterceptionAppRoute","interceptingRoute","interceptedRoute","OnlyRoutableSegments","AllowParallelSegments","AllowGroupSegments","parseAppRouteImpl","allowedTypes","pathnameSegments","filter","normalizedSegment","appSegment","parts","dynamicSegments","parseNormalizedAppRoute","parseAppRouteWithSlots","parseRoutePattern","tail","isOptionalCatchAll","isCatchAll","unbounded","prefixSegments","minLength","acceptsLength","prefixCovers","intercepted","canonicalSegment","interceptedSegment","patternCoversAtLength","isRoutePatternCovered","ordinaryRoutes","some","unboundedCoverageStart","Math","min","max","isInterceptionRouteAppPath","extractInterceptionRouteInformation","marker","splitInterceptingRoute","findMissingCanonicalInterceptionRoutes","appPaths","canonicalRoutes","canonicalRoutePatterns","interceptionRoute","canonicalRoute","HTML_LIMITED_BOT_UA_RE","parsePath","hashIndex","queryIndex","hasQuery","getSegmentValue","isGroupSegment","isParallelRouteSegment","computeSelectedLayoutSegment","parallelRouteKey","rawSegment","DEFAULT_SEGMENT_KEY","getSelectedLayoutSegmentPath","first","segmentValue","PAGE_SEGMENT_KEY","NOT_FOUND_SEGMENT_KEY","SERVER_REFERENCE_ID_LENGTH","extractInfoFromServerReferenceId","infoByte","typeBit","argMask","restArgs","usedArgs","bitPosition","bit","hasRestArgs","omitUnusedArgs","info","filteredArgs","DEFAULT_MAX_POSTPONED_STATE_SIZE_BYTES","parseSizeLimit","isNaN","isDefinitelyAValidIdentifier","describeStringPropertyAccess","describeHasCheckingStringProperty","stringifiedProp","vendored","ReactServerDOMTurbopackStatic","t","ContextAPI","n","o","NoopContextManager","getInstance","_instance","setGlobalContextManager","registerGlobal","DiagAPI","active","_getContextManager","with","getGlobal","disable","unregisterGlobal","_logProxy","setLogger","logLevel","DiagLogLevel","INFO","u","createLogLevelDiagLogger","suppressOverrideMessage","warn","createComponentLogger","DiagComponentLogger","verbose","debug","MetricsAPI","setGlobalMeterProvider","getMeterProvider","NOOP_METER_PROVIDER","getMeter","PropagationAPI","NoopTextMapPropagator","createBaggage","getBaggage","getActiveBaggage","setBaggage","deleteBaggage","setGlobalPropagator","inject","defaultTextMapSetter","_getGlobalPropagator","extract","defaultTextMapGetter","fields","TraceAPI","_proxyTracerProvider","ProxyTracerProvider","wrapSpanContext","isSpanContextValid","deleteSpan","getSpan","getActiveSpan","getSpanContext","setSpan","setSpanContext","setGlobalTracerProvider","setDelegate","getTracerProvider","createContextKey","getValue","setValue","deleteValue","BaggageImpl","_entries","getEntry","getAllEntries","entries","setEntry","removeEntry","removeEntries","clear","baggageEntryMetadataSymbol","baggageEntryMetadataFromString","__TYPE__","ROOT_CONTEXT","enable","BaseContext","_currentContext","diag","_namespace","namespace","logProxy","DiagConsoleLogger","_consoleFunc","console","log","NONE","ALL","_filterFunc","ERROR","WARN","DEBUG","VERBOSE","VERSION","version","isCompatible","_makeCompatibilityCheck","major","minor","patch","prerelease","isExactmatch","_reject","_accept","metrics","ValueType","createNoopMeter","NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC","NOOP_OBSERVABLE_GAUGE_METRIC","NOOP_OBSERVABLE_COUNTER_METRIC","NOOP_UP_DOWN_COUNTER_METRIC","NOOP_HISTOGRAM_METRIC","NOOP_COUNTER_METRIC","NOOP_METER","NoopObservableUpDownCounterMetric","NoopObservableGaugeMetric","NoopObservableCounterMetric","NoopObservableMetric","NoopHistogramMetric","NoopUpDownCounterMetric","NoopCounterMetric","NoopMetric","NoopMeter","createHistogram","createCounter","createUpDownCounter","createObservableGauge","createObservableCounter","createObservableUpDownCounter","addBatchObservableCallback","removeBatchObservableCallback","record","addCallback","removeCallback","NoopMeterProvider","__createBinding","__exportStar","propagation","NonRecordingSpan","INVALID_SPAN_CONTEXT","_spanContext","spanContext","setAttribute","setAttributes","addEvent","setStatus","updateName","isRecording","recordException","NoopTracer","startSpan","isSpanContext","startActiveSpan","g","NoopTracerProvider","ProxyTracer","_provider","_getTracer","_delegate","getDelegateTracer","getDelegate","SamplingDecision","TraceStateImpl","_internalState","_parse","_clone","unset","_keys","reduce","reverse","validateKey","validateValue","createTraceState","INVALID_TRACEID","INVALID_SPANID","traceId","spanId","traceFlags","TraceFlags","SpanKind","isValidSpanId","isValidTraceId","SpanStatusCode","__nccwpck_require__","ab","p","f","O","P","N","encodeURIComponent","TypeError","substr","tryDecode","maxAge","floor","domain","toUTCString","fresh","parseTokenList","parseHttpDate","pathToRegexp","tokensToRegexp","regexpToFunction","tokensToFunction","compile","lexer","prefixes","delimiter","tryConsume","mustConsume","consumeText","isSafe","safePattern","escapeString","suffix","modifier","h","T","flags","validate","exec","_loop_1","sensitive","regexpToRegexp","arrayToRegexp","stringToRegexp","strict","E","w","y","R","A","StructError","explanation","cause","failures","isIterable","isObject","isPlainObject","print","shiftIterator","toFailure","branch","refinement","toFailures","run","coerce","mask","coercer","schema","validator","refiner","Struct","assert","is","object","define","deprecated","dynamic","lazy","omit","partial","optional","pick","struct","any","array","bigint","boolean","date","getTime","enums","includes","func","integer","isInteger","intersection","literal","never","nullable","regexp","tuple","union","unknown","defaulted","trimmed","empty","refine","getSize","exclusive","nonempty","createClientModuleProxy","__turbopack_context__"],"mappings":"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","ignoreList":[0,1,2,3,4,5,10,12,13,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187]} \ No newline at end of file diff --git a/e-commerce/.next/server/chunks/ssr/[turbopack]_runtime.js b/e-commerce/.next/server/chunks/ssr/[turbopack]_runtime.js new file mode 100644 index 0000000000000000000000000000000000000000..a6ac78462e354d05b76ad0ac904c8ee437fac31a --- /dev/null +++ b/e-commerce/.next/server/chunks/ssr/[turbopack]_runtime.js @@ -0,0 +1,937 @@ +var RUNTIME_PUBLIC_PATH = "server/chunks/ssr/[turbopack]_runtime.js"; +var RELATIVE_ROOT_PATH = ".."; +var ASSET_PREFIX = "/_next/"; +// Apply forwarded globals from workerData if running in a worker thread +if (typeof require !== 'undefined') { + try { + var { workerData } = require('worker_threads'); + if (workerData?.__turbopack_globals__) { + Object.assign(globalThis, workerData.__turbopack_globals__); + // Remove internal data so it's not visible to user code + delete workerData.__turbopack_globals__; + } + } catch (_) { + // Not in a worker thread context, ignore + } +} +/** + * This file contains runtime types and functions that are shared between all + * TurboPack ECMAScript runtimes. + * + * It will be prepended to the runtime code of each runtime. + */ /* eslint-disable @typescript-eslint/no-unused-vars */ /// +/// +/** + * Describes why a module was instantiated. + * Shared between browser and Node.js runtimes. + */ var SourceType = /*#__PURE__*/ function(SourceType) { + /** + * The module was instantiated because it was included in an evaluated chunk's + * runtime. + * SourceData is a ChunkPath. + */ SourceType[SourceType["Runtime"] = 0] = "Runtime"; + /** + * The module was instantiated because a parent module imported it. + * SourceData is a ModuleId. + */ SourceType[SourceType["Parent"] = 1] = "Parent"; + /** + * The module was instantiated because it was included in a chunk's hot module + * update. + * SourceData is an array of ModuleIds or undefined. + */ SourceType[SourceType["Update"] = 2] = "Update"; + return SourceType; +}(SourceType || {}); +/** + * Flag indicating which module object type to create when a module is merged. Set to `true` + * by each runtime that uses ModuleWithDirection (browser dev-base.ts, nodejs dev-base.ts, + * nodejs build-base.ts). Browser production (build-base.ts) leaves it as `false` since it + * uses plain Module objects. + */ let createModuleWithDirectionFlag = false; +const REEXPORTED_OBJECTS = new WeakMap(); +/** + * Constructs the `__turbopack_context__` object for a module. + */ function Context(module, exports) { + this.m = module; + // We need to store this here instead of accessing it from the module object to: + // 1. Make it available to factories directly, since we rewrite `this` to + // `__turbopack_context__.e` in CJS modules. + // 2. Support async modules which rewrite `module.exports` to a promise, so we + // can still access the original exports object from functions like + // `esmExport` + // Ideally we could find a new approach for async modules and drop this property altogether. + this.e = exports; +} +const contextPrototype = Context.prototype; +const hasOwnProperty = Object.prototype.hasOwnProperty; +const toStringTag = typeof Symbol !== 'undefined' && Symbol.toStringTag; +function defineProp(obj, name, options) { + if (!hasOwnProperty.call(obj, name)) Object.defineProperty(obj, name, options); +} +function getOverwrittenModule(moduleCache, id) { + let module = moduleCache.get(id); + if (module === undefined) { + if (createModuleWithDirectionFlag) { + // set in development modes for hmr support + module = createModuleWithDirection(id); + } else { + module = createModuleObject(id); + } + moduleCache.set(id, module); + } + return module; +} +/** + * Creates the module object. Only done here to ensure all module objects have the same shape. + */ function createModuleObject(id) { + return { + exports: {}, + error: undefined, + id, + namespaceObject: undefined + }; +} +function createModuleWithDirection(id) { + return { + exports: {}, + error: undefined, + id, + namespaceObject: undefined, + parents: [], + children: [] + }; +} +const BindingTag_Value = 0; +/** + * Terminates a module's group of entries in an {@link EsmReexports} list. + */ const REEXPORT_GROUP_END = 0; +/** + * Adds the getters to the exports object. + */ function esm(exports, bindings, dynamic) { + defineProp(exports, '__esModule', { + value: true + }); + if (toStringTag) defineProp(exports, toStringTag, { + value: 'Module' + }); + let i = 0; + while(i < bindings.length){ + const propName = bindings[i++]; + const tagOrFunction = bindings[i++]; + if (typeof tagOrFunction === 'number') { + if (tagOrFunction === BindingTag_Value) { + defineProp(exports, propName, { + value: bindings[i++], + enumerable: true, + writable: false + }); + } else { + throw new Error(`unexpected tag: ${tagOrFunction}`); + } + } else { + const getterFn = tagOrFunction; + if (typeof bindings[i] === 'function') { + const setterFn = bindings[i++]; + defineProp(exports, propName, { + get: getterFn, + set: setterFn, + enumerable: true + }); + } else { + defineProp(exports, propName, { + get: getterFn, + enumerable: true + }); + } + } + } + // The properties defined above are already non-configurable and + // non-writable, so the namespace's existing exports are effectively + // immutable. Sealing additionally makes the object non-extensible, matching + // real ESM-namespace semantics. Modules with dynamic re-exports + // (`export *` from a CommonJS module) must stay extensible so the dynamic + // export proxy can surface keys discovered at runtime, so skip the seal for + // them. + if (!dynamic) Object.seal(exports); +} +/** + * Makes the module an ESM with exports + */ function esmExport(bindings, id, dynamic) { + let module; + let exports; + if (id != null) { + module = getOverwrittenModule(this.c, id); + exports = module.exports; + } else { + module = this.m; + exports = this.e; + } + module.namespaceObject = exports; + esm(exports, bindings, dynamic); +} +contextPrototype.s = esmExport; +/** + * Registers re-exports that all forward to properties of other modules. + * + * This is a compact spelling of the pattern + * + * ```js + * var ns = context.i(moduleId) + * context.s([exportName, () => ns[importedName], ...]) + * ``` + * + * The list is a flat sequence of groups. Each group starts with the source the exports come from, + * followed by that group's entries, and is terminated by the `0` sentinel (or the end of the list). + * + * The group head is either a **module id**, which is instantiated here: + * + * ```js + * context.S([ + * 76061, 'default', 'f', 'named', 'A', 0, + * 29842, 'otherModule', 'f', + * ]) + * ``` + * + * or the **namespace value** of a module that has already been imported, which is used directly: + * + * ```js + * var ns1 = context.i(76061) + * context.S([ns1, 'default', 'f', 'named', 'A']) + * ``` + * + * The producer picks the namespace form when it has generated the import anyway -- because some + * later import must not be reordered past it -- so nothing is instantiated twice. The two are told + * apart by type: a module id is always a string or number. A CommonJS function export produces a + * callable namespace value, so namespace heads can be functions as well as objects. + * + * Entries are `exportName, importedName` pairs, except when a group holds exactly one string. That + * string is then a comma-joined list of the same pairs, which saves the repeated quoting: + * + * ```js + * context.S([ + * 76061, 'default,f,named,A', 0, + * 29842, 'otherModule,f', + * ]) + * ``` + * + * The producer picks that spelling independently for each group whose names contain no commas, + * since that group's names are recovered by splitting on them. + * + * Groups whose head is a module id are instantiated in list order, at the point where the call + * appears, so the producer must not merge such a group across an import of another module. The + * destination reuses a source data value or getter descriptor when one exists, falling back to a + * wrapper getter for dynamic/proxy/inherited properties. + * + * `id` names the module the exports belong to when this module was merged into a scope-hoisting + * group, exactly as it does for {@link EsmExport}. + * + * Only the source descriptor's payload (value or getter) is reused. {@link esm} still defines a + * fresh enumerable, non-configurable destination property, and no source setter is ever forwarded. + */ function esmReexport(list, id) { + const bindings = []; + let i = 0; + while(i < list.length){ + const head = list[i++]; + const start = i; + while(i < list.length && list[i] !== REEXPORT_GROUP_END)i++; + const end = i; + // Skip the sentinel, if this group was terminated by one rather than by the end of the list. + i++; + // Module ids are always strings or numbers. Other values are already-imported namespaces; + // notably, interop with a CommonJS function export produces a callable namespace function. + // `esmImport` may return a promise for an async module, but re-exports of async modules keep + // going through `context.s`, so the producer never routes them here and this stays synchronous. + const namespace = typeof head === 'string' || typeof head === 'number' ? esmImport.call(this, head) : head; + if (end - start === 1) { + const pairs = list[start].split(','); + for(let j = 0; j < pairs.length; j += 2){ + appendReexportBinding(bindings, pairs[j], namespace, pairs[j + 1]); + } + } else { + for(let j = start; j < end; j += 2){ + appendReexportBinding(bindings, list[j], namespace, list[j + 1]); + } + } + } + esmExport.call(this, bindings, id); +} +contextPrototype.S = esmReexport; +function appendReexportBinding(bindings, exportedName, namespace, importedName) { + const descriptor = Reflect.getOwnPropertyDescriptor(namespace, importedName); + if (descriptor) { + if ('value' in descriptor) { + // Code generation only routes immutable imported bindings through this helper, so a data + // descriptor is a constant export and can be captured once. + bindings.push(exportedName, BindingTag_Value, descriptor.value); + return; + } + if (descriptor.get) { + // Accessors remain live by reusing the source getter. `esmReexport` is only called by + // generated code: every group head is either produced by + // `this.i` or is the namespace variable from a generated `this.i` call. Every getter on such + // a namespace is receiver-independent: ESM bindings are compiler-generated arrow functions, + // and the CommonJS/dynamic-namespace paths create arrows in `createGetter` and + // `getOwnPropertyDescriptor`. The destination can therefore reuse the exact function instead + // of allocating another wrapper getter. + bindings.push(exportedName, descriptor.get); + return; + } + } + // Dynamic/proxy/inherited CommonJS edge cases may not expose a usable own descriptor. + bindings.push(exportedName, ()=>namespace[importedName]); +} +function ensureDynamicExports(module, exports) { + let reexportedObjects = REEXPORTED_OBJECTS.get(module); + if (!reexportedObjects) { + REEXPORTED_OBJECTS.set(module, reexportedObjects = []); + // Returns the re-exported object that provides `prop` as an own property, + // or `undefined` if none does. The traps share this logic so they always + // agree on which keys are synthesized from `reexportedObjects`. `default` + // is never re-exported by `export *`, so it is never synthesized. + const reexportOwning = (prop)=>{ + if (prop !== 'default') { + for (const obj of reexportedObjects){ + if (hasOwnProperty.call(obj, prop)) return obj; + } + } + return undefined; + }; + // Modules with dynamic re-exports are not sealed by `esm()`, so the + // target beneath the namespace stays extensible. That is what lets the + // `ownKeys` and `getOwnPropertyDescriptor` traps legally report keys that + // exist on `reexportedObjects` but not on the target itself. + module.exports = module.namespaceObject = new Proxy(exports, { + get (target, prop) { + if (hasOwnProperty.call(target, prop) || prop === 'default' || prop === '__esModule') { + return Reflect.get(target, prop); + } + const obj = reexportOwning(prop); + return obj && Reflect.get(obj, prop); + }, + // The namespace is read-only, like a real esm namespace object. The + // re-exported modules can still mutate their own exports (exposed live + // via `get`), but mutating the namespace itself is rejected. Refusing + // here, rather than forwarding to the extensible target, also prevents an + // assignment/definition from shadowing a dynamic re-export. It also + // prevents delete from removing a static export. + set () { + return false; + }, + defineProperty () { + return false; + }, + deleteProperty () { + return false; + }, + // The `has` trap ensures that `'exportName' in starImports` will reflect + // the truth of whether a key is exported. + has (target, prop) { + if (Reflect.has(target, prop)) return true; + if (prop === 'default' || prop === '__esModule') return false; + return reexportOwning(prop) !== undefined; + }, + // ownKeys and getOwnPropertyDescriptor together make the keys enumerable. + // If a value is returned from `ownKeys` but its property descriptor is + // not enumerable, it will not be visible to iterator methods. + // Collectively, they allow code like the following: + // + // ``` + // // module.js re-exports dynamic CJS exports + // export * from './legacyModule.cjs' + // + // // from another JS file, reference the re-exported dynamic values + // import * as Namespace from './module.js' + // Object.keys(Namespace) + // ``` + ownKeys (target) { + const keys = Reflect.ownKeys(target); + for (const obj of reexportedObjects){ + for (const key of Reflect.ownKeys(obj)){ + if (key !== 'default' && !keys.includes(key)) keys.push(key); + } + } + return keys; + }, + getOwnPropertyDescriptor (target, prop) { + const own = Reflect.getOwnPropertyDescriptor(target, prop); + if (own || prop === 'default' || prop === '__esModule') return own; + const obj = reexportOwning(prop); + if (obj) { + // Synthetic keys don't exist on the target, so they MUST be + // reported as configurable. However the set/delete traps above will + // prevent them from actually being changed + return { + enumerable: true, + configurable: true, + get: ()=>Reflect.get(obj, prop) + }; + } + return undefined; + } + }); + } + return reexportedObjects; +} +/** + * Dynamically exports properties from an object + */ function dynamicExport(object, id) { + let module; + let exports; + if (id != null) { + module = getOverwrittenModule(this.c, id); + exports = module.exports; + } else { + module = this.m; + exports = this.e; + } + const reexportedObjects = ensureDynamicExports(module, exports); + if (typeof object === 'object' && object !== null) { + reexportedObjects.push(object); + } +} +contextPrototype.j = dynamicExport; +function exportValue(value, id) { + let module; + if (id != null) { + module = getOverwrittenModule(this.c, id); + } else { + module = this.m; + } + module.exports = value; +} +contextPrototype.v = exportValue; +function exportNamespace(namespace, id) { + let module; + if (id != null) { + module = getOverwrittenModule(this.c, id); + } else { + module = this.m; + } + module.exports = module.namespaceObject = namespace; +} +contextPrototype.n = exportNamespace; +function createGetter(obj, key) { + return ()=>obj[key]; +} +/** + * @returns prototype of the object + */ const getProto = Object.getPrototypeOf ? (obj)=>Object.getPrototypeOf(obj) : (obj)=>obj.__proto__; +/** Prototypes that are not expanded for exports */ const LEAF_PROTOTYPES = [ + null, + getProto({}), + getProto([]), + getProto(getProto) +]; +/** + * @param raw + * @param ns + * @param allowExportDefault + * * `false`: will have the raw module as default export + * * `true`: will have the default property as default export + */ function interopEsm(raw, ns, allowExportDefault) { + const bindings = []; + let defaultLocation = -1; + for(let current = raw; (typeof current === 'object' || typeof current === 'function') && !LEAF_PROTOTYPES.includes(current); current = getProto(current)){ + for (const key of Object.getOwnPropertyNames(current)){ + bindings.push(key, createGetter(raw, key)); + if (defaultLocation === -1 && key === 'default') { + defaultLocation = bindings.length - 1; + } + } + } + // this is not really correct + // we should set the `default` getter if the imported module is a `.cjs file` + if (!(allowExportDefault && defaultLocation >= 0)) { + // Replace the binding with one for the namespace itself in order to preserve iteration order. + if (defaultLocation >= 0) { + // Replace the getter with the value + bindings.splice(defaultLocation, 1, BindingTag_Value, raw); + } else { + bindings.push('default', BindingTag_Value, raw); + } + } + esm(ns, bindings); + return ns; +} +function createNS(raw) { + if (typeof raw === 'function') { + return function(...args) { + return raw.apply(this, args); + }; + } else { + return Object.create(null); + } +} +function esmImport(id) { + const module = getOrInstantiateModuleFromParent(id, this.m); + // any ES module has to have `module.namespaceObject` defined. + if (module.namespaceObject) return module.namespaceObject; + // only ESM can be an async module, so we don't need to worry about exports being a promise here. + const raw = module.exports; + return module.namespaceObject = interopEsm(raw, createNS(raw), raw && raw.__esModule); +} +contextPrototype.i = esmImport; +function asyncLoader(moduleId) { + const loader = this.r(moduleId); + return loader(esmImport.bind(this)); +} +contextPrototype.A = asyncLoader; +// Add a simple runtime require so that environments without one can still pass +// `typeof require` CommonJS checks so that exports are correctly registered. +const runtimeRequire = // @ts-ignore +typeof require === 'function' ? require : function require1() { + throw new Error('Unexpected use of runtime require'); +}; +contextPrototype.t = runtimeRequire; +function commonJsRequire(id) { + return getOrInstantiateModuleFromParent(id, this.m).exports; +} +contextPrototype.r = commonJsRequire; +/** + * Remove fragments and query parameters since they are never part of the context map keys + * + * This matches how we parse patterns at resolving time. Arguably we should only do this for + * strings passed to `import` but the resolve does it for `import` and `require` and so we do + * here as well. + */ function parseRequest(request) { + // Per the URI spec fragments can contain `?` characters, so we should trim it off first + // https://datatracker.ietf.org/doc/html/rfc3986#section-3.5 + const hashIndex = request.indexOf('#'); + if (hashIndex !== -1) { + request = request.substring(0, hashIndex); + } + const queryIndex = request.indexOf('?'); + if (queryIndex !== -1) { + request = request.substring(0, queryIndex); + } + return request; +} +/** + * `require.context` and require/import expression runtime. + */ function moduleContext(map) { + function moduleContext(id) { + id = parseRequest(id); + if (hasOwnProperty.call(map, id)) { + return map[id].module(); + } + const e = new Error(`Cannot find module '${id}'`); + e.code = 'MODULE_NOT_FOUND'; + throw e; + } + moduleContext.keys = ()=>{ + return Object.keys(map); + }; + moduleContext.resolve = (id)=>{ + id = parseRequest(id); + if (hasOwnProperty.call(map, id)) { + return map[id].id(); + } + const e = new Error(`Cannot find module '${id}'`); + e.code = 'MODULE_NOT_FOUND'; + throw e; + }; + moduleContext.import = async (id)=>{ + return await moduleContext(id); + }; + return moduleContext; +} +contextPrototype.f = moduleContext; +/** + * Returns the path of a chunk defined by its data. + */ function getChunkPath(chunkData) { + return typeof chunkData === 'string' ? chunkData : chunkData.path; +} +// Load the CompressedModuleFactories of a chunk into the `moduleFactories` Map. +// The flat format alternates one or more module IDs with their factory function. +// Strict factories can be prepended as a nested array. +function installCompressedModuleFactories(chunkModules, offset, moduleFactories, newModuleId) { + let i = offset; + const strictFactories = chunkModules[i]; + if (Array.isArray(strictFactories)) { + installCompressedModuleFactories(strictFactories, 0, moduleFactories, newModuleId); + i++; + } + while(i < chunkModules.length){ + let end = i + 1; + // Find our factory function + while(end < chunkModules.length && typeof chunkModules[end] !== 'function'){ + end++; + } + if (end === chunkModules.length) { + throw new Error('malformed chunk format, expected a factory function'); + } + // Install the factory for each module ID that doesn't already have one. + // When some IDs in this group already have a factory, reuse that existing + // group factory for the missing IDs to keep all IDs in the group consistent. + // Otherwise, install the factory from this chunk. + const moduleFactoryFn = chunkModules[end]; + let existingGroupFactory = undefined; + for(let j = i; j < end; j++){ + const id = chunkModules[j]; + const existingFactory = moduleFactories.get(id); + if (existingFactory) { + existingGroupFactory = existingFactory; + break; + } + } + const factoryToInstall = existingGroupFactory ?? moduleFactoryFn; + let didInstallFactory = false; + for(let j = i; j < end; j++){ + const id = chunkModules[j]; + if (!moduleFactories.has(id)) { + if (!didInstallFactory) { + if (factoryToInstall === moduleFactoryFn) { + applyModuleFactoryName(moduleFactoryFn); + } + didInstallFactory = true; + } + moduleFactories.set(id, factoryToInstall); + newModuleId?.(id); + } + } + i = end + 1; + } +} +/** + * A pseudo "fake" URL object to resolve to its relative path. + * + * When UrlRewriteBehavior is set to relative, calls to the `new URL()` will construct url without base using this + * runtime function to generate context-agnostic urls between different rendering context, i.e ssr / client to avoid + * hydration mismatch. + * + * This is based on webpack's existing implementation: + * https://github.com/webpack/webpack/blob/87660921808566ef3b8796f8df61bd79fc026108/lib/runtime/RelativeUrlRuntimeModule.js + */ const relativeURL = function relativeURL(inputUrl) { + const realUrl = new URL(inputUrl, 'x:/'); + const values = {}; + for(const key in realUrl)values[key] = realUrl[key]; + values.href = inputUrl; + values.pathname = inputUrl.replace(/[?#].*/, ''); + values.origin = values.protocol = ''; + values.toString = values.toJSON = (..._args)=>inputUrl; + for(const key in values)Object.defineProperty(this, key, { + enumerable: true, + configurable: true, + value: values[key] + }); +}; +relativeURL.prototype = URL.prototype; +contextPrototype.U = relativeURL; +/** + * Utility function to ensure all variants of an enum are handled. + */ function invariant(never, computeMessage) { + throw new Error(`Invariant: ${computeMessage(never)}`); +} +/** + * Constructs an error message for when a module factory is not available. + */ function factoryNotAvailableMessage(moduleId, sourceType, sourceData) { + let instantiationReason; + switch(sourceType){ + case 0: + instantiationReason = `as a runtime entry of chunk ${sourceData}`; + break; + case 1: + instantiationReason = `because it was required from module ${sourceData}`; + break; + case 2: + instantiationReason = 'because of an HMR update'; + break; + default: + invariant(sourceType, (sourceType)=>`Unknown source type: ${sourceType}`); + } + return `Module ${moduleId} was instantiated ${instantiationReason}, but the module factory is not available.`; +} +/** + * Returns a `file://` URL under a synthetic directory named after `root` + * (`ROOT` for the project root), for when the real filesystem path is unknown. + * The root name and path segments are percent-encoded so the result is always + * a valid file URI. + */ function placeholderFileUrl(modulePath, root) { + return `file:///${encodeURIComponent(root ?? 'ROOT')}/${modulePath.split('/').map(encodeURIComponent).join('/')}`; +} +/** + * A stub function to make `require` available but non-functional in ESM. + */ function requireStub(_moduleId) { + throw new Error('dynamic usage of require is not supported'); +} +contextPrototype.z = requireStub; +// Make `globalThis` available to the module in a way that cannot be shadowed by a local variable. +contextPrototype.g = globalThis; +function applyModuleFactoryName(factory) { + // Give the module factory a nice name to improve stack traces. + Object.defineProperty(factory, 'name', { + value: 'module evaluation' + }); +} +/// +/// A 'base' utilities to support runtime can have externals. +/// Currently this is for node.js / edge runtime both. +/// If a fn requires node.js specific behavior, it should be placed in `node-external-utils` instead. +async function externalImport(id) { + let raw; + try { + raw = await import(id); + } catch (err) { + // TODO(alexkirsz) This can happen when a client-side module tries to load + // an external module we don't provide a shim for (e.g. querystring, url). + // For now, we fail semi-silently, but in the future this should be a + // compilation error. + throw new Error(`Failed to load external module ${id}: ${err}`); + } + if (raw && raw.__esModule && raw.default && 'default' in raw.default) { + return interopEsm(raw.default, createNS(raw), true); + } + return raw; +} +contextPrototype.y = externalImport; +function externalRequire(id, thunk, esm = false) { + let raw; + try { + raw = thunk(); + } catch (err) { + // TODO(alexkirsz) This can happen when a client-side module tries to load + // an external module we don't provide a shim for (e.g. querystring, url). + // For now, we fail semi-silently, but in the future this should be a + // compilation error. + throw new Error(`Failed to load external module ${id}: ${err}`); + } + if (!esm || raw.__esModule) { + return raw; + } + return interopEsm(raw, createNS(raw), true); +} +externalRequire.resolve = (id, options)=>{ + return require.resolve(id, options); +}; +contextPrototype.x = externalRequire; +/* eslint-disable @typescript-eslint/no-unused-vars */ const path = require('path'); +const relativePathToRuntimeRoot = path.relative(RUNTIME_PUBLIC_PATH, '.'); +// Compute the relative path to the `distDir`. +const relativePathToDistRoot = path.join(relativePathToRuntimeRoot, RELATIVE_ROOT_PATH); +const RUNTIME_ROOT = path.resolve(__filename, relativePathToRuntimeRoot); +// Compute the absolute path to the root, by stripping distDir from the absolute path to this file. +const ABSOLUTE_ROOT = path.resolve(__filename, relativePathToDistRoot); +/** + * Returns an absolute path to the given module path. + * Module path should be relative, either path to a file or a directory. + * + * This fn allows to calculate an absolute path for some global static values, such as + * `__dirname` or `import.meta.url` that Turbopack will not embeds in compile time. + * See ImportMetaBinding::code_generation for the usage. + */ function resolveAbsolutePath(modulePath) { + if (modulePath) { + return path.join(ABSOLUTE_ROOT, modulePath); + } + return ABSOLUTE_ROOT; +} +Context.prototype.P = resolveAbsolutePath; +/** + * Returns an absolute `file://` URL for the given module path, which is + * relative to the project root or the named `root`. + * + * Uses `url.pathToFileURL` so that the resulting URL is a valid file URI on + * all platforms (forward slashes on Windows, drive letters handled + * correctly, path segments URL-encoded). + * + * The location of a named `root` isn't known at runtime (the output may have + * been moved away from the sources), so this returns a placeholder URL for it. + */ function resolveFileUrl(modulePath, root) { + if (root !== undefined) { + return placeholderFileUrl(modulePath, root); + } + return require('url').pathToFileURL(resolveAbsolutePath(modulePath)).href; +} +Context.prototype.F = resolveFileUrl; +/* eslint-disable @typescript-eslint/no-unused-vars */ /// +/// +/// +/// +/** + * Base Node.js runtime shared between production and development. + * Contains chunk loading, module caching, and other non-HMR functionality. + */ process.env.TURBOPACK = '1'; +const url = require('url'); +const moduleFactories = new Map(); +const moduleCache = new Map(); +/** + * Returns an absolute path to the given module's id. + */ function resolvePathFromModule(moduleId) { + const exported = this.r(moduleId); + const exportedPath = exported?.default ?? exported; + if (typeof exportedPath !== 'string') { + return exported; + } + const strippedAssetPrefix = exportedPath.slice(ASSET_PREFIX.length); + const resolved = path.resolve(RUNTIME_ROOT, strippedAssetPrefix); + return url.pathToFileURL(resolved).href; +} +/** + * Exports a URL value. No suffix is added in Node.js runtime. + */ function exportUrl(urlValue, id) { + exportValue.call(this, urlValue, id); +} +function loadRuntimeChunk(sourcePath, chunkData) { + if (typeof chunkData === 'string') { + loadRuntimeChunkPath(sourcePath, chunkData); + } else { + loadRuntimeChunkPath(sourcePath, chunkData.path); + } +} +const loadedChunks = new Set(); +const unsupportedLoadChunk = Promise.resolve(undefined); +const loadedChunk = Promise.resolve(undefined); +const chunkCache = new Map(); +function clearChunkCache() { + chunkCache.clear(); + loadedChunks.clear(); +} +function loadRuntimeChunkPath(sourcePath, chunkPath) { + if (!isJs(chunkPath)) { + // We only support loading JS chunks in Node.js. + // This branch can be hit when trying to load a CSS chunk. + return; + } + if (loadedChunks.has(chunkPath)) { + return; + } + try { + const resolved = path.resolve(RUNTIME_ROOT, chunkPath); + const chunkModules = require(resolved); + installCompressedModuleFactories(chunkModules, 0, moduleFactories); + loadedChunks.add(chunkPath); + } catch (cause) { + let errorMessage = `Failed to load chunk ${chunkPath}`; + if (sourcePath) { + errorMessage += ` from runtime for chunk ${sourcePath}`; + } + const error = new Error(errorMessage, { + cause + }); + error.name = 'ChunkLoadError'; + throw error; + } +} +function loadChunkAsync(chunkData) { + const chunkPath = typeof chunkData === 'string' ? chunkData : chunkData.path; + if (!isJs(chunkPath)) { + // We only support loading JS chunks in Node.js. + // This branch can be hit when trying to load a CSS chunk. + return unsupportedLoadChunk; + } + let entry = chunkCache.get(chunkPath); + if (entry === undefined) { + try { + // resolve to an absolute path to simplify `require` handling + const resolved = path.resolve(RUNTIME_ROOT, chunkPath); + // TODO: consider switching to `import()` to enable concurrent chunk loading and async file io + // However this is incompatible with hot reloading (since `import` doesn't use the require cache) + const chunkModules = require(resolved); + installCompressedModuleFactories(chunkModules, 0, moduleFactories); + entry = loadedChunk; + } catch (cause) { + const errorMessage = `Failed to load chunk ${chunkPath} from module ${this.m.id}`; + const error = new Error(errorMessage, { + cause + }); + error.name = 'ChunkLoadError'; + // Cache the failure promise, future requests will also get this same rejection + entry = Promise.reject(error); + } + chunkCache.set(chunkPath, entry); + } + // TODO: Return an instrumented Promise that React can use instead of relying on referential equality. + return entry; +} +contextPrototype.l = loadChunkAsync; +function loadChunkAsyncByUrl(chunkUrl) { + const path1 = url.fileURLToPath(new URL(chunkUrl, RUNTIME_ROOT)); + return loadChunkAsync.call(this, path1); +} +contextPrototype.L = loadChunkAsyncByUrl; +// Shared runtime primitive: the root that on-disk chunk paths are resolved +// against. Used by the bundled wasm helper (exposed as `__turbopack_runtime_root__`). +contextPrototype.w = RUNTIME_ROOT; +const regexJsUrl = /\.js(?:\?[^#]*)?(?:#.*)?$/; +/** + * Checks if a given path/URL ends with .js, optionally followed by ?query or #fragment. + */ function isJs(chunkUrlOrPath) { + return regexJsUrl.test(chunkUrlOrPath); +} +/* eslint-disable @typescript-eslint/no-unused-vars */ /// +/** + * Production Node.js runtime. + * Uses ModuleWithDirection and simple module instantiation without HMR support. + */ // moduleCache and moduleFactories are declared in runtime-base.ts +// this is read in runtime-utils.ts so it creates a module with direction for hmr +createModuleWithDirectionFlag = true; +const nodeContextPrototype = Context.prototype; +nodeContextPrototype.q = exportUrl; +nodeContextPrototype.M = moduleFactories; +// Cast moduleCache to ModuleWithDirection for production mode +nodeContextPrototype.c = moduleCache; +nodeContextPrototype.R = resolvePathFromModule; +nodeContextPrototype.C = clearChunkCache; +function instantiateModule(id, sourceType, sourceData) { + const moduleFactory = moduleFactories.get(id); + if (typeof moduleFactory !== 'function') { + // This can happen if modules incorrectly handle HMR disposes/updates, + // e.g. when they keep a `setTimeout` around which still executes old code + // and contains e.g. a `require("something")` call. + throw new Error(factoryNotAvailableMessage(id, sourceType, sourceData)); + } + const module1 = createModuleWithDirection(id); + const exports = module1.exports; + moduleCache.set(id, module1); + const context = new Context(module1, exports); + // NOTE(alexkirsz) This can fail when the module encounters a runtime error. + try { + moduleFactory(context, module1, exports); + } catch (error) { + module1.error = error; + throw error; + } + ; + module1.loaded = true; + if (module1.namespaceObject && module1.exports !== module1.namespaceObject) { + // in case of a circular dependency: cjs1 -> esm2 -> cjs1 + interopEsm(module1.exports, module1.namespaceObject); + } + return module1; +} +/** + * Retrieves a module from the cache, or instantiate it if it is not cached. + */ // @ts-ignore +function getOrInstantiateModuleFromParent(id, sourceModule) { + const module1 = moduleCache.get(id); + if (module1) { + if (module1.error) { + throw module1.error; + } + return module1; + } + return instantiateModule(id, SourceType.Parent, sourceModule.id); +} +/** + * Instantiates a runtime module. + */ function instantiateRuntimeModule(chunkPath, moduleId) { + return instantiateModule(moduleId, SourceType.Runtime, chunkPath); +} +/** + * Retrieves a module from the cache, or instantiate it as a runtime module if it is not cached. + */ // @ts-ignore TypeScript doesn't separate this module space from the browser runtime +function getOrInstantiateRuntimeModule(chunkPath, moduleId) { + const module1 = moduleCache.get(moduleId); + if (module1) { + if (module1.error) { + throw module1.error; + } + return module1; + } + return instantiateRuntimeModule(chunkPath, moduleId); +} +module.exports = (sourcePath)=>({ + m: (id)=>getOrInstantiateRuntimeModule(sourcePath, id), + c: (chunkData)=>loadRuntimeChunk(sourcePath, chunkData) + }); + + +//# sourceMappingURL=%5Bturbopack%5D_runtime.js.map \ No newline at end of file diff --git a/e-commerce/.next/server/chunks/ssr/[turbopack]_runtime.js.map b/e-commerce/.next/server/chunks/ssr/[turbopack]_runtime.js.map new file mode 100644 index 0000000000000000000000000000000000000000..c0376d9d0e93279dcd59688d55b28c3f543ca454 --- /dev/null +++ b/e-commerce/.next/server/chunks/ssr/[turbopack]_runtime.js.map @@ -0,0 +1,10 @@ +{ + "version": 3, + "sources": [], + "sections": [ + {"offset": {"line": 16, "column": 0}, "map": {"version":3,"sources":["turbopack:///[turbopack]/shared/runtime/runtime-utils.ts"],"sourcesContent":["/**\n * This file contains runtime types and functions that are shared between all\n * TurboPack ECMAScript runtimes.\n *\n * It will be prepended to the runtime code of each runtime.\n */\n\n/* eslint-disable @typescript-eslint/no-unused-vars */\n\n/// \n/// \n\ntype EsmNamespaceObject = Record\n\n/**\n * Describes why a module was instantiated.\n * Shared between browser and Node.js runtimes.\n */\nenum SourceType {\n /**\n * The module was instantiated because it was included in an evaluated chunk's\n * runtime.\n * SourceData is a ChunkPath.\n */\n Runtime = 0,\n /**\n * The module was instantiated because a parent module imported it.\n * SourceData is a ModuleId.\n */\n Parent = 1,\n /**\n * The module was instantiated because it was included in a chunk's hot module\n * update.\n * SourceData is an array of ModuleIds or undefined.\n */\n Update = 2,\n}\n\ntype SourceData = ChunkPath | ModuleId | ModuleId[] | undefined\n\n// @ts-ignore Defined in `dev-base.ts`\ndeclare function getOrInstantiateModuleFromParent(\n id: ModuleId,\n sourceModule: M\n): M\n\n/**\n * Flag indicating which module object type to create when a module is merged. Set to `true`\n * by each runtime that uses ModuleWithDirection (browser dev-base.ts, nodejs dev-base.ts,\n * nodejs build-base.ts). Browser production (build-base.ts) leaves it as `false` since it\n * uses plain Module objects.\n */\nlet createModuleWithDirectionFlag = false\n\nconst REEXPORTED_OBJECTS = new WeakMap()\n\n/**\n * Constructs the `__turbopack_context__` object for a module.\n */\nfunction Context(\n this: TurbopackBaseContext,\n module: Module,\n exports: Exports\n) {\n this.m = module\n // We need to store this here instead of accessing it from the module object to:\n // 1. Make it available to factories directly, since we rewrite `this` to\n // `__turbopack_context__.e` in CJS modules.\n // 2. Support async modules which rewrite `module.exports` to a promise, so we\n // can still access the original exports object from functions like\n // `esmExport`\n // Ideally we could find a new approach for async modules and drop this property altogether.\n this.e = exports\n}\nconst contextPrototype = Context.prototype as TurbopackBaseContext\n\ntype ModuleContextMap = Record\n\ninterface ModuleContextEntry {\n id: () => ModuleId\n module: () => any\n}\n\ninterface ModuleContext {\n // require call\n (moduleId: string): Exports | EsmNamespaceObject\n\n // async import call\n import(moduleId: string): Promise\n\n keys(): ModuleId[]\n\n resolve(moduleId: string): ModuleId\n}\n\ntype GetOrInstantiateModuleFromParent = (\n moduleId: M['id'],\n parentModule: M\n) => M\n\ndeclare function getOrInstantiateRuntimeModule(\n chunkPath: ChunkPath,\n moduleId: ModuleId\n): Module\n\nconst hasOwnProperty = Object.prototype.hasOwnProperty\nconst toStringTag = typeof Symbol !== 'undefined' && Symbol.toStringTag\n\nfunction defineProp(\n obj: any,\n name: PropertyKey,\n options: PropertyDescriptor & ThisType\n) {\n if (!hasOwnProperty.call(obj, name)) Object.defineProperty(obj, name, options)\n}\n\nfunction getOverwrittenModule(\n moduleCache: ModuleCache,\n id: ModuleId\n): Module {\n let module = moduleCache.get(id)\n if (module === undefined) {\n if (createModuleWithDirectionFlag) {\n // set in development modes for hmr support\n module = createModuleWithDirection(id)\n } else {\n module = createModuleObject(id)\n }\n moduleCache.set(id, module)\n }\n return module\n}\n\n/**\n * Creates the module object. Only done here to ensure all module objects have the same shape.\n */\nfunction createModuleObject(id: ModuleId): Module {\n return {\n exports: {},\n error: undefined,\n id,\n namespaceObject: undefined,\n }\n}\n\nfunction createModuleWithDirection(id: ModuleId): ModuleWithDirection {\n return {\n exports: {},\n error: undefined,\n id,\n namespaceObject: undefined,\n parents: [],\n children: [],\n }\n}\n\ntype BindingTag = 0\nconst BindingTag_Value = 0 as BindingTag\n\n// an arbitrary sequence of bindings as\n// - a prop name\n// - BindingTag_Value, a value to be bound directly, or\n// - 1 or 2 functions to bind as getters and sdetters\ntype EsmBindings = Array<\n string | BindingTag | (() => unknown) | ((v: unknown) => void) | unknown\n>\n\n/**\n * Terminates a module's group of entries in an {@link EsmReexports} list.\n */\nconst REEXPORT_GROUP_END = 0\n\n/**\n * Adds the getters to the exports object.\n */\nfunction esm(exports: Exports, bindings: EsmBindings, dynamic?: boolean) {\n defineProp(exports, '__esModule', { value: true })\n if (toStringTag) defineProp(exports, toStringTag, { value: 'Module' })\n let i = 0\n while (i < bindings.length) {\n const propName = bindings[i++] as string\n const tagOrFunction = bindings[i++]\n if (typeof tagOrFunction === 'number') {\n if (tagOrFunction === BindingTag_Value) {\n defineProp(exports, propName, {\n value: bindings[i++],\n enumerable: true,\n writable: false,\n })\n } else {\n throw new Error(`unexpected tag: ${tagOrFunction}`)\n }\n } else {\n const getterFn = tagOrFunction as () => unknown\n if (typeof bindings[i] === 'function') {\n const setterFn = bindings[i++] as (v: unknown) => void\n defineProp(exports, propName, {\n get: getterFn,\n set: setterFn,\n enumerable: true,\n })\n } else {\n defineProp(exports, propName, {\n get: getterFn,\n enumerable: true,\n })\n }\n }\n }\n // The properties defined above are already non-configurable and\n // non-writable, so the namespace's existing exports are effectively\n // immutable. Sealing additionally makes the object non-extensible, matching\n // real ESM-namespace semantics. Modules with dynamic re-exports\n // (`export *` from a CommonJS module) must stay extensible so the dynamic\n // export proxy can surface keys discovered at runtime, so skip the seal for\n // them.\n if (!dynamic) Object.seal(exports)\n}\n\n/**\n * Makes the module an ESM with exports\n */\nfunction esmExport(\n this: TurbopackBaseContext,\n bindings: EsmBindings,\n id: ModuleId | undefined,\n dynamic?: boolean\n) {\n let module: Module\n let exports: Module['exports']\n if (id != null) {\n module = getOverwrittenModule(this.c, id)\n exports = module.exports\n } else {\n module = this.m\n exports = this.e\n }\n module.namespaceObject = exports\n esm(exports, bindings, dynamic)\n}\ncontextPrototype.s = esmExport\n\n/**\n * Registers re-exports that all forward to properties of other modules.\n *\n * This is a compact spelling of the pattern\n *\n * ```js\n * var ns = context.i(moduleId)\n * context.s([exportName, () => ns[importedName], ...])\n * ```\n *\n * The list is a flat sequence of groups. Each group starts with the source the exports come from,\n * followed by that group's entries, and is terminated by the `0` sentinel (or the end of the list).\n *\n * The group head is either a **module id**, which is instantiated here:\n *\n * ```js\n * context.S([\n * 76061, 'default', 'f', 'named', 'A', 0,\n * 29842, 'otherModule', 'f',\n * ])\n * ```\n *\n * or the **namespace value** of a module that has already been imported, which is used directly:\n *\n * ```js\n * var ns1 = context.i(76061)\n * context.S([ns1, 'default', 'f', 'named', 'A'])\n * ```\n *\n * The producer picks the namespace form when it has generated the import anyway -- because some\n * later import must not be reordered past it -- so nothing is instantiated twice. The two are told\n * apart by type: a module id is always a string or number. A CommonJS function export produces a\n * callable namespace value, so namespace heads can be functions as well as objects.\n *\n * Entries are `exportName, importedName` pairs, except when a group holds exactly one string. That\n * string is then a comma-joined list of the same pairs, which saves the repeated quoting:\n *\n * ```js\n * context.S([\n * 76061, 'default,f,named,A', 0,\n * 29842, 'otherModule,f',\n * ])\n * ```\n *\n * The producer picks that spelling independently for each group whose names contain no commas,\n * since that group's names are recovered by splitting on them.\n *\n * Groups whose head is a module id are instantiated in list order, at the point where the call\n * appears, so the producer must not merge such a group across an import of another module. The\n * destination reuses a source data value or getter descriptor when one exists, falling back to a\n * wrapper getter for dynamic/proxy/inherited properties.\n *\n * `id` names the module the exports belong to when this module was merged into a scope-hoisting\n * group, exactly as it does for {@link EsmExport}.\n *\n * Only the source descriptor's payload (value or getter) is reused. {@link esm} still defines a\n * fresh enumerable, non-configurable destination property, and no source setter is ever forwarded.\n */\nfunction esmReexport(\n this: TurbopackBaseContext,\n list: EsmReexports,\n id?: ModuleId\n): void {\n const bindings: EsmBindings = []\n let i = 0\n while (i < list.length) {\n const head = list[i++]\n const start = i\n while (i < list.length && list[i] !== REEXPORT_GROUP_END) i++\n const end = i\n // Skip the sentinel, if this group was terminated by one rather than by the end of the list.\n i++\n\n // Module ids are always strings or numbers. Other values are already-imported namespaces;\n // notably, interop with a CommonJS function export produces a callable namespace function.\n // `esmImport` may return a promise for an async module, but re-exports of async modules keep\n // going through `context.s`, so the producer never routes them here and this stays synchronous.\n const namespace = (\n typeof head === 'string' || typeof head === 'number'\n ? esmImport.call(this, head)\n : head\n ) as Record\n if (end - start === 1) {\n const pairs = (list[start] as string).split(',')\n for (let j = 0; j < pairs.length; j += 2) {\n appendReexportBinding(bindings, pairs[j], namespace, pairs[j + 1])\n }\n } else {\n for (let j = start; j < end; j += 2) {\n appendReexportBinding(\n bindings,\n list[j] as string,\n namespace,\n list[j + 1] as string\n )\n }\n }\n }\n esmExport.call(this, bindings, id)\n}\ncontextPrototype.S = esmReexport\n\nfunction appendReexportBinding(\n bindings: EsmBindings,\n exportedName: string,\n namespace: Record,\n importedName: string\n): void {\n const descriptor = Reflect.getOwnPropertyDescriptor(namespace, importedName)\n if (descriptor) {\n if ('value' in descriptor) {\n // Code generation only routes immutable imported bindings through this helper, so a data\n // descriptor is a constant export and can be captured once.\n bindings.push(exportedName, BindingTag_Value, descriptor.value)\n return\n }\n if (descriptor.get) {\n // Accessors remain live by reusing the source getter. `esmReexport` is only called by\n // generated code: every group head is either produced by\n // `this.i` or is the namespace variable from a generated `this.i` call. Every getter on such\n // a namespace is receiver-independent: ESM bindings are compiler-generated arrow functions,\n // and the CommonJS/dynamic-namespace paths create arrows in `createGetter` and\n // `getOwnPropertyDescriptor`. The destination can therefore reuse the exact function instead\n // of allocating another wrapper getter.\n bindings.push(exportedName, descriptor.get)\n return\n }\n }\n\n // Dynamic/proxy/inherited CommonJS edge cases may not expose a usable own descriptor.\n bindings.push(exportedName, () => namespace[importedName])\n}\n\ntype ReexportedObjects = Record[]\nfunction ensureDynamicExports(\n module: Module,\n exports: Exports\n): ReexportedObjects {\n let reexportedObjects: ReexportedObjects | undefined =\n REEXPORTED_OBJECTS.get(module)\n\n if (!reexportedObjects) {\n REEXPORTED_OBJECTS.set(module, (reexportedObjects = []))\n // Returns the re-exported object that provides `prop` as an own property,\n // or `undefined` if none does. The traps share this logic so they always\n // agree on which keys are synthesized from `reexportedObjects`. `default`\n // is never re-exported by `export *`, so it is never synthesized.\n const reexportOwning = (prop: PropertyKey) => {\n if (prop !== 'default') {\n for (const obj of reexportedObjects!) {\n if (hasOwnProperty.call(obj, prop)) return obj\n }\n }\n return undefined\n }\n // Modules with dynamic re-exports are not sealed by `esm()`, so the\n // target beneath the namespace stays extensible. That is what lets the\n // `ownKeys` and `getOwnPropertyDescriptor` traps legally report keys that\n // exist on `reexportedObjects` but not on the target itself.\n module.exports = module.namespaceObject = new Proxy(exports, {\n get(target, prop) {\n if (\n hasOwnProperty.call(target, prop) ||\n prop === 'default' ||\n prop === '__esModule'\n ) {\n return Reflect.get(target, prop)\n }\n const obj = reexportOwning(prop)\n return obj && Reflect.get(obj, prop)\n },\n // The namespace is read-only, like a real esm namespace object. The\n // re-exported modules can still mutate their own exports (exposed live\n // via `get`), but mutating the namespace itself is rejected. Refusing\n // here, rather than forwarding to the extensible target, also prevents an\n // assignment/definition from shadowing a dynamic re-export. It also\n // prevents delete from removing a static export.\n set() {\n return false\n },\n defineProperty() {\n return false\n },\n deleteProperty() {\n return false\n },\n // The `has` trap ensures that `'exportName' in starImports` will reflect\n // the truth of whether a key is exported.\n has(target, prop) {\n if (Reflect.has(target, prop)) return true\n if (prop === 'default' || prop === '__esModule') return false\n return reexportOwning(prop) !== undefined\n },\n // ownKeys and getOwnPropertyDescriptor together make the keys enumerable.\n // If a value is returned from `ownKeys` but its property descriptor is\n // not enumerable, it will not be visible to iterator methods.\n // Collectively, they allow code like the following:\n //\n // ```\n // // module.js re-exports dynamic CJS exports\n // export * from './legacyModule.cjs'\n //\n // // from another JS file, reference the re-exported dynamic values\n // import * as Namespace from './module.js'\n // Object.keys(Namespace)\n // ```\n ownKeys(target) {\n const keys = Reflect.ownKeys(target)\n for (const obj of reexportedObjects!) {\n for (const key of Reflect.ownKeys(obj)) {\n if (key !== 'default' && !keys.includes(key)) keys.push(key)\n }\n }\n return keys\n },\n getOwnPropertyDescriptor(target, prop) {\n const own = Reflect.getOwnPropertyDescriptor(target, prop)\n if (own || prop === 'default' || prop === '__esModule') return own\n const obj = reexportOwning(prop)\n if (obj) {\n // Synthetic keys don't exist on the target, so they MUST be\n // reported as configurable. However the set/delete traps above will\n // prevent them from actually being changed\n return {\n enumerable: true,\n configurable: true,\n get: () => Reflect.get(obj, prop),\n }\n }\n return undefined\n },\n })\n }\n return reexportedObjects\n}\n\n/**\n * Dynamically exports properties from an object\n */\nfunction dynamicExport(\n this: TurbopackBaseContext,\n object: Record,\n id: ModuleId | undefined\n) {\n let module: Module\n let exports: Exports\n if (id != null) {\n module = getOverwrittenModule(this.c, id)\n exports = module.exports\n } else {\n module = this.m\n exports = this.e\n }\n const reexportedObjects = ensureDynamicExports(module, exports)\n\n if (typeof object === 'object' && object !== null) {\n reexportedObjects.push(object)\n }\n}\ncontextPrototype.j = dynamicExport\n\nfunction exportValue(\n this: TurbopackBaseContext,\n value: any,\n id: ModuleId | undefined\n) {\n let module: Module\n if (id != null) {\n module = getOverwrittenModule(this.c, id)\n } else {\n module = this.m\n }\n module.exports = value\n}\ncontextPrototype.v = exportValue\n\nfunction exportNamespace(\n this: TurbopackBaseContext,\n namespace: any,\n id: ModuleId | undefined\n) {\n let module: Module\n if (id != null) {\n module = getOverwrittenModule(this.c, id)\n } else {\n module = this.m\n }\n module.exports = module.namespaceObject = namespace\n}\ncontextPrototype.n = exportNamespace\n\nfunction createGetter(obj: Record, key: string | symbol) {\n return () => obj[key]\n}\n\n/**\n * @returns prototype of the object\n */\nconst getProto: (obj: any) => any = Object.getPrototypeOf\n ? (obj) => Object.getPrototypeOf(obj)\n : (obj) => obj.__proto__\n\n/** Prototypes that are not expanded for exports */\nconst LEAF_PROTOTYPES = [null, getProto({}), getProto([]), getProto(getProto)]\n\n/**\n * @param raw\n * @param ns\n * @param allowExportDefault\n * * `false`: will have the raw module as default export\n * * `true`: will have the default property as default export\n */\nfunction interopEsm(\n raw: Exports,\n ns: EsmNamespaceObject,\n allowExportDefault?: boolean\n) {\n const bindings: EsmBindings = []\n let defaultLocation = -1\n for (\n let current = raw;\n (typeof current === 'object' || typeof current === 'function') &&\n !LEAF_PROTOTYPES.includes(current);\n current = getProto(current)\n ) {\n for (const key of Object.getOwnPropertyNames(current)) {\n bindings.push(key, createGetter(raw, key))\n if (defaultLocation === -1 && key === 'default') {\n defaultLocation = bindings.length - 1\n }\n }\n }\n\n // this is not really correct\n // we should set the `default` getter if the imported module is a `.cjs file`\n if (!(allowExportDefault && defaultLocation >= 0)) {\n // Replace the binding with one for the namespace itself in order to preserve iteration order.\n if (defaultLocation >= 0) {\n // Replace the getter with the value\n bindings.splice(defaultLocation, 1, BindingTag_Value, raw)\n } else {\n bindings.push('default', BindingTag_Value, raw)\n }\n }\n\n esm(ns, bindings)\n return ns\n}\n\nfunction createNS(raw: Module['exports']): EsmNamespaceObject {\n if (typeof raw === 'function') {\n return function (this: any, ...args: any[]) {\n return raw.apply(this, args)\n }\n } else {\n return Object.create(null)\n }\n}\n\nfunction esmImport(\n this: TurbopackBaseContext,\n id: ModuleId\n): Exclude {\n const module = getOrInstantiateModuleFromParent(id, this.m)\n\n // any ES module has to have `module.namespaceObject` defined.\n if (module.namespaceObject) return module.namespaceObject\n\n // only ESM can be an async module, so we don't need to worry about exports being a promise here.\n const raw = module.exports\n return (module.namespaceObject = interopEsm(\n raw,\n createNS(raw),\n raw && (raw as any).__esModule\n ))\n}\ncontextPrototype.i = esmImport\n\nfunction asyncLoader(\n this: TurbopackBaseContext,\n moduleId: ModuleId\n): Promise {\n const loader = this.r(moduleId) as (\n importFunction: EsmImport\n ) => Promise\n return loader(esmImport.bind(this))\n}\ncontextPrototype.A = asyncLoader\n\n// Add a simple runtime require so that environments without one can still pass\n// `typeof require` CommonJS checks so that exports are correctly registered.\nconst runtimeRequire =\n // @ts-ignore\n typeof require === 'function'\n ? // @ts-ignore\n require\n : function require() {\n throw new Error('Unexpected use of runtime require')\n }\ncontextPrototype.t = runtimeRequire\n\nfunction commonJsRequire(\n this: TurbopackBaseContext,\n id: ModuleId\n): Exports {\n return getOrInstantiateModuleFromParent(id, this.m).exports\n}\ncontextPrototype.r = commonJsRequire\n\n/**\n * Remove fragments and query parameters since they are never part of the context map keys\n *\n * This matches how we parse patterns at resolving time. Arguably we should only do this for\n * strings passed to `import` but the resolve does it for `import` and `require` and so we do\n * here as well.\n */\nfunction parseRequest(request: string): string {\n // Per the URI spec fragments can contain `?` characters, so we should trim it off first\n // https://datatracker.ietf.org/doc/html/rfc3986#section-3.5\n const hashIndex = request.indexOf('#')\n if (hashIndex !== -1) {\n request = request.substring(0, hashIndex)\n }\n\n const queryIndex = request.indexOf('?')\n if (queryIndex !== -1) {\n request = request.substring(0, queryIndex)\n }\n\n return request\n}\n/**\n * `require.context` and require/import expression runtime.\n */\nfunction moduleContext(map: ModuleContextMap): ModuleContext {\n function moduleContext(id: string): Exports {\n id = parseRequest(id)\n if (hasOwnProperty.call(map, id)) {\n return map[id].module()\n }\n\n const e = new Error(`Cannot find module '${id}'`)\n ;(e as any).code = 'MODULE_NOT_FOUND'\n throw e\n }\n\n moduleContext.keys = (): string[] => {\n return Object.keys(map)\n }\n\n moduleContext.resolve = (id: string): ModuleId => {\n id = parseRequest(id)\n if (hasOwnProperty.call(map, id)) {\n return map[id].id()\n }\n\n const e = new Error(`Cannot find module '${id}'`)\n ;(e as any).code = 'MODULE_NOT_FOUND'\n throw e\n }\n\n moduleContext.import = async (id: string) => {\n return await (moduleContext(id) as Promise)\n }\n\n return moduleContext\n}\ncontextPrototype.f = moduleContext\n\n/**\n * Returns the path of a chunk defined by its data.\n */\nfunction getChunkPath(chunkData: ChunkData): ChunkPath {\n return typeof chunkData === 'string' ? chunkData : chunkData.path\n}\n\n// Load the CompressedModuleFactories of a chunk into the `moduleFactories` Map.\n// The flat format alternates one or more module IDs with their factory function.\n// Strict factories can be prepended as a nested array.\nfunction installCompressedModuleFactories(\n chunkModules: CompressedModuleFactories,\n offset: number,\n moduleFactories: ModuleFactories,\n newModuleId?: (id: ModuleId) => void\n) {\n let i = offset\n const strictFactories = chunkModules[i]\n if (Array.isArray(strictFactories)) {\n installCompressedModuleFactories(\n strictFactories,\n 0,\n moduleFactories,\n newModuleId\n )\n i++\n }\n while (i < chunkModules.length) {\n let end = i + 1\n // Find our factory function\n while (\n end < chunkModules.length &&\n typeof chunkModules[end] !== 'function'\n ) {\n end++\n }\n if (end === chunkModules.length) {\n throw new Error('malformed chunk format, expected a factory function')\n }\n\n // Install the factory for each module ID that doesn't already have one.\n // When some IDs in this group already have a factory, reuse that existing\n // group factory for the missing IDs to keep all IDs in the group consistent.\n // Otherwise, install the factory from this chunk.\n const moduleFactoryFn = chunkModules[end] as Function\n let existingGroupFactory: Function | undefined = undefined\n for (let j = i; j < end; j++) {\n const id = chunkModules[j] as ModuleId\n const existingFactory = moduleFactories.get(id)\n if (existingFactory) {\n existingGroupFactory = existingFactory\n break\n }\n }\n const factoryToInstall = existingGroupFactory ?? moduleFactoryFn\n\n let didInstallFactory = false\n for (let j = i; j < end; j++) {\n const id = chunkModules[j] as ModuleId\n if (!moduleFactories.has(id)) {\n if (!didInstallFactory) {\n if (factoryToInstall === moduleFactoryFn) {\n applyModuleFactoryName(moduleFactoryFn)\n }\n didInstallFactory = true\n }\n moduleFactories.set(id, factoryToInstall)\n newModuleId?.(id)\n }\n }\n i = end + 1\n }\n}\n\n/**\n * A pseudo \"fake\" URL object to resolve to its relative path.\n *\n * When UrlRewriteBehavior is set to relative, calls to the `new URL()` will construct url without base using this\n * runtime function to generate context-agnostic urls between different rendering context, i.e ssr / client to avoid\n * hydration mismatch.\n *\n * This is based on webpack's existing implementation:\n * https://github.com/webpack/webpack/blob/87660921808566ef3b8796f8df61bd79fc026108/lib/runtime/RelativeUrlRuntimeModule.js\n */\nconst relativeURL = function relativeURL(this: any, inputUrl: string) {\n const realUrl = new URL(inputUrl, 'x:/')\n const values: Record = {}\n for (const key in realUrl) values[key] = (realUrl as any)[key]\n values.href = inputUrl\n values.pathname = inputUrl.replace(/[?#].*/, '')\n values.origin = values.protocol = ''\n values.toString = values.toJSON = (..._args: Array) => inputUrl\n for (const key in values)\n Object.defineProperty(this, key, {\n enumerable: true,\n configurable: true,\n value: values[key],\n })\n}\nrelativeURL.prototype = URL.prototype\ncontextPrototype.U = relativeURL\n\n/**\n * Utility function to ensure all variants of an enum are handled.\n */\nfunction invariant(never: never, computeMessage: (arg: any) => string): never {\n throw new Error(`Invariant: ${computeMessage(never)}`)\n}\n\n/**\n * Constructs an error message for when a module factory is not available.\n */\nfunction factoryNotAvailableMessage(\n moduleId: ModuleId,\n sourceType: SourceType,\n sourceData: SourceData\n): string {\n let instantiationReason: string\n switch (sourceType) {\n case SourceType.Runtime:\n instantiationReason = `as a runtime entry of chunk ${sourceData}`\n break\n case SourceType.Parent:\n instantiationReason = `because it was required from module ${sourceData}`\n break\n case SourceType.Update:\n instantiationReason = 'because of an HMR update'\n break\n default:\n invariant(\n sourceType,\n (sourceType) => `Unknown source type: ${sourceType}`\n )\n }\n return `Module ${moduleId} was instantiated ${instantiationReason}, but the module factory is not available.`\n}\n\n/**\n * Returns a `file://` URL under a synthetic directory named after `root`\n * (`ROOT` for the project root), for when the real filesystem path is unknown.\n * The root name and path segments are percent-encoded so the result is always\n * a valid file URI.\n */\nfunction placeholderFileUrl(modulePath: string, root?: string): string {\n return `file:///${encodeURIComponent(root ?? 'ROOT')}/${modulePath\n .split('/')\n .map(encodeURIComponent)\n .join('/')}`\n}\n\n/**\n * A stub function to make `require` available but non-functional in ESM.\n */\nfunction requireStub(_moduleId: ModuleId): never {\n throw new Error('dynamic usage of require is not supported')\n}\ncontextPrototype.z = requireStub\n\n// Make `globalThis` available to the module in a way that cannot be shadowed by a local variable.\ncontextPrototype.g = globalThis\n\ntype ContextConstructor = {\n new (module: Module, exports: Exports): TurbopackBaseContext\n}\n\nfunction applyModuleFactoryName(factory: Function) {\n // Give the module factory a nice name to improve stack traces.\n Object.defineProperty(factory, 'name', {\n value: 'module evaluation',\n })\n}\n"],"names":["SourceType","createModuleWithDirectionFlag","REEXPORTED_OBJECTS","WeakMap","Context","module","exports","m","e","contextPrototype","prototype","hasOwnProperty","Object","toStringTag","Symbol","defineProp","obj","name","options","call","defineProperty","getOverwrittenModule","moduleCache","id","get","undefined","createModuleWithDirection","createModuleObject","set","error","namespaceObject","parents","children","BindingTag_Value","REEXPORT_GROUP_END","esm","bindings","dynamic","value","i","length","propName","tagOrFunction","enumerable","writable","Error","getterFn","setterFn","seal","esmExport","c","s","esmReexport","list","head","start","end","namespace","esmImport","pairs","split","j","appendReexportBinding","S","exportedName","importedName","descriptor","Reflect","getOwnPropertyDescriptor","push","ensureDynamicExports","reexportedObjects","reexportOwning","prop","Proxy","target","deleteProperty","has","ownKeys","keys","key","includes","own","configurable","dynamicExport","object","exportValue","v","exportNamespace","n","createGetter","getProto","getPrototypeOf","__proto__","LEAF_PROTOTYPES","interopEsm","raw","ns","allowExportDefault","defaultLocation","current","getOwnPropertyNames","splice","createNS","args","apply","create","getOrInstantiateModuleFromParent","__esModule","asyncLoader","moduleId","loader","r","bind","A","runtimeRequire","require","require1","t","commonJsRequire","parseRequest","request","hashIndex","indexOf","substring","queryIndex","moduleContext","map","code","resolve","import","f","getChunkPath","chunkData","path","installCompressedModuleFactories","chunkModules","offset","moduleFactories","newModuleId","strictFactories","Array","isArray","moduleFactoryFn","existingGroupFactory","existingFactory","factoryToInstall","didInstallFactory","applyModuleFactoryName","relativeURL","inputUrl","realUrl","URL","values","href","pathname","replace","origin","protocol","toString","toJSON","_args","U","invariant","never","computeMessage","factoryNotAvailableMessage","sourceType","sourceData","instantiationReason","placeholderFileUrl","modulePath","root","encodeURIComponent","join","requireStub","_moduleId","z","g","globalThis","factory"],"mappings":"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","ignoreList":[0]}}, + {"offset": {"line": 664, "column": 0}, "map": {"version":3,"sources":["turbopack:///[turbopack]/shared-node/base-externals-utils.ts"],"sourcesContent":["/// \n\n/// A 'base' utilities to support runtime can have externals.\n/// Currently this is for node.js / edge runtime both.\n/// If a fn requires node.js specific behavior, it should be placed in `node-external-utils` instead.\n\nasync function externalImport(id: DependencySpecifier) {\n let raw\n try {\n raw = await import(id)\n } catch (err) {\n // TODO(alexkirsz) This can happen when a client-side module tries to load\n // an external module we don't provide a shim for (e.g. querystring, url).\n // For now, we fail semi-silently, but in the future this should be a\n // compilation error.\n throw new Error(`Failed to load external module ${id}: ${err}`)\n }\n\n if (raw && raw.__esModule && raw.default && 'default' in raw.default) {\n return interopEsm(raw.default, createNS(raw), true)\n }\n\n return raw\n}\ncontextPrototype.y = externalImport\n\nfunction externalRequire(\n id: ModuleId,\n thunk: () => any,\n esm: boolean = false\n): Exports | EsmNamespaceObject {\n let raw\n try {\n raw = thunk()\n } catch (err) {\n // TODO(alexkirsz) This can happen when a client-side module tries to load\n // an external module we don't provide a shim for (e.g. querystring, url).\n // For now, we fail semi-silently, but in the future this should be a\n // compilation error.\n throw new Error(`Failed to load external module ${id}: ${err}`)\n }\n\n if (!esm || raw.__esModule) {\n return raw\n }\n\n return interopEsm(raw, createNS(raw), true)\n}\n\nexternalRequire.resolve = (\n id: string,\n options?: {\n paths?: string[]\n }\n) => {\n return require.resolve(id, options)\n}\ncontextPrototype.x = externalRequire\n"],"names":["externalImport","id","raw","err","Error","__esModule","default","interopEsm","createNS","contextPrototype","y","externalRequire","thunk","esm","resolve","options","require","x"],"mappings":"AAAA,2DAA2D;AAE3D,6DAA6D;AAC7D,sDAAsD;AACtD,qGAAqG;AAErG,eAAeA,eAAeC,EAAuB;IACnD,IAAIC;IACJ,IAAI;QACFA,MAAM,MAAM,MAAM,CAACD;IACrB,EAAE,OAAOE,KAAK;QACZ,0EAA0E;QAC1E,0EAA0E;QAC1E,qEAAqE;QACrE,qBAAqB;QACrB,MAAM,IAAIC,MAAM,CAAC,+BAA+B,EAAEH,GAAG,EAAE,EAAEE,KAAK;IAChE;IAEA,IAAID,OAAOA,IAAIG,UAAU,IAAIH,IAAII,OAAO,IAAI,aAAaJ,IAAII,OAAO,EAAE;QACpE,OAAOC,WAAWL,IAAII,OAAO,EAAEE,SAASN,MAAM;IAChD;IAEA,OAAOA;AACT;AACAO,iBAAiBC,CAAC,GAAGV;AAErB,SAASW,gBACPV,EAAY,EACZW,KAAgB,EAChBC,MAAe,KAAK;IAEpB,IAAIX;IACJ,IAAI;QACFA,MAAMU;IACR,EAAE,OAAOT,KAAK;QACZ,0EAA0E;QAC1E,0EAA0E;QAC1E,qEAAqE;QACrE,qBAAqB;QACrB,MAAM,IAAIC,MAAM,CAAC,+BAA+B,EAAEH,GAAG,EAAE,EAAEE,KAAK;IAChE;IAEA,IAAI,CAACU,OAAOX,IAAIG,UAAU,EAAE;QAC1B,OAAOH;IACT;IAEA,OAAOK,WAAWL,KAAKM,SAASN,MAAM;AACxC;AAEAS,gBAAgBG,OAAO,GAAG,CACxBb,IACAc;IAIA,OAAOC,QAAQF,OAAO,CAACb,IAAIc;AAC7B;AACAN,iBAAiBQ,CAAC,GAAGN","ignoreList":[0]}}, + {"offset": {"line": 705, "column": 0}, "map": {"version":3,"sources":["turbopack:///[turbopack]/shared-node/node-externals-utils.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-vars */\n\ndeclare var RUNTIME_PUBLIC_PATH: string\ndeclare var RELATIVE_ROOT_PATH: string\ndeclare var ASSET_PREFIX: string\n\nconst path = require('path')\n\nconst relativePathToRuntimeRoot = path.relative(RUNTIME_PUBLIC_PATH, '.')\n// Compute the relative path to the `distDir`.\nconst relativePathToDistRoot = path.join(\n relativePathToRuntimeRoot,\n RELATIVE_ROOT_PATH\n)\nconst RUNTIME_ROOT = path.resolve(__filename, relativePathToRuntimeRoot)\n// Compute the absolute path to the root, by stripping distDir from the absolute path to this file.\nconst ABSOLUTE_ROOT = path.resolve(__filename, relativePathToDistRoot)\n\n/**\n * Returns an absolute path to the given module path.\n * Module path should be relative, either path to a file or a directory.\n *\n * This fn allows to calculate an absolute path for some global static values, such as\n * `__dirname` or `import.meta.url` that Turbopack will not embeds in compile time.\n * See ImportMetaBinding::code_generation for the usage.\n */\nfunction resolveAbsolutePath(modulePath?: string): string {\n if (modulePath) {\n return path.join(ABSOLUTE_ROOT, modulePath)\n }\n return ABSOLUTE_ROOT\n}\nContext.prototype.P = resolveAbsolutePath\n\n/**\n * Returns an absolute `file://` URL for the given module path, which is\n * relative to the project root or the named `root`.\n *\n * Uses `url.pathToFileURL` so that the resulting URL is a valid file URI on\n * all platforms (forward slashes on Windows, drive letters handled\n * correctly, path segments URL-encoded).\n *\n * The location of a named `root` isn't known at runtime (the output may have\n * been moved away from the sources), so this returns a placeholder URL for it.\n */\nfunction resolveFileUrl(modulePath: string, root?: string): string {\n if (root !== undefined) {\n return placeholderFileUrl(modulePath, root)\n }\n return require('url').pathToFileURL(resolveAbsolutePath(modulePath)).href\n}\nContext.prototype.F = resolveFileUrl\n"],"names":["path","require","relativePathToRuntimeRoot","relative","RUNTIME_PUBLIC_PATH","relativePathToDistRoot","join","RELATIVE_ROOT_PATH","RUNTIME_ROOT","resolve","__filename","ABSOLUTE_ROOT","resolveAbsolutePath","modulePath","Context","prototype","P","resolveFileUrl","root","undefined","placeholderFileUrl","pathToFileURL","href","F"],"mappings":"AAAA,oDAAoD,GAMpD,MAAMA,OAAOC,QAAQ;AAErB,MAAMC,4BAA4BF,KAAKG,QAAQ,CAACC,qBAAqB;AACrE,8CAA8C;AAC9C,MAAMC,yBAAyBL,KAAKM,IAAI,CACtCJ,2BACAK;AAEF,MAAMC,eAAeR,KAAKS,OAAO,CAACC,YAAYR;AAC9C,mGAAmG;AACnG,MAAMS,gBAAgBX,KAAKS,OAAO,CAACC,YAAYL;AAE/C;;;;;;;CAOC,GACD,SAASO,oBAAoBC,UAAmB;IAC9C,IAAIA,YAAY;QACd,OAAOb,KAAKM,IAAI,CAACK,eAAeE;IAClC;IACA,OAAOF;AACT;AACAG,QAAQC,SAAS,CAACC,CAAC,GAAGJ;AAEtB;;;;;;;;;;CAUC,GACD,SAASK,eAAeJ,UAAkB,EAAEK,IAAa;IACvD,IAAIA,SAASC,WAAW;QACtB,OAAOC,mBAAmBP,YAAYK;IACxC;IACA,OAAOjB,QAAQ,OAAOoB,aAAa,CAACT,oBAAoBC,aAAaS,IAAI;AAC3E;AACAR,QAAQC,SAAS,CAACQ,CAAC,GAAGN","ignoreList":[0]}}, + {"offset": {"line": 743, "column": 0}, "map": {"version":3,"sources":["turbopack:///[turbopack]/nodejs/runtime/runtime-base.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-vars */\n\n/// \n/// \n/// \n/// \n\n/**\n * Base Node.js runtime shared between production and development.\n * Contains chunk loading, module caching, and other non-HMR functionality.\n */\n\nprocess.env.TURBOPACK = '1'\n\nconst url = require('url') as typeof import('url')\n\nconst moduleFactories: ModuleFactories = new Map()\nconst moduleCache: ModuleCache = new Map()\n\n/**\n * Returns an absolute path to the given module's id.\n */\nfunction resolvePathFromModule(\n this: TurbopackBaseContext,\n moduleId: string\n): string {\n const exported = this.r(moduleId)\n const exportedPath = exported?.default ?? exported\n if (typeof exportedPath !== 'string') {\n return exported as any\n }\n\n const strippedAssetPrefix = exportedPath.slice(ASSET_PREFIX.length)\n const resolved = path.resolve(RUNTIME_ROOT, strippedAssetPrefix)\n\n return url.pathToFileURL(resolved).href\n}\n\n/**\n * Exports a URL value. No suffix is added in Node.js runtime.\n */\nfunction exportUrl(\n this: TurbopackBaseContext,\n urlValue: string,\n id: ModuleId | undefined\n) {\n exportValue.call(this, urlValue, id)\n}\n\nfunction loadRuntimeChunk(sourcePath: ChunkPath, chunkData: ChunkData): void {\n if (typeof chunkData === 'string') {\n loadRuntimeChunkPath(sourcePath, chunkData)\n } else {\n loadRuntimeChunkPath(sourcePath, chunkData.path)\n }\n}\n\nconst loadedChunks = new Set()\nconst unsupportedLoadChunk = Promise.resolve(undefined)\nconst loadedChunk: Promise = Promise.resolve(undefined)\nconst chunkCache = new Map>()\n\nfunction clearChunkCache() {\n chunkCache.clear()\n loadedChunks.clear()\n}\n\nfunction loadRuntimeChunkPath(\n sourcePath: ChunkPath,\n chunkPath: ChunkPath\n): void {\n if (!isJs(chunkPath)) {\n // We only support loading JS chunks in Node.js.\n // This branch can be hit when trying to load a CSS chunk.\n return\n }\n\n if (loadedChunks.has(chunkPath)) {\n return\n }\n\n try {\n const resolved = path.resolve(RUNTIME_ROOT, chunkPath)\n const chunkModules: CompressedModuleFactories = require(resolved)\n installCompressedModuleFactories(chunkModules, 0, moduleFactories)\n loadedChunks.add(chunkPath)\n } catch (cause) {\n let errorMessage = `Failed to load chunk ${chunkPath}`\n\n if (sourcePath) {\n errorMessage += ` from runtime for chunk ${sourcePath}`\n }\n\n const error = new Error(errorMessage, { cause })\n error.name = 'ChunkLoadError'\n throw error\n }\n}\n\nfunction loadChunkAsync(\n this: TurbopackBaseContext,\n chunkData: ChunkData\n): Promise {\n const chunkPath = typeof chunkData === 'string' ? chunkData : chunkData.path\n if (!isJs(chunkPath)) {\n // We only support loading JS chunks in Node.js.\n // This branch can be hit when trying to load a CSS chunk.\n return unsupportedLoadChunk\n }\n\n let entry = chunkCache.get(chunkPath)\n if (entry === undefined) {\n try {\n // resolve to an absolute path to simplify `require` handling\n const resolved = path.resolve(RUNTIME_ROOT, chunkPath)\n // TODO: consider switching to `import()` to enable concurrent chunk loading and async file io\n // However this is incompatible with hot reloading (since `import` doesn't use the require cache)\n const chunkModules: CompressedModuleFactories = require(resolved)\n installCompressedModuleFactories(chunkModules, 0, moduleFactories)\n entry = loadedChunk\n } catch (cause) {\n const errorMessage = `Failed to load chunk ${chunkPath} from module ${this.m.id}`\n const error = new Error(errorMessage, { cause })\n error.name = 'ChunkLoadError'\n\n // Cache the failure promise, future requests will also get this same rejection\n entry = Promise.reject(error)\n }\n chunkCache.set(chunkPath, entry)\n }\n // TODO: Return an instrumented Promise that React can use instead of relying on referential equality.\n return entry\n}\ncontextPrototype.l = loadChunkAsync\n\nfunction loadChunkAsyncByUrl(\n this: TurbopackBaseContext,\n chunkUrl: string\n) {\n const path = url.fileURLToPath(new URL(chunkUrl, RUNTIME_ROOT)) as ChunkPath\n return loadChunkAsync.call(this, path)\n}\ncontextPrototype.L = loadChunkAsyncByUrl\n\n// Shared runtime primitive: the root that on-disk chunk paths are resolved\n// against. Used by the bundled wasm helper (exposed as `__turbopack_runtime_root__`).\ncontextPrototype.w = RUNTIME_ROOT\n\nconst regexJsUrl = /\\.js(?:\\?[^#]*)?(?:#.*)?$/\n/**\n * Checks if a given path/URL ends with .js, optionally followed by ?query or #fragment.\n */\nfunction isJs(chunkUrlOrPath: ChunkUrl | ChunkPath): boolean {\n return regexJsUrl.test(chunkUrlOrPath)\n}\n"],"names":["process","env","TURBOPACK","url","require","moduleFactories","Map","moduleCache","resolvePathFromModule","moduleId","exported","r","exportedPath","default","strippedAssetPrefix","slice","ASSET_PREFIX","length","resolved","path","resolve","RUNTIME_ROOT","pathToFileURL","href","exportUrl","urlValue","id","exportValue","call","loadRuntimeChunk","sourcePath","chunkData","loadRuntimeChunkPath","loadedChunks","Set","unsupportedLoadChunk","Promise","undefined","loadedChunk","chunkCache","clearChunkCache","clear","chunkPath","isJs","has","chunkModules","installCompressedModuleFactories","add","cause","errorMessage","error","Error","name","loadChunkAsync","entry","get","m","reject","set","contextPrototype","l","loadChunkAsyncByUrl","chunkUrl","path1","fileURLToPath","URL","L","w","regexJsUrl","chunkUrlOrPath","test"],"mappings":"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","ignoreList":[0]}}, + {"offset": {"line": 858, "column": 0}, "map": {"version":3,"sources":["turbopack:///[turbopack]/nodejs/runtime/build-base.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-vars */\n\n/// \n\n/**\n * Production Node.js runtime.\n * Uses ModuleWithDirection and simple module instantiation without HMR support.\n */\n\n// moduleCache and moduleFactories are declared in runtime-base.ts\n\n// this is read in runtime-utils.ts so it creates a module with direction for hmr\ncreateModuleWithDirectionFlag = true\n\ninterface TurbopackNodeBuildContext\n extends TurbopackBaseContext {\n R: ResolvePathFromModule\n x: ExternalRequire\n y: ExternalImport\n C: typeof clearChunkCache\n}\n\nconst nodeContextPrototype = Context.prototype as TurbopackNodeBuildContext\n\nnodeContextPrototype.q = exportUrl\nnodeContextPrototype.M = moduleFactories\n// Cast moduleCache to ModuleWithDirection for production mode\nnodeContextPrototype.c = moduleCache as ModuleCache\nnodeContextPrototype.R = resolvePathFromModule\nnodeContextPrototype.C = clearChunkCache\n\nfunction instantiateModule(\n id: ModuleId,\n sourceType: SourceType,\n sourceData: SourceData\n): ModuleWithDirection {\n const moduleFactory = moduleFactories.get(id)\n if (typeof moduleFactory !== 'function') {\n // This can happen if modules incorrectly handle HMR disposes/updates,\n // e.g. when they keep a `setTimeout` around which still executes old code\n // and contains e.g. a `require(\"something\")` call.\n throw new Error(factoryNotAvailableMessage(id, sourceType, sourceData))\n }\n\n const module: ModuleWithDirection = createModuleWithDirection(id)\n const exports = module.exports\n moduleCache.set(id, module)\n\n const context =\n new (Context as any as ContextConstructor)(\n module,\n exports\n )\n // NOTE(alexkirsz) This can fail when the module encounters a runtime error.\n try {\n moduleFactory(context, module, exports)\n } catch (error) {\n module.error = error as any\n throw error\n }\n\n ;(module as any).loaded = true\n if (module.namespaceObject && module.exports !== module.namespaceObject) {\n // in case of a circular dependency: cjs1 -> esm2 -> cjs1\n interopEsm(module.exports, module.namespaceObject)\n }\n\n return module\n}\n\n/**\n * Retrieves a module from the cache, or instantiate it if it is not cached.\n */\n// @ts-ignore\nfunction getOrInstantiateModuleFromParent(\n id: ModuleId,\n sourceModule: ModuleWithDirection\n): ModuleWithDirection {\n const module = moduleCache.get(id) as ModuleWithDirection | undefined\n\n if (module) {\n if (module.error) {\n throw module.error\n }\n\n return module\n }\n\n return instantiateModule(id, SourceType.Parent, sourceModule.id)\n}\n\n/**\n * Instantiates a runtime module.\n */\nfunction instantiateRuntimeModule(\n chunkPath: ChunkPath,\n moduleId: ModuleId\n): ModuleWithDirection {\n return instantiateModule(moduleId, SourceType.Runtime, chunkPath)\n}\n\n/**\n * Retrieves a module from the cache, or instantiate it as a runtime module if it is not cached.\n */\n// @ts-ignore TypeScript doesn't separate this module space from the browser runtime\nfunction getOrInstantiateRuntimeModule(\n chunkPath: ChunkPath,\n moduleId: ModuleId\n): ModuleWithDirection {\n const module = moduleCache.get(moduleId) as ModuleWithDirection | undefined\n\n if (module) {\n if (module.error) {\n throw module.error\n }\n return module\n }\n\n return instantiateRuntimeModule(chunkPath, moduleId)\n}\n\nmodule.exports = (sourcePath: ChunkPath) => ({\n m: (id: ModuleId) => getOrInstantiateRuntimeModule(sourcePath, id),\n c: (chunkData: ChunkData) => loadRuntimeChunk(sourcePath, chunkData),\n})\n"],"names":["createModuleWithDirectionFlag","nodeContextPrototype","Context","prototype","q","exportUrl","M","moduleFactories","c","moduleCache","R","resolvePathFromModule","C","clearChunkCache","instantiateModule","id","sourceType","sourceData","moduleFactory","get","Error","factoryNotAvailableMessage","module1","createModuleWithDirection","exports","set","context","error","loaded","namespaceObject","interopEsm","getOrInstantiateModuleFromParent","sourceModule","SourceType","Parent","instantiateRuntimeModule","chunkPath","moduleId","Runtime","getOrInstantiateRuntimeModule","module","sourcePath","m","chunkData","loadRuntimeChunk"],"mappings":"AAAA,oDAAoD,GAEpD,0CAA0C;AAE1C;;;CAGC,GAED,kEAAkE;AAElE,iFAAiF;AACjFA,gCAAgC;AAUhC,MAAMC,uBAAuBC,QAAQC,SAAS;AAE9CF,qBAAqBG,CAAC,GAAGC;AACzBJ,qBAAqBK,CAAC,GAAGC;AACzB,8DAA8D;AAC9DN,qBAAqBO,CAAC,GAAGC;AACzBR,qBAAqBS,CAAC,GAAGC;AACzBV,qBAAqBW,CAAC,GAAGC;AAEzB,SAASC,kBACPC,EAAY,EACZC,UAAsB,EACtBC,UAAsB;IAEtB,MAAMC,gBAAgBX,gBAAgBY,GAAG,CAACJ;IAC1C,IAAI,OAAOG,kBAAkB,YAAY;QACvC,sEAAsE;QACtE,0EAA0E;QAC1E,mDAAmD;QACnD,MAAM,IAAIE,MAAMC,2BAA2BN,IAAIC,YAAYC;IAC7D;IAEA,MAAMK,UAA8BC,0BAA0BR;IAC9D,MAAMS,UAAUF,QAAOE,OAAO;IAC9Bf,YAAYgB,GAAG,CAACV,IAAIO;IAEpB,MAAMI,UACJ,IAAKxB,QACHoB,SACAE;IAEJ,4EAA4E;IAC5E,IAAI;QACFN,cAAcQ,SAASJ,SAAQE;IACjC,EAAE,OAAOG,OAAO;QACdL,QAAOK,KAAK,GAAGA;QACf,MAAMA;IACR;;IAEEL,QAAeM,MAAM,GAAG;IAC1B,IAAIN,QAAOO,eAAe,IAAIP,QAAOE,OAAO,KAAKF,QAAOO,eAAe,EAAE;QACvE,yDAAyD;QACzDC,WAAWR,QAAOE,OAAO,EAAEF,QAAOO,eAAe;IACnD;IAEA,OAAOP;AACT;AAEA;;CAEC,GACD,aAAa;AACb,SAASS,iCACPhB,EAAY,EACZiB,YAAiC;IAEjC,MAAMV,UAASb,YAAYU,GAAG,CAACJ;IAE/B,IAAIO,SAAQ;QACV,IAAIA,QAAOK,KAAK,EAAE;YAChB,MAAML,QAAOK,KAAK;QACpB;QAEA,OAAOL;IACT;IAEA,OAAOR,kBAAkBC,IAAIkB,WAAWC,MAAM,EAAEF,aAAajB,EAAE;AACjE;AAEA;;CAEC,GACD,SAASoB,yBACPC,SAAoB,EACpBC,QAAkB;IAElB,OAAOvB,kBAAkBuB,UAAUJ,WAAWK,OAAO,EAAEF;AACzD;AAEA;;CAEC,GACD,oFAAoF;AACpF,SAASG,8BACPH,SAAoB,EACpBC,QAAkB;IAElB,MAAMf,UAASb,YAAYU,GAAG,CAACkB;IAE/B,IAAIf,SAAQ;QACV,IAAIA,QAAOK,KAAK,EAAE;YAChB,MAAML,QAAOK,KAAK;QACpB;QACA,OAAOL;IACT;IAEA,OAAOa,yBAAyBC,WAAWC;AAC7C;AAEAG,OAAOhB,OAAO,GAAG,CAACiB,aAA0B,CAAC;QAC3CC,GAAG,CAAC3B,KAAiBwB,8BAA8BE,YAAY1B;QAC/DP,GAAG,CAACmC,YAAyBC,iBAAiBH,YAAYE;IAC5D,CAAC","ignoreList":[0]}}] +} \ No newline at end of file diff --git a/e-commerce/.next/server/chunks/ssr/_0lbshynybzfwm._.js b/e-commerce/.next/server/chunks/ssr/_0lbshynybzfwm._.js new file mode 100644 index 0000000000000000000000000000000000000000..715d6a34a4e5d2e33c856bb97b2a688b721a92a3 --- /dev/null +++ b/e-commerce/.next/server/chunks/ssr/_0lbshynybzfwm._.js @@ -0,0 +1,3 @@ +module.exports=[[27641,a=>{var b=a.i(7997),c=a.i(717),d=a.i(67228);let e=(0,c.cache)(async function(a){return(await (0,d.f)(a)).now}),f=(0,c.cache)(async function(){return(await (0,d.f)()).formats});var g=a.i(30543);let h=(0,c.cache)(async function(a){return(await (0,d.f)(a)).timeZone});async function i(a){return h(a?.locale)}let j=(0,c.cache)(async function(a){var b=await (0,d.f)(a);if(!b.messages)throw Error("No messages found. Have you configured them correctly? See https://next-intl.dev/docs/configuration#messages");return b.messages});async function k(a){return j(a?.locale)}let l=(0,c.cache)(async function(){return(await (0,d.f)()).locale});async function m({formats:a,locale:c,messages:d,now:h,timeZone:j,...n}){return(0,b.jsx)(g.default,{formats:void 0===a?await f():a,locale:c??await l(),messages:void 0===d?await k():d,now:h??await e(),timeZone:j??await i(),...n})}var n=a.i(3109),o=c["use".trim()];function p(a){var b=(0,d.f)();try{return o(b)}catch(b){throw b instanceof TypeError&&b.message.includes("Cannot read properties of null (reading 'use')")?Error(`\`${a}\` is not callable within an async component. Please refer to https://next-intl.dev/docs/environments/server-client-components#async-components`,{cause:b}):b}}var q=a.i(30878),r=a.i(32776);a.i(70396);var s=a.i(73727),t=a.i(11884),u=a.i(13743),v=a.i(92737),w=a.i(43917);async function x(){return t.V.map(a=>({locale:a}))}async function y({params:a}){let{locale:b}=await a;(0,n.O)(t.V,b)||(0,s.notFound)();let c=await (0,r.f)({locale:b,namespace:"home"});return{title:c("title"),description:c("hero")}}async function z({children:a,params:c}){let{locale:d}=await c,e=null!=d&&""!==d&&(0,n.O)(t.V,d)?d:t.J,f=await k({locale:e}),g=await (0,r.f)({locale:e,namespace:"home"});return(0,b.jsx)(m,{locale:e,messages:f,children:(0,b.jsx)("html",{lang:e,suppressHydrationWarning:!0,children:(0,b.jsx)("body",{children:(0,b.jsxs)("div",{className:"flex flex-col min-h-screen",children:[(0,b.jsxs)("header",{className:"flex items-center justify-between p-4 border-b",children:[(0,b.jsx)("span",{className:"text-lg font-semibold",children:g("lang")}),(0,b.jsx)(A,{currentLocale:e})]}),(0,b.jsx)("main",{className:"flex-1 p-6 max-w-3xl mx-auto w-full",children:a}),(0,b.jsx)("footer",{className:"text-center p-4 text-sm text-muted-foreground border-t",children:"E-Commerce Store"})]})})})})}function A({currentLocale:a}){let c=p("useLocale").locale;return!function(...[a]){let b=p("useTranslations");(0,q.f)(b,a)}("home"),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(w.f,{variant:"en"===c?"default":"outline",size:"sm",asChild:!0,children:(0,b.jsxs)("a",{href:"/en",className:"flex items-center gap-1",children:[(0,b.jsx)(u.f,{className:"h-4 w-4"}),"EN"]})}),(0,b.jsx)(w.f,{variant:"bn"===c?"default":"outline",size:"sm",asChild:!0,children:(0,b.jsxs)("a",{href:"/bn",className:"flex items-center gap-1",children:["BN",(0,b.jsx)(v.f,{className:"h-4 w-4"})]})})]})}a.s(["default",0,z,"generateMetadata",0,y,"generateStaticParams",0,x],27641)},52265,a=>{let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call the default export of [project]/node_modules/next-intl/dist/esm/production/shared/NextIntlClientProvider.js from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/node_modules/next-intl/dist/esm/production/shared/NextIntlClientProvider.js","default");a.s(["default",0,b])},30543,a=>{var b=a.i(52265);a.n(b)}],30419,function(a){a.n(a.i(27641))}]; + +//# sourceMappingURL=_0lbshynybzfwm._.js.map \ No newline at end of file diff --git a/e-commerce/.next/server/chunks/ssr/_0lbshynybzfwm._.js.map b/e-commerce/.next/server/chunks/ssr/_0lbshynybzfwm._.js.map new file mode 100644 index 0000000000000000000000000000000000000000..304097a58467298a200e8fc6246b7f99ec444092 --- /dev/null +++ b/e-commerce/.next/server/chunks/ssr/_0lbshynybzfwm._.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../node_modules/next-intl/dist/esm/production/server/react-server/getConfigNow.js","../../../../node_modules/next-intl/dist/esm/production/server/react-server/getFormats.js","../../../../node_modules/next-intl/dist/esm/production/react-server/NextIntlClientProviderServer.js","../../../../node_modules/next-intl/dist/esm/production/server/react-server/getTimeZone.js","../../../../node_modules/next-intl/dist/esm/production/server/react-server/getMessages.js","../../../../node_modules/next-intl/dist/esm/production/server/react-server/getLocale.js","../../../../app/%5Blocale%5D/layout.tsx","../../../../node_modules/next-intl/dist/esm/production/shared/use.js","../../../../node_modules/next-intl/dist/esm/production/react-server/useConfig.js","../../../../node_modules/next-intl/dist/esm/production/react-server/useLocale.js","../../../../node_modules/next-intl/dist/esm/production/react-server/useTranslations.js","../../../../node_modules/next-intl/dist/esm/production/shared/NextIntlClientProvider.js/__nextjs-internal-proxy.mjs%20%7B%20server%20%3D%3E%20%22%5Bproject%5D/node_modules/next-intl/dist/esm/production/shared/NextIntlClientProvider.js%22%20%7D"],"sourcesContent":["import{cache as t}from\"react\";import o from\"./getConfig.js\";const r=t((async function(t){return(await o(t)).now}));export{r as default};\n","import{cache as t}from\"react\";import o from\"./getConfig.js\";const r=t((async function(){return(await o()).formats}));export{r as default};\n","import e from\"../server/react-server/getConfigNow.js\";import r from\"../server/react-server/getFormats.js\";import t from\"../shared/NextIntlClientProvider.js\";import{jsx as o}from\"react/jsx-runtime\";import s from\"../server/react-server/getTimeZone.js\";import a from\"../server/react-server/getMessages.js\";import m from\"../server/react-server/getLocale.js\";async function i({formats:i,locale:n,messages:v,now:f,timeZone:c,...g}){return o(t,{formats:void 0===i?await r():i,locale:n??await m(),messages:void 0===v?await a():v,now:f??await e(),timeZone:c??await s(),...g})}export{i as default};\n","import{cache as t}from\"react\";import n from\"./getConfig.js\";const o=t((async function(t){return(await n(t)).timeZone}));async function r(t){return o(t?.locale)}export{r as default};\n","import{cache as e}from\"react\";import t from\"./getConfig.js\";function o(e){if(!e.messages)throw new Error(\"No messages found. Have you configured them correctly? See https://next-intl.dev/docs/configuration#messages\");return e.messages}const n=e((async function(e){return o(await t(e))}));async function r(e){return n(e?.locale)}export{r as default,o as getMessagesFromConfig};\n","import{cache as t}from\"react\";import o from\"./getConfig.js\";const r=t((async function(){return(await o()).locale}));export{r as default};\n","import { NextIntlClientProvider, hasLocale, useLocale, useTranslations } from \"next-intl\";\nimport { getTranslations, getMessages } from \"next-intl/server\";\nimport { notFound } from \"next/navigation\";\nimport type { Locale } from \"../../i18n/routing\";\nimport { locales, defaultLocale } from \"../../i18n/routing\";\nimport { ArrowLeft, ArrowRight } from \"lucide-react\";\nimport { Button } from \"@/components/ui/button\";\nimport type { Metadata } from \"next\";\nimport \"../globals.css\";\n\ntype Props = {\n children: React.ReactNode;\n params: Promise<{ locale: string }>;\n};\n\nexport async function generateStaticParams() {\n return locales.map((locale) => ({ locale }));\n}\n\nexport async function generateMetadata({\n params,\n}: {\n params: Promise<{ locale: string }>;\n}): Promise {\n const { locale } = await params;\n if (!hasLocale(locales, locale)) notFound();\n const t = await getTranslations({ locale: locale as Locale, namespace: \"home\" });\n return {\n title: t(\"title\"),\n description: t(\"hero\"),\n };\n}\n\nexport default async function LocaleLayout({ children, params }: Props) {\n const { locale } = await params;\n // During Next.js instant / prefetch validation the segment can be rendered\n // without a resolved locale (params.locale may be undefined). In that case we\n // fall back to the default locale so the segment renders; an invalid locale\n // that is present but not in the list still 404s via generateMetadata.\n const resolvedLocale: Locale =\n locale != null && locale !== \"\" && hasLocale(locales, locale as Locale)\n ? (locale as Locale)\n : defaultLocale;\n\n const messages = await getMessages({ locale: resolvedLocale });\n const t = await getTranslations({ locale: resolvedLocale, namespace: \"home\" });\n\n // NOTE: NextIntlClientProvider is placed OUTSIDE / per the official\n // next-intl App Router guide. This is the documented safe position and lets the\n // server-side provider read the request locale directly from the request config\n // (which already received the explicit params.locale). We pass locale + messages\n // explicitly so the provider's server wrapper never falls back to getLocaleCached().\n return (\n \n \n \n
\n
\n {t(\"lang\")}\n \n
\n
{children}
\n
\n E-Commerce Store\n
\n
\n \n \n
\n );\n}\n\nfunction LocaleSwitcher({ currentLocale }: { currentLocale: Locale }) {\n const locale = useLocale();\n const t = useTranslations(\"home\");\n\n return (\n
\n \n \n \n EN\n \n \n \n \n BN\n \n \n \n
\n );\n}\n","import*as r from\"react\";var a=r[\"use\".trim()];export{a as default};\n","import e from\"../server/react-server/getConfig.js\";import n from\"../shared/use.js\";function r(r){return function(e,r){try{return n(r)}catch(n){throw n instanceof TypeError&&n.message.includes(\"Cannot read properties of null (reading 'use')\")?new Error(`\\`${e}\\` is not callable within an async component. Please refer to https://next-intl.dev/docs/environments/server-client-components#async-components`,{cause:n}):n}}(r,e())}export{r as default};\n","import e from\"./useConfig.js\";function o(){return e(\"useLocale\").locale}export{o as default};\n","import r from\"../server/react-server/getServerTranslator.js\";import e from\"./useConfig.js\";function s(...[s]){const t=e(\"useTranslations\");return r(t,s)}export{s as default};\n","// This file is generated by next-core EcmascriptClientReferenceModule.\nimport { registerClientReference } from \"react-server-dom-turbopack/server\";\nexport default registerClientReference(\n function() { throw new Error(\"Attempted to call the default export of [project]/node_modules/next-intl/dist/esm/production/shared/NextIntlClientProvider.js from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/node_modules/next-intl/dist/esm/production/shared/NextIntlClientProvider.js\",\n \"default\",\n);\n"],"names":["r","t","now","Error"],"mappings":"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","ignoreList":[0,1,2,3,4,5,7,8,9,10,11]} \ No newline at end of file diff --git a/e-commerce/.next/server/chunks/ssr/_17ysuo3e-5t0j._.js b/e-commerce/.next/server/chunks/ssr/_17ysuo3e-5t0j._.js new file mode 100644 index 0000000000000000000000000000000000000000..daf99df1126de17f39312bca7957fce47540b56a --- /dev/null +++ b/e-commerce/.next/server/chunks/ssr/_17ysuo3e-5t0j._.js @@ -0,0 +1,3 @@ +module.exports=[[86180,a=>{var b=a.i(7997),c=a.i(95936),d=a.i(32776),e=a.i(92737),f=a.i(43917);async function g({params:a}){let{locale:h}=await a,i=await (0,d.f)({locale:h,namespace:"home"}),j=`/${h}/category/men-tshirts`;return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("h1",{className:"text-3xl font-bold tracking-tight",children:i("title")}),(0,b.jsx)("p",{className:"mt-3 text-muted-foreground text-lg",children:i("hero")}),(0,b.jsxs)("div",{className:"mt-6 flex gap-3",children:[(0,b.jsx)(c.default,{href:j,children:(0,b.jsxs)(f.f,{children:[i("catalog")," ",(0,b.jsx)(e.f,{className:"ml-2 h-4 w-4"})]})}),(0,b.jsx)(f.f,{variant:"outline",children:i("about")})]})]})}a.s(["default",0,g])},64240,(a,b,c)=>{function d(a){if("function"!=typeof WeakMap)return null;var b=new WeakMap,c=new WeakMap;return(d=function(a){return a?c:b})(a)}c._=function(a,b){if(!b&&a&&a.__esModule)return a;if(null===a||"object"!=typeof a&&"function"!=typeof a)return{default:a};var c=d(b);if(c&&c.has(a))return c.get(a);var e={__proto__:null},f=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var g in a)if("default"!==g&&Object.prototype.hasOwnProperty.call(a,g)){var h=f?Object.getOwnPropertyDescriptor(a,g):null;h&&(h.get||h.set)?Object.defineProperty(e,g,h):e[g]=a[g]}return e.default=a,c&&c.set(a,e),e}},97647,a=>{var b=a.i(84707);a.n(b)},95936,(a,b,c)=>{Object.defineProperty(c,"__esModule",{value:!0});var d={default:function(){return i},useLinkStatus:function(){return h.useLinkStatus}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(64240),g=a.r(7997),h=f._(a.r(97647));function i(a){let b=a.legacyBehavior,c="string"==typeof a.children||"number"==typeof a.children||"string"==typeof a.children?.type,d=a.children?.type?.$$typeof===Symbol.for("react.client.reference");return!b||c||d||(a.children?.type?.$$typeof===Symbol.for("react.lazy")?console.error("Using a Lazy Component as a direct child of `` from a Server Component is not supported. If you need legacyBehavior, wrap your Lazy Component in a Client Component that renders the Link's `` tag."):console.error("Using a Server Component as a direct child of `` is not supported. If you need legacyBehavior, wrap your Server Component in a Client Component that renders the Link's `` tag.")),(0,g.jsx)(h.default,{...a})}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)}],24980,function(a){a.n(a.i(86180))},84707,(a,b,c)=>{let{createClientModuleProxy:d}=a.r(11857);a.n(d("[project]/node_modules/next/dist/client/app-dir/link.js"))}]; + +//# sourceMappingURL=_17ysuo3e-5t0j._.js.map \ No newline at end of file diff --git a/e-commerce/.next/server/chunks/ssr/_17ysuo3e-5t0j._.js.map b/e-commerce/.next/server/chunks/ssr/_17ysuo3e-5t0j._.js.map new file mode 100644 index 0000000000000000000000000000000000000000..2530b8f740f3485ed23382f941a1ed8f4e6ff58f --- /dev/null +++ b/e-commerce/.next/server/chunks/ssr/_17ysuo3e-5t0j._.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../app/%5Blocale%5D/page.tsx","../../../../node_modules/%40swc/helpers/cjs/_interop_require_wildcard.cjs","../../../../node_modules/next/src/client/app-dir/link.tsx","../../../../node_modules/next/src/client/app-dir/link.react-server.tsx","../../../../node_modules/next/dist/client/app-dir/link.js/__nextjs-internal-proxy.cjs%20%7B%20server%20%3D%3E%20%22%5Bproject%5D/node_modules/next/dist/client/app-dir/link.js%22%20%7D"],"sourcesContent":["import Link from \"next/link\";\nimport { getTranslations } from \"next-intl/server\";\nimport { ArrowRight } from \"lucide-react\";\nimport { Button } from \"@/components/ui/button\";\nimport type { Locale } from \"../../i18n/routing\";\n\nexport default async function HomePage({ params }: { params: Promise<{ locale: string }> }) {\n const { locale } = await params;\n const t = await getTranslations({ locale: locale as Locale, namespace: \"home\" });\n const catalogHref = `/${locale}/category/men-tshirts`;\n return (\n <>\n

{t(\"title\")}

\n

{t(\"hero\")}

\n
\n \n \n \n \n
\n \n );\n}","\"use strict\";\n\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n\n return (_getRequireWildcardCache = function(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\nfunction _interop_require_wildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) return obj;\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") return { default: obj };\n\n var cache = _getRequireWildcardCache(nodeInterop);\n\n if (cache && cache.has(obj)) return cache.get(obj);\n\n var newObj = { __proto__: null };\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n\n for (var key in obj) {\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) Object.defineProperty(newObj, key, desc);\n else newObj[key] = obj[key];\n }\n }\n\n newObj.default = obj;\n\n if (cache) cache.set(obj, newObj);\n\n return newObj;\n}\nexports._ = _interop_require_wildcard;\n","'use client'\n\nimport React, { createContext, useContext, useOptimistic, useRef } from 'react'\nimport type { UrlObject } from 'url'\nimport { formatUrl } from '../../shared/lib/router/utils/format-url'\nimport { AppRouterContext } from '../../shared/lib/app-router-context.shared-runtime'\nimport { useMergedRef } from '../use-merged-ref'\nimport { isAbsoluteUrl } from '../../shared/lib/utils'\nimport { addBasePath } from '../add-base-path'\nimport { ScrollBehavior } from '../components/router-reducer/router-reducer-types'\nimport type { PENDING_LINK_STATUS } from '../components/links'\nimport {\n IDLE_LINK_STATUS,\n mountLinkInstance,\n onNavigationIntent,\n unmountLinkForCurrentNavigation,\n unmountPrefetchableInstance,\n type LinkInstance,\n} from '../components/links'\nimport { isLocalURL } from '../../shared/lib/router/utils/is-local-url'\nimport {\n FetchStrategy,\n type PrefetchTaskFetchStrategy,\n} from '../components/segment-cache/types'\nimport type { RouterTransitionPrefetchIntent } from '../router-transition-types'\n\ntype Url = string | UrlObject\ntype RequiredKeys = {\n [K in keyof T]-?: {} extends Pick ? never : K\n}[keyof T]\ntype OptionalKeys = {\n [K in keyof T]-?: {} extends Pick ? K : never\n}[keyof T]\n\ntype OnNavigateEventHandler = (event: { preventDefault: () => void }) => void\n\ntype InternalLinkProps = {\n /**\n * **Required**. The path or URL to navigate to. It can also be an object (similar to `URL`).\n *\n * @example\n * ```tsx\n * // Navigate to /dashboard:\n * Dashboard\n *\n * // Navigate to /about?name=test:\n * \n * About\n * \n * ```\n *\n * @remarks\n * - For external URLs, use a fully qualified URL such as `https://...`.\n * - In the App Router, dynamic routes must not include bracketed segments in `href`.\n */\n href: Url\n\n /**\n * @deprecated v10.0.0: `href` props pointing to a dynamic route are\n * automatically resolved and no longer require the `as` prop.\n */\n as?: Url\n\n /**\n * Replace the current `history` state instead of adding a new URL into the stack.\n *\n * @defaultValue `false`\n *\n * @example\n * ```tsx\n * \n * About (replaces the history state)\n * \n * ```\n */\n replace?: boolean\n\n /**\n * Whether to override the default scroll behavior. If `true`, Next.js attempts to maintain\n * the scroll position if the newly navigated page is still visible. If not, it scrolls to the top.\n *\n * If `false`, Next.js will not modify the scroll behavior at all.\n *\n * @defaultValue `true`\n *\n * @example\n * ```tsx\n * \n * No auto scroll\n * \n * ```\n */\n scroll?: boolean\n\n /**\n * Update the path of the current page without rerunning data fetching methods\n * like `getStaticProps`, `getServerSideProps`, or `getInitialProps`.\n *\n * @remarks\n * `shallow` only applies to the Pages Router. For the App Router, see the\n * [following documentation](https://nextjs.org/docs/app/building-your-application/routing/linking-and-navigating#using-the-native-history-api).\n *\n * @defaultValue `false`\n *\n * @example\n * ```tsx\n * \n * Shallow navigation\n * \n * ```\n */\n shallow?: boolean\n\n /**\n * Forces `Link` to pass its `href` to the child component. Useful if the child is a custom\n * component that wraps an `
` tag, or if you're using certain styling libraries.\n *\n * @defaultValue `false`\n *\n * @example\n * ```tsx\n * \n * Dashboard\n * \n * ```\n */\n passHref?: boolean\n\n /**\n * Prefetch the page in the background.\n * Any `` that is in the viewport (initially or through scroll) will be prefetched.\n * Prefetch can be disabled by passing `prefetch={false}`.\n *\n * @remarks\n * Prefetching is only enabled in production.\n *\n * - In the **App Router**:\n * - `\"auto\"`, `null`, `undefined` (default): Prefetch behavior depends on static vs dynamic routes:\n * - Static routes: fully prefetched\n * - Dynamic routes: partial prefetch to the nearest segment with a `loading.js`\n * - `true`: Always prefetch the full route and data.\n * - `false`: Disable prefetching on both viewport and hover.\n * - In the **Pages Router**:\n * - `true` (default): Prefetches the route and data in the background on viewport or hover.\n * - `false`: Prefetch only on hover, not on viewport.\n *\n * @defaultValue `true` (Pages Router) or `null` (App Router)\n *\n * @example\n * ```tsx\n * \n * Dashboard\n * \n * ```\n */\n prefetch?: boolean | 'auto' | null\n\n /**\n * (unstable) Switch to a full prefetch on hover. Effectively the same as\n * updating the prefetch prop to `true` in a mouse event.\n */\n unstable_dynamicOnHover?: boolean\n\n /**\n * The active locale is automatically prepended in the Pages Router. `locale` allows for providing\n * a different locale, or can be set to `false` to opt out of automatic locale behavior.\n *\n * @remarks\n * Note: locale only applies in the Pages Router and is ignored in the App Router.\n *\n * @example\n * ```tsx\n * // Use the 'fr' locale:\n * \n * About (French)\n * \n *\n * // Disable locale prefix:\n * \n * About (no locale prefix)\n * \n * ```\n */\n locale?: string | false\n\n /**\n * Enable legacy link behavior.\n *\n * @deprecated This will be removed in a future version\n * @defaultValue `false`\n * @see https://github.com/vercel/next.js/commit/489e65ed98544e69b0afd7e0cfc3f9f6c2b803b7\n */\n legacyBehavior?: boolean\n\n /**\n * Optional event handler for when the mouse pointer is moved onto the ``.\n */\n onMouseEnter?: React.MouseEventHandler\n\n /**\n * Optional event handler for when the `` is touched.\n */\n onTouchStart?: React.TouchEventHandler\n\n /**\n * Optional event handler for when the `` is clicked.\n */\n onClick?: React.MouseEventHandler\n\n /**\n * Optional event handler for when the `` is navigated.\n */\n onNavigate?: OnNavigateEventHandler\n\n /**\n * Transition types to apply when navigating. These types are passed to\n * [`React.addTransitionType`](https://react.dev/reference/react/addTransitionType)\n * inside the navigation transition, enabling\n * [``](https://react.dev/reference/react/ViewTransition) components\n * to apply different animations based on the type of navigation.\n *\n * @example\n * ```tsx\n * About\n * ```\n */\n transitionTypes?: string[]\n}\n\n// TODO-APP: Include the full set of Anchor props\n// adding this to the publicly exported type currently breaks existing apps\n\n// `RouteInferType` is a stub here to avoid breaking `typedRoutes` when the type\n// isn't generated yet. It will be replaced when type generation runs.\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport type LinkProps = InternalLinkProps\ntype LinkPropsRequired = RequiredKeys\ntype LinkPropsOptional = OptionalKeys>\n\nfunction isModifiedEvent(event: React.MouseEvent): boolean {\n const eventTarget = event.currentTarget as HTMLAnchorElement | SVGAElement\n const target = eventTarget.getAttribute('target')\n return (\n (target && target !== '_self') ||\n event.metaKey ||\n event.ctrlKey ||\n event.shiftKey ||\n event.altKey || // triggers resource download\n (event.nativeEvent && event.nativeEvent.which === 2)\n )\n}\n\nfunction linkClicked(\n e: React.MouseEvent,\n href: string,\n linkInstanceRef: React.RefObject,\n replace?: boolean,\n scroll?: boolean,\n onNavigate?: OnNavigateEventHandler,\n transitionTypes?: string[],\n prefetchIntent: RouterTransitionPrefetchIntent = 'none'\n): void {\n if (typeof window !== 'undefined') {\n const { nodeName } = e.currentTarget\n\n // anchors inside an svg have a lowercase nodeName\n const isAnchorNodeName = nodeName.toUpperCase() === 'A'\n if (\n (isAnchorNodeName && isModifiedEvent(e)) ||\n e.currentTarget.hasAttribute('download')\n ) {\n // ignore click for browser’s default behavior\n return\n }\n\n if (!isLocalURL(href)) {\n if (replace) {\n // browser default behavior does not replace the history state\n // so we need to do it manually\n e.preventDefault()\n location.replace(href)\n }\n\n // ignore click for browser’s default behavior\n return\n }\n\n e.preventDefault()\n\n if (onNavigate) {\n let isDefaultPrevented = false\n\n onNavigate({\n preventDefault: () => {\n isDefaultPrevented = true\n },\n })\n\n if (isDefaultPrevented) {\n return\n }\n }\n\n const { navigate } =\n // TODO(browser-variant): migrate to a .ts/.browser.ts split so the browser bundle drops the server branch; see scripts/generate-browser-variant-aliases.mjs\n // ast-grep-ignore: no-typeof-window-require-tsx\n require('../components/navigator') as typeof import('../components/navigator')\n\n navigate(\n href,\n replace ? 'replace' : 'push',\n scroll === false ? ScrollBehavior.NoScroll : ScrollBehavior.Default,\n linkInstanceRef.current,\n transitionTypes,\n prefetchIntent\n )\n }\n}\n\nfunction formatStringOrUrl(urlObjOrString: UrlObject | string): string {\n if (typeof urlObjOrString === 'string') {\n return urlObjOrString\n }\n\n return formatUrl(urlObjOrString)\n}\n\n/**\n * A React component that extends the HTML `` element to provide\n * [prefetching](https://nextjs.org/docs/app/building-your-application/routing/linking-and-navigating#2-prefetching)\n * and client-side navigation. This is the primary way to navigate between routes in Next.js.\n *\n * @remarks\n * - Prefetching is only enabled in production.\n *\n * @see https://nextjs.org/docs/app/api-reference/components/link\n */\nexport default function LinkComponent(\n props: LinkProps & {\n children: React.ReactNode\n ref: React.Ref\n }\n) {\n const [linkStatus, setOptimisticLinkStatus] = useOptimistic(IDLE_LINK_STATUS)\n\n let children: React.ReactNode\n\n const linkInstanceRef = useRef(null)\n\n const {\n href: hrefProp,\n as: asProp,\n children: childrenProp,\n prefetch: prefetchProp = null,\n passHref,\n replace,\n shallow,\n scroll,\n onClick,\n onMouseEnter: onMouseEnterProp,\n onTouchStart: onTouchStartProp,\n legacyBehavior = false,\n onNavigate,\n transitionTypes,\n ref: forwardedRef,\n unstable_dynamicOnHover,\n ...restProps\n } = props\n\n children = childrenProp\n\n if (\n legacyBehavior &&\n (typeof children === 'string' || typeof children === 'number')\n ) {\n children = {children}\n }\n\n const router = React.useContext(AppRouterContext)\n\n const prefetchEnabled = prefetchProp !== false\n const prefetchIntent: RouterTransitionPrefetchIntent =\n prefetchProp === false ? 'none' : prefetchProp === true ? 'full' : 'auto'\n\n const fetchStrategy =\n prefetchIntent !== 'none'\n ? getFetchStrategyFromPrefetchIntent(prefetchIntent)\n : // TODO: it makes no sense to assign a fetchStrategy when prefetching is disabled.\n FetchStrategy.PPR\n\n if (process.env.NODE_ENV !== 'production') {\n function createPropError(args: {\n key: string\n expected: string\n actual: string\n }) {\n return new Error(\n `Failed prop type: The prop \\`${args.key}\\` expects a ${args.expected} in \\`\\`, but got \\`${args.actual}\\` instead.` +\n (typeof window !== 'undefined'\n ? \"\\nOpen your browser's console to view the Component stack trace.\"\n : '')\n )\n }\n\n // TypeScript trick for type-guarding:\n const requiredPropsGuard: Record = {\n href: true,\n } as const\n const requiredProps: LinkPropsRequired[] = Object.keys(\n requiredPropsGuard\n ) as LinkPropsRequired[]\n requiredProps.forEach((key: LinkPropsRequired) => {\n if (key === 'href') {\n if (\n props[key] == null ||\n (typeof props[key] !== 'string' && typeof props[key] !== 'object')\n ) {\n throw createPropError({\n key,\n expected: '`string` or `object`',\n actual: props[key] === null ? 'null' : typeof props[key],\n })\n }\n } else {\n // TypeScript trick for type-guarding:\n const _: never = key\n }\n })\n\n // TypeScript trick for type-guarding:\n const optionalPropsGuard: Record = {\n as: true,\n replace: true,\n scroll: true,\n shallow: true,\n passHref: true,\n prefetch: true,\n unstable_dynamicOnHover: true,\n onClick: true,\n onMouseEnter: true,\n onTouchStart: true,\n legacyBehavior: true,\n onNavigate: true,\n transitionTypes: true,\n } as const\n const optionalProps: LinkPropsOptional[] = Object.keys(\n optionalPropsGuard\n ) as LinkPropsOptional[]\n optionalProps.forEach((key: LinkPropsOptional) => {\n const valType = typeof props[key]\n\n if (key === 'as') {\n if (props[key] && valType !== 'string' && valType !== 'object') {\n throw createPropError({\n key,\n expected: '`string` or `object`',\n actual: valType,\n })\n }\n } else if (\n key === 'onClick' ||\n key === 'onMouseEnter' ||\n key === 'onTouchStart' ||\n key === 'onNavigate'\n ) {\n if (props[key] && valType !== 'function') {\n throw createPropError({\n key,\n expected: '`function`',\n actual: valType,\n })\n }\n } else if (\n key === 'replace' ||\n key === 'scroll' ||\n key === 'shallow' ||\n key === 'passHref' ||\n key === 'legacyBehavior' ||\n key === 'unstable_dynamicOnHover'\n ) {\n if (props[key] != null && valType !== 'boolean') {\n throw createPropError({\n key,\n expected: '`boolean`',\n actual: valType,\n })\n }\n } else if (key === 'prefetch') {\n if (\n props[key] != null &&\n valType !== 'boolean' &&\n props[key] !== 'auto'\n ) {\n throw createPropError({\n key,\n expected: '`boolean | \"auto\"`',\n actual: valType,\n })\n }\n } else if (key === 'transitionTypes') {\n if (props[key] != null && !Array.isArray(props[key])) {\n throw createPropError({\n key,\n expected: '`string[]`',\n actual: valType,\n })\n }\n } else {\n // TypeScript trick for type-guarding:\n const _: never = key\n }\n })\n }\n\n const resolvedHref = asProp || hrefProp\n const formattedHref = formatStringOrUrl(resolvedHref)\n\n if (process.env.NODE_ENV !== 'production') {\n const { warnOnce } =\n require('../../shared/lib/utils/warn-once') as typeof import('../../shared/lib/utils/warn-once')\n if (props.locale) {\n warnOnce(\n 'The `locale` prop is not supported in `next/link` while using the `app` router. Read more about app router internalization: https://nextjs.org/docs/app/building-your-application/routing/internationalization'\n )\n }\n if (!asProp) {\n let href: string | undefined\n if (typeof resolvedHref === 'string') {\n href = resolvedHref\n } else if (\n typeof resolvedHref === 'object' &&\n typeof resolvedHref.pathname === 'string'\n ) {\n href = resolvedHref.pathname\n }\n\n if (href) {\n const hasDynamicSegment = href\n .split('/')\n .some((segment) => segment.startsWith('[') && segment.endsWith(']'))\n\n if (hasDynamicSegment) {\n throw new Error(\n `Dynamic href \\`${href}\\` found in while using the \\`/app\\` router, this is not supported. Read more: https://nextjs.org/docs/messages/app-dir-dynamic-href`\n )\n }\n }\n }\n }\n\n // This will return the first child, if multiple are provided it will throw an error\n let child: any\n if (legacyBehavior) {\n if ((children as any)?.$$typeof === Symbol.for('react.lazy')) {\n throw new Error(\n `\\`\\` received a direct child that is either a Server Component, or JSX that was loaded with React.lazy(). This is not supported. Either remove legacyBehavior, or make the direct child a Client Component that renders the Link's \\`\\` tag.`\n )\n }\n\n if (process.env.NODE_ENV === 'development') {\n if (onClick) {\n console.warn(\n `\"onClick\" was passed to with \\`href\\` of \\`${formattedHref}\\` but \"legacyBehavior\" was set. The legacy behavior requires onClick be set on the child of next/link`\n )\n }\n if (onMouseEnterProp) {\n console.warn(\n `\"onMouseEnter\" was passed to with \\`href\\` of \\`${formattedHref}\\` but \"legacyBehavior\" was set. The legacy behavior requires onMouseEnter be set on the child of next/link`\n )\n }\n try {\n child = React.Children.only(children)\n } catch (err) {\n if (!children) {\n throw new Error(\n `No children were passed to with \\`href\\` of \\`${formattedHref}\\` but one child is required https://nextjs.org/docs/messages/link-no-children`\n )\n }\n throw new Error(\n `Multiple children were passed to with \\`href\\` of \\`${formattedHref}\\` but only one child is supported https://nextjs.org/docs/messages/link-multiple-children` +\n (typeof window !== 'undefined'\n ? \" \\nOpen your browser's console to view the Component stack trace.\"\n : '')\n )\n }\n } else {\n child = React.Children.only(children)\n }\n } else {\n if (process.env.NODE_ENV === 'development') {\n if ((children as any)?.type === 'a') {\n throw new Error(\n 'Invalid with child. Please remove or use .\\nLearn more: https://nextjs.org/docs/messages/invalid-new-link-with-extra-anchor'\n )\n }\n }\n }\n\n const childRef: any = legacyBehavior\n ? child && typeof child === 'object' && child.ref\n : forwardedRef\n\n // Capture the Owner Stack during render so dev-only warnings emitted later\n // at navigation time can be associated with the JSX that created\n // this .\n const ownerStack =\n process.env.NODE_ENV !== 'production' && process.env.__NEXT_CACHE_COMPONENTS\n ? // eslint-disable-next-line react-hooks/rules-of-hooks -- build time variables\n React.useMemo(() => {\n // Only capture when a warning might actually need it. Otherwise leave\n // it `undefined` so consumers can detect the opt-out and degrade\n // gracefully.\n if (fetchStrategy === FetchStrategy.Full) {\n return React.captureOwnerStack()\n }\n return undefined\n }, [fetchStrategy])\n : undefined\n\n // Use a callback ref to attach an IntersectionObserver to the anchor tag on\n // mount. In the future we will also use this to keep track of all the\n // currently mounted instances, e.g. so we can re-prefetch them after\n // a revalidation or refresh.\n const observeLinkVisibilityOnMount = React.useCallback(\n (element: HTMLAnchorElement | SVGAElement) => {\n if (router !== null) {\n linkInstanceRef.current = mountLinkInstance(\n element,\n formattedHref,\n router,\n fetchStrategy,\n prefetchEnabled,\n setOptimisticLinkStatus,\n ownerStack\n )\n }\n\n return () => {\n if (linkInstanceRef.current) {\n unmountLinkForCurrentNavigation(linkInstanceRef.current)\n linkInstanceRef.current = null\n }\n unmountPrefetchableInstance(element)\n }\n },\n [\n prefetchEnabled,\n formattedHref,\n router,\n fetchStrategy,\n setOptimisticLinkStatus,\n ownerStack,\n ]\n )\n\n const mergedRef = useMergedRef(observeLinkVisibilityOnMount, childRef)\n\n const childProps: {\n onTouchStart?: React.TouchEventHandler\n onMouseEnter: React.MouseEventHandler\n onClick: React.MouseEventHandler\n href?: string\n ref?: any\n } = {\n ref: mergedRef,\n onClick(e) {\n if (process.env.NODE_ENV !== 'production') {\n if (!e) {\n throw new Error(\n `Component rendered inside next/link has to pass click event to \"onClick\" prop.`\n )\n }\n }\n\n if (!legacyBehavior && typeof onClick === 'function') {\n onClick(e)\n }\n\n if (\n legacyBehavior &&\n child.props &&\n typeof child.props.onClick === 'function'\n ) {\n child.props.onClick(e)\n }\n\n if (!router) {\n return\n }\n if (e.defaultPrevented) {\n return\n }\n linkClicked(\n e,\n formattedHref,\n linkInstanceRef,\n replace,\n scroll,\n onNavigate,\n transitionTypes,\n prefetchIntent\n )\n },\n onMouseEnter(e) {\n if (!legacyBehavior && typeof onMouseEnterProp === 'function') {\n onMouseEnterProp(e)\n }\n\n if (\n legacyBehavior &&\n child.props &&\n typeof child.props.onMouseEnter === 'function'\n ) {\n child.props.onMouseEnter(e)\n }\n\n if (!router) {\n return\n }\n if (!prefetchEnabled || process.env.NODE_ENV === 'development') {\n return\n }\n\n const upgradeToDynamicPrefetch = unstable_dynamicOnHover === true\n onNavigationIntent(\n e.currentTarget as HTMLAnchorElement | SVGAElement,\n upgradeToDynamicPrefetch\n )\n },\n onTouchStart: process.env.__NEXT_LINK_NO_TOUCH_START\n ? undefined\n : function onTouchStart(e) {\n if (!legacyBehavior && typeof onTouchStartProp === 'function') {\n onTouchStartProp(e)\n }\n\n if (\n legacyBehavior &&\n child.props &&\n typeof child.props.onTouchStart === 'function'\n ) {\n child.props.onTouchStart(e)\n }\n\n if (!router) {\n return\n }\n if (!prefetchEnabled) {\n return\n }\n\n const upgradeToDynamicPrefetch = unstable_dynamicOnHover === true\n onNavigationIntent(\n e.currentTarget as HTMLAnchorElement | SVGAElement,\n upgradeToDynamicPrefetch\n )\n },\n }\n\n // If the url is absolute, we can bypass the logic to prepend the basePath.\n if (isAbsoluteUrl(formattedHref)) {\n childProps.href = formattedHref\n } else if (\n !legacyBehavior ||\n passHref ||\n (child.type === 'a' && !('href' in child.props))\n ) {\n childProps.href = addBasePath(formattedHref)\n }\n\n let link: React.ReactNode\n\n if (legacyBehavior) {\n if (process.env.NODE_ENV === 'development') {\n const { errorOnce } =\n require('../../shared/lib/utils/error-once') as typeof import('../../shared/lib/utils/error-once')\n errorOnce(\n '`legacyBehavior` is deprecated and will be removed in a future ' +\n 'release. A codemod is available to upgrade your components:\\n\\n' +\n 'npx @next/codemod@latest new-link .\\n\\n' +\n 'Learn more: https://nextjs.org/docs/app/building-your-application/upgrading/codemods#remove-a-tags-from-link-components'\n )\n }\n link = React.cloneElement(child, childProps)\n } else {\n link = (\n \n {children}\n \n )\n }\n\n return (\n \n {link}\n \n )\n}\n\nconst LinkStatusContext = createContext<\n typeof PENDING_LINK_STATUS | typeof IDLE_LINK_STATUS\n>(IDLE_LINK_STATUS)\n\nexport const useLinkStatus = () => {\n return useContext(LinkStatusContext)\n}\n\nfunction getFetchStrategyFromPrefetchIntent(\n prefetchIntent: Exclude\n): PrefetchTaskFetchStrategy {\n if (process.env.__NEXT_CACHE_COMPONENTS) {\n if (prefetchIntent === 'full') {\n return FetchStrategy.Full\n }\n\n // `\"auto\"`: the default mode, where we will prefetch partially if the link is in the viewport.\n prefetchIntent satisfies 'auto'\n return FetchStrategy.PPR\n } else {\n return prefetchIntent === 'auto'\n ? // We default to PPR, and we'll discover whether or not the route supports it with the initial prefetch.\n FetchStrategy.PPR\n : // In the old implementation without runtime prefetches, `prefetch={true}` (`'full'`) forces all dynamic\n // data to be prefetched, preserving backwards-compatibility.\n FetchStrategy.Full\n }\n}\n","import type { ComponentProps } from 'react'\nimport ClientLinkComponent, { type LinkProps, useLinkStatus } from './link'\n\nexport default function LinkComponent(\n props: ComponentProps\n) {\n const isLegacyBehavior = props.legacyBehavior\n const childIsHostComponent =\n typeof props.children === 'string' ||\n typeof props.children === 'number' ||\n typeof (props.children as any)?.type === 'string'\n const childIsClientComponent =\n (props.children as any)?.type?.$$typeof ===\n Symbol.for('react.client.reference')\n\n if (isLegacyBehavior && !childIsHostComponent && !childIsClientComponent) {\n if ((props.children as any)?.type?.$$typeof === Symbol.for('react.lazy')) {\n console.error(\n `Using a Lazy Component as a direct child of \\`\\` from a Server Component is not supported. If you need legacyBehavior, wrap your Lazy Component in a Client Component that renders the Link's \\`\\` tag.`\n )\n } else {\n console.error(\n `Using a Server Component as a direct child of \\`\\` is not supported. If you need legacyBehavior, wrap your Server Component in a Client Component that renders the Link's \\`\\` tag.`\n )\n }\n }\n\n return \n}\n\nexport { type LinkProps, useLinkStatus }\n","// This file is generated by next-core EcmascriptClientReferenceModule.\nconst { createClientModuleProxy } = require(\"react-server-dom-turbopack/server\");\n\n__turbopack_context__.n(createClientModuleProxy(\"[project]/node_modules/next/dist/client/app-dir/link.js\"));\n"],"names":["HomePage","params","locale","t","namespace","catalogHref","className","href","variant","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","_interop_require_wildcard","obj","__esModule","default","cache","has","get","newObj","__proto__","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","exports","_","LinkComponent","useLinkStatus","isModifiedEvent","event","eventTarget","currentTarget","target","getAttribute","metaKey","ctrlKey","shiftKey","altKey","nativeEvent","which","linkClicked","e","linkInstanceRef","replace","scroll","onNavigate","transitionTypes","prefetchIntent","window","nodeName","isAnchorNodeName","toUpperCase","hasAttribute","isLocalURL","preventDefault","location","isDefaultPrevented","navigate","require","ScrollBehavior","NoScroll","Default","current","formatStringOrUrl","urlObjOrString","formatUrl","props","linkStatus","setOptimisticLinkStatus","useOptimistic","IDLE_LINK_STATUS","children","useRef","hrefProp","as","asProp","childrenProp","prefetch","prefetchProp","passHref","shallow","onClick","onMouseEnter","onMouseEnterProp","onTouchStart","onTouchStartProp","legacyBehavior","ref","forwardedRef","unstable_dynamicOnHover","restProps","a","router","React","useContext","AppRouterContext","prefetchEnabled","fetchStrategy","getFetchStrategyFromPrefetchIntent","FetchStrategy","PPR","process","env","NODE_ENV","createPropError","args","Error","expected","actual","requiredPropsGuard","requiredProps","keys","forEach","optionalPropsGuard","optionalProps","valType","Array","isArray","resolvedHref","formattedHref","warnOnce","pathname","hasDynamicSegment","split","some","segment","startsWith","endsWith","child","$$typeof","Symbol","for","console","warn","Children","only","err","type","childRef","ownerStack","__NEXT_CACHE_COMPONENTS","useMemo","Full","captureOwnerStack","undefined","observeLinkVisibilityOnMount","useCallback","element","mountLinkInstance","unmountLinkForCurrentNavigation","unmountPrefetchableInstance","mergedRef","useMergedRef","childProps","defaultPrevented","upgradeToDynamicPrefetch","onNavigationIntent","__NEXT_LINK_NO_TOUCH_START","isAbsoluteUrl","addBasePath","link","errorOnce","cloneElement","LinkStatusContext","Provider","value","createContext","isLegacyBehavior","childIsHostComponent","childIsClientComponent","error","ClientLinkComponent","createClientModuleProxy","__turbopack_context__","n"],"mappings":"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","ignoreList":[1,3,4]} \ No newline at end of file diff --git a/e-commerce/.next/server/chunks/ssr/_next-internal_server_app_[locale]_page_actions_0paeoq307w67j.js b/e-commerce/.next/server/chunks/ssr/_next-internal_server_app_[locale]_page_actions_0paeoq307w67j.js new file mode 100644 index 0000000000000000000000000000000000000000..8b21d6505158ac62711e9496a191ee3c25c56af5 --- /dev/null +++ b/e-commerce/.next/server/chunks/ssr/_next-internal_server_app_[locale]_page_actions_0paeoq307w67j.js @@ -0,0 +1,3 @@ +module.exports=[54710,(a,b,c)=>{}]; + +//# sourceMappingURL=_next-internal_server_app_%5Blocale%5D_page_actions_0paeoq307w67j.js.map \ No newline at end of file diff --git a/e-commerce/.next/server/chunks/ssr/_next-internal_server_app_[locale]_page_actions_0paeoq307w67j.js.map b/e-commerce/.next/server/chunks/ssr/_next-internal_server_app_[locale]_page_actions_0paeoq307w67j.js.map new file mode 100644 index 0000000000000000000000000000000000000000..a464c6732ec9fa9ef5cf78917d42f90f2200eb58 --- /dev/null +++ b/e-commerce/.next/server/chunks/ssr/_next-internal_server_app_[locale]_page_actions_0paeoq307w67j.js.map @@ -0,0 +1 @@ +{"version":3,"sources":[],"names":[],"mappings":""} \ No newline at end of file diff --git a/e-commerce/.next/server/chunks/ssr/_next-internal_server_app__global-error_page_actions_0zi5s8-psc_d2.js b/e-commerce/.next/server/chunks/ssr/_next-internal_server_app__global-error_page_actions_0zi5s8-psc_d2.js new file mode 100644 index 0000000000000000000000000000000000000000..094faad5a0f421069146ad68bc4ecffb36153a41 --- /dev/null +++ b/e-commerce/.next/server/chunks/ssr/_next-internal_server_app__global-error_page_actions_0zi5s8-psc_d2.js @@ -0,0 +1,3 @@ +module.exports=[51033,(a,b,c)=>{}]; + +//# sourceMappingURL=_next-internal_server_app__global-error_page_actions_0zi5s8-psc_d2.js.map \ No newline at end of file diff --git a/e-commerce/.next/server/chunks/ssr/_next-internal_server_app__global-error_page_actions_0zi5s8-psc_d2.js.map b/e-commerce/.next/server/chunks/ssr/_next-internal_server_app__global-error_page_actions_0zi5s8-psc_d2.js.map new file mode 100644 index 0000000000000000000000000000000000000000..a464c6732ec9fa9ef5cf78917d42f90f2200eb58 --- /dev/null +++ b/e-commerce/.next/server/chunks/ssr/_next-internal_server_app__global-error_page_actions_0zi5s8-psc_d2.js.map @@ -0,0 +1 @@ +{"version":3,"sources":[],"names":[],"mappings":""} \ No newline at end of file diff --git a/e-commerce/.next/server/chunks/ssr/_next-internal_server_app__not-found_page_actions_0pt47yrisjoev.js b/e-commerce/.next/server/chunks/ssr/_next-internal_server_app__not-found_page_actions_0pt47yrisjoev.js new file mode 100644 index 0000000000000000000000000000000000000000..ea4492bbc75820fca43dca6cf8aa3625e0d9cc99 --- /dev/null +++ b/e-commerce/.next/server/chunks/ssr/_next-internal_server_app__not-found_page_actions_0pt47yrisjoev.js @@ -0,0 +1,3 @@ +module.exports=[57665,(a,b,c)=>{}]; + +//# sourceMappingURL=_next-internal_server_app__not-found_page_actions_0pt47yrisjoev.js.map \ No newline at end of file diff --git a/e-commerce/.next/server/chunks/ssr/_next-internal_server_app__not-found_page_actions_0pt47yrisjoev.js.map b/e-commerce/.next/server/chunks/ssr/_next-internal_server_app__not-found_page_actions_0pt47yrisjoev.js.map new file mode 100644 index 0000000000000000000000000000000000000000..a464c6732ec9fa9ef5cf78917d42f90f2200eb58 --- /dev/null +++ b/e-commerce/.next/server/chunks/ssr/_next-internal_server_app__not-found_page_actions_0pt47yrisjoev.js.map @@ -0,0 +1 @@ +{"version":3,"sources":[],"names":[],"mappings":""} \ No newline at end of file diff --git a/e-commerce/.next/server/chunks/ssr/_next-internal_server_app_page_actions_0hhsz1jew5ls7.js b/e-commerce/.next/server/chunks/ssr/_next-internal_server_app_page_actions_0hhsz1jew5ls7.js new file mode 100644 index 0000000000000000000000000000000000000000..f97854058e3ca877cb01400d594cbc4d3022be3d --- /dev/null +++ b/e-commerce/.next/server/chunks/ssr/_next-internal_server_app_page_actions_0hhsz1jew5ls7.js @@ -0,0 +1,3 @@ +module.exports=[49901,(a,b,c)=>{}]; + +//# sourceMappingURL=_next-internal_server_app_page_actions_0hhsz1jew5ls7.js.map \ No newline at end of file diff --git a/e-commerce/.next/server/chunks/ssr/_next-internal_server_app_page_actions_0hhsz1jew5ls7.js.map b/e-commerce/.next/server/chunks/ssr/_next-internal_server_app_page_actions_0hhsz1jew5ls7.js.map new file mode 100644 index 0000000000000000000000000000000000000000..a464c6732ec9fa9ef5cf78917d42f90f2200eb58 --- /dev/null +++ b/e-commerce/.next/server/chunks/ssr/_next-internal_server_app_page_actions_0hhsz1jew5ls7.js.map @@ -0,0 +1 @@ +{"version":3,"sources":[],"names":[],"mappings":""} \ No newline at end of file diff --git a/e-commerce/.next/server/chunks/ssr/app_[locale]_catalog_category_[slug]_page_tsx_0939vipbtohsa._.js b/e-commerce/.next/server/chunks/ssr/app_[locale]_catalog_category_[slug]_page_tsx_0939vipbtohsa._.js new file mode 100644 index 0000000000000000000000000000000000000000..6285c0d9e5c19459f922f964db11cda9b5e691a7 --- /dev/null +++ b/e-commerce/.next/server/chunks/ssr/app_[locale]_catalog_category_[slug]_page_tsx_0939vipbtohsa._.js @@ -0,0 +1,3 @@ +module.exports=[82036,a=>{"use strict";var b=a.i(7997);a.i(70396);var c=a.i(73727),d=a.i(95936),e=a.i(32776),f=a.i(13743),g=a.i(43917),h=a.i(29171),i=a.i(40088),j=a.i(31778),k=a.i(15545),k=k,l=a.i(99749),m=a.i(20931),n=a.i(22886),o=a.i(93321),p=a.i(40110),q=a.i(11884);async function r(){return q.V.flatMap(a=>[{locale:a,slug:"men-tshirts"}])}async function s({params:a}){let{locale:b,slug:c}=await a,d=null!=b&&""!==b&&q.V.includes(b)?b:q.J,[f]=await j.f.select().from(k.categories).where((0,o.u)(k.categories.slug,c)).limit(1),g=f?"bn"===d?f.nameBn:f.nameEn:c,h=await (0,e.f)({locale:d,namespace:"catalog"});return{title:h("category.metaTitle",{title:g}),description:h("category.metaDescription")}}async function t({params:a}){let{locale:r,slug:s}=await a,u=null!=r&&""!==r&&q.V.includes(r)?r:q.J,v=await (0,e.f)({locale:u,namespace:"catalog"}),[w]=await j.f.select().from(k.categories).where((0,o.u)(k.categories.slug,s)).limit(1);w||(0,c.notFound)();let x="bn"===u?w.nameBn:w.nameEn,y=await j.f.select({product:l.f.products,variant:m.f.variants,inventory:n.f.inventory}).from(l.f.products).leftJoin(m.f.variants,(0,o.b)((0,o.u)(m.f.variants.productId,l.f.products.id),(0,o.u)(m.f.variants.isActive,!0))).leftJoin(n.f.inventory,(0,o.u)(n.f.inventory.variantId,m.f.variants.id)).where((0,o.b)((0,o.u)(l.f.products.status,"active"),(0,o.u)(l.f.products.categoryId,w.id))).limit(50),z=new Set;for(let a of y)a.variant&&a.inventory&&a.variant.isActive&&a.inventory.quantity-a.inventory.reserved>0&&z.add(a.product.id);let A=y.filter(a=>z.has(a.product.id)),B=new Map;for(let a of A)B.has(a.product.id)||B.set(a.product.id,{product:a.product,variant:a.variant,inventory:a.inventory});return(0,b.jsxs)("div",{className:"flex flex-col gap-6",children:[(0,b.jsx)("div",{className:"flex items-center gap-4 text-sm text-muted-foreground",children:(0,b.jsxs)(d.default,{href:`/${u}`,className:"inline-flex items-center gap-1",children:[(0,b.jsx)(f.f,{className:"h-4 w-4"}),v("back")]})}),(0,b.jsxs)("div",{className:"space-y-4",children:[" ",(0,b.jsx)("h1",{className:"text-3xl font-bold tracking-tight",children:x}),(0,b.jsx)("p",{className:"text-muted-foreground",children:v("category.hero")})]}),0===B.size?(0,b.jsx)("div",{className:"text-muted-foreground",children:v("category.empty")}):(0,b.jsx)("div",{className:"grid gap-4 sm:grid-cols-2",children:Array.from(B.values()).map(({product:a,variant:c,inventory:e})=>{let f="bn"===u?a.titleBn:a.titleEn,j=e?e.quantity-e.reserved:0;return(0,b.jsxs)(h.N,{children:[(0,b.jsxs)(h.Y,{children:[(0,b.jsx)(h.v,{className:"text-lg",children:f}),a.hsn&&(0,b.jsx)(h.u,{className:"flex items-center gap-2",children:(0,b.jsxs)(i.f,{variant:"secondary",children:["HSN ",a.hsn]})})]}),(0,b.jsxs)(h.O,{className:"space-y-3",children:[(0,b.jsx)("div",{className:"text-xl font-semibold",children:(0,p.f)(a.basePriceRupees,"bn"===u?"bn":"en",{showSymbol:!0})}),(0,b.jsx)("div",{className:"text-sm text-muted-foreground",children:j>0?`${j} ${v("units")}`:v("outOfStock")}),(0,b.jsx)(d.default,{href:`/${u}/products/${a.slug}`,className:"block",children:(0,b.jsx)(g.f,{className:"w-full",children:v("product.view")})})]})]},a.id)})}),(0,b.jsx)("div",{className:"text-sm text-muted-foreground text-center",children:v("category.footer")})]})}a.s(["default",0,t,"generateMetadata",0,s,"generateStaticParams",0,r],82036)},2781,function(a){a.n(a.i(82036))}]; + +//# sourceMappingURL=app_%5Blocale%5D_catalog_category_%5Bslug%5D_page_tsx_0939vipbtohsa._.js.map \ No newline at end of file diff --git a/e-commerce/.next/server/chunks/ssr/app_[locale]_catalog_category_[slug]_page_tsx_0939vipbtohsa._.js.map b/e-commerce/.next/server/chunks/ssr/app_[locale]_catalog_category_[slug]_page_tsx_0939vipbtohsa._.js.map new file mode 100644 index 0000000000000000000000000000000000000000..c1a660b88499ae33bc3f8f9c5bc18ed07f416c2d --- /dev/null +++ b/e-commerce/.next/server/chunks/ssr/app_[locale]_catalog_category_[slug]_page_tsx_0939vipbtohsa._.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../app/%5Blocale%5D/catalog/category/%5Bslug%5D/page.tsx"],"sourcesContent":["import { notFound } from \"next/navigation\";\nimport Link from \"next/link\";\nimport { getTranslations } from \"next-intl/server\";\nimport { ArrowLeft } from \"lucide-react\";\nimport { Button } from \"@/components/ui/button\";\nimport { Card, CardContent, CardDescription, CardHeader, CardTitle } from \"@/components/ui/card\";\nimport { Badge } from \"@/components/ui/badge\";\nimport type { Metadata } from \"next\";\nimport { db, schema } from \"@/db\";\nimport { eq, and, gt, isNull } from \"drizzle-orm\";\nimport { formatINR } from \"@/lib/format-inr\";\nimport { rupees } from \"@/lib/money\";\nimport type { Locale } from \"@/i18n/routing\";\nimport { locales, defaultLocale } from \"@/i18n/routing\";\n\ntype Props = {\n params: Promise<{ locale: string; slug: string }>;\n};\n\nexport async function generateStaticParams() {\n return locales.flatMap((locale) => [\n { locale, slug: \"men-tshirts\" },\n ]);\n}\n\nexport async function generateMetadata({ params }: { params: Promise<{ locale: string; slug: string }> }): Promise {\n const { locale, slug } = await params;\n const resolvedLocale: Locale =\n locale != null && locale !== \"\" && locales.includes(locale as Locale)\n ? (locale as Locale)\n : defaultLocale;\n const [categoryMeta] = await db\n .select()\n .from(schema.categories)\n .where(eq(schema.categories.slug, slug))\n .limit(1);\n const metaCategoryName = categoryMeta ? (resolvedLocale === \"bn\" ? categoryMeta.nameBn : categoryMeta.nameEn) : slug;\n const t = await getTranslations({ locale: resolvedLocale, namespace: \"catalog\" });\n return {\n title: t(\"category.metaTitle\", { title: metaCategoryName }),\n description: t(\"category.metaDescription\"),\n };\n}\n\nexport default async function CategoryPage({ params }: Props) {\n const { locale, slug } = await params;\n const resolvedLocale: Locale =\n locale != null && locale !== \"\" && locales.includes(locale as Locale)\n ? (locale as Locale)\n : defaultLocale;\n\n const t = await getTranslations({ locale: resolvedLocale, namespace: \"catalog\" });\n\n const [category] = await db\n .select()\n .from(schema.categories)\n .where(eq(schema.categories.slug, slug))\n .limit(1);\n\n if (!category) {\n notFound();\n }\n\n const categoryName = resolvedLocale === \"bn\" ? category.nameBn : category.nameEn;\n\n // Active products: status='active' and at least one active variant with stock.\n const products = await db\n .select({\n product: schema.products,\n variant: schema.variants,\n inventory: schema.inventory,\n })\n .from(schema.products)\n .leftJoin(schema.variants, and(eq(schema.variants.productId, schema.products.id), eq(schema.variants.isActive, true)))\n .leftJoin(schema.inventory, eq(schema.inventory.variantId, schema.variants.id))\n .where(\n and(\n eq(schema.products.status, \"active\"),\n eq(schema.products.categoryId, category.id)\n )\n )\n .limit(50);\n\n // Filter to products that have at least one active variant with stock.\n const inStockProductIds = new Set();\n for (const row of products) {\n if (row.variant && row.inventory && row.variant.isActive && row.inventory.quantity - row.inventory.reserved > 0) {\n inStockProductIds.add(row.product.id);\n }\n }\n\n const listedProducts = products.filter((row) => inStockProductIds.has(row.product.id));\n\n // Build a unique product list with a representative variant price/stock.\n const productMap = new Map();\n for (const row of listedProducts) {\n if (!productMap.has(row.product.id)) {\n productMap.set(row.product.id, { product: row.product, variant: row.variant, inventory: row.inventory });\n }\n }\n\n return (\n
\n
\n \n \n {t(\"back\")}\n \n
\n\n

{categoryName}

\n\n\n\n

{t(\"category.hero\")}

\n
\n\n {productMap.size === 0 ? (\n
{t(\"category.empty\")}
\n ) : (\n
\n {Array.from(productMap.values()).map(({ product, variant, inventory }) => {\n const title = resolvedLocale === \"bn\" ? product.titleBn : product.titleEn;\n const available = inventory ? inventory.quantity - inventory.reserved : 0;\n return (\n \n \n {title}\n {product.hsn && (\n \n HSN {product.hsn}\n \n )}\n \n \n
{formatINR(product.basePriceRupees, resolvedLocale === \"bn\" ? \"bn\" : \"en\", { showSymbol: true })}
\n
\n {available > 0 ? `${available} ${t(\"units\")}` : t(\"outOfStock\")}\n
\n \n \n \n
\n
\n );\n })}\n
\n )}\n\n
\n {t(\"category.footer\")}\n
\n
\n );\n}\n"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/e-commerce/.next/server/chunks/ssr/app_[locale]_catalog_product_[slug]_page_tsx_05lombu12vunw._.js b/e-commerce/.next/server/chunks/ssr/app_[locale]_catalog_product_[slug]_page_tsx_05lombu12vunw._.js new file mode 100644 index 0000000000000000000000000000000000000000..1d0384699a345e0d17455603b3c361784922bd06 --- /dev/null +++ b/e-commerce/.next/server/chunks/ssr/app_[locale]_catalog_product_[slug]_page_tsx_05lombu12vunw._.js @@ -0,0 +1,3 @@ +module.exports=[33644,a=>{"use strict";var b=a.i(7997);a.i(70396);var c=a.i(73727),d=a.i(95936),e=a.i(32776),f=a.i(13743),g=a.i(43917),h=a.i(29171),i=a.i(40088),j=a.i(31778),k=a.i(99749),l=a.i(20931),m=a.i(22886),n=a.i(93321),o=a.i(40110),p=a.i(11884);async function q(){let a=["classic-crew-neck-tshirt"];return p.V.flatMap(b=>a.map(a=>({locale:b,slug:a})))}async function r({params:a}){let{locale:b,slug:c}=await a,d=null!=b&&""!==b&&p.V.includes(b)?b:p.J,f=await (0,e.f)({locale:d,namespace:"catalog"});return{title:f("product.metaTitle",{title:c}),description:f("product.metaDescription")}}async function s({params:a}){let{locale:q,slug:r}=await a,t=null!=q&&""!==q&&p.V.includes(q)?q:p.J,u=await (0,e.f)({locale:t,namespace:"catalog"}),[v]=await j.f.select().from(k.f.products).where((0,n.u)(k.f.products.slug,r)).limit(1);v&&"active"===v.status||(0,c.notFound)();let w="bn"===t?v.titleBn:v.titleEn,x=v.description??"",y=await j.f.select({variant:l.f.variants,inventory:m.f.inventory}).from(l.f.variants).innerJoin(m.f.inventory,(0,n.u)(m.f.inventory.variantId,l.f.variants.id)).where((0,n.u)(l.f.variants.productId,v.id)),z=y.filter(a=>a.variant.isActive&&a.inventory.quantity-a.inventory.reserved>0),A=y.filter(a=>a.variant.isActive&&a.inventory.quantity-a.inventory.reserved<=0),B=y.reduce((a,b)=>a+b.inventory.quantity,0),C=y.reduce((a,b)=>a+b.inventory.reserved,0);return(0,b.jsxs)("div",{className:"flex flex-col gap-6",children:[(0,b.jsx)("div",{className:"flex items-center gap-4 text-sm text-muted-foreground",children:(0,b.jsxs)(d.default,{href:`/${t}/category/${(v.categoryId,"")}`,className:"inline-flex items-center gap-1",children:[(0,b.jsx)(f.f,{className:"h-4 w-4"}),u("back")]})}),(0,b.jsxs)("div",{className:"grid gap-6 md:grid-cols-2",children:[(0,b.jsxs)("div",{className:"space-y-6",children:[(0,b.jsxs)(h.N,{children:[(0,b.jsxs)(h.Y,{children:[(0,b.jsx)(h.v,{className:"text-2xl",children:w}),v.hsn&&(0,b.jsxs)(h.u,{className:"flex items-center gap-2",children:[(0,b.jsxs)(i.f,{variant:"secondary",children:["HSN ",v.hsn]}),u("hsn")]})]}),(0,b.jsxs)(h.O,{className:"space-y-4",children:[x&&(0,b.jsx)("p",{className:"text-muted-foreground",children:x}),(0,b.jsx)("div",{className:"text-2xl font-semibold",children:(0,o.f)(v.basePriceRupees,"bn"===t?"bn":"en",{showSymbol:!0})}),(0,b.jsxs)("div",{className:"text-sm text-muted-foreground",children:[u("available"),": ",B-C," ",u("units")]})]})]}),z.length>0&&(0,b.jsxs)("div",{className:"space-y-3",children:[(0,b.jsx)("h2",{className:"text-lg font-semibold",children:u("variants")}),(0,b.jsx)("div",{className:"flex flex-wrap gap-2",children:z.map(a=>{let c="bn"===t?a.variant.titleBn:a.variant.titleEn,d=a.inventory.quantity-a.inventory.reserved;return(0,b.jsxs)(i.f,{variant:"outline",className:"price-badge",children:[c," — ",(0,o.f)(a.variant.priceRupees,"bn"===t?"bn":"en",{showSymbol:!0})," · ",d>0?`${d} ${u("units")}`:u("outOfStock")]},a.variant.id)})})]})," ",A.length>0&&(0,b.jsx)("div",{className:"text-sm text-muted-foreground",children:u("variantsCount",{count:A.length})})]}),(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsx)(d.default,{href:`/${t}`,children:(0,b.jsx)(g.f,{variant:"outline",className:"w-full",children:u("buyNow")})}),(0,b.jsx)("p",{className:"text-sm text-muted-foreground text-center",children:u("shipping")})]})]})]})}a.s(["default",0,s,"dynamic",0,"force-dynamic","generateMetadata",0,r,"generateStaticParams",0,q])},2776,function(a){a.n(a.i(33644))}]; + +//# sourceMappingURL=app_%5Blocale%5D_catalog_product_%5Bslug%5D_page_tsx_05lombu12vunw._.js.map \ No newline at end of file diff --git a/e-commerce/.next/server/chunks/ssr/app_[locale]_catalog_product_[slug]_page_tsx_05lombu12vunw._.js.map b/e-commerce/.next/server/chunks/ssr/app_[locale]_catalog_product_[slug]_page_tsx_05lombu12vunw._.js.map new file mode 100644 index 0000000000000000000000000000000000000000..7d7eafbd52d29180444407aed2d7f5ec4f7c699f --- /dev/null +++ b/e-commerce/.next/server/chunks/ssr/app_[locale]_catalog_product_[slug]_page_tsx_05lombu12vunw._.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../app/%5Blocale%5D/catalog/product/%5Bslug%5D/page.tsx"],"sourcesContent":["import { notFound } from \"next/navigation\";\nimport Link from \"next/link\";\nimport { getTranslations } from \"next-intl/server\";\nimport { ArrowLeft } from \"lucide-react\";\nimport { Button } from \"@/components/ui/button\";\nimport { Card, CardContent, CardDescription, CardHeader, CardTitle } from \"@/components/ui/card\";\nimport { Badge } from \"@/components/ui/badge\";\nimport type { Metadata } from \"next\";\nimport { db, schema } from \"@/db\";\nimport { eq } from \"drizzle-orm\";\nimport { formatINR } from \"@/lib/format-inr\";\nimport { rupees } from \"@/lib/money\";\nimport type { Locale } from \"@/i18n/routing\";\nimport { locales, defaultLocale } from \"@/i18n/routing\";\n\n// Dynamic per-request product page. We use a per-segment `dynamic` here because\n// product slugs aren't enumerated at build time (and we don't want to hard-code\n// a product list in generateStaticParams). NOTE: `cacheComponents: true` in\n// next.config.ts is INCOMPATIBLE with per-segment `dynamic`, so the production\n// build needs cacheComponents OFF for this page to build. See the note in\n// next.config.ts. For dev, keep both on; for prod builds, drop cacheComponents\n// (or move this page to static via generateStaticParams over seeded slugs).\nexport const dynamic = \"force-dynamic\";\n\n\n\ntype Props = {\n params: Promise<{ locale: string; slug: string }>;\n};\n\nexport async function generateStaticParams() {\n // Static for seeded slugs only. When we add products dynamically we revisit\n // per-segment `dynamic` vs cacheComponents (see PROJECT_MEMORY §8 Phase 1 note).\n const seedSlugs = [\"classic-crew-neck-tshirt\"];\n return locales.flatMap((locale) =>\n seedSlugs.map((slug) => ({ locale, slug }))\n );\n}\n\nexport async function generateMetadata({ params }: { params: Promise<{ locale: string; slug: string }> }): Promise {\n const { locale, slug } = await params;\n const resolvedLocale: Locale =\n locale != null && locale !== \"\" && locales.includes(locale as Locale)\n ? (locale as Locale)\n : defaultLocale;\n const t = await getTranslations({ locale: resolvedLocale, namespace: \"catalog\" });\n return {\n title: t(\"product.metaTitle\", { title: slug }),\n description: t(\"product.metaDescription\"),\n };\n}\n\nexport default async function ProductPage({ params }: Props) {\n const { locale, slug } = await params;\n const resolvedLocale: Locale =\n locale != null && locale !== \"\" && locales.includes(locale as Locale)\n ? (locale as Locale)\n : defaultLocale;\n\n const t = await getTranslations({ locale: resolvedLocale, namespace: \"catalog\" });\n\n const [product] = await db\n .select()\n .from(schema.products)\n .where(eq(schema.products.slug, slug))\n .limit(1);\n\n if (!product || product.status !== \"active\") {\n notFound();\n }\n\n const title = resolvedLocale === \"bn\" ? product.titleBn : product.titleEn;\n const description = product.description ?? \"\";\n\n // Active variants with inventory\n const variants = await db\n .select({\n variant: schema.variants,\n inventory: schema.inventory,\n })\n .from(schema.variants)\n .innerJoin(schema.inventory, eq(schema.inventory.variantId, schema.variants.id))\n .where(eq(schema.variants.productId, product.id));\n\n const activeVariants = variants.filter(\n (row) => row.variant.isActive && row.inventory.quantity - row.inventory.reserved > 0\n );\n const outOfStockVariants = variants.filter(\n (row) => row.variant.isActive && row.inventory.quantity - row.inventory.reserved <= 0\n );\n\n const stockTotal = variants.reduce((sum, row) => sum + row.inventory.quantity, 0);\n const reservedTotal = variants.reduce((sum, row) => sum + row.inventory.reserved, 0);\n const availableCount = stockTotal - reservedTotal;\n\n return (\n
\n
\n \n \n {t(\"back\")}\n \n
\n\n
\n
\n \n \n {title}\n {product.hsn && (\n \n HSN {product.hsn}\n {t(\"hsn\")}\n \n )}\n \n \n {description &&

{description}

}\n\n
{formatINR(product.basePriceRupees, resolvedLocale === \"bn\" ? \"bn\" : \"en\", { showSymbol: true })}
\n\n
{t(\"available\")}: {availableCount} {t(\"units\")}
\n
\n
\n\n {activeVariants.length > 0 && (\n
\n

{t(\"variants\")}

\n
\n {activeVariants.map((row) => {\n const variantTitle =\n resolvedLocale === \"bn\" ? row.variant.titleBn : row.variant.titleEn;\n const inStock = row.inventory.quantity - row.inventory.reserved;\n return (\n \n {variantTitle}\n {\" — \"}\n {formatINR(row.variant.priceRupees, resolvedLocale === \"bn\" ? \"bn\" : \"en\", { showSymbol: true })}\n {\" · \"}\n {inStock > 0 ? `${inStock} ${t(\"units\")}` : t(\"outOfStock\")}\n \n );\n })}\n
\n
\n )} {outOfStockVariants.length > 0 && (\n
\n {t(\"variantsCount\", { count: outOfStockVariants.length })}\n
\n )}\n
\n\n
\n \n \n \n

\n {t(\"shipping\")}\n

\n
\n
\n
\n );\n}\n"],"names":["dynamic","generateStaticParams","seedSlugs","flatMap","locale","map","slug","generateMetadata","params","resolvedLocale","includes","t","namespace","title","description","ProductPage","product","select","from","products","where","limit","status","titleBn","titleEn","variants","variant","inventory","innerJoin","variantId","id","productId","activeVariants","filter","row","isActive","quantity","reserved","outOfStockVariants","stockTotal","reduce","sum","reservedTotal","availableCount","className","href","categoryId","hsn","basePriceRupees","showSymbol","length","variantTitle","inStock","priceRupees","count"],"mappings":"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"} \ No newline at end of file diff --git a/e-commerce/.next/server/chunks/ssr/messages_bn_json_[json]_cjs_03v7tempcl6vx._.js b/e-commerce/.next/server/chunks/ssr/messages_bn_json_[json]_cjs_03v7tempcl6vx._.js new file mode 100644 index 0000000000000000000000000000000000000000..985a8814d2ba7c29459a0609bf439c60992d038c --- /dev/null +++ b/e-commerce/.next/server/chunks/ssr/messages_bn_json_[json]_cjs_03v7tempcl6vx._.js @@ -0,0 +1,3 @@ +module.exports=[13234,(a,b,c)=>{b.exports={home:{title:"ই-কমার্স স্টোর",hero:"ভারত জুড়ে ডেলিভারি",lang:"বাংলা",catalog:"ক্যাটালগ",about:"সম্পর্কে"},catalog:{back:"পিছনে",hsn:"এইচএসএন",available:"উপলব্ধ",units:"টুকরো",variants:"ভেরিয়েন্ট",variantsCount:"{{count}} ভেরিয়েন্ট(গুলো)",buyNow:"এখন কিনুন",shipping:"৯৯৯ টাকার উপরে বিনামূল্য ডেলিভারি। বিকাশে পেমেন্ট সম্ভব।",product:{view:"পণ্য দেখুন",metaTitle:"{{title}} — ই-কমার্স স্টোর",metaDescription:"ভারত জুড়ে বিকাশে পেমেন্ট দিয়ে {{title}} অনলাইনে কিনুন।"},category:{view:"বিভাগ দেখুন",metaTitle:"{{title}} — ই-কমার্স স্টোর",metaDescription:"ভারত জুড়ে বিকাশে পেমেন্ট দিয়ে {{title}} এর পণ্য দেখুন।",hero:"বিভাগ অনুযায়ী দেখুন",footer:"স্টকে থাকা পণ্য দেখানো হচ্ছে। ভারত জুড়ে বিকাশে পেমেন্ট সম্ভব।",empty:"এই বিভাগে এখন কোনো পণ্য নেই।"},outOfStock:"স্টক নেই"}}}]; + +//# sourceMappingURL=messages_bn_json_%5Bjson%5D_cjs_03v7tempcl6vx._.js.map \ No newline at end of file diff --git a/e-commerce/.next/server/chunks/ssr/messages_bn_json_[json]_cjs_03v7tempcl6vx._.js.map b/e-commerce/.next/server/chunks/ssr/messages_bn_json_[json]_cjs_03v7tempcl6vx._.js.map new file mode 100644 index 0000000000000000000000000000000000000000..7348fc9a2a340d6c527d595ec7496a3305db9d9e --- /dev/null +++ b/e-commerce/.next/server/chunks/ssr/messages_bn_json_[json]_cjs_03v7tempcl6vx._.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../messages/bn.json.%5Bjson%5D.cjs/turbopack%3A///messages/bn.json"],"sourcesContent":["{\"home\":{\"title\":\"ই-কমার্স স্টোর\",\"hero\":\"ভারত জুড়ে ডেলিভারি\",\"lang\":\"বাংলা\",\"catalog\":\"ক্যাটালগ\",\"about\":\"সম্পর্কে\"},\"catalog\":{\"back\":\"পিছনে\",\"hsn\":\"এইচএসএন\",\"available\":\"উপলব্ধ\",\"units\":\"টুকরো\",\"variants\":\"ভেরিয়েন্ট\",\"variantsCount\":\"{{count}} ভেরিয়েন্ট(গুলো)\",\"buyNow\":\"এখন কিনুন\",\"shipping\":\"৯৯৯ টাকার উপরে বিনামূল্য ডেলিভারি। বিকাশে পেমেন্ট সম্ভব।\",\"product\":{\"view\":\"পণ্য দেখুন\",\"metaTitle\":\"{{title}} — ই-কমার্স স্টোর\",\"metaDescription\":\"ভারত জুড়ে বিকাশে পেমেন্ট দিয়ে {{title}} অনলাইনে কিনুন।\"},\"category\":{\"view\":\"বিভাগ দেখুন\",\"metaTitle\":\"{{title}} — ই-কমার্স স্টোর\",\"metaDescription\":\"ভারত জুড়ে বিকাশে পেমেন্ট দিয়ে {{title}} এর পণ্য দেখুন।\",\"hero\":\"বিভাগ অনুযায়ী দেখুন\",\"footer\":\"স্টকে থাকা পণ্য দেখানো হচ্ছে। ভারত জুড়ে বিকাশে পেমেন্ট সম্ভব।\",\"empty\":\"এই বিভাগে এখন কোনো পণ্য নেই।\"},\"outOfStock\":\"স্টক নেই\"}}"],"names":[],"mappings":""} \ No newline at end of file diff --git a/e-commerce/.next/server/chunks/ssr/messages_en_json_[json]_cjs_206072-e4clp3._.js b/e-commerce/.next/server/chunks/ssr/messages_en_json_[json]_cjs_206072-e4clp3._.js new file mode 100644 index 0000000000000000000000000000000000000000..f6b65c10ea243f93cb93374655afa6a8de9ee526 --- /dev/null +++ b/e-commerce/.next/server/chunks/ssr/messages_en_json_[json]_cjs_206072-e4clp3._.js @@ -0,0 +1,3 @@ +module.exports=[45983,(a,b,c)=>{b.exports={home:{title:"E-Commerce Store",hero:"Domestic shipping across India",lang:"English",catalog:"Catalog",about:"About"},catalog:{back:"Back",hsn:"HSN",available:"Available",units:"units",variants:"Variants",variantsCount:"{{count}} variant(s)",buyNow:"Buy now",shipping:"Free shipping above ₹999. COD available.",product:{view:"View product",metaTitle:"{{title}} — E-Commerce Store",metaDescription:"Shop {{title}} online with cash on delivery across India."},category:{view:"View category",metaTitle:"{{title}} — E-Commerce Store",metaDescription:"Browse {{title}} products with cash on delivery across India.",hero:"Shop by category",footer:"Showing products in stock. COD available across India.",empty:"No products in this category right now."},outOfStock:"Out of stock"}}}]; + +//# sourceMappingURL=messages_en_json_%5Bjson%5D_cjs_206072-e4clp3._.js.map \ No newline at end of file diff --git a/e-commerce/.next/server/chunks/ssr/messages_en_json_[json]_cjs_206072-e4clp3._.js.map b/e-commerce/.next/server/chunks/ssr/messages_en_json_[json]_cjs_206072-e4clp3._.js.map new file mode 100644 index 0000000000000000000000000000000000000000..4a181d64e2747e771dca2d87142aca2fcf91b2ef --- /dev/null +++ b/e-commerce/.next/server/chunks/ssr/messages_en_json_[json]_cjs_206072-e4clp3._.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../messages/en.json.%5Bjson%5D.cjs/turbopack%3A///messages/en.json"],"sourcesContent":["{\"home\":{\"title\":\"E-Commerce Store\",\"hero\":\"Domestic shipping across India\",\"lang\":\"English\",\"catalog\":\"Catalog\",\"about\":\"About\"},\"catalog\":{\"back\":\"Back\",\"hsn\":\"HSN\",\"available\":\"Available\",\"units\":\"units\",\"variants\":\"Variants\",\"variantsCount\":\"{{count}} variant(s)\",\"buyNow\":\"Buy now\",\"shipping\":\"Free shipping above ₹999. COD available.\",\"product\":{\"view\":\"View product\",\"metaTitle\":\"{{title}} — E-Commerce Store\",\"metaDescription\":\"Shop {{title}} online with cash on delivery across India.\"},\"category\":{\"view\":\"View category\",\"metaTitle\":\"{{title}} — E-Commerce Store\",\"metaDescription\":\"Browse {{title}} products with cash on delivery across India.\",\"hero\":\"Shop by category\",\"footer\":\"Showing products in stock. COD available across India.\",\"empty\":\"No products in this category right now.\"},\"outOfStock\":\"Out of stock\"}}"],"names":[],"mappings":""} \ No newline at end of file diff --git a/e-commerce/.next/server/chunks/ssr/node_modules_0dgn3fdparwxc._.js b/e-commerce/.next/server/chunks/ssr/node_modules_0dgn3fdparwxc._.js new file mode 100644 index 0000000000000000000000000000000000000000..3a1c29afc756545a152d358cd1b8f82178b47581 --- /dev/null +++ b/e-commerce/.next/server/chunks/ssr/node_modules_0dgn3fdparwxc._.js @@ -0,0 +1,3 @@ +(()=>{"use strict";module.exports=[46058,(a,b,c)=>{function d(a){if("function"!=typeof WeakMap)return null;var b=new WeakMap,c=new WeakMap;return(d=function(a){return a?c:b})(a)}c._=function(a,b){if(!b&&a&&a.__esModule)return a;if(null===a||"object"!=typeof a&&"function"!=typeof a)return{default:a};var c=d(b);if(c&&c.has(a))return c.get(a);var e={__proto__:null},f=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var g in a)if("default"!==g&&Object.prototype.hasOwnProperty.call(a,g)){var h=f?Object.getOwnPropertyDescriptor(a,g):null;h&&(h.get||h.set)?Object.defineProperty(e,g,h):e[g]=a[g]}return e.default=a,c&&c.set(a,e),e}},8591,(a,b,c)=>{Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"useMergedRef",{enumerable:!0,get:function(){return e}});let d=a.r(72131);function e(a,b){let c=(0,d.useRef)(null),e=(0,d.useRef)(null);return(0,d.useCallback)(d=>{if(null===d){let a=c.current;a&&(c.current=null,a());let b=e.current;b&&(e.current=null,b())}else a&&(c.current=f(a,d)),b&&(e.current=f(b,d))},[a,b])}function f(a,b){if("function"!=typeof a)return a.current=b,()=>{a.current=null};{let c=a(b);return"function"==typeof c?c:()=>a(null)}}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},68063,(a,b,c)=>{let d;Object.defineProperty(c,"__esModule",{value:!0});var e={getAssetToken:function(){return i},getAssetTokenQuery:function(){return j},getDeploymentId:function(){return g},getDeploymentIdQuery:function(){return h}};for(var f in e)Object.defineProperty(c,f,{enumerable:!0,get:e[f]});function g(){return d}function h(a=!1){return d?`${a?"&":"?"}dpl=${d}`:""}function i(){return!1}function j(a=!1){return""}d=void 0}]})(); + +//# sourceMappingURL=node_modules_0dgn3fdparwxc._.js.map \ No newline at end of file diff --git a/e-commerce/.next/server/chunks/ssr/node_modules_0dgn3fdparwxc._.js.map b/e-commerce/.next/server/chunks/ssr/node_modules_0dgn3fdparwxc._.js.map new file mode 100644 index 0000000000000000000000000000000000000000..12e283b36ef16775426bf2c36c481db21e13bfc5 --- /dev/null +++ b/e-commerce/.next/server/chunks/ssr/node_modules_0dgn3fdparwxc._.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../node_modules/%40swc/helpers/cjs/_interop_require_wildcard.cjs","../../../../node_modules/next/src/client/use-merged-ref.ts","../../../../node_modules/next/src/shared/lib/deployment-id.ts"],"sourcesContent":["\"use strict\";\n\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n\n return (_getRequireWildcardCache = function(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\nfunction _interop_require_wildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) return obj;\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") return { default: obj };\n\n var cache = _getRequireWildcardCache(nodeInterop);\n\n if (cache && cache.has(obj)) return cache.get(obj);\n\n var newObj = { __proto__: null };\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n\n for (var key in obj) {\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) Object.defineProperty(newObj, key, desc);\n else newObj[key] = obj[key];\n }\n }\n\n newObj.default = obj;\n\n if (cache) cache.set(obj, newObj);\n\n return newObj;\n}\nexports._ = _interop_require_wildcard;\n","import { useCallback, useRef, type Ref } from 'react'\n\n// This is a compatibility hook to support React 18 and 19 refs.\n// In 19, a cleanup function from refs may be returned.\n// In 18, returning a cleanup function creates a warning.\n// Since we take userspace refs, we don't know ahead of time if a cleanup function will be returned.\n// This implements cleanup functions with the old behavior in 18.\n// We know refs are always called alternating with `null` and then `T`.\n// So a call with `null` means we need to call the previous cleanup functions.\nexport function useMergedRef(\n refA: Ref,\n refB: Ref\n): Ref {\n const cleanupA = useRef<(() => void) | null>(null)\n const cleanupB = useRef<(() => void) | null>(null)\n\n // NOTE: In theory, we could skip the wrapping if only one of the refs is non-null.\n // (this happens often if the user doesn't pass a ref to Link/Form/Image)\n // But this can cause us to leak a cleanup-ref into user code (previously via ``),\n // and the user might pass that ref into ref-merging library that doesn't support cleanup refs\n // (because it hasn't been updated for React 19)\n // which can then cause things to blow up, because a cleanup-returning ref gets called with `null`.\n // So in practice, it's safer to be defensive and always wrap the ref, even on React 19.\n return useCallback(\n (current: TElement | null): void => {\n if (current === null) {\n const cleanupFnA = cleanupA.current\n if (cleanupFnA) {\n cleanupA.current = null\n cleanupFnA()\n }\n const cleanupFnB = cleanupB.current\n if (cleanupFnB) {\n cleanupB.current = null\n cleanupFnB()\n }\n } else {\n if (refA) {\n cleanupA.current = applyRef(refA, current)\n }\n if (refB) {\n cleanupB.current = applyRef(refB, current)\n }\n }\n },\n [refA, refB]\n )\n}\n\nfunction applyRef(\n refA: NonNullable>,\n current: TElement\n) {\n if (typeof refA === 'function') {\n const cleanup = refA(current)\n if (typeof cleanup === 'function') {\n return cleanup\n } else {\n return () => refA(null)\n }\n } else {\n refA.current = current\n return () => {\n refA.current = null\n }\n }\n}\n","let deploymentId: string | undefined\n\nif (typeof window !== 'undefined') {\n deploymentId = document.documentElement.dataset.dplId\n // Immediately remove the attribute to prevent hydration errors (the dplId was inserted into the\n // HTML only), React isn't aware of it at all.\n document.documentElement.removeAttribute('data-dpl-id')\n} else {\n // Client side: replaced with globalThis.NEXT_DEPLOYMENT_ID\n // Server side: left as is or replaced with a string or replaced with false\n deploymentId = process.env.NEXT_DEPLOYMENT_ID || undefined\n}\n\nexport function getDeploymentId(): string | undefined {\n return deploymentId\n}\n\nexport function getDeploymentIdQuery(ampersand = false): string {\n let id = getDeploymentId()\n if (id) {\n return `${ampersand ? '&' : '?'}dpl=${id}`\n }\n return ''\n}\n\nexport function getAssetToken(): string | undefined {\n return process.env.NEXT_SUPPORTS_IMMUTABLE_ASSETS\n ? undefined\n : process.env.NEXT_DEPLOYMENT_ID\n}\n\nexport function getAssetTokenQuery(ampersand = false): string {\n let id = getAssetToken()\n if (id) {\n return `${ampersand ? '&' : '?'}dpl=${id}`\n }\n return ''\n}\n"],"names":["_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","_interop_require_wildcard","obj","__esModule","default","cache","has","get","newObj","__proto__","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","exports","_","useMergedRef","refA","refB","cleanupA","useRef","cleanupB","useCallback","current","cleanupFnA","cleanupFnB","applyRef","cleanup","getAssetToken","getAssetTokenQuery","getDeploymentId","getDeploymentIdQuery","deploymentId","window","document","documentElement","dataset","dplId","removeAttribute","process","env","NEXT_DEPLOYMENT_ID","undefined","ampersand","id","NEXT_SUPPORTS_IMMUTABLE_ASSETS"],"mappings":"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","ignoreList":[0,1,2]} \ No newline at end of file diff --git a/e-commerce/.next/server/chunks/ssr/node_modules_0gxlxpuufujz9._.js b/e-commerce/.next/server/chunks/ssr/node_modules_0gxlxpuufujz9._.js new file mode 100644 index 0000000000000000000000000000000000000000..834ccceca05d883567ff59a08492371b469138b9 --- /dev/null +++ b/e-commerce/.next/server/chunks/ssr/node_modules_0gxlxpuufujz9._.js @@ -0,0 +1,33 @@ +module.exports=[[71029,(a,b,c)=>{c._=function(a){return a&&a.__esModule?a:{default:a}}},25556,(a,b,c)=>{Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"default",{enumerable:!0,get:function(){return f}}),a.r(71029);let d=a.r(7997);a.r(717);let e=a.r(98860),f=function(){return(0,d.jsxs)("html",{id:"__next_error__",children:[(0,d.jsxs)("head",{children:[(0,d.jsx)("title",{children:"500: This page couldn’t load"}),(0,d.jsx)("style",{dangerouslySetInnerHTML:{__html:e.errorThemeCss}})]}),(0,d.jsx)("body",{children:(0,d.jsx)("div",{style:e.errorStyles.container,children:(0,d.jsxs)("div",{style:e.errorStyles.card,children:[(0,d.jsx)(e.WarningIcon,{}),(0,d.jsx)("h1",{style:e.errorStyles.title,children:"This page couldn’t load"}),(0,d.jsx)("p",{style:e.errorStyles.message,children:"A server error occurred. Reload to try again."}),(0,d.jsx)("form",{style:e.errorStyles.form,children:(0,d.jsx)("button",{type:"submit",style:e.errorStyles.button,children:"Reload"})})]})})})]})};("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},98860,(a,b,c)=>{Object.defineProperty(c,"__esModule",{value:!0});var d={WarningIcon:function(){return i},errorStyles:function(){return g},errorThemeCss:function(){return h}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});a.r(71029);let f=a.r(7997);a.r(717);let g={container:{fontFamily:'system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"',height:"100vh",display:"flex",alignItems:"center",justifyContent:"center"},card:{marginTop:"-32px",maxWidth:"325px",padding:"32px 28px",textAlign:"left"},icon:{marginBottom:"24px"},title:{fontSize:"24px",fontWeight:500,letterSpacing:"-0.02em",lineHeight:"32px",margin:"0 0 12px 0",color:"var(--next-error-title)"},message:{fontSize:"14px",fontWeight:400,lineHeight:"21px",margin:"0 0 20px 0",color:"var(--next-error-message)"},form:{margin:0},buttonGroup:{display:"flex",gap:"8px",alignItems:"center"},button:{display:"inline-flex",alignItems:"center",justifyContent:"center",height:"32px",padding:"0 12px",fontSize:"14px",fontWeight:500,lineHeight:"20px",borderRadius:"6px",cursor:"pointer",color:"var(--next-error-btn-text)",background:"var(--next-error-btn-bg)",border:"var(--next-error-btn-border)"},buttonSecondary:{display:"inline-flex",alignItems:"center",justifyContent:"center",height:"32px",padding:"0 12px",fontSize:"14px",fontWeight:500,lineHeight:"20px",borderRadius:"6px",cursor:"pointer",color:"var(--next-error-btn-secondary-text)",background:"var(--next-error-btn-secondary-bg)",border:"var(--next-error-btn-secondary-border)"},digestFooter:{position:"fixed",bottom:"32px",left:"0",right:"0",textAlign:"center",fontFamily:'ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,monospace',fontSize:"12px",lineHeight:"18px",fontWeight:400,margin:"0",color:"var(--next-error-digest)"}},h=` +:root { + --next-error-bg: #fff; + --next-error-text: #171717; + --next-error-title: #171717; + --next-error-message: #171717; + --next-error-digest: #666666; + --next-error-btn-text: #fff; + --next-error-btn-bg: #171717; + --next-error-btn-border: none; + --next-error-btn-secondary-text: #171717; + --next-error-btn-secondary-bg: transparent; + --next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08); +} +@media (prefers-color-scheme: dark) { + :root { + --next-error-bg: #0a0a0a; + --next-error-text: #ededed; + --next-error-title: #ededed; + --next-error-message: #ededed; + --next-error-digest: #a0a0a0; + --next-error-btn-text: #0a0a0a; + --next-error-btn-bg: #ededed; + --next-error-btn-border: none; + --next-error-btn-secondary-text: #ededed; + --next-error-btn-secondary-bg: transparent; + --next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14); + } +} +body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); } +`.replace(/\n\s*/g,"");function i(){return(0,f.jsx)("svg",{width:"32",height:"32",viewBox:"-0.2 -1.5 32 32",fill:"none",style:g.icon,children:(0,f.jsx)("path",{d:"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z",fill:"var(--next-error-title)"})})}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)}],79835,function(a){a.n(a.i(25556))}]; + +//# sourceMappingURL=node_modules_0gxlxpuufujz9._.js.map \ No newline at end of file diff --git a/e-commerce/.next/server/chunks/ssr/node_modules_0gxlxpuufujz9._.js.map b/e-commerce/.next/server/chunks/ssr/node_modules_0gxlxpuufujz9._.js.map new file mode 100644 index 0000000000000000000000000000000000000000..f31dd1566b473591cefcf8f9f08ddcd2e5431be7 --- /dev/null +++ b/e-commerce/.next/server/chunks/ssr/node_modules_0gxlxpuufujz9._.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../../node_modules/%40swc/helpers/cjs/_interop_require_default.cjs","../../../../node_modules/next/src/client/components/builtin/app-error.tsx","../../../../node_modules/next/src/client/components/builtin/error-styles.tsx"],"sourcesContent":["\"use strict\";\n\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : { default: obj };\n}\nexports._ = _interop_require_default;\n","import React from 'react'\nimport { errorStyles, errorThemeCss, WarningIcon } from './error-styles'\n\n// This is the static 500.html page for App Router apps.\n// Always a server error, rendered at build time.\nfunction AppError() {\n return (\n \n \n 500: This page couldn’t load\n

404

This page could not be found.

\ No newline at end of file diff --git a/e-commerce/.next/server/pages/500.html b/e-commerce/.next/server/pages/500.html new file mode 100644 index 0000000000000000000000000000000000000000..de44a08a70b21bdb28ba7c88fa87dc1f4efb7e5c --- /dev/null +++ b/e-commerce/.next/server/pages/500.html @@ -0,0 +1 @@ +500: This page couldn’t load

This page couldn’t load

A server error occurred. Reload to try again.

\ No newline at end of file diff --git a/e-commerce/.next/server/prefetch-hints.json b/e-commerce/.next/server/prefetch-hints.json new file mode 100644 index 0000000000000000000000000000000000000000..2a98ebff727fd8a38cec9284eda9cea3b15dda34 --- /dev/null +++ b/e-commerce/.next/server/prefetch-hints.json @@ -0,0 +1,77 @@ +{ + "/_global-error": { + "hints": 64, + "slots": { + "children": { + "hints": 160, + "slots": null + } + } + }, + "/_not-found": { + "hints": 64, + "slots": { + "children": { + "hints": 96, + "slots": { + "children": { + "hints": 160, + "slots": null + } + } + } + } + }, + "/[locale]/catalog/category/[slug]": { + "hints": 64, + "slots": { + "children": { + "hints": 96, + "slots": { + "children": { + "hints": 96, + "slots": { + "children": { + "hints": 96, + "slots": { + "children": { + "hints": 96, + "slots": { + "children": { + "hints": 160, + "slots": null + } + } + } + } + } + } + } + } + } + } + }, + "/[locale]": { + "hints": 64, + "slots": { + "children": { + "hints": 96, + "slots": { + "children": { + "hints": 160, + "slots": null + } + } + } + } + }, + "/": { + "hints": 64, + "slots": { + "children": { + "hints": 160, + "slots": null + } + } + } +} \ No newline at end of file diff --git a/e-commerce/.next/server/preview-props.json b/e-commerce/.next/server/preview-props.json new file mode 100644 index 0000000000000000000000000000000000000000..44643470b2219fdeb4174a9b93f34ac13652b865 --- /dev/null +++ b/e-commerce/.next/server/preview-props.json @@ -0,0 +1,5 @@ +{ + "previewModeId": "41fc763c7733ec1168a8c7e9d4fd7e73", + "previewModeSigningKey": "38431740dc5666173946fce047dee2efb4033f4b4e352a64dd8bc674fc96c622", + "previewModeEncryptionKey": "1fa0004ccfdbef1c4933a09c2fe6ed913dd03d87133748c5a2dad1abd0eeabbf" +} \ No newline at end of file diff --git a/e-commerce/.next/server/route-cache/APP_PAGE/2825bf9e1aa035199cc70149b2d86ad387d3637a420605faa046db23b53f0b30/$/bn.html b/e-commerce/.next/server/route-cache/APP_PAGE/2825bf9e1aa035199cc70149b2d86ad387d3637a420605faa046db23b53f0b30/$/bn.html new file mode 100644 index 0000000000000000000000000000000000000000..f6ba7c2dbb5ea3b1cfe4a5a9129052b6d5fa037a --- /dev/null +++ b/e-commerce/.next/server/route-cache/APP_PAGE/2825bf9e1aa035199cc70149b2d86ad387d3637a420605faa046db23b53f0b30/$/bn.html @@ -0,0 +1 @@ +ই-কমার্স স্টোর
বাংলা

ই-কমার্স স্টোর

ভারত জুড়ে ডেলিভারি

E-Commerce Store
\ No newline at end of file diff --git a/e-commerce/.next/server/route-cache/APP_PAGE/2825bf9e1aa035199cc70149b2d86ad387d3637a420605faa046db23b53f0b30/$/bn.meta b/e-commerce/.next/server/route-cache/APP_PAGE/2825bf9e1aa035199cc70149b2d86ad387d3637a420605faa046db23b53f0b30/$/bn.meta new file mode 100644 index 0000000000000000000000000000000000000000..09956997cc3a023f468682295c7f72e62e211f08 --- /dev/null +++ b/e-commerce/.next/server/route-cache/APP_PAGE/2825bf9e1aa035199cc70149b2d86ad387d3637a420605faa046db23b53f0b30/$/bn.meta @@ -0,0 +1 @@ +{"headers":{"x-nextjs-stale-time":"300","x-nextjs-prerender":"1","x-next-cache-tags":"_N_T_/layout,_N_T_/[locale]/layout,_N_T_/[locale]/page,_N_T_/bn"},"segmentPaths":["/_tree","/_full","/$d$locale/__PAGE__"],"prefetchHints":{"hints":64,"slots":{"children":{"hints":96,"slots":{"children":{"hints":160,"slots":null}}}}},"routeCache":{"key":"/route-cache/APP_PAGE/2825bf9e1aa035199cc70149b2d86ad387d3637a420605faa046db23b53f0b30/$/bn","owner":{"kind":"APP_PAGE","sourceRoute":"/[locale]/page"},"isFallback":false},"routeCacheLastModified":1791887953217} \ No newline at end of file diff --git a/e-commerce/.next/server/route-cache/APP_PAGE/2825bf9e1aa035199cc70149b2d86ad387d3637a420605faa046db23b53f0b30/$/bn.rsc b/e-commerce/.next/server/route-cache/APP_PAGE/2825bf9e1aa035199cc70149b2d86ad387d3637a420605faa046db23b53f0b30/$/bn.rsc new file mode 100644 index 0000000000000000000000000000000000000000..e9911a9cb7b9c90a1bf7f2ef267ab1229f0fc94d --- /dev/null +++ b/e-commerce/.next/server/route-cache/APP_PAGE/2825bf9e1aa035199cc70149b2d86ad387d3637a420605faa046db23b53f0b30/$/bn.rsc @@ -0,0 +1,28 @@ +1:"$Sreact.fragment" +2:"/_next/static/chunks/0umf92h1sb77c.js" +3:I[39756,["$2"],"default"] +4:I[37457,["$2"],"default"] +9:I[97367,["$2"],"OutletBoundary"] +a:"$Sreact.suspense" +c:"ViewportBoundary" +d:I[97367,["$2"],"$c"] +f:"MetadataBoundary" +10:I[97367,["$2"],"$f"] +12:I[68027,["$2"],"default",1] +:HL["/_next/static/chunks/3scjwwi8pqt2y.css","style"] +:HL["/_next/static/media/797e433ab948586e-s.p.0r6juujl39pe6.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/caa3a2e1cccd8315-s.p.0wgildi0cnwt9.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +7:[["children",{"s":"__PAGE__","h":512,"d":{"r":["$","$1","c",{"children":["$L8",[["$","script","script-0",{"src":"/_next/static/chunks/2n5qeheznvl4u.js","async":true,"nonce":"$undefined"}]],["$","$L9",null,{"children":["$","$a",null,{"name":"Next.MetadataOutlet","children":"$@b"}]}]]}],"p":false,"v":null}}]] +5:[["children",{"s":{"n":"locale","t":"d","k":"bn","s":[]},"h":512,"d":{"r":["$","$1","c",{"children":[[["$","script","script-0",{"src":"/_next/static/chunks/2pv7bk-fii9c2.js","async":true,"nonce":"$undefined"}]],"$L6"]}],"p":false,"v":null},"c":"$Q7"}]] +0:{"P":null,"c":["","bn"],"q":"","i":false,"t":{"t":{"s":"","h":528,"d":{"r":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/3scjwwi8pqt2y.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/0umf92h1sb77c.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","className":"T19VSG_variable _8Li5zG_variable","children":["$","body",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}],"p":false,"v":null},"c":"$Q5"},"h":{"r":["$","$1","h",{"children":[null,["$","$Ld",null,{"children":"$Le"}],["$","$L10",null,{"children":[["$","div",null,{"hidden":true,"children":["$","$a",null,{"name":"Next.Metadata","children":"$L11"}]}],null]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"p":false,"v":null}},"m":"$undefined","G":["$12",[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/3scjwwi8pqt2y.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]]],"S":true,"r":"$undefined","s":"$undefined","a":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"dRI9LFT7roNJ8J1q20Bu8"} +13:"/_next/static/chunks/2pv7bk-fii9c2.js" +14:"/_next/static/chunks/2n5qeheznvl4u.js" +15:I[22016,["$2","$13","$14"],""] +8:[["$","h1",null,{"className":"text-3xl font-bold tracking-tight","children":"ই-কমার্স স্টোর"}],["$","p",null,{"className":"mt-3 text-muted-foreground text-lg","children":"ভারত জুড়ে ডেলিভারি"}],["$","div",null,{"className":"mt-6 flex gap-3","children":[["$","$L15",null,{"href":"/bn/category/men-tshirts","children":["$","button",null,{"className":"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 bg-primary text-primary-foreground shadow hover:bg-primary/90 h-9 px-4 py-2","ref":"$undefined","children":["ক্যাটালগ"," ",["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-arrow-right ml-2 h-4 w-4","children":[["$","path","1ays0h",{"d":"M5 12h14"}],["$","path","xquz4c",{"d":"m12 5 7 7-7 7"}],"$undefined"]}]]}]}],["$","button",null,{"className":"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground h-9 px-4 py-2","ref":"$undefined","children":"সম্পর্কে"}]]}]] +e:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] +16:I[75696,["$2","$13"],"default"] +6:["$","$L16",null,{"formats":"$undefined","locale":"bn","messages":{"home":{"title":"ই-কমার্স স্টোর","hero":"ভারত জুড়ে ডেলিভারি","lang":"বাংলা","catalog":"ক্যাটালগ","about":"সম্পর্কে"},"catalog":{"back":"পিছনে","hsn":"এইচএসএন","available":"উপলব্ধ","units":"টুকরো","variants":"ভেরিয়েন্ট","variantsCount":"{{count}} ভেরিয়েন্ট(গুলো)","buyNow":"এখন কিনুন","shipping":"৯৯৯ টাকার উপরে বিনামূল্য ডেলিভারি। বিকাশে পেমেন্ট সম্ভব।","product":{"view":"পণ্য দেখুন","metaTitle":"{{title}} — ই-কমার্স স্টোর","metaDescription":"ভারত জুড়ে বিকাশে পেমেন্ট দিয়ে {{title}} অনলাইনে কিনুন।"},"category":{"view":"বিভাগ দেখুন","metaTitle":"{{title}} — ই-কমার্স স্টোর","metaDescription":"ভারত জুড়ে বিকাশে পেমেন্ট দিয়ে {{title}} এর পণ্য দেখুন।","hero":"বিভাগ অনুযায়ী দেখুন","footer":"স্টকে থাকা পণ্য দেখানো হচ্ছে। ভারত জুড়ে বিকাশে পেমেন্ট সম্ভব।","empty":"এই বিভাগে এখন কোনো পণ্য নেই।"},"outOfStock":"স্টক নেই"}},"now":"$undefined","timeZone":"Asia/Calcutta","children":["$","html",null,{"lang":"bn","suppressHydrationWarning":true,"children":["$","body",null,{"children":["$","div",null,{"className":"flex flex-col min-h-screen","children":[["$","header",null,{"className":"flex items-center justify-between p-4 border-b","children":[["$","span",null,{"className":"text-lg font-semibold","children":"বাংলা"}],"$L17"]}],["$","main",null,{"className":"flex-1 p-6 max-w-3xl mx-auto w-full","children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]}],["$","footer",null,{"className":"text-center p-4 text-sm text-muted-foreground border-t","children":"E-Commerce Store"}]]}]}]}]}] +17:["$","div",null,{"className":"flex items-center gap-2","children":[["$","a",null,{"href":"/en","className":"inline-flex items-center justify-center gap-2 whitespace-nowrap font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 bg-primary text-primary-foreground shadow hover:bg-primary/90 h-8 rounded-md px-3 text-xs flex items-center gap-1","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-arrow-left h-4 w-4","children":[["$","path","1l729n",{"d":"m12 19-7-7 7-7"}],["$","path","x3x0zl",{"d":"M19 12H5"}],"$undefined"]}],"EN"],"ref":null}],["$","a",null,{"href":"/bn","className":"inline-flex items-center justify-center gap-2 whitespace-nowrap font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground h-8 rounded-md px-3 text-xs flex items-center gap-1","children":["BN",["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-arrow-right h-4 w-4","children":[["$","path","1ays0h",{"d":"M5 12h14"}],["$","path","xquz4c",{"d":"m12 5 7 7-7 7"}],"$undefined"]}]],"ref":null}]]}] +18:I[27201,["$2"],"IconMark"] +b:null +11:[["$","title","0",{"children":"ই-কমার্স স্টোর"}],["$","meta","1",{"name":"description","content":"ভারত জুড়ে ডেলিভারি"}],["$","link","2",{"rel":"icon","href":"/favicon.ico?favicon.117ezoe8m31dk.ico","sizes":"48x48","type":"image/x-icon"}],["$","$L18","3",{}]] diff --git a/e-commerce/.next/server/route-cache/APP_PAGE/2825bf9e1aa035199cc70149b2d86ad387d3637a420605faa046db23b53f0b30/$/bn.segments/$d$locale/__PAGE__.segment.rsc b/e-commerce/.next/server/route-cache/APP_PAGE/2825bf9e1aa035199cc70149b2d86ad387d3637a420605faa046db23b53f0b30/$/bn.segments/$d$locale/__PAGE__.segment.rsc new file mode 100644 index 0000000000000000000000000000000000000000..b5d6365b45c36d8cc382feed8b5769ceaf798cee --- /dev/null +++ b/e-commerce/.next/server/route-cache/APP_PAGE/2825bf9e1aa035199cc70149b2d86ad387d3637a420605faa046db23b53f0b30/$/bn.segments/$d$locale/__PAGE__.segment.rsc @@ -0,0 +1,33 @@ +1:"$Sreact.fragment" +2:"/_next/static/chunks/0umf92h1sb77c.js" +3:I[39756,["$2"],"default"] +4:I[37457,["$2"],"default"] +8:"/_next/static/chunks/2pv7bk-fii9c2.js" +9:I[75696,["$2","$8"],"default"] +11:"ViewportBoundary" +12:I[97367,["$2"],"$11"] +13:"MetadataBoundary" +14:I[97367,["$2"],"$13"] +15:"$Sreact.suspense" +16:I[27201,["$2"],"IconMark"] +:HL["/_next/static/chunks/3scjwwi8pqt2y.css","style"] +6:X +e:[["children",{"s":"__PAGE__","h":160,"d":{"r":"$Lf","p":"$@10","v":null,"s":"$6"}}]] +7:[["children",{"s":{"n":"locale","t":"d","k":"bn","s":[]},"h":96,"d":{"r":["$","$1","c",{"children":[[["$","script","script-0",{"src":"/_next/static/chunks/2pv7bk-fii9c2.js","async":true}]],["$","$L9",null,{"locale":"bn","messages":{"home":{"title":"ই-কমার্স স্টোর","hero":"ভারত জুড়ে ডেলিভারি","lang":"বাংলা","catalog":"ক্যাটালগ","about":"সম্পর্কে"},"catalog":{"back":"পিছনে","hsn":"এইচএসএন","available":"উপলব্ধ","units":"টুকরো","variants":"ভেরিয়েন্ট","variantsCount":"{{count}} ভেরিয়েন্ট(গুলো)","buyNow":"এখন কিনুন","shipping":"৯৯৯ টাকার উপরে বিনামূল্য ডেলিভারি। বিকাশে পেমেন্ট সম্ভব।","product":{"view":"পণ্য দেখুন","metaTitle":"{{title}} — ই-কমার্স স্টোর","metaDescription":"ভারত জুড়ে বিকাশে পেমেন্ট দিয়ে {{title}} অনলাইনে কিনুন।"},"category":{"view":"বিভাগ দেখুন","metaTitle":"{{title}} — ই-কমার্স স্টোর","metaDescription":"ভারত জুড়ে বিকাশে পেমেন্ট দিয়ে {{title}} এর পণ্য দেখুন।","hero":"বিভাগ অনুযায়ী দেখুন","footer":"স্টকে থাকা পণ্য দেখানো হচ্ছে। ভারত জুড়ে বিকাশে পেমেন্ট সম্ভব।","empty":"এই বিভাগে এখন কোনো পণ্য নেই।"},"outOfStock":"স্টক নেই"}},"timeZone":"Asia/Calcutta","children":["$","html",null,{"lang":"bn","suppressHydrationWarning":true,"children":["$","body",null,{"children":["$","div",null,{"className":"flex flex-col min-h-screen","children":[["$","header",null,{"className":"flex items-center justify-between p-4 border-b","children":[["$","span",null,{"className":"text-lg font-semibold","children":"বাংলা"}],["$","div",null,{"className":"flex items-center gap-2","children":[["$","a",null,{"href":"/en","className":"inline-flex items-center justify-center gap-2 whitespace-nowrap font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 bg-primary text-primary-foreground shadow hover:bg-primary/90 h-8 rounded-md px-3 text-xs flex items-center gap-1","children":[["$","svg",null,{"xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-arrow-left h-4 w-4","children":[["$","path","1l729n",{"d":"m12 19-7-7 7-7"}],["$","path","x3x0zl",{"d":"M19 12H5"}],"$undefined"]}],"EN"],"ref":null}],["$","a",null,{"href":"/bn","className":"inline-flex items-center justify-center gap-2 whitespace-nowrap font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground h-8 rounded-md px-3 text-xs flex items-center gap-1","children":["BN","$La"],"ref":null}]]}]]}],"$Lb","$Lc"]}]}]}]}]]}],"p":"$@d","v":null,"s":"$6"},"c":"$Qe"}]] +0:{"t":{"t":{"s":"","h":80,"d":{"r":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/3scjwwi8pqt2y.css","precedence":"next"}],["$","script","script-0",{"src":"/_next/static/chunks/0umf92h1sb77c.js","async":true}]],["$","html",null,{"lang":"en","className":"T19VSG_variable _8Li5zG_variable","children":["$","body",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","template":["$","$L4",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]}]]}],"p":"$@5","v":null,"s":"$6"},"c":"$Q7"},"h":{"r":["$","$1","h",{"children":[null,["$","$L12",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","$L14",null,{"children":[["$","div",null,{"hidden":true,"children":["$","$15",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"ই-কমার্স স্টোর"}],["$","meta","1",{"name":"description","content":"ভারত জুড়ে ডেলিভারি"}],["$","link","2",{"rel":"icon","href":"/favicon.ico?favicon.117ezoe8m31dk.ico","sizes":"48x48","type":"image/x-icon"}],["$","$L16","3",{}]]}]}],null]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"p":"$@17","v":null,"s":"$6"}},"a":"$@18","u":"$@19","b":"dRI9LFT7roNJ8J1q20Bu8"} +1a:"/_next/static/chunks/2n5qeheznvl4u.js" +1b:I[22016,["$2","$8","$1a"],""] +1c:I[97367,["$2"],"OutletBoundary"] +a:["$","svg",null,{"xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-arrow-right h-4 w-4","children":[["$","path","1ays0h",{"d":"M5 12h14"}],["$","path","xquz4c",{"d":"m12 5 7 7-7 7"}],"$undefined"]}] +b:["$","main",null,{"className":"flex-1 p-6 max-w-3xl mx-auto w-full","children":["$","$L3",null,{"parallelRouterKey":"children","template":["$","$L4",null,{}]}]}] +c:["$","footer",null,{"className":"text-center p-4 text-sm text-muted-foreground border-t","children":"E-Commerce Store"}] +f:["$","$1","c",{"children":[[["$","h1",null,{"className":"text-3xl font-bold tracking-tight","children":"ই-কমার্স স্টোর"}],["$","p",null,{"className":"mt-3 text-muted-foreground text-lg","children":"ভারত জুড়ে ডেলিভারি"}],["$","div",null,{"className":"mt-6 flex gap-3","children":[["$","$L1b",null,{"href":"/bn/category/men-tshirts","children":["$","button",null,{"className":"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 bg-primary text-primary-foreground shadow hover:bg-primary/90 h-9 px-4 py-2","children":["ক্যাটালগ"," ",["$","svg",null,{"xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-arrow-right ml-2 h-4 w-4","children":[["$","path","1ays0h",{"d":"M5 12h14"}],["$","path","xquz4c",{"d":"m12 5 7 7-7 7"}],"$undefined"]}]]}]}],["$","button",null,{"className":"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground h-9 px-4 py-2","children":"সম্পর্কে"}]]}]],[["$","script","script-0",{"src":"/_next/static/chunks/2n5qeheznvl4u.js","async":true}]],["$","$L1c",null,{"children":["$","$15",null,{"name":"Next.MetadataOutlet","children":"$@1d"}]}]]}] +6:300 +1d:null +19:true +6:C +18:0 +d:"$undefined" +5:"$undefined" +17:"$undefined" +10:"$undefined" diff --git a/e-commerce/.next/server/route-cache/APP_PAGE/2825bf9e1aa035199cc70149b2d86ad387d3637a420605faa046db23b53f0b30/$/bn.segments/_full.segment.rsc b/e-commerce/.next/server/route-cache/APP_PAGE/2825bf9e1aa035199cc70149b2d86ad387d3637a420605faa046db23b53f0b30/$/bn.segments/_full.segment.rsc new file mode 100644 index 0000000000000000000000000000000000000000..e9911a9cb7b9c90a1bf7f2ef267ab1229f0fc94d --- /dev/null +++ b/e-commerce/.next/server/route-cache/APP_PAGE/2825bf9e1aa035199cc70149b2d86ad387d3637a420605faa046db23b53f0b30/$/bn.segments/_full.segment.rsc @@ -0,0 +1,28 @@ +1:"$Sreact.fragment" +2:"/_next/static/chunks/0umf92h1sb77c.js" +3:I[39756,["$2"],"default"] +4:I[37457,["$2"],"default"] +9:I[97367,["$2"],"OutletBoundary"] +a:"$Sreact.suspense" +c:"ViewportBoundary" +d:I[97367,["$2"],"$c"] +f:"MetadataBoundary" +10:I[97367,["$2"],"$f"] +12:I[68027,["$2"],"default",1] +:HL["/_next/static/chunks/3scjwwi8pqt2y.css","style"] +:HL["/_next/static/media/797e433ab948586e-s.p.0r6juujl39pe6.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/caa3a2e1cccd8315-s.p.0wgildi0cnwt9.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +7:[["children",{"s":"__PAGE__","h":512,"d":{"r":["$","$1","c",{"children":["$L8",[["$","script","script-0",{"src":"/_next/static/chunks/2n5qeheznvl4u.js","async":true,"nonce":"$undefined"}]],["$","$L9",null,{"children":["$","$a",null,{"name":"Next.MetadataOutlet","children":"$@b"}]}]]}],"p":false,"v":null}}]] +5:[["children",{"s":{"n":"locale","t":"d","k":"bn","s":[]},"h":512,"d":{"r":["$","$1","c",{"children":[[["$","script","script-0",{"src":"/_next/static/chunks/2pv7bk-fii9c2.js","async":true,"nonce":"$undefined"}]],"$L6"]}],"p":false,"v":null},"c":"$Q7"}]] +0:{"P":null,"c":["","bn"],"q":"","i":false,"t":{"t":{"s":"","h":528,"d":{"r":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/3scjwwi8pqt2y.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/0umf92h1sb77c.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","className":"T19VSG_variable _8Li5zG_variable","children":["$","body",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}],"p":false,"v":null},"c":"$Q5"},"h":{"r":["$","$1","h",{"children":[null,["$","$Ld",null,{"children":"$Le"}],["$","$L10",null,{"children":[["$","div",null,{"hidden":true,"children":["$","$a",null,{"name":"Next.Metadata","children":"$L11"}]}],null]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"p":false,"v":null}},"m":"$undefined","G":["$12",[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/3scjwwi8pqt2y.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]]],"S":true,"r":"$undefined","s":"$undefined","a":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"dRI9LFT7roNJ8J1q20Bu8"} +13:"/_next/static/chunks/2pv7bk-fii9c2.js" +14:"/_next/static/chunks/2n5qeheznvl4u.js" +15:I[22016,["$2","$13","$14"],""] +8:[["$","h1",null,{"className":"text-3xl font-bold tracking-tight","children":"ই-কমার্স স্টোর"}],["$","p",null,{"className":"mt-3 text-muted-foreground text-lg","children":"ভারত জুড়ে ডেলিভারি"}],["$","div",null,{"className":"mt-6 flex gap-3","children":[["$","$L15",null,{"href":"/bn/category/men-tshirts","children":["$","button",null,{"className":"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 bg-primary text-primary-foreground shadow hover:bg-primary/90 h-9 px-4 py-2","ref":"$undefined","children":["ক্যাটালগ"," ",["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-arrow-right ml-2 h-4 w-4","children":[["$","path","1ays0h",{"d":"M5 12h14"}],["$","path","xquz4c",{"d":"m12 5 7 7-7 7"}],"$undefined"]}]]}]}],["$","button",null,{"className":"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground h-9 px-4 py-2","ref":"$undefined","children":"সম্পর্কে"}]]}]] +e:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] +16:I[75696,["$2","$13"],"default"] +6:["$","$L16",null,{"formats":"$undefined","locale":"bn","messages":{"home":{"title":"ই-কমার্স স্টোর","hero":"ভারত জুড়ে ডেলিভারি","lang":"বাংলা","catalog":"ক্যাটালগ","about":"সম্পর্কে"},"catalog":{"back":"পিছনে","hsn":"এইচএসএন","available":"উপলব্ধ","units":"টুকরো","variants":"ভেরিয়েন্ট","variantsCount":"{{count}} ভেরিয়েন্ট(গুলো)","buyNow":"এখন কিনুন","shipping":"৯৯৯ টাকার উপরে বিনামূল্য ডেলিভারি। বিকাশে পেমেন্ট সম্ভব।","product":{"view":"পণ্য দেখুন","metaTitle":"{{title}} — ই-কমার্স স্টোর","metaDescription":"ভারত জুড়ে বিকাশে পেমেন্ট দিয়ে {{title}} অনলাইনে কিনুন।"},"category":{"view":"বিভাগ দেখুন","metaTitle":"{{title}} — ই-কমার্স স্টোর","metaDescription":"ভারত জুড়ে বিকাশে পেমেন্ট দিয়ে {{title}} এর পণ্য দেখুন।","hero":"বিভাগ অনুযায়ী দেখুন","footer":"স্টকে থাকা পণ্য দেখানো হচ্ছে। ভারত জুড়ে বিকাশে পেমেন্ট সম্ভব।","empty":"এই বিভাগে এখন কোনো পণ্য নেই।"},"outOfStock":"স্টক নেই"}},"now":"$undefined","timeZone":"Asia/Calcutta","children":["$","html",null,{"lang":"bn","suppressHydrationWarning":true,"children":["$","body",null,{"children":["$","div",null,{"className":"flex flex-col min-h-screen","children":[["$","header",null,{"className":"flex items-center justify-between p-4 border-b","children":[["$","span",null,{"className":"text-lg font-semibold","children":"বাংলা"}],"$L17"]}],["$","main",null,{"className":"flex-1 p-6 max-w-3xl mx-auto w-full","children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]}],["$","footer",null,{"className":"text-center p-4 text-sm text-muted-foreground border-t","children":"E-Commerce Store"}]]}]}]}]}] +17:["$","div",null,{"className":"flex items-center gap-2","children":[["$","a",null,{"href":"/en","className":"inline-flex items-center justify-center gap-2 whitespace-nowrap font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 bg-primary text-primary-foreground shadow hover:bg-primary/90 h-8 rounded-md px-3 text-xs flex items-center gap-1","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-arrow-left h-4 w-4","children":[["$","path","1l729n",{"d":"m12 19-7-7 7-7"}],["$","path","x3x0zl",{"d":"M19 12H5"}],"$undefined"]}],"EN"],"ref":null}],["$","a",null,{"href":"/bn","className":"inline-flex items-center justify-center gap-2 whitespace-nowrap font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground h-8 rounded-md px-3 text-xs flex items-center gap-1","children":["BN",["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-arrow-right h-4 w-4","children":[["$","path","1ays0h",{"d":"M5 12h14"}],["$","path","xquz4c",{"d":"m12 5 7 7-7 7"}],"$undefined"]}]],"ref":null}]]}] +18:I[27201,["$2"],"IconMark"] +b:null +11:[["$","title","0",{"children":"ই-কমার্স স্টোর"}],["$","meta","1",{"name":"description","content":"ভারত জুড়ে ডেলিভারি"}],["$","link","2",{"rel":"icon","href":"/favicon.ico?favicon.117ezoe8m31dk.ico","sizes":"48x48","type":"image/x-icon"}],["$","$L18","3",{}]] diff --git a/e-commerce/.next/server/route-cache/APP_PAGE/2825bf9e1aa035199cc70149b2d86ad387d3637a420605faa046db23b53f0b30/$/bn.segments/_tree.segment.rsc b/e-commerce/.next/server/route-cache/APP_PAGE/2825bf9e1aa035199cc70149b2d86ad387d3637a420605faa046db23b53f0b30/$/bn.segments/_tree.segment.rsc new file mode 100644 index 0000000000000000000000000000000000000000..1cc23ce128b4a2ce0c16498b2e185e4b722734dc --- /dev/null +++ b/e-commerce/.next/server/route-cache/APP_PAGE/2825bf9e1aa035199cc70149b2d86ad387d3637a420605faa046db23b53f0b30/$/bn.segments/_tree.segment.rsc @@ -0,0 +1,6 @@ +:HL["/_next/static/chunks/3scjwwi8pqt2y.css","style"] +:HL["/_next/static/media/797e433ab948586e-s.p.0r6juujl39pe6.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/caa3a2e1cccd8315-s.p.0wgildi0cnwt9.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +2:[["children",{"s":"__PAGE__","h":160}]] +1:[["children",{"s":{"n":"locale","t":"d","k":"bn","s":[]},"h":96,"c":"$Q2"}]] +0:{"b":"dRI9LFT7roNJ8J1q20Bu8","t":{"t":{"s":"","h":80,"c":"$Q1"}}} diff --git a/e-commerce/.next/server/route-cache/APP_PAGE/2825bf9e1aa035199cc70149b2d86ad387d3637a420605faa046db23b53f0b30/$/en.html b/e-commerce/.next/server/route-cache/APP_PAGE/2825bf9e1aa035199cc70149b2d86ad387d3637a420605faa046db23b53f0b30/$/en.html new file mode 100644 index 0000000000000000000000000000000000000000..671446c3c82426f5ec71f0c5091d27896e8ad29e --- /dev/null +++ b/e-commerce/.next/server/route-cache/APP_PAGE/2825bf9e1aa035199cc70149b2d86ad387d3637a420605faa046db23b53f0b30/$/en.html @@ -0,0 +1 @@ +E-Commerce Store
English

E-Commerce Store

Domestic shipping across India

E-Commerce Store
\ No newline at end of file diff --git a/e-commerce/.next/server/route-cache/APP_PAGE/2825bf9e1aa035199cc70149b2d86ad387d3637a420605faa046db23b53f0b30/$/en.meta b/e-commerce/.next/server/route-cache/APP_PAGE/2825bf9e1aa035199cc70149b2d86ad387d3637a420605faa046db23b53f0b30/$/en.meta new file mode 100644 index 0000000000000000000000000000000000000000..94aab0386023cb129370d396e01e74cbcb3ce355 --- /dev/null +++ b/e-commerce/.next/server/route-cache/APP_PAGE/2825bf9e1aa035199cc70149b2d86ad387d3637a420605faa046db23b53f0b30/$/en.meta @@ -0,0 +1 @@ +{"headers":{"x-nextjs-stale-time":"300","x-nextjs-prerender":"1","x-next-cache-tags":"_N_T_/layout,_N_T_/[locale]/layout,_N_T_/[locale]/page,_N_T_/en"},"segmentPaths":["/_tree","/_full","/$d$locale/__PAGE__"],"prefetchHints":{"hints":64,"slots":{"children":{"hints":96,"slots":{"children":{"hints":160,"slots":null}}}}},"routeCache":{"key":"/route-cache/APP_PAGE/2825bf9e1aa035199cc70149b2d86ad387d3637a420605faa046db23b53f0b30/$/en","owner":{"kind":"APP_PAGE","sourceRoute":"/[locale]/page"},"isFallback":false},"routeCacheLastModified":1791887953210} \ No newline at end of file diff --git a/e-commerce/.next/server/route-cache/APP_PAGE/2825bf9e1aa035199cc70149b2d86ad387d3637a420605faa046db23b53f0b30/$/en.rsc b/e-commerce/.next/server/route-cache/APP_PAGE/2825bf9e1aa035199cc70149b2d86ad387d3637a420605faa046db23b53f0b30/$/en.rsc new file mode 100644 index 0000000000000000000000000000000000000000..6253254df9d996fb447f37dbf6763802fb2eb152 --- /dev/null +++ b/e-commerce/.next/server/route-cache/APP_PAGE/2825bf9e1aa035199cc70149b2d86ad387d3637a420605faa046db23b53f0b30/$/en.rsc @@ -0,0 +1,28 @@ +1:"$Sreact.fragment" +2:"/_next/static/chunks/0umf92h1sb77c.js" +3:I[39756,["$2"],"default"] +4:I[37457,["$2"],"default"] +9:I[97367,["$2"],"OutletBoundary"] +a:"$Sreact.suspense" +c:"ViewportBoundary" +d:I[97367,["$2"],"$c"] +f:"MetadataBoundary" +10:I[97367,["$2"],"$f"] +12:I[68027,["$2"],"default",1] +:HL["/_next/static/chunks/3scjwwi8pqt2y.css","style"] +:HL["/_next/static/media/797e433ab948586e-s.p.0r6juujl39pe6.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/caa3a2e1cccd8315-s.p.0wgildi0cnwt9.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +7:[["children",{"s":"__PAGE__","h":512,"d":{"r":["$","$1","c",{"children":["$L8",[["$","script","script-0",{"src":"/_next/static/chunks/2n5qeheznvl4u.js","async":true,"nonce":"$undefined"}]],["$","$L9",null,{"children":["$","$a",null,{"name":"Next.MetadataOutlet","children":"$@b"}]}]]}],"p":false,"v":null}}]] +5:[["children",{"s":{"n":"locale","t":"d","k":"en","s":[]},"h":512,"d":{"r":["$","$1","c",{"children":[[["$","script","script-0",{"src":"/_next/static/chunks/2pv7bk-fii9c2.js","async":true,"nonce":"$undefined"}]],"$L6"]}],"p":false,"v":null},"c":"$Q7"}]] +0:{"P":null,"c":["","en"],"q":"","i":false,"t":{"t":{"s":"","h":528,"d":{"r":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/3scjwwi8pqt2y.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/0umf92h1sb77c.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","className":"T19VSG_variable _8Li5zG_variable","children":["$","body",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}],"p":false,"v":null},"c":"$Q5"},"h":{"r":["$","$1","h",{"children":[null,["$","$Ld",null,{"children":"$Le"}],["$","$L10",null,{"children":[["$","div",null,{"hidden":true,"children":["$","$a",null,{"name":"Next.Metadata","children":"$L11"}]}],null]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"p":false,"v":null}},"m":"$undefined","G":["$12",[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/3scjwwi8pqt2y.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]]],"S":true,"r":"$undefined","s":"$undefined","a":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"dRI9LFT7roNJ8J1q20Bu8"} +13:"/_next/static/chunks/2pv7bk-fii9c2.js" +14:"/_next/static/chunks/2n5qeheznvl4u.js" +15:I[22016,["$2","$13","$14"],""] +8:[["$","h1",null,{"className":"text-3xl font-bold tracking-tight","children":"E-Commerce Store"}],["$","p",null,{"className":"mt-3 text-muted-foreground text-lg","children":"Domestic shipping across India"}],["$","div",null,{"className":"mt-6 flex gap-3","children":[["$","$L15",null,{"href":"/en/category/men-tshirts","children":["$","button",null,{"className":"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 bg-primary text-primary-foreground shadow hover:bg-primary/90 h-9 px-4 py-2","ref":"$undefined","children":["Catalog"," ",["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-arrow-right ml-2 h-4 w-4","children":[["$","path","1ays0h",{"d":"M5 12h14"}],["$","path","xquz4c",{"d":"m12 5 7 7-7 7"}],"$undefined"]}]]}]}],["$","button",null,{"className":"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground h-9 px-4 py-2","ref":"$undefined","children":"About"}]]}]] +e:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] +16:I[75696,["$2","$13"],"default"] +6:["$","$L16",null,{"formats":"$undefined","locale":"en","messages":{"home":{"title":"E-Commerce Store","hero":"Domestic shipping across India","lang":"English","catalog":"Catalog","about":"About"},"catalog":{"back":"Back","hsn":"HSN","available":"Available","units":"units","variants":"Variants","variantsCount":"{{count}} variant(s)","buyNow":"Buy now","shipping":"Free shipping above ₹999. COD available.","product":{"view":"View product","metaTitle":"{{title}} — E-Commerce Store","metaDescription":"Shop {{title}} online with cash on delivery across India."},"category":{"view":"View category","metaTitle":"{{title}} — E-Commerce Store","metaDescription":"Browse {{title}} products with cash on delivery across India.","hero":"Shop by category","footer":"Showing products in stock. COD available across India.","empty":"No products in this category right now."},"outOfStock":"Out of stock"}},"now":"$undefined","timeZone":"Asia/Calcutta","children":["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":["$","body",null,{"children":["$","div",null,{"className":"flex flex-col min-h-screen","children":[["$","header",null,{"className":"flex items-center justify-between p-4 border-b","children":[["$","span",null,{"className":"text-lg font-semibold","children":"English"}],"$L17"]}],["$","main",null,{"className":"flex-1 p-6 max-w-3xl mx-auto w-full","children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]}],["$","footer",null,{"className":"text-center p-4 text-sm text-muted-foreground border-t","children":"E-Commerce Store"}]]}]}]}]}] +17:["$","div",null,{"className":"flex items-center gap-2","children":[["$","a",null,{"href":"/en","className":"inline-flex items-center justify-center gap-2 whitespace-nowrap font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 bg-primary text-primary-foreground shadow hover:bg-primary/90 h-8 rounded-md px-3 text-xs flex items-center gap-1","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-arrow-left h-4 w-4","children":[["$","path","1l729n",{"d":"m12 19-7-7 7-7"}],["$","path","x3x0zl",{"d":"M19 12H5"}],"$undefined"]}],"EN"],"ref":null}],["$","a",null,{"href":"/bn","className":"inline-flex items-center justify-center gap-2 whitespace-nowrap font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground h-8 rounded-md px-3 text-xs flex items-center gap-1","children":["BN",["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-arrow-right h-4 w-4","children":[["$","path","1ays0h",{"d":"M5 12h14"}],["$","path","xquz4c",{"d":"m12 5 7 7-7 7"}],"$undefined"]}]],"ref":null}]]}] +18:I[27201,["$2"],"IconMark"] +b:null +11:[["$","title","0",{"children":"E-Commerce Store"}],["$","meta","1",{"name":"description","content":"Domestic shipping across India"}],["$","link","2",{"rel":"icon","href":"/favicon.ico?favicon.117ezoe8m31dk.ico","sizes":"48x48","type":"image/x-icon"}],["$","$L18","3",{}]] diff --git a/e-commerce/.next/server/route-cache/APP_PAGE/2825bf9e1aa035199cc70149b2d86ad387d3637a420605faa046db23b53f0b30/$/en.segments/$d$locale/__PAGE__.segment.rsc b/e-commerce/.next/server/route-cache/APP_PAGE/2825bf9e1aa035199cc70149b2d86ad387d3637a420605faa046db23b53f0b30/$/en.segments/$d$locale/__PAGE__.segment.rsc new file mode 100644 index 0000000000000000000000000000000000000000..3a289d292a035d812d8bbb4950bfaf6a5469e22d --- /dev/null +++ b/e-commerce/.next/server/route-cache/APP_PAGE/2825bf9e1aa035199cc70149b2d86ad387d3637a420605faa046db23b53f0b30/$/en.segments/$d$locale/__PAGE__.segment.rsc @@ -0,0 +1,33 @@ +1:"$Sreact.fragment" +2:"/_next/static/chunks/0umf92h1sb77c.js" +3:I[39756,["$2"],"default"] +4:I[37457,["$2"],"default"] +8:"/_next/static/chunks/2pv7bk-fii9c2.js" +9:I[75696,["$2","$8"],"default"] +11:"ViewportBoundary" +12:I[97367,["$2"],"$11"] +13:"MetadataBoundary" +14:I[97367,["$2"],"$13"] +15:"$Sreact.suspense" +16:I[27201,["$2"],"IconMark"] +:HL["/_next/static/chunks/3scjwwi8pqt2y.css","style"] +6:X +e:[["children",{"s":"__PAGE__","h":160,"d":{"r":"$Lf","p":"$@10","v":null,"s":"$6"}}]] +7:[["children",{"s":{"n":"locale","t":"d","k":"en","s":[]},"h":96,"d":{"r":["$","$1","c",{"children":[[["$","script","script-0",{"src":"/_next/static/chunks/2pv7bk-fii9c2.js","async":true}]],["$","$L9",null,{"locale":"en","messages":{"home":{"title":"E-Commerce Store","hero":"Domestic shipping across India","lang":"English","catalog":"Catalog","about":"About"},"catalog":{"back":"Back","hsn":"HSN","available":"Available","units":"units","variants":"Variants","variantsCount":"{{count}} variant(s)","buyNow":"Buy now","shipping":"Free shipping above ₹999. COD available.","product":{"view":"View product","metaTitle":"{{title}} — E-Commerce Store","metaDescription":"Shop {{title}} online with cash on delivery across India."},"category":{"view":"View category","metaTitle":"{{title}} — E-Commerce Store","metaDescription":"Browse {{title}} products with cash on delivery across India.","hero":"Shop by category","footer":"Showing products in stock. COD available across India.","empty":"No products in this category right now."},"outOfStock":"Out of stock"}},"timeZone":"Asia/Calcutta","children":["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":["$","body",null,{"children":["$","div",null,{"className":"flex flex-col min-h-screen","children":[["$","header",null,{"className":"flex items-center justify-between p-4 border-b","children":[["$","span",null,{"className":"text-lg font-semibold","children":"English"}],["$","div",null,{"className":"flex items-center gap-2","children":[["$","a",null,{"href":"/en","className":"inline-flex items-center justify-center gap-2 whitespace-nowrap font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 bg-primary text-primary-foreground shadow hover:bg-primary/90 h-8 rounded-md px-3 text-xs flex items-center gap-1","children":[["$","svg",null,{"xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-arrow-left h-4 w-4","children":[["$","path","1l729n",{"d":"m12 19-7-7 7-7"}],["$","path","x3x0zl",{"d":"M19 12H5"}],"$undefined"]}],"EN"],"ref":null}],["$","a",null,{"href":"/bn","className":"inline-flex items-center justify-center gap-2 whitespace-nowrap font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground h-8 rounded-md px-3 text-xs flex items-center gap-1","children":["BN","$La"],"ref":null}]]}]]}],"$Lb","$Lc"]}]}]}]}]]}],"p":"$@d","v":null,"s":"$6"},"c":"$Qe"}]] +0:{"t":{"t":{"s":"","h":80,"d":{"r":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/3scjwwi8pqt2y.css","precedence":"next"}],["$","script","script-0",{"src":"/_next/static/chunks/0umf92h1sb77c.js","async":true}]],["$","html",null,{"lang":"en","className":"T19VSG_variable _8Li5zG_variable","children":["$","body",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","template":["$","$L4",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]}]]}],"p":"$@5","v":null,"s":"$6"},"c":"$Q7"},"h":{"r":["$","$1","h",{"children":[null,["$","$L12",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","$L14",null,{"children":[["$","div",null,{"hidden":true,"children":["$","$15",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"E-Commerce Store"}],["$","meta","1",{"name":"description","content":"Domestic shipping across India"}],["$","link","2",{"rel":"icon","href":"/favicon.ico?favicon.117ezoe8m31dk.ico","sizes":"48x48","type":"image/x-icon"}],["$","$L16","3",{}]]}]}],null]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"p":"$@17","v":null,"s":"$6"}},"a":"$@18","u":"$@19","b":"dRI9LFT7roNJ8J1q20Bu8"} +1a:"/_next/static/chunks/2n5qeheznvl4u.js" +1b:I[22016,["$2","$8","$1a"],""] +1c:I[97367,["$2"],"OutletBoundary"] +a:["$","svg",null,{"xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-arrow-right h-4 w-4","children":[["$","path","1ays0h",{"d":"M5 12h14"}],["$","path","xquz4c",{"d":"m12 5 7 7-7 7"}],"$undefined"]}] +b:["$","main",null,{"className":"flex-1 p-6 max-w-3xl mx-auto w-full","children":["$","$L3",null,{"parallelRouterKey":"children","template":["$","$L4",null,{}]}]}] +c:["$","footer",null,{"className":"text-center p-4 text-sm text-muted-foreground border-t","children":"E-Commerce Store"}] +f:["$","$1","c",{"children":[[["$","h1",null,{"className":"text-3xl font-bold tracking-tight","children":"E-Commerce Store"}],["$","p",null,{"className":"mt-3 text-muted-foreground text-lg","children":"Domestic shipping across India"}],["$","div",null,{"className":"mt-6 flex gap-3","children":[["$","$L1b",null,{"href":"/en/category/men-tshirts","children":["$","button",null,{"className":"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 bg-primary text-primary-foreground shadow hover:bg-primary/90 h-9 px-4 py-2","children":["Catalog"," ",["$","svg",null,{"xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-arrow-right ml-2 h-4 w-4","children":[["$","path","1ays0h",{"d":"M5 12h14"}],["$","path","xquz4c",{"d":"m12 5 7 7-7 7"}],"$undefined"]}]]}]}],["$","button",null,{"className":"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground h-9 px-4 py-2","children":"About"}]]}]],[["$","script","script-0",{"src":"/_next/static/chunks/2n5qeheznvl4u.js","async":true}]],["$","$L1c",null,{"children":["$","$15",null,{"name":"Next.MetadataOutlet","children":"$@1d"}]}]]}] +6:300 +1d:null +19:true +6:C +18:0 +d:"$undefined" +5:"$undefined" +17:"$undefined" +10:"$undefined" diff --git a/e-commerce/.next/server/route-cache/APP_PAGE/2825bf9e1aa035199cc70149b2d86ad387d3637a420605faa046db23b53f0b30/$/en.segments/_full.segment.rsc b/e-commerce/.next/server/route-cache/APP_PAGE/2825bf9e1aa035199cc70149b2d86ad387d3637a420605faa046db23b53f0b30/$/en.segments/_full.segment.rsc new file mode 100644 index 0000000000000000000000000000000000000000..6253254df9d996fb447f37dbf6763802fb2eb152 --- /dev/null +++ b/e-commerce/.next/server/route-cache/APP_PAGE/2825bf9e1aa035199cc70149b2d86ad387d3637a420605faa046db23b53f0b30/$/en.segments/_full.segment.rsc @@ -0,0 +1,28 @@ +1:"$Sreact.fragment" +2:"/_next/static/chunks/0umf92h1sb77c.js" +3:I[39756,["$2"],"default"] +4:I[37457,["$2"],"default"] +9:I[97367,["$2"],"OutletBoundary"] +a:"$Sreact.suspense" +c:"ViewportBoundary" +d:I[97367,["$2"],"$c"] +f:"MetadataBoundary" +10:I[97367,["$2"],"$f"] +12:I[68027,["$2"],"default",1] +:HL["/_next/static/chunks/3scjwwi8pqt2y.css","style"] +:HL["/_next/static/media/797e433ab948586e-s.p.0r6juujl39pe6.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/caa3a2e1cccd8315-s.p.0wgildi0cnwt9.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +7:[["children",{"s":"__PAGE__","h":512,"d":{"r":["$","$1","c",{"children":["$L8",[["$","script","script-0",{"src":"/_next/static/chunks/2n5qeheznvl4u.js","async":true,"nonce":"$undefined"}]],["$","$L9",null,{"children":["$","$a",null,{"name":"Next.MetadataOutlet","children":"$@b"}]}]]}],"p":false,"v":null}}]] +5:[["children",{"s":{"n":"locale","t":"d","k":"en","s":[]},"h":512,"d":{"r":["$","$1","c",{"children":[[["$","script","script-0",{"src":"/_next/static/chunks/2pv7bk-fii9c2.js","async":true,"nonce":"$undefined"}]],"$L6"]}],"p":false,"v":null},"c":"$Q7"}]] +0:{"P":null,"c":["","en"],"q":"","i":false,"t":{"t":{"s":"","h":528,"d":{"r":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/3scjwwi8pqt2y.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/0umf92h1sb77c.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","className":"T19VSG_variable _8Li5zG_variable","children":["$","body",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}],"p":false,"v":null},"c":"$Q5"},"h":{"r":["$","$1","h",{"children":[null,["$","$Ld",null,{"children":"$Le"}],["$","$L10",null,{"children":[["$","div",null,{"hidden":true,"children":["$","$a",null,{"name":"Next.Metadata","children":"$L11"}]}],null]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"p":false,"v":null}},"m":"$undefined","G":["$12",[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/3scjwwi8pqt2y.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]]],"S":true,"r":"$undefined","s":"$undefined","a":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"dRI9LFT7roNJ8J1q20Bu8"} +13:"/_next/static/chunks/2pv7bk-fii9c2.js" +14:"/_next/static/chunks/2n5qeheznvl4u.js" +15:I[22016,["$2","$13","$14"],""] +8:[["$","h1",null,{"className":"text-3xl font-bold tracking-tight","children":"E-Commerce Store"}],["$","p",null,{"className":"mt-3 text-muted-foreground text-lg","children":"Domestic shipping across India"}],["$","div",null,{"className":"mt-6 flex gap-3","children":[["$","$L15",null,{"href":"/en/category/men-tshirts","children":["$","button",null,{"className":"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 bg-primary text-primary-foreground shadow hover:bg-primary/90 h-9 px-4 py-2","ref":"$undefined","children":["Catalog"," ",["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-arrow-right ml-2 h-4 w-4","children":[["$","path","1ays0h",{"d":"M5 12h14"}],["$","path","xquz4c",{"d":"m12 5 7 7-7 7"}],"$undefined"]}]]}]}],["$","button",null,{"className":"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground h-9 px-4 py-2","ref":"$undefined","children":"About"}]]}]] +e:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] +16:I[75696,["$2","$13"],"default"] +6:["$","$L16",null,{"formats":"$undefined","locale":"en","messages":{"home":{"title":"E-Commerce Store","hero":"Domestic shipping across India","lang":"English","catalog":"Catalog","about":"About"},"catalog":{"back":"Back","hsn":"HSN","available":"Available","units":"units","variants":"Variants","variantsCount":"{{count}} variant(s)","buyNow":"Buy now","shipping":"Free shipping above ₹999. COD available.","product":{"view":"View product","metaTitle":"{{title}} — E-Commerce Store","metaDescription":"Shop {{title}} online with cash on delivery across India."},"category":{"view":"View category","metaTitle":"{{title}} — E-Commerce Store","metaDescription":"Browse {{title}} products with cash on delivery across India.","hero":"Shop by category","footer":"Showing products in stock. COD available across India.","empty":"No products in this category right now."},"outOfStock":"Out of stock"}},"now":"$undefined","timeZone":"Asia/Calcutta","children":["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":["$","body",null,{"children":["$","div",null,{"className":"flex flex-col min-h-screen","children":[["$","header",null,{"className":"flex items-center justify-between p-4 border-b","children":[["$","span",null,{"className":"text-lg font-semibold","children":"English"}],"$L17"]}],["$","main",null,{"className":"flex-1 p-6 max-w-3xl mx-auto w-full","children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]}],["$","footer",null,{"className":"text-center p-4 text-sm text-muted-foreground border-t","children":"E-Commerce Store"}]]}]}]}]}] +17:["$","div",null,{"className":"flex items-center gap-2","children":[["$","a",null,{"href":"/en","className":"inline-flex items-center justify-center gap-2 whitespace-nowrap font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 bg-primary text-primary-foreground shadow hover:bg-primary/90 h-8 rounded-md px-3 text-xs flex items-center gap-1","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-arrow-left h-4 w-4","children":[["$","path","1l729n",{"d":"m12 19-7-7 7-7"}],["$","path","x3x0zl",{"d":"M19 12H5"}],"$undefined"]}],"EN"],"ref":null}],["$","a",null,{"href":"/bn","className":"inline-flex items-center justify-center gap-2 whitespace-nowrap font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground h-8 rounded-md px-3 text-xs flex items-center gap-1","children":["BN",["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-arrow-right h-4 w-4","children":[["$","path","1ays0h",{"d":"M5 12h14"}],["$","path","xquz4c",{"d":"m12 5 7 7-7 7"}],"$undefined"]}]],"ref":null}]]}] +18:I[27201,["$2"],"IconMark"] +b:null +11:[["$","title","0",{"children":"E-Commerce Store"}],["$","meta","1",{"name":"description","content":"Domestic shipping across India"}],["$","link","2",{"rel":"icon","href":"/favicon.ico?favicon.117ezoe8m31dk.ico","sizes":"48x48","type":"image/x-icon"}],["$","$L18","3",{}]] diff --git a/e-commerce/.next/server/route-cache/APP_PAGE/2825bf9e1aa035199cc70149b2d86ad387d3637a420605faa046db23b53f0b30/$/en.segments/_tree.segment.rsc b/e-commerce/.next/server/route-cache/APP_PAGE/2825bf9e1aa035199cc70149b2d86ad387d3637a420605faa046db23b53f0b30/$/en.segments/_tree.segment.rsc new file mode 100644 index 0000000000000000000000000000000000000000..d2429cece5f3da85b97914e06a7e476814f45030 --- /dev/null +++ b/e-commerce/.next/server/route-cache/APP_PAGE/2825bf9e1aa035199cc70149b2d86ad387d3637a420605faa046db23b53f0b30/$/en.segments/_tree.segment.rsc @@ -0,0 +1,6 @@ +:HL["/_next/static/chunks/3scjwwi8pqt2y.css","style"] +:HL["/_next/static/media/797e433ab948586e-s.p.0r6juujl39pe6.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/caa3a2e1cccd8315-s.p.0wgildi0cnwt9.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +2:[["children",{"s":"__PAGE__","h":160}]] +1:[["children",{"s":{"n":"locale","t":"d","k":"en","s":[]},"h":96,"c":"$Q2"}]] +0:{"b":"dRI9LFT7roNJ8J1q20Bu8","t":{"t":{"s":"","h":80,"c":"$Q1"}}} diff --git a/e-commerce/.next/server/route-cache/APP_PAGE/954d9b28e3a2b560715115f039892df7bb54ac50a7c31d718eaa2495dd02d460/$/bn/catalog/category/men-tshirts.html b/e-commerce/.next/server/route-cache/APP_PAGE/954d9b28e3a2b560715115f039892df7bb54ac50a7c31d718eaa2495dd02d460/$/bn/catalog/category/men-tshirts.html new file mode 100644 index 0000000000000000000000000000000000000000..4dde1d94bd49aca9c6fe782f1b263e116219aa59 --- /dev/null +++ b/e-commerce/.next/server/route-cache/APP_PAGE/954d9b28e3a2b560715115f039892df7bb54ac50a7c31d718eaa2495dd02d460/$/bn/catalog/category/men-tshirts.html @@ -0,0 +1 @@ +catalog.category.metaTitle
বাংলা

পুরুষের টি-শার্ট

বিভাগ অনুযায়ী দেখুন

ক্ল্যাসিক ক্রু নেক টি-শার্ট
HSN 610910
₹৪৯৯.০০
200 টুকরো
স্টকে থাকা পণ্য দেখানো হচ্ছে। ভারত জুড়ে বিকাশে পেমেন্ট সম্ভব।
E-Commerce Store
\ No newline at end of file diff --git a/e-commerce/.next/server/route-cache/APP_PAGE/954d9b28e3a2b560715115f039892df7bb54ac50a7c31d718eaa2495dd02d460/$/bn/catalog/category/men-tshirts.meta b/e-commerce/.next/server/route-cache/APP_PAGE/954d9b28e3a2b560715115f039892df7bb54ac50a7c31d718eaa2495dd02d460/$/bn/catalog/category/men-tshirts.meta new file mode 100644 index 0000000000000000000000000000000000000000..56ff973dc640bc53985560aa648338a41c33e9b9 --- /dev/null +++ b/e-commerce/.next/server/route-cache/APP_PAGE/954d9b28e3a2b560715115f039892df7bb54ac50a7c31d718eaa2495dd02d460/$/bn/catalog/category/men-tshirts.meta @@ -0,0 +1 @@ +{"headers":{"x-nextjs-stale-time":"300","x-nextjs-prerender":"1","x-next-cache-tags":"_N_T_/layout,_N_T_/[locale]/layout,_N_T_/[locale]/catalog/layout,_N_T_/[locale]/catalog/category/layout,_N_T_/[locale]/catalog/category/[slug]/layout,_N_T_/[locale]/catalog/category/[slug]/page,_N_T_/bn/catalog/category/men-tshirts"},"segmentPaths":["/_tree","/_full","/$d$locale/catalog/category/$d$slug/__PAGE__"],"prefetchHints":{"hints":64,"slots":{"children":{"hints":96,"slots":{"children":{"hints":96,"slots":{"children":{"hints":96,"slots":{"children":{"hints":96,"slots":{"children":{"hints":160,"slots":null}}}}}}}}}}},"routeCache":{"key":"/route-cache/APP_PAGE/954d9b28e3a2b560715115f039892df7bb54ac50a7c31d718eaa2495dd02d460/$/bn/catalog/category/men-tshirts","owner":{"kind":"APP_PAGE","sourceRoute":"/[locale]/catalog/category/[slug]/page"},"isFallback":false},"routeCacheLastModified":1791887953238} \ No newline at end of file diff --git a/e-commerce/.next/server/route-cache/APP_PAGE/954d9b28e3a2b560715115f039892df7bb54ac50a7c31d718eaa2495dd02d460/$/bn/catalog/category/men-tshirts.rsc b/e-commerce/.next/server/route-cache/APP_PAGE/954d9b28e3a2b560715115f039892df7bb54ac50a7c31d718eaa2495dd02d460/$/bn/catalog/category/men-tshirts.rsc new file mode 100644 index 0000000000000000000000000000000000000000..1974600af38f10aeef28b2d5a351f3b295d06a99 --- /dev/null +++ b/e-commerce/.next/server/route-cache/APP_PAGE/954d9b28e3a2b560715115f039892df7bb54ac50a7c31d718eaa2495dd02d460/$/bn/catalog/category/men-tshirts.rsc @@ -0,0 +1,33 @@ +1:"$Sreact.fragment" +2:"/_next/static/chunks/0umf92h1sb77c.js" +3:I[39756,["$2"],"default"] +4:I[37457,["$2"],"default"] +d:I[97367,["$2"],"OutletBoundary"] +e:"$Sreact.suspense" +10:"ViewportBoundary" +11:I[97367,["$2"],"$10"] +13:"MetadataBoundary" +14:I[97367,["$2"],"$13"] +16:I[68027,["$2"],"default",1] +:HL["/_next/static/chunks/3scjwwi8pqt2y.css","style"] +:HL["/_next/static/media/797e433ab948586e-s.p.0r6juujl39pe6.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/caa3a2e1cccd8315-s.p.0wgildi0cnwt9.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +8:X +b:[["children",{"s":"__PAGE__","h":512,"d":{"r":["$","$1","c",{"children":["$Lc",[["$","script","script-0",{"src":"/_next/static/chunks/2n5qeheznvl4u.js","async":true,"nonce":"$undefined"}]],["$","$Ld",null,{"children":["$","$e",null,{"name":"Next.MetadataOutlet","children":"$@f"}]}]]}],"p":false,"v":null}}]] +a:[["children",{"s":{"n":"slug","t":"d","k":"men-tshirts","s":[]},"h":512,"d":{"r":["$","$1","c",{"children":[null,["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],"p":false,"v":"$8"},"c":"$Qb"}]] +9:[["children",{"s":"category","h":512,"d":{"r":["$","$1","c",{"children":[null,["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],"p":false,"v":"$8"},"c":"$Qa"}]] +7:[["children",{"s":"catalog","h":512,"d":{"r":["$","$1","c",{"children":[null,["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],"p":false,"v":"$8"},"c":"$Q9"}]] +5:[["children",{"s":{"n":"locale","t":"d","k":"bn","s":[]},"h":512,"d":{"r":["$","$1","c",{"children":[[["$","script","script-0",{"src":"/_next/static/chunks/2pv7bk-fii9c2.js","async":true,"nonce":"$undefined"}]],"$L6"]}],"p":false,"v":null},"c":"$Q7"}]] +0:{"P":null,"c":["","bn","catalog","category","men-tshirts"],"q":"","i":false,"t":{"t":{"s":"","h":528,"d":{"r":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/3scjwwi8pqt2y.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/0umf92h1sb77c.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","className":"T19VSG_variable _8Li5zG_variable","children":["$","body",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}],"p":false,"v":null},"c":"$Q5"},"h":{"r":["$","$1","h",{"children":[null,["$","$L11",null,{"children":"$L12"}],["$","$L14",null,{"children":[["$","div",null,{"hidden":true,"children":["$","$e",null,{"name":"Next.Metadata","children":"$L15"}]}],null]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"p":false,"v":null}},"m":"$undefined","G":["$16",[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/3scjwwi8pqt2y.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]]],"S":true,"r":"$undefined","s":"$undefined","a":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"dRI9LFT7roNJ8J1q20Bu8"} +8:C +17:"/_next/static/chunks/2pv7bk-fii9c2.js" +18:I[75696,["$2","$17"],"default"] +6:["$","$L18",null,{"formats":"$undefined","locale":"bn","messages":{"home":{"title":"ই-কমার্স স্টোর","hero":"ভারত জুড়ে ডেলিভারি","lang":"বাংলা","catalog":"ক্যাটালগ","about":"সম্পর্কে"},"catalog":{"back":"পিছনে","hsn":"এইচএসএন","available":"উপলব্ধ","units":"টুকরো","variants":"ভেরিয়েন্ট","variantsCount":"{{count}} ভেরিয়েন্ট(গুলো)","buyNow":"এখন কিনুন","shipping":"৯৯৯ টাকার উপরে বিনামূল্য ডেলিভারি। বিকাশে পেমেন্ট সম্ভব।","product":{"view":"পণ্য দেখুন","metaTitle":"{{title}} — ই-কমার্স স্টোর","metaDescription":"ভারত জুড়ে বিকাশে পেমেন্ট দিয়ে {{title}} অনলাইনে কিনুন।"},"category":{"view":"বিভাগ দেখুন","metaTitle":"{{title}} — ই-কমার্স স্টোর","metaDescription":"ভারত জুড়ে বিকাশে পেমেন্ট দিয়ে {{title}} এর পণ্য দেখুন।","hero":"বিভাগ অনুযায়ী দেখুন","footer":"স্টকে থাকা পণ্য দেখানো হচ্ছে। ভারত জুড়ে বিকাশে পেমেন্ট সম্ভব।","empty":"এই বিভাগে এখন কোনো পণ্য নেই।"},"outOfStock":"স্টক নেই"}},"now":"$undefined","timeZone":"Asia/Calcutta","children":["$","html",null,{"lang":"bn","suppressHydrationWarning":true,"children":["$","body",null,{"children":["$","div",null,{"className":"flex flex-col min-h-screen","children":[["$","header",null,{"className":"flex items-center justify-between p-4 border-b","children":[["$","span",null,{"className":"text-lg font-semibold","children":"বাংলা"}],"$L19"]}],["$","main",null,{"className":"flex-1 p-6 max-w-3xl mx-auto w-full","children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]}],["$","footer",null,{"className":"text-center p-4 text-sm text-muted-foreground border-t","children":"E-Commerce Store"}]]}]}]}]}] +12:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] +19:["$","div",null,{"className":"flex items-center gap-2","children":[["$","a",null,{"href":"/en","className":"inline-flex items-center justify-center gap-2 whitespace-nowrap font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 bg-primary text-primary-foreground shadow hover:bg-primary/90 h-8 rounded-md px-3 text-xs flex items-center gap-1","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-arrow-left h-4 w-4","children":[["$","path","1l729n",{"d":"m12 19-7-7 7-7"}],["$","path","x3x0zl",{"d":"M19 12H5"}],"$undefined"]}],"EN"],"ref":null}],["$","a",null,{"href":"/bn","className":"inline-flex items-center justify-center gap-2 whitespace-nowrap font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground h-8 rounded-md px-3 text-xs flex items-center gap-1","children":["BN",["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-arrow-right h-4 w-4","children":[["$","path","1ays0h",{"d":"M5 12h14"}],["$","path","xquz4c",{"d":"m12 5 7 7-7 7"}],"$undefined"]}]],"ref":null}]]}] +1a:I[27201,["$2"],"IconMark"] +f:null +15:[["$","title","0",{"children":"catalog.category.metaTitle"}],["$","meta","1",{"name":"description","content":"ভারত জুড়ে বিকাশে পেমেন্ট দিয়ে {{title}} এর পণ্য দেখুন।"}],["$","link","2",{"rel":"icon","href":"/favicon.ico?favicon.117ezoe8m31dk.ico","sizes":"48x48","type":"image/x-icon"}],["$","$L1a","3",{}]] +1b:"/_next/static/chunks/2n5qeheznvl4u.js" +1c:I[22016,["$2","$17","$1b"],""] +c:["$","div",null,{"className":"flex flex-col gap-6","children":[["$","div",null,{"className":"flex items-center gap-4 text-sm text-muted-foreground","children":["$","$L1c",null,{"href":"/bn","className":"inline-flex items-center gap-1","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-arrow-left h-4 w-4","children":[["$","path","1l729n",{"d":"m12 19-7-7 7-7"}],["$","path","x3x0zl",{"d":"M19 12H5"}],"$undefined"]}],"পিছনে"]}]}],["$","div",null,{"className":"space-y-4","children":[" ",["$","h1",null,{"className":"text-3xl font-bold tracking-tight","children":"পুরুষের টি-শার্ট"}],["$","p",null,{"className":"text-muted-foreground","children":"বিভাগ অনুযায়ী দেখুন"}]]}],["$","div",null,{"className":"grid gap-4 sm:grid-cols-2","children":[["$","div","bm7422cfr351m4ycfhfmakre",{"ref":"$undefined","className":"rounded-xl border bg-card text-card-foreground shadow","children":[["$","div",null,{"ref":"$undefined","className":"flex flex-col space-y-1.5 p-6","children":[["$","div",null,{"ref":"$undefined","className":"font-semibold tracking-tight text-lg","children":"ক্ল্যাসিক ক্রু নেক টি-শার্ট"}],["$","div",null,{"ref":"$undefined","className":"text-sm text-muted-foreground flex items-center gap-2","children":["$","div",null,{"className":"inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80","children":["HSN ","610910"]}]}]]}],["$","div",null,{"ref":"$undefined","className":"p-6 pt-0 space-y-3","children":[["$","div",null,{"className":"text-xl font-semibold","children":"₹৪৯৯.০০"}],["$","div",null,{"className":"text-sm text-muted-foreground","children":"200 টুকরো"}],["$","$L1c",null,{"href":"/bn/products/classic-crew-neck-tshirt","className":"block","children":["$","button",null,{"className":"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 bg-primary text-primary-foreground shadow hover:bg-primary/90 h-9 px-4 py-2 w-full","ref":"$undefined","children":"পণ্য দেখুন"}]}]]}]]}]]}],["$","div",null,{"className":"text-sm text-muted-foreground text-center","children":"স্টকে থাকা পণ্য দেখানো হচ্ছে। ভারত জুড়ে বিকাশে পেমেন্ট সম্ভব।"}]]}] diff --git a/e-commerce/.next/server/route-cache/APP_PAGE/954d9b28e3a2b560715115f039892df7bb54ac50a7c31d718eaa2495dd02d460/$/bn/catalog/category/men-tshirts.segments/$d$locale/catalog/category/$d$slug/__PAGE__.segment.rsc b/e-commerce/.next/server/route-cache/APP_PAGE/954d9b28e3a2b560715115f039892df7bb54ac50a7c31d718eaa2495dd02d460/$/bn/catalog/category/men-tshirts.segments/$d$locale/catalog/category/$d$slug/__PAGE__.segment.rsc new file mode 100644 index 0000000000000000000000000000000000000000..555d555a1a190959ea227c43cfc4f7f92a350a60 --- /dev/null +++ b/e-commerce/.next/server/route-cache/APP_PAGE/954d9b28e3a2b560715115f039892df7bb54ac50a7c31d718eaa2495dd02d460/$/bn/catalog/category/men-tshirts.segments/$d$locale/catalog/category/$d$slug/__PAGE__.segment.rsc @@ -0,0 +1,44 @@ +1:"$Sreact.fragment" +2:"/_next/static/chunks/0umf92h1sb77c.js" +3:I[39756,["$2"],"default"] +4:I[37457,["$2"],"default"] +8:"/_next/static/chunks/2pv7bk-fii9c2.js" +9:I[75696,["$2","$8"],"default"] +1b:"ViewportBoundary" +1c:I[97367,["$2"],"$1b"] +1d:"MetadataBoundary" +1e:I[97367,["$2"],"$1d"] +1f:"$Sreact.suspense" +20:I[27201,["$2"],"IconMark"] +:HL["/_next/static/chunks/3scjwwi8pqt2y.css","style"] +6:X +11:X +11:C +18:[["children",{"s":"__PAGE__","h":160,"d":{"r":"$L19","p":"$@1a","v":null,"s":"$6"}}]] +15:[["children",{"s":{"n":"slug","t":"d","k":"men-tshirts","s":[]},"h":96,"d":{"r":"$L16","p":"$@17","v":"$11","s":"$6"},"c":"$Q18"}]] +12:[["children",{"s":"category","h":96,"d":{"r":"$L13","p":"$@14","v":"$11","s":"$6"},"c":"$Q15"}]] +e:[["children",{"s":"catalog","h":96,"d":{"r":"$Lf","p":"$@10","v":"$11","s":"$6"},"c":"$Q12"}]] +7:[["children",{"s":{"n":"locale","t":"d","k":"bn","s":[]},"h":96,"d":{"r":["$","$1","c",{"children":[[["$","script","script-0",{"src":"/_next/static/chunks/2pv7bk-fii9c2.js","async":true}]],["$","$L9",null,{"locale":"bn","messages":{"home":{"title":"ই-কমার্স স্টোর","hero":"ভারত জুড়ে ডেলিভারি","lang":"বাংলা","catalog":"ক্যাটালগ","about":"সম্পর্কে"},"catalog":{"back":"পিছনে","hsn":"এইচএসএন","available":"উপলব্ধ","units":"টুকরো","variants":"ভেরিয়েন্ট","variantsCount":"{{count}} ভেরিয়েন্ট(গুলো)","buyNow":"এখন কিনুন","shipping":"৯৯৯ টাকার উপরে বিনামূল্য ডেলিভারি। বিকাশে পেমেন্ট সম্ভব।","product":{"view":"পণ্য দেখুন","metaTitle":"{{title}} — ই-কমার্স স্টোর","metaDescription":"ভারত জুড়ে বিকাশে পেমেন্ট দিয়ে {{title}} অনলাইনে কিনুন।"},"category":{"view":"বিভাগ দেখুন","metaTitle":"{{title}} — ই-কমার্স স্টোর","metaDescription":"ভারত জুড়ে বিকাশে পেমেন্ট দিয়ে {{title}} এর পণ্য দেখুন।","hero":"বিভাগ অনুযায়ী দেখুন","footer":"স্টকে থাকা পণ্য দেখানো হচ্ছে। ভারত জুড়ে বিকাশে পেমেন্ট সম্ভব।","empty":"এই বিভাগে এখন কোনো পণ্য নেই।"},"outOfStock":"স্টক নেই"}},"timeZone":"Asia/Calcutta","children":["$","html",null,{"lang":"bn","suppressHydrationWarning":true,"children":["$","body",null,{"children":["$","div",null,{"className":"flex flex-col min-h-screen","children":[["$","header",null,{"className":"flex items-center justify-between p-4 border-b","children":[["$","span",null,{"className":"text-lg font-semibold","children":"বাংলা"}],["$","div",null,{"className":"flex items-center gap-2","children":[["$","a",null,{"href":"/en","className":"inline-flex items-center justify-center gap-2 whitespace-nowrap font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 bg-primary text-primary-foreground shadow hover:bg-primary/90 h-8 rounded-md px-3 text-xs flex items-center gap-1","children":[["$","svg",null,{"xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-arrow-left h-4 w-4","children":[["$","path","1l729n",{"d":"m12 19-7-7 7-7"}],["$","path","x3x0zl",{"d":"M19 12H5"}],"$undefined"]}],"EN"],"ref":null}],["$","a",null,{"href":"/bn","className":"inline-flex items-center justify-center gap-2 whitespace-nowrap font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground h-8 rounded-md px-3 text-xs flex items-center gap-1","children":["BN","$La"],"ref":null}]]}]]}],"$Lb","$Lc"]}]}]}]}]]}],"p":"$@d","v":null,"s":"$6"},"c":"$Qe"}]] +0:{"t":{"t":{"s":"","h":80,"d":{"r":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/3scjwwi8pqt2y.css","precedence":"next"}],["$","script","script-0",{"src":"/_next/static/chunks/0umf92h1sb77c.js","async":true}]],["$","html",null,{"lang":"en","className":"T19VSG_variable _8Li5zG_variable","children":["$","body",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","template":["$","$L4",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]}]]}],"p":"$@5","v":null,"s":"$6"},"c":"$Q7"},"h":{"r":["$","$1","h",{"children":[null,["$","$L1c",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","$L1e",null,{"children":[["$","div",null,{"hidden":true,"children":["$","$1f",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"catalog.category.metaTitle"}],["$","meta","1",{"name":"description","content":"ভারত জুড়ে বিকাশে পেমেন্ট দিয়ে {{title}} এর পণ্য দেখুন।"}],["$","link","2",{"rel":"icon","href":"/favicon.ico?favicon.117ezoe8m31dk.ico","sizes":"48x48","type":"image/x-icon"}],["$","$L20","3",{}]]}]}],null]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"p":"$@21","v":null,"s":"$6"}},"a":"$@22","u":"$@23","b":"dRI9LFT7roNJ8J1q20Bu8"} +24:"/_next/static/chunks/2n5qeheznvl4u.js" +25:I[22016,["$2","$8","$24"],""] +26:I[97367,["$2"],"OutletBoundary"] +a:["$","svg",null,{"xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-arrow-right h-4 w-4","children":[["$","path","1ays0h",{"d":"M5 12h14"}],["$","path","xquz4c",{"d":"m12 5 7 7-7 7"}],"$undefined"]}] +b:["$","main",null,{"className":"flex-1 p-6 max-w-3xl mx-auto w-full","children":["$","$L3",null,{"parallelRouterKey":"children","template":["$","$L4",null,{}]}]}] +c:["$","footer",null,{"className":"text-center p-4 text-sm text-muted-foreground border-t","children":"E-Commerce Store"}] +f:["$","$1","c",{"children":[null,["$","$L3",null,{"parallelRouterKey":"children","template":["$","$L4",null,{}]}]]}] +13:["$","$1","c",{"children":[null,["$","$L3",null,{"parallelRouterKey":"children","template":["$","$L4",null,{}]}]]}] +16:["$","$1","c",{"children":[null,["$","$L3",null,{"parallelRouterKey":"children","template":["$","$L4",null,{}]}]]}] +19:["$","$1","c",{"children":[["$","div",null,{"className":"flex flex-col gap-6","children":[["$","div",null,{"className":"flex items-center gap-4 text-sm text-muted-foreground","children":["$","$L25",null,{"href":"/bn","className":"inline-flex items-center gap-1","children":[["$","svg",null,{"xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-arrow-left h-4 w-4","children":[["$","path","1l729n",{"d":"m12 19-7-7 7-7"}],["$","path","x3x0zl",{"d":"M19 12H5"}],"$undefined"]}],"পিছনে"]}]}],["$","div",null,{"className":"space-y-4","children":[" ",["$","h1",null,{"className":"text-3xl font-bold tracking-tight","children":"পুরুষের টি-শার্ট"}],["$","p",null,{"className":"text-muted-foreground","children":"বিভাগ অনুযায়ী দেখুন"}]]}],["$","div",null,{"className":"grid gap-4 sm:grid-cols-2","children":[["$","div","bm7422cfr351m4ycfhfmakre",{"className":"rounded-xl border bg-card text-card-foreground shadow","children":[["$","div",null,{"className":"flex flex-col space-y-1.5 p-6","children":[["$","div",null,{"className":"font-semibold tracking-tight text-lg","children":"ক্ল্যাসিক ক্রু নেক টি-শার্ট"}],["$","div",null,{"className":"text-sm text-muted-foreground flex items-center gap-2","children":["$","div",null,{"className":"inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80","children":["HSN ","610910"]}]}]]}],["$","div",null,{"className":"p-6 pt-0 space-y-3","children":[["$","div",null,{"className":"text-xl font-semibold","children":"₹৪৯৯.০০"}],["$","div",null,{"className":"text-sm text-muted-foreground","children":"200 টুকরো"}],["$","$L25",null,{"href":"/bn/products/classic-crew-neck-tshirt","className":"block","children":["$","button",null,{"className":"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 bg-primary text-primary-foreground shadow hover:bg-primary/90 h-9 px-4 py-2 w-full","children":"পণ্য দেখুন"}]}]]}]]}]]}],["$","div",null,{"className":"text-sm text-muted-foreground text-center","children":"স্টকে থাকা পণ্য দেখানো হচ্ছে। ভারত জুড়ে বিকাশে পেমেন্ট সম্ভব।"}]]}],[["$","script","script-0",{"src":"/_next/static/chunks/2n5qeheznvl4u.js","async":true}]],["$","$L26",null,{"children":["$","$1f",null,{"name":"Next.MetadataOutlet","children":"$@27"}]}]]}] +6:300 +27:null +23:true +6:C +22:0 +17:"$undefined" +14:"$undefined" +10:"$undefined" +d:"$undefined" +5:"$undefined" +21:"$undefined" +1a:"$undefined" diff --git a/e-commerce/.next/server/route-cache/APP_PAGE/954d9b28e3a2b560715115f039892df7bb54ac50a7c31d718eaa2495dd02d460/$/bn/catalog/category/men-tshirts.segments/_full.segment.rsc b/e-commerce/.next/server/route-cache/APP_PAGE/954d9b28e3a2b560715115f039892df7bb54ac50a7c31d718eaa2495dd02d460/$/bn/catalog/category/men-tshirts.segments/_full.segment.rsc new file mode 100644 index 0000000000000000000000000000000000000000..1974600af38f10aeef28b2d5a351f3b295d06a99 --- /dev/null +++ b/e-commerce/.next/server/route-cache/APP_PAGE/954d9b28e3a2b560715115f039892df7bb54ac50a7c31d718eaa2495dd02d460/$/bn/catalog/category/men-tshirts.segments/_full.segment.rsc @@ -0,0 +1,33 @@ +1:"$Sreact.fragment" +2:"/_next/static/chunks/0umf92h1sb77c.js" +3:I[39756,["$2"],"default"] +4:I[37457,["$2"],"default"] +d:I[97367,["$2"],"OutletBoundary"] +e:"$Sreact.suspense" +10:"ViewportBoundary" +11:I[97367,["$2"],"$10"] +13:"MetadataBoundary" +14:I[97367,["$2"],"$13"] +16:I[68027,["$2"],"default",1] +:HL["/_next/static/chunks/3scjwwi8pqt2y.css","style"] +:HL["/_next/static/media/797e433ab948586e-s.p.0r6juujl39pe6.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/caa3a2e1cccd8315-s.p.0wgildi0cnwt9.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +8:X +b:[["children",{"s":"__PAGE__","h":512,"d":{"r":["$","$1","c",{"children":["$Lc",[["$","script","script-0",{"src":"/_next/static/chunks/2n5qeheznvl4u.js","async":true,"nonce":"$undefined"}]],["$","$Ld",null,{"children":["$","$e",null,{"name":"Next.MetadataOutlet","children":"$@f"}]}]]}],"p":false,"v":null}}]] +a:[["children",{"s":{"n":"slug","t":"d","k":"men-tshirts","s":[]},"h":512,"d":{"r":["$","$1","c",{"children":[null,["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],"p":false,"v":"$8"},"c":"$Qb"}]] +9:[["children",{"s":"category","h":512,"d":{"r":["$","$1","c",{"children":[null,["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],"p":false,"v":"$8"},"c":"$Qa"}]] +7:[["children",{"s":"catalog","h":512,"d":{"r":["$","$1","c",{"children":[null,["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],"p":false,"v":"$8"},"c":"$Q9"}]] +5:[["children",{"s":{"n":"locale","t":"d","k":"bn","s":[]},"h":512,"d":{"r":["$","$1","c",{"children":[[["$","script","script-0",{"src":"/_next/static/chunks/2pv7bk-fii9c2.js","async":true,"nonce":"$undefined"}]],"$L6"]}],"p":false,"v":null},"c":"$Q7"}]] +0:{"P":null,"c":["","bn","catalog","category","men-tshirts"],"q":"","i":false,"t":{"t":{"s":"","h":528,"d":{"r":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/3scjwwi8pqt2y.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/0umf92h1sb77c.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","className":"T19VSG_variable _8Li5zG_variable","children":["$","body",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}],"p":false,"v":null},"c":"$Q5"},"h":{"r":["$","$1","h",{"children":[null,["$","$L11",null,{"children":"$L12"}],["$","$L14",null,{"children":[["$","div",null,{"hidden":true,"children":["$","$e",null,{"name":"Next.Metadata","children":"$L15"}]}],null]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"p":false,"v":null}},"m":"$undefined","G":["$16",[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/3scjwwi8pqt2y.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]]],"S":true,"r":"$undefined","s":"$undefined","a":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"dRI9LFT7roNJ8J1q20Bu8"} +8:C +17:"/_next/static/chunks/2pv7bk-fii9c2.js" +18:I[75696,["$2","$17"],"default"] +6:["$","$L18",null,{"formats":"$undefined","locale":"bn","messages":{"home":{"title":"ই-কমার্স স্টোর","hero":"ভারত জুড়ে ডেলিভারি","lang":"বাংলা","catalog":"ক্যাটালগ","about":"সম্পর্কে"},"catalog":{"back":"পিছনে","hsn":"এইচএসএন","available":"উপলব্ধ","units":"টুকরো","variants":"ভেরিয়েন্ট","variantsCount":"{{count}} ভেরিয়েন্ট(গুলো)","buyNow":"এখন কিনুন","shipping":"৯৯৯ টাকার উপরে বিনামূল্য ডেলিভারি। বিকাশে পেমেন্ট সম্ভব।","product":{"view":"পণ্য দেখুন","metaTitle":"{{title}} — ই-কমার্স স্টোর","metaDescription":"ভারত জুড়ে বিকাশে পেমেন্ট দিয়ে {{title}} অনলাইনে কিনুন।"},"category":{"view":"বিভাগ দেখুন","metaTitle":"{{title}} — ই-কমার্স স্টোর","metaDescription":"ভারত জুড়ে বিকাশে পেমেন্ট দিয়ে {{title}} এর পণ্য দেখুন।","hero":"বিভাগ অনুযায়ী দেখুন","footer":"স্টকে থাকা পণ্য দেখানো হচ্ছে। ভারত জুড়ে বিকাশে পেমেন্ট সম্ভব।","empty":"এই বিভাগে এখন কোনো পণ্য নেই।"},"outOfStock":"স্টক নেই"}},"now":"$undefined","timeZone":"Asia/Calcutta","children":["$","html",null,{"lang":"bn","suppressHydrationWarning":true,"children":["$","body",null,{"children":["$","div",null,{"className":"flex flex-col min-h-screen","children":[["$","header",null,{"className":"flex items-center justify-between p-4 border-b","children":[["$","span",null,{"className":"text-lg font-semibold","children":"বাংলা"}],"$L19"]}],["$","main",null,{"className":"flex-1 p-6 max-w-3xl mx-auto w-full","children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]}],["$","footer",null,{"className":"text-center p-4 text-sm text-muted-foreground border-t","children":"E-Commerce Store"}]]}]}]}]}] +12:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] +19:["$","div",null,{"className":"flex items-center gap-2","children":[["$","a",null,{"href":"/en","className":"inline-flex items-center justify-center gap-2 whitespace-nowrap font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 bg-primary text-primary-foreground shadow hover:bg-primary/90 h-8 rounded-md px-3 text-xs flex items-center gap-1","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-arrow-left h-4 w-4","children":[["$","path","1l729n",{"d":"m12 19-7-7 7-7"}],["$","path","x3x0zl",{"d":"M19 12H5"}],"$undefined"]}],"EN"],"ref":null}],["$","a",null,{"href":"/bn","className":"inline-flex items-center justify-center gap-2 whitespace-nowrap font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground h-8 rounded-md px-3 text-xs flex items-center gap-1","children":["BN",["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-arrow-right h-4 w-4","children":[["$","path","1ays0h",{"d":"M5 12h14"}],["$","path","xquz4c",{"d":"m12 5 7 7-7 7"}],"$undefined"]}]],"ref":null}]]}] +1a:I[27201,["$2"],"IconMark"] +f:null +15:[["$","title","0",{"children":"catalog.category.metaTitle"}],["$","meta","1",{"name":"description","content":"ভারত জুড়ে বিকাশে পেমেন্ট দিয়ে {{title}} এর পণ্য দেখুন।"}],["$","link","2",{"rel":"icon","href":"/favicon.ico?favicon.117ezoe8m31dk.ico","sizes":"48x48","type":"image/x-icon"}],["$","$L1a","3",{}]] +1b:"/_next/static/chunks/2n5qeheznvl4u.js" +1c:I[22016,["$2","$17","$1b"],""] +c:["$","div",null,{"className":"flex flex-col gap-6","children":[["$","div",null,{"className":"flex items-center gap-4 text-sm text-muted-foreground","children":["$","$L1c",null,{"href":"/bn","className":"inline-flex items-center gap-1","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-arrow-left h-4 w-4","children":[["$","path","1l729n",{"d":"m12 19-7-7 7-7"}],["$","path","x3x0zl",{"d":"M19 12H5"}],"$undefined"]}],"পিছনে"]}]}],["$","div",null,{"className":"space-y-4","children":[" ",["$","h1",null,{"className":"text-3xl font-bold tracking-tight","children":"পুরুষের টি-শার্ট"}],["$","p",null,{"className":"text-muted-foreground","children":"বিভাগ অনুযায়ী দেখুন"}]]}],["$","div",null,{"className":"grid gap-4 sm:grid-cols-2","children":[["$","div","bm7422cfr351m4ycfhfmakre",{"ref":"$undefined","className":"rounded-xl border bg-card text-card-foreground shadow","children":[["$","div",null,{"ref":"$undefined","className":"flex flex-col space-y-1.5 p-6","children":[["$","div",null,{"ref":"$undefined","className":"font-semibold tracking-tight text-lg","children":"ক্ল্যাসিক ক্রু নেক টি-শার্ট"}],["$","div",null,{"ref":"$undefined","className":"text-sm text-muted-foreground flex items-center gap-2","children":["$","div",null,{"className":"inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80","children":["HSN ","610910"]}]}]]}],["$","div",null,{"ref":"$undefined","className":"p-6 pt-0 space-y-3","children":[["$","div",null,{"className":"text-xl font-semibold","children":"₹৪৯৯.০০"}],["$","div",null,{"className":"text-sm text-muted-foreground","children":"200 টুকরো"}],["$","$L1c",null,{"href":"/bn/products/classic-crew-neck-tshirt","className":"block","children":["$","button",null,{"className":"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 bg-primary text-primary-foreground shadow hover:bg-primary/90 h-9 px-4 py-2 w-full","ref":"$undefined","children":"পণ্য দেখুন"}]}]]}]]}]]}],["$","div",null,{"className":"text-sm text-muted-foreground text-center","children":"স্টকে থাকা পণ্য দেখানো হচ্ছে। ভারত জুড়ে বিকাশে পেমেন্ট সম্ভব।"}]]}] diff --git a/e-commerce/.next/server/route-cache/APP_PAGE/954d9b28e3a2b560715115f039892df7bb54ac50a7c31d718eaa2495dd02d460/$/bn/catalog/category/men-tshirts.segments/_tree.segment.rsc b/e-commerce/.next/server/route-cache/APP_PAGE/954d9b28e3a2b560715115f039892df7bb54ac50a7c31d718eaa2495dd02d460/$/bn/catalog/category/men-tshirts.segments/_tree.segment.rsc new file mode 100644 index 0000000000000000000000000000000000000000..3196e7877a5c3e3a1e19c034dffd0676c18c5927 --- /dev/null +++ b/e-commerce/.next/server/route-cache/APP_PAGE/954d9b28e3a2b560715115f039892df7bb54ac50a7c31d718eaa2495dd02d460/$/bn/catalog/category/men-tshirts.segments/_tree.segment.rsc @@ -0,0 +1,9 @@ +:HL["/_next/static/chunks/3scjwwi8pqt2y.css","style"] +:HL["/_next/static/media/797e433ab948586e-s.p.0r6juujl39pe6.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/caa3a2e1cccd8315-s.p.0wgildi0cnwt9.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +5:[["children",{"s":"__PAGE__","h":160}]] +4:[["children",{"s":{"n":"slug","t":"d","k":"men-tshirts","s":[]},"h":96,"c":"$Q5"}]] +3:[["children",{"s":"category","h":96,"c":"$Q4"}]] +2:[["children",{"s":"catalog","h":96,"c":"$Q3"}]] +1:[["children",{"s":{"n":"locale","t":"d","k":"bn","s":[]},"h":96,"c":"$Q2"}]] +0:{"b":"dRI9LFT7roNJ8J1q20Bu8","t":{"t":{"s":"","h":80,"c":"$Q1"}}} diff --git a/e-commerce/.next/server/route-cache/APP_PAGE/954d9b28e3a2b560715115f039892df7bb54ac50a7c31d718eaa2495dd02d460/$/bn/catalog/category/unknown-category.html b/e-commerce/.next/server/route-cache/APP_PAGE/954d9b28e3a2b560715115f039892df7bb54ac50a7c31d718eaa2495dd02d460/$/bn/catalog/category/unknown-category.html new file mode 100644 index 0000000000000000000000000000000000000000..9cfd932de09edead0003dc0a615575c7ad7f7f73 --- /dev/null +++ b/e-commerce/.next/server/route-cache/APP_PAGE/954d9b28e3a2b560715115f039892df7bb54ac50a7c31d718eaa2495dd02d460/$/bn/catalog/category/unknown-category.html @@ -0,0 +1 @@ +ই-কমার্স স্টোর \ No newline at end of file diff --git a/e-commerce/.next/server/route-cache/APP_PAGE/954d9b28e3a2b560715115f039892df7bb54ac50a7c31d718eaa2495dd02d460/$/bn/catalog/category/unknown-category.meta b/e-commerce/.next/server/route-cache/APP_PAGE/954d9b28e3a2b560715115f039892df7bb54ac50a7c31d718eaa2495dd02d460/$/bn/catalog/category/unknown-category.meta new file mode 100644 index 0000000000000000000000000000000000000000..14ef57facc17467ec938d3b86b4f2bd796cd78ad --- /dev/null +++ b/e-commerce/.next/server/route-cache/APP_PAGE/954d9b28e3a2b560715115f039892df7bb54ac50a7c31d718eaa2495dd02d460/$/bn/catalog/category/unknown-category.meta @@ -0,0 +1 @@ +{"headers":{"x-nextjs-stale-time":"300","x-next-cache-tags":"_N_T_/layout,_N_T_/[locale]/layout,_N_T_/[locale]/catalog/layout,_N_T_/[locale]/catalog/category/layout,_N_T_/[locale]/catalog/category/[slug]/layout,_N_T_/[locale]/catalog/category/[slug]/page,_N_T_/bn/catalog/category/unknown-category"},"status":404,"segmentPaths":["/_tree","/_full","/$d$locale/catalog/category/$d$slug/__PAGE__"],"cacheControl":{"revalidate":false}} \ No newline at end of file diff --git a/e-commerce/.next/server/route-cache/APP_PAGE/954d9b28e3a2b560715115f039892df7bb54ac50a7c31d718eaa2495dd02d460/$/bn/catalog/category/unknown-category.rsc b/e-commerce/.next/server/route-cache/APP_PAGE/954d9b28e3a2b560715115f039892df7bb54ac50a7c31d718eaa2495dd02d460/$/bn/catalog/category/unknown-category.rsc new file mode 100644 index 0000000000000000000000000000000000000000..cd188f61552be3e9fca4a21532ffa0b95ed0881f --- /dev/null +++ b/e-commerce/.next/server/route-cache/APP_PAGE/954d9b28e3a2b560715115f039892df7bb54ac50a7c31d718eaa2495dd02d460/$/bn/catalog/category/unknown-category.rsc @@ -0,0 +1,31 @@ +1:"$Sreact.fragment" +2:"/_next/static/chunks/0umf92h1sb77c.js" +3:I[39756,["$2"],"default"] +4:I[37457,["$2"],"default"] +d:I[97367,["$2"],"OutletBoundary"] +e:"$Sreact.suspense" +10:"ViewportBoundary" +11:I[97367,["$2"],"$10"] +13:"MetadataBoundary" +14:I[97367,["$2"],"$13"] +16:I[68027,["$2"],"default",1] +:HL["/_next/static/chunks/3scjwwi8pqt2y.css","style"] +:HL["/_next/static/media/797e433ab948586e-s.p.0r6juujl39pe6.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/caa3a2e1cccd8315-s.p.0wgildi0cnwt9.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +8:X +b:[["children",{"s":"__PAGE__","h":160,"d":{"r":["$","$1","c",{"children":["$Lc",[["$","script","script-0",{"src":"/_next/static/chunks/2n5qeheznvl4u.js","async":true,"nonce":"$undefined"}]],["$","$Ld",null,{"children":["$","$e",null,{"name":"Next.MetadataOutlet","children":"$@f"}]}]]}],"p":false,"v":null}}]] +a:[["children",{"s":{"n":"slug","t":"d","k":"unknown-category","s":[]},"h":96,"d":{"r":["$","$1","c",{"children":[null,["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],"p":false,"v":"$8"},"c":"$Qb"}]] +9:[["children",{"s":"category","h":96,"d":{"r":["$","$1","c",{"children":[null,["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],"p":false,"v":"$8"},"c":"$Qa"}]] +7:[["children",{"s":"catalog","h":96,"d":{"r":["$","$1","c",{"children":[null,["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],"p":false,"v":"$8"},"c":"$Q9"}]] +5:[["children",{"s":{"n":"locale","t":"d","k":"bn","s":[]},"h":96,"d":{"r":["$","$1","c",{"children":[[["$","script","script-0",{"src":"/_next/static/chunks/2pv7bk-fii9c2.js","async":true,"nonce":"$undefined"}]],"$L6"]}],"p":false,"v":null},"c":"$Q7"}]] +0:{"P":null,"c":["","bn","catalog","category","unknown-category"],"q":"","i":false,"t":{"t":{"s":"","h":80,"d":{"r":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/3scjwwi8pqt2y.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/0umf92h1sb77c.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","className":"T19VSG_variable _8Li5zG_variable","children":["$","body",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}],"p":false,"v":null},"c":"$Q5"},"h":{"r":["$","$1","h",{"children":[null,["$","$L11",null,{"children":"$L12"}],["$","$L14",null,{"children":[["$","div",null,{"hidden":true,"children":["$","$e",null,{"name":"Next.Metadata","children":"$L15"}]}],null]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"p":false,"v":null}},"m":"$undefined","G":["$16",[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/3scjwwi8pqt2y.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]]],"S":true,"r":"$undefined","s":"$undefined","a":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"dRI9LFT7roNJ8J1q20Bu8"} +8:C +17:"/_next/static/chunks/2pv7bk-fii9c2.js" +18:I[75696,["$2","$17"],"default"] +6:["$","$L18",null,{"formats":"$undefined","locale":"bn","messages":{"home":{"title":"ই-কমার্স স্টোর","hero":"ভারত জুড়ে ডেলিভারি","lang":"বাংলা","catalog":"ক্যাটালগ","about":"সম্পর্কে"},"catalog":{"back":"পিছনে","hsn":"এইচএসএন","available":"উপলব্ধ","units":"টুকরো","variants":"ভেরিয়েন্ট","variantsCount":"{{count}} ভেরিয়েন্ট(গুলো)","buyNow":"এখন কিনুন","shipping":"৯৯৯ টাকার উপরে বিনামূল্য ডেলিভারি। বিকাশে পেমেন্ট সম্ভব।","product":{"view":"পণ্য দেখুন","metaTitle":"{{title}} — ই-কমার্স স্টোর","metaDescription":"ভারত জুড়ে বিকাশে পেমেন্ট দিয়ে {{title}} অনলাইনে কিনুন।"},"category":{"view":"বিভাগ দেখুন","metaTitle":"{{title}} — ই-কমার্স স্টোর","metaDescription":"ভারত জুড়ে বিকাশে পেমেন্ট দিয়ে {{title}} এর পণ্য দেখুন।","hero":"বিভাগ অনুযায়ী দেখুন","footer":"স্টকে থাকা পণ্য দেখানো হচ্ছে। ভারত জুড়ে বিকাশে পেমেন্ট সম্ভব।","empty":"এই বিভাগে এখন কোনো পণ্য নেই।"},"outOfStock":"স্টক নেই"}},"now":"$undefined","timeZone":"Asia/Calcutta","children":["$","html",null,{"lang":"bn","suppressHydrationWarning":true,"children":["$","body",null,{"children":["$","div",null,{"className":"flex flex-col min-h-screen","children":[["$","header",null,{"className":"flex items-center justify-between p-4 border-b","children":[["$","span",null,{"className":"text-lg font-semibold","children":"বাংলা"}],"$L19"]}],["$","main",null,{"className":"flex-1 p-6 max-w-3xl mx-auto w-full","children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]}],["$","footer",null,{"className":"text-center p-4 text-sm text-muted-foreground border-t","children":"E-Commerce Store"}]]}]}]}]}] +12:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] +19:["$","div",null,{"className":"flex items-center gap-2","children":[["$","a",null,{"href":"/en","className":"inline-flex items-center justify-center gap-2 whitespace-nowrap font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 bg-primary text-primary-foreground shadow hover:bg-primary/90 h-8 rounded-md px-3 text-xs flex items-center gap-1","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-arrow-left h-4 w-4","children":[["$","path","1l729n",{"d":"m12 19-7-7 7-7"}],["$","path","x3x0zl",{"d":"M19 12H5"}],"$undefined"]}],"EN"],"ref":null}],["$","a",null,{"href":"/bn","className":"inline-flex items-center justify-center gap-2 whitespace-nowrap font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground h-8 rounded-md px-3 text-xs flex items-center gap-1","children":["BN",["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-arrow-right h-4 w-4","children":[["$","path","1ays0h",{"d":"M5 12h14"}],["$","path","xquz4c",{"d":"m12 5 7 7-7 7"}],"$undefined"]}]],"ref":null}]]}] +c:E{"digest":"NEXT_HTTP_ERROR_FALLBACK;404"} +1a:I[27201,["$2"],"IconMark"] +f:null +15:[["$","title","0",{"children":"catalog.category.metaTitle"}],["$","meta","1",{"name":"description","content":"ভারত জুড়ে বিকাশে পেমেন্ট দিয়ে {{title}} এর পণ্য দেখুন।"}],["$","link","2",{"rel":"icon","href":"/favicon.ico?favicon.117ezoe8m31dk.ico","sizes":"48x48","type":"image/x-icon"}],["$","$L1a","3",{}]] diff --git a/e-commerce/.next/server/route-cache/APP_PAGE/954d9b28e3a2b560715115f039892df7bb54ac50a7c31d718eaa2495dd02d460/$/bn/catalog/category/unknown-category.segments/$d$locale/catalog/category/$d$slug/__PAGE__.segment.rsc b/e-commerce/.next/server/route-cache/APP_PAGE/954d9b28e3a2b560715115f039892df7bb54ac50a7c31d718eaa2495dd02d460/$/bn/catalog/category/unknown-category.segments/$d$locale/catalog/category/$d$slug/__PAGE__.segment.rsc new file mode 100644 index 0000000000000000000000000000000000000000..ed3499b75fb80b3ef48608780861750986cba1ce --- /dev/null +++ b/e-commerce/.next/server/route-cache/APP_PAGE/954d9b28e3a2b560715115f039892df7bb54ac50a7c31d718eaa2495dd02d460/$/bn/catalog/category/unknown-category.segments/$d$locale/catalog/category/$d$slug/__PAGE__.segment.rsc @@ -0,0 +1,43 @@ +1:"$Sreact.fragment" +2:"/_next/static/chunks/0umf92h1sb77c.js" +3:I[39756,["$2"],"default"] +4:I[37457,["$2"],"default"] +8:"/_next/static/chunks/2pv7bk-fii9c2.js" +9:I[75696,["$2","$8"],"default"] +1b:"ViewportBoundary" +1c:I[97367,["$2"],"$1b"] +1d:"MetadataBoundary" +1e:I[97367,["$2"],"$1d"] +1f:"$Sreact.suspense" +20:I[27201,["$2"],"IconMark"] +:HL["/_next/static/chunks/3scjwwi8pqt2y.css","style"] +6:X +11:X +11:C +18:[["children",{"s":"__PAGE__","h":160,"d":{"r":"$L19","p":"$@1a","v":null,"s":"$6"}}]] +15:[["children",{"s":{"n":"slug","t":"d","k":"unknown-category","s":[]},"h":96,"d":{"r":"$L16","p":"$@17","v":"$11","s":"$6"},"c":"$Q18"}]] +12:[["children",{"s":"category","h":96,"d":{"r":"$L13","p":"$@14","v":"$11","s":"$6"},"c":"$Q15"}]] +e:[["children",{"s":"catalog","h":96,"d":{"r":"$Lf","p":"$@10","v":"$11","s":"$6"},"c":"$Q12"}]] +7:[["children",{"s":{"n":"locale","t":"d","k":"bn","s":[]},"h":96,"d":{"r":["$","$1","c",{"children":[[["$","script","script-0",{"src":"/_next/static/chunks/2pv7bk-fii9c2.js","async":true}]],["$","$L9",null,{"locale":"bn","messages":{"home":{"title":"ই-কমার্স স্টোর","hero":"ভারত জুড়ে ডেলিভারি","lang":"বাংলা","catalog":"ক্যাটালগ","about":"সম্পর্কে"},"catalog":{"back":"পিছনে","hsn":"এইচএসএন","available":"উপলব্ধ","units":"টুকরো","variants":"ভেরিয়েন্ট","variantsCount":"{{count}} ভেরিয়েন্ট(গুলো)","buyNow":"এখন কিনুন","shipping":"৯৯৯ টাকার উপরে বিনামূল্য ডেলিভারি। বিকাশে পেমেন্ট সম্ভব।","product":{"view":"পণ্য দেখুন","metaTitle":"{{title}} — ই-কমার্স স্টোর","metaDescription":"ভারত জুড়ে বিকাশে পেমেন্ট দিয়ে {{title}} অনলাইনে কিনুন।"},"category":{"view":"বিভাগ দেখুন","metaTitle":"{{title}} — ই-কমার্স স্টোর","metaDescription":"ভারত জুড়ে বিকাশে পেমেন্ট দিয়ে {{title}} এর পণ্য দেখুন।","hero":"বিভাগ অনুযায়ী দেখুন","footer":"স্টকে থাকা পণ্য দেখানো হচ্ছে। ভারত জুড়ে বিকাশে পেমেন্ট সম্ভব।","empty":"এই বিভাগে এখন কোনো পণ্য নেই।"},"outOfStock":"স্টক নেই"}},"timeZone":"Asia/Calcutta","children":["$","html",null,{"lang":"bn","suppressHydrationWarning":true,"children":["$","body",null,{"children":["$","div",null,{"className":"flex flex-col min-h-screen","children":[["$","header",null,{"className":"flex items-center justify-between p-4 border-b","children":[["$","span",null,{"className":"text-lg font-semibold","children":"বাংলা"}],["$","div",null,{"className":"flex items-center gap-2","children":[["$","a",null,{"href":"/en","className":"inline-flex items-center justify-center gap-2 whitespace-nowrap font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 bg-primary text-primary-foreground shadow hover:bg-primary/90 h-8 rounded-md px-3 text-xs flex items-center gap-1","children":[["$","svg",null,{"xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-arrow-left h-4 w-4","children":[["$","path","1l729n",{"d":"m12 19-7-7 7-7"}],["$","path","x3x0zl",{"d":"M19 12H5"}],"$undefined"]}],"EN"],"ref":null}],["$","a",null,{"href":"/bn","className":"inline-flex items-center justify-center gap-2 whitespace-nowrap font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground h-8 rounded-md px-3 text-xs flex items-center gap-1","children":["BN","$La"],"ref":null}]]}]]}],"$Lb","$Lc"]}]}]}]}]]}],"p":"$@d","v":null,"s":"$6"},"c":"$Qe"}]] +0:{"t":{"t":{"s":"","h":80,"d":{"r":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/3scjwwi8pqt2y.css","precedence":"next"}],["$","script","script-0",{"src":"/_next/static/chunks/0umf92h1sb77c.js","async":true}]],["$","html",null,{"lang":"en","className":"T19VSG_variable _8Li5zG_variable","children":["$","body",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","template":["$","$L4",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]}]]}],"p":"$@5","v":null,"s":"$6"},"c":"$Q7"},"h":{"r":["$","$1","h",{"children":[null,["$","$L1c",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","$L1e",null,{"children":[["$","div",null,{"hidden":true,"children":["$","$1f",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"catalog.category.metaTitle"}],["$","meta","1",{"name":"description","content":"ভারত জুড়ে বিকাশে পেমেন্ট দিয়ে {{title}} এর পণ্য দেখুন।"}],["$","link","2",{"rel":"icon","href":"/favicon.ico?favicon.117ezoe8m31dk.ico","sizes":"48x48","type":"image/x-icon"}],["$","$L20","3",{}]]}]}],null]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"p":"$@21","v":null,"s":"$6"}},"a":"$@22","u":"$@23","b":"dRI9LFT7roNJ8J1q20Bu8"} +25:I[97367,["$2"],"OutletBoundary"] +a:["$","svg",null,{"xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-arrow-right h-4 w-4","children":[["$","path","1ays0h",{"d":"M5 12h14"}],["$","path","xquz4c",{"d":"m12 5 7 7-7 7"}],"$undefined"]}] +b:["$","main",null,{"className":"flex-1 p-6 max-w-3xl mx-auto w-full","children":["$","$L3",null,{"parallelRouterKey":"children","template":["$","$L4",null,{}]}]}] +c:["$","footer",null,{"className":"text-center p-4 text-sm text-muted-foreground border-t","children":"E-Commerce Store"}] +f:["$","$1","c",{"children":[null,["$","$L3",null,{"parallelRouterKey":"children","template":["$","$L4",null,{}]}]]}] +13:["$","$1","c",{"children":[null,["$","$L3",null,{"parallelRouterKey":"children","template":["$","$L4",null,{}]}]]}] +16:["$","$1","c",{"children":[null,["$","$L3",null,{"parallelRouterKey":"children","template":["$","$L4",null,{}]}]]}] +19:["$","$1","c",{"children":["$L24",[["$","script","script-0",{"src":"/_next/static/chunks/2n5qeheznvl4u.js","async":true}]],["$","$L25",null,{"children":["$","$1f",null,{"name":"Next.MetadataOutlet","children":"$@26"}]}]]}] +24:E{"digest":"NEXT_HTTP_ERROR_FALLBACK;404"} +6:300 +26:null +23:true +6:C +22:0 +17:"$undefined" +14:"$undefined" +10:"$undefined" +d:"$undefined" +5:"$undefined" +21:"$undefined" +1a:"$undefined" diff --git a/e-commerce/.next/server/route-cache/APP_PAGE/954d9b28e3a2b560715115f039892df7bb54ac50a7c31d718eaa2495dd02d460/$/bn/catalog/category/unknown-category.segments/_full.segment.rsc b/e-commerce/.next/server/route-cache/APP_PAGE/954d9b28e3a2b560715115f039892df7bb54ac50a7c31d718eaa2495dd02d460/$/bn/catalog/category/unknown-category.segments/_full.segment.rsc new file mode 100644 index 0000000000000000000000000000000000000000..cd188f61552be3e9fca4a21532ffa0b95ed0881f --- /dev/null +++ b/e-commerce/.next/server/route-cache/APP_PAGE/954d9b28e3a2b560715115f039892df7bb54ac50a7c31d718eaa2495dd02d460/$/bn/catalog/category/unknown-category.segments/_full.segment.rsc @@ -0,0 +1,31 @@ +1:"$Sreact.fragment" +2:"/_next/static/chunks/0umf92h1sb77c.js" +3:I[39756,["$2"],"default"] +4:I[37457,["$2"],"default"] +d:I[97367,["$2"],"OutletBoundary"] +e:"$Sreact.suspense" +10:"ViewportBoundary" +11:I[97367,["$2"],"$10"] +13:"MetadataBoundary" +14:I[97367,["$2"],"$13"] +16:I[68027,["$2"],"default",1] +:HL["/_next/static/chunks/3scjwwi8pqt2y.css","style"] +:HL["/_next/static/media/797e433ab948586e-s.p.0r6juujl39pe6.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/caa3a2e1cccd8315-s.p.0wgildi0cnwt9.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +8:X +b:[["children",{"s":"__PAGE__","h":160,"d":{"r":["$","$1","c",{"children":["$Lc",[["$","script","script-0",{"src":"/_next/static/chunks/2n5qeheznvl4u.js","async":true,"nonce":"$undefined"}]],["$","$Ld",null,{"children":["$","$e",null,{"name":"Next.MetadataOutlet","children":"$@f"}]}]]}],"p":false,"v":null}}]] +a:[["children",{"s":{"n":"slug","t":"d","k":"unknown-category","s":[]},"h":96,"d":{"r":["$","$1","c",{"children":[null,["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],"p":false,"v":"$8"},"c":"$Qb"}]] +9:[["children",{"s":"category","h":96,"d":{"r":["$","$1","c",{"children":[null,["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],"p":false,"v":"$8"},"c":"$Qa"}]] +7:[["children",{"s":"catalog","h":96,"d":{"r":["$","$1","c",{"children":[null,["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],"p":false,"v":"$8"},"c":"$Q9"}]] +5:[["children",{"s":{"n":"locale","t":"d","k":"bn","s":[]},"h":96,"d":{"r":["$","$1","c",{"children":[[["$","script","script-0",{"src":"/_next/static/chunks/2pv7bk-fii9c2.js","async":true,"nonce":"$undefined"}]],"$L6"]}],"p":false,"v":null},"c":"$Q7"}]] +0:{"P":null,"c":["","bn","catalog","category","unknown-category"],"q":"","i":false,"t":{"t":{"s":"","h":80,"d":{"r":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/3scjwwi8pqt2y.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/0umf92h1sb77c.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","className":"T19VSG_variable _8Li5zG_variable","children":["$","body",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}],"p":false,"v":null},"c":"$Q5"},"h":{"r":["$","$1","h",{"children":[null,["$","$L11",null,{"children":"$L12"}],["$","$L14",null,{"children":[["$","div",null,{"hidden":true,"children":["$","$e",null,{"name":"Next.Metadata","children":"$L15"}]}],null]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"p":false,"v":null}},"m":"$undefined","G":["$16",[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/3scjwwi8pqt2y.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]]],"S":true,"r":"$undefined","s":"$undefined","a":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"dRI9LFT7roNJ8J1q20Bu8"} +8:C +17:"/_next/static/chunks/2pv7bk-fii9c2.js" +18:I[75696,["$2","$17"],"default"] +6:["$","$L18",null,{"formats":"$undefined","locale":"bn","messages":{"home":{"title":"ই-কমার্স স্টোর","hero":"ভারত জুড়ে ডেলিভারি","lang":"বাংলা","catalog":"ক্যাটালগ","about":"সম্পর্কে"},"catalog":{"back":"পিছনে","hsn":"এইচএসএন","available":"উপলব্ধ","units":"টুকরো","variants":"ভেরিয়েন্ট","variantsCount":"{{count}} ভেরিয়েন্ট(গুলো)","buyNow":"এখন কিনুন","shipping":"৯৯৯ টাকার উপরে বিনামূল্য ডেলিভারি। বিকাশে পেমেন্ট সম্ভব।","product":{"view":"পণ্য দেখুন","metaTitle":"{{title}} — ই-কমার্স স্টোর","metaDescription":"ভারত জুড়ে বিকাশে পেমেন্ট দিয়ে {{title}} অনলাইনে কিনুন।"},"category":{"view":"বিভাগ দেখুন","metaTitle":"{{title}} — ই-কমার্স স্টোর","metaDescription":"ভারত জুড়ে বিকাশে পেমেন্ট দিয়ে {{title}} এর পণ্য দেখুন।","hero":"বিভাগ অনুযায়ী দেখুন","footer":"স্টকে থাকা পণ্য দেখানো হচ্ছে। ভারত জুড়ে বিকাশে পেমেন্ট সম্ভব।","empty":"এই বিভাগে এখন কোনো পণ্য নেই।"},"outOfStock":"স্টক নেই"}},"now":"$undefined","timeZone":"Asia/Calcutta","children":["$","html",null,{"lang":"bn","suppressHydrationWarning":true,"children":["$","body",null,{"children":["$","div",null,{"className":"flex flex-col min-h-screen","children":[["$","header",null,{"className":"flex items-center justify-between p-4 border-b","children":[["$","span",null,{"className":"text-lg font-semibold","children":"বাংলা"}],"$L19"]}],["$","main",null,{"className":"flex-1 p-6 max-w-3xl mx-auto w-full","children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]}],["$","footer",null,{"className":"text-center p-4 text-sm text-muted-foreground border-t","children":"E-Commerce Store"}]]}]}]}]}] +12:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] +19:["$","div",null,{"className":"flex items-center gap-2","children":[["$","a",null,{"href":"/en","className":"inline-flex items-center justify-center gap-2 whitespace-nowrap font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 bg-primary text-primary-foreground shadow hover:bg-primary/90 h-8 rounded-md px-3 text-xs flex items-center gap-1","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-arrow-left h-4 w-4","children":[["$","path","1l729n",{"d":"m12 19-7-7 7-7"}],["$","path","x3x0zl",{"d":"M19 12H5"}],"$undefined"]}],"EN"],"ref":null}],["$","a",null,{"href":"/bn","className":"inline-flex items-center justify-center gap-2 whitespace-nowrap font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground h-8 rounded-md px-3 text-xs flex items-center gap-1","children":["BN",["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-arrow-right h-4 w-4","children":[["$","path","1ays0h",{"d":"M5 12h14"}],["$","path","xquz4c",{"d":"m12 5 7 7-7 7"}],"$undefined"]}]],"ref":null}]]}] +c:E{"digest":"NEXT_HTTP_ERROR_FALLBACK;404"} +1a:I[27201,["$2"],"IconMark"] +f:null +15:[["$","title","0",{"children":"catalog.category.metaTitle"}],["$","meta","1",{"name":"description","content":"ভারত জুড়ে বিকাশে পেমেন্ট দিয়ে {{title}} এর পণ্য দেখুন।"}],["$","link","2",{"rel":"icon","href":"/favicon.ico?favicon.117ezoe8m31dk.ico","sizes":"48x48","type":"image/x-icon"}],["$","$L1a","3",{}]] diff --git a/e-commerce/.next/server/route-cache/APP_PAGE/954d9b28e3a2b560715115f039892df7bb54ac50a7c31d718eaa2495dd02d460/$/bn/catalog/category/unknown-category.segments/_tree.segment.rsc b/e-commerce/.next/server/route-cache/APP_PAGE/954d9b28e3a2b560715115f039892df7bb54ac50a7c31d718eaa2495dd02d460/$/bn/catalog/category/unknown-category.segments/_tree.segment.rsc new file mode 100644 index 0000000000000000000000000000000000000000..bfb229c610df3375c9d952c4b0cabc4309f33738 --- /dev/null +++ b/e-commerce/.next/server/route-cache/APP_PAGE/954d9b28e3a2b560715115f039892df7bb54ac50a7c31d718eaa2495dd02d460/$/bn/catalog/category/unknown-category.segments/_tree.segment.rsc @@ -0,0 +1,9 @@ +:HL["/_next/static/chunks/3scjwwi8pqt2y.css","style"] +:HL["/_next/static/media/797e433ab948586e-s.p.0r6juujl39pe6.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/caa3a2e1cccd8315-s.p.0wgildi0cnwt9.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +5:[["children",{"s":"__PAGE__","h":160}]] +4:[["children",{"s":{"n":"slug","t":"d","k":"unknown-category","s":[]},"h":96,"c":"$Q5"}]] +3:[["children",{"s":"category","h":96,"c":"$Q4"}]] +2:[["children",{"s":"catalog","h":96,"c":"$Q3"}]] +1:[["children",{"s":{"n":"locale","t":"d","k":"bn","s":[]},"h":96,"c":"$Q2"}]] +0:{"b":"dRI9LFT7roNJ8J1q20Bu8","t":{"t":{"s":"","h":80,"c":"$Q1"}}} diff --git a/e-commerce/.next/server/route-cache/APP_PAGE/954d9b28e3a2b560715115f039892df7bb54ac50a7c31d718eaa2495dd02d460/$/en/catalog/category/men-tshirts.html b/e-commerce/.next/server/route-cache/APP_PAGE/954d9b28e3a2b560715115f039892df7bb54ac50a7c31d718eaa2495dd02d460/$/en/catalog/category/men-tshirts.html new file mode 100644 index 0000000000000000000000000000000000000000..5f04baa92ce86eb2191cde0dc227847cc4773ec1 --- /dev/null +++ b/e-commerce/.next/server/route-cache/APP_PAGE/954d9b28e3a2b560715115f039892df7bb54ac50a7c31d718eaa2495dd02d460/$/en/catalog/category/men-tshirts.html @@ -0,0 +1 @@ +catalog.category.metaTitle
English

Men's T-Shirts

Shop by category

Classic Crew Neck T-Shirt
HSN 610910
₹499.00
200 units
Showing products in stock. COD available across India.
E-Commerce Store
\ No newline at end of file diff --git a/e-commerce/.next/server/route-cache/APP_PAGE/954d9b28e3a2b560715115f039892df7bb54ac50a7c31d718eaa2495dd02d460/$/en/catalog/category/men-tshirts.meta b/e-commerce/.next/server/route-cache/APP_PAGE/954d9b28e3a2b560715115f039892df7bb54ac50a7c31d718eaa2495dd02d460/$/en/catalog/category/men-tshirts.meta new file mode 100644 index 0000000000000000000000000000000000000000..faf6a681e186245995b744ec3350aa6c87e74eae --- /dev/null +++ b/e-commerce/.next/server/route-cache/APP_PAGE/954d9b28e3a2b560715115f039892df7bb54ac50a7c31d718eaa2495dd02d460/$/en/catalog/category/men-tshirts.meta @@ -0,0 +1 @@ +{"headers":{"x-nextjs-stale-time":"300","x-nextjs-prerender":"1","x-next-cache-tags":"_N_T_/layout,_N_T_/[locale]/layout,_N_T_/[locale]/catalog/layout,_N_T_/[locale]/catalog/category/layout,_N_T_/[locale]/catalog/category/[slug]/layout,_N_T_/[locale]/catalog/category/[slug]/page,_N_T_/en/catalog/category/men-tshirts"},"segmentPaths":["/_tree","/_full","/$d$locale/catalog/category/$d$slug/__PAGE__"],"prefetchHints":{"hints":64,"slots":{"children":{"hints":96,"slots":{"children":{"hints":96,"slots":{"children":{"hints":96,"slots":{"children":{"hints":96,"slots":{"children":{"hints":160,"slots":null}}}}}}}}}}},"routeCache":{"key":"/route-cache/APP_PAGE/954d9b28e3a2b560715115f039892df7bb54ac50a7c31d718eaa2495dd02d460/$/en/catalog/category/men-tshirts","owner":{"kind":"APP_PAGE","sourceRoute":"/[locale]/catalog/category/[slug]/page"},"isFallback":false},"routeCacheLastModified":1791887953239} \ No newline at end of file diff --git a/e-commerce/.next/server/route-cache/APP_PAGE/954d9b28e3a2b560715115f039892df7bb54ac50a7c31d718eaa2495dd02d460/$/en/catalog/category/men-tshirts.rsc b/e-commerce/.next/server/route-cache/APP_PAGE/954d9b28e3a2b560715115f039892df7bb54ac50a7c31d718eaa2495dd02d460/$/en/catalog/category/men-tshirts.rsc new file mode 100644 index 0000000000000000000000000000000000000000..8440920f89a238a1da81097160020d4ee24ba599 --- /dev/null +++ b/e-commerce/.next/server/route-cache/APP_PAGE/954d9b28e3a2b560715115f039892df7bb54ac50a7c31d718eaa2495dd02d460/$/en/catalog/category/men-tshirts.rsc @@ -0,0 +1,33 @@ +1:"$Sreact.fragment" +2:"/_next/static/chunks/0umf92h1sb77c.js" +3:I[39756,["$2"],"default"] +4:I[37457,["$2"],"default"] +d:I[97367,["$2"],"OutletBoundary"] +e:"$Sreact.suspense" +10:"ViewportBoundary" +11:I[97367,["$2"],"$10"] +13:"MetadataBoundary" +14:I[97367,["$2"],"$13"] +16:I[68027,["$2"],"default",1] +:HL["/_next/static/chunks/3scjwwi8pqt2y.css","style"] +:HL["/_next/static/media/797e433ab948586e-s.p.0r6juujl39pe6.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/caa3a2e1cccd8315-s.p.0wgildi0cnwt9.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +8:X +b:[["children",{"s":"__PAGE__","h":512,"d":{"r":["$","$1","c",{"children":["$Lc",[["$","script","script-0",{"src":"/_next/static/chunks/2n5qeheznvl4u.js","async":true,"nonce":"$undefined"}]],["$","$Ld",null,{"children":["$","$e",null,{"name":"Next.MetadataOutlet","children":"$@f"}]}]]}],"p":false,"v":null}}]] +a:[["children",{"s":{"n":"slug","t":"d","k":"men-tshirts","s":[]},"h":512,"d":{"r":["$","$1","c",{"children":[null,["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],"p":false,"v":"$8"},"c":"$Qb"}]] +9:[["children",{"s":"category","h":512,"d":{"r":["$","$1","c",{"children":[null,["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],"p":false,"v":"$8"},"c":"$Qa"}]] +7:[["children",{"s":"catalog","h":512,"d":{"r":["$","$1","c",{"children":[null,["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],"p":false,"v":"$8"},"c":"$Q9"}]] +5:[["children",{"s":{"n":"locale","t":"d","k":"en","s":[]},"h":512,"d":{"r":["$","$1","c",{"children":[[["$","script","script-0",{"src":"/_next/static/chunks/2pv7bk-fii9c2.js","async":true,"nonce":"$undefined"}]],"$L6"]}],"p":false,"v":null},"c":"$Q7"}]] +0:{"P":null,"c":["","en","catalog","category","men-tshirts"],"q":"","i":false,"t":{"t":{"s":"","h":528,"d":{"r":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/3scjwwi8pqt2y.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/0umf92h1sb77c.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","className":"T19VSG_variable _8Li5zG_variable","children":["$","body",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}],"p":false,"v":null},"c":"$Q5"},"h":{"r":["$","$1","h",{"children":[null,["$","$L11",null,{"children":"$L12"}],["$","$L14",null,{"children":[["$","div",null,{"hidden":true,"children":["$","$e",null,{"name":"Next.Metadata","children":"$L15"}]}],null]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"p":false,"v":null}},"m":"$undefined","G":["$16",[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/3scjwwi8pqt2y.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]]],"S":true,"r":"$undefined","s":"$undefined","a":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"dRI9LFT7roNJ8J1q20Bu8"} +8:C +17:"/_next/static/chunks/2pv7bk-fii9c2.js" +18:I[75696,["$2","$17"],"default"] +6:["$","$L18",null,{"formats":"$undefined","locale":"en","messages":{"home":{"title":"E-Commerce Store","hero":"Domestic shipping across India","lang":"English","catalog":"Catalog","about":"About"},"catalog":{"back":"Back","hsn":"HSN","available":"Available","units":"units","variants":"Variants","variantsCount":"{{count}} variant(s)","buyNow":"Buy now","shipping":"Free shipping above ₹999. COD available.","product":{"view":"View product","metaTitle":"{{title}} — E-Commerce Store","metaDescription":"Shop {{title}} online with cash on delivery across India."},"category":{"view":"View category","metaTitle":"{{title}} — E-Commerce Store","metaDescription":"Browse {{title}} products with cash on delivery across India.","hero":"Shop by category","footer":"Showing products in stock. COD available across India.","empty":"No products in this category right now."},"outOfStock":"Out of stock"}},"now":"$undefined","timeZone":"Asia/Calcutta","children":["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":["$","body",null,{"children":["$","div",null,{"className":"flex flex-col min-h-screen","children":[["$","header",null,{"className":"flex items-center justify-between p-4 border-b","children":[["$","span",null,{"className":"text-lg font-semibold","children":"English"}],"$L19"]}],["$","main",null,{"className":"flex-1 p-6 max-w-3xl mx-auto w-full","children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]}],["$","footer",null,{"className":"text-center p-4 text-sm text-muted-foreground border-t","children":"E-Commerce Store"}]]}]}]}]}] +12:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] +19:["$","div",null,{"className":"flex items-center gap-2","children":[["$","a",null,{"href":"/en","className":"inline-flex items-center justify-center gap-2 whitespace-nowrap font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 bg-primary text-primary-foreground shadow hover:bg-primary/90 h-8 rounded-md px-3 text-xs flex items-center gap-1","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-arrow-left h-4 w-4","children":[["$","path","1l729n",{"d":"m12 19-7-7 7-7"}],["$","path","x3x0zl",{"d":"M19 12H5"}],"$undefined"]}],"EN"],"ref":null}],["$","a",null,{"href":"/bn","className":"inline-flex items-center justify-center gap-2 whitespace-nowrap font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground h-8 rounded-md px-3 text-xs flex items-center gap-1","children":["BN",["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-arrow-right h-4 w-4","children":[["$","path","1ays0h",{"d":"M5 12h14"}],["$","path","xquz4c",{"d":"m12 5 7 7-7 7"}],"$undefined"]}]],"ref":null}]]}] +1a:I[27201,["$2"],"IconMark"] +f:null +15:[["$","title","0",{"children":"catalog.category.metaTitle"}],["$","meta","1",{"name":"description","content":"Browse {{title}} products with cash on delivery across India."}],["$","link","2",{"rel":"icon","href":"/favicon.ico?favicon.117ezoe8m31dk.ico","sizes":"48x48","type":"image/x-icon"}],["$","$L1a","3",{}]] +1b:"/_next/static/chunks/2n5qeheznvl4u.js" +1c:I[22016,["$2","$17","$1b"],""] +c:["$","div",null,{"className":"flex flex-col gap-6","children":[["$","div",null,{"className":"flex items-center gap-4 text-sm text-muted-foreground","children":["$","$L1c",null,{"href":"/en","className":"inline-flex items-center gap-1","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-arrow-left h-4 w-4","children":[["$","path","1l729n",{"d":"m12 19-7-7 7-7"}],["$","path","x3x0zl",{"d":"M19 12H5"}],"$undefined"]}],"Back"]}]}],["$","div",null,{"className":"space-y-4","children":[" ",["$","h1",null,{"className":"text-3xl font-bold tracking-tight","children":"Men's T-Shirts"}],["$","p",null,{"className":"text-muted-foreground","children":"Shop by category"}]]}],["$","div",null,{"className":"grid gap-4 sm:grid-cols-2","children":[["$","div","bm7422cfr351m4ycfhfmakre",{"ref":"$undefined","className":"rounded-xl border bg-card text-card-foreground shadow","children":[["$","div",null,{"ref":"$undefined","className":"flex flex-col space-y-1.5 p-6","children":[["$","div",null,{"ref":"$undefined","className":"font-semibold tracking-tight text-lg","children":"Classic Crew Neck T-Shirt"}],["$","div",null,{"ref":"$undefined","className":"text-sm text-muted-foreground flex items-center gap-2","children":["$","div",null,{"className":"inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80","children":["HSN ","610910"]}]}]]}],["$","div",null,{"ref":"$undefined","className":"p-6 pt-0 space-y-3","children":[["$","div",null,{"className":"text-xl font-semibold","children":"₹499.00"}],["$","div",null,{"className":"text-sm text-muted-foreground","children":"200 units"}],["$","$L1c",null,{"href":"/en/products/classic-crew-neck-tshirt","className":"block","children":["$","button",null,{"className":"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 bg-primary text-primary-foreground shadow hover:bg-primary/90 h-9 px-4 py-2 w-full","ref":"$undefined","children":"View product"}]}]]}]]}]]}],["$","div",null,{"className":"text-sm text-muted-foreground text-center","children":"Showing products in stock. COD available across India."}]]}] diff --git a/e-commerce/.next/server/route-cache/APP_PAGE/954d9b28e3a2b560715115f039892df7bb54ac50a7c31d718eaa2495dd02d460/$/en/catalog/category/men-tshirts.segments/$d$locale/catalog/category/$d$slug/__PAGE__.segment.rsc b/e-commerce/.next/server/route-cache/APP_PAGE/954d9b28e3a2b560715115f039892df7bb54ac50a7c31d718eaa2495dd02d460/$/en/catalog/category/men-tshirts.segments/$d$locale/catalog/category/$d$slug/__PAGE__.segment.rsc new file mode 100644 index 0000000000000000000000000000000000000000..9e4896f5cf9e5d0d283023f38fc7267429b101b5 --- /dev/null +++ b/e-commerce/.next/server/route-cache/APP_PAGE/954d9b28e3a2b560715115f039892df7bb54ac50a7c31d718eaa2495dd02d460/$/en/catalog/category/men-tshirts.segments/$d$locale/catalog/category/$d$slug/__PAGE__.segment.rsc @@ -0,0 +1,44 @@ +1:"$Sreact.fragment" +2:"/_next/static/chunks/0umf92h1sb77c.js" +3:I[39756,["$2"],"default"] +4:I[37457,["$2"],"default"] +8:"/_next/static/chunks/2pv7bk-fii9c2.js" +9:I[75696,["$2","$8"],"default"] +1b:"ViewportBoundary" +1c:I[97367,["$2"],"$1b"] +1d:"MetadataBoundary" +1e:I[97367,["$2"],"$1d"] +1f:"$Sreact.suspense" +20:I[27201,["$2"],"IconMark"] +:HL["/_next/static/chunks/3scjwwi8pqt2y.css","style"] +6:X +11:X +11:C +18:[["children",{"s":"__PAGE__","h":160,"d":{"r":"$L19","p":"$@1a","v":null,"s":"$6"}}]] +15:[["children",{"s":{"n":"slug","t":"d","k":"men-tshirts","s":[]},"h":96,"d":{"r":"$L16","p":"$@17","v":"$11","s":"$6"},"c":"$Q18"}]] +12:[["children",{"s":"category","h":96,"d":{"r":"$L13","p":"$@14","v":"$11","s":"$6"},"c":"$Q15"}]] +e:[["children",{"s":"catalog","h":96,"d":{"r":"$Lf","p":"$@10","v":"$11","s":"$6"},"c":"$Q12"}]] +7:[["children",{"s":{"n":"locale","t":"d","k":"en","s":[]},"h":96,"d":{"r":["$","$1","c",{"children":[[["$","script","script-0",{"src":"/_next/static/chunks/2pv7bk-fii9c2.js","async":true}]],["$","$L9",null,{"locale":"en","messages":{"home":{"title":"E-Commerce Store","hero":"Domestic shipping across India","lang":"English","catalog":"Catalog","about":"About"},"catalog":{"back":"Back","hsn":"HSN","available":"Available","units":"units","variants":"Variants","variantsCount":"{{count}} variant(s)","buyNow":"Buy now","shipping":"Free shipping above ₹999. COD available.","product":{"view":"View product","metaTitle":"{{title}} — E-Commerce Store","metaDescription":"Shop {{title}} online with cash on delivery across India."},"category":{"view":"View category","metaTitle":"{{title}} — E-Commerce Store","metaDescription":"Browse {{title}} products with cash on delivery across India.","hero":"Shop by category","footer":"Showing products in stock. COD available across India.","empty":"No products in this category right now."},"outOfStock":"Out of stock"}},"timeZone":"Asia/Calcutta","children":["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":["$","body",null,{"children":["$","div",null,{"className":"flex flex-col min-h-screen","children":[["$","header",null,{"className":"flex items-center justify-between p-4 border-b","children":[["$","span",null,{"className":"text-lg font-semibold","children":"English"}],["$","div",null,{"className":"flex items-center gap-2","children":[["$","a",null,{"href":"/en","className":"inline-flex items-center justify-center gap-2 whitespace-nowrap font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 bg-primary text-primary-foreground shadow hover:bg-primary/90 h-8 rounded-md px-3 text-xs flex items-center gap-1","children":[["$","svg",null,{"xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-arrow-left h-4 w-4","children":[["$","path","1l729n",{"d":"m12 19-7-7 7-7"}],["$","path","x3x0zl",{"d":"M19 12H5"}],"$undefined"]}],"EN"],"ref":null}],["$","a",null,{"href":"/bn","className":"inline-flex items-center justify-center gap-2 whitespace-nowrap font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground h-8 rounded-md px-3 text-xs flex items-center gap-1","children":["BN","$La"],"ref":null}]]}]]}],"$Lb","$Lc"]}]}]}]}]]}],"p":"$@d","v":null,"s":"$6"},"c":"$Qe"}]] +0:{"t":{"t":{"s":"","h":80,"d":{"r":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/3scjwwi8pqt2y.css","precedence":"next"}],["$","script","script-0",{"src":"/_next/static/chunks/0umf92h1sb77c.js","async":true}]],["$","html",null,{"lang":"en","className":"T19VSG_variable _8Li5zG_variable","children":["$","body",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","template":["$","$L4",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]}]]}],"p":"$@5","v":null,"s":"$6"},"c":"$Q7"},"h":{"r":["$","$1","h",{"children":[null,["$","$L1c",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","$L1e",null,{"children":[["$","div",null,{"hidden":true,"children":["$","$1f",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"catalog.category.metaTitle"}],["$","meta","1",{"name":"description","content":"Browse {{title}} products with cash on delivery across India."}],["$","link","2",{"rel":"icon","href":"/favicon.ico?favicon.117ezoe8m31dk.ico","sizes":"48x48","type":"image/x-icon"}],["$","$L20","3",{}]]}]}],null]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"p":"$@21","v":null,"s":"$6"}},"a":"$@22","u":"$@23","b":"dRI9LFT7roNJ8J1q20Bu8"} +24:"/_next/static/chunks/2n5qeheznvl4u.js" +25:I[22016,["$2","$8","$24"],""] +26:I[97367,["$2"],"OutletBoundary"] +a:["$","svg",null,{"xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-arrow-right h-4 w-4","children":[["$","path","1ays0h",{"d":"M5 12h14"}],["$","path","xquz4c",{"d":"m12 5 7 7-7 7"}],"$undefined"]}] +b:["$","main",null,{"className":"flex-1 p-6 max-w-3xl mx-auto w-full","children":["$","$L3",null,{"parallelRouterKey":"children","template":["$","$L4",null,{}]}]}] +c:["$","footer",null,{"className":"text-center p-4 text-sm text-muted-foreground border-t","children":"E-Commerce Store"}] +f:["$","$1","c",{"children":[null,["$","$L3",null,{"parallelRouterKey":"children","template":["$","$L4",null,{}]}]]}] +13:["$","$1","c",{"children":[null,["$","$L3",null,{"parallelRouterKey":"children","template":["$","$L4",null,{}]}]]}] +16:["$","$1","c",{"children":[null,["$","$L3",null,{"parallelRouterKey":"children","template":["$","$L4",null,{}]}]]}] +19:["$","$1","c",{"children":[["$","div",null,{"className":"flex flex-col gap-6","children":[["$","div",null,{"className":"flex items-center gap-4 text-sm text-muted-foreground","children":["$","$L25",null,{"href":"/en","className":"inline-flex items-center gap-1","children":[["$","svg",null,{"xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-arrow-left h-4 w-4","children":[["$","path","1l729n",{"d":"m12 19-7-7 7-7"}],["$","path","x3x0zl",{"d":"M19 12H5"}],"$undefined"]}],"Back"]}]}],["$","div",null,{"className":"space-y-4","children":[" ",["$","h1",null,{"className":"text-3xl font-bold tracking-tight","children":"Men's T-Shirts"}],["$","p",null,{"className":"text-muted-foreground","children":"Shop by category"}]]}],["$","div",null,{"className":"grid gap-4 sm:grid-cols-2","children":[["$","div","bm7422cfr351m4ycfhfmakre",{"className":"rounded-xl border bg-card text-card-foreground shadow","children":[["$","div",null,{"className":"flex flex-col space-y-1.5 p-6","children":[["$","div",null,{"className":"font-semibold tracking-tight text-lg","children":"Classic Crew Neck T-Shirt"}],["$","div",null,{"className":"text-sm text-muted-foreground flex items-center gap-2","children":["$","div",null,{"className":"inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80","children":["HSN ","610910"]}]}]]}],["$","div",null,{"className":"p-6 pt-0 space-y-3","children":[["$","div",null,{"className":"text-xl font-semibold","children":"₹499.00"}],["$","div",null,{"className":"text-sm text-muted-foreground","children":"200 units"}],["$","$L25",null,{"href":"/en/products/classic-crew-neck-tshirt","className":"block","children":["$","button",null,{"className":"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 bg-primary text-primary-foreground shadow hover:bg-primary/90 h-9 px-4 py-2 w-full","children":"View product"}]}]]}]]}]]}],["$","div",null,{"className":"text-sm text-muted-foreground text-center","children":"Showing products in stock. COD available across India."}]]}],[["$","script","script-0",{"src":"/_next/static/chunks/2n5qeheznvl4u.js","async":true}]],["$","$L26",null,{"children":["$","$1f",null,{"name":"Next.MetadataOutlet","children":"$@27"}]}]]}] +6:300 +27:null +23:true +6:C +22:0 +17:"$undefined" +14:"$undefined" +10:"$undefined" +d:"$undefined" +5:"$undefined" +21:"$undefined" +1a:"$undefined" diff --git a/e-commerce/.next/server/route-cache/APP_PAGE/954d9b28e3a2b560715115f039892df7bb54ac50a7c31d718eaa2495dd02d460/$/en/catalog/category/men-tshirts.segments/_full.segment.rsc b/e-commerce/.next/server/route-cache/APP_PAGE/954d9b28e3a2b560715115f039892df7bb54ac50a7c31d718eaa2495dd02d460/$/en/catalog/category/men-tshirts.segments/_full.segment.rsc new file mode 100644 index 0000000000000000000000000000000000000000..8440920f89a238a1da81097160020d4ee24ba599 --- /dev/null +++ b/e-commerce/.next/server/route-cache/APP_PAGE/954d9b28e3a2b560715115f039892df7bb54ac50a7c31d718eaa2495dd02d460/$/en/catalog/category/men-tshirts.segments/_full.segment.rsc @@ -0,0 +1,33 @@ +1:"$Sreact.fragment" +2:"/_next/static/chunks/0umf92h1sb77c.js" +3:I[39756,["$2"],"default"] +4:I[37457,["$2"],"default"] +d:I[97367,["$2"],"OutletBoundary"] +e:"$Sreact.suspense" +10:"ViewportBoundary" +11:I[97367,["$2"],"$10"] +13:"MetadataBoundary" +14:I[97367,["$2"],"$13"] +16:I[68027,["$2"],"default",1] +:HL["/_next/static/chunks/3scjwwi8pqt2y.css","style"] +:HL["/_next/static/media/797e433ab948586e-s.p.0r6juujl39pe6.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/caa3a2e1cccd8315-s.p.0wgildi0cnwt9.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +8:X +b:[["children",{"s":"__PAGE__","h":512,"d":{"r":["$","$1","c",{"children":["$Lc",[["$","script","script-0",{"src":"/_next/static/chunks/2n5qeheznvl4u.js","async":true,"nonce":"$undefined"}]],["$","$Ld",null,{"children":["$","$e",null,{"name":"Next.MetadataOutlet","children":"$@f"}]}]]}],"p":false,"v":null}}]] +a:[["children",{"s":{"n":"slug","t":"d","k":"men-tshirts","s":[]},"h":512,"d":{"r":["$","$1","c",{"children":[null,["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],"p":false,"v":"$8"},"c":"$Qb"}]] +9:[["children",{"s":"category","h":512,"d":{"r":["$","$1","c",{"children":[null,["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],"p":false,"v":"$8"},"c":"$Qa"}]] +7:[["children",{"s":"catalog","h":512,"d":{"r":["$","$1","c",{"children":[null,["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],"p":false,"v":"$8"},"c":"$Q9"}]] +5:[["children",{"s":{"n":"locale","t":"d","k":"en","s":[]},"h":512,"d":{"r":["$","$1","c",{"children":[[["$","script","script-0",{"src":"/_next/static/chunks/2pv7bk-fii9c2.js","async":true,"nonce":"$undefined"}]],"$L6"]}],"p":false,"v":null},"c":"$Q7"}]] +0:{"P":null,"c":["","en","catalog","category","men-tshirts"],"q":"","i":false,"t":{"t":{"s":"","h":528,"d":{"r":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/3scjwwi8pqt2y.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/0umf92h1sb77c.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","className":"T19VSG_variable _8Li5zG_variable","children":["$","body",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}],"p":false,"v":null},"c":"$Q5"},"h":{"r":["$","$1","h",{"children":[null,["$","$L11",null,{"children":"$L12"}],["$","$L14",null,{"children":[["$","div",null,{"hidden":true,"children":["$","$e",null,{"name":"Next.Metadata","children":"$L15"}]}],null]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"p":false,"v":null}},"m":"$undefined","G":["$16",[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/3scjwwi8pqt2y.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]]],"S":true,"r":"$undefined","s":"$undefined","a":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"dRI9LFT7roNJ8J1q20Bu8"} +8:C +17:"/_next/static/chunks/2pv7bk-fii9c2.js" +18:I[75696,["$2","$17"],"default"] +6:["$","$L18",null,{"formats":"$undefined","locale":"en","messages":{"home":{"title":"E-Commerce Store","hero":"Domestic shipping across India","lang":"English","catalog":"Catalog","about":"About"},"catalog":{"back":"Back","hsn":"HSN","available":"Available","units":"units","variants":"Variants","variantsCount":"{{count}} variant(s)","buyNow":"Buy now","shipping":"Free shipping above ₹999. COD available.","product":{"view":"View product","metaTitle":"{{title}} — E-Commerce Store","metaDescription":"Shop {{title}} online with cash on delivery across India."},"category":{"view":"View category","metaTitle":"{{title}} — E-Commerce Store","metaDescription":"Browse {{title}} products with cash on delivery across India.","hero":"Shop by category","footer":"Showing products in stock. COD available across India.","empty":"No products in this category right now."},"outOfStock":"Out of stock"}},"now":"$undefined","timeZone":"Asia/Calcutta","children":["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":["$","body",null,{"children":["$","div",null,{"className":"flex flex-col min-h-screen","children":[["$","header",null,{"className":"flex items-center justify-between p-4 border-b","children":[["$","span",null,{"className":"text-lg font-semibold","children":"English"}],"$L19"]}],["$","main",null,{"className":"flex-1 p-6 max-w-3xl mx-auto w-full","children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]}],["$","footer",null,{"className":"text-center p-4 text-sm text-muted-foreground border-t","children":"E-Commerce Store"}]]}]}]}]}] +12:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] +19:["$","div",null,{"className":"flex items-center gap-2","children":[["$","a",null,{"href":"/en","className":"inline-flex items-center justify-center gap-2 whitespace-nowrap font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 bg-primary text-primary-foreground shadow hover:bg-primary/90 h-8 rounded-md px-3 text-xs flex items-center gap-1","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-arrow-left h-4 w-4","children":[["$","path","1l729n",{"d":"m12 19-7-7 7-7"}],["$","path","x3x0zl",{"d":"M19 12H5"}],"$undefined"]}],"EN"],"ref":null}],["$","a",null,{"href":"/bn","className":"inline-flex items-center justify-center gap-2 whitespace-nowrap font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground h-8 rounded-md px-3 text-xs flex items-center gap-1","children":["BN",["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-arrow-right h-4 w-4","children":[["$","path","1ays0h",{"d":"M5 12h14"}],["$","path","xquz4c",{"d":"m12 5 7 7-7 7"}],"$undefined"]}]],"ref":null}]]}] +1a:I[27201,["$2"],"IconMark"] +f:null +15:[["$","title","0",{"children":"catalog.category.metaTitle"}],["$","meta","1",{"name":"description","content":"Browse {{title}} products with cash on delivery across India."}],["$","link","2",{"rel":"icon","href":"/favicon.ico?favicon.117ezoe8m31dk.ico","sizes":"48x48","type":"image/x-icon"}],["$","$L1a","3",{}]] +1b:"/_next/static/chunks/2n5qeheznvl4u.js" +1c:I[22016,["$2","$17","$1b"],""] +c:["$","div",null,{"className":"flex flex-col gap-6","children":[["$","div",null,{"className":"flex items-center gap-4 text-sm text-muted-foreground","children":["$","$L1c",null,{"href":"/en","className":"inline-flex items-center gap-1","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-arrow-left h-4 w-4","children":[["$","path","1l729n",{"d":"m12 19-7-7 7-7"}],["$","path","x3x0zl",{"d":"M19 12H5"}],"$undefined"]}],"Back"]}]}],["$","div",null,{"className":"space-y-4","children":[" ",["$","h1",null,{"className":"text-3xl font-bold tracking-tight","children":"Men's T-Shirts"}],["$","p",null,{"className":"text-muted-foreground","children":"Shop by category"}]]}],["$","div",null,{"className":"grid gap-4 sm:grid-cols-2","children":[["$","div","bm7422cfr351m4ycfhfmakre",{"ref":"$undefined","className":"rounded-xl border bg-card text-card-foreground shadow","children":[["$","div",null,{"ref":"$undefined","className":"flex flex-col space-y-1.5 p-6","children":[["$","div",null,{"ref":"$undefined","className":"font-semibold tracking-tight text-lg","children":"Classic Crew Neck T-Shirt"}],["$","div",null,{"ref":"$undefined","className":"text-sm text-muted-foreground flex items-center gap-2","children":["$","div",null,{"className":"inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80","children":["HSN ","610910"]}]}]]}],["$","div",null,{"ref":"$undefined","className":"p-6 pt-0 space-y-3","children":[["$","div",null,{"className":"text-xl font-semibold","children":"₹499.00"}],["$","div",null,{"className":"text-sm text-muted-foreground","children":"200 units"}],["$","$L1c",null,{"href":"/en/products/classic-crew-neck-tshirt","className":"block","children":["$","button",null,{"className":"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 bg-primary text-primary-foreground shadow hover:bg-primary/90 h-9 px-4 py-2 w-full","ref":"$undefined","children":"View product"}]}]]}]]}]]}],["$","div",null,{"className":"text-sm text-muted-foreground text-center","children":"Showing products in stock. COD available across India."}]]}] diff --git a/e-commerce/.next/server/route-cache/APP_PAGE/954d9b28e3a2b560715115f039892df7bb54ac50a7c31d718eaa2495dd02d460/$/en/catalog/category/men-tshirts.segments/_tree.segment.rsc b/e-commerce/.next/server/route-cache/APP_PAGE/954d9b28e3a2b560715115f039892df7bb54ac50a7c31d718eaa2495dd02d460/$/en/catalog/category/men-tshirts.segments/_tree.segment.rsc new file mode 100644 index 0000000000000000000000000000000000000000..f993100fa72824ab129b79dff2727cd4062794d5 --- /dev/null +++ b/e-commerce/.next/server/route-cache/APP_PAGE/954d9b28e3a2b560715115f039892df7bb54ac50a7c31d718eaa2495dd02d460/$/en/catalog/category/men-tshirts.segments/_tree.segment.rsc @@ -0,0 +1,9 @@ +:HL["/_next/static/chunks/3scjwwi8pqt2y.css","style"] +:HL["/_next/static/media/797e433ab948586e-s.p.0r6juujl39pe6.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/caa3a2e1cccd8315-s.p.0wgildi0cnwt9.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +5:[["children",{"s":"__PAGE__","h":160}]] +4:[["children",{"s":{"n":"slug","t":"d","k":"men-tshirts","s":[]},"h":96,"c":"$Q5"}]] +3:[["children",{"s":"category","h":96,"c":"$Q4"}]] +2:[["children",{"s":"catalog","h":96,"c":"$Q3"}]] +1:[["children",{"s":{"n":"locale","t":"d","k":"en","s":[]},"h":96,"c":"$Q2"}]] +0:{"b":"dRI9LFT7roNJ8J1q20Bu8","t":{"t":{"s":"","h":80,"c":"$Q1"}}} diff --git a/e-commerce/.next/server/route-cache/APP_PAGE/954d9b28e3a2b560715115f039892df7bb54ac50a7c31d718eaa2495dd02d460/$/en/catalog/category/unknown-category.html b/e-commerce/.next/server/route-cache/APP_PAGE/954d9b28e3a2b560715115f039892df7bb54ac50a7c31d718eaa2495dd02d460/$/en/catalog/category/unknown-category.html new file mode 100644 index 0000000000000000000000000000000000000000..14c7f558be87cba42f393930f7838dfa3995486d --- /dev/null +++ b/e-commerce/.next/server/route-cache/APP_PAGE/954d9b28e3a2b560715115f039892df7bb54ac50a7c31d718eaa2495dd02d460/$/en/catalog/category/unknown-category.html @@ -0,0 +1 @@ +E-Commerce Store \ No newline at end of file diff --git a/e-commerce/.next/server/route-cache/APP_PAGE/954d9b28e3a2b560715115f039892df7bb54ac50a7c31d718eaa2495dd02d460/$/en/catalog/category/unknown-category.meta b/e-commerce/.next/server/route-cache/APP_PAGE/954d9b28e3a2b560715115f039892df7bb54ac50a7c31d718eaa2495dd02d460/$/en/catalog/category/unknown-category.meta new file mode 100644 index 0000000000000000000000000000000000000000..63c70dad9366072a78bb45e5d047c39ffe75fdbb --- /dev/null +++ b/e-commerce/.next/server/route-cache/APP_PAGE/954d9b28e3a2b560715115f039892df7bb54ac50a7c31d718eaa2495dd02d460/$/en/catalog/category/unknown-category.meta @@ -0,0 +1 @@ +{"headers":{"x-nextjs-stale-time":"300","x-next-cache-tags":"_N_T_/layout,_N_T_/[locale]/layout,_N_T_/[locale]/catalog/layout,_N_T_/[locale]/catalog/category/layout,_N_T_/[locale]/catalog/category/[slug]/layout,_N_T_/[locale]/catalog/category/[slug]/page,_N_T_/en/catalog/category/unknown-category"},"status":404,"segmentPaths":["/_tree","/_full","/$d$locale/catalog/category/$d$slug/__PAGE__"],"cacheControl":{"revalidate":false}} \ No newline at end of file diff --git a/e-commerce/.next/server/route-cache/APP_PAGE/954d9b28e3a2b560715115f039892df7bb54ac50a7c31d718eaa2495dd02d460/$/en/catalog/category/unknown-category.rsc b/e-commerce/.next/server/route-cache/APP_PAGE/954d9b28e3a2b560715115f039892df7bb54ac50a7c31d718eaa2495dd02d460/$/en/catalog/category/unknown-category.rsc new file mode 100644 index 0000000000000000000000000000000000000000..c4bb5eb97e6203ddb2626eaa5914b6b403f37e25 --- /dev/null +++ b/e-commerce/.next/server/route-cache/APP_PAGE/954d9b28e3a2b560715115f039892df7bb54ac50a7c31d718eaa2495dd02d460/$/en/catalog/category/unknown-category.rsc @@ -0,0 +1,31 @@ +1:"$Sreact.fragment" +2:"/_next/static/chunks/0umf92h1sb77c.js" +3:I[39756,["$2"],"default"] +4:I[37457,["$2"],"default"] +d:I[97367,["$2"],"OutletBoundary"] +e:"$Sreact.suspense" +10:"ViewportBoundary" +11:I[97367,["$2"],"$10"] +13:"MetadataBoundary" +14:I[97367,["$2"],"$13"] +16:I[68027,["$2"],"default",1] +:HL["/_next/static/chunks/3scjwwi8pqt2y.css","style"] +:HL["/_next/static/media/797e433ab948586e-s.p.0r6juujl39pe6.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/caa3a2e1cccd8315-s.p.0wgildi0cnwt9.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +8:X +b:[["children",{"s":"__PAGE__","h":160,"d":{"r":["$","$1","c",{"children":["$Lc",[["$","script","script-0",{"src":"/_next/static/chunks/2n5qeheznvl4u.js","async":true,"nonce":"$undefined"}]],["$","$Ld",null,{"children":["$","$e",null,{"name":"Next.MetadataOutlet","children":"$@f"}]}]]}],"p":false,"v":null}}]] +a:[["children",{"s":{"n":"slug","t":"d","k":"unknown-category","s":[]},"h":96,"d":{"r":["$","$1","c",{"children":[null,["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],"p":false,"v":"$8"},"c":"$Qb"}]] +9:[["children",{"s":"category","h":96,"d":{"r":["$","$1","c",{"children":[null,["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],"p":false,"v":"$8"},"c":"$Qa"}]] +7:[["children",{"s":"catalog","h":96,"d":{"r":["$","$1","c",{"children":[null,["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],"p":false,"v":"$8"},"c":"$Q9"}]] +5:[["children",{"s":{"n":"locale","t":"d","k":"en","s":[]},"h":96,"d":{"r":["$","$1","c",{"children":[[["$","script","script-0",{"src":"/_next/static/chunks/2pv7bk-fii9c2.js","async":true,"nonce":"$undefined"}]],"$L6"]}],"p":false,"v":null},"c":"$Q7"}]] +0:{"P":null,"c":["","en","catalog","category","unknown-category"],"q":"","i":false,"t":{"t":{"s":"","h":80,"d":{"r":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/3scjwwi8pqt2y.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/0umf92h1sb77c.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","className":"T19VSG_variable _8Li5zG_variable","children":["$","body",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}],"p":false,"v":null},"c":"$Q5"},"h":{"r":["$","$1","h",{"children":[null,["$","$L11",null,{"children":"$L12"}],["$","$L14",null,{"children":[["$","div",null,{"hidden":true,"children":["$","$e",null,{"name":"Next.Metadata","children":"$L15"}]}],null]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"p":false,"v":null}},"m":"$undefined","G":["$16",[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/3scjwwi8pqt2y.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]]],"S":true,"r":"$undefined","s":"$undefined","a":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"dRI9LFT7roNJ8J1q20Bu8"} +8:C +17:"/_next/static/chunks/2pv7bk-fii9c2.js" +18:I[75696,["$2","$17"],"default"] +6:["$","$L18",null,{"formats":"$undefined","locale":"en","messages":{"home":{"title":"E-Commerce Store","hero":"Domestic shipping across India","lang":"English","catalog":"Catalog","about":"About"},"catalog":{"back":"Back","hsn":"HSN","available":"Available","units":"units","variants":"Variants","variantsCount":"{{count}} variant(s)","buyNow":"Buy now","shipping":"Free shipping above ₹999. COD available.","product":{"view":"View product","metaTitle":"{{title}} — E-Commerce Store","metaDescription":"Shop {{title}} online with cash on delivery across India."},"category":{"view":"View category","metaTitle":"{{title}} — E-Commerce Store","metaDescription":"Browse {{title}} products with cash on delivery across India.","hero":"Shop by category","footer":"Showing products in stock. COD available across India.","empty":"No products in this category right now."},"outOfStock":"Out of stock"}},"now":"$undefined","timeZone":"Asia/Calcutta","children":["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":["$","body",null,{"children":["$","div",null,{"className":"flex flex-col min-h-screen","children":[["$","header",null,{"className":"flex items-center justify-between p-4 border-b","children":[["$","span",null,{"className":"text-lg font-semibold","children":"English"}],"$L19"]}],["$","main",null,{"className":"flex-1 p-6 max-w-3xl mx-auto w-full","children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]}],["$","footer",null,{"className":"text-center p-4 text-sm text-muted-foreground border-t","children":"E-Commerce Store"}]]}]}]}]}] +12:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] +19:["$","div",null,{"className":"flex items-center gap-2","children":[["$","a",null,{"href":"/en","className":"inline-flex items-center justify-center gap-2 whitespace-nowrap font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 bg-primary text-primary-foreground shadow hover:bg-primary/90 h-8 rounded-md px-3 text-xs flex items-center gap-1","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-arrow-left h-4 w-4","children":[["$","path","1l729n",{"d":"m12 19-7-7 7-7"}],["$","path","x3x0zl",{"d":"M19 12H5"}],"$undefined"]}],"EN"],"ref":null}],["$","a",null,{"href":"/bn","className":"inline-flex items-center justify-center gap-2 whitespace-nowrap font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground h-8 rounded-md px-3 text-xs flex items-center gap-1","children":["BN",["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-arrow-right h-4 w-4","children":[["$","path","1ays0h",{"d":"M5 12h14"}],["$","path","xquz4c",{"d":"m12 5 7 7-7 7"}],"$undefined"]}]],"ref":null}]]}] +c:E{"digest":"NEXT_HTTP_ERROR_FALLBACK;404"} +1a:I[27201,["$2"],"IconMark"] +f:null +15:[["$","title","0",{"children":"catalog.category.metaTitle"}],["$","meta","1",{"name":"description","content":"Browse {{title}} products with cash on delivery across India."}],["$","link","2",{"rel":"icon","href":"/favicon.ico?favicon.117ezoe8m31dk.ico","sizes":"48x48","type":"image/x-icon"}],["$","$L1a","3",{}]] diff --git a/e-commerce/.next/server/route-cache/APP_PAGE/954d9b28e3a2b560715115f039892df7bb54ac50a7c31d718eaa2495dd02d460/$/en/catalog/category/unknown-category.segments/$d$locale/catalog/category/$d$slug/__PAGE__.segment.rsc b/e-commerce/.next/server/route-cache/APP_PAGE/954d9b28e3a2b560715115f039892df7bb54ac50a7c31d718eaa2495dd02d460/$/en/catalog/category/unknown-category.segments/$d$locale/catalog/category/$d$slug/__PAGE__.segment.rsc new file mode 100644 index 0000000000000000000000000000000000000000..28d21b54262444d30918cb5b0e9a7c7808b6e6b6 --- /dev/null +++ b/e-commerce/.next/server/route-cache/APP_PAGE/954d9b28e3a2b560715115f039892df7bb54ac50a7c31d718eaa2495dd02d460/$/en/catalog/category/unknown-category.segments/$d$locale/catalog/category/$d$slug/__PAGE__.segment.rsc @@ -0,0 +1,43 @@ +1:"$Sreact.fragment" +2:"/_next/static/chunks/0umf92h1sb77c.js" +3:I[39756,["$2"],"default"] +4:I[37457,["$2"],"default"] +8:"/_next/static/chunks/2pv7bk-fii9c2.js" +9:I[75696,["$2","$8"],"default"] +1b:"ViewportBoundary" +1c:I[97367,["$2"],"$1b"] +1d:"MetadataBoundary" +1e:I[97367,["$2"],"$1d"] +1f:"$Sreact.suspense" +20:I[27201,["$2"],"IconMark"] +:HL["/_next/static/chunks/3scjwwi8pqt2y.css","style"] +6:X +11:X +11:C +18:[["children",{"s":"__PAGE__","h":160,"d":{"r":"$L19","p":"$@1a","v":null,"s":"$6"}}]] +15:[["children",{"s":{"n":"slug","t":"d","k":"unknown-category","s":[]},"h":96,"d":{"r":"$L16","p":"$@17","v":"$11","s":"$6"},"c":"$Q18"}]] +12:[["children",{"s":"category","h":96,"d":{"r":"$L13","p":"$@14","v":"$11","s":"$6"},"c":"$Q15"}]] +e:[["children",{"s":"catalog","h":96,"d":{"r":"$Lf","p":"$@10","v":"$11","s":"$6"},"c":"$Q12"}]] +7:[["children",{"s":{"n":"locale","t":"d","k":"en","s":[]},"h":96,"d":{"r":["$","$1","c",{"children":[[["$","script","script-0",{"src":"/_next/static/chunks/2pv7bk-fii9c2.js","async":true}]],["$","$L9",null,{"locale":"en","messages":{"home":{"title":"E-Commerce Store","hero":"Domestic shipping across India","lang":"English","catalog":"Catalog","about":"About"},"catalog":{"back":"Back","hsn":"HSN","available":"Available","units":"units","variants":"Variants","variantsCount":"{{count}} variant(s)","buyNow":"Buy now","shipping":"Free shipping above ₹999. COD available.","product":{"view":"View product","metaTitle":"{{title}} — E-Commerce Store","metaDescription":"Shop {{title}} online with cash on delivery across India."},"category":{"view":"View category","metaTitle":"{{title}} — E-Commerce Store","metaDescription":"Browse {{title}} products with cash on delivery across India.","hero":"Shop by category","footer":"Showing products in stock. COD available across India.","empty":"No products in this category right now."},"outOfStock":"Out of stock"}},"timeZone":"Asia/Calcutta","children":["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":["$","body",null,{"children":["$","div",null,{"className":"flex flex-col min-h-screen","children":[["$","header",null,{"className":"flex items-center justify-between p-4 border-b","children":[["$","span",null,{"className":"text-lg font-semibold","children":"English"}],["$","div",null,{"className":"flex items-center gap-2","children":[["$","a",null,{"href":"/en","className":"inline-flex items-center justify-center gap-2 whitespace-nowrap font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 bg-primary text-primary-foreground shadow hover:bg-primary/90 h-8 rounded-md px-3 text-xs flex items-center gap-1","children":[["$","svg",null,{"xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-arrow-left h-4 w-4","children":[["$","path","1l729n",{"d":"m12 19-7-7 7-7"}],["$","path","x3x0zl",{"d":"M19 12H5"}],"$undefined"]}],"EN"],"ref":null}],["$","a",null,{"href":"/bn","className":"inline-flex items-center justify-center gap-2 whitespace-nowrap font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground h-8 rounded-md px-3 text-xs flex items-center gap-1","children":["BN","$La"],"ref":null}]]}]]}],"$Lb","$Lc"]}]}]}]}]]}],"p":"$@d","v":null,"s":"$6"},"c":"$Qe"}]] +0:{"t":{"t":{"s":"","h":80,"d":{"r":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/3scjwwi8pqt2y.css","precedence":"next"}],["$","script","script-0",{"src":"/_next/static/chunks/0umf92h1sb77c.js","async":true}]],["$","html",null,{"lang":"en","className":"T19VSG_variable _8Li5zG_variable","children":["$","body",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","template":["$","$L4",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]}]]}],"p":"$@5","v":null,"s":"$6"},"c":"$Q7"},"h":{"r":["$","$1","h",{"children":[null,["$","$L1c",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","$L1e",null,{"children":[["$","div",null,{"hidden":true,"children":["$","$1f",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"catalog.category.metaTitle"}],["$","meta","1",{"name":"description","content":"Browse {{title}} products with cash on delivery across India."}],["$","link","2",{"rel":"icon","href":"/favicon.ico?favicon.117ezoe8m31dk.ico","sizes":"48x48","type":"image/x-icon"}],["$","$L20","3",{}]]}]}],null]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"p":"$@21","v":null,"s":"$6"}},"a":"$@22","u":"$@23","b":"dRI9LFT7roNJ8J1q20Bu8"} +25:I[97367,["$2"],"OutletBoundary"] +a:["$","svg",null,{"xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-arrow-right h-4 w-4","children":[["$","path","1ays0h",{"d":"M5 12h14"}],["$","path","xquz4c",{"d":"m12 5 7 7-7 7"}],"$undefined"]}] +b:["$","main",null,{"className":"flex-1 p-6 max-w-3xl mx-auto w-full","children":["$","$L3",null,{"parallelRouterKey":"children","template":["$","$L4",null,{}]}]}] +c:["$","footer",null,{"className":"text-center p-4 text-sm text-muted-foreground border-t","children":"E-Commerce Store"}] +f:["$","$1","c",{"children":[null,["$","$L3",null,{"parallelRouterKey":"children","template":["$","$L4",null,{}]}]]}] +13:["$","$1","c",{"children":[null,["$","$L3",null,{"parallelRouterKey":"children","template":["$","$L4",null,{}]}]]}] +16:["$","$1","c",{"children":[null,["$","$L3",null,{"parallelRouterKey":"children","template":["$","$L4",null,{}]}]]}] +19:["$","$1","c",{"children":["$L24",[["$","script","script-0",{"src":"/_next/static/chunks/2n5qeheznvl4u.js","async":true}]],["$","$L25",null,{"children":["$","$1f",null,{"name":"Next.MetadataOutlet","children":"$@26"}]}]]}] +24:E{"digest":"NEXT_HTTP_ERROR_FALLBACK;404"} +6:300 +26:null +23:true +6:C +22:0 +17:"$undefined" +14:"$undefined" +10:"$undefined" +d:"$undefined" +5:"$undefined" +21:"$undefined" +1a:"$undefined" diff --git a/e-commerce/.next/server/route-cache/APP_PAGE/954d9b28e3a2b560715115f039892df7bb54ac50a7c31d718eaa2495dd02d460/$/en/catalog/category/unknown-category.segments/_full.segment.rsc b/e-commerce/.next/server/route-cache/APP_PAGE/954d9b28e3a2b560715115f039892df7bb54ac50a7c31d718eaa2495dd02d460/$/en/catalog/category/unknown-category.segments/_full.segment.rsc new file mode 100644 index 0000000000000000000000000000000000000000..c4bb5eb97e6203ddb2626eaa5914b6b403f37e25 --- /dev/null +++ b/e-commerce/.next/server/route-cache/APP_PAGE/954d9b28e3a2b560715115f039892df7bb54ac50a7c31d718eaa2495dd02d460/$/en/catalog/category/unknown-category.segments/_full.segment.rsc @@ -0,0 +1,31 @@ +1:"$Sreact.fragment" +2:"/_next/static/chunks/0umf92h1sb77c.js" +3:I[39756,["$2"],"default"] +4:I[37457,["$2"],"default"] +d:I[97367,["$2"],"OutletBoundary"] +e:"$Sreact.suspense" +10:"ViewportBoundary" +11:I[97367,["$2"],"$10"] +13:"MetadataBoundary" +14:I[97367,["$2"],"$13"] +16:I[68027,["$2"],"default",1] +:HL["/_next/static/chunks/3scjwwi8pqt2y.css","style"] +:HL["/_next/static/media/797e433ab948586e-s.p.0r6juujl39pe6.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/caa3a2e1cccd8315-s.p.0wgildi0cnwt9.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +8:X +b:[["children",{"s":"__PAGE__","h":160,"d":{"r":["$","$1","c",{"children":["$Lc",[["$","script","script-0",{"src":"/_next/static/chunks/2n5qeheznvl4u.js","async":true,"nonce":"$undefined"}]],["$","$Ld",null,{"children":["$","$e",null,{"name":"Next.MetadataOutlet","children":"$@f"}]}]]}],"p":false,"v":null}}]] +a:[["children",{"s":{"n":"slug","t":"d","k":"unknown-category","s":[]},"h":96,"d":{"r":["$","$1","c",{"children":[null,["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],"p":false,"v":"$8"},"c":"$Qb"}]] +9:[["children",{"s":"category","h":96,"d":{"r":["$","$1","c",{"children":[null,["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],"p":false,"v":"$8"},"c":"$Qa"}]] +7:[["children",{"s":"catalog","h":96,"d":{"r":["$","$1","c",{"children":[null,["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],"p":false,"v":"$8"},"c":"$Q9"}]] +5:[["children",{"s":{"n":"locale","t":"d","k":"en","s":[]},"h":96,"d":{"r":["$","$1","c",{"children":[[["$","script","script-0",{"src":"/_next/static/chunks/2pv7bk-fii9c2.js","async":true,"nonce":"$undefined"}]],"$L6"]}],"p":false,"v":null},"c":"$Q7"}]] +0:{"P":null,"c":["","en","catalog","category","unknown-category"],"q":"","i":false,"t":{"t":{"s":"","h":80,"d":{"r":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/3scjwwi8pqt2y.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/0umf92h1sb77c.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","className":"T19VSG_variable _8Li5zG_variable","children":["$","body",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}],"p":false,"v":null},"c":"$Q5"},"h":{"r":["$","$1","h",{"children":[null,["$","$L11",null,{"children":"$L12"}],["$","$L14",null,{"children":[["$","div",null,{"hidden":true,"children":["$","$e",null,{"name":"Next.Metadata","children":"$L15"}]}],null]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"p":false,"v":null}},"m":"$undefined","G":["$16",[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/3scjwwi8pqt2y.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]]],"S":true,"r":"$undefined","s":"$undefined","a":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"dRI9LFT7roNJ8J1q20Bu8"} +8:C +17:"/_next/static/chunks/2pv7bk-fii9c2.js" +18:I[75696,["$2","$17"],"default"] +6:["$","$L18",null,{"formats":"$undefined","locale":"en","messages":{"home":{"title":"E-Commerce Store","hero":"Domestic shipping across India","lang":"English","catalog":"Catalog","about":"About"},"catalog":{"back":"Back","hsn":"HSN","available":"Available","units":"units","variants":"Variants","variantsCount":"{{count}} variant(s)","buyNow":"Buy now","shipping":"Free shipping above ₹999. COD available.","product":{"view":"View product","metaTitle":"{{title}} — E-Commerce Store","metaDescription":"Shop {{title}} online with cash on delivery across India."},"category":{"view":"View category","metaTitle":"{{title}} — E-Commerce Store","metaDescription":"Browse {{title}} products with cash on delivery across India.","hero":"Shop by category","footer":"Showing products in stock. COD available across India.","empty":"No products in this category right now."},"outOfStock":"Out of stock"}},"now":"$undefined","timeZone":"Asia/Calcutta","children":["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":["$","body",null,{"children":["$","div",null,{"className":"flex flex-col min-h-screen","children":[["$","header",null,{"className":"flex items-center justify-between p-4 border-b","children":[["$","span",null,{"className":"text-lg font-semibold","children":"English"}],"$L19"]}],["$","main",null,{"className":"flex-1 p-6 max-w-3xl mx-auto w-full","children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]}],["$","footer",null,{"className":"text-center p-4 text-sm text-muted-foreground border-t","children":"E-Commerce Store"}]]}]}]}]}] +12:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] +19:["$","div",null,{"className":"flex items-center gap-2","children":[["$","a",null,{"href":"/en","className":"inline-flex items-center justify-center gap-2 whitespace-nowrap font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 bg-primary text-primary-foreground shadow hover:bg-primary/90 h-8 rounded-md px-3 text-xs flex items-center gap-1","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-arrow-left h-4 w-4","children":[["$","path","1l729n",{"d":"m12 19-7-7 7-7"}],["$","path","x3x0zl",{"d":"M19 12H5"}],"$undefined"]}],"EN"],"ref":null}],["$","a",null,{"href":"/bn","className":"inline-flex items-center justify-center gap-2 whitespace-nowrap font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground h-8 rounded-md px-3 text-xs flex items-center gap-1","children":["BN",["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-arrow-right h-4 w-4","children":[["$","path","1ays0h",{"d":"M5 12h14"}],["$","path","xquz4c",{"d":"m12 5 7 7-7 7"}],"$undefined"]}]],"ref":null}]]}] +c:E{"digest":"NEXT_HTTP_ERROR_FALLBACK;404"} +1a:I[27201,["$2"],"IconMark"] +f:null +15:[["$","title","0",{"children":"catalog.category.metaTitle"}],["$","meta","1",{"name":"description","content":"Browse {{title}} products with cash on delivery across India."}],["$","link","2",{"rel":"icon","href":"/favicon.ico?favicon.117ezoe8m31dk.ico","sizes":"48x48","type":"image/x-icon"}],["$","$L1a","3",{}]] diff --git a/e-commerce/.next/server/route-cache/APP_PAGE/954d9b28e3a2b560715115f039892df7bb54ac50a7c31d718eaa2495dd02d460/$/en/catalog/category/unknown-category.segments/_tree.segment.rsc b/e-commerce/.next/server/route-cache/APP_PAGE/954d9b28e3a2b560715115f039892df7bb54ac50a7c31d718eaa2495dd02d460/$/en/catalog/category/unknown-category.segments/_tree.segment.rsc new file mode 100644 index 0000000000000000000000000000000000000000..1f440ec857994a247656e92eca6eb12ea29df6a5 --- /dev/null +++ b/e-commerce/.next/server/route-cache/APP_PAGE/954d9b28e3a2b560715115f039892df7bb54ac50a7c31d718eaa2495dd02d460/$/en/catalog/category/unknown-category.segments/_tree.segment.rsc @@ -0,0 +1,9 @@ +:HL["/_next/static/chunks/3scjwwi8pqt2y.css","style"] +:HL["/_next/static/media/797e433ab948586e-s.p.0r6juujl39pe6.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/media/caa3a2e1cccd8315-s.p.0wgildi0cnwt9.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +5:[["children",{"s":"__PAGE__","h":160}]] +4:[["children",{"s":{"n":"slug","t":"d","k":"unknown-category","s":[]},"h":96,"c":"$Q5"}]] +3:[["children",{"s":"category","h":96,"c":"$Q4"}]] +2:[["children",{"s":"catalog","h":96,"c":"$Q3"}]] +1:[["children",{"s":{"n":"locale","t":"d","k":"en","s":[]},"h":96,"c":"$Q2"}]] +0:{"b":"dRI9LFT7roNJ8J1q20Bu8","t":{"t":{"s":"","h":80,"c":"$Q1"}}} diff --git a/e-commerce/.next/server/server-reference-manifest.js b/e-commerce/.next/server/server-reference-manifest.js new file mode 100644 index 0000000000000000000000000000000000000000..cabf2e7ca8532e2f2f8f9fd9ee9f4104155d8cd2 --- /dev/null +++ b/e-commerce/.next/server/server-reference-manifest.js @@ -0,0 +1 @@ +self.__RSC_SERVER_MANIFEST="{\n \"node\": {},\n \"edge\": {},\n \"encryptionKey\": \"AJc4669gIfxOupo1Hr+pFLrX0xLM/ZgF9UQfYWI/ceI=\"\n}" \ No newline at end of file diff --git a/e-commerce/.next/server/server-reference-manifest.json b/e-commerce/.next/server/server-reference-manifest.json new file mode 100644 index 0000000000000000000000000000000000000000..b4b25b4eca2d50553280b5f26a69dcc4e47bae91 --- /dev/null +++ b/e-commerce/.next/server/server-reference-manifest.json @@ -0,0 +1,5 @@ +{ + "node": {}, + "edge": {}, + "encryptionKey": "AJc4669gIfxOupo1Hr+pFLrX0xLM/ZgF9UQfYWI/ceI=" +} \ No newline at end of file diff --git a/e-commerce/.next/static/chunks/0bts8xcjgykqh.js b/e-commerce/.next/static/chunks/0bts8xcjgykqh.js new file mode 100644 index 0000000000000000000000000000000000000000..a0f8f16f2258abb4739be69326003be9b8070723 --- /dev/null +++ b/e-commerce/.next/static/chunks/0bts8xcjgykqh.js @@ -0,0 +1,3 @@ +(()=>{"use strict";(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,5500,(e,t,r)=>{e.i(47167),Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"Image",{enumerable:!0,get:function(){return v}});let n=e.r(55682),i=e.r(90809),o=e.r(43476),l=i._(e.r(71645)),a=n._(e.r(74080)),s=n._(e.r(25633)),u=e.r(8927),d=e.r(65856),c=e.r(49381),f=n._(e.r(1948)),p=e.r(18581);function g(e,t,r,n,i,o,l){let a=e?.src;e&&e["data-loaded-src"]!==a&&(e["data-loaded-src"]=a,("decode"in e?e.decode():Promise.resolve()).catch(()=>{}).then(()=>{if(e.parentElement&&e.isConnected){if("empty"!==t&&i(!0),r?.current){let t=new Event("load");Object.defineProperty(t,"target",{writable:!1,value:e});let n=!1,i=!1;r.current({...t,nativeEvent:t,currentTarget:e,target:e,isDefaultPrevented:()=>n,isPropagationStopped:()=>i,persist:()=>{},preventDefault:()=>{n=!0,t.preventDefault()},stopPropagation:()=>{i=!0,t.stopPropagation()}})}n?.current&&n.current(e)}}))}function m(e){return l.use?{fetchPriority:e}:{fetchpriority:e}}"u"{let M=(0,l.useRef)(!1),R=(0,l.useRef)(null);h(()=>{let{current:e}=M,{current:t}=R;e||null===t||(S&&(t.src=t.src),t.complete&&g(t,c,v,w,_,y,P),M.current=!0)},[e,c,v,w,S,y,P]);let E=(0,p.useMergedRef)(O,R);return(0,o.jsx)("img",{...C,...m(d),loading:f,width:i,height:n,decoding:a,"data-nimg":b?"fill":"1",className:s,style:u,sizes:r,srcSet:t,src:e,ref:E,onLoad:e=>{g(e.currentTarget,c,v,w,_,y,P)},onError:e=>{j(!0),"empty"!==c&&_(!0),S&&S(e)}})});function b({isAppRouter:e,imgAttributes:t}){let r={as:"image",imageSrcSet:t.srcSet,imageSizes:t.sizes,crossOrigin:t.crossOrigin,referrerPolicy:t.referrerPolicy,...m(t.fetchPriority)};return e&&a.default.preload?(a.default.preload(t.src,r),null):(0,o.jsx)(s.default,{children:(0,o.jsx)("link",{rel:"preload",href:t.srcSet?void 0:t.src,...r},"__nimg-"+t.src+t.srcSet+t.sizes)})}let v=(0,l.forwardRef)((e,t)=>{let r=(0,l.useContext)(d.RouterContext),n=(0,c.useImageConfig)(),{onLoad:i,onLoadingComplete:a}=e,s=(0,l.useRef)(i);(0,l.useEffect)(()=>{s.current=i},[i]);let p=(0,l.useRef)(a);(0,l.useEffect)(()=>{p.current=a},[a]);let[g,m]=(0,l.useState)(!1),[h,v]=(0,l.useState)(!1),{props:w,meta:_}=(0,u.getImgProps)(e,{defaultLoader:f.default,imgConf:n,blurComplete:g,showAltText:h});return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(y,{...w,unoptimized:_.unoptimized,placeholder:_.placeholder,fill:_.fill,onLoadRef:s,onLoadingCompleteRef:p,setBlurComplete:m,setShowAltText:v,sizesInput:e.sizes,ref:t}),_.preload?(0,o.jsx)(b,{isAppRouter:!r,imgAttributes:w}):null]})});("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},49381,(e,t,r)=>{e.i(47167),Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"useImageConfig",{enumerable:!0,get:function(){return a}});let n=e.r(71645),i=e.r(87690),o=e.r(18556),l={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],qualities:[75],path:"/_next/image",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!1};function a(){let e=(0,n.useContext)(o.ImageConfigContext);return(0,i.prepareImageConfig)(l,e)}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},18581,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"useMergedRef",{enumerable:!0,get:function(){return i}});let n=e.r(71645);function i(e,t){let r=(0,n.useRef)(null),i=(0,n.useRef)(null);return(0,n.useCallback)(n=>{if(null===n){let e=r.current;e&&(r.current=null,e());let t=i.current;t&&(i.current=null,t())}else e&&(r.current=o(e,n)),t&&(i.current=o(t,n))},[e,t])}function o(e,t){if("function"!=typeof e)return e.current=t,()=>{e.current=null};{let r=e(t);return"function"==typeof r?r:()=>e(null)}}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},70965,(e,t,r)=>{function n(e,t){let r=e||75;return t?.qualities?.length?t.qualities.reduce((e,t)=>Math.abs(t-r){e.i(47167),Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"getImgProps",{enumerable:!0,get:function(){return s}});let n=e.r(43369),i=e.r(88143),o=["-moz-initial","fill","none","scale-down",void 0];function l(e){return void 0!==e.default}function a(e){return void 0===e?e:"number"==typeof e?Number.isFinite(e)?e:0/0:"string"==typeof e&&/^[0-9]+$/.test(e)?parseInt(e,10):0/0}function s({src:e,sizes:t,unoptimized:r=!1,priority:u=!1,preload:d=!1,loading:c,className:f,quality:p,width:g,height:m,fill:h=!1,style:y,overrideSrc:b,onLoad:v,onLoadingComplete:w,placeholder:_="empty",blurDataURL:j,fetchPriority:P,decoding:x="async",layout:S,objectFit:C,objectPosition:O,lazyBoundary:M,lazyRoot:R,...E},I){var z;let $,A,{imgConf:k,showAltText:D,blurComplete:T,defaultLoader:U}=I;if(void 0===U)throw Error("images.loaderFile detected but the file is missing default export.\nRead more: https://nextjs.org/docs/messages/invalid-images-config");let L=E.loader||U;delete E.loader,delete E.srcSet;let W="__next_img_default"in L;if(W){if("custom"===k.loader)throw Error(`Image with src "${e}" is missing "loader" prop. +Read more: https://nextjs.org/docs/messages/next-image-missing-loader`)}else{let e=L;L=t=>{let{config:r,...n}=t;return e(n)}}if(S){"fill"===S&&(h=!0);let e={intrinsic:{maxWidth:"100%",height:"auto"},responsive:{width:"100%",height:"auto"}}[S];e&&(y={...y,...e});let r={responsive:"100vw",fill:"100vw"}[S];r&&!t&&(t=r)}let q="",B=a(g),F=a(m);if((z=e)&&"object"==typeof z&&(l(z)||void 0!==z.src)){let t=l(e)?e.default:e;if(!t.src)throw Error(`An object should only be passed to the image component src parameter if it comes from a static image import. It must include src. Received ${JSON.stringify(t)}`);if(!t.height||!t.width)throw Error(`An object should only be passed to the image component src parameter if it comes from a static image import. It must include height and width. Received ${JSON.stringify(t)}`);if($=t.blurWidth,A=t.blurHeight,j=j||t.blurDataURL,q=t.src,!h)if(B||F){if(B&&!F){let e=B/t.width;F=Math.round(t.height*e)}else if(!B&&F){let e=F/t.height;B=Math.round(t.width*e)}}else B=t.width,F=t.height}let G=!u&&!d&&("lazy"===c||void 0===c);(!(e="string"==typeof e?e:q)||e.startsWith("data:")||e.startsWith("blob:"))&&(r=!0,G=!1),k.unoptimized&&(r=!0),W&&!k.dangerouslyAllowSVG&&e.split("?",1)[0].endsWith(".svg")&&(r=!0);let V=a(p),H=Object.assign(h?{position:"absolute",height:"100%",width:"100%",left:0,top:0,right:0,bottom:0,objectFit:C,objectPosition:O}:{},D?{}:{color:"transparent"},y),N=T||"empty"===_?null:"blur"===_?`url("data:image/svg+xml;charset=utf-8,${(0,i.getImageBlurSvg)({widthInt:B,heightInt:F,blurWidth:$,blurHeight:A,blurDataURL:j||"",objectFit:H.objectFit})}")`:`url("${_}")`,J=o.includes(H.objectFit)?"fill"===H.objectFit?"100% 100%":"cover":H.objectFit,K=N?{backgroundSize:J,backgroundPosition:H.objectPosition||"50% 50%",backgroundRepeat:"no-repeat",backgroundImage:N}:{},Q=function({config:e,src:t,unoptimized:r,width:i,quality:o,sizes:l,loader:a}){if(r){if(t.startsWith("/")&&!t.startsWith("//")){let e=(0,n.getDeploymentId)();if(t.includes("/_next/static/immutable")&&!(0,n.getAssetToken)())e=void 0;else if(e){let r=t.indexOf("?");if(-1!==r){let n=new URLSearchParams(t.slice(r+1));n.get("dpl")||(n.append("dpl",e),t=t.slice(0,r)+"?"+n.toString())}else t+=`?dpl=${e}`}}return{src:t,srcSet:void 0,sizes:void 0}}let{widths:s,kind:u}=function({deviceSizes:e,allSizes:t},r,n){if(n){let r=/(^|\s)(1?\d?\d)vw/g,i=[];for(let e;e=r.exec(n);)i.push(parseInt(e[2]));if(i.length){let r=.01*Math.min(...i);return{widths:t.filter(t=>t>=e[0]*r),kind:"w"}}return{widths:t,kind:"w"}}return"number"!=typeof r?{widths:e,kind:"w"}:{widths:[...new Set([r,2*r].map(e=>t.find(t=>t>=e)||t[t.length-1]))],kind:"x"}}(e,i,l),d=s.length-1;return{sizes:l||"w"!==u?l:"100vw",srcSet:s.map((r,n)=>`${a({config:e,src:t,quality:o,width:r})} ${"w"===u?r:n+1}${u}`).join(", "),src:a({config:e,src:t,quality:o,width:s[d]})}}({config:k,src:e,unoptimized:r,width:B,quality:V,sizes:t,loader:L}),Y=G?"lazy":c;return{props:{...E,loading:Y,fetchPriority:P,width:B,height:F,decoding:x,className:f,style:{...H,...K},sizes:Q.sizes,srcSet:Q.srcSet,src:b||Q.src},meta:{unoptimized:r,preload:d||u,placeholder:_,fill:h}}}},25633,(e,t,r)=>{e.i(47167),Object.defineProperty(r,"__esModule",{value:!0});var n={default:function(){return m},defaultHead:function(){return c}};for(var i in n)Object.defineProperty(r,i,{enumerable:!0,get:n[i]});let o=e.r(55682),l=e.r(90809),a=e.r(43476),s=l._(e.r(71645)),u=o._(e.r(98879)),d=e.r(42732);function c(){return[(0,a.jsx)("meta",{charSet:"utf-8"},"charset"),(0,a.jsx)("meta",{name:"viewport",content:"width=device-width"},"viewport")]}function f(e,t){return"string"==typeof t||"number"==typeof t?e:t.type===s.default.Fragment?e.concat(s.default.Children.toArray(t.props.children).reduce((e,t)=>"string"==typeof t||"number"==typeof t?e:e.concat(t),[])):e.concat(t)}let p=["name","httpEquiv","charSet","itemProp"];function g(e){let t,r,n,i;return e.reduce(f,[]).reverse().concat(c().reverse()).filter((t=new Set,r=new Set,n=new Set,i={},e=>{let o=!0,l=!1;if(e.key&&"number"!=typeof e.key&&e.key.indexOf("$")>0){l=!0;let r=e.key.slice(e.key.indexOf("$")+1);t.has(r)?o=!1:t.add(r)}switch(e.type){case"title":case"base":r.has(e.type)?o=!1:r.add(e.type);break;case"meta":for(let t=0,r=p.length;t{let r=e.key||t;return s.default.cloneElement(e,{key:r})})}let m=function({children:e}){let t=(0,s.useContext)(d.HeadManagerContext);return(0,a.jsx)(u.default,{reduceComponentsToState:g,headManager:t,children:e})};("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},88143,(e,t,r)=>{function n({widthInt:e,heightInt:t,blurWidth:r,blurHeight:i,blurDataURL:o,objectFit:l}){let a=r?40*r:e,s=i?40*i:t,u=a&&s?`viewBox='0 0 ${a} ${s}'`:"";return`%3Csvg xmlns='http://www.w3.org/2000/svg' ${u}%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1' result='s'/%3E%3CfeFlood x='0' y='0' width='100%25' height='100%25'/%3E%3CfeComposite operator='out' in='s'/%3E%3CfeComposite in2='SourceGraphic'/%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3C/filter%3E%3Cimage width='100%25' height='100%25' x='0' y='0' preserveAspectRatio='${u?"none":"contain"===l?"xMidYMid":"cover"===l?"xMidYMid slice":"none"}' style='filter: url(%23b);' href='${o}'/%3E%3C/svg%3E`}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"getImageBlurSvg",{enumerable:!0,get:function(){return n}})},18556,(e,t,r)=>{e.i(47167),Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"ImageConfigContext",{enumerable:!0,get:function(){return o}});let n=e.r(55682)._(e.r(71645)),i=e.r(87690),o=n.default.createContext(i.imageConfigDefault)},87690,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0});var n={VALID_LOADERS:function(){return o},imageConfigDefault:function(){return u},prepareImageConfig:function(){return s}};for(var i in n)Object.defineProperty(r,i,{enumerable:!0,get:n[i]});let o=["default","imgix","cloudinary","akamai","custom"],l={},a=new WeakMap;function s(e,t){let r=e??l,n=t??l,i=a.get(r);if(i){let e=i.get(n);if(e)return e}let o=e||t||u,s=[...o.deviceSizes].sort((e,t)=>e-t),d=[...o.imageSizes],c={deviceSizes:s,imageSizes:d,allSizes:[...s,...d].sort((e,t)=>e-t),qualities:void 0===o.qualities?void 0:[...o.qualities].sort((e,t)=>e-t),path:o.path,loader:o.loader,dangerouslyAllowSVG:o.dangerouslyAllowSVG,unoptimized:o.unoptimized,domains:o.domains,remotePatterns:o.remotePatterns,localPatterns:"u"{e.i(47167),Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return l}});let n=e.r(70965),i=e.r(43369);function o({config:e,src:t,width:r,quality:l}){let a=(0,i.getDeploymentId)();if(t.startsWith("/")&&!t.startsWith("//"))if(t.includes("/_next/static/immutable")&&!(0,i.getAssetToken)())a=void 0;else{let e=t.indexOf("?");if(-1!==e){let r=new URLSearchParams(t.slice(e+1)),n=r.get("dpl");if(n){a=n,r.delete("dpl");let i=r.toString();t=t.slice(0,e)+(i?"?"+i:"")}}}if(t.startsWith("/")&&t.includes("?")&&e.localPatterns?.length===1&&"**"===e.localPatterns[0].pathname&&""===e.localPatterns[0].search)throw Error(`Image with src "${t}" is using a query string which is not configured in images.localPatterns. +Read more: https://nextjs.org/docs/messages/next-image-unconfigured-localpatterns`);let s=(0,n.findClosestQuality)(l,e);return`${e.path}?url=${encodeURIComponent(t)}&w=${r}&q=${s}${t.startsWith("/")&&a?`&dpl=${a}`:""}`}o.__next_img_default=!0;let l=o},65856,(e,t,r)=>{e.i(47167),Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"RouterContext",{enumerable:!0,get:function(){return n}});let n=(e.r(55682)._(e.r(71645))).default.createContext(null)},98879,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return a}});let n=e.r(71645),i="u"{}:n.useLayoutEffect,l=i?()=>{}:n.useEffect;function a(e){let{headManager:t,reduceComponentsToState:r}=e;function a(){if(t&&t.mountedInstances){let e=n.Children.toArray(Array.from(t.mountedInstances).filter(Boolean));t.updateHead(r(e))}}return i&&(t?.mountedInstances?.add(e.children),a()),o(()=>(t?.mountedInstances?.add(e.children),()=>{t?.mountedInstances?.delete(e.children)})),o(()=>(t&&(t._pendingUpdate=a),()=>{t&&(t._pendingUpdate=a)})),l(()=>(t&&t._pendingUpdate&&(t._pendingUpdate(),t._pendingUpdate=null),()=>{t&&t._pendingUpdate&&(t._pendingUpdate(),t._pendingUpdate=null)})),null}}])})(); \ No newline at end of file diff --git a/e-commerce/.next/static/chunks/0cz1d0mv5g_q7.js b/e-commerce/.next/static/chunks/0cz1d0mv5g_q7.js new file mode 100644 index 0000000000000000000000000000000000000000..ab422b94a4fbe76275d31c0bf7ef334768b39cae --- /dev/null +++ b/e-commerce/.next/static/chunks/0cz1d0mv5g_q7.js @@ -0,0 +1 @@ +!function(){var t="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function e(t){var e={exports:{}};return t(e,e.exports),e.exports}var r,n,o=function(t){return t&&t.Math===Math&&t},i=o("object"==typeof globalThis&&globalThis)||o("object"==typeof window&&window)||o("object"==typeof self&&self)||o("object"==typeof t&&t)||o("object"==typeof t&&t)||function(){return this}()||Function("return this")(),a=function(t){try{return!!t()}catch(t){return!0}},u=!a(function(){return 7!==Object.defineProperty({},1,{get:function(){return 7}})[1]}),s=!a(function(){var t=function(){}.bind();return"function"!=typeof t||t.hasOwnProperty("prototype")}),c=Function.prototype.call,f=s?c.bind(c):function(){return c.apply(c,arguments)},l={}.propertyIsEnumerable,h=Object.getOwnPropertyDescriptor,p=h&&!l.call({1:2},1)?function(t){var e=h(this,t);return!!e&&e.enumerable}:l,v={f:p},d=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}},g=Function.prototype,y=g.call,m=s&&g.bind.bind(y,y),b=s?m:function(t){return function(){return y.apply(t,arguments)}},w=b({}.toString),S=b("".slice),E=function(t){return S(w(t),8,-1)},O=Object,x=b("".split),R=a(function(){return!O("z").propertyIsEnumerable(0)})?function(t){return"String"===E(t)?x(t,""):O(t)}:O,P=function(t){return null==t},A=TypeError,j=function(t){if(P(t))throw new A("Can't call method on "+t);return t},k=function(t){return R(j(t))},I="object"==typeof document&&document.all,T=void 0===I&&void 0!==I?function(t){return"function"==typeof t||t===I}:function(t){return"function"==typeof t},M=function(t){return"object"==typeof t?null!==t:T(t)},L=function(t,e){return arguments.length<2?T(r=i[t])?r:void 0:i[t]&&i[t][e];var r},U=b({}.isPrototypeOf),N=i.navigator,C=N&&N.userAgent,_=C?String(C):"",F=i.process,B=i.Deno,D=F&&F.versions||B&&B.version,z=D&&D.v8;z&&(n=(r=z.split("."))[0]>0&&r[0]<4?1:+(r[0]+r[1])),!n&&_&&(!(r=_.match(/Edge\/(\d+)/))||r[1]>=74)&&(r=_.match(/Chrome\/(\d+)/))&&(n=+r[1]);var W=n,q=i.String,H=!!Object.getOwnPropertySymbols&&!a(function(){var t=Symbol("symbol detection");return!q(t)||!(Object(t)instanceof Symbol)||!Symbol.sham&&W&&W<41}),$=H&&!Symbol.sham&&"symbol"==typeof Symbol.iterator,K=Object,G=$?function(t){return"symbol"==typeof t}:function(t){var e=L("Symbol");return T(e)&&U(e.prototype,K(t))},V=String,Y=function(t){try{return V(t)}catch(t){return"Object"}},X=TypeError,J=function(t){if(T(t))return t;throw new X(Y(t)+" is not a function")},Q=function(t,e){var r=t[e];return P(r)?void 0:J(r)},Z=TypeError,tt=Object.defineProperty,et=function(t,e){try{tt(i,t,{value:e,configurable:!0,writable:!0})}catch(r){i[t]=e}return e},rt=e(function(t){var e="__core-js_shared__",r=t.exports=i[e]||et(e,{});(r.versions||(r.versions=[])).push({version:"3.38.1",mode:"global",copyright:"© 2014-2024 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.38.1/LICENSE",source:"https://github.com/zloirock/core-js"})}),nt=function(t,e){return rt[t]||(rt[t]=e||{})},ot=Object,it=function(t){return ot(j(t))},at=b({}.hasOwnProperty),ut=Object.hasOwn||function(t,e){return at(it(t),e)},st=0,ct=Math.random(),ft=b(1..toString),lt=function(t){return"Symbol("+(void 0===t?"":t)+")_"+ft(++st+ct,36)},ht=i.Symbol,pt=nt("wks"),vt=$?ht.for||ht:ht&&ht.withoutSetter||lt,dt=function(t){return ut(pt,t)||(pt[t]=H&&ut(ht,t)?ht[t]:vt("Symbol."+t)),pt[t]},gt=TypeError,yt=dt("toPrimitive"),mt=function(t,e){if(!M(t)||G(t))return t;var r,n=Q(t,yt);if(n){if(void 0===e&&(e="default"),r=f(n,t,e),!M(r)||G(r))return r;throw new gt("Can't convert object to primitive value")}return void 0===e&&(e="number"),function(t,e){var r,n;if("string"===e&&T(r=t.toString)&&!M(n=f(r,t)))return n;if(T(r=t.valueOf)&&!M(n=f(r,t)))return n;if("string"!==e&&T(r=t.toString)&&!M(n=f(r,t)))return n;throw new Z("Can't convert object to primitive value")}(t,e)},bt=function(t){var e=mt(t,"string");return G(e)?e:e+""},wt=i.document,St=M(wt)&&M(wt.createElement),Et=function(t){return St?wt.createElement(t):{}},Ot=!u&&!a(function(){return 7!==Object.defineProperty(Et("div"),"a",{get:function(){return 7}}).a}),xt=Object.getOwnPropertyDescriptor,Rt={f:u?xt:function(t,e){if(t=k(t),e=bt(e),Ot)try{return xt(t,e)}catch(t){}if(ut(t,e))return d(!f(v.f,t,e),t[e])}},Pt=u&&a(function(){return 42!==Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype}),At=String,jt=TypeError,kt=function(t){if(M(t))return t;throw new jt(At(t)+" is not an object")},It=TypeError,Tt=Object.defineProperty,Mt=Object.getOwnPropertyDescriptor,Lt="enumerable",Ut="configurable",Nt="writable",Ct={f:u?Pt?function(t,e,r){if(kt(t),e=bt(e),kt(r),"function"==typeof t&&"prototype"===e&&"value"in r&&Nt in r&&!r[Nt]){var n=Mt(t,e);n&&n[Nt]&&(t[e]=r.value,r={configurable:Ut in r?r[Ut]:n[Ut],enumerable:Lt in r?r[Lt]:n[Lt],writable:!1})}return Tt(t,e,r)}:Tt:function(t,e,r){if(kt(t),e=bt(e),kt(r),Ot)try{return Tt(t,e,r)}catch(t){}if("get"in r||"set"in r)throw new It("Accessors not supported");return"value"in r&&(t[e]=r.value),t}},_t=u?function(t,e,r){return Ct.f(t,e,d(1,r))}:function(t,e,r){return t[e]=r,t},Ft=Function.prototype,Bt=u&&Object.getOwnPropertyDescriptor,Dt=ut(Ft,"name"),zt={EXISTS:Dt,PROPER:Dt&&"something"===function(){}.name,CONFIGURABLE:Dt&&(!u||u&&Bt(Ft,"name").configurable)},Wt=b(Function.toString);T(rt.inspectSource)||(rt.inspectSource=function(t){return Wt(t)});var qt,Ht,$t,Kt=rt.inspectSource,Gt=i.WeakMap,Vt=T(Gt)&&/native code/.test(String(Gt)),Yt=nt("keys"),Xt=function(t){return Yt[t]||(Yt[t]=lt(t))},Jt={},Qt="Object already initialized",Zt=i.TypeError;if(Vt||rt.state){var te=rt.state||(rt.state=new(0,i.WeakMap));te.get=te.get,te.has=te.has,te.set=te.set,qt=function(t,e){if(te.has(t))throw new Zt(Qt);return e.facade=t,te.set(t,e),e},Ht=function(t){return te.get(t)||{}},$t=function(t){return te.has(t)}}else{var ee=Xt("state");Jt[ee]=!0,qt=function(t,e){if(ut(t,ee))throw new Zt(Qt);return e.facade=t,_t(t,ee,e),e},Ht=function(t){return ut(t,ee)?t[ee]:{}},$t=function(t){return ut(t,ee)}}var re,ne={set:qt,get:Ht,has:$t,enforce:function(t){return $t(t)?Ht(t):qt(t,{})},getterFor:function(t){return function(e){var r;if(!M(e)||(r=Ht(e)).type!==t)throw new Zt("Incompatible receiver, "+t+" required");return r}}},oe=e(function(t){var e=zt.CONFIGURABLE,r=ne.enforce,n=ne.get,o=String,i=Object.defineProperty,s=b("".slice),c=b("".replace),f=b([].join),l=u&&!a(function(){return 8!==i(function(){},"length",{value:8}).length}),h=String(String).split("String"),p=t.exports=function(t,n,a){"Symbol("===s(o(n),0,7)&&(n="["+c(o(n),/^Symbol\(([^)]*)\).*$/,"$1")+"]"),a&&a.getter&&(n="get "+n),a&&a.setter&&(n="set "+n),(!ut(t,"name")||e&&t.name!==n)&&(u?i(t,"name",{value:n,configurable:!0}):t.name=n),l&&a&&ut(a,"arity")&&t.length!==a.arity&&i(t,"length",{value:a.arity});try{a&&ut(a,"constructor")&&a.constructor?u&&i(t,"prototype",{writable:!1}):t.prototype&&(t.prototype=void 0)}catch(t){}var p=r(t);return ut(p,"source")||(p.source=f(h,"string"==typeof n?n:"")),t};Function.prototype.toString=p(function(){return T(this)&&n(this).source||Kt(this)},"toString")}),ie=function(t,e,r,n){n||(n={});var o=n.enumerable,i=void 0!==n.name?n.name:e;if(T(r)&&oe(r,i,n),n.global)o?t[e]=r:et(e,r);else{try{n.unsafe?t[e]&&(o=!0):delete t[e]}catch(t){}o?t[e]=r:Ct.f(t,e,{value:r,enumerable:!1,configurable:!n.nonConfigurable,writable:!n.nonWritable})}return t},ae=Math.ceil,ue=Math.floor,se=Math.trunc||function(t){var e=+t;return(e>0?ue:ae)(e)},ce=function(t){var e=+t;return e!=e||0===e?0:se(e)},fe=Math.max,le=Math.min,he=function(t,e){var r=ce(t);return r<0?fe(r+e,0):le(r,e)},pe=Math.min,ve=function(t){var e=ce(t);return e>0?pe(e,9007199254740991):0},de=function(t){return ve(t.length)},ge=function(t){return function(e,r,n){var o=k(e),i=de(o);if(0===i)return!t&&-1;var a,u=he(n,i);if(t&&r!=r){for(;i>u;)if((a=o[u++])!=a)return!0}else for(;i>u;u++)if((t||u in o)&&o[u]===r)return t||u||0;return!t&&-1}},ye={includes:ge(!0),indexOf:ge(!1)},me=ye.indexOf,be=b([].push),we=function(t,e){var r,n=k(t),o=0,i=[];for(r in n)!ut(Jt,r)&&ut(n,r)&&be(i,r);for(;e.length>o;)ut(n,r=e[o++])&&(~me(i,r)||be(i,r));return i},Se=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],Ee=Se.concat("length","prototype"),Oe={f:Object.getOwnPropertyNames||function(t){return we(t,Ee)}},xe={f:Object.getOwnPropertySymbols},Re=b([].concat),Pe=L("Reflect","ownKeys")||function(t){var e=Oe.f(kt(t)),r=xe.f;return r?Re(e,r(t)):e},Ae=function(t,e,r){for(var n=Pe(e),o=Ct.f,i=Rt.f,a=0;aa;)Ct.f(t,r=o[a++],n[r]);return t},Be={f:Fe},De=L("document","documentElement"),ze="prototype",We="script",qe=Xt("IE_PROTO"),He=function(){},$e=function(t){return"<"+We+">"+t+""},Ke=function(t){t.write($e("")),t.close();var e=t.parentWindow.Object;return t=null,e},Ge=function(){try{re=new ActiveXObject("htmlfile")}catch(t){}var t,e,r;Ge="undefined"!=typeof document?document.domain&&re?Ke(re):(e=Et("iframe"),r="java"+We+":",e.style.display="none",De.appendChild(e),e.src=String(r),(t=e.contentWindow.document).open(),t.write($e("document.F=Object")),t.close(),t.F):Ke(re);for(var n=Se.length;n--;)delete Ge[ze][Se[n]];return Ge()};Jt[qe]=!0;var Ve=Object.create||function(t,e){var r;return null!==t?(He[ze]=kt(t),r=new He,He[ze]=null,r[qe]=t):r=Ge(),void 0===e?r:Be.f(r,e)},Ye=Ct.f,Xe=dt("unscopables"),Je=Array.prototype;void 0===Je[Xe]&&Ye(Je,Xe,{configurable:!0,value:Ve(null)});var Qe=function(t){Je[Xe][t]=!0};Ce({target:"Array",proto:!0},{at:function(t){var e=it(this),r=de(e),n=ce(t),o=n>=0?n:r+n;return o<0||o>=r?void 0:e[o]}}),Qe("at");var Ze=function(t,e){return b(i[t].prototype[e])},tr=(Ze("Array","at"),TypeError),er=function(t,e){if(!delete t[e])throw new tr("Cannot delete property "+Y(e)+" of "+Y(t))},rr=Math.min,nr=[].copyWithin||function(t,e){var r=it(this),n=de(r),o=he(t,n),i=he(e,n),a=arguments.length>2?arguments[2]:void 0,u=rr((void 0===a?n:he(a,n))-i,n-o),s=1;for(i0;)i in r?r[o]=r[i]:er(r,o),o+=s,i+=s;return r};Ce({target:"Array",proto:!0},{copyWithin:nr}),Qe("copyWithin"),Ze("Array","copyWithin"),Ce({target:"Array",proto:!0},{fill:function(t){for(var e=it(this),r=de(e),n=arguments.length,o=he(n>1?arguments[1]:void 0,r),i=n>2?arguments[2]:void 0,a=void 0===i?r:he(i,r);a>o;)e[o++]=t;return e}}),Qe("fill"),Ze("Array","fill");var or=function(t){if("Function"===E(t))return b(t)},ir=or(or.bind),ar=function(t,e){return J(t),void 0===e?t:s?ir(t,e):function(){return t.apply(e,arguments)}},ur=Array.isArray||function(t){return"Array"===E(t)},sr={};sr[dt("toStringTag")]="z";var cr="[object z]"===String(sr),fr=dt("toStringTag"),lr=Object,hr="Arguments"===E(function(){return arguments}()),pr=cr?E:function(t){var e,r,n;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(r=function(t,e){try{return t[e]}catch(t){}}(e=lr(t),fr))?r:hr?E(e):"Object"===(n=E(e))&&T(e.callee)?"Arguments":n},vr=function(){},dr=L("Reflect","construct"),gr=/^\s*(?:class|function)\b/,yr=b(gr.exec),mr=!gr.test(vr),br=function(t){if(!T(t))return!1;try{return dr(vr,[],t),!0}catch(t){return!1}},wr=function(t){if(!T(t))return!1;switch(pr(t)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return mr||!!yr(gr,Kt(t))}catch(t){return!0}};wr.sham=!0;var Sr=!dr||a(function(){var t;return br(br.call)||!br(Object)||!br(function(){t=!0})||t})?wr:br,Er=dt("species"),Or=Array,xr=function(t,e){return new(function(t){var e;return ur(t)&&(Sr(e=t.constructor)&&(e===Or||ur(e.prototype))||M(e)&&null===(e=e[Er]))&&(e=void 0),void 0===e?Or:e}(t))(0===e?0:e)},Rr=b([].push),Pr=function(t){var e=1===t,r=2===t,n=3===t,o=4===t,i=6===t,a=7===t,u=5===t||i;return function(s,c,f,l){for(var h,p,v=it(s),d=R(v),g=de(d),y=ar(c,f),m=0,b=l||xr,w=e?b(s,g):r||a?b(s,0):void 0;g>m;m++)if((u||m in d)&&(p=y(h=d[m],m,v),t))if(e)w[m]=p;else if(p)switch(t){case 3:return!0;case 5:return h;case 6:return m;case 2:Rr(w,h)}else switch(t){case 4:return!1;case 7:Rr(w,h)}return i?-1:n||o?o:w}},Ar={forEach:Pr(0),map:Pr(1),filter:Pr(2),some:Pr(3),every:Pr(4),find:Pr(5),findIndex:Pr(6),filterReject:Pr(7)},jr=Ar.find,kr="find",Ir=!0;kr in[]&&Array(1)[kr](function(){Ir=!1}),Ce({target:"Array",proto:!0,forced:Ir},{find:function(t){return jr(this,t,arguments.length>1?arguments[1]:void 0)}}),Qe(kr),Ze("Array","find");var Tr=Ar.findIndex,Mr="findIndex",Lr=!0;Mr in[]&&Array(1)[Mr](function(){Lr=!1}),Ce({target:"Array",proto:!0,forced:Lr},{findIndex:function(t){return Tr(this,t,arguments.length>1?arguments[1]:void 0)}}),Qe(Mr),Ze("Array","findIndex");var Ur=TypeError,Nr=function(t){if(t>9007199254740991)throw Ur("Maximum allowed index exceeded");return t},Cr=function(t,e,r,n,o,i,a,u){for(var s,c,f=o,l=0,h=!!a&&ar(a,u);l0&&ur(s)?(c=de(s),f=Cr(t,e,s,c,f,i-1)-1):(Nr(f+1),t[f]=s),f++),l++;return f},_r=Cr;Ce({target:"Array",proto:!0},{flatMap:function(t){var e,r=it(this),n=de(r);return J(t),(e=xr(r,0)).length=_r(e,r,r,n,0,1,t,arguments.length>1?arguments[1]:void 0),e}}),Qe("flatMap"),Ze("Array","flatMap"),Ce({target:"Array",proto:!0},{flat:function(){var t=arguments.length?arguments[0]:void 0,e=it(this),r=de(e),n=xr(e,0);return n.length=_r(n,e,e,r,0,void 0===t?1:ce(t)),n}}),Qe("flat"),Ze("Array","flat");var Fr,Br,Dr,zr=String,Wr=function(t){if("Symbol"===pr(t))throw new TypeError("Cannot convert a Symbol value to a string");return zr(t)},qr=b("".charAt),Hr=b("".charCodeAt),$r=b("".slice),Kr=function(t){return function(e,r){var n,o,i=Wr(j(e)),a=ce(r),u=i.length;return a<0||a>=u?t?"":void 0:(n=Hr(i,a))<55296||n>56319||a+1===u||(o=Hr(i,a+1))<56320||o>57343?t?qr(i,a):n:t?$r(i,a,a+2):o-56320+(n-55296<<10)+65536}},Gr={codeAt:Kr(!1),charAt:Kr(!0)},Vr=!a(function(){function t(){}return t.prototype.constructor=null,Object.getPrototypeOf(new t)!==t.prototype}),Yr=Xt("IE_PROTO"),Xr=Object,Jr=Xr.prototype,Qr=Vr?Xr.getPrototypeOf:function(t){var e=it(t);if(ut(e,Yr))return e[Yr];var r=e.constructor;return T(r)&&e instanceof r?r.prototype:e instanceof Xr?Jr:null},Zr=dt("iterator"),tn=!1;[].keys&&("next"in(Dr=[].keys())?(Br=Qr(Qr(Dr)))!==Object.prototype&&(Fr=Br):tn=!0);var en=!M(Fr)||a(function(){var t={};return Fr[Zr].call(t)!==t});en&&(Fr={}),T(Fr[Zr])||ie(Fr,Zr,function(){return this});var rn={IteratorPrototype:Fr,BUGGY_SAFARI_ITERATORS:tn},nn=Ct.f,on=dt("toStringTag"),an=function(t,e,r){t&&!r&&(t=t.prototype),t&&!ut(t,on)&&nn(t,on,{configurable:!0,value:e})},un={},sn=rn.IteratorPrototype,cn=function(){return this},fn=function(t,e,r,n){var o=e+" Iterator";return t.prototype=Ve(sn,{next:d(+!n,r)}),an(t,o,!1),un[o]=cn,t},ln=function(t,e,r){try{return b(J(Object.getOwnPropertyDescriptor(t,e)[r]))}catch(t){}},hn=String,pn=TypeError,vn=function(t){if(function(t){return M(t)||null===t}(t))return t;throw new pn("Can't set "+hn(t)+" as a prototype")},dn=Object.setPrototypeOf||("__proto__"in{}?function(){var t,e=!1,r={};try{(t=ln(Object.prototype,"__proto__","set"))(r,[]),e=r instanceof Array}catch(t){}return function(r,n){return j(r),vn(n),M(r)?(e?t(r,n):r.__proto__=n,r):r}}():void 0),gn=zt.PROPER,yn=zt.CONFIGURABLE,mn=rn.IteratorPrototype,bn=rn.BUGGY_SAFARI_ITERATORS,wn=dt("iterator"),Sn="keys",En="values",On="entries",xn=function(){return this},Rn=function(t,e,r,n,o,i,a){fn(r,e,n);var u,s,c,l=function(t){if(t===o&&g)return g;if(!bn&&t&&t in v)return v[t];switch(t){case Sn:case En:case On:return function(){return new r(this,t)}}return function(){return new r(this)}},h=e+" Iterator",p=!1,v=t.prototype,d=v[wn]||v["@@iterator"]||o&&v[o],g=!bn&&d||l(o),y="Array"===e&&v.entries||d;if(y&&(u=Qr(y.call(new t)))!==Object.prototype&&u.next&&(Qr(u)!==mn&&(dn?dn(u,mn):T(u[wn])||ie(u,wn,xn)),an(u,h,!0)),gn&&o===En&&d&&d.name!==En&&(yn?_t(v,"name",En):(p=!0,g=function(){return f(d,this)})),o)if(s={values:l(En),keys:i?g:l(Sn),entries:l(On)},a)for(c in s)(bn||p||!(c in v))&&ie(v,c,s[c]);else Ce({target:e,proto:!0,forced:bn||p},s);return v[wn]!==g&&ie(v,wn,g,{name:o}),un[e]=g,s},Pn=function(t,e){return{value:t,done:e}},An=Gr.charAt,jn="String Iterator",kn=ne.set,In=ne.getterFor(jn);Rn(String,"String",function(t){kn(this,{type:jn,string:Wr(t),index:0})},function(){var t,e=In(this),r=e.string,n=e.index;return n>=r.length?Pn(void 0,!0):(t=An(r,n),e.index+=t.length,Pn(t,!1))});var Tn=function(t,e,r){var n,o;kt(t);try{if(!(n=Q(t,"return"))){if("throw"===e)throw r;return r}n=f(n,t)}catch(t){o=!0,n=t}if("throw"===e)throw r;if(o)throw n;return kt(n),r},Mn=function(t,e,r,n){try{return n?e(kt(r)[0],r[1]):e(r)}catch(e){Tn(t,"throw",e)}},Ln=dt("iterator"),Un=Array.prototype,Nn=function(t){return void 0!==t&&(un.Array===t||Un[Ln]===t)},Cn=function(t,e,r){u?Ct.f(t,e,d(0,r)):t[e]=r},_n=dt("iterator"),Fn=function(t){if(!P(t))return Q(t,_n)||Q(t,"@@iterator")||un[pr(t)]},Bn=TypeError,Dn=function(t,e){var r=arguments.length<2?Fn(t):e;if(J(r))return kt(f(r,t));throw new Bn(Y(t)+" is not iterable")},zn=Array,Wn=function(t){var e=it(t),r=Sr(this),n=arguments.length,o=n>1?arguments[1]:void 0,i=void 0!==o;i&&(o=ar(o,n>2?arguments[2]:void 0));var a,u,s,c,l,h,p=Fn(e),v=0;if(!p||this===zn&&Nn(p))for(a=de(e),u=r?new this(a):zn(a);a>v;v++)h=i?o(e[v],v):e[v],Cn(u,v,h);else for(u=r?new this:[],l=(c=Dn(e,p)).next;!(s=f(l,c)).done;v++)h=i?Mn(c,o,[s.value,v],!0):s.value,Cn(u,v,h);return u.length=v,u},qn=dt("iterator"),Hn=!1;try{var $n=0,Kn={next:function(){return{done:!!$n++}},return:function(){Hn=!0}};Kn[qn]=function(){return this},Array.from(Kn,function(){throw 2})}catch(t){}var Gn=function(t,e){try{if(!e&&!Hn)return!1}catch(t){return!1}var r=!1;try{var n={};n[qn]=function(){return{next:function(){return{done:r=!0}}}},t(n)}catch(t){}return r},Vn=!Gn(function(t){Array.from(t)});Ce({target:"Array",stat:!0,forced:Vn},{from:Wn});var Yn=i,Xn=ye.includes,Jn=a(function(){return!Array(1).includes()});Ce({target:"Array",proto:!0,forced:Jn},{includes:function(t){return Xn(this,t,arguments.length>1?arguments[1]:void 0)}}),Qe("includes"),Ze("Array","includes");var Qn=Ct.f,Zn="Array Iterator",to=ne.set,eo=ne.getterFor(Zn),ro=Rn(Array,"Array",function(t,e){to(this,{type:Zn,target:k(t),index:0,kind:e})},function(){var t=eo(this),e=t.target,r=t.index++;if(!e||r>=e.length)return t.target=null,Pn(void 0,!0);switch(t.kind){case"keys":return Pn(r,!1);case"values":return Pn(e[r],!1)}return Pn([r,e[r]],!1)},"values"),no=un.Arguments=un.Array;if(Qe("keys"),Qe("values"),Qe("entries"),u&&"values"!==no.name)try{Qn(no,"name",{value:"values"})}catch(t){}cr||ie(Object.prototype,"toString",cr?{}.toString:function(){return"[object "+pr(this)+"]"},{unsafe:!0}),Ze("Array","values");var oo=Array,io=a(function(){function t(){}return!(oo.of.call(t)instanceof t)});Ce({target:"Array",stat:!0,forced:io},{of:function(){for(var t=0,e=arguments.length,r=new(Sr(this)?this:oo)(e);e>t;)Cn(r,t,arguments[t++]);return r.length=e,r}});var ao=dt("hasInstance"),uo=Function.prototype;ao in uo||Ct.f(uo,ao,{value:oe(function(t){if(!T(this)||!M(t))return!1;var e=this.prototype;return M(e)?U(e,t):t instanceof this},ao)}),dt("hasInstance");var so=function(t,e,r){return r.get&&oe(r.get,e,{getter:!0}),r.set&&oe(r.set,e,{setter:!0}),Ct.f(t,e,r)},co=zt.EXISTS,fo=Function.prototype,lo=b(fo.toString),ho=/function\b(?:\s|\/\*[\S\s]*?\*\/|\/\/[^\n\r]*[\n\r]+)*([^\s(/]*)/,po=b(ho.exec);u&&!co&&so(fo,"name",{configurable:!0,get:function(){try{return po(ho,lo(this))[1]}catch(t){return""}}});var vo=b([].slice),go=Oe.f,yo="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],mo={f:function(t){return yo&&"Window"===E(t)?function(t){try{return go(t)}catch(t){return vo(yo)}}(t):go(k(t))}},bo=a(function(){if("function"==typeof ArrayBuffer){var t=new ArrayBuffer(8);Object.isExtensible(t)&&Object.defineProperty(t,"a",{value:8})}}),wo=Object.isExtensible,So=a(function(){wo(1)})||bo?function(t){return!!M(t)&&(!bo||"ArrayBuffer"!==E(t))&&(!wo||wo(t))}:wo,Eo=!a(function(){return Object.isExtensible(Object.preventExtensions({}))}),Oo=e(function(t){var e=Ct.f,r=!1,n=lt("meta"),o=0,i=function(t){e(t,n,{value:{objectID:"O"+o++,weakData:{}}})},a=t.exports={enable:function(){a.enable=function(){},r=!0;var t=Oe.f,e=b([].splice),o={};o[n]=1,t(o).length&&(Oe.f=function(r){for(var o=t(r),i=0,a=o.length;ii;i++)if((u=y(t[i]))&&U(Po,u))return u;return new Ro(!1)}n=Dn(t,o)}for(s=h?t.next:n.next;!(c=f(s,n)).done;){try{u=y(c.value)}catch(t){Tn(n,"throw",t)}if("object"==typeof u&&u&&U(Po,u))return u}return new Ro(!1)},jo=TypeError,ko=function(t,e){if(U(e,t))return t;throw new jo("Incorrect invocation")},Io=function(t,e,r){var n,o;return dn&&T(n=e.constructor)&&n!==r&&M(o=n.prototype)&&o!==r.prototype&&dn(t,o),t},To=function(t,e,r){var n=-1!==t.indexOf("Map"),o=-1!==t.indexOf("Weak"),u=n?"set":"add",s=i[t],c=s&&s.prototype,f=s,l={},h=function(t){var e=b(c[t]);ie(c,t,"add"===t?function(t){return e(this,0===t?0:t),this}:"delete"===t?function(t){return!(o&&!M(t))&&e(this,0===t?0:t)}:"get"===t?function(t){return o&&!M(t)?void 0:e(this,0===t?0:t)}:"has"===t?function(t){return!(o&&!M(t))&&e(this,0===t?0:t)}:function(t,r){return e(this,0===t?0:t,r),this})};if(Ue(t,!T(s)||!(o||c.forEach&&!a(function(){(new s).entries().next()}))))f=r.getConstructor(e,t,n,u),Oo.enable();else if(Ue(t,!0)){var p=new f,v=p[u](o?{}:-0,1)!==p,d=a(function(){p.has(1)}),g=Gn(function(t){new s(t)}),y=!o&&a(function(){for(var t=new s,e=5;e--;)t[u](e,e);return!t.has(-0)});g||((f=e(function(t,e){ko(t,c);var r=Io(new s,t,f);return P(e)||Ao(e,r[u],{that:r,AS_ENTRIES:n}),r})).prototype=c,c.constructor=f),(d||y)&&(h("delete"),h("has"),n&&h("get")),(y||v)&&h(u),o&&c.clear&&delete c.clear}return l[t]=f,Ce({global:!0,constructor:!0,forced:f!==s},l),an(f,t),o||r.setStrong(f,t,n),f},Mo=function(t,e,r){for(var n in e)ie(t,n,e[n],r);return t},Lo=dt("species"),Uo=function(t){var e=L(t);u&&e&&!e[Lo]&&so(e,Lo,{configurable:!0,get:function(){return this}})},No=Oo.fastKey,Co=ne.set,_o=ne.getterFor,Fo={getConstructor:function(t,e,r,n){var o=t(function(t,o){ko(t,i),Co(t,{type:e,index:Ve(null),first:null,last:null,size:0}),u||(t.size=0),P(o)||Ao(o,t[n],{that:t,AS_ENTRIES:r})}),i=o.prototype,a=_o(e),s=function(t,e,r){var n,o,i=a(t),s=c(t,e);return s?s.value=r:(i.last=s={index:o=No(e,!0),key:e,value:r,previous:n=i.last,next:null,removed:!1},i.first||(i.first=s),n&&(n.next=s),u?i.size++:t.size++,"F"!==o&&(i.index[o]=s)),t},c=function(t,e){var r,n=a(t),o=No(e);if("F"!==o)return n.index[o];for(r=n.first;r;r=r.next)if(r.key===e)return r};return Mo(i,{clear:function(){for(var t=a(this),e=t.first;e;)e.removed=!0,e.previous&&(e.previous=e.previous.next=null),e=e.next;t.first=t.last=null,t.index=Ve(null),u?t.size=0:this.size=0},delete:function(t){var e=this,r=a(e),n=c(e,t);if(n){var o=n.next,i=n.previous;delete r.index[n.index],n.removed=!0,i&&(i.next=o),o&&(o.previous=i),r.first===n&&(r.first=o),r.last===n&&(r.last=i),u?r.size--:e.size--}return!!n},forEach:function(t){for(var e,r=a(this),n=ar(t,arguments.length>1?arguments[1]:void 0);e=e?e.next:r.first;)for(n(e.value,e.key,this);e&&e.removed;)e=e.previous},has:function(t){return!!c(this,t)}}),Mo(i,r?{get:function(t){var e=c(this,t);return e&&e.value},set:function(t,e){return s(this,0===t?0:t,e)}}:{add:function(t){return s(this,t=0===t?0:t,t)}}),u&&so(i,"size",{configurable:!0,get:function(){return a(this).size}}),o},setStrong:function(t,e,r){var n=e+" Iterator",o=_o(e),i=_o(n);Rn(t,e,function(t,e){Co(this,{type:n,target:t,state:o(t),kind:e,last:null})},function(){for(var t=i(this),e=t.kind,r=t.last;r&&r.removed;)r=r.previous;return t.target&&(t.last=r=r?r.next:t.state.first)?Pn("keys"===e?r.key:"values"===e?r.value:[r.key,r.value],!1):(t.target=null,Pn(void 0,!0))},r?"entries":"values",!r,!0),Uo(e)}};To("Map",function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}},Fo);var Bo=Map.prototype,Do={Map:Map,set:b(Bo.set),get:b(Bo.get),has:b(Bo.has),remove:b(Bo.delete),proto:Bo},zo=Do.Map,Wo=Do.has,qo=Do.get,Ho=Do.set,$o=b([].push),Ko=a(function(){return 1!==zo.groupBy("ab",function(t){return t}).get("a").length});Ce({target:"Map",stat:!0,forced:Ko},{groupBy:function(t,e){j(t),J(e);var r=new zo,n=0;return Ao(t,function(t){var o=e(t,n++);Wo(r,o)?$o(qo(r,o),t):Ho(r,o,[t])}),r}});var Go={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0},Vo=Et("span").classList,Yo=Vo&&Vo.constructor&&Vo.constructor.prototype,Xo=Yo===Object.prototype?void 0:Yo,Jo=dt("iterator"),Qo=ro.values,Zo=function(t,e){if(t){if(t[Jo]!==Qo)try{_t(t,Jo,Qo)}catch(e){t[Jo]=Qo}if(an(t,e,!0),Go[e])for(var r in ro)if(t[r]!==ro[r])try{_t(t,r,ro[r])}catch(e){t[r]=ro[r]}}};for(var ti in Go)Zo(i[ti]&&i[ti].prototype,ti);Zo(Xo,"DOMTokenList");var ei=function(t,e,r){return function(n){var o=it(n),i=arguments.length,a=i>1?arguments[1]:void 0,u=void 0!==a,s=u?ar(a,i>2?arguments[2]:void 0):void 0,c=new t,f=0;return Ao(o,function(t){var n=u?s(t,f++):t;r?e(c,kt(n)[0],n[1]):e(c,n)}),c}};Ce({target:"Map",stat:!0,forced:!0},{from:ei(Do.Map,Do.set,!0)});var ri=function(t,e,r){return function(){for(var n=new t,o=arguments.length,i=0;i1?arguments[1]:void 0);return!1!==di(e,function(t,n){if(!r(t,n,e))return!1},!0)}});var gi=Do.Map,yi=Do.set;Ce({target:"Map",proto:!0,real:!0,forced:!0},{filter:function(t){var e=oi(this),r=ar(t,arguments.length>1?arguments[1]:void 0),n=new gi;return di(e,function(t,o){r(t,o,e)&&yi(n,o,t)}),n}}),Ce({target:"Map",proto:!0,real:!0,forced:!0},{find:function(t){var e=oi(this),r=ar(t,arguments.length>1?arguments[1]:void 0),n=di(e,function(t,n){if(r(t,n,e))return{value:t}},!0);return n&&n.value}}),Ce({target:"Map",proto:!0,real:!0,forced:!0},{findKey:function(t){var e=oi(this),r=ar(t,arguments.length>1?arguments[1]:void 0),n=di(e,function(t,n){if(r(t,n,e))return{key:n}},!0);return n&&n.key}}),Ce({target:"Map",proto:!0,real:!0,forced:!0},{includes:function(t){return!0===di(oi(this),function(e){if((r=e)===(n=t)||r!=r&&n!=n)return!0;var r,n},!0)}});var mi=Do.Map;Ce({target:"Map",stat:!0,forced:!0},{keyBy:function(t,e){var r=new(T(this)?this:mi);J(e);var n=J(r.set);return Ao(t,function(t){f(n,r,e(t),t)}),r}}),Ce({target:"Map",proto:!0,real:!0,forced:!0},{keyOf:function(t){var e=di(oi(this),function(e,r){if(e===t)return{key:r}},!0);return e&&e.key}});var bi=Do.Map,wi=Do.set;Ce({target:"Map",proto:!0,real:!0,forced:!0},{mapKeys:function(t){var e=oi(this),r=ar(t,arguments.length>1?arguments[1]:void 0),n=new bi;return di(e,function(t,o){wi(n,r(t,o,e),t)}),n}});var Si=Do.Map,Ei=Do.set;Ce({target:"Map",proto:!0,real:!0,forced:!0},{mapValues:function(t){var e=oi(this),r=ar(t,arguments.length>1?arguments[1]:void 0),n=new Si;return di(e,function(t,o){Ei(n,o,r(t,o,e))}),n}});var Oi=Do.set;Ce({target:"Map",proto:!0,real:!0,arity:1,forced:!0},{merge:function(t){for(var e=oi(this),r=arguments.length,n=0;n1?arguments[1]:void 0);return!0===di(e,function(t,n){if(r(t,n,e))return!0},!0)}});var Ri=TypeError,Pi=Do.get,Ai=Do.has,ji=Do.set;Ce({target:"Map",proto:!0,real:!0,forced:!0},{update:function(t,e){var r=oi(this),n=arguments.length;J(e);var o=Ai(r,t);if(!o&&n<3)throw new Ri("Updating absent value");var i=o?Pi(r,t):J(n>2?arguments[2]:void 0)(t,r);return ji(r,t,e(i,t,r)),r}});var ki=TypeError,Ii=function(t,e){var r,n=kt(this),o=J(n.get),i=J(n.has),a=J(n.set),u=arguments.length>2?arguments[2]:void 0;if(!T(e)&&!T(u))throw new ki("At least one callback required");return f(i,n,t)?(r=f(o,n,t),T(e)&&(r=e(r),f(a,n,t,r))):T(u)&&(r=u(),f(a,n,t,r)),r};Ce({target:"Map",proto:!0,real:!0,forced:!0},{upsert:Ii}),Ce({target:"Map",proto:!0,real:!0,name:"upsert",forced:!0},{updateOrInsert:Ii});var Ti=b(1..valueOf),Mi="\t\n\v\f\r                 \u2028\u2029\ufeff",Li=b("".replace),Ui=RegExp("^["+Mi+"]+"),Ni=RegExp("(^|[^"+Mi+"])["+Mi+"]+$"),Ci=function(t){return function(e){var r=Wr(j(e));return 1&t&&(r=Li(r,Ui,"")),2&t&&(r=Li(r,Ni,"$1")),r}},_i={start:Ci(1),end:Ci(2),trim:Ci(3)},Fi=Oe.f,Bi=Rt.f,Di=Ct.f,zi=_i.trim,Wi="Number",qi=i[Wi],Hi=qi.prototype,$i=i.TypeError,Ki=b("".slice),Gi=b("".charCodeAt),Vi=Ue(Wi,!qi(" 0o1")||!qi("0b1")||qi("+0x1")),Yi=function(t){var e,r=arguments.length<1?0:qi(function(t){var e=mt(t,"number");return"bigint"==typeof e?e:function(t){var e,r,n,o,i,a,u,s,c=mt(t,"number");if(G(c))throw new $i("Cannot convert a Symbol value to a number");if("string"==typeof c&&c.length>2)if(c=zi(c),43===(e=Gi(c,0))||45===e){if(88===(r=Gi(c,2))||120===r)return NaN}else if(48===e){switch(Gi(c,1)){case 66:case 98:n=2,o=49;break;case 79:case 111:n=8,o=55;break;default:return+c}for(a=(i=Ki(c,2)).length,u=0;uo)return NaN;return parseInt(i,n)}return+c}(e)}(t));return U(Hi,e=this)&&a(function(){Ti(e)})?Io(Object(r),this,Yi):r};Yi.prototype=Hi,Vi&&(Hi.constructor=Yi),Ce({global:!0,constructor:!0,wrap:!0,forced:Vi},{Number:Yi}),Vi&&function(t,e){for(var r,n=u?Fi(e):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,isFinite,isInteger,isNaN,isSafeInteger,parseFloat,parseInt,fromString,range".split(","),o=0;n.length>o;o++)ut(e,r=n[o])&&!ut(t,r)&&Di(t,r,Bi(e,r))}(Yn[Wi],qi),Ce({target:"Number",stat:!0,nonConfigurable:!0,nonWritable:!0},{EPSILON:Math.pow(2,-52)});var Xi=i.isFinite;Ce({target:"Number",stat:!0},{isFinite:Number.isFinite||function(t){return"number"==typeof t&&Xi(t)}});var Ji=Math.floor,Qi=Number.isInteger||function(t){return!M(t)&&isFinite(t)&&Ji(t)===t};Ce({target:"Number",stat:!0},{isInteger:Qi}),Ce({target:"Number",stat:!0},{isNaN:function(t){return t!=t}});var Zi=Math.abs;Ce({target:"Number",stat:!0},{isSafeInteger:function(t){return Qi(t)&&Zi(t)<=9007199254740991}}),Ce({target:"Number",stat:!0,nonConfigurable:!0,nonWritable:!0},{MAX_SAFE_INTEGER:9007199254740991}),Ce({target:"Number",stat:!0,nonConfigurable:!0,nonWritable:!0},{MIN_SAFE_INTEGER:-9007199254740991});var ta=_i.trim,ea=b("".charAt),ra=i.parseFloat,na=i.Symbol,oa=na&&na.iterator,ia=1/ra(Mi+"-0")!=-Infinity||oa&&!a(function(){ra(Object(oa))})?function(t){var e=ta(Wr(t)),r=ra(e);return 0===r&&"-"===ea(e,0)?-0:r}:ra;Ce({target:"Number",stat:!0,forced:Number.parseFloat!==ia},{parseFloat:ia});var aa=_i.trim,ua=i.parseInt,sa=i.Symbol,ca=sa&&sa.iterator,fa=/^[+-]?0x/i,la=b(fa.exec),ha=8!==ua(Mi+"08")||22!==ua(Mi+"0x16")||ca&&!a(function(){ua(Object(ca))})?function(t,e){var r=aa(Wr(t));return ua(r,e>>>0||(la(fa,r)?16:10))}:ua;Ce({target:"Number",stat:!0,forced:Number.parseInt!==ha},{parseInt:ha});var pa=b(v.f),va=b([].push),da=u&&a(function(){var t=Object.create(null);return t[2]=2,!pa(t,2)}),ga=function(t){return function(e){for(var r,n=k(e),o=_e(n),i=da&&null===Qr(n),a=o.length,s=0,c=[];a>s;)r=o[s++],u&&!(i?r in n:pa(n,r))||va(c,t?[r,n[r]]:n[r]);return c}},ya={entries:ga(!0),values:ga(!1)},ma=ya.entries;Ce({target:"Object",stat:!0},{entries:function(t){return ma(t)}}),Ce({target:"Object",stat:!0,sham:!u},{getOwnPropertyDescriptors:function(t){for(var e,r,n=k(t),o=Rt.f,i=Pe(n),a={},u=0;i.length>u;)void 0!==(r=o(n,e=i[u++]))&&Cn(a,e,r);return a}});var ba=a(function(){_e(1)});Ce({target:"Object",stat:!0,forced:ba},{keys:function(t){return _e(it(t))}});var wa=Object.is||function(t,e){return t===e?0!==t||1/t==1/e:t!=t&&e!=e};Ce({target:"Object",stat:!0},{is:wa});var Sa=ya.values;Ce({target:"Object",stat:!0},{values:function(t){return Sa(t)}}),Ce({target:"Object",stat:!0},{hasOwn:ut});var Ea=Function.prototype,Oa=Ea.apply,xa=Ea.call,Ra="object"==typeof Reflect&&Reflect.apply||(s?xa.bind(Oa):function(){return xa.apply(Oa,arguments)}),Pa=!a(function(){Reflect.apply(function(){})});Ce({target:"Reflect",stat:!0,forced:Pa},{apply:function(t,e,r){return Ra(J(t),e,kt(r))}});var Aa=Function,ja=b([].concat),ka=b([].join),Ia={},Ta=s?Aa.bind:function(t){var e=J(this),r=e.prototype,n=vo(arguments,1),o=function(){var r=ja(n,vo(arguments));return this instanceof o?function(t,e,r){if(!ut(Ia,e)){for(var n=[],o=0;ob)","g");return"b"!==t.exec("b").groups.a||"bc"!=="b".replace(t,"$c")}),gs=Oe.f,ys=ne.enforce,ms=dt("match"),bs=i.RegExp,ws=bs.prototype,Ss=i.SyntaxError,Es=b(ws.exec),Os=b("".charAt),xs=b("".replace),Rs=b("".indexOf),Ps=b("".slice),As=/^\?<[^\s\d!#%&*+<=>@^][^\s!#%&*+<=>@^]*>/,js=/a/g,ks=/a/g,Is=new bs(js)!==js,Ts=cs.MISSED_STICKY,Ms=cs.UNSUPPORTED_Y,Ls=u&&(!Is||Ts||ps||ds||a(function(){return ks[ms]=!1,bs(js)!==js||bs(ks)===ks||"/a/i"!==String(bs(js,"i"))}));if(Ue("RegExp",Ls)){for(var Us=function(t,e){var r,n,o,i,a,u,s=U(ws,this),c=es(t),f=void 0===e,l=[],h=t;if(!s&&c&&f&&t.constructor===Us)return t;if((c||U(ws,t))&&(t=t.source,f&&(e=os(h))),t=void 0===t?"":Wr(t),e=void 0===e?"":Wr(e),h=t,ps&&"dotAll"in js&&(n=!!e&&Rs(e,"s")>-1)&&(e=xs(e,/s/g,"")),r=e,Ts&&"sticky"in js&&(o=!!e&&Rs(e,"y")>-1)&&Ms&&(e=xs(e,/y/g,"")),ds&&(i=function(t){for(var e,r=t.length,n=0,o="",i=[],a=Ve(null),u=!1,s=!1,c=0,f="";n<=r;n++){if("\\"===(e=Os(t,n)))e+=Os(t,++n);else if("]"===e)u=!1;else if(!u)switch(!0){case"["===e:u=!0;break;case"("===e:if(o+=e,"?:"===Ps(t,n+1,n+3))continue;Es(As,Ps(t,n+1))&&(n+=2,s=!0),c++;continue;case">"===e&&s:if(""===f||ut(a,f))throw new Ss("Invalid capture group name");a[f]=!0,i[i.length]=[f,c],s=!1,f="";continue}s?f+=e:o+=e}return[o,i]}(t),t=i[0],l=i[1]),a=Io(bs(t,e),s?this:ws,Us),(n||o||l.length)&&(u=ys(a),n&&(u.dotAll=!0,u.raw=Us(function(t){for(var e,r=t.length,n=0,o="",i=!1;n<=r;n++)"\\"!==(e=Os(t,n))?i||"."!==e?("["===e?i=!0:"]"===e&&(i=!1),o+=e):o+="[\\s\\S]":o+=e+Os(t,++n);return o}(t),r)),o&&(u.sticky=!0),l.length&&(u.groups=l)),t!==h)try{_t(a,"source",""===h?"(?:)":h)}catch(t){}return a},Ns=gs(bs),Cs=0;Ns.length>Cs;)ls(Us,bs,Ns[Cs++]);ws.constructor=Us,Us.prototype=ws,ie(i,"RegExp",Us,{constructor:!0})}Uo("RegExp");var _s=zt.PROPER,Fs="toString",Bs=RegExp.prototype,Ds=Bs[Fs];(a(function(){return"/a/b"!==Ds.call({source:"a",flags:"b"})})||_s&&Ds.name!==Fs)&&ie(Bs,Fs,function(){var t=kt(this);return"/"+Wr(t.source)+"/"+Wr(os(t))},{unsafe:!0});var zs=ne.get,Ws=RegExp.prototype,qs=TypeError;u&&ps&&so(Ws,"dotAll",{configurable:!0,get:function(){if(this!==Ws){if("RegExp"===E(this))return!!zs(this).dotAll;throw new qs("Incompatible receiver, RegExp required")}}});var Hs=ne.get,$s=nt("native-string-replace",String.prototype.replace),Ks=RegExp.prototype.exec,Gs=Ks,Vs=b("".charAt),Ys=b("".indexOf),Xs=b("".replace),Js=b("".slice),Qs=function(){var t=/a/,e=/b*/g;return f(Ks,t,"a"),f(Ks,e,"a"),0!==t.lastIndex||0!==e.lastIndex}(),Zs=cs.BROKEN_CARET,tc=void 0!==/()??/.exec("")[1];(Qs||tc||Zs||ps||ds)&&(Gs=function(t){var e,r,n,o,i,a,u,s=this,c=Hs(s),l=Wr(t),h=c.raw;if(h)return h.lastIndex=s.lastIndex,e=f(Gs,h,l),s.lastIndex=h.lastIndex,e;var p=c.groups,v=Zs&&s.sticky,d=f(rs,s),g=s.source,y=0,m=l;if(v&&(d=Xs(d,"y",""),-1===Ys(d,"g")&&(d+="g"),m=Js(l,s.lastIndex),s.lastIndex>0&&(!s.multiline||s.multiline&&"\n"!==Vs(l,s.lastIndex-1))&&(g="(?: "+g+")",m=" "+m,y++),r=new RegExp("^(?:"+g+")",d)),tc&&(r=new RegExp("^"+g+"$(?!\\s)",d)),Qs&&(n=s.lastIndex),o=f(Ks,v?r:s,m),v?o?(o.input=Js(o.input,y),o[0]=Js(o[0],y),o.index=s.lastIndex,s.lastIndex+=o[0].length):s.lastIndex=0:Qs&&o&&(s.lastIndex=s.global?o.index+o[0].length:n),tc&&o&&o.length>1&&f($s,o[0],r,function(){for(i=1;i]*>)/g,Oc=/\$([$&'`]|\d{1,2})/g,xc=function(t,e,r,n,o,i){var a=r+t.length,u=n.length,s=Oc;return void 0!==o&&(o=it(o),s=Ec),wc(i,s,function(i,s){var c;switch(bc(s,0)){case"$":return"$";case"&":return t;case"`":return Sc(e,0,r);case"'":return Sc(e,a);case"<":c=o[Sc(s,1,-1)];break;default:var f=+s;if(0===f)return i;if(f>u){var l=mc(f/10);return 0===l?i:l<=u?void 0===n[l-1]?bc(s,1):n[l-1]+bc(s,1):i}c=n[f-1]}return void 0===c?"":c})},Rc=dt("replace"),Pc=Math.max,Ac=Math.min,jc=b([].concat),kc=b([].push),Ic=b("".indexOf),Tc=b("".slice),Mc="$0"==="a".replace(/./,"$0"),Lc=!!/./[Rc]&&""===/./[Rc]("a","$0"),Uc=!a(function(){var t=/./;return t.exec=function(){var t=[];return t.groups={a:"7"},t},"7"!=="".replace(t,"$")});pc("replace",function(t,e,r){var n=Lc?"$":"$0";return[function(t,r){var n=j(this),o=P(t)?void 0:Q(t,Rc);return o?f(o,t,n,r):f(e,Wr(n),t,r)},function(t,o){var i=kt(this),a=Wr(t);if("string"==typeof o&&-1===Ic(o,n)&&-1===Ic(o,"$<")){var u=r(e,i,a,o);if(u.done)return u.value}var s=T(o);s||(o=Wr(o));var c,f=i.global;f&&(c=i.unicode,i.lastIndex=0);for(var l,h=[];null!==(l=yc(i,a))&&(kc(h,l),f);)""===Wr(l[0])&&(i.lastIndex=dc(a,ve(i.lastIndex),c));for(var p,v="",d=0,g=0;g=d&&(v+=Tc(a,d,b)+y,d=b+m.length)}return v+Tc(a,d)}]},!Uc||!Mc||Lc),pc("search",function(t,e,r){return[function(e){var r=j(this),n=P(e)?void 0:Q(e,t);return n?f(n,e,r):new RegExp(e)[t](Wr(r))},function(t){var n=kt(this),o=Wr(t),i=r(e,n,o);if(i.done)return i.value;var a=n.lastIndex;wa(a,0)||(n.lastIndex=0);var u=yc(n,o);return wa(n.lastIndex,a)||(n.lastIndex=a),null===u?-1:u.index}]});var Nc=dt("species"),Cc=function(t,e){var r,n=kt(t).constructor;return void 0===n||P(r=kt(n)[Nc])?e:La(r)},_c=cs.UNSUPPORTED_Y,Fc=Math.min,Bc=b([].push),Dc=b("".slice),zc=!a(function(){var t=/(?:)/,e=t.exec;t.exec=function(){return e.apply(this,arguments)};var r="ab".split(t);return 2!==r.length||"a"!==r[0]||"b"!==r[1]}),Wc="c"==="abbc".split(/(b)*/)[1]||4!=="test".split(/(?:)/,-1).length||2!=="ab".split(/(?:ab)*/).length||4!==".".split(/(.?)(.?)/).length||".".split(/()()/).length>1||"".split(/.?/).length;pc("split",function(t,e,r){var n="0".split(void 0,0).length?function(t,r){return void 0===t&&0===r?[]:f(e,this,t,r)}:e;return[function(e,r){var o=j(this),i=P(e)?void 0:Q(e,t);return i?f(i,e,o,r):f(n,Wr(o),e,r)},function(t,o){var i=kt(this),a=Wr(t);if(!Wc){var u=r(n,i,a,o,n!==e);if(u.done)return u.value}var s=Cc(i,RegExp),c=i.unicode,f=new s(_c?"^(?:"+i.source+")":i,(i.ignoreCase?"i":"")+(i.multiline?"m":"")+(i.unicode?"u":"")+(_c?"g":"y")),l=void 0===o?4294967295:o>>>0;if(0===l)return[];if(0===a.length)return null===yc(f,a)?[a]:[];for(var h=0,p=0,v=[];p0;(n>>>=1)&&(e+=e))1&n&&(r+=e);return r},Kc=b($c),Gc=b("".slice),Vc=Math.ceil,Yc=function(t){return function(e,r,n){var o,i,a=Wr(j(e)),u=ve(r),s=a.length,c=void 0===n?" ":Wr(n);return u<=s||""===c?a:((i=Kc(c,Vc((o=u-s)/c.length))).length>o&&(i=Gc(i,0,o)),t?a+i:i+a)}},Xc={start:Yc(!1),end:Yc(!0)},Jc=Xc.start,Qc=Array,Zc=RegExp.escape,tf=b("".charAt),ef=b("".charCodeAt),rf=b(1.1.toString),nf=b([].join),of=/^[0-9a-z]/i,af=/^[$()*+./?[\\\]^{|}]/,uf=RegExp("^[!\"#%&',\\-:;<=>@`~"+Mi+"]"),sf=b(of.exec),cf={"\t":"t","\n":"n","\v":"v","\f":"f","\r":"r"},ff=function(t){var e=rf(ef(t,0),16);return e.length<3?"\\x"+Jc(e,2,"0"):"\\u"+Jc(e,4,"0")},lf=!Zc||"\\x61b"!==Zc("ab");Ce({target:"RegExp",stat:!0,forced:lf},{escape:function(t){!function(t){if("string"==typeof t)return t;throw new qc("Argument is not a string")}(t);for(var e=t.length,r=Qc(e),n=0;n=56320||n+1>=e||56320!=(64512&ef(t,n+1))?r[n]=ff(o):(r[n]=o,r[++n]=tf(t,n))}}return nf(r,"")}}),To("Set",function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}},Fo);var hf=Set.prototype,pf={Set:Set,add:b(hf.add),has:b(hf.has),remove:b(hf.delete),proto:hf},vf=pf.has,df=function(t){return vf(t),t},gf=pf.Set,yf=pf.proto,mf=b(yf.forEach),bf=b(yf.keys),wf=bf(new gf).next,Sf=function(t,e,r){return r?ci({iterator:bf(t),next:wf},e):mf(t,e)},Ef=pf.Set,Of=pf.add,xf=function(t){var e=new Ef;return Sf(t,function(t){Of(e,t)}),e},Rf=ln(pf.proto,"size","get")||function(t){return t.size},Pf="Invalid size",Af=RangeError,jf=TypeError,kf=Math.max,If=function(t,e){this.set=t,this.size=kf(e,0),this.has=J(t.has),this.keys=J(t.keys)};If.prototype={getIterator:function(){return{iterator:t=kt(f(this.keys,this.set)),next:t.next,done:!1};var t},includes:function(t){return f(this.has,this.set,t)}};var Tf=function(t){kt(t);var e=+t.size;if(e!=e)throw new jf(Pf);var r=ce(e);if(r<0)throw new Af(Pf);return new If(t,r)},Mf=pf.has,Lf=pf.remove,Uf=function(t){var e=df(this),r=Tf(t),n=xf(e);return Rf(e)<=r.size?Sf(e,function(t){r.includes(t)&&Lf(n,t)}):ci(r.getIterator(),function(t){Mf(e,t)&&Lf(n,t)}),n},Nf=function(t){return{size:t,has:function(){return!1},keys:function(){return{next:function(){return{done:!0}}}}}},Cf=function(t){var e=L("Set");try{(new e)[t](Nf(0));try{return(new e)[t](Nf(-1)),!1}catch(t){return!0}}catch(t){return!1}};Ce({target:"Set",proto:!0,real:!0,forced:!Cf("difference")},{difference:Uf});var _f=pf.Set,Ff=pf.add,Bf=pf.has,Df=function(t){var e=df(this),r=Tf(t),n=new _f;return Rf(e)>r.size?ci(r.getIterator(),function(t){Bf(e,t)&&Ff(n,t)}):Sf(e,function(t){r.includes(t)&&Ff(n,t)}),n},zf=!Cf("intersection")||a(function(){return"3,2"!==String(Array.from(new Set([1,2,3]).intersection(new Set([3,2]))))});Ce({target:"Set",proto:!0,real:!0,forced:zf},{intersection:Df});var Wf=pf.has,qf=function(t){var e=df(this),r=Tf(t);if(Rf(e)<=r.size)return!1!==Sf(e,function(t){if(r.includes(t))return!1},!0);var n=r.getIterator();return!1!==ci(n,function(t){if(Wf(e,t))return Tn(n,"normal",!1)})};Ce({target:"Set",proto:!0,real:!0,forced:!Cf("isDisjointFrom")},{isDisjointFrom:qf});var Hf=function(t){var e=df(this),r=Tf(t);return!(Rf(e)>r.size)&&!1!==Sf(e,function(t){if(!r.includes(t))return!1},!0)};Ce({target:"Set",proto:!0,real:!0,forced:!Cf("isSubsetOf")},{isSubsetOf:Hf});var $f=pf.has,Kf=function(t){var e=df(this),r=Tf(t);if(Rf(e)1?arguments[1]:void 0);return!1!==Sf(e,function(t){if(!r(t,t,e))return!1},!0)}});var el=dt("iterator"),rl=Object,nl=L("Set"),ol=function(t){return function(t){return M(t)&&"number"==typeof t.size&&T(t.has)&&T(t.keys)}(t)?t:function(t){if(P(t))return!1;var e=rl(t);return void 0!==e[el]||"@@iterator"in e||ut(un,pr(e))}(t)?new nl(t):t};Ce({target:"Set",proto:!0,real:!0,forced:!0},{difference:function(t){return f(Uf,this,ol(t))}});var il=pf.Set,al=pf.add;Ce({target:"Set",proto:!0,real:!0,forced:!0},{filter:function(t){var e=df(this),r=ar(t,arguments.length>1?arguments[1]:void 0),n=new il;return Sf(e,function(t){r(t,t,e)&&al(n,t)}),n}}),Ce({target:"Set",proto:!0,real:!0,forced:!0},{find:function(t){var e=df(this),r=ar(t,arguments.length>1?arguments[1]:void 0),n=Sf(e,function(t){if(r(t,t,e))return{value:t}},!0);return n&&n.value}}),Ce({target:"Set",proto:!0,real:!0,forced:!0},{intersection:function(t){return f(Df,this,ol(t))}}),Ce({target:"Set",proto:!0,real:!0,forced:!0},{isDisjointFrom:function(t){return f(qf,this,ol(t))}}),Ce({target:"Set",proto:!0,real:!0,forced:!0},{isSubsetOf:function(t){return f(Hf,this,ol(t))}}),Ce({target:"Set",proto:!0,real:!0,forced:!0},{isSupersetOf:function(t){return f(Kf,this,ol(t))}});var ul=b([].join),sl=b([].push);Ce({target:"Set",proto:!0,real:!0,forced:!0},{join:function(t){var e=df(this),r=void 0===t?",":Wr(t),n=[];return Sf(e,function(t){sl(n,t)}),ul(n,r)}});var cl=pf.Set,fl=pf.add;Ce({target:"Set",proto:!0,real:!0,forced:!0},{map:function(t){var e=df(this),r=ar(t,arguments.length>1?arguments[1]:void 0),n=new cl;return Sf(e,function(t){fl(n,r(t,t,e))}),n}});var ll=TypeError;Ce({target:"Set",proto:!0,real:!0,forced:!0},{reduce:function(t){var e=df(this),r=arguments.length<2,n=r?void 0:arguments[1];if(J(t),Sf(e,function(o){r?(r=!1,n=o):n=t(n,o,o,e)}),r)throw new ll("Reduce of empty set with no initial value");return n}}),Ce({target:"Set",proto:!0,real:!0,forced:!0},{some:function(t){var e=df(this),r=ar(t,arguments.length>1?arguments[1]:void 0);return!0===Sf(e,function(t){if(r(t,t,e))return!0},!0)}}),Ce({target:"Set",proto:!0,real:!0,forced:!0},{symmetricDifference:function(t){return f(Xf,this,ol(t))}}),Ce({target:"Set",proto:!0,real:!0,forced:!0},{union:function(t){return f(Qf,this,ol(t))}});var hl=dt("species"),pl=dt("isConcatSpreadable"),vl=W>=51||!a(function(){var t=[];return t[pl]=!1,t.concat()[0]!==t}),dl=function(t){if(!M(t))return!1;var e=t[pl];return void 0!==e?!!e:ur(t)},gl=!(vl&&(W>=51||!a(function(){var t=[];return(t.constructor={})[hl]=function(){return{foo:1}},1!==t.concat(Boolean).foo})));Ce({target:"Array",proto:!0,arity:1,forced:gl},{concat:function(t){var e,r,n,o,i,a=it(this),u=xr(a,0),s=0;for(e=-1,n=arguments.length;e1?arguments[1]:void 0,n=e.length,o=void 0===r?n:ip(ve(r),n),i=Wr(t);return op(e,o-i.length,o)===i}}),Ze("String","endsWith");var sp=RangeError,cp=String.fromCharCode,fp=String.fromCodePoint,lp=b([].join);Ce({target:"String",stat:!0,arity:1,forced:!!fp&&1!==fp.length},{fromCodePoint:function(t){for(var e,r=[],n=arguments.length,o=0;n>o;){if(e=+arguments[o++],he(e,1114111)!==e)throw new sp(e+" is not a valid code point");r[o]=e<65536?cp(e):cp(55296+((e-=65536)>>10),e%1024+56320)}return lp(r,"")}});var hp=b("".indexOf);Ce({target:"String",proto:!0,forced:!rp("includes")},{includes:function(t){return!!~hp(Wr(j(this)),Wr(tp(t)),arguments.length>1?arguments[1]:void 0)}}),Ze("String","includes"),b(un.String);var pp=/Version\/10(?:\.\d+){1,2}(?: [\w./]+)?(?: Mobile\/\w+)? Safari\//.test(_),vp=Xc.start;Ce({target:"String",proto:!0,forced:pp},{padStart:function(t){return vp(this,t,arguments.length>1?arguments[1]:void 0)}}),Ze("String","padStart");var dp=Xc.end;Ce({target:"String",proto:!0,forced:pp},{padEnd:function(t){return dp(this,t,arguments.length>1?arguments[1]:void 0)}}),Ze("String","padEnd");var gp=b([].push),yp=b([].join);Ce({target:"String",stat:!0},{raw:function(t){var e=k(it(t).raw),r=de(e);if(!r)return"";for(var n=arguments.length,o=[],i=0;;){if(gp(o,Wr(e[i++])),i===r)return yp(o,"");i1?arguments[1]:void 0,e.length)),n=Wr(t);return bp(e,r,r+n.length)===n}}),Ze("String","startsWith");var Op=zt.PROPER,xp=function(t){return a(function(){return!!Mi[t]()||"​…᠎"!=="​…᠎"[t]()||Op&&Mi[t].name!==t})},Rp=_i.start,Pp=xp("trimStart")?function(){return Rp(this)}:"".trimStart;Ce({target:"String",proto:!0,name:"trimStart",forced:"".trimLeft!==Pp},{trimLeft:Pp}),Ce({target:"String",proto:!0,name:"trimStart",forced:"".trimStart!==Pp},{trimStart:Pp}),Ze("String","trimLeft");var Ap=_i.end,jp=xp("trimEnd")?function(){return Ap(this)}:"".trimEnd;Ce({target:"String",proto:!0,name:"trimEnd",forced:"".trimRight!==jp},{trimRight:jp}),Ce({target:"String",proto:!0,name:"trimEnd",forced:"".trimEnd!==jp},{trimEnd:jp}),Ze("String","trimRight");var kp=Object.getOwnPropertyDescriptor,Ip=function(t){if(!u)return i[t];var e=kp(i,t);return e&&e.value},Tp=dt("iterator"),Mp=!a(function(){var t=new URL("b?a=1&b=2&c=3","https://a"),e=t.searchParams,r=new URLSearchParams("a=1&a=2&b=3"),n="";return t.pathname="c%20d",e.forEach(function(t,r){e.delete("b"),n+=r+t}),r.delete("a",2),r.delete("b",void 0),!e.size&&!u||!e.sort||"https://a/c%20d?a=1&c=3"!==t.href||"3"!==e.get("c")||"a=1"!==String(new URLSearchParams("?a=1"))||!e[Tp]||"a"!==new URL("https://a@b").username||"b"!==new URLSearchParams(new URLSearchParams("a=b")).get("a")||"xn--e1aybc"!==new URL("https://тест").host||"#%D0%B1"!==new URL("https://a#б").hash||"a1c3"!==n||"x"!==new URL("https://x",void 0).host}),Lp=TypeError,Up=function(t,e){if(t0;)t[o]=t[--o];o!==i++&&(t[o]=n)}else for(var a=Np(r/2),u=Cp(vo(t,0,a),e),s=Cp(vo(t,a),e),c=u.length,f=s.length,l=0,h=0;l0&&0!=(t&r);r>>=1)e++;return e},pv=function(t){var e=null;switch(t.length){case 1:e=t[0];break;case 2:e=(31&t[0])<<6|63&t[1];break;case 3:e=(15&t[0])<<12|(63&t[1])<<6|63&t[2];break;case 4:e=(7&t[0])<<18|(63&t[1])<<12|(63&t[2])<<6|63&t[3]}return e>1114111?null:e},vv=function(t){for(var e=(t=nv(t,cv," ")).length,r="",n=0;ne){r+="%",n++;continue}var i=lv(t,n+1);if(i!=i){r+=o,n++;continue}n+=2;var a=hv(i);if(0===a)o=Jp(i);else{if(1===a||a>4){r+="�",n++;continue}for(var u=[i],s=1;se||"%"!==tv(t,n));){var c=lv(t,n+1);if(c!=c){n+=3;break}if(c>191||c<128)break;rv(u,c),n+=2,s++}if(u.length!==a){r+="�";continue}var f=pv(u);null===f?r+="�":o=Qp(f)}}r+=o,n++}return r},dv=/[!'()~]|%20/g,gv={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+"},yv=function(t){return gv[t]},mv=function(t){return nv(Xp(t),dv,yv)},bv=fn(function(t,e){zp(this,{type:Dp,target:Wp(t).entries,index:0,kind:e})},Bp,function(){var t=qp(this),e=t.target,r=t.index++;if(!e||r>=e.length)return t.target=null,Pn(void 0,!0);var n=e[r];switch(t.kind){case"keys":return Pn(n.key,!1);case"values":return Pn(n.value,!1)}return Pn([n.key,n.value],!1)},!0),wv=function(t){this.entries=[],this.url=null,void 0!==t&&(M(t)?this.parseObject(t):this.parseQuery("string"==typeof t?"?"===tv(t,0)?uv(t,1):t:Wr(t)))};wv.prototype={type:Bp,bindURL:function(t){this.url=t,this.update()},parseObject:function(t){var e,r,n,o,i,a,u,s=this.entries,c=Fn(t);if(c)for(r=(e=Dn(t,c)).next;!(n=f(r,e)).done;){if(o=Dn(kt(n.value)),(a=f(i=o.next,o)).done||(u=f(i,o)).done||!f(i,o).done)throw new Yp("Expected sequence with length 2");rv(s,{key:Wr(a.value),value:Wr(u.value)})}else for(var l in t)ut(t,l)&&rv(s,{key:l,value:Wr(t[l])})},parseQuery:function(t){if(t)for(var e,r,n=this.entries,o=av(t,"&"),i=0;i0?arguments[0]:void 0));u||(this.size=t.entries.length)},Ev=Sv.prototype;if(Mo(Ev,{append:function(t,e){var r=Wp(this);Up(arguments.length,2),rv(r.entries,{key:Wr(t),value:Wr(e)}),u||this.length++,r.updateURL()},delete:function(t){for(var e=Wp(this),r=Up(arguments.length,1),n=e.entries,o=Wr(t),i=r<2?void 0:arguments[1],a=void 0===i?i:Wr(i),s=0;se.key?1:-1}),t.updateURL()},forEach:function(t){for(var e,r=Wp(this).entries,n=ar(t,arguments.length>1?arguments[1]:void 0),o=0;o1?Rv(arguments[1]):{})}}),T($p)){var Pv=function(t){return ko(this,Gp),new $p(t,arguments.length>1?Rv(arguments[1]):{})};Gp.constructor=Pv,Pv.prototype=Gp,Ce({global:!0,constructor:!0,dontCallGetSet:!0,forced:!0},{Request:Pv})}}var Av={URLSearchParams:Sv,getState:Wp},jv=URLSearchParams,kv=jv.prototype,Iv=b(kv.append),Tv=b(kv.delete),Mv=b(kv.forEach),Lv=b([].push),Uv=new jv("a=1&a=2&b=3");Uv.delete("a",1),Uv.delete("b",void 0),Uv+""!="a=2"&&ie(kv,"delete",function(t){var e=arguments.length,r=e<2?void 0:arguments[1];if(e&&void 0===r)return Tv(this,t);var n=[];Mv(this,function(t,e){Lv(n,{key:e,value:t})}),Up(e,1);for(var o,i=Wr(t),a=Wr(r),u=0,s=0,c=!1,f=n.length;uo;)for(var s,c=R(arguments[o++]),l=i?$v(_e(c),i(c)):_e(c),h=l.length,p=0;h>p;)s=l[p++],u&&!f(a,c,s)||(r[s]=c[s]);return r}:qv,Gv=2147483647,Vv=/[^\0-\u007E]/,Yv=/[.\u3002\uFF0E\uFF61]/g,Xv="Overflow: input needs wider integers to process",Jv=RangeError,Qv=b(Yv.exec),Zv=Math.floor,td=String.fromCharCode,ed=b("".charCodeAt),rd=b([].join),nd=b([].push),od=b("".replace),id=b("".split),ad=b("".toLowerCase),ud=function(t){return t+22+75*(t<26)},sd=function(t,e,r){var n=0;for(t=r?Zv(t/700):t>>1,t+=Zv(t/e);t>455;)t=Zv(t/35),n+=36;return Zv(n+36*t/(t+38))},cd=function(t){var e=[];t=function(t){for(var e=[],r=0,n=t.length;r=55296&&o<=56319&&r=i&&nZv((Gv-a)/l))throw new Jv(Xv);for(a+=(f-i)*l,i=f,r=0;rGv)throw new Jv(Xv);if(n===i){for(var h=a,p=36;;){var v=p<=u?1:p>=u+26?26:p-u;if(h?@[\\\]^|]/,qd=/[\0\t\n\r #/:<>?@[\\\]^|]/,Hd=/^[\u0000-\u0020]+/,$d=/(^|[^\u0000-\u0020])[\u0000-\u0020]+$/,Kd=/[\t\n\r]/g,Gd=function(t){var e,r,n,o;if("number"==typeof t){for(e=[],r=0;r<4;r++)Td(e,t%256),t=md(t/256);return Ed(e,".")}if("object"==typeof t){for(e="",n=function(t){for(var e=null,r=1,n=null,o=0,i=0;i<8;i++)0!==t[i]?(o>r&&(e=n,r=o),n=null,o=0):(null===n&&(n=i),++o);return o>r?n:e}(t),r=0;r<8;r++)o&&0===t[r]||(o&&(o=!1),n===r?(e+=r?":":"::",o=!0):(e+=Od(t[r],16),r<7&&(e+=":")));return"["+e+"]"}return t},Vd={},Yd=Kv({},Vd,{" ":1,'"':1,"<":1,">":1,"`":1}),Xd=Kv({},Yd,{"#":1,"?":1,"{":1,"}":1}),Jd=Kv({},Xd,{"/":1,":":1,";":1,"=":1,"@":1,"[":1,"\\":1,"]":1,"^":1,"|":1}),Qd=function(t,e){var r=fd(t,0);return r>32&&r<127&&!ut(e,t)?t:encodeURIComponent(t)},Zd={ftp:21,file:null,http:80,https:443,ws:80,wss:443},tg=function(t,e){var r;return 2===t.length&&Sd(Nd,wd(t,0))&&(":"===(r=wd(t,1))||!e&&"|"===r)},eg=function(t){var e;return t.length>1&&tg(kd(t,0,2))&&(2===t.length||"/"===(e=wd(t,2))||"\\"===e||"?"===e||"#"===e)},rg=function(t){return"."===t||"%2e"===Id(t)},ng={},og={},ig={},ag={},ug={},sg={},cg={},fg={},lg={},hg={},pg={},vg={},dg={},gg={},yg={},mg={},bg={},wg={},Sg={},Eg={},Og={},xg=function(t,e,r){var n,o,i,a=Wr(t);if(e){if(o=this.parse(a))throw new gd(o);this.searchParams=null}else{if(void 0!==r&&(n=new xg(r,!0)),o=this.parse(a,null,n))throw new gd(o);(i=vd(new pd)).bindURL(this),this.searchParams=i}};xg.prototype={type:"URL",parse:function(t,e,r){var n,o,i,a,u,s=this,c=e||ng,f=0,l="",h=!1,p=!1,v=!1;for(t=Wr(t),e||(s.scheme="",s.username="",s.password="",s.host=null,s.port=null,s.path=[],s.query=null,s.fragment=null,s.cannotBeABaseURL=!1,t=Pd(t,Hd,""),t=Pd(t,$d,"$1")),t=Pd(t,Kd,""),n=Wn(t);f<=n.length;){switch(o=n[f],c){case ng:if(!o||!Sd(Nd,o)){if(e)return Md;c=ig;continue}l+=Id(o),c=og;break;case og:if(o&&(Sd(Cd,o)||"+"===o||"-"===o||"."===o))l+=Id(o);else{if(":"!==o){if(e)return Md;l="",c=ig,f=0;continue}if(e&&(s.isSpecial()!==ut(Zd,l)||"file"===l&&(s.includesCredentials()||null!==s.port)||"file"===s.scheme&&!s.host))return;if(s.scheme=l,e)return void(s.isSpecial()&&Zd[s.scheme]===s.port&&(s.port=null));l="","file"===s.scheme?c=gg:s.isSpecial()&&r&&r.scheme===s.scheme?c=ag:s.isSpecial()?c=fg:"/"===n[f+1]?(c=ug,f++):(s.cannotBeABaseURL=!0,Rd(s.path,""),c=Sg)}break;case ig:if(!r||r.cannotBeABaseURL&&"#"!==o)return Md;if(r.cannotBeABaseURL&&"#"===o){s.scheme=r.scheme,s.path=vo(r.path),s.query=r.query,s.fragment="",s.cannotBeABaseURL=!0,c=Og;break}c="file"===r.scheme?gg:sg;continue;case ag:if("/"!==o||"/"!==n[f+1]){c=sg;continue}c=lg,f++;break;case ug:if("/"===o){c=hg;break}c=wg;continue;case sg:if(s.scheme=r.scheme,o===Wv)s.username=r.username,s.password=r.password,s.host=r.host,s.port=r.port,s.path=vo(r.path),s.query=r.query;else if("/"===o||"\\"===o&&s.isSpecial())c=cg;else if("?"===o)s.username=r.username,s.password=r.password,s.host=r.host,s.port=r.port,s.path=vo(r.path),s.query="",c=Eg;else{if("#"!==o){s.username=r.username,s.password=r.password,s.host=r.host,s.port=r.port,s.path=vo(r.path),s.path.length--,c=wg;continue}s.username=r.username,s.password=r.password,s.host=r.host,s.port=r.port,s.path=vo(r.path),s.query=r.query,s.fragment="",c=Og}break;case cg:if(!s.isSpecial()||"/"!==o&&"\\"!==o){if("/"!==o){s.username=r.username,s.password=r.password,s.host=r.host,s.port=r.port,c=wg;continue}c=hg}else c=lg;break;case fg:if(c=lg,"/"!==o||"/"!==wd(l,f+1))continue;f++;break;case lg:if("/"!==o&&"\\"!==o){c=hg;continue}break;case hg:if("@"===o){h&&(l="%40"+l),h=!0,i=Wn(l);for(var d=0;d65535)return Ud;s.port=s.isSpecial()&&m===Zd[s.scheme]?null:m,l=""}if(e)return;c=bg;continue}return Ud}l+=o;break;case gg:if(s.scheme="file","/"===o||"\\"===o)c=yg;else{if(!r||"file"!==r.scheme){c=wg;continue}switch(o){case Wv:s.host=r.host,s.path=vo(r.path),s.query=r.query;break;case"?":s.host=r.host,s.path=vo(r.path),s.query="",c=Eg;break;case"#":s.host=r.host,s.path=vo(r.path),s.query=r.query,s.fragment="",c=Og;break;default:eg(Ed(vo(n,f),""))||(s.host=r.host,s.path=vo(r.path),s.shortenPath()),c=wg;continue}}break;case yg:if("/"===o||"\\"===o){c=mg;break}r&&"file"===r.scheme&&!eg(Ed(vo(n,f),""))&&(tg(r.path[0],!0)?Rd(s.path,r.path[0]):s.host=r.host),c=wg;continue;case mg:if(o===Wv||"/"===o||"\\"===o||"?"===o||"#"===o){if(!e&&tg(l))c=wg;else if(""===l){if(s.host="",e)return;c=bg}else{if(a=s.parseHost(l))return a;if("localhost"===s.host&&(s.host=""),e)return;l="",c=bg}continue}l+=o;break;case bg:if(s.isSpecial()){if(c=wg,"/"!==o&&"\\"!==o)continue}else if(e||"?"!==o)if(e||"#"!==o){if(o!==Wv&&(c=wg,"/"!==o))continue}else s.fragment="",c=Og;else s.query="",c=Eg;break;case wg:if(o===Wv||"/"===o||"\\"===o&&s.isSpecial()||!e&&("?"===o||"#"===o)){if(".."===(u=Id(u=l))||"%2e."===u||".%2e"===u||"%2e%2e"===u?(s.shortenPath(),"/"===o||"\\"===o&&s.isSpecial()||Rd(s.path,"")):rg(l)?"/"===o||"\\"===o&&s.isSpecial()||Rd(s.path,""):("file"===s.scheme&&!s.path.length&&tg(l)&&(s.host&&(s.host=""),l=wd(l,0)+":"),Rd(s.path,l)),l="","file"===s.scheme&&(o===Wv||"?"===o||"#"===o))for(;s.path.length>1&&""===s.path[0];)Ad(s.path);"?"===o?(s.query="",c=Eg):"#"===o&&(s.fragment="",c=Og)}else l+=Qd(o,Xd);break;case Sg:"?"===o?(s.query="",c=Eg):"#"===o?(s.fragment="",c=Og):o!==Wv&&(s.path[0]+=Qd(o,Vd));break;case Eg:e||"#"!==o?o!==Wv&&("'"===o&&s.isSpecial()?s.query+="%27":s.query+="#"===o?"%23":Qd(o,Vd)):(s.fragment="",c=Og);break;case Og:o!==Wv&&(s.fragment+=Qd(o,Yd))}f++}},parseHost:function(t){var e,r,n;if("["===wd(t,0)){if("]"!==wd(t,t.length-1))return Ld;if(e=function(t){var e,r,n,o,i,a,u,s=[0,0,0,0,0,0,0,0],c=0,f=null,l=0,h=function(){return wd(t,l)};if(":"===h()){if(":"!==wd(t,1))return;l+=2,f=++c}for(;h();){if(8===c)return;if(":"!==h()){for(e=r=0;r<4&&Sd(zd,h());)e=16*e+yd(h(),16),l++,r++;if("."===h()){if(0===r)return;if(l-=r,c>6)return;for(n=0;h();){if(o=null,n>0){if(!("."===h()&&n<4))return;l++}if(!Sd(_d,h()))return;for(;Sd(_d,h());){if(i=yd(h(),10),null===o)o=i;else{if(0===o)return;o=10*o+i}if(o>255)return;l++}s[c]=256*s[c]+o,2!=++n&&4!==n||c++}if(4!==n)return;break}if(":"===h()){if(l++,!h())return}else if(h())return;s[c++]=e}else{if(null!==f)return;l++,f=++c}}if(null!==f)for(a=c-f,c=7;0!==c&&a>0;)u=s[c],s[c--]=s[f+a-1],s[f+--a]=u;else if(8!==c)return;return s}(kd(t,1,-1)),!e)return Ld;this.host=e}else if(this.isSpecial()){if(t=function(t){var e,r,n=[],o=id(od(ad(t),Yv,"."),".");for(e=0;e4)return t;for(r=[],n=0;n1&&"0"===wd(o,0)&&(i=Sd(Fd,o)?16:8,o=kd(o,8===i?1:2)),""===o)a=0;else{if(!Sd(10===i?Dd:8===i?Bd:zd,o))return t;a=yd(o,i)}Rd(r,a)}for(n=0;n=bd(256,5-e))return null}else if(a>255)return null;for(u=xd(r),n=0;n1?arguments[1]:void 0,n=ld(e,new xg(t,!1,r));u||(e.href=n.serialize(),e.origin=n.getOrigin(),e.protocol=n.getProtocol(),e.username=n.getUsername(),e.password=n.getPassword(),e.host=n.getHost(),e.hostname=n.getHostname(),e.port=n.getPort(),e.pathname=n.getPathname(),e.search=n.getSearch(),e.searchParams=n.getSearchParams(),e.hash=n.getHash())},Pg=Rg.prototype,Ag=function(t,e){return{get:function(){return hd(this)[t]()},set:e&&function(t){return hd(this)[e](t)},configurable:!0,enumerable:!0}};if(u&&(so(Pg,"href",Ag("serialize","setHref")),so(Pg,"origin",Ag("getOrigin")),so(Pg,"protocol",Ag("getProtocol","setProtocol")),so(Pg,"username",Ag("getUsername","setUsername")),so(Pg,"password",Ag("getPassword","setPassword")),so(Pg,"host",Ag("getHost","setHost")),so(Pg,"hostname",Ag("getHostname","setHostname")),so(Pg,"port",Ag("getPort","setPort")),so(Pg,"pathname",Ag("getPathname","setPathname")),so(Pg,"search",Ag("getSearch","setSearch")),so(Pg,"searchParams",Ag("getSearchParams")),so(Pg,"hash",Ag("getHash","setHash"))),ie(Pg,"toJSON",function(){return hd(this).serialize()},{enumerable:!0}),ie(Pg,"toString",function(){return hd(this).serialize()},{enumerable:!0}),dd){var jg=dd.createObjectURL,kg=dd.revokeObjectURL;jg&&ie(Rg,"createObjectURL",ar(jg,dd)),kg&&ie(Rg,"revokeObjectURL",ar(kg,dd))}an(Rg,"URL"),Ce({global:!0,constructor:!0,forced:!Mp,sham:!u},{URL:Rg});var Ig=L("URL"),Tg=Mp&&a(function(){Ig.canParse()}),Mg=a(function(){return 1!==Ig.canParse.length});Ce({target:"URL",stat:!0,forced:!Tg||Mg},{canParse:function(t){var e=Up(arguments.length,1),r=Wr(t),n=e<2||void 0===arguments[1]?void 0:Wr(arguments[1]);try{return!!new Ig(r,n)}catch(t){return!1}}});var Lg=L("URL");Ce({target:"URL",stat:!0,forced:!Mp},{parse:function(t){var e=Up(arguments.length,1),r=Wr(t),n=e<2||void 0===arguments[1]?void 0:Wr(arguments[1]);try{return new Lg(r,n)}catch(t){return null}}}),Ce({target:"URL",proto:!0,enumerable:!0},{toJSON:function(){return f(URL.prototype.toString,this)}});var Ug=WeakMap.prototype,Ng={WeakMap:WeakMap,set:b(Ug.set),get:b(Ug.get),has:b(Ug.has),remove:b(Ug.delete)},Cg=Ng.has,_g=function(t){return Cg(t),t},Fg=Ng.get,Bg=Ng.has,Dg=Ng.set;Ce({target:"WeakMap",proto:!0,real:!0,forced:!0},{emplace:function(t,e){var r,n,o=_g(this);return Bg(o,t)?(r=Fg(o,t),"update"in e&&(r=e.update(r,t,o),Dg(o,t,r)),r):(n=e.insert(t,o),Dg(o,t,n),n)}}),Ce({target:"WeakMap",stat:!0,forced:!0},{from:ei(Ng.WeakMap,Ng.set,!0)}),Ce({target:"WeakMap",stat:!0,forced:!0},{of:ri(Ng.WeakMap,Ng.set,!0)});var zg=Ng.remove;Ce({target:"WeakMap",proto:!0,real:!0,forced:!0},{deleteAll:function(){for(var t,e=_g(this),r=!0,n=0,o=arguments.length;n2&&(n=r,M(o=arguments[2])&&"cause"in o&&_t(n,"cause",o.cause));var s=[];return Ao(t,ny,{that:s}),_t(r,"errors",s),r};dn?dn(oy,ry):Ae(oy,ry,{name:!0});var iy=oy.prototype=Ve(ry.prototype,{constructor:d(1,oy),message:d(1,""),name:d(1,"AggregateError")});Ce({global:!0,constructor:!0,arity:2},{AggregateError:oy});var ay,uy,sy,cy,fy=function(t){return _.slice(0,t.length)===t},ly=fy("Bun/")?"BUN":fy("Cloudflare-Workers")?"CLOUDFLARE":fy("Deno/")?"DENO":fy("Node.js/")?"NODE":i.Bun&&"string"==typeof Bun.version?"BUN":i.Deno&&"object"==typeof Deno.version?"DENO":"process"===E(i.process)?"NODE":i.window&&i.document?"BROWSER":"REST",hy="NODE"===ly,py=/(?:ipad|iphone|ipod).*applewebkit/i.test(_),vy=i.setImmediate,dy=i.clearImmediate,gy=i.process,yy=i.Dispatch,my=i.Function,by=i.MessageChannel,wy=i.String,Sy=0,Ey={},Oy="onreadystatechange";a(function(){ay=i.location});var xy=function(t){if(ut(Ey,t)){var e=Ey[t];delete Ey[t],e()}},Ry=function(t){return function(){xy(t)}},Py=function(t){xy(t.data)},Ay=function(t){i.postMessage(wy(t),ay.protocol+"//"+ay.host)};vy&&dy||(vy=function(t){Up(arguments.length,1);var e=T(t)?t:my(t),r=vo(arguments,1);return Ey[++Sy]=function(){Ra(e,void 0,r)},uy(Sy),Sy},dy=function(t){delete Ey[t]},hy?uy=function(t){gy.nextTick(Ry(t))}:yy&&yy.now?uy=function(t){yy.now(Ry(t))}:by&&!py?(cy=(sy=new by).port2,sy.port1.onmessage=Py,uy=ar(cy.postMessage,cy)):i.addEventListener&&T(i.postMessage)&&!i.importScripts&&ay&&"file:"!==ay.protocol&&!a(Ay)?(uy=Ay,i.addEventListener("message",Py,!1)):uy=Oy in Et("script")?function(t){De.appendChild(Et("script"))[Oy]=function(){De.removeChild(this),xy(t)}}:function(t){setTimeout(Ry(t),0)});var jy={set:vy,clear:dy},ky=function(){this.head=null,this.tail=null};ky.prototype={add:function(t){var e={item:t,next:null},r=this.tail;r?r.next=e:this.head=e,this.tail=e},get:function(){var t=this.head;if(t)return null===(this.head=t.next)&&(this.tail=null),t.item}};var Iy,Ty,My,Ly,Uy,Ny=ky,Cy=/ipad|iphone|ipod/i.test(_)&&"undefined"!=typeof Pebble,_y=/web0s(?!.*chrome)/i.test(_),Fy=jy.set,By=i.MutationObserver||i.WebKitMutationObserver,Dy=i.document,zy=i.process,Wy=i.Promise,qy=Ip("queueMicrotask");if(!qy){var Hy=new Ny,$y=function(){var t,e;for(hy&&(t=zy.domain)&&t.exit();e=Hy.get();)try{e()}catch(t){throw Hy.head&&Iy(),t}t&&t.enter()};py||hy||_y||!By||!Dy?!Cy&&Wy&&Wy.resolve?((Ly=Wy.resolve(void 0)).constructor=Wy,Uy=ar(Ly.then,Ly),Iy=function(){Uy($y)}):hy?Iy=function(){zy.nextTick($y)}:(Fy=ar(Fy,i),Iy=function(){Fy($y)}):(Ty=!0,My=Dy.createTextNode(""),new By($y).observe(My,{characterData:!0}),Iy=function(){My.data=Ty=!Ty}),qy=function(t){Hy.head||Iy(),Hy.add(t)}}var Ky,Gy,Vy,Yy=qy,Xy=function(t){try{return{error:!1,value:t()}}catch(t){return{error:!0,value:t}}},Jy=i.Promise,Qy=dt("species"),Zy=!1,tm=T(i.PromiseRejectionEvent),em=Ue("Promise",function(){var t=Kt(Jy),e=t!==String(Jy);if(!e&&66===W)return!0;if(!W||W<51||!/native code/.test(t)){var r=new Jy(function(t){t(1)}),n=function(t){t(function(){},function(){})};if((r.constructor={})[Qy]=n,!(Zy=r.then(function(){})instanceof n))return!0}return!(e||"BROWSER"!==ly&&"DENO"!==ly||tm)}),rm={CONSTRUCTOR:em,REJECTION_EVENT:tm,SUBCLASSING:Zy},nm=TypeError,om=function(t){var e,r;this.promise=new t(function(t,n){if(void 0!==e||void 0!==r)throw new nm("Bad Promise constructor");e=t,r=n}),this.resolve=J(e),this.reject=J(r)},im={f:function(t){return new om(t)}},am=jy.set,um="Promise",sm=rm.CONSTRUCTOR,cm=rm.REJECTION_EVENT,fm=rm.SUBCLASSING,lm=ne.getterFor(um),hm=ne.set,pm=Jy&&Jy.prototype,vm=Jy,dm=pm,gm=i.TypeError,ym=i.document,mm=i.process,bm=im.f,wm=bm,Sm=!!(ym&&ym.createEvent&&i.dispatchEvent),Em="unhandledrejection",Om=function(t){var e;return!(!M(t)||!T(e=t.then))&&e},xm=function(t,e){var r,n,o,i=e.value,a=1===e.state,u=a?t.ok:t.fail,s=t.resolve,c=t.reject,l=t.domain;try{u?(a||(2===e.rejection&&km(e),e.rejection=1),!0===u?r=i:(l&&l.enter(),r=u(i),l&&(l.exit(),o=!0)),r===t.promise?c(new gm("Promise-chain cycle")):(n=Om(r))?f(n,r,s,c):s(r)):c(i)}catch(t){l&&!o&&l.exit(),c(t)}},Rm=function(t,e){t.notified||(t.notified=!0,Yy(function(){for(var r,n=t.reactions;r=n.get();)xm(r,t);t.notified=!1,e&&!t.rejection&&Am(t)}))},Pm=function(t,e,r){var n,o;Sm?((n=ym.createEvent("Event")).promise=e,n.reason=r,n.initEvent(t,!1,!0),i.dispatchEvent(n)):n={promise:e,reason:r},!cm&&(o=i["on"+t])?o(n):t===Em&&function(t,e){try{1===arguments.length?console.error(t):console.error(t,e)}catch(t){}}("Unhandled promise rejection",r)},Am=function(t){f(am,i,function(){var e,r=t.facade,n=t.value;if(jm(t)&&(e=Xy(function(){hy?mm.emit("unhandledRejection",n,r):Pm(Em,r,n)}),t.rejection=hy||jm(t)?2:1,e.error))throw e.value})},jm=function(t){return 1!==t.rejection&&!t.parent},km=function(t){f(am,i,function(){var e=t.facade;hy?mm.emit("rejectionHandled",e):Pm("rejectionhandled",e,t.value)})},Im=function(t,e,r){return function(n){t(e,n,r)}},Tm=function(t,e,r){t.done||(t.done=!0,r&&(t=r),t.value=e,t.state=2,Rm(t,!0))},Mm=function(t,e,r){if(!t.done){t.done=!0,r&&(t=r);try{if(t.facade===e)throw new gm("Promise can't be resolved itself");var n=Om(e);n?Yy(function(){var r={done:!1};try{f(n,e,Im(Mm,r,t),Im(Tm,r,t))}catch(e){Tm(r,e,t)}}):(t.value=e,t.state=1,Rm(t,!1))}catch(e){Tm({done:!1},e,t)}}};if(sm&&(vm=function(t){ko(this,dm),J(t),f(Ky,this);var e=lm(this);try{t(Im(Mm,e),Im(Tm,e))}catch(t){Tm(e,t)}},(Ky=function(t){hm(this,{type:um,done:!1,notified:!1,parent:!1,reactions:new Ny,rejection:!1,state:0,value:null})}).prototype=ie(dm=vm.prototype,"then",function(t,e){var r=lm(this),n=bm(Cc(this,vm));return r.parent=!0,n.ok=!T(t)||t,n.fail=T(e)&&e,n.domain=hy?mm.domain:void 0,0===r.state?r.reactions.add(n):Yy(function(){xm(n,r)}),n.promise}),Gy=function(){var t=new Ky,e=lm(t);this.promise=t,this.resolve=Im(Mm,e),this.reject=Im(Tm,e)},im.f=bm=function(t){return t===vm||void 0===t?new Gy(t):wm(t)},T(Jy)&&pm!==Object.prototype)){Vy=pm.then,fm||ie(pm,"then",function(t,e){var r=this;return new vm(function(t,e){f(Vy,r,t,e)}).then(t,e)},{unsafe:!0});try{delete pm.constructor}catch(t){}dn&&dn(pm,dm)}Ce({global:!0,constructor:!0,wrap:!0,forced:sm},{Promise:vm}),an(vm,um,!1),Uo(um);var Lm=rm.CONSTRUCTOR||!Gn(function(t){Jy.all(t).then(void 0,function(){})});Ce({target:"Promise",stat:!0,forced:Lm},{all:function(t){var e=this,r=im.f(e),n=r.resolve,o=r.reject,i=Xy(function(){var r=J(e.resolve),i=[],a=0,u=1;Ao(t,function(t){var s=a++,c=!1;u++,f(r,e,t).then(function(t){c||(c=!0,i[s]=t,--u||n(i))},o)}),--u||n(i)});return i.error&&o(i.value),r.promise}});var Um=Jy&&Jy.prototype;if(Ce({target:"Promise",proto:!0,forced:rm.CONSTRUCTOR,real:!0},{catch:function(t){return this.then(void 0,t)}}),T(Jy)){var Nm=L("Promise").prototype.catch;Um.catch!==Nm&&ie(Um,"catch",Nm,{unsafe:!0})}Ce({target:"Promise",stat:!0,forced:Lm},{race:function(t){var e=this,r=im.f(e),n=r.reject,o=Xy(function(){var o=J(e.resolve);Ao(t,function(t){f(o,e,t).then(r.resolve,n)})});return o.error&&n(o.value),r.promise}}),Ce({target:"Promise",stat:!0,forced:rm.CONSTRUCTOR},{reject:function(t){var e=im.f(this);return(0,e.reject)(t),e.promise}});var Cm=function(t,e){if(kt(t),M(e)&&e.constructor===t)return e;var r=im.f(t);return(0,r.resolve)(e),r.promise};Ce({target:"Promise",stat:!0,forced:rm.CONSTRUCTOR},{resolve:function(t){return Cm(this,t)}}),Ce({target:"Promise",stat:!0,forced:Lm},{allSettled:function(t){var e=this,r=im.f(e),n=r.resolve,o=r.reject,i=Xy(function(){var r=J(e.resolve),o=[],i=0,a=1;Ao(t,function(t){var u=i++,s=!1;a++,f(r,e,t).then(function(t){s||(s=!0,o[u]={status:"fulfilled",value:t},--a||n(o))},function(t){s||(s=!0,o[u]={status:"rejected",reason:t},--a||n(o))})}),--a||n(o)});return i.error&&o(i.value),r.promise}});var _m="No one promise resolved";Ce({target:"Promise",stat:!0,forced:Lm},{any:function(t){var e=this,r=L("AggregateError"),n=im.f(e),o=n.resolve,i=n.reject,a=Xy(function(){var n=J(e.resolve),a=[],u=0,s=1,c=!1;Ao(t,function(t){var l=u++,h=!1;s++,f(n,e,t).then(function(t){h||c||(c=!0,o(t))},function(t){h||c||(h=!0,a[l]=t,--s||i(new r(a,_m)))})}),--s||i(new r(a,_m))});return a.error&&i(a.value),n.promise}}),Ce({target:"Promise",stat:!0},{withResolvers:function(){var t=im.f(this);return{promise:t.promise,resolve:t.resolve,reject:t.reject}}});var Fm=Jy&&Jy.prototype,Bm=!!Jy&&a(function(){Fm.finally.call({then:function(){}},function(){})});if(Ce({target:"Promise",proto:!0,real:!0,forced:Bm},{finally:function(t){var e=Cc(this,L("Promise")),r=T(t);return this.then(r?function(r){return Cm(e,t()).then(function(){return r})}:t,r?function(r){return Cm(e,t()).then(function(){throw r})}:t)}}),T(Jy)){var Dm=L("Promise").prototype.finally;Fm.finally!==Dm&&ie(Fm,"finally",Dm,{unsafe:!0})}var zm=i.Promise,Wm=!1,qm=!zm||!zm.try||Xy(function(){zm.try(function(t){Wm=8===t},8)}).error||!Wm;Ce({target:"Promise",stat:!0,forced:qm},{try:function(t){var e=arguments.length>1?vo(arguments,1):[],r=im.f(this),n=Xy(function(){return Ra(J(t),void 0,e)});return(n.error?r.reject:r.resolve)(n.value),r.promise}}),Ze("Promise","finally");var Hm="URLSearchParams"in self,$m="Symbol"in self&&"iterator"in Symbol,Km="FileReader"in self&&"Blob"in self&&function(){try{return new Blob,!0}catch(t){return!1}}(),Gm="FormData"in self,Vm="ArrayBuffer"in self;if(Vm)var Ym=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],Xm=ArrayBuffer.isView||function(t){return t&&Ym.indexOf(Object.prototype.toString.call(t))>-1};function Jm(t){if("string"!=typeof t&&(t=String(t)),/[^a-z0-9\-#$%&'*+.^_`|~]/i.test(t))throw new TypeError("Invalid character in header field name");return t.toLowerCase()}function Qm(t){return"string"!=typeof t&&(t=String(t)),t}function Zm(t){var e={next:function(){var e=t.shift();return{done:void 0===e,value:e}}};return $m&&(e[Symbol.iterator]=function(){return e}),e}function tb(t){this.map={},t instanceof tb?t.forEach(function(t,e){this.append(e,t)},this):Array.isArray(t)?t.forEach(function(t){this.append(t[0],t[1])},this):t&&Object.getOwnPropertyNames(t).forEach(function(e){this.append(e,t[e])},this)}function eb(t){if(t.bodyUsed)return Promise.reject(new TypeError("Already read"));t.bodyUsed=!0}function rb(t){return new Promise(function(e,r){t.onload=function(){e(t.result)},t.onerror=function(){r(t.error)}})}function nb(t){var e=new FileReader,r=rb(e);return e.readAsArrayBuffer(t),r}function ob(t){if(t.slice)return t.slice(0);var e=new Uint8Array(t.byteLength);return e.set(new Uint8Array(t)),e.buffer}function ib(){return this.bodyUsed=!1,this._initBody=function(t){var e;this._bodyInit=t,t?"string"==typeof t?this._bodyText=t:Km&&Blob.prototype.isPrototypeOf(t)?this._bodyBlob=t:Gm&&FormData.prototype.isPrototypeOf(t)?this._bodyFormData=t:Hm&&URLSearchParams.prototype.isPrototypeOf(t)?this._bodyText=t.toString():Vm&&Km&&(e=t)&&DataView.prototype.isPrototypeOf(e)?(this._bodyArrayBuffer=ob(t.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer])):Vm&&(ArrayBuffer.prototype.isPrototypeOf(t)||Xm(t))?this._bodyArrayBuffer=ob(t):this._bodyText=t=Object.prototype.toString.call(t):this._bodyText="",this.headers.get("content-type")||("string"==typeof t?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):Hm&&URLSearchParams.prototype.isPrototypeOf(t)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},Km&&(this.blob=function(){var t=eb(this);if(t)return t;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){return this._bodyArrayBuffer?eb(this)||Promise.resolve(this._bodyArrayBuffer):this.blob().then(nb)}),this.text=function(){var t=eb(this);if(t)return t;if(this._bodyBlob)return function(t){var e=new FileReader,r=rb(e);return e.readAsText(t),r}(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(function(t){for(var e=new Uint8Array(t),r=new Array(e.length),n=0;n-1?e:t}(e.method||this.method||"GET"),this.mode=e.mode||this.mode||null,this.signal=e.signal||this.signal,this.referrer=null,("GET"===this.method||"HEAD"===this.method)&&r)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(r)}function sb(t){var e=new FormData;return t.trim().split("&").forEach(function(t){if(t){var r=t.split("="),n=r.shift().replace(/\+/g," "),o=r.join("=").replace(/\+/g," ");e.append(decodeURIComponent(n),decodeURIComponent(o))}}),e}function cb(t,e){e||(e={}),this.type="default",this.status=void 0===e.status?200:e.status,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in e?e.statusText:"OK",this.headers=new tb(e.headers),this.url=e.url||"",this._initBody(t)}ub.prototype.clone=function(){return new ub(this,{body:this._bodyInit})},ib.call(ub.prototype),ib.call(cb.prototype),cb.prototype.clone=function(){return new cb(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new tb(this.headers),url:this.url})},cb.error=function(){var t=new cb(null,{status:0,statusText:""});return t.type="error",t};var fb=[301,302,303,307,308];cb.redirect=function(t,e){if(-1===fb.indexOf(e))throw new RangeError("Invalid status code");return new cb(null,{status:e,headers:{location:t}})};var lb=self.DOMException;try{new lb}catch(t){(lb=function(t,e){this.message=t,this.name=e;var r=Error(t);this.stack=r.stack}).prototype=Object.create(Error.prototype),lb.prototype.constructor=lb}function hb(t,e){return new Promise(function(r,n){var o=new ub(t,e);if(o.signal&&o.signal.aborted)return n(new lb("Aborted","AbortError"));var i=new XMLHttpRequest;function a(){i.abort()}i.onload=function(){var t,e,n={status:i.status,statusText:i.statusText,headers:(t=i.getAllResponseHeaders()||"",e=new tb,t.replace(/\r?\n[\t ]+/g," ").split(/\r?\n/).forEach(function(t){var r=t.split(":"),n=r.shift().trim();if(n){var o=r.join(":").trim();e.append(n,o)}}),e)};n.url="responseURL"in i?i.responseURL:n.headers.get("X-Request-URL"),r(new cb("response"in i?i.response:i.responseText,n))},i.onerror=function(){n(new TypeError("Network request failed"))},i.ontimeout=function(){n(new TypeError("Network request failed"))},i.onabort=function(){n(new lb("Aborted","AbortError"))},i.open(o.method,o.url,!0),"include"===o.credentials?i.withCredentials=!0:"omit"===o.credentials&&(i.withCredentials=!1),"responseType"in i&&Km&&(i.responseType="blob"),o.headers.forEach(function(t,e){i.setRequestHeader(e,t)}),o.signal&&(o.signal.addEventListener("abort",a),i.onreadystatechange=function(){4===i.readyState&&o.signal.removeEventListener("abort",a)}),i.send(void 0===o._bodyInit?null:o._bodyInit)})}hb.polyfill=!0,self.fetch||(self.fetch=hb,self.Headers=tb,self.Request=ub,self.Response=cb);var pb=Object.getOwnPropertySymbols,vb=Object.prototype.hasOwnProperty,db=Object.prototype.propertyIsEnumerable,gb=function(){try{if(!Object.assign)return!1;var t=new String("abc");if(t[5]="de","5"===Object.getOwnPropertyNames(t)[0])return!1;for(var e={},r=0;r<10;r++)e["_"+String.fromCharCode(r)]=r;if("0123456789"!==Object.getOwnPropertyNames(e).map(function(t){return e[t]}).join(""))return!1;var n={};return"abcdefghijklmnopqrst".split("").forEach(function(t){n[t]=t}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},n)).join("")}catch(t){return!1}}()?Object.assign:function(t,e){for(var r,n,o=function(t){if(null==t)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(t)}(t),i=1;i{e.i(47167),Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"appBootstrap",{enumerable:!0,get:function(){return a}});let r=e.r(74575),l=e.r(22737);function a(e){var t,n;let a=(0,r.getAssetPrefix)();t=self.__next_s,n=()=>{e(a)},t&&t.length?t.reduce((e,[t,n])=>e.then(()=>new Promise((e,r)=>{let a=document.createElement("script");n&&(0,l.setAttributesFromProps)(a,n),t?(a.src=t,a.onload=()=>e(),a.onerror=r):n&&(a.innerHTML=n.children,setTimeout(e)),document.head.appendChild(a)})),Promise.resolve()).catch(e=>{console.error(e)}).then(()=>{n()}):n()}window.next={version:"16.4.0",appDir:!0},("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},23911,(e,t,n)=>{e.i(47167),Object.defineProperty(n,"__esModule",{value:!0}),e.r(66849),("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},98569,(e,t,n)=>{let r,l,a,o;e.i(47167),Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"hydrate",{enumerable:!0,get:function(){return U}});let i=e.r(55682),u=e.r(43476);e.r(23911);let s=i._(e.r(88014)),c=i._(e.r(71645)),f=e.r(35326),d=e.r(42732),p=e.r(97238),m=e.r(51323),h=e.r(32120),g=e.r(92245),v=e.r(99781),y=i._(e.r(75530)),b=e.r(65716);e.r(8372);let w=e.r(50590),S=e.r(43369),k=e.r(32992),E=e.r(76138),x=f.createFromReadableStream,_=f.createFromFetch,N=document,P=self.__next_instant_test?self.__next_instant_test:void 0,C=new TextEncoder,T=!1,z=!1,O=null;function L(e){if(0===e[0])a=[];else if(1===e[0]){if(!a)throw Error("Unexpected server data: missing bootstrap script.");o?o.enqueue(C.encode(e[1])):a.push(e[1])}else if(2===e[0])O=e[1];else if(3===e[0]){if(!a)throw Error("Unexpected server data: missing bootstrap script.");let n=atob(e[1]),r=new Uint8Array(n.length);for(var t=0;t{e.enqueue("string"==typeof t?C.encode(t):t)}),T&&!z)&&(null===e.desiredSize||e.desiredSize<0?P||e.error(Error("The connection to the page was unexpectedly closed, possibly due to the stop button being clicked, loss of Wi-Fi, or an unstable internet connection.")):e.close(),z=!0,a=void 0),o=e}});if(P)l=Promise.resolve(_(P,{callServer:h.callServer,findSourceMapURL:g.findSourceMapURL,debugChannel:r,unstable_allowPartialStream:!0})).then(async e=>(0,w.createInitialRSCPayloadFromFallbackPrerender)(await P,e));else if(window.__NEXT_CLIENT_RESUME){let e=window.__NEXT_CLIENT_RESUME;l=Promise.resolve(_(e,{callServer:h.callServer,findSourceMapURL:g.findSourceMapURL,debugChannel:r})).then(async t=>(0,w.createInitialRSCPayloadFromFallbackPrerender)(await e,t))}else l=x(I,{callServer:h.callServer,findSourceMapURL:g.findSourceMapURL,debugChannel:r,startTime:0});function F({initialRSCPayload:e,actionQueue:t,webSocket:n,staticIndicatorState:r}){return(0,u.jsx)(y.default,{actionQueue:t,globalErrorState:e.G,webSocket:n,staticIndicatorState:r})}let D=c.default.StrictMode;function A({children:e}){return e}let j={onDefaultTransitionIndicator:function(){return()=>{}},onRecoverableError:p.onRecoverableError,onCaughtError:m.onCaughtError,onUncaughtError:m.onUncaughtError};async function U(e,t){let n,r,a=await l;a.b?(0,k.setNavigationBuildId)(a.b):(0,k.setNavigationBuildId)((0,S.getDeploymentId)()),(0,E.initializeRouterTransitionModules)(e);let o=Date.now(),i=(0,v.createMutableActionQueue)((0,b.createInitialRouterState)({navigatedAt:o,initialRSCPayload:a,initialFlightStreamForCache:null,location:window.location})),f=(0,u.jsx)(D,{children:(0,u.jsx)(d.HeadManagerContext.Provider,{value:{appDir:!0},children:(0,u.jsx)(A,{children:(0,u.jsx)(F,{initialRSCPayload:a,actionQueue:i,webSocket:r,staticIndicatorState:n})})})});"__next_error__"===document.documentElement.id?s.default.createRoot(N,j).render(f):c.default.startTransition(()=>{s.default.hydrateRoot(N,f,{...j,formState:O})})}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},94553,(e,t,n)=>{e.i(47167),Object.defineProperty(n,"__esModule",{value:!0}),e.r(23755);let r=e.r(96517);e.r(97238),window.next.turbopack=!0,self.__webpack_hash__="";let l=e.r(5526);(0,r.appBootstrap)(t=>{let{hydrate:n}=e.r(98569);n(l,t)}),("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},74575,(e,t,n)=>{Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"getAssetPrefix",{enumerable:!0,get:function(){return l}});let r=e.r(12718);function l(){let e=document.currentScript;if(!(e instanceof HTMLScriptElement))throw new r.InvariantError(`Expected document.currentScript to be a ",a=a.removeChild(a.firstChild);break;case"select":a="string"==typeof r.is?o.createElement("select",{is:r.is}):o.createElement("select"),r.multiple?a.multiple=!0:r.size&&(a.size=r.size);break;default:a="string"==typeof r.is?o.createElement(l,{is:r.is}):o.createElement(l)}}a[eY]=t,a[eX]=r;e:for(o=t.child;null!==o;){if(5===o.tag||6===o.tag)a.appendChild(o.stateNode);else if(4!==o.tag&&27!==o.tag&&null!==o.child){o.child.return=o,o=o.child;continue}if(o===t)break;for(;null===o.sibling;){if(null===o.return||o.return===t)break e;o=o.return}o.sibling.return=o.return,o=o.sibling}switch(t.stateNode=a,cp(a,l,r),l){case"button":case"input":case"select":case"textarea":r=!!r.autoFocus;break;case"img":r=!0;break;default:r=!1}r&&ig(t)}}return iS(t),t.subtreeFlags&=-0x2000001,iv(t,t.type,null===e?null:e.memoizedProps,t.pendingProps,n),null;case 6:if(e&&null!=t.stateNode)e.memoizedProps!==r&&ig(t);else{if("string"!=typeof r&&null===t.stateNode)throw Error(u(166));if(e=el.current,r4(t)){if(e=t.stateNode,n=t.memoizedProps,r=null,null!==(l=rY))switch(l.tag){case 27:case 5:r=l.memoizedProps}e[eY]=t,(e=!!(e.nodeValue===n||null!==r&&!0===r.suppressHydrationWarning||cc(e.nodeValue,n)))||r1(t,!0)}else(e=cy(e).createTextNode(r))[eY]=t,t.stateNode=e}return iS(t),null;case 31:if(n=t.memoizedState,null===e||null!==e.memoizedState){if(r=r4(t),null!==n){if(null===e){if(!r)throw Error(u(318));if(!(e=null!==(e=t.memoizedState)?e.dehydrated:null))throw Error(u(557));e[eY]=t}else r6(),0==(128&t.flags)&&(t.memoizedState=null),t.flags|=4;iS(t),e=!1}else n=r5(),null!==e&&null!==e.memoizedState&&(e.memoizedState.hydrationErrors=n),e=!0;if(!e){if(256&t.flags)return ao(t),t;return ao(t),null}if(0!=(128&t.flags))throw Error(u(558))}return iS(t),null;case 13:if(r=t.memoizedState,null===e||null!==e.memoizedState&&null!==e.memoizedState.dehydrated){if(l=r4(t),null!==r&&null!==r.dehydrated){if(null===e){if(!l)throw Error(u(318));if(!(l=null!==(l=t.memoizedState)?l.dehydrated:null))throw Error(u(317));l[eY]=t}else r6(),0==(128&t.flags)&&(t.memoizedState=null),t.flags|=4;iS(t),l=!1}else l=r5(),null!==e&&null!==e.memoizedState&&(e.memoizedState.hydrationErrors=l),l=!0;if(!l){if(256&t.flags)return ao(t),t;return ao(t),null}}if(ao(t),0!=(128&t.flags))return t.lanes=n,t;return n=null!==r,e=null!==e&&null!==e.memoizedState,n&&(r=t.child,l=null,null!==r.alternate&&null!==r.alternate.memoizedState&&null!==r.alternate.memoizedState.cachePool&&(l=r.alternate.memoizedState.cachePool.pool),a=null,null!==r.memoizedState&&null!==r.memoizedState.cachePool&&(a=r.memoizedState.cachePool.pool),a!==l&&(r.flags|=2048)),n!==e&&n&&(t.child.flags|=8192),ib(t,t.updateQueue),iS(t),null;case 4:return ei(),null===e&&ce(t.stateNode.containerInfo),t.flags|=0x4000000,iS(t),null;case 10:return ln(t.type),iS(t),null;case 19:if(as(t),null===(r=t.memoizedState))return iS(t),null;if(l=0!=(128&t.flags),null===(a=r.rendering))if(l)iw(r,!1);else{if(0!==uV||null!==e&&0!=(128&e.flags))for(e=t.child;null!==e;){if(null!==(a=ac(e))){for(t.flags|=128,iw(r,!1),t.updateQueue=e=a.updateQueue,ib(t,e),t.subtreeFlags=0,e=n,n=t.child;null!==n;)rP(n,e),n=n.sibling;return au(t,1&ai.current|2),rG&&r$(t,r.treeForkCount),t.child}e=e.sibling}null!==r.tail&&eb()>uZ&&(t.flags|=128,l=!0,iw(r,!1),t.lanes=4194304)}else{if(!l)if(null!==(e=ac(a))){if(t.flags|=128,l=!0,t.updateQueue=e=e.updateQueue,ib(t,e),iw(r,!0),null===r.tail&&"collapsed"!==r.tailMode&&"visible"!==r.tailMode&&!a.alternate&&!rG)return iS(t),null}else 2*eb()-r.renderingStartTime>uZ&&0x20000000!==n&&(t.flags|=128,l=!0,iw(r,!1),t.lanes=4194304);r.isBackwards?(a.sibling=t.child,t.child=a):(null!==(e=r.last)?e.sibling=a:t.child=a,r.last=a)}if(null!==r.tail){e=r.tail;e:{for(n=e;null!==n;){if(null!==n.alternate){n=!1;break e}n=n.sibling}n=!0}return r.rendering=e,r.tail=e.sibling,r.renderingStartTime=eb(),e.sibling=null,a=ai.current,a=l?1&a|2:1&a,"visible"===r.tailMode||"collapsed"===r.tailMode||!n||rG?au(t,a):(n=a,et(ae,t),et(ai,n),null===at&&(at=t)),rG&&r$(t,r.treeForkCount),e}return iS(t),null;case 22:case 23:return ao(t),l9(),r=null!==t.memoizedState,null!==e?null!==e.memoizedState!==r&&(t.flags|=8192):r&&(t.flags|=8192),r?0!=(0x20000000&n)&&0==(128&t.flags)&&(iS(t),6&t.subtreeFlags&&(t.flags|=8192)):iS(t),null!==(n=t.updateQueue)&&ib(t,n.retryQueue),n=null,null!==e&&null!==e.memoizedState&&null!==e.memoizedState.cachePool&&(n=e.memoizedState.cachePool.pool),r=null,null!==t.memoizedState&&null!==t.memoizedState.cachePool&&(r=t.memoizedState.cachePool.pool),r!==n&&(t.flags|=2048),null!==e&&ee(l_),null;case 24:return n=null,null!==e&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),ln(lm),iS(t),null;case 25:return null;case 30:return t.flags|=0x2000000,iS(t),null}throw Error(u(156,t.tag))}(t.alternate,t,uB);if(null!==n){uR=n;return}if(null!==(t=t.sibling)){uR=t;return}uR=t=e}while(null!==t)0===uV&&(uV=5)}function sx(e,t){do{var n=function(e,t){switch(rq(t),t.tag){case 1:return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 3:return ln(lm),ei(),0!=(65536&(e=t.flags))&&0==(128&e)?(t.flags=-65537&e|128,t):null;case 26:case 27:case 5:return es(t),null;case 31:if(null!==t.memoizedState){if(ao(t),null===t.alternate)throw Error(u(340));r6()}return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 13:if(ao(t),null!==(e=t.memoizedState)&&null!==e.dehydrated){if(null===t.alternate)throw Error(u(340));r6()}return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 19:return as(t),65536&(e=t.flags)?(t.flags=-65537&e|128,null!==(e=t.memoizedState)&&(e.rendering=null,e.tail=null),t.flags|=4,t):null;case 4:return ei(),null;case 10:return ln(t.type),null;case 22:case 23:return ao(t),l9(),null!==e&&ee(l_),65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 24:return ln(lm),null;default:return null}}(e.alternate,e);if(null!==n){n.flags&=32767,uR=n;return}if(null!==(n=e.return)&&(n.flags|=32768,n.subtreeFlags=0,n.deletions=null),!t&&null!==(e=e.sibling)){uR=e;return}uR=e=n}while(null!==e)uV=6,uR=null}function s_(e,t,n,r,l,a,o,i,s,c,f,d){e.cancelPendingCommit=null;do sL();while(0!==u2)if(0!=(6&uL))throw Error(u(327));if(null!==t){if(t===e.current)throw Error(u(177));e===uM&&(uR=uM=null,uI=0),u4=t,u3=e,u6=n,u8=l,u7=r,function(e,t,n,r,l,a,o){var i,u=t.lanes|t.childLanes;if(u5=u,!function(e,t,n,r,l,a){var o=e.pendingLanes;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=n,e.entangledLanes&=n,e.errorRecoveryDisabledLanes&=n,e.shellSuspendCounter=0;var i=e.entanglements,u=e.expirationTimes,s=e.hiddenUpdates;for(n=o&~n;0fT){i.length=o;break}d=new Promise(cA.bind(d)),i.push(d)}}}return 0g&&(o=g,g=h,h=o);var v=nq(i,h),y=nq(i,g);if(v&&y&&(1!==p.rangeCount||p.anchorNode!==v.node||p.anchorOffset!==v.offset||p.focusNode!==y.node||p.focusOffset!==y.offset)){var b=f.createRange();b.setStart(v.node,v.offset),p.removeAllRanges(),h>g?(p.addRange(b),p.extend(y.node,y.offset)):(b.setEnd(y.node,y.offset),p.addRange(b))}}}}for(f=[],p=i;p=p.parentNode;)1===p.nodeType&&f.push({element:p,left:p.scrollLeft,top:p.scrollTop});for("function"==typeof i.focus&&i.focus(),i=0;in?32:n,K.T=null,n=u8,u8=null;var a=u3,o=u6;if(u2=0,u4=u3=null,u6=0,0!=(6&uL))throw Error(u(331));var i=uL;if(uL|=4,uC(a.current),uS(a,a.current,o,n),uL=i,sK(0,!1),eP&&"function"==typeof eP.onPostCommitFiberRoot)try{eP.onPostCommitFiberRoot(eN,a)}catch(e){}return!0}finally{Y.p=l,K.T=r,sO(e,t)}}function sR(e,t,n){t=rR(n,t),t=oH(e.stateNode,t,2),null!==(e=lG(e,t,2))&&(eU(e,2),sq(e))}function sI(e,t,n){if(3===e.tag)sR(e,e,n);else for(;null!==t;){if(3===t.tag){sR(t,e,n);break}if(1===t.tag){var r=t.stateNode;if("function"==typeof t.type.getDerivedStateFromError||"function"==typeof r.componentDidCatch&&(null===u1||!u1.has(r))){e=rR(n,e),null!==(r=lG(t,n=o$(2),2))&&(oQ(n,r,t,e),eU(r,2),sq(r));break}}t=t.return}}function sF(e,t,n){var r=e.pingCache;if(null===r){r=e.pingCache=new uO;var l=new Set;r.set(t,l)}else void 0===(l=r.get(t))&&(l=new Set,r.set(t,l));l.has(n)||(uU=!0,l.add(n),e=sD.bind(null,e,t,n),t.then(e,e))}function sD(e,t,n){var r=e.pingCache;null!==r&&r.delete(t),e.pingedLanes|=e.suspendedLanes&n,e.warmLanes&=~n,uM===e&&(uI&n)===n&&((4===uV||3===uV&&(0x3c00000&uI)===uI&&300>eb()-uG)&&0==(2&uL)?sp(e,0):uQ|=n,uq===uI&&(uq=0)),sq(e)}function sA(e,t){0===t&&(t=eA()),null!==(e=rb(e,t))&&(eU(e,t),sq(e))}function sj(e){var t=e.memoizedState,n=0;null!==t&&(n=t.retryLane),sA(e,n)}function sU(e,t){var n=0;switch(e.tag){case 31:case 13:var r=e.stateNode,l=e.memoizedState;null!==l&&(n=l.retryLane);break;case 19:r=e.stateNode;break;case 22:r=e.stateNode._retryCache;break;default:throw Error(u(314))}null!==r&&r.delete(t),sA(e,n)}var sB=null,sV=null,sH=!1,s$=!1,sQ=!1,sW=0;function sq(e){e!==sV&&null===e.next&&(null===sV?sB=sV=e:sV=sV.next=e),s$=!0,sH||(sH=!0,cC(function(){0!=(6&uL)?eh(eS,sY):sX()}))}function sK(e,t){if(!sQ&&s$){sQ=!0;do for(var n=!1,r=sB;null!==r;){if(!t)if(0!==e){var l=r.pendingLanes;if(0===l)var a=0;else{var o=r.suspendedLanes,i=r.pingedLanes;a=0xc000095&(a=(1<<31-eC(42|e)+1)-1&(l&~(o&~i)))?0xc000095&a|1:a?2|a:0}0!==a&&(n=!0,sZ(r,a))}else a=uI,0==(3&(a=eI(r,r===uM?a:0,null!==r.cancelPendingCommit||-1!==r.timeoutHandle)))||eF(r,a)||(n=!0,sZ(r,a));r=r.next}while(n)sQ=!1}}function sY(){sX()}function sX(){s$=sH=!1;var e,t=0;0===sW||((e=window.event)&&"popstate"===e.type?e===cE||(cE=e,0):(cE=null,1))||(t=sW);for(var n=eb(),r=null,l=sB;null!==l;){var a=l.next,o=sG(l,n);0===o?(l.next=null,null===r?sB=a:r.next=a,null===a&&(sV=r)):(r=l,(0!==t||0!=(3&o))&&(s$=!0)),l=a}0!==u2&&5!==u2||sK(t,!1),0!==sW&&(sW=0)}function sG(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,l=e.expirationTimes,a=-0x3c00001&e.pendingLanes;0 title"):null)}function f_(e,t){return"img"===e&&null!=t.src&&""!==t.src&&null==t.onLoad&&"lazy"!==t.loading}function fN(e){return"stylesheet"!==e.type||0!=(3&e.state.loading)}function fP(e){return(e.width||100)*(e.height||100)*("number"==typeof devicePixelRatio?devicePixelRatio:1)*.25}function fC(e,t){"function"==typeof t.decode&&(e.imgCount++,t.complete||(e.imgBytes+=fP(t),e.suspenseyImages.push(t)),e=fL.bind(e),t.decode().then(e,e))}var fT=0;function fz(e){if(0===e.count&&(0===e.imgCount||!e.waitingForImages)){if(e.stylesheets)fR(e,e.stylesheets);else if(e.unsuspend){var t=e.unsuspend;e.unsuspend=null,t()}}}function fO(){this.count--,fz(this)}function fL(){this.imgCount--,fz(this)}var fM=null;function fR(e,t){e.stylesheets=null,null!==e.unsuspend&&(e.count++,fM=new Map,t.forEach(fI,e),fM=null,fO.call(e))}function fI(e,t){if(!(4&t.state.loading)){var n=fM.get(e);if(n)var r=n.get(null);else{n=new Map,fM.set(e,n);for(var l=e.querySelectorAll("link[data-precedence],style[data-precedence]"),a=0;atypeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var df=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!df.isDisabled&&df.supportsFiber)try{eN=df.inject({bundleType:0,version:"19.3.0-canary-278794d7-20261002",rendererPackageName:"react-dom",currentDispatcherRef:K,reconcilerVersion:"19.3.0-canary-278794d7-20261002"}),eP=df}catch(e){}}n.createRoot=function(e,t){if(!s(e))throw Error(u(299));var n=!1,r="",l=oA,a=oj,o=oU;return null!=t&&(!0===t.unstable_strictMode&&(n=!0),void 0!==t.identifierPrefix&&(r=t.identifierPrefix),void 0!==t.onUncaughtError&&(l=t.onUncaughtError),void 0!==t.onCaughtError&&(a=t.onCaughtError),void 0!==t.onRecoverableError&&(o=t.onRecoverableError)),t=fA(e,1,!1,null,null,n,r,null,l,a,o,di),e[eG]=t.current,ce(e),new du(t)},n.hydrateRoot=function(e,t,n){if(!s(e))throw Error(u(299));var r,l=!1,a="",o=oA,i=oj,c=oU,f=null;return null!=n&&(!0===n.unstable_strictMode&&(l=!0),void 0!==n.identifierPrefix&&(a=n.identifierPrefix),void 0!==n.onUncaughtError&&(o=n.onUncaughtError),void 0!==n.onCaughtError&&(i=n.onCaughtError),void 0!==n.onRecoverableError&&(c=n.onRecoverableError),void 0!==n.formState&&(f=n.formState)),(t=fA(e,1,!0,t,null!=n?n:null,l,a,f,o,i,c,di)).context=(r=null,rk),n=t.current,(a=lX(l=e$(l=sl()))).callback=null,lG(n,a,l),n=l,t.current.lanes=n,eU(t,n),sq(t),e[eG]=t.current,ce(e),new ds(t)},n.version="19.3.0-canary-278794d7-20261002"},88014,(e,t,n)=>{e.i(47167),!function e(){if("u">typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(e){console.error(e)}}(),t.exports=e.r(46480)},62262,(e,t,n)=>{function r(e,t){var n=e.length;for(e.push(t);0>>1,l=e[r];if(0>>1;ro(u,n))so(c,u)?(e[r]=c,e[s]=n,r=s):(e[r]=u,e[i]=n,r=i);else if(so(c,n))e[r]=c,e[s]=n,r=s;else break}}return t}function o(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}if(n.unstable_now=void 0,"object"==typeof performance&&"function"==typeof performance.now){var i,u=performance;n.unstable_now=function(){return u.now()}}else{var s=Date,c=s.now();n.unstable_now=function(){return s.now()-c}}var f=[],d=[],p=1,m=null,h=3,g=!1,v=!1,y=!1,b=!1,w="function"==typeof setTimeout?setTimeout:null,S="function"==typeof clearTimeout?clearTimeout:null,k="u">typeof setImmediate?setImmediate:null;function E(e){for(var t=l(d);null!==t;){if(null===t.callback)a(d);else if(t.startTime<=e)a(d),t.sortIndex=t.expirationTime,r(f,t);else break;t=l(d)}}function x(e){if(y=!1,E(e),!v)if(null!==l(f))v=!0,_||(_=!0,i());else{var t=l(d);null!==t&&M(x,t.startTime-e)}}var _=!1,N=-1,P=5,C=-1;function T(){return!!b||!(n.unstable_now()-Ce&&T());){var o=m.callback;if("function"==typeof o){m.callback=null,h=m.priorityLevel;var u=o(m.expirationTime<=e);if(e=n.unstable_now(),"function"==typeof u){m.callback=u,E(e),t=!0;break t}m===l(f)&&a(f),E(e)}else a(f);m=l(f)}if(null!==m)t=!0;else{var s=l(d);null!==s&&M(x,s.startTime-e),t=!1}}break e}finally{m=null,h=r,g=!1}}}finally{t?i():_=!1}}}if("function"==typeof k)i=function(){k(z)};else if("u">typeof MessageChannel){var O=new MessageChannel,L=O.port2;O.port1.onmessage=z,i=function(){L.postMessage(null)}}else i=function(){w(z,0)};function M(e,t){N=w(function(){e(n.unstable_now())},t)}n.unstable_IdlePriority=5,n.unstable_ImmediatePriority=1,n.unstable_LowPriority=4,n.unstable_NormalPriority=3,n.unstable_Profiling=null,n.unstable_UserBlockingPriority=2,n.unstable_cancelCallback=function(e){e.callback=null},n.unstable_forceFrameRate=function(e){0>e||125o?(e.sortIndex=a,r(d,e),null===l(f)&&e===l(d)&&(y?(S(N),N=-1):y=!0,M(x,a-o))):(e.sortIndex=u,r(f,e),v||g||(v=!0,_||(_=!0,i()))),e},n.unstable_shouldYield=T,n.unstable_wrapCallback=function(e){var t=h;return function(){var n=h;h=t;try{return e.apply(this,arguments)}finally{h=n}}}},53389,(e,t,n)=>{e.i(47167),t.exports=e.r(62262)},2023,(e,t,n)=>{e.i(47167),Object.defineProperty(n,"__esModule",{value:!0});var r={default:function(){return o},getProperError:function(){return i}};for(var l in r)Object.defineProperty(n,l,{enumerable:!0,get:r[l]});let a=e.r(16565);function o(e){return"object"==typeof e&&null!==e&&"name"in e&&"message"in e}function i(e){let t;return o(e)?e:Error((0,a.isPlainObject)(e)?(t=new WeakSet,JSON.stringify(e,(e,n)=>{if("object"==typeof n&&null!==n){if(t.has(n))return"[Circular]";t.add(n)}return n})):e+"")}},5526,(e,t,n)=>{e.i(47167);{let e={};t.exports=Array.isArray(e)?e:[e]}},16565,(e,t,n)=>{Object.defineProperty(n,"__esModule",{value:!0});var r={getObjectClassLabel:function(){return a},isPlainObject:function(){return o}};for(var l in r)Object.defineProperty(n,l,{enumerable:!0,get:r[l]});function a(e){return Object.prototype.toString.call(e)}function o(e){if("[object Object]"!==a(e))return!1;let t=Object.getPrototypeOf(e);return null===t||t.hasOwnProperty("isPrototypeOf")}}],66849,(e,t,n)=>{"trimStart"in String.prototype||(String.prototype.trimStart=String.prototype.trimLeft),"trimEnd"in String.prototype||(String.prototype.trimEnd=String.prototype.trimRight),"description"in Symbol.prototype||Object.defineProperty(Symbol.prototype,"description",{configurable:!0,get:function(){var e=/\((.*)\)/.exec(this.toString());return e?e[1]:void 0}}),Array.prototype.flat||(Array.prototype.flat=function(e,t){return t=this.concat.apply([],this),e>1&&t.some(Array.isArray)?t.flat(e-1):t},Array.prototype.flatMap=function(e,t){return this.map(e,t).flat()}),Promise.prototype.finally||(Promise.prototype.finally=function(e){if("function"!=typeof e)return this.then(e,e);var t=this.constructor||Promise;return this.then(function(n){return t.resolve(e()).then(function(){return n})},function(n){return t.resolve(e()).then(function(){throw n})})}),Object.fromEntries||(Object.fromEntries=function(e){return Array.from(e).reduce(function(e,t){return e[t[0]]=t[1],e},{})}),Array.prototype.at||(Array.prototype.at=function(e){var t=Math.trunc(e)||0;if(t<0&&(t+=this.length),!(t<0||t>=this.length))return this[t]}),Object.hasOwn||(Object.hasOwn=function(e,t){if(null==e)throw TypeError("Cannot convert undefined or null to object");return Object.prototype.hasOwnProperty.call(Object(e),t)}),"canParse"in URL||(URL.canParse=function(e,t){try{return new URL(e,t),!0}catch(e){return!1}})}]); \ No newline at end of file diff --git a/e-commerce/.next/static/chunks/0umf92h1sb77c.js b/e-commerce/.next/static/chunks/0umf92h1sb77c.js new file mode 100644 index 0000000000000000000000000000000000000000..be44187205fb5f1187100774142e725785c9f4a3 --- /dev/null +++ b/e-commerce/.next/static/chunks/0umf92h1sb77c.js @@ -0,0 +1 @@ +(()=>{"use strict";(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,28298,(e,t,r)=>{e.i(47167),Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"useRouterBFCache",{enumerable:!0,get:function(){return l}});let n=e.r(71645);function l(e,t,r){let[l,a]=(0,n.useState)(()=>({tree:e,renderTree:t,stateKey:r,next:null}));if(l.tree===e)return l;let u={tree:e,renderTree:t,stateKey:r,next:null},o=1,d=l,i=u;for(;null!==d&&o<1;){if(d.stateKey===r){i.next=d.next;break}{o++;let e={tree:d.tree,renderTree:d.renderTree,stateKey:d.stateKey,next:null};i.next=e,i=e}d=d.next}return a(u),u}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},15783,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0});var n={createClientParams:function(){return a.createRenderParamsFromClient},createClientSearchParams:function(){return u.createRenderSearchParamsFromClient}};for(var l in n)Object.defineProperty(r,l,{enumerable:!0,get:n[l]});let a=e.r(97689),u=e.r(66996);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},47257,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"ClientPageRoot",{enumerable:!0,get:function(){return i}});let n=e.r(43476),l=e.r(8372),a=e.r(71645),u=e.r(33906),o=e.r(61994),d=e.r(15783);function i({Component:e,serverProvidedParams:t}){let r,s;if(null!==t)r=t.searchParams,s=t.params;else{let e=(0,a.use)(l.LayoutRouterContext);s=null!==e?e.parentParams:{},r=(0,u.urlSearchParamsToParsedUrlQuery)((0,a.use)(o.SearchParamsContext))}let f=(0,d.createClientSearchParams)(r),c=(0,d.createClientParams)(s);return(0,n.jsx)(e,{params:c,searchParams:f})}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},92825,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"ClientSegmentRoot",{enumerable:!0,get:function(){return o}});let n=e.r(43476),l=e.r(8372),a=e.r(71645),u=e.r(15783);function o({Component:e,slots:t,serverProvidedParams:r}){let d;if(null!==r)d=r.params;else{let e=(0,a.use)(l.LayoutRouterContext);d=null!==e?e.parentParams:{}}let i=(0,u.createClientParams)(d);return(0,n.jsx)(e,{...t,params:i})}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},68017,(e,t,r)=>{e.i(47167),Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"HTTPAccessFallbackBoundary",{enumerable:!0,get:function(){return s}});let n=e.r(90809),l=e.r(43476),a=n._(e.r(71645)),u=e.r(90373),o=e.r(54394),d=e.r(8372);class i extends a.default.Component{constructor(e){super(e),this.state={triggeredStatus:void 0,previousPathname:e.pathname}}componentDidCatch(){}static getDerivedStateFromError(e){if((0,o.isHTTPAccessFallbackError)(e))return{triggeredStatus:(0,o.getAccessFallbackHTTPStatus)(e)};throw e}static getDerivedStateFromProps(e,t){return e.pathname!==t.previousPathname&&t.triggeredStatus?{triggeredStatus:void 0,previousPathname:e.pathname}:{triggeredStatus:t.triggeredStatus,previousPathname:e.pathname}}render(){let{notFound:e,forbidden:t,unauthorized:r,children:n}=this.props,{triggeredStatus:a}=this.state,u={[o.HTTPAccessErrorStatus.NOT_FOUND]:e,[o.HTTPAccessErrorStatus.FORBIDDEN]:t,[o.HTTPAccessErrorStatus.UNAUTHORIZED]:r};if(a){let d=a===o.HTTPAccessErrorStatus.NOT_FOUND&&e,i=a===o.HTTPAccessErrorStatus.FORBIDDEN&&t,s=a===o.HTTPAccessErrorStatus.UNAUTHORIZED&&r;return d||i||s?(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)("meta",{name:"robots",content:"noindex"}),!1,u[a]]}):n}return n}}function s({notFound:e,forbidden:t,unauthorized:r,children:n}){let o=(0,u.useUntrackedPathname)(),f=(0,a.useContext)(d.MissingSlotContext);return e||t||r?(0,l.jsx)(i,{pathname:o,notFound:e,forbidden:t,unauthorized:r,missingSlots:f,children:n}):(0,l.jsx)(l.Fragment,{children:n})}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},77694,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0});var n={InstantValidationBoundaryContext:function(){return a.InstantValidationBoundaryContext},PlaceValidationBoundaryBelowThisLevel:function(){return a.PlaceValidationBoundaryBelowThisLevel},RenderValidationBoundaryAtThisLevel:function(){return a.RenderValidationBoundaryAtThisLevel},SlotMarker:function(){return a.SlotMarker}};for(var l in n)Object.defineProperty(r,l,{enumerable:!0,get:n[l]});let a=e.r(22976);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},22976,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0});var n={InstantValidationBoundaryContext:function(){return a},PlaceValidationBoundaryBelowThisLevel:function(){return u},RenderValidationBoundaryAtThisLevel:function(){return o},SlotMarker:function(){return d}};for(var l in n)Object.defineProperty(r,l,{enumerable:!0,get:n[l]});let a=null,u=null,o=null,d=null;("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},39756,(e,t,r)=>{e.i(47167),Object.defineProperty(r,"__esModule",{value:!0});var n={LoadingBoundaryProvider:function(){return x},default:function(){return T}};for(var l in n)Object.defineProperty(r,l,{enumerable:!0,get:n[l]});let a=e.r(90809),u=e.r(43476),o=a._(e.r(71645)),d=e.r(8372),i=e.r(1244),s=e.r(72383),f=e.r(91915),c=e.r(58442),p=e.r(68017);e.r(77694);let y=e.r(27828),m=e.r(28298);e.r(74180);let b=e.r(61994),P=e.r(33906),h=e.r(24988);function v(e,t,r){let n=e.getClientRects();if(0===n.length)return 0;let l=1/0;for(let e=0;e=r()&&l<=t?1:2}function g(e){let t=o.default.useRef(null);return(0,o.useLayoutEffect)(()=>{let{scrollRef:r,renderTree:n}=e,l=r.forceScroll?r.scrollRef:n.data.scrollRef;if(null===l||!l.current)return;let a=null,u=r.hashFragment;if(u){if(null===(a="top"===u?document.body:document.getElementById(u)??document.getElementsByName(u)[0]??null)){l.current=!1,r.onlyHashChange=!1,r.hashFragment=null;return}}else a=t.current;if(null===a)return;let o=!1;(0,f.disableSmoothScrollDuringRouteTransition)(()=>{let e=document.documentElement,t=null,r=null,n=null,d=()=>{var r;let l,a;return null===n&&(r=t,n=!Number.isFinite(a=Number.parseFloat(l=getComputedStyle(e).scrollPaddingTop))||a<0?0:l.endsWith("px")?a:l.endsWith("%")?a/100*r:0),n};(u||(t=e.clientHeight,0!==(r=v(a,t,d))))&&((o=!0,l.current=!1,u)?a.scrollIntoView():1!==r&&(e.scrollTop=0,2===v(a,t,d)&&a.scrollIntoView()))},{dontForceLayout:!0,onlyHashChange:r.onlyHashChange}),o&&(r.onlyHashChange=!1,r.hashFragment=null)},void 0),(0,u.jsx)(o.Fragment,{ref:t,children:e.children})}function j({children:e,renderTree:t}){let r=(0,o.useContext)(d.GlobalLayoutRouterContext);if(!r)throw Error("invariant global layout router not mounted");return(0,u.jsx)(g,{scrollRef:r.scrollRef,renderTree:t,children:e})}function _({tree:e,segmentPath:t,debugNameContext:r,renderTree:n,params:l,url:a,isActive:s}){let f,c=(0,o.useContext)(d.GlobalLayoutRouterContext);if((0,o.useContext)(b.NavigationPromisesContext),!c)throw Error("invariant global layout router not mounted");let p=null!==n.data.prefetchRsc?n.data.prefetchRsc:n.data.rsc,y=(0,o.useDeferredValue)(n.data.rsc,p);if((0,h.isDeferredRsc)(y)){let e=(0,o.use)(y);null===e&&(0,o.use)(i.unresolvedThenable),f=e}else null===y&&(0,o.use)(i.unresolvedThenable),f=y;let m=f;return(0,u.jsx)(d.LayoutRouterContext.Provider,{value:{parentTree:e,parentRenderTree:n,parentSegmentPath:t,parentParams:l,parentLoadingData:null,debugNameContext:r,url:a,isActive:s},children:m})}function x({loading:e,children:t}){let r=(0,o.use)(d.LayoutRouterContext);return null===r?t:(0,u.jsx)(d.LayoutRouterContext.Provider,{value:{parentTree:r.parentTree,parentRenderTree:r.parentRenderTree,parentSegmentPath:r.parentSegmentPath,parentParams:r.parentParams,parentLoadingData:e,debugNameContext:r.debugNameContext,url:r.url,isActive:r.isActive},children:t})}function O({name:e,loading:t,children:r}){if(null!==t){let n=t[0],l=t[1],a=t[2];return(0,u.jsx)(o.Suspense,{name:e,fallback:(0,u.jsxs)(u.Fragment,{children:[l,a,n]}),children:r})}return(0,u.jsx)(u.Fragment,{children:r})}function T({parallelRouterKey:e,error:t,errorStyles:r,errorScripts:n,templateStyles:l,templateScripts:a,template:f,notFound:b,forbidden:h,unauthorized:v,segmentViewBoundaries:g}){let x=(0,o.useContext)(d.LayoutRouterContext);if(!x)throw Error("invariant expected layout router to be mounted");let{parentTree:C,parentRenderTree:M,parentSegmentPath:R,parentParams:S,parentLoadingData:F,url:B,isActive:A,debugNameContext:E}=x,L=C[0],H=null===R?[e]:R.concat([L,e]),D=C[1][e],N=M.slots?.get(e);(void 0===D||void 0===N)&&(0,o.use)(i.unresolvedThenable);let w=D[0],k=(0,y.createSegmentKey)(w),V=(0,m.useRouterBFCache)(D,N,k),I=[];do{let e=V.tree,o=V.renderTree,i=V.stateKey,y=e[0],m=S;if(Array.isArray(y)){let e=y[0],t=y[1],r=y[2],n=(0,P.getParamValueFromCacheKey)(t,r);null!==n&&(m={...S,[e]:n})}let g=function(e){if("/"===e)return"/";if("string"==typeof e)if("(__SLOT__)"===e)return;else return e+"/";return e[1]+"/"}(y),x=g??E,T=void 0===g?void 0:E,C=(0,u.jsxs)(j,{renderTree:o,children:[(0,u.jsx)(s.ErrorBoundary,{errorComponent:t,errorStyles:r,errorScripts:n,children:(0,u.jsx)(O,{name:T,loading:F,children:(0,u.jsx)(p.HTTPAccessFallbackBoundary,{notFound:b,forbidden:h,unauthorized:v,children:(0,u.jsxs)(c.RedirectBoundary,{children:[(0,u.jsx)(_,{url:B,tree:e,params:m,renderTree:o,segmentPath:H,debugNameContext:x,isActive:A&&i===k}),null]})})})}),null]}),M=(0,u.jsxs)(d.TemplateContext.Provider,{value:C,children:[l,a,f]},i);I.push(M),V=V.next}while(null!==V)return I}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},37457,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return o}});let n=e.r(90809),l=e.r(43476),a=n._(e.r(71645)),u=e.r(8372);function o(){let e=(0,a.useContext)(u.TemplateContext);return(0,l.jsx)(l.Fragment,{children:e})}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},97689,(e,t,r)=>{e.i(47167),Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"createRenderParamsFromClient",{enumerable:!0,get:function(){return n}});let n=e.r(6831).createRenderParamsFromClient;("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},6831,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"createRenderParamsFromClient",{enumerable:!0,get:function(){return l}});let n=new WeakMap;function l(e){let t=n.get(e);if(t)return t;let r=Promise.resolve(e);return r.status="fulfilled",r.value=e,n.set(e,r),r}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},66996,(e,t,r)=>{e.i(47167),Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"createRenderSearchParamsFromClient",{enumerable:!0,get:function(){return n}});let n=e.r(93504).createRenderSearchParamsFromClient;("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},93504,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"createRenderSearchParamsFromClient",{enumerable:!0,get:function(){return l}});let n=new WeakMap;function l(e){let t=n.get(e);if(t)return t;let r=Promise.resolve(e);return r.status="fulfilled",r.value=e,n.set(e,r),r}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},27201,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"IconMark",{enumerable:!0,get:function(){return l}});let n=e.r(43476),l=()=>"u">typeof window?null:(0,n.jsx)("meta",{name:"«nxt-icon»"})},91915,(e,t,r)=>{function n(e,t={}){if(t.onlyHashChange)return void e();let r=document.documentElement;if("smooth"!==r.dataset.scrollBehavior)return void e();let l=r.style.scrollBehavior;r.style.scrollBehavior="auto",t.dontForceLayout||r.getClientRects(),e(),r.style.scrollBehavior=l}e.i(47167),Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"disableSmoothScrollDuringRouteTransition",{enumerable:!0,get:function(){return n}})}])})(); \ No newline at end of file diff --git a/e-commerce/.next/static/chunks/1ckvzn7sfprko.js b/e-commerce/.next/static/chunks/1ckvzn7sfprko.js new file mode 100644 index 0000000000000000000000000000000000000000..37d01eea57a21e8a7c871e3fbd70cb6a71341e2e --- /dev/null +++ b/e-commerce/.next/static/chunks/1ckvzn7sfprko.js @@ -0,0 +1,31 @@ +(()=>{"use strict";(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,18576,(e,r,t)=>{Object.defineProperty(t,"__esModule",{value:!0});var n={WarningIcon:function(){return d},errorStyles:function(){return l},errorThemeCss:function(){return a}};for(var o in n)Object.defineProperty(t,o,{enumerable:!0,get:n[o]});e.r(55682);let i=e.r(43476);e.r(71645);let l={container:{fontFamily:'system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"',height:"100vh",display:"flex",alignItems:"center",justifyContent:"center"},card:{marginTop:"-32px",maxWidth:"325px",padding:"32px 28px",textAlign:"left"},icon:{marginBottom:"24px"},title:{fontSize:"24px",fontWeight:500,letterSpacing:"-0.02em",lineHeight:"32px",margin:"0 0 12px 0",color:"var(--next-error-title)"},message:{fontSize:"14px",fontWeight:400,lineHeight:"21px",margin:"0 0 20px 0",color:"var(--next-error-message)"},form:{margin:0},buttonGroup:{display:"flex",gap:"8px",alignItems:"center"},button:{display:"inline-flex",alignItems:"center",justifyContent:"center",height:"32px",padding:"0 12px",fontSize:"14px",fontWeight:500,lineHeight:"20px",borderRadius:"6px",cursor:"pointer",color:"var(--next-error-btn-text)",background:"var(--next-error-btn-bg)",border:"var(--next-error-btn-border)"},buttonSecondary:{display:"inline-flex",alignItems:"center",justifyContent:"center",height:"32px",padding:"0 12px",fontSize:"14px",fontWeight:500,lineHeight:"20px",borderRadius:"6px",cursor:"pointer",color:"var(--next-error-btn-secondary-text)",background:"var(--next-error-btn-secondary-bg)",border:"var(--next-error-btn-secondary-border)"},digestFooter:{position:"fixed",bottom:"32px",left:"0",right:"0",textAlign:"center",fontFamily:'ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,monospace',fontSize:"12px",lineHeight:"18px",fontWeight:400,margin:"0",color:"var(--next-error-digest)"}},a=` +:root { + --next-error-bg: #fff; + --next-error-text: #171717; + --next-error-title: #171717; + --next-error-message: #171717; + --next-error-digest: #666666; + --next-error-btn-text: #fff; + --next-error-btn-bg: #171717; + --next-error-btn-border: none; + --next-error-btn-secondary-text: #171717; + --next-error-btn-secondary-bg: transparent; + --next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08); +} +@media (prefers-color-scheme: dark) { + :root { + --next-error-bg: #0a0a0a; + --next-error-text: #ededed; + --next-error-title: #ededed; + --next-error-message: #ededed; + --next-error-digest: #a0a0a0; + --next-error-btn-text: #0a0a0a; + --next-error-btn-bg: #ededed; + --next-error-btn-border: none; + --next-error-btn-secondary-text: #ededed; + --next-error-btn-secondary-bg: transparent; + --next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14); + } +} +body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); } +`.replace(/\n\s*/g,"");function d(){return(0,i.jsx)("svg",{width:"32",height:"32",viewBox:"-0.2 -1.5 32 32",fill:"none",style:l.icon,children:(0,i.jsx)("path",{d:"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z",fill:"var(--next-error-title)"})})}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),r.exports=t.default)},68027,(e,r,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return l}}),e.r(55682);let n=e.r(43476);e.r(71645);let o=e.r(12354),i=e.r(18576),l=function({error:e}){let r=e?.digest,t=!!r;return(0,o.handleISRError)({error:e}),(0,n.jsxs)("html",{id:"__next_error__",children:[(0,n.jsx)("head",{children:(0,n.jsx)("style",{dangerouslySetInnerHTML:{__html:i.errorThemeCss}})}),(0,n.jsxs)("body",{children:[(0,n.jsx)("div",{style:i.errorStyles.container,children:(0,n.jsxs)("div",{style:i.errorStyles.card,children:[(0,n.jsx)(i.WarningIcon,{}),(0,n.jsx)("h1",{style:i.errorStyles.title,children:"This page couldn’t load"}),(0,n.jsx)("p",{style:i.errorStyles.message,children:t?"A server error occurred. Reload to try again.":"Reload to try again, or go back."}),(0,n.jsxs)("div",{style:i.errorStyles.buttonGroup,children:[(0,n.jsx)("form",{style:i.errorStyles.form,children:(0,n.jsx)("button",{type:"submit",style:i.errorStyles.button,children:"Reload"})}),!t&&(0,n.jsx)("button",{type:"button",style:i.errorStyles.buttonSecondary,onClick:()=>{window.history.length>1?window.history.back():window.location.href="/"},children:"Back"})]})]})}),r&&(0,n.jsxs)("p",{style:i.errorStyles.digestFooter,children:["ERROR ",r]})]})]})};("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),r.exports=t.default)},42732,(e,r,t)=>{e.i(47167),Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"HeadManagerContext",{enumerable:!0,get:function(){return n}});let n=(e.r(55682)._(e.r(71645))).default.createContext({})}])})(); \ No newline at end of file diff --git a/e-commerce/.next/static/chunks/1xq8ggvplsax4.js b/e-commerce/.next/static/chunks/1xq8ggvplsax4.js new file mode 100644 index 0000000000000000000000000000000000000000..190daf58e70f1ad489bca72741e7c54aa7b535b3 --- /dev/null +++ b/e-commerce/.next/static/chunks/1xq8ggvplsax4.js @@ -0,0 +1,22 @@ +(()=>{"use strict";(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,5550,(e,t,r)=>{e.i(47167),Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"addBasePath",{enumerable:!0,get:function(){return l}});let n=e.r(41858),a=e.r(82823);function l(e,t){return(0,a.normalizePathTrailingSlash)((0,n.addPathPrefix)(e,""))}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},32120,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"callServer",{enumerable:!0,get:function(){return n.callServer}});let n=e.r(48658);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},92245,(e,t,r)=>{let n;e.i(47167),Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"findSourceMapURL",{enumerable:!0,get:function(){return n}});("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},27801,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"assignLocation",{enumerable:!0,get:function(){return a}});let n=e.r(5550);function a(e,t){if(e.startsWith(".")){let r=t.origin+t.pathname;return new URL((r.endsWith("/")?r:r+"/")+e)}return new URL((0,n.addBasePath)(e),t.href)}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},21768,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0});var n={ACTION_HEADER:function(){return u},FLIGHT_HEADERS:function(){return p},NEXT_ACTION_NOT_FOUND_HEADER:function(){return R},NEXT_ACTION_REVALIDATED_HEADER:function(){return b},NEXT_DID_POSTPONE_HEADER:function(){return v},NEXT_HMR_REFRESH_HEADER:function(){return s},NEXT_HTML_REQUEST_ID_HEADER:function(){return E},NEXT_INSTANT_TEST_COOKIE:function(){return h},NEXT_IS_PRERENDER_HEADER:function(){return m},NEXT_REQUEST_ID_HEADER:function(){return P},NEXT_REWRITTEN_PATH_HEADER:function(){return _},NEXT_REWRITTEN_QUERY_HEADER:function(){return S},NEXT_ROUTER_PREFETCH_HEADER:function(){return i},NEXT_ROUTER_SEGMENT_PREFETCH_HEADER:function(){return c},NEXT_ROUTER_STALE_TIME_HEADER:function(){return g},NEXT_ROUTER_STATE_TREE_HEADER:function(){return o},NEXT_RSC_UNION_QUERY:function(){return y},NEXT_URL:function(){return f},RSC_CONTENT_TYPE_HEADER:function(){return d},RSC_HEADER:function(){return l}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let l="rsc",u="next-action",o="next-router-state-tree",i="next-router-prefetch",c="next-router-segment-prefetch",s="next-hmr-refresh",f="next-url",d="text/x-component",h="next-instant-navigation-testing",p=[l,o,i,s,c],y="_rsc",g="x-nextjs-stale-time",v="x-nextjs-postponed",_="x-nextjs-rewritten-path",S="x-nextjs-rewritten-query",m="x-nextjs-prerender",R="x-nextjs-action-not-found",P="x-nextjs-request-id",E="x-nextjs-html-request-id",b="x-action-revalidated";("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},99781,(e,t,r)=>{e.i(47167),Object.defineProperty(r,"__esModule",{value:!0});var n={createMutableActionQueue:function(){return p},getCurrentAppRouterState:function(){return y},publicAppRouterInstance:function(){return g}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let l=e.r(88540),u=e.r(4924),o=e.r(71645),i=e.r(64245);e.r(4611),e.r(41538),e.r(24988),e.r(5550),e.r(57630),e.r(48277);let c=e.r(32916),s=e.r(27198);function f(e,t,r){e.pending===t&&(e.pending=t.next,null!==e.pending)?d({actionQueue:e,action:e.pending,setState:r}):null===e.pending&&(e.wasPreempted&&(e.wasPreempted=!1,(0,o.startTransition)(()=>r(e.state))),e.needsRefresh&&(e.needsRefresh=!1,e.dispatch({type:l.ACTION_REFRESH},r)))}function d({actionQueue:e,action:t,setState:r}){let n,a=e.state;e.pending=t;let u=t.payload;function o(n){f(e,t,r),t.reject(n)}function c(n){if(t.discarded){t.payload.type===l.ACTION_SERVER_ACTION&&t.payload.didRevalidate&&(e.needsRefresh=!0),f(e,t,r);return}e.state=n,f(e,t,r),t.resolve(n)}try{n=e.action(a,u)}catch(e){o(e);return}(0,i.isThenable)(n)?n.then(c,o):c(n)}let h=null;function p(e){let t={state:e,dispatch:(e,r)=>(function(e,t,r){let n={resolve:r,reject:()=>{}};if(t.type!==l.ACTION_RESTORE){let e=new Promise((e,t)=>{n={resolve:e,reject:t}});(0,o.startTransition)(()=>{r(e)})}let a={payload:t,next:null,resolve:n.resolve,reject:n.reject};null===e.pending?(e.last=a,d({actionQueue:e,action:a,setState:r})):t.type===l.ACTION_NAVIGATE||t.type===l.ACTION_RESTORE?(e.pending.discarded=!0,e.wasPreempted=!0,a.next=e.pending.next,e.last===e.pending&&(e.last=a),d({actionQueue:e,action:a,setState:r})):(null!==e.last&&(e.last.next=a),e.last=a)})(t,e,r),action:u.reducer,pending:null,last:null};if("u">typeof window){if(null!==h)throw Error("Internal Next.js Error: createMutableActionQueue was called more than once");h=t}return t}function y(){return null!==h?h.state:null}let g={back:()=>window.history.back(),forward:()=>window.history.forward(),prefetch:s.prefetchRoute,replace:c.replace,push:c.push,refresh:c.refresh,hmrRefresh:c.hmrRefresh,bfcacheId:"0"};"u">typeof window&&window.next&&(window.next.router=g),("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},4611,(e,t,r)=>{e.i(47167),Object.defineProperty(r,"__esModule",{value:!0});var n={completeHardNavigation:function(){return m},completeSoftNavigation:function(){return R},completeTraverseNavigation:function(){return P},navigate:function(){return g},navigateToKnownRoute:function(){return v}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});e.r(22744);let l=e.r(87288),u=e.r(24988),o=e.r(51191),i=e.r(20896),c=e.r(96167),s=e.r(77048);e.r(77709),e.r(9396),e.r(91949);let f=e.r(88540),d=e.r(34727),h=e.r(48277),p=e.r(79027);e.r(44305);let y=e.r(12085);function g(e,t,r,n,a,l,u,o,c,f){var d,h,y,g,_,m,R,P,E,b,T,O,A,w,C,M,N,I,F,j,D,U,k,L;let x,H,B,V,$,K;return d=e,h=t,y=r,g=n,_=a,m=l,R=u,P=o,E=c,b=f,T=i.segmentCacheMap,x=Date.now(),H=h.href,B=(0,s.createCacheKey)(H,R),null!==(V=(0,i.readRouteCacheEntry)(x,B))&&V.status===i.EntryStatus.Fulfilled?(O=x,A=d,w=h,C=y,M=g,N=R,I=_,F=P,j=E,D=b,U=V,k=null,L=T,$=U.canonicalUrl+w.hash,K={renderedSearch:U.renderedSearch,root:U.root,dynamicStaleAt:(0,p.computeDynamicStaleAt)(O,p.UnknownDynamicStaleTime),treeDivergedFromBase:!1},v(O,A,w,$,K,C,M,I,F,N,j,D,k,L,null,U,void 0)):S(x,d,h,y,g,R,_,m,P,E,b,null,T).catch(()=>d)}function v(e,t,r,n,a,l,o,i,c,s,f,d,h,p,y,g,v){let _={separateRefreshUrls:null,scrollRef:null},S=r.href===l.href,P=(0,u.startPPRNavigation)(e,l,o,i,a.root,c,a.dynamicStaleAt,S,_,p,!1);return null!==P?(c!==u.FreshnessPolicy.Gesture&&(0,u.spawnDynamicRequests)(P,r,s,c,_,g,d,h,p,v),R(t,r,s,P,a.renderedSearch,n,d,f,_.scrollRef,y)):m(t,r,d)}let _=["",{},null,"refetch"];async function S(e,t,r,n,a,s,f,d,h,p,g,S,R){let P;switch(h){case u.FreshnessPolicy.Default:case u.FreshnessPolicy.HistoryTraversal:case u.FreshnessPolicy.Gesture:P=d;break;case u.FreshnessPolicy.Hydration:case u.FreshnessPolicy.RefreshAll:case u.FreshnessPolicy.HMRRefresh:P=_;break;default:P=d}let E=(0,l.fetchServerResponse)(r,{flightRouterState:P,nextUrl:s}),b=await E;if("string"==typeof b)return m(t,new URL(b,location.origin),g);let{transportData:T,canonicalUrl:O,renderedSearch:A,couldBeIntercepted:w,supportsPerSegmentPrefetching:C,dynamicStaleTime:M,isResponsePartial:N,staticStageResponse:I,runtimePrefetchStream:F,responseHeaders:j,debugInfo:D}=b,U=(0,y.createNavigationSeed)(e,d,T,null,N,null,A,null,M);return(0,c.discoverKnownRoute)(e,r.pathname,r.search,s,null,U.root,w,(0,o.createHrefFromUrl)(O,!1),U.renderedSearch,C,!1),null!==I&&(0,i.spawnStaticStageCacheWrite)(e,I,N,j,d,A,R),null!==F&&(0,i.writeRuntimePrefetchStreamIntoCache)(e,F,d,A,R).catch(()=>{}),null!==b.revealAfter&&await b.revealAfter,v(e,t,r,(0,o.createHrefFromUrl)(O),U,n,a,f,h,s,p,g,S,R,D,null,void 0)}function m(e,t,r){return(0,h.isJavaScriptURLString)(t.href)?(console.error("Next.js has blocked a javascript: URL as a security precaution."),e):{canonicalUrl:t.origin===location.origin?(0,o.createHrefFromUrl)(t):t.href,pushRef:{pendingPush:"push"===r,mpaNavigation:!0,preserveCustomHistoryState:!1},renderedSearch:e.renderedSearch,scrollRef:e.scrollRef,root:e.root,tree:e.tree,nextUrl:e.nextUrl,previousNextUrl:e.previousNextUrl,debugInfo:null}}function R(e,t,r,n,a,l,u,o,c,s){let h,p,y=n.tree.route,g=(0,d.computeChangedPath)(e.tree,y)||e.nextUrl,v=new URL(e.canonicalUrl,t),_=t.pathname===v.pathname&&t.search===v.search&&t.hash!==v.hash;if(o===f.ScrollBehavior.NoScroll)null!==c&&(c.current=!1),h=e.scrollRef.scrollRef,p=!1;else if(_){let t=e.scrollRef.scrollRef;null!==t&&(t.current=!1),null!==c&&(c.current=!1),h={current:!0},p=!0}else{if(h=c,null!==c){let t=e.scrollRef.scrollRef;null!==t&&(t.current=!1)}p=!1}return{canonicalUrl:l,renderedSearch:a,pushRef:{pendingPush:"push"===u,mpaNavigation:!1,preserveCustomHistoryState:!1},scrollRef:{scrollRef:h,forceScroll:p,onlyHashChange:_,hashFragment:o!==f.ScrollBehavior.NoScroll&&""!==t.hash?decodeURIComponent(t.hash.slice(1)):e.scrollRef.hashFragment},root:(0,i.createRootRouteTree)(n.tree.node,n.head.node),tree:y,nextUrl:g,previousNextUrl:r,debugInfo:s}}function P(e,t,r,n,a){return{canonicalUrl:(0,o.createHrefFromUrl)(t),renderedSearch:r,pushRef:{pendingPush:!1,mpaNavigation:!1,preserveCustomHistoryState:!0},scrollRef:e.scrollRef,root:(0,i.createRootRouteTree)(n.tree.node,n.head.node),tree:n.tree.route,nextUrl:a,previousNextUrl:null,debugInfo:null}}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},57630,(e,t,r)=>{e.i(47167),Object.defineProperty(r,"__esModule",{value:!0});var n={createPrefetchURL:function(){return i},isExternalURL:function(){return o}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let l=e.r(82604),u=e.r(5550);function o(e){return e.origin!==window.location.origin}function i(e){let t;if((0,l.isBot)(window.navigator.userAgent))return null;try{t=new URL((0,u.addBasePath)(e),window.location.href)}catch(t){throw Error(`Cannot prefetch '${e}' because it cannot be converted to a URL.`)}return o(t)?null:t}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},91949,(e,t,r)=>{e.i(47167),Object.defineProperty(r,"__esModule",{value:!0});var n={IDLE_LINK_STATUS:function(){return f},PENDING_LINK_STATUS:function(){return s},getLinkForCurrentNavigation:function(){return p},mountFormInstance:function(){return R},mountLinkInstance:function(){return m},onLinkVisibilityChanged:function(){return E},onNavigationIntent:function(){return b},pingVisibleLinks:function(){return O},setLinkForCurrentNavigation:function(){return d},unmountLinkForCurrentNavigation:function(){return h},unmountPrefetchableInstance:function(){return P}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let l=e.r(9396),u=e.r(77048),o=e.r(77709),i=e.r(71645),c=null,s={pending:!0},f={pending:!1};function d(e){(0,i.startTransition)(()=>{c?.setOptimisticLinkStatus(f),e?.setOptimisticLinkStatus(s),c=e})}function h(e){c===e&&(c=null)}function p(){return c}let y="function"==typeof WeakMap?new WeakMap:new Map,g=new Set,v="function"==typeof IntersectionObserver?new IntersectionObserver(function(e){for(let t=e.length-1;t>=0;t--){let r=e[t],n=r.intersectionRatio>0;E(r.target,n)}},{rootMargin:"200px"}):null;function _(e,t){void 0!==y.get(e)&&P(e),y.set(e,t),null!==v&&v.observe(e)}function S(t){if(!("u">typeof window))return null;{let{createPrefetchURL:r}=e.r(57630);try{return r(t)}catch{return("function"==typeof reportError?reportError:console.error)(`Cannot prefetch '${t}' because it cannot be converted to a URL.`),null}}}function m(e,t,r,n,a,l,u){if(a){let a=S(t);if(null!==a){let t={router:r,fetchStrategy:n,isVisible:!1,prefetchTask:null,prefetchHref:a.href,setOptimisticLinkStatus:l,ownerStack:u};return _(e,t),t}}return{router:r,fetchStrategy:n,isVisible:!1,prefetchTask:null,prefetchHref:null,setOptimisticLinkStatus:l,ownerStack:u}}function R(e,t,r,n){let a=S(t);null===a||_(e,{router:r,fetchStrategy:n,isVisible:!1,prefetchTask:null,prefetchHref:a.href,setOptimisticLinkStatus:null})}function P(e){let t=y.get(e);if(void 0!==t){y.delete(e),g.delete(t);let r=t.prefetchTask;null!==r&&(0,o.cancelPrefetchTask)(r)}null!==v&&v.unobserve(e)}function E(e,t){let r=y.get(e);void 0!==r&&(r.isVisible=t,t?g.add(r):g.delete(r),T(r,l.PrefetchPriority.Default))}function b(e,t){let r=y.get(e);void 0!==r&&void 0!==r&&T(r,l.PrefetchPriority.Intent)}function T(t,r){if("u">typeof window){let n=t.prefetchTask;if(!t.isVisible){null!==n&&(0,o.cancelPrefetchTask)(n);return}let{getCurrentAppRouterState:a}=e.r(99781),l=a();if(null!==l)if(null===n){let e=l.nextUrl,n=(0,u.createCacheKey)(t.prefetchHref,e);t.prefetchTask=(0,o.schedulePrefetchTask)(n,l.root,t.fetchStrategy,r,null,null)}else(0,o.reschedulePrefetchTask)(n,l.root,t.fetchStrategy,r)}}function O(e,t){for(let r of g){let n=r.prefetchTask;if(null!==n&&!(0,o.isPrefetchTaskDirty)(n,e,t))continue;null!==n&&(0,o.cancelPrefetchTask)(n);let a=(0,u.createCacheKey)(r.prefetchHref,e);r.prefetchTask=(0,o.schedulePrefetchTask)(a,t,r.fetchStrategy,l.PrefetchPriority.Default,null,null)}}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},32916,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0});var n={hmrRefresh:function(){return l.hmrRefresh},navigate:function(){return l.navigate},push:function(){return l.push},refresh:function(){return l.refresh},replace:function(){return l.replace},restore:function(){return l.restore},traverse:function(){return l.traverse}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let l=e.r(70358);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},27198,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0});var n={prefetch:function(){return h},prefetchRoute:function(){return d}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let l=e.r(88540),u=e.r(57630),o=e.r(99781),i=e.r(48277),c=e.r(77048),s=e.r(77709),f=e.r(9396);function d(e,t){let r;if((0,i.isJavaScriptURLString)(e))throw Error("Next.js has blocked a javascript: URL as a security precaution.");let n=(0,o.getCurrentAppRouterState)();if(null===n)throw Error("Internal Next.js error: Router action dispatched before initialization.");switch(t?.kind??l.PrefetchKind.AUTO){case l.PrefetchKind.AUTO:r=f.FetchStrategy.PPR;break;case l.PrefetchKind.FULL:r=f.FetchStrategy.Full;break;default:r=f.FetchStrategy.PPR}h(e,n.nextUrl,n.root,r,t?.onInvalidate??null)}function h(e,t,r,n,a){let l=(0,u.createPrefetchURL)(e);if(null===l)return;let o=(0,c.createCacheKey)(l.href,t);(0,s.schedulePrefetchTask)(o,r,n,f.PrefetchPriority.Default,a,null)}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},68391,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0});var n={REDIRECT_ERROR_CODE:function(){return u},isRedirectError:function(){return o}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let l=e.r(76963),u="NEXT_REDIRECT";function o(e){if("object"!=typeof e||null===e||!("digest"in e)||"string"!=typeof e.digest)return!1;let t=e.digest.split(";"),[r,n]=t,a=t.slice(2,-2).join(";"),o=Number(t.at(-2));return r===u&&("replace"===n||"push"===n)&&"string"==typeof a&&!isNaN(o)&&o in l.RedirectStatusCode}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},76963,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"RedirectStatusCode",{enumerable:!0,get:function(){return a}});var n,a=((n={})[n.SeeOther=303]="SeeOther",n[n.TemporaryRedirect=307]="TemporaryRedirect",n[n.PermanentRedirect=308]="PermanentRedirect",n);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},24063,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0});var n={getRedirectError:function(){return i},getRedirectStatusCodeFromError:function(){return h},getRedirectTypeFromError:function(){return d},getURLFromRedirectError:function(){return f},permanentRedirect:function(){return s},redirect:function(){return c}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let l=e.r(76963),u=e.r(68391),o=e.r(1425);function i(e,t,r=l.RedirectStatusCode.TemporaryRedirect){let n=Error(u.REDIRECT_ERROR_CODE);return n.digest=`${u.REDIRECT_ERROR_CODE};${t};${e};${r};`,n}function c(e,t){throw i(e,t??=o.actionAsyncStorage?.getStore()?.isAction?"push":"replace",l.RedirectStatusCode.TemporaryRedirect)}function s(e,t="replace"){throw i(e,t,l.RedirectStatusCode.PermanentRedirect)}function f(e){return(0,u.isRedirectError)(e)?e.digest.split(";").slice(2,-2).join(";"):null}function d(e){if(!(0,u.isRedirectError)(e))throw Error("Not a redirect error");return e.digest.split(";",2)[1]}function h(e){if(!(0,u.isRedirectError)(e))throw Error("Not a redirect error");return Number(e.digest.split(";").at(-2))}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},24988,(e,t,r)=>{e.i(47167),Object.defineProperty(r,"__esModule",{value:!0});var n,a={FreshnessPolicy:function(){return R},beginLockedNavigation:function(){return G},createInitialRenderTreeForHydration:function(){return E},createRootNavigationTask:function(){return m},getCurrentNavigationLock:function(){return X},isDeferredRsc:function(){return q},resetNavigationLockToPending:function(){return Y},spawnDynamicRequests:function(){return L},startPPRNavigation:function(){return b}};for(var l in a)Object.defineProperty(r,l,{enumerable:!0,get:a[l]});let u=e.r(22744),o=e.r(13258),i=e.r(67764),c=e.r(51191),s=e.r(87288),f=e.r(41538),d=e.r(88540),h=e.r(48919),p=e.r(94272),y=e.r(12085),g=e.r(20896),v=e.r(96167),_=e.r(56655),S=e.r(79027);function m(e,t){return{tree:e,head:t}}var R=((n={})[n.Default=0]="Default",n[n.Hydration=1]="Hydration",n[n.HistoryTraversal=2]="HistoryTraversal",n[n.RefreshAll=3]="RefreshAll",n[n.HMRRefresh=4]="HMRRefresh",n[n.Gesture=5]="Gesture",n);let P=()=>{};function E(e,t,r){let n={separateRefreshUrls:null,scrollRef:null},a=g.segmentCacheMap;return m(w(e,t.tree,1,r,!1,n,a,!1),w(e,t.head,1,r,!1,n,a,!1))}function b(e,t,r,n,a,l,u,o,i,s,f){let d={canonicalUrl:(0,c.createHrefFromUrl)(t),renderedSearch:r},h=O(e,n.tree,a.tree,l,u,o,!1,d,null,i,s,f);if(null===h)return null;let p=O(e,n.head,a.head,l,u,o,!1,d,null,i,s,f);return null===p?null:m(h,p)}function T(e,t,r,n,a){return{status:e,route:t,node:r,dynamicRequestTree:n,children:a}}function O(e,t,r,n,a,l,i,c,s,f,d,p){var y;let v,m,R,P,E=r.segment;if(!(0,g.doesRouteStructureMatch)(t,r))return(r.prefetchHints&u.PrefetchHint.IsRootLayoutOrAbove)!=0&&(0,h.isNavigatingToNewRootLayout)(t,r)||E===o.NOT_FOUND_SEGMENT_KEY?null:w(e,r,n,a,i,f,d,p);let b=r.slots,M=!1;switch(n){case 0:case 2:case 1:case 5:M=!1;break;case 3:case 4:M=!0}let D=null===b,k=(0,_.compareParams)(t.varyPath,r.varyPath);if(k!==_.ParamsChange.None){let l;switch(l=k===_.ParamsChange.PathParam?U(n):t.data.bfcacheId,n){case 0:case 5:{let u=t.data;if(!(0,_.didReadChangedParam)(t.varyPath,r.varyPath,u.varyParams)){let t=j(u.rsc,u.prefetchRsc,u.varyParams,l);5!==n&&(0,S.writeToBFCache)(e,r.varyPath,t,a),R=I(r,t),P=!1;break}}case 1:case 2:case 3:case 4:{let t=F(e,r,n,a,l,d,p);R=t.node,P=t.needsDynamicRequest}}D&&A(n,R.data,f)}else if(M||D&&l){let l=F(e,r,n,a,t.data.bfcacheId,d,p);R=l.node,P=l.needsDynamicRequest,R.data.scrollRef=t.data.scrollRef}else R=I(r,t.data),P=!1;let L=r.refreshState,x=null!=L?L:s;R.refreshState=x,P&&null!==x&&(y=f,v=x.canonicalUrl,null===(m=y.separateRefreshUrls)?y.separateRefreshUrls=new Set([v]):m.add(v));let H={},B=null,V=!1,$={};if(null!==b){let r=t.slots,u=new Map;for(let[t,s]of(R.slots=u,B=new Map,b)){let h=r?.get(t);if(void 0===h)return null;let y=h.segment,v=s.segment;2!==n&&v===o.DEFAULT_SEGMENT_KEY&&y!==o.DEFAULT_SEGMENT_KEY&&k!==_.ParamsChange.PathParam&&(s=function(e,t){let r,n,a=t.refreshState;null!==a?(r=a.canonicalUrl,n=a.renderedSearch):(r=e.canonicalUrl,n=e.renderedSearch);let l=(0,g.rebaseInactiveRouteTree)(t);return l.refreshState={canonicalUrl:r,renderedSearch:n},l}(c,h));let S=O(e,h,s,n,a,l,i||P,c,x,f,d,p);if(null===S)return null;B.set(t,S),u.set(t,S.node);let m=S.route;H[t]=m;let R=S.dynamicRequestTree;null!==R?(V=!0,$[t]=R):$[t]=m}}let K=C(r,H,x);return T(+!P,K,R,N(K,$,P,V,i),B)}function A(e,t,r){switch(e){case 0:case 5:case 3:case 4:null===r.scrollRef&&(r.scrollRef={current:!0}),t.scrollRef=r.scrollRef}}function w(e,t,r,n,a,l,u,o){let i=t.slots,c=F(e,t,r,n,U(r),u,o),s=c.node,f=c.needsDynamicRequest;null===i&&A(r,s.data,l);let d={},h=null,p=!1,y={};if(null!==i){let t=new Map;for(let[c,g]of(s.slots=t,h=new Map,i)){let i=w(e,g,r,n,a||f,l,u,o);h.set(c,i),t.set(c,i.node);let s=i.route;d[c]=s;let v=i.dynamicRequestTree;null!==v?(p=!0,y[c]=v):y[c]=s}}let g=C(t,d,null);return T(+!f,g,s,N(g,y,f,p,a),h)}function C(e,t,r){let n=[e.segment,t,null!==r?[r.canonicalUrl,r.renderedSearch]:null,null,e.prefetchHints];if(e.segment===o.PAGE_SEGMENT_KEY){let t=(0,_.getRenderedSearchFromVaryPath)(e.varyPath);null!==t&&(n[5]=t)}return n}function M(e,t){let r=[e[0],t];return 2 in e&&(r[2]=e[2]),3 in e&&(r[3]=e[3]),4 in e&&(r[4]=e[4]),5 in e&&(r[5]=e[5]),r}function N(e,t,r,n,a){let l=null;return r?(l=M(e,t),a||(l[3]="refetch")):l=n?M(e,t):null,l}function I(e,t){return{requestKey:e.requestKey,segment:e.segment,shellVaryPath:e.shellVaryPath,refreshState:null,data:t,varyPath:e.varyPath,slots:null,prefetchHints:e.prefetchHints}}function F(e,t,r,n,a,l,u){let o,c,s,f,d,h,p,y,v=t.data,_=null!==v?v.rsc:null,m=null!==v?v.varyParams:null;switch(r){case 0:{let r=(0,S.readFromBFCacheDuringRegularNavigation)(e,t.varyPath);if(null!==r)return{node:I(t,j(r.rsc,r.prefetchRsc,r.varyParams,a)),needsDynamicRequest:!1};break}case 1:{let r=j(_,null,m,a);return(0,S.writeToBFCache)(e,t.varyPath,r,n),{node:I(t,r),needsDynamicRequest:!1}}case 2:let R=(0,S.readFromBFCache)(t.varyPath);if(null!==R){let e=R.rsc,r=!q(e)||"pending"!==e.status;return{node:I(t,j(R.rsc,r?null:R.prefetchRsc,R.varyParams,R.bfcacheId)),needsDynamicRequest:!1}}}let P=null,E=!0,b=null,T=(0,g.readSegmentCacheEntryForNavigation)(e,l,t.varyPath,u);if(null!==T)switch(T.status){case g.EntryStatus.Fulfilled:P=T.rsc,E=T.isPartial,b=T.varyParams;break;case g.EntryStatus.Pending:P=(0,g.waitForSegmentCacheEntry)(T).then(e=>null!==e?e.rsc:null),E=T.isPartial;case g.EntryStatus.Empty:case g.EntryStatus.Rejected:}t.segment===i.HEAD_REQUEST_KEY&&E&&(P=""),null!==_?(E?(d=P,h=_,p=m):(d=null,h=P,p=b),y=!1):(E?(d=P,s=[],(f=new Promise((e,t)=>{o=e,c=t})).status="pending",f.resolve=(e,t)=>{"pending"===f.status&&(f.status="fulfilled",f.value=e,null!==t&&s.push.apply(s,t),o(e))},f.reject=(e,t)=>{"pending"===f.status&&(f.status="rejected",f.reason=e,null!==t&&s.push.apply(s,t),c(e))},f.tag=K,f._debugInfo=s,h=f,p=null):(d=null,h=P,p=b),y=E);let O=j(h,d,p,a);return 5!==r&&(0,S.writeToBFCache)(e,t.varyPath,O,n),{node:I(t,O),needsDynamicRequest:y}}function j(e,t,r,n,a=null){return{rsc:e,prefetchRsc:t,varyParams:r,scrollRef:a,bfcacheId:n}}let D=0;function U(e){return"u"{let t=t=>{0===t.exitStatus?0==--n&&e(0):e(t.exitStatus)},r=()=>e(2),n=1;u.then(t,r),null!==o&&(n+=o.length,o.forEach(e=>e.then(t,r)))}));if(0===i){i=$(e.tree,null,null);let t=$(e.head,null,null);t>i&&(i=t)}switch(i){case -1:return;case 0:k=!1;return;case 1:{let n=await r;H(!1,n.url,t,n.seed,e,a,l,3);return}case 3:{let n=await r;H(!1,n.url,t,n.seed,e,a,l,2);return}case 2:{let n=await r;H(!0,n.url,t,n.seed,e,a,l,3);return}default:return i}}function H(e,t,r,n,a,l,u,o){if(null!==l){let e=l.predictedFrom;null!==e&&(e.hasDynamicRewrite=!0)}else if(null!==n){let e=Date.now();(0,v.discoverKnownRoute)(e,t.pathname,t.search,r,null,n.root,!1,(0,c.createHrefFromUrl)(t),n.renderedSearch,!1,!0)}(0,g.invalidateRouteCacheEntries)(r,{tree:a.tree.node,head:a.head.node}),e=e||k,k=!0;let i=a.tree.route,s=(0,p.getLastCommittedTree)(),h={type:d.ACTION_SERVER_PATCH,previousTree:i,url:t,nextUrl:r,seed:n,mpa:e,navigateType:null!==s&&i!==s?u:"replace",freshnessPolicy:o};(0,f.dispatchAppRouterAction)(h)}async function B(e,t,r,n,a,l,u,o,i,c){try{let o=await (0,s.fetchServerResponse)(n,{flightRouterState:r,nextUrl:a,isHmrRefresh:4===l,signal:c});if("string"==typeof o)return{exitStatus:2,url:new URL(o,location.origin),seed:null};let f=Date.now(),d=(0,y.createNavigationSeed)(f,e.route,o.transportData,null,o.isResponsePartial,null,o.renderedSearch,null,o.dynamicStaleTime);null!==u&&null!==o.staticStageResponse&&(0,g.spawnStaticStageCacheWrite)(f,o.staticStageResponse,o.isResponsePartial,o.responseHeaders,r,o.renderedSearch,i),null!==u&&null!==o.runtimePrefetchStream&&(0,g.writeRuntimePrefetchStreamIntoCache)(f,o.runtimePrefetchStream,r,o.renderedSearch,i).catch(()=>{});let h=(0,S.computeDynamicStaleAt)(f,o.dynamicStaleTime),p=V(e,d.root.tree,h,o.debugInfo,o.revealAfter);null!==t&&V(t,d.root.head,h,o.debugInfo,o.revealAfter);let v=new URL(o.canonicalUrl,location.origin),_=!1;if(null!==u){let e=new URL(u.canonicalUrl,location.origin);_=e.pathname!==v.pathname||e.search!==v.search}return{exitStatus:p?1:3*!!_,url:v,seed:d}}catch{if(c?.aborted)return{exitStatus:-1,url:n,seed:null};return{exitStatus:2,url:n,seed:null}}}function V(e,t,r,n,a){let l=t.data;if(0===e.status&&null!==l){e.status=1;let u=e.node.data;(function(e,t,r,n){let a=e.rsc,l=t.rsc;if(null!==l){if(null===a)e.rsc=l,e.varyParams=t.varyParams;else if(q(a)&&"pending"===a.status)if(e.varyParams=t.varyParams,null!==n){let e=()=>a.resolve(l,r);n.then(e,e)}else a.resolve(l,r)}})(u,l,n,a),(0,S.updateBFCacheEntryFromDynamicResponse)(t.varyPath,u,r)}let u=e.children,o=t.slots,i=!1;if(null!==u)if(null!==o)for(let[e,t]of o){let l=u.get(e);void 0===l?i=!0:(0,g.doesRouteStructureMatch)(l.node,t)&&null!==t.data&&(0,_.compareParams)(l.node.varyPath,t.varyPath)===_.ParamsChange.None&&V(l,t,r,n,a)&&(i=!0)}else null!==o&&(i=!0);return i}function $(e,t,r){var n,a,l;let u,o;0===e.status?(e.status=2,n=e.node.data,a=t,l=r,q(o=n.rsc)&&(null===a?o.resolve(null,l):o.reject(a,l)),u=null===e.node.refreshState?1:2):u=0;let i=e.children;if(null!==i)for(let[,e]of i){let n=$(e,t,r);n>u&&(u=n)}return u}let K=Symbol();function q(e){return e&&"object"==typeof e&&e.tag===K}function X(){return null}function G(){return null}function Y(){}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},34727,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0});var n={computeChangedPath:function(){return h},extractPathFromFlightRouterState:function(){return f},extractSourcePageFromFlightRouterState:function(){return d},getSelectedParams:function(){return function e(t,r={}){for(let n of Object.values(t[1])){let t=n[0],a=Array.isArray(t),l=a?t[1]:t;l&&l!==u.PAGE_SEGMENT_KEY&&(a&&("c"===t[2]||"oc"===t[2])?r[t[0]]=t[1].split("/"):a&&(r[t[0]]=t[1]),r=e(n,r))}return r}},segmentToSourcePagePathname:function(){return c}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let l=e.r(91463),u=e.r(13258),o=e=>"/"===e[0]?e.slice(1):e,i=e=>"string"==typeof e?"children"===e?"":e:e[1],c=e=>{if("string"==typeof e)return"children"===e?"":e===u.PAGE_SEGMENT_KEY?"page":e;let[t,,r]=e;switch(r){case"c":return`[...${t}]`;case"ci(..)(..)":return`(..)(..)[...${t}]`;case"ci(.)":return`(.)[...${t}]`;case"ci(..)":return`(..)[...${t}]`;case"ci(...)":return`(...)[...${t}]`;case"oc":return`[[...${t}]]`;case"d":default:return`[${t}]`;case"di(..)(..)":return`(..)(..)[${t}]`;case"di(.)":return`(.)[${t}]`;case"di(..)":return`(..)[${t}]`;case"di(...)":return`(...)[${t}]`}};function s(e){return e.reduce((e,t)=>""===(t=o(t))||(0,u.isGroupSegment)(t)?e:`${e}/${t}`,"")||"/"}function f(e){let t=Array.isArray(e[0])?e[0][1]:e[0];if(t===u.DEFAULT_SEGMENT_KEY||l.INTERCEPTION_ROUTE_MARKERS.some(e=>t.startsWith(e)))return;if(t===u.PAGE_SEGMENT_KEY)return"";let r=[i(t)],n=e[1]??{},a=n.children?f(n.children):void 0;if(void 0!==a)r.push(a);else for(let[e,t]of Object.entries(n)){if("children"===e)continue;let n=f(t);void 0!==n&&r.push(n)}return s(r)}function d(e){let t=function e(t){let r=c(t[0]);if(r===u.DEFAULT_SEGMENT_KEY)return;if("page"===r)return[r];let n=t[1]??{},a=n.children?e(n.children):void 0;if(void 0!==a)return""===r?a:[o(r),...a];for(let[t,a]of Object.entries(n)){if("children"===t)continue;let n=e(a);if(void 0!==n)return""===r?n:[o(r),...n]}}(e);return t?`/${t.join("/")}`:void 0}function h(e,t){let r=function e(t,r){let[n,a]=t,[o,c]=r,s=i(n),d=i(o);if(l.INTERCEPTION_ROUTE_MARKERS.some(e=>s.startsWith(e)||d.startsWith(e)))return"";if(("string"==typeof n||"string"==typeof o?n!==o:n[0]!==o[0]||n[1]!==o[1])||n===u.PAGE_SEGMENT_KEY&&t[5]!==r[5])return f(r)??"";for(let t in a)if(c[t]){let r=e(a[t],c[t]);if(null!==r)return`${i(o)}/${r}`}return null}(e,t);return null==r||"/"===r?r:s(r.split("/"))}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},51191,(e,t,r)=>{function n(e,t=!0){return e.pathname+e.search+(t?e.hash:"")}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"createHrefFromUrl",{enumerable:!0,get:function(){return n}}),("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},87288,(e,t,r)=>{let n;e.i(47167),Object.defineProperty(r,"__esModule",{value:!0});var a={createFetch:function(){return C},createFromNextReadableStream:function(){return M},decodeBufferedStage:function(){return w},decodeStageUntilBoundary:function(){return A},fetchServerResponse:function(){return E},processFetch:function(){return b},resolveShellStageResponse:function(){return O}};for(var l in a)Object.defineProperty(r,l,{enumerable:!0,get:a[l]});let u=e.r(35326);e.r(12718);let o=e.r(35779),i=e.r(21768),c=e.r(32120),s=e.r(92245),f=e.r(50590),d=e.r(88093),h=e.r(33906),p=e.r(43369),y=e.r(32992),g=e.r(63416),v=e.r(20896),_=e.r(79027),S=u.createFromReadableStream,m=u.createFromFetch;function R(e){return(0,h.urlToUrlWithoutFlightMarker)(new URL(e,location.origin)).toString()}let P=!1;async function E(e,t){let{flightRouterState:r,nextUrl:n}=t,a={[i.RSC_HEADER]:"1",[i.NEXT_ROUTER_STATE_TREE_HEADER]:(0,f.prepareFlightRouterStateForRequest)(r,t.isHmrRefresh)};n&&(a[i.NEXT_URL]=n);try{let r=await C(e,a,"auto",!0,t.signal),n=(0,h.urlToUrlWithoutFlightMarker)(new URL(r.url)),l=r.redirected?n:e,u=r.headers.get("content-type")||"",o=!!r.headers.get("vary")?.includes(i.NEXT_URL),c=!!r.headers.get(i.NEXT_DID_POSTPONE_HEADER);if(!u.startsWith(i.RSC_CONTENT_TYPE_HEADER)||!r.ok||!r.body)return e.hash&&(n.hash=e.hash),R(n.toString());let s=r.flightResponsePromise,[f,d]=await Promise.all([s,r.cacheData]);if((r.headers.get(g.NEXT_NAV_DEPLOYMENT_ID_HEADER)??f.b)!==(0,y.getNavigationBuildId)())return R(r.url);if(void 0!==f.n)return R(f.n);let p=null!==d?await T(d,f,a):null;return{transportData:f.t??null,canonicalUrl:l,renderedSearch:f.q,couldBeIntercepted:o,supportsPerSegmentPrefetching:f.S,postponed:c,dynamicStaleTime:f.d??_.UnknownDynamicStaleTime,isResponsePartial:null!==d&&d.isResponsePartial,staticStageResponse:p,runtimePrefetchStream:f.p??null,responseHeaders:r.headers,debugInfo:s._debugInfo??null,revealAfter:f._revealAfter??null}}catch(r){if(t.signal?.aborted)throw r;return P||console.error(`Failed to fetch RSC payload for ${e}. Falling back to browser navigation.`,r),e.toString()}}async function b(e){return{response:e,cacheData:null}}async function T(e,t,r){let{isResponsePartial:n,staticBodyClone:a}=e;if(a){if(!n)return a.cancel(),t;if(void 0!==t.l){let e=await t.l;return 0===e?(a.cancel(),null):A(a,e,r)}a.cancel()}return null}async function O(e,t,r){let{shellBodyClone:n}=e;if(!n)return null;if(void 0===t.a)return n.cancel(),null;let a=await t.a;return 0===a?(n.cancel(),null):null===a?(n.cancel(),t):A(n,a,r)}async function A(e,t,r){try{let n=await (0,v.bufferPrefetchResponseBody)(e,t),a=w(n,r);return await new Promise(e=>{let t=setTimeout(()=>e(null),0);a.then(r=>{clearTimeout(t),e(r)},()=>{clearTimeout(t),e(null)})})}catch{return null}}function w(e,t){return M(new ReadableStream({start(t){t.enqueue(e),t.close()}}),t,{allowPartialStream:!0})}async function C(e,t,r,n,a){let l=(0,p.getDeploymentId)();l&&(t["x-deployment-id"]=l);let u={credentials:"same-origin",headers:t,priority:r||void 0,signal:a},c=new URL(e);await (0,d.setCacheBustingSearchParam)(c,t);let s=(0,o.fetch)(c,u).then(b),f=s.then(({response:e})=>e),h=n?N(f,t):null,y=await f,g=y.redirected;for(let e=0;e<20&&y.redirected;e++){let e=new URL(y.url,c);if(e.origin!==c.origin||e.searchParams.get(i.NEXT_RSC_UNION_QUERY)===c.searchParams.get(i.NEXT_RSC_UNION_QUERY))break;c=new URL(e),await (0,d.setCacheBustingSearchParam)(c,t),f=(s=(0,o.fetch)(c,u).then(b)).then(({response:e})=>e),h=n?N(f,t):null,y=await f,g=!0}let v=new URL(y.url,c);return v.searchParams.delete(i.NEXT_RSC_UNION_QUERY),{url:v.href,redirected:g,ok:y.ok,headers:y.headers,body:y.body,status:y.status,flightResponsePromise:h,cacheData:s.then(({cacheData:e})=>e)}}function M(e,t,r){return S(e,{callServer:c.callServer,findSourceMapURL:s.findSourceMapURL,debugChannel:n&&n(t),unstable_allowPartialStream:r?.allowPartialStream})}function N(e,t){return m(e,{callServer:c.callServer,findSourceMapURL:s.findSourceMapURL,debugChannel:n&&n(t)})}"u">typeof window&&(window.addEventListener("pagehide",()=>{P=!0}),window.addEventListener("pageshow",()=>{P=!1})),("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},48919,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"isNavigatingToNewRootLayout",{enumerable:!0,get:function(){return function e(t,r){let a=(t.prefetchHints&n.PrefetchHint.IsRootLayoutOrAbove)!=0,l=(r.prefetchHints&n.PrefetchHint.IsRootLayoutOrAbove)!=0;if(!a&&!l)return!1;if(a!==l)return!0;let u=t.segment,o=r.segment;if(Array.isArray(u)&&Array.isArray(o)){if(u[0]!==o[0]||u[2]!==o[2])return!0}else if(u!==o)return!0;let i=r.slots,c=t.slots;if(null!==i)for(let[t,r]of i){let n=c?.get(t);if(void 0===n||e(n,r))return!0}return!1}}});let n=e.r(22744);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},94272,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0});var n={getLastCommittedTree:function(){return u},setLastCommittedTree:function(){return o}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let l=null;function u(){return l}function o(e){l=e}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},84356,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"hasInterceptionRouteInCurrentTree",{enumerable:!0,get:function(){return function e([t,r]){if(Array.isArray(t)&&("di(..)(..)"===t[2]||"ci(..)(..)"===t[2]||"di(.)"===t[2]||"ci(.)"===t[2]||"di(..)"===t[2]||"ci(..)"===t[2]||"di(...)"===t[2]||"ci(...)"===t[2])||"string"==typeof t&&(0,n.isInterceptionRouteAppPath)(t))return!0;if(r){for(let t in r)if(e(r[t]))return!0}return!1}}});let n=e.r(91463);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},54069,(e,t,r)=>{e.i(47167),Object.defineProperty(r,"__esModule",{value:!0});var n={DYNAMIC_STALETIME_MS:function(){return i},STATIC_STALETIME_MS:function(){return c},navigateReducer:function(){return s}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let l=e.r(4611),u=e.r(20896),o=e.r(24988),i=1e3*Number("0"),c=(0,u.getStaleTimeMs)(Number("300"));function s(e,t){let{url:r,isExternalUrl:n,navigateType:a,scrollBehavior:u}=t;if(n||document.getElementById("__next-page-redirect"))return(0,l.completeHardNavigation)(e,r,a);let i=new URL(e.canonicalUrl,location.origin),c=e.renderedSearch;return(0,l.navigate)(e,r,i,c,e.root,e.tree,e.nextUrl,o.FreshnessPolicy.Default,u,a)}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},69845,(e,t,r)=>{e.i(47167),Object.defineProperty(r,"__esModule",{value:!0});var n={refreshDynamicData:function(){return h},refreshReducer:function(){return d}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let l=e.r(88540),u=e.r(4611),o=e.r(12085),i=e.r(20896),c=e.r(84356),s=e.r(24988),f=e.r(79027);function d(e,t){{let t=e.nextUrl,r=e.root;(0,i.invalidateSegmentCacheEntries)(t,r)}return h(e,s.FreshnessPolicy.RefreshAll,void 0)}function h(e,t,r){(0,f.invalidateBfCache)();let n=e.nextUrl,a=(0,c.hasInterceptionRouteInCurrentTree)(e.tree)?e.previousNextUrl||n:null,d=e.canonicalUrl,h=new URL(d,location.origin),p=e.renderedSearch,y=e.tree,g=l.ScrollBehavior.NoScroll,v=(0,s.getCurrentNavigationLock)(),_=Date.now(),S=(0,o.createNavigationSeed)(_,y,null,null,!0,null,p,null,f.UnknownDynamicStaleTime),m=e.pushRef.pendingPush?"push":"replace";return(0,u.navigateToKnownRoute)(_,e,h,d,S,h,p,e.root,t,a,g,m,v,i.segmentCacheMap,null,null,r)}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},73790,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"restoreReducer",{enumerable:!0,get:function(){return c}});let n=e.r(34727),a=e.r(24988),l=e.r(4611),u=e.r(12085),o=e.r(20896),i=e.r(79027);function c(e,t){let r,c,s=t.historyState;s?(r=s.tree,c=s.renderedSearch):(r=e.tree,c=e.renderedSearch);let f=new URL(e.canonicalUrl,location.origin),d=t.url,h=(0,n.extractPathFromFlightRouterState)(r)??d.pathname,p=Date.now(),y={separateRefreshUrls:null,scrollRef:null},g=(0,u.createNavigationSeed)(p,r,null,null,!0,null,c,null,i.UnknownDynamicStaleTime),v=(0,a.startPPRNavigation)(p,f,e.renderedSearch,e.root,g.root,a.FreshnessPolicy.HistoryTraversal,g.dynamicStaleAt,!1,y,o.segmentCacheMap,!1);return null===v?(0,l.completeHardNavigation)(e,d,"replace"):((0,a.spawnDynamicRequests)(v,d,h,a.FreshnessPolicy.HistoryTraversal,y,null,"replace",null,o.segmentCacheMap,void 0),(0,a.resetNavigationLockToPending)(),(0,l.completeTraverseNavigation)(e,d,c,v,h))}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},45794,(e,t,r)=>{let n;e.i(47167),Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"serverActionReducer",{enumerable:!0,get:function(){return j}});let a=e.r(32120),l=e.r(92245),u=e.r(21768),o=e.r(92838),i=e.r(35779),c=e.r(35326),s=e.r(88540),f=e.r(27801),d=e.r(51191),h=e.r(84356),p=e.r(50590),y=e.r(24063),g=e.r(87250),v=e.r(52817),_=e.r(39747),S=e.r(20896),m=e.r(77709),R=e.r(43369),P=e.r(32992),E=e.r(63416),b=e.r(4611),T=e.r(12085),O=e.r(96167),A=e.r(39146),w=e.r(57630),C=e.r(24988),M=e.r(87288),N=e.r(79027),I=c.createFromFetch;async function F(e,t,r){let s,d,h,y,g,{actionId:v,actionArgs:S}=r,m=(0,c.createTemporaryReferenceSet)(),b=(0,_.extractInfoFromServerReferenceId)(v),T=(0,_.omitUnusedArgs)(S,b),O=await (0,c.encodeReply)(T,{temporaryReferences:m}),w={Accept:u.RSC_CONTENT_TYPE_HEADER,[u.ACTION_HEADER]:v,[u.NEXT_ROUTER_STATE_TREE_HEADER]:(0,p.prepareFlightRouterStateForRequest)(e.tree)},C=(0,R.getDeploymentId)();C&&(w["x-deployment-id"]=C),t&&(w[u.NEXT_URL]=t);try{s=await (0,i.fetch)(e.canonicalUrl,{method:"POST",headers:w,body:O})}catch(e){throw e}if("1"===s.headers.get(u.NEXT_ACTION_NOT_FOUND_HEADER))throw new o.UnrecognizedActionError(`Server Action "${v}" was not found on the server. +Read more: https://nextjs.org/docs/messages/failed-to-find-server-action`);let N=s.headers.get("x-action-redirect"),[F,j]=N?.split(";")||[];switch(j){case"push":d="push";break;case"replace":d="replace";break;default:d=void 0}let D=!!s.headers.get(u.NEXT_IS_PRERENDER_HEADER),U=A.ActionDidNotRevalidate;try{let e=s.headers.get("x-action-revalidated");if(e){let t=JSON.parse(e);(t===A.ActionDidRevalidateStaticAndDynamic||t===A.ActionDidRevalidateDynamicOnly)&&(U=t)}}catch{}let k=F?(0,f.assignLocation)(F,new URL(e.canonicalUrl,window.location.href)):void 0,L=s.headers.get("content-type"),x=!!(L&&L.startsWith(u.RSC_CONTENT_TYPE_HEADER));if(!x&&!k)throw Error(s.status>=400&&"text/plain"===L?await s.text():"An unexpected response was received from the server.");let H=!1;if(x){let e=k?(0,M.processFetch)(s).then(({response:e})=>e):Promise.resolve(s),t=await I(e,{callServer:a.callServer,findSourceMapURL:l.findSourceMapURL,temporaryReferences:m,debugChannel:n&&n(w)});h=k?void 0:t.a,H=t.i;let r=s.headers.get(E.NEXT_NAV_DEPLOYMENT_ID_HEADER)??t.b;void 0!==r&&r!==(0,P.getNavigationBuildId)()||(void 0!==t.t?(y=t.t,g=t.q):void 0!==t.n&&(y=t.n))}else h=void 0,y=void 0,g=void 0;return{actionResult:h,actionFlightData:y,actionFlightDataRenderedSearch:g,redirectLocation:k,redirectType:d,revalidationKind:U,isPrerender:D,couldBeIntercepted:H}}function j(e,t){let{resolve:r,reject:n}=t,a=(e.previousNextUrl||e.nextUrl)&&(0,h.hasInterceptionRouteInCurrentTree)(e.tree)?e.previousNextUrl||e.nextUrl:null;return F(e,a,t).then(async({revalidationKind:l,actionResult:u,actionFlightData:o,actionFlightDataRenderedSearch:i,redirectLocation:c,redirectType:f,isPrerender:h,couldBeIntercepted:p})=>{l!==A.ActionDidNotRevalidate&&((0,N.invalidateBfCache)(),t.didRevalidate=!0,l===A.ActionDidRevalidateStaticAndDynamic&&(0,S.invalidateEntirePrefetchCache)(a,e.root),(0,m.startRevalidationCooldown)());let y=f||"push";if(void 0!==c)if((0,w.isExternalURL)(c))return n(D(c.href,y)),(0,b.completeHardNavigation)(e,c,y);else{let e=(0,d.createHrefFromUrl)(c,!1);n(D((0,v.hasBasePath)(e)?(0,g.removeBasePath)(e):e,y))}else r(u);if(void 0===c&&l===A.ActionDidNotRevalidate&&void 0===o)return e;if(void 0===o&&void 0!==c)return(0,b.completeHardNavigation)(e,c,y);if("string"==typeof o)return(0,b.completeHardNavigation)(e,new URL(o,location.origin),y);let _=new URL(e.canonicalUrl,location.origin),R=e.renderedSearch,P=void 0!==c?c:_,E=e.tree,M=s.ScrollBehavior.Default,I=l===A.ActionDidNotRevalidate?C.FreshnessPolicy.Default:C.FreshnessPolicy.RefreshAll;if(void 0!==o&&void 0!==i){let t=(0,d.createHrefFromUrl)(P),r=Date.now(),n=(0,T.createNavigationSeed)(r,E,o,null,!0,null,i,null,N.UnknownDynamicStaleTime);(0,O.discoverKnownRoute)(r,P.pathname,P.search,a,null,n.root,p,t,n.renderedSearch,h,!1);let l=(0,C.getCurrentNavigationLock)();return(0,b.navigateToKnownRoute)(r,e,P,t,n,_,R,e.root,I,a,M,y,l,S.segmentCacheMap,null,null,void 0)}return(0,b.navigate)(e,P,_,R,e.root,E,a,I,M,y)},t=>(n(t),e))}function D(e,t){let r=(0,y.getRedirectError)(e,t);return r.handled=!0,r}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},91668,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"serverPatchReducer",{enumerable:!0,get:function(){return c}});let n=e.r(51191),a=e.r(88540),l=e.r(4611),u=e.r(20896),o=e.r(69845),i=e.r(24988);function c(e,t){let r=t.mpa,c=new URL(t.url,location.origin),s=t.seed,f=t.navigateType;if(r||null===s)return(0,l.completeHardNavigation)(e,c,f);let d=new URL(e.canonicalUrl,location.origin),h=e.renderedSearch;if(t.previousTree!==e.tree)return(0,o.refreshReducer)(e,{type:a.ACTION_REFRESH});let p=(0,n.createHrefFromUrl)(c),y=t.nextUrl,g=a.ScrollBehavior.Default,v=(0,i.getCurrentNavigationLock)(),_=Date.now();return(0,l.navigateToKnownRoute)(_,e,c,p,s,d,h,e.root,t.freshnessPolicy,y,g,f,v,u.segmentCacheMap,null,null,void 0)}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},88540,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0});var n,a,l={ACTION_HMR_REFRESH:function(){return f},ACTION_NAVIGATE:function(){return i},ACTION_REFRESH:function(){return o},ACTION_RESTORE:function(){return c},ACTION_SERVER_ACTION:function(){return d},ACTION_SERVER_PATCH:function(){return s},PrefetchKind:function(){return h},ScrollBehavior:function(){return p}};for(var u in l)Object.defineProperty(r,u,{enumerable:!0,get:l[u]});let o="refresh",i="navigate",c="restore",s="server-patch",f="hmr-refresh",d="server-action";var h=((n={}).AUTO="auto",n.FULL="full",n),p=((a={})[a.Default=0]="Default",a[a.NoScroll=1]="NoScroll",a);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},4924,(e,t,r)=>{e.i(47167),Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"reducer",{enumerable:!0,get:function(){return c}});let n=e.r(88540),a=e.r(54069),l=e.r(91668),u=e.r(73790),o=e.r(69845),i=e.r(45794),c="u"{Object.defineProperty(r,"__esModule",{value:!0});var n={setCacheBustingSearchParam:function(){return i},setCacheBustingSearchParamWithHash:function(){return c}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let l=e.r(86051),u=e.r(21768);async function o(e){return"function"==typeof globalThis.crypto?.subtle?.digest?(0,l.computeCacheBustingSearchParam)(e[u.NEXT_ROUTER_PREFETCH_HEADER],e[u.NEXT_ROUTER_SEGMENT_PREFETCH_HEADER],e[u.NEXT_ROUTER_STATE_TREE_HEADER],e[u.NEXT_URL]):(0,l.computeLegacyCacheBustingSearchParam)(e[u.NEXT_ROUTER_PREFETCH_HEADER],e[u.NEXT_ROUTER_SEGMENT_PREFETCH_HEADER],e[u.NEXT_ROUTER_STATE_TREE_HEADER],e[u.NEXT_URL])}let i=async(e,t)=>{c(e,await o(t))},c=(e,t)=>{let r=e.search,n=(r.startsWith("?")?r.slice(1):r).split("&").filter(e=>e&&!e.startsWith(`${u.NEXT_RSC_UNION_QUERY}=`));t.length>0?n.push(`${u.NEXT_RSC_UNION_QUERY}=${t}`):n.push(`${u.NEXT_RSC_UNION_QUERY}`),e.search=n.length?`?${n.join("&")}`:""};("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},76138,(e,t,r)=>{e.i(47167),Object.defineProperty(r,"__esModule",{value:!0});var n={initializeRouterTransitionModules:function(){return u},startRouterTransition:function(){return o}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});e.r(13258),e.r(34727);let l=[];function u(e){l=e.filter(e=>null!=e)}function o(e,t,r,n){for(let r of l)try{let n;n=r,n.onRouterTransitionStart?.(e,t,null)}catch(e){console.error("An instrumentation-client router transition hook failed",e)}}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},79027,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0});var n={UnknownDynamicStaleTime:function(){return o},computeDynamicStaleAt:function(){return i},invalidateBfCache:function(){return f},readFromBFCache:function(){return p},readFromBFCacheDuringRegularNavigation:function(){return y},updateBFCacheEntryFromDynamicResponse:function(){return h},writeToBFCache:function(){return d}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let l=e.r(54069),u=e.r(511),o=-1;function i(e,t){return t!==o?e+1e3*t:e+l.DYNAMIC_STALETIME_MS}let c=(0,u.createCacheMap)(),s=0;function f(){"u">typeof window&&s++}function d(e,t,r,n){if("u"{Object.defineProperty(r,"__esModule",{value:!0});var n={createCacheKey:function(){return l},splitPathnameIntoParts:function(){return u}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});function l(e,t){let r=new URL(e);return{pathname:r.pathname,search:r.search,nextUrl:t}}function u(e){let t=[],r=0;for(let n=0;nr&&t.push(e.slice(r,n)),r=n+1);return r{Object.defineProperty(r,"__esModule",{value:!0});var n,a={EntryStatus:function(){return o},Fallback:function(){return i},createCacheMap:function(){return s},deleteFromCacheMap:function(){return y},deleteMapEntry:function(){return g},getFromCacheMap:function(){return f},isValueExpired:function(){return d},setInCacheMap:function(){return h},setSizeInCacheMap:function(){return v}};for(var l in a)Object.defineProperty(r,l,{enumerable:!0,get:a[l]});let u=e.r(73861);var o=((n={})[n.Empty=0]="Empty",n[n.Pending=1]="Pending",n[n.Fulfilled=2]="Fulfilled",n[n.Rejected=3]="Rejected",n);let i={},c={};function s(){return{parent:null,key:null,value:null,map:null,prev:null,next:null,size:0}}function f(e,t,r,n,a,l){let o=function e(t,r,n,a,l,u,o){let s,f;if(null!==a)s=a.value,f=a.parent;else if(l&&u!==c)s=c,f=null;else{if(null===n.value)return n;let e=n.value;return d(t,r,e)?(g(n),null):o&&2!==e.status?null:n}let h=n.map;if(null!==h){let n=h.get(s);if(void 0!==n){let a=e(t,r,n,f,l,s,o);if(null!==a)return a}let a=h.get(i);if(void 0!==a)return e(t,r,a,f,l,s,o)}return null}(e,t,r,n,a,0,l);return null===o||null===o.value?null:((0,u.lruPut)(o),o.value)}function d(e,t,r){return r.staleAt<=e||r.version{e.i(47167),Object.defineProperty(r,"__esModule",{value:!0});var n={EntryStatus:function(){return y.EntryStatus},MetadataOnlyRequestTree:function(){return N},attemptToFulfillDynamicSegmentFromBFCache:function(){return er},attemptToUpgradeSegmentFromBFCache:function(){return en},bufferPrefetchResponseBody:function(){return eO},canNewFetchStrategyProvideMoreContent:function(){return eA},convertFlightRouterStateToRouteTree:function(){return eh},convertRootFlightRouterStateToRouteTree:function(){return ed},convertRouteTreeToFlightRouterState:function(){return function e(t){let r={},n=t.slots;if(null!==n)for(let[t,a]of n)r[t]=e(a);let a=[t.segment,r,null,null];return 0!==t.prefetchHints&&(a[4]=t.prefetchHints),a}},createDetachedSegmentCacheEntry:function(){return ee},createMetadataRouteTree:function(){return eu},createRootRouteTree:function(){return C},deprecated_requestOptimisticRouteCacheEntry:function(){return Y},doesRouteStructureMatch:function(){return M},fetchRouteOnCacheMiss:function(){return ep},fetchSegmentPrefetchesUsingRuntimeRequest:function(){return eS},fetchSegmentPrefetchesUsingStaticRequest:function(){return ey},fulfillRouteCacheEntry:function(){return ei},getCurrentRouteCacheVersion:function(){return k},getCurrentSegmentCacheVersion:function(){return L},getHeadRequestKey:function(){return el},getStaleTimeMs:function(){return A},invalidateEntirePrefetchCache:function(){return x},invalidateRouteCacheEntries:function(){return H},invalidateSegmentCacheEntries:function(){return B},overwriteRevalidatingSegmentCacheEntry:function(){return Q},pingInvalidationListeners:function(){return V},readOrCreateRevalidatingSegmentEntry:function(){return z},readOrCreateRouteCacheEntry:function(){return G},readOrCreateSegmentCacheEntry:function(){return W},readRouteCacheEntry:function(){return $},readSegmentCacheEntryForNavigation:function(){return K},rebaseInactiveRouteTree:function(){return function e(t){let r=null;if(null!==t.slots)for(let[n,a]of(r=new Map,t.slots))r.set(n,e(a));return{requestKey:t.requestKey,segment:t.segment,varyPath:t.varyPath,shellVaryPath:t.shellVaryPath,refreshState:t.refreshState,data:null,slots:r,prefetchHints:t.prefetchHints}}},resolveStaleAt:function(){return ew},segmentCacheMap:function(){return F},spawnStaticStageCacheWrite:function(){return eC},stripIsPartialByte:function(){return eN},upgradeToPendingSegment:function(){return et},upsertSegmentEntry:function(){return Z},waitForSegmentCacheEntry:function(){return q},writeRouteIntoCache:function(){return ec},writeRuntimePrefetchStreamIntoCache:function(){return eM}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let l=e.r(22744),u=e.r(6372),o=e.r(74064),i=e.r(21768),c=e.r(87288);e.r(35779);let s=e.r(77709),f=e.r(56655),d=e.r(51191),h=e.r(77048),p=e.r(33906),y=e.r(511),g=e.r(67764),v=e.r(50590),_=e.r(54069),S=e.r(91949),m=e.r(9396),R=e.r(39470),P=e.r(79027),E=e.r(96167),b=e.r(12085),T=e.r(32992),O=e.r(63416);function A(e){return 1e3*Math.max(e,30)}function w(e){return Date.now()+1e4}function C(e,t){return{tree:e,head:t}}function M(e,t){return e.requestKey===t.requestKey&&(t.requestKey!==g.ROOT_SEGMENT_REQUEST_KEY||e.segment===t.segment)}let N=["",{},null,"metadata-only"],I=(0,y.createCacheMap)(),F=(0,y.createCacheMap)(),j=null,D=0,U=0;function k(){return D}function L(){return U}function x(e,t){D++,U++,(0,S.pingVisibleLinks)(e,t),V(e,t)}function H(e,t){D++,(0,S.pingVisibleLinks)(e,t),V(e,t)}function B(e,t){U++,(0,S.pingVisibleLinks)(e,t),V(e,t)}function V(e,t){if(null!==j){let r=j;for(let n of(j=null,r))(0,s.isPrefetchTaskDirty)(n,e,t)&&function(e){let t=e.onInvalidate;if(null!==t){e.onInvalidate=null;try{t()}catch(e){"function"==typeof reportError?reportError(e):console.error(e)}}}(n)}}function $(e,t){let r=(0,f.getRouteVaryPath)(t.pathname,t.search,t.nextUrl),n=(0,y.getFromCacheMap)(e,D,I,r,!1,!1);return null!==n?n:(0,E.matchKnownRoute)(e,t.pathname,t.search)}function K(e,t,r,n=!1){let a=(0,y.getFromCacheMap)(e,U,t,r,!1,!0);return null!==a?a:(0,y.getFromCacheMap)(e,U,t,r,!1,!1)}function q(e){let t=e.promise;return null===t&&(t=e.promise=(0,R.createPromiseWithResolvers)()),t.promise}function X(){return{canonicalUrl:null,status:y.EntryStatus.Empty,blockedTasks:null,root:null,couldBeIntercepted:!0,supportsPerSegmentPrefetching:!1,predictedFrom:null,renderedSearch:null,ref:null,size:0,staleAt:1/0,version:D}}function G(e,t,r){null!==t.onInvalidate&&(null===j?j=new Set([t]):j.add(t));let n=$(e,r);if(null!==n)return n;let a=X(),l=(0,f.getRouteVaryPath)(r.pathname,r.search,r.nextUrl);return(0,y.setInCacheMap)(I,l,a,!1),a}function Y(e,t,r){let n=t.search;if(""===n)return null;let a=new URL(t);a.search="";let l=$(e,(0,h.createCacheKey)(a.href,r));if(null===l||l.status!==y.EntryStatus.Fulfilled)return null;let u=new URL(l.canonicalUrl,t.origin),o=""!==u.search?u.search:n,i=""!==l.renderedSearch?l.renderedSearch:(0,p.normalizeRenderedSearch)(n),c=new URL(l.canonicalUrl,location.origin);c.search=o;let s=(0,d.createHrefFromUrl)(c),g=function e(t,r){let n=null,a=t.slots;if(null!==a)for(let[t,l]of(n=new Map,a))n.set(t,e(l,r));return{requestKey:t.requestKey,segment:t.segment,shellVaryPath:t.shellVaryPath,refreshState:t.refreshState,data:null,varyPath:(0,f.cloneVaryPathWithNewSearchParams)(t.varyPath,r),slots:n,prefetchHints:t.prefetchHints}}(l.root.tree,i),v=l.root.head,_=eu((0,f.cloneVaryPathWithNewSearchParams)(v.varyPath,i),v.prefetchHints,null);return{canonicalUrl:s,status:y.EntryStatus.Fulfilled,blockedTasks:null,root:C(g,_),couldBeIntercepted:l.couldBeIntercepted,supportsPerSegmentPrefetching:l.supportsPerSegmentPrefetching,predictedFrom:null,renderedSearch:i,ref:null,size:0,staleAt:l.staleAt,version:l.version}}function W(e,t,r,n){var a,l,u,o;let i,c,s=(0,y.getFromCacheMap)(e,U,t,n.varyPath,!1,!1);return null!==s?s:(a=e,l=t,u=r,o=n,i=(0,f.getSegmentVaryPathForRequest)(u,o),c=ee(a),(0,y.setInCacheMap)(l,i,c,!1),c)}function z(e,t,r,n){var a;let l=(a=n.varyPath,(0,y.getFromCacheMap)(e,U,t,a,!0,!1));if(null!==l)return l;let u=(0,f.getSegmentVaryPathForRequest)(r,n),o=ee(e);return(0,y.setInCacheMap)(t,u,o,!0),o}function Q(e,t,r,n){let a=(0,f.getSegmentVaryPathForRequest)(r,n),l=ee(e);return(0,y.setInCacheMap)(t,a,l,!0),l}function J(e,t){var r;return e.status!==y.EntryStatus.Empty&&(t.fetchStrategy!==e.fetchStrategy&&(r=e.fetchStrategy,!(rr?null:es(et(t,m.FetchStrategy.Full),a.rsc,r,!1,a.varyParams,!1,m.FetchStrategy.Full)}return null}function en(e,t,r){let n=r.varyPath,a=(0,P.readFromBFCache)(n);if(null!==a){let n=a.navigatedAt+_.STATIC_STALETIME_MS;if(e>n)return null;let l=es(et(ee(e),m.FetchStrategy.Full),a.rsc,n,!1,a.varyParams,!1,m.FetchStrategy.Full),u=Z(e,t,(0,f.getSegmentVaryPathForRequest)(m.FetchStrategy.Full,r),l,r.varyPath);if(null!==u&&u.status===y.EntryStatus.Fulfilled)return u}return null}function ea(e){let t=e.blockedTasks;if(null!==t){for(let e of t)(0,s.pingPrefetchTask)(e);e.blockedTasks=null}}function el(e){return e+g.HEAD_REQUEST_KEY}function eu(e,t,r){return{requestKey:e.value,segment:g.HEAD_REQUEST_KEY,shellVaryPath:(0,f.getShellSegmentVaryPath)(e),refreshState:null,data:r,varyPath:e,slots:null,prefetchHints:t&l.StaticAttemptHints}}function eo(e){let t=null,r=e.slots;if(null!==r)for(let[e,n]of r){let a=eo(n);a!==n&&null===t&&(t=new Map(r)),null!==t&&t.set(e,a)}if(null===e.data&&null===t)return e;let n=t??r;return{requestKey:e.requestKey,segment:e.segment,shellVaryPath:e.shellVaryPath,refreshState:e.refreshState,data:null,varyPath:e.varyPath,slots:n,prefetchHints:e.prefetchHints}}function ei(e,t,r,n,a,u,o){let i=r.tree;return t.status=y.EntryStatus.Fulfilled,t.root=C(eo(i),eo(r.head)),i.prefetchHints&l.PrefetchHint.InliningHintsStale?t.staleAt=-1:t.staleAt=e+_.STATIC_STALETIME_MS,t.couldBeIntercepted=n,t.canonicalUrl=a,t.renderedSearch=u,t.supportsPerSegmentPrefetching=o,ea(t),t}function ec(e,t,r,n,a,l,u,o,i){let c=ei(e,X(),a,l,u,o,i),s=(0,f.getFulfilledRouteVaryPath)(t,r,n,l);return(0,y.setInCacheMap)(I,s,c,!1),c}function es(e,t,r,n,a,l,u){return e.status=y.EntryStatus.Fulfilled,e.rsc=t,e.staleAt=r,e.isPartial=n,e.varyParams=a,e.isUpgradeableISRFallback=l,e.fetchStrategy=u,null!==e.promise&&(e.promise.resolve(e),e.promise=null),ea(e),e}function ef(e,t){e.status=y.EntryStatus.Rejected,e.staleAt=t,ea(e)}function ed(e,t,r){return eh(e,g.ROOT_SEGMENT_REQUEST_KEY,null,t,r)}function eh(e,t,r,n,a){let u=e[0],o=((e[4]??0)&l.PrefetchHint.IsRootLayoutOrAbove)!=0,i=e[2]??null,c=null!==i?{canonicalUrl:i[0],renderedSearch:i[1]}:null,s=null!==c?c.renderedSearch:n,d=(0,b.createRouteTreeNode)(u,o,t,r,s,c,a),h=(0,f.getPartialVaryPath)(d.varyPath),p=null,y=e[1];for(let e in y){let r=y[e],n=r[0],l=(0,g.createSegmentRequestKeyPart)(n),u=eh(r,(0,g.appendSegmentRequestKeyPart)(t,e,l),h,s,a);null===p&&(p=new Map),p.set(e,u)}return d.slots=p,d.prefetchHints=e[4]??0,d}async function ep(e,t){let r=t.pathname,n=t.search,a=t.nextUrl,l={[i.RSC_HEADER]:"1",[i.NEXT_ROUTER_PREFETCH_HEADER]:"1",[i.NEXT_ROUTER_SEGMENT_PREFETCH_HEADER]:"/_tree"};null!==a&&(l[i.NEXT_URL]=a);try{let t,u,o=new URL(r+n,location.origin);if(t=await eb(o,l),u=null!==t&&t.redirected?new URL(t.url):o,!t||!t.ok||!t.body)return ef(e,Date.now()+1e4),null;let s=(0,d.createHrefFromUrl)(u),h=t.headers.get("vary"),g=null!==h&&h.includes(i.NEXT_URL),v=(0,R.createPromiseWithResolvers)(),_=eT(t),S=await eO(t.body);v.resolve(),(0,y.setSizeInCacheMap)(e,S.byteLength);let m=await (0,c.decodeBufferedStage)(S,l);if((t.headers.get(O.NEXT_NAV_DEPLOYMENT_ID_HEADER)??m.b)!==(0,T.getNavigationBuildId)())return ef(e,Date.now()+1e4),null;let P=m.t;if(void 0===P||void 0!==m.n)return ef(e,Date.now()+1e4),null;let A=(0,p.getRenderedPathname)(t),w=(0,p.getRenderedSearch)(t),C={metadataVaryPath:null,treeDivergedFromBase:!1},M=(0,b.decodeTransportTreeIntoRouteTree)(P.t,null,null,!0,A,w,C),N=C.metadataVaryPath;if(null===N)return ef(e,Date.now()+1e4),null;if((0,E.discoverKnownRoute)(Date.now(),r,n,a,e,{tree:M,head:eu(N,M.prefetchHints,null)},g,s,w,_,!1),!g){let t=(0,f.getFulfilledRouteVaryPath)(r,n,a,g);(0,y.setInCacheMap)(I,t,e,!1)}return{value:null,closed:v.promise}}catch(t){return ef(e,w(t)),null}}async function ey(e,t,r,n,a,l){let u;try{u=await eg(e,t,r,n,a,l,!1)}catch(e){return em(a,w(e)),null}return null===u?(em(a,Date.now()+1e4),null):{value:null,closed:Promise.resolve()}}async function eg(e,t,r,n,a,l,u){let s,f,d=new URL(t.canonicalUrl,location.origin),h=r.nextUrl;s=n.segment===g.HEAD_REQUEST_KEY?g.HEAD_REQUEST_KEY:n.requestKey===g.ROOT_SEGMENT_REQUEST_KEY?"/_index":n.requestKey;let v={[i.RSC_HEADER]:"1",[i.NEXT_ROUTER_PREFETCH_HEADER]:"1",[i.NEXT_ROUTER_SEGMENT_PREFETCH_HEADER]:s};null!==h&&(v[i.NEXT_URL]=h);let S=await eb(d,v);if(!S||!S.ok||!eT(S)||!S.body)return null;let m=await eO(S.body),R=await (0,c.decodeBufferedStage)(m,v);if(void 0===R.t||(S.headers.get(O.NEXT_NAV_DEPLOYMENT_ID_HEADER)??R.b)!==(0,T.getNavigationBuildId)())return null;let P=!0===R.f;if(P){if(u)return!0;e.fallbackRetryStatus!==y.EntryStatus.Empty||e.isCanceled||(e.fallbackRetryStatus=y.EntryStatus.Pending,e_(e,t,r,n,a,l))}let E=void 0!==R.a?(0,o.readFulfilledValue)(R.a,0):0;if(null===E)f=R;else if(0===E)f=null;else try{f=await (0,c.decodeBufferedStage)(m.subarray(0,E),v)}catch{f=null}let b=(0,p.getRenderedPathname)(S),A=Date.now(),w=t.root.head.varyPath;return eR(A,l,R,f,null,null,b,t.renderedSearch,void 0,A+_.STATIC_STALETIME_MS,!0,w,a,m.byteLength,e.segmentCacheMap),P}function ev(e,t){if(void 0===t)return e+_.STATIC_STALETIME_MS;let r=(0,b.readFulfilledStaleTimeSeconds)(t);return null===r?e+_.STATIC_STALETIME_MS:e+A(r)}async function e_(e,t,r,n,a,l){for(let u=0;u<3;u++){let u;if(await new Promise(e=>setTimeout(e,2e3)),e.isCanceled)break;try{u=await eg(e,t,r,n,a,l,!0)}catch{break}if(e.isCanceled)break;if(null!==u&&!u){e.fallbackRetryStatus=y.EntryStatus.Fulfilled,(0,s.pingPrefetchTask)(e);return}}e.fallbackRetryStatus=y.EntryStatus.Rejected}async function eS(e,t,r,n,a){let l,u,o=e.key,s=new URL(t.canonicalUrl,location.origin),f=o.nextUrl;1===a.size&&a.has(t.root.head.requestKey)?(l=N,u=null):(l=n,u=t.predictedFrom);let d={[i.RSC_HEADER]:"1",[i.NEXT_ROUTER_STATE_TREE_HEADER]:(0,v.prepareFlightRouterStateForRequest)(l)};switch(null!==f&&(d[i.NEXT_URL]=f),r){case m.FetchStrategy.Full:break;case m.FetchStrategy.PPRRuntime:d[i.NEXT_ROUTER_PREFETCH_HEADER]="2";break;case m.FetchStrategy.RuntimeShell:d[i.NEXT_ROUTER_PREFETCH_HEADER]="3";break;case m.FetchStrategy.LoadingBoundary:d[i.NEXT_ROUTER_PREFETCH_HEADER]="1"}try{let n,o=await eb(s,d);if(!o||!o.ok||!o.body)return em(a,Date.now()+1e4),null;let i=(0,p.getRenderedSearch)(o);if(i!==t.renderedSearch)return em(a,Date.now()+1e4),null;let f=(0,R.createPromiseWithResolvers)(),v=null,S=null;if(r===m.FetchStrategy.Full){var h,g,_;let e,t,r=(h=o.body,g=f.resolve,_=function(e){if(null===v)return;let t=e/v.length;for(let e of v)(0,y.setSizeInCacheMap)(e,t)},e=0,t=h.getReader(),new ReadableStream({async pull(r){for(;;){let{done:n,value:a}=await t.read();if(!n){r.enqueue(a),_(e+=a.byteLength);continue}r.close(),g();return}}}));n=(0,c.createFromNextReadableStream)(r,d,{allowPartialStream:!0})}else{let e=await eO(o.body);f.resolve(),S=e.byteLength,n=(0,c.decodeBufferedStage)(e,d)}let[P,E]=await Promise.all([n,o.cacheData]),b=Date.now(),T=await ew(b,P.s,o),A=o.headers.get(O.NEXT_NAV_DEPLOYMENT_ID_HEADER)??P.b,w=null!==E?await (0,c.resolveShellStageResponse)(E,P,d):null,C=(r===m.FetchStrategy.PPRRuntime||r===m.FetchStrategy.RuntimeShell)&&(E?.isResponsePartial??!1);return v=eR(b,r,P,w,l,u,null,i,A,T,C,null,a,S,e.segmentCacheMap),{value:null,closed:f.promise}}catch(e){return em(a,w(e)),null}}function em(e,t){for(let r of e.values())r.status===y.EntryStatus.Pending&&(r.status=y.EntryStatus.Rejected,r.staleAt=t,null!==r.promise&&(r.promise.resolve(null),r.promise=null),ea(r))}function eR(e,t,r,n,a,l,u,o,i,c,s,f,d,h,p){let g;if(null===n||t===m.FetchStrategy.LoadingBoundary){if(t===m.FetchStrategy.StaticShell)return eP(e,m.FetchStrategy.PPR,r,a,l,u,o,i,c,s,f,null,null,p),null!==d&&em(d,e+1e4),null;g=eP(e,t,r,a,l,u,o,i,c,s,f,d,null,p)}else if(n===r){let n;switch(t){case m.FetchStrategy.StaticShell:n=m.FetchStrategy.PPR;break;case m.FetchStrategy.RuntimeShell:n=m.FetchStrategy.PPRRuntime;break;case m.FetchStrategy.PPR:case m.FetchStrategy.PPRRuntime:case m.FetchStrategy.Full:n=null}g=eP(e,t,r,a,l,u,o,i,c,s,f,d,n,p)}else{let h,y;switch(t){case m.FetchStrategy.StaticShell:case m.FetchStrategy.PPR:h=m.FetchStrategy.PPR,y=m.FetchStrategy.StaticShell;break;case m.FetchStrategy.RuntimeShell:case m.FetchStrategy.PPRRuntime:h=m.FetchStrategy.PPRRuntime,y=m.FetchStrategy.RuntimeShell;break;case m.FetchStrategy.Full:h=m.FetchStrategy.Full,y=m.FetchStrategy.StaticShell}let v=t===m.FetchStrategy.StaticShell||t===m.FetchStrategy.RuntimeShell,_=eP(e,h,r,a,l,u,o,i,c,s,f,v?null:d,null,p),S=eP(e,y,n,a,l,u,o,i,ev(e,n.s),!0,f,v?d:null,null,p);g=v?S:_}if(null!==h&&null!==g&&g.length>0){let e=h/g.length;for(let t of g)(0,y.setSizeInCacheMap)(t,e)}return g}function eP(e,t,r,n,a,u,i,c,s,f,d,h,p,y){if(c&&c!==(0,T.getNavigationBuildId)())return null!==h&&em(h,e+1e4),null;let g=r.t;if(void 0===g)return null!==h&&em(h,e+1e4),null;let v=(0,b.createNavigationSeed)(e,n,g,r.r??null,f,u,i,d,P.UnknownDynamicStaleTime),_=(v.root.tree.prefetchHints&l.PrefetchHint.SubtreeHasPartialPrefetching)!=0,S=null!==a&&v.treeDivergedFromBase;S&&(a.hasDynamicRewrite=!0);let R=!0===r.f,E=void 0!==r.u?(0,o.readFulfilledValue)(r.u,!1,!0):null,O=v.root.tree,w=[];!function e(t,r,n,a,l,u,o,i,c,s,f){let d=a.data;if(null!==d&&null!==d.rsc){let e=null!==d.staleTimeSeconds?t+A(d.staleTimeSeconds):l,h=eE(t,r,n,d.rsc,d.isPartial,e,d.varyParams,a,u,o,i,c,s);null!==h&&f.push(h)}let h=a.slots;if(null!==h)for(let a of h.values())e(t,r,n,a,l,u,o,i,c,s,f)}(e,y,t,O,s,h,p,R,_,E,w);let C=v.root.head,M=C.data;if(null!==M&&null!==M.rsc){let r=null!==M.staleTimeSeconds?e+A(M.staleTimeSeconds):s,n=eE(e,y,t===m.FetchStrategy.LoadingBoundary?m.FetchStrategy.Full:t,M.rsc,M.isPartial,r,M.varyParams,C,h,p,R,_,E);null!==n&&w.push(n)}return null!==h&&em(h,S?-1:e+1e4),w.length>0?w:null}function eE(e,t,r,n,a,l,o,i,c,s,d,h,p){let g,v,_;if(null===p)g=s??r;else if(p&&a)g=s??r;else{let e=s??r;g=h?e===m.FetchStrategy.StaticShell?m.FetchStrategy.RuntimeShell:e===m.FetchStrategy.PPR?m.FetchStrategy.PPRRuntime:e:e}let S=s??r,R=null,P=null;if(S!==m.FetchStrategy.Full&&null!==o){let e=(0,u.readVaryParams)(o);null!==e&&(S===m.FetchStrategy.RuntimeShell&&e.has(u.SEARCH_PARAMS_VARY_ID)?((e=new Set(e)).delete(u.SEARCH_PARAMS_VARY_ID),P=(0,u.createVaryParams)(e)):P=o,R=(0,f.getFulfilledSegmentVaryPath)(i.varyPath,e))}let E=null!==R?R:S!==m.FetchStrategy.Full?(0,f.getSegmentVaryPathForRequest)(S,i):null,b=null!==c?c.get(i.requestKey):void 0,T=void 0!==b&&b.status===y.EntryStatus.Pending;return(T?(v=es(b,n,l,a,P,d,g),_=E):(v=es(et(ee(e),r),n,l,a,P,d,g),_=null!==E?E:(0,f.getSegmentVaryPathForRequest)(r,i)),null===_||null!==Z(e,t,_,v,i.varyPath)||T)?v:null}async function eb(e,t){let r=await (0,c.createFetch)(e,t,"low",!1);if(!r.ok)return null;{let e=r.headers.get("content-type");if(!(e&&e.startsWith(i.RSC_CONTENT_TYPE_HEADER)))return null}return r}function eT(e){return"2"===e.headers.get(i.NEXT_DID_POSTPONE_HEADER)}async function eO(e,t){let r=e.getReader(),n=[],a=0;for(;;){let{done:e,value:l}=await r.read();if(e)break;if(void 0!==t&&a+l.byteLength>=t){let e=t-a;e>0&&(n.push(l.byteLength>e?l.subarray(0,e):l),a+=e),r.cancel();break}n.push(l),a+=l.byteLength}if(1===n.length)return n[0];if(!(n.length>1))return new Uint8Array(0);{let e=new Uint8Array(a),t=0;for(let r of n)e.set(r,t),t+=r.byteLength;return e}}function eA(e,t){return e{eP(e,m.FetchStrategy.PPR,t,a,null,null,l,o,n,r,null,null,null,u)}).catch(()=>{})}async function eM(e,t,r,n,a){let{stream:l,isPartial:u}=await eN(t),i=await eO(l),s=await (0,c.decodeBufferedStage)(i,void 0),f=null;if(void 0!==s.a){let e=(0,o.readFulfilledValue)(s.a,void 0);if(null===e)f=s;else if(void 0!==e)try{f=await (0,c.decodeBufferedStage)(i.subarray(0,e),void 0)}catch{f=null}}eR(e,m.FetchStrategy.PPRRuntime,s,f,r,null,null,n,s.b,ev(e,s.s),u,null,null,null,a)}async function eN(e){let t=e.getReader(),{done:r,value:n}=await t.read();if(r||!n||0===n.byteLength)return{stream:new ReadableStream({start:e=>e.close()}),isPartial:!1};let a=n[0],l=35===a||126===a,u=l?n.byteLength>1?n.subarray(1):null:n;return{isPartial:!!l&&126===a,stream:new ReadableStream({start(e){u&&e.enqueue(u)},async pull(e){let r=await t.read();r.done?e.close():e.enqueue(r.value)}})}}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},12085,(e,t,r)=>{e.i(47167),Object.defineProperty(r,"__esModule",{value:!0});var n={createNavigationSeed:function(){return g},createRouteTreeNode:function(){return v},decodeTransportTreeIntoRouteTree:function(){return _},readFulfilledIsPartial:function(){return R},readFulfilledStaleTimeSeconds:function(){return P}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let l=e.r(22744),u=e.r(74064),o=e.r(6372),i=e.r(67764),c=e.r(13258),s=e.r(12718),f=e.r(33906),d=e.r(77048),h=e.r(56655),p=e.r(20896),y=e.r(79027);function g(e,t,r,n,a,l,u,i,c){let f,d={metadataVaryPath:null,treeDivergedFromBase:!1},h=null;if(null!==r){f=_(r.t,t,n,a,l,u,d);let e=r.h;void 0!==e&&(h={rsc:e.r,isPartial:"boolean"==typeof e.p?e.p:R(e.p),varyParams:(0,o.decodeVaryParams)(e.v,n),staleTimeSeconds:void 0!==e.s?P(e.s):null})}else{if(null===t)throw new s.InvariantError("Cannot convert a server response with no transport data and no base tree.");f=(0,p.convertRootFlightRouterStateToRouteTree)(t,u,d)}if(null===i&&null===(i=d.metadataVaryPath))throw new s.InvariantError("Cannot key the head of a server response: its tree has no page segment.");return{root:(0,p.createRootRouteTree)(f,(0,p.createMetadataRouteTree)(i,f.prefetchHints,h)),renderedSearch:u,dynamicStaleAt:(0,y.computeDynamicStaleAt)(e,c),treeDivergedFromBase:d.treeDivergedFromBase}}function v(e,t,r,n,a,l,u){let o,i,s;if(Array.isArray(e)){let a=e[1],l=e[0];i=(0,h.appendLayoutVaryPath)(n,a,l,t),s=(0,h.finalizeVaryPath)(r,null,i),o=e}else i=n,r.endsWith(c.PAGE_SEGMENT_KEY)?(o=c.PAGE_SEGMENT_KEY,s=(0,h.finalizeVaryPath)(r,a,i),null===l&&null===u.metadataVaryPath&&(u.metadataVaryPath=(0,h.finalizeVaryPath)((0,p.getHeadRequestKey)(r),a,i))):(o=e,s=(0,h.finalizeVaryPath)(r,null,i));return{requestKey:r,segment:o,shellVaryPath:(0,h.getShellSegmentVaryPath)(s),refreshState:l,data:null,varyPath:s,slots:null,prefetchHints:0}}function _(e,t,r,n,a,u,s){let y=null!==a?(0,d.splitPathnameIntoParts)(a):null;return function e(t,r,n,a,u,s,d,y,g,_,m,E){let b=t.d,T=void 0!==b&&null===b.r,O=T?n:void 0;if(void 0!==a&&!E.treeDivergedFromBase){let e=t.s;if("string"!=typeof e&&null==e.k);else{let e=a[0];r===c.DEFAULT_SEGMENT_KEY||!function(e,t){if("string"==typeof e||"string"==typeof t)return e===t;let[r,n,a]=e,[l,u,o]=t;return r===l&&a===o&&n===u}(e,r)&&(E.treeDivergedFromBase=!0)}}let A=void 0!==O?O[4]??0:0,w=t.h??A,C=(w&l.PrefetchHint.IsRootLayoutOrAbove)!=0,M=void 0!==O?O[2]??null:null,N=null!==M?{canonicalUrl:M[0],renderedSearch:g}:null,I=null!==N?N.renderedSearch:g,F=v(r,C,d,y,I,N,E),j=(0,h.getPartialVaryPath)(F.varyPath),D=null,U=t.c,k=void 0!==O?O[1]:void 0;if(void 0!==U)for(let[t,r]of U){let n,l=void 0!==k?k[t]:void 0,o=S(r.s,_,m);if(void 0!==a&&!E.treeDivergedFromBase){let e=a[1][t];void 0===e?o!==c.DEFAULT_SEGMENT_KEY&&(E.treeDivergedFromBase=!0):(e[2]??null)!==null||(n=e)}let h="string"!=typeof o||(0,f.doesStaticSegmentAppearInURL)(o)?m+1:m,p=(0,i.appendSegmentRequestKeyPart)(d,t,(0,i.createSegmentRequestKeyPart)(o)),y=e(r,o,l,n,u,s,p,j,I,_,h,E);null===D&&(D=new Map),D.set(t,y)}if(void 0!==k)for(let e in k){if(void 0!==U&&U.has(e))continue;let t=k[e],r=(0,i.appendSegmentRequestKeyPart)(d,e,(0,i.createSegmentRequestKeyPart)(t[0])),n=(0,p.convertFlightRouterStateToRouteTree)(t,r,j,I,E);null===D&&(D=new Map),D.set(e,n)}if(T){let e=w&~l.SubtreePrefetchHints;if(null!==D)for(let t of D.values())e=(0,l.propagateSubtreeBits)(e,t.prefetchHints);w=e}return void 0!==b&&(F.data={rsc:b.r,isPartial:"boolean"==typeof b.p?s:R(b.p),varyParams:(0,o.decodeVaryParams)(b.v,u),staleTimeSeconds:void 0!==b.s?P(b.s):null}),F.slots=D,F.prefetchHints=w,F}(e,S(e.s,y,0),t??void 0,t??void 0,r,n,i.ROOT_SEGMENT_REQUEST_KEY,null,u,y,0,s)}function S(e,t,r){if("string"==typeof e)return e;let n=e.k;if(null!==n)return[e.n,n,e.t,e.s];if(null===t)throw new s.InvariantError("Cannot resolve a dynamic segment that has no param value: the response provides no rendered pathname to parse it from.");let a=(0,f.parseDynamicParamFromURLPart)(e.t,t,r);return[e.n,(0,f.getCacheKeyForDynamicParam)(a),e.t,e.s]}let m=Symbol();function R(e){return(0,u.readFulfilledValue)(e,m)===m}function P(e){let t,r=e[Symbol.asyncIterator]();for(;;){let e=(0,u.readFulfilledValue)(r.next(),void 0);if(void 0===e||e.done)break;t=e.value}return void 0===t||isNaN(t)?null:t}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},35779,(e,t,r)=>{function n(e,t){return fetch(e,t)}e.i(47167),Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"fetch",{enumerable:!0,get:function(){return n}}),e.r(90555),("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},73861,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0});var n={cleanup:function(){return h},deleteFromLru:function(){return f},lruPut:function(){return c},updateLruSize:function(){return s}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let l=e.r(511),u=e.r(77709),o=null,i=0;function c(e){if(o===e)return;let t=e.prev,r=e.next;if(null===r||null===t?(i+=e.size,d()):(t.next=r,r.prev=t),null===o)e.prev=e,e.next=e;else{let t=o.prev;e.prev=t,null!==t&&(t.next=e),e.next=o,o.prev=e}o=e}function s(e,t){let r=e.size;e.size=t,null!==e.next&&(i=i-r+t,d())}function f(e){let t=e.next,r=e.prev;null!==t&&null!==r&&(i-=e.size,e.next=null,e.prev=null,o===e?t===o?o=null:(o=t,r.next=t,t.prev=r):(r.next=t,t.prev=r))}function d(){i<=0x3200000||(0,u.pingPrefetchScheduler)()}function h(){if(!(i<=0x3200000))for(;i>0x2d00000&&null!==o;){let e=o.prev;null!==e&&(0,l.deleteMapEntry)(e)}}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},90555,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0});var n={beginLockedNavigation:function(){return d},beginNavigationLockPrefetch:function(){return u},getCurrentNavigationGate:function(){return h},getNavigationLockSegmentCacheMap:function(){return o},getPreLockFetch:function(){return l},isNavigationLocked:function(){return f},resetNavigationLockToPending:function(){return p},resolveNavigationLockPrefetch:function(){return i},shouldRestrictNavigationToShell:function(){return y},startListeningForInstantNavigationCookie:function(){return c},updateCapturedSPAToTree:function(){return s}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});function l(){return null}function u(){return null}function o(){return null}function i(e){}function c(){}function s(e,t){}function f(){return!1}function d(){return null}function h(){return null}function p(){}function y(e,t){return!1}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},96167,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0});var n={discoverKnownRoute:function(){return y},matchKnownRoute:function(){return _},resetKnownRoutes:function(){return S}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let l=e.r(22744),u=e.r(13258),o=e.r(20896),i=e.r(511),c=e.r(33906),s=e.r(77048),f=e.r(56655);function d(e,t){let r=t.pattern;return null===r?null:(0,i.isValueExpired)(e,(0,o.getCurrentRouteCacheVersion)(),r)?(t.pattern=null,null):r}function h(){return{staticChildren:null,dynamicChild:null,dynamicChildParamName:null,dynamicChildParamType:null,pattern:null,hasConflictingDynamicChildren:!1,hasDynamicRewrite:!1}}let p=h();function y(e,t,r,n,a,l,u,i,c,f,d){let h=l.tree,y=(0,s.splitPathnameIntoParts)(t);if(null!==a){let s=(0,o.fulfillRouteCacheEntry)(e,a,l,u,i,c,f);return v(p,h,y,0,s,e,t,r,n,l,u,i,c,f,d),s}return v(p,h,y,0,null,e,t,r,n,l,u,i,c,f,d)}function g(e,t,r,n,a,l,u,i,c,s){return null!==e?e:(0,o.writeRouteIntoCache)(t,r,n,a,l,u,i,c,s)}function v(e,t,r,n,a,l,u,i,s,f,p,y,_,S,m){let R,P=t.segment,E=n{e.i(47167),Object.defineProperty(r,"__esModule",{value:!0});var n={cancelPrefetchTask:function(){return m},isPrefetchTaskDirty:function(){return P},needsSpeculativePrefetch:function(){return H},pingPrefetchScheduler:function(){return b},pingPrefetchTask:function(){return w},reschedulePrefetchTask:function(){return R},schedulePrefetchTask:function(){return S},startRevalidationCooldown:function(){return _}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let l=e.r(56655),u=e.r(22744),o=e.r(20896),i=e.r(77048),c=e.r(9396),s=e.r(73861),f="function"==typeof queueMicrotask?queueMicrotask:e=>Promise.resolve().then(e).catch(e=>setTimeout(()=>{throw e})),d=[],h=0,p=0,y=!1,g=null,v=null;function _(){null!==v&&clearTimeout(v),v=setTimeout(()=>{v=null,b()},300)}function S(e,t,r,n,a,l){let u=o.segmentCacheMap,i={key:e,renderTreeAtTimeOfPrefetch:t,routeCacheVersion:(0,o.getCurrentRouteCacheVersion)(),segmentCacheVersion:(0,o.getCurrentSegmentCacheVersion)(),segmentCacheMap:u,priority:n,phase:2,hasBackgroundWork:!1,hasPendingResponses:!1,spawnedRuntimePrefetches:null,fetchStrategy:r,sortId:p++,isCanceled:!1,fallbackRetryStatus:o.EntryStatus.Empty,onInvalidate:a,_heapIndex:-1};return E(i),V(d,i),b(),i}function m(e){e.isCanceled=!0,function(e,t){let r=t._heapIndex;if(-1!==r&&(t._heapIndex=-1,0!==e.length)){let n=e.pop();n!==t&&(e[r]=n,n._heapIndex=r,G(e,n,r))}}(d,e)}function R(e,t,r,n){e.isCanceled=!1,e.phase=2,e.sortId=p++,e.priority=e===g?c.PrefetchPriority.Intent:n,e.renderTreeAtTimeOfPrefetch=t,e.fetchStrategy=r,E(e),-1!==e._heapIndex?q(d,e):V(d,e),b()}function P(e,t,r){return e.routeCacheVersion!==(0,o.getCurrentRouteCacheVersion)()||e.segmentCacheVersion!==(0,o.getCurrentSegmentCacheVersion)()||e.renderTreeAtTimeOfPrefetch!==r||e.key.nextUrl!==t}function E(e){e.priority===c.PrefetchPriority.Intent&&e!==g&&(null!==g&&g.priority!==c.PrefetchPriority.Background&&(g.priority=c.PrefetchPriority.Default,q(d,g)),g=e)}function b(){y||(y=!0,f(C))}function T(e){return null===v&&(e.priority===c.PrefetchPriority.Intent?h<12:h<4)}function O(e){return h++,e.then(e=>null===e?(A(),null):(e.closed.then(A),e.value))}function A(){h--,b()}function w(e){e.isCanceled||-1!==e._heapIndex||(V(d,e),b())}function C(){y=!1;let e=Date.now(),t=$(d);for(;null!==t&&T(t);){t.routeCacheVersion=(0,o.getCurrentRouteCacheVersion)(),t.segmentCacheVersion=(0,o.getCurrentSegmentCacheVersion)();let r=function(e,t){let r=t.key,n=(0,o.readOrCreateRouteCacheEntry)(e,t,r),a=function(e,t,r){switch(r.status){case o.EntryStatus.Empty:O((0,o.fetchRouteOnCacheMiss)(r,t.key)),r.staleAt=e+6e4,r.status=o.EntryStatus.Pending;case o.EntryStatus.Pending:{let e=r.blockedTasks;return null===e?r.blockedTasks=new Set([t]):e.add(t),1}case o.EntryStatus.Rejected:break;case o.EntryStatus.Fulfilled:{let n;if(2===t.phase)return 2;if(!T(t))return 0;let a=r.root.tree;switch(n=a.prefetchHints&u.PrefetchHint.SubtreeHasPartialPrefetching?c.FetchStrategy.PPR:t.fetchStrategy===c.FetchStrategy.PPR?r.supportsPerSegmentPrefetching?c.FetchStrategy.PPR:c.FetchStrategy.LoadingBoundary:t.fetchStrategy){case c.FetchStrategy.PPR:{let n=1===t.phase?c.FetchStrategy.StaticShell:c.FetchStrategy.PPR;if(n===c.FetchStrategy.PPR&&!H(t.fetchStrategy,r.root.tree.prefetchHints))return 2;let i=r.root.head;if(((r.root.tree.prefetchHints&u.PrefetchHint.HeadOutlined)!=0||M(n,r)&&!N(n,i))&&0===D(e,t,r,i,null,n)||0===function e(t,r,n,a,i,s,f){if(!(0,o.doesRouteStructureMatch)(a,i)||(0,l.compareParams)(a.varyPath,i.varyPath)!==l.ParamsChange.None)return D(t,r,n,i,f===c.FetchStrategy.StaticShell?null:s,f);let d=L(t,r,n,i,s,c.FetchStrategy.PPR,!0).bundle,h=i.slots;if(null!==h){let l=a.slots;for(let[a,o]of h){let i;if(!T(r))return 0;let s=null!==d&&o.prefetchHints&u.PrefetchHint.ParentInlinedIntoSelf?d:null;if(null!==l&&(i=l.get(a)),0===(void 0!==i?e(t,r,n,i,o,s,f):D(t,r,n,o,f===c.FetchStrategy.StaticShell?null:s,f)))return 0}}return 2}(e,t,r,t.renderTreeAtTimeOfPrefetch.tree,a,null,n))return 0;if(M(n,r)){let l=n===c.FetchStrategy.StaticShell?c.FetchStrategy.RuntimeShell:c.FetchStrategy.PPRRuntime,u=t.spawnedRuntimePrefetches;if(null!==u){let n=new Map;k(e,t,r,i,!1,n,l);let c=function e(t,r,n,a,l,u,o){if(l.has(a.requestKey))return k(t,r,n,a,!1,u,o);let i={},c=a.slots;if(null!==c)for(let[a,s]of c)i[a]=e(t,r,n,s,l,u,o);let s=[a.segment,i,null,null];return 0!==a.prefetchHints&&(s[4]=a.prefetchHints),s}(e,t,r,a,u,n,l);n.size>0&&O((0,o.fetchSegmentPrefetchesUsingRuntimeRequest)(t,r,l,c,n))}}return 2}case c.FetchStrategy.Full:case c.FetchStrategy.PPRRuntime:case c.FetchStrategy.LoadingBoundary:{if(1===t.phase)return 2;let i=new Map,s=r.root.head;k(e,t,r,s,!1,i,n===c.FetchStrategy.LoadingBoundary?c.FetchStrategy.Full:n);let f=function e(t,r,n,a,i,s,f){let d=a.slots,h=i.slots,p={};if(null!==h)for(let[a,i]of h){let h=d?.get(a);p[a]=function(t,r,n,a,i,s,f){if(void 0!==a&&(0,o.doesRouteStructureMatch)(a,i)&&(0,l.compareParams)(a.varyPath,i.varyPath)===l.ParamsChange.None)return e(t,r,n,a,i,s,f);switch(f){case c.FetchStrategy.LoadingBoundary:if((i.prefetchHints&(u.PrefetchHint.SegmentHasLoadingBoundary|u.PrefetchHint.SubtreeHasLoadingBoundary))!=0)return function e(t,r,n,a,l,i){let s=null===l?"inside-shared-layout":null,f=(0,o.readOrCreateSegmentCacheEntry)(t,r.segmentCacheMap,r.fetchStrategy,a);switch(f.status){case o.EntryStatus.Empty:{let e=(0,o.upgradeToPendingSegment)(f,c.FetchStrategy.LoadingBoundary);i.set(a.requestKey,e),U(r,e),"refetch"!==l&&(s=l="refetch");break}case o.EntryStatus.Fulfilled:if((a.prefetchHints&u.PrefetchHint.SegmentHasLoadingBoundary)!=0)return(0,o.convertRouteTreeToFlightRouterState)(a);break;case o.EntryStatus.Pending:U(r,f);case o.EntryStatus.Rejected:}let d={};if(null!==a.slots)for(let[u,o]of a.slots)d[u]=e(t,r,n,o,l,i);let h=[a.segment,d,null,s];return 0!==a.prefetchHints&&(h[4]=a.prefetchHints),h}(t,r,n,i,null,s);return(0,o.convertRouteTreeToFlightRouterState)(i);case c.FetchStrategy.PPRRuntime:case c.FetchStrategy.Full:return k(t,r,n,i,!1,s,f)}}(t,r,n,h,i,s,f)}let y=[i.segment,p,null,null];return 0!==i.prefetchHints&&(y[4]=i.prefetchHints),y}(e,t,r,t.renderTreeAtTimeOfPrefetch.tree,a,i,n);return i.size>0&&O((0,o.fetchSegmentPrefetchesUsingRuntimeRequest)(t,r,n,f,i)),2}}}}return 2}(e,t,n);if(0!==a&&""!==r.search){let n=new URL(r.pathname,location.origin),a=(0,i.createCacheKey)(n.href,r.nextUrl),l=(0,o.readOrCreateRouteCacheEntry)(e,t,a);switch(l.status){case o.EntryStatus.Empty:(t.priority===c.PrefetchPriority.Background||(t.hasBackgroundWork=!0,0))&&(l.status=o.EntryStatus.Pending,O((0,o.fetchRouteOnCacheMiss)(l,a)));case o.EntryStatus.Pending:case o.EntryStatus.Fulfilled:case o.EntryStatus.Rejected:}}return 2===a&&t.hasPendingResponses?1:a}(e,t),n=t.hasBackgroundWork;switch(t.hasBackgroundWork=!1,t.hasPendingResponses=!1,t.spawnedRuntimePrefetches=null,r){case 0:return;case 1:K(d),t=$(d);continue;case 2:if(2===t.phase){let r=(0,o.readRouteCacheEntry)(e,t.key),n=null!==r&&r.status===o.EntryStatus.Fulfilled&&(r.root.tree.prefetchHints&u.PrefetchHint.SubtreeHasPartialPrefetching)!=0;t.phase=+!!n,q(d,t)}else 1===t.phase?(t.phase=0,q(d,t)):n?(t.priority=c.PrefetchPriority.Background,q(d,t)):K(d);t=$(d);continue}}null===t&&0===h&&(0,s.cleanup)()}function M(e,t){return e===c.FetchStrategy.StaticShell||(t.root.tree.prefetchHints&u.PrefetchHint.SubtreeHasPartialPrefetching)!=0}function N(e,t){let{prefetchHints:r}=t;switch(e){case c.FetchStrategy.StaticShell:return(r&u.PrefetchHint.ShouldAttemptStaticShell)!=0;case c.FetchStrategy.PPR:return(r&u.PrefetchHint.ShouldAttemptStaticPrefetch)!=0;default:return!1}}function I(e,t){return(0,o.canNewFetchStrategyProvideMoreContent)(e.fetchStrategy,t===c.FetchStrategy.StaticShell?c.FetchStrategy.RuntimeShell:c.FetchStrategy.PPRRuntime)}function F(e,t,r,n,a){if(!((r.fetchStrategy===c.FetchStrategy.StaticShell||r.fetchStrategy===c.FetchStrategy.RuntimeShell)&&N(a,n)&&(0,o.canNewFetchStrategyProvideMoreContent)(r.fetchStrategy,a)))return!1;let l=(0,o.readOrCreateRevalidatingSegmentEntry)(e,t,a,n);return l.status===o.EntryStatus.Empty||l.status===o.EntryStatus.Pending}function j(e,t){null===e.spawnedRuntimePrefetches?e.spawnedRuntimePrefetches=new Set([t]):e.spawnedRuntimePrefetches.add(t)}function D(e,t,r,n,a,l){let o=function(e,t,r,n,a,l){if(l===c.FetchStrategy.PPR&&!H(t.fetchStrategy,r.root.tree.prefetchHints))return null;let o=M(l,r);if(o&&!N(l,n))return j(t,n.requestKey),null!==a&&function e(t,r,n,a,l,o){let i=L(t,r,n,a,l,o,!1).bundle;if(null!==i&&null!==a.slots){for(let l of a.slots.values())if(l.prefetchHints&u.PrefetchHint.ParentInlinedIntoSelf)return void e(t,r,n,l,i,o)}}(e,t,r,n,a,l),null;let i=L(e,t,r,n,a,l,!0);return o&&i.needsRuntimeRequest?(j(t,n.requestKey),null):i}(e,t,r,n,a,l);if(null===o)return 2;let i=o.bundle,s=n.slots;if(null!==s)for(let n of s.values()){if(!T(t))return 0;let a=null!==i&&n.prefetchHints&u.PrefetchHint.ParentInlinedIntoSelf?i:null;if(0===D(e,t,r,n,a,l))return 0}return 2}function U(e,t){e.hasPendingResponses=!0,null===t.blockedTasks?t.blockedTasks=new Set([e]):t.blockedTasks.add(e)}function k(e,t,r,n,a,l,u){let i=(0,o.readOrCreateSegmentCacheEntry)(e,t.segmentCacheMap,u,n),s=null;switch(i.status){case o.EntryStatus.Empty:if(u===c.FetchStrategy.Full&&null!==(0,o.attemptToFulfillDynamicSegmentFromBFCache)(e,i,n))break;s=(0,o.upgradeToPendingSegment)(i,u);break;case o.EntryStatus.Fulfilled:if(i.isPartial&&(0,o.canNewFetchStrategyProvideMoreContent)(i.fetchStrategy,u)){if(u===c.FetchStrategy.Full&&null!==(0,o.attemptToUpgradeSegmentFromBFCache)(e,t.segmentCacheMap,n))break;s=x(e,t,n,u)}break;case o.EntryStatus.Pending:case o.EntryStatus.Rejected:(0,o.canNewFetchStrategyProvideMoreContent)(i.fetchStrategy,u)&&(s=x(e,t,n,u)),i.status===o.EntryStatus.Pending&&U(t,i)}null!==s&&U(t,s);let f={};if(null!==n.slots)for(let[o,i]of n.slots)f[o]=k(e,t,r,i,a||null!==s,l,u);null!==s&&l.set(n.requestKey,s);let d=a||null===s?null:"refetch",h=[n.segment,f,null,d];return 0!==n.prefetchHints&&(h[4]=n.prefetchHints),h}function L(e,t,r,n,a,l,i){if(n.prefetchHints&u.StaticPrefetchDisabled)return{bundle:{tree:null,entry:null,parent:a},needsRuntimeRequest:!1};let s=(0,o.readOrCreateSegmentCacheEntry)(e,t.segmentCacheMap,l,n);if(n.prefetchHints&u.PrefetchHint.InlinedIntoChild)return s.status===o.EntryStatus.Pending&&U(t,s),{bundle:{tree:n,entry:s,parent:a},needsRuntimeRequest:s.status===o.EntryStatus.Fulfilled&&I(s,l)&&!F(e,t.segmentCacheMap,s,n,l)};let f=a;n.prefetchHints&u.PrefetchHint.HeadInlinedIntoSelf&&(f={tree:r.root.head,entry:(0,o.readOrCreateSegmentCacheEntry)(e,t.segmentCacheMap,l,r.root.head),parent:a});let d={tree:n,entry:s,parent:f};return{bundle:null,needsRuntimeRequest:function(e,t,r,n,a,l,u,i){let s=!1,f=null,d=l;for(;null!==d;){let n=d.entry,a=d.tree;if(null===n||null===a){d=d.parent;continue}switch(n.status){case o.EntryStatus.Empty:{let e=(0,o.upgradeToPendingSegment)(n,u);null===f&&(f=new Map),f.set(a.requestKey,e),U(t,e);break}case o.EntryStatus.Pending:if(i&&u===c.FetchStrategy.PPR&&(0,o.canNewFetchStrategyProvideMoreContent)(n.fetchStrategy,u)){let r=(0,o.readOrCreateRevalidatingSegmentEntry)(e,t.segmentCacheMap,u,a);if(r.status===o.EntryStatus.Empty){let e=(0,o.upgradeToPendingSegment)(r,u);null===f&&(f=new Map),f.set(a.requestKey,e),U(t,e)}}U(t,n);break;case o.EntryStatus.Rejected:if(i&&u===c.FetchStrategy.PPR&&(0,o.canNewFetchStrategyProvideMoreContent)(n.fetchStrategy,u)){let r=(0,o.readOrCreateRevalidatingSegmentEntry)(e,t.segmentCacheMap,u,a);if(r.status===o.EntryStatus.Empty){let e=(0,o.upgradeToPendingSegment)(r,u);null===f&&(f=new Map),f.set(a.requestKey,e),U(t,e)}}break;case o.EntryStatus.Fulfilled:{let l=!1;if(M(u,r)){let r=I(n,u),o=F(e,t.segmentCacheMap,n,a,u);r&&!o&&(s=!0,l=!0)}let d=u===c.FetchStrategy.PPR&&n.isUpgradeableISRFallback&&(t.fallbackRetryStatus===o.EntryStatus.Empty||t.fallbackRetryStatus===o.EntryStatus.Fulfilled);if(i&&!l&&(n.isPartial&&(0,o.canNewFetchStrategyProvideMoreContent)(n.fetchStrategy,u)||d)){let r=(0,o.readOrCreateRevalidatingSegmentEntry)(e,t.segmentCacheMap,u,a);if(r.status===o.EntryStatus.Empty){let e=(0,o.upgradeToPendingSegment)(r,u);null===f&&(f=new Map),f.set(a.requestKey,e),U(t,e)}else r.status===o.EntryStatus.Pending&&U(t,r)}}}d=d.parent}return null!==f&&O((0,o.fetchSegmentPrefetchesUsingStaticRequest)(t,r,n,a,f,u)),s}(e,t,r,t.key,n,d,l,i)}}function x(e,t,r,n){let a=(0,o.readOrCreateRevalidatingSegmentEntry)(e,t.segmentCacheMap,n,r);if(a.status===o.EntryStatus.Empty)return(0,o.upgradeToPendingSegment)(a,n);if((0,o.canNewFetchStrategyProvideMoreContent)(a.fetchStrategy,n)){let a=(0,o.overwriteRevalidatingSegmentCacheEntry)(e,t.segmentCacheMap,n,r);return(0,o.upgradeToPendingSegment)(a,n)}switch(a.status){case o.EntryStatus.Pending:return U(t,a),null;case o.EntryStatus.Fulfilled:case o.EntryStatus.Rejected:default:return null}}function H(e,t){return(t&u.PrefetchHint.SubtreeHasPartialPrefetching)==0||e===c.FetchStrategy.Full}function B(e,t){let r=t.priority-e.priority;if(0!==r)return r;let n=t.phase-e.phase;return 0!==n?n:t.sortId-e.sortId}function V(e,t){let r=e.length;e.push(t),t._heapIndex=r,X(e,t,r)}function $(e){return 0===e.length?null:e[0]}function K(e){if(0===e.length)return null;let t=e[0];t._heapIndex=-1;let r=e.pop();return r!==t&&(e[0]=r,r._heapIndex=0,G(e,r,0)),t}function q(e,t){let r=t._heapIndex;-1!==r&&(0===r?G(e,t,0):B(e[r-1>>>1],t)>0?X(e,t,r):G(e,t,r))}function X(e,t,r){let n=r;for(;n>0;){let r=n-1>>>1,a=e[r];if(!(B(a,t)>0))return;e[r]=t,t._heapIndex=r,e[n]=a,a._heapIndex=n,n=r}}function G(e,t,r){let n=r,a=e.length,l=a>>>1;for(;nB(l,t))uB(o,l)?(e[n]=o,o._heapIndex=n,e[u]=t,t._heapIndex=u,n=u):(e[n]=l,l._heapIndex=n,e[r]=t,t._heapIndex=r,n=r);else{if(!(uB(o,t)))return;e[n]=o,o._heapIndex=n,e[u]=t,t._heapIndex=u,n=u}}}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},9396,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0});var n,a,l,u={FetchStrategy:function(){return s},NavigationResultTag:function(){return i},PrefetchPriority:function(){return c}};for(var o in u)Object.defineProperty(r,o,{enumerable:!0,get:u[o]});var i=((n={})[n.MPA=0]="MPA",n[n.Success=1]="Success",n[n.NoOp=2]="NoOp",n[n.Async=3]="Async",n),c=((a={})[a.Intent=2]="Intent",a[a.Default=1]="Default",a[a.Background=0]="Background",a),s=((l={})[l.LoadingBoundary=0]="LoadingBoundary",l[l.StaticShell=1]="StaticShell",l[l.RuntimeShell=2]="RuntimeShell",l[l.PPR=3]="PPR",l[l.PPRRuntime=4]="PPRRuntime",l[l.Full=5]="Full",l);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},56655,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0});var n,a={ParamsChange:function(){return v},appendLayoutVaryPath:function(){return f},cloneVaryPathWithNewSearchParams:function(){return y},compareParams:function(){return _},didReadChangedParam:function(){return S},finalizeVaryPath:function(){return d},getFulfilledRouteVaryPath:function(){return s},getFulfilledSegmentVaryPath:function(){return function e(t,r){return{id:t.id,value:null===t.id||r.has(t.id)?t.value:o.Fallback,isRootParam:t.isRootParam,parent:null===t.parent?null:e(t.parent,r)}}},getPartialVaryPath:function(){return h},getRenderedSearchFromVaryPath:function(){return g},getRouteVaryPath:function(){return c},getSegmentVaryPathForRequest:function(){return p},getShellSegmentVaryPath:function(){return function e(t){return{id:t.id,value:null===t.id||!0===t.isRootParam?t.value:o.Fallback,isRootParam:t.isRootParam,parent:null===t.parent?null:e(t.parent)}}}};for(var l in a)Object.defineProperty(r,l,{enumerable:!0,get:a[l]});let u=e.r(9396),o=e.r(511),i=e.r(6372);function c(e,t,r){return{id:null,value:e,isRootParam:!1,parent:{id:i.SEARCH_PARAMS_VARY_ID,value:t,isRootParam:!1,parent:{id:null,value:r,isRootParam:!1,parent:null}}}}function s(e,t,r,n){return{id:null,value:e,isRootParam:!1,parent:{id:i.SEARCH_PARAMS_VARY_ID,value:t,isRootParam:!1,parent:{id:null,value:n?r:o.Fallback,isRootParam:!1,parent:null}}}}function f(e,t,r,n){return{id:r,value:t,isRootParam:n,parent:e}}function d(e,t,r){let n=r;return null!==t&&(n={id:i.SEARCH_PARAMS_VARY_ID,value:t,isRootParam:!1,parent:r}),{id:null,value:e,isRootParam:!1,parent:n}}function h(e){let t=e.parent;return null!==t&&t.id===i.SEARCH_PARAMS_VARY_ID?t.parent:t}function p(e,t){let r=t.varyPath;if(e===u.FetchStrategy.RuntimeShell||e===u.FetchStrategy.StaticShell)return t.shellVaryPath;let n=r.parent;return null!==n&&n.id===i.SEARCH_PARAMS_VARY_ID&&e!==u.FetchStrategy.Full&&e!==u.FetchStrategy.PPRRuntime?d(r.value,o.Fallback,h(r)):r}function y(e,t){let r=e.parent;return null===r||r.id!==i.SEARCH_PARAMS_VARY_ID?e:d(e.value,t,h(e))}function g(e){let t=e;for(;null!==t;){if(t.id===i.SEARCH_PARAMS_VARY_ID){let e=t.value;if("string"==typeof e)return e;break}t=t.parent}return null}var v=((n={})[n.None=0]="None",n[n.SearchParams=1]="SearchParams",n[n.PathParam=2]="PathParam",n);function _(e,t){let r=e,n=t,a=0;for(;null!==r&&null!==n;){if(r.value!==n.value){let e=r.id;if(null===e);else{if(e!==i.SEARCH_PARAMS_VARY_ID)return 2;a=1}}r=r.parent,n=n.parent}return a}function S(e,t,r){let n=e,a=t,l=null;for(;null!==n&&null!==a;){if(n.value!==a.value){let e=n.id;if(null===e);else if(null===l&&(null===r||null===(l=(0,i.readVaryParams)(r)))||l.has(e))return!0}n=n.parent,a=a.parent}return!1}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},70358,(e,t,r)=>{e.i(47167),Object.defineProperty(r,"__esModule",{value:!0});var n={hmrRefresh:function(){return R},navigate:function(){return y},push:function(){return g},refresh:function(){return m},replace:function(){return v},restore:function(){return S},traverse:function(){return _}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let l=e.r(71645),u=e.r(88540),o=e.r(41538),i=e.r(99781),c=e.r(91949),s=e.r(76138),f=e.r(5550),d=e.r(57630),h=e.r(48277);function p(){let e=(0,i.getCurrentAppRouterState)();if(null===e)throw Error("Internal Next.js error: Router action dispatched before initialization.");return e}function y(e,t,r,n,a,i){if((0,h.isJavaScriptURLString)(e))throw Error("Next.js has blocked a javascript: URL as a security precaution.");(0,l.startTransition)(()=>{if(a)for(let e of a)(0,l.addTransitionType)(e);let h=new URL((0,f.addBasePath)(e),location.href);(0,c.setLinkForCurrentNavigation)(n),(0,s.startRouterTransition)(e,t,p().tree,i),(0,o.dispatchAppRouterAction)({type:u.ACTION_NAVIGATE,url:h,isExternalUrl:(0,d.isExternalURL)(h),locationSearch:location.search,scrollBehavior:r,navigateType:t})})}function g(e,t){y(e,"push",t?.scroll===!1?u.ScrollBehavior.NoScroll:u.ScrollBehavior.Default,null,t?.transitionTypes,null)}function v(e,t){y(e,"replace",t?.scroll===!1?u.ScrollBehavior.NoScroll:u.ScrollBehavior.Default,null,t?.transitionTypes,null)}function _(e,t){(0,l.startTransition)(()=>{(0,s.startRouterTransition)(e,"traverse",p().tree,null),S(new URL(e),t)})}function S(e,t){(0,l.startTransition)(()=>{(0,o.dispatchAppRouterAction)({type:u.ACTION_RESTORE,url:e,historyState:t})})}function m(){(0,l.startTransition)(()=>{(0,o.dispatchAppRouterAction)({type:u.ACTION_REFRESH})})}function R(){throw Error("hmrRefresh can only be used in development mode. Please use refresh instead.")}e.r(96167),("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},92838,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0});var n={UnrecognizedActionError:function(){return l},unstable_isUnrecognizedActionError:function(){return u}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});class l extends Error{constructor(...e){super(...e),this.name="UnrecognizedActionError"}}function u(e){return!!(e&&"object"==typeof e&&e instanceof l)}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},41538,(e,t,r)=>{e.i(47167),Object.defineProperty(r,"__esModule",{value:!0});var n={dispatchAppRouterAction:function(){return c},dispatchGestureState:function(){return f},refreshOnInstantNavigationUnlock:function(){return i},useActionQueue:function(){return d}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let l=e.r(90809)._(e.r(71645)),u=e.r(64245);e.r(88540);let o=null;function i(){}function c(e){if(null===o)throw Error("Internal Next.js error: Router action dispatched before initialization.");o(e)}let s=null;function f(e){if(null===s)throw Error("Internal Next.js error: Router action dispatched before initialization.");s(e)}function d(e){let[t,r]=l.default.useState(e.state),[n,a]=(0,l.useOptimistic)(t);"u">typeof window&&(s=a),"u">typeof window&&(o=t=>e.dispatch(t,r));let i=(0,l.useMemo)(()=>n,[n]);return(0,u.isThenable)(i)?(0,l.use)(i):i}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},50590,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0});var n={createInitialRSCPayloadFromFallbackPrerender:function(){return o},getNextFlightSegmentPath:function(){return i},prepareFlightRouterStateForRequest:function(){return c}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let l=e.r(33906),u=e.r(51191);function o(e,t){let r=(0,l.getRenderedPathname)(e),n=(0,l.getRenderedSearch)(e),a=(0,u.createHrefFromUrl)(new URL(location.href)),o=t.t,i={c:a.split("/"),q:n,i:t.i,t:{t:function e(t,r,n){let a,u,o,i=t.s;if("string"==typeof i)a=i,u=(0,l.doesStaticSegmentAppearInURL)(i);else{let e=(0,l.parseDynamicParamFromURLPart)(i.t,r,n);a={n:i.n,t:i.t,k:(0,l.getCacheKeyForDynamicParam)(e),s:i.s},u=!0}let c=u?n+1:n,s=t.c;if(void 0!==s)for(let[t,n]of(o=new Map,s))o.set(t,e(n,r,c));let f={s:a,d:t.d};return void 0!==t.h&&(f.h=t.h),void 0!==o&&(f.c=o),f}(o.t,r.split("/").filter(e=>""!==e),0),h:o.h},m:t.m,G:t.G,S:t.S};return t.b&&(i.b=t.b),i}function i(e){return e.slice(2)}function c(e,t){return t?encodeURIComponent(JSON.stringify(e)):encodeURIComponent(JSON.stringify(function e(t){let[r,n,a,l,u]=t,o=function(e){if("string"==typeof e)return e;let[t,r,n]=e;return[t,r,n,null]}(r),i={};for(let[t,r]of Object.entries(n))i[t]=e(r);let c=[o,i];return l&&(c[2]=null,c[3]=l),void 0!==u&&(c[4]=u),c}(e)))}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},52817,(e,t,r)=>{e.i(47167),Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"hasBasePath",{enumerable:!0,get:function(){return a}});let n=e.r(59084);function a(e){return(0,n.pathHasPrefix)(e,"")}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},48277,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"isJavaScriptURLString",{enumerable:!0,get:function(){return a}});let n=/^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*:/i;function a(e){return n.test(""+e)}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},32992,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0});var n={getNavigationBuildId:function(){return o},setNavigationBuildId:function(){return u}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let l="";function u(e){l=e}function o(){return l}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},82823,(e,t,r)=>{e.i(47167),Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"normalizePathTrailingSlash",{enumerable:!0,get:function(){return l}});let n=e.r(38281),a=e.r(72463),l=e=>{if(47!==e.charCodeAt(0))return e;let{pathname:t,query:r,hash:l}=(0,a.parsePath)(e);return`${(0,n.removeTrailingSlash)(t)}${r}${l}`};("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},87250,(e,t,r)=>{function n(e){return e}e.i(47167),Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"removeBasePath",{enumerable:!0,get:function(){return n}}),e.r(52817),("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},33906,(e,t,r)=>{e.i(47167),Object.defineProperty(r,"__esModule",{value:!0});var n={canonicalizeURLPart:function(){return y},doesStaticSegmentAppearInURL:function(){return v},getCacheKeyForDynamicParam:function(){return _},getParamValueFromCacheKey:function(){return m},getPathnameFromRequestURL:function(){return p},getRenderedPathname:function(){return h},getRenderedSearch:function(){return d},normalizeRenderedSearch:function(){return f},parseDynamicParamFromURLPart:function(){return g},urlSearchParamsToParsedUrlQuery:function(){return R},urlToUrlWithoutFlightMarker:function(){return S}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let l=e.r(13258),u=e.r(67764),o=e.r(21768),i=e.r(52817);e.r(82823);let c=e.r(87250),s=e.r(98183);function f(e){let t=R(new URLSearchParams(e));return(0,s.getRenderedSearch)(t)}function d(e){let t=e.headers.get(o.NEXT_REWRITTEN_QUERY_HEADER);return null!==t?f(t):f(S(new URL(e.url)).search)}function h(e){let t=e.headers.get(o.NEXT_REWRITTEN_PATH_HEADER);if(null!==t)return t;let r=S(new URL(e.url)).pathname;return(0,i.hasBasePath)(r)?(0,c.removeBasePath)(r):r}function p(e){let t=e.pathname;return(0,i.hasBasePath)(t)?(0,c.removeBasePath)(t):t}function y(e){try{return encodeURIComponent(decodeURIComponent(e))}catch{return e}}function g(e,t,r){switch(e){case"c":return ry(e)):[];case"ci(..)(..)":case"ci(.)":case"ci(..)":case"ci(...)":{let n=e.length-2;return r0===t?y(e.slice(n)):y(e)):[]}case"oc":return ry(e)):null;case"d":if(r>=t.length)return"";return y(t[r]);case"di(..)(..)":case"di(.)":case"di(..)":case"di(...)":{let n=e.length-2;if(r>=t.length)return"";return y(t[r].slice(n))}default:return""}}function v(e){return!(e===u.ROOT_SEGMENT_REQUEST_KEY||e===l.PAGE_SEGMENT_KEY||"("===e[0]&&e.endsWith(")"))&&e!==l.DEFAULT_SEGMENT_KEY&&"/_not-found"!==e}function _(e){return"string"==typeof e?e:null===e?"":e.join("/")}function S(e){let t=new URL(e);return t.searchParams.delete(o.NEXT_RSC_UNION_QUERY),t}function m(e,t){return"c"===t||"oc"===t?e.split("/"):e}function R(e){let t={};for(let[r,n]of e.entries())void 0===t[r]?t[r]=n:Array.isArray(t[r])?t[r].push(n):t[r]=[t[r],n];return t}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},48658,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"callServer",{enumerable:!0,get:function(){return u}});let n=e.r(71645),a=e.r(88540),l=e.r(41538);async function u(e,t){return new Promise((r,u)=>{(0,n.startTransition)(()=>{(0,l.dispatchAppRouterAction)({type:a.ACTION_SERVER_ACTION,actionId:e,actionArgs:t,resolve:r,reject:u})})})}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},64893,(e,t,r)=>{var n=e.r(74080);function a(e){var t="https://react.dev/errors/"+e;if(1d||35===d||114===d||120===d?(p=d,d=3,s++):(p=0,d=3);continue;case 2:44===(_=c[s++])?d=4:y=y<<4|(96<_?_-87:_-48);continue;case 3:_=c.indexOf(10,s);break;case 4:(_=s+y)>c.length&&(_=-1)}var S=c.byteOffset+s;if(-1<_)y=new Uint8Array(c.buffer,S,_-s),98===p?ea(e,i,_===v?y:y.slice()):function(e,t,r,n,u,o){switch(n){case 65:ea(e,r,es(u,o).buffer);return;case 79:ef(e,r,u,o,Int8Array,1);return;case 111:ea(e,r,0===u.length?o:es(u,o));return;case 85:ef(e,r,u,o,Uint8ClampedArray,1);return;case 83:ef(e,r,u,o,Int16Array,2);return;case 115:ef(e,r,u,o,Uint16Array,2);return;case 76:ef(e,r,u,o,Int32Array,4);return;case 108:ef(e,r,u,o,Uint32Array,4);return;case 71:ef(e,r,u,o,Float32Array,4);return;case 103:ef(e,r,u,o,Float64Array,8);return;case 77:ef(e,r,u,o,BigInt64Array,8);return;case 109:ef(e,r,u,o,BigUint64Array,8);return;case 86:ef(e,r,u,o,DataView,1);return}t=e._stringDecoder;for(var i="",c=0;c{e.i(47167),t.exports=e.r(64893)},35326,(e,t,r)=>{t.exports=e.r(21413)},63416,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0});var n={ACTION_SUFFIX:function(){return g},APP_DIR_ALIAS:function(){return B},CACHE_ONE_YEAR_SECONDS:function(){return N},DOT_NEXT_ALIAS:function(){return x},ESLINT_DEFAULT_DIRS:function(){return eo},GSP_NO_RETURNED_VALUE:function(){return et},GSSP_COMPONENT_MEMBER_ERROR:function(){return ea},GSSP_NO_RETURNED_VALUE:function(){return er},HTML_CONTENT_TYPE_HEADER:function(){return u},INFINITE_CACHE:function(){return I},INSTRUMENTATION_HOOK_FILENAME:function(){return k},JSON_CONTENT_TYPE_HEADER:function(){return o},MATCHED_PATH_HEADER:function(){return s},MIDDLEWARE_FILENAME:function(){return F},MIDDLEWARE_LOCATION_REGEXP:function(){return j},NEXT_BODY_SUFFIX:function(){return S},NEXT_CACHE_IMPLICIT_TAG_ID:function(){return C},NEXT_CACHE_REVALIDATED_TAGS_HEADER:function(){return P},NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER:function(){return E},NEXT_CACHE_ROOT_PARAM_TAG_ID:function(){return M},NEXT_CACHE_SOFT_TAG_MAX_LENGTH:function(){return w},NEXT_CACHE_TAGS_HEADER:function(){return R},NEXT_CACHE_TAG_MAX_ITEMS:function(){return O},NEXT_CACHE_TAG_MAX_LENGTH:function(){return A},NEXT_DATA_SUFFIX:function(){return v},NEXT_INTERCEPTION_MARKER_PREFIX:function(){return c},NEXT_META_SUFFIX:function(){return _},NEXT_NAV_DEPLOYMENT_ID_HEADER:function(){return m},NEXT_QUERY_PARAM_PREFIX:function(){return i},NEXT_RESUME_HEADER:function(){return b},NEXT_RESUME_STATE_LENGTH_HEADER:function(){return T},NON_STANDARD_NODE_ENV:function(){return el},PAGES_DIR_ALIAS:function(){return L},PRERENDER_REVALIDATE_HEADER:function(){return f},PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER:function(){return d},PROXY_FILENAME:function(){return D},PROXY_LOCATION_REGEXP:function(){return U},PUBLIC_DIR_MIDDLEWARE_CONFLICT:function(){return W},ROOT_DIR_ALIAS:function(){return H},RSC_ACTION_CLIENT_WRAPPER_ALIAS:function(){return Y},RSC_ACTION_ENCRYPTION_ALIAS:function(){return G},RSC_ACTION_PROXY_ALIAS:function(){return K},RSC_ACTION_VALIDATE_ALIAS:function(){return $},RSC_CACHE_WRAPPER_ALIAS:function(){return q},RSC_DYNAMIC_IMPORT_WRAPPER_ALIAS:function(){return X},RSC_MOD_REF_PROXY_ALIAS:function(){return V},RSC_SEGMENTS_DIR_SUFFIX:function(){return h},RSC_SEGMENT_SUFFIX:function(){return p},RSC_SUFFIX:function(){return y},SERVER_PROPS_EXPORT_ERROR:function(){return ee},SERVER_PROPS_GET_INIT_PROPS_CONFLICT:function(){return Q},SERVER_PROPS_SSG_CONFLICT:function(){return J},SERVER_RUNTIME:function(){return ei},SSG_FALLBACK_EXPORT_ERROR:function(){return eu},SSG_GET_INITIAL_PROPS_CONFLICT:function(){return z},STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR:function(){return Z},TEXT_PLAIN_CONTENT_TYPE_HEADER:function(){return l},UNSTABLE_REVALIDATE_RENAME_ERROR:function(){return en},WEBPACK_LAYERS:function(){return ef},WEBPACK_RESOURCE_QUERIES:function(){return ed},WEB_SOCKET_MAX_RECONNECTIONS:function(){return ec}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let l="text/plain",u="text/html; charset=utf-8",o="application/json; charset=utf-8",i="nxtP",c="nxtI",s="x-matched-path",f="x-prerender-revalidate",d="x-prerender-revalidate-if-generated",h=".segments",p=".segment.rsc",y=".rsc",g=".action",v=".json",_=".meta",S=".body",m="x-nextjs-deployment-id",R="x-next-cache-tags",P="x-next-revalidated-tags",E="x-next-revalidate-tag-token",b="next-resume",T="x-next-resume-state-length",O=128,A=256,w=1024,C="_N_T_",M="_N_RP_",N=31536e3,I=0xfffffffe,F="middleware",j=`(?:src/)?${F}`,D="proxy",U=`(?:src/)?${D}`,k="instrumentation",L="private-next-pages",x="private-dot-next",H="private-next-root-dir",B="private-next-app-dir",V="private-next-rsc-mod-ref-proxy",$="private-next-rsc-action-validate",K="private-next-rsc-server-reference",q="private-next-rsc-cache-wrapper",X="private-next-rsc-track-dynamic-import",G="private-next-rsc-action-encryption",Y="private-next-rsc-action-client-wrapper",W="You can not have a '_next' folder inside of your public folder. This conflicts with the internal '/_next' route. https://nextjs.org/docs/messages/public-next-folder-conflict",z="You can not use getInitialProps with getStaticProps. To use SSG, please remove your getInitialProps",Q="You can not use getInitialProps with getServerSideProps. Please remove getInitialProps.",J="You can not use getStaticProps or getStaticPaths with getServerSideProps. To use SSG, please remove getServerSideProps",Z="can not have getInitialProps/getServerSideProps, https://nextjs.org/docs/messages/404-get-initial-props",ee="pages with `getServerSideProps` can not be exported. See more info here: https://nextjs.org/docs/messages/gssp-export",et="Your `getStaticProps` function did not return an object. Did you forget to add a `return`?",er="Your `getServerSideProps` function did not return an object. Did you forget to add a `return`?",en="The `unstable_revalidate` property is available for general use.\nPlease use `revalidate` instead.",ea="can not be attached to a page's component and must be exported from the page. See more info here: https://nextjs.org/docs/messages/gssp-component-member",el='You are using a non-standard "NODE_ENV" value in your environment. This creates inconsistencies in the project and is strongly advised against. Read more: https://nextjs.org/docs/messages/non-standard-node-env',eu="Pages with `fallback` enabled in `getStaticPaths` can not be exported. See more info here: https://nextjs.org/docs/messages/ssg-fallback-true-export",eo=["app","pages","components","lib","src"],ei={edge:"edge",experimentalEdge:"experimental-edge",nodejs:"nodejs"},ec=12,es={shared:"shared",reactServerComponents:"rsc",serverSideRendering:"ssr",actionBrowser:"action-browser",apiNode:"api-node",apiEdge:"api-edge",middleware:"middleware",instrument:"instrument",edgeAsset:"edge-asset",appPagesBrowser:"app-pages-browser",pagesDirBrowser:"pages-dir-browser",pagesDirEdge:"pages-dir-edge",pagesDirNode:"pages-dir-node"},ef={...es,GROUP:{builtinReact:[es.reactServerComponents,es.actionBrowser],serverOnly:[es.reactServerComponents,es.actionBrowser,es.instrument,es.middleware],neutralTarget:[es.apiNode,es.apiEdge],clientOnly:[es.serverSideRendering,es.appPagesBrowser],bundled:[es.reactServerComponents,es.actionBrowser,es.serverSideRendering,es.appPagesBrowser,es.shared,es.instrument,es.middleware],appPages:[es.reactServerComponents,es.serverSideRendering,es.appPagesBrowser,es.actionBrowser]}},ed={edgeSSREntry:"__next_edge_ssr_entry__",metadata:"__next_metadata__",metadataRoute:"__next_metadata_route__",metadataImageMeta:"__next_metadata_image_meta__"}},39146,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0});var n={ActionDidNotRevalidate:function(){return l},ActionDidRevalidateDynamicOnly:function(){return o},ActionDidRevalidateStaticAndDynamic:function(){return u}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let l=0,u=1,o=2},8372,(e,t,r)=>{e.i(47167),Object.defineProperty(r,"__esModule",{value:!0});var n={AppRouterContext:function(){return u},GlobalLayoutRouterContext:function(){return i},LayoutRouterContext:function(){return o},MissingSlotContext:function(){return s},TemplateContext:function(){return c}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let l=e.r(55682)._(e.r(71645)),u=l.default.createContext(null),o=l.default.createContext(null),i=l.default.createContext(null),c=l.default.createContext(null),s=l.default.createContext(new Set)},22744,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0});var n,a={PrefetchHint:function(){return u},StaticAttemptHints:function(){return i},StaticPrefetchDisabled:function(){return o},SubtreePrefetchHints:function(){return c},propagateSubtreeBits:function(){return s}};for(var l in a)Object.defineProperty(r,l,{enumerable:!0,get:a[l]});var u=((n={})[n.SubtreeHasPartialPrefetching=2]="SubtreeHasPartialPrefetching",n[n.SegmentHasLoadingBoundary=4]="SegmentHasLoadingBoundary",n[n.SubtreeHasLoadingBoundary=8]="SubtreeHasLoadingBoundary",n[n.IsRootLayoutOrAbove=16]="IsRootLayoutOrAbove",n[n.ParentInlinedIntoSelf=32]="ParentInlinedIntoSelf",n[n.InlinedIntoChild=64]="InlinedIntoChild",n[n.HeadInlinedIntoSelf=128]="HeadInlinedIntoSelf",n[n.HeadOutlined=256]="HeadOutlined",n[n.InliningHintsStale=512]="InliningHintsStale",n[n.PrefetchDisabled=1024]="PrefetchDisabled",n[n.SubtreeHasInstantFalse=8192]="SubtreeHasInstantFalse",n[n.ShouldAttemptStaticShell=16384]="ShouldAttemptStaticShell",n[n.ShouldAttemptStaticPrefetch=32768]="ShouldAttemptStaticPrefetch",n[n.IsClosedParam=65536]="IsClosedParam",n[n.SubtreeHasClosedParams=131072]="SubtreeHasClosedParams",n);let o=1024,i=49152,c=139274;function s(e,t){return 2&t&&(e|=2),12&t&&(e|=8),8192&t&&(e|=8192),196608&t&&(e|=131072),e}},19921,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0});var n={djb2Hash:function(){return l},hexHash:function(){return u}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});function l(e){let t=5381;for(let r=0;r>>0}function u(e){return l(e).toString(36).slice(0,5)}},44305,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0});var n={createLinkPrefetchPartialError:function(){return u},createUnrenderedSegmentError:function(){return l}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});function l(e,t){let r=`Route "${e}": Could not validate that a segment in your UI has instant navigation.`;if(t.length>0){let e=1===t.length?"Dropped segment":"Dropped segments";r+=` + +This segment was dropped from rendering. Issues that would prevent instant navigation will go undetected. + +${e}: +${t.map(e=>` ${e}`).join("\n")} + +Ways to fix this: + - [render] Render the dropped segment + - [ignore] Set \`export const instant = false\` to opt the dropped segment out of instant-navigation validation + +Learn more: https://nextjs.org/docs/messages/instant-unrendered-segment`}return Error(r)}function u(e){return Error(`Next.js encountered dynamic data during prefetching for "${e}". + +This will lead to slower, more expensive prefetches. + +Ways to fix this: + - [upgrade] Opt into Partial Prefetching by exporting \`const prefetch = 'partial'\` from the page or layout, or by setting \`partialPrefetching: true\` in next.config to opt the whole app in + - [disable] Remove \`prefetch={true}\` from the to use the default prefetch + - [ignore] Set \`export const instant = false\` to opt the route out of instant-navigation validation + +Learn more: https://nextjs.org/docs/messages/instant-link-prefetch-partial`)}},12718,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"InvariantError",{enumerable:!0,get:function(){return n}});class n extends Error{constructor(e,t){super(`Invariant: ${e.endsWith(".")?e:e+"."} This is a bug in Next.js.`,t),this.name="InvariantError"}}},64245,(e,t,r)=>{function n(e){return null!==e&&"object"==typeof e&&"then"in e&&"function"==typeof e.then}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"isThenable",{enumerable:!0,get:function(){return n}})},3372,(e,t,r)=>{function n(e){return e.startsWith("/")?e:`/${e}`}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"ensureLeadingSlash",{enumerable:!0,get:function(){return n}})},39470,(e,t,r)=>{function n(){let e,t,r=new Promise((r,n)=>{e=r,t=n});return{resolve:e,reject:t,promise:r}}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"createPromiseWithResolvers",{enumerable:!0,get:function(){return n}})},41858,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"addPathPrefix",{enumerable:!0,get:function(){return a}});let n=e.r(72463);function a(e,t){if(!e.startsWith("/")||!t)return e;let{pathname:r,query:a,hash:l}=(0,n.parsePath)(e);return`${t}${r}${a}${l}`}},74180,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0});var n={compareAppPaths:function(){return i},normalizeAppPath:function(){return o},normalizeRscURL:function(){return f},selectAppPageEntry:function(){return s}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let l=e.r(3372),u=e.r(13258);function o(e){return(0,l.ensureLeadingSlash)(e.split("/").reduce((e,t,r,n)=>!t||(0,u.isGroupSegment)(t)||"@"===t[0]||("page"===t||"route"===t)&&r===n.length-1?e:`${e}/${t}`,""))}function i(e,t){let r=e.includes("/@"),n=t.includes("/@");return r&&!n?-1:!r&&n?1:e.localeCompare(t)}function c(e){return o(e).replace(/%5F/g,"_")}function s(e,t,r=c){let n;for(let a of t)r(a)===e&&(void 0===n||0>i(n,a))&&(n=a);if(void 0===n)throw Error(`Invariant: no direct app page entry found for ${e}`);return n}function f(e){return e.replace(/\.rsc($|\?)/,"$1")}},86051,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0});var n={computeCacheBustingSearchParam:function(){return s},computeLegacyCacheBustingSearchParam:function(){return f}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let l=e.r(19921),u=new TextEncoder;function o(e){return void 0===e?"0":Array.isArray(e)?e.join(","):e}function i(e,t,r,n){return(void 0===e||"0"===e)&&void 0===t&&void 0===r&&void 0===n?null:[e??"0",o(t),o(r),o(n)].join(",")}async function c(e){var t=new Uint8Array(await globalThis.crypto.subtle.digest("SHA-256",u.encode(e))).subarray(0,12);let r="";for(let e=0;e{Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"HTML_LIMITED_BOT_UA_RE",{enumerable:!0,get:function(){return n}});let n=/[\w-]+-Google|Google-[\w-]+|Chrome-Lighthouse|Slurp|DuckDuckBot|baiduspider|yandex|sogou|bitlybot|tumblr|vkShare|quora link preview|redditbot|ia_archiver|Bingbot|BingPreview|applebot|facebookexternalhit|facebookcatalog|Twitterbot|LinkedInBot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|Yeti|googleweblight/i},91463,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0});var n={INTERCEPTION_ROUTE_MARKERS:function(){return u},extractInterceptionRouteInformation:function(){return d},findMissingCanonicalInterceptionRoutes:function(){return h},isInterceptionRouteAppPath:function(){return f}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let l=e.r(74180),u=["(..)(..)","(.)","(..)","(...)"];function o(e){let t=e.split("/").filter(Boolean),r=t.at(-1),n=void 0!==r&&r.startsWith("[[...")&&r.endsWith("]]"),a=void 0!==r&&r.startsWith("[...")&&r.endsWith("]"),l=n||a,u=l?t.slice(0,-1):t;return{prefix:u.map(e=>e.startsWith("[")&&e.endsWith("]")?null:e),minLength:u.length+(a&&!n?1:0),unbounded:l}}function i(e,t){return e.unbounded?t>=e.minLength:t===e.minLength}function c(e,t){return e.prefix.every((e,r)=>{if(null===e)return!0;let n=t.prefix[r];return null!=n&&e===n})}function s(e,t,r){return i(e,r)&&i(t,r)&&c(e,t)}function f(e){return void 0!==e.split("/").find(e=>u.find(t=>e.startsWith(t)))}function d(e){let t,r,n;for(let a of e.split("/"))if(r=u.find(e=>a.startsWith(e))){[t,n]=e.split(r,2);break}if(!t||!r||!n)throw Error(`Invalid interception route: ${e}. Must be in the format //(..|...|..)(..)/`);switch(t=(0,l.normalizeAppPath)(t),r){case"(.)":n="/"===t?`/${n}`:t+"/"+n;break;case"(..)":if("/"===t)throw Error(`Invalid interception route: ${e}. Cannot use (..) marker at the root level, use (.) instead.`);n=t.split("/").slice(0,-1).concat(n).join("/");break;case"(...)":n="/"+n;break;case"(..)(..)":let a=t.split("/");if(a.length<=2)throw Error(`Invalid interception route: ${e}. Cannot use (..)(..) marker at the root level or one level up.`);n=a.slice(0,-2).concat(n).join("/");break;default:throw Error("Invariant: unexpected marker")}return{interceptingRoute:t,interceptedRoute:n}}function h(e){let t=Object.keys(e).filter(e=>!f(e)).map(o);return Object.keys(e).filter(f).map(e=>({interceptionRoute:e,canonicalRoute:d(e).interceptedRoute})).filter(({canonicalRoute:e})=>!function(e,t){let r=o(e);if(!r.unbounded)return t.some(e=>s(e,r,r.minLength));let n=1/0;for(let e of t)e.unbounded&&c(e,r)&&(n=Math.min(n,Math.max(r.minLength,e.minLength)));if(1/0===n)return!1;for(let e=r.minLength;es(t,r,e)))return!1;return!0}(e,t)).sort((e,t)=>e.interceptionRoute.localeCompare(t.interceptionRoute))}},82604,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0});var n={HTML_LIMITED_BOT_UA_RE:function(){return l.HTML_LIMITED_BOT_UA_RE},HTML_LIMITED_BOT_UA_RE_STRING:function(){return o},getBotType:function(){return s},isBot:function(){return c}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let l=e.r(26935),u=/Googlebot(?!-)|Googlebot$/i,o=l.HTML_LIMITED_BOT_UA_RE.source;function i(e){return l.HTML_LIMITED_BOT_UA_RE.test(e)}function c(e){return u.test(e)||i(e)}function s(e){return u.test(e)?"dom":i(e)?"html":void 0}},72463,(e,t,r)=>{function n(e){let t=e.indexOf("#"),r=e.indexOf("?"),n=r>-1&&(t<0||r-1?{pathname:e.substring(0,n?r:t),query:n?e.substring(r,t>-1?t:void 0):"",hash:t>-1?e.slice(t):""}:{pathname:e,query:"",hash:""}}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"parsePath",{enumerable:!0,get:function(){return n}})},59084,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"pathHasPrefix",{enumerable:!0,get:function(){return a}});let n=e.r(72463);function a(e,t){if("string"!=typeof e)return!1;let{pathname:r}=(0,n.parsePath)(e);return r===t||r.startsWith(t+"/")}},98183,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0});var n={assign:function(){return c},getRenderedSearch:function(){return l},searchParamsToUrlQuery:function(){return u},urlQueryToSearchParams:function(){return i}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});function l(e){let t=[];for(let r in e){let n=e[r];if(null!=n)if(Array.isArray(n))for(let e of n)t.push(`${encodeURIComponent(r)}=${encodeURIComponent(String(e))}`);else t.push(`${encodeURIComponent(r)}=${encodeURIComponent(String(n))}`)}return 0===t.length?"":"?"+t.join("&")}function u(e){let t={};for(let[r,n]of e.entries()){let e=t[r];void 0===e?t[r]=n:Array.isArray(e)?e.push(n):t[r]=[e,n]}return t}function o(e){return"string"==typeof e?e:("number"!=typeof e||isNaN(e))&&"boolean"!=typeof e?"":String(e)}function i(e){let t=new URLSearchParams;for(let[r,n]of Object.entries(e))if(Array.isArray(n))for(let e of n)t.append(r,o(e));else t.set(r,o(n));return t}function c(e,...t){for(let r of t){for(let t of r.keys())e.delete(t);for(let[t,n]of r.entries())e.append(t,n)}return e}},38281,(e,t,r)=>{function n(e){return 47===e.charCodeAt(e.length-1)&&e.length>1?e.slice(0,-1):e}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"removeTrailingSlash",{enumerable:!0,get:function(){return n}})},74064,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0});var n={createSkippedSegmentData:function(){return u},readFulfilledValue:function(){return o},segmentToTransportSegment:function(){return c},transportNodeToFlightRouterState:function(){return function e(t,r){let n={},a=t.c;if(void 0!==a)for(let[t,l]of a)n[t]=e(l,r);let u=[s(t.s),n];return void 0!==t.h&&(u[4]=t.h),u[0]===l.PAGE_SEGMENT_KEY&&(u[5]=r),u}},transportSegmentToSegment:function(){return s}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let l=e.r(13258);function u(){return{r:null,p:!0,v:null}}function o(e,t,r=t){switch(e.then(i,i),e.status){case"fulfilled":return e.value;case"rejected":return r;default:return t}}let i=()=>{};function c(e){return"string"==typeof e?e:{n:e[0],t:e[2],k:e[1],s:e[3]}}function s(e){return"string"==typeof e?e:[e.n,e.k??"",e.t,e.s]}},67764,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0});var n={HEAD_REQUEST_KEY:function(){return u},ROOT_SEGMENT_REQUEST_KEY:function(){return l},appendSegmentRequestKeyPart:function(){return i},convertSegmentPathToStaticExportFilename:function(){return f},createSegmentRequestKeyPart:function(){return o}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let l="",u="/_head";function o(e){if("string"==typeof e)return"/_not-found"===e?"_not-found":s(e);let t=e[0];return"$"+e[2]+"$"+s(t)}function i(e,t,r){return e+"/"+("children"===t?r:`@${s(t)}/${r}`)}let c=/^[a-zA-Z0-9\-_@]+$/;function s(e){return c.test(e)?e:"!"+btoa(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}function f(e){return`__next${e.replace(/\//g,".")}.txt`}},6372,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0});var n={SEARCH_PARAMS_VARY_ID:function(){return u},createVaryParams:function(){return c},decodeVaryParams:function(){return i},readVaryParams:function(){return s}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let l=e.r(74064),u=0;function o(e,t){let r=e[Symbol.asyncIterator]();for(;;){let e=(0,l.readFulfilledValue)(r.next(),void 0);if(void 0===e||e.done)return;t.add(e.value)}}function i(e,t){if(null==e||null==t)return null;let r=new Set;return o(e,r),o(t,r),c(r)}function c(e){let t=Promise.resolve(e);return t.status="fulfilled",t.value=e,t}function s(e){return(0,l.readFulfilledValue)(e,null)}},13258,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0});var n={DEFAULT_SEGMENT_KEY:function(){return s},NOT_FOUND_SEGMENT_KEY:function(){return f},PAGE_SEGMENT_KEY:function(){return c},computeSelectedLayoutSegment:function(){return i},getSegmentValue:function(){return l},getSelectedLayoutSegmentPath:function(){return function e(t,r,n=!0,a=[]){let u;if(n)u=t[1][r];else{let e=t[1];u=e.children??Object.values(e)[0]}if(!u)return a;let o=l(u[0]);return o&&o!==c?(a.push(o),e(u,r,!1,a)):a}},isGroupSegment:function(){return u},isParallelRouteSegment:function(){return o}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});function l(e){return Array.isArray(e)?e[1]:e}function u(e){return"("===e[0]&&e.endsWith(")")}function o(e){return e.startsWith("@")&&"@children"!==e}function i(e,t){if(!e||0===e.length)return null;let r="children"===t?e[0]:e[e.length-1];return r===s?null:r}let c="__PAGE__",s="__DEFAULT__",f="/_not-found"},39747,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0});var n={SERVER_REFERENCE_ID_LENGTH:function(){return l},extractInfoFromServerReferenceId:function(){return o},mightBeServerReferenceId:function(){return u},omitUnusedArgs:function(){return i}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let l=42;function u(e){return e.length===l}function o(e){let t=parseInt(e.slice(0,2),16),r=t>>1&63,n=Array(6);for(let e=0;e<6;e++){let t=r>>5-e&1;n[e]=1===t}return{type:1==(t>>7&1)?"use-cache":"server-action",usedArgs:n,hasRestArgs:1==(1&t)}}function i(e,t){let r=Array(e.length),n=0;for(let a=0;a=6&&t.hasRestArgs)&&(r[a]=e[a],n=a+1);return r.length=n,r}}])})(); \ No newline at end of file diff --git a/e-commerce/.next/static/chunks/2bzlqb104tejm.js b/e-commerce/.next/static/chunks/2bzlqb104tejm.js new file mode 100644 index 0000000000000000000000000000000000000000..57e9b70225d370be1a286234c2dbbe28ff601958 --- /dev/null +++ b/e-commerce/.next/static/chunks/2bzlqb104tejm.js @@ -0,0 +1 @@ +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,[55682,(e,t,r)=>{r._=function(e){return e&&e.__esModule?e:{default:e}}},90809,(e,t,r)=>{function n(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(n=function(e){return e?r:t})(e)}r._=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=n(t);if(r&&r.has(e))return r.get(e);var o={__proto__:null},u=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if("default"!==i&&Object.prototype.hasOwnProperty.call(e,i)){var a=u?Object.getOwnPropertyDescriptor(e,i):null;a&&(a.get||a.set)?Object.defineProperty(o,i,a):o[i]=e[i]}return o.default=e,r&&r.set(e,o),o}},47167,(e,t,r)=>{var n,o;t.exports=(null==(n=e.g.process)?void 0:n.env)&&"object"==typeof(null==(o=e.g.process)?void 0:o.env)?e.g.process:e.r(35451)},72383,(e,t,r)=>{e.i(47167),Object.defineProperty(r,"__esModule",{value:!0});var n={ErrorBoundary:function(){return _},ErrorBoundaryHandler:function(){return y}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(90809),i=e.r(43476),a=u._(e.r(71645)),l=e.r(90373),c=e.r(65713);e.r(78377);let f=e.r(12354),s=e.r(82604),d=e.r(8372),p="u">typeof window&&(0,s.isBot)(window.navigator.userAgent);class y extends a.default.Component{static{this.contextType=d.AppRouterContext}constructor(e){super(e),this.reset=()=>{this.setState({error:null})},this.retry=()=>{(0,a.startTransition)(()=>{this.context?.refresh(),this.reset()})},this.state={error:null,previousPathname:this.props.pathname}}static getDerivedStateFromError(e){if((0,c.isNextRouterError)(e))throw e;return{error:{thrownValue:e}}}static getDerivedStateFromProps(e,t){let{error:r}=t;return e.pathname!==t.previousPathname&&t.error?{error:null,previousPathname:e.pathname}:{error:t.error,previousPathname:e.pathname}}render(){if(this.state.error&&!p){let e=this.state.error.thrownValue;return(0,f.handleISRError)({error:e}),(0,i.jsxs)(i.Fragment,{children:[this.props.errorStyles,this.props.errorScripts,(0,i.jsx)(this.props.errorComponent,{error:e,reset:this.reset,retry:this.retry})]})}return this.props.children}}function _({errorComponent:e,errorStyles:t,errorScripts:r,children:n}){let o=(0,l.useUntrackedPathname)();return e?(0,i.jsx)(y,{pathname:o,errorComponent:e,errorStyles:t,errorScripts:r,children:n}):(0,i.jsx)(i.Fragment,{children:n})}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},79854,(e,t,r)=>{function n(){throw Error("`forbidden()` is experimental and only allowed to be enabled when `experimental.authInterrupts` is enabled.")}e.i(47167),Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"forbidden",{enumerable:!0,get:function(){return n}}),e.r(54394).HTTP_ERROR_FALLBACK_ERROR_CODE,("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},12354,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"handleISRError",{enumerable:!0,get:function(){return o}});let n=e.r(1425);function o({error:e}){if(!n.workUnitAsyncStorage)return;let t=n.workUnitAsyncStorage.getStore();switch(t?.type){case"prerender":case"prerender-client":case"prerender-legacy":throw e&&console.error(e),e;case"request":case"prerender-runtime":case"validation-client":case"cache":case"private-cache":case"unstable-cache":case"build-time-generator":case void 0:return}}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},54394,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0});var n={HTTPAccessErrorStatus:function(){return u},HTTP_ERROR_FALLBACK_ERROR_CODE:function(){return a},getAccessFallbackErrorTypeByStatus:function(){return f},getAccessFallbackHTTPStatus:function(){return c},isHTTPAccessFallbackError:function(){return l}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u={NOT_FOUND:404,FORBIDDEN:403,UNAUTHORIZED:401},i=new Set(Object.values(u)),a="NEXT_HTTP_ERROR_FALLBACK";function l(e){if("object"!=typeof e||null===e||!("digest"in e)||"string"!=typeof e.digest)return!1;let[t,r]=e.digest.split(";");return t===a&&i.has(Number(r))}function c(e){return Number(e.digest.split(";")[1])}function f(e){switch(e){case 401:return"unauthorized";case 403:return"forbidden";case 404:return"not-found";default:return}}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},65713,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"isNextRouterError",{enumerable:!0,get:function(){return u}});let n=e.r(54394),o=e.r(68391);function u(e){return(0,o.isRedirectError)(e)||(0,n.isHTTPAccessFallbackError)(e)}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},78377,(e,t,r)=>{e.i(47167),Object.defineProperty(r,"__esModule",{value:!0});var n={handleHardNavError:function(){return i},useNavFailureHandler:function(){return a}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});e.r(71645);let u=e.r(51191);function i(e){return"u">typeof window&&!!window.next.__pendingUrl&&(0,u.createHrefFromUrl)(new URL(window.location.href))!==(0,u.createHrefFromUrl)(window.next.__pendingUrl)&&(console.error("Error occurred during navigation, falling back to hard navigation",e),window.location.href=window.next.__pendingUrl.toString(),!0)}function a(){}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},14502,(e,t,r)=>{let n,o;Object.defineProperty(r,"__esModule",{value:!0});var u={useDynamicRouteParams:function(){return n},useDynamicSearchParams:function(){return o}};for(var i in u)Object.defineProperty(r,i,{enumerable:!0,get:u[i]});("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},90373,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"useUntrackedPathname",{enumerable:!0,get:function(){return i}});let n=e.r(71645),o=e.r(61994),u=e.r(1425);function i(){return!function(){if("u"0}}return!1}()?(0,n.useContext)(o.PathnameContext):null}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},76562,(e,t,r)=>{e.i(47167),Object.defineProperty(r,"__esModule",{value:!0});var n={ReadonlyURLSearchParams:function(){return a.ReadonlyURLSearchParams},RedirectType:function(){return d.RedirectType},ServerInsertedHTMLContext:function(){return f.ServerInsertedHTMLContext},forbidden:function(){return d.forbidden},notFound:function(){return d.notFound},permanentRedirect:function(){return d.permanentRedirect},redirect:function(){return d.redirect},unauthorized:function(){return d.unauthorized},unstable_isUnrecognizedActionError:function(){return s.unstable_isUnrecognizedActionError},unstable_rethrow:function(){return d.unstable_rethrow},useParams:function(){return m},usePathname:function(){return b},useRouter:function(){return v},useSearchParams:function(){return h},useSelectedLayoutSegment:function(){return O},useSelectedLayoutSegments:function(){return g},useServerInsertedHTML:function(){return f.useServerInsertedHTML}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(90809)._(e.r(71645)),i=e.r(8372),a=e.r(61994),l=e.r(13258),c=e.r(14502),f=e.r(13957),s=e.r(92838),d=e.r(92805),{instrumentParamsForClientValidation:p,instrumentSearchParamsForClientValidation:y,expectCompleteParamsInClientValidation:_}={};function h(){c.useDynamicSearchParams?.("useSearchParams()");let e=(0,u.useContext)(a.SearchParamsContext);return(0,u.useMemo)(()=>e?new a.ReadonlyURLSearchParams(e):null,[e])}function b(){return c.useDynamicRouteParams?.("usePathname()"),(0,u.useContext)(a.PathnameContext)}function v(){let e=(0,u.useContext)(i.AppRouterContext);if(null===e)throw Error("invariant expected app router to be mounted");let t=(0,u.useContext)(i.LayoutRouterContext),r=t?.parentRenderTree.data.bfcacheId??0;return(0,u.useMemo)(()=>({back:e.back,forward:e.forward,refresh:e.refresh,hmrRefresh:e.hmrRefresh,push:e.push,replace:e.replace,prefetch:e.prefetch,experimental_gesturePush:e.experimental_gesturePush,bfcacheId:"_b_"+r+"_"}),[e,r])}function m(){return c.useDynamicRouteParams?.("useParams()"),(0,u.useContext)(a.PathParamsContext)}function g(e="children"){c.useDynamicRouteParams?.("useSelectedLayoutSegments()");let t=(0,u.useContext)(i.LayoutRouterContext);return t?(0,l.getSelectedLayoutSegmentPath)(t.parentTree,e):null}function O(e="children"){c.useDynamicRouteParams?.("useSelectedLayoutSegment()"),(0,u.useContext)(a.NavigationPromisesContext);let t=g(e);return(0,l.computeSelectedLayoutSegment)(t,e)}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},92805,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0});var n={ReadonlyURLSearchParams:function(){return u.ReadonlyURLSearchParams},RedirectType:function(){return d},forbidden:function(){return l.forbidden},notFound:function(){return a.notFound},permanentRedirect:function(){return i.permanentRedirect},redirect:function(){return i.redirect},unauthorized:function(){return c.unauthorized},unstable_isUnrecognizedActionError:function(){return s},unstable_rethrow:function(){return f.unstable_rethrow}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(3680),i=e.r(24063),a=e.r(22783),l=e.r(79854),c=e.r(22683),f=e.r(15507);function s(){throw Error("`unstable_isUnrecognizedActionError` can only be used on the client.")}let d={push:"push",replace:"replace"};("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},22783,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"notFound",{enumerable:!0,get:function(){return u}});let n=e.r(54394),o=`${n.HTTP_ERROR_FALLBACK_ERROR_CODE};404`;function u(){let e=Error(o);throw e.digest=o,e}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},3680,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"ReadonlyURLSearchParams",{enumerable:!0,get:function(){return o}});class n extends Error{constructor(){super("Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams")}}class o extends URLSearchParams{append(){throw new n}delete(){throw new n}set(){throw new n}sort(){throw new n}}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},58442,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0});var n={RedirectBoundary:function(){return p},RedirectErrorBoundary:function(){return d}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(90809),i=e.r(43476),a=u._(e.r(71645)),l=e.r(76562),c=e.r(24063),f=e.r(68391);function s({redirect:e,reset:t,redirectType:r}){let n=(0,l.useRouter)();return(0,a.useEffect)(()=>{a.default.startTransition(()=>{"push"===r?n.push(e,{}):n.replace(e,{}),t()})},[e,r,t,n]),null}class d extends a.default.Component{constructor(e){super(e),this.state={redirect:null,redirectType:null}}static getDerivedStateFromError(e){if((0,f.isRedirectError)(e)){let t=(0,c.getURLFromRedirectError)(e),r=(0,c.getRedirectTypeFromError)(e);return"handled"in e?{redirect:null,redirectType:null}:{redirect:t,redirectType:r}}throw e}render(){let{redirect:e,redirectType:t}=this.state;return null!==e&&null!==t?(0,i.jsx)(s,{redirect:e,redirectType:t,reset:()=>this.setState({redirect:null})}):this.props.children}}function p({children:e}){let t=(0,l.useRouter)();return(0,i.jsx)(d,{router:t,children:e})}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},70725,(e,t,r)=>{function n(e){return Array.isArray(e)?`${e[0]}|${e[1]}|${e[2]}`:e}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"createRouterCacheKey",{enumerable:!0,get:function(){return n}}),("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},27828,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0});var n={createHeadKey:function(){return i},createSegmentKey:function(){return u.createRouterCacheKey}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(70725);function i(e){let t=[e.value],r=e.parent;for(;null!==r;){let e=r.value;"string"==typeof e&&t.push(e),r=r.parent}return JSON.stringify(t)}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},1425,(e,t,r)=>{let n,o,u;Object.defineProperty(r,"__esModule",{value:!0});var i={actionAsyncStorage:function(){return n},workAsyncStorage:function(){return o},workUnitAsyncStorage:function(){return u}};for(var a in i)Object.defineProperty(r,a,{enumerable:!0,get:i[a]});("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},22683,(e,t,r)=>{function n(){throw Error("`unauthorized()` is experimental and only allowed to be used when `experimental.authInterrupts` is enabled.")}e.i(47167),Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"unauthorized",{enumerable:!0,get:function(){return n}}),e.r(54394).HTTP_ERROR_FALLBACK_ERROR_CODE,("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},1244,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"unresolvedThenable",{enumerable:!0,get:function(){return n}});let n={then:()=>{}};("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},15507,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"unstable_rethrow",{enumerable:!0,get:function(){return function e(t){if((0,o.isNextRouterError)(t)||(0,n.isBailoutToCSRError)(t))throw t;t instanceof Error&&"cause"in t&&e(t.cause)}}});let n=e.r(32061),o=e.r(65713);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},18800,(e,t,r)=>{var n=e.r(71645);function o(e){var t="https://react.dev/errors/"+e;if(1{e.i(47167),!function e(){if("u">typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(e){console.error(e)}}(),t.exports=e.r(18800)},45689,(e,t,r)=>{var n=Symbol.for("react.transitional.element");function o(e,t,r){var o=null;if(void 0!==r&&(o=""+r),void 0!==t.key&&(o=""+t.key),"key"in t)for(var u in r={},t)"key"!==u&&(r[u]=t[u]);else r=t;return{$$typeof:n,type:e,key:o,ref:void 0!==(t=r.ref)?t:null,props:r}}r.Fragment=Symbol.for("react.fragment"),r.jsx=o,r.jsxs=o},50740,(e,t,r)=>{var n=e.i(47167),o=Symbol.for("react.transitional.element"),u=Symbol.for("react.portal"),i=Symbol.for("react.fragment"),a=Symbol.for("react.strict_mode"),l=Symbol.for("react.profiler"),c=Symbol.for("react.consumer"),f=Symbol.for("react.context"),s=Symbol.for("react.forward_ref"),d=Symbol.for("react.suspense"),p=Symbol.for("react.memo"),y=Symbol.for("react.lazy"),_=Symbol.for("react.activity"),h=Symbol.for("react.view_transition"),b=Symbol.iterator,v={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},m=Object.assign,g={};function O(e,t,r){this.props=e,this.context=t,this.refs=g,this.updater=r||v}function P(){}function R(e,t,r){this.props=e,this.context=t,this.refs=g,this.updater=r||v}O.prototype.isReactComponent={},O.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")},O.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},P.prototype=O.prototype;var j=R.prototype=new P;j.constructor=R,m(j,O.prototype),j.isPureReactComponent=!0;var S=Array.isArray;function E(){}var T={H:null,A:null,T:null,S:null},w=Object.prototype.hasOwnProperty;function M(e,t,r){var n=r.ref;return{$$typeof:o,type:e,key:t,ref:void 0!==n?n:null,props:r}}function x(e){return"object"==typeof e&&null!==e&&e.$$typeof===o}var A=/\/+/g;function C(e,t){var r,n;return"object"==typeof e&&null!==e&&null!=e.key?(r=""+e.key,n={"=":"=0",":":"=2"},"$"+r.replace(/[=:]/g,function(e){return n[e]})):t.toString(36)}function L(e,t,r){if(null==e)return e;var n=[],i=0;return!function e(t,r,n,i,a){var l,c,f,s=typeof t;("undefined"===s||"boolean"===s)&&(t=null);var d=!1;if(null===t)d=!0;else switch(s){case"bigint":case"string":case"number":d=!0;break;case"object":switch(t.$$typeof){case o:case u:d=!0;break;case y:return e((d=t._init)(t._payload),r,n,i,a)}}if(d)return a=a(t),d=""===i?"."+C(t,0):i,S(a)?(n="",null!=d&&(n=d.replace(A,"$&/")+"/"),e(a,r,n,"",function(e){return e})):null!=a&&(x(a)&&(l=a,c=n+(null==a.key||t&&t.key===a.key?"":(""+a.key).replace(A,"$&/")+"/")+d,a=M(l.type,c,l.props)),r.push(a)),1;d=0;var p=""===i?".":i+":";if(S(t))for(var _=0;_{e.i(47167),t.exports=e.r(50740)},43476,(e,t,r)=>{e.i(47167),t.exports=e.r(45689)},97367,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0});var n={MetadataBoundary:function(){return a},OutletBoundary:function(){return c},RootLayoutBoundary:function(){return f},ViewportBoundary:function(){return l}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(54839),i={[u.METADATA_BOUNDARY_NAME]:function({children:e}){return e},[u.VIEWPORT_BOUNDARY_NAME]:function({children:e}){return e},[u.OUTLET_BOUNDARY_NAME]:function({children:e}){return e},[u.ROOT_LAYOUT_BOUNDARY_NAME]:function({children:e}){return e}},a=i[u.METADATA_BOUNDARY_NAME.slice(0)],l=i[u.VIEWPORT_BOUNDARY_NAME.slice(0)],c=i[u.OUTLET_BOUNDARY_NAME.slice(0)],f=i[u.ROOT_LAYOUT_BOUNDARY_NAME.slice(0)]},54839,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0});var n={METADATA_BOUNDARY_NAME:function(){return u},OUTLET_BOUNDARY_NAME:function(){return a},ROOT_LAYOUT_BOUNDARY_NAME:function(){return l},VIEWPORT_BOUNDARY_NAME:function(){return i}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u="__next_metadata_boundary__",i="__next_viewport_boundary__",a="__next_outlet_boundary__",l="__next_root_layout_boundary__"},43369,(e,t,r)=>{let n;e.i(47167),Object.defineProperty(r,"__esModule",{value:!0});var o={getAssetToken:function(){return l},getAssetTokenQuery:function(){return c},getDeploymentId:function(){return i},getDeploymentIdQuery:function(){return a}};for(var u in o)Object.defineProperty(r,u,{enumerable:!0,get:o[u]});function i(){return n}function a(e=!1){let t=n;return t?`${e?"&":"?"}dpl=${t}`:""}function l(){return!1}function c(e=!1){return""}"u">typeof window?(n=document.documentElement.dataset.dplId,document.documentElement.removeAttribute("data-dpl-id")):n=void 0},61994,(e,t,r)=>{e.i(47167),Object.defineProperty(r,"__esModule",{value:!0});var n={NavigationPromisesContext:function(){return f},PathParamsContext:function(){return c},PathnameContext:function(){return l},ReadonlyURLSearchParams:function(){return i.ReadonlyURLSearchParams},SearchParamsContext:function(){return a},createDevToolsInstrumentedPromise:function(){return s}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(71645),i=e.r(3680),a=(0,u.createContext)(null),l=(0,u.createContext)(null),c=(0,u.createContext)(null),f=(0,u.createContext)(null);function s(e,t){let r=Promise.resolve(t);return r.status="fulfilled",r.value=t,r.displayName=`${e} (SSR)`,r}},32061,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0});var n={BailoutToCSRError:function(){return i},isBailoutToCSRError:function(){return a}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u="BAILOUT_TO_CLIENT_SIDE_RENDERING";class i extends Error{constructor(e){super(`Bail out to client-side rendering: ${e}`),this.reason=e,this.digest=u}}function a(e){return"object"==typeof e&&null!==e&&"digest"in e&&e.digest===u}},13957,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0});var n={ServerInsertedHTMLContext:function(){return i},useServerInsertedHTML:function(){return a}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(90809)._(e.r(71645)),i=u.default.createContext(null);function a(e){let t=(0,u.useContext)(i);t&&t(e)}}],35451,(e,t,r)=>{var n={156:function(e){var t,r,n,o=e.exports={};function u(){throw Error("setTimeout has not been defined")}function i(){throw Error("clearTimeout has not been defined")}try{t="function"==typeof setTimeout?setTimeout:u}catch(e){t=u}try{r="function"==typeof clearTimeout?clearTimeout:i}catch(e){r=i}function a(e){if(t===setTimeout)return setTimeout(e,0);if((t===u||!t)&&setTimeout)return t=setTimeout,setTimeout(e,0);try{return t(e,0)}catch(r){try{return t.call(null,e,0)}catch(r){return t.call(this,e,0)}}}var l=[],c=!1,f=-1;function s(){c&&n&&(c=!1,n.length?l=n.concat(l):f=-1,l.length&&d())}function d(){if(!c){var e=a(s);c=!0;for(var t=l.length;t;){for(n=l,l=[];++f1)for(var r=1;r{"use strict";(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,22016,(e,t,r)=>{e.i(47167),Object.defineProperty(r,"__esModule",{value:!0});var n={default:function(){return m},useLinkStatus:function(){return v}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(90809),a=e.r(43476),i=u._(e.r(71645)),l=e.r(95057),c=e.r(8372),s=e.r(18581),f=e.r(18967),p=e.r(5550),d=e.r(88540),h=e.r(91949),g=e.r(73668),y=e.r(9396);function m(t){var r;let n,o,u,[m,v]=(0,i.useOptimistic)(h.IDLE_LINK_STATUS),P=(0,i.useRef)(null),{href:S,as:E,children:C,prefetch:_=null,passHref:j,replace:O,shallow:T,scroll:x,onClick:L,onMouseEnter:N,onTouchStart:R,legacyBehavior:w=!1,onNavigate:$,transitionTypes:M,ref:U,unstable_dynamicOnHover:A,...I}=t;n=C,w&&("string"==typeof n||"number"==typeof n)&&(n=(0,a.jsx)("a",{children:n}));let k=i.default.useContext(c.AppRouterContext),B=!1!==_,F=!1===_?"none":!0===_?"full":"auto",K="none"!==F?"auto"===F?y.FetchStrategy.PPR:y.FetchStrategy.Full:y.FetchStrategy.PPR,D="string"==typeof(r=E||S)?r:(0,l.formatUrl)(r);if(w){if(n?.$$typeof===Symbol.for("react.lazy"))throw Error("`` received a direct child that is either a Server Component, or JSX that was loaded with React.lazy(). This is not supported. Either remove legacyBehavior, or make the direct child a Client Component that renders the Link's `` tag.");o=i.default.Children.only(n)}let z=w?o&&"object"==typeof o&&o.ref:U,W,q=i.default.useCallback(e=>(null!==k&&(P.current=(0,h.mountLinkInstance)(e,D,k,K,B,v,W)),()=>{P.current&&((0,h.unmountLinkForCurrentNavigation)(P.current),P.current=null),(0,h.unmountPrefetchableInstance)(e)}),[B,D,k,K,v,W]),J={ref:(0,s.useMergedRef)(q,z),onClick(t){w||"function"!=typeof L||L(t),w&&o.props&&"function"==typeof o.props.onClick&&o.props.onClick(t),!k||t.defaultPrevented||function(t,r,n,o,u,a,i,l="none"){if("u">typeof window){let c,{nodeName:s}=t.currentTarget;if("A"===s.toUpperCase()&&((c=t.currentTarget.getAttribute("target"))&&"_self"!==c||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.nativeEvent&&2===t.nativeEvent.which)||t.currentTarget.hasAttribute("download"))return;if(!(0,g.isLocalURL)(r)){o&&(t.preventDefault(),location.replace(r));return}if(t.preventDefault(),a){let e=!1;if(a({preventDefault:()=>{e=!0}}),e)return}let{navigate:f}=e.r(32916);f(r,o?"replace":"push",!1===u?d.ScrollBehavior.NoScroll:d.ScrollBehavior.Default,n.current,i,l)}}(t,D,P,O,x,$,M,F)},onMouseEnter(e){w||"function"!=typeof N||N(e),w&&o.props&&"function"==typeof o.props.onMouseEnter&&o.props.onMouseEnter(e),k&&B&&(0,h.onNavigationIntent)(e.currentTarget,!0===A)},onTouchStart:function(e){w||"function"!=typeof R||R(e),w&&o.props&&"function"==typeof o.props.onTouchStart&&o.props.onTouchStart(e),k&&B&&(0,h.onNavigationIntent)(e.currentTarget,!0===A)}};return(0,f.isAbsoluteUrl)(D)?J.href=D:w&&!j&&("a"!==o.type||"href"in o.props)||(J.href=(0,p.addBasePath)(D)),u=w?i.default.cloneElement(o,J):(0,a.jsx)("a",{...I,...J,children:n}),(0,a.jsx)(b.Provider,{value:m,children:u})}let b=(0,i.createContext)(h.IDLE_LINK_STATUS),v=()=>(0,i.useContext)(b);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},18581,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"useMergedRef",{enumerable:!0,get:function(){return o}});let n=e.r(71645);function o(e,t){let r=(0,n.useRef)(null),o=(0,n.useRef)(null);return(0,n.useCallback)(n=>{if(null===n){let e=r.current;e&&(r.current=null,e());let t=o.current;t&&(o.current=null,t())}else e&&(r.current=u(e,n)),t&&(o.current=u(t,n))},[e,t])}function u(e,t){if("function"!=typeof e)return e.current=t,()=>{e.current=null};{let r=e(t);return"function"==typeof r?r:()=>e(null)}}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},95057,(e,t,r)=>{e.i(47167),Object.defineProperty(r,"__esModule",{value:!0});var n={formatUrl:function(){return i},formatWithValidation:function(){return c},urlObjectKeys:function(){return l}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(90809)._(e.r(98183)),a=/https?|ftp|gopher|file/;function i(e){let{auth:t,hostname:r}=e,n=e.protocol||"",o=e.pathname||"",i=e.hash||"",l=e.query||"",c=!1;t=t?encodeURIComponent(t).replace(/%3A/i,":")+"@":"",e.host?c=t+e.host:r&&(c=t+(~r.indexOf(":")?`[${r}]`:r),e.port&&(c+=":"+e.port)),l&&"object"==typeof l&&(l=String(u.urlQueryToSearchParams(l)));let s=e.search||l&&`?${l}`||"";return n&&!n.endsWith(":")&&(n+=":"),e.slashes||(!n||a.test(n))&&!1!==c?(c="//"+(c||""),o&&"/"!==o[0]&&(o="/"+o)):c||(c=""),i&&"#"!==i[0]&&(i="#"+i),s&&"?"!==s[0]&&(s="?"+s),o=o.replace(/[?#]/g,encodeURIComponent),s=s.replace("#","%23"),`${n}${c}${o}${s}${i}`}let l=["auth","hash","host","hostname","href","path","pathname","port","protocol","query","search","slashes"];function c(e){return i(e)}},73668,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"isLocalURL",{enumerable:!0,get:function(){return u}});let n=e.r(18967),o=e.r(52817);function u(e){if(!(0,n.isAbsoluteUrl)(e))return!0;try{let t=(0,n.getLocationOrigin)(),r=new URL(e,t);return r.origin===t&&(0,o.hasBasePath)(r.pathname)}catch(e){return!1}}},18967,(e,t,r)=>{e.i(47167),Object.defineProperty(r,"__esModule",{value:!0});var n={DecodeError:function(){return m},MiddlewareNotFoundError:function(){return S},MissingStaticPage:function(){return P},NormalizeError:function(){return b},PageNotFoundError:function(){return v},SP:function(){return g},ST:function(){return y},WEB_VITALS:function(){return u},execOnce:function(){return a},getDisplayName:function(){return f},getLocationOrigin:function(){return c},getURL:function(){return s},isAbsoluteUrl:function(){return l},isResSent:function(){return p},loadGetInitialProps:function(){return h},normalizeRepeatedSlashes:function(){return d},stringifyError:function(){return E}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=["CLS","FCP","INP","LCP","TTFB"];function a(e){let t,r=!1;return(...n)=>(r||(r=!0,t=e(...n)),t)}let i=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/,l=e=>{let t=e.charCodeAt(0);return!!(t>=65&&t<=90||t>=97&&t<=122)&&i.test(e)};function c(){let{protocol:e,hostname:t,port:r}=window.location;return`${e}//${t}${r?":"+r:""}`}function s(){let{href:e}=window.location,t=c();return e.substring(t.length)}function f(e){return"string"==typeof e?e:e.displayName||e.name||"Unknown"}function p(e){return e.finished||e.headersSent}function d(e){let t=e.split("?");return t[0].replace(/\\/g,"/").replace(/\/\/+/g,"/")+(t[1]?`?${t.slice(1).join("?")}`:"")}async function h(e,t){let r=t.res||t.ctx&&t.ctx.res;if(!e.getInitialProps)return t.ctx&&t.Component?{pageProps:await h(t.Component,t.ctx)}:{};let n=await e.getInitialProps(t);if(r&&p(r))return n;if(!n)throw Error(`"${f(e)}.getInitialProps()" should resolve to an object. But found "${n}" instead.`);return n}let g="u">typeof performance,y=g&&["mark","measure","getEntriesByName"].every(e=>"function"==typeof performance[e]);class m extends Error{}class b extends Error{}class v extends Error{constructor(e){super(),this.code="ENOENT",this.name="PageNotFoundError",this.message=`Cannot find module for page: ${e}`}}class P extends Error{constructor(e,t){super(),this.message=`Failed to load static file for page: ${e} ${t}`}}class S extends Error{constructor(){super(),this.code="ENOENT",this.message="Cannot find the middleware module"}}function E(e){return JSON.stringify({message:e.message,stack:e.stack})}}])})(); \ No newline at end of file diff --git a/e-commerce/.next/static/chunks/2pv7bk-fii9c2.js b/e-commerce/.next/static/chunks/2pv7bk-fii9c2.js new file mode 100644 index 0000000000000000000000000000000000000000..36be62c36a8b9a732dc45573ae5e55afe45da206 --- /dev/null +++ b/e-commerce/.next/static/chunks/2pv7bk-fii9c2.js @@ -0,0 +1,3 @@ +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,75696,e=>{"use strict";var t,r,i=e.i(71645);function s(e,t){let r=t&&t.cache?t.cache:l,i=t&&t.serializer?t.serializer:o;return(t&&t.strategy?t.strategy:function(e,t){var r,i;let s=1===e.length?h:n;return r=t.cache.create(),i=t.serializer,s.bind(this,e,r,i)})(e,{cache:r,serializer:i})}function h(e,t,r,i){let s=null==i||"number"==typeof i||"boolean"==typeof i?i:r(i),h=t.get(s);return void 0===h&&(h=e.call(this,i),t.set(s,h)),h}function n(e,t,r){let i=Array.prototype.slice.call(arguments,3),s=r(i),h=t.get(s);return void 0===h&&(h=e.apply(this,i),t.set(s,h)),h}let o=function(){return JSON.stringify(arguments)};var a=class{constructor(){this.cache=Object.create(null)}get(e){return this.cache[e]}set(e,t){this.cache[e]=t}};let l={create:function(){return new a}},u={variadic:function(e,t){var r,i;return r=t.cache.create(),i=t.serializer,n.bind(this,e,r,i)},monadic:function(e,t){var r,i;return r=t.cache.create(),i=t.serializer,h.bind(this,e,r,i)}};var c=((t=c||{}).MISSING_MESSAGE="MISSING_MESSAGE",t.MISSING_FORMAT="MISSING_FORMAT",t.ENVIRONMENT_FALLBACK="ENVIRONMENT_FALLBACK",t.INSUFFICIENT_PATH="INSUFFICIENT_PATH",t.INVALID_MESSAGE="INVALID_MESSAGE",t.INVALID_KEY="INVALID_KEY",t.FORMATTING_ERROR="FORMATTING_ERROR",t);function p(e,t){var r,i;return r=(...t)=>new e(...t),i=t,s(r,{cache:{create:()=>({get:e=>i[e],set(e,t){i[e]=t}})},strategy:u.variadic})}let m=/(?:[Eec]{1,6}|G{1,5}|[Qq]{1,5}|(?:[yYur]+|U{1,5})|[ML]{1,5}|d{1,2}|D{1,3}|F{1}|[abB]{1,5}|[hkHK]{1,2}|w{1,2}|W{1}|m{1,2}|s{1,2}|[zZOvVxX]{1,4})(?=([^']*'[^']*')*[^']*$)/g,f=/[\t-\r \x85\u200E\u200F\u2028\u2029]/i,g=/^\.(?:(0+)(\*)?|(#+)|(0+)(#+))$/g,b=/^(@+)?(\+|#+)?[rs]?$/g,E=/(\*)(0+)|(#+)(0+)|(0+)/g,H=/^(0+)$/;function B(e){let t={};return"r"===e[e.length-1]?t.roundingPriority="morePrecision":"s"===e[e.length-1]&&(t.roundingPriority="lessPrecision"),e.replace(b,function(e,r,i){return"string"!=typeof i?(t.minimumSignificantDigits=r.length,t.maximumSignificantDigits=r.length):"+"===i?t.minimumSignificantDigits=r.length:"#"===r[0]?t.maximumSignificantDigits=r.length:(t.minimumSignificantDigits=r.length,t.maximumSignificantDigits=r.length+("string"==typeof i?i.length:0)),""}),t}function y(e){switch(e){case"sign-auto":return{signDisplay:"auto"};case"sign-accounting":case"()":return{currencySign:"accounting"};case"sign-always":case"+!":return{signDisplay:"always"};case"sign-accounting-always":case"()!":return{signDisplay:"always",currencySign:"accounting"};case"sign-except-zero":case"+?":return{signDisplay:"exceptZero"};case"sign-accounting-except-zero":case"()?":return{signDisplay:"exceptZero",currencySign:"accounting"};case"sign-never":case"+_":return{signDisplay:"never"}}}function d(e){let t=y(e);return t||{}}let T=((r={})[r.EXPECT_ARGUMENT_CLOSING_BRACE=1]="EXPECT_ARGUMENT_CLOSING_BRACE",r[r.EMPTY_ARGUMENT=2]="EMPTY_ARGUMENT",r[r.MALFORMED_ARGUMENT=3]="MALFORMED_ARGUMENT",r[r.EXPECT_ARGUMENT_TYPE=4]="EXPECT_ARGUMENT_TYPE",r[r.INVALID_ARGUMENT_TYPE=5]="INVALID_ARGUMENT_TYPE",r[r.EXPECT_ARGUMENT_STYLE=6]="EXPECT_ARGUMENT_STYLE",r[r.INVALID_NUMBER_SKELETON=7]="INVALID_NUMBER_SKELETON",r[r.INVALID_DATE_TIME_SKELETON=8]="INVALID_DATE_TIME_SKELETON",r[r.EXPECT_NUMBER_SKELETON=9]="EXPECT_NUMBER_SKELETON",r[r.EXPECT_DATE_TIME_SKELETON=10]="EXPECT_DATE_TIME_SKELETON",r[r.UNCLOSED_QUOTE_IN_ARGUMENT_STYLE=11]="UNCLOSED_QUOTE_IN_ARGUMENT_STYLE",r[r.EXPECT_SELECT_ARGUMENT_OPTIONS=12]="EXPECT_SELECT_ARGUMENT_OPTIONS",r[r.EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE=13]="EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE",r[r.INVALID_PLURAL_ARGUMENT_OFFSET_VALUE=14]="INVALID_PLURAL_ARGUMENT_OFFSET_VALUE",r[r.EXPECT_SELECT_ARGUMENT_SELECTOR=15]="EXPECT_SELECT_ARGUMENT_SELECTOR",r[r.EXPECT_PLURAL_ARGUMENT_SELECTOR=16]="EXPECT_PLURAL_ARGUMENT_SELECTOR",r[r.EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT=17]="EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT",r[r.EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT=18]="EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT",r[r.INVALID_PLURAL_ARGUMENT_SELECTOR=19]="INVALID_PLURAL_ARGUMENT_SELECTOR",r[r.DUPLICATE_PLURAL_ARGUMENT_SELECTOR=20]="DUPLICATE_PLURAL_ARGUMENT_SELECTOR",r[r.DUPLICATE_SELECT_ARGUMENT_SELECTOR=21]="DUPLICATE_SELECT_ARGUMENT_SELECTOR",r[r.MISSING_OTHER_CLAUSE=22]="MISSING_OTHER_CLAUSE",r[r.INVALID_TAG=23]="INVALID_TAG",r[r.INVALID_TAG_NAME=25]="INVALID_TAG_NAME",r[r.UNMATCHED_CLOSING_TAG=26]="UNMATCHED_CLOSING_TAG",r[r.UNCLOSED_TAG=27]="UNCLOSED_TAG",r);function A(e){return!!(e&&"object"==typeof e&&0===e.type)}function P(e){return!!(e&&"object"==typeof e&&1===e.type)}let I=/[ \xA0\u1680\u2000-\u200A\u202F\u205F\u3000]/,S={"001":["H","h"],419:["h","H","hB","hb"],AC:["H","h","hb","hB"],AD:["H","hB"],AE:["h","hB","hb","H"],AF:["H","hb","hB","h"],AG:["h","hb","H","hB"],AI:["H","h","hb","hB"],AL:["h","H","hB"],AM:["H","hB"],AO:["H","hB"],AR:["h","H","hB","hb"],AS:["h","H"],AT:["H","hB"],AU:["h","hb","H","hB"],AW:["H","hB"],AX:["H"],AZ:["H","hB","h"],BA:["H","hB","h"],BB:["h","hb","H","hB"],BD:["h","hB","H"],BE:["H","hB"],BF:["H","hB"],BG:["H","hB","h"],BH:["h","hB","hb","H"],BI:["H","h"],BJ:["H","hB"],BL:["H","hB"],BM:["h","hb","H","hB"],BN:["hb","hB","h","H"],BO:["h","H","hB","hb"],BQ:["H"],BR:["H","hB"],BS:["h","hb","H","hB"],BT:["h","H"],BW:["H","h","hb","hB"],BY:["H","h"],BZ:["H","h","hb","hB"],CA:["h","hb","H","hB"],CC:["H","h","hb","hB"],CD:["hB","H"],CF:["H","h","hB"],CG:["H","hB"],CH:["H","hB","h"],CI:["H","hB"],CK:["H","h","hb","hB"],CL:["h","H","hB","hb"],CM:["H","h","hB"],CN:["H","hB","hb","h"],CO:["h","H","hB","hb"],CP:["H"],CR:["h","H","hB","hb"],CU:["h","H","hB","hb"],CV:["H","hB"],CW:["H","hB"],CX:["H","h","hb","hB"],CY:["h","H","hb","hB"],CZ:["H"],DE:["H","hB"],DG:["H","h","hb","hB"],DJ:["h","H"],DK:["H"],DM:["h","hb","H","hB"],DO:["h","H","hB","hb"],DZ:["h","hB","hb","H"],EA:["H","h","hB","hb"],EC:["h","H","hB","hb"],EE:["H","hB"],EG:["h","hB","hb","H"],EH:["h","hB","hb","H"],ER:["h","H"],ES:["H","hB","h","hb"],ET:["hB","hb","h","H"],FI:["H"],FJ:["h","hb","H","hB"],FK:["H","h","hb","hB"],FM:["h","hb","H","hB"],FO:["H","h"],FR:["H","hB"],GA:["H","hB"],GB:["H","h","hb","hB"],GD:["h","hb","H","hB"],GE:["H","hB","h"],GF:["H","hB"],GG:["H","h","hb","hB"],GH:["h","H"],GI:["H","h","hb","hB"],GL:["H","h"],GM:["h","hb","H","hB"],GN:["H","hB"],GP:["H","hB"],GQ:["H","hB","h","hb"],GR:["h","H","hb","hB"],GS:["H","h","hb","hB"],GT:["h","H","hB","hb"],GU:["h","hb","H","hB"],GW:["H","hB"],GY:["h","hb","H","hB"],HK:["h","hB","hb","H"],HN:["h","H","hB","hb"],HR:["H","hB"],HU:["H","h"],IC:["H","h","hB","hb"],ID:["H"],IE:["H","h","hb","hB"],IL:["H","hB"],IM:["H","h","hb","hB"],IN:["h","H"],IO:["H","h","hb","hB"],IQ:["h","hB","hb","H"],IR:["hB","H"],IS:["H"],IT:["H","hB"],JE:["H","h","hb","hB"],JM:["h","hb","H","hB"],JO:["h","hB","hb","H"],JP:["H","K","h"],KE:["hB","hb","H","h"],KG:["H","h","hB","hb"],KH:["hB","h","H","hb"],KI:["h","hb","H","hB"],KM:["H","h","hB","hb"],KN:["h","hb","H","hB"],KP:["h","H","hB","hb"],KR:["h","H","hB","hb"],KW:["h","hB","hb","H"],KY:["h","hb","H","hB"],KZ:["H","hB"],LA:["H","hb","hB","h"],LB:["h","hB","hb","H"],LC:["h","hb","H","hB"],LI:["H","hB","h"],LK:["H","h","hB","hb"],LR:["h","hb","H","hB"],LS:["h","H"],LT:["H","h","hb","hB"],LU:["H","h","hB"],LV:["H","hB","hb","h"],LY:["h","hB","hb","H"],MA:["H","h","hB","hb"],MC:["H","hB"],MD:["H","hB"],ME:["H","hB","h"],MF:["H","hB"],MG:["H","h"],MH:["h","hb","H","hB"],MK:["H","h","hb","hB"],ML:["H"],MM:["hB","hb","H","h"],MN:["H","h","hb","hB"],MO:["h","hB","hb","H"],MP:["h","hb","H","hB"],MQ:["H","hB"],MR:["h","hB","hb","H"],MS:["H","h","hb","hB"],MT:["H","h"],MU:["H","h"],MV:["H","h"],MW:["h","hb","H","hB"],MX:["h","H","hB","hb"],MY:["hb","hB","h","H"],MZ:["H","hB"],NA:["h","H","hB","hb"],NC:["H","hB"],NE:["H"],NF:["H","h","hb","hB"],NG:["H","h","hb","hB"],NI:["h","H","hB","hb"],NL:["H","hB"],NO:["H","h"],NP:["H","h","hB"],NR:["H","h","hb","hB"],NU:["H","h","hb","hB"],NZ:["h","hb","H","hB"],OM:["h","hB","hb","H"],PA:["h","H","hB","hb"],PE:["h","H","hB","hb"],PF:["H","h","hB"],PG:["h","H"],PH:["h","hB","hb","H"],PK:["h","hB","H"],PL:["H","h"],PM:["H","hB"],PN:["H","h","hb","hB"],PR:["h","H","hB","hb"],PS:["h","hB","hb","H"],PT:["H","hB"],PW:["h","H"],PY:["h","H","hB","hb"],QA:["h","hB","hb","H"],RE:["H","hB"],RO:["H","hB"],RS:["H","hB","h"],RU:["H"],RW:["H","h"],SA:["h","hB","hb","H"],SB:["h","hb","H","hB"],SC:["H","h","hB"],SD:["h","hB","hb","H"],SE:["H"],SG:["h","hb","H","hB"],SH:["H","h","hb","hB"],SI:["H","hB"],SJ:["H"],SK:["H"],SL:["h","hb","H","hB"],SM:["H","h","hB"],SN:["H","h","hB"],SO:["h","H"],SR:["H","hB"],SS:["h","hb","H","hB"],ST:["H","hB"],SV:["h","H","hB","hb"],SX:["H","h","hb","hB"],SY:["h","hB","hb","H"],SZ:["h","hb","H","hB"],TA:["H","h","hb","hB"],TC:["h","hb","H","hB"],TD:["h","H","hB"],TF:["H","h","hB"],TG:["H","hB"],TH:["H","h"],TJ:["H","h"],TL:["H","hB","hb","h"],TM:["H","h"],TN:["h","hB","hb","H"],TO:["h","H"],TR:["H","hB"],TT:["h","hb","H","hB"],TW:["hB","hb","h","H"],TZ:["hB","hb","H","h"],UA:["H","hB","h"],UG:["hB","hb","H","h"],UM:["h","hb","H","hB"],US:["h","hb","H","hB"],UY:["h","H","hB","hb"],UZ:["H","hB","h"],VA:["H","h","hB"],VC:["h","hb","H","hB"],VE:["h","H","hB","hb"],VG:["h","hb","H","hB"],VI:["h","hb","H","hB"],VN:["H","h"],VU:["h","H"],WF:["H","hB"],WS:["h","H"],XK:["H","hB","h"],YE:["h","hB","hb","H"],YT:["H","hB"],ZA:["H","h","hb","hB"],ZM:["h","hb","H","hB"],ZW:["H","h"],"af-ZA":["H","h","hB","hb"],"ar-001":["h","hB","hb","H"],"ca-ES":["H","h","hB"],"en-001":["h","hb","H","hB"],"en-HK":["h","hb","H","hB"],"en-IL":["H","h","hb","hB"],"en-MY":["h","hb","H","hB"],"es-BR":["H","h","hB","hb"],"es-ES":["H","h","hB","hb"],"es-GQ":["H","h","hB","hb"],"fr-CA":["H","h","hB"],"gl-ES":["H","h","hB"],"gu-IN":["hB","hb","h","H"],"hi-IN":["hB","h","H"],"it-CH":["H","h","hB"],"it-IT":["H","h","hB"],"kn-IN":["hB","h","H"],"ku-SY":["H","hB"],"ml-IN":["hB","h","H"],"mr-IN":["hB","hb","h","H"],"pa-IN":["hB","hb","h","H"],"ta-IN":["hB","h","hb","H"],"te-IN":["hB","h","H"],"zu-ZA":["H","hB","hb","h"]},N=RegExp(`^${I.source}*`),_=RegExp(`${I.source}*$`);function L(e,t){return{start:e,end:t}}let M=!!Object.fromEntries,R=!!String.prototype.trimStart,v=!!String.prototype.trimEnd,C=M?Object.fromEntries:function(e){let t={};for(let[r,i]of e)t[r]=i;return t},O=R?function(e){return e.trimStart()}:function(e){return e.replace(N,"")},D=v?function(e){return e.trimEnd()}:function(e){return e.replace(_,"")},F=RegExp("([^\\p{White_Space}\\p{Pattern_Syntax}]*)","yu");var G=class{constructor(e,t={}){this.message=e,this.position={offset:0,line:1,column:1},this.ignoreTag=!!t.ignoreTag,this.locale=t.locale,this.requiresOtherClause=!!t.requiresOtherClause,this.shouldParseSkeletons=!!t.shouldParseSkeletons}parse(){if(0!==this.offset())throw Error("parser can only be used once");if(this.message.length>0){let e=this.message.charCodeAt(0);if(35!==e&&39!==e&&60!==e&&123!==e&&125!==e){let e=function(e){if(0===e.length)return null;let t=1,r=1;for(let i=0;i=55296&&s<=56319&&i+1=56320&&t<=57343?2:1}else i++}return{offset:e.length,line:t,column:r}}(this.message);if(e){let t=this.clonePosition();return this.position=e,{val:[{type:0,value:this.message,location:L(t,this.clonePosition())}],err:null}}}}return this.parseMessage(0,"",!1)}parseMessage(e,t,r){let i=[];for(;!this.isEOF();){let s=this.char();if(123===s){let t=this.parseArgument(e,r);if(t.err)return t;i.push(t.val)}else if(125===s&&e>0)break;else if(35===s&&("plural"===t||"selectordinal"===t)){let e=this.clonePosition();this.bump(),i.push({type:7,location:L(e,this.clonePosition())})}else if(60!==s||this.ignoreTag||47!==this.peek())if(60===s&&!this.ignoreTag&&U(this.peek()||0)){let r=this.parseTag(e,t);if(r.err)return r;i.push(r.val)}else{let r=this.parseLiteral(e,t);if(r.err)return r;i.push(r.val)}else if(!r)return this.error(26,L(this.clonePosition(),this.clonePosition()));else break}return{val:i,err:null}}parseTag(e,t){let r=this.clonePosition();this.bump();let i=this.parseTagName();if(this.bumpSpace(),this.bumpIf("/>"))return{val:{type:0,value:`<${i}/>`,location:L(r,this.clonePosition())},err:null};if(!this.bumpIf(">"))return this.error(23,L(r,this.clonePosition()));{let s=this.parseMessage(e+1,t,!0);if(s.err)return s;let h=s.val,n=this.clonePosition();if(!this.bumpIf(""))?{val:{type:8,value:i,children:h,location:L(r,this.clonePosition())},err:null}:this.error(23,L(n,this.clonePosition()))}}}parseTagName(){var e;let t=this.offset();for(this.bump();!this.isEOF()&&(45===(e=this.char())||46===e||e>=48&&e<=57||95===e||e>=97&&e<=122||e>=65&&e<=90||183==e||e>=192&&e<=214||e>=216&&e<=246||e>=248&&e<=893||e>=895&&e<=8191||e>=8204&&e<=8205||e>=8255&&e<=8256||e>=8304&&e<=8591||e>=11264&&e<=12271||e>=12289&&e<=55295||e>=63744&&e<=64975||e>=65008&&e<=65533||e>=65536&&e<=983039);)this.bump();return this.message.slice(t,this.offset())}parseLiteral(e,t){let r=this.clonePosition(),i="";for(;;){let r=this.tryParseQuote(t);if(r){i+=r;continue}let s=this.tryParseUnquoted(e,t);if(s){i+=s;continue}let h=this.tryParseLeftAngleBracket();if(h){i+=h;continue}break}return{val:{type:0,value:i,location:L(r,this.clonePosition())},err:null}}tryParseLeftAngleBracket(){var e;return this.isEOF()||60!==this.char()||!this.ignoreTag&&(U(e=this.peek()||0)||47===e)?null:(this.bump(),"<")}tryParseQuote(e){if(this.isEOF()||39!==this.char())return null;switch(this.peek()){case 39:return this.bump(),this.bump(),"'";case 123:case 60:case 62:case 125:break;case 35:if("plural"===e||"selectordinal"===e)break;return null;default:return null}this.bump();let t=[this.char()];for(this.bump();!this.isEOF();){let e=this.char();if(39===e)if(39===this.peek())t.push(39),this.bump();else{this.bump();break}else t.push(e);this.bump()}return String.fromCodePoint(...t)}tryParseUnquoted(e,t){if(this.isEOF())return null;let r=this.char();return 60===r||123===r||35===r&&("plural"===t||"selectordinal"===t)||125===r&&e>0?null:(this.bump(),String.fromCodePoint(r))}parseArgument(e,t){let r=this.clonePosition();if(this.bump(),this.bumpSpace(),this.isEOF())return this.error(1,L(r,this.clonePosition()));if(125===this.char())return this.bump(),this.error(2,L(r,this.clonePosition()));let i=this.parseIdentifierIfPossible().value;if(!i)return this.error(3,L(r,this.clonePosition()));if(this.bumpSpace(),this.isEOF())return this.error(1,L(r,this.clonePosition()));switch(this.char()){case 125:return this.bump(),{val:{type:1,value:i,location:L(r,this.clonePosition())},err:null};case 44:if(this.bump(),this.bumpSpace(),this.isEOF())return this.error(1,L(r,this.clonePosition()));return this.parseArgumentOptions(e,t,i,r);default:return this.error(3,L(r,this.clonePosition()))}}parseIdentifierIfPossible(){var e;let t=this.clonePosition(),r=this.offset(),i=(e=this.message,F.lastIndex=r,F.exec(e)[1]??""),s=r+i.length;return this.bumpTo(s),{value:i,location:L(t,this.clonePosition())}}parseArgumentOptions(e,t,r,i){let s=this.clonePosition(),h=this.parseIdentifierIfPossible().value,n=this.clonePosition();switch(h){case"":return this.error(4,L(s,n));case"number":case"date":case"time":{this.bumpSpace();let e=null;if(this.bumpIf(",")){this.bumpSpace();let t=this.clonePosition(),r=this.parseSimpleArgStyleIfPossible();if(r.err)return r;let i=D(r.val);if(0===i.length)return this.error(6,L(this.clonePosition(),this.clonePosition()));e={style:i,styleLocation:L(t,this.clonePosition())}}let t=this.tryParseArgumentClose(i);if(t.err)return t;let s=L(i,this.clonePosition());if(e&&e.style.startsWith("::")){let t=O(e.style.slice(2));if("number"===h){let i=this.parseNumberSkeletonFromString(t,e.styleLocation);if(i.err)return i;return{val:{type:2,value:r,location:s,style:i.val},err:null}}{let i;if(0===t.length)return this.error(10,s);let n=t;return this.locale&&(n=function(e,t){let r="";for(let i=0;i>1),a=function(e){let t,r=e.hourCycle;if(void 0===r&&(r=e.getHourCycles?.()[0]??e.hourCycles?.[0]),r)switch(r){case"h24":return"k";case"h23":return"H";case"h12":return"h";case"h11":return"K";default:throw Error("Invalid hourCycle")}let i=e.language;return"root"!==i&&(t=e.maximize().region),(S[`${i}-${t}`]||S[t||""]||S[i||""]||S[`${i}-001`]||S["001"])[0].charAt(0)}(t);for(("H"==a||"k"==a)&&(o=0);o-- >0;)r+="a";for(;n-- >0;)r=a+r}else"J"===s?r+="H":r+=s}return r}(t,this.locale)),{val:{type:"date"===h?3:4,value:r,location:s,style:{type:1,pattern:n,location:e.styleLocation,parsedOptions:this.shouldParseSkeletons?(i={},n.replace(m,e=>{let t=e.length;switch(e[0]){case"G":i.era=4===t?"long":5===t?"narrow":"short";break;case"y":i.year=2===t?"2-digit":"numeric";break;case"Y":case"u":case"U":case"r":throw RangeError("`Y/u/U/r` (year) patterns are not supported, use `y` instead");case"q":case"Q":throw RangeError("`q/Q` (quarter) patterns are not supported");case"M":case"L":i.month=["numeric","2-digit","short","long","narrow"][t-1];break;case"w":case"W":throw RangeError("`w/W` (week) patterns are not supported");case"d":i.day=["numeric","2-digit"][t-1];break;case"D":case"F":case"g":throw RangeError("`D/F/g` (day) patterns are not supported, use `d` instead");case"E":i.weekday=4===t?"long":5===t?"narrow":"short";break;case"e":if(t<4)throw RangeError("`e..eee` (weekday) patterns are not supported");i.weekday=["short","long","narrow","short"][t-3];break;case"c":if(t<4)throw RangeError("`c..ccc` (weekday) patterns are not supported");i.weekday=["short","long","narrow","short"][t-3];break;case"a":i.hour12=!0;break;case"b":case"B":throw RangeError("`b/B` (period) patterns are not supported, use `a` instead");case"h":i.hourCycle="h12",i.hour=["numeric","2-digit"][t-1];break;case"H":i.hourCycle="h23",i.hour=["numeric","2-digit"][t-1];break;case"K":i.hourCycle="h11",i.hour=["numeric","2-digit"][t-1];break;case"k":i.hourCycle="h24",i.hour=["numeric","2-digit"][t-1];break;case"j":case"J":case"C":throw RangeError("`j/J/C` (hour) patterns are not supported, use `h/H/K/k` instead");case"m":i.minute=["numeric","2-digit"][t-1];break;case"s":i.second=["numeric","2-digit"][t-1];break;case"S":case"A":throw RangeError("`S/A` (second) patterns are not supported, use `s` instead");case"z":i.timeZoneName=t<4?"short":"long";break;case"Z":case"O":case"v":case"V":case"X":case"x":throw RangeError("`Z/O/v/V/X/x` (timeZone) patterns are not supported, use `z` instead")}return""}),i):{}}},err:null}}}return{val:{type:"number"===h?2:"date"===h?3:4,value:r,location:s,style:e?.style??null},err:null}}case"plural":case"selectordinal":case"select":{let s=this.clonePosition();if(this.bumpSpace(),!this.bumpIf(","))return this.error(12,L(s,{...s}));this.bumpSpace();let n=this.parseIdentifierIfPossible(),o=0;if("select"!==h&&"offset"===n.value){if(!this.bumpIf(":"))return this.error(13,L(this.clonePosition(),this.clonePosition()));this.bumpSpace();let e=this.tryParseDecimalInteger(13,14);if(e.err)return e;this.bumpSpace(),n=this.parseIdentifierIfPossible(),o=e.val}let a=this.tryParsePluralOrSelectOptions(e,h,t,n);if(a.err)return a;let l=this.tryParseArgumentClose(i);if(l.err)return l;let u=L(i,this.clonePosition());if("select"===h)return{val:{type:5,value:r,options:C(a.val),location:u},err:null};return{val:{type:6,value:r,options:C(a.val),offset:o,pluralType:"plural"===h?"cardinal":"ordinal",location:u},err:null}}default:return this.error(5,L(s,n))}}tryParseArgumentClose(e){return this.isEOF()||125!==this.char()?this.error(1,L(e,this.clonePosition())):(this.bump(),{val:!0,err:null})}parseSimpleArgStyleIfPossible(){let e=0,t=this.clonePosition();for(;!this.isEOF();)switch(this.char()){case 39:{this.bump();let e=this.clonePosition();if(!this.bumpUntil("'"))return this.error(11,L(e,this.clonePosition()));this.bump();break}case 123:e+=1,this.bump();break;case 125:if(!(e>0))return{val:this.message.slice(t.offset,this.offset()),err:null};e-=1;break;default:this.bump()}return{val:this.message.slice(t.offset,this.offset()),err:null}}parseNumberSkeletonFromString(e,t){let r=[];try{r=function(e){if(0===e.length)throw Error("Number skeleton cannot be empty");let t=e.split(f).filter(e=>e.length>0),r=[];for(let e of t){let t=e.split("/");if(0===t.length)throw Error("Invalid number skeleton");let[i,...s]=t;for(let e of s)if(0===e.length)throw Error("Invalid number skeleton");r.push({stem:i,options:s})}return r}(e)}catch{return this.error(7,t)}return{val:{type:0,tokens:r,location:t,parsedOptions:this.shouldParseSkeletons?function(e){let t={};for(let r of e){switch(r.stem){case"percent":case"%":t.style="percent";continue;case"%x100":t.style="percent",t.scale=100;continue;case"currency":t.style="currency",t.currency=r.options[0];continue;case"group-off":case",_":t.useGrouping=!1;continue;case"precision-integer":case".":t.maximumFractionDigits=0;continue;case"measure-unit":case"unit":t.style="unit",t.unit=r.options[0].replace(/^(.*?)-/,"");continue;case"compact-short":case"K":t.notation="compact",t.compactDisplay="short";continue;case"compact-long":case"KK":t.notation="compact",t.compactDisplay="long";continue;case"scientific":t={...t,notation:"scientific",...r.options.reduce((e,t)=>({...e,...d(t)}),{})};continue;case"engineering":t={...t,notation:"engineering",...r.options.reduce((e,t)=>({...e,...d(t)}),{})};continue;case"notation-simple":t.notation="standard";continue;case"unit-width-narrow":t.currencyDisplay="narrowSymbol",t.unitDisplay="narrow";continue;case"unit-width-short":t.currencyDisplay="code",t.unitDisplay="short";continue;case"unit-width-full-name":t.currencyDisplay="name",t.unitDisplay="long";continue;case"unit-width-iso-code":t.currencyDisplay="symbol";continue;case"scale":t.scale=parseFloat(r.options[0]);continue;case"rounding-mode-floor":t.roundingMode="floor";continue;case"rounding-mode-ceiling":t.roundingMode="ceil";continue;case"rounding-mode-down":t.roundingMode="trunc";continue;case"rounding-mode-up":t.roundingMode="expand";continue;case"rounding-mode-half-even":t.roundingMode="halfEven";continue;case"rounding-mode-half-down":t.roundingMode="halfTrunc";continue;case"rounding-mode-half-up":t.roundingMode="halfExpand";continue;case"integer-width":if(r.options.length>1)throw RangeError("integer-width stems only accept a single optional option");r.options[0].replace(E,function(e,r,i,s,h,n){if(r)t.minimumIntegerDigits=i.length;else if(s&&h)throw Error("We currently do not support maximum integer digits");else if(n)throw Error("We currently do not support exact integer digits");return""});continue}if(H.test(r.stem)){t.minimumIntegerDigits=r.stem.length;continue}if(g.test(r.stem)){if(r.options.length>1)throw RangeError("Fraction-precision stems only accept a single optional option");r.stem.replace(g,function(e,r,i,s,h,n){return"*"===i?t.minimumFractionDigits=r.length:s&&"#"===s[0]?t.maximumFractionDigits=s.length:h&&n?(t.minimumFractionDigits=h.length,t.maximumFractionDigits=h.length+n.length):(t.minimumFractionDigits=r.length,t.maximumFractionDigits=r.length),""});let e=r.options[0];"w"===e?t={...t,trailingZeroDisplay:"stripIfInteger"}:e&&(t={...t,...B(e)});continue}if(b.test(r.stem)){t={...t,...B(r.stem)};continue}let e=y(r.stem);e&&(t={...t,...e});let i=function(e){let t;if("E"===e[0]&&"E"===e[1]?(t={notation:"engineering"},e=e.slice(2)):"E"===e[0]&&(t={notation:"scientific"},e=e.slice(1)),t){let r=e.slice(0,2);if("+!"===r?(t.signDisplay="always",e=e.slice(2)):"+?"===r&&(t.signDisplay="exceptZero",e=e.slice(2)),!H.test(e))throw Error("Malformed concise eng/scientific notation");t.minimumIntegerDigits=e.length}return t}(r.stem);i&&(t={...t,...i})}return t}(r):{}},err:null}}tryParsePluralOrSelectOptions(e,t,r,i){let s=!1,h=[],n=new Set,{value:o,location:a}=i;for(;;){if(0===o.length){let e=this.clonePosition();if("select"!==t&&this.bumpIf("=")){let t=this.tryParseDecimalInteger(16,19);if(t.err)return t;a=L(e,this.clonePosition()),o=this.message.slice(e.offset,this.offset())}else break}if(n.has(o))return this.error("select"===t?21:20,a);"other"===o&&(s=!0),this.bumpSpace();let i=this.clonePosition();if(!this.bumpIf("{"))return this.error("select"===t?17:18,L(this.clonePosition(),this.clonePosition()));let l=this.parseMessage(e+1,t,r);if(l.err)return l;let u=this.tryParseArgumentClose(i);if(u.err)return u;h.push([o,{value:l.val,location:L(i,this.clonePosition())}]),n.add(o),this.bumpSpace(),{value:o,location:a}=this.parseIdentifierIfPossible()}return 0===h.length?this.error("select"===t?15:16,L(this.clonePosition(),this.clonePosition())):this.requiresOtherClause&&!s?this.error(22,L(this.clonePosition(),this.clonePosition())):{val:h,err:null}}tryParseDecimalInteger(e,t){let r=1,i=this.clonePosition();this.bumpIf("+")||this.bumpIf("-")&&(r=-1);let s=!1,h=0;for(;!this.isEOF();){let e=this.char();if(e>=48&&e<=57)s=!0,h=10*h+(e-48),this.bump();else break}let n=L(i,this.clonePosition());return s?Number.isSafeInteger(h*=r)?{val:h,err:null}:this.error(t,n):this.error(e,n)}offset(){return this.position.offset}isEOF(){return this.offset()===this.message.length}clonePosition(){return{offset:this.position.offset,line:this.position.line,column:this.position.column}}char(){let e=this.position.offset;if(e>=this.message.length)throw Error("out of bound");let t=this.message.codePointAt(e);if(void 0===t)throw Error(`Offset ${e} is at invalid UTF-16 code unit boundary`);return t}error(e,t){return{val:null,err:{kind:e,message:this.message,location:t}}}bump(){if(this.isEOF())return;let e=this.char();10===e?(this.position.line+=1,this.position.column=1,this.position.offset+=1):(this.position.column+=1,this.position.offset+=e<65536?1:2)}bumpIf(e){if(this.message.startsWith(e,this.offset())){for(let t=0;t=0?(this.bumpTo(r),!0):(this.bumpTo(this.message.length),!1)}bumpTo(e){if(this.offset()>e)throw Error(`targetOffset ${e} must be greater than or equal to the current offset ${this.offset()}`);for(e=Math.min(e,this.message.length);;){let t=this.offset();if(t===e)break;if(t>e)throw Error(`targetOffset ${e} is at invalid UTF-16 code unit boundary`);if(this.bump(),this.isEOF())break}}bumpSpace(){for(var e;!this.isEOF()&&((e=this.char())>=9&&e<=13||32===e||133===e||e>=8206&&e<=8207||8232===e||8233===e);)this.bump()}peek(){if(this.isEOF())return null;let e=this.char(),t=this.offset();return this.message.charCodeAt(t+(e>=65536?2:1))??null}};function U(e){return e>=97&&e<=122||e>=65&&e<=90}function w(e,t={}){let r=new G(e,t={shouldParseSkeletons:!0,requiresOtherClause:!0,...t}).parse();if(r.err){let e=SyntaxError(T[r.err.kind]);throw e.location=r.err.location,e.originalMessage=r.err.message,e}return t?.captureLocation||function e(t){t.forEach(t=>{if(delete t.location,5===t.type||6===t.type)for(let r in t.options)delete t.options[r].location,e(t.options[r].value);else 2===t.type&&A(t.style)||(3===t.type||4===t.type)&&P(t.style)?delete t.style.location:8===t.type&&e(t.children)})}(r.val),r.val}var k=class extends Error{constructor(e,t,r){super(e),this.code=t,this.originalMessage=r}toString(){return`[formatjs Error: ${this.code}] ${this.message}`}},V=class extends k{constructor(e,t,r,i){super(`Invalid values for "${e}": "${t}". Options are "${Object.keys(r).join('", "')}"`,"INVALID_VALUE",i)}},K=class extends k{constructor(e,t,r){super(`Value for "${e}" must be of type ${t}`,"INVALID_VALUE",r)}},x=class extends k{constructor(e,t){super(`The intl string context variable "${e}" was not provided to the string "${t}"`,"MISSING_VALUE",t)}};function X(e){return{create:()=>({get:t=>e[t],set(t,r){e[t]=r}})}}function Z(e){return function(...e){return e.filter(Boolean).join(".")}(e.namespace,e.key)}function Y(e){console.error(e)}(class e{constructor(t,r=e.defaultLocale,i,h){var n;if(this.formatterCache={number:{},dateTime:{},pluralRules:{}},this.format=e=>{let t=this.formatToParts(e);if(1===t.length)return t[0].value;let r=t.reduce((e,t)=>(e.length&&0===t.type&&"string"==typeof e[e.length-1]?e[e.length-1]+=t.value:e.push(t.value),e),[]);return r.length<=1?r[0]||"":r},this.formatToParts=e=>(function e(t,r,i,s,h,n,o){if(1===t.length&&0===t[0].type)return[{type:0,value:t[0].value}];let a=[];for(let l of t){if(0===l.type){a.push({type:0,value:l.value});continue}if(7===l.type){"number"==typeof n&&a.push({type:0,value:i.getNumberFormat(r).format(n)});continue}let{value:t}=l;if(!(h&&t in h))throw new x(t,o);let u=h[t];if(1===l.type){u&&"string"!=typeof u&&"number"!=typeof u&&"bigint"!=typeof u||(u="string"==typeof u||"number"==typeof u||"bigint"==typeof u?String(u):""),a.push({type:+("string"!=typeof u),value:u});continue}if(3===l.type){let e="string"==typeof l.style?s.date[l.style]:P(l.style)?l.style.parsedOptions:void 0;a.push({type:0,value:i.getDateTimeFormat(r,e).format(u)});continue}if(4===l.type){let e="string"==typeof l.style?s.time[l.style]:P(l.style)?l.style.parsedOptions:s.time.medium;a.push({type:0,value:i.getDateTimeFormat(r,e).format(u)});continue}if(2===l.type){let e="string"==typeof l.style?s.number[l.style]:A(l.style)?l.style.parsedOptions:void 0;if(e&&e.scale){let t=e.scale||1;if("bigint"==typeof u){if(!Number.isInteger(t))throw TypeError(`Cannot apply fractional scale ${t} to bigint value. Scale must be an integer when formatting bigint.`);u*=BigInt(t)}else u*=t}a.push({type:0,value:i.getNumberFormat(r,e).format(u)});continue}if(8===l.type){let{children:t,value:u}=l,c=h[u];if("function"!=typeof c)throw new K(u,"function",o);let p=c(e(t,r,i,s,h,n).map(e=>e.value));Array.isArray(p)||(p=[p]),a.push(...p.map(e=>({type:+("string"!=typeof e),value:e})))}if(5===l.type){let t=u,n=(Object.prototype.hasOwnProperty.call(l.options,t)?l.options[t]:void 0)||l.options.other;if(!n)throw new V(l.value,u,Object.keys(l.options),o);a.push(...e(n.value,r,i,s,h));continue}if(6===l.type){let t=`=${u}`,n=Object.prototype.hasOwnProperty.call(l.options,t)?l.options[t]:void 0;if(!n){if(!Intl.PluralRules)throw new k(`Intl.PluralRules is not available in this environment. +Try polyfilling it using "@formatjs/intl-pluralrules" +`,"MISSING_INTL_API",o);let e="bigint"==typeof u?Number(u):u,t=i.getPluralRules(r,{type:l.pluralType}).select(e-(l.offset||0));n=(Object.prototype.hasOwnProperty.call(l.options,t)?l.options[t]:void 0)||l.options.other}if(!n)throw new V(l.value,u,Object.keys(l.options),o);let c="bigint"==typeof u?Number(u):u;a.push(...e(n.value,r,i,s,h,c-(l.offset||0)));continue}}return a.length<2?a:a.reduce((e,t)=>{let r=e[e.length-1];return r&&0===r.type&&0===t.type?r.value+=t.value:e.push(t),e},[])})(this.ast,this.locales,this.formatters,this.formats,e,void 0,this.message),this.resolvedOptions=()=>({locale:this.resolvedLocale?.toString()||Intl.NumberFormat.supportedLocalesOf(this.locales)[0]}),this.getAst=()=>this.ast,this.locales=r,this.resolvedLocale=e.resolveLocale(r),"string"==typeof t){if(this.message=t,!e.__parse)throw TypeError("IntlMessageFormat.__parse must be set to process `message` of type `string`");let{...r}=h||{};this.ast=e.__parse(t,{...r,locale:this.resolvedLocale})}else this.ast=t;if(!Array.isArray(this.ast))throw TypeError("A message must be provided as a String or AST.");this.formats=(n=e.formats,i?Object.keys(n).reduce((e,t)=>{var r,s;return e[t]=(r=n[t],(s=i[t])?{...r,...s,...Object.keys(r).reduce((e,t)=>(e[t]={...r[t],...s[t]},e),{})}:r),e},{...n}):n),this.formatters=h&&h.formatters||function(e={number:{},dateTime:{},pluralRules:{}}){return{getNumberFormat:s((...e)=>new Intl.NumberFormat(...e),{cache:X(e.number),strategy:u.variadic}),getDateTimeFormat:s((...e)=>new Intl.DateTimeFormat(...e),{cache:X(e.dateTime),strategy:u.variadic}),getPluralRules:s((...e)=>new Intl.PluralRules(...e),{cache:X(e.pluralRules),strategy:u.variadic})}}(this.formatterCache)}static{this.memoizedDefaultLocale=null}static get defaultLocale(){return e.memoizedDefaultLocale||(e.memoizedDefaultLocale=new Intl.NumberFormat().resolvedOptions().locale),e.memoizedDefaultLocale}static{this.resolveLocale=e=>{if(void 0===Intl.Locale)return;let t=Intl.NumberFormat.supportedLocalesOf(e);return new Intl.Locale(t.length>0?t[0]:"string"==typeof e?e:e[0])}}static{this.__parse=w}static{this.formats={number:{integer:{maximumFractionDigits:0},currency:{style:"currency"},percent:{style:"percent"}},date:{short:{month:"numeric",day:"numeric",year:"2-digit"},medium:{month:"short",day:"numeric",year:"numeric"},long:{month:"long",day:"numeric",year:"numeric"},full:{weekday:"long",month:"long",day:"numeric",year:"numeric"}},time:{short:{hour:"numeric",minute:"numeric"},medium:{hour:"numeric",minute:"numeric",second:"numeric"},long:{hour:"numeric",minute:"numeric",second:"numeric",timeZoneName:"short"},full:{hour:"numeric",minute:"numeric",second:"numeric",timeZoneName:"short"}}}}});var $=e.i(43476);let j=(0,i.createContext)(void 0);function W({children:e,formats:t,getMessageFallback:r,locale:s,messages:h,now:n,onError:o,timeZone:a}){let l=(0,i.useContext)(j),u=(0,i.useMemo)(()=>l?.cache||{dateTime:{},number:{},message:{},relativeTime:{},pluralRules:{},list:{},displayNames:{}},[s,l?.cache]),c=(0,i.useMemo)(()=>l?.formatters||{getDateTimeFormat:p(Intl.DateTimeFormat,u.dateTime),getNumberFormat:p(Intl.NumberFormat,u.number),getPluralRules:p(Intl.PluralRules,u.pluralRules),getRelativeTimeFormat:p(Intl.RelativeTimeFormat,u.relativeTime),getListFormat:p(Intl.ListFormat,u.list),getDisplayNames:p(Intl.DisplayNames,u.displayNames)},[u,l?.formatters]),m=(0,i.useMemo)(()=>({...function({formats:e,getMessageFallback:t,messages:r,onError:i,...s}){return{...s,formats:e||void 0,messages:r||void 0,onError:i||Y,getMessageFallback:t||Z}}({locale:s,formats:void 0===t?l?.formats:t,getMessageFallback:r||l?.getMessageFallback,messages:void 0===h?l?.messages:h,now:n||l?.now,onError:o||l?.onError,timeZone:a||l?.timeZone}),formatters:c,cache:u}),[u,t,c,r,s,h,n,o,l,a]);return(0,$.jsx)(j.Provider,{value:m,children:e})}e.s(["default",0,function({locale:e,...t}){if(!e)throw Error(void 0);return(0,$.jsx)(W,{locale:e,...t})}],75696)}]); \ No newline at end of file diff --git a/e-commerce/.next/static/chunks/3scjwwi8pqt2y.css b/e-commerce/.next/static/chunks/3scjwwi8pqt2y.css new file mode 100644 index 0000000000000000000000000000000000000000..8a1750baf34539def4ce450863f329c0fa382d85 --- /dev/null +++ b/e-commerce/.next/static/chunks/3scjwwi8pqt2y.css @@ -0,0 +1,3 @@ +@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/fef07dbb0973bf53-s.3p2_lha1f2xer.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/8a480f0b521d4e75-s.1qq4vpdcun5oj.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/53b9e256198e5412-s.390ncx5urfkfu.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7178b3e590c64307-s.21jp631_3pja2.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/caa3a2e1cccd8315-s.p.0wgildi0cnwt9.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Fallback;src:local(Arial);ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.0%;size-adjust:104.76%}.T19VSG_className{font-family:Geist,Geist Fallback;font-style:normal}.T19VSG_variable{--font-geist-sans:"Geist", "Geist Fallback"} +@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/5ce348bf30bf5439-s.31988l_ccedte.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/4fa387ec64143e14-s.2tuy5pz7dlieh.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/6306c77e7c8268e4-s.2dbetqa9o8jxf.woff2)format("woff2");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7d817b4c03b0c5f1-s.1uyisp29ctx0d.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/bbc41e54d2fcbd21-s.1rgnod-3esatf.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/797e433ab948586e-s.p.0r6juujl39pe6.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono Fallback;src:local(Arial);ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.0%;size-adjust:134.59%}._8Li5zG_className{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}._8Li5zG_variable{--font-geist-mono:"Geist Mono", "Geist Mono Fallback"} +@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-duration:initial;--tw-ease:initial;--tw-space-x-reverse:0}}}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-black:#000;--spacing:.25rem;--container-lg:32rem;--container-3xl:48rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-3xl:1.875rem;--text-3xl--line-height:calc(2.25 / 1.875);--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--tracking-widest:.1em;--radius-sm:.25rem;--radius-md:calc(var(--radius-sm) + .125rem);--radius-lg:.5rem;--radius-xl:.75rem;--ease-out:cubic-bezier(0, 0, .2, 1);--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-background:#fff;--color-foreground:#050a15;--color-card:#fff;--color-card-foreground:#050a15;--color-popover:#fff;--color-popover-foreground:#050a15;--color-primary:#050a15;--color-primary-foreground:#f5f9ff;--color-secondary:#eef2f9;--color-secondary-foreground:#050a15;--color-muted:#eef2f9;--color-muted-foreground:#525864;--color-accent:#eef2f9;--color-accent-foreground:#050a15;--color-destructive:#cb0015;--color-destructive-foreground:#f5f9ff;--color-border:#dee1e8;--color-input:#dee1e8;--color-ring:#050a15}@supports (color:lab(0% 0 0)){:root,:host{--color-background:lab(100% 0 0);--color-foreground:lab(2.66706% .286974 -5.81196);--color-card:lab(100% 0 0);--color-card-foreground:lab(2.66706% .286974 -5.81196);--color-popover:lab(100% 0 0);--color-popover-foreground:lab(2.66706% .286974 -5.81196);--color-primary:lab(2.66706% .286974 -5.81196);--color-primary-foreground:lab(97.6387% -.285149 -3.77021);--color-secondary:lab(95.3187% -.284493 -3.76985);--color-secondary-foreground:lab(2.66706% .286974 -5.81196);--color-muted:lab(95.3187% -.284493 -3.76985);--color-muted-foreground:lab(37.2659% -.367999 -7.43789);--color-accent:lab(95.3187% -.284493 -3.76985);--color-accent-foreground:lab(2.66706% .286974 -5.81196);--color-destructive:lab(43.2504% 69.5491 52.9863);--color-destructive-foreground:lab(97.6387% -.285149 -3.77021);--color-border:lab(89.5186% -.282794 -3.76887);--color-input:lab(89.5186% -.282794 -3.76887);--color-ring:lab(2.66706% .286974 -5.81196)}}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*{border-color:var(--color-border)}body{background-color:var(--color-background);color:var(--color-foreground);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.inset-0{inset:0}.top-4{top:calc(var(--spacing) * 4)}.top-\[50\%\]{top:50%}.right-2{right:calc(var(--spacing) * 2)}.right-4{right:calc(var(--spacing) * 4)}.left-2{left:calc(var(--spacing) * 2)}.left-\[50\%\]{left:50%}.z-50{z-index:50}.-mx-1{margin-inline:calc(var(--spacing) * -1)}.mx-auto{margin-inline:auto}.my-1{margin-block:var(--spacing)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-6{margin-top:calc(var(--spacing) * 6)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-auto{margin-left:auto}.block{display:block}.flex{display:flex}.grid{display:grid}.inline{display:inline}.inline-flex{display:inline-flex}.table{display:table}.aspect-square{aspect-ratio:1}.h-2{height:calc(var(--spacing) * 2)}.h-2\.5{height:calc(var(--spacing) * 2.5)}.h-3\.5{height:calc(var(--spacing) * 3.5)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-\[1px\]{height:1px}.h-\[var\(--radix-select-trigger-height\)\]{height:var(--radix-select-trigger-height)}.h-full{height:100%}.h-px{height:1px}.max-h-\[--radix-select-content-available-height\]{max-height:--radix-select-content-available-height}.max-h-\[var\(--radix-dropdown-menu-content-available-height\)\]{max-height:var(--radix-dropdown-menu-content-available-height)}.min-h-screen{min-height:100vh}.w-2{width:calc(var(--spacing) * 2)}.w-2\.5{width:calc(var(--spacing) * 2.5)}.w-3\.5{width:calc(var(--spacing) * 3.5)}.w-4{width:calc(var(--spacing) * 4)}.w-9{width:calc(var(--spacing) * 9)}.w-10{width:calc(var(--spacing) * 10)}.w-72{width:calc(var(--spacing) * 72)}.w-\[1px\]{width:1px}.w-full{width:100%}.max-w-3xl{max-width:var(--container-3xl)}.max-w-lg{max-width:var(--container-lg)}.min-w-\[8rem\]{min-width:8rem}.min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.flex-1{flex:1}.shrink-0{flex-shrink:0}.origin-\[--radix-dropdown-menu-content-transform-origin\]{transform-origin:--radix-dropdown-menu-content-transform-origin}.origin-\[--radix-popover-content-transform-origin\]{transform-origin:--radix-popover-content-transform-origin}.origin-\[--radix-select-content-transform-origin\]{transform-origin:--radix-select-content-transform-origin}.origin-\[--radix-tooltip-content-transform-origin\]{transform-origin:--radix-tooltip-content-transform-origin}.translate-x-\[-50\%\]{--tw-translate-x:-50%;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-\[-50\%\]{--tw-translate-y:-50%;translate:var(--tw-translate-x) var(--tw-translate-y)}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.place-content-center{place-content:center}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-1{gap:var(--spacing)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-6{gap:calc(var(--spacing) * 6)}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)))}.overflow-hidden{overflow:hidden}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.rounded-\[inherit\]{border-radius:inherit}.rounded-full{border-radius:2147483647px}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xl{border-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-input{border-color:var(--color-input)}.border-primary{border-color:var(--color-primary)}.border-transparent{border-color:#0000}.border-t-transparent{border-top-color:#0000}.border-l-transparent{border-left-color:#0000}.bg-background{background-color:var(--color-background)}.bg-black\/80{background-color:#000c}@supports (color:color-mix(in lab, red, red)){.bg-black\/80{background-color:color-mix(in oklab, var(--color-black) 80%, transparent)}}.bg-border{background-color:var(--color-border)}.bg-card{background-color:var(--color-card)}.bg-destructive{background-color:var(--color-destructive)}.bg-muted{background-color:var(--color-muted)}.bg-popover{background-color:var(--color-popover)}.bg-primary{background-color:var(--color-primary)}.bg-secondary{background-color:var(--color-secondary)}.bg-transparent{background-color:#0000}.fill-current{fill:currentColor}.fill-primary{fill:var(--color-primary)}.p-1{padding:var(--spacing)}.p-4{padding:calc(var(--spacing) * 4)}.p-6{padding:calc(var(--spacing) * 6)}.p-\[1px\]{padding:1px}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-8{padding-inline:calc(var(--spacing) * 8)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.pt-0{padding-top:0}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-8{padding-right:calc(var(--spacing) * 8)}.pl-2{padding-left:calc(var(--spacing) * 2)}.pl-8{padding-left:calc(var(--spacing) * 8)}.text-center{text-align:center}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.leading-none{--tw-leading:1;line-height:1}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.whitespace-nowrap{white-space:nowrap}.text-card-foreground{color:var(--color-card-foreground)}.text-current{color:currentColor}.text-destructive-foreground{color:var(--color-destructive-foreground)}.text-foreground{color:var(--color-foreground)}.text-muted-foreground{color:var(--color-muted-foreground)}.text-popover-foreground{color:var(--color-popover-foreground)}.text-primary{color:var(--color-primary)}.text-primary-foreground{color:var(--color-primary-foreground)}.text-secondary-foreground{color:var(--color-secondary-foreground)}.underline-offset-4{text-underline-offset:4px}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-0{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-offset-background{--tw-ring-offset-color:var(--color-background)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.peer-disabled\:cursor-not-allowed:is(:where(.peer):disabled~*){cursor:not-allowed}.peer-disabled\:opacity-70:is(:where(.peer):disabled~*){opacity:.7}.file\:border-0::file-selector-button{border-style:var(--tw-border-style);border-width:0}.file\:bg-transparent::file-selector-button{background-color:#0000}.file\:text-sm::file-selector-button{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.file\:font-medium::file-selector-button{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.file\:text-foreground::file-selector-button{color:var(--color-foreground)}.placeholder\:text-muted-foreground::placeholder{color:var(--color-muted-foreground)}@media (hover:hover){.hover\:bg-accent:hover{background-color:var(--color-accent)}.hover\:bg-destructive\/80:hover{background-color:#cb0015cc}@supports (color:color-mix(in lab, red, red)){.hover\:bg-destructive\/80:hover{background-color:color-mix(in oklab, var(--color-destructive) 80%, transparent)}}.hover\:bg-destructive\/90:hover{background-color:#cb0015e6}@supports (color:color-mix(in lab, red, red)){.hover\:bg-destructive\/90:hover{background-color:color-mix(in oklab, var(--color-destructive) 90%, transparent)}}.hover\:bg-primary\/80:hover{background-color:#050a15cc}@supports (color:color-mix(in lab, red, red)){.hover\:bg-primary\/80:hover{background-color:color-mix(in oklab, var(--color-primary) 80%, transparent)}}.hover\:bg-primary\/90:hover{background-color:#050a15e6}@supports (color:color-mix(in lab, red, red)){.hover\:bg-primary\/90:hover{background-color:color-mix(in oklab, var(--color-primary) 90%, transparent)}}.hover\:bg-secondary\/80:hover{background-color:#eef2f9cc}@supports (color:color-mix(in lab, red, red)){.hover\:bg-secondary\/80:hover{background-color:color-mix(in oklab, var(--color-secondary) 80%, transparent)}}.hover\:text-accent-foreground:hover{color:var(--color-accent-foreground)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}}.focus\:bg-accent:focus{background-color:var(--color-accent)}.focus\:text-accent-foreground:focus{color:var(--color-accent-foreground)}.focus\:ring-1:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\:ring-ring:focus{--tw-ring-color:var(--color-ring)}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\:ring-1:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\:ring-ring:focus-visible{--tw-ring-color:var(--color-ring)}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus-visible\:ring-offset-background:focus-visible{--tw-ring-offset-color:var(--color-background)}.focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[placeholder\]\:text-muted-foreground[data-placeholder]{color:var(--color-muted-foreground)}.data-\[side\=bottom\]\:translate-y-1[data-side=bottom]{--tw-translate-y:var(--spacing);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[side\=left\]\:-translate-x-1[data-side=left]{--tw-translate-x:calc(var(--spacing) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[side\=right\]\:translate-x-1[data-side=right]{--tw-translate-x:var(--spacing);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[side\=top\]\:-translate-y-1[data-side=top]{--tw-translate-y:calc(var(--spacing) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[state\=checked\]\:translate-x-4[data-state=checked]{--tw-translate-x:calc(var(--spacing) * 4);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[state\=checked\]\:bg-primary[data-state=checked]{background-color:var(--color-primary)}.data-\[state\=checked\]\:text-primary-foreground[data-state=checked]{color:var(--color-primary-foreground)}.data-\[state\=open\]\:bg-accent[data-state=open]{background-color:var(--color-accent)}.data-\[state\=open\]\:text-muted-foreground[data-state=open]{color:var(--color-muted-foreground)}.data-\[state\=unchecked\]\:translate-x-0[data-state=unchecked]{--tw-translate-x:0px;translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[state\=unchecked\]\:bg-input[data-state=unchecked]{background-color:var(--color-input)}@media (min-width:40rem){.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:justify-end{justify-content:flex-end}:where(.sm\:space-x-2>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing) * 2) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-x-reverse)))}.sm\:rounded-lg{border-radius:var(--radius-lg)}.sm\:text-left{text-align:left}}@media (min-width:48rem){.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:size-4 svg{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&\>span\]\:line-clamp-1>span{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.\[\&\>svg\]\:size-4>svg{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.\[\&\>svg\]\:shrink-0>svg{flex-shrink:0}.text-balance{text-wrap:balance}}.dark{--color-background:#050a15;--color-foreground:#f5f9ff;--color-card:#050a15;--color-card-foreground:#f5f9ff;--color-popover:#050a15;--color-popover-foreground:#f5f9ff;--color-primary:#f5f9ff;--color-primary-foreground:#050a15;--color-secondary:#161b24;--color-secondary-foreground:#f5f9ff;--color-muted:#161b24;--color-muted-foreground:#898f9c;--color-accent:#161b24;--color-accent-foreground:#f5f9ff;--color-destructive:#8d1b19;--color-destructive-foreground:#f5f9ff;--color-border:#161b24;--color-input:#161b24;--color-ring:#c1c8d5;--color-ring-offset:#050a15}@supports (color:lab(0% 0 0)){.dark{--color-background:lab(2.66706% .286974 -5.81196);--color-foreground:lab(97.6387% -.285149 -3.77021);--color-card:lab(2.66706% .286974 -5.81196);--color-card-foreground:lab(97.6387% -.285149 -3.77021);--color-popover:lab(2.66706% .286974 -5.81196);--color-popover-foreground:lab(97.6387% -.285149 -3.77021);--color-primary:lab(97.6387% -.285149 -3.77021);--color-primary-foreground:lab(2.66706% .286974 -5.81196);--color-secondary:lab(9.40874% -.0685006 -7.32282);--color-secondary-foreground:lab(97.6387% -.285149 -3.77021);--color-muted:lab(9.40874% -.0685006 -7.32282);--color-muted-foreground:lab(59.3104% -.446051 -7.47464);--color-accent:lab(9.40874% -.0685006 -7.32282);--color-accent-foreground:lab(97.6387% -.285149 -3.77021);--color-destructive:lab(31.2267% 47.1877 32.7901);--color-destructive-foreground:lab(97.6387% -.285149 -3.77021);--color-border:lab(9.40874% -.0685006 -7.32282);--color-input:lab(9.40874% -.0685006 -7.32282);--color-ring:lab(80.1927% -.486612 -7.49509);--color-ring-offset:lab(2.66706% .286974 -5.81196)}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0} diff --git a/e-commerce/.next/static/chunks/3x_n5yioqv1dp.css b/e-commerce/.next/static/chunks/3x_n5yioqv1dp.css new file mode 100644 index 0000000000000000000000000000000000000000..07787e9dcf932c40c7f2588755fe007bc1480092 --- /dev/null +++ b/e-commerce/.next/static/chunks/3x_n5yioqv1dp.css @@ -0,0 +1 @@ +.E0kJGG_page{--background:#fafafa;--foreground:#fff;--text-primary:#000;--text-secondary:#666;--button-primary-hover:#383838;--button-secondary-hover:#f2f2f2;--button-secondary-border:#ebebeb;font-family:var(--font-geist-sans);background-color:var(--background);flex-direction:column;flex:1;justify-content:center;align-items:center;display:flex}.E0kJGG_main{background-color:var(--foreground);flex-direction:column;flex:1;justify-content:space-between;align-items:flex-start;width:100%;max-width:800px;padding:120px 60px;display:flex}.E0kJGG_intro{text-align:left;flex-direction:column;align-items:flex-start;gap:24px;display:flex}.E0kJGG_intro h1{letter-spacing:-2.4px;text-wrap:balance;max-width:320px;color:var(--text-primary);font-size:40px;font-weight:600;line-height:48px}.E0kJGG_intro p{text-wrap:balance;max-width:440px;color:var(--text-secondary);font-size:18px;line-height:32px}.E0kJGG_intro a{color:var(--text-primary);font-weight:500}.E0kJGG_ctas{flex-direction:row;gap:16px;width:100%;max-width:440px;font-size:14px;display:flex}.E0kJGG_ctas a{cursor:pointer;border:1px solid #0000;border-radius:128px;justify-content:center;align-items:center;width:fit-content;height:40px;padding:0 16px;font-weight:500;transition:all .2s;display:flex}a.E0kJGG_primary{background:var(--text-primary);color:var(--background);gap:8px}a.E0kJGG_secondary{border-color:var(--button-secondary-border)}@media (hover:hover) and (pointer:fine){a.E0kJGG_primary:hover{background:var(--button-primary-hover);border-color:#0000}a.E0kJGG_secondary:hover{background:var(--button-secondary-hover);border-color:#0000}}@media (max-width:600px){.E0kJGG_main{padding:48px 24px}.E0kJGG_intro{gap:16px}.E0kJGG_intro h1{letter-spacing:-1.92px;font-size:32px;line-height:40px}}@media (prefers-color-scheme:dark){.E0kJGG_logo{filter:invert()}.E0kJGG_page{--background:#000;--foreground:#000;--text-primary:#ededed;--text-secondary:#999;--button-primary-hover:#ccc;--button-secondary-hover:#1a1a1a;--button-secondary-border:#1a1a1a}}.E0kJGG_code{font-family:var(--font-geist-mono);background:color-mix(in srgb, currentColor 8%, transparent);border-radius:6px;padding:.1em .4em;font-size:.9em} diff --git a/e-commerce/.next/static/chunks/turbopack-3-ry682tkyiqk.js b/e-commerce/.next/static/chunks/turbopack-3-ry682tkyiqk.js new file mode 100644 index 0000000000000000000000000000000000000000..8a9f5539be3c1a470b5e1d6dd0a1acfa932ddd32 --- /dev/null +++ b/e-commerce/.next/static/chunks/turbopack-3-ry682tkyiqk.js @@ -0,0 +1 @@ +(()=>{let e;var t,r=globalThis.TURBOPACK;if(void 0===r)r=[];else if(!Array.isArray(r))return;var n=function(){if(null!=self.TURBOPACK_ASSET_SUFFIX)return self.TURBOPACK_ASSET_SUFFIX;let e=document?.currentScript?.getAttribute?.("src")??"",t=e.indexOf("?");return t>=0?e.slice(t):""}(),o=((t=o||{})[t.Runtime=0]="Runtime",t[t.Parent=1]="Parent",t[t.Update=2]="Update",t);let l=new WeakMap;function i(e,t){this.m=e,this.e=t}let u=i.prototype,s=Object.prototype.hasOwnProperty,f="u">typeof Symbol&&Symbol.toStringTag;function c(e,t,r){s.call(e,t)||Object.defineProperty(e,t,r)}function a(e,t){let r=e.get(t);return void 0===r&&(r=p(t),e.set(t,r)),r}function p(e){return{exports:{},error:void 0,id:e,namespaceObject:void 0}}function d(e,t,r){c(e,"__esModule",{value:!0}),f&&c(e,f,{value:"Module"});let n=0;for(;nr[n])}function y(e,t){(null!=t?a(this.c,t):this.m).exports=e}u.s=h,u.S=function(e,t){let r=[],n=0;for(;n{if("default"!==e){for(let t of r)if(s.call(t,e))return t}};e.exports=e.namespaceObject=new Proxy(t,{get(e,t){if(s.call(e,t)||"default"===t||"__esModule"===t)return Reflect.get(e,t);let r=n(t);return r&&Reflect.get(r,t)},set:()=>!1,defineProperty:()=>!1,deleteProperty:()=>!1,has:(e,t)=>!!Reflect.has(e,t)||"default"!==t&&"__esModule"!==t&&void 0!==n(t),ownKeys(e){let t=Reflect.ownKeys(e);for(let e of r)for(let r of Reflect.ownKeys(e))"default"===r||t.includes(r)||t.push(r);return t},getOwnPropertyDescriptor(e,t){let r=Reflect.getOwnPropertyDescriptor(e,t);if(r||"default"===t||"__esModule"===t)return r;let o=n(t);if(o)return{enumerable:!0,configurable:!0,get:()=>Reflect.get(o,t)}}})}return r}(r,n);"object"==typeof e&&null!==e&&o.push(e)},u.v=y,u.n=function(e,t){let r;(r=null!=t?a(this.c,t):this.m).exports=r.namespaceObject=e};let g=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,b=[null,g({}),g([]),g(g)];function O(e,t,r){let n=[],o=-1;for(let t=e;("object"==typeof t||"function"==typeof t)&&!b.includes(t);t=g(t))for(let r of Object.getOwnPropertyNames(t))n.push(r,function(e,t){return()=>e[t]}(e,r)),-1===o&&"default"===r&&(o=n.length-1);return r&&o>=0||(o>=0?n.splice(o,1,0,e):n.push("default",0,e)),d(t,n),t}function w(e){let t=B(e,this.m);if(t.namespaceObject)return t.namespaceObject;let r=t.exports;return t.namespaceObject=O(r,"function"==typeof r?function(...e){return r.apply(this,e)}:Object.create(null),r&&r.__esModule)}function v(e){let t=e.indexOf("#");-1!==t&&(e=e.substring(0,t));let r=e.indexOf("?");return -1!==r&&(e=e.substring(0,r)),e}u.i=w,u.A=function(e){return this.r(e)(w.bind(this))},u.t="function"==typeof require?require:function(){throw Error("Unexpected use of runtime require")},u.r=function(e){return B(e,this.m).exports},u.f=function(e){function t(t){if(t=v(t),s.call(e,t))return e[t].module();let r=Error(`Cannot find module '${t}'`);throw r.code="MODULE_NOT_FOUND",r}return t.keys=()=>Object.keys(e),t.resolve=t=>{if(t=v(t),s.call(e,t))return e[t].id();let r=Error(`Cannot find module '${t}'`);throw r.code="MODULE_NOT_FOUND",r},t.import=async e=>await t(e),t};let R=function(e){let t=new URL(e,"x:/"),r={};for(let e in t)r[e]=t[e];for(let t in r.href=e,r.pathname=e.replace(/[?#].*/,""),r.origin=r.protocol="",r.toString=r.toJSON=(...t)=>e,r)Object.defineProperty(this,t,{enumerable:!0,configurable:!0,value:r[t]})};function U(e,t){throw Error(`Invariant: ${t(e)}`)}R.prototype=URL.prototype,u.U=R,u.z=function(e){throw Error("dynamic usage of require is not supported")},u.g=globalThis;let _=i.prototype,k="string"==typeof TURBOPACK_CHUNK_BASE_PATH?TURBOPACK_CHUNK_BASE_PATH:"/_next/",P=new Map;u.M=P;let $=new Map,C=new Map,A=new Map;async function j(e,t,r){let n;if("string"==typeof r)return function(e,t,r){return M(e,t,r)}(e,t,x(r));let o=r.included||[],l=o.map(e=>!!P.has(e)||$.get(e));if(l.length>0&&l.every(e=>e))return void await Promise.all(l);for(let l of(n=M(e,t,x(r.path)),o))$.has(l)||$.set(l,n);await n}_.l=function(e){return j(o.Parent,this.m.id,e)};let E=Promise.resolve(void 0),S=new WeakMap;function M(t,r,n){let l=e.loadChunkCached(t,n),i=S.get(l);if(void 0===i){let e=S.set.bind(S,l,E);i=l.then(e).catch(e=>{let l;switch(t){case o.Runtime:l=`as a runtime dependency of chunk ${r}`;break;case o.Parent:l=`from module ${r}`;break;case o.Update:l="from an HMR update";break;default:U(t,e=>`Unknown source type: ${e}`)}let i=Error(`Failed to load chunk ${n} ${l}${e?`: ${e}`:""}`,e?{cause:e}:void 0);throw i.name="ChunkLoadError",i}),S.set(l,i)}return i}_.L=function(e){var t,r;return t=o.Parent,r=this.m.id,M(t,r,e)};_.R=function(e){let t=this.r(e);return t?.default??t},_.P=function(e){return`/ROOT/${e??""}`},_.F=function(e,t){return`file:///${encodeURIComponent(t??"ROOT")}/${e.split("/").map(encodeURIComponent).join("/")}`},_.q=function(e,t){y.call(this,`${e}${n}`,t)};let T=/[^A-Za-z0-9\-_.!~*'()/]/;function x(e,t=k){let r=T.test(e)?e.split("/").map(encodeURIComponent).join("/"):e;return`${t}${r}${n}`}function K(e,t){let r,n=e.indexOf("?");if(-1!==n)r=n;else{let t=e.indexOf("#");r=-1!==t?t:e.length}return r>=t.length&&e.startsWith(t,r-t.length)}_.b=k,_.X=n,_.h=x;function N(e){return K(e,".css")}let L=new Map;u.c=L;let B=(e,t)=>{let r=L.get(e);if(r){if(r.error)throw r.error;return r}return I(e,o.Parent,t.id)};function I(e,t,r){let n=P.get(e);if("function"!=typeof n)throw Error(function(e,t,r){let n;switch(t){case 0:n=`as a runtime entry of chunk ${r}`;break;case 1:n=`because it was required from module ${r}`;break;case 2:n="because of an HMR update";break;default:U(t,e=>`Unknown source type: ${e}`)}return`Module ${e} was instantiated ${n}, but the module factory is not available.`}(e,t,r));let o=p(e),l=o.exports;L.set(e,o);let u=new i(o,l);try{n(u,o,l)}catch(e){throw o.error=e,e}return o.namespaceObject&&o.exports!==o.namespaceObject&&O(o.exports,o.namespaceObject),o}function H(t){let r;if(!Array.isArray(t))return e.registerChunk(void 0,t);let n=function(e){if("string"==typeof e)return e;if(e)return{src:e.getAttribute("src")};if("u">typeof TURBOPACK_NEXT_CHUNK_URLS)return{src:TURBOPACK_NEXT_CHUNK_URLS.pop()};throw Error("chunk path empty but not in a worker")}(t[0]);return 2===t.length?r=t[1]:(r=void 0,!function e(t,r,n,o){let l=r,i=t[l];for(Array.isArray(i)&&(e(i,0,n,o),l++);l{r=e,n=t}),resolve:()=>{t.resolved=!0,r()},reject:n},q.set(e,t)}return t}function F(e,t,r,n,o){!(null==n||n instanceof DOMException&&"NetworkError"===n.name)||r.retryAttempts>=1||q.get(t)!==r?(q.get(t)===r&&q.delete(t),r.reject(n)):(r.retryAttempts++,setTimeout(()=>{r.resolved||q.get(t)!==r||(o?o():(r.loadingStarted=!1,W(e,t)))},200+Math.floor(401*Math.random())))}function W(e,t){let r=D(t);if(r.loadingStarted)return r.promise;if(e===o.Runtime)return r.loadingStarted=!0,N(t)&&r.resolve(),r.promise;if("function"==typeof importScripts)if(N(t));else if(K(t,".js")){self.TURBOPACK_NEXT_CHUNK_URLS.push(t);try{importScripts(t)}catch(n){F(e,t,r,n)}}else throw Error(`can't infer type of chunk from URL ${t} in worker`);else{let n=decodeURI(t);if(N(t))if(document.querySelectorAll(`link[rel=stylesheet][href="${t}"],link[rel=stylesheet][href^="${t}?"],link[rel=stylesheet][href="${n}"],link[rel=stylesheet][href^="${n}?"]`).length>0)r.resolve();else{let n=()=>{let o=document.createElement("link");return o.rel="stylesheet",o.crossOrigin=null,o.href=t,o.onerror=()=>{let l=document.createComment("");o.replaceWith(l),F(e,t,r,void 0,()=>l.replaceWith(n()))},o.onload=()=>{r.resolve()},o};document.head.appendChild(n())}else if(K(t,".js")){let o=document.querySelectorAll(`script[src="${t}"],script[src^="${t}?"],script[src="${n}"],script[src^="${n}?"]`);if(o.length>0)for(let n of Array.from(o))n.addEventListener("error",()=>{n.remove(),F(e,t,r)},{once:!0});else{let n=document.createElement("script");n.crossOrigin=null,n.src=t,n.onerror=()=>{n.remove(),F(e,t,r)},document.head.appendChild(n)}}else throw Error(`can't infer type of chunk from URL ${t}`)}return r.loadingStarted=!0,r.promise}e={async registerChunk(e,t){let r;if(null!=e&&(r=function(e){if("string"==typeof e)return e;let t=decodeURIComponent(e.src.replace(/[?#].*$/,""));return t.startsWith(k)?t.slice(k.length):t}(e),D("string"==typeof e?x(e):e.src).resolve()),null!=t){for(let e of t.otherChunks)D(x("string"==typeof e?e:e.path));if(await Promise.all(t.otherChunks.map(e=>{var t;return t=r,j(o.Runtime,t,e)})),t.runtimeModuleIds.length>0)for(let e of t.runtimeModuleIds)!function(e,t){let r=L.get(t);if(r){if(r.error)throw r.error;return}I(t,o.Runtime,e)}(r,e)}},loadChunkCached:(e,t)=>W(e,t)},globalThis.TURBOPACK={push:H},r.forEach(H)})(); \ No newline at end of file diff --git a/e-commerce/.next/static/dRI9LFT7roNJ8J1q20Bu8/_buildManifest.js b/e-commerce/.next/static/dRI9LFT7roNJ8J1q20Bu8/_buildManifest.js new file mode 100644 index 0000000000000000000000000000000000000000..94ca9144a90a44423af7e2220ff909365ae4d5c3 --- /dev/null +++ b/e-commerce/.next/static/dRI9LFT7roNJ8J1q20Bu8/_buildManifest.js @@ -0,0 +1,11 @@ +self.__BUILD_MANIFEST = { + "__rewrites": { + "afterFiles": [], + "beforeFiles": [], + "fallback": [] + }, + "sortedPages": [ + "/_app", + "/_error" + ] +};self.__BUILD_MANIFEST_CB && self.__BUILD_MANIFEST_CB() \ No newline at end of file diff --git a/e-commerce/.next/static/dRI9LFT7roNJ8J1q20Bu8/_clientMiddlewareManifest.js b/e-commerce/.next/static/dRI9LFT7roNJ8J1q20Bu8/_clientMiddlewareManifest.js new file mode 100644 index 0000000000000000000000000000000000000000..97da57be34cffbb97133e61455ac376626224e89 --- /dev/null +++ b/e-commerce/.next/static/dRI9LFT7roNJ8J1q20Bu8/_clientMiddlewareManifest.js @@ -0,0 +1,10 @@ +self.__MIDDLEWARE_MATCHERS = [ + { + "regexp": "^(?:\\/(_next\\/data\\/[^/]{1,}))?(?:\\/(en|bn))(\\.json|\\.rsc|\\.segments\\/.+\\.segment\\.rsc)?[\\/#\\?]?$", + "originalSource": "/(en|bn)" + }, + { + "regexp": "^(?:\\/(_next\\/data\\/[^/]{1,}))?(?:\\/(en|bn))(?:\\/((?:[^\\/#\\?]+?)(?:\\/(?:[^\\/#\\?]+?))*))?(\\.json|\\.rsc|\\.segments\\/.+\\.segment\\.rsc)?[\\/#\\?]?$", + "originalSource": "/(en|bn)/:path*" + } +];self.__MIDDLEWARE_MATCHERS_CB && self.__MIDDLEWARE_MATCHERS_CB() \ No newline at end of file diff --git a/e-commerce/.next/static/dRI9LFT7roNJ8J1q20Bu8/_ssgManifest.js b/e-commerce/.next/static/dRI9LFT7roNJ8J1q20Bu8/_ssgManifest.js new file mode 100644 index 0000000000000000000000000000000000000000..8de6a0871378c6ffdb73b6435b716a960c2e2d35 --- /dev/null +++ b/e-commerce/.next/static/dRI9LFT7roNJ8J1q20Bu8/_ssgManifest.js @@ -0,0 +1 @@ +self.__SSG_MANIFEST=new Set(["\u002F[locale]","\u002F[locale]\u002Fcatalog\u002Fcategory\u002F[slug]"]);self.__SSG_MANIFEST_CB&&self.__SSG_MANIFEST_CB() \ No newline at end of file diff --git a/e-commerce/.next/static/media/4fa387ec64143e14-s.2tuy5pz7dlieh.woff2 b/e-commerce/.next/static/media/4fa387ec64143e14-s.2tuy5pz7dlieh.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..4fc15d1f2063f9d57fa838a4b574b5bce2c5c543 Binary files /dev/null and b/e-commerce/.next/static/media/4fa387ec64143e14-s.2tuy5pz7dlieh.woff2 differ diff --git a/e-commerce/.next/static/media/53b9e256198e5412-s.390ncx5urfkfu.woff2 b/e-commerce/.next/static/media/53b9e256198e5412-s.390ncx5urfkfu.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..0bcca1b23700da8d9f4d9f5e8378c3f9df09f574 Binary files /dev/null and b/e-commerce/.next/static/media/53b9e256198e5412-s.390ncx5urfkfu.woff2 differ diff --git a/e-commerce/.next/static/media/5ce348bf30bf5439-s.31988l_ccedte.woff2 b/e-commerce/.next/static/media/5ce348bf30bf5439-s.31988l_ccedte.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..c7700cdf138beb733715d1183c3ee7e133e74b34 Binary files /dev/null and b/e-commerce/.next/static/media/5ce348bf30bf5439-s.31988l_ccedte.woff2 differ diff --git a/e-commerce/.next/static/media/6306c77e7c8268e4-s.2dbetqa9o8jxf.woff2 b/e-commerce/.next/static/media/6306c77e7c8268e4-s.2dbetqa9o8jxf.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..29dd20f51912fa953d41ebf851e1d5c646492198 Binary files /dev/null and b/e-commerce/.next/static/media/6306c77e7c8268e4-s.2dbetqa9o8jxf.woff2 differ diff --git a/e-commerce/.next/static/media/7178b3e590c64307-s.21jp631_3pja2.woff2 b/e-commerce/.next/static/media/7178b3e590c64307-s.21jp631_3pja2.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..8a1d3df6272a20ed445a030a88121222e5d78ba9 Binary files /dev/null and b/e-commerce/.next/static/media/7178b3e590c64307-s.21jp631_3pja2.woff2 differ diff --git a/e-commerce/.next/static/media/797e433ab948586e-s.p.0r6juujl39pe6.woff2 b/e-commerce/.next/static/media/797e433ab948586e-s.p.0r6juujl39pe6.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..cf24126b086f12217076c4902c7c6d58e4f52c75 Binary files /dev/null and b/e-commerce/.next/static/media/797e433ab948586e-s.p.0r6juujl39pe6.woff2 differ diff --git a/e-commerce/.next/static/media/7d817b4c03b0c5f1-s.1uyisp29ctx0d.woff2 b/e-commerce/.next/static/media/7d817b4c03b0c5f1-s.1uyisp29ctx0d.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..873f580e33dec394e6f16a87d07dc0000e50cb17 Binary files /dev/null and b/e-commerce/.next/static/media/7d817b4c03b0c5f1-s.1uyisp29ctx0d.woff2 differ diff --git a/e-commerce/.next/static/media/8a480f0b521d4e75-s.1qq4vpdcun5oj.woff2 b/e-commerce/.next/static/media/8a480f0b521d4e75-s.1qq4vpdcun5oj.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..f385e23aef6ad470b8d7a5322452529a0d818127 Binary files /dev/null and b/e-commerce/.next/static/media/8a480f0b521d4e75-s.1qq4vpdcun5oj.woff2 differ diff --git a/e-commerce/.next/static/media/bbc41e54d2fcbd21-s.1rgnod-3esatf.woff2 b/e-commerce/.next/static/media/bbc41e54d2fcbd21-s.1rgnod-3esatf.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..751a04d2f91922f3ef1510562505dcbb2a461521 Binary files /dev/null and b/e-commerce/.next/static/media/bbc41e54d2fcbd21-s.1rgnod-3esatf.woff2 differ diff --git a/e-commerce/.next/static/media/caa3a2e1cccd8315-s.p.0wgildi0cnwt9.woff2 b/e-commerce/.next/static/media/caa3a2e1cccd8315-s.p.0wgildi0cnwt9.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..8f01e7630ba2f88ffa1acd90d69f67efb5bd3092 Binary files /dev/null and b/e-commerce/.next/static/media/caa3a2e1cccd8315-s.p.0wgildi0cnwt9.woff2 differ diff --git a/e-commerce/.next/static/media/favicon.117ezoe8m31dk.ico b/e-commerce/.next/static/media/favicon.117ezoe8m31dk.ico new file mode 100644 index 0000000000000000000000000000000000000000..af98450595e8b8efd9e505cddc5ed705b665a4d8 Binary files /dev/null and b/e-commerce/.next/static/media/favicon.117ezoe8m31dk.ico differ diff --git a/e-commerce/.next/static/media/fef07dbb0973bf53-s.3p2_lha1f2xer.woff2 b/e-commerce/.next/static/media/fef07dbb0973bf53-s.3p2_lha1f2xer.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..7ab581f7b347b642702d806e03391499013b6462 Binary files /dev/null and b/e-commerce/.next/static/media/fef07dbb0973bf53-s.3p2_lha1f2xer.woff2 differ diff --git a/e-commerce/.next/trace b/e-commerce/.next/trace new file mode 100644 index 0000000000000000000000000000000000000000..e2f56e8de033e1a8dd4eb5ca5c57e64c9cbd87d5 --- /dev/null +++ b/e-commerce/.next/trace @@ -0,0 +1 @@ +[{"name":"generate-buildid","duration":186,"timestamp":21726579514,"id":4,"parentId":1,"tags":{},"startTime":1791887942754,"traceId":"59daec005f892518"},{"name":"load-custom-routes","duration":371,"timestamp":21726579916,"id":5,"parentId":1,"tags":{},"startTime":1791887942755,"traceId":"59daec005f892518"},{"name":"create-dist-dir","duration":6460,"timestamp":21726580328,"id":6,"parentId":1,"tags":{},"startTime":1791887942755,"traceId":"59daec005f892518"},{"name":"clean","duration":80204,"timestamp":21726588045,"id":7,"parentId":1,"tags":{},"startTime":1791887942763,"traceId":"59daec005f892518"},{"name":"discover-routes","duration":9349,"timestamp":21726682788,"id":8,"parentId":1,"tags":{},"startTime":1791887942858,"traceId":"59daec005f892518"},{"name":"create-root-mapping","duration":219,"timestamp":21726692199,"id":9,"parentId":1,"tags":{},"startTime":1791887942867,"traceId":"59daec005f892518"},{"name":"generate-route-types","duration":15725,"timestamp":21726693667,"id":10,"parentId":1,"tags":{},"startTime":1791887942869,"traceId":"59daec005f892518"},{"name":"public-dir-conflict-check","duration":69,"timestamp":21726709555,"id":11,"parentId":1,"tags":{},"startTime":1791887942884,"traceId":"59daec005f892518"},{"name":"generate-routes-manifest","duration":2172,"timestamp":21726709707,"id":12,"parentId":1,"tags":{},"startTime":1791887942885,"traceId":"59daec005f892518"},{"name":"turbopack-emit","duration":261000,"timestamp":21732356550,"id":15,"parentId":1,"tags":{},"startTime":1791887948531,"traceId":"59daec005f892518"},{"name":"run-turbopack","duration":6062960,"timestamp":21726716383,"id":14,"parentId":1,"tags":{},"startTime":1791887942891,"traceId":"59daec005f892518"},{"name":"turbopack-persistence","duration":1283000,"timestamp":21732778865,"id":19,"parentId":1,"tags":{"reason":"stop","snapshot_duration_ms":2.509608,"persist_duration_ms":1279.629914,"task_count":532,"bytes_written":508092,"bytes_deleted":0},"startTime":1791887948954,"traceId":"59daec005f892518"},{"name":"run-typescript","duration":2090009,"timestamp":21732784852,"id":18,"parentId":1,"tags":{},"startTime":1791887948960,"traceId":"59daec005f892518"},{"name":"generate-required-server-files","duration":1017,"timestamp":21734875504,"id":22,"parentId":1,"tags":{},"startTime":1791887951050,"traceId":"59daec005f892518"},{"name":"check-static-error-page","duration":18727,"timestamp":21734974949,"id":24,"parentId":23,"tags":{},"startTime":1791887951150,"traceId":"59daec005f892518"},{"name":"is-page-static","duration":1255146,"timestamp":21734997280,"id":33,"parentId":26,"tags":{},"startTime":1791887951172,"traceId":"59daec005f892518"},{"name":"check-page","duration":1273777,"timestamp":21734978758,"id":26,"parentId":23,"tags":{"page":"/_global-error"},"startTime":1791887951154,"traceId":"59daec005f892518"},{"name":"is-page-static","duration":1488779,"timestamp":21734997404,"id":34,"parentId":30,"tags":{},"startTime":1791887951172,"traceId":"59daec005f892518"},{"name":"check-page","duration":1493527,"timestamp":21734992737,"id":30,"parentId":23,"tags":{"page":"/favicon.ico"},"startTime":1791887951168,"traceId":"59daec005f892518"},{"name":"is-page-static","duration":1507138,"timestamp":21734996455,"id":32,"parentId":25,"tags":{},"startTime":1791887951171,"traceId":"59daec005f892518"},{"name":"check-page","duration":1526120,"timestamp":21734977555,"id":25,"parentId":23,"tags":{"page":"/_not-found"},"startTime":1791887951152,"traceId":"59daec005f892518"},{"name":"is-page-static","duration":1491976,"timestamp":21735028507,"id":35,"parentId":31,"tags":{},"startTime":1791887951203,"traceId":"59daec005f892518"},{"name":"check-page","duration":1527285,"timestamp":21734993278,"id":31,"parentId":23,"tags":{"page":"/"},"startTime":1791887951168,"traceId":"59daec005f892518"},{"name":"is-page-static","duration":1529894,"timestamp":21735028666,"id":36,"parentId":29,"tags":{},"startTime":1791887951204,"traceId":"59daec005f892518"},{"name":"check-page","duration":1570419,"timestamp":21734988375,"id":29,"parentId":23,"tags":{"page":"/[locale]"},"startTime":1791887951163,"traceId":"59daec005f892518"},{"name":"is-page-static","duration":1545049,"timestamp":21735028773,"id":37,"parentId":27,"tags":{},"startTime":1791887951204,"traceId":"59daec005f892518"},{"name":"check-page","duration":1594697,"timestamp":21734979207,"id":27,"parentId":23,"tags":{"page":"/[locale]/catalog/category/[slug]"},"startTime":1791887951154,"traceId":"59daec005f892518"},{"name":"is-page-static","duration":1552334,"timestamp":21735028873,"id":38,"parentId":28,"tags":{},"startTime":1791887951204,"traceId":"59daec005f892518"},{"name":"check-page","duration":1593568,"timestamp":21734987685,"id":28,"parentId":23,"tags":{"page":"/[locale]/catalog/product/[slug]"},"startTime":1791887951163,"traceId":"59daec005f892518"},{"name":"static-check","duration":1606803,"timestamp":21734974479,"id":23,"parentId":1,"tags":{},"startTime":1791887951149,"traceId":"59daec005f892518"},{"name":"write-routes-manifest","duration":352,"timestamp":21736585227,"id":40,"parentId":1,"tags":{},"startTime":1791887952760,"traceId":"59daec005f892518"},{"name":"load-dotenv","duration":26,"timestamp":21736603841,"id":43,"parentId":42,"tags":{},"startTime":1791887952779,"traceId":"59daec005f892518"},{"name":"run-export-path-map","duration":383,"timestamp":21736606419,"id":44,"parentId":42,"tags":{},"startTime":1791887952781,"traceId":"59daec005f892518"},{"name":"next-export","duration":546702,"timestamp":21736602896,"id":42,"parentId":1,"tags":{},"startTime":1791887952778,"traceId":"59daec005f892518"},{"name":"move-exported-app-not-found-","duration":1429,"timestamp":21737152455,"id":45,"parentId":41,"tags":{},"startTime":1791887953327,"traceId":"59daec005f892518"},{"name":"move-exported-app-global-error-","duration":885,"timestamp":21737153971,"id":46,"parentId":41,"tags":{},"startTime":1791887953329,"traceId":"59daec005f892518"},{"name":"static-generation","duration":567496,"timestamp":21736587734,"id":41,"parentId":1,"tags":{},"startTime":1791887952763,"traceId":"59daec005f892518"},{"name":"write-routes-manifest","duration":441,"timestamp":21737155412,"id":47,"parentId":1,"tags":{},"startTime":1791887953330,"traceId":"59daec005f892518"},{"name":"print-tree-view","duration":3573,"timestamp":21737169186,"id":48,"parentId":1,"tags":{},"startTime":1791887953344,"traceId":"59daec005f892518"},{"name":"write-route-bundle-stats","duration":11928,"timestamp":21737172806,"id":49,"parentId":1,"tags":{},"startTime":1791887953348,"traceId":"59daec005f892518"},{"name":"telemetry-flush","duration":472936,"timestamp":21737184765,"id":50,"parentId":1,"tags":{},"startTime":1791887953360,"traceId":"59daec005f892518"},{"name":"next-build","duration":11198541,"timestamp":21726459202,"id":1,"tags":{"buildMode":"default","version":"16.4.0","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1791887942634,"traceId":"59daec005f892518"}] diff --git a/e-commerce/.next/trace-build b/e-commerce/.next/trace-build new file mode 100644 index 0000000000000000000000000000000000000000..8b5c861bf14727cdd29dded13cef31b4d7f30d38 --- /dev/null +++ b/e-commerce/.next/trace-build @@ -0,0 +1 @@ +[{"name":"turbopack-emit","duration":261000,"timestamp":21732356550,"id":15,"parentId":1,"tags":{},"startTime":1791887948531,"traceId":"59daec005f892518"},{"name":"run-turbopack","duration":6062960,"timestamp":21726716383,"id":14,"parentId":1,"tags":{},"startTime":1791887942891,"traceId":"59daec005f892518"},{"name":"turbopack-persistence","duration":1283000,"timestamp":21732778865,"id":19,"parentId":1,"tags":{"reason":"stop","snapshot_duration_ms":2.509608,"persist_duration_ms":1279.629914,"task_count":532,"bytes_written":508092,"bytes_deleted":0},"startTime":1791887948954,"traceId":"59daec005f892518"},{"name":"run-typescript","duration":2090009,"timestamp":21732784852,"id":18,"parentId":1,"tags":{},"startTime":1791887948960,"traceId":"59daec005f892518"},{"name":"static-check","duration":1606803,"timestamp":21734974479,"id":23,"parentId":1,"tags":{},"startTime":1791887951149,"traceId":"59daec005f892518"},{"name":"static-generation","duration":567496,"timestamp":21736587734,"id":41,"parentId":1,"tags":{},"startTime":1791887952763,"traceId":"59daec005f892518"},{"name":"telemetry-flush","duration":472936,"timestamp":21737184765,"id":50,"parentId":1,"tags":{},"startTime":1791887953360,"traceId":"59daec005f892518"},{"name":"next-build","duration":11198541,"timestamp":21726459202,"id":1,"tags":{"buildMode":"default","version":"16.4.0","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1791887942634,"traceId":"59daec005f892518"}] diff --git a/e-commerce/.next/turbopack b/e-commerce/.next/turbopack new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/e-commerce/.next/types/cache-life.d.ts b/e-commerce/.next/types/cache-life.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..1f109c037f627b4bffb4a0fa699afcf354d4f99a --- /dev/null +++ b/e-commerce/.next/types/cache-life.d.ts @@ -0,0 +1,114 @@ +// Type definitions for Next.js cacheLife configs + +export {} + +declare module 'next/cache' { + export interface CacheLifeProfiles { + "default": true + "seconds": true + "minutes": true + "hours": true + "days": true + "weeks": true + "max": true + } + + /** + * Cache this `"use cache"` for a timespan defined by the `"default"` profile. + * ``` + * stale: 300 seconds (5 minutes) + * revalidate: 900 seconds (15 minutes) + * expire: never + * ``` + * + * This cache may be stale on clients for 5 minutes before checking with the server. + * If the server receives a new request after 15 minutes, start revalidating new values in the background. + * It lives for the maximum age of the server cache. If this entry has no traffic for a while, it may serve an old value the next request. + */ + export function cacheLife(profile: "default"): void + + /** + * Cache this `"use cache"` for a timespan defined by the `"seconds"` profile. + * ``` + * stale: 30 seconds + * revalidate: 1 seconds + * expire: 60 seconds (1 minute) + * ``` + * + * This cache may be stale on clients for 30 seconds before checking with the server. + * If the server receives a new request after 1 seconds, start revalidating new values in the background. + * If this entry has no traffic for 1 minute it will expire. The next request will recompute it. + */ + export function cacheLife(profile: "seconds"): void + + /** + * Cache this `"use cache"` for a timespan defined by the `"minutes"` profile. + * ``` + * stale: 300 seconds (5 minutes) + * revalidate: 60 seconds (1 minute) + * expire: 3600 seconds (1 hour) + * ``` + * + * This cache may be stale on clients for 5 minutes before checking with the server. + * If the server receives a new request after 1 minute, start revalidating new values in the background. + * If this entry has no traffic for 1 hour it will expire. The next request will recompute it. + */ + export function cacheLife(profile: "minutes"): void + + /** + * Cache this `"use cache"` for a timespan defined by the `"hours"` profile. + * ``` + * stale: 300 seconds (5 minutes) + * revalidate: 3600 seconds (1 hour) + * expire: 86400 seconds (1 day) + * ``` + * + * This cache may be stale on clients for 5 minutes before checking with the server. + * If the server receives a new request after 1 hour, start revalidating new values in the background. + * If this entry has no traffic for 1 day it will expire. The next request will recompute it. + */ + export function cacheLife(profile: "hours"): void + + /** + * Cache this `"use cache"` for a timespan defined by the `"days"` profile. + * ``` + * stale: 300 seconds (5 minutes) + * revalidate: 86400 seconds (1 day) + * expire: 604800 seconds (1 week) + * ``` + * + * This cache may be stale on clients for 5 minutes before checking with the server. + * If the server receives a new request after 1 day, start revalidating new values in the background. + * If this entry has no traffic for 1 week it will expire. The next request will recompute it. + */ + export function cacheLife(profile: "days"): void + + /** + * Cache this `"use cache"` for a timespan defined by the `"weeks"` profile. + * ``` + * stale: 300 seconds (5 minutes) + * revalidate: 604800 seconds (1 week) + * expire: 2592000 seconds (1 month) + * ``` + * + * This cache may be stale on clients for 5 minutes before checking with the server. + * If the server receives a new request after 1 week, start revalidating new values in the background. + * If this entry has no traffic for 1 month it will expire. The next request will recompute it. + */ + export function cacheLife(profile: "weeks"): void + + /** + * Cache this `"use cache"` for a timespan defined by the `"max"` profile. + * ``` + * stale: 300 seconds (5 minutes) + * revalidate: 2592000 seconds (1 month) + * expire: 31536000 seconds (365 days) + * ``` + * + * This cache may be stale on clients for 5 minutes before checking with the server. + * If the server receives a new request after 1 month, start revalidating new values in the background. + * If this entry has no traffic for 365 days it will expire. The next request will recompute it. + */ + export function cacheLife(profile: "max"): void + +} diff --git a/e-commerce/.next/types/root-params.d.ts b/e-commerce/.next/types/root-params.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..7df36c33d8069b0b44978e0164f338712108c0b4 --- /dev/null +++ b/e-commerce/.next/types/root-params.d.ts @@ -0,0 +1,3 @@ +// Type definitions for Next.js root params (next/root-params) +// No root params detected. +export {} diff --git a/e-commerce/.next/types/routes.d.ts b/e-commerce/.next/types/routes.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..15dcb39ad1464df54bfb66f0a13d7f7a7d68be78 --- /dev/null +++ b/e-commerce/.next/types/routes.d.ts @@ -0,0 +1,61 @@ +// This file is generated automatically by Next.js +// Do not edit this file manually + +type AppRoutes = "/" | "/[locale]" | "/[locale]/catalog/category/[slug]" | "/[locale]/catalog/product/[slug]" +type PageRoutes = never +type LayoutRoutes = "/" | "/[locale]" +type RedirectRoutes = never +type RewriteRoutes = never +type Routes = AppRoutes | PageRoutes | LayoutRoutes | RedirectRoutes | RewriteRoutes + + +interface ParamMap { + "/": {} + "/[locale]": { "locale": string; } + "/[locale]/catalog/category/[slug]": { "locale": string; "slug": string; } + "/[locale]/catalog/product/[slug]": { "locale": string; "slug": string; } +} + + +export type ParamsOf = ParamMap[Route] + +interface LayoutSlotMap { + "/": never + "/[locale]": never +} + + +export type { AppRoutes, PageRoutes, LayoutRoutes, RedirectRoutes, RewriteRoutes, ParamMap } + +declare global { + /** + * Props for Next.js App Router page components + * @example + * ```tsx + * export default function Page(props: PageProps<'/blog/[slug]'>) { + * const { slug } = await props.params + * return
Blog post: {slug}
+ * } + * ``` + */ + interface PageProps { + params: Promise + searchParams: Promise> + } + + /** + * Props for Next.js App Router layout components + * @example + * ```tsx + * export default function Layout(props: LayoutProps<'/dashboard'>) { + * return
{props.children}
+ * } + * ``` + */ + type LayoutProps = { + params: Promise + children: React.ReactNode + } & { + [K in LayoutSlotMap[LayoutRoute]]: React.ReactNode + } +} diff --git a/e-commerce/.next/types/validator.ts b/e-commerce/.next/types/validator.ts new file mode 100644 index 0000000000000000000000000000000000000000..373b82a630a1dc32fdcd3752752e58b8f4792f51 --- /dev/null +++ b/e-commerce/.next/types/validator.ts @@ -0,0 +1,150 @@ +// This file is generated automatically by Next.js +// Do not edit this file manually +// This file validates that all pages and layouts export the correct types + +import type { AppRoutes, LayoutRoutes, ParamMap } from "./routes.js" +import type { ResolvingMetadata, ResolvingViewport } from "next/types.js" + +type ParamMatchFragment = Partial> +type ParamMatchingExports = + | { unstable_paramMatching?: ParamMatchFragment; unstable_generateParamMatching?: never } + | { unstable_paramMatching?: never; unstable_generateParamMatching?: () => Promise> | ParamMatchFragment } + +type AppPageConfig = { + default: React.ComponentType<{ params: Promise } & any> | ((props: { params: Promise } & any) => React.ReactNode | Promise | never | void | Promise) + generateStaticParams?: (props: { params: ParamMap[Route] }) => Promise | any[] + generateMetadata?: ( + props: { params: Promise } & any, + parent: ResolvingMetadata + ) => Promise | any + generateViewport?: ( + props: { params: Promise } & any, + parent: ResolvingViewport + ) => Promise | any + metadata?: any + viewport?: any +} & ParamMatchingExports + +type LayoutConfig = { + default: React.ComponentType> | ((props: LayoutProps) => React.ReactNode | Promise | never | void | Promise) + generateStaticParams?: (props: { params: ParamMap[Route] }) => Promise | any[] + generateMetadata?: ( + props: { params: Promise } & any, + parent: ResolvingMetadata + ) => Promise | any + generateViewport?: ( + props: { params: Promise } & any, + parent: ResolvingViewport + ) => Promise | any + metadata?: any + viewport?: any +} & ParamMatchingExports + + +// Validate ../../app/[locale]/catalog/category/[slug]/page.tsx +{ + type __IsExpected> = Specific + const handler = {} as typeof import("../../app/[locale]/catalog/category/[slug]/page.js") + type __Check = __IsExpected + + type __ParamMatchingValue = + typeof handler extends { unstable_paramMatching: infer Matcher } ? Matcher : + typeof handler extends { unstable_generateParamMatching: (...args: any[]) => infer Matcher } ? Awaited : {} + type __InvalidParamMatchingKeys = Exclude + type __AssertNoInvalidParamMatchingKeys = Invalid + const __paramMatchingKeyCheck: __AssertNoInvalidParamMatchingKeys<__InvalidParamMatchingKeys> | undefined = undefined + void __paramMatchingKeyCheck + // @ts-ignore + type __Unused = __Check +} + +// Validate ../../app/[locale]/catalog/product/[slug]/page.tsx +{ + type __IsExpected> = Specific + const handler = {} as typeof import("../../app/[locale]/catalog/product/[slug]/page.js") + type __Check = __IsExpected + + type __ParamMatchingValue = + typeof handler extends { unstable_paramMatching: infer Matcher } ? Matcher : + typeof handler extends { unstable_generateParamMatching: (...args: any[]) => infer Matcher } ? Awaited : {} + type __InvalidParamMatchingKeys = Exclude + type __AssertNoInvalidParamMatchingKeys = Invalid + const __paramMatchingKeyCheck: __AssertNoInvalidParamMatchingKeys<__InvalidParamMatchingKeys> | undefined = undefined + void __paramMatchingKeyCheck + // @ts-ignore + type __Unused = __Check +} + +// Validate ../../app/[locale]/page.tsx +{ + type __IsExpected> = Specific + const handler = {} as typeof import("../../app/[locale]/page.js") + type __Check = __IsExpected + + type __ParamMatchingValue = + typeof handler extends { unstable_paramMatching: infer Matcher } ? Matcher : + typeof handler extends { unstable_generateParamMatching: (...args: any[]) => infer Matcher } ? Awaited : {} + type __InvalidParamMatchingKeys = Exclude + type __AssertNoInvalidParamMatchingKeys = Invalid + const __paramMatchingKeyCheck: __AssertNoInvalidParamMatchingKeys<__InvalidParamMatchingKeys> | undefined = undefined + void __paramMatchingKeyCheck + // @ts-ignore + type __Unused = __Check +} + +// Validate ../../app/page.tsx +{ + type __IsExpected> = Specific + const handler = {} as typeof import("../../app/page.js") + type __Check = __IsExpected + + type __ParamMatchingValue = + typeof handler extends { unstable_paramMatching: infer Matcher } ? Matcher : + typeof handler extends { unstable_generateParamMatching: (...args: any[]) => infer Matcher } ? Awaited : {} + type __InvalidParamMatchingKeys = Exclude + type __AssertNoInvalidParamMatchingKeys = Invalid + const __paramMatchingKeyCheck: __AssertNoInvalidParamMatchingKeys<__InvalidParamMatchingKeys> | undefined = undefined + void __paramMatchingKeyCheck + // @ts-ignore + type __Unused = __Check +} + + + + + + + +// Validate ../../app/[locale]/layout.tsx +{ + type __IsExpected> = Specific + const handler = {} as typeof import("../../app/[locale]/layout.js") + type __Check = __IsExpected + + type __ParamMatchingValue = + typeof handler extends { unstable_paramMatching: infer Matcher } ? Matcher : + typeof handler extends { unstable_generateParamMatching: (...args: any[]) => infer Matcher } ? Awaited : {} + type __InvalidParamMatchingKeys = Exclude + type __AssertNoInvalidParamMatchingKeys = Invalid + const __paramMatchingKeyCheck: __AssertNoInvalidParamMatchingKeys<__InvalidParamMatchingKeys> | undefined = undefined + void __paramMatchingKeyCheck + // @ts-ignore + type __Unused = __Check +} + +// Validate ../../app/layout.tsx +{ + type __IsExpected> = Specific + const handler = {} as typeof import("../../app/layout.js") + type __Check = __IsExpected + + type __ParamMatchingValue = + typeof handler extends { unstable_paramMatching: infer Matcher } ? Matcher : + typeof handler extends { unstable_generateParamMatching: (...args: any[]) => infer Matcher } ? Awaited : {} + type __InvalidParamMatchingKeys = Exclude + type __AssertNoInvalidParamMatchingKeys = Invalid + const __paramMatchingKeyCheck: __AssertNoInvalidParamMatchingKeys<__InvalidParamMatchingKeys> | undefined = undefined + void __paramMatchingKeyCheck + // @ts-ignore + type __Unused = __Check +} diff --git a/e-commerce/app/[locale]/catalog/category/[slug]/page.tsx b/e-commerce/app/[locale]/catalog/category/[slug]/page.tsx new file mode 100644 index 0000000000000000000000000000000000000000..22b8fdea98fd9f6f32b00f0675d8165efb663ecf --- /dev/null +++ b/e-commerce/app/[locale]/catalog/category/[slug]/page.tsx @@ -0,0 +1,161 @@ +import { notFound } from "next/navigation"; +import Link from "next/link"; +import { getTranslations } from "next-intl/server"; +import { ArrowLeft } from "lucide-react"; +import { Button } from "@/components/ui/button"; +import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card"; +import { Badge } from "@/components/ui/badge"; +import type { Metadata } from "next"; +import { db, schema } from "@/db"; +import { eq, and, gt, isNull } from "drizzle-orm"; +import { formatINR } from "@/lib/format-inr"; +import { rupees } from "@/lib/money"; +import type { Locale } from "@/i18n/routing"; +import { locales, defaultLocale } from "@/i18n/routing"; + +type Props = { + params: Promise<{ locale: string; slug: string }>; +}; + +export async function generateStaticParams() { + return locales.flatMap((locale) => [ + { locale, slug: "men-tshirts" }, + ]); +} + +export async function generateMetadata({ params }: { params: Promise<{ locale: string; slug: string }> }): Promise { + const { locale, slug } = await params; + const resolvedLocale: Locale = + locale != null && locale !== "" && locales.includes(locale as Locale) + ? (locale as Locale) + : defaultLocale; + const [categoryMeta] = await db + .select() + .from(schema.categories) + .where(eq(schema.categories.slug, slug)) + .limit(1); + const metaCategoryName = categoryMeta ? (resolvedLocale === "bn" ? categoryMeta.nameBn : categoryMeta.nameEn) : slug; + const t = await getTranslations({ locale: resolvedLocale, namespace: "catalog" }); + return { + title: t("category.metaTitle", { title: metaCategoryName }), + description: t("category.metaDescription"), + }; +} + +export default async function CategoryPage({ params }: Props) { + const { locale, slug } = await params; + const resolvedLocale: Locale = + locale != null && locale !== "" && locales.includes(locale as Locale) + ? (locale as Locale) + : defaultLocale; + + // Same guard as the product page: an invalid locale slug should 404 rather + // than render the English category page under a wrong path. + if (locale != null && locale !== "" && !locales.includes(locale as Locale)) { + notFound(); + } + + const t = await getTranslations({ locale: resolvedLocale, namespace: "catalog" }); + + const [category] = await db + .select() + .from(schema.categories) + .where(eq(schema.categories.slug, slug)) + .limit(1); + + if (!category) { + notFound(); + } + + const categoryName = resolvedLocale === "bn" ? category.nameBn : category.nameEn; + + // Active products: status='active' and at least one active variant with stock. + const products = await db + .select({ + product: schema.products, + variant: schema.variants, + inventory: schema.inventory, + }) + .from(schema.products) + .leftJoin(schema.variants, and(eq(schema.variants.productId, schema.products.id), eq(schema.variants.isActive, true))) + .leftJoin(schema.inventory, eq(schema.inventory.variantId, schema.variants.id)) + .where( + and( + eq(schema.products.status, "active"), + eq(schema.products.categoryId, category.id) + ) + ) + .limit(50); + + // Filter to products that have at least one active variant with stock. + const inStockProductIds = new Set(); + for (const row of products) { + if (row.variant && row.inventory && row.variant.isActive && row.inventory.quantity - row.inventory.reserved > 0) { + inStockProductIds.add(row.product.id); + } + } + + const listedProducts = products.filter((row) => inStockProductIds.has(row.product.id)); + + // Build a unique product list with a representative variant price/stock. + const productMap = new Map(); + for (const row of listedProducts) { + if (!productMap.has(row.product.id)) { + productMap.set(row.product.id, { product: row.product, variant: row.variant, inventory: row.inventory }); + } + } + + return ( +
+
+ + + {t("back")} + +
+ +

{categoryName}

+ + + +

{t("category.hero")}

+
+ + {productMap.size === 0 ? ( +
{t("category.empty")}
+ ) : ( +
+ {Array.from(productMap.values()).map(({ product, variant, inventory }) => { + const title = resolvedLocale === "bn" ? product.titleBn : product.titleEn; + const available = inventory ? inventory.quantity - inventory.reserved : 0; + return ( + + + {title} + {product.hsn && ( + + HSN {product.hsn} + + )} + + +
{formatINR(product.basePriceRupees, resolvedLocale === "bn" ? "bn" : "en", { showSymbol: true })}
+
+ {available > 0 ? `${available} ${t("units")}` : t("outOfStock")} +
+ + + +
+
+ ); + })} +
+ )} + +
+ {t("category.footer")} +
+
+ ); +} diff --git a/e-commerce/app/[locale]/catalog/product/[slug]/page.tsx b/e-commerce/app/[locale]/catalog/product/[slug]/page.tsx new file mode 100644 index 0000000000000000000000000000000000000000..00527c57650590e8d21e5bb453af5b9fc9501f7f --- /dev/null +++ b/e-commerce/app/[locale]/catalog/product/[slug]/page.tsx @@ -0,0 +1,176 @@ +import { notFound } from "next/navigation"; +import Link from "next/link"; +import { getTranslations } from "next-intl/server"; +import { ArrowLeft } from "lucide-react"; +import { Button } from "@/components/ui/button"; +import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card"; +import { Badge } from "@/components/ui/badge"; +import type { Metadata } from "next"; +import { db, schema } from "@/db"; +import { eq } from "drizzle-orm"; +import { formatINR } from "@/lib/format-inr"; +import { rupees } from "@/lib/money"; +import type { Locale } from "@/i18n/routing"; +import { locales, defaultLocale } from "@/i18n/routing"; + +// Dynamic per-request product page. We use a per-segment `dynamic` here because +// product slugs aren't enumerated at build time (and we don't want to hard-code +// a product list in generateStaticParams). NOTE: `cacheComponents: true` in +// next.config.ts is INCOMPATIBLE with per-segment `dynamic`, so the production +// build needs cacheComponents OFF for this page to build. See the note in +// next.config.ts. For dev, keep both on; for prod builds, drop cacheComponents +// (or move this page to static via generateStaticParams over seeded slugs). +export const dynamic = "force-dynamic"; + + + +type Props = { + params: Promise<{ locale: string; slug: string }>; +}; + +export async function generateStaticParams() { + // Static for seeded slugs only. When we add products dynamically we revisit + // per-segment `dynamic` vs cacheComponents (see PROJECT_MEMORY §8 Phase 1 note). + const seedSlugs = ["classic-crew-neck-tshirt"]; + return locales.flatMap((locale) => + seedSlugs.map((slug) => ({ locale, slug })) + ); +} + +export async function generateMetadata({ params }: { params: Promise<{ locale: string; slug: string }> }): Promise { + const { locale, slug } = await params; + const resolvedLocale: Locale = + locale != null && locale !== "" && locales.includes(locale as Locale) + ? (locale as Locale) + : defaultLocale; + const t = await getTranslations({ locale: resolvedLocale, namespace: "catalog" }); + return { + title: t("product.metaTitle", { title: slug }), + description: t("product.metaDescription"), + }; +} + +export default async function ProductPage({ params }: Props) { + const { locale, slug } = await params; + const resolvedLocale: Locale = + locale != null && locale !== "" && locales.includes(locale as Locale) + ? (locale as Locale) + : defaultLocale; + + // Guard against an invalid locale slug that resolved to the default locale at + // build time. We only want the default locale to be used when the request + // really had no locale (prefetch/validation edge case). A real request for + // /zz/something should 404, not render the English page. We re-check the raw + // params here so the generated metadata/pathname already claims the 404 + // instead of a default-locale page. + if (locale != null && locale !== "" && !locales.includes(locale as Locale)) { + notFound(); + } + + const t = await getTranslations({ locale: resolvedLocale, namespace: "catalog" }); + + const [product] = await db + .select() + .from(schema.products) + .where(eq(schema.products.slug, slug)) + .limit(1); + + if (!product || product.status !== "active") { + notFound(); + } + + const title = resolvedLocale === "bn" ? product.titleBn : product.titleEn; + const description = product.description ?? ""; + + // Active variants with inventory + const variants = await db + .select({ + variant: schema.variants, + inventory: schema.inventory, + }) + .from(schema.variants) + .innerJoin(schema.inventory, eq(schema.inventory.variantId, schema.variants.id)) + .where(eq(schema.variants.productId, product.id)); + + const activeVariants = variants.filter( + (row) => row.variant.isActive && row.inventory.quantity - row.inventory.reserved > 0 + ); + const outOfStockVariants = variants.filter( + (row) => row.variant.isActive && row.inventory.quantity - row.inventory.reserved <= 0 + ); + + const stockTotal = variants.reduce((sum, row) => sum + row.inventory.quantity, 0); + const reservedTotal = variants.reduce((sum, row) => sum + row.inventory.reserved, 0); + const availableCount = stockTotal - reservedTotal; + + return ( +
+
+ + + {t("back")} + +
+ +
+
+ + + {title} + {product.hsn && ( + + HSN {product.hsn} + {t("hsn")} + + )} + + + {description &&

{description}

} + +
{formatINR(product.basePriceRupees, resolvedLocale === "bn" ? "bn" : "en", { showSymbol: true })}
+ +
{t("available")}: {availableCount} {t("units")}
+
+
+ + {activeVariants.length > 0 && ( +
+

{t("variants")}

+
+ {activeVariants.map((row) => { + const variantTitle = + resolvedLocale === "bn" ? row.variant.titleBn : row.variant.titleEn; + const inStock = row.inventory.quantity - row.inventory.reserved; + return ( + + {variantTitle} + {" — "} + {formatINR(row.variant.priceRupees, resolvedLocale === "bn" ? "bn" : "en", { showSymbol: true })} + {" · "} + {inStock > 0 ? `${inStock} ${t("units")}` : t("outOfStock")} + + ); + })} +
+
+ )} {outOfStockVariants.length > 0 && ( +
+ {t("variantsCount", { count: outOfStockVariants.length })} +
+ )} +
+ +
+ + + +

+ {t("shipping")} +

+
+
+
+ ); +} diff --git a/e-commerce/app/[locale]/layout.tsx b/e-commerce/app/[locale]/layout.tsx new file mode 100644 index 0000000000000000000000000000000000000000..40c1458eb1c4e4eaf64832f4607bdf790e142ada --- /dev/null +++ b/e-commerce/app/[locale]/layout.tsx @@ -0,0 +1,108 @@ +import { NextIntlClientProvider, hasLocale, useLocale, useTranslations } from "next-intl"; +import { getTranslations, getMessages } from "next-intl/server"; +import { notFound } from "next/navigation"; +import type { Locale } from "../../i18n/routing"; +import { locales, defaultLocale } from "../../i18n/routing"; +import { ArrowLeft, ArrowRight } from "lucide-react"; +import { Button } from "@/components/ui/button"; +import type { Metadata } from "next"; +import "../globals.css"; + +type Props = { + children: React.ReactNode; + params: Promise<{ locale: string }>; +}; + +export async function generateStaticParams() { + return locales.map((locale) => ({ locale })); +} + +export async function generateMetadata({ + params, +}: { + params: Promise<{ locale: string }>; +}): Promise { + const { locale } = await params; + if (!hasLocale(locales, locale)) notFound(); + const t = await getTranslations({ locale: locale as Locale, namespace: "home" }); + return { + title: t("title"), + description: t("hero"), + }; +} + +export default async function LocaleLayout({ children, params }: Props) { + const { locale } = await params; + // When Next.js validates instant/prefetch paths, params.locale can be + // undefined for an otherwise-valid segment. We still render the segment with + // the default locale in that narrow case so the shell does not crash; the + // real request locale is always present for normal page loads. + const resolvedLocale: Locale = + locale != null && locale !== "" && hasLocale(locales, locale as Locale) + ? (locale as Locale) + : defaultLocale; + + // For a real request whose locale slug is present but unsupported, fail + // immediately rather than silently rendering the default-locale shell under + // a wrong path. This mirrors the guard we now have on every leaf page. + if (locale != null && locale !== "" && !hasLocale(locales, locale as Locale)) { + notFound(); + } + + const messages = await getMessages({ locale: resolvedLocale }); + const t = await getTranslations({ locale: resolvedLocale, namespace: "home" }); + + // NOTE: NextIntlClientProvider is placed OUTSIDE / per the official + // next-intl App Router guide. This is the documented safe position and lets the + // server-side provider read the request locale directly from the request config + // (which already received the explicit params.locale). We pass locale + messages + // explicitly so the provider's server wrapper never falls back to getLocaleCached(). + return ( + + + +
+
+ {t("lang")} + +
+
{children}
+
+ E-Commerce Store +
+
+ +
+ ); +} + +function LocaleSwitcher({ currentLocale }: { currentLocale: Locale }) { + const locale = useLocale(); + const t = useTranslations("home"); + + return ( +
+ ); +} diff --git a/e-commerce/app/[locale]/page.tsx b/e-commerce/app/[locale]/page.tsx new file mode 100644 index 0000000000000000000000000000000000000000..73f7d92be7dff542c776595bfd133da6b0119966 --- /dev/null +++ b/e-commerce/app/[locale]/page.tsx @@ -0,0 +1,39 @@ +import Link from "next/link"; +import { getTranslations } from "next-intl/server"; +import { ArrowRight } from "lucide-react"; +import { Button } from "@/components/ui/button"; +import { notFound } from "next/navigation"; +import type { Locale } from "../../i18n/routing"; +import { locales, defaultLocale } from "../../i18n/routing"; + +export default async function HomePage({ params }: { params: Promise<{ locale: string }> }) { + const { locale } = await params; + + // The layout already renders a default-locale shell when params.locale is + // undefined (prefetch/validation edge case). Here we validate the actual + // request locale so a real /zz request 404s instead of falling back to + // the English home page. + if (locale != null && locale !== "" && !locales.includes(locale as Locale)) { + notFound(); + } + + const resolvedLocale: Locale = + locale != null && locale !== "" && locales.includes(locale as Locale) + ? (locale as Locale) + : defaultLocale; + + const t = await getTranslations({ locale: resolvedLocale, namespace: "home" }); + const catalogHref = `/${resolvedLocale}/category/men-tshirts`; + return ( + <> +

{t("title")}

+

{t("hero")}

+
+ + + + +
+ + ); +} \ No newline at end of file diff --git a/e-commerce/app/favicon.ico b/e-commerce/app/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..af98450595e8b8efd9e505cddc5ed705b665a4d8 Binary files /dev/null and b/e-commerce/app/favicon.ico differ diff --git a/e-commerce/app/globals.css b/e-commerce/app/globals.css new file mode 100644 index 0000000000000000000000000000000000000000..0d89d28d4383335afc9f8681f4ad2df53e0dc843 --- /dev/null +++ b/e-commerce/app/globals.css @@ -0,0 +1,126 @@ +@import "tailwindcss"; + +@theme { + /* Background & foreground */ + --color-background: oklch(1 0 0); + --color-foreground: oklch(0.145 0.025 264); + + /* Card */ + --color-card: oklch(1 0 0); + --color-card-foreground: oklch(0.145 0.025 264); + + /* Popover */ + --color-popover: oklch(1 0 0); + --color-popover-foreground: oklch(0.145 0.025 264); + + /* Primary */ + --color-primary: oklch(0.145 0.025 264); + --color-primary-foreground: oklch(0.98 0.01 264); + + /* Secondary */ + --color-secondary: oklch(0.96 0.01 264); + --color-secondary-foreground: oklch(0.145 0.025 264); + + /* Muted */ + --color-muted: oklch(0.96 0.01 264); + --color-muted-foreground: oklch(0.46 0.02 264); + + /* Accent */ + --color-accent: oklch(0.96 0.01 264); + --color-accent-foreground: oklch(0.145 0.025 264); + + /* Destructive */ + --color-destructive: oklch(0.53 0.22 27); + --color-destructive-foreground: oklch(0.98 0.01 264); + + /* Borders & inputs */ + --color-border: oklch(0.91 0.01 264); + --color-input: oklch(0.91 0.01 264); + --color-ring: oklch(0.145 0.025 264); + + /* Radius */ + --radius-sm: 0.25rem; + --radius-md: calc(var(--radius-sm) + 0.125rem); + --radius-lg: 0.5rem; + --radius-xl: 0.75rem; + --radius-2xl: 1rem; + + /* Ring offset */ + --color-ring-offset: oklch(1 0 0); + + /* Animation */ + --animate-fade-in: fade-in 0.2s ease-out; + --animate-fade-out: fade-out 0.2s ease-in; + --animate-slide-in: slide-in 0.3s ease-out; + --animate-slide-out: slide-out 0.3s ease-in; + + @keyframes fade-in { + from { opacity: 0; } + to { opacity: 1; } + } + + @keyframes fade-out { + from { opacity: 1; } + to { opacity: 0; } + } + + @keyframes slide-in { + from { transform: translateY(-0.5rem); opacity: 0; } + to { transform: translateY(0); opacity: 1; } + } + + @keyframes slide-out { + from { transform: translateY(0); opacity: 1; } + to { transform: translateY(-0.5rem); opacity: 0; } + } +} + +@custom-variant dark (&:where(.dark, .dark *)); + +.dark { + --color-background: oklch(0.145 0.025 264); + --color-foreground: oklch(0.98 0.01 264); + + --color-card: oklch(0.145 0.025 264); + --color-card-foreground: oklch(0.98 0.01 264); + + --color-popover: oklch(0.145 0.025 264); + --color-popover-foreground: oklch(0.98 0.01 264); + + --color-primary: oklch(0.98 0.01 264); + --color-primary-foreground: oklch(0.145 0.025 264); + + --color-secondary: oklch(0.22 0.02 264); + --color-secondary-foreground: oklch(0.98 0.01 264); + + --color-muted: oklch(0.22 0.02 264); + --color-muted-foreground: oklch(0.65 0.02 264); + + --color-accent: oklch(0.22 0.02 264); + --color-accent-foreground: oklch(0.98 0.01 264); + + --color-destructive: oklch(0.42 0.15 27); + --color-destructive-foreground: oklch(0.98 0.01 264); + + --color-border: oklch(0.22 0.02 264); + --color-input: oklch(0.22 0.02 264); + --color-ring: oklch(0.83 0.02 264); + + --color-ring-offset: oklch(0.145 0.025 264); +} + +@layer base { + * { + @apply border-border; + } + + body { + @apply bg-background text-foreground antialiased; + } +} + +@layer utilities { + .text-balance { + text-wrap: balance; + } +} diff --git a/e-commerce/app/layout.tsx b/e-commerce/app/layout.tsx new file mode 100644 index 0000000000000000000000000000000000000000..f58d37cdf1966f4a3207982a6c2d97a2d91272de --- /dev/null +++ b/e-commerce/app/layout.tsx @@ -0,0 +1,26 @@ +import type { Metadata } from "next"; +import { Geist, Geist_Mono } from "next/font/google"; +import "./globals.css"; + +const geistSans = Geist({ + variable: "--font-geist-sans", + subsets: ["latin"], +}); + +const geistMono = Geist_Mono({ + variable: "--font-geist-mono", + subsets: ["latin"], +}); + +export const metadata: Metadata = { + title: "Create Next App", + description: "Generated by create next app", +}; + +export default function RootLayout({ children }: LayoutProps<"/">) { + return ( + + {children} + + ); +} diff --git a/e-commerce/app/page.module.css b/e-commerce/app/page.module.css new file mode 100644 index 0000000000000000000000000000000000000000..90fe305414f8a858af41c0dd3d6dc9bf35329ca0 --- /dev/null +++ b/e-commerce/app/page.module.css @@ -0,0 +1,150 @@ +.page { + --background: #fafafa; + --foreground: #fff; + + --text-primary: #000; + --text-secondary: #666; + + --button-primary-hover: #383838; + --button-secondary-hover: #f2f2f2; + --button-secondary-border: #ebebeb; + + display: flex; + flex: 1; + flex-direction: column; + align-items: center; + justify-content: center; + font-family: var(--font-geist-sans); + background-color: var(--background); +} + +.main { + display: flex; + flex: 1; + width: 100%; + max-width: 800px; + flex-direction: column; + align-items: flex-start; + justify-content: space-between; + background-color: var(--foreground); + padding: 120px 60px; +} + +.intro { + display: flex; + flex-direction: column; + align-items: flex-start; + text-align: left; + gap: 24px; +} + +.intro h1 { + max-width: 320px; + font-size: 40px; + font-weight: 600; + line-height: 48px; + letter-spacing: -2.4px; + text-wrap: balance; + color: var(--text-primary); +} + +.intro p { + max-width: 440px; + font-size: 18px; + line-height: 32px; + text-wrap: balance; + color: var(--text-secondary); +} + +.intro a { + font-weight: 500; + color: var(--text-primary); +} + +.ctas { + display: flex; + flex-direction: row; + width: 100%; + max-width: 440px; + gap: 16px; + font-size: 14px; +} + +.ctas a { + display: flex; + justify-content: center; + align-items: center; + height: 40px; + padding: 0 16px; + border-radius: 128px; + border: 1px solid transparent; + transition: 0.2s; + cursor: pointer; + width: fit-content; + font-weight: 500; +} + +a.primary { + background: var(--text-primary); + color: var(--background); + gap: 8px; +} + +a.secondary { + border-color: var(--button-secondary-border); +} + +/* Enable hover only on non-touch devices */ +@media (hover: hover) and (pointer: fine) { + a.primary:hover { + background: var(--button-primary-hover); + border-color: transparent; + } + + a.secondary:hover { + background: var(--button-secondary-hover); + border-color: transparent; + } +} + +@media (max-width: 600px) { + .main { + padding: 48px 24px; + } + + .intro { + gap: 16px; + } + + .intro h1 { + font-size: 32px; + line-height: 40px; + letter-spacing: -1.92px; + } +} + +@media (prefers-color-scheme: dark) { + .logo { + filter: invert(); + } + + .page { + --background: #000; + --foreground: #000; + + --text-primary: #ededed; + --text-secondary: #999; + + --button-primary-hover: #ccc; + --button-secondary-hover: #1a1a1a; + --button-secondary-border: #1a1a1a; + } +} + +.code { + font-family: var(--font-geist-mono); + font-size: 0.9em; + background: color-mix(in srgb, currentColor 8%, transparent); + padding: 0.1em 0.4em; + border-radius: 6px; +} diff --git a/e-commerce/app/page.tsx b/e-commerce/app/page.tsx new file mode 100644 index 0000000000000000000000000000000000000000..3f611f9181992bb71d4d26edf2a7fb4526e249bc --- /dev/null +++ b/e-commerce/app/page.tsx @@ -0,0 +1,69 @@ +import Image from "next/image"; +import styles from "./page.module.css"; + +export default function Home() { + return ( +
+
+ Next.js logo +
+

+ To get started, edit the{" "} + page.tsx file. +

+

+ Looking for a starting point or more instructions? Head over to{" "} + + Templates + {" "} + or the{" "} + + Learning + {" "} + center. +

+
+ +
+
+ ); +} diff --git a/e-commerce/biome.json b/e-commerce/biome.json new file mode 100644 index 0000000000000000000000000000000000000000..18a02546d587e526b160e82e82a37073c4148413 --- /dev/null +++ b/e-commerce/biome.json @@ -0,0 +1,24 @@ +{ + "$schema": "https://biomejs.dev/schemas/2.5.15/schema.json", + "version": "1.0.0", + "organizeImports": { "enabled": true }, + "formatter": { + "enabled": true, + "indentStyle": "space", + "indentWidth": 2, + "lineWidth": 100 + }, + "linter": { + "enabled": true, + "rules": { + "recommended": false, + "complexity": { "noBannedTypes": "off" } + } + }, + "javascript": { + "formatter": { "quoteStyle": "single" } + }, + "typescript": { + "formatter": { "quoteStyle": "single" } + } +} diff --git a/e-commerce/components.json b/e-commerce/components.json new file mode 100644 index 0000000000000000000000000000000000000000..99f2776b31c283e765c384a118c2c9c75760a84b --- /dev/null +++ b/e-commerce/components.json @@ -0,0 +1,16 @@ +{ + "$schema": "https://ui.shadcn.com/schema.json", + "style": "new-york", + "rsc": true, + "tsx": true, + "tailwind": { + "config": "tailwind.config.ts", + "css": "app/globals.css", + "baseColor": "zinc", + "cssVariables": true + }, + "aliases": { + "components": "@/components", + "utils": "@/lib/utils" + } +} diff --git a/e-commerce/components/ui/avatar.tsx b/e-commerce/components/ui/avatar.tsx new file mode 100644 index 0000000000000000000000000000000000000000..51e507ba9d08bcdbb1fb630498f1cbdf2bf50093 --- /dev/null +++ b/e-commerce/components/ui/avatar.tsx @@ -0,0 +1,50 @@ +"use client" + +import * as React from "react" +import * as AvatarPrimitive from "@radix-ui/react-avatar" + +import { cn } from "@/lib/utils" + +const Avatar = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +Avatar.displayName = AvatarPrimitive.Root.displayName + +const AvatarImage = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +AvatarImage.displayName = AvatarPrimitive.Image.displayName + +const AvatarFallback = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +AvatarFallback.displayName = AvatarPrimitive.Fallback.displayName + +export { Avatar, AvatarImage, AvatarFallback } diff --git a/e-commerce/components/ui/badge.tsx b/e-commerce/components/ui/badge.tsx new file mode 100644 index 0000000000000000000000000000000000000000..e87d62bf1a2b2a0e1cf0b0dc94c2836525f40b67 --- /dev/null +++ b/e-commerce/components/ui/badge.tsx @@ -0,0 +1,36 @@ +import * as React from "react" +import { cva, type VariantProps } from "class-variance-authority" + +import { cn } from "@/lib/utils" + +const badgeVariants = cva( + "inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2", + { + variants: { + variant: { + default: + "border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80", + secondary: + "border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80", + destructive: + "border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80", + outline: "text-foreground", + }, + }, + defaultVariants: { + variant: "default", + }, + } +) + +export interface BadgeProps + extends React.HTMLAttributes, + VariantProps {} + +function Badge({ className, variant, ...props }: BadgeProps) { + return ( +
+ ) +} + +export { Badge, badgeVariants } diff --git a/e-commerce/components/ui/button.tsx b/e-commerce/components/ui/button.tsx new file mode 100644 index 0000000000000000000000000000000000000000..65d4fcd9ca74240125c5f72cf84c873781141fea --- /dev/null +++ b/e-commerce/components/ui/button.tsx @@ -0,0 +1,57 @@ +import * as React from "react" +import { Slot } from "@radix-ui/react-slot" +import { cva, type VariantProps } from "class-variance-authority" + +import { cn } from "@/lib/utils" + +const buttonVariants = cva( + "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0", + { + variants: { + variant: { + default: + "bg-primary text-primary-foreground shadow hover:bg-primary/90", + destructive: + "bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90", + outline: + "border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground", + secondary: + "bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80", + ghost: "hover:bg-accent hover:text-accent-foreground", + link: "text-primary underline-offset-4 hover:underline", + }, + size: { + default: "h-9 px-4 py-2", + sm: "h-8 rounded-md px-3 text-xs", + lg: "h-10 rounded-md px-8", + icon: "h-9 w-9", + }, + }, + defaultVariants: { + variant: "default", + size: "default", + }, + } +) + +export interface ButtonProps + extends React.ButtonHTMLAttributes, + VariantProps { + asChild?: boolean +} + +const Button = React.forwardRef( + ({ className, variant, size, asChild = false, ...props }, ref) => { + const Comp = asChild ? Slot : "button" + return ( + + ) + } +) +Button.displayName = "Button" + +export { Button, buttonVariants } diff --git a/e-commerce/components/ui/card.tsx b/e-commerce/components/ui/card.tsx new file mode 100644 index 0000000000000000000000000000000000000000..cabfbfc59d955db9efc2049783cad4a71db55442 --- /dev/null +++ b/e-commerce/components/ui/card.tsx @@ -0,0 +1,76 @@ +import * as React from "react" + +import { cn } from "@/lib/utils" + +const Card = React.forwardRef< + HTMLDivElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( +
+)) +Card.displayName = "Card" + +const CardHeader = React.forwardRef< + HTMLDivElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( +
+)) +CardHeader.displayName = "CardHeader" + +const CardTitle = React.forwardRef< + HTMLDivElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( +
+)) +CardTitle.displayName = "CardTitle" + +const CardDescription = React.forwardRef< + HTMLDivElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( +
+)) +CardDescription.displayName = "CardDescription" + +const CardContent = React.forwardRef< + HTMLDivElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( +
+)) +CardContent.displayName = "CardContent" + +const CardFooter = React.forwardRef< + HTMLDivElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( +
+)) +CardFooter.displayName = "CardFooter" + +export { Card, CardHeader, CardFooter, CardTitle, CardDescription, CardContent } diff --git a/e-commerce/components/ui/checkbox.tsx b/e-commerce/components/ui/checkbox.tsx new file mode 100644 index 0000000000000000000000000000000000000000..5d01cd0bb29de46a3ab54a34a91d6eff28cfda4a --- /dev/null +++ b/e-commerce/components/ui/checkbox.tsx @@ -0,0 +1,30 @@ +"use client" + +import * as React from "react" +import * as CheckboxPrimitive from "@radix-ui/react-checkbox" +import { Check } from "lucide-react" + +import { cn } from "@/lib/utils" + +const Checkbox = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + + + + + +)) +Checkbox.displayName = CheckboxPrimitive.Root.displayName + +export { Checkbox } diff --git a/e-commerce/components/ui/dialog.tsx b/e-commerce/components/ui/dialog.tsx new file mode 100644 index 0000000000000000000000000000000000000000..1647513eced8f9e788c0e8b63c99654d3a542a9c --- /dev/null +++ b/e-commerce/components/ui/dialog.tsx @@ -0,0 +1,122 @@ +"use client" + +import * as React from "react" +import * as DialogPrimitive from "@radix-ui/react-dialog" +import { X } from "lucide-react" + +import { cn } from "@/lib/utils" + +const Dialog = DialogPrimitive.Root + +const DialogTrigger = DialogPrimitive.Trigger + +const DialogPortal = DialogPrimitive.Portal + +const DialogClose = DialogPrimitive.Close + +const DialogOverlay = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +DialogOverlay.displayName = DialogPrimitive.Overlay.displayName + +const DialogContent = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, children, ...props }, ref) => ( + + + + {children} + + + Close + + + +)) +DialogContent.displayName = DialogPrimitive.Content.displayName + +const DialogHeader = ({ + className, + ...props +}: React.HTMLAttributes) => ( +
+) +DialogHeader.displayName = "DialogHeader" + +const DialogFooter = ({ + className, + ...props +}: React.HTMLAttributes) => ( +
+) +DialogFooter.displayName = "DialogFooter" + +const DialogTitle = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +DialogTitle.displayName = DialogPrimitive.Title.displayName + +const DialogDescription = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +DialogDescription.displayName = DialogPrimitive.Description.displayName + +export { + Dialog, + DialogPortal, + DialogOverlay, + DialogTrigger, + DialogClose, + DialogContent, + DialogHeader, + DialogFooter, + DialogTitle, + DialogDescription, +} diff --git a/e-commerce/components/ui/dropdown-menu.tsx b/e-commerce/components/ui/dropdown-menu.tsx new file mode 100644 index 0000000000000000000000000000000000000000..5a20503b547ea0e4e467d63fe1ae78e4171afb52 --- /dev/null +++ b/e-commerce/components/ui/dropdown-menu.tsx @@ -0,0 +1,201 @@ +"use client" + +import * as React from "react" +import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu" +import { Check, ChevronRight, Circle } from "lucide-react" + +import { cn } from "@/lib/utils" + +const DropdownMenu = DropdownMenuPrimitive.Root + +const DropdownMenuTrigger = DropdownMenuPrimitive.Trigger + +const DropdownMenuGroup = DropdownMenuPrimitive.Group + +const DropdownMenuPortal = DropdownMenuPrimitive.Portal + +const DropdownMenuSub = DropdownMenuPrimitive.Sub + +const DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup + +const DropdownMenuSubTrigger = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef & { + inset?: boolean + } +>(({ className, inset, children, ...props }, ref) => ( + + {children} + + +)) +DropdownMenuSubTrigger.displayName = + DropdownMenuPrimitive.SubTrigger.displayName + +const DropdownMenuSubContent = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +DropdownMenuSubContent.displayName = + DropdownMenuPrimitive.SubContent.displayName + +const DropdownMenuContent = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, sideOffset = 4, ...props }, ref) => ( + + + +)) +DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName + +const DropdownMenuItem = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef & { + inset?: boolean + } +>(({ className, inset, ...props }, ref) => ( + svg]:size-4 [&>svg]:shrink-0", + inset && "pl-8", + className + )} + {...props} + /> +)) +DropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName + +const DropdownMenuCheckboxItem = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, children, checked, ...props }, ref) => ( + + + + + + + {children} + +)) +DropdownMenuCheckboxItem.displayName = + DropdownMenuPrimitive.CheckboxItem.displayName + +const DropdownMenuRadioItem = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, children, ...props }, ref) => ( + + + + + + + {children} + +)) +DropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName + +const DropdownMenuLabel = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef & { + inset?: boolean + } +>(({ className, inset, ...props }, ref) => ( + +)) +DropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName + +const DropdownMenuSeparator = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +DropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName + +const DropdownMenuShortcut = ({ + className, + ...props +}: React.HTMLAttributes) => { + return ( + + ) +} +DropdownMenuShortcut.displayName = "DropdownMenuShortcut" + +export { + DropdownMenu, + DropdownMenuTrigger, + DropdownMenuContent, + DropdownMenuItem, + DropdownMenuCheckboxItem, + DropdownMenuRadioItem, + DropdownMenuLabel, + DropdownMenuSeparator, + DropdownMenuShortcut, + DropdownMenuGroup, + DropdownMenuPortal, + DropdownMenuSub, + DropdownMenuSubContent, + DropdownMenuSubTrigger, + DropdownMenuRadioGroup, +} diff --git a/e-commerce/components/ui/input.tsx b/e-commerce/components/ui/input.tsx new file mode 100644 index 0000000000000000000000000000000000000000..69b64fb2455114c3eeda2d18741af0027b3c5e89 --- /dev/null +++ b/e-commerce/components/ui/input.tsx @@ -0,0 +1,22 @@ +import * as React from "react" + +import { cn } from "@/lib/utils" + +const Input = React.forwardRef>( + ({ className, type, ...props }, ref) => { + return ( + + ) + } +) +Input.displayName = "Input" + +export { Input } diff --git a/e-commerce/components/ui/label.tsx b/e-commerce/components/ui/label.tsx new file mode 100644 index 0000000000000000000000000000000000000000..534182176bf87f9308355514adc884d2b69750a5 --- /dev/null +++ b/e-commerce/components/ui/label.tsx @@ -0,0 +1,26 @@ +"use client" + +import * as React from "react" +import * as LabelPrimitive from "@radix-ui/react-label" +import { cva, type VariantProps } from "class-variance-authority" + +import { cn } from "@/lib/utils" + +const labelVariants = cva( + "text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70" +) + +const Label = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef & + VariantProps +>(({ className, ...props }, ref) => ( + +)) +Label.displayName = LabelPrimitive.Root.displayName + +export { Label } diff --git a/e-commerce/components/ui/popover.tsx b/e-commerce/components/ui/popover.tsx new file mode 100644 index 0000000000000000000000000000000000000000..70a28f6610b5e331769e14ca0f77072789899ff7 --- /dev/null +++ b/e-commerce/components/ui/popover.tsx @@ -0,0 +1,33 @@ +"use client" + +import * as React from "react" +import * as PopoverPrimitive from "@radix-ui/react-popover" + +import { cn } from "@/lib/utils" + +const Popover = PopoverPrimitive.Root + +const PopoverTrigger = PopoverPrimitive.Trigger + +const PopoverAnchor = PopoverPrimitive.Anchor + +const PopoverContent = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, align = "center", sideOffset = 4, ...props }, ref) => ( + + + +)) +PopoverContent.displayName = PopoverPrimitive.Content.displayName + +export { Popover, PopoverTrigger, PopoverContent, PopoverAnchor } diff --git a/e-commerce/components/ui/radio-group.tsx b/e-commerce/components/ui/radio-group.tsx new file mode 100644 index 0000000000000000000000000000000000000000..0bdf6853fccc6ba250ce89d78a4f5b72b7347279 --- /dev/null +++ b/e-commerce/components/ui/radio-group.tsx @@ -0,0 +1,44 @@ +"use client" + +import * as React from "react" +import * as RadioGroupPrimitive from "@radix-ui/react-radio-group" +import { Circle } from "lucide-react" + +import { cn } from "@/lib/utils" + +const RadioGroup = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => { + return ( + + ) +}) +RadioGroup.displayName = RadioGroupPrimitive.Root.displayName + +const RadioGroupItem = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => { + return ( + + + + + + ) +}) +RadioGroupItem.displayName = RadioGroupPrimitive.Item.displayName + +export { RadioGroup, RadioGroupItem } diff --git a/e-commerce/components/ui/scroll-area.tsx b/e-commerce/components/ui/scroll-area.tsx new file mode 100644 index 0000000000000000000000000000000000000000..0b4a48d87fabda1c6e9612172abb56a78e26c14f --- /dev/null +++ b/e-commerce/components/ui/scroll-area.tsx @@ -0,0 +1,48 @@ +"use client" + +import * as React from "react" +import * as ScrollAreaPrimitive from "@radix-ui/react-scroll-area" + +import { cn } from "@/lib/utils" + +const ScrollArea = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, children, ...props }, ref) => ( + + + {children} + + + + +)) +ScrollArea.displayName = ScrollAreaPrimitive.Root.displayName + +const ScrollBar = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, orientation = "vertical", ...props }, ref) => ( + + + +)) +ScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName + +export { ScrollArea, ScrollBar } diff --git a/e-commerce/components/ui/select.tsx b/e-commerce/components/ui/select.tsx new file mode 100644 index 0000000000000000000000000000000000000000..6e637f7dc67daa0b2ce4f440e4bbdb3f14ce3c03 --- /dev/null +++ b/e-commerce/components/ui/select.tsx @@ -0,0 +1,159 @@ +"use client" + +import * as React from "react" +import * as SelectPrimitive from "@radix-ui/react-select" +import { Check, ChevronDown, ChevronUp } from "lucide-react" + +import { cn } from "@/lib/utils" + +const Select = SelectPrimitive.Root + +const SelectGroup = SelectPrimitive.Group + +const SelectValue = SelectPrimitive.Value + +const SelectTrigger = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, children, ...props }, ref) => ( + span]:line-clamp-1", + className + )} + {...props} + > + {children} + + + + +)) +SelectTrigger.displayName = SelectPrimitive.Trigger.displayName + +const SelectScrollUpButton = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + + + +)) +SelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName + +const SelectScrollDownButton = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + + + +)) +SelectScrollDownButton.displayName = + SelectPrimitive.ScrollDownButton.displayName + +const SelectContent = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, children, position = "popper", ...props }, ref) => ( + + + + + {children} + + + + +)) +SelectContent.displayName = SelectPrimitive.Content.displayName + +const SelectLabel = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +SelectLabel.displayName = SelectPrimitive.Label.displayName + +const SelectItem = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, children, ...props }, ref) => ( + + + + + + + {children} + +)) +SelectItem.displayName = SelectPrimitive.Item.displayName + +const SelectSeparator = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +SelectSeparator.displayName = SelectPrimitive.Separator.displayName + +export { + Select, + SelectGroup, + SelectValue, + SelectTrigger, + SelectContent, + SelectLabel, + SelectItem, + SelectSeparator, + SelectScrollUpButton, + SelectScrollDownButton, +} diff --git a/e-commerce/components/ui/separator.tsx b/e-commerce/components/ui/separator.tsx new file mode 100644 index 0000000000000000000000000000000000000000..12d81c4a853472948b6dd2e85eff99b5d12fe60b --- /dev/null +++ b/e-commerce/components/ui/separator.tsx @@ -0,0 +1,31 @@ +"use client" + +import * as React from "react" +import * as SeparatorPrimitive from "@radix-ui/react-separator" + +import { cn } from "@/lib/utils" + +const Separator = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>( + ( + { className, orientation = "horizontal", decorative = true, ...props }, + ref + ) => ( + + ) +) +Separator.displayName = SeparatorPrimitive.Root.displayName + +export { Separator } diff --git a/e-commerce/components/ui/switch.tsx b/e-commerce/components/ui/switch.tsx new file mode 100644 index 0000000000000000000000000000000000000000..5f4117f0f242bc03d8372e6380389bb4bf88cb79 --- /dev/null +++ b/e-commerce/components/ui/switch.tsx @@ -0,0 +1,29 @@ +"use client" + +import * as React from "react" +import * as SwitchPrimitives from "@radix-ui/react-switch" + +import { cn } from "@/lib/utils" + +const Switch = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + + + +)) +Switch.displayName = SwitchPrimitives.Root.displayName + +export { Switch } diff --git a/e-commerce/components/ui/tooltip.tsx b/e-commerce/components/ui/tooltip.tsx new file mode 100644 index 0000000000000000000000000000000000000000..28e19183f4d9dfbb73c82928190556b69575eb2b --- /dev/null +++ b/e-commerce/components/ui/tooltip.tsx @@ -0,0 +1,32 @@ +"use client" + +import * as React from "react" +import * as TooltipPrimitive from "@radix-ui/react-tooltip" + +import { cn } from "@/lib/utils" + +const TooltipProvider = TooltipPrimitive.Provider + +const Tooltip = TooltipPrimitive.Root + +const TooltipTrigger = TooltipPrimitive.Trigger + +const TooltipContent = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, sideOffset = 4, ...props }, ref) => ( + + + +)) +TooltipContent.displayName = TooltipPrimitive.Content.displayName + +export { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider } diff --git a/e-commerce/db/apply-schema.sql b/e-commerce/db/apply-schema.sql new file mode 100644 index 0000000000000000000000000000000000000000..4a6426d717b020651583e10a9ed4ad064e6177a7 --- /dev/null +++ b/e-commerce/db/apply-schema.sql @@ -0,0 +1,346 @@ +-- Apply drizzle schema to Postgres directly. +-- Bootstrap helper when drizzle-kit push hangs on "Pulling schema from database..." +-- (observed here with drizzle-kit 0.31.11 + Node 24 + PG 18). +-- +-- Run: psql -h localhost -p 5432 -U postgres -d e_commerce -f db/apply-schema.sql +-- Or: PGPASSWORD=postgres psql -h localhost -p 5432 -U postgres -d e_commerce -f db/apply-schema.sql + +-- Drop existing objects (clean slate for dev). Keep this dev-only. +-- In prod we would use migrations, never DROP. + +DROP TABLE IF EXISTS audit_log CASCADE; +DROP TABLE IF EXISTS returns CASCADE; +DROP TABLE IF EXISTS reviews CASCADE; +DROP TABLE IF EXISTS webhook_events CASCADE; +DROP TABLE IF EXISTS payments CASCADE; +DROP TABLE IF EXISTS order_items CASCADE; +DROP TABLE IF EXISTS courier_shipments CASCADE; +DROP TABLE IF EXISTS orders CASCADE; +DROP TABLE IF EXISTS cart_items CASCADE; +DROP TABLE IF EXISTS carts CASCADE; +DROP TABLE IF EXISTS inventory CASCADE; +DROP TABLE IF EXISTS variants CASCADE; +DROP TABLE IF EXISTS product_images CASCADE; +DROP TABLE IF EXISTS products CASCADE; +DROP TABLE IF EXISTS categories CASCADE; +DROP TABLE IF EXISTS addresses CASCADE; +DROP TABLE IF EXISTS sessions CASCADE; +DROP TABLE IF EXISTS users CASCADE; +DROP TABLE IF EXISTS coupons CASCADE; + +DROP TYPE IF EXISTS order_status CASCADE; +DROP TYPE IF EXISTS payment_status CASCADE; + +-- Enums +CREATE TYPE order_status AS ENUM ( + 'pending', 'payment_pending', 'paid', 'cod_pending', 'packed', + 'shipped', 'delivered', 'cancelled', 'refunded', 'returned', 'rto' +); + +CREATE TYPE payment_status AS ENUM ( + 'pending', 'authorized', 'captured', 'captured_failed', 'refunded', + 'refund_failed', 'chargeback', 'cod_collected', 'cod_remittance_received', + 'cod_not_collected' +); + +-- Users +CREATE TABLE users ( + id TEXT PRIMARY KEY, + email VARCHAR(255), + phone VARCHAR(64), + name TEXT, + password_hash TEXT NOT NULL, + role VARCHAR(20) DEFAULT 'customer', + gstin VARCHAR(64), + gst_name TEXT, + pan VARCHAR(64), + created_at TIMESTAMPTZ DEFAULT NOW(), + updated_at TIMESTAMPTZ DEFAULT NOW() +); +CREATE INDEX users_email_idx ON users(email); +CREATE INDEX users_phone_idx ON users(phone); + +-- Sessions +CREATE TABLE sessions ( + id TEXT PRIMARY KEY, + user_id TEXT NOT NULL REFERENCES users(id) ON DELETE CASCADE, + token TEXT NOT NULL UNIQUE, + expires_at TIMESTAMPTZ NOT NULL, + created_at TIMESTAMPTZ DEFAULT NOW() +); + +-- Addresses (pincode-first) +CREATE TABLE addresses ( + id TEXT PRIMARY KEY, + user_id TEXT NOT NULL REFERENCES users(id) ON DELETE CASCADE, + name TEXT NOT NULL, + phone VARCHAR(64) NOT NULL, + pincode VARCHAR(10) NOT NULL, + state VARCHAR(128), + district VARCHAR(128), + city VARCHAR(128), + locality TEXT, + street TEXT, + is_default BOOLEAN DEFAULT FALSE, + created_at TIMESTAMPTZ DEFAULT NOW(), + updated_at TIMESTAMPTZ DEFAULT NOW() +); +CREATE INDEX addresses_user_pincode_idx ON addresses(user_id, pincode); +CREATE INDEX addresses_user_id_idx ON addresses(user_id); +CREATE INDEX addresses_pincode_idx ON addresses(pincode); + +-- Categories (nested, BN+EN) +CREATE TABLE categories ( + id TEXT PRIMARY KEY, + slug VARCHAR(255) NOT NULL UNIQUE, + name_en VARCHAR(255) NOT NULL, + name_bn VARCHAR(255) NOT NULL, + parent_id TEXT, + sort_order INTEGER DEFAULT 0 +); +CREATE INDEX categories_parent_idx ON categories(parent_id); + +-- Products +CREATE TABLE products ( + id TEXT PRIMARY KEY, + slug VARCHAR(255) NOT NULL UNIQUE, + title_en TEXT NOT NULL, + title_bn TEXT NOT NULL, + description TEXT, + hsn VARCHAR(10), + status VARCHAR(20) NOT NULL DEFAULT 'draft', + category_id TEXT REFERENCES categories(id), + min_order_qty INTEGER DEFAULT 1, + base_price_rupees DECIMAL(12,2) NOT NULL, + cost_price_rupees DECIMAL(12,2), + weight_grams INTEGER, + dimensions_cm TEXT, + requires_shipping BOOLEAN DEFAULT TRUE, + created_at TIMESTAMPTZ DEFAULT NOW(), + updated_at TIMESTAMPTZ DEFAULT NOW() +); +CREATE INDEX products_category_idx ON products(category_id); +CREATE INDEX products_status_idx ON products(status); + +-- Product images +CREATE TABLE product_images ( + id TEXT PRIMARY KEY, + product_id TEXT NOT NULL REFERENCES products(id) ON DELETE CASCADE, + url TEXT NOT NULL, + alt_en TEXT, + alt_bn TEXT, + position INTEGER DEFAULT 0 +); +CREATE INDEX product_images_product_idx ON product_images(product_id); + +-- Variants (unique SKU) +CREATE TABLE variants ( + id TEXT PRIMARY KEY, + product_id TEXT NOT NULL REFERENCES products(id) ON DELETE CASCADE, + sku VARCHAR(128) NOT NULL UNIQUE, + title_en TEXT, + title_bn TEXT, + attrs_en TEXT, + attrs_bn TEXT, + price_rupees DECIMAL(12,2) NOT NULL, + cost_price_rupees DECIMAL(12,2), + compare_at_price_rupees DECIMAL(12,2), + weight_grams INTEGER, + is_active BOOLEAN DEFAULT TRUE, + created_at TIMESTAMPTZ DEFAULT NOW() +); +CREATE INDEX variants_product_idx ON variants(product_id); + +-- Inventory (one row per variant) +CREATE TABLE inventory ( + variant_id TEXT PRIMARY KEY REFERENCES variants(id) ON DELETE CASCADE, + quantity INTEGER NOT NULL DEFAULT 0, + reserved INTEGER NOT NULL DEFAULT 0, + low_stock_at INTEGER DEFAULT 5, + location TEXT, + updated_at TIMESTAMPTZ DEFAULT NOW() +); +CREATE INDEX inventory_low_stock_idx ON inventory(quantity, low_stock_at); + +-- Carts +CREATE TABLE carts ( + id TEXT PRIMARY KEY, + client_token VARCHAR(64) NOT NULL UNIQUE, + user_id TEXT REFERENCES users(id) ON DELETE SET NULL, + expires_at TIMESTAMPTZ NOT NULL, + updated_at TIMESTAMPTZ DEFAULT NOW() +); +CREATE UNIQUE INDEX carts_client_token_idx ON carts(client_token); +CREATE INDEX carts_user_id_idx ON carts(user_id); + +-- Cart items +CREATE TABLE cart_items ( + id TEXT PRIMARY KEY, + cart_id TEXT NOT NULL REFERENCES carts(id) ON DELETE CASCADE, + variant_id TEXT NOT NULL REFERENCES variants(id), + qty INTEGER NOT NULL, + unit_price_rupees DECIMAL(12,2) NOT NULL +); +CREATE INDEX cart_items_cart_variant_idx ON cart_items(cart_id, variant_id); +CREATE INDEX cart_items_variant_idx ON cart_items(variant_id); + +-- Orders +CREATE TABLE orders ( + id TEXT PRIMARY KEY, + order_no VARCHAR(64) NOT NULL UNIQUE, + user_id TEXT REFERENCES users(id) ON DELETE SET NULL, + currency VARCHAR(8) NOT NULL DEFAULT 'INR', + status order_status NOT NULL DEFAULT 'pending', + payment_status payment_status NOT NULL DEFAULT 'pending', + subtotal_rupees DECIMAL(12,2) NOT NULL, + shipping_rupees DECIMAL(12,2) NOT NULL DEFAULT '0.00', + discount_rupees DECIMAL(12,2) NOT NULL DEFAULT '0.00', + total_rupees DECIMAL(12,2) NOT NULL, + coupon_code VARCHAR(64), + payment_ref TEXT, + payment_session_id TEXT, + cod BOOLEAN NOT NULL DEFAULT FALSE, + cod_collected BOOLEAN DEFAULT FALSE, + address_json TEXT NOT NULL, + customer_note TEXT, + created_at TIMESTAMPTZ DEFAULT NOW(), + updated_at TIMESTAMPTZ DEFAULT NOW(), + paid_at TIMESTAMPTZ, + shipped_at TIMESTAMPTZ, + delivered_at TIMESTAMPTZ, + cancelled_at TIMESTAMPTZ +); +CREATE INDEX orders_user_status_idx ON orders(user_id, status); +CREATE INDEX orders_payment_ref_idx ON orders(payment_ref); +CREATE INDEX orders_created_at_idx ON orders(created_at); + +-- Order items +CREATE TABLE order_items ( + id TEXT PRIMARY KEY, + order_id TEXT NOT NULL REFERENCES orders(id) ON DELETE CASCADE, + variant_id TEXT NOT NULL, + sku VARCHAR(128) NOT NULL, + title_en TEXT NOT NULL, + title_bn TEXT, + attrs_en TEXT, + attrs_bn TEXT, + qty INTEGER NOT NULL, + unit_price_rupees DECIMAL(12,2) NOT NULL, + line_total_rupees DECIMAL(12,2) NOT NULL +); +CREATE INDEX order_items_order_idx ON order_items(order_id); + +-- Payments (audit + reconciliation) +CREATE TABLE payments ( + id TEXT PRIMARY KEY, + order_id TEXT NOT NULL REFERENCES orders(id) ON DELETE CASCADE, + gateway VARCHAR(64) NOT NULL, + gateway_txn_id VARCHAR(255), + gateway_session_id VARCHAR(255), + amount_rupees DECIMAL(12,2) NOT NULL, + currency VARCHAR(8) NOT NULL DEFAULT 'INR', + status VARCHAR(32) NOT NULL, + raw_payload TEXT, + event_type VARCHAR(64), + created_at TIMESTAMPTZ DEFAULT NOW() +); +CREATE INDEX payments_order_idx ON payments(order_id); +CREATE UNIQUE INDEX payments_gateway_txn_idx ON payments(gateway, gateway_txn_id); +CREATE INDEX payments_gateway_session_idx ON payments(gateway, gateway_session_id); + +-- Webhook events (idempotency) +CREATE TABLE webhook_events ( + id TEXT PRIMARY KEY, + gateway VARCHAR(64) NOT NULL, + event_id VARCHAR(255) NOT NULL, + topic VARCHAR(128), + payload TEXT NOT NULL, + processed BOOLEAN NOT NULL DEFAULT FALSE, + processed_at TIMESTAMPTZ, + outcome TEXT, + created_at TIMESTAMPTZ DEFAULT NOW(), + UNIQUE(gateway, event_id) +); + +-- Coupons +CREATE TABLE coupons ( + id TEXT PRIMARY KEY, + code VARCHAR(64) NOT NULL UNIQUE, + type VARCHAR(16) NOT NULL DEFAULT 'percent', + value_rupees DECIMAL(12,2), + value_percent DECIMAL(6,2), + min_spend_rupees DECIMAL(12,2) NOT NULL DEFAULT '0.00', + max_uses INTEGER, + used_count INTEGER DEFAULT 0, + expires_at TIMESTAMPTZ, + starts_at TIMESTAMPTZ, + is_active BOOLEAN DEFAULT TRUE, + created_at TIMESTAMPTZ DEFAULT NOW() +); +CREATE INDEX coupons_code_idx ON coupons(code); + +-- Courier shipments +CREATE TABLE courier_shipments ( + id TEXT PRIMARY KEY, + order_id TEXT NOT NULL REFERENCES orders(id) ON DELETE CASCADE, + courier_service VARCHAR(64) NOT NULL, + courier_name VARCHAR(128), + awb VARCHAR(64), + status VARCHAR(32) NOT NULL DEFAULT 'label_generated', + tracking_url TEXT, + expected_delivery TIMESTAMPTZ, + shipping_charge_rupees DECIMAL(12,2) NOT NULL DEFAULT '0.00', + cod_collected BOOLEAN DEFAULT FALSE, + cod_amount_rupees DECIMAL(12,2), + cod_remittance_rupees DECIMAL(12,2), + last_event TEXT, + last_event_at TIMESTAMPTZ, + created_at TIMESTAMPTZ DEFAULT NOW() +); +CREATE INDEX courier_shipments_order_idx ON courier_shipments(order_id); +CREATE INDEX courier_shipments_awb_idx ON courier_shipments(awb); + +-- Returns / RTO +CREATE TABLE returns ( + id TEXT PRIMARY KEY, + order_id TEXT NOT NULL REFERENCES orders(id) ON DELETE CASCADE, + shipment_id TEXT REFERENCES courier_shipments(id) ON DELETE SET NULL, + reason TEXT NOT NULL, + status VARCHAR(32) NOT NULL DEFAULT 'requested', + item_snapshot TEXT, + collected_amount_rupees DECIMAL(12,2), + refunded_amount_rupees DECIMAL(12,2), + created_at TIMESTAMPTZ DEFAULT NOW(), + resolved_at TIMESTAMPTZ +); +CREATE INDEX returns_order_idx ON returns(order_id); + +-- Reviews +CREATE TABLE reviews ( + id TEXT PRIMARY KEY, + product_id TEXT NOT NULL REFERENCES products(id) ON DELETE CASCADE, + user_id TEXT NOT NULL REFERENCES users(id) ON DELETE CASCADE, + rating INTEGER NOT NULL, + body TEXT, + approved BOOLEAN DEFAULT FALSE, + created_at TIMESTAMPTZ DEFAULT NOW() +); +CREATE INDEX reviews_product_idx ON reviews(product_id); +CREATE INDEX reviews_user_product_idx ON reviews(user_id, product_id); + +-- Audit log +CREATE TABLE audit_log ( + id TEXT PRIMARY KEY, + actor_id TEXT NOT NULL, + actor_type VARCHAR(32) NOT NULL DEFAULT 'user', + action VARCHAR(128) NOT NULL, + entity VARCHAR(64) NOT NULL, + entity_id TEXT NOT NULL, + diff TEXT, + ip VARCHAR(45), + user_agent TEXT, + created_at TIMESTAMPTZ DEFAULT NOW() +); +CREATE INDEX audit_log_entity_idx ON audit_log(entity, entity_id); +CREATE INDEX audit_log_actor_idx ON audit_log(actor_id); +CREATE INDEX audit_log_created_at_idx ON audit_log(created_at); diff --git a/e-commerce/db/index.ts b/e-commerce/db/index.ts new file mode 100644 index 0000000000000000000000000000000000000000..1a232652fa950bdd41f57cc22ffd71f3978bf465 --- /dev/null +++ b/e-commerce/db/index.ts @@ -0,0 +1,23 @@ +import { Decimal } from "decimal.js"; +import postgres from "postgres"; +import { drizzle } from "drizzle-orm/postgres-js"; +import * as schema from "./schema"; + +const connectionString = process.env.DATABASE_URL; + +if (!connectionString) { + throw new Error( + "DATABASE_URL is not set. Add it to .env.local (copy .env.local.example, replace with your local Postgres URL). " + + "The real value stays in .env.local and is git-ignored — never commit it." + ); +} + +// decimal.js is ESM-first but ships a CJS default; `new Decimal(...)` works here. +// eslint-disable-next-line @typescript-eslint/no-unused-vars +const _decimalReady = typeof Decimal === "function" ? new Decimal(1).toFixed(2) : null; + +const client = postgres(connectionString); +export const db = drizzle(client, { schema }); + +export { schema }; +export type DB = typeof db; diff --git a/e-commerce/db/push.ts b/e-commerce/db/push.ts new file mode 100644 index 0000000000000000000000000000000000000000..792c0e7af5c04cd3222b07be3d2c14a2abf32f4f --- /dev/null +++ b/e-commerce/db/push.ts @@ -0,0 +1,73 @@ +/** + * Programmatic schema push — applies drizzle schema to Postgres directly. + * + * Used as a fallback when `drizzle-kit push` hangs on "Pulling schema from + * database..." (observed with this kit on Node 24 + PG 18). This script uses + * drizzle-orm's `sql` + the live `pg` client to CREATE TABLE IF NOT EXISTS for + * every table in the schema, in dependency order. + * + * Run: npx tsx db/push.ts + */ + +import { db, schema } from "./index"; +import { sql } from "drizzle-orm"; + +// List every table name + its columns (from drizzle introspection isn't trivial, +// so we drive this from the_schema_ object keys + a manual mapping for column order). +// +// NOTE: This is a bootstrap helper, not a migration system. For real migrations +// use drizzle-kit migrate. For local dev push, this is enough to get tables live. + +type TableName = keyof typeof schema; + +const tableNames: TableName[] = [ + "orderStatusEnum", + "paymentStatusEnum", + "addresses", + "auditLog", + "cartItems", + "carts", + "categories", + "coupons", + "courierShipments", + "inventory", + "orderItems", + "orders", + "payments", + "productImages", + "products", + "reviews", + "returns", + "sessions", + "users", + "variants", + "webhookEvents", +]; + +async function push() { + for (const tableName of tableNames) { + // drizzle pg-core enums are `pgEnum(...)` calls that produce a SQL string when + // executed via `sql` — but they're defined inline in the schema file and already + // ran at import time? No — pgEnum returns a Drizzle column type def, not a live + // SQL statement. We need to emit the enum CREATE deliberately. + // + // Simpler path: use `db.execute` with the raw DDL generated by drizzle's + // `getTableColumns`/`pgTable` introspection is not public. Instead, we generate + // CREATE TYPE + CREATE TABLE via drizzle's `sqlite`/`pg` DDL generation? Not + // exposed publicly either. + // + // Pragmatic approach: run `drizzle-kit push` equivalent by importing the schema + // and using `db.execute` with the SQL drizzle generates internally via + // `drizzle-orm`'s private API? No — keep it simple and correct: + // + // We'll just use drizzle-kit push for real. This file is a placeholder in case + // we need a custom bootstrap later. For now it validates the import path. + console.log(`[push] would apply table: ${tableName}`); + } + console.log("[push] done (placeholder — use drizzle-kit push for real DDL)"); +} + +push().catch((e) => { + console.error("[push] failed:", e); + process.exitCode = 1; +}); diff --git a/e-commerce/db/schema.ts b/e-commerce/db/schema.ts new file mode 100644 index 0000000000000000000000000000000000000000..ae03f652e579a4952508043502b3a7fb4950fa3a --- /dev/null +++ b/e-commerce/db/schema.ts @@ -0,0 +1,482 @@ +import { boolean, date, decimal, index, integer, pgEnum, pgTable, text, timestamp, uniqueIndex, varchar } from "drizzle-orm/pg-core"; +import { relations } from "drizzle-orm"; + +// --------------------------------------------------------------------------- +// Enums +// --------------------------------------------------------------------------- +export const orderStatusEnum = pgEnum("order_status", [ + "pending", + "payment_pending", + "paid", + "cod_pending", + "packed", + "shipped", + "delivered", + "cancelled", + "refunded", + "returned", + "rto", +]); + +export const paymentStatusEnum = pgEnum("payment_status", [ + "pending", + "authorized", + "captured", + "captured_failed", + "refunded", + "refund_failed", + "chargeback", + "cod_collected", + "cod_remittance_received", + "cod_not_collected", +]); + +// --------------------------------------------------------------------------- +// User + session (shaped to fit better-auth user table in Phase 5; +// for now we keep our own minimal shape so Phase 2/3 can run without auth) +// --------------------------------------------------------------------------- +export const users = pgTable("users", { + id: text("id").primaryKey(), // better-auth user id (text uuid) — kept text so better-auth can own it later + email: varchar("email", { length: 255 }), + phone: varchar("phone", { length: 64 }), + name: text("name"), + passwordHash: text("password_hash").notNull(), + role: varchar("role", { length: 20 }).default("customer"), + gstin: varchar("gstin", { length: 64 }), // business buyer GSTIN (optional) + gstName: text("gst_name"), // business buyer name on GST + pan: varchar("pan", { length: 64 }), // business buyer PAN (optional) + createdAt: timestamp("created_at", { withTimezone: true }).defaultNow(), + updatedAt: timestamp("updated_at", { withTimezone: true }).defaultNow(), +}, (table) => ({ + emailIdx: index("users_email_idx").on(table.email), + phoneIdx: index("users_phone_idx").on(table.phone), +})); + +export const sessions = pgTable("sessions", { + id: text("id").primaryKey(), + userId: text("user_id").notNull().references(() => users.id, { onDelete: "cascade" }), + token: text("token").notNull().unique(), + expiresAt: timestamp("expires_at", { withTimezone: true }).notNull(), + createdAt: timestamp("created_at", { withTimezone: true }).defaultNow(), +}); + +// --------------------------------------------------------------------------- +// Addresses — pincode-first (couriers + shipping rules both care about pincode) +// --------------------------------------------------------------------------- +export const addresses = pgTable("addresses", { + id: text("id").primaryKey(), + userId: text("user_id").notNull().references(() => users.id, { onDelete: "cascade" }), + name: text("name").notNull(), + phone: varchar("phone", { length: 64 }).notNull(), + pincode: varchar("pincode", { length: 10 }).notNull(), // 6-digit Indian pincode (text to be uniform; Indian pincodes are 6 digits, no leading zeros typically, text is safe) + state: varchar("state", { length: 128 }), + district: varchar("district", { length: 128 }), + city: varchar("city", { length: 128 }), + locality: text("locality"), + street: text("street"), + isDefault: boolean("is_default").default(false), + createdAt: timestamp("created_at", { withTimezone: true }).defaultNow(), + updatedAt: timestamp("updated_at", { withTimezone: true }).defaultNow(), +}, (table) => ({ + userPincodeIdx: index("addresses_user_pincode_idx").on(table.userId, table.pincode), + userIdIdx: index("addresses_user_id_idx").on(table.userId), + pincodeIdx: index("addresses_pincode_idx").on(table.pincode), +})); + +// --------------------------------------------------------------------------- +// Categories (nested, Bengali + English names) +// --------------------------------------------------------------------------- +export const categories = pgTable("categories", { + id: text("id").primaryKey(), + slug: varchar("slug", { length: 255 }).notNull().unique(), + nameEn: varchar("name_en", { length: 255 }).notNull(), + nameBn: varchar("name_bn", { length: 255 }).notNull(), + parentId: text("parent_id"), + sortOrder: integer("sort_order").default(0), +}, (table) => ({ + parentFk: index("categories_parent_idx").on(table.parentId), +})); + +// --------------------------------------------------------------------------- +// Products +// --------------------------------------------------------------------------- +export const products = pgTable("products", { + id: text("id").primaryKey(), + slug: varchar("slug", { length: 255 }).notNull().unique(), + titleEn: text("title_en").notNull(), + titleBn: text("title_bn").notNull(), + description: text("description"), + hsn: varchar("hsn", { length: 10 }), // HSN code (e.g. 610910) + status: varchar("status", { length: 20 }).notNull().default("draft"), // draft, active, archived + categoryId: text("category_id").references(() => categories.id), + minOrderQty: integer("min_order_qty").default(1), + basePriceRupees: decimal("base_price_rupees", { precision: 12, scale: 2 }).notNull(), // INR, DECIMAL(12,2) + costPriceRupees: decimal("cost_price_rupees", { precision: 12, scale: 2 }), // INR, for margin (optional) + weightGrams: integer("weight_grams"), // for courier rate calc + dimensionsCm: text("dimensions_cm"), // e.g. "20x15x5" + requiresShipping: boolean("requires_shipping").default(true), + createdAt: timestamp("created_at", { withTimezone: true }).defaultNow(), + updatedAt: timestamp("updated_at", { withTimezone: true }).defaultNow(), +}, (table) => ({ + categoryIdx: index("products_category_idx").on(table.categoryId), + statusIdx: index("products_status_idx").on(table.status), +})); + +// --------------------------------------------------------------------------- +// Product images (local upload dir for now; object storage later) +// --------------------------------------------------------------------------- +export const productImages = pgTable("product_images", { + id: text("id").primaryKey(), + productId: text("product_id").notNull().references(() => products.id, { onDelete: "cascade" }), + url: text("url").notNull(), + altEn: text("alt_en"), + altBn: text("alt_bn"), + position: integer("position").default(0), +}, (table) => ({ + productIdx: index("product_images_product_idx").on(table.productId), +})); + +// --------------------------------------------------------------------------- +// Variants (unique SKU; the sellable unit) +// --------------------------------------------------------------------------- +export const variants = pgTable("variants", { + id: text("id").primaryKey(), + productId: text("product_id").notNull().references(() => products.id, { onDelete: "cascade" }), + sku: varchar("sku", { length: 128 }).notNull().unique(), + titleEn: text("title_en"), + titleBn: text("title_bn"), + attrsEn: text("attrs_en"), // JSON-ish text of variant attributes, e.g. {"color":"Navy","size":"L"} + attrsBn: text("attrs_bn"), + priceRupees: decimal("price_rupees", { precision: 12, scale: 2 }).notNull(), // INR + costPriceRupees: decimal("cost_price_rupees", { precision: 12, scale: 2 }), + compareAtPriceRupees: decimal("compare_at_price_rupees", { precision: 12, scale: 2 }), + weightGrams: integer("weight_grams"), + isActive: boolean("is_active").default(true), + createdAt: timestamp("created_at", { withTimezone: true }).defaultNow(), +}, (table) => ({ + productIdx: index("variants_product_idx").on(table.productId), +})); + +// --------------------------------------------------------------------------- +// Inventory — one row per variant; qty + reserved (held by unpaid orders). +// Stock reservations happen inside a DB transaction so two concurrent carts +// can't both sell the last unit. +// --------------------------------------------------------------------------- +export const inventory = pgTable("inventory", { + variantId: text("variant_id").primaryKey().references(() => variants.id, { onDelete: "cascade" }), + quantity: integer("quantity").notNull().default(0), // total units + reserved: integer("reserved").notNull().default(0), // held by unpaid/payment_pending orders + lowStockAt: integer("low_stock_at").default(5), // alert threshold + location: text("location"), // warehouse/fulfilment location id + updatedAt: timestamp("updated_at", { withTimezone: true }).defaultNow(), + +}, (table) => ({ + lowStockIdx: index("inventory_low_stock_idx").on(table.quantity, table.lowStockAt), +})); + +// --------------------------------------------------------------------------- +// Cart (guest: clientToken httpOnly cookie; logged-in: userId) +// --------------------------------------------------------------------------- +export const carts = pgTable("carts", { + id: text("id").primaryKey(), + clientToken: varchar("client_token", { length: 64 }).notNull().unique(), // httpOnly cookie value for guest carts + userId: text("user_id").references(() => users.id, { onDelete: "set null" }), + expiresAt: timestamp("expires_at", { withTimezone: true }).notNull(), + updatedAt: timestamp("updated_at", { withTimezone: true }).defaultNow(), +}, (table) => ({ + tokenIdx: uniqueIndex("carts_client_token_idx").on(table.clientToken), + userIdIdx: index("carts_user_id_idx").on(table.userId), +})); + +export const cartItems = pgTable("cart_items", { + id: text("id").primaryKey(), + cartId: text("cart_id").notNull().references(() => carts.id, { onDelete: "cascade" }), + variantId: text("variant_id").notNull().references(() => variants.id), + qty: integer("qty").notNull(), + unitPriceRupees: decimal("unit_price_rupees", { precision: 12, scale: 2 }).notNull(), // snapshot; re-priced server-side at checkout +}, (table) => ({ + cartVariantIdx: index("cart_items_cart_variant_idx").on(table.cartId, table.variantId), + variantIdx: index("cart_items_variant_idx").on(table.variantId), + +})); + +// --------------------------------------------------------------------------- +// Orders — INR, DECIMAL(12,2) money. addressSnapshot preserved forever. +// orderNo is a human-readable string (unique), not the PK. +// paymentStatus tracks prepaid vs COD lifecycle. +// --------------------------------------------------------------------------- +export const orders = pgTable("orders", { + id: text("id").primaryKey(), + orderNo: varchar("order_no", { length: 64 }).notNull().unique(), + userId: text("user_id").references(() => users.id, { onDelete: "set null" }), + currency: varchar("currency", { length: 8 }).notNull().default("INR"), + status: orderStatusEnum("status").notNull().default("pending"), + paymentStatus: paymentStatusEnum("payment_status").notNull().default("pending"), + subtotalRupees: decimal("subtotal_rupees", { precision: 12, scale: 2 }).notNull(), + shippingRupees: decimal("shipping_rupees", { precision: 12, scale: 2 }).notNull().default("0.00"), + discountRupees: decimal("discount_rupees", { precision: 12, scale: 2 }).notNull().default("0.00"), + totalRupees: decimal("total_rupees", { precision: 12, scale: 2 }).notNull(), + couponCode: varchar("coupon_code", { length: 64 }), + paymentRef: text("payment_ref"), // gateway txn id / reference + paymentSessionId: text("payment_session_id"), // gateway session id (sandbox/live) + cod: boolean("cod").notNull().default(false), + codCollected: boolean("cod_collected").default(false), + addressJson: text("address_json").notNull(), // snapshot of the delivery address at order time (JSON text) + customerNote: text("customer_note"), + createdAt: timestamp("created_at", { withTimezone: true }).defaultNow(), + updatedAt: timestamp("updated_at", { withTimezone: true }).defaultNow(), + paidAt: timestamp("paid_at", { withTimezone: true }), + shippedAt: timestamp("shipped_at", { withTimezone: true }), + deliveredAt: timestamp("delivered_at", { withTimezone: true }), + cancelledAt: timestamp("cancelled_at", { withTimezone: true }), +}, (table) => ({ + userIdStatusIdx: index("orders_user_status_idx").on(table.userId, table.status), + paymentRefIdx: index("orders_payment_ref_idx").on(table.paymentRef), + createdAtIdx: index("orders_created_at_idx").on(table.createdAt), +})); + +export const orderItems = pgTable("order_items", { + id: text("id").primaryKey(), + orderId: text("order_id").notNull().references(() => orders.id, { onDelete: "cascade" }), + variantId: text("variant_id").notNull(), + sku: varchar("sku", { length: 128 }).notNull(), // snapshot + titleEn: text("title_en").notNull(), + titleBn: text("title_bn"), + attrsEn: text("attrs_en"), + attrsBn: text("attrs_bn"), + qty: integer("qty").notNull(), + unitPriceRupees: decimal("unit_price_rupees", { precision: 12, scale: 2 }).notNull(), + lineTotalRupees: decimal("line_total_rupees", { precision: 12, scale: 2 }).notNull(), +}, (table) => ({ + orderIdx: index("order_items_order_idx").on(table.orderId), + +})); + +// --------------------------------------------------------------------------- +// Payments — audit + reconciliation. Every charge/create/refund/unwind is a row. +// --------------------------------------------------------------------------- +export const payments = pgTable("payments", { + id: text("id").primaryKey(), + orderId: text("order_id").notNull().references(() => orders.id, { onDelete: "cascade" }), + gateway: varchar("gateway", { length: 64 }).notNull(), // razorpay / cashfree / phonepe / payu / shiprocket-cod / cod + gatewayTxnId: varchar("gateway_txn_id", { length: 255 }), // provider's transaction id + gatewaySessionId: varchar("gateway_session_id", { length: 255 }), + amountRupees: decimal("amount_rupees", { precision: 12, scale: 2 }).notNull(), + currency: varchar("currency", { length: 8 }).notNull().default("INR"), + status: varchar("status", { length: 32 }).notNull(), // pending / authorized / captured / captured_failed / refunded / refund_failed / chargeback / cod_collected / cod_remittance_received / cod_not_collected + rawPayload: text("raw_payload"), // provider's callback body / response (for reconciliation) + eventType: varchar("event_type", { length: 64 }), // payment.captured / payment.refunded / cod.remittance etc. + createdAt: timestamp("created_at", { withTimezone: true }).defaultNow(), +}, (table) => ({ + orderIdx: index("payments_order_idx").on(table.orderId), + gatewayTxnIdx: uniqueIndex("payments_gateway_txn_idx").on(table.gateway, table.gatewayTxnId), + gatewaySessionIdx: index("payments_gateway_session_idx").on(table.gateway, table.gatewaySessionId), +})); + +// --------------------------------------------------------------------------- +// Webhook events — idempotency. unique (gateway, eventId) so a replay never +// creates two payments or ships twice. rawPayload stored for audit. +// --------------------------------------------------------------------------- +export const webhookEvents = pgTable("webhook_events", { + id: text("id").primaryKey(), // uuid + gateway: varchar("gateway", { length: 64 }).notNull(), + eventId: varchar("event_id", { length: 255 }).notNull(), // provider's event id + topic: varchar("topic", { length: 128 }), // e.g. payment.captured, order.fulfilled + payload: text("payload").notNull(), // raw JSON body + processed: boolean("processed").notNull().default(false), + processedAt: timestamp("processed_at", { withTimezone: true }), + outcome: text("outcome"), // what we did (created payment id / ignored duplicate etc.) + createdAt: timestamp("created_at", { withTimezone: true }).defaultNow(), +}, (table) => ({ + gatewayEventIdx: uniqueIndex("webhook_events_gateway_event_idx").on(table.gateway, table.eventId), +})); + +// --------------------------------------------------------------------------- +// Coupons — INR, DECIMAL(12,2). value can be rupees-fixed or percent. +// --------------------------------------------------------------------------- +export const coupons = pgTable("coupons", { + id: text("id").primaryKey(), + code: varchar("code", { length: 64 }).notNull().unique(), + type: varchar("type", { length: 16 }).notNull().default("percent"), // percent / fixed + valueRupees: decimal("value_rupees", { precision: 12, scale: 2 }), // used when type = fixed + valuePercent: decimal("value_percent", { precision: 6, scale: 2 }), // used when type = percent, e.g. 10.00 = 10% + minSpendRupees: decimal("min_spend_rupees", { precision: 12, scale: 2 }).notNull().default("0.00"), + maxUses: integer("max_uses"), + usedCount: integer("used_count").default(0), + expiresAt: timestamp("expires_at", { withTimezone: true }), + startsAt: timestamp("starts_at", { withTimezone: true }), + isActive: boolean("is_active").default(true), + createdAt: timestamp("created_at", { withTimezone: true }).defaultNow(), +}, (table) => ({ + codeIdx: index("coupons_code_idx").on(table.code), +})); + +// --------------------------------------------------------------------------- +// Courier shipments — separate lifecycle from the order. A shipment is created +// when the order is packed and handed to the courier. Tracks awb, courier service, +// status, expected delivery, last event, COD collected, shipping charge. +// --------------------------------------------------------------------------- +export const courierShipments = pgTable("courier_shipments", { + id: text("id").primaryKey(), // uuid + orderId: text("order_id").notNull().references(() => orders.id, { onDelete: "cascade" }), + courierService: varchar("courier_service", { length: 64 }).notNull(), // shiprocket / delhivery / bluedart etc. + courierName: varchar("courier_name", { length: 128 }), // the actual carrier (Delhivery, XpressBees...) — set after courier selection + awb: varchar("awb", { length: 64 }), // airway bill / tracking number + status: varchar("status", { length: 32 }).notNull().default("label_generated"), // label_generated / picked / in_transit / out_for_delivery / delivered / rto / failed + trackingUrl: text("tracking_url"), + expectedDelivery: timestamp("expected_delivery", { withTimezone: true }), + shippingChargeRupees: decimal("shipping_charge_rupees", { precision: 12, scale: 2 }).notNull().default("0.00"), + codCollected: boolean("cod_collected").default(false), + codAmountRupees: decimal("cod_amount_rupees", { precision: 12, scale: 2 }), + codRemittanceRupees: decimal("cod_remittance_rupees", { precision: 12, scale: 2 }), + lastEvent: text("last_event"), + lastEventAt: timestamp("last_event_at", { withTimezone: true }), + createdAt: timestamp("created_at", { withTimezone: true }).defaultNow(), +}, (table) => ({ + orderIdx: index("courier_shipments_order_idx").on(table.orderId), + awbIdx: index("courier_shipments_awb_idx").on(table.awb), +})); + +// --------------------------------------------------------------------------- +// Returns / RTO — customer return vs RTO kept separate. +// --------------------------------------------------------------------------- +export const returns = pgTable("returns", { + id: text("id").primaryKey(), // uuid + orderId: text("order_id").notNull().references(() => orders.id, { onDelete: "cascade" }), + shipmentId: text("shipment_id").references(() => courierShipments.id, { onDelete: "set null" }), + reason: text("reason").notNull(), + status: varchar("status", { length: 32 }).notNull().default("requested"), // requested / approved / pickup_scheduled / received_at_warehouse / inspected / refunded / rejected + itemSnapshot: text("item_snapshot"), // which items + qty were returned (JSON text) + collectedAmountRupees: decimal("collected_amount_rupees", { precision: 12, scale: 2 }), + refundedAmountRupees: decimal("refunded_amount_rupees", { precision: 12, scale: 2 }), + createdAt: timestamp("created_at", { withTimezone: true }).defaultNow(), + resolvedAt: timestamp("resolved_at", { withTimezone: true }), +}, (table) => ({ + orderIdx: index("returns_order_idx").on(table.orderId), +})); + +// --------------------------------------------------------------------------- +// Reviews (v2) +// --------------------------------------------------------------------------- +export const reviews = pgTable("reviews", { + id: text("id").primaryKey(), + productId: text("product_id").notNull().references(() => products.id, { onDelete: "cascade" }), + userId: text("user_id").notNull().references(() => users.id, { onDelete: "cascade" }), + rating: integer("rating").notNull(), + body: text("body"), + approved: boolean("approved").default(false), + createdAt: timestamp("created_at", { withTimezone: true }).defaultNow(), +}, (table) => ({ + productIdx: index("reviews_product_idx").on(table.productId), + userProductIdx: index("reviews_user_product_idx").on(table.userId, table.productId), + +})); + +// --------------------------------------------------------------------------- +// Audit log — who changed what + from where. actorId can be a user id or "system". +// --------------------------------------------------------------------------- +export const auditLog = pgTable("audit_log", { + id: text("id").primaryKey(), // uuid + actorId: text("actor_id").notNull(), // user id or "system" or "admin:..." + actorType: varchar("actor_type", { length: 32 }).notNull().default("user"), // user / admin / system / api + action: varchar("action", { length: 128 }).notNull(), // e.g. product.published, order.status_changed, refund.created + entity: varchar("entity", { length: 64 }).notNull(), // product / order / variant / coupon / shipment + entityId: text("entity_id").notNull(), + diff: text("diff"), // JSON text of what changed (before/after) — optional + ip: varchar("ip", { length: 45 }), + userAgent: text("user_agent"), + createdAt: timestamp("created_at", { withTimezone: true }).defaultNow(), +}, (table) => ({ + entityIdx: index("audit_log_entity_idx").on(table.entity, table.entityId), + actorIdx: index("audit_log_actor_idx").on(table.actorId), + createdAtIdx: index("audit_log_created_at_idx").on(table.createdAt), +})); + +// --------------------------------------------------------------------------- +// Relations (drizzle relations) — for typing, not for migration. +// --------------------------------------------------------------------------- +export const usersRelations = relations(users, ({ many }) => ({ + addresses: many(addresses), + sessions: many(sessions), + orders: many(orders), +})); + +export const addressesRelations = relations(addresses, ({ one }) => ({ + user: one(users, { fields: [addresses.userId], references: [users.id] }), +})); + +export const categoriesRelations = relations(categories, ({ many, one }) => ({ + parent: one(categories, { fields: [categories.parentId], references: [categories.id], relationName: "categoryTree" }), + children: many(categories, { relationName: "categoryTree" }), + products: many(products), +})); + +export const productsRelations = relations(products, ({ one, many }) => ({ + category: one(categories, { fields: [products.categoryId], references: [categories.id] }), + images: many(productImages), + variants: many(variants), + reviews: many(reviews), +})); + +export const productImagesRelations = relations(productImages, ({ one }) => ({ + product: one(products, { fields: [productImages.productId], references: [products.id] }), +})); + +export const variantsRelations = relations(variants, ({ one, many }) => ({ + product: one(products, { fields: [variants.productId], references: [products.id] }), + inventory: one(inventory, { fields: [variants.id], references: [inventory.variantId] }), + cartItems: many(cartItems), + orderItems: many(orderItems), +})); + +export const inventoryRelations = relations(inventory, ({ one }) => ({ + variant: one(variants, { fields: [inventory.variantId], references: [variants.id] }), +})); + +export const cartsRelations = relations(carts, ({ one, many }) => ({ + user: one(users, { fields: [carts.userId], references: [users.id] }), + items: many(cartItems), +})); + +export const cartItemsRelations = relations(cartItems, ({ one }) => ({ + cart: one(carts, { fields: [cartItems.cartId], references: [carts.id] }), + variant: one(variants, { fields: [cartItems.variantId], references: [variants.id] }), +})); + +export const ordersRelations = relations(orders, ({ one, many }) => ({ + user: one(users, { fields: [orders.userId], references: [users.id] }), + items: many(orderItems), + payments: many(payments), + shipments: many(courierShipments), + returns: many(returns), +})); + +export const orderItemsRelations = relations(orderItems, ({ one }) => ({ + order: one(orders, { fields: [orderItems.orderId], references: [orders.id] }), + variant: one(variants, { fields: [orderItems.variantId], references: [variants.id] }), +})); + +export const paymentsRelations = relations(payments, ({ one }) => ({ + order: one(orders, { fields: [payments.orderId], references: [orders.id] }), +})); + +export const webhookEventsRelations = relations(webhookEvents, ({}) => ({})); + +export const couponsRelations = relations(coupons, ({}) => ({})); + +export const courierShipmentsRelations = relations(courierShipments, ({ one, many }) => ({ + order: one(orders, { fields: [courierShipments.orderId], references: [orders.id] }), + returns: many(returns), +})); + +export const returnsRelations = relations(returns, ({ one }) => ({ + order: one(orders, { fields: [returns.orderId], references: [orders.id] }), + shipment: one(courierShipments, { fields: [returns.shipmentId], references: [courierShipments.id] }), +})); + +export const reviewsRelations = relations(reviews, ({ one }) => ({ + product: one(products, { fields: [reviews.productId], references: [products.id] }), + user: one(users, { fields: [reviews.userId], references: [users.id] }), +})); + +export const auditLogRelations = relations(auditLog, ({}) => ({})); diff --git a/e-commerce/db/verify-queries.sql b/e-commerce/db/verify-queries.sql new file mode 100644 index 0000000000000000000000000000000000000000..c728797a5d454afe46605823c57fb5d4751875cf --- /dev/null +++ b/e-commerce/db/verify-queries.sql @@ -0,0 +1,5 @@ +-- Verify DB state directly (bypasses drizzle) +SELECT 'categories count' AS label, count(*) FROM categories; +SELECT 'products count' AS label, count(*) FROM products; +SELECT 'variants count' AS label, count(*) FROM variants; +SELECT 'inventory count' AS label, count(*) FROM inventory; diff --git a/e-commerce/drizzle.config.ts b/e-commerce/drizzle.config.ts new file mode 100644 index 0000000000000000000000000000000000000000..49726831455f60599bfabe2f89236052b54c002f --- /dev/null +++ b/e-commerce/drizzle.config.ts @@ -0,0 +1,10 @@ +import type { Config } from "drizzle-kit"; + +export default { + schema: "./db/schema.ts", + out: "./drizzle", + dialect: "postgresql", + dbCredentials: { + url: process.env.DATABASE_URL ?? "postgresql://postgres:postgres@localhost:5432/e_commerce?schema=public", + }, +} satisfies Config; diff --git a/e-commerce/i18n/request.ts b/e-commerce/i18n/request.ts new file mode 100644 index 0000000000000000000000000000000000000000..c94ff6d647267a4f8659b316e304d58807ab4c87 --- /dev/null +++ b/e-commerce/i18n/request.ts @@ -0,0 +1,24 @@ +import { getRequestConfig } from "next-intl/server"; +import { locales, type Locale } from "./routing"; +import { notFound } from "next/navigation"; + +// Resolve the locale for a given request. During SSR each route segment already +// passes an explicit params.locale, which next-intl receives as `locale` here. We +// validate that against the supported list and 404 if it is not recognised — this is +// the same guard we already apply in LocaleLayout (and in the manifest's idx-0/1 +// /en and /bn entries), so a mistyped or dynamic route slug never renders under a +// wrong language. +export default getRequestConfig(async ({ locale }) => { + if (!locale || !locales.includes(locale as Locale)) { + // We do not fall back to a default locale for the message bundle. Falling back + // can silently render a page in the wrong language when an invalid locale slug + // is requested. Instead we throw the same notFound signal that the manifest and + // LocaleLayout already emit, so the request is treated as a 404. + notFound(); + } + + return { + locale: locale as Locale, + messages: (await import(`../messages/${locale}.json`)).default, + }; +}); diff --git a/e-commerce/i18n/routing.ts b/e-commerce/i18n/routing.ts new file mode 100644 index 0000000000000000000000000000000000000000..affb1f6c1efd94003cd4d4983faabcaff0cfccc8 --- /dev/null +++ b/e-commerce/i18n/routing.ts @@ -0,0 +1,3 @@ +export const locales = ["en", "bn"] as const; +export type Locale = (typeof locales)[number]; +export const defaultLocale: Locale = "en"; diff --git a/e-commerce/lib/format-inr.ts b/e-commerce/lib/format-inr.ts new file mode 100644 index 0000000000000000000000000000000000000000..bd16cf1972368afcfc33a7ddff526fa986bb4302 --- /dev/null +++ b/e-commerce/lib/format-inr.ts @@ -0,0 +1,156 @@ +/** + * Locale-aware INR formatter. + * + * Displays an INR Decimal/number/string value with the ₹ symbol and 2 decimals, + * using the given locale's number style so Bengali (bn-IN) renders digits in + * Bengali (e.g. ৪৯৯.০০) while English (en-IN) uses Latin digits with the + * Indian comma grouping (e.g. 1,234.50). + * + * Defaults to en-IN when no locale (or an unknown locale) is given, so the + * existing product/category pages keep behaving the same. + * + * We intentionally drive formatting through Intl.NumberFormat and verify the + * output character-by-character against the locale we requested. This guards + * against two failure modes observed when the runtime/ICU data differ from + * expectations: + * 1. A bn-IN request that comes back using Latin digits (e.g. `499.00`) + * instead of Bengali digits — in that case we fall back to a plain + * decimal.js `toFixed(2)` so the page still renders, and we log a warning + * once per process so the drift is visible in dev/CI logs. + * 2. An en-IN request that switches the dot/comma roles and produces something + * like `4,99` instead of `499.00` — we normalise trailing separators and + * re-request with the explicit `en-IN` locale so the digit grouping is + * stable. If that also misbehaves, we fall back to the plain formatter and + * warn. + * + * Known limitation: we rely on the runtime's ICU data for fractional-digits + * precision. On environments where bn-IN is present but stripped (some embedded + * or older glibc-based runtimes), the fallback above is the safety net; the + * page layout still degrades gracefully because the symbol + 2-decimal output + * is consistent. + */ + +import { Decimal } from "decimal.js"; + +const INR_ROUND = Decimal.ROUND_HALF_UP; + +// Only warn about the bn -> Latin-digit drift once per process, so a noisy +// page that formats the same value many times does not flood stdout. +let warnedBnLatinDrift = false; +let warnedEnCommaDrift = false; + +function toDecimal(value: number | string | Decimal): Decimal { + return new Decimal(value).toDecimalPlaces(2, INR_ROUND); +} + +export type FormatINRLocale = "en" | "bn" | "en-IN" | "bn-IN"; + +// Quick Bengali-digit check (U+09E6..U+09EF). We only treat a string as +// "good Bengali output" if it contains at least one Bengali digit AND no +// Latin digits in the fractional part. This is a defensive heuristic, not a +// full digit-set audit — the goal is to catch the most common drift (entire +// output in Latin digits) rather than to police every glyph. +function looksLikeBengaliOutput(s: string): boolean { + // Must contain at least one Bengali digit. + if (!/\u09E6-\u09EF/.test(s)) return false; + // Fractional part (after the last full stop) must not contain Latin digits. + const dotIndex = s.lastIndexOf("."); + if (dotIndex >= 0) { + const frac = s.slice(dotIndex + 1); + if (/\d/.test(frac)) return false; + } + return true; +} + +export function formatINR( + value: number | string | Decimal, + locale: FormatINRLocale | string = "en-IN", + options?: { showSymbol?: boolean } +): string { + const d = toDecimal(value); + const resolvedLocale = + locale === "en" ? "en-IN" : locale === "bn" ? "bn-IN" : locale; + + // Budget two attempts: the real locale, and as an explicit en-IN fallback + // for the comma-drift case below. + const attempts: Array<{ name: string; loc: string }> = [ + { name: resolvedLocale, loc: resolvedLocale }, + ]; + + // en-IN is the canonical English variant we use on the site. If a caller + // passed something like "en-US" we still want Indian grouping by default. + if (resolvedLocale !== "en-IN") { + attempts.push({ name: "en-IN", loc: "en-IN" }); + } + + for (const attempt of attempts) { + try { + const num = d.toNumber(); + const formatted = new Intl.NumberFormat(attempt.loc, { + minimumFractionDigits: 2, + maximumFractionDigits: 2, + }).format(num); + + if (resolvedLocale === "bn-IN") { + // Defensive: if the runtime handed us Latin digits, fall back to a + // plain decimal.js formatter so the page still renders. + if (!looksLikeBengaliOutput(formatted)) { + if (!warnedBnLatinDrift) { + console.warn( + "formatINR: bn-IN request returned Latin digits (%s → %s). " + + "Falling back to decimal.js output. ICU/bn-IN data may be incomplete.", + value, + formatted + ); + warnedBnLatinDrift = true; + } + continue; + } + + return `${options?.showSymbol !== false ? "₹" : ""}${formatted}`; + } + + // en-IN path: guard against the rare comma/dot-role swap where a value + // like 499.00 is formatted as `4,99` (comma as decimal separator). + // Acceptable Indian English output always uses a dot as the decimal + // separator, so we can detect the drift cheaply. + if (resolvedLocale === "en-IN" || resolvedLocale === "en") { + const lastSeparator = formatted.lastIndexOf(","); + const lastDot = formatted.lastIndexOf("."); + if ( + lastSeparator > lastDot && + formatted.endsWith(",00") + ) { + // Looks like comma-as-decimal; try en-IN explicitly and keep the + // result only if it has a dot decimal separator. + if (!warnedEnCommaDrift) { + console.warn( + "formatINR: en-IN request formatted %s as %s (suspected " + + "comma-as-decimal). Retrying with explicit en-IN.", + value, + formatted + ); + warnedEnCommaDrift = true; + } + continue; + } + + return `${options?.showSymbol !== false ? "₹" : ""}${formatted}`; + } + + // Any other locale path (future locales): emit whatever Intl gives us, + // but make sure it contains a decimal separator so 2-decimal precision + // is preserved. + if (/\.|,/.test(formatted)) { + return `${options?.showSymbol !== false ? "₹" : ""}${formatted}`; + } + continue; + } catch { + continue; + } + } + + // All attempts exhausted (or the locale is unrecognised to Intl): fall back + // to a plain decimal.js formatter so the page still renders in some INR form. + return `${options?.showSymbol !== false ? "₹" : ""}${d.toFixed(2)}`; +} diff --git a/e-commerce/lib/money.ts b/e-commerce/lib/money.ts new file mode 100644 index 0000000000000000000000000000000000000000..29309ece1e16eac17a966742b9689191ecd9e3ad --- /dev/null +++ b/e-commerce/lib/money.ts @@ -0,0 +1,170 @@ +/** + * INR money layer. + * + * Postgres stores INR in DECIMAL(12,2) — that is **rupees with 2 decimals** + * (e.g. 100.00 means ₹100.00, NOT 100 paise). This is the value you send to + * and read from the DB as a Decimal / numeric string. + * + * JS side: **never do INR math with raw Number**. Always use decimal.js 10.x for + * add / sub / mul / div / round. Display via `formatINR`. + * + * Why not paise-integer: you chose DECIMAL(12,2) + decimal.js on the JS side + * (PROJECT_MEMORY §2, locked). That is exact if we stay on Decimal for all math. + * The danger zone is only raw JS Number arithmetic (0.1 + 0.2 !== 0.3); we avoid it. + * + * decimal.js 10.x notes: + * - Rounding modes are numbers on Decimal itself: ROUND_UP=0, ROUND_DOWN=1, + * ROUND_HALF_UP=4, ROUND_HALF_EVEN=6. We use Decimal.ROUND_HALF_UP etc. + * - `isNonNegative()` does not exist; use `!d.isNegative()`. + */ + +import { Decimal } from "decimal.js"; + +/** Rounding mode for INR display & DB round-trip (half-up, 2 decimals). */ +const INR_ROUND = Decimal.ROUND_HALF_UP; // 4 + +/** Small helper: create a Decimal from a rupee value (number | string | Decimal). */ +export function rupees(value: number | string | Decimal): Decimal { + return new Decimal(value).toDecimalPlaces(2, INR_ROUND); +} + +/** Add INR values (exact). */ +export function addRupees(...values: Array): Decimal { + let sum = new Decimal(0); + for (const v of values) sum = sum.plus(rupees(v)); + return sum.toDecimalPlaces(2, INR_ROUND); +} + +/** Subtract INR values (exact). */ +export function subRupees(a: number | string | Decimal, ...values: Array): Decimal { + let result = rupees(a); + for (const v of values) result = result.minus(rupees(v)); + return result.toDecimalPlaces(2, INR_ROUND); +} + +/** Multiply INR by a scalar (exact). e.g. price * qty. */ +export function mulRupees(price: number | string | Decimal, qty: number | string | Decimal): Decimal { + const p = rupees(price); + const q = new Decimal(qty); + return p.times(q).toDecimalPlaces(2, INR_ROUND); +} + +/** Percent of INR (exact). `percent` is a number like 10 for 10%. */ +export function percentOf(value: number | string | Decimal, percent: number | string | Decimal): Decimal { + const v = rupees(value); + const p = new Decimal(percent).div(100); + return v.times(p).toDecimalPlaces(2, INR_ROUND); +} + +/** Discounted price: price - (price * percent / 100), e.g. 10% off. */ +export function discountedPrice(price: number | string | Decimal, percent: number | string | Decimal): Decimal { + return subRupees(price, percentOf(price, percent)); +} + +/** Format INR for display: e.g. 100.00 -> "₹100.00", 12345.60 -> "₹12,345.60". */ +export function formatINR(value: number | string | Decimal, options?: { showSymbol?: boolean; locale?: FormatINRLocale | string }): string { + const d = rupees(value); + try { + const num = d.toDecimalPlaces(2, INR_ROUND).toNumber(); + const intlLocale = + options?.locale === "en" ? "en-IN" : options?.locale === "bn" ? "bn-IN" : options?.locale ?? "en-IN"; + const formatted = new Intl.NumberFormat(intlLocale, { + minimumFractionDigits: 2, + maximumFractionDigits: 2, + }).format(num); + // Defend against a runtime that formats en-IN without the Indian comma + // grouping or with a swapped comma/dot role. The canonical output always + // uses a dot as the decimal separator, so anything ending in ",00" with + // no trailing dot is treated as suspect and re-run explicitly as en-IN. + const suspiciousCommaDecimal = + intlLocale === "en-IN" && + formatted.lastIndexOf(",") > formatted.lastIndexOf(".") && + formatted.endsWith(",00"); + if (suspiciousCommaDecimal) { + const fallback = new Intl.NumberFormat("en-IN", { + minimumFractionDigits: 2, + maximumFractionDigits: 2, + }).format(num); + const symbol = options?.showSymbol !== false ? "₹" : ""; + return `${symbol}${fallback}`; + } + const symbol = options?.showSymbol !== false ? "₹" : ""; + return `${symbol}${formatted}`; + } catch { + return `${options?.showSymbol !== false ? "₹" : ""}${d.toFixed(2)}`; + } +} + +/** Strip currency symbol for sorting/comparison keys. */ +export function stripSymbol(s: string): string { + return s.replace(/^[\₹$€£]\s*/, "").trim(); +} + +/** Decimal value ready for Postgres DECIMAL(12,2) as a string. */ +export function toDbDecimal(value: number | string | Decimal): string { + const d = rupees(value); + return d.toFixed(2); +} + +/** Read a DB DECIMAL(12,2) string back into a Decimal rupee value. */ +export function fromDbDecimal(value: string | null | undefined): Decimal | null { + if (value == null) return null; + return rupees(value); +} + +/** ------------------------------------------------------------------ */ +/** Zod v4 INR validators. */ +/** ------------------------------------------------------------------ */ + +import { z } from "zod"; + +/** + * INR amount string with up to 2 decimals, e.g. "100.00", "-12.50". + * Coerces to a Decimal with 2 decimals. Rejects NaN / Infinity. + */ +export const inrString = z + .string() + .regex(/^-?\d{1,12}(\.\d{1,2})?$/, "Invalid INR amount") + .transform((s) => { + const d = new Decimal(s); + if (!d.isFinite()) throw new Error("Non-finite INR amount"); + return d.toDecimalPlaces(2, INR_ROUND); + }); + +/** + * INR amount from a form input that may be a number or numeric string. + * Coerces to a Decimal with 2 decimals. Rejects NaN / Infinity. + */ +export const inrFormInput = z + .union([z.string(), z.number()]) + .transform((v) => { + const d = new Decimal(v); + if (!d.isFinite()) throw new Error("Invalid INR amount"); + return d.toDecimalPlaces(2, INR_ROUND); + }); + +/** + * Non-negative INR amount (for prices, totals, shipping, discounts). + */ +export const nonNegativeInr = inrString.refine((d) => !d.isNegative(), { + message: "Amount must be >= 0", +}); + +/** ------------------------------------------------------------------ */ +/** Rounding helpers for specific invoice/checkout cases. */ +/** ------------------------------------------------------------------ */ + +/** Round a Decimal to 2 decimals (INR, half-up). */ +export function round2(value: number | string | Decimal): Decimal { + return rupees(value); +} + +/** Floor to 2 decimals (e.g. some courier rounding rules). */ +export function floor2(value: number | string | Decimal): Decimal { + return new Decimal(value).toDecimalPlaces(2, Decimal.ROUND_DOWN); // 1 +} + +/** Ceil to 2 decimals. */ +export function ceil2(value: number | string | Decimal): Decimal { + return new Decimal(value).toDecimalPlaces(2, Decimal.ROUND_UP); // 0 +} diff --git a/e-commerce/lib/utils.ts b/e-commerce/lib/utils.ts new file mode 100644 index 0000000000000000000000000000000000000000..a5ef193506d07d0459fec4f187af08283094d7c8 --- /dev/null +++ b/e-commerce/lib/utils.ts @@ -0,0 +1,6 @@ +import { clsx, type ClassValue } from "clsx"; +import { twMerge } from "tailwind-merge"; + +export function cn(...inputs: ClassValue[]) { + return twMerge(clsx(inputs)); +} diff --git a/e-commerce/messages/bn.json b/e-commerce/messages/bn.json new file mode 100644 index 0000000000000000000000000000000000000000..d5d47f7fc2370da602461eb1d33651e19b8dd809 --- /dev/null +++ b/e-commerce/messages/bn.json @@ -0,0 +1,33 @@ +{ + "home": { + "title": "ই-কমার্স স্টোর", + "hero": "ভারত জুড়ে ডেলিভারি", + "lang": "বাংলা", + "catalog": "ক্যাটালগ", + "about": "সম্পর্কে" + }, + "catalog": { + "back": "পিছনে", + "hsn": "এইচএসএন", + "available": "উপলব্ধ", + "units": "টুকরো", + "variants": "ভেরিয়েন্ট", + "variantsCount": "{{count}} ভেরিয়েন্ট(গুলো)", + "buyNow": "এখন কিনুন", + "shipping": "৯৯৯ টাকার উপরে বিনামূল্য ডেলিভারি। বিকাশে পেমেন্ট সম্ভব।", + "product": { + "view": "পণ্য দেখুন", + "metaTitle": "{{title}} — ই-কমার্স স্টোর", + "metaDescription": "ভারত জুড়ে বিকাশে পেমেন্ট দিয়ে {{title}} অনলাইনে কিনুন।" + }, + "category": { + "view": "বিভাগ দেখুন", + "metaTitle": "{{title}} — ই-কমার্স স্টোর", + "metaDescription": "ভারত জুড়ে বিকাশে পেমেন্ট দিয়ে {{title}} এর পণ্য দেখুন।", + "hero": "বিভাগ অনুযায়ী দেখুন", + "footer": "স্টকে থাকা পণ্য দেখানো হচ্ছে। ভারত জুড়ে বিকাশে পেমেন্ট সম্ভব।", + "empty": "এই বিভাগে এখন কোনো পণ্য নেই।" + }, + "outOfStock": "স্টক নেই" + } +} diff --git a/e-commerce/messages/en.json b/e-commerce/messages/en.json new file mode 100644 index 0000000000000000000000000000000000000000..91fe1a738b93dd45ba6e4e65e81c79fd404c3972 --- /dev/null +++ b/e-commerce/messages/en.json @@ -0,0 +1,33 @@ +{ + "home": { + "title": "E-Commerce Store", + "hero": "Domestic shipping across India", + "lang": "English", + "catalog": "Catalog", + "about": "About" + }, + "catalog": { + "back": "Back", + "hsn": "HSN", + "available": "Available", + "units": "units", + "variants": "Variants", + "variantsCount": "{{count}} variant(s)", + "buyNow": "Buy now", + "shipping": "Free shipping above ₹999. COD available.", + "product": { + "view": "View product", + "metaTitle": "{{title}} — E-Commerce Store", + "metaDescription": "Shop {{title}} online with cash on delivery across India." + }, + "category": { + "view": "View category", + "metaTitle": "{{title}} — E-Commerce Store", + "metaDescription": "Browse {{title}} products with cash on delivery across India.", + "hero": "Shop by category", + "footer": "Showing products in stock. COD available across India.", + "empty": "No products in this category right now." + }, + "outOfStock": "Out of stock" + } +} diff --git a/e-commerce/next-env.d.ts b/e-commerce/next-env.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..ce4e94a6b10f160ee021fe18939af160d2927dcf --- /dev/null +++ b/e-commerce/next-env.d.ts @@ -0,0 +1,7 @@ +/// +/// +import "./.next/types/routes.d.ts"; +import "./.next/types/root-params.d.ts"; + +// NOTE: This file should not be edited +// see https://nextjs.org/docs/app/api-reference/config/typescript for more information. diff --git a/e-commerce/next.config.ts b/e-commerce/next.config.ts new file mode 100644 index 0000000000000000000000000000000000000000..a469ab9c130c12bd61e0e8063af2ac7de6eb9add --- /dev/null +++ b/e-commerce/next.config.ts @@ -0,0 +1,16 @@ +import type { NextConfig } from "next"; +import createNextIntlPlugin from "next-intl/plugin"; + +const nextConfig: NextConfig = { + // cacheComponents OFF because the product detail page uses per-segment `dynamic = + // "force-dynamic"`, which is incompatible with cacheComponents. partialPrefetching + // requires cacheComponents, so we drop it too for the production build. The static + // shell (home, layout, category page) still works fine without cacheComponents. + // If we later want the product page statically prerendered, we switch it to + // generateStaticParams over known slugs and turn cacheComponents back ON. + partialPrefetching: false, +}; + +const withNextIntl = createNextIntlPlugin(); + +export default withNextIntl(nextConfig); diff --git a/e-commerce/node_modules/.bin/autoprefixer b/e-commerce/node_modules/.bin/autoprefixer new file mode 100644 index 0000000000000000000000000000000000000000..785830eafe4a0f89e1eafc15dc5899a165056886 --- /dev/null +++ b/e-commerce/node_modules/.bin/autoprefixer @@ -0,0 +1,22 @@ +#!/usr/bin/env node + +let mode = process.argv[2] +if (mode === '--info') { + process.stdout.write(require('../')().info() + '\n') +} else if (mode === '--version') { + process.stdout.write( + 'autoprefixer ' + require('../package.json').version + '\n' + ) +} else { + process.stdout.write( + 'autoprefix\n' + + '\n' + + 'Options:\n' + + ' --info Show target browsers and used prefixes\n' + + ' --version Show version number\n' + + ' --help Show help\n' + + '\n' + + 'Usage:\n' + + ' autoprefixer --info\n' + ) +} diff --git a/e-commerce/node_modules/.bin/baseline-browser-mapping b/e-commerce/node_modules/.bin/baseline-browser-mapping new file mode 100644 index 0000000000000000000000000000000000000000..b52b3b0930145d6628f6c8fa770cdac7a5857684 --- /dev/null +++ b/e-commerce/node_modules/.bin/baseline-browser-mapping @@ -0,0 +1,2 @@ +#!/usr/bin/env node +"use strict";const{getCompatibleVersions:e}=require("./index.cjs"),a=process.argv.slice(2),s={};for(let e=0;e -1) { + return true; + } + return false; +} + +const PLATFORMS = { + win32: { + x64: "@biomejs/cli-win32-x64/biome.exe", + arm64: "@biomejs/cli-win32-arm64/biome.exe", + }, + darwin: { + x64: "@biomejs/cli-darwin-x64/biome", + arm64: "@biomejs/cli-darwin-arm64/biome", + }, + linux: { + x64: "@biomejs/cli-linux-x64/biome", + arm64: "@biomejs/cli-linux-arm64/biome", + }, + "linux-musl": { + x64: "@biomejs/cli-linux-x64-musl/biome", + arm64: "@biomejs/cli-linux-arm64-musl/biome", + }, +}; + +const binPath = env.BIOME_BINARY || + (platform === "linux" && isMusl() + ? PLATFORMS?.["linux-musl"]?.[arch] + : PLATFORMS?.[platform]?.[arch] + ); + +if (binPath) { + const packageManager = detectPackageManager(); + const result = require("child_process").spawnSync( + require.resolve(binPath), + process.argv.slice(2), + { + shell: false, + stdio: "inherit", + env: { + ...env, + BIOME_DISTRIBUTION: "npm", + JS_RUNTIME_VERSION: version, + JS_RUNTIME_NAME: release.name, + ...(packageManager != null + ? { NODE_PACKAGE_MANAGER: packageManager } + : {}), + }, + }, + ); + + if (result.error) { + throw result.error; + } + + process.exitCode = result.status; +} else { + console.error( + "The Biome CLI package doesn't ship with prebuilt binaries for your platform yet. " + + "You can still use the CLI by cloning the biome/tools repo from GitHub, " + + "and follow the instructions there to build the CLI for your platform.", + ); + process.exitCode = 1; +} + +/** + * NPM, Yarn, and other package manager set the `npm_config_user_agent`. It has the following format: + * + * ``` + * "npm/8.3.0 node/v16.13.2 win32 x64 workspaces/false + * ``` + * + * @returns The package manager string (`npm/8.3.0`) or null if the user agent string isn't set. + */ +function detectPackageManager() { + const userAgent = env.npm_config_user_agent; + + if (userAgent == null) { + return null; + } + + return userAgent.split(" ")[0]; +} diff --git a/e-commerce/node_modules/.bin/browserslist b/e-commerce/node_modules/.bin/browserslist new file mode 100644 index 0000000000000000000000000000000000000000..78c08d743a8e478c346029e241b1f795b646fbd2 --- /dev/null +++ b/e-commerce/node_modules/.bin/browserslist @@ -0,0 +1,156 @@ +#!/usr/bin/env node + +var fs = require('fs') +var updateDb = require('update-browserslist-db') + +var browserslist = require('./') +var pkg = require('./package.json') + +var args = process.argv.slice(2) + +var USAGE = + 'Usage:\n' + + ' npx browserslist\n' + + ' npx browserslist "QUERIES"\n' + + ' npx browserslist --json "QUERIES"\n' + + ' npx browserslist --config="path/to/browserlist/file"\n' + + ' npx browserslist --coverage "QUERIES"\n' + + ' npx browserslist --coverage=US "QUERIES"\n' + + ' npx browserslist --coverage=US,RU,global "QUERIES"\n' + + ' npx browserslist --env="environment name defined in config"\n' + + ' npx browserslist --stats="path/to/browserlist/stats/file"\n' + + ' npx browserslist --mobile-to-desktop\n' + + ' npx browserslist --ignore-unknown-versions\n' + +function isArg(arg) { + return args.some(function (str) { + return str === arg || str.indexOf(arg + '=') === 0 + }) +} + +function error(msg) { + process.stderr.write('browserslist: ' + msg + '\n') + process.exit(1) +} + +if (isArg('--help') || isArg('-h')) { + process.stdout.write(pkg.description + '.\n\n' + USAGE + '\n') +} else if (isArg('--version') || isArg('-v')) { + process.stdout.write('browserslist ' + pkg.version + '\n') +} else if (isArg('--update-db')) { + /* c8 ignore next 8 */ + process.stdout.write( + 'The --update-db command is deprecated.\n' + + 'Please use npx update-browserslist-db@latest instead.\n' + ) + process.stdout.write('Browserslist DB update will still be made.\n') + updateDb(function (str) { + process.stdout.write(str) + }) +} else { + var mode = 'browsers' + var opts = {} + var queries + var areas + + for (var i = 0; i < args.length; i++) { + if (args[i][0] !== '-') { + queries = args[i].replace(/^["']|["']$/g, '') + continue + } + + var arg = args[i].split('=') + var name = arg[0] + var value = arg[1] + + if (value) value = value.replace(/^["']|["']$/g, '') + + if (name === '--config' || name === '-b') { + opts.config = value + } else if (name === '--env' || name === '-e') { + opts.env = value + } else if (name === '--stats' || name === '-s') { + opts.stats = value + } else if (name === '--coverage' || name === '-c') { + if (mode !== 'json') mode = 'coverage' + if (value) { + areas = value.split(',') + } else { + areas = ['global'] + } + } else if (name === '--json') { + mode = 'json' + } else if (name === '--mobile-to-desktop') { + /* c8 ignore next */ + opts.mobileToDesktop = true + } else if (name === '--ignore-unknown-versions') { + /* c8 ignore next */ + opts.ignoreUnknownVersions = true + } else { + error('Unknown arguments ' + args[i] + '.\n\n' + USAGE) + } + } + + var browsers + try { + browsers = browserslist(queries, opts) + } catch (e) { + if (e.name === 'BrowserslistError') { + error(e.message) + } /* c8 ignore start */ else { + throw e + } /* c8 ignore end */ + } + + var coverage + if (mode === 'browsers') { + browsers.forEach(function (browser) { + process.stdout.write(browser + '\n') + }) + } else if (areas) { + coverage = areas.map(function (area) { + var stats + if (area !== 'global') { + stats = area + } else if (opts.stats) { + stats = JSON.parse(fs.readFileSync(opts.stats)) + } + var result = browserslist.coverage(browsers, stats) + var round = Math.round(result * 100) / 100.0 + + return [area, round] + }) + + if (mode === 'coverage') { + var prefix = 'These browsers account for ' + process.stdout.write(prefix) + coverage.forEach(function (data, index) { + var area = data[0] + var round = data[1] + var end = 'globally' + if (area && area !== 'global') { + end = 'in the ' + area.toUpperCase() + } else if (opts.stats) { + end = 'in custom statistics' + } + + if (index !== 0) { + process.stdout.write(prefix.replace(/./g, ' ')) + } + + process.stdout.write(round + '% of all users ' + end + '\n') + }) + } + } + + if (mode === 'json') { + var data = { browsers: browsers } + if (coverage) { + data.coverage = coverage.reduce(function (object, j) { + object[j[0]] = j[1] + return object + }, {}) + } + process.stdout.write(JSON.stringify(data, null, ' ') + '\n') + } +} diff --git a/e-commerce/node_modules/.bin/drizzle-kit b/e-commerce/node_modules/.bin/drizzle-kit new file mode 100644 index 0000000000000000000000000000000000000000..c28f3e4732f0d911237dc1eb1bc466cefaa1b976 --- /dev/null +++ b/e-commerce/node_modules/.bin/drizzle-kit @@ -0,0 +1,92885 @@ +#!/usr/bin/env node +"use strict"; +var __create = Object.create; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __getProtoOf = Object.getPrototypeOf; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __esm = (fn, res) => function __init() { + return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res; +}; +var __commonJS = (cb, mod) => function __require() { + return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; +}; +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( + // If the importer is in node compatibility mode or this is not an ESM + // file that has been converted to a CommonJS file using a Babel- + // compatible transform (i.e. "__esModule" has not been set), then set + // "default" to the CommonJS "module.exports" for node compatibility. + isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, + mod +)); +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); + +// ../node_modules/.pnpm/chalk@5.4.1/node_modules/chalk/source/vendor/ansi-styles/index.js +function assembleStyles() { + const codes = /* @__PURE__ */ new Map(); + for (const [groupName, group] of Object.entries(styles)) { + for (const [styleName, style] of Object.entries(group)) { + styles[styleName] = { + open: `\x1B[${style[0]}m`, + close: `\x1B[${style[1]}m` + }; + group[styleName] = styles[styleName]; + codes.set(style[0], style[1]); + } + Object.defineProperty(styles, groupName, { + value: group, + enumerable: false + }); + } + Object.defineProperty(styles, "codes", { + value: codes, + enumerable: false + }); + styles.color.close = "\x1B[39m"; + styles.bgColor.close = "\x1B[49m"; + styles.color.ansi = wrapAnsi16(); + styles.color.ansi256 = wrapAnsi256(); + styles.color.ansi16m = wrapAnsi16m(); + styles.bgColor.ansi = wrapAnsi16(ANSI_BACKGROUND_OFFSET); + styles.bgColor.ansi256 = wrapAnsi256(ANSI_BACKGROUND_OFFSET); + styles.bgColor.ansi16m = wrapAnsi16m(ANSI_BACKGROUND_OFFSET); + Object.defineProperties(styles, { + rgbToAnsi256: { + value(red, green, blue) { + if (red === green && green === blue) { + if (red < 8) { + return 16; + } + if (red > 248) { + return 231; + } + return Math.round((red - 8) / 247 * 24) + 232; + } + return 16 + 36 * Math.round(red / 255 * 5) + 6 * Math.round(green / 255 * 5) + Math.round(blue / 255 * 5); + }, + enumerable: false + }, + hexToRgb: { + value(hex) { + const matches = /[a-f\d]{6}|[a-f\d]{3}/i.exec(hex.toString(16)); + if (!matches) { + return [0, 0, 0]; + } + let [colorString] = matches; + if (colorString.length === 3) { + colorString = [...colorString].map((character) => character + character).join(""); + } + const integer = Number.parseInt(colorString, 16); + return [ + /* eslint-disable no-bitwise */ + integer >> 16 & 255, + integer >> 8 & 255, + integer & 255 + /* eslint-enable no-bitwise */ + ]; + }, + enumerable: false + }, + hexToAnsi256: { + value: (hex) => styles.rgbToAnsi256(...styles.hexToRgb(hex)), + enumerable: false + }, + ansi256ToAnsi: { + value(code) { + if (code < 8) { + return 30 + code; + } + if (code < 16) { + return 90 + (code - 8); + } + let red; + let green; + let blue; + if (code >= 232) { + red = ((code - 232) * 10 + 8) / 255; + green = red; + blue = red; + } else { + code -= 16; + const remainder = code % 36; + red = Math.floor(code / 36) / 5; + green = Math.floor(remainder / 6) / 5; + blue = remainder % 6 / 5; + } + const value = Math.max(red, green, blue) * 2; + if (value === 0) { + return 30; + } + let result = 30 + (Math.round(blue) << 2 | Math.round(green) << 1 | Math.round(red)); + if (value === 2) { + result += 60; + } + return result; + }, + enumerable: false + }, + rgbToAnsi: { + value: (red, green, blue) => styles.ansi256ToAnsi(styles.rgbToAnsi256(red, green, blue)), + enumerable: false + }, + hexToAnsi: { + value: (hex) => styles.ansi256ToAnsi(styles.hexToAnsi256(hex)), + enumerable: false + } + }); + return styles; +} +var ANSI_BACKGROUND_OFFSET, wrapAnsi16, wrapAnsi256, wrapAnsi16m, styles, modifierNames, foregroundColorNames, backgroundColorNames, colorNames, ansiStyles, ansi_styles_default; +var init_ansi_styles = __esm({ + "../node_modules/.pnpm/chalk@5.4.1/node_modules/chalk/source/vendor/ansi-styles/index.js"() { + ANSI_BACKGROUND_OFFSET = 10; + wrapAnsi16 = (offset = 0) => (code) => `\x1B[${code + offset}m`; + wrapAnsi256 = (offset = 0) => (code) => `\x1B[${38 + offset};5;${code}m`; + wrapAnsi16m = (offset = 0) => (red, green, blue) => `\x1B[${38 + offset};2;${red};${green};${blue}m`; + styles = { + modifier: { + reset: [0, 0], + // 21 isn't widely supported and 22 does the same thing + bold: [1, 22], + dim: [2, 22], + italic: [3, 23], + underline: [4, 24], + overline: [53, 55], + inverse: [7, 27], + hidden: [8, 28], + strikethrough: [9, 29] + }, + color: { + black: [30, 39], + red: [31, 39], + green: [32, 39], + yellow: [33, 39], + blue: [34, 39], + magenta: [35, 39], + cyan: [36, 39], + white: [37, 39], + // Bright color + blackBright: [90, 39], + gray: [90, 39], + // Alias of `blackBright` + grey: [90, 39], + // Alias of `blackBright` + redBright: [91, 39], + greenBright: [92, 39], + yellowBright: [93, 39], + blueBright: [94, 39], + magentaBright: [95, 39], + cyanBright: [96, 39], + whiteBright: [97, 39] + }, + bgColor: { + bgBlack: [40, 49], + bgRed: [41, 49], + bgGreen: [42, 49], + bgYellow: [43, 49], + bgBlue: [44, 49], + bgMagenta: [45, 49], + bgCyan: [46, 49], + bgWhite: [47, 49], + // Bright color + bgBlackBright: [100, 49], + bgGray: [100, 49], + // Alias of `bgBlackBright` + bgGrey: [100, 49], + // Alias of `bgBlackBright` + bgRedBright: [101, 49], + bgGreenBright: [102, 49], + bgYellowBright: [103, 49], + bgBlueBright: [104, 49], + bgMagentaBright: [105, 49], + bgCyanBright: [106, 49], + bgWhiteBright: [107, 49] + } + }; + modifierNames = Object.keys(styles.modifier); + foregroundColorNames = Object.keys(styles.color); + backgroundColorNames = Object.keys(styles.bgColor); + colorNames = [...foregroundColorNames, ...backgroundColorNames]; + ansiStyles = assembleStyles(); + ansi_styles_default = ansiStyles; + } +}); + +// ../node_modules/.pnpm/chalk@5.4.1/node_modules/chalk/source/vendor/supports-color/index.js +function hasFlag(flag, argv = globalThis.Deno ? globalThis.Deno.args : import_node_process.default.argv) { + const prefix2 = flag.startsWith("-") ? "" : flag.length === 1 ? "-" : "--"; + const position = argv.indexOf(prefix2 + flag); + const terminatorPosition = argv.indexOf("--"); + return position !== -1 && (terminatorPosition === -1 || position < terminatorPosition); +} +function envForceColor() { + if ("FORCE_COLOR" in env) { + if (env.FORCE_COLOR === "true") { + return 1; + } + if (env.FORCE_COLOR === "false") { + return 0; + } + return env.FORCE_COLOR.length === 0 ? 1 : Math.min(Number.parseInt(env.FORCE_COLOR, 10), 3); + } +} +function translateLevel(level) { + if (level === 0) { + return false; + } + return { + level, + hasBasic: true, + has256: level >= 2, + has16m: level >= 3 + }; +} +function _supportsColor(haveStream, { streamIsTTY, sniffFlags = true } = {}) { + const noFlagForceColor = envForceColor(); + if (noFlagForceColor !== void 0) { + flagForceColor = noFlagForceColor; + } + const forceColor = sniffFlags ? flagForceColor : noFlagForceColor; + if (forceColor === 0) { + return 0; + } + if (sniffFlags) { + if (hasFlag("color=16m") || hasFlag("color=full") || hasFlag("color=truecolor")) { + return 3; + } + if (hasFlag("color=256")) { + return 2; + } + } + if ("TF_BUILD" in env && "AGENT_NAME" in env) { + return 1; + } + if (haveStream && !streamIsTTY && forceColor === void 0) { + return 0; + } + const min = forceColor || 0; + if (env.TERM === "dumb") { + return min; + } + if (import_node_process.default.platform === "win32") { + const osRelease = import_node_os.default.release().split("."); + if (Number(osRelease[0]) >= 10 && Number(osRelease[2]) >= 10586) { + return Number(osRelease[2]) >= 14931 ? 3 : 2; + } + return 1; + } + if ("CI" in env) { + if (["GITHUB_ACTIONS", "GITEA_ACTIONS", "CIRCLECI"].some((key) => key in env)) { + return 3; + } + if (["TRAVIS", "APPVEYOR", "GITLAB_CI", "BUILDKITE", "DRONE"].some((sign) => sign in env) || env.CI_NAME === "codeship") { + return 1; + } + return min; + } + if ("TEAMCITY_VERSION" in env) { + return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0; + } + if (env.COLORTERM === "truecolor") { + return 3; + } + if (env.TERM === "xterm-kitty") { + return 3; + } + if ("TERM_PROGRAM" in env) { + const version3 = Number.parseInt((env.TERM_PROGRAM_VERSION || "").split(".")[0], 10); + switch (env.TERM_PROGRAM) { + case "iTerm.app": { + return version3 >= 3 ? 3 : 2; + } + case "Apple_Terminal": { + return 2; + } + } + } + if (/-256(color)?$/i.test(env.TERM)) { + return 2; + } + if (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) { + return 1; + } + if ("COLORTERM" in env) { + return 1; + } + return min; +} +function createSupportsColor(stream, options = {}) { + const level = _supportsColor(stream, { + streamIsTTY: stream && stream.isTTY, + ...options + }); + return translateLevel(level); +} +var import_node_process, import_node_os, import_node_tty, env, flagForceColor, supportsColor, supports_color_default; +var init_supports_color = __esm({ + "../node_modules/.pnpm/chalk@5.4.1/node_modules/chalk/source/vendor/supports-color/index.js"() { + import_node_process = __toESM(require("node:process"), 1); + import_node_os = __toESM(require("node:os"), 1); + import_node_tty = __toESM(require("node:tty"), 1); + ({ env } = import_node_process.default); + if (hasFlag("no-color") || hasFlag("no-colors") || hasFlag("color=false") || hasFlag("color=never")) { + flagForceColor = 0; + } else if (hasFlag("color") || hasFlag("colors") || hasFlag("color=true") || hasFlag("color=always")) { + flagForceColor = 1; + } + supportsColor = { + stdout: createSupportsColor({ isTTY: import_node_tty.default.isatty(1) }), + stderr: createSupportsColor({ isTTY: import_node_tty.default.isatty(2) }) + }; + supports_color_default = supportsColor; + } +}); + +// ../node_modules/.pnpm/chalk@5.4.1/node_modules/chalk/source/utilities.js +function stringReplaceAll(string2, substring, replacer) { + let index6 = string2.indexOf(substring); + if (index6 === -1) { + return string2; + } + const substringLength = substring.length; + let endIndex = 0; + let returnValue = ""; + do { + returnValue += string2.slice(endIndex, index6) + substring + replacer; + endIndex = index6 + substringLength; + index6 = string2.indexOf(substring, endIndex); + } while (index6 !== -1); + returnValue += string2.slice(endIndex); + return returnValue; +} +function stringEncaseCRLFWithFirstIndex(string2, prefix2, postfix, index6) { + let endIndex = 0; + let returnValue = ""; + do { + const gotCR = string2[index6 - 1] === "\r"; + returnValue += string2.slice(endIndex, gotCR ? index6 - 1 : index6) + prefix2 + (gotCR ? "\r\n" : "\n") + postfix; + endIndex = index6 + 1; + index6 = string2.indexOf("\n", endIndex); + } while (index6 !== -1); + returnValue += string2.slice(endIndex); + return returnValue; +} +var init_utilities = __esm({ + "../node_modules/.pnpm/chalk@5.4.1/node_modules/chalk/source/utilities.js"() { + } +}); + +// ../node_modules/.pnpm/chalk@5.4.1/node_modules/chalk/source/index.js +function createChalk(options) { + return chalkFactory(options); +} +var stdoutColor, stderrColor, GENERATOR, STYLER, IS_EMPTY, levelMapping, styles2, applyOptions, chalkFactory, getModelAnsi, usedModels, proto, createStyler, createBuilder, applyStyle, chalk, chalkStderr, source_default; +var init_source = __esm({ + "../node_modules/.pnpm/chalk@5.4.1/node_modules/chalk/source/index.js"() { + init_ansi_styles(); + init_supports_color(); + init_utilities(); + ({ stdout: stdoutColor, stderr: stderrColor } = supports_color_default); + GENERATOR = Symbol("GENERATOR"); + STYLER = Symbol("STYLER"); + IS_EMPTY = Symbol("IS_EMPTY"); + levelMapping = [ + "ansi", + "ansi", + "ansi256", + "ansi16m" + ]; + styles2 = /* @__PURE__ */ Object.create(null); + applyOptions = (object, options = {}) => { + if (options.level && !(Number.isInteger(options.level) && options.level >= 0 && options.level <= 3)) { + throw new Error("The `level` option should be an integer from 0 to 3"); + } + const colorLevel = stdoutColor ? stdoutColor.level : 0; + object.level = options.level === void 0 ? colorLevel : options.level; + }; + chalkFactory = (options) => { + const chalk2 = (...strings) => strings.join(" "); + applyOptions(chalk2, options); + Object.setPrototypeOf(chalk2, createChalk.prototype); + return chalk2; + }; + Object.setPrototypeOf(createChalk.prototype, Function.prototype); + for (const [styleName, style] of Object.entries(ansi_styles_default)) { + styles2[styleName] = { + get() { + const builder = createBuilder(this, createStyler(style.open, style.close, this[STYLER]), this[IS_EMPTY]); + Object.defineProperty(this, styleName, { value: builder }); + return builder; + } + }; + } + styles2.visible = { + get() { + const builder = createBuilder(this, this[STYLER], true); + Object.defineProperty(this, "visible", { value: builder }); + return builder; + } + }; + getModelAnsi = (model, level, type, ...arguments_) => { + if (model === "rgb") { + if (level === "ansi16m") { + return ansi_styles_default[type].ansi16m(...arguments_); + } + if (level === "ansi256") { + return ansi_styles_default[type].ansi256(ansi_styles_default.rgbToAnsi256(...arguments_)); + } + return ansi_styles_default[type].ansi(ansi_styles_default.rgbToAnsi(...arguments_)); + } + if (model === "hex") { + return getModelAnsi("rgb", level, type, ...ansi_styles_default.hexToRgb(...arguments_)); + } + return ansi_styles_default[type][model](...arguments_); + }; + usedModels = ["rgb", "hex", "ansi256"]; + for (const model of usedModels) { + styles2[model] = { + get() { + const { level } = this; + return function(...arguments_) { + const styler = createStyler(getModelAnsi(model, levelMapping[level], "color", ...arguments_), ansi_styles_default.color.close, this[STYLER]); + return createBuilder(this, styler, this[IS_EMPTY]); + }; + } + }; + const bgModel = "bg" + model[0].toUpperCase() + model.slice(1); + styles2[bgModel] = { + get() { + const { level } = this; + return function(...arguments_) { + const styler = createStyler(getModelAnsi(model, levelMapping[level], "bgColor", ...arguments_), ansi_styles_default.bgColor.close, this[STYLER]); + return createBuilder(this, styler, this[IS_EMPTY]); + }; + } + }; + } + proto = Object.defineProperties(() => { + }, { + ...styles2, + level: { + enumerable: true, + get() { + return this[GENERATOR].level; + }, + set(level) { + this[GENERATOR].level = level; + } + } + }); + createStyler = (open, close, parent) => { + let openAll; + let closeAll; + if (parent === void 0) { + openAll = open; + closeAll = close; + } else { + openAll = parent.openAll + open; + closeAll = close + parent.closeAll; + } + return { + open, + close, + openAll, + closeAll, + parent + }; + }; + createBuilder = (self2, _styler, _isEmpty) => { + const builder = (...arguments_) => applyStyle(builder, arguments_.length === 1 ? "" + arguments_[0] : arguments_.join(" ")); + Object.setPrototypeOf(builder, proto); + builder[GENERATOR] = self2; + builder[STYLER] = _styler; + builder[IS_EMPTY] = _isEmpty; + return builder; + }; + applyStyle = (self2, string2) => { + if (self2.level <= 0 || !string2) { + return self2[IS_EMPTY] ? "" : string2; + } + let styler = self2[STYLER]; + if (styler === void 0) { + return string2; + } + const { openAll, closeAll } = styler; + if (string2.includes("\x1B")) { + while (styler !== void 0) { + string2 = stringReplaceAll(string2, styler.close, styler.open); + styler = styler.parent; + } + } + const lfIndex = string2.indexOf("\n"); + if (lfIndex !== -1) { + string2 = stringEncaseCRLFWithFirstIndex(string2, closeAll, openAll, lfIndex); + } + return openAll + string2 + closeAll; + }; + Object.defineProperties(createChalk.prototype, styles2); + chalk = createChalk(); + chalkStderr = createChalk({ level: stderrColor ? stderrColor.level : 0 }); + source_default = chalk; + } +}); + +// ../node_modules/.pnpm/dotenv@16.5.0/node_modules/dotenv/package.json +var require_package = __commonJS({ + "../node_modules/.pnpm/dotenv@16.5.0/node_modules/dotenv/package.json"(exports2, module2) { + module2.exports = { + name: "dotenv", + version: "16.5.0", + description: "Loads environment variables from .env file", + main: "lib/main.js", + types: "lib/main.d.ts", + exports: { + ".": { + types: "./lib/main.d.ts", + require: "./lib/main.js", + default: "./lib/main.js" + }, + "./config": "./config.js", + "./config.js": "./config.js", + "./lib/env-options": "./lib/env-options.js", + "./lib/env-options.js": "./lib/env-options.js", + "./lib/cli-options": "./lib/cli-options.js", + "./lib/cli-options.js": "./lib/cli-options.js", + "./package.json": "./package.json" + }, + scripts: { + "dts-check": "tsc --project tests/types/tsconfig.json", + lint: "standard", + pretest: "npm run lint && npm run dts-check", + test: "tap run --allow-empty-coverage --disable-coverage --timeout=60000", + "test:coverage": "tap run --show-full-coverage --timeout=60000 --coverage-report=lcov", + prerelease: "npm test", + release: "standard-version" + }, + repository: { + type: "git", + url: "git://github.com/motdotla/dotenv.git" + }, + homepage: "https://github.com/motdotla/dotenv#readme", + funding: "https://dotenvx.com", + keywords: [ + "dotenv", + "env", + ".env", + "environment", + "variables", + "config", + "settings" + ], + readmeFilename: "README.md", + license: "BSD-2-Clause", + devDependencies: { + "@types/node": "^18.11.3", + decache: "^4.6.2", + sinon: "^14.0.1", + standard: "^17.0.0", + "standard-version": "^9.5.0", + tap: "^19.2.0", + typescript: "^4.8.4" + }, + engines: { + node: ">=12" + }, + browser: { + fs: false + } + }; + } +}); + +// ../node_modules/.pnpm/dotenv@16.5.0/node_modules/dotenv/lib/main.js +var require_main = __commonJS({ + "../node_modules/.pnpm/dotenv@16.5.0/node_modules/dotenv/lib/main.js"(exports2, module2) { + var fs7 = require("fs"); + var path4 = require("path"); + var os3 = require("os"); + var crypto7 = require("crypto"); + var packageJson = require_package(); + var version3 = packageJson.version; + var LINE = /(?:^|^)\s*(?:export\s+)?([\w.-]+)(?:\s*=\s*?|:\s+?)(\s*'(?:\\'|[^'])*'|\s*"(?:\\"|[^"])*"|\s*`(?:\\`|[^`])*`|[^#\r\n]+)?\s*(?:#.*)?(?:$|$)/mg; + function parse4(src) { + const obj = {}; + let lines = src.toString(); + lines = lines.replace(/\r\n?/mg, "\n"); + let match2; + while ((match2 = LINE.exec(lines)) != null) { + const key = match2[1]; + let value = match2[2] || ""; + value = value.trim(); + const maybeQuote = value[0]; + value = value.replace(/^(['"`])([\s\S]*)\1$/mg, "$2"); + if (maybeQuote === '"') { + value = value.replace(/\\n/g, "\n"); + value = value.replace(/\\r/g, "\r"); + } + obj[key] = value; + } + return obj; + } + function _parseVault(options) { + const vaultPath = _vaultPath(options); + const result = DotenvModule.configDotenv({ path: vaultPath }); + if (!result.parsed) { + const err2 = new Error(`MISSING_DATA: Cannot parse ${vaultPath} for an unknown reason`); + err2.code = "MISSING_DATA"; + throw err2; + } + const keys = _dotenvKey(options).split(","); + const length = keys.length; + let decrypted; + for (let i4 = 0; i4 < length; i4++) { + try { + const key = keys[i4].trim(); + const attrs = _instructions(result, key); + decrypted = DotenvModule.decrypt(attrs.ciphertext, attrs.key); + break; + } catch (error2) { + if (i4 + 1 >= length) { + throw error2; + } + } + } + return DotenvModule.parse(decrypted); + } + function _warn(message) { + console.log(`[dotenv@${version3}][WARN] ${message}`); + } + function _debug(message) { + console.log(`[dotenv@${version3}][DEBUG] ${message}`); + } + function _dotenvKey(options) { + if (options && options.DOTENV_KEY && options.DOTENV_KEY.length > 0) { + return options.DOTENV_KEY; + } + if (process.env.DOTENV_KEY && process.env.DOTENV_KEY.length > 0) { + return process.env.DOTENV_KEY; + } + return ""; + } + function _instructions(result, dotenvKey) { + let uri; + try { + uri = new URL(dotenvKey); + } catch (error2) { + if (error2.code === "ERR_INVALID_URL") { + const err2 = new Error("INVALID_DOTENV_KEY: Wrong format. Must be in valid uri format like dotenv://:key_1234@dotenvx.com/vault/.env.vault?environment=development"); + err2.code = "INVALID_DOTENV_KEY"; + throw err2; + } + throw error2; + } + const key = uri.password; + if (!key) { + const err2 = new Error("INVALID_DOTENV_KEY: Missing key part"); + err2.code = "INVALID_DOTENV_KEY"; + throw err2; + } + const environment = uri.searchParams.get("environment"); + if (!environment) { + const err2 = new Error("INVALID_DOTENV_KEY: Missing environment part"); + err2.code = "INVALID_DOTENV_KEY"; + throw err2; + } + const environmentKey = `DOTENV_VAULT_${environment.toUpperCase()}`; + const ciphertext = result.parsed[environmentKey]; + if (!ciphertext) { + const err2 = new Error(`NOT_FOUND_DOTENV_ENVIRONMENT: Cannot locate environment ${environmentKey} in your .env.vault file.`); + err2.code = "NOT_FOUND_DOTENV_ENVIRONMENT"; + throw err2; + } + return { ciphertext, key }; + } + function _vaultPath(options) { + let possibleVaultPath = null; + if (options && options.path && options.path.length > 0) { + if (Array.isArray(options.path)) { + for (const filepath of options.path) { + if (fs7.existsSync(filepath)) { + possibleVaultPath = filepath.endsWith(".vault") ? filepath : `${filepath}.vault`; + } + } + } else { + possibleVaultPath = options.path.endsWith(".vault") ? options.path : `${options.path}.vault`; + } + } else { + possibleVaultPath = path4.resolve(process.cwd(), ".env.vault"); + } + if (fs7.existsSync(possibleVaultPath)) { + return possibleVaultPath; + } + return null; + } + function _resolveHome(envPath) { + return envPath[0] === "~" ? path4.join(os3.homedir(), envPath.slice(1)) : envPath; + } + function _configVault(options) { + const debug = Boolean(options && options.debug); + if (debug) { + _debug("Loading env from encrypted .env.vault"); + } + const parsed = DotenvModule._parseVault(options); + let processEnv = process.env; + if (options && options.processEnv != null) { + processEnv = options.processEnv; + } + DotenvModule.populate(processEnv, parsed, options); + return { parsed }; + } + function configDotenv(options) { + const dotenvPath = path4.resolve(process.cwd(), ".env"); + let encoding = "utf8"; + const debug = Boolean(options && options.debug); + if (options && options.encoding) { + encoding = options.encoding; + } else { + if (debug) { + _debug("No encoding is specified. UTF-8 is used by default"); + } + } + let optionPaths = [dotenvPath]; + if (options && options.path) { + if (!Array.isArray(options.path)) { + optionPaths = [_resolveHome(options.path)]; + } else { + optionPaths = []; + for (const filepath of options.path) { + optionPaths.push(_resolveHome(filepath)); + } + } + } + let lastError; + const parsedAll = {}; + for (const path5 of optionPaths) { + try { + const parsed = DotenvModule.parse(fs7.readFileSync(path5, { encoding })); + DotenvModule.populate(parsedAll, parsed, options); + } catch (e4) { + if (debug) { + _debug(`Failed to load ${path5} ${e4.message}`); + } + lastError = e4; + } + } + let processEnv = process.env; + if (options && options.processEnv != null) { + processEnv = options.processEnv; + } + DotenvModule.populate(processEnv, parsedAll, options); + if (lastError) { + return { parsed: parsedAll, error: lastError }; + } else { + return { parsed: parsedAll }; + } + } + function config(options) { + if (_dotenvKey(options).length === 0) { + return DotenvModule.configDotenv(options); + } + const vaultPath = _vaultPath(options); + if (!vaultPath) { + _warn(`You set DOTENV_KEY but you are missing a .env.vault file at ${vaultPath}. Did you forget to build it?`); + return DotenvModule.configDotenv(options); + } + return DotenvModule._configVault(options); + } + function decrypt(encrypted, keyStr) { + const key = Buffer.from(keyStr.slice(-64), "hex"); + let ciphertext = Buffer.from(encrypted, "base64"); + const nonce = ciphertext.subarray(0, 12); + const authTag = ciphertext.subarray(-16); + ciphertext = ciphertext.subarray(12, -16); + try { + const aesgcm = crypto7.createDecipheriv("aes-256-gcm", key, nonce); + aesgcm.setAuthTag(authTag); + return `${aesgcm.update(ciphertext)}${aesgcm.final()}`; + } catch (error2) { + const isRange = error2 instanceof RangeError; + const invalidKeyLength = error2.message === "Invalid key length"; + const decryptionFailed = error2.message === "Unsupported state or unable to authenticate data"; + if (isRange || invalidKeyLength) { + const err2 = new Error("INVALID_DOTENV_KEY: It must be 64 characters long (or more)"); + err2.code = "INVALID_DOTENV_KEY"; + throw err2; + } else if (decryptionFailed) { + const err2 = new Error("DECRYPTION_FAILED: Please check your DOTENV_KEY"); + err2.code = "DECRYPTION_FAILED"; + throw err2; + } else { + throw error2; + } + } + } + function populate(processEnv, parsed, options = {}) { + const debug = Boolean(options && options.debug); + const override = Boolean(options && options.override); + if (typeof parsed !== "object") { + const err2 = new Error("OBJECT_REQUIRED: Please check the processEnv argument being passed to populate"); + err2.code = "OBJECT_REQUIRED"; + throw err2; + } + for (const key of Object.keys(parsed)) { + if (Object.prototype.hasOwnProperty.call(processEnv, key)) { + if (override === true) { + processEnv[key] = parsed[key]; + } + if (debug) { + if (override === true) { + _debug(`"${key}" is already defined and WAS overwritten`); + } else { + _debug(`"${key}" is already defined and was NOT overwritten`); + } + } + } else { + processEnv[key] = parsed[key]; + } + } + } + var DotenvModule = { + configDotenv, + _configVault, + _parseVault, + config, + decrypt, + parse: parse4, + populate + }; + module2.exports.configDotenv = DotenvModule.configDotenv; + module2.exports._configVault = DotenvModule._configVault; + module2.exports._parseVault = DotenvModule._parseVault; + module2.exports.config = DotenvModule.config; + module2.exports.decrypt = DotenvModule.decrypt; + module2.exports.parse = DotenvModule.parse; + module2.exports.populate = DotenvModule.populate; + module2.exports = DotenvModule; + } +}); + +// ../node_modules/.pnpm/dotenv@16.5.0/node_modules/dotenv/lib/env-options.js +var require_env_options = __commonJS({ + "../node_modules/.pnpm/dotenv@16.5.0/node_modules/dotenv/lib/env-options.js"(exports2, module2) { + var options = {}; + if (process.env.DOTENV_CONFIG_ENCODING != null) { + options.encoding = process.env.DOTENV_CONFIG_ENCODING; + } + if (process.env.DOTENV_CONFIG_PATH != null) { + options.path = process.env.DOTENV_CONFIG_PATH; + } + if (process.env.DOTENV_CONFIG_DEBUG != null) { + options.debug = process.env.DOTENV_CONFIG_DEBUG; + } + if (process.env.DOTENV_CONFIG_OVERRIDE != null) { + options.override = process.env.DOTENV_CONFIG_OVERRIDE; + } + if (process.env.DOTENV_CONFIG_DOTENV_KEY != null) { + options.DOTENV_KEY = process.env.DOTENV_CONFIG_DOTENV_KEY; + } + module2.exports = options; + } +}); + +// ../node_modules/.pnpm/dotenv@16.5.0/node_modules/dotenv/lib/cli-options.js +var require_cli_options = __commonJS({ + "../node_modules/.pnpm/dotenv@16.5.0/node_modules/dotenv/lib/cli-options.js"(exports2, module2) { + var re = /^dotenv_config_(encoding|path|debug|override|DOTENV_KEY)=(.+)$/; + module2.exports = function optionMatcher(args) { + return args.reduce(function(acc, cur) { + const matches = cur.match(re); + if (matches) { + acc[matches[1]] = matches[2]; + } + return acc; + }, {}); + }; + } +}); + +// ../node_modules/.pnpm/hanji@0.0.8/node_modules/hanji/readline.js +var require_readline = __commonJS({ + "../node_modules/.pnpm/hanji@0.0.8/node_modules/hanji/readline.js"(exports2) { + "use strict"; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.createClosable = exports2.stdout = exports2.stdin = void 0; + var readline_1 = __importDefault2(require("readline")); + exports2.stdin = process.stdin; + exports2.stdout = process.stdout; + readline_1.default.emitKeypressEvents(exports2.stdin); + var createClosable = () => { + return readline_1.default.createInterface({ + input: exports2.stdin, + escapeCodeTimeout: 50 + }); + }; + exports2.createClosable = createClosable; + } +}); + +// ../node_modules/.pnpm/sisteransi@1.0.5/node_modules/sisteransi/src/index.js +var require_src = __commonJS({ + "../node_modules/.pnpm/sisteransi@1.0.5/node_modules/sisteransi/src/index.js"(exports2, module2) { + "use strict"; + var ESC = "\x1B"; + var CSI = `${ESC}[`; + var beep = "\x07"; + var cursor = { + to(x4, y2) { + if (!y2) return `${CSI}${x4 + 1}G`; + return `${CSI}${y2 + 1};${x4 + 1}H`; + }, + move(x4, y2) { + let ret = ""; + if (x4 < 0) ret += `${CSI}${-x4}D`; + else if (x4 > 0) ret += `${CSI}${x4}C`; + if (y2 < 0) ret += `${CSI}${-y2}A`; + else if (y2 > 0) ret += `${CSI}${y2}B`; + return ret; + }, + up: (count = 1) => `${CSI}${count}A`, + down: (count = 1) => `${CSI}${count}B`, + forward: (count = 1) => `${CSI}${count}C`, + backward: (count = 1) => `${CSI}${count}D`, + nextLine: (count = 1) => `${CSI}E`.repeat(count), + prevLine: (count = 1) => `${CSI}F`.repeat(count), + left: `${CSI}G`, + hide: `${CSI}?25l`, + show: `${CSI}?25h`, + save: `${ESC}7`, + restore: `${ESC}8` + }; + var scroll = { + up: (count = 1) => `${CSI}S`.repeat(count), + down: (count = 1) => `${CSI}T`.repeat(count) + }; + var erase = { + screen: `${CSI}2J`, + up: (count = 1) => `${CSI}1J`.repeat(count), + down: (count = 1) => `${CSI}J`.repeat(count), + line: `${CSI}2K`, + lineEnd: `${CSI}K`, + lineStart: `${CSI}1K`, + lines(count) { + let clear = ""; + for (let i4 = 0; i4 < count; i4++) + clear += this.line + (i4 < count - 1 ? cursor.up() : ""); + if (count) + clear += cursor.left; + return clear; + } + }; + module2.exports = { cursor, scroll, erase, beep }; + } +}); + +// ../node_modules/.pnpm/hanji@0.0.8/node_modules/hanji/utils.js +var require_utils = __commonJS({ + "../node_modules/.pnpm/hanji@0.0.8/node_modules/hanji/utils.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.clear = exports2.stringWidth = exports2.fallbackStringWidth = exports2.stripAnsi = exports2.strip = void 0; + var sisteransi_1 = require_src(); + var strip = (str) => { + const pattern = [ + "[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)", + "(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PRZcf-ntqry=><~]))" + ].join("|"); + const RGX = new RegExp(pattern, "g"); + return typeof str === "string" ? str.replace(RGX, "") : str; + }; + exports2.strip = strip; + var stripAnsi = (str) => { + if (typeof Bun !== "undefined" && Bun.stripANSI) { + return Bun.stripANSI(str); + } + return (0, exports2.strip)(str); + }; + exports2.stripAnsi = stripAnsi; + var fallbackStringWidth = (str) => { + let len = 0; + const stripped = (0, exports2.stripAnsi)(str); + for (const _3 of stripped) + len++; + return len; + }; + exports2.fallbackStringWidth = fallbackStringWidth; + var stringWidth = (str) => { + if (typeof Bun !== "undefined" && Bun.stringWidth) + return Bun.stringWidth(str); + return (0, exports2.fallbackStringWidth)(str); + }; + exports2.stringWidth = stringWidth; + var clear = function(prompt, perLine) { + if (!perLine) + return sisteransi_1.erase.line + sisteransi_1.cursor.to(0); + let rows = 0; + const lines = prompt.split(/\r?\n/); + for (let line of lines) { + rows += 1 + Math.floor(Math.max((0, exports2.stringWidth)(line) - 1, 0) / perLine); + } + return sisteransi_1.erase.lines(rows); + }; + exports2.clear = clear; + } +}); + +// ../node_modules/.pnpm/lodash.throttle@4.1.1/node_modules/lodash.throttle/index.js +var require_lodash = __commonJS({ + "../node_modules/.pnpm/lodash.throttle@4.1.1/node_modules/lodash.throttle/index.js"(exports2, module2) { + var FUNC_ERROR_TEXT = "Expected a function"; + var NAN = 0 / 0; + var symbolTag = "[object Symbol]"; + var reTrim = /^\s+|\s+$/g; + var reIsBadHex = /^[-+]0x[0-9a-f]+$/i; + var reIsBinary = /^0b[01]+$/i; + var reIsOctal = /^0o[0-7]+$/i; + var freeParseInt = parseInt; + var freeGlobal = typeof global == "object" && global && global.Object === Object && global; + var freeSelf = typeof self == "object" && self && self.Object === Object && self; + var root = freeGlobal || freeSelf || Function("return this")(); + var objectProto = Object.prototype; + var objectToString = objectProto.toString; + var nativeMax = Math.max; + var nativeMin = Math.min; + var now = function() { + return root.Date.now(); + }; + function debounce(func, wait, options) { + var lastArgs, lastThis, maxWait, result, timerId, lastCallTime, lastInvokeTime = 0, leading = false, maxing = false, trailing = true; + if (typeof func != "function") { + throw new TypeError(FUNC_ERROR_TEXT); + } + wait = toNumber(wait) || 0; + if (isObject(options)) { + leading = !!options.leading; + maxing = "maxWait" in options; + maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait; + trailing = "trailing" in options ? !!options.trailing : trailing; + } + function invokeFunc(time) { + var args = lastArgs, thisArg = lastThis; + lastArgs = lastThis = void 0; + lastInvokeTime = time; + result = func.apply(thisArg, args); + return result; + } + function leadingEdge(time) { + lastInvokeTime = time; + timerId = setTimeout(timerExpired, wait); + return leading ? invokeFunc(time) : result; + } + function remainingWait(time) { + var timeSinceLastCall = time - lastCallTime, timeSinceLastInvoke = time - lastInvokeTime, result2 = wait - timeSinceLastCall; + return maxing ? nativeMin(result2, maxWait - timeSinceLastInvoke) : result2; + } + function shouldInvoke(time) { + var timeSinceLastCall = time - lastCallTime, timeSinceLastInvoke = time - lastInvokeTime; + return lastCallTime === void 0 || timeSinceLastCall >= wait || timeSinceLastCall < 0 || maxing && timeSinceLastInvoke >= maxWait; + } + function timerExpired() { + var time = now(); + if (shouldInvoke(time)) { + return trailingEdge(time); + } + timerId = setTimeout(timerExpired, remainingWait(time)); + } + function trailingEdge(time) { + timerId = void 0; + if (trailing && lastArgs) { + return invokeFunc(time); + } + lastArgs = lastThis = void 0; + return result; + } + function cancel() { + if (timerId !== void 0) { + clearTimeout(timerId); + } + lastInvokeTime = 0; + lastArgs = lastCallTime = lastThis = timerId = void 0; + } + function flush() { + return timerId === void 0 ? result : trailingEdge(now()); + } + function debounced() { + var time = now(), isInvoking = shouldInvoke(time); + lastArgs = arguments; + lastThis = this; + lastCallTime = time; + if (isInvoking) { + if (timerId === void 0) { + return leadingEdge(lastCallTime); + } + if (maxing) { + timerId = setTimeout(timerExpired, wait); + return invokeFunc(lastCallTime); + } + } + if (timerId === void 0) { + timerId = setTimeout(timerExpired, wait); + } + return result; + } + debounced.cancel = cancel; + debounced.flush = flush; + return debounced; + } + function throttle(func, wait, options) { + var leading = true, trailing = true; + if (typeof func != "function") { + throw new TypeError(FUNC_ERROR_TEXT); + } + if (isObject(options)) { + leading = "leading" in options ? !!options.leading : leading; + trailing = "trailing" in options ? !!options.trailing : trailing; + } + return debounce(func, wait, { + "leading": leading, + "maxWait": wait, + "trailing": trailing + }); + } + function isObject(value) { + var type = typeof value; + return !!value && (type == "object" || type == "function"); + } + function isObjectLike(value) { + return !!value && typeof value == "object"; + } + function isSymbol(value) { + return typeof value == "symbol" || isObjectLike(value) && objectToString.call(value) == symbolTag; + } + function toNumber(value) { + if (typeof value == "number") { + return value; + } + if (isSymbol(value)) { + return NAN; + } + if (isObject(value)) { + var other = typeof value.valueOf == "function" ? value.valueOf() : value; + value = isObject(other) ? other + "" : other; + } + if (typeof value != "string") { + return value === 0 ? value : +value; + } + value = value.replace(reTrim, ""); + var isBinary = reIsBinary.test(value); + return isBinary || reIsOctal.test(value) ? freeParseInt(value.slice(2), isBinary ? 2 : 8) : reIsBadHex.test(value) ? NAN : +value; + } + module2.exports = throttle; + } +}); + +// ../node_modules/.pnpm/hanji@0.0.8/node_modules/hanji/index.js +var require_hanji = __commonJS({ + "../node_modules/.pnpm/hanji@0.0.8/node_modules/hanji/index.js"(exports2) { + "use strict"; + var __awaiter2 = exports2 && exports2.__awaiter || function(thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function(resolve2) { + resolve2(value); + }); + } + return new (P || (P = Promise))(function(resolve2, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e4) { + reject(e4); + } + } + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e4) { + reject(e4); + } + } + function step(result) { + result.done ? resolve2(result.value) : adopt(result.value).then(fulfilled, rejected); + } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); + }; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.TaskTerminal = exports2.TaskView = exports2.Terminal = exports2.deferred = exports2.SelectState = exports2.Prompt = void 0; + exports2.render = render10; + exports2.renderWithTask = renderWithTask7; + exports2.onTerminate = onTerminate; + var readline_1 = require_readline(); + var sisteransi_1 = require_src(); + var utils_1 = require_utils(); + var lodash_throttle_1 = __importDefault2(require_lodash()); + var Prompt3 = class { + constructor() { + this.attachCallbacks = []; + this.detachCallbacks = []; + this.inputCallbacks = []; + } + requestLayout() { + this.terminal.requestLayout(); + } + on(type, callback) { + if (type === "attach") { + this.attachCallbacks.push(callback); + } else if (type === "detach") { + this.detachCallbacks.push(callback); + } else if (type === "input") { + this.inputCallbacks.push(callback); + } + } + attach(terminal) { + this.terminal = terminal; + this.attachCallbacks.forEach((it) => it(terminal)); + } + detach(terminal) { + this.detachCallbacks.forEach((it) => it(terminal)); + this.terminal = void 0; + } + input(str, key) { + this.inputCallbacks.forEach((it) => it(str, key)); + } + }; + exports2.Prompt = Prompt3; + var SelectState3 = class { + constructor(items) { + this.items = items; + this.selectedIdx = 0; + } + bind(prompt) { + prompt.on("input", (str, key) => { + const invalidate = this.consume(str, key); + if (invalidate) + prompt.requestLayout(); + }); + } + consume(str, key) { + if (!key) + return false; + if (key.name === "down") { + this.selectedIdx = (this.selectedIdx + 1) % this.items.length; + return true; + } + if (key.name === "up") { + this.selectedIdx -= 1; + this.selectedIdx = this.selectedIdx < 0 ? this.items.length - 1 : this.selectedIdx; + return true; + } + return false; + } + }; + exports2.SelectState = SelectState3; + var deferred = () => { + let resolve2; + let reject; + const promise = new Promise((res, rej) => { + resolve2 = res; + reject = rej; + }); + return { + resolve: resolve2, + reject, + promise + }; + }; + exports2.deferred = deferred; + var Terminal = class { + constructor(view5, stdin, stdout, closable) { + this.view = view5; + this.stdin = stdin; + this.stdout = stdout; + this.closable = closable; + this.text = ""; + this.status = "idle"; + if (this.stdin.isTTY) + this.stdin.setRawMode(true); + const keypress = (str, key) => { + if (key.name === "c" && key.ctrl === true) { + this.requestLayout(); + this.view.detach(this); + this.tearDown(keypress); + if (terminateHandler) { + terminateHandler(this.stdin, this.stdout); + return; + } + this.stdout.write(` +^C +`); + process.exit(1); + } + if (key.name === "escape") { + this.status = "aborted"; + this.requestLayout(); + this.view.detach(this); + this.tearDown(keypress); + this.resolve({ status: "aborted", data: void 0 }); + return; + } + if (key.name === "return") { + this.status = "submitted"; + this.requestLayout(); + this.view.detach(this); + this.tearDown(keypress); + this.resolve({ status: "submitted", data: this.view.result() }); + return; + } + view5.input(str, key); + }; + this.stdin.on("keypress", keypress); + this.view.attach(this); + const { resolve: resolve2, promise } = (0, exports2.deferred)(); + this.resolve = resolve2; + this.promise = promise; + this.renderFunc = (0, lodash_throttle_1.default)((str) => { + this.stdout.write(str); + }); + } + tearDown(keypress) { + this.stdout.write(sisteransi_1.cursor.show); + this.stdin.removeListener("keypress", keypress); + if (this.stdin.isTTY) + this.stdin.setRawMode(false); + this.closable.close(); + } + result() { + return this.promise; + } + toggleCursor(state2) { + if (state2 === "hide") { + this.stdout.write(sisteransi_1.cursor.hide); + } else { + this.stdout.write(sisteransi_1.cursor.show); + } + } + requestLayout() { + const string2 = this.view.render(this.status); + const clearPrefix = this.text ? (0, utils_1.clear)(this.text, this.stdout.columns) : ""; + this.text = string2; + this.renderFunc(`${clearPrefix}${string2}`); + } + }; + exports2.Terminal = Terminal; + var TaskView2 = class { + constructor() { + this.attachCallbacks = []; + this.detachCallbacks = []; + } + requestLayout() { + this.terminal.requestLayout(); + } + attach(terminal) { + this.terminal = terminal; + this.attachCallbacks.forEach((it) => it(terminal)); + } + detach(terminal) { + this.detachCallbacks.forEach((it) => it(terminal)); + this.terminal = void 0; + } + on(type, callback) { + if (type === "attach") { + this.attachCallbacks.push(callback); + } else if (type === "detach") { + this.detachCallbacks.push(callback); + } + } + }; + exports2.TaskView = TaskView2; + var TaskTerminal = class { + constructor(view5, stdout) { + this.view = view5; + this.stdout = stdout; + this.text = ""; + this.view.attach(this); + } + requestLayout() { + const string2 = this.view.render("pending"); + const clearPrefix = this.text ? (0, utils_1.clear)(this.text, this.stdout.columns) : ""; + this.text = string2; + this.stdout.write(`${clearPrefix}${string2}`); + } + clear() { + const string2 = this.view.render("done"); + this.view.detach(this); + const clearPrefix = this.text ? (0, utils_1.clear)(this.text, this.stdout.columns) : ""; + this.stdout.write(`${clearPrefix}${string2}`); + } + reject(err2) { + const string2 = this.view.render("rejected", err2); + this.view.detach(this); + const clearPrefix = this.text ? (0, utils_1.clear)(this.text, this.stdout.columns) : ""; + this.stdout.write(`${clearPrefix}${string2}`); + } + }; + exports2.TaskTerminal = TaskTerminal; + function render10(view5) { + if (typeof view5 === "string") { + process.stdout.write(`${view5} +`); + return; + } + if (!process.stdin.isTTY || !process.stdout.isTTY) { + return Promise.reject(new Error("Interactive prompts require a TTY terminal (process.stdin.isTTY or process.stdout.isTTY is false). This can happen when running in CI, piped input, or non-interactive shells.")); + } + const closable = (0, readline_1.createClosable)(); + const terminal = new Terminal(view5, readline_1.stdin, readline_1.stdout, closable); + terminal.requestLayout(); + return terminal.result(); + } + function renderWithTask7(view5, task) { + return __awaiter2(this, void 0, void 0, function* () { + const terminal = new TaskTerminal(view5, process.stdout); + terminal.requestLayout(); + try { + const result = yield task; + terminal.clear(); + return result; + } catch (err2) { + terminal.reject(err2); + process.exit(1); + } + }); + } + var terminateHandler; + function onTerminate(callback) { + terminateHandler = callback; + } + } +}); + +// ../node_modules/.pnpm/zod@3.25.42/node_modules/zod/dist/esm/v3/helpers/util.js +var util, objectUtil, ZodParsedType, getParsedType; +var init_util = __esm({ + "../node_modules/.pnpm/zod@3.25.42/node_modules/zod/dist/esm/v3/helpers/util.js"() { + (function(util2) { + util2.assertEqual = (_3) => { + }; + function assertIs(_arg) { + } + util2.assertIs = assertIs; + function assertNever(_x) { + throw new Error(); + } + util2.assertNever = assertNever; + util2.arrayToEnum = (items) => { + const obj = {}; + for (const item of items) { + obj[item] = item; + } + return obj; + }; + util2.getValidEnumValues = (obj) => { + const validKeys = util2.objectKeys(obj).filter((k3) => typeof obj[obj[k3]] !== "number"); + const filtered = {}; + for (const k3 of validKeys) { + filtered[k3] = obj[k3]; + } + return util2.objectValues(filtered); + }; + util2.objectValues = (obj) => { + return util2.objectKeys(obj).map(function(e4) { + return obj[e4]; + }); + }; + util2.objectKeys = typeof Object.keys === "function" ? (obj) => Object.keys(obj) : (object) => { + const keys = []; + for (const key in object) { + if (Object.prototype.hasOwnProperty.call(object, key)) { + keys.push(key); + } + } + return keys; + }; + util2.find = (arr, checker) => { + for (const item of arr) { + if (checker(item)) + return item; + } + return void 0; + }; + util2.isInteger = typeof Number.isInteger === "function" ? (val2) => Number.isInteger(val2) : (val2) => typeof val2 === "number" && Number.isFinite(val2) && Math.floor(val2) === val2; + function joinValues(array2, separator = " | ") { + return array2.map((val2) => typeof val2 === "string" ? `'${val2}'` : val2).join(separator); + } + util2.joinValues = joinValues; + util2.jsonStringifyReplacer = (_3, value) => { + if (typeof value === "bigint") { + return value.toString(); + } + return value; + }; + })(util || (util = {})); + (function(objectUtil2) { + objectUtil2.mergeShapes = (first, second) => { + return { + ...first, + ...second + // second overwrites first + }; + }; + })(objectUtil || (objectUtil = {})); + ZodParsedType = util.arrayToEnum([ + "string", + "nan", + "number", + "integer", + "float", + "boolean", + "date", + "bigint", + "symbol", + "function", + "undefined", + "null", + "array", + "object", + "unknown", + "promise", + "void", + "never", + "map", + "set" + ]); + getParsedType = (data) => { + const t4 = typeof data; + switch (t4) { + case "undefined": + return ZodParsedType.undefined; + case "string": + return ZodParsedType.string; + case "number": + return Number.isNaN(data) ? ZodParsedType.nan : ZodParsedType.number; + case "boolean": + return ZodParsedType.boolean; + case "function": + return ZodParsedType.function; + case "bigint": + return ZodParsedType.bigint; + case "symbol": + return ZodParsedType.symbol; + case "object": + if (Array.isArray(data)) { + return ZodParsedType.array; + } + if (data === null) { + return ZodParsedType.null; + } + if (data.then && typeof data.then === "function" && data.catch && typeof data.catch === "function") { + return ZodParsedType.promise; + } + if (typeof Map !== "undefined" && data instanceof Map) { + return ZodParsedType.map; + } + if (typeof Set !== "undefined" && data instanceof Set) { + return ZodParsedType.set; + } + if (typeof Date !== "undefined" && data instanceof Date) { + return ZodParsedType.date; + } + return ZodParsedType.object; + default: + return ZodParsedType.unknown; + } + }; + } +}); + +// ../node_modules/.pnpm/zod@3.25.42/node_modules/zod/dist/esm/v3/ZodError.js +var ZodIssueCode, quotelessJson, ZodError; +var init_ZodError = __esm({ + "../node_modules/.pnpm/zod@3.25.42/node_modules/zod/dist/esm/v3/ZodError.js"() { + init_util(); + ZodIssueCode = util.arrayToEnum([ + "invalid_type", + "invalid_literal", + "custom", + "invalid_union", + "invalid_union_discriminator", + "invalid_enum_value", + "unrecognized_keys", + "invalid_arguments", + "invalid_return_type", + "invalid_date", + "invalid_string", + "too_small", + "too_big", + "invalid_intersection_types", + "not_multiple_of", + "not_finite" + ]); + quotelessJson = (obj) => { + const json = JSON.stringify(obj, null, 2); + return json.replace(/"([^"]+)":/g, "$1:"); + }; + ZodError = class _ZodError extends Error { + get errors() { + return this.issues; + } + constructor(issues) { + super(); + this.issues = []; + this.addIssue = (sub) => { + this.issues = [...this.issues, sub]; + }; + this.addIssues = (subs = []) => { + this.issues = [...this.issues, ...subs]; + }; + const actualProto = new.target.prototype; + if (Object.setPrototypeOf) { + Object.setPrototypeOf(this, actualProto); + } else { + this.__proto__ = actualProto; + } + this.name = "ZodError"; + this.issues = issues; + } + format(_mapper) { + const mapper = _mapper || function(issue) { + return issue.message; + }; + const fieldErrors = { _errors: [] }; + const processError = (error2) => { + for (const issue of error2.issues) { + if (issue.code === "invalid_union") { + issue.unionErrors.map(processError); + } else if (issue.code === "invalid_return_type") { + processError(issue.returnTypeError); + } else if (issue.code === "invalid_arguments") { + processError(issue.argumentsError); + } else if (issue.path.length === 0) { + fieldErrors._errors.push(mapper(issue)); + } else { + let curr = fieldErrors; + let i4 = 0; + while (i4 < issue.path.length) { + const el = issue.path[i4]; + const terminal = i4 === issue.path.length - 1; + if (!terminal) { + curr[el] = curr[el] || { _errors: [] }; + } else { + curr[el] = curr[el] || { _errors: [] }; + curr[el]._errors.push(mapper(issue)); + } + curr = curr[el]; + i4++; + } + } + } + }; + processError(this); + return fieldErrors; + } + static assert(value) { + if (!(value instanceof _ZodError)) { + throw new Error(`Not a ZodError: ${value}`); + } + } + toString() { + return this.message; + } + get message() { + return JSON.stringify(this.issues, util.jsonStringifyReplacer, 2); + } + get isEmpty() { + return this.issues.length === 0; + } + flatten(mapper = (issue) => issue.message) { + const fieldErrors = {}; + const formErrors = []; + for (const sub of this.issues) { + if (sub.path.length > 0) { + fieldErrors[sub.path[0]] = fieldErrors[sub.path[0]] || []; + fieldErrors[sub.path[0]].push(mapper(sub)); + } else { + formErrors.push(mapper(sub)); + } + } + return { formErrors, fieldErrors }; + } + get formErrors() { + return this.flatten(); + } + }; + ZodError.create = (issues) => { + const error2 = new ZodError(issues); + return error2; + }; + } +}); + +// ../node_modules/.pnpm/zod@3.25.42/node_modules/zod/dist/esm/v3/locales/en.js +var errorMap, en_default; +var init_en = __esm({ + "../node_modules/.pnpm/zod@3.25.42/node_modules/zod/dist/esm/v3/locales/en.js"() { + init_ZodError(); + init_util(); + errorMap = (issue, _ctx) => { + let message; + switch (issue.code) { + case ZodIssueCode.invalid_type: + if (issue.received === ZodParsedType.undefined) { + message = "Required"; + } else { + message = `Expected ${issue.expected}, received ${issue.received}`; + } + break; + case ZodIssueCode.invalid_literal: + message = `Invalid literal value, expected ${JSON.stringify(issue.expected, util.jsonStringifyReplacer)}`; + break; + case ZodIssueCode.unrecognized_keys: + message = `Unrecognized key(s) in object: ${util.joinValues(issue.keys, ", ")}`; + break; + case ZodIssueCode.invalid_union: + message = `Invalid input`; + break; + case ZodIssueCode.invalid_union_discriminator: + message = `Invalid discriminator value. Expected ${util.joinValues(issue.options)}`; + break; + case ZodIssueCode.invalid_enum_value: + message = `Invalid enum value. Expected ${util.joinValues(issue.options)}, received '${issue.received}'`; + break; + case ZodIssueCode.invalid_arguments: + message = `Invalid function arguments`; + break; + case ZodIssueCode.invalid_return_type: + message = `Invalid function return type`; + break; + case ZodIssueCode.invalid_date: + message = `Invalid date`; + break; + case ZodIssueCode.invalid_string: + if (typeof issue.validation === "object") { + if ("includes" in issue.validation) { + message = `Invalid input: must include "${issue.validation.includes}"`; + if (typeof issue.validation.position === "number") { + message = `${message} at one or more positions greater than or equal to ${issue.validation.position}`; + } + } else if ("startsWith" in issue.validation) { + message = `Invalid input: must start with "${issue.validation.startsWith}"`; + } else if ("endsWith" in issue.validation) { + message = `Invalid input: must end with "${issue.validation.endsWith}"`; + } else { + util.assertNever(issue.validation); + } + } else if (issue.validation !== "regex") { + message = `Invalid ${issue.validation}`; + } else { + message = "Invalid"; + } + break; + case ZodIssueCode.too_small: + if (issue.type === "array") + message = `Array must contain ${issue.exact ? "exactly" : issue.inclusive ? `at least` : `more than`} ${issue.minimum} element(s)`; + else if (issue.type === "string") + message = `String must contain ${issue.exact ? "exactly" : issue.inclusive ? `at least` : `over`} ${issue.minimum} character(s)`; + else if (issue.type === "number") + message = `Number must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${issue.minimum}`; + else if (issue.type === "date") + message = `Date must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${new Date(Number(issue.minimum))}`; + else + message = "Invalid input"; + break; + case ZodIssueCode.too_big: + if (issue.type === "array") + message = `Array must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `less than`} ${issue.maximum} element(s)`; + else if (issue.type === "string") + message = `String must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `under`} ${issue.maximum} character(s)`; + else if (issue.type === "number") + message = `Number must be ${issue.exact ? `exactly` : issue.inclusive ? `less than or equal to` : `less than`} ${issue.maximum}`; + else if (issue.type === "bigint") + message = `BigInt must be ${issue.exact ? `exactly` : issue.inclusive ? `less than or equal to` : `less than`} ${issue.maximum}`; + else if (issue.type === "date") + message = `Date must be ${issue.exact ? `exactly` : issue.inclusive ? `smaller than or equal to` : `smaller than`} ${new Date(Number(issue.maximum))}`; + else + message = "Invalid input"; + break; + case ZodIssueCode.custom: + message = `Invalid input`; + break; + case ZodIssueCode.invalid_intersection_types: + message = `Intersection results could not be merged`; + break; + case ZodIssueCode.not_multiple_of: + message = `Number must be a multiple of ${issue.multipleOf}`; + break; + case ZodIssueCode.not_finite: + message = "Number must be finite"; + break; + default: + message = _ctx.defaultError; + util.assertNever(issue); + } + return { message }; + }; + en_default = errorMap; + } +}); + +// ../node_modules/.pnpm/zod@3.25.42/node_modules/zod/dist/esm/v3/errors.js +function setErrorMap(map2) { + overrideErrorMap = map2; +} +function getErrorMap() { + return overrideErrorMap; +} +var overrideErrorMap; +var init_errors = __esm({ + "../node_modules/.pnpm/zod@3.25.42/node_modules/zod/dist/esm/v3/errors.js"() { + init_en(); + overrideErrorMap = en_default; + } +}); + +// ../node_modules/.pnpm/zod@3.25.42/node_modules/zod/dist/esm/v3/helpers/parseUtil.js +function addIssueToContext(ctx, issueData) { + const overrideMap = getErrorMap(); + const issue = makeIssue({ + issueData, + data: ctx.data, + path: ctx.path, + errorMaps: [ + ctx.common.contextualErrorMap, + // contextual error map is first priority + ctx.schemaErrorMap, + // then schema-bound map if available + overrideMap, + // then global override map + overrideMap === en_default ? void 0 : en_default + // then global default map + ].filter((x4) => !!x4) + }); + ctx.common.issues.push(issue); +} +var makeIssue, EMPTY_PATH, ParseStatus, INVALID, DIRTY, OK, isAborted, isDirty, isValid, isAsync; +var init_parseUtil = __esm({ + "../node_modules/.pnpm/zod@3.25.42/node_modules/zod/dist/esm/v3/helpers/parseUtil.js"() { + init_errors(); + init_en(); + makeIssue = (params) => { + const { data, path: path4, errorMaps, issueData } = params; + const fullPath = [...path4, ...issueData.path || []]; + const fullIssue = { + ...issueData, + path: fullPath + }; + if (issueData.message !== void 0) { + return { + ...issueData, + path: fullPath, + message: issueData.message + }; + } + let errorMessage = ""; + const maps = errorMaps.filter((m4) => !!m4).slice().reverse(); + for (const map2 of maps) { + errorMessage = map2(fullIssue, { data, defaultError: errorMessage }).message; + } + return { + ...issueData, + path: fullPath, + message: errorMessage + }; + }; + EMPTY_PATH = []; + ParseStatus = class _ParseStatus { + constructor() { + this.value = "valid"; + } + dirty() { + if (this.value === "valid") + this.value = "dirty"; + } + abort() { + if (this.value !== "aborted") + this.value = "aborted"; + } + static mergeArray(status, results) { + const arrayValue = []; + for (const s4 of results) { + if (s4.status === "aborted") + return INVALID; + if (s4.status === "dirty") + status.dirty(); + arrayValue.push(s4.value); + } + return { status: status.value, value: arrayValue }; + } + static async mergeObjectAsync(status, pairs) { + const syncPairs = []; + for (const pair of pairs) { + const key = await pair.key; + const value = await pair.value; + syncPairs.push({ + key, + value + }); + } + return _ParseStatus.mergeObjectSync(status, syncPairs); + } + static mergeObjectSync(status, pairs) { + const finalObject = {}; + for (const pair of pairs) { + const { key, value } = pair; + if (key.status === "aborted") + return INVALID; + if (value.status === "aborted") + return INVALID; + if (key.status === "dirty") + status.dirty(); + if (value.status === "dirty") + status.dirty(); + if (key.value !== "__proto__" && (typeof value.value !== "undefined" || pair.alwaysSet)) { + finalObject[key.value] = value.value; + } + } + return { status: status.value, value: finalObject }; + } + }; + INVALID = Object.freeze({ + status: "aborted" + }); + DIRTY = (value) => ({ status: "dirty", value }); + OK = (value) => ({ status: "valid", value }); + isAborted = (x4) => x4.status === "aborted"; + isDirty = (x4) => x4.status === "dirty"; + isValid = (x4) => x4.status === "valid"; + isAsync = (x4) => typeof Promise !== "undefined" && x4 instanceof Promise; + } +}); + +// ../node_modules/.pnpm/zod@3.25.42/node_modules/zod/dist/esm/v3/helpers/typeAliases.js +var init_typeAliases = __esm({ + "../node_modules/.pnpm/zod@3.25.42/node_modules/zod/dist/esm/v3/helpers/typeAliases.js"() { + } +}); + +// ../node_modules/.pnpm/zod@3.25.42/node_modules/zod/dist/esm/v3/helpers/errorUtil.js +var errorUtil; +var init_errorUtil = __esm({ + "../node_modules/.pnpm/zod@3.25.42/node_modules/zod/dist/esm/v3/helpers/errorUtil.js"() { + (function(errorUtil2) { + errorUtil2.errToObj = (message) => typeof message === "string" ? { message } : message || {}; + errorUtil2.toString = (message) => typeof message === "string" ? message : message == null ? void 0 : message.message; + })(errorUtil || (errorUtil = {})); + } +}); + +// ../node_modules/.pnpm/zod@3.25.42/node_modules/zod/dist/esm/v3/types.js +function processCreateParams(params) { + if (!params) + return {}; + const { errorMap: errorMap2, invalid_type_error, required_error, description } = params; + if (errorMap2 && (invalid_type_error || required_error)) { + throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`); + } + if (errorMap2) + return { errorMap: errorMap2, description }; + const customMap = (iss, ctx) => { + const { message } = params; + if (iss.code === "invalid_enum_value") { + return { message: message ?? ctx.defaultError }; + } + if (typeof ctx.data === "undefined") { + return { message: message ?? required_error ?? ctx.defaultError }; + } + if (iss.code !== "invalid_type") + return { message: ctx.defaultError }; + return { message: message ?? invalid_type_error ?? ctx.defaultError }; + }; + return { errorMap: customMap, description }; +} +function timeRegexSource(args) { + let secondsRegexSource = `[0-5]\\d`; + if (args.precision) { + secondsRegexSource = `${secondsRegexSource}\\.\\d{${args.precision}}`; + } else if (args.precision == null) { + secondsRegexSource = `${secondsRegexSource}(\\.\\d+)?`; + } + const secondsQuantifier = args.precision ? "+" : "?"; + return `([01]\\d|2[0-3]):[0-5]\\d(:${secondsRegexSource})${secondsQuantifier}`; +} +function timeRegex(args) { + return new RegExp(`^${timeRegexSource(args)}$`); +} +function datetimeRegex(args) { + let regex = `${dateRegexSource}T${timeRegexSource(args)}`; + const opts = []; + opts.push(args.local ? `Z?` : `Z`); + if (args.offset) + opts.push(`([+-]\\d{2}:?\\d{2})`); + regex = `${regex}(${opts.join("|")})`; + return new RegExp(`^${regex}$`); +} +function isValidIP(ip, version3) { + if ((version3 === "v4" || !version3) && ipv4Regex.test(ip)) { + return true; + } + if ((version3 === "v6" || !version3) && ipv6Regex.test(ip)) { + return true; + } + return false; +} +function isValidJWT(jwt, alg) { + if (!jwtRegex.test(jwt)) + return false; + try { + const [header] = jwt.split("."); + const base64 = header.replace(/-/g, "+").replace(/_/g, "/").padEnd(header.length + (4 - header.length % 4) % 4, "="); + const decoded = JSON.parse(atob(base64)); + if (typeof decoded !== "object" || decoded === null) + return false; + if ("typ" in decoded && (decoded == null ? void 0 : decoded.typ) !== "JWT") + return false; + if (!decoded.alg) + return false; + if (alg && decoded.alg !== alg) + return false; + return true; + } catch { + return false; + } +} +function isValidCidr(ip, version3) { + if ((version3 === "v4" || !version3) && ipv4CidrRegex.test(ip)) { + return true; + } + if ((version3 === "v6" || !version3) && ipv6CidrRegex.test(ip)) { + return true; + } + return false; +} +function floatSafeRemainder(val2, step) { + const valDecCount = (val2.toString().split(".")[1] || "").length; + const stepDecCount = (step.toString().split(".")[1] || "").length; + const decCount = valDecCount > stepDecCount ? valDecCount : stepDecCount; + const valInt = Number.parseInt(val2.toFixed(decCount).replace(".", "")); + const stepInt = Number.parseInt(step.toFixed(decCount).replace(".", "")); + return valInt % stepInt / 10 ** decCount; +} +function deepPartialify(schema6) { + if (schema6 instanceof ZodObject) { + const newShape = {}; + for (const key in schema6.shape) { + const fieldSchema = schema6.shape[key]; + newShape[key] = ZodOptional.create(deepPartialify(fieldSchema)); + } + return new ZodObject({ + ...schema6._def, + shape: () => newShape + }); + } else if (schema6 instanceof ZodArray) { + return new ZodArray({ + ...schema6._def, + type: deepPartialify(schema6.element) + }); + } else if (schema6 instanceof ZodOptional) { + return ZodOptional.create(deepPartialify(schema6.unwrap())); + } else if (schema6 instanceof ZodNullable) { + return ZodNullable.create(deepPartialify(schema6.unwrap())); + } else if (schema6 instanceof ZodTuple) { + return ZodTuple.create(schema6.items.map((item) => deepPartialify(item))); + } else { + return schema6; + } +} +function mergeValues(a3, b3) { + const aType = getParsedType(a3); + const bType = getParsedType(b3); + if (a3 === b3) { + return { valid: true, data: a3 }; + } else if (aType === ZodParsedType.object && bType === ZodParsedType.object) { + const bKeys = util.objectKeys(b3); + const sharedKeys = util.objectKeys(a3).filter((key) => bKeys.indexOf(key) !== -1); + const newObj = { ...a3, ...b3 }; + for (const key of sharedKeys) { + const sharedValue = mergeValues(a3[key], b3[key]); + if (!sharedValue.valid) { + return { valid: false }; + } + newObj[key] = sharedValue.data; + } + return { valid: true, data: newObj }; + } else if (aType === ZodParsedType.array && bType === ZodParsedType.array) { + if (a3.length !== b3.length) { + return { valid: false }; + } + const newArray = []; + for (let index6 = 0; index6 < a3.length; index6++) { + const itemA = a3[index6]; + const itemB = b3[index6]; + const sharedValue = mergeValues(itemA, itemB); + if (!sharedValue.valid) { + return { valid: false }; + } + newArray.push(sharedValue.data); + } + return { valid: true, data: newArray }; + } else if (aType === ZodParsedType.date && bType === ZodParsedType.date && +a3 === +b3) { + return { valid: true, data: a3 }; + } else { + return { valid: false }; + } +} +function createZodEnum(values, params) { + return new ZodEnum({ + values, + typeName: ZodFirstPartyTypeKind.ZodEnum, + ...processCreateParams(params) + }); +} +function cleanParams(params, data) { + const p3 = typeof params === "function" ? params(data) : typeof params === "string" ? { message: params } : params; + const p22 = typeof p3 === "string" ? { message: p3 } : p3; + return p22; +} +function custom(check2, _params = {}, fatal) { + if (check2) + return ZodAny.create().superRefine((data, ctx) => { + const r4 = check2(data); + if (r4 instanceof Promise) { + return r4.then((r5) => { + if (!r5) { + const params = cleanParams(_params, data); + const _fatal = params.fatal ?? fatal ?? true; + ctx.addIssue({ code: "custom", ...params, fatal: _fatal }); + } + }); + } + if (!r4) { + const params = cleanParams(_params, data); + const _fatal = params.fatal ?? fatal ?? true; + ctx.addIssue({ code: "custom", ...params, fatal: _fatal }); + } + return; + }); + return ZodAny.create(); +} +var ParseInputLazyPath, handleResult, ZodType, cuidRegex, cuid2Regex, ulidRegex, uuidRegex, nanoidRegex, jwtRegex, durationRegex, emailRegex, _emojiRegex, emojiRegex, ipv4Regex, ipv4CidrRegex, ipv6Regex, ipv6CidrRegex, base64Regex, base64urlRegex, dateRegexSource, dateRegex, ZodString, ZodNumber, ZodBigInt, ZodBoolean, ZodDate, ZodSymbol, ZodUndefined, ZodNull, ZodAny, ZodUnknown, ZodNever, ZodVoid, ZodArray, ZodObject, ZodUnion, getDiscriminator, ZodDiscriminatedUnion, ZodIntersection, ZodTuple, ZodRecord, ZodMap, ZodSet, ZodFunction, ZodLazy, ZodLiteral, ZodEnum, ZodNativeEnum, ZodPromise, ZodEffects, ZodOptional, ZodNullable, ZodDefault, ZodCatch, ZodNaN, BRAND, ZodBranded, ZodPipeline, ZodReadonly, late, ZodFirstPartyTypeKind, instanceOfType, stringType, numberType, nanType, bigIntType, booleanType, dateType, symbolType, undefinedType, nullType, anyType, unknownType, neverType, voidType, arrayType, objectType, strictObjectType, unionType, discriminatedUnionType, intersectionType, tupleType, recordType, mapType, setType, functionType, lazyType, literalType, enumType, nativeEnumType, promiseType, effectsType, optionalType, nullableType, preprocessType, pipelineType, ostring, onumber, oboolean, coerce, NEVER; +var init_types = __esm({ + "../node_modules/.pnpm/zod@3.25.42/node_modules/zod/dist/esm/v3/types.js"() { + init_ZodError(); + init_errors(); + init_errorUtil(); + init_parseUtil(); + init_util(); + ParseInputLazyPath = class { + constructor(parent, value, path4, key) { + this._cachedPath = []; + this.parent = parent; + this.data = value; + this._path = path4; + this._key = key; + } + get path() { + if (!this._cachedPath.length) { + if (Array.isArray(this._key)) { + this._cachedPath.push(...this._path, ...this._key); + } else { + this._cachedPath.push(...this._path, this._key); + } + } + return this._cachedPath; + } + }; + handleResult = (ctx, result) => { + if (isValid(result)) { + return { success: true, data: result.value }; + } else { + if (!ctx.common.issues.length) { + throw new Error("Validation failed but no issues detected."); + } + return { + success: false, + get error() { + if (this._error) + return this._error; + const error2 = new ZodError(ctx.common.issues); + this._error = error2; + return this._error; + } + }; + } + }; + ZodType = class { + get description() { + return this._def.description; + } + _getType(input) { + return getParsedType(input.data); + } + _getOrReturnCtx(input, ctx) { + return ctx || { + common: input.parent.common, + data: input.data, + parsedType: getParsedType(input.data), + schemaErrorMap: this._def.errorMap, + path: input.path, + parent: input.parent + }; + } + _processInputParams(input) { + return { + status: new ParseStatus(), + ctx: { + common: input.parent.common, + data: input.data, + parsedType: getParsedType(input.data), + schemaErrorMap: this._def.errorMap, + path: input.path, + parent: input.parent + } + }; + } + _parseSync(input) { + const result = this._parse(input); + if (isAsync(result)) { + throw new Error("Synchronous parse encountered promise."); + } + return result; + } + _parseAsync(input) { + const result = this._parse(input); + return Promise.resolve(result); + } + parse(data, params) { + const result = this.safeParse(data, params); + if (result.success) + return result.data; + throw result.error; + } + safeParse(data, params) { + const ctx = { + common: { + issues: [], + async: (params == null ? void 0 : params.async) ?? false, + contextualErrorMap: params == null ? void 0 : params.errorMap + }, + path: (params == null ? void 0 : params.path) || [], + schemaErrorMap: this._def.errorMap, + parent: null, + data, + parsedType: getParsedType(data) + }; + const result = this._parseSync({ data, path: ctx.path, parent: ctx }); + return handleResult(ctx, result); + } + "~validate"(data) { + var _a2, _b; + const ctx = { + common: { + issues: [], + async: !!this["~standard"].async + }, + path: [], + schemaErrorMap: this._def.errorMap, + parent: null, + data, + parsedType: getParsedType(data) + }; + if (!this["~standard"].async) { + try { + const result = this._parseSync({ data, path: [], parent: ctx }); + return isValid(result) ? { + value: result.value + } : { + issues: ctx.common.issues + }; + } catch (err2) { + if ((_b = (_a2 = err2 == null ? void 0 : err2.message) == null ? void 0 : _a2.toLowerCase()) == null ? void 0 : _b.includes("encountered")) { + this["~standard"].async = true; + } + ctx.common = { + issues: [], + async: true + }; + } + } + return this._parseAsync({ data, path: [], parent: ctx }).then((result) => isValid(result) ? { + value: result.value + } : { + issues: ctx.common.issues + }); + } + async parseAsync(data, params) { + const result = await this.safeParseAsync(data, params); + if (result.success) + return result.data; + throw result.error; + } + async safeParseAsync(data, params) { + const ctx = { + common: { + issues: [], + contextualErrorMap: params == null ? void 0 : params.errorMap, + async: true + }, + path: (params == null ? void 0 : params.path) || [], + schemaErrorMap: this._def.errorMap, + parent: null, + data, + parsedType: getParsedType(data) + }; + const maybeAsyncResult = this._parse({ data, path: ctx.path, parent: ctx }); + const result = await (isAsync(maybeAsyncResult) ? maybeAsyncResult : Promise.resolve(maybeAsyncResult)); + return handleResult(ctx, result); + } + refine(check2, message) { + const getIssueProperties = (val2) => { + if (typeof message === "string" || typeof message === "undefined") { + return { message }; + } else if (typeof message === "function") { + return message(val2); + } else { + return message; + } + }; + return this._refinement((val2, ctx) => { + const result = check2(val2); + const setError = () => ctx.addIssue({ + code: ZodIssueCode.custom, + ...getIssueProperties(val2) + }); + if (typeof Promise !== "undefined" && result instanceof Promise) { + return result.then((data) => { + if (!data) { + setError(); + return false; + } else { + return true; + } + }); + } + if (!result) { + setError(); + return false; + } else { + return true; + } + }); + } + refinement(check2, refinementData) { + return this._refinement((val2, ctx) => { + if (!check2(val2)) { + ctx.addIssue(typeof refinementData === "function" ? refinementData(val2, ctx) : refinementData); + return false; + } else { + return true; + } + }); + } + _refinement(refinement) { + return new ZodEffects({ + schema: this, + typeName: ZodFirstPartyTypeKind.ZodEffects, + effect: { type: "refinement", refinement } + }); + } + superRefine(refinement) { + return this._refinement(refinement); + } + constructor(def) { + this.spa = this.safeParseAsync; + this._def = def; + this.parse = this.parse.bind(this); + this.safeParse = this.safeParse.bind(this); + this.parseAsync = this.parseAsync.bind(this); + this.safeParseAsync = this.safeParseAsync.bind(this); + this.spa = this.spa.bind(this); + this.refine = this.refine.bind(this); + this.refinement = this.refinement.bind(this); + this.superRefine = this.superRefine.bind(this); + this.optional = this.optional.bind(this); + this.nullable = this.nullable.bind(this); + this.nullish = this.nullish.bind(this); + this.array = this.array.bind(this); + this.promise = this.promise.bind(this); + this.or = this.or.bind(this); + this.and = this.and.bind(this); + this.transform = this.transform.bind(this); + this.brand = this.brand.bind(this); + this.default = this.default.bind(this); + this.catch = this.catch.bind(this); + this.describe = this.describe.bind(this); + this.pipe = this.pipe.bind(this); + this.readonly = this.readonly.bind(this); + this.isNullable = this.isNullable.bind(this); + this.isOptional = this.isOptional.bind(this); + this["~standard"] = { + version: 1, + vendor: "zod", + validate: (data) => this["~validate"](data) + }; + } + optional() { + return ZodOptional.create(this, this._def); + } + nullable() { + return ZodNullable.create(this, this._def); + } + nullish() { + return this.nullable().optional(); + } + array() { + return ZodArray.create(this); + } + promise() { + return ZodPromise.create(this, this._def); + } + or(option) { + return ZodUnion.create([this, option], this._def); + } + and(incoming) { + return ZodIntersection.create(this, incoming, this._def); + } + transform(transform) { + return new ZodEffects({ + ...processCreateParams(this._def), + schema: this, + typeName: ZodFirstPartyTypeKind.ZodEffects, + effect: { type: "transform", transform } + }); + } + default(def) { + const defaultValueFunc = typeof def === "function" ? def : () => def; + return new ZodDefault({ + ...processCreateParams(this._def), + innerType: this, + defaultValue: defaultValueFunc, + typeName: ZodFirstPartyTypeKind.ZodDefault + }); + } + brand() { + return new ZodBranded({ + typeName: ZodFirstPartyTypeKind.ZodBranded, + type: this, + ...processCreateParams(this._def) + }); + } + catch(def) { + const catchValueFunc = typeof def === "function" ? def : () => def; + return new ZodCatch({ + ...processCreateParams(this._def), + innerType: this, + catchValue: catchValueFunc, + typeName: ZodFirstPartyTypeKind.ZodCatch + }); + } + describe(description) { + const This = this.constructor; + return new This({ + ...this._def, + description + }); + } + pipe(target) { + return ZodPipeline.create(this, target); + } + readonly() { + return ZodReadonly.create(this); + } + isOptional() { + return this.safeParse(void 0).success; + } + isNullable() { + return this.safeParse(null).success; + } + }; + cuidRegex = /^c[^\s-]{8,}$/i; + cuid2Regex = /^[0-9a-z]+$/; + ulidRegex = /^[0-9A-HJKMNP-TV-Z]{26}$/i; + uuidRegex = /^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i; + nanoidRegex = /^[a-z0-9_-]{21}$/i; + jwtRegex = /^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/; + durationRegex = /^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/; + emailRegex = /^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i; + _emojiRegex = `^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$`; + ipv4Regex = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/; + ipv4CidrRegex = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/; + ipv6Regex = /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/; + ipv6CidrRegex = /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/; + base64Regex = /^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/; + base64urlRegex = /^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/; + dateRegexSource = `((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))`; + dateRegex = new RegExp(`^${dateRegexSource}$`); + ZodString = class _ZodString extends ZodType { + _parse(input) { + if (this._def.coerce) { + input.data = String(input.data); + } + const parsedType = this._getType(input); + if (parsedType !== ZodParsedType.string) { + const ctx2 = this._getOrReturnCtx(input); + addIssueToContext(ctx2, { + code: ZodIssueCode.invalid_type, + expected: ZodParsedType.string, + received: ctx2.parsedType + }); + return INVALID; + } + const status = new ParseStatus(); + let ctx = void 0; + for (const check2 of this._def.checks) { + if (check2.kind === "min") { + if (input.data.length < check2.value) { + ctx = this._getOrReturnCtx(input, ctx); + addIssueToContext(ctx, { + code: ZodIssueCode.too_small, + minimum: check2.value, + type: "string", + inclusive: true, + exact: false, + message: check2.message + }); + status.dirty(); + } + } else if (check2.kind === "max") { + if (input.data.length > check2.value) { + ctx = this._getOrReturnCtx(input, ctx); + addIssueToContext(ctx, { + code: ZodIssueCode.too_big, + maximum: check2.value, + type: "string", + inclusive: true, + exact: false, + message: check2.message + }); + status.dirty(); + } + } else if (check2.kind === "length") { + const tooBig = input.data.length > check2.value; + const tooSmall = input.data.length < check2.value; + if (tooBig || tooSmall) { + ctx = this._getOrReturnCtx(input, ctx); + if (tooBig) { + addIssueToContext(ctx, { + code: ZodIssueCode.too_big, + maximum: check2.value, + type: "string", + inclusive: true, + exact: true, + message: check2.message + }); + } else if (tooSmall) { + addIssueToContext(ctx, { + code: ZodIssueCode.too_small, + minimum: check2.value, + type: "string", + inclusive: true, + exact: true, + message: check2.message + }); + } + status.dirty(); + } + } else if (check2.kind === "email") { + if (!emailRegex.test(input.data)) { + ctx = this._getOrReturnCtx(input, ctx); + addIssueToContext(ctx, { + validation: "email", + code: ZodIssueCode.invalid_string, + message: check2.message + }); + status.dirty(); + } + } else if (check2.kind === "emoji") { + if (!emojiRegex) { + emojiRegex = new RegExp(_emojiRegex, "u"); + } + if (!emojiRegex.test(input.data)) { + ctx = this._getOrReturnCtx(input, ctx); + addIssueToContext(ctx, { + validation: "emoji", + code: ZodIssueCode.invalid_string, + message: check2.message + }); + status.dirty(); + } + } else if (check2.kind === "uuid") { + if (!uuidRegex.test(input.data)) { + ctx = this._getOrReturnCtx(input, ctx); + addIssueToContext(ctx, { + validation: "uuid", + code: ZodIssueCode.invalid_string, + message: check2.message + }); + status.dirty(); + } + } else if (check2.kind === "nanoid") { + if (!nanoidRegex.test(input.data)) { + ctx = this._getOrReturnCtx(input, ctx); + addIssueToContext(ctx, { + validation: "nanoid", + code: ZodIssueCode.invalid_string, + message: check2.message + }); + status.dirty(); + } + } else if (check2.kind === "cuid") { + if (!cuidRegex.test(input.data)) { + ctx = this._getOrReturnCtx(input, ctx); + addIssueToContext(ctx, { + validation: "cuid", + code: ZodIssueCode.invalid_string, + message: check2.message + }); + status.dirty(); + } + } else if (check2.kind === "cuid2") { + if (!cuid2Regex.test(input.data)) { + ctx = this._getOrReturnCtx(input, ctx); + addIssueToContext(ctx, { + validation: "cuid2", + code: ZodIssueCode.invalid_string, + message: check2.message + }); + status.dirty(); + } + } else if (check2.kind === "ulid") { + if (!ulidRegex.test(input.data)) { + ctx = this._getOrReturnCtx(input, ctx); + addIssueToContext(ctx, { + validation: "ulid", + code: ZodIssueCode.invalid_string, + message: check2.message + }); + status.dirty(); + } + } else if (check2.kind === "url") { + try { + new URL(input.data); + } catch { + ctx = this._getOrReturnCtx(input, ctx); + addIssueToContext(ctx, { + validation: "url", + code: ZodIssueCode.invalid_string, + message: check2.message + }); + status.dirty(); + } + } else if (check2.kind === "regex") { + check2.regex.lastIndex = 0; + const testResult = check2.regex.test(input.data); + if (!testResult) { + ctx = this._getOrReturnCtx(input, ctx); + addIssueToContext(ctx, { + validation: "regex", + code: ZodIssueCode.invalid_string, + message: check2.message + }); + status.dirty(); + } + } else if (check2.kind === "trim") { + input.data = input.data.trim(); + } else if (check2.kind === "includes") { + if (!input.data.includes(check2.value, check2.position)) { + ctx = this._getOrReturnCtx(input, ctx); + addIssueToContext(ctx, { + code: ZodIssueCode.invalid_string, + validation: { includes: check2.value, position: check2.position }, + message: check2.message + }); + status.dirty(); + } + } else if (check2.kind === "toLowerCase") { + input.data = input.data.toLowerCase(); + } else if (check2.kind === "toUpperCase") { + input.data = input.data.toUpperCase(); + } else if (check2.kind === "startsWith") { + if (!input.data.startsWith(check2.value)) { + ctx = this._getOrReturnCtx(input, ctx); + addIssueToContext(ctx, { + code: ZodIssueCode.invalid_string, + validation: { startsWith: check2.value }, + message: check2.message + }); + status.dirty(); + } + } else if (check2.kind === "endsWith") { + if (!input.data.endsWith(check2.value)) { + ctx = this._getOrReturnCtx(input, ctx); + addIssueToContext(ctx, { + code: ZodIssueCode.invalid_string, + validation: { endsWith: check2.value }, + message: check2.message + }); + status.dirty(); + } + } else if (check2.kind === "datetime") { + const regex = datetimeRegex(check2); + if (!regex.test(input.data)) { + ctx = this._getOrReturnCtx(input, ctx); + addIssueToContext(ctx, { + code: ZodIssueCode.invalid_string, + validation: "datetime", + message: check2.message + }); + status.dirty(); + } + } else if (check2.kind === "date") { + const regex = dateRegex; + if (!regex.test(input.data)) { + ctx = this._getOrReturnCtx(input, ctx); + addIssueToContext(ctx, { + code: ZodIssueCode.invalid_string, + validation: "date", + message: check2.message + }); + status.dirty(); + } + } else if (check2.kind === "time") { + const regex = timeRegex(check2); + if (!regex.test(input.data)) { + ctx = this._getOrReturnCtx(input, ctx); + addIssueToContext(ctx, { + code: ZodIssueCode.invalid_string, + validation: "time", + message: check2.message + }); + status.dirty(); + } + } else if (check2.kind === "duration") { + if (!durationRegex.test(input.data)) { + ctx = this._getOrReturnCtx(input, ctx); + addIssueToContext(ctx, { + validation: "duration", + code: ZodIssueCode.invalid_string, + message: check2.message + }); + status.dirty(); + } + } else if (check2.kind === "ip") { + if (!isValidIP(input.data, check2.version)) { + ctx = this._getOrReturnCtx(input, ctx); + addIssueToContext(ctx, { + validation: "ip", + code: ZodIssueCode.invalid_string, + message: check2.message + }); + status.dirty(); + } + } else if (check2.kind === "jwt") { + if (!isValidJWT(input.data, check2.alg)) { + ctx = this._getOrReturnCtx(input, ctx); + addIssueToContext(ctx, { + validation: "jwt", + code: ZodIssueCode.invalid_string, + message: check2.message + }); + status.dirty(); + } + } else if (check2.kind === "cidr") { + if (!isValidCidr(input.data, check2.version)) { + ctx = this._getOrReturnCtx(input, ctx); + addIssueToContext(ctx, { + validation: "cidr", + code: ZodIssueCode.invalid_string, + message: check2.message + }); + status.dirty(); + } + } else if (check2.kind === "base64") { + if (!base64Regex.test(input.data)) { + ctx = this._getOrReturnCtx(input, ctx); + addIssueToContext(ctx, { + validation: "base64", + code: ZodIssueCode.invalid_string, + message: check2.message + }); + status.dirty(); + } + } else if (check2.kind === "base64url") { + if (!base64urlRegex.test(input.data)) { + ctx = this._getOrReturnCtx(input, ctx); + addIssueToContext(ctx, { + validation: "base64url", + code: ZodIssueCode.invalid_string, + message: check2.message + }); + status.dirty(); + } + } else { + util.assertNever(check2); + } + } + return { status: status.value, value: input.data }; + } + _regex(regex, validation, message) { + return this.refinement((data) => regex.test(data), { + validation, + code: ZodIssueCode.invalid_string, + ...errorUtil.errToObj(message) + }); + } + _addCheck(check2) { + return new _ZodString({ + ...this._def, + checks: [...this._def.checks, check2] + }); + } + email(message) { + return this._addCheck({ kind: "email", ...errorUtil.errToObj(message) }); + } + url(message) { + return this._addCheck({ kind: "url", ...errorUtil.errToObj(message) }); + } + emoji(message) { + return this._addCheck({ kind: "emoji", ...errorUtil.errToObj(message) }); + } + uuid(message) { + return this._addCheck({ kind: "uuid", ...errorUtil.errToObj(message) }); + } + nanoid(message) { + return this._addCheck({ kind: "nanoid", ...errorUtil.errToObj(message) }); + } + cuid(message) { + return this._addCheck({ kind: "cuid", ...errorUtil.errToObj(message) }); + } + cuid2(message) { + return this._addCheck({ kind: "cuid2", ...errorUtil.errToObj(message) }); + } + ulid(message) { + return this._addCheck({ kind: "ulid", ...errorUtil.errToObj(message) }); + } + base64(message) { + return this._addCheck({ kind: "base64", ...errorUtil.errToObj(message) }); + } + base64url(message) { + return this._addCheck({ + kind: "base64url", + ...errorUtil.errToObj(message) + }); + } + jwt(options) { + return this._addCheck({ kind: "jwt", ...errorUtil.errToObj(options) }); + } + ip(options) { + return this._addCheck({ kind: "ip", ...errorUtil.errToObj(options) }); + } + cidr(options) { + return this._addCheck({ kind: "cidr", ...errorUtil.errToObj(options) }); + } + datetime(options) { + if (typeof options === "string") { + return this._addCheck({ + kind: "datetime", + precision: null, + offset: false, + local: false, + message: options + }); + } + return this._addCheck({ + kind: "datetime", + precision: typeof (options == null ? void 0 : options.precision) === "undefined" ? null : options == null ? void 0 : options.precision, + offset: (options == null ? void 0 : options.offset) ?? false, + local: (options == null ? void 0 : options.local) ?? false, + ...errorUtil.errToObj(options == null ? void 0 : options.message) + }); + } + date(message) { + return this._addCheck({ kind: "date", message }); + } + time(options) { + if (typeof options === "string") { + return this._addCheck({ + kind: "time", + precision: null, + message: options + }); + } + return this._addCheck({ + kind: "time", + precision: typeof (options == null ? void 0 : options.precision) === "undefined" ? null : options == null ? void 0 : options.precision, + ...errorUtil.errToObj(options == null ? void 0 : options.message) + }); + } + duration(message) { + return this._addCheck({ kind: "duration", ...errorUtil.errToObj(message) }); + } + regex(regex, message) { + return this._addCheck({ + kind: "regex", + regex, + ...errorUtil.errToObj(message) + }); + } + includes(value, options) { + return this._addCheck({ + kind: "includes", + value, + position: options == null ? void 0 : options.position, + ...errorUtil.errToObj(options == null ? void 0 : options.message) + }); + } + startsWith(value, message) { + return this._addCheck({ + kind: "startsWith", + value, + ...errorUtil.errToObj(message) + }); + } + endsWith(value, message) { + return this._addCheck({ + kind: "endsWith", + value, + ...errorUtil.errToObj(message) + }); + } + min(minLength, message) { + return this._addCheck({ + kind: "min", + value: minLength, + ...errorUtil.errToObj(message) + }); + } + max(maxLength, message) { + return this._addCheck({ + kind: "max", + value: maxLength, + ...errorUtil.errToObj(message) + }); + } + length(len, message) { + return this._addCheck({ + kind: "length", + value: len, + ...errorUtil.errToObj(message) + }); + } + /** + * Equivalent to `.min(1)` + */ + nonempty(message) { + return this.min(1, errorUtil.errToObj(message)); + } + trim() { + return new _ZodString({ + ...this._def, + checks: [...this._def.checks, { kind: "trim" }] + }); + } + toLowerCase() { + return new _ZodString({ + ...this._def, + checks: [...this._def.checks, { kind: "toLowerCase" }] + }); + } + toUpperCase() { + return new _ZodString({ + ...this._def, + checks: [...this._def.checks, { kind: "toUpperCase" }] + }); + } + get isDatetime() { + return !!this._def.checks.find((ch) => ch.kind === "datetime"); + } + get isDate() { + return !!this._def.checks.find((ch) => ch.kind === "date"); + } + get isTime() { + return !!this._def.checks.find((ch) => ch.kind === "time"); + } + get isDuration() { + return !!this._def.checks.find((ch) => ch.kind === "duration"); + } + get isEmail() { + return !!this._def.checks.find((ch) => ch.kind === "email"); + } + get isURL() { + return !!this._def.checks.find((ch) => ch.kind === "url"); + } + get isEmoji() { + return !!this._def.checks.find((ch) => ch.kind === "emoji"); + } + get isUUID() { + return !!this._def.checks.find((ch) => ch.kind === "uuid"); + } + get isNANOID() { + return !!this._def.checks.find((ch) => ch.kind === "nanoid"); + } + get isCUID() { + return !!this._def.checks.find((ch) => ch.kind === "cuid"); + } + get isCUID2() { + return !!this._def.checks.find((ch) => ch.kind === "cuid2"); + } + get isULID() { + return !!this._def.checks.find((ch) => ch.kind === "ulid"); + } + get isIP() { + return !!this._def.checks.find((ch) => ch.kind === "ip"); + } + get isCIDR() { + return !!this._def.checks.find((ch) => ch.kind === "cidr"); + } + get isBase64() { + return !!this._def.checks.find((ch) => ch.kind === "base64"); + } + get isBase64url() { + return !!this._def.checks.find((ch) => ch.kind === "base64url"); + } + get minLength() { + let min = null; + for (const ch of this._def.checks) { + if (ch.kind === "min") { + if (min === null || ch.value > min) + min = ch.value; + } + } + return min; + } + get maxLength() { + let max = null; + for (const ch of this._def.checks) { + if (ch.kind === "max") { + if (max === null || ch.value < max) + max = ch.value; + } + } + return max; + } + }; + ZodString.create = (params) => { + return new ZodString({ + checks: [], + typeName: ZodFirstPartyTypeKind.ZodString, + coerce: (params == null ? void 0 : params.coerce) ?? false, + ...processCreateParams(params) + }); + }; + ZodNumber = class _ZodNumber extends ZodType { + constructor() { + super(...arguments); + this.min = this.gte; + this.max = this.lte; + this.step = this.multipleOf; + } + _parse(input) { + if (this._def.coerce) { + input.data = Number(input.data); + } + const parsedType = this._getType(input); + if (parsedType !== ZodParsedType.number) { + const ctx2 = this._getOrReturnCtx(input); + addIssueToContext(ctx2, { + code: ZodIssueCode.invalid_type, + expected: ZodParsedType.number, + received: ctx2.parsedType + }); + return INVALID; + } + let ctx = void 0; + const status = new ParseStatus(); + for (const check2 of this._def.checks) { + if (check2.kind === "int") { + if (!util.isInteger(input.data)) { + ctx = this._getOrReturnCtx(input, ctx); + addIssueToContext(ctx, { + code: ZodIssueCode.invalid_type, + expected: "integer", + received: "float", + message: check2.message + }); + status.dirty(); + } + } else if (check2.kind === "min") { + const tooSmall = check2.inclusive ? input.data < check2.value : input.data <= check2.value; + if (tooSmall) { + ctx = this._getOrReturnCtx(input, ctx); + addIssueToContext(ctx, { + code: ZodIssueCode.too_small, + minimum: check2.value, + type: "number", + inclusive: check2.inclusive, + exact: false, + message: check2.message + }); + status.dirty(); + } + } else if (check2.kind === "max") { + const tooBig = check2.inclusive ? input.data > check2.value : input.data >= check2.value; + if (tooBig) { + ctx = this._getOrReturnCtx(input, ctx); + addIssueToContext(ctx, { + code: ZodIssueCode.too_big, + maximum: check2.value, + type: "number", + inclusive: check2.inclusive, + exact: false, + message: check2.message + }); + status.dirty(); + } + } else if (check2.kind === "multipleOf") { + if (floatSafeRemainder(input.data, check2.value) !== 0) { + ctx = this._getOrReturnCtx(input, ctx); + addIssueToContext(ctx, { + code: ZodIssueCode.not_multiple_of, + multipleOf: check2.value, + message: check2.message + }); + status.dirty(); + } + } else if (check2.kind === "finite") { + if (!Number.isFinite(input.data)) { + ctx = this._getOrReturnCtx(input, ctx); + addIssueToContext(ctx, { + code: ZodIssueCode.not_finite, + message: check2.message + }); + status.dirty(); + } + } else { + util.assertNever(check2); + } + } + return { status: status.value, value: input.data }; + } + gte(value, message) { + return this.setLimit("min", value, true, errorUtil.toString(message)); + } + gt(value, message) { + return this.setLimit("min", value, false, errorUtil.toString(message)); + } + lte(value, message) { + return this.setLimit("max", value, true, errorUtil.toString(message)); + } + lt(value, message) { + return this.setLimit("max", value, false, errorUtil.toString(message)); + } + setLimit(kind, value, inclusive, message) { + return new _ZodNumber({ + ...this._def, + checks: [ + ...this._def.checks, + { + kind, + value, + inclusive, + message: errorUtil.toString(message) + } + ] + }); + } + _addCheck(check2) { + return new _ZodNumber({ + ...this._def, + checks: [...this._def.checks, check2] + }); + } + int(message) { + return this._addCheck({ + kind: "int", + message: errorUtil.toString(message) + }); + } + positive(message) { + return this._addCheck({ + kind: "min", + value: 0, + inclusive: false, + message: errorUtil.toString(message) + }); + } + negative(message) { + return this._addCheck({ + kind: "max", + value: 0, + inclusive: false, + message: errorUtil.toString(message) + }); + } + nonpositive(message) { + return this._addCheck({ + kind: "max", + value: 0, + inclusive: true, + message: errorUtil.toString(message) + }); + } + nonnegative(message) { + return this._addCheck({ + kind: "min", + value: 0, + inclusive: true, + message: errorUtil.toString(message) + }); + } + multipleOf(value, message) { + return this._addCheck({ + kind: "multipleOf", + value, + message: errorUtil.toString(message) + }); + } + finite(message) { + return this._addCheck({ + kind: "finite", + message: errorUtil.toString(message) + }); + } + safe(message) { + return this._addCheck({ + kind: "min", + inclusive: true, + value: Number.MIN_SAFE_INTEGER, + message: errorUtil.toString(message) + })._addCheck({ + kind: "max", + inclusive: true, + value: Number.MAX_SAFE_INTEGER, + message: errorUtil.toString(message) + }); + } + get minValue() { + let min = null; + for (const ch of this._def.checks) { + if (ch.kind === "min") { + if (min === null || ch.value > min) + min = ch.value; + } + } + return min; + } + get maxValue() { + let max = null; + for (const ch of this._def.checks) { + if (ch.kind === "max") { + if (max === null || ch.value < max) + max = ch.value; + } + } + return max; + } + get isInt() { + return !!this._def.checks.find((ch) => ch.kind === "int" || ch.kind === "multipleOf" && util.isInteger(ch.value)); + } + get isFinite() { + let max = null; + let min = null; + for (const ch of this._def.checks) { + if (ch.kind === "finite" || ch.kind === "int" || ch.kind === "multipleOf") { + return true; + } else if (ch.kind === "min") { + if (min === null || ch.value > min) + min = ch.value; + } else if (ch.kind === "max") { + if (max === null || ch.value < max) + max = ch.value; + } + } + return Number.isFinite(min) && Number.isFinite(max); + } + }; + ZodNumber.create = (params) => { + return new ZodNumber({ + checks: [], + typeName: ZodFirstPartyTypeKind.ZodNumber, + coerce: (params == null ? void 0 : params.coerce) || false, + ...processCreateParams(params) + }); + }; + ZodBigInt = class _ZodBigInt extends ZodType { + constructor() { + super(...arguments); + this.min = this.gte; + this.max = this.lte; + } + _parse(input) { + if (this._def.coerce) { + try { + input.data = BigInt(input.data); + } catch { + return this._getInvalidInput(input); + } + } + const parsedType = this._getType(input); + if (parsedType !== ZodParsedType.bigint) { + return this._getInvalidInput(input); + } + let ctx = void 0; + const status = new ParseStatus(); + for (const check2 of this._def.checks) { + if (check2.kind === "min") { + const tooSmall = check2.inclusive ? input.data < check2.value : input.data <= check2.value; + if (tooSmall) { + ctx = this._getOrReturnCtx(input, ctx); + addIssueToContext(ctx, { + code: ZodIssueCode.too_small, + type: "bigint", + minimum: check2.value, + inclusive: check2.inclusive, + message: check2.message + }); + status.dirty(); + } + } else if (check2.kind === "max") { + const tooBig = check2.inclusive ? input.data > check2.value : input.data >= check2.value; + if (tooBig) { + ctx = this._getOrReturnCtx(input, ctx); + addIssueToContext(ctx, { + code: ZodIssueCode.too_big, + type: "bigint", + maximum: check2.value, + inclusive: check2.inclusive, + message: check2.message + }); + status.dirty(); + } + } else if (check2.kind === "multipleOf") { + if (input.data % check2.value !== BigInt(0)) { + ctx = this._getOrReturnCtx(input, ctx); + addIssueToContext(ctx, { + code: ZodIssueCode.not_multiple_of, + multipleOf: check2.value, + message: check2.message + }); + status.dirty(); + } + } else { + util.assertNever(check2); + } + } + return { status: status.value, value: input.data }; + } + _getInvalidInput(input) { + const ctx = this._getOrReturnCtx(input); + addIssueToContext(ctx, { + code: ZodIssueCode.invalid_type, + expected: ZodParsedType.bigint, + received: ctx.parsedType + }); + return INVALID; + } + gte(value, message) { + return this.setLimit("min", value, true, errorUtil.toString(message)); + } + gt(value, message) { + return this.setLimit("min", value, false, errorUtil.toString(message)); + } + lte(value, message) { + return this.setLimit("max", value, true, errorUtil.toString(message)); + } + lt(value, message) { + return this.setLimit("max", value, false, errorUtil.toString(message)); + } + setLimit(kind, value, inclusive, message) { + return new _ZodBigInt({ + ...this._def, + checks: [ + ...this._def.checks, + { + kind, + value, + inclusive, + message: errorUtil.toString(message) + } + ] + }); + } + _addCheck(check2) { + return new _ZodBigInt({ + ...this._def, + checks: [...this._def.checks, check2] + }); + } + positive(message) { + return this._addCheck({ + kind: "min", + value: BigInt(0), + inclusive: false, + message: errorUtil.toString(message) + }); + } + negative(message) { + return this._addCheck({ + kind: "max", + value: BigInt(0), + inclusive: false, + message: errorUtil.toString(message) + }); + } + nonpositive(message) { + return this._addCheck({ + kind: "max", + value: BigInt(0), + inclusive: true, + message: errorUtil.toString(message) + }); + } + nonnegative(message) { + return this._addCheck({ + kind: "min", + value: BigInt(0), + inclusive: true, + message: errorUtil.toString(message) + }); + } + multipleOf(value, message) { + return this._addCheck({ + kind: "multipleOf", + value, + message: errorUtil.toString(message) + }); + } + get minValue() { + let min = null; + for (const ch of this._def.checks) { + if (ch.kind === "min") { + if (min === null || ch.value > min) + min = ch.value; + } + } + return min; + } + get maxValue() { + let max = null; + for (const ch of this._def.checks) { + if (ch.kind === "max") { + if (max === null || ch.value < max) + max = ch.value; + } + } + return max; + } + }; + ZodBigInt.create = (params) => { + return new ZodBigInt({ + checks: [], + typeName: ZodFirstPartyTypeKind.ZodBigInt, + coerce: (params == null ? void 0 : params.coerce) ?? false, + ...processCreateParams(params) + }); + }; + ZodBoolean = class extends ZodType { + _parse(input) { + if (this._def.coerce) { + input.data = Boolean(input.data); + } + const parsedType = this._getType(input); + if (parsedType !== ZodParsedType.boolean) { + const ctx = this._getOrReturnCtx(input); + addIssueToContext(ctx, { + code: ZodIssueCode.invalid_type, + expected: ZodParsedType.boolean, + received: ctx.parsedType + }); + return INVALID; + } + return OK(input.data); + } + }; + ZodBoolean.create = (params) => { + return new ZodBoolean({ + typeName: ZodFirstPartyTypeKind.ZodBoolean, + coerce: (params == null ? void 0 : params.coerce) || false, + ...processCreateParams(params) + }); + }; + ZodDate = class _ZodDate extends ZodType { + _parse(input) { + if (this._def.coerce) { + input.data = new Date(input.data); + } + const parsedType = this._getType(input); + if (parsedType !== ZodParsedType.date) { + const ctx2 = this._getOrReturnCtx(input); + addIssueToContext(ctx2, { + code: ZodIssueCode.invalid_type, + expected: ZodParsedType.date, + received: ctx2.parsedType + }); + return INVALID; + } + if (Number.isNaN(input.data.getTime())) { + const ctx2 = this._getOrReturnCtx(input); + addIssueToContext(ctx2, { + code: ZodIssueCode.invalid_date + }); + return INVALID; + } + const status = new ParseStatus(); + let ctx = void 0; + for (const check2 of this._def.checks) { + if (check2.kind === "min") { + if (input.data.getTime() < check2.value) { + ctx = this._getOrReturnCtx(input, ctx); + addIssueToContext(ctx, { + code: ZodIssueCode.too_small, + message: check2.message, + inclusive: true, + exact: false, + minimum: check2.value, + type: "date" + }); + status.dirty(); + } + } else if (check2.kind === "max") { + if (input.data.getTime() > check2.value) { + ctx = this._getOrReturnCtx(input, ctx); + addIssueToContext(ctx, { + code: ZodIssueCode.too_big, + message: check2.message, + inclusive: true, + exact: false, + maximum: check2.value, + type: "date" + }); + status.dirty(); + } + } else { + util.assertNever(check2); + } + } + return { + status: status.value, + value: new Date(input.data.getTime()) + }; + } + _addCheck(check2) { + return new _ZodDate({ + ...this._def, + checks: [...this._def.checks, check2] + }); + } + min(minDate, message) { + return this._addCheck({ + kind: "min", + value: minDate.getTime(), + message: errorUtil.toString(message) + }); + } + max(maxDate, message) { + return this._addCheck({ + kind: "max", + value: maxDate.getTime(), + message: errorUtil.toString(message) + }); + } + get minDate() { + let min = null; + for (const ch of this._def.checks) { + if (ch.kind === "min") { + if (min === null || ch.value > min) + min = ch.value; + } + } + return min != null ? new Date(min) : null; + } + get maxDate() { + let max = null; + for (const ch of this._def.checks) { + if (ch.kind === "max") { + if (max === null || ch.value < max) + max = ch.value; + } + } + return max != null ? new Date(max) : null; + } + }; + ZodDate.create = (params) => { + return new ZodDate({ + checks: [], + coerce: (params == null ? void 0 : params.coerce) || false, + typeName: ZodFirstPartyTypeKind.ZodDate, + ...processCreateParams(params) + }); + }; + ZodSymbol = class extends ZodType { + _parse(input) { + const parsedType = this._getType(input); + if (parsedType !== ZodParsedType.symbol) { + const ctx = this._getOrReturnCtx(input); + addIssueToContext(ctx, { + code: ZodIssueCode.invalid_type, + expected: ZodParsedType.symbol, + received: ctx.parsedType + }); + return INVALID; + } + return OK(input.data); + } + }; + ZodSymbol.create = (params) => { + return new ZodSymbol({ + typeName: ZodFirstPartyTypeKind.ZodSymbol, + ...processCreateParams(params) + }); + }; + ZodUndefined = class extends ZodType { + _parse(input) { + const parsedType = this._getType(input); + if (parsedType !== ZodParsedType.undefined) { + const ctx = this._getOrReturnCtx(input); + addIssueToContext(ctx, { + code: ZodIssueCode.invalid_type, + expected: ZodParsedType.undefined, + received: ctx.parsedType + }); + return INVALID; + } + return OK(input.data); + } + }; + ZodUndefined.create = (params) => { + return new ZodUndefined({ + typeName: ZodFirstPartyTypeKind.ZodUndefined, + ...processCreateParams(params) + }); + }; + ZodNull = class extends ZodType { + _parse(input) { + const parsedType = this._getType(input); + if (parsedType !== ZodParsedType.null) { + const ctx = this._getOrReturnCtx(input); + addIssueToContext(ctx, { + code: ZodIssueCode.invalid_type, + expected: ZodParsedType.null, + received: ctx.parsedType + }); + return INVALID; + } + return OK(input.data); + } + }; + ZodNull.create = (params) => { + return new ZodNull({ + typeName: ZodFirstPartyTypeKind.ZodNull, + ...processCreateParams(params) + }); + }; + ZodAny = class extends ZodType { + constructor() { + super(...arguments); + this._any = true; + } + _parse(input) { + return OK(input.data); + } + }; + ZodAny.create = (params) => { + return new ZodAny({ + typeName: ZodFirstPartyTypeKind.ZodAny, + ...processCreateParams(params) + }); + }; + ZodUnknown = class extends ZodType { + constructor() { + super(...arguments); + this._unknown = true; + } + _parse(input) { + return OK(input.data); + } + }; + ZodUnknown.create = (params) => { + return new ZodUnknown({ + typeName: ZodFirstPartyTypeKind.ZodUnknown, + ...processCreateParams(params) + }); + }; + ZodNever = class extends ZodType { + _parse(input) { + const ctx = this._getOrReturnCtx(input); + addIssueToContext(ctx, { + code: ZodIssueCode.invalid_type, + expected: ZodParsedType.never, + received: ctx.parsedType + }); + return INVALID; + } + }; + ZodNever.create = (params) => { + return new ZodNever({ + typeName: ZodFirstPartyTypeKind.ZodNever, + ...processCreateParams(params) + }); + }; + ZodVoid = class extends ZodType { + _parse(input) { + const parsedType = this._getType(input); + if (parsedType !== ZodParsedType.undefined) { + const ctx = this._getOrReturnCtx(input); + addIssueToContext(ctx, { + code: ZodIssueCode.invalid_type, + expected: ZodParsedType.void, + received: ctx.parsedType + }); + return INVALID; + } + return OK(input.data); + } + }; + ZodVoid.create = (params) => { + return new ZodVoid({ + typeName: ZodFirstPartyTypeKind.ZodVoid, + ...processCreateParams(params) + }); + }; + ZodArray = class _ZodArray extends ZodType { + _parse(input) { + const { ctx, status } = this._processInputParams(input); + const def = this._def; + if (ctx.parsedType !== ZodParsedType.array) { + addIssueToContext(ctx, { + code: ZodIssueCode.invalid_type, + expected: ZodParsedType.array, + received: ctx.parsedType + }); + return INVALID; + } + if (def.exactLength !== null) { + const tooBig = ctx.data.length > def.exactLength.value; + const tooSmall = ctx.data.length < def.exactLength.value; + if (tooBig || tooSmall) { + addIssueToContext(ctx, { + code: tooBig ? ZodIssueCode.too_big : ZodIssueCode.too_small, + minimum: tooSmall ? def.exactLength.value : void 0, + maximum: tooBig ? def.exactLength.value : void 0, + type: "array", + inclusive: true, + exact: true, + message: def.exactLength.message + }); + status.dirty(); + } + } + if (def.minLength !== null) { + if (ctx.data.length < def.minLength.value) { + addIssueToContext(ctx, { + code: ZodIssueCode.too_small, + minimum: def.minLength.value, + type: "array", + inclusive: true, + exact: false, + message: def.minLength.message + }); + status.dirty(); + } + } + if (def.maxLength !== null) { + if (ctx.data.length > def.maxLength.value) { + addIssueToContext(ctx, { + code: ZodIssueCode.too_big, + maximum: def.maxLength.value, + type: "array", + inclusive: true, + exact: false, + message: def.maxLength.message + }); + status.dirty(); + } + } + if (ctx.common.async) { + return Promise.all([...ctx.data].map((item, i4) => { + return def.type._parseAsync(new ParseInputLazyPath(ctx, item, ctx.path, i4)); + })).then((result2) => { + return ParseStatus.mergeArray(status, result2); + }); + } + const result = [...ctx.data].map((item, i4) => { + return def.type._parseSync(new ParseInputLazyPath(ctx, item, ctx.path, i4)); + }); + return ParseStatus.mergeArray(status, result); + } + get element() { + return this._def.type; + } + min(minLength, message) { + return new _ZodArray({ + ...this._def, + minLength: { value: minLength, message: errorUtil.toString(message) } + }); + } + max(maxLength, message) { + return new _ZodArray({ + ...this._def, + maxLength: { value: maxLength, message: errorUtil.toString(message) } + }); + } + length(len, message) { + return new _ZodArray({ + ...this._def, + exactLength: { value: len, message: errorUtil.toString(message) } + }); + } + nonempty(message) { + return this.min(1, message); + } + }; + ZodArray.create = (schema6, params) => { + return new ZodArray({ + type: schema6, + minLength: null, + maxLength: null, + exactLength: null, + typeName: ZodFirstPartyTypeKind.ZodArray, + ...processCreateParams(params) + }); + }; + ZodObject = class _ZodObject extends ZodType { + constructor() { + super(...arguments); + this._cached = null; + this.nonstrict = this.passthrough; + this.augment = this.extend; + } + _getCached() { + if (this._cached !== null) + return this._cached; + const shape = this._def.shape(); + const keys = util.objectKeys(shape); + this._cached = { shape, keys }; + return this._cached; + } + _parse(input) { + const parsedType = this._getType(input); + if (parsedType !== ZodParsedType.object) { + const ctx2 = this._getOrReturnCtx(input); + addIssueToContext(ctx2, { + code: ZodIssueCode.invalid_type, + expected: ZodParsedType.object, + received: ctx2.parsedType + }); + return INVALID; + } + const { status, ctx } = this._processInputParams(input); + const { shape, keys: shapeKeys } = this._getCached(); + const extraKeys = []; + if (!(this._def.catchall instanceof ZodNever && this._def.unknownKeys === "strip")) { + for (const key in ctx.data) { + if (!shapeKeys.includes(key)) { + extraKeys.push(key); + } + } + } + const pairs = []; + for (const key of shapeKeys) { + const keyValidator = shape[key]; + const value = ctx.data[key]; + pairs.push({ + key: { status: "valid", value: key }, + value: keyValidator._parse(new ParseInputLazyPath(ctx, value, ctx.path, key)), + alwaysSet: key in ctx.data + }); + } + if (this._def.catchall instanceof ZodNever) { + const unknownKeys = this._def.unknownKeys; + if (unknownKeys === "passthrough") { + for (const key of extraKeys) { + pairs.push({ + key: { status: "valid", value: key }, + value: { status: "valid", value: ctx.data[key] } + }); + } + } else if (unknownKeys === "strict") { + if (extraKeys.length > 0) { + addIssueToContext(ctx, { + code: ZodIssueCode.unrecognized_keys, + keys: extraKeys + }); + status.dirty(); + } + } else if (unknownKeys === "strip") { + } else { + throw new Error(`Internal ZodObject error: invalid unknownKeys value.`); + } + } else { + const catchall = this._def.catchall; + for (const key of extraKeys) { + const value = ctx.data[key]; + pairs.push({ + key: { status: "valid", value: key }, + value: catchall._parse( + new ParseInputLazyPath(ctx, value, ctx.path, key) + //, ctx.child(key), value, getParsedType(value) + ), + alwaysSet: key in ctx.data + }); + } + } + if (ctx.common.async) { + return Promise.resolve().then(async () => { + const syncPairs = []; + for (const pair of pairs) { + const key = await pair.key; + const value = await pair.value; + syncPairs.push({ + key, + value, + alwaysSet: pair.alwaysSet + }); + } + return syncPairs; + }).then((syncPairs) => { + return ParseStatus.mergeObjectSync(status, syncPairs); + }); + } else { + return ParseStatus.mergeObjectSync(status, pairs); + } + } + get shape() { + return this._def.shape(); + } + strict(message) { + errorUtil.errToObj; + return new _ZodObject({ + ...this._def, + unknownKeys: "strict", + ...message !== void 0 ? { + errorMap: (issue, ctx) => { + var _a2, _b; + const defaultError = ((_b = (_a2 = this._def).errorMap) == null ? void 0 : _b.call(_a2, issue, ctx).message) ?? ctx.defaultError; + if (issue.code === "unrecognized_keys") + return { + message: errorUtil.errToObj(message).message ?? defaultError + }; + return { + message: defaultError + }; + } + } : {} + }); + } + strip() { + return new _ZodObject({ + ...this._def, + unknownKeys: "strip" + }); + } + passthrough() { + return new _ZodObject({ + ...this._def, + unknownKeys: "passthrough" + }); + } + // const AugmentFactory = + // (def: Def) => + // ( + // augmentation: Augmentation + // ): ZodObject< + // extendShape, Augmentation>, + // Def["unknownKeys"], + // Def["catchall"] + // > => { + // return new ZodObject({ + // ...def, + // shape: () => ({ + // ...def.shape(), + // ...augmentation, + // }), + // }) as any; + // }; + extend(augmentation) { + return new _ZodObject({ + ...this._def, + shape: () => ({ + ...this._def.shape(), + ...augmentation + }) + }); + } + /** + * Prior to zod@1.0.12 there was a bug in the + * inferred type of merged objects. Please + * upgrade if you are experiencing issues. + */ + merge(merging) { + const merged = new _ZodObject({ + unknownKeys: merging._def.unknownKeys, + catchall: merging._def.catchall, + shape: () => ({ + ...this._def.shape(), + ...merging._def.shape() + }), + typeName: ZodFirstPartyTypeKind.ZodObject + }); + return merged; + } + // merge< + // Incoming extends AnyZodObject, + // Augmentation extends Incoming["shape"], + // NewOutput extends { + // [k in keyof Augmentation | keyof Output]: k extends keyof Augmentation + // ? Augmentation[k]["_output"] + // : k extends keyof Output + // ? Output[k] + // : never; + // }, + // NewInput extends { + // [k in keyof Augmentation | keyof Input]: k extends keyof Augmentation + // ? Augmentation[k]["_input"] + // : k extends keyof Input + // ? Input[k] + // : never; + // } + // >( + // merging: Incoming + // ): ZodObject< + // extendShape>, + // Incoming["_def"]["unknownKeys"], + // Incoming["_def"]["catchall"], + // NewOutput, + // NewInput + // > { + // const merged: any = new ZodObject({ + // unknownKeys: merging._def.unknownKeys, + // catchall: merging._def.catchall, + // shape: () => + // objectUtil.mergeShapes(this._def.shape(), merging._def.shape()), + // typeName: ZodFirstPartyTypeKind.ZodObject, + // }) as any; + // return merged; + // } + setKey(key, schema6) { + return this.augment({ [key]: schema6 }); + } + // merge( + // merging: Incoming + // ): //ZodObject = (merging) => { + // ZodObject< + // extendShape>, + // Incoming["_def"]["unknownKeys"], + // Incoming["_def"]["catchall"] + // > { + // // const mergedShape = objectUtil.mergeShapes( + // // this._def.shape(), + // // merging._def.shape() + // // ); + // const merged: any = new ZodObject({ + // unknownKeys: merging._def.unknownKeys, + // catchall: merging._def.catchall, + // shape: () => + // objectUtil.mergeShapes(this._def.shape(), merging._def.shape()), + // typeName: ZodFirstPartyTypeKind.ZodObject, + // }) as any; + // return merged; + // } + catchall(index6) { + return new _ZodObject({ + ...this._def, + catchall: index6 + }); + } + pick(mask) { + const shape = {}; + for (const key of util.objectKeys(mask)) { + if (mask[key] && this.shape[key]) { + shape[key] = this.shape[key]; + } + } + return new _ZodObject({ + ...this._def, + shape: () => shape + }); + } + omit(mask) { + const shape = {}; + for (const key of util.objectKeys(this.shape)) { + if (!mask[key]) { + shape[key] = this.shape[key]; + } + } + return new _ZodObject({ + ...this._def, + shape: () => shape + }); + } + /** + * @deprecated + */ + deepPartial() { + return deepPartialify(this); + } + partial(mask) { + const newShape = {}; + for (const key of util.objectKeys(this.shape)) { + const fieldSchema = this.shape[key]; + if (mask && !mask[key]) { + newShape[key] = fieldSchema; + } else { + newShape[key] = fieldSchema.optional(); + } + } + return new _ZodObject({ + ...this._def, + shape: () => newShape + }); + } + required(mask) { + const newShape = {}; + for (const key of util.objectKeys(this.shape)) { + if (mask && !mask[key]) { + newShape[key] = this.shape[key]; + } else { + const fieldSchema = this.shape[key]; + let newField = fieldSchema; + while (newField instanceof ZodOptional) { + newField = newField._def.innerType; + } + newShape[key] = newField; + } + } + return new _ZodObject({ + ...this._def, + shape: () => newShape + }); + } + keyof() { + return createZodEnum(util.objectKeys(this.shape)); + } + }; + ZodObject.create = (shape, params) => { + return new ZodObject({ + shape: () => shape, + unknownKeys: "strip", + catchall: ZodNever.create(), + typeName: ZodFirstPartyTypeKind.ZodObject, + ...processCreateParams(params) + }); + }; + ZodObject.strictCreate = (shape, params) => { + return new ZodObject({ + shape: () => shape, + unknownKeys: "strict", + catchall: ZodNever.create(), + typeName: ZodFirstPartyTypeKind.ZodObject, + ...processCreateParams(params) + }); + }; + ZodObject.lazycreate = (shape, params) => { + return new ZodObject({ + shape, + unknownKeys: "strip", + catchall: ZodNever.create(), + typeName: ZodFirstPartyTypeKind.ZodObject, + ...processCreateParams(params) + }); + }; + ZodUnion = class extends ZodType { + _parse(input) { + const { ctx } = this._processInputParams(input); + const options = this._def.options; + function handleResults(results) { + for (const result of results) { + if (result.result.status === "valid") { + return result.result; + } + } + for (const result of results) { + if (result.result.status === "dirty") { + ctx.common.issues.push(...result.ctx.common.issues); + return result.result; + } + } + const unionErrors = results.map((result) => new ZodError(result.ctx.common.issues)); + addIssueToContext(ctx, { + code: ZodIssueCode.invalid_union, + unionErrors + }); + return INVALID; + } + if (ctx.common.async) { + return Promise.all(options.map(async (option) => { + const childCtx = { + ...ctx, + common: { + ...ctx.common, + issues: [] + }, + parent: null + }; + return { + result: await option._parseAsync({ + data: ctx.data, + path: ctx.path, + parent: childCtx + }), + ctx: childCtx + }; + })).then(handleResults); + } else { + let dirty = void 0; + const issues = []; + for (const option of options) { + const childCtx = { + ...ctx, + common: { + ...ctx.common, + issues: [] + }, + parent: null + }; + const result = option._parseSync({ + data: ctx.data, + path: ctx.path, + parent: childCtx + }); + if (result.status === "valid") { + return result; + } else if (result.status === "dirty" && !dirty) { + dirty = { result, ctx: childCtx }; + } + if (childCtx.common.issues.length) { + issues.push(childCtx.common.issues); + } + } + if (dirty) { + ctx.common.issues.push(...dirty.ctx.common.issues); + return dirty.result; + } + const unionErrors = issues.map((issues2) => new ZodError(issues2)); + addIssueToContext(ctx, { + code: ZodIssueCode.invalid_union, + unionErrors + }); + return INVALID; + } + } + get options() { + return this._def.options; + } + }; + ZodUnion.create = (types3, params) => { + return new ZodUnion({ + options: types3, + typeName: ZodFirstPartyTypeKind.ZodUnion, + ...processCreateParams(params) + }); + }; + getDiscriminator = (type) => { + if (type instanceof ZodLazy) { + return getDiscriminator(type.schema); + } else if (type instanceof ZodEffects) { + return getDiscriminator(type.innerType()); + } else if (type instanceof ZodLiteral) { + return [type.value]; + } else if (type instanceof ZodEnum) { + return type.options; + } else if (type instanceof ZodNativeEnum) { + return util.objectValues(type.enum); + } else if (type instanceof ZodDefault) { + return getDiscriminator(type._def.innerType); + } else if (type instanceof ZodUndefined) { + return [void 0]; + } else if (type instanceof ZodNull) { + return [null]; + } else if (type instanceof ZodOptional) { + return [void 0, ...getDiscriminator(type.unwrap())]; + } else if (type instanceof ZodNullable) { + return [null, ...getDiscriminator(type.unwrap())]; + } else if (type instanceof ZodBranded) { + return getDiscriminator(type.unwrap()); + } else if (type instanceof ZodReadonly) { + return getDiscriminator(type.unwrap()); + } else if (type instanceof ZodCatch) { + return getDiscriminator(type._def.innerType); + } else { + return []; + } + }; + ZodDiscriminatedUnion = class _ZodDiscriminatedUnion extends ZodType { + _parse(input) { + const { ctx } = this._processInputParams(input); + if (ctx.parsedType !== ZodParsedType.object) { + addIssueToContext(ctx, { + code: ZodIssueCode.invalid_type, + expected: ZodParsedType.object, + received: ctx.parsedType + }); + return INVALID; + } + const discriminator = this.discriminator; + const discriminatorValue = ctx.data[discriminator]; + const option = this.optionsMap.get(discriminatorValue); + if (!option) { + addIssueToContext(ctx, { + code: ZodIssueCode.invalid_union_discriminator, + options: Array.from(this.optionsMap.keys()), + path: [discriminator] + }); + return INVALID; + } + if (ctx.common.async) { + return option._parseAsync({ + data: ctx.data, + path: ctx.path, + parent: ctx + }); + } else { + return option._parseSync({ + data: ctx.data, + path: ctx.path, + parent: ctx + }); + } + } + get discriminator() { + return this._def.discriminator; + } + get options() { + return this._def.options; + } + get optionsMap() { + return this._def.optionsMap; + } + /** + * The constructor of the discriminated union schema. Its behaviour is very similar to that of the normal z.union() constructor. + * However, it only allows a union of objects, all of which need to share a discriminator property. This property must + * have a different value for each object in the union. + * @param discriminator the name of the discriminator property + * @param types an array of object schemas + * @param params + */ + static create(discriminator, options, params) { + const optionsMap = /* @__PURE__ */ new Map(); + for (const type of options) { + const discriminatorValues = getDiscriminator(type.shape[discriminator]); + if (!discriminatorValues.length) { + throw new Error(`A discriminator value for key \`${discriminator}\` could not be extracted from all schema options`); + } + for (const value of discriminatorValues) { + if (optionsMap.has(value)) { + throw new Error(`Discriminator property ${String(discriminator)} has duplicate value ${String(value)}`); + } + optionsMap.set(value, type); + } + } + return new _ZodDiscriminatedUnion({ + typeName: ZodFirstPartyTypeKind.ZodDiscriminatedUnion, + discriminator, + options, + optionsMap, + ...processCreateParams(params) + }); + } + }; + ZodIntersection = class extends ZodType { + _parse(input) { + const { status, ctx } = this._processInputParams(input); + const handleParsed = (parsedLeft, parsedRight) => { + if (isAborted(parsedLeft) || isAborted(parsedRight)) { + return INVALID; + } + const merged = mergeValues(parsedLeft.value, parsedRight.value); + if (!merged.valid) { + addIssueToContext(ctx, { + code: ZodIssueCode.invalid_intersection_types + }); + return INVALID; + } + if (isDirty(parsedLeft) || isDirty(parsedRight)) { + status.dirty(); + } + return { status: status.value, value: merged.data }; + }; + if (ctx.common.async) { + return Promise.all([ + this._def.left._parseAsync({ + data: ctx.data, + path: ctx.path, + parent: ctx + }), + this._def.right._parseAsync({ + data: ctx.data, + path: ctx.path, + parent: ctx + }) + ]).then(([left, right]) => handleParsed(left, right)); + } else { + return handleParsed(this._def.left._parseSync({ + data: ctx.data, + path: ctx.path, + parent: ctx + }), this._def.right._parseSync({ + data: ctx.data, + path: ctx.path, + parent: ctx + })); + } + } + }; + ZodIntersection.create = (left, right, params) => { + return new ZodIntersection({ + left, + right, + typeName: ZodFirstPartyTypeKind.ZodIntersection, + ...processCreateParams(params) + }); + }; + ZodTuple = class _ZodTuple extends ZodType { + _parse(input) { + const { status, ctx } = this._processInputParams(input); + if (ctx.parsedType !== ZodParsedType.array) { + addIssueToContext(ctx, { + code: ZodIssueCode.invalid_type, + expected: ZodParsedType.array, + received: ctx.parsedType + }); + return INVALID; + } + if (ctx.data.length < this._def.items.length) { + addIssueToContext(ctx, { + code: ZodIssueCode.too_small, + minimum: this._def.items.length, + inclusive: true, + exact: false, + type: "array" + }); + return INVALID; + } + const rest = this._def.rest; + if (!rest && ctx.data.length > this._def.items.length) { + addIssueToContext(ctx, { + code: ZodIssueCode.too_big, + maximum: this._def.items.length, + inclusive: true, + exact: false, + type: "array" + }); + status.dirty(); + } + const items = [...ctx.data].map((item, itemIndex) => { + const schema6 = this._def.items[itemIndex] || this._def.rest; + if (!schema6) + return null; + return schema6._parse(new ParseInputLazyPath(ctx, item, ctx.path, itemIndex)); + }).filter((x4) => !!x4); + if (ctx.common.async) { + return Promise.all(items).then((results) => { + return ParseStatus.mergeArray(status, results); + }); + } else { + return ParseStatus.mergeArray(status, items); + } + } + get items() { + return this._def.items; + } + rest(rest) { + return new _ZodTuple({ + ...this._def, + rest + }); + } + }; + ZodTuple.create = (schemas, params) => { + if (!Array.isArray(schemas)) { + throw new Error("You must pass an array of schemas to z.tuple([ ... ])"); + } + return new ZodTuple({ + items: schemas, + typeName: ZodFirstPartyTypeKind.ZodTuple, + rest: null, + ...processCreateParams(params) + }); + }; + ZodRecord = class _ZodRecord extends ZodType { + get keySchema() { + return this._def.keyType; + } + get valueSchema() { + return this._def.valueType; + } + _parse(input) { + const { status, ctx } = this._processInputParams(input); + if (ctx.parsedType !== ZodParsedType.object) { + addIssueToContext(ctx, { + code: ZodIssueCode.invalid_type, + expected: ZodParsedType.object, + received: ctx.parsedType + }); + return INVALID; + } + const pairs = []; + const keyType = this._def.keyType; + const valueType = this._def.valueType; + for (const key in ctx.data) { + pairs.push({ + key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, key)), + value: valueType._parse(new ParseInputLazyPath(ctx, ctx.data[key], ctx.path, key)), + alwaysSet: key in ctx.data + }); + } + if (ctx.common.async) { + return ParseStatus.mergeObjectAsync(status, pairs); + } else { + return ParseStatus.mergeObjectSync(status, pairs); + } + } + get element() { + return this._def.valueType; + } + static create(first, second, third) { + if (second instanceof ZodType) { + return new _ZodRecord({ + keyType: first, + valueType: second, + typeName: ZodFirstPartyTypeKind.ZodRecord, + ...processCreateParams(third) + }); + } + return new _ZodRecord({ + keyType: ZodString.create(), + valueType: first, + typeName: ZodFirstPartyTypeKind.ZodRecord, + ...processCreateParams(second) + }); + } + }; + ZodMap = class extends ZodType { + get keySchema() { + return this._def.keyType; + } + get valueSchema() { + return this._def.valueType; + } + _parse(input) { + const { status, ctx } = this._processInputParams(input); + if (ctx.parsedType !== ZodParsedType.map) { + addIssueToContext(ctx, { + code: ZodIssueCode.invalid_type, + expected: ZodParsedType.map, + received: ctx.parsedType + }); + return INVALID; + } + const keyType = this._def.keyType; + const valueType = this._def.valueType; + const pairs = [...ctx.data.entries()].map(([key, value], index6) => { + return { + key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, [index6, "key"])), + value: valueType._parse(new ParseInputLazyPath(ctx, value, ctx.path, [index6, "value"])) + }; + }); + if (ctx.common.async) { + const finalMap = /* @__PURE__ */ new Map(); + return Promise.resolve().then(async () => { + for (const pair of pairs) { + const key = await pair.key; + const value = await pair.value; + if (key.status === "aborted" || value.status === "aborted") { + return INVALID; + } + if (key.status === "dirty" || value.status === "dirty") { + status.dirty(); + } + finalMap.set(key.value, value.value); + } + return { status: status.value, value: finalMap }; + }); + } else { + const finalMap = /* @__PURE__ */ new Map(); + for (const pair of pairs) { + const key = pair.key; + const value = pair.value; + if (key.status === "aborted" || value.status === "aborted") { + return INVALID; + } + if (key.status === "dirty" || value.status === "dirty") { + status.dirty(); + } + finalMap.set(key.value, value.value); + } + return { status: status.value, value: finalMap }; + } + } + }; + ZodMap.create = (keyType, valueType, params) => { + return new ZodMap({ + valueType, + keyType, + typeName: ZodFirstPartyTypeKind.ZodMap, + ...processCreateParams(params) + }); + }; + ZodSet = class _ZodSet extends ZodType { + _parse(input) { + const { status, ctx } = this._processInputParams(input); + if (ctx.parsedType !== ZodParsedType.set) { + addIssueToContext(ctx, { + code: ZodIssueCode.invalid_type, + expected: ZodParsedType.set, + received: ctx.parsedType + }); + return INVALID; + } + const def = this._def; + if (def.minSize !== null) { + if (ctx.data.size < def.minSize.value) { + addIssueToContext(ctx, { + code: ZodIssueCode.too_small, + minimum: def.minSize.value, + type: "set", + inclusive: true, + exact: false, + message: def.minSize.message + }); + status.dirty(); + } + } + if (def.maxSize !== null) { + if (ctx.data.size > def.maxSize.value) { + addIssueToContext(ctx, { + code: ZodIssueCode.too_big, + maximum: def.maxSize.value, + type: "set", + inclusive: true, + exact: false, + message: def.maxSize.message + }); + status.dirty(); + } + } + const valueType = this._def.valueType; + function finalizeSet(elements2) { + const parsedSet = /* @__PURE__ */ new Set(); + for (const element of elements2) { + if (element.status === "aborted") + return INVALID; + if (element.status === "dirty") + status.dirty(); + parsedSet.add(element.value); + } + return { status: status.value, value: parsedSet }; + } + const elements = [...ctx.data.values()].map((item, i4) => valueType._parse(new ParseInputLazyPath(ctx, item, ctx.path, i4))); + if (ctx.common.async) { + return Promise.all(elements).then((elements2) => finalizeSet(elements2)); + } else { + return finalizeSet(elements); + } + } + min(minSize, message) { + return new _ZodSet({ + ...this._def, + minSize: { value: minSize, message: errorUtil.toString(message) } + }); + } + max(maxSize, message) { + return new _ZodSet({ + ...this._def, + maxSize: { value: maxSize, message: errorUtil.toString(message) } + }); + } + size(size, message) { + return this.min(size, message).max(size, message); + } + nonempty(message) { + return this.min(1, message); + } + }; + ZodSet.create = (valueType, params) => { + return new ZodSet({ + valueType, + minSize: null, + maxSize: null, + typeName: ZodFirstPartyTypeKind.ZodSet, + ...processCreateParams(params) + }); + }; + ZodFunction = class _ZodFunction extends ZodType { + constructor() { + super(...arguments); + this.validate = this.implement; + } + _parse(input) { + const { ctx } = this._processInputParams(input); + if (ctx.parsedType !== ZodParsedType.function) { + addIssueToContext(ctx, { + code: ZodIssueCode.invalid_type, + expected: ZodParsedType.function, + received: ctx.parsedType + }); + return INVALID; + } + function makeArgsIssue(args, error2) { + return makeIssue({ + data: args, + path: ctx.path, + errorMaps: [ctx.common.contextualErrorMap, ctx.schemaErrorMap, getErrorMap(), en_default].filter((x4) => !!x4), + issueData: { + code: ZodIssueCode.invalid_arguments, + argumentsError: error2 + } + }); + } + function makeReturnsIssue(returns, error2) { + return makeIssue({ + data: returns, + path: ctx.path, + errorMaps: [ctx.common.contextualErrorMap, ctx.schemaErrorMap, getErrorMap(), en_default].filter((x4) => !!x4), + issueData: { + code: ZodIssueCode.invalid_return_type, + returnTypeError: error2 + } + }); + } + const params = { errorMap: ctx.common.contextualErrorMap }; + const fn = ctx.data; + if (this._def.returns instanceof ZodPromise) { + const me = this; + return OK(async function(...args) { + const error2 = new ZodError([]); + const parsedArgs = await me._def.args.parseAsync(args, params).catch((e4) => { + error2.addIssue(makeArgsIssue(args, e4)); + throw error2; + }); + const result = await Reflect.apply(fn, this, parsedArgs); + const parsedReturns = await me._def.returns._def.type.parseAsync(result, params).catch((e4) => { + error2.addIssue(makeReturnsIssue(result, e4)); + throw error2; + }); + return parsedReturns; + }); + } else { + const me = this; + return OK(function(...args) { + const parsedArgs = me._def.args.safeParse(args, params); + if (!parsedArgs.success) { + throw new ZodError([makeArgsIssue(args, parsedArgs.error)]); + } + const result = Reflect.apply(fn, this, parsedArgs.data); + const parsedReturns = me._def.returns.safeParse(result, params); + if (!parsedReturns.success) { + throw new ZodError([makeReturnsIssue(result, parsedReturns.error)]); + } + return parsedReturns.data; + }); + } + } + parameters() { + return this._def.args; + } + returnType() { + return this._def.returns; + } + args(...items) { + return new _ZodFunction({ + ...this._def, + args: ZodTuple.create(items).rest(ZodUnknown.create()) + }); + } + returns(returnType) { + return new _ZodFunction({ + ...this._def, + returns: returnType + }); + } + implement(func) { + const validatedFunc = this.parse(func); + return validatedFunc; + } + strictImplement(func) { + const validatedFunc = this.parse(func); + return validatedFunc; + } + static create(args, returns, params) { + return new _ZodFunction({ + args: args ? args : ZodTuple.create([]).rest(ZodUnknown.create()), + returns: returns || ZodUnknown.create(), + typeName: ZodFirstPartyTypeKind.ZodFunction, + ...processCreateParams(params) + }); + } + }; + ZodLazy = class extends ZodType { + get schema() { + return this._def.getter(); + } + _parse(input) { + const { ctx } = this._processInputParams(input); + const lazySchema = this._def.getter(); + return lazySchema._parse({ data: ctx.data, path: ctx.path, parent: ctx }); + } + }; + ZodLazy.create = (getter, params) => { + return new ZodLazy({ + getter, + typeName: ZodFirstPartyTypeKind.ZodLazy, + ...processCreateParams(params) + }); + }; + ZodLiteral = class extends ZodType { + _parse(input) { + if (input.data !== this._def.value) { + const ctx = this._getOrReturnCtx(input); + addIssueToContext(ctx, { + received: ctx.data, + code: ZodIssueCode.invalid_literal, + expected: this._def.value + }); + return INVALID; + } + return { status: "valid", value: input.data }; + } + get value() { + return this._def.value; + } + }; + ZodLiteral.create = (value, params) => { + return new ZodLiteral({ + value, + typeName: ZodFirstPartyTypeKind.ZodLiteral, + ...processCreateParams(params) + }); + }; + ZodEnum = class _ZodEnum extends ZodType { + _parse(input) { + if (typeof input.data !== "string") { + const ctx = this._getOrReturnCtx(input); + const expectedValues = this._def.values; + addIssueToContext(ctx, { + expected: util.joinValues(expectedValues), + received: ctx.parsedType, + code: ZodIssueCode.invalid_type + }); + return INVALID; + } + if (!this._cache) { + this._cache = new Set(this._def.values); + } + if (!this._cache.has(input.data)) { + const ctx = this._getOrReturnCtx(input); + const expectedValues = this._def.values; + addIssueToContext(ctx, { + received: ctx.data, + code: ZodIssueCode.invalid_enum_value, + options: expectedValues + }); + return INVALID; + } + return OK(input.data); + } + get options() { + return this._def.values; + } + get enum() { + const enumValues = {}; + for (const val2 of this._def.values) { + enumValues[val2] = val2; + } + return enumValues; + } + get Values() { + const enumValues = {}; + for (const val2 of this._def.values) { + enumValues[val2] = val2; + } + return enumValues; + } + get Enum() { + const enumValues = {}; + for (const val2 of this._def.values) { + enumValues[val2] = val2; + } + return enumValues; + } + extract(values, newDef = this._def) { + return _ZodEnum.create(values, { + ...this._def, + ...newDef + }); + } + exclude(values, newDef = this._def) { + return _ZodEnum.create(this.options.filter((opt) => !values.includes(opt)), { + ...this._def, + ...newDef + }); + } + }; + ZodEnum.create = createZodEnum; + ZodNativeEnum = class extends ZodType { + _parse(input) { + const nativeEnumValues = util.getValidEnumValues(this._def.values); + const ctx = this._getOrReturnCtx(input); + if (ctx.parsedType !== ZodParsedType.string && ctx.parsedType !== ZodParsedType.number) { + const expectedValues = util.objectValues(nativeEnumValues); + addIssueToContext(ctx, { + expected: util.joinValues(expectedValues), + received: ctx.parsedType, + code: ZodIssueCode.invalid_type + }); + return INVALID; + } + if (!this._cache) { + this._cache = new Set(util.getValidEnumValues(this._def.values)); + } + if (!this._cache.has(input.data)) { + const expectedValues = util.objectValues(nativeEnumValues); + addIssueToContext(ctx, { + received: ctx.data, + code: ZodIssueCode.invalid_enum_value, + options: expectedValues + }); + return INVALID; + } + return OK(input.data); + } + get enum() { + return this._def.values; + } + }; + ZodNativeEnum.create = (values, params) => { + return new ZodNativeEnum({ + values, + typeName: ZodFirstPartyTypeKind.ZodNativeEnum, + ...processCreateParams(params) + }); + }; + ZodPromise = class extends ZodType { + unwrap() { + return this._def.type; + } + _parse(input) { + const { ctx } = this._processInputParams(input); + if (ctx.parsedType !== ZodParsedType.promise && ctx.common.async === false) { + addIssueToContext(ctx, { + code: ZodIssueCode.invalid_type, + expected: ZodParsedType.promise, + received: ctx.parsedType + }); + return INVALID; + } + const promisified = ctx.parsedType === ZodParsedType.promise ? ctx.data : Promise.resolve(ctx.data); + return OK(promisified.then((data) => { + return this._def.type.parseAsync(data, { + path: ctx.path, + errorMap: ctx.common.contextualErrorMap + }); + })); + } + }; + ZodPromise.create = (schema6, params) => { + return new ZodPromise({ + type: schema6, + typeName: ZodFirstPartyTypeKind.ZodPromise, + ...processCreateParams(params) + }); + }; + ZodEffects = class extends ZodType { + innerType() { + return this._def.schema; + } + sourceType() { + return this._def.schema._def.typeName === ZodFirstPartyTypeKind.ZodEffects ? this._def.schema.sourceType() : this._def.schema; + } + _parse(input) { + const { status, ctx } = this._processInputParams(input); + const effect = this._def.effect || null; + const checkCtx = { + addIssue: (arg) => { + addIssueToContext(ctx, arg); + if (arg.fatal) { + status.abort(); + } else { + status.dirty(); + } + }, + get path() { + return ctx.path; + } + }; + checkCtx.addIssue = checkCtx.addIssue.bind(checkCtx); + if (effect.type === "preprocess") { + const processed = effect.transform(ctx.data, checkCtx); + if (ctx.common.async) { + return Promise.resolve(processed).then(async (processed2) => { + if (status.value === "aborted") + return INVALID; + const result = await this._def.schema._parseAsync({ + data: processed2, + path: ctx.path, + parent: ctx + }); + if (result.status === "aborted") + return INVALID; + if (result.status === "dirty") + return DIRTY(result.value); + if (status.value === "dirty") + return DIRTY(result.value); + return result; + }); + } else { + if (status.value === "aborted") + return INVALID; + const result = this._def.schema._parseSync({ + data: processed, + path: ctx.path, + parent: ctx + }); + if (result.status === "aborted") + return INVALID; + if (result.status === "dirty") + return DIRTY(result.value); + if (status.value === "dirty") + return DIRTY(result.value); + return result; + } + } + if (effect.type === "refinement") { + const executeRefinement = (acc) => { + const result = effect.refinement(acc, checkCtx); + if (ctx.common.async) { + return Promise.resolve(result); + } + if (result instanceof Promise) { + throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead."); + } + return acc; + }; + if (ctx.common.async === false) { + const inner = this._def.schema._parseSync({ + data: ctx.data, + path: ctx.path, + parent: ctx + }); + if (inner.status === "aborted") + return INVALID; + if (inner.status === "dirty") + status.dirty(); + executeRefinement(inner.value); + return { status: status.value, value: inner.value }; + } else { + return this._def.schema._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx }).then((inner) => { + if (inner.status === "aborted") + return INVALID; + if (inner.status === "dirty") + status.dirty(); + return executeRefinement(inner.value).then(() => { + return { status: status.value, value: inner.value }; + }); + }); + } + } + if (effect.type === "transform") { + if (ctx.common.async === false) { + const base = this._def.schema._parseSync({ + data: ctx.data, + path: ctx.path, + parent: ctx + }); + if (!isValid(base)) + return INVALID; + const result = effect.transform(base.value, checkCtx); + if (result instanceof Promise) { + throw new Error(`Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.`); + } + return { status: status.value, value: result }; + } else { + return this._def.schema._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx }).then((base) => { + if (!isValid(base)) + return INVALID; + return Promise.resolve(effect.transform(base.value, checkCtx)).then((result) => ({ + status: status.value, + value: result + })); + }); + } + } + util.assertNever(effect); + } + }; + ZodEffects.create = (schema6, effect, params) => { + return new ZodEffects({ + schema: schema6, + typeName: ZodFirstPartyTypeKind.ZodEffects, + effect, + ...processCreateParams(params) + }); + }; + ZodEffects.createWithPreprocess = (preprocess, schema6, params) => { + return new ZodEffects({ + schema: schema6, + effect: { type: "preprocess", transform: preprocess }, + typeName: ZodFirstPartyTypeKind.ZodEffects, + ...processCreateParams(params) + }); + }; + ZodOptional = class extends ZodType { + _parse(input) { + const parsedType = this._getType(input); + if (parsedType === ZodParsedType.undefined) { + return OK(void 0); + } + return this._def.innerType._parse(input); + } + unwrap() { + return this._def.innerType; + } + }; + ZodOptional.create = (type, params) => { + return new ZodOptional({ + innerType: type, + typeName: ZodFirstPartyTypeKind.ZodOptional, + ...processCreateParams(params) + }); + }; + ZodNullable = class extends ZodType { + _parse(input) { + const parsedType = this._getType(input); + if (parsedType === ZodParsedType.null) { + return OK(null); + } + return this._def.innerType._parse(input); + } + unwrap() { + return this._def.innerType; + } + }; + ZodNullable.create = (type, params) => { + return new ZodNullable({ + innerType: type, + typeName: ZodFirstPartyTypeKind.ZodNullable, + ...processCreateParams(params) + }); + }; + ZodDefault = class extends ZodType { + _parse(input) { + const { ctx } = this._processInputParams(input); + let data = ctx.data; + if (ctx.parsedType === ZodParsedType.undefined) { + data = this._def.defaultValue(); + } + return this._def.innerType._parse({ + data, + path: ctx.path, + parent: ctx + }); + } + removeDefault() { + return this._def.innerType; + } + }; + ZodDefault.create = (type, params) => { + return new ZodDefault({ + innerType: type, + typeName: ZodFirstPartyTypeKind.ZodDefault, + defaultValue: typeof params.default === "function" ? params.default : () => params.default, + ...processCreateParams(params) + }); + }; + ZodCatch = class extends ZodType { + _parse(input) { + const { ctx } = this._processInputParams(input); + const newCtx = { + ...ctx, + common: { + ...ctx.common, + issues: [] + } + }; + const result = this._def.innerType._parse({ + data: newCtx.data, + path: newCtx.path, + parent: { + ...newCtx + } + }); + if (isAsync(result)) { + return result.then((result2) => { + return { + status: "valid", + value: result2.status === "valid" ? result2.value : this._def.catchValue({ + get error() { + return new ZodError(newCtx.common.issues); + }, + input: newCtx.data + }) + }; + }); + } else { + return { + status: "valid", + value: result.status === "valid" ? result.value : this._def.catchValue({ + get error() { + return new ZodError(newCtx.common.issues); + }, + input: newCtx.data + }) + }; + } + } + removeCatch() { + return this._def.innerType; + } + }; + ZodCatch.create = (type, params) => { + return new ZodCatch({ + innerType: type, + typeName: ZodFirstPartyTypeKind.ZodCatch, + catchValue: typeof params.catch === "function" ? params.catch : () => params.catch, + ...processCreateParams(params) + }); + }; + ZodNaN = class extends ZodType { + _parse(input) { + const parsedType = this._getType(input); + if (parsedType !== ZodParsedType.nan) { + const ctx = this._getOrReturnCtx(input); + addIssueToContext(ctx, { + code: ZodIssueCode.invalid_type, + expected: ZodParsedType.nan, + received: ctx.parsedType + }); + return INVALID; + } + return { status: "valid", value: input.data }; + } + }; + ZodNaN.create = (params) => { + return new ZodNaN({ + typeName: ZodFirstPartyTypeKind.ZodNaN, + ...processCreateParams(params) + }); + }; + BRAND = Symbol("zod_brand"); + ZodBranded = class extends ZodType { + _parse(input) { + const { ctx } = this._processInputParams(input); + const data = ctx.data; + return this._def.type._parse({ + data, + path: ctx.path, + parent: ctx + }); + } + unwrap() { + return this._def.type; + } + }; + ZodPipeline = class _ZodPipeline extends ZodType { + _parse(input) { + const { status, ctx } = this._processInputParams(input); + if (ctx.common.async) { + const handleAsync = async () => { + const inResult = await this._def.in._parseAsync({ + data: ctx.data, + path: ctx.path, + parent: ctx + }); + if (inResult.status === "aborted") + return INVALID; + if (inResult.status === "dirty") { + status.dirty(); + return DIRTY(inResult.value); + } else { + return this._def.out._parseAsync({ + data: inResult.value, + path: ctx.path, + parent: ctx + }); + } + }; + return handleAsync(); + } else { + const inResult = this._def.in._parseSync({ + data: ctx.data, + path: ctx.path, + parent: ctx + }); + if (inResult.status === "aborted") + return INVALID; + if (inResult.status === "dirty") { + status.dirty(); + return { + status: "dirty", + value: inResult.value + }; + } else { + return this._def.out._parseSync({ + data: inResult.value, + path: ctx.path, + parent: ctx + }); + } + } + } + static create(a3, b3) { + return new _ZodPipeline({ + in: a3, + out: b3, + typeName: ZodFirstPartyTypeKind.ZodPipeline + }); + } + }; + ZodReadonly = class extends ZodType { + _parse(input) { + const result = this._def.innerType._parse(input); + const freeze = (data) => { + if (isValid(data)) { + data.value = Object.freeze(data.value); + } + return data; + }; + return isAsync(result) ? result.then((data) => freeze(data)) : freeze(result); + } + unwrap() { + return this._def.innerType; + } + }; + ZodReadonly.create = (type, params) => { + return new ZodReadonly({ + innerType: type, + typeName: ZodFirstPartyTypeKind.ZodReadonly, + ...processCreateParams(params) + }); + }; + late = { + object: ZodObject.lazycreate + }; + (function(ZodFirstPartyTypeKind2) { + ZodFirstPartyTypeKind2["ZodString"] = "ZodString"; + ZodFirstPartyTypeKind2["ZodNumber"] = "ZodNumber"; + ZodFirstPartyTypeKind2["ZodNaN"] = "ZodNaN"; + ZodFirstPartyTypeKind2["ZodBigInt"] = "ZodBigInt"; + ZodFirstPartyTypeKind2["ZodBoolean"] = "ZodBoolean"; + ZodFirstPartyTypeKind2["ZodDate"] = "ZodDate"; + ZodFirstPartyTypeKind2["ZodSymbol"] = "ZodSymbol"; + ZodFirstPartyTypeKind2["ZodUndefined"] = "ZodUndefined"; + ZodFirstPartyTypeKind2["ZodNull"] = "ZodNull"; + ZodFirstPartyTypeKind2["ZodAny"] = "ZodAny"; + ZodFirstPartyTypeKind2["ZodUnknown"] = "ZodUnknown"; + ZodFirstPartyTypeKind2["ZodNever"] = "ZodNever"; + ZodFirstPartyTypeKind2["ZodVoid"] = "ZodVoid"; + ZodFirstPartyTypeKind2["ZodArray"] = "ZodArray"; + ZodFirstPartyTypeKind2["ZodObject"] = "ZodObject"; + ZodFirstPartyTypeKind2["ZodUnion"] = "ZodUnion"; + ZodFirstPartyTypeKind2["ZodDiscriminatedUnion"] = "ZodDiscriminatedUnion"; + ZodFirstPartyTypeKind2["ZodIntersection"] = "ZodIntersection"; + ZodFirstPartyTypeKind2["ZodTuple"] = "ZodTuple"; + ZodFirstPartyTypeKind2["ZodRecord"] = "ZodRecord"; + ZodFirstPartyTypeKind2["ZodMap"] = "ZodMap"; + ZodFirstPartyTypeKind2["ZodSet"] = "ZodSet"; + ZodFirstPartyTypeKind2["ZodFunction"] = "ZodFunction"; + ZodFirstPartyTypeKind2["ZodLazy"] = "ZodLazy"; + ZodFirstPartyTypeKind2["ZodLiteral"] = "ZodLiteral"; + ZodFirstPartyTypeKind2["ZodEnum"] = "ZodEnum"; + ZodFirstPartyTypeKind2["ZodEffects"] = "ZodEffects"; + ZodFirstPartyTypeKind2["ZodNativeEnum"] = "ZodNativeEnum"; + ZodFirstPartyTypeKind2["ZodOptional"] = "ZodOptional"; + ZodFirstPartyTypeKind2["ZodNullable"] = "ZodNullable"; + ZodFirstPartyTypeKind2["ZodDefault"] = "ZodDefault"; + ZodFirstPartyTypeKind2["ZodCatch"] = "ZodCatch"; + ZodFirstPartyTypeKind2["ZodPromise"] = "ZodPromise"; + ZodFirstPartyTypeKind2["ZodBranded"] = "ZodBranded"; + ZodFirstPartyTypeKind2["ZodPipeline"] = "ZodPipeline"; + ZodFirstPartyTypeKind2["ZodReadonly"] = "ZodReadonly"; + })(ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {})); + instanceOfType = (cls, params = { + message: `Input not instance of ${cls.name}` + }) => custom((data) => data instanceof cls, params); + stringType = ZodString.create; + numberType = ZodNumber.create; + nanType = ZodNaN.create; + bigIntType = ZodBigInt.create; + booleanType = ZodBoolean.create; + dateType = ZodDate.create; + symbolType = ZodSymbol.create; + undefinedType = ZodUndefined.create; + nullType = ZodNull.create; + anyType = ZodAny.create; + unknownType = ZodUnknown.create; + neverType = ZodNever.create; + voidType = ZodVoid.create; + arrayType = ZodArray.create; + objectType = ZodObject.create; + strictObjectType = ZodObject.strictCreate; + unionType = ZodUnion.create; + discriminatedUnionType = ZodDiscriminatedUnion.create; + intersectionType = ZodIntersection.create; + tupleType = ZodTuple.create; + recordType = ZodRecord.create; + mapType = ZodMap.create; + setType = ZodSet.create; + functionType = ZodFunction.create; + lazyType = ZodLazy.create; + literalType = ZodLiteral.create; + enumType = ZodEnum.create; + nativeEnumType = ZodNativeEnum.create; + promiseType = ZodPromise.create; + effectsType = ZodEffects.create; + optionalType = ZodOptional.create; + nullableType = ZodNullable.create; + preprocessType = ZodEffects.createWithPreprocess; + pipelineType = ZodPipeline.create; + ostring = () => stringType().optional(); + onumber = () => numberType().optional(); + oboolean = () => booleanType().optional(); + coerce = { + string: (arg) => ZodString.create({ ...arg, coerce: true }), + number: (arg) => ZodNumber.create({ ...arg, coerce: true }), + boolean: (arg) => ZodBoolean.create({ + ...arg, + coerce: true + }), + bigint: (arg) => ZodBigInt.create({ ...arg, coerce: true }), + date: (arg) => ZodDate.create({ ...arg, coerce: true }) + }; + NEVER = INVALID; + } +}); + +// ../node_modules/.pnpm/zod@3.25.42/node_modules/zod/dist/esm/v3/external.js +var external_exports = {}; +__export(external_exports, { + BRAND: () => BRAND, + DIRTY: () => DIRTY, + EMPTY_PATH: () => EMPTY_PATH, + INVALID: () => INVALID, + NEVER: () => NEVER, + OK: () => OK, + ParseStatus: () => ParseStatus, + Schema: () => ZodType, + ZodAny: () => ZodAny, + ZodArray: () => ZodArray, + ZodBigInt: () => ZodBigInt, + ZodBoolean: () => ZodBoolean, + ZodBranded: () => ZodBranded, + ZodCatch: () => ZodCatch, + ZodDate: () => ZodDate, + ZodDefault: () => ZodDefault, + ZodDiscriminatedUnion: () => ZodDiscriminatedUnion, + ZodEffects: () => ZodEffects, + ZodEnum: () => ZodEnum, + ZodError: () => ZodError, + ZodFirstPartyTypeKind: () => ZodFirstPartyTypeKind, + ZodFunction: () => ZodFunction, + ZodIntersection: () => ZodIntersection, + ZodIssueCode: () => ZodIssueCode, + ZodLazy: () => ZodLazy, + ZodLiteral: () => ZodLiteral, + ZodMap: () => ZodMap, + ZodNaN: () => ZodNaN, + ZodNativeEnum: () => ZodNativeEnum, + ZodNever: () => ZodNever, + ZodNull: () => ZodNull, + ZodNullable: () => ZodNullable, + ZodNumber: () => ZodNumber, + ZodObject: () => ZodObject, + ZodOptional: () => ZodOptional, + ZodParsedType: () => ZodParsedType, + ZodPipeline: () => ZodPipeline, + ZodPromise: () => ZodPromise, + ZodReadonly: () => ZodReadonly, + ZodRecord: () => ZodRecord, + ZodSchema: () => ZodType, + ZodSet: () => ZodSet, + ZodString: () => ZodString, + ZodSymbol: () => ZodSymbol, + ZodTransformer: () => ZodEffects, + ZodTuple: () => ZodTuple, + ZodType: () => ZodType, + ZodUndefined: () => ZodUndefined, + ZodUnion: () => ZodUnion, + ZodUnknown: () => ZodUnknown, + ZodVoid: () => ZodVoid, + addIssueToContext: () => addIssueToContext, + any: () => anyType, + array: () => arrayType, + bigint: () => bigIntType, + boolean: () => booleanType, + coerce: () => coerce, + custom: () => custom, + date: () => dateType, + datetimeRegex: () => datetimeRegex, + defaultErrorMap: () => en_default, + discriminatedUnion: () => discriminatedUnionType, + effect: () => effectsType, + enum: () => enumType, + function: () => functionType, + getErrorMap: () => getErrorMap, + getParsedType: () => getParsedType, + instanceof: () => instanceOfType, + intersection: () => intersectionType, + isAborted: () => isAborted, + isAsync: () => isAsync, + isDirty: () => isDirty, + isValid: () => isValid, + late: () => late, + lazy: () => lazyType, + literal: () => literalType, + makeIssue: () => makeIssue, + map: () => mapType, + nan: () => nanType, + nativeEnum: () => nativeEnumType, + never: () => neverType, + null: () => nullType, + nullable: () => nullableType, + number: () => numberType, + object: () => objectType, + objectUtil: () => objectUtil, + oboolean: () => oboolean, + onumber: () => onumber, + optional: () => optionalType, + ostring: () => ostring, + pipeline: () => pipelineType, + preprocess: () => preprocessType, + promise: () => promiseType, + quotelessJson: () => quotelessJson, + record: () => recordType, + set: () => setType, + setErrorMap: () => setErrorMap, + strictObject: () => strictObjectType, + string: () => stringType, + symbol: () => symbolType, + transformer: () => effectsType, + tuple: () => tupleType, + undefined: () => undefinedType, + union: () => unionType, + unknown: () => unknownType, + util: () => util, + void: () => voidType +}); +var init_external = __esm({ + "../node_modules/.pnpm/zod@3.25.42/node_modules/zod/dist/esm/v3/external.js"() { + init_errors(); + init_parseUtil(); + init_typeAliases(); + init_util(); + init_types(); + init_ZodError(); + } +}); + +// ../node_modules/.pnpm/zod@3.25.42/node_modules/zod/dist/esm/v3/index.js +var init_v3 = __esm({ + "../node_modules/.pnpm/zod@3.25.42/node_modules/zod/dist/esm/v3/index.js"() { + init_external(); + init_external(); + } +}); + +// ../node_modules/.pnpm/zod@3.25.42/node_modules/zod/dist/esm/index.js +var init_esm = __esm({ + "../node_modules/.pnpm/zod@3.25.42/node_modules/zod/dist/esm/index.js"() { + init_v3(); + init_v3(); + } +}); + +// src/global.ts +function assertUnreachable(x4) { + throw new Error("Didn't expect to get here"); +} +function softAssertUnreachable(x4) { + return null; +} +var originUUID, snapshotVersion, mapValues, mapKeys, mapEntries, customMapEntries; +var init_global = __esm({ + "src/global.ts"() { + "use strict"; + originUUID = "00000000-0000-0000-0000-000000000000"; + snapshotVersion = "7"; + mapValues = (obj, map2) => { + const result = Object.keys(obj).reduce(function(result2, key) { + result2[key] = map2(obj[key]); + return result2; + }, {}); + return result; + }; + mapKeys = (obj, map2) => { + const result = Object.fromEntries( + Object.entries(obj).map(([key, val2]) => { + const newKey = map2(key, val2); + return [newKey, val2]; + }) + ); + return result; + }; + mapEntries = (obj, map2) => { + const result = Object.fromEntries( + Object.entries(obj).map(([key, val2]) => { + const [newKey, newVal] = map2(key, val2); + return [newKey, newVal]; + }) + ); + return result; + }; + customMapEntries = (obj, map2) => { + const result = Object.fromEntries( + Object.entries(obj).map(([key, val2]) => { + const [newKey, newVal] = map2(key, val2); + return [newKey, newVal]; + }) + ); + return result; + }; + } +}); + +// src/serializer/mysqlSchema.ts +var index, fk, column, tableV3, compositePK, uniqueConstraint, checkConstraint, tableV4, table, viewMeta, view, kitInternals, dialect, schemaHash, schemaInternalV3, schemaInternalV4, schemaInternalV5, schemaInternal, schemaV3, schemaV4, schemaV5, schema, tableSquashedV4, tableSquashed, viewSquashed, schemaSquashed, schemaSquashedV4, MySqlSquasher, squashMysqlScheme, mysqlSchema, mysqlSchemaV5, mysqlSchemaSquashed, backwardCompatibleMysqlSchema, dryMySql; +var init_mysqlSchema = __esm({ + "src/serializer/mysqlSchema.ts"() { + "use strict"; + init_esm(); + init_global(); + index = objectType({ + name: stringType(), + columns: stringType().array(), + isUnique: booleanType(), + using: enumType(["btree", "hash"]).optional(), + algorithm: enumType(["default", "inplace", "copy"]).optional(), + lock: enumType(["default", "none", "shared", "exclusive"]).optional() + }).strict(); + fk = objectType({ + name: stringType(), + tableFrom: stringType(), + columnsFrom: stringType().array(), + tableTo: stringType(), + columnsTo: stringType().array(), + onUpdate: stringType().optional(), + onDelete: stringType().optional() + }).strict(); + column = objectType({ + name: stringType(), + type: stringType(), + primaryKey: booleanType(), + notNull: booleanType(), + autoincrement: booleanType().optional(), + default: anyType().optional(), + onUpdate: anyType().optional(), + generated: objectType({ + type: enumType(["stored", "virtual"]), + as: stringType() + }).optional() + }).strict(); + tableV3 = objectType({ + name: stringType(), + columns: recordType(stringType(), column), + indexes: recordType(stringType(), index), + foreignKeys: recordType(stringType(), fk) + }).strict(); + compositePK = objectType({ + name: stringType(), + columns: stringType().array() + }).strict(); + uniqueConstraint = objectType({ + name: stringType(), + columns: stringType().array() + }).strict(); + checkConstraint = objectType({ + name: stringType(), + value: stringType() + }).strict(); + tableV4 = objectType({ + name: stringType(), + schema: stringType().optional(), + columns: recordType(stringType(), column), + indexes: recordType(stringType(), index), + foreignKeys: recordType(stringType(), fk) + }).strict(); + table = objectType({ + name: stringType(), + columns: recordType(stringType(), column), + indexes: recordType(stringType(), index), + foreignKeys: recordType(stringType(), fk), + compositePrimaryKeys: recordType(stringType(), compositePK), + uniqueConstraints: recordType(stringType(), uniqueConstraint).default({}), + checkConstraint: recordType(stringType(), checkConstraint).default({}) + }).strict(); + viewMeta = objectType({ + algorithm: enumType(["undefined", "merge", "temptable"]), + sqlSecurity: enumType(["definer", "invoker"]), + withCheckOption: enumType(["local", "cascaded"]).optional() + }).strict(); + view = objectType({ + name: stringType(), + columns: recordType(stringType(), column), + definition: stringType().optional(), + isExisting: booleanType() + }).strict().merge(viewMeta); + kitInternals = objectType({ + tables: recordType( + stringType(), + objectType({ + columns: recordType( + stringType(), + objectType({ isDefaultAnExpression: booleanType().optional() }).optional() + ) + }).optional() + ).optional(), + indexes: recordType( + stringType(), + objectType({ + columns: recordType( + stringType(), + objectType({ isExpression: booleanType().optional() }).optional() + ) + }).optional() + ).optional() + }).optional(); + dialect = literalType("mysql"); + schemaHash = objectType({ + id: stringType(), + prevId: stringType() + }); + schemaInternalV3 = objectType({ + version: literalType("3"), + dialect, + tables: recordType(stringType(), tableV3) + }).strict(); + schemaInternalV4 = objectType({ + version: literalType("4"), + dialect, + tables: recordType(stringType(), tableV4), + schemas: recordType(stringType(), stringType()) + }).strict(); + schemaInternalV5 = objectType({ + version: literalType("5"), + dialect, + tables: recordType(stringType(), table), + schemas: recordType(stringType(), stringType()), + _meta: objectType({ + schemas: recordType(stringType(), stringType()), + tables: recordType(stringType(), stringType()), + columns: recordType(stringType(), stringType()) + }), + internal: kitInternals + }).strict(); + schemaInternal = objectType({ + version: literalType("5"), + dialect, + tables: recordType(stringType(), table), + views: recordType(stringType(), view).default({}), + _meta: objectType({ + tables: recordType(stringType(), stringType()), + columns: recordType(stringType(), stringType()) + }), + internal: kitInternals + }).strict(); + schemaV3 = schemaInternalV3.merge(schemaHash); + schemaV4 = schemaInternalV4.merge(schemaHash); + schemaV5 = schemaInternalV5.merge(schemaHash); + schema = schemaInternal.merge(schemaHash); + tableSquashedV4 = objectType({ + name: stringType(), + schema: stringType().optional(), + columns: recordType(stringType(), column), + indexes: recordType(stringType(), stringType()), + foreignKeys: recordType(stringType(), stringType()) + }).strict(); + tableSquashed = objectType({ + name: stringType(), + columns: recordType(stringType(), column), + indexes: recordType(stringType(), stringType()), + foreignKeys: recordType(stringType(), stringType()), + compositePrimaryKeys: recordType(stringType(), stringType()), + uniqueConstraints: recordType(stringType(), stringType()).default({}), + checkConstraints: recordType(stringType(), stringType()).default({}) + }).strict(); + viewSquashed = view.omit({ + algorithm: true, + sqlSecurity: true, + withCheckOption: true + }).extend({ meta: stringType() }); + schemaSquashed = objectType({ + version: literalType("5"), + dialect, + tables: recordType(stringType(), tableSquashed), + views: recordType(stringType(), viewSquashed) + }).strict(); + schemaSquashedV4 = objectType({ + version: literalType("4"), + dialect, + tables: recordType(stringType(), tableSquashedV4), + schemas: recordType(stringType(), stringType()) + }).strict(); + MySqlSquasher = { + squashIdx: (idx) => { + index.parse(idx); + return `${idx.name};${idx.columns.join(",")};${idx.isUnique};${idx.using ?? ""};${idx.algorithm ?? ""};${idx.lock ?? ""}`; + }, + unsquashIdx: (input) => { + const [name, columnsString, isUnique, using, algorithm, lock] = input.split(";"); + const destructed = { + name, + columns: columnsString.split(","), + isUnique: isUnique === "true", + using: using ? using : void 0, + algorithm: algorithm ? algorithm : void 0, + lock: lock ? lock : void 0 + }; + return index.parse(destructed); + }, + squashPK: (pk) => { + return `${pk.name};${pk.columns.join(",")}`; + }, + unsquashPK: (pk) => { + const splitted = pk.split(";"); + return { name: splitted[0], columns: splitted[1].split(",") }; + }, + squashUnique: (unq) => { + return `${unq.name};${unq.columns.join(",")}`; + }, + unsquashUnique: (unq) => { + const [name, columns] = unq.split(";"); + return { name, columns: columns.split(",") }; + }, + squashFK: (fk5) => { + return `${fk5.name};${fk5.tableFrom};${fk5.columnsFrom.join(",")};${fk5.tableTo};${fk5.columnsTo.join(",")};${fk5.onUpdate ?? ""};${fk5.onDelete ?? ""}`; + }, + unsquashFK: (input) => { + const [ + name, + tableFrom, + columnsFromStr, + tableTo, + columnsToStr, + onUpdate, + onDelete + ] = input.split(";"); + const result = fk.parse({ + name, + tableFrom, + columnsFrom: columnsFromStr.split(","), + tableTo, + columnsTo: columnsToStr.split(","), + onUpdate, + onDelete + }); + return result; + }, + squashCheck: (input) => { + return `${input.name};${input.value}`; + }, + unsquashCheck: (input) => { + const [name, value] = input.split(";"); + return { name, value }; + }, + squashView: (view5) => { + return `${view5.algorithm};${view5.sqlSecurity};${view5.withCheckOption}`; + }, + unsquashView: (meta) => { + const [algorithm, sqlSecurity, withCheckOption] = meta.split(";"); + const toReturn = { + algorithm, + sqlSecurity, + withCheckOption: withCheckOption !== "undefined" ? withCheckOption : void 0 + }; + return viewMeta.parse(toReturn); + } + }; + squashMysqlScheme = (json) => { + const mappedTables = Object.fromEntries( + Object.entries(json.tables).map((it) => { + const squashedIndexes = mapValues(it[1].indexes, (index6) => { + return MySqlSquasher.squashIdx(index6); + }); + const squashedFKs = mapValues(it[1].foreignKeys, (fk5) => { + return MySqlSquasher.squashFK(fk5); + }); + const squashedPKs = mapValues(it[1].compositePrimaryKeys, (pk) => { + return MySqlSquasher.squashPK(pk); + }); + const squashedUniqueConstraints = mapValues( + it[1].uniqueConstraints, + (unq) => { + return MySqlSquasher.squashUnique(unq); + } + ); + const squashedCheckConstraints = mapValues(it[1].checkConstraint, (check2) => { + return MySqlSquasher.squashCheck(check2); + }); + return [ + it[0], + { + name: it[1].name, + columns: it[1].columns, + indexes: squashedIndexes, + foreignKeys: squashedFKs, + compositePrimaryKeys: squashedPKs, + uniqueConstraints: squashedUniqueConstraints, + checkConstraints: squashedCheckConstraints + } + ]; + }) + ); + const mappedViews = Object.fromEntries( + Object.entries(json.views).map(([key, value]) => { + const meta = MySqlSquasher.squashView(value); + return [key, { + name: value.name, + isExisting: value.isExisting, + columns: value.columns, + definition: value.definition, + meta + }]; + }) + ); + return { + version: "5", + dialect: json.dialect, + tables: mappedTables, + views: mappedViews + }; + }; + mysqlSchema = schema; + mysqlSchemaV5 = schemaV5; + mysqlSchemaSquashed = schemaSquashed; + backwardCompatibleMysqlSchema = unionType([mysqlSchemaV5, schema]); + dryMySql = mysqlSchema.parse({ + version: "5", + dialect: "mysql", + id: originUUID, + prevId: "", + tables: {}, + schemas: {}, + views: {}, + _meta: { + schemas: {}, + tables: {}, + columns: {} + } + }); + } +}); + +// src/serializer/pgSchema.ts +var indexV2, columnV2, tableV2, enumSchemaV1, enumSchema, pgSchemaV2, references, columnV1, tableV1, pgSchemaV1, indexColumn, index2, indexV4, indexV5, indexV6, fk2, sequenceSchema, roleSchema, sequenceSquashed, columnV7, column2, checkConstraint2, columnSquashed, tableV32, compositePK2, uniqueConstraint2, policy, policySquashed, viewWithOption, matViewWithOption, mergedViewWithOption, view2, tableV42, tableV5, tableV6, tableV7, table2, schemaHash2, kitInternals2, pgSchemaInternalV3, pgSchemaInternalV4, pgSchemaInternalV5, pgSchemaInternalV6, pgSchemaExternal, pgSchemaInternalV7, pgSchemaInternal, tableSquashed2, tableSquashedV42, pgSchemaSquashedV4, pgSchemaSquashedV6, pgSchemaSquashed, pgSchemaV3, pgSchemaV4, pgSchemaV5, pgSchemaV6, pgSchemaV7, pgSchema, backwardCompatiblePgSchema, PgSquasher, squashPgScheme, dryPg; +var init_pgSchema = __esm({ + "src/serializer/pgSchema.ts"() { + "use strict"; + init_global(); + init_esm(); + indexV2 = objectType({ + name: stringType(), + columns: recordType( + stringType(), + objectType({ + name: stringType() + }) + ), + isUnique: booleanType() + }).strict(); + columnV2 = objectType({ + name: stringType(), + type: stringType(), + primaryKey: booleanType(), + notNull: booleanType(), + default: anyType().optional(), + references: stringType().optional() + }).strict(); + tableV2 = objectType({ + name: stringType(), + columns: recordType(stringType(), columnV2), + indexes: recordType(stringType(), indexV2) + }).strict(); + enumSchemaV1 = objectType({ + name: stringType(), + values: recordType(stringType(), stringType()) + }).strict(); + enumSchema = objectType({ + name: stringType(), + schema: stringType(), + values: stringType().array() + }).strict(); + pgSchemaV2 = objectType({ + version: literalType("2"), + tables: recordType(stringType(), tableV2), + enums: recordType(stringType(), enumSchemaV1) + }).strict(); + references = objectType({ + foreignKeyName: stringType(), + table: stringType(), + column: stringType(), + onDelete: stringType().optional(), + onUpdate: stringType().optional() + }).strict(); + columnV1 = objectType({ + name: stringType(), + type: stringType(), + primaryKey: booleanType(), + notNull: booleanType(), + default: anyType().optional(), + references: references.optional() + }).strict(); + tableV1 = objectType({ + name: stringType(), + columns: recordType(stringType(), columnV1), + indexes: recordType(stringType(), indexV2) + }).strict(); + pgSchemaV1 = objectType({ + version: literalType("1"), + tables: recordType(stringType(), tableV1), + enums: recordType(stringType(), enumSchemaV1) + }).strict(); + indexColumn = objectType({ + expression: stringType(), + isExpression: booleanType(), + asc: booleanType(), + nulls: stringType().optional(), + opclass: stringType().optional() + }); + index2 = objectType({ + name: stringType(), + columns: indexColumn.array(), + isUnique: booleanType(), + with: recordType(stringType(), anyType()).optional(), + method: stringType().default("btree"), + where: stringType().optional(), + concurrently: booleanType().default(false) + }).strict(); + indexV4 = objectType({ + name: stringType(), + columns: stringType().array(), + isUnique: booleanType(), + with: recordType(stringType(), stringType()).optional(), + method: stringType().default("btree"), + where: stringType().optional(), + concurrently: booleanType().default(false) + }).strict(); + indexV5 = objectType({ + name: stringType(), + columns: stringType().array(), + isUnique: booleanType(), + with: recordType(stringType(), stringType()).optional(), + method: stringType().default("btree"), + where: stringType().optional(), + concurrently: booleanType().default(false) + }).strict(); + indexV6 = objectType({ + name: stringType(), + columns: stringType().array(), + isUnique: booleanType(), + with: recordType(stringType(), stringType()).optional(), + method: stringType().default("btree"), + where: stringType().optional(), + concurrently: booleanType().default(false) + }).strict(); + fk2 = objectType({ + name: stringType(), + tableFrom: stringType(), + columnsFrom: stringType().array(), + tableTo: stringType(), + schemaTo: stringType().optional(), + columnsTo: stringType().array(), + onUpdate: stringType().optional(), + onDelete: stringType().optional() + }).strict(); + sequenceSchema = objectType({ + name: stringType(), + increment: stringType().optional(), + minValue: stringType().optional(), + maxValue: stringType().optional(), + startWith: stringType().optional(), + cache: stringType().optional(), + cycle: booleanType().optional(), + schema: stringType() + }).strict(); + roleSchema = objectType({ + name: stringType(), + createDb: booleanType().optional(), + createRole: booleanType().optional(), + inherit: booleanType().optional() + }).strict(); + sequenceSquashed = objectType({ + name: stringType(), + schema: stringType(), + values: stringType() + }).strict(); + columnV7 = objectType({ + name: stringType(), + type: stringType(), + typeSchema: stringType().optional(), + primaryKey: booleanType(), + notNull: booleanType(), + default: anyType().optional(), + isUnique: anyType().optional(), + uniqueName: stringType().optional(), + nullsNotDistinct: booleanType().optional() + }).strict(); + column2 = objectType({ + name: stringType(), + type: stringType(), + typeSchema: stringType().optional(), + primaryKey: booleanType(), + notNull: booleanType(), + default: anyType().optional(), + isUnique: anyType().optional(), + uniqueName: stringType().optional(), + nullsNotDistinct: booleanType().optional(), + generated: objectType({ + type: literalType("stored"), + as: stringType() + }).optional(), + identity: sequenceSchema.merge(objectType({ type: enumType(["always", "byDefault"]) })).optional() + }).strict(); + checkConstraint2 = objectType({ + name: stringType(), + value: stringType() + }).strict(); + columnSquashed = objectType({ + name: stringType(), + type: stringType(), + typeSchema: stringType().optional(), + primaryKey: booleanType(), + notNull: booleanType(), + default: anyType().optional(), + isUnique: anyType().optional(), + uniqueName: stringType().optional(), + nullsNotDistinct: booleanType().optional(), + generated: objectType({ + type: literalType("stored"), + as: stringType() + }).optional(), + identity: stringType().optional() + }).strict(); + tableV32 = objectType({ + name: stringType(), + columns: recordType(stringType(), column2), + indexes: recordType(stringType(), index2), + foreignKeys: recordType(stringType(), fk2) + }).strict(); + compositePK2 = objectType({ + name: stringType(), + columns: stringType().array() + }).strict(); + uniqueConstraint2 = objectType({ + name: stringType(), + columns: stringType().array(), + nullsNotDistinct: booleanType() + }).strict(); + policy = objectType({ + name: stringType(), + as: enumType(["PERMISSIVE", "RESTRICTIVE"]).optional(), + for: enumType(["ALL", "SELECT", "INSERT", "UPDATE", "DELETE"]).optional(), + to: stringType().array().optional(), + using: stringType().optional(), + withCheck: stringType().optional(), + on: stringType().optional(), + schema: stringType().optional() + }).strict(); + policySquashed = objectType({ + name: stringType(), + values: stringType() + }).strict(); + viewWithOption = objectType({ + checkOption: enumType(["local", "cascaded"]).optional(), + securityBarrier: booleanType().optional(), + securityInvoker: booleanType().optional() + }).strict(); + matViewWithOption = objectType({ + fillfactor: numberType().optional(), + toastTupleTarget: numberType().optional(), + parallelWorkers: numberType().optional(), + autovacuumEnabled: booleanType().optional(), + vacuumIndexCleanup: enumType(["auto", "off", "on"]).optional(), + vacuumTruncate: booleanType().optional(), + autovacuumVacuumThreshold: numberType().optional(), + autovacuumVacuumScaleFactor: numberType().optional(), + autovacuumVacuumCostDelay: numberType().optional(), + autovacuumVacuumCostLimit: numberType().optional(), + autovacuumFreezeMinAge: numberType().optional(), + autovacuumFreezeMaxAge: numberType().optional(), + autovacuumFreezeTableAge: numberType().optional(), + autovacuumMultixactFreezeMinAge: numberType().optional(), + autovacuumMultixactFreezeMaxAge: numberType().optional(), + autovacuumMultixactFreezeTableAge: numberType().optional(), + logAutovacuumMinDuration: numberType().optional(), + userCatalogTable: booleanType().optional() + }).strict(); + mergedViewWithOption = viewWithOption.merge(matViewWithOption).strict(); + view2 = objectType({ + name: stringType(), + schema: stringType(), + columns: recordType(stringType(), column2), + definition: stringType().optional(), + materialized: booleanType(), + with: mergedViewWithOption.optional(), + isExisting: booleanType(), + withNoData: booleanType().optional(), + using: stringType().optional(), + tablespace: stringType().optional() + }).strict(); + tableV42 = objectType({ + name: stringType(), + schema: stringType(), + columns: recordType(stringType(), column2), + indexes: recordType(stringType(), indexV4), + foreignKeys: recordType(stringType(), fk2) + }).strict(); + tableV5 = objectType({ + name: stringType(), + schema: stringType(), + columns: recordType(stringType(), column2), + indexes: recordType(stringType(), indexV5), + foreignKeys: recordType(stringType(), fk2), + compositePrimaryKeys: recordType(stringType(), compositePK2), + uniqueConstraints: recordType(stringType(), uniqueConstraint2).default({}) + }).strict(); + tableV6 = objectType({ + name: stringType(), + schema: stringType(), + columns: recordType(stringType(), column2), + indexes: recordType(stringType(), indexV6), + foreignKeys: recordType(stringType(), fk2), + compositePrimaryKeys: recordType(stringType(), compositePK2), + uniqueConstraints: recordType(stringType(), uniqueConstraint2).default({}) + }).strict(); + tableV7 = objectType({ + name: stringType(), + schema: stringType(), + columns: recordType(stringType(), columnV7), + indexes: recordType(stringType(), index2), + foreignKeys: recordType(stringType(), fk2), + compositePrimaryKeys: recordType(stringType(), compositePK2), + uniqueConstraints: recordType(stringType(), uniqueConstraint2).default({}) + }).strict(); + table2 = objectType({ + name: stringType(), + schema: stringType(), + columns: recordType(stringType(), column2), + indexes: recordType(stringType(), index2), + foreignKeys: recordType(stringType(), fk2), + compositePrimaryKeys: recordType(stringType(), compositePK2), + uniqueConstraints: recordType(stringType(), uniqueConstraint2).default({}), + policies: recordType(stringType(), policy).default({}), + checkConstraints: recordType(stringType(), checkConstraint2).default({}), + isRLSEnabled: booleanType().default(false) + }).strict(); + schemaHash2 = objectType({ + id: stringType(), + prevId: stringType() + }); + kitInternals2 = objectType({ + tables: recordType( + stringType(), + objectType({ + columns: recordType( + stringType(), + objectType({ + isArray: booleanType().optional(), + dimensions: numberType().optional(), + rawType: stringType().optional(), + isDefaultAnExpression: booleanType().optional() + }).optional() + ) + }).optional() + ) + }).optional(); + pgSchemaInternalV3 = objectType({ + version: literalType("3"), + dialect: literalType("pg"), + tables: recordType(stringType(), tableV32), + enums: recordType(stringType(), enumSchemaV1) + }).strict(); + pgSchemaInternalV4 = objectType({ + version: literalType("4"), + dialect: literalType("pg"), + tables: recordType(stringType(), tableV42), + enums: recordType(stringType(), enumSchemaV1), + schemas: recordType(stringType(), stringType()) + }).strict(); + pgSchemaInternalV5 = objectType({ + version: literalType("5"), + dialect: literalType("pg"), + tables: recordType(stringType(), tableV5), + enums: recordType(stringType(), enumSchemaV1), + schemas: recordType(stringType(), stringType()), + _meta: objectType({ + schemas: recordType(stringType(), stringType()), + tables: recordType(stringType(), stringType()), + columns: recordType(stringType(), stringType()) + }), + internal: kitInternals2 + }).strict(); + pgSchemaInternalV6 = objectType({ + version: literalType("6"), + dialect: literalType("postgresql"), + tables: recordType(stringType(), tableV6), + enums: recordType(stringType(), enumSchema), + schemas: recordType(stringType(), stringType()), + _meta: objectType({ + schemas: recordType(stringType(), stringType()), + tables: recordType(stringType(), stringType()), + columns: recordType(stringType(), stringType()) + }), + internal: kitInternals2 + }).strict(); + pgSchemaExternal = objectType({ + version: literalType("5"), + dialect: literalType("pg"), + tables: arrayType(table2), + enums: arrayType(enumSchemaV1), + schemas: arrayType(objectType({ name: stringType() })), + _meta: objectType({ + schemas: recordType(stringType(), stringType()), + tables: recordType(stringType(), stringType()), + columns: recordType(stringType(), stringType()) + }) + }).strict(); + pgSchemaInternalV7 = objectType({ + version: literalType("7"), + dialect: literalType("postgresql"), + tables: recordType(stringType(), tableV7), + enums: recordType(stringType(), enumSchema), + schemas: recordType(stringType(), stringType()), + sequences: recordType(stringType(), sequenceSchema), + _meta: objectType({ + schemas: recordType(stringType(), stringType()), + tables: recordType(stringType(), stringType()), + columns: recordType(stringType(), stringType()) + }), + internal: kitInternals2 + }).strict(); + pgSchemaInternal = objectType({ + version: literalType("7"), + dialect: literalType("postgresql"), + tables: recordType(stringType(), table2), + enums: recordType(stringType(), enumSchema), + schemas: recordType(stringType(), stringType()), + views: recordType(stringType(), view2).default({}), + sequences: recordType(stringType(), sequenceSchema).default({}), + roles: recordType(stringType(), roleSchema).default({}), + policies: recordType(stringType(), policy).default({}), + _meta: objectType({ + schemas: recordType(stringType(), stringType()), + tables: recordType(stringType(), stringType()), + columns: recordType(stringType(), stringType()) + }), + internal: kitInternals2 + }).strict(); + tableSquashed2 = objectType({ + name: stringType(), + schema: stringType(), + columns: recordType(stringType(), columnSquashed), + indexes: recordType(stringType(), stringType()), + foreignKeys: recordType(stringType(), stringType()), + compositePrimaryKeys: recordType(stringType(), stringType()), + uniqueConstraints: recordType(stringType(), stringType()), + policies: recordType(stringType(), stringType()), + checkConstraints: recordType(stringType(), stringType()), + isRLSEnabled: booleanType().default(false) + }).strict(); + tableSquashedV42 = objectType({ + name: stringType(), + schema: stringType(), + columns: recordType(stringType(), column2), + indexes: recordType(stringType(), stringType()), + foreignKeys: recordType(stringType(), stringType()) + }).strict(); + pgSchemaSquashedV4 = objectType({ + version: literalType("4"), + dialect: literalType("pg"), + tables: recordType(stringType(), tableSquashedV42), + enums: recordType(stringType(), enumSchemaV1), + schemas: recordType(stringType(), stringType()) + }).strict(); + pgSchemaSquashedV6 = objectType({ + version: literalType("6"), + dialect: literalType("postgresql"), + tables: recordType(stringType(), tableSquashed2), + enums: recordType(stringType(), enumSchema), + schemas: recordType(stringType(), stringType()) + }).strict(); + pgSchemaSquashed = objectType({ + version: literalType("7"), + dialect: literalType("postgresql"), + tables: recordType(stringType(), tableSquashed2), + enums: recordType(stringType(), enumSchema), + schemas: recordType(stringType(), stringType()), + views: recordType(stringType(), view2), + sequences: recordType(stringType(), sequenceSquashed), + roles: recordType(stringType(), roleSchema).default({}), + policies: recordType(stringType(), policySquashed).default({}) + }).strict(); + pgSchemaV3 = pgSchemaInternalV3.merge(schemaHash2); + pgSchemaV4 = pgSchemaInternalV4.merge(schemaHash2); + pgSchemaV5 = pgSchemaInternalV5.merge(schemaHash2); + pgSchemaV6 = pgSchemaInternalV6.merge(schemaHash2); + pgSchemaV7 = pgSchemaInternalV7.merge(schemaHash2); + pgSchema = pgSchemaInternal.merge(schemaHash2); + backwardCompatiblePgSchema = unionType([ + pgSchemaV5, + pgSchemaV6, + pgSchema + ]); + PgSquasher = { + squashIdx: (idx) => { + index2.parse(idx); + return `${idx.name};${idx.columns.map( + (c3) => `${c3.expression}--${c3.isExpression}--${c3.asc}--${c3.nulls}--${c3.opclass ? c3.opclass : ""}` + ).join(",,")};${idx.isUnique};${idx.concurrently};${idx.method};${idx.where};${JSON.stringify(idx.with)}`; + }, + unsquashIdx: (input) => { + const [ + name, + columnsString, + isUnique, + concurrently, + method, + where, + idxWith + ] = input.split(";"); + const columnString = columnsString.split(",,"); + const columns = []; + for (const column11 of columnString) { + const [expression, isExpression, asc, nulls, opclass] = column11.split("--"); + columns.push({ + nulls, + isExpression: isExpression === "true", + asc: asc === "true", + expression, + opclass: opclass === "undefined" ? void 0 : opclass + }); + } + const result = index2.parse({ + name, + columns, + isUnique: isUnique === "true", + concurrently: concurrently === "true", + method, + where: where === "undefined" ? void 0 : where, + with: !idxWith || idxWith === "undefined" ? void 0 : JSON.parse(idxWith) + }); + return result; + }, + squashIdxPush: (idx) => { + index2.parse(idx); + return `${idx.name};${idx.columns.map((c3) => `${c3.isExpression ? "" : c3.expression}--${c3.asc}--${c3.nulls}`).join(",,")};${idx.isUnique};${idx.method};${JSON.stringify(idx.with)}`; + }, + unsquashIdxPush: (input) => { + const [name, columnsString, isUnique, method, idxWith] = input.split(";"); + const columnString = columnsString.split("--"); + const columns = []; + for (const column11 of columnString) { + const [expression, asc, nulls, opclass] = column11.split(","); + columns.push({ + nulls, + isExpression: expression === "", + asc: asc === "true", + expression + }); + } + const result = index2.parse({ + name, + columns, + isUnique: isUnique === "true", + concurrently: false, + method, + with: idxWith === "undefined" ? void 0 : JSON.parse(idxWith) + }); + return result; + }, + squashFK: (fk5) => { + return `${fk5.name};${fk5.tableFrom};${fk5.columnsFrom.join(",")};${fk5.tableTo};${fk5.columnsTo.join(",")};${fk5.onUpdate ?? ""};${fk5.onDelete ?? ""};${fk5.schemaTo || "public"}`; + }, + squashPolicy: (policy5) => { + var _a2; + return `${policy5.name}--${policy5.as}--${policy5.for}--${(_a2 = policy5.to) == null ? void 0 : _a2.join(",")}--${policy5.using}--${policy5.withCheck}--${policy5.on}`; + }, + unsquashPolicy: (policy5) => { + const splitted = policy5.split("--"); + return { + name: splitted[0], + as: splitted[1], + for: splitted[2], + to: splitted[3].split(","), + using: splitted[4] !== "undefined" ? splitted[4] : void 0, + withCheck: splitted[5] !== "undefined" ? splitted[5] : void 0, + on: splitted[6] !== "undefined" ? splitted[6] : void 0 + }; + }, + squashPolicyPush: (policy5) => { + var _a2; + return `${policy5.name}--${policy5.as}--${policy5.for}--${(_a2 = policy5.to) == null ? void 0 : _a2.join(",")}--${policy5.on}`; + }, + unsquashPolicyPush: (policy5) => { + const splitted = policy5.split("--"); + return { + name: splitted[0], + as: splitted[1], + for: splitted[2], + to: splitted[3].split(","), + on: splitted[4] !== "undefined" ? splitted[4] : void 0 + }; + }, + squashPK: (pk) => { + return `${pk.columns.join(",")};${pk.name}`; + }, + unsquashPK: (pk) => { + const splitted = pk.split(";"); + return { name: splitted[1], columns: splitted[0].split(",") }; + }, + squashUnique: (unq) => { + return `${unq.name};${unq.columns.join(",")};${unq.nullsNotDistinct}`; + }, + unsquashUnique: (unq) => { + const [name, columns, nullsNotDistinct] = unq.split(";"); + return { + name, + columns: columns.split(","), + nullsNotDistinct: nullsNotDistinct === "true" + }; + }, + unsquashFK: (input) => { + const [ + name, + tableFrom, + columnsFromStr, + tableTo, + columnsToStr, + onUpdate, + onDelete, + schemaTo + ] = input.split(";"); + const result = fk2.parse({ + name, + tableFrom, + columnsFrom: columnsFromStr.split(","), + schemaTo, + tableTo, + columnsTo: columnsToStr.split(","), + onUpdate, + onDelete + }); + return result; + }, + squashSequence: (seq) => { + return `${seq.minValue};${seq.maxValue};${seq.increment};${seq.startWith};${seq.cache};${seq.cycle ?? ""}`; + }, + unsquashSequence: (seq) => { + const splitted = seq.split(";"); + return { + minValue: splitted[0] !== "undefined" ? splitted[0] : void 0, + maxValue: splitted[1] !== "undefined" ? splitted[1] : void 0, + increment: splitted[2] !== "undefined" ? splitted[2] : void 0, + startWith: splitted[3] !== "undefined" ? splitted[3] : void 0, + cache: splitted[4] !== "undefined" ? splitted[4] : void 0, + cycle: splitted[5] === "true" + }; + }, + squashIdentity: (seq) => { + return `${seq.name};${seq.type};${seq.minValue};${seq.maxValue};${seq.increment};${seq.startWith};${seq.cache};${seq.cycle ?? ""}`; + }, + unsquashIdentity: (seq) => { + const splitted = seq.split(";"); + return { + name: splitted[0], + type: splitted[1], + minValue: splitted[2] !== "undefined" ? splitted[2] : void 0, + maxValue: splitted[3] !== "undefined" ? splitted[3] : void 0, + increment: splitted[4] !== "undefined" ? splitted[4] : void 0, + startWith: splitted[5] !== "undefined" ? splitted[5] : void 0, + cache: splitted[6] !== "undefined" ? splitted[6] : void 0, + cycle: splitted[7] === "true" + }; + }, + squashCheck: (check2) => { + return `${check2.name};${check2.value}`; + }, + unsquashCheck: (input) => { + const [ + name, + value + ] = input.split(";"); + return { name, value }; + } + }; + squashPgScheme = (json, action) => { + const mappedTables = Object.fromEntries( + Object.entries(json.tables).map((it) => { + const squashedIndexes = mapValues(it[1].indexes, (index6) => { + return action === "push" ? PgSquasher.squashIdxPush(index6) : PgSquasher.squashIdx(index6); + }); + const squashedFKs = mapValues(it[1].foreignKeys, (fk5) => { + return PgSquasher.squashFK(fk5); + }); + const squashedPKs = mapValues(it[1].compositePrimaryKeys, (pk) => { + return PgSquasher.squashPK(pk); + }); + const mappedColumns = Object.fromEntries( + Object.entries(it[1].columns).map((it2) => { + const mappedIdentity = it2[1].identity ? PgSquasher.squashIdentity(it2[1].identity) : void 0; + return [ + it2[0], + { + ...it2[1], + identity: mappedIdentity + } + ]; + }) + ); + const squashedUniqueConstraints = mapValues( + it[1].uniqueConstraints, + (unq) => { + return PgSquasher.squashUnique(unq); + } + ); + const squashedPolicies = mapValues(it[1].policies, (policy5) => { + return action === "push" ? PgSquasher.squashPolicyPush(policy5) : PgSquasher.squashPolicy(policy5); + }); + const squashedChecksContraints = mapValues( + it[1].checkConstraints, + (check2) => { + return PgSquasher.squashCheck(check2); + } + ); + return [ + it[0], + { + name: it[1].name, + schema: it[1].schema, + columns: mappedColumns, + indexes: squashedIndexes, + foreignKeys: squashedFKs, + compositePrimaryKeys: squashedPKs, + uniqueConstraints: squashedUniqueConstraints, + policies: squashedPolicies, + checkConstraints: squashedChecksContraints, + isRLSEnabled: it[1].isRLSEnabled ?? false + } + ]; + }) + ); + const mappedSequences = Object.fromEntries( + Object.entries(json.sequences).map((it) => { + return [ + it[0], + { + name: it[1].name, + schema: it[1].schema, + values: PgSquasher.squashSequence(it[1]) + } + ]; + }) + ); + const mappedPolicies = Object.fromEntries( + Object.entries(json.policies).map((it) => { + return [ + it[0], + { + name: it[1].name, + values: action === "push" ? PgSquasher.squashPolicyPush(it[1]) : PgSquasher.squashPolicy(it[1]) + } + ]; + }) + ); + return { + version: "7", + dialect: json.dialect, + tables: mappedTables, + enums: json.enums, + schemas: json.schemas, + views: json.views, + policies: mappedPolicies, + sequences: mappedSequences, + roles: json.roles + }; + }; + dryPg = pgSchema.parse({ + version: snapshotVersion, + dialect: "postgresql", + id: originUUID, + prevId: "", + tables: {}, + enums: {}, + schemas: {}, + policies: {}, + roles: {}, + sequences: {}, + _meta: { + schemas: {}, + tables: {}, + columns: {} + } + }); + } +}); + +// src/serializer/singlestoreSchema.ts +var index3, column3, compositePK3, uniqueConstraint3, table3, viewMeta2, kitInternals3, dialect2, schemaHash3, schemaInternal2, schema2, tableSquashed3, schemaSquashed2, SingleStoreSquasher, squashSingleStoreScheme, singlestoreSchema, singlestoreSchemaSquashed, backwardCompatibleSingleStoreSchema, drySingleStore; +var init_singlestoreSchema = __esm({ + "src/serializer/singlestoreSchema.ts"() { + "use strict"; + init_esm(); + init_global(); + index3 = objectType({ + name: stringType(), + columns: stringType().array(), + isUnique: booleanType(), + using: enumType(["btree", "hash"]).optional(), + algorithm: enumType(["default", "inplace", "copy"]).optional(), + lock: enumType(["default", "none", "shared", "exclusive"]).optional() + }).strict(); + column3 = objectType({ + name: stringType(), + type: stringType(), + primaryKey: booleanType(), + notNull: booleanType(), + autoincrement: booleanType().optional(), + default: anyType().optional(), + onUpdate: anyType().optional(), + generated: objectType({ + type: enumType(["stored", "virtual"]), + as: stringType() + }).optional() + }).strict(); + compositePK3 = objectType({ + name: stringType(), + columns: stringType().array() + }).strict(); + uniqueConstraint3 = objectType({ + name: stringType(), + columns: stringType().array() + }).strict(); + table3 = objectType({ + name: stringType(), + columns: recordType(stringType(), column3), + indexes: recordType(stringType(), index3), + compositePrimaryKeys: recordType(stringType(), compositePK3), + uniqueConstraints: recordType(stringType(), uniqueConstraint3).default({}) + }).strict(); + viewMeta2 = objectType({ + algorithm: enumType(["undefined", "merge", "temptable"]), + sqlSecurity: enumType(["definer", "invoker"]), + withCheckOption: enumType(["local", "cascaded"]).optional() + }).strict(); + kitInternals3 = objectType({ + tables: recordType( + stringType(), + objectType({ + columns: recordType( + stringType(), + objectType({ isDefaultAnExpression: booleanType().optional() }).optional() + ) + }).optional() + ).optional(), + indexes: recordType( + stringType(), + objectType({ + columns: recordType( + stringType(), + objectType({ isExpression: booleanType().optional() }).optional() + ) + }).optional() + ).optional() + }).optional(); + dialect2 = literalType("singlestore"); + schemaHash3 = objectType({ + id: stringType(), + prevId: stringType() + }); + schemaInternal2 = objectType({ + version: literalType("1"), + dialect: dialect2, + tables: recordType(stringType(), table3), + /* views: record(string(), view).default({}), */ + _meta: objectType({ + tables: recordType(stringType(), stringType()), + columns: recordType(stringType(), stringType()) + }), + internal: kitInternals3 + }).strict(); + schema2 = schemaInternal2.merge(schemaHash3); + tableSquashed3 = objectType({ + name: stringType(), + columns: recordType(stringType(), column3), + indexes: recordType(stringType(), stringType()), + compositePrimaryKeys: recordType(stringType(), stringType()), + uniqueConstraints: recordType(stringType(), stringType()).default({}) + }).strict(); + schemaSquashed2 = objectType({ + version: literalType("1"), + dialect: dialect2, + tables: recordType(stringType(), tableSquashed3) + /* views: record(string(), viewSquashed), */ + }).strict(); + SingleStoreSquasher = { + squashIdx: (idx) => { + index3.parse(idx); + return `${idx.name};${idx.columns.join(",")};${idx.isUnique};${idx.using ?? ""};${idx.algorithm ?? ""};${idx.lock ?? ""}`; + }, + unsquashIdx: (input) => { + const [name, columnsString, isUnique, using, algorithm, lock] = input.split(";"); + const destructed = { + name, + columns: columnsString.split(","), + isUnique: isUnique === "true", + using: using ? using : void 0, + algorithm: algorithm ? algorithm : void 0, + lock: lock ? lock : void 0 + }; + return index3.parse(destructed); + }, + squashPK: (pk) => { + return `${pk.name};${pk.columns.join(",")}`; + }, + unsquashPK: (pk) => { + const splitted = pk.split(";"); + return { name: splitted[0], columns: splitted[1].split(",") }; + }, + squashUnique: (unq) => { + return `${unq.name};${unq.columns.join(",")}`; + }, + unsquashUnique: (unq) => { + const [name, columns] = unq.split(";"); + return { name, columns: columns.split(",") }; + } + /* squashView: (view: View): string => { + return `${view.algorithm};${view.sqlSecurity};${view.withCheckOption}`; + }, + unsquashView: (meta: string): SquasherViewMeta => { + const [algorithm, sqlSecurity, withCheckOption] = meta.split(';'); + const toReturn = { + algorithm: algorithm, + sqlSecurity: sqlSecurity, + withCheckOption: withCheckOption !== 'undefined' ? withCheckOption : undefined, + }; + + return viewMeta.parse(toReturn); + }, */ + }; + squashSingleStoreScheme = (json) => { + const mappedTables = Object.fromEntries( + Object.entries(json.tables).map((it) => { + const squashedIndexes = mapValues(it[1].indexes, (index6) => { + return SingleStoreSquasher.squashIdx(index6); + }); + const squashedPKs = mapValues(it[1].compositePrimaryKeys, (pk) => { + return SingleStoreSquasher.squashPK(pk); + }); + const squashedUniqueConstraints = mapValues( + it[1].uniqueConstraints, + (unq) => { + return SingleStoreSquasher.squashUnique(unq); + } + ); + return [ + it[0], + { + name: it[1].name, + columns: it[1].columns, + indexes: squashedIndexes, + compositePrimaryKeys: squashedPKs, + uniqueConstraints: squashedUniqueConstraints + } + ]; + }) + ); + return { + version: "1", + dialect: json.dialect, + tables: mappedTables + /* views: mappedViews, */ + }; + }; + singlestoreSchema = schema2; + singlestoreSchemaSquashed = schemaSquashed2; + backwardCompatibleSingleStoreSchema = unionType([singlestoreSchema, schema2]); + drySingleStore = singlestoreSchema.parse({ + version: "1", + dialect: "singlestore", + id: originUUID, + prevId: "", + tables: {}, + schemas: {}, + /* views: {}, */ + _meta: { + schemas: {}, + tables: {}, + columns: {} + } + }); + } +}); + +// src/serializer/sqliteSchema.ts +var index4, fk3, compositePK4, column4, tableV33, uniqueConstraint4, checkConstraint3, table4, view3, dialect3, schemaHash4, schemaInternalV32, schemaInternalV42, schemaInternalV52, kitInternals4, latestVersion, schemaInternal3, schemaV32, schemaV42, schemaV52, schema3, tableSquashed4, schemaSquashed3, SQLiteSquasher, squashSqliteScheme, drySQLite, sqliteSchemaV5, sqliteSchema, SQLiteSchemaSquashed, backwardCompatibleSqliteSchema; +var init_sqliteSchema = __esm({ + "src/serializer/sqliteSchema.ts"() { + "use strict"; + init_esm(); + init_global(); + index4 = objectType({ + name: stringType(), + columns: stringType().array(), + where: stringType().optional(), + isUnique: booleanType() + }).strict(); + fk3 = objectType({ + name: stringType(), + tableFrom: stringType(), + columnsFrom: stringType().array(), + tableTo: stringType(), + columnsTo: stringType().array(), + onUpdate: stringType().optional(), + onDelete: stringType().optional() + }).strict(); + compositePK4 = objectType({ + columns: stringType().array(), + name: stringType().optional() + }).strict(); + column4 = objectType({ + name: stringType(), + type: stringType(), + primaryKey: booleanType(), + notNull: booleanType(), + autoincrement: booleanType().optional(), + default: anyType().optional(), + generated: objectType({ + type: enumType(["stored", "virtual"]), + as: stringType() + }).optional() + }).strict(); + tableV33 = objectType({ + name: stringType(), + columns: recordType(stringType(), column4), + indexes: recordType(stringType(), index4), + foreignKeys: recordType(stringType(), fk3) + }).strict(); + uniqueConstraint4 = objectType({ + name: stringType(), + columns: stringType().array() + }).strict(); + checkConstraint3 = objectType({ + name: stringType(), + value: stringType() + }).strict(); + table4 = objectType({ + name: stringType(), + columns: recordType(stringType(), column4), + indexes: recordType(stringType(), index4), + foreignKeys: recordType(stringType(), fk3), + compositePrimaryKeys: recordType(stringType(), compositePK4), + uniqueConstraints: recordType(stringType(), uniqueConstraint4).default({}), + checkConstraints: recordType(stringType(), checkConstraint3).default({}) + }).strict(); + view3 = objectType({ + name: stringType(), + columns: recordType(stringType(), column4), + definition: stringType().optional(), + isExisting: booleanType() + }).strict(); + dialect3 = enumType(["sqlite"]); + schemaHash4 = objectType({ + id: stringType(), + prevId: stringType() + }).strict(); + schemaInternalV32 = objectType({ + version: literalType("3"), + dialect: dialect3, + tables: recordType(stringType(), tableV33), + enums: objectType({}) + }).strict(); + schemaInternalV42 = objectType({ + version: literalType("4"), + dialect: dialect3, + tables: recordType(stringType(), table4), + views: recordType(stringType(), view3).default({}), + enums: objectType({}) + }).strict(); + schemaInternalV52 = objectType({ + version: literalType("5"), + dialect: dialect3, + tables: recordType(stringType(), table4), + enums: objectType({}), + _meta: objectType({ + tables: recordType(stringType(), stringType()), + columns: recordType(stringType(), stringType()) + }) + }).strict(); + kitInternals4 = objectType({ + indexes: recordType( + stringType(), + objectType({ + columns: recordType( + stringType(), + objectType({ isExpression: booleanType().optional() }).optional() + ) + }).optional() + ).optional() + }).optional(); + latestVersion = literalType("6"); + schemaInternal3 = objectType({ + version: latestVersion, + dialect: dialect3, + tables: recordType(stringType(), table4), + views: recordType(stringType(), view3).default({}), + enums: objectType({}), + _meta: objectType({ + tables: recordType(stringType(), stringType()), + columns: recordType(stringType(), stringType()) + }), + internal: kitInternals4 + }).strict(); + schemaV32 = schemaInternalV32.merge(schemaHash4).strict(); + schemaV42 = schemaInternalV42.merge(schemaHash4).strict(); + schemaV52 = schemaInternalV52.merge(schemaHash4).strict(); + schema3 = schemaInternal3.merge(schemaHash4).strict(); + tableSquashed4 = objectType({ + name: stringType(), + columns: recordType(stringType(), column4), + indexes: recordType(stringType(), stringType()), + foreignKeys: recordType(stringType(), stringType()), + compositePrimaryKeys: recordType(stringType(), stringType()), + uniqueConstraints: recordType(stringType(), stringType()).default({}), + checkConstraints: recordType(stringType(), stringType()).default({}) + }).strict(); + schemaSquashed3 = objectType({ + version: latestVersion, + dialect: dialect3, + tables: recordType(stringType(), tableSquashed4), + views: recordType(stringType(), view3), + enums: anyType() + }).strict(); + SQLiteSquasher = { + squashIdx: (idx) => { + index4.parse(idx); + return `${idx.name};${idx.columns.join(",")};${idx.isUnique};${idx.where ?? ""}`; + }, + unsquashIdx: (input) => { + const [name, columnsString, isUnique, where] = input.split(";"); + const result = index4.parse({ + name, + columns: columnsString.split(","), + isUnique: isUnique === "true", + where: where ?? void 0 + }); + return result; + }, + squashUnique: (unq) => { + return `${unq.name};${unq.columns.join(",")}`; + }, + unsquashUnique: (unq) => { + const [name, columns] = unq.split(";"); + return { name, columns: columns.split(",") }; + }, + squashFK: (fk5) => { + return `${fk5.name};${fk5.tableFrom};${fk5.columnsFrom.join(",")};${fk5.tableTo};${fk5.columnsTo.join(",")};${fk5.onUpdate ?? ""};${fk5.onDelete ?? ""}`; + }, + unsquashFK: (input) => { + const [ + name, + tableFrom, + columnsFromStr, + tableTo, + columnsToStr, + onUpdate, + onDelete + ] = input.split(";"); + const result = fk3.parse({ + name, + tableFrom, + columnsFrom: columnsFromStr.split(","), + tableTo, + columnsTo: columnsToStr.split(","), + onUpdate, + onDelete + }); + return result; + }, + squashPushFK: (fk5) => { + return `${fk5.tableFrom};${fk5.columnsFrom.join(",")};${fk5.tableTo};${fk5.columnsTo.join(",")};${fk5.onUpdate ?? ""};${fk5.onDelete ?? ""}`; + }, + unsquashPushFK: (input) => { + const [ + tableFrom, + columnsFromStr, + tableTo, + columnsToStr, + onUpdate, + onDelete + ] = input.split(";"); + const result = fk3.parse({ + name: "", + tableFrom, + columnsFrom: columnsFromStr.split(","), + tableTo, + columnsTo: columnsToStr.split(","), + onUpdate, + onDelete + }); + return result; + }, + squashPK: (pk) => { + return pk.columns.join(","); + }, + unsquashPK: (pk) => { + return pk.split(","); + }, + squashCheck: (check2) => { + return `${check2.name};${check2.value}`; + }, + unsquashCheck: (input) => { + const [ + name, + value + ] = input.split(";"); + return { name, value }; + } + }; + squashSqliteScheme = (json, action) => { + const mappedTables = Object.fromEntries( + Object.entries(json.tables).map((it) => { + const squashedIndexes = mapValues(it[1].indexes, (index6) => { + return SQLiteSquasher.squashIdx(index6); + }); + const squashedFKs = customMapEntries( + it[1].foreignKeys, + (key, value) => { + return action === "push" ? [ + SQLiteSquasher.squashPushFK(value), + SQLiteSquasher.squashPushFK(value) + ] : [key, SQLiteSquasher.squashFK(value)]; + } + ); + const squashedPKs = mapValues(it[1].compositePrimaryKeys, (pk) => { + return SQLiteSquasher.squashPK(pk); + }); + const squashedUniqueConstraints = mapValues( + it[1].uniqueConstraints, + (unq) => { + return SQLiteSquasher.squashUnique(unq); + } + ); + const squashedCheckConstraints = mapValues( + it[1].checkConstraints, + (check2) => { + return SQLiteSquasher.squashCheck(check2); + } + ); + return [ + it[0], + { + name: it[1].name, + columns: it[1].columns, + indexes: squashedIndexes, + foreignKeys: squashedFKs, + compositePrimaryKeys: squashedPKs, + uniqueConstraints: squashedUniqueConstraints, + checkConstraints: squashedCheckConstraints + } + ]; + }) + ); + return { + version: "6", + dialect: json.dialect, + tables: mappedTables, + views: json.views, + enums: json.enums + }; + }; + drySQLite = schema3.parse({ + version: "6", + dialect: "sqlite", + id: originUUID, + prevId: "", + tables: {}, + views: {}, + enums: {}, + _meta: { + tables: {}, + columns: {} + } + }); + sqliteSchemaV5 = schemaV52; + sqliteSchema = schema3; + SQLiteSchemaSquashed = schemaSquashed3; + backwardCompatibleSqliteSchema = unionType([sqliteSchemaV5, schema3]); + } +}); + +// src/schemaValidator.ts +var dialects, dialect4, commonSquashedSchema, commonSchema; +var init_schemaValidator = __esm({ + "src/schemaValidator.ts"() { + "use strict"; + init_esm(); + init_mysqlSchema(); + init_pgSchema(); + init_singlestoreSchema(); + init_sqliteSchema(); + dialects = ["postgresql", "mysql", "sqlite", "turso", "singlestore", "gel"]; + dialect4 = enumType(dialects); + commonSquashedSchema = unionType([ + pgSchemaSquashed, + mysqlSchemaSquashed, + SQLiteSchemaSquashed, + singlestoreSchemaSquashed + ]); + commonSchema = unionType([pgSchema, mysqlSchema, sqliteSchema, singlestoreSchema]); + } +}); + +// ../node_modules/.pnpm/camelcase@7.0.1/node_modules/camelcase/index.js +function camelCase(input, options) { + if (!(typeof input === "string" || Array.isArray(input))) { + throw new TypeError("Expected the input to be `string | string[]`"); + } + options = { + pascalCase: false, + preserveConsecutiveUppercase: false, + ...options + }; + if (Array.isArray(input)) { + input = input.map((x4) => x4.trim()).filter((x4) => x4.length).join("-"); + } else { + input = input.trim(); + } + if (input.length === 0) { + return ""; + } + const toLowerCase = options.locale === false ? (string2) => string2.toLowerCase() : (string2) => string2.toLocaleLowerCase(options.locale); + const toUpperCase = options.locale === false ? (string2) => string2.toUpperCase() : (string2) => string2.toLocaleUpperCase(options.locale); + if (input.length === 1) { + if (SEPARATORS.test(input)) { + return ""; + } + return options.pascalCase ? toUpperCase(input) : toLowerCase(input); + } + const hasUpperCase = input !== toLowerCase(input); + if (hasUpperCase) { + input = preserveCamelCase(input, toLowerCase, toUpperCase, options.preserveConsecutiveUppercase); + } + input = input.replace(LEADING_SEPARATORS, ""); + input = options.preserveConsecutiveUppercase ? preserveConsecutiveUppercase(input, toLowerCase) : toLowerCase(input); + if (options.pascalCase) { + input = toUpperCase(input.charAt(0)) + input.slice(1); + } + return postProcess(input, toUpperCase); +} +var UPPERCASE, LOWERCASE, LEADING_CAPITAL, IDENTIFIER, SEPARATORS, LEADING_SEPARATORS, SEPARATORS_AND_IDENTIFIER, NUMBERS_AND_IDENTIFIER, preserveCamelCase, preserveConsecutiveUppercase, postProcess; +var init_camelcase = __esm({ + "../node_modules/.pnpm/camelcase@7.0.1/node_modules/camelcase/index.js"() { + UPPERCASE = /[\p{Lu}]/u; + LOWERCASE = /[\p{Ll}]/u; + LEADING_CAPITAL = /^[\p{Lu}](?![\p{Lu}])/gu; + IDENTIFIER = /([\p{Alpha}\p{N}_]|$)/u; + SEPARATORS = /[_.\- ]+/; + LEADING_SEPARATORS = new RegExp("^" + SEPARATORS.source); + SEPARATORS_AND_IDENTIFIER = new RegExp(SEPARATORS.source + IDENTIFIER.source, "gu"); + NUMBERS_AND_IDENTIFIER = new RegExp("\\d+" + IDENTIFIER.source, "gu"); + preserveCamelCase = (string2, toLowerCase, toUpperCase, preserveConsecutiveUppercase2) => { + let isLastCharLower = false; + let isLastCharUpper = false; + let isLastLastCharUpper = false; + let isLastLastCharPreserved = false; + for (let index6 = 0; index6 < string2.length; index6++) { + const character = string2[index6]; + isLastLastCharPreserved = index6 > 2 ? string2[index6 - 3] === "-" : true; + if (isLastCharLower && UPPERCASE.test(character)) { + string2 = string2.slice(0, index6) + "-" + string2.slice(index6); + isLastCharLower = false; + isLastLastCharUpper = isLastCharUpper; + isLastCharUpper = true; + index6++; + } else if (isLastCharUpper && isLastLastCharUpper && LOWERCASE.test(character) && (!isLastLastCharPreserved || preserveConsecutiveUppercase2)) { + string2 = string2.slice(0, index6 - 1) + "-" + string2.slice(index6 - 1); + isLastLastCharUpper = isLastCharUpper; + isLastCharUpper = false; + isLastCharLower = true; + } else { + isLastCharLower = toLowerCase(character) === character && toUpperCase(character) !== character; + isLastLastCharUpper = isLastCharUpper; + isLastCharUpper = toUpperCase(character) === character && toLowerCase(character) !== character; + } + } + return string2; + }; + preserveConsecutiveUppercase = (input, toLowerCase) => { + LEADING_CAPITAL.lastIndex = 0; + return input.replace(LEADING_CAPITAL, (m1) => toLowerCase(m1)); + }; + postProcess = (input, toUpperCase) => { + SEPARATORS_AND_IDENTIFIER.lastIndex = 0; + NUMBERS_AND_IDENTIFIER.lastIndex = 0; + return input.replace(SEPARATORS_AND_IDENTIFIER, (_3, identifier) => toUpperCase(identifier)).replace(NUMBERS_AND_IDENTIFIER, (m4) => toUpperCase(m4)); + }; + } +}); + +// src/@types/utils.ts +var init_utils = __esm({ + "src/@types/utils.ts"() { + "use strict"; + init_camelcase(); + String.prototype.trimChar = function(char) { + let start = 0; + let end = this.length; + while (start < end && this[start] === char) ++start; + while (end > start && this[end - 1] === char) --end; + return start > 0 || end < this.length ? this.substring(start, end) : this.toString(); + }; + String.prototype.squashSpaces = function() { + return this.replace(/ +/g, " ").trim(); + }; + String.prototype.camelCase = function() { + return camelCase(String(this)); + }; + String.prototype.capitalise = function() { + return this && this.length > 0 ? `${this[0].toUpperCase()}${this.slice(1)}` : String(this); + }; + String.prototype.concatIf = function(it, condition) { + return condition ? `${this}${it}` : String(this); + }; + String.prototype.snake_case = function() { + return this && this.length > 0 ? `${this.replace(/[A-Z]/g, (letter) => `_${letter.toLowerCase()}`)}` : String(this); + }; + Array.prototype.random = function() { + return this[~~(Math.random() * this.length)]; + }; + } +}); + +// src/cli/views.ts +var import_hanji, warning, err, info, grey, error, schema4, isRenamePromptItem, ResolveColumnSelect, tableKey, ResolveSelectNamed, ResolveSelect, ResolveSchemasSelect, Spinner, IntrospectProgress, MigrateProgress, ProgressView, DropMigrationView, trimmedRange; +var init_views = __esm({ + "src/cli/views.ts"() { + "use strict"; + init_source(); + import_hanji = __toESM(require_hanji()); + init_utils2(); + warning = (msg) => { + (0, import_hanji.render)(`[${source_default.yellow("Warning")}] ${msg}`); + }; + err = (msg) => { + (0, import_hanji.render)(`${source_default.bold.red("Error")} ${msg}`); + }; + info = (msg, greyMsg = "") => { + return `${source_default.blue.bold("Info:")} ${msg} ${greyMsg ? source_default.grey(greyMsg) : ""}`.trim(); + }; + grey = (msg) => { + return source_default.grey(msg); + }; + error = (error2, greyMsg = "") => { + return `${source_default.bgRed.bold(" Error ")} ${error2} ${greyMsg ? source_default.grey(greyMsg) : ""}`.trim(); + }; + schema4 = (schema6) => { + const tables = Object.values(schema6.tables); + let msg = source_default.bold(`${tables.length} tables +`); + msg += tables.map((t4) => { + const columnsCount = Object.values(t4.columns).length; + const indexesCount = Object.values(t4.indexes).length; + let foreignKeys = 0; + if (schema6.dialect !== "singlestore") { + foreignKeys = Object.values(t4.foreignKeys).length; + } + return `${source_default.bold.blue(t4.name)} ${source_default.gray( + `${columnsCount} columns ${indexesCount} indexes ${foreignKeys} fks` + )}`; + }).join("\n"); + msg += "\n"; + const enums = objectValues( + "enums" in schema6 ? "values" in schema6["enums"] ? schema6["enums"] : {} : {} + ); + if (enums.length > 0) { + msg += "\n"; + msg += source_default.bold(`${enums.length} enums +`); + msg += enums.map((it) => { + return `${source_default.bold.blue(it.name)} ${source_default.gray( + `[${Object.values(it.values).join(", ")}]` + )}`; + }).join("\n"); + msg += "\n"; + } + return msg; + }; + isRenamePromptItem = (item) => { + return "from" in item && "to" in item; + }; + ResolveColumnSelect = class extends import_hanji.Prompt { + constructor(tableName, base, data) { + super(); + this.tableName = tableName; + this.base = base; + this.on("attach", (terminal) => terminal.toggleCursor("hide")); + this.data = new import_hanji.SelectState(data); + this.data.bind(this); + } + render(status) { + if (status === "submitted" || status === "aborted") { + return "\n"; + } + let text = ` +Is ${source_default.bold.blue( + this.base.name + )} column in ${source_default.bold.blue( + this.tableName + )} table created or renamed from another column? +`; + const isSelectedRenamed = isRenamePromptItem( + this.data.items[this.data.selectedIdx] + ); + const selectedPrefix = isSelectedRenamed ? source_default.yellow("\u276F ") : source_default.green("\u276F "); + const labelLength = this.data.items.filter((it) => isRenamePromptItem(it)).map((it) => { + return this.base.name.length + 3 + it["from"].name.length; + }).reduce((a3, b3) => { + if (a3 > b3) { + return a3; + } + return b3; + }, 0); + this.data.items.forEach((it, idx) => { + const isSelected = idx === this.data.selectedIdx; + const isRenamed = isRenamePromptItem(it); + const title = isRenamed ? `${it.from.name} \u203A ${it.to.name}`.padEnd(labelLength, " ") : it.name.padEnd(labelLength, " "); + const label = isRenamed ? `${source_default.yellow("~")} ${title} ${source_default.gray("rename column")}` : `${source_default.green("+")} ${title} ${source_default.gray("create column")}`; + text += isSelected ? `${selectedPrefix}${label}` : ` ${label}`; + text += idx !== this.data.items.length - 1 ? "\n" : ""; + }); + return text; + } + result() { + return this.data.items[this.data.selectedIdx]; + } + }; + tableKey = (it) => { + return it.schema === "public" || !it.schema ? it.name : `${it.schema}.${it.name}`; + }; + ResolveSelectNamed = class extends import_hanji.Prompt { + constructor(base, data, entityType) { + super(); + this.base = base; + this.entityType = entityType; + this.on("attach", (terminal) => terminal.toggleCursor("hide")); + this.state = new import_hanji.SelectState(data); + this.state.bind(this); + } + render(status) { + if (status === "submitted" || status === "aborted") { + return ""; + } + const key = this.base.name; + let text = ` +Is ${source_default.bold.blue(key)} ${this.entityType} created or renamed from another ${this.entityType}? +`; + const isSelectedRenamed = isRenamePromptItem( + this.state.items[this.state.selectedIdx] + ); + const selectedPrefix = isSelectedRenamed ? source_default.yellow("\u276F ") : source_default.green("\u276F "); + const labelLength = this.state.items.filter((it) => isRenamePromptItem(it)).map((_3) => { + const it = _3; + const keyFrom = it.from.name; + return key.length + 3 + keyFrom.length; + }).reduce((a3, b3) => { + if (a3 > b3) { + return a3; + } + return b3; + }, 0); + const entityType = this.entityType; + this.state.items.forEach((it, idx) => { + const isSelected = idx === this.state.selectedIdx; + const isRenamed = isRenamePromptItem(it); + const title = isRenamed ? `${it.from.name} \u203A ${it.to.name}`.padEnd(labelLength, " ") : it.name.padEnd(labelLength, " "); + const label = isRenamed ? `${source_default.yellow("~")} ${title} ${source_default.gray(`rename ${entityType}`)}` : `${source_default.green("+")} ${title} ${source_default.gray(`create ${entityType}`)}`; + text += isSelected ? `${selectedPrefix}${label}` : ` ${label}`; + text += idx !== this.state.items.length - 1 ? "\n" : ""; + }); + return text; + } + result() { + return this.state.items[this.state.selectedIdx]; + } + }; + ResolveSelect = class extends import_hanji.Prompt { + constructor(base, data, entityType) { + super(); + this.base = base; + this.entityType = entityType; + this.on("attach", (terminal) => terminal.toggleCursor("hide")); + this.state = new import_hanji.SelectState(data); + this.state.bind(this); + this.base = base; + } + render(status) { + if (status === "submitted" || status === "aborted") { + return ""; + } + const key = tableKey(this.base); + let text = ` +Is ${source_default.bold.blue(key)} ${this.entityType} created or renamed from another ${this.entityType}? +`; + const isSelectedRenamed = isRenamePromptItem( + this.state.items[this.state.selectedIdx] + ); + const selectedPrefix = isSelectedRenamed ? source_default.yellow("\u276F ") : source_default.green("\u276F "); + const labelLength = this.state.items.filter((it) => isRenamePromptItem(it)).map((_3) => { + const it = _3; + const keyFrom = tableKey(it.from); + return key.length + 3 + keyFrom.length; + }).reduce((a3, b3) => { + if (a3 > b3) { + return a3; + } + return b3; + }, 0); + const entityType = this.entityType; + this.state.items.forEach((it, idx) => { + const isSelected = idx === this.state.selectedIdx; + const isRenamed = isRenamePromptItem(it); + const title = isRenamed ? `${tableKey(it.from)} \u203A ${tableKey(it.to)}`.padEnd(labelLength, " ") : tableKey(it).padEnd(labelLength, " "); + const label = isRenamed ? `${source_default.yellow("~")} ${title} ${source_default.gray(`rename ${entityType}`)}` : `${source_default.green("+")} ${title} ${source_default.gray(`create ${entityType}`)}`; + text += isSelected ? `${selectedPrefix}${label}` : ` ${label}`; + text += idx !== this.state.items.length - 1 ? "\n" : ""; + }); + return text; + } + result() { + return this.state.items[this.state.selectedIdx]; + } + }; + ResolveSchemasSelect = class extends import_hanji.Prompt { + constructor(base, data) { + super(); + this.base = base; + this.on("attach", (terminal) => terminal.toggleCursor("hide")); + this.state = new import_hanji.SelectState(data); + this.state.bind(this); + this.base = base; + } + render(status) { + if (status === "submitted" || status === "aborted") { + return ""; + } + let text = ` +Is ${source_default.bold.blue( + this.base.name + )} schema created or renamed from another schema? +`; + const isSelectedRenamed = isRenamePromptItem( + this.state.items[this.state.selectedIdx] + ); + const selectedPrefix = isSelectedRenamed ? source_default.yellow("\u276F ") : source_default.green("\u276F "); + const labelLength = this.state.items.filter((it) => isRenamePromptItem(it)).map((it) => { + return this.base.name.length + 3 + it["from"].name.length; + }).reduce((a3, b3) => { + if (a3 > b3) { + return a3; + } + return b3; + }, 0); + this.state.items.forEach((it, idx) => { + const isSelected = idx === this.state.selectedIdx; + const isRenamed = isRenamePromptItem(it); + const title = isRenamed ? `${it.from.name} \u203A ${it.to.name}`.padEnd(labelLength, " ") : it.name.padEnd(labelLength, " "); + const label = isRenamed ? `${source_default.yellow("~")} ${title} ${source_default.gray("rename schema")}` : `${source_default.green("+")} ${title} ${source_default.gray("create schema")}`; + text += isSelected ? `${selectedPrefix}${label}` : ` ${label}`; + text += idx !== this.state.items.length - 1 ? "\n" : ""; + }); + return text; + } + result() { + return this.state.items[this.state.selectedIdx]; + } + }; + Spinner = class { + constructor(frames) { + this.frames = frames; + this.offset = 0; + this.tick = () => { + this.iterator(); + }; + this.value = () => { + return this.frames[this.offset]; + }; + this.iterator = () => { + this.offset += 1; + this.offset %= frames.length - 1; + }; + } + }; + IntrospectProgress = class extends import_hanji.TaskView { + constructor(hasEnums = false) { + super(); + this.hasEnums = hasEnums; + this.spinner = new Spinner("\u28F7\u28EF\u28DF\u287F\u28BF\u28FB\u28FD\u28FE".split("")); + this.state = { + tables: { + count: 0, + name: "tables", + status: "fetching" + }, + columns: { + count: 0, + name: "columns", + status: "fetching" + }, + enums: { + count: 0, + name: "enums", + status: "fetching" + }, + indexes: { + count: 0, + name: "indexes", + status: "fetching" + }, + fks: { + count: 0, + name: "foreign keys", + status: "fetching" + }, + policies: { + count: 0, + name: "policies", + status: "fetching" + }, + checks: { + count: 0, + name: "check constraints", + status: "fetching" + }, + views: { + count: 0, + name: "views", + status: "fetching" + } + }; + this.formatCount = (count) => { + const width = Math.max.apply( + null, + Object.values(this.state).map((it) => it.count.toFixed(0).length) + ); + return count.toFixed(0).padEnd(width, " "); + }; + this.statusText = (spinner, stage) => { + const { name, count } = stage; + const isDone = stage.status === "done"; + const prefix2 = isDone ? `[${source_default.green("\u2713")}]` : `[${spinner}]`; + const formattedCount = this.formatCount(count); + const suffix = isDone ? `${formattedCount} ${name} fetched` : `${formattedCount} ${name} fetching`; + return `${prefix2} ${suffix} +`; + }; + this.timeout = setInterval(() => { + this.spinner.tick(); + this.requestLayout(); + }, 128); + this.on("detach", () => clearInterval(this.timeout)); + } + update(stage, count, status) { + this.state[stage].count = count; + this.state[stage].status = status; + this.requestLayout(); + } + render() { + let info2 = ""; + const spin = this.spinner.value(); + info2 += this.statusText(spin, this.state.tables); + info2 += this.statusText(spin, this.state.columns); + info2 += this.hasEnums ? this.statusText(spin, this.state.enums) : ""; + info2 += this.statusText(spin, this.state.indexes); + info2 += this.statusText(spin, this.state.fks); + info2 += this.statusText(spin, this.state.policies); + info2 += this.statusText(spin, this.state.checks); + info2 += this.statusText(spin, this.state.views); + return info2; + } + }; + MigrateProgress = class extends import_hanji.TaskView { + constructor() { + super(); + this.spinner = new Spinner("\u28F7\u28EF\u28DF\u287F\u28BF\u28FB\u28FD\u28FE".split("")); + this.timeout = setInterval(() => { + this.spinner.tick(); + this.requestLayout(); + }, 128); + this.on("detach", () => clearInterval(this.timeout)); + } + render(status) { + if (status === "pending" || status === "rejected") { + const spin = this.spinner.value(); + return `[${spin}] applying migrations...`; + } + return `[${source_default.green("\u2713")}] migrations applied successfully!`; + } + }; + ProgressView = class extends import_hanji.TaskView { + constructor(progressText, successText) { + super(); + this.progressText = progressText; + this.successText = successText; + this.spinner = new Spinner("\u28F7\u28EF\u28DF\u287F\u28BF\u28FB\u28FD\u28FE".split("")); + this.timeout = setInterval(() => { + this.spinner.tick(); + this.requestLayout(); + }, 128); + this.on("detach", () => clearInterval(this.timeout)); + } + render(status) { + if (status === "pending" || status === "rejected") { + const spin = this.spinner.value(); + return `[${spin}] ${this.progressText} +`; + } + return `[${source_default.green("\u2713")}] ${this.successText} +`; + } + }; + DropMigrationView = class extends import_hanji.Prompt { + constructor(data) { + super(); + this.on("attach", (terminal) => terminal.toggleCursor("hide")); + this.data = new import_hanji.SelectState(data); + this.data.selectedIdx = data.length - 1; + this.data.bind(this); + } + render(status) { + if (status === "submitted" || status === "aborted") { + return "\n"; + } + let text = source_default.bold("Please select migration to drop:\n"); + const selectedPrefix = source_default.yellow("\u276F "); + const data = trimmedRange(this.data.items, this.data.selectedIdx, 9); + const labelLength = data.trimmed.map((it) => it.tag.length).reduce((a3, b3) => { + if (a3 > b3) { + return a3; + } + return b3; + }, 0); + text += data.startTrimmed ? " ...\n" : ""; + data.trimmed.forEach((it, idx) => { + const isSelected = idx === this.data.selectedIdx - data.offset; + let title = it.tag.padEnd(labelLength, " "); + title = isSelected ? source_default.yellow(title) : title; + text += isSelected ? `${selectedPrefix}${title}` : ` ${title}`; + text += idx !== this.data.items.length - 1 ? "\n" : ""; + }); + text += data.endTrimmed ? " ...\n" : ""; + return text; + } + result() { + return this.data.items[this.data.selectedIdx]; + } + }; + trimmedRange = (arr, index6, limitLines) => { + const limit = limitLines - 2; + const sideLimit = Math.round(limit / 2); + const endTrimmed = arr.length - sideLimit > index6; + const startTrimmed = index6 > sideLimit - 1; + const paddingStart = Math.max(index6 + sideLimit - arr.length, 0); + const paddingEnd = Math.min(index6 - sideLimit + 1, 0); + const d1 = endTrimmed ? 1 : 0; + const d22 = startTrimmed ? 0 : 1; + const start = Math.max(0, index6 - sideLimit + d1 - paddingStart); + const end = Math.min(arr.length, index6 + sideLimit + d22 - paddingEnd); + return { + trimmed: arr.slice(start, end), + offset: start, + startTrimmed, + endTrimmed + }; + }; + } +}); + +// src/serializer/gelSchema.ts +var enumSchema2, enumSchemaV12, indexColumn2, index5, fk4, sequenceSchema2, roleSchema2, sequenceSquashed2, column5, checkConstraint4, columnSquashed2, compositePK5, uniqueConstraint5, policy2, policySquashed2, viewWithOption2, matViewWithOption2, mergedViewWithOption2, view4, table5, schemaHash5, kitInternals5, gelSchemaExternal, gelSchemaInternal, tableSquashed5, gelSchemaSquashed, gelSchema, backwardCompatibleGelSchema, dryGel; +var init_gelSchema = __esm({ + "src/serializer/gelSchema.ts"() { + "use strict"; + init_global(); + init_esm(); + enumSchema2 = objectType({ + name: stringType(), + schema: stringType(), + values: stringType().array() + }).strict(); + enumSchemaV12 = objectType({ + name: stringType(), + values: recordType(stringType(), stringType()) + }).strict(); + indexColumn2 = objectType({ + expression: stringType(), + isExpression: booleanType(), + asc: booleanType(), + nulls: stringType().optional(), + opclass: stringType().optional() + }); + index5 = objectType({ + name: stringType(), + columns: indexColumn2.array(), + isUnique: booleanType(), + with: recordType(stringType(), anyType()).optional(), + method: stringType().default("btree"), + where: stringType().optional(), + concurrently: booleanType().default(false) + }).strict(); + fk4 = objectType({ + name: stringType(), + tableFrom: stringType(), + columnsFrom: stringType().array(), + tableTo: stringType(), + schemaTo: stringType().optional(), + columnsTo: stringType().array(), + onUpdate: stringType().optional(), + onDelete: stringType().optional() + }).strict(); + sequenceSchema2 = objectType({ + name: stringType(), + increment: stringType().optional(), + minValue: stringType().optional(), + maxValue: stringType().optional(), + startWith: stringType().optional(), + cache: stringType().optional(), + cycle: booleanType().optional(), + schema: stringType() + }).strict(); + roleSchema2 = objectType({ + name: stringType(), + createDb: booleanType().optional(), + createRole: booleanType().optional(), + inherit: booleanType().optional() + }).strict(); + sequenceSquashed2 = objectType({ + name: stringType(), + schema: stringType(), + values: stringType() + }).strict(); + column5 = objectType({ + name: stringType(), + type: stringType(), + typeSchema: stringType().optional(), + primaryKey: booleanType(), + notNull: booleanType(), + default: anyType().optional(), + isUnique: anyType().optional(), + uniqueName: stringType().optional(), + nullsNotDistinct: booleanType().optional(), + generated: objectType({ + type: literalType("stored"), + as: stringType() + }).optional(), + identity: sequenceSchema2.merge(objectType({ type: enumType(["always", "byDefault"]) })).optional() + }).strict(); + checkConstraint4 = objectType({ + name: stringType(), + value: stringType() + }).strict(); + columnSquashed2 = objectType({ + name: stringType(), + type: stringType(), + typeSchema: stringType().optional(), + primaryKey: booleanType(), + notNull: booleanType(), + default: anyType().optional(), + isUnique: anyType().optional(), + uniqueName: stringType().optional(), + nullsNotDistinct: booleanType().optional(), + generated: objectType({ + type: literalType("stored"), + as: stringType() + }).optional(), + identity: stringType().optional() + }).strict(); + compositePK5 = objectType({ + name: stringType(), + columns: stringType().array() + }).strict(); + uniqueConstraint5 = objectType({ + name: stringType(), + columns: stringType().array(), + nullsNotDistinct: booleanType() + }).strict(); + policy2 = objectType({ + name: stringType(), + as: enumType(["PERMISSIVE", "RESTRICTIVE"]).optional(), + for: enumType(["ALL", "SELECT", "INSERT", "UPDATE", "DELETE"]).optional(), + to: stringType().array().optional(), + using: stringType().optional(), + withCheck: stringType().optional(), + on: stringType().optional(), + schema: stringType().optional() + }).strict(); + policySquashed2 = objectType({ + name: stringType(), + values: stringType() + }).strict(); + viewWithOption2 = objectType({ + checkOption: enumType(["local", "cascaded"]).optional(), + securityBarrier: booleanType().optional(), + securityInvoker: booleanType().optional() + }).strict(); + matViewWithOption2 = objectType({ + fillfactor: numberType().optional(), + toastTupleTarget: numberType().optional(), + parallelWorkers: numberType().optional(), + autovacuumEnabled: booleanType().optional(), + vacuumIndexCleanup: enumType(["auto", "off", "on"]).optional(), + vacuumTruncate: booleanType().optional(), + autovacuumVacuumThreshold: numberType().optional(), + autovacuumVacuumScaleFactor: numberType().optional(), + autovacuumVacuumCostDelay: numberType().optional(), + autovacuumVacuumCostLimit: numberType().optional(), + autovacuumFreezeMinAge: numberType().optional(), + autovacuumFreezeMaxAge: numberType().optional(), + autovacuumFreezeTableAge: numberType().optional(), + autovacuumMultixactFreezeMinAge: numberType().optional(), + autovacuumMultixactFreezeMaxAge: numberType().optional(), + autovacuumMultixactFreezeTableAge: numberType().optional(), + logAutovacuumMinDuration: numberType().optional(), + userCatalogTable: booleanType().optional() + }).strict(); + mergedViewWithOption2 = viewWithOption2.merge(matViewWithOption2).strict(); + view4 = objectType({ + name: stringType(), + schema: stringType(), + columns: recordType(stringType(), column5), + definition: stringType().optional(), + materialized: booleanType(), + with: mergedViewWithOption2.optional(), + isExisting: booleanType(), + withNoData: booleanType().optional(), + using: stringType().optional(), + tablespace: stringType().optional() + }).strict(); + table5 = objectType({ + name: stringType(), + schema: stringType(), + columns: recordType(stringType(), column5), + indexes: recordType(stringType(), index5), + foreignKeys: recordType(stringType(), fk4), + compositePrimaryKeys: recordType(stringType(), compositePK5), + uniqueConstraints: recordType(stringType(), uniqueConstraint5).default({}), + policies: recordType(stringType(), policy2).default({}), + checkConstraints: recordType(stringType(), checkConstraint4).default({}), + isRLSEnabled: booleanType().default(false) + }).strict(); + schemaHash5 = objectType({ + id: stringType(), + prevId: stringType() + }); + kitInternals5 = objectType({ + tables: recordType( + stringType(), + objectType({ + columns: recordType( + stringType(), + objectType({ + isArray: booleanType().optional(), + dimensions: numberType().optional(), + rawType: stringType().optional(), + isDefaultAnExpression: booleanType().optional() + }).optional() + ) + }).optional() + ) + }).optional(); + gelSchemaExternal = objectType({ + version: literalType("1"), + dialect: literalType("gel"), + tables: arrayType(table5), + enums: arrayType(enumSchemaV12), + schemas: arrayType(objectType({ name: stringType() })), + _meta: objectType({ + schemas: recordType(stringType(), stringType()), + tables: recordType(stringType(), stringType()), + columns: recordType(stringType(), stringType()) + }) + }).strict(); + gelSchemaInternal = objectType({ + version: literalType("1"), + dialect: literalType("gel"), + tables: recordType(stringType(), table5), + enums: recordType(stringType(), enumSchema2), + schemas: recordType(stringType(), stringType()), + views: recordType(stringType(), view4).default({}), + sequences: recordType(stringType(), sequenceSchema2).default({}), + roles: recordType(stringType(), roleSchema2).default({}), + policies: recordType(stringType(), policy2).default({}), + _meta: objectType({ + schemas: recordType(stringType(), stringType()), + tables: recordType(stringType(), stringType()), + columns: recordType(stringType(), stringType()) + }), + internal: kitInternals5 + }).strict(); + tableSquashed5 = objectType({ + name: stringType(), + schema: stringType(), + columns: recordType(stringType(), columnSquashed2), + indexes: recordType(stringType(), stringType()), + foreignKeys: recordType(stringType(), stringType()), + compositePrimaryKeys: recordType(stringType(), stringType()), + uniqueConstraints: recordType(stringType(), stringType()), + policies: recordType(stringType(), stringType()), + checkConstraints: recordType(stringType(), stringType()), + isRLSEnabled: booleanType().default(false) + }).strict(); + gelSchemaSquashed = objectType({ + version: literalType("1"), + dialect: literalType("gel"), + tables: recordType(stringType(), tableSquashed5), + enums: recordType(stringType(), enumSchema2), + schemas: recordType(stringType(), stringType()), + views: recordType(stringType(), view4), + sequences: recordType(stringType(), sequenceSquashed2), + roles: recordType(stringType(), roleSchema2).default({}), + policies: recordType(stringType(), policySquashed2).default({}) + }).strict(); + gelSchema = gelSchemaInternal.merge(schemaHash5); + backwardCompatibleGelSchema = gelSchema; + dryGel = gelSchema.parse({ + version: "1", + dialect: "gel", + id: originUUID, + prevId: "", + tables: {}, + enums: {}, + schemas: {}, + policies: {}, + roles: {}, + sequences: {}, + _meta: { + schemas: {}, + tables: {}, + columns: {} + } + }); + } +}); + +// src/utils.ts +function isPgArrayType(sqlType) { + return sqlType.match(/.*\[\d*\].*|.*\[\].*/g) !== null; +} +function findAddedAndRemoved(columnNames1, columnNames2) { + const set1 = new Set(columnNames1); + const set2 = new Set(columnNames2); + const addedColumns = columnNames2.filter((it) => !set1.has(it)); + const removedColumns = columnNames1.filter((it) => !set2.has(it)); + return { addedColumns, removedColumns }; +} +function escapeSingleQuotes(str) { + return str.replace(/'/g, "''"); +} +function unescapeSingleQuotes(str, ignoreFirstAndLastChar) { + const regex = ignoreFirstAndLastChar ? /(? { + return JSON.parse(JSON.stringify(it)); + }; + objectValues = (obj) => { + return Object.values(obj); + }; + assertV1OutFolder = (out) => { + if (!(0, import_fs.existsSync)(out)) return; + const oldMigrationFolders = (0, import_fs.readdirSync)(out).filter( + (it) => it.length === 14 && /^\d+$/.test(it) + ); + if (oldMigrationFolders.length > 0) { + console.log( + `Your migrations folder format is outdated, please run ${source_default.green.bold( + `drizzle-kit up` + )}` + ); + process.exit(1); + } + }; + dryJournal = (dialect6) => { + return { + version: snapshotVersion, + dialect: dialect6, + entries: [] + }; + }; + prepareOutFolder = (out, dialect6) => { + const meta = (0, import_path.join)(out, "meta"); + const journalPath = (0, import_path.join)(meta, "_journal.json"); + if (!(0, import_fs.existsSync)((0, import_path.join)(out, "meta"))) { + (0, import_fs.mkdirSync)(meta, { recursive: true }); + (0, import_fs.writeFileSync)(journalPath, JSON.stringify(dryJournal(dialect6))); + } + const journal = JSON.parse((0, import_fs.readFileSync)(journalPath).toString()); + const snapshots = (0, import_fs.readdirSync)(meta).filter((it) => !it.startsWith("_")).map((it) => (0, import_path.join)(meta, it)); + snapshots.sort(); + return { meta, snapshots, journal }; + }; + validatorForDialect = (dialect6) => { + switch (dialect6) { + case "postgresql": + return { validator: backwardCompatiblePgSchema, version: 7 }; + case "sqlite": + return { validator: backwardCompatibleSqliteSchema, version: 6 }; + case "turso": + return { validator: backwardCompatibleSqliteSchema, version: 6 }; + case "mysql": + return { validator: backwardCompatibleMysqlSchema, version: 5 }; + case "singlestore": + return { validator: backwardCompatibleSingleStoreSchema, version: 1 }; + case "gel": + return { validator: backwardCompatibleGelSchema, version: 1 }; + } + }; + validateWithReport = (snapshots, dialect6) => { + const { validator: validator2, version: version3 } = validatorForDialect(dialect6); + const result = snapshots.reduce( + (accum, it) => { + const raw2 = JSON.parse((0, import_fs.readFileSync)(`./${it}`).toString()); + accum.rawMap[it] = raw2; + if (raw2["version"] && Number(raw2["version"]) > version3) { + console.log( + info( + `${it} snapshot is of unsupported version, please update drizzle-kit` + ) + ); + process.exit(0); + } + const result2 = validator2.safeParse(raw2); + if (!result2.success) { + accum.malformed.push(it); + return accum; + } + const snapshot = result2.data; + if (snapshot.version !== String(version3)) { + accum.nonLatest.push(it); + return accum; + } + const idEntry = accum.idsMap[snapshot["prevId"]] ?? { + parent: it, + snapshots: [] + }; + idEntry.snapshots.push(it); + accum.idsMap[snapshot["prevId"]] = idEntry; + return accum; + }, + { + malformed: [], + nonLatest: [], + idToNameMap: {}, + idsMap: {}, + rawMap: {} + } + ); + return result; + }; + prepareMigrationFolder = (outFolder = "drizzle", dialect6) => { + const { snapshots, journal } = prepareOutFolder(outFolder, dialect6); + const report = validateWithReport(snapshots, dialect6); + if (report.nonLatest.length > 0) { + console.log( + report.nonLatest.map((it) => { + return `${it}/snapshot.json is not of the latest version`; + }).concat(`Run ${source_default.green.bold(`drizzle-kit up`)}`).join("\n") + ); + process.exit(0); + } + if (report.malformed.length) { + const message2 = report.malformed.map((it) => { + return `${it} data is malformed`; + }).join("\n"); + console.log(message2); + } + const collisionEntries = Object.entries(report.idsMap).filter( + (it) => it[1].snapshots.length > 1 + ); + const message = collisionEntries.map((it) => { + const data = it[1]; + return `[${data.snapshots.join( + ", " + )}] are pointing to a parent snapshot: ${data.parent}/snapshot.json which is a collision.`; + }).join("\n").trim(); + if (message) { + console.log(source_default.red.bold("Error:"), message); + } + const abort = report.malformed.length || collisionEntries.length > 0; + if (abort) { + process.exit(0); + } + return { snapshots, journal }; + }; + prepareMigrationMeta = (schemas, tables, columns) => { + const _meta = { + schemas: {}, + tables: {}, + columns: {} + }; + schemas.forEach((it) => { + const from = schemaRenameKey(it.from); + const to = schemaRenameKey(it.to); + _meta.schemas[from] = to; + }); + tables.forEach((it) => { + const from = tableRenameKey(it.from); + const to = tableRenameKey(it.to); + _meta.tables[from] = to; + }); + columns.forEach((it) => { + const from = columnRenameKey(it.from.table, it.from.schema, it.from.column); + const to = columnRenameKey(it.to.table, it.to.schema, it.to.column); + _meta.columns[from] = to; + }); + return _meta; + }; + schemaRenameKey = (it) => { + return it; + }; + tableRenameKey = (it) => { + const out = it.schema ? `"${it.schema}"."${it.name}"` : `"${it.name}"`; + return out; + }; + columnRenameKey = (table6, schema6, column11) => { + const out = schema6 ? `"${schema6}"."${table6}"."${column11}"` : `"${table6}"."${column11}"`; + return out; + }; + normaliseSQLiteUrl = (it, type) => { + if (type === "libsql") { + if (it.startsWith("file:")) { + return it; + } + try { + const url = (0, import_url.parse)(it); + if (url.protocol === null) { + return `file:${it}`; + } + return it; + } catch (e4) { + return `file:${it}`; + } + } + if (type === "better-sqlite") { + if (it.startsWith("file:")) { + return it.substring(5); + } + return it; + } + assertUnreachable(type); + }; + normalisePGliteUrl = (it) => { + if (it.startsWith("file:")) { + return it.substring(5); + } + return it; + }; + } +}); + +// ../node_modules/.pnpm/fs.realpath@1.0.0/node_modules/fs.realpath/old.js +var require_old = __commonJS({ + "../node_modules/.pnpm/fs.realpath@1.0.0/node_modules/fs.realpath/old.js"(exports2) { + var pathModule = require("path"); + var isWindows = process.platform === "win32"; + var fs7 = require("fs"); + var DEBUG = process.env.NODE_DEBUG && /fs/.test(process.env.NODE_DEBUG); + function rethrow() { + var callback; + if (DEBUG) { + var backtrace = new Error(); + callback = debugCallback; + } else + callback = missingCallback; + return callback; + function debugCallback(err2) { + if (err2) { + backtrace.message = err2.message; + err2 = backtrace; + missingCallback(err2); + } + } + function missingCallback(err2) { + if (err2) { + if (process.throwDeprecation) + throw err2; + else if (!process.noDeprecation) { + var msg = "fs: missing callback " + (err2.stack || err2.message); + if (process.traceDeprecation) + console.trace(msg); + else + console.error(msg); + } + } + } + } + function maybeCallback(cb) { + return typeof cb === "function" ? cb : rethrow(); + } + var normalize = pathModule.normalize; + if (isWindows) { + nextPartRe = /(.*?)(?:[\/\\]+|$)/g; + } else { + nextPartRe = /(.*?)(?:[\/]+|$)/g; + } + var nextPartRe; + if (isWindows) { + splitRootRe = /^(?:[a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/][^\\\/]+)?[\\\/]*/; + } else { + splitRootRe = /^[\/]*/; + } + var splitRootRe; + exports2.realpathSync = function realpathSync(p3, cache3) { + p3 = pathModule.resolve(p3); + if (cache3 && Object.prototype.hasOwnProperty.call(cache3, p3)) { + return cache3[p3]; + } + var original = p3, seenLinks = {}, knownHard = {}; + var pos; + var current; + var base; + var previous; + start(); + function start() { + var m4 = splitRootRe.exec(p3); + pos = m4[0].length; + current = m4[0]; + base = m4[0]; + previous = ""; + if (isWindows && !knownHard[base]) { + fs7.lstatSync(base); + knownHard[base] = true; + } + } + while (pos < p3.length) { + nextPartRe.lastIndex = pos; + var result = nextPartRe.exec(p3); + previous = current; + current += result[0]; + base = previous + result[1]; + pos = nextPartRe.lastIndex; + if (knownHard[base] || cache3 && cache3[base] === base) { + continue; + } + var resolvedLink; + if (cache3 && Object.prototype.hasOwnProperty.call(cache3, base)) { + resolvedLink = cache3[base]; + } else { + var stat2 = fs7.lstatSync(base); + if (!stat2.isSymbolicLink()) { + knownHard[base] = true; + if (cache3) cache3[base] = base; + continue; + } + var linkTarget = null; + if (!isWindows) { + var id = stat2.dev.toString(32) + ":" + stat2.ino.toString(32); + if (seenLinks.hasOwnProperty(id)) { + linkTarget = seenLinks[id]; + } + } + if (linkTarget === null) { + fs7.statSync(base); + linkTarget = fs7.readlinkSync(base); + } + resolvedLink = pathModule.resolve(previous, linkTarget); + if (cache3) cache3[base] = resolvedLink; + if (!isWindows) seenLinks[id] = linkTarget; + } + p3 = pathModule.resolve(resolvedLink, p3.slice(pos)); + start(); + } + if (cache3) cache3[original] = p3; + return p3; + }; + exports2.realpath = function realpath(p3, cache3, cb) { + if (typeof cb !== "function") { + cb = maybeCallback(cache3); + cache3 = null; + } + p3 = pathModule.resolve(p3); + if (cache3 && Object.prototype.hasOwnProperty.call(cache3, p3)) { + return process.nextTick(cb.bind(null, null, cache3[p3])); + } + var original = p3, seenLinks = {}, knownHard = {}; + var pos; + var current; + var base; + var previous; + start(); + function start() { + var m4 = splitRootRe.exec(p3); + pos = m4[0].length; + current = m4[0]; + base = m4[0]; + previous = ""; + if (isWindows && !knownHard[base]) { + fs7.lstat(base, function(err2) { + if (err2) return cb(err2); + knownHard[base] = true; + LOOP(); + }); + } else { + process.nextTick(LOOP); + } + } + function LOOP() { + if (pos >= p3.length) { + if (cache3) cache3[original] = p3; + return cb(null, p3); + } + nextPartRe.lastIndex = pos; + var result = nextPartRe.exec(p3); + previous = current; + current += result[0]; + base = previous + result[1]; + pos = nextPartRe.lastIndex; + if (knownHard[base] || cache3 && cache3[base] === base) { + return process.nextTick(LOOP); + } + if (cache3 && Object.prototype.hasOwnProperty.call(cache3, base)) { + return gotResolvedLink(cache3[base]); + } + return fs7.lstat(base, gotStat); + } + function gotStat(err2, stat2) { + if (err2) return cb(err2); + if (!stat2.isSymbolicLink()) { + knownHard[base] = true; + if (cache3) cache3[base] = base; + return process.nextTick(LOOP); + } + if (!isWindows) { + var id = stat2.dev.toString(32) + ":" + stat2.ino.toString(32); + if (seenLinks.hasOwnProperty(id)) { + return gotTarget(null, seenLinks[id], base); + } + } + fs7.stat(base, function(err3) { + if (err3) return cb(err3); + fs7.readlink(base, function(err4, target) { + if (!isWindows) seenLinks[id] = target; + gotTarget(err4, target); + }); + }); + } + function gotTarget(err2, target, base2) { + if (err2) return cb(err2); + var resolvedLink = pathModule.resolve(previous, target); + if (cache3) cache3[base2] = resolvedLink; + gotResolvedLink(resolvedLink); + } + function gotResolvedLink(resolvedLink) { + p3 = pathModule.resolve(resolvedLink, p3.slice(pos)); + start(); + } + }; + } +}); + +// ../node_modules/.pnpm/fs.realpath@1.0.0/node_modules/fs.realpath/index.js +var require_fs = __commonJS({ + "../node_modules/.pnpm/fs.realpath@1.0.0/node_modules/fs.realpath/index.js"(exports2, module2) { + module2.exports = realpath; + realpath.realpath = realpath; + realpath.sync = realpathSync; + realpath.realpathSync = realpathSync; + realpath.monkeypatch = monkeypatch; + realpath.unmonkeypatch = unmonkeypatch; + var fs7 = require("fs"); + var origRealpath = fs7.realpath; + var origRealpathSync = fs7.realpathSync; + var version3 = process.version; + var ok = /^v[0-5]\./.test(version3); + var old = require_old(); + function newError(er) { + return er && er.syscall === "realpath" && (er.code === "ELOOP" || er.code === "ENOMEM" || er.code === "ENAMETOOLONG"); + } + function realpath(p3, cache3, cb) { + if (ok) { + return origRealpath(p3, cache3, cb); + } + if (typeof cache3 === "function") { + cb = cache3; + cache3 = null; + } + origRealpath(p3, cache3, function(er, result) { + if (newError(er)) { + old.realpath(p3, cache3, cb); + } else { + cb(er, result); + } + }); + } + function realpathSync(p3, cache3) { + if (ok) { + return origRealpathSync(p3, cache3); + } + try { + return origRealpathSync(p3, cache3); + } catch (er) { + if (newError(er)) { + return old.realpathSync(p3, cache3); + } else { + throw er; + } + } + } + function monkeypatch() { + fs7.realpath = realpath; + fs7.realpathSync = realpathSync; + } + function unmonkeypatch() { + fs7.realpath = origRealpath; + fs7.realpathSync = origRealpathSync; + } + } +}); + +// ../node_modules/.pnpm/minimatch@5.1.6/node_modules/minimatch/lib/path.js +var require_path = __commonJS({ + "../node_modules/.pnpm/minimatch@5.1.6/node_modules/minimatch/lib/path.js"(exports2, module2) { + var isWindows = typeof process === "object" && process && process.platform === "win32"; + module2.exports = isWindows ? { sep: "\\" } : { sep: "/" }; + } +}); + +// ../node_modules/.pnpm/balanced-match@1.0.2/node_modules/balanced-match/index.js +var require_balanced_match = __commonJS({ + "../node_modules/.pnpm/balanced-match@1.0.2/node_modules/balanced-match/index.js"(exports2, module2) { + "use strict"; + module2.exports = balanced; + function balanced(a3, b3, str) { + if (a3 instanceof RegExp) a3 = maybeMatch(a3, str); + if (b3 instanceof RegExp) b3 = maybeMatch(b3, str); + var r4 = range(a3, b3, str); + return r4 && { + start: r4[0], + end: r4[1], + pre: str.slice(0, r4[0]), + body: str.slice(r4[0] + a3.length, r4[1]), + post: str.slice(r4[1] + b3.length) + }; + } + function maybeMatch(reg, str) { + var m4 = str.match(reg); + return m4 ? m4[0] : null; + } + balanced.range = range; + function range(a3, b3, str) { + var begs, beg, left, right, result; + var ai = str.indexOf(a3); + var bi = str.indexOf(b3, ai + 1); + var i4 = ai; + if (ai >= 0 && bi > 0) { + if (a3 === b3) { + return [ai, bi]; + } + begs = []; + left = str.length; + while (i4 >= 0 && !result) { + if (i4 == ai) { + begs.push(i4); + ai = str.indexOf(a3, i4 + 1); + } else if (begs.length == 1) { + result = [begs.pop(), bi]; + } else { + beg = begs.pop(); + if (beg < left) { + left = beg; + right = bi; + } + bi = str.indexOf(b3, i4 + 1); + } + i4 = ai < bi && ai >= 0 ? ai : bi; + } + if (begs.length) { + result = [left, right]; + } + } + return result; + } + } +}); + +// ../node_modules/.pnpm/brace-expansion@2.0.1/node_modules/brace-expansion/index.js +var require_brace_expansion = __commonJS({ + "../node_modules/.pnpm/brace-expansion@2.0.1/node_modules/brace-expansion/index.js"(exports2, module2) { + var balanced = require_balanced_match(); + module2.exports = expandTop; + var escSlash = "\0SLASH" + Math.random() + "\0"; + var escOpen = "\0OPEN" + Math.random() + "\0"; + var escClose = "\0CLOSE" + Math.random() + "\0"; + var escComma = "\0COMMA" + Math.random() + "\0"; + var escPeriod = "\0PERIOD" + Math.random() + "\0"; + function numeric(str) { + return parseInt(str, 10) == str ? parseInt(str, 10) : str.charCodeAt(0); + } + function escapeBraces(str) { + return str.split("\\\\").join(escSlash).split("\\{").join(escOpen).split("\\}").join(escClose).split("\\,").join(escComma).split("\\.").join(escPeriod); + } + function unescapeBraces(str) { + return str.split(escSlash).join("\\").split(escOpen).join("{").split(escClose).join("}").split(escComma).join(",").split(escPeriod).join("."); + } + function parseCommaParts(str) { + if (!str) + return [""]; + var parts = []; + var m4 = balanced("{", "}", str); + if (!m4) + return str.split(","); + var pre = m4.pre; + var body = m4.body; + var post = m4.post; + var p3 = pre.split(","); + p3[p3.length - 1] += "{" + body + "}"; + var postParts = parseCommaParts(post); + if (post.length) { + p3[p3.length - 1] += postParts.shift(); + p3.push.apply(p3, postParts); + } + parts.push.apply(parts, p3); + return parts; + } + function expandTop(str) { + if (!str) + return []; + if (str.substr(0, 2) === "{}") { + str = "\\{\\}" + str.substr(2); + } + return expand2(escapeBraces(str), true).map(unescapeBraces); + } + function embrace(str) { + return "{" + str + "}"; + } + function isPadded(el) { + return /^-?0\d/.test(el); + } + function lte(i4, y2) { + return i4 <= y2; + } + function gte(i4, y2) { + return i4 >= y2; + } + function expand2(str, isTop) { + var expansions = []; + var m4 = balanced("{", "}", str); + if (!m4) return [str]; + var pre = m4.pre; + var post = m4.post.length ? expand2(m4.post, false) : [""]; + if (/\$$/.test(m4.pre)) { + for (var k3 = 0; k3 < post.length; k3++) { + var expansion = pre + "{" + m4.body + "}" + post[k3]; + expansions.push(expansion); + } + } else { + var isNumericSequence = /^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(m4.body); + var isAlphaSequence = /^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(m4.body); + var isSequence = isNumericSequence || isAlphaSequence; + var isOptions = m4.body.indexOf(",") >= 0; + if (!isSequence && !isOptions) { + if (m4.post.match(/,.*\}/)) { + str = m4.pre + "{" + m4.body + escClose + m4.post; + return expand2(str); + } + return [str]; + } + var n3; + if (isSequence) { + n3 = m4.body.split(/\.\./); + } else { + n3 = parseCommaParts(m4.body); + if (n3.length === 1) { + n3 = expand2(n3[0], false).map(embrace); + if (n3.length === 1) { + return post.map(function(p3) { + return m4.pre + n3[0] + p3; + }); + } + } + } + var N; + if (isSequence) { + var x4 = numeric(n3[0]); + var y2 = numeric(n3[1]); + var width = Math.max(n3[0].length, n3[1].length); + var incr = n3.length == 3 ? Math.abs(numeric(n3[2])) : 1; + var test = lte; + var reverse = y2 < x4; + if (reverse) { + incr *= -1; + test = gte; + } + var pad = n3.some(isPadded); + N = []; + for (var i4 = x4; test(i4, y2); i4 += incr) { + var c3; + if (isAlphaSequence) { + c3 = String.fromCharCode(i4); + if (c3 === "\\") + c3 = ""; + } else { + c3 = String(i4); + if (pad) { + var need = width - c3.length; + if (need > 0) { + var z2 = new Array(need + 1).join("0"); + if (i4 < 0) + c3 = "-" + z2 + c3.slice(1); + else + c3 = z2 + c3; + } + } + } + N.push(c3); + } + } else { + N = []; + for (var j3 = 0; j3 < n3.length; j3++) { + N.push.apply(N, expand2(n3[j3], false)); + } + } + for (var j3 = 0; j3 < N.length; j3++) { + for (var k3 = 0; k3 < post.length; k3++) { + var expansion = pre + N[j3] + post[k3]; + if (!isTop || isSequence || expansion) + expansions.push(expansion); + } + } + } + return expansions; + } + } +}); + +// ../node_modules/.pnpm/minimatch@5.1.6/node_modules/minimatch/minimatch.js +var require_minimatch = __commonJS({ + "../node_modules/.pnpm/minimatch@5.1.6/node_modules/minimatch/minimatch.js"(exports2, module2) { + var minimatch2 = module2.exports = (p3, pattern, options = {}) => { + assertValidPattern2(pattern); + if (!options.nocomment && pattern.charAt(0) === "#") { + return false; + } + return new Minimatch2(pattern, options).match(p3); + }; + module2.exports = minimatch2; + var path4 = require_path(); + minimatch2.sep = path4.sep; + var GLOBSTAR2 = Symbol("globstar **"); + minimatch2.GLOBSTAR = GLOBSTAR2; + var expand2 = require_brace_expansion(); + var plTypes2 = { + "!": { open: "(?:(?!(?:", close: "))[^/]*?)" }, + "?": { open: "(?:", close: ")?" }, + "+": { open: "(?:", close: ")+" }, + "*": { open: "(?:", close: ")*" }, + "@": { open: "(?:", close: ")" } + }; + var qmark2 = "[^/]"; + var star2 = qmark2 + "*?"; + var twoStarDot2 = "(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?"; + var twoStarNoDot2 = "(?:(?!(?:\\/|^)\\.).)*?"; + var charSet2 = (s4) => s4.split("").reduce((set, c3) => { + set[c3] = true; + return set; + }, {}); + var reSpecials2 = charSet2("().*{}+?[]^$\\!"); + var addPatternStartSet2 = charSet2("[.("); + var slashSplit = /\/+/; + minimatch2.filter = (pattern, options = {}) => (p3, i4, list) => minimatch2(p3, pattern, options); + var ext2 = (a3, b3 = {}) => { + const t4 = {}; + Object.keys(a3).forEach((k3) => t4[k3] = a3[k3]); + Object.keys(b3).forEach((k3) => t4[k3] = b3[k3]); + return t4; + }; + minimatch2.defaults = (def) => { + if (!def || typeof def !== "object" || !Object.keys(def).length) { + return minimatch2; + } + const orig = minimatch2; + const m4 = (p3, pattern, options) => orig(p3, pattern, ext2(def, options)); + m4.Minimatch = class Minimatch extends orig.Minimatch { + constructor(pattern, options) { + super(pattern, ext2(def, options)); + } + }; + m4.Minimatch.defaults = (options) => orig.defaults(ext2(def, options)).Minimatch; + m4.filter = (pattern, options) => orig.filter(pattern, ext2(def, options)); + m4.defaults = (options) => orig.defaults(ext2(def, options)); + m4.makeRe = (pattern, options) => orig.makeRe(pattern, ext2(def, options)); + m4.braceExpand = (pattern, options) => orig.braceExpand(pattern, ext2(def, options)); + m4.match = (list, pattern, options) => orig.match(list, pattern, ext2(def, options)); + return m4; + }; + minimatch2.braceExpand = (pattern, options) => braceExpand2(pattern, options); + var braceExpand2 = (pattern, options = {}) => { + assertValidPattern2(pattern); + if (options.nobrace || !/\{(?:(?!\{).)*\}/.test(pattern)) { + return [pattern]; + } + return expand2(pattern); + }; + var MAX_PATTERN_LENGTH2 = 1024 * 64; + var assertValidPattern2 = (pattern) => { + if (typeof pattern !== "string") { + throw new TypeError("invalid pattern"); + } + if (pattern.length > MAX_PATTERN_LENGTH2) { + throw new TypeError("pattern is too long"); + } + }; + var SUBPARSE = Symbol("subparse"); + minimatch2.makeRe = (pattern, options) => new Minimatch2(pattern, options || {}).makeRe(); + minimatch2.match = (list, pattern, options = {}) => { + const mm = new Minimatch2(pattern, options); + list = list.filter((f5) => mm.match(f5)); + if (mm.options.nonull && !list.length) { + list.push(pattern); + } + return list; + }; + var globUnescape2 = (s4) => s4.replace(/\\(.)/g, "$1"); + var charUnescape = (s4) => s4.replace(/\\([^-\]])/g, "$1"); + var regExpEscape2 = (s4) => s4.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"); + var braExpEscape = (s4) => s4.replace(/[[\]\\]/g, "\\$&"); + var Minimatch2 = class { + constructor(pattern, options) { + assertValidPattern2(pattern); + if (!options) options = {}; + this.options = options; + this.set = []; + this.pattern = pattern; + this.windowsPathsNoEscape = !!options.windowsPathsNoEscape || options.allowWindowsEscape === false; + if (this.windowsPathsNoEscape) { + this.pattern = this.pattern.replace(/\\/g, "/"); + } + this.regexp = null; + this.negate = false; + this.comment = false; + this.empty = false; + this.partial = !!options.partial; + this.make(); + } + debug() { + } + make() { + const pattern = this.pattern; + const options = this.options; + if (!options.nocomment && pattern.charAt(0) === "#") { + this.comment = true; + return; + } + if (!pattern) { + this.empty = true; + return; + } + this.parseNegate(); + let set = this.globSet = this.braceExpand(); + if (options.debug) this.debug = (...args) => console.error(...args); + this.debug(this.pattern, set); + set = this.globParts = set.map((s4) => s4.split(slashSplit)); + this.debug(this.pattern, set); + set = set.map((s4, si, set2) => s4.map(this.parse, this)); + this.debug(this.pattern, set); + set = set.filter((s4) => s4.indexOf(false) === -1); + this.debug(this.pattern, set); + this.set = set; + } + parseNegate() { + if (this.options.nonegate) return; + const pattern = this.pattern; + let negate = false; + let negateOffset = 0; + for (let i4 = 0; i4 < pattern.length && pattern.charAt(i4) === "!"; i4++) { + negate = !negate; + negateOffset++; + } + if (negateOffset) this.pattern = pattern.slice(negateOffset); + this.negate = negate; + } + // set partial to true to test if, for example, + // "/a/b" matches the start of "/*/b/*/d" + // Partial means, if you run out of file before you run + // out of pattern, then that's fine, as long as all + // the parts match. + matchOne(file, pattern, partial) { + var options = this.options; + this.debug( + "matchOne", + { "this": this, file, pattern } + ); + this.debug("matchOne", file.length, pattern.length); + for (var fi = 0, pi = 0, fl = file.length, pl = pattern.length; fi < fl && pi < pl; fi++, pi++) { + this.debug("matchOne loop"); + var p3 = pattern[pi]; + var f5 = file[fi]; + this.debug(pattern, p3, f5); + if (p3 === false) return false; + if (p3 === GLOBSTAR2) { + this.debug("GLOBSTAR", [pattern, p3, f5]); + var fr = fi; + var pr = pi + 1; + if (pr === pl) { + this.debug("** at the end"); + for (; fi < fl; fi++) { + if (file[fi] === "." || file[fi] === ".." || !options.dot && file[fi].charAt(0) === ".") return false; + } + return true; + } + while (fr < fl) { + var swallowee = file[fr]; + this.debug("\nglobstar while", file, fr, pattern, pr, swallowee); + if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) { + this.debug("globstar found match!", fr, fl, swallowee); + return true; + } else { + if (swallowee === "." || swallowee === ".." || !options.dot && swallowee.charAt(0) === ".") { + this.debug("dot detected!", file, fr, pattern, pr); + break; + } + this.debug("globstar swallow a segment, and continue"); + fr++; + } + } + if (partial) { + this.debug("\n>>> no match, partial?", file, fr, pattern, pr); + if (fr === fl) return true; + } + return false; + } + var hit; + if (typeof p3 === "string") { + hit = f5 === p3; + this.debug("string match", p3, f5, hit); + } else { + hit = f5.match(p3); + this.debug("pattern match", p3, f5, hit); + } + if (!hit) return false; + } + if (fi === fl && pi === pl) { + return true; + } else if (fi === fl) { + return partial; + } else if (pi === pl) { + return fi === fl - 1 && file[fi] === ""; + } + throw new Error("wtf?"); + } + braceExpand() { + return braceExpand2(this.pattern, this.options); + } + parse(pattern, isSub) { + assertValidPattern2(pattern); + const options = this.options; + if (pattern === "**") { + if (!options.noglobstar) + return GLOBSTAR2; + else + pattern = "*"; + } + if (pattern === "") return ""; + let re = ""; + let hasMagic = false; + let escaping = false; + const patternListStack = []; + const negativeLists = []; + let stateChar; + let inClass = false; + let reClassStart = -1; + let classStart = -1; + let cs; + let pl; + let sp; + let dotTravAllowed = pattern.charAt(0) === "."; + let dotFileAllowed = options.dot || dotTravAllowed; + const patternStart = () => dotTravAllowed ? "" : dotFileAllowed ? "(?!(?:^|\\/)\\.{1,2}(?:$|\\/))" : "(?!\\.)"; + const subPatternStart = (p3) => p3.charAt(0) === "." ? "" : options.dot ? "(?!(?:^|\\/)\\.{1,2}(?:$|\\/))" : "(?!\\.)"; + const clearStateChar = () => { + if (stateChar) { + switch (stateChar) { + case "*": + re += star2; + hasMagic = true; + break; + case "?": + re += qmark2; + hasMagic = true; + break; + default: + re += "\\" + stateChar; + break; + } + this.debug("clearStateChar %j %j", stateChar, re); + stateChar = false; + } + }; + for (let i4 = 0, c3; i4 < pattern.length && (c3 = pattern.charAt(i4)); i4++) { + this.debug("%s %s %s %j", pattern, i4, re, c3); + if (escaping) { + if (c3 === "/") { + return false; + } + if (reSpecials2[c3]) { + re += "\\"; + } + re += c3; + escaping = false; + continue; + } + switch (c3) { + /* istanbul ignore next */ + case "/": { + return false; + } + case "\\": + if (inClass && pattern.charAt(i4 + 1) === "-") { + re += c3; + continue; + } + clearStateChar(); + escaping = true; + continue; + // the various stateChar values + // for the "extglob" stuff. + case "?": + case "*": + case "+": + case "@": + case "!": + this.debug("%s %s %s %j <-- stateChar", pattern, i4, re, c3); + if (inClass) { + this.debug(" in class"); + if (c3 === "!" && i4 === classStart + 1) c3 = "^"; + re += c3; + continue; + } + this.debug("call clearStateChar %j", stateChar); + clearStateChar(); + stateChar = c3; + if (options.noext) clearStateChar(); + continue; + case "(": { + if (inClass) { + re += "("; + continue; + } + if (!stateChar) { + re += "\\("; + continue; + } + const plEntry = { + type: stateChar, + start: i4 - 1, + reStart: re.length, + open: plTypes2[stateChar].open, + close: plTypes2[stateChar].close + }; + this.debug(this.pattern, " ", plEntry); + patternListStack.push(plEntry); + re += plEntry.open; + if (plEntry.start === 0 && plEntry.type !== "!") { + dotTravAllowed = true; + re += subPatternStart(pattern.slice(i4 + 1)); + } + this.debug("plType %j %j", stateChar, re); + stateChar = false; + continue; + } + case ")": { + const plEntry = patternListStack[patternListStack.length - 1]; + if (inClass || !plEntry) { + re += "\\)"; + continue; + } + patternListStack.pop(); + clearStateChar(); + hasMagic = true; + pl = plEntry; + re += pl.close; + if (pl.type === "!") { + negativeLists.push(Object.assign(pl, { reEnd: re.length })); + } + continue; + } + case "|": { + const plEntry = patternListStack[patternListStack.length - 1]; + if (inClass || !plEntry) { + re += "\\|"; + continue; + } + clearStateChar(); + re += "|"; + if (plEntry.start === 0 && plEntry.type !== "!") { + dotTravAllowed = true; + re += subPatternStart(pattern.slice(i4 + 1)); + } + continue; + } + // these are mostly the same in regexp and glob + case "[": + clearStateChar(); + if (inClass) { + re += "\\" + c3; + continue; + } + inClass = true; + classStart = i4; + reClassStart = re.length; + re += c3; + continue; + case "]": + if (i4 === classStart + 1 || !inClass) { + re += "\\" + c3; + continue; + } + cs = pattern.substring(classStart + 1, i4); + try { + RegExp("[" + braExpEscape(charUnescape(cs)) + "]"); + re += c3; + } catch (er) { + re = re.substring(0, reClassStart) + "(?:$.)"; + } + hasMagic = true; + inClass = false; + continue; + default: + clearStateChar(); + if (reSpecials2[c3] && !(c3 === "^" && inClass)) { + re += "\\"; + } + re += c3; + break; + } + } + if (inClass) { + cs = pattern.slice(classStart + 1); + sp = this.parse(cs, SUBPARSE); + re = re.substring(0, reClassStart) + "\\[" + sp[0]; + hasMagic = hasMagic || sp[1]; + } + for (pl = patternListStack.pop(); pl; pl = patternListStack.pop()) { + let tail; + tail = re.slice(pl.reStart + pl.open.length); + this.debug("setting tail", re, pl); + tail = tail.replace(/((?:\\{2}){0,64})(\\?)\|/g, (_3, $1, $2) => { + if (!$2) { + $2 = "\\"; + } + return $1 + $1 + $2 + "|"; + }); + this.debug("tail=%j\n %s", tail, tail, pl, re); + const t4 = pl.type === "*" ? star2 : pl.type === "?" ? qmark2 : "\\" + pl.type; + hasMagic = true; + re = re.slice(0, pl.reStart) + t4 + "\\(" + tail; + } + clearStateChar(); + if (escaping) { + re += "\\\\"; + } + const addPatternStart = addPatternStartSet2[re.charAt(0)]; + for (let n3 = negativeLists.length - 1; n3 > -1; n3--) { + const nl = negativeLists[n3]; + const nlBefore = re.slice(0, nl.reStart); + const nlFirst = re.slice(nl.reStart, nl.reEnd - 8); + let nlAfter = re.slice(nl.reEnd); + const nlLast = re.slice(nl.reEnd - 8, nl.reEnd) + nlAfter; + const closeParensBefore = nlBefore.split(")").length; + const openParensBefore = nlBefore.split("(").length - closeParensBefore; + let cleanAfter = nlAfter; + for (let i4 = 0; i4 < openParensBefore; i4++) { + cleanAfter = cleanAfter.replace(/\)[+*?]?/, ""); + } + nlAfter = cleanAfter; + const dollar = nlAfter === "" && isSub !== SUBPARSE ? "(?:$|\\/)" : ""; + re = nlBefore + nlFirst + nlAfter + dollar + nlLast; + } + if (re !== "" && hasMagic) { + re = "(?=.)" + re; + } + if (addPatternStart) { + re = patternStart() + re; + } + if (isSub === SUBPARSE) { + return [re, hasMagic]; + } + if (options.nocase && !hasMagic) { + hasMagic = pattern.toUpperCase() !== pattern.toLowerCase(); + } + if (!hasMagic) { + return globUnescape2(pattern); + } + const flags = options.nocase ? "i" : ""; + try { + return Object.assign(new RegExp("^" + re + "$", flags), { + _glob: pattern, + _src: re + }); + } catch (er) { + return new RegExp("$."); + } + } + makeRe() { + if (this.regexp || this.regexp === false) return this.regexp; + const set = this.set; + if (!set.length) { + this.regexp = false; + return this.regexp; + } + const options = this.options; + const twoStar = options.noglobstar ? star2 : options.dot ? twoStarDot2 : twoStarNoDot2; + const flags = options.nocase ? "i" : ""; + let re = set.map((pattern) => { + pattern = pattern.map( + (p3) => typeof p3 === "string" ? regExpEscape2(p3) : p3 === GLOBSTAR2 ? GLOBSTAR2 : p3._src + ).reduce((set2, p3) => { + if (!(set2[set2.length - 1] === GLOBSTAR2 && p3 === GLOBSTAR2)) { + set2.push(p3); + } + return set2; + }, []); + pattern.forEach((p3, i4) => { + if (p3 !== GLOBSTAR2 || pattern[i4 - 1] === GLOBSTAR2) { + return; + } + if (i4 === 0) { + if (pattern.length > 1) { + pattern[i4 + 1] = "(?:\\/|" + twoStar + "\\/)?" + pattern[i4 + 1]; + } else { + pattern[i4] = twoStar; + } + } else if (i4 === pattern.length - 1) { + pattern[i4 - 1] += "(?:\\/|" + twoStar + ")?"; + } else { + pattern[i4 - 1] += "(?:\\/|\\/" + twoStar + "\\/)" + pattern[i4 + 1]; + pattern[i4 + 1] = GLOBSTAR2; + } + }); + return pattern.filter((p3) => p3 !== GLOBSTAR2).join("/"); + }).join("|"); + re = "^(?:" + re + ")$"; + if (this.negate) re = "^(?!" + re + ").*$"; + try { + this.regexp = new RegExp(re, flags); + } catch (ex) { + this.regexp = false; + } + return this.regexp; + } + match(f5, partial = this.partial) { + this.debug("match", f5, this.pattern); + if (this.comment) return false; + if (this.empty) return f5 === ""; + if (f5 === "/" && partial) return true; + const options = this.options; + if (path4.sep !== "/") { + f5 = f5.split(path4.sep).join("/"); + } + f5 = f5.split(slashSplit); + this.debug(this.pattern, "split", f5); + const set = this.set; + this.debug(this.pattern, "set", set); + let filename; + for (let i4 = f5.length - 1; i4 >= 0; i4--) { + filename = f5[i4]; + if (filename) break; + } + for (let i4 = 0; i4 < set.length; i4++) { + const pattern = set[i4]; + let file = f5; + if (options.matchBase && pattern.length === 1) { + file = [filename]; + } + const hit = this.matchOne(file, pattern, partial); + if (hit) { + if (options.flipNegate) return true; + return !this.negate; + } + } + if (options.flipNegate) return false; + return this.negate; + } + static defaults(def) { + return minimatch2.defaults(def).Minimatch; + } + }; + minimatch2.Minimatch = Minimatch2; + } +}); + +// ../node_modules/.pnpm/inherits@2.0.4/node_modules/inherits/inherits_browser.js +var require_inherits_browser = __commonJS({ + "../node_modules/.pnpm/inherits@2.0.4/node_modules/inherits/inherits_browser.js"(exports2, module2) { + if (typeof Object.create === "function") { + module2.exports = function inherits(ctor, superCtor) { + if (superCtor) { + ctor.super_ = superCtor; + ctor.prototype = Object.create(superCtor.prototype, { + constructor: { + value: ctor, + enumerable: false, + writable: true, + configurable: true + } + }); + } + }; + } else { + module2.exports = function inherits(ctor, superCtor) { + if (superCtor) { + ctor.super_ = superCtor; + var TempCtor = function() { + }; + TempCtor.prototype = superCtor.prototype; + ctor.prototype = new TempCtor(); + ctor.prototype.constructor = ctor; + } + }; + } + } +}); + +// ../node_modules/.pnpm/inherits@2.0.4/node_modules/inherits/inherits.js +var require_inherits = __commonJS({ + "../node_modules/.pnpm/inherits@2.0.4/node_modules/inherits/inherits.js"(exports2, module2) { + try { + util2 = require("util"); + if (typeof util2.inherits !== "function") throw ""; + module2.exports = util2.inherits; + } catch (e4) { + module2.exports = require_inherits_browser(); + } + var util2; + } +}); + +// ../node_modules/.pnpm/glob@8.1.0/node_modules/glob/common.js +var require_common = __commonJS({ + "../node_modules/.pnpm/glob@8.1.0/node_modules/glob/common.js"(exports2) { + exports2.setopts = setopts; + exports2.ownProp = ownProp; + exports2.makeAbs = makeAbs; + exports2.finish = finish; + exports2.mark = mark; + exports2.isIgnored = isIgnored; + exports2.childrenIgnored = childrenIgnored; + function ownProp(obj, field) { + return Object.prototype.hasOwnProperty.call(obj, field); + } + var fs7 = require("fs"); + var path4 = require("path"); + var minimatch2 = require_minimatch(); + var isAbsolute = require("path").isAbsolute; + var Minimatch2 = minimatch2.Minimatch; + function alphasort(a3, b3) { + return a3.localeCompare(b3, "en"); + } + function setupIgnores(self2, options) { + self2.ignore = options.ignore || []; + if (!Array.isArray(self2.ignore)) + self2.ignore = [self2.ignore]; + if (self2.ignore.length) { + self2.ignore = self2.ignore.map(ignoreMap); + } + } + function ignoreMap(pattern) { + var gmatcher = null; + if (pattern.slice(-3) === "/**") { + var gpattern = pattern.replace(/(\/\*\*)+$/, ""); + gmatcher = new Minimatch2(gpattern, { dot: true }); + } + return { + matcher: new Minimatch2(pattern, { dot: true }), + gmatcher + }; + } + function setopts(self2, pattern, options) { + if (!options) + options = {}; + if (options.matchBase && -1 === pattern.indexOf("/")) { + if (options.noglobstar) { + throw new Error("base matching requires globstar"); + } + pattern = "**/" + pattern; + } + self2.windowsPathsNoEscape = !!options.windowsPathsNoEscape || options.allowWindowsEscape === false; + if (self2.windowsPathsNoEscape) { + pattern = pattern.replace(/\\/g, "/"); + } + self2.silent = !!options.silent; + self2.pattern = pattern; + self2.strict = options.strict !== false; + self2.realpath = !!options.realpath; + self2.realpathCache = options.realpathCache || /* @__PURE__ */ Object.create(null); + self2.follow = !!options.follow; + self2.dot = !!options.dot; + self2.mark = !!options.mark; + self2.nodir = !!options.nodir; + if (self2.nodir) + self2.mark = true; + self2.sync = !!options.sync; + self2.nounique = !!options.nounique; + self2.nonull = !!options.nonull; + self2.nosort = !!options.nosort; + self2.nocase = !!options.nocase; + self2.stat = !!options.stat; + self2.noprocess = !!options.noprocess; + self2.absolute = !!options.absolute; + self2.fs = options.fs || fs7; + self2.maxLength = options.maxLength || Infinity; + self2.cache = options.cache || /* @__PURE__ */ Object.create(null); + self2.statCache = options.statCache || /* @__PURE__ */ Object.create(null); + self2.symlinks = options.symlinks || /* @__PURE__ */ Object.create(null); + setupIgnores(self2, options); + self2.changedCwd = false; + var cwd = process.cwd(); + if (!ownProp(options, "cwd")) + self2.cwd = path4.resolve(cwd); + else { + self2.cwd = path4.resolve(options.cwd); + self2.changedCwd = self2.cwd !== cwd; + } + self2.root = options.root || path4.resolve(self2.cwd, "/"); + self2.root = path4.resolve(self2.root); + self2.cwdAbs = isAbsolute(self2.cwd) ? self2.cwd : makeAbs(self2, self2.cwd); + self2.nomount = !!options.nomount; + if (process.platform === "win32") { + self2.root = self2.root.replace(/\\/g, "/"); + self2.cwd = self2.cwd.replace(/\\/g, "/"); + self2.cwdAbs = self2.cwdAbs.replace(/\\/g, "/"); + } + options.nonegate = true; + options.nocomment = true; + self2.minimatch = new Minimatch2(pattern, options); + self2.options = self2.minimatch.options; + } + function finish(self2) { + var nou = self2.nounique; + var all = nou ? [] : /* @__PURE__ */ Object.create(null); + for (var i4 = 0, l3 = self2.matches.length; i4 < l3; i4++) { + var matches = self2.matches[i4]; + if (!matches || Object.keys(matches).length === 0) { + if (self2.nonull) { + var literal = self2.minimatch.globSet[i4]; + if (nou) + all.push(literal); + else + all[literal] = true; + } + } else { + var m4 = Object.keys(matches); + if (nou) + all.push.apply(all, m4); + else + m4.forEach(function(m5) { + all[m5] = true; + }); + } + } + if (!nou) + all = Object.keys(all); + if (!self2.nosort) + all = all.sort(alphasort); + if (self2.mark) { + for (var i4 = 0; i4 < all.length; i4++) { + all[i4] = self2._mark(all[i4]); + } + if (self2.nodir) { + all = all.filter(function(e4) { + var notDir = !/\/$/.test(e4); + var c3 = self2.cache[e4] || self2.cache[makeAbs(self2, e4)]; + if (notDir && c3) + notDir = c3 !== "DIR" && !Array.isArray(c3); + return notDir; + }); + } + } + if (self2.ignore.length) + all = all.filter(function(m5) { + return !isIgnored(self2, m5); + }); + self2.found = all; + } + function mark(self2, p3) { + var abs = makeAbs(self2, p3); + var c3 = self2.cache[abs]; + var m4 = p3; + if (c3) { + var isDir = c3 === "DIR" || Array.isArray(c3); + var slash = p3.slice(-1) === "/"; + if (isDir && !slash) + m4 += "/"; + else if (!isDir && slash) + m4 = m4.slice(0, -1); + if (m4 !== p3) { + var mabs = makeAbs(self2, m4); + self2.statCache[mabs] = self2.statCache[abs]; + self2.cache[mabs] = self2.cache[abs]; + } + } + return m4; + } + function makeAbs(self2, f5) { + var abs = f5; + if (f5.charAt(0) === "/") { + abs = path4.join(self2.root, f5); + } else if (isAbsolute(f5) || f5 === "") { + abs = f5; + } else if (self2.changedCwd) { + abs = path4.resolve(self2.cwd, f5); + } else { + abs = path4.resolve(f5); + } + if (process.platform === "win32") + abs = abs.replace(/\\/g, "/"); + return abs; + } + function isIgnored(self2, path5) { + if (!self2.ignore.length) + return false; + return self2.ignore.some(function(item) { + return item.matcher.match(path5) || !!(item.gmatcher && item.gmatcher.match(path5)); + }); + } + function childrenIgnored(self2, path5) { + if (!self2.ignore.length) + return false; + return self2.ignore.some(function(item) { + return !!(item.gmatcher && item.gmatcher.match(path5)); + }); + } + } +}); + +// ../node_modules/.pnpm/glob@8.1.0/node_modules/glob/sync.js +var require_sync = __commonJS({ + "../node_modules/.pnpm/glob@8.1.0/node_modules/glob/sync.js"(exports2, module2) { + module2.exports = globSync; + globSync.GlobSync = GlobSync; + var rp = require_fs(); + var minimatch2 = require_minimatch(); + var Minimatch2 = minimatch2.Minimatch; + var Glob = require_glob().Glob; + var util2 = require("util"); + var path4 = require("path"); + var assert = require("assert"); + var isAbsolute = require("path").isAbsolute; + var common = require_common(); + var setopts = common.setopts; + var ownProp = common.ownProp; + var childrenIgnored = common.childrenIgnored; + var isIgnored = common.isIgnored; + function globSync(pattern, options) { + if (typeof options === "function" || arguments.length === 3) + throw new TypeError("callback provided to sync glob\nSee: https://github.com/isaacs/node-glob/issues/167"); + return new GlobSync(pattern, options).found; + } + function GlobSync(pattern, options) { + if (!pattern) + throw new Error("must provide pattern"); + if (typeof options === "function" || arguments.length === 3) + throw new TypeError("callback provided to sync glob\nSee: https://github.com/isaacs/node-glob/issues/167"); + if (!(this instanceof GlobSync)) + return new GlobSync(pattern, options); + setopts(this, pattern, options); + if (this.noprocess) + return this; + var n3 = this.minimatch.set.length; + this.matches = new Array(n3); + for (var i4 = 0; i4 < n3; i4++) { + this._process(this.minimatch.set[i4], i4, false); + } + this._finish(); + } + GlobSync.prototype._finish = function() { + assert.ok(this instanceof GlobSync); + if (this.realpath) { + var self2 = this; + this.matches.forEach(function(matchset, index6) { + var set = self2.matches[index6] = /* @__PURE__ */ Object.create(null); + for (var p3 in matchset) { + try { + p3 = self2._makeAbs(p3); + var real = rp.realpathSync(p3, self2.realpathCache); + set[real] = true; + } catch (er) { + if (er.syscall === "stat") + set[self2._makeAbs(p3)] = true; + else + throw er; + } + } + }); + } + common.finish(this); + }; + GlobSync.prototype._process = function(pattern, index6, inGlobStar) { + assert.ok(this instanceof GlobSync); + var n3 = 0; + while (typeof pattern[n3] === "string") { + n3++; + } + var prefix2; + switch (n3) { + // if not, then this is rather simple + case pattern.length: + this._processSimple(pattern.join("/"), index6); + return; + case 0: + prefix2 = null; + break; + default: + prefix2 = pattern.slice(0, n3).join("/"); + break; + } + var remain = pattern.slice(n3); + var read; + if (prefix2 === null) + read = "."; + else if (isAbsolute(prefix2) || isAbsolute(pattern.map(function(p3) { + return typeof p3 === "string" ? p3 : "[*]"; + }).join("/"))) { + if (!prefix2 || !isAbsolute(prefix2)) + prefix2 = "/" + prefix2; + read = prefix2; + } else + read = prefix2; + var abs = this._makeAbs(read); + if (childrenIgnored(this, read)) + return; + var isGlobStar = remain[0] === minimatch2.GLOBSTAR; + if (isGlobStar) + this._processGlobStar(prefix2, read, abs, remain, index6, inGlobStar); + else + this._processReaddir(prefix2, read, abs, remain, index6, inGlobStar); + }; + GlobSync.prototype._processReaddir = function(prefix2, read, abs, remain, index6, inGlobStar) { + var entries = this._readdir(abs, inGlobStar); + if (!entries) + return; + var pn = remain[0]; + var negate = !!this.minimatch.negate; + var rawGlob = pn._glob; + var dotOk = this.dot || rawGlob.charAt(0) === "."; + var matchedEntries = []; + for (var i4 = 0; i4 < entries.length; i4++) { + var e4 = entries[i4]; + if (e4.charAt(0) !== "." || dotOk) { + var m4; + if (negate && !prefix2) { + m4 = !e4.match(pn); + } else { + m4 = e4.match(pn); + } + if (m4) + matchedEntries.push(e4); + } + } + var len = matchedEntries.length; + if (len === 0) + return; + if (remain.length === 1 && !this.mark && !this.stat) { + if (!this.matches[index6]) + this.matches[index6] = /* @__PURE__ */ Object.create(null); + for (var i4 = 0; i4 < len; i4++) { + var e4 = matchedEntries[i4]; + if (prefix2) { + if (prefix2.slice(-1) !== "/") + e4 = prefix2 + "/" + e4; + else + e4 = prefix2 + e4; + } + if (e4.charAt(0) === "/" && !this.nomount) { + e4 = path4.join(this.root, e4); + } + this._emitMatch(index6, e4); + } + return; + } + remain.shift(); + for (var i4 = 0; i4 < len; i4++) { + var e4 = matchedEntries[i4]; + var newPattern; + if (prefix2) + newPattern = [prefix2, e4]; + else + newPattern = [e4]; + this._process(newPattern.concat(remain), index6, inGlobStar); + } + }; + GlobSync.prototype._emitMatch = function(index6, e4) { + if (isIgnored(this, e4)) + return; + var abs = this._makeAbs(e4); + if (this.mark) + e4 = this._mark(e4); + if (this.absolute) { + e4 = abs; + } + if (this.matches[index6][e4]) + return; + if (this.nodir) { + var c3 = this.cache[abs]; + if (c3 === "DIR" || Array.isArray(c3)) + return; + } + this.matches[index6][e4] = true; + if (this.stat) + this._stat(e4); + }; + GlobSync.prototype._readdirInGlobStar = function(abs) { + if (this.follow) + return this._readdir(abs, false); + var entries; + var lstat; + var stat2; + try { + lstat = this.fs.lstatSync(abs); + } catch (er) { + if (er.code === "ENOENT") { + return null; + } + } + var isSym = lstat && lstat.isSymbolicLink(); + this.symlinks[abs] = isSym; + if (!isSym && lstat && !lstat.isDirectory()) + this.cache[abs] = "FILE"; + else + entries = this._readdir(abs, false); + return entries; + }; + GlobSync.prototype._readdir = function(abs, inGlobStar) { + var entries; + if (inGlobStar && !ownProp(this.symlinks, abs)) + return this._readdirInGlobStar(abs); + if (ownProp(this.cache, abs)) { + var c3 = this.cache[abs]; + if (!c3 || c3 === "FILE") + return null; + if (Array.isArray(c3)) + return c3; + } + try { + return this._readdirEntries(abs, this.fs.readdirSync(abs)); + } catch (er) { + this._readdirError(abs, er); + return null; + } + }; + GlobSync.prototype._readdirEntries = function(abs, entries) { + if (!this.mark && !this.stat) { + for (var i4 = 0; i4 < entries.length; i4++) { + var e4 = entries[i4]; + if (abs === "/") + e4 = abs + e4; + else + e4 = abs + "/" + e4; + this.cache[e4] = true; + } + } + this.cache[abs] = entries; + return entries; + }; + GlobSync.prototype._readdirError = function(f5, er) { + switch (er.code) { + case "ENOTSUP": + // https://github.com/isaacs/node-glob/issues/205 + case "ENOTDIR": + var abs = this._makeAbs(f5); + this.cache[abs] = "FILE"; + if (abs === this.cwdAbs) { + var error2 = new Error(er.code + " invalid cwd " + this.cwd); + error2.path = this.cwd; + error2.code = er.code; + throw error2; + } + break; + case "ENOENT": + // not terribly unusual + case "ELOOP": + case "ENAMETOOLONG": + case "UNKNOWN": + this.cache[this._makeAbs(f5)] = false; + break; + default: + this.cache[this._makeAbs(f5)] = false; + if (this.strict) + throw er; + if (!this.silent) + console.error("glob error", er); + break; + } + }; + GlobSync.prototype._processGlobStar = function(prefix2, read, abs, remain, index6, inGlobStar) { + var entries = this._readdir(abs, inGlobStar); + if (!entries) + return; + var remainWithoutGlobStar = remain.slice(1); + var gspref = prefix2 ? [prefix2] : []; + var noGlobStar = gspref.concat(remainWithoutGlobStar); + this._process(noGlobStar, index6, false); + var len = entries.length; + var isSym = this.symlinks[abs]; + if (isSym && inGlobStar) + return; + for (var i4 = 0; i4 < len; i4++) { + var e4 = entries[i4]; + if (e4.charAt(0) === "." && !this.dot) + continue; + var instead = gspref.concat(entries[i4], remainWithoutGlobStar); + this._process(instead, index6, true); + var below = gspref.concat(entries[i4], remain); + this._process(below, index6, true); + } + }; + GlobSync.prototype._processSimple = function(prefix2, index6) { + var exists = this._stat(prefix2); + if (!this.matches[index6]) + this.matches[index6] = /* @__PURE__ */ Object.create(null); + if (!exists) + return; + if (prefix2 && isAbsolute(prefix2) && !this.nomount) { + var trail = /[\/\\]$/.test(prefix2); + if (prefix2.charAt(0) === "/") { + prefix2 = path4.join(this.root, prefix2); + } else { + prefix2 = path4.resolve(this.root, prefix2); + if (trail) + prefix2 += "/"; + } + } + if (process.platform === "win32") + prefix2 = prefix2.replace(/\\/g, "/"); + this._emitMatch(index6, prefix2); + }; + GlobSync.prototype._stat = function(f5) { + var abs = this._makeAbs(f5); + var needDir = f5.slice(-1) === "/"; + if (f5.length > this.maxLength) + return false; + if (!this.stat && ownProp(this.cache, abs)) { + var c3 = this.cache[abs]; + if (Array.isArray(c3)) + c3 = "DIR"; + if (!needDir || c3 === "DIR") + return c3; + if (needDir && c3 === "FILE") + return false; + } + var exists; + var stat2 = this.statCache[abs]; + if (!stat2) { + var lstat; + try { + lstat = this.fs.lstatSync(abs); + } catch (er) { + if (er && (er.code === "ENOENT" || er.code === "ENOTDIR")) { + this.statCache[abs] = false; + return false; + } + } + if (lstat && lstat.isSymbolicLink()) { + try { + stat2 = this.fs.statSync(abs); + } catch (er) { + stat2 = lstat; + } + } else { + stat2 = lstat; + } + } + this.statCache[abs] = stat2; + var c3 = true; + if (stat2) + c3 = stat2.isDirectory() ? "DIR" : "FILE"; + this.cache[abs] = this.cache[abs] || c3; + if (needDir && c3 === "FILE") + return false; + return c3; + }; + GlobSync.prototype._mark = function(p3) { + return common.mark(this, p3); + }; + GlobSync.prototype._makeAbs = function(f5) { + return common.makeAbs(this, f5); + }; + } +}); + +// ../node_modules/.pnpm/wrappy@1.0.2/node_modules/wrappy/wrappy.js +var require_wrappy = __commonJS({ + "../node_modules/.pnpm/wrappy@1.0.2/node_modules/wrappy/wrappy.js"(exports2, module2) { + module2.exports = wrappy; + function wrappy(fn, cb) { + if (fn && cb) return wrappy(fn)(cb); + if (typeof fn !== "function") + throw new TypeError("need wrapper function"); + Object.keys(fn).forEach(function(k3) { + wrapper[k3] = fn[k3]; + }); + return wrapper; + function wrapper() { + var args = new Array(arguments.length); + for (var i4 = 0; i4 < args.length; i4++) { + args[i4] = arguments[i4]; + } + var ret = fn.apply(this, args); + var cb2 = args[args.length - 1]; + if (typeof ret === "function" && ret !== cb2) { + Object.keys(cb2).forEach(function(k3) { + ret[k3] = cb2[k3]; + }); + } + return ret; + } + } + } +}); + +// ../node_modules/.pnpm/once@1.4.0/node_modules/once/once.js +var require_once = __commonJS({ + "../node_modules/.pnpm/once@1.4.0/node_modules/once/once.js"(exports2, module2) { + var wrappy = require_wrappy(); + module2.exports = wrappy(once); + module2.exports.strict = wrappy(onceStrict); + once.proto = once(function() { + Object.defineProperty(Function.prototype, "once", { + value: function() { + return once(this); + }, + configurable: true + }); + Object.defineProperty(Function.prototype, "onceStrict", { + value: function() { + return onceStrict(this); + }, + configurable: true + }); + }); + function once(fn) { + var f5 = function() { + if (f5.called) return f5.value; + f5.called = true; + return f5.value = fn.apply(this, arguments); + }; + f5.called = false; + return f5; + } + function onceStrict(fn) { + var f5 = function() { + if (f5.called) + throw new Error(f5.onceError); + f5.called = true; + return f5.value = fn.apply(this, arguments); + }; + var name = fn.name || "Function wrapped with `once`"; + f5.onceError = name + " shouldn't be called more than once"; + f5.called = false; + return f5; + } + } +}); + +// ../node_modules/.pnpm/inflight@1.0.6/node_modules/inflight/inflight.js +var require_inflight = __commonJS({ + "../node_modules/.pnpm/inflight@1.0.6/node_modules/inflight/inflight.js"(exports2, module2) { + var wrappy = require_wrappy(); + var reqs = /* @__PURE__ */ Object.create(null); + var once = require_once(); + module2.exports = wrappy(inflight); + function inflight(key, cb) { + if (reqs[key]) { + reqs[key].push(cb); + return null; + } else { + reqs[key] = [cb]; + return makeres(key); + } + } + function makeres(key) { + return once(function RES() { + var cbs = reqs[key]; + var len = cbs.length; + var args = slice(arguments); + try { + for (var i4 = 0; i4 < len; i4++) { + cbs[i4].apply(null, args); + } + } finally { + if (cbs.length > len) { + cbs.splice(0, len); + process.nextTick(function() { + RES.apply(null, args); + }); + } else { + delete reqs[key]; + } + } + }); + } + function slice(args) { + var length = args.length; + var array2 = []; + for (var i4 = 0; i4 < length; i4++) array2[i4] = args[i4]; + return array2; + } + } +}); + +// ../node_modules/.pnpm/glob@8.1.0/node_modules/glob/glob.js +var require_glob = __commonJS({ + "../node_modules/.pnpm/glob@8.1.0/node_modules/glob/glob.js"(exports2, module2) { + module2.exports = glob2; + var rp = require_fs(); + var minimatch2 = require_minimatch(); + var Minimatch2 = minimatch2.Minimatch; + var inherits = require_inherits(); + var EE = require("events").EventEmitter; + var path4 = require("path"); + var assert = require("assert"); + var isAbsolute = require("path").isAbsolute; + var globSync = require_sync(); + var common = require_common(); + var setopts = common.setopts; + var ownProp = common.ownProp; + var inflight = require_inflight(); + var util2 = require("util"); + var childrenIgnored = common.childrenIgnored; + var isIgnored = common.isIgnored; + var once = require_once(); + function glob2(pattern, options, cb) { + if (typeof options === "function") cb = options, options = {}; + if (!options) options = {}; + if (options.sync) { + if (cb) + throw new TypeError("callback provided to sync glob"); + return globSync(pattern, options); + } + return new Glob(pattern, options, cb); + } + glob2.sync = globSync; + var GlobSync = glob2.GlobSync = globSync.GlobSync; + glob2.glob = glob2; + function extend(origin, add) { + if (add === null || typeof add !== "object") { + return origin; + } + var keys = Object.keys(add); + var i4 = keys.length; + while (i4--) { + origin[keys[i4]] = add[keys[i4]]; + } + return origin; + } + glob2.hasMagic = function(pattern, options_) { + var options = extend({}, options_); + options.noprocess = true; + var g3 = new Glob(pattern, options); + var set = g3.minimatch.set; + if (!pattern) + return false; + if (set.length > 1) + return true; + for (var j3 = 0; j3 < set[0].length; j3++) { + if (typeof set[0][j3] !== "string") + return true; + } + return false; + }; + glob2.Glob = Glob; + inherits(Glob, EE); + function Glob(pattern, options, cb) { + if (typeof options === "function") { + cb = options; + options = null; + } + if (options && options.sync) { + if (cb) + throw new TypeError("callback provided to sync glob"); + return new GlobSync(pattern, options); + } + if (!(this instanceof Glob)) + return new Glob(pattern, options, cb); + setopts(this, pattern, options); + this._didRealPath = false; + var n3 = this.minimatch.set.length; + this.matches = new Array(n3); + if (typeof cb === "function") { + cb = once(cb); + this.on("error", cb); + this.on("end", function(matches) { + cb(null, matches); + }); + } + var self2 = this; + this._processing = 0; + this._emitQueue = []; + this._processQueue = []; + this.paused = false; + if (this.noprocess) + return this; + if (n3 === 0) + return done(); + var sync2 = true; + for (var i4 = 0; i4 < n3; i4++) { + this._process(this.minimatch.set[i4], i4, false, done); + } + sync2 = false; + function done() { + --self2._processing; + if (self2._processing <= 0) { + if (sync2) { + process.nextTick(function() { + self2._finish(); + }); + } else { + self2._finish(); + } + } + } + } + Glob.prototype._finish = function() { + assert(this instanceof Glob); + if (this.aborted) + return; + if (this.realpath && !this._didRealpath) + return this._realpath(); + common.finish(this); + this.emit("end", this.found); + }; + Glob.prototype._realpath = function() { + if (this._didRealpath) + return; + this._didRealpath = true; + var n3 = this.matches.length; + if (n3 === 0) + return this._finish(); + var self2 = this; + for (var i4 = 0; i4 < this.matches.length; i4++) + this._realpathSet(i4, next); + function next() { + if (--n3 === 0) + self2._finish(); + } + }; + Glob.prototype._realpathSet = function(index6, cb) { + var matchset = this.matches[index6]; + if (!matchset) + return cb(); + var found = Object.keys(matchset); + var self2 = this; + var n3 = found.length; + if (n3 === 0) + return cb(); + var set = this.matches[index6] = /* @__PURE__ */ Object.create(null); + found.forEach(function(p3, i4) { + p3 = self2._makeAbs(p3); + rp.realpath(p3, self2.realpathCache, function(er, real) { + if (!er) + set[real] = true; + else if (er.syscall === "stat") + set[p3] = true; + else + self2.emit("error", er); + if (--n3 === 0) { + self2.matches[index6] = set; + cb(); + } + }); + }); + }; + Glob.prototype._mark = function(p3) { + return common.mark(this, p3); + }; + Glob.prototype._makeAbs = function(f5) { + return common.makeAbs(this, f5); + }; + Glob.prototype.abort = function() { + this.aborted = true; + this.emit("abort"); + }; + Glob.prototype.pause = function() { + if (!this.paused) { + this.paused = true; + this.emit("pause"); + } + }; + Glob.prototype.resume = function() { + if (this.paused) { + this.emit("resume"); + this.paused = false; + if (this._emitQueue.length) { + var eq = this._emitQueue.slice(0); + this._emitQueue.length = 0; + for (var i4 = 0; i4 < eq.length; i4++) { + var e4 = eq[i4]; + this._emitMatch(e4[0], e4[1]); + } + } + if (this._processQueue.length) { + var pq = this._processQueue.slice(0); + this._processQueue.length = 0; + for (var i4 = 0; i4 < pq.length; i4++) { + var p3 = pq[i4]; + this._processing--; + this._process(p3[0], p3[1], p3[2], p3[3]); + } + } + } + }; + Glob.prototype._process = function(pattern, index6, inGlobStar, cb) { + assert(this instanceof Glob); + assert(typeof cb === "function"); + if (this.aborted) + return; + this._processing++; + if (this.paused) { + this._processQueue.push([pattern, index6, inGlobStar, cb]); + return; + } + var n3 = 0; + while (typeof pattern[n3] === "string") { + n3++; + } + var prefix2; + switch (n3) { + // if not, then this is rather simple + case pattern.length: + this._processSimple(pattern.join("/"), index6, cb); + return; + case 0: + prefix2 = null; + break; + default: + prefix2 = pattern.slice(0, n3).join("/"); + break; + } + var remain = pattern.slice(n3); + var read; + if (prefix2 === null) + read = "."; + else if (isAbsolute(prefix2) || isAbsolute(pattern.map(function(p3) { + return typeof p3 === "string" ? p3 : "[*]"; + }).join("/"))) { + if (!prefix2 || !isAbsolute(prefix2)) + prefix2 = "/" + prefix2; + read = prefix2; + } else + read = prefix2; + var abs = this._makeAbs(read); + if (childrenIgnored(this, read)) + return cb(); + var isGlobStar = remain[0] === minimatch2.GLOBSTAR; + if (isGlobStar) + this._processGlobStar(prefix2, read, abs, remain, index6, inGlobStar, cb); + else + this._processReaddir(prefix2, read, abs, remain, index6, inGlobStar, cb); + }; + Glob.prototype._processReaddir = function(prefix2, read, abs, remain, index6, inGlobStar, cb) { + var self2 = this; + this._readdir(abs, inGlobStar, function(er, entries) { + return self2._processReaddir2(prefix2, read, abs, remain, index6, inGlobStar, entries, cb); + }); + }; + Glob.prototype._processReaddir2 = function(prefix2, read, abs, remain, index6, inGlobStar, entries, cb) { + if (!entries) + return cb(); + var pn = remain[0]; + var negate = !!this.minimatch.negate; + var rawGlob = pn._glob; + var dotOk = this.dot || rawGlob.charAt(0) === "."; + var matchedEntries = []; + for (var i4 = 0; i4 < entries.length; i4++) { + var e4 = entries[i4]; + if (e4.charAt(0) !== "." || dotOk) { + var m4; + if (negate && !prefix2) { + m4 = !e4.match(pn); + } else { + m4 = e4.match(pn); + } + if (m4) + matchedEntries.push(e4); + } + } + var len = matchedEntries.length; + if (len === 0) + return cb(); + if (remain.length === 1 && !this.mark && !this.stat) { + if (!this.matches[index6]) + this.matches[index6] = /* @__PURE__ */ Object.create(null); + for (var i4 = 0; i4 < len; i4++) { + var e4 = matchedEntries[i4]; + if (prefix2) { + if (prefix2 !== "/") + e4 = prefix2 + "/" + e4; + else + e4 = prefix2 + e4; + } + if (e4.charAt(0) === "/" && !this.nomount) { + e4 = path4.join(this.root, e4); + } + this._emitMatch(index6, e4); + } + return cb(); + } + remain.shift(); + for (var i4 = 0; i4 < len; i4++) { + var e4 = matchedEntries[i4]; + var newPattern; + if (prefix2) { + if (prefix2 !== "/") + e4 = prefix2 + "/" + e4; + else + e4 = prefix2 + e4; + } + this._process([e4].concat(remain), index6, inGlobStar, cb); + } + cb(); + }; + Glob.prototype._emitMatch = function(index6, e4) { + if (this.aborted) + return; + if (isIgnored(this, e4)) + return; + if (this.paused) { + this._emitQueue.push([index6, e4]); + return; + } + var abs = isAbsolute(e4) ? e4 : this._makeAbs(e4); + if (this.mark) + e4 = this._mark(e4); + if (this.absolute) + e4 = abs; + if (this.matches[index6][e4]) + return; + if (this.nodir) { + var c3 = this.cache[abs]; + if (c3 === "DIR" || Array.isArray(c3)) + return; + } + this.matches[index6][e4] = true; + var st = this.statCache[abs]; + if (st) + this.emit("stat", e4, st); + this.emit("match", e4); + }; + Glob.prototype._readdirInGlobStar = function(abs, cb) { + if (this.aborted) + return; + if (this.follow) + return this._readdir(abs, false, cb); + var lstatkey = "lstat\0" + abs; + var self2 = this; + var lstatcb = inflight(lstatkey, lstatcb_); + if (lstatcb) + self2.fs.lstat(abs, lstatcb); + function lstatcb_(er, lstat) { + if (er && er.code === "ENOENT") + return cb(); + var isSym = lstat && lstat.isSymbolicLink(); + self2.symlinks[abs] = isSym; + if (!isSym && lstat && !lstat.isDirectory()) { + self2.cache[abs] = "FILE"; + cb(); + } else + self2._readdir(abs, false, cb); + } + }; + Glob.prototype._readdir = function(abs, inGlobStar, cb) { + if (this.aborted) + return; + cb = inflight("readdir\0" + abs + "\0" + inGlobStar, cb); + if (!cb) + return; + if (inGlobStar && !ownProp(this.symlinks, abs)) + return this._readdirInGlobStar(abs, cb); + if (ownProp(this.cache, abs)) { + var c3 = this.cache[abs]; + if (!c3 || c3 === "FILE") + return cb(); + if (Array.isArray(c3)) + return cb(null, c3); + } + var self2 = this; + self2.fs.readdir(abs, readdirCb(this, abs, cb)); + }; + function readdirCb(self2, abs, cb) { + return function(er, entries) { + if (er) + self2._readdirError(abs, er, cb); + else + self2._readdirEntries(abs, entries, cb); + }; + } + Glob.prototype._readdirEntries = function(abs, entries, cb) { + if (this.aborted) + return; + if (!this.mark && !this.stat) { + for (var i4 = 0; i4 < entries.length; i4++) { + var e4 = entries[i4]; + if (abs === "/") + e4 = abs + e4; + else + e4 = abs + "/" + e4; + this.cache[e4] = true; + } + } + this.cache[abs] = entries; + return cb(null, entries); + }; + Glob.prototype._readdirError = function(f5, er, cb) { + if (this.aborted) + return; + switch (er.code) { + case "ENOTSUP": + // https://github.com/isaacs/node-glob/issues/205 + case "ENOTDIR": + var abs = this._makeAbs(f5); + this.cache[abs] = "FILE"; + if (abs === this.cwdAbs) { + var error2 = new Error(er.code + " invalid cwd " + this.cwd); + error2.path = this.cwd; + error2.code = er.code; + this.emit("error", error2); + this.abort(); + } + break; + case "ENOENT": + // not terribly unusual + case "ELOOP": + case "ENAMETOOLONG": + case "UNKNOWN": + this.cache[this._makeAbs(f5)] = false; + break; + default: + this.cache[this._makeAbs(f5)] = false; + if (this.strict) { + this.emit("error", er); + this.abort(); + } + if (!this.silent) + console.error("glob error", er); + break; + } + return cb(); + }; + Glob.prototype._processGlobStar = function(prefix2, read, abs, remain, index6, inGlobStar, cb) { + var self2 = this; + this._readdir(abs, inGlobStar, function(er, entries) { + self2._processGlobStar2(prefix2, read, abs, remain, index6, inGlobStar, entries, cb); + }); + }; + Glob.prototype._processGlobStar2 = function(prefix2, read, abs, remain, index6, inGlobStar, entries, cb) { + if (!entries) + return cb(); + var remainWithoutGlobStar = remain.slice(1); + var gspref = prefix2 ? [prefix2] : []; + var noGlobStar = gspref.concat(remainWithoutGlobStar); + this._process(noGlobStar, index6, false, cb); + var isSym = this.symlinks[abs]; + var len = entries.length; + if (isSym && inGlobStar) + return cb(); + for (var i4 = 0; i4 < len; i4++) { + var e4 = entries[i4]; + if (e4.charAt(0) === "." && !this.dot) + continue; + var instead = gspref.concat(entries[i4], remainWithoutGlobStar); + this._process(instead, index6, true, cb); + var below = gspref.concat(entries[i4], remain); + this._process(below, index6, true, cb); + } + cb(); + }; + Glob.prototype._processSimple = function(prefix2, index6, cb) { + var self2 = this; + this._stat(prefix2, function(er, exists) { + self2._processSimple2(prefix2, index6, er, exists, cb); + }); + }; + Glob.prototype._processSimple2 = function(prefix2, index6, er, exists, cb) { + if (!this.matches[index6]) + this.matches[index6] = /* @__PURE__ */ Object.create(null); + if (!exists) + return cb(); + if (prefix2 && isAbsolute(prefix2) && !this.nomount) { + var trail = /[\/\\]$/.test(prefix2); + if (prefix2.charAt(0) === "/") { + prefix2 = path4.join(this.root, prefix2); + } else { + prefix2 = path4.resolve(this.root, prefix2); + if (trail) + prefix2 += "/"; + } + } + if (process.platform === "win32") + prefix2 = prefix2.replace(/\\/g, "/"); + this._emitMatch(index6, prefix2); + cb(); + }; + Glob.prototype._stat = function(f5, cb) { + var abs = this._makeAbs(f5); + var needDir = f5.slice(-1) === "/"; + if (f5.length > this.maxLength) + return cb(); + if (!this.stat && ownProp(this.cache, abs)) { + var c3 = this.cache[abs]; + if (Array.isArray(c3)) + c3 = "DIR"; + if (!needDir || c3 === "DIR") + return cb(null, c3); + if (needDir && c3 === "FILE") + return cb(); + } + var exists; + var stat2 = this.statCache[abs]; + if (stat2 !== void 0) { + if (stat2 === false) + return cb(null, stat2); + else { + var type = stat2.isDirectory() ? "DIR" : "FILE"; + if (needDir && type === "FILE") + return cb(); + else + return cb(null, type, stat2); + } + } + var self2 = this; + var statcb = inflight("stat\0" + abs, lstatcb_); + if (statcb) + self2.fs.lstat(abs, statcb); + function lstatcb_(er, lstat) { + if (lstat && lstat.isSymbolicLink()) { + return self2.fs.stat(abs, function(er2, stat3) { + if (er2) + self2._stat2(f5, abs, null, lstat, cb); + else + self2._stat2(f5, abs, er2, stat3, cb); + }); + } else { + self2._stat2(f5, abs, er, lstat, cb); + } + } + }; + Glob.prototype._stat2 = function(f5, abs, er, stat2, cb) { + if (er && (er.code === "ENOENT" || er.code === "ENOTDIR")) { + this.statCache[abs] = false; + return cb(); + } + var needDir = f5.slice(-1) === "/"; + this.statCache[abs] = stat2; + if (abs.slice(-1) === "/" && stat2 && !stat2.isDirectory()) + return cb(null, false, stat2); + var c3 = true; + if (stat2) + c3 = stat2.isDirectory() ? "DIR" : "FILE"; + this.cache[abs] = this.cache[abs] || c3; + if (needDir && c3 === "FILE") + return cb(); + return cb(null, c3, stat2); + }; + } +}); + +// src/extensions/getTablesFilterByExtensions.ts +var getTablesFilterByExtensions; +var init_getTablesFilterByExtensions = __esm({ + "src/extensions/getTablesFilterByExtensions.ts"() { + "use strict"; + getTablesFilterByExtensions = ({ + extensionsFilters, + dialect: dialect6 + }) => { + if (extensionsFilters) { + if (extensionsFilters.includes("postgis") && dialect6 === "postgresql") { + return ["!geography_columns", "!geometry_columns", "!spatial_ref_sys"]; + } + } + return []; + }; + } +}); + +// src/cli/validations/outputs.ts +var withStyle, outputs; +var init_outputs = __esm({ + "src/cli/validations/outputs.ts"() { + "use strict"; + init_source(); + init_common(); + withStyle = { + error: (str) => `${source_default.red(`${source_default.white.bgRed(" Invalid input ")} ${str}`)}`, + warning: (str) => `${source_default.white.bgGray(" Warning ")} ${str}`, + errorWarning: (str) => `${source_default.red(`${source_default.white.bgRed(" Warning ")} ${str}`)}`, + fullWarning: (str) => `${source_default.black.bgYellow(" Warning ")} ${source_default.bold(str)}`, + suggestion: (str) => `${source_default.white.bgGray(" Suggestion ")} ${str}`, + info: (str) => `${source_default.grey(str)}` + }; + outputs = { + studio: { + drivers: (param) => withStyle.error( + `"${param}" is not a valid driver. Available drivers: "pg", "mysql2", "better-sqlite", "libsql", "turso". You can read more about drizzle.config: https://orm.drizzle.team/kit-docs/config-reference` + ), + noCredentials: () => withStyle.error( + `Please specify a 'dbCredentials' param in config. It will help drizzle to know how to query you database. You can read more about drizzle.config: https://orm.drizzle.team/kit-docs/config-reference` + ), + noDriver: () => withStyle.error( + `Please specify a 'driver' param in config. It will help drizzle to know how to query you database. You can read more about drizzle.config: https://orm.drizzle.team/kit-docs/config-reference` + ), + noDialect: () => withStyle.error( + `Please specify 'dialect' param in config, either of 'postgresql', 'mysql', 'sqlite', turso or singlestore` + ) + }, + common: { + ambiguousParams: (command) => withStyle.error( + `You can't use both --config and other cli options for ${command} command` + ), + schema: (command) => withStyle.error(`"--schema" is a required field for ${command} command`) + }, + postgres: { + connection: { + required: () => withStyle.error( + `Either "url" or "host", "database" are required for database connection` + ), + awsDataApi: () => withStyle.error( + "You need to provide 'database', 'secretArn' and 'resourceArn' for Drizzle Kit to connect to AWS Data API" + ) + } + }, + mysql: { + connection: { + driver: () => withStyle.error(`Only "mysql2" is available options for "--driver"`), + required: () => withStyle.error( + `Either "url" or "host", "database" are required for database connection` + ) + } + }, + sqlite: { + connection: { + driver: () => { + const listOfDrivers = sqliteDriversLiterals.map((it) => `'${it.value}'`).join(", "); + return withStyle.error( + `Either ${listOfDrivers} are available options for 'driver' param` + ); + }, + url: (driver2) => withStyle.error( + `"url" is a required option for driver "${driver2}". You can read more about drizzle.config: https://orm.drizzle.team/kit-docs/config-reference` + ), + authToken: (driver2) => withStyle.error( + `"authToken" is a required option for driver "${driver2}". You can read more about drizzle.config: https://orm.drizzle.team/kit-docs/config-reference` + ) + }, + introspect: {}, + push: {} + }, + singlestore: { + connection: { + driver: () => withStyle.error(`Only "mysql2" is available options for "--driver"`), + required: () => withStyle.error( + `Either "url" or "host", "database" are required for database connection` + ) + } + } + }; + } +}); + +// src/cli/validations/common.ts +var assertCollisions, sqliteDriversLiterals, postgresqlDriversLiterals, prefixes, prefix, casingTypes, casingType, sqliteDriver, postgresDriver, driver, configMigrations, configCommonSchema, casing, introspectParams, configIntrospectCliSchema, configGenerateSchema, configPushSchema, drivers, wrapParam; +var init_common = __esm({ + "src/cli/validations/common.ts"() { + "use strict"; + init_source(); + init_esm(); + init_schemaValidator(); + init_outputs(); + assertCollisions = (command, options, whitelist, remainingKeys) => { + const { config, ...rest } = options; + let atLeastOneParam = false; + for (const key of Object.keys(rest)) { + if (whitelist.includes(key)) continue; + atLeastOneParam = atLeastOneParam || rest[key] !== void 0; + } + if (!config && atLeastOneParam) { + return "cli"; + } + if (!atLeastOneParam) { + return "config"; + } + console.log(outputs.common.ambiguousParams(command)); + process.exit(1); + }; + sqliteDriversLiterals = [ + literalType("d1-http"), + literalType("expo"), + literalType("durable-sqlite") + ]; + postgresqlDriversLiterals = [ + literalType("aws-data-api"), + literalType("pglite") + ]; + prefixes = [ + "index", + "timestamp", + "supabase", + "unix", + "none" + ]; + prefix = enumType(prefixes); + { + const _3 = ""; + } + casingTypes = ["snake_case", "camelCase"]; + casingType = enumType(casingTypes); + sqliteDriver = unionType(sqliteDriversLiterals); + postgresDriver = unionType(postgresqlDriversLiterals); + driver = unionType([sqliteDriver, postgresDriver]); + configMigrations = objectType({ + table: stringType().optional(), + schema: stringType().optional(), + prefix: prefix.optional().default("index") + }).optional(); + configCommonSchema = objectType({ + dialect: dialect4, + schema: unionType([stringType(), stringType().array()]).optional(), + out: stringType().optional(), + breakpoints: booleanType().optional().default(true), + verbose: booleanType().optional().default(false), + driver: driver.optional(), + tablesFilter: unionType([stringType(), stringType().array()]).optional(), + schemaFilter: unionType([stringType(), stringType().array()]).default(["public"]), + migrations: configMigrations, + dbCredentials: anyType().optional(), + casing: casingType.optional(), + sql: booleanType().default(true) + }).passthrough(); + casing = unionType([literalType("camel"), literalType("preserve")]).default( + "camel" + ); + introspectParams = objectType({ + schema: unionType([stringType(), stringType().array()]).optional(), + out: stringType().optional().default("./drizzle"), + breakpoints: booleanType().default(true), + tablesFilter: unionType([stringType(), stringType().array()]).optional(), + schemaFilter: unionType([stringType(), stringType().array()]).default(["public"]), + introspect: objectType({ + casing + }).default({ casing: "camel" }) + }); + configIntrospectCliSchema = objectType({ + schema: unionType([stringType(), stringType().array()]).optional(), + out: stringType().optional().default("./drizzle"), + breakpoints: booleanType().default(true), + tablesFilter: unionType([stringType(), stringType().array()]).optional(), + schemaFilter: unionType([stringType(), stringType().array()]).default(["public"]), + introspectCasing: unionType([literalType("camel"), literalType("preserve")]).default( + "camel" + ) + }); + configGenerateSchema = objectType({ + schema: unionType([stringType(), stringType().array()]), + out: stringType().optional().default("./drizzle"), + breakpoints: booleanType().default(true) + }); + configPushSchema = objectType({ + dialect: dialect4, + schema: unionType([stringType(), stringType().array()]), + tablesFilter: unionType([stringType(), stringType().array()]).optional(), + schemaFilter: unionType([stringType(), stringType().array()]).default(["public"]), + verbose: booleanType().default(false), + strict: booleanType().default(false), + out: stringType().optional() + }); + drivers = ["d1-http", "expo", "aws-data-api", "pglite", "durable-sqlite"]; + wrapParam = (name, param, optional = false, type) => { + const check2 = `[${source_default.green("\u2713")}]`; + const cross = `[${source_default.red("x")}]`; + if (typeof param === "string") { + if (param.length === 0) { + return ` ${cross} ${name}: ''`; + } + if (type === "secret") { + return ` ${check2} ${name}: '*****'`; + } else if (type === "url") { + return ` ${check2} ${name}: '${param.replace(/(?<=:\/\/[^:\n]*:)([^@]*)/, "****")}'`; + } + return ` ${check2} ${name}: '${param}'`; + } + if (optional) { + return source_default.gray(` ${name}?: `); + } + return ` ${cross} ${name}: ${source_default.gray("undefined")}`; + }; + } +}); + +// src/cli/validations/cli.ts +var cliConfigGenerate, pushParams, pullParams, configCheck, cliConfigCheck; +var init_cli = __esm({ + "src/cli/validations/cli.ts"() { + "use strict"; + init_esm(); + init_schemaValidator(); + init_common(); + cliConfigGenerate = objectType({ + dialect: dialect4.optional(), + schema: unionType([stringType(), stringType().array()]).optional(), + out: stringType().optional().default("./drizzle"), + config: stringType().optional(), + name: stringType().optional(), + prefix: prefix.optional(), + breakpoints: booleanType().optional().default(true), + custom: booleanType().optional().default(false) + }).strict(); + pushParams = objectType({ + dialect: dialect4, + casing: casingType.optional(), + schema: unionType([stringType(), stringType().array()]), + tablesFilter: unionType([stringType(), stringType().array()]).optional(), + schemaFilter: unionType([stringType(), stringType().array()]).optional().default(["public"]), + extensionsFilters: literalType("postgis").array().optional(), + verbose: booleanType().optional(), + strict: booleanType().optional(), + entities: objectType({ + roles: booleanType().or(objectType({ + provider: stringType().optional(), + include: stringType().array().optional(), + exclude: stringType().array().optional() + })).optional().default(false) + }).optional() + }).passthrough(); + pullParams = objectType({ + config: stringType().optional(), + dialect: dialect4, + out: stringType().optional().default("drizzle"), + tablesFilter: unionType([stringType(), stringType().array()]).optional(), + schemaFilter: unionType([stringType(), stringType().array()]).optional().default(["public"]), + extensionsFilters: literalType("postgis").array().optional(), + casing, + breakpoints: booleanType().optional().default(true), + migrations: objectType({ + prefix: prefix.optional().default("index") + }).optional(), + entities: objectType({ + roles: booleanType().or(objectType({ + provider: stringType().optional(), + include: stringType().array().optional(), + exclude: stringType().array().optional() + })).optional().default(false) + }).optional() + }).passthrough(); + configCheck = objectType({ + dialect: dialect4.optional(), + out: stringType().optional() + }); + cliConfigCheck = intersectionType( + objectType({ + config: stringType().optional() + }), + configCheck + ); + } +}); + +// src/cli/validations/gel.ts +var gelCredentials, printConfigConnectionIssues; +var init_gel = __esm({ + "src/cli/validations/gel.ts"() { + "use strict"; + init_esm(); + init_views(); + init_common(); + gelCredentials = unionType([ + objectType({ + driver: undefinedType(), + host: stringType().min(1), + port: coerce.number().min(1).optional(), + user: stringType().min(1).optional(), + password: stringType().min(1).optional(), + database: stringType().min(1), + tlsSecurity: unionType([ + literalType("insecure"), + literalType("no_host_verification"), + literalType("strict"), + literalType("default") + ]).optional() + }).transform((o3) => { + delete o3.driver; + return o3; + }), + objectType({ + driver: undefinedType(), + url: stringType().min(1), + tlsSecurity: unionType([ + literalType("insecure"), + literalType("no_host_verification"), + literalType("strict"), + literalType("default") + ]).optional() + }).transform((o3) => { + delete o3.driver; + return o3; + }), + objectType({ + driver: undefinedType() + }).transform((o3) => { + return void 0; + }) + ]); + printConfigConnectionIssues = (options) => { + if ("url" in options) { + let text = `Please provide required params for Gel driver: +`; + console.log(error(text)); + console.log(wrapParam("url", options.url, false, "url")); + process.exit(1); + } + if ("host" in options || "database" in options) { + let text = `Please provide required params for Gel driver: +`; + console.log(error(text)); + console.log(wrapParam("host", options.host)); + console.log(wrapParam("port", options.port, true)); + console.log(wrapParam("user", options.user, true)); + console.log(wrapParam("password", options.password, true, "secret")); + console.log(wrapParam("database", options.database)); + console.log(wrapParam("tlsSecurity", options.tlsSecurity, true)); + process.exit(1); + } + console.log( + error( + `Either connection "url" or "host", "database" are required for Gel database connection` + ) + ); + process.exit(1); + }; + } +}); + +// src/cli/validations/libsql.ts +var libSQLCredentials, printConfigConnectionIssues2; +var init_libsql = __esm({ + "src/cli/validations/libsql.ts"() { + "use strict"; + init_esm(); + init_views(); + init_common(); + libSQLCredentials = objectType({ + url: stringType().min(1), + authToken: stringType().min(1).optional() + }); + printConfigConnectionIssues2 = (options, command) => { + let text = `Please provide required params for 'turso' dialect: +`; + console.log(error(text)); + console.log(wrapParam("url", options.url)); + console.log(wrapParam("authToken", options.authToken, true, "secret")); + process.exit(1); + }; + } +}); + +// src/cli/validations/mysql.ts +var mysqlCredentials, printConfigConnectionIssues3; +var init_mysql = __esm({ + "src/cli/validations/mysql.ts"() { + "use strict"; + init_esm(); + init_views(); + init_common(); + init_outputs(); + mysqlCredentials = unionType([ + objectType({ + host: stringType().min(1), + port: coerce.number().min(1).optional(), + user: stringType().min(1).optional(), + password: stringType().min(1).optional(), + database: stringType().min(1), + ssl: unionType([ + stringType(), + objectType({ + pfx: stringType().optional(), + key: stringType().optional(), + passphrase: stringType().optional(), + cert: stringType().optional(), + ca: unionType([stringType(), stringType().array()]).optional(), + crl: unionType([stringType(), stringType().array()]).optional(), + ciphers: stringType().optional(), + rejectUnauthorized: booleanType().optional() + }) + ]).optional() + }), + objectType({ + url: stringType().min(1) + }) + ]); + printConfigConnectionIssues3 = (options) => { + if ("url" in options) { + let text2 = `Please provide required params for MySQL driver: +`; + console.log(error(text2)); + console.log(wrapParam("url", options.url, false, "url")); + process.exit(1); + } + let text = `Please provide required params for MySQL driver: +`; + console.log(error(text)); + console.log(wrapParam("host", options.host)); + console.log(wrapParam("port", options.port, true)); + console.log(wrapParam("user", options.user, true)); + console.log(wrapParam("password", options.password, true, "secret")); + console.log(wrapParam("database", options.database)); + console.log(wrapParam("ssl", options.ssl, true)); + process.exit(1); + }; + } +}); + +// src/cli/validations/postgres.ts +var postgresCredentials, printConfigConnectionIssues4; +var init_postgres = __esm({ + "src/cli/validations/postgres.ts"() { + "use strict"; + init_esm(); + init_views(); + init_common(); + postgresCredentials = unionType([ + objectType({ + driver: undefinedType(), + host: stringType().min(1), + port: coerce.number().min(1).optional(), + user: stringType().min(1).optional(), + password: stringType().min(1).optional(), + database: stringType().min(1), + ssl: unionType([ + literalType("require"), + literalType("allow"), + literalType("prefer"), + literalType("verify-full"), + booleanType(), + objectType({}).passthrough() + ]).optional() + }).transform((o3) => { + delete o3.driver; + return o3; + }), + objectType({ + driver: undefinedType(), + url: stringType().min(1) + }).transform((o3) => { + delete o3.driver; + return o3; + }), + objectType({ + driver: literalType("aws-data-api"), + database: stringType().min(1), + secretArn: stringType().min(1), + resourceArn: stringType().min(1) + }), + objectType({ + driver: literalType("pglite"), + url: stringType().min(1) + }) + ]); + printConfigConnectionIssues4 = (options) => { + if (options.driver === "aws-data-api") { + let text = `Please provide required params for AWS Data API driver: +`; + console.log(error(text)); + console.log(wrapParam("database", options.database)); + console.log(wrapParam("secretArn", options.secretArn, false, "secret")); + console.log(wrapParam("resourceArn", options.resourceArn, false, "secret")); + process.exit(1); + } + if ("url" in options) { + let text = `Please provide required params for Postgres driver: +`; + console.log(error(text)); + console.log(wrapParam("url", options.url, false, "url")); + process.exit(1); + } + if ("host" in options || "database" in options) { + let text = `Please provide required params for Postgres driver: +`; + console.log(error(text)); + console.log(wrapParam("host", options.host)); + console.log(wrapParam("port", options.port, true)); + console.log(wrapParam("user", options.user, true)); + console.log(wrapParam("password", options.password, true, "secret")); + console.log(wrapParam("database", options.database)); + console.log(wrapParam("ssl", options.ssl, true)); + process.exit(1); + } + console.log( + error( + `Either connection "url" or "host", "database" are required for PostgreSQL database connection` + ) + ); + process.exit(1); + }; + } +}); + +// src/cli/validations/singlestore.ts +var singlestoreCredentials, printConfigConnectionIssues5; +var init_singlestore = __esm({ + "src/cli/validations/singlestore.ts"() { + "use strict"; + init_esm(); + init_views(); + init_common(); + init_outputs(); + singlestoreCredentials = unionType([ + objectType({ + host: stringType().min(1), + port: coerce.number().min(1).optional(), + user: stringType().min(1).optional(), + password: stringType().min(1).optional(), + database: stringType().min(1), + ssl: unionType([ + stringType(), + objectType({ + pfx: stringType().optional(), + key: stringType().optional(), + passphrase: stringType().optional(), + cert: stringType().optional(), + ca: unionType([stringType(), stringType().array()]).optional(), + crl: unionType([stringType(), stringType().array()]).optional(), + ciphers: stringType().optional(), + rejectUnauthorized: booleanType().optional() + }) + ]).optional() + }), + objectType({ + url: stringType().min(1) + }) + ]); + printConfigConnectionIssues5 = (options) => { + if ("url" in options) { + let text2 = `Please provide required params for SingleStore driver: +`; + console.log(error(text2)); + console.log(wrapParam("url", options.url, false, "url")); + process.exit(1); + } + let text = `Please provide required params for SingleStore driver: +`; + console.log(error(text)); + console.log(wrapParam("host", options.host)); + console.log(wrapParam("port", options.port, true)); + console.log(wrapParam("user", options.user, true)); + console.log(wrapParam("password", options.password, true, "secret")); + console.log(wrapParam("database", options.database)); + console.log(wrapParam("ssl", options.ssl, true)); + process.exit(1); + }; + } +}); + +// src/cli/validations/sqlite.ts +var sqliteCredentials, printConfigConnectionIssues6; +var init_sqlite = __esm({ + "src/cli/validations/sqlite.ts"() { + "use strict"; + init_global(); + init_esm(); + init_views(); + init_common(); + sqliteCredentials = unionType([ + objectType({ + driver: literalType("turso"), + url: stringType().min(1), + authToken: stringType().min(1).optional() + }), + objectType({ + driver: literalType("d1-http"), + accountId: stringType().min(1), + databaseId: stringType().min(1), + token: stringType().min(1) + }), + objectType({ + driver: undefinedType(), + url: stringType().min(1) + }).transform((o3) => { + delete o3.driver; + return o3; + }) + ]); + printConfigConnectionIssues6 = (options, command) => { + const parsedDriver = sqliteDriver.safeParse(options.driver); + const driver2 = parsedDriver.success ? parsedDriver.data : ""; + if (driver2 === "expo") { + if (command === "migrate") { + console.log( + error( + `You can't use 'migrate' command with Expo SQLite, please follow migration instructions in our docs - https://orm.drizzle.team/docs/get-started-sqlite#expo-sqlite` + ) + ); + } else if (command === "studio") { + console.log( + error( + `You can't use 'studio' command with Expo SQLite, please use Expo Plugin https://www.npmjs.com/package/expo-drizzle-studio-plugin` + ) + ); + } else if (command === "pull") { + console.log(error("You can't use 'pull' command with Expo SQLite")); + } else if (command === "push") { + console.log(error("You can't use 'push' command with Expo SQLite")); + } else { + console.log(error("Unexpected error with expo driver \u{1F914}")); + } + process.exit(1); + } else if (driver2 === "d1-http") { + let text2 = `Please provide required params for D1 HTTP driver: +`; + console.log(error(text2)); + console.log(wrapParam("accountId", options.accountId)); + console.log(wrapParam("databaseId", options.databaseId)); + console.log(wrapParam("token", options.token, false, "secret")); + process.exit(1); + } else if (driver2 === "durable-sqlite") { + if (command === "migrate") { + console.log( + error( + `You can't use 'migrate' command with SQLite Durable Objects` + ) + ); + } else if (command === "studio") { + console.log( + error( + `You can't use 'studio' command with SQLite Durable Objects` + ) + ); + } else if (command === "pull") { + console.log(error("You can't use 'pull' command with SQLite Durable Objects")); + } else if (command === "push") { + console.log(error("You can't use 'push' command with SQLite Durable Objects")); + } else { + console.log(error("Unexpected error with SQLite Durable Object driver \u{1F914}")); + } + process.exit(1); + } else { + softAssertUnreachable(driver2); + } + let text = `Please provide required params: +`; + console.log(error(text)); + console.log(wrapParam("url", options.url)); + process.exit(1); + }; + } +}); + +// src/cli/validations/studio.ts +var credentials, studioCliParams, studioConfig; +var init_studio = __esm({ + "src/cli/validations/studio.ts"() { + "use strict"; + init_esm(); + init_schemaValidator(); + init_common(); + init_mysql(); + init_postgres(); + init_sqlite(); + credentials = intersectionType( + postgresCredentials, + mysqlCredentials, + sqliteCredentials + ); + studioCliParams = objectType({ + port: coerce.number().optional().default(4983), + host: stringType().optional().default("127.0.0.1"), + config: stringType().optional() + }); + studioConfig = objectType({ + dialect: dialect4, + schema: unionType([stringType(), stringType().array()]).optional(), + casing: casingType.optional() + }); + } +}); + +// src/cli/commands/_es5.ts +var es5_exports = {}; +__export(es5_exports, { + default: () => es5_default +}); +var _, es5_default; +var init_es5 = __esm({ + "src/cli/commands/_es5.ts"() { + "use strict"; + _ = ""; + es5_default = _; + } +}); + +// ../node_modules/.pnpm/tsx@4.21.0/node_modules/tsx/dist/temporary-directory-B83uKxJF.cjs +var require_temporary_directory_B83uKxJF = __commonJS({ + "../node_modules/.pnpm/tsx@4.21.0/node_modules/tsx/dist/temporary-directory-B83uKxJF.cjs"(exports2) { + "use strict"; + var s4 = require("node:path"); + var r4 = require("node:os"); + var { geteuid: e4 } = process; + var t4 = e4 ? e4() : r4.userInfo().username; + var i4 = s4.join(r4.tmpdir(), `tsx-${t4}`); + exports2.tmpdir = i4; + } +}); + +// ../node_modules/.pnpm/tsx@4.21.0/node_modules/tsx/dist/get-pipe-path-BoR10qr8.cjs +var require_get_pipe_path_BoR10qr8 = __commonJS({ + "../node_modules/.pnpm/tsx@4.21.0/node_modules/tsx/dist/get-pipe-path-BoR10qr8.cjs"(exports2) { + "use strict"; + var u3 = Object.defineProperty; + var t4 = (r4, e4) => u3(r4, "name", { value: e4, configurable: true }); + var d3 = require("module"); + var n3 = require("node:path"); + var p3 = require_temporary_directory_B83uKxJF(); + var s4 = typeof document < "u" ? document.currentScript : null; + var o3 = require; + var i4 = process.platform === "win32"; + var c3 = t4((r4) => { + const e4 = n3.join(p3.tmpdir, `${r4}.pipe`); + return i4 ? `\\\\?\\pipe\\${e4}` : e4; + }, "getPipePath"); + exports2.getPipePath = c3, exports2.isWindows = i4, exports2.require = o3; + } +}); + +// ../node_modules/.pnpm/resolve-pkg-maps@1.0.0/node_modules/resolve-pkg-maps/dist/index.cjs +var require_dist = __commonJS({ + "../node_modules/.pnpm/resolve-pkg-maps@1.0.0/node_modules/resolve-pkg-maps/dist/index.cjs"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + var d3 = (r4) => r4 !== null && typeof r4 == "object"; + var s4 = (r4, t4) => Object.assign(new Error(`[${r4}]: ${t4}`), { code: r4 }); + var g3 = "ERR_INVALID_PACKAGE_CONFIG"; + var E2 = "ERR_INVALID_PACKAGE_TARGET"; + var I2 = "ERR_PACKAGE_PATH_NOT_EXPORTED"; + var P = "ERR_PACKAGE_IMPORT_NOT_DEFINED"; + var R = /^\d+$/; + var O = /^(\.{1,2}|node_modules)$/i; + var u3 = /\/|\\/; + var h4 = ((r4) => (r4.Export = "exports", r4.Import = "imports", r4))(h4 || {}); + var f5 = (r4, t4, n3, o3, c3) => { + if (t4 == null) return []; + if (typeof t4 == "string") { + const [e4, ...i4] = t4.split(u3); + if (e4 === ".." || i4.some((l3) => O.test(l3))) throw s4(E2, `Invalid "${r4}" target "${t4}" defined in the package config`); + return [c3 ? t4.replace(/\*/g, c3) : t4]; + } + if (Array.isArray(t4)) return t4.flatMap((e4) => f5(r4, e4, n3, o3, c3)); + if (d3(t4)) { + for (const e4 of Object.keys(t4)) { + if (R.test(e4)) throw s4(g3, "Cannot contain numeric property keys"); + if (e4 === "default" || o3.includes(e4)) return f5(r4, t4[e4], n3, o3, c3); + } + return []; + } + throw s4(E2, `Invalid "${r4}" target "${t4}"`); + }; + var a3 = "*"; + var v6 = (r4, t4) => { + const n3 = r4.indexOf(a3), o3 = t4.indexOf(a3); + return n3 === o3 ? t4.length > r4.length : o3 > n3; + }; + function A3(r4, t4) { + if (!t4.includes(a3) && r4.hasOwnProperty(t4)) return [t4]; + let n3, o3; + for (const c3 of Object.keys(r4)) if (c3.includes(a3)) { + const [e4, i4, l3] = c3.split(a3); + if (l3 === void 0 && t4.startsWith(e4) && t4.endsWith(i4)) { + const _3 = t4.slice(e4.length, -i4.length || void 0); + _3 && (!n3 || v6(n3, c3)) && (n3 = c3, o3 = _3); + } + } + return [n3, o3]; + } + var p3 = (r4) => Object.keys(r4).reduce((t4, n3) => { + const o3 = n3 === "" || n3[0] !== "."; + if (t4 === void 0 || t4 === o3) return o3; + throw s4(g3, '"exports" cannot contain some keys starting with "." and some not'); + }, void 0); + var w3 = /^\w+:/; + var m4 = (r4, t4, n3) => { + if (!r4) throw new Error('"exports" is required'); + t4 = t4 === "" ? "." : `./${t4}`, (typeof r4 == "string" || Array.isArray(r4) || d3(r4) && p3(r4)) && (r4 = { ".": r4 }); + const [o3, c3] = A3(r4, t4), e4 = f5(h4.Export, r4[o3], t4, n3, c3); + if (e4.length === 0) throw s4(I2, t4 === "." ? 'No "exports" main defined' : `Package subpath '${t4}' is not defined by "exports"`); + for (const i4 of e4) if (!i4.startsWith("./") && !w3.test(i4)) throw s4(E2, `Invalid "exports" target "${i4}" defined in the package config`); + return e4; + }; + var T = (r4, t4, n3) => { + if (!r4) throw new Error('"imports" is required'); + const [o3, c3] = A3(r4, t4), e4 = f5(h4.Import, r4[o3], t4, n3, c3); + if (e4.length === 0) throw s4(P, `Package import specifier "${t4}" is not defined in package`); + return e4; + }; + exports2.resolveExports = m4, exports2.resolveImports = T; + } +}); + +// ../node_modules/.pnpm/get-tsconfig@4.13.6/node_modules/get-tsconfig/dist/index.cjs +var require_dist2 = __commonJS({ + "../node_modules/.pnpm/get-tsconfig@4.13.6/node_modules/get-tsconfig/dist/index.cjs"(exports2) { + "use strict"; + var Le = Object.defineProperty; + var o3 = (e4, t4) => Le(e4, "name", { value: t4, configurable: true }); + var w3 = require("node:path"); + var re = require("node:fs"); + var he = require("node:module"); + var Ee = require_dist(); + var Be = require("fs"); + var xe = require("os"); + var Ie = require("path"); + function h4(e4) { + return e4.startsWith("\\\\?\\") ? e4 : e4.replace(/\\/g, "/"); + } + o3(h4, "slash"); + var Y = o3((e4) => { + const t4 = re[e4]; + return (s4, ...n3) => { + const i4 = `${e4}:${n3.join(":")}`; + let l3 = s4 == null ? void 0 : s4.get(i4); + return l3 === void 0 && (l3 = Reflect.apply(t4, re, n3), s4 == null || s4.set(i4, l3)), l3; + }; + }, "cacheFs"); + var E2 = Y("existsSync"); + var $e = Y("readFileSync"); + var G2 = Y("statSync"); + var fe = o3((e4, t4, s4) => { + for (; ; ) { + const n3 = w3.posix.join(e4, t4); + if (E2(s4, n3)) return n3; + const i4 = w3.dirname(e4); + if (i4 === e4) return; + e4 = i4; + } + }, "findUp"); + var Z2 = /^\.{1,2}(\/.*)?$/; + var K = o3((e4) => { + const t4 = h4(e4); + return Z2.test(t4) ? t4 : `./${t4}`; + }, "normalizeRelativePath"); + function Ue(e4, t4 = false) { + const s4 = e4.length; + let n3 = 0, i4 = "", l3 = 0, u3 = 16, a3 = 0, r4 = 0, g3 = 0, v6 = 0, d3 = 0; + function _3(c3, y2) { + let A3 = 0, b3 = 0; + for (; A3 < c3; ) { + let k3 = e4.charCodeAt(n3); + if (k3 >= 48 && k3 <= 57) b3 = b3 * 16 + k3 - 48; + else if (k3 >= 65 && k3 <= 70) b3 = b3 * 16 + k3 - 65 + 10; + else if (k3 >= 97 && k3 <= 102) b3 = b3 * 16 + k3 - 97 + 10; + else break; + n3++, A3++; + } + return A3 < c3 && (b3 = -1), b3; + } + o3(_3, "scanHexDigits"); + function p3(c3) { + n3 = c3, i4 = "", l3 = 0, u3 = 16, d3 = 0; + } + o3(p3, "setPosition"); + function D2() { + let c3 = n3; + if (e4.charCodeAt(n3) === 48) n3++; + else for (n3++; n3 < e4.length && P(e4.charCodeAt(n3)); ) n3++; + if (n3 < e4.length && e4.charCodeAt(n3) === 46) if (n3++, n3 < e4.length && P(e4.charCodeAt(n3))) for (n3++; n3 < e4.length && P(e4.charCodeAt(n3)); ) n3++; + else return d3 = 3, e4.substring(c3, n3); + let y2 = n3; + if (n3 < e4.length && (e4.charCodeAt(n3) === 69 || e4.charCodeAt(n3) === 101)) if (n3++, (n3 < e4.length && e4.charCodeAt(n3) === 43 || e4.charCodeAt(n3) === 45) && n3++, n3 < e4.length && P(e4.charCodeAt(n3))) { + for (n3++; n3 < e4.length && P(e4.charCodeAt(n3)); ) n3++; + y2 = n3; + } else d3 = 3; + return e4.substring(c3, y2); + } + o3(D2, "scanNumber"); + function L() { + let c3 = "", y2 = n3; + for (; ; ) { + if (n3 >= s4) { + c3 += e4.substring(y2, n3), d3 = 2; + break; + } + const A3 = e4.charCodeAt(n3); + if (A3 === 34) { + c3 += e4.substring(y2, n3), n3++; + break; + } + if (A3 === 92) { + if (c3 += e4.substring(y2, n3), n3++, n3 >= s4) { + d3 = 2; + break; + } + switch (e4.charCodeAt(n3++)) { + case 34: + c3 += '"'; + break; + case 92: + c3 += "\\"; + break; + case 47: + c3 += "/"; + break; + case 98: + c3 += "\b"; + break; + case 102: + c3 += "\f"; + break; + case 110: + c3 += ` +`; + break; + case 114: + c3 += "\r"; + break; + case 116: + c3 += " "; + break; + case 117: + const k3 = _3(4); + k3 >= 0 ? c3 += String.fromCharCode(k3) : d3 = 4; + break; + default: + d3 = 5; + } + y2 = n3; + continue; + } + if (A3 >= 0 && A3 <= 31) if (M(A3)) { + c3 += e4.substring(y2, n3), d3 = 2; + break; + } else d3 = 6; + n3++; + } + return c3; + } + o3(L, "scanString"); + function T() { + if (i4 = "", d3 = 0, l3 = n3, r4 = a3, v6 = g3, n3 >= s4) return l3 = s4, u3 = 17; + let c3 = e4.charCodeAt(n3); + if (O(c3)) { + do + n3++, i4 += String.fromCharCode(c3), c3 = e4.charCodeAt(n3); + while (O(c3)); + return u3 = 15; + } + if (M(c3)) return n3++, i4 += String.fromCharCode(c3), c3 === 13 && e4.charCodeAt(n3) === 10 && (n3++, i4 += ` +`), a3++, g3 = n3, u3 = 14; + switch (c3) { + case 123: + return n3++, u3 = 1; + case 125: + return n3++, u3 = 2; + case 91: + return n3++, u3 = 3; + case 93: + return n3++, u3 = 4; + case 58: + return n3++, u3 = 6; + case 44: + return n3++, u3 = 5; + case 34: + return n3++, i4 = L(), u3 = 10; + case 47: + const y2 = n3 - 1; + if (e4.charCodeAt(n3 + 1) === 47) { + for (n3 += 2; n3 < s4 && !M(e4.charCodeAt(n3)); ) n3++; + return i4 = e4.substring(y2, n3), u3 = 12; + } + if (e4.charCodeAt(n3 + 1) === 42) { + n3 += 2; + const A3 = s4 - 1; + let b3 = false; + for (; n3 < A3; ) { + const k3 = e4.charCodeAt(n3); + if (k3 === 42 && e4.charCodeAt(n3 + 1) === 47) { + n3 += 2, b3 = true; + break; + } + n3++, M(k3) && (k3 === 13 && e4.charCodeAt(n3) === 10 && n3++, a3++, g3 = n3); + } + return b3 || (n3++, d3 = 1), i4 = e4.substring(y2, n3), u3 = 13; + } + return i4 += String.fromCharCode(c3), n3++, u3 = 16; + case 45: + if (i4 += String.fromCharCode(c3), n3++, n3 === s4 || !P(e4.charCodeAt(n3))) return u3 = 16; + case 48: + case 49: + case 50: + case 51: + case 52: + case 53: + case 54: + case 55: + case 56: + case 57: + return i4 += D2(), u3 = 11; + default: + for (; n3 < s4 && F3(c3); ) n3++, c3 = e4.charCodeAt(n3); + if (l3 !== n3) { + switch (i4 = e4.substring(l3, n3), i4) { + case "true": + return u3 = 8; + case "false": + return u3 = 9; + case "null": + return u3 = 7; + } + return u3 = 16; + } + return i4 += String.fromCharCode(c3), n3++, u3 = 16; + } + } + o3(T, "scanNext"); + function F3(c3) { + if (O(c3) || M(c3)) return false; + switch (c3) { + case 125: + case 93: + case 123: + case 91: + case 34: + case 58: + case 44: + case 47: + return false; + } + return true; + } + o3(F3, "isUnknownContentCharacter"); + function B2() { + let c3; + do + c3 = T(); + while (c3 >= 12 && c3 <= 15); + return c3; + } + return o3(B2, "scanNextNonTrivia"), { setPosition: p3, getPosition: o3(() => n3, "getPosition"), scan: t4 ? B2 : T, getToken: o3(() => u3, "getToken"), getTokenValue: o3(() => i4, "getTokenValue"), getTokenOffset: o3(() => l3, "getTokenOffset"), getTokenLength: o3(() => n3 - l3, "getTokenLength"), getTokenStartLine: o3(() => r4, "getTokenStartLine"), getTokenStartCharacter: o3(() => l3 - v6, "getTokenStartCharacter"), getTokenError: o3(() => d3, "getTokenError") }; + } + o3(Ue, "createScanner"); + function O(e4) { + return e4 === 32 || e4 === 9; + } + o3(O, "isWhiteSpace"); + function M(e4) { + return e4 === 10 || e4 === 13; + } + o3(M, "isLineBreak"); + function P(e4) { + return e4 >= 48 && e4 <= 57; + } + o3(P, "isDigit"); + var ae; + (function(e4) { + e4[e4.lineFeed = 10] = "lineFeed", e4[e4.carriageReturn = 13] = "carriageReturn", e4[e4.space = 32] = "space", e4[e4._0 = 48] = "_0", e4[e4._1 = 49] = "_1", e4[e4._2 = 50] = "_2", e4[e4._3 = 51] = "_3", e4[e4._4 = 52] = "_4", e4[e4._5 = 53] = "_5", e4[e4._6 = 54] = "_6", e4[e4._7 = 55] = "_7", e4[e4._8 = 56] = "_8", e4[e4._9 = 57] = "_9", e4[e4.a = 97] = "a", e4[e4.b = 98] = "b", e4[e4.c = 99] = "c", e4[e4.d = 100] = "d", e4[e4.e = 101] = "e", e4[e4.f = 102] = "f", e4[e4.g = 103] = "g", e4[e4.h = 104] = "h", e4[e4.i = 105] = "i", e4[e4.j = 106] = "j", e4[e4.k = 107] = "k", e4[e4.l = 108] = "l", e4[e4.m = 109] = "m", e4[e4.n = 110] = "n", e4[e4.o = 111] = "o", e4[e4.p = 112] = "p", e4[e4.q = 113] = "q", e4[e4.r = 114] = "r", e4[e4.s = 115] = "s", e4[e4.t = 116] = "t", e4[e4.u = 117] = "u", e4[e4.v = 118] = "v", e4[e4.w = 119] = "w", e4[e4.x = 120] = "x", e4[e4.y = 121] = "y", e4[e4.z = 122] = "z", e4[e4.A = 65] = "A", e4[e4.B = 66] = "B", e4[e4.C = 67] = "C", e4[e4.D = 68] = "D", e4[e4.E = 69] = "E", e4[e4.F = 70] = "F", e4[e4.G = 71] = "G", e4[e4.H = 72] = "H", e4[e4.I = 73] = "I", e4[e4.J = 74] = "J", e4[e4.K = 75] = "K", e4[e4.L = 76] = "L", e4[e4.M = 77] = "M", e4[e4.N = 78] = "N", e4[e4.O = 79] = "O", e4[e4.P = 80] = "P", e4[e4.Q = 81] = "Q", e4[e4.R = 82] = "R", e4[e4.S = 83] = "S", e4[e4.T = 84] = "T", e4[e4.U = 85] = "U", e4[e4.V = 86] = "V", e4[e4.W = 87] = "W", e4[e4.X = 88] = "X", e4[e4.Y = 89] = "Y", e4[e4.Z = 90] = "Z", e4[e4.asterisk = 42] = "asterisk", e4[e4.backslash = 92] = "backslash", e4[e4.closeBrace = 125] = "closeBrace", e4[e4.closeBracket = 93] = "closeBracket", e4[e4.colon = 58] = "colon", e4[e4.comma = 44] = "comma", e4[e4.dot = 46] = "dot", e4[e4.doubleQuote = 34] = "doubleQuote", e4[e4.minus = 45] = "minus", e4[e4.openBrace = 123] = "openBrace", e4[e4.openBracket = 91] = "openBracket", e4[e4.plus = 43] = "plus", e4[e4.slash = 47] = "slash", e4[e4.formFeed = 12] = "formFeed", e4[e4.tab = 9] = "tab"; + })(ae || (ae = {})), new Array(20).fill(0).map((e4, t4) => " ".repeat(t4)); + var N = 200; + new Array(N).fill(0).map((e4, t4) => ` +` + " ".repeat(t4)), new Array(N).fill(0).map((e4, t4) => "\r" + " ".repeat(t4)), new Array(N).fill(0).map((e4, t4) => `\r +` + " ".repeat(t4)), new Array(N).fill(0).map((e4, t4) => ` +` + " ".repeat(t4)), new Array(N).fill(0).map((e4, t4) => "\r" + " ".repeat(t4)), new Array(N).fill(0).map((e4, t4) => `\r +` + " ".repeat(t4)); + var q3; + (function(e4) { + e4.DEFAULT = { allowTrailingComma: false }; + })(q3 || (q3 = {})); + function Pe(e4, t4 = [], s4 = q3.DEFAULT) { + let n3 = null, i4 = []; + const l3 = []; + function u3(r4) { + Array.isArray(i4) ? i4.push(r4) : n3 !== null && (i4[n3] = r4); + } + return o3(u3, "onValue"), Ne(e4, { onObjectBegin: o3(() => { + const r4 = {}; + u3(r4), l3.push(i4), i4 = r4, n3 = null; + }, "onObjectBegin"), onObjectProperty: o3((r4) => { + n3 = r4; + }, "onObjectProperty"), onObjectEnd: o3(() => { + i4 = l3.pop(); + }, "onObjectEnd"), onArrayBegin: o3(() => { + const r4 = []; + u3(r4), l3.push(i4), i4 = r4, n3 = null; + }, "onArrayBegin"), onArrayEnd: o3(() => { + i4 = l3.pop(); + }, "onArrayEnd"), onLiteralValue: u3, onError: o3((r4, g3, v6) => { + t4.push({ error: r4, offset: g3, length: v6 }); + }, "onError") }, s4), i4[0]; + } + o3(Pe, "parse$1"); + function Ne(e4, t4, s4 = q3.DEFAULT) { + const n3 = Ue(e4, false), i4 = []; + let l3 = 0; + function u3(m4) { + return m4 ? () => l3 === 0 && m4(n3.getTokenOffset(), n3.getTokenLength(), n3.getTokenStartLine(), n3.getTokenStartCharacter()) : () => true; + } + o3(u3, "toNoArgVisit"); + function a3(m4) { + return m4 ? (j3) => l3 === 0 && m4(j3, n3.getTokenOffset(), n3.getTokenLength(), n3.getTokenStartLine(), n3.getTokenStartCharacter()) : () => true; + } + o3(a3, "toOneArgVisit"); + function r4(m4) { + return m4 ? (j3) => l3 === 0 && m4(j3, n3.getTokenOffset(), n3.getTokenLength(), n3.getTokenStartLine(), n3.getTokenStartCharacter(), () => i4.slice()) : () => true; + } + o3(r4, "toOneArgVisitWithPath"); + function g3(m4) { + return m4 ? () => { + l3 > 0 ? l3++ : m4(n3.getTokenOffset(), n3.getTokenLength(), n3.getTokenStartLine(), n3.getTokenStartCharacter(), () => i4.slice()) === false && (l3 = 1); + } : () => true; + } + o3(g3, "toBeginVisit"); + function v6(m4) { + return m4 ? () => { + l3 > 0 && l3--, l3 === 0 && m4(n3.getTokenOffset(), n3.getTokenLength(), n3.getTokenStartLine(), n3.getTokenStartCharacter()); + } : () => true; + } + o3(v6, "toEndVisit"); + const d3 = g3(t4.onObjectBegin), _3 = r4(t4.onObjectProperty), p3 = v6(t4.onObjectEnd), D2 = g3(t4.onArrayBegin), L = v6(t4.onArrayEnd), T = r4(t4.onLiteralValue), F3 = a3(t4.onSeparator), B2 = u3(t4.onComment), c3 = a3(t4.onError), y2 = s4 && s4.disallowComments, A3 = s4 && s4.allowTrailingComma; + function b3() { + for (; ; ) { + const m4 = n3.scan(); + switch (n3.getTokenError()) { + case 4: + k3(14); + break; + case 5: + k3(15); + break; + case 3: + k3(13); + break; + case 1: + y2 || k3(11); + break; + case 2: + k3(12); + break; + case 6: + k3(16); + break; + } + switch (m4) { + case 12: + case 13: + y2 ? k3(10) : B2(); + break; + case 16: + k3(1); + break; + case 15: + case 14: + break; + default: + return m4; + } + } + } + o3(b3, "scanNext"); + function k3(m4, j3 = [], S2 = []) { + if (c3(m4), j3.length + S2.length > 0) { + let $ = n3.getToken(); + for (; $ !== 17; ) { + if (j3.indexOf($) !== -1) { + b3(); + break; + } else if (S2.indexOf($) !== -1) break; + $ = b3(); + } + } + } + o3(k3, "handleError"); + function R(m4) { + const j3 = n3.getTokenValue(); + return m4 ? T(j3) : (_3(j3), i4.push(j3)), b3(), true; + } + o3(R, "parseString"); + function J2() { + switch (n3.getToken()) { + case 11: + const m4 = n3.getTokenValue(); + let j3 = Number(m4); + isNaN(j3) && (k3(2), j3 = 0), T(j3); + break; + case 7: + T(null); + break; + case 8: + T(true); + break; + case 9: + T(false); + break; + default: + return false; + } + return b3(), true; + } + o3(J2, "parseLiteral"); + function W() { + return n3.getToken() !== 10 ? (k3(3, [], [2, 5]), false) : (R(false), n3.getToken() === 6 ? (F3(":"), b3(), U() || k3(4, [], [2, 5])) : k3(5, [], [2, 5]), i4.pop(), true); + } + o3(W, "parseProperty"); + function V() { + d3(), b3(); + let m4 = false; + for (; n3.getToken() !== 2 && n3.getToken() !== 17; ) { + if (n3.getToken() === 5) { + if (m4 || k3(4, [], []), F3(","), b3(), n3.getToken() === 2 && A3) break; + } else m4 && k3(6, [], []); + W() || k3(4, [], [2, 5]), m4 = true; + } + return p3(), n3.getToken() !== 2 ? k3(7, [2], []) : b3(), true; + } + o3(V, "parseObject"); + function z2() { + D2(), b3(); + let m4 = true, j3 = false; + for (; n3.getToken() !== 4 && n3.getToken() !== 17; ) { + if (n3.getToken() === 5) { + if (j3 || k3(4, [], []), F3(","), b3(), n3.getToken() === 4 && A3) break; + } else j3 && k3(6, [], []); + m4 ? (i4.push(0), m4 = false) : i4[i4.length - 1]++, U() || k3(4, [], [4, 5]), j3 = true; + } + return L(), m4 || i4.pop(), n3.getToken() !== 4 ? k3(8, [4], []) : b3(), true; + } + o3(z2, "parseArray"); + function U() { + switch (n3.getToken()) { + case 3: + return z2(); + case 1: + return V(); + case 10: + return R(true); + default: + return J2(); + } + } + return o3(U, "parseValue"), b3(), n3.getToken() === 17 ? s4.allowEmptyContent ? true : (k3(4, [], []), false) : U() ? (n3.getToken() !== 17 && k3(9, [], []), true) : (k3(4, [], []), false); + } + o3(Ne, "visit"); + var ce; + (function(e4) { + e4[e4.None = 0] = "None", e4[e4.UnexpectedEndOfComment = 1] = "UnexpectedEndOfComment", e4[e4.UnexpectedEndOfString = 2] = "UnexpectedEndOfString", e4[e4.UnexpectedEndOfNumber = 3] = "UnexpectedEndOfNumber", e4[e4.InvalidUnicode = 4] = "InvalidUnicode", e4[e4.InvalidEscapeCharacter = 5] = "InvalidEscapeCharacter", e4[e4.InvalidCharacter = 6] = "InvalidCharacter"; + })(ce || (ce = {})); + var ge; + (function(e4) { + e4[e4.OpenBraceToken = 1] = "OpenBraceToken", e4[e4.CloseBraceToken = 2] = "CloseBraceToken", e4[e4.OpenBracketToken = 3] = "OpenBracketToken", e4[e4.CloseBracketToken = 4] = "CloseBracketToken", e4[e4.CommaToken = 5] = "CommaToken", e4[e4.ColonToken = 6] = "ColonToken", e4[e4.NullKeyword = 7] = "NullKeyword", e4[e4.TrueKeyword = 8] = "TrueKeyword", e4[e4.FalseKeyword = 9] = "FalseKeyword", e4[e4.StringLiteral = 10] = "StringLiteral", e4[e4.NumericLiteral = 11] = "NumericLiteral", e4[e4.LineCommentTrivia = 12] = "LineCommentTrivia", e4[e4.BlockCommentTrivia = 13] = "BlockCommentTrivia", e4[e4.LineBreakTrivia = 14] = "LineBreakTrivia", e4[e4.Trivia = 15] = "Trivia", e4[e4.Unknown = 16] = "Unknown", e4[e4.EOF = 17] = "EOF"; + })(ge || (ge = {})); + var Re = Pe; + var ke; + (function(e4) { + e4[e4.InvalidSymbol = 1] = "InvalidSymbol", e4[e4.InvalidNumberFormat = 2] = "InvalidNumberFormat", e4[e4.PropertyNameExpected = 3] = "PropertyNameExpected", e4[e4.ValueExpected = 4] = "ValueExpected", e4[e4.ColonExpected = 5] = "ColonExpected", e4[e4.CommaExpected = 6] = "CommaExpected", e4[e4.CloseBraceExpected = 7] = "CloseBraceExpected", e4[e4.CloseBracketExpected = 8] = "CloseBracketExpected", e4[e4.EndOfFileExpected = 9] = "EndOfFileExpected", e4[e4.InvalidCommentToken = 10] = "InvalidCommentToken", e4[e4.UnexpectedEndOfComment = 11] = "UnexpectedEndOfComment", e4[e4.UnexpectedEndOfString = 12] = "UnexpectedEndOfString", e4[e4.UnexpectedEndOfNumber = 13] = "UnexpectedEndOfNumber", e4[e4.InvalidUnicode = 14] = "InvalidUnicode", e4[e4.InvalidEscapeCharacter = 15] = "InvalidEscapeCharacter", e4[e4.InvalidCharacter = 16] = "InvalidCharacter"; + })(ke || (ke = {})); + var we = o3((e4, t4) => Re($e(t4, e4, "utf8")), "readJsonc"); + var C2 = Symbol("implicitBaseUrl"); + var I2 = "${configDir}"; + var Se = o3(() => { + const { findPnpApi: e4 } = he; + return e4 && e4(process.cwd()); + }, "getPnpApi"); + var ee = o3((e4, t4, s4, n3) => { + const i4 = `resolveFromPackageJsonPath:${e4}:${t4}:${s4}`; + if (n3 != null && n3.has(i4)) return n3.get(i4); + const l3 = we(e4, n3); + if (!l3) return; + let u3 = t4 || "tsconfig.json"; + if (!s4 && l3.exports) try { + const [a3] = Ee.resolveExports(l3.exports, t4, ["require", "types"]); + u3 = a3; + } catch { + return false; + } + else !t4 && l3.tsconfig && (u3 = l3.tsconfig); + return u3 = w3.join(e4, "..", u3), n3 == null || n3.set(i4, u3), u3; + }, "resolveFromPackageJsonPath"); + var ne = "package.json"; + var te = "tsconfig.json"; + var Me = o3((e4, t4, s4) => { + let n3 = e4; + if (e4 === ".." && (n3 = w3.join(n3, te)), e4[0] === "." && (n3 = w3.resolve(t4, n3)), w3.isAbsolute(n3)) { + if (E2(s4, n3)) { + if (G2(s4, n3).isFile()) return n3; + } else if (!n3.endsWith(".json")) { + const p3 = `${n3}.json`; + if (E2(s4, p3)) return p3; + } + return; + } + const [i4, ...l3] = e4.split("/"), u3 = i4[0] === "@" ? `${i4}/${l3.shift()}` : i4, a3 = l3.join("/"), r4 = Se(); + if (r4) { + const { resolveRequest: p3 } = r4; + try { + if (u3 === e4) { + const D2 = p3(w3.join(u3, ne), t4); + if (D2) { + const L = ee(D2, a3, false, s4); + if (L && E2(s4, L)) return L; + } + } else { + let D2; + try { + D2 = p3(e4, t4, { extensions: [".json"] }); + } catch { + D2 = p3(w3.join(e4, te), t4); + } + if (D2) return D2; + } + } catch { + } + } + const g3 = fe(w3.resolve(t4), w3.join("node_modules", u3), s4); + if (!g3 || !G2(s4, g3).isDirectory()) return; + const v6 = w3.join(g3, ne); + if (E2(s4, v6)) { + const p3 = ee(v6, a3, false, s4); + if (p3 === false) return; + if (p3 && E2(s4, p3) && G2(s4, p3).isFile()) return p3; + } + const d3 = w3.join(g3, a3), _3 = d3.endsWith(".json"); + if (!_3) { + const p3 = `${d3}.json`; + if (E2(s4, p3)) return p3; + } + if (E2(s4, d3)) { + if (G2(s4, d3).isDirectory()) { + const p3 = w3.join(d3, ne); + if (E2(s4, p3)) { + const L = ee(p3, "", true, s4); + if (L && E2(s4, L)) return L; + } + const D2 = w3.join(d3, te); + if (E2(s4, D2)) return D2; + } else if (_3) return d3; + } + }, "resolveExtendsPath"); + var se = o3((e4, t4) => K(w3.relative(e4, t4)), "pathRelative"); + var me = ["files", "include", "exclude"]; + var de = o3((e4, t4, s4) => { + const n3 = w3.join(t4, s4), i4 = w3.relative(e4, n3); + return h4(i4) || "./"; + }, "resolveAndRelativize"); + var Je = o3((e4, t4, s4) => { + const n3 = w3.relative(e4, t4); + if (!n3) return s4; + const i4 = s4.startsWith("./") ? s4.slice(2) : s4; + return h4(`${n3}/${i4}`); + }, "prefixPattern"); + var We = o3((e4, t4, s4, n3) => { + const i4 = Me(e4, t4, n3); + if (!i4) throw new Error(`File '${e4}' not found.`); + if (s4.has(i4)) throw new Error(`Circularity detected while resolving configuration: ${i4}`); + s4.add(i4); + const l3 = w3.dirname(i4), u3 = ve(i4, n3, s4); + delete u3.references; + const { compilerOptions: a3 } = u3; + if (a3) { + const { baseUrl: r4 } = a3; + r4 && !r4.startsWith(I2) && (a3.baseUrl = de(t4, l3, r4)); + const { outDir: g3 } = a3; + g3 && !g3.startsWith(I2) && (a3.outDir = de(t4, l3, g3)); + } + for (const r4 of me) { + const g3 = u3[r4]; + g3 && (u3[r4] = g3.map((v6) => v6.startsWith(I2) ? v6 : Je(t4, l3, v6))); + } + return u3; + }, "resolveExtends"); + var be = ["outDir", "declarationDir"]; + var ve = o3((e4, t4, s4 = /* @__PURE__ */ new Set()) => { + let n3; + try { + n3 = we(e4, t4) || {}; + } catch { + throw new Error(`Cannot resolve tsconfig at path: ${e4}`); + } + if (typeof n3 != "object") throw new SyntaxError(`Failed to parse tsconfig at: ${e4}`); + const i4 = w3.dirname(e4); + if (n3.compilerOptions) { + const { compilerOptions: l3 } = n3; + l3.paths && !l3.baseUrl && (l3[C2] = i4); + } + if (n3.extends) { + const l3 = Array.isArray(n3.extends) ? n3.extends : [n3.extends]; + delete n3.extends; + for (const u3 of l3.reverse()) { + const a3 = We(u3, i4, new Set(s4), t4), r4 = { ...a3, ...n3, compilerOptions: { ...a3.compilerOptions, ...n3.compilerOptions } }; + a3.watchOptions && (r4.watchOptions = { ...a3.watchOptions, ...n3.watchOptions }), n3 = r4; + } + } + if (n3.compilerOptions) { + const { compilerOptions: l3 } = n3, u3 = ["baseUrl", "rootDir"]; + for (const a3 of u3) { + const r4 = l3[a3]; + if (r4 && !r4.startsWith(I2)) { + const g3 = w3.resolve(i4, r4), v6 = se(i4, g3); + l3[a3] = v6; + } + } + for (const a3 of be) { + let r4 = l3[a3]; + r4 && (Array.isArray(n3.exclude) || (n3.exclude = be.map((g3) => l3[g3]).filter(Boolean)), r4.startsWith(I2) || (r4 = K(r4)), l3[a3] = r4); + } + } else n3.compilerOptions = {}; + if (n3.include ? (n3.include = n3.include.map(h4), n3.files && delete n3.files) : n3.files && (n3.files = n3.files.map((l3) => l3.startsWith(I2) ? l3 : K(l3))), n3.watchOptions) { + const { watchOptions: l3 } = n3; + l3.excludeDirectories && (l3.excludeDirectories = l3.excludeDirectories.map((u3) => h4(w3.resolve(i4, u3)))), l3.excludeFiles && (l3.excludeFiles = l3.excludeFiles.map((u3) => h4(w3.resolve(i4, u3)))), l3.watchFile && (l3.watchFile = l3.watchFile.toLowerCase()), l3.watchDirectory && (l3.watchDirectory = l3.watchDirectory.toLowerCase()), l3.fallbackPolling && (l3.fallbackPolling = l3.fallbackPolling.toLowerCase()); + } + return n3; + }, "_parseTsconfig"); + var Q = o3((e4, t4) => { + if (e4.startsWith(I2)) return h4(w3.join(t4, e4.slice(I2.length))); + }, "interpolateConfigDir"); + var Ve = ["outDir", "declarationDir", "outFile", "rootDir", "baseUrl", "tsBuildInfoFile"]; + var ze = o3((e4) => { + var t4, s4, n3, i4, l3, u3, a3, r4, g3, v6, d3, _3, p3, D2, L, T, F3, B2, c3, y2, A3, b3, k3, R, J2, W, V, z2, U, m4, j3, S2, $; + if (e4.strict) { + const f5 = ["noImplicitAny", "noImplicitThis", "strictNullChecks", "strictFunctionTypes", "strictBindCallApply", "strictPropertyInitialization", "strictBuiltinIteratorReturn", "alwaysStrict", "useUnknownInCatchVariables"]; + for (const x4 of f5) e4[x4] === void 0 && (e4[x4] = true); + } + if (e4.composite && ((t4 = e4.declaration) != null || (e4.declaration = true), (s4 = e4.incremental) != null || (e4.incremental = true)), e4.target) { + let f5 = e4.target.toLowerCase(); + f5 === "es2015" && (f5 = "es6"), e4.target = f5, f5 === "esnext" && ((n3 = e4.module) != null || (e4.module = "es6"), (i4 = e4.useDefineForClassFields) != null || (e4.useDefineForClassFields = true)), (f5 === "es6" || f5 === "es2016" || f5 === "es2017" || f5 === "es2018" || f5 === "es2019" || f5 === "es2020" || f5 === "es2021" || f5 === "es2022" || f5 === "es2023" || f5 === "es2024") && ((l3 = e4.module) != null || (e4.module = "es6")), (f5 === "es2022" || f5 === "es2023" || f5 === "es2024") && ((u3 = e4.useDefineForClassFields) != null || (e4.useDefineForClassFields = true)); + } + if (e4.module) { + let f5 = e4.module.toLowerCase(); + if (f5 === "es2015" && (f5 = "es6"), e4.module = f5, (f5 === "es6" || f5 === "es2020" || f5 === "es2022" || f5 === "esnext" || f5 === "none" || f5 === "system" || f5 === "umd" || f5 === "amd") && ((a3 = e4.moduleResolution) != null || (e4.moduleResolution = "classic")), f5 === "system" && ((r4 = e4.allowSyntheticDefaultImports) != null || (e4.allowSyntheticDefaultImports = true)), (f5 === "node16" || f5 === "node18" || f5 === "node20" || f5 === "nodenext" || f5 === "preserve") && ((g3 = e4.esModuleInterop) != null || (e4.esModuleInterop = true), (v6 = e4.allowSyntheticDefaultImports) != null || (e4.allowSyntheticDefaultImports = true)), (f5 === "node16" || f5 === "node18" || f5 === "node20" || f5 === "nodenext") && ((d3 = e4.moduleDetection) != null || (e4.moduleDetection = "force")), f5 === "node16" && ((_3 = e4.target) != null || (e4.target = "es2022"), (p3 = e4.moduleResolution) != null || (e4.moduleResolution = "node16")), f5 === "node18" && ((D2 = e4.target) != null || (e4.target = "es2022"), (L = e4.moduleResolution) != null || (e4.moduleResolution = "node16")), f5 === "node20" && ((T = e4.target) != null || (e4.target = "es2023"), (F3 = e4.moduleResolution) != null || (e4.moduleResolution = "node16"), (B2 = e4.resolveJsonModule) != null || (e4.resolveJsonModule = true)), f5 === "nodenext" && ((c3 = e4.target) != null || (e4.target = "esnext"), (y2 = e4.moduleResolution) != null || (e4.moduleResolution = "nodenext"), (A3 = e4.resolveJsonModule) != null || (e4.resolveJsonModule = true)), f5 === "node16" || f5 === "node18" || f5 === "node20" || f5 === "nodenext") { + const x4 = e4.target; + (x4 === "es3" || x4 === "es2022" || x4 === "es2023" || x4 === "es2024" || x4 === "esnext") && ((b3 = e4.useDefineForClassFields) != null || (e4.useDefineForClassFields = true)); + } + f5 === "preserve" && ((k3 = e4.moduleResolution) != null || (e4.moduleResolution = "bundler")); + } + if (e4.moduleResolution) { + let f5 = e4.moduleResolution.toLowerCase(); + f5 === "node" && (f5 = "node10"), e4.moduleResolution = f5, (f5 === "node16" || f5 === "nodenext" || f5 === "bundler") && ((R = e4.resolvePackageJsonExports) != null || (e4.resolvePackageJsonExports = true), (J2 = e4.resolvePackageJsonImports) != null || (e4.resolvePackageJsonImports = true)), f5 === "bundler" && ((W = e4.allowSyntheticDefaultImports) != null || (e4.allowSyntheticDefaultImports = true), (V = e4.resolveJsonModule) != null || (e4.resolveJsonModule = true)); + } + e4.jsx && (e4.jsx = e4.jsx.toLowerCase()), e4.moduleDetection && (e4.moduleDetection = e4.moduleDetection.toLowerCase()), e4.importsNotUsedAsValues && (e4.importsNotUsedAsValues = e4.importsNotUsedAsValues.toLowerCase()), e4.newLine && (e4.newLine = e4.newLine.toLowerCase()), e4.esModuleInterop && ((z2 = e4.allowSyntheticDefaultImports) != null || (e4.allowSyntheticDefaultImports = true)), e4.verbatimModuleSyntax && ((U = e4.isolatedModules) != null || (e4.isolatedModules = true), (m4 = e4.preserveConstEnums) != null || (e4.preserveConstEnums = true)), e4.isolatedModules && ((j3 = e4.preserveConstEnums) != null || (e4.preserveConstEnums = true)), e4.rewriteRelativeImportExtensions && ((S2 = e4.allowImportingTsExtensions) != null || (e4.allowImportingTsExtensions = true)), e4.lib && (e4.lib = e4.lib.map((f5) => f5.toLowerCase())), e4.checkJs && (($ = e4.allowJs) != null || (e4.allowJs = true)); + }, "normalizeCompilerOptions"); + var pe = o3((e4, t4 = /* @__PURE__ */ new Map()) => { + const s4 = w3.resolve(e4), n3 = ve(s4, t4), i4 = w3.dirname(s4), { compilerOptions: l3 } = n3; + if (l3) { + for (const a3 of Ve) { + const r4 = l3[a3]; + if (r4) { + const g3 = Q(r4, i4); + l3[a3] = g3 ? se(i4, g3) : r4; + } + } + for (const a3 of ["rootDirs", "typeRoots"]) { + const r4 = l3[a3]; + r4 && (l3[a3] = r4.map((g3) => { + const v6 = Q(g3, i4); + return v6 ? se(i4, v6) : g3; + })); + } + const { paths: u3 } = l3; + if (u3) for (const a3 of Object.keys(u3)) u3[a3] = u3[a3].map((r4) => { + var g3; + return (g3 = Q(r4, i4)) != null ? g3 : r4; + }); + ze(l3); + } + for (const u3 of me) { + const a3 = n3[u3]; + a3 && (n3[u3] = a3.map((r4) => { + var g3; + return (g3 = Q(r4, i4)) != null ? g3 : r4; + })); + } + return n3; + }, "parseTsconfig"); + var Ge = o3((e4 = process.cwd(), t4 = "tsconfig.json", s4 = /* @__PURE__ */ new Map()) => { + const n3 = fe(h4(e4), t4, s4); + if (!n3) return null; + const i4 = pe(n3, s4); + return { path: n3, config: i4 }; + }, "getTsconfig"); + var qe = /\*/g; + var Te = o3((e4, t4) => { + const s4 = e4.match(qe); + if (s4 && s4.length > 1) throw new Error(t4); + }, "assertStarCount"); + var Qe = o3((e4) => { + if (e4.includes("*")) { + const [t4, s4] = e4.split("*"); + return { prefix: t4, suffix: s4 }; + } + return e4; + }, "parsePattern"); + var He = o3(({ prefix: e4, suffix: t4 }, s4) => s4.startsWith(e4) && s4.endsWith(t4), "isPatternMatch"); + var Xe = o3((e4, t4, s4) => Object.entries(e4).map(([n3, i4]) => (Te(n3, `Pattern '${n3}' can have at most one '*' character.`), { pattern: Qe(n3), substitutions: i4.map((l3) => { + if (Te(l3, `Substitution '${l3}' in pattern '${n3}' can have at most one '*' character.`), !t4 && !Z2.test(l3) && !w3.isAbsolute(l3)) throw new Error("Non-relative paths are not allowed when 'baseUrl' is not set. Did you forget a leading './'?"); + return w3.resolve(s4, l3); + }) })), "parsePaths"); + var Ye = o3((e4) => { + const { compilerOptions: t4 } = e4.config; + if (!t4) return null; + const { baseUrl: s4, paths: n3 } = t4; + if (!s4 && !n3) return null; + const i4 = C2 in t4 && t4[C2], l3 = w3.resolve(w3.dirname(e4.path), s4 || i4 || "."), u3 = n3 ? Xe(n3, s4, l3) : []; + return (a3) => { + if (Z2.test(a3)) return []; + const r4 = []; + for (const _3 of u3) { + if (_3.pattern === a3) return _3.substitutions.map(h4); + typeof _3.pattern != "string" && r4.push(_3); + } + let g3, v6 = -1; + for (const _3 of r4) He(_3.pattern, a3) && _3.pattern.prefix.length > v6 && (v6 = _3.pattern.prefix.length, g3 = _3); + if (!g3) return s4 ? [h4(w3.join(l3, a3))] : []; + const d3 = a3.slice(g3.pattern.prefix.length, a3.length - g3.pattern.suffix.length); + return g3.substitutions.map((_3) => h4(_3.replace("*", d3))); + }; + }, "createPathsMatcher"); + var Ze = Object.defineProperty; + var H2 = o3((e4, t4) => Ze(e4, "name", { value: t4, configurable: true }), "s"); + var Ae = H2((e4) => { + let t4 = ""; + for (let s4 = 0; s4 < e4.length; s4 += 1) { + const n3 = e4[s4], i4 = n3.toUpperCase(); + t4 += n3 === i4 ? n3.toLowerCase() : i4; + } + return t4; + }, "invertCase"); + var le = /* @__PURE__ */ new Map(); + var _e = H2((e4, t4) => { + const s4 = Ie.join(e4, `.is-fs-case-sensitive-test-${process.pid}`); + try { + return t4.writeFileSync(s4, ""), !t4.existsSync(Ae(s4)); + } finally { + try { + t4.unlinkSync(s4); + } catch { + } + } + }, "checkDirectoryCaseWithWrite"); + var Ke = H2((e4, t4, s4) => { + try { + return _e(e4, s4); + } catch (n3) { + if (t4 === void 0) return _e(xe.tmpdir(), s4); + throw n3; + } + }, "checkDirectoryCaseWithFallback"); + var Oe = H2((e4, t4 = Be, s4 = true) => { + const n3 = e4 != null ? e4 : process.cwd(); + if (s4 && le.has(n3)) return le.get(n3); + let i4; + const l3 = Ae(n3); + return l3 !== n3 && t4.existsSync(n3) ? i4 = !t4.existsSync(l3) : i4 = Ke(n3, e4, t4), s4 && le.set(n3, i4), i4; + }, "isFsCaseSensitive"); + var { join: ye } = w3.posix; + var ie = { ts: [".ts", ".tsx", ".d.ts"], cts: [".cts", ".d.cts"], mts: [".mts", ".d.mts"] }; + var Ce = o3((e4) => { + const t4 = [...ie.ts], s4 = [...ie.cts], n3 = [...ie.mts]; + return e4 != null && e4.allowJs && (t4.push(".js", ".jsx"), s4.push(".cjs"), n3.push(".mjs")), [...t4, ...s4, ...n3]; + }, "getSupportedExtensions"); + var en = o3((e4) => { + const t4 = []; + if (!e4) return t4; + const { outDir: s4, declarationDir: n3 } = e4; + return s4 && t4.push(s4), n3 && t4.push(n3), t4; + }, "getDefaultExcludeSpec"); + var je = o3((e4) => e4.replaceAll(/[.*+?^${}()|[\]\\]/g, String.raw`\$&`), "escapeForRegexp"); + var nn = ["node_modules", "bower_components", "jspm_packages"]; + var oe = `(?!(${nn.join("|")})(/|$))`; + var tn = /(?:^|\/)[^.*?]+$/; + var Fe = "**/*"; + var X = "[^/]"; + var ue = "[^./]"; + var De = process.platform === "win32"; + var sn = o3(({ config: e4, path: t4 }, s4 = Oe()) => { + if ("extends" in e4) throw new Error("tsconfig#extends must be resolved. Use getTsconfig or parseTsconfig to resolve it."); + if (!w3.isAbsolute(t4)) throw new Error("The tsconfig path must be absolute"); + De && (t4 = h4(t4)); + const n3 = w3.dirname(t4), { files: i4, include: l3, exclude: u3, compilerOptions: a3 } = e4, r4 = o3((T) => w3.isAbsolute(T) ? T : ye(n3, T), "resolvePattern"), g3 = i4 == null ? void 0 : i4.map(r4), v6 = Ce(a3), d3 = s4 ? "" : "i", p3 = (u3 || en(a3)).map((T) => { + const F3 = r4(T), B2 = je(F3).replaceAll(String.raw`\*\*/`, "(.+/)?").replaceAll(String.raw`\*`, `${X}*`).replaceAll(String.raw`\?`, X); + return new RegExp(`^${B2}($|/)`, d3); + }), D2 = i4 || l3 ? l3 : [Fe], L = D2 ? D2.map((T) => { + let F3 = r4(T); + tn.test(F3) && (F3 = ye(F3, Fe)); + const B2 = je(F3).replaceAll(String.raw`/\*\*`, `(/${oe}${ue}${X}*)*?`).replaceAll(/(\/)?\\\*/g, (c3, y2) => { + const A3 = `(${ue}|(\\.(?!min\\.js$))?)*`; + return y2 ? `/${oe}${ue}${A3}` : A3; + }).replaceAll(/(\/)?\\\?/g, (c3, y2) => { + const A3 = X; + return y2 ? `/${oe}${A3}` : A3; + }); + return new RegExp(`^${B2}$`, d3); + }) : void 0; + return (T) => { + if (!w3.isAbsolute(T)) throw new Error("filePath must be absolute"); + if (De && (T = h4(T)), g3 != null && g3.includes(T)) return e4; + if (!(!v6.some((F3) => T.endsWith(F3)) || p3.some((F3) => F3.test(T))) && L && L.some((F3) => F3.test(T))) return e4; + }; + }, "createFilesMatcher"); + exports2.createFilesMatcher = sn, exports2.createPathsMatcher = Ye, exports2.getTsconfig = Ge, exports2.parseTsconfig = pe; + } +}); + +// ../node_modules/.pnpm/tsx@4.21.0/node_modules/tsx/dist/lexer-DgIbo0BU.cjs +var require_lexer_DgIbo0BU = __commonJS({ + "../node_modules/.pnpm/tsx@4.21.0/node_modules/tsx/dist/lexer-DgIbo0BU.cjs"(exports2) { + "use strict"; + var G2 = Object.defineProperty; + var k3 = (A3, E2) => G2(A3, "name", { value: E2, configurable: true }); + exports2.ImportType = void 0, function(A3) { + A3[A3.Static = 1] = "Static", A3[A3.Dynamic = 2] = "Dynamic", A3[A3.ImportMeta = 3] = "ImportMeta", A3[A3.StaticSourcePhase = 4] = "StaticSourcePhase", A3[A3.DynamicSourcePhase = 5] = "DynamicSourcePhase"; + }(exports2.ImportType || (exports2.ImportType = {})); + var r4 = new Uint8Array(new Uint16Array([1]).buffer)[0] === 1; + function U(A3, E2 = "@") { + if (!Q) return F3.then(() => U(A3)); + const g3 = A3.length + 1, B2 = (Q.__heap_base.value || Q.__heap_base) + 4 * g3 - Q.memory.buffer.byteLength; + B2 > 0 && Q.memory.grow(Math.ceil(B2 / 65536)); + const i4 = Q.sa(g3 - 1); + if ((r4 ? R : Y)(A3, new Uint16Array(Q.memory.buffer, i4, g3)), !Q.parse()) throw Object.assign(new Error(`Parse error ${E2}:${A3.slice(0, Q.e()).split(` +`).length}:${Q.e() - A3.lastIndexOf(` +`, Q.e() - 1)}`), { idx: Q.e() }); + const a3 = [], t4 = []; + for (; Q.ri(); ) { + const C2 = Q.is(), I2 = Q.ie(), D2 = Q.it(), s4 = Q.ai(), w3 = Q.id(), J2 = Q.ss(), K = Q.se(); + let o3; + Q.ip() && (o3 = N(A3.slice(w3 === -1 ? C2 - 1 : C2, w3 === -1 ? I2 + 1 : I2))), a3.push({ n: o3, t: D2, s: C2, e: I2, ss: J2, se: K, d: w3, a: s4 }); + } + for (; Q.re(); ) { + const C2 = Q.es(), I2 = Q.ee(), D2 = Q.els(), s4 = Q.ele(), w3 = A3.slice(C2, I2), J2 = w3[0], K = D2 < 0 ? void 0 : A3.slice(D2, s4), o3 = K ? K[0] : ""; + t4.push({ s: C2, e: I2, ls: D2, le: s4, n: J2 === '"' || J2 === "'" ? N(w3) : w3, ln: o3 === '"' || o3 === "'" ? N(K) : K }); + } + function N(C2) { + try { + return (0, eval)(C2); + } catch { + } + } + return k3(N, "k"), [a3, t4, !!Q.f(), !!Q.ms()]; + } + k3(U, "parse"); + function Y(A3, E2) { + const g3 = A3.length; + let B2 = 0; + for (; B2 < g3; ) { + const i4 = A3.charCodeAt(B2); + E2[B2++] = (255 & i4) << 8 | i4 >>> 8; + } + } + k3(Y, "Q"); + function R(A3, E2) { + const g3 = A3.length; + let B2 = 0; + for (; B2 < g3; ) E2[B2] = A3.charCodeAt(B2++); + } + k3(R, "B"); + var Q; + var F3 = WebAssembly.compile((L = "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", typeof Buffer < "u" ? Buffer.from(L, "base64") : Uint8Array.from(atob(L), (A3) => A3.charCodeAt(0)))).then(WebAssembly.instantiate).then(({ exports: A3 }) => { + Q = A3; + }); + var L; + exports2.init = F3, exports2.parse = U; + } +}); + +// ../node_modules/.pnpm/tsx@4.21.0/node_modules/tsx/dist/index-gckBtVBf.cjs +var require_index_gckBtVBf = __commonJS({ + "../node_modules/.pnpm/tsx@4.21.0/node_modules/tsx/dist/index-gckBtVBf.cjs"(exports2) { + "use strict"; + var Bt = Object.defineProperty; + var f5 = (s4, e4) => Bt(s4, "name", { value: e4, configurable: true }); + var Ne = require("node:url"); + var ne = require("esbuild"); + var Jt = require("node:crypto"); + var j3 = require("node:fs"); + var X = require("node:path"); + var Gt = require("node:os"); + var zt = require_temporary_directory_B83uKxJF(); + var Ie = f5((s4) => Jt.createHash("sha1").update(s4).digest("hex"), "sha1"); + var Me = 44; + var Ht = 59; + var Ue = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; + var je = new Uint8Array(64); + var $e = new Uint8Array(128); + for (let s4 = 0; s4 < Ue.length; s4++) { + const e4 = Ue.charCodeAt(s4); + je[s4] = e4, $e[e4] = s4; + } + var ke = typeof TextDecoder < "u" ? new TextDecoder() : typeof Buffer < "u" ? { decode(s4) { + return Buffer.from(s4.buffer, s4.byteOffset, s4.byteLength).toString(); + } } : { decode(s4) { + let e4 = ""; + for (let r4 = 0; r4 < s4.length; r4++) e4 += String.fromCharCode(s4[r4]); + return e4; + } }; + function Xt(s4) { + const e4 = new Int32Array(5), r4 = []; + let i4 = 0; + do { + const o3 = Kt(s4, i4), c3 = []; + let u3 = true, p3 = 0; + e4[0] = 0; + for (let g3 = i4; g3 < o3; g3++) { + let b3; + g3 = K(s4, g3, e4, 0); + const d3 = e4[0]; + d3 < p3 && (u3 = false), p3 = d3, De(s4, g3, o3) ? (g3 = K(s4, g3, e4, 1), g3 = K(s4, g3, e4, 2), g3 = K(s4, g3, e4, 3), De(s4, g3, o3) ? (g3 = K(s4, g3, e4, 4), b3 = [d3, e4[1], e4[2], e4[3], e4[4]]) : b3 = [d3, e4[1], e4[2], e4[3]]) : b3 = [d3], c3.push(b3); + } + u3 || Yt(c3), r4.push(c3), i4 = o3 + 1; + } while (i4 <= s4.length); + return r4; + } + f5(Xt, "decode"); + function Kt(s4, e4) { + const r4 = s4.indexOf(";", e4); + return r4 === -1 ? s4.length : r4; + } + f5(Kt, "indexOf"); + function K(s4, e4, r4, i4) { + let o3 = 0, c3 = 0, u3 = 0; + do { + const g3 = s4.charCodeAt(e4++); + u3 = $e[g3], o3 |= (u3 & 31) << c3, c3 += 5; + } while (u3 & 32); + const p3 = o3 & 1; + return o3 >>>= 1, p3 && (o3 = -2147483648 | -o3), r4[i4] += o3, e4; + } + f5(K, "decodeInteger"); + function De(s4, e4, r4) { + return e4 >= r4 ? false : s4.charCodeAt(e4) !== Me; + } + f5(De, "hasMoreVlq"); + function Yt(s4) { + s4.sort(Qt); + } + f5(Yt, "sort"); + function Qt(s4, e4) { + return s4[0] - e4[0]; + } + f5(Qt, "sortComparator$1"); + function Te(s4) { + const e4 = new Int32Array(5), r4 = 1024 * 16, i4 = r4 - 36, o3 = new Uint8Array(r4), c3 = o3.subarray(0, i4); + let u3 = 0, p3 = ""; + for (let g3 = 0; g3 < s4.length; g3++) { + const b3 = s4[g3]; + if (g3 > 0 && (u3 === r4 && (p3 += ke.decode(o3), u3 = 0), o3[u3++] = Ht), b3.length !== 0) { + e4[0] = 0; + for (let d3 = 0; d3 < b3.length; d3++) { + const n3 = b3[d3]; + u3 > i4 && (p3 += ke.decode(c3), o3.copyWithin(0, i4, u3), u3 -= i4), d3 > 0 && (o3[u3++] = Me), u3 = Y(o3, u3, e4, n3, 0), n3.length !== 1 && (u3 = Y(o3, u3, e4, n3, 1), u3 = Y(o3, u3, e4, n3, 2), u3 = Y(o3, u3, e4, n3, 3), n3.length !== 4 && (u3 = Y(o3, u3, e4, n3, 4))); + } + } + } + return p3 + ke.decode(o3.subarray(0, u3)); + } + f5(Te, "encode"); + function Y(s4, e4, r4, i4, o3) { + const c3 = i4[o3]; + let u3 = c3 - r4[o3]; + r4[o3] = c3, u3 = u3 < 0 ? -u3 << 1 | 1 : u3 << 1; + do { + let p3 = u3 & 31; + u3 >>>= 5, u3 > 0 && (p3 |= 32), s4[e4++] = je[p3]; + } while (u3 > 0); + return e4; + } + f5(Y, "encodeInteger"); + var _ce = class _ce { + constructor(e4) { + this.bits = e4 instanceof _ce ? e4.bits.slice() : []; + } + add(e4) { + this.bits[e4 >> 5] |= 1 << (e4 & 31); + } + has(e4) { + return !!(this.bits[e4 >> 5] & 1 << (e4 & 31)); + } + }; + f5(_ce, "BitSet"); + var ce = _ce; + var _ee = class _ee { + constructor(e4, r4, i4) { + this.start = e4, this.end = r4, this.original = i4, this.intro = "", this.outro = "", this.content = i4, this.storeName = false, this.edited = false, this.previous = null, this.next = null; + } + appendLeft(e4) { + this.outro += e4; + } + appendRight(e4) { + this.intro = this.intro + e4; + } + clone() { + const e4 = new _ee(this.start, this.end, this.original); + return e4.intro = this.intro, e4.outro = this.outro, e4.content = this.content, e4.storeName = this.storeName, e4.edited = this.edited, e4; + } + contains(e4) { + return this.start < e4 && e4 < this.end; + } + eachNext(e4) { + let r4 = this; + for (; r4; ) e4(r4), r4 = r4.next; + } + eachPrevious(e4) { + let r4 = this; + for (; r4; ) e4(r4), r4 = r4.previous; + } + edit(e4, r4, i4) { + return this.content = e4, i4 || (this.intro = "", this.outro = ""), this.storeName = r4, this.edited = true, this; + } + prependLeft(e4) { + this.outro = e4 + this.outro; + } + prependRight(e4) { + this.intro = e4 + this.intro; + } + reset() { + this.intro = "", this.outro = "", this.edited && (this.content = this.original, this.storeName = false, this.edited = false); + } + split(e4) { + const r4 = e4 - this.start, i4 = this.original.slice(0, r4), o3 = this.original.slice(r4); + this.original = i4; + const c3 = new _ee(e4, this.end, o3); + return c3.outro = this.outro, this.outro = "", this.end = e4, this.edited ? (c3.edit("", false), this.content = "") : this.content = i4, c3.next = this.next, c3.next && (c3.next.previous = c3), c3.previous = this, this.next = c3, c3; + } + toString() { + return this.intro + this.content + this.outro; + } + trimEnd(e4) { + if (this.outro = this.outro.replace(e4, ""), this.outro.length) return true; + const r4 = this.content.replace(e4, ""); + if (r4.length) return r4 !== this.content && (this.split(this.start + r4.length).edit("", void 0, true), this.edited && this.edit(r4, this.storeName, true)), true; + if (this.edit("", void 0, true), this.intro = this.intro.replace(e4, ""), this.intro.length) return true; + } + trimStart(e4) { + if (this.intro = this.intro.replace(e4, ""), this.intro.length) return true; + const r4 = this.content.replace(e4, ""); + if (r4.length) { + if (r4 !== this.content) { + const i4 = this.split(this.end - r4.length); + this.edited && i4.edit(r4, this.storeName, true), this.edit("", void 0, true); + } + return true; + } else if (this.edit("", void 0, true), this.outro = this.outro.replace(e4, ""), this.outro.length) return true; + } + }; + f5(_ee, "Chunk"); + var ee = _ee; + function Zt() { + return typeof globalThis < "u" && typeof globalThis.btoa == "function" ? (s4) => globalThis.btoa(unescape(encodeURIComponent(s4))) : typeof Buffer == "function" ? (s4) => Buffer.from(s4, "utf-8").toString("base64") : () => { + throw new Error("Unsupported environment: `window.btoa` or `Buffer` should be supported."); + }; + } + f5(Zt, "getBtoa"); + var Vt = Zt(); + var _a2; + var er = (_a2 = class { + constructor(e4) { + this.version = 3, this.file = e4.file, this.sources = e4.sources, this.sourcesContent = e4.sourcesContent, this.names = e4.names, this.mappings = Te(e4.mappings), typeof e4.x_google_ignoreList < "u" && (this.x_google_ignoreList = e4.x_google_ignoreList); + } + toString() { + return JSON.stringify(this); + } + toUrl() { + return "data:application/json;charset=utf-8;base64," + Vt(this.toString()); + } + }, f5(_a2, "SourceMap"), _a2); + function tr(s4) { + const e4 = s4.split(` +`), r4 = e4.filter((c3) => /^\t+/.test(c3)), i4 = e4.filter((c3) => /^ {2,}/.test(c3)); + if (r4.length === 0 && i4.length === 0) return null; + if (r4.length >= i4.length) return " "; + const o3 = i4.reduce((c3, u3) => { + const p3 = /^ +/.exec(u3)[0].length; + return Math.min(p3, c3); + }, 1 / 0); + return new Array(o3 + 1).join(" "); + } + f5(tr, "guessIndent"); + function rr(s4, e4) { + const r4 = s4.split(/[/\\]/), i4 = e4.split(/[/\\]/); + for (r4.pop(); r4[0] === i4[0]; ) r4.shift(), i4.shift(); + if (r4.length) { + let o3 = r4.length; + for (; o3--; ) r4[o3] = ".."; + } + return r4.concat(i4).join("/"); + } + f5(rr, "getRelativePath"); + var nr = Object.prototype.toString; + function ir(s4) { + return nr.call(s4) === "[object Object]"; + } + f5(ir, "isObject"); + function Fe(s4) { + const e4 = s4.split(` +`), r4 = []; + for (let i4 = 0, o3 = 0; i4 < e4.length; i4++) r4.push(o3), o3 += e4[i4].length + 1; + return f5(function(o3) { + let c3 = 0, u3 = r4.length; + for (; c3 < u3; ) { + const b3 = c3 + u3 >> 1; + o3 < r4[b3] ? u3 = b3 : c3 = b3 + 1; + } + const p3 = c3 - 1, g3 = o3 - r4[p3]; + return { line: p3, column: g3 }; + }, "locate"); + } + f5(Fe, "getLocator"); + var sr = /\w/; + var _or = class _or { + constructor(e4) { + this.hires = e4, this.generatedCodeLine = 0, this.generatedCodeColumn = 0, this.raw = [], this.rawSegments = this.raw[this.generatedCodeLine] = [], this.pending = null; + } + addEdit(e4, r4, i4, o3) { + if (r4.length) { + const c3 = r4.length - 1; + let u3 = r4.indexOf(` +`, 0), p3 = -1; + for (; u3 >= 0 && c3 > u3; ) { + const b3 = [this.generatedCodeColumn, e4, i4.line, i4.column]; + o3 >= 0 && b3.push(o3), this.rawSegments.push(b3), this.generatedCodeLine += 1, this.raw[this.generatedCodeLine] = this.rawSegments = [], this.generatedCodeColumn = 0, p3 = u3, u3 = r4.indexOf(` +`, u3 + 1); + } + const g3 = [this.generatedCodeColumn, e4, i4.line, i4.column]; + o3 >= 0 && g3.push(o3), this.rawSegments.push(g3), this.advance(r4.slice(p3 + 1)); + } else this.pending && (this.rawSegments.push(this.pending), this.advance(r4)); + this.pending = null; + } + addUneditedChunk(e4, r4, i4, o3, c3) { + let u3 = r4.start, p3 = true, g3 = false; + for (; u3 < r4.end; ) { + if (this.hires || p3 || c3.has(u3)) { + const b3 = [this.generatedCodeColumn, e4, o3.line, o3.column]; + this.hires === "boundary" ? sr.test(i4[u3]) ? g3 || (this.rawSegments.push(b3), g3 = true) : (this.rawSegments.push(b3), g3 = false) : this.rawSegments.push(b3); + } + i4[u3] === ` +` ? (o3.line += 1, o3.column = 0, this.generatedCodeLine += 1, this.raw[this.generatedCodeLine] = this.rawSegments = [], this.generatedCodeColumn = 0, p3 = true) : (o3.column += 1, this.generatedCodeColumn += 1, p3 = false), u3 += 1; + } + this.pending = null; + } + advance(e4) { + if (!e4) return; + const r4 = e4.split(` +`); + if (r4.length > 1) { + for (let i4 = 0; i4 < r4.length - 1; i4++) this.generatedCodeLine++, this.raw[this.generatedCodeLine] = this.rawSegments = []; + this.generatedCodeColumn = 0; + } + this.generatedCodeColumn += r4[r4.length - 1].length; + } + }; + f5(_or, "Mappings"); + var or = _or; + var Q = ` +`; + var B2 = { insertLeft: false, insertRight: false, storeName: false }; + var _Ee = class _Ee { + constructor(e4, r4 = {}) { + const i4 = new ee(0, e4.length, e4); + Object.defineProperties(this, { original: { writable: true, value: e4 }, outro: { writable: true, value: "" }, intro: { writable: true, value: "" }, firstChunk: { writable: true, value: i4 }, lastChunk: { writable: true, value: i4 }, lastSearchedChunk: { writable: true, value: i4 }, byStart: { writable: true, value: {} }, byEnd: { writable: true, value: {} }, filename: { writable: true, value: r4.filename }, indentExclusionRanges: { writable: true, value: r4.indentExclusionRanges }, sourcemapLocations: { writable: true, value: new ce() }, storedNames: { writable: true, value: {} }, indentStr: { writable: true, value: void 0 }, ignoreList: { writable: true, value: r4.ignoreList } }), this.byStart[0] = i4, this.byEnd[e4.length] = i4; + } + addSourcemapLocation(e4) { + this.sourcemapLocations.add(e4); + } + append(e4) { + if (typeof e4 != "string") throw new TypeError("outro content must be a string"); + return this.outro += e4, this; + } + appendLeft(e4, r4) { + if (typeof r4 != "string") throw new TypeError("inserted content must be a string"); + this._split(e4); + const i4 = this.byEnd[e4]; + return i4 ? i4.appendLeft(r4) : this.intro += r4, this; + } + appendRight(e4, r4) { + if (typeof r4 != "string") throw new TypeError("inserted content must be a string"); + this._split(e4); + const i4 = this.byStart[e4]; + return i4 ? i4.appendRight(r4) : this.outro += r4, this; + } + clone() { + const e4 = new _Ee(this.original, { filename: this.filename }); + let r4 = this.firstChunk, i4 = e4.firstChunk = e4.lastSearchedChunk = r4.clone(); + for (; r4; ) { + e4.byStart[i4.start] = i4, e4.byEnd[i4.end] = i4; + const o3 = r4.next, c3 = o3 && o3.clone(); + c3 && (i4.next = c3, c3.previous = i4, i4 = c3), r4 = o3; + } + return e4.lastChunk = i4, this.indentExclusionRanges && (e4.indentExclusionRanges = this.indentExclusionRanges.slice()), e4.sourcemapLocations = new ce(this.sourcemapLocations), e4.intro = this.intro, e4.outro = this.outro, e4; + } + generateDecodedMap(e4) { + e4 = e4 || {}; + const r4 = 0, i4 = Object.keys(this.storedNames), o3 = new or(e4.hires), c3 = Fe(this.original); + return this.intro && o3.advance(this.intro), this.firstChunk.eachNext((u3) => { + const p3 = c3(u3.start); + u3.intro.length && o3.advance(u3.intro), u3.edited ? o3.addEdit(r4, u3.content, p3, u3.storeName ? i4.indexOf(u3.original) : -1) : o3.addUneditedChunk(r4, u3, this.original, p3, this.sourcemapLocations), u3.outro.length && o3.advance(u3.outro); + }), { file: e4.file ? e4.file.split(/[/\\]/).pop() : void 0, sources: [e4.source ? rr(e4.file || "", e4.source) : e4.file || ""], sourcesContent: e4.includeContent ? [this.original] : void 0, names: i4, mappings: o3.raw, x_google_ignoreList: this.ignoreList ? [r4] : void 0 }; + } + generateMap(e4) { + return new er(this.generateDecodedMap(e4)); + } + _ensureindentStr() { + this.indentStr === void 0 && (this.indentStr = tr(this.original)); + } + _getRawIndentString() { + return this._ensureindentStr(), this.indentStr; + } + getIndentString() { + return this._ensureindentStr(), this.indentStr === null ? " " : this.indentStr; + } + indent(e4, r4) { + const i4 = /^[^\r\n]/gm; + if (ir(e4) && (r4 = e4, e4 = void 0), e4 === void 0 && (this._ensureindentStr(), e4 = this.indentStr || " "), e4 === "") return this; + r4 = r4 || {}; + const o3 = {}; + r4.exclude && (typeof r4.exclude[0] == "number" ? [r4.exclude] : r4.exclude).forEach((d3) => { + for (let n3 = d3[0]; n3 < d3[1]; n3 += 1) o3[n3] = true; + }); + let c3 = r4.indentStart !== false; + const u3 = f5((b3) => c3 ? `${e4}${b3}` : (c3 = true, b3), "replacer"); + this.intro = this.intro.replace(i4, u3); + let p3 = 0, g3 = this.firstChunk; + for (; g3; ) { + const b3 = g3.end; + if (g3.edited) o3[p3] || (g3.content = g3.content.replace(i4, u3), g3.content.length && (c3 = g3.content[g3.content.length - 1] === ` +`)); + else for (p3 = g3.start; p3 < b3; ) { + if (!o3[p3]) { + const d3 = this.original[p3]; + d3 === ` +` ? c3 = true : d3 !== "\r" && c3 && (c3 = false, p3 === g3.start || (this._splitChunk(g3, p3), g3 = g3.next), g3.prependRight(e4)); + } + p3 += 1; + } + p3 = g3.end, g3 = g3.next; + } + return this.outro = this.outro.replace(i4, u3), this; + } + insert() { + throw new Error("magicString.insert(...) is deprecated. Use prependRight(...) or appendLeft(...)"); + } + insertLeft(e4, r4) { + return B2.insertLeft || (console.warn("magicString.insertLeft(...) is deprecated. Use magicString.appendLeft(...) instead"), B2.insertLeft = true), this.appendLeft(e4, r4); + } + insertRight(e4, r4) { + return B2.insertRight || (console.warn("magicString.insertRight(...) is deprecated. Use magicString.prependRight(...) instead"), B2.insertRight = true), this.prependRight(e4, r4); + } + move(e4, r4, i4) { + if (i4 >= e4 && i4 <= r4) throw new Error("Cannot move a selection inside itself"); + this._split(e4), this._split(r4), this._split(i4); + const o3 = this.byStart[e4], c3 = this.byEnd[r4], u3 = o3.previous, p3 = c3.next, g3 = this.byStart[i4]; + if (!g3 && c3 === this.lastChunk) return this; + const b3 = g3 ? g3.previous : this.lastChunk; + return u3 && (u3.next = p3), p3 && (p3.previous = u3), b3 && (b3.next = o3), g3 && (g3.previous = c3), o3.previous || (this.firstChunk = c3.next), c3.next || (this.lastChunk = o3.previous, this.lastChunk.next = null), o3.previous = b3, c3.next = g3 || null, b3 || (this.firstChunk = o3), g3 || (this.lastChunk = c3), this; + } + overwrite(e4, r4, i4, o3) { + return o3 = o3 || {}, this.update(e4, r4, i4, { ...o3, overwrite: !o3.contentOnly }); + } + update(e4, r4, i4, o3) { + if (typeof i4 != "string") throw new TypeError("replacement content must be a string"); + for (; e4 < 0; ) e4 += this.original.length; + for (; r4 < 0; ) r4 += this.original.length; + if (r4 > this.original.length) throw new Error("end is out of bounds"); + if (e4 === r4) throw new Error("Cannot overwrite a zero-length range \u2013 use appendLeft or prependRight instead"); + this._split(e4), this._split(r4), o3 === true && (B2.storeName || (console.warn("The final argument to magicString.overwrite(...) should be an options object. See https://github.com/rich-harris/magic-string"), B2.storeName = true), o3 = { storeName: true }); + const c3 = o3 !== void 0 ? o3.storeName : false, u3 = o3 !== void 0 ? o3.overwrite : false; + if (c3) { + const b3 = this.original.slice(e4, r4); + Object.defineProperty(this.storedNames, b3, { writable: true, value: true, enumerable: true }); + } + const p3 = this.byStart[e4], g3 = this.byEnd[r4]; + if (p3) { + let b3 = p3; + for (; b3 !== g3; ) { + if (b3.next !== this.byStart[b3.end]) throw new Error("Cannot overwrite across a split point"); + b3 = b3.next, b3.edit("", false); + } + p3.edit(i4, c3, !u3); + } else { + const b3 = new ee(e4, r4, "").edit(i4, c3); + g3.next = b3, b3.previous = g3; + } + return this; + } + prepend(e4) { + if (typeof e4 != "string") throw new TypeError("outro content must be a string"); + return this.intro = e4 + this.intro, this; + } + prependLeft(e4, r4) { + if (typeof r4 != "string") throw new TypeError("inserted content must be a string"); + this._split(e4); + const i4 = this.byEnd[e4]; + return i4 ? i4.prependLeft(r4) : this.intro = r4 + this.intro, this; + } + prependRight(e4, r4) { + if (typeof r4 != "string") throw new TypeError("inserted content must be a string"); + this._split(e4); + const i4 = this.byStart[e4]; + return i4 ? i4.prependRight(r4) : this.outro = r4 + this.outro, this; + } + remove(e4, r4) { + for (; e4 < 0; ) e4 += this.original.length; + for (; r4 < 0; ) r4 += this.original.length; + if (e4 === r4) return this; + if (e4 < 0 || r4 > this.original.length) throw new Error("Character is out of bounds"); + if (e4 > r4) throw new Error("end must be greater than start"); + this._split(e4), this._split(r4); + let i4 = this.byStart[e4]; + for (; i4; ) i4.intro = "", i4.outro = "", i4.edit(""), i4 = r4 > i4.end ? this.byStart[i4.end] : null; + return this; + } + reset(e4, r4) { + for (; e4 < 0; ) e4 += this.original.length; + for (; r4 < 0; ) r4 += this.original.length; + if (e4 === r4) return this; + if (e4 < 0 || r4 > this.original.length) throw new Error("Character is out of bounds"); + if (e4 > r4) throw new Error("end must be greater than start"); + this._split(e4), this._split(r4); + let i4 = this.byStart[e4]; + for (; i4; ) i4.reset(), i4 = r4 > i4.end ? this.byStart[i4.end] : null; + return this; + } + lastChar() { + if (this.outro.length) return this.outro[this.outro.length - 1]; + let e4 = this.lastChunk; + do { + if (e4.outro.length) return e4.outro[e4.outro.length - 1]; + if (e4.content.length) return e4.content[e4.content.length - 1]; + if (e4.intro.length) return e4.intro[e4.intro.length - 1]; + } while (e4 = e4.previous); + return this.intro.length ? this.intro[this.intro.length - 1] : ""; + } + lastLine() { + let e4 = this.outro.lastIndexOf(Q); + if (e4 !== -1) return this.outro.substr(e4 + 1); + let r4 = this.outro, i4 = this.lastChunk; + do { + if (i4.outro.length > 0) { + if (e4 = i4.outro.lastIndexOf(Q), e4 !== -1) return i4.outro.substr(e4 + 1) + r4; + r4 = i4.outro + r4; + } + if (i4.content.length > 0) { + if (e4 = i4.content.lastIndexOf(Q), e4 !== -1) return i4.content.substr(e4 + 1) + r4; + r4 = i4.content + r4; + } + if (i4.intro.length > 0) { + if (e4 = i4.intro.lastIndexOf(Q), e4 !== -1) return i4.intro.substr(e4 + 1) + r4; + r4 = i4.intro + r4; + } + } while (i4 = i4.previous); + return e4 = this.intro.lastIndexOf(Q), e4 !== -1 ? this.intro.substr(e4 + 1) + r4 : this.intro + r4; + } + slice(e4 = 0, r4 = this.original.length) { + for (; e4 < 0; ) e4 += this.original.length; + for (; r4 < 0; ) r4 += this.original.length; + let i4 = "", o3 = this.firstChunk; + for (; o3 && (o3.start > e4 || o3.end <= e4); ) { + if (o3.start < r4 && o3.end >= r4) return i4; + o3 = o3.next; + } + if (o3 && o3.edited && o3.start !== e4) throw new Error(`Cannot use replaced character ${e4} as slice start anchor.`); + const c3 = o3; + for (; o3; ) { + o3.intro && (c3 !== o3 || o3.start === e4) && (i4 += o3.intro); + const u3 = o3.start < r4 && o3.end >= r4; + if (u3 && o3.edited && o3.end !== r4) throw new Error(`Cannot use replaced character ${r4} as slice end anchor.`); + const p3 = c3 === o3 ? e4 - o3.start : 0, g3 = u3 ? o3.content.length + r4 - o3.end : o3.content.length; + if (i4 += o3.content.slice(p3, g3), o3.outro && (!u3 || o3.end === r4) && (i4 += o3.outro), u3) break; + o3 = o3.next; + } + return i4; + } + snip(e4, r4) { + const i4 = this.clone(); + return i4.remove(0, e4), i4.remove(r4, i4.original.length), i4; + } + _split(e4) { + if (this.byStart[e4] || this.byEnd[e4]) return; + let r4 = this.lastSearchedChunk; + const i4 = e4 > r4.end; + for (; r4; ) { + if (r4.contains(e4)) return this._splitChunk(r4, e4); + r4 = i4 ? this.byStart[r4.end] : this.byEnd[r4.start]; + } + } + _splitChunk(e4, r4) { + if (e4.edited && e4.content.length) { + const o3 = Fe(this.original)(r4); + throw new Error(`Cannot split a chunk that has already been edited (${o3.line}:${o3.column} \u2013 "${e4.original}")`); + } + const i4 = e4.split(r4); + return this.byEnd[r4] = e4, this.byStart[r4] = i4, this.byEnd[i4.end] = i4, e4 === this.lastChunk && (this.lastChunk = i4), this.lastSearchedChunk = e4, true; + } + toString() { + let e4 = this.intro, r4 = this.firstChunk; + for (; r4; ) e4 += r4.toString(), r4 = r4.next; + return e4 + this.outro; + } + isEmpty() { + let e4 = this.firstChunk; + do + if (e4.intro.length && e4.intro.trim() || e4.content.length && e4.content.trim() || e4.outro.length && e4.outro.trim()) return false; + while (e4 = e4.next); + return true; + } + length() { + let e4 = this.firstChunk, r4 = 0; + do + r4 += e4.intro.length + e4.content.length + e4.outro.length; + while (e4 = e4.next); + return r4; + } + trimLines() { + return this.trim("[\\r\\n]"); + } + trim(e4) { + return this.trimStart(e4).trimEnd(e4); + } + trimEndAborted(e4) { + const r4 = new RegExp((e4 || "\\s") + "+$"); + if (this.outro = this.outro.replace(r4, ""), this.outro.length) return true; + let i4 = this.lastChunk; + do { + const o3 = i4.end, c3 = i4.trimEnd(r4); + if (i4.end !== o3 && (this.lastChunk === i4 && (this.lastChunk = i4.next), this.byEnd[i4.end] = i4, this.byStart[i4.next.start] = i4.next, this.byEnd[i4.next.end] = i4.next), c3) return true; + i4 = i4.previous; + } while (i4); + return false; + } + trimEnd(e4) { + return this.trimEndAborted(e4), this; + } + trimStartAborted(e4) { + const r4 = new RegExp("^" + (e4 || "\\s") + "+"); + if (this.intro = this.intro.replace(r4, ""), this.intro.length) return true; + let i4 = this.firstChunk; + do { + const o3 = i4.end, c3 = i4.trimStart(r4); + if (i4.end !== o3 && (i4 === this.lastChunk && (this.lastChunk = i4.next), this.byEnd[i4.end] = i4, this.byStart[i4.next.start] = i4.next, this.byEnd[i4.next.end] = i4.next), c3) return true; + i4 = i4.next; + } while (i4); + return false; + } + trimStart(e4) { + return this.trimStartAborted(e4), this; + } + hasChanged() { + return this.original !== this.toString(); + } + _replaceRegexp(e4, r4) { + function i4(c3, u3) { + return typeof r4 == "string" ? r4.replace(/\$(\$|&|\d+)/g, (p3, g3) => g3 === "$" ? "$" : g3 === "&" ? c3[0] : +g3 < c3.length ? c3[+g3] : `$${g3}`) : r4(...c3, c3.index, u3, c3.groups); + } + f5(i4, "getReplacement"); + function o3(c3, u3) { + let p3; + const g3 = []; + for (; p3 = c3.exec(u3); ) g3.push(p3); + return g3; + } + if (f5(o3, "matchAll"), e4.global) o3(e4, this.original).forEach((u3) => { + if (u3.index != null) { + const p3 = i4(u3, this.original); + p3 !== u3[0] && this.overwrite(u3.index, u3.index + u3[0].length, p3); + } + }); + else { + const c3 = this.original.match(e4); + if (c3 && c3.index != null) { + const u3 = i4(c3, this.original); + u3 !== c3[0] && this.overwrite(c3.index, c3.index + c3[0].length, u3); + } + } + return this; + } + _replaceString(e4, r4) { + const { original: i4 } = this, o3 = i4.indexOf(e4); + return o3 !== -1 && this.overwrite(o3, o3 + e4.length, r4), this; + } + replace(e4, r4) { + return typeof e4 == "string" ? this._replaceString(e4, r4) : this._replaceRegexp(e4, r4); + } + _replaceAllString(e4, r4) { + const { original: i4 } = this, o3 = e4.length; + for (let c3 = i4.indexOf(e4); c3 !== -1; c3 = i4.indexOf(e4, c3 + o3)) i4.slice(c3, c3 + o3) !== r4 && this.overwrite(c3, c3 + o3, r4); + return this; + } + replaceAll(e4, r4) { + if (typeof e4 == "string") return this._replaceAllString(e4, r4); + if (!e4.global) throw new TypeError("MagicString.prototype.replaceAll called with a non-global RegExp argument"); + return this._replaceRegexp(e4, r4); + } + }; + f5(_Ee, "MagicString"); + var Ee = _Ee; + var x4; + var ie; + var ye; + var Z2 = 2 << 19; + var Pe = new Uint8Array(new Uint16Array([1]).buffer)[0] === 1 ? function(s4, e4) { + const r4 = s4.length; + let i4 = 0; + for (; i4 < r4; ) e4[i4] = s4.charCodeAt(i4++); + } : function(s4, e4) { + const r4 = s4.length; + let i4 = 0; + for (; i4 < r4; ) { + const o3 = s4.charCodeAt(i4); + e4[i4++] = (255 & o3) << 8 | o3 >>> 8; + } + }; + var ar = "xportmportlassforetaourceromsyncunctionssertvoyiedelecontininstantybreareturdebuggeawaithrwhileifcatcfinallels"; + var _3; + var We; + var y2; + function cr(s4, e4 = "@") { + _3 = s4, We = e4; + const r4 = 2 * _3.length + (2 << 18); + if (r4 > Z2 || !x4) { + for (; r4 > Z2; ) Z2 *= 2; + ie = new ArrayBuffer(Z2), Pe(ar, new Uint16Array(ie, 16, 110)), x4 = function(u3, p3, g3) { + var b3 = new u3.Int8Array(g3), d3 = new u3.Int16Array(g3), n3 = new u3.Int32Array(g3), R = new u3.Uint8Array(g3), L = new u3.Uint16Array(g3), E2 = 1040; + function N() { + var t4 = 0, a3 = 0, h4 = 0, l3 = 0, w3 = 0, m4 = 0, C2 = 0; + C2 = E2, E2 = E2 + 10240 | 0, b3[804] = 1, b3[803] = 0, d3[399] = 0, d3[400] = 0, n3[69] = n3[2], b3[805] = 0, n3[68] = 0, b3[802] = 0, n3[70] = C2 + 2048, n3[71] = C2, b3[806] = 0, t4 = (n3[3] | 0) + -2 | 0, n3[72] = t4, a3 = t4 + (n3[66] << 1) | 0, n3[73] = a3; + e: for (; ; ) { + if (h4 = t4 + 2 | 0, n3[72] = h4, t4 >>> 0 >= a3 >>> 0) { + l3 = 18; + break; + } + t: do + switch (d3[h4 >> 1] | 0) { + case 9: + case 10: + case 11: + case 12: + case 13: + case 32: + break; + case 101: { + if (!(d3[400] | 0) && z2(h4) | 0 && !(A3(t4 + 4 | 0, 16, 10) | 0) && (U(), (b3[804] | 0) == 0)) { + l3 = 9; + break e; + } else l3 = 17; + break; + } + case 105: { + z2(h4) | 0 && !(A3(t4 + 4 | 0, 26, 10) | 0) && P(), l3 = 17; + break; + } + case 59: { + l3 = 17; + break; + } + case 47: + switch (d3[t4 + 4 >> 1] | 0) { + case 47: { + de(); + break t; + } + case 42: { + he(1); + break t; + } + default: { + l3 = 16; + break e; + } + } + default: { + l3 = 16; + break e; + } + } + while (false); + (l3 | 0) == 17 && (l3 = 0, n3[69] = n3[72]), t4 = n3[72] | 0, a3 = n3[73] | 0; + } + (l3 | 0) == 9 ? (t4 = n3[72] | 0, n3[69] = t4, l3 = 19) : (l3 | 0) == 16 ? (b3[804] = 0, n3[72] = t4, l3 = 19) : (l3 | 0) == 18 && (b3[802] | 0 ? t4 = 0 : (t4 = h4, l3 = 19)); + do + if ((l3 | 0) == 19) { + e: for (; ; ) { + if (a3 = t4 + 2 | 0, n3[72] = a3, t4 >>> 0 >= (n3[73] | 0) >>> 0) { + l3 = 92; + break; + } + t: do + switch (d3[a3 >> 1] | 0) { + case 9: + case 10: + case 11: + case 12: + case 13: + case 32: + break; + case 101: { + !(d3[400] | 0) && z2(a3) | 0 && !(A3(t4 + 4 | 0, 16, 10) | 0) && U(), l3 = 91; + break; + } + case 105: { + z2(a3) | 0 && !(A3(t4 + 4 | 0, 26, 10) | 0) && P(), l3 = 91; + break; + } + case 99: { + z2(a3) | 0 && !(A3(t4 + 4 | 0, 36, 8) | 0) && q3(d3[t4 + 12 >> 1] | 0) | 0 && (b3[806] = 1), l3 = 91; + break; + } + case 40: { + h4 = n3[70] | 0, t4 = d3[400] | 0, l3 = t4 & 65535, n3[h4 + (l3 << 3) >> 2] = 1, a3 = n3[69] | 0, d3[400] = t4 + 1 << 16 >> 16, n3[h4 + (l3 << 3) + 4 >> 2] = a3, l3 = 91; + break; + } + case 41: { + if (a3 = d3[400] | 0, !(a3 << 16 >> 16)) { + l3 = 36; + break e; + } + h4 = a3 + -1 << 16 >> 16, d3[400] = h4, l3 = d3[399] | 0, a3 = l3 & 65535, l3 << 16 >> 16 && (n3[(n3[70] | 0) + ((h4 & 65535) << 3) >> 2] | 0) == 5 && (a3 = n3[(n3[71] | 0) + (a3 + -1 << 2) >> 2] | 0, h4 = a3 + 4 | 0, n3[h4 >> 2] | 0 || (n3[h4 >> 2] = (n3[69] | 0) + 2), n3[a3 + 12 >> 2] = t4 + 4, d3[399] = l3 + -1 << 16 >> 16), l3 = 91; + break; + } + case 123: { + l3 = n3[69] | 0, h4 = n3[63] | 0, t4 = l3; + do + if ((d3[l3 >> 1] | 0) == 41 & (h4 | 0) != 0 && (n3[h4 + 4 >> 2] | 0) == (l3 | 0)) if (a3 = n3[64] | 0, n3[63] = a3, a3) { + n3[a3 + 32 >> 2] = 0; + break; + } else { + n3[59] = 0; + break; + } + while (false); + h4 = n3[70] | 0, a3 = d3[400] | 0, l3 = a3 & 65535, n3[h4 + (l3 << 3) >> 2] = b3[806] | 0 ? 6 : 2, d3[400] = a3 + 1 << 16 >> 16, n3[h4 + (l3 << 3) + 4 >> 2] = t4, b3[806] = 0, l3 = 91; + break; + } + case 125: { + if (t4 = d3[400] | 0, !(t4 << 16 >> 16)) { + l3 = 49; + break e; + } + h4 = n3[70] | 0, l3 = t4 + -1 << 16 >> 16, d3[400] = l3, (n3[h4 + ((l3 & 65535) << 3) >> 2] | 0) == 4 && Le(), l3 = 91; + break; + } + case 39: { + I2(39), l3 = 91; + break; + } + case 34: { + I2(34), l3 = 91; + break; + } + case 47: + switch (d3[t4 + 4 >> 1] | 0) { + case 47: { + de(); + break t; + } + case 42: { + he(1); + break t; + } + default: { + t4 = n3[69] | 0, a3 = d3[t4 >> 1] | 0; + r: do + if (!(yt(a3) | 0)) a3 << 16 >> 16 == 41 ? (h4 = d3[400] | 0, xt(n3[(n3[70] | 0) + ((h4 & 65535) << 3) + 4 >> 2] | 0) | 0 || (l3 = 65)) : l3 = 64; + else switch (a3 << 16 >> 16) { + case 46: + if (((d3[t4 + -2 >> 1] | 0) + -48 & 65535) < 10) { + l3 = 64; + break r; + } else break r; + case 43: + if ((d3[t4 + -2 >> 1] | 0) == 43) { + l3 = 64; + break r; + } else break r; + case 45: + if ((d3[t4 + -2 >> 1] | 0) == 45) { + l3 = 64; + break r; + } else break r; + default: + break r; + } + while (false); + (l3 | 0) == 64 && (h4 = d3[400] | 0, l3 = 65); + r: do + if ((l3 | 0) == 65) { + if (l3 = 0, h4 << 16 >> 16 && (w3 = n3[70] | 0, m4 = (h4 & 65535) + -1 | 0, a3 << 16 >> 16 == 102 ? (n3[w3 + (m4 << 3) >> 2] | 0) == 1 : 0)) { + if ((d3[t4 + -2 >> 1] | 0) == 111 && O(n3[w3 + (m4 << 3) + 4 >> 2] | 0, 44, 3) | 0) break; + } else l3 = 69; + if ((l3 | 0) == 69 && a3 << 16 >> 16 == 125 && (l3 = n3[70] | 0, h4 = h4 & 65535, kt(n3[l3 + (h4 << 3) + 4 >> 2] | 0) | 0 || (n3[l3 + (h4 << 3) >> 2] | 0) == 6)) break; + if (!(wt(t4) | 0)) { + switch (a3 << 16 >> 16) { + case 0: + break r; + case 47: { + if (b3[805] | 0) break r; + break; + } + default: + } + if (l3 = n3[65] | 0, l3 | 0 && t4 >>> 0 >= (n3[l3 >> 2] | 0) >>> 0 && t4 >>> 0 <= (n3[l3 + 4 >> 2] | 0) >>> 0) { + le(), b3[805] = 0, l3 = 91; + break t; + } + h4 = n3[3] | 0; + do { + if (t4 >>> 0 <= h4 >>> 0) break; + t4 = t4 + -2 | 0, n3[69] = t4, a3 = d3[t4 >> 1] | 0; + } while (!(fe(a3) | 0)); + if (re(a3) | 0) { + do { + if (t4 >>> 0 <= h4 >>> 0) break; + t4 = t4 + -2 | 0, n3[69] = t4; + } while (re(d3[t4 >> 1] | 0) | 0); + if (St(t4) | 0) { + le(), b3[805] = 0, l3 = 91; + break t; + } + } + b3[805] = 1, l3 = 91; + break t; + } + } + while (false); + le(), b3[805] = 0, l3 = 91; + break t; + } + } + case 96: { + h4 = n3[70] | 0, a3 = d3[400] | 0, l3 = a3 & 65535, n3[h4 + (l3 << 3) + 4 >> 2] = n3[69], d3[400] = a3 + 1 << 16 >> 16, n3[h4 + (l3 << 3) >> 2] = 3, Le(), l3 = 91; + break; + } + default: + l3 = 91; + } + while (false); + (l3 | 0) == 91 && (l3 = 0, n3[69] = n3[72]), t4 = n3[72] | 0; + } + if ((l3 | 0) == 36) { + M(), t4 = 0; + break; + } else if ((l3 | 0) == 49) { + M(), t4 = 0; + break; + } else if ((l3 | 0) == 92) { + t4 = b3[802] | 0 ? 0 : (d3[399] | d3[400]) << 16 >> 16 == 0; + break; + } + } + while (false); + return E2 = C2, t4 | 0; + } + f5(N, "b"); + function U() { + var t4 = 0, a3 = 0, h4 = 0, l3 = 0, w3 = 0, m4 = 0, C2 = 0, T = 0, be = 0, pe = 0, we = 0, me = 0, S2 = 0, v6 = 0; + T = n3[72] | 0, be = n3[65] | 0, v6 = T + 12 | 0, n3[72] = v6, h4 = k3(1) | 0, t4 = n3[72] | 0, (t4 | 0) == (v6 | 0) && !(te(h4) | 0) || (S2 = 3); + e: do + if ((S2 | 0) == 3) { + t: do + switch (h4 << 16 >> 16) { + case 123: { + for (n3[72] = t4 + 2, t4 = k3(1) | 0, a3 = n3[72] | 0; ; ) { + if (H2(t4) | 0 ? (I2(t4), t4 = (n3[72] | 0) + 2 | 0, n3[72] = t4) : ($(t4) | 0, t4 = n3[72] | 0), k3(1) | 0, t4 = Oe(a3, t4) | 0, t4 << 16 >> 16 == 44 && (n3[72] = (n3[72] | 0) + 2, t4 = k3(1) | 0), t4 << 16 >> 16 == 125) { + S2 = 15; + break; + } + if (v6 = a3, a3 = n3[72] | 0, (a3 | 0) == (v6 | 0)) { + S2 = 12; + break; + } + if (a3 >>> 0 > (n3[73] | 0) >>> 0) { + S2 = 14; + break; + } + } + if ((S2 | 0) == 12) { + M(); + break e; + } else if ((S2 | 0) == 14) { + M(); + break e; + } else if ((S2 | 0) == 15) { + b3[803] = 1, n3[72] = (n3[72] | 0) + 2; + break t; + } + break; + } + case 42: { + n3[72] = t4 + 2, k3(1) | 0, v6 = n3[72] | 0, Oe(v6, v6) | 0; + break; + } + default: { + switch (b3[804] = 0, h4 << 16 >> 16) { + case 100: { + switch (T = t4 + 14 | 0, n3[72] = T, (k3(1) | 0) << 16 >> 16) { + case 97: { + a3 = n3[72] | 0, !(A3(a3 + 2 | 0, 72, 8) | 0) && (w3 = a3 + 10 | 0, re(d3[w3 >> 1] | 0) | 0) && (n3[72] = w3, k3(0) | 0, S2 = 22); + break; + } + case 102: { + S2 = 22; + break; + } + case 99: { + a3 = n3[72] | 0, !(A3(a3 + 2 | 0, 36, 8) | 0) && (l3 = a3 + 10 | 0, v6 = d3[l3 >> 1] | 0, q3(v6) | 0 | v6 << 16 >> 16 == 123) && (n3[72] = l3, m4 = k3(1) | 0, m4 << 16 >> 16 != 123) && (me = m4, S2 = 31); + break; + } + default: + } + r: do + if ((S2 | 0) == 22 && (C2 = n3[72] | 0, (A3(C2 + 2 | 0, 80, 14) | 0) == 0)) { + if (h4 = C2 + 16 | 0, a3 = d3[h4 >> 1] | 0, !(q3(a3) | 0)) switch (a3 << 16 >> 16) { + case 40: + case 42: + break; + default: + break r; + } + n3[72] = h4, a3 = k3(1) | 0, a3 << 16 >> 16 == 42 && (n3[72] = (n3[72] | 0) + 2, a3 = k3(1) | 0), a3 << 16 >> 16 != 40 && (me = a3, S2 = 31); + } + while (false); + if ((S2 | 0) == 31 && (pe = n3[72] | 0, $(me) | 0, we = n3[72] | 0, we >>> 0 > pe >>> 0)) { + W(t4, T, pe, we), n3[72] = (n3[72] | 0) + -2; + break e; + } + W(t4, T, 0, 0), n3[72] = t4 + 12; + break e; + } + case 97: { + n3[72] = t4 + 10, k3(0) | 0, t4 = n3[72] | 0, S2 = 35; + break; + } + case 102: { + S2 = 35; + break; + } + case 99: { + if (!(A3(t4 + 2 | 0, 36, 8) | 0) && (a3 = t4 + 10 | 0, fe(d3[a3 >> 1] | 0) | 0)) { + n3[72] = a3, v6 = k3(1) | 0, S2 = n3[72] | 0, $(v6) | 0, v6 = n3[72] | 0, W(S2, v6, S2, v6), n3[72] = (n3[72] | 0) + -2; + break e; + } + t4 = t4 + 4 | 0, n3[72] = t4; + break; + } + case 108: + case 118: + break; + default: + break e; + } + if ((S2 | 0) == 35) { + n3[72] = t4 + 16, t4 = k3(1) | 0, t4 << 16 >> 16 == 42 && (n3[72] = (n3[72] | 0) + 2, t4 = k3(1) | 0), S2 = n3[72] | 0, $(t4) | 0, v6 = n3[72] | 0, W(S2, v6, S2, v6), n3[72] = (n3[72] | 0) + -2; + break e; + } + n3[72] = t4 + 6, b3[804] = 0, h4 = k3(1) | 0, t4 = n3[72] | 0, h4 = ($(h4) | 0 | 32) << 16 >> 16 == 123, l3 = n3[72] | 0, h4 && (n3[72] = l3 + 2, v6 = k3(1) | 0, t4 = n3[72] | 0, $(v6) | 0); + r: for (; a3 = n3[72] | 0, (a3 | 0) != (t4 | 0); ) { + if (W(t4, a3, t4, a3), a3 = k3(1) | 0, h4) switch (a3 << 16 >> 16) { + case 93: + case 125: + break e; + default: + } + if (t4 = n3[72] | 0, a3 << 16 >> 16 != 44) { + S2 = 51; + break; + } + switch (n3[72] = t4 + 2, a3 = k3(1) | 0, t4 = n3[72] | 0, a3 << 16 >> 16) { + case 91: + case 123: { + S2 = 51; + break r; + } + default: + } + $(a3) | 0; + } + if ((S2 | 0) == 51 && (n3[72] = t4 + -2), !h4) break e; + n3[72] = l3 + -2; + break e; + } + } + while (false); + if (v6 = (k3(1) | 0) << 16 >> 16 == 102, t4 = n3[72] | 0, v6 && !(A3(t4 + 2 | 0, 66, 6) | 0)) for (n3[72] = t4 + 8, J2(T, k3(1) | 0, 0), t4 = be | 0 ? be + 16 | 0 : 240; ; ) { + if (t4 = n3[t4 >> 2] | 0, !t4) break e; + n3[t4 + 12 >> 2] = 0, n3[t4 + 8 >> 2] = 0, t4 = t4 + 16 | 0; + } + n3[72] = t4 + -2; + } + while (false); + } + f5(U, "k"); + function P() { + var t4 = 0, a3 = 0, h4 = 0, l3 = 0, w3 = 0, m4 = 0, C2 = 0; + w3 = n3[72] | 0, h4 = w3 + 12 | 0, n3[72] = h4, l3 = k3(1) | 0, a3 = n3[72] | 0; + e: do + if (l3 << 16 >> 16 != 46) l3 << 16 >> 16 == 115 & a3 >>> 0 > h4 >>> 0 ? !(A3(a3 + 2 | 0, 56, 10) | 0) && (t4 = a3 + 12 | 0, q3(d3[t4 >> 1] | 0) | 0) ? m4 = 14 : (a3 = 6, h4 = 0, m4 = 46) : (t4 = l3, h4 = 0, m4 = 15); + else switch (n3[72] = a3 + 2, (k3(1) | 0) << 16 >> 16) { + case 109: { + if (t4 = n3[72] | 0, A3(t4 + 2 | 0, 50, 6) | 0 || (a3 = n3[69] | 0, !(ge(a3) | 0) && (d3[a3 >> 1] | 0) == 46)) break e; + ue(w3, w3, t4 + 8 | 0, 2); + break e; + } + case 115: { + if (t4 = n3[72] | 0, A3(t4 + 2 | 0, 56, 10) | 0 || (a3 = n3[69] | 0, !(ge(a3) | 0) && (d3[a3 >> 1] | 0) == 46)) break e; + t4 = t4 + 12 | 0, m4 = 14; + break e; + } + default: + break e; + } + while (false); + (m4 | 0) == 14 && (n3[72] = t4, t4 = k3(1) | 0, h4 = 1, m4 = 15); + e: do + if ((m4 | 0) == 15) switch (t4 << 16 >> 16) { + case 40: { + if (a3 = n3[70] | 0, C2 = d3[400] | 0, l3 = C2 & 65535, n3[a3 + (l3 << 3) >> 2] = 5, t4 = n3[72] | 0, d3[400] = C2 + 1 << 16 >> 16, n3[a3 + (l3 << 3) + 4 >> 2] = t4, (d3[n3[69] >> 1] | 0) == 46) break e; + switch (n3[72] = t4 + 2, a3 = k3(1) | 0, ue(w3, n3[72] | 0, 0, t4), h4 ? (t4 = n3[63] | 0, n3[t4 + 28 >> 2] = 5) : t4 = n3[63] | 0, w3 = n3[71] | 0, C2 = d3[399] | 0, d3[399] = C2 + 1 << 16 >> 16, n3[w3 + ((C2 & 65535) << 2) >> 2] = t4, a3 << 16 >> 16) { + case 39: { + I2(39); + break; + } + case 34: { + I2(34); + break; + } + default: { + n3[72] = (n3[72] | 0) + -2; + break e; + } + } + switch (t4 = (n3[72] | 0) + 2 | 0, n3[72] = t4, (k3(1) | 0) << 16 >> 16) { + case 44: { + n3[72] = (n3[72] | 0) + 2, k3(1) | 0, w3 = n3[63] | 0, n3[w3 + 4 >> 2] = t4, C2 = n3[72] | 0, n3[w3 + 16 >> 2] = C2, b3[w3 + 24 >> 0] = 1, n3[72] = C2 + -2; + break e; + } + case 41: { + d3[400] = (d3[400] | 0) + -1 << 16 >> 16, C2 = n3[63] | 0, n3[C2 + 4 >> 2] = t4, n3[C2 + 12 >> 2] = (n3[72] | 0) + 2, b3[C2 + 24 >> 0] = 1, d3[399] = (d3[399] | 0) + -1 << 16 >> 16; + break e; + } + default: { + n3[72] = (n3[72] | 0) + -2; + break e; + } + } + } + case 123: { + if (h4) { + a3 = 12, h4 = 1, m4 = 46; + break e; + } + if (t4 = n3[72] | 0, d3[400] | 0) { + n3[72] = t4 + -2; + break e; + } + for (; !(t4 >>> 0 >= (n3[73] | 0) >>> 0); ) { + if (t4 = k3(1) | 0, H2(t4) | 0) I2(t4); + else if (t4 << 16 >> 16 == 125) { + m4 = 36; + break; + } + t4 = (n3[72] | 0) + 2 | 0, n3[72] = t4; + } + if ((m4 | 0) == 36 && (n3[72] = (n3[72] | 0) + 2), C2 = (k3(1) | 0) << 16 >> 16 == 102, t4 = n3[72] | 0, C2 && A3(t4 + 2 | 0, 66, 6) | 0) { + M(); + break e; + } + if (n3[72] = t4 + 8, t4 = k3(1) | 0, H2(t4) | 0) { + J2(w3, t4, 0); + break e; + } else { + M(); + break e; + } + } + default: { + if (h4) { + a3 = 12, h4 = 1, m4 = 46; + break e; + } + switch (t4 << 16 >> 16) { + case 42: + case 39: + case 34: { + h4 = 0, m4 = 48; + break e; + } + default: { + a3 = 6, h4 = 0, m4 = 46; + break e; + } + } + } + } + while (false); + (m4 | 0) == 46 && (t4 = n3[72] | 0, (t4 | 0) == (w3 + (a3 << 1) | 0) ? n3[72] = t4 + -2 : m4 = 48); + do + if ((m4 | 0) == 48) { + if (d3[400] | 0) { + n3[72] = (n3[72] | 0) + -2; + break; + } + for (t4 = n3[73] | 0, a3 = n3[72] | 0; ; ) { + if (a3 >>> 0 >= t4 >>> 0) { + m4 = 55; + break; + } + if (l3 = d3[a3 >> 1] | 0, H2(l3) | 0) { + m4 = 53; + break; + } + C2 = a3 + 2 | 0, n3[72] = C2, a3 = C2; + } + if ((m4 | 0) == 53) { + J2(w3, l3, h4); + break; + } else if ((m4 | 0) == 55) { + M(); + break; + } + } + while (false); + } + f5(P, "l"); + function J2(t4, a3, h4) { + t4 = t4 | 0, a3 = a3 | 0, h4 = h4 | 0; + var l3 = 0, w3 = 0; + switch (l3 = (n3[72] | 0) + 2 | 0, a3 << 16 >> 16) { + case 39: { + I2(39), w3 = 5; + break; + } + case 34: { + I2(34), w3 = 5; + break; + } + default: + M(); + } + do + if ((w3 | 0) == 5) { + if (ue(t4, l3, n3[72] | 0, 1), h4 && (n3[(n3[63] | 0) + 28 >> 2] = 4), n3[72] = (n3[72] | 0) + 2, a3 = k3(0) | 0, h4 = a3 << 16 >> 16 == 97, h4 ? (l3 = n3[72] | 0, A3(l3 + 2 | 0, 94, 10) | 0 && (w3 = 13)) : (l3 = n3[72] | 0, a3 << 16 >> 16 == 119 && (d3[l3 + 2 >> 1] | 0) == 105 && (d3[l3 + 4 >> 1] | 0) == 116 && (d3[l3 + 6 >> 1] | 0) == 104 || (w3 = 13)), (w3 | 0) == 13) { + n3[72] = l3 + -2; + break; + } + if (n3[72] = l3 + ((h4 ? 6 : 4) << 1), (k3(1) | 0) << 16 >> 16 != 123) { + n3[72] = l3; + break; + } + h4 = n3[72] | 0, a3 = h4; + e: for (; ; ) { + switch (n3[72] = a3 + 2, a3 = k3(1) | 0, a3 << 16 >> 16) { + case 39: { + I2(39), n3[72] = (n3[72] | 0) + 2, a3 = k3(1) | 0; + break; + } + case 34: { + I2(34), n3[72] = (n3[72] | 0) + 2, a3 = k3(1) | 0; + break; + } + default: + a3 = $(a3) | 0; + } + if (a3 << 16 >> 16 != 58) { + w3 = 22; + break; + } + switch (n3[72] = (n3[72] | 0) + 2, (k3(1) | 0) << 16 >> 16) { + case 39: { + I2(39); + break; + } + case 34: { + I2(34); + break; + } + default: { + w3 = 26; + break e; + } + } + switch (n3[72] = (n3[72] | 0) + 2, (k3(1) | 0) << 16 >> 16) { + case 125: { + w3 = 31; + break e; + } + case 44: + break; + default: { + w3 = 30; + break e; + } + } + if (n3[72] = (n3[72] | 0) + 2, (k3(1) | 0) << 16 >> 16 == 125) { + w3 = 31; + break; + } + a3 = n3[72] | 0; + } + if ((w3 | 0) == 22) { + n3[72] = l3; + break; + } else if ((w3 | 0) == 26) { + n3[72] = l3; + break; + } else if ((w3 | 0) == 30) { + n3[72] = l3; + break; + } else if ((w3 | 0) == 31) { + w3 = n3[63] | 0, n3[w3 + 16 >> 2] = h4, n3[w3 + 12 >> 2] = (n3[72] | 0) + 2; + break; + } + } + while (false); + } + f5(J2, "u"); + function wt(t4) { + t4 = t4 | 0; + e: do + switch (d3[t4 >> 1] | 0) { + case 100: + switch (d3[t4 + -2 >> 1] | 0) { + case 105: { + t4 = O(t4 + -4 | 0, 104, 2) | 0; + break e; + } + case 108: { + t4 = O(t4 + -4 | 0, 108, 3) | 0; + break e; + } + default: { + t4 = 0; + break e; + } + } + case 101: + switch (d3[t4 + -2 >> 1] | 0) { + case 115: + switch (d3[t4 + -4 >> 1] | 0) { + case 108: { + t4 = G2(t4 + -6 | 0, 101) | 0; + break e; + } + case 97: { + t4 = G2(t4 + -6 | 0, 99) | 0; + break e; + } + default: { + t4 = 0; + break e; + } + } + case 116: { + t4 = O(t4 + -4 | 0, 114, 4) | 0; + break e; + } + case 117: { + t4 = O(t4 + -4 | 0, 122, 6) | 0; + break e; + } + default: { + t4 = 0; + break e; + } + } + case 102: { + if ((d3[t4 + -2 >> 1] | 0) == 111 && (d3[t4 + -4 >> 1] | 0) == 101) switch (d3[t4 + -6 >> 1] | 0) { + case 99: { + t4 = O(t4 + -8 | 0, 134, 6) | 0; + break e; + } + case 112: { + t4 = O(t4 + -8 | 0, 146, 2) | 0; + break e; + } + default: { + t4 = 0; + break e; + } + } + else t4 = 0; + break; + } + case 107: { + t4 = O(t4 + -2 | 0, 150, 4) | 0; + break; + } + case 110: { + t4 = t4 + -2 | 0, G2(t4, 105) | 0 ? t4 = 1 : t4 = O(t4, 158, 5) | 0; + break; + } + case 111: { + t4 = G2(t4 + -2 | 0, 100) | 0; + break; + } + case 114: { + t4 = O(t4 + -2 | 0, 168, 7) | 0; + break; + } + case 116: { + t4 = O(t4 + -2 | 0, 182, 4) | 0; + break; + } + case 119: + switch (d3[t4 + -2 >> 1] | 0) { + case 101: { + t4 = G2(t4 + -4 | 0, 110) | 0; + break e; + } + case 111: { + t4 = O(t4 + -4 | 0, 190, 3) | 0; + break e; + } + default: { + t4 = 0; + break e; + } + } + default: + t4 = 0; + } + while (false); + return t4 | 0; + } + f5(wt, "o"); + function Le() { + var t4 = 0, a3 = 0, h4 = 0, l3 = 0; + a3 = n3[73] | 0, h4 = n3[72] | 0; + e: for (; ; ) { + if (t4 = h4 + 2 | 0, h4 >>> 0 >= a3 >>> 0) { + a3 = 10; + break; + } + switch (d3[t4 >> 1] | 0) { + case 96: { + a3 = 7; + break e; + } + case 36: { + if ((d3[h4 + 4 >> 1] | 0) == 123) { + a3 = 6; + break e; + } + break; + } + case 92: { + t4 = h4 + 4 | 0; + break; + } + default: + } + h4 = t4; + } + (a3 | 0) == 6 ? (t4 = h4 + 4 | 0, n3[72] = t4, a3 = n3[70] | 0, l3 = d3[400] | 0, h4 = l3 & 65535, n3[a3 + (h4 << 3) >> 2] = 4, d3[400] = l3 + 1 << 16 >> 16, n3[a3 + (h4 << 3) + 4 >> 2] = t4) : (a3 | 0) == 7 ? (n3[72] = t4, h4 = n3[70] | 0, l3 = (d3[400] | 0) + -1 << 16 >> 16, d3[400] = l3, (n3[h4 + ((l3 & 65535) << 3) >> 2] | 0) != 3 && M()) : (a3 | 0) == 10 && (n3[72] = t4, M()); + } + f5(Le, "h"); + function k3(t4) { + t4 = t4 | 0; + var a3 = 0, h4 = 0, l3 = 0; + h4 = n3[72] | 0; + e: do { + a3 = d3[h4 >> 1] | 0; + t: do + if (a3 << 16 >> 16 != 47) if (t4) { + if (q3(a3) | 0) break; + break e; + } else { + if (re(a3) | 0) break; + break e; + } + else switch (d3[h4 + 2 >> 1] | 0) { + case 47: { + de(); + break t; + } + case 42: { + he(t4); + break t; + } + default: { + a3 = 47; + break e; + } + } + while (false); + l3 = n3[72] | 0, h4 = l3 + 2 | 0, n3[72] = h4; + } while (l3 >>> 0 < (n3[73] | 0) >>> 0); + return a3 | 0; + } + f5(k3, "w"); + function ue(t4, a3, h4, l3) { + t4 = t4 | 0, a3 = a3 | 0, h4 = h4 | 0, l3 = l3 | 0; + var w3 = 0, m4 = 0; + m4 = n3[67] | 0, n3[67] = m4 + 36, w3 = n3[63] | 0, n3[(w3 | 0 ? w3 + 32 | 0 : 236) >> 2] = m4, n3[64] = w3, n3[63] = m4, n3[m4 + 8 >> 2] = t4, (l3 | 0) == 2 ? (t4 = 3, w3 = h4) : (w3 = (l3 | 0) == 1, t4 = w3 ? 1 : 2, w3 = w3 ? h4 + 2 | 0 : 0), n3[m4 + 12 >> 2] = w3, n3[m4 + 28 >> 2] = t4, n3[m4 >> 2] = a3, n3[m4 + 4 >> 2] = h4, n3[m4 + 16 >> 2] = 0, n3[m4 + 20 >> 2] = l3, a3 = (l3 | 0) == 1, b3[m4 + 24 >> 0] = a3 & 1, n3[m4 + 32 >> 2] = 0, a3 | (l3 | 0) == 2 && (b3[803] = 1); + } + f5(ue, "d"); + function I2(t4) { + t4 = t4 | 0; + var a3 = 0, h4 = 0, l3 = 0, w3 = 0; + for (w3 = n3[73] | 0, a3 = n3[72] | 0; ; ) { + if (l3 = a3 + 2 | 0, a3 >>> 0 >= w3 >>> 0) { + a3 = 9; + break; + } + if (h4 = d3[l3 >> 1] | 0, h4 << 16 >> 16 == t4 << 16 >> 16) { + a3 = 10; + break; + } + if (h4 << 16 >> 16 == 92) h4 = a3 + 4 | 0, (d3[h4 >> 1] | 0) == 13 ? (a3 = a3 + 6 | 0, a3 = (d3[a3 >> 1] | 0) == 10 ? a3 : h4) : a3 = h4; + else if (Ae(h4) | 0) { + a3 = 9; + break; + } else a3 = l3; + } + (a3 | 0) == 9 ? (n3[72] = l3, M()) : (a3 | 0) == 10 && (n3[72] = l3); + } + f5(I2, "v"); + function Oe(t4, a3) { + t4 = t4 | 0, a3 = a3 | 0; + var h4 = 0, l3 = 0, w3 = 0, m4 = 0; + return h4 = n3[72] | 0, l3 = d3[h4 >> 1] | 0, m4 = (t4 | 0) == (a3 | 0), w3 = m4 ? 0 : t4, m4 = m4 ? 0 : a3, l3 << 16 >> 16 == 97 && (n3[72] = h4 + 4, h4 = k3(1) | 0, t4 = n3[72] | 0, H2(h4) | 0 ? (I2(h4), a3 = (n3[72] | 0) + 2 | 0, n3[72] = a3) : ($(h4) | 0, a3 = n3[72] | 0), l3 = k3(1) | 0, h4 = n3[72] | 0), (h4 | 0) != (t4 | 0) && W(t4, a3, w3, m4), l3 | 0; + } + f5(Oe, "A"); + function mt() { + var t4 = 0, a3 = 0, h4 = 0; + h4 = n3[73] | 0, a3 = n3[72] | 0; + e: for (; ; ) { + if (t4 = a3 + 2 | 0, a3 >>> 0 >= h4 >>> 0) { + a3 = 6; + break; + } + switch (d3[t4 >> 1] | 0) { + case 13: + case 10: { + a3 = 6; + break e; + } + case 93: { + a3 = 7; + break e; + } + case 92: { + t4 = a3 + 4 | 0; + break; + } + default: + } + a3 = t4; + } + return (a3 | 0) == 6 ? (n3[72] = t4, M(), t4 = 0) : (a3 | 0) == 7 && (n3[72] = t4, t4 = 93), t4 | 0; + } + f5(mt, "C"); + function le() { + var t4 = 0, a3 = 0, h4 = 0; + e: for (; ; ) { + if (t4 = n3[72] | 0, a3 = t4 + 2 | 0, n3[72] = a3, t4 >>> 0 >= (n3[73] | 0) >>> 0) { + h4 = 7; + break; + } + switch (d3[a3 >> 1] | 0) { + case 13: + case 10: { + h4 = 7; + break e; + } + case 47: + break e; + case 91: { + mt() | 0; + break; + } + case 92: { + n3[72] = t4 + 4; + break; + } + default: + } + } + (h4 | 0) == 7 && M(); + } + f5(le, "g"); + function kt(t4) { + switch (t4 = t4 | 0, d3[t4 >> 1] | 0) { + case 62: { + t4 = (d3[t4 + -2 >> 1] | 0) == 61; + break; + } + case 41: + case 59: { + t4 = 1; + break; + } + case 104: { + t4 = O(t4 + -2 | 0, 210, 4) | 0; + break; + } + case 121: { + t4 = O(t4 + -2 | 0, 218, 6) | 0; + break; + } + case 101: { + t4 = O(t4 + -2 | 0, 230, 3) | 0; + break; + } + default: + t4 = 0; + } + return t4 | 0; + } + f5(kt, "p"); + function he(t4) { + t4 = t4 | 0; + var a3 = 0, h4 = 0, l3 = 0, w3 = 0, m4 = 0; + for (w3 = (n3[72] | 0) + 2 | 0, n3[72] = w3, h4 = n3[73] | 0; a3 = w3 + 2 | 0, !(w3 >>> 0 >= h4 >>> 0 || (l3 = d3[a3 >> 1] | 0, !t4 && Ae(l3) | 0)); ) { + if (l3 << 16 >> 16 == 42 && (d3[w3 + 4 >> 1] | 0) == 47) { + m4 = 8; + break; + } + w3 = a3; + } + (m4 | 0) == 8 && (n3[72] = a3, a3 = w3 + 4 | 0), n3[72] = a3; + } + f5(he, "y"); + function A3(t4, a3, h4) { + t4 = t4 | 0, a3 = a3 | 0, h4 = h4 | 0; + var l3 = 0, w3 = 0; + e: do + if (!h4) t4 = 0; + else { + for (; l3 = b3[t4 >> 0] | 0, w3 = b3[a3 >> 0] | 0, l3 << 24 >> 24 == w3 << 24 >> 24; ) if (h4 = h4 + -1 | 0, h4) t4 = t4 + 1 | 0, a3 = a3 + 1 | 0; + else { + t4 = 0; + break e; + } + t4 = (l3 & 255) - (w3 & 255) | 0; + } + while (false); + return t4 | 0; + } + f5(A3, "m"); + function te(t4) { + t4 = t4 | 0; + e: do + switch (t4 << 16 >> 16) { + case 38: + case 37: + case 33: { + t4 = 1; + break; + } + default: + if ((t4 & -8) << 16 >> 16 == 40 | (t4 + -58 & 65535) < 6) t4 = 1; + else { + switch (t4 << 16 >> 16) { + case 91: + case 93: + case 94: { + t4 = 1; + break e; + } + default: + } + t4 = (t4 + -123 & 65535) < 4; + } + } + while (false); + return t4 | 0; + } + f5(te, "I"); + function yt(t4) { + t4 = t4 | 0; + e: do + switch (t4 << 16 >> 16) { + case 38: + case 37: + case 33: + break; + default: + if (!((t4 + -58 & 65535) < 6 | (t4 + -40 & 65535) < 7 & t4 << 16 >> 16 != 41)) { + switch (t4 << 16 >> 16) { + case 91: + case 94: + break e; + default: + } + return t4 << 16 >> 16 != 125 & (t4 + -123 & 65535) < 4 | 0; + } + } + while (false); + return 1; + } + f5(yt, "U"); + function Re(t4) { + t4 = t4 | 0; + var a3 = 0; + a3 = d3[t4 >> 1] | 0; + e: do + if ((a3 + -9 & 65535) >= 5) { + switch (a3 << 16 >> 16) { + case 160: + case 32: { + a3 = 1; + break e; + } + default: + } + if (te(a3) | 0) return a3 << 16 >> 16 != 46 | (ge(t4) | 0) | 0; + a3 = 0; + } else a3 = 1; + while (false); + return a3 | 0; + } + f5(Re, "x"); + function Ct(t4) { + t4 = t4 | 0; + var a3 = 0, h4 = 0, l3 = 0, w3 = 0; + return h4 = E2, E2 = E2 + 16 | 0, l3 = h4, n3[l3 >> 2] = 0, n3[66] = t4, a3 = n3[3] | 0, w3 = a3 + (t4 << 1) | 0, t4 = w3 + 2 | 0, d3[w3 >> 1] = 0, n3[l3 >> 2] = t4, n3[67] = t4, n3[59] = 0, n3[63] = 0, n3[61] = 0, n3[60] = 0, n3[65] = 0, n3[62] = 0, E2 = h4, a3 | 0; + } + f5(Ct, "S"); + function W(t4, a3, h4, l3) { + t4 = t4 | 0, a3 = a3 | 0, h4 = h4 | 0, l3 = l3 | 0; + var w3 = 0, m4 = 0; + w3 = n3[67] | 0, n3[67] = w3 + 20, m4 = n3[65] | 0, n3[(m4 | 0 ? m4 + 16 | 0 : 240) >> 2] = w3, n3[65] = w3, n3[w3 >> 2] = t4, n3[w3 + 4 >> 2] = a3, n3[w3 + 8 >> 2] = h4, n3[w3 + 12 >> 2] = l3, n3[w3 + 16 >> 2] = 0, b3[803] = 1; + } + f5(W, "O"); + function O(t4, a3, h4) { + t4 = t4 | 0, a3 = a3 | 0, h4 = h4 | 0; + var l3 = 0, w3 = 0; + return l3 = t4 + (0 - h4 << 1) | 0, w3 = l3 + 2 | 0, t4 = n3[3] | 0, w3 >>> 0 >= t4 >>> 0 && !(A3(w3, a3, h4 << 1) | 0) ? (w3 | 0) == (t4 | 0) ? t4 = 1 : t4 = Re(l3) | 0 : t4 = 0, t4 | 0; + } + f5(O, "$"); + function St(t4) { + switch (t4 = t4 | 0, d3[t4 >> 1] | 0) { + case 107: { + t4 = O(t4 + -2 | 0, 150, 4) | 0; + break; + } + case 101: { + (d3[t4 + -2 >> 1] | 0) == 117 ? t4 = O(t4 + -4 | 0, 122, 6) | 0 : t4 = 0; + break; + } + default: + t4 = 0; + } + return t4 | 0; + } + f5(St, "j"); + function G2(t4, a3) { + t4 = t4 | 0, a3 = a3 | 0; + var h4 = 0; + return h4 = n3[3] | 0, h4 >>> 0 <= t4 >>> 0 && (d3[t4 >> 1] | 0) == a3 << 16 >> 16 ? (h4 | 0) == (t4 | 0) ? h4 = 1 : h4 = fe(d3[t4 + -2 >> 1] | 0) | 0 : h4 = 0, h4 | 0; + } + f5(G2, "B"); + function fe(t4) { + t4 = t4 | 0; + e: do + if ((t4 + -9 & 65535) < 5) t4 = 1; + else { + switch (t4 << 16 >> 16) { + case 32: + case 160: { + t4 = 1; + break e; + } + default: + } + t4 = t4 << 16 >> 16 != 46 & (te(t4) | 0); + } + while (false); + return t4 | 0; + } + f5(fe, "E"); + function de() { + var t4 = 0, a3 = 0, h4 = 0; + t4 = n3[73] | 0, h4 = n3[72] | 0; + e: for (; a3 = h4 + 2 | 0, !(h4 >>> 0 >= t4 >>> 0); ) switch (d3[a3 >> 1] | 0) { + case 13: + case 10: + break e; + default: + h4 = a3; + } + n3[72] = a3; + } + f5(de, "P"); + function $(t4) { + for (t4 = t4 | 0; !(q3(t4) | 0 || te(t4) | 0); ) if (t4 = (n3[72] | 0) + 2 | 0, n3[72] = t4, t4 = d3[t4 >> 1] | 0, !(t4 << 16 >> 16)) { + t4 = 0; + break; + } + return t4 | 0; + } + f5($, "q"); + function vt() { + var t4 = 0; + switch (t4 = n3[(n3[61] | 0) + 20 >> 2] | 0, t4 | 0) { + case 1: { + t4 = -1; + break; + } + case 2: { + t4 = -2; + break; + } + default: + t4 = t4 - (n3[3] | 0) >> 1; + } + return t4 | 0; + } + f5(vt, "z"); + function xt(t4) { + return t4 = t4 | 0, !(O(t4, 196, 5) | 0) && !(O(t4, 44, 3) | 0) ? t4 = O(t4, 206, 2) | 0 : t4 = 1, t4 | 0; + } + f5(xt, "D"); + function re(t4) { + switch (t4 = t4 | 0, t4 << 16 >> 16) { + case 160: + case 32: + case 12: + case 11: + case 9: { + t4 = 1; + break; + } + default: + t4 = 0; + } + return t4 | 0; + } + f5(re, "F"); + function ge(t4) { + return t4 = t4 | 0, (d3[t4 >> 1] | 0) == 46 && (d3[t4 + -2 >> 1] | 0) == 46 ? t4 = (d3[t4 + -4 >> 1] | 0) == 46 : t4 = 0, t4 | 0; + } + f5(ge, "G"); + function z2(t4) { + return t4 = t4 | 0, (n3[3] | 0) == (t4 | 0) ? t4 = 1 : t4 = Re(t4 + -2 | 0) | 0, t4 | 0; + } + f5(z2, "H"); + function _t() { + var t4 = 0; + return t4 = n3[(n3[62] | 0) + 12 >> 2] | 0, t4 ? t4 = t4 - (n3[3] | 0) >> 1 : t4 = -1, t4 | 0; + } + f5(_t, "J"); + function Et() { + var t4 = 0; + return t4 = n3[(n3[61] | 0) + 12 >> 2] | 0, t4 ? t4 = t4 - (n3[3] | 0) >> 1 : t4 = -1, t4 | 0; + } + f5(Et, "K"); + function Lt() { + var t4 = 0; + return t4 = n3[(n3[62] | 0) + 8 >> 2] | 0, t4 ? t4 = t4 - (n3[3] | 0) >> 1 : t4 = -1, t4 | 0; + } + f5(Lt, "L"); + function Ot() { + var t4 = 0; + return t4 = n3[(n3[61] | 0) + 16 >> 2] | 0, t4 ? t4 = t4 - (n3[3] | 0) >> 1 : t4 = -1, t4 | 0; + } + f5(Ot, "M"); + function Rt() { + var t4 = 0; + return t4 = n3[(n3[61] | 0) + 4 >> 2] | 0, t4 ? t4 = t4 - (n3[3] | 0) >> 1 : t4 = -1, t4 | 0; + } + f5(Rt, "N"); + function At() { + var t4 = 0; + return t4 = n3[61] | 0, t4 = n3[(t4 | 0 ? t4 + 32 | 0 : 236) >> 2] | 0, n3[61] = t4, (t4 | 0) != 0 | 0; + } + f5(At, "Q"); + function Nt() { + var t4 = 0; + return t4 = n3[62] | 0, t4 = n3[(t4 | 0 ? t4 + 16 | 0 : 240) >> 2] | 0, n3[62] = t4, (t4 | 0) != 0 | 0; + } + f5(Nt, "R"); + function M() { + b3[802] = 1, n3[68] = (n3[72] | 0) - (n3[3] | 0) >> 1, n3[72] = (n3[73] | 0) + 2; + } + f5(M, "T"); + function q3(t4) { + return t4 = t4 | 0, (t4 | 128) << 16 >> 16 == 160 | (t4 + -9 & 65535) < 5 | 0; + } + f5(q3, "V"); + function H2(t4) { + return t4 = t4 | 0, t4 << 16 >> 16 == 39 | t4 << 16 >> 16 == 34 | 0; + } + f5(H2, "W"); + function It() { + return (n3[(n3[61] | 0) + 8 >> 2] | 0) - (n3[3] | 0) >> 1 | 0; + } + f5(It, "X"); + function Mt() { + return (n3[(n3[62] | 0) + 4 >> 2] | 0) - (n3[3] | 0) >> 1 | 0; + } + f5(Mt, "Y"); + function Ae(t4) { + return t4 = t4 | 0, t4 << 16 >> 16 == 13 | t4 << 16 >> 16 == 10 | 0; + } + f5(Ae, "Z"); + function Ut() { + return (n3[n3[61] >> 2] | 0) - (n3[3] | 0) >> 1 | 0; + } + f5(Ut, "_"); + function jt() { + return (n3[n3[62] >> 2] | 0) - (n3[3] | 0) >> 1 | 0; + } + f5(jt, "ee"); + function $t() { + return R[(n3[61] | 0) + 24 >> 0] | 0 | 0; + } + f5($t, "ae"); + function Dt(t4) { + t4 = t4 | 0, n3[3] = t4; + } + f5(Dt, "re"); + function Tt() { + return n3[(n3[61] | 0) + 28 >> 2] | 0; + } + f5(Tt, "ie"); + function Ft() { + return (b3[803] | 0) != 0 | 0; + } + f5(Ft, "se"); + function Pt() { + return (b3[804] | 0) != 0 | 0; + } + f5(Pt, "fe"); + function Wt() { + return n3[68] | 0; + } + f5(Wt, "te"); + function qt(t4) { + return t4 = t4 | 0, E2 = t4 + 992 + 15 & -16, 992; + } + return f5(qt, "ce"), { su: qt, ai: Ot, e: Wt, ee: Mt, ele: _t, els: Lt, es: jt, f: Pt, id: vt, ie: Rt, ip: $t, is: Ut, it: Tt, ms: Ft, p: N, re: Nt, ri: At, sa: Ct, se: Et, ses: Dt, ss: It }; + }(typeof self < "u" ? self : global, {}, ie), ye = x4.su(Z2 - (2 << 17)); + } + const i4 = _3.length + 1; + x4.ses(ye), x4.sa(i4 - 1), Pe(_3, new Uint16Array(ie, ye, i4)), x4.p() || (y2 = x4.e(), D2()); + const o3 = [], c3 = []; + for (; x4.ri(); ) { + const u3 = x4.is(), p3 = x4.ie(), g3 = x4.ai(), b3 = x4.id(), d3 = x4.ss(), n3 = x4.se(), R = x4.it(); + let L; + x4.ip() && (L = Ce(b3 === -1 ? u3 : u3 + 1, _3.charCodeAt(b3 === -1 ? u3 - 1 : u3))), o3.push({ t: R, n: L, s: u3, e: p3, ss: d3, se: n3, d: b3, a: g3 }); + } + for (; x4.re(); ) { + const u3 = x4.es(), p3 = x4.ee(), g3 = x4.els(), b3 = x4.ele(), d3 = _3.charCodeAt(u3), n3 = g3 >= 0 ? _3.charCodeAt(g3) : -1; + c3.push({ s: u3, e: p3, ls: g3, le: b3, n: d3 === 34 || d3 === 39 ? Ce(u3 + 1, d3) : _3.slice(u3, p3), ln: g3 < 0 ? void 0 : n3 === 34 || n3 === 39 ? Ce(g3 + 1, n3) : _3.slice(g3, b3) }); + } + return [o3, c3, !!x4.f(), !!x4.ms()]; + } + f5(cr, "parse"); + function Ce(s4, e4) { + y2 = s4; + let r4 = "", i4 = y2; + for (; ; ) { + y2 >= _3.length && D2(); + const o3 = _3.charCodeAt(y2); + if (o3 === e4) break; + o3 === 92 ? (r4 += _3.slice(i4, y2), r4 += ur(), i4 = y2) : (o3 === 8232 || o3 === 8233 || qe(o3) && D2(), ++y2); + } + return r4 += _3.slice(i4, y2++), r4; + } + f5(Ce, "b"); + function ur() { + let s4 = _3.charCodeAt(++y2); + switch (++y2, s4) { + case 110: + return ` +`; + case 114: + return "\r"; + case 120: + return String.fromCharCode(Se(2)); + case 117: + return function() { + const e4 = _3.charCodeAt(y2); + let r4; + return e4 === 123 ? (++y2, r4 = Se(_3.indexOf("}", y2) - y2), ++y2, r4 > 1114111 && D2()) : r4 = Se(4), r4 <= 65535 ? String.fromCharCode(r4) : (r4 -= 65536, String.fromCharCode(55296 + (r4 >> 10), 56320 + (1023 & r4))); + }(); + case 116: + return " "; + case 98: + return "\b"; + case 118: + return "\v"; + case 102: + return "\f"; + case 13: + _3.charCodeAt(y2) === 10 && ++y2; + case 10: + return ""; + case 56: + case 57: + D2(); + default: + if (s4 >= 48 && s4 <= 55) { + let e4 = _3.substr(y2 - 1, 3).match(/^[0-7]+/)[0], r4 = parseInt(e4, 8); + return r4 > 255 && (e4 = e4.slice(0, -1), r4 = parseInt(e4, 8)), y2 += e4.length - 1, s4 = _3.charCodeAt(y2), e4 === "0" && s4 !== 56 && s4 !== 57 || D2(), String.fromCharCode(r4); + } + return qe(s4) ? "" : String.fromCharCode(s4); + } + } + f5(ur, "k"); + function Se(s4) { + const e4 = y2; + let r4 = 0, i4 = 0; + for (let o3 = 0; o3 < s4; ++o3, ++y2) { + let c3, u3 = _3.charCodeAt(y2); + if (u3 !== 95) { + if (u3 >= 97) c3 = u3 - 97 + 10; + else if (u3 >= 65) c3 = u3 - 65 + 10; + else { + if (!(u3 >= 48 && u3 <= 57)) break; + c3 = u3 - 48; + } + if (c3 >= 16) break; + i4 = u3, r4 = 16 * r4 + c3; + } else i4 !== 95 && o3 !== 0 || D2(), i4 = u3; + } + return i4 !== 95 && y2 - e4 === s4 || D2(), r4; + } + f5(Se, "l"); + function qe(s4) { + return s4 === 13 || s4 === 10; + } + f5(qe, "u"); + function D2() { + throw Object.assign(Error(`Parse error ${We}:${_3.slice(0, y2).split(` +`).length}:${y2 - _3.lastIndexOf(` +`, y2 - 1)}`), { idx: y2 }); + } + f5(D2, "o"); + var ve; + typeof WebAssembly < "u" && (async () => { + const { parse: s4, init: e4 } = await Promise.resolve().then(function() { + return require_lexer_DgIbo0BU(); + }); + await e4, ve = s4; + })(); + var Be = f5((s4, e4) => ve ? ve(s4, e4) : cr(s4, e4), "parseEsm"); + var lr = f5((s4) => { + if (!s4.includes("import") && !s4.includes("export")) return false; + try { + return Be(s4)[3]; + } catch { + return true; + } + }, "isESM"); + var Je = "2"; + var hr = ((s4) => { + const e4 = "default"; + return s4[e4] && typeof s4[e4] == "object" && "__esModule" in s4[e4] ? s4[e4] : s4; + }).toString(); + var fr = `.then(${hr})`; + var xe = f5((s4, e4, r4) => { + if (r4) { + if (!e4.includes("import(")) return; + } else if (!e4.includes("import")) return; + const o3 = Be(e4, s4)[0].filter((g3) => g3.d > -1); + if (o3.length === 0) return; + const c3 = new Ee(e4); + for (const g3 of o3) c3.appendRight(g3.se, fr); + const u3 = c3.toString(), p3 = c3.generateMap({ source: s4, includeContent: false, hires: "boundary" }); + return { code: u3, map: p3 }; + }, "transformDynamicImport"); + var Ge = f5((s4) => { + try { + const e4 = j3.readFileSync(s4, "utf8"); + return JSON.parse(e4); + } catch { + } + }, "readJsonFile"); + var ze = f5(() => { + }, "noop"); + var He = f5(() => Math.floor(Date.now() / 1e8), "getTime"); + var _dr = class _dr extends Map { + cacheDirectory = zt.tmpdir; + oldCacheDirectory = X.join(Gt.tmpdir(), "tsx"); + cacheFiles; + constructor() { + super(), j3.mkdirSync(this.cacheDirectory, { recursive: true }), this.cacheFiles = j3.readdirSync(this.cacheDirectory).map((e4) => { + const [r4, i4] = e4.split("-"); + return { time: Number(r4), key: i4, fileName: e4 }; + }), setImmediate(() => { + this.expireDiskCache(), this.removeOldCacheDirectory(); + }); + } + get(e4) { + const r4 = super.get(e4); + if (r4) return r4; + const i4 = this.cacheFiles.find((u3) => u3.key === e4); + if (!i4) return; + const o3 = X.join(this.cacheDirectory, i4.fileName), c3 = Ge(o3); + if (!c3) { + j3.promises.unlink(o3).then(() => { + const u3 = this.cacheFiles.indexOf(i4); + this.cacheFiles.splice(u3, 1); + }, () => { + }); + return; + } + return super.set(e4, c3), c3; + } + set(e4, r4) { + if (super.set(e4, r4), r4) { + const i4 = He(); + j3.promises.writeFile(X.join(this.cacheDirectory, `${i4}-${e4}`), JSON.stringify(r4)).catch(ze); + } + return this; + } + expireDiskCache() { + const e4 = He(); + for (const r4 of this.cacheFiles) e4 - r4.time > 7 && j3.promises.unlink(X.join(this.cacheDirectory, r4.fileName)).catch(ze); + } + async removeOldCacheDirectory() { + try { + await j3.promises.access(this.oldCacheDirectory).then(() => true) && ("rm" in j3.promises ? await j3.promises.rm(this.oldCacheDirectory, { recursive: true, force: true }) : await j3.promises.rmdir(this.oldCacheDirectory, { recursive: true })); + } catch { + } + } + }; + f5(_dr, "FileCache"); + var dr = _dr; + var se = process.env.TSX_DISABLE_CACHE ? /* @__PURE__ */ new Map() : new dr(); + var gr = /^[\w+.-]+:\/\//; + var br = /^([\w+.-]+:)\/\/([^@/#?]*@)?([^:/#?]*)(:\d+)?(\/[^#?]*)?(\?[^#]*)?(#.*)?/; + var pr = /^file:(?:\/\/((?![a-z]:)[^/#?]*)?)?(\/?[^#?]*)(\?[^#]*)?(#.*)?/i; + function wr(s4) { + return gr.test(s4); + } + f5(wr, "isAbsoluteUrl"); + function mr(s4) { + return s4.startsWith("//"); + } + f5(mr, "isSchemeRelativeUrl"); + function Xe(s4) { + return s4.startsWith("/"); + } + f5(Xe, "isAbsolutePath"); + function kr(s4) { + return s4.startsWith("file:"); + } + f5(kr, "isFileUrl"); + function Ke(s4) { + return /^[.?#]/.test(s4); + } + f5(Ke, "isRelative"); + function oe(s4) { + const e4 = br.exec(s4); + return Ye(e4[1], e4[2] || "", e4[3], e4[4] || "", e4[5] || "/", e4[6] || "", e4[7] || ""); + } + f5(oe, "parseAbsoluteUrl"); + function yr(s4) { + const e4 = pr.exec(s4), r4 = e4[2]; + return Ye("file:", "", e4[1] || "", "", Xe(r4) ? r4 : "/" + r4, e4[3] || "", e4[4] || ""); + } + f5(yr, "parseFileUrl"); + function Ye(s4, e4, r4, i4, o3, c3, u3) { + return { scheme: s4, user: e4, host: r4, port: i4, path: o3, query: c3, hash: u3, type: 7 }; + } + f5(Ye, "makeUrl"); + function Qe(s4) { + if (mr(s4)) { + const r4 = oe("http:" + s4); + return r4.scheme = "", r4.type = 6, r4; + } + if (Xe(s4)) { + const r4 = oe("http://foo.com" + s4); + return r4.scheme = "", r4.host = "", r4.type = 5, r4; + } + if (kr(s4)) return yr(s4); + if (wr(s4)) return oe(s4); + const e4 = oe("http://foo.com/" + s4); + return e4.scheme = "", e4.host = "", e4.type = s4 ? s4.startsWith("?") ? 3 : s4.startsWith("#") ? 2 : 4 : 1, e4; + } + f5(Qe, "parseUrl"); + function Cr(s4) { + if (s4.endsWith("/..")) return s4; + const e4 = s4.lastIndexOf("/"); + return s4.slice(0, e4 + 1); + } + f5(Cr, "stripPathFilename"); + function Sr(s4, e4) { + Ze(e4, e4.type), s4.path === "/" ? s4.path = e4.path : s4.path = Cr(e4.path) + s4.path; + } + f5(Sr, "mergePaths"); + function Ze(s4, e4) { + const r4 = e4 <= 4, i4 = s4.path.split("/"); + let o3 = 1, c3 = 0, u3 = false; + for (let g3 = 1; g3 < i4.length; g3++) { + const b3 = i4[g3]; + if (!b3) { + u3 = true; + continue; + } + if (u3 = false, b3 !== ".") { + if (b3 === "..") { + c3 ? (u3 = true, c3--, o3--) : r4 && (i4[o3++] = b3); + continue; + } + i4[o3++] = b3, c3++; + } + } + let p3 = ""; + for (let g3 = 1; g3 < o3; g3++) p3 += "/" + i4[g3]; + (!p3 || u3 && !p3.endsWith("/..")) && (p3 += "/"), s4.path = p3; + } + f5(Ze, "normalizePath"); + function vr(s4, e4) { + if (!s4 && !e4) return ""; + const r4 = Qe(s4); + let i4 = r4.type; + if (e4 && i4 !== 7) { + const c3 = Qe(e4), u3 = c3.type; + switch (i4) { + case 1: + r4.hash = c3.hash; + case 2: + r4.query = c3.query; + case 3: + case 4: + Sr(r4, c3); + case 5: + r4.user = c3.user, r4.host = c3.host, r4.port = c3.port; + case 6: + r4.scheme = c3.scheme; + } + u3 > i4 && (i4 = u3); + } + Ze(r4, i4); + const o3 = r4.query + r4.hash; + switch (i4) { + case 2: + case 3: + return o3; + case 4: { + const c3 = r4.path.slice(1); + return c3 ? Ke(e4 || s4) && !Ke(c3) ? "./" + c3 + o3 : c3 + o3 : o3 || "."; + } + case 5: + return r4.path + o3; + default: + return r4.scheme + "//" + r4.user + r4.host + r4.port + r4.path + o3; + } + } + f5(vr, "resolve$1"); + function Ve(s4, e4) { + return e4 && !e4.endsWith("/") && (e4 += "/"), vr(s4, e4); + } + f5(Ve, "resolve"); + function xr(s4) { + if (!s4) return ""; + const e4 = s4.lastIndexOf("/"); + return s4.slice(0, e4 + 1); + } + f5(xr, "stripFilename"); + var F3 = 0; + function _r(s4, e4) { + const r4 = et(s4, 0); + if (r4 === s4.length) return s4; + e4 || (s4 = s4.slice()); + for (let i4 = r4; i4 < s4.length; i4 = et(s4, i4 + 1)) s4[i4] = Lr(s4[i4], e4); + return s4; + } + f5(_r, "maybeSort"); + function et(s4, e4) { + for (let r4 = e4; r4 < s4.length; r4++) if (!Er(s4[r4])) return r4; + return s4.length; + } + f5(et, "nextUnsortedSegmentLine"); + function Er(s4) { + for (let e4 = 1; e4 < s4.length; e4++) if (s4[e4][F3] < s4[e4 - 1][F3]) return false; + return true; + } + f5(Er, "isSorted"); + function Lr(s4, e4) { + return e4 || (s4 = s4.slice()), s4.sort(Or); + } + f5(Lr, "sortSegments"); + function Or(s4, e4) { + return s4[F3] - e4[F3]; + } + f5(Or, "sortComparator"); + var ae = false; + function Rr(s4, e4, r4, i4) { + for (; r4 <= i4; ) { + const o3 = r4 + (i4 - r4 >> 1), c3 = s4[o3][F3] - e4; + if (c3 === 0) return ae = true, o3; + c3 < 0 ? r4 = o3 + 1 : i4 = o3 - 1; + } + return ae = false, r4 - 1; + } + f5(Rr, "binarySearch"); + function Ar(s4, e4, r4) { + for (let i4 = r4 - 1; i4 >= 0 && s4[i4][F3] === e4; r4 = i4--) ; + return r4; + } + f5(Ar, "lowerBound"); + function Nr() { + return { lastKey: -1, lastNeedle: -1, lastIndex: -1 }; + } + f5(Nr, "memoizedState"); + function Ir(s4, e4, r4, i4) { + const { lastKey: o3, lastNeedle: c3, lastIndex: u3 } = r4; + let p3 = 0, g3 = s4.length - 1; + if (i4 === o3) { + if (e4 === c3) return ae = u3 !== -1 && s4[u3][F3] === e4, u3; + e4 >= c3 ? p3 = u3 === -1 ? 0 : u3 : g3 = u3; + } + return r4.lastKey = i4, r4.lastNeedle = e4, r4.lastIndex = Rr(s4, e4, p3, g3); + } + f5(Ir, "memoizedBinarySearch"); + var _tt = class _tt { + constructor(e4, r4) { + const i4 = typeof e4 == "string"; + if (!i4 && e4._decodedMemo) return e4; + const o3 = i4 ? JSON.parse(e4) : e4, { version: c3, file: u3, names: p3, sourceRoot: g3, sources: b3, sourcesContent: d3 } = o3; + this.version = c3, this.file = u3, this.names = p3 || [], this.sourceRoot = g3, this.sources = b3, this.sourcesContent = d3, this.ignoreList = o3.ignoreList || o3.x_google_ignoreList || void 0; + const n3 = Ve(g3 || "", xr(r4)); + this.resolvedSources = b3.map((L) => Ve(L || "", n3)); + const { mappings: R } = o3; + typeof R == "string" ? (this._encoded = R, this._decoded = void 0) : (this._encoded = void 0, this._decoded = _r(R, i4)), this._decodedMemo = Nr(), this._bySources = void 0, this._bySourceMemos = void 0; + } + }; + f5(_tt, "TraceMap"); + var tt = _tt; + function gn(s4) { + return s4; + } + f5(gn, "cast$2"); + function rt(s4) { + var e4; + return (e4 = s4)._decoded || (e4._decoded = Xt(s4._encoded)); + } + f5(rt, "decodedMappings"); + function Mr(s4, e4, r4) { + const i4 = rt(s4); + if (e4 >= i4.length) return null; + const o3 = i4[e4], c3 = Ur(o3, s4._decodedMemo, e4, r4); + return c3 === -1 ? null : o3[c3]; + } + f5(Mr, "traceSegment"); + function Ur(s4, e4, r4, i4, o3) { + let c3 = Ir(s4, i4, e4, r4); + return ae && (c3 = Ar(s4, i4, c3)), c3 === -1 || c3 === s4.length ? -1 : c3; + } + f5(Ur, "traceSegmentInternal"); + var __e = class __e { + constructor() { + this._indexes = { __proto__: null }, this.array = []; + } + }; + f5(__e, "SetArray"); + var _e = __e; + function bn(s4) { + return s4; + } + f5(bn, "cast$1"); + function nt(s4, e4) { + return s4._indexes[e4]; + } + f5(nt, "get"); + function V(s4, e4) { + const r4 = nt(s4, e4); + if (r4 !== void 0) return r4; + const { array: i4, _indexes: o3 } = s4, c3 = i4.push(e4); + return o3[e4] = c3 - 1; + } + f5(V, "put"); + function jr(s4, e4) { + const r4 = nt(s4, e4); + if (r4 === void 0) return; + const { array: i4, _indexes: o3 } = s4; + for (let c3 = r4 + 1; c3 < i4.length; c3++) { + const u3 = i4[c3]; + i4[c3 - 1] = u3, o3[u3]--; + } + o3[e4] = void 0, i4.pop(); + } + f5(jr, "remove"); + var $r = 0; + var Dr = 1; + var Tr = 2; + var Fr = 3; + var Pr = 4; + var it = -1; + var _Wr = class _Wr { + constructor({ file: e4, sourceRoot: r4 } = {}) { + this._names = new _e(), this._sources = new _e(), this._sourcesContent = [], this._mappings = [], this.file = e4, this.sourceRoot = r4, this._ignoreList = new _e(); + } + }; + f5(_Wr, "GenMapping"); + var Wr = _Wr; + function pn(s4) { + return s4; + } + f5(pn, "cast"); + var qr = f5((s4, e4, r4, i4, o3, c3, u3, p3) => zr(true, s4, e4, r4, i4, o3, c3, u3), "maybeAddSegment"); + function Br(s4, e4, r4) { + const { _sources: i4, _sourcesContent: o3 } = s4, c3 = V(i4, e4); + o3[c3] = r4; + } + f5(Br, "setSourceContent"); + function Jr(s4, e4, r4 = true) { + const { _sources: i4, _sourcesContent: o3, _ignoreList: c3 } = s4, u3 = V(i4, e4); + u3 === o3.length && (o3[u3] = null), r4 ? V(c3, u3) : jr(c3, u3); + } + f5(Jr, "setIgnore"); + function st(s4) { + const { _mappings: e4, _sources: r4, _sourcesContent: i4, _names: o3, _ignoreList: c3 } = s4; + return Kr(e4), { version: 3, file: s4.file || void 0, names: o3.array, sourceRoot: s4.sourceRoot || void 0, sources: r4.array, sourcesContent: i4, mappings: e4, ignoreList: c3.array }; + } + f5(st, "toDecodedMap"); + function Gr(s4) { + const e4 = st(s4); + return Object.assign(Object.assign({}, e4), { mappings: Te(e4.mappings) }); + } + f5(Gr, "toEncodedMap"); + function zr(s4, e4, r4, i4, o3, c3, u3, p3, g3) { + const { _mappings: b3, _sources: d3, _sourcesContent: n3, _names: R } = e4, L = Hr(b3, r4), E2 = Xr(L, i4); + if (!o3) return Yr(L, E2) ? void 0 : ot(L, E2, [i4]); + const N = V(d3, o3), U = p3 ? V(R, p3) : it; + if (N === n3.length && (n3[N] = null), !Qr(L, E2, N, c3, u3, U)) return ot(L, E2, p3 ? [i4, N, c3, u3, U] : [i4, N, c3, u3]); + } + f5(zr, "addSegmentInternal"); + function Hr(s4, e4) { + for (let r4 = s4.length; r4 <= e4; r4++) s4[r4] = []; + return s4[e4]; + } + f5(Hr, "getLine"); + function Xr(s4, e4) { + let r4 = s4.length; + for (let i4 = r4 - 1; i4 >= 0; r4 = i4--) { + const o3 = s4[i4]; + if (e4 >= o3[$r]) break; + } + return r4; + } + f5(Xr, "getColumnIndex"); + function ot(s4, e4, r4) { + for (let i4 = s4.length; i4 > e4; i4--) s4[i4] = s4[i4 - 1]; + s4[e4] = r4; + } + f5(ot, "insert"); + function Kr(s4) { + const { length: e4 } = s4; + let r4 = e4; + for (let i4 = r4 - 1; i4 >= 0 && !(s4[i4].length > 0); r4 = i4, i4--) ; + r4 < e4 && (s4.length = r4); + } + f5(Kr, "removeEmptyFinalLines"); + function Yr(s4, e4) { + return e4 === 0 ? true : s4[e4 - 1].length === 1; + } + f5(Yr, "skipSourceless"); + function Qr(s4, e4, r4, i4, o3, c3) { + if (e4 === 0) return false; + const u3 = s4[e4 - 1]; + return u3.length === 1 ? false : r4 === u3[Dr] && i4 === u3[Tr] && o3 === u3[Fr] && c3 === (u3.length === 5 ? u3[Pr] : it); + } + f5(Qr, "skipSource"); + var at = ct("", -1, -1, "", null, false); + var Zr = []; + function ct(s4, e4, r4, i4, o3, c3) { + return { source: s4, line: e4, column: r4, name: i4, content: o3, ignore: c3 }; + } + f5(ct, "SegmentObject"); + function ut(s4, e4, r4, i4, o3) { + return { map: s4, sources: e4, source: r4, content: i4, ignore: o3 }; + } + f5(ut, "Source"); + function lt(s4, e4) { + return ut(s4, e4, "", null, false); + } + f5(lt, "MapSource"); + function Vr(s4, e4, r4) { + return ut(null, Zr, s4, e4, r4); + } + f5(Vr, "OriginalSource"); + function en(s4) { + const e4 = new Wr({ file: s4.map.file }), { sources: r4, map: i4 } = s4, o3 = i4.names, c3 = rt(i4); + for (let u3 = 0; u3 < c3.length; u3++) { + const p3 = c3[u3]; + for (let g3 = 0; g3 < p3.length; g3++) { + const b3 = p3[g3], d3 = b3[0]; + let n3 = at; + if (b3.length !== 1) { + const J2 = r4[b3[1]]; + if (n3 = ht(J2, b3[2], b3[3], b3.length === 5 ? o3[b3[4]] : ""), n3 == null) continue; + } + const { column: R, line: L, name: E2, content: N, source: U, ignore: P } = n3; + qr(e4, u3, d3, U, L, R, E2), U && N != null && Br(e4, U, N), P && Jr(e4, U, true); + } + } + return e4; + } + f5(en, "traceMappings"); + function ht(s4, e4, r4, i4) { + if (!s4.map) return ct(s4.source, e4, r4, i4, s4.content, s4.ignore); + const o3 = Mr(s4.map, e4, r4); + return o3 == null ? null : o3.length === 1 ? at : ht(s4.sources[o3[1]], o3[2], o3[3], o3.length === 5 ? s4.map.names[o3[4]] : i4); + } + f5(ht, "originalPositionFor"); + function tn(s4) { + return Array.isArray(s4) ? s4 : [s4]; + } + f5(tn, "asArray"); + function rn(s4, e4) { + const r4 = tn(s4).map((c3) => new tt(c3, "")), i4 = r4.pop(); + for (let c3 = 0; c3 < r4.length; c3++) if (r4[c3].sources.length > 1) throw new Error(`Transformation map ${c3} must have exactly one source file. +Did you specify these with the most recent transformation maps first?`); + let o3 = ft(i4, e4, "", 0); + for (let c3 = r4.length - 1; c3 >= 0; c3--) o3 = lt(r4[c3], [o3]); + return o3; + } + f5(rn, "buildSourceMapTree"); + function ft(s4, e4, r4, i4) { + const { resolvedSources: o3, sourcesContent: c3, ignoreList: u3 } = s4, p3 = i4 + 1, g3 = o3.map((b3, d3) => { + const n3 = { importer: r4, depth: p3, source: b3 || "", content: void 0, ignore: void 0 }, R = e4(n3.source, n3), { source: L, content: E2, ignore: N } = n3; + if (R) return ft(new tt(R, L), e4, L, p3); + const U = E2 !== void 0 ? E2 : c3 ? c3[d3] : null, P = N !== void 0 ? N : u3 ? u3.includes(d3) : false; + return Vr(L, U, P); + }); + return lt(s4, g3); + } + f5(ft, "build"); + var _nn = class _nn { + constructor(e4, r4) { + const i4 = r4.decodedMappings ? st(e4) : Gr(e4); + this.version = i4.version, this.file = i4.file, this.mappings = i4.mappings, this.names = i4.names, this.ignoreList = i4.ignoreList, this.sourceRoot = i4.sourceRoot, this.sources = i4.sources, r4.excludeContent || (this.sourcesContent = i4.sourcesContent); + } + toString() { + return JSON.stringify(this); + } + }; + f5(_nn, "SourceMap"); + var nn = _nn; + function dt(s4, e4, r4) { + const i4 = { excludeContent: !!r4, decodedMappings: false }, o3 = rn(s4, e4); + return new nn(en(o3), i4); + } + f5(dt, "remapping"); + var sn = f5((s4, e4, r4) => { + const i4 = [], o3 = { code: e4 }; + for (const c3 of r4) { + const u3 = c3(s4, o3.code); + u3 && (Object.assign(o3, u3), i4.unshift(u3.map)); + } + return { ...o3, map: dt(i4, () => null) }; + }, "applyTransformersSync"); + var on = f5(async (s4, e4, r4) => { + const i4 = [], o3 = { code: e4 }; + for (const c3 of r4) { + const u3 = await c3(s4, o3.code); + u3 && (Object.assign(o3, u3), i4.unshift(u3.map)); + } + return { ...o3, map: dt(i4, () => null) }; + }, "applyTransformers"); + var an = Object.freeze({ target: `node${process.versions.node}`, loader: "default" }); + var cn = /^--inspect(?:-brk|-port|-publish-uid|-wait)?(?:=|$)/; + var un = process.execArgv.some((s4) => cn.test(s4)); + var gt = { ...an, sourcemap: true, sourcesContent: !!process.env.NODE_V8_COVERAGE || un, minifyWhitespace: true, keepNames: true }; + var bt = f5((s4) => { + const e4 = s4.sourcefile; + if (e4) { + const r4 = X.extname(e4.split("?")[0]); + r4 ? r4 === ".cts" || r4 === ".mts" ? s4.sourcefile = `${e4.slice(0, -3)}ts` : r4 === ".mjs" && (s4.sourcefile = `${e4.slice(0, -3)}js`) : s4.sourcefile += ".js"; + } + return (r4) => (r4.map && (s4.sourcefile !== e4 && (r4.map = r4.map.replace(JSON.stringify(s4.sourcefile), JSON.stringify(e4))), r4.map = JSON.parse(r4.map)), r4); + }, "patchOptions"); + var pt = f5((s4) => { + throw s4.name = "TransformError", delete s4.errors, delete s4.warnings, s4; + }, "formatEsbuildError"); + var ln = f5((s4, e4, r4) => { + const i4 = {}; + let o3, c3, u3; + if (e4.startsWith("file://")) { + o3 = e4; + const d3 = new URL(e4); + c3 = Ne.fileURLToPath(d3); + } else [c3, u3] = e4.split("?"), o3 = Ne.pathToFileURL(c3) + (u3 ? `?${u3}` : ""); + c3.endsWith(".cjs") || c3.endsWith(".cts") || (i4["import.meta.url"] = JSON.stringify(o3)); + const p3 = { ...gt, format: "cjs", sourcefile: c3, define: i4, banner: `__filename=${JSON.stringify(c3)};(()=>{`, footer: "})()", platform: "node", ...r4 }, g3 = Ie([s4, JSON.stringify(p3), ne.version, Je].join("-")); + let b3 = se.get(g3); + return b3 || (b3 = sn(e4, s4, [(d3, n3) => { + const R = bt(p3); + let L; + try { + L = ne.transformSync(n3, p3); + } catch (E2) { + throw pt(E2); + } + return R(L); + }, (d3, n3) => xe(d3, n3, true)]), se.set(g3, b3)), b3; + }, "transformSync"); + var hn = f5(async (s4, e4, r4) => { + const i4 = { ...gt, format: "esm", sourcefile: e4, ...r4 }, o3 = Ie([s4, JSON.stringify(i4), ne.version, Je].join("-")); + let c3 = se.get(o3); + return c3 || (c3 = await on(e4, s4, [async (u3, p3) => { + const g3 = bt(i4); + let b3; + try { + b3 = await ne.transform(p3, i4); + } catch (d3) { + throw pt(d3); + } + return g3(b3); + }, (u3, p3) => xe(u3, p3, true)]), se.set(o3, c3)), c3; + }, "transform"); + exports2.isESM = lr, exports2.readJsonFile = Ge, exports2.transform = hn, exports2.transformDynamicImport = xe, exports2.transformSync = ln; + } +}); + +// ../node_modules/.pnpm/tsx@4.21.0/node_modules/tsx/dist/client-D6NvIMSC.cjs +var require_client_D6NvIMSC = __commonJS({ + "../node_modules/.pnpm/tsx@4.21.0/node_modules/tsx/dist/client-D6NvIMSC.cjs"(exports2) { + "use strict"; + var f5 = Object.defineProperty; + var r4 = (e4, n3) => f5(e4, "name", { value: n3, configurable: true }); + var p3 = require("node:net"); + var u3 = require_get_pipe_path_BoR10qr8(); + var g3 = r4(() => new Promise((e4) => { + const n3 = u3.getPipePath(process.ppid), t4 = p3.createConnection(n3, () => { + e4(r4((a3) => { + const o3 = Buffer.from(JSON.stringify(a3)), c3 = Buffer.alloc(4); + c3.writeInt32BE(o3.length, 0), t4.write(Buffer.concat([c3, o3])); + }, "sendToParent")); + }); + t4.on("error", () => { + e4(); + }), t4.unref(); + }), "connectToServer"); + var s4 = { send: void 0 }; + var i4 = g3(); + i4.then((e4) => { + s4.send = e4; + }, () => { + }), exports2.connectingToServer = i4, exports2.parent = s4; + } +}); + +// ../node_modules/.pnpm/tsx@4.21.0/node_modules/tsx/dist/index-BWFBUo6r.cjs +var require_index_BWFBUo6r = __commonJS({ + "../node_modules/.pnpm/tsx@4.21.0/node_modules/tsx/dist/index-BWFBUo6r.cjs"(exports2) { + "use strict"; + var b3 = Object.defineProperty; + var p3 = (s4, l3) => b3(s4, "name", { value: l3, configurable: true }); + var t4 = true; + var n3 = typeof self < "u" ? self : typeof window < "u" ? window : typeof global < "u" ? global : {}; + var r4 = 0; + if (n3.process && n3.process.env && n3.process.stdout) { + const { FORCE_COLOR: s4, NODE_DISABLE_COLORS: l3, NO_COLOR: c3, TERM: o3, COLORTERM: i4 } = n3.process.env; + l3 || c3 || s4 === "0" ? t4 = false : s4 === "1" || s4 === "2" || s4 === "3" ? t4 = true : o3 === "dumb" ? t4 = false : "CI" in n3.process.env && ["TRAVIS", "CIRCLECI", "APPVEYOR", "GITLAB_CI", "GITHUB_ACTIONS", "BUILDKITE", "DRONE"].some((g3) => g3 in n3.process.env) ? t4 = true : t4 = process.stdout.isTTY, t4 && (process.platform === "win32" || i4 && (i4 === "truecolor" || i4 === "24bit") ? r4 = 3 : o3 && (o3.endsWith("-256color") || o3.endsWith("256")) ? r4 = 2 : r4 = 1); + } + var a3 = { enabled: t4, supportLevel: r4 }; + function e4(s4, l3, c3 = 1) { + const o3 = `\x1B[${s4}m`, i4 = `\x1B[${l3}m`, g3 = new RegExp(`\\x1b\\[${l3}m`, "g"); + return (f5) => a3.enabled && a3.supportLevel >= c3 ? o3 + ("" + f5).replace(g3, o3) + i4 : "" + f5; + } + p3(e4, "kolorist"); + var u3 = e4(30, 39); + var d3 = e4(33, 39); + var O = e4(90, 39); + var C2 = e4(92, 39); + var L = e4(95, 39); + var R = e4(96, 39); + var y2 = e4(44, 49); + var I2 = e4(100, 49); + var h4 = e4(103, 49); + exports2.bgBlue = y2, exports2.bgGray = I2, exports2.bgLightYellow = h4, exports2.black = u3, exports2.gray = O, exports2.lightCyan = R, exports2.lightGreen = C2, exports2.lightMagenta = L, exports2.options = a3, exports2.yellow = d3; + } +}); + +// ../node_modules/.pnpm/tsx@4.21.0/node_modules/tsx/dist/register-D46fvsV_.cjs +var require_register_D46fvsV = __commonJS({ + "../node_modules/.pnpm/tsx@4.21.0/node_modules/tsx/dist/register-D46fvsV_.cjs"(exports2, module2) { + "use strict"; + var K = Object.defineProperty; + var o3 = (s4, e4) => K(s4, "name", { value: e4, configurable: true }); + var Y = require_get_pipe_path_BoR10qr8(); + var u3 = require("node:module"); + var m4 = require("node:path"); + var L = require("node:url"); + var b3 = require_dist2(); + var O = require("node:fs"); + var w3 = require_index_gckBtVBf(); + var R = require_client_D6NvIMSC(); + var V = require("node:util"); + var g3 = require_index_BWFBUo6r(); + var W = o3((s4) => { + if (!s4.startsWith("data:text/javascript,")) return; + const e4 = s4.indexOf("?"); + if (e4 === -1) return; + const n3 = new URLSearchParams(s4.slice(e4 + 1)).get("filePath"); + if (n3) return n3; + }, "getOriginalFilePath"); + var D2 = o3((s4) => { + const e4 = W(s4); + return e4 && (u3._cache[e4] = u3._cache[s4], delete u3._cache[s4], s4 = e4), s4; + }, "interopCjsExports"); + var Z2 = o3((s4) => { + const e4 = s4.indexOf(":"); + if (e4 !== -1) return s4.slice(0, e4); + }, "getScheme"); + var N = o3((s4) => s4[0] === "." && (s4[1] === "/" || s4[1] === "." || s4[2] === "/"), "isRelativePath"); + var j3 = o3((s4) => N(s4) || m4.isAbsolute(s4), "isFilePath"); + var q3 = o3((s4) => { + if (j3(s4)) return true; + const e4 = Z2(s4); + return e4 && e4 !== "node"; + }, "requestAcceptsQuery"); + var v6 = "file://"; + var ee = [".ts", ".tsx", ".jsx", ".mts", ".cts"]; + var C2 = /\.([cm]?ts|[tj]sx)($|\?)/; + var se = /[/\\].+\.(?:cts|cjs)(?:$|\?)/; + var te = /\.json($|\?)/; + var _3 = /\/(?:$|\?)/; + var ne = /^(?:@[^/]+\/)?[^/\\]+$/; + var J2 = `${m4.sep}node_modules${m4.sep}`; + exports2.fileMatcher = void 0, exports2.tsconfigPathsMatcher = void 0, exports2.allowJs = false; + var Q = o3((s4) => { + var _a2; + let e4 = null; + if (s4) { + const r4 = m4.resolve(s4); + e4 = { path: r4, config: b3.parseTsconfig(r4) }; + } else { + try { + e4 = b3.getTsconfig(); + } catch { + } + if (!e4) return; + } + exports2.fileMatcher = b3.createFilesMatcher(e4), exports2.tsconfigPathsMatcher = b3.createPathsMatcher(e4), exports2.allowJs = ((_a2 = e4 == null ? void 0 : e4.config.compilerOptions) == null ? void 0 : _a2.allowJs) ?? false; + }, "loadTsconfig"); + var T = o3((s4) => Array.from(s4).length > 0 ? `?${s4.toString()}` : "", "urlSearchParamsStringify"); + var re = ` +//# sourceMappingURL=data:application/json;base64,`; + var A3 = o3(() => process.sourceMapsEnabled ?? true, "shouldApplySourceMap"); + var $ = o3(({ code: s4, map: e4 }) => s4 + re + Buffer.from(JSON.stringify(e4), "utf8").toString("base64"), "inlineSourceMap"); + var M = Number(process.env.TSX_DEBUG); + M && (g3.options.enabled = true, g3.options.supportLevel = 3); + var I2 = o3((s4) => (e4, ...r4) => { + if (!M || e4 > M) return; + const n3 = `${g3.bgGray(` tsx P${process.pid} `)} ${s4}`, t4 = r4.map((a3) => typeof a3 == "string" ? a3 : V.inspect(a3, { colors: true })).join(" "); + O.writeSync(1, `${n3} ${t4} +`); + }, "createLog"); + var x4 = I2(g3.bgLightYellow(g3.black(" CJS "))); + var ae = I2(g3.bgBlue(" ESM ")); + var oe = [".cts", ".mts", ".ts", ".tsx", ".jsx"]; + var ie = [".js", ".cjs", ".mjs"]; + var k3 = [".ts", ".tsx", ".jsx"]; + var F3 = o3((s4, e4, r4, n3) => { + const t4 = Object.getOwnPropertyDescriptor(s4, e4); + (t4 == null ? void 0 : t4.set) ? s4[e4] = r4 : (!t4 || t4.configurable) && Object.defineProperty(s4, e4, { value: r4, enumerable: (t4 == null ? void 0 : t4.enumerable) || (n3 == null ? void 0 : n3.enumerable), writable: (n3 == null ? void 0 : n3.writable) ?? (t4 ? t4.writable : true), configurable: (n3 == null ? void 0 : n3.configurable) ?? (t4 ? t4.configurable : true) }); + }, "safeSet"); + var ce = o3((s4, e4, r4) => { + const n3 = e4[".js"], t4 = o3((a3, i4) => { + var _a2, _b; + if (s4.enabled === false) return n3(a3, i4); + const [c3, f5] = i4.split("?"); + if ((new URLSearchParams(f5).get("namespace") ?? void 0) !== r4) return n3(a3, i4); + x4(2, "load", { filePath: i4 }), a3.id.startsWith("data:text/javascript,") && (a3.path = m4.dirname(c3)), ((_a2 = R.parent) == null ? void 0 : _a2.send) && R.parent.send({ type: "dependency", path: c3 }); + const p3 = oe.some((h4) => c3.endsWith(h4)), P = ie.some((h4) => c3.endsWith(h4)); + if (!p3 && !P) return n3(a3, c3); + let d3 = O.readFileSync(c3, "utf8"); + if (c3.endsWith(".cjs")) { + const h4 = w3.transformDynamicImport(i4, d3); + h4 && (d3 = A3() ? $(h4) : h4.code); + } else if (p3 || w3.isESM(d3)) { + const h4 = w3.transformSync(d3, i4, { tsconfigRaw: (_b = exports2.fileMatcher) == null ? void 0 : _b.call(exports2, c3) }); + d3 = A3() ? $(h4) : h4.code; + } + x4(1, "loaded", { filePath: c3 }), a3._compile(d3, c3); + }, "transformer"); + F3(e4, ".js", t4); + for (const a3 of k3) F3(e4, a3, t4, { enumerable: !r4, writable: true, configurable: true }); + return F3(e4, ".mjs", t4, { writable: true, configurable: true }), () => { + e4[".js"] === t4 && (e4[".js"] = n3); + for (const a3 of [...k3, ".mjs"]) e4[a3] === t4 && delete e4[a3]; + }; + }, "createExtensions"); + var le = o3((s4) => (e4) => { + if ((e4 === "." || e4 === ".." || e4.endsWith("/..")) && (e4 += "/"), _3.test(e4)) { + let r4 = m4.join(e4, "index.js"); + e4.startsWith("./") && (r4 = `./${r4}`); + try { + return s4(r4); + } catch { + } + } + try { + return s4(e4); + } catch (r4) { + const n3 = r4; + if (n3.code === "MODULE_NOT_FOUND") try { + return s4(`${e4}${m4.sep}index.js`); + } catch { + } + throw n3; + } + }, "createImplicitResolver"); + var B2 = [".js", ".json"]; + var G2 = [".ts", ".tsx", ".jsx"]; + var fe = [...G2, ...B2]; + var he = [...B2, ...G2]; + var y2 = /* @__PURE__ */ Object.create(null); + y2[".js"] = [".ts", ".tsx", ".js", ".jsx"], y2[".jsx"] = [".tsx", ".ts", ".jsx", ".js"], y2[".cjs"] = [".cts"], y2[".mjs"] = [".mts"]; + var X = o3((s4) => { + const e4 = s4.split("?"), r4 = e4[1] ? `?${e4[1]}` : "", [n3] = e4, t4 = m4.extname(n3), a3 = [], i4 = y2[t4]; + if (i4) { + const f5 = n3.slice(0, -t4.length); + a3.push(...i4.map((l3) => f5 + l3 + r4)); + } + const c3 = !(s4.startsWith(v6) || j3(n3)) || n3.includes(J2) || n3.includes("/node_modules/") ? he : fe; + return a3.push(...c3.map((f5) => n3 + f5 + r4)), a3; + }, "mapTsExtensions"); + var S2 = o3((s4, e4, r4) => { + if (x4(3, "resolveTsFilename", { request: e4, isDirectory: _3.test(e4), isTsParent: r4, allowJs: exports2.allowJs }), _3.test(e4) || !r4 && !exports2.allowJs) return; + const n3 = X(e4); + if (n3) for (const t4 of n3) try { + return s4(t4); + } catch (a3) { + const { code: i4 } = a3; + if (i4 !== "MODULE_NOT_FOUND" && i4 !== "ERR_PACKAGE_PATH_NOT_EXPORTED") throw a3; + } + }, "resolveTsFilename"); + var me = o3((s4, e4) => (r4) => { + if (x4(3, "resolveTsFilename", { request: r4, isTsParent: e4, isFilePath: j3(r4) }), j3(r4)) { + const n3 = S2(s4, r4, e4); + if (n3) return n3; + } + try { + return s4(r4); + } catch (n3) { + const t4 = n3; + if (t4.code === "MODULE_NOT_FOUND") { + if (t4.path) { + const i4 = t4.message.match(/^Cannot find module '([^']+)'$/); + if (i4) { + const f5 = i4[1], l3 = S2(s4, f5, e4); + if (l3) return l3; + } + const c3 = t4.message.match(/^Cannot find module '([^']+)'. Please verify that the package.json has a valid "main" entry$/); + if (c3) { + const f5 = c3[1], l3 = S2(s4, f5, e4); + if (l3) return l3; + } + } + const a3 = S2(s4, r4, e4); + if (a3) return a3; + } + throw t4; + } + }, "createTsExtensionResolver"); + var z2 = "at cjsPreparseModuleExports (node:internal"; + var de = o3((s4) => { + const e4 = s4.stack.split(` +`).slice(1); + return e4[1].includes(z2) || e4[2].includes(z2); + }, "isFromCjsLexer"); + var ue = o3((s4, e4) => { + const r4 = s4.split("?"), n3 = new URLSearchParams(r4[1]); + if (e4 == null ? void 0 : e4.filename) { + const t4 = W(e4.filename); + let a3; + if (t4) { + const f5 = t4.split("?"), l3 = f5[0]; + a3 = f5[1], e4.filename = l3, e4.path = m4.dirname(l3), e4.paths = u3._nodeModulePaths(e4.path), u3._cache[l3] = e4; + } + a3 || (a3 = e4.filename.split("?")[1]); + const c3 = new URLSearchParams(a3).get("namespace"); + c3 && n3.append("namespace", c3); + } + return [r4[0], n3, (t4, a3) => (m4.isAbsolute(t4) && !t4.endsWith(".json") && !t4.endsWith(".node") && !(a3 === 0 && de(new Error())) && (t4 += T(n3)), t4)]; + }, "preserveQuery"); + var pe = o3((s4, e4, r4) => { + var _a2; + if (s4.startsWith(v6) && (s4 = L.fileURLToPath(s4)), exports2.tsconfigPathsMatcher && !j3(s4) && !((_a2 = e4 == null ? void 0 : e4.filename) == null ? void 0 : _a2.includes(J2))) { + const n3 = exports2.tsconfigPathsMatcher(s4); + for (const t4 of n3) try { + return r4(t4); + } catch { + } + } + return r4(s4); + }, "resolveTsPaths"); + var Pe = o3((s4, e4, r4) => (n3, t4, ...a3) => { + if (s4.enabled === false) return e4(n3, t4, ...a3); + n3 = D2(n3); + const [i4, c3, f5] = ue(n3, t4); + if ((c3.get("namespace") ?? void 0) !== r4) return e4(n3, t4, ...a3); + x4(2, "resolve", { request: n3, parent: (t4 == null ? void 0 : t4.filename) ?? t4, restOfArgs: a3 }); + let l3 = o3((P) => e4(P, t4, ...a3), "nextResolveSimple"); + l3 = me(l3, !!(r4 || (t4 == null ? void 0 : t4.filename) && C2.test(t4.filename))), l3 = le(l3); + const p3 = f5(pe(i4, t4, l3), a3.length); + return x4(1, "resolved", { request: n3, parent: (t4 == null ? void 0 : t4.filename) ?? t4, resolved: p3 }), p3; + }, "createResolveFilename"); + var H2 = o3((s4, e4) => { + if (!e4) throw new Error("The current file path (__filename or import.meta.url) must be provided in the second argument of tsx.require()"); + return s4.startsWith(".") ? ((typeof e4 == "string" && e4.startsWith(v6) || e4 instanceof URL) && (e4 = L.fileURLToPath(e4)), m4.resolve(m4.dirname(e4), s4)) : s4; + }, "resolveContext"); + var ge = o3((s4) => { + const { sourceMapsEnabled: e4 } = process, r4 = { enabled: true }; + Q(process.env.TSX_TSCONFIG_PATH), process.setSourceMapsEnabled(true); + const n3 = u3._resolveFilename, t4 = Pe(r4, n3, s4 == null ? void 0 : s4.namespace); + u3._resolveFilename = t4; + const a3 = ce(r4, u3._extensions, s4 == null ? void 0 : s4.namespace), i4 = o3(() => { + e4 === false && process.setSourceMapsEnabled(false), r4.enabled = false, u3._resolveFilename === t4 && (u3._resolveFilename = n3), a3(); + }, "unregister"); + if (s4 == null ? void 0 : s4.namespace) { + const c3 = o3((l3, p3) => { + const P = H2(l3, p3), [d3, h4] = P.split("?"), E2 = new URLSearchParams(h4); + return s4.namespace && !d3.startsWith("node:") && E2.set("namespace", s4.namespace), Y.require(d3 + T(E2)); + }, "scopedRequire"); + i4.require = c3; + const f5 = o3((l3, p3, P) => { + const d3 = H2(l3, p3), [h4, E2] = d3.split("?"), U = new URLSearchParams(E2); + return s4.namespace && !h4.startsWith("node:") && U.set("namespace", s4.namespace), t4(h4 + T(U), module2, false, P); + }, "scopedResolve"); + i4.resolve = f5, i4.unregister = i4; + } + return i4; + }, "register"); + exports2.cjsExtensionPattern = se, exports2.debugEnabled = M, exports2.fileUrlPrefix = v6, exports2.inlineSourceMap = $, exports2.interopCjsExports = D2, exports2.isBarePackageNamePattern = ne, exports2.isDirectoryPattern = _3, exports2.isJsonPattern = te, exports2.isRelativePath = N, exports2.loadTsconfig = Q, exports2.logEsm = ae, exports2.mapTsExtensions = X, exports2.register = ge, exports2.requestAcceptsQuery = q3, exports2.tsExtensions = ee, exports2.tsExtensionsPattern = C2; + } +}); + +// ../node_modules/.pnpm/tsx@4.21.0/node_modules/tsx/dist/require-D4F1Lv60.cjs +var require_require_D4F1Lv60 = __commonJS({ + "../node_modules/.pnpm/tsx@4.21.0/node_modules/tsx/dist/require-D4F1Lv60.cjs"(exports2) { + "use strict"; + var c3 = Object.defineProperty; + var a3 = (r4, t4) => c3(r4, "name", { value: t4, configurable: true }); + var s4 = require_get_pipe_path_BoR10qr8(); + var n3 = require_register_D46fvsV(); + var e4; + var i4 = a3((r4, t4) => (e4 || (e4 = n3.register({ namespace: Date.now().toString() })), e4.require(r4, t4)), "tsxRequire"); + var o3 = a3((r4, t4, u3) => (e4 || (e4 = n3.register({ namespace: Date.now().toString() })), e4.resolve(r4, t4, u3)), "resolve"); + o3.paths = s4.require.resolve.paths, i4.resolve = o3, i4.main = s4.require.main, i4.extensions = s4.require.extensions, i4.cache = s4.require.cache, exports2.tsxRequire = i4; + } +}); + +// ../node_modules/.pnpm/tsx@4.21.0/node_modules/tsx/dist/cjs/api/index.cjs +var require_api = __commonJS({ + "../node_modules/.pnpm/tsx@4.21.0/node_modules/tsx/dist/cjs/api/index.cjs"(exports2) { + "use strict"; + require_get_pipe_path_BoR10qr8(); + var r4 = require_register_D46fvsV(); + var e4 = require_require_D4F1Lv60(); + require("module"), require("node:path"), require_temporary_directory_B83uKxJF(), require("node:os"), require("node:module"), require("node:url"), require_dist2(), require("node:fs"), require_index_gckBtVBf(), require("esbuild"), require("node:crypto"), require_client_D6NvIMSC(), require("node:net"), require("node:util"), require_index_BWFBUo6r(), exports2.register = r4.register, exports2.require = e4.tsxRequire; + } +}); + +// src/cli/commands/utils.ts +var import_fs3, import_hanji2, import_path3, assertES5, InMemoryMutex, registerMutex, tsxRegistered, ensureTsxRegistered, safeRegister, prepareCheckParams, prepareDropParams, prepareGenerateConfig, prepareExportConfig, flattenDatabaseCredentials, flattenPull, preparePushConfig, preparePullConfig, prepareStudioConfig, migrateConfig, prepareMigrateConfig, drizzleConfigFromFile; +var init_utils3 = __esm({ + "src/cli/commands/utils.ts"() { + "use strict"; + init_source(); + import_fs3 = require("fs"); + import_hanji2 = __toESM(require_hanji()); + import_path3 = require("path"); + init_esm(); + init_getTablesFilterByExtensions(); + init_global(); + init_schemaValidator(); + init_serializer(); + init_cli(); + init_common(); + init_gel(); + init_libsql(); + init_mysql(); + init_outputs(); + init_postgres(); + init_singlestore(); + init_sqlite(); + init_studio(); + init_views(); + assertES5 = async () => { + try { + await Promise.resolve().then(() => (init_es5(), es5_exports)); + } catch (e4) { + if ("errors" in e4 && Array.isArray(e4.errors) && e4.errors.length > 0) { + const es5Error = e4.errors.filter((it) => { + var _a2; + return (_a2 = it.text) == null ? void 0 : _a2.includes(`("es5") is not supported yet`); + }).length > 0; + if (es5Error) { + console.log( + error( + `Please change compilerOptions.target from 'es5' to 'es6' or above in your tsconfig.json` + ) + ); + process.exit(1); + } + } + console.error(e4); + process.exit(1); + } + }; + InMemoryMutex = class { + constructor() { + this.lockPromise = null; + } + async withLock(fn) { + while (this.lockPromise) { + await this.lockPromise; + } + let resolveLock; + this.lockPromise = new Promise((resolve2) => { + resolveLock = resolve2; + }); + try { + return await fn(); + } finally { + this.lockPromise = null; + resolveLock(); + } + } + }; + registerMutex = new InMemoryMutex(); + tsxRegistered = false; + ensureTsxRegistered = () => { + if (tsxRegistered) return; + const isBun = typeof globalThis.Bun !== "undefined"; + const isDeno = typeof globalThis.Deno !== "undefined"; + if (isBun || isDeno) { + tsxRegistered = true; + return; + } + const tsx = require_api(); + tsx.register(); + tsxRegistered = true; + }; + safeRegister = async (fn) => { + return registerMutex.withLock(async () => { + ensureTsxRegistered(); + await assertES5(); + return fn(); + }); + }; + prepareCheckParams = async (options, from) => { + const config = from === "config" ? await drizzleConfigFromFile(options.config) : options; + if (!config.out || !config.dialect) { + let text = `Please provide required params for AWS Data API driver: +`; + console.log(error(text)); + console.log(wrapParam("database", config.out)); + console.log(wrapParam("secretArn", config.dialect)); + process.exit(1); + } + return { out: config.out, dialect: config.dialect }; + }; + prepareDropParams = async (options, from) => { + const config = from === "config" ? await drizzleConfigFromFile(options.config) : options; + if (config.dialect === "gel") { + console.log( + error( + `You can't use 'drop' command with Gel dialect` + ) + ); + process.exit(1); + } + return { out: config.out || "drizzle", bundle: config.driver === "expo" }; + }; + prepareGenerateConfig = async (options, from) => { + var _a2; + const config = from === "config" ? await drizzleConfigFromFile(options.config) : options; + const { schema: schema6, out, breakpoints, dialect: dialect6, driver: driver2, casing: casing2 } = config; + if (!schema6 || !dialect6) { + console.log(error("Please provide required params:")); + console.log(wrapParam("schema", schema6)); + console.log(wrapParam("dialect", dialect6)); + console.log(wrapParam("out", out, true)); + process.exit(1); + } + const fileNames = prepareFilenames(schema6); + if (fileNames.length === 0) { + (0, import_hanji2.render)(`[${source_default.blue("i")}] No schema file in ${schema6} was found`); + process.exit(0); + } + const prefix2 = ("migrations" in config ? (_a2 = config.migrations) == null ? void 0 : _a2.prefix : options.prefix) || "index"; + return { + dialect: dialect6, + name: options.name, + custom: options.custom || false, + prefix: prefix2, + breakpoints: breakpoints ?? true, + schema: schema6, + out: out || "drizzle", + bundle: driver2 === "expo" || driver2 === "durable-sqlite", + casing: casing2, + driver: driver2 + }; + }; + prepareExportConfig = async (options, from) => { + const config = from === "config" ? await drizzleConfigFromFile(options.config, true) : options; + const { schema: schema6, dialect: dialect6, sql } = config; + if (!schema6 || !dialect6) { + console.log(error("Please provide required params:")); + console.log(wrapParam("schema", schema6)); + console.log(wrapParam("dialect", dialect6)); + process.exit(1); + } + const fileNames = prepareFilenames(schema6); + if (fileNames.length === 0) { + (0, import_hanji2.render)(`[${source_default.blue("i")}] No schema file in ${schema6} was found`); + process.exit(0); + } + return { + dialect: dialect6, + schema: schema6, + sql + }; + }; + flattenDatabaseCredentials = (config) => { + if ("dbCredentials" in config) { + const { dbCredentials, ...rest } = config; + return { + ...rest, + ...dbCredentials + }; + } + return config; + }; + flattenPull = (config) => { + if ("dbCredentials" in config) { + const { dbCredentials, introspect, ...rest } = config; + return { + ...rest, + ...dbCredentials, + casing: introspect == null ? void 0 : introspect.casing + }; + } + return config; + }; + preparePushConfig = async (options, from) => { + const raw2 = flattenDatabaseCredentials( + from === "config" ? await drizzleConfigFromFile(options.config) : options + ); + raw2.verbose ||= options.verbose; + raw2.strict ||= options.strict; + const parsed = pushParams.safeParse(raw2); + if (parsed.error) { + console.log(error("Please provide required params:")); + console.log(wrapParam("dialect", raw2.dialect)); + console.log(wrapParam("schema", raw2.schema)); + process.exit(1); + } + const config = parsed.data; + const schemaFiles = prepareFilenames(config.schema); + if (schemaFiles.length === 0) { + (0, import_hanji2.render)(`[${source_default.blue("i")}] No schema file in ${config.schema} was found`); + process.exit(0); + } + const tablesFilterConfig = config.tablesFilter; + const tablesFilter = tablesFilterConfig ? typeof tablesFilterConfig === "string" ? [tablesFilterConfig] : tablesFilterConfig : []; + const schemasFilterConfig = config.schemaFilter; + const schemasFilter = schemasFilterConfig ? typeof schemasFilterConfig === "string" ? [schemasFilterConfig] : schemasFilterConfig : []; + tablesFilter.push(...getTablesFilterByExtensions(config)); + if (config.dialect === "postgresql") { + const parsed2 = postgresCredentials.safeParse(config); + if (!parsed2.success) { + printConfigConnectionIssues4(config); + process.exit(1); + } + return { + dialect: "postgresql", + schemaPath: config.schema, + strict: config.strict ?? false, + verbose: config.verbose ?? false, + force: options.force ?? false, + credentials: parsed2.data, + casing: config.casing, + tablesFilter, + schemasFilter, + entities: config.entities + }; + } + if (config.dialect === "mysql") { + const parsed2 = mysqlCredentials.safeParse(config); + if (!parsed2.success) { + printConfigConnectionIssues3(config); + process.exit(1); + } + return { + dialect: "mysql", + schemaPath: config.schema, + strict: config.strict ?? false, + verbose: config.verbose ?? false, + force: options.force ?? false, + credentials: parsed2.data, + casing: config.casing, + tablesFilter, + schemasFilter + }; + } + if (config.dialect === "singlestore") { + const parsed2 = singlestoreCredentials.safeParse(config); + if (!parsed2.success) { + printConfigConnectionIssues5(config); + process.exit(1); + } + return { + dialect: "singlestore", + schemaPath: config.schema, + strict: config.strict ?? false, + verbose: config.verbose ?? false, + force: options.force ?? false, + credentials: parsed2.data, + tablesFilter, + schemasFilter + }; + } + if (config.dialect === "sqlite") { + const parsed2 = sqliteCredentials.safeParse(config); + if (!parsed2.success) { + printConfigConnectionIssues6(config, "push"); + process.exit(1); + } + return { + dialect: "sqlite", + schemaPath: config.schema, + strict: config.strict ?? false, + verbose: config.verbose ?? false, + force: options.force ?? false, + credentials: parsed2.data, + casing: config.casing, + tablesFilter, + schemasFilter + }; + } + if (config.dialect === "turso") { + const parsed2 = libSQLCredentials.safeParse(config); + if (!parsed2.success) { + printConfigConnectionIssues6(config, "push"); + process.exit(1); + } + return { + dialect: "turso", + schemaPath: config.schema, + strict: config.strict ?? false, + verbose: config.verbose ?? false, + force: options.force ?? false, + credentials: parsed2.data, + casing: config.casing, + tablesFilter, + schemasFilter + }; + } + if (config.dialect === "gel") { + console.log( + error( + `You can't use 'push' command with Gel dialect` + ) + ); + process.exit(1); + } + assertUnreachable(config.dialect); + }; + preparePullConfig = async (options, from) => { + var _a2, _b, _c, _d, _e, _f; + const raw2 = flattenPull( + from === "config" ? await drizzleConfigFromFile(options.config) : options + ); + const parsed = pullParams.safeParse(raw2); + if (parsed.error) { + console.log(error("Please provide required params:")); + console.log(wrapParam("dialect", raw2.dialect)); + process.exit(1); + } + const config = parsed.data; + const dialect6 = config.dialect; + const tablesFilterConfig = config.tablesFilter; + const tablesFilter = tablesFilterConfig ? typeof tablesFilterConfig === "string" ? [tablesFilterConfig] : tablesFilterConfig : []; + if (config.extensionsFilters) { + if (config.extensionsFilters.includes("postgis") && dialect6 === "postgresql") { + tablesFilter.push( + ...["!geography_columns", "!geometry_columns", "!spatial_ref_sys"] + ); + } + } + const schemasFilterConfig = config.schemaFilter; + const schemasFilter = schemasFilterConfig ? typeof schemasFilterConfig === "string" ? [schemasFilterConfig] : schemasFilterConfig : []; + if (dialect6 === "postgresql") { + const parsed2 = postgresCredentials.safeParse(config); + if (!parsed2.success) { + printConfigConnectionIssues4(config); + process.exit(1); + } + return { + dialect: "postgresql", + out: config.out, + breakpoints: config.breakpoints, + casing: config.casing, + credentials: parsed2.data, + tablesFilter, + schemasFilter, + prefix: ((_a2 = config.migrations) == null ? void 0 : _a2.prefix) || "index", + entities: config.entities + }; + } + if (dialect6 === "mysql") { + const parsed2 = mysqlCredentials.safeParse(config); + if (!parsed2.success) { + printConfigConnectionIssues3(config); + process.exit(1); + } + return { + dialect: "mysql", + out: config.out, + breakpoints: config.breakpoints, + casing: config.casing, + credentials: parsed2.data, + tablesFilter, + schemasFilter, + prefix: ((_b = config.migrations) == null ? void 0 : _b.prefix) || "index", + entities: config.entities + }; + } + if (dialect6 === "singlestore") { + const parsed2 = singlestoreCredentials.safeParse(config); + if (!parsed2.success) { + printConfigConnectionIssues5(config); + process.exit(1); + } + return { + dialect: "singlestore", + out: config.out, + breakpoints: config.breakpoints, + casing: config.casing, + credentials: parsed2.data, + tablesFilter, + schemasFilter, + prefix: ((_c = config.migrations) == null ? void 0 : _c.prefix) || "index", + entities: config.entities + }; + } + if (dialect6 === "sqlite") { + const parsed2 = sqliteCredentials.safeParse(config); + if (!parsed2.success) { + printConfigConnectionIssues6(config, "pull"); + process.exit(1); + } + return { + dialect: "sqlite", + out: config.out, + breakpoints: config.breakpoints, + casing: config.casing, + credentials: parsed2.data, + tablesFilter, + schemasFilter, + prefix: ((_d = config.migrations) == null ? void 0 : _d.prefix) || "index", + entities: config.entities + }; + } + if (dialect6 === "turso") { + const parsed2 = libSQLCredentials.safeParse(config); + if (!parsed2.success) { + printConfigConnectionIssues2(config, "pull"); + process.exit(1); + } + return { + dialect: dialect6, + out: config.out, + breakpoints: config.breakpoints, + casing: config.casing, + credentials: parsed2.data, + tablesFilter, + schemasFilter, + prefix: ((_e = config.migrations) == null ? void 0 : _e.prefix) || "index", + entities: config.entities + }; + } + if (dialect6 === "gel") { + const parsed2 = gelCredentials.safeParse(config); + if (!parsed2.success) { + printConfigConnectionIssues(config); + process.exit(1); + } + return { + dialect: dialect6, + out: config.out, + breakpoints: config.breakpoints, + casing: config.casing, + credentials: parsed2.data, + tablesFilter, + schemasFilter, + prefix: ((_f = config.migrations) == null ? void 0 : _f.prefix) || "index", + entities: config.entities + }; + } + assertUnreachable(dialect6); + }; + prepareStudioConfig = async (options) => { + const params = studioCliParams.parse(options); + const config = await drizzleConfigFromFile(params.config); + const result = studioConfig.safeParse(config); + if (!result.success) { + if (!("dialect" in config)) { + console.log(outputs.studio.noDialect()); + } + process.exit(1); + } + if (!("dbCredentials" in config)) { + console.log(outputs.studio.noCredentials()); + process.exit(1); + } + const { host, port } = params; + const { dialect: dialect6, schema: schema6, casing: casing2 } = result.data; + const flattened = flattenDatabaseCredentials(config); + if (dialect6 === "postgresql") { + const parsed = postgresCredentials.safeParse(flattened); + if (!parsed.success) { + printConfigConnectionIssues4(flattened); + process.exit(1); + } + const credentials2 = parsed.data; + return { + dialect: dialect6, + schema: schema6, + host, + port, + credentials: credentials2, + casing: casing2 + }; + } + if (dialect6 === "mysql") { + const parsed = mysqlCredentials.safeParse(flattened); + if (!parsed.success) { + printConfigConnectionIssues3(flattened); + process.exit(1); + } + const credentials2 = parsed.data; + return { + dialect: dialect6, + schema: schema6, + host, + port, + credentials: credentials2, + casing: casing2 + }; + } + if (dialect6 === "singlestore") { + const parsed = singlestoreCredentials.safeParse(flattened); + if (!parsed.success) { + printConfigConnectionIssues5(flattened); + process.exit(1); + } + const credentials2 = parsed.data; + return { + dialect: dialect6, + schema: schema6, + host, + port, + credentials: credentials2, + casing: casing2 + }; + } + if (dialect6 === "sqlite") { + const parsed = sqliteCredentials.safeParse(flattened); + if (!parsed.success) { + printConfigConnectionIssues6(flattened, "studio"); + process.exit(1); + } + const credentials2 = parsed.data; + return { + dialect: dialect6, + schema: schema6, + host, + port, + credentials: credentials2, + casing: casing2 + }; + } + if (dialect6 === "turso") { + const parsed = libSQLCredentials.safeParse(flattened); + if (!parsed.success) { + printConfigConnectionIssues2(flattened, "studio"); + process.exit(1); + } + const credentials2 = parsed.data; + return { + dialect: dialect6, + schema: schema6, + host, + port, + credentials: credentials2, + casing: casing2 + }; + } + if (dialect6 === "gel") { + console.log( + error( + `You can't use 'studio' command with Gel dialect` + ) + ); + process.exit(1); + } + assertUnreachable(dialect6); + }; + migrateConfig = objectType({ + dialect: dialect4, + out: stringType().optional().default("drizzle"), + migrations: configMigrations + }); + prepareMigrateConfig = async (configPath) => { + const config = await drizzleConfigFromFile(configPath); + const parsed = migrateConfig.safeParse(config); + if (parsed.error) { + console.log(error("Please provide required params:")); + console.log(wrapParam("dialect", config.dialect)); + process.exit(1); + } + const { dialect: dialect6, out } = parsed.data; + const { schema: schema6, table: table6 } = parsed.data.migrations || {}; + const flattened = flattenDatabaseCredentials(config); + if (dialect6 === "postgresql") { + const parsed2 = postgresCredentials.safeParse(flattened); + if (!parsed2.success) { + printConfigConnectionIssues4(flattened); + process.exit(1); + } + const credentials2 = parsed2.data; + return { + dialect: dialect6, + out, + credentials: credentials2, + schema: schema6, + table: table6 + }; + } + if (dialect6 === "mysql") { + const parsed2 = mysqlCredentials.safeParse(flattened); + if (!parsed2.success) { + printConfigConnectionIssues3(flattened); + process.exit(1); + } + const credentials2 = parsed2.data; + return { + dialect: dialect6, + out, + credentials: credentials2, + schema: schema6, + table: table6 + }; + } + if (dialect6 === "singlestore") { + const parsed2 = singlestoreCredentials.safeParse(flattened); + if (!parsed2.success) { + printConfigConnectionIssues5(flattened); + process.exit(1); + } + const credentials2 = parsed2.data; + return { + dialect: dialect6, + out, + credentials: credentials2, + schema: schema6, + table: table6 + }; + } + if (dialect6 === "sqlite") { + const parsed2 = sqliteCredentials.safeParse(flattened); + if (!parsed2.success) { + printConfigConnectionIssues6(flattened, "migrate"); + process.exit(1); + } + const credentials2 = parsed2.data; + return { + dialect: dialect6, + out, + credentials: credentials2, + schema: schema6, + table: table6 + }; + } + if (dialect6 === "turso") { + const parsed2 = libSQLCredentials.safeParse(flattened); + if (!parsed2.success) { + printConfigConnectionIssues2(flattened, "migrate"); + process.exit(1); + } + const credentials2 = parsed2.data; + return { + dialect: dialect6, + out, + credentials: credentials2, + schema: schema6, + table: table6 + }; + } + if (dialect6 === "gel") { + console.log( + error( + `You can't use 'migrate' command with Gel dialect` + ) + ); + process.exit(1); + } + assertUnreachable(dialect6); + }; + drizzleConfigFromFile = async (configPath, isExport) => { + const prefix2 = process.env.TEST_CONFIG_PATH_PREFIX || ""; + const defaultTsConfigExists = (0, import_fs3.existsSync)((0, import_path3.resolve)((0, import_path3.join)(prefix2, "drizzle.config.ts"))); + const defaultJsConfigExists = (0, import_fs3.existsSync)((0, import_path3.resolve)((0, import_path3.join)(prefix2, "drizzle.config.js"))); + (0, import_fs3.existsSync)( + (0, import_path3.join)((0, import_path3.resolve)("drizzle.config.json")) + ); + const defaultConfigPath = defaultTsConfigExists ? "drizzle.config.ts" : defaultJsConfigExists ? "drizzle.config.js" : "drizzle.config.json"; + if (!configPath && !isExport) { + console.log( + source_default.gray( + `No config path provided, using default '${defaultConfigPath}'` + ) + ); + } + const path4 = (0, import_path3.resolve)((0, import_path3.join)(prefix2, configPath ?? defaultConfigPath)); + if (!(0, import_fs3.existsSync)(path4)) { + console.log(`${path4} file does not exist`); + process.exit(1); + } + if (!isExport) console.log(source_default.grey(`Reading config file '${path4}'`)); + return safeRegister(async () => { + const required = require(`${path4}`); + const content = required.default ?? required; + const res = configCommonSchema.safeParse(content); + if (!res.success) { + console.log(res.error); + if (!("dialect" in content)) { + console.log(error("Please specify 'dialect' param in config file")); + } + process.exit(1); + } + return res.data; + }); + }; + } +}); + +// src/serializer/mysqlImports.ts +var mysqlImports_exports = {}; +__export(mysqlImports_exports, { + prepareFromExports: () => prepareFromExports, + prepareFromMySqlImports: () => prepareFromMySqlImports +}); +var import_drizzle_orm, import_mysql_core, prepareFromExports, prepareFromMySqlImports; +var init_mysqlImports = __esm({ + "src/serializer/mysqlImports.ts"() { + "use strict"; + import_drizzle_orm = require("drizzle-orm"); + import_mysql_core = require("drizzle-orm/mysql-core"); + init_utils3(); + prepareFromExports = (exports2) => { + const tables = []; + const views = []; + const i0values = Object.values(exports2); + i0values.forEach((t4) => { + if ((0, import_drizzle_orm.is)(t4, import_mysql_core.MySqlTable)) { + tables.push(t4); + } + if ((0, import_drizzle_orm.is)(t4, import_mysql_core.MySqlView)) { + views.push(t4); + } + }); + return { tables, views }; + }; + prepareFromMySqlImports = async (imports) => { + const tables = []; + const views = []; + await safeRegister(async () => { + for (let i4 = 0; i4 < imports.length; i4++) { + const it = imports[i4]; + const i0 = require(`${it}`); + const prepared = prepareFromExports(i0); + tables.push(...prepared.tables); + views.push(...prepared.views); + } + }); + return { tables: Array.from(new Set(tables)), views }; + }; + } +}); + +// src/serializer/utils.ts +function getColumnCasing(column11, casing2) { + if (!column11.name) return ""; + return !column11.keyAsName || casing2 === void 0 ? column11.name : casing2 === "camelCase" ? (0, import_casing.toCamelCase)(column11.name) : (0, import_casing.toSnakeCase)(column11.name); +} +var import_casing, sqlToStr; +var init_utils4 = __esm({ + "src/serializer/utils.ts"() { + "use strict"; + import_casing = require("drizzle-orm/casing"); + sqlToStr = (sql, casing2) => { + return sql.toQuery({ + escapeName: () => { + throw new Error("we don't support params for `sql` default values"); + }, + escapeParam: () => { + throw new Error("we don't support params for `sql` default values"); + }, + escapeString: () => { + throw new Error("we don't support params for `sql` default values"); + }, + casing: new import_casing.CasingCache(casing2) + }).sql; + }; + } +}); + +// src/serializer/mysqlSerializer.ts +var mysqlSerializer_exports = {}; +__export(mysqlSerializer_exports, { + fromDatabase: () => fromDatabase, + generateMySqlSnapshot: () => generateMySqlSnapshot, + indexName: () => indexName +}); +function clearDefaults(defaultValue, collate) { + if (typeof collate === "undefined" || collate === null) { + collate = `utf8mb4`; + } + let resultDefault = defaultValue; + collate = `_${collate}`; + if (defaultValue.startsWith(collate)) { + resultDefault = resultDefault.substring(collate.length, defaultValue.length).replace(/\\/g, ""); + if (resultDefault.startsWith("'") && resultDefault.endsWith("'")) { + return `('${escapeSingleQuotes(resultDefault.substring(1, resultDefault.length - 1))}')`; + } else { + return `'${escapeSingleQuotes(resultDefault.substring(1, resultDefault.length - 1))}'`; + } + } else { + return `(${resultDefault})`; + } +} +var import_drizzle_orm2, import_mysql_core2, indexName, handleEnumType, generateMySqlSnapshot, fromDatabase; +var init_mysqlSerializer = __esm({ + "src/serializer/mysqlSerializer.ts"() { + "use strict"; + init_source(); + import_drizzle_orm2 = require("drizzle-orm"); + import_mysql_core2 = require("drizzle-orm/mysql-core"); + init_outputs(); + init_utils2(); + init_utils4(); + indexName = (tableName, columns) => { + return `${tableName}_${columns.join("_")}_index`; + }; + handleEnumType = (type) => { + let str = type.split("(")[1]; + str = str.substring(0, str.length - 1); + const values = str.split(",").map((v6) => `'${escapeSingleQuotes(v6.substring(1, v6.length - 1))}'`); + return `enum(${values.join(",")})`; + }; + generateMySqlSnapshot = (tables, views, casing2) => { + const dialect6 = new import_mysql_core2.MySqlDialect({ casing: casing2 }); + const result = {}; + const resultViews = {}; + const internal = { tables: {}, indexes: {} }; + for (const table6 of tables) { + const { + name: tableName, + columns, + indexes, + foreignKeys, + schema: schema6, + checks, + primaryKeys, + uniqueConstraints + } = (0, import_mysql_core2.getTableConfig)(table6); + const columnsObject = {}; + const indexesObject = {}; + const foreignKeysObject = {}; + const primaryKeysObject = {}; + const uniqueConstraintObject = {}; + const checkConstraintObject = {}; + let checksInTable = {}; + columns.forEach((column11) => { + const name = getColumnCasing(column11, casing2); + const notNull = column11.notNull; + const sqlType = column11.getSQLType(); + const sqlTypeLowered = sqlType.toLowerCase(); + const autoIncrement = typeof column11.autoIncrement === "undefined" ? false : column11.autoIncrement; + const generated = column11.generated; + const columnToSet = { + name, + type: sqlType.startsWith("enum") ? handleEnumType(sqlType) : sqlType, + primaryKey: false, + // If field is autoincrement it's notNull by default + // notNull: autoIncrement ? true : notNull, + notNull, + autoincrement: autoIncrement, + onUpdate: column11.hasOnUpdateNow, + generated: generated ? { + as: (0, import_drizzle_orm2.is)(generated.as, import_drizzle_orm2.SQL) ? dialect6.sqlToQuery(generated.as).sql : typeof generated.as === "function" ? dialect6.sqlToQuery(generated.as()).sql : generated.as, + type: generated.mode ?? "stored" + } : void 0 + }; + if (column11.primary) { + primaryKeysObject[`${tableName}_${name}`] = { + name: `${tableName}_${name}`, + columns: [name] + }; + } + if (column11.isUnique) { + const existingUnique = uniqueConstraintObject[column11.uniqueName]; + if (typeof existingUnique !== "undefined") { + console.log( + ` +${withStyle.errorWarning(`We've found duplicated unique constraint names in ${source_default.underline.blue( + tableName + )} table. + The unique constraint ${source_default.underline.blue( + column11.uniqueName + )} on the ${source_default.underline.blue( + name + )} column is confilcting with a unique constraint name already defined for ${source_default.underline.blue( + existingUnique.columns.join(",") + )} columns +`)}` + ); + process.exit(1); + } + uniqueConstraintObject[column11.uniqueName] = { + name: column11.uniqueName, + columns: [columnToSet.name] + }; + } + if (column11.default !== void 0) { + if ((0, import_drizzle_orm2.is)(column11.default, import_drizzle_orm2.SQL)) { + columnToSet.default = sqlToStr(column11.default, casing2); + } else { + if (typeof column11.default === "string") { + columnToSet.default = `'${escapeSingleQuotes(column11.default)}'`; + } else { + if (sqlTypeLowered === "json") { + columnToSet.default = `'${JSON.stringify(column11.default)}'`; + } else if (column11.default instanceof Date) { + if (sqlTypeLowered === "date") { + columnToSet.default = `'${column11.default.toISOString().split("T")[0]}'`; + } else if (sqlTypeLowered.startsWith("datetime") || sqlTypeLowered.startsWith("timestamp")) { + columnToSet.default = `'${column11.default.toISOString().replace("T", " ").slice(0, 23)}'`; + } + } else { + columnToSet.default = column11.default; + } + } + if (["blob", "text", "json"].includes(column11.getSQLType())) { + columnToSet.default = `(${columnToSet.default})`; + } + } + } + columnsObject[name] = columnToSet; + }); + primaryKeys.map((pk) => { + const originalColumnNames = pk.columns.map((c3) => c3.name); + const columnNames = pk.columns.map((c3) => getColumnCasing(c3, casing2)); + let name = pk.getName(); + if (casing2 !== void 0) { + for (let i4 = 0; i4 < originalColumnNames.length; i4++) { + name = name.replace(originalColumnNames[i4], columnNames[i4]); + } + } + primaryKeysObject[name] = { + name, + columns: columnNames + }; + for (const column11 of pk.columns) { + columnsObject[getColumnCasing(column11, casing2)].notNull = true; + } + }); + uniqueConstraints == null ? void 0 : uniqueConstraints.map((unq) => { + const columnNames = unq.columns.map((c3) => getColumnCasing(c3, casing2)); + const name = unq.name ?? (0, import_mysql_core2.uniqueKeyName)(table6, columnNames); + const existingUnique = uniqueConstraintObject[name]; + if (typeof existingUnique !== "undefined") { + console.log( + ` +${withStyle.errorWarning( + `We've found duplicated unique constraint names in ${source_default.underline.blue( + tableName + )} table. +The unique constraint ${source_default.underline.blue( + name + )} on the ${source_default.underline.blue( + columnNames.join(",") + )} columns is confilcting with a unique constraint name already defined for ${source_default.underline.blue( + existingUnique.columns.join(",") + )} columns +` + )}` + ); + process.exit(1); + } + uniqueConstraintObject[name] = { + name: unq.name, + columns: columnNames + }; + }); + const fks = foreignKeys.map((fk5) => { + const tableFrom = tableName; + const onDelete = fk5.onDelete ?? "no action"; + const onUpdate = fk5.onUpdate ?? "no action"; + const reference = fk5.reference(); + const referenceFT = reference.foreignTable; + const tableTo = (0, import_drizzle_orm2.getTableName)(referenceFT); + const originalColumnsFrom = reference.columns.map((it) => it.name); + const columnsFrom = reference.columns.map((it) => getColumnCasing(it, casing2)); + const originalColumnsTo = reference.foreignColumns.map((it) => it.name); + const columnsTo = reference.foreignColumns.map((it) => getColumnCasing(it, casing2)); + let name = fk5.getName(); + if (casing2 !== void 0) { + for (let i4 = 0; i4 < originalColumnsFrom.length; i4++) { + name = name.replace(originalColumnsFrom[i4], columnsFrom[i4]); + } + for (let i4 = 0; i4 < originalColumnsTo.length; i4++) { + name = name.replace(originalColumnsTo[i4], columnsTo[i4]); + } + } + return { + name, + tableFrom, + tableTo, + columnsFrom, + columnsTo, + onDelete, + onUpdate + }; + }); + fks.forEach((it) => { + foreignKeysObject[it.name] = it; + }); + indexes.forEach((value) => { + const columns2 = value.config.columns; + const name = value.config.name; + let indexColumns = columns2.map((it) => { + var _a2; + if ((0, import_drizzle_orm2.is)(it, import_drizzle_orm2.SQL)) { + const sql = dialect6.sqlToQuery(it, "indexes").sql; + if (typeof internal.indexes[name] === "undefined") { + internal.indexes[name] = { + columns: { + [sql]: { + isExpression: true + } + } + }; + } else { + if (typeof ((_a2 = internal.indexes[name]) == null ? void 0 : _a2.columns[sql]) === "undefined") { + internal.indexes[name].columns[sql] = { + isExpression: true + }; + } else { + internal.indexes[name].columns[sql].isExpression = true; + } + } + return sql; + } else { + return `${getColumnCasing(it, casing2)}`; + } + }); + if (value.config.unique) { + if (typeof uniqueConstraintObject[name] !== "undefined") { + console.log( + ` +${withStyle.errorWarning( + `We've found duplicated unique constraint names in ${source_default.underline.blue( + tableName + )} table. +The unique index ${source_default.underline.blue( + name + )} on the ${source_default.underline.blue( + indexColumns.join(",") + )} columns is confilcting with a unique constraint name already defined for ${source_default.underline.blue( + uniqueConstraintObject[name].columns.join(",") + )} columns +` + )}` + ); + process.exit(1); + } + } else { + if (typeof foreignKeysObject[name] !== "undefined") { + console.log( + ` +${withStyle.errorWarning( + `In MySQL, when creating a foreign key, an index is automatically generated with the same name as the foreign key constraint. + +We have encountered a collision between the index name on columns ${source_default.underline.blue( + indexColumns.join(",") + )} and the foreign key on columns ${source_default.underline.blue( + foreignKeysObject[name].columnsFrom.join(",") + )}. Please change either the index name or the foreign key name. For more information, please refer to https://dev.mysql.com/doc/refman/8.0/en/constraint-foreign-key.html + + ` + )}` + ); + process.exit(1); + } + } + indexesObject[name] = { + name, + columns: indexColumns, + isUnique: value.config.unique ?? false, + using: value.config.using, + algorithm: value.config.algorithm, + lock: value.config.lock + }; + }); + checks.forEach((check2) => { + check2; + const checkName = check2.name; + if (typeof checksInTable[tableName] !== "undefined") { + if (checksInTable[tableName].includes(check2.name)) { + console.log( + ` +${withStyle.errorWarning( + `We've found duplicated check constraint name in ${source_default.underline.blue( + tableName + )}. Please rename your check constraint in the ${source_default.underline.blue( + tableName + )} table` + )}` + ); + process.exit(1); + } + checksInTable[tableName].push(checkName); + } else { + checksInTable[tableName] = [check2.name]; + } + checkConstraintObject[checkName] = { + name: checkName, + value: dialect6.sqlToQuery(check2.value).sql + }; + }); + if (!schema6) { + result[tableName] = { + name: tableName, + columns: columnsObject, + indexes: indexesObject, + foreignKeys: foreignKeysObject, + compositePrimaryKeys: primaryKeysObject, + uniqueConstraints: uniqueConstraintObject, + checkConstraint: checkConstraintObject + }; + } + } + for (const view5 of views) { + const { + isExisting, + name, + query, + schema: schema6, + selectedFields, + algorithm, + sqlSecurity, + withCheckOption + } = (0, import_mysql_core2.getViewConfig)(view5); + const columnsObject = {}; + const existingView = resultViews[name]; + if (typeof existingView !== "undefined") { + console.log( + ` +${withStyle.errorWarning( + `We've found duplicated view name across ${source_default.underline.blue( + schema6 ?? "public" + )} schema. Please rename your view` + )}` + ); + process.exit(1); + } + for (const key in selectedFields) { + if ((0, import_drizzle_orm2.is)(selectedFields[key], import_mysql_core2.MySqlColumn)) { + const column11 = selectedFields[key]; + const notNull = column11.notNull; + const sqlTypeLowered = column11.getSQLType().toLowerCase(); + const autoIncrement = typeof column11.autoIncrement === "undefined" ? false : column11.autoIncrement; + const generated = column11.generated; + const columnToSet = { + name: column11.name, + type: column11.getSQLType(), + primaryKey: false, + // If field is autoincrement it's notNull by default + // notNull: autoIncrement ? true : notNull, + notNull, + autoincrement: autoIncrement, + onUpdate: column11.hasOnUpdateNow, + generated: generated ? { + as: (0, import_drizzle_orm2.is)(generated.as, import_drizzle_orm2.SQL) ? dialect6.sqlToQuery(generated.as).sql : typeof generated.as === "function" ? dialect6.sqlToQuery(generated.as()).sql : generated.as, + type: generated.mode ?? "stored" + } : void 0 + }; + if (column11.default !== void 0) { + if ((0, import_drizzle_orm2.is)(column11.default, import_drizzle_orm2.SQL)) { + columnToSet.default = sqlToStr(column11.default, casing2); + } else { + if (typeof column11.default === "string") { + columnToSet.default = `'${column11.default}'`; + } else { + if (sqlTypeLowered === "json") { + columnToSet.default = `'${JSON.stringify(column11.default)}'`; + } else if (column11.default instanceof Date) { + if (sqlTypeLowered === "date") { + columnToSet.default = `'${column11.default.toISOString().split("T")[0]}'`; + } else if (sqlTypeLowered.startsWith("datetime") || sqlTypeLowered.startsWith("timestamp")) { + columnToSet.default = `'${column11.default.toISOString().replace("T", " ").slice(0, 23)}'`; + } + } else { + columnToSet.default = column11.default; + } + } + if (["blob", "text", "json"].includes(column11.getSQLType())) { + columnToSet.default = `(${columnToSet.default})`; + } + } + } + columnsObject[column11.name] = columnToSet; + } + } + resultViews[name] = { + columns: columnsObject, + name, + isExisting, + definition: isExisting ? void 0 : dialect6.sqlToQuery(query).sql, + withCheckOption, + algorithm: algorithm ?? "undefined", + // set default values + sqlSecurity: sqlSecurity ?? "definer" + // set default values + }; + } + return { + version: "5", + dialect: "mysql", + tables: result, + views: resultViews, + _meta: { + tables: {}, + columns: {} + }, + internal + }; + }; + fromDatabase = async (db, inputSchema, tablesFilter = (table6) => true, progressCallback) => { + const result = {}; + const internals = { tables: {}, indexes: {} }; + const columns = await db.query(`select * from information_schema.columns + where table_schema = '${inputSchema}' and table_name != '__drizzle_migrations' + order by table_name, ordinal_position;`); + const response = columns; + const schemas = []; + let columnsCount = 0; + let tablesCount = /* @__PURE__ */ new Set(); + let indexesCount = 0; + let foreignKeysCount = 0; + let checksCount = 0; + let viewsCount = 0; + const idxs = await db.query( + `select * from INFORMATION_SCHEMA.STATISTICS + WHERE INFORMATION_SCHEMA.STATISTICS.TABLE_SCHEMA = '${inputSchema}' and INFORMATION_SCHEMA.STATISTICS.INDEX_NAME != 'PRIMARY';` + ); + const idxRows = idxs; + for (const column11 of response) { + if (!tablesFilter(column11["TABLE_NAME"])) continue; + columnsCount += 1; + if (progressCallback) { + progressCallback("columns", columnsCount, "fetching"); + } + const schema6 = column11["TABLE_SCHEMA"]; + const tableName = column11["TABLE_NAME"]; + tablesCount.add(`${schema6}.${tableName}`); + if (progressCallback) { + progressCallback("columns", tablesCount.size, "fetching"); + } + const columnName = column11["COLUMN_NAME"]; + const isNullable = column11["IS_NULLABLE"] === "YES"; + const dataType = column11["DATA_TYPE"]; + const columnType = column11["COLUMN_TYPE"]; + const isPrimary = column11["COLUMN_KEY"] === "PRI"; + const columnDefault = column11["COLUMN_DEFAULT"]; + const collation = column11["CHARACTER_SET_NAME"]; + const geenratedExpression = column11["GENERATION_EXPRESSION"]; + let columnExtra = column11["EXTRA"]; + let isAutoincrement = false; + let isDefaultAnExpression = false; + if (typeof column11["EXTRA"] !== "undefined") { + columnExtra = column11["EXTRA"]; + isAutoincrement = column11["EXTRA"] === "auto_increment"; + isDefaultAnExpression = column11["EXTRA"].includes("DEFAULT_GENERATED"); + } + if (schema6 !== inputSchema) { + schemas.push(schema6); + } + const table6 = result[tableName]; + let changedType = columnType; + if (columnType === "bigint unsigned" && !isNullable && isAutoincrement) { + const uniqueIdx = idxRows.filter( + (it) => it["COLUMN_NAME"] === columnName && it["TABLE_NAME"] === tableName && it["NON_UNIQUE"] === 0 + ); + if (uniqueIdx && uniqueIdx.length === 1) { + changedType = columnType.replace("bigint unsigned", "serial"); + } + } + if (columnType.includes("decimal(10,0)")) { + changedType = columnType.replace("decimal(10,0)", "decimal"); + } + let onUpdate = void 0; + if (columnType.startsWith("timestamp") && typeof columnExtra !== "undefined" && columnExtra.includes("on update CURRENT_TIMESTAMP")) { + onUpdate = true; + } + const newColumn = { + default: columnDefault === null || columnDefault === void 0 ? void 0 : /^-?[\d.]+(?:e-?\d+)?$/.test(columnDefault) && !["decimal", "char", "varchar"].some((type) => columnType.startsWith(type)) ? Number(columnDefault) : isDefaultAnExpression ? clearDefaults(columnDefault, collation) : `'${escapeSingleQuotes(columnDefault)}'`, + autoincrement: isAutoincrement, + name: columnName, + type: changedType, + primaryKey: false, + notNull: !isNullable, + onUpdate, + generated: geenratedExpression ? { + as: geenratedExpression, + type: columnExtra === "VIRTUAL GENERATED" ? "virtual" : "stored" + } : void 0 + }; + if (isDefaultAnExpression) { + if (typeof internals.tables[tableName] === "undefined") { + internals.tables[tableName] = { + columns: { + [columnName]: { + isDefaultAnExpression: true + } + } + }; + } else { + if (typeof internals.tables[tableName].columns[columnName] === "undefined") { + internals.tables[tableName].columns[columnName] = { + isDefaultAnExpression: true + }; + } else { + internals.tables[tableName].columns[columnName].isDefaultAnExpression = true; + } + } + } + if (!table6) { + result[tableName] = { + name: tableName, + columns: { + [columnName]: newColumn + }, + compositePrimaryKeys: {}, + indexes: {}, + foreignKeys: {}, + uniqueConstraints: {}, + checkConstraint: {} + }; + } else { + result[tableName].columns[columnName] = newColumn; + } + } + const tablePks = await db.query( + `SELECT table_name, column_name, ordinal_position + FROM information_schema.table_constraints t + LEFT JOIN information_schema.key_column_usage k + USING(constraint_name,table_schema,table_name) + WHERE t.constraint_type='PRIMARY KEY' + and table_name != '__drizzle_migrations' + AND t.table_schema = '${inputSchema}' + ORDER BY ordinal_position` + ); + const tableToPk = {}; + const tableToPkRows = tablePks; + for (const tableToPkRow of tableToPkRows) { + const tableName = tableToPkRow["TABLE_NAME"]; + const columnName = tableToPkRow["COLUMN_NAME"]; + const position = tableToPkRow["ordinal_position"]; + if (typeof result[tableName] === "undefined") { + continue; + } + if (typeof tableToPk[tableName] === "undefined") { + tableToPk[tableName] = [columnName]; + } else { + tableToPk[tableName].push(columnName); + } + } + for (const [key, value] of Object.entries(tableToPk)) { + result[key].compositePrimaryKeys = { + [`${key}_${value.join("_")}`]: { + name: `${key}_${value.join("_")}`, + columns: value + } + }; + } + if (progressCallback) { + progressCallback("columns", columnsCount, "done"); + progressCallback("tables", tablesCount.size, "done"); + } + try { + const fks = await db.query( + `SELECT + kcu.TABLE_SCHEMA, + kcu.TABLE_NAME, + kcu.CONSTRAINT_NAME, + kcu.COLUMN_NAME, + kcu.REFERENCED_TABLE_SCHEMA, + kcu.REFERENCED_TABLE_NAME, + kcu.REFERENCED_COLUMN_NAME, + rc.UPDATE_RULE, + rc.DELETE_RULE + FROM + INFORMATION_SCHEMA.KEY_COLUMN_USAGE kcu + LEFT JOIN + information_schema.referential_constraints rc + ON kcu.CONSTRAINT_NAME = rc.CONSTRAINT_NAME + WHERE kcu.TABLE_SCHEMA = '${inputSchema}' AND kcu.CONSTRAINT_NAME != 'PRIMARY' + AND kcu.REFERENCED_TABLE_NAME IS NOT NULL;` + ); + const fkRows = fks; + for (const fkRow of fkRows) { + foreignKeysCount += 1; + if (progressCallback) { + progressCallback("fks", foreignKeysCount, "fetching"); + } + const tableSchema = fkRow["TABLE_SCHEMA"]; + const tableName = fkRow["TABLE_NAME"]; + const constraintName = fkRow["CONSTRAINT_NAME"]; + const columnName = fkRow["COLUMN_NAME"]; + const refTableSchema = fkRow["REFERENCED_TABLE_SCHEMA"]; + const refTableName = fkRow["REFERENCED_TABLE_NAME"]; + const refColumnName = fkRow["REFERENCED_COLUMN_NAME"]; + const updateRule = fkRow["UPDATE_RULE"]; + const deleteRule = fkRow["DELETE_RULE"]; + const tableInResult = result[tableName]; + if (typeof tableInResult === "undefined") continue; + if (typeof tableInResult.foreignKeys[constraintName] !== "undefined") { + tableInResult.foreignKeys[constraintName].columnsFrom.push(columnName); + tableInResult.foreignKeys[constraintName].columnsTo.push( + refColumnName + ); + } else { + tableInResult.foreignKeys[constraintName] = { + name: constraintName, + tableFrom: tableName, + tableTo: refTableName, + columnsFrom: [columnName], + columnsTo: [refColumnName], + onDelete: deleteRule == null ? void 0 : deleteRule.toLowerCase(), + onUpdate: updateRule == null ? void 0 : updateRule.toLowerCase() + }; + } + tableInResult.foreignKeys[constraintName].columnsFrom = [ + ...new Set(tableInResult.foreignKeys[constraintName].columnsFrom) + ]; + tableInResult.foreignKeys[constraintName].columnsTo = [ + ...new Set(tableInResult.foreignKeys[constraintName].columnsTo) + ]; + } + } catch (e4) { + } + if (progressCallback) { + progressCallback("fks", foreignKeysCount, "done"); + } + for (const idxRow of idxRows) { + const tableSchema = idxRow["TABLE_SCHEMA"]; + const tableName = idxRow["TABLE_NAME"]; + const constraintName = idxRow["INDEX_NAME"]; + const columnName = idxRow["COLUMN_NAME"]; + const isUnique = idxRow["NON_UNIQUE"] === 0; + const tableInResult = result[tableName]; + if (typeof tableInResult === "undefined") continue; + indexesCount += 1; + if (progressCallback) { + progressCallback("indexes", indexesCount, "fetching"); + } + if (isUnique) { + if (typeof tableInResult.uniqueConstraints[constraintName] !== "undefined") { + tableInResult.uniqueConstraints[constraintName].columns.push( + columnName + ); + } else { + tableInResult.uniqueConstraints[constraintName] = { + name: constraintName, + columns: [columnName] + }; + } + } else { + if (typeof tableInResult.foreignKeys[constraintName] === "undefined") { + if (typeof tableInResult.indexes[constraintName] !== "undefined") { + tableInResult.indexes[constraintName].columns.push(columnName); + } else { + tableInResult.indexes[constraintName] = { + name: constraintName, + columns: [columnName], + isUnique + }; + } + } + } + } + const views = await db.query( + `select * from INFORMATION_SCHEMA.VIEWS WHERE table_schema = '${inputSchema}';` + ); + const resultViews = {}; + viewsCount = views.length; + if (progressCallback) { + progressCallback("views", viewsCount, "fetching"); + } + for await (const view5 of views) { + const viewName = view5["TABLE_NAME"]; + const definition = view5["VIEW_DEFINITION"]; + const withCheckOption = view5["CHECK_OPTION"] === "NONE" ? void 0 : view5["CHECK_OPTION"].toLowerCase(); + const sqlSecurity = view5["SECURITY_TYPE"].toLowerCase(); + const [createSqlStatement] = await db.query(`SHOW CREATE VIEW \`${viewName}\`;`); + const algorithmMatch = createSqlStatement["Create View"].match(/ALGORITHM=([^ ]+)/); + const algorithm = algorithmMatch ? algorithmMatch[1].toLowerCase() : void 0; + const columns2 = result[viewName].columns; + delete result[viewName]; + resultViews[viewName] = { + columns: columns2, + isExisting: false, + name: viewName, + algorithm, + definition, + sqlSecurity, + withCheckOption + }; + } + if (progressCallback) { + progressCallback("indexes", indexesCount, "done"); + progressCallback("enums", 0, "done"); + progressCallback("views", viewsCount, "done"); + } + const checkConstraints = await db.query( + `SELECT + tc.table_name, + tc.constraint_name, + cc.check_clause +FROM + information_schema.table_constraints tc +JOIN + information_schema.check_constraints cc + ON tc.constraint_name = cc.constraint_name +WHERE + tc.constraint_schema = '${inputSchema}' +AND + tc.constraint_type = 'CHECK';` + ); + checksCount += checkConstraints.length; + if (progressCallback) { + progressCallback("checks", checksCount, "fetching"); + } + for (const checkConstraintRow of checkConstraints) { + const constraintName = checkConstraintRow["CONSTRAINT_NAME"]; + const constraintValue = checkConstraintRow["CHECK_CLAUSE"]; + const tableName = checkConstraintRow["TABLE_NAME"]; + const tableInResult = result[tableName]; + tableInResult.checkConstraint[constraintName] = { + name: constraintName, + value: constraintValue + }; + } + if (progressCallback) { + progressCallback("checks", checksCount, "done"); + } + return { + version: "5", + dialect: "mysql", + tables: result, + views: resultViews, + _meta: { + tables: {}, + columns: {} + }, + internal: internals + }; + }; + } +}); + +// src/serializer/pgImports.ts +var pgImports_exports = {}; +__export(pgImports_exports, { + prepareFromExports: () => prepareFromExports2, + prepareFromPgImports: () => prepareFromPgImports +}); +var import_drizzle_orm3, import_pg_core, import_relations, prepareFromExports2, prepareFromPgImports; +var init_pgImports = __esm({ + "src/serializer/pgImports.ts"() { + "use strict"; + import_drizzle_orm3 = require("drizzle-orm"); + import_pg_core = require("drizzle-orm/pg-core"); + import_relations = require("drizzle-orm/relations"); + init_utils3(); + prepareFromExports2 = (exports2) => { + const tables = []; + const enums = []; + const schemas = []; + const sequences = []; + const roles = []; + const policies = []; + const views = []; + const matViews = []; + const relations5 = []; + const i0values = Object.values(exports2); + i0values.forEach((t4) => { + if ((0, import_pg_core.isPgEnum)(t4)) { + enums.push(t4); + return; + } + if ((0, import_drizzle_orm3.is)(t4, import_pg_core.PgTable)) { + tables.push(t4); + } + if ((0, import_drizzle_orm3.is)(t4, import_pg_core.PgSchema)) { + schemas.push(t4); + } + if ((0, import_pg_core.isPgView)(t4)) { + views.push(t4); + } + if ((0, import_pg_core.isPgMaterializedView)(t4)) { + matViews.push(t4); + } + if ((0, import_pg_core.isPgSequence)(t4)) { + sequences.push(t4); + } + if ((0, import_drizzle_orm3.is)(t4, import_pg_core.PgRole)) { + roles.push(t4); + } + if ((0, import_drizzle_orm3.is)(t4, import_pg_core.PgPolicy)) { + policies.push(t4); + } + if ((0, import_drizzle_orm3.is)(t4, import_relations.Relations)) { + relations5.push(t4); + } + }); + return { tables, enums, schemas, sequences, views, matViews, roles, policies, relations: relations5 }; + }; + prepareFromPgImports = async (imports) => { + const tables = []; + const enums = []; + const schemas = []; + const sequences = []; + const views = []; + const roles = []; + const policies = []; + const matViews = []; + const relations5 = []; + await safeRegister(async () => { + for (let i4 = 0; i4 < imports.length; i4++) { + const it = imports[i4]; + const i0 = require(`${it}`); + const prepared = prepareFromExports2(i0); + tables.push(...prepared.tables); + enums.push(...prepared.enums); + schemas.push(...prepared.schemas); + sequences.push(...prepared.sequences); + views.push(...prepared.views); + matViews.push(...prepared.matViews); + roles.push(...prepared.roles); + policies.push(...prepared.policies); + relations5.push(...prepared.relations); + } + }); + return { + tables: Array.from(new Set(tables)), + enums, + schemas, + sequences, + views, + matViews, + roles, + policies, + relations: relations5 + }; + }; + } +}); + +// src/extensions/vector.ts +var vectorOps; +var init_vector = __esm({ + "src/extensions/vector.ts"() { + "use strict"; + vectorOps = [ + "vector_l2_ops", + "vector_ip_ops", + "vector_cosine_ops", + "vector_l1_ops", + "bit_hamming_ops", + "bit_jaccard_ops", + "halfvec_l2_ops", + "sparsevec_l2_ops" + ]; + } +}); + +// src/serializer/pgSerializer.ts +var pgSerializer_exports = {}; +__export(pgSerializer_exports, { + buildArrayString: () => buildArrayString, + fromDatabase: () => fromDatabase2, + generatePgSnapshot: () => generatePgSnapshot, + indexName: () => indexName2 +}); +function stringFromIdentityProperty(field) { + return typeof field === "string" ? field : typeof field === "undefined" ? void 0 : String(field); +} +function maxRangeForIdentityBasedOn(columnType) { + return columnType === "integer" ? "2147483647" : columnType === "bigint" ? "9223372036854775807" : "32767"; +} +function minRangeForIdentityBasedOn(columnType) { + return columnType === "integer" ? "-2147483648" : columnType === "bigint" ? "-9223372036854775808" : "-32768"; +} +function stringFromDatabaseIdentityProperty(field) { + return typeof field === "string" ? field : typeof field === "undefined" ? void 0 : typeof field === "bigint" ? field.toString() : String(field); +} +function buildArrayString(array2, sqlType) { + sqlType = sqlType.split("[")[0]; + const values = array2.map((value) => { + if (typeof value === "number" || typeof value === "bigint") { + return value.toString(); + } else if (typeof value === "boolean") { + return value ? "true" : "false"; + } else if (Array.isArray(value)) { + return buildArrayString(value, sqlType); + } else if (value instanceof Date) { + if (sqlType === "date") { + return `"${value.toISOString().split("T")[0]}"`; + } else if (sqlType === "timestamp") { + return `"${value.toISOString().replace("T", " ").slice(0, 23)}"`; + } else { + return `"${value.toISOString()}"`; + } + } else if (typeof value === "object") { + return `"${JSON.stringify(value).replaceAll('"', '\\"')}"`; + } + return `"${value}"`; + }).join(","); + return `{${values}}`; +} +function prepareRoles(entities) { + let useRoles = false; + const includeRoles = []; + const excludeRoles = []; + if (entities && entities.roles) { + if (typeof entities.roles === "object") { + if (entities.roles.provider) { + if (entities.roles.provider === "supabase") { + excludeRoles.push(...[ + "anon", + "authenticator", + "authenticated", + "service_role", + "supabase_auth_admin", + "supabase_storage_admin", + "dashboard_user", + "supabase_admin" + ]); + } else if (entities.roles.provider === "neon") { + excludeRoles.push(...["authenticated", "anonymous"]); + } + } + if (entities.roles.include) { + includeRoles.push(...entities.roles.include); + } + if (entities.roles.exclude) { + excludeRoles.push(...entities.roles.exclude); + } + } else { + useRoles = entities.roles; + } + } + return { useRoles, includeRoles, excludeRoles }; +} +var import_drizzle_orm4, import_pg_core2, indexName2, generatePgSnapshot, trimChar, fromDatabase2, defaultForColumn, getColumnsInfoQuery; +var init_pgSerializer = __esm({ + "src/serializer/pgSerializer.ts"() { + "use strict"; + init_source(); + import_drizzle_orm4 = require("drizzle-orm"); + import_pg_core2 = require("drizzle-orm/pg-core"); + init_vector(); + init_outputs(); + init_utils2(); + init_utils4(); + indexName2 = (tableName, columns) => { + return `${tableName}_${columns.join("_")}_index`; + }; + generatePgSnapshot = (tables, enums, schemas, sequences, roles, policies, views, matViews, casing2, schemaFilter) => { + var _a2, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m2, _n, _o; + const dialect6 = new import_pg_core2.PgDialect({ casing: casing2 }); + const result = {}; + const resultViews = {}; + const sequencesToReturn = {}; + const rolesToReturn = {}; + const policiesToReturn = {}; + const indexesInSchema = {}; + for (const table6 of tables) { + const checksInTable = {}; + const { + name: tableName, + columns, + indexes, + foreignKeys, + checks, + schema: schema6, + primaryKeys, + uniqueConstraints, + policies: policies2, + enableRLS + } = (0, import_pg_core2.getTableConfig)(table6); + if (schemaFilter && !schemaFilter.includes(schema6 ?? "public")) { + continue; + } + const columnsObject = {}; + const indexesObject = {}; + const checksObject = {}; + const foreignKeysObject = {}; + const primaryKeysObject = {}; + const uniqueConstraintObject = {}; + const policiesObject = {}; + columns.forEach((column11) => { + var _a3, _b2, _c2, _d2, _e2, _f2; + const name = getColumnCasing(column11, casing2); + const notNull = column11.notNull; + const primaryKey = column11.primary; + const sqlTypeLowered = column11.getSQLType().toLowerCase(); + const getEnumSchema = (column12) => { + while ((0, import_drizzle_orm4.is)(column12, import_pg_core2.PgArray)) { + column12 = column12.baseColumn; + } + return (0, import_drizzle_orm4.is)(column12, import_pg_core2.PgEnumColumn) ? column12.enum.schema || "public" : void 0; + }; + const typeSchema = getEnumSchema(column11); + const generated = column11.generated; + const identity = column11.generatedIdentity; + const increment = stringFromIdentityProperty((_a3 = identity == null ? void 0 : identity.sequenceOptions) == null ? void 0 : _a3.increment) ?? "1"; + const minValue = stringFromIdentityProperty((_b2 = identity == null ? void 0 : identity.sequenceOptions) == null ? void 0 : _b2.minValue) ?? (parseFloat(increment) < 0 ? minRangeForIdentityBasedOn(column11.columnType) : "1"); + const maxValue = stringFromIdentityProperty((_c2 = identity == null ? void 0 : identity.sequenceOptions) == null ? void 0 : _c2.maxValue) ?? (parseFloat(increment) < 0 ? "-1" : maxRangeForIdentityBasedOn(column11.getSQLType())); + const startWith = stringFromIdentityProperty((_d2 = identity == null ? void 0 : identity.sequenceOptions) == null ? void 0 : _d2.startWith) ?? (parseFloat(increment) < 0 ? maxValue : minValue); + const cache3 = stringFromIdentityProperty((_e2 = identity == null ? void 0 : identity.sequenceOptions) == null ? void 0 : _e2.cache) ?? "1"; + const columnToSet = { + name, + type: column11.getSQLType(), + typeSchema, + primaryKey, + notNull, + generated: generated ? { + as: (0, import_drizzle_orm4.is)(generated.as, import_drizzle_orm4.SQL) ? dialect6.sqlToQuery(generated.as).sql : typeof generated.as === "function" ? dialect6.sqlToQuery(generated.as()).sql : generated.as, + type: "stored" + } : void 0, + identity: identity ? { + type: identity.type, + name: identity.sequenceName ?? `${tableName}_${name}_seq`, + schema: schema6 ?? "public", + increment, + startWith, + minValue, + maxValue, + cache: cache3, + cycle: ((_f2 = identity == null ? void 0 : identity.sequenceOptions) == null ? void 0 : _f2.cycle) ?? false + } : void 0 + }; + if (column11.isUnique) { + const existingUnique = uniqueConstraintObject[column11.uniqueName]; + if (typeof existingUnique !== "undefined") { + console.log( + ` +${withStyle.errorWarning(`We've found duplicated unique constraint names in ${source_default.underline.blue( + tableName + )} table. + The unique constraint ${source_default.underline.blue( + column11.uniqueName + )} on the ${source_default.underline.blue( + name + )} column is conflicting with a unique constraint name already defined for ${source_default.underline.blue( + existingUnique.columns.join(",") + )} columns +`)}` + ); + process.exit(1); + } + uniqueConstraintObject[column11.uniqueName] = { + name: column11.uniqueName, + nullsNotDistinct: column11.uniqueType === "not distinct", + columns: [columnToSet.name] + }; + } + if (column11.default !== void 0) { + if ((0, import_drizzle_orm4.is)(column11.default, import_drizzle_orm4.SQL)) { + columnToSet.default = sqlToStr(column11.default, casing2); + } else { + if (typeof column11.default === "string") { + columnToSet.default = `'${escapeSingleQuotes(column11.default)}'`; + } else { + if (sqlTypeLowered === "jsonb" || sqlTypeLowered === "json") { + columnToSet.default = `'${JSON.stringify(column11.default)}'::${sqlTypeLowered}`; + } else if (column11.default instanceof Date) { + if (sqlTypeLowered === "date") { + columnToSet.default = `'${column11.default.toISOString().split("T")[0]}'`; + } else if (sqlTypeLowered === "timestamp") { + columnToSet.default = `'${column11.default.toISOString().replace("T", " ").slice(0, 23)}'`; + } else { + columnToSet.default = `'${column11.default.toISOString()}'`; + } + } else if (isPgArrayType(sqlTypeLowered) && Array.isArray(column11.default)) { + columnToSet.default = `'${buildArrayString(column11.default, sqlTypeLowered)}'`; + } else { + columnToSet.default = column11.default; + } + } + } + } + columnsObject[name] = columnToSet; + }); + primaryKeys.map((pk) => { + const originalColumnNames = pk.columns.map((c3) => c3.name); + const columnNames = pk.columns.map((c3) => getColumnCasing(c3, casing2)); + let name = pk.getName(); + if (casing2 !== void 0) { + for (let i4 = 0; i4 < originalColumnNames.length; i4++) { + name = name.replace(originalColumnNames[i4], columnNames[i4]); + } + } + primaryKeysObject[name] = { + name, + columns: columnNames + }; + }); + uniqueConstraints == null ? void 0 : uniqueConstraints.map((unq) => { + const columnNames = unq.columns.map((c3) => getColumnCasing(c3, casing2)); + const name = unq.name ?? (0, import_pg_core2.uniqueKeyName)(table6, columnNames); + const existingUnique = uniqueConstraintObject[name]; + if (typeof existingUnique !== "undefined") { + console.log( + ` +${withStyle.errorWarning( + `We've found duplicated unique constraint names in ${source_default.underline.blue(tableName)} table. + The unique constraint ${source_default.underline.blue(name)} on the ${source_default.underline.blue( + columnNames.join(",") + )} columns is confilcting with a unique constraint name already defined for ${source_default.underline.blue(existingUnique.columns.join(","))} columns +` + )}` + ); + process.exit(1); + } + uniqueConstraintObject[name] = { + name: unq.name, + nullsNotDistinct: unq.nullsNotDistinct, + columns: columnNames + }; + }); + const fks = foreignKeys.map((fk5) => { + const tableFrom = tableName; + const onDelete = fk5.onDelete; + const onUpdate = fk5.onUpdate; + const reference = fk5.reference(); + const tableTo = (0, import_drizzle_orm4.getTableName)(reference.foreignTable); + const schemaTo = (0, import_pg_core2.getTableConfig)(reference.foreignTable).schema; + const originalColumnsFrom = reference.columns.map((it) => it.name); + const columnsFrom = reference.columns.map((it) => getColumnCasing(it, casing2)); + const originalColumnsTo = reference.foreignColumns.map((it) => it.name); + const columnsTo = reference.foreignColumns.map((it) => getColumnCasing(it, casing2)); + let name = fk5.getName(); + if (casing2 !== void 0) { + for (let i4 = 0; i4 < originalColumnsFrom.length; i4++) { + name = name.replace(originalColumnsFrom[i4], columnsFrom[i4]); + } + for (let i4 = 0; i4 < originalColumnsTo.length; i4++) { + name = name.replace(originalColumnsTo[i4], columnsTo[i4]); + } + } + return { + name, + tableFrom, + tableTo, + schemaTo, + columnsFrom, + columnsTo, + onDelete, + onUpdate + }; + }); + fks.forEach((it) => { + foreignKeysObject[it.name] = it; + }); + indexes.forEach((value) => { + const columns2 = value.config.columns; + let indexColumnNames = []; + columns2.forEach((it) => { + if ((0, import_drizzle_orm4.is)(it, import_drizzle_orm4.SQL)) { + if (typeof value.config.name === "undefined") { + console.log( + ` +${withStyle.errorWarning( + `Please specify an index name in ${(0, import_drizzle_orm4.getTableName)(value.config.table)} table that has "${dialect6.sqlToQuery(it).sql}" expression. We can generate index names for indexes on columns only; for expressions in indexes, you need to specify the name yourself.` + )}` + ); + process.exit(1); + } + } + it = it; + const name2 = getColumnCasing(it, casing2); + if (!(0, import_drizzle_orm4.is)(it, import_drizzle_orm4.SQL) && it.type === "PgVector" && typeof it.indexConfig.opClass === "undefined") { + console.log( + ` +${withStyle.errorWarning( + `You are specifying an index on the ${source_default.blueBright( + name2 + )} column inside the ${source_default.blueBright( + tableName + )} table with the ${source_default.blueBright( + "vector" + )} type without specifying an operator class. Vector extension doesn't have a default operator class, so you need to specify one of the available options. Here is a list of available op classes for the vector extension: [${vectorOps.map((it2) => `${source_default.underline(`${it2}`)}`).join(", ")}]. + +You can specify it using current syntax: ${source_default.underline( + `index("${value.config.name}").using("${value.config.method}", table.${name2}.op("${vectorOps[0]}"))` + )} + +You can check the "pg_vector" docs for more info: https://github.com/pgvector/pgvector?tab=readme-ov-file#indexing +` + )}` + ); + process.exit(1); + } + indexColumnNames.push(name2); + }); + const name = value.config.name ? value.config.name : indexName2(tableName, indexColumnNames); + let indexColumns = columns2.map( + (it) => { + var _a3, _b2, _c2, _d2, _e2; + if ((0, import_drizzle_orm4.is)(it, import_drizzle_orm4.SQL)) { + return { + expression: dialect6.sqlToQuery(it, "indexes").sql, + asc: true, + isExpression: true, + nulls: "last" + }; + } else { + it = it; + return { + expression: getColumnCasing(it, casing2), + isExpression: false, + asc: ((_a3 = it.indexConfig) == null ? void 0 : _a3.order) === "asc", + nulls: ((_b2 = it.indexConfig) == null ? void 0 : _b2.nulls) ? (_c2 = it.indexConfig) == null ? void 0 : _c2.nulls : ((_d2 = it.indexConfig) == null ? void 0 : _d2.order) === "desc" ? "first" : "last", + opclass: (_e2 = it.indexConfig) == null ? void 0 : _e2.opClass + }; + } + } + ); + if (typeof indexesInSchema[schema6 ?? "public"] !== "undefined") { + if (indexesInSchema[schema6 ?? "public"].includes(name)) { + console.log( + ` +${withStyle.errorWarning( + `We've found duplicated index name across ${source_default.underline.blue(schema6 ?? "public")} schema. Please rename your index in either the ${source_default.underline.blue( + tableName + )} table or the table with the duplicated index name` + )}` + ); + process.exit(1); + } + indexesInSchema[schema6 ?? "public"].push(name); + } else { + indexesInSchema[schema6 ?? "public"] = [name]; + } + indexesObject[name] = { + name, + columns: indexColumns, + isUnique: value.config.unique ?? false, + where: value.config.where ? dialect6.sqlToQuery(value.config.where).sql : void 0, + concurrently: value.config.concurrently ?? false, + method: value.config.method ?? "btree", + with: value.config.with ?? {} + }; + }); + policies2.forEach((policy5) => { + var _a3, _b2; + const mappedTo = []; + if (!policy5.to) { + mappedTo.push("public"); + } else { + if (policy5.to && typeof policy5.to === "string") { + mappedTo.push(policy5.to); + } else if (policy5.to && (0, import_drizzle_orm4.is)(policy5.to, import_pg_core2.PgRole)) { + mappedTo.push(policy5.to.name); + } else if (policy5.to && Array.isArray(policy5.to)) { + policy5.to.forEach((it) => { + if (typeof it === "string") { + mappedTo.push(it); + } else if ((0, import_drizzle_orm4.is)(it, import_pg_core2.PgRole)) { + mappedTo.push(it.name); + } + }); + } + } + if (policiesObject[policy5.name] !== void 0) { + console.log( + ` +${withStyle.errorWarning( + `We've found duplicated policy name across ${source_default.underline.blue(tableKey2)} table. Please rename one of the policies with ${source_default.underline.blue( + policy5.name + )} name` + )}` + ); + process.exit(1); + } + policiesObject[policy5.name] = { + name: policy5.name, + as: ((_a3 = policy5.as) == null ? void 0 : _a3.toUpperCase()) ?? "PERMISSIVE", + for: ((_b2 = policy5.for) == null ? void 0 : _b2.toUpperCase()) ?? "ALL", + to: mappedTo.sort(), + using: (0, import_drizzle_orm4.is)(policy5.using, import_drizzle_orm4.SQL) ? dialect6.sqlToQuery(policy5.using).sql : void 0, + withCheck: (0, import_drizzle_orm4.is)(policy5.withCheck, import_drizzle_orm4.SQL) ? dialect6.sqlToQuery(policy5.withCheck).sql : void 0 + }; + }); + checks.forEach((check2) => { + const checkName = check2.name; + if (typeof checksInTable[`"${schema6 ?? "public"}"."${tableName}"`] !== "undefined") { + if (checksInTable[`"${schema6 ?? "public"}"."${tableName}"`].includes(check2.name)) { + console.log( + ` +${withStyle.errorWarning( + `We've found duplicated check constraint name across ${source_default.underline.blue( + schema6 ?? "public" + )} schema in ${source_default.underline.blue( + tableName + )}. Please rename your check constraint in either the ${source_default.underline.blue( + tableName + )} table or the table with the duplicated check contraint name` + )}` + ); + process.exit(1); + } + checksInTable[`"${schema6 ?? "public"}"."${tableName}"`].push(checkName); + } else { + checksInTable[`"${schema6 ?? "public"}"."${tableName}"`] = [check2.name]; + } + checksObject[checkName] = { + name: checkName, + value: dialect6.sqlToQuery(check2.value).sql + }; + }); + const tableKey2 = `${schema6 ?? "public"}.${tableName}`; + result[tableKey2] = { + name: tableName, + schema: schema6 ?? "", + columns: columnsObject, + indexes: indexesObject, + foreignKeys: foreignKeysObject, + compositePrimaryKeys: primaryKeysObject, + uniqueConstraints: uniqueConstraintObject, + policies: policiesObject, + checkConstraints: checksObject, + isRLSEnabled: enableRLS + }; + } + for (const policy5 of policies) { + if (!policy5._linkedTable) { + console.log( + ` +${withStyle.errorWarning( + `"Policy ${policy5.name} was skipped because it was not linked to any table. You should either include the policy in a table or use .link() on the policy to link it to any table you have. For more information, please check:` + )}` + ); + continue; + } + const tableConfig = (0, import_pg_core2.getTableConfig)(policy5._linkedTable); + const tableKey2 = `${tableConfig.schema ?? "public"}.${tableConfig.name}`; + const mappedTo = []; + if (!policy5.to) { + mappedTo.push("public"); + } else { + if (policy5.to && typeof policy5.to === "string") { + mappedTo.push(policy5.to); + } else if (policy5.to && (0, import_drizzle_orm4.is)(policy5.to, import_pg_core2.PgRole)) { + mappedTo.push(policy5.to.name); + } else if (policy5.to && Array.isArray(policy5.to)) { + policy5.to.forEach((it) => { + if (typeof it === "string") { + mappedTo.push(it); + } else if ((0, import_drizzle_orm4.is)(it, import_pg_core2.PgRole)) { + mappedTo.push(it.name); + } + }); + } + } + if (((_a2 = result[tableKey2]) == null ? void 0 : _a2.policies[policy5.name]) !== void 0 || policiesToReturn[policy5.name] !== void 0) { + console.log( + ` +${withStyle.errorWarning( + `We've found duplicated policy name across ${source_default.underline.blue(tableKey2)} table. Please rename one of the policies with ${source_default.underline.blue( + policy5.name + )} name` + )}` + ); + process.exit(1); + } + const mappedPolicy = { + name: policy5.name, + as: ((_b = policy5.as) == null ? void 0 : _b.toUpperCase()) ?? "PERMISSIVE", + for: ((_c = policy5.for) == null ? void 0 : _c.toUpperCase()) ?? "ALL", + to: mappedTo.sort(), + using: (0, import_drizzle_orm4.is)(policy5.using, import_drizzle_orm4.SQL) ? dialect6.sqlToQuery(policy5.using).sql : void 0, + withCheck: (0, import_drizzle_orm4.is)(policy5.withCheck, import_drizzle_orm4.SQL) ? dialect6.sqlToQuery(policy5.withCheck).sql : void 0 + }; + if (result[tableKey2]) { + result[tableKey2].policies[policy5.name] = mappedPolicy; + } else { + policiesToReturn[policy5.name] = { + ...mappedPolicy, + schema: tableConfig.schema ?? "public", + on: `"${tableConfig.schema ?? "public"}"."${tableConfig.name}"` + }; + } + } + for (const sequence of sequences) { + const name = sequence.seqName; + if (typeof sequencesToReturn[`${sequence.schema ?? "public"}.${name}`] === "undefined") { + const increment = stringFromIdentityProperty((_d = sequence == null ? void 0 : sequence.seqOptions) == null ? void 0 : _d.increment) ?? "1"; + const minValue = stringFromIdentityProperty((_e = sequence == null ? void 0 : sequence.seqOptions) == null ? void 0 : _e.minValue) ?? (parseFloat(increment) < 0 ? "-9223372036854775808" : "1"); + const maxValue = stringFromIdentityProperty((_f = sequence == null ? void 0 : sequence.seqOptions) == null ? void 0 : _f.maxValue) ?? (parseFloat(increment) < 0 ? "-1" : "9223372036854775807"); + const startWith = stringFromIdentityProperty((_g = sequence == null ? void 0 : sequence.seqOptions) == null ? void 0 : _g.startWith) ?? (parseFloat(increment) < 0 ? maxValue : minValue); + const cache3 = stringFromIdentityProperty((_h = sequence == null ? void 0 : sequence.seqOptions) == null ? void 0 : _h.cache) ?? "1"; + sequencesToReturn[`${sequence.schema ?? "public"}.${name}`] = { + name, + schema: sequence.schema ?? "public", + increment, + startWith, + minValue, + maxValue, + cache: cache3, + cycle: ((_i = sequence.seqOptions) == null ? void 0 : _i.cycle) ?? false + }; + } else { + } + } + for (const role of roles) { + if (!role._existing) { + rolesToReturn[role.name] = { + name: role.name, + createDb: role.createDb === void 0 ? false : role.createDb, + createRole: role.createRole === void 0 ? false : role.createRole, + inherit: role.inherit === void 0 ? true : role.inherit + }; + } + } + const combinedViews = [...views, ...matViews]; + for (const view5 of combinedViews) { + let viewName; + let schema6; + let query; + let selectedFields; + let isExisting; + let withOption; + let tablespace; + let using; + let withNoData; + let materialized = false; + if ((0, import_drizzle_orm4.is)(view5, import_pg_core2.PgView)) { + ({ name: viewName, schema: schema6, query, selectedFields, isExisting, with: withOption } = (0, import_pg_core2.getViewConfig)(view5)); + } else { + ({ name: viewName, schema: schema6, query, selectedFields, isExisting, with: withOption, tablespace, using, withNoData } = (0, import_pg_core2.getMaterializedViewConfig)(view5)); + materialized = true; + } + const viewSchema = schema6 ?? "public"; + const viewKey = `${viewSchema}.${viewName}`; + const columnsObject = {}; + const uniqueConstraintObject = {}; + const existingView = resultViews[viewKey]; + if (typeof existingView !== "undefined") { + console.log( + ` +${withStyle.errorWarning( + `We've found duplicated view name across ${source_default.underline.blue(schema6 ?? "public")} schema. Please rename your view` + )}` + ); + process.exit(1); + } + for (const key in selectedFields) { + if ((0, import_drizzle_orm4.is)(selectedFields[key], import_pg_core2.PgColumn)) { + const column11 = selectedFields[key]; + const notNull = column11.notNull; + const primaryKey = column11.primary; + const sqlTypeLowered = column11.getSQLType().toLowerCase(); + const typeSchema = (0, import_drizzle_orm4.is)(column11, import_pg_core2.PgEnumColumn) ? column11.enum.schema || "public" : void 0; + const generated = column11.generated; + const identity = column11.generatedIdentity; + const increment = stringFromIdentityProperty((_j = identity == null ? void 0 : identity.sequenceOptions) == null ? void 0 : _j.increment) ?? "1"; + const minValue = stringFromIdentityProperty((_k = identity == null ? void 0 : identity.sequenceOptions) == null ? void 0 : _k.minValue) ?? (parseFloat(increment) < 0 ? minRangeForIdentityBasedOn(column11.columnType) : "1"); + const maxValue = stringFromIdentityProperty((_l = identity == null ? void 0 : identity.sequenceOptions) == null ? void 0 : _l.maxValue) ?? (parseFloat(increment) < 0 ? "-1" : maxRangeForIdentityBasedOn(column11.getSQLType())); + const startWith = stringFromIdentityProperty((_m2 = identity == null ? void 0 : identity.sequenceOptions) == null ? void 0 : _m2.startWith) ?? (parseFloat(increment) < 0 ? maxValue : minValue); + const cache3 = stringFromIdentityProperty((_n = identity == null ? void 0 : identity.sequenceOptions) == null ? void 0 : _n.cache) ?? "1"; + const columnToSet = { + name: column11.name, + type: column11.getSQLType(), + typeSchema, + primaryKey, + notNull, + generated: generated ? { + as: (0, import_drizzle_orm4.is)(generated.as, import_drizzle_orm4.SQL) ? dialect6.sqlToQuery(generated.as).sql : typeof generated.as === "function" ? dialect6.sqlToQuery(generated.as()).sql : generated.as, + type: "stored" + } : void 0, + identity: identity ? { + type: identity.type, + name: identity.sequenceName ?? `${viewName}_${column11.name}_seq`, + schema: schema6 ?? "public", + increment, + startWith, + minValue, + maxValue, + cache: cache3, + cycle: ((_o = identity == null ? void 0 : identity.sequenceOptions) == null ? void 0 : _o.cycle) ?? false + } : void 0 + }; + if (column11.isUnique) { + const existingUnique = uniqueConstraintObject[column11.uniqueName]; + if (typeof existingUnique !== "undefined") { + console.log( + ` +${withStyle.errorWarning( + `We've found duplicated unique constraint names in ${source_default.underline.blue(viewName)} table. + The unique constraint ${source_default.underline.blue(column11.uniqueName)} on the ${source_default.underline.blue( + column11.name + )} column is confilcting with a unique constraint name already defined for ${source_default.underline.blue(existingUnique.columns.join(","))} columns +` + )}` + ); + process.exit(1); + } + uniqueConstraintObject[column11.uniqueName] = { + name: column11.uniqueName, + nullsNotDistinct: column11.uniqueType === "not distinct", + columns: [columnToSet.name] + }; + } + if (column11.default !== void 0) { + if ((0, import_drizzle_orm4.is)(column11.default, import_drizzle_orm4.SQL)) { + columnToSet.default = sqlToStr(column11.default, casing2); + } else { + if (typeof column11.default === "string") { + columnToSet.default = `'${column11.default}'`; + } else { + if (sqlTypeLowered === "jsonb" || sqlTypeLowered === "json") { + columnToSet.default = `'${JSON.stringify(column11.default)}'::${sqlTypeLowered}`; + } else if (column11.default instanceof Date) { + if (sqlTypeLowered === "date") { + columnToSet.default = `'${column11.default.toISOString().split("T")[0]}'`; + } else if (sqlTypeLowered === "timestamp") { + columnToSet.default = `'${column11.default.toISOString().replace("T", " ").slice(0, 23)}'`; + } else { + columnToSet.default = `'${column11.default.toISOString()}'`; + } + } else if (isPgArrayType(sqlTypeLowered) && Array.isArray(column11.default)) { + columnToSet.default = `'${buildArrayString(column11.default, sqlTypeLowered)}'`; + } else { + columnToSet.default = column11.default; + } + } + } + } + columnsObject[column11.name] = columnToSet; + } + } + resultViews[viewKey] = { + columns: columnsObject, + definition: isExisting ? void 0 : dialect6.sqlToQuery(query).sql, + name: viewName, + schema: viewSchema, + isExisting, + with: withOption, + withNoData, + materialized, + tablespace, + using + }; + } + const enumsToReturn = enums.reduce((map2, obj) => { + const enumSchema4 = obj.schema || "public"; + const key = `${enumSchema4}.${obj.enumName}`; + map2[key] = { + name: obj.enumName, + schema: enumSchema4, + values: obj.enumValues + }; + return map2; + }, {}); + const schemasObject = Object.fromEntries( + schemas.filter((it) => { + if (schemaFilter) { + return schemaFilter.includes(it.schemaName) && it.schemaName !== "public"; + } else { + return it.schemaName !== "public"; + } + }).map((it) => [it.schemaName, it.schemaName]) + ); + return { + version: "7", + dialect: "postgresql", + tables: result, + enums: enumsToReturn, + schemas: schemasObject, + sequences: sequencesToReturn, + roles: rolesToReturn, + policies: policiesToReturn, + views: resultViews, + _meta: { + schemas: {}, + tables: {}, + columns: {} + } + }; + }; + trimChar = (str, char) => { + let start = 0; + let end = str.length; + while (start < end && str[start] === char) ++start; + while (end > start && str[end - 1] === char) --end; + return start > 0 || end < str.length ? str.substring(start, end) : str.toString(); + }; + fromDatabase2 = async (db, tablesFilter = () => true, schemaFilters, entities, progressCallback, tsSchema) => { + const result = {}; + const views = {}; + const policies = {}; + const internals = { tables: {} }; + const where = schemaFilters.map((t4) => `n.nspname = '${t4}'`).join(" or "); + const allTables = await db.query( + `SELECT + n.nspname AS table_schema, + c.relname AS table_name, + CASE + WHEN c.relkind = 'r' THEN 'table' + WHEN c.relkind = 'v' THEN 'view' + WHEN c.relkind = 'm' THEN 'materialized_view' + END AS type, + c.relrowsecurity AS rls_enabled +FROM + pg_catalog.pg_class c +JOIN + pg_catalog.pg_namespace n ON n.oid = c.relnamespace +WHERE + c.relkind IN ('r', 'v', 'm') + ${where === "" ? "" : ` AND ${where}`};` + ); + const schemas = new Set(allTables.map((it) => it.table_schema)); + schemas.delete("public"); + const allSchemas = await db.query(`select s.nspname as table_schema + from pg_catalog.pg_namespace s + join pg_catalog.pg_user u on u.usesysid = s.nspowner + where nspname not in ('information_schema', 'pg_catalog', 'public') + and nspname not like 'pg_toast%' + and nspname not like 'pg_temp_%' + order by table_schema;`); + allSchemas.forEach((item) => { + if (schemaFilters.includes(item.table_schema)) { + schemas.add(item.table_schema); + } + }); + let columnsCount = 0; + let indexesCount = 0; + let foreignKeysCount = 0; + let tableCount = 0; + let checksCount = 0; + let viewsCount = 0; + const sequencesToReturn = {}; + const seqWhere = schemaFilters.map((t4) => `schemaname = '${t4}'`).join(" or "); + const allSequences = await db.query( + `select schemaname, sequencename, start_value, min_value, max_value, increment_by, cycle, cache_size from pg_sequences as seq${seqWhere === "" ? "" : ` WHERE ${seqWhere}`};` + ); + for (const dbSeq of allSequences) { + const schemaName = dbSeq.schemaname; + const sequenceName = dbSeq.sequencename; + const startValue = stringFromDatabaseIdentityProperty(dbSeq.start_value); + const minValue = stringFromDatabaseIdentityProperty(dbSeq.min_value); + const maxValue = stringFromDatabaseIdentityProperty(dbSeq.max_value); + const incrementBy = stringFromDatabaseIdentityProperty(dbSeq.increment_by); + const cycle = dbSeq.cycle; + const cacheSize = stringFromDatabaseIdentityProperty(dbSeq.cache_size); + const key = `${schemaName}.${sequenceName}`; + sequencesToReturn[key] = { + name: sequenceName, + schema: schemaName, + startWith: startValue, + minValue, + maxValue, + increment: incrementBy, + cycle, + cache: cacheSize + }; + } + const whereEnums = schemaFilters.map((t4) => `n.nspname = '${t4}'`).join(" or "); + const allEnums = await db.query( + `select n.nspname as enum_schema, + t.typname as enum_name, + e.enumlabel as enum_value, + e.enumsortorder as sort_order + from pg_type t + join pg_enum e on t.oid = e.enumtypid + join pg_catalog.pg_namespace n ON n.oid = t.typnamespace + ${whereEnums === "" ? "" : ` WHERE ${whereEnums}`} + order by enum_schema, enum_name, sort_order;` + ); + const enumsToReturn = {}; + for (const dbEnum of allEnums) { + const enumName = dbEnum.enum_name; + const enumValue = dbEnum.enum_value; + const enumSchema4 = dbEnum.enum_schema || "public"; + const key = `${enumSchema4}.${enumName}`; + if (enumsToReturn[key] !== void 0 && enumsToReturn[key] !== null) { + enumsToReturn[key].values.push(enumValue); + } else { + enumsToReturn[key] = { + name: enumName, + values: [enumValue], + schema: enumSchema4 + }; + } + } + if (progressCallback) { + progressCallback("enums", Object.keys(enumsToReturn).length, "done"); + } + const allRoles = await db.query( + `SELECT rolname, rolinherit, rolcreatedb, rolcreaterole FROM pg_roles;` + ); + const rolesToReturn = {}; + const preparedRoles = prepareRoles(entities); + if (preparedRoles.useRoles || !(preparedRoles.includeRoles.length === 0 && preparedRoles.excludeRoles.length === 0)) { + for (const dbRole of allRoles) { + if (preparedRoles.useRoles) { + rolesToReturn[dbRole.rolname] = { + createDb: dbRole.rolcreatedb, + createRole: dbRole.rolcreatedb, + inherit: dbRole.rolinherit, + name: dbRole.rolname + }; + } else { + if (preparedRoles.includeRoles.length === 0 && preparedRoles.excludeRoles.length === 0) continue; + if (preparedRoles.includeRoles.includes(dbRole.rolname) && preparedRoles.excludeRoles.includes(dbRole.rolname)) continue; + if (preparedRoles.excludeRoles.includes(dbRole.rolname)) continue; + if (!preparedRoles.includeRoles.includes(dbRole.rolname)) continue; + rolesToReturn[dbRole.rolname] = { + createDb: dbRole.rolcreatedb, + createRole: dbRole.rolcreaterole, + inherit: dbRole.rolinherit, + name: dbRole.rolname + }; + } + } + } + const schemasForLinkedPoliciesInSchema = Object.values((tsSchema == null ? void 0 : tsSchema.policies) ?? {}).map((it) => it.schema); + const wherePolicies = [...schemaFilters, ...schemasForLinkedPoliciesInSchema].map((t4) => `schemaname = '${t4}'`).join(" or "); + const policiesByTable = {}; + const allPolicies = await db.query(`SELECT schemaname, tablename, policyname as name, permissive as "as", roles as to, cmd as for, qual as using, with_check as "withCheck" FROM pg_policies${wherePolicies === "" ? "" : ` WHERE ${wherePolicies}`};`); + for (const dbPolicy of allPolicies) { + const { tablename, schemaname, to, withCheck, using, ...rest } = dbPolicy; + const tableForPolicy = policiesByTable[`${schemaname}.${tablename}`]; + const parsedTo = typeof to === "string" ? to.slice(1, -1).split(",") : to; + const parsedWithCheck = withCheck === null ? void 0 : withCheck; + const parsedUsing = using === null ? void 0 : using; + if (tableForPolicy) { + tableForPolicy[dbPolicy.name] = { ...rest, to: parsedTo }; + } else { + policiesByTable[`${schemaname}.${tablename}`] = { + [dbPolicy.name]: { ...rest, to: parsedTo, withCheck: parsedWithCheck, using: parsedUsing } + }; + } + if (tsSchema == null ? void 0 : tsSchema.policies[dbPolicy.name]) { + policies[dbPolicy.name] = { + ...rest, + to: parsedTo, + withCheck: parsedWithCheck, + using: parsedUsing, + on: tsSchema == null ? void 0 : tsSchema.policies[dbPolicy.name].on + }; + } + } + if (progressCallback) { + progressCallback( + "policies", + Object.values(policiesByTable).reduce((total, innerRecord) => { + return total + Object.keys(innerRecord).length; + }, 0), + "done" + ); + } + const sequencesInColumns = []; + const all = allTables.filter((it) => it.type === "table").map((row) => { + return new Promise(async (res, rej) => { + var _a2, _b, _c, _d, _e, _f; + const tableName = row.table_name; + if (!tablesFilter(tableName)) return res(""); + tableCount += 1; + const tableSchema = row.table_schema; + try { + const columnToReturn = {}; + const indexToReturn = {}; + const foreignKeysToReturn = {}; + const primaryKeys = {}; + const uniqueConstrains = {}; + const checkConstraints = {}; + const tableResponse = await getColumnsInfoQuery({ schema: tableSchema, table: tableName, db }); + const tableConstraints = await db.query( + `SELECT c.column_name, c.data_type, constraint_type, constraint_name, constraint_schema + FROM information_schema.table_constraints tc + JOIN information_schema.constraint_column_usage AS ccu USING (constraint_schema, constraint_name) + JOIN information_schema.columns AS c ON c.table_schema = tc.constraint_schema + AND tc.table_name = c.table_name AND ccu.column_name = c.column_name + WHERE tc.table_name = '${tableName}' and constraint_schema = '${tableSchema}';` + ); + const tableChecks = await db.query(`SELECT + tc.constraint_name, + tc.constraint_type, + pg_get_constraintdef(con.oid) AS constraint_definition + FROM + information_schema.table_constraints AS tc + JOIN pg_constraint AS con + ON tc.constraint_name = con.conname + AND con.conrelid = ( + SELECT oid + FROM pg_class + WHERE relname = tc.table_name + AND relnamespace = ( + SELECT oid + FROM pg_namespace + WHERE nspname = tc.constraint_schema + ) + ) + WHERE + tc.table_name = '${tableName}' + AND tc.constraint_schema = '${tableSchema}' + AND tc.constraint_type = 'CHECK' + AND con.contype = 'c';`); + columnsCount += tableResponse.length; + if (progressCallback) { + progressCallback("columns", columnsCount, "fetching"); + } + const tableForeignKeys = await db.query( + `SELECT + con.contype AS constraint_type, + nsp.nspname AS constraint_schema, + con.conname AS constraint_name, + rel.relname AS table_name, + att.attname AS column_name, + fnsp.nspname AS foreign_table_schema, + frel.relname AS foreign_table_name, + fatt.attname AS foreign_column_name, + CASE con.confupdtype + WHEN 'a' THEN 'NO ACTION' + WHEN 'r' THEN 'RESTRICT' + WHEN 'n' THEN 'SET NULL' + WHEN 'c' THEN 'CASCADE' + WHEN 'd' THEN 'SET DEFAULT' + END AS update_rule, + CASE con.confdeltype + WHEN 'a' THEN 'NO ACTION' + WHEN 'r' THEN 'RESTRICT' + WHEN 'n' THEN 'SET NULL' + WHEN 'c' THEN 'CASCADE' + WHEN 'd' THEN 'SET DEFAULT' + END AS delete_rule + FROM + pg_catalog.pg_constraint con + JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid + JOIN pg_catalog.pg_namespace nsp ON nsp.oid = con.connamespace + LEFT JOIN pg_catalog.pg_attribute att ON att.attnum = ANY (con.conkey) + AND att.attrelid = con.conrelid + LEFT JOIN pg_catalog.pg_class frel ON frel.oid = con.confrelid + LEFT JOIN pg_catalog.pg_namespace fnsp ON fnsp.oid = frel.relnamespace + LEFT JOIN pg_catalog.pg_attribute fatt ON fatt.attnum = ANY (con.confkey) + AND fatt.attrelid = con.confrelid + WHERE + nsp.nspname = '${tableSchema}' + AND rel.relname = '${tableName}' + AND con.contype IN ('f');` + ); + foreignKeysCount += tableForeignKeys.length; + if (progressCallback) { + progressCallback("fks", foreignKeysCount, "fetching"); + } + for (const fk5 of tableForeignKeys) { + const columnFrom = fk5.column_name; + const tableTo = fk5.foreign_table_name; + const columnTo = fk5.foreign_column_name; + const schemaTo = fk5.foreign_table_schema; + const foreignKeyName = fk5.constraint_name; + const onUpdate = (_a2 = fk5.update_rule) == null ? void 0 : _a2.toLowerCase(); + const onDelete = (_b = fk5.delete_rule) == null ? void 0 : _b.toLowerCase(); + if (typeof foreignKeysToReturn[foreignKeyName] !== "undefined") { + foreignKeysToReturn[foreignKeyName].columnsFrom.push(columnFrom); + foreignKeysToReturn[foreignKeyName].columnsTo.push(columnTo); + } else { + foreignKeysToReturn[foreignKeyName] = { + name: foreignKeyName, + tableFrom: tableName, + tableTo, + schemaTo, + columnsFrom: [columnFrom], + columnsTo: [columnTo], + onDelete, + onUpdate + }; + } + foreignKeysToReturn[foreignKeyName].columnsFrom = [ + ...new Set(foreignKeysToReturn[foreignKeyName].columnsFrom) + ]; + foreignKeysToReturn[foreignKeyName].columnsTo = [...new Set(foreignKeysToReturn[foreignKeyName].columnsTo)]; + } + const uniqueConstrainsRows = tableConstraints.filter((mapRow) => mapRow.constraint_type === "UNIQUE"); + for (const unqs of uniqueConstrainsRows) { + const columnName = unqs.column_name; + const constraintName = unqs.constraint_name; + if (typeof uniqueConstrains[constraintName] !== "undefined") { + uniqueConstrains[constraintName].columns.push(columnName); + } else { + uniqueConstrains[constraintName] = { + columns: [columnName], + nullsNotDistinct: false, + name: constraintName + }; + } + } + checksCount += tableChecks.length; + if (progressCallback) { + progressCallback("checks", checksCount, "fetching"); + } + for (const checks of tableChecks) { + let checkValue = checks.constraint_definition; + const constraintName = checks.constraint_name; + checkValue = checkValue.replace(/^CHECK\s*\(\(/, "").replace(/\)\)\s*$/, ""); + checkConstraints[constraintName] = { + name: constraintName, + value: checkValue + }; + } + for (const columnResponse of tableResponse) { + const columnName = columnResponse.column_name; + const columnAdditionalDT = columnResponse.additional_dt; + const columnDimensions = columnResponse.array_dimensions; + const enumType2 = columnResponse.enum_name; + let columnType = columnResponse.data_type; + const typeSchema = columnResponse.type_schema; + const defaultValueRes = columnResponse.column_default; + const isGenerated = columnResponse.is_generated === "ALWAYS"; + const generationExpression = columnResponse.generation_expression; + const isIdentity = columnResponse.is_identity === "YES"; + const identityGeneration = columnResponse.identity_generation === "ALWAYS" ? "always" : "byDefault"; + const identityStart = columnResponse.identity_start; + const identityIncrement = columnResponse.identity_increment; + const identityMaximum = columnResponse.identity_maximum; + const identityMinimum = columnResponse.identity_minimum; + const identityCycle = columnResponse.identity_cycle === "YES"; + const identityName = columnResponse.seq_name; + const primaryKey = tableConstraints.filter( + (mapRow) => columnName === mapRow.column_name && mapRow.constraint_type === "PRIMARY KEY" + ); + const cprimaryKey = tableConstraints.filter((mapRow) => mapRow.constraint_type === "PRIMARY KEY"); + if (cprimaryKey.length > 1) { + const tableCompositePkName = await db.query( + `SELECT conname AS primary_key + FROM pg_constraint join pg_class on (pg_class.oid = conrelid) + WHERE contype = 'p' + AND connamespace = $1::regnamespace + AND pg_class.relname = $2;`, + [tableSchema, tableName] + ); + primaryKeys[tableCompositePkName[0].primary_key] = { + name: tableCompositePkName[0].primary_key, + columns: cprimaryKey.map((c3) => c3.column_name) + }; + } + let columnTypeMapped = columnType; + if (columnAdditionalDT === "ARRAY") { + if (typeof internals.tables[tableName] === "undefined") { + internals.tables[tableName] = { + columns: { + [columnName]: { + isArray: true, + dimensions: columnDimensions, + rawType: columnTypeMapped.substring(0, columnTypeMapped.length - 2) + } + } + }; + } else { + if (typeof internals.tables[tableName].columns[columnName] === "undefined") { + internals.tables[tableName].columns[columnName] = { + isArray: true, + dimensions: columnDimensions, + rawType: columnTypeMapped.substring(0, columnTypeMapped.length - 2) + }; + } + } + } + const defaultValue = defaultForColumn(columnResponse, internals, tableName); + if (defaultValue === "NULL" || defaultValueRes && defaultValueRes.startsWith("(") && defaultValueRes.endsWith(")")) { + if (typeof internals.tables[tableName] === "undefined") { + internals.tables[tableName] = { + columns: { + [columnName]: { + isDefaultAnExpression: true + } + } + }; + } else { + if (typeof internals.tables[tableName].columns[columnName] === "undefined") { + internals.tables[tableName].columns[columnName] = { + isDefaultAnExpression: true + }; + } else { + internals.tables[tableName].columns[columnName].isDefaultAnExpression = true; + } + } + } + const isSerial = columnType === "serial"; + if (columnTypeMapped.startsWith("numeric(")) { + columnTypeMapped = columnTypeMapped.replace(",", ", "); + } + if (columnAdditionalDT === "ARRAY") { + for (let i4 = 1; i4 < Number(columnDimensions); i4++) { + columnTypeMapped += "[]"; + } + } + columnTypeMapped = columnTypeMapped.replace("character varying", "varchar").replace(" without time zone", "").replace("character", "char"); + columnTypeMapped = trimChar(columnTypeMapped, '"'); + columnToReturn[columnName] = { + name: columnName, + type: ( + // filter vectors, but in future we should filter any extension that was installed by user + columnAdditionalDT === "USER-DEFINED" && !["vector", "geometry", "halfvec", "sparsevec", "bit"].includes(enumType2) ? enumType2 : columnTypeMapped + ), + typeSchema: enumsToReturn[`${typeSchema}.${enumType2}`] !== void 0 ? enumsToReturn[`${typeSchema}.${enumType2}`].schema : void 0, + primaryKey: primaryKey.length === 1 && cprimaryKey.length < 2, + // default: isSerial ? undefined : defaultValue, + notNull: columnResponse.is_nullable === "NO", + generated: isGenerated ? { as: generationExpression, type: "stored" } : void 0, + identity: isIdentity ? { + type: identityGeneration, + name: identityName, + increment: stringFromDatabaseIdentityProperty(identityIncrement), + minValue: stringFromDatabaseIdentityProperty(identityMinimum), + maxValue: stringFromDatabaseIdentityProperty(identityMaximum), + startWith: stringFromDatabaseIdentityProperty(identityStart), + cache: ((_c = sequencesToReturn[identityName]) == null ? void 0 : _c.cache) ? (_d = sequencesToReturn[identityName]) == null ? void 0 : _d.cache : ((_e = sequencesToReturn[`${tableSchema}.${identityName}`]) == null ? void 0 : _e.cache) ? (_f = sequencesToReturn[`${tableSchema}.${identityName}`]) == null ? void 0 : _f.cache : void 0, + cycle: identityCycle, + schema: tableSchema + } : void 0 + }; + if (identityName && typeof identityName === "string") { + delete sequencesToReturn[`${tableSchema}.${identityName.startsWith('"') && identityName.endsWith('"') ? identityName.slice(1, -1) : identityName}`]; + delete sequencesToReturn[identityName]; + } + if (!isSerial && typeof defaultValue !== "undefined") { + columnToReturn[columnName].default = defaultValue; + } + } + const dbIndexes = await db.query( + `SELECT DISTINCT ON (t.relname, ic.relname, k.i) t.relname as table_name, ic.relname AS indexname, + k.i AS index_order, + i.indisunique as is_unique, + am.amname as method, + ic.reloptions as with, + coalesce(a.attname, pg_get_indexdef(i.indexrelid, k.i, false)) AS column_name, + CASE + WHEN pg_get_expr(i.indexprs, i.indrelid) IS NOT NULL THEN 1 + ELSE 0 + END AS is_expression, + i.indoption[k.i-1] & 1 = 1 AS descending, + i.indoption[k.i-1] & 2 = 2 AS nulls_first, + pg_get_expr( + i.indpred, + i.indrelid + ) as where, + opc.opcname + FROM pg_class t + LEFT JOIN pg_index i ON t.oid = i.indrelid + LEFT JOIN pg_class ic ON ic.oid = i.indexrelid + CROSS JOIN LATERAL (SELECT unnest(i.indkey), generate_subscripts(i.indkey, 1) + 1) AS k(attnum, i) + LEFT JOIN pg_attribute AS a + ON i.indrelid = a.attrelid AND k.attnum = a.attnum + JOIN pg_namespace c on c.oid = t.relnamespace + LEFT JOIN pg_am AS am ON ic.relam = am.oid + JOIN pg_opclass opc ON opc.oid = ANY(i.indclass) + WHERE + c.nspname = '${tableSchema}' AND + t.relname = '${tableName}';` + ); + const dbIndexFromConstraint = await db.query( + `SELECT + idx.indexrelname AS index_name, + idx.relname AS table_name, + schemaname, + CASE WHEN con.conname IS NOT NULL THEN 1 ELSE 0 END AS generated_by_constraint + FROM + pg_stat_user_indexes idx + LEFT JOIN + pg_constraint con ON con.conindid = idx.indexrelid + WHERE idx.relname = '${tableName}' and schemaname = '${tableSchema}' + group by index_name, table_name,schemaname, generated_by_constraint;` + ); + const idxsInConsteraint = dbIndexFromConstraint.filter((it) => it.generated_by_constraint === 1).map( + (it) => it.index_name + ); + for (const dbIndex of dbIndexes) { + const indexName6 = dbIndex.indexname; + const indexColumnName = dbIndex.column_name; + const indexIsUnique = dbIndex.is_unique; + const indexMethod = dbIndex.method; + const indexWith = dbIndex.with; + const indexWhere = dbIndex.where; + const opclass = dbIndex.opcname; + const isExpression = dbIndex.is_expression === 1; + const desc = dbIndex.descending; + const nullsFirst = dbIndex.nulls_first; + const mappedWith = {}; + if (indexWith !== null) { + indexWith.forEach((it) => { + const splitted = it.split("="); + mappedWith[splitted[0]] = splitted[1]; + }); + } + if (idxsInConsteraint.includes(indexName6)) continue; + if (typeof indexToReturn[indexName6] !== "undefined") { + indexToReturn[indexName6].columns.push({ + expression: indexColumnName, + asc: !desc, + nulls: nullsFirst ? "first" : "last", + opclass, + isExpression + }); + } else { + indexToReturn[indexName6] = { + name: indexName6, + columns: [ + { + expression: indexColumnName, + asc: !desc, + nulls: nullsFirst ? "first" : "last", + opclass, + isExpression + } + ], + isUnique: indexIsUnique, + // should not be a part of diff detects + concurrently: false, + method: indexMethod, + where: indexWhere === null ? void 0 : indexWhere, + with: mappedWith + }; + } + } + indexesCount += Object.keys(indexToReturn).length; + if (progressCallback) { + progressCallback("indexes", indexesCount, "fetching"); + } + result[`${tableSchema}.${tableName}`] = { + name: tableName, + schema: tableSchema !== "public" ? tableSchema : "", + columns: columnToReturn, + indexes: indexToReturn, + foreignKeys: foreignKeysToReturn, + compositePrimaryKeys: primaryKeys, + uniqueConstraints: uniqueConstrains, + checkConstraints, + policies: policiesByTable[`${tableSchema}.${tableName}`] ?? {}, + isRLSEnabled: row.rls_enabled + }; + } catch (e4) { + rej(e4); + return; + } + res(""); + }); + }); + if (progressCallback) { + progressCallback("tables", tableCount, "done"); + } + for await (const _3 of all) { + } + const allViews = allTables.filter((it) => it.type === "view" || it.type === "materialized_view").map((row) => { + return new Promise(async (res, rej) => { + var _a2, _b, _c, _d; + const viewName = row.table_name; + if (!tablesFilter(viewName)) return res(""); + tableCount += 1; + const viewSchema = row.table_schema; + try { + const columnToReturn = {}; + const viewResponses = await getColumnsInfoQuery({ schema: viewSchema, table: viewName, db }); + for (const viewResponse of viewResponses) { + const columnName = viewResponse.column_name; + const columnAdditionalDT = viewResponse.additional_dt; + const columnDimensions = viewResponse.array_dimensions; + const enumType2 = viewResponse.enum_name; + let columnType = viewResponse.data_type; + const typeSchema = viewResponse.type_schema; + const isGenerated = viewResponse.is_generated === "ALWAYS"; + const generationExpression = viewResponse.generation_expression; + const isIdentity = viewResponse.is_identity === "YES"; + const identityGeneration = viewResponse.identity_generation === "ALWAYS" ? "always" : "byDefault"; + const identityStart = viewResponse.identity_start; + const identityIncrement = viewResponse.identity_increment; + const identityMaximum = viewResponse.identity_maximum; + const identityMinimum = viewResponse.identity_minimum; + const identityCycle = viewResponse.identity_cycle === "YES"; + const identityName = viewResponse.seq_name; + const defaultValueRes = viewResponse.column_default; + const primaryKey = viewResponse.constraint_type === "PRIMARY KEY"; + let columnTypeMapped = columnType; + if (columnAdditionalDT === "ARRAY") { + if (typeof internals.tables[viewName] === "undefined") { + internals.tables[viewName] = { + columns: { + [columnName]: { + isArray: true, + dimensions: columnDimensions, + rawType: columnTypeMapped.substring(0, columnTypeMapped.length - 2) + } + } + }; + } else { + if (typeof internals.tables[viewName].columns[columnName] === "undefined") { + internals.tables[viewName].columns[columnName] = { + isArray: true, + dimensions: columnDimensions, + rawType: columnTypeMapped.substring(0, columnTypeMapped.length - 2) + }; + } + } + } + const defaultValue = defaultForColumn(viewResponse, internals, viewName); + if (defaultValue === "NULL" || defaultValueRes && defaultValueRes.startsWith("(") && defaultValueRes.endsWith(")")) { + if (typeof internals.tables[viewName] === "undefined") { + internals.tables[viewName] = { + columns: { + [columnName]: { + isDefaultAnExpression: true + } + } + }; + } else { + if (typeof internals.tables[viewName].columns[columnName] === "undefined") { + internals.tables[viewName].columns[columnName] = { + isDefaultAnExpression: true + }; + } else { + internals.tables[viewName].columns[columnName].isDefaultAnExpression = true; + } + } + } + const isSerial = columnType === "serial"; + if (columnTypeMapped.startsWith("numeric(")) { + columnTypeMapped = columnTypeMapped.replace(",", ", "); + } + if (columnAdditionalDT === "ARRAY") { + for (let i4 = 1; i4 < Number(columnDimensions); i4++) { + columnTypeMapped += "[]"; + } + } + columnTypeMapped = columnTypeMapped.replace("character varying", "varchar").replace(" without time zone", "").replace("character", "char"); + columnTypeMapped = trimChar(columnTypeMapped, '"'); + columnToReturn[columnName] = { + name: columnName, + type: ( + // filter vectors, but in future we should filter any extension that was installed by user + columnAdditionalDT === "USER-DEFINED" && !["vector", "geometry", "halfvec", "sparsevec", "bit"].includes(enumType2) ? enumType2 : columnTypeMapped + ), + typeSchema: enumsToReturn[`${typeSchema}.${enumType2}`] !== void 0 ? enumsToReturn[`${typeSchema}.${enumType2}`].schema : void 0, + primaryKey, + notNull: viewResponse.is_nullable === "NO", + generated: isGenerated ? { as: generationExpression, type: "stored" } : void 0, + identity: isIdentity ? { + type: identityGeneration, + name: identityName, + increment: stringFromDatabaseIdentityProperty(identityIncrement), + minValue: stringFromDatabaseIdentityProperty(identityMinimum), + maxValue: stringFromDatabaseIdentityProperty(identityMaximum), + startWith: stringFromDatabaseIdentityProperty(identityStart), + cache: ((_a2 = sequencesToReturn[identityName]) == null ? void 0 : _a2.cache) ? (_b = sequencesToReturn[identityName]) == null ? void 0 : _b.cache : ((_c = sequencesToReturn[`${viewSchema}.${identityName}`]) == null ? void 0 : _c.cache) ? (_d = sequencesToReturn[`${viewSchema}.${identityName}`]) == null ? void 0 : _d.cache : void 0, + cycle: identityCycle, + schema: viewSchema + } : void 0 + }; + if (identityName) { + delete sequencesToReturn[`${viewSchema}.${identityName.startsWith('"') && identityName.endsWith('"') ? identityName.slice(1, -1) : identityName}`]; + delete sequencesToReturn[identityName]; + } + if (!isSerial && typeof defaultValue !== "undefined") { + columnToReturn[columnName].default = defaultValue; + } + } + const [viewInfo] = await db.query(` + SELECT + c.relname AS view_name, + n.nspname AS schema_name, + pg_get_viewdef(c.oid, true) AS definition, + ts.spcname AS tablespace_name, + c.reloptions AS options, + pg_tablespace_location(ts.oid) AS location +FROM + pg_class c +JOIN + pg_namespace n ON c.relnamespace = n.oid +LEFT JOIN + pg_tablespace ts ON c.reltablespace = ts.oid +WHERE + (c.relkind = 'm' OR c.relkind = 'v') + AND n.nspname = '${viewSchema}' + AND c.relname = '${viewName}';`); + const resultWith = {}; + if (viewInfo.options) { + viewInfo.options.forEach((pair) => { + const splitted = pair.split("="); + const key = splitted[0]; + const value = splitted[1]; + if (value === "true") { + resultWith[key] = true; + } else if (value === "false") { + resultWith[key] = false; + } else if (!isNaN(Number(value))) { + resultWith[key] = Number(value); + } else { + resultWith[key] = value; + } + }); + } + const definition = viewInfo.definition.replace(/\s+/g, " ").replace(";", "").trim(); + const withOption = Object.values(resultWith).length ? Object.fromEntries(Object.entries(resultWith).map(([key, value]) => [key.camelCase(), value])) : void 0; + const materialized = row.type === "materialized_view"; + views[`${viewSchema}.${viewName}`] = { + name: viewName, + schema: viewSchema, + columns: columnToReturn, + isExisting: false, + definition, + materialized, + with: withOption, + tablespace: viewInfo.tablespace_name ?? void 0 + }; + } catch (e4) { + rej(e4); + return; + } + res(""); + }); + }); + viewsCount = allViews.length; + for await (const _3 of allViews) { + } + if (progressCallback) { + progressCallback("columns", columnsCount, "done"); + progressCallback("indexes", indexesCount, "done"); + progressCallback("fks", foreignKeysCount, "done"); + progressCallback("checks", checksCount, "done"); + progressCallback("views", viewsCount, "done"); + } + const schemasObject = Object.fromEntries([...schemas].map((it) => [it, it])); + return { + version: "7", + dialect: "postgresql", + tables: result, + enums: enumsToReturn, + schemas: schemasObject, + sequences: sequencesToReturn, + roles: rolesToReturn, + policies, + views, + _meta: { + schemas: {}, + tables: {}, + columns: {} + }, + internal: internals + }; + }; + defaultForColumn = (column11, internals, tableName) => { + var _a2, _b; + const columnName = column11.column_name; + const isArray = ((_b = (_a2 = internals == null ? void 0 : internals.tables[tableName]) == null ? void 0 : _a2.columns[columnName]) == null ? void 0 : _b.isArray) ?? false; + if (column11.column_default === null || column11.column_default === void 0 || column11.data_type === "serial" || column11.data_type === "smallserial" || column11.data_type === "bigserial") { + return void 0; + } + if (column11.column_default.endsWith("[]")) { + column11.column_default = column11.column_default.slice(0, -2); + } + column11.column_default = column11.column_default.replace(/::(.*?)(? { + if (["integer", "smallint", "bigint", "double precision", "real"].includes(column11.data_type.slice(0, -2))) { + return value; + } else if (column11.data_type.startsWith("timestamp")) { + return `${value}`; + } else if (column11.data_type.slice(0, -2) === "interval") { + return value.replaceAll('"', `"`); + } else if (column11.data_type.slice(0, -2) === "boolean") { + return value === "t" ? "true" : "false"; + } else if (["json", "jsonb"].includes(column11.data_type.slice(0, -2))) { + return JSON.stringify(JSON.stringify(JSON.parse(JSON.parse(value)), null, 0)); + } else { + return `"${value}"`; + } + }).join(",")}}'`; + } + if (["integer", "smallint", "bigint", "double precision", "real"].includes(column11.data_type)) { + if (/^-?[\d.]+(?:e-?\d+)?$/.test(columnDefaultAsString)) { + return Number(columnDefaultAsString); + } else { + if (typeof internals.tables[tableName] === "undefined") { + internals.tables[tableName] = { + columns: { + [columnName]: { + isDefaultAnExpression: true + } + } + }; + } else { + if (typeof internals.tables[tableName].columns[columnName] === "undefined") { + internals.tables[tableName].columns[columnName] = { + isDefaultAnExpression: true + }; + } else { + internals.tables[tableName].columns[columnName].isDefaultAnExpression = true; + } + } + return columnDefaultAsString; + } + } else if (column11.data_type.includes("numeric")) { + return columnDefaultAsString.includes("'") ? columnDefaultAsString : `'${columnDefaultAsString}'`; + } else if (column11.data_type === "json" || column11.data_type === "jsonb") { + const jsonWithoutSpaces = JSON.stringify(JSON.parse(columnDefaultAsString.slice(1, -1))); + return `'${jsonWithoutSpaces}'::${column11.data_type}`; + } else if (column11.data_type === "boolean") { + return column11.column_default === "true"; + } else if (columnDefaultAsString === "NULL") { + return `NULL`; + } else if (columnDefaultAsString.startsWith("'") && columnDefaultAsString.endsWith("'")) { + return columnDefaultAsString; + } else { + return `${columnDefaultAsString.replace(/\\/g, "`\\")}`; + } + }; + getColumnsInfoQuery = ({ schema: schema6, table: table6, db }) => { + return db.query( + `SELECT + a.attrelid::regclass::text AS table_name, -- Table, view, or materialized view name + a.attname AS column_name, -- Column name + CASE + WHEN NOT a.attisdropped THEN + CASE + WHEN a.attnotnull THEN 'NO' + ELSE 'YES' + END + ELSE NULL + END AS is_nullable, -- NULL or NOT NULL constraint + a.attndims AS array_dimensions, -- Array dimensions + CASE + WHEN a.atttypid = ANY ('{int,int8,int2}'::regtype[]) + AND EXISTS ( + SELECT FROM pg_attrdef ad + WHERE ad.adrelid = a.attrelid + AND ad.adnum = a.attnum + AND pg_get_expr(ad.adbin, ad.adrelid) = 'nextval(''' + || pg_get_serial_sequence(a.attrelid::regclass::text, a.attname)::regclass || '''::regclass)' + ) + THEN CASE a.atttypid + WHEN 'int'::regtype THEN 'serial' + WHEN 'int8'::regtype THEN 'bigserial' + WHEN 'int2'::regtype THEN 'smallserial' + END + ELSE format_type(a.atttypid, a.atttypmod) + END AS data_type, -- Column data type +-- ns.nspname AS type_schema, -- Schema name + pg_get_serial_sequence('"${schema6}"."${table6}"', a.attname)::regclass AS seq_name, -- Serial sequence (if any) + c.column_default, -- Column default value + c.data_type AS additional_dt, -- Data type from information_schema + c.udt_name AS enum_name, -- Enum type (if applicable) + c.is_generated, -- Is it a generated column? + c.generation_expression, -- Generation expression (if generated) + c.is_identity, -- Is it an identity column? + c.identity_generation, -- Identity generation strategy (ALWAYS or BY DEFAULT) + c.identity_start, -- Start value of identity column + c.identity_increment, -- Increment for identity column + c.identity_maximum, -- Maximum value for identity column + c.identity_minimum, -- Minimum value for identity column + c.identity_cycle, -- Does the identity column cycle? + enum_ns.nspname AS type_schema -- Schema of the enum type +FROM + pg_attribute a +JOIN + pg_class cls ON cls.oid = a.attrelid -- Join pg_class to get table/view/materialized view info +JOIN + pg_namespace ns ON ns.oid = cls.relnamespace -- Join namespace to get schema info +LEFT JOIN + information_schema.columns c ON c.column_name = a.attname + AND c.table_schema = ns.nspname + AND c.table_name = cls.relname -- Match schema and table/view name +LEFT JOIN + pg_type enum_t ON enum_t.oid = a.atttypid -- Join to get the type info +LEFT JOIN + pg_namespace enum_ns ON enum_ns.oid = enum_t.typnamespace -- Join to get the enum schema +WHERE + a.attnum > 0 -- Valid column numbers only + AND NOT a.attisdropped -- Skip dropped columns + AND cls.relkind IN ('r', 'v', 'm') -- Include regular tables ('r'), views ('v'), and materialized views ('m') + AND ns.nspname = '${schema6}' -- Filter by schema + AND cls.relname = '${table6}' -- Filter by table name +ORDER BY + a.attnum; -- Order by column number` + ); + }; + } +}); + +// src/serializer/sqliteImports.ts +var sqliteImports_exports = {}; +__export(sqliteImports_exports, { + prepareFromExports: () => prepareFromExports3, + prepareFromSqliteImports: () => prepareFromSqliteImports +}); +var import_drizzle_orm5, import_sqlite_core, prepareFromExports3, prepareFromSqliteImports; +var init_sqliteImports = __esm({ + "src/serializer/sqliteImports.ts"() { + "use strict"; + import_drizzle_orm5 = require("drizzle-orm"); + import_sqlite_core = require("drizzle-orm/sqlite-core"); + init_utils3(); + prepareFromExports3 = (exports2) => { + const tables = []; + const views = []; + const i0values = Object.values(exports2); + i0values.forEach((t4) => { + if ((0, import_drizzle_orm5.is)(t4, import_sqlite_core.SQLiteTable)) { + tables.push(t4); + } + if ((0, import_drizzle_orm5.is)(t4, import_sqlite_core.SQLiteView)) { + views.push(t4); + } + }); + return { tables, views }; + }; + prepareFromSqliteImports = async (imports) => { + const tables = []; + const views = []; + await safeRegister(async () => { + for (let i4 = 0; i4 < imports.length; i4++) { + const it = imports[i4]; + const i0 = require(`${it}`); + const prepared = prepareFromExports3(i0); + tables.push(...prepared.tables); + views.push(...prepared.views); + } + }); + return { tables: Array.from(new Set(tables)), views }; + }; + } +}); + +// src/serializer/sqliteSerializer.ts +var sqliteSerializer_exports = {}; +__export(sqliteSerializer_exports, { + fromDatabase: () => fromDatabase3, + generateSqliteSnapshot: () => generateSqliteSnapshot +}); +function mapSqlToSqliteType(sqlType) { + const lowered = sqlType.toLowerCase(); + if ([ + "int", + "integer", + "integer auto_increment", + "tinyint", + "smallint", + "mediumint", + "bigint", + "unsigned big int", + "int2", + "int8" + ].some((it) => lowered.startsWith(it))) { + return "integer"; + } else if ([ + "character", + "varchar", + "varying character", + "national varying character", + "nchar", + "native character", + "nvarchar", + "text", + "clob" + ].some((it) => lowered.startsWith(it))) { + const match2 = lowered.match(/\d+/); + if (match2) { + return `text(${match2[0]})`; + } + return "text"; + } else if (lowered.startsWith("blob")) { + return "blob"; + } else if (["real", "double", "double precision", "float"].some((it) => lowered.startsWith(it))) { + return "real"; + } else { + return "numeric"; + } +} +function extractGeneratedColumns(input) { + const columns = {}; + const lines = input.split(/,\s*(?![^()]*\))/); + for (const line of lines) { + if (line.includes("GENERATED ALWAYS AS")) { + const parts = line.trim().split(/\s+/); + const columnName = parts[0].replace(/[`'"]/g, ""); + const expression = line.substring(line.indexOf("("), line.indexOf(")") + 1).trim(); + const typeIndex = parts.findIndex((part) => part.match(/(stored|virtual)/i)); + let type = "virtual"; + if (typeIndex !== -1) { + type = parts[typeIndex].replace(/[^a-z]/gi, "").toLowerCase(); + } + columns[columnName] = { + columnName, + expression, + type + }; + } + } + return columns; +} +function filterIgnoredTablesByField(fieldName) { + return `${fieldName} != '__drizzle_migrations' + AND ${fieldName} NOT LIKE '\\_cf\\_%' ESCAPE '\\' + AND ${fieldName} NOT LIKE '\\_litestream\\_%' ESCAPE '\\' + AND ${fieldName} NOT LIKE 'libsql\\_%' ESCAPE '\\' + AND ${fieldName} NOT LIKE 'sqlite\\_%' ESCAPE '\\'`; +} +var import_drizzle_orm6, import_sqlite_core2, generateSqliteSnapshot, fromDatabase3; +var init_sqliteSerializer = __esm({ + "src/serializer/sqliteSerializer.ts"() { + "use strict"; + init_source(); + import_drizzle_orm6 = require("drizzle-orm"); + import_sqlite_core2 = require("drizzle-orm/sqlite-core"); + init_outputs(); + init_utils2(); + init_utils4(); + generateSqliteSnapshot = (tables, views, casing2) => { + const dialect6 = new import_sqlite_core2.SQLiteSyncDialect({ casing: casing2 }); + const result = {}; + const resultViews = {}; + const internal = { indexes: {} }; + for (const table6 of tables) { + const columnsObject = {}; + const indexesObject = {}; + const foreignKeysObject = {}; + const primaryKeysObject = {}; + const uniqueConstraintObject = {}; + const checkConstraintObject = {}; + const checksInTable = {}; + const { + name: tableName, + columns, + indexes, + checks, + foreignKeys: tableForeignKeys, + primaryKeys, + uniqueConstraints + } = (0, import_sqlite_core2.getTableConfig)(table6); + columns.forEach((column11) => { + const name = getColumnCasing(column11, casing2); + const notNull = column11.notNull; + const primaryKey = column11.primary; + const generated = column11.generated; + const columnToSet = { + name, + type: column11.getSQLType(), + primaryKey, + notNull, + autoincrement: (0, import_drizzle_orm6.is)(column11, import_sqlite_core2.SQLiteBaseInteger) ? column11.autoIncrement : false, + generated: generated ? { + as: (0, import_drizzle_orm6.is)(generated.as, import_drizzle_orm6.SQL) ? `(${dialect6.sqlToQuery(generated.as, "indexes").sql})` : typeof generated.as === "function" ? `(${dialect6.sqlToQuery(generated.as(), "indexes").sql})` : `(${generated.as})`, + type: generated.mode ?? "virtual" + } : void 0 + }; + if (column11.default !== void 0) { + if ((0, import_drizzle_orm6.is)(column11.default, import_drizzle_orm6.SQL)) { + columnToSet.default = sqlToStr(column11.default, casing2); + } else { + columnToSet.default = typeof column11.default === "string" ? `'${escapeSingleQuotes(column11.default)}'` : typeof column11.default === "object" || Array.isArray(column11.default) ? `'${JSON.stringify(column11.default)}'` : column11.default; + } + } + columnsObject[name] = columnToSet; + if (column11.isUnique) { + const existingUnique = indexesObject[column11.uniqueName]; + if (typeof existingUnique !== "undefined") { + console.log( + ` +${withStyle.errorWarning(`We've found duplicated unique constraint names in ${source_default.underline.blue( + tableName + )} table. + The unique constraint ${source_default.underline.blue( + column11.uniqueName + )} on the ${source_default.underline.blue( + name + )} column is confilcting with a unique constraint name already defined for ${source_default.underline.blue( + existingUnique.columns.join(",") + )} columns +`)}` + ); + process.exit(1); + } + indexesObject[column11.uniqueName] = { + name: column11.uniqueName, + columns: [columnToSet.name], + isUnique: true + }; + } + }); + const foreignKeys = tableForeignKeys.map((fk5) => { + const tableFrom = tableName; + const onDelete = fk5.onDelete ?? "no action"; + const onUpdate = fk5.onUpdate ?? "no action"; + const reference = fk5.reference(); + const referenceFT = reference.foreignTable; + const tableTo = (0, import_drizzle_orm6.getTableName)(referenceFT); + const originalColumnsFrom = reference.columns.map((it) => it.name); + const columnsFrom = reference.columns.map((it) => getColumnCasing(it, casing2)); + const originalColumnsTo = reference.foreignColumns.map((it) => it.name); + const columnsTo = reference.foreignColumns.map((it) => getColumnCasing(it, casing2)); + let name = fk5.getName(); + if (casing2 !== void 0) { + for (let i4 = 0; i4 < originalColumnsFrom.length; i4++) { + name = name.replace(originalColumnsFrom[i4], columnsFrom[i4]); + } + for (let i4 = 0; i4 < originalColumnsTo.length; i4++) { + name = name.replace(originalColumnsTo[i4], columnsTo[i4]); + } + } + return { + name, + tableFrom, + tableTo, + columnsFrom, + columnsTo, + onDelete, + onUpdate + }; + }); + foreignKeys.forEach((it) => { + foreignKeysObject[it.name] = it; + }); + indexes.forEach((value) => { + const columns2 = value.config.columns; + const name = value.config.name; + let indexColumns = columns2.map((it) => { + var _a2; + if ((0, import_drizzle_orm6.is)(it, import_drizzle_orm6.SQL)) { + const sql = dialect6.sqlToQuery(it, "indexes").sql; + if (typeof internal.indexes[name] === "undefined") { + internal.indexes[name] = { + columns: { + [sql]: { + isExpression: true + } + } + }; + } else { + if (typeof ((_a2 = internal.indexes[name]) == null ? void 0 : _a2.columns[sql]) === "undefined") { + internal.indexes[name].columns[sql] = { + isExpression: true + }; + } else { + internal.indexes[name].columns[sql].isExpression = true; + } + } + return sql; + } else { + return getColumnCasing(it, casing2); + } + }); + let where = void 0; + if (value.config.where !== void 0) { + if ((0, import_drizzle_orm6.is)(value.config.where, import_drizzle_orm6.SQL)) { + where = dialect6.sqlToQuery(value.config.where).sql; + } + } + indexesObject[name] = { + name, + columns: indexColumns, + isUnique: value.config.unique ?? false, + where + }; + }); + uniqueConstraints == null ? void 0 : uniqueConstraints.map((unq) => { + const columnNames = unq.columns.map((c3) => getColumnCasing(c3, casing2)); + const name = unq.name ?? (0, import_sqlite_core2.uniqueKeyName)(table6, columnNames); + const existingUnique = indexesObject[name]; + if (typeof existingUnique !== "undefined") { + console.log( + ` +${withStyle.errorWarning( + `We've found duplicated unique constraint names in ${source_default.underline.blue( + tableName + )} table. +The unique constraint ${source_default.underline.blue( + name + )} on the ${source_default.underline.blue( + columnNames.join(",") + )} columns is confilcting with a unique constraint name already defined for ${source_default.underline.blue( + existingUnique.columns.join(",") + )} columns +` + )}` + ); + process.exit(1); + } + indexesObject[name] = { + name: unq.name, + columns: columnNames, + isUnique: true + }; + }); + primaryKeys.forEach((it) => { + if (it.columns.length > 1) { + const originalColumnNames = it.columns.map((c3) => c3.name); + const columnNames = it.columns.map((c3) => getColumnCasing(c3, casing2)); + let name = it.getName(); + if (casing2 !== void 0) { + for (let i4 = 0; i4 < originalColumnNames.length; i4++) { + name = name.replace(originalColumnNames[i4], columnNames[i4]); + } + } + primaryKeysObject[name] = { + columns: columnNames, + name + }; + } else { + columnsObject[getColumnCasing(it.columns[0], casing2)].primaryKey = true; + } + }); + checks.forEach((check2) => { + const checkName = check2.name; + if (typeof checksInTable[tableName] !== "undefined") { + if (checksInTable[tableName].includes(check2.name)) { + console.log( + ` +${withStyle.errorWarning( + `We've found duplicated check constraint name in ${source_default.underline.blue( + tableName + )}. Please rename your check constraint in the ${source_default.underline.blue( + tableName + )} table` + )}` + ); + process.exit(1); + } + checksInTable[tableName].push(checkName); + } else { + checksInTable[tableName] = [check2.name]; + } + checkConstraintObject[checkName] = { + name: checkName, + value: dialect6.sqlToQuery(check2.value).sql + }; + }); + result[tableName] = { + name: tableName, + columns: columnsObject, + indexes: indexesObject, + foreignKeys: foreignKeysObject, + compositePrimaryKeys: primaryKeysObject, + uniqueConstraints: uniqueConstraintObject, + checkConstraints: checkConstraintObject + }; + } + for (const view5 of views) { + const { name, isExisting, selectedFields, query, schema: schema6 } = (0, import_sqlite_core2.getViewConfig)(view5); + const columnsObject = {}; + const existingView = resultViews[name]; + if (typeof existingView !== "undefined") { + console.log( + ` +${withStyle.errorWarning( + `We've found duplicated view name across ${source_default.underline.blue( + schema6 ?? "public" + )} schema. Please rename your view` + )}` + ); + process.exit(1); + } + for (const key in selectedFields) { + if ((0, import_drizzle_orm6.is)(selectedFields[key], import_sqlite_core2.SQLiteColumn)) { + const column11 = selectedFields[key]; + const notNull = column11.notNull; + const primaryKey = column11.primary; + const generated = column11.generated; + const columnToSet = { + name: column11.name, + type: column11.getSQLType(), + primaryKey, + notNull, + autoincrement: (0, import_drizzle_orm6.is)(column11, import_sqlite_core2.SQLiteBaseInteger) ? column11.autoIncrement : false, + generated: generated ? { + as: (0, import_drizzle_orm6.is)(generated.as, import_drizzle_orm6.SQL) ? `(${dialect6.sqlToQuery(generated.as, "indexes").sql})` : typeof generated.as === "function" ? `(${dialect6.sqlToQuery(generated.as(), "indexes").sql})` : `(${generated.as})`, + type: generated.mode ?? "virtual" + } : void 0 + }; + if (column11.default !== void 0) { + if ((0, import_drizzle_orm6.is)(column11.default, import_drizzle_orm6.SQL)) { + columnToSet.default = sqlToStr(column11.default, casing2); + } else { + columnToSet.default = typeof column11.default === "string" ? `'${column11.default}'` : typeof column11.default === "object" || Array.isArray(column11.default) ? `'${JSON.stringify(column11.default)}'` : column11.default; + } + } + columnsObject[column11.name] = columnToSet; + } + } + resultViews[name] = { + columns: columnsObject, + name, + isExisting, + definition: isExisting ? void 0 : dialect6.sqlToQuery(query).sql + }; + } + return { + version: "6", + dialect: "sqlite", + tables: result, + views: resultViews, + enums: {}, + _meta: { + tables: {}, + columns: {} + }, + internal + }; + }; + fromDatabase3 = async (db, tablesFilter = (table6) => true, progressCallback) => { + const result = {}; + const resultViews = {}; + const columns = await db.query(`SELECT + m.name as "tableName", + p.name as "columnName", + p.type as "columnType", + p."notnull" as "notNull", + p.dflt_value as "defaultValue", + p.pk as pk, + p.hidden as hidden, + m.sql, + m.type as type + FROM sqlite_master AS m + JOIN pragma_table_xinfo(m.name) AS p + WHERE (m.type = 'table' OR m.type = 'view') + AND ${filterIgnoredTablesByField("m.tbl_name")};`); + const tablesWithSeq = []; + const seq = await db.query(`SELECT + * + FROM sqlite_master + WHERE sql GLOB '*[ *' || CHAR(9) || CHAR(10) || CHAR(13) || ']AUTOINCREMENT[^'']*' + AND ${filterIgnoredTablesByField("tbl_name")};`); + for (const s4 of seq) { + tablesWithSeq.push(s4.name); + } + let columnsCount = 0; + let tablesCount = /* @__PURE__ */ new Set(); + let indexesCount = 0; + let foreignKeysCount = 0; + let checksCount = 0; + let viewsCount = 0; + const tableToPk = {}; + let tableToGeneratedColumnsInfo = {}; + for (const column11 of columns) { + if (!tablesFilter(column11.tableName)) continue; + if (column11.type !== "view") { + columnsCount += 1; + } + if (progressCallback) { + progressCallback("columns", columnsCount, "fetching"); + } + const tableName = column11.tableName; + tablesCount.add(tableName); + if (progressCallback) { + progressCallback("tables", tablesCount.size, "fetching"); + } + const columnName = column11.columnName; + const isNotNull = column11.notNull === 1; + const columnType = column11.columnType; + const isPrimary = column11.pk !== 0; + const columnDefault = column11.defaultValue; + const isAutoincrement = isPrimary && tablesWithSeq.includes(tableName); + if (isPrimary) { + if (typeof tableToPk[tableName] === "undefined") { + tableToPk[tableName] = [columnName]; + } else { + tableToPk[tableName].push(columnName); + } + } + const table6 = result[tableName]; + if (column11.hidden === 2 || column11.hidden === 3) { + if (typeof tableToGeneratedColumnsInfo[column11.tableName] === "undefined") { + tableToGeneratedColumnsInfo[column11.tableName] = extractGeneratedColumns( + column11.sql + ); + } + } + const newColumn = { + default: columnDefault === null ? void 0 : /^-?[\d.]+(?:e-?\d+)?$/.test(columnDefault) ? Number(columnDefault) : ["CURRENT_TIME", "CURRENT_DATE", "CURRENT_TIMESTAMP"].includes( + columnDefault + ) ? `(${columnDefault})` : columnDefault === "false" ? false : columnDefault === "true" ? true : columnDefault.startsWith("'") && columnDefault.endsWith("'") ? columnDefault : `(${columnDefault})`, + autoincrement: isAutoincrement, + name: columnName, + type: mapSqlToSqliteType(columnType), + primaryKey: false, + notNull: isNotNull, + generated: tableToGeneratedColumnsInfo[tableName] && tableToGeneratedColumnsInfo[tableName][columnName] ? { + type: tableToGeneratedColumnsInfo[tableName][columnName].type, + as: tableToGeneratedColumnsInfo[tableName][columnName].expression + } : void 0 + }; + if (!table6) { + result[tableName] = { + name: tableName, + columns: { + [columnName]: newColumn + }, + compositePrimaryKeys: {}, + indexes: {}, + foreignKeys: {}, + uniqueConstraints: {}, + checkConstraints: {} + }; + } else { + result[tableName].columns[columnName] = newColumn; + } + } + for (const [key, value] of Object.entries(tableToPk)) { + if (value.length > 1) { + result[key].compositePrimaryKeys = { + [`${key}_${value.join("_")}_pk`]: { + columns: value, + name: `${key}_${value.join("_")}_pk` + } + }; + } else if (value.length === 1) { + result[key].columns[value[0]].primaryKey = true; + } else { + } + } + if (progressCallback) { + progressCallback("columns", columnsCount, "done"); + progressCallback("tables", tablesCount.size, "done"); + } + try { + const fks = await db.query(`SELECT + m.name as "tableFrom", + f.id as "id", + f."table" as "tableTo", + f."from", + f."to", + f."on_update" as "onUpdate", + f."on_delete" as "onDelete", + f.seq as "seq" + FROM + sqlite_master m, + pragma_foreign_key_list(m.name) as f + WHERE ${filterIgnoredTablesByField("m.tbl_name")};`); + const fkByTableName = {}; + for (const fkRow of fks) { + foreignKeysCount += 1; + if (progressCallback) { + progressCallback("fks", foreignKeysCount, "fetching"); + } + const tableName = fkRow.tableFrom; + const columnName = fkRow.from; + const refTableName = fkRow.tableTo; + const refColumnName = fkRow.to; + const updateRule = fkRow.onUpdate; + const deleteRule = fkRow.onDelete; + const sequence = fkRow.seq; + const id = fkRow.id; + const tableInResult = result[tableName]; + if (typeof tableInResult === "undefined") continue; + if (typeof fkByTableName[`${tableName}_${id}`] !== "undefined") { + fkByTableName[`${tableName}_${id}`].columnsFrom.push(columnName); + fkByTableName[`${tableName}_${id}`].columnsTo.push(refColumnName); + } else { + fkByTableName[`${tableName}_${id}`] = { + name: "", + tableFrom: tableName, + tableTo: refTableName, + columnsFrom: [columnName], + columnsTo: [refColumnName], + onDelete: deleteRule == null ? void 0 : deleteRule.toLowerCase(), + onUpdate: updateRule == null ? void 0 : updateRule.toLowerCase() + }; + } + const columnsFrom = fkByTableName[`${tableName}_${id}`].columnsFrom; + const columnsTo = fkByTableName[`${tableName}_${id}`].columnsTo; + fkByTableName[`${tableName}_${id}`].name = `${tableName}_${columnsFrom.join( + "_" + )}_${refTableName}_${columnsTo.join("_")}_fk`; + } + for (const idx of Object.keys(fkByTableName)) { + const value = fkByTableName[idx]; + result[value.tableFrom].foreignKeys[value.name] = value; + } + } catch (e4) { + } + if (progressCallback) { + progressCallback("fks", foreignKeysCount, "done"); + } + const idxs = await db.query(`SELECT + m.tbl_name as tableName, + il.name as indexName, + ii.name as columnName, + il.[unique] as isUnique, + il.seq as seq + FROM + sqlite_master AS m, + pragma_index_list(m.name) AS il, + pragma_index_info(il.name) AS ii + WHERE + m.type = 'table' + AND il.name NOT LIKE 'sqlite\\_autoindex\\_%' ESCAPE '\\' + AND ${filterIgnoredTablesByField("m.tbl_name")};`); + for (const idxRow of idxs) { + const tableName = idxRow.tableName; + const constraintName = idxRow.indexName; + const columnName = idxRow.columnName; + const isUnique = idxRow.isUnique === 1; + const tableInResult = result[tableName]; + if (typeof tableInResult === "undefined") continue; + indexesCount += 1; + if (progressCallback) { + progressCallback("indexes", indexesCount, "fetching"); + } + if (typeof tableInResult.indexes[constraintName] !== "undefined" && columnName) { + tableInResult.indexes[constraintName].columns.push(columnName); + } else { + tableInResult.indexes[constraintName] = { + name: constraintName, + columns: columnName ? [columnName] : [], + isUnique + }; + } + } + if (progressCallback) { + progressCallback("indexes", indexesCount, "done"); + progressCallback("enums", 0, "done"); + } + const views = await db.query( + `SELECT name AS view_name, sql AS sql FROM sqlite_master WHERE type = 'view';` + ); + viewsCount = views.length; + if (progressCallback) { + progressCallback("views", viewsCount, "fetching"); + } + for (const view5 of views) { + const viewName = view5["view_name"]; + const sql = view5["sql"]; + const regex = new RegExp(`\\bAS\\b\\s+(SELECT.+)$`, "i"); + const match2 = sql.match(regex); + if (!match2) { + console.log("Could not process view"); + process.exit(1); + } + const viewDefinition = match2[1]; + const columns2 = result[viewName].columns; + delete result[viewName]; + resultViews[viewName] = { + columns: columns2, + isExisting: false, + name: viewName, + definition: viewDefinition + }; + } + if (progressCallback) { + progressCallback("views", viewsCount, "done"); + } + const namedCheckPattern = /CONSTRAINT\s*["']?(\w+)["']?\s*CHECK\s*\((.*?)\)/gi; + const unnamedCheckPattern = /CHECK\s*\((.*?)\)/gi; + let checkCounter = 0; + const checkConstraints = {}; + const checks = await db.query(`SELECT + name as "tableName", + sql as "sql" + FROM sqlite_master + WHERE type = 'table' + AND ${filterIgnoredTablesByField("tbl_name")};`); + for (const check2 of checks) { + if (!tablesFilter(check2.tableName)) continue; + const { tableName, sql } = check2; + let namedChecks = [...sql.matchAll(namedCheckPattern)]; + if (namedChecks.length > 0) { + namedChecks.forEach(([_3, checkName, checkValue]) => { + checkConstraints[checkName] = { + name: checkName, + value: checkValue.trim() + }; + }); + } else { + let unnamedChecks = [...sql.matchAll(unnamedCheckPattern)]; + unnamedChecks.forEach(([_3, checkValue]) => { + let checkName = `${tableName}_check_${++checkCounter}`; + checkConstraints[checkName] = { + name: checkName, + value: checkValue.trim() + }; + }); + } + checksCount += Object.values(checkConstraints).length; + if (progressCallback) { + progressCallback("checks", checksCount, "fetching"); + } + const table6 = result[tableName]; + if (!table6) { + result[tableName] = { + name: tableName, + columns: {}, + compositePrimaryKeys: {}, + indexes: {}, + foreignKeys: {}, + uniqueConstraints: {}, + checkConstraints + }; + } else { + result[tableName].checkConstraints = checkConstraints; + } + } + if (progressCallback) { + progressCallback("checks", checksCount, "done"); + } + return { + version: "6", + dialect: "sqlite", + tables: result, + views: resultViews, + enums: {}, + _meta: { + tables: {}, + columns: {} + } + }; + }; + } +}); + +// src/serializer/singlestoreImports.ts +var singlestoreImports_exports = {}; +__export(singlestoreImports_exports, { + prepareFromExports: () => prepareFromExports4, + prepareFromSingleStoreImports: () => prepareFromSingleStoreImports +}); +var import_drizzle_orm7, import_singlestore_core, prepareFromExports4, prepareFromSingleStoreImports; +var init_singlestoreImports = __esm({ + "src/serializer/singlestoreImports.ts"() { + "use strict"; + import_drizzle_orm7 = require("drizzle-orm"); + import_singlestore_core = require("drizzle-orm/singlestore-core"); + init_utils3(); + prepareFromExports4 = (exports2) => { + const tables = []; + const i0values = Object.values(exports2); + i0values.forEach((t4) => { + if ((0, import_drizzle_orm7.is)(t4, import_singlestore_core.SingleStoreTable)) { + tables.push(t4); + } + }); + return { + tables + /* views */ + }; + }; + prepareFromSingleStoreImports = async (imports) => { + const tables = []; + await safeRegister(async () => { + for (let i4 = 0; i4 < imports.length; i4++) { + const it = imports[i4]; + const i0 = require(`${it}`); + const prepared = prepareFromExports4(i0); + tables.push(...prepared.tables); + } + }); + return { + tables: Array.from(new Set(tables)) + /* , views */ + }; + }; + } +}); + +// src/serializer/singlestoreSerializer.ts +var singlestoreSerializer_exports = {}; +__export(singlestoreSerializer_exports, { + fromDatabase: () => fromDatabase4, + generateSingleStoreSnapshot: () => generateSingleStoreSnapshot, + indexName: () => indexName3 +}); +function clearDefaults2(defaultValue, collate) { + if (typeof collate === "undefined" || collate === null) { + collate = `utf8mb4`; + } + let resultDefault = defaultValue; + collate = `_${collate}`; + if (defaultValue.startsWith(collate)) { + resultDefault = resultDefault.substring(collate.length, defaultValue.length).replace(/\\/g, ""); + if (resultDefault.startsWith("'") && resultDefault.endsWith("'")) { + return `('${resultDefault.substring(1, resultDefault.length - 1)}')`; + } else { + return `'${resultDefault}'`; + } + } else { + return `(${resultDefault})`; + } +} +var import_drizzle_orm8, import_singlestore_core2, dialect5, indexName3, generateSingleStoreSnapshot, fromDatabase4; +var init_singlestoreSerializer = __esm({ + "src/serializer/singlestoreSerializer.ts"() { + "use strict"; + init_source(); + import_drizzle_orm8 = require("drizzle-orm"); + import_singlestore_core2 = require("drizzle-orm/singlestore-core"); + init_outputs(); + init_utils4(); + dialect5 = new import_singlestore_core2.SingleStoreDialect(); + indexName3 = (tableName, columns) => { + return `${tableName}_${columns.join("_")}_index`; + }; + generateSingleStoreSnapshot = (tables, casing2) => { + const dialect6 = new import_singlestore_core2.SingleStoreDialect({ casing: casing2 }); + const result = {}; + const internal = { tables: {}, indexes: {} }; + for (const table6 of tables) { + const { + name: tableName, + columns, + indexes, + schema: schema6, + primaryKeys, + uniqueConstraints + } = (0, import_singlestore_core2.getTableConfig)(table6); + const columnsObject = {}; + const indexesObject = {}; + const primaryKeysObject = {}; + const uniqueConstraintObject = {}; + columns.forEach((column11) => { + const notNull = column11.notNull; + const sqlTypeLowered = column11.getSQLType().toLowerCase(); + const autoIncrement = typeof column11.autoIncrement === "undefined" ? false : column11.autoIncrement; + const generated = column11.generated; + const columnToSet = { + name: column11.name, + type: column11.getSQLType(), + primaryKey: false, + // If field is autoincrement it's notNull by default + // notNull: autoIncrement ? true : notNull, + notNull, + autoincrement: autoIncrement, + onUpdate: column11.hasOnUpdateNow, + generated: generated ? { + as: (0, import_drizzle_orm8.is)(generated.as, import_drizzle_orm8.SQL) ? dialect6.sqlToQuery(generated.as).sql : typeof generated.as === "function" ? dialect6.sqlToQuery(generated.as()).sql : generated.as, + type: generated.mode ?? "stored" + } : void 0 + }; + if (column11.primary) { + primaryKeysObject[`${tableName}_${column11.name}`] = { + name: `${tableName}_${column11.name}`, + columns: [column11.name] + }; + } + if (column11.isUnique) { + const existingUnique = uniqueConstraintObject[column11.uniqueName]; + if (typeof existingUnique !== "undefined") { + console.log( + ` +${withStyle.errorWarning(`We've found duplicated unique constraint names in ${source_default.underline.blue( + tableName + )} table. + The unique constraint ${source_default.underline.blue( + column11.uniqueName + )} on the ${source_default.underline.blue( + column11.name + )} column is confilcting with a unique constraint name already defined for ${source_default.underline.blue( + existingUnique.columns.join(",") + )} columns +`)}` + ); + process.exit(1); + } + uniqueConstraintObject[column11.uniqueName] = { + name: column11.uniqueName, + columns: [columnToSet.name] + }; + } + if (column11.default !== void 0) { + if ((0, import_drizzle_orm8.is)(column11.default, import_drizzle_orm8.SQL)) { + columnToSet.default = sqlToStr(column11.default, casing2); + } else { + if (typeof column11.default === "string") { + columnToSet.default = `'${column11.default}'`; + } else { + if (sqlTypeLowered === "json" || Array.isArray(column11.default)) { + columnToSet.default = `'${JSON.stringify(column11.default)}'`; + } else if (column11.default instanceof Date) { + if (sqlTypeLowered === "date") { + columnToSet.default = `'${column11.default.toISOString().split("T")[0]}'`; + } else if (sqlTypeLowered.startsWith("datetime") || sqlTypeLowered.startsWith("timestamp")) { + columnToSet.default = `'${column11.default.toISOString().replace("T", " ").slice(0, 23)}'`; + } + } else { + columnToSet.default = column11.default; + } + } + } + } + columnsObject[column11.name] = columnToSet; + }); + primaryKeys.map((pk) => { + const columnNames = pk.columns.map((c3) => c3.name); + primaryKeysObject[pk.getName()] = { + name: pk.getName(), + columns: columnNames + }; + for (const column11 of pk.columns) { + columnsObject[column11.name].notNull = true; + } + }); + uniqueConstraints == null ? void 0 : uniqueConstraints.map((unq) => { + const columnNames = unq.columns.map((c3) => c3.name); + const name = unq.name ?? (0, import_singlestore_core2.uniqueKeyName)(table6, columnNames); + const existingUnique = uniqueConstraintObject[name]; + if (typeof existingUnique !== "undefined") { + console.log( + ` +${withStyle.errorWarning( + `We've found duplicated unique constraint names in ${source_default.underline.blue( + tableName + )} table. +The unique constraint ${source_default.underline.blue( + name + )} on the ${source_default.underline.blue( + columnNames.join(",") + )} columns is confilcting with a unique constraint name already defined for ${source_default.underline.blue( + existingUnique.columns.join(",") + )} columns +` + )}` + ); + process.exit(1); + } + uniqueConstraintObject[name] = { + name: unq.name, + columns: columnNames + }; + }); + indexes.forEach((value) => { + const columns2 = value.config.columns; + const name = value.config.name; + let indexColumns = columns2.map((it) => { + var _a2; + if ((0, import_drizzle_orm8.is)(it, import_drizzle_orm8.SQL)) { + const sql = dialect6.sqlToQuery(it, "indexes").sql; + if (typeof internal.indexes[name] === "undefined") { + internal.indexes[name] = { + columns: { + [sql]: { + isExpression: true + } + } + }; + } else { + if (typeof ((_a2 = internal.indexes[name]) == null ? void 0 : _a2.columns[sql]) === "undefined") { + internal.indexes[name].columns[sql] = { + isExpression: true + }; + } else { + internal.indexes[name].columns[sql].isExpression = true; + } + } + return sql; + } else { + return `${it.name}`; + } + }); + if (value.config.unique) { + if (typeof uniqueConstraintObject[name] !== "undefined") { + console.log( + ` +${withStyle.errorWarning( + `We've found duplicated unique constraint names in ${source_default.underline.blue( + tableName + )} table. +The unique index ${source_default.underline.blue( + name + )} on the ${source_default.underline.blue( + indexColumns.join(",") + )} columns is confilcting with a unique constraint name already defined for ${source_default.underline.blue( + uniqueConstraintObject[name].columns.join(",") + )} columns +` + )}` + ); + process.exit(1); + } + } + indexesObject[name] = { + name, + columns: indexColumns, + isUnique: value.config.unique ?? false, + using: value.config.using, + algorithm: value.config.algorithm, + lock: value.config.lock + }; + }); + if (!schema6) { + result[tableName] = { + name: tableName, + columns: columnsObject, + indexes: indexesObject, + compositePrimaryKeys: primaryKeysObject, + uniqueConstraints: uniqueConstraintObject + }; + } + } + return { + version: "1", + dialect: "singlestore", + tables: result, + /* views: resultViews, */ + _meta: { + tables: {}, + columns: {} + }, + internal + }; + }; + fromDatabase4 = async (db, inputSchema, tablesFilter = (table6) => true, progressCallback) => { + const result = {}; + const internals = { tables: {}, indexes: {} }; + const columns = await db.query(`select * from information_schema.columns + where table_schema = '${inputSchema}' and table_name != '__drizzle_migrations' + order by table_name, ordinal_position;`); + const response = columns; + const schemas = []; + let columnsCount = 0; + let tablesCount = /* @__PURE__ */ new Set(); + let indexesCount = 0; + const idxs = await db.query( + `select * from INFORMATION_SCHEMA.STATISTICS + WHERE INFORMATION_SCHEMA.STATISTICS.TABLE_SCHEMA = '${inputSchema}' and INFORMATION_SCHEMA.STATISTICS.INDEX_NAME != 'PRIMARY';` + ); + const idxRows = idxs; + for (const column11 of response) { + if (!tablesFilter(column11["TABLE_NAME"])) continue; + columnsCount += 1; + if (progressCallback) { + progressCallback("columns", columnsCount, "fetching"); + } + const schema6 = column11["TABLE_SCHEMA"]; + const tableName = column11["TABLE_NAME"]; + tablesCount.add(`${schema6}.${tableName}`); + if (progressCallback) { + progressCallback("columns", tablesCount.size, "fetching"); + } + const columnName = column11["COLUMN_NAME"]; + const isNullable = column11["IS_NULLABLE"] === "YES"; + const dataType = column11["DATA_TYPE"]; + const columnType = column11["COLUMN_TYPE"]; + const isPrimary = column11["COLUMN_KEY"] === "PRI"; + let columnDefault = column11["COLUMN_DEFAULT"]; + const collation = column11["CHARACTER_SET_NAME"]; + const geenratedExpression = column11["GENERATION_EXPRESSION"]; + let columnExtra = column11["EXTRA"]; + let isAutoincrement = false; + let isDefaultAnExpression = false; + if (typeof column11["EXTRA"] !== "undefined") { + columnExtra = column11["EXTRA"]; + isAutoincrement = column11["EXTRA"] === "auto_increment"; + isDefaultAnExpression = column11["EXTRA"].includes("DEFAULT_GENERATED"); + } + if (schema6 !== inputSchema) { + schemas.push(schema6); + } + const table6 = result[tableName]; + let changedType = columnType; + if (columnType === "bigint unsigned" && !isNullable && isAutoincrement) { + const uniqueIdx = idxRows.filter( + (it) => it["COLUMN_NAME"] === columnName && it["TABLE_NAME"] === tableName && it["NON_UNIQUE"] === 0 + ); + if (uniqueIdx && uniqueIdx.length === 1) { + changedType = columnType.replace("bigint unsigned", "serial"); + } + } + if (columnType.startsWith("bigint(") || columnType.startsWith("tinyint(") || columnType.startsWith("date(") || columnType.startsWith("int(") || columnType.startsWith("mediumint(") || columnType.startsWith("smallint(") || columnType.startsWith("text(") || columnType.startsWith("time(") || columnType.startsWith("year(")) { + changedType = columnType.replace(/\(\s*[^)]*\)$/, ""); + } + if (columnType.includes("decimal(10,0)")) { + changedType = columnType.replace("decimal(10,0)", "decimal"); + } + if (columnDefault == null ? void 0 : columnDefault.endsWith(".")) { + columnDefault = columnDefault.slice(0, -1); + } + let onUpdate = void 0; + if (columnType.startsWith("timestamp") && typeof columnExtra !== "undefined" && columnExtra.includes("on update CURRENT_TIMESTAMP")) { + onUpdate = true; + } + const newColumn = { + default: columnDefault === null ? void 0 : /^-?[\d.]+(?:e-?\d+)?$/.test(columnDefault) && !["decimal", "char", "varchar"].some((type) => columnType.startsWith(type)) ? Number(columnDefault) : isDefaultAnExpression ? clearDefaults2(columnDefault, collation) : columnDefault.startsWith("CURRENT_TIMESTAMP") ? "CURRENT_TIMESTAMP" : `'${columnDefault}'`, + autoincrement: isAutoincrement, + name: columnName, + type: changedType, + primaryKey: false, + notNull: !isNullable, + onUpdate, + generated: geenratedExpression ? { + as: geenratedExpression, + type: columnExtra === "VIRTUAL GENERATED" ? "virtual" : "stored" + } : void 0 + }; + if (isDefaultAnExpression) { + if (typeof internals.tables[tableName] === "undefined") { + internals.tables[tableName] = { + columns: { + [columnName]: { + isDefaultAnExpression: true + } + } + }; + } else { + if (typeof internals.tables[tableName].columns[columnName] === "undefined") { + internals.tables[tableName].columns[columnName] = { + isDefaultAnExpression: true + }; + } else { + internals.tables[tableName].columns[columnName].isDefaultAnExpression = true; + } + } + } + if (!table6) { + result[tableName] = { + name: tableName, + columns: { + [columnName]: newColumn + }, + compositePrimaryKeys: {}, + indexes: {}, + uniqueConstraints: {} + }; + } else { + result[tableName].columns[columnName] = newColumn; + } + } + const tablePks = await db.query( + `SELECT table_name, column_name, ordinal_position + FROM information_schema.table_constraints t + LEFT JOIN information_schema.key_column_usage k + USING(constraint_name,table_schema,table_name) + WHERE t.constraint_type='UNIQUE' + and table_name != '__drizzle_migrations' + AND t.table_schema = '${inputSchema}' + ORDER BY ordinal_position` + ); + const tableToPk = {}; + const tableToPkRows = tablePks; + for (const tableToPkRow of tableToPkRows) { + const tableName = tableToPkRow["table_name"]; + const columnName = tableToPkRow["column_name"]; + const position = tableToPkRow["ordinal_position"]; + if (typeof result[tableName] === "undefined") { + continue; + } + if (typeof tableToPk[tableName] === "undefined") { + tableToPk[tableName] = [columnName]; + } else { + tableToPk[tableName].push(columnName); + } + } + for (const [key, value] of Object.entries(tableToPk)) { + result[key].compositePrimaryKeys = { + [`${key}_${value.join("_")}`]: { + name: `${key}_${value.join("_")}`, + columns: value + } + }; + } + if (progressCallback) { + progressCallback("columns", columnsCount, "done"); + progressCallback("tables", tablesCount.size, "done"); + } + for (const idxRow of idxRows) { + const tableSchema = idxRow["TABLE_SCHEMA"]; + const tableName = idxRow["TABLE_NAME"]; + const constraintName = idxRow["INDEX_NAME"]; + const columnName = idxRow["COLUMN_NAME"]; + const isUnique = idxRow["NON_UNIQUE"] === 0; + const tableInResult = result[tableName]; + if (typeof tableInResult === "undefined") continue; + indexesCount += 1; + if (progressCallback) { + progressCallback("indexes", indexesCount, "fetching"); + } + if (isUnique) { + if (typeof tableInResult.uniqueConstraints[constraintName] !== "undefined") { + tableInResult.uniqueConstraints[constraintName].columns.push( + columnName + ); + } else { + tableInResult.uniqueConstraints[constraintName] = { + name: constraintName, + columns: [columnName] + }; + } + } + } + if (progressCallback) { + progressCallback("indexes", indexesCount, "done"); + progressCallback("enums", 0, "done"); + } + return { + version: "1", + dialect: "singlestore", + tables: result, + /* views: resultViews, */ + _meta: { + tables: {}, + columns: {} + }, + internal: internals + }; + }; + } +}); + +// src/serializer/index.ts +var import_fs4, glob, import_path4, serializeMySql, serializePg, serializeSQLite, serializeSingleStore, prepareFilenames; +var init_serializer = __esm({ + "src/serializer/index.ts"() { + "use strict"; + init_source(); + import_fs4 = __toESM(require("fs")); + glob = __toESM(require_glob()); + import_path4 = __toESM(require("path")); + init_views(); + serializeMySql = async (path4, casing2) => { + const filenames = prepareFilenames(path4); + console.log(source_default.gray(`Reading schema files: +${filenames.join("\n")} +`)); + const { prepareFromMySqlImports: prepareFromMySqlImports2 } = await Promise.resolve().then(() => (init_mysqlImports(), mysqlImports_exports)); + const { generateMySqlSnapshot: generateMySqlSnapshot2 } = await Promise.resolve().then(() => (init_mysqlSerializer(), mysqlSerializer_exports)); + const { tables, views } = await prepareFromMySqlImports2(filenames); + return generateMySqlSnapshot2(tables, views, casing2); + }; + serializePg = async (path4, casing2, schemaFilter) => { + const filenames = prepareFilenames(path4); + const { prepareFromPgImports: prepareFromPgImports2 } = await Promise.resolve().then(() => (init_pgImports(), pgImports_exports)); + const { generatePgSnapshot: generatePgSnapshot2 } = await Promise.resolve().then(() => (init_pgSerializer(), pgSerializer_exports)); + const { tables, enums, schemas, sequences, views, matViews, roles, policies } = await prepareFromPgImports2( + filenames + ); + return generatePgSnapshot2(tables, enums, schemas, sequences, roles, policies, views, matViews, casing2, schemaFilter); + }; + serializeSQLite = async (path4, casing2) => { + const filenames = prepareFilenames(path4); + const { prepareFromSqliteImports: prepareFromSqliteImports2 } = await Promise.resolve().then(() => (init_sqliteImports(), sqliteImports_exports)); + const { generateSqliteSnapshot: generateSqliteSnapshot2 } = await Promise.resolve().then(() => (init_sqliteSerializer(), sqliteSerializer_exports)); + const { tables, views } = await prepareFromSqliteImports2(filenames); + return generateSqliteSnapshot2(tables, views, casing2); + }; + serializeSingleStore = async (path4, casing2) => { + const filenames = prepareFilenames(path4); + console.log(source_default.gray(`Reading schema files: +${filenames.join("\n")} +`)); + const { prepareFromSingleStoreImports: prepareFromSingleStoreImports2 } = await Promise.resolve().then(() => (init_singlestoreImports(), singlestoreImports_exports)); + const { generateSingleStoreSnapshot: generateSingleStoreSnapshot2 } = await Promise.resolve().then(() => (init_singlestoreSerializer(), singlestoreSerializer_exports)); + const { + tables + /* views */ + } = await prepareFromSingleStoreImports2(filenames); + return generateSingleStoreSnapshot2( + tables, + /* views, */ + casing2 + ); + }; + prepareFilenames = (path4) => { + if (typeof path4 === "string") { + path4 = [path4]; + } + const prefix2 = process.env.TEST_CONFIG_PATH_PREFIX || ""; + const result = path4.reduce((result2, cur) => { + const globbed = glob.sync(`${prefix2}${cur}`); + globbed.forEach((it) => { + const fileName = import_fs4.default.lstatSync(it).isDirectory() ? null : import_path4.default.resolve(it); + const filenames = fileName ? [fileName] : import_fs4.default.readdirSync(it).map((file) => import_path4.default.join(import_path4.default.resolve(it), file)); + filenames.filter((file) => !import_fs4.default.lstatSync(file).isDirectory()).forEach((file) => result2.add(file)); + }); + return result2; + }, /* @__PURE__ */ new Set()); + const res = [...result]; + const errors = res.filter((it) => { + return !(it.endsWith(".ts") || it.endsWith(".js") || it.endsWith(".cjs") || it.endsWith(".mjs") || it.endsWith(".mts") || it.endsWith(".cts")); + }); + if (res.length === 0) { + console.log( + error( + `No schema files found for path config [${path4.map((it) => `'${it}'`).join(", ")}]` + ) + ); + console.log( + error( + `If path represents a file - please make sure to use .ts or other extension in the path` + ) + ); + process.exit(1); + } + return res; + }; + } +}); + +// src/migrationPreparator.ts +var import_crypto, import_fs5, prepareMySqlDbPushSnapshot, prepareSingleStoreDbPushSnapshot, prepareSQLiteDbPushSnapshot, prepareMySqlMigrationSnapshot, prepareSingleStoreMigrationSnapshot, prepareSqliteMigrationSnapshot, preparePgMigrationSnapshot, preparePrevSnapshot; +var init_migrationPreparator = __esm({ + "src/migrationPreparator.ts"() { + "use strict"; + import_crypto = require("crypto"); + import_fs5 = __toESM(require("fs")); + init_serializer(); + init_mysqlSchema(); + init_pgSchema(); + init_singlestoreSchema(); + init_sqliteSchema(); + prepareMySqlDbPushSnapshot = async (prev, schemaPath, casing2) => { + const serialized = await serializeMySql(schemaPath, casing2); + const id = (0, import_crypto.randomUUID)(); + const idPrev = prev.id; + const { version: version3, dialect: dialect6, ...rest } = serialized; + const result = { version: version3, dialect: dialect6, id, prevId: idPrev, ...rest }; + return { prev, cur: result }; + }; + prepareSingleStoreDbPushSnapshot = async (prev, schemaPath, casing2) => { + const serialized = await serializeSingleStore(schemaPath, casing2); + const id = (0, import_crypto.randomUUID)(); + const idPrev = prev.id; + const { version: version3, dialect: dialect6, ...rest } = serialized; + const result = { version: version3, dialect: dialect6, id, prevId: idPrev, ...rest }; + return { prev, cur: result }; + }; + prepareSQLiteDbPushSnapshot = async (prev, schemaPath, casing2) => { + const serialized = await serializeSQLite(schemaPath, casing2); + const id = (0, import_crypto.randomUUID)(); + const idPrev = prev.id; + const { version: version3, dialect: dialect6, ...rest } = serialized; + const result = { + version: version3, + dialect: dialect6, + id, + prevId: idPrev, + ...rest + }; + return { prev, cur: result }; + }; + prepareMySqlMigrationSnapshot = async (migrationFolders, schemaPath, casing2) => { + const prevSnapshot = mysqlSchema.parse( + preparePrevSnapshot(migrationFolders, dryMySql) + ); + const serialized = await serializeMySql(schemaPath, casing2); + const id = (0, import_crypto.randomUUID)(); + const idPrev = prevSnapshot.id; + const { version: version3, dialect: dialect6, ...rest } = serialized; + const result = { version: version3, dialect: dialect6, id, prevId: idPrev, ...rest }; + const { id: _ignoredId, prevId: _ignoredPrevId, ...prevRest } = prevSnapshot; + const custom2 = { + id, + prevId: idPrev, + ...prevRest + }; + return { prev: prevSnapshot, cur: result, custom: custom2 }; + }; + prepareSingleStoreMigrationSnapshot = async (migrationFolders, schemaPath, casing2) => { + const prevSnapshot = singlestoreSchema.parse( + preparePrevSnapshot(migrationFolders, drySingleStore) + ); + const serialized = await serializeSingleStore(schemaPath, casing2); + const id = (0, import_crypto.randomUUID)(); + const idPrev = prevSnapshot.id; + const { version: version3, dialect: dialect6, ...rest } = serialized; + const result = { version: version3, dialect: dialect6, id, prevId: idPrev, ...rest }; + const { id: _ignoredId, prevId: _ignoredPrevId, ...prevRest } = prevSnapshot; + const custom2 = { + id, + prevId: idPrev, + ...prevRest + }; + return { prev: prevSnapshot, cur: result, custom: custom2 }; + }; + prepareSqliteMigrationSnapshot = async (snapshots, schemaPath, casing2) => { + const prevSnapshot = sqliteSchema.parse( + preparePrevSnapshot(snapshots, drySQLite) + ); + const serialized = await serializeSQLite(schemaPath, casing2); + const id = (0, import_crypto.randomUUID)(); + const idPrev = prevSnapshot.id; + const { version: version3, dialect: dialect6, ...rest } = serialized; + const result = { + version: version3, + dialect: dialect6, + id, + prevId: idPrev, + ...rest + }; + const { id: _ignoredId, prevId: _ignoredPrevId, ...prevRest } = prevSnapshot; + const custom2 = { + id, + prevId: idPrev, + ...prevRest + }; + return { prev: prevSnapshot, cur: result, custom: custom2 }; + }; + preparePgMigrationSnapshot = async (snapshots, schemaPath, casing2) => { + const prevSnapshot = pgSchema.parse(preparePrevSnapshot(snapshots, dryPg)); + const serialized = await serializePg(schemaPath, casing2); + const id = (0, import_crypto.randomUUID)(); + const idPrev = prevSnapshot.id; + const result = { id, prevId: idPrev, ...serialized }; + const { id: _ignoredId, prevId: _ignoredPrevId, ...prevRest } = prevSnapshot; + const custom2 = { + id, + prevId: idPrev, + ...prevRest + }; + return { prev: prevSnapshot, cur: result, custom: custom2 }; + }; + preparePrevSnapshot = (snapshots, defaultPrev) => { + let prevSnapshot; + if (snapshots.length === 0) { + prevSnapshot = defaultPrev; + } else { + const lastSnapshot = snapshots[snapshots.length - 1]; + prevSnapshot = JSON.parse(import_fs5.default.readFileSync(lastSnapshot).toString()); + } + return prevSnapshot; + }; + } +}); + +// ../node_modules/.pnpm/heap@0.2.7/node_modules/heap/lib/heap.js +var require_heap = __commonJS({ + "../node_modules/.pnpm/heap@0.2.7/node_modules/heap/lib/heap.js"(exports2, module2) { + (function() { + var Heap, defaultCmp, floor, heapify, heappop, heappush, heappushpop, heapreplace, insort, min, nlargest, nsmallest, updateItem, _siftdown, _siftup; + floor = Math.floor, min = Math.min; + defaultCmp = function(x4, y2) { + if (x4 < y2) { + return -1; + } + if (x4 > y2) { + return 1; + } + return 0; + }; + insort = function(a3, x4, lo, hi, cmp) { + var mid; + if (lo == null) { + lo = 0; + } + if (cmp == null) { + cmp = defaultCmp; + } + if (lo < 0) { + throw new Error("lo must be non-negative"); + } + if (hi == null) { + hi = a3.length; + } + while (lo < hi) { + mid = floor((lo + hi) / 2); + if (cmp(x4, a3[mid]) < 0) { + hi = mid; + } else { + lo = mid + 1; + } + } + return [].splice.apply(a3, [lo, lo - lo].concat(x4)), x4; + }; + heappush = function(array2, item, cmp) { + if (cmp == null) { + cmp = defaultCmp; + } + array2.push(item); + return _siftdown(array2, 0, array2.length - 1, cmp); + }; + heappop = function(array2, cmp) { + var lastelt, returnitem; + if (cmp == null) { + cmp = defaultCmp; + } + lastelt = array2.pop(); + if (array2.length) { + returnitem = array2[0]; + array2[0] = lastelt; + _siftup(array2, 0, cmp); + } else { + returnitem = lastelt; + } + return returnitem; + }; + heapreplace = function(array2, item, cmp) { + var returnitem; + if (cmp == null) { + cmp = defaultCmp; + } + returnitem = array2[0]; + array2[0] = item; + _siftup(array2, 0, cmp); + return returnitem; + }; + heappushpop = function(array2, item, cmp) { + var _ref; + if (cmp == null) { + cmp = defaultCmp; + } + if (array2.length && cmp(array2[0], item) < 0) { + _ref = [array2[0], item], item = _ref[0], array2[0] = _ref[1]; + _siftup(array2, 0, cmp); + } + return item; + }; + heapify = function(array2, cmp) { + var i4, _i, _j, _len, _ref, _ref1, _results, _results1; + if (cmp == null) { + cmp = defaultCmp; + } + _ref1 = function() { + _results1 = []; + for (var _j2 = 0, _ref2 = floor(array2.length / 2); 0 <= _ref2 ? _j2 < _ref2 : _j2 > _ref2; 0 <= _ref2 ? _j2++ : _j2--) { + _results1.push(_j2); + } + return _results1; + }.apply(this).reverse(); + _results = []; + for (_i = 0, _len = _ref1.length; _i < _len; _i++) { + i4 = _ref1[_i]; + _results.push(_siftup(array2, i4, cmp)); + } + return _results; + }; + updateItem = function(array2, item, cmp) { + var pos; + if (cmp == null) { + cmp = defaultCmp; + } + pos = array2.indexOf(item); + if (pos === -1) { + return; + } + _siftdown(array2, 0, pos, cmp); + return _siftup(array2, pos, cmp); + }; + nlargest = function(array2, n3, cmp) { + var elem, result, _i, _len, _ref; + if (cmp == null) { + cmp = defaultCmp; + } + result = array2.slice(0, n3); + if (!result.length) { + return result; + } + heapify(result, cmp); + _ref = array2.slice(n3); + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + elem = _ref[_i]; + heappushpop(result, elem, cmp); + } + return result.sort(cmp).reverse(); + }; + nsmallest = function(array2, n3, cmp) { + var elem, i4, los, result, _i, _j, _len, _ref, _ref1, _results; + if (cmp == null) { + cmp = defaultCmp; + } + if (n3 * 10 <= array2.length) { + result = array2.slice(0, n3).sort(cmp); + if (!result.length) { + return result; + } + los = result[result.length - 1]; + _ref = array2.slice(n3); + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + elem = _ref[_i]; + if (cmp(elem, los) < 0) { + insort(result, elem, 0, null, cmp); + result.pop(); + los = result[result.length - 1]; + } + } + return result; + } + heapify(array2, cmp); + _results = []; + for (i4 = _j = 0, _ref1 = min(n3, array2.length); 0 <= _ref1 ? _j < _ref1 : _j > _ref1; i4 = 0 <= _ref1 ? ++_j : --_j) { + _results.push(heappop(array2, cmp)); + } + return _results; + }; + _siftdown = function(array2, startpos, pos, cmp) { + var newitem, parent, parentpos; + if (cmp == null) { + cmp = defaultCmp; + } + newitem = array2[pos]; + while (pos > startpos) { + parentpos = pos - 1 >> 1; + parent = array2[parentpos]; + if (cmp(newitem, parent) < 0) { + array2[pos] = parent; + pos = parentpos; + continue; + } + break; + } + return array2[pos] = newitem; + }; + _siftup = function(array2, pos, cmp) { + var childpos, endpos, newitem, rightpos, startpos; + if (cmp == null) { + cmp = defaultCmp; + } + endpos = array2.length; + startpos = pos; + newitem = array2[pos]; + childpos = 2 * pos + 1; + while (childpos < endpos) { + rightpos = childpos + 1; + if (rightpos < endpos && !(cmp(array2[childpos], array2[rightpos]) < 0)) { + childpos = rightpos; + } + array2[pos] = array2[childpos]; + pos = childpos; + childpos = 2 * pos + 1; + } + array2[pos] = newitem; + return _siftdown(array2, startpos, pos, cmp); + }; + Heap = function() { + Heap2.push = heappush; + Heap2.pop = heappop; + Heap2.replace = heapreplace; + Heap2.pushpop = heappushpop; + Heap2.heapify = heapify; + Heap2.updateItem = updateItem; + Heap2.nlargest = nlargest; + Heap2.nsmallest = nsmallest; + function Heap2(cmp) { + this.cmp = cmp != null ? cmp : defaultCmp; + this.nodes = []; + } + Heap2.prototype.push = function(x4) { + return heappush(this.nodes, x4, this.cmp); + }; + Heap2.prototype.pop = function() { + return heappop(this.nodes, this.cmp); + }; + Heap2.prototype.peek = function() { + return this.nodes[0]; + }; + Heap2.prototype.contains = function(x4) { + return this.nodes.indexOf(x4) !== -1; + }; + Heap2.prototype.replace = function(x4) { + return heapreplace(this.nodes, x4, this.cmp); + }; + Heap2.prototype.pushpop = function(x4) { + return heappushpop(this.nodes, x4, this.cmp); + }; + Heap2.prototype.heapify = function() { + return heapify(this.nodes, this.cmp); + }; + Heap2.prototype.updateItem = function(x4) { + return updateItem(this.nodes, x4, this.cmp); + }; + Heap2.prototype.clear = function() { + return this.nodes = []; + }; + Heap2.prototype.empty = function() { + return this.nodes.length === 0; + }; + Heap2.prototype.size = function() { + return this.nodes.length; + }; + Heap2.prototype.clone = function() { + var heap; + heap = new Heap2(); + heap.nodes = this.nodes.slice(0); + return heap; + }; + Heap2.prototype.toArray = function() { + return this.nodes.slice(0); + }; + Heap2.prototype.insert = Heap2.prototype.push; + Heap2.prototype.top = Heap2.prototype.peek; + Heap2.prototype.front = Heap2.prototype.peek; + Heap2.prototype.has = Heap2.prototype.contains; + Heap2.prototype.copy = Heap2.prototype.clone; + return Heap2; + }(); + (function(root, factory) { + if (typeof define === "function" && define.amd) { + return define([], factory); + } else if (typeof exports2 === "object") { + return module2.exports = factory(); + } else { + return root.Heap = factory(); + } + })(this, function() { + return Heap; + }); + }).call(exports2); + } +}); + +// ../node_modules/.pnpm/heap@0.2.7/node_modules/heap/index.js +var require_heap2 = __commonJS({ + "../node_modules/.pnpm/heap@0.2.7/node_modules/heap/index.js"(exports2, module2) { + module2.exports = require_heap(); + } +}); + +// ../node_modules/.pnpm/@ewoudenberg+difflib@0.1.0/node_modules/@ewoudenberg/difflib/lib/difflib.js +var require_difflib = __commonJS({ + "../node_modules/.pnpm/@ewoudenberg+difflib@0.1.0/node_modules/@ewoudenberg/difflib/lib/difflib.js"(exports2) { + (function() { + var Differ, Heap, IS_CHARACTER_JUNK, IS_LINE_JUNK, SequenceMatcher, _any, _arrayCmp, _calculateRatio, _countLeading, _formatRangeContext, _formatRangeUnified, _has, assert, contextDiff, floor, getCloseMatches, max, min, ndiff, restore, unifiedDiff, indexOf = [].indexOf; + ({ floor, max, min } = Math); + Heap = require_heap2(); + assert = require("assert"); + _calculateRatio = function(matches, length) { + if (length) { + return 2 * matches / length; + } else { + return 1; + } + }; + _arrayCmp = function(a3, b3) { + var i4, l3, la, lb, ref; + [la, lb] = [a3.length, b3.length]; + for (i4 = l3 = 0, ref = min(la, lb); 0 <= ref ? l3 < ref : l3 > ref; i4 = 0 <= ref ? ++l3 : --l3) { + if (a3[i4] < b3[i4]) { + return -1; + } + if (a3[i4] > b3[i4]) { + return 1; + } + } + return la - lb; + }; + _has = function(obj, key) { + return Object.prototype.hasOwnProperty.call(obj, key); + }; + _any = function(items) { + var item, l3, len; + for (l3 = 0, len = items.length; l3 < len; l3++) { + item = items[l3]; + if (item) { + return true; + } + } + return false; + }; + SequenceMatcher = class SequenceMatcher { + /* + SequenceMatcher is a flexible class for comparing pairs of sequences of + any type, so long as the sequence elements are hashable. The basic + algorithm predates, and is a little fancier than, an algorithm + published in the late 1980's by Ratcliff and Obershelp under the + hyperbolic name "gestalt pattern matching". The basic idea is to find + the longest contiguous matching subsequence that contains no "junk" + elements (R-O doesn't address junk). The same idea is then applied + recursively to the pieces of the sequences to the left and to the right + of the matching subsequence. This does not yield minimal edit + sequences, but does tend to yield matches that "look right" to people. + + SequenceMatcher tries to compute a "human-friendly diff" between two + sequences. Unlike e.g. UNIX(tm) diff, the fundamental notion is the + longest *contiguous* & junk-free matching subsequence. That's what + catches peoples' eyes. The Windows(tm) windiff has another interesting + notion, pairing up elements that appear uniquely in each sequence. + That, and the method here, appear to yield more intuitive difference + reports than does diff. This method appears to be the least vulnerable + to synching up on blocks of "junk lines", though (like blank lines in + ordinary text files, or maybe "

" lines in HTML files). That may be + because this is the only method of the 3 that has a *concept* of + "junk" . + + Example, comparing two strings, and considering blanks to be "junk": + + >>> isjunk = (c) -> c is ' ' + >>> s = new SequenceMatcher(isjunk, + 'private Thread currentThread;', + 'private volatile Thread currentThread;') + + .ratio() returns a float in [0, 1], measuring the "similarity" of the + sequences. As a rule of thumb, a .ratio() value over 0.6 means the + sequences are close matches: + + >>> s.ratio().toPrecision(3) + '0.866' + + If you're only interested in where the sequences match, + .getMatchingBlocks() is handy: + + >>> for [a, b, size] in s.getMatchingBlocks() + ... console.log("a[#{a}] and b[#{b}] match for #{size} elements"); + a[0] and b[0] match for 8 elements + a[8] and b[17] match for 21 elements + a[29] and b[38] match for 0 elements + + Note that the last tuple returned by .get_matching_blocks() is always a + dummy, (len(a), len(b), 0), and this is the only case in which the last + tuple element (number of elements matched) is 0. + + If you want to know how to change the first sequence into the second, + use .get_opcodes(): + + >>> for [op, a1, a2, b1, b2] in s.getOpcodes() + ... console.log "#{op} a[#{a1}:#{a2}] b[#{b1}:#{b2}]" + equal a[0:8] b[0:8] + insert a[8:8] b[8:17] + equal a[8:29] b[17:38] + + See the Differ class for a fancy human-friendly file differencer, which + uses SequenceMatcher both to compare sequences of lines, and to compare + sequences of characters within similar (near-matching) lines. + + See also function getCloseMatches() in this module, which shows how + simple code building on SequenceMatcher can be used to do useful work. + + Timing: Basic R-O is cubic time worst case and quadratic time expected + case. SequenceMatcher is quadratic time for the worst case and has + expected-case behavior dependent in a complicated way on how many + elements the sequences have in common; best case time is linear. + + Methods: + + constructor(isjunk=null, a='', b='') + Construct a SequenceMatcher. + + setSeqs(a, b) + Set the two sequences to be compared. + + setSeq1(a) + Set the first sequence to be compared. + + setSeq2(b) + Set the second sequence to be compared. + + findLongestMatch(alo, ahi, blo, bhi) + Find longest matching block in a[alo:ahi] and b[blo:bhi]. + + getMatchingBlocks() + Return list of triples describing matching subsequences. + + getOpcodes() + Return list of 5-tuples describing how to turn a into b. + + ratio() + Return a measure of the sequences' similarity (float in [0,1]). + + quickRatio() + Return an upper bound on .ratio() relatively quickly. + + realQuickRatio() + Return an upper bound on ratio() very quickly. + */ + constructor(isjunk1, a3 = "", b3 = "", autojunk = true) { + this.isjunk = isjunk1; + this.autojunk = autojunk; + this.a = this.b = null; + this.setSeqs(a3, b3); + } + setSeqs(a3, b3) { + this.setSeq1(a3); + return this.setSeq2(b3); + } + setSeq1(a3) { + if (a3 === this.a) { + return; + } + this.a = a3; + return this.matchingBlocks = this.opcodes = null; + } + setSeq2(b3) { + if (b3 === this.b) { + return; + } + this.b = b3; + this.matchingBlocks = this.opcodes = null; + this.fullbcount = null; + return this._chainB(); + } + // For each element x in b, set b2j[x] to a list of the indices in + // b where x appears; the indices are in increasing order; note that + // the number of times x appears in b is b2j[x].length ... + // when @isjunk is defined, junk elements don't show up in this + // map at all, which stops the central findLongestMatch method + // from starting any matching block at a junk element ... + // also creates the fast isbjunk function ... + // b2j also does not contain entries for "popular" elements, meaning + // elements that account for more than 1 + 1% of the total elements, and + // when the sequence is reasonably large (>= 200 elements); this can + // be viewed as an adaptive notion of semi-junk, and yields an enormous + // speedup when, e.g., comparing program files with hundreds of + // instances of "return null;" ... + // note that this is only called when b changes; so for cross-product + // kinds of matches, it's best to call setSeq2 once, then setSeq1 + // repeatedly + _chainB() { + var b3, b2j, elt, i4, indices, isjunk, junk, l3, len, n3, ntest, popular; + b3 = this.b; + this.b2j = b2j = /* @__PURE__ */ new Map(); + for (i4 = l3 = 0, len = b3.length; l3 < len; i4 = ++l3) { + elt = b3[i4]; + if (!b2j.has(elt)) { + b2j.set(elt, []); + } + indices = b2j.get(elt); + indices.push(i4); + } + junk = /* @__PURE__ */ new Map(); + isjunk = this.isjunk; + if (isjunk) { + b2j.forEach(function(idxs, elt2) { + if (isjunk(elt2)) { + junk.set(elt2, true); + return b2j.delete(elt2); + } + }); + } + popular = /* @__PURE__ */ new Map(); + n3 = b3.length; + if (this.autojunk && n3 >= 200) { + ntest = floor(n3 / 100) + 1; + b2j.forEach(function(idxs, elt2) { + if (idxs.length > ntest) { + popular.set(elt2, true); + return b2j.delete(elt2); + } + }); + } + this.isbjunk = function(b4) { + return junk.has(b4); + }; + return this.isbpopular = function(b4) { + return popular.has(b4); + }; + } + findLongestMatch(alo, ahi, blo, bhi) { + var a3, b3, b2j, besti, bestj, bestsize, i4, isbjunk, j3, j2len, jlist, k3, l3, len, m4, newj2len, ref, ref1; + [a3, b3, b2j, isbjunk] = [this.a, this.b, this.b2j, this.isbjunk]; + [besti, bestj, bestsize] = [alo, blo, 0]; + j2len = {}; + for (i4 = l3 = ref = alo, ref1 = ahi; ref <= ref1 ? l3 < ref1 : l3 > ref1; i4 = ref <= ref1 ? ++l3 : --l3) { + newj2len = {}; + jlist = []; + if (b2j.has(a3[i4])) { + jlist = b2j.get(a3[i4]); + } + for (m4 = 0, len = jlist.length; m4 < len; m4++) { + j3 = jlist[m4]; + if (j3 < blo) { + continue; + } + if (j3 >= bhi) { + break; + } + k3 = newj2len[j3] = (j2len[j3 - 1] || 0) + 1; + if (k3 > bestsize) { + [besti, bestj, bestsize] = [i4 - k3 + 1, j3 - k3 + 1, k3]; + } + } + j2len = newj2len; + } + while (besti > alo && bestj > blo && !isbjunk(b3[bestj - 1]) && a3[besti - 1] === b3[bestj - 1]) { + [besti, bestj, bestsize] = [besti - 1, bestj - 1, bestsize + 1]; + } + while (besti + bestsize < ahi && bestj + bestsize < bhi && !isbjunk(b3[bestj + bestsize]) && a3[besti + bestsize] === b3[bestj + bestsize]) { + bestsize++; + } + while (besti > alo && bestj > blo && isbjunk(b3[bestj - 1]) && a3[besti - 1] === b3[bestj - 1]) { + [besti, bestj, bestsize] = [besti - 1, bestj - 1, bestsize + 1]; + } + while (besti + bestsize < ahi && bestj + bestsize < bhi && isbjunk(b3[bestj + bestsize]) && a3[besti + bestsize] === b3[bestj + bestsize]) { + bestsize++; + } + return [besti, bestj, bestsize]; + } + getMatchingBlocks() { + var ahi, alo, bhi, blo, i4, i1, i22, j3, j1, j22, k3, k1, k22, l3, la, lb, len, matchingBlocks, nonAdjacent, queue, x4; + if (this.matchingBlocks) { + return this.matchingBlocks; + } + [la, lb] = [this.a.length, this.b.length]; + queue = [[0, la, 0, lb]]; + matchingBlocks = []; + while (queue.length) { + [alo, ahi, blo, bhi] = queue.pop(); + [i4, j3, k3] = x4 = this.findLongestMatch(alo, ahi, blo, bhi); + if (k3) { + matchingBlocks.push(x4); + if (alo < i4 && blo < j3) { + queue.push([alo, i4, blo, j3]); + } + if (i4 + k3 < ahi && j3 + k3 < bhi) { + queue.push([i4 + k3, ahi, j3 + k3, bhi]); + } + } + } + matchingBlocks.sort(_arrayCmp); + i1 = j1 = k1 = 0; + nonAdjacent = []; + for (l3 = 0, len = matchingBlocks.length; l3 < len; l3++) { + [i22, j22, k22] = matchingBlocks[l3]; + if (i1 + k1 === i22 && j1 + k1 === j22) { + k1 += k22; + } else { + if (k1) { + nonAdjacent.push([i1, j1, k1]); + } + [i1, j1, k1] = [i22, j22, k22]; + } + } + if (k1) { + nonAdjacent.push([i1, j1, k1]); + } + nonAdjacent.push([la, lb, 0]); + return this.matchingBlocks = nonAdjacent; + } + getOpcodes() { + var ai, answer, bj, i4, j3, l3, len, ref, size, tag; + if (this.opcodes) { + return this.opcodes; + } + i4 = j3 = 0; + this.opcodes = answer = []; + ref = this.getMatchingBlocks(); + for (l3 = 0, len = ref.length; l3 < len; l3++) { + [ai, bj, size] = ref[l3]; + tag = ""; + if (i4 < ai && j3 < bj) { + tag = "replace"; + } else if (i4 < ai) { + tag = "delete"; + } else if (j3 < bj) { + tag = "insert"; + } + if (tag) { + answer.push([tag, i4, ai, j3, bj]); + } + [i4, j3] = [ai + size, bj + size]; + if (size) { + answer.push(["equal", ai, i4, bj, j3]); + } + } + return answer; + } + getGroupedOpcodes(n3 = 3) { + var codes, group, groups, i1, i22, j1, j22, l3, len, nn, tag; + codes = this.getOpcodes(); + if (!codes.length) { + codes = [["equal", 0, 1, 0, 1]]; + } + if (codes[0][0] === "equal") { + [tag, i1, i22, j1, j22] = codes[0]; + codes[0] = [tag, max(i1, i22 - n3), i22, max(j1, j22 - n3), j22]; + } + if (codes[codes.length - 1][0] === "equal") { + [tag, i1, i22, j1, j22] = codes[codes.length - 1]; + codes[codes.length - 1] = [tag, i1, min(i22, i1 + n3), j1, min(j22, j1 + n3)]; + } + nn = n3 + n3; + groups = []; + group = []; + for (l3 = 0, len = codes.length; l3 < len; l3++) { + [tag, i1, i22, j1, j22] = codes[l3]; + if (tag === "equal" && i22 - i1 > nn) { + group.push([tag, i1, min(i22, i1 + n3), j1, min(j22, j1 + n3)]); + groups.push(group); + group = []; + [i1, j1] = [max(i1, i22 - n3), max(j1, j22 - n3)]; + } + group.push([tag, i1, i22, j1, j22]); + } + if (group.length && !(group.length === 1 && group[0][0] === "equal")) { + groups.push(group); + } + return groups; + } + ratio() { + var l3, len, match2, matches, ref; + matches = 0; + ref = this.getMatchingBlocks(); + for (l3 = 0, len = ref.length; l3 < len; l3++) { + match2 = ref[l3]; + matches += match2[2]; + } + return _calculateRatio(matches, this.a.length + this.b.length); + } + quickRatio() { + var avail, elt, fullbcount, l3, len, len1, m4, matches, numb, ref, ref1; + if (!this.fullbcount) { + this.fullbcount = fullbcount = {}; + ref = this.b; + for (l3 = 0, len = ref.length; l3 < len; l3++) { + elt = ref[l3]; + fullbcount[elt] = (fullbcount[elt] || 0) + 1; + } + } + fullbcount = this.fullbcount; + avail = {}; + matches = 0; + ref1 = this.a; + for (m4 = 0, len1 = ref1.length; m4 < len1; m4++) { + elt = ref1[m4]; + if (_has(avail, elt)) { + numb = avail[elt]; + } else { + numb = fullbcount[elt] || 0; + } + avail[elt] = numb - 1; + if (numb > 0) { + matches++; + } + } + return _calculateRatio(matches, this.a.length + this.b.length); + } + realQuickRatio() { + var la, lb; + [la, lb] = [this.a.length, this.b.length]; + return _calculateRatio(min(la, lb), la + lb); + } + }; + getCloseMatches = function(word, possibilities, n3 = 3, cutoff = 0.6) { + var l3, len, len1, m4, result, results, s4, score, x4; + if (!(n3 > 0)) { + throw new Error(`n must be > 0: (${n3})`); + } + if (!(0 <= cutoff && cutoff <= 1)) { + throw new Error(`cutoff must be in [0.0, 1.0]: (${cutoff})`); + } + result = []; + s4 = new SequenceMatcher(); + s4.setSeq2(word); + for (l3 = 0, len = possibilities.length; l3 < len; l3++) { + x4 = possibilities[l3]; + s4.setSeq1(x4); + if (s4.realQuickRatio() >= cutoff && s4.quickRatio() >= cutoff && s4.ratio() >= cutoff) { + result.push([s4.ratio(), x4]); + } + } + result = Heap.nlargest(result, n3, _arrayCmp); + results = []; + for (m4 = 0, len1 = result.length; m4 < len1; m4++) { + [score, x4] = result[m4]; + results.push(x4); + } + return results; + }; + _countLeading = function(line, ch) { + var i4, n3; + [i4, n3] = [0, line.length]; + while (i4 < n3 && line[i4] === ch) { + i4++; + } + return i4; + }; + Differ = class Differ { + /* + Differ is a class for comparing sequences of lines of text, and + producing human-readable differences or deltas. Differ uses + SequenceMatcher both to compare sequences of lines, and to compare + sequences of characters within similar (near-matching) lines. + + Each line of a Differ delta begins with a two-letter code: + + '- ' line unique to sequence 1 + '+ ' line unique to sequence 2 + ' ' line common to both sequences + '? ' line not present in either input sequence + + Lines beginning with '? ' attempt to guide the eye to intraline + differences, and were not present in either input sequence. These lines + can be confusing if the sequences contain tab characters. + + Note that Differ makes no claim to produce a *minimal* diff. To the + contrary, minimal diffs are often counter-intuitive, because they synch + up anywhere possible, sometimes accidental matches 100 pages apart. + Restricting synch points to contiguous matches preserves some notion of + locality, at the occasional cost of producing a longer diff. + + Example: Comparing two texts. + + >>> text1 = ['1. Beautiful is better than ugly.\n', + ... '2. Explicit is better than implicit.\n', + ... '3. Simple is better than complex.\n', + ... '4. Complex is better than complicated.\n'] + >>> text1.length + 4 + >>> text2 = ['1. Beautiful is better than ugly.\n', + ... '3. Simple is better than complex.\n', + ... '4. Complicated is better than complex.\n', + ... '5. Flat is better than nested.\n'] + + Next we instantiate a Differ object: + + >>> d = new Differ() + + Note that when instantiating a Differ object we may pass functions to + filter out line and character 'junk'. + + Finally, we compare the two: + + >>> result = d.compare(text1, text2) + [ ' 1. Beautiful is better than ugly.\n', + '- 2. Explicit is better than implicit.\n', + '- 3. Simple is better than complex.\n', + '+ 3. Simple is better than complex.\n', + '? ++\n', + '- 4. Complex is better than complicated.\n', + '? ^ ---- ^\n', + '+ 4. Complicated is better than complex.\n', + '? ++++ ^ ^\n', + '+ 5. Flat is better than nested.\n' ] + + Methods: + + constructor(linejunk=null, charjunk=null) + Construct a text differencer, with optional filters. + compare(a, b) + Compare two sequences of lines; generate the resulting delta. + */ + constructor(linejunk1, charjunk1) { + this.linejunk = linejunk1; + this.charjunk = charjunk1; + } + /* + Construct a text differencer, with optional filters. + + The two optional keyword parameters are for filter functions: + + - `linejunk`: A function that should accept a single string argument, + and return true iff the string is junk. The module-level function + `IS_LINE_JUNK` may be used to filter out lines without visible + characters, except for at most one splat ('#'). It is recommended + to leave linejunk null. + + - `charjunk`: A function that should accept a string of length 1. The + module-level function `IS_CHARACTER_JUNK` may be used to filter out + whitespace characters (a blank or tab; **note**: bad idea to include + newline in this!). Use of IS_CHARACTER_JUNK is recommended. + */ + compare(a3, b3) { + var ahi, alo, bhi, blo, cruncher, g3, l3, len, len1, line, lines, m4, ref, tag; + cruncher = new SequenceMatcher(this.linejunk, a3, b3); + lines = []; + ref = cruncher.getOpcodes(); + for (l3 = 0, len = ref.length; l3 < len; l3++) { + [tag, alo, ahi, blo, bhi] = ref[l3]; + switch (tag) { + case "replace": + g3 = this._fancyReplace(a3, alo, ahi, b3, blo, bhi); + break; + case "delete": + g3 = this._dump("-", a3, alo, ahi); + break; + case "insert": + g3 = this._dump("+", b3, blo, bhi); + break; + case "equal": + g3 = this._dump(" ", a3, alo, ahi); + break; + default: + throw new Error(`unknow tag (${tag})`); + } + for (m4 = 0, len1 = g3.length; m4 < len1; m4++) { + line = g3[m4]; + lines.push(line); + } + } + return lines; + } + _dump(tag, x4, lo, hi) { + var i4, l3, ref, ref1, results; + results = []; + for (i4 = l3 = ref = lo, ref1 = hi; ref <= ref1 ? l3 < ref1 : l3 > ref1; i4 = ref <= ref1 ? ++l3 : --l3) { + results.push(`${tag} ${x4[i4]}`); + } + return results; + } + _plainReplace(a3, alo, ahi, b3, blo, bhi) { + var first, g3, l3, len, len1, line, lines, m4, ref, second; + assert(alo < ahi && blo < bhi); + if (bhi - blo < ahi - alo) { + first = this._dump("+", b3, blo, bhi); + second = this._dump("-", a3, alo, ahi); + } else { + first = this._dump("-", a3, alo, ahi); + second = this._dump("+", b3, blo, bhi); + } + lines = []; + ref = [first, second]; + for (l3 = 0, len = ref.length; l3 < len; l3++) { + g3 = ref[l3]; + for (m4 = 0, len1 = g3.length; m4 < len1; m4++) { + line = g3[m4]; + lines.push(line); + } + } + return lines; + } + _fancyReplace(a3, alo, ahi, b3, blo, bhi) { + var aelt, ai, ai1, ai2, atags, belt, bestRatio, besti, bestj, bj, bj1, bj2, btags, cruncher, cutoff, eqi, eqj, i4, j3, l3, la, lb, len, len1, len2, len3, len4, line, lines, m4, o3, p3, q3, r4, ref, ref1, ref2, ref3, ref4, ref5, ref6, ref7, ref8, t4, tag; + [bestRatio, cutoff] = [0.74, 0.75]; + cruncher = new SequenceMatcher(this.charjunk); + [eqi, eqj] = [ + null, + null + // 1st indices of equal lines (if any) + ]; + lines = []; + for (j3 = l3 = ref = blo, ref1 = bhi; ref <= ref1 ? l3 < ref1 : l3 > ref1; j3 = ref <= ref1 ? ++l3 : --l3) { + bj = b3[j3]; + cruncher.setSeq2(bj); + for (i4 = m4 = ref2 = alo, ref3 = ahi; ref2 <= ref3 ? m4 < ref3 : m4 > ref3; i4 = ref2 <= ref3 ? ++m4 : --m4) { + ai = a3[i4]; + if (ai === bj) { + if (eqi === null) { + [eqi, eqj] = [i4, j3]; + } + continue; + } + cruncher.setSeq1(ai); + if (cruncher.realQuickRatio() > bestRatio && cruncher.quickRatio() > bestRatio && cruncher.ratio() > bestRatio) { + [bestRatio, besti, bestj] = [cruncher.ratio(), i4, j3]; + } + } + } + if (bestRatio < cutoff) { + if (eqi === null) { + ref4 = this._plainReplace(a3, alo, ahi, b3, blo, bhi); + for (o3 = 0, len = ref4.length; o3 < len; o3++) { + line = ref4[o3]; + lines.push(line); + } + return lines; + } + [besti, bestj, bestRatio] = [eqi, eqj, 1]; + } else { + eqi = null; + } + ref5 = this._fancyHelper(a3, alo, besti, b3, blo, bestj); + for (p3 = 0, len1 = ref5.length; p3 < len1; p3++) { + line = ref5[p3]; + lines.push(line); + } + [aelt, belt] = [a3[besti], b3[bestj]]; + if (eqi === null) { + atags = btags = ""; + cruncher.setSeqs(aelt, belt); + ref6 = cruncher.getOpcodes(); + for (q3 = 0, len2 = ref6.length; q3 < len2; q3++) { + [tag, ai1, ai2, bj1, bj2] = ref6[q3]; + [la, lb] = [ai2 - ai1, bj2 - bj1]; + switch (tag) { + case "replace": + atags += Array(la + 1).join("^"); + btags += Array(lb + 1).join("^"); + break; + case "delete": + atags += Array(la + 1).join("-"); + break; + case "insert": + btags += Array(lb + 1).join("+"); + break; + case "equal": + atags += Array(la + 1).join(" "); + btags += Array(lb + 1).join(" "); + break; + default: + throw new Error(`unknow tag (${tag})`); + } + } + ref7 = this._qformat(aelt, belt, atags, btags); + for (r4 = 0, len3 = ref7.length; r4 < len3; r4++) { + line = ref7[r4]; + lines.push(line); + } + } else { + lines.push(" " + aelt); + } + ref8 = this._fancyHelper(a3, besti + 1, ahi, b3, bestj + 1, bhi); + for (t4 = 0, len4 = ref8.length; t4 < len4; t4++) { + line = ref8[t4]; + lines.push(line); + } + return lines; + } + _fancyHelper(a3, alo, ahi, b3, blo, bhi) { + var g3; + g3 = []; + if (alo < ahi) { + if (blo < bhi) { + g3 = this._fancyReplace(a3, alo, ahi, b3, blo, bhi); + } else { + g3 = this._dump("-", a3, alo, ahi); + } + } else if (blo < bhi) { + g3 = this._dump("+", b3, blo, bhi); + } + return g3; + } + _qformat(aline, bline, atags, btags) { + var common, lines; + lines = []; + common = min(_countLeading(aline, " "), _countLeading(bline, " ")); + common = min(common, _countLeading(atags.slice(0, common), " ")); + common = min(common, _countLeading(btags.slice(0, common), " ")); + atags = atags.slice(common).replace(/\s+$/, ""); + btags = btags.slice(common).replace(/\s+$/, ""); + lines.push("- " + aline); + if (atags.length) { + lines.push(`? ${Array(common + 1).join(" ")}${atags} +`); + } + lines.push("+ " + bline); + if (btags.length) { + lines.push(`? ${Array(common + 1).join(" ")}${btags} +`); + } + return lines; + } + }; + IS_LINE_JUNK = function(line, pat = /^\s*#?\s*$/) { + return pat.test(line); + }; + IS_CHARACTER_JUNK = function(ch, ws = " ") { + return indexOf.call(ws, ch) >= 0; + }; + _formatRangeUnified = function(start, stop) { + var beginning, length; + beginning = start + 1; + length = stop - start; + if (length === 1) { + return `${beginning}`; + } + if (!length) { + beginning--; + } + return `${beginning},${length}`; + }; + unifiedDiff = function(a3, b3, { fromfile, tofile, fromfiledate, tofiledate, n: n3, lineterm } = {}) { + var file1Range, file2Range, first, fromdate, group, i1, i22, j1, j22, l3, last, len, len1, len2, len3, len4, line, lines, m4, o3, p3, q3, ref, ref1, ref2, ref3, started, tag, todate; + if (fromfile == null) { + fromfile = ""; + } + if (tofile == null) { + tofile = ""; + } + if (fromfiledate == null) { + fromfiledate = ""; + } + if (tofiledate == null) { + tofiledate = ""; + } + if (n3 == null) { + n3 = 3; + } + if (lineterm == null) { + lineterm = "\n"; + } + lines = []; + started = false; + ref = new SequenceMatcher(null, a3, b3).getGroupedOpcodes(); + for (l3 = 0, len = ref.length; l3 < len; l3++) { + group = ref[l3]; + if (!started) { + started = true; + fromdate = fromfiledate ? ` ${fromfiledate}` : ""; + todate = tofiledate ? ` ${tofiledate}` : ""; + lines.push(`--- ${fromfile}${fromdate}${lineterm}`); + lines.push(`+++ ${tofile}${todate}${lineterm}`); + } + [first, last] = [group[0], group[group.length - 1]]; + file1Range = _formatRangeUnified(first[1], last[2]); + file2Range = _formatRangeUnified(first[3], last[4]); + lines.push(`@@ -${file1Range} +${file2Range} @@${lineterm}`); + for (m4 = 0, len1 = group.length; m4 < len1; m4++) { + [tag, i1, i22, j1, j22] = group[m4]; + if (tag === "equal") { + ref1 = a3.slice(i1, i22); + for (o3 = 0, len2 = ref1.length; o3 < len2; o3++) { + line = ref1[o3]; + lines.push(" " + line); + } + continue; + } + if (tag === "replace" || tag === "delete") { + ref2 = a3.slice(i1, i22); + for (p3 = 0, len3 = ref2.length; p3 < len3; p3++) { + line = ref2[p3]; + lines.push("-" + line); + } + } + if (tag === "replace" || tag === "insert") { + ref3 = b3.slice(j1, j22); + for (q3 = 0, len4 = ref3.length; q3 < len4; q3++) { + line = ref3[q3]; + lines.push("+" + line); + } + } + } + } + return lines; + }; + _formatRangeContext = function(start, stop) { + var beginning, length; + beginning = start + 1; + length = stop - start; + if (!length) { + beginning--; + } + if (length <= 1) { + return `${beginning}`; + } + return `${beginning},${beginning + length - 1}`; + }; + contextDiff = function(a3, b3, { fromfile, tofile, fromfiledate, tofiledate, n: n3, lineterm } = {}) { + var _3, file1Range, file2Range, first, fromdate, group, i1, i22, j1, j22, l3, last, len, len1, len2, len3, len4, line, lines, m4, o3, p3, prefix2, q3, ref, ref1, ref2, started, tag, todate; + if (fromfile == null) { + fromfile = ""; + } + if (tofile == null) { + tofile = ""; + } + if (fromfiledate == null) { + fromfiledate = ""; + } + if (tofiledate == null) { + tofiledate = ""; + } + if (n3 == null) { + n3 = 3; + } + if (lineterm == null) { + lineterm = "\n"; + } + prefix2 = { + insert: "+ ", + delete: "- ", + replace: "! ", + equal: " " + }; + started = false; + lines = []; + ref = new SequenceMatcher(null, a3, b3).getGroupedOpcodes(); + for (l3 = 0, len = ref.length; l3 < len; l3++) { + group = ref[l3]; + if (!started) { + started = true; + fromdate = fromfiledate ? ` ${fromfiledate}` : ""; + todate = tofiledate ? ` ${tofiledate}` : ""; + lines.push(`*** ${fromfile}${fromdate}${lineterm}`); + lines.push(`--- ${tofile}${todate}${lineterm}`); + [first, last] = [group[0], group[group.length - 1]]; + lines.push("***************" + lineterm); + file1Range = _formatRangeContext(first[1], last[2]); + lines.push(`*** ${file1Range} ****${lineterm}`); + if (_any(function() { + var len12, m5, results; + results = []; + for (m5 = 0, len12 = group.length; m5 < len12; m5++) { + [tag, _3, _3, _3, _3] = group[m5]; + results.push(tag === "replace" || tag === "delete"); + } + return results; + }())) { + for (m4 = 0, len1 = group.length; m4 < len1; m4++) { + [tag, i1, i22, _3, _3] = group[m4]; + if (tag !== "insert") { + ref1 = a3.slice(i1, i22); + for (o3 = 0, len2 = ref1.length; o3 < len2; o3++) { + line = ref1[o3]; + lines.push(prefix2[tag] + line); + } + } + } + } + file2Range = _formatRangeContext(first[3], last[4]); + lines.push(`--- ${file2Range} ----${lineterm}`); + if (_any(function() { + var len32, p4, results; + results = []; + for (p4 = 0, len32 = group.length; p4 < len32; p4++) { + [tag, _3, _3, _3, _3] = group[p4]; + results.push(tag === "replace" || tag === "insert"); + } + return results; + }())) { + for (p3 = 0, len3 = group.length; p3 < len3; p3++) { + [tag, _3, _3, j1, j22] = group[p3]; + if (tag !== "delete") { + ref2 = b3.slice(j1, j22); + for (q3 = 0, len4 = ref2.length; q3 < len4; q3++) { + line = ref2[q3]; + lines.push(prefix2[tag] + line); + } + } + } + } + } + } + return lines; + }; + ndiff = function(a3, b3, linejunk, charjunk = IS_CHARACTER_JUNK) { + return new Differ(linejunk, charjunk).compare(a3, b3); + }; + restore = function(delta, which) { + var l3, len, line, lines, prefixes2, ref, tag; + tag = { + 1: "- ", + 2: "+ " + }[which]; + if (!tag) { + throw new Error(`unknow delta choice (must be 1 or 2): ${which}`); + } + prefixes2 = [" ", tag]; + lines = []; + for (l3 = 0, len = delta.length; l3 < len; l3++) { + line = delta[l3]; + if (ref = line.slice(0, 2), indexOf.call(prefixes2, ref) >= 0) { + lines.push(line.slice(2)); + } + } + return lines; + }; + exports2._arrayCmp = _arrayCmp; + exports2.SequenceMatcher = SequenceMatcher; + exports2.getCloseMatches = getCloseMatches; + exports2._countLeading = _countLeading; + exports2.Differ = Differ; + exports2.IS_LINE_JUNK = IS_LINE_JUNK; + exports2.IS_CHARACTER_JUNK = IS_CHARACTER_JUNK; + exports2._formatRangeUnified = _formatRangeUnified; + exports2.unifiedDiff = unifiedDiff; + exports2._formatRangeContext = _formatRangeContext; + exports2.contextDiff = contextDiff; + exports2.ndiff = ndiff; + exports2.restore = restore; + }).call(exports2); + } +}); + +// ../node_modules/.pnpm/@ewoudenberg+difflib@0.1.0/node_modules/@ewoudenberg/difflib/index.js +var require_difflib2 = __commonJS({ + "../node_modules/.pnpm/@ewoudenberg+difflib@0.1.0/node_modules/@ewoudenberg/difflib/index.js"(exports2, module2) { + module2.exports = require_difflib(); + } +}); + +// ../node_modules/.pnpm/json-diff@1.0.6/node_modules/json-diff/lib/util.js +var require_util = __commonJS({ + "../node_modules/.pnpm/json-diff@1.0.6/node_modules/json-diff/lib/util.js"(exports2, module2) { + var extendedTypeOf = function(obj) { + const result = typeof obj; + if (obj == null) { + return "null"; + } else if (result === "object" && obj.constructor === Array) { + return "array"; + } else if (result === "object" && obj instanceof Date) { + return "date"; + } else { + return result; + } + }; + var roundObj = function(data, precision) { + const type = typeof data; + if (type === "array") { + return data.map((x4) => roundObj(x4, precision)); + } else if (type === "object") { + for (const key in data) { + data[key] = roundObj(data[key], precision); + } + return data; + } else if (type === "number" && Number.isFinite(data) && !Number.isInteger(data)) { + return +data.toFixed(precision); + } else { + return data; + } + }; + module2.exports = { extendedTypeOf, roundObj }; + } +}); + +// ../node_modules/.pnpm/colors@1.4.0/node_modules/colors/lib/styles.js +var require_styles = __commonJS({ + "../node_modules/.pnpm/colors@1.4.0/node_modules/colors/lib/styles.js"(exports2, module2) { + var styles3 = {}; + module2["exports"] = styles3; + var codes = { + reset: [0, 0], + bold: [1, 22], + dim: [2, 22], + italic: [3, 23], + underline: [4, 24], + inverse: [7, 27], + hidden: [8, 28], + strikethrough: [9, 29], + black: [30, 39], + red: [31, 39], + green: [32, 39], + yellow: [33, 39], + blue: [34, 39], + magenta: [35, 39], + cyan: [36, 39], + white: [37, 39], + gray: [90, 39], + grey: [90, 39], + brightRed: [91, 39], + brightGreen: [92, 39], + brightYellow: [93, 39], + brightBlue: [94, 39], + brightMagenta: [95, 39], + brightCyan: [96, 39], + brightWhite: [97, 39], + bgBlack: [40, 49], + bgRed: [41, 49], + bgGreen: [42, 49], + bgYellow: [43, 49], + bgBlue: [44, 49], + bgMagenta: [45, 49], + bgCyan: [46, 49], + bgWhite: [47, 49], + bgGray: [100, 49], + bgGrey: [100, 49], + bgBrightRed: [101, 49], + bgBrightGreen: [102, 49], + bgBrightYellow: [103, 49], + bgBrightBlue: [104, 49], + bgBrightMagenta: [105, 49], + bgBrightCyan: [106, 49], + bgBrightWhite: [107, 49], + // legacy styles for colors pre v1.0.0 + blackBG: [40, 49], + redBG: [41, 49], + greenBG: [42, 49], + yellowBG: [43, 49], + blueBG: [44, 49], + magentaBG: [45, 49], + cyanBG: [46, 49], + whiteBG: [47, 49] + }; + Object.keys(codes).forEach(function(key) { + var val2 = codes[key]; + var style = styles3[key] = []; + style.open = "\x1B[" + val2[0] + "m"; + style.close = "\x1B[" + val2[1] + "m"; + }); + } +}); + +// ../node_modules/.pnpm/colors@1.4.0/node_modules/colors/lib/system/has-flag.js +var require_has_flag = __commonJS({ + "../node_modules/.pnpm/colors@1.4.0/node_modules/colors/lib/system/has-flag.js"(exports2, module2) { + "use strict"; + module2.exports = function(flag, argv) { + argv = argv || process.argv; + var terminatorPos = argv.indexOf("--"); + var prefix2 = /^-{1,2}/.test(flag) ? "" : "--"; + var pos = argv.indexOf(prefix2 + flag); + return pos !== -1 && (terminatorPos === -1 ? true : pos < terminatorPos); + }; + } +}); + +// ../node_modules/.pnpm/colors@1.4.0/node_modules/colors/lib/system/supports-colors.js +var require_supports_colors = __commonJS({ + "../node_modules/.pnpm/colors@1.4.0/node_modules/colors/lib/system/supports-colors.js"(exports2, module2) { + "use strict"; + var os3 = require("os"); + var hasFlag2 = require_has_flag(); + var env3 = process.env; + var forceColor = void 0; + if (hasFlag2("no-color") || hasFlag2("no-colors") || hasFlag2("color=false")) { + forceColor = false; + } else if (hasFlag2("color") || hasFlag2("colors") || hasFlag2("color=true") || hasFlag2("color=always")) { + forceColor = true; + } + if ("FORCE_COLOR" in env3) { + forceColor = env3.FORCE_COLOR.length === 0 || parseInt(env3.FORCE_COLOR, 10) !== 0; + } + function translateLevel2(level) { + if (level === 0) { + return false; + } + return { + level, + hasBasic: true, + has256: level >= 2, + has16m: level >= 3 + }; + } + function supportsColor2(stream) { + if (forceColor === false) { + return 0; + } + if (hasFlag2("color=16m") || hasFlag2("color=full") || hasFlag2("color=truecolor")) { + return 3; + } + if (hasFlag2("color=256")) { + return 2; + } + if (stream && !stream.isTTY && forceColor !== true) { + return 0; + } + var min = forceColor ? 1 : 0; + if (process.platform === "win32") { + var osRelease = os3.release().split("."); + if (Number(process.versions.node.split(".")[0]) >= 8 && Number(osRelease[0]) >= 10 && Number(osRelease[2]) >= 10586) { + return Number(osRelease[2]) >= 14931 ? 3 : 2; + } + return 1; + } + if ("CI" in env3) { + if (["TRAVIS", "CIRCLECI", "APPVEYOR", "GITLAB_CI"].some(function(sign) { + return sign in env3; + }) || env3.CI_NAME === "codeship") { + return 1; + } + return min; + } + if ("TEAMCITY_VERSION" in env3) { + return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env3.TEAMCITY_VERSION) ? 1 : 0; + } + if ("TERM_PROGRAM" in env3) { + var version3 = parseInt((env3.TERM_PROGRAM_VERSION || "").split(".")[0], 10); + switch (env3.TERM_PROGRAM) { + case "iTerm.app": + return version3 >= 3 ? 3 : 2; + case "Hyper": + return 3; + case "Apple_Terminal": + return 2; + } + } + if (/-256(color)?$/i.test(env3.TERM)) { + return 2; + } + if (/^screen|^xterm|^vt100|^rxvt|color|ansi|cygwin|linux/i.test(env3.TERM)) { + return 1; + } + if ("COLORTERM" in env3) { + return 1; + } + if (env3.TERM === "dumb") { + return min; + } + return min; + } + function getSupportLevel(stream) { + var level = supportsColor2(stream); + return translateLevel2(level); + } + module2.exports = { + supportsColor: getSupportLevel, + stdout: getSupportLevel(process.stdout), + stderr: getSupportLevel(process.stderr) + }; + } +}); + +// ../node_modules/.pnpm/colors@1.4.0/node_modules/colors/lib/custom/trap.js +var require_trap = __commonJS({ + "../node_modules/.pnpm/colors@1.4.0/node_modules/colors/lib/custom/trap.js"(exports2, module2) { + module2["exports"] = function runTheTrap(text, options) { + var result = ""; + text = text || "Run the trap, drop the bass"; + text = text.split(""); + var trap = { + a: ["@", "\u0104", "\u023A", "\u0245", "\u0394", "\u039B", "\u0414"], + b: ["\xDF", "\u0181", "\u0243", "\u026E", "\u03B2", "\u0E3F"], + c: ["\xA9", "\u023B", "\u03FE"], + d: ["\xD0", "\u018A", "\u0500", "\u0501", "\u0502", "\u0503"], + e: [ + "\xCB", + "\u0115", + "\u018E", + "\u0258", + "\u03A3", + "\u03BE", + "\u04BC", + "\u0A6C" + ], + f: ["\u04FA"], + g: ["\u0262"], + h: ["\u0126", "\u0195", "\u04A2", "\u04BA", "\u04C7", "\u050A"], + i: ["\u0F0F"], + j: ["\u0134"], + k: ["\u0138", "\u04A0", "\u04C3", "\u051E"], + l: ["\u0139"], + m: ["\u028D", "\u04CD", "\u04CE", "\u0520", "\u0521", "\u0D69"], + n: ["\xD1", "\u014B", "\u019D", "\u0376", "\u03A0", "\u048A"], + o: [ + "\xD8", + "\xF5", + "\xF8", + "\u01FE", + "\u0298", + "\u047A", + "\u05DD", + "\u06DD", + "\u0E4F" + ], + p: ["\u01F7", "\u048E"], + q: ["\u09CD"], + r: ["\xAE", "\u01A6", "\u0210", "\u024C", "\u0280", "\u042F"], + s: ["\xA7", "\u03DE", "\u03DF", "\u03E8"], + t: ["\u0141", "\u0166", "\u0373"], + u: ["\u01B1", "\u054D"], + v: ["\u05D8"], + w: ["\u0428", "\u0460", "\u047C", "\u0D70"], + x: ["\u04B2", "\u04FE", "\u04FC", "\u04FD"], + y: ["\xA5", "\u04B0", "\u04CB"], + z: ["\u01B5", "\u0240"] + }; + text.forEach(function(c3) { + c3 = c3.toLowerCase(); + var chars = trap[c3] || [" "]; + var rand = Math.floor(Math.random() * chars.length); + if (typeof trap[c3] !== "undefined") { + result += trap[c3][rand]; + } else { + result += c3; + } + }); + return result; + }; + } +}); + +// ../node_modules/.pnpm/colors@1.4.0/node_modules/colors/lib/custom/zalgo.js +var require_zalgo = __commonJS({ + "../node_modules/.pnpm/colors@1.4.0/node_modules/colors/lib/custom/zalgo.js"(exports2, module2) { + module2["exports"] = function zalgo(text, options) { + text = text || " he is here "; + var soul = { + "up": [ + "\u030D", + "\u030E", + "\u0304", + "\u0305", + "\u033F", + "\u0311", + "\u0306", + "\u0310", + "\u0352", + "\u0357", + "\u0351", + "\u0307", + "\u0308", + "\u030A", + "\u0342", + "\u0313", + "\u0308", + "\u034A", + "\u034B", + "\u034C", + "\u0303", + "\u0302", + "\u030C", + "\u0350", + "\u0300", + "\u0301", + "\u030B", + "\u030F", + "\u0312", + "\u0313", + "\u0314", + "\u033D", + "\u0309", + "\u0363", + "\u0364", + "\u0365", + "\u0366", + "\u0367", + "\u0368", + "\u0369", + "\u036A", + "\u036B", + "\u036C", + "\u036D", + "\u036E", + "\u036F", + "\u033E", + "\u035B", + "\u0346", + "\u031A" + ], + "down": [ + "\u0316", + "\u0317", + "\u0318", + "\u0319", + "\u031C", + "\u031D", + "\u031E", + "\u031F", + "\u0320", + "\u0324", + "\u0325", + "\u0326", + "\u0329", + "\u032A", + "\u032B", + "\u032C", + "\u032D", + "\u032E", + "\u032F", + "\u0330", + "\u0331", + "\u0332", + "\u0333", + "\u0339", + "\u033A", + "\u033B", + "\u033C", + "\u0345", + "\u0347", + "\u0348", + "\u0349", + "\u034D", + "\u034E", + "\u0353", + "\u0354", + "\u0355", + "\u0356", + "\u0359", + "\u035A", + "\u0323" + ], + "mid": [ + "\u0315", + "\u031B", + "\u0300", + "\u0301", + "\u0358", + "\u0321", + "\u0322", + "\u0327", + "\u0328", + "\u0334", + "\u0335", + "\u0336", + "\u035C", + "\u035D", + "\u035E", + "\u035F", + "\u0360", + "\u0362", + "\u0338", + "\u0337", + "\u0361", + " \u0489" + ] + }; + var all = [].concat(soul.up, soul.down, soul.mid); + function randomNumber(range) { + var r4 = Math.floor(Math.random() * range); + return r4; + } + function isChar(character) { + var bool = false; + all.filter(function(i4) { + bool = i4 === character; + }); + return bool; + } + function heComes(text2, options2) { + var result = ""; + var counts; + var l3; + options2 = options2 || {}; + options2["up"] = typeof options2["up"] !== "undefined" ? options2["up"] : true; + options2["mid"] = typeof options2["mid"] !== "undefined" ? options2["mid"] : true; + options2["down"] = typeof options2["down"] !== "undefined" ? options2["down"] : true; + options2["size"] = typeof options2["size"] !== "undefined" ? options2["size"] : "maxi"; + text2 = text2.split(""); + for (l3 in text2) { + if (isChar(l3)) { + continue; + } + result = result + text2[l3]; + counts = { "up": 0, "down": 0, "mid": 0 }; + switch (options2.size) { + case "mini": + counts.up = randomNumber(8); + counts.mid = randomNumber(2); + counts.down = randomNumber(8); + break; + case "maxi": + counts.up = randomNumber(16) + 3; + counts.mid = randomNumber(4) + 1; + counts.down = randomNumber(64) + 3; + break; + default: + counts.up = randomNumber(8) + 1; + counts.mid = randomNumber(6) / 2; + counts.down = randomNumber(8) + 1; + break; + } + var arr = ["up", "mid", "down"]; + for (var d3 in arr) { + var index6 = arr[d3]; + for (var i4 = 0; i4 <= counts[index6]; i4++) { + if (options2[index6]) { + result = result + soul[index6][randomNumber(soul[index6].length)]; + } + } + } + } + return result; + } + return heComes(text, options); + }; + } +}); + +// ../node_modules/.pnpm/colors@1.4.0/node_modules/colors/lib/maps/america.js +var require_america = __commonJS({ + "../node_modules/.pnpm/colors@1.4.0/node_modules/colors/lib/maps/america.js"(exports2, module2) { + module2["exports"] = function(colors) { + return function(letter, i4, exploded) { + if (letter === " ") return letter; + switch (i4 % 3) { + case 0: + return colors.red(letter); + case 1: + return colors.white(letter); + case 2: + return colors.blue(letter); + } + }; + }; + } +}); + +// ../node_modules/.pnpm/colors@1.4.0/node_modules/colors/lib/maps/zebra.js +var require_zebra = __commonJS({ + "../node_modules/.pnpm/colors@1.4.0/node_modules/colors/lib/maps/zebra.js"(exports2, module2) { + module2["exports"] = function(colors) { + return function(letter, i4, exploded) { + return i4 % 2 === 0 ? letter : colors.inverse(letter); + }; + }; + } +}); + +// ../node_modules/.pnpm/colors@1.4.0/node_modules/colors/lib/maps/rainbow.js +var require_rainbow = __commonJS({ + "../node_modules/.pnpm/colors@1.4.0/node_modules/colors/lib/maps/rainbow.js"(exports2, module2) { + module2["exports"] = function(colors) { + var rainbowColors = ["red", "yellow", "green", "blue", "magenta"]; + return function(letter, i4, exploded) { + if (letter === " ") { + return letter; + } else { + return colors[rainbowColors[i4++ % rainbowColors.length]](letter); + } + }; + }; + } +}); + +// ../node_modules/.pnpm/colors@1.4.0/node_modules/colors/lib/maps/random.js +var require_random = __commonJS({ + "../node_modules/.pnpm/colors@1.4.0/node_modules/colors/lib/maps/random.js"(exports2, module2) { + module2["exports"] = function(colors) { + var available = [ + "underline", + "inverse", + "grey", + "yellow", + "red", + "green", + "blue", + "white", + "cyan", + "magenta", + "brightYellow", + "brightRed", + "brightGreen", + "brightBlue", + "brightWhite", + "brightCyan", + "brightMagenta" + ]; + return function(letter, i4, exploded) { + return letter === " " ? letter : colors[available[Math.round(Math.random() * (available.length - 2))]](letter); + }; + }; + } +}); + +// ../node_modules/.pnpm/colors@1.4.0/node_modules/colors/lib/colors.js +var require_colors = __commonJS({ + "../node_modules/.pnpm/colors@1.4.0/node_modules/colors/lib/colors.js"(exports2, module2) { + var colors = {}; + module2["exports"] = colors; + colors.themes = {}; + var util2 = require("util"); + var ansiStyles2 = colors.styles = require_styles(); + var defineProps = Object.defineProperties; + var newLineRegex = new RegExp(/[\r\n]+/g); + colors.supportsColor = require_supports_colors().supportsColor; + if (typeof colors.enabled === "undefined") { + colors.enabled = colors.supportsColor() !== false; + } + colors.enable = function() { + colors.enabled = true; + }; + colors.disable = function() { + colors.enabled = false; + }; + colors.stripColors = colors.strip = function(str) { + return ("" + str).replace(/\x1B\[\d+m/g, ""); + }; + var stylize = colors.stylize = function stylize2(str, style) { + if (!colors.enabled) { + return str + ""; + } + var styleMap = ansiStyles2[style]; + if (!styleMap && style in colors) { + return colors[style](str); + } + return styleMap.open + str + styleMap.close; + }; + var matchOperatorsRe = /[|\\{}()[\]^$+*?.]/g; + var escapeStringRegexp = function(str) { + if (typeof str !== "string") { + throw new TypeError("Expected a string"); + } + return str.replace(matchOperatorsRe, "\\$&"); + }; + function build(_styles) { + var builder = function builder2() { + return applyStyle2.apply(builder2, arguments); + }; + builder._styles = _styles; + builder.__proto__ = proto2; + return builder; + } + var styles3 = function() { + var ret = {}; + ansiStyles2.grey = ansiStyles2.gray; + Object.keys(ansiStyles2).forEach(function(key) { + ansiStyles2[key].closeRe = new RegExp(escapeStringRegexp(ansiStyles2[key].close), "g"); + ret[key] = { + get: function() { + return build(this._styles.concat(key)); + } + }; + }); + return ret; + }(); + var proto2 = defineProps(function colors2() { + }, styles3); + function applyStyle2() { + var args = Array.prototype.slice.call(arguments); + var str = args.map(function(arg) { + if (arg != null && arg.constructor === String) { + return arg; + } else { + return util2.inspect(arg); + } + }).join(" "); + if (!colors.enabled || !str) { + return str; + } + var newLinesPresent = str.indexOf("\n") != -1; + var nestedStyles = this._styles; + var i4 = nestedStyles.length; + while (i4--) { + var code = ansiStyles2[nestedStyles[i4]]; + str = code.open + str.replace(code.closeRe, code.open) + code.close; + if (newLinesPresent) { + str = str.replace(newLineRegex, function(match2) { + return code.close + match2 + code.open; + }); + } + } + return str; + } + colors.setTheme = function(theme) { + if (typeof theme === "string") { + console.log("colors.setTheme now only accepts an object, not a string. If you are trying to set a theme from a file, it is now your (the caller's) responsibility to require the file. The old syntax looked like colors.setTheme(__dirname + '/../themes/generic-logging.js'); The new syntax looks like colors.setTheme(require(__dirname + '/../themes/generic-logging.js'));"); + return; + } + for (var style in theme) { + (function(style2) { + colors[style2] = function(str) { + if (typeof theme[style2] === "object") { + var out = str; + for (var i4 in theme[style2]) { + out = colors[theme[style2][i4]](out); + } + return out; + } + return colors[theme[style2]](str); + }; + })(style); + } + }; + function init2() { + var ret = {}; + Object.keys(styles3).forEach(function(name) { + ret[name] = { + get: function() { + return build([name]); + } + }; + }); + return ret; + } + var sequencer = function sequencer2(map3, str) { + var exploded = str.split(""); + exploded = exploded.map(map3); + return exploded.join(""); + }; + colors.trap = require_trap(); + colors.zalgo = require_zalgo(); + colors.maps = {}; + colors.maps.america = require_america()(colors); + colors.maps.zebra = require_zebra()(colors); + colors.maps.rainbow = require_rainbow()(colors); + colors.maps.random = require_random()(colors); + for (map2 in colors.maps) { + (function(map3) { + colors[map3] = function(str) { + return sequencer(colors.maps[map3], str); + }; + })(map2); + } + var map2; + defineProps(colors, init2()); + } +}); + +// ../node_modules/.pnpm/colors@1.4.0/node_modules/colors/safe.js +var require_safe = __commonJS({ + "../node_modules/.pnpm/colors@1.4.0/node_modules/colors/safe.js"(exports2, module2) { + var colors = require_colors(); + module2["exports"] = colors; + } +}); + +// ../node_modules/.pnpm/json-diff@1.0.6/node_modules/json-diff/lib/colorize.js +var require_colorize = __commonJS({ + "../node_modules/.pnpm/json-diff@1.0.6/node_modules/json-diff/lib/colorize.js"(exports2, module2) { + var color = require_safe(); + var { extendedTypeOf } = require_util(); + var Theme = { + " "(s4) { + return s4; + }, + "+": color.green, + "-": color.red + }; + var subcolorizeToCallback = function(options, key, diff2, output, color2, indent) { + let subvalue; + const prefix2 = key ? `${key}: ` : ""; + const subindent = indent + " "; + const outputElisions = (n3) => { + const maxElisions = options.maxElisions === void 0 ? Infinity : options.maxElisions; + if (n3 < maxElisions) { + for (let i4 = 0; i4 < n3; i4++) { + output(" ", subindent + "..."); + } + } else { + output(" ", subindent + `... (${n3} entries)`); + } + }; + switch (extendedTypeOf(diff2)) { + case "object": + if ("__old" in diff2 && "__new" in diff2 && Object.keys(diff2).length === 2) { + subcolorizeToCallback(options, key, diff2.__old, output, "-", indent); + return subcolorizeToCallback(options, key, diff2.__new, output, "+", indent); + } else { + output(color2, `${indent}${prefix2}{`); + for (const subkey of Object.keys(diff2)) { + let m4; + subvalue = diff2[subkey]; + if (m4 = subkey.match(/^(.*)__deleted$/)) { + subcolorizeToCallback(options, m4[1], subvalue, output, "-", subindent); + } else if (m4 = subkey.match(/^(.*)__added$/)) { + subcolorizeToCallback(options, m4[1], subvalue, output, "+", subindent); + } else { + subcolorizeToCallback(options, subkey, subvalue, output, color2, subindent); + } + } + return output(color2, `${indent}}`); + } + case "array": { + output(color2, `${indent}${prefix2}[`); + let looksLikeDiff = true; + for (const item of diff2) { + if (extendedTypeOf(item) !== "array" || !(item.length === 2 || item.length === 1 && item[0] === " ") || !(typeof item[0] === "string") || item[0].length !== 1 || ![" ", "-", "+", "~"].includes(item[0])) { + looksLikeDiff = false; + } + } + if (looksLikeDiff) { + let op; + let elisionCount = 0; + for ([op, subvalue] of diff2) { + if (op === " " && subvalue == null) { + elisionCount++; + } else { + if (elisionCount > 0) { + outputElisions(elisionCount); + } + elisionCount = 0; + if (![" ", "~", "+", "-"].includes(op)) { + throw new Error(`Unexpected op '${op}' in ${JSON.stringify(diff2, null, 2)}`); + } + if (op === "~") { + op = " "; + } + subcolorizeToCallback(options, "", subvalue, output, op, subindent); + } + } + if (elisionCount > 0) { + outputElisions(elisionCount); + } + } else { + for (subvalue of diff2) { + subcolorizeToCallback(options, "", subvalue, output, color2, subindent); + } + } + return output(color2, `${indent}]`); + } + default: + if (diff2 === 0 || diff2 === null || diff2 === false || diff2 === "" || diff2) { + return output(color2, indent + prefix2 + JSON.stringify(diff2)); + } + } + }; + var colorizeToCallback = (diff2, options, output) => subcolorizeToCallback(options, "", diff2, output, " ", ""); + var colorizeToArray = function(diff2, options = {}) { + const output = []; + colorizeToCallback(diff2, options, (color2, line) => output.push(`${color2}${line}`)); + return output; + }; + var colorize = function(diff2, options = {}) { + const output = []; + colorizeToCallback(diff2, options, function(color2, line) { + if (options.color != null ? options.color : true) { + return output.push(((options.theme != null ? options.theme[color2] : void 0) != null ? options.theme != null ? options.theme[color2] : void 0 : Theme[color2])(`${color2}${line}`) + "\n"); + } else { + return output.push(`${color2}${line} +`); + } + }); + return output.join(""); + }; + module2.exports = { colorize, colorizeToArray, colorizeToCallback }; + } +}); + +// ../node_modules/.pnpm/json-diff@1.0.6/node_modules/json-diff/lib/index.js +var require_lib = __commonJS({ + "../node_modules/.pnpm/json-diff@1.0.6/node_modules/json-diff/lib/index.js"(exports2, module2) { + var { SequenceMatcher } = require_difflib2(); + var { extendedTypeOf, roundObj } = require_util(); + var { colorize, colorizeToCallback } = require_colorize(); + var JsonDiff = class { + constructor(options) { + options.outputKeys = options.outputKeys || []; + options.excludeKeys = options.excludeKeys || []; + this.options = options; + } + isScalar(obj) { + return typeof obj !== "object" || obj === null; + } + objectDiff(obj1, obj2) { + let result = {}; + let score = 0; + let equal = true; + for (const [key, value] of Object.entries(obj1)) { + if (!this.options.outputNewOnly) { + const postfix = "__deleted"; + if (!(key in obj2) && !this.options.excludeKeys.includes(key)) { + result[`${key}${postfix}`] = value; + score -= 30; + equal = false; + } + } + } + for (const [key, value] of Object.entries(obj2)) { + const postfix = !this.options.outputNewOnly ? "__added" : ""; + if (!(key in obj1) && !this.options.excludeKeys.includes(key)) { + result[`${key}${postfix}`] = value; + score -= 30; + equal = false; + } + } + for (const [key, value1] of Object.entries(obj1)) { + if (key in obj2) { + if (this.options.excludeKeys.includes(key)) { + continue; + } + score += 20; + const value2 = obj2[key]; + const change = this.diff(value1, value2); + if (!change.equal) { + result[key] = change.result; + equal = false; + } else if (this.options.full || this.options.outputKeys.includes(key)) { + result[key] = value1; + } + score += Math.min(20, Math.max(-10, change.score / 5)); + } + } + if (equal) { + score = 100 * Math.max(Object.keys(obj1).length, 0.5); + if (!this.options.full) { + result = void 0; + } + } else { + score = Math.max(0, score); + } + return { score, result, equal }; + } + findMatchingObject(item, index6, fuzzyOriginals) { + let bestMatch = null; + for (const [key, { item: candidate, index: matchIndex }] of Object.entries(fuzzyOriginals)) { + if (key !== "__next") { + const indexDistance = Math.abs(matchIndex - index6); + if (extendedTypeOf(item) === extendedTypeOf(candidate)) { + const { score } = this.diff(item, candidate); + if (!bestMatch || score > bestMatch.score || score === bestMatch.score && indexDistance < bestMatch.indexDistance) { + bestMatch = { score, key, indexDistance }; + } + } + } + } + return bestMatch; + } + scalarize(array2, originals, fuzzyOriginals) { + const fuzzyMatches = []; + if (fuzzyOriginals) { + const keyScores = {}; + for (let index6 = 0; index6 < array2.length; index6++) { + const item = array2[index6]; + if (this.isScalar(item)) { + continue; + } + const bestMatch = this.findMatchingObject(item, index6, fuzzyOriginals); + if (bestMatch && (!keyScores[bestMatch.key] || bestMatch.score > keyScores[bestMatch.key].score)) { + keyScores[bestMatch.key] = { score: bestMatch.score, index: index6 }; + } + } + for (const [key, match2] of Object.entries(keyScores)) { + fuzzyMatches[match2.index] = key; + } + } + const result = []; + for (let index6 = 0; index6 < array2.length; index6++) { + const item = array2[index6]; + if (this.isScalar(item)) { + result.push(item); + } else { + const key = fuzzyMatches[index6] || "__$!SCALAR" + originals.__next++; + originals[key] = { item, index: index6 }; + result.push(key); + } + } + return result; + } + isScalarized(item, originals) { + return typeof item === "string" && item in originals; + } + descalarize(item, originals) { + if (this.isScalarized(item, originals)) { + return originals[item].item; + } else { + return item; + } + } + arrayDiff(obj1, obj2) { + const originals1 = { __next: 1 }; + const seq1 = this.scalarize(obj1, originals1); + const originals2 = { __next: originals1.__next }; + const seq2 = this.scalarize(obj2, originals2, originals1); + if (this.options.sort) { + seq1.sort(); + seq2.sort(); + } + const opcodes = new SequenceMatcher(null, seq1, seq2).getOpcodes(); + let result = []; + let score = 0; + let equal = true; + for (const [op, i1, i22, j1, j22] of opcodes) { + let i4, j3; + let asc, end; + let asc1, end1; + let asc2, end2; + if (!(op === "equal" || this.options.keysOnly && op === "replace")) { + equal = false; + } + switch (op) { + case "equal": + for (i4 = i1, end = i22, asc = i1 <= end; asc ? i4 < end : i4 > end; asc ? i4++ : i4--) { + const item = seq1[i4]; + if (this.isScalarized(item, originals1)) { + if (!this.isScalarized(item, originals2)) { + throw new Error( + `internal bug: isScalarized(item, originals1) != isScalarized(item, originals2) for item ${JSON.stringify( + item + )}` + ); + } + const item1 = this.descalarize(item, originals1); + const item2 = this.descalarize(item, originals2); + const change = this.diff(item1, item2); + if (!change.equal) { + result.push(["~", change.result]); + equal = false; + } else { + if (this.options.full || this.options.keepUnchangedValues) { + result.push([" ", item1]); + } else { + result.push([" "]); + } + } + } else { + if (this.options.full || this.options.keepUnchangedValues) { + result.push([" ", item]); + } else { + result.push([" "]); + } + } + score += 10; + } + break; + case "delete": + for (i4 = i1, end1 = i22, asc1 = i1 <= end1; asc1 ? i4 < end1 : i4 > end1; asc1 ? i4++ : i4--) { + result.push(["-", this.descalarize(seq1[i4], originals1)]); + score -= 5; + } + break; + case "insert": + for (j3 = j1, end2 = j22, asc2 = j1 <= end2; asc2 ? j3 < end2 : j3 > end2; asc2 ? j3++ : j3--) { + result.push(["+", this.descalarize(seq2[j3], originals2)]); + score -= 5; + } + break; + case "replace": + if (!this.options.keysOnly) { + let asc3, end3; + let asc4, end4; + for (i4 = i1, end3 = i22, asc3 = i1 <= end3; asc3 ? i4 < end3 : i4 > end3; asc3 ? i4++ : i4--) { + result.push(["-", this.descalarize(seq1[i4], originals1)]); + score -= 5; + } + for (j3 = j1, end4 = j22, asc4 = j1 <= end4; asc4 ? j3 < end4 : j3 > end4; asc4 ? j3++ : j3--) { + result.push(["+", this.descalarize(seq2[j3], originals2)]); + score -= 5; + } + } else { + let asc5, end5; + for (i4 = i1, end5 = i22, asc5 = i1 <= end5; asc5 ? i4 < end5 : i4 > end5; asc5 ? i4++ : i4--) { + const change = this.diff( + this.descalarize(seq1[i4], originals1), + this.descalarize(seq2[i4 - i1 + j1], originals2) + ); + if (!change.equal) { + result.push(["~", change.result]); + equal = false; + } else { + result.push([" "]); + } + } + } + break; + } + } + if (equal || opcodes.length === 0) { + if (!this.options.full) { + result = void 0; + } else { + result = obj1; + } + score = 100; + } else { + score = Math.max(0, score); + } + return { score, result, equal }; + } + diff(obj1, obj2) { + const type1 = extendedTypeOf(obj1); + const type2 = extendedTypeOf(obj2); + if (type1 === type2) { + switch (type1) { + case "object": + return this.objectDiff(obj1, obj2); + case "array": + return this.arrayDiff(obj1, obj2); + } + } + let score = 100; + let result = obj1; + let equal; + if (!this.options.keysOnly) { + if (type1 === "date" && type2 === "date") { + equal = obj1.getTime() === obj2.getTime(); + } else { + equal = obj1 === obj2; + } + if (!equal) { + score = 0; + if (this.options.outputNewOnly) { + result = obj2; + } else { + result = { __old: obj1, __new: obj2 }; + } + } else if (!this.options.full) { + result = void 0; + } + } else { + equal = true; + result = void 0; + } + return { score, result, equal }; + } + }; + function diff2(obj1, obj2, options = {}) { + if (options.precision !== void 0) { + obj1 = roundObj(obj1, options.precision); + obj2 = roundObj(obj2, options.precision); + } + return new JsonDiff(options).diff(obj1, obj2).result; + } + function diffString(obj1, obj2, options = {}) { + return colorize(diff2(obj1, obj2, options), options); + } + module2.exports = { diff: diff2, diffString, colorize, colorizeToCallback }; + } +}); + +// src/jsonDiffer.js +function diffSchemasOrTables(left, right) { + left = JSON.parse(JSON.stringify(left)); + right = JSON.parse(JSON.stringify(right)); + const result = Object.entries((0, import_json_diff.diff)(left, right) ?? {}); + const added = result.filter((it) => it[0].endsWith("__added")).map((it) => it[1]); + const deleted = result.filter((it) => it[0].endsWith("__deleted")).map((it) => it[1]); + return { added, deleted }; +} +function diffIndPolicies(left, right) { + left = JSON.parse(JSON.stringify(left)); + right = JSON.parse(JSON.stringify(right)); + const result = Object.entries((0, import_json_diff.diff)(left, right) ?? {}); + const added = result.filter((it) => it[0].endsWith("__added")).map((it) => it[1]); + const deleted = result.filter((it) => it[0].endsWith("__deleted")).map((it) => it[1]); + return { added, deleted }; +} +function diffColumns(left, right) { + left = JSON.parse(JSON.stringify(left)); + right = JSON.parse(JSON.stringify(right)); + const result = (0, import_json_diff.diff)(left, right) ?? {}; + const alteredTables = Object.fromEntries( + Object.entries(result).filter((it) => { + return !(it[0].includes("__added") || it[0].includes("__deleted")); + }).map((tableEntry) => { + const deletedColumns = Object.entries(tableEntry[1].columns ?? {}).filter((it) => { + return it[0].endsWith("__deleted"); + }).map((it) => { + return it[1]; + }); + const addedColumns = Object.entries(tableEntry[1].columns ?? {}).filter((it) => { + return it[0].endsWith("__added"); + }).map((it) => { + return it[1]; + }); + tableEntry[1].columns = { + added: addedColumns, + deleted: deletedColumns + }; + const table6 = left[tableEntry[0]]; + return [ + tableEntry[0], + { name: table6.name, schema: table6.schema, ...tableEntry[1] } + ]; + }) + ); + return alteredTables; +} +function diffPolicies(left, right) { + left = JSON.parse(JSON.stringify(left)); + right = JSON.parse(JSON.stringify(right)); + const result = (0, import_json_diff.diff)(left, right) ?? {}; + const alteredTables = Object.fromEntries( + Object.entries(result).filter((it) => { + return !(it[0].includes("__added") || it[0].includes("__deleted")); + }).map((tableEntry) => { + const deletedPolicies = Object.entries(tableEntry[1].policies ?? {}).filter((it) => { + return it[0].endsWith("__deleted"); + }).map((it) => { + return it[1]; + }); + const addedPolicies = Object.entries(tableEntry[1].policies ?? {}).filter((it) => { + return it[0].endsWith("__added"); + }).map((it) => { + return it[1]; + }); + tableEntry[1].policies = { + added: addedPolicies, + deleted: deletedPolicies + }; + const table6 = left[tableEntry[0]]; + return [ + tableEntry[0], + { name: table6.name, schema: table6.schema, ...tableEntry[1] } + ]; + }) + ); + return alteredTables; +} +function applyJsonDiff(json1, json2) { + json1 = JSON.parse(JSON.stringify(json1)); + json2 = JSON.parse(JSON.stringify(json2)); + const rawDiff = (0, import_json_diff.diff)(json1, json2); + const difference = JSON.parse(JSON.stringify(rawDiff || {})); + difference.schemas = difference.schemas || {}; + difference.tables = difference.tables || {}; + difference.enums = difference.enums || {}; + difference.sequences = difference.sequences || {}; + difference.roles = difference.roles || {}; + difference.policies = difference.policies || {}; + difference.views = difference.views || {}; + const schemaKeys = Object.keys(difference.schemas); + for (let key of schemaKeys) { + if (key.endsWith("__added") || key.endsWith("__deleted")) { + delete difference.schemas[key]; + continue; + } + } + const tableKeys = Object.keys(difference.tables); + for (let key of tableKeys) { + if (key.endsWith("__added") || key.endsWith("__deleted")) { + delete difference.tables[key]; + continue; + } + const table6 = json1.tables[key]; + difference.tables[key] = { + name: table6.name, + schema: table6.schema, + ...difference.tables[key] + }; + } + for (let [tableKey2, tableValue] of Object.entries(difference.tables)) { + const table6 = difference.tables[tableKey2]; + const columns = tableValue.columns || {}; + const columnKeys = Object.keys(columns); + for (let key of columnKeys) { + if (key.endsWith("__added") || key.endsWith("__deleted")) { + delete table6.columns[key]; + continue; + } + } + if (Object.keys(columns).length === 0) { + delete table6["columns"]; + } + if ("name" in table6 && "schema" in table6 && Object.keys(table6).length === 2) { + delete difference.tables[tableKey2]; + } + } + const enumsEntries = Object.entries(difference.enums); + const alteredEnums = enumsEntries.filter((it) => !(it[0].includes("__added") || it[0].includes("__deleted"))).map((it) => { + const enumEntry = json1.enums[it[0]]; + const { name, schema: schema6, values } = enumEntry; + const sequence = mapArraysDiff(values, it[1].values); + const addedValues = sequence.filter((it2) => it2.type === "added").map((it2) => { + return { + before: it2.before, + value: it2.value + }; + }); + const deletedValues = sequence.filter((it2) => it2.type === "removed").map((it2) => it2.value); + return { name, schema: schema6, addedValues, deletedValues }; + }); + const sequencesEntries = Object.entries(difference.sequences); + const alteredSequences = sequencesEntries.filter((it) => !(it[0].includes("__added") || it[0].includes("__deleted")) && "values" in it[1]).map((it) => { + return json2.sequences[it[0]]; + }); + const rolesEntries = Object.entries(difference.roles); + const alteredRoles = rolesEntries.filter((it) => !(it[0].includes("__added") || it[0].includes("__deleted"))).map((it) => { + return json2.roles[it[0]]; + }); + const policiesEntries = Object.entries(difference.policies); + const alteredPolicies = policiesEntries.filter((it) => !(it[0].includes("__added") || it[0].includes("__deleted"))).map((it) => { + return json2.policies[it[0]]; + }); + const viewsEntries = Object.entries(difference.views); + const alteredViews = viewsEntries.filter((it) => !(it[0].includes("__added") || it[0].includes("__deleted"))).map( + ([nameWithSchema, view5]) => { + const deletedWithOption = view5.with__deleted; + const addedWithOption = view5.with__added; + const deletedWith = Object.fromEntries( + Object.entries(view5.with || {}).filter((it) => it[0].endsWith("__deleted")).map(([key, value]) => { + return [key.replace("__deleted", ""), value]; + }) + ); + const addedWith = Object.fromEntries( + Object.entries(view5.with || {}).filter((it) => it[0].endsWith("__added")).map(([key, value]) => { + return [key.replace("__added", ""), value]; + }) + ); + const alterWith = Object.fromEntries( + Object.entries(view5.with || {}).filter( + (it) => typeof it[1].__old !== "undefined" && typeof it[1].__new !== "undefined" + ).map( + (it) => { + return [it[0], it[1].__new]; + } + ) + ); + const alteredSchema = view5.schema; + const alteredDefinition = view5.definition; + const alteredExisting = view5.isExisting; + const addedTablespace = view5.tablespace__added; + const droppedTablespace = view5.tablespace__deleted; + const alterTablespaceTo = view5.tablespace; + let alteredTablespace; + if (addedTablespace) alteredTablespace = { __new: addedTablespace, __old: "pg_default" }; + if (droppedTablespace) alteredTablespace = { __new: "pg_default", __old: droppedTablespace }; + if (alterTablespaceTo) alteredTablespace = alterTablespaceTo; + const addedUsing = view5.using__added; + const droppedUsing = view5.using__deleted; + const alterUsingTo = view5.using; + let alteredUsing; + if (addedUsing) alteredUsing = { __new: addedUsing, __old: "heap" }; + if (droppedUsing) alteredUsing = { __new: "heap", __old: droppedUsing }; + if (alterUsingTo) alteredUsing = alterUsingTo; + const alteredMeta = view5.meta; + return Object.fromEntries( + Object.entries({ + name: json2.views[nameWithSchema].name, + schema: json2.views[nameWithSchema].schema, + // pg + deletedWithOption, + addedWithOption, + deletedWith: Object.keys(deletedWith).length ? deletedWith : void 0, + addedWith: Object.keys(addedWith).length ? addedWith : void 0, + alteredWith: Object.keys(alterWith).length ? alterWith : void 0, + alteredSchema, + alteredTablespace, + alteredUsing, + // mysql + alteredMeta, + // common + alteredDefinition, + alteredExisting + }).filter(([_3, value]) => value !== void 0) + ); + } + ); + const alteredTablesWithColumns = Object.values(difference.tables).map( + (table6) => { + return findAlternationsInTable(table6); + } + ); + return { + alteredTablesWithColumns, + alteredEnums, + alteredSequences, + alteredRoles, + alteredViews, + alteredPolicies + }; +} +var import_json_diff, mapArraysDiff, findAlternationsInTable, alternationsInColumn; +var init_jsonDiffer = __esm({ + "src/jsonDiffer.js"() { + "use strict"; + "use-strict"; + import_json_diff = __toESM(require_lib()); + mapArraysDiff = (source, diff2) => { + const sequence = []; + let sourceIndex = 0; + for (let i4 = 0; i4 < diff2.length; i4++) { + const it = diff2[i4]; + if (it.length === 1) { + sequence.push({ type: "same", value: source[sourceIndex] }); + sourceIndex += 1; + } else { + if (it[0] === "-") { + sequence.push({ type: "removed", value: it[1] }); + } else { + sequence.push({ type: "added", value: it[1], before: "" }); + } + } + } + const result = sequence.reverse().reduce( + (acc, it) => { + if (it.type === "same") { + acc.prev = it.value; + } + if (it.type === "added" && acc.prev) { + it.before = acc.prev; + } + acc.result.push(it); + return acc; + }, + { result: [] } + ); + return result.result.reverse(); + }; + findAlternationsInTable = (table6) => { + const columns = table6.columns ?? {}; + const altered = Object.keys(columns).filter((it) => !(it.includes("__deleted") || it.includes("__added"))).map((it) => { + return { name: it, ...columns[it] }; + }); + const deletedIndexes = Object.fromEntries( + Object.entries(table6.indexes__deleted || {}).concat( + Object.entries(table6.indexes || {}).filter((it) => it[0].includes("__deleted")) + ).map((entry) => [entry[0].replace("__deleted", ""), entry[1]]) + ); + const addedIndexes = Object.fromEntries( + Object.entries(table6.indexes__added || {}).concat( + Object.entries(table6.indexes || {}).filter((it) => it[0].includes("__added")) + ).map((entry) => [entry[0].replace("__added", ""), entry[1]]) + ); + const alteredIndexes = Object.fromEntries( + Object.entries(table6.indexes || {}).filter((it) => { + return !it[0].endsWith("__deleted") && !it[0].endsWith("__added"); + }) + ); + const deletedPolicies = Object.fromEntries( + Object.entries(table6.policies__deleted || {}).concat( + Object.entries(table6.policies || {}).filter((it) => it[0].includes("__deleted")) + ).map((entry) => [entry[0].replace("__deleted", ""), entry[1]]) + ); + const addedPolicies = Object.fromEntries( + Object.entries(table6.policies__added || {}).concat( + Object.entries(table6.policies || {}).filter((it) => it[0].includes("__added")) + ).map((entry) => [entry[0].replace("__added", ""), entry[1]]) + ); + const alteredPolicies = Object.fromEntries( + Object.entries(table6.policies || {}).filter((it) => { + return !it[0].endsWith("__deleted") && !it[0].endsWith("__added"); + }) + ); + const deletedForeignKeys = Object.fromEntries( + Object.entries(table6.foreignKeys__deleted || {}).concat( + Object.entries(table6.foreignKeys || {}).filter((it) => it[0].includes("__deleted")) + ).map((entry) => [entry[0].replace("__deleted", ""), entry[1]]) + ); + const addedForeignKeys = Object.fromEntries( + Object.entries(table6.foreignKeys__added || {}).concat( + Object.entries(table6.foreignKeys || {}).filter((it) => it[0].includes("__added")) + ).map((entry) => [entry[0].replace("__added", ""), entry[1]]) + ); + const alteredForeignKeys = Object.fromEntries( + Object.entries(table6.foreignKeys || {}).filter( + (it) => !it[0].endsWith("__added") && !it[0].endsWith("__deleted") + ).map((entry) => [entry[0], entry[1]]) + ); + const addedCompositePKs = Object.fromEntries( + Object.entries(table6.compositePrimaryKeys || {}).filter((it) => { + return it[0].endsWith("__added"); + }) + ); + const deletedCompositePKs = Object.fromEntries( + Object.entries(table6.compositePrimaryKeys || {}).filter((it) => { + return it[0].endsWith("__deleted"); + }) + ); + const alteredCompositePKs = Object.fromEntries( + Object.entries(table6.compositePrimaryKeys || {}).filter((it) => { + return !it[0].endsWith("__deleted") && !it[0].endsWith("__added"); + }) + ); + const addedUniqueConstraints = Object.fromEntries( + Object.entries(table6.uniqueConstraints || {}).filter((it) => { + return it[0].endsWith("__added"); + }) + ); + const deletedUniqueConstraints = Object.fromEntries( + Object.entries(table6.uniqueConstraints || {}).filter((it) => { + return it[0].endsWith("__deleted"); + }) + ); + const alteredUniqueConstraints = Object.fromEntries( + Object.entries(table6.uniqueConstraints || {}).filter((it) => { + return !it[0].endsWith("__deleted") && !it[0].endsWith("__added"); + }) + ); + const addedCheckConstraints = Object.fromEntries( + Object.entries(table6.checkConstraints || {}).filter((it) => { + return it[0].endsWith("__added"); + }) + ); + const deletedCheckConstraints = Object.fromEntries( + Object.entries(table6.checkConstraints || {}).filter((it) => { + return it[0].endsWith("__deleted"); + }) + ); + const alteredCheckConstraints = Object.fromEntries( + Object.entries(table6.checkConstraints || {}).filter((it) => { + return !it[0].endsWith("__deleted") && !it[0].endsWith("__added"); + }) + ); + const mappedAltered = altered.map((it) => alternationsInColumn(it)).filter(Boolean); + return { + name: table6.name, + schema: table6.schema || "", + altered: mappedAltered, + addedIndexes, + deletedIndexes, + alteredIndexes, + addedForeignKeys, + deletedForeignKeys, + alteredForeignKeys, + addedCompositePKs, + deletedCompositePKs, + alteredCompositePKs, + addedUniqueConstraints, + deletedUniqueConstraints, + alteredUniqueConstraints, + deletedPolicies, + addedPolicies, + alteredPolicies, + addedCheckConstraints, + deletedCheckConstraints, + alteredCheckConstraints + }; + }; + alternationsInColumn = (column11) => { + const altered = [column11]; + const result = altered.filter((it) => { + if ("type" in it && it.type.__old.replace(" (", "(") === it.type.__new.replace(" (", "(")) { + return false; + } + return true; + }).map((it) => { + if (typeof it.name !== "string" && "__old" in it.name) { + return { + ...it, + name: { type: "changed", old: it.name.__old, new: it.name.__new } + }; + } + return it; + }).map((it) => { + if ("type" in it) { + return { + ...it, + type: { type: "changed", old: it.type.__old, new: it.type.__new } + }; + } + return it; + }).map((it) => { + if ("default" in it) { + return { + ...it, + default: { + type: "changed", + old: it.default.__old, + new: it.default.__new + } + }; + } + if ("default__added" in it) { + const { default__added, ...others } = it; + return { + ...others, + default: { type: "added", value: it.default__added } + }; + } + if ("default__deleted" in it) { + const { default__deleted, ...others } = it; + return { + ...others, + default: { type: "deleted", value: it.default__deleted } + }; + } + return it; + }).map((it) => { + if ("generated" in it) { + if ("as" in it.generated && "type" in it.generated) { + return { + ...it, + generated: { + type: "changed", + old: { as: it.generated.as.__old, type: it.generated.type.__old }, + new: { as: it.generated.as.__new, type: it.generated.type.__new } + } + }; + } else if ("as" in it.generated) { + return { + ...it, + generated: { + type: "changed", + old: { as: it.generated.as.__old }, + new: { as: it.generated.as.__new } + } + }; + } else { + return { + ...it, + generated: { + type: "changed", + old: { as: it.generated.type.__old }, + new: { as: it.generated.type.__new } + } + }; + } + } + if ("generated__added" in it) { + const { generated__added, ...others } = it; + return { + ...others, + generated: { type: "added", value: it.generated__added } + }; + } + if ("generated__deleted" in it) { + const { generated__deleted, ...others } = it; + return { + ...others, + generated: { type: "deleted", value: it.generated__deleted } + }; + } + return it; + }).map((it) => { + if ("identity" in it) { + return { + ...it, + identity: { + type: "changed", + old: it.identity.__old, + new: it.identity.__new + } + }; + } + if ("identity__added" in it) { + const { identity__added, ...others } = it; + return { + ...others, + identity: { type: "added", value: it.identity__added } + }; + } + if ("identity__deleted" in it) { + const { identity__deleted, ...others } = it; + return { + ...others, + identity: { type: "deleted", value: it.identity__deleted } + }; + } + return it; + }).map((it) => { + if ("notNull" in it) { + return { + ...it, + notNull: { + type: "changed", + old: it.notNull.__old, + new: it.notNull.__new + } + }; + } + if ("notNull__added" in it) { + const { notNull__added, ...others } = it; + return { + ...others, + notNull: { type: "added", value: it.notNull__added } + }; + } + if ("notNull__deleted" in it) { + const { notNull__deleted, ...others } = it; + return { + ...others, + notNull: { type: "deleted", value: it.notNull__deleted } + }; + } + return it; + }).map((it) => { + if ("primaryKey" in it) { + return { + ...it, + primaryKey: { + type: "changed", + old: it.primaryKey.__old, + new: it.primaryKey.__new + } + }; + } + if ("primaryKey__added" in it) { + const { notNull__added, ...others } = it; + return { + ...others, + primaryKey: { type: "added", value: it.primaryKey__added } + }; + } + if ("primaryKey__deleted" in it) { + const { notNull__deleted, ...others } = it; + return { + ...others, + primaryKey: { type: "deleted", value: it.primaryKey__deleted } + }; + } + return it; + }).map((it) => { + if ("typeSchema" in it) { + return { + ...it, + typeSchema: { + type: "changed", + old: it.typeSchema.__old, + new: it.typeSchema.__new + } + }; + } + if ("typeSchema__added" in it) { + const { typeSchema__added, ...others } = it; + return { + ...others, + typeSchema: { type: "added", value: it.typeSchema__added } + }; + } + if ("typeSchema__deleted" in it) { + const { typeSchema__deleted, ...others } = it; + return { + ...others, + typeSchema: { type: "deleted", value: it.typeSchema__deleted } + }; + } + return it; + }).map((it) => { + if ("onUpdate" in it) { + return { + ...it, + onUpdate: { + type: "changed", + old: it.onUpdate.__old, + new: it.onUpdate.__new + } + }; + } + if ("onUpdate__added" in it) { + const { onUpdate__added, ...others } = it; + return { + ...others, + onUpdate: { type: "added", value: it.onUpdate__added } + }; + } + if ("onUpdate__deleted" in it) { + const { onUpdate__deleted, ...others } = it; + return { + ...others, + onUpdate: { type: "deleted", value: it.onUpdate__deleted } + }; + } + return it; + }).map((it) => { + if ("autoincrement" in it) { + return { + ...it, + autoincrement: { + type: "changed", + old: it.autoincrement.__old, + new: it.autoincrement.__new + } + }; + } + if ("autoincrement__added" in it) { + const { autoincrement__added, ...others } = it; + return { + ...others, + autoincrement: { type: "added", value: it.autoincrement__added } + }; + } + if ("autoincrement__deleted" in it) { + const { autoincrement__deleted, ...others } = it; + return { + ...others, + autoincrement: { type: "deleted", value: it.autoincrement__deleted } + }; + } + return it; + }).map((it) => { + if ("" in it) { + return { + ...it, + autoincrement: { + type: "changed", + old: it.autoincrement.__old, + new: it.autoincrement.__new + } + }; + } + if ("autoincrement__added" in it) { + const { autoincrement__added, ...others } = it; + return { + ...others, + autoincrement: { type: "added", value: it.autoincrement__added } + }; + } + if ("autoincrement__deleted" in it) { + const { autoincrement__deleted, ...others } = it; + return { + ...others, + autoincrement: { type: "deleted", value: it.autoincrement__deleted } + }; + } + return it; + }).filter(Boolean); + return result[0]; + }; + } +}); + +// src/sqlgenerator.ts +function fromJson(statements, dialect6, action, json2) { + const result = statements.flatMap((statement) => { + const filtered = convertors.filter((it) => { + return it.can(statement, dialect6); + }); + const convertor = filtered.length === 1 ? filtered[0] : void 0; + if (!convertor) { + return ""; + } + return convertor.convert(statement, json2, action); + }).filter((it) => it !== ""); + return result; +} +var parseType, Convertor, PgCreateRoleConvertor, PgDropRoleConvertor, PgRenameRoleConvertor, PgAlterRoleConvertor, PgCreatePolicyConvertor, PgDropPolicyConvertor, PgRenamePolicyConvertor, PgAlterPolicyConvertor, PgCreateIndPolicyConvertor, PgDropIndPolicyConvertor, PgRenameIndPolicyConvertor, PgAlterIndPolicyConvertor, PgEnableRlsConvertor, PgDisableRlsConvertor, PgCreateTableConvertor, MySqlCreateTableConvertor, SingleStoreCreateTableConvertor, SQLiteCreateTableConvertor, PgCreateViewConvertor, MySqlCreateViewConvertor, SqliteCreateViewConvertor, PgDropViewConvertor, MySqlDropViewConvertor, SqliteDropViewConvertor, MySqlAlterViewConvertor, PgRenameViewConvertor, MySqlRenameViewConvertor, PgAlterViewSchemaConvertor, PgAlterViewAddWithOptionConvertor, PgAlterViewDropWithOptionConvertor, PgAlterViewAlterTablespaceConvertor, PgAlterViewAlterUsingConvertor, PgAlterTableAlterColumnSetGenerated, PgAlterTableAlterColumnDropGenerated, PgAlterTableAlterColumnAlterGenerated, PgAlterTableAddUniqueConstraintConvertor, PgAlterTableDropUniqueConstraintConvertor, PgAlterTableAddCheckConstraintConvertor, PgAlterTableDeleteCheckConstraintConvertor, MySQLAlterTableAddUniqueConstraintConvertor, MySQLAlterTableDropUniqueConstraintConvertor, MySqlAlterTableAddCheckConstraintConvertor, SingleStoreAlterTableAddUniqueConstraintConvertor, SingleStoreAlterTableDropUniqueConstraintConvertor, MySqlAlterTableDeleteCheckConstraintConvertor, CreatePgSequenceConvertor, DropPgSequenceConvertor, RenamePgSequenceConvertor, MovePgSequenceConvertor, AlterPgSequenceConvertor, CreateTypeEnumConvertor, DropTypeEnumConvertor, AlterTypeAddValueConvertor, AlterTypeSetSchemaConvertor, AlterRenameTypeConvertor, AlterTypeDropValueConvertor, PgDropTableConvertor, MySQLDropTableConvertor, SingleStoreDropTableConvertor, SQLiteDropTableConvertor, PgRenameTableConvertor, SqliteRenameTableConvertor, MySqlRenameTableConvertor, SingleStoreRenameTableConvertor, PgAlterTableRenameColumnConvertor, MySqlAlterTableRenameColumnConvertor, SingleStoreAlterTableRenameColumnConvertor, SQLiteAlterTableRenameColumnConvertor, PgAlterTableDropColumnConvertor, MySqlAlterTableDropColumnConvertor, SingleStoreAlterTableDropColumnConvertor, SQLiteAlterTableDropColumnConvertor, PgAlterTableAddColumnConvertor, MySqlAlterTableAddColumnConvertor, SingleStoreAlterTableAddColumnConvertor, SQLiteAlterTableAddColumnConvertor, PgAlterTableAlterColumnSetTypeConvertor, PgAlterTableAlterColumnSetDefaultConvertor, PgAlterTableAlterColumnDropDefaultConvertor, PgAlterTableAlterColumnDropGeneratedConvertor, PgAlterTableAlterColumnSetExpressionConvertor, PgAlterTableAlterColumnAlterrGeneratedConvertor, SqliteAlterTableAlterColumnDropGeneratedConvertor, SqliteAlterTableAlterColumnSetExpressionConvertor, SqliteAlterTableAlterColumnAlterGeneratedConvertor, MySqlAlterTableAlterColumnAlterrGeneratedConvertor, MySqlAlterTableAddPk, MySqlAlterTableDropPk, LibSQLModifyColumn, MySqlModifyColumn, SingleStoreAlterTableAlterColumnAlterrGeneratedConvertor, SingleStoreAlterTableAddPk, SingleStoreAlterTableDropPk, SingleStoreModifyColumn, PgAlterTableCreateCompositePrimaryKeyConvertor, PgAlterTableDeleteCompositePrimaryKeyConvertor, PgAlterTableAlterCompositePrimaryKeyConvertor, MySqlAlterTableCreateCompositePrimaryKeyConvertor, MySqlAlterTableDeleteCompositePrimaryKeyConvertor, MySqlAlterTableAlterCompositePrimaryKeyConvertor, PgAlterTableAlterColumnSetPrimaryKeyConvertor, PgAlterTableAlterColumnDropPrimaryKeyConvertor, PgAlterTableAlterColumnSetNotNullConvertor, PgAlterTableAlterColumnDropNotNullConvertor, PgCreateForeignKeyConvertor, LibSQLCreateForeignKeyConvertor, MySqlCreateForeignKeyConvertor, PgAlterForeignKeyConvertor, PgDeleteForeignKeyConvertor, MySqlDeleteForeignKeyConvertor, CreatePgIndexConvertor, CreateMySqlIndexConvertor, CreateSingleStoreIndexConvertor, CreateSqliteIndexConvertor, PgDropIndexConvertor, PgCreateSchemaConvertor, PgRenameSchemaConvertor, PgDropSchemaConvertor, PgAlterTableSetSchemaConvertor, PgAlterTableSetNewSchemaConvertor, PgAlterTableRemoveFromSchemaConvertor, SqliteDropIndexConvertor, MySqlDropIndexConvertor, SingleStoreDropIndexConvertor, SQLiteRecreateTableConvertor, LibSQLRecreateTableConvertor, SingleStoreRecreateTableConvertor, convertors; +var init_sqlgenerator = __esm({ + "src/sqlgenerator.ts"() { + "use strict"; + init_migrate(); + init_mysqlSchema(); + init_pgSchema(); + init_singlestoreSchema(); + init_sqliteSchema(); + init_utils2(); + parseType = (schemaPrefix, type) => { + const pgNativeTypes = [ + "uuid", + "smallint", + "integer", + "bigint", + "boolean", + "text", + "varchar", + "serial", + "bigserial", + "decimal", + "numeric", + "real", + "json", + "jsonb", + "time", + "time with time zone", + "time without time zone", + "time", + "timestamp", + "timestamp with time zone", + "timestamp without time zone", + "date", + "interval", + "bigint", + "bigserial", + "double precision", + "interval year", + "interval month", + "interval day", + "interval hour", + "interval minute", + "interval second", + "interval year to month", + "interval day to hour", + "interval day to minute", + "interval day to second", + "interval hour to minute", + "interval hour to second", + "interval minute to second", + "char", + "vector", + "geometry", + "halfvec", + "sparsevec", + "bit" + ]; + const arrayDefinitionRegex = /\[\d*(?:\[\d*\])*\]/g; + const arrayDefinition = (type.match(arrayDefinitionRegex) ?? []).join(""); + const withoutArrayDefinition = type.replace(arrayDefinitionRegex, ""); + return pgNativeTypes.some((it) => type.startsWith(it)) ? `${withoutArrayDefinition}${arrayDefinition}` : `${schemaPrefix}"${withoutArrayDefinition}"${arrayDefinition}`; + }; + Convertor = class { + }; + PgCreateRoleConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "create_role" && dialect6 === "postgresql"; + } + convert(statement) { + return `CREATE ROLE "${statement.name}"${statement.values.createDb || statement.values.createRole || !statement.values.inherit ? ` WITH${statement.values.createDb ? " CREATEDB" : ""}${statement.values.createRole ? " CREATEROLE" : ""}${statement.values.inherit ? "" : " NOINHERIT"}` : ""};`; + } + }; + PgDropRoleConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "drop_role" && dialect6 === "postgresql"; + } + convert(statement) { + return `DROP ROLE "${statement.name}";`; + } + }; + PgRenameRoleConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "rename_role" && dialect6 === "postgresql"; + } + convert(statement) { + return `ALTER ROLE "${statement.nameFrom}" RENAME TO "${statement.nameTo}";`; + } + }; + PgAlterRoleConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "alter_role" && dialect6 === "postgresql"; + } + convert(statement) { + return `ALTER ROLE "${statement.name}"${` WITH${statement.values.createDb ? " CREATEDB" : " NOCREATEDB"}${statement.values.createRole ? " CREATEROLE" : " NOCREATEROLE"}${statement.values.inherit ? " INHERIT" : " NOINHERIT"}`};`; + } + }; + PgCreatePolicyConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "create_policy" && dialect6 === "postgresql"; + } + convert(statement) { + var _a2, _b, _c; + const policy5 = statement.data; + const tableNameWithSchema = statement.schema ? `"${statement.schema}"."${statement.tableName}"` : `"${statement.tableName}"`; + const usingPart = policy5.using ? ` USING (${policy5.using})` : ""; + const withCheckPart = policy5.withCheck ? ` WITH CHECK (${policy5.withCheck})` : ""; + const policyToPart = (_a2 = policy5.to) == null ? void 0 : _a2.map( + (v6) => ["current_user", "current_role", "session_user", "public"].includes(v6) ? v6 : `"${v6}"` + ).join(", "); + return `CREATE POLICY "${policy5.name}" ON ${tableNameWithSchema} AS ${(_b = policy5.as) == null ? void 0 : _b.toUpperCase()} FOR ${(_c = policy5.for) == null ? void 0 : _c.toUpperCase()} TO ${policyToPart}${usingPart}${withCheckPart};`; + } + }; + PgDropPolicyConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "drop_policy" && dialect6 === "postgresql"; + } + convert(statement) { + const policy5 = statement.data; + const tableNameWithSchema = statement.schema ? `"${statement.schema}"."${statement.tableName}"` : `"${statement.tableName}"`; + return `DROP POLICY "${policy5.name}" ON ${tableNameWithSchema} CASCADE;`; + } + }; + PgRenamePolicyConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "rename_policy" && dialect6 === "postgresql"; + } + convert(statement) { + const tableNameWithSchema = statement.schema ? `"${statement.schema}"."${statement.tableName}"` : `"${statement.tableName}"`; + return `ALTER POLICY "${statement.oldName}" ON ${tableNameWithSchema} RENAME TO "${statement.newName}";`; + } + }; + PgAlterPolicyConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "alter_policy" && dialect6 === "postgresql"; + } + convert(statement, _dialect, action) { + const newPolicy = action === "push" ? PgSquasher.unsquashPolicyPush(statement.newData) : PgSquasher.unsquashPolicy(statement.newData); + const oldPolicy = action === "push" ? PgSquasher.unsquashPolicyPush(statement.oldData) : PgSquasher.unsquashPolicy(statement.oldData); + const tableNameWithSchema = statement.schema ? `"${statement.schema}"."${statement.tableName}"` : `"${statement.tableName}"`; + const usingPart = newPolicy.using ? ` USING (${newPolicy.using})` : oldPolicy.using ? ` USING (${oldPolicy.using})` : ""; + const withCheckPart = newPolicy.withCheck ? ` WITH CHECK (${newPolicy.withCheck})` : oldPolicy.withCheck ? ` WITH CHECK (${oldPolicy.withCheck})` : ""; + return `ALTER POLICY "${oldPolicy.name}" ON ${tableNameWithSchema} TO ${newPolicy.to}${usingPart}${withCheckPart};`; + } + }; + PgCreateIndPolicyConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "create_ind_policy" && dialect6 === "postgresql"; + } + convert(statement) { + var _a2, _b, _c; + const policy5 = statement.data; + const usingPart = policy5.using ? ` USING (${policy5.using})` : ""; + const withCheckPart = policy5.withCheck ? ` WITH CHECK (${policy5.withCheck})` : ""; + const policyToPart = (_a2 = policy5.to) == null ? void 0 : _a2.map( + (v6) => ["current_user", "current_role", "session_user", "public"].includes(v6) ? v6 : `"${v6}"` + ).join(", "); + return `CREATE POLICY "${policy5.name}" ON ${policy5.on} AS ${(_b = policy5.as) == null ? void 0 : _b.toUpperCase()} FOR ${(_c = policy5.for) == null ? void 0 : _c.toUpperCase()} TO ${policyToPart}${usingPart}${withCheckPart};`; + } + }; + PgDropIndPolicyConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "drop_ind_policy" && dialect6 === "postgresql"; + } + convert(statement) { + const policy5 = statement.data; + return `DROP POLICY "${policy5.name}" ON ${policy5.on} CASCADE;`; + } + }; + PgRenameIndPolicyConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "rename_ind_policy" && dialect6 === "postgresql"; + } + convert(statement) { + return `ALTER POLICY "${statement.oldName}" ON ${statement.tableKey} RENAME TO "${statement.newName}";`; + } + }; + PgAlterIndPolicyConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "alter_ind_policy" && dialect6 === "postgresql"; + } + convert(statement) { + const newPolicy = statement.newData; + const oldPolicy = statement.oldData; + const usingPart = newPolicy.using ? ` USING (${newPolicy.using})` : oldPolicy.using ? ` USING (${oldPolicy.using})` : ""; + const withCheckPart = newPolicy.withCheck ? ` WITH CHECK (${newPolicy.withCheck})` : oldPolicy.withCheck ? ` WITH CHECK (${oldPolicy.withCheck})` : ""; + return `ALTER POLICY "${oldPolicy.name}" ON ${oldPolicy.on} TO ${newPolicy.to}${usingPart}${withCheckPart};`; + } + }; + PgEnableRlsConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "enable_rls" && dialect6 === "postgresql"; + } + convert(statement) { + const tableNameWithSchema = statement.schema ? `"${statement.schema}"."${statement.tableName}"` : `"${statement.tableName}"`; + return `ALTER TABLE ${tableNameWithSchema} ENABLE ROW LEVEL SECURITY;`; + } + }; + PgDisableRlsConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "disable_rls" && dialect6 === "postgresql"; + } + convert(statement) { + const tableNameWithSchema = statement.schema ? `"${statement.schema}"."${statement.tableName}"` : `"${statement.tableName}"`; + return `ALTER TABLE ${tableNameWithSchema} DISABLE ROW LEVEL SECURITY;`; + } + }; + PgCreateTableConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "create_table" && dialect6 === "postgresql"; + } + convert(st) { + const { tableName, schema: schema6, columns, compositePKs, uniqueConstraints, checkConstraints, policies, isRLSEnabled } = st; + let statement = ""; + const name = schema6 ? `"${schema6}"."${tableName}"` : `"${tableName}"`; + statement += `CREATE TABLE ${name} ( +`; + for (let i4 = 0; i4 < columns.length; i4++) { + const column11 = columns[i4]; + const primaryKeyStatement = column11.primaryKey ? " PRIMARY KEY" : ""; + const notNullStatement = column11.notNull && !column11.identity ? " NOT NULL" : ""; + const defaultStatement = column11.default !== void 0 ? ` DEFAULT ${column11.default}` : ""; + const uniqueConstraint6 = column11.isUnique ? ` CONSTRAINT "${column11.uniqueName}" UNIQUE${column11.nullsNotDistinct ? " NULLS NOT DISTINCT" : ""}` : ""; + const schemaPrefix = column11.typeSchema && column11.typeSchema !== "public" ? `"${column11.typeSchema}".` : ""; + const type = parseType(schemaPrefix, column11.type); + const generated = column11.generated; + const generatedStatement = generated ? ` GENERATED ALWAYS AS (${generated == null ? void 0 : generated.as}) STORED` : ""; + const unsquashedIdentity = column11.identity ? PgSquasher.unsquashIdentity(column11.identity) : void 0; + const identityWithSchema = schema6 ? `"${schema6}"."${unsquashedIdentity == null ? void 0 : unsquashedIdentity.name}"` : `"${unsquashedIdentity == null ? void 0 : unsquashedIdentity.name}"`; + const identity = unsquashedIdentity ? ` GENERATED ${unsquashedIdentity.type === "always" ? "ALWAYS" : "BY DEFAULT"} AS IDENTITY (sequence name ${identityWithSchema}${unsquashedIdentity.increment ? ` INCREMENT BY ${unsquashedIdentity.increment}` : ""}${unsquashedIdentity.minValue ? ` MINVALUE ${unsquashedIdentity.minValue}` : ""}${unsquashedIdentity.maxValue ? ` MAXVALUE ${unsquashedIdentity.maxValue}` : ""}${unsquashedIdentity.startWith ? ` START WITH ${unsquashedIdentity.startWith}` : ""}${unsquashedIdentity.cache ? ` CACHE ${unsquashedIdentity.cache}` : ""}${unsquashedIdentity.cycle ? ` CYCLE` : ""})` : ""; + statement += ` "${column11.name}" ${type}${primaryKeyStatement}${defaultStatement}${generatedStatement}${notNullStatement}${uniqueConstraint6}${identity}`; + statement += i4 === columns.length - 1 ? "" : ",\n"; + } + if (typeof compositePKs !== "undefined" && compositePKs.length > 0) { + statement += ",\n"; + const compositePK6 = PgSquasher.unsquashPK(compositePKs[0]); + statement += ` CONSTRAINT "${st.compositePkName}" PRIMARY KEY("${compositePK6.columns.join(`","`)}")`; + } + if (typeof uniqueConstraints !== "undefined" && uniqueConstraints.length > 0) { + for (const uniqueConstraint6 of uniqueConstraints) { + statement += ",\n"; + const unsquashedUnique = PgSquasher.unsquashUnique(uniqueConstraint6); + statement += ` CONSTRAINT "${unsquashedUnique.name}" UNIQUE${unsquashedUnique.nullsNotDistinct ? " NULLS NOT DISTINCT" : ""}("${unsquashedUnique.columns.join(`","`)}")`; + } + } + if (typeof checkConstraints !== "undefined" && checkConstraints.length > 0) { + for (const checkConstraint5 of checkConstraints) { + statement += ",\n"; + const unsquashedCheck = PgSquasher.unsquashCheck(checkConstraint5); + statement += ` CONSTRAINT "${unsquashedCheck.name}" CHECK (${unsquashedCheck.value})`; + } + } + statement += ` +);`; + statement += ` +`; + const enableRls = new PgEnableRlsConvertor().convert({ + type: "enable_rls", + tableName, + schema: schema6 + }); + return [statement, ...policies && policies.length > 0 || isRLSEnabled ? [enableRls] : []]; + } + }; + MySqlCreateTableConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "create_table" && dialect6 === "mysql"; + } + convert(st) { + var _a2, _b; + const { + tableName, + columns, + schema: schema6, + checkConstraints, + compositePKs, + uniqueConstraints, + internals + } = st; + let statement = ""; + statement += `CREATE TABLE \`${tableName}\` ( +`; + for (let i4 = 0; i4 < columns.length; i4++) { + const column11 = columns[i4]; + const primaryKeyStatement = column11.primaryKey ? " PRIMARY KEY" : ""; + const notNullStatement = column11.notNull ? " NOT NULL" : ""; + const defaultStatement = column11.default !== void 0 ? ` DEFAULT ${column11.default}` : ""; + const onUpdateStatement = column11.onUpdate ? ` ON UPDATE CURRENT_TIMESTAMP` : ""; + const autoincrementStatement = column11.autoincrement ? " AUTO_INCREMENT" : ""; + const generatedStatement = column11.generated ? ` GENERATED ALWAYS AS (${(_a2 = column11.generated) == null ? void 0 : _a2.as}) ${(_b = column11.generated) == null ? void 0 : _b.type.toUpperCase()}` : ""; + statement += ` \`${column11.name}\` ${column11.type}${autoincrementStatement}${primaryKeyStatement}${generatedStatement}${notNullStatement}${defaultStatement}${onUpdateStatement}`; + statement += i4 === columns.length - 1 ? "" : ",\n"; + } + if (typeof compositePKs !== "undefined" && compositePKs.length > 0) { + statement += ",\n"; + const compositePK6 = MySqlSquasher.unsquashPK(compositePKs[0]); + statement += ` CONSTRAINT \`${st.compositePkName}\` PRIMARY KEY(\`${compositePK6.columns.join(`\`,\``)}\`)`; + } + if (typeof uniqueConstraints !== "undefined" && uniqueConstraints.length > 0) { + for (const uniqueConstraint6 of uniqueConstraints) { + statement += ",\n"; + const unsquashedUnique = MySqlSquasher.unsquashUnique(uniqueConstraint6); + const uniqueString = unsquashedUnique.columns.map((it) => { + var _a3, _b2; + return (internals == null ? void 0 : internals.indexes) ? ((_b2 = (_a3 = internals == null ? void 0 : internals.indexes[unsquashedUnique.name]) == null ? void 0 : _a3.columns[it]) == null ? void 0 : _b2.isExpression) ? it : `\`${it}\`` : `\`${it}\``; + }).join(","); + statement += ` CONSTRAINT \`${unsquashedUnique.name}\` UNIQUE(${uniqueString})`; + } + } + if (typeof checkConstraints !== "undefined" && checkConstraints.length > 0) { + for (const checkConstraint5 of checkConstraints) { + statement += ",\n"; + const unsquashedCheck = MySqlSquasher.unsquashCheck(checkConstraint5); + statement += ` CONSTRAINT \`${unsquashedCheck.name}\` CHECK(${unsquashedCheck.value})`; + } + } + statement += ` +);`; + statement += ` +`; + return statement; + } + }; + SingleStoreCreateTableConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "create_table" && dialect6 === "singlestore"; + } + convert(st) { + var _a2, _b; + const { + tableName, + columns, + schema: schema6, + compositePKs, + uniqueConstraints, + internals + } = st; + let statement = ""; + statement += `CREATE TABLE \`${tableName}\` ( +`; + for (let i4 = 0; i4 < columns.length; i4++) { + const column11 = columns[i4]; + const primaryKeyStatement = column11.primaryKey ? " PRIMARY KEY" : ""; + const notNullStatement = column11.notNull ? " NOT NULL" : ""; + const defaultStatement = column11.default !== void 0 ? ` DEFAULT ${column11.default}` : ""; + const onUpdateStatement = column11.onUpdate ? ` ON UPDATE CURRENT_TIMESTAMP` : ""; + const autoincrementStatement = column11.autoincrement ? " AUTO_INCREMENT" : ""; + const generatedStatement = column11.generated ? ` GENERATED ALWAYS AS (${(_a2 = column11.generated) == null ? void 0 : _a2.as}) ${(_b = column11.generated) == null ? void 0 : _b.type.toUpperCase()}` : ""; + statement += ` \`${column11.name}\` ${column11.type}${autoincrementStatement}${primaryKeyStatement}${notNullStatement}${defaultStatement}${onUpdateStatement}${generatedStatement}`; + statement += i4 === columns.length - 1 ? "" : ",\n"; + } + if (typeof compositePKs !== "undefined" && compositePKs.length > 0) { + statement += ",\n"; + const compositePK6 = SingleStoreSquasher.unsquashPK(compositePKs[0]); + statement += ` CONSTRAINT \`${compositePK6.name}\` PRIMARY KEY(\`${compositePK6.columns.join(`\`,\``)}\`)`; + } + if (typeof uniqueConstraints !== "undefined" && uniqueConstraints.length > 0) { + for (const uniqueConstraint6 of uniqueConstraints) { + statement += ",\n"; + const unsquashedUnique = SingleStoreSquasher.unsquashUnique(uniqueConstraint6); + const uniqueString = unsquashedUnique.columns.map((it) => { + var _a3, _b2; + return (internals == null ? void 0 : internals.indexes) ? ((_b2 = (_a3 = internals == null ? void 0 : internals.indexes[unsquashedUnique.name]) == null ? void 0 : _a3.columns[it]) == null ? void 0 : _b2.isExpression) ? it : `\`${it}\`` : `\`${it}\``; + }).join(","); + statement += ` CONSTRAINT \`${unsquashedUnique.name}\` UNIQUE(${uniqueString})`; + } + } + statement += ` +);`; + statement += ` +`; + return statement; + } + }; + SQLiteCreateTableConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "sqlite_create_table" && (dialect6 === "sqlite" || dialect6 === "turso"); + } + convert(st) { + const { + tableName, + columns, + referenceData, + compositePKs, + uniqueConstraints, + checkConstraints + } = st; + let statement = ""; + statement += `CREATE TABLE \`${tableName}\` ( +`; + for (let i4 = 0; i4 < columns.length; i4++) { + const column11 = columns[i4]; + const primaryKeyStatement = column11.primaryKey ? " PRIMARY KEY" : ""; + const notNullStatement = column11.notNull ? " NOT NULL" : ""; + const defaultStatement = column11.default !== void 0 ? ` DEFAULT ${column11.default}` : ""; + const autoincrementStatement = column11.autoincrement ? " AUTOINCREMENT" : ""; + const generatedStatement = column11.generated ? ` GENERATED ALWAYS AS ${column11.generated.as} ${column11.generated.type.toUpperCase()}` : ""; + statement += " "; + statement += `\`${column11.name}\` ${column11.type}${primaryKeyStatement}${autoincrementStatement}${defaultStatement}${generatedStatement}${notNullStatement}`; + statement += i4 === columns.length - 1 ? "" : ",\n"; + } + compositePKs.forEach((it) => { + statement += ",\n "; + statement += `PRIMARY KEY(${it.map((it2) => `\`${it2}\``).join(", ")})`; + }); + for (let i4 = 0; i4 < referenceData.length; i4++) { + const { + name, + tableFrom, + tableTo, + columnsFrom, + columnsTo, + onDelete, + onUpdate + } = referenceData[i4]; + const onDeleteStatement = onDelete ? ` ON DELETE ${onDelete}` : ""; + const onUpdateStatement = onUpdate ? ` ON UPDATE ${onUpdate}` : ""; + const fromColumnsString = columnsFrom.map((it) => `\`${it}\``).join(","); + const toColumnsString = columnsTo.map((it) => `\`${it}\``).join(","); + statement += ","; + statement += "\n "; + statement += `FOREIGN KEY (${fromColumnsString}) REFERENCES \`${tableTo}\`(${toColumnsString})${onUpdateStatement}${onDeleteStatement}`; + } + if (typeof uniqueConstraints !== "undefined" && uniqueConstraints.length > 0) { + for (const uniqueConstraint6 of uniqueConstraints) { + statement += ",\n"; + const unsquashedUnique = SQLiteSquasher.unsquashUnique(uniqueConstraint6); + statement += ` CONSTRAINT ${unsquashedUnique.name} UNIQUE(\`${unsquashedUnique.columns.join(`\`,\``)}\`)`; + } + } + if (typeof checkConstraints !== "undefined" && checkConstraints.length > 0) { + for (const check2 of checkConstraints) { + statement += ",\n"; + const { value, name } = SQLiteSquasher.unsquashCheck(check2); + statement += ` CONSTRAINT "${name}" CHECK(${value})`; + } + } + statement += ` +`; + statement += `);`; + statement += ` +`; + return statement; + } + }; + PgCreateViewConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "create_view" && dialect6 === "postgresql"; + } + convert(st) { + const { definition, name: viewName, schema: schema6, with: withOption, materialized, withNoData, tablespace, using } = st; + const name = schema6 ? `"${schema6}"."${viewName}"` : `"${viewName}"`; + let statement = materialized ? `CREATE MATERIALIZED VIEW ${name}` : `CREATE VIEW ${name}`; + if (using) statement += ` USING "${using}"`; + const options = []; + if (withOption) { + statement += ` WITH (`; + Object.entries(withOption).forEach(([key, value]) => { + if (typeof value === "undefined") return; + options.push(`${key.snake_case()} = ${value}`); + }); + statement += options.join(", "); + statement += `)`; + } + if (tablespace) statement += ` TABLESPACE ${tablespace}`; + statement += ` AS (${definition})`; + if (withNoData) statement += ` WITH NO DATA`; + statement += `;`; + return statement; + } + }; + MySqlCreateViewConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "mysql_create_view" && dialect6 === "mysql"; + } + convert(st) { + const { definition, name, algorithm, sqlSecurity, withCheckOption, replace } = st; + let statement = `CREATE `; + statement += replace ? `OR REPLACE ` : ""; + statement += algorithm ? `ALGORITHM = ${algorithm} +` : ""; + statement += sqlSecurity ? `SQL SECURITY ${sqlSecurity} +` : ""; + statement += `VIEW \`${name}\` AS (${definition})`; + statement += withCheckOption ? ` +WITH ${withCheckOption} CHECK OPTION` : ""; + statement += ";"; + return statement; + } + }; + SqliteCreateViewConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "sqlite_create_view" && (dialect6 === "sqlite" || dialect6 === "turso"); + } + convert(st) { + const { definition, name } = st; + return `CREATE VIEW \`${name}\` AS ${definition};`; + } + }; + PgDropViewConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "drop_view" && dialect6 === "postgresql"; + } + convert(st) { + const { name: viewName, schema: schema6, materialized } = st; + const name = schema6 ? `"${schema6}"."${viewName}"` : `"${viewName}"`; + return `DROP${materialized ? " MATERIALIZED" : ""} VIEW ${name};`; + } + }; + MySqlDropViewConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "drop_view" && dialect6 === "mysql"; + } + convert(st) { + const { name } = st; + return `DROP VIEW \`${name}\`;`; + } + }; + SqliteDropViewConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "drop_view" && (dialect6 === "sqlite" || dialect6 === "turso"); + } + convert(st) { + const { name } = st; + return `DROP VIEW \`${name}\`;`; + } + }; + MySqlAlterViewConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "alter_mysql_view" && dialect6 === "mysql"; + } + convert(st) { + const { name, algorithm, definition, sqlSecurity, withCheckOption } = st; + let statement = `ALTER `; + statement += algorithm ? `ALGORITHM = ${algorithm} +` : ""; + statement += sqlSecurity ? `SQL SECURITY ${sqlSecurity} +` : ""; + statement += `VIEW \`${name}\` AS ${definition}`; + statement += withCheckOption ? ` +WITH ${withCheckOption} CHECK OPTION` : ""; + statement += ";"; + return statement; + } + }; + PgRenameViewConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "rename_view" && dialect6 === "postgresql"; + } + convert(st) { + const { nameFrom: from, nameTo: to, schema: schema6, materialized } = st; + const nameFrom = `"${schema6}"."${from}"`; + return `ALTER${materialized ? " MATERIALIZED" : ""} VIEW ${nameFrom} RENAME TO "${to}";`; + } + }; + MySqlRenameViewConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "rename_view" && dialect6 === "mysql"; + } + convert(st) { + const { nameFrom: from, nameTo: to } = st; + return `RENAME TABLE \`${from}\` TO \`${to}\`;`; + } + }; + PgAlterViewSchemaConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "alter_view_alter_schema" && dialect6 === "postgresql"; + } + convert(st) { + const { fromSchema, toSchema, name, materialized } = st; + const statement = `ALTER${materialized ? " MATERIALIZED" : ""} VIEW "${fromSchema}"."${name}" SET SCHEMA "${toSchema}";`; + return statement; + } + }; + PgAlterViewAddWithOptionConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "alter_view_add_with_option" && dialect6 === "postgresql"; + } + convert(st) { + const { schema: schema6, with: withOption, name, materialized } = st; + let statement = `ALTER${materialized ? " MATERIALIZED" : ""} VIEW "${schema6}"."${name}" SET (`; + const options = []; + Object.entries(withOption).forEach(([key, value]) => { + options.push(`${key.snake_case()} = ${value}`); + }); + statement += options.join(", "); + statement += `);`; + return statement; + } + }; + PgAlterViewDropWithOptionConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "alter_view_drop_with_option" && dialect6 === "postgresql"; + } + convert(st) { + const { schema: schema6, name, materialized, with: withOptions } = st; + let statement = `ALTER${materialized ? " MATERIALIZED" : ""} VIEW "${schema6}"."${name}" RESET (`; + const options = []; + Object.entries(withOptions).forEach(([key, value]) => { + options.push(`${key.snake_case()}`); + }); + statement += options.join(", "); + statement += ");"; + return statement; + } + }; + PgAlterViewAlterTablespaceConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "alter_view_alter_tablespace" && dialect6 === "postgresql"; + } + convert(st) { + const { schema: schema6, name, toTablespace } = st; + const statement = `ALTER MATERIALIZED VIEW "${schema6}"."${name}" SET TABLESPACE ${toTablespace};`; + return statement; + } + }; + PgAlterViewAlterUsingConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "alter_view_alter_using" && dialect6 === "postgresql"; + } + convert(st) { + const { schema: schema6, name, toUsing } = st; + const statement = `ALTER MATERIALIZED VIEW "${schema6}"."${name}" SET ACCESS METHOD "${toUsing}";`; + return statement; + } + }; + PgAlterTableAlterColumnSetGenerated = class extends Convertor { + can(statement, dialect6) { + return statement.type === "alter_table_alter_column_set_identity" && dialect6 === "postgresql"; + } + convert(statement) { + const { identity, tableName, columnName, schema: schema6 } = statement; + const tableNameWithSchema = schema6 ? `"${schema6}"."${tableName}"` : `"${tableName}"`; + const unsquashedIdentity = PgSquasher.unsquashIdentity(identity); + const identityWithSchema = schema6 ? `"${schema6}"."${unsquashedIdentity == null ? void 0 : unsquashedIdentity.name}"` : `"${unsquashedIdentity == null ? void 0 : unsquashedIdentity.name}"`; + const identityStatement = unsquashedIdentity ? ` GENERATED ${unsquashedIdentity.type === "always" ? "ALWAYS" : "BY DEFAULT"} AS IDENTITY (sequence name ${identityWithSchema}${unsquashedIdentity.increment ? ` INCREMENT BY ${unsquashedIdentity.increment}` : ""}${unsquashedIdentity.minValue ? ` MINVALUE ${unsquashedIdentity.minValue}` : ""}${unsquashedIdentity.maxValue ? ` MAXVALUE ${unsquashedIdentity.maxValue}` : ""}${unsquashedIdentity.startWith ? ` START WITH ${unsquashedIdentity.startWith}` : ""}${unsquashedIdentity.cache ? ` CACHE ${unsquashedIdentity.cache}` : ""}${unsquashedIdentity.cycle ? ` CYCLE` : ""})` : ""; + return `ALTER TABLE ${tableNameWithSchema} ALTER COLUMN "${columnName}" ADD${identityStatement};`; + } + }; + PgAlterTableAlterColumnDropGenerated = class extends Convertor { + can(statement, dialect6) { + return statement.type === "alter_table_alter_column_drop_identity" && dialect6 === "postgresql"; + } + convert(statement) { + const { tableName, columnName, schema: schema6 } = statement; + const tableNameWithSchema = schema6 ? `"${schema6}"."${tableName}"` : `"${tableName}"`; + return `ALTER TABLE ${tableNameWithSchema} ALTER COLUMN "${columnName}" DROP IDENTITY;`; + } + }; + PgAlterTableAlterColumnAlterGenerated = class extends Convertor { + can(statement, dialect6) { + return statement.type === "alter_table_alter_column_change_identity" && dialect6 === "postgresql"; + } + convert(statement) { + const { identity, oldIdentity, tableName, columnName, schema: schema6 } = statement; + const tableNameWithSchema = schema6 ? `"${schema6}"."${tableName}"` : `"${tableName}"`; + const unsquashedIdentity = PgSquasher.unsquashIdentity(identity); + const unsquashedOldIdentity = PgSquasher.unsquashIdentity(oldIdentity); + const statementsToReturn = []; + if (unsquashedOldIdentity.type !== unsquashedIdentity.type) { + statementsToReturn.push( + `ALTER TABLE ${tableNameWithSchema} ALTER COLUMN "${columnName}" SET GENERATED ${unsquashedIdentity.type === "always" ? "ALWAYS" : "BY DEFAULT"};` + ); + } + if (unsquashedOldIdentity.minValue !== unsquashedIdentity.minValue) { + statementsToReturn.push( + `ALTER TABLE ${tableNameWithSchema} ALTER COLUMN "${columnName}" SET MINVALUE ${unsquashedIdentity.minValue};` + ); + } + if (unsquashedOldIdentity.maxValue !== unsquashedIdentity.maxValue) { + statementsToReturn.push( + `ALTER TABLE ${tableNameWithSchema} ALTER COLUMN "${columnName}" SET MAXVALUE ${unsquashedIdentity.maxValue};` + ); + } + if (unsquashedOldIdentity.increment !== unsquashedIdentity.increment) { + statementsToReturn.push( + `ALTER TABLE ${tableNameWithSchema} ALTER COLUMN "${columnName}" SET INCREMENT BY ${unsquashedIdentity.increment};` + ); + } + if (unsquashedOldIdentity.startWith !== unsquashedIdentity.startWith) { + statementsToReturn.push( + `ALTER TABLE ${tableNameWithSchema} ALTER COLUMN "${columnName}" SET START WITH ${unsquashedIdentity.startWith};` + ); + } + if (unsquashedOldIdentity.cache !== unsquashedIdentity.cache) { + statementsToReturn.push( + `ALTER TABLE ${tableNameWithSchema} ALTER COLUMN "${columnName}" SET CACHE ${unsquashedIdentity.cache};` + ); + } + if (unsquashedOldIdentity.cycle !== unsquashedIdentity.cycle) { + statementsToReturn.push( + `ALTER TABLE ${tableNameWithSchema} ALTER COLUMN "${columnName}" SET ${unsquashedIdentity.cycle ? `CYCLE` : "NO CYCLE"};` + ); + } + return statementsToReturn; + } + }; + PgAlterTableAddUniqueConstraintConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "create_unique_constraint" && dialect6 === "postgresql"; + } + convert(statement) { + const unsquashed = PgSquasher.unsquashUnique(statement.data); + const tableNameWithSchema = statement.schema ? `"${statement.schema}"."${statement.tableName}"` : `"${statement.tableName}"`; + return `ALTER TABLE ${tableNameWithSchema} ADD CONSTRAINT "${unsquashed.name}" UNIQUE${unsquashed.nullsNotDistinct ? " NULLS NOT DISTINCT" : ""}("${unsquashed.columns.join('","')}");`; + } + }; + PgAlterTableDropUniqueConstraintConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "delete_unique_constraint" && dialect6 === "postgresql"; + } + convert(statement) { + const unsquashed = PgSquasher.unsquashUnique(statement.data); + const tableNameWithSchema = statement.schema ? `"${statement.schema}"."${statement.tableName}"` : `"${statement.tableName}"`; + return `ALTER TABLE ${tableNameWithSchema} DROP CONSTRAINT "${unsquashed.name}";`; + } + }; + PgAlterTableAddCheckConstraintConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "create_check_constraint" && dialect6 === "postgresql"; + } + convert(statement) { + const unsquashed = PgSquasher.unsquashCheck(statement.data); + const tableNameWithSchema = statement.schema ? `"${statement.schema}"."${statement.tableName}"` : `"${statement.tableName}"`; + return `ALTER TABLE ${tableNameWithSchema} ADD CONSTRAINT "${unsquashed.name}" CHECK (${unsquashed.value});`; + } + }; + PgAlterTableDeleteCheckConstraintConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "delete_check_constraint" && dialect6 === "postgresql"; + } + convert(statement) { + const tableNameWithSchema = statement.schema ? `"${statement.schema}"."${statement.tableName}"` : `"${statement.tableName}"`; + return `ALTER TABLE ${tableNameWithSchema} DROP CONSTRAINT "${statement.constraintName}";`; + } + }; + MySQLAlterTableAddUniqueConstraintConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "create_unique_constraint" && dialect6 === "mysql"; + } + convert(statement) { + const unsquashed = MySqlSquasher.unsquashUnique(statement.data); + return `ALTER TABLE \`${statement.tableName}\` ADD CONSTRAINT \`${unsquashed.name}\` UNIQUE(\`${unsquashed.columns.join("`,`")}\`);`; + } + }; + MySQLAlterTableDropUniqueConstraintConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "delete_unique_constraint" && dialect6 === "mysql"; + } + convert(statement) { + const unsquashed = MySqlSquasher.unsquashUnique(statement.data); + return `ALTER TABLE \`${statement.tableName}\` DROP INDEX \`${unsquashed.name}\`;`; + } + }; + MySqlAlterTableAddCheckConstraintConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "create_check_constraint" && dialect6 === "mysql"; + } + convert(statement) { + const unsquashed = MySqlSquasher.unsquashCheck(statement.data); + const { tableName } = statement; + return `ALTER TABLE \`${tableName}\` ADD CONSTRAINT \`${unsquashed.name}\` CHECK (${unsquashed.value});`; + } + }; + SingleStoreAlterTableAddUniqueConstraintConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "create_unique_constraint" && dialect6 === "singlestore"; + } + convert(statement) { + const unsquashed = SingleStoreSquasher.unsquashUnique(statement.data); + return `ALTER TABLE \`${statement.tableName}\` ADD CONSTRAINT \`${unsquashed.name}\` UNIQUE(\`${unsquashed.columns.join("`,`")}\`);`; + } + }; + SingleStoreAlterTableDropUniqueConstraintConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "delete_unique_constraint" && dialect6 === "singlestore"; + } + convert(statement) { + const unsquashed = SingleStoreSquasher.unsquashUnique(statement.data); + return `ALTER TABLE \`${statement.tableName}\` DROP INDEX \`${unsquashed.name}\`;`; + } + }; + MySqlAlterTableDeleteCheckConstraintConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "delete_check_constraint" && dialect6 === "mysql"; + } + convert(statement) { + const { tableName } = statement; + return `ALTER TABLE \`${tableName}\` DROP CONSTRAINT \`${statement.constraintName}\`;`; + } + }; + CreatePgSequenceConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "create_sequence" && dialect6 === "postgresql"; + } + convert(st) { + const { name, values, schema: schema6 } = st; + const sequenceWithSchema = schema6 ? `"${schema6}"."${name}"` : `"${name}"`; + return `CREATE SEQUENCE ${sequenceWithSchema}${values.increment ? ` INCREMENT BY ${values.increment}` : ""}${values.minValue ? ` MINVALUE ${values.minValue}` : ""}${values.maxValue ? ` MAXVALUE ${values.maxValue}` : ""}${values.startWith ? ` START WITH ${values.startWith}` : ""}${values.cache ? ` CACHE ${values.cache}` : ""}${values.cycle ? ` CYCLE` : ""};`; + } + }; + DropPgSequenceConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "drop_sequence" && dialect6 === "postgresql"; + } + convert(st) { + const { name, schema: schema6 } = st; + const sequenceWithSchema = schema6 ? `"${schema6}"."${name}"` : `"${name}"`; + return `DROP SEQUENCE ${sequenceWithSchema};`; + } + }; + RenamePgSequenceConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "rename_sequence" && dialect6 === "postgresql"; + } + convert(st) { + const { nameFrom, nameTo, schema: schema6 } = st; + const sequenceWithSchemaFrom = schema6 ? `"${schema6}"."${nameFrom}"` : `"${nameFrom}"`; + const sequenceWithSchemaTo = schema6 ? `"${schema6}"."${nameTo}"` : `"${nameTo}"`; + return `ALTER SEQUENCE ${sequenceWithSchemaFrom} RENAME TO "${nameTo}";`; + } + }; + MovePgSequenceConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "move_sequence" && dialect6 === "postgresql"; + } + convert(st) { + const { schemaFrom, schemaTo, name } = st; + const sequenceWithSchema = schemaFrom ? `"${schemaFrom}"."${name}"` : `"${name}"`; + const seqSchemaTo = schemaTo ? `"${schemaTo}"` : `public`; + return `ALTER SEQUENCE ${sequenceWithSchema} SET SCHEMA ${seqSchemaTo};`; + } + }; + AlterPgSequenceConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "alter_sequence" && dialect6 === "postgresql"; + } + convert(st) { + const { name, schema: schema6, values } = st; + const { increment, minValue, maxValue, startWith, cache: cache3, cycle } = values; + const sequenceWithSchema = schema6 ? `"${schema6}"."${name}"` : `"${name}"`; + return `ALTER SEQUENCE ${sequenceWithSchema}${increment ? ` INCREMENT BY ${increment}` : ""}${minValue ? ` MINVALUE ${minValue}` : ""}${maxValue ? ` MAXVALUE ${maxValue}` : ""}${startWith ? ` START WITH ${startWith}` : ""}${cache3 ? ` CACHE ${cache3}` : ""}${cycle ? ` CYCLE` : ""};`; + } + }; + CreateTypeEnumConvertor = class extends Convertor { + can(statement) { + return statement.type === "create_type_enum"; + } + convert(st) { + const { name, values, schema: schema6 } = st; + const enumNameWithSchema = schema6 ? `"${schema6}"."${name}"` : `"${name}"`; + let valuesStatement = "("; + valuesStatement += values.map((it) => `'${escapeSingleQuotes(it)}'`).join(", "); + valuesStatement += ")"; + let statement = `CREATE TYPE ${enumNameWithSchema} AS ENUM${valuesStatement};`; + return statement; + } + }; + DropTypeEnumConvertor = class extends Convertor { + can(statement) { + return statement.type === "drop_type_enum"; + } + convert(st) { + const { name, schema: schema6 } = st; + const enumNameWithSchema = schema6 ? `"${schema6}"."${name}"` : `"${name}"`; + let statement = `DROP TYPE ${enumNameWithSchema};`; + return statement; + } + }; + AlterTypeAddValueConvertor = class extends Convertor { + can(statement) { + return statement.type === "alter_type_add_value"; + } + convert(st) { + const { name, schema: schema6, value, before } = st; + const enumNameWithSchema = schema6 ? `"${schema6}"."${name}"` : `"${name}"`; + return `ALTER TYPE ${enumNameWithSchema} ADD VALUE '${value}'${before.length ? ` BEFORE '${before}'` : ""};`; + } + }; + AlterTypeSetSchemaConvertor = class extends Convertor { + can(statement) { + return statement.type === "move_type_enum"; + } + convert(st) { + const { name, schemaFrom, schemaTo } = st; + const enumNameWithSchema = schemaFrom ? `"${schemaFrom}"."${name}"` : `"${name}"`; + return `ALTER TYPE ${enumNameWithSchema} SET SCHEMA "${schemaTo}";`; + } + }; + AlterRenameTypeConvertor = class extends Convertor { + can(statement) { + return statement.type === "rename_type_enum"; + } + convert(st) { + const { nameTo, nameFrom, schema: schema6 } = st; + const enumNameWithSchema = schema6 ? `"${schema6}"."${nameFrom}"` : `"${nameFrom}"`; + return `ALTER TYPE ${enumNameWithSchema} RENAME TO "${nameTo}";`; + } + }; + AlterTypeDropValueConvertor = class extends Convertor { + can(statement) { + return statement.type === "alter_type_drop_value"; + } + convert(st) { + const { columnsWithEnum, name, newValues, enumSchema: enumSchema4 } = st; + const statements = []; + for (const withEnum of columnsWithEnum) { + const tableNameWithSchema = withEnum.tableSchema ? `"${withEnum.tableSchema}"."${withEnum.table}"` : `"${withEnum.table}"`; + statements.push( + `ALTER TABLE ${tableNameWithSchema} ALTER COLUMN "${withEnum.column}" SET DATA TYPE text;` + ); + if (withEnum.default) { + statements.push( + `ALTER TABLE ${tableNameWithSchema} ALTER COLUMN "${withEnum.column}" SET DEFAULT ${withEnum.default}::text;` + ); + } + } + statements.push(new DropTypeEnumConvertor().convert({ name, schema: enumSchema4, type: "drop_type_enum" })); + statements.push(new CreateTypeEnumConvertor().convert({ + name, + schema: enumSchema4, + values: newValues, + type: "create_type_enum" + })); + for (const withEnum of columnsWithEnum) { + const tableNameWithSchema = withEnum.tableSchema ? `"${withEnum.tableSchema}"."${withEnum.table}"` : `"${withEnum.table}"`; + const parsedType = parseType(`"${enumSchema4}".`, withEnum.columnType); + if (withEnum.default) { + statements.push( + `ALTER TABLE ${tableNameWithSchema} ALTER COLUMN "${withEnum.column}" SET DEFAULT ${withEnum.default}::${parsedType};` + ); + } + statements.push( + `ALTER TABLE ${tableNameWithSchema} ALTER COLUMN "${withEnum.column}" SET DATA TYPE ${parsedType} USING "${withEnum.column}"::${parsedType};` + ); + } + return statements; + } + }; + PgDropTableConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "drop_table" && dialect6 === "postgresql"; + } + convert(statement, _d, action) { + const { tableName, schema: schema6, policies } = statement; + const tableNameWithSchema = schema6 ? `"${schema6}"."${tableName}"` : `"${tableName}"`; + const dropPolicyConvertor = new PgDropPolicyConvertor(); + const droppedPolicies = (policies == null ? void 0 : policies.map((p3) => { + return dropPolicyConvertor.convert({ + type: "drop_policy", + tableName, + data: action === "push" ? PgSquasher.unsquashPolicyPush(p3) : PgSquasher.unsquashPolicy(p3), + schema: schema6 + }); + })) ?? []; + return [ + ...droppedPolicies, + `DROP TABLE ${tableNameWithSchema} CASCADE;` + ]; + } + }; + MySQLDropTableConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "drop_table" && dialect6 === "mysql"; + } + convert(statement) { + const { tableName } = statement; + return `DROP TABLE \`${tableName}\`;`; + } + }; + SingleStoreDropTableConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "drop_table" && dialect6 === "singlestore"; + } + convert(statement) { + const { tableName } = statement; + return `DROP TABLE \`${tableName}\`;`; + } + }; + SQLiteDropTableConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "drop_table" && (dialect6 === "sqlite" || dialect6 === "turso"); + } + convert(statement) { + const { tableName } = statement; + return `DROP TABLE \`${tableName}\`;`; + } + }; + PgRenameTableConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "rename_table" && dialect6 === "postgresql"; + } + convert(statement) { + const { tableNameFrom, tableNameTo, toSchema, fromSchema } = statement; + const from = fromSchema ? `"${fromSchema}"."${tableNameFrom}"` : `"${tableNameFrom}"`; + const to = `"${tableNameTo}"`; + return `ALTER TABLE ${from} RENAME TO ${to};`; + } + }; + SqliteRenameTableConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "rename_table" && (dialect6 === "sqlite" || dialect6 === "turso"); + } + convert(statement) { + const { tableNameFrom, tableNameTo } = statement; + return `ALTER TABLE \`${tableNameFrom}\` RENAME TO \`${tableNameTo}\`;`; + } + }; + MySqlRenameTableConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "rename_table" && dialect6 === "mysql"; + } + convert(statement) { + const { tableNameFrom, tableNameTo } = statement; + return `RENAME TABLE \`${tableNameFrom}\` TO \`${tableNameTo}\`;`; + } + }; + SingleStoreRenameTableConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "rename_table" && dialect6 === "singlestore"; + } + convert(statement) { + const { tableNameFrom, tableNameTo } = statement; + return `ALTER TABLE \`${tableNameFrom}\` RENAME TO \`${tableNameTo}\`;`; + } + }; + PgAlterTableRenameColumnConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "alter_table_rename_column" && dialect6 === "postgresql"; + } + convert(statement) { + const { tableName, oldColumnName, newColumnName, schema: schema6 } = statement; + const tableNameWithSchema = schema6 ? `"${schema6}"."${tableName}"` : `"${tableName}"`; + return `ALTER TABLE ${tableNameWithSchema} RENAME COLUMN "${oldColumnName}" TO "${newColumnName}";`; + } + }; + MySqlAlterTableRenameColumnConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "alter_table_rename_column" && dialect6 === "mysql"; + } + convert(statement) { + const { tableName, oldColumnName, newColumnName } = statement; + return `ALTER TABLE \`${tableName}\` RENAME COLUMN \`${oldColumnName}\` TO \`${newColumnName}\`;`; + } + }; + SingleStoreAlterTableRenameColumnConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "alter_table_rename_column" && dialect6 === "singlestore"; + } + convert(statement) { + const { tableName, oldColumnName, newColumnName } = statement; + return `ALTER TABLE \`${tableName}\` CHANGE \`${oldColumnName}\` \`${newColumnName}\`;`; + } + }; + SQLiteAlterTableRenameColumnConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "alter_table_rename_column" && (dialect6 === "sqlite" || dialect6 === "turso"); + } + convert(statement) { + const { tableName, oldColumnName, newColumnName } = statement; + return `ALTER TABLE \`${tableName}\` RENAME COLUMN "${oldColumnName}" TO "${newColumnName}";`; + } + }; + PgAlterTableDropColumnConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "alter_table_drop_column" && dialect6 === "postgresql"; + } + convert(statement) { + const { tableName, columnName, schema: schema6 } = statement; + const tableNameWithSchema = schema6 ? `"${schema6}"."${tableName}"` : `"${tableName}"`; + return `ALTER TABLE ${tableNameWithSchema} DROP COLUMN "${columnName}";`; + } + }; + MySqlAlterTableDropColumnConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "alter_table_drop_column" && dialect6 === "mysql"; + } + convert(statement) { + const { tableName, columnName } = statement; + return `ALTER TABLE \`${tableName}\` DROP COLUMN \`${columnName}\`;`; + } + }; + SingleStoreAlterTableDropColumnConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "alter_table_drop_column" && dialect6 === "singlestore"; + } + convert(statement) { + const { tableName, columnName } = statement; + return `ALTER TABLE \`${tableName}\` DROP COLUMN \`${columnName}\`;`; + } + }; + SQLiteAlterTableDropColumnConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "alter_table_drop_column" && (dialect6 === "sqlite" || dialect6 === "turso"); + } + convert(statement) { + const { tableName, columnName } = statement; + return `ALTER TABLE \`${tableName}\` DROP COLUMN \`${columnName}\`;`; + } + }; + PgAlterTableAddColumnConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "alter_table_add_column" && dialect6 === "postgresql"; + } + convert(statement) { + const { tableName, column: column11, schema: schema6 } = statement; + const { name, type, notNull, generated, primaryKey, identity } = column11; + const primaryKeyStatement = primaryKey ? " PRIMARY KEY" : ""; + const tableNameWithSchema = schema6 ? `"${schema6}"."${tableName}"` : `"${tableName}"`; + const defaultStatement = `${column11.default !== void 0 ? ` DEFAULT ${column11.default}` : ""}`; + const schemaPrefix = column11.typeSchema && column11.typeSchema !== "public" ? `"${column11.typeSchema}".` : ""; + const fixedType = parseType(schemaPrefix, column11.type); + const notNullStatement = `${notNull ? " NOT NULL" : ""}`; + const unsquashedIdentity = identity ? PgSquasher.unsquashIdentity(identity) : void 0; + const identityWithSchema = schema6 ? `"${schema6}"."${unsquashedIdentity == null ? void 0 : unsquashedIdentity.name}"` : `"${unsquashedIdentity == null ? void 0 : unsquashedIdentity.name}"`; + const identityStatement = unsquashedIdentity ? ` GENERATED ${unsquashedIdentity.type === "always" ? "ALWAYS" : "BY DEFAULT"} AS IDENTITY (sequence name ${identityWithSchema}${unsquashedIdentity.increment ? ` INCREMENT BY ${unsquashedIdentity.increment}` : ""}${unsquashedIdentity.minValue ? ` MINVALUE ${unsquashedIdentity.minValue}` : ""}${unsquashedIdentity.maxValue ? ` MAXVALUE ${unsquashedIdentity.maxValue}` : ""}${unsquashedIdentity.startWith ? ` START WITH ${unsquashedIdentity.startWith}` : ""}${unsquashedIdentity.cache ? ` CACHE ${unsquashedIdentity.cache}` : ""}${unsquashedIdentity.cycle ? ` CYCLE` : ""})` : ""; + const generatedStatement = generated ? ` GENERATED ALWAYS AS (${generated == null ? void 0 : generated.as}) STORED` : ""; + return `ALTER TABLE ${tableNameWithSchema} ADD COLUMN "${name}" ${fixedType}${primaryKeyStatement}${defaultStatement}${generatedStatement}${notNullStatement}${identityStatement};`; + } + }; + MySqlAlterTableAddColumnConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "alter_table_add_column" && dialect6 === "mysql"; + } + convert(statement) { + const { tableName, column: column11 } = statement; + const { + name, + type, + notNull, + primaryKey, + autoincrement, + onUpdate, + generated + } = column11; + const defaultStatement = `${column11.default !== void 0 ? ` DEFAULT ${column11.default}` : ""}`; + const notNullStatement = `${notNull ? " NOT NULL" : ""}`; + const primaryKeyStatement = `${primaryKey ? " PRIMARY KEY" : ""}`; + const autoincrementStatement = `${autoincrement ? " AUTO_INCREMENT" : ""}`; + const onUpdateStatement = `${onUpdate ? " ON UPDATE CURRENT_TIMESTAMP" : ""}`; + const generatedStatement = generated ? ` GENERATED ALWAYS AS (${generated == null ? void 0 : generated.as}) ${generated == null ? void 0 : generated.type.toUpperCase()}` : ""; + return `ALTER TABLE \`${tableName}\` ADD \`${name}\` ${type}${primaryKeyStatement}${autoincrementStatement}${defaultStatement}${generatedStatement}${notNullStatement}${onUpdateStatement};`; + } + }; + SingleStoreAlterTableAddColumnConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "alter_table_add_column" && dialect6 === "singlestore"; + } + convert(statement) { + const { tableName, column: column11 } = statement; + const { + name, + type, + notNull, + primaryKey, + autoincrement, + onUpdate, + generated + } = column11; + const defaultStatement = `${column11.default !== void 0 ? ` DEFAULT ${column11.default}` : ""}`; + const notNullStatement = `${notNull ? " NOT NULL" : ""}`; + const primaryKeyStatement = `${primaryKey ? " PRIMARY KEY" : ""}`; + const autoincrementStatement = `${autoincrement ? " AUTO_INCREMENT" : ""}`; + const onUpdateStatement = `${onUpdate ? " ON UPDATE CURRENT_TIMESTAMP" : ""}`; + const generatedStatement = generated ? ` GENERATED ALWAYS AS (${generated == null ? void 0 : generated.as}) ${generated == null ? void 0 : generated.type.toUpperCase()}` : ""; + return `ALTER TABLE \`${tableName}\` ADD \`${name}\` ${type}${primaryKeyStatement}${autoincrementStatement}${defaultStatement}${notNullStatement}${onUpdateStatement}${generatedStatement};`; + } + }; + SQLiteAlterTableAddColumnConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "sqlite_alter_table_add_column" && (dialect6 === "sqlite" || dialect6 === "turso"); + } + convert(statement) { + const { tableName, column: column11, referenceData } = statement; + const { name, type, notNull, primaryKey, generated } = column11; + const defaultStatement = `${column11.default !== void 0 ? ` DEFAULT ${column11.default}` : ""}`; + const notNullStatement = `${notNull ? " NOT NULL" : ""}`; + const primaryKeyStatement = `${primaryKey ? " PRIMARY KEY" : ""}`; + const referenceAsObject = referenceData ? SQLiteSquasher.unsquashFK(referenceData) : void 0; + const referenceStatement = `${referenceAsObject ? ` REFERENCES ${referenceAsObject.tableTo}(${referenceAsObject.columnsTo})` : ""}`; + const generatedStatement = generated ? ` GENERATED ALWAYS AS ${generated.as} ${generated.type.toUpperCase()}` : ""; + return `ALTER TABLE \`${tableName}\` ADD \`${name}\` ${type}${primaryKeyStatement}${defaultStatement}${generatedStatement}${notNullStatement}${referenceStatement};`; + } + }; + PgAlterTableAlterColumnSetTypeConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "pg_alter_table_alter_column_set_type" && dialect6 === "postgresql"; + } + convert(statement) { + const { tableName, columnName, newDataType, schema: schema6, oldDataType, columnDefault, typeSchema } = statement; + const tableNameWithSchema = schema6 ? `"${schema6}"."${tableName}"` : `"${tableName}"`; + const statements = []; + const type = parseType(`"${typeSchema}".`, newDataType.name); + if (!oldDataType.isEnum && !newDataType.isEnum) { + statements.push( + `ALTER TABLE ${tableNameWithSchema} ALTER COLUMN "${columnName}" SET DATA TYPE ${type};` + ); + if (columnDefault) { + statements.push( + `ALTER TABLE ${tableNameWithSchema} ALTER COLUMN "${columnName}" SET DEFAULT ${columnDefault};` + ); + } + } + if (oldDataType.isEnum && !newDataType.isEnum) { + statements.push( + `ALTER TABLE ${tableNameWithSchema} ALTER COLUMN "${columnName}" SET DATA TYPE ${type};` + ); + if (columnDefault) { + statements.push( + `ALTER TABLE ${tableNameWithSchema} ALTER COLUMN "${columnName}" SET DEFAULT ${columnDefault};` + ); + } + } + if (!oldDataType.isEnum && newDataType.isEnum) { + if (columnDefault) { + statements.push( + `ALTER TABLE ${tableNameWithSchema} ALTER COLUMN "${columnName}" SET DEFAULT ${columnDefault}::${type};` + ); + } + statements.push( + `ALTER TABLE ${tableNameWithSchema} ALTER COLUMN "${columnName}" SET DATA TYPE ${type} USING "${columnName}"::${type};` + ); + } + if (oldDataType.isEnum && newDataType.isEnum) { + const alterType = `ALTER TABLE ${tableNameWithSchema} ALTER COLUMN "${columnName}" SET DATA TYPE ${type} USING "${columnName}"::text::${type};`; + if (newDataType.name !== oldDataType.name && columnDefault) { + statements.push( + `ALTER TABLE ${tableNameWithSchema} ALTER COLUMN "${columnName}" DROP DEFAULT;`, + alterType, + `ALTER TABLE ${tableNameWithSchema} ALTER COLUMN "${columnName}" SET DEFAULT ${columnDefault};` + ); + } else { + statements.push(alterType); + } + } + return statements; + } + }; + PgAlterTableAlterColumnSetDefaultConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "alter_table_alter_column_set_default" && dialect6 === "postgresql"; + } + convert(statement) { + const { tableName, columnName, schema: schema6 } = statement; + const tableNameWithSchema = schema6 ? `"${schema6}"."${tableName}"` : `"${tableName}"`; + return `ALTER TABLE ${tableNameWithSchema} ALTER COLUMN "${columnName}" SET DEFAULT ${statement.newDefaultValue};`; + } + }; + PgAlterTableAlterColumnDropDefaultConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "alter_table_alter_column_drop_default" && dialect6 === "postgresql"; + } + convert(statement) { + const { tableName, columnName, schema: schema6 } = statement; + const tableNameWithSchema = schema6 ? `"${schema6}"."${tableName}"` : `"${tableName}"`; + return `ALTER TABLE ${tableNameWithSchema} ALTER COLUMN "${columnName}" DROP DEFAULT;`; + } + }; + PgAlterTableAlterColumnDropGeneratedConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "alter_table_alter_column_drop_generated" && dialect6 === "postgresql"; + } + convert(statement) { + const { tableName, columnName, schema: schema6 } = statement; + const tableNameWithSchema = schema6 ? `"${schema6}"."${tableName}"` : `"${tableName}"`; + return `ALTER TABLE ${tableNameWithSchema} ALTER COLUMN "${columnName}" DROP EXPRESSION;`; + } + }; + PgAlterTableAlterColumnSetExpressionConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "alter_table_alter_column_set_generated" && dialect6 === "postgresql"; + } + convert(statement) { + const { + tableName, + columnName, + schema: schema6, + columnNotNull: notNull, + columnDefault, + columnOnUpdate, + columnAutoIncrement, + columnPk, + columnGenerated + } = statement; + const tableNameWithSchema = schema6 ? `"${schema6}"."${tableName}"` : `"${tableName}"`; + const addColumnStatement = new PgAlterTableAddColumnConvertor().convert({ + schema: schema6, + tableName, + column: { + name: columnName, + type: statement.newDataType, + notNull, + default: columnDefault, + onUpdate: columnOnUpdate, + autoincrement: columnAutoIncrement, + primaryKey: columnPk, + generated: columnGenerated + }, + type: "alter_table_add_column" + }); + return [ + `ALTER TABLE ${tableNameWithSchema} drop column "${columnName}";`, + addColumnStatement + ]; + } + }; + PgAlterTableAlterColumnAlterrGeneratedConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "alter_table_alter_column_alter_generated" && dialect6 === "postgresql"; + } + convert(statement) { + const { + tableName, + columnName, + schema: schema6, + columnNotNull: notNull, + columnDefault, + columnOnUpdate, + columnAutoIncrement, + columnPk, + columnGenerated + } = statement; + const tableNameWithSchema = schema6 ? `"${schema6}"."${tableName}"` : `"${tableName}"`; + const addColumnStatement = new PgAlterTableAddColumnConvertor().convert({ + schema: schema6, + tableName, + column: { + name: columnName, + type: statement.newDataType, + notNull, + default: columnDefault, + onUpdate: columnOnUpdate, + autoincrement: columnAutoIncrement, + primaryKey: columnPk, + generated: columnGenerated + }, + type: "alter_table_add_column" + }); + return [ + `ALTER TABLE ${tableNameWithSchema} drop column "${columnName}";`, + addColumnStatement + ]; + } + }; + SqliteAlterTableAlterColumnDropGeneratedConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "alter_table_alter_column_drop_generated" && (dialect6 === "sqlite" || dialect6 === "turso"); + } + convert(statement) { + const { + tableName, + columnName, + schema: schema6, + columnDefault, + columnOnUpdate, + columnAutoIncrement, + columnPk, + columnGenerated, + columnNotNull + } = statement; + const addColumnStatement = new SQLiteAlterTableAddColumnConvertor().convert( + { + tableName, + column: { + name: columnName, + type: statement.newDataType, + notNull: columnNotNull, + default: columnDefault, + onUpdate: columnOnUpdate, + autoincrement: columnAutoIncrement, + primaryKey: columnPk, + generated: columnGenerated + }, + type: "sqlite_alter_table_add_column" + } + ); + const dropColumnStatement = new SQLiteAlterTableDropColumnConvertor().convert({ + tableName, + columnName, + schema: schema6, + type: "alter_table_drop_column" + }); + return [dropColumnStatement, addColumnStatement]; + } + }; + SqliteAlterTableAlterColumnSetExpressionConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "alter_table_alter_column_set_generated" && (dialect6 === "sqlite" || dialect6 === "turso"); + } + convert(statement) { + const { + tableName, + columnName, + schema: schema6, + columnNotNull: notNull, + columnDefault, + columnOnUpdate, + columnAutoIncrement, + columnPk, + columnGenerated + } = statement; + const addColumnStatement = new SQLiteAlterTableAddColumnConvertor().convert( + { + tableName, + column: { + name: columnName, + type: statement.newDataType, + notNull, + default: columnDefault, + onUpdate: columnOnUpdate, + autoincrement: columnAutoIncrement, + primaryKey: columnPk, + generated: columnGenerated + }, + type: "sqlite_alter_table_add_column" + } + ); + const dropColumnStatement = new SQLiteAlterTableDropColumnConvertor().convert({ + tableName, + columnName, + schema: schema6, + type: "alter_table_drop_column" + }); + return [dropColumnStatement, addColumnStatement]; + } + }; + SqliteAlterTableAlterColumnAlterGeneratedConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "alter_table_alter_column_alter_generated" && (dialect6 === "sqlite" || dialect6 === "turso"); + } + convert(statement) { + const { + tableName, + columnName, + schema: schema6, + columnNotNull, + columnDefault, + columnOnUpdate, + columnAutoIncrement, + columnPk, + columnGenerated + } = statement; + const addColumnStatement = new SQLiteAlterTableAddColumnConvertor().convert( + { + tableName, + column: { + name: columnName, + type: statement.newDataType, + notNull: columnNotNull, + default: columnDefault, + onUpdate: columnOnUpdate, + autoincrement: columnAutoIncrement, + primaryKey: columnPk, + generated: columnGenerated + }, + type: "sqlite_alter_table_add_column" + } + ); + const dropColumnStatement = new SQLiteAlterTableDropColumnConvertor().convert({ + tableName, + columnName, + schema: schema6, + type: "alter_table_drop_column" + }); + return [dropColumnStatement, addColumnStatement]; + } + }; + MySqlAlterTableAlterColumnAlterrGeneratedConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "alter_table_alter_column_alter_generated" && dialect6 === "mysql"; + } + convert(statement) { + const { + tableName, + columnName, + schema: schema6, + columnNotNull: notNull, + columnDefault, + columnOnUpdate, + columnAutoIncrement, + columnPk, + columnGenerated + } = statement; + const tableNameWithSchema = schema6 ? `\`${schema6}\`.\`${tableName}\`` : `\`${tableName}\``; + const addColumnStatement = new MySqlAlterTableAddColumnConvertor().convert({ + schema: schema6, + tableName, + column: { + name: columnName, + type: statement.newDataType, + notNull, + default: columnDefault, + onUpdate: columnOnUpdate, + autoincrement: columnAutoIncrement, + primaryKey: columnPk, + generated: columnGenerated + }, + type: "alter_table_add_column" + }); + return [ + `ALTER TABLE ${tableNameWithSchema} drop column \`${columnName}\`;`, + addColumnStatement + ]; + } + }; + MySqlAlterTableAddPk = class extends Convertor { + can(statement, dialect6) { + return statement.type === "alter_table_alter_column_set_pk" && dialect6 === "mysql"; + } + convert(statement) { + return `ALTER TABLE \`${statement.tableName}\` ADD PRIMARY KEY (\`${statement.columnName}\`);`; + } + }; + MySqlAlterTableDropPk = class extends Convertor { + can(statement, dialect6) { + return statement.type === "alter_table_alter_column_drop_pk" && dialect6 === "mysql"; + } + convert(statement) { + return `ALTER TABLE \`${statement.tableName}\` DROP PRIMARY KEY`; + } + }; + LibSQLModifyColumn = class extends Convertor { + can(statement, dialect6) { + return (statement.type === "alter_table_alter_column_set_type" || statement.type === "alter_table_alter_column_drop_notnull" || statement.type === "alter_table_alter_column_set_notnull" || statement.type === "alter_table_alter_column_set_default" || statement.type === "alter_table_alter_column_drop_default" || statement.type === "create_check_constraint" || statement.type === "delete_check_constraint") && dialect6 === "turso"; + } + convert(statement, json2) { + const { tableName, columnName } = statement; + let columnType = ``; + let columnDefault = ""; + let columnNotNull = ""; + const sqlStatements = []; + const indexes = []; + for (const table6 of Object.values(json2.tables)) { + for (const index6 of Object.values(table6.indexes)) { + const unsquashed = SQLiteSquasher.unsquashIdx(index6); + sqlStatements.push(`DROP INDEX "${unsquashed.name}";`); + indexes.push({ ...unsquashed, tableName: table6.name }); + } + } + switch (statement.type) { + case "alter_table_alter_column_set_type": + columnType = ` ${statement.newDataType}`; + columnDefault = statement.columnDefault ? ` DEFAULT ${statement.columnDefault}` : ""; + columnNotNull = statement.columnNotNull ? ` NOT NULL` : ""; + break; + case "alter_table_alter_column_drop_notnull": + columnType = ` ${statement.newDataType}`; + columnDefault = statement.columnDefault ? ` DEFAULT ${statement.columnDefault}` : ""; + columnNotNull = ""; + break; + case "alter_table_alter_column_set_notnull": + columnType = ` ${statement.newDataType}`; + columnDefault = statement.columnDefault ? ` DEFAULT ${statement.columnDefault}` : ""; + columnNotNull = ` NOT NULL`; + break; + case "alter_table_alter_column_set_default": + columnType = ` ${statement.newDataType}`; + columnDefault = ` DEFAULT ${statement.newDefaultValue}`; + columnNotNull = statement.columnNotNull ? ` NOT NULL` : ""; + break; + case "alter_table_alter_column_drop_default": + columnType = ` ${statement.newDataType}`; + columnDefault = ""; + columnNotNull = statement.columnNotNull ? ` NOT NULL` : ""; + break; + } + columnDefault = columnDefault instanceof Date ? columnDefault.toISOString() : columnDefault; + sqlStatements.push( + `ALTER TABLE \`${tableName}\` ALTER COLUMN "${columnName}" TO "${columnName}"${columnType}${columnNotNull}${columnDefault};` + ); + for (const index6 of indexes) { + const indexPart = index6.isUnique ? "UNIQUE INDEX" : "INDEX"; + const whereStatement = index6.where ? ` WHERE ${index6.where}` : ""; + const uniqueString = index6.columns.map((it) => `\`${it}\``).join(","); + const tableName2 = index6.tableName; + sqlStatements.push( + `CREATE ${indexPart} \`${index6.name}\` ON \`${tableName2}\` (${uniqueString})${whereStatement};` + ); + } + return sqlStatements; + } + }; + MySqlModifyColumn = class extends Convertor { + can(statement, dialect6) { + return (statement.type === "alter_table_alter_column_set_type" || statement.type === "alter_table_alter_column_set_notnull" || statement.type === "alter_table_alter_column_drop_notnull" || statement.type === "alter_table_alter_column_drop_on_update" || statement.type === "alter_table_alter_column_set_on_update" || statement.type === "alter_table_alter_column_set_autoincrement" || statement.type === "alter_table_alter_column_drop_autoincrement" || statement.type === "alter_table_alter_column_set_default" || statement.type === "alter_table_alter_column_drop_default" || statement.type === "alter_table_alter_column_set_generated" || statement.type === "alter_table_alter_column_drop_generated") && dialect6 === "mysql"; + } + convert(statement) { + var _a2, _b, _c, _d, _e, _f, _g; + const { tableName, columnName } = statement; + let columnType = ``; + let columnDefault = ""; + let columnNotNull = ""; + let columnOnUpdate = ""; + let columnAutoincrement = ""; + let primaryKey = statement.columnPk ? " PRIMARY KEY" : ""; + let columnGenerated = ""; + if (statement.type === "alter_table_alter_column_drop_notnull") { + columnType = ` ${statement.newDataType}`; + columnDefault = statement.columnDefault ? ` DEFAULT ${statement.columnDefault}` : ""; + columnNotNull = statement.columnNotNull ? ` NOT NULL` : ""; + columnOnUpdate = statement.columnOnUpdate ? ` ON UPDATE CURRENT_TIMESTAMP` : ""; + columnAutoincrement = statement.columnAutoIncrement ? " AUTO_INCREMENT" : ""; + } else if (statement.type === "alter_table_alter_column_set_notnull") { + columnNotNull = ` NOT NULL`; + columnType = ` ${statement.newDataType}`; + columnDefault = statement.columnDefault ? ` DEFAULT ${statement.columnDefault}` : ""; + columnOnUpdate = statement.columnOnUpdate ? ` ON UPDATE CURRENT_TIMESTAMP` : ""; + columnAutoincrement = statement.columnAutoIncrement ? " AUTO_INCREMENT" : ""; + } else if (statement.type === "alter_table_alter_column_drop_on_update") { + columnNotNull = statement.columnNotNull ? ` NOT NULL` : ""; + columnType = ` ${statement.newDataType}`; + columnDefault = statement.columnDefault ? ` DEFAULT ${statement.columnDefault}` : ""; + columnOnUpdate = ""; + columnAutoincrement = statement.columnAutoIncrement ? " AUTO_INCREMENT" : ""; + } else if (statement.type === "alter_table_alter_column_set_on_update") { + columnNotNull = statement.columnNotNull ? ` NOT NULL` : ""; + columnOnUpdate = ` ON UPDATE CURRENT_TIMESTAMP`; + columnType = ` ${statement.newDataType}`; + columnDefault = statement.columnDefault ? ` DEFAULT ${statement.columnDefault}` : ""; + columnAutoincrement = statement.columnAutoIncrement ? " AUTO_INCREMENT" : ""; + } else if (statement.type === "alter_table_alter_column_set_autoincrement") { + columnNotNull = statement.columnNotNull ? ` NOT NULL` : ""; + columnOnUpdate = columnOnUpdate = statement.columnOnUpdate ? ` ON UPDATE CURRENT_TIMESTAMP` : ""; + columnType = ` ${statement.newDataType}`; + columnDefault = statement.columnDefault ? ` DEFAULT ${statement.columnDefault}` : ""; + columnAutoincrement = " AUTO_INCREMENT"; + } else if (statement.type === "alter_table_alter_column_drop_autoincrement") { + columnNotNull = statement.columnNotNull ? ` NOT NULL` : ""; + columnOnUpdate = columnOnUpdate = statement.columnOnUpdate ? ` ON UPDATE CURRENT_TIMESTAMP` : ""; + columnType = ` ${statement.newDataType}`; + columnDefault = statement.columnDefault ? ` DEFAULT ${statement.columnDefault}` : ""; + columnAutoincrement = ""; + } else if (statement.type === "alter_table_alter_column_set_default") { + columnNotNull = statement.columnNotNull ? ` NOT NULL` : ""; + columnOnUpdate = columnOnUpdate = statement.columnOnUpdate ? ` ON UPDATE CURRENT_TIMESTAMP` : ""; + columnType = ` ${statement.newDataType}`; + columnDefault = ` DEFAULT ${statement.newDefaultValue}`; + columnAutoincrement = statement.columnAutoIncrement ? " AUTO_INCREMENT" : ""; + } else if (statement.type === "alter_table_alter_column_drop_default") { + columnNotNull = statement.columnNotNull ? ` NOT NULL` : ""; + columnOnUpdate = columnOnUpdate = statement.columnOnUpdate ? ` ON UPDATE CURRENT_TIMESTAMP` : ""; + columnType = ` ${statement.newDataType}`; + columnDefault = ""; + columnAutoincrement = statement.columnAutoIncrement ? " AUTO_INCREMENT" : ""; + } else if (statement.type === "alter_table_alter_column_set_generated") { + columnType = ` ${statement.newDataType}`; + columnNotNull = statement.columnNotNull ? ` NOT NULL` : ""; + columnOnUpdate = columnOnUpdate = statement.columnOnUpdate ? ` ON UPDATE CURRENT_TIMESTAMP` : ""; + columnDefault = statement.columnDefault ? ` DEFAULT ${statement.columnDefault}` : ""; + columnAutoincrement = statement.columnAutoIncrement ? " AUTO_INCREMENT" : ""; + if (((_a2 = statement.columnGenerated) == null ? void 0 : _a2.type) === "virtual") { + return [ + new MySqlAlterTableDropColumnConvertor().convert({ + type: "alter_table_drop_column", + tableName: statement.tableName, + columnName: statement.columnName, + schema: statement.schema + }), + new MySqlAlterTableAddColumnConvertor().convert({ + tableName, + column: { + name: columnName, + type: statement.newDataType, + notNull: statement.columnNotNull, + default: statement.columnDefault, + onUpdate: statement.columnOnUpdate, + autoincrement: statement.columnAutoIncrement, + primaryKey: statement.columnPk, + generated: statement.columnGenerated + }, + schema: statement.schema, + type: "alter_table_add_column" + }) + ]; + } else { + columnGenerated = statement.columnGenerated ? ` GENERATED ALWAYS AS (${(_b = statement.columnGenerated) == null ? void 0 : _b.as}) ${(_c = statement.columnGenerated) == null ? void 0 : _c.type.toUpperCase()}` : ""; + } + } else if (statement.type === "alter_table_alter_column_drop_generated") { + columnType = ` ${statement.newDataType}`; + columnNotNull = statement.columnNotNull ? ` NOT NULL` : ""; + columnOnUpdate = columnOnUpdate = statement.columnOnUpdate ? ` ON UPDATE CURRENT_TIMESTAMP` : ""; + columnDefault = statement.columnDefault ? ` DEFAULT ${statement.columnDefault}` : ""; + columnAutoincrement = statement.columnAutoIncrement ? " AUTO_INCREMENT" : ""; + if (((_e = (_d = statement.oldColumn) == null ? void 0 : _d.generated) == null ? void 0 : _e.type) === "virtual") { + return [ + new MySqlAlterTableDropColumnConvertor().convert({ + type: "alter_table_drop_column", + tableName: statement.tableName, + columnName: statement.columnName, + schema: statement.schema + }), + new MySqlAlterTableAddColumnConvertor().convert({ + tableName, + column: { + name: columnName, + type: statement.newDataType, + notNull: statement.columnNotNull, + default: statement.columnDefault, + onUpdate: statement.columnOnUpdate, + autoincrement: statement.columnAutoIncrement, + primaryKey: statement.columnPk, + generated: statement.columnGenerated + }, + schema: statement.schema, + type: "alter_table_add_column" + }) + ]; + } + } else { + columnType = ` ${statement.newDataType}`; + columnNotNull = statement.columnNotNull ? ` NOT NULL` : ""; + columnOnUpdate = columnOnUpdate = statement.columnOnUpdate ? ` ON UPDATE CURRENT_TIMESTAMP` : ""; + columnDefault = statement.columnDefault ? ` DEFAULT ${statement.columnDefault}` : ""; + columnAutoincrement = statement.columnAutoIncrement ? " AUTO_INCREMENT" : ""; + columnGenerated = statement.columnGenerated ? ` GENERATED ALWAYS AS (${(_f = statement.columnGenerated) == null ? void 0 : _f.as}) ${(_g = statement.columnGenerated) == null ? void 0 : _g.type.toUpperCase()}` : ""; + } + columnDefault = columnDefault instanceof Date ? columnDefault.toISOString() : columnDefault; + return `ALTER TABLE \`${tableName}\` MODIFY COLUMN \`${columnName}\`${columnType}${columnAutoincrement}${columnGenerated}${columnNotNull}${columnDefault}${columnOnUpdate};`; + } + }; + SingleStoreAlterTableAlterColumnAlterrGeneratedConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "alter_table_alter_column_alter_generated" && dialect6 === "singlestore"; + } + convert(statement) { + const { + tableName, + columnName, + schema: schema6, + columnNotNull: notNull, + columnDefault, + columnOnUpdate, + columnAutoIncrement, + columnPk, + columnGenerated + } = statement; + const tableNameWithSchema = schema6 ? `\`${schema6}\`.\`${tableName}\`` : `\`${tableName}\``; + const addColumnStatement = new SingleStoreAlterTableAddColumnConvertor().convert({ + schema: schema6, + tableName, + column: { + name: columnName, + type: statement.newDataType, + notNull, + default: columnDefault, + onUpdate: columnOnUpdate, + autoincrement: columnAutoIncrement, + primaryKey: columnPk, + generated: columnGenerated + }, + type: "alter_table_add_column" + }); + return [ + `ALTER TABLE ${tableNameWithSchema} drop column \`${columnName}\`;`, + addColumnStatement + ]; + } + }; + SingleStoreAlterTableAddPk = class extends Convertor { + can(statement, dialect6) { + return statement.type === "alter_table_alter_column_set_pk" && dialect6 === "singlestore"; + } + convert(statement) { + return `ALTER TABLE \`${statement.tableName}\` ADD PRIMARY KEY (\`${statement.columnName}\`);`; + } + }; + SingleStoreAlterTableDropPk = class extends Convertor { + can(statement, dialect6) { + return statement.type === "alter_table_alter_column_drop_pk" && dialect6 === "singlestore"; + } + convert(statement) { + return `ALTER TABLE \`${statement.tableName}\` DROP PRIMARY KEY`; + } + }; + SingleStoreModifyColumn = class extends Convertor { + can(statement, dialect6) { + return (statement.type === "alter_table_alter_column_set_type" || statement.type === "alter_table_alter_column_set_notnull" || statement.type === "alter_table_alter_column_drop_notnull" || statement.type === "alter_table_alter_column_drop_on_update" || statement.type === "alter_table_alter_column_set_on_update" || statement.type === "alter_table_alter_column_set_autoincrement" || statement.type === "alter_table_alter_column_drop_autoincrement" || statement.type === "alter_table_alter_column_set_default" || statement.type === "alter_table_alter_column_drop_default" || statement.type === "alter_table_alter_column_set_generated" || statement.type === "alter_table_alter_column_drop_generated") && dialect6 === "singlestore"; + } + convert(statement) { + var _a2, _b, _c, _d, _e, _f, _g; + const { tableName, columnName } = statement; + let columnType = ``; + let columnDefault = ""; + let columnNotNull = ""; + let columnOnUpdate = ""; + let columnAutoincrement = ""; + let primaryKey = statement.columnPk ? " PRIMARY KEY" : ""; + let columnGenerated = ""; + if (statement.type === "alter_table_alter_column_drop_notnull") { + columnType = ` ${statement.newDataType}`; + columnDefault = statement.columnDefault ? ` DEFAULT ${statement.columnDefault}` : ""; + columnNotNull = statement.columnNotNull ? ` NOT NULL` : ""; + columnOnUpdate = statement.columnOnUpdate ? ` ON UPDATE CURRENT_TIMESTAMP` : ""; + columnAutoincrement = statement.columnAutoIncrement ? " AUTO_INCREMENT" : ""; + } else if (statement.type === "alter_table_alter_column_set_notnull") { + columnNotNull = ` NOT NULL`; + columnType = ` ${statement.newDataType}`; + columnDefault = statement.columnDefault ? ` DEFAULT ${statement.columnDefault}` : ""; + columnOnUpdate = statement.columnOnUpdate ? ` ON UPDATE CURRENT_TIMESTAMP` : ""; + columnAutoincrement = statement.columnAutoIncrement ? " AUTO_INCREMENT" : ""; + } else if (statement.type === "alter_table_alter_column_drop_on_update") { + columnNotNull = statement.columnNotNull ? ` NOT NULL` : ""; + columnType = ` ${statement.newDataType}`; + columnDefault = statement.columnDefault ? ` DEFAULT ${statement.columnDefault}` : ""; + columnOnUpdate = ""; + columnAutoincrement = statement.columnAutoIncrement ? " AUTO_INCREMENT" : ""; + } else if (statement.type === "alter_table_alter_column_set_on_update") { + columnNotNull = statement.columnNotNull ? ` NOT NULL` : ""; + columnOnUpdate = ` ON UPDATE CURRENT_TIMESTAMP`; + columnType = ` ${statement.newDataType}`; + columnDefault = statement.columnDefault ? ` DEFAULT ${statement.columnDefault}` : ""; + columnAutoincrement = statement.columnAutoIncrement ? " AUTO_INCREMENT" : ""; + } else if (statement.type === "alter_table_alter_column_set_autoincrement") { + columnNotNull = statement.columnNotNull ? ` NOT NULL` : ""; + columnOnUpdate = columnOnUpdate = statement.columnOnUpdate ? ` ON UPDATE CURRENT_TIMESTAMP` : ""; + columnType = ` ${statement.newDataType}`; + columnDefault = statement.columnDefault ? ` DEFAULT ${statement.columnDefault}` : ""; + columnAutoincrement = " AUTO_INCREMENT"; + } else if (statement.type === "alter_table_alter_column_drop_autoincrement") { + columnNotNull = statement.columnNotNull ? ` NOT NULL` : ""; + columnOnUpdate = columnOnUpdate = statement.columnOnUpdate ? ` ON UPDATE CURRENT_TIMESTAMP` : ""; + columnType = ` ${statement.newDataType}`; + columnDefault = statement.columnDefault ? ` DEFAULT ${statement.columnDefault}` : ""; + columnAutoincrement = ""; + } else if (statement.type === "alter_table_alter_column_set_default") { + columnNotNull = statement.columnNotNull ? ` NOT NULL` : ""; + columnOnUpdate = columnOnUpdate = statement.columnOnUpdate ? ` ON UPDATE CURRENT_TIMESTAMP` : ""; + columnType = ` ${statement.newDataType}`; + columnDefault = ` DEFAULT ${statement.newDefaultValue}`; + columnAutoincrement = statement.columnAutoIncrement ? " AUTO_INCREMENT" : ""; + } else if (statement.type === "alter_table_alter_column_drop_default") { + columnNotNull = statement.columnNotNull ? ` NOT NULL` : ""; + columnOnUpdate = columnOnUpdate = statement.columnOnUpdate ? ` ON UPDATE CURRENT_TIMESTAMP` : ""; + columnType = ` ${statement.newDataType}`; + columnDefault = ""; + columnAutoincrement = statement.columnAutoIncrement ? " AUTO_INCREMENT" : ""; + } else if (statement.type === "alter_table_alter_column_set_generated") { + columnType = ` ${statement.newDataType}`; + columnNotNull = statement.columnNotNull ? ` NOT NULL` : ""; + columnOnUpdate = columnOnUpdate = statement.columnOnUpdate ? ` ON UPDATE CURRENT_TIMESTAMP` : ""; + columnDefault = statement.columnDefault ? ` DEFAULT ${statement.columnDefault}` : ""; + columnAutoincrement = statement.columnAutoIncrement ? " AUTO_INCREMENT" : ""; + if (((_a2 = statement.columnGenerated) == null ? void 0 : _a2.type) === "virtual") { + return [ + new SingleStoreAlterTableDropColumnConvertor().convert({ + type: "alter_table_drop_column", + tableName: statement.tableName, + columnName: statement.columnName, + schema: statement.schema + }), + new SingleStoreAlterTableAddColumnConvertor().convert({ + tableName, + column: { + name: columnName, + type: statement.newDataType, + notNull: statement.columnNotNull, + default: statement.columnDefault, + onUpdate: statement.columnOnUpdate, + autoincrement: statement.columnAutoIncrement, + primaryKey: statement.columnPk, + generated: statement.columnGenerated + }, + schema: statement.schema, + type: "alter_table_add_column" + }) + ]; + } else { + columnGenerated = statement.columnGenerated ? ` GENERATED ALWAYS AS (${(_b = statement.columnGenerated) == null ? void 0 : _b.as}) ${(_c = statement.columnGenerated) == null ? void 0 : _c.type.toUpperCase()}` : ""; + } + } else if (statement.type === "alter_table_alter_column_drop_generated") { + columnType = ` ${statement.newDataType}`; + columnNotNull = statement.columnNotNull ? ` NOT NULL` : ""; + columnOnUpdate = columnOnUpdate = statement.columnOnUpdate ? ` ON UPDATE CURRENT_TIMESTAMP` : ""; + columnDefault = statement.columnDefault ? ` DEFAULT ${statement.columnDefault}` : ""; + columnAutoincrement = statement.columnAutoIncrement ? " AUTO_INCREMENT" : ""; + if (((_e = (_d = statement.oldColumn) == null ? void 0 : _d.generated) == null ? void 0 : _e.type) === "virtual") { + return [ + new SingleStoreAlterTableDropColumnConvertor().convert({ + type: "alter_table_drop_column", + tableName: statement.tableName, + columnName: statement.columnName, + schema: statement.schema + }), + new SingleStoreAlterTableAddColumnConvertor().convert({ + tableName, + column: { + name: columnName, + type: statement.newDataType, + notNull: statement.columnNotNull, + default: statement.columnDefault, + onUpdate: statement.columnOnUpdate, + autoincrement: statement.columnAutoIncrement, + primaryKey: statement.columnPk, + generated: statement.columnGenerated + }, + schema: statement.schema, + type: "alter_table_add_column" + }) + ]; + } + } else { + columnType = ` ${statement.newDataType}`; + columnNotNull = statement.columnNotNull ? ` NOT NULL` : ""; + columnOnUpdate = columnOnUpdate = statement.columnOnUpdate ? ` ON UPDATE CURRENT_TIMESTAMP` : ""; + columnDefault = statement.columnDefault ? ` DEFAULT ${statement.columnDefault}` : ""; + columnAutoincrement = statement.columnAutoIncrement ? " AUTO_INCREMENT" : ""; + columnGenerated = statement.columnGenerated ? ` GENERATED ALWAYS AS (${(_f = statement.columnGenerated) == null ? void 0 : _f.as}) ${(_g = statement.columnGenerated) == null ? void 0 : _g.type.toUpperCase()}` : ""; + } + columnDefault = columnDefault instanceof Date ? columnDefault.toISOString() : columnDefault; + return `ALTER TABLE \`${tableName}\` MODIFY COLUMN \`${columnName}\`${columnType}${columnAutoincrement}${columnNotNull}${columnDefault}${columnOnUpdate}${columnGenerated};`; + } + }; + PgAlterTableCreateCompositePrimaryKeyConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "create_composite_pk" && dialect6 === "postgresql"; + } + convert(statement) { + const { name, columns } = PgSquasher.unsquashPK(statement.data); + const tableNameWithSchema = statement.schema ? `"${statement.schema}"."${statement.tableName}"` : `"${statement.tableName}"`; + return `ALTER TABLE ${tableNameWithSchema} ADD CONSTRAINT "${statement.constraintName}" PRIMARY KEY("${columns.join('","')}");`; + } + }; + PgAlterTableDeleteCompositePrimaryKeyConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "delete_composite_pk" && dialect6 === "postgresql"; + } + convert(statement) { + const { name, columns } = PgSquasher.unsquashPK(statement.data); + const tableNameWithSchema = statement.schema ? `"${statement.schema}"."${statement.tableName}"` : `"${statement.tableName}"`; + return `ALTER TABLE ${tableNameWithSchema} DROP CONSTRAINT "${statement.constraintName}";`; + } + }; + PgAlterTableAlterCompositePrimaryKeyConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "alter_composite_pk" && dialect6 === "postgresql"; + } + convert(statement) { + const { name, columns } = PgSquasher.unsquashPK(statement.old); + const { name: newName, columns: newColumns } = PgSquasher.unsquashPK( + statement.new + ); + const tableNameWithSchema = statement.schema ? `"${statement.schema}"."${statement.tableName}"` : `"${statement.tableName}"`; + return `ALTER TABLE ${tableNameWithSchema} DROP CONSTRAINT "${statement.oldConstraintName}"; +${BREAKPOINT}ALTER TABLE ${tableNameWithSchema} ADD CONSTRAINT "${statement.newConstraintName}" PRIMARY KEY("${newColumns.join('","')}");`; + } + }; + MySqlAlterTableCreateCompositePrimaryKeyConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "create_composite_pk" && dialect6 === "mysql"; + } + convert(statement) { + const { name, columns } = MySqlSquasher.unsquashPK(statement.data); + return `ALTER TABLE \`${statement.tableName}\` ADD PRIMARY KEY(\`${columns.join("`,`")}\`);`; + } + }; + MySqlAlterTableDeleteCompositePrimaryKeyConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "delete_composite_pk" && dialect6 === "mysql"; + } + convert(statement) { + const { name, columns } = MySqlSquasher.unsquashPK(statement.data); + return `ALTER TABLE \`${statement.tableName}\` DROP PRIMARY KEY;`; + } + }; + MySqlAlterTableAlterCompositePrimaryKeyConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "alter_composite_pk" && dialect6 === "mysql"; + } + convert(statement) { + const { name, columns } = MySqlSquasher.unsquashPK(statement.old); + const { name: newName, columns: newColumns } = MySqlSquasher.unsquashPK( + statement.new + ); + return `ALTER TABLE \`${statement.tableName}\` DROP PRIMARY KEY, ADD PRIMARY KEY(\`${newColumns.join("`,`")}\`);`; + } + }; + PgAlterTableAlterColumnSetPrimaryKeyConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "alter_table_alter_column_set_pk" && dialect6 === "postgresql"; + } + convert(statement) { + const { tableName, columnName } = statement; + const tableNameWithSchema = statement.schema ? `"${statement.schema}"."${statement.tableName}"` : `"${statement.tableName}"`; + return `ALTER TABLE ${tableNameWithSchema} ADD PRIMARY KEY ("${columnName}");`; + } + }; + PgAlterTableAlterColumnDropPrimaryKeyConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "alter_table_alter_column_drop_pk" && dialect6 === "postgresql"; + } + convert(statement) { + const { tableName, columnName, schema: schema6 } = statement; + return `/* + Unfortunately in current drizzle-kit version we can't automatically get name for primary key. + We are working on making it available! + + Meanwhile you can: + 1. Check pk name in your database, by running + SELECT constraint_name FROM information_schema.table_constraints + WHERE table_schema = '${typeof schema6 === "undefined" || schema6 === "" ? "public" : schema6}' + AND table_name = '${tableName}' + AND constraint_type = 'PRIMARY KEY'; + 2. Uncomment code below and paste pk name manually + + Hope to release this update as soon as possible +*/ + +-- ALTER TABLE "${tableName}" DROP CONSTRAINT "";`; + } + }; + PgAlterTableAlterColumnSetNotNullConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "alter_table_alter_column_set_notnull" && dialect6 === "postgresql"; + } + convert(statement) { + const { tableName, columnName } = statement; + const tableNameWithSchema = statement.schema ? `"${statement.schema}"."${statement.tableName}"` : `"${statement.tableName}"`; + return `ALTER TABLE ${tableNameWithSchema} ALTER COLUMN "${columnName}" SET NOT NULL;`; + } + }; + PgAlterTableAlterColumnDropNotNullConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "alter_table_alter_column_drop_notnull" && dialect6 === "postgresql"; + } + convert(statement) { + const { tableName, columnName } = statement; + const tableNameWithSchema = statement.schema ? `"${statement.schema}"."${statement.tableName}"` : `"${statement.tableName}"`; + return `ALTER TABLE ${tableNameWithSchema} ALTER COLUMN "${columnName}" DROP NOT NULL;`; + } + }; + PgCreateForeignKeyConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "create_reference" && dialect6 === "postgresql"; + } + convert(statement) { + const { + name, + tableFrom, + tableTo, + columnsFrom, + columnsTo, + onDelete, + onUpdate, + schemaTo + } = PgSquasher.unsquashFK(statement.data); + const onDeleteStatement = onDelete ? ` ON DELETE ${onDelete}` : ""; + const onUpdateStatement = onUpdate ? ` ON UPDATE ${onUpdate}` : ""; + const fromColumnsString = columnsFrom.map((it) => `"${it}"`).join(","); + const toColumnsString = columnsTo.map((it) => `"${it}"`).join(","); + const tableNameWithSchema = statement.schema ? `"${statement.schema}"."${tableFrom}"` : `"${tableFrom}"`; + const tableToNameWithSchema = schemaTo ? `"${schemaTo}"."${tableTo}"` : `"${tableTo}"`; + const alterStatement = `ALTER TABLE ${tableNameWithSchema} ADD CONSTRAINT "${name}" FOREIGN KEY (${fromColumnsString}) REFERENCES ${tableToNameWithSchema}(${toColumnsString})${onDeleteStatement}${onUpdateStatement};`; + return alterStatement; + } + }; + LibSQLCreateForeignKeyConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "create_reference" && dialect6 === "turso"; + } + convert(statement, json2, action) { + const { columnsFrom, columnsTo, tableFrom, onDelete, onUpdate, tableTo } = action === "push" ? SQLiteSquasher.unsquashPushFK(statement.data) : SQLiteSquasher.unsquashFK(statement.data); + const { columnDefault, columnNotNull, columnType } = statement; + const onDeleteStatement = onDelete ? ` ON DELETE ${onDelete}` : ""; + const onUpdateStatement = onUpdate ? ` ON UPDATE ${onUpdate}` : ""; + const columnsDefaultValue = columnDefault ? ` DEFAULT ${columnDefault}` : ""; + const columnNotNullValue = columnNotNull ? ` NOT NULL` : ""; + const columnTypeValue = columnType ? ` ${columnType}` : ""; + const columnFrom = columnsFrom[0]; + const columnTo = columnsTo[0]; + return `ALTER TABLE \`${tableFrom}\` ALTER COLUMN "${columnFrom}" TO "${columnFrom}"${columnTypeValue}${columnNotNullValue}${columnsDefaultValue} REFERENCES ${tableTo}(${columnTo})${onDeleteStatement}${onUpdateStatement};`; + } + }; + MySqlCreateForeignKeyConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "create_reference" && dialect6 === "mysql"; + } + convert(statement) { + const { + name, + tableFrom, + tableTo, + columnsFrom, + columnsTo, + onDelete, + onUpdate + } = MySqlSquasher.unsquashFK(statement.data); + const onDeleteStatement = onDelete ? ` ON DELETE ${onDelete}` : ""; + const onUpdateStatement = onUpdate ? ` ON UPDATE ${onUpdate}` : ""; + const fromColumnsString = columnsFrom.map((it) => `\`${it}\``).join(","); + const toColumnsString = columnsTo.map((it) => `\`${it}\``).join(","); + return `ALTER TABLE \`${tableFrom}\` ADD CONSTRAINT \`${name}\` FOREIGN KEY (${fromColumnsString}) REFERENCES \`${tableTo}\`(${toColumnsString})${onDeleteStatement}${onUpdateStatement};`; + } + }; + PgAlterForeignKeyConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "alter_reference" && dialect6 === "postgresql"; + } + convert(statement) { + const newFk = PgSquasher.unsquashFK(statement.data); + const oldFk = PgSquasher.unsquashFK(statement.oldFkey); + const tableNameWithSchema = statement.schema ? `"${statement.schema}"."${oldFk.tableFrom}"` : `"${oldFk.tableFrom}"`; + let sql = `ALTER TABLE ${tableNameWithSchema} DROP CONSTRAINT "${oldFk.name}"; +`; + const onDeleteStatement = newFk.onDelete ? ` ON DELETE ${newFk.onDelete}` : ""; + const onUpdateStatement = newFk.onUpdate ? ` ON UPDATE ${newFk.onUpdate}` : ""; + const fromColumnsString = newFk.columnsFrom.map((it) => `"${it}"`).join(","); + const toColumnsString = newFk.columnsTo.map((it) => `"${it}"`).join(","); + const tableFromNameWithSchema = oldFk.schemaTo ? `"${oldFk.schemaTo}"."${oldFk.tableFrom}"` : `"${oldFk.tableFrom}"`; + const tableToNameWithSchema = newFk.schemaTo ? `"${newFk.schemaTo}"."${newFk.tableFrom}"` : `"${newFk.tableFrom}"`; + const alterStatement = `ALTER TABLE ${tableFromNameWithSchema} ADD CONSTRAINT "${newFk.name}" FOREIGN KEY (${fromColumnsString}) REFERENCES ${tableToNameWithSchema}(${toColumnsString})${onDeleteStatement}${onUpdateStatement};`; + sql += alterStatement; + return sql; + } + }; + PgDeleteForeignKeyConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "delete_reference" && dialect6 === "postgresql"; + } + convert(statement) { + const tableFrom = statement.tableName; + const { name } = PgSquasher.unsquashFK(statement.data); + const tableNameWithSchema = statement.schema ? `"${statement.schema}"."${tableFrom}"` : `"${tableFrom}"`; + return `ALTER TABLE ${tableNameWithSchema} DROP CONSTRAINT "${name}"; +`; + } + }; + MySqlDeleteForeignKeyConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "delete_reference" && dialect6 === "mysql"; + } + convert(statement) { + const tableFrom = statement.tableName; + const { name } = MySqlSquasher.unsquashFK(statement.data); + return `ALTER TABLE \`${tableFrom}\` DROP FOREIGN KEY \`${name}\`; +`; + } + }; + CreatePgIndexConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "create_index_pg" && dialect6 === "postgresql"; + } + convert(statement) { + const { + name, + columns, + isUnique, + concurrently, + with: withMap, + method, + where + } = statement.data; + const indexPart = isUnique ? "UNIQUE INDEX" : "INDEX"; + const value = columns.map( + (it) => `${it.isExpression ? it.expression : `"${it.expression}"`}${it.opclass ? ` ${it.opclass}` : it.asc ? "" : " DESC"}${it.asc && it.nulls && it.nulls === "last" || it.opclass ? "" : ` NULLS ${it.nulls.toUpperCase()}`}` + ).join(","); + const tableNameWithSchema = statement.schema ? `"${statement.schema}"."${statement.tableName}"` : `"${statement.tableName}"`; + function reverseLogic(mappedWith) { + let reversedString = ""; + for (const key in mappedWith) { + if (mappedWith.hasOwnProperty(key)) { + reversedString += `${key}=${mappedWith[key]},`; + } + } + reversedString = reversedString.slice(0, -1); + return reversedString; + } + return `CREATE ${indexPart}${concurrently ? " CONCURRENTLY" : ""} "${name}" ON ${tableNameWithSchema} USING ${method} (${value})${Object.keys(withMap).length !== 0 ? ` WITH (${reverseLogic(withMap)})` : ""}${where ? ` WHERE ${where}` : ""};`; + } + }; + CreateMySqlIndexConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "create_index" && dialect6 === "mysql"; + } + convert(statement) { + const { name, columns, isUnique } = MySqlSquasher.unsquashIdx( + statement.data + ); + const indexPart = isUnique ? "UNIQUE INDEX" : "INDEX"; + const uniqueString = columns.map((it) => { + var _a2, _b, _c, _d; + return ((_a2 = statement.internal) == null ? void 0 : _a2.indexes) ? ((_d = (_c = (_b = statement.internal) == null ? void 0 : _b.indexes[name]) == null ? void 0 : _c.columns[it]) == null ? void 0 : _d.isExpression) ? it : `\`${it}\`` : `\`${it}\``; + }).join(","); + return `CREATE ${indexPart} \`${name}\` ON \`${statement.tableName}\` (${uniqueString});`; + } + }; + CreateSingleStoreIndexConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "create_index" && dialect6 === "singlestore"; + } + convert(statement) { + const { name, columns, isUnique } = SingleStoreSquasher.unsquashIdx( + statement.data + ); + const indexPart = isUnique ? "UNIQUE INDEX" : "INDEX"; + const uniqueString = columns.map((it) => { + var _a2, _b, _c, _d; + return ((_a2 = statement.internal) == null ? void 0 : _a2.indexes) ? ((_d = (_c = (_b = statement.internal) == null ? void 0 : _b.indexes[name]) == null ? void 0 : _c.columns[it]) == null ? void 0 : _d.isExpression) ? it : `\`${it}\`` : `\`${it}\``; + }).join(","); + return `CREATE ${indexPart} \`${name}\` ON \`${statement.tableName}\` (${uniqueString});`; + } + }; + CreateSqliteIndexConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "create_index" && (dialect6 === "sqlite" || dialect6 === "turso"); + } + convert(statement) { + const { name, columns, isUnique, where } = SQLiteSquasher.unsquashIdx( + statement.data + ); + const indexPart = isUnique ? "UNIQUE INDEX" : "INDEX"; + const whereStatement = where ? ` WHERE ${where}` : ""; + const uniqueString = columns.map((it) => { + var _a2, _b, _c, _d; + return ((_a2 = statement.internal) == null ? void 0 : _a2.indexes) ? ((_d = (_c = (_b = statement.internal) == null ? void 0 : _b.indexes[name]) == null ? void 0 : _c.columns[it]) == null ? void 0 : _d.isExpression) ? it : `\`${it}\`` : `\`${it}\``; + }).join(","); + return `CREATE ${indexPart} \`${name}\` ON \`${statement.tableName}\` (${uniqueString})${whereStatement};`; + } + }; + PgDropIndexConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "drop_index" && dialect6 === "postgresql"; + } + convert(statement) { + const { schema: schema6 } = statement; + const { name } = PgSquasher.unsquashIdx(statement.data); + const indexNameWithSchema = schema6 ? `"${schema6}"."${name}"` : `"${name}"`; + return `DROP INDEX ${indexNameWithSchema};`; + } + }; + PgCreateSchemaConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "create_schema" && dialect6 === "postgresql"; + } + convert(statement) { + const { name } = statement; + return `CREATE SCHEMA "${name}"; +`; + } + }; + PgRenameSchemaConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "rename_schema" && dialect6 === "postgresql"; + } + convert(statement) { + const { from, to } = statement; + return `ALTER SCHEMA "${from}" RENAME TO "${to}"; +`; + } + }; + PgDropSchemaConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "drop_schema" && dialect6 === "postgresql"; + } + convert(statement) { + const { name } = statement; + return `DROP SCHEMA "${name}"; +`; + } + }; + PgAlterTableSetSchemaConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "alter_table_set_schema" && dialect6 === "postgresql"; + } + convert(statement) { + const { tableName, schemaFrom, schemaTo } = statement; + return `ALTER TABLE "${schemaFrom}"."${tableName}" SET SCHEMA "${schemaTo}"; +`; + } + }; + PgAlterTableSetNewSchemaConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "alter_table_set_new_schema" && dialect6 === "postgresql"; + } + convert(statement) { + const { tableName, to, from } = statement; + const tableNameWithSchema = from ? `"${from}"."${tableName}"` : `"${tableName}"`; + return `ALTER TABLE ${tableNameWithSchema} SET SCHEMA "${to}"; +`; + } + }; + PgAlterTableRemoveFromSchemaConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "alter_table_remove_from_schema" && dialect6 === "postgresql"; + } + convert(statement) { + const { tableName, schema: schema6 } = statement; + const tableNameWithSchema = schema6 ? `"${schema6}"."${tableName}"` : `"${tableName}"`; + return `ALTER TABLE ${tableNameWithSchema} SET SCHEMA public; +`; + } + }; + SqliteDropIndexConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "drop_index" && (dialect6 === "sqlite" || dialect6 === "turso"); + } + convert(statement) { + const { name } = PgSquasher.unsquashIdx(statement.data); + return `DROP INDEX \`${name}\`;`; + } + }; + MySqlDropIndexConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "drop_index" && dialect6 === "mysql"; + } + convert(statement) { + const { name } = MySqlSquasher.unsquashIdx(statement.data); + return `DROP INDEX \`${name}\` ON \`${statement.tableName}\`;`; + } + }; + SingleStoreDropIndexConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "drop_index" && dialect6 === "singlestore"; + } + convert(statement) { + const { name } = SingleStoreSquasher.unsquashIdx(statement.data); + return `DROP INDEX \`${name}\` ON \`${statement.tableName}\`;`; + } + }; + SQLiteRecreateTableConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "recreate_table" && dialect6 === "sqlite"; + } + convert(statement) { + const { tableName, columns, compositePKs, referenceData, checkConstraints } = statement; + const columnNames = columns.map((it) => `"${it.name}"`).join(", "); + const newTableName = `__new_${tableName}`; + const sqlStatements = []; + sqlStatements.push(`PRAGMA foreign_keys=OFF;`); + const mappedCheckConstraints = checkConstraints.map( + (it) => it.replaceAll(`"${tableName}".`, `"${newTableName}".`).replaceAll(`\`${tableName}\`.`, `\`${newTableName}\`.`).replaceAll(`${tableName}.`, `${newTableName}.`).replaceAll(`'${tableName}'.`, `'${newTableName}'.`) + ); + sqlStatements.push( + new SQLiteCreateTableConvertor().convert({ + type: "sqlite_create_table", + tableName: newTableName, + columns, + referenceData, + compositePKs, + checkConstraints: mappedCheckConstraints + }) + ); + sqlStatements.push( + `INSERT INTO \`${newTableName}\`(${columnNames}) SELECT ${columnNames} FROM \`${tableName}\`;` + ); + sqlStatements.push( + new SQLiteDropTableConvertor().convert({ + type: "drop_table", + tableName, + schema: "" + }) + ); + sqlStatements.push( + new SqliteRenameTableConvertor().convert({ + fromSchema: "", + tableNameFrom: newTableName, + tableNameTo: tableName, + toSchema: "", + type: "rename_table" + }) + ); + sqlStatements.push(`PRAGMA foreign_keys=ON;`); + return sqlStatements; + } + }; + LibSQLRecreateTableConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "recreate_table" && dialect6 === "turso"; + } + convert(statement) { + const { tableName, columns, compositePKs, referenceData, checkConstraints } = statement; + const columnNames = columns.map((it) => `"${it.name}"`).join(", "); + const newTableName = `__new_${tableName}`; + const sqlStatements = []; + const mappedCheckConstraints = checkConstraints.map( + (it) => it.replaceAll(`"${tableName}".`, `"${newTableName}".`).replaceAll(`\`${tableName}\`.`, `\`${newTableName}\`.`).replaceAll(`${tableName}.`, `${newTableName}.`).replaceAll(`'${tableName}'.`, `\`${newTableName}\`.`) + ); + sqlStatements.push(`PRAGMA foreign_keys=OFF;`); + sqlStatements.push( + new SQLiteCreateTableConvertor().convert({ + type: "sqlite_create_table", + tableName: newTableName, + columns, + referenceData, + compositePKs, + checkConstraints: mappedCheckConstraints + }) + ); + sqlStatements.push( + `INSERT INTO \`${newTableName}\`(${columnNames}) SELECT ${columnNames} FROM \`${tableName}\`;` + ); + sqlStatements.push( + new SQLiteDropTableConvertor().convert({ + type: "drop_table", + tableName, + schema: "" + }) + ); + sqlStatements.push( + new SqliteRenameTableConvertor().convert({ + fromSchema: "", + tableNameFrom: newTableName, + tableNameTo: tableName, + toSchema: "", + type: "rename_table" + }) + ); + sqlStatements.push(`PRAGMA foreign_keys=ON;`); + return sqlStatements; + } + }; + SingleStoreRecreateTableConvertor = class extends Convertor { + can(statement, dialect6) { + return statement.type === "singlestore_recreate_table" && dialect6 === "singlestore"; + } + convert(statement) { + const { tableName, columns, compositePKs, uniqueConstraints } = statement; + const columnNames = columns.map((it) => `\`${it.name}\``).join(", "); + const newTableName = `__new_${tableName}`; + const sqlStatements = []; + sqlStatements.push( + new SingleStoreCreateTableConvertor().convert({ + type: "create_table", + tableName: newTableName, + columns, + compositePKs, + uniqueConstraints, + schema: "" + }) + ); + sqlStatements.push( + `INSERT INTO \`${newTableName}\`(${columnNames}) SELECT ${columnNames} FROM \`${tableName}\`;` + ); + sqlStatements.push( + new SingleStoreDropTableConvertor().convert({ + type: "drop_table", + tableName, + schema: "" + }) + ); + sqlStatements.push( + new SingleStoreRenameTableConvertor().convert({ + fromSchema: "", + tableNameFrom: newTableName, + tableNameTo: tableName, + toSchema: "", + type: "rename_table" + }) + ); + return sqlStatements; + } + }; + convertors = []; + convertors.push(new PgCreateTableConvertor()); + convertors.push(new MySqlCreateTableConvertor()); + convertors.push(new SingleStoreCreateTableConvertor()); + convertors.push(new SingleStoreRecreateTableConvertor()); + convertors.push(new SQLiteCreateTableConvertor()); + convertors.push(new SQLiteRecreateTableConvertor()); + convertors.push(new LibSQLRecreateTableConvertor()); + convertors.push(new PgCreateViewConvertor()); + convertors.push(new PgDropViewConvertor()); + convertors.push(new PgRenameViewConvertor()); + convertors.push(new PgAlterViewSchemaConvertor()); + convertors.push(new PgAlterViewAddWithOptionConvertor()); + convertors.push(new PgAlterViewDropWithOptionConvertor()); + convertors.push(new PgAlterViewAlterTablespaceConvertor()); + convertors.push(new PgAlterViewAlterUsingConvertor()); + convertors.push(new MySqlCreateViewConvertor()); + convertors.push(new MySqlDropViewConvertor()); + convertors.push(new MySqlRenameViewConvertor()); + convertors.push(new MySqlAlterViewConvertor()); + convertors.push(new SqliteCreateViewConvertor()); + convertors.push(new SqliteDropViewConvertor()); + convertors.push(new CreateTypeEnumConvertor()); + convertors.push(new DropTypeEnumConvertor()); + convertors.push(new AlterTypeAddValueConvertor()); + convertors.push(new AlterTypeSetSchemaConvertor()); + convertors.push(new AlterRenameTypeConvertor()); + convertors.push(new AlterTypeDropValueConvertor()); + convertors.push(new CreatePgSequenceConvertor()); + convertors.push(new DropPgSequenceConvertor()); + convertors.push(new RenamePgSequenceConvertor()); + convertors.push(new MovePgSequenceConvertor()); + convertors.push(new AlterPgSequenceConvertor()); + convertors.push(new PgDropTableConvertor()); + convertors.push(new MySQLDropTableConvertor()); + convertors.push(new SingleStoreDropTableConvertor()); + convertors.push(new SQLiteDropTableConvertor()); + convertors.push(new PgRenameTableConvertor()); + convertors.push(new MySqlRenameTableConvertor()); + convertors.push(new SingleStoreRenameTableConvertor()); + convertors.push(new SqliteRenameTableConvertor()); + convertors.push(new PgAlterTableRenameColumnConvertor()); + convertors.push(new MySqlAlterTableRenameColumnConvertor()); + convertors.push(new SingleStoreAlterTableRenameColumnConvertor()); + convertors.push(new SQLiteAlterTableRenameColumnConvertor()); + convertors.push(new PgAlterTableDropColumnConvertor()); + convertors.push(new MySqlAlterTableDropColumnConvertor()); + convertors.push(new SingleStoreAlterTableDropColumnConvertor()); + convertors.push(new SQLiteAlterTableDropColumnConvertor()); + convertors.push(new PgAlterTableAddColumnConvertor()); + convertors.push(new MySqlAlterTableAddColumnConvertor()); + convertors.push(new SingleStoreAlterTableAddColumnConvertor()); + convertors.push(new SQLiteAlterTableAddColumnConvertor()); + convertors.push(new PgAlterTableAlterColumnSetTypeConvertor()); + convertors.push(new PgAlterTableAddUniqueConstraintConvertor()); + convertors.push(new PgAlterTableDropUniqueConstraintConvertor()); + convertors.push(new PgAlterTableAddCheckConstraintConvertor()); + convertors.push(new PgAlterTableDeleteCheckConstraintConvertor()); + convertors.push(new MySqlAlterTableAddCheckConstraintConvertor()); + convertors.push(new MySqlAlterTableDeleteCheckConstraintConvertor()); + convertors.push(new MySQLAlterTableAddUniqueConstraintConvertor()); + convertors.push(new MySQLAlterTableDropUniqueConstraintConvertor()); + convertors.push(new SingleStoreAlterTableAddUniqueConstraintConvertor()); + convertors.push(new SingleStoreAlterTableDropUniqueConstraintConvertor()); + convertors.push(new CreatePgIndexConvertor()); + convertors.push(new CreateMySqlIndexConvertor()); + convertors.push(new CreateSingleStoreIndexConvertor()); + convertors.push(new CreateSqliteIndexConvertor()); + convertors.push(new PgDropIndexConvertor()); + convertors.push(new SqliteDropIndexConvertor()); + convertors.push(new MySqlDropIndexConvertor()); + convertors.push(new SingleStoreDropIndexConvertor()); + convertors.push(new PgAlterTableAlterColumnSetPrimaryKeyConvertor()); + convertors.push(new PgAlterTableAlterColumnDropPrimaryKeyConvertor()); + convertors.push(new PgAlterTableAlterColumnSetNotNullConvertor()); + convertors.push(new PgAlterTableAlterColumnDropNotNullConvertor()); + convertors.push(new PgAlterTableAlterColumnSetDefaultConvertor()); + convertors.push(new PgAlterTableAlterColumnDropDefaultConvertor()); + convertors.push(new PgAlterPolicyConvertor()); + convertors.push(new PgCreatePolicyConvertor()); + convertors.push(new PgDropPolicyConvertor()); + convertors.push(new PgRenamePolicyConvertor()); + convertors.push(new PgAlterIndPolicyConvertor()); + convertors.push(new PgCreateIndPolicyConvertor()); + convertors.push(new PgDropIndPolicyConvertor()); + convertors.push(new PgRenameIndPolicyConvertor()); + convertors.push(new PgEnableRlsConvertor()); + convertors.push(new PgDisableRlsConvertor()); + convertors.push(new PgDropRoleConvertor()); + convertors.push(new PgAlterRoleConvertor()); + convertors.push(new PgCreateRoleConvertor()); + convertors.push(new PgRenameRoleConvertor()); + convertors.push(new PgAlterTableAlterColumnSetExpressionConvertor()); + convertors.push(new PgAlterTableAlterColumnDropGeneratedConvertor()); + convertors.push(new PgAlterTableAlterColumnAlterrGeneratedConvertor()); + convertors.push(new MySqlAlterTableAlterColumnAlterrGeneratedConvertor()); + convertors.push(new SingleStoreAlterTableAlterColumnAlterrGeneratedConvertor()); + convertors.push(new SqliteAlterTableAlterColumnDropGeneratedConvertor()); + convertors.push(new SqliteAlterTableAlterColumnAlterGeneratedConvertor()); + convertors.push(new SqliteAlterTableAlterColumnSetExpressionConvertor()); + convertors.push(new MySqlModifyColumn()); + convertors.push(new LibSQLModifyColumn()); + convertors.push(new SingleStoreModifyColumn()); + convertors.push(new PgCreateForeignKeyConvertor()); + convertors.push(new MySqlCreateForeignKeyConvertor()); + convertors.push(new PgAlterForeignKeyConvertor()); + convertors.push(new PgDeleteForeignKeyConvertor()); + convertors.push(new MySqlDeleteForeignKeyConvertor()); + convertors.push(new PgCreateSchemaConvertor()); + convertors.push(new PgRenameSchemaConvertor()); + convertors.push(new PgDropSchemaConvertor()); + convertors.push(new PgAlterTableSetSchemaConvertor()); + convertors.push(new PgAlterTableSetNewSchemaConvertor()); + convertors.push(new PgAlterTableRemoveFromSchemaConvertor()); + convertors.push(new LibSQLCreateForeignKeyConvertor()); + convertors.push(new PgAlterTableAlterColumnDropGenerated()); + convertors.push(new PgAlterTableAlterColumnSetGenerated()); + convertors.push(new PgAlterTableAlterColumnAlterGenerated()); + convertors.push(new PgAlterTableCreateCompositePrimaryKeyConvertor()); + convertors.push(new PgAlterTableDeleteCompositePrimaryKeyConvertor()); + convertors.push(new PgAlterTableAlterCompositePrimaryKeyConvertor()); + convertors.push(new MySqlAlterTableDeleteCompositePrimaryKeyConvertor()); + convertors.push(new MySqlAlterTableDropPk()); + convertors.push(new MySqlAlterTableCreateCompositePrimaryKeyConvertor()); + convertors.push(new MySqlAlterTableAddPk()); + convertors.push(new MySqlAlterTableAlterCompositePrimaryKeyConvertor()); + convertors.push(new SingleStoreAlterTableDropPk()); + convertors.push(new SingleStoreAlterTableAddPk()); + https: ` +create table users ( + id int, + name character varying(128) +); + +create type venum as enum('one', 'two', 'three'); +alter table users add column typed venum; + +insert into users(id, name, typed) values (1, 'name1', 'one'); +insert into users(id, name, typed) values (2, 'name2', 'two'); +insert into users(id, name, typed) values (3, 'name3', 'three'); + +alter type venum rename to __venum; +create type venum as enum ('one', 'two', 'three', 'four', 'five'); + +ALTER TABLE users ALTER COLUMN typed TYPE venum USING typed::text::venum; + +insert into users(id, name, typed) values (4, 'name4', 'four'); +insert into users(id, name, typed) values (5, 'name5', 'five'); + +drop type __venum; +`; + } +}); + +// src/cli/commands/sqlitePushUtils.ts +var _moveDataStatements, getOldTableName, getNewTableName, logSuggestionsAndReturn; +var init_sqlitePushUtils = __esm({ + "src/cli/commands/sqlitePushUtils.ts"() { + "use strict"; + init_source(); + init_sqliteSchema(); + init_sqlgenerator(); + init_utils2(); + _moveDataStatements = (tableName, json, dataLoss = false) => { + const statements = []; + const newTableName = `__new_${tableName}`; + const tableColumns = Object.values(json.tables[tableName].columns); + const referenceData = Object.values(json.tables[tableName].foreignKeys); + const compositePKs = Object.values( + json.tables[tableName].compositePrimaryKeys + ).map((it) => SQLiteSquasher.unsquashPK(it)); + const checkConstraints = Object.values(json.tables[tableName].checkConstraints); + const mappedCheckConstraints = checkConstraints.map( + (it) => it.replaceAll(`"${tableName}".`, `"${newTableName}".`).replaceAll(`\`${tableName}\`.`, `\`${newTableName}\`.`).replaceAll(`${tableName}.`, `${newTableName}.`).replaceAll(`'${tableName}'.`, `\`${newTableName}\`.`) + ); + const fks = referenceData.map((it) => SQLiteSquasher.unsquashPushFK(it)); + statements.push( + new SQLiteCreateTableConvertor().convert({ + type: "sqlite_create_table", + tableName: newTableName, + columns: tableColumns, + referenceData: fks, + compositePKs, + checkConstraints: mappedCheckConstraints + }) + ); + if (!dataLoss) { + const columns = Object.keys(json.tables[tableName].columns).map( + (c3) => `"${c3}"` + ); + statements.push( + `INSERT INTO \`${newTableName}\`(${columns.join( + ", " + )}) SELECT ${columns.join(", ")} FROM \`${tableName}\`;` + ); + } + statements.push( + new SQLiteDropTableConvertor().convert({ + type: "drop_table", + tableName, + schema: "" + }) + ); + statements.push( + new SqliteRenameTableConvertor().convert({ + fromSchema: "", + tableNameFrom: newTableName, + tableNameTo: tableName, + toSchema: "", + type: "rename_table" + }) + ); + for (const idx of Object.values(json.tables[tableName].indexes)) { + statements.push( + new CreateSqliteIndexConvertor().convert({ + type: "create_index", + tableName, + schema: "", + data: idx + }) + ); + } + return statements; + }; + getOldTableName = (tableName, meta) => { + for (const key of Object.keys(meta.tables)) { + const value = meta.tables[key]; + if (`"${tableName}"` === value) { + return key.substring(1, key.length - 1); + } + } + return tableName; + }; + getNewTableName = (tableName, meta) => { + if (typeof meta.tables[`"${tableName}"`] !== "undefined") { + return meta.tables[`"${tableName}"`].substring( + 1, + meta.tables[`"${tableName}"`].length - 1 + ); + } + return tableName; + }; + logSuggestionsAndReturn = async (connection, statements, json1, json2, meta) => { + let shouldAskForApprove = false; + const statementsToExecute = []; + const infoToPrint = []; + const tablesToRemove = []; + const columnsToRemove = []; + const schemasToRemove = []; + const tablesToTruncate = []; + for (const statement of statements) { + if (statement.type === "drop_table") { + const res = await connection.query( + `select count(*) as count from \`${statement.tableName}\`` + ); + const count = Number(res[0].count); + if (count > 0) { + infoToPrint.push( + `\xB7 You're about to delete ${source_default.underline( + statement.tableName + )} table with ${count} items` + ); + tablesToRemove.push(statement.tableName); + shouldAskForApprove = true; + } + const fromJsonStatement = fromJson([statement], "sqlite", "push"); + statementsToExecute.push( + ...Array.isArray(fromJsonStatement) ? fromJsonStatement : [fromJsonStatement] + ); + } else if (statement.type === "alter_table_drop_column") { + const tableName = statement.tableName; + const columnName = statement.columnName; + const res = await connection.query( + `select count(\`${tableName}\`.\`${columnName}\`) as count from \`${tableName}\`` + ); + const count = Number(res[0].count); + if (count > 0) { + infoToPrint.push( + `\xB7 You're about to delete ${source_default.underline( + columnName + )} column in ${tableName} table with ${count} items` + ); + columnsToRemove.push(`${tableName}_${statement.columnName}`); + shouldAskForApprove = true; + } + const fromJsonStatement = fromJson([statement], "sqlite", "push"); + statementsToExecute.push( + ...Array.isArray(fromJsonStatement) ? fromJsonStatement : [fromJsonStatement] + ); + } else if (statement.type === "sqlite_alter_table_add_column" && (statement.column.notNull && !statement.column.default)) { + const tableName = statement.tableName; + const columnName = statement.column.name; + const res = await connection.query( + `select count(*) as count from \`${tableName}\`` + ); + const count = Number(res[0].count); + if (count > 0) { + infoToPrint.push( + `\xB7 You're about to add not-null ${source_default.underline( + columnName + )} column without default value, which contains ${count} items` + ); + tablesToTruncate.push(tableName); + statementsToExecute.push(`delete from ${tableName};`); + shouldAskForApprove = true; + } + const fromJsonStatement = fromJson([statement], "sqlite", "push"); + statementsToExecute.push( + ...Array.isArray(fromJsonStatement) ? fromJsonStatement : [fromJsonStatement] + ); + } else if (statement.type === "recreate_table") { + const tableName = statement.tableName; + const oldTableName = getOldTableName(tableName, meta); + let dataLoss = false; + const prevColumnNames = Object.keys(json1.tables[oldTableName].columns); + const currentColumnNames = Object.keys(json2.tables[tableName].columns); + const { removedColumns, addedColumns } = findAddedAndRemoved( + prevColumnNames, + currentColumnNames + ); + if (removedColumns.length) { + for (const removedColumn of removedColumns) { + const res = await connection.query( + `select count(\`${tableName}\`.\`${removedColumn}\`) as count from \`${tableName}\`` + ); + const count = Number(res[0].count); + if (count > 0) { + infoToPrint.push( + `\xB7 You're about to delete ${source_default.underline( + removedColumn + )} column in ${tableName} table with ${count} items` + ); + columnsToRemove.push(removedColumn); + shouldAskForApprove = true; + } + } + } + if (addedColumns.length) { + for (const addedColumn of addedColumns) { + const [res] = await connection.query( + `select count(*) as count from \`${tableName}\`` + ); + const columnConf = json2.tables[tableName].columns[addedColumn]; + const count = Number(res.count); + if (count > 0 && columnConf.notNull && !columnConf.default) { + dataLoss = true; + infoToPrint.push( + `\xB7 You're about to add not-null ${source_default.underline( + addedColumn + )} column without default value to table, which contains ${count} items` + ); + shouldAskForApprove = true; + tablesToTruncate.push(tableName); + statementsToExecute.push(`DELETE FROM \`${tableName}\`;`); + } + } + } + const tablesReferencingCurrent = []; + for (const table6 of Object.values(json2.tables)) { + const tablesRefs = Object.values(json2.tables[table6.name].foreignKeys).filter((t4) => SQLiteSquasher.unsquashPushFK(t4).tableTo === tableName).map((it) => SQLiteSquasher.unsquashPushFK(it).tableFrom); + tablesReferencingCurrent.push(...tablesRefs); + } + if (!tablesReferencingCurrent.length) { + statementsToExecute.push(..._moveDataStatements(tableName, json2, dataLoss)); + continue; + } + const [{ foreign_keys: pragmaState }] = await connection.query(`PRAGMA foreign_keys;`); + if (pragmaState) { + statementsToExecute.push(`PRAGMA foreign_keys=OFF;`); + } + statementsToExecute.push(..._moveDataStatements(tableName, json2, dataLoss)); + if (pragmaState) { + statementsToExecute.push(`PRAGMA foreign_keys=ON;`); + } + } else { + const fromJsonStatement = fromJson([statement], "sqlite", "push"); + statementsToExecute.push( + ...Array.isArray(fromJsonStatement) ? fromJsonStatement : [fromJsonStatement] + ); + } + } + return { + statementsToExecute, + shouldAskForApprove, + infoToPrint, + columnsToRemove: [...new Set(columnsToRemove)], + schemasToRemove: [...new Set(schemasToRemove)], + tablesToTruncate: [...new Set(tablesToTruncate)], + tablesToRemove: [...new Set(tablesToRemove)] + }; + }; + } +}); + +// src/jsonStatements.ts +var preparePgCreateTableJson, prepareMySqlCreateTableJson, prepareSingleStoreCreateTableJson, prepareSQLiteCreateTable, prepareDropTableJson, prepareRenameTableJson, prepareCreateEnumJson, prepareAddValuesToEnumJson, prepareDropEnumValues, prepareDropEnumJson, prepareMoveEnumJson, prepareRenameEnumJson, prepareCreateSequenceJson, prepareAlterSequenceJson, prepareDropSequenceJson, prepareMoveSequenceJson, prepareRenameSequenceJson, prepareCreateRoleJson, prepareAlterRoleJson, prepareDropRoleJson, prepareRenameRoleJson, prepareCreateSchemasJson, prepareRenameSchemasJson, prepareDeleteSchemasJson, prepareRenameColumns, _prepareDropColumns, _prepareAddColumns, _prepareSqliteAddColumns, prepareAlterColumnsMysql, preparePgAlterColumns, prepareSqliteAlterColumns, prepareRenamePolicyJsons, prepareRenameIndPolicyJsons, prepareCreatePolicyJsons, prepareCreateIndPolicyJsons, prepareDropPolicyJsons, prepareDropIndPolicyJsons, prepareAlterPolicyJson, prepareAlterIndPolicyJson, preparePgCreateIndexesJson, prepareCreateIndexesJson, prepareCreateReferencesJson, prepareLibSQLCreateReferencesJson, prepareDropReferencesJson, prepareLibSQLDropReferencesJson, prepareAlterReferencesJson, prepareDropIndexesJson, prepareAddCompositePrimaryKeySqlite, prepareDeleteCompositePrimaryKeySqlite, prepareAlterCompositePrimaryKeySqlite, prepareAddCompositePrimaryKeyPg, prepareDeleteCompositePrimaryKeyPg, prepareAlterCompositePrimaryKeyPg, prepareAddUniqueConstraintPg, prepareDeleteUniqueConstraintPg, prepareAddCheckConstraint, prepareDeleteCheckConstraint, prepareAddCompositePrimaryKeyMySql, prepareDeleteCompositePrimaryKeyMySql, prepareAlterCompositePrimaryKeyMySql, preparePgCreateViewJson, prepareMySqlCreateViewJson, prepareSqliteCreateViewJson, prepareDropViewJson, prepareRenameViewJson, preparePgAlterViewAlterSchemaJson, preparePgAlterViewAddWithOptionJson, preparePgAlterViewDropWithOptionJson, preparePgAlterViewAlterTablespaceJson, preparePgAlterViewAlterUsingJson, prepareMySqlAlterView; +var init_jsonStatements = __esm({ + "src/jsonStatements.ts"() { + "use strict"; + init_source(); + init_sqlitePushUtils(); + init_views(); + init_mysqlSchema(); + init_pgSchema(); + init_singlestoreSchema(); + init_sqliteSchema(); + preparePgCreateTableJson = (table6, json2) => { + const { name, schema: schema6, columns, compositePrimaryKeys, uniqueConstraints, checkConstraints, policies, isRLSEnabled } = table6; + const tableKey2 = `${schema6 || "public"}.${name}`; + const compositePkName = Object.values(compositePrimaryKeys).length > 0 ? json2.tables[tableKey2].compositePrimaryKeys[`${PgSquasher.unsquashPK(Object.values(compositePrimaryKeys)[0]).name}`].name : ""; + return { + type: "create_table", + tableName: name, + schema: schema6, + columns: Object.values(columns), + compositePKs: Object.values(compositePrimaryKeys), + compositePkName, + uniqueConstraints: Object.values(uniqueConstraints), + policies: Object.values(policies), + checkConstraints: Object.values(checkConstraints), + isRLSEnabled: isRLSEnabled ?? false + }; + }; + prepareMySqlCreateTableJson = (table6, json2, internals) => { + const { name, schema: schema6, columns, compositePrimaryKeys, uniqueConstraints, checkConstraints } = table6; + return { + type: "create_table", + tableName: name, + schema: schema6, + columns: Object.values(columns), + compositePKs: Object.values(compositePrimaryKeys), + compositePkName: Object.values(compositePrimaryKeys).length > 0 ? json2.tables[name].compositePrimaryKeys[MySqlSquasher.unsquashPK(Object.values(compositePrimaryKeys)[0]).name].name : "", + uniqueConstraints: Object.values(uniqueConstraints), + internals, + checkConstraints: Object.values(checkConstraints) + }; + }; + prepareSingleStoreCreateTableJson = (table6, json2, internals) => { + const { name, schema: schema6, columns, compositePrimaryKeys, uniqueConstraints } = table6; + return { + type: "create_table", + tableName: name, + schema: schema6, + columns: Object.values(columns), + compositePKs: Object.values(compositePrimaryKeys), + compositePkName: Object.values(compositePrimaryKeys).length > 0 ? json2.tables[name].compositePrimaryKeys[SingleStoreSquasher.unsquashPK(Object.values(compositePrimaryKeys)[0]).name].name : "", + uniqueConstraints: Object.values(uniqueConstraints), + internals + }; + }; + prepareSQLiteCreateTable = (table6, action) => { + const { name, columns, uniqueConstraints, checkConstraints } = table6; + const references2 = Object.values(table6.foreignKeys); + const composites = Object.values(table6.compositePrimaryKeys).map( + (it) => SQLiteSquasher.unsquashPK(it) + ); + const fks = references2.map( + (it) => action === "push" ? SQLiteSquasher.unsquashPushFK(it) : SQLiteSquasher.unsquashFK(it) + ); + return { + type: "sqlite_create_table", + tableName: name, + columns: Object.values(columns), + referenceData: fks, + compositePKs: composites, + uniqueConstraints: Object.values(uniqueConstraints), + checkConstraints: Object.values(checkConstraints) + }; + }; + prepareDropTableJson = (table6) => { + return { + type: "drop_table", + tableName: table6.name, + schema: table6.schema, + policies: table6.policies ? Object.values(table6.policies) : [] + }; + }; + prepareRenameTableJson = (tableFrom, tableTo) => { + return { + type: "rename_table", + fromSchema: tableTo.schema, + toSchema: tableTo.schema, + tableNameFrom: tableFrom.name, + tableNameTo: tableTo.name + }; + }; + prepareCreateEnumJson = (name, schema6, values) => { + return { + type: "create_type_enum", + name, + schema: schema6, + values + }; + }; + prepareAddValuesToEnumJson = (name, schema6, values) => { + return values.map((it) => { + return { + type: "alter_type_add_value", + name, + schema: schema6, + value: it.value, + before: it.before + }; + }); + }; + prepareDropEnumValues = (name, schema6, removedValues, json2) => { + if (!removedValues.length) return []; + const affectedColumns = []; + for (const tableKey2 in json2.tables) { + const table6 = json2.tables[tableKey2]; + for (const columnKey in table6.columns) { + const column11 = table6.columns[columnKey]; + const arrayDefinitionRegex = /\[\d*(?:\[\d*\])*\]/g; + const parsedColumnType = column11.type.replace(arrayDefinitionRegex, ""); + if (parsedColumnType === name && column11.typeSchema === schema6) { + affectedColumns.push({ + tableSchema: table6.schema, + table: table6.name, + column: column11.name, + columnType: column11.type, + default: column11.default + }); + } + } + } + return [{ + type: "alter_type_drop_value", + name, + enumSchema: schema6, + deletedValues: removedValues, + newValues: json2.enums[`${schema6}.${name}`].values, + columnsWithEnum: affectedColumns + }]; + }; + prepareDropEnumJson = (name, schema6) => { + return { + type: "drop_type_enum", + name, + schema: schema6 + }; + }; + prepareMoveEnumJson = (name, schemaFrom, schemaTo) => { + return { + type: "move_type_enum", + name, + schemaFrom, + schemaTo + }; + }; + prepareRenameEnumJson = (nameFrom, nameTo, schema6) => { + return { + type: "rename_type_enum", + nameFrom, + nameTo, + schema: schema6 + }; + }; + prepareCreateSequenceJson = (seq) => { + const values = PgSquasher.unsquashSequence(seq.values); + return { + type: "create_sequence", + name: seq.name, + schema: seq.schema, + values + }; + }; + prepareAlterSequenceJson = (seq) => { + const values = PgSquasher.unsquashSequence(seq.values); + return [ + { + type: "alter_sequence", + schema: seq.schema, + name: seq.name, + values + } + ]; + }; + prepareDropSequenceJson = (name, schema6) => { + return { + type: "drop_sequence", + name, + schema: schema6 + }; + }; + prepareMoveSequenceJson = (name, schemaFrom, schemaTo) => { + return { + type: "move_sequence", + name, + schemaFrom, + schemaTo + }; + }; + prepareRenameSequenceJson = (nameFrom, nameTo, schema6) => { + return { + type: "rename_sequence", + nameFrom, + nameTo, + schema: schema6 + }; + }; + prepareCreateRoleJson = (role) => { + return { + type: "create_role", + name: role.name, + values: { + createDb: role.createDb, + createRole: role.createRole, + inherit: role.inherit + } + }; + }; + prepareAlterRoleJson = (role) => { + return { + type: "alter_role", + name: role.name, + values: { + createDb: role.createDb, + createRole: role.createRole, + inherit: role.inherit + } + }; + }; + prepareDropRoleJson = (name) => { + return { + type: "drop_role", + name + }; + }; + prepareRenameRoleJson = (nameFrom, nameTo) => { + return { + type: "rename_role", + nameFrom, + nameTo + }; + }; + prepareCreateSchemasJson = (values) => { + return values.map((it) => { + return { + type: "create_schema", + name: it + }; + }); + }; + prepareRenameSchemasJson = (values) => { + return values.map((it) => { + return { + type: "rename_schema", + from: it.from, + to: it.to + }; + }); + }; + prepareDeleteSchemasJson = (values) => { + return values.map((it) => { + return { + type: "drop_schema", + name: it + }; + }); + }; + prepareRenameColumns = (tableName, schema6, pairs) => { + return pairs.map((it) => { + return { + type: "alter_table_rename_column", + tableName, + oldColumnName: it.from.name, + newColumnName: it.to.name, + schema: schema6 + }; + }); + }; + _prepareDropColumns = (taleName, schema6, columns) => { + return columns.map((it) => { + return { + type: "alter_table_drop_column", + tableName: taleName, + columnName: it.name, + schema: schema6 + }; + }); + }; + _prepareAddColumns = (tableName, schema6, columns) => { + return columns.map((it) => { + return { + type: "alter_table_add_column", + tableName, + column: it, + schema: schema6 + }; + }); + }; + _prepareSqliteAddColumns = (tableName, columns, referenceData) => { + const unsquashed = referenceData.map((addedFkValue) => SQLiteSquasher.unsquashFK(addedFkValue)); + return columns.map((it) => { + var _a2; + const columnsWithReference = unsquashed.find((t4) => t4.columnsFrom.includes(it.name)); + if (((_a2 = it.generated) == null ? void 0 : _a2.type) === "stored") { + warning( + `As SQLite docs mention: "It is not possible to ALTER TABLE ADD COLUMN a STORED column. One can add a VIRTUAL column, however", source: "https://www.sqlite.org/gencol.html"` + ); + return void 0; + } + return { + type: "sqlite_alter_table_add_column", + tableName, + column: it, + referenceData: columnsWithReference ? SQLiteSquasher.squashFK(columnsWithReference) : void 0 + }; + }).filter(Boolean); + }; + prepareAlterColumnsMysql = (tableName, schema6, columns, json1, json2, action) => { + var _a2, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m2, _n, _o, _p, _q, _r, _s; + let statements = []; + let dropPkStatements = []; + let setPkStatements = []; + for (const column11 of columns) { + const columnName = typeof column11.name !== "string" ? column11.name.new : column11.name; + const table6 = json2.tables[tableName]; + const snapshotColumn = table6.columns[columnName]; + const columnType = snapshotColumn.type; + const columnDefault = snapshotColumn.default; + const columnOnUpdate = "onUpdate" in snapshotColumn ? snapshotColumn.onUpdate : void 0; + const columnNotNull = table6.columns[columnName].notNull; + const columnAutoIncrement = "autoincrement" in snapshotColumn ? snapshotColumn.autoincrement ?? false : false; + const columnPk = table6.columns[columnName].primaryKey; + if (((_a2 = column11.autoincrement) == null ? void 0 : _a2.type) === "added") { + statements.push({ + type: "alter_table_alter_column_set_autoincrement", + tableName, + columnName, + schema: schema6, + newDataType: columnType, + columnDefault, + columnOnUpdate, + columnNotNull, + columnAutoIncrement, + columnPk + }); + } + if (((_b = column11.autoincrement) == null ? void 0 : _b.type) === "changed") { + const type = column11.autoincrement.new ? "alter_table_alter_column_set_autoincrement" : "alter_table_alter_column_drop_autoincrement"; + statements.push({ + type, + tableName, + columnName, + schema: schema6, + newDataType: columnType, + columnDefault, + columnOnUpdate, + columnNotNull, + columnAutoIncrement, + columnPk + }); + } + if (((_c = column11.autoincrement) == null ? void 0 : _c.type) === "deleted") { + statements.push({ + type: "alter_table_alter_column_drop_autoincrement", + tableName, + columnName, + schema: schema6, + newDataType: columnType, + columnDefault, + columnOnUpdate, + columnNotNull, + columnAutoIncrement, + columnPk + }); + } + } + for (const column11 of columns) { + const columnName = typeof column11.name !== "string" ? column11.name.new : column11.name; + const columnType = json2.tables[tableName].columns[columnName].type; + const columnDefault = json2.tables[tableName].columns[columnName].default; + const columnGenerated = json2.tables[tableName].columns[columnName].generated; + const columnOnUpdate = json2.tables[tableName].columns[columnName].onUpdate; + const columnNotNull = json2.tables[tableName].columns[columnName].notNull; + const columnAutoIncrement = json2.tables[tableName].columns[columnName].autoincrement; + const columnPk = json2.tables[tableName].columns[columnName].primaryKey; + const compositePk = json2.tables[tableName].compositePrimaryKeys[`${tableName}_${columnName}`]; + if (typeof column11.name !== "string") { + statements.push({ + type: "alter_table_rename_column", + tableName, + oldColumnName: column11.name.old, + newColumnName: column11.name.new, + schema: schema6 + }); + } + if (((_d = column11.type) == null ? void 0 : _d.type) === "changed") { + statements.push({ + type: "alter_table_alter_column_set_type", + tableName, + columnName, + newDataType: column11.type.new, + oldDataType: column11.type.old, + schema: schema6, + columnDefault, + columnOnUpdate, + columnNotNull, + columnAutoIncrement, + columnPk, + columnGenerated + }); + } + if (((_e = column11.primaryKey) == null ? void 0 : _e.type) === "deleted" || ((_f = column11.primaryKey) == null ? void 0 : _f.type) === "changed" && !column11.primaryKey.new && typeof compositePk === "undefined") { + dropPkStatements.push({ + //// + type: "alter_table_alter_column_drop_pk", + tableName, + columnName, + schema: schema6 + }); + } + if (((_g = column11.default) == null ? void 0 : _g.type) === "added") { + statements.push({ + type: "alter_table_alter_column_set_default", + tableName, + columnName, + newDefaultValue: column11.default.value, + schema: schema6, + columnOnUpdate, + columnNotNull, + columnAutoIncrement, + newDataType: columnType, + columnPk + }); + } + if (((_h = column11.default) == null ? void 0 : _h.type) === "changed") { + statements.push({ + type: "alter_table_alter_column_set_default", + tableName, + columnName, + newDefaultValue: column11.default.new, + oldDefaultValue: column11.default.old, + schema: schema6, + columnOnUpdate, + columnNotNull, + columnAutoIncrement, + newDataType: columnType, + columnPk + }); + } + if (((_i = column11.default) == null ? void 0 : _i.type) === "deleted") { + statements.push({ + type: "alter_table_alter_column_drop_default", + tableName, + columnName, + schema: schema6, + columnDefault, + columnOnUpdate, + columnNotNull, + columnAutoIncrement, + newDataType: columnType, + columnPk + }); + } + if (((_j = column11.notNull) == null ? void 0 : _j.type) === "added") { + statements.push({ + type: "alter_table_alter_column_set_notnull", + tableName, + columnName, + schema: schema6, + newDataType: columnType, + columnDefault, + columnOnUpdate, + columnNotNull, + columnAutoIncrement, + columnPk + }); + } + if (((_k = column11.notNull) == null ? void 0 : _k.type) === "changed") { + const type = column11.notNull.new ? "alter_table_alter_column_set_notnull" : "alter_table_alter_column_drop_notnull"; + statements.push({ + type, + tableName, + columnName, + schema: schema6, + newDataType: columnType, + columnDefault, + columnOnUpdate, + columnNotNull, + columnAutoIncrement, + columnPk + }); + } + if (((_l = column11.notNull) == null ? void 0 : _l.type) === "deleted") { + statements.push({ + type: "alter_table_alter_column_drop_notnull", + tableName, + columnName, + schema: schema6, + newDataType: columnType, + columnDefault, + columnOnUpdate, + columnNotNull, + columnAutoIncrement, + columnPk + }); + } + if (((_m2 = column11.generated) == null ? void 0 : _m2.type) === "added") { + if ((columnGenerated == null ? void 0 : columnGenerated.type) === "virtual") { + warning( + `You are trying to add virtual generated constraint to ${source_default.blue( + columnName + )} column. As MySQL docs mention: "Nongenerated columns can be altered to stored but not virtual generated columns". We will drop an existing column and add it with a virtual generated statement. This means that the data previously stored in this column will be wiped, and new data will be generated on each read for this column +` + ); + } + statements.push({ + type: "alter_table_alter_column_set_generated", + tableName, + columnName, + schema: schema6, + newDataType: columnType, + columnDefault, + columnOnUpdate, + columnNotNull, + columnAutoIncrement, + columnPk, + columnGenerated + }); + } + if (((_n = column11.generated) == null ? void 0 : _n.type) === "changed" && action !== "push") { + statements.push({ + type: "alter_table_alter_column_alter_generated", + tableName, + columnName, + schema: schema6, + newDataType: columnType, + columnDefault, + columnOnUpdate, + columnNotNull, + columnAutoIncrement, + columnPk, + columnGenerated + }); + } + if (((_o = column11.generated) == null ? void 0 : _o.type) === "deleted") { + if ((columnGenerated == null ? void 0 : columnGenerated.type) === "virtual") { + warning( + `You are trying to remove virtual generated constraint from ${source_default.blue( + columnName + )} column. As MySQL docs mention: "Stored but not virtual generated columns can be altered to nongenerated columns. The stored generated values become the values of the nongenerated column". We will drop an existing column and add it without a virtual generated statement. This means that this column will have no data after migration +` + ); + } + statements.push({ + type: "alter_table_alter_column_drop_generated", + tableName, + columnName, + schema: schema6, + newDataType: columnType, + columnDefault, + columnOnUpdate, + columnNotNull, + columnAutoIncrement, + columnPk, + columnGenerated, + oldColumn: json1.tables[tableName].columns[columnName] + }); + } + if (((_p = column11.primaryKey) == null ? void 0 : _p.type) === "added" || ((_q = column11.primaryKey) == null ? void 0 : _q.type) === "changed" && column11.primaryKey.new) { + const wasAutoincrement = statements.filter( + (it) => it.type === "alter_table_alter_column_set_autoincrement" + ); + if (wasAutoincrement.length === 0) { + setPkStatements.push({ + type: "alter_table_alter_column_set_pk", + tableName, + schema: schema6, + columnName + }); + } + } + if (((_r = column11.onUpdate) == null ? void 0 : _r.type) === "added") { + statements.push({ + type: "alter_table_alter_column_set_on_update", + tableName, + columnName, + schema: schema6, + newDataType: columnType, + columnDefault, + columnOnUpdate, + columnNotNull, + columnAutoIncrement, + columnPk + }); + } + if (((_s = column11.onUpdate) == null ? void 0 : _s.type) === "deleted") { + statements.push({ + type: "alter_table_alter_column_drop_on_update", + tableName, + columnName, + schema: schema6, + newDataType: columnType, + columnDefault, + columnOnUpdate, + columnNotNull, + columnAutoIncrement, + columnPk + }); + } + } + return [...dropPkStatements, ...setPkStatements, ...statements]; + }; + preparePgAlterColumns = (_tableName, schema6, columns, json2, json1, action) => { + var _a2, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m2, _n, _o, _p, _q, _r, _s; + const tableKey2 = `${schema6 || "public"}.${_tableName}`; + let statements = []; + let dropPkStatements = []; + let setPkStatements = []; + for (const column11 of columns) { + const columnName = typeof column11.name !== "string" ? column11.name.new : column11.name; + const tableName = json2.tables[tableKey2].name; + const columnType = json2.tables[tableKey2].columns[columnName].type; + const columnDefault = json2.tables[tableKey2].columns[columnName].default; + const columnGenerated = json2.tables[tableKey2].columns[columnName].generated; + const columnOnUpdate = json2.tables[tableKey2].columns[columnName].onUpdate; + const columnNotNull = json2.tables[tableKey2].columns[columnName].notNull; + const columnAutoIncrement = json2.tables[tableKey2].columns[columnName].autoincrement; + const columnPk = json2.tables[tableKey2].columns[columnName].primaryKey; + const typeSchema = json2.tables[tableKey2].columns[columnName].typeSchema; + const json1ColumnTypeSchema = json1.tables[tableKey2].columns[columnName].typeSchema; + const compositePk = json2.tables[tableKey2].compositePrimaryKeys[`${tableName}_${columnName}`]; + if (typeof column11.name !== "string") { + statements.push({ + type: "alter_table_rename_column", + tableName, + oldColumnName: column11.name.old, + newColumnName: column11.name.new, + schema: schema6 + }); + } + if (((_a2 = column11.type) == null ? void 0 : _a2.type) === "changed") { + const arrayDefinitionRegex = /\[\d*(?:\[\d*\])*\]/g; + const parsedNewColumnType = column11.type.new.replace(arrayDefinitionRegex, ""); + const parsedOldColumnType = column11.type.old.replace(arrayDefinitionRegex, ""); + const isNewTypeIsEnum = json2.enums[`${typeSchema}.${parsedNewColumnType}`]; + const isOldTypeIsEnum = json1.enums[`${json1ColumnTypeSchema}.${parsedOldColumnType}`]; + statements.push({ + type: "pg_alter_table_alter_column_set_type", + tableName, + columnName, + typeSchema, + newDataType: { + name: column11.type.new, + isEnum: isNewTypeIsEnum ? true : false + }, + oldDataType: { + name: column11.type.old, + isEnum: isOldTypeIsEnum ? true : false + }, + schema: schema6, + columnDefault, + columnOnUpdate, + columnNotNull, + columnAutoIncrement, + columnPk + }); + } + if (((_b = column11.primaryKey) == null ? void 0 : _b.type) === "deleted" || ((_c = column11.primaryKey) == null ? void 0 : _c.type) === "changed" && !column11.primaryKey.new && typeof compositePk === "undefined") { + dropPkStatements.push({ + //// + type: "alter_table_alter_column_drop_pk", + tableName, + columnName, + schema: schema6 + }); + } + if (((_d = column11.default) == null ? void 0 : _d.type) === "added") { + statements.push({ + type: "alter_table_alter_column_set_default", + tableName, + columnName, + newDefaultValue: column11.default.value, + schema: schema6, + columnOnUpdate, + columnNotNull, + columnAutoIncrement, + newDataType: columnType, + columnPk + }); + } + if (((_e = column11.default) == null ? void 0 : _e.type) === "changed") { + statements.push({ + type: "alter_table_alter_column_set_default", + tableName, + columnName, + newDefaultValue: column11.default.new, + oldDefaultValue: column11.default.old, + schema: schema6, + columnOnUpdate, + columnNotNull, + columnAutoIncrement, + newDataType: columnType, + columnPk + }); + } + if (((_f = column11.default) == null ? void 0 : _f.type) === "deleted") { + statements.push({ + type: "alter_table_alter_column_drop_default", + tableName, + columnName, + schema: schema6, + columnDefault, + columnOnUpdate, + columnNotNull, + columnAutoIncrement, + newDataType: columnType, + columnPk + }); + } + if (((_g = column11.notNull) == null ? void 0 : _g.type) === "added") { + statements.push({ + type: "alter_table_alter_column_set_notnull", + tableName, + columnName, + schema: schema6, + newDataType: columnType, + columnDefault, + columnOnUpdate, + columnNotNull, + columnAutoIncrement, + columnPk + }); + } + if (((_h = column11.notNull) == null ? void 0 : _h.type) === "changed") { + const type = column11.notNull.new ? "alter_table_alter_column_set_notnull" : "alter_table_alter_column_drop_notnull"; + statements.push({ + type, + tableName, + columnName, + schema: schema6, + newDataType: columnType, + columnDefault, + columnOnUpdate, + columnNotNull, + columnAutoIncrement, + columnPk + }); + } + if (((_i = column11.notNull) == null ? void 0 : _i.type) === "deleted") { + statements.push({ + type: "alter_table_alter_column_drop_notnull", + tableName, + columnName, + schema: schema6, + newDataType: columnType, + columnDefault, + columnOnUpdate, + columnNotNull, + columnAutoIncrement, + columnPk + }); + } + if (((_j = column11.identity) == null ? void 0 : _j.type) === "added") { + statements.push({ + type: "alter_table_alter_column_set_identity", + tableName, + columnName, + schema: schema6, + identity: column11.identity.value + }); + } + if (((_k = column11.identity) == null ? void 0 : _k.type) === "changed") { + statements.push({ + type: "alter_table_alter_column_change_identity", + tableName, + columnName, + schema: schema6, + identity: column11.identity.new, + oldIdentity: column11.identity.old + }); + } + if (((_l = column11.identity) == null ? void 0 : _l.type) === "deleted") { + statements.push({ + type: "alter_table_alter_column_drop_identity", + tableName, + columnName, + schema: schema6 + }); + } + if (((_m2 = column11.generated) == null ? void 0 : _m2.type) === "added") { + statements.push({ + type: "alter_table_alter_column_set_generated", + tableName, + columnName, + schema: schema6, + newDataType: columnType, + columnDefault, + columnOnUpdate, + columnNotNull, + columnAutoIncrement, + columnPk, + columnGenerated + }); + } + if (((_n = column11.generated) == null ? void 0 : _n.type) === "changed" && action !== "push") { + statements.push({ + type: "alter_table_alter_column_alter_generated", + tableName, + columnName, + schema: schema6, + newDataType: columnType, + columnDefault, + columnOnUpdate, + columnNotNull, + columnAutoIncrement, + columnPk, + columnGenerated + }); + } + if (((_o = column11.generated) == null ? void 0 : _o.type) === "deleted") { + statements.push({ + type: "alter_table_alter_column_drop_generated", + tableName, + columnName, + schema: schema6, + newDataType: columnType, + columnDefault, + columnOnUpdate, + columnNotNull, + columnAutoIncrement, + columnPk, + columnGenerated + }); + } + if (((_p = column11.primaryKey) == null ? void 0 : _p.type) === "added" || ((_q = column11.primaryKey) == null ? void 0 : _q.type) === "changed" && column11.primaryKey.new) { + const wasAutoincrement = statements.filter( + (it) => it.type === "alter_table_alter_column_set_autoincrement" + ); + if (wasAutoincrement.length === 0) { + setPkStatements.push({ + type: "alter_table_alter_column_set_pk", + tableName, + schema: schema6, + columnName + }); + } + } + if (((_r = column11.onUpdate) == null ? void 0 : _r.type) === "added") { + statements.push({ + type: "alter_table_alter_column_set_on_update", + tableName, + columnName, + schema: schema6, + newDataType: columnType, + columnDefault, + columnOnUpdate, + columnNotNull, + columnAutoIncrement, + columnPk + }); + } + if (((_s = column11.onUpdate) == null ? void 0 : _s.type) === "deleted") { + statements.push({ + type: "alter_table_alter_column_drop_on_update", + tableName, + columnName, + schema: schema6, + newDataType: columnType, + columnDefault, + columnOnUpdate, + columnNotNull, + columnAutoIncrement, + columnPk + }); + } + } + return [...dropPkStatements, ...setPkStatements, ...statements]; + }; + prepareSqliteAlterColumns = (tableName, schema6, columns, json2) => { + var _a2, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m2, _n, _o, _p, _q, _r, _s; + let statements = []; + let dropPkStatements = []; + let setPkStatements = []; + for (const column11 of columns) { + const columnName = typeof column11.name !== "string" ? column11.name.new : column11.name; + const columnType = json2.tables[tableName].columns[columnName].type; + const columnDefault = json2.tables[tableName].columns[columnName].default; + const columnOnUpdate = json2.tables[tableName].columns[columnName].onUpdate; + const columnNotNull = json2.tables[tableName].columns[columnName].notNull; + const columnAutoIncrement = json2.tables[tableName].columns[columnName].autoincrement; + const columnPk = json2.tables[tableName].columns[columnName].primaryKey; + const columnGenerated = json2.tables[tableName].columns[columnName].generated; + const compositePk = json2.tables[tableName].compositePrimaryKeys[`${tableName}_${columnName}`]; + if (((_a2 = column11.autoincrement) == null ? void 0 : _a2.type) === "added") { + statements.push({ + type: "alter_table_alter_column_set_autoincrement", + tableName, + columnName, + schema: schema6, + newDataType: columnType, + columnDefault, + columnOnUpdate, + columnNotNull, + columnAutoIncrement, + columnPk + }); + } + if (((_b = column11.autoincrement) == null ? void 0 : _b.type) === "changed") { + const type = column11.autoincrement.new ? "alter_table_alter_column_set_autoincrement" : "alter_table_alter_column_drop_autoincrement"; + statements.push({ + type, + tableName, + columnName, + schema: schema6, + newDataType: columnType, + columnDefault, + columnOnUpdate, + columnNotNull, + columnAutoIncrement, + columnPk + }); + } + if (((_c = column11.autoincrement) == null ? void 0 : _c.type) === "deleted") { + statements.push({ + type: "alter_table_alter_column_drop_autoincrement", + tableName, + columnName, + schema: schema6, + newDataType: columnType, + columnDefault, + columnOnUpdate, + columnNotNull, + columnAutoIncrement, + columnPk + }); + } + if (typeof column11.name !== "string") { + statements.push({ + type: "alter_table_rename_column", + tableName, + oldColumnName: column11.name.old, + newColumnName: column11.name.new, + schema: schema6 + }); + } + if (((_d = column11.type) == null ? void 0 : _d.type) === "changed") { + statements.push({ + type: "alter_table_alter_column_set_type", + tableName, + columnName, + newDataType: column11.type.new, + oldDataType: column11.type.old, + schema: schema6, + columnDefault, + columnOnUpdate, + columnNotNull, + columnAutoIncrement, + columnPk + }); + } + if (((_e = column11.primaryKey) == null ? void 0 : _e.type) === "deleted" || ((_f = column11.primaryKey) == null ? void 0 : _f.type) === "changed" && !column11.primaryKey.new && typeof compositePk === "undefined") { + dropPkStatements.push({ + //// + type: "alter_table_alter_column_drop_pk", + tableName, + columnName, + schema: schema6 + }); + } + if (((_g = column11.default) == null ? void 0 : _g.type) === "added") { + statements.push({ + type: "alter_table_alter_column_set_default", + tableName, + columnName, + newDefaultValue: column11.default.value, + schema: schema6, + columnOnUpdate, + columnNotNull, + columnAutoIncrement, + newDataType: columnType, + columnPk + }); + } + if (((_h = column11.default) == null ? void 0 : _h.type) === "changed") { + statements.push({ + type: "alter_table_alter_column_set_default", + tableName, + columnName, + newDefaultValue: column11.default.new, + oldDefaultValue: column11.default.old, + schema: schema6, + columnOnUpdate, + columnNotNull, + columnAutoIncrement, + newDataType: columnType, + columnPk + }); + } + if (((_i = column11.default) == null ? void 0 : _i.type) === "deleted") { + statements.push({ + type: "alter_table_alter_column_drop_default", + tableName, + columnName, + schema: schema6, + columnDefault, + columnOnUpdate, + columnNotNull, + columnAutoIncrement, + newDataType: columnType, + columnPk + }); + } + if (((_j = column11.notNull) == null ? void 0 : _j.type) === "added") { + statements.push({ + type: "alter_table_alter_column_set_notnull", + tableName, + columnName, + schema: schema6, + newDataType: columnType, + columnDefault, + columnOnUpdate, + columnNotNull, + columnAutoIncrement, + columnPk + }); + } + if (((_k = column11.notNull) == null ? void 0 : _k.type) === "changed") { + const type = column11.notNull.new ? "alter_table_alter_column_set_notnull" : "alter_table_alter_column_drop_notnull"; + statements.push({ + type, + tableName, + columnName, + schema: schema6, + newDataType: columnType, + columnDefault, + columnOnUpdate, + columnNotNull, + columnAutoIncrement, + columnPk + }); + } + if (((_l = column11.notNull) == null ? void 0 : _l.type) === "deleted") { + statements.push({ + type: "alter_table_alter_column_drop_notnull", + tableName, + columnName, + schema: schema6, + newDataType: columnType, + columnDefault, + columnOnUpdate, + columnNotNull, + columnAutoIncrement, + columnPk + }); + } + if (((_m2 = column11.generated) == null ? void 0 : _m2.type) === "added") { + if ((columnGenerated == null ? void 0 : columnGenerated.type) === "virtual") { + statements.push({ + type: "alter_table_alter_column_set_generated", + tableName, + columnName, + schema: schema6, + newDataType: columnType, + columnDefault, + columnOnUpdate, + columnNotNull, + columnAutoIncrement, + columnPk, + columnGenerated + }); + } else { + warning( + `As SQLite docs mention: "It is not possible to ALTER TABLE ADD COLUMN a STORED column. One can add a VIRTUAL column, however", source: "https://www.sqlite.org/gencol.html"` + ); + } + } + if (((_n = column11.generated) == null ? void 0 : _n.type) === "changed") { + if ((columnGenerated == null ? void 0 : columnGenerated.type) === "virtual") { + statements.push({ + type: "alter_table_alter_column_alter_generated", + tableName, + columnName, + schema: schema6, + newDataType: columnType, + columnDefault, + columnOnUpdate, + columnNotNull, + columnAutoIncrement, + columnPk, + columnGenerated + }); + } else { + warning( + `As SQLite docs mention: "It is not possible to ALTER TABLE ADD COLUMN a STORED column. One can add a VIRTUAL column, however", source: "https://www.sqlite.org/gencol.html"` + ); + } + } + if (((_o = column11.generated) == null ? void 0 : _o.type) === "deleted") { + statements.push({ + type: "alter_table_alter_column_drop_generated", + tableName, + columnName, + schema: schema6, + newDataType: columnType, + columnDefault, + columnOnUpdate, + columnNotNull, + columnAutoIncrement, + columnPk, + columnGenerated + }); + } + if (((_p = column11.primaryKey) == null ? void 0 : _p.type) === "added" || ((_q = column11.primaryKey) == null ? void 0 : _q.type) === "changed" && column11.primaryKey.new) { + const wasAutoincrement = statements.filter( + (it) => it.type === "alter_table_alter_column_set_autoincrement" + ); + if (wasAutoincrement.length === 0) { + setPkStatements.push({ + type: "alter_table_alter_column_set_pk", + tableName, + schema: schema6, + columnName + }); + } + } + if (((_r = column11.onUpdate) == null ? void 0 : _r.type) === "added") { + statements.push({ + type: "alter_table_alter_column_set_on_update", + tableName, + columnName, + schema: schema6, + newDataType: columnType, + columnDefault, + columnOnUpdate, + columnNotNull, + columnAutoIncrement, + columnPk + }); + } + if (((_s = column11.onUpdate) == null ? void 0 : _s.type) === "deleted") { + statements.push({ + type: "alter_table_alter_column_drop_on_update", + tableName, + columnName, + schema: schema6, + newDataType: columnType, + columnDefault, + columnOnUpdate, + columnNotNull, + columnAutoIncrement, + columnPk + }); + } + } + return [...dropPkStatements, ...setPkStatements, ...statements]; + }; + prepareRenamePolicyJsons = (tableName, schema6, renames) => { + return renames.map((it) => { + return { + type: "rename_policy", + tableName, + oldName: it.from.name, + newName: it.to.name, + schema: schema6 + }; + }); + }; + prepareRenameIndPolicyJsons = (renames) => { + return renames.map((it) => { + return { + type: "rename_ind_policy", + tableKey: it.from.on, + oldName: it.from.name, + newName: it.to.name + }; + }); + }; + prepareCreatePolicyJsons = (tableName, schema6, policies) => { + return policies.map((it) => { + return { + type: "create_policy", + tableName, + data: it, + schema: schema6 + }; + }); + }; + prepareCreateIndPolicyJsons = (policies) => { + return policies.map((it) => { + return { + type: "create_ind_policy", + tableName: it.on, + data: it + }; + }); + }; + prepareDropPolicyJsons = (tableName, schema6, policies) => { + return policies.map((it) => { + return { + type: "drop_policy", + tableName, + data: it, + schema: schema6 + }; + }); + }; + prepareDropIndPolicyJsons = (policies) => { + return policies.map((it) => { + return { + type: "drop_ind_policy", + tableName: it.on, + data: it + }; + }); + }; + prepareAlterPolicyJson = (tableName, schema6, oldPolicy, newPolicy) => { + return { + type: "alter_policy", + tableName, + oldData: oldPolicy, + newData: newPolicy, + schema: schema6 + }; + }; + prepareAlterIndPolicyJson = (oldPolicy, newPolicy) => { + return { + type: "alter_ind_policy", + oldData: oldPolicy, + newData: newPolicy + }; + }; + preparePgCreateIndexesJson = (tableName, schema6, indexes, fullSchema, action) => { + if (action === "push") { + return Object.values(indexes).map((indexData) => { + const unsquashedIndex = PgSquasher.unsquashIdxPush(indexData); + const data = fullSchema.tables[`${schema6 === "" ? "public" : schema6}.${tableName}`].indexes[unsquashedIndex.name]; + return { + type: "create_index_pg", + tableName, + data, + schema: schema6 + }; + }); + } + return Object.values(indexes).map((indexData) => { + return { + type: "create_index_pg", + tableName, + data: PgSquasher.unsquashIdx(indexData), + schema: schema6 + }; + }); + }; + prepareCreateIndexesJson = (tableName, schema6, indexes, internal) => { + return Object.values(indexes).map((indexData) => { + return { + type: "create_index", + tableName, + data: indexData, + schema: schema6, + internal + }; + }); + }; + prepareCreateReferencesJson = (tableName, schema6, foreignKeys) => { + return Object.values(foreignKeys).map((fkData) => { + return { + type: "create_reference", + tableName, + data: fkData, + schema: schema6 + }; + }); + }; + prepareLibSQLCreateReferencesJson = (tableName, schema6, foreignKeys, json2, action) => { + return Object.values(foreignKeys).map((fkData) => { + const { columnsFrom, tableFrom, columnsTo } = action === "push" ? SQLiteSquasher.unsquashPushFK(fkData) : SQLiteSquasher.unsquashFK(fkData); + let isMulticolumn = false; + if (columnsFrom.length > 1 || columnsTo.length > 1) { + isMulticolumn = true; + return { + type: "create_reference", + tableName, + data: fkData, + schema: schema6, + isMulticolumn + }; + } + const columnFrom = columnsFrom[0]; + const { + notNull: columnNotNull, + default: columnDefault, + type: columnType + } = json2.tables[tableFrom].columns[columnFrom]; + return { + type: "create_reference", + tableName, + data: fkData, + schema: schema6, + columnNotNull, + columnDefault, + columnType + }; + }); + }; + prepareDropReferencesJson = (tableName, schema6, foreignKeys) => { + return Object.values(foreignKeys).map((fkData) => { + return { + type: "delete_reference", + tableName, + data: fkData, + schema: schema6 + }; + }); + }; + prepareLibSQLDropReferencesJson = (tableName, schema6, foreignKeys, json2, meta, action) => { + const statements = Object.values(foreignKeys).map((fkData) => { + const { columnsFrom, tableFrom, columnsTo, name, tableTo, onDelete, onUpdate } = action === "push" ? SQLiteSquasher.unsquashPushFK(fkData) : SQLiteSquasher.unsquashFK(fkData); + const keys = Object.keys(json2.tables[tableName].columns); + const filtered = columnsFrom.filter((it) => keys.includes(it)); + const fullDrop = filtered.length === 0; + if (fullDrop) return; + let isMulticolumn = false; + if (columnsFrom.length > 1 || columnsTo.length > 1) { + isMulticolumn = true; + return { + type: "delete_reference", + tableName, + data: fkData, + schema: schema6, + isMulticolumn + }; + } + const columnFrom = columnsFrom[0]; + const newTableName = getNewTableName(tableFrom, meta); + const { + notNull: columnNotNull, + default: columnDefault, + type: columnType + } = json2.tables[newTableName].columns[columnFrom]; + const fkToSquash = { + columnsFrom, + columnsTo, + name, + tableFrom: newTableName, + tableTo, + onDelete, + onUpdate + }; + const foreignKey = action === "push" ? SQLiteSquasher.squashPushFK(fkToSquash) : SQLiteSquasher.squashFK(fkToSquash); + return { + type: "delete_reference", + tableName, + data: foreignKey, + schema: schema6, + columnNotNull, + columnDefault, + columnType + }; + }); + return statements.filter((it) => it); + }; + prepareAlterReferencesJson = (tableName, schema6, foreignKeys) => { + const stmts = []; + Object.values(foreignKeys).map((val2) => { + stmts.push({ + type: "delete_reference", + tableName, + schema: schema6, + data: val2.__old + }); + stmts.push({ + type: "create_reference", + tableName, + schema: schema6, + data: val2.__new + }); + }); + return stmts; + }; + prepareDropIndexesJson = (tableName, schema6, indexes) => { + return Object.values(indexes).map((indexData) => { + return { + type: "drop_index", + tableName, + data: indexData, + schema: schema6 + }; + }); + }; + prepareAddCompositePrimaryKeySqlite = (tableName, pks) => { + return Object.values(pks).map((it) => { + return { + type: "create_composite_pk", + tableName, + data: it + }; + }); + }; + prepareDeleteCompositePrimaryKeySqlite = (tableName, pks) => { + return Object.values(pks).map((it) => { + return { + type: "delete_composite_pk", + tableName, + data: it + }; + }); + }; + prepareAlterCompositePrimaryKeySqlite = (tableName, pks) => { + return Object.values(pks).map((it) => { + return { + type: "alter_composite_pk", + tableName, + old: it.__old, + new: it.__new + }; + }); + }; + prepareAddCompositePrimaryKeyPg = (tableName, schema6, pks, json2) => { + return Object.values(pks).map((it) => { + const unsquashed = PgSquasher.unsquashPK(it); + return { + type: "create_composite_pk", + tableName, + data: it, + schema: schema6, + constraintName: PgSquasher.unsquashPK(it).name + }; + }); + }; + prepareDeleteCompositePrimaryKeyPg = (tableName, schema6, pks, json1) => { + return Object.values(pks).map((it) => { + return { + type: "delete_composite_pk", + tableName, + data: it, + schema: schema6, + constraintName: PgSquasher.unsquashPK(it).name + }; + }); + }; + prepareAlterCompositePrimaryKeyPg = (tableName, schema6, pks, json1, json2) => { + return Object.values(pks).map((it) => { + return { + type: "alter_composite_pk", + tableName, + old: it.__old, + new: it.__new, + schema: schema6, + oldConstraintName: PgSquasher.unsquashPK(it.__old).name, + newConstraintName: PgSquasher.unsquashPK(it.__new).name + }; + }); + }; + prepareAddUniqueConstraintPg = (tableName, schema6, unqs) => { + return Object.values(unqs).map((it) => { + return { + type: "create_unique_constraint", + tableName, + data: it, + schema: schema6 + }; + }); + }; + prepareDeleteUniqueConstraintPg = (tableName, schema6, unqs) => { + return Object.values(unqs).map((it) => { + return { + type: "delete_unique_constraint", + tableName, + data: it, + schema: schema6 + }; + }); + }; + prepareAddCheckConstraint = (tableName, schema6, check2) => { + return Object.values(check2).map((it) => { + return { + type: "create_check_constraint", + tableName, + data: it, + schema: schema6 + }; + }); + }; + prepareDeleteCheckConstraint = (tableName, schema6, check2) => { + return Object.values(check2).map((it) => { + return { + type: "delete_check_constraint", + tableName, + constraintName: PgSquasher.unsquashCheck(it).name, + schema: schema6 + }; + }); + }; + prepareAddCompositePrimaryKeyMySql = (tableName, pks, json1, json2) => { + var _a2, _b; + const res = []; + for (const it of Object.values(pks)) { + const unsquashed = MySqlSquasher.unsquashPK(it); + if (unsquashed.columns.length === 1 && ((_b = (_a2 = json1.tables[tableName]) == null ? void 0 : _a2.columns[unsquashed.columns[0]]) == null ? void 0 : _b.primaryKey)) { + continue; + } + res.push({ + type: "create_composite_pk", + tableName, + data: it, + constraintName: unsquashed.name + }); + } + return res; + }; + prepareDeleteCompositePrimaryKeyMySql = (tableName, pks, json1) => { + return Object.values(pks).map((it) => { + const unsquashed = MySqlSquasher.unsquashPK(it); + return { + type: "delete_composite_pk", + tableName, + data: it + }; + }); + }; + prepareAlterCompositePrimaryKeyMySql = (tableName, pks, json1, json2) => { + return Object.values(pks).map((it) => { + return { + type: "alter_composite_pk", + tableName, + old: it.__old, + new: it.__new, + oldConstraintName: json1.tables[tableName].compositePrimaryKeys[MySqlSquasher.unsquashPK(it.__old).name].name, + newConstraintName: json2.tables[tableName].compositePrimaryKeys[MySqlSquasher.unsquashPK(it.__new).name].name + }; + }); + }; + preparePgCreateViewJson = (name, schema6, definition, materialized, withNoData = false, withOption, using, tablespace) => { + return { + type: "create_view", + name, + schema: schema6, + definition, + with: withOption, + materialized, + withNoData, + using, + tablespace + }; + }; + prepareMySqlCreateViewJson = (name, definition, meta, replace = false) => { + const { algorithm, sqlSecurity, withCheckOption } = MySqlSquasher.unsquashView(meta); + return { + type: "mysql_create_view", + name, + definition, + algorithm, + sqlSecurity, + withCheckOption, + replace + }; + }; + prepareSqliteCreateViewJson = (name, definition) => { + return { + type: "sqlite_create_view", + name, + definition + }; + }; + prepareDropViewJson = (name, schema6, materialized) => { + const resObject = { name, type: "drop_view" }; + if (schema6) resObject["schema"] = schema6; + if (materialized) resObject["materialized"] = materialized; + return resObject; + }; + prepareRenameViewJson = (to, from, schema6, materialized) => { + const resObject = { + type: "rename_view", + nameTo: to, + nameFrom: from + }; + if (schema6) resObject["schema"] = schema6; + if (materialized) resObject["materialized"] = materialized; + return resObject; + }; + preparePgAlterViewAlterSchemaJson = (to, from, name, materialized) => { + const returnObject = { + type: "alter_view_alter_schema", + fromSchema: from, + toSchema: to, + name + }; + if (materialized) returnObject["materialized"] = materialized; + return returnObject; + }; + preparePgAlterViewAddWithOptionJson = (name, schema6, materialized, withOption) => { + return { + type: "alter_view_add_with_option", + name, + schema: schema6, + materialized, + with: withOption + }; + }; + preparePgAlterViewDropWithOptionJson = (name, schema6, materialized, withOption) => { + return { + type: "alter_view_drop_with_option", + name, + schema: schema6, + materialized, + with: withOption + }; + }; + preparePgAlterViewAlterTablespaceJson = (name, schema6, materialized, to) => { + return { + type: "alter_view_alter_tablespace", + name, + schema: schema6, + materialized, + toTablespace: to + }; + }; + preparePgAlterViewAlterUsingJson = (name, schema6, materialized, to) => { + return { + type: "alter_view_alter_using", + name, + schema: schema6, + materialized, + toUsing: to + }; + }; + prepareMySqlAlterView = (view5) => { + return { type: "alter_mysql_view", ...view5 }; + }; + } +}); + +// src/statementCombiner.ts +var prepareLibSQLRecreateTable, prepareSQLiteRecreateTable, libSQLCombineStatements, sqliteCombineStatements, prepareSingleStoreRecreateTable, singleStoreCombineStatements; +var init_statementCombiner = __esm({ + "src/statementCombiner.ts"() { + "use strict"; + init_jsonStatements(); + init_sqliteSchema(); + prepareLibSQLRecreateTable = (table6, action) => { + const { name, columns, uniqueConstraints, indexes, checkConstraints } = table6; + const composites = Object.values(table6.compositePrimaryKeys).map( + (it) => SQLiteSquasher.unsquashPK(it) + ); + const references2 = Object.values(table6.foreignKeys); + const fks = references2.map( + (it) => action === "push" ? SQLiteSquasher.unsquashPushFK(it) : SQLiteSquasher.unsquashFK(it) + ); + const statements = [ + { + type: "recreate_table", + tableName: name, + columns: Object.values(columns), + compositePKs: composites, + referenceData: fks, + uniqueConstraints: Object.values(uniqueConstraints), + checkConstraints: Object.values(checkConstraints) + } + ]; + if (Object.keys(indexes).length) { + statements.push(...prepareCreateIndexesJson(name, "", indexes)); + } + return statements; + }; + prepareSQLiteRecreateTable = (table6, action) => { + const { name, columns, uniqueConstraints, indexes, checkConstraints } = table6; + const composites = Object.values(table6.compositePrimaryKeys).map( + (it) => SQLiteSquasher.unsquashPK(it) + ); + const references2 = Object.values(table6.foreignKeys); + const fks = references2.map( + (it) => action === "push" ? SQLiteSquasher.unsquashPushFK(it) : SQLiteSquasher.unsquashFK(it) + ); + const statements = [ + { + type: "recreate_table", + tableName: name, + columns: Object.values(columns), + compositePKs: composites, + referenceData: fks, + uniqueConstraints: Object.values(uniqueConstraints), + checkConstraints: Object.values(checkConstraints) + } + ]; + if (Object.keys(indexes).length) { + statements.push(...prepareCreateIndexesJson(name, "", indexes)); + } + return statements; + }; + libSQLCombineStatements = (statements, json2, action) => { + const newStatements = {}; + for (const statement of statements) { + if (statement.type === "alter_table_alter_column_drop_autoincrement" || statement.type === "alter_table_alter_column_set_autoincrement" || statement.type === "alter_table_alter_column_drop_pk" || statement.type === "alter_table_alter_column_set_pk" || statement.type === "create_composite_pk" || statement.type === "alter_composite_pk" || statement.type === "delete_composite_pk" || statement.type === "create_check_constraint" || statement.type === "delete_check_constraint") { + const tableName2 = statement.tableName; + const statementsForTable2 = newStatements[tableName2]; + if (!statementsForTable2) { + newStatements[tableName2] = prepareLibSQLRecreateTable(json2.tables[tableName2], action); + continue; + } + if (!statementsForTable2.some(({ type }) => type === "recreate_table")) { + const wasRename = statementsForTable2.some(({ type }) => type === "rename_table"); + const preparedStatements = prepareLibSQLRecreateTable(json2.tables[tableName2], action); + if (wasRename) { + newStatements[tableName2].push(...preparedStatements); + } else { + newStatements[tableName2] = preparedStatements; + } + continue; + } + continue; + } + if (statement.type === "alter_table_alter_column_set_type" || statement.type === "alter_table_alter_column_drop_notnull" || statement.type === "alter_table_alter_column_set_notnull" || statement.type === "alter_table_alter_column_set_default" || statement.type === "alter_table_alter_column_drop_default") { + const { tableName: tableName2, columnName, columnPk } = statement; + const columnIsPartOfForeignKey = Object.values( + json2.tables[tableName2].foreignKeys + ).some((it) => { + const unsquashFk = action === "push" ? SQLiteSquasher.unsquashPushFK(it) : SQLiteSquasher.unsquashFK(it); + return unsquashFk.columnsFrom.includes(columnName); + }); + const statementsForTable2 = newStatements[tableName2]; + if (!statementsForTable2 && (columnIsPartOfForeignKey || columnPk)) { + newStatements[tableName2] = prepareLibSQLRecreateTable(json2.tables[tableName2], action); + continue; + } + if (statementsForTable2 && (columnIsPartOfForeignKey || columnPk)) { + if (!statementsForTable2.some(({ type }) => type === "recreate_table")) { + const wasRename = statementsForTable2.some(({ type }) => type === "rename_table"); + const preparedStatements = prepareLibSQLRecreateTable(json2.tables[tableName2], action); + if (wasRename) { + newStatements[tableName2].push(...preparedStatements); + } else { + newStatements[tableName2] = preparedStatements; + } + } + continue; + } + if (statementsForTable2 && !(columnIsPartOfForeignKey || columnPk)) { + if (!statementsForTable2.some(({ type }) => type === "recreate_table")) { + newStatements[tableName2].push(statement); + } + continue; + } + newStatements[tableName2] = [statement]; + continue; + } + if (statement.type === "create_reference") { + const tableName2 = statement.tableName; + const data = action === "push" ? SQLiteSquasher.unsquashPushFK(statement.data) : SQLiteSquasher.unsquashFK(statement.data); + const statementsForTable2 = newStatements[tableName2]; + if (!statementsForTable2) { + newStatements[tableName2] = statement.isMulticolumn ? prepareLibSQLRecreateTable(json2.tables[tableName2], action) : [statement]; + continue; + } + if (!statement.isMulticolumn && statementsForTable2.some( + (st) => st.type === "sqlite_alter_table_add_column" && st.column.name === data.columnsFrom[0] + )) { + continue; + } + if (statement.isMulticolumn) { + if (!statementsForTable2.some(({ type }) => type === "recreate_table")) { + const wasRename = statementsForTable2.some(({ type }) => type === "rename_table"); + const preparedStatements = prepareLibSQLRecreateTable(json2.tables[tableName2], action); + if (wasRename) { + newStatements[tableName2].push(...preparedStatements); + } else { + newStatements[tableName2] = preparedStatements; + } + continue; + } + continue; + } + if (!statementsForTable2.some(({ type }) => type === "recreate_table")) { + newStatements[tableName2].push(statement); + } + continue; + } + if (statement.type === "delete_reference") { + const tableName2 = statement.tableName; + const statementsForTable2 = newStatements[tableName2]; + if (!statementsForTable2) { + newStatements[tableName2] = prepareLibSQLRecreateTable(json2.tables[tableName2], action); + continue; + } + if (!statementsForTable2.some(({ type }) => type === "recreate_table")) { + const wasRename = statementsForTable2.some(({ type }) => type === "rename_table"); + const preparedStatements = prepareLibSQLRecreateTable(json2.tables[tableName2], action); + if (wasRename) { + newStatements[tableName2].push(...preparedStatements); + } else { + newStatements[tableName2] = preparedStatements; + } + continue; + } + continue; + } + if (statement.type === "sqlite_alter_table_add_column" && statement.column.primaryKey) { + const tableName2 = statement.tableName; + const statementsForTable2 = newStatements[tableName2]; + if (!statementsForTable2) { + newStatements[tableName2] = prepareLibSQLRecreateTable(json2.tables[tableName2], action); + continue; + } + if (!statementsForTable2.some(({ type }) => type === "recreate_table")) { + const wasRename = statementsForTable2.some(({ type }) => type === "rename_table"); + const preparedStatements = prepareLibSQLRecreateTable(json2.tables[tableName2], action); + if (wasRename) { + newStatements[tableName2].push(...preparedStatements); + } else { + newStatements[tableName2] = preparedStatements; + } + continue; + } + continue; + } + const tableName = statement.type === "rename_table" ? statement.tableNameTo : statement.tableName; + const statementsForTable = newStatements[tableName]; + if (!statementsForTable) { + newStatements[tableName] = [statement]; + continue; + } + if (!statementsForTable.some(({ type }) => type === "recreate_table")) { + newStatements[tableName].push(statement); + } + } + const combinedStatements = Object.values(newStatements).flat(); + const renamedTables = combinedStatements.filter((it) => it.type === "rename_table"); + const renamedColumns = combinedStatements.filter((it) => it.type === "alter_table_rename_column"); + const rest = combinedStatements.filter((it) => it.type !== "rename_table" && it.type !== "alter_table_rename_column"); + return [...renamedTables, ...renamedColumns, ...rest]; + }; + sqliteCombineStatements = (statements, json2, action) => { + const newStatements = {}; + for (const statement of statements) { + if (statement.type === "alter_table_alter_column_set_type" || statement.type === "alter_table_alter_column_set_default" || statement.type === "alter_table_alter_column_drop_default" || statement.type === "alter_table_alter_column_set_notnull" || statement.type === "alter_table_alter_column_drop_notnull" || statement.type === "alter_table_alter_column_drop_autoincrement" || statement.type === "alter_table_alter_column_set_autoincrement" || statement.type === "alter_table_alter_column_drop_pk" || statement.type === "alter_table_alter_column_set_pk" || statement.type === "delete_reference" || statement.type === "alter_reference" || statement.type === "create_composite_pk" || statement.type === "alter_composite_pk" || statement.type === "delete_composite_pk" || statement.type === "create_unique_constraint" || statement.type === "delete_unique_constraint" || statement.type === "create_check_constraint" || statement.type === "delete_check_constraint") { + const tableName2 = statement.tableName; + const statementsForTable2 = newStatements[tableName2]; + if (!statementsForTable2) { + newStatements[tableName2] = prepareSQLiteRecreateTable(json2.tables[tableName2], action); + continue; + } + if (!statementsForTable2.some(({ type }) => type === "recreate_table")) { + const wasRename = statementsForTable2.some(({ type }) => type === "rename_table"); + const preparedStatements = prepareSQLiteRecreateTable(json2.tables[tableName2], action); + if (wasRename) { + newStatements[tableName2].push(...preparedStatements); + } else { + newStatements[tableName2] = preparedStatements; + } + continue; + } + continue; + } + if (statement.type === "sqlite_alter_table_add_column" && statement.column.primaryKey) { + const tableName2 = statement.tableName; + const statementsForTable2 = newStatements[tableName2]; + if (!statementsForTable2) { + newStatements[tableName2] = prepareSQLiteRecreateTable(json2.tables[tableName2], action); + continue; + } + if (!statementsForTable2.some(({ type }) => type === "recreate_table")) { + const wasRename = statementsForTable2.some(({ type }) => type === "rename_table"); + const preparedStatements = prepareSQLiteRecreateTable(json2.tables[tableName2], action); + if (wasRename) { + newStatements[tableName2].push(...preparedStatements); + } else { + newStatements[tableName2] = preparedStatements; + } + continue; + } + continue; + } + if (statement.type === "create_reference") { + const tableName2 = statement.tableName; + const data = action === "push" ? SQLiteSquasher.unsquashPushFK(statement.data) : SQLiteSquasher.unsquashFK(statement.data); + const statementsForTable2 = newStatements[tableName2]; + if (!statementsForTable2) { + newStatements[tableName2] = prepareSQLiteRecreateTable(json2.tables[tableName2], action); + continue; + } + if (data.columnsFrom.length === 1 && statementsForTable2.some( + (st) => st.type === "sqlite_alter_table_add_column" && st.column.name === data.columnsFrom[0] + )) { + continue; + } + if (!statementsForTable2.some(({ type }) => type === "recreate_table")) { + const wasRename = statementsForTable2.some(({ type }) => type === "rename_table"); + const preparedStatements = prepareSQLiteRecreateTable(json2.tables[tableName2], action); + if (wasRename) { + newStatements[tableName2].push(...preparedStatements); + } else { + newStatements[tableName2] = preparedStatements; + } + continue; + } + continue; + } + const tableName = statement.type === "rename_table" ? statement.tableNameTo : statement.tableName; + const statementsForTable = newStatements[tableName]; + if (!statementsForTable) { + newStatements[tableName] = [statement]; + continue; + } + if (!statementsForTable.some(({ type }) => type === "recreate_table")) { + newStatements[tableName].push(statement); + } + } + const combinedStatements = Object.values(newStatements).flat(); + const renamedTables = combinedStatements.filter((it) => it.type === "rename_table"); + const renamedColumns = combinedStatements.filter((it) => it.type === "alter_table_rename_column"); + const rest = combinedStatements.filter((it) => it.type !== "rename_table" && it.type !== "alter_table_rename_column"); + return [...renamedTables, ...renamedColumns, ...rest]; + }; + prepareSingleStoreRecreateTable = (table6) => { + const { name, columns, uniqueConstraints, indexes, compositePrimaryKeys } = table6; + const composites = Object.values(compositePrimaryKeys); + const statements = [ + { + type: "singlestore_recreate_table", + tableName: name, + columns: Object.values(columns), + compositePKs: composites, + uniqueConstraints: Object.values(uniqueConstraints) + } + ]; + if (Object.keys(indexes).length) { + statements.push(...prepareCreateIndexesJson(name, "", indexes)); + } + return statements; + }; + singleStoreCombineStatements = (statements, json2) => { + const newStatements = {}; + for (const statement of statements) { + if (statement.type === "alter_table_alter_column_set_type" || statement.type === "alter_table_alter_column_set_notnull" || statement.type === "alter_table_alter_column_drop_notnull" || statement.type === "alter_table_alter_column_drop_autoincrement" || statement.type === "alter_table_alter_column_set_autoincrement" || statement.type === "alter_table_alter_column_drop_pk" || statement.type === "alter_table_alter_column_set_pk" || statement.type === "create_composite_pk" || statement.type === "alter_composite_pk" || statement.type === "delete_composite_pk") { + const tableName2 = statement.tableName; + const statementsForTable2 = newStatements[tableName2]; + if (!statementsForTable2) { + newStatements[tableName2] = prepareSingleStoreRecreateTable(json2.tables[tableName2]); + continue; + } + if (!statementsForTable2.some(({ type }) => type === "recreate_table")) { + const wasRename = statementsForTable2.some( + ({ type }) => type === "rename_table" || type === "alter_table_rename_column" + ); + const preparedStatements = prepareSingleStoreRecreateTable(json2.tables[tableName2]); + if (wasRename) { + newStatements[tableName2].push(...preparedStatements); + } else { + newStatements[tableName2] = preparedStatements; + } + continue; + } + continue; + } + if ((statement.type === "alter_table_alter_column_drop_default" || statement.type === "alter_table_alter_column_set_default") && statement.columnNotNull) { + const tableName2 = statement.tableName; + const statementsForTable2 = newStatements[tableName2]; + if (!statementsForTable2) { + newStatements[tableName2] = prepareSingleStoreRecreateTable(json2.tables[tableName2]); + continue; + } + if (!statementsForTable2.some(({ type }) => type === "recreate_table")) { + const wasRename = statementsForTable2.some(({ type }) => type === "rename_table"); + const preparedStatements = prepareSingleStoreRecreateTable(json2.tables[tableName2]); + if (wasRename) { + newStatements[tableName2].push(...preparedStatements); + } else { + newStatements[tableName2] = preparedStatements; + } + continue; + } + continue; + } + if (statement.type === "alter_table_add_column" && statement.column.primaryKey) { + const tableName2 = statement.tableName; + const statementsForTable2 = newStatements[tableName2]; + if (!statementsForTable2) { + newStatements[tableName2] = prepareSingleStoreRecreateTable(json2.tables[tableName2]); + continue; + } + if (!statementsForTable2.some(({ type }) => type === "recreate_table")) { + const wasRename = statementsForTable2.some(({ type }) => type === "rename_table"); + const preparedStatements = prepareSingleStoreRecreateTable(json2.tables[tableName2]); + if (wasRename) { + newStatements[tableName2].push(...preparedStatements); + } else { + newStatements[tableName2] = preparedStatements; + } + continue; + } + continue; + } + const tableName = statement.type === "rename_table" ? statement.tableNameTo : statement.tableName; + const statementsForTable = newStatements[tableName]; + if (!statementsForTable) { + newStatements[tableName] = [statement]; + continue; + } + if (!statementsForTable.some(({ type }) => type === "singlestore_recreate_table")) { + newStatements[tableName].push(statement); + } + } + const combinedStatements = Object.values(newStatements).flat(); + const renamedTables = combinedStatements.filter((it) => it.type === "rename_table"); + const renamedColumns = combinedStatements.filter((it) => it.type === "alter_table_rename_column"); + const rest = combinedStatements.filter((it) => it.type !== "rename_table" && it.type !== "alter_table_rename_column"); + return [...renamedTables, ...renamedColumns, ...rest]; + }; + } +}); + +// src/snapshotsDiffer.ts +var makeChanged, makeSelfOrChanged, makePatched, columnSchema, alteredColumnSchema, enumSchema3, changedEnumSchema, tableScheme, alteredTableScheme, alteredViewCommon, alteredPgViewSchema, alteredMySqlViewSchema, diffResultScheme, diffResultSchemeMysql, diffResultSchemeSingleStore, diffResultSchemeSQLite, schemaChangeFor, nameChangeFor, nameSchemaChangeFor, columnChangeFor, applyPgSnapshotsDiff, applyMysqlSnapshotsDiff, applySingleStoreSnapshotsDiff, applySqliteSnapshotsDiff, applyLibSQLSnapshotsDiff; +var init_snapshotsDiffer = __esm({ + "src/snapshotsDiffer.ts"() { + "use strict"; + init_esm(); + init_jsonDiffer(); + init_sqlgenerator(); + init_jsonStatements(); + init_global(); + init_mysqlSchema(); + init_pgSchema(); + init_singlestoreSchema(); + init_sqliteSchema(); + init_statementCombiner(); + init_utils2(); + makeChanged = (schema6) => { + return objectType({ + type: enumType(["changed"]), + old: schema6, + new: schema6 + }); + }; + makeSelfOrChanged = (schema6) => { + return unionType([ + schema6, + objectType({ + type: enumType(["changed"]), + old: schema6, + new: schema6 + }) + ]); + }; + makePatched = (schema6) => { + return unionType([ + objectType({ + type: literalType("added"), + value: schema6 + }), + objectType({ + type: literalType("deleted"), + value: schema6 + }), + objectType({ + type: literalType("changed"), + old: schema6, + new: schema6 + }) + ]); + }; + columnSchema = objectType({ + name: stringType(), + type: stringType(), + typeSchema: stringType().optional(), + primaryKey: booleanType().optional(), + default: anyType().optional(), + notNull: booleanType().optional(), + // should it be optional? should if be here? + autoincrement: booleanType().optional(), + onUpdate: booleanType().optional(), + isUnique: anyType().optional(), + uniqueName: stringType().optional(), + nullsNotDistinct: booleanType().optional(), + generated: objectType({ + as: stringType(), + type: enumType(["stored", "virtual"]).default("stored") + }).optional(), + identity: stringType().optional() + }).strict(); + alteredColumnSchema = objectType({ + name: makeSelfOrChanged(stringType()), + type: makeChanged(stringType()).optional(), + default: makePatched(anyType()).optional(), + primaryKey: makePatched(booleanType()).optional(), + notNull: makePatched(booleanType()).optional(), + typeSchema: makePatched(stringType()).optional(), + onUpdate: makePatched(booleanType()).optional(), + autoincrement: makePatched(booleanType()).optional(), + generated: makePatched( + objectType({ + as: stringType(), + type: enumType(["stored", "virtual"]).default("stored") + }) + ).optional(), + identity: makePatched(stringType()).optional() + }).strict(); + enumSchema3 = objectType({ + name: stringType(), + schema: stringType(), + values: arrayType(stringType()) + }).strict(); + changedEnumSchema = objectType({ + name: stringType(), + schema: stringType(), + addedValues: objectType({ + before: stringType(), + value: stringType() + }).array(), + deletedValues: arrayType(stringType()) + }).strict(); + tableScheme = objectType({ + name: stringType(), + schema: stringType().default(""), + columns: recordType(stringType(), columnSchema), + indexes: recordType(stringType(), stringType()), + foreignKeys: recordType(stringType(), stringType()), + compositePrimaryKeys: recordType(stringType(), stringType()).default({}), + uniqueConstraints: recordType(stringType(), stringType()).default({}), + policies: recordType(stringType(), stringType()).default({}), + checkConstraints: recordType(stringType(), stringType()).default({}), + isRLSEnabled: booleanType().default(false) + }).strict(); + alteredTableScheme = objectType({ + name: stringType(), + schema: stringType(), + altered: alteredColumnSchema.array(), + addedIndexes: recordType(stringType(), stringType()), + deletedIndexes: recordType(stringType(), stringType()), + alteredIndexes: recordType( + stringType(), + objectType({ + __new: stringType(), + __old: stringType() + }).strict() + ), + addedForeignKeys: recordType(stringType(), stringType()), + deletedForeignKeys: recordType(stringType(), stringType()), + alteredForeignKeys: recordType( + stringType(), + objectType({ + __new: stringType(), + __old: stringType() + }).strict() + ), + addedCompositePKs: recordType(stringType(), stringType()), + deletedCompositePKs: recordType(stringType(), stringType()), + alteredCompositePKs: recordType( + stringType(), + objectType({ + __new: stringType(), + __old: stringType() + }) + ), + addedUniqueConstraints: recordType(stringType(), stringType()), + deletedUniqueConstraints: recordType(stringType(), stringType()), + alteredUniqueConstraints: recordType( + stringType(), + objectType({ + __new: stringType(), + __old: stringType() + }) + ), + addedPolicies: recordType(stringType(), stringType()), + deletedPolicies: recordType(stringType(), stringType()), + alteredPolicies: recordType( + stringType(), + objectType({ + __new: stringType(), + __old: stringType() + }) + ), + addedCheckConstraints: recordType( + stringType(), + stringType() + ), + deletedCheckConstraints: recordType( + stringType(), + stringType() + ), + alteredCheckConstraints: recordType( + stringType(), + objectType({ + __new: stringType(), + __old: stringType() + }) + ) + }).strict(); + alteredViewCommon = objectType({ + name: stringType(), + alteredDefinition: objectType({ + __old: stringType(), + __new: stringType() + }).strict().optional(), + alteredExisting: objectType({ + __old: booleanType(), + __new: booleanType() + }).strict().optional() + }); + alteredPgViewSchema = alteredViewCommon.merge( + objectType({ + schema: stringType(), + deletedWithOption: mergedViewWithOption.optional(), + addedWithOption: mergedViewWithOption.optional(), + addedWith: mergedViewWithOption.optional(), + deletedWith: mergedViewWithOption.optional(), + alteredWith: mergedViewWithOption.optional(), + alteredSchema: objectType({ + __old: stringType(), + __new: stringType() + }).strict().optional(), + alteredTablespace: objectType({ + __old: stringType(), + __new: stringType() + }).strict().optional(), + alteredUsing: objectType({ + __old: stringType(), + __new: stringType() + }).strict().optional() + }).strict() + ); + alteredMySqlViewSchema = alteredViewCommon.merge( + objectType({ + alteredMeta: objectType({ + __old: stringType(), + __new: stringType() + }).strict().optional() + }).strict() + ); + diffResultScheme = objectType({ + alteredTablesWithColumns: alteredTableScheme.array(), + alteredEnums: changedEnumSchema.array(), + alteredSequences: sequenceSquashed.array(), + alteredRoles: roleSchema.array(), + alteredPolicies: policySquashed.array(), + alteredViews: alteredPgViewSchema.array() + }).strict(); + diffResultSchemeMysql = objectType({ + alteredTablesWithColumns: alteredTableScheme.array(), + alteredEnums: neverType().array(), + alteredViews: alteredMySqlViewSchema.array() + }); + diffResultSchemeSingleStore = objectType({ + alteredTablesWithColumns: alteredTableScheme.array(), + alteredEnums: neverType().array() + }); + diffResultSchemeSQLite = objectType({ + alteredTablesWithColumns: alteredTableScheme.array(), + alteredEnums: neverType().array(), + alteredViews: alteredViewCommon.array() + }); + schemaChangeFor = (table6, renamedSchemas) => { + for (let ren of renamedSchemas) { + if (table6.schema === ren.from.name) { + return { key: `${ren.to.name}.${table6.name}`, schema: ren.to.name }; + } + } + return { + key: `${table6.schema || "public"}.${table6.name}`, + schema: table6.schema + }; + }; + nameChangeFor = (table6, renamed) => { + for (let ren of renamed) { + if (table6.name === ren.from.name) { + return { name: ren.to.name }; + } + } + return { + name: table6.name + }; + }; + nameSchemaChangeFor = (table6, renamedTables) => { + for (let ren of renamedTables) { + if (table6.name === ren.from.name && table6.schema === ren.from.schema) { + return { + key: `${ren.to.schema || "public"}.${ren.to.name}`, + name: ren.to.name, + schema: ren.to.schema + }; + } + } + return { + key: `${table6.schema || "public"}.${table6.name}`, + name: table6.name, + schema: table6.schema + }; + }; + columnChangeFor = (column11, renamedColumns) => { + for (let ren of renamedColumns) { + if (column11 === ren.from.name) { + return ren.to.name; + } + } + return column11; + }; + applyPgSnapshotsDiff = async (json1, json2, schemasResolver2, enumsResolver2, sequencesResolver2, policyResolver2, indPolicyResolver2, roleResolver2, tablesResolver2, columnsResolver2, viewsResolver2, prevFull, curFull, action) => { + const schemasDiff = diffSchemasOrTables(json1.schemas, json2.schemas); + const { + created: createdSchemas, + deleted: deletedSchemas, + renamed: renamedSchemas + } = await schemasResolver2({ + created: schemasDiff.added.map((it) => ({ name: it })), + deleted: schemasDiff.deleted.map((it) => ({ name: it })) + }); + const schemasPatchedSnap1 = copy(json1); + schemasPatchedSnap1.tables = mapEntries( + schemasPatchedSnap1.tables, + (_3, it) => { + const { key, schema: schema6 } = schemaChangeFor(it, renamedSchemas); + it.schema = schema6; + return [key, it]; + } + ); + schemasPatchedSnap1.enums = mapEntries(schemasPatchedSnap1.enums, (_3, it) => { + const { key, schema: schema6 } = schemaChangeFor(it, renamedSchemas); + it.schema = schema6; + return [key, it]; + }); + const enumsDiff = diffSchemasOrTables(schemasPatchedSnap1.enums, json2.enums); + const { + created: createdEnums, + deleted: deletedEnums, + renamed: renamedEnums, + moved: movedEnums + } = await enumsResolver2({ + created: enumsDiff.added, + deleted: enumsDiff.deleted + }); + schemasPatchedSnap1.enums = mapEntries(schemasPatchedSnap1.enums, (_3, it) => { + const { key, name, schema: schema6 } = nameSchemaChangeFor(it, renamedEnums); + it.name = name; + it.schema = schema6; + return [key, it]; + }); + const columnTypesChangeMap = renamedEnums.reduce( + (acc, it) => { + acc[`${it.from.schema}.${it.from.name}`] = { + nameFrom: it.from.name, + nameTo: it.to.name, + schemaFrom: it.from.schema, + schemaTo: it.to.schema + }; + return acc; + }, + {} + ); + const columnTypesMovesMap = movedEnums.reduce( + (acc, it) => { + acc[`${it.schemaFrom}.${it.name}`] = { + nameFrom: it.name, + nameTo: it.name, + schemaFrom: it.schemaFrom, + schemaTo: it.schemaTo + }; + return acc; + }, + {} + ); + schemasPatchedSnap1.tables = mapEntries( + schemasPatchedSnap1.tables, + (tableKey2, tableValue) => { + const patchedColumns = mapValues(tableValue.columns, (column11) => { + const key = `${column11.typeSchema || "public"}.${column11.type}`; + const change = columnTypesChangeMap[key] || columnTypesMovesMap[key]; + if (change) { + column11.type = change.nameTo; + column11.typeSchema = change.schemaTo; + } + return column11; + }); + tableValue.columns = patchedColumns; + return [tableKey2, tableValue]; + } + ); + schemasPatchedSnap1.sequences = mapEntries( + schemasPatchedSnap1.sequences, + (_3, it) => { + const { key, schema: schema6 } = schemaChangeFor(it, renamedSchemas); + it.schema = schema6; + return [key, it]; + } + ); + const sequencesDiff = diffSchemasOrTables( + schemasPatchedSnap1.sequences, + json2.sequences + ); + const { + created: createdSequences, + deleted: deletedSequences, + renamed: renamedSequences, + moved: movedSequences + } = await sequencesResolver2({ + created: sequencesDiff.added, + deleted: sequencesDiff.deleted + }); + schemasPatchedSnap1.sequences = mapEntries( + schemasPatchedSnap1.sequences, + (_3, it) => { + const { key, name, schema: schema6 } = nameSchemaChangeFor(it, renamedSequences); + it.name = name; + it.schema = schema6; + return [key, it]; + } + ); + const sequencesChangeMap = renamedSequences.reduce( + (acc, it) => { + acc[`${it.from.schema}.${it.from.name}`] = { + nameFrom: it.from.name, + nameTo: it.to.name, + schemaFrom: it.from.schema, + schemaTo: it.to.schema + }; + return acc; + }, + {} + ); + const sequencesMovesMap = movedSequences.reduce( + (acc, it) => { + acc[`${it.schemaFrom}.${it.name}`] = { + nameFrom: it.name, + nameTo: it.name, + schemaFrom: it.schemaFrom, + schemaTo: it.schemaTo + }; + return acc; + }, + {} + ); + schemasPatchedSnap1.tables = mapEntries( + schemasPatchedSnap1.tables, + (tableKey2, tableValue) => { + const patchedColumns = mapValues(tableValue.columns, (column11) => { + const key = `${column11.typeSchema || "public"}.${column11.type}`; + const change = sequencesChangeMap[key] || sequencesMovesMap[key]; + if (change) { + column11.type = change.nameTo; + column11.typeSchema = change.schemaTo; + } + return column11; + }); + tableValue.columns = patchedColumns; + return [tableKey2, tableValue]; + } + ); + const rolesDiff = diffSchemasOrTables( + schemasPatchedSnap1.roles, + json2.roles + ); + const { + created: createdRoles, + deleted: deletedRoles, + renamed: renamedRoles + } = await roleResolver2({ + created: rolesDiff.added, + deleted: rolesDiff.deleted + }); + schemasPatchedSnap1.roles = mapEntries( + schemasPatchedSnap1.roles, + (_3, it) => { + const { name } = nameChangeFor(it, renamedRoles); + it.name = name; + return [name, it]; + } + ); + const rolesChangeMap = renamedRoles.reduce( + (acc, it) => { + acc[it.from.name] = { + nameFrom: it.from.name, + nameTo: it.to.name + }; + return acc; + }, + {} + ); + schemasPatchedSnap1.roles = mapEntries( + schemasPatchedSnap1.roles, + (roleKey, roleValue) => { + const key = roleKey; + const change = rolesChangeMap[key]; + if (change) { + roleValue.name = change.nameTo; + } + return [roleKey, roleValue]; + } + ); + const tablesDiff = diffSchemasOrTables( + schemasPatchedSnap1.tables, + json2.tables + ); + const { + created: createdTables, + deleted: deletedTables, + moved: movedTables, + renamed: renamedTables + // renamed or moved + } = await tablesResolver2({ + created: tablesDiff.added, + deleted: tablesDiff.deleted + }); + const tablesPatchedSnap1 = copy(schemasPatchedSnap1); + tablesPatchedSnap1.tables = mapEntries(tablesPatchedSnap1.tables, (_3, it) => { + const { key, name, schema: schema6 } = nameSchemaChangeFor(it, renamedTables); + it.name = name; + it.schema = schema6; + return [key, it]; + }); + const res = diffColumns(tablesPatchedSnap1.tables, json2.tables); + const columnRenames = []; + const columnCreates = []; + const columnDeletes = []; + for (let entry of Object.values(res)) { + const { renamed, created: created2, deleted: deleted2 } = await columnsResolver2({ + tableName: entry.name, + schema: entry.schema, + deleted: entry.columns.deleted, + created: entry.columns.added + }); + if (created2.length > 0) { + columnCreates.push({ + table: entry.name, + schema: entry.schema, + columns: created2 + }); + } + if (deleted2.length > 0) { + columnDeletes.push({ + table: entry.name, + schema: entry.schema, + columns: deleted2 + }); + } + if (renamed.length > 0) { + columnRenames.push({ + table: entry.name, + schema: entry.schema, + renames: renamed + }); + } + } + const columnRenamesDict = columnRenames.reduce( + (acc, it) => { + acc[`${it.schema || "public"}.${it.table}`] = it.renames; + return acc; + }, + {} + ); + const columnsPatchedSnap1 = copy(tablesPatchedSnap1); + columnsPatchedSnap1.tables = mapEntries( + columnsPatchedSnap1.tables, + (tableKey2, tableValue) => { + const patchedColumns = mapKeys( + tableValue.columns, + (columnKey, column11) => { + const rens = columnRenamesDict[`${tableValue.schema || "public"}.${tableValue.name}`] || []; + const newName = columnChangeFor(columnKey, rens); + column11.name = newName; + return newName; + } + ); + tableValue.columns = patchedColumns; + return [tableKey2, tableValue]; + } + ); + const policyRes = diffPolicies(tablesPatchedSnap1.tables, json2.tables); + const policyRenames = []; + const policyCreates = []; + const policyDeletes = []; + for (let entry of Object.values(policyRes)) { + const { renamed, created: created2, deleted: deleted2 } = await policyResolver2({ + tableName: entry.name, + schema: entry.schema, + deleted: entry.policies.deleted.map( + action === "push" ? PgSquasher.unsquashPolicyPush : PgSquasher.unsquashPolicy + ), + created: entry.policies.added.map(action === "push" ? PgSquasher.unsquashPolicyPush : PgSquasher.unsquashPolicy) + }); + if (created2.length > 0) { + policyCreates.push({ + table: entry.name, + schema: entry.schema, + columns: created2 + }); + } + if (deleted2.length > 0) { + policyDeletes.push({ + table: entry.name, + schema: entry.schema, + columns: deleted2 + }); + } + if (renamed.length > 0) { + policyRenames.push({ + table: entry.name, + schema: entry.schema, + renames: renamed + }); + } + } + const policyRenamesDict = columnRenames.reduce( + (acc, it) => { + acc[`${it.schema || "public"}.${it.table}`] = it.renames; + return acc; + }, + {} + ); + const policyPatchedSnap1 = copy(tablesPatchedSnap1); + policyPatchedSnap1.tables = mapEntries( + policyPatchedSnap1.tables, + (tableKey2, tableValue) => { + const patchedPolicies = mapKeys( + tableValue.policies, + (policyKey, policy5) => { + const rens = policyRenamesDict[`${tableValue.schema || "public"}.${tableValue.name}`] || []; + const newName = columnChangeFor(policyKey, rens); + const unsquashedPolicy = action === "push" ? PgSquasher.unsquashPolicyPush(policy5) : PgSquasher.unsquashPolicy(policy5); + unsquashedPolicy.name = newName; + policy5 = PgSquasher.squashPolicy(unsquashedPolicy); + return newName; + } + ); + tableValue.policies = patchedPolicies; + return [tableKey2, tableValue]; + } + ); + const indPolicyRes = diffIndPolicies(policyPatchedSnap1.policies, json2.policies); + const indPolicyCreates = []; + const indPolicyDeletes = []; + const { renamed: indPolicyRenames, created, deleted } = await indPolicyResolver2({ + deleted: indPolicyRes.deleted.map( + (t4) => action === "push" ? PgSquasher.unsquashPolicyPush(t4.values) : PgSquasher.unsquashPolicy(t4.values) + ), + created: indPolicyRes.added.map( + (t4) => action === "push" ? PgSquasher.unsquashPolicyPush(t4.values) : PgSquasher.unsquashPolicy(t4.values) + ) + }); + if (created.length > 0) { + indPolicyCreates.push({ + policies: created + }); + } + if (deleted.length > 0) { + indPolicyDeletes.push({ + policies: deleted + }); + } + const indPolicyRenamesDict = indPolicyRenames.reduce( + (acc, it) => { + acc[it.from.name] = { + nameFrom: it.from.name, + nameTo: it.to.name + }; + return acc; + }, + {} + ); + const indPolicyPatchedSnap1 = copy(policyPatchedSnap1); + indPolicyPatchedSnap1.policies = mapEntries( + indPolicyPatchedSnap1.policies, + (policyKey, policyValue) => { + const key = policyKey; + const change = indPolicyRenamesDict[key]; + if (change) { + policyValue.name = change.nameTo; + } + return [policyKey, policyValue]; + } + ); + const viewsDiff = diffSchemasOrTables(indPolicyPatchedSnap1.views, json2.views); + const { + created: createdViews, + deleted: deletedViews, + renamed: renamedViews, + moved: movedViews + } = await viewsResolver2({ + created: viewsDiff.added, + deleted: viewsDiff.deleted + }); + const renamesViewDic = {}; + renamedViews.forEach((it) => { + renamesViewDic[`${it.from.schema}.${it.from.name}`] = { to: it.to.name, from: it.from.name }; + }); + const movedViewDic = {}; + movedViews.forEach((it) => { + movedViewDic[`${it.schemaFrom}.${it.name}`] = { to: it.schemaTo, from: it.schemaFrom }; + }); + const viewsPatchedSnap1 = copy(policyPatchedSnap1); + viewsPatchedSnap1.views = mapEntries( + viewsPatchedSnap1.views, + (viewKey, viewValue) => { + const rename = renamesViewDic[`${viewValue.schema}.${viewValue.name}`]; + const moved = movedViewDic[`${viewValue.schema}.${viewValue.name}`]; + if (rename) { + viewValue.name = rename.to; + viewKey = `${viewValue.schema}.${viewValue.name}`; + } + if (moved) viewKey = `${moved.to}.${viewValue.name}`; + return [viewKey, viewValue]; + } + ); + const diffResult = applyJsonDiff(viewsPatchedSnap1, json2); + const typedResult = diffResultScheme.parse(diffResult); + const jsonStatements = []; + const jsonCreateIndexesForCreatedTables = createdTables.map((it) => { + return preparePgCreateIndexesJson( + it.name, + it.schema, + it.indexes, + curFull, + action + ); + }).flat(); + const jsonDropTables = deletedTables.map((it) => { + return prepareDropTableJson(it); + }); + const jsonRenameTables = renamedTables.map((it) => { + return prepareRenameTableJson(it.from, it.to); + }); + const alteredTables = typedResult.alteredTablesWithColumns; + const jsonRenameColumnsStatements = []; + const jsonDropColumnsStatemets = []; + const jsonAddColumnsStatemets = []; + for (let it of columnRenames) { + jsonRenameColumnsStatements.push( + ...prepareRenameColumns(it.table, it.schema, it.renames) + ); + } + for (let it of columnDeletes) { + jsonDropColumnsStatemets.push( + ..._prepareDropColumns(it.table, it.schema, it.columns) + ); + } + for (let it of columnCreates) { + jsonAddColumnsStatemets.push( + ..._prepareAddColumns(it.table, it.schema, it.columns) + ); + } + const jsonAddedCompositePKs = []; + const jsonDeletedCompositePKs = []; + const jsonAlteredCompositePKs = []; + const jsonAddedUniqueConstraints = []; + const jsonDeletedUniqueConstraints = []; + const jsonAlteredUniqueConstraints = []; + const jsonSetTableSchemas = []; + if (movedTables) { + for (let it of movedTables) { + jsonSetTableSchemas.push({ + type: "alter_table_set_schema", + tableName: it.name, + schemaFrom: it.schemaFrom || "public", + schemaTo: it.schemaTo || "public" + }); + } + } + const jsonDeletedCheckConstraints = []; + const jsonCreatedCheckConstraints = []; + for (let it of alteredTables) { + let addedColumns; + for (const addedPkName of Object.keys(it.addedCompositePKs)) { + const addedPkColumns = it.addedCompositePKs[addedPkName]; + addedColumns = PgSquasher.unsquashPK(addedPkColumns); + } + let deletedColumns; + for (const deletedPkName of Object.keys(it.deletedCompositePKs)) { + const deletedPkColumns = it.deletedCompositePKs[deletedPkName]; + deletedColumns = PgSquasher.unsquashPK(deletedPkColumns); + } + const doPerformDeleteAndCreate = JSON.stringify(addedColumns ?? {}) !== JSON.stringify(deletedColumns ?? {}); + let addedCompositePKs = []; + let deletedCompositePKs = []; + let alteredCompositePKs = []; + if (doPerformDeleteAndCreate) { + addedCompositePKs = prepareAddCompositePrimaryKeyPg( + it.name, + it.schema, + it.addedCompositePKs, + curFull + ); + deletedCompositePKs = prepareDeleteCompositePrimaryKeyPg( + it.name, + it.schema, + it.deletedCompositePKs, + prevFull + ); + } + alteredCompositePKs = prepareAlterCompositePrimaryKeyPg( + it.name, + it.schema, + it.alteredCompositePKs, + prevFull, + curFull + ); + let addedUniqueConstraints = []; + let deletedUniqueConstraints = []; + let alteredUniqueConstraints = []; + let createCheckConstraints = []; + let deleteCheckConstraints = []; + addedUniqueConstraints = prepareAddUniqueConstraintPg( + it.name, + it.schema, + it.addedUniqueConstraints + ); + deletedUniqueConstraints = prepareDeleteUniqueConstraintPg( + it.name, + it.schema, + it.deletedUniqueConstraints + ); + if (it.alteredUniqueConstraints) { + const added = {}; + const deleted2 = {}; + for (const k3 of Object.keys(it.alteredUniqueConstraints)) { + added[k3] = it.alteredUniqueConstraints[k3].__new; + deleted2[k3] = it.alteredUniqueConstraints[k3].__old; + } + addedUniqueConstraints.push( + ...prepareAddUniqueConstraintPg(it.name, it.schema, added) + ); + deletedUniqueConstraints.push( + ...prepareDeleteUniqueConstraintPg(it.name, it.schema, deleted2) + ); + } + createCheckConstraints = prepareAddCheckConstraint(it.name, it.schema, it.addedCheckConstraints); + deleteCheckConstraints = prepareDeleteCheckConstraint( + it.name, + it.schema, + it.deletedCheckConstraints + ); + if (it.alteredCheckConstraints && action !== "push") { + const added = {}; + const deleted2 = {}; + for (const k3 of Object.keys(it.alteredCheckConstraints)) { + added[k3] = it.alteredCheckConstraints[k3].__new; + deleted2[k3] = it.alteredCheckConstraints[k3].__old; + } + createCheckConstraints.push(...prepareAddCheckConstraint(it.name, it.schema, added)); + deleteCheckConstraints.push(...prepareDeleteCheckConstraint(it.name, it.schema, deleted2)); + } + jsonCreatedCheckConstraints.push(...createCheckConstraints); + jsonDeletedCheckConstraints.push(...deleteCheckConstraints); + jsonAddedCompositePKs.push(...addedCompositePKs); + jsonDeletedCompositePKs.push(...deletedCompositePKs); + jsonAlteredCompositePKs.push(...alteredCompositePKs); + jsonAddedUniqueConstraints.push(...addedUniqueConstraints); + jsonDeletedUniqueConstraints.push(...deletedUniqueConstraints); + jsonAlteredUniqueConstraints.push(...alteredUniqueConstraints); + } + const rColumns = jsonRenameColumnsStatements.map((it) => { + const tableName = it.tableName; + const schema6 = it.schema; + return { + from: { schema: schema6, table: tableName, column: it.oldColumnName }, + to: { schema: schema6, table: tableName, column: it.newColumnName } + }; + }); + const jsonTableAlternations = alteredTables.map((it) => { + return preparePgAlterColumns( + it.name, + it.schema, + it.altered, + json2, + json1, + action + ); + }).flat(); + const jsonCreateIndexesFoAlteredTables = alteredTables.map((it) => { + return preparePgCreateIndexesJson( + it.name, + it.schema, + it.addedIndexes || {}, + curFull, + action + ); + }).flat(); + const jsonDropIndexesForAllAlteredTables = alteredTables.map((it) => { + return prepareDropIndexesJson( + it.name, + it.schema, + it.deletedIndexes || {} + ); + }).flat(); + const jsonCreatePoliciesStatements = []; + const jsonDropPoliciesStatements = []; + const jsonAlterPoliciesStatements = []; + const jsonRenamePoliciesStatements = []; + const jsonRenameIndPoliciesStatements = []; + const jsonCreateIndPoliciesStatements = []; + const jsonDropIndPoliciesStatements = []; + const jsonAlterIndPoliciesStatements = []; + const jsonEnableRLSStatements = []; + const jsonDisableRLSStatements = []; + for (let it of indPolicyRenames) { + jsonRenameIndPoliciesStatements.push( + ...prepareRenameIndPolicyJsons([it]) + ); + } + for (const it of indPolicyCreates) { + jsonCreateIndPoliciesStatements.push( + ...prepareCreateIndPolicyJsons( + it.policies + ) + ); + } + for (const it of indPolicyDeletes) { + jsonDropIndPoliciesStatements.push( + ...prepareDropIndPolicyJsons( + it.policies + ) + ); + } + typedResult.alteredPolicies.forEach(({ values }) => { + const policy5 = action === "push" ? PgSquasher.unsquashPolicyPush(values) : PgSquasher.unsquashPolicy(values); + const newPolicy = action === "push" ? PgSquasher.unsquashPolicyPush(json2.policies[policy5.name].values) : PgSquasher.unsquashPolicy(json2.policies[policy5.name].values); + const oldPolicy = action === "push" ? PgSquasher.unsquashPolicyPush(json2.policies[policy5.name].values) : PgSquasher.unsquashPolicy(json1.policies[policy5.name].values); + if (newPolicy.as !== oldPolicy.as) { + jsonDropIndPoliciesStatements.push( + ...prepareDropIndPolicyJsons( + [oldPolicy] + ) + ); + jsonCreateIndPoliciesStatements.push( + ...prepareCreateIndPolicyJsons( + [newPolicy] + ) + ); + return; + } + if (newPolicy.for !== oldPolicy.for) { + jsonDropIndPoliciesStatements.push( + ...prepareDropIndPolicyJsons( + [oldPolicy] + ) + ); + jsonCreateIndPoliciesStatements.push( + ...prepareCreateIndPolicyJsons( + [newPolicy] + ) + ); + return; + } + jsonAlterIndPoliciesStatements.push( + prepareAlterIndPolicyJson( + oldPolicy, + newPolicy + ) + ); + }); + for (let it of policyRenames) { + jsonRenamePoliciesStatements.push( + ...prepareRenamePolicyJsons(it.table, it.schema, it.renames) + ); + } + for (const it of policyCreates) { + jsonCreatePoliciesStatements.push( + ...prepareCreatePolicyJsons( + it.table, + it.schema, + it.columns + ) + ); + } + for (const it of policyDeletes) { + jsonDropPoliciesStatements.push( + ...prepareDropPolicyJsons( + it.table, + it.schema, + it.columns + ) + ); + } + alteredTables.forEach((it) => { + Object.keys(it.alteredPolicies).forEach((policyName) => { + const newPolicy = action === "push" ? PgSquasher.unsquashPolicyPush(it.alteredPolicies[policyName].__new) : PgSquasher.unsquashPolicy(it.alteredPolicies[policyName].__new); + const oldPolicy = action === "push" ? PgSquasher.unsquashPolicyPush(it.alteredPolicies[policyName].__old) : PgSquasher.unsquashPolicy(it.alteredPolicies[policyName].__old); + if (newPolicy.as !== oldPolicy.as) { + jsonDropPoliciesStatements.push( + ...prepareDropPolicyJsons( + it.name, + it.schema, + [oldPolicy] + ) + ); + jsonCreatePoliciesStatements.push( + ...prepareCreatePolicyJsons( + it.name, + it.schema, + [newPolicy] + ) + ); + return; + } + if (newPolicy.for !== oldPolicy.for) { + jsonDropPoliciesStatements.push( + ...prepareDropPolicyJsons( + it.name, + it.schema, + [oldPolicy] + ) + ); + jsonCreatePoliciesStatements.push( + ...prepareCreatePolicyJsons( + it.name, + it.schema, + [newPolicy] + ) + ); + return; + } + jsonAlterPoliciesStatements.push( + prepareAlterPolicyJson( + it.name, + it.schema, + it.alteredPolicies[policyName].__old, + it.alteredPolicies[policyName].__new + ) + ); + }); + for (const table6 of Object.values(json2.tables)) { + const policiesInCurrentState = Object.keys(table6.policies); + const tableInPreviousState = columnsPatchedSnap1.tables[`${table6.schema === "" ? "public" : table6.schema}.${table6.name}`]; + const policiesInPreviousState = tableInPreviousState ? Object.keys(tableInPreviousState.policies) : []; + if (policiesInPreviousState.length === 0 && policiesInCurrentState.length > 0 && !table6.isRLSEnabled) { + jsonEnableRLSStatements.push({ type: "enable_rls", tableName: table6.name, schema: table6.schema }); + } + if (policiesInPreviousState.length > 0 && policiesInCurrentState.length === 0 && !table6.isRLSEnabled) { + jsonDisableRLSStatements.push({ type: "disable_rls", tableName: table6.name, schema: table6.schema }); + } + const wasRlsEnabled = tableInPreviousState ? tableInPreviousState.isRLSEnabled : false; + if (table6.isRLSEnabled !== wasRlsEnabled) { + if (table6.isRLSEnabled) { + jsonEnableRLSStatements.push({ type: "enable_rls", tableName: table6.name, schema: table6.schema }); + } else if (!table6.isRLSEnabled && policiesInCurrentState.length === 0) { + jsonDisableRLSStatements.push({ type: "disable_rls", tableName: table6.name, schema: table6.schema }); + } + } + } + for (const table6 of Object.values(columnsPatchedSnap1.tables)) { + const tableInCurrentState = json2.tables[`${table6.schema === "" ? "public" : table6.schema}.${table6.name}`]; + if (tableInCurrentState === void 0 && !table6.isRLSEnabled) { + jsonDisableRLSStatements.push({ type: "disable_rls", tableName: table6.name, schema: table6.schema }); + } + } + const droppedIndexes = Object.keys(it.alteredIndexes).reduce( + (current, item) => { + current[item] = it.alteredIndexes[item].__old; + return current; + }, + {} + ); + const createdIndexes = Object.keys(it.alteredIndexes).reduce( + (current, item) => { + current[item] = it.alteredIndexes[item].__new; + return current; + }, + {} + ); + jsonCreateIndexesFoAlteredTables.push( + ...preparePgCreateIndexesJson( + it.name, + it.schema, + createdIndexes || {}, + curFull, + action + ) + ); + jsonDropIndexesForAllAlteredTables.push( + ...prepareDropIndexesJson(it.name, it.schema, droppedIndexes || {}) + ); + }); + const jsonCreateReferencesForCreatedTables = createdTables.map((it) => { + return prepareCreateReferencesJson(it.name, it.schema, it.foreignKeys); + }).flat(); + const jsonReferencesForAlteredTables = alteredTables.map((it) => { + const forAdded = prepareCreateReferencesJson( + it.name, + it.schema, + it.addedForeignKeys + ); + const forAltered = prepareDropReferencesJson( + it.name, + it.schema, + it.deletedForeignKeys + ); + const alteredFKs = prepareAlterReferencesJson( + it.name, + it.schema, + it.alteredForeignKeys + ); + return [...forAdded, ...forAltered, ...alteredFKs]; + }).flat(); + const jsonCreatedReferencesForAlteredTables = jsonReferencesForAlteredTables.filter( + (t4) => t4.type === "create_reference" + ); + const jsonDroppedReferencesForAlteredTables = jsonReferencesForAlteredTables.filter( + (t4) => t4.type === "delete_reference" + ); + const createEnums = createdEnums.map((it) => { + return prepareCreateEnumJson(it.name, it.schema, it.values); + }) ?? []; + const dropEnums = deletedEnums.map((it) => { + return prepareDropEnumJson(it.name, it.schema); + }); + const moveEnums = movedEnums.map((it) => { + return prepareMoveEnumJson(it.name, it.schemaFrom, it.schemaTo); + }); + const renameEnums = renamedEnums.map((it) => { + return prepareRenameEnumJson(it.from.name, it.to.name, it.to.schema); + }); + const jsonAlterEnumsWithAddedValues = typedResult.alteredEnums.map((it) => { + return prepareAddValuesToEnumJson(it.name, it.schema, it.addedValues); + }).flat() ?? []; + const jsonAlterEnumsWithDroppedValues = typedResult.alteredEnums.map((it) => { + return prepareDropEnumValues(it.name, it.schema, it.deletedValues, curFull); + }).flat() ?? []; + const createSequences = createdSequences.map((it) => { + return prepareCreateSequenceJson(it); + }) ?? []; + const dropSequences = deletedSequences.map((it) => { + return prepareDropSequenceJson(it.name, it.schema); + }); + const moveSequences = movedSequences.map((it) => { + return prepareMoveSequenceJson(it.name, it.schemaFrom, it.schemaTo); + }); + const renameSequences = renamedSequences.map((it) => { + return prepareRenameSequenceJson(it.from.name, it.to.name, it.to.schema); + }); + const jsonAlterSequences = typedResult.alteredSequences.map((it) => { + return prepareAlterSequenceJson(it); + }).flat() ?? []; + const createRoles = createdRoles.map((it) => { + return prepareCreateRoleJson(it); + }) ?? []; + const dropRoles = deletedRoles.map((it) => { + return prepareDropRoleJson(it.name); + }); + const renameRoles = renamedRoles.map((it) => { + return prepareRenameRoleJson(it.from.name, it.to.name); + }); + const jsonAlterRoles = typedResult.alteredRoles.map((it) => { + return prepareAlterRoleJson(it); + }).flat() ?? []; + const createSchemas = prepareCreateSchemasJson( + createdSchemas.map((it) => it.name) + ); + const renameSchemas = prepareRenameSchemasJson( + renamedSchemas.map((it) => ({ from: it.from.name, to: it.to.name })) + ); + const dropSchemas = prepareDeleteSchemasJson( + deletedSchemas.map((it) => it.name) + ); + const createTables = createdTables.map((it) => { + return preparePgCreateTableJson(it, curFull); + }); + jsonCreatePoliciesStatements.push(...[].concat( + ...createdTables.map( + (it) => prepareCreatePolicyJsons( + it.name, + it.schema, + Object.values(it.policies).map(action === "push" ? PgSquasher.unsquashPolicyPush : PgSquasher.unsquashPolicy) + ) + ) + )); + const createViews = []; + const dropViews = []; + const renameViews = []; + const alterViews = []; + createViews.push( + ...createdViews.filter((it) => !it.isExisting).map((it) => { + return preparePgCreateViewJson( + it.name, + it.schema, + it.definition, + it.materialized, + it.withNoData, + it.with, + it.using, + it.tablespace + ); + }) + ); + dropViews.push( + ...deletedViews.filter((it) => !it.isExisting).map((it) => { + return prepareDropViewJson(it.name, it.schema, it.materialized); + }) + ); + renameViews.push( + ...renamedViews.filter((it) => !it.to.isExisting && !json1.views[`${it.from.schema}.${it.from.name}`].isExisting).map((it) => { + return prepareRenameViewJson(it.to.name, it.from.name, it.to.schema, it.to.materialized); + }) + ); + alterViews.push( + ...movedViews.filter( + (it) => !json2.views[`${it.schemaTo}.${it.name}`].isExisting && !json1.views[`${it.schemaFrom}.${it.name}`].isExisting + ).map((it) => { + return preparePgAlterViewAlterSchemaJson( + it.schemaTo, + it.schemaFrom, + it.name, + json2.views[`${it.schemaTo}.${it.name}`].materialized + ); + }) + ); + const alteredViews = typedResult.alteredViews.filter((it) => !json2.views[`${it.schema}.${it.name}`].isExisting); + for (const alteredView of alteredViews) { + const viewKey = `${alteredView.schema}.${alteredView.name}`; + const { materialized, with: withOption, definition, withNoData, using, tablespace } = json2.views[viewKey]; + if (alteredView.alteredExisting || alteredView.alteredDefinition && action !== "push") { + dropViews.push(prepareDropViewJson(alteredView.name, alteredView.schema, materialized)); + createViews.push( + preparePgCreateViewJson( + alteredView.name, + alteredView.schema, + definition, + materialized, + withNoData, + withOption, + using, + tablespace + ) + ); + continue; + } + if (alteredView.addedWithOption) { + alterViews.push( + preparePgAlterViewAddWithOptionJson( + alteredView.name, + alteredView.schema, + materialized, + alteredView.addedWithOption + ) + ); + } + if (alteredView.deletedWithOption) { + alterViews.push( + preparePgAlterViewDropWithOptionJson( + alteredView.name, + alteredView.schema, + materialized, + alteredView.deletedWithOption + ) + ); + } + if (alteredView.addedWith) { + alterViews.push( + preparePgAlterViewAddWithOptionJson( + alteredView.name, + alteredView.schema, + materialized, + alteredView.addedWith + ) + ); + } + if (alteredView.deletedWith) { + alterViews.push( + preparePgAlterViewDropWithOptionJson( + alteredView.name, + alteredView.schema, + materialized, + alteredView.deletedWith + ) + ); + } + if (alteredView.alteredWith) { + alterViews.push( + preparePgAlterViewAddWithOptionJson( + alteredView.name, + alteredView.schema, + materialized, + alteredView.alteredWith + ) + ); + } + if (alteredView.alteredTablespace) { + alterViews.push( + preparePgAlterViewAlterTablespaceJson( + alteredView.name, + alteredView.schema, + materialized, + alteredView.alteredTablespace.__new + ) + ); + } + if (alteredView.alteredUsing) { + alterViews.push( + preparePgAlterViewAlterUsingJson( + alteredView.name, + alteredView.schema, + materialized, + alteredView.alteredUsing.__new + ) + ); + } + } + jsonStatements.push(...createSchemas); + jsonStatements.push(...renameSchemas); + jsonStatements.push(...createEnums); + jsonStatements.push(...moveEnums); + jsonStatements.push(...renameEnums); + jsonStatements.push(...jsonAlterEnumsWithAddedValues); + jsonStatements.push(...createSequences); + jsonStatements.push(...moveSequences); + jsonStatements.push(...renameSequences); + jsonStatements.push(...jsonAlterSequences); + jsonStatements.push(...renameRoles); + jsonStatements.push(...dropRoles); + jsonStatements.push(...createRoles); + jsonStatements.push(...jsonAlterRoles); + jsonStatements.push(...createTables); + jsonStatements.push(...jsonEnableRLSStatements); + jsonStatements.push(...jsonDisableRLSStatements); + jsonStatements.push(...dropViews); + jsonStatements.push(...renameViews); + jsonStatements.push(...alterViews); + jsonStatements.push(...jsonDropTables); + jsonStatements.push(...jsonSetTableSchemas); + jsonStatements.push(...jsonRenameTables); + jsonStatements.push(...jsonRenameColumnsStatements); + jsonStatements.push(...jsonDeletedUniqueConstraints); + jsonStatements.push(...jsonDeletedCheckConstraints); + jsonStatements.push(...jsonDroppedReferencesForAlteredTables); + jsonStatements.push(...jsonAlterEnumsWithDroppedValues); + jsonStatements.push(...jsonDropIndexesForAllAlteredTables); + jsonStatements.push(...jsonDeletedCompositePKs); + jsonStatements.push(...jsonTableAlternations); + jsonStatements.push(...jsonAddedCompositePKs); + jsonStatements.push(...jsonAddColumnsStatemets); + jsonStatements.push(...jsonCreateReferencesForCreatedTables); + jsonStatements.push(...jsonCreateIndexesForCreatedTables); + jsonStatements.push(...jsonCreatedReferencesForAlteredTables); + jsonStatements.push(...jsonCreateIndexesFoAlteredTables); + jsonStatements.push(...jsonDropColumnsStatemets); + jsonStatements.push(...jsonAlteredCompositePKs); + jsonStatements.push(...jsonAddedUniqueConstraints); + jsonStatements.push(...jsonCreatedCheckConstraints); + jsonStatements.push(...jsonAlteredUniqueConstraints); + jsonStatements.push(...createViews); + jsonStatements.push(...jsonRenamePoliciesStatements); + jsonStatements.push(...jsonDropPoliciesStatements); + jsonStatements.push(...jsonCreatePoliciesStatements); + jsonStatements.push(...jsonAlterPoliciesStatements); + jsonStatements.push(...jsonRenameIndPoliciesStatements); + jsonStatements.push(...jsonDropIndPoliciesStatements); + jsonStatements.push(...jsonCreateIndPoliciesStatements); + jsonStatements.push(...jsonAlterIndPoliciesStatements); + jsonStatements.push(...dropEnums); + jsonStatements.push(...dropSequences); + jsonStatements.push(...dropSchemas); + const filteredJsonStatements = jsonStatements.filter((st) => { + if (st.type === "alter_table_alter_column_drop_notnull") { + if (jsonStatements.find( + (it) => it.type === "alter_table_alter_column_drop_identity" && it.tableName === st.tableName && it.schema === st.schema + )) { + return false; + } + } + if (st.type === "alter_table_alter_column_set_notnull") { + if (jsonStatements.find( + (it) => it.type === "alter_table_alter_column_set_identity" && it.tableName === st.tableName && it.schema === st.schema + )) { + return false; + } + } + return true; + }); + const filteredEnumsJsonStatements = filteredJsonStatements.filter((st) => { + if (st.type === "alter_type_add_value") { + if (filteredJsonStatements.find( + (it) => it.type === "alter_type_drop_value" && it.name === st.name && it.enumSchema === st.schema + )) { + return false; + } + } + return true; + }); + const filteredEnums2JsonStatements = filteredEnumsJsonStatements.filter((st) => { + if (st.type === "alter_table_alter_column_set_default") { + if (filteredEnumsJsonStatements.find( + (it) => it.type === "pg_alter_table_alter_column_set_type" && it.columnDefault === st.newDefaultValue && it.columnName === st.columnName && it.tableName === st.tableName && it.schema === st.schema + )) { + return false; + } + if (filteredEnumsJsonStatements.find( + (it) => it.type === "alter_type_drop_value" && it.columnsWithEnum.find( + (column11) => column11.default === st.newDefaultValue && column11.column === st.columnName && column11.table === st.tableName && column11.tableSchema === st.schema + ) + )) { + return false; + } + } + return true; + }); + const sqlStatements = fromJson(filteredEnums2JsonStatements, "postgresql", action); + const uniqueSqlStatements = []; + sqlStatements.forEach((ss) => { + if (!uniqueSqlStatements.includes(ss)) { + uniqueSqlStatements.push(ss); + } + }); + const rSchemas = renamedSchemas.map((it) => ({ + from: it.from.name, + to: it.to.name + })); + const rTables = renamedTables.map((it) => { + return { from: it.from, to: it.to }; + }); + const _meta = prepareMigrationMeta(rSchemas, rTables, rColumns); + return { + statements: filteredEnums2JsonStatements, + sqlStatements: uniqueSqlStatements, + _meta + }; + }; + applyMysqlSnapshotsDiff = async (json1, json2, tablesResolver2, columnsResolver2, viewsResolver2, prevFull, curFull, action) => { + for (const tableName in json1.tables) { + const table6 = json1.tables[tableName]; + for (const indexName6 in table6.indexes) { + const index6 = MySqlSquasher.unsquashIdx(table6.indexes[indexName6]); + if (index6.isUnique) { + table6.uniqueConstraints[indexName6] = MySqlSquasher.squashUnique({ + name: index6.name, + columns: index6.columns + }); + delete json1.tables[tableName].indexes[index6.name]; + } + } + } + for (const tableName in json2.tables) { + const table6 = json2.tables[tableName]; + for (const indexName6 in table6.indexes) { + const index6 = MySqlSquasher.unsquashIdx(table6.indexes[indexName6]); + if (index6.isUnique) { + table6.uniqueConstraints[indexName6] = MySqlSquasher.squashUnique({ + name: index6.name, + columns: index6.columns + }); + delete json2.tables[tableName].indexes[index6.name]; + } + } + } + const tablesDiff = diffSchemasOrTables(json1.tables, json2.tables); + const { + created: createdTables, + deleted: deletedTables, + renamed: renamedTables + // renamed or moved + } = await tablesResolver2({ + created: tablesDiff.added, + deleted: tablesDiff.deleted + }); + const tablesPatchedSnap1 = copy(json1); + tablesPatchedSnap1.tables = mapEntries(tablesPatchedSnap1.tables, (_3, it) => { + const { name } = nameChangeFor(it, renamedTables); + it.name = name; + return [name, it]; + }); + const res = diffColumns(tablesPatchedSnap1.tables, json2.tables); + const columnRenames = []; + const columnCreates = []; + const columnDeletes = []; + for (let entry of Object.values(res)) { + const { renamed, created, deleted } = await columnsResolver2({ + tableName: entry.name, + schema: entry.schema, + deleted: entry.columns.deleted, + created: entry.columns.added + }); + if (created.length > 0) { + columnCreates.push({ + table: entry.name, + columns: created + }); + } + if (deleted.length > 0) { + columnDeletes.push({ + table: entry.name, + columns: deleted + }); + } + if (renamed.length > 0) { + columnRenames.push({ + table: entry.name, + renames: renamed + }); + } + } + const columnRenamesDict = columnRenames.reduce( + (acc, it) => { + acc[it.table] = it.renames; + return acc; + }, + {} + ); + const columnsPatchedSnap1 = copy(tablesPatchedSnap1); + columnsPatchedSnap1.tables = mapEntries( + columnsPatchedSnap1.tables, + (tableKey2, tableValue) => { + const patchedColumns = mapKeys( + tableValue.columns, + (columnKey, column11) => { + const rens = columnRenamesDict[tableValue.name] || []; + const newName = columnChangeFor(columnKey, rens); + column11.name = newName; + return newName; + } + ); + tableValue.columns = patchedColumns; + return [tableKey2, tableValue]; + } + ); + const viewsDiff = diffSchemasOrTables(json1.views, json2.views); + const { + created: createdViews, + deleted: deletedViews, + renamed: renamedViews + // renamed or moved + } = await viewsResolver2({ + created: viewsDiff.added, + deleted: viewsDiff.deleted + }); + const renamesViewDic = {}; + renamedViews.forEach((it) => { + renamesViewDic[it.from.name] = { to: it.to.name, from: it.from.name }; + }); + const viewsPatchedSnap1 = copy(columnsPatchedSnap1); + viewsPatchedSnap1.views = mapEntries( + viewsPatchedSnap1.views, + (viewKey, viewValue) => { + const rename = renamesViewDic[viewValue.name]; + if (rename) { + viewValue.name = rename.to; + viewKey = rename.to; + } + return [viewKey, viewValue]; + } + ); + const diffResult = applyJsonDiff(viewsPatchedSnap1, json2); + const typedResult = diffResultSchemeMysql.parse(diffResult); + const jsonStatements = []; + const jsonCreateIndexesForCreatedTables = createdTables.map((it) => { + return prepareCreateIndexesJson( + it.name, + it.schema, + it.indexes, + curFull.internal + ); + }).flat(); + const jsonDropTables = deletedTables.map((it) => { + return prepareDropTableJson(it); + }); + const jsonRenameTables = renamedTables.map((it) => { + return prepareRenameTableJson(it.from, it.to); + }); + const alteredTables = typedResult.alteredTablesWithColumns; + const jsonAddedCompositePKs = []; + const jsonDeletedCompositePKs = []; + const jsonAlteredCompositePKs = []; + const jsonAddedUniqueConstraints = []; + const jsonDeletedUniqueConstraints = []; + const jsonAlteredUniqueConstraints = []; + const jsonCreatedCheckConstraints = []; + const jsonDeletedCheckConstraints = []; + const jsonRenameColumnsStatements = columnRenames.map((it) => prepareRenameColumns(it.table, "", it.renames)).flat(); + const jsonAddColumnsStatemets = columnCreates.map((it) => _prepareAddColumns(it.table, "", it.columns)).flat(); + const jsonDropColumnsStatemets = columnDeletes.map((it) => _prepareDropColumns(it.table, "", it.columns)).flat(); + alteredTables.forEach((it) => { + let addedColumns = []; + for (const addedPkName of Object.keys(it.addedCompositePKs)) { + const addedPkColumns = it.addedCompositePKs[addedPkName]; + addedColumns = MySqlSquasher.unsquashPK(addedPkColumns).columns; + } + let deletedColumns = []; + for (const deletedPkName of Object.keys(it.deletedCompositePKs)) { + const deletedPkColumns = it.deletedCompositePKs[deletedPkName]; + deletedColumns = MySqlSquasher.unsquashPK(deletedPkColumns).columns; + } + const doPerformDeleteAndCreate = JSON.stringify(addedColumns) !== JSON.stringify(deletedColumns); + let addedCompositePKs = []; + let deletedCompositePKs = []; + let alteredCompositePKs = []; + addedCompositePKs = prepareAddCompositePrimaryKeyMySql( + it.name, + it.addedCompositePKs, + prevFull, + curFull + ); + deletedCompositePKs = prepareDeleteCompositePrimaryKeyMySql( + it.name, + it.deletedCompositePKs, + prevFull + ); + alteredCompositePKs = prepareAlterCompositePrimaryKeyMySql( + it.name, + it.alteredCompositePKs, + prevFull, + curFull + ); + let addedUniqueConstraints = []; + let deletedUniqueConstraints = []; + let alteredUniqueConstraints = []; + let createdCheckConstraints = []; + let deletedCheckConstraints = []; + addedUniqueConstraints = prepareAddUniqueConstraintPg( + it.name, + it.schema, + it.addedUniqueConstraints + ); + deletedUniqueConstraints = prepareDeleteUniqueConstraintPg( + it.name, + it.schema, + it.deletedUniqueConstraints + ); + if (it.alteredUniqueConstraints) { + const added = {}; + const deleted = {}; + for (const k3 of Object.keys(it.alteredUniqueConstraints)) { + added[k3] = it.alteredUniqueConstraints[k3].__new; + deleted[k3] = it.alteredUniqueConstraints[k3].__old; + } + addedUniqueConstraints.push( + ...prepareAddUniqueConstraintPg(it.name, it.schema, added) + ); + deletedUniqueConstraints.push( + ...prepareDeleteUniqueConstraintPg(it.name, it.schema, deleted) + ); + } + createdCheckConstraints = prepareAddCheckConstraint(it.name, it.schema, it.addedCheckConstraints); + deletedCheckConstraints = prepareDeleteCheckConstraint( + it.name, + it.schema, + it.deletedCheckConstraints + ); + if (it.alteredCheckConstraints && action !== "push") { + const added = {}; + const deleted = {}; + for (const k3 of Object.keys(it.alteredCheckConstraints)) { + added[k3] = it.alteredCheckConstraints[k3].__new; + deleted[k3] = it.alteredCheckConstraints[k3].__old; + } + createdCheckConstraints.push(...prepareAddCheckConstraint(it.name, it.schema, added)); + deletedCheckConstraints.push(...prepareDeleteCheckConstraint(it.name, it.schema, deleted)); + } + jsonAddedCompositePKs.push(...addedCompositePKs); + jsonDeletedCompositePKs.push(...deletedCompositePKs); + jsonAlteredCompositePKs.push(...alteredCompositePKs); + jsonAddedUniqueConstraints.push(...addedUniqueConstraints); + jsonDeletedUniqueConstraints.push(...deletedUniqueConstraints); + jsonAlteredUniqueConstraints.push(...alteredUniqueConstraints); + jsonCreatedCheckConstraints.push(...createdCheckConstraints); + jsonDeletedCheckConstraints.push(...deletedCheckConstraints); + }); + const rColumns = jsonRenameColumnsStatements.map((it) => { + const tableName = it.tableName; + const schema6 = it.schema; + return { + from: { schema: schema6, table: tableName, column: it.oldColumnName }, + to: { schema: schema6, table: tableName, column: it.newColumnName } + }; + }); + const jsonTableAlternations = alteredTables.map((it) => { + return prepareAlterColumnsMysql( + it.name, + it.schema, + it.altered, + json1, + json2, + action + ); + }).flat(); + const jsonCreateIndexesForAllAlteredTables = alteredTables.map((it) => { + return prepareCreateIndexesJson( + it.name, + it.schema, + it.addedIndexes || {}, + curFull.internal + ); + }).flat(); + const jsonDropIndexesForAllAlteredTables = alteredTables.map((it) => { + return prepareDropIndexesJson( + it.name, + it.schema, + it.deletedIndexes || {} + ); + }).flat(); + alteredTables.forEach((it) => { + const droppedIndexes = Object.keys(it.alteredIndexes).reduce( + (current, item) => { + current[item] = it.alteredIndexes[item].__old; + return current; + }, + {} + ); + const createdIndexes = Object.keys(it.alteredIndexes).reduce( + (current, item) => { + current[item] = it.alteredIndexes[item].__new; + return current; + }, + {} + ); + jsonCreateIndexesForAllAlteredTables.push( + ...prepareCreateIndexesJson(it.name, it.schema, createdIndexes || {}) + ); + jsonDropIndexesForAllAlteredTables.push( + ...prepareDropIndexesJson(it.name, it.schema, droppedIndexes || {}) + ); + }); + const jsonCreateReferencesForCreatedTables = createdTables.map((it) => { + return prepareCreateReferencesJson(it.name, it.schema, it.foreignKeys); + }).flat(); + const jsonReferencesForAllAlteredTables = alteredTables.map((it) => { + const forAdded = prepareCreateReferencesJson( + it.name, + it.schema, + it.addedForeignKeys + ); + const forAltered = prepareDropReferencesJson( + it.name, + it.schema, + it.deletedForeignKeys + ); + const alteredFKs = prepareAlterReferencesJson( + it.name, + it.schema, + it.alteredForeignKeys + ); + return [...forAdded, ...forAltered, ...alteredFKs]; + }).flat(); + const jsonCreatedReferencesForAlteredTables = jsonReferencesForAllAlteredTables.filter( + (t4) => t4.type === "create_reference" + ); + const jsonDroppedReferencesForAlteredTables = jsonReferencesForAllAlteredTables.filter( + (t4) => t4.type === "delete_reference" + ); + const jsonMySqlCreateTables = createdTables.map((it) => { + return prepareMySqlCreateTableJson( + it, + curFull, + curFull.internal + ); + }); + const createViews = []; + const dropViews = []; + const renameViews = []; + const alterViews = []; + createViews.push( + ...createdViews.filter((it) => !it.isExisting).map((it) => { + return prepareMySqlCreateViewJson( + it.name, + it.definition, + it.meta + ); + }) + ); + dropViews.push( + ...deletedViews.filter((it) => !it.isExisting).map((it) => { + return prepareDropViewJson(it.name); + }) + ); + renameViews.push( + ...renamedViews.filter((it) => !it.to.isExisting && !json1.views[it.from.name].isExisting).map((it) => { + return prepareRenameViewJson(it.to.name, it.from.name); + }) + ); + const alteredViews = typedResult.alteredViews.filter((it) => !json2.views[it.name].isExisting); + for (const alteredView of alteredViews) { + const { definition, meta } = json2.views[alteredView.name]; + if (alteredView.alteredExisting) { + dropViews.push(prepareDropViewJson(alteredView.name)); + createViews.push( + prepareMySqlCreateViewJson( + alteredView.name, + definition, + meta + ) + ); + continue; + } + if (alteredView.alteredDefinition && action !== "push") { + createViews.push( + prepareMySqlCreateViewJson( + alteredView.name, + definition, + meta, + true + ) + ); + continue; + } + if (alteredView.alteredMeta) { + const view5 = curFull["views"][alteredView.name]; + alterViews.push( + prepareMySqlAlterView(view5) + ); + } + } + jsonStatements.push(...jsonMySqlCreateTables); + jsonStatements.push(...jsonDropTables); + jsonStatements.push(...jsonRenameTables); + jsonStatements.push(...jsonRenameColumnsStatements); + jsonStatements.push(...dropViews); + jsonStatements.push(...renameViews); + jsonStatements.push(...alterViews); + jsonStatements.push(...jsonDeletedUniqueConstraints); + jsonStatements.push(...jsonDeletedCheckConstraints); + jsonStatements.push(...jsonDroppedReferencesForAlteredTables); + jsonStatements.push(...jsonDropIndexesForAllAlteredTables); + jsonStatements.push(...jsonDeletedCompositePKs); + jsonStatements.push(...jsonTableAlternations); + jsonStatements.push(...jsonAddedCompositePKs); + jsonStatements.push(...jsonAddColumnsStatemets); + jsonStatements.push(...jsonAddedUniqueConstraints); + jsonStatements.push(...jsonDeletedUniqueConstraints); + jsonStatements.push(...jsonCreateReferencesForCreatedTables); + jsonStatements.push(...jsonCreateIndexesForCreatedTables); + jsonStatements.push(...jsonCreatedCheckConstraints); + jsonStatements.push(...jsonCreatedReferencesForAlteredTables); + jsonStatements.push(...jsonCreateIndexesForAllAlteredTables); + jsonStatements.push(...jsonDropColumnsStatemets); + jsonStatements.push(...jsonAlteredCompositePKs); + jsonStatements.push(...createViews); + jsonStatements.push(...jsonAlteredUniqueConstraints); + const sqlStatements = fromJson(jsonStatements, "mysql"); + const uniqueSqlStatements = []; + sqlStatements.forEach((ss) => { + if (!uniqueSqlStatements.includes(ss)) { + uniqueSqlStatements.push(ss); + } + }); + const rTables = renamedTables.map((it) => { + return { from: it.from, to: it.to }; + }); + const _meta = prepareMigrationMeta([], rTables, rColumns); + return { + statements: jsonStatements, + sqlStatements: uniqueSqlStatements, + _meta + }; + }; + applySingleStoreSnapshotsDiff = async (json1, json2, tablesResolver2, columnsResolver2, prevFull, curFull, action) => { + for (const tableName in json1.tables) { + const table6 = json1.tables[tableName]; + for (const indexName6 in table6.indexes) { + const index6 = SingleStoreSquasher.unsquashIdx(table6.indexes[indexName6]); + if (index6.isUnique) { + table6.uniqueConstraints[indexName6] = SingleStoreSquasher.squashUnique({ + name: index6.name, + columns: index6.columns + }); + delete json1.tables[tableName].indexes[index6.name]; + } + } + } + for (const tableName in json2.tables) { + const table6 = json2.tables[tableName]; + for (const indexName6 in table6.indexes) { + const index6 = SingleStoreSquasher.unsquashIdx(table6.indexes[indexName6]); + if (index6.isUnique) { + table6.uniqueConstraints[indexName6] = SingleStoreSquasher.squashUnique({ + name: index6.name, + columns: index6.columns + }); + delete json2.tables[tableName].indexes[index6.name]; + } + } + } + const tablesDiff = diffSchemasOrTables(json1.tables, json2.tables); + const { + created: createdTables, + deleted: deletedTables, + renamed: renamedTables + // renamed or moved + } = await tablesResolver2({ + created: tablesDiff.added, + deleted: tablesDiff.deleted + }); + const tablesPatchedSnap1 = copy(json1); + tablesPatchedSnap1.tables = mapEntries(tablesPatchedSnap1.tables, (_3, it) => { + const { name } = nameChangeFor(it, renamedTables); + it.name = name; + return [name, it]; + }); + const res = diffColumns(tablesPatchedSnap1.tables, json2.tables); + const columnRenames = []; + const columnCreates = []; + const columnDeletes = []; + for (let entry of Object.values(res)) { + const { renamed, created, deleted } = await columnsResolver2({ + tableName: entry.name, + schema: entry.schema, + deleted: entry.columns.deleted, + created: entry.columns.added + }); + if (created.length > 0) { + columnCreates.push({ + table: entry.name, + columns: created + }); + } + if (deleted.length > 0) { + columnDeletes.push({ + table: entry.name, + columns: deleted + }); + } + if (renamed.length > 0) { + columnRenames.push({ + table: entry.name, + renames: renamed + }); + } + } + const columnRenamesDict = columnRenames.reduce( + (acc, it) => { + acc[it.table] = it.renames; + return acc; + }, + {} + ); + const columnsPatchedSnap1 = copy(tablesPatchedSnap1); + columnsPatchedSnap1.tables = mapEntries( + columnsPatchedSnap1.tables, + (tableKey2, tableValue) => { + const patchedColumns = mapKeys( + tableValue.columns, + (columnKey, column11) => { + const rens = columnRenamesDict[tableValue.name] || []; + const newName = columnChangeFor(columnKey, rens); + column11.name = newName; + return newName; + } + ); + tableValue.columns = patchedColumns; + return [tableKey2, tableValue]; + } + ); + const diffResult = applyJsonDiff(columnsPatchedSnap1, json2); + const typedResult = diffResultSchemeSingleStore.parse(diffResult); + const jsonStatements = []; + const jsonCreateIndexesForCreatedTables = createdTables.map((it) => { + return prepareCreateIndexesJson( + it.name, + it.schema, + it.indexes, + curFull.internal + ); + }).flat(); + const jsonDropTables = deletedTables.map((it) => { + return prepareDropTableJson(it); + }); + const jsonRenameTables = renamedTables.map((it) => { + return prepareRenameTableJson(it.from, it.to); + }); + const alteredTables = typedResult.alteredTablesWithColumns; + const jsonAddedCompositePKs = []; + const jsonAddedUniqueConstraints = []; + const jsonDeletedUniqueConstraints = []; + const jsonAlteredUniqueConstraints = []; + const jsonRenameColumnsStatements = columnRenames.map((it) => prepareRenameColumns(it.table, "", it.renames)).flat(); + const jsonAddColumnsStatemets = columnCreates.map((it) => _prepareAddColumns(it.table, "", it.columns)).flat(); + const jsonDropColumnsStatemets = columnDeletes.map((it) => _prepareDropColumns(it.table, "", it.columns)).flat(); + alteredTables.forEach((it) => { + let addedColumns = []; + for (const addedPkName of Object.keys(it.addedCompositePKs)) { + const addedPkColumns = it.addedCompositePKs[addedPkName]; + addedColumns = SingleStoreSquasher.unsquashPK(addedPkColumns).columns; + } + let deletedColumns = []; + for (const deletedPkName of Object.keys(it.deletedCompositePKs)) { + const deletedPkColumns = it.deletedCompositePKs[deletedPkName]; + deletedColumns = SingleStoreSquasher.unsquashPK(deletedPkColumns).columns; + } + const doPerformDeleteAndCreate = JSON.stringify(addedColumns) !== JSON.stringify(deletedColumns); + let addedUniqueConstraints = []; + let deletedUniqueConstraints = []; + let alteredUniqueConstraints = []; + let createdCheckConstraints = []; + let deletedCheckConstraints = []; + addedUniqueConstraints = prepareAddUniqueConstraintPg( + it.name, + it.schema, + it.addedUniqueConstraints + ); + deletedUniqueConstraints = prepareDeleteUniqueConstraintPg( + it.name, + it.schema, + it.deletedUniqueConstraints + ); + if (it.alteredUniqueConstraints) { + const added = {}; + const deleted = {}; + for (const k3 of Object.keys(it.alteredUniqueConstraints)) { + added[k3] = it.alteredUniqueConstraints[k3].__new; + deleted[k3] = it.alteredUniqueConstraints[k3].__old; + } + addedUniqueConstraints.push( + ...prepareAddUniqueConstraintPg(it.name, it.schema, added) + ); + deletedUniqueConstraints.push( + ...prepareDeleteUniqueConstraintPg(it.name, it.schema, deleted) + ); + } + createdCheckConstraints = prepareAddCheckConstraint(it.name, it.schema, it.addedCheckConstraints); + deletedCheckConstraints = prepareDeleteCheckConstraint( + it.name, + it.schema, + it.deletedCheckConstraints + ); + if (it.alteredCheckConstraints && action !== "push") { + const added = {}; + const deleted = {}; + for (const k3 of Object.keys(it.alteredCheckConstraints)) { + added[k3] = it.alteredCheckConstraints[k3].__new; + deleted[k3] = it.alteredCheckConstraints[k3].__old; + } + createdCheckConstraints.push(...prepareAddCheckConstraint(it.name, it.schema, added)); + deletedCheckConstraints.push(...prepareDeleteCheckConstraint(it.name, it.schema, deleted)); + } + jsonAddedUniqueConstraints.push(...addedUniqueConstraints); + jsonDeletedUniqueConstraints.push(...deletedUniqueConstraints); + jsonAlteredUniqueConstraints.push(...alteredUniqueConstraints); + }); + const rColumns = jsonRenameColumnsStatements.map((it) => { + const tableName = it.tableName; + const schema6 = it.schema; + return { + from: { schema: schema6, table: tableName, column: it.oldColumnName }, + to: { schema: schema6, table: tableName, column: it.newColumnName } + }; + }); + const jsonTableAlternations = alteredTables.map((it) => { + return prepareAlterColumnsMysql( + it.name, + it.schema, + it.altered, + json1, + json2, + action + ); + }).flat(); + const jsonCreateIndexesForAllAlteredTables = alteredTables.map((it) => { + return prepareCreateIndexesJson( + it.name, + it.schema, + it.addedIndexes || {}, + curFull.internal + ); + }).flat(); + const jsonDropIndexesForAllAlteredTables = alteredTables.map((it) => { + return prepareDropIndexesJson( + it.name, + it.schema, + it.deletedIndexes || {} + ); + }).flat(); + alteredTables.forEach((it) => { + const droppedIndexes = Object.keys(it.alteredIndexes).reduce( + (current, item) => { + current[item] = it.alteredIndexes[item].__old; + return current; + }, + {} + ); + const createdIndexes = Object.keys(it.alteredIndexes).reduce( + (current, item) => { + current[item] = it.alteredIndexes[item].__new; + return current; + }, + {} + ); + jsonCreateIndexesForAllAlteredTables.push( + ...prepareCreateIndexesJson(it.name, it.schema, createdIndexes || {}) + ); + jsonDropIndexesForAllAlteredTables.push( + ...prepareDropIndexesJson(it.name, it.schema, droppedIndexes || {}) + ); + }); + const jsonSingleStoreCreateTables = createdTables.map((it) => { + return prepareSingleStoreCreateTableJson( + it, + curFull, + curFull.internal + ); + }); + jsonStatements.push(...jsonSingleStoreCreateTables); + jsonStatements.push(...jsonDropTables); + jsonStatements.push(...jsonRenameTables); + jsonStatements.push(...jsonRenameColumnsStatements); + jsonStatements.push(...jsonDeletedUniqueConstraints); + jsonStatements.push(...jsonDropIndexesForAllAlteredTables); + jsonStatements.push(...jsonTableAlternations); + jsonStatements.push(...jsonAddedCompositePKs); + jsonStatements.push(...jsonAddedUniqueConstraints); + jsonStatements.push(...jsonDeletedUniqueConstraints); + jsonStatements.push(...jsonAddColumnsStatemets); + jsonStatements.push(...jsonCreateIndexesForCreatedTables); + jsonStatements.push(...jsonCreateIndexesForAllAlteredTables); + jsonStatements.push(...jsonDropColumnsStatemets); + jsonStatements.push(...jsonAddedCompositePKs); + jsonStatements.push(...jsonAlteredUniqueConstraints); + const combinedJsonStatements = singleStoreCombineStatements(jsonStatements, json2); + const sqlStatements = fromJson(combinedJsonStatements, "singlestore"); + const uniqueSqlStatements = []; + sqlStatements.forEach((ss) => { + if (!uniqueSqlStatements.includes(ss)) { + uniqueSqlStatements.push(ss); + } + }); + const rTables = renamedTables.map((it) => { + return { from: it.from, to: it.to }; + }); + const _meta = prepareMigrationMeta([], rTables, rColumns); + return { + statements: combinedJsonStatements, + sqlStatements: uniqueSqlStatements, + _meta + }; + }; + applySqliteSnapshotsDiff = async (json1, json2, tablesResolver2, columnsResolver2, viewsResolver2, prevFull, curFull, action) => { + const tablesDiff = diffSchemasOrTables(json1.tables, json2.tables); + const { + created: createdTables, + deleted: deletedTables, + renamed: renamedTables + } = await tablesResolver2({ + created: tablesDiff.added, + deleted: tablesDiff.deleted + }); + const tablesPatchedSnap1 = copy(json1); + tablesPatchedSnap1.tables = mapEntries(tablesPatchedSnap1.tables, (_3, it) => { + const { name } = nameChangeFor(it, renamedTables); + it.name = name; + return [name, it]; + }); + const res = diffColumns(tablesPatchedSnap1.tables, json2.tables); + const columnRenames = []; + const columnCreates = []; + const columnDeletes = []; + for (let entry of Object.values(res)) { + const { renamed, created, deleted } = await columnsResolver2({ + tableName: entry.name, + schema: entry.schema, + deleted: entry.columns.deleted, + created: entry.columns.added + }); + if (created.length > 0) { + columnCreates.push({ + table: entry.name, + columns: created + }); + } + if (deleted.length > 0) { + columnDeletes.push({ + table: entry.name, + columns: deleted + }); + } + if (renamed.length > 0) { + columnRenames.push({ + table: entry.name, + renames: renamed + }); + } + } + const columnRenamesDict = columnRenames.reduce( + (acc, it) => { + acc[it.table] = it.renames; + return acc; + }, + {} + ); + const columnsPatchedSnap1 = copy(tablesPatchedSnap1); + columnsPatchedSnap1.tables = mapEntries( + columnsPatchedSnap1.tables, + (tableKey2, tableValue) => { + const patchedColumns = mapKeys( + tableValue.columns, + (columnKey, column11) => { + const rens = columnRenamesDict[tableValue.name] || []; + const newName = columnChangeFor(columnKey, rens); + column11.name = newName; + return newName; + } + ); + tableValue.columns = patchedColumns; + return [tableKey2, tableValue]; + } + ); + const viewsDiff = diffSchemasOrTables(json1.views, json2.views); + const { + created: createdViews, + deleted: deletedViews, + renamed: renamedViews + // renamed or moved + } = await viewsResolver2({ + created: viewsDiff.added, + deleted: viewsDiff.deleted + }); + const renamesViewDic = {}; + renamedViews.forEach((it) => { + renamesViewDic[it.from.name] = { to: it.to.name, from: it.from.name }; + }); + const viewsPatchedSnap1 = copy(columnsPatchedSnap1); + viewsPatchedSnap1.views = mapEntries( + viewsPatchedSnap1.views, + (viewKey, viewValue) => { + const rename = renamesViewDic[viewValue.name]; + if (rename) { + viewValue.name = rename.to; + } + return [viewKey, viewValue]; + } + ); + const diffResult = applyJsonDiff(viewsPatchedSnap1, json2); + const typedResult = diffResultSchemeSQLite.parse(diffResult); + const tablesMap = {}; + typedResult.alteredTablesWithColumns.forEach((obj) => { + tablesMap[obj.name] = obj; + }); + const jsonCreateTables = createdTables.map((it) => { + return prepareSQLiteCreateTable(it, action); + }); + const jsonCreateIndexesForCreatedTables = createdTables.map((it) => { + return prepareCreateIndexesJson( + it.name, + it.schema, + it.indexes, + curFull.internal + ); + }).flat(); + const jsonDropTables = deletedTables.map((it) => { + return prepareDropTableJson(it); + }); + const jsonRenameTables = renamedTables.map((it) => { + return prepareRenameTableJson(it.from, it.to); + }); + const jsonRenameColumnsStatements = columnRenames.map((it) => prepareRenameColumns(it.table, "", it.renames)).flat(); + const jsonDropColumnsStatemets = columnDeletes.map((it) => _prepareDropColumns(it.table, "", it.columns)).flat(); + const jsonAddColumnsStatemets = columnCreates.map((it) => { + return _prepareSqliteAddColumns( + it.table, + it.columns, + tablesMap[it.table] && tablesMap[it.table].addedForeignKeys ? Object.values(tablesMap[it.table].addedForeignKeys) : [] + ); + }).flat(); + const allAltered = typedResult.alteredTablesWithColumns; + const jsonAddedCompositePKs = []; + const jsonDeletedCompositePKs = []; + const jsonAlteredCompositePKs = []; + const jsonAddedUniqueConstraints = []; + const jsonDeletedUniqueConstraints = []; + const jsonAlteredUniqueConstraints = []; + const jsonDeletedCheckConstraints = []; + const jsonCreatedCheckConstraints = []; + allAltered.forEach((it) => { + let addedColumns = []; + for (const addedPkName of Object.keys(it.addedCompositePKs)) { + const addedPkColumns = it.addedCompositePKs[addedPkName]; + addedColumns = SQLiteSquasher.unsquashPK(addedPkColumns); + } + let deletedColumns = []; + for (const deletedPkName of Object.keys(it.deletedCompositePKs)) { + const deletedPkColumns = it.deletedCompositePKs[deletedPkName]; + deletedColumns = SQLiteSquasher.unsquashPK(deletedPkColumns); + } + const doPerformDeleteAndCreate = JSON.stringify(addedColumns) !== JSON.stringify(deletedColumns); + let addedCompositePKs = []; + let deletedCompositePKs = []; + let alteredCompositePKs = []; + if (doPerformDeleteAndCreate) { + addedCompositePKs = prepareAddCompositePrimaryKeySqlite( + it.name, + it.addedCompositePKs + ); + deletedCompositePKs = prepareDeleteCompositePrimaryKeySqlite( + it.name, + it.deletedCompositePKs + ); + } + alteredCompositePKs = prepareAlterCompositePrimaryKeySqlite( + it.name, + it.alteredCompositePKs + ); + let addedUniqueConstraints = []; + let deletedUniqueConstraints = []; + let alteredUniqueConstraints = []; + addedUniqueConstraints = prepareAddUniqueConstraintPg( + it.name, + it.schema, + it.addedUniqueConstraints + ); + deletedUniqueConstraints = prepareDeleteUniqueConstraintPg( + it.name, + it.schema, + it.deletedUniqueConstraints + ); + if (it.alteredUniqueConstraints) { + const added = {}; + const deleted = {}; + for (const k3 of Object.keys(it.alteredUniqueConstraints)) { + added[k3] = it.alteredUniqueConstraints[k3].__new; + deleted[k3] = it.alteredUniqueConstraints[k3].__old; + } + addedUniqueConstraints.push( + ...prepareAddUniqueConstraintPg(it.name, it.schema, added) + ); + deletedUniqueConstraints.push( + ...prepareDeleteUniqueConstraintPg(it.name, it.schema, deleted) + ); + } + let createdCheckConstraints = []; + let deletedCheckConstraints = []; + addedUniqueConstraints = prepareAddUniqueConstraintPg( + it.name, + it.schema, + it.addedUniqueConstraints + ); + deletedUniqueConstraints = prepareDeleteUniqueConstraintPg( + it.name, + it.schema, + it.deletedUniqueConstraints + ); + if (it.alteredUniqueConstraints) { + const added = {}; + const deleted = {}; + for (const k3 of Object.keys(it.alteredUniqueConstraints)) { + added[k3] = it.alteredUniqueConstraints[k3].__new; + deleted[k3] = it.alteredUniqueConstraints[k3].__old; + } + addedUniqueConstraints.push( + ...prepareAddUniqueConstraintPg(it.name, it.schema, added) + ); + deletedUniqueConstraints.push( + ...prepareDeleteUniqueConstraintPg(it.name, it.schema, deleted) + ); + } + createdCheckConstraints = prepareAddCheckConstraint(it.name, it.schema, it.addedCheckConstraints); + deletedCheckConstraints = prepareDeleteCheckConstraint( + it.name, + it.schema, + it.deletedCheckConstraints + ); + if (it.alteredCheckConstraints && action !== "push") { + const added = {}; + const deleted = {}; + for (const k3 of Object.keys(it.alteredCheckConstraints)) { + added[k3] = it.alteredCheckConstraints[k3].__new; + deleted[k3] = it.alteredCheckConstraints[k3].__old; + } + createdCheckConstraints.push(...prepareAddCheckConstraint(it.name, it.schema, added)); + deletedCheckConstraints.push(...prepareDeleteCheckConstraint(it.name, it.schema, deleted)); + } + jsonAddedCompositePKs.push(...addedCompositePKs); + jsonDeletedCompositePKs.push(...deletedCompositePKs); + jsonAlteredCompositePKs.push(...alteredCompositePKs); + jsonAddedUniqueConstraints.push(...addedUniqueConstraints); + jsonDeletedUniqueConstraints.push(...deletedUniqueConstraints); + jsonAlteredUniqueConstraints.push(...alteredUniqueConstraints); + jsonCreatedCheckConstraints.push(...createdCheckConstraints); + jsonDeletedCheckConstraints.push(...deletedCheckConstraints); + }); + const rColumns = jsonRenameColumnsStatements.map((it) => { + const tableName = it.tableName; + const schema6 = it.schema; + return { + from: { schema: schema6, table: tableName, column: it.oldColumnName }, + to: { schema: schema6, table: tableName, column: it.newColumnName } + }; + }); + const jsonTableAlternations = allAltered.map((it) => { + return prepareSqliteAlterColumns(it.name, it.schema, it.altered, json2); + }).flat(); + const jsonCreateIndexesForAllAlteredTables = allAltered.map((it) => { + return prepareCreateIndexesJson( + it.name, + it.schema, + it.addedIndexes || {}, + curFull.internal + ); + }).flat(); + const jsonDropIndexesForAllAlteredTables = allAltered.map((it) => { + return prepareDropIndexesJson( + it.name, + it.schema, + it.deletedIndexes || {} + ); + }).flat(); + allAltered.forEach((it) => { + const droppedIndexes = Object.keys(it.alteredIndexes).reduce( + (current, item) => { + current[item] = it.alteredIndexes[item].__old; + return current; + }, + {} + ); + const createdIndexes = Object.keys(it.alteredIndexes).reduce( + (current, item) => { + current[item] = it.alteredIndexes[item].__new; + return current; + }, + {} + ); + jsonCreateIndexesForAllAlteredTables.push( + ...prepareCreateIndexesJson( + it.name, + it.schema, + createdIndexes || {}, + curFull.internal + ) + ); + jsonDropIndexesForAllAlteredTables.push( + ...prepareDropIndexesJson(it.name, it.schema, droppedIndexes || {}) + ); + }); + const jsonReferencesForAllAlteredTables = allAltered.map((it) => { + const forAdded = prepareCreateReferencesJson( + it.name, + it.schema, + it.addedForeignKeys + ); + const forAltered = prepareDropReferencesJson( + it.name, + it.schema, + it.deletedForeignKeys + ); + const alteredFKs = prepareAlterReferencesJson( + it.name, + it.schema, + it.alteredForeignKeys + ); + return [...forAdded, ...forAltered, ...alteredFKs]; + }).flat(); + const jsonCreatedReferencesForAlteredTables = jsonReferencesForAllAlteredTables.filter( + (t4) => t4.type === "create_reference" + ); + const jsonDroppedReferencesForAlteredTables = jsonReferencesForAllAlteredTables.filter( + (t4) => t4.type === "delete_reference" + ); + const createViews = []; + const dropViews = []; + createViews.push( + ...createdViews.filter((it) => !it.isExisting).map((it) => { + return prepareSqliteCreateViewJson( + it.name, + it.definition + ); + }) + ); + dropViews.push( + ...deletedViews.filter((it) => !it.isExisting).map((it) => { + return prepareDropViewJson(it.name); + }) + ); + dropViews.push( + ...renamedViews.filter((it) => !it.to.isExisting).map((it) => { + return prepareDropViewJson(it.from.name); + }) + ); + createViews.push( + ...renamedViews.filter((it) => !it.to.isExisting).map((it) => { + return prepareSqliteCreateViewJson(it.to.name, it.to.definition); + }) + ); + const alteredViews = typedResult.alteredViews.filter((it) => !json2.views[it.name].isExisting); + for (const alteredView of alteredViews) { + const { definition } = json2.views[alteredView.name]; + if (alteredView.alteredExisting || alteredView.alteredDefinition && action !== "push") { + dropViews.push(prepareDropViewJson(alteredView.name)); + createViews.push( + prepareSqliteCreateViewJson( + alteredView.name, + definition + ) + ); + } + } + const jsonStatements = []; + jsonStatements.push(...jsonCreateTables); + jsonStatements.push(...jsonDropTables); + jsonStatements.push(...jsonRenameTables); + jsonStatements.push(...jsonRenameColumnsStatements); + jsonStatements.push(...jsonDroppedReferencesForAlteredTables); + jsonStatements.push(...jsonDeletedCheckConstraints); + jsonStatements.push(...jsonDropIndexesForAllAlteredTables); + jsonStatements.push(...jsonDeletedCompositePKs); + jsonStatements.push(...jsonTableAlternations); + jsonStatements.push(...jsonAddedCompositePKs); + jsonStatements.push(...jsonAddColumnsStatemets); + jsonStatements.push(...jsonCreateIndexesForCreatedTables); + jsonStatements.push(...jsonCreateIndexesForAllAlteredTables); + jsonStatements.push(...jsonCreatedCheckConstraints); + jsonStatements.push(...jsonCreatedReferencesForAlteredTables); + jsonStatements.push(...jsonDropColumnsStatemets); + jsonStatements.push(...jsonAlteredCompositePKs); + jsonStatements.push(...jsonAlteredUniqueConstraints); + jsonStatements.push(...dropViews); + jsonStatements.push(...createViews); + const combinedJsonStatements = sqliteCombineStatements(jsonStatements, json2, action); + const sqlStatements = fromJson(combinedJsonStatements, "sqlite"); + const uniqueSqlStatements = []; + sqlStatements.forEach((ss) => { + if (!uniqueSqlStatements.includes(ss)) { + uniqueSqlStatements.push(ss); + } + }); + const rTables = renamedTables.map((it) => { + return { from: it.from, to: it.to }; + }); + const _meta = prepareMigrationMeta([], rTables, rColumns); + return { + statements: combinedJsonStatements, + sqlStatements: uniqueSqlStatements, + _meta + }; + }; + applyLibSQLSnapshotsDiff = async (json1, json2, tablesResolver2, columnsResolver2, viewsResolver2, prevFull, curFull, action) => { + const tablesDiff = diffSchemasOrTables(json1.tables, json2.tables); + const { + created: createdTables, + deleted: deletedTables, + renamed: renamedTables + } = await tablesResolver2({ + created: tablesDiff.added, + deleted: tablesDiff.deleted + }); + const tablesPatchedSnap1 = copy(json1); + tablesPatchedSnap1.tables = mapEntries(tablesPatchedSnap1.tables, (_3, it) => { + const { name } = nameChangeFor(it, renamedTables); + it.name = name; + return [name, it]; + }); + const res = diffColumns(tablesPatchedSnap1.tables, json2.tables); + const columnRenames = []; + const columnCreates = []; + const columnDeletes = []; + for (let entry of Object.values(res)) { + const { renamed, created, deleted } = await columnsResolver2({ + tableName: entry.name, + schema: entry.schema, + deleted: entry.columns.deleted, + created: entry.columns.added + }); + if (created.length > 0) { + columnCreates.push({ + table: entry.name, + columns: created + }); + } + if (deleted.length > 0) { + columnDeletes.push({ + table: entry.name, + columns: deleted + }); + } + if (renamed.length > 0) { + columnRenames.push({ + table: entry.name, + renames: renamed + }); + } + } + const columnRenamesDict = columnRenames.reduce( + (acc, it) => { + acc[it.table] = it.renames; + return acc; + }, + {} + ); + const columnsPatchedSnap1 = copy(tablesPatchedSnap1); + columnsPatchedSnap1.tables = mapEntries( + columnsPatchedSnap1.tables, + (tableKey2, tableValue) => { + const patchedColumns = mapKeys( + tableValue.columns, + (columnKey, column11) => { + const rens = columnRenamesDict[tableValue.name] || []; + const newName = columnChangeFor(columnKey, rens); + column11.name = newName; + return newName; + } + ); + tableValue.columns = patchedColumns; + return [tableKey2, tableValue]; + } + ); + const viewsDiff = diffSchemasOrTables(json1.views, json2.views); + const { + created: createdViews, + deleted: deletedViews, + renamed: renamedViews + // renamed or moved + } = await viewsResolver2({ + created: viewsDiff.added, + deleted: viewsDiff.deleted + }); + const renamesViewDic = {}; + renamedViews.forEach((it) => { + renamesViewDic[it.from.name] = { to: it.to.name, from: it.from.name }; + }); + const viewsPatchedSnap1 = copy(columnsPatchedSnap1); + viewsPatchedSnap1.views = mapEntries( + viewsPatchedSnap1.views, + (viewKey, viewValue) => { + const rename = renamesViewDic[viewValue.name]; + if (rename) { + viewValue.name = rename.to; + } + return [viewKey, viewValue]; + } + ); + const diffResult = applyJsonDiff(viewsPatchedSnap1, json2); + const typedResult = diffResultSchemeSQLite.parse(diffResult); + const tablesMap = {}; + typedResult.alteredTablesWithColumns.forEach((obj) => { + tablesMap[obj.name] = obj; + }); + const jsonCreateTables = createdTables.map((it) => { + return prepareSQLiteCreateTable(it, action); + }); + const jsonCreateIndexesForCreatedTables = createdTables.map((it) => { + return prepareCreateIndexesJson( + it.name, + it.schema, + it.indexes, + curFull.internal + ); + }).flat(); + const jsonDropTables = deletedTables.map((it) => { + return prepareDropTableJson(it); + }); + const jsonRenameTables = renamedTables.map((it) => { + return prepareRenameTableJson(it.from, it.to); + }); + const jsonRenameColumnsStatements = columnRenames.map((it) => prepareRenameColumns(it.table, "", it.renames)).flat(); + const jsonDropColumnsStatemets = columnDeletes.map((it) => _prepareDropColumns(it.table, "", it.columns)).flat(); + const jsonAddColumnsStatemets = columnCreates.map((it) => { + return _prepareSqliteAddColumns( + it.table, + it.columns, + tablesMap[it.table] && tablesMap[it.table].addedForeignKeys ? Object.values(tablesMap[it.table].addedForeignKeys) : [] + ); + }).flat(); + const rColumns = jsonRenameColumnsStatements.map((it) => { + const tableName = it.tableName; + const schema6 = it.schema; + return { + from: { schema: schema6, table: tableName, column: it.oldColumnName }, + to: { schema: schema6, table: tableName, column: it.newColumnName } + }; + }); + const rTables = renamedTables.map((it) => { + return { from: it.from, to: it.to }; + }); + const _meta = prepareMigrationMeta([], rTables, rColumns); + const allAltered = typedResult.alteredTablesWithColumns; + const jsonAddedCompositePKs = []; + const jsonDeletedCompositePKs = []; + const jsonAlteredCompositePKs = []; + const jsonAddedUniqueConstraints = []; + const jsonDeletedUniqueConstraints = []; + const jsonAlteredUniqueConstraints = []; + const jsonDeletedCheckConstraints = []; + const jsonCreatedCheckConstraints = []; + allAltered.forEach((it) => { + let addedColumns = []; + for (const addedPkName of Object.keys(it.addedCompositePKs)) { + const addedPkColumns = it.addedCompositePKs[addedPkName]; + addedColumns = SQLiteSquasher.unsquashPK(addedPkColumns); + } + let deletedColumns = []; + for (const deletedPkName of Object.keys(it.deletedCompositePKs)) { + const deletedPkColumns = it.deletedCompositePKs[deletedPkName]; + deletedColumns = SQLiteSquasher.unsquashPK(deletedPkColumns); + } + const doPerformDeleteAndCreate = JSON.stringify(addedColumns) !== JSON.stringify(deletedColumns); + let addedCompositePKs = []; + let deletedCompositePKs = []; + let alteredCompositePKs = []; + if (doPerformDeleteAndCreate) { + addedCompositePKs = prepareAddCompositePrimaryKeySqlite( + it.name, + it.addedCompositePKs + ); + deletedCompositePKs = prepareDeleteCompositePrimaryKeySqlite( + it.name, + it.deletedCompositePKs + ); + } + alteredCompositePKs = prepareAlterCompositePrimaryKeySqlite( + it.name, + it.alteredCompositePKs + ); + let addedUniqueConstraints = []; + let deletedUniqueConstraints = []; + let alteredUniqueConstraints = []; + let createdCheckConstraints = []; + let deletedCheckConstraints = []; + addedUniqueConstraints = prepareAddUniqueConstraintPg( + it.name, + it.schema, + it.addedUniqueConstraints + ); + deletedUniqueConstraints = prepareDeleteUniqueConstraintPg( + it.name, + it.schema, + it.deletedUniqueConstraints + ); + if (it.alteredUniqueConstraints) { + const added = {}; + const deleted = {}; + for (const k3 of Object.keys(it.alteredUniqueConstraints)) { + added[k3] = it.alteredUniqueConstraints[k3].__new; + deleted[k3] = it.alteredUniqueConstraints[k3].__old; + } + addedUniqueConstraints.push( + ...prepareAddUniqueConstraintPg(it.name, it.schema, added) + ); + deletedUniqueConstraints.push( + ...prepareDeleteUniqueConstraintPg(it.name, it.schema, deleted) + ); + } + createdCheckConstraints = prepareAddCheckConstraint(it.name, it.schema, it.addedCheckConstraints); + deletedCheckConstraints = prepareDeleteCheckConstraint( + it.name, + it.schema, + it.deletedCheckConstraints + ); + if (it.alteredCheckConstraints && action !== "push") { + const added = {}; + const deleted = {}; + for (const k3 of Object.keys(it.alteredCheckConstraints)) { + added[k3] = it.alteredCheckConstraints[k3].__new; + deleted[k3] = it.alteredCheckConstraints[k3].__old; + } + createdCheckConstraints.push(...prepareAddCheckConstraint(it.name, it.schema, added)); + deletedCheckConstraints.push(...prepareDeleteCheckConstraint(it.name, it.schema, deleted)); + } + jsonAddedCompositePKs.push(...addedCompositePKs); + jsonDeletedCompositePKs.push(...deletedCompositePKs); + jsonAlteredCompositePKs.push(...alteredCompositePKs); + jsonAddedUniqueConstraints.push(...addedUniqueConstraints); + jsonDeletedUniqueConstraints.push(...deletedUniqueConstraints); + jsonAlteredUniqueConstraints.push(...alteredUniqueConstraints); + jsonCreatedCheckConstraints.push(...createdCheckConstraints); + jsonDeletedCheckConstraints.push(...deletedCheckConstraints); + }); + const jsonTableAlternations = allAltered.map((it) => { + return prepareSqliteAlterColumns(it.name, it.schema, it.altered, json2); + }).flat(); + const jsonCreateIndexesForAllAlteredTables = allAltered.map((it) => { + return prepareCreateIndexesJson( + it.name, + it.schema, + it.addedIndexes || {}, + curFull.internal + ); + }).flat(); + const jsonDropIndexesForAllAlteredTables = allAltered.map((it) => { + return prepareDropIndexesJson( + it.name, + it.schema, + it.deletedIndexes || {} + ); + }).flat(); + allAltered.forEach((it) => { + const droppedIndexes = Object.keys(it.alteredIndexes).reduce( + (current, item) => { + current[item] = it.alteredIndexes[item].__old; + return current; + }, + {} + ); + const createdIndexes = Object.keys(it.alteredIndexes).reduce( + (current, item) => { + current[item] = it.alteredIndexes[item].__new; + return current; + }, + {} + ); + jsonCreateIndexesForAllAlteredTables.push( + ...prepareCreateIndexesJson( + it.name, + it.schema, + createdIndexes || {}, + curFull.internal + ) + ); + jsonDropIndexesForAllAlteredTables.push( + ...prepareDropIndexesJson(it.name, it.schema, droppedIndexes || {}) + ); + }); + const jsonReferencesForAllAlteredTables = allAltered.map((it) => { + const forAdded = prepareLibSQLCreateReferencesJson( + it.name, + it.schema, + it.addedForeignKeys, + json2, + action + ); + const forAltered = prepareLibSQLDropReferencesJson( + it.name, + it.schema, + it.deletedForeignKeys, + json2, + _meta, + action + ); + const alteredFKs = prepareAlterReferencesJson(it.name, it.schema, it.alteredForeignKeys); + return [...forAdded, ...forAltered, ...alteredFKs]; + }).flat(); + const jsonCreatedReferencesForAlteredTables = jsonReferencesForAllAlteredTables.filter( + (t4) => t4.type === "create_reference" + ); + const jsonDroppedReferencesForAlteredTables = jsonReferencesForAllAlteredTables.filter( + (t4) => t4.type === "delete_reference" + ); + const createViews = []; + const dropViews = []; + createViews.push( + ...createdViews.filter((it) => !it.isExisting).map((it) => { + return prepareSqliteCreateViewJson( + it.name, + it.definition + ); + }) + ); + dropViews.push( + ...deletedViews.filter((it) => !it.isExisting).map((it) => { + return prepareDropViewJson(it.name); + }) + ); + dropViews.push( + ...renamedViews.filter((it) => !it.to.isExisting).map((it) => { + return prepareDropViewJson(it.from.name); + }) + ); + createViews.push( + ...renamedViews.filter((it) => !it.to.isExisting).map((it) => { + return prepareSqliteCreateViewJson(it.to.name, it.to.definition); + }) + ); + const alteredViews = typedResult.alteredViews.filter((it) => !json2.views[it.name].isExisting); + for (const alteredView of alteredViews) { + const { definition } = json2.views[alteredView.name]; + if (alteredView.alteredExisting || alteredView.alteredDefinition && action !== "push") { + dropViews.push(prepareDropViewJson(alteredView.name)); + createViews.push( + prepareSqliteCreateViewJson( + alteredView.name, + definition + ) + ); + } + } + const jsonStatements = []; + jsonStatements.push(...jsonCreateTables); + jsonStatements.push(...jsonDropTables); + jsonStatements.push(...jsonRenameTables); + jsonStatements.push(...jsonRenameColumnsStatements); + jsonStatements.push(...jsonDroppedReferencesForAlteredTables); + jsonStatements.push(...jsonDeletedCheckConstraints); + jsonStatements.push(...jsonDropIndexesForAllAlteredTables); + jsonStatements.push(...jsonDeletedCompositePKs); + jsonStatements.push(...jsonTableAlternations); + jsonStatements.push(...jsonAddedCompositePKs); + jsonStatements.push(...jsonAddColumnsStatemets); + jsonStatements.push(...jsonCreateIndexesForCreatedTables); + jsonStatements.push(...jsonCreateIndexesForAllAlteredTables); + jsonStatements.push(...jsonCreatedCheckConstraints); + jsonStatements.push(...dropViews); + jsonStatements.push(...createViews); + jsonStatements.push(...jsonCreatedReferencesForAlteredTables); + jsonStatements.push(...jsonDropColumnsStatemets); + jsonStatements.push(...jsonAlteredCompositePKs); + jsonStatements.push(...jsonAlteredUniqueConstraints); + const combinedJsonStatements = libSQLCombineStatements(jsonStatements, json2, action); + const sqlStatements = fromJson( + combinedJsonStatements, + "turso", + action, + json2 + ); + const uniqueSqlStatements = []; + sqlStatements.forEach((ss) => { + if (!uniqueSqlStatements.includes(ss)) { + uniqueSqlStatements.push(ss); + } + }); + return { + statements: combinedJsonStatements, + sqlStatements: uniqueSqlStatements, + _meta + }; + }; + } +}); + +// src/utils/words.ts +var prepareMigrationMetadata, adjectives, heroes; +var init_words = __esm({ + "src/utils/words.ts"() { + "use strict"; + prepareMigrationMetadata = (idx, prefixMode, name) => { + const prefix2 = prefixMode === "index" ? idx.toFixed(0).padStart(4, "0") : prefixMode === "timestamp" || prefixMode === "supabase" ? (/* @__PURE__ */ new Date()).toISOString().replace("T", "").replaceAll("-", "").replaceAll(":", "").slice(0, 14) : prefixMode === "unix" ? Math.floor(Date.now() / 1e3) : ""; + const suffix = name || `${adjectives.random()}_${heroes.random()}`; + const tag = `${prefix2}_${suffix}`; + return { prefix: prefix2, suffix, tag }; + }; + adjectives = [ + "abandoned", + "aberrant", + "abnormal", + "absent", + "absurd", + "acoustic", + "adorable", + "amazing", + "ambiguous", + "ambitious", + "amused", + "amusing", + "ancient", + "aromatic", + "aspiring", + "awesome", + "bent", + "big", + "bitter", + "bizarre", + "black", + "blue", + "blushing", + "bored", + "boring", + "bouncy", + "brainy", + "brave", + "breezy", + "brief", + "bright", + "broad", + "broken", + "brown", + "bumpy", + "burly", + "busy", + "calm", + "careful", + "careless", + "certain", + "charming", + "cheerful", + "chemical", + "chief", + "chilly", + "chubby", + "chunky", + "clammy", + "classy", + "clean", + "clear", + "clever", + "cloudy", + "closed", + "clumsy", + "cold", + "colorful", + "colossal", + "common", + "complete", + "complex", + "concerned", + "condemned", + "confused", + "conscious", + "cooing", + "cool", + "crazy", + "cuddly", + "cultured", + "curious", + "curly", + "curved", + "curvy", + "cute", + "cynical", + "daffy", + "daily", + "damp", + "dapper", + "dark", + "dashing", + "dazzling", + "dear", + "deep", + "demonic", + "dizzy", + "dry", + "dusty", + "eager", + "early", + "easy", + "elite", + "eminent", + "empty", + "equal", + "even", + "exotic", + "fair", + "faithful", + "familiar", + "famous", + "fancy", + "fantastic", + "far", + "fast", + "fat", + "faulty", + "fearless", + "fine", + "first", + "fixed", + "flaky", + "flashy", + "flat", + "flawless", + "flimsy", + "flippant", + "flowery", + "fluffy", + "foamy", + "free", + "freezing", + "fresh", + "friendly", + "funny", + "furry", + "futuristic", + "fuzzy", + "giant", + "gifted", + "gigantic", + "glamorous", + "glorious", + "glossy", + "good", + "goofy", + "gorgeous", + "graceful", + "gray", + "great", + "greedy", + "green", + "grey", + "groovy", + "handy", + "happy", + "hard", + "harsh", + "heavy", + "hesitant", + "high", + "hot", + "huge", + "icy", + "illegal", + "jazzy", + "jittery", + "keen", + "kind", + "known", + "lame", + "large", + "last", + "late", + "lazy", + "lean", + "left", + "legal", + "lethal", + "light", + "little", + "lively", + "living", + "lonely", + "long", + "loose", + "loud", + "lovely", + "loving", + "low", + "lowly", + "lucky", + "lumpy", + "lush", + "luxuriant", + "lying", + "lyrical", + "magenta", + "magical", + "majestic", + "many", + "massive", + "married", + "marvelous", + "material", + "mature", + "mean", + "medical", + "melodic", + "melted", + "messy", + "mighty", + "military", + "milky", + "minor", + "misty", + "mixed", + "moaning", + "modern", + "motionless", + "mushy", + "mute", + "mysterious", + "naive", + "nappy", + "narrow", + "nasty", + "natural", + "neat", + "nebulous", + "needy", + "nervous", + "new", + "next", + "nice", + "nifty", + "noisy", + "normal", + "nostalgic", + "nosy", + "numerous", + "odd", + "old", + "omniscient", + "open", + "opposite", + "optimal", + "orange", + "ordinary", + "organic", + "outgoing", + "outstanding", + "oval", + "overconfident", + "overjoyed", + "overrated", + "pale", + "panoramic", + "parallel", + "parched", + "past", + "peaceful", + "perfect", + "perpetual", + "petite", + "pink", + "plain", + "polite", + "powerful", + "premium", + "pretty", + "previous", + "productive", + "public", + "purple", + "puzzling", + "quick", + "quiet", + "rainy", + "rapid", + "rare", + "real", + "red", + "redundant", + "reflective", + "regular", + "remarkable", + "rich", + "right", + "robust", + "romantic", + "round", + "sad", + "safe", + "salty", + "same", + "secret", + "serious", + "shallow", + "sharp", + "shiny", + "shocking", + "short", + "silent", + "silky", + "silly", + "simple", + "skinny", + "sleepy", + "slim", + "slimy", + "slippery", + "sloppy", + "slow", + "small", + "smart", + "smiling", + "smooth", + "soft", + "solid", + "sour", + "sparkling", + "special", + "spicy", + "spooky", + "spotty", + "square", + "stale", + "steady", + "steep", + "sticky", + "stiff", + "stormy", + "strange", + "striped", + "strong", + "sturdy", + "sudden", + "superb", + "supreme", + "sweet", + "swift", + "talented", + "tan", + "tearful", + "tense", + "thankful", + "thick", + "thin", + "third", + "tidy", + "tiny", + "tired", + "tiresome", + "tough", + "tranquil", + "tricky", + "true", + "typical", + "uneven", + "unique", + "unknown", + "unusual", + "useful", + "vengeful", + "violet", + "volatile", + "wakeful", + "wandering", + "warm", + "watery", + "wealthy", + "wet", + "white", + "whole", + "wide", + "wild", + "windy", + "wise", + "wonderful", + "wooden", + "woozy", + "workable", + "worried", + "worthless", + "yellow", + "yielding", + "young", + "youthful", + "yummy", + "zippy" + ]; + heroes = [ + "aaron_stack", + "abomination", + "absorbing_man", + "adam_destine", + "adam_warlock", + "agent_brand", + "agent_zero", + "albert_cleary", + "alex_power", + "alex_wilder", + "alice", + "amazoness", + "amphibian", + "angel", + "anita_blake", + "annihilus", + "anthem", + "apocalypse", + "aqueduct", + "arachne", + "archangel", + "arclight", + "ares", + "argent", + "avengers", + "azazel", + "banshee", + "baron_strucker", + "baron_zemo", + "barracuda", + "bastion", + "beast", + "bedlam", + "ben_grimm", + "ben_parker", + "ben_urich", + "betty_brant", + "betty_ross", + "beyonder", + "big_bertha", + "bill_hollister", + "bishop", + "black_bird", + "black_bolt", + "black_cat", + "black_crow", + "black_knight", + "black_panther", + "black_queen", + "black_tarantula", + "black_tom", + "black_widow", + "blackheart", + "blacklash", + "blade", + "blazing_skull", + "blindfold", + "blink", + "blizzard", + "blob", + "blockbuster", + "blonde_phantom", + "bloodaxe", + "bloodscream", + "bloodstorm", + "bloodstrike", + "blue_blade", + "blue_marvel", + "blue_shield", + "blur", + "boom_boom", + "boomer", + "boomerang", + "bromley", + "brood", + "brother_voodoo", + "bruce_banner", + "bucky", + "bug", + "bulldozer", + "bullseye", + "bushwacker", + "butterfly", + "cable", + "callisto", + "calypso", + "cammi", + "cannonball", + "captain_america", + "captain_britain", + "captain_cross", + "captain_flint", + "captain_marvel", + "captain_midlands", + "captain_stacy", + "captain_universe", + "cardiac", + "caretaker", + "cargill", + "carlie_cooper", + "carmella_unuscione", + "carnage", + "cassandra_nova", + "catseye", + "celestials", + "centennial", + "cerebro", + "cerise", + "chamber", + "chameleon", + "champions", + "changeling", + "charles_xavier", + "chat", + "chimera", + "christian_walker", + "chronomancer", + "clea", + "clint_barton", + "cloak", + "cobalt_man", + "colleen_wing", + "colonel_america", + "colossus", + "corsair", + "crusher_hogan", + "crystal", + "cyclops", + "dagger", + "daimon_hellstrom", + "dakota_north", + "daredevil", + "dark_beast", + "dark_phoenix", + "darkhawk", + "darkstar", + "darwin", + "dazzler", + "deadpool", + "deathbird", + "deathstrike", + "demogoblin", + "devos", + "dexter_bennett", + "diamondback", + "doctor_doom", + "doctor_faustus", + "doctor_octopus", + "doctor_spectrum", + "doctor_strange", + "domino", + "donald_blake", + "doomsday", + "doorman", + "dorian_gray", + "dormammu", + "dracula", + "dragon_lord", + "dragon_man", + "drax", + "dreadnoughts", + "dreaming_celestial", + "dust", + "earthquake", + "echo", + "eddie_brock", + "edwin_jarvis", + "ego", + "electro", + "elektra", + "emma_frost", + "enchantress", + "ender_wiggin", + "energizer", + "epoch", + "eternals", + "eternity", + "excalibur", + "exiles", + "exodus", + "expediter", + "ezekiel", + "ezekiel_stane", + "fabian_cortez", + "falcon", + "fallen_one", + "famine", + "fantastic_four", + "fat_cobra", + "felicia_hardy", + "fenris", + "firebird", + "firebrand", + "firedrake", + "firelord", + "firestar", + "fixer", + "flatman", + "forge", + "forgotten_one", + "frank_castle", + "franklin_richards", + "franklin_storm", + "freak", + "frightful_four", + "frog_thor", + "gabe_jones", + "galactus", + "gambit", + "gamma_corps", + "gamora", + "gargoyle", + "garia", + "gateway", + "gauntlet", + "genesis", + "george_stacy", + "gertrude_yorkes", + "ghost_rider", + "giant_girl", + "giant_man", + "gideon", + "gladiator", + "glorian", + "goblin_queen", + "golden_guardian", + "goliath", + "gorgon", + "gorilla_man", + "grandmaster", + "gravity", + "green_goblin", + "gressill", + "grey_gargoyle", + "greymalkin", + "grim_reaper", + "groot", + "guardian", + "guardsmen", + "gunslinger", + "gwen_stacy", + "hairball", + "hammerhead", + "hannibal_king", + "hardball", + "harpoon", + "harrier", + "harry_osborn", + "havok", + "hawkeye", + "hedge_knight", + "hellcat", + "hellfire_club", + "hellion", + "hemingway", + "hercules", + "hex", + "hiroim", + "hitman", + "hobgoblin", + "hulk", + "human_cannonball", + "human_fly", + "human_robot", + "human_torch", + "husk", + "hydra", + "iceman", + "ikaris", + "imperial_guard", + "impossible_man", + "inertia", + "infant_terrible", + "inhumans", + "ink", + "invaders", + "invisible_woman", + "iron_fist", + "iron_lad", + "iron_man", + "iron_monger", + "iron_patriot", + "ironclad", + "jack_flag", + "jack_murdock", + "jack_power", + "jackal", + "jackpot", + "james_howlett", + "jamie_braddock", + "jane_foster", + "jasper_sitwell", + "jazinda", + "jean_grey", + "jetstream", + "jigsaw", + "jimmy_woo", + "jocasta", + "johnny_blaze", + "johnny_storm", + "joseph", + "joshua_kane", + "joystick", + "jubilee", + "juggernaut", + "junta", + "justice", + "justin_hammer", + "kabuki", + "kang", + "karen_page", + "karma", + "karnak", + "kat_farrell", + "kate_bishop", + "katie_power", + "ken_ellis", + "khan", + "kid_colt", + "killer_shrike", + "killmonger", + "killraven", + "king_bedlam", + "king_cobra", + "kingpin", + "kinsey_walden", + "kitty_pryde", + "klaw", + "komodo", + "korath", + "korg", + "korvac", + "kree", + "krista_starr", + "kronos", + "kulan_gath", + "kylun", + "la_nuit", + "lady_bullseye", + "lady_deathstrike", + "lady_mastermind", + "lady_ursula", + "lady_vermin", + "lake", + "landau", + "layla_miller", + "leader", + "leech", + "legion", + "lenny_balinger", + "leo", + "leopardon", + "leper_queen", + "lester", + "lethal_legion", + "lifeguard", + "lightspeed", + "lila_cheney", + "lilandra", + "lilith", + "lily_hollister", + "lionheart", + "living_lightning", + "living_mummy", + "living_tribunal", + "liz_osborn", + "lizard", + "loa", + "lockheed", + "lockjaw", + "logan", + "loki", + "loners", + "longshot", + "lord_hawal", + "lord_tyger", + "lorna_dane", + "luckman", + "lucky_pierre", + "luke_cage", + "luminals", + "lyja", + "ma_gnuci", + "mac_gargan", + "mach_iv", + "machine_man", + "mad_thinker", + "madame_hydra", + "madame_masque", + "madame_web", + "maddog", + "madelyne_pryor", + "madripoor", + "madrox", + "maelstrom", + "maestro", + "magdalene", + "maggott", + "magik", + "maginty", + "magma", + "magneto", + "magus", + "major_mapleleaf", + "makkari", + "malcolm_colcord", + "malice", + "mandarin", + "mandrill", + "mandroid", + "manta", + "mantis", + "marauders", + "maria_hill", + "mariko_yashida", + "marrow", + "marten_broadcloak", + "martin_li", + "marvel_apes", + "marvel_boy", + "marvel_zombies", + "marvex", + "masked_marvel", + "masque", + "master_chief", + "master_mold", + "mastermind", + "mathemanic", + "matthew_murdock", + "mattie_franklin", + "mauler", + "maverick", + "maximus", + "may_parker", + "medusa", + "meggan", + "meltdown", + "menace", + "mentallo", + "mentor", + "mephisto", + "mephistopheles", + "mercury", + "mesmero", + "metal_master", + "meteorite", + "micromacro", + "microbe", + "microchip", + "micromax", + "midnight", + "miek", + "mikhail_rasputin", + "millenium_guard", + "mimic", + "mindworm", + "miracleman", + "miss_america", + "mister_fear", + "mister_sinister", + "misty_knight", + "mockingbird", + "moira_mactaggert", + "mojo", + "mole_man", + "molecule_man", + "molly_hayes", + "molten_man", + "mongoose", + "mongu", + "monster_badoon", + "moon_knight", + "moondragon", + "moonstone", + "morbius", + "mordo", + "morg", + "morgan_stark", + "morlocks", + "morlun", + "morph", + "mother_askani", + "mulholland_black", + "multiple_man", + "mysterio", + "mystique", + "namor", + "namora", + "namorita", + "naoko", + "natasha_romanoff", + "nebula", + "nehzno", + "nekra", + "nemesis", + "network", + "newton_destine", + "next_avengers", + "nextwave", + "nick_fury", + "nico_minoru", + "nicolaos", + "night_nurse", + "night_thrasher", + "nightcrawler", + "nighthawk", + "nightmare", + "nightshade", + "nitro", + "nocturne", + "nomad", + "norman_osborn", + "norrin_radd", + "northstar", + "nova", + "nuke", + "obadiah_stane", + "odin", + "ogun", + "old_lace", + "omega_flight", + "omega_red", + "omega_sentinel", + "onslaught", + "oracle", + "orphan", + "otto_octavius", + "outlaw_kid", + "overlord", + "owl", + "ozymandias", + "paibok", + "paladin", + "pandemic", + "paper_doll", + "patch", + "patriot", + "payback", + "penance", + "pepper_potts", + "pestilence", + "pet_avengers", + "pete_wisdom", + "peter_parker", + "peter_quill", + "phalanx", + "phantom_reporter", + "phil_sheldon", + "photon", + "piledriver", + "pixie", + "plazm", + "polaris", + "post", + "power_man", + "power_pack", + "praxagora", + "preak", + "pretty_boy", + "pride", + "prima", + "princess_powerful", + "prism", + "prodigy", + "proemial_gods", + "professor_monster", + "proteus", + "proudstar", + "prowler", + "psylocke", + "psynapse", + "puck", + "puff_adder", + "puma", + "punisher", + "puppet_master", + "purifiers", + "purple_man", + "pyro", + "quasar", + "quasimodo", + "queen_noir", + "quentin_quire", + "quicksilver", + "rachel_grey", + "radioactive_man", + "rafael_vega", + "rage", + "raider", + "randall", + "randall_flagg", + "random", + "rattler", + "ravenous", + "rawhide_kid", + "raza", + "reaper", + "reavers", + "red_ghost", + "red_hulk", + "red_shift", + "red_skull", + "red_wolf", + "redwing", + "reptil", + "retro_girl", + "revanche", + "rhino", + "rhodey", + "richard_fisk", + "rick_jones", + "ricochet", + "rictor", + "riptide", + "risque", + "robbie_robertson", + "robin_chapel", + "rocket_raccoon", + "rocket_racer", + "rockslide", + "rogue", + "roland_deschain", + "romulus", + "ronan", + "roughhouse", + "roulette", + "roxanne_simpson", + "rumiko_fujikawa", + "runaways", + "sabra", + "sabretooth", + "sage", + "sally_floyd", + "salo", + "sandman", + "santa_claus", + "saracen", + "sasquatch", + "satana", + "sauron", + "scalphunter", + "scarecrow", + "scarlet_spider", + "scarlet_witch", + "scorpion", + "scourge", + "scrambler", + "scream", + "screwball", + "sebastian_shaw", + "secret_warriors", + "selene", + "senator_kelly", + "sentinel", + "sentinels", + "sentry", + "ser_duncan", + "serpent_society", + "sersi", + "shadow_king", + "shadowcat", + "shaman", + "shape", + "shard", + "sharon_carter", + "sharon_ventura", + "shatterstar", + "shen", + "sheva_callister", + "shinko_yamashiro", + "shinobi_shaw", + "shiva", + "shiver_man", + "shocker", + "shockwave", + "shooting_star", + "shotgun", + "shriek", + "silhouette", + "silk_fever", + "silver_centurion", + "silver_fox", + "silver_sable", + "silver_samurai", + "silver_surfer", + "silverclaw", + "silvermane", + "sinister_six", + "sir_ram", + "siren", + "sister_grimm", + "skaar", + "skin", + "skreet", + "skrulls", + "skullbuster", + "slapstick", + "slayback", + "sleeper", + "sleepwalker", + "slipstream", + "slyde", + "smasher", + "smiling_tiger", + "snowbird", + "solo", + "songbird", + "spacker_dave", + "spectrum", + "speed", + "speed_demon", + "speedball", + "spencer_smythe", + "sphinx", + "spiral", + "spirit", + "spitfire", + "spot", + "sprite", + "spyke", + "squadron_sinister", + "squadron_supreme", + "squirrel_girl", + "star_brand", + "starbolt", + "stardust", + "starfox", + "starhawk", + "starjammers", + "stark_industries", + "stature", + "steel_serpent", + "stellaris", + "stepford_cuckoos", + "stephen_strange", + "steve_rogers", + "stick", + "stingray", + "stone_men", + "storm", + "stranger", + "strong_guy", + "stryfe", + "sue_storm", + "sugar_man", + "sumo", + "sunfire", + "sunset_bain", + "sunspot", + "supernaut", + "supreme_intelligence", + "surge", + "susan_delgado", + "swarm", + "sway", + "switch", + "swordsman", + "synch", + "tag", + "talisman", + "talkback", + "talon", + "talos", + "tana_nile", + "tarantula", + "tarot", + "taskmaster", + "tattoo", + "ted_forrester", + "tempest", + "tenebrous", + "terrax", + "terror", + "texas_twister", + "thaddeus_ross", + "thanos", + "the_anarchist", + "the_call", + "the_captain", + "the_enforcers", + "the_executioner", + "the_fallen", + "the_fury", + "the_hand", + "the_hood", + "the_hunter", + "the_initiative", + "the_leader", + "the_liberteens", + "the_order", + "the_phantom", + "the_professor", + "the_renegades", + "the_santerians", + "the_spike", + "the_stranger", + "the_twelve", + "the_watchers", + "thena", + "thing", + "thor", + "thor_girl", + "thunderball", + "thunderbird", + "thunderbolt", + "thunderbolt_ross", + "thunderbolts", + "thundra", + "tiger_shark", + "tigra", + "timeslip", + "tinkerer", + "titania", + "titanium_man", + "toad", + "toad_men", + "tomas", + "tombstone", + "tomorrow_man", + "tony_stark", + "toro", + "toxin", + "trauma", + "triathlon", + "trish_tilby", + "triton", + "true_believers", + "turbo", + "tusk", + "tyger_tiger", + "typhoid_mary", + "tyrannus", + "ulik", + "ultimates", + "ultimatum", + "ultimo", + "ultragirl", + "ultron", + "umar", + "unicorn", + "union_jack", + "unus", + "valeria_richards", + "valkyrie", + "vampiro", + "vance_astro", + "vanisher", + "vapor", + "vargas", + "vector", + "veda", + "vengeance", + "venom", + "venus", + "vermin", + "vertigo", + "victor_mancha", + "vin_gonzales", + "vindicator", + "violations", + "viper", + "virginia_dare", + "vision", + "vivisector", + "vulcan", + "vulture", + "wallflower", + "wallop", + "wallow", + "war_machine", + "warbird", + "warbound", + "warhawk", + "warlock", + "warpath", + "warstar", + "wasp", + "weapon_omega", + "wendell_rand", + "wendell_vaughn", + "wendigo", + "whiplash", + "whirlwind", + "whistler", + "white_queen", + "white_tiger", + "whizzer", + "wiccan", + "wild_child", + "wild_pack", + "wildside", + "william_stryker", + "wilson_fisk", + "wind_dancer", + "winter_soldier", + "wither", + "wolf_cub", + "wolfpack", + "wolfsbane", + "wolverine", + "wonder_man", + "wong", + "wraith", + "wrecker", + "wrecking_crew", + "xavin", + "xorn", + "yellow_claw", + "yellowjacket", + "young_avengers", + "zaladane", + "zaran", + "zarda", + "zarek", + "zeigeist", + "zemo", + "zodiak", + "zombie", + "zuras", + "zzzax" + ]; + } +}); + +// src/cli/commands/migrate.ts +var migrate_exports = {}; +__export(migrate_exports, { + BREAKPOINT: () => BREAKPOINT, + columnsResolver: () => columnsResolver, + embeddedMigrations: () => embeddedMigrations, + enumsResolver: () => enumsResolver, + indPolicyResolver: () => indPolicyResolver, + mySqlViewsResolver: () => mySqlViewsResolver, + policyResolver: () => policyResolver, + prepareAndExportLibSQL: () => prepareAndExportLibSQL, + prepareAndExportMysql: () => prepareAndExportMysql, + prepareAndExportPg: () => prepareAndExportPg, + prepareAndExportSinglestore: () => prepareAndExportSinglestore, + prepareAndExportSqlite: () => prepareAndExportSqlite, + prepareAndMigrateLibSQL: () => prepareAndMigrateLibSQL, + prepareAndMigrateMysql: () => prepareAndMigrateMysql, + prepareAndMigratePg: () => prepareAndMigratePg, + prepareAndMigrateSingleStore: () => prepareAndMigrateSingleStore, + prepareAndMigrateSqlite: () => prepareAndMigrateSqlite, + prepareLibSQLPush: () => prepareLibSQLPush, + prepareMySQLPush: () => prepareMySQLPush, + preparePgPush: () => preparePgPush, + prepareSQLitePush: () => prepareSQLitePush, + prepareSingleStorePush: () => prepareSingleStorePush, + prepareSnapshotFolderName: () => prepareSnapshotFolderName, + promptColumnsConflicts: () => promptColumnsConflicts, + promptNamedConflict: () => promptNamedConflict, + promptNamedWithSchemasConflict: () => promptNamedWithSchemasConflict, + promptSchemasConflict: () => promptSchemasConflict, + roleResolver: () => roleResolver, + schemasResolver: () => schemasResolver, + sequencesResolver: () => sequencesResolver, + sqliteViewsResolver: () => sqliteViewsResolver, + tablesResolver: () => tablesResolver, + viewsResolver: () => viewsResolver, + writeResult: () => writeResult +}); +var import_fs6, import_hanji3, import_path5, schemasResolver, tablesResolver, viewsResolver, mySqlViewsResolver, sqliteViewsResolver, sequencesResolver, roleResolver, policyResolver, indPolicyResolver, enumsResolver, columnsResolver, prepareAndMigratePg, prepareAndExportPg, preparePgPush, prepareMySQLPush, prepareAndMigrateMysql, prepareSingleStorePush, prepareAndMigrateSingleStore, prepareAndExportSinglestore, prepareAndExportMysql, prepareAndMigrateSqlite, prepareAndExportSqlite, prepareAndMigrateLibSQL, prepareAndExportLibSQL, prepareSQLitePush, prepareLibSQLPush, promptColumnsConflicts, promptNamedConflict, promptNamedWithSchemasConflict, promptSchemasConflict, BREAKPOINT, writeResult, embeddedMigrations, prepareSnapshotFolderName, two; +var init_migrate = __esm({ + "src/cli/commands/migrate.ts"() { + "use strict"; + import_fs6 = __toESM(require("fs")); + init_migrationPreparator(); + init_source(); + import_hanji3 = __toESM(require_hanji()); + import_path5 = __toESM(require("path")); + init_singlestoreSchema(); + init_mysqlSchema(); + init_pgSchema(); + init_sqliteSchema(); + init_snapshotsDiffer(); + init_utils2(); + init_words(); + init_outputs(); + init_views(); + schemasResolver = async (input) => { + try { + const { created, deleted, renamed } = await promptSchemasConflict( + input.created, + input.deleted + ); + return { created, deleted, renamed }; + } catch (e4) { + console.error(e4); + throw e4; + } + }; + tablesResolver = async (input) => { + try { + const { created, deleted, moved, renamed } = await promptNamedWithSchemasConflict( + input.created, + input.deleted, + "table" + ); + return { + created, + deleted, + moved, + renamed + }; + } catch (e4) { + console.error(e4); + throw e4; + } + }; + viewsResolver = async (input) => { + try { + const { created, deleted, moved, renamed } = await promptNamedWithSchemasConflict( + input.created, + input.deleted, + "view" + ); + return { + created, + deleted, + moved, + renamed + }; + } catch (e4) { + console.error(e4); + throw e4; + } + }; + mySqlViewsResolver = async (input) => { + try { + const { created, deleted, moved, renamed } = await promptNamedWithSchemasConflict( + input.created, + input.deleted, + "view" + ); + return { + created, + deleted, + moved, + renamed + }; + } catch (e4) { + console.error(e4); + throw e4; + } + }; + sqliteViewsResolver = async (input) => { + try { + const { created, deleted, moved, renamed } = await promptNamedWithSchemasConflict( + input.created, + input.deleted, + "view" + ); + return { + created, + deleted, + moved, + renamed + }; + } catch (e4) { + console.error(e4); + throw e4; + } + }; + sequencesResolver = async (input) => { + try { + const { created, deleted, moved, renamed } = await promptNamedWithSchemasConflict( + input.created, + input.deleted, + "sequence" + ); + return { + created, + deleted, + moved, + renamed + }; + } catch (e4) { + console.error(e4); + throw e4; + } + }; + roleResolver = async (input) => { + const result = await promptNamedConflict( + input.created, + input.deleted, + "role" + ); + return { + created: result.created, + deleted: result.deleted, + renamed: result.renamed + }; + }; + policyResolver = async (input) => { + const result = await promptColumnsConflicts( + input.tableName, + input.created, + input.deleted + ); + return { + tableName: input.tableName, + schema: input.schema, + created: result.created, + deleted: result.deleted, + renamed: result.renamed + }; + }; + indPolicyResolver = async (input) => { + const result = await promptNamedConflict( + input.created, + input.deleted, + "policy" + ); + return { + created: result.created, + deleted: result.deleted, + renamed: result.renamed + }; + }; + enumsResolver = async (input) => { + try { + const { created, deleted, moved, renamed } = await promptNamedWithSchemasConflict( + input.created, + input.deleted, + "enum" + ); + return { + created, + deleted, + moved, + renamed + }; + } catch (e4) { + console.error(e4); + throw e4; + } + }; + columnsResolver = async (input) => { + const result = await promptColumnsConflicts( + input.tableName, + input.created, + input.deleted + ); + return { + tableName: input.tableName, + schema: input.schema, + created: result.created, + deleted: result.deleted, + renamed: result.renamed + }; + }; + prepareAndMigratePg = async (config) => { + const outFolder = config.out; + const schemaPath = config.schema; + const casing2 = config.casing; + try { + assertV1OutFolder(outFolder); + const { snapshots, journal } = prepareMigrationFolder( + outFolder, + "postgresql" + ); + const { prev, cur, custom: custom2 } = await preparePgMigrationSnapshot( + snapshots, + schemaPath, + casing2 + ); + const validatedPrev = pgSchema.parse(prev); + const validatedCur = pgSchema.parse(cur); + if (config.custom) { + writeResult({ + cur: custom2, + sqlStatements: [], + journal, + outFolder, + name: config.name, + breakpoints: config.breakpoints, + type: "custom", + prefixMode: config.prefix + }); + return; + } + const squashedPrev = squashPgScheme(validatedPrev); + const squashedCur = squashPgScheme(validatedCur); + const { sqlStatements, _meta } = await applyPgSnapshotsDiff( + squashedPrev, + squashedCur, + schemasResolver, + enumsResolver, + sequencesResolver, + policyResolver, + indPolicyResolver, + roleResolver, + tablesResolver, + columnsResolver, + viewsResolver, + validatedPrev, + validatedCur + ); + writeResult({ + cur, + sqlStatements, + journal, + outFolder, + name: config.name, + breakpoints: config.breakpoints, + prefixMode: config.prefix + }); + } catch (e4) { + console.error(e4); + } + }; + prepareAndExportPg = async (config) => { + const schemaPath = config.schema; + try { + const { prev, cur } = await preparePgMigrationSnapshot( + [], + // no snapshots before + schemaPath, + void 0 + ); + const validatedPrev = pgSchema.parse(prev); + const validatedCur = pgSchema.parse(cur); + const squashedPrev = squashPgScheme(validatedPrev); + const squashedCur = squashPgScheme(validatedCur); + const { sqlStatements } = await applyPgSnapshotsDiff( + squashedPrev, + squashedCur, + schemasResolver, + enumsResolver, + sequencesResolver, + policyResolver, + indPolicyResolver, + roleResolver, + tablesResolver, + columnsResolver, + viewsResolver, + validatedPrev, + validatedCur + ); + console.log(sqlStatements.join("\n")); + } catch (e4) { + console.error(e4); + } + }; + preparePgPush = async (cur, prev) => { + const validatedPrev = pgSchema.parse(prev); + const validatedCur = pgSchema.parse(cur); + const squashedPrev = squashPgScheme(validatedPrev, "push"); + const squashedCur = squashPgScheme(validatedCur, "push"); + const { sqlStatements, statements, _meta } = await applyPgSnapshotsDiff( + squashedPrev, + squashedCur, + schemasResolver, + enumsResolver, + sequencesResolver, + policyResolver, + indPolicyResolver, + roleResolver, + tablesResolver, + columnsResolver, + viewsResolver, + validatedPrev, + validatedCur, + "push" + ); + return { sqlStatements, statements, squashedPrev, squashedCur }; + }; + prepareMySQLPush = async (schemaPath, snapshot, casing2) => { + try { + const { prev, cur } = await prepareMySqlDbPushSnapshot( + snapshot, + schemaPath, + casing2 + ); + const validatedPrev = mysqlSchema.parse(prev); + const validatedCur = mysqlSchema.parse(cur); + const squashedPrev = squashMysqlScheme(validatedPrev); + const squashedCur = squashMysqlScheme(validatedCur); + const { sqlStatements, statements } = await applyMysqlSnapshotsDiff( + squashedPrev, + squashedCur, + tablesResolver, + columnsResolver, + mySqlViewsResolver, + validatedPrev, + validatedCur, + "push" + ); + return { sqlStatements, statements, validatedCur, validatedPrev }; + } catch (e4) { + console.error(e4); + process.exit(1); + } + }; + prepareAndMigrateMysql = async (config) => { + const outFolder = config.out; + const schemaPath = config.schema; + const casing2 = config.casing; + try { + assertV1OutFolder(outFolder); + const { snapshots, journal } = prepareMigrationFolder(outFolder, "mysql"); + const { prev, cur, custom: custom2 } = await prepareMySqlMigrationSnapshot( + snapshots, + schemaPath, + casing2 + ); + const validatedPrev = mysqlSchema.parse(prev); + const validatedCur = mysqlSchema.parse(cur); + if (config.custom) { + writeResult({ + cur: custom2, + sqlStatements: [], + journal, + outFolder, + name: config.name, + breakpoints: config.breakpoints, + type: "custom", + prefixMode: config.prefix + }); + return; + } + const squashedPrev = squashMysqlScheme(validatedPrev); + const squashedCur = squashMysqlScheme(validatedCur); + const { sqlStatements, statements, _meta } = await applyMysqlSnapshotsDiff( + squashedPrev, + squashedCur, + tablesResolver, + columnsResolver, + mySqlViewsResolver, + validatedPrev, + validatedCur + ); + writeResult({ + cur, + sqlStatements, + journal, + _meta, + outFolder, + name: config.name, + breakpoints: config.breakpoints, + prefixMode: config.prefix + }); + } catch (e4) { + console.error(e4); + } + }; + prepareSingleStorePush = async (schemaPath, snapshot, casing2) => { + try { + const { prev, cur } = await prepareSingleStoreDbPushSnapshot( + snapshot, + schemaPath, + casing2 + ); + const validatedPrev = singlestoreSchema.parse(prev); + const validatedCur = singlestoreSchema.parse(cur); + const squashedPrev = squashSingleStoreScheme(validatedPrev); + const squashedCur = squashSingleStoreScheme(validatedCur); + const { sqlStatements, statements } = await applySingleStoreSnapshotsDiff( + squashedPrev, + squashedCur, + tablesResolver, + columnsResolver, + /* singleStoreViewsResolver, */ + validatedPrev, + validatedCur, + "push" + ); + return { sqlStatements, statements, validatedCur, validatedPrev }; + } catch (e4) { + console.error(e4); + process.exit(1); + } + }; + prepareAndMigrateSingleStore = async (config) => { + const outFolder = config.out; + const schemaPath = config.schema; + const casing2 = config.casing; + try { + assertV1OutFolder(outFolder); + const { snapshots, journal } = prepareMigrationFolder(outFolder, "singlestore"); + const { prev, cur, custom: custom2 } = await prepareSingleStoreMigrationSnapshot( + snapshots, + schemaPath, + casing2 + ); + const validatedPrev = singlestoreSchema.parse(prev); + const validatedCur = singlestoreSchema.parse(cur); + if (config.custom) { + writeResult({ + cur: custom2, + sqlStatements: [], + journal, + outFolder, + name: config.name, + breakpoints: config.breakpoints, + type: "custom", + prefixMode: config.prefix + }); + return; + } + const squashedPrev = squashSingleStoreScheme(validatedPrev); + const squashedCur = squashSingleStoreScheme(validatedCur); + const { sqlStatements, _meta } = await applySingleStoreSnapshotsDiff( + squashedPrev, + squashedCur, + tablesResolver, + columnsResolver, + /* singleStoreViewsResolver, */ + validatedPrev, + validatedCur + ); + writeResult({ + cur, + sqlStatements, + journal, + _meta, + outFolder, + name: config.name, + breakpoints: config.breakpoints, + prefixMode: config.prefix + }); + } catch (e4) { + console.error(e4); + } + }; + prepareAndExportSinglestore = async (config) => { + const schemaPath = config.schema; + try { + const { prev, cur } = await prepareSingleStoreMigrationSnapshot( + [], + schemaPath, + void 0 + ); + const validatedPrev = singlestoreSchema.parse(prev); + const validatedCur = singlestoreSchema.parse(cur); + const squashedPrev = squashSingleStoreScheme(validatedPrev); + const squashedCur = squashSingleStoreScheme(validatedCur); + const { sqlStatements, _meta } = await applySingleStoreSnapshotsDiff( + squashedPrev, + squashedCur, + tablesResolver, + columnsResolver, + /* singleStoreViewsResolver, */ + validatedPrev, + validatedCur + ); + console.log(sqlStatements.join("\n")); + } catch (e4) { + console.error(e4); + } + }; + prepareAndExportMysql = async (config) => { + const schemaPath = config.schema; + try { + const { prev, cur, custom: custom2 } = await prepareMySqlMigrationSnapshot( + [], + schemaPath, + void 0 + ); + const validatedPrev = mysqlSchema.parse(prev); + const validatedCur = mysqlSchema.parse(cur); + const squashedPrev = squashMysqlScheme(validatedPrev); + const squashedCur = squashMysqlScheme(validatedCur); + const { sqlStatements, statements, _meta } = await applyMysqlSnapshotsDiff( + squashedPrev, + squashedCur, + tablesResolver, + columnsResolver, + mySqlViewsResolver, + validatedPrev, + validatedCur + ); + console.log(sqlStatements.join("\n")); + } catch (e4) { + console.error(e4); + } + }; + prepareAndMigrateSqlite = async (config) => { + const outFolder = config.out; + const schemaPath = config.schema; + const casing2 = config.casing; + try { + assertV1OutFolder(outFolder); + const { snapshots, journal } = prepareMigrationFolder(outFolder, "sqlite"); + const { prev, cur, custom: custom2 } = await prepareSqliteMigrationSnapshot( + snapshots, + schemaPath, + casing2 + ); + const validatedPrev = sqliteSchema.parse(prev); + const validatedCur = sqliteSchema.parse(cur); + if (config.custom) { + writeResult({ + cur: custom2, + sqlStatements: [], + journal, + outFolder, + name: config.name, + breakpoints: config.breakpoints, + bundle: config.bundle, + type: "custom", + prefixMode: config.prefix + }); + return; + } + const squashedPrev = squashSqliteScheme(validatedPrev); + const squashedCur = squashSqliteScheme(validatedCur); + const { sqlStatements, _meta } = await applySqliteSnapshotsDiff( + squashedPrev, + squashedCur, + tablesResolver, + columnsResolver, + sqliteViewsResolver, + validatedPrev, + validatedCur + ); + writeResult({ + cur, + sqlStatements, + journal, + _meta, + outFolder, + name: config.name, + breakpoints: config.breakpoints, + bundle: config.bundle, + prefixMode: config.prefix, + driver: config.driver + }); + } catch (e4) { + console.error(e4); + } + }; + prepareAndExportSqlite = async (config) => { + const schemaPath = config.schema; + try { + const { prev, cur } = await prepareSqliteMigrationSnapshot( + [], + schemaPath, + void 0 + ); + const validatedPrev = sqliteSchema.parse(prev); + const validatedCur = sqliteSchema.parse(cur); + const squashedPrev = squashSqliteScheme(validatedPrev); + const squashedCur = squashSqliteScheme(validatedCur); + const { sqlStatements, _meta } = await applySqliteSnapshotsDiff( + squashedPrev, + squashedCur, + tablesResolver, + columnsResolver, + sqliteViewsResolver, + validatedPrev, + validatedCur + ); + console.log(sqlStatements.join("\n")); + } catch (e4) { + console.error(e4); + } + }; + prepareAndMigrateLibSQL = async (config) => { + const outFolder = config.out; + const schemaPath = config.schema; + const casing2 = config.casing; + try { + assertV1OutFolder(outFolder); + const { snapshots, journal } = prepareMigrationFolder(outFolder, "sqlite"); + const { prev, cur, custom: custom2 } = await prepareSqliteMigrationSnapshot( + snapshots, + schemaPath, + casing2 + ); + const validatedPrev = sqliteSchema.parse(prev); + const validatedCur = sqliteSchema.parse(cur); + if (config.custom) { + writeResult({ + cur: custom2, + sqlStatements: [], + journal, + outFolder, + name: config.name, + breakpoints: config.breakpoints, + bundle: config.bundle, + type: "custom", + prefixMode: config.prefix + }); + return; + } + const squashedPrev = squashSqliteScheme(validatedPrev); + const squashedCur = squashSqliteScheme(validatedCur); + const { sqlStatements, _meta } = await applyLibSQLSnapshotsDiff( + squashedPrev, + squashedCur, + tablesResolver, + columnsResolver, + sqliteViewsResolver, + validatedPrev, + validatedCur + ); + writeResult({ + cur, + sqlStatements, + journal, + _meta, + outFolder, + name: config.name, + breakpoints: config.breakpoints, + bundle: config.bundle, + prefixMode: config.prefix + }); + } catch (e4) { + console.error(e4); + } + }; + prepareAndExportLibSQL = async (config) => { + const schemaPath = config.schema; + try { + const { prev, cur, custom: custom2 } = await prepareSqliteMigrationSnapshot( + [], + schemaPath, + void 0 + ); + const validatedPrev = sqliteSchema.parse(prev); + const validatedCur = sqliteSchema.parse(cur); + const squashedPrev = squashSqliteScheme(validatedPrev); + const squashedCur = squashSqliteScheme(validatedCur); + const { sqlStatements, _meta } = await applyLibSQLSnapshotsDiff( + squashedPrev, + squashedCur, + tablesResolver, + columnsResolver, + sqliteViewsResolver, + validatedPrev, + validatedCur + ); + console.log(sqlStatements.join("\n")); + } catch (e4) { + console.error(e4); + } + }; + prepareSQLitePush = async (schemaPath, snapshot, casing2) => { + const { prev, cur } = await prepareSQLiteDbPushSnapshot(snapshot, schemaPath, casing2); + const validatedPrev = sqliteSchema.parse(prev); + const validatedCur = sqliteSchema.parse(cur); + const squashedPrev = squashSqliteScheme(validatedPrev, "push"); + const squashedCur = squashSqliteScheme(validatedCur, "push"); + const { sqlStatements, statements, _meta } = await applySqliteSnapshotsDiff( + squashedPrev, + squashedCur, + tablesResolver, + columnsResolver, + sqliteViewsResolver, + validatedPrev, + validatedCur, + "push" + ); + return { + sqlStatements, + statements, + squashedPrev, + squashedCur, + meta: _meta + }; + }; + prepareLibSQLPush = async (schemaPath, snapshot, casing2) => { + const { prev, cur } = await prepareSQLiteDbPushSnapshot(snapshot, schemaPath, casing2); + const validatedPrev = sqliteSchema.parse(prev); + const validatedCur = sqliteSchema.parse(cur); + const squashedPrev = squashSqliteScheme(validatedPrev, "push"); + const squashedCur = squashSqliteScheme(validatedCur, "push"); + const { sqlStatements, statements, _meta } = await applyLibSQLSnapshotsDiff( + squashedPrev, + squashedCur, + tablesResolver, + columnsResolver, + sqliteViewsResolver, + validatedPrev, + validatedCur, + "push" + ); + return { + sqlStatements, + statements, + squashedPrev, + squashedCur, + meta: _meta + }; + }; + promptColumnsConflicts = async (tableName, newColumns, missingColumns) => { + if (newColumns.length === 0 || missingColumns.length === 0) { + return { created: newColumns, renamed: [], deleted: missingColumns }; + } + const result = { + created: [], + renamed: [], + deleted: [] + }; + let index6 = 0; + let leftMissing = [...missingColumns]; + do { + const created = newColumns[index6]; + const renames = leftMissing.map((it) => { + return { from: it, to: created }; + }); + const promptData = [created, ...renames]; + const { status, data } = await (0, import_hanji3.render)( + new ResolveColumnSelect(tableName, created, promptData) + ); + if (status === "aborted") { + console.error("ERROR"); + process.exit(1); + } + if (isRenamePromptItem(data)) { + console.log( + `${source_default.yellow("~")} ${data.from.name} \u203A ${data.to.name} ${source_default.gray( + "column will be renamed" + )}` + ); + result.renamed.push(data); + delete leftMissing[leftMissing.indexOf(data.from)]; + leftMissing = leftMissing.filter(Boolean); + } else { + console.log( + `${source_default.green("+")} ${data.name} ${source_default.gray( + "column will be created" + )}` + ); + result.created.push(created); + } + index6 += 1; + } while (index6 < newColumns.length); + console.log( + source_default.gray(`--- all columns conflicts in ${tableName} table resolved --- +`) + ); + result.deleted.push(...leftMissing); + return result; + }; + promptNamedConflict = async (newItems, missingItems, entity) => { + if (missingItems.length === 0 || newItems.length === 0) { + return { + created: newItems, + renamed: [], + deleted: missingItems + }; + } + const result = { created: [], renamed: [], deleted: [] }; + let index6 = 0; + let leftMissing = [...missingItems]; + do { + const created = newItems[index6]; + const renames = leftMissing.map((it) => { + return { from: it, to: created }; + }); + const promptData = [created, ...renames]; + const { status, data } = await (0, import_hanji3.render)( + new ResolveSelectNamed(created, promptData, entity) + ); + if (status === "aborted") { + console.error("ERROR"); + process.exit(1); + } + if (isRenamePromptItem(data)) { + console.log( + `${source_default.yellow("~")} ${data.from.name} \u203A ${data.to.name} ${source_default.gray( + `${entity} will be renamed/moved` + )}` + ); + if (data.from.name !== data.to.name) { + result.renamed.push(data); + } + delete leftMissing[leftMissing.indexOf(data.from)]; + leftMissing = leftMissing.filter(Boolean); + } else { + console.log( + `${source_default.green("+")} ${data.name} ${source_default.gray( + `${entity} will be created` + )}` + ); + result.created.push(created); + } + index6 += 1; + } while (index6 < newItems.length); + console.log(source_default.gray(`--- all ${entity} conflicts resolved --- +`)); + result.deleted.push(...leftMissing); + return result; + }; + promptNamedWithSchemasConflict = async (newItems, missingItems, entity) => { + if (missingItems.length === 0 || newItems.length === 0) { + return { + created: newItems, + renamed: [], + moved: [], + deleted: missingItems + }; + } + const result = { created: [], renamed: [], moved: [], deleted: [] }; + let index6 = 0; + let leftMissing = [...missingItems]; + do { + const created = newItems[index6]; + const renames = leftMissing.map((it) => { + return { from: it, to: created }; + }); + const promptData = [created, ...renames]; + const { status, data } = await (0, import_hanji3.render)( + new ResolveSelect(created, promptData, entity) + ); + if (status === "aborted") { + console.error("ERROR"); + process.exit(1); + } + if (isRenamePromptItem(data)) { + const schemaFromPrefix = !data.from.schema || data.from.schema === "public" ? "" : `${data.from.schema}.`; + const schemaToPrefix = !data.to.schema || data.to.schema === "public" ? "" : `${data.to.schema}.`; + console.log( + `${source_default.yellow("~")} ${schemaFromPrefix}${data.from.name} \u203A ${schemaToPrefix}${data.to.name} ${source_default.gray( + `${entity} will be renamed/moved` + )}` + ); + if (data.from.name !== data.to.name) { + result.renamed.push(data); + } + if (data.from.schema !== data.to.schema) { + result.moved.push({ + name: data.from.name, + schemaFrom: data.from.schema || "public", + schemaTo: data.to.schema || "public" + }); + } + delete leftMissing[leftMissing.indexOf(data.from)]; + leftMissing = leftMissing.filter(Boolean); + } else { + console.log( + `${source_default.green("+")} ${data.name} ${source_default.gray( + `${entity} will be created` + )}` + ); + result.created.push(created); + } + index6 += 1; + } while (index6 < newItems.length); + console.log(source_default.gray(`--- all ${entity} conflicts resolved --- +`)); + result.deleted.push(...leftMissing); + return result; + }; + promptSchemasConflict = async (newSchemas, missingSchemas) => { + if (missingSchemas.length === 0 || newSchemas.length === 0) { + return { created: newSchemas, renamed: [], deleted: missingSchemas }; + } + const result = { + created: [], + renamed: [], + deleted: [] + }; + let index6 = 0; + let leftMissing = [...missingSchemas]; + do { + const created = newSchemas[index6]; + const renames = leftMissing.map((it) => { + return { from: it, to: created }; + }); + const promptData = [created, ...renames]; + const { status, data } = await (0, import_hanji3.render)( + new ResolveSchemasSelect(created, promptData) + ); + if (status === "aborted") { + console.error("ERROR"); + process.exit(1); + } + if (isRenamePromptItem(data)) { + console.log( + `${source_default.yellow("~")} ${data.from.name} \u203A ${data.to.name} ${source_default.gray( + "schema will be renamed" + )}` + ); + result.renamed.push(data); + delete leftMissing[leftMissing.indexOf(data.from)]; + leftMissing = leftMissing.filter(Boolean); + } else { + console.log( + `${source_default.green("+")} ${data.name} ${source_default.gray( + "schema will be created" + )}` + ); + result.created.push(created); + } + index6 += 1; + } while (index6 < newSchemas.length); + console.log(source_default.gray("--- all schemas conflicts resolved ---\n")); + result.deleted.push(...leftMissing); + return result; + }; + BREAKPOINT = "--> statement-breakpoint\n"; + writeResult = ({ + cur, + sqlStatements, + journal, + _meta = { + columns: {}, + schemas: {}, + tables: {} + }, + outFolder, + breakpoints, + name, + bundle = false, + type = "none", + prefixMode, + driver: driver2 + }) => { + if (type === "none") { + console.log(schema4(cur)); + if (sqlStatements.length === 0) { + console.log("No schema changes, nothing to migrate \u{1F634}"); + return; + } + } + const lastEntryInJournal = journal.entries[journal.entries.length - 1]; + const idx = typeof lastEntryInJournal === "undefined" ? 0 : lastEntryInJournal.idx + 1; + const { prefix: prefix2, tag } = prepareMigrationMetadata(idx, prefixMode, name); + const toSave = JSON.parse(JSON.stringify(cur)); + toSave["_meta"] = _meta; + const metaFolderPath = (0, import_path5.join)(outFolder, "meta"); + const metaJournal = (0, import_path5.join)(metaFolderPath, "_journal.json"); + import_fs6.default.writeFileSync( + (0, import_path5.join)(metaFolderPath, `${prefix2}_snapshot.json`), + JSON.stringify(toSave, null, 2) + ); + const sqlDelimiter = breakpoints ? BREAKPOINT : "\n"; + let sql = sqlStatements.join(sqlDelimiter); + if (type === "introspect") { + sql = `-- Current sql file was generated after introspecting the database +-- If you want to run this migration please uncomment this code before executing migrations +/* +${sql} +*/`; + } + if (type === "custom") { + console.log("Prepared empty file for your custom SQL migration!"); + sql = "-- Custom SQL migration file, put your code below! --"; + } + journal.entries.push({ + idx, + version: cur.version, + when: +/* @__PURE__ */ new Date(), + tag, + breakpoints + }); + import_fs6.default.writeFileSync(metaJournal, JSON.stringify(journal, null, 2)); + import_fs6.default.writeFileSync(`${outFolder}/${tag}.sql`, sql); + if (bundle) { + const js = embeddedMigrations(journal, driver2); + import_fs6.default.writeFileSync(`${outFolder}/migrations.js`, js); + } + (0, import_hanji3.render)( + `[${source_default.green( + "\u2713" + )}] Your SQL migration file \u279C ${source_default.bold.underline.blue( + import_path5.default.join(`${outFolder}/${tag}.sql`) + )} \u{1F680}` + ); + }; + embeddedMigrations = (journal, driver2) => { + let content = driver2 === "expo" ? "// This file is required for Expo/React Native SQLite migrations - https://orm.drizzle.team/quick-sqlite/expo\n\n" : ""; + content += "import journal from './meta/_journal.json';\n"; + journal.entries.forEach((entry) => { + content += `import m${entry.idx.toString().padStart(4, "0")} from './${entry.tag}.sql'; +`; + }); + content += ` + export default { + journal, + migrations: { + ${journal.entries.map((it) => `m${it.idx.toString().padStart(4, "0")}`).join(",\n")} + } + } + `; + return content; + }; + prepareSnapshotFolderName = () => { + const now = /* @__PURE__ */ new Date(); + return `${now.getFullYear()}${two(now.getUTCMonth() + 1)}${two( + now.getUTCDate() + )}${two(now.getUTCHours())}${two(now.getUTCMinutes())}${two( + now.getUTCSeconds() + )}`; + }; + two = (input) => { + return input.toString().padStart(2, "0"); + }; + } +}); + +// ../node_modules/.pnpm/semver@7.7.2/node_modules/semver/internal/constants.js +var require_constants = __commonJS({ + "../node_modules/.pnpm/semver@7.7.2/node_modules/semver/internal/constants.js"(exports2, module2) { + "use strict"; + var SEMVER_SPEC_VERSION = "2.0.0"; + var MAX_LENGTH = 256; + var MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || /* istanbul ignore next */ + 9007199254740991; + var MAX_SAFE_COMPONENT_LENGTH = 16; + var MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6; + var RELEASE_TYPES = [ + "major", + "premajor", + "minor", + "preminor", + "patch", + "prepatch", + "prerelease" + ]; + module2.exports = { + MAX_LENGTH, + MAX_SAFE_COMPONENT_LENGTH, + MAX_SAFE_BUILD_LENGTH, + MAX_SAFE_INTEGER, + RELEASE_TYPES, + SEMVER_SPEC_VERSION, + FLAG_INCLUDE_PRERELEASE: 1, + FLAG_LOOSE: 2 + }; + } +}); + +// ../node_modules/.pnpm/semver@7.7.2/node_modules/semver/internal/debug.js +var require_debug = __commonJS({ + "../node_modules/.pnpm/semver@7.7.2/node_modules/semver/internal/debug.js"(exports2, module2) { + "use strict"; + var debug = typeof process === "object" && process.env && process.env.NODE_DEBUG && /\bsemver\b/i.test(process.env.NODE_DEBUG) ? (...args) => console.error("SEMVER", ...args) : () => { + }; + module2.exports = debug; + } +}); + +// ../node_modules/.pnpm/semver@7.7.2/node_modules/semver/internal/re.js +var require_re = __commonJS({ + "../node_modules/.pnpm/semver@7.7.2/node_modules/semver/internal/re.js"(exports2, module2) { + "use strict"; + var { + MAX_SAFE_COMPONENT_LENGTH, + MAX_SAFE_BUILD_LENGTH, + MAX_LENGTH + } = require_constants(); + var debug = require_debug(); + exports2 = module2.exports = {}; + var re = exports2.re = []; + var safeRe = exports2.safeRe = []; + var src = exports2.src = []; + var safeSrc = exports2.safeSrc = []; + var t4 = exports2.t = {}; + var R = 0; + var LETTERDASHNUMBER = "[a-zA-Z0-9-]"; + var safeRegexReplacements = [ + ["\\s", 1], + ["\\d", MAX_LENGTH], + [LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH] + ]; + var makeSafeRegex = (value) => { + for (const [token, max] of safeRegexReplacements) { + value = value.split(`${token}*`).join(`${token}{0,${max}}`).split(`${token}+`).join(`${token}{1,${max}}`); + } + return value; + }; + var createToken = (name, value, isGlobal) => { + const safe = makeSafeRegex(value); + const index6 = R++; + debug(name, index6, value); + t4[name] = index6; + src[index6] = value; + safeSrc[index6] = safe; + re[index6] = new RegExp(value, isGlobal ? "g" : void 0); + safeRe[index6] = new RegExp(safe, isGlobal ? "g" : void 0); + }; + createToken("NUMERICIDENTIFIER", "0|[1-9]\\d*"); + createToken("NUMERICIDENTIFIERLOOSE", "\\d+"); + createToken("NONNUMERICIDENTIFIER", `\\d*[a-zA-Z-]${LETTERDASHNUMBER}*`); + createToken("MAINVERSION", `(${src[t4.NUMERICIDENTIFIER]})\\.(${src[t4.NUMERICIDENTIFIER]})\\.(${src[t4.NUMERICIDENTIFIER]})`); + createToken("MAINVERSIONLOOSE", `(${src[t4.NUMERICIDENTIFIERLOOSE]})\\.(${src[t4.NUMERICIDENTIFIERLOOSE]})\\.(${src[t4.NUMERICIDENTIFIERLOOSE]})`); + createToken("PRERELEASEIDENTIFIER", `(?:${src[t4.NONNUMERICIDENTIFIER]}|${src[t4.NUMERICIDENTIFIER]})`); + createToken("PRERELEASEIDENTIFIERLOOSE", `(?:${src[t4.NONNUMERICIDENTIFIER]}|${src[t4.NUMERICIDENTIFIERLOOSE]})`); + createToken("PRERELEASE", `(?:-(${src[t4.PRERELEASEIDENTIFIER]}(?:\\.${src[t4.PRERELEASEIDENTIFIER]})*))`); + createToken("PRERELEASELOOSE", `(?:-?(${src[t4.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${src[t4.PRERELEASEIDENTIFIERLOOSE]})*))`); + createToken("BUILDIDENTIFIER", `${LETTERDASHNUMBER}+`); + createToken("BUILD", `(?:\\+(${src[t4.BUILDIDENTIFIER]}(?:\\.${src[t4.BUILDIDENTIFIER]})*))`); + createToken("FULLPLAIN", `v?${src[t4.MAINVERSION]}${src[t4.PRERELEASE]}?${src[t4.BUILD]}?`); + createToken("FULL", `^${src[t4.FULLPLAIN]}$`); + createToken("LOOSEPLAIN", `[v=\\s]*${src[t4.MAINVERSIONLOOSE]}${src[t4.PRERELEASELOOSE]}?${src[t4.BUILD]}?`); + createToken("LOOSE", `^${src[t4.LOOSEPLAIN]}$`); + createToken("GTLT", "((?:<|>)?=?)"); + createToken("XRANGEIDENTIFIERLOOSE", `${src[t4.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`); + createToken("XRANGEIDENTIFIER", `${src[t4.NUMERICIDENTIFIER]}|x|X|\\*`); + createToken("XRANGEPLAIN", `[v=\\s]*(${src[t4.XRANGEIDENTIFIER]})(?:\\.(${src[t4.XRANGEIDENTIFIER]})(?:\\.(${src[t4.XRANGEIDENTIFIER]})(?:${src[t4.PRERELEASE]})?${src[t4.BUILD]}?)?)?`); + createToken("XRANGEPLAINLOOSE", `[v=\\s]*(${src[t4.XRANGEIDENTIFIERLOOSE]})(?:\\.(${src[t4.XRANGEIDENTIFIERLOOSE]})(?:\\.(${src[t4.XRANGEIDENTIFIERLOOSE]})(?:${src[t4.PRERELEASELOOSE]})?${src[t4.BUILD]}?)?)?`); + createToken("XRANGE", `^${src[t4.GTLT]}\\s*${src[t4.XRANGEPLAIN]}$`); + createToken("XRANGELOOSE", `^${src[t4.GTLT]}\\s*${src[t4.XRANGEPLAINLOOSE]}$`); + createToken("COERCEPLAIN", `${"(^|[^\\d])(\\d{1,"}${MAX_SAFE_COMPONENT_LENGTH}})(?:\\.(\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?(?:\\.(\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?`); + createToken("COERCE", `${src[t4.COERCEPLAIN]}(?:$|[^\\d])`); + createToken("COERCEFULL", src[t4.COERCEPLAIN] + `(?:${src[t4.PRERELEASE]})?(?:${src[t4.BUILD]})?(?:$|[^\\d])`); + createToken("COERCERTL", src[t4.COERCE], true); + createToken("COERCERTLFULL", src[t4.COERCEFULL], true); + createToken("LONETILDE", "(?:~>?)"); + createToken("TILDETRIM", `(\\s*)${src[t4.LONETILDE]}\\s+`, true); + exports2.tildeTrimReplace = "$1~"; + createToken("TILDE", `^${src[t4.LONETILDE]}${src[t4.XRANGEPLAIN]}$`); + createToken("TILDELOOSE", `^${src[t4.LONETILDE]}${src[t4.XRANGEPLAINLOOSE]}$`); + createToken("LONECARET", "(?:\\^)"); + createToken("CARETTRIM", `(\\s*)${src[t4.LONECARET]}\\s+`, true); + exports2.caretTrimReplace = "$1^"; + createToken("CARET", `^${src[t4.LONECARET]}${src[t4.XRANGEPLAIN]}$`); + createToken("CARETLOOSE", `^${src[t4.LONECARET]}${src[t4.XRANGEPLAINLOOSE]}$`); + createToken("COMPARATORLOOSE", `^${src[t4.GTLT]}\\s*(${src[t4.LOOSEPLAIN]})$|^$`); + createToken("COMPARATOR", `^${src[t4.GTLT]}\\s*(${src[t4.FULLPLAIN]})$|^$`); + createToken("COMPARATORTRIM", `(\\s*)${src[t4.GTLT]}\\s*(${src[t4.LOOSEPLAIN]}|${src[t4.XRANGEPLAIN]})`, true); + exports2.comparatorTrimReplace = "$1$2$3"; + createToken("HYPHENRANGE", `^\\s*(${src[t4.XRANGEPLAIN]})\\s+-\\s+(${src[t4.XRANGEPLAIN]})\\s*$`); + createToken("HYPHENRANGELOOSE", `^\\s*(${src[t4.XRANGEPLAINLOOSE]})\\s+-\\s+(${src[t4.XRANGEPLAINLOOSE]})\\s*$`); + createToken("STAR", "(<|>)?=?\\s*\\*"); + createToken("GTE0", "^\\s*>=\\s*0\\.0\\.0\\s*$"); + createToken("GTE0PRE", "^\\s*>=\\s*0\\.0\\.0-0\\s*$"); + } +}); + +// ../node_modules/.pnpm/semver@7.7.2/node_modules/semver/internal/parse-options.js +var require_parse_options = __commonJS({ + "../node_modules/.pnpm/semver@7.7.2/node_modules/semver/internal/parse-options.js"(exports2, module2) { + "use strict"; + var looseOption = Object.freeze({ loose: true }); + var emptyOpts = Object.freeze({}); + var parseOptions2 = (options) => { + if (!options) { + return emptyOpts; + } + if (typeof options !== "object") { + return looseOption; + } + return options; + }; + module2.exports = parseOptions2; + } +}); + +// ../node_modules/.pnpm/semver@7.7.2/node_modules/semver/internal/identifiers.js +var require_identifiers = __commonJS({ + "../node_modules/.pnpm/semver@7.7.2/node_modules/semver/internal/identifiers.js"(exports2, module2) { + "use strict"; + var numeric = /^[0-9]+$/; + var compareIdentifiers = (a3, b3) => { + const anum = numeric.test(a3); + const bnum = numeric.test(b3); + if (anum && bnum) { + a3 = +a3; + b3 = +b3; + } + return a3 === b3 ? 0 : anum && !bnum ? -1 : bnum && !anum ? 1 : a3 < b3 ? -1 : 1; + }; + var rcompareIdentifiers = (a3, b3) => compareIdentifiers(b3, a3); + module2.exports = { + compareIdentifiers, + rcompareIdentifiers + }; + } +}); + +// ../node_modules/.pnpm/semver@7.7.2/node_modules/semver/classes/semver.js +var require_semver = __commonJS({ + "../node_modules/.pnpm/semver@7.7.2/node_modules/semver/classes/semver.js"(exports2, module2) { + "use strict"; + var debug = require_debug(); + var { MAX_LENGTH, MAX_SAFE_INTEGER } = require_constants(); + var { safeRe: re, t: t4 } = require_re(); + var parseOptions2 = require_parse_options(); + var { compareIdentifiers } = require_identifiers(); + var SemVer = class _SemVer { + constructor(version3, options) { + options = parseOptions2(options); + if (version3 instanceof _SemVer) { + if (version3.loose === !!options.loose && version3.includePrerelease === !!options.includePrerelease) { + return version3; + } else { + version3 = version3.version; + } + } else if (typeof version3 !== "string") { + throw new TypeError(`Invalid version. Must be a string. Got type "${typeof version3}".`); + } + if (version3.length > MAX_LENGTH) { + throw new TypeError( + `version is longer than ${MAX_LENGTH} characters` + ); + } + debug("SemVer", version3, options); + this.options = options; + this.loose = !!options.loose; + this.includePrerelease = !!options.includePrerelease; + const m4 = version3.trim().match(options.loose ? re[t4.LOOSE] : re[t4.FULL]); + if (!m4) { + throw new TypeError(`Invalid Version: ${version3}`); + } + this.raw = version3; + this.major = +m4[1]; + this.minor = +m4[2]; + this.patch = +m4[3]; + if (this.major > MAX_SAFE_INTEGER || this.major < 0) { + throw new TypeError("Invalid major version"); + } + if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) { + throw new TypeError("Invalid minor version"); + } + if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) { + throw new TypeError("Invalid patch version"); + } + if (!m4[4]) { + this.prerelease = []; + } else { + this.prerelease = m4[4].split(".").map((id) => { + if (/^[0-9]+$/.test(id)) { + const num = +id; + if (num >= 0 && num < MAX_SAFE_INTEGER) { + return num; + } + } + return id; + }); + } + this.build = m4[5] ? m4[5].split(".") : []; + this.format(); + } + format() { + this.version = `${this.major}.${this.minor}.${this.patch}`; + if (this.prerelease.length) { + this.version += `-${this.prerelease.join(".")}`; + } + return this.version; + } + toString() { + return this.version; + } + compare(other) { + debug("SemVer.compare", this.version, this.options, other); + if (!(other instanceof _SemVer)) { + if (typeof other === "string" && other === this.version) { + return 0; + } + other = new _SemVer(other, this.options); + } + if (other.version === this.version) { + return 0; + } + return this.compareMain(other) || this.comparePre(other); + } + compareMain(other) { + if (!(other instanceof _SemVer)) { + other = new _SemVer(other, this.options); + } + return compareIdentifiers(this.major, other.major) || compareIdentifiers(this.minor, other.minor) || compareIdentifiers(this.patch, other.patch); + } + comparePre(other) { + if (!(other instanceof _SemVer)) { + other = new _SemVer(other, this.options); + } + if (this.prerelease.length && !other.prerelease.length) { + return -1; + } else if (!this.prerelease.length && other.prerelease.length) { + return 1; + } else if (!this.prerelease.length && !other.prerelease.length) { + return 0; + } + let i4 = 0; + do { + const a3 = this.prerelease[i4]; + const b3 = other.prerelease[i4]; + debug("prerelease compare", i4, a3, b3); + if (a3 === void 0 && b3 === void 0) { + return 0; + } else if (b3 === void 0) { + return 1; + } else if (a3 === void 0) { + return -1; + } else if (a3 === b3) { + continue; + } else { + return compareIdentifiers(a3, b3); + } + } while (++i4); + } + compareBuild(other) { + if (!(other instanceof _SemVer)) { + other = new _SemVer(other, this.options); + } + let i4 = 0; + do { + const a3 = this.build[i4]; + const b3 = other.build[i4]; + debug("build compare", i4, a3, b3); + if (a3 === void 0 && b3 === void 0) { + return 0; + } else if (b3 === void 0) { + return 1; + } else if (a3 === void 0) { + return -1; + } else if (a3 === b3) { + continue; + } else { + return compareIdentifiers(a3, b3); + } + } while (++i4); + } + // preminor will bump the version up to the next minor release, and immediately + // down to pre-release. premajor and prepatch work the same way. + inc(release, identifier, identifierBase) { + if (release.startsWith("pre")) { + if (!identifier && identifierBase === false) { + throw new Error("invalid increment argument: identifier is empty"); + } + if (identifier) { + const match2 = `-${identifier}`.match(this.options.loose ? re[t4.PRERELEASELOOSE] : re[t4.PRERELEASE]); + if (!match2 || match2[1] !== identifier) { + throw new Error(`invalid identifier: ${identifier}`); + } + } + } + switch (release) { + case "premajor": + this.prerelease.length = 0; + this.patch = 0; + this.minor = 0; + this.major++; + this.inc("pre", identifier, identifierBase); + break; + case "preminor": + this.prerelease.length = 0; + this.patch = 0; + this.minor++; + this.inc("pre", identifier, identifierBase); + break; + case "prepatch": + this.prerelease.length = 0; + this.inc("patch", identifier, identifierBase); + this.inc("pre", identifier, identifierBase); + break; + // If the input is a non-prerelease version, this acts the same as + // prepatch. + case "prerelease": + if (this.prerelease.length === 0) { + this.inc("patch", identifier, identifierBase); + } + this.inc("pre", identifier, identifierBase); + break; + case "release": + if (this.prerelease.length === 0) { + throw new Error(`version ${this.raw} is not a prerelease`); + } + this.prerelease.length = 0; + break; + case "major": + if (this.minor !== 0 || this.patch !== 0 || this.prerelease.length === 0) { + this.major++; + } + this.minor = 0; + this.patch = 0; + this.prerelease = []; + break; + case "minor": + if (this.patch !== 0 || this.prerelease.length === 0) { + this.minor++; + } + this.patch = 0; + this.prerelease = []; + break; + case "patch": + if (this.prerelease.length === 0) { + this.patch++; + } + this.prerelease = []; + break; + // This probably shouldn't be used publicly. + // 1.0.0 'pre' would become 1.0.0-0 which is the wrong direction. + case "pre": { + const base = Number(identifierBase) ? 1 : 0; + if (this.prerelease.length === 0) { + this.prerelease = [base]; + } else { + let i4 = this.prerelease.length; + while (--i4 >= 0) { + if (typeof this.prerelease[i4] === "number") { + this.prerelease[i4]++; + i4 = -2; + } + } + if (i4 === -1) { + if (identifier === this.prerelease.join(".") && identifierBase === false) { + throw new Error("invalid increment argument: identifier already exists"); + } + this.prerelease.push(base); + } + } + if (identifier) { + let prerelease = [identifier, base]; + if (identifierBase === false) { + prerelease = [identifier]; + } + if (compareIdentifiers(this.prerelease[0], identifier) === 0) { + if (isNaN(this.prerelease[1])) { + this.prerelease = prerelease; + } + } else { + this.prerelease = prerelease; + } + } + break; + } + default: + throw new Error(`invalid increment argument: ${release}`); + } + this.raw = this.format(); + if (this.build.length) { + this.raw += `+${this.build.join(".")}`; + } + return this; + } + }; + module2.exports = SemVer; + } +}); + +// ../node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/parse.js +var require_parse2 = __commonJS({ + "../node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/parse.js"(exports2, module2) { + "use strict"; + var SemVer = require_semver(); + var parse4 = (version3, options, throwErrors = false) => { + if (version3 instanceof SemVer) { + return version3; + } + try { + return new SemVer(version3, options); + } catch (er) { + if (!throwErrors) { + return null; + } + throw er; + } + }; + module2.exports = parse4; + } +}); + +// ../node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/valid.js +var require_valid = __commonJS({ + "../node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/valid.js"(exports2, module2) { + "use strict"; + var parse4 = require_parse2(); + var valid = (version3, options) => { + const v6 = parse4(version3, options); + return v6 ? v6.version : null; + }; + module2.exports = valid; + } +}); + +// ../node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/clean.js +var require_clean = __commonJS({ + "../node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/clean.js"(exports2, module2) { + "use strict"; + var parse4 = require_parse2(); + var clean = (version3, options) => { + const s4 = parse4(version3.trim().replace(/^[=v]+/, ""), options); + return s4 ? s4.version : null; + }; + module2.exports = clean; + } +}); + +// ../node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/inc.js +var require_inc = __commonJS({ + "../node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/inc.js"(exports2, module2) { + "use strict"; + var SemVer = require_semver(); + var inc = (version3, release, options, identifier, identifierBase) => { + if (typeof options === "string") { + identifierBase = identifier; + identifier = options; + options = void 0; + } + try { + return new SemVer( + version3 instanceof SemVer ? version3.version : version3, + options + ).inc(release, identifier, identifierBase).version; + } catch (er) { + return null; + } + }; + module2.exports = inc; + } +}); + +// ../node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/diff.js +var require_diff = __commonJS({ + "../node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/diff.js"(exports2, module2) { + "use strict"; + var parse4 = require_parse2(); + var diff2 = (version1, version22) => { + const v12 = parse4(version1, null, true); + const v22 = parse4(version22, null, true); + const comparison = v12.compare(v22); + if (comparison === 0) { + return null; + } + const v1Higher = comparison > 0; + const highVersion = v1Higher ? v12 : v22; + const lowVersion = v1Higher ? v22 : v12; + const highHasPre = !!highVersion.prerelease.length; + const lowHasPre = !!lowVersion.prerelease.length; + if (lowHasPre && !highHasPre) { + if (!lowVersion.patch && !lowVersion.minor) { + return "major"; + } + if (lowVersion.compareMain(highVersion) === 0) { + if (lowVersion.minor && !lowVersion.patch) { + return "minor"; + } + return "patch"; + } + } + const prefix2 = highHasPre ? "pre" : ""; + if (v12.major !== v22.major) { + return prefix2 + "major"; + } + if (v12.minor !== v22.minor) { + return prefix2 + "minor"; + } + if (v12.patch !== v22.patch) { + return prefix2 + "patch"; + } + return "prerelease"; + }; + module2.exports = diff2; + } +}); + +// ../node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/major.js +var require_major = __commonJS({ + "../node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/major.js"(exports2, module2) { + "use strict"; + var SemVer = require_semver(); + var major = (a3, loose) => new SemVer(a3, loose).major; + module2.exports = major; + } +}); + +// ../node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/minor.js +var require_minor = __commonJS({ + "../node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/minor.js"(exports2, module2) { + "use strict"; + var SemVer = require_semver(); + var minor = (a3, loose) => new SemVer(a3, loose).minor; + module2.exports = minor; + } +}); + +// ../node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/patch.js +var require_patch = __commonJS({ + "../node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/patch.js"(exports2, module2) { + "use strict"; + var SemVer = require_semver(); + var patch = (a3, loose) => new SemVer(a3, loose).patch; + module2.exports = patch; + } +}); + +// ../node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/prerelease.js +var require_prerelease = __commonJS({ + "../node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/prerelease.js"(exports2, module2) { + "use strict"; + var parse4 = require_parse2(); + var prerelease = (version3, options) => { + const parsed = parse4(version3, options); + return parsed && parsed.prerelease.length ? parsed.prerelease : null; + }; + module2.exports = prerelease; + } +}); + +// ../node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/compare.js +var require_compare = __commonJS({ + "../node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/compare.js"(exports2, module2) { + "use strict"; + var SemVer = require_semver(); + var compare = (a3, b3, loose) => new SemVer(a3, loose).compare(new SemVer(b3, loose)); + module2.exports = compare; + } +}); + +// ../node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/rcompare.js +var require_rcompare = __commonJS({ + "../node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/rcompare.js"(exports2, module2) { + "use strict"; + var compare = require_compare(); + var rcompare = (a3, b3, loose) => compare(b3, a3, loose); + module2.exports = rcompare; + } +}); + +// ../node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/compare-loose.js +var require_compare_loose = __commonJS({ + "../node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/compare-loose.js"(exports2, module2) { + "use strict"; + var compare = require_compare(); + var compareLoose = (a3, b3) => compare(a3, b3, true); + module2.exports = compareLoose; + } +}); + +// ../node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/compare-build.js +var require_compare_build = __commonJS({ + "../node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/compare-build.js"(exports2, module2) { + "use strict"; + var SemVer = require_semver(); + var compareBuild = (a3, b3, loose) => { + const versionA = new SemVer(a3, loose); + const versionB = new SemVer(b3, loose); + return versionA.compare(versionB) || versionA.compareBuild(versionB); + }; + module2.exports = compareBuild; + } +}); + +// ../node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/sort.js +var require_sort = __commonJS({ + "../node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/sort.js"(exports2, module2) { + "use strict"; + var compareBuild = require_compare_build(); + var sort = (list, loose) => list.sort((a3, b3) => compareBuild(a3, b3, loose)); + module2.exports = sort; + } +}); + +// ../node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/rsort.js +var require_rsort = __commonJS({ + "../node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/rsort.js"(exports2, module2) { + "use strict"; + var compareBuild = require_compare_build(); + var rsort = (list, loose) => list.sort((a3, b3) => compareBuild(b3, a3, loose)); + module2.exports = rsort; + } +}); + +// ../node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/gt.js +var require_gt = __commonJS({ + "../node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/gt.js"(exports2, module2) { + "use strict"; + var compare = require_compare(); + var gt = (a3, b3, loose) => compare(a3, b3, loose) > 0; + module2.exports = gt; + } +}); + +// ../node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/lt.js +var require_lt = __commonJS({ + "../node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/lt.js"(exports2, module2) { + "use strict"; + var compare = require_compare(); + var lt = (a3, b3, loose) => compare(a3, b3, loose) < 0; + module2.exports = lt; + } +}); + +// ../node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/eq.js +var require_eq = __commonJS({ + "../node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/eq.js"(exports2, module2) { + "use strict"; + var compare = require_compare(); + var eq = (a3, b3, loose) => compare(a3, b3, loose) === 0; + module2.exports = eq; + } +}); + +// ../node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/neq.js +var require_neq = __commonJS({ + "../node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/neq.js"(exports2, module2) { + "use strict"; + var compare = require_compare(); + var neq = (a3, b3, loose) => compare(a3, b3, loose) !== 0; + module2.exports = neq; + } +}); + +// ../node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/gte.js +var require_gte = __commonJS({ + "../node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/gte.js"(exports2, module2) { + "use strict"; + var compare = require_compare(); + var gte = (a3, b3, loose) => compare(a3, b3, loose) >= 0; + module2.exports = gte; + } +}); + +// ../node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/lte.js +var require_lte = __commonJS({ + "../node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/lte.js"(exports2, module2) { + "use strict"; + var compare = require_compare(); + var lte = (a3, b3, loose) => compare(a3, b3, loose) <= 0; + module2.exports = lte; + } +}); + +// ../node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/cmp.js +var require_cmp = __commonJS({ + "../node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/cmp.js"(exports2, module2) { + "use strict"; + var eq = require_eq(); + var neq = require_neq(); + var gt = require_gt(); + var gte = require_gte(); + var lt = require_lt(); + var lte = require_lte(); + var cmp = (a3, op, b3, loose) => { + switch (op) { + case "===": + if (typeof a3 === "object") { + a3 = a3.version; + } + if (typeof b3 === "object") { + b3 = b3.version; + } + return a3 === b3; + case "!==": + if (typeof a3 === "object") { + a3 = a3.version; + } + if (typeof b3 === "object") { + b3 = b3.version; + } + return a3 !== b3; + case "": + case "=": + case "==": + return eq(a3, b3, loose); + case "!=": + return neq(a3, b3, loose); + case ">": + return gt(a3, b3, loose); + case ">=": + return gte(a3, b3, loose); + case "<": + return lt(a3, b3, loose); + case "<=": + return lte(a3, b3, loose); + default: + throw new TypeError(`Invalid operator: ${op}`); + } + }; + module2.exports = cmp; + } +}); + +// ../node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/coerce.js +var require_coerce = __commonJS({ + "../node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/coerce.js"(exports2, module2) { + "use strict"; + var SemVer = require_semver(); + var parse4 = require_parse2(); + var { safeRe: re, t: t4 } = require_re(); + var coerce2 = (version3, options) => { + if (version3 instanceof SemVer) { + return version3; + } + if (typeof version3 === "number") { + version3 = String(version3); + } + if (typeof version3 !== "string") { + return null; + } + options = options || {}; + let match2 = null; + if (!options.rtl) { + match2 = version3.match(options.includePrerelease ? re[t4.COERCEFULL] : re[t4.COERCE]); + } else { + const coerceRtlRegex = options.includePrerelease ? re[t4.COERCERTLFULL] : re[t4.COERCERTL]; + let next; + while ((next = coerceRtlRegex.exec(version3)) && (!match2 || match2.index + match2[0].length !== version3.length)) { + if (!match2 || next.index + next[0].length !== match2.index + match2[0].length) { + match2 = next; + } + coerceRtlRegex.lastIndex = next.index + next[1].length + next[2].length; + } + coerceRtlRegex.lastIndex = -1; + } + if (match2 === null) { + return null; + } + const major = match2[2]; + const minor = match2[3] || "0"; + const patch = match2[4] || "0"; + const prerelease = options.includePrerelease && match2[5] ? `-${match2[5]}` : ""; + const build = options.includePrerelease && match2[6] ? `+${match2[6]}` : ""; + return parse4(`${major}.${minor}.${patch}${prerelease}${build}`, options); + }; + module2.exports = coerce2; + } +}); + +// ../node_modules/.pnpm/semver@7.7.2/node_modules/semver/internal/lrucache.js +var require_lrucache = __commonJS({ + "../node_modules/.pnpm/semver@7.7.2/node_modules/semver/internal/lrucache.js"(exports2, module2) { + "use strict"; + var LRUCache = class { + constructor() { + this.max = 1e3; + this.map = /* @__PURE__ */ new Map(); + } + get(key) { + const value = this.map.get(key); + if (value === void 0) { + return void 0; + } else { + this.map.delete(key); + this.map.set(key, value); + return value; + } + } + delete(key) { + return this.map.delete(key); + } + set(key, value) { + const deleted = this.delete(key); + if (!deleted && value !== void 0) { + if (this.map.size >= this.max) { + const firstKey = this.map.keys().next().value; + this.delete(firstKey); + } + this.map.set(key, value); + } + return this; + } + }; + module2.exports = LRUCache; + } +}); + +// ../node_modules/.pnpm/semver@7.7.2/node_modules/semver/classes/range.js +var require_range = __commonJS({ + "../node_modules/.pnpm/semver@7.7.2/node_modules/semver/classes/range.js"(exports2, module2) { + "use strict"; + var SPACE_CHARACTERS = /\s+/g; + var Range = class _Range { + constructor(range, options) { + options = parseOptions2(options); + if (range instanceof _Range) { + if (range.loose === !!options.loose && range.includePrerelease === !!options.includePrerelease) { + return range; + } else { + return new _Range(range.raw, options); + } + } + if (range instanceof Comparator) { + this.raw = range.value; + this.set = [[range]]; + this.formatted = void 0; + return this; + } + this.options = options; + this.loose = !!options.loose; + this.includePrerelease = !!options.includePrerelease; + this.raw = range.trim().replace(SPACE_CHARACTERS, " "); + this.set = this.raw.split("||").map((r4) => this.parseRange(r4.trim())).filter((c3) => c3.length); + if (!this.set.length) { + throw new TypeError(`Invalid SemVer Range: ${this.raw}`); + } + if (this.set.length > 1) { + const first = this.set[0]; + this.set = this.set.filter((c3) => !isNullSet(c3[0])); + if (this.set.length === 0) { + this.set = [first]; + } else if (this.set.length > 1) { + for (const c3 of this.set) { + if (c3.length === 1 && isAny(c3[0])) { + this.set = [c3]; + break; + } + } + } + } + this.formatted = void 0; + } + get range() { + if (this.formatted === void 0) { + this.formatted = ""; + for (let i4 = 0; i4 < this.set.length; i4++) { + if (i4 > 0) { + this.formatted += "||"; + } + const comps = this.set[i4]; + for (let k3 = 0; k3 < comps.length; k3++) { + if (k3 > 0) { + this.formatted += " "; + } + this.formatted += comps[k3].toString().trim(); + } + } + } + return this.formatted; + } + format() { + return this.range; + } + toString() { + return this.range; + } + parseRange(range) { + const memoOpts = (this.options.includePrerelease && FLAG_INCLUDE_PRERELEASE) | (this.options.loose && FLAG_LOOSE); + const memoKey = memoOpts + ":" + range; + const cached = cache3.get(memoKey); + if (cached) { + return cached; + } + const loose = this.options.loose; + const hr = loose ? re[t4.HYPHENRANGELOOSE] : re[t4.HYPHENRANGE]; + range = range.replace(hr, hyphenReplace(this.options.includePrerelease)); + debug("hyphen replace", range); + range = range.replace(re[t4.COMPARATORTRIM], comparatorTrimReplace); + debug("comparator trim", range); + range = range.replace(re[t4.TILDETRIM], tildeTrimReplace); + debug("tilde trim", range); + range = range.replace(re[t4.CARETTRIM], caretTrimReplace); + debug("caret trim", range); + let rangeList = range.split(" ").map((comp) => parseComparator(comp, this.options)).join(" ").split(/\s+/).map((comp) => replaceGTE0(comp, this.options)); + if (loose) { + rangeList = rangeList.filter((comp) => { + debug("loose invalid filter", comp, this.options); + return !!comp.match(re[t4.COMPARATORLOOSE]); + }); + } + debug("range list", rangeList); + const rangeMap = /* @__PURE__ */ new Map(); + const comparators = rangeList.map((comp) => new Comparator(comp, this.options)); + for (const comp of comparators) { + if (isNullSet(comp)) { + return [comp]; + } + rangeMap.set(comp.value, comp); + } + if (rangeMap.size > 1 && rangeMap.has("")) { + rangeMap.delete(""); + } + const result = [...rangeMap.values()]; + cache3.set(memoKey, result); + return result; + } + intersects(range, options) { + if (!(range instanceof _Range)) { + throw new TypeError("a Range is required"); + } + return this.set.some((thisComparators) => { + return isSatisfiable(thisComparators, options) && range.set.some((rangeComparators) => { + return isSatisfiable(rangeComparators, options) && thisComparators.every((thisComparator) => { + return rangeComparators.every((rangeComparator) => { + return thisComparator.intersects(rangeComparator, options); + }); + }); + }); + }); + } + // if ANY of the sets match ALL of its comparators, then pass + test(version3) { + if (!version3) { + return false; + } + if (typeof version3 === "string") { + try { + version3 = new SemVer(version3, this.options); + } catch (er) { + return false; + } + } + for (let i4 = 0; i4 < this.set.length; i4++) { + if (testSet(this.set[i4], version3, this.options)) { + return true; + } + } + return false; + } + }; + module2.exports = Range; + var LRU = require_lrucache(); + var cache3 = new LRU(); + var parseOptions2 = require_parse_options(); + var Comparator = require_comparator(); + var debug = require_debug(); + var SemVer = require_semver(); + var { + safeRe: re, + t: t4, + comparatorTrimReplace, + tildeTrimReplace, + caretTrimReplace + } = require_re(); + var { FLAG_INCLUDE_PRERELEASE, FLAG_LOOSE } = require_constants(); + var isNullSet = (c3) => c3.value === "<0.0.0-0"; + var isAny = (c3) => c3.value === ""; + var isSatisfiable = (comparators, options) => { + let result = true; + const remainingComparators = comparators.slice(); + let testComparator = remainingComparators.pop(); + while (result && remainingComparators.length) { + result = remainingComparators.every((otherComparator) => { + return testComparator.intersects(otherComparator, options); + }); + testComparator = remainingComparators.pop(); + } + return result; + }; + var parseComparator = (comp, options) => { + debug("comp", comp, options); + comp = replaceCarets(comp, options); + debug("caret", comp); + comp = replaceTildes(comp, options); + debug("tildes", comp); + comp = replaceXRanges(comp, options); + debug("xrange", comp); + comp = replaceStars(comp, options); + debug("stars", comp); + return comp; + }; + var isX = (id) => !id || id.toLowerCase() === "x" || id === "*"; + var replaceTildes = (comp, options) => { + return comp.trim().split(/\s+/).map((c3) => replaceTilde(c3, options)).join(" "); + }; + var replaceTilde = (comp, options) => { + const r4 = options.loose ? re[t4.TILDELOOSE] : re[t4.TILDE]; + return comp.replace(r4, (_3, M, m4, p3, pr) => { + debug("tilde", comp, _3, M, m4, p3, pr); + let ret; + if (isX(M)) { + ret = ""; + } else if (isX(m4)) { + ret = `>=${M}.0.0 <${+M + 1}.0.0-0`; + } else if (isX(p3)) { + ret = `>=${M}.${m4}.0 <${M}.${+m4 + 1}.0-0`; + } else if (pr) { + debug("replaceTilde pr", pr); + ret = `>=${M}.${m4}.${p3}-${pr} <${M}.${+m4 + 1}.0-0`; + } else { + ret = `>=${M}.${m4}.${p3} <${M}.${+m4 + 1}.0-0`; + } + debug("tilde return", ret); + return ret; + }); + }; + var replaceCarets = (comp, options) => { + return comp.trim().split(/\s+/).map((c3) => replaceCaret(c3, options)).join(" "); + }; + var replaceCaret = (comp, options) => { + debug("caret", comp, options); + const r4 = options.loose ? re[t4.CARETLOOSE] : re[t4.CARET]; + const z2 = options.includePrerelease ? "-0" : ""; + return comp.replace(r4, (_3, M, m4, p3, pr) => { + debug("caret", comp, _3, M, m4, p3, pr); + let ret; + if (isX(M)) { + ret = ""; + } else if (isX(m4)) { + ret = `>=${M}.0.0${z2} <${+M + 1}.0.0-0`; + } else if (isX(p3)) { + if (M === "0") { + ret = `>=${M}.${m4}.0${z2} <${M}.${+m4 + 1}.0-0`; + } else { + ret = `>=${M}.${m4}.0${z2} <${+M + 1}.0.0-0`; + } + } else if (pr) { + debug("replaceCaret pr", pr); + if (M === "0") { + if (m4 === "0") { + ret = `>=${M}.${m4}.${p3}-${pr} <${M}.${m4}.${+p3 + 1}-0`; + } else { + ret = `>=${M}.${m4}.${p3}-${pr} <${M}.${+m4 + 1}.0-0`; + } + } else { + ret = `>=${M}.${m4}.${p3}-${pr} <${+M + 1}.0.0-0`; + } + } else { + debug("no pr"); + if (M === "0") { + if (m4 === "0") { + ret = `>=${M}.${m4}.${p3}${z2} <${M}.${m4}.${+p3 + 1}-0`; + } else { + ret = `>=${M}.${m4}.${p3}${z2} <${M}.${+m4 + 1}.0-0`; + } + } else { + ret = `>=${M}.${m4}.${p3} <${+M + 1}.0.0-0`; + } + } + debug("caret return", ret); + return ret; + }); + }; + var replaceXRanges = (comp, options) => { + debug("replaceXRanges", comp, options); + return comp.split(/\s+/).map((c3) => replaceXRange(c3, options)).join(" "); + }; + var replaceXRange = (comp, options) => { + comp = comp.trim(); + const r4 = options.loose ? re[t4.XRANGELOOSE] : re[t4.XRANGE]; + return comp.replace(r4, (ret, gtlt, M, m4, p3, pr) => { + debug("xRange", comp, ret, gtlt, M, m4, p3, pr); + const xM = isX(M); + const xm = xM || isX(m4); + const xp = xm || isX(p3); + const anyX = xp; + if (gtlt === "=" && anyX) { + gtlt = ""; + } + pr = options.includePrerelease ? "-0" : ""; + if (xM) { + if (gtlt === ">" || gtlt === "<") { + ret = "<0.0.0-0"; + } else { + ret = "*"; + } + } else if (gtlt && anyX) { + if (xm) { + m4 = 0; + } + p3 = 0; + if (gtlt === ">") { + gtlt = ">="; + if (xm) { + M = +M + 1; + m4 = 0; + p3 = 0; + } else { + m4 = +m4 + 1; + p3 = 0; + } + } else if (gtlt === "<=") { + gtlt = "<"; + if (xm) { + M = +M + 1; + } else { + m4 = +m4 + 1; + } + } + if (gtlt === "<") { + pr = "-0"; + } + ret = `${gtlt + M}.${m4}.${p3}${pr}`; + } else if (xm) { + ret = `>=${M}.0.0${pr} <${+M + 1}.0.0-0`; + } else if (xp) { + ret = `>=${M}.${m4}.0${pr} <${M}.${+m4 + 1}.0-0`; + } + debug("xRange return", ret); + return ret; + }); + }; + var replaceStars = (comp, options) => { + debug("replaceStars", comp, options); + return comp.trim().replace(re[t4.STAR], ""); + }; + var replaceGTE0 = (comp, options) => { + debug("replaceGTE0", comp, options); + return comp.trim().replace(re[options.includePrerelease ? t4.GTE0PRE : t4.GTE0], ""); + }; + var hyphenReplace = (incPr) => ($0, from, fM, fm, fp, fpr, fb, to, tM, tm, tp, tpr) => { + if (isX(fM)) { + from = ""; + } else if (isX(fm)) { + from = `>=${fM}.0.0${incPr ? "-0" : ""}`; + } else if (isX(fp)) { + from = `>=${fM}.${fm}.0${incPr ? "-0" : ""}`; + } else if (fpr) { + from = `>=${from}`; + } else { + from = `>=${from}${incPr ? "-0" : ""}`; + } + if (isX(tM)) { + to = ""; + } else if (isX(tm)) { + to = `<${+tM + 1}.0.0-0`; + } else if (isX(tp)) { + to = `<${tM}.${+tm + 1}.0-0`; + } else if (tpr) { + to = `<=${tM}.${tm}.${tp}-${tpr}`; + } else if (incPr) { + to = `<${tM}.${tm}.${+tp + 1}-0`; + } else { + to = `<=${to}`; + } + return `${from} ${to}`.trim(); + }; + var testSet = (set, version3, options) => { + for (let i4 = 0; i4 < set.length; i4++) { + if (!set[i4].test(version3)) { + return false; + } + } + if (version3.prerelease.length && !options.includePrerelease) { + for (let i4 = 0; i4 < set.length; i4++) { + debug(set[i4].semver); + if (set[i4].semver === Comparator.ANY) { + continue; + } + if (set[i4].semver.prerelease.length > 0) { + const allowed = set[i4].semver; + if (allowed.major === version3.major && allowed.minor === version3.minor && allowed.patch === version3.patch) { + return true; + } + } + } + return false; + } + return true; + }; + } +}); + +// ../node_modules/.pnpm/semver@7.7.2/node_modules/semver/classes/comparator.js +var require_comparator = __commonJS({ + "../node_modules/.pnpm/semver@7.7.2/node_modules/semver/classes/comparator.js"(exports2, module2) { + "use strict"; + var ANY = Symbol("SemVer ANY"); + var Comparator = class _Comparator { + static get ANY() { + return ANY; + } + constructor(comp, options) { + options = parseOptions2(options); + if (comp instanceof _Comparator) { + if (comp.loose === !!options.loose) { + return comp; + } else { + comp = comp.value; + } + } + comp = comp.trim().split(/\s+/).join(" "); + debug("comparator", comp, options); + this.options = options; + this.loose = !!options.loose; + this.parse(comp); + if (this.semver === ANY) { + this.value = ""; + } else { + this.value = this.operator + this.semver.version; + } + debug("comp", this); + } + parse(comp) { + const r4 = this.options.loose ? re[t4.COMPARATORLOOSE] : re[t4.COMPARATOR]; + const m4 = comp.match(r4); + if (!m4) { + throw new TypeError(`Invalid comparator: ${comp}`); + } + this.operator = m4[1] !== void 0 ? m4[1] : ""; + if (this.operator === "=") { + this.operator = ""; + } + if (!m4[2]) { + this.semver = ANY; + } else { + this.semver = new SemVer(m4[2], this.options.loose); + } + } + toString() { + return this.value; + } + test(version3) { + debug("Comparator.test", version3, this.options.loose); + if (this.semver === ANY || version3 === ANY) { + return true; + } + if (typeof version3 === "string") { + try { + version3 = new SemVer(version3, this.options); + } catch (er) { + return false; + } + } + return cmp(version3, this.operator, this.semver, this.options); + } + intersects(comp, options) { + if (!(comp instanceof _Comparator)) { + throw new TypeError("a Comparator is required"); + } + if (this.operator === "") { + if (this.value === "") { + return true; + } + return new Range(comp.value, options).test(this.value); + } else if (comp.operator === "") { + if (comp.value === "") { + return true; + } + return new Range(this.value, options).test(comp.semver); + } + options = parseOptions2(options); + if (options.includePrerelease && (this.value === "<0.0.0-0" || comp.value === "<0.0.0-0")) { + return false; + } + if (!options.includePrerelease && (this.value.startsWith("<0.0.0") || comp.value.startsWith("<0.0.0"))) { + return false; + } + if (this.operator.startsWith(">") && comp.operator.startsWith(">")) { + return true; + } + if (this.operator.startsWith("<") && comp.operator.startsWith("<")) { + return true; + } + if (this.semver.version === comp.semver.version && this.operator.includes("=") && comp.operator.includes("=")) { + return true; + } + if (cmp(this.semver, "<", comp.semver, options) && this.operator.startsWith(">") && comp.operator.startsWith("<")) { + return true; + } + if (cmp(this.semver, ">", comp.semver, options) && this.operator.startsWith("<") && comp.operator.startsWith(">")) { + return true; + } + return false; + } + }; + module2.exports = Comparator; + var parseOptions2 = require_parse_options(); + var { safeRe: re, t: t4 } = require_re(); + var cmp = require_cmp(); + var debug = require_debug(); + var SemVer = require_semver(); + var Range = require_range(); + } +}); + +// ../node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/satisfies.js +var require_satisfies = __commonJS({ + "../node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/satisfies.js"(exports2, module2) { + "use strict"; + var Range = require_range(); + var satisfies = (version3, range, options) => { + try { + range = new Range(range, options); + } catch (er) { + return false; + } + return range.test(version3); + }; + module2.exports = satisfies; + } +}); + +// ../node_modules/.pnpm/semver@7.7.2/node_modules/semver/ranges/to-comparators.js +var require_to_comparators = __commonJS({ + "../node_modules/.pnpm/semver@7.7.2/node_modules/semver/ranges/to-comparators.js"(exports2, module2) { + "use strict"; + var Range = require_range(); + var toComparators = (range, options) => new Range(range, options).set.map((comp) => comp.map((c3) => c3.value).join(" ").trim().split(" ")); + module2.exports = toComparators; + } +}); + +// ../node_modules/.pnpm/semver@7.7.2/node_modules/semver/ranges/max-satisfying.js +var require_max_satisfying = __commonJS({ + "../node_modules/.pnpm/semver@7.7.2/node_modules/semver/ranges/max-satisfying.js"(exports2, module2) { + "use strict"; + var SemVer = require_semver(); + var Range = require_range(); + var maxSatisfying = (versions, range, options) => { + let max = null; + let maxSV = null; + let rangeObj = null; + try { + rangeObj = new Range(range, options); + } catch (er) { + return null; + } + versions.forEach((v6) => { + if (rangeObj.test(v6)) { + if (!max || maxSV.compare(v6) === -1) { + max = v6; + maxSV = new SemVer(max, options); + } + } + }); + return max; + }; + module2.exports = maxSatisfying; + } +}); + +// ../node_modules/.pnpm/semver@7.7.2/node_modules/semver/ranges/min-satisfying.js +var require_min_satisfying = __commonJS({ + "../node_modules/.pnpm/semver@7.7.2/node_modules/semver/ranges/min-satisfying.js"(exports2, module2) { + "use strict"; + var SemVer = require_semver(); + var Range = require_range(); + var minSatisfying = (versions, range, options) => { + let min = null; + let minSV = null; + let rangeObj = null; + try { + rangeObj = new Range(range, options); + } catch (er) { + return null; + } + versions.forEach((v6) => { + if (rangeObj.test(v6)) { + if (!min || minSV.compare(v6) === 1) { + min = v6; + minSV = new SemVer(min, options); + } + } + }); + return min; + }; + module2.exports = minSatisfying; + } +}); + +// ../node_modules/.pnpm/semver@7.7.2/node_modules/semver/ranges/min-version.js +var require_min_version = __commonJS({ + "../node_modules/.pnpm/semver@7.7.2/node_modules/semver/ranges/min-version.js"(exports2, module2) { + "use strict"; + var SemVer = require_semver(); + var Range = require_range(); + var gt = require_gt(); + var minVersion = (range, loose) => { + range = new Range(range, loose); + let minver = new SemVer("0.0.0"); + if (range.test(minver)) { + return minver; + } + minver = new SemVer("0.0.0-0"); + if (range.test(minver)) { + return minver; + } + minver = null; + for (let i4 = 0; i4 < range.set.length; ++i4) { + const comparators = range.set[i4]; + let setMin = null; + comparators.forEach((comparator) => { + const compver = new SemVer(comparator.semver.version); + switch (comparator.operator) { + case ">": + if (compver.prerelease.length === 0) { + compver.patch++; + } else { + compver.prerelease.push(0); + } + compver.raw = compver.format(); + /* fallthrough */ + case "": + case ">=": + if (!setMin || gt(compver, setMin)) { + setMin = compver; + } + break; + case "<": + case "<=": + break; + /* istanbul ignore next */ + default: + throw new Error(`Unexpected operation: ${comparator.operator}`); + } + }); + if (setMin && (!minver || gt(minver, setMin))) { + minver = setMin; + } + } + if (minver && range.test(minver)) { + return minver; + } + return null; + }; + module2.exports = minVersion; + } +}); + +// ../node_modules/.pnpm/semver@7.7.2/node_modules/semver/ranges/valid.js +var require_valid2 = __commonJS({ + "../node_modules/.pnpm/semver@7.7.2/node_modules/semver/ranges/valid.js"(exports2, module2) { + "use strict"; + var Range = require_range(); + var validRange = (range, options) => { + try { + return new Range(range, options).range || "*"; + } catch (er) { + return null; + } + }; + module2.exports = validRange; + } +}); + +// ../node_modules/.pnpm/semver@7.7.2/node_modules/semver/ranges/outside.js +var require_outside = __commonJS({ + "../node_modules/.pnpm/semver@7.7.2/node_modules/semver/ranges/outside.js"(exports2, module2) { + "use strict"; + var SemVer = require_semver(); + var Comparator = require_comparator(); + var { ANY } = Comparator; + var Range = require_range(); + var satisfies = require_satisfies(); + var gt = require_gt(); + var lt = require_lt(); + var lte = require_lte(); + var gte = require_gte(); + var outside = (version3, range, hilo, options) => { + version3 = new SemVer(version3, options); + range = new Range(range, options); + let gtfn, ltefn, ltfn, comp, ecomp; + switch (hilo) { + case ">": + gtfn = gt; + ltefn = lte; + ltfn = lt; + comp = ">"; + ecomp = ">="; + break; + case "<": + gtfn = lt; + ltefn = gte; + ltfn = gt; + comp = "<"; + ecomp = "<="; + break; + default: + throw new TypeError('Must provide a hilo val of "<" or ">"'); + } + if (satisfies(version3, range, options)) { + return false; + } + for (let i4 = 0; i4 < range.set.length; ++i4) { + const comparators = range.set[i4]; + let high = null; + let low = null; + comparators.forEach((comparator) => { + if (comparator.semver === ANY) { + comparator = new Comparator(">=0.0.0"); + } + high = high || comparator; + low = low || comparator; + if (gtfn(comparator.semver, high.semver, options)) { + high = comparator; + } else if (ltfn(comparator.semver, low.semver, options)) { + low = comparator; + } + }); + if (high.operator === comp || high.operator === ecomp) { + return false; + } + if ((!low.operator || low.operator === comp) && ltefn(version3, low.semver)) { + return false; + } else if (low.operator === ecomp && ltfn(version3, low.semver)) { + return false; + } + } + return true; + }; + module2.exports = outside; + } +}); + +// ../node_modules/.pnpm/semver@7.7.2/node_modules/semver/ranges/gtr.js +var require_gtr = __commonJS({ + "../node_modules/.pnpm/semver@7.7.2/node_modules/semver/ranges/gtr.js"(exports2, module2) { + "use strict"; + var outside = require_outside(); + var gtr = (version3, range, options) => outside(version3, range, ">", options); + module2.exports = gtr; + } +}); + +// ../node_modules/.pnpm/semver@7.7.2/node_modules/semver/ranges/ltr.js +var require_ltr = __commonJS({ + "../node_modules/.pnpm/semver@7.7.2/node_modules/semver/ranges/ltr.js"(exports2, module2) { + "use strict"; + var outside = require_outside(); + var ltr = (version3, range, options) => outside(version3, range, "<", options); + module2.exports = ltr; + } +}); + +// ../node_modules/.pnpm/semver@7.7.2/node_modules/semver/ranges/intersects.js +var require_intersects = __commonJS({ + "../node_modules/.pnpm/semver@7.7.2/node_modules/semver/ranges/intersects.js"(exports2, module2) { + "use strict"; + var Range = require_range(); + var intersects = (r1, r22, options) => { + r1 = new Range(r1, options); + r22 = new Range(r22, options); + return r1.intersects(r22, options); + }; + module2.exports = intersects; + } +}); + +// ../node_modules/.pnpm/semver@7.7.2/node_modules/semver/ranges/simplify.js +var require_simplify = __commonJS({ + "../node_modules/.pnpm/semver@7.7.2/node_modules/semver/ranges/simplify.js"(exports2, module2) { + "use strict"; + var satisfies = require_satisfies(); + var compare = require_compare(); + module2.exports = (versions, range, options) => { + const set = []; + let first = null; + let prev = null; + const v6 = versions.sort((a3, b3) => compare(a3, b3, options)); + for (const version3 of v6) { + const included = satisfies(version3, range, options); + if (included) { + prev = version3; + if (!first) { + first = version3; + } + } else { + if (prev) { + set.push([first, prev]); + } + prev = null; + first = null; + } + } + if (first) { + set.push([first, null]); + } + const ranges = []; + for (const [min, max] of set) { + if (min === max) { + ranges.push(min); + } else if (!max && min === v6[0]) { + ranges.push("*"); + } else if (!max) { + ranges.push(`>=${min}`); + } else if (min === v6[0]) { + ranges.push(`<=${max}`); + } else { + ranges.push(`${min} - ${max}`); + } + } + const simplified = ranges.join(" || "); + const original = typeof range.raw === "string" ? range.raw : String(range); + return simplified.length < original.length ? simplified : range; + }; + } +}); + +// ../node_modules/.pnpm/semver@7.7.2/node_modules/semver/ranges/subset.js +var require_subset = __commonJS({ + "../node_modules/.pnpm/semver@7.7.2/node_modules/semver/ranges/subset.js"(exports2, module2) { + "use strict"; + var Range = require_range(); + var Comparator = require_comparator(); + var { ANY } = Comparator; + var satisfies = require_satisfies(); + var compare = require_compare(); + var subset = (sub, dom, options = {}) => { + if (sub === dom) { + return true; + } + sub = new Range(sub, options); + dom = new Range(dom, options); + let sawNonNull = false; + OUTER: for (const simpleSub of sub.set) { + for (const simpleDom of dom.set) { + const isSub = simpleSubset(simpleSub, simpleDom, options); + sawNonNull = sawNonNull || isSub !== null; + if (isSub) { + continue OUTER; + } + } + if (sawNonNull) { + return false; + } + } + return true; + }; + var minimumVersionWithPreRelease = [new Comparator(">=0.0.0-0")]; + var minimumVersion = [new Comparator(">=0.0.0")]; + var simpleSubset = (sub, dom, options) => { + if (sub === dom) { + return true; + } + if (sub.length === 1 && sub[0].semver === ANY) { + if (dom.length === 1 && dom[0].semver === ANY) { + return true; + } else if (options.includePrerelease) { + sub = minimumVersionWithPreRelease; + } else { + sub = minimumVersion; + } + } + if (dom.length === 1 && dom[0].semver === ANY) { + if (options.includePrerelease) { + return true; + } else { + dom = minimumVersion; + } + } + const eqSet = /* @__PURE__ */ new Set(); + let gt, lt; + for (const c3 of sub) { + if (c3.operator === ">" || c3.operator === ">=") { + gt = higherGT(gt, c3, options); + } else if (c3.operator === "<" || c3.operator === "<=") { + lt = lowerLT(lt, c3, options); + } else { + eqSet.add(c3.semver); + } + } + if (eqSet.size > 1) { + return null; + } + let gtltComp; + if (gt && lt) { + gtltComp = compare(gt.semver, lt.semver, options); + if (gtltComp > 0) { + return null; + } else if (gtltComp === 0 && (gt.operator !== ">=" || lt.operator !== "<=")) { + return null; + } + } + for (const eq of eqSet) { + if (gt && !satisfies(eq, String(gt), options)) { + return null; + } + if (lt && !satisfies(eq, String(lt), options)) { + return null; + } + for (const c3 of dom) { + if (!satisfies(eq, String(c3), options)) { + return false; + } + } + return true; + } + let higher, lower2; + let hasDomLT, hasDomGT; + let needDomLTPre = lt && !options.includePrerelease && lt.semver.prerelease.length ? lt.semver : false; + let needDomGTPre = gt && !options.includePrerelease && gt.semver.prerelease.length ? gt.semver : false; + if (needDomLTPre && needDomLTPre.prerelease.length === 1 && lt.operator === "<" && needDomLTPre.prerelease[0] === 0) { + needDomLTPre = false; + } + for (const c3 of dom) { + hasDomGT = hasDomGT || c3.operator === ">" || c3.operator === ">="; + hasDomLT = hasDomLT || c3.operator === "<" || c3.operator === "<="; + if (gt) { + if (needDomGTPre) { + if (c3.semver.prerelease && c3.semver.prerelease.length && c3.semver.major === needDomGTPre.major && c3.semver.minor === needDomGTPre.minor && c3.semver.patch === needDomGTPre.patch) { + needDomGTPre = false; + } + } + if (c3.operator === ">" || c3.operator === ">=") { + higher = higherGT(gt, c3, options); + if (higher === c3 && higher !== gt) { + return false; + } + } else if (gt.operator === ">=" && !satisfies(gt.semver, String(c3), options)) { + return false; + } + } + if (lt) { + if (needDomLTPre) { + if (c3.semver.prerelease && c3.semver.prerelease.length && c3.semver.major === needDomLTPre.major && c3.semver.minor === needDomLTPre.minor && c3.semver.patch === needDomLTPre.patch) { + needDomLTPre = false; + } + } + if (c3.operator === "<" || c3.operator === "<=") { + lower2 = lowerLT(lt, c3, options); + if (lower2 === c3 && lower2 !== lt) { + return false; + } + } else if (lt.operator === "<=" && !satisfies(lt.semver, String(c3), options)) { + return false; + } + } + if (!c3.operator && (lt || gt) && gtltComp !== 0) { + return false; + } + } + if (gt && hasDomLT && !lt && gtltComp !== 0) { + return false; + } + if (lt && hasDomGT && !gt && gtltComp !== 0) { + return false; + } + if (needDomGTPre || needDomLTPre) { + return false; + } + return true; + }; + var higherGT = (a3, b3, options) => { + if (!a3) { + return b3; + } + const comp = compare(a3.semver, b3.semver, options); + return comp > 0 ? a3 : comp < 0 ? b3 : b3.operator === ">" && a3.operator === ">=" ? b3 : a3; + }; + var lowerLT = (a3, b3, options) => { + if (!a3) { + return b3; + } + const comp = compare(a3.semver, b3.semver, options); + return comp < 0 ? a3 : comp > 0 ? b3 : b3.operator === "<" && a3.operator === "<=" ? b3 : a3; + }; + module2.exports = subset; + } +}); + +// ../node_modules/.pnpm/semver@7.7.2/node_modules/semver/index.js +var require_semver2 = __commonJS({ + "../node_modules/.pnpm/semver@7.7.2/node_modules/semver/index.js"(exports2, module2) { + "use strict"; + var internalRe = require_re(); + var constants = require_constants(); + var SemVer = require_semver(); + var identifiers = require_identifiers(); + var parse4 = require_parse2(); + var valid = require_valid(); + var clean = require_clean(); + var inc = require_inc(); + var diff2 = require_diff(); + var major = require_major(); + var minor = require_minor(); + var patch = require_patch(); + var prerelease = require_prerelease(); + var compare = require_compare(); + var rcompare = require_rcompare(); + var compareLoose = require_compare_loose(); + var compareBuild = require_compare_build(); + var sort = require_sort(); + var rsort = require_rsort(); + var gt = require_gt(); + var lt = require_lt(); + var eq = require_eq(); + var neq = require_neq(); + var gte = require_gte(); + var lte = require_lte(); + var cmp = require_cmp(); + var coerce2 = require_coerce(); + var Comparator = require_comparator(); + var Range = require_range(); + var satisfies = require_satisfies(); + var toComparators = require_to_comparators(); + var maxSatisfying = require_max_satisfying(); + var minSatisfying = require_min_satisfying(); + var minVersion = require_min_version(); + var validRange = require_valid2(); + var outside = require_outside(); + var gtr = require_gtr(); + var ltr = require_ltr(); + var intersects = require_intersects(); + var simplifyRange = require_simplify(); + var subset = require_subset(); + module2.exports = { + parse: parse4, + valid, + clean, + inc, + diff: diff2, + major, + minor, + patch, + prerelease, + compare, + rcompare, + compareLoose, + compareBuild, + sort, + rsort, + gt, + lt, + eq, + neq, + gte, + lte, + cmp, + coerce: coerce2, + Comparator, + Range, + satisfies, + toComparators, + maxSatisfying, + minSatisfying, + minVersion, + validRange, + outside, + gtr, + ltr, + intersects, + simplifyRange, + subset, + SemVer, + re: internalRe.re, + src: internalRe.src, + tokens: internalRe.t, + SEMVER_SPEC_VERSION: constants.SEMVER_SPEC_VERSION, + RELEASE_TYPES: constants.RELEASE_TYPES, + compareIdentifiers: identifiers.compareIdentifiers, + rcompareIdentifiers: identifiers.rcompareIdentifiers + }; + } +}); + +// src/cli/utils.ts +var import_semver, ormVersionGt, assertStudioNodeVersion, checkPackage, assertPackages, requiredApiVersion, assertOrmCoreVersion, ormCoreVersions; +var init_utils5 = __esm({ + "src/cli/utils.ts"() { + "use strict"; + import_semver = __toESM(require_semver2()); + init_views(); + ormVersionGt = async (version3) => { + const { npmVersion } = await import("drizzle-orm/version"); + if (!import_semver.default.gte(npmVersion, version3)) { + return false; + } + return true; + }; + assertStudioNodeVersion = () => { + if (import_semver.default.gte(process.version, "18.0.0")) return; + err("Drizzle Studio requires NodeJS v18 or above"); + process.exit(1); + }; + checkPackage = async (it) => { + try { + await import(it); + return true; + } catch (e4) { + return false; + } + }; + assertPackages = async (...pkgs) => { + try { + for (let i4 = 0; i4 < pkgs.length; i4++) { + const it = pkgs[i4]; + await import(it); + } + } catch (e4) { + err( + `please install required packages: ${pkgs.map((it) => `'${it}'`).join(" ")}` + ); + process.exit(1); + } + }; + requiredApiVersion = 10; + assertOrmCoreVersion = async () => { + try { + const { compatibilityVersion } = await import("drizzle-orm/version"); + await import("drizzle-orm/relations"); + if (compatibilityVersion && compatibilityVersion === requiredApiVersion) { + return; + } + if (!compatibilityVersion || compatibilityVersion < requiredApiVersion) { + console.log( + "This version of drizzle-kit requires newer version of drizzle-orm\nPlease update drizzle-orm package to the latest version \u{1F44D}" + ); + } else { + console.log( + "This version of drizzle-kit is outdated\nPlease update drizzle-kit package to the latest version \u{1F44D}" + ); + } + } catch (e4) { + console.log("Please install latest version of drizzle-orm"); + } + process.exit(1); + }; + ormCoreVersions = async () => { + try { + const { compatibilityVersion, npmVersion } = await import("drizzle-orm/version"); + return { compatibilityVersion, npmVersion }; + } catch (e4) { + return {}; + } + }; + } +}); + +// ../node_modules/.pnpm/data-uri-to-buffer@4.0.1/node_modules/data-uri-to-buffer/dist/index.js +function dataUriToBuffer(uri) { + if (!/^data:/i.test(uri)) { + throw new TypeError('`uri` does not appear to be a Data URI (must begin with "data:")'); + } + uri = uri.replace(/\r?\n/g, ""); + const firstComma = uri.indexOf(","); + if (firstComma === -1 || firstComma <= 4) { + throw new TypeError("malformed data: URI"); + } + const meta = uri.substring(5, firstComma).split(";"); + let charset = ""; + let base64 = false; + const type = meta[0] || "text/plain"; + let typeFull = type; + for (let i4 = 1; i4 < meta.length; i4++) { + if (meta[i4] === "base64") { + base64 = true; + } else if (meta[i4]) { + typeFull += `;${meta[i4]}`; + if (meta[i4].indexOf("charset=") === 0) { + charset = meta[i4].substring(8); + } + } + } + if (!meta[0] && !charset.length) { + typeFull += ";charset=US-ASCII"; + charset = "US-ASCII"; + } + const encoding = base64 ? "base64" : "ascii"; + const data = unescape(uri.substring(firstComma + 1)); + const buffer = Buffer.from(data, encoding); + buffer.type = type; + buffer.typeFull = typeFull; + buffer.charset = charset; + return buffer; +} +var dist_default; +var init_dist = __esm({ + "../node_modules/.pnpm/data-uri-to-buffer@4.0.1/node_modules/data-uri-to-buffer/dist/index.js"() { + dist_default = dataUriToBuffer; + } +}); + +// ../node_modules/.pnpm/web-streams-polyfill@3.3.3/node_modules/web-streams-polyfill/dist/ponyfill.es2018.js +var require_ponyfill_es2018 = __commonJS({ + "../node_modules/.pnpm/web-streams-polyfill@3.3.3/node_modules/web-streams-polyfill/dist/ponyfill.es2018.js"(exports2, module2) { + (function(global2, factory) { + typeof exports2 === "object" && typeof module2 !== "undefined" ? factory(exports2) : typeof define === "function" && define.amd ? define(["exports"], factory) : (global2 = typeof globalThis !== "undefined" ? globalThis : global2 || self, factory(global2.WebStreamsPolyfill = {})); + })(exports2, function(exports3) { + "use strict"; + function noop2() { + return void 0; + } + function typeIsObject(x4) { + return typeof x4 === "object" && x4 !== null || typeof x4 === "function"; + } + const rethrowAssertionErrorRejection = noop2; + function setFunctionName(fn, name) { + try { + Object.defineProperty(fn, "name", { + value: name, + configurable: true + }); + } catch (_a3) { + } + } + const originalPromise = Promise; + const originalPromiseThen = Promise.prototype.then; + const originalPromiseReject = Promise.reject.bind(originalPromise); + function newPromise(executor) { + return new originalPromise(executor); + } + function promiseResolvedWith(value) { + return newPromise((resolve2) => resolve2(value)); + } + function promiseRejectedWith(reason) { + return originalPromiseReject(reason); + } + function PerformPromiseThen(promise, onFulfilled, onRejected) { + return originalPromiseThen.call(promise, onFulfilled, onRejected); + } + function uponPromise(promise, onFulfilled, onRejected) { + PerformPromiseThen(PerformPromiseThen(promise, onFulfilled, onRejected), void 0, rethrowAssertionErrorRejection); + } + function uponFulfillment(promise, onFulfilled) { + uponPromise(promise, onFulfilled); + } + function uponRejection(promise, onRejected) { + uponPromise(promise, void 0, onRejected); + } + function transformPromiseWith(promise, fulfillmentHandler, rejectionHandler) { + return PerformPromiseThen(promise, fulfillmentHandler, rejectionHandler); + } + function setPromiseIsHandledToTrue(promise) { + PerformPromiseThen(promise, void 0, rethrowAssertionErrorRejection); + } + let _queueMicrotask = (callback) => { + if (typeof queueMicrotask === "function") { + _queueMicrotask = queueMicrotask; + } else { + const resolvedPromise = promiseResolvedWith(void 0); + _queueMicrotask = (cb) => PerformPromiseThen(resolvedPromise, cb); + } + return _queueMicrotask(callback); + }; + function reflectCall(F3, V, args) { + if (typeof F3 !== "function") { + throw new TypeError("Argument is not a function"); + } + return Function.prototype.apply.call(F3, V, args); + } + function promiseCall(F3, V, args) { + try { + return promiseResolvedWith(reflectCall(F3, V, args)); + } catch (value) { + return promiseRejectedWith(value); + } + } + const QUEUE_MAX_ARRAY_SIZE = 16384; + class SimpleQueue { + constructor() { + this._cursor = 0; + this._size = 0; + this._front = { + _elements: [], + _next: void 0 + }; + this._back = this._front; + this._cursor = 0; + this._size = 0; + } + get length() { + return this._size; + } + // For exception safety, this method is structured in order: + // 1. Read state + // 2. Calculate required state mutations + // 3. Perform state mutations + push(element) { + const oldBack = this._back; + let newBack = oldBack; + if (oldBack._elements.length === QUEUE_MAX_ARRAY_SIZE - 1) { + newBack = { + _elements: [], + _next: void 0 + }; + } + oldBack._elements.push(element); + if (newBack !== oldBack) { + this._back = newBack; + oldBack._next = newBack; + } + ++this._size; + } + // Like push(), shift() follows the read -> calculate -> mutate pattern for + // exception safety. + shift() { + const oldFront = this._front; + let newFront = oldFront; + const oldCursor = this._cursor; + let newCursor = oldCursor + 1; + const elements = oldFront._elements; + const element = elements[oldCursor]; + if (newCursor === QUEUE_MAX_ARRAY_SIZE) { + newFront = oldFront._next; + newCursor = 0; + } + --this._size; + this._cursor = newCursor; + if (oldFront !== newFront) { + this._front = newFront; + } + elements[oldCursor] = void 0; + return element; + } + // The tricky thing about forEach() is that it can be called + // re-entrantly. The queue may be mutated inside the callback. It is easy to + // see that push() within the callback has no negative effects since the end + // of the queue is checked for on every iteration. If shift() is called + // repeatedly within the callback then the next iteration may return an + // element that has been removed. In this case the callback will be called + // with undefined values until we either "catch up" with elements that still + // exist or reach the back of the queue. + forEach(callback) { + let i4 = this._cursor; + let node = this._front; + let elements = node._elements; + while (i4 !== elements.length || node._next !== void 0) { + if (i4 === elements.length) { + node = node._next; + elements = node._elements; + i4 = 0; + if (elements.length === 0) { + break; + } + } + callback(elements[i4]); + ++i4; + } + } + // Return the element that would be returned if shift() was called now, + // without modifying the queue. + peek() { + const front = this._front; + const cursor = this._cursor; + return front._elements[cursor]; + } + } + const AbortSteps = Symbol("[[AbortSteps]]"); + const ErrorSteps = Symbol("[[ErrorSteps]]"); + const CancelSteps = Symbol("[[CancelSteps]]"); + const PullSteps = Symbol("[[PullSteps]]"); + const ReleaseSteps = Symbol("[[ReleaseSteps]]"); + function ReadableStreamReaderGenericInitialize(reader, stream) { + reader._ownerReadableStream = stream; + stream._reader = reader; + if (stream._state === "readable") { + defaultReaderClosedPromiseInitialize(reader); + } else if (stream._state === "closed") { + defaultReaderClosedPromiseInitializeAsResolved(reader); + } else { + defaultReaderClosedPromiseInitializeAsRejected(reader, stream._storedError); + } + } + function ReadableStreamReaderGenericCancel(reader, reason) { + const stream = reader._ownerReadableStream; + return ReadableStreamCancel(stream, reason); + } + function ReadableStreamReaderGenericRelease(reader) { + const stream = reader._ownerReadableStream; + if (stream._state === "readable") { + defaultReaderClosedPromiseReject(reader, new TypeError(`Reader was released and can no longer be used to monitor the stream's closedness`)); + } else { + defaultReaderClosedPromiseResetToRejected(reader, new TypeError(`Reader was released and can no longer be used to monitor the stream's closedness`)); + } + stream._readableStreamController[ReleaseSteps](); + stream._reader = void 0; + reader._ownerReadableStream = void 0; + } + function readerLockException(name) { + return new TypeError("Cannot " + name + " a stream using a released reader"); + } + function defaultReaderClosedPromiseInitialize(reader) { + reader._closedPromise = newPromise((resolve2, reject) => { + reader._closedPromise_resolve = resolve2; + reader._closedPromise_reject = reject; + }); + } + function defaultReaderClosedPromiseInitializeAsRejected(reader, reason) { + defaultReaderClosedPromiseInitialize(reader); + defaultReaderClosedPromiseReject(reader, reason); + } + function defaultReaderClosedPromiseInitializeAsResolved(reader) { + defaultReaderClosedPromiseInitialize(reader); + defaultReaderClosedPromiseResolve(reader); + } + function defaultReaderClosedPromiseReject(reader, reason) { + if (reader._closedPromise_reject === void 0) { + return; + } + setPromiseIsHandledToTrue(reader._closedPromise); + reader._closedPromise_reject(reason); + reader._closedPromise_resolve = void 0; + reader._closedPromise_reject = void 0; + } + function defaultReaderClosedPromiseResetToRejected(reader, reason) { + defaultReaderClosedPromiseInitializeAsRejected(reader, reason); + } + function defaultReaderClosedPromiseResolve(reader) { + if (reader._closedPromise_resolve === void 0) { + return; + } + reader._closedPromise_resolve(void 0); + reader._closedPromise_resolve = void 0; + reader._closedPromise_reject = void 0; + } + const NumberIsFinite = Number.isFinite || function(x4) { + return typeof x4 === "number" && isFinite(x4); + }; + const MathTrunc = Math.trunc || function(v6) { + return v6 < 0 ? Math.ceil(v6) : Math.floor(v6); + }; + function isDictionary(x4) { + return typeof x4 === "object" || typeof x4 === "function"; + } + function assertDictionary(obj, context) { + if (obj !== void 0 && !isDictionary(obj)) { + throw new TypeError(`${context} is not an object.`); + } + } + function assertFunction(x4, context) { + if (typeof x4 !== "function") { + throw new TypeError(`${context} is not a function.`); + } + } + function isObject(x4) { + return typeof x4 === "object" && x4 !== null || typeof x4 === "function"; + } + function assertObject(x4, context) { + if (!isObject(x4)) { + throw new TypeError(`${context} is not an object.`); + } + } + function assertRequiredArgument(x4, position, context) { + if (x4 === void 0) { + throw new TypeError(`Parameter ${position} is required in '${context}'.`); + } + } + function assertRequiredField(x4, field, context) { + if (x4 === void 0) { + throw new TypeError(`${field} is required in '${context}'.`); + } + } + function convertUnrestrictedDouble(value) { + return Number(value); + } + function censorNegativeZero(x4) { + return x4 === 0 ? 0 : x4; + } + function integerPart(x4) { + return censorNegativeZero(MathTrunc(x4)); + } + function convertUnsignedLongLongWithEnforceRange(value, context) { + const lowerBound = 0; + const upperBound = Number.MAX_SAFE_INTEGER; + let x4 = Number(value); + x4 = censorNegativeZero(x4); + if (!NumberIsFinite(x4)) { + throw new TypeError(`${context} is not a finite number`); + } + x4 = integerPart(x4); + if (x4 < lowerBound || x4 > upperBound) { + throw new TypeError(`${context} is outside the accepted range of ${lowerBound} to ${upperBound}, inclusive`); + } + if (!NumberIsFinite(x4) || x4 === 0) { + return 0; + } + return x4; + } + function assertReadableStream(x4, context) { + if (!IsReadableStream(x4)) { + throw new TypeError(`${context} is not a ReadableStream.`); + } + } + function AcquireReadableStreamDefaultReader(stream) { + return new ReadableStreamDefaultReader(stream); + } + function ReadableStreamAddReadRequest(stream, readRequest) { + stream._reader._readRequests.push(readRequest); + } + function ReadableStreamFulfillReadRequest(stream, chunk, done) { + const reader = stream._reader; + const readRequest = reader._readRequests.shift(); + if (done) { + readRequest._closeSteps(); + } else { + readRequest._chunkSteps(chunk); + } + } + function ReadableStreamGetNumReadRequests(stream) { + return stream._reader._readRequests.length; + } + function ReadableStreamHasDefaultReader(stream) { + const reader = stream._reader; + if (reader === void 0) { + return false; + } + if (!IsReadableStreamDefaultReader(reader)) { + return false; + } + return true; + } + class ReadableStreamDefaultReader { + constructor(stream) { + assertRequiredArgument(stream, 1, "ReadableStreamDefaultReader"); + assertReadableStream(stream, "First parameter"); + if (IsReadableStreamLocked(stream)) { + throw new TypeError("This stream has already been locked for exclusive reading by another reader"); + } + ReadableStreamReaderGenericInitialize(this, stream); + this._readRequests = new SimpleQueue(); + } + /** + * Returns a promise that will be fulfilled when the stream becomes closed, + * or rejected if the stream ever errors or the reader's lock is released before the stream finishes closing. + */ + get closed() { + if (!IsReadableStreamDefaultReader(this)) { + return promiseRejectedWith(defaultReaderBrandCheckException("closed")); + } + return this._closedPromise; + } + /** + * If the reader is active, behaves the same as {@link ReadableStream.cancel | stream.cancel(reason)}. + */ + cancel(reason = void 0) { + if (!IsReadableStreamDefaultReader(this)) { + return promiseRejectedWith(defaultReaderBrandCheckException("cancel")); + } + if (this._ownerReadableStream === void 0) { + return promiseRejectedWith(readerLockException("cancel")); + } + return ReadableStreamReaderGenericCancel(this, reason); + } + /** + * Returns a promise that allows access to the next chunk from the stream's internal queue, if available. + * + * If reading a chunk causes the queue to become empty, more data will be pulled from the underlying source. + */ + read() { + if (!IsReadableStreamDefaultReader(this)) { + return promiseRejectedWith(defaultReaderBrandCheckException("read")); + } + if (this._ownerReadableStream === void 0) { + return promiseRejectedWith(readerLockException("read from")); + } + let resolvePromise; + let rejectPromise; + const promise = newPromise((resolve2, reject) => { + resolvePromise = resolve2; + rejectPromise = reject; + }); + const readRequest = { + _chunkSteps: (chunk) => resolvePromise({ value: chunk, done: false }), + _closeSteps: () => resolvePromise({ value: void 0, done: true }), + _errorSteps: (e4) => rejectPromise(e4) + }; + ReadableStreamDefaultReaderRead(this, readRequest); + return promise; + } + /** + * Releases the reader's lock on the corresponding stream. After the lock is released, the reader is no longer active. + * If the associated stream is errored when the lock is released, the reader will appear errored in the same way + * from now on; otherwise, the reader will appear closed. + * + * A reader's lock cannot be released while it still has a pending read request, i.e., if a promise returned by + * the reader's {@link ReadableStreamDefaultReader.read | read()} method has not yet been settled. Attempting to + * do so will throw a `TypeError` and leave the reader locked to the stream. + */ + releaseLock() { + if (!IsReadableStreamDefaultReader(this)) { + throw defaultReaderBrandCheckException("releaseLock"); + } + if (this._ownerReadableStream === void 0) { + return; + } + ReadableStreamDefaultReaderRelease(this); + } + } + Object.defineProperties(ReadableStreamDefaultReader.prototype, { + cancel: { enumerable: true }, + read: { enumerable: true }, + releaseLock: { enumerable: true }, + closed: { enumerable: true } + }); + setFunctionName(ReadableStreamDefaultReader.prototype.cancel, "cancel"); + setFunctionName(ReadableStreamDefaultReader.prototype.read, "read"); + setFunctionName(ReadableStreamDefaultReader.prototype.releaseLock, "releaseLock"); + if (typeof Symbol.toStringTag === "symbol") { + Object.defineProperty(ReadableStreamDefaultReader.prototype, Symbol.toStringTag, { + value: "ReadableStreamDefaultReader", + configurable: true + }); + } + function IsReadableStreamDefaultReader(x4) { + if (!typeIsObject(x4)) { + return false; + } + if (!Object.prototype.hasOwnProperty.call(x4, "_readRequests")) { + return false; + } + return x4 instanceof ReadableStreamDefaultReader; + } + function ReadableStreamDefaultReaderRead(reader, readRequest) { + const stream = reader._ownerReadableStream; + stream._disturbed = true; + if (stream._state === "closed") { + readRequest._closeSteps(); + } else if (stream._state === "errored") { + readRequest._errorSteps(stream._storedError); + } else { + stream._readableStreamController[PullSteps](readRequest); + } + } + function ReadableStreamDefaultReaderRelease(reader) { + ReadableStreamReaderGenericRelease(reader); + const e4 = new TypeError("Reader was released"); + ReadableStreamDefaultReaderErrorReadRequests(reader, e4); + } + function ReadableStreamDefaultReaderErrorReadRequests(reader, e4) { + const readRequests = reader._readRequests; + reader._readRequests = new SimpleQueue(); + readRequests.forEach((readRequest) => { + readRequest._errorSteps(e4); + }); + } + function defaultReaderBrandCheckException(name) { + return new TypeError(`ReadableStreamDefaultReader.prototype.${name} can only be used on a ReadableStreamDefaultReader`); + } + const AsyncIteratorPrototype = Object.getPrototypeOf(Object.getPrototypeOf(async function* () { + }).prototype); + class ReadableStreamAsyncIteratorImpl { + constructor(reader, preventCancel) { + this._ongoingPromise = void 0; + this._isFinished = false; + this._reader = reader; + this._preventCancel = preventCancel; + } + next() { + const nextSteps = () => this._nextSteps(); + this._ongoingPromise = this._ongoingPromise ? transformPromiseWith(this._ongoingPromise, nextSteps, nextSteps) : nextSteps(); + return this._ongoingPromise; + } + return(value) { + const returnSteps = () => this._returnSteps(value); + return this._ongoingPromise ? transformPromiseWith(this._ongoingPromise, returnSteps, returnSteps) : returnSteps(); + } + _nextSteps() { + if (this._isFinished) { + return Promise.resolve({ value: void 0, done: true }); + } + const reader = this._reader; + let resolvePromise; + let rejectPromise; + const promise = newPromise((resolve2, reject) => { + resolvePromise = resolve2; + rejectPromise = reject; + }); + const readRequest = { + _chunkSteps: (chunk) => { + this._ongoingPromise = void 0; + _queueMicrotask(() => resolvePromise({ value: chunk, done: false })); + }, + _closeSteps: () => { + this._ongoingPromise = void 0; + this._isFinished = true; + ReadableStreamReaderGenericRelease(reader); + resolvePromise({ value: void 0, done: true }); + }, + _errorSteps: (reason) => { + this._ongoingPromise = void 0; + this._isFinished = true; + ReadableStreamReaderGenericRelease(reader); + rejectPromise(reason); + } + }; + ReadableStreamDefaultReaderRead(reader, readRequest); + return promise; + } + _returnSteps(value) { + if (this._isFinished) { + return Promise.resolve({ value, done: true }); + } + this._isFinished = true; + const reader = this._reader; + if (!this._preventCancel) { + const result = ReadableStreamReaderGenericCancel(reader, value); + ReadableStreamReaderGenericRelease(reader); + return transformPromiseWith(result, () => ({ value, done: true })); + } + ReadableStreamReaderGenericRelease(reader); + return promiseResolvedWith({ value, done: true }); + } + } + const ReadableStreamAsyncIteratorPrototype = { + next() { + if (!IsReadableStreamAsyncIterator(this)) { + return promiseRejectedWith(streamAsyncIteratorBrandCheckException("next")); + } + return this._asyncIteratorImpl.next(); + }, + return(value) { + if (!IsReadableStreamAsyncIterator(this)) { + return promiseRejectedWith(streamAsyncIteratorBrandCheckException("return")); + } + return this._asyncIteratorImpl.return(value); + } + }; + Object.setPrototypeOf(ReadableStreamAsyncIteratorPrototype, AsyncIteratorPrototype); + function AcquireReadableStreamAsyncIterator(stream, preventCancel) { + const reader = AcquireReadableStreamDefaultReader(stream); + const impl = new ReadableStreamAsyncIteratorImpl(reader, preventCancel); + const iterator = Object.create(ReadableStreamAsyncIteratorPrototype); + iterator._asyncIteratorImpl = impl; + return iterator; + } + function IsReadableStreamAsyncIterator(x4) { + if (!typeIsObject(x4)) { + return false; + } + if (!Object.prototype.hasOwnProperty.call(x4, "_asyncIteratorImpl")) { + return false; + } + try { + return x4._asyncIteratorImpl instanceof ReadableStreamAsyncIteratorImpl; + } catch (_a3) { + return false; + } + } + function streamAsyncIteratorBrandCheckException(name) { + return new TypeError(`ReadableStreamAsyncIterator.${name} can only be used on a ReadableSteamAsyncIterator`); + } + const NumberIsNaN = Number.isNaN || function(x4) { + return x4 !== x4; + }; + var _a2, _b, _c; + function CreateArrayFromList(elements) { + return elements.slice(); + } + function CopyDataBlockBytes(dest, destOffset, src, srcOffset, n3) { + new Uint8Array(dest).set(new Uint8Array(src, srcOffset, n3), destOffset); + } + let TransferArrayBuffer = (O) => { + if (typeof O.transfer === "function") { + TransferArrayBuffer = (buffer) => buffer.transfer(); + } else if (typeof structuredClone === "function") { + TransferArrayBuffer = (buffer) => structuredClone(buffer, { transfer: [buffer] }); + } else { + TransferArrayBuffer = (buffer) => buffer; + } + return TransferArrayBuffer(O); + }; + let IsDetachedBuffer = (O) => { + if (typeof O.detached === "boolean") { + IsDetachedBuffer = (buffer) => buffer.detached; + } else { + IsDetachedBuffer = (buffer) => buffer.byteLength === 0; + } + return IsDetachedBuffer(O); + }; + function ArrayBufferSlice(buffer, begin, end) { + if (buffer.slice) { + return buffer.slice(begin, end); + } + const length = end - begin; + const slice = new ArrayBuffer(length); + CopyDataBlockBytes(slice, 0, buffer, begin, length); + return slice; + } + function GetMethod(receiver, prop) { + const func = receiver[prop]; + if (func === void 0 || func === null) { + return void 0; + } + if (typeof func !== "function") { + throw new TypeError(`${String(prop)} is not a function`); + } + return func; + } + function CreateAsyncFromSyncIterator(syncIteratorRecord) { + const syncIterable = { + [Symbol.iterator]: () => syncIteratorRecord.iterator + }; + const asyncIterator = async function* () { + return yield* syncIterable; + }(); + const nextMethod = asyncIterator.next; + return { iterator: asyncIterator, nextMethod, done: false }; + } + const SymbolAsyncIterator = (_c = (_a2 = Symbol.asyncIterator) !== null && _a2 !== void 0 ? _a2 : (_b = Symbol.for) === null || _b === void 0 ? void 0 : _b.call(Symbol, "Symbol.asyncIterator")) !== null && _c !== void 0 ? _c : "@@asyncIterator"; + function GetIterator(obj, hint = "sync", method) { + if (method === void 0) { + if (hint === "async") { + method = GetMethod(obj, SymbolAsyncIterator); + if (method === void 0) { + const syncMethod = GetMethod(obj, Symbol.iterator); + const syncIteratorRecord = GetIterator(obj, "sync", syncMethod); + return CreateAsyncFromSyncIterator(syncIteratorRecord); + } + } else { + method = GetMethod(obj, Symbol.iterator); + } + } + if (method === void 0) { + throw new TypeError("The object is not iterable"); + } + const iterator = reflectCall(method, obj, []); + if (!typeIsObject(iterator)) { + throw new TypeError("The iterator method must return an object"); + } + const nextMethod = iterator.next; + return { iterator, nextMethod, done: false }; + } + function IteratorNext(iteratorRecord) { + const result = reflectCall(iteratorRecord.nextMethod, iteratorRecord.iterator, []); + if (!typeIsObject(result)) { + throw new TypeError("The iterator.next() method must return an object"); + } + return result; + } + function IteratorComplete(iterResult) { + return Boolean(iterResult.done); + } + function IteratorValue(iterResult) { + return iterResult.value; + } + function IsNonNegativeNumber(v6) { + if (typeof v6 !== "number") { + return false; + } + if (NumberIsNaN(v6)) { + return false; + } + if (v6 < 0) { + return false; + } + return true; + } + function CloneAsUint8Array(O) { + const buffer = ArrayBufferSlice(O.buffer, O.byteOffset, O.byteOffset + O.byteLength); + return new Uint8Array(buffer); + } + function DequeueValue(container) { + const pair = container._queue.shift(); + container._queueTotalSize -= pair.size; + if (container._queueTotalSize < 0) { + container._queueTotalSize = 0; + } + return pair.value; + } + function EnqueueValueWithSize(container, value, size) { + if (!IsNonNegativeNumber(size) || size === Infinity) { + throw new RangeError("Size must be a finite, non-NaN, non-negative number."); + } + container._queue.push({ value, size }); + container._queueTotalSize += size; + } + function PeekQueueValue(container) { + const pair = container._queue.peek(); + return pair.value; + } + function ResetQueue(container) { + container._queue = new SimpleQueue(); + container._queueTotalSize = 0; + } + function isDataViewConstructor(ctor) { + return ctor === DataView; + } + function isDataView(view5) { + return isDataViewConstructor(view5.constructor); + } + function arrayBufferViewElementSize(ctor) { + if (isDataViewConstructor(ctor)) { + return 1; + } + return ctor.BYTES_PER_ELEMENT; + } + class ReadableStreamBYOBRequest { + constructor() { + throw new TypeError("Illegal constructor"); + } + /** + * Returns the view for writing in to, or `null` if the BYOB request has already been responded to. + */ + get view() { + if (!IsReadableStreamBYOBRequest(this)) { + throw byobRequestBrandCheckException("view"); + } + return this._view; + } + respond(bytesWritten) { + if (!IsReadableStreamBYOBRequest(this)) { + throw byobRequestBrandCheckException("respond"); + } + assertRequiredArgument(bytesWritten, 1, "respond"); + bytesWritten = convertUnsignedLongLongWithEnforceRange(bytesWritten, "First parameter"); + if (this._associatedReadableByteStreamController === void 0) { + throw new TypeError("This BYOB request has been invalidated"); + } + if (IsDetachedBuffer(this._view.buffer)) { + throw new TypeError(`The BYOB request's buffer has been detached and so cannot be used as a response`); + } + ReadableByteStreamControllerRespond(this._associatedReadableByteStreamController, bytesWritten); + } + respondWithNewView(view5) { + if (!IsReadableStreamBYOBRequest(this)) { + throw byobRequestBrandCheckException("respondWithNewView"); + } + assertRequiredArgument(view5, 1, "respondWithNewView"); + if (!ArrayBuffer.isView(view5)) { + throw new TypeError("You can only respond with array buffer views"); + } + if (this._associatedReadableByteStreamController === void 0) { + throw new TypeError("This BYOB request has been invalidated"); + } + if (IsDetachedBuffer(view5.buffer)) { + throw new TypeError("The given view's buffer has been detached and so cannot be used as a response"); + } + ReadableByteStreamControllerRespondWithNewView(this._associatedReadableByteStreamController, view5); + } + } + Object.defineProperties(ReadableStreamBYOBRequest.prototype, { + respond: { enumerable: true }, + respondWithNewView: { enumerable: true }, + view: { enumerable: true } + }); + setFunctionName(ReadableStreamBYOBRequest.prototype.respond, "respond"); + setFunctionName(ReadableStreamBYOBRequest.prototype.respondWithNewView, "respondWithNewView"); + if (typeof Symbol.toStringTag === "symbol") { + Object.defineProperty(ReadableStreamBYOBRequest.prototype, Symbol.toStringTag, { + value: "ReadableStreamBYOBRequest", + configurable: true + }); + } + class ReadableByteStreamController { + constructor() { + throw new TypeError("Illegal constructor"); + } + /** + * Returns the current BYOB pull request, or `null` if there isn't one. + */ + get byobRequest() { + if (!IsReadableByteStreamController(this)) { + throw byteStreamControllerBrandCheckException("byobRequest"); + } + return ReadableByteStreamControllerGetBYOBRequest(this); + } + /** + * Returns the desired size to fill the controlled stream's internal queue. It can be negative, if the queue is + * over-full. An underlying byte source ought to use this information to determine when and how to apply backpressure. + */ + get desiredSize() { + if (!IsReadableByteStreamController(this)) { + throw byteStreamControllerBrandCheckException("desiredSize"); + } + return ReadableByteStreamControllerGetDesiredSize(this); + } + /** + * Closes the controlled readable stream. Consumers will still be able to read any previously-enqueued chunks from + * the stream, but once those are read, the stream will become closed. + */ + close() { + if (!IsReadableByteStreamController(this)) { + throw byteStreamControllerBrandCheckException("close"); + } + if (this._closeRequested) { + throw new TypeError("The stream has already been closed; do not close it again!"); + } + const state2 = this._controlledReadableByteStream._state; + if (state2 !== "readable") { + throw new TypeError(`The stream (in ${state2} state) is not in the readable state and cannot be closed`); + } + ReadableByteStreamControllerClose(this); + } + enqueue(chunk) { + if (!IsReadableByteStreamController(this)) { + throw byteStreamControllerBrandCheckException("enqueue"); + } + assertRequiredArgument(chunk, 1, "enqueue"); + if (!ArrayBuffer.isView(chunk)) { + throw new TypeError("chunk must be an array buffer view"); + } + if (chunk.byteLength === 0) { + throw new TypeError("chunk must have non-zero byteLength"); + } + if (chunk.buffer.byteLength === 0) { + throw new TypeError(`chunk's buffer must have non-zero byteLength`); + } + if (this._closeRequested) { + throw new TypeError("stream is closed or draining"); + } + const state2 = this._controlledReadableByteStream._state; + if (state2 !== "readable") { + throw new TypeError(`The stream (in ${state2} state) is not in the readable state and cannot be enqueued to`); + } + ReadableByteStreamControllerEnqueue(this, chunk); + } + /** + * Errors the controlled readable stream, making all future interactions with it fail with the given error `e`. + */ + error(e4 = void 0) { + if (!IsReadableByteStreamController(this)) { + throw byteStreamControllerBrandCheckException("error"); + } + ReadableByteStreamControllerError(this, e4); + } + /** @internal */ + [CancelSteps](reason) { + ReadableByteStreamControllerClearPendingPullIntos(this); + ResetQueue(this); + const result = this._cancelAlgorithm(reason); + ReadableByteStreamControllerClearAlgorithms(this); + return result; + } + /** @internal */ + [PullSteps](readRequest) { + const stream = this._controlledReadableByteStream; + if (this._queueTotalSize > 0) { + ReadableByteStreamControllerFillReadRequestFromQueue(this, readRequest); + return; + } + const autoAllocateChunkSize = this._autoAllocateChunkSize; + if (autoAllocateChunkSize !== void 0) { + let buffer; + try { + buffer = new ArrayBuffer(autoAllocateChunkSize); + } catch (bufferE) { + readRequest._errorSteps(bufferE); + return; + } + const pullIntoDescriptor = { + buffer, + bufferByteLength: autoAllocateChunkSize, + byteOffset: 0, + byteLength: autoAllocateChunkSize, + bytesFilled: 0, + minimumFill: 1, + elementSize: 1, + viewConstructor: Uint8Array, + readerType: "default" + }; + this._pendingPullIntos.push(pullIntoDescriptor); + } + ReadableStreamAddReadRequest(stream, readRequest); + ReadableByteStreamControllerCallPullIfNeeded(this); + } + /** @internal */ + [ReleaseSteps]() { + if (this._pendingPullIntos.length > 0) { + const firstPullInto = this._pendingPullIntos.peek(); + firstPullInto.readerType = "none"; + this._pendingPullIntos = new SimpleQueue(); + this._pendingPullIntos.push(firstPullInto); + } + } + } + Object.defineProperties(ReadableByteStreamController.prototype, { + close: { enumerable: true }, + enqueue: { enumerable: true }, + error: { enumerable: true }, + byobRequest: { enumerable: true }, + desiredSize: { enumerable: true } + }); + setFunctionName(ReadableByteStreamController.prototype.close, "close"); + setFunctionName(ReadableByteStreamController.prototype.enqueue, "enqueue"); + setFunctionName(ReadableByteStreamController.prototype.error, "error"); + if (typeof Symbol.toStringTag === "symbol") { + Object.defineProperty(ReadableByteStreamController.prototype, Symbol.toStringTag, { + value: "ReadableByteStreamController", + configurable: true + }); + } + function IsReadableByteStreamController(x4) { + if (!typeIsObject(x4)) { + return false; + } + if (!Object.prototype.hasOwnProperty.call(x4, "_controlledReadableByteStream")) { + return false; + } + return x4 instanceof ReadableByteStreamController; + } + function IsReadableStreamBYOBRequest(x4) { + if (!typeIsObject(x4)) { + return false; + } + if (!Object.prototype.hasOwnProperty.call(x4, "_associatedReadableByteStreamController")) { + return false; + } + return x4 instanceof ReadableStreamBYOBRequest; + } + function ReadableByteStreamControllerCallPullIfNeeded(controller) { + const shouldPull = ReadableByteStreamControllerShouldCallPull(controller); + if (!shouldPull) { + return; + } + if (controller._pulling) { + controller._pullAgain = true; + return; + } + controller._pulling = true; + const pullPromise = controller._pullAlgorithm(); + uponPromise(pullPromise, () => { + controller._pulling = false; + if (controller._pullAgain) { + controller._pullAgain = false; + ReadableByteStreamControllerCallPullIfNeeded(controller); + } + return null; + }, (e4) => { + ReadableByteStreamControllerError(controller, e4); + return null; + }); + } + function ReadableByteStreamControllerClearPendingPullIntos(controller) { + ReadableByteStreamControllerInvalidateBYOBRequest(controller); + controller._pendingPullIntos = new SimpleQueue(); + } + function ReadableByteStreamControllerCommitPullIntoDescriptor(stream, pullIntoDescriptor) { + let done = false; + if (stream._state === "closed") { + done = true; + } + const filledView = ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor); + if (pullIntoDescriptor.readerType === "default") { + ReadableStreamFulfillReadRequest(stream, filledView, done); + } else { + ReadableStreamFulfillReadIntoRequest(stream, filledView, done); + } + } + function ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor) { + const bytesFilled = pullIntoDescriptor.bytesFilled; + const elementSize = pullIntoDescriptor.elementSize; + return new pullIntoDescriptor.viewConstructor(pullIntoDescriptor.buffer, pullIntoDescriptor.byteOffset, bytesFilled / elementSize); + } + function ReadableByteStreamControllerEnqueueChunkToQueue(controller, buffer, byteOffset, byteLength) { + controller._queue.push({ buffer, byteOffset, byteLength }); + controller._queueTotalSize += byteLength; + } + function ReadableByteStreamControllerEnqueueClonedChunkToQueue(controller, buffer, byteOffset, byteLength) { + let clonedChunk; + try { + clonedChunk = ArrayBufferSlice(buffer, byteOffset, byteOffset + byteLength); + } catch (cloneE) { + ReadableByteStreamControllerError(controller, cloneE); + throw cloneE; + } + ReadableByteStreamControllerEnqueueChunkToQueue(controller, clonedChunk, 0, byteLength); + } + function ReadableByteStreamControllerEnqueueDetachedPullIntoToQueue(controller, firstDescriptor) { + if (firstDescriptor.bytesFilled > 0) { + ReadableByteStreamControllerEnqueueClonedChunkToQueue(controller, firstDescriptor.buffer, firstDescriptor.byteOffset, firstDescriptor.bytesFilled); + } + ReadableByteStreamControllerShiftPendingPullInto(controller); + } + function ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) { + const maxBytesToCopy = Math.min(controller._queueTotalSize, pullIntoDescriptor.byteLength - pullIntoDescriptor.bytesFilled); + const maxBytesFilled = pullIntoDescriptor.bytesFilled + maxBytesToCopy; + let totalBytesToCopyRemaining = maxBytesToCopy; + let ready = false; + const remainderBytes = maxBytesFilled % pullIntoDescriptor.elementSize; + const maxAlignedBytes = maxBytesFilled - remainderBytes; + if (maxAlignedBytes >= pullIntoDescriptor.minimumFill) { + totalBytesToCopyRemaining = maxAlignedBytes - pullIntoDescriptor.bytesFilled; + ready = true; + } + const queue = controller._queue; + while (totalBytesToCopyRemaining > 0) { + const headOfQueue = queue.peek(); + const bytesToCopy = Math.min(totalBytesToCopyRemaining, headOfQueue.byteLength); + const destStart = pullIntoDescriptor.byteOffset + pullIntoDescriptor.bytesFilled; + CopyDataBlockBytes(pullIntoDescriptor.buffer, destStart, headOfQueue.buffer, headOfQueue.byteOffset, bytesToCopy); + if (headOfQueue.byteLength === bytesToCopy) { + queue.shift(); + } else { + headOfQueue.byteOffset += bytesToCopy; + headOfQueue.byteLength -= bytesToCopy; + } + controller._queueTotalSize -= bytesToCopy; + ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, bytesToCopy, pullIntoDescriptor); + totalBytesToCopyRemaining -= bytesToCopy; + } + return ready; + } + function ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, size, pullIntoDescriptor) { + pullIntoDescriptor.bytesFilled += size; + } + function ReadableByteStreamControllerHandleQueueDrain(controller) { + if (controller._queueTotalSize === 0 && controller._closeRequested) { + ReadableByteStreamControllerClearAlgorithms(controller); + ReadableStreamClose(controller._controlledReadableByteStream); + } else { + ReadableByteStreamControllerCallPullIfNeeded(controller); + } + } + function ReadableByteStreamControllerInvalidateBYOBRequest(controller) { + if (controller._byobRequest === null) { + return; + } + controller._byobRequest._associatedReadableByteStreamController = void 0; + controller._byobRequest._view = null; + controller._byobRequest = null; + } + function ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller) { + while (controller._pendingPullIntos.length > 0) { + if (controller._queueTotalSize === 0) { + return; + } + const pullIntoDescriptor = controller._pendingPullIntos.peek(); + if (ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor)) { + ReadableByteStreamControllerShiftPendingPullInto(controller); + ReadableByteStreamControllerCommitPullIntoDescriptor(controller._controlledReadableByteStream, pullIntoDescriptor); + } + } + } + function ReadableByteStreamControllerProcessReadRequestsUsingQueue(controller) { + const reader = controller._controlledReadableByteStream._reader; + while (reader._readRequests.length > 0) { + if (controller._queueTotalSize === 0) { + return; + } + const readRequest = reader._readRequests.shift(); + ReadableByteStreamControllerFillReadRequestFromQueue(controller, readRequest); + } + } + function ReadableByteStreamControllerPullInto(controller, view5, min, readIntoRequest) { + const stream = controller._controlledReadableByteStream; + const ctor = view5.constructor; + const elementSize = arrayBufferViewElementSize(ctor); + const { byteOffset, byteLength } = view5; + const minimumFill = min * elementSize; + let buffer; + try { + buffer = TransferArrayBuffer(view5.buffer); + } catch (e4) { + readIntoRequest._errorSteps(e4); + return; + } + const pullIntoDescriptor = { + buffer, + bufferByteLength: buffer.byteLength, + byteOffset, + byteLength, + bytesFilled: 0, + minimumFill, + elementSize, + viewConstructor: ctor, + readerType: "byob" + }; + if (controller._pendingPullIntos.length > 0) { + controller._pendingPullIntos.push(pullIntoDescriptor); + ReadableStreamAddReadIntoRequest(stream, readIntoRequest); + return; + } + if (stream._state === "closed") { + const emptyView = new ctor(pullIntoDescriptor.buffer, pullIntoDescriptor.byteOffset, 0); + readIntoRequest._closeSteps(emptyView); + return; + } + if (controller._queueTotalSize > 0) { + if (ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor)) { + const filledView = ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor); + ReadableByteStreamControllerHandleQueueDrain(controller); + readIntoRequest._chunkSteps(filledView); + return; + } + if (controller._closeRequested) { + const e4 = new TypeError("Insufficient bytes to fill elements in the given buffer"); + ReadableByteStreamControllerError(controller, e4); + readIntoRequest._errorSteps(e4); + return; + } + } + controller._pendingPullIntos.push(pullIntoDescriptor); + ReadableStreamAddReadIntoRequest(stream, readIntoRequest); + ReadableByteStreamControllerCallPullIfNeeded(controller); + } + function ReadableByteStreamControllerRespondInClosedState(controller, firstDescriptor) { + if (firstDescriptor.readerType === "none") { + ReadableByteStreamControllerShiftPendingPullInto(controller); + } + const stream = controller._controlledReadableByteStream; + if (ReadableStreamHasBYOBReader(stream)) { + while (ReadableStreamGetNumReadIntoRequests(stream) > 0) { + const pullIntoDescriptor = ReadableByteStreamControllerShiftPendingPullInto(controller); + ReadableByteStreamControllerCommitPullIntoDescriptor(stream, pullIntoDescriptor); + } + } + } + function ReadableByteStreamControllerRespondInReadableState(controller, bytesWritten, pullIntoDescriptor) { + ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, bytesWritten, pullIntoDescriptor); + if (pullIntoDescriptor.readerType === "none") { + ReadableByteStreamControllerEnqueueDetachedPullIntoToQueue(controller, pullIntoDescriptor); + ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller); + return; + } + if (pullIntoDescriptor.bytesFilled < pullIntoDescriptor.minimumFill) { + return; + } + ReadableByteStreamControllerShiftPendingPullInto(controller); + const remainderSize = pullIntoDescriptor.bytesFilled % pullIntoDescriptor.elementSize; + if (remainderSize > 0) { + const end = pullIntoDescriptor.byteOffset + pullIntoDescriptor.bytesFilled; + ReadableByteStreamControllerEnqueueClonedChunkToQueue(controller, pullIntoDescriptor.buffer, end - remainderSize, remainderSize); + } + pullIntoDescriptor.bytesFilled -= remainderSize; + ReadableByteStreamControllerCommitPullIntoDescriptor(controller._controlledReadableByteStream, pullIntoDescriptor); + ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller); + } + function ReadableByteStreamControllerRespondInternal(controller, bytesWritten) { + const firstDescriptor = controller._pendingPullIntos.peek(); + ReadableByteStreamControllerInvalidateBYOBRequest(controller); + const state2 = controller._controlledReadableByteStream._state; + if (state2 === "closed") { + ReadableByteStreamControllerRespondInClosedState(controller, firstDescriptor); + } else { + ReadableByteStreamControllerRespondInReadableState(controller, bytesWritten, firstDescriptor); + } + ReadableByteStreamControllerCallPullIfNeeded(controller); + } + function ReadableByteStreamControllerShiftPendingPullInto(controller) { + const descriptor = controller._pendingPullIntos.shift(); + return descriptor; + } + function ReadableByteStreamControllerShouldCallPull(controller) { + const stream = controller._controlledReadableByteStream; + if (stream._state !== "readable") { + return false; + } + if (controller._closeRequested) { + return false; + } + if (!controller._started) { + return false; + } + if (ReadableStreamHasDefaultReader(stream) && ReadableStreamGetNumReadRequests(stream) > 0) { + return true; + } + if (ReadableStreamHasBYOBReader(stream) && ReadableStreamGetNumReadIntoRequests(stream) > 0) { + return true; + } + const desiredSize = ReadableByteStreamControllerGetDesiredSize(controller); + if (desiredSize > 0) { + return true; + } + return false; + } + function ReadableByteStreamControllerClearAlgorithms(controller) { + controller._pullAlgorithm = void 0; + controller._cancelAlgorithm = void 0; + } + function ReadableByteStreamControllerClose(controller) { + const stream = controller._controlledReadableByteStream; + if (controller._closeRequested || stream._state !== "readable") { + return; + } + if (controller._queueTotalSize > 0) { + controller._closeRequested = true; + return; + } + if (controller._pendingPullIntos.length > 0) { + const firstPendingPullInto = controller._pendingPullIntos.peek(); + if (firstPendingPullInto.bytesFilled % firstPendingPullInto.elementSize !== 0) { + const e4 = new TypeError("Insufficient bytes to fill elements in the given buffer"); + ReadableByteStreamControllerError(controller, e4); + throw e4; + } + } + ReadableByteStreamControllerClearAlgorithms(controller); + ReadableStreamClose(stream); + } + function ReadableByteStreamControllerEnqueue(controller, chunk) { + const stream = controller._controlledReadableByteStream; + if (controller._closeRequested || stream._state !== "readable") { + return; + } + const { buffer, byteOffset, byteLength } = chunk; + if (IsDetachedBuffer(buffer)) { + throw new TypeError("chunk's buffer is detached and so cannot be enqueued"); + } + const transferredBuffer = TransferArrayBuffer(buffer); + if (controller._pendingPullIntos.length > 0) { + const firstPendingPullInto = controller._pendingPullIntos.peek(); + if (IsDetachedBuffer(firstPendingPullInto.buffer)) { + throw new TypeError("The BYOB request's buffer has been detached and so cannot be filled with an enqueued chunk"); + } + ReadableByteStreamControllerInvalidateBYOBRequest(controller); + firstPendingPullInto.buffer = TransferArrayBuffer(firstPendingPullInto.buffer); + if (firstPendingPullInto.readerType === "none") { + ReadableByteStreamControllerEnqueueDetachedPullIntoToQueue(controller, firstPendingPullInto); + } + } + if (ReadableStreamHasDefaultReader(stream)) { + ReadableByteStreamControllerProcessReadRequestsUsingQueue(controller); + if (ReadableStreamGetNumReadRequests(stream) === 0) { + ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength); + } else { + if (controller._pendingPullIntos.length > 0) { + ReadableByteStreamControllerShiftPendingPullInto(controller); + } + const transferredView = new Uint8Array(transferredBuffer, byteOffset, byteLength); + ReadableStreamFulfillReadRequest(stream, transferredView, false); + } + } else if (ReadableStreamHasBYOBReader(stream)) { + ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength); + ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller); + } else { + ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength); + } + ReadableByteStreamControllerCallPullIfNeeded(controller); + } + function ReadableByteStreamControllerError(controller, e4) { + const stream = controller._controlledReadableByteStream; + if (stream._state !== "readable") { + return; + } + ReadableByteStreamControllerClearPendingPullIntos(controller); + ResetQueue(controller); + ReadableByteStreamControllerClearAlgorithms(controller); + ReadableStreamError(stream, e4); + } + function ReadableByteStreamControllerFillReadRequestFromQueue(controller, readRequest) { + const entry = controller._queue.shift(); + controller._queueTotalSize -= entry.byteLength; + ReadableByteStreamControllerHandleQueueDrain(controller); + const view5 = new Uint8Array(entry.buffer, entry.byteOffset, entry.byteLength); + readRequest._chunkSteps(view5); + } + function ReadableByteStreamControllerGetBYOBRequest(controller) { + if (controller._byobRequest === null && controller._pendingPullIntos.length > 0) { + const firstDescriptor = controller._pendingPullIntos.peek(); + const view5 = new Uint8Array(firstDescriptor.buffer, firstDescriptor.byteOffset + firstDescriptor.bytesFilled, firstDescriptor.byteLength - firstDescriptor.bytesFilled); + const byobRequest = Object.create(ReadableStreamBYOBRequest.prototype); + SetUpReadableStreamBYOBRequest(byobRequest, controller, view5); + controller._byobRequest = byobRequest; + } + return controller._byobRequest; + } + function ReadableByteStreamControllerGetDesiredSize(controller) { + const state2 = controller._controlledReadableByteStream._state; + if (state2 === "errored") { + return null; + } + if (state2 === "closed") { + return 0; + } + return controller._strategyHWM - controller._queueTotalSize; + } + function ReadableByteStreamControllerRespond(controller, bytesWritten) { + const firstDescriptor = controller._pendingPullIntos.peek(); + const state2 = controller._controlledReadableByteStream._state; + if (state2 === "closed") { + if (bytesWritten !== 0) { + throw new TypeError("bytesWritten must be 0 when calling respond() on a closed stream"); + } + } else { + if (bytesWritten === 0) { + throw new TypeError("bytesWritten must be greater than 0 when calling respond() on a readable stream"); + } + if (firstDescriptor.bytesFilled + bytesWritten > firstDescriptor.byteLength) { + throw new RangeError("bytesWritten out of range"); + } + } + firstDescriptor.buffer = TransferArrayBuffer(firstDescriptor.buffer); + ReadableByteStreamControllerRespondInternal(controller, bytesWritten); + } + function ReadableByteStreamControllerRespondWithNewView(controller, view5) { + const firstDescriptor = controller._pendingPullIntos.peek(); + const state2 = controller._controlledReadableByteStream._state; + if (state2 === "closed") { + if (view5.byteLength !== 0) { + throw new TypeError("The view's length must be 0 when calling respondWithNewView() on a closed stream"); + } + } else { + if (view5.byteLength === 0) { + throw new TypeError("The view's length must be greater than 0 when calling respondWithNewView() on a readable stream"); + } + } + if (firstDescriptor.byteOffset + firstDescriptor.bytesFilled !== view5.byteOffset) { + throw new RangeError("The region specified by view does not match byobRequest"); + } + if (firstDescriptor.bufferByteLength !== view5.buffer.byteLength) { + throw new RangeError("The buffer of view has different capacity than byobRequest"); + } + if (firstDescriptor.bytesFilled + view5.byteLength > firstDescriptor.byteLength) { + throw new RangeError("The region specified by view is larger than byobRequest"); + } + const viewByteLength = view5.byteLength; + firstDescriptor.buffer = TransferArrayBuffer(view5.buffer); + ReadableByteStreamControllerRespondInternal(controller, viewByteLength); + } + function SetUpReadableByteStreamController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, autoAllocateChunkSize) { + controller._controlledReadableByteStream = stream; + controller._pullAgain = false; + controller._pulling = false; + controller._byobRequest = null; + controller._queue = controller._queueTotalSize = void 0; + ResetQueue(controller); + controller._closeRequested = false; + controller._started = false; + controller._strategyHWM = highWaterMark; + controller._pullAlgorithm = pullAlgorithm; + controller._cancelAlgorithm = cancelAlgorithm; + controller._autoAllocateChunkSize = autoAllocateChunkSize; + controller._pendingPullIntos = new SimpleQueue(); + stream._readableStreamController = controller; + const startResult = startAlgorithm(); + uponPromise(promiseResolvedWith(startResult), () => { + controller._started = true; + ReadableByteStreamControllerCallPullIfNeeded(controller); + return null; + }, (r4) => { + ReadableByteStreamControllerError(controller, r4); + return null; + }); + } + function SetUpReadableByteStreamControllerFromUnderlyingSource(stream, underlyingByteSource, highWaterMark) { + const controller = Object.create(ReadableByteStreamController.prototype); + let startAlgorithm; + let pullAlgorithm; + let cancelAlgorithm; + if (underlyingByteSource.start !== void 0) { + startAlgorithm = () => underlyingByteSource.start(controller); + } else { + startAlgorithm = () => void 0; + } + if (underlyingByteSource.pull !== void 0) { + pullAlgorithm = () => underlyingByteSource.pull(controller); + } else { + pullAlgorithm = () => promiseResolvedWith(void 0); + } + if (underlyingByteSource.cancel !== void 0) { + cancelAlgorithm = (reason) => underlyingByteSource.cancel(reason); + } else { + cancelAlgorithm = () => promiseResolvedWith(void 0); + } + const autoAllocateChunkSize = underlyingByteSource.autoAllocateChunkSize; + if (autoAllocateChunkSize === 0) { + throw new TypeError("autoAllocateChunkSize must be greater than 0"); + } + SetUpReadableByteStreamController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, autoAllocateChunkSize); + } + function SetUpReadableStreamBYOBRequest(request, controller, view5) { + request._associatedReadableByteStreamController = controller; + request._view = view5; + } + function byobRequestBrandCheckException(name) { + return new TypeError(`ReadableStreamBYOBRequest.prototype.${name} can only be used on a ReadableStreamBYOBRequest`); + } + function byteStreamControllerBrandCheckException(name) { + return new TypeError(`ReadableByteStreamController.prototype.${name} can only be used on a ReadableByteStreamController`); + } + function convertReaderOptions(options, context) { + assertDictionary(options, context); + const mode = options === null || options === void 0 ? void 0 : options.mode; + return { + mode: mode === void 0 ? void 0 : convertReadableStreamReaderMode(mode, `${context} has member 'mode' that`) + }; + } + function convertReadableStreamReaderMode(mode, context) { + mode = `${mode}`; + if (mode !== "byob") { + throw new TypeError(`${context} '${mode}' is not a valid enumeration value for ReadableStreamReaderMode`); + } + return mode; + } + function convertByobReadOptions(options, context) { + var _a3; + assertDictionary(options, context); + const min = (_a3 = options === null || options === void 0 ? void 0 : options.min) !== null && _a3 !== void 0 ? _a3 : 1; + return { + min: convertUnsignedLongLongWithEnforceRange(min, `${context} has member 'min' that`) + }; + } + function AcquireReadableStreamBYOBReader(stream) { + return new ReadableStreamBYOBReader(stream); + } + function ReadableStreamAddReadIntoRequest(stream, readIntoRequest) { + stream._reader._readIntoRequests.push(readIntoRequest); + } + function ReadableStreamFulfillReadIntoRequest(stream, chunk, done) { + const reader = stream._reader; + const readIntoRequest = reader._readIntoRequests.shift(); + if (done) { + readIntoRequest._closeSteps(chunk); + } else { + readIntoRequest._chunkSteps(chunk); + } + } + function ReadableStreamGetNumReadIntoRequests(stream) { + return stream._reader._readIntoRequests.length; + } + function ReadableStreamHasBYOBReader(stream) { + const reader = stream._reader; + if (reader === void 0) { + return false; + } + if (!IsReadableStreamBYOBReader(reader)) { + return false; + } + return true; + } + class ReadableStreamBYOBReader { + constructor(stream) { + assertRequiredArgument(stream, 1, "ReadableStreamBYOBReader"); + assertReadableStream(stream, "First parameter"); + if (IsReadableStreamLocked(stream)) { + throw new TypeError("This stream has already been locked for exclusive reading by another reader"); + } + if (!IsReadableByteStreamController(stream._readableStreamController)) { + throw new TypeError("Cannot construct a ReadableStreamBYOBReader for a stream not constructed with a byte source"); + } + ReadableStreamReaderGenericInitialize(this, stream); + this._readIntoRequests = new SimpleQueue(); + } + /** + * Returns a promise that will be fulfilled when the stream becomes closed, or rejected if the stream ever errors or + * the reader's lock is released before the stream finishes closing. + */ + get closed() { + if (!IsReadableStreamBYOBReader(this)) { + return promiseRejectedWith(byobReaderBrandCheckException("closed")); + } + return this._closedPromise; + } + /** + * If the reader is active, behaves the same as {@link ReadableStream.cancel | stream.cancel(reason)}. + */ + cancel(reason = void 0) { + if (!IsReadableStreamBYOBReader(this)) { + return promiseRejectedWith(byobReaderBrandCheckException("cancel")); + } + if (this._ownerReadableStream === void 0) { + return promiseRejectedWith(readerLockException("cancel")); + } + return ReadableStreamReaderGenericCancel(this, reason); + } + read(view5, rawOptions = {}) { + if (!IsReadableStreamBYOBReader(this)) { + return promiseRejectedWith(byobReaderBrandCheckException("read")); + } + if (!ArrayBuffer.isView(view5)) { + return promiseRejectedWith(new TypeError("view must be an array buffer view")); + } + if (view5.byteLength === 0) { + return promiseRejectedWith(new TypeError("view must have non-zero byteLength")); + } + if (view5.buffer.byteLength === 0) { + return promiseRejectedWith(new TypeError(`view's buffer must have non-zero byteLength`)); + } + if (IsDetachedBuffer(view5.buffer)) { + return promiseRejectedWith(new TypeError("view's buffer has been detached")); + } + let options; + try { + options = convertByobReadOptions(rawOptions, "options"); + } catch (e4) { + return promiseRejectedWith(e4); + } + const min = options.min; + if (min === 0) { + return promiseRejectedWith(new TypeError("options.min must be greater than 0")); + } + if (!isDataView(view5)) { + if (min > view5.length) { + return promiseRejectedWith(new RangeError("options.min must be less than or equal to view's length")); + } + } else if (min > view5.byteLength) { + return promiseRejectedWith(new RangeError("options.min must be less than or equal to view's byteLength")); + } + if (this._ownerReadableStream === void 0) { + return promiseRejectedWith(readerLockException("read from")); + } + let resolvePromise; + let rejectPromise; + const promise = newPromise((resolve2, reject) => { + resolvePromise = resolve2; + rejectPromise = reject; + }); + const readIntoRequest = { + _chunkSteps: (chunk) => resolvePromise({ value: chunk, done: false }), + _closeSteps: (chunk) => resolvePromise({ value: chunk, done: true }), + _errorSteps: (e4) => rejectPromise(e4) + }; + ReadableStreamBYOBReaderRead(this, view5, min, readIntoRequest); + return promise; + } + /** + * Releases the reader's lock on the corresponding stream. After the lock is released, the reader is no longer active. + * If the associated stream is errored when the lock is released, the reader will appear errored in the same way + * from now on; otherwise, the reader will appear closed. + * + * A reader's lock cannot be released while it still has a pending read request, i.e., if a promise returned by + * the reader's {@link ReadableStreamBYOBReader.read | read()} method has not yet been settled. Attempting to + * do so will throw a `TypeError` and leave the reader locked to the stream. + */ + releaseLock() { + if (!IsReadableStreamBYOBReader(this)) { + throw byobReaderBrandCheckException("releaseLock"); + } + if (this._ownerReadableStream === void 0) { + return; + } + ReadableStreamBYOBReaderRelease(this); + } + } + Object.defineProperties(ReadableStreamBYOBReader.prototype, { + cancel: { enumerable: true }, + read: { enumerable: true }, + releaseLock: { enumerable: true }, + closed: { enumerable: true } + }); + setFunctionName(ReadableStreamBYOBReader.prototype.cancel, "cancel"); + setFunctionName(ReadableStreamBYOBReader.prototype.read, "read"); + setFunctionName(ReadableStreamBYOBReader.prototype.releaseLock, "releaseLock"); + if (typeof Symbol.toStringTag === "symbol") { + Object.defineProperty(ReadableStreamBYOBReader.prototype, Symbol.toStringTag, { + value: "ReadableStreamBYOBReader", + configurable: true + }); + } + function IsReadableStreamBYOBReader(x4) { + if (!typeIsObject(x4)) { + return false; + } + if (!Object.prototype.hasOwnProperty.call(x4, "_readIntoRequests")) { + return false; + } + return x4 instanceof ReadableStreamBYOBReader; + } + function ReadableStreamBYOBReaderRead(reader, view5, min, readIntoRequest) { + const stream = reader._ownerReadableStream; + stream._disturbed = true; + if (stream._state === "errored") { + readIntoRequest._errorSteps(stream._storedError); + } else { + ReadableByteStreamControllerPullInto(stream._readableStreamController, view5, min, readIntoRequest); + } + } + function ReadableStreamBYOBReaderRelease(reader) { + ReadableStreamReaderGenericRelease(reader); + const e4 = new TypeError("Reader was released"); + ReadableStreamBYOBReaderErrorReadIntoRequests(reader, e4); + } + function ReadableStreamBYOBReaderErrorReadIntoRequests(reader, e4) { + const readIntoRequests = reader._readIntoRequests; + reader._readIntoRequests = new SimpleQueue(); + readIntoRequests.forEach((readIntoRequest) => { + readIntoRequest._errorSteps(e4); + }); + } + function byobReaderBrandCheckException(name) { + return new TypeError(`ReadableStreamBYOBReader.prototype.${name} can only be used on a ReadableStreamBYOBReader`); + } + function ExtractHighWaterMark(strategy, defaultHWM) { + const { highWaterMark } = strategy; + if (highWaterMark === void 0) { + return defaultHWM; + } + if (NumberIsNaN(highWaterMark) || highWaterMark < 0) { + throw new RangeError("Invalid highWaterMark"); + } + return highWaterMark; + } + function ExtractSizeAlgorithm(strategy) { + const { size } = strategy; + if (!size) { + return () => 1; + } + return size; + } + function convertQueuingStrategy(init2, context) { + assertDictionary(init2, context); + const highWaterMark = init2 === null || init2 === void 0 ? void 0 : init2.highWaterMark; + const size = init2 === null || init2 === void 0 ? void 0 : init2.size; + return { + highWaterMark: highWaterMark === void 0 ? void 0 : convertUnrestrictedDouble(highWaterMark), + size: size === void 0 ? void 0 : convertQueuingStrategySize(size, `${context} has member 'size' that`) + }; + } + function convertQueuingStrategySize(fn, context) { + assertFunction(fn, context); + return (chunk) => convertUnrestrictedDouble(fn(chunk)); + } + function convertUnderlyingSink(original, context) { + assertDictionary(original, context); + const abort = original === null || original === void 0 ? void 0 : original.abort; + const close = original === null || original === void 0 ? void 0 : original.close; + const start = original === null || original === void 0 ? void 0 : original.start; + const type = original === null || original === void 0 ? void 0 : original.type; + const write = original === null || original === void 0 ? void 0 : original.write; + return { + abort: abort === void 0 ? void 0 : convertUnderlyingSinkAbortCallback(abort, original, `${context} has member 'abort' that`), + close: close === void 0 ? void 0 : convertUnderlyingSinkCloseCallback(close, original, `${context} has member 'close' that`), + start: start === void 0 ? void 0 : convertUnderlyingSinkStartCallback(start, original, `${context} has member 'start' that`), + write: write === void 0 ? void 0 : convertUnderlyingSinkWriteCallback(write, original, `${context} has member 'write' that`), + type + }; + } + function convertUnderlyingSinkAbortCallback(fn, original, context) { + assertFunction(fn, context); + return (reason) => promiseCall(fn, original, [reason]); + } + function convertUnderlyingSinkCloseCallback(fn, original, context) { + assertFunction(fn, context); + return () => promiseCall(fn, original, []); + } + function convertUnderlyingSinkStartCallback(fn, original, context) { + assertFunction(fn, context); + return (controller) => reflectCall(fn, original, [controller]); + } + function convertUnderlyingSinkWriteCallback(fn, original, context) { + assertFunction(fn, context); + return (chunk, controller) => promiseCall(fn, original, [chunk, controller]); + } + function assertWritableStream(x4, context) { + if (!IsWritableStream(x4)) { + throw new TypeError(`${context} is not a WritableStream.`); + } + } + function isAbortSignal2(value) { + if (typeof value !== "object" || value === null) { + return false; + } + try { + return typeof value.aborted === "boolean"; + } catch (_a3) { + return false; + } + } + const supportsAbortController = typeof AbortController === "function"; + function createAbortController() { + if (supportsAbortController) { + return new AbortController(); + } + return void 0; + } + class WritableStream { + constructor(rawUnderlyingSink = {}, rawStrategy = {}) { + if (rawUnderlyingSink === void 0) { + rawUnderlyingSink = null; + } else { + assertObject(rawUnderlyingSink, "First parameter"); + } + const strategy = convertQueuingStrategy(rawStrategy, "Second parameter"); + const underlyingSink = convertUnderlyingSink(rawUnderlyingSink, "First parameter"); + InitializeWritableStream(this); + const type = underlyingSink.type; + if (type !== void 0) { + throw new RangeError("Invalid type is specified"); + } + const sizeAlgorithm = ExtractSizeAlgorithm(strategy); + const highWaterMark = ExtractHighWaterMark(strategy, 1); + SetUpWritableStreamDefaultControllerFromUnderlyingSink(this, underlyingSink, highWaterMark, sizeAlgorithm); + } + /** + * Returns whether or not the writable stream is locked to a writer. + */ + get locked() { + if (!IsWritableStream(this)) { + throw streamBrandCheckException$2("locked"); + } + return IsWritableStreamLocked(this); + } + /** + * Aborts the stream, signaling that the producer can no longer successfully write to the stream and it is to be + * immediately moved to an errored state, with any queued-up writes discarded. This will also execute any abort + * mechanism of the underlying sink. + * + * The returned promise will fulfill if the stream shuts down successfully, or reject if the underlying sink signaled + * that there was an error doing so. Additionally, it will reject with a `TypeError` (without attempting to cancel + * the stream) if the stream is currently locked. + */ + abort(reason = void 0) { + if (!IsWritableStream(this)) { + return promiseRejectedWith(streamBrandCheckException$2("abort")); + } + if (IsWritableStreamLocked(this)) { + return promiseRejectedWith(new TypeError("Cannot abort a stream that already has a writer")); + } + return WritableStreamAbort(this, reason); + } + /** + * Closes the stream. The underlying sink will finish processing any previously-written chunks, before invoking its + * close behavior. During this time any further attempts to write will fail (without erroring the stream). + * + * The method returns a promise that will fulfill if all remaining chunks are successfully written and the stream + * successfully closes, or rejects if an error is encountered during this process. Additionally, it will reject with + * a `TypeError` (without attempting to cancel the stream) if the stream is currently locked. + */ + close() { + if (!IsWritableStream(this)) { + return promiseRejectedWith(streamBrandCheckException$2("close")); + } + if (IsWritableStreamLocked(this)) { + return promiseRejectedWith(new TypeError("Cannot close a stream that already has a writer")); + } + if (WritableStreamCloseQueuedOrInFlight(this)) { + return promiseRejectedWith(new TypeError("Cannot close an already-closing stream")); + } + return WritableStreamClose(this); + } + /** + * Creates a {@link WritableStreamDefaultWriter | writer} and locks the stream to the new writer. While the stream + * is locked, no other writer can be acquired until this one is released. + * + * This functionality is especially useful for creating abstractions that desire the ability to write to a stream + * without interruption or interleaving. By getting a writer for the stream, you can ensure nobody else can write at + * the same time, which would cause the resulting written data to be unpredictable and probably useless. + */ + getWriter() { + if (!IsWritableStream(this)) { + throw streamBrandCheckException$2("getWriter"); + } + return AcquireWritableStreamDefaultWriter(this); + } + } + Object.defineProperties(WritableStream.prototype, { + abort: { enumerable: true }, + close: { enumerable: true }, + getWriter: { enumerable: true }, + locked: { enumerable: true } + }); + setFunctionName(WritableStream.prototype.abort, "abort"); + setFunctionName(WritableStream.prototype.close, "close"); + setFunctionName(WritableStream.prototype.getWriter, "getWriter"); + if (typeof Symbol.toStringTag === "symbol") { + Object.defineProperty(WritableStream.prototype, Symbol.toStringTag, { + value: "WritableStream", + configurable: true + }); + } + function AcquireWritableStreamDefaultWriter(stream) { + return new WritableStreamDefaultWriter(stream); + } + function CreateWritableStream(startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, highWaterMark = 1, sizeAlgorithm = () => 1) { + const stream = Object.create(WritableStream.prototype); + InitializeWritableStream(stream); + const controller = Object.create(WritableStreamDefaultController.prototype); + SetUpWritableStreamDefaultController(stream, controller, startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, highWaterMark, sizeAlgorithm); + return stream; + } + function InitializeWritableStream(stream) { + stream._state = "writable"; + stream._storedError = void 0; + stream._writer = void 0; + stream._writableStreamController = void 0; + stream._writeRequests = new SimpleQueue(); + stream._inFlightWriteRequest = void 0; + stream._closeRequest = void 0; + stream._inFlightCloseRequest = void 0; + stream._pendingAbortRequest = void 0; + stream._backpressure = false; + } + function IsWritableStream(x4) { + if (!typeIsObject(x4)) { + return false; + } + if (!Object.prototype.hasOwnProperty.call(x4, "_writableStreamController")) { + return false; + } + return x4 instanceof WritableStream; + } + function IsWritableStreamLocked(stream) { + if (stream._writer === void 0) { + return false; + } + return true; + } + function WritableStreamAbort(stream, reason) { + var _a3; + if (stream._state === "closed" || stream._state === "errored") { + return promiseResolvedWith(void 0); + } + stream._writableStreamController._abortReason = reason; + (_a3 = stream._writableStreamController._abortController) === null || _a3 === void 0 ? void 0 : _a3.abort(reason); + const state2 = stream._state; + if (state2 === "closed" || state2 === "errored") { + return promiseResolvedWith(void 0); + } + if (stream._pendingAbortRequest !== void 0) { + return stream._pendingAbortRequest._promise; + } + let wasAlreadyErroring = false; + if (state2 === "erroring") { + wasAlreadyErroring = true; + reason = void 0; + } + const promise = newPromise((resolve2, reject) => { + stream._pendingAbortRequest = { + _promise: void 0, + _resolve: resolve2, + _reject: reject, + _reason: reason, + _wasAlreadyErroring: wasAlreadyErroring + }; + }); + stream._pendingAbortRequest._promise = promise; + if (!wasAlreadyErroring) { + WritableStreamStartErroring(stream, reason); + } + return promise; + } + function WritableStreamClose(stream) { + const state2 = stream._state; + if (state2 === "closed" || state2 === "errored") { + return promiseRejectedWith(new TypeError(`The stream (in ${state2} state) is not in the writable state and cannot be closed`)); + } + const promise = newPromise((resolve2, reject) => { + const closeRequest = { + _resolve: resolve2, + _reject: reject + }; + stream._closeRequest = closeRequest; + }); + const writer = stream._writer; + if (writer !== void 0 && stream._backpressure && state2 === "writable") { + defaultWriterReadyPromiseResolve(writer); + } + WritableStreamDefaultControllerClose(stream._writableStreamController); + return promise; + } + function WritableStreamAddWriteRequest(stream) { + const promise = newPromise((resolve2, reject) => { + const writeRequest = { + _resolve: resolve2, + _reject: reject + }; + stream._writeRequests.push(writeRequest); + }); + return promise; + } + function WritableStreamDealWithRejection(stream, error2) { + const state2 = stream._state; + if (state2 === "writable") { + WritableStreamStartErroring(stream, error2); + return; + } + WritableStreamFinishErroring(stream); + } + function WritableStreamStartErroring(stream, reason) { + const controller = stream._writableStreamController; + stream._state = "erroring"; + stream._storedError = reason; + const writer = stream._writer; + if (writer !== void 0) { + WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, reason); + } + if (!WritableStreamHasOperationMarkedInFlight(stream) && controller._started) { + WritableStreamFinishErroring(stream); + } + } + function WritableStreamFinishErroring(stream) { + stream._state = "errored"; + stream._writableStreamController[ErrorSteps](); + const storedError = stream._storedError; + stream._writeRequests.forEach((writeRequest) => { + writeRequest._reject(storedError); + }); + stream._writeRequests = new SimpleQueue(); + if (stream._pendingAbortRequest === void 0) { + WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream); + return; + } + const abortRequest = stream._pendingAbortRequest; + stream._pendingAbortRequest = void 0; + if (abortRequest._wasAlreadyErroring) { + abortRequest._reject(storedError); + WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream); + return; + } + const promise = stream._writableStreamController[AbortSteps](abortRequest._reason); + uponPromise(promise, () => { + abortRequest._resolve(); + WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream); + return null; + }, (reason) => { + abortRequest._reject(reason); + WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream); + return null; + }); + } + function WritableStreamFinishInFlightWrite(stream) { + stream._inFlightWriteRequest._resolve(void 0); + stream._inFlightWriteRequest = void 0; + } + function WritableStreamFinishInFlightWriteWithError(stream, error2) { + stream._inFlightWriteRequest._reject(error2); + stream._inFlightWriteRequest = void 0; + WritableStreamDealWithRejection(stream, error2); + } + function WritableStreamFinishInFlightClose(stream) { + stream._inFlightCloseRequest._resolve(void 0); + stream._inFlightCloseRequest = void 0; + const state2 = stream._state; + if (state2 === "erroring") { + stream._storedError = void 0; + if (stream._pendingAbortRequest !== void 0) { + stream._pendingAbortRequest._resolve(); + stream._pendingAbortRequest = void 0; + } + } + stream._state = "closed"; + const writer = stream._writer; + if (writer !== void 0) { + defaultWriterClosedPromiseResolve(writer); + } + } + function WritableStreamFinishInFlightCloseWithError(stream, error2) { + stream._inFlightCloseRequest._reject(error2); + stream._inFlightCloseRequest = void 0; + if (stream._pendingAbortRequest !== void 0) { + stream._pendingAbortRequest._reject(error2); + stream._pendingAbortRequest = void 0; + } + WritableStreamDealWithRejection(stream, error2); + } + function WritableStreamCloseQueuedOrInFlight(stream) { + if (stream._closeRequest === void 0 && stream._inFlightCloseRequest === void 0) { + return false; + } + return true; + } + function WritableStreamHasOperationMarkedInFlight(stream) { + if (stream._inFlightWriteRequest === void 0 && stream._inFlightCloseRequest === void 0) { + return false; + } + return true; + } + function WritableStreamMarkCloseRequestInFlight(stream) { + stream._inFlightCloseRequest = stream._closeRequest; + stream._closeRequest = void 0; + } + function WritableStreamMarkFirstWriteRequestInFlight(stream) { + stream._inFlightWriteRequest = stream._writeRequests.shift(); + } + function WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream) { + if (stream._closeRequest !== void 0) { + stream._closeRequest._reject(stream._storedError); + stream._closeRequest = void 0; + } + const writer = stream._writer; + if (writer !== void 0) { + defaultWriterClosedPromiseReject(writer, stream._storedError); + } + } + function WritableStreamUpdateBackpressure(stream, backpressure) { + const writer = stream._writer; + if (writer !== void 0 && backpressure !== stream._backpressure) { + if (backpressure) { + defaultWriterReadyPromiseReset(writer); + } else { + defaultWriterReadyPromiseResolve(writer); + } + } + stream._backpressure = backpressure; + } + class WritableStreamDefaultWriter { + constructor(stream) { + assertRequiredArgument(stream, 1, "WritableStreamDefaultWriter"); + assertWritableStream(stream, "First parameter"); + if (IsWritableStreamLocked(stream)) { + throw new TypeError("This stream has already been locked for exclusive writing by another writer"); + } + this._ownerWritableStream = stream; + stream._writer = this; + const state2 = stream._state; + if (state2 === "writable") { + if (!WritableStreamCloseQueuedOrInFlight(stream) && stream._backpressure) { + defaultWriterReadyPromiseInitialize(this); + } else { + defaultWriterReadyPromiseInitializeAsResolved(this); + } + defaultWriterClosedPromiseInitialize(this); + } else if (state2 === "erroring") { + defaultWriterReadyPromiseInitializeAsRejected(this, stream._storedError); + defaultWriterClosedPromiseInitialize(this); + } else if (state2 === "closed") { + defaultWriterReadyPromiseInitializeAsResolved(this); + defaultWriterClosedPromiseInitializeAsResolved(this); + } else { + const storedError = stream._storedError; + defaultWriterReadyPromiseInitializeAsRejected(this, storedError); + defaultWriterClosedPromiseInitializeAsRejected(this, storedError); + } + } + /** + * Returns a promise that will be fulfilled when the stream becomes closed, or rejected if the stream ever errors or + * the writer’s lock is released before the stream finishes closing. + */ + get closed() { + if (!IsWritableStreamDefaultWriter(this)) { + return promiseRejectedWith(defaultWriterBrandCheckException("closed")); + } + return this._closedPromise; + } + /** + * Returns the desired size to fill the stream’s internal queue. It can be negative, if the queue is over-full. + * A producer can use this information to determine the right amount of data to write. + * + * It will be `null` if the stream cannot be successfully written to (due to either being errored, or having an abort + * queued up). It will return zero if the stream is closed. And the getter will throw an exception if invoked when + * the writer’s lock is released. + */ + get desiredSize() { + if (!IsWritableStreamDefaultWriter(this)) { + throw defaultWriterBrandCheckException("desiredSize"); + } + if (this._ownerWritableStream === void 0) { + throw defaultWriterLockException("desiredSize"); + } + return WritableStreamDefaultWriterGetDesiredSize(this); + } + /** + * Returns a promise that will be fulfilled when the desired size to fill the stream’s internal queue transitions + * from non-positive to positive, signaling that it is no longer applying backpressure. Once the desired size dips + * back to zero or below, the getter will return a new promise that stays pending until the next transition. + * + * If the stream becomes errored or aborted, or the writer’s lock is released, the returned promise will become + * rejected. + */ + get ready() { + if (!IsWritableStreamDefaultWriter(this)) { + return promiseRejectedWith(defaultWriterBrandCheckException("ready")); + } + return this._readyPromise; + } + /** + * If the reader is active, behaves the same as {@link WritableStream.abort | stream.abort(reason)}. + */ + abort(reason = void 0) { + if (!IsWritableStreamDefaultWriter(this)) { + return promiseRejectedWith(defaultWriterBrandCheckException("abort")); + } + if (this._ownerWritableStream === void 0) { + return promiseRejectedWith(defaultWriterLockException("abort")); + } + return WritableStreamDefaultWriterAbort(this, reason); + } + /** + * If the reader is active, behaves the same as {@link WritableStream.close | stream.close()}. + */ + close() { + if (!IsWritableStreamDefaultWriter(this)) { + return promiseRejectedWith(defaultWriterBrandCheckException("close")); + } + const stream = this._ownerWritableStream; + if (stream === void 0) { + return promiseRejectedWith(defaultWriterLockException("close")); + } + if (WritableStreamCloseQueuedOrInFlight(stream)) { + return promiseRejectedWith(new TypeError("Cannot close an already-closing stream")); + } + return WritableStreamDefaultWriterClose(this); + } + /** + * Releases the writer’s lock on the corresponding stream. After the lock is released, the writer is no longer active. + * If the associated stream is errored when the lock is released, the writer will appear errored in the same way from + * now on; otherwise, the writer will appear closed. + * + * Note that the lock can still be released even if some ongoing writes have not yet finished (i.e. even if the + * promises returned from previous calls to {@link WritableStreamDefaultWriter.write | write()} have not yet settled). + * It’s not necessary to hold the lock on the writer for the duration of the write; the lock instead simply prevents + * other producers from writing in an interleaved manner. + */ + releaseLock() { + if (!IsWritableStreamDefaultWriter(this)) { + throw defaultWriterBrandCheckException("releaseLock"); + } + const stream = this._ownerWritableStream; + if (stream === void 0) { + return; + } + WritableStreamDefaultWriterRelease(this); + } + write(chunk = void 0) { + if (!IsWritableStreamDefaultWriter(this)) { + return promiseRejectedWith(defaultWriterBrandCheckException("write")); + } + if (this._ownerWritableStream === void 0) { + return promiseRejectedWith(defaultWriterLockException("write to")); + } + return WritableStreamDefaultWriterWrite(this, chunk); + } + } + Object.defineProperties(WritableStreamDefaultWriter.prototype, { + abort: { enumerable: true }, + close: { enumerable: true }, + releaseLock: { enumerable: true }, + write: { enumerable: true }, + closed: { enumerable: true }, + desiredSize: { enumerable: true }, + ready: { enumerable: true } + }); + setFunctionName(WritableStreamDefaultWriter.prototype.abort, "abort"); + setFunctionName(WritableStreamDefaultWriter.prototype.close, "close"); + setFunctionName(WritableStreamDefaultWriter.prototype.releaseLock, "releaseLock"); + setFunctionName(WritableStreamDefaultWriter.prototype.write, "write"); + if (typeof Symbol.toStringTag === "symbol") { + Object.defineProperty(WritableStreamDefaultWriter.prototype, Symbol.toStringTag, { + value: "WritableStreamDefaultWriter", + configurable: true + }); + } + function IsWritableStreamDefaultWriter(x4) { + if (!typeIsObject(x4)) { + return false; + } + if (!Object.prototype.hasOwnProperty.call(x4, "_ownerWritableStream")) { + return false; + } + return x4 instanceof WritableStreamDefaultWriter; + } + function WritableStreamDefaultWriterAbort(writer, reason) { + const stream = writer._ownerWritableStream; + return WritableStreamAbort(stream, reason); + } + function WritableStreamDefaultWriterClose(writer) { + const stream = writer._ownerWritableStream; + return WritableStreamClose(stream); + } + function WritableStreamDefaultWriterCloseWithErrorPropagation(writer) { + const stream = writer._ownerWritableStream; + const state2 = stream._state; + if (WritableStreamCloseQueuedOrInFlight(stream) || state2 === "closed") { + return promiseResolvedWith(void 0); + } + if (state2 === "errored") { + return promiseRejectedWith(stream._storedError); + } + return WritableStreamDefaultWriterClose(writer); + } + function WritableStreamDefaultWriterEnsureClosedPromiseRejected(writer, error2) { + if (writer._closedPromiseState === "pending") { + defaultWriterClosedPromiseReject(writer, error2); + } else { + defaultWriterClosedPromiseResetToRejected(writer, error2); + } + } + function WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, error2) { + if (writer._readyPromiseState === "pending") { + defaultWriterReadyPromiseReject(writer, error2); + } else { + defaultWriterReadyPromiseResetToRejected(writer, error2); + } + } + function WritableStreamDefaultWriterGetDesiredSize(writer) { + const stream = writer._ownerWritableStream; + const state2 = stream._state; + if (state2 === "errored" || state2 === "erroring") { + return null; + } + if (state2 === "closed") { + return 0; + } + return WritableStreamDefaultControllerGetDesiredSize(stream._writableStreamController); + } + function WritableStreamDefaultWriterRelease(writer) { + const stream = writer._ownerWritableStream; + const releasedError = new TypeError(`Writer was released and can no longer be used to monitor the stream's closedness`); + WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, releasedError); + WritableStreamDefaultWriterEnsureClosedPromiseRejected(writer, releasedError); + stream._writer = void 0; + writer._ownerWritableStream = void 0; + } + function WritableStreamDefaultWriterWrite(writer, chunk) { + const stream = writer._ownerWritableStream; + const controller = stream._writableStreamController; + const chunkSize = WritableStreamDefaultControllerGetChunkSize(controller, chunk); + if (stream !== writer._ownerWritableStream) { + return promiseRejectedWith(defaultWriterLockException("write to")); + } + const state2 = stream._state; + if (state2 === "errored") { + return promiseRejectedWith(stream._storedError); + } + if (WritableStreamCloseQueuedOrInFlight(stream) || state2 === "closed") { + return promiseRejectedWith(new TypeError("The stream is closing or closed and cannot be written to")); + } + if (state2 === "erroring") { + return promiseRejectedWith(stream._storedError); + } + const promise = WritableStreamAddWriteRequest(stream); + WritableStreamDefaultControllerWrite(controller, chunk, chunkSize); + return promise; + } + const closeSentinel = {}; + class WritableStreamDefaultController { + constructor() { + throw new TypeError("Illegal constructor"); + } + /** + * The reason which was passed to `WritableStream.abort(reason)` when the stream was aborted. + * + * @deprecated + * This property has been removed from the specification, see https://github.com/whatwg/streams/pull/1177. + * Use {@link WritableStreamDefaultController.signal}'s `reason` instead. + */ + get abortReason() { + if (!IsWritableStreamDefaultController(this)) { + throw defaultControllerBrandCheckException$2("abortReason"); + } + return this._abortReason; + } + /** + * An `AbortSignal` that can be used to abort the pending write or close operation when the stream is aborted. + */ + get signal() { + if (!IsWritableStreamDefaultController(this)) { + throw defaultControllerBrandCheckException$2("signal"); + } + if (this._abortController === void 0) { + throw new TypeError("WritableStreamDefaultController.prototype.signal is not supported"); + } + return this._abortController.signal; + } + /** + * Closes the controlled writable stream, making all future interactions with it fail with the given error `e`. + * + * This method is rarely used, since usually it suffices to return a rejected promise from one of the underlying + * sink's methods. However, it can be useful for suddenly shutting down a stream in response to an event outside the + * normal lifecycle of interactions with the underlying sink. + */ + error(e4 = void 0) { + if (!IsWritableStreamDefaultController(this)) { + throw defaultControllerBrandCheckException$2("error"); + } + const state2 = this._controlledWritableStream._state; + if (state2 !== "writable") { + return; + } + WritableStreamDefaultControllerError(this, e4); + } + /** @internal */ + [AbortSteps](reason) { + const result = this._abortAlgorithm(reason); + WritableStreamDefaultControllerClearAlgorithms(this); + return result; + } + /** @internal */ + [ErrorSteps]() { + ResetQueue(this); + } + } + Object.defineProperties(WritableStreamDefaultController.prototype, { + abortReason: { enumerable: true }, + signal: { enumerable: true }, + error: { enumerable: true } + }); + if (typeof Symbol.toStringTag === "symbol") { + Object.defineProperty(WritableStreamDefaultController.prototype, Symbol.toStringTag, { + value: "WritableStreamDefaultController", + configurable: true + }); + } + function IsWritableStreamDefaultController(x4) { + if (!typeIsObject(x4)) { + return false; + } + if (!Object.prototype.hasOwnProperty.call(x4, "_controlledWritableStream")) { + return false; + } + return x4 instanceof WritableStreamDefaultController; + } + function SetUpWritableStreamDefaultController(stream, controller, startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, highWaterMark, sizeAlgorithm) { + controller._controlledWritableStream = stream; + stream._writableStreamController = controller; + controller._queue = void 0; + controller._queueTotalSize = void 0; + ResetQueue(controller); + controller._abortReason = void 0; + controller._abortController = createAbortController(); + controller._started = false; + controller._strategySizeAlgorithm = sizeAlgorithm; + controller._strategyHWM = highWaterMark; + controller._writeAlgorithm = writeAlgorithm; + controller._closeAlgorithm = closeAlgorithm; + controller._abortAlgorithm = abortAlgorithm; + const backpressure = WritableStreamDefaultControllerGetBackpressure(controller); + WritableStreamUpdateBackpressure(stream, backpressure); + const startResult = startAlgorithm(); + const startPromise = promiseResolvedWith(startResult); + uponPromise(startPromise, () => { + controller._started = true; + WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller); + return null; + }, (r4) => { + controller._started = true; + WritableStreamDealWithRejection(stream, r4); + return null; + }); + } + function SetUpWritableStreamDefaultControllerFromUnderlyingSink(stream, underlyingSink, highWaterMark, sizeAlgorithm) { + const controller = Object.create(WritableStreamDefaultController.prototype); + let startAlgorithm; + let writeAlgorithm; + let closeAlgorithm; + let abortAlgorithm; + if (underlyingSink.start !== void 0) { + startAlgorithm = () => underlyingSink.start(controller); + } else { + startAlgorithm = () => void 0; + } + if (underlyingSink.write !== void 0) { + writeAlgorithm = (chunk) => underlyingSink.write(chunk, controller); + } else { + writeAlgorithm = () => promiseResolvedWith(void 0); + } + if (underlyingSink.close !== void 0) { + closeAlgorithm = () => underlyingSink.close(); + } else { + closeAlgorithm = () => promiseResolvedWith(void 0); + } + if (underlyingSink.abort !== void 0) { + abortAlgorithm = (reason) => underlyingSink.abort(reason); + } else { + abortAlgorithm = () => promiseResolvedWith(void 0); + } + SetUpWritableStreamDefaultController(stream, controller, startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, highWaterMark, sizeAlgorithm); + } + function WritableStreamDefaultControllerClearAlgorithms(controller) { + controller._writeAlgorithm = void 0; + controller._closeAlgorithm = void 0; + controller._abortAlgorithm = void 0; + controller._strategySizeAlgorithm = void 0; + } + function WritableStreamDefaultControllerClose(controller) { + EnqueueValueWithSize(controller, closeSentinel, 0); + WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller); + } + function WritableStreamDefaultControllerGetChunkSize(controller, chunk) { + try { + return controller._strategySizeAlgorithm(chunk); + } catch (chunkSizeE) { + WritableStreamDefaultControllerErrorIfNeeded(controller, chunkSizeE); + return 1; + } + } + function WritableStreamDefaultControllerGetDesiredSize(controller) { + return controller._strategyHWM - controller._queueTotalSize; + } + function WritableStreamDefaultControllerWrite(controller, chunk, chunkSize) { + try { + EnqueueValueWithSize(controller, chunk, chunkSize); + } catch (enqueueE) { + WritableStreamDefaultControllerErrorIfNeeded(controller, enqueueE); + return; + } + const stream = controller._controlledWritableStream; + if (!WritableStreamCloseQueuedOrInFlight(stream) && stream._state === "writable") { + const backpressure = WritableStreamDefaultControllerGetBackpressure(controller); + WritableStreamUpdateBackpressure(stream, backpressure); + } + WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller); + } + function WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller) { + const stream = controller._controlledWritableStream; + if (!controller._started) { + return; + } + if (stream._inFlightWriteRequest !== void 0) { + return; + } + const state2 = stream._state; + if (state2 === "erroring") { + WritableStreamFinishErroring(stream); + return; + } + if (controller._queue.length === 0) { + return; + } + const value = PeekQueueValue(controller); + if (value === closeSentinel) { + WritableStreamDefaultControllerProcessClose(controller); + } else { + WritableStreamDefaultControllerProcessWrite(controller, value); + } + } + function WritableStreamDefaultControllerErrorIfNeeded(controller, error2) { + if (controller._controlledWritableStream._state === "writable") { + WritableStreamDefaultControllerError(controller, error2); + } + } + function WritableStreamDefaultControllerProcessClose(controller) { + const stream = controller._controlledWritableStream; + WritableStreamMarkCloseRequestInFlight(stream); + DequeueValue(controller); + const sinkClosePromise = controller._closeAlgorithm(); + WritableStreamDefaultControllerClearAlgorithms(controller); + uponPromise(sinkClosePromise, () => { + WritableStreamFinishInFlightClose(stream); + return null; + }, (reason) => { + WritableStreamFinishInFlightCloseWithError(stream, reason); + return null; + }); + } + function WritableStreamDefaultControllerProcessWrite(controller, chunk) { + const stream = controller._controlledWritableStream; + WritableStreamMarkFirstWriteRequestInFlight(stream); + const sinkWritePromise = controller._writeAlgorithm(chunk); + uponPromise(sinkWritePromise, () => { + WritableStreamFinishInFlightWrite(stream); + const state2 = stream._state; + DequeueValue(controller); + if (!WritableStreamCloseQueuedOrInFlight(stream) && state2 === "writable") { + const backpressure = WritableStreamDefaultControllerGetBackpressure(controller); + WritableStreamUpdateBackpressure(stream, backpressure); + } + WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller); + return null; + }, (reason) => { + if (stream._state === "writable") { + WritableStreamDefaultControllerClearAlgorithms(controller); + } + WritableStreamFinishInFlightWriteWithError(stream, reason); + return null; + }); + } + function WritableStreamDefaultControllerGetBackpressure(controller) { + const desiredSize = WritableStreamDefaultControllerGetDesiredSize(controller); + return desiredSize <= 0; + } + function WritableStreamDefaultControllerError(controller, error2) { + const stream = controller._controlledWritableStream; + WritableStreamDefaultControllerClearAlgorithms(controller); + WritableStreamStartErroring(stream, error2); + } + function streamBrandCheckException$2(name) { + return new TypeError(`WritableStream.prototype.${name} can only be used on a WritableStream`); + } + function defaultControllerBrandCheckException$2(name) { + return new TypeError(`WritableStreamDefaultController.prototype.${name} can only be used on a WritableStreamDefaultController`); + } + function defaultWriterBrandCheckException(name) { + return new TypeError(`WritableStreamDefaultWriter.prototype.${name} can only be used on a WritableStreamDefaultWriter`); + } + function defaultWriterLockException(name) { + return new TypeError("Cannot " + name + " a stream using a released writer"); + } + function defaultWriterClosedPromiseInitialize(writer) { + writer._closedPromise = newPromise((resolve2, reject) => { + writer._closedPromise_resolve = resolve2; + writer._closedPromise_reject = reject; + writer._closedPromiseState = "pending"; + }); + } + function defaultWriterClosedPromiseInitializeAsRejected(writer, reason) { + defaultWriterClosedPromiseInitialize(writer); + defaultWriterClosedPromiseReject(writer, reason); + } + function defaultWriterClosedPromiseInitializeAsResolved(writer) { + defaultWriterClosedPromiseInitialize(writer); + defaultWriterClosedPromiseResolve(writer); + } + function defaultWriterClosedPromiseReject(writer, reason) { + if (writer._closedPromise_reject === void 0) { + return; + } + setPromiseIsHandledToTrue(writer._closedPromise); + writer._closedPromise_reject(reason); + writer._closedPromise_resolve = void 0; + writer._closedPromise_reject = void 0; + writer._closedPromiseState = "rejected"; + } + function defaultWriterClosedPromiseResetToRejected(writer, reason) { + defaultWriterClosedPromiseInitializeAsRejected(writer, reason); + } + function defaultWriterClosedPromiseResolve(writer) { + if (writer._closedPromise_resolve === void 0) { + return; + } + writer._closedPromise_resolve(void 0); + writer._closedPromise_resolve = void 0; + writer._closedPromise_reject = void 0; + writer._closedPromiseState = "resolved"; + } + function defaultWriterReadyPromiseInitialize(writer) { + writer._readyPromise = newPromise((resolve2, reject) => { + writer._readyPromise_resolve = resolve2; + writer._readyPromise_reject = reject; + }); + writer._readyPromiseState = "pending"; + } + function defaultWriterReadyPromiseInitializeAsRejected(writer, reason) { + defaultWriterReadyPromiseInitialize(writer); + defaultWriterReadyPromiseReject(writer, reason); + } + function defaultWriterReadyPromiseInitializeAsResolved(writer) { + defaultWriterReadyPromiseInitialize(writer); + defaultWriterReadyPromiseResolve(writer); + } + function defaultWriterReadyPromiseReject(writer, reason) { + if (writer._readyPromise_reject === void 0) { + return; + } + setPromiseIsHandledToTrue(writer._readyPromise); + writer._readyPromise_reject(reason); + writer._readyPromise_resolve = void 0; + writer._readyPromise_reject = void 0; + writer._readyPromiseState = "rejected"; + } + function defaultWriterReadyPromiseReset(writer) { + defaultWriterReadyPromiseInitialize(writer); + } + function defaultWriterReadyPromiseResetToRejected(writer, reason) { + defaultWriterReadyPromiseInitializeAsRejected(writer, reason); + } + function defaultWriterReadyPromiseResolve(writer) { + if (writer._readyPromise_resolve === void 0) { + return; + } + writer._readyPromise_resolve(void 0); + writer._readyPromise_resolve = void 0; + writer._readyPromise_reject = void 0; + writer._readyPromiseState = "fulfilled"; + } + function getGlobals() { + if (typeof globalThis !== "undefined") { + return globalThis; + } else if (typeof self !== "undefined") { + return self; + } else if (typeof global !== "undefined") { + return global; + } + return void 0; + } + const globals = getGlobals(); + function isDOMExceptionConstructor(ctor) { + if (!(typeof ctor === "function" || typeof ctor === "object")) { + return false; + } + if (ctor.name !== "DOMException") { + return false; + } + try { + new ctor(); + return true; + } catch (_a3) { + return false; + } + } + function getFromGlobal() { + const ctor = globals === null || globals === void 0 ? void 0 : globals.DOMException; + return isDOMExceptionConstructor(ctor) ? ctor : void 0; + } + function createPolyfill() { + const ctor = function DOMException3(message, name) { + this.message = message || ""; + this.name = name || "Error"; + if (Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); + } + }; + setFunctionName(ctor, "DOMException"); + ctor.prototype = Object.create(Error.prototype); + Object.defineProperty(ctor.prototype, "constructor", { value: ctor, writable: true, configurable: true }); + return ctor; + } + const DOMException2 = getFromGlobal() || createPolyfill(); + function ReadableStreamPipeTo(source, dest, preventClose, preventAbort, preventCancel, signal) { + const reader = AcquireReadableStreamDefaultReader(source); + const writer = AcquireWritableStreamDefaultWriter(dest); + source._disturbed = true; + let shuttingDown = false; + let currentWrite = promiseResolvedWith(void 0); + return newPromise((resolve2, reject) => { + let abortAlgorithm; + if (signal !== void 0) { + abortAlgorithm = () => { + const error2 = signal.reason !== void 0 ? signal.reason : new DOMException2("Aborted", "AbortError"); + const actions = []; + if (!preventAbort) { + actions.push(() => { + if (dest._state === "writable") { + return WritableStreamAbort(dest, error2); + } + return promiseResolvedWith(void 0); + }); + } + if (!preventCancel) { + actions.push(() => { + if (source._state === "readable") { + return ReadableStreamCancel(source, error2); + } + return promiseResolvedWith(void 0); + }); + } + shutdownWithAction(() => Promise.all(actions.map((action) => action())), true, error2); + }; + if (signal.aborted) { + abortAlgorithm(); + return; + } + signal.addEventListener("abort", abortAlgorithm); + } + function pipeLoop() { + return newPromise((resolveLoop, rejectLoop) => { + function next(done) { + if (done) { + resolveLoop(); + } else { + PerformPromiseThen(pipeStep(), next, rejectLoop); + } + } + next(false); + }); + } + function pipeStep() { + if (shuttingDown) { + return promiseResolvedWith(true); + } + return PerformPromiseThen(writer._readyPromise, () => { + return newPromise((resolveRead, rejectRead) => { + ReadableStreamDefaultReaderRead(reader, { + _chunkSteps: (chunk) => { + currentWrite = PerformPromiseThen(WritableStreamDefaultWriterWrite(writer, chunk), void 0, noop2); + resolveRead(false); + }, + _closeSteps: () => resolveRead(true), + _errorSteps: rejectRead + }); + }); + }); + } + isOrBecomesErrored(source, reader._closedPromise, (storedError) => { + if (!preventAbort) { + shutdownWithAction(() => WritableStreamAbort(dest, storedError), true, storedError); + } else { + shutdown(true, storedError); + } + return null; + }); + isOrBecomesErrored(dest, writer._closedPromise, (storedError) => { + if (!preventCancel) { + shutdownWithAction(() => ReadableStreamCancel(source, storedError), true, storedError); + } else { + shutdown(true, storedError); + } + return null; + }); + isOrBecomesClosed(source, reader._closedPromise, () => { + if (!preventClose) { + shutdownWithAction(() => WritableStreamDefaultWriterCloseWithErrorPropagation(writer)); + } else { + shutdown(); + } + return null; + }); + if (WritableStreamCloseQueuedOrInFlight(dest) || dest._state === "closed") { + const destClosed = new TypeError("the destination writable stream closed before all data could be piped to it"); + if (!preventCancel) { + shutdownWithAction(() => ReadableStreamCancel(source, destClosed), true, destClosed); + } else { + shutdown(true, destClosed); + } + } + setPromiseIsHandledToTrue(pipeLoop()); + function waitForWritesToFinish() { + const oldCurrentWrite = currentWrite; + return PerformPromiseThen(currentWrite, () => oldCurrentWrite !== currentWrite ? waitForWritesToFinish() : void 0); + } + function isOrBecomesErrored(stream, promise, action) { + if (stream._state === "errored") { + action(stream._storedError); + } else { + uponRejection(promise, action); + } + } + function isOrBecomesClosed(stream, promise, action) { + if (stream._state === "closed") { + action(); + } else { + uponFulfillment(promise, action); + } + } + function shutdownWithAction(action, originalIsError, originalError) { + if (shuttingDown) { + return; + } + shuttingDown = true; + if (dest._state === "writable" && !WritableStreamCloseQueuedOrInFlight(dest)) { + uponFulfillment(waitForWritesToFinish(), doTheRest); + } else { + doTheRest(); + } + function doTheRest() { + uponPromise(action(), () => finalize(originalIsError, originalError), (newError) => finalize(true, newError)); + return null; + } + } + function shutdown(isError, error2) { + if (shuttingDown) { + return; + } + shuttingDown = true; + if (dest._state === "writable" && !WritableStreamCloseQueuedOrInFlight(dest)) { + uponFulfillment(waitForWritesToFinish(), () => finalize(isError, error2)); + } else { + finalize(isError, error2); + } + } + function finalize(isError, error2) { + WritableStreamDefaultWriterRelease(writer); + ReadableStreamReaderGenericRelease(reader); + if (signal !== void 0) { + signal.removeEventListener("abort", abortAlgorithm); + } + if (isError) { + reject(error2); + } else { + resolve2(void 0); + } + return null; + } + }); + } + class ReadableStreamDefaultController { + constructor() { + throw new TypeError("Illegal constructor"); + } + /** + * Returns the desired size to fill the controlled stream's internal queue. It can be negative, if the queue is + * over-full. An underlying source ought to use this information to determine when and how to apply backpressure. + */ + get desiredSize() { + if (!IsReadableStreamDefaultController(this)) { + throw defaultControllerBrandCheckException$1("desiredSize"); + } + return ReadableStreamDefaultControllerGetDesiredSize(this); + } + /** + * Closes the controlled readable stream. Consumers will still be able to read any previously-enqueued chunks from + * the stream, but once those are read, the stream will become closed. + */ + close() { + if (!IsReadableStreamDefaultController(this)) { + throw defaultControllerBrandCheckException$1("close"); + } + if (!ReadableStreamDefaultControllerCanCloseOrEnqueue(this)) { + throw new TypeError("The stream is not in a state that permits close"); + } + ReadableStreamDefaultControllerClose(this); + } + enqueue(chunk = void 0) { + if (!IsReadableStreamDefaultController(this)) { + throw defaultControllerBrandCheckException$1("enqueue"); + } + if (!ReadableStreamDefaultControllerCanCloseOrEnqueue(this)) { + throw new TypeError("The stream is not in a state that permits enqueue"); + } + return ReadableStreamDefaultControllerEnqueue(this, chunk); + } + /** + * Errors the controlled readable stream, making all future interactions with it fail with the given error `e`. + */ + error(e4 = void 0) { + if (!IsReadableStreamDefaultController(this)) { + throw defaultControllerBrandCheckException$1("error"); + } + ReadableStreamDefaultControllerError(this, e4); + } + /** @internal */ + [CancelSteps](reason) { + ResetQueue(this); + const result = this._cancelAlgorithm(reason); + ReadableStreamDefaultControllerClearAlgorithms(this); + return result; + } + /** @internal */ + [PullSteps](readRequest) { + const stream = this._controlledReadableStream; + if (this._queue.length > 0) { + const chunk = DequeueValue(this); + if (this._closeRequested && this._queue.length === 0) { + ReadableStreamDefaultControllerClearAlgorithms(this); + ReadableStreamClose(stream); + } else { + ReadableStreamDefaultControllerCallPullIfNeeded(this); + } + readRequest._chunkSteps(chunk); + } else { + ReadableStreamAddReadRequest(stream, readRequest); + ReadableStreamDefaultControllerCallPullIfNeeded(this); + } + } + /** @internal */ + [ReleaseSteps]() { + } + } + Object.defineProperties(ReadableStreamDefaultController.prototype, { + close: { enumerable: true }, + enqueue: { enumerable: true }, + error: { enumerable: true }, + desiredSize: { enumerable: true } + }); + setFunctionName(ReadableStreamDefaultController.prototype.close, "close"); + setFunctionName(ReadableStreamDefaultController.prototype.enqueue, "enqueue"); + setFunctionName(ReadableStreamDefaultController.prototype.error, "error"); + if (typeof Symbol.toStringTag === "symbol") { + Object.defineProperty(ReadableStreamDefaultController.prototype, Symbol.toStringTag, { + value: "ReadableStreamDefaultController", + configurable: true + }); + } + function IsReadableStreamDefaultController(x4) { + if (!typeIsObject(x4)) { + return false; + } + if (!Object.prototype.hasOwnProperty.call(x4, "_controlledReadableStream")) { + return false; + } + return x4 instanceof ReadableStreamDefaultController; + } + function ReadableStreamDefaultControllerCallPullIfNeeded(controller) { + const shouldPull = ReadableStreamDefaultControllerShouldCallPull(controller); + if (!shouldPull) { + return; + } + if (controller._pulling) { + controller._pullAgain = true; + return; + } + controller._pulling = true; + const pullPromise = controller._pullAlgorithm(); + uponPromise(pullPromise, () => { + controller._pulling = false; + if (controller._pullAgain) { + controller._pullAgain = false; + ReadableStreamDefaultControllerCallPullIfNeeded(controller); + } + return null; + }, (e4) => { + ReadableStreamDefaultControllerError(controller, e4); + return null; + }); + } + function ReadableStreamDefaultControllerShouldCallPull(controller) { + const stream = controller._controlledReadableStream; + if (!ReadableStreamDefaultControllerCanCloseOrEnqueue(controller)) { + return false; + } + if (!controller._started) { + return false; + } + if (IsReadableStreamLocked(stream) && ReadableStreamGetNumReadRequests(stream) > 0) { + return true; + } + const desiredSize = ReadableStreamDefaultControllerGetDesiredSize(controller); + if (desiredSize > 0) { + return true; + } + return false; + } + function ReadableStreamDefaultControllerClearAlgorithms(controller) { + controller._pullAlgorithm = void 0; + controller._cancelAlgorithm = void 0; + controller._strategySizeAlgorithm = void 0; + } + function ReadableStreamDefaultControllerClose(controller) { + if (!ReadableStreamDefaultControllerCanCloseOrEnqueue(controller)) { + return; + } + const stream = controller._controlledReadableStream; + controller._closeRequested = true; + if (controller._queue.length === 0) { + ReadableStreamDefaultControllerClearAlgorithms(controller); + ReadableStreamClose(stream); + } + } + function ReadableStreamDefaultControllerEnqueue(controller, chunk) { + if (!ReadableStreamDefaultControllerCanCloseOrEnqueue(controller)) { + return; + } + const stream = controller._controlledReadableStream; + if (IsReadableStreamLocked(stream) && ReadableStreamGetNumReadRequests(stream) > 0) { + ReadableStreamFulfillReadRequest(stream, chunk, false); + } else { + let chunkSize; + try { + chunkSize = controller._strategySizeAlgorithm(chunk); + } catch (chunkSizeE) { + ReadableStreamDefaultControllerError(controller, chunkSizeE); + throw chunkSizeE; + } + try { + EnqueueValueWithSize(controller, chunk, chunkSize); + } catch (enqueueE) { + ReadableStreamDefaultControllerError(controller, enqueueE); + throw enqueueE; + } + } + ReadableStreamDefaultControllerCallPullIfNeeded(controller); + } + function ReadableStreamDefaultControllerError(controller, e4) { + const stream = controller._controlledReadableStream; + if (stream._state !== "readable") { + return; + } + ResetQueue(controller); + ReadableStreamDefaultControllerClearAlgorithms(controller); + ReadableStreamError(stream, e4); + } + function ReadableStreamDefaultControllerGetDesiredSize(controller) { + const state2 = controller._controlledReadableStream._state; + if (state2 === "errored") { + return null; + } + if (state2 === "closed") { + return 0; + } + return controller._strategyHWM - controller._queueTotalSize; + } + function ReadableStreamDefaultControllerHasBackpressure(controller) { + if (ReadableStreamDefaultControllerShouldCallPull(controller)) { + return false; + } + return true; + } + function ReadableStreamDefaultControllerCanCloseOrEnqueue(controller) { + const state2 = controller._controlledReadableStream._state; + if (!controller._closeRequested && state2 === "readable") { + return true; + } + return false; + } + function SetUpReadableStreamDefaultController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, sizeAlgorithm) { + controller._controlledReadableStream = stream; + controller._queue = void 0; + controller._queueTotalSize = void 0; + ResetQueue(controller); + controller._started = false; + controller._closeRequested = false; + controller._pullAgain = false; + controller._pulling = false; + controller._strategySizeAlgorithm = sizeAlgorithm; + controller._strategyHWM = highWaterMark; + controller._pullAlgorithm = pullAlgorithm; + controller._cancelAlgorithm = cancelAlgorithm; + stream._readableStreamController = controller; + const startResult = startAlgorithm(); + uponPromise(promiseResolvedWith(startResult), () => { + controller._started = true; + ReadableStreamDefaultControllerCallPullIfNeeded(controller); + return null; + }, (r4) => { + ReadableStreamDefaultControllerError(controller, r4); + return null; + }); + } + function SetUpReadableStreamDefaultControllerFromUnderlyingSource(stream, underlyingSource, highWaterMark, sizeAlgorithm) { + const controller = Object.create(ReadableStreamDefaultController.prototype); + let startAlgorithm; + let pullAlgorithm; + let cancelAlgorithm; + if (underlyingSource.start !== void 0) { + startAlgorithm = () => underlyingSource.start(controller); + } else { + startAlgorithm = () => void 0; + } + if (underlyingSource.pull !== void 0) { + pullAlgorithm = () => underlyingSource.pull(controller); + } else { + pullAlgorithm = () => promiseResolvedWith(void 0); + } + if (underlyingSource.cancel !== void 0) { + cancelAlgorithm = (reason) => underlyingSource.cancel(reason); + } else { + cancelAlgorithm = () => promiseResolvedWith(void 0); + } + SetUpReadableStreamDefaultController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, sizeAlgorithm); + } + function defaultControllerBrandCheckException$1(name) { + return new TypeError(`ReadableStreamDefaultController.prototype.${name} can only be used on a ReadableStreamDefaultController`); + } + function ReadableStreamTee(stream, cloneForBranch2) { + if (IsReadableByteStreamController(stream._readableStreamController)) { + return ReadableByteStreamTee(stream); + } + return ReadableStreamDefaultTee(stream); + } + function ReadableStreamDefaultTee(stream, cloneForBranch2) { + const reader = AcquireReadableStreamDefaultReader(stream); + let reading = false; + let readAgain = false; + let canceled1 = false; + let canceled2 = false; + let reason1; + let reason2; + let branch1; + let branch2; + let resolveCancelPromise; + const cancelPromise = newPromise((resolve2) => { + resolveCancelPromise = resolve2; + }); + function pullAlgorithm() { + if (reading) { + readAgain = true; + return promiseResolvedWith(void 0); + } + reading = true; + const readRequest = { + _chunkSteps: (chunk) => { + _queueMicrotask(() => { + readAgain = false; + const chunk1 = chunk; + const chunk2 = chunk; + if (!canceled1) { + ReadableStreamDefaultControllerEnqueue(branch1._readableStreamController, chunk1); + } + if (!canceled2) { + ReadableStreamDefaultControllerEnqueue(branch2._readableStreamController, chunk2); + } + reading = false; + if (readAgain) { + pullAlgorithm(); + } + }); + }, + _closeSteps: () => { + reading = false; + if (!canceled1) { + ReadableStreamDefaultControllerClose(branch1._readableStreamController); + } + if (!canceled2) { + ReadableStreamDefaultControllerClose(branch2._readableStreamController); + } + if (!canceled1 || !canceled2) { + resolveCancelPromise(void 0); + } + }, + _errorSteps: () => { + reading = false; + } + }; + ReadableStreamDefaultReaderRead(reader, readRequest); + return promiseResolvedWith(void 0); + } + function cancel1Algorithm(reason) { + canceled1 = true; + reason1 = reason; + if (canceled2) { + const compositeReason = CreateArrayFromList([reason1, reason2]); + const cancelResult = ReadableStreamCancel(stream, compositeReason); + resolveCancelPromise(cancelResult); + } + return cancelPromise; + } + function cancel2Algorithm(reason) { + canceled2 = true; + reason2 = reason; + if (canceled1) { + const compositeReason = CreateArrayFromList([reason1, reason2]); + const cancelResult = ReadableStreamCancel(stream, compositeReason); + resolveCancelPromise(cancelResult); + } + return cancelPromise; + } + function startAlgorithm() { + } + branch1 = CreateReadableStream(startAlgorithm, pullAlgorithm, cancel1Algorithm); + branch2 = CreateReadableStream(startAlgorithm, pullAlgorithm, cancel2Algorithm); + uponRejection(reader._closedPromise, (r4) => { + ReadableStreamDefaultControllerError(branch1._readableStreamController, r4); + ReadableStreamDefaultControllerError(branch2._readableStreamController, r4); + if (!canceled1 || !canceled2) { + resolveCancelPromise(void 0); + } + return null; + }); + return [branch1, branch2]; + } + function ReadableByteStreamTee(stream) { + let reader = AcquireReadableStreamDefaultReader(stream); + let reading = false; + let readAgainForBranch1 = false; + let readAgainForBranch2 = false; + let canceled1 = false; + let canceled2 = false; + let reason1; + let reason2; + let branch1; + let branch2; + let resolveCancelPromise; + const cancelPromise = newPromise((resolve2) => { + resolveCancelPromise = resolve2; + }); + function forwardReaderError(thisReader) { + uponRejection(thisReader._closedPromise, (r4) => { + if (thisReader !== reader) { + return null; + } + ReadableByteStreamControllerError(branch1._readableStreamController, r4); + ReadableByteStreamControllerError(branch2._readableStreamController, r4); + if (!canceled1 || !canceled2) { + resolveCancelPromise(void 0); + } + return null; + }); + } + function pullWithDefaultReader() { + if (IsReadableStreamBYOBReader(reader)) { + ReadableStreamReaderGenericRelease(reader); + reader = AcquireReadableStreamDefaultReader(stream); + forwardReaderError(reader); + } + const readRequest = { + _chunkSteps: (chunk) => { + _queueMicrotask(() => { + readAgainForBranch1 = false; + readAgainForBranch2 = false; + const chunk1 = chunk; + let chunk2 = chunk; + if (!canceled1 && !canceled2) { + try { + chunk2 = CloneAsUint8Array(chunk); + } catch (cloneE) { + ReadableByteStreamControllerError(branch1._readableStreamController, cloneE); + ReadableByteStreamControllerError(branch2._readableStreamController, cloneE); + resolveCancelPromise(ReadableStreamCancel(stream, cloneE)); + return; + } + } + if (!canceled1) { + ReadableByteStreamControllerEnqueue(branch1._readableStreamController, chunk1); + } + if (!canceled2) { + ReadableByteStreamControllerEnqueue(branch2._readableStreamController, chunk2); + } + reading = false; + if (readAgainForBranch1) { + pull1Algorithm(); + } else if (readAgainForBranch2) { + pull2Algorithm(); + } + }); + }, + _closeSteps: () => { + reading = false; + if (!canceled1) { + ReadableByteStreamControllerClose(branch1._readableStreamController); + } + if (!canceled2) { + ReadableByteStreamControllerClose(branch2._readableStreamController); + } + if (branch1._readableStreamController._pendingPullIntos.length > 0) { + ReadableByteStreamControllerRespond(branch1._readableStreamController, 0); + } + if (branch2._readableStreamController._pendingPullIntos.length > 0) { + ReadableByteStreamControllerRespond(branch2._readableStreamController, 0); + } + if (!canceled1 || !canceled2) { + resolveCancelPromise(void 0); + } + }, + _errorSteps: () => { + reading = false; + } + }; + ReadableStreamDefaultReaderRead(reader, readRequest); + } + function pullWithBYOBReader(view5, forBranch2) { + if (IsReadableStreamDefaultReader(reader)) { + ReadableStreamReaderGenericRelease(reader); + reader = AcquireReadableStreamBYOBReader(stream); + forwardReaderError(reader); + } + const byobBranch = forBranch2 ? branch2 : branch1; + const otherBranch = forBranch2 ? branch1 : branch2; + const readIntoRequest = { + _chunkSteps: (chunk) => { + _queueMicrotask(() => { + readAgainForBranch1 = false; + readAgainForBranch2 = false; + const byobCanceled = forBranch2 ? canceled2 : canceled1; + const otherCanceled = forBranch2 ? canceled1 : canceled2; + if (!otherCanceled) { + let clonedChunk; + try { + clonedChunk = CloneAsUint8Array(chunk); + } catch (cloneE) { + ReadableByteStreamControllerError(byobBranch._readableStreamController, cloneE); + ReadableByteStreamControllerError(otherBranch._readableStreamController, cloneE); + resolveCancelPromise(ReadableStreamCancel(stream, cloneE)); + return; + } + if (!byobCanceled) { + ReadableByteStreamControllerRespondWithNewView(byobBranch._readableStreamController, chunk); + } + ReadableByteStreamControllerEnqueue(otherBranch._readableStreamController, clonedChunk); + } else if (!byobCanceled) { + ReadableByteStreamControllerRespondWithNewView(byobBranch._readableStreamController, chunk); + } + reading = false; + if (readAgainForBranch1) { + pull1Algorithm(); + } else if (readAgainForBranch2) { + pull2Algorithm(); + } + }); + }, + _closeSteps: (chunk) => { + reading = false; + const byobCanceled = forBranch2 ? canceled2 : canceled1; + const otherCanceled = forBranch2 ? canceled1 : canceled2; + if (!byobCanceled) { + ReadableByteStreamControllerClose(byobBranch._readableStreamController); + } + if (!otherCanceled) { + ReadableByteStreamControllerClose(otherBranch._readableStreamController); + } + if (chunk !== void 0) { + if (!byobCanceled) { + ReadableByteStreamControllerRespondWithNewView(byobBranch._readableStreamController, chunk); + } + if (!otherCanceled && otherBranch._readableStreamController._pendingPullIntos.length > 0) { + ReadableByteStreamControllerRespond(otherBranch._readableStreamController, 0); + } + } + if (!byobCanceled || !otherCanceled) { + resolveCancelPromise(void 0); + } + }, + _errorSteps: () => { + reading = false; + } + }; + ReadableStreamBYOBReaderRead(reader, view5, 1, readIntoRequest); + } + function pull1Algorithm() { + if (reading) { + readAgainForBranch1 = true; + return promiseResolvedWith(void 0); + } + reading = true; + const byobRequest = ReadableByteStreamControllerGetBYOBRequest(branch1._readableStreamController); + if (byobRequest === null) { + pullWithDefaultReader(); + } else { + pullWithBYOBReader(byobRequest._view, false); + } + return promiseResolvedWith(void 0); + } + function pull2Algorithm() { + if (reading) { + readAgainForBranch2 = true; + return promiseResolvedWith(void 0); + } + reading = true; + const byobRequest = ReadableByteStreamControllerGetBYOBRequest(branch2._readableStreamController); + if (byobRequest === null) { + pullWithDefaultReader(); + } else { + pullWithBYOBReader(byobRequest._view, true); + } + return promiseResolvedWith(void 0); + } + function cancel1Algorithm(reason) { + canceled1 = true; + reason1 = reason; + if (canceled2) { + const compositeReason = CreateArrayFromList([reason1, reason2]); + const cancelResult = ReadableStreamCancel(stream, compositeReason); + resolveCancelPromise(cancelResult); + } + return cancelPromise; + } + function cancel2Algorithm(reason) { + canceled2 = true; + reason2 = reason; + if (canceled1) { + const compositeReason = CreateArrayFromList([reason1, reason2]); + const cancelResult = ReadableStreamCancel(stream, compositeReason); + resolveCancelPromise(cancelResult); + } + return cancelPromise; + } + function startAlgorithm() { + return; + } + branch1 = CreateReadableByteStream(startAlgorithm, pull1Algorithm, cancel1Algorithm); + branch2 = CreateReadableByteStream(startAlgorithm, pull2Algorithm, cancel2Algorithm); + forwardReaderError(reader); + return [branch1, branch2]; + } + function isReadableStreamLike(stream) { + return typeIsObject(stream) && typeof stream.getReader !== "undefined"; + } + function ReadableStreamFrom(source) { + if (isReadableStreamLike(source)) { + return ReadableStreamFromDefaultReader(source.getReader()); + } + return ReadableStreamFromIterable(source); + } + function ReadableStreamFromIterable(asyncIterable) { + let stream; + const iteratorRecord = GetIterator(asyncIterable, "async"); + const startAlgorithm = noop2; + function pullAlgorithm() { + let nextResult; + try { + nextResult = IteratorNext(iteratorRecord); + } catch (e4) { + return promiseRejectedWith(e4); + } + const nextPromise = promiseResolvedWith(nextResult); + return transformPromiseWith(nextPromise, (iterResult) => { + if (!typeIsObject(iterResult)) { + throw new TypeError("The promise returned by the iterator.next() method must fulfill with an object"); + } + const done = IteratorComplete(iterResult); + if (done) { + ReadableStreamDefaultControllerClose(stream._readableStreamController); + } else { + const value = IteratorValue(iterResult); + ReadableStreamDefaultControllerEnqueue(stream._readableStreamController, value); + } + }); + } + function cancelAlgorithm(reason) { + const iterator = iteratorRecord.iterator; + let returnMethod; + try { + returnMethod = GetMethod(iterator, "return"); + } catch (e4) { + return promiseRejectedWith(e4); + } + if (returnMethod === void 0) { + return promiseResolvedWith(void 0); + } + let returnResult; + try { + returnResult = reflectCall(returnMethod, iterator, [reason]); + } catch (e4) { + return promiseRejectedWith(e4); + } + const returnPromise = promiseResolvedWith(returnResult); + return transformPromiseWith(returnPromise, (iterResult) => { + if (!typeIsObject(iterResult)) { + throw new TypeError("The promise returned by the iterator.return() method must fulfill with an object"); + } + return void 0; + }); + } + stream = CreateReadableStream(startAlgorithm, pullAlgorithm, cancelAlgorithm, 0); + return stream; + } + function ReadableStreamFromDefaultReader(reader) { + let stream; + const startAlgorithm = noop2; + function pullAlgorithm() { + let readPromise; + try { + readPromise = reader.read(); + } catch (e4) { + return promiseRejectedWith(e4); + } + return transformPromiseWith(readPromise, (readResult) => { + if (!typeIsObject(readResult)) { + throw new TypeError("The promise returned by the reader.read() method must fulfill with an object"); + } + if (readResult.done) { + ReadableStreamDefaultControllerClose(stream._readableStreamController); + } else { + const value = readResult.value; + ReadableStreamDefaultControllerEnqueue(stream._readableStreamController, value); + } + }); + } + function cancelAlgorithm(reason) { + try { + return promiseResolvedWith(reader.cancel(reason)); + } catch (e4) { + return promiseRejectedWith(e4); + } + } + stream = CreateReadableStream(startAlgorithm, pullAlgorithm, cancelAlgorithm, 0); + return stream; + } + function convertUnderlyingDefaultOrByteSource(source, context) { + assertDictionary(source, context); + const original = source; + const autoAllocateChunkSize = original === null || original === void 0 ? void 0 : original.autoAllocateChunkSize; + const cancel = original === null || original === void 0 ? void 0 : original.cancel; + const pull2 = original === null || original === void 0 ? void 0 : original.pull; + const start = original === null || original === void 0 ? void 0 : original.start; + const type = original === null || original === void 0 ? void 0 : original.type; + return { + autoAllocateChunkSize: autoAllocateChunkSize === void 0 ? void 0 : convertUnsignedLongLongWithEnforceRange(autoAllocateChunkSize, `${context} has member 'autoAllocateChunkSize' that`), + cancel: cancel === void 0 ? void 0 : convertUnderlyingSourceCancelCallback(cancel, original, `${context} has member 'cancel' that`), + pull: pull2 === void 0 ? void 0 : convertUnderlyingSourcePullCallback(pull2, original, `${context} has member 'pull' that`), + start: start === void 0 ? void 0 : convertUnderlyingSourceStartCallback(start, original, `${context} has member 'start' that`), + type: type === void 0 ? void 0 : convertReadableStreamType(type, `${context} has member 'type' that`) + }; + } + function convertUnderlyingSourceCancelCallback(fn, original, context) { + assertFunction(fn, context); + return (reason) => promiseCall(fn, original, [reason]); + } + function convertUnderlyingSourcePullCallback(fn, original, context) { + assertFunction(fn, context); + return (controller) => promiseCall(fn, original, [controller]); + } + function convertUnderlyingSourceStartCallback(fn, original, context) { + assertFunction(fn, context); + return (controller) => reflectCall(fn, original, [controller]); + } + function convertReadableStreamType(type, context) { + type = `${type}`; + if (type !== "bytes") { + throw new TypeError(`${context} '${type}' is not a valid enumeration value for ReadableStreamType`); + } + return type; + } + function convertIteratorOptions(options, context) { + assertDictionary(options, context); + const preventCancel = options === null || options === void 0 ? void 0 : options.preventCancel; + return { preventCancel: Boolean(preventCancel) }; + } + function convertPipeOptions(options, context) { + assertDictionary(options, context); + const preventAbort = options === null || options === void 0 ? void 0 : options.preventAbort; + const preventCancel = options === null || options === void 0 ? void 0 : options.preventCancel; + const preventClose = options === null || options === void 0 ? void 0 : options.preventClose; + const signal = options === null || options === void 0 ? void 0 : options.signal; + if (signal !== void 0) { + assertAbortSignal(signal, `${context} has member 'signal' that`); + } + return { + preventAbort: Boolean(preventAbort), + preventCancel: Boolean(preventCancel), + preventClose: Boolean(preventClose), + signal + }; + } + function assertAbortSignal(signal, context) { + if (!isAbortSignal2(signal)) { + throw new TypeError(`${context} is not an AbortSignal.`); + } + } + function convertReadableWritablePair(pair, context) { + assertDictionary(pair, context); + const readable = pair === null || pair === void 0 ? void 0 : pair.readable; + assertRequiredField(readable, "readable", "ReadableWritablePair"); + assertReadableStream(readable, `${context} has member 'readable' that`); + const writable = pair === null || pair === void 0 ? void 0 : pair.writable; + assertRequiredField(writable, "writable", "ReadableWritablePair"); + assertWritableStream(writable, `${context} has member 'writable' that`); + return { readable, writable }; + } + class ReadableStream2 { + constructor(rawUnderlyingSource = {}, rawStrategy = {}) { + if (rawUnderlyingSource === void 0) { + rawUnderlyingSource = null; + } else { + assertObject(rawUnderlyingSource, "First parameter"); + } + const strategy = convertQueuingStrategy(rawStrategy, "Second parameter"); + const underlyingSource = convertUnderlyingDefaultOrByteSource(rawUnderlyingSource, "First parameter"); + InitializeReadableStream(this); + if (underlyingSource.type === "bytes") { + if (strategy.size !== void 0) { + throw new RangeError("The strategy for a byte stream cannot have a size function"); + } + const highWaterMark = ExtractHighWaterMark(strategy, 0); + SetUpReadableByteStreamControllerFromUnderlyingSource(this, underlyingSource, highWaterMark); + } else { + const sizeAlgorithm = ExtractSizeAlgorithm(strategy); + const highWaterMark = ExtractHighWaterMark(strategy, 1); + SetUpReadableStreamDefaultControllerFromUnderlyingSource(this, underlyingSource, highWaterMark, sizeAlgorithm); + } + } + /** + * Whether or not the readable stream is locked to a {@link ReadableStreamDefaultReader | reader}. + */ + get locked() { + if (!IsReadableStream(this)) { + throw streamBrandCheckException$1("locked"); + } + return IsReadableStreamLocked(this); + } + /** + * Cancels the stream, signaling a loss of interest in the stream by a consumer. + * + * The supplied `reason` argument will be given to the underlying source's {@link UnderlyingSource.cancel | cancel()} + * method, which might or might not use it. + */ + cancel(reason = void 0) { + if (!IsReadableStream(this)) { + return promiseRejectedWith(streamBrandCheckException$1("cancel")); + } + if (IsReadableStreamLocked(this)) { + return promiseRejectedWith(new TypeError("Cannot cancel a stream that already has a reader")); + } + return ReadableStreamCancel(this, reason); + } + getReader(rawOptions = void 0) { + if (!IsReadableStream(this)) { + throw streamBrandCheckException$1("getReader"); + } + const options = convertReaderOptions(rawOptions, "First parameter"); + if (options.mode === void 0) { + return AcquireReadableStreamDefaultReader(this); + } + return AcquireReadableStreamBYOBReader(this); + } + pipeThrough(rawTransform, rawOptions = {}) { + if (!IsReadableStream(this)) { + throw streamBrandCheckException$1("pipeThrough"); + } + assertRequiredArgument(rawTransform, 1, "pipeThrough"); + const transform = convertReadableWritablePair(rawTransform, "First parameter"); + const options = convertPipeOptions(rawOptions, "Second parameter"); + if (IsReadableStreamLocked(this)) { + throw new TypeError("ReadableStream.prototype.pipeThrough cannot be used on a locked ReadableStream"); + } + if (IsWritableStreamLocked(transform.writable)) { + throw new TypeError("ReadableStream.prototype.pipeThrough cannot be used on a locked WritableStream"); + } + const promise = ReadableStreamPipeTo(this, transform.writable, options.preventClose, options.preventAbort, options.preventCancel, options.signal); + setPromiseIsHandledToTrue(promise); + return transform.readable; + } + pipeTo(destination, rawOptions = {}) { + if (!IsReadableStream(this)) { + return promiseRejectedWith(streamBrandCheckException$1("pipeTo")); + } + if (destination === void 0) { + return promiseRejectedWith(`Parameter 1 is required in 'pipeTo'.`); + } + if (!IsWritableStream(destination)) { + return promiseRejectedWith(new TypeError(`ReadableStream.prototype.pipeTo's first argument must be a WritableStream`)); + } + let options; + try { + options = convertPipeOptions(rawOptions, "Second parameter"); + } catch (e4) { + return promiseRejectedWith(e4); + } + if (IsReadableStreamLocked(this)) { + return promiseRejectedWith(new TypeError("ReadableStream.prototype.pipeTo cannot be used on a locked ReadableStream")); + } + if (IsWritableStreamLocked(destination)) { + return promiseRejectedWith(new TypeError("ReadableStream.prototype.pipeTo cannot be used on a locked WritableStream")); + } + return ReadableStreamPipeTo(this, destination, options.preventClose, options.preventAbort, options.preventCancel, options.signal); + } + /** + * Tees this readable stream, returning a two-element array containing the two resulting branches as + * new {@link ReadableStream} instances. + * + * Teeing a stream will lock it, preventing any other consumer from acquiring a reader. + * To cancel the stream, cancel both of the resulting branches; a composite cancellation reason will then be + * propagated to the stream's underlying source. + * + * Note that the chunks seen in each branch will be the same object. If the chunks are not immutable, + * this could allow interference between the two branches. + */ + tee() { + if (!IsReadableStream(this)) { + throw streamBrandCheckException$1("tee"); + } + const branches = ReadableStreamTee(this); + return CreateArrayFromList(branches); + } + values(rawOptions = void 0) { + if (!IsReadableStream(this)) { + throw streamBrandCheckException$1("values"); + } + const options = convertIteratorOptions(rawOptions, "First parameter"); + return AcquireReadableStreamAsyncIterator(this, options.preventCancel); + } + [SymbolAsyncIterator](options) { + return this.values(options); + } + /** + * Creates a new ReadableStream wrapping the provided iterable or async iterable. + * + * This can be used to adapt various kinds of objects into a readable stream, + * such as an array, an async generator, or a Node.js readable stream. + */ + static from(asyncIterable) { + return ReadableStreamFrom(asyncIterable); + } + } + Object.defineProperties(ReadableStream2, { + from: { enumerable: true } + }); + Object.defineProperties(ReadableStream2.prototype, { + cancel: { enumerable: true }, + getReader: { enumerable: true }, + pipeThrough: { enumerable: true }, + pipeTo: { enumerable: true }, + tee: { enumerable: true }, + values: { enumerable: true }, + locked: { enumerable: true } + }); + setFunctionName(ReadableStream2.from, "from"); + setFunctionName(ReadableStream2.prototype.cancel, "cancel"); + setFunctionName(ReadableStream2.prototype.getReader, "getReader"); + setFunctionName(ReadableStream2.prototype.pipeThrough, "pipeThrough"); + setFunctionName(ReadableStream2.prototype.pipeTo, "pipeTo"); + setFunctionName(ReadableStream2.prototype.tee, "tee"); + setFunctionName(ReadableStream2.prototype.values, "values"); + if (typeof Symbol.toStringTag === "symbol") { + Object.defineProperty(ReadableStream2.prototype, Symbol.toStringTag, { + value: "ReadableStream", + configurable: true + }); + } + Object.defineProperty(ReadableStream2.prototype, SymbolAsyncIterator, { + value: ReadableStream2.prototype.values, + writable: true, + configurable: true + }); + function CreateReadableStream(startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark = 1, sizeAlgorithm = () => 1) { + const stream = Object.create(ReadableStream2.prototype); + InitializeReadableStream(stream); + const controller = Object.create(ReadableStreamDefaultController.prototype); + SetUpReadableStreamDefaultController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, sizeAlgorithm); + return stream; + } + function CreateReadableByteStream(startAlgorithm, pullAlgorithm, cancelAlgorithm) { + const stream = Object.create(ReadableStream2.prototype); + InitializeReadableStream(stream); + const controller = Object.create(ReadableByteStreamController.prototype); + SetUpReadableByteStreamController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, 0, void 0); + return stream; + } + function InitializeReadableStream(stream) { + stream._state = "readable"; + stream._reader = void 0; + stream._storedError = void 0; + stream._disturbed = false; + } + function IsReadableStream(x4) { + if (!typeIsObject(x4)) { + return false; + } + if (!Object.prototype.hasOwnProperty.call(x4, "_readableStreamController")) { + return false; + } + return x4 instanceof ReadableStream2; + } + function IsReadableStreamLocked(stream) { + if (stream._reader === void 0) { + return false; + } + return true; + } + function ReadableStreamCancel(stream, reason) { + stream._disturbed = true; + if (stream._state === "closed") { + return promiseResolvedWith(void 0); + } + if (stream._state === "errored") { + return promiseRejectedWith(stream._storedError); + } + ReadableStreamClose(stream); + const reader = stream._reader; + if (reader !== void 0 && IsReadableStreamBYOBReader(reader)) { + const readIntoRequests = reader._readIntoRequests; + reader._readIntoRequests = new SimpleQueue(); + readIntoRequests.forEach((readIntoRequest) => { + readIntoRequest._closeSteps(void 0); + }); + } + const sourceCancelPromise = stream._readableStreamController[CancelSteps](reason); + return transformPromiseWith(sourceCancelPromise, noop2); + } + function ReadableStreamClose(stream) { + stream._state = "closed"; + const reader = stream._reader; + if (reader === void 0) { + return; + } + defaultReaderClosedPromiseResolve(reader); + if (IsReadableStreamDefaultReader(reader)) { + const readRequests = reader._readRequests; + reader._readRequests = new SimpleQueue(); + readRequests.forEach((readRequest) => { + readRequest._closeSteps(); + }); + } + } + function ReadableStreamError(stream, e4) { + stream._state = "errored"; + stream._storedError = e4; + const reader = stream._reader; + if (reader === void 0) { + return; + } + defaultReaderClosedPromiseReject(reader, e4); + if (IsReadableStreamDefaultReader(reader)) { + ReadableStreamDefaultReaderErrorReadRequests(reader, e4); + } else { + ReadableStreamBYOBReaderErrorReadIntoRequests(reader, e4); + } + } + function streamBrandCheckException$1(name) { + return new TypeError(`ReadableStream.prototype.${name} can only be used on a ReadableStream`); + } + function convertQueuingStrategyInit(init2, context) { + assertDictionary(init2, context); + const highWaterMark = init2 === null || init2 === void 0 ? void 0 : init2.highWaterMark; + assertRequiredField(highWaterMark, "highWaterMark", "QueuingStrategyInit"); + return { + highWaterMark: convertUnrestrictedDouble(highWaterMark) + }; + } + const byteLengthSizeFunction = (chunk) => { + return chunk.byteLength; + }; + setFunctionName(byteLengthSizeFunction, "size"); + class ByteLengthQueuingStrategy { + constructor(options) { + assertRequiredArgument(options, 1, "ByteLengthQueuingStrategy"); + options = convertQueuingStrategyInit(options, "First parameter"); + this._byteLengthQueuingStrategyHighWaterMark = options.highWaterMark; + } + /** + * Returns the high water mark provided to the constructor. + */ + get highWaterMark() { + if (!IsByteLengthQueuingStrategy(this)) { + throw byteLengthBrandCheckException("highWaterMark"); + } + return this._byteLengthQueuingStrategyHighWaterMark; + } + /** + * Measures the size of `chunk` by returning the value of its `byteLength` property. + */ + get size() { + if (!IsByteLengthQueuingStrategy(this)) { + throw byteLengthBrandCheckException("size"); + } + return byteLengthSizeFunction; + } + } + Object.defineProperties(ByteLengthQueuingStrategy.prototype, { + highWaterMark: { enumerable: true }, + size: { enumerable: true } + }); + if (typeof Symbol.toStringTag === "symbol") { + Object.defineProperty(ByteLengthQueuingStrategy.prototype, Symbol.toStringTag, { + value: "ByteLengthQueuingStrategy", + configurable: true + }); + } + function byteLengthBrandCheckException(name) { + return new TypeError(`ByteLengthQueuingStrategy.prototype.${name} can only be used on a ByteLengthQueuingStrategy`); + } + function IsByteLengthQueuingStrategy(x4) { + if (!typeIsObject(x4)) { + return false; + } + if (!Object.prototype.hasOwnProperty.call(x4, "_byteLengthQueuingStrategyHighWaterMark")) { + return false; + } + return x4 instanceof ByteLengthQueuingStrategy; + } + const countSizeFunction = () => { + return 1; + }; + setFunctionName(countSizeFunction, "size"); + class CountQueuingStrategy { + constructor(options) { + assertRequiredArgument(options, 1, "CountQueuingStrategy"); + options = convertQueuingStrategyInit(options, "First parameter"); + this._countQueuingStrategyHighWaterMark = options.highWaterMark; + } + /** + * Returns the high water mark provided to the constructor. + */ + get highWaterMark() { + if (!IsCountQueuingStrategy(this)) { + throw countBrandCheckException("highWaterMark"); + } + return this._countQueuingStrategyHighWaterMark; + } + /** + * Measures the size of `chunk` by always returning 1. + * This ensures that the total queue size is a count of the number of chunks in the queue. + */ + get size() { + if (!IsCountQueuingStrategy(this)) { + throw countBrandCheckException("size"); + } + return countSizeFunction; + } + } + Object.defineProperties(CountQueuingStrategy.prototype, { + highWaterMark: { enumerable: true }, + size: { enumerable: true } + }); + if (typeof Symbol.toStringTag === "symbol") { + Object.defineProperty(CountQueuingStrategy.prototype, Symbol.toStringTag, { + value: "CountQueuingStrategy", + configurable: true + }); + } + function countBrandCheckException(name) { + return new TypeError(`CountQueuingStrategy.prototype.${name} can only be used on a CountQueuingStrategy`); + } + function IsCountQueuingStrategy(x4) { + if (!typeIsObject(x4)) { + return false; + } + if (!Object.prototype.hasOwnProperty.call(x4, "_countQueuingStrategyHighWaterMark")) { + return false; + } + return x4 instanceof CountQueuingStrategy; + } + function convertTransformer(original, context) { + assertDictionary(original, context); + const cancel = original === null || original === void 0 ? void 0 : original.cancel; + const flush = original === null || original === void 0 ? void 0 : original.flush; + const readableType = original === null || original === void 0 ? void 0 : original.readableType; + const start = original === null || original === void 0 ? void 0 : original.start; + const transform = original === null || original === void 0 ? void 0 : original.transform; + const writableType = original === null || original === void 0 ? void 0 : original.writableType; + return { + cancel: cancel === void 0 ? void 0 : convertTransformerCancelCallback(cancel, original, `${context} has member 'cancel' that`), + flush: flush === void 0 ? void 0 : convertTransformerFlushCallback(flush, original, `${context} has member 'flush' that`), + readableType, + start: start === void 0 ? void 0 : convertTransformerStartCallback(start, original, `${context} has member 'start' that`), + transform: transform === void 0 ? void 0 : convertTransformerTransformCallback(transform, original, `${context} has member 'transform' that`), + writableType + }; + } + function convertTransformerFlushCallback(fn, original, context) { + assertFunction(fn, context); + return (controller) => promiseCall(fn, original, [controller]); + } + function convertTransformerStartCallback(fn, original, context) { + assertFunction(fn, context); + return (controller) => reflectCall(fn, original, [controller]); + } + function convertTransformerTransformCallback(fn, original, context) { + assertFunction(fn, context); + return (chunk, controller) => promiseCall(fn, original, [chunk, controller]); + } + function convertTransformerCancelCallback(fn, original, context) { + assertFunction(fn, context); + return (reason) => promiseCall(fn, original, [reason]); + } + class TransformStream2 { + constructor(rawTransformer = {}, rawWritableStrategy = {}, rawReadableStrategy = {}) { + if (rawTransformer === void 0) { + rawTransformer = null; + } + const writableStrategy = convertQueuingStrategy(rawWritableStrategy, "Second parameter"); + const readableStrategy = convertQueuingStrategy(rawReadableStrategy, "Third parameter"); + const transformer = convertTransformer(rawTransformer, "First parameter"); + if (transformer.readableType !== void 0) { + throw new RangeError("Invalid readableType specified"); + } + if (transformer.writableType !== void 0) { + throw new RangeError("Invalid writableType specified"); + } + const readableHighWaterMark = ExtractHighWaterMark(readableStrategy, 0); + const readableSizeAlgorithm = ExtractSizeAlgorithm(readableStrategy); + const writableHighWaterMark = ExtractHighWaterMark(writableStrategy, 1); + const writableSizeAlgorithm = ExtractSizeAlgorithm(writableStrategy); + let startPromise_resolve; + const startPromise = newPromise((resolve2) => { + startPromise_resolve = resolve2; + }); + InitializeTransformStream(this, startPromise, writableHighWaterMark, writableSizeAlgorithm, readableHighWaterMark, readableSizeAlgorithm); + SetUpTransformStreamDefaultControllerFromTransformer(this, transformer); + if (transformer.start !== void 0) { + startPromise_resolve(transformer.start(this._transformStreamController)); + } else { + startPromise_resolve(void 0); + } + } + /** + * The readable side of the transform stream. + */ + get readable() { + if (!IsTransformStream(this)) { + throw streamBrandCheckException("readable"); + } + return this._readable; + } + /** + * The writable side of the transform stream. + */ + get writable() { + if (!IsTransformStream(this)) { + throw streamBrandCheckException("writable"); + } + return this._writable; + } + } + Object.defineProperties(TransformStream2.prototype, { + readable: { enumerable: true }, + writable: { enumerable: true } + }); + if (typeof Symbol.toStringTag === "symbol") { + Object.defineProperty(TransformStream2.prototype, Symbol.toStringTag, { + value: "TransformStream", + configurable: true + }); + } + function InitializeTransformStream(stream, startPromise, writableHighWaterMark, writableSizeAlgorithm, readableHighWaterMark, readableSizeAlgorithm) { + function startAlgorithm() { + return startPromise; + } + function writeAlgorithm(chunk) { + return TransformStreamDefaultSinkWriteAlgorithm(stream, chunk); + } + function abortAlgorithm(reason) { + return TransformStreamDefaultSinkAbortAlgorithm(stream, reason); + } + function closeAlgorithm() { + return TransformStreamDefaultSinkCloseAlgorithm(stream); + } + stream._writable = CreateWritableStream(startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, writableHighWaterMark, writableSizeAlgorithm); + function pullAlgorithm() { + return TransformStreamDefaultSourcePullAlgorithm(stream); + } + function cancelAlgorithm(reason) { + return TransformStreamDefaultSourceCancelAlgorithm(stream, reason); + } + stream._readable = CreateReadableStream(startAlgorithm, pullAlgorithm, cancelAlgorithm, readableHighWaterMark, readableSizeAlgorithm); + stream._backpressure = void 0; + stream._backpressureChangePromise = void 0; + stream._backpressureChangePromise_resolve = void 0; + TransformStreamSetBackpressure(stream, true); + stream._transformStreamController = void 0; + } + function IsTransformStream(x4) { + if (!typeIsObject(x4)) { + return false; + } + if (!Object.prototype.hasOwnProperty.call(x4, "_transformStreamController")) { + return false; + } + return x4 instanceof TransformStream2; + } + function TransformStreamError(stream, e4) { + ReadableStreamDefaultControllerError(stream._readable._readableStreamController, e4); + TransformStreamErrorWritableAndUnblockWrite(stream, e4); + } + function TransformStreamErrorWritableAndUnblockWrite(stream, e4) { + TransformStreamDefaultControllerClearAlgorithms(stream._transformStreamController); + WritableStreamDefaultControllerErrorIfNeeded(stream._writable._writableStreamController, e4); + TransformStreamUnblockWrite(stream); + } + function TransformStreamUnblockWrite(stream) { + if (stream._backpressure) { + TransformStreamSetBackpressure(stream, false); + } + } + function TransformStreamSetBackpressure(stream, backpressure) { + if (stream._backpressureChangePromise !== void 0) { + stream._backpressureChangePromise_resolve(); + } + stream._backpressureChangePromise = newPromise((resolve2) => { + stream._backpressureChangePromise_resolve = resolve2; + }); + stream._backpressure = backpressure; + } + class TransformStreamDefaultController { + constructor() { + throw new TypeError("Illegal constructor"); + } + /** + * Returns the desired size to fill the readable side’s internal queue. It can be negative, if the queue is over-full. + */ + get desiredSize() { + if (!IsTransformStreamDefaultController(this)) { + throw defaultControllerBrandCheckException("desiredSize"); + } + const readableController = this._controlledTransformStream._readable._readableStreamController; + return ReadableStreamDefaultControllerGetDesiredSize(readableController); + } + enqueue(chunk = void 0) { + if (!IsTransformStreamDefaultController(this)) { + throw defaultControllerBrandCheckException("enqueue"); + } + TransformStreamDefaultControllerEnqueue(this, chunk); + } + /** + * Errors both the readable side and the writable side of the controlled transform stream, making all future + * interactions with it fail with the given error `e`. Any chunks queued for transformation will be discarded. + */ + error(reason = void 0) { + if (!IsTransformStreamDefaultController(this)) { + throw defaultControllerBrandCheckException("error"); + } + TransformStreamDefaultControllerError(this, reason); + } + /** + * Closes the readable side and errors the writable side of the controlled transform stream. This is useful when the + * transformer only needs to consume a portion of the chunks written to the writable side. + */ + terminate() { + if (!IsTransformStreamDefaultController(this)) { + throw defaultControllerBrandCheckException("terminate"); + } + TransformStreamDefaultControllerTerminate(this); + } + } + Object.defineProperties(TransformStreamDefaultController.prototype, { + enqueue: { enumerable: true }, + error: { enumerable: true }, + terminate: { enumerable: true }, + desiredSize: { enumerable: true } + }); + setFunctionName(TransformStreamDefaultController.prototype.enqueue, "enqueue"); + setFunctionName(TransformStreamDefaultController.prototype.error, "error"); + setFunctionName(TransformStreamDefaultController.prototype.terminate, "terminate"); + if (typeof Symbol.toStringTag === "symbol") { + Object.defineProperty(TransformStreamDefaultController.prototype, Symbol.toStringTag, { + value: "TransformStreamDefaultController", + configurable: true + }); + } + function IsTransformStreamDefaultController(x4) { + if (!typeIsObject(x4)) { + return false; + } + if (!Object.prototype.hasOwnProperty.call(x4, "_controlledTransformStream")) { + return false; + } + return x4 instanceof TransformStreamDefaultController; + } + function SetUpTransformStreamDefaultController(stream, controller, transformAlgorithm, flushAlgorithm, cancelAlgorithm) { + controller._controlledTransformStream = stream; + stream._transformStreamController = controller; + controller._transformAlgorithm = transformAlgorithm; + controller._flushAlgorithm = flushAlgorithm; + controller._cancelAlgorithm = cancelAlgorithm; + controller._finishPromise = void 0; + controller._finishPromise_resolve = void 0; + controller._finishPromise_reject = void 0; + } + function SetUpTransformStreamDefaultControllerFromTransformer(stream, transformer) { + const controller = Object.create(TransformStreamDefaultController.prototype); + let transformAlgorithm; + let flushAlgorithm; + let cancelAlgorithm; + if (transformer.transform !== void 0) { + transformAlgorithm = (chunk) => transformer.transform(chunk, controller); + } else { + transformAlgorithm = (chunk) => { + try { + TransformStreamDefaultControllerEnqueue(controller, chunk); + return promiseResolvedWith(void 0); + } catch (transformResultE) { + return promiseRejectedWith(transformResultE); + } + }; + } + if (transformer.flush !== void 0) { + flushAlgorithm = () => transformer.flush(controller); + } else { + flushAlgorithm = () => promiseResolvedWith(void 0); + } + if (transformer.cancel !== void 0) { + cancelAlgorithm = (reason) => transformer.cancel(reason); + } else { + cancelAlgorithm = () => promiseResolvedWith(void 0); + } + SetUpTransformStreamDefaultController(stream, controller, transformAlgorithm, flushAlgorithm, cancelAlgorithm); + } + function TransformStreamDefaultControllerClearAlgorithms(controller) { + controller._transformAlgorithm = void 0; + controller._flushAlgorithm = void 0; + controller._cancelAlgorithm = void 0; + } + function TransformStreamDefaultControllerEnqueue(controller, chunk) { + const stream = controller._controlledTransformStream; + const readableController = stream._readable._readableStreamController; + if (!ReadableStreamDefaultControllerCanCloseOrEnqueue(readableController)) { + throw new TypeError("Readable side is not in a state that permits enqueue"); + } + try { + ReadableStreamDefaultControllerEnqueue(readableController, chunk); + } catch (e4) { + TransformStreamErrorWritableAndUnblockWrite(stream, e4); + throw stream._readable._storedError; + } + const backpressure = ReadableStreamDefaultControllerHasBackpressure(readableController); + if (backpressure !== stream._backpressure) { + TransformStreamSetBackpressure(stream, true); + } + } + function TransformStreamDefaultControllerError(controller, e4) { + TransformStreamError(controller._controlledTransformStream, e4); + } + function TransformStreamDefaultControllerPerformTransform(controller, chunk) { + const transformPromise = controller._transformAlgorithm(chunk); + return transformPromiseWith(transformPromise, void 0, (r4) => { + TransformStreamError(controller._controlledTransformStream, r4); + throw r4; + }); + } + function TransformStreamDefaultControllerTerminate(controller) { + const stream = controller._controlledTransformStream; + const readableController = stream._readable._readableStreamController; + ReadableStreamDefaultControllerClose(readableController); + const error2 = new TypeError("TransformStream terminated"); + TransformStreamErrorWritableAndUnblockWrite(stream, error2); + } + function TransformStreamDefaultSinkWriteAlgorithm(stream, chunk) { + const controller = stream._transformStreamController; + if (stream._backpressure) { + const backpressureChangePromise = stream._backpressureChangePromise; + return transformPromiseWith(backpressureChangePromise, () => { + const writable = stream._writable; + const state2 = writable._state; + if (state2 === "erroring") { + throw writable._storedError; + } + return TransformStreamDefaultControllerPerformTransform(controller, chunk); + }); + } + return TransformStreamDefaultControllerPerformTransform(controller, chunk); + } + function TransformStreamDefaultSinkAbortAlgorithm(stream, reason) { + const controller = stream._transformStreamController; + if (controller._finishPromise !== void 0) { + return controller._finishPromise; + } + const readable = stream._readable; + controller._finishPromise = newPromise((resolve2, reject) => { + controller._finishPromise_resolve = resolve2; + controller._finishPromise_reject = reject; + }); + const cancelPromise = controller._cancelAlgorithm(reason); + TransformStreamDefaultControllerClearAlgorithms(controller); + uponPromise(cancelPromise, () => { + if (readable._state === "errored") { + defaultControllerFinishPromiseReject(controller, readable._storedError); + } else { + ReadableStreamDefaultControllerError(readable._readableStreamController, reason); + defaultControllerFinishPromiseResolve(controller); + } + return null; + }, (r4) => { + ReadableStreamDefaultControllerError(readable._readableStreamController, r4); + defaultControllerFinishPromiseReject(controller, r4); + return null; + }); + return controller._finishPromise; + } + function TransformStreamDefaultSinkCloseAlgorithm(stream) { + const controller = stream._transformStreamController; + if (controller._finishPromise !== void 0) { + return controller._finishPromise; + } + const readable = stream._readable; + controller._finishPromise = newPromise((resolve2, reject) => { + controller._finishPromise_resolve = resolve2; + controller._finishPromise_reject = reject; + }); + const flushPromise = controller._flushAlgorithm(); + TransformStreamDefaultControllerClearAlgorithms(controller); + uponPromise(flushPromise, () => { + if (readable._state === "errored") { + defaultControllerFinishPromiseReject(controller, readable._storedError); + } else { + ReadableStreamDefaultControllerClose(readable._readableStreamController); + defaultControllerFinishPromiseResolve(controller); + } + return null; + }, (r4) => { + ReadableStreamDefaultControllerError(readable._readableStreamController, r4); + defaultControllerFinishPromiseReject(controller, r4); + return null; + }); + return controller._finishPromise; + } + function TransformStreamDefaultSourcePullAlgorithm(stream) { + TransformStreamSetBackpressure(stream, false); + return stream._backpressureChangePromise; + } + function TransformStreamDefaultSourceCancelAlgorithm(stream, reason) { + const controller = stream._transformStreamController; + if (controller._finishPromise !== void 0) { + return controller._finishPromise; + } + const writable = stream._writable; + controller._finishPromise = newPromise((resolve2, reject) => { + controller._finishPromise_resolve = resolve2; + controller._finishPromise_reject = reject; + }); + const cancelPromise = controller._cancelAlgorithm(reason); + TransformStreamDefaultControllerClearAlgorithms(controller); + uponPromise(cancelPromise, () => { + if (writable._state === "errored") { + defaultControllerFinishPromiseReject(controller, writable._storedError); + } else { + WritableStreamDefaultControllerErrorIfNeeded(writable._writableStreamController, reason); + TransformStreamUnblockWrite(stream); + defaultControllerFinishPromiseResolve(controller); + } + return null; + }, (r4) => { + WritableStreamDefaultControllerErrorIfNeeded(writable._writableStreamController, r4); + TransformStreamUnblockWrite(stream); + defaultControllerFinishPromiseReject(controller, r4); + return null; + }); + return controller._finishPromise; + } + function defaultControllerBrandCheckException(name) { + return new TypeError(`TransformStreamDefaultController.prototype.${name} can only be used on a TransformStreamDefaultController`); + } + function defaultControllerFinishPromiseResolve(controller) { + if (controller._finishPromise_resolve === void 0) { + return; + } + controller._finishPromise_resolve(); + controller._finishPromise_resolve = void 0; + controller._finishPromise_reject = void 0; + } + function defaultControllerFinishPromiseReject(controller, reason) { + if (controller._finishPromise_reject === void 0) { + return; + } + setPromiseIsHandledToTrue(controller._finishPromise); + controller._finishPromise_reject(reason); + controller._finishPromise_resolve = void 0; + controller._finishPromise_reject = void 0; + } + function streamBrandCheckException(name) { + return new TypeError(`TransformStream.prototype.${name} can only be used on a TransformStream`); + } + exports3.ByteLengthQueuingStrategy = ByteLengthQueuingStrategy; + exports3.CountQueuingStrategy = CountQueuingStrategy; + exports3.ReadableByteStreamController = ReadableByteStreamController; + exports3.ReadableStream = ReadableStream2; + exports3.ReadableStreamBYOBReader = ReadableStreamBYOBReader; + exports3.ReadableStreamBYOBRequest = ReadableStreamBYOBRequest; + exports3.ReadableStreamDefaultController = ReadableStreamDefaultController; + exports3.ReadableStreamDefaultReader = ReadableStreamDefaultReader; + exports3.TransformStream = TransformStream2; + exports3.TransformStreamDefaultController = TransformStreamDefaultController; + exports3.WritableStream = WritableStream; + exports3.WritableStreamDefaultController = WritableStreamDefaultController; + exports3.WritableStreamDefaultWriter = WritableStreamDefaultWriter; + }); + } +}); + +// ../node_modules/.pnpm/fetch-blob@3.2.0/node_modules/fetch-blob/streams.cjs +var require_streams = __commonJS({ + "../node_modules/.pnpm/fetch-blob@3.2.0/node_modules/fetch-blob/streams.cjs"() { + var POOL_SIZE2 = 65536; + if (!globalThis.ReadableStream) { + try { + const process4 = require("node:process"); + const { emitWarning } = process4; + try { + process4.emitWarning = () => { + }; + Object.assign(globalThis, require("node:stream/web")); + process4.emitWarning = emitWarning; + } catch (error2) { + process4.emitWarning = emitWarning; + throw error2; + } + } catch (error2) { + Object.assign(globalThis, require_ponyfill_es2018()); + } + } + try { + const { Blob: Blob4 } = require("buffer"); + if (Blob4 && !Blob4.prototype.stream) { + Blob4.prototype.stream = function name(params) { + let position = 0; + const blob = this; + return new ReadableStream({ + type: "bytes", + async pull(ctrl) { + const chunk = blob.slice(position, Math.min(blob.size, position + POOL_SIZE2)); + const buffer = await chunk.arrayBuffer(); + position += buffer.byteLength; + ctrl.enqueue(new Uint8Array(buffer)); + if (position === blob.size) { + ctrl.close(); + } + } + }); + }; + } + } catch (error2) { + } + } +}); + +// ../node_modules/.pnpm/fetch-blob@3.2.0/node_modules/fetch-blob/index.js +async function* toIterator(parts, clone2 = true) { + for (const part of parts) { + if ("stream" in part) { + yield* ( + /** @type {AsyncIterableIterator} */ + part.stream() + ); + } else if (ArrayBuffer.isView(part)) { + if (clone2) { + let position = part.byteOffset; + const end = part.byteOffset + part.byteLength; + while (position !== end) { + const size = Math.min(end - position, POOL_SIZE); + const chunk = part.buffer.slice(position, position + size); + position += chunk.byteLength; + yield new Uint8Array(chunk); + } + } else { + yield part; + } + } else { + let position = 0, b3 = ( + /** @type {Blob} */ + part + ); + while (position !== b3.size) { + const chunk = b3.slice(position, Math.min(b3.size, position + POOL_SIZE)); + const buffer = await chunk.arrayBuffer(); + position += buffer.byteLength; + yield new Uint8Array(buffer); + } + } + } +} +var import_streams, POOL_SIZE, _Blob, Blob3, fetch_blob_default; +var init_fetch_blob = __esm({ + "../node_modules/.pnpm/fetch-blob@3.2.0/node_modules/fetch-blob/index.js"() { + import_streams = __toESM(require_streams(), 1); + POOL_SIZE = 65536; + _Blob = class Blob2 { + /** @type {Array.<(Blob|Uint8Array)>} */ + #parts = []; + #type = ""; + #size = 0; + #endings = "transparent"; + /** + * The Blob() constructor returns a new Blob object. The content + * of the blob consists of the concatenation of the values given + * in the parameter array. + * + * @param {*} blobParts + * @param {{ type?: string, endings?: string }} [options] + */ + constructor(blobParts = [], options = {}) { + if (typeof blobParts !== "object" || blobParts === null) { + throw new TypeError("Failed to construct 'Blob': The provided value cannot be converted to a sequence."); + } + if (typeof blobParts[Symbol.iterator] !== "function") { + throw new TypeError("Failed to construct 'Blob': The object must have a callable @@iterator property."); + } + if (typeof options !== "object" && typeof options !== "function") { + throw new TypeError("Failed to construct 'Blob': parameter 2 cannot convert to dictionary."); + } + if (options === null) options = {}; + const encoder = new TextEncoder(); + for (const element of blobParts) { + let part; + if (ArrayBuffer.isView(element)) { + part = new Uint8Array(element.buffer.slice(element.byteOffset, element.byteOffset + element.byteLength)); + } else if (element instanceof ArrayBuffer) { + part = new Uint8Array(element.slice(0)); + } else if (element instanceof Blob2) { + part = element; + } else { + part = encoder.encode(`${element}`); + } + this.#size += ArrayBuffer.isView(part) ? part.byteLength : part.size; + this.#parts.push(part); + } + this.#endings = `${options.endings === void 0 ? "transparent" : options.endings}`; + const type = options.type === void 0 ? "" : String(options.type); + this.#type = /^[\x20-\x7E]*$/.test(type) ? type : ""; + } + /** + * The Blob interface's size property returns the + * size of the Blob in bytes. + */ + get size() { + return this.#size; + } + /** + * The type property of a Blob object returns the MIME type of the file. + */ + get type() { + return this.#type; + } + /** + * The text() method in the Blob interface returns a Promise + * that resolves with a string containing the contents of + * the blob, interpreted as UTF-8. + * + * @return {Promise} + */ + async text() { + const decoder = new TextDecoder(); + let str = ""; + for await (const part of toIterator(this.#parts, false)) { + str += decoder.decode(part, { stream: true }); + } + str += decoder.decode(); + return str; + } + /** + * The arrayBuffer() method in the Blob interface returns a + * Promise that resolves with the contents of the blob as + * binary data contained in an ArrayBuffer. + * + * @return {Promise} + */ + async arrayBuffer() { + const data = new Uint8Array(this.size); + let offset = 0; + for await (const chunk of toIterator(this.#parts, false)) { + data.set(chunk, offset); + offset += chunk.length; + } + return data.buffer; + } + stream() { + const it = toIterator(this.#parts, true); + return new globalThis.ReadableStream({ + // @ts-ignore + type: "bytes", + async pull(ctrl) { + const chunk = await it.next(); + chunk.done ? ctrl.close() : ctrl.enqueue(chunk.value); + }, + async cancel() { + await it.return(); + } + }); + } + /** + * The Blob interface's slice() method creates and returns a + * new Blob object which contains data from a subset of the + * blob on which it's called. + * + * @param {number} [start] + * @param {number} [end] + * @param {string} [type] + */ + slice(start = 0, end = this.size, type = "") { + const { size } = this; + let relativeStart = start < 0 ? Math.max(size + start, 0) : Math.min(start, size); + let relativeEnd = end < 0 ? Math.max(size + end, 0) : Math.min(end, size); + const span = Math.max(relativeEnd - relativeStart, 0); + const parts = this.#parts; + const blobParts = []; + let added = 0; + for (const part of parts) { + if (added >= span) { + break; + } + const size2 = ArrayBuffer.isView(part) ? part.byteLength : part.size; + if (relativeStart && size2 <= relativeStart) { + relativeStart -= size2; + relativeEnd -= size2; + } else { + let chunk; + if (ArrayBuffer.isView(part)) { + chunk = part.subarray(relativeStart, Math.min(size2, relativeEnd)); + added += chunk.byteLength; + } else { + chunk = part.slice(relativeStart, Math.min(size2, relativeEnd)); + added += chunk.size; + } + relativeEnd -= size2; + blobParts.push(chunk); + relativeStart = 0; + } + } + const blob = new Blob2([], { type: String(type).toLowerCase() }); + blob.#size = span; + blob.#parts = blobParts; + return blob; + } + get [Symbol.toStringTag]() { + return "Blob"; + } + static [Symbol.hasInstance](object) { + return object && typeof object === "object" && typeof object.constructor === "function" && (typeof object.stream === "function" || typeof object.arrayBuffer === "function") && /^(Blob|File)$/.test(object[Symbol.toStringTag]); + } + }; + Object.defineProperties(_Blob.prototype, { + size: { enumerable: true }, + type: { enumerable: true }, + slice: { enumerable: true } + }); + Blob3 = _Blob; + fetch_blob_default = Blob3; + } +}); + +// ../node_modules/.pnpm/fetch-blob@3.2.0/node_modules/fetch-blob/file.js +var _File, File3, file_default; +var init_file = __esm({ + "../node_modules/.pnpm/fetch-blob@3.2.0/node_modules/fetch-blob/file.js"() { + init_fetch_blob(); + _File = class File2 extends fetch_blob_default { + #lastModified = 0; + #name = ""; + /** + * @param {*[]} fileBits + * @param {string} fileName + * @param {{lastModified?: number, type?: string}} options + */ + // @ts-ignore + constructor(fileBits, fileName, options = {}) { + if (arguments.length < 2) { + throw new TypeError(`Failed to construct 'File': 2 arguments required, but only ${arguments.length} present.`); + } + super(fileBits, options); + if (options === null) options = {}; + const lastModified = options.lastModified === void 0 ? Date.now() : Number(options.lastModified); + if (!Number.isNaN(lastModified)) { + this.#lastModified = lastModified; + } + this.#name = String(fileName); + } + get name() { + return this.#name; + } + get lastModified() { + return this.#lastModified; + } + get [Symbol.toStringTag]() { + return "File"; + } + static [Symbol.hasInstance](object) { + return !!object && object instanceof fetch_blob_default && /^(File)$/.test(object[Symbol.toStringTag]); + } + }; + File3 = _File; + file_default = File3; + } +}); + +// ../node_modules/.pnpm/formdata-polyfill@4.0.10/node_modules/formdata-polyfill/esm.min.js +function formDataToBlob(F3, B2 = fetch_blob_default) { + var b3 = `${r()}${r()}`.replace(/\./g, "").slice(-28).padStart(32, "-"), c3 = [], p3 = `--${b3}\r +Content-Disposition: form-data; name="`; + F3.forEach((v6, n3) => typeof v6 == "string" ? c3.push(p3 + e(n3) + `"\r +\r +${v6.replace(/\r(?!\n)|(? (a3 += "", /^(Blob|File)$/.test(b3 && b3[t]) ? [(c3 = c3 !== void 0 ? c3 + "" : b3[t] == "File" ? b3.name : "blob", a3), b3.name !== c3 || b3[t] == "blob" ? new file_default([b3], c3, b3) : b3] : [a3, b3 + ""]); + e = (c3, f5) => (f5 ? c3 : c3.replace(/\r?\n|\r/g, "\r\n")).replace(/\n/g, "%0A").replace(/\r/g, "%0D").replace(/"/g, "%22"); + x = (n3, a3, e4) => { + if (a3.length < e4) { + throw new TypeError(`Failed to execute '${n3}' on 'FormData': ${e4} arguments required, but only ${a3.length} present.`); + } + }; + FormData = class FormData2 { + #d = []; + constructor(...a3) { + if (a3.length) throw new TypeError(`Failed to construct 'FormData': parameter 1 is not of type 'HTMLFormElement'.`); + } + get [t]() { + return "FormData"; + } + [i]() { + return this.entries(); + } + static [h](o3) { + return o3 && typeof o3 === "object" && o3[t] === "FormData" && !m.some((m4) => typeof o3[m4] != "function"); + } + append(...a3) { + x("append", arguments, 2); + this.#d.push(f(...a3)); + } + delete(a3) { + x("delete", arguments, 1); + a3 += ""; + this.#d = this.#d.filter(([b3]) => b3 !== a3); + } + get(a3) { + x("get", arguments, 1); + a3 += ""; + for (var b3 = this.#d, l3 = b3.length, c3 = 0; c3 < l3; c3++) if (b3[c3][0] === a3) return b3[c3][1]; + return null; + } + getAll(a3, b3) { + x("getAll", arguments, 1); + b3 = []; + a3 += ""; + this.#d.forEach((c3) => c3[0] === a3 && b3.push(c3[1])); + return b3; + } + has(a3) { + x("has", arguments, 1); + a3 += ""; + return this.#d.some((b3) => b3[0] === a3); + } + forEach(a3, b3) { + x("forEach", arguments, 1); + for (var [c3, d3] of this) a3.call(b3, d3, c3, this); + } + set(...a3) { + x("set", arguments, 2); + var b3 = [], c3 = true; + a3 = f(...a3); + this.#d.forEach((d3) => { + d3[0] === a3[0] ? c3 && (c3 = !b3.push(a3)) : b3.push(d3); + }); + c3 && b3.push(a3); + this.#d = b3; + } + *entries() { + yield* this.#d; + } + *keys() { + for (var [a3] of this) yield a3; + } + *values() { + for (var [, a3] of this) yield a3; + } + }; + } +}); + +// ../node_modules/.pnpm/node-fetch@3.3.2/node_modules/node-fetch/src/errors/base.js +var FetchBaseError; +var init_base = __esm({ + "../node_modules/.pnpm/node-fetch@3.3.2/node_modules/node-fetch/src/errors/base.js"() { + FetchBaseError = class extends Error { + constructor(message, type) { + super(message); + Error.captureStackTrace(this, this.constructor); + this.type = type; + } + get name() { + return this.constructor.name; + } + get [Symbol.toStringTag]() { + return this.constructor.name; + } + }; + } +}); + +// ../node_modules/.pnpm/node-fetch@3.3.2/node_modules/node-fetch/src/errors/fetch-error.js +var FetchError; +var init_fetch_error = __esm({ + "../node_modules/.pnpm/node-fetch@3.3.2/node_modules/node-fetch/src/errors/fetch-error.js"() { + init_base(); + FetchError = class extends FetchBaseError { + /** + * @param {string} message - Error message for human + * @param {string} [type] - Error type for machine + * @param {SystemError} [systemError] - For Node.js system error + */ + constructor(message, type, systemError) { + super(message, type); + if (systemError) { + this.code = this.errno = systemError.code; + this.erroredSysCall = systemError.syscall; + } + } + }; + } +}); + +// ../node_modules/.pnpm/node-fetch@3.3.2/node_modules/node-fetch/src/utils/is.js +var NAME, isURLSearchParameters, isBlob2, isAbortSignal, isDomainOrSubdomain, isSameProtocol; +var init_is = __esm({ + "../node_modules/.pnpm/node-fetch@3.3.2/node_modules/node-fetch/src/utils/is.js"() { + NAME = Symbol.toStringTag; + isURLSearchParameters = (object) => { + return typeof object === "object" && typeof object.append === "function" && typeof object.delete === "function" && typeof object.get === "function" && typeof object.getAll === "function" && typeof object.has === "function" && typeof object.set === "function" && typeof object.sort === "function" && object[NAME] === "URLSearchParams"; + }; + isBlob2 = (object) => { + return object && typeof object === "object" && typeof object.arrayBuffer === "function" && typeof object.type === "string" && typeof object.stream === "function" && typeof object.constructor === "function" && /^(Blob|File)$/.test(object[NAME]); + }; + isAbortSignal = (object) => { + return typeof object === "object" && (object[NAME] === "AbortSignal" || object[NAME] === "EventTarget"); + }; + isDomainOrSubdomain = (destination, original) => { + const orig = new URL(original).hostname; + const dest = new URL(destination).hostname; + return orig === dest || orig.endsWith(`.${dest}`); + }; + isSameProtocol = (destination, original) => { + const orig = new URL(original).protocol; + const dest = new URL(destination).protocol; + return orig === dest; + }; + } +}); + +// ../node_modules/.pnpm/node-domexception@1.0.0/node_modules/node-domexception/index.js +var require_node_domexception = __commonJS({ + "../node_modules/.pnpm/node-domexception@1.0.0/node_modules/node-domexception/index.js"(exports2, module2) { + if (!globalThis.DOMException) { + try { + const { MessageChannel } = require("worker_threads"), port = new MessageChannel().port1, ab = new ArrayBuffer(); + port.postMessage(ab, [ab, ab]); + } catch (err2) { + err2.constructor.name === "DOMException" && (globalThis.DOMException = err2.constructor); + } + } + module2.exports = globalThis.DOMException; + } +}); + +// ../node_modules/.pnpm/fetch-blob@3.2.0/node_modules/fetch-blob/from.js +var import_node_fs, import_node_domexception, stat; +var init_from = __esm({ + "../node_modules/.pnpm/fetch-blob@3.2.0/node_modules/fetch-blob/from.js"() { + import_node_fs = require("node:fs"); + import_node_domexception = __toESM(require_node_domexception(), 1); + init_file(); + init_fetch_blob(); + ({ stat } = import_node_fs.promises); + } +}); + +// ../node_modules/.pnpm/node-fetch@3.3.2/node_modules/node-fetch/src/utils/multipart-parser.js +var multipart_parser_exports = {}; +__export(multipart_parser_exports, { + toFormData: () => toFormData +}); +function _fileName(headerValue) { + const m4 = headerValue.match(/\bfilename=("(.*?)"|([^()<>@,;:\\"/[\]?={}\s\t]+))($|;\s)/i); + if (!m4) { + return; + } + const match2 = m4[2] || m4[3] || ""; + let filename = match2.slice(match2.lastIndexOf("\\") + 1); + filename = filename.replace(/%22/g, '"'); + filename = filename.replace(/&#(\d{4});/g, (m5, code) => { + return String.fromCharCode(code); + }); + return filename; +} +async function toFormData(Body2, ct) { + if (!/multipart/i.test(ct)) { + throw new TypeError("Failed to fetch"); + } + const m4 = ct.match(/boundary=(?:"([^"]+)"|([^;]+))/i); + if (!m4) { + throw new TypeError("no or bad content-type header, no multipart boundary"); + } + const parser = new MultipartParser(m4[1] || m4[2]); + let headerField; + let headerValue; + let entryValue; + let entryName; + let contentType; + let filename; + const entryChunks = []; + const formData = new FormData(); + const onPartData = (ui8a) => { + entryValue += decoder.decode(ui8a, { stream: true }); + }; + const appendToFile = (ui8a) => { + entryChunks.push(ui8a); + }; + const appendFileToFormData = () => { + const file = new file_default(entryChunks, filename, { type: contentType }); + formData.append(entryName, file); + }; + const appendEntryToFormData = () => { + formData.append(entryName, entryValue); + }; + const decoder = new TextDecoder("utf-8"); + decoder.decode(); + parser.onPartBegin = function() { + parser.onPartData = onPartData; + parser.onPartEnd = appendEntryToFormData; + headerField = ""; + headerValue = ""; + entryValue = ""; + entryName = ""; + contentType = ""; + filename = null; + entryChunks.length = 0; + }; + parser.onHeaderField = function(ui8a) { + headerField += decoder.decode(ui8a, { stream: true }); + }; + parser.onHeaderValue = function(ui8a) { + headerValue += decoder.decode(ui8a, { stream: true }); + }; + parser.onHeaderEnd = function() { + headerValue += decoder.decode(); + headerField = headerField.toLowerCase(); + if (headerField === "content-disposition") { + const m5 = headerValue.match(/\bname=("([^"]*)"|([^()<>@,;:\\"/[\]?={}\s\t]+))/i); + if (m5) { + entryName = m5[2] || m5[3] || ""; + } + filename = _fileName(headerValue); + if (filename) { + parser.onPartData = appendToFile; + parser.onPartEnd = appendFileToFormData; + } + } else if (headerField === "content-type") { + contentType = headerValue; + } + headerValue = ""; + headerField = ""; + }; + for await (const chunk of Body2) { + parser.write(chunk); + } + parser.end(); + return formData; +} +var s, S, f2, F, LF, CR, SPACE, HYPHEN, COLON, A, Z, lower, noop, MultipartParser; +var init_multipart_parser = __esm({ + "../node_modules/.pnpm/node-fetch@3.3.2/node_modules/node-fetch/src/utils/multipart-parser.js"() { + init_from(); + init_esm_min(); + s = 0; + S = { + START_BOUNDARY: s++, + HEADER_FIELD_START: s++, + HEADER_FIELD: s++, + HEADER_VALUE_START: s++, + HEADER_VALUE: s++, + HEADER_VALUE_ALMOST_DONE: s++, + HEADERS_ALMOST_DONE: s++, + PART_DATA_START: s++, + PART_DATA: s++, + END: s++ + }; + f2 = 1; + F = { + PART_BOUNDARY: f2, + LAST_BOUNDARY: f2 *= 2 + }; + LF = 10; + CR = 13; + SPACE = 32; + HYPHEN = 45; + COLON = 58; + A = 97; + Z = 122; + lower = (c3) => c3 | 32; + noop = () => { + }; + MultipartParser = class { + /** + * @param {string} boundary + */ + constructor(boundary) { + this.index = 0; + this.flags = 0; + this.onHeaderEnd = noop; + this.onHeaderField = noop; + this.onHeadersEnd = noop; + this.onHeaderValue = noop; + this.onPartBegin = noop; + this.onPartData = noop; + this.onPartEnd = noop; + this.boundaryChars = {}; + boundary = "\r\n--" + boundary; + const ui8a = new Uint8Array(boundary.length); + for (let i4 = 0; i4 < boundary.length; i4++) { + ui8a[i4] = boundary.charCodeAt(i4); + this.boundaryChars[ui8a[i4]] = true; + } + this.boundary = ui8a; + this.lookbehind = new Uint8Array(this.boundary.length + 8); + this.state = S.START_BOUNDARY; + } + /** + * @param {Uint8Array} data + */ + write(data) { + let i4 = 0; + const length_ = data.length; + let previousIndex = this.index; + let { lookbehind, boundary, boundaryChars, index: index6, state: state2, flags } = this; + const boundaryLength = this.boundary.length; + const boundaryEnd = boundaryLength - 1; + const bufferLength = data.length; + let c3; + let cl; + const mark = (name) => { + this[name + "Mark"] = i4; + }; + const clear = (name) => { + delete this[name + "Mark"]; + }; + const callback = (callbackSymbol, start, end, ui8a) => { + if (start === void 0 || start !== end) { + this[callbackSymbol](ui8a && ui8a.subarray(start, end)); + } + }; + const dataCallback = (name, clear2) => { + const markSymbol = name + "Mark"; + if (!(markSymbol in this)) { + return; + } + if (clear2) { + callback(name, this[markSymbol], i4, data); + delete this[markSymbol]; + } else { + callback(name, this[markSymbol], data.length, data); + this[markSymbol] = 0; + } + }; + for (i4 = 0; i4 < length_; i4++) { + c3 = data[i4]; + switch (state2) { + case S.START_BOUNDARY: + if (index6 === boundary.length - 2) { + if (c3 === HYPHEN) { + flags |= F.LAST_BOUNDARY; + } else if (c3 !== CR) { + return; + } + index6++; + break; + } else if (index6 - 1 === boundary.length - 2) { + if (flags & F.LAST_BOUNDARY && c3 === HYPHEN) { + state2 = S.END; + flags = 0; + } else if (!(flags & F.LAST_BOUNDARY) && c3 === LF) { + index6 = 0; + callback("onPartBegin"); + state2 = S.HEADER_FIELD_START; + } else { + return; + } + break; + } + if (c3 !== boundary[index6 + 2]) { + index6 = -2; + } + if (c3 === boundary[index6 + 2]) { + index6++; + } + break; + case S.HEADER_FIELD_START: + state2 = S.HEADER_FIELD; + mark("onHeaderField"); + index6 = 0; + // falls through + case S.HEADER_FIELD: + if (c3 === CR) { + clear("onHeaderField"); + state2 = S.HEADERS_ALMOST_DONE; + break; + } + index6++; + if (c3 === HYPHEN) { + break; + } + if (c3 === COLON) { + if (index6 === 1) { + return; + } + dataCallback("onHeaderField", true); + state2 = S.HEADER_VALUE_START; + break; + } + cl = lower(c3); + if (cl < A || cl > Z) { + return; + } + break; + case S.HEADER_VALUE_START: + if (c3 === SPACE) { + break; + } + mark("onHeaderValue"); + state2 = S.HEADER_VALUE; + // falls through + case S.HEADER_VALUE: + if (c3 === CR) { + dataCallback("onHeaderValue", true); + callback("onHeaderEnd"); + state2 = S.HEADER_VALUE_ALMOST_DONE; + } + break; + case S.HEADER_VALUE_ALMOST_DONE: + if (c3 !== LF) { + return; + } + state2 = S.HEADER_FIELD_START; + break; + case S.HEADERS_ALMOST_DONE: + if (c3 !== LF) { + return; + } + callback("onHeadersEnd"); + state2 = S.PART_DATA_START; + break; + case S.PART_DATA_START: + state2 = S.PART_DATA; + mark("onPartData"); + // falls through + case S.PART_DATA: + previousIndex = index6; + if (index6 === 0) { + i4 += boundaryEnd; + while (i4 < bufferLength && !(data[i4] in boundaryChars)) { + i4 += boundaryLength; + } + i4 -= boundaryEnd; + c3 = data[i4]; + } + if (index6 < boundary.length) { + if (boundary[index6] === c3) { + if (index6 === 0) { + dataCallback("onPartData", true); + } + index6++; + } else { + index6 = 0; + } + } else if (index6 === boundary.length) { + index6++; + if (c3 === CR) { + flags |= F.PART_BOUNDARY; + } else if (c3 === HYPHEN) { + flags |= F.LAST_BOUNDARY; + } else { + index6 = 0; + } + } else if (index6 - 1 === boundary.length) { + if (flags & F.PART_BOUNDARY) { + index6 = 0; + if (c3 === LF) { + flags &= ~F.PART_BOUNDARY; + callback("onPartEnd"); + callback("onPartBegin"); + state2 = S.HEADER_FIELD_START; + break; + } + } else if (flags & F.LAST_BOUNDARY) { + if (c3 === HYPHEN) { + callback("onPartEnd"); + state2 = S.END; + flags = 0; + } else { + index6 = 0; + } + } else { + index6 = 0; + } + } + if (index6 > 0) { + lookbehind[index6 - 1] = c3; + } else if (previousIndex > 0) { + const _lookbehind = new Uint8Array(lookbehind.buffer, lookbehind.byteOffset, lookbehind.byteLength); + callback("onPartData", 0, previousIndex, _lookbehind); + previousIndex = 0; + mark("onPartData"); + i4--; + } + break; + case S.END: + break; + default: + throw new Error(`Unexpected state entered: ${state2}`); + } + } + dataCallback("onHeaderField"); + dataCallback("onHeaderValue"); + dataCallback("onPartData"); + this.index = index6; + this.state = state2; + this.flags = flags; + } + end() { + if (this.state === S.HEADER_FIELD_START && this.index === 0 || this.state === S.PART_DATA && this.index === this.boundary.length) { + this.onPartEnd(); + } else if (this.state !== S.END) { + throw new Error("MultipartParser.end(): stream ended unexpectedly"); + } + } + }; + } +}); + +// ../node_modules/.pnpm/node-fetch@3.3.2/node_modules/node-fetch/src/body.js +async function consumeBody(data) { + if (data[INTERNALS].disturbed) { + throw new TypeError(`body used already for: ${data.url}`); + } + data[INTERNALS].disturbed = true; + if (data[INTERNALS].error) { + throw data[INTERNALS].error; + } + const { body } = data; + if (body === null) { + return import_node_buffer.Buffer.alloc(0); + } + if (!(body instanceof import_node_stream.default)) { + return import_node_buffer.Buffer.alloc(0); + } + const accum = []; + let accumBytes = 0; + try { + for await (const chunk of body) { + if (data.size > 0 && accumBytes + chunk.length > data.size) { + const error2 = new FetchError(`content size at ${data.url} over limit: ${data.size}`, "max-size"); + body.destroy(error2); + throw error2; + } + accumBytes += chunk.length; + accum.push(chunk); + } + } catch (error2) { + const error_ = error2 instanceof FetchBaseError ? error2 : new FetchError(`Invalid response body while trying to fetch ${data.url}: ${error2.message}`, "system", error2); + throw error_; + } + if (body.readableEnded === true || body._readableState.ended === true) { + try { + if (accum.every((c3) => typeof c3 === "string")) { + return import_node_buffer.Buffer.from(accum.join("")); + } + return import_node_buffer.Buffer.concat(accum, accumBytes); + } catch (error2) { + throw new FetchError(`Could not create Buffer from response body for ${data.url}: ${error2.message}`, "system", error2); + } + } else { + throw new FetchError(`Premature close of server response while trying to fetch ${data.url}`); + } +} +var import_node_stream, import_node_util, import_node_buffer, pipeline, INTERNALS, Body, clone, getNonSpecFormDataBoundary, extractContentType, getTotalBytes, writeToStream; +var init_body = __esm({ + "../node_modules/.pnpm/node-fetch@3.3.2/node_modules/node-fetch/src/body.js"() { + import_node_stream = __toESM(require("node:stream"), 1); + import_node_util = require("node:util"); + import_node_buffer = require("node:buffer"); + init_fetch_blob(); + init_esm_min(); + init_fetch_error(); + init_base(); + init_is(); + pipeline = (0, import_node_util.promisify)(import_node_stream.default.pipeline); + INTERNALS = Symbol("Body internals"); + Body = class { + constructor(body, { + size = 0 + } = {}) { + let boundary = null; + if (body === null) { + body = null; + } else if (isURLSearchParameters(body)) { + body = import_node_buffer.Buffer.from(body.toString()); + } else if (isBlob2(body)) { + } else if (import_node_buffer.Buffer.isBuffer(body)) { + } else if (import_node_util.types.isAnyArrayBuffer(body)) { + body = import_node_buffer.Buffer.from(body); + } else if (ArrayBuffer.isView(body)) { + body = import_node_buffer.Buffer.from(body.buffer, body.byteOffset, body.byteLength); + } else if (body instanceof import_node_stream.default) { + } else if (body instanceof FormData) { + body = formDataToBlob(body); + boundary = body.type.split("=")[1]; + } else { + body = import_node_buffer.Buffer.from(String(body)); + } + let stream = body; + if (import_node_buffer.Buffer.isBuffer(body)) { + stream = import_node_stream.default.Readable.from(body); + } else if (isBlob2(body)) { + stream = import_node_stream.default.Readable.from(body.stream()); + } + this[INTERNALS] = { + body, + stream, + boundary, + disturbed: false, + error: null + }; + this.size = size; + if (body instanceof import_node_stream.default) { + body.on("error", (error_) => { + const error2 = error_ instanceof FetchBaseError ? error_ : new FetchError(`Invalid response body while trying to fetch ${this.url}: ${error_.message}`, "system", error_); + this[INTERNALS].error = error2; + }); + } + } + get body() { + return this[INTERNALS].stream; + } + get bodyUsed() { + return this[INTERNALS].disturbed; + } + /** + * Decode response as ArrayBuffer + * + * @return Promise + */ + async arrayBuffer() { + const { buffer, byteOffset, byteLength } = await consumeBody(this); + return buffer.slice(byteOffset, byteOffset + byteLength); + } + async formData() { + const ct = this.headers.get("content-type"); + if (ct.startsWith("application/x-www-form-urlencoded")) { + const formData = new FormData(); + const parameters = new URLSearchParams(await this.text()); + for (const [name, value] of parameters) { + formData.append(name, value); + } + return formData; + } + const { toFormData: toFormData2 } = await Promise.resolve().then(() => (init_multipart_parser(), multipart_parser_exports)); + return toFormData2(this.body, ct); + } + /** + * Return raw response as Blob + * + * @return Promise + */ + async blob() { + const ct = this.headers && this.headers.get("content-type") || this[INTERNALS].body && this[INTERNALS].body.type || ""; + const buf = await this.arrayBuffer(); + return new fetch_blob_default([buf], { + type: ct + }); + } + /** + * Decode response as json + * + * @return Promise + */ + async json() { + const text = await this.text(); + return JSON.parse(text); + } + /** + * Decode response as text + * + * @return Promise + */ + async text() { + const buffer = await consumeBody(this); + return new TextDecoder().decode(buffer); + } + /** + * Decode response as buffer (non-spec api) + * + * @return Promise + */ + buffer() { + return consumeBody(this); + } + }; + Body.prototype.buffer = (0, import_node_util.deprecate)(Body.prototype.buffer, "Please use 'response.arrayBuffer()' instead of 'response.buffer()'", "node-fetch#buffer"); + Object.defineProperties(Body.prototype, { + body: { enumerable: true }, + bodyUsed: { enumerable: true }, + arrayBuffer: { enumerable: true }, + blob: { enumerable: true }, + json: { enumerable: true }, + text: { enumerable: true }, + data: { get: (0, import_node_util.deprecate)( + () => { + }, + "data doesn't exist, use json(), text(), arrayBuffer(), or body instead", + "https://github.com/node-fetch/node-fetch/issues/1000 (response)" + ) } + }); + clone = (instance, highWaterMark) => { + let p1; + let p22; + let { body } = instance[INTERNALS]; + if (instance.bodyUsed) { + throw new Error("cannot clone body after it is used"); + } + if (body instanceof import_node_stream.default && typeof body.getBoundary !== "function") { + p1 = new import_node_stream.PassThrough({ highWaterMark }); + p22 = new import_node_stream.PassThrough({ highWaterMark }); + body.pipe(p1); + body.pipe(p22); + instance[INTERNALS].stream = p1; + body = p22; + } + return body; + }; + getNonSpecFormDataBoundary = (0, import_node_util.deprecate)( + (body) => body.getBoundary(), + "form-data doesn't follow the spec and requires special treatment. Use alternative package", + "https://github.com/node-fetch/node-fetch/issues/1167" + ); + extractContentType = (body, request) => { + if (body === null) { + return null; + } + if (typeof body === "string") { + return "text/plain;charset=UTF-8"; + } + if (isURLSearchParameters(body)) { + return "application/x-www-form-urlencoded;charset=UTF-8"; + } + if (isBlob2(body)) { + return body.type || null; + } + if (import_node_buffer.Buffer.isBuffer(body) || import_node_util.types.isAnyArrayBuffer(body) || ArrayBuffer.isView(body)) { + return null; + } + if (body instanceof FormData) { + return `multipart/form-data; boundary=${request[INTERNALS].boundary}`; + } + if (body && typeof body.getBoundary === "function") { + return `multipart/form-data;boundary=${getNonSpecFormDataBoundary(body)}`; + } + if (body instanceof import_node_stream.default) { + return null; + } + return "text/plain;charset=UTF-8"; + }; + getTotalBytes = (request) => { + const { body } = request[INTERNALS]; + if (body === null) { + return 0; + } + if (isBlob2(body)) { + return body.size; + } + if (import_node_buffer.Buffer.isBuffer(body)) { + return body.length; + } + if (body && typeof body.getLengthSync === "function") { + return body.hasKnownLength && body.hasKnownLength() ? body.getLengthSync() : null; + } + return null; + }; + writeToStream = async (dest, { body }) => { + if (body === null) { + dest.end(); + } else { + await pipeline(body, dest); + } + }; + } +}); + +// ../node_modules/.pnpm/node-fetch@3.3.2/node_modules/node-fetch/src/headers.js +function fromRawHeaders(headers = []) { + return new Headers2( + headers.reduce((result, value, index6, array2) => { + if (index6 % 2 === 0) { + result.push(array2.slice(index6, index6 + 2)); + } + return result; + }, []).filter(([name, value]) => { + try { + validateHeaderName(name); + validateHeaderValue(name, String(value)); + return true; + } catch { + return false; + } + }) + ); +} +var import_node_util2, import_node_http, validateHeaderName, validateHeaderValue, Headers2; +var init_headers = __esm({ + "../node_modules/.pnpm/node-fetch@3.3.2/node_modules/node-fetch/src/headers.js"() { + import_node_util2 = require("node:util"); + import_node_http = __toESM(require("node:http"), 1); + validateHeaderName = typeof import_node_http.default.validateHeaderName === "function" ? import_node_http.default.validateHeaderName : (name) => { + if (!/^[\^`\-\w!#$%&'*+.|~]+$/.test(name)) { + const error2 = new TypeError(`Header name must be a valid HTTP token [${name}]`); + Object.defineProperty(error2, "code", { value: "ERR_INVALID_HTTP_TOKEN" }); + throw error2; + } + }; + validateHeaderValue = typeof import_node_http.default.validateHeaderValue === "function" ? import_node_http.default.validateHeaderValue : (name, value) => { + if (/[^\t\u0020-\u007E\u0080-\u00FF]/.test(value)) { + const error2 = new TypeError(`Invalid character in header content ["${name}"]`); + Object.defineProperty(error2, "code", { value: "ERR_INVALID_CHAR" }); + throw error2; + } + }; + Headers2 = class _Headers extends URLSearchParams { + /** + * Headers class + * + * @constructor + * @param {HeadersInit} [init] - Response headers + */ + constructor(init2) { + let result = []; + if (init2 instanceof _Headers) { + const raw2 = init2.raw(); + for (const [name, values] of Object.entries(raw2)) { + result.push(...values.map((value) => [name, value])); + } + } else if (init2 == null) { + } else if (typeof init2 === "object" && !import_node_util2.types.isBoxedPrimitive(init2)) { + const method = init2[Symbol.iterator]; + if (method == null) { + result.push(...Object.entries(init2)); + } else { + if (typeof method !== "function") { + throw new TypeError("Header pairs must be iterable"); + } + result = [...init2].map((pair) => { + if (typeof pair !== "object" || import_node_util2.types.isBoxedPrimitive(pair)) { + throw new TypeError("Each header pair must be an iterable object"); + } + return [...pair]; + }).map((pair) => { + if (pair.length !== 2) { + throw new TypeError("Each header pair must be a name/value tuple"); + } + return [...pair]; + }); + } + } else { + throw new TypeError("Failed to construct 'Headers': The provided value is not of type '(sequence> or record)"); + } + result = result.length > 0 ? result.map(([name, value]) => { + validateHeaderName(name); + validateHeaderValue(name, String(value)); + return [String(name).toLowerCase(), String(value)]; + }) : void 0; + super(result); + return new Proxy(this, { + get(target, p3, receiver) { + switch (p3) { + case "append": + case "set": + return (name, value) => { + validateHeaderName(name); + validateHeaderValue(name, String(value)); + return URLSearchParams.prototype[p3].call( + target, + String(name).toLowerCase(), + String(value) + ); + }; + case "delete": + case "has": + case "getAll": + return (name) => { + validateHeaderName(name); + return URLSearchParams.prototype[p3].call( + target, + String(name).toLowerCase() + ); + }; + case "keys": + return () => { + target.sort(); + return new Set(URLSearchParams.prototype.keys.call(target)).keys(); + }; + default: + return Reflect.get(target, p3, receiver); + } + } + }); + } + get [Symbol.toStringTag]() { + return this.constructor.name; + } + toString() { + return Object.prototype.toString.call(this); + } + get(name) { + const values = this.getAll(name); + if (values.length === 0) { + return null; + } + let value = values.join(", "); + if (/^content-encoding$/i.test(name)) { + value = value.toLowerCase(); + } + return value; + } + forEach(callback, thisArg = void 0) { + for (const name of this.keys()) { + Reflect.apply(callback, thisArg, [this.get(name), name, this]); + } + } + *values() { + for (const name of this.keys()) { + yield this.get(name); + } + } + /** + * @type {() => IterableIterator<[string, string]>} + */ + *entries() { + for (const name of this.keys()) { + yield [name, this.get(name)]; + } + } + [Symbol.iterator]() { + return this.entries(); + } + /** + * Node-fetch non-spec method + * returning all headers and their values as array + * @returns {Record} + */ + raw() { + return [...this.keys()].reduce((result, key) => { + result[key] = this.getAll(key); + return result; + }, {}); + } + /** + * For better console.log(headers) and also to convert Headers into Node.js Request compatible format + */ + [Symbol.for("nodejs.util.inspect.custom")]() { + return [...this.keys()].reduce((result, key) => { + const values = this.getAll(key); + if (key === "host") { + result[key] = values[0]; + } else { + result[key] = values.length > 1 ? values : values[0]; + } + return result; + }, {}); + } + }; + Object.defineProperties( + Headers2.prototype, + ["get", "entries", "forEach", "values"].reduce((result, property) => { + result[property] = { enumerable: true }; + return result; + }, {}) + ); + } +}); + +// ../node_modules/.pnpm/node-fetch@3.3.2/node_modules/node-fetch/src/utils/is-redirect.js +var redirectStatus, isRedirect; +var init_is_redirect = __esm({ + "../node_modules/.pnpm/node-fetch@3.3.2/node_modules/node-fetch/src/utils/is-redirect.js"() { + redirectStatus = /* @__PURE__ */ new Set([301, 302, 303, 307, 308]); + isRedirect = (code) => { + return redirectStatus.has(code); + }; + } +}); + +// ../node_modules/.pnpm/node-fetch@3.3.2/node_modules/node-fetch/src/response.js +var INTERNALS2, Response2; +var init_response = __esm({ + "../node_modules/.pnpm/node-fetch@3.3.2/node_modules/node-fetch/src/response.js"() { + init_headers(); + init_body(); + init_is_redirect(); + INTERNALS2 = Symbol("Response internals"); + Response2 = class _Response2 extends Body { + constructor(body = null, options = {}) { + super(body, options); + const status = options.status != null ? options.status : 200; + const headers = new Headers2(options.headers); + if (body !== null && !headers.has("Content-Type")) { + const contentType = extractContentType(body, this); + if (contentType) { + headers.append("Content-Type", contentType); + } + } + this[INTERNALS2] = { + type: "default", + url: options.url, + status, + statusText: options.statusText || "", + headers, + counter: options.counter, + highWaterMark: options.highWaterMark + }; + } + get type() { + return this[INTERNALS2].type; + } + get url() { + return this[INTERNALS2].url || ""; + } + get status() { + return this[INTERNALS2].status; + } + /** + * Convenience property representing if the request ended normally + */ + get ok() { + return this[INTERNALS2].status >= 200 && this[INTERNALS2].status < 300; + } + get redirected() { + return this[INTERNALS2].counter > 0; + } + get statusText() { + return this[INTERNALS2].statusText; + } + get headers() { + return this[INTERNALS2].headers; + } + get highWaterMark() { + return this[INTERNALS2].highWaterMark; + } + /** + * Clone this response + * + * @return Response + */ + clone() { + return new _Response2(clone(this, this.highWaterMark), { + type: this.type, + url: this.url, + status: this.status, + statusText: this.statusText, + headers: this.headers, + ok: this.ok, + redirected: this.redirected, + size: this.size, + highWaterMark: this.highWaterMark + }); + } + /** + * @param {string} url The URL that the new response is to originate from. + * @param {number} status An optional status code for the response (e.g., 302.) + * @returns {Response} A Response object. + */ + static redirect(url, status = 302) { + if (!isRedirect(status)) { + throw new RangeError('Failed to execute "redirect" on "response": Invalid status code'); + } + return new _Response2(null, { + headers: { + location: new URL(url).toString() + }, + status + }); + } + static error() { + const response = new _Response2(null, { status: 0, statusText: "" }); + response[INTERNALS2].type = "error"; + return response; + } + static json(data = void 0, init2 = {}) { + const body = JSON.stringify(data); + if (body === void 0) { + throw new TypeError("data is not JSON serializable"); + } + const headers = new Headers2(init2 && init2.headers); + if (!headers.has("content-type")) { + headers.set("content-type", "application/json"); + } + return new _Response2(body, { + ...init2, + headers + }); + } + get [Symbol.toStringTag]() { + return "Response"; + } + }; + Object.defineProperties(Response2.prototype, { + type: { enumerable: true }, + url: { enumerable: true }, + status: { enumerable: true }, + ok: { enumerable: true }, + redirected: { enumerable: true }, + statusText: { enumerable: true }, + headers: { enumerable: true }, + clone: { enumerable: true } + }); + } +}); + +// ../node_modules/.pnpm/node-fetch@3.3.2/node_modules/node-fetch/src/utils/get-search.js +var getSearch; +var init_get_search = __esm({ + "../node_modules/.pnpm/node-fetch@3.3.2/node_modules/node-fetch/src/utils/get-search.js"() { + getSearch = (parsedURL) => { + if (parsedURL.search) { + return parsedURL.search; + } + const lastOffset = parsedURL.href.length - 1; + const hash = parsedURL.hash || (parsedURL.href[lastOffset] === "#" ? "#" : ""); + return parsedURL.href[lastOffset - hash.length] === "?" ? "?" : ""; + }; + } +}); + +// ../node_modules/.pnpm/node-fetch@3.3.2/node_modules/node-fetch/src/utils/referrer.js +function stripURLForUseAsAReferrer(url, originOnly = false) { + if (url == null) { + return "no-referrer"; + } + url = new URL(url); + if (/^(about|blob|data):$/.test(url.protocol)) { + return "no-referrer"; + } + url.username = ""; + url.password = ""; + url.hash = ""; + if (originOnly) { + url.pathname = ""; + url.search = ""; + } + return url; +} +function validateReferrerPolicy(referrerPolicy) { + if (!ReferrerPolicy.has(referrerPolicy)) { + throw new TypeError(`Invalid referrerPolicy: ${referrerPolicy}`); + } + return referrerPolicy; +} +function isOriginPotentiallyTrustworthy(url) { + if (/^(http|ws)s:$/.test(url.protocol)) { + return true; + } + const hostIp = url.host.replace(/(^\[)|(]$)/g, ""); + const hostIPVersion = (0, import_node_net.isIP)(hostIp); + if (hostIPVersion === 4 && /^127\./.test(hostIp)) { + return true; + } + if (hostIPVersion === 6 && /^(((0+:){7})|(::(0+:){0,6}))0*1$/.test(hostIp)) { + return true; + } + if (url.host === "localhost" || url.host.endsWith(".localhost")) { + return false; + } + if (url.protocol === "file:") { + return true; + } + return false; +} +function isUrlPotentiallyTrustworthy(url) { + if (/^about:(blank|srcdoc)$/.test(url)) { + return true; + } + if (url.protocol === "data:") { + return true; + } + if (/^(blob|filesystem):$/.test(url.protocol)) { + return true; + } + return isOriginPotentiallyTrustworthy(url); +} +function determineRequestsReferrer(request, { referrerURLCallback, referrerOriginCallback } = {}) { + if (request.referrer === "no-referrer" || request.referrerPolicy === "") { + return null; + } + const policy5 = request.referrerPolicy; + if (request.referrer === "about:client") { + return "no-referrer"; + } + const referrerSource = request.referrer; + let referrerURL = stripURLForUseAsAReferrer(referrerSource); + let referrerOrigin = stripURLForUseAsAReferrer(referrerSource, true); + if (referrerURL.toString().length > 4096) { + referrerURL = referrerOrigin; + } + if (referrerURLCallback) { + referrerURL = referrerURLCallback(referrerURL); + } + if (referrerOriginCallback) { + referrerOrigin = referrerOriginCallback(referrerOrigin); + } + const currentURL = new URL(request.url); + switch (policy5) { + case "no-referrer": + return "no-referrer"; + case "origin": + return referrerOrigin; + case "unsafe-url": + return referrerURL; + case "strict-origin": + if (isUrlPotentiallyTrustworthy(referrerURL) && !isUrlPotentiallyTrustworthy(currentURL)) { + return "no-referrer"; + } + return referrerOrigin.toString(); + case "strict-origin-when-cross-origin": + if (referrerURL.origin === currentURL.origin) { + return referrerURL; + } + if (isUrlPotentiallyTrustworthy(referrerURL) && !isUrlPotentiallyTrustworthy(currentURL)) { + return "no-referrer"; + } + return referrerOrigin; + case "same-origin": + if (referrerURL.origin === currentURL.origin) { + return referrerURL; + } + return "no-referrer"; + case "origin-when-cross-origin": + if (referrerURL.origin === currentURL.origin) { + return referrerURL; + } + return referrerOrigin; + case "no-referrer-when-downgrade": + if (isUrlPotentiallyTrustworthy(referrerURL) && !isUrlPotentiallyTrustworthy(currentURL)) { + return "no-referrer"; + } + return referrerURL; + default: + throw new TypeError(`Invalid referrerPolicy: ${policy5}`); + } +} +function parseReferrerPolicyFromHeader(headers) { + const policyTokens = (headers.get("referrer-policy") || "").split(/[,\s]+/); + let policy5 = ""; + for (const token of policyTokens) { + if (token && ReferrerPolicy.has(token)) { + policy5 = token; + } + } + return policy5; +} +var import_node_net, ReferrerPolicy, DEFAULT_REFERRER_POLICY; +var init_referrer = __esm({ + "../node_modules/.pnpm/node-fetch@3.3.2/node_modules/node-fetch/src/utils/referrer.js"() { + import_node_net = require("node:net"); + ReferrerPolicy = /* @__PURE__ */ new Set([ + "", + "no-referrer", + "no-referrer-when-downgrade", + "same-origin", + "origin", + "strict-origin", + "origin-when-cross-origin", + "strict-origin-when-cross-origin", + "unsafe-url" + ]); + DEFAULT_REFERRER_POLICY = "strict-origin-when-cross-origin"; + } +}); + +// ../node_modules/.pnpm/node-fetch@3.3.2/node_modules/node-fetch/src/request.js +var import_node_url, import_node_util3, INTERNALS3, isRequest, doBadDataWarn, Request2, getNodeRequestOptions; +var init_request = __esm({ + "../node_modules/.pnpm/node-fetch@3.3.2/node_modules/node-fetch/src/request.js"() { + import_node_url = require("node:url"); + import_node_util3 = require("node:util"); + init_headers(); + init_body(); + init_is(); + init_get_search(); + init_referrer(); + INTERNALS3 = Symbol("Request internals"); + isRequest = (object) => { + return typeof object === "object" && typeof object[INTERNALS3] === "object"; + }; + doBadDataWarn = (0, import_node_util3.deprecate)( + () => { + }, + ".data is not a valid RequestInit property, use .body instead", + "https://github.com/node-fetch/node-fetch/issues/1000 (request)" + ); + Request2 = class _Request extends Body { + constructor(input, init2 = {}) { + let parsedURL; + if (isRequest(input)) { + parsedURL = new URL(input.url); + } else { + parsedURL = new URL(input); + input = {}; + } + if (parsedURL.username !== "" || parsedURL.password !== "") { + throw new TypeError(`${parsedURL} is an url with embedded credentials.`); + } + let method = init2.method || input.method || "GET"; + if (/^(delete|get|head|options|post|put)$/i.test(method)) { + method = method.toUpperCase(); + } + if (!isRequest(init2) && "data" in init2) { + doBadDataWarn(); + } + if ((init2.body != null || isRequest(input) && input.body !== null) && (method === "GET" || method === "HEAD")) { + throw new TypeError("Request with GET/HEAD method cannot have body"); + } + const inputBody = init2.body ? init2.body : isRequest(input) && input.body !== null ? clone(input) : null; + super(inputBody, { + size: init2.size || input.size || 0 + }); + const headers = new Headers2(init2.headers || input.headers || {}); + if (inputBody !== null && !headers.has("Content-Type")) { + const contentType = extractContentType(inputBody, this); + if (contentType) { + headers.set("Content-Type", contentType); + } + } + let signal = isRequest(input) ? input.signal : null; + if ("signal" in init2) { + signal = init2.signal; + } + if (signal != null && !isAbortSignal(signal)) { + throw new TypeError("Expected signal to be an instanceof AbortSignal or EventTarget"); + } + let referrer = init2.referrer == null ? input.referrer : init2.referrer; + if (referrer === "") { + referrer = "no-referrer"; + } else if (referrer) { + const parsedReferrer = new URL(referrer); + referrer = /^about:(\/\/)?client$/.test(parsedReferrer) ? "client" : parsedReferrer; + } else { + referrer = void 0; + } + this[INTERNALS3] = { + method, + redirect: init2.redirect || input.redirect || "follow", + headers, + parsedURL, + signal, + referrer + }; + this.follow = init2.follow === void 0 ? input.follow === void 0 ? 20 : input.follow : init2.follow; + this.compress = init2.compress === void 0 ? input.compress === void 0 ? true : input.compress : init2.compress; + this.counter = init2.counter || input.counter || 0; + this.agent = init2.agent || input.agent; + this.highWaterMark = init2.highWaterMark || input.highWaterMark || 16384; + this.insecureHTTPParser = init2.insecureHTTPParser || input.insecureHTTPParser || false; + this.referrerPolicy = init2.referrerPolicy || input.referrerPolicy || ""; + } + /** @returns {string} */ + get method() { + return this[INTERNALS3].method; + } + /** @returns {string} */ + get url() { + return (0, import_node_url.format)(this[INTERNALS3].parsedURL); + } + /** @returns {Headers} */ + get headers() { + return this[INTERNALS3].headers; + } + get redirect() { + return this[INTERNALS3].redirect; + } + /** @returns {AbortSignal} */ + get signal() { + return this[INTERNALS3].signal; + } + // https://fetch.spec.whatwg.org/#dom-request-referrer + get referrer() { + if (this[INTERNALS3].referrer === "no-referrer") { + return ""; + } + if (this[INTERNALS3].referrer === "client") { + return "about:client"; + } + if (this[INTERNALS3].referrer) { + return this[INTERNALS3].referrer.toString(); + } + return void 0; + } + get referrerPolicy() { + return this[INTERNALS3].referrerPolicy; + } + set referrerPolicy(referrerPolicy) { + this[INTERNALS3].referrerPolicy = validateReferrerPolicy(referrerPolicy); + } + /** + * Clone this request + * + * @return Request + */ + clone() { + return new _Request(this); + } + get [Symbol.toStringTag]() { + return "Request"; + } + }; + Object.defineProperties(Request2.prototype, { + method: { enumerable: true }, + url: { enumerable: true }, + headers: { enumerable: true }, + redirect: { enumerable: true }, + clone: { enumerable: true }, + signal: { enumerable: true }, + referrer: { enumerable: true }, + referrerPolicy: { enumerable: true } + }); + getNodeRequestOptions = (request) => { + const { parsedURL } = request[INTERNALS3]; + const headers = new Headers2(request[INTERNALS3].headers); + if (!headers.has("Accept")) { + headers.set("Accept", "*/*"); + } + let contentLengthValue = null; + if (request.body === null && /^(post|put)$/i.test(request.method)) { + contentLengthValue = "0"; + } + if (request.body !== null) { + const totalBytes = getTotalBytes(request); + if (typeof totalBytes === "number" && !Number.isNaN(totalBytes)) { + contentLengthValue = String(totalBytes); + } + } + if (contentLengthValue) { + headers.set("Content-Length", contentLengthValue); + } + if (request.referrerPolicy === "") { + request.referrerPolicy = DEFAULT_REFERRER_POLICY; + } + if (request.referrer && request.referrer !== "no-referrer") { + request[INTERNALS3].referrer = determineRequestsReferrer(request); + } else { + request[INTERNALS3].referrer = "no-referrer"; + } + if (request[INTERNALS3].referrer instanceof URL) { + headers.set("Referer", request.referrer); + } + if (!headers.has("User-Agent")) { + headers.set("User-Agent", "node-fetch"); + } + if (request.compress && !headers.has("Accept-Encoding")) { + headers.set("Accept-Encoding", "gzip, deflate, br"); + } + let { agent } = request; + if (typeof agent === "function") { + agent = agent(parsedURL); + } + const search = getSearch(parsedURL); + const options = { + // Overwrite search to retain trailing ? (issue #776) + path: parsedURL.pathname + search, + // The following options are not expressed in the URL + method: request.method, + headers: headers[Symbol.for("nodejs.util.inspect.custom")](), + insecureHTTPParser: request.insecureHTTPParser, + agent + }; + return { + /** @type {URL} */ + parsedURL, + options + }; + }; + } +}); + +// ../node_modules/.pnpm/node-fetch@3.3.2/node_modules/node-fetch/src/errors/abort-error.js +var AbortError; +var init_abort_error = __esm({ + "../node_modules/.pnpm/node-fetch@3.3.2/node_modules/node-fetch/src/errors/abort-error.js"() { + init_base(); + AbortError = class extends FetchBaseError { + constructor(message, type = "aborted") { + super(message, type); + } + }; + } +}); + +// ../node_modules/.pnpm/node-fetch@3.3.2/node_modules/node-fetch/src/index.js +async function fetch2(url, options_) { + return new Promise((resolve2, reject) => { + const request = new Request2(url, options_); + const { parsedURL, options } = getNodeRequestOptions(request); + if (!supportedSchemas.has(parsedURL.protocol)) { + throw new TypeError(`node-fetch cannot load ${url}. URL scheme "${parsedURL.protocol.replace(/:$/, "")}" is not supported.`); + } + if (parsedURL.protocol === "data:") { + const data = dist_default(request.url); + const response2 = new Response2(data, { headers: { "Content-Type": data.typeFull } }); + resolve2(response2); + return; + } + const send = (parsedURL.protocol === "https:" ? import_node_https.default : import_node_http2.default).request; + const { signal } = request; + let response = null; + const abort = () => { + const error2 = new AbortError("The operation was aborted."); + reject(error2); + if (request.body && request.body instanceof import_node_stream2.default.Readable) { + request.body.destroy(error2); + } + if (!response || !response.body) { + return; + } + response.body.emit("error", error2); + }; + if (signal && signal.aborted) { + abort(); + return; + } + const abortAndFinalize = () => { + abort(); + finalize(); + }; + const request_ = send(parsedURL.toString(), options); + if (signal) { + signal.addEventListener("abort", abortAndFinalize); + } + const finalize = () => { + request_.abort(); + if (signal) { + signal.removeEventListener("abort", abortAndFinalize); + } + }; + request_.on("error", (error2) => { + reject(new FetchError(`request to ${request.url} failed, reason: ${error2.message}`, "system", error2)); + finalize(); + }); + fixResponseChunkedTransferBadEnding(request_, (error2) => { + if (response && response.body) { + response.body.destroy(error2); + } + }); + if (process.version < "v14") { + request_.on("socket", (s4) => { + let endedWithEventsCount; + s4.prependListener("end", () => { + endedWithEventsCount = s4._eventsCount; + }); + s4.prependListener("close", (hadError) => { + if (response && endedWithEventsCount < s4._eventsCount && !hadError) { + const error2 = new Error("Premature close"); + error2.code = "ERR_STREAM_PREMATURE_CLOSE"; + response.body.emit("error", error2); + } + }); + }); + } + request_.on("response", (response_) => { + request_.setTimeout(0); + const headers = fromRawHeaders(response_.rawHeaders); + if (isRedirect(response_.statusCode)) { + const location = headers.get("Location"); + let locationURL = null; + try { + locationURL = location === null ? null : new URL(location, request.url); + } catch { + if (request.redirect !== "manual") { + reject(new FetchError(`uri requested responds with an invalid redirect URL: ${location}`, "invalid-redirect")); + finalize(); + return; + } + } + switch (request.redirect) { + case "error": + reject(new FetchError(`uri requested responds with a redirect, redirect mode is set to error: ${request.url}`, "no-redirect")); + finalize(); + return; + case "manual": + break; + case "follow": { + if (locationURL === null) { + break; + } + if (request.counter >= request.follow) { + reject(new FetchError(`maximum redirect reached at: ${request.url}`, "max-redirect")); + finalize(); + return; + } + const requestOptions = { + headers: new Headers2(request.headers), + follow: request.follow, + counter: request.counter + 1, + agent: request.agent, + compress: request.compress, + method: request.method, + body: clone(request), + signal: request.signal, + size: request.size, + referrer: request.referrer, + referrerPolicy: request.referrerPolicy + }; + if (!isDomainOrSubdomain(request.url, locationURL) || !isSameProtocol(request.url, locationURL)) { + for (const name of ["authorization", "www-authenticate", "cookie", "cookie2"]) { + requestOptions.headers.delete(name); + } + } + if (response_.statusCode !== 303 && request.body && options_.body instanceof import_node_stream2.default.Readable) { + reject(new FetchError("Cannot follow redirect with body being a readable stream", "unsupported-redirect")); + finalize(); + return; + } + if (response_.statusCode === 303 || (response_.statusCode === 301 || response_.statusCode === 302) && request.method === "POST") { + requestOptions.method = "GET"; + requestOptions.body = void 0; + requestOptions.headers.delete("content-length"); + } + const responseReferrerPolicy = parseReferrerPolicyFromHeader(headers); + if (responseReferrerPolicy) { + requestOptions.referrerPolicy = responseReferrerPolicy; + } + resolve2(fetch2(new Request2(locationURL, requestOptions))); + finalize(); + return; + } + default: + return reject(new TypeError(`Redirect option '${request.redirect}' is not a valid value of RequestRedirect`)); + } + } + if (signal) { + response_.once("end", () => { + signal.removeEventListener("abort", abortAndFinalize); + }); + } + let body = (0, import_node_stream2.pipeline)(response_, new import_node_stream2.PassThrough(), (error2) => { + if (error2) { + reject(error2); + } + }); + if (process.version < "v12.10") { + response_.on("aborted", abortAndFinalize); + } + const responseOptions = { + url: request.url, + status: response_.statusCode, + statusText: response_.statusMessage, + headers, + size: request.size, + counter: request.counter, + highWaterMark: request.highWaterMark + }; + const codings = headers.get("Content-Encoding"); + if (!request.compress || request.method === "HEAD" || codings === null || response_.statusCode === 204 || response_.statusCode === 304) { + response = new Response2(body, responseOptions); + resolve2(response); + return; + } + const zlibOptions = { + flush: import_node_zlib.default.Z_SYNC_FLUSH, + finishFlush: import_node_zlib.default.Z_SYNC_FLUSH + }; + if (codings === "gzip" || codings === "x-gzip") { + body = (0, import_node_stream2.pipeline)(body, import_node_zlib.default.createGunzip(zlibOptions), (error2) => { + if (error2) { + reject(error2); + } + }); + response = new Response2(body, responseOptions); + resolve2(response); + return; + } + if (codings === "deflate" || codings === "x-deflate") { + const raw2 = (0, import_node_stream2.pipeline)(response_, new import_node_stream2.PassThrough(), (error2) => { + if (error2) { + reject(error2); + } + }); + raw2.once("data", (chunk) => { + if ((chunk[0] & 15) === 8) { + body = (0, import_node_stream2.pipeline)(body, import_node_zlib.default.createInflate(), (error2) => { + if (error2) { + reject(error2); + } + }); + } else { + body = (0, import_node_stream2.pipeline)(body, import_node_zlib.default.createInflateRaw(), (error2) => { + if (error2) { + reject(error2); + } + }); + } + response = new Response2(body, responseOptions); + resolve2(response); + }); + raw2.once("end", () => { + if (!response) { + response = new Response2(body, responseOptions); + resolve2(response); + } + }); + return; + } + if (codings === "br") { + body = (0, import_node_stream2.pipeline)(body, import_node_zlib.default.createBrotliDecompress(), (error2) => { + if (error2) { + reject(error2); + } + }); + response = new Response2(body, responseOptions); + resolve2(response); + return; + } + response = new Response2(body, responseOptions); + resolve2(response); + }); + writeToStream(request_, request).catch(reject); + }); +} +function fixResponseChunkedTransferBadEnding(request, errorCallback) { + const LAST_CHUNK = import_node_buffer2.Buffer.from("0\r\n\r\n"); + let isChunkedTransfer = false; + let properLastChunkReceived = false; + let previousChunk; + request.on("response", (response) => { + const { headers } = response; + isChunkedTransfer = headers["transfer-encoding"] === "chunked" && !headers["content-length"]; + }); + request.on("socket", (socket) => { + const onSocketClose = () => { + if (isChunkedTransfer && !properLastChunkReceived) { + const error2 = new Error("Premature close"); + error2.code = "ERR_STREAM_PREMATURE_CLOSE"; + errorCallback(error2); + } + }; + const onData = (buf) => { + properLastChunkReceived = import_node_buffer2.Buffer.compare(buf.slice(-5), LAST_CHUNK) === 0; + if (!properLastChunkReceived && previousChunk) { + properLastChunkReceived = import_node_buffer2.Buffer.compare(previousChunk.slice(-3), LAST_CHUNK.slice(0, 3)) === 0 && import_node_buffer2.Buffer.compare(buf.slice(-2), LAST_CHUNK.slice(3)) === 0; + } + previousChunk = buf; + }; + socket.prependListener("close", onSocketClose); + socket.on("data", onData); + request.on("close", () => { + socket.removeListener("close", onSocketClose); + socket.removeListener("data", onData); + }); + }); +} +var import_node_http2, import_node_https, import_node_zlib, import_node_stream2, import_node_buffer2, supportedSchemas; +var init_src = __esm({ + "../node_modules/.pnpm/node-fetch@3.3.2/node_modules/node-fetch/src/index.js"() { + import_node_http2 = __toESM(require("node:http"), 1); + import_node_https = __toESM(require("node:https"), 1); + import_node_zlib = __toESM(require("node:zlib"), 1); + import_node_stream2 = __toESM(require("node:stream"), 1); + import_node_buffer2 = require("node:buffer"); + init_dist(); + init_body(); + init_response(); + init_headers(); + init_request(); + init_fetch_error(); + init_abort_error(); + init_is_redirect(); + init_esm_min(); + init_is(); + init_referrer(); + init_from(); + supportedSchemas = /* @__PURE__ */ new Set(["data:", "http:", "https:"]); + } +}); + +// ../node_modules/.pnpm/ws@8.18.2_bufferutil@4.0.8_utf-8-validate@6.0.3/node_modules/ws/lib/constants.js +var require_constants2 = __commonJS({ + "../node_modules/.pnpm/ws@8.18.2_bufferutil@4.0.8_utf-8-validate@6.0.3/node_modules/ws/lib/constants.js"(exports2, module2) { + "use strict"; + var BINARY_TYPES = ["nodebuffer", "arraybuffer", "fragments"]; + var hasBlob = typeof Blob !== "undefined"; + if (hasBlob) BINARY_TYPES.push("blob"); + module2.exports = { + BINARY_TYPES, + EMPTY_BUFFER: Buffer.alloc(0), + GUID: "258EAFA5-E914-47DA-95CA-C5AB0DC85B11", + hasBlob, + kForOnEventAttribute: Symbol("kIsForOnEventAttribute"), + kListener: Symbol("kListener"), + kStatusCode: Symbol("status-code"), + kWebSocket: Symbol("websocket"), + NOOP: () => { + } + }; + } +}); + +// ../node_modules/.pnpm/node-gyp-build@4.8.4/node_modules/node-gyp-build/node-gyp-build.js +var require_node_gyp_build = __commonJS({ + "../node_modules/.pnpm/node-gyp-build@4.8.4/node_modules/node-gyp-build/node-gyp-build.js"(exports2, module2) { + var fs7 = require("fs"); + var path4 = require("path"); + var os3 = require("os"); + var runtimeRequire = typeof __webpack_require__ === "function" ? __non_webpack_require__ : require; + var vars = process.config && process.config.variables || {}; + var prebuildsOnly = !!process.env.PREBUILDS_ONLY; + var abi = process.versions.modules; + var runtime = isElectron() ? "electron" : isNwjs() ? "node-webkit" : "node"; + var arch = process.env.npm_config_arch || os3.arch(); + var platform = process.env.npm_config_platform || os3.platform(); + var libc = process.env.LIBC || (isAlpine(platform) ? "musl" : "glibc"); + var armv = process.env.ARM_VERSION || (arch === "arm64" ? "8" : vars.arm_version) || ""; + var uv = (process.versions.uv || "").split(".")[0]; + module2.exports = load; + function load(dir) { + return runtimeRequire(load.resolve(dir)); + } + load.resolve = load.path = function(dir) { + dir = path4.resolve(dir || "."); + try { + var name = runtimeRequire(path4.join(dir, "package.json")).name.toUpperCase().replace(/-/g, "_"); + if (process.env[name + "_PREBUILD"]) dir = process.env[name + "_PREBUILD"]; + } catch (err2) { + } + if (!prebuildsOnly) { + var release = getFirst(path4.join(dir, "build/Release"), matchBuild); + if (release) return release; + var debug = getFirst(path4.join(dir, "build/Debug"), matchBuild); + if (debug) return debug; + } + var prebuild = resolve2(dir); + if (prebuild) return prebuild; + var nearby = resolve2(path4.dirname(process.execPath)); + if (nearby) return nearby; + var target = [ + "platform=" + platform, + "arch=" + arch, + "runtime=" + runtime, + "abi=" + abi, + "uv=" + uv, + armv ? "armv=" + armv : "", + "libc=" + libc, + "node=" + process.versions.node, + process.versions.electron ? "electron=" + process.versions.electron : "", + typeof __webpack_require__ === "function" ? "webpack=true" : "" + // eslint-disable-line + ].filter(Boolean).join(" "); + throw new Error("No native build was found for " + target + "\n loaded from: " + dir + "\n"); + function resolve2(dir2) { + var tuples = readdirSync2(path4.join(dir2, "prebuilds")).map(parseTuple); + var tuple = tuples.filter(matchTuple(platform, arch)).sort(compareTuples)[0]; + if (!tuple) return; + var prebuilds = path4.join(dir2, "prebuilds", tuple.name); + var parsed = readdirSync2(prebuilds).map(parseTags); + var candidates = parsed.filter(matchTags(runtime, abi)); + var winner = candidates.sort(compareTags(runtime))[0]; + if (winner) return path4.join(prebuilds, winner.file); + } + }; + function readdirSync2(dir) { + try { + return fs7.readdirSync(dir); + } catch (err2) { + return []; + } + } + function getFirst(dir, filter2) { + var files = readdirSync2(dir).filter(filter2); + return files[0] && path4.join(dir, files[0]); + } + function matchBuild(name) { + return /\.node$/.test(name); + } + function parseTuple(name) { + var arr = name.split("-"); + if (arr.length !== 2) return; + var platform2 = arr[0]; + var architectures = arr[1].split("+"); + if (!platform2) return; + if (!architectures.length) return; + if (!architectures.every(Boolean)) return; + return { name, platform: platform2, architectures }; + } + function matchTuple(platform2, arch2) { + return function(tuple) { + if (tuple == null) return false; + if (tuple.platform !== platform2) return false; + return tuple.architectures.includes(arch2); + }; + } + function compareTuples(a3, b3) { + return a3.architectures.length - b3.architectures.length; + } + function parseTags(file) { + var arr = file.split("."); + var extension = arr.pop(); + var tags = { file, specificity: 0 }; + if (extension !== "node") return; + for (var i4 = 0; i4 < arr.length; i4++) { + var tag = arr[i4]; + if (tag === "node" || tag === "electron" || tag === "node-webkit") { + tags.runtime = tag; + } else if (tag === "napi") { + tags.napi = true; + } else if (tag.slice(0, 3) === "abi") { + tags.abi = tag.slice(3); + } else if (tag.slice(0, 2) === "uv") { + tags.uv = tag.slice(2); + } else if (tag.slice(0, 4) === "armv") { + tags.armv = tag.slice(4); + } else if (tag === "glibc" || tag === "musl") { + tags.libc = tag; + } else { + continue; + } + tags.specificity++; + } + return tags; + } + function matchTags(runtime2, abi2) { + return function(tags) { + if (tags == null) return false; + if (tags.runtime && tags.runtime !== runtime2 && !runtimeAgnostic(tags)) return false; + if (tags.abi && tags.abi !== abi2 && !tags.napi) return false; + if (tags.uv && tags.uv !== uv) return false; + if (tags.armv && tags.armv !== armv) return false; + if (tags.libc && tags.libc !== libc) return false; + return true; + }; + } + function runtimeAgnostic(tags) { + return tags.runtime === "node" && tags.napi; + } + function compareTags(runtime2) { + return function(a3, b3) { + if (a3.runtime !== b3.runtime) { + return a3.runtime === runtime2 ? -1 : 1; + } else if (a3.abi !== b3.abi) { + return a3.abi ? -1 : 1; + } else if (a3.specificity !== b3.specificity) { + return a3.specificity > b3.specificity ? -1 : 1; + } else { + return 0; + } + }; + } + function isNwjs() { + return !!(process.versions && process.versions.nw); + } + function isElectron() { + if (process.versions && process.versions.electron) return true; + if (process.env.ELECTRON_RUN_AS_NODE) return true; + return typeof window !== "undefined" && window.process && window.process.type === "renderer"; + } + function isAlpine(platform2) { + return platform2 === "linux" && fs7.existsSync("/etc/alpine-release"); + } + load.parseTags = parseTags; + load.matchTags = matchTags; + load.compareTags = compareTags; + load.parseTuple = parseTuple; + load.matchTuple = matchTuple; + load.compareTuples = compareTuples; + } +}); + +// ../node_modules/.pnpm/node-gyp-build@4.8.4/node_modules/node-gyp-build/index.js +var require_node_gyp_build2 = __commonJS({ + "../node_modules/.pnpm/node-gyp-build@4.8.4/node_modules/node-gyp-build/index.js"(exports2, module2) { + var runtimeRequire = typeof __webpack_require__ === "function" ? __non_webpack_require__ : require; + if (typeof runtimeRequire.addon === "function") { + module2.exports = runtimeRequire.addon.bind(runtimeRequire); + } else { + module2.exports = require_node_gyp_build(); + } + } +}); + +// ../node_modules/.pnpm/bufferutil@4.0.8/node_modules/bufferutil/fallback.js +var require_fallback = __commonJS({ + "../node_modules/.pnpm/bufferutil@4.0.8/node_modules/bufferutil/fallback.js"(exports2, module2) { + "use strict"; + var mask = (source, mask2, output, offset, length) => { + for (var i4 = 0; i4 < length; i4++) { + output[offset + i4] = source[i4] ^ mask2[i4 & 3]; + } + }; + var unmask = (buffer, mask2) => { + const length = buffer.length; + for (var i4 = 0; i4 < length; i4++) { + buffer[i4] ^= mask2[i4 & 3]; + } + }; + module2.exports = { mask, unmask }; + } +}); + +// ../node_modules/.pnpm/bufferutil@4.0.8/node_modules/bufferutil/index.js +var require_bufferutil = __commonJS({ + "../node_modules/.pnpm/bufferutil@4.0.8/node_modules/bufferutil/index.js"(exports2, module2) { + "use strict"; + try { + module2.exports = require_node_gyp_build2()(__dirname); + } catch (e4) { + module2.exports = require_fallback(); + } + } +}); + +// ../node_modules/.pnpm/ws@8.18.2_bufferutil@4.0.8_utf-8-validate@6.0.3/node_modules/ws/lib/buffer-util.js +var require_buffer_util = __commonJS({ + "../node_modules/.pnpm/ws@8.18.2_bufferutil@4.0.8_utf-8-validate@6.0.3/node_modules/ws/lib/buffer-util.js"(exports2, module2) { + "use strict"; + var { EMPTY_BUFFER } = require_constants2(); + var FastBuffer = Buffer[Symbol.species]; + function concat(list, totalLength) { + if (list.length === 0) return EMPTY_BUFFER; + if (list.length === 1) return list[0]; + const target = Buffer.allocUnsafe(totalLength); + let offset = 0; + for (let i4 = 0; i4 < list.length; i4++) { + const buf = list[i4]; + target.set(buf, offset); + offset += buf.length; + } + if (offset < totalLength) { + return new FastBuffer(target.buffer, target.byteOffset, offset); + } + return target; + } + function _mask(source, mask, output, offset, length) { + for (let i4 = 0; i4 < length; i4++) { + output[offset + i4] = source[i4] ^ mask[i4 & 3]; + } + } + function _unmask(buffer, mask) { + for (let i4 = 0; i4 < buffer.length; i4++) { + buffer[i4] ^= mask[i4 & 3]; + } + } + function toArrayBuffer(buf) { + if (buf.length === buf.buffer.byteLength) { + return buf.buffer; + } + return buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.length); + } + function toBuffer(data) { + toBuffer.readOnly = true; + if (Buffer.isBuffer(data)) return data; + let buf; + if (data instanceof ArrayBuffer) { + buf = new FastBuffer(data); + } else if (ArrayBuffer.isView(data)) { + buf = new FastBuffer(data.buffer, data.byteOffset, data.byteLength); + } else { + buf = Buffer.from(data); + toBuffer.readOnly = false; + } + return buf; + } + module2.exports = { + concat, + mask: _mask, + toArrayBuffer, + toBuffer, + unmask: _unmask + }; + if (!process.env.WS_NO_BUFFER_UTIL) { + try { + const bufferUtil = require_bufferutil(); + module2.exports.mask = function(source, mask, output, offset, length) { + if (length < 48) _mask(source, mask, output, offset, length); + else bufferUtil.mask(source, mask, output, offset, length); + }; + module2.exports.unmask = function(buffer, mask) { + if (buffer.length < 32) _unmask(buffer, mask); + else bufferUtil.unmask(buffer, mask); + }; + } catch (e4) { + } + } + } +}); + +// ../node_modules/.pnpm/ws@8.18.2_bufferutil@4.0.8_utf-8-validate@6.0.3/node_modules/ws/lib/limiter.js +var require_limiter = __commonJS({ + "../node_modules/.pnpm/ws@8.18.2_bufferutil@4.0.8_utf-8-validate@6.0.3/node_modules/ws/lib/limiter.js"(exports2, module2) { + "use strict"; + var kDone = Symbol("kDone"); + var kRun = Symbol("kRun"); + var Limiter = class { + /** + * Creates a new `Limiter`. + * + * @param {Number} [concurrency=Infinity] The maximum number of jobs allowed + * to run concurrently + */ + constructor(concurrency) { + this[kDone] = () => { + this.pending--; + this[kRun](); + }; + this.concurrency = concurrency || Infinity; + this.jobs = []; + this.pending = 0; + } + /** + * Adds a job to the queue. + * + * @param {Function} job The job to run + * @public + */ + add(job) { + this.jobs.push(job); + this[kRun](); + } + /** + * Removes a job from the queue and runs it if possible. + * + * @private + */ + [kRun]() { + if (this.pending === this.concurrency) return; + if (this.jobs.length) { + const job = this.jobs.shift(); + this.pending++; + job(this[kDone]); + } + } + }; + module2.exports = Limiter; + } +}); + +// ../node_modules/.pnpm/ws@8.18.2_bufferutil@4.0.8_utf-8-validate@6.0.3/node_modules/ws/lib/permessage-deflate.js +var require_permessage_deflate = __commonJS({ + "../node_modules/.pnpm/ws@8.18.2_bufferutil@4.0.8_utf-8-validate@6.0.3/node_modules/ws/lib/permessage-deflate.js"(exports2, module2) { + "use strict"; + var zlib2 = require("zlib"); + var bufferUtil = require_buffer_util(); + var Limiter = require_limiter(); + var { kStatusCode } = require_constants2(); + var FastBuffer = Buffer[Symbol.species]; + var TRAILER = Buffer.from([0, 0, 255, 255]); + var kPerMessageDeflate = Symbol("permessage-deflate"); + var kTotalLength = Symbol("total-length"); + var kCallback = Symbol("callback"); + var kBuffers = Symbol("buffers"); + var kError = Symbol("error"); + var zlibLimiter; + var PerMessageDeflate = class { + /** + * Creates a PerMessageDeflate instance. + * + * @param {Object} [options] Configuration options + * @param {(Boolean|Number)} [options.clientMaxWindowBits] Advertise support + * for, or request, a custom client window size + * @param {Boolean} [options.clientNoContextTakeover=false] Advertise/ + * acknowledge disabling of client context takeover + * @param {Number} [options.concurrencyLimit=10] The number of concurrent + * calls to zlib + * @param {(Boolean|Number)} [options.serverMaxWindowBits] Request/confirm the + * use of a custom server window size + * @param {Boolean} [options.serverNoContextTakeover=false] Request/accept + * disabling of server context takeover + * @param {Number} [options.threshold=1024] Size (in bytes) below which + * messages should not be compressed if context takeover is disabled + * @param {Object} [options.zlibDeflateOptions] Options to pass to zlib on + * deflate + * @param {Object} [options.zlibInflateOptions] Options to pass to zlib on + * inflate + * @param {Boolean} [isServer=false] Create the instance in either server or + * client mode + * @param {Number} [maxPayload=0] The maximum allowed message length + */ + constructor(options, isServer, maxPayload) { + this._maxPayload = maxPayload | 0; + this._options = options || {}; + this._threshold = this._options.threshold !== void 0 ? this._options.threshold : 1024; + this._isServer = !!isServer; + this._deflate = null; + this._inflate = null; + this.params = null; + if (!zlibLimiter) { + const concurrency = this._options.concurrencyLimit !== void 0 ? this._options.concurrencyLimit : 10; + zlibLimiter = new Limiter(concurrency); + } + } + /** + * @type {String} + */ + static get extensionName() { + return "permessage-deflate"; + } + /** + * Create an extension negotiation offer. + * + * @return {Object} Extension parameters + * @public + */ + offer() { + const params = {}; + if (this._options.serverNoContextTakeover) { + params.server_no_context_takeover = true; + } + if (this._options.clientNoContextTakeover) { + params.client_no_context_takeover = true; + } + if (this._options.serverMaxWindowBits) { + params.server_max_window_bits = this._options.serverMaxWindowBits; + } + if (this._options.clientMaxWindowBits) { + params.client_max_window_bits = this._options.clientMaxWindowBits; + } else if (this._options.clientMaxWindowBits == null) { + params.client_max_window_bits = true; + } + return params; + } + /** + * Accept an extension negotiation offer/response. + * + * @param {Array} configurations The extension negotiation offers/reponse + * @return {Object} Accepted configuration + * @public + */ + accept(configurations) { + configurations = this.normalizeParams(configurations); + this.params = this._isServer ? this.acceptAsServer(configurations) : this.acceptAsClient(configurations); + return this.params; + } + /** + * Releases all resources used by the extension. + * + * @public + */ + cleanup() { + if (this._inflate) { + this._inflate.close(); + this._inflate = null; + } + if (this._deflate) { + const callback = this._deflate[kCallback]; + this._deflate.close(); + this._deflate = null; + if (callback) { + callback( + new Error( + "The deflate stream was closed while data was being processed" + ) + ); + } + } + } + /** + * Accept an extension negotiation offer. + * + * @param {Array} offers The extension negotiation offers + * @return {Object} Accepted configuration + * @private + */ + acceptAsServer(offers) { + const opts = this._options; + const accepted = offers.find((params) => { + if (opts.serverNoContextTakeover === false && params.server_no_context_takeover || params.server_max_window_bits && (opts.serverMaxWindowBits === false || typeof opts.serverMaxWindowBits === "number" && opts.serverMaxWindowBits > params.server_max_window_bits) || typeof opts.clientMaxWindowBits === "number" && !params.client_max_window_bits) { + return false; + } + return true; + }); + if (!accepted) { + throw new Error("None of the extension offers can be accepted"); + } + if (opts.serverNoContextTakeover) { + accepted.server_no_context_takeover = true; + } + if (opts.clientNoContextTakeover) { + accepted.client_no_context_takeover = true; + } + if (typeof opts.serverMaxWindowBits === "number") { + accepted.server_max_window_bits = opts.serverMaxWindowBits; + } + if (typeof opts.clientMaxWindowBits === "number") { + accepted.client_max_window_bits = opts.clientMaxWindowBits; + } else if (accepted.client_max_window_bits === true || opts.clientMaxWindowBits === false) { + delete accepted.client_max_window_bits; + } + return accepted; + } + /** + * Accept the extension negotiation response. + * + * @param {Array} response The extension negotiation response + * @return {Object} Accepted configuration + * @private + */ + acceptAsClient(response) { + const params = response[0]; + if (this._options.clientNoContextTakeover === false && params.client_no_context_takeover) { + throw new Error('Unexpected parameter "client_no_context_takeover"'); + } + if (!params.client_max_window_bits) { + if (typeof this._options.clientMaxWindowBits === "number") { + params.client_max_window_bits = this._options.clientMaxWindowBits; + } + } else if (this._options.clientMaxWindowBits === false || typeof this._options.clientMaxWindowBits === "number" && params.client_max_window_bits > this._options.clientMaxWindowBits) { + throw new Error( + 'Unexpected or invalid parameter "client_max_window_bits"' + ); + } + return params; + } + /** + * Normalize parameters. + * + * @param {Array} configurations The extension negotiation offers/reponse + * @return {Array} The offers/response with normalized parameters + * @private + */ + normalizeParams(configurations) { + configurations.forEach((params) => { + Object.keys(params).forEach((key) => { + let value = params[key]; + if (value.length > 1) { + throw new Error(`Parameter "${key}" must have only a single value`); + } + value = value[0]; + if (key === "client_max_window_bits") { + if (value !== true) { + const num = +value; + if (!Number.isInteger(num) || num < 8 || num > 15) { + throw new TypeError( + `Invalid value for parameter "${key}": ${value}` + ); + } + value = num; + } else if (!this._isServer) { + throw new TypeError( + `Invalid value for parameter "${key}": ${value}` + ); + } + } else if (key === "server_max_window_bits") { + const num = +value; + if (!Number.isInteger(num) || num < 8 || num > 15) { + throw new TypeError( + `Invalid value for parameter "${key}": ${value}` + ); + } + value = num; + } else if (key === "client_no_context_takeover" || key === "server_no_context_takeover") { + if (value !== true) { + throw new TypeError( + `Invalid value for parameter "${key}": ${value}` + ); + } + } else { + throw new Error(`Unknown parameter "${key}"`); + } + params[key] = value; + }); + }); + return configurations; + } + /** + * Decompress data. Concurrency limited. + * + * @param {Buffer} data Compressed data + * @param {Boolean} fin Specifies whether or not this is the last fragment + * @param {Function} callback Callback + * @public + */ + decompress(data, fin, callback) { + zlibLimiter.add((done) => { + this._decompress(data, fin, (err2, result) => { + done(); + callback(err2, result); + }); + }); + } + /** + * Compress data. Concurrency limited. + * + * @param {(Buffer|String)} data Data to compress + * @param {Boolean} fin Specifies whether or not this is the last fragment + * @param {Function} callback Callback + * @public + */ + compress(data, fin, callback) { + zlibLimiter.add((done) => { + this._compress(data, fin, (err2, result) => { + done(); + callback(err2, result); + }); + }); + } + /** + * Decompress data. + * + * @param {Buffer} data Compressed data + * @param {Boolean} fin Specifies whether or not this is the last fragment + * @param {Function} callback Callback + * @private + */ + _decompress(data, fin, callback) { + const endpoint = this._isServer ? "client" : "server"; + if (!this._inflate) { + const key = `${endpoint}_max_window_bits`; + const windowBits = typeof this.params[key] !== "number" ? zlib2.Z_DEFAULT_WINDOWBITS : this.params[key]; + this._inflate = zlib2.createInflateRaw({ + ...this._options.zlibInflateOptions, + windowBits + }); + this._inflate[kPerMessageDeflate] = this; + this._inflate[kTotalLength] = 0; + this._inflate[kBuffers] = []; + this._inflate.on("error", inflateOnError); + this._inflate.on("data", inflateOnData); + } + this._inflate[kCallback] = callback; + this._inflate.write(data); + if (fin) this._inflate.write(TRAILER); + this._inflate.flush(() => { + const err2 = this._inflate[kError]; + if (err2) { + this._inflate.close(); + this._inflate = null; + callback(err2); + return; + } + const data2 = bufferUtil.concat( + this._inflate[kBuffers], + this._inflate[kTotalLength] + ); + if (this._inflate._readableState.endEmitted) { + this._inflate.close(); + this._inflate = null; + } else { + this._inflate[kTotalLength] = 0; + this._inflate[kBuffers] = []; + if (fin && this.params[`${endpoint}_no_context_takeover`]) { + this._inflate.reset(); + } + } + callback(null, data2); + }); + } + /** + * Compress data. + * + * @param {(Buffer|String)} data Data to compress + * @param {Boolean} fin Specifies whether or not this is the last fragment + * @param {Function} callback Callback + * @private + */ + _compress(data, fin, callback) { + const endpoint = this._isServer ? "server" : "client"; + if (!this._deflate) { + const key = `${endpoint}_max_window_bits`; + const windowBits = typeof this.params[key] !== "number" ? zlib2.Z_DEFAULT_WINDOWBITS : this.params[key]; + this._deflate = zlib2.createDeflateRaw({ + ...this._options.zlibDeflateOptions, + windowBits + }); + this._deflate[kTotalLength] = 0; + this._deflate[kBuffers] = []; + this._deflate.on("data", deflateOnData); + } + this._deflate[kCallback] = callback; + this._deflate.write(data); + this._deflate.flush(zlib2.Z_SYNC_FLUSH, () => { + if (!this._deflate) { + return; + } + let data2 = bufferUtil.concat( + this._deflate[kBuffers], + this._deflate[kTotalLength] + ); + if (fin) { + data2 = new FastBuffer(data2.buffer, data2.byteOffset, data2.length - 4); + } + this._deflate[kCallback] = null; + this._deflate[kTotalLength] = 0; + this._deflate[kBuffers] = []; + if (fin && this.params[`${endpoint}_no_context_takeover`]) { + this._deflate.reset(); + } + callback(null, data2); + }); + } + }; + module2.exports = PerMessageDeflate; + function deflateOnData(chunk) { + this[kBuffers].push(chunk); + this[kTotalLength] += chunk.length; + } + function inflateOnData(chunk) { + this[kTotalLength] += chunk.length; + if (this[kPerMessageDeflate]._maxPayload < 1 || this[kTotalLength] <= this[kPerMessageDeflate]._maxPayload) { + this[kBuffers].push(chunk); + return; + } + this[kError] = new RangeError("Max payload size exceeded"); + this[kError].code = "WS_ERR_UNSUPPORTED_MESSAGE_LENGTH"; + this[kError][kStatusCode] = 1009; + this.removeListener("data", inflateOnData); + this.reset(); + } + function inflateOnError(err2) { + this[kPerMessageDeflate]._inflate = null; + if (this[kError]) { + this[kCallback](this[kError]); + return; + } + err2[kStatusCode] = 1007; + this[kCallback](err2); + } + } +}); + +// ../node_modules/.pnpm/utf-8-validate@6.0.3/node_modules/utf-8-validate/fallback.js +var require_fallback2 = __commonJS({ + "../node_modules/.pnpm/utf-8-validate@6.0.3/node_modules/utf-8-validate/fallback.js"(exports2, module2) { + "use strict"; + function isValidUTF8(buf) { + const len = buf.length; + let i4 = 0; + while (i4 < len) { + if ((buf[i4] & 128) === 0) { + i4++; + } else if ((buf[i4] & 224) === 192) { + if (i4 + 1 === len || (buf[i4 + 1] & 192) !== 128 || (buf[i4] & 254) === 192) { + return false; + } + i4 += 2; + } else if ((buf[i4] & 240) === 224) { + if (i4 + 2 >= len || (buf[i4 + 1] & 192) !== 128 || (buf[i4 + 2] & 192) !== 128 || buf[i4] === 224 && (buf[i4 + 1] & 224) === 128 || // overlong + buf[i4] === 237 && (buf[i4 + 1] & 224) === 160) { + return false; + } + i4 += 3; + } else if ((buf[i4] & 248) === 240) { + if (i4 + 3 >= len || (buf[i4 + 1] & 192) !== 128 || (buf[i4 + 2] & 192) !== 128 || (buf[i4 + 3] & 192) !== 128 || buf[i4] === 240 && (buf[i4 + 1] & 240) === 128 || // overlong + buf[i4] === 244 && buf[i4 + 1] > 143 || buf[i4] > 244) { + return false; + } + i4 += 4; + } else { + return false; + } + } + return true; + } + module2.exports = isValidUTF8; + } +}); + +// ../node_modules/.pnpm/utf-8-validate@6.0.3/node_modules/utf-8-validate/index.js +var require_utf_8_validate = __commonJS({ + "../node_modules/.pnpm/utf-8-validate@6.0.3/node_modules/utf-8-validate/index.js"(exports2, module2) { + "use strict"; + try { + module2.exports = require_node_gyp_build2()(__dirname); + } catch (e4) { + module2.exports = require_fallback2(); + } + } +}); + +// ../node_modules/.pnpm/ws@8.18.2_bufferutil@4.0.8_utf-8-validate@6.0.3/node_modules/ws/lib/validation.js +var require_validation = __commonJS({ + "../node_modules/.pnpm/ws@8.18.2_bufferutil@4.0.8_utf-8-validate@6.0.3/node_modules/ws/lib/validation.js"(exports2, module2) { + "use strict"; + var { isUtf8 } = require("buffer"); + var { hasBlob } = require_constants2(); + var tokenChars = [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + // 0 - 15 + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + // 16 - 31 + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + // 32 - 47 + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + // 48 - 63 + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + // 64 - 79 + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + // 80 - 95 + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + // 96 - 111 + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 0, + 1, + 0 + // 112 - 127 + ]; + function isValidStatusCode(code) { + return code >= 1e3 && code <= 1014 && code !== 1004 && code !== 1005 && code !== 1006 || code >= 3e3 && code <= 4999; + } + function _isValidUTF8(buf) { + const len = buf.length; + let i4 = 0; + while (i4 < len) { + if ((buf[i4] & 128) === 0) { + i4++; + } else if ((buf[i4] & 224) === 192) { + if (i4 + 1 === len || (buf[i4 + 1] & 192) !== 128 || (buf[i4] & 254) === 192) { + return false; + } + i4 += 2; + } else if ((buf[i4] & 240) === 224) { + if (i4 + 2 >= len || (buf[i4 + 1] & 192) !== 128 || (buf[i4 + 2] & 192) !== 128 || buf[i4] === 224 && (buf[i4 + 1] & 224) === 128 || // Overlong + buf[i4] === 237 && (buf[i4 + 1] & 224) === 160) { + return false; + } + i4 += 3; + } else if ((buf[i4] & 248) === 240) { + if (i4 + 3 >= len || (buf[i4 + 1] & 192) !== 128 || (buf[i4 + 2] & 192) !== 128 || (buf[i4 + 3] & 192) !== 128 || buf[i4] === 240 && (buf[i4 + 1] & 240) === 128 || // Overlong + buf[i4] === 244 && buf[i4 + 1] > 143 || buf[i4] > 244) { + return false; + } + i4 += 4; + } else { + return false; + } + } + return true; + } + function isBlob3(value) { + return hasBlob && typeof value === "object" && typeof value.arrayBuffer === "function" && typeof value.type === "string" && typeof value.stream === "function" && (value[Symbol.toStringTag] === "Blob" || value[Symbol.toStringTag] === "File"); + } + module2.exports = { + isBlob: isBlob3, + isValidStatusCode, + isValidUTF8: _isValidUTF8, + tokenChars + }; + if (isUtf8) { + module2.exports.isValidUTF8 = function(buf) { + return buf.length < 24 ? _isValidUTF8(buf) : isUtf8(buf); + }; + } else if (!process.env.WS_NO_UTF_8_VALIDATE) { + try { + const isValidUTF8 = require_utf_8_validate(); + module2.exports.isValidUTF8 = function(buf) { + return buf.length < 32 ? _isValidUTF8(buf) : isValidUTF8(buf); + }; + } catch (e4) { + } + } + } +}); + +// ../node_modules/.pnpm/ws@8.18.2_bufferutil@4.0.8_utf-8-validate@6.0.3/node_modules/ws/lib/receiver.js +var require_receiver = __commonJS({ + "../node_modules/.pnpm/ws@8.18.2_bufferutil@4.0.8_utf-8-validate@6.0.3/node_modules/ws/lib/receiver.js"(exports2, module2) { + "use strict"; + var { Writable } = require("stream"); + var PerMessageDeflate = require_permessage_deflate(); + var { + BINARY_TYPES, + EMPTY_BUFFER, + kStatusCode, + kWebSocket + } = require_constants2(); + var { concat, toArrayBuffer, unmask } = require_buffer_util(); + var { isValidStatusCode, isValidUTF8 } = require_validation(); + var FastBuffer = Buffer[Symbol.species]; + var GET_INFO = 0; + var GET_PAYLOAD_LENGTH_16 = 1; + var GET_PAYLOAD_LENGTH_64 = 2; + var GET_MASK = 3; + var GET_DATA = 4; + var INFLATING = 5; + var DEFER_EVENT = 6; + var Receiver2 = class extends Writable { + /** + * Creates a Receiver instance. + * + * @param {Object} [options] Options object + * @param {Boolean} [options.allowSynchronousEvents=true] Specifies whether + * any of the `'message'`, `'ping'`, and `'pong'` events can be emitted + * multiple times in the same tick + * @param {String} [options.binaryType=nodebuffer] The type for binary data + * @param {Object} [options.extensions] An object containing the negotiated + * extensions + * @param {Boolean} [options.isServer=false] Specifies whether to operate in + * client or server mode + * @param {Number} [options.maxPayload=0] The maximum allowed message length + * @param {Boolean} [options.skipUTF8Validation=false] Specifies whether or + * not to skip UTF-8 validation for text and close messages + */ + constructor(options = {}) { + super(); + this._allowSynchronousEvents = options.allowSynchronousEvents !== void 0 ? options.allowSynchronousEvents : true; + this._binaryType = options.binaryType || BINARY_TYPES[0]; + this._extensions = options.extensions || {}; + this._isServer = !!options.isServer; + this._maxPayload = options.maxPayload | 0; + this._skipUTF8Validation = !!options.skipUTF8Validation; + this[kWebSocket] = void 0; + this._bufferedBytes = 0; + this._buffers = []; + this._compressed = false; + this._payloadLength = 0; + this._mask = void 0; + this._fragmented = 0; + this._masked = false; + this._fin = false; + this._opcode = 0; + this._totalPayloadLength = 0; + this._messageLength = 0; + this._fragments = []; + this._errored = false; + this._loop = false; + this._state = GET_INFO; + } + /** + * Implements `Writable.prototype._write()`. + * + * @param {Buffer} chunk The chunk of data to write + * @param {String} encoding The character encoding of `chunk` + * @param {Function} cb Callback + * @private + */ + _write(chunk, encoding, cb) { + if (this._opcode === 8 && this._state == GET_INFO) return cb(); + this._bufferedBytes += chunk.length; + this._buffers.push(chunk); + this.startLoop(cb); + } + /** + * Consumes `n` bytes from the buffered data. + * + * @param {Number} n The number of bytes to consume + * @return {Buffer} The consumed bytes + * @private + */ + consume(n3) { + this._bufferedBytes -= n3; + if (n3 === this._buffers[0].length) return this._buffers.shift(); + if (n3 < this._buffers[0].length) { + const buf = this._buffers[0]; + this._buffers[0] = new FastBuffer( + buf.buffer, + buf.byteOffset + n3, + buf.length - n3 + ); + return new FastBuffer(buf.buffer, buf.byteOffset, n3); + } + const dst = Buffer.allocUnsafe(n3); + do { + const buf = this._buffers[0]; + const offset = dst.length - n3; + if (n3 >= buf.length) { + dst.set(this._buffers.shift(), offset); + } else { + dst.set(new Uint8Array(buf.buffer, buf.byteOffset, n3), offset); + this._buffers[0] = new FastBuffer( + buf.buffer, + buf.byteOffset + n3, + buf.length - n3 + ); + } + n3 -= buf.length; + } while (n3 > 0); + return dst; + } + /** + * Starts the parsing loop. + * + * @param {Function} cb Callback + * @private + */ + startLoop(cb) { + this._loop = true; + do { + switch (this._state) { + case GET_INFO: + this.getInfo(cb); + break; + case GET_PAYLOAD_LENGTH_16: + this.getPayloadLength16(cb); + break; + case GET_PAYLOAD_LENGTH_64: + this.getPayloadLength64(cb); + break; + case GET_MASK: + this.getMask(); + break; + case GET_DATA: + this.getData(cb); + break; + case INFLATING: + case DEFER_EVENT: + this._loop = false; + return; + } + } while (this._loop); + if (!this._errored) cb(); + } + /** + * Reads the first two bytes of a frame. + * + * @param {Function} cb Callback + * @private + */ + getInfo(cb) { + if (this._bufferedBytes < 2) { + this._loop = false; + return; + } + const buf = this.consume(2); + if ((buf[0] & 48) !== 0) { + const error2 = this.createError( + RangeError, + "RSV2 and RSV3 must be clear", + true, + 1002, + "WS_ERR_UNEXPECTED_RSV_2_3" + ); + cb(error2); + return; + } + const compressed = (buf[0] & 64) === 64; + if (compressed && !this._extensions[PerMessageDeflate.extensionName]) { + const error2 = this.createError( + RangeError, + "RSV1 must be clear", + true, + 1002, + "WS_ERR_UNEXPECTED_RSV_1" + ); + cb(error2); + return; + } + this._fin = (buf[0] & 128) === 128; + this._opcode = buf[0] & 15; + this._payloadLength = buf[1] & 127; + if (this._opcode === 0) { + if (compressed) { + const error2 = this.createError( + RangeError, + "RSV1 must be clear", + true, + 1002, + "WS_ERR_UNEXPECTED_RSV_1" + ); + cb(error2); + return; + } + if (!this._fragmented) { + const error2 = this.createError( + RangeError, + "invalid opcode 0", + true, + 1002, + "WS_ERR_INVALID_OPCODE" + ); + cb(error2); + return; + } + this._opcode = this._fragmented; + } else if (this._opcode === 1 || this._opcode === 2) { + if (this._fragmented) { + const error2 = this.createError( + RangeError, + `invalid opcode ${this._opcode}`, + true, + 1002, + "WS_ERR_INVALID_OPCODE" + ); + cb(error2); + return; + } + this._compressed = compressed; + } else if (this._opcode > 7 && this._opcode < 11) { + if (!this._fin) { + const error2 = this.createError( + RangeError, + "FIN must be set", + true, + 1002, + "WS_ERR_EXPECTED_FIN" + ); + cb(error2); + return; + } + if (compressed) { + const error2 = this.createError( + RangeError, + "RSV1 must be clear", + true, + 1002, + "WS_ERR_UNEXPECTED_RSV_1" + ); + cb(error2); + return; + } + if (this._payloadLength > 125 || this._opcode === 8 && this._payloadLength === 1) { + const error2 = this.createError( + RangeError, + `invalid payload length ${this._payloadLength}`, + true, + 1002, + "WS_ERR_INVALID_CONTROL_PAYLOAD_LENGTH" + ); + cb(error2); + return; + } + } else { + const error2 = this.createError( + RangeError, + `invalid opcode ${this._opcode}`, + true, + 1002, + "WS_ERR_INVALID_OPCODE" + ); + cb(error2); + return; + } + if (!this._fin && !this._fragmented) this._fragmented = this._opcode; + this._masked = (buf[1] & 128) === 128; + if (this._isServer) { + if (!this._masked) { + const error2 = this.createError( + RangeError, + "MASK must be set", + true, + 1002, + "WS_ERR_EXPECTED_MASK" + ); + cb(error2); + return; + } + } else if (this._masked) { + const error2 = this.createError( + RangeError, + "MASK must be clear", + true, + 1002, + "WS_ERR_UNEXPECTED_MASK" + ); + cb(error2); + return; + } + if (this._payloadLength === 126) this._state = GET_PAYLOAD_LENGTH_16; + else if (this._payloadLength === 127) this._state = GET_PAYLOAD_LENGTH_64; + else this.haveLength(cb); + } + /** + * Gets extended payload length (7+16). + * + * @param {Function} cb Callback + * @private + */ + getPayloadLength16(cb) { + if (this._bufferedBytes < 2) { + this._loop = false; + return; + } + this._payloadLength = this.consume(2).readUInt16BE(0); + this.haveLength(cb); + } + /** + * Gets extended payload length (7+64). + * + * @param {Function} cb Callback + * @private + */ + getPayloadLength64(cb) { + if (this._bufferedBytes < 8) { + this._loop = false; + return; + } + const buf = this.consume(8); + const num = buf.readUInt32BE(0); + if (num > Math.pow(2, 53 - 32) - 1) { + const error2 = this.createError( + RangeError, + "Unsupported WebSocket frame: payload length > 2^53 - 1", + false, + 1009, + "WS_ERR_UNSUPPORTED_DATA_PAYLOAD_LENGTH" + ); + cb(error2); + return; + } + this._payloadLength = num * Math.pow(2, 32) + buf.readUInt32BE(4); + this.haveLength(cb); + } + /** + * Payload length has been read. + * + * @param {Function} cb Callback + * @private + */ + haveLength(cb) { + if (this._payloadLength && this._opcode < 8) { + this._totalPayloadLength += this._payloadLength; + if (this._totalPayloadLength > this._maxPayload && this._maxPayload > 0) { + const error2 = this.createError( + RangeError, + "Max payload size exceeded", + false, + 1009, + "WS_ERR_UNSUPPORTED_MESSAGE_LENGTH" + ); + cb(error2); + return; + } + } + if (this._masked) this._state = GET_MASK; + else this._state = GET_DATA; + } + /** + * Reads mask bytes. + * + * @private + */ + getMask() { + if (this._bufferedBytes < 4) { + this._loop = false; + return; + } + this._mask = this.consume(4); + this._state = GET_DATA; + } + /** + * Reads data bytes. + * + * @param {Function} cb Callback + * @private + */ + getData(cb) { + let data = EMPTY_BUFFER; + if (this._payloadLength) { + if (this._bufferedBytes < this._payloadLength) { + this._loop = false; + return; + } + data = this.consume(this._payloadLength); + if (this._masked && (this._mask[0] | this._mask[1] | this._mask[2] | this._mask[3]) !== 0) { + unmask(data, this._mask); + } + } + if (this._opcode > 7) { + this.controlMessage(data, cb); + return; + } + if (this._compressed) { + this._state = INFLATING; + this.decompress(data, cb); + return; + } + if (data.length) { + this._messageLength = this._totalPayloadLength; + this._fragments.push(data); + } + this.dataMessage(cb); + } + /** + * Decompresses data. + * + * @param {Buffer} data Compressed data + * @param {Function} cb Callback + * @private + */ + decompress(data, cb) { + const perMessageDeflate = this._extensions[PerMessageDeflate.extensionName]; + perMessageDeflate.decompress(data, this._fin, (err2, buf) => { + if (err2) return cb(err2); + if (buf.length) { + this._messageLength += buf.length; + if (this._messageLength > this._maxPayload && this._maxPayload > 0) { + const error2 = this.createError( + RangeError, + "Max payload size exceeded", + false, + 1009, + "WS_ERR_UNSUPPORTED_MESSAGE_LENGTH" + ); + cb(error2); + return; + } + this._fragments.push(buf); + } + this.dataMessage(cb); + if (this._state === GET_INFO) this.startLoop(cb); + }); + } + /** + * Handles a data message. + * + * @param {Function} cb Callback + * @private + */ + dataMessage(cb) { + if (!this._fin) { + this._state = GET_INFO; + return; + } + const messageLength = this._messageLength; + const fragments = this._fragments; + this._totalPayloadLength = 0; + this._messageLength = 0; + this._fragmented = 0; + this._fragments = []; + if (this._opcode === 2) { + let data; + if (this._binaryType === "nodebuffer") { + data = concat(fragments, messageLength); + } else if (this._binaryType === "arraybuffer") { + data = toArrayBuffer(concat(fragments, messageLength)); + } else if (this._binaryType === "blob") { + data = new Blob(fragments); + } else { + data = fragments; + } + if (this._allowSynchronousEvents) { + this.emit("message", data, true); + this._state = GET_INFO; + } else { + this._state = DEFER_EVENT; + setImmediate(() => { + this.emit("message", data, true); + this._state = GET_INFO; + this.startLoop(cb); + }); + } + } else { + const buf = concat(fragments, messageLength); + if (!this._skipUTF8Validation && !isValidUTF8(buf)) { + const error2 = this.createError( + Error, + "invalid UTF-8 sequence", + true, + 1007, + "WS_ERR_INVALID_UTF8" + ); + cb(error2); + return; + } + if (this._state === INFLATING || this._allowSynchronousEvents) { + this.emit("message", buf, false); + this._state = GET_INFO; + } else { + this._state = DEFER_EVENT; + setImmediate(() => { + this.emit("message", buf, false); + this._state = GET_INFO; + this.startLoop(cb); + }); + } + } + } + /** + * Handles a control message. + * + * @param {Buffer} data Data to handle + * @return {(Error|RangeError|undefined)} A possible error + * @private + */ + controlMessage(data, cb) { + if (this._opcode === 8) { + if (data.length === 0) { + this._loop = false; + this.emit("conclude", 1005, EMPTY_BUFFER); + this.end(); + } else { + const code = data.readUInt16BE(0); + if (!isValidStatusCode(code)) { + const error2 = this.createError( + RangeError, + `invalid status code ${code}`, + true, + 1002, + "WS_ERR_INVALID_CLOSE_CODE" + ); + cb(error2); + return; + } + const buf = new FastBuffer( + data.buffer, + data.byteOffset + 2, + data.length - 2 + ); + if (!this._skipUTF8Validation && !isValidUTF8(buf)) { + const error2 = this.createError( + Error, + "invalid UTF-8 sequence", + true, + 1007, + "WS_ERR_INVALID_UTF8" + ); + cb(error2); + return; + } + this._loop = false; + this.emit("conclude", code, buf); + this.end(); + } + this._state = GET_INFO; + return; + } + if (this._allowSynchronousEvents) { + this.emit(this._opcode === 9 ? "ping" : "pong", data); + this._state = GET_INFO; + } else { + this._state = DEFER_EVENT; + setImmediate(() => { + this.emit(this._opcode === 9 ? "ping" : "pong", data); + this._state = GET_INFO; + this.startLoop(cb); + }); + } + } + /** + * Builds an error object. + * + * @param {function(new:Error|RangeError)} ErrorCtor The error constructor + * @param {String} message The error message + * @param {Boolean} prefix Specifies whether or not to add a default prefix to + * `message` + * @param {Number} statusCode The status code + * @param {String} errorCode The exposed error code + * @return {(Error|RangeError)} The error + * @private + */ + createError(ErrorCtor, message, prefix2, statusCode, errorCode) { + this._loop = false; + this._errored = true; + const err2 = new ErrorCtor( + prefix2 ? `Invalid WebSocket frame: ${message}` : message + ); + Error.captureStackTrace(err2, this.createError); + err2.code = errorCode; + err2[kStatusCode] = statusCode; + return err2; + } + }; + module2.exports = Receiver2; + } +}); + +// ../node_modules/.pnpm/ws@8.18.2_bufferutil@4.0.8_utf-8-validate@6.0.3/node_modules/ws/lib/sender.js +var require_sender = __commonJS({ + "../node_modules/.pnpm/ws@8.18.2_bufferutil@4.0.8_utf-8-validate@6.0.3/node_modules/ws/lib/sender.js"(exports2, module2) { + "use strict"; + var { Duplex } = require("stream"); + var { randomFillSync } = require("crypto"); + var PerMessageDeflate = require_permessage_deflate(); + var { EMPTY_BUFFER, kWebSocket, NOOP } = require_constants2(); + var { isBlob: isBlob3, isValidStatusCode } = require_validation(); + var { mask: applyMask, toBuffer } = require_buffer_util(); + var kByteLength = Symbol("kByteLength"); + var maskBuffer = Buffer.alloc(4); + var RANDOM_POOL_SIZE = 8 * 1024; + var randomPool; + var randomPoolPointer = RANDOM_POOL_SIZE; + var DEFAULT = 0; + var DEFLATING = 1; + var GET_BLOB_DATA = 2; + var Sender2 = class _Sender { + /** + * Creates a Sender instance. + * + * @param {Duplex} socket The connection socket + * @param {Object} [extensions] An object containing the negotiated extensions + * @param {Function} [generateMask] The function used to generate the masking + * key + */ + constructor(socket, extensions, generateMask) { + this._extensions = extensions || {}; + if (generateMask) { + this._generateMask = generateMask; + this._maskBuffer = Buffer.alloc(4); + } + this._socket = socket; + this._firstFragment = true; + this._compress = false; + this._bufferedBytes = 0; + this._queue = []; + this._state = DEFAULT; + this.onerror = NOOP; + this[kWebSocket] = void 0; + } + /** + * Frames a piece of data according to the HyBi WebSocket protocol. + * + * @param {(Buffer|String)} data The data to frame + * @param {Object} options Options object + * @param {Boolean} [options.fin=false] Specifies whether or not to set the + * FIN bit + * @param {Function} [options.generateMask] The function used to generate the + * masking key + * @param {Boolean} [options.mask=false] Specifies whether or not to mask + * `data` + * @param {Buffer} [options.maskBuffer] The buffer used to store the masking + * key + * @param {Number} options.opcode The opcode + * @param {Boolean} [options.readOnly=false] Specifies whether `data` can be + * modified + * @param {Boolean} [options.rsv1=false] Specifies whether or not to set the + * RSV1 bit + * @return {(Buffer|String)[]} The framed data + * @public + */ + static frame(data, options) { + let mask; + let merge = false; + let offset = 2; + let skipMasking = false; + if (options.mask) { + mask = options.maskBuffer || maskBuffer; + if (options.generateMask) { + options.generateMask(mask); + } else { + if (randomPoolPointer === RANDOM_POOL_SIZE) { + if (randomPool === void 0) { + randomPool = Buffer.alloc(RANDOM_POOL_SIZE); + } + randomFillSync(randomPool, 0, RANDOM_POOL_SIZE); + randomPoolPointer = 0; + } + mask[0] = randomPool[randomPoolPointer++]; + mask[1] = randomPool[randomPoolPointer++]; + mask[2] = randomPool[randomPoolPointer++]; + mask[3] = randomPool[randomPoolPointer++]; + } + skipMasking = (mask[0] | mask[1] | mask[2] | mask[3]) === 0; + offset = 6; + } + let dataLength; + if (typeof data === "string") { + if ((!options.mask || skipMasking) && options[kByteLength] !== void 0) { + dataLength = options[kByteLength]; + } else { + data = Buffer.from(data); + dataLength = data.length; + } + } else { + dataLength = data.length; + merge = options.mask && options.readOnly && !skipMasking; + } + let payloadLength = dataLength; + if (dataLength >= 65536) { + offset += 8; + payloadLength = 127; + } else if (dataLength > 125) { + offset += 2; + payloadLength = 126; + } + const target = Buffer.allocUnsafe(merge ? dataLength + offset : offset); + target[0] = options.fin ? options.opcode | 128 : options.opcode; + if (options.rsv1) target[0] |= 64; + target[1] = payloadLength; + if (payloadLength === 126) { + target.writeUInt16BE(dataLength, 2); + } else if (payloadLength === 127) { + target[2] = target[3] = 0; + target.writeUIntBE(dataLength, 4, 6); + } + if (!options.mask) return [target, data]; + target[1] |= 128; + target[offset - 4] = mask[0]; + target[offset - 3] = mask[1]; + target[offset - 2] = mask[2]; + target[offset - 1] = mask[3]; + if (skipMasking) return [target, data]; + if (merge) { + applyMask(data, mask, target, offset, dataLength); + return [target]; + } + applyMask(data, mask, data, 0, dataLength); + return [target, data]; + } + /** + * Sends a close message to the other peer. + * + * @param {Number} [code] The status code component of the body + * @param {(String|Buffer)} [data] The message component of the body + * @param {Boolean} [mask=false] Specifies whether or not to mask the message + * @param {Function} [cb] Callback + * @public + */ + close(code, data, mask, cb) { + let buf; + if (code === void 0) { + buf = EMPTY_BUFFER; + } else if (typeof code !== "number" || !isValidStatusCode(code)) { + throw new TypeError("First argument must be a valid error code number"); + } else if (data === void 0 || !data.length) { + buf = Buffer.allocUnsafe(2); + buf.writeUInt16BE(code, 0); + } else { + const length = Buffer.byteLength(data); + if (length > 123) { + throw new RangeError("The message must not be greater than 123 bytes"); + } + buf = Buffer.allocUnsafe(2 + length); + buf.writeUInt16BE(code, 0); + if (typeof data === "string") { + buf.write(data, 2); + } else { + buf.set(data, 2); + } + } + const options = { + [kByteLength]: buf.length, + fin: true, + generateMask: this._generateMask, + mask, + maskBuffer: this._maskBuffer, + opcode: 8, + readOnly: false, + rsv1: false + }; + if (this._state !== DEFAULT) { + this.enqueue([this.dispatch, buf, false, options, cb]); + } else { + this.sendFrame(_Sender.frame(buf, options), cb); + } + } + /** + * Sends a ping message to the other peer. + * + * @param {*} data The message to send + * @param {Boolean} [mask=false] Specifies whether or not to mask `data` + * @param {Function} [cb] Callback + * @public + */ + ping(data, mask, cb) { + let byteLength; + let readOnly; + if (typeof data === "string") { + byteLength = Buffer.byteLength(data); + readOnly = false; + } else if (isBlob3(data)) { + byteLength = data.size; + readOnly = false; + } else { + data = toBuffer(data); + byteLength = data.length; + readOnly = toBuffer.readOnly; + } + if (byteLength > 125) { + throw new RangeError("The data size must not be greater than 125 bytes"); + } + const options = { + [kByteLength]: byteLength, + fin: true, + generateMask: this._generateMask, + mask, + maskBuffer: this._maskBuffer, + opcode: 9, + readOnly, + rsv1: false + }; + if (isBlob3(data)) { + if (this._state !== DEFAULT) { + this.enqueue([this.getBlobData, data, false, options, cb]); + } else { + this.getBlobData(data, false, options, cb); + } + } else if (this._state !== DEFAULT) { + this.enqueue([this.dispatch, data, false, options, cb]); + } else { + this.sendFrame(_Sender.frame(data, options), cb); + } + } + /** + * Sends a pong message to the other peer. + * + * @param {*} data The message to send + * @param {Boolean} [mask=false] Specifies whether or not to mask `data` + * @param {Function} [cb] Callback + * @public + */ + pong(data, mask, cb) { + let byteLength; + let readOnly; + if (typeof data === "string") { + byteLength = Buffer.byteLength(data); + readOnly = false; + } else if (isBlob3(data)) { + byteLength = data.size; + readOnly = false; + } else { + data = toBuffer(data); + byteLength = data.length; + readOnly = toBuffer.readOnly; + } + if (byteLength > 125) { + throw new RangeError("The data size must not be greater than 125 bytes"); + } + const options = { + [kByteLength]: byteLength, + fin: true, + generateMask: this._generateMask, + mask, + maskBuffer: this._maskBuffer, + opcode: 10, + readOnly, + rsv1: false + }; + if (isBlob3(data)) { + if (this._state !== DEFAULT) { + this.enqueue([this.getBlobData, data, false, options, cb]); + } else { + this.getBlobData(data, false, options, cb); + } + } else if (this._state !== DEFAULT) { + this.enqueue([this.dispatch, data, false, options, cb]); + } else { + this.sendFrame(_Sender.frame(data, options), cb); + } + } + /** + * Sends a data message to the other peer. + * + * @param {*} data The message to send + * @param {Object} options Options object + * @param {Boolean} [options.binary=false] Specifies whether `data` is binary + * or text + * @param {Boolean} [options.compress=false] Specifies whether or not to + * compress `data` + * @param {Boolean} [options.fin=false] Specifies whether the fragment is the + * last one + * @param {Boolean} [options.mask=false] Specifies whether or not to mask + * `data` + * @param {Function} [cb] Callback + * @public + */ + send(data, options, cb) { + const perMessageDeflate = this._extensions[PerMessageDeflate.extensionName]; + let opcode = options.binary ? 2 : 1; + let rsv1 = options.compress; + let byteLength; + let readOnly; + if (typeof data === "string") { + byteLength = Buffer.byteLength(data); + readOnly = false; + } else if (isBlob3(data)) { + byteLength = data.size; + readOnly = false; + } else { + data = toBuffer(data); + byteLength = data.length; + readOnly = toBuffer.readOnly; + } + if (this._firstFragment) { + this._firstFragment = false; + if (rsv1 && perMessageDeflate && perMessageDeflate.params[perMessageDeflate._isServer ? "server_no_context_takeover" : "client_no_context_takeover"]) { + rsv1 = byteLength >= perMessageDeflate._threshold; + } + this._compress = rsv1; + } else { + rsv1 = false; + opcode = 0; + } + if (options.fin) this._firstFragment = true; + const opts = { + [kByteLength]: byteLength, + fin: options.fin, + generateMask: this._generateMask, + mask: options.mask, + maskBuffer: this._maskBuffer, + opcode, + readOnly, + rsv1 + }; + if (isBlob3(data)) { + if (this._state !== DEFAULT) { + this.enqueue([this.getBlobData, data, this._compress, opts, cb]); + } else { + this.getBlobData(data, this._compress, opts, cb); + } + } else if (this._state !== DEFAULT) { + this.enqueue([this.dispatch, data, this._compress, opts, cb]); + } else { + this.dispatch(data, this._compress, opts, cb); + } + } + /** + * Gets the contents of a blob as binary data. + * + * @param {Blob} blob The blob + * @param {Boolean} [compress=false] Specifies whether or not to compress + * the data + * @param {Object} options Options object + * @param {Boolean} [options.fin=false] Specifies whether or not to set the + * FIN bit + * @param {Function} [options.generateMask] The function used to generate the + * masking key + * @param {Boolean} [options.mask=false] Specifies whether or not to mask + * `data` + * @param {Buffer} [options.maskBuffer] The buffer used to store the masking + * key + * @param {Number} options.opcode The opcode + * @param {Boolean} [options.readOnly=false] Specifies whether `data` can be + * modified + * @param {Boolean} [options.rsv1=false] Specifies whether or not to set the + * RSV1 bit + * @param {Function} [cb] Callback + * @private + */ + getBlobData(blob, compress2, options, cb) { + this._bufferedBytes += options[kByteLength]; + this._state = GET_BLOB_DATA; + blob.arrayBuffer().then((arrayBuffer) => { + if (this._socket.destroyed) { + const err2 = new Error( + "The socket was closed while the blob was being read" + ); + process.nextTick(callCallbacks, this, err2, cb); + return; + } + this._bufferedBytes -= options[kByteLength]; + const data = toBuffer(arrayBuffer); + if (!compress2) { + this._state = DEFAULT; + this.sendFrame(_Sender.frame(data, options), cb); + this.dequeue(); + } else { + this.dispatch(data, compress2, options, cb); + } + }).catch((err2) => { + process.nextTick(onError, this, err2, cb); + }); + } + /** + * Dispatches a message. + * + * @param {(Buffer|String)} data The message to send + * @param {Boolean} [compress=false] Specifies whether or not to compress + * `data` + * @param {Object} options Options object + * @param {Boolean} [options.fin=false] Specifies whether or not to set the + * FIN bit + * @param {Function} [options.generateMask] The function used to generate the + * masking key + * @param {Boolean} [options.mask=false] Specifies whether or not to mask + * `data` + * @param {Buffer} [options.maskBuffer] The buffer used to store the masking + * key + * @param {Number} options.opcode The opcode + * @param {Boolean} [options.readOnly=false] Specifies whether `data` can be + * modified + * @param {Boolean} [options.rsv1=false] Specifies whether or not to set the + * RSV1 bit + * @param {Function} [cb] Callback + * @private + */ + dispatch(data, compress2, options, cb) { + if (!compress2) { + this.sendFrame(_Sender.frame(data, options), cb); + return; + } + const perMessageDeflate = this._extensions[PerMessageDeflate.extensionName]; + this._bufferedBytes += options[kByteLength]; + this._state = DEFLATING; + perMessageDeflate.compress(data, options.fin, (_3, buf) => { + if (this._socket.destroyed) { + const err2 = new Error( + "The socket was closed while data was being compressed" + ); + callCallbacks(this, err2, cb); + return; + } + this._bufferedBytes -= options[kByteLength]; + this._state = DEFAULT; + options.readOnly = false; + this.sendFrame(_Sender.frame(buf, options), cb); + this.dequeue(); + }); + } + /** + * Executes queued send operations. + * + * @private + */ + dequeue() { + while (this._state === DEFAULT && this._queue.length) { + const params = this._queue.shift(); + this._bufferedBytes -= params[3][kByteLength]; + Reflect.apply(params[0], this, params.slice(1)); + } + } + /** + * Enqueues a send operation. + * + * @param {Array} params Send operation parameters. + * @private + */ + enqueue(params) { + this._bufferedBytes += params[3][kByteLength]; + this._queue.push(params); + } + /** + * Sends a frame. + * + * @param {(Buffer | String)[]} list The frame to send + * @param {Function} [cb] Callback + * @private + */ + sendFrame(list, cb) { + if (list.length === 2) { + this._socket.cork(); + this._socket.write(list[0]); + this._socket.write(list[1], cb); + this._socket.uncork(); + } else { + this._socket.write(list[0], cb); + } + } + }; + module2.exports = Sender2; + function callCallbacks(sender, err2, cb) { + if (typeof cb === "function") cb(err2); + for (let i4 = 0; i4 < sender._queue.length; i4++) { + const params = sender._queue[i4]; + const callback = params[params.length - 1]; + if (typeof callback === "function") callback(err2); + } + } + function onError(sender, err2, cb) { + callCallbacks(sender, err2, cb); + sender.onerror(err2); + } + } +}); + +// ../node_modules/.pnpm/ws@8.18.2_bufferutil@4.0.8_utf-8-validate@6.0.3/node_modules/ws/lib/event-target.js +var require_event_target = __commonJS({ + "../node_modules/.pnpm/ws@8.18.2_bufferutil@4.0.8_utf-8-validate@6.0.3/node_modules/ws/lib/event-target.js"(exports2, module2) { + "use strict"; + var { kForOnEventAttribute, kListener } = require_constants2(); + var kCode = Symbol("kCode"); + var kData = Symbol("kData"); + var kError = Symbol("kError"); + var kMessage = Symbol("kMessage"); + var kReason = Symbol("kReason"); + var kTarget = Symbol("kTarget"); + var kType = Symbol("kType"); + var kWasClean = Symbol("kWasClean"); + var Event = class { + /** + * Create a new `Event`. + * + * @param {String} type The name of the event + * @throws {TypeError} If the `type` argument is not specified + */ + constructor(type) { + this[kTarget] = null; + this[kType] = type; + } + /** + * @type {*} + */ + get target() { + return this[kTarget]; + } + /** + * @type {String} + */ + get type() { + return this[kType]; + } + }; + Object.defineProperty(Event.prototype, "target", { enumerable: true }); + Object.defineProperty(Event.prototype, "type", { enumerable: true }); + var CloseEvent = class extends Event { + /** + * Create a new `CloseEvent`. + * + * @param {String} type The name of the event + * @param {Object} [options] A dictionary object that allows for setting + * attributes via object members of the same name + * @param {Number} [options.code=0] The status code explaining why the + * connection was closed + * @param {String} [options.reason=''] A human-readable string explaining why + * the connection was closed + * @param {Boolean} [options.wasClean=false] Indicates whether or not the + * connection was cleanly closed + */ + constructor(type, options = {}) { + super(type); + this[kCode] = options.code === void 0 ? 0 : options.code; + this[kReason] = options.reason === void 0 ? "" : options.reason; + this[kWasClean] = options.wasClean === void 0 ? false : options.wasClean; + } + /** + * @type {Number} + */ + get code() { + return this[kCode]; + } + /** + * @type {String} + */ + get reason() { + return this[kReason]; + } + /** + * @type {Boolean} + */ + get wasClean() { + return this[kWasClean]; + } + }; + Object.defineProperty(CloseEvent.prototype, "code", { enumerable: true }); + Object.defineProperty(CloseEvent.prototype, "reason", { enumerable: true }); + Object.defineProperty(CloseEvent.prototype, "wasClean", { enumerable: true }); + var ErrorEvent = class extends Event { + /** + * Create a new `ErrorEvent`. + * + * @param {String} type The name of the event + * @param {Object} [options] A dictionary object that allows for setting + * attributes via object members of the same name + * @param {*} [options.error=null] The error that generated this event + * @param {String} [options.message=''] The error message + */ + constructor(type, options = {}) { + super(type); + this[kError] = options.error === void 0 ? null : options.error; + this[kMessage] = options.message === void 0 ? "" : options.message; + } + /** + * @type {*} + */ + get error() { + return this[kError]; + } + /** + * @type {String} + */ + get message() { + return this[kMessage]; + } + }; + Object.defineProperty(ErrorEvent.prototype, "error", { enumerable: true }); + Object.defineProperty(ErrorEvent.prototype, "message", { enumerable: true }); + var MessageEvent = class extends Event { + /** + * Create a new `MessageEvent`. + * + * @param {String} type The name of the event + * @param {Object} [options] A dictionary object that allows for setting + * attributes via object members of the same name + * @param {*} [options.data=null] The message content + */ + constructor(type, options = {}) { + super(type); + this[kData] = options.data === void 0 ? null : options.data; + } + /** + * @type {*} + */ + get data() { + return this[kData]; + } + }; + Object.defineProperty(MessageEvent.prototype, "data", { enumerable: true }); + var EventTarget = { + /** + * Register an event listener. + * + * @param {String} type A string representing the event type to listen for + * @param {(Function|Object)} handler The listener to add + * @param {Object} [options] An options object specifies characteristics about + * the event listener + * @param {Boolean} [options.once=false] A `Boolean` indicating that the + * listener should be invoked at most once after being added. If `true`, + * the listener would be automatically removed when invoked. + * @public + */ + addEventListener(type, handler, options = {}) { + for (const listener of this.listeners(type)) { + if (!options[kForOnEventAttribute] && listener[kListener] === handler && !listener[kForOnEventAttribute]) { + return; + } + } + let wrapper; + if (type === "message") { + wrapper = function onMessage(data, isBinary) { + const event = new MessageEvent("message", { + data: isBinary ? data : data.toString() + }); + event[kTarget] = this; + callListener(handler, this, event); + }; + } else if (type === "close") { + wrapper = function onClose(code, message) { + const event = new CloseEvent("close", { + code, + reason: message.toString(), + wasClean: this._closeFrameReceived && this._closeFrameSent + }); + event[kTarget] = this; + callListener(handler, this, event); + }; + } else if (type === "error") { + wrapper = function onError(error2) { + const event = new ErrorEvent("error", { + error: error2, + message: error2.message + }); + event[kTarget] = this; + callListener(handler, this, event); + }; + } else if (type === "open") { + wrapper = function onOpen() { + const event = new Event("open"); + event[kTarget] = this; + callListener(handler, this, event); + }; + } else { + return; + } + wrapper[kForOnEventAttribute] = !!options[kForOnEventAttribute]; + wrapper[kListener] = handler; + if (options.once) { + this.once(type, wrapper); + } else { + this.on(type, wrapper); + } + }, + /** + * Remove an event listener. + * + * @param {String} type A string representing the event type to remove + * @param {(Function|Object)} handler The listener to remove + * @public + */ + removeEventListener(type, handler) { + for (const listener of this.listeners(type)) { + if (listener[kListener] === handler && !listener[kForOnEventAttribute]) { + this.removeListener(type, listener); + break; + } + } + } + }; + module2.exports = { + CloseEvent, + ErrorEvent, + Event, + EventTarget, + MessageEvent + }; + function callListener(listener, thisArg, event) { + if (typeof listener === "object" && listener.handleEvent) { + listener.handleEvent.call(listener, event); + } else { + listener.call(thisArg, event); + } + } + } +}); + +// ../node_modules/.pnpm/ws@8.18.2_bufferutil@4.0.8_utf-8-validate@6.0.3/node_modules/ws/lib/extension.js +var require_extension = __commonJS({ + "../node_modules/.pnpm/ws@8.18.2_bufferutil@4.0.8_utf-8-validate@6.0.3/node_modules/ws/lib/extension.js"(exports2, module2) { + "use strict"; + var { tokenChars } = require_validation(); + function push2(dest, name, elem) { + if (dest[name] === void 0) dest[name] = [elem]; + else dest[name].push(elem); + } + function parse4(header) { + const offers = /* @__PURE__ */ Object.create(null); + let params = /* @__PURE__ */ Object.create(null); + let mustUnescape = false; + let isEscaping = false; + let inQuotes = false; + let extensionName; + let paramName; + let start = -1; + let code = -1; + let end = -1; + let i4 = 0; + for (; i4 < header.length; i4++) { + code = header.charCodeAt(i4); + if (extensionName === void 0) { + if (end === -1 && tokenChars[code] === 1) { + if (start === -1) start = i4; + } else if (i4 !== 0 && (code === 32 || code === 9)) { + if (end === -1 && start !== -1) end = i4; + } else if (code === 59 || code === 44) { + if (start === -1) { + throw new SyntaxError(`Unexpected character at index ${i4}`); + } + if (end === -1) end = i4; + const name = header.slice(start, end); + if (code === 44) { + push2(offers, name, params); + params = /* @__PURE__ */ Object.create(null); + } else { + extensionName = name; + } + start = end = -1; + } else { + throw new SyntaxError(`Unexpected character at index ${i4}`); + } + } else if (paramName === void 0) { + if (end === -1 && tokenChars[code] === 1) { + if (start === -1) start = i4; + } else if (code === 32 || code === 9) { + if (end === -1 && start !== -1) end = i4; + } else if (code === 59 || code === 44) { + if (start === -1) { + throw new SyntaxError(`Unexpected character at index ${i4}`); + } + if (end === -1) end = i4; + push2(params, header.slice(start, end), true); + if (code === 44) { + push2(offers, extensionName, params); + params = /* @__PURE__ */ Object.create(null); + extensionName = void 0; + } + start = end = -1; + } else if (code === 61 && start !== -1 && end === -1) { + paramName = header.slice(start, i4); + start = end = -1; + } else { + throw new SyntaxError(`Unexpected character at index ${i4}`); + } + } else { + if (isEscaping) { + if (tokenChars[code] !== 1) { + throw new SyntaxError(`Unexpected character at index ${i4}`); + } + if (start === -1) start = i4; + else if (!mustUnescape) mustUnescape = true; + isEscaping = false; + } else if (inQuotes) { + if (tokenChars[code] === 1) { + if (start === -1) start = i4; + } else if (code === 34 && start !== -1) { + inQuotes = false; + end = i4; + } else if (code === 92) { + isEscaping = true; + } else { + throw new SyntaxError(`Unexpected character at index ${i4}`); + } + } else if (code === 34 && header.charCodeAt(i4 - 1) === 61) { + inQuotes = true; + } else if (end === -1 && tokenChars[code] === 1) { + if (start === -1) start = i4; + } else if (start !== -1 && (code === 32 || code === 9)) { + if (end === -1) end = i4; + } else if (code === 59 || code === 44) { + if (start === -1) { + throw new SyntaxError(`Unexpected character at index ${i4}`); + } + if (end === -1) end = i4; + let value = header.slice(start, end); + if (mustUnescape) { + value = value.replace(/\\/g, ""); + mustUnescape = false; + } + push2(params, paramName, value); + if (code === 44) { + push2(offers, extensionName, params); + params = /* @__PURE__ */ Object.create(null); + extensionName = void 0; + } + paramName = void 0; + start = end = -1; + } else { + throw new SyntaxError(`Unexpected character at index ${i4}`); + } + } + } + if (start === -1 || inQuotes || code === 32 || code === 9) { + throw new SyntaxError("Unexpected end of input"); + } + if (end === -1) end = i4; + const token = header.slice(start, end); + if (extensionName === void 0) { + push2(offers, token, params); + } else { + if (paramName === void 0) { + push2(params, token, true); + } else if (mustUnescape) { + push2(params, paramName, token.replace(/\\/g, "")); + } else { + push2(params, paramName, token); + } + push2(offers, extensionName, params); + } + return offers; + } + function format(extensions) { + return Object.keys(extensions).map((extension) => { + let configurations = extensions[extension]; + if (!Array.isArray(configurations)) configurations = [configurations]; + return configurations.map((params) => { + return [extension].concat( + Object.keys(params).map((k3) => { + let values = params[k3]; + if (!Array.isArray(values)) values = [values]; + return values.map((v6) => v6 === true ? k3 : `${k3}=${v6}`).join("; "); + }) + ).join("; "); + }).join(", "); + }).join(", "); + } + module2.exports = { format, parse: parse4 }; + } +}); + +// ../node_modules/.pnpm/ws@8.18.2_bufferutil@4.0.8_utf-8-validate@6.0.3/node_modules/ws/lib/websocket.js +var require_websocket = __commonJS({ + "../node_modules/.pnpm/ws@8.18.2_bufferutil@4.0.8_utf-8-validate@6.0.3/node_modules/ws/lib/websocket.js"(exports2, module2) { + "use strict"; + var EventEmitter = require("events"); + var https2 = require("https"); + var http3 = require("http"); + var net = require("net"); + var tls = require("tls"); + var { randomBytes, createHash: createHash2 } = require("crypto"); + var { Duplex, Readable: Readable2 } = require("stream"); + var { URL: URL3 } = require("url"); + var PerMessageDeflate = require_permessage_deflate(); + var Receiver2 = require_receiver(); + var Sender2 = require_sender(); + var { isBlob: isBlob3 } = require_validation(); + var { + BINARY_TYPES, + EMPTY_BUFFER, + GUID, + kForOnEventAttribute, + kListener, + kStatusCode, + kWebSocket, + NOOP + } = require_constants2(); + var { + EventTarget: { addEventListener: addEventListener2, removeEventListener } + } = require_event_target(); + var { format, parse: parse4 } = require_extension(); + var { toBuffer } = require_buffer_util(); + var closeTimeout = 30 * 1e3; + var kAborted = Symbol("kAborted"); + var protocolVersions = [8, 13]; + var readyStates = ["CONNECTING", "OPEN", "CLOSING", "CLOSED"]; + var subprotocolRegex = /^[!#$%&'*+\-.0-9A-Z^_`|a-z~]+$/; + var WebSocket2 = class _WebSocket extends EventEmitter { + /** + * Create a new `WebSocket`. + * + * @param {(String|URL)} address The URL to which to connect + * @param {(String|String[])} [protocols] The subprotocols + * @param {Object} [options] Connection options + */ + constructor(address, protocols, options) { + super(); + this._binaryType = BINARY_TYPES[0]; + this._closeCode = 1006; + this._closeFrameReceived = false; + this._closeFrameSent = false; + this._closeMessage = EMPTY_BUFFER; + this._closeTimer = null; + this._errorEmitted = false; + this._extensions = {}; + this._paused = false; + this._protocol = ""; + this._readyState = _WebSocket.CONNECTING; + this._receiver = null; + this._sender = null; + this._socket = null; + if (address !== null) { + this._bufferedAmount = 0; + this._isServer = false; + this._redirects = 0; + if (protocols === void 0) { + protocols = []; + } else if (!Array.isArray(protocols)) { + if (typeof protocols === "object" && protocols !== null) { + options = protocols; + protocols = []; + } else { + protocols = [protocols]; + } + } + initAsClient(this, address, protocols, options); + } else { + this._autoPong = options.autoPong; + this._isServer = true; + } + } + /** + * For historical reasons, the custom "nodebuffer" type is used by the default + * instead of "blob". + * + * @type {String} + */ + get binaryType() { + return this._binaryType; + } + set binaryType(type) { + if (!BINARY_TYPES.includes(type)) return; + this._binaryType = type; + if (this._receiver) this._receiver._binaryType = type; + } + /** + * @type {Number} + */ + get bufferedAmount() { + if (!this._socket) return this._bufferedAmount; + return this._socket._writableState.length + this._sender._bufferedBytes; + } + /** + * @type {String} + */ + get extensions() { + return Object.keys(this._extensions).join(); + } + /** + * @type {Boolean} + */ + get isPaused() { + return this._paused; + } + /** + * @type {Function} + */ + /* istanbul ignore next */ + get onclose() { + return null; + } + /** + * @type {Function} + */ + /* istanbul ignore next */ + get onerror() { + return null; + } + /** + * @type {Function} + */ + /* istanbul ignore next */ + get onopen() { + return null; + } + /** + * @type {Function} + */ + /* istanbul ignore next */ + get onmessage() { + return null; + } + /** + * @type {String} + */ + get protocol() { + return this._protocol; + } + /** + * @type {Number} + */ + get readyState() { + return this._readyState; + } + /** + * @type {String} + */ + get url() { + return this._url; + } + /** + * Set up the socket and the internal resources. + * + * @param {Duplex} socket The network socket between the server and client + * @param {Buffer} head The first packet of the upgraded stream + * @param {Object} options Options object + * @param {Boolean} [options.allowSynchronousEvents=false] Specifies whether + * any of the `'message'`, `'ping'`, and `'pong'` events can be emitted + * multiple times in the same tick + * @param {Function} [options.generateMask] The function used to generate the + * masking key + * @param {Number} [options.maxPayload=0] The maximum allowed message size + * @param {Boolean} [options.skipUTF8Validation=false] Specifies whether or + * not to skip UTF-8 validation for text and close messages + * @private + */ + setSocket(socket, head, options) { + const receiver = new Receiver2({ + allowSynchronousEvents: options.allowSynchronousEvents, + binaryType: this.binaryType, + extensions: this._extensions, + isServer: this._isServer, + maxPayload: options.maxPayload, + skipUTF8Validation: options.skipUTF8Validation + }); + const sender = new Sender2(socket, this._extensions, options.generateMask); + this._receiver = receiver; + this._sender = sender; + this._socket = socket; + receiver[kWebSocket] = this; + sender[kWebSocket] = this; + socket[kWebSocket] = this; + receiver.on("conclude", receiverOnConclude); + receiver.on("drain", receiverOnDrain); + receiver.on("error", receiverOnError); + receiver.on("message", receiverOnMessage); + receiver.on("ping", receiverOnPing); + receiver.on("pong", receiverOnPong); + sender.onerror = senderOnError; + if (socket.setTimeout) socket.setTimeout(0); + if (socket.setNoDelay) socket.setNoDelay(); + if (head.length > 0) socket.unshift(head); + socket.on("close", socketOnClose); + socket.on("data", socketOnData); + socket.on("end", socketOnEnd); + socket.on("error", socketOnError); + this._readyState = _WebSocket.OPEN; + this.emit("open"); + } + /** + * Emit the `'close'` event. + * + * @private + */ + emitClose() { + if (!this._socket) { + this._readyState = _WebSocket.CLOSED; + this.emit("close", this._closeCode, this._closeMessage); + return; + } + if (this._extensions[PerMessageDeflate.extensionName]) { + this._extensions[PerMessageDeflate.extensionName].cleanup(); + } + this._receiver.removeAllListeners(); + this._readyState = _WebSocket.CLOSED; + this.emit("close", this._closeCode, this._closeMessage); + } + /** + * Start a closing handshake. + * + * +----------+ +-----------+ +----------+ + * - - -|ws.close()|-->|close frame|-->|ws.close()|- - - + * | +----------+ +-----------+ +----------+ | + * +----------+ +-----------+ | + * CLOSING |ws.close()|<--|close frame|<--+-----+ CLOSING + * +----------+ +-----------+ | + * | | | +---+ | + * +------------------------+-->|fin| - - - - + * | +---+ | +---+ + * - - - - -|fin|<---------------------+ + * +---+ + * + * @param {Number} [code] Status code explaining why the connection is closing + * @param {(String|Buffer)} [data] The reason why the connection is + * closing + * @public + */ + close(code, data) { + if (this.readyState === _WebSocket.CLOSED) return; + if (this.readyState === _WebSocket.CONNECTING) { + const msg = "WebSocket was closed before the connection was established"; + abortHandshake(this, this._req, msg); + return; + } + if (this.readyState === _WebSocket.CLOSING) { + if (this._closeFrameSent && (this._closeFrameReceived || this._receiver._writableState.errorEmitted)) { + this._socket.end(); + } + return; + } + this._readyState = _WebSocket.CLOSING; + this._sender.close(code, data, !this._isServer, (err2) => { + if (err2) return; + this._closeFrameSent = true; + if (this._closeFrameReceived || this._receiver._writableState.errorEmitted) { + this._socket.end(); + } + }); + setCloseTimer(this); + } + /** + * Pause the socket. + * + * @public + */ + pause() { + if (this.readyState === _WebSocket.CONNECTING || this.readyState === _WebSocket.CLOSED) { + return; + } + this._paused = true; + this._socket.pause(); + } + /** + * Send a ping. + * + * @param {*} [data] The data to send + * @param {Boolean} [mask] Indicates whether or not to mask `data` + * @param {Function} [cb] Callback which is executed when the ping is sent + * @public + */ + ping(data, mask, cb) { + if (this.readyState === _WebSocket.CONNECTING) { + throw new Error("WebSocket is not open: readyState 0 (CONNECTING)"); + } + if (typeof data === "function") { + cb = data; + data = mask = void 0; + } else if (typeof mask === "function") { + cb = mask; + mask = void 0; + } + if (typeof data === "number") data = data.toString(); + if (this.readyState !== _WebSocket.OPEN) { + sendAfterClose(this, data, cb); + return; + } + if (mask === void 0) mask = !this._isServer; + this._sender.ping(data || EMPTY_BUFFER, mask, cb); + } + /** + * Send a pong. + * + * @param {*} [data] The data to send + * @param {Boolean} [mask] Indicates whether or not to mask `data` + * @param {Function} [cb] Callback which is executed when the pong is sent + * @public + */ + pong(data, mask, cb) { + if (this.readyState === _WebSocket.CONNECTING) { + throw new Error("WebSocket is not open: readyState 0 (CONNECTING)"); + } + if (typeof data === "function") { + cb = data; + data = mask = void 0; + } else if (typeof mask === "function") { + cb = mask; + mask = void 0; + } + if (typeof data === "number") data = data.toString(); + if (this.readyState !== _WebSocket.OPEN) { + sendAfterClose(this, data, cb); + return; + } + if (mask === void 0) mask = !this._isServer; + this._sender.pong(data || EMPTY_BUFFER, mask, cb); + } + /** + * Resume the socket. + * + * @public + */ + resume() { + if (this.readyState === _WebSocket.CONNECTING || this.readyState === _WebSocket.CLOSED) { + return; + } + this._paused = false; + if (!this._receiver._writableState.needDrain) this._socket.resume(); + } + /** + * Send a data message. + * + * @param {*} data The message to send + * @param {Object} [options] Options object + * @param {Boolean} [options.binary] Specifies whether `data` is binary or + * text + * @param {Boolean} [options.compress] Specifies whether or not to compress + * `data` + * @param {Boolean} [options.fin=true] Specifies whether the fragment is the + * last one + * @param {Boolean} [options.mask] Specifies whether or not to mask `data` + * @param {Function} [cb] Callback which is executed when data is written out + * @public + */ + send(data, options, cb) { + if (this.readyState === _WebSocket.CONNECTING) { + throw new Error("WebSocket is not open: readyState 0 (CONNECTING)"); + } + if (typeof options === "function") { + cb = options; + options = {}; + } + if (typeof data === "number") data = data.toString(); + if (this.readyState !== _WebSocket.OPEN) { + sendAfterClose(this, data, cb); + return; + } + const opts = { + binary: typeof data !== "string", + mask: !this._isServer, + compress: true, + fin: true, + ...options + }; + if (!this._extensions[PerMessageDeflate.extensionName]) { + opts.compress = false; + } + this._sender.send(data || EMPTY_BUFFER, opts, cb); + } + /** + * Forcibly close the connection. + * + * @public + */ + terminate() { + if (this.readyState === _WebSocket.CLOSED) return; + if (this.readyState === _WebSocket.CONNECTING) { + const msg = "WebSocket was closed before the connection was established"; + abortHandshake(this, this._req, msg); + return; + } + if (this._socket) { + this._readyState = _WebSocket.CLOSING; + this._socket.destroy(); + } + } + }; + Object.defineProperty(WebSocket2, "CONNECTING", { + enumerable: true, + value: readyStates.indexOf("CONNECTING") + }); + Object.defineProperty(WebSocket2.prototype, "CONNECTING", { + enumerable: true, + value: readyStates.indexOf("CONNECTING") + }); + Object.defineProperty(WebSocket2, "OPEN", { + enumerable: true, + value: readyStates.indexOf("OPEN") + }); + Object.defineProperty(WebSocket2.prototype, "OPEN", { + enumerable: true, + value: readyStates.indexOf("OPEN") + }); + Object.defineProperty(WebSocket2, "CLOSING", { + enumerable: true, + value: readyStates.indexOf("CLOSING") + }); + Object.defineProperty(WebSocket2.prototype, "CLOSING", { + enumerable: true, + value: readyStates.indexOf("CLOSING") + }); + Object.defineProperty(WebSocket2, "CLOSED", { + enumerable: true, + value: readyStates.indexOf("CLOSED") + }); + Object.defineProperty(WebSocket2.prototype, "CLOSED", { + enumerable: true, + value: readyStates.indexOf("CLOSED") + }); + [ + "binaryType", + "bufferedAmount", + "extensions", + "isPaused", + "protocol", + "readyState", + "url" + ].forEach((property) => { + Object.defineProperty(WebSocket2.prototype, property, { enumerable: true }); + }); + ["open", "error", "close", "message"].forEach((method) => { + Object.defineProperty(WebSocket2.prototype, `on${method}`, { + enumerable: true, + get() { + for (const listener of this.listeners(method)) { + if (listener[kForOnEventAttribute]) return listener[kListener]; + } + return null; + }, + set(handler) { + for (const listener of this.listeners(method)) { + if (listener[kForOnEventAttribute]) { + this.removeListener(method, listener); + break; + } + } + if (typeof handler !== "function") return; + this.addEventListener(method, handler, { + [kForOnEventAttribute]: true + }); + } + }); + }); + WebSocket2.prototype.addEventListener = addEventListener2; + WebSocket2.prototype.removeEventListener = removeEventListener; + module2.exports = WebSocket2; + function initAsClient(websocket, address, protocols, options) { + const opts = { + allowSynchronousEvents: true, + autoPong: true, + protocolVersion: protocolVersions[1], + maxPayload: 100 * 1024 * 1024, + skipUTF8Validation: false, + perMessageDeflate: true, + followRedirects: false, + maxRedirects: 10, + ...options, + socketPath: void 0, + hostname: void 0, + protocol: void 0, + timeout: void 0, + method: "GET", + host: void 0, + path: void 0, + port: void 0 + }; + websocket._autoPong = opts.autoPong; + if (!protocolVersions.includes(opts.protocolVersion)) { + throw new RangeError( + `Unsupported protocol version: ${opts.protocolVersion} (supported versions: ${protocolVersions.join(", ")})` + ); + } + let parsedUrl; + if (address instanceof URL3) { + parsedUrl = address; + } else { + try { + parsedUrl = new URL3(address); + } catch (e4) { + throw new SyntaxError(`Invalid URL: ${address}`); + } + } + if (parsedUrl.protocol === "http:") { + parsedUrl.protocol = "ws:"; + } else if (parsedUrl.protocol === "https:") { + parsedUrl.protocol = "wss:"; + } + websocket._url = parsedUrl.href; + const isSecure = parsedUrl.protocol === "wss:"; + const isIpcUrl = parsedUrl.protocol === "ws+unix:"; + let invalidUrlMessage; + if (parsedUrl.protocol !== "ws:" && !isSecure && !isIpcUrl) { + invalidUrlMessage = `The URL's protocol must be one of "ws:", "wss:", "http:", "https:", or "ws+unix:"`; + } else if (isIpcUrl && !parsedUrl.pathname) { + invalidUrlMessage = "The URL's pathname is empty"; + } else if (parsedUrl.hash) { + invalidUrlMessage = "The URL contains a fragment identifier"; + } + if (invalidUrlMessage) { + const err2 = new SyntaxError(invalidUrlMessage); + if (websocket._redirects === 0) { + throw err2; + } else { + emitErrorAndClose(websocket, err2); + return; + } + } + const defaultPort = isSecure ? 443 : 80; + const key = randomBytes(16).toString("base64"); + const request = isSecure ? https2.request : http3.request; + const protocolSet = /* @__PURE__ */ new Set(); + let perMessageDeflate; + opts.createConnection = opts.createConnection || (isSecure ? tlsConnect : netConnect); + opts.defaultPort = opts.defaultPort || defaultPort; + opts.port = parsedUrl.port || defaultPort; + opts.host = parsedUrl.hostname.startsWith("[") ? parsedUrl.hostname.slice(1, -1) : parsedUrl.hostname; + opts.headers = { + ...opts.headers, + "Sec-WebSocket-Version": opts.protocolVersion, + "Sec-WebSocket-Key": key, + Connection: "Upgrade", + Upgrade: "websocket" + }; + opts.path = parsedUrl.pathname + parsedUrl.search; + opts.timeout = opts.handshakeTimeout; + if (opts.perMessageDeflate) { + perMessageDeflate = new PerMessageDeflate( + opts.perMessageDeflate !== true ? opts.perMessageDeflate : {}, + false, + opts.maxPayload + ); + opts.headers["Sec-WebSocket-Extensions"] = format({ + [PerMessageDeflate.extensionName]: perMessageDeflate.offer() + }); + } + if (protocols.length) { + for (const protocol of protocols) { + if (typeof protocol !== "string" || !subprotocolRegex.test(protocol) || protocolSet.has(protocol)) { + throw new SyntaxError( + "An invalid or duplicated subprotocol was specified" + ); + } + protocolSet.add(protocol); + } + opts.headers["Sec-WebSocket-Protocol"] = protocols.join(","); + } + if (opts.origin) { + if (opts.protocolVersion < 13) { + opts.headers["Sec-WebSocket-Origin"] = opts.origin; + } else { + opts.headers.Origin = opts.origin; + } + } + if (parsedUrl.username || parsedUrl.password) { + opts.auth = `${parsedUrl.username}:${parsedUrl.password}`; + } + if (isIpcUrl) { + const parts = opts.path.split(":"); + opts.socketPath = parts[0]; + opts.path = parts[1]; + } + let req; + if (opts.followRedirects) { + if (websocket._redirects === 0) { + websocket._originalIpc = isIpcUrl; + websocket._originalSecure = isSecure; + websocket._originalHostOrSocketPath = isIpcUrl ? opts.socketPath : parsedUrl.host; + const headers = options && options.headers; + options = { ...options, headers: {} }; + if (headers) { + for (const [key2, value] of Object.entries(headers)) { + options.headers[key2.toLowerCase()] = value; + } + } + } else if (websocket.listenerCount("redirect") === 0) { + const isSameHost = isIpcUrl ? websocket._originalIpc ? opts.socketPath === websocket._originalHostOrSocketPath : false : websocket._originalIpc ? false : parsedUrl.host === websocket._originalHostOrSocketPath; + if (!isSameHost || websocket._originalSecure && !isSecure) { + delete opts.headers.authorization; + delete opts.headers.cookie; + if (!isSameHost) delete opts.headers.host; + opts.auth = void 0; + } + } + if (opts.auth && !options.headers.authorization) { + options.headers.authorization = "Basic " + Buffer.from(opts.auth).toString("base64"); + } + req = websocket._req = request(opts); + if (websocket._redirects) { + websocket.emit("redirect", websocket.url, req); + } + } else { + req = websocket._req = request(opts); + } + if (opts.timeout) { + req.on("timeout", () => { + abortHandshake(websocket, req, "Opening handshake has timed out"); + }); + } + req.on("error", (err2) => { + if (req === null || req[kAborted]) return; + req = websocket._req = null; + emitErrorAndClose(websocket, err2); + }); + req.on("response", (res) => { + const location = res.headers.location; + const statusCode = res.statusCode; + if (location && opts.followRedirects && statusCode >= 300 && statusCode < 400) { + if (++websocket._redirects > opts.maxRedirects) { + abortHandshake(websocket, req, "Maximum redirects exceeded"); + return; + } + req.abort(); + let addr; + try { + addr = new URL3(location, address); + } catch (e4) { + const err2 = new SyntaxError(`Invalid URL: ${location}`); + emitErrorAndClose(websocket, err2); + return; + } + initAsClient(websocket, addr, protocols, options); + } else if (!websocket.emit("unexpected-response", req, res)) { + abortHandshake( + websocket, + req, + `Unexpected server response: ${res.statusCode}` + ); + } + }); + req.on("upgrade", (res, socket, head) => { + websocket.emit("upgrade", res); + if (websocket.readyState !== WebSocket2.CONNECTING) return; + req = websocket._req = null; + const upgrade = res.headers.upgrade; + if (upgrade === void 0 || upgrade.toLowerCase() !== "websocket") { + abortHandshake(websocket, socket, "Invalid Upgrade header"); + return; + } + const digest = createHash2("sha1").update(key + GUID).digest("base64"); + if (res.headers["sec-websocket-accept"] !== digest) { + abortHandshake(websocket, socket, "Invalid Sec-WebSocket-Accept header"); + return; + } + const serverProt = res.headers["sec-websocket-protocol"]; + let protError; + if (serverProt !== void 0) { + if (!protocolSet.size) { + protError = "Server sent a subprotocol but none was requested"; + } else if (!protocolSet.has(serverProt)) { + protError = "Server sent an invalid subprotocol"; + } + } else if (protocolSet.size) { + protError = "Server sent no subprotocol"; + } + if (protError) { + abortHandshake(websocket, socket, protError); + return; + } + if (serverProt) websocket._protocol = serverProt; + const secWebSocketExtensions = res.headers["sec-websocket-extensions"]; + if (secWebSocketExtensions !== void 0) { + if (!perMessageDeflate) { + const message = "Server sent a Sec-WebSocket-Extensions header but no extension was requested"; + abortHandshake(websocket, socket, message); + return; + } + let extensions; + try { + extensions = parse4(secWebSocketExtensions); + } catch (err2) { + const message = "Invalid Sec-WebSocket-Extensions header"; + abortHandshake(websocket, socket, message); + return; + } + const extensionNames = Object.keys(extensions); + if (extensionNames.length !== 1 || extensionNames[0] !== PerMessageDeflate.extensionName) { + const message = "Server indicated an extension that was not requested"; + abortHandshake(websocket, socket, message); + return; + } + try { + perMessageDeflate.accept(extensions[PerMessageDeflate.extensionName]); + } catch (err2) { + const message = "Invalid Sec-WebSocket-Extensions header"; + abortHandshake(websocket, socket, message); + return; + } + websocket._extensions[PerMessageDeflate.extensionName] = perMessageDeflate; + } + websocket.setSocket(socket, head, { + allowSynchronousEvents: opts.allowSynchronousEvents, + generateMask: opts.generateMask, + maxPayload: opts.maxPayload, + skipUTF8Validation: opts.skipUTF8Validation + }); + }); + if (opts.finishRequest) { + opts.finishRequest(req, websocket); + } else { + req.end(); + } + } + function emitErrorAndClose(websocket, err2) { + websocket._readyState = WebSocket2.CLOSING; + websocket._errorEmitted = true; + websocket.emit("error", err2); + websocket.emitClose(); + } + function netConnect(options) { + options.path = options.socketPath; + return net.connect(options); + } + function tlsConnect(options) { + options.path = void 0; + if (!options.servername && options.servername !== "") { + options.servername = net.isIP(options.host) ? "" : options.host; + } + return tls.connect(options); + } + function abortHandshake(websocket, stream, message) { + websocket._readyState = WebSocket2.CLOSING; + const err2 = new Error(message); + Error.captureStackTrace(err2, abortHandshake); + if (stream.setHeader) { + stream[kAborted] = true; + stream.abort(); + if (stream.socket && !stream.socket.destroyed) { + stream.socket.destroy(); + } + process.nextTick(emitErrorAndClose, websocket, err2); + } else { + stream.destroy(err2); + stream.once("error", websocket.emit.bind(websocket, "error")); + stream.once("close", websocket.emitClose.bind(websocket)); + } + } + function sendAfterClose(websocket, data, cb) { + if (data) { + const length = isBlob3(data) ? data.size : toBuffer(data).length; + if (websocket._socket) websocket._sender._bufferedBytes += length; + else websocket._bufferedAmount += length; + } + if (cb) { + const err2 = new Error( + `WebSocket is not open: readyState ${websocket.readyState} (${readyStates[websocket.readyState]})` + ); + process.nextTick(cb, err2); + } + } + function receiverOnConclude(code, reason) { + const websocket = this[kWebSocket]; + websocket._closeFrameReceived = true; + websocket._closeMessage = reason; + websocket._closeCode = code; + if (websocket._socket[kWebSocket] === void 0) return; + websocket._socket.removeListener("data", socketOnData); + process.nextTick(resume, websocket._socket); + if (code === 1005) websocket.close(); + else websocket.close(code, reason); + } + function receiverOnDrain() { + const websocket = this[kWebSocket]; + if (!websocket.isPaused) websocket._socket.resume(); + } + function receiverOnError(err2) { + const websocket = this[kWebSocket]; + if (websocket._socket[kWebSocket] !== void 0) { + websocket._socket.removeListener("data", socketOnData); + process.nextTick(resume, websocket._socket); + websocket.close(err2[kStatusCode]); + } + if (!websocket._errorEmitted) { + websocket._errorEmitted = true; + websocket.emit("error", err2); + } + } + function receiverOnFinish() { + this[kWebSocket].emitClose(); + } + function receiverOnMessage(data, isBinary) { + this[kWebSocket].emit("message", data, isBinary); + } + function receiverOnPing(data) { + const websocket = this[kWebSocket]; + if (websocket._autoPong) websocket.pong(data, !this._isServer, NOOP); + websocket.emit("ping", data); + } + function receiverOnPong(data) { + this[kWebSocket].emit("pong", data); + } + function resume(stream) { + stream.resume(); + } + function senderOnError(err2) { + const websocket = this[kWebSocket]; + if (websocket.readyState === WebSocket2.CLOSED) return; + if (websocket.readyState === WebSocket2.OPEN) { + websocket._readyState = WebSocket2.CLOSING; + setCloseTimer(websocket); + } + this._socket.end(); + if (!websocket._errorEmitted) { + websocket._errorEmitted = true; + websocket.emit("error", err2); + } + } + function setCloseTimer(websocket) { + websocket._closeTimer = setTimeout( + websocket._socket.destroy.bind(websocket._socket), + closeTimeout + ); + } + function socketOnClose() { + const websocket = this[kWebSocket]; + this.removeListener("close", socketOnClose); + this.removeListener("data", socketOnData); + this.removeListener("end", socketOnEnd); + websocket._readyState = WebSocket2.CLOSING; + let chunk; + if (!this._readableState.endEmitted && !websocket._closeFrameReceived && !websocket._receiver._writableState.errorEmitted && (chunk = websocket._socket.read()) !== null) { + websocket._receiver.write(chunk); + } + websocket._receiver.end(); + this[kWebSocket] = void 0; + clearTimeout(websocket._closeTimer); + if (websocket._receiver._writableState.finished || websocket._receiver._writableState.errorEmitted) { + websocket.emitClose(); + } else { + websocket._receiver.on("error", receiverOnFinish); + websocket._receiver.on("finish", receiverOnFinish); + } + } + function socketOnData(chunk) { + if (!this[kWebSocket]._receiver.write(chunk)) { + this.pause(); + } + } + function socketOnEnd() { + const websocket = this[kWebSocket]; + websocket._readyState = WebSocket2.CLOSING; + websocket._receiver.end(); + this.end(); + } + function socketOnError() { + const websocket = this[kWebSocket]; + this.removeListener("error", socketOnError); + this.on("error", NOOP); + if (websocket) { + websocket._readyState = WebSocket2.CLOSING; + this.destroy(); + } + } + } +}); + +// ../node_modules/.pnpm/ws@8.18.2_bufferutil@4.0.8_utf-8-validate@6.0.3/node_modules/ws/lib/stream.js +var require_stream = __commonJS({ + "../node_modules/.pnpm/ws@8.18.2_bufferutil@4.0.8_utf-8-validate@6.0.3/node_modules/ws/lib/stream.js"(exports2, module2) { + "use strict"; + var WebSocket2 = require_websocket(); + var { Duplex } = require("stream"); + function emitClose(stream) { + stream.emit("close"); + } + function duplexOnEnd() { + if (!this.destroyed && this._writableState.finished) { + this.destroy(); + } + } + function duplexOnError(err2) { + this.removeListener("error", duplexOnError); + this.destroy(); + if (this.listenerCount("error") === 0) { + this.emit("error", err2); + } + } + function createWebSocketStream2(ws, options) { + let terminateOnDestroy = true; + const duplex = new Duplex({ + ...options, + autoDestroy: false, + emitClose: false, + objectMode: false, + writableObjectMode: false + }); + ws.on("message", function message(msg, isBinary) { + const data = !isBinary && duplex._readableState.objectMode ? msg.toString() : msg; + if (!duplex.push(data)) ws.pause(); + }); + ws.once("error", function error2(err2) { + if (duplex.destroyed) return; + terminateOnDestroy = false; + duplex.destroy(err2); + }); + ws.once("close", function close() { + if (duplex.destroyed) return; + duplex.push(null); + }); + duplex._destroy = function(err2, callback) { + if (ws.readyState === ws.CLOSED) { + callback(err2); + process.nextTick(emitClose, duplex); + return; + } + let called = false; + ws.once("error", function error2(err3) { + called = true; + callback(err3); + }); + ws.once("close", function close() { + if (!called) callback(err2); + process.nextTick(emitClose, duplex); + }); + if (terminateOnDestroy) ws.terminate(); + }; + duplex._final = function(callback) { + if (ws.readyState === ws.CONNECTING) { + ws.once("open", function open() { + duplex._final(callback); + }); + return; + } + if (ws._socket === null) return; + if (ws._socket._writableState.finished) { + callback(); + if (duplex._readableState.endEmitted) duplex.destroy(); + } else { + ws._socket.once("finish", function finish() { + callback(); + }); + ws.close(); + } + }; + duplex._read = function() { + if (ws.isPaused) ws.resume(); + }; + duplex._write = function(chunk, encoding, callback) { + if (ws.readyState === ws.CONNECTING) { + ws.once("open", function open() { + duplex._write(chunk, encoding, callback); + }); + return; + } + ws.send(chunk, callback); + }; + duplex.on("end", duplexOnEnd); + duplex.on("error", duplexOnError); + return duplex; + } + module2.exports = createWebSocketStream2; + } +}); + +// ../node_modules/.pnpm/ws@8.18.2_bufferutil@4.0.8_utf-8-validate@6.0.3/node_modules/ws/lib/subprotocol.js +var require_subprotocol = __commonJS({ + "../node_modules/.pnpm/ws@8.18.2_bufferutil@4.0.8_utf-8-validate@6.0.3/node_modules/ws/lib/subprotocol.js"(exports2, module2) { + "use strict"; + var { tokenChars } = require_validation(); + function parse4(header) { + const protocols = /* @__PURE__ */ new Set(); + let start = -1; + let end = -1; + let i4 = 0; + for (i4; i4 < header.length; i4++) { + const code = header.charCodeAt(i4); + if (end === -1 && tokenChars[code] === 1) { + if (start === -1) start = i4; + } else if (i4 !== 0 && (code === 32 || code === 9)) { + if (end === -1 && start !== -1) end = i4; + } else if (code === 44) { + if (start === -1) { + throw new SyntaxError(`Unexpected character at index ${i4}`); + } + if (end === -1) end = i4; + const protocol2 = header.slice(start, end); + if (protocols.has(protocol2)) { + throw new SyntaxError(`The "${protocol2}" subprotocol is duplicated`); + } + protocols.add(protocol2); + start = end = -1; + } else { + throw new SyntaxError(`Unexpected character at index ${i4}`); + } + } + if (start === -1 || end !== -1) { + throw new SyntaxError("Unexpected end of input"); + } + const protocol = header.slice(start, i4); + if (protocols.has(protocol)) { + throw new SyntaxError(`The "${protocol}" subprotocol is duplicated`); + } + protocols.add(protocol); + return protocols; + } + module2.exports = { parse: parse4 }; + } +}); + +// ../node_modules/.pnpm/ws@8.18.2_bufferutil@4.0.8_utf-8-validate@6.0.3/node_modules/ws/lib/websocket-server.js +var require_websocket_server = __commonJS({ + "../node_modules/.pnpm/ws@8.18.2_bufferutil@4.0.8_utf-8-validate@6.0.3/node_modules/ws/lib/websocket-server.js"(exports2, module2) { + "use strict"; + var EventEmitter = require("events"); + var http3 = require("http"); + var { Duplex } = require("stream"); + var { createHash: createHash2 } = require("crypto"); + var extension = require_extension(); + var PerMessageDeflate = require_permessage_deflate(); + var subprotocol = require_subprotocol(); + var WebSocket2 = require_websocket(); + var { GUID, kWebSocket } = require_constants2(); + var keyRegex = /^[+/0-9A-Za-z]{22}==$/; + var RUNNING = 0; + var CLOSING = 1; + var CLOSED = 2; + var WebSocketServer2 = class extends EventEmitter { + /** + * Create a `WebSocketServer` instance. + * + * @param {Object} options Configuration options + * @param {Boolean} [options.allowSynchronousEvents=true] Specifies whether + * any of the `'message'`, `'ping'`, and `'pong'` events can be emitted + * multiple times in the same tick + * @param {Boolean} [options.autoPong=true] Specifies whether or not to + * automatically send a pong in response to a ping + * @param {Number} [options.backlog=511] The maximum length of the queue of + * pending connections + * @param {Boolean} [options.clientTracking=true] Specifies whether or not to + * track clients + * @param {Function} [options.handleProtocols] A hook to handle protocols + * @param {String} [options.host] The hostname where to bind the server + * @param {Number} [options.maxPayload=104857600] The maximum allowed message + * size + * @param {Boolean} [options.noServer=false] Enable no server mode + * @param {String} [options.path] Accept only connections matching this path + * @param {(Boolean|Object)} [options.perMessageDeflate=false] Enable/disable + * permessage-deflate + * @param {Number} [options.port] The port where to bind the server + * @param {(http.Server|https.Server)} [options.server] A pre-created HTTP/S + * server to use + * @param {Boolean} [options.skipUTF8Validation=false] Specifies whether or + * not to skip UTF-8 validation for text and close messages + * @param {Function} [options.verifyClient] A hook to reject connections + * @param {Function} [options.WebSocket=WebSocket] Specifies the `WebSocket` + * class to use. It must be the `WebSocket` class or class that extends it + * @param {Function} [callback] A listener for the `listening` event + */ + constructor(options, callback) { + super(); + options = { + allowSynchronousEvents: true, + autoPong: true, + maxPayload: 100 * 1024 * 1024, + skipUTF8Validation: false, + perMessageDeflate: false, + handleProtocols: null, + clientTracking: true, + verifyClient: null, + noServer: false, + backlog: null, + // use default (511 as implemented in net.js) + server: null, + host: null, + path: null, + port: null, + WebSocket: WebSocket2, + ...options + }; + if (options.port == null && !options.server && !options.noServer || options.port != null && (options.server || options.noServer) || options.server && options.noServer) { + throw new TypeError( + 'One and only one of the "port", "server", or "noServer" options must be specified' + ); + } + if (options.port != null) { + this._server = http3.createServer((req, res) => { + const body = http3.STATUS_CODES[426]; + res.writeHead(426, { + "Content-Length": body.length, + "Content-Type": "text/plain" + }); + res.end(body); + }); + this._server.listen( + options.port, + options.host, + options.backlog, + callback + ); + } else if (options.server) { + this._server = options.server; + } + if (this._server) { + const emitConnection = this.emit.bind(this, "connection"); + this._removeListeners = addListeners(this._server, { + listening: this.emit.bind(this, "listening"), + error: this.emit.bind(this, "error"), + upgrade: (req, socket, head) => { + this.handleUpgrade(req, socket, head, emitConnection); + } + }); + } + if (options.perMessageDeflate === true) options.perMessageDeflate = {}; + if (options.clientTracking) { + this.clients = /* @__PURE__ */ new Set(); + this._shouldEmitClose = false; + } + this.options = options; + this._state = RUNNING; + } + /** + * Returns the bound address, the address family name, and port of the server + * as reported by the operating system if listening on an IP socket. + * If the server is listening on a pipe or UNIX domain socket, the name is + * returned as a string. + * + * @return {(Object|String|null)} The address of the server + * @public + */ + address() { + if (this.options.noServer) { + throw new Error('The server is operating in "noServer" mode'); + } + if (!this._server) return null; + return this._server.address(); + } + /** + * Stop the server from accepting new connections and emit the `'close'` event + * when all existing connections are closed. + * + * @param {Function} [cb] A one-time listener for the `'close'` event + * @public + */ + close(cb) { + if (this._state === CLOSED) { + if (cb) { + this.once("close", () => { + cb(new Error("The server is not running")); + }); + } + process.nextTick(emitClose, this); + return; + } + if (cb) this.once("close", cb); + if (this._state === CLOSING) return; + this._state = CLOSING; + if (this.options.noServer || this.options.server) { + if (this._server) { + this._removeListeners(); + this._removeListeners = this._server = null; + } + if (this.clients) { + if (!this.clients.size) { + process.nextTick(emitClose, this); + } else { + this._shouldEmitClose = true; + } + } else { + process.nextTick(emitClose, this); + } + } else { + const server = this._server; + this._removeListeners(); + this._removeListeners = this._server = null; + server.close(() => { + emitClose(this); + }); + } + } + /** + * See if a given request should be handled by this server instance. + * + * @param {http.IncomingMessage} req Request object to inspect + * @return {Boolean} `true` if the request is valid, else `false` + * @public + */ + shouldHandle(req) { + if (this.options.path) { + const index6 = req.url.indexOf("?"); + const pathname = index6 !== -1 ? req.url.slice(0, index6) : req.url; + if (pathname !== this.options.path) return false; + } + return true; + } + /** + * Handle a HTTP Upgrade request. + * + * @param {http.IncomingMessage} req The request object + * @param {Duplex} socket The network socket between the server and client + * @param {Buffer} head The first packet of the upgraded stream + * @param {Function} cb Callback + * @public + */ + handleUpgrade(req, socket, head, cb) { + socket.on("error", socketOnError); + const key = req.headers["sec-websocket-key"]; + const upgrade = req.headers.upgrade; + const version3 = +req.headers["sec-websocket-version"]; + if (req.method !== "GET") { + const message = "Invalid HTTP method"; + abortHandshakeOrEmitwsClientError(this, req, socket, 405, message); + return; + } + if (upgrade === void 0 || upgrade.toLowerCase() !== "websocket") { + const message = "Invalid Upgrade header"; + abortHandshakeOrEmitwsClientError(this, req, socket, 400, message); + return; + } + if (key === void 0 || !keyRegex.test(key)) { + const message = "Missing or invalid Sec-WebSocket-Key header"; + abortHandshakeOrEmitwsClientError(this, req, socket, 400, message); + return; + } + if (version3 !== 8 && version3 !== 13) { + const message = "Missing or invalid Sec-WebSocket-Version header"; + abortHandshakeOrEmitwsClientError(this, req, socket, 400, message); + return; + } + if (!this.shouldHandle(req)) { + abortHandshake(socket, 400); + return; + } + const secWebSocketProtocol = req.headers["sec-websocket-protocol"]; + let protocols = /* @__PURE__ */ new Set(); + if (secWebSocketProtocol !== void 0) { + try { + protocols = subprotocol.parse(secWebSocketProtocol); + } catch (err2) { + const message = "Invalid Sec-WebSocket-Protocol header"; + abortHandshakeOrEmitwsClientError(this, req, socket, 400, message); + return; + } + } + const secWebSocketExtensions = req.headers["sec-websocket-extensions"]; + const extensions = {}; + if (this.options.perMessageDeflate && secWebSocketExtensions !== void 0) { + const perMessageDeflate = new PerMessageDeflate( + this.options.perMessageDeflate, + true, + this.options.maxPayload + ); + try { + const offers = extension.parse(secWebSocketExtensions); + if (offers[PerMessageDeflate.extensionName]) { + perMessageDeflate.accept(offers[PerMessageDeflate.extensionName]); + extensions[PerMessageDeflate.extensionName] = perMessageDeflate; + } + } catch (err2) { + const message = "Invalid or unacceptable Sec-WebSocket-Extensions header"; + abortHandshakeOrEmitwsClientError(this, req, socket, 400, message); + return; + } + } + if (this.options.verifyClient) { + const info2 = { + origin: req.headers[`${version3 === 8 ? "sec-websocket-origin" : "origin"}`], + secure: !!(req.socket.authorized || req.socket.encrypted), + req + }; + if (this.options.verifyClient.length === 2) { + this.options.verifyClient(info2, (verified, code, message, headers) => { + if (!verified) { + return abortHandshake(socket, code || 401, message, headers); + } + this.completeUpgrade( + extensions, + key, + protocols, + req, + socket, + head, + cb + ); + }); + return; + } + if (!this.options.verifyClient(info2)) return abortHandshake(socket, 401); + } + this.completeUpgrade(extensions, key, protocols, req, socket, head, cb); + } + /** + * Upgrade the connection to WebSocket. + * + * @param {Object} extensions The accepted extensions + * @param {String} key The value of the `Sec-WebSocket-Key` header + * @param {Set} protocols The subprotocols + * @param {http.IncomingMessage} req The request object + * @param {Duplex} socket The network socket between the server and client + * @param {Buffer} head The first packet of the upgraded stream + * @param {Function} cb Callback + * @throws {Error} If called more than once with the same socket + * @private + */ + completeUpgrade(extensions, key, protocols, req, socket, head, cb) { + if (!socket.readable || !socket.writable) return socket.destroy(); + if (socket[kWebSocket]) { + throw new Error( + "server.handleUpgrade() was called more than once with the same socket, possibly due to a misconfiguration" + ); + } + if (this._state > RUNNING) return abortHandshake(socket, 503); + const digest = createHash2("sha1").update(key + GUID).digest("base64"); + const headers = [ + "HTTP/1.1 101 Switching Protocols", + "Upgrade: websocket", + "Connection: Upgrade", + `Sec-WebSocket-Accept: ${digest}` + ]; + const ws = new this.options.WebSocket(null, void 0, this.options); + if (protocols.size) { + const protocol = this.options.handleProtocols ? this.options.handleProtocols(protocols, req) : protocols.values().next().value; + if (protocol) { + headers.push(`Sec-WebSocket-Protocol: ${protocol}`); + ws._protocol = protocol; + } + } + if (extensions[PerMessageDeflate.extensionName]) { + const params = extensions[PerMessageDeflate.extensionName].params; + const value = extension.format({ + [PerMessageDeflate.extensionName]: [params] + }); + headers.push(`Sec-WebSocket-Extensions: ${value}`); + ws._extensions = extensions; + } + this.emit("headers", headers, req); + socket.write(headers.concat("\r\n").join("\r\n")); + socket.removeListener("error", socketOnError); + ws.setSocket(socket, head, { + allowSynchronousEvents: this.options.allowSynchronousEvents, + maxPayload: this.options.maxPayload, + skipUTF8Validation: this.options.skipUTF8Validation + }); + if (this.clients) { + this.clients.add(ws); + ws.on("close", () => { + this.clients.delete(ws); + if (this._shouldEmitClose && !this.clients.size) { + process.nextTick(emitClose, this); + } + }); + } + cb(ws, req); + } + }; + module2.exports = WebSocketServer2; + function addListeners(server, map2) { + for (const event of Object.keys(map2)) server.on(event, map2[event]); + return function removeListeners() { + for (const event of Object.keys(map2)) { + server.removeListener(event, map2[event]); + } + }; + } + function emitClose(server) { + server._state = CLOSED; + server.emit("close"); + } + function socketOnError() { + this.destroy(); + } + function abortHandshake(socket, code, message, headers) { + message = message || http3.STATUS_CODES[code]; + headers = { + Connection: "close", + "Content-Type": "text/html", + "Content-Length": Buffer.byteLength(message), + ...headers + }; + socket.once("finish", socket.destroy); + socket.end( + `HTTP/1.1 ${code} ${http3.STATUS_CODES[code]}\r +` + Object.keys(headers).map((h4) => `${h4}: ${headers[h4]}`).join("\r\n") + "\r\n\r\n" + message + ); + } + function abortHandshakeOrEmitwsClientError(server, req, socket, code, message) { + if (server.listenerCount("wsClientError")) { + const err2 = new Error(message); + Error.captureStackTrace(err2, abortHandshakeOrEmitwsClientError); + server.emit("wsClientError", err2, socket, req); + } else { + abortHandshake(socket, code, message); + } + } + } +}); + +// ../node_modules/.pnpm/ws@8.18.2_bufferutil@4.0.8_utf-8-validate@6.0.3/node_modules/ws/wrapper.mjs +var import_stream, import_receiver, import_sender, import_websocket, import_websocket_server, wrapper_default; +var init_wrapper = __esm({ + "../node_modules/.pnpm/ws@8.18.2_bufferutil@4.0.8_utf-8-validate@6.0.3/node_modules/ws/wrapper.mjs"() { + import_stream = __toESM(require_stream(), 1); + import_receiver = __toESM(require_receiver(), 1); + import_sender = __toESM(require_sender(), 1); + import_websocket = __toESM(require_websocket(), 1); + import_websocket_server = __toESM(require_websocket_server(), 1); + wrapper_default = import_websocket.default; + } +}); + +// ../node_modules/.pnpm/@smithy+types@4.3.1/node_modules/@smithy/types/dist-cjs/index.js +var require_dist_cjs = __commonJS({ + "../node_modules/.pnpm/@smithy+types@4.3.1/node_modules/@smithy/types/dist-cjs/index.js"(exports2, module2) { + var __defProp3 = Object.defineProperty; + var __getOwnPropDesc3 = Object.getOwnPropertyDescriptor; + var __getOwnPropNames3 = Object.getOwnPropertyNames; + var __hasOwnProp3 = Object.prototype.hasOwnProperty; + var __name = (target, value) => __defProp3(target, "name", { value, configurable: true }); + var __export2 = (target, all) => { + for (var name in all) + __defProp3(target, name, { get: all[name], enumerable: true }); + }; + var __copyProps3 = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames3(from)) + if (!__hasOwnProp3.call(to, key) && key !== except) + __defProp3(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc3(from, key)) || desc.enumerable }); + } + return to; + }; + var __toCommonJS2 = (mod) => __copyProps3(__defProp3({}, "__esModule", { value: true }), mod); + var src_exports = {}; + __export2(src_exports, { + AlgorithmId: () => AlgorithmId, + EndpointURLScheme: () => EndpointURLScheme, + FieldPosition: () => FieldPosition, + HttpApiKeyAuthLocation: () => HttpApiKeyAuthLocation2, + HttpAuthLocation: () => HttpAuthLocation, + IniSectionType: () => IniSectionType, + RequestHandlerProtocol: () => RequestHandlerProtocol, + SMITHY_CONTEXT_KEY: () => SMITHY_CONTEXT_KEY4, + getDefaultClientConfiguration: () => getDefaultClientConfiguration, + resolveDefaultRuntimeConfig: () => resolveDefaultRuntimeConfig3 + }); + module2.exports = __toCommonJS2(src_exports); + var HttpAuthLocation = /* @__PURE__ */ ((HttpAuthLocation2) => { + HttpAuthLocation2["HEADER"] = "header"; + HttpAuthLocation2["QUERY"] = "query"; + return HttpAuthLocation2; + })(HttpAuthLocation || {}); + var HttpApiKeyAuthLocation2 = /* @__PURE__ */ ((HttpApiKeyAuthLocation22) => { + HttpApiKeyAuthLocation22["HEADER"] = "header"; + HttpApiKeyAuthLocation22["QUERY"] = "query"; + return HttpApiKeyAuthLocation22; + })(HttpApiKeyAuthLocation2 || {}); + var EndpointURLScheme = /* @__PURE__ */ ((EndpointURLScheme2) => { + EndpointURLScheme2["HTTP"] = "http"; + EndpointURLScheme2["HTTPS"] = "https"; + return EndpointURLScheme2; + })(EndpointURLScheme || {}); + var AlgorithmId = /* @__PURE__ */ ((AlgorithmId2) => { + AlgorithmId2["MD5"] = "md5"; + AlgorithmId2["CRC32"] = "crc32"; + AlgorithmId2["CRC32C"] = "crc32c"; + AlgorithmId2["SHA1"] = "sha1"; + AlgorithmId2["SHA256"] = "sha256"; + return AlgorithmId2; + })(AlgorithmId || {}); + var getChecksumConfiguration = /* @__PURE__ */ __name((runtimeConfig) => { + const checksumAlgorithms = []; + if (runtimeConfig.sha256 !== void 0) { + checksumAlgorithms.push({ + algorithmId: () => "sha256", + checksumConstructor: () => runtimeConfig.sha256 + }); + } + if (runtimeConfig.md5 != void 0) { + checksumAlgorithms.push({ + algorithmId: () => "md5", + checksumConstructor: () => runtimeConfig.md5 + }); + } + return { + addChecksumAlgorithm(algo) { + checksumAlgorithms.push(algo); + }, + checksumAlgorithms() { + return checksumAlgorithms; + } + }; + }, "getChecksumConfiguration"); + var resolveChecksumRuntimeConfig = /* @__PURE__ */ __name((clientConfig) => { + const runtimeConfig = {}; + clientConfig.checksumAlgorithms().forEach((checksumAlgorithm) => { + runtimeConfig[checksumAlgorithm.algorithmId()] = checksumAlgorithm.checksumConstructor(); + }); + return runtimeConfig; + }, "resolveChecksumRuntimeConfig"); + var getDefaultClientConfiguration = /* @__PURE__ */ __name((runtimeConfig) => { + return getChecksumConfiguration(runtimeConfig); + }, "getDefaultClientConfiguration"); + var resolveDefaultRuntimeConfig3 = /* @__PURE__ */ __name((config) => { + return resolveChecksumRuntimeConfig(config); + }, "resolveDefaultRuntimeConfig"); + var FieldPosition = /* @__PURE__ */ ((FieldPosition2) => { + FieldPosition2[FieldPosition2["HEADER"] = 0] = "HEADER"; + FieldPosition2[FieldPosition2["TRAILER"] = 1] = "TRAILER"; + return FieldPosition2; + })(FieldPosition || {}); + var SMITHY_CONTEXT_KEY4 = "__smithy_context"; + var IniSectionType = /* @__PURE__ */ ((IniSectionType2) => { + IniSectionType2["PROFILE"] = "profile"; + IniSectionType2["SSO_SESSION"] = "sso-session"; + IniSectionType2["SERVICES"] = "services"; + return IniSectionType2; + })(IniSectionType || {}); + var RequestHandlerProtocol = /* @__PURE__ */ ((RequestHandlerProtocol2) => { + RequestHandlerProtocol2["HTTP_0_9"] = "http/0.9"; + RequestHandlerProtocol2["HTTP_1_0"] = "http/1.0"; + RequestHandlerProtocol2["TDS_8_0"] = "tds/8.0"; + return RequestHandlerProtocol2; + })(RequestHandlerProtocol || {}); + } +}); + +// ../node_modules/.pnpm/@smithy+protocol-http@5.1.2/node_modules/@smithy/protocol-http/dist-cjs/index.js +var require_dist_cjs2 = __commonJS({ + "../node_modules/.pnpm/@smithy+protocol-http@5.1.2/node_modules/@smithy/protocol-http/dist-cjs/index.js"(exports2, module2) { + var __defProp3 = Object.defineProperty; + var __getOwnPropDesc3 = Object.getOwnPropertyDescriptor; + var __getOwnPropNames3 = Object.getOwnPropertyNames; + var __hasOwnProp3 = Object.prototype.hasOwnProperty; + var __name = (target, value) => __defProp3(target, "name", { value, configurable: true }); + var __export2 = (target, all) => { + for (var name in all) + __defProp3(target, name, { get: all[name], enumerable: true }); + }; + var __copyProps3 = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames3(from)) + if (!__hasOwnProp3.call(to, key) && key !== except) + __defProp3(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc3(from, key)) || desc.enumerable }); + } + return to; + }; + var __toCommonJS2 = (mod) => __copyProps3(__defProp3({}, "__esModule", { value: true }), mod); + var src_exports = {}; + __export2(src_exports, { + Field: () => Field, + Fields: () => Fields, + HttpRequest: () => HttpRequest10, + HttpResponse: () => HttpResponse4, + IHttpRequest: () => import_types5.HttpRequest, + getHttpHandlerExtensionConfiguration: () => getHttpHandlerExtensionConfiguration3, + isValidHostname: () => isValidHostname, + resolveHttpHandlerRuntimeConfig: () => resolveHttpHandlerRuntimeConfig3 + }); + module2.exports = __toCommonJS2(src_exports); + var getHttpHandlerExtensionConfiguration3 = /* @__PURE__ */ __name((runtimeConfig) => { + return { + setHttpHandler(handler) { + runtimeConfig.httpHandler = handler; + }, + httpHandler() { + return runtimeConfig.httpHandler; + }, + updateHttpClientConfig(key, value) { + var _a6; + (_a6 = runtimeConfig.httpHandler) == null ? void 0 : _a6.updateHttpClientConfig(key, value); + }, + httpHandlerConfigs() { + return runtimeConfig.httpHandler.httpHandlerConfigs(); + } + }; + }, "getHttpHandlerExtensionConfiguration"); + var resolveHttpHandlerRuntimeConfig3 = /* @__PURE__ */ __name((httpHandlerExtensionConfiguration) => { + return { + httpHandler: httpHandlerExtensionConfiguration.httpHandler() + }; + }, "resolveHttpHandlerRuntimeConfig"); + var import_types5 = require_dist_cjs(); + var _a2; + var Field = (_a2 = class { + constructor({ name, kind = import_types5.FieldPosition.HEADER, values = [] }) { + this.name = name; + this.kind = kind; + this.values = values; + } + /** + * Appends a value to the field. + * + * @param value The value to append. + */ + add(value) { + this.values.push(value); + } + /** + * Overwrite existing field values. + * + * @param values The new field values. + */ + set(values) { + this.values = values; + } + /** + * Remove all matching entries from list. + * + * @param value Value to remove. + */ + remove(value) { + this.values = this.values.filter((v6) => v6 !== value); + } + /** + * Get comma-delimited string. + * + * @returns String representation of {@link Field}. + */ + toString() { + return this.values.map((v6) => v6.includes(",") || v6.includes(" ") ? `"${v6}"` : v6).join(", "); + } + /** + * Get string values as a list + * + * @returns Values in {@link Field} as a list. + */ + get() { + return this.values; + } + }, __name(_a2, "Field"), _a2); + var _a3; + var Fields = (_a3 = class { + constructor({ fields = [], encoding = "utf-8" }) { + this.entries = {}; + fields.forEach(this.setField.bind(this)); + this.encoding = encoding; + } + /** + * Set entry for a {@link Field} name. The `name` + * attribute will be used to key the collection. + * + * @param field The {@link Field} to set. + */ + setField(field) { + this.entries[field.name.toLowerCase()] = field; + } + /** + * Retrieve {@link Field} entry by name. + * + * @param name The name of the {@link Field} entry + * to retrieve + * @returns The {@link Field} if it exists. + */ + getField(name) { + return this.entries[name.toLowerCase()]; + } + /** + * Delete entry from collection. + * + * @param name Name of the entry to delete. + */ + removeField(name) { + delete this.entries[name.toLowerCase()]; + } + /** + * Helper function for retrieving specific types of fields. + * Used to grab all headers or all trailers. + * + * @param kind {@link FieldPosition} of entries to retrieve. + * @returns The {@link Field} entries with the specified + * {@link FieldPosition}. + */ + getByType(kind) { + return Object.values(this.entries).filter((field) => field.kind === kind); + } + }, __name(_a3, "Fields"), _a3); + var _a4; + var HttpRequest10 = (_a4 = class { + constructor(options) { + this.method = options.method || "GET"; + this.hostname = options.hostname || "localhost"; + this.port = options.port; + this.query = options.query || {}; + this.headers = options.headers || {}; + this.body = options.body; + this.protocol = options.protocol ? options.protocol.slice(-1) !== ":" ? `${options.protocol}:` : options.protocol : "https:"; + this.path = options.path ? options.path.charAt(0) !== "/" ? `/${options.path}` : options.path : "/"; + this.username = options.username; + this.password = options.password; + this.fragment = options.fragment; + } + /** + * Note: this does not deep-clone the body. + */ + static clone(request) { + const cloned = new _a4({ + ...request, + headers: { ...request.headers } + }); + if (cloned.query) { + cloned.query = cloneQuery(cloned.query); + } + return cloned; + } + /** + * This method only actually asserts that request is the interface {@link IHttpRequest}, + * and not necessarily this concrete class. Left in place for API stability. + * + * Do not call instance methods on the input of this function, and + * do not assume it has the HttpRequest prototype. + */ + static isInstance(request) { + if (!request) { + return false; + } + const req = request; + return "method" in req && "protocol" in req && "hostname" in req && "path" in req && typeof req["query"] === "object" && typeof req["headers"] === "object"; + } + /** + * @deprecated use static HttpRequest.clone(request) instead. It's not safe to call + * this method because {@link HttpRequest.isInstance} incorrectly + * asserts that IHttpRequest (interface) objects are of type HttpRequest (class). + */ + clone() { + return _a4.clone(this); + } + }, __name(_a4, "HttpRequest"), _a4); + function cloneQuery(query) { + return Object.keys(query).reduce((carry, paramName) => { + const param = query[paramName]; + return { + ...carry, + [paramName]: Array.isArray(param) ? [...param] : param + }; + }, {}); + } + __name(cloneQuery, "cloneQuery"); + var _a5; + var HttpResponse4 = (_a5 = class { + constructor(options) { + this.statusCode = options.statusCode; + this.reason = options.reason; + this.headers = options.headers || {}; + this.body = options.body; + } + static isInstance(response) { + if (!response) + return false; + const resp = response; + return typeof resp.statusCode === "number" && typeof resp.headers === "object"; + } + }, __name(_a5, "HttpResponse"), _a5); + function isValidHostname(hostname) { + const hostPattern = /^[a-z0-9][a-z0-9\.\-]*[a-z0-9]$/; + return hostPattern.test(hostname); + } + __name(isValidHostname, "isValidHostname"); + } +}); + +// ../node_modules/.pnpm/@aws-sdk+middleware-host-header@3.804.0/node_modules/@aws-sdk/middleware-host-header/dist-cjs/index.js +var require_dist_cjs3 = __commonJS({ + "../node_modules/.pnpm/@aws-sdk+middleware-host-header@3.804.0/node_modules/@aws-sdk/middleware-host-header/dist-cjs/index.js"(exports2, module2) { + "use strict"; + var __defProp3 = Object.defineProperty; + var __getOwnPropDesc3 = Object.getOwnPropertyDescriptor; + var __getOwnPropNames3 = Object.getOwnPropertyNames; + var __hasOwnProp3 = Object.prototype.hasOwnProperty; + var __name = (target, value) => __defProp3(target, "name", { value, configurable: true }); + var __export2 = (target, all) => { + for (var name in all) + __defProp3(target, name, { get: all[name], enumerable: true }); + }; + var __copyProps3 = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames3(from)) + if (!__hasOwnProp3.call(to, key) && key !== except) + __defProp3(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc3(from, key)) || desc.enumerable }); + } + return to; + }; + var __toCommonJS2 = (mod) => __copyProps3(__defProp3({}, "__esModule", { value: true }), mod); + var index_exports = {}; + __export2(index_exports, { + getHostHeaderPlugin: () => getHostHeaderPlugin3, + hostHeaderMiddleware: () => hostHeaderMiddleware, + hostHeaderMiddlewareOptions: () => hostHeaderMiddlewareOptions, + resolveHostHeaderConfig: () => resolveHostHeaderConfig3 + }); + module2.exports = __toCommonJS2(index_exports); + var import_protocol_http15 = require_dist_cjs2(); + function resolveHostHeaderConfig3(input) { + return input; + } + __name(resolveHostHeaderConfig3, "resolveHostHeaderConfig"); + var hostHeaderMiddleware = /* @__PURE__ */ __name((options) => (next) => async (args) => { + if (!import_protocol_http15.HttpRequest.isInstance(args.request)) return next(args); + const { request } = args; + const { handlerProtocol = "" } = options.requestHandler.metadata || {}; + if (handlerProtocol.indexOf("h2") >= 0 && !request.headers[":authority"]) { + delete request.headers["host"]; + request.headers[":authority"] = request.hostname + (request.port ? ":" + request.port : ""); + } else if (!request.headers["host"]) { + let host = request.hostname; + if (request.port != null) host += `:${request.port}`; + request.headers["host"] = host; + } + return next(args); + }, "hostHeaderMiddleware"); + var hostHeaderMiddlewareOptions = { + name: "hostHeaderMiddleware", + step: "build", + priority: "low", + tags: ["HOST"], + override: true + }; + var getHostHeaderPlugin3 = /* @__PURE__ */ __name((options) => ({ + applyToStack: /* @__PURE__ */ __name((clientStack) => { + clientStack.add(hostHeaderMiddleware(options), hostHeaderMiddlewareOptions); + }, "applyToStack") + }), "getHostHeaderPlugin"); + } +}); + +// ../node_modules/.pnpm/@aws-sdk+middleware-logger@3.804.0/node_modules/@aws-sdk/middleware-logger/dist-cjs/index.js +var require_dist_cjs4 = __commonJS({ + "../node_modules/.pnpm/@aws-sdk+middleware-logger@3.804.0/node_modules/@aws-sdk/middleware-logger/dist-cjs/index.js"(exports2, module2) { + "use strict"; + var __defProp3 = Object.defineProperty; + var __getOwnPropDesc3 = Object.getOwnPropertyDescriptor; + var __getOwnPropNames3 = Object.getOwnPropertyNames; + var __hasOwnProp3 = Object.prototype.hasOwnProperty; + var __name = (target, value) => __defProp3(target, "name", { value, configurable: true }); + var __export2 = (target, all) => { + for (var name in all) + __defProp3(target, name, { get: all[name], enumerable: true }); + }; + var __copyProps3 = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames3(from)) + if (!__hasOwnProp3.call(to, key) && key !== except) + __defProp3(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc3(from, key)) || desc.enumerable }); + } + return to; + }; + var __toCommonJS2 = (mod) => __copyProps3(__defProp3({}, "__esModule", { value: true }), mod); + var index_exports = {}; + __export2(index_exports, { + getLoggerPlugin: () => getLoggerPlugin3, + loggerMiddleware: () => loggerMiddleware, + loggerMiddlewareOptions: () => loggerMiddlewareOptions + }); + module2.exports = __toCommonJS2(index_exports); + var loggerMiddleware = /* @__PURE__ */ __name(() => (next, context) => async (args) => { + var _a2, _b; + try { + const response = await next(args); + const { clientName, commandName, logger: logger3, dynamoDbDocumentClientOptions = {} } = context; + const { overrideInputFilterSensitiveLog, overrideOutputFilterSensitiveLog } = dynamoDbDocumentClientOptions; + const inputFilterSensitiveLog = overrideInputFilterSensitiveLog ?? context.inputFilterSensitiveLog; + const outputFilterSensitiveLog = overrideOutputFilterSensitiveLog ?? context.outputFilterSensitiveLog; + const { $metadata, ...outputWithoutMetadata } = response.output; + (_a2 = logger3 == null ? void 0 : logger3.info) == null ? void 0 : _a2.call(logger3, { + clientName, + commandName, + input: inputFilterSensitiveLog(args.input), + output: outputFilterSensitiveLog(outputWithoutMetadata), + metadata: $metadata + }); + return response; + } catch (error2) { + const { clientName, commandName, logger: logger3, dynamoDbDocumentClientOptions = {} } = context; + const { overrideInputFilterSensitiveLog } = dynamoDbDocumentClientOptions; + const inputFilterSensitiveLog = overrideInputFilterSensitiveLog ?? context.inputFilterSensitiveLog; + (_b = logger3 == null ? void 0 : logger3.error) == null ? void 0 : _b.call(logger3, { + clientName, + commandName, + input: inputFilterSensitiveLog(args.input), + error: error2, + metadata: error2.$metadata + }); + throw error2; + } + }, "loggerMiddleware"); + var loggerMiddlewareOptions = { + name: "loggerMiddleware", + tags: ["LOGGER"], + step: "initialize", + override: true + }; + var getLoggerPlugin3 = /* @__PURE__ */ __name((options) => ({ + applyToStack: /* @__PURE__ */ __name((clientStack) => { + clientStack.add(loggerMiddleware(), loggerMiddlewareOptions); + }, "applyToStack") + }), "getLoggerPlugin"); + } +}); + +// ../node_modules/.pnpm/@aws-sdk+middleware-recursion-detection@3.804.0/node_modules/@aws-sdk/middleware-recursion-detection/dist-cjs/index.js +var require_dist_cjs5 = __commonJS({ + "../node_modules/.pnpm/@aws-sdk+middleware-recursion-detection@3.804.0/node_modules/@aws-sdk/middleware-recursion-detection/dist-cjs/index.js"(exports2, module2) { + "use strict"; + var __defProp3 = Object.defineProperty; + var __getOwnPropDesc3 = Object.getOwnPropertyDescriptor; + var __getOwnPropNames3 = Object.getOwnPropertyNames; + var __hasOwnProp3 = Object.prototype.hasOwnProperty; + var __name = (target, value) => __defProp3(target, "name", { value, configurable: true }); + var __export2 = (target, all) => { + for (var name in all) + __defProp3(target, name, { get: all[name], enumerable: true }); + }; + var __copyProps3 = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames3(from)) + if (!__hasOwnProp3.call(to, key) && key !== except) + __defProp3(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc3(from, key)) || desc.enumerable }); + } + return to; + }; + var __toCommonJS2 = (mod) => __copyProps3(__defProp3({}, "__esModule", { value: true }), mod); + var index_exports = {}; + __export2(index_exports, { + addRecursionDetectionMiddlewareOptions: () => addRecursionDetectionMiddlewareOptions, + getRecursionDetectionPlugin: () => getRecursionDetectionPlugin3, + recursionDetectionMiddleware: () => recursionDetectionMiddleware + }); + module2.exports = __toCommonJS2(index_exports); + var import_protocol_http15 = require_dist_cjs2(); + var TRACE_ID_HEADER_NAME = "X-Amzn-Trace-Id"; + var ENV_LAMBDA_FUNCTION_NAME = "AWS_LAMBDA_FUNCTION_NAME"; + var ENV_TRACE_ID = "_X_AMZN_TRACE_ID"; + var recursionDetectionMiddleware = /* @__PURE__ */ __name((options) => (next) => async (args) => { + const { request } = args; + if (!import_protocol_http15.HttpRequest.isInstance(request) || options.runtime !== "node") { + return next(args); + } + const traceIdHeader = Object.keys(request.headers ?? {}).find((h4) => h4.toLowerCase() === TRACE_ID_HEADER_NAME.toLowerCase()) ?? TRACE_ID_HEADER_NAME; + if (request.headers.hasOwnProperty(traceIdHeader)) { + return next(args); + } + const functionName = process.env[ENV_LAMBDA_FUNCTION_NAME]; + const traceId = process.env[ENV_TRACE_ID]; + const nonEmptyString = /* @__PURE__ */ __name((str) => typeof str === "string" && str.length > 0, "nonEmptyString"); + if (nonEmptyString(functionName) && nonEmptyString(traceId)) { + request.headers[TRACE_ID_HEADER_NAME] = traceId; + } + return next({ + ...args, + request + }); + }, "recursionDetectionMiddleware"); + var addRecursionDetectionMiddlewareOptions = { + step: "build", + tags: ["RECURSION_DETECTION"], + name: "recursionDetectionMiddleware", + override: true, + priority: "low" + }; + var getRecursionDetectionPlugin3 = /* @__PURE__ */ __name((options) => ({ + applyToStack: /* @__PURE__ */ __name((clientStack) => { + clientStack.add(recursionDetectionMiddleware(options), addRecursionDetectionMiddlewareOptions); + }, "applyToStack") + }), "getRecursionDetectionPlugin"); + } +}); + +// ../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/getSmithyContext.js +var import_types, getSmithyContext; +var init_getSmithyContext = __esm({ + "../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/getSmithyContext.js"() { + import_types = __toESM(require_dist_cjs()); + getSmithyContext = (context) => context[import_types.SMITHY_CONTEXT_KEY] || (context[import_types.SMITHY_CONTEXT_KEY] = {}); + } +}); + +// ../node_modules/.pnpm/@smithy+util-middleware@4.0.4/node_modules/@smithy/util-middleware/dist-cjs/index.js +var require_dist_cjs6 = __commonJS({ + "../node_modules/.pnpm/@smithy+util-middleware@4.0.4/node_modules/@smithy/util-middleware/dist-cjs/index.js"(exports2, module2) { + var __defProp3 = Object.defineProperty; + var __getOwnPropDesc3 = Object.getOwnPropertyDescriptor; + var __getOwnPropNames3 = Object.getOwnPropertyNames; + var __hasOwnProp3 = Object.prototype.hasOwnProperty; + var __name = (target, value) => __defProp3(target, "name", { value, configurable: true }); + var __export2 = (target, all) => { + for (var name in all) + __defProp3(target, name, { get: all[name], enumerable: true }); + }; + var __copyProps3 = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames3(from)) + if (!__hasOwnProp3.call(to, key) && key !== except) + __defProp3(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc3(from, key)) || desc.enumerable }); + } + return to; + }; + var __toCommonJS2 = (mod) => __copyProps3(__defProp3({}, "__esModule", { value: true }), mod); + var src_exports = {}; + __export2(src_exports, { + getSmithyContext: () => getSmithyContext8, + normalizeProvider: () => normalizeProvider4 + }); + module2.exports = __toCommonJS2(src_exports); + var import_types5 = require_dist_cjs(); + var getSmithyContext8 = /* @__PURE__ */ __name((context) => context[import_types5.SMITHY_CONTEXT_KEY] || (context[import_types5.SMITHY_CONTEXT_KEY] = {}), "getSmithyContext"); + var normalizeProvider4 = /* @__PURE__ */ __name((input) => { + if (typeof input === "function") + return input; + const promisified = Promise.resolve(input); + return () => promisified; + }, "normalizeProvider"); + } +}); + +// ../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/middleware-http-auth-scheme/resolveAuthOptions.js +var resolveAuthOptions; +var init_resolveAuthOptions = __esm({ + "../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/middleware-http-auth-scheme/resolveAuthOptions.js"() { + resolveAuthOptions = (candidateAuthOptions, authSchemePreference) => { + if (!authSchemePreference || authSchemePreference.length === 0) { + return candidateAuthOptions; + } + const preferredAuthOptions = []; + for (const preferredSchemeName of authSchemePreference) { + for (const candidateAuthOption of candidateAuthOptions) { + const candidateAuthSchemeName = candidateAuthOption.schemeId.split("#")[1]; + if (candidateAuthSchemeName === preferredSchemeName) { + preferredAuthOptions.push(candidateAuthOption); + } + } + } + for (const candidateAuthOption of candidateAuthOptions) { + if (!preferredAuthOptions.find(({ schemeId }) => schemeId === candidateAuthOption.schemeId)) { + preferredAuthOptions.push(candidateAuthOption); + } + } + return preferredAuthOptions; + }; + } +}); + +// ../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/middleware-http-auth-scheme/httpAuthSchemeMiddleware.js +function convertHttpAuthSchemesToMap(httpAuthSchemes) { + const map2 = /* @__PURE__ */ new Map(); + for (const scheme of httpAuthSchemes) { + map2.set(scheme.schemeId, scheme); + } + return map2; +} +var import_types2, import_util_middleware, httpAuthSchemeMiddleware; +var init_httpAuthSchemeMiddleware = __esm({ + "../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/middleware-http-auth-scheme/httpAuthSchemeMiddleware.js"() { + import_types2 = __toESM(require_dist_cjs()); + import_util_middleware = __toESM(require_dist_cjs6()); + init_resolveAuthOptions(); + httpAuthSchemeMiddleware = (config, mwOptions) => (next, context) => async (args) => { + var _a2; + const options = config.httpAuthSchemeProvider(await mwOptions.httpAuthSchemeParametersProvider(config, context, args.input)); + const authSchemePreference = config.authSchemePreference ? await config.authSchemePreference() : []; + const resolvedOptions = resolveAuthOptions(options, authSchemePreference); + const authSchemes = convertHttpAuthSchemesToMap(config.httpAuthSchemes); + const smithyContext = (0, import_util_middleware.getSmithyContext)(context); + const failureReasons = []; + for (const option of resolvedOptions) { + const scheme = authSchemes.get(option.schemeId); + if (!scheme) { + failureReasons.push(`HttpAuthScheme \`${option.schemeId}\` was not enabled for this service.`); + continue; + } + const identityProvider = scheme.identityProvider(await mwOptions.identityProviderConfigProvider(config)); + if (!identityProvider) { + failureReasons.push(`HttpAuthScheme \`${option.schemeId}\` did not have an IdentityProvider configured.`); + continue; + } + const { identityProperties = {}, signingProperties = {} } = ((_a2 = option.propertiesExtractor) == null ? void 0 : _a2.call(option, config, context)) || {}; + option.identityProperties = Object.assign(option.identityProperties || {}, identityProperties); + option.signingProperties = Object.assign(option.signingProperties || {}, signingProperties); + smithyContext.selectedHttpAuthScheme = { + httpAuthOption: option, + identity: await identityProvider(option.identityProperties), + signer: scheme.signer + }; + break; + } + if (!smithyContext.selectedHttpAuthScheme) { + throw new Error(failureReasons.join("\n")); + } + return next(args); + }; + } +}); + +// ../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/middleware-http-auth-scheme/getHttpAuthSchemeEndpointRuleSetPlugin.js +var httpAuthSchemeEndpointRuleSetMiddlewareOptions, getHttpAuthSchemeEndpointRuleSetPlugin; +var init_getHttpAuthSchemeEndpointRuleSetPlugin = __esm({ + "../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/middleware-http-auth-scheme/getHttpAuthSchemeEndpointRuleSetPlugin.js"() { + init_httpAuthSchemeMiddleware(); + httpAuthSchemeEndpointRuleSetMiddlewareOptions = { + step: "serialize", + tags: ["HTTP_AUTH_SCHEME"], + name: "httpAuthSchemeMiddleware", + override: true, + relation: "before", + toMiddleware: "endpointV2Middleware" + }; + getHttpAuthSchemeEndpointRuleSetPlugin = (config, { httpAuthSchemeParametersProvider, identityProviderConfigProvider }) => ({ + applyToStack: (clientStack) => { + clientStack.addRelativeTo(httpAuthSchemeMiddleware(config, { + httpAuthSchemeParametersProvider, + identityProviderConfigProvider + }), httpAuthSchemeEndpointRuleSetMiddlewareOptions); + } + }); + } +}); + +// ../node_modules/.pnpm/@smithy+middleware-serde@4.0.8/node_modules/@smithy/middleware-serde/dist-cjs/index.js +var require_dist_cjs7 = __commonJS({ + "../node_modules/.pnpm/@smithy+middleware-serde@4.0.8/node_modules/@smithy/middleware-serde/dist-cjs/index.js"(exports2, module2) { + var __defProp3 = Object.defineProperty; + var __getOwnPropDesc3 = Object.getOwnPropertyDescriptor; + var __getOwnPropNames3 = Object.getOwnPropertyNames; + var __hasOwnProp3 = Object.prototype.hasOwnProperty; + var __name = (target, value) => __defProp3(target, "name", { value, configurable: true }); + var __export2 = (target, all) => { + for (var name in all) + __defProp3(target, name, { get: all[name], enumerable: true }); + }; + var __copyProps3 = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames3(from)) + if (!__hasOwnProp3.call(to, key) && key !== except) + __defProp3(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc3(from, key)) || desc.enumerable }); + } + return to; + }; + var __toCommonJS2 = (mod) => __copyProps3(__defProp3({}, "__esModule", { value: true }), mod); + var src_exports = {}; + __export2(src_exports, { + deserializerMiddleware: () => deserializerMiddleware, + deserializerMiddlewareOption: () => deserializerMiddlewareOption, + getSerdePlugin: () => getSerdePlugin4, + serializerMiddleware: () => serializerMiddleware, + serializerMiddlewareOption: () => serializerMiddlewareOption2 + }); + module2.exports = __toCommonJS2(src_exports); + var import_protocol_http15 = require_dist_cjs2(); + var deserializerMiddleware = /* @__PURE__ */ __name((options, deserializer) => (next, context) => async (args) => { + var _a2, _b, _c, _d; + const { response } = await next(args); + try { + const parsed = await deserializer(response, options); + return { + response, + output: parsed + }; + } catch (error2) { + Object.defineProperty(error2, "$response", { + value: response + }); + if (!("$metadata" in error2)) { + const hint = `Deserialization error: to see the raw response, inspect the hidden field {error}.$response on this object.`; + try { + error2.message += "\n " + hint; + } catch (e4) { + if (!context.logger || ((_b = (_a2 = context.logger) == null ? void 0 : _a2.constructor) == null ? void 0 : _b.name) === "NoOpLogger") { + console.warn(hint); + } else { + (_d = (_c = context.logger) == null ? void 0 : _c.warn) == null ? void 0 : _d.call(_c, hint); + } + } + if (typeof error2.$responseBodyText !== "undefined") { + if (error2.$response) { + error2.$response.body = error2.$responseBodyText; + } + } + try { + if (import_protocol_http15.HttpResponse.isInstance(response)) { + const { headers = {} } = response; + const headerEntries = Object.entries(headers); + error2.$metadata = { + httpStatusCode: response.statusCode, + requestId: findHeader(/^x-[\w-]+-request-?id$/, headerEntries), + extendedRequestId: findHeader(/^x-[\w-]+-id-2$/, headerEntries), + cfId: findHeader(/^x-[\w-]+-cf-id$/, headerEntries) + }; + } + } catch (e4) { + } + } + throw error2; + } + }, "deserializerMiddleware"); + var findHeader = /* @__PURE__ */ __name((pattern, headers) => { + return (headers.find(([k3]) => { + return k3.match(pattern); + }) || [void 0, void 0])[1]; + }, "findHeader"); + var serializerMiddleware = /* @__PURE__ */ __name((options, serializer) => (next, context) => async (args) => { + var _a2; + const endpointConfig = options; + const endpoint = ((_a2 = context.endpointV2) == null ? void 0 : _a2.url) && endpointConfig.urlParser ? async () => endpointConfig.urlParser(context.endpointV2.url) : endpointConfig.endpoint; + if (!endpoint) { + throw new Error("No valid endpoint provider available."); + } + const request = await serializer(args.input, { ...options, endpoint }); + return next({ + ...args, + request + }); + }, "serializerMiddleware"); + var deserializerMiddlewareOption = { + name: "deserializerMiddleware", + step: "deserialize", + tags: ["DESERIALIZER"], + override: true + }; + var serializerMiddlewareOption2 = { + name: "serializerMiddleware", + step: "serialize", + tags: ["SERIALIZER"], + override: true + }; + function getSerdePlugin4(config, serializer, deserializer) { + return { + applyToStack: (commandStack) => { + commandStack.add(deserializerMiddleware(config, deserializer), deserializerMiddlewareOption); + commandStack.add(serializerMiddleware(config, serializer), serializerMiddlewareOption2); + } + }; + } + __name(getSerdePlugin4, "getSerdePlugin"); + } +}); + +// ../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/middleware-http-auth-scheme/getHttpAuthSchemePlugin.js +var import_middleware_serde, httpAuthSchemeMiddlewareOptions, getHttpAuthSchemePlugin; +var init_getHttpAuthSchemePlugin = __esm({ + "../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/middleware-http-auth-scheme/getHttpAuthSchemePlugin.js"() { + import_middleware_serde = __toESM(require_dist_cjs7()); + init_httpAuthSchemeMiddleware(); + httpAuthSchemeMiddlewareOptions = { + step: "serialize", + tags: ["HTTP_AUTH_SCHEME"], + name: "httpAuthSchemeMiddleware", + override: true, + relation: "before", + toMiddleware: import_middleware_serde.serializerMiddlewareOption.name + }; + getHttpAuthSchemePlugin = (config, { httpAuthSchemeParametersProvider, identityProviderConfigProvider }) => ({ + applyToStack: (clientStack) => { + clientStack.addRelativeTo(httpAuthSchemeMiddleware(config, { + httpAuthSchemeParametersProvider, + identityProviderConfigProvider + }), httpAuthSchemeMiddlewareOptions); + } + }); + } +}); + +// ../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/middleware-http-auth-scheme/index.js +var init_middleware_http_auth_scheme = __esm({ + "../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/middleware-http-auth-scheme/index.js"() { + init_httpAuthSchemeMiddleware(); + init_getHttpAuthSchemeEndpointRuleSetPlugin(); + init_getHttpAuthSchemePlugin(); + } +}); + +// ../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/middleware-http-signing/httpSigningMiddleware.js +var import_protocol_http, import_types3, import_util_middleware2, defaultErrorHandler, defaultSuccessHandler, httpSigningMiddleware; +var init_httpSigningMiddleware = __esm({ + "../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/middleware-http-signing/httpSigningMiddleware.js"() { + import_protocol_http = __toESM(require_dist_cjs2()); + import_types3 = __toESM(require_dist_cjs()); + import_util_middleware2 = __toESM(require_dist_cjs6()); + defaultErrorHandler = (signingProperties) => (error2) => { + throw error2; + }; + defaultSuccessHandler = (httpResponse, signingProperties) => { + }; + httpSigningMiddleware = (config) => (next, context) => async (args) => { + if (!import_protocol_http.HttpRequest.isInstance(args.request)) { + return next(args); + } + const smithyContext = (0, import_util_middleware2.getSmithyContext)(context); + const scheme = smithyContext.selectedHttpAuthScheme; + if (!scheme) { + throw new Error(`No HttpAuthScheme was selected: unable to sign request`); + } + const { httpAuthOption: { signingProperties = {} }, identity, signer } = scheme; + const output = await next({ + ...args, + request: await signer.sign(args.request, identity, signingProperties) + }).catch((signer.errorHandler || defaultErrorHandler)(signingProperties)); + (signer.successHandler || defaultSuccessHandler)(output.response, signingProperties); + return output; + }; + } +}); + +// ../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/middleware-http-signing/getHttpSigningMiddleware.js +var httpSigningMiddlewareOptions, getHttpSigningPlugin; +var init_getHttpSigningMiddleware = __esm({ + "../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/middleware-http-signing/getHttpSigningMiddleware.js"() { + init_httpSigningMiddleware(); + httpSigningMiddlewareOptions = { + step: "finalizeRequest", + tags: ["HTTP_SIGNING"], + name: "httpSigningMiddleware", + aliases: ["apiKeyMiddleware", "tokenMiddleware", "awsAuthMiddleware"], + override: true, + relation: "after", + toMiddleware: "retryMiddleware" + }; + getHttpSigningPlugin = (config) => ({ + applyToStack: (clientStack) => { + clientStack.addRelativeTo(httpSigningMiddleware(config), httpSigningMiddlewareOptions); + } + }); + } +}); + +// ../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/middleware-http-signing/index.js +var init_middleware_http_signing = __esm({ + "../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/middleware-http-signing/index.js"() { + init_httpSigningMiddleware(); + init_getHttpSigningMiddleware(); + } +}); + +// ../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/normalizeProvider.js +var normalizeProvider; +var init_normalizeProvider = __esm({ + "../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/normalizeProvider.js"() { + normalizeProvider = (input) => { + if (typeof input === "function") + return input; + const promisified = Promise.resolve(input); + return () => promisified; + }; + } +}); + +// ../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/pagination/createPaginator.js +function createPaginator(ClientCtor, CommandCtor, inputTokenName, outputTokenName, pageSizeTokenName) { + return async function* paginateOperation(config, input, ...additionalArguments) { + const _input = input; + let token = config.startingToken ?? _input[inputTokenName]; + let hasNext = true; + let page; + while (hasNext) { + _input[inputTokenName] = token; + if (pageSizeTokenName) { + _input[pageSizeTokenName] = _input[pageSizeTokenName] ?? config.pageSize; + } + if (config.client instanceof ClientCtor) { + page = await makePagedClientRequest(CommandCtor, config.client, input, config.withCommand, ...additionalArguments); + } else { + throw new Error(`Invalid client, expected instance of ${ClientCtor.name}`); + } + yield page; + const prevToken = token; + token = get(page, outputTokenName); + hasNext = !!(token && (!config.stopOnSameToken || token !== prevToken)); + } + return void 0; + }; +} +var makePagedClientRequest, get; +var init_createPaginator = __esm({ + "../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/pagination/createPaginator.js"() { + makePagedClientRequest = async (CommandCtor, client, input, withCommand = (_3) => _3, ...args) => { + let command = new CommandCtor(input); + command = withCommand(command) ?? command; + return await client.send(command, ...args); + }; + get = (fromObject, path4) => { + let cursor = fromObject; + const pathComponents = path4.split("."); + for (const step of pathComponents) { + if (!cursor || typeof cursor !== "object") { + return void 0; + } + cursor = cursor[step]; + } + return cursor; + }; + } +}); + +// ../node_modules/.pnpm/@smithy+is-array-buffer@4.0.0/node_modules/@smithy/is-array-buffer/dist-cjs/index.js +var require_dist_cjs8 = __commonJS({ + "../node_modules/.pnpm/@smithy+is-array-buffer@4.0.0/node_modules/@smithy/is-array-buffer/dist-cjs/index.js"(exports2, module2) { + var __defProp3 = Object.defineProperty; + var __getOwnPropDesc3 = Object.getOwnPropertyDescriptor; + var __getOwnPropNames3 = Object.getOwnPropertyNames; + var __hasOwnProp3 = Object.prototype.hasOwnProperty; + var __name = (target, value) => __defProp3(target, "name", { value, configurable: true }); + var __export2 = (target, all) => { + for (var name in all) + __defProp3(target, name, { get: all[name], enumerable: true }); + }; + var __copyProps3 = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames3(from)) + if (!__hasOwnProp3.call(to, key) && key !== except) + __defProp3(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc3(from, key)) || desc.enumerable }); + } + return to; + }; + var __toCommonJS2 = (mod) => __copyProps3(__defProp3({}, "__esModule", { value: true }), mod); + var src_exports = {}; + __export2(src_exports, { + isArrayBuffer: () => isArrayBuffer + }); + module2.exports = __toCommonJS2(src_exports); + var isArrayBuffer = /* @__PURE__ */ __name((arg) => typeof ArrayBuffer === "function" && arg instanceof ArrayBuffer || Object.prototype.toString.call(arg) === "[object ArrayBuffer]", "isArrayBuffer"); + } +}); + +// ../node_modules/.pnpm/@smithy+util-buffer-from@4.0.0/node_modules/@smithy/util-buffer-from/dist-cjs/index.js +var require_dist_cjs9 = __commonJS({ + "../node_modules/.pnpm/@smithy+util-buffer-from@4.0.0/node_modules/@smithy/util-buffer-from/dist-cjs/index.js"(exports2, module2) { + var __defProp3 = Object.defineProperty; + var __getOwnPropDesc3 = Object.getOwnPropertyDescriptor; + var __getOwnPropNames3 = Object.getOwnPropertyNames; + var __hasOwnProp3 = Object.prototype.hasOwnProperty; + var __name = (target, value) => __defProp3(target, "name", { value, configurable: true }); + var __export2 = (target, all) => { + for (var name in all) + __defProp3(target, name, { get: all[name], enumerable: true }); + }; + var __copyProps3 = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames3(from)) + if (!__hasOwnProp3.call(to, key) && key !== except) + __defProp3(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc3(from, key)) || desc.enumerable }); + } + return to; + }; + var __toCommonJS2 = (mod) => __copyProps3(__defProp3({}, "__esModule", { value: true }), mod); + var src_exports = {}; + __export2(src_exports, { + fromArrayBuffer: () => fromArrayBuffer, + fromString: () => fromString + }); + module2.exports = __toCommonJS2(src_exports); + var import_is_array_buffer = require_dist_cjs8(); + var import_buffer2 = require("buffer"); + var fromArrayBuffer = /* @__PURE__ */ __name((input, offset = 0, length = input.byteLength - offset) => { + if (!(0, import_is_array_buffer.isArrayBuffer)(input)) { + throw new TypeError(`The "input" argument must be ArrayBuffer. Received type ${typeof input} (${input})`); + } + return import_buffer2.Buffer.from(input, offset, length); + }, "fromArrayBuffer"); + var fromString = /* @__PURE__ */ __name((input, encoding) => { + if (typeof input !== "string") { + throw new TypeError(`The "input" argument must be of type string. Received type ${typeof input} (${input})`); + } + return encoding ? import_buffer2.Buffer.from(input, encoding) : import_buffer2.Buffer.from(input); + }, "fromString"); + } +}); + +// ../node_modules/.pnpm/@smithy+util-base64@4.0.0/node_modules/@smithy/util-base64/dist-cjs/fromBase64.js +var require_fromBase64 = __commonJS({ + "../node_modules/.pnpm/@smithy+util-base64@4.0.0/node_modules/@smithy/util-base64/dist-cjs/fromBase64.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.fromBase64 = void 0; + var util_buffer_from_1 = require_dist_cjs9(); + var BASE64_REGEX = /^[A-Za-z0-9+/]*={0,2}$/; + var fromBase645 = (input) => { + if (input.length * 3 % 4 !== 0) { + throw new TypeError(`Incorrect padding on base64 string.`); + } + if (!BASE64_REGEX.exec(input)) { + throw new TypeError(`Invalid base64 string.`); + } + const buffer = (0, util_buffer_from_1.fromString)(input, "base64"); + return new Uint8Array(buffer.buffer, buffer.byteOffset, buffer.byteLength); + }; + exports2.fromBase64 = fromBase645; + } +}); + +// ../node_modules/.pnpm/@smithy+util-utf8@4.0.0/node_modules/@smithy/util-utf8/dist-cjs/index.js +var require_dist_cjs10 = __commonJS({ + "../node_modules/.pnpm/@smithy+util-utf8@4.0.0/node_modules/@smithy/util-utf8/dist-cjs/index.js"(exports2, module2) { + var __defProp3 = Object.defineProperty; + var __getOwnPropDesc3 = Object.getOwnPropertyDescriptor; + var __getOwnPropNames3 = Object.getOwnPropertyNames; + var __hasOwnProp3 = Object.prototype.hasOwnProperty; + var __name = (target, value) => __defProp3(target, "name", { value, configurable: true }); + var __export2 = (target, all) => { + for (var name in all) + __defProp3(target, name, { get: all[name], enumerable: true }); + }; + var __copyProps3 = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames3(from)) + if (!__hasOwnProp3.call(to, key) && key !== except) + __defProp3(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc3(from, key)) || desc.enumerable }); + } + return to; + }; + var __toCommonJS2 = (mod) => __copyProps3(__defProp3({}, "__esModule", { value: true }), mod); + var src_exports = {}; + __export2(src_exports, { + fromUtf8: () => fromUtf84, + toUint8Array: () => toUint8Array, + toUtf8: () => toUtf85 + }); + module2.exports = __toCommonJS2(src_exports); + var import_util_buffer_from = require_dist_cjs9(); + var fromUtf84 = /* @__PURE__ */ __name((input) => { + const buf = (0, import_util_buffer_from.fromString)(input, "utf8"); + return new Uint8Array(buf.buffer, buf.byteOffset, buf.byteLength / Uint8Array.BYTES_PER_ELEMENT); + }, "fromUtf8"); + var toUint8Array = /* @__PURE__ */ __name((data) => { + if (typeof data === "string") { + return fromUtf84(data); + } + if (ArrayBuffer.isView(data)) { + return new Uint8Array(data.buffer, data.byteOffset, data.byteLength / Uint8Array.BYTES_PER_ELEMENT); + } + return new Uint8Array(data); + }, "toUint8Array"); + var toUtf85 = /* @__PURE__ */ __name((input) => { + if (typeof input === "string") { + return input; + } + if (typeof input !== "object" || typeof input.byteOffset !== "number" || typeof input.byteLength !== "number") { + throw new Error("@smithy/util-utf8: toUtf8 encoder function only accepts string | Uint8Array."); + } + return (0, import_util_buffer_from.fromArrayBuffer)(input.buffer, input.byteOffset, input.byteLength).toString("utf8"); + }, "toUtf8"); + } +}); + +// ../node_modules/.pnpm/@smithy+util-base64@4.0.0/node_modules/@smithy/util-base64/dist-cjs/toBase64.js +var require_toBase64 = __commonJS({ + "../node_modules/.pnpm/@smithy+util-base64@4.0.0/node_modules/@smithy/util-base64/dist-cjs/toBase64.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.toBase64 = void 0; + var util_buffer_from_1 = require_dist_cjs9(); + var util_utf8_1 = require_dist_cjs10(); + var toBase645 = (_input) => { + let input; + if (typeof _input === "string") { + input = (0, util_utf8_1.fromUtf8)(_input); + } else { + input = _input; + } + if (typeof input !== "object" || typeof input.byteOffset !== "number" || typeof input.byteLength !== "number") { + throw new Error("@smithy/util-base64: toBase64 encoder function only accepts string | Uint8Array."); + } + return (0, util_buffer_from_1.fromArrayBuffer)(input.buffer, input.byteOffset, input.byteLength).toString("base64"); + }; + exports2.toBase64 = toBase645; + } +}); + +// ../node_modules/.pnpm/@smithy+util-base64@4.0.0/node_modules/@smithy/util-base64/dist-cjs/index.js +var require_dist_cjs11 = __commonJS({ + "../node_modules/.pnpm/@smithy+util-base64@4.0.0/node_modules/@smithy/util-base64/dist-cjs/index.js"(exports2, module2) { + var __defProp3 = Object.defineProperty; + var __getOwnPropDesc3 = Object.getOwnPropertyDescriptor; + var __getOwnPropNames3 = Object.getOwnPropertyNames; + var __hasOwnProp3 = Object.prototype.hasOwnProperty; + var __copyProps3 = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames3(from)) + if (!__hasOwnProp3.call(to, key) && key !== except) + __defProp3(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc3(from, key)) || desc.enumerable }); + } + return to; + }; + var __reExport = (target, mod, secondTarget) => (__copyProps3(target, mod, "default"), secondTarget && __copyProps3(secondTarget, mod, "default")); + var __toCommonJS2 = (mod) => __copyProps3(__defProp3({}, "__esModule", { value: true }), mod); + var src_exports = {}; + module2.exports = __toCommonJS2(src_exports); + __reExport(src_exports, require_fromBase64(), module2.exports); + __reExport(src_exports, require_toBase64(), module2.exports); + } +}); + +// ../node_modules/.pnpm/@smithy+util-stream@4.2.2/node_modules/@smithy/util-stream/dist-cjs/checksum/ChecksumStream.js +var require_ChecksumStream = __commonJS({ + "../node_modules/.pnpm/@smithy+util-stream@4.2.2/node_modules/@smithy/util-stream/dist-cjs/checksum/ChecksumStream.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ChecksumStream = void 0; + var util_base64_1 = require_dist_cjs11(); + var stream_1 = require("stream"); + var ChecksumStream2 = class extends stream_1.Duplex { + constructor({ expectedChecksum, checksum, source, checksumSourceLocation, base64Encoder }) { + var _a2, _b; + super(); + if (typeof source.pipe === "function") { + this.source = source; + } else { + throw new Error(`@smithy/util-stream: unsupported source type ${(_b = (_a2 = source === null || source === void 0 ? void 0 : source.constructor) === null || _a2 === void 0 ? void 0 : _a2.name) !== null && _b !== void 0 ? _b : source} in ChecksumStream.`); + } + this.base64Encoder = base64Encoder !== null && base64Encoder !== void 0 ? base64Encoder : util_base64_1.toBase64; + this.expectedChecksum = expectedChecksum; + this.checksum = checksum; + this.checksumSourceLocation = checksumSourceLocation; + this.source.pipe(this); + } + _read(size) { + } + _write(chunk, encoding, callback) { + try { + this.checksum.update(chunk); + this.push(chunk); + } catch (e4) { + return callback(e4); + } + return callback(); + } + async _final(callback) { + try { + const digest = await this.checksum.digest(); + const received = this.base64Encoder(digest); + if (this.expectedChecksum !== received) { + return callback(new Error(`Checksum mismatch: expected "${this.expectedChecksum}" but received "${received}" in response header "${this.checksumSourceLocation}".`)); + } + } catch (e4) { + return callback(e4); + } + this.push(null); + return callback(); + } + }; + exports2.ChecksumStream = ChecksumStream2; + } +}); + +// ../node_modules/.pnpm/@smithy+util-stream@4.2.2/node_modules/@smithy/util-stream/dist-cjs/stream-type-check.js +var require_stream_type_check = __commonJS({ + "../node_modules/.pnpm/@smithy+util-stream@4.2.2/node_modules/@smithy/util-stream/dist-cjs/stream-type-check.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.isBlob = exports2.isReadableStream = void 0; + var isReadableStream2 = (stream) => { + var _a2; + return typeof ReadableStream === "function" && (((_a2 = stream === null || stream === void 0 ? void 0 : stream.constructor) === null || _a2 === void 0 ? void 0 : _a2.name) === ReadableStream.name || stream instanceof ReadableStream); + }; + exports2.isReadableStream = isReadableStream2; + var isBlob3 = (blob) => { + var _a2; + return typeof Blob === "function" && (((_a2 = blob === null || blob === void 0 ? void 0 : blob.constructor) === null || _a2 === void 0 ? void 0 : _a2.name) === Blob.name || blob instanceof Blob); + }; + exports2.isBlob = isBlob3; + } +}); + +// ../node_modules/.pnpm/@smithy+util-stream@4.2.2/node_modules/@smithy/util-stream/dist-cjs/checksum/ChecksumStream.browser.js +var require_ChecksumStream_browser = __commonJS({ + "../node_modules/.pnpm/@smithy+util-stream@4.2.2/node_modules/@smithy/util-stream/dist-cjs/checksum/ChecksumStream.browser.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ChecksumStream = void 0; + var ReadableStreamRef = typeof ReadableStream === "function" ? ReadableStream : function() { + }; + var ChecksumStream2 = class extends ReadableStreamRef { + }; + exports2.ChecksumStream = ChecksumStream2; + } +}); + +// ../node_modules/.pnpm/@smithy+util-stream@4.2.2/node_modules/@smithy/util-stream/dist-cjs/checksum/createChecksumStream.browser.js +var require_createChecksumStream_browser = __commonJS({ + "../node_modules/.pnpm/@smithy+util-stream@4.2.2/node_modules/@smithy/util-stream/dist-cjs/checksum/createChecksumStream.browser.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.createChecksumStream = void 0; + var util_base64_1 = require_dist_cjs11(); + var stream_type_check_1 = require_stream_type_check(); + var ChecksumStream_browser_1 = require_ChecksumStream_browser(); + var createChecksumStream2 = ({ expectedChecksum, checksum, source, checksumSourceLocation, base64Encoder }) => { + var _a2, _b; + if (!(0, stream_type_check_1.isReadableStream)(source)) { + throw new Error(`@smithy/util-stream: unsupported source type ${(_b = (_a2 = source === null || source === void 0 ? void 0 : source.constructor) === null || _a2 === void 0 ? void 0 : _a2.name) !== null && _b !== void 0 ? _b : source} in ChecksumStream.`); + } + const encoder = base64Encoder !== null && base64Encoder !== void 0 ? base64Encoder : util_base64_1.toBase64; + if (typeof TransformStream !== "function") { + throw new Error("@smithy/util-stream: unable to instantiate ChecksumStream because API unavailable: ReadableStream/TransformStream."); + } + const transform = new TransformStream({ + start() { + }, + async transform(chunk, controller) { + checksum.update(chunk); + controller.enqueue(chunk); + }, + async flush(controller) { + const digest = await checksum.digest(); + const received = encoder(digest); + if (expectedChecksum !== received) { + const error2 = new Error(`Checksum mismatch: expected "${expectedChecksum}" but received "${received}" in response header "${checksumSourceLocation}".`); + controller.error(error2); + } else { + controller.terminate(); + } + } + }); + source.pipeThrough(transform); + const readable = transform.readable; + Object.setPrototypeOf(readable, ChecksumStream_browser_1.ChecksumStream.prototype); + return readable; + }; + exports2.createChecksumStream = createChecksumStream2; + } +}); + +// ../node_modules/.pnpm/@smithy+util-stream@4.2.2/node_modules/@smithy/util-stream/dist-cjs/checksum/createChecksumStream.js +var require_createChecksumStream = __commonJS({ + "../node_modules/.pnpm/@smithy+util-stream@4.2.2/node_modules/@smithy/util-stream/dist-cjs/checksum/createChecksumStream.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.createChecksumStream = createChecksumStream2; + var stream_type_check_1 = require_stream_type_check(); + var ChecksumStream_1 = require_ChecksumStream(); + var createChecksumStream_browser_1 = require_createChecksumStream_browser(); + function createChecksumStream2(init2) { + if (typeof ReadableStream === "function" && (0, stream_type_check_1.isReadableStream)(init2.source)) { + return (0, createChecksumStream_browser_1.createChecksumStream)(init2); + } + return new ChecksumStream_1.ChecksumStream(init2); + } + } +}); + +// ../node_modules/.pnpm/@smithy+util-stream@4.2.2/node_modules/@smithy/util-stream/dist-cjs/ByteArrayCollector.js +var require_ByteArrayCollector = __commonJS({ + "../node_modules/.pnpm/@smithy+util-stream@4.2.2/node_modules/@smithy/util-stream/dist-cjs/ByteArrayCollector.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ByteArrayCollector = void 0; + var ByteArrayCollector = class { + constructor(allocByteArray) { + this.allocByteArray = allocByteArray; + this.byteLength = 0; + this.byteArrays = []; + } + push(byteArray) { + this.byteArrays.push(byteArray); + this.byteLength += byteArray.byteLength; + } + flush() { + if (this.byteArrays.length === 1) { + const bytes = this.byteArrays[0]; + this.reset(); + return bytes; + } + const aggregation = this.allocByteArray(this.byteLength); + let cursor = 0; + for (let i4 = 0; i4 < this.byteArrays.length; ++i4) { + const bytes = this.byteArrays[i4]; + aggregation.set(bytes, cursor); + cursor += bytes.byteLength; + } + this.reset(); + return aggregation; + } + reset() { + this.byteArrays = []; + this.byteLength = 0; + } + }; + exports2.ByteArrayCollector = ByteArrayCollector; + } +}); + +// ../node_modules/.pnpm/@smithy+util-stream@4.2.2/node_modules/@smithy/util-stream/dist-cjs/createBufferedReadableStream.js +var require_createBufferedReadableStream = __commonJS({ + "../node_modules/.pnpm/@smithy+util-stream@4.2.2/node_modules/@smithy/util-stream/dist-cjs/createBufferedReadableStream.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.createBufferedReadable = void 0; + exports2.createBufferedReadableStream = createBufferedReadableStream; + exports2.merge = merge; + exports2.flush = flush; + exports2.sizeOf = sizeOf; + exports2.modeOf = modeOf; + var ByteArrayCollector_1 = require_ByteArrayCollector(); + function createBufferedReadableStream(upstream, size, logger3) { + const reader = upstream.getReader(); + let streamBufferingLoggedWarning = false; + let bytesSeen = 0; + const buffers = ["", new ByteArrayCollector_1.ByteArrayCollector((size2) => new Uint8Array(size2))]; + let mode = -1; + const pull2 = async (controller) => { + const { value, done } = await reader.read(); + const chunk = value; + if (done) { + if (mode !== -1) { + const remainder = flush(buffers, mode); + if (sizeOf(remainder) > 0) { + controller.enqueue(remainder); + } + } + controller.close(); + } else { + const chunkMode = modeOf(chunk, false); + if (mode !== chunkMode) { + if (mode >= 0) { + controller.enqueue(flush(buffers, mode)); + } + mode = chunkMode; + } + if (mode === -1) { + controller.enqueue(chunk); + return; + } + const chunkSize = sizeOf(chunk); + bytesSeen += chunkSize; + const bufferSize = sizeOf(buffers[mode]); + if (chunkSize >= size && bufferSize === 0) { + controller.enqueue(chunk); + } else { + const newSize = merge(buffers, mode, chunk); + if (!streamBufferingLoggedWarning && bytesSeen > size * 2) { + streamBufferingLoggedWarning = true; + logger3 === null || logger3 === void 0 ? void 0 : logger3.warn(`@smithy/util-stream - stream chunk size ${chunkSize} is below threshold of ${size}, automatically buffering.`); + } + if (newSize >= size) { + controller.enqueue(flush(buffers, mode)); + } else { + await pull2(controller); + } + } + } + }; + return new ReadableStream({ + pull: pull2 + }); + } + exports2.createBufferedReadable = createBufferedReadableStream; + function merge(buffers, mode, chunk) { + switch (mode) { + case 0: + buffers[0] += chunk; + return sizeOf(buffers[0]); + case 1: + case 2: + buffers[mode].push(chunk); + return sizeOf(buffers[mode]); + } + } + function flush(buffers, mode) { + switch (mode) { + case 0: + const s4 = buffers[0]; + buffers[0] = ""; + return s4; + case 1: + case 2: + return buffers[mode].flush(); + } + throw new Error(`@smithy/util-stream - invalid index ${mode} given to flush()`); + } + function sizeOf(chunk) { + var _a2, _b; + return (_b = (_a2 = chunk === null || chunk === void 0 ? void 0 : chunk.byteLength) !== null && _a2 !== void 0 ? _a2 : chunk === null || chunk === void 0 ? void 0 : chunk.length) !== null && _b !== void 0 ? _b : 0; + } + function modeOf(chunk, allowBuffer = true) { + if (allowBuffer && typeof Buffer !== "undefined" && chunk instanceof Buffer) { + return 2; + } + if (chunk instanceof Uint8Array) { + return 1; + } + if (typeof chunk === "string") { + return 0; + } + return -1; + } + } +}); + +// ../node_modules/.pnpm/@smithy+util-stream@4.2.2/node_modules/@smithy/util-stream/dist-cjs/createBufferedReadable.js +var require_createBufferedReadable = __commonJS({ + "../node_modules/.pnpm/@smithy+util-stream@4.2.2/node_modules/@smithy/util-stream/dist-cjs/createBufferedReadable.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.createBufferedReadable = createBufferedReadable2; + var node_stream_1 = require("node:stream"); + var ByteArrayCollector_1 = require_ByteArrayCollector(); + var createBufferedReadableStream_1 = require_createBufferedReadableStream(); + var stream_type_check_1 = require_stream_type_check(); + function createBufferedReadable2(upstream, size, logger3) { + if ((0, stream_type_check_1.isReadableStream)(upstream)) { + return (0, createBufferedReadableStream_1.createBufferedReadableStream)(upstream, size, logger3); + } + const downstream = new node_stream_1.Readable({ read() { + } }); + let streamBufferingLoggedWarning = false; + let bytesSeen = 0; + const buffers = [ + "", + new ByteArrayCollector_1.ByteArrayCollector((size2) => new Uint8Array(size2)), + new ByteArrayCollector_1.ByteArrayCollector((size2) => Buffer.from(new Uint8Array(size2))) + ]; + let mode = -1; + upstream.on("data", (chunk) => { + const chunkMode = (0, createBufferedReadableStream_1.modeOf)(chunk, true); + if (mode !== chunkMode) { + if (mode >= 0) { + downstream.push((0, createBufferedReadableStream_1.flush)(buffers, mode)); + } + mode = chunkMode; + } + if (mode === -1) { + downstream.push(chunk); + return; + } + const chunkSize = (0, createBufferedReadableStream_1.sizeOf)(chunk); + bytesSeen += chunkSize; + const bufferSize = (0, createBufferedReadableStream_1.sizeOf)(buffers[mode]); + if (chunkSize >= size && bufferSize === 0) { + downstream.push(chunk); + } else { + const newSize = (0, createBufferedReadableStream_1.merge)(buffers, mode, chunk); + if (!streamBufferingLoggedWarning && bytesSeen > size * 2) { + streamBufferingLoggedWarning = true; + logger3 === null || logger3 === void 0 ? void 0 : logger3.warn(`@smithy/util-stream - stream chunk size ${chunkSize} is below threshold of ${size}, automatically buffering.`); + } + if (newSize >= size) { + downstream.push((0, createBufferedReadableStream_1.flush)(buffers, mode)); + } + } + }); + upstream.on("end", () => { + if (mode !== -1) { + const remainder = (0, createBufferedReadableStream_1.flush)(buffers, mode); + if ((0, createBufferedReadableStream_1.sizeOf)(remainder) > 0) { + downstream.push(remainder); + } + } + downstream.push(null); + }); + return downstream; + } + } +}); + +// ../node_modules/.pnpm/@smithy+util-stream@4.2.2/node_modules/@smithy/util-stream/dist-cjs/getAwsChunkedEncodingStream.js +var require_getAwsChunkedEncodingStream = __commonJS({ + "../node_modules/.pnpm/@smithy+util-stream@4.2.2/node_modules/@smithy/util-stream/dist-cjs/getAwsChunkedEncodingStream.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.getAwsChunkedEncodingStream = void 0; + var stream_1 = require("stream"); + var getAwsChunkedEncodingStream2 = (readableStream, options) => { + const { base64Encoder, bodyLengthChecker, checksumAlgorithmFn, checksumLocationName, streamHasher } = options; + const checksumRequired = base64Encoder !== void 0 && checksumAlgorithmFn !== void 0 && checksumLocationName !== void 0 && streamHasher !== void 0; + const digest = checksumRequired ? streamHasher(checksumAlgorithmFn, readableStream) : void 0; + const awsChunkedEncodingStream = new stream_1.Readable({ read: () => { + } }); + readableStream.on("data", (data) => { + const length = bodyLengthChecker(data) || 0; + awsChunkedEncodingStream.push(`${length.toString(16)}\r +`); + awsChunkedEncodingStream.push(data); + awsChunkedEncodingStream.push("\r\n"); + }); + readableStream.on("end", async () => { + awsChunkedEncodingStream.push(`0\r +`); + if (checksumRequired) { + const checksum = base64Encoder(await digest); + awsChunkedEncodingStream.push(`${checksumLocationName}:${checksum}\r +`); + awsChunkedEncodingStream.push(`\r +`); + } + awsChunkedEncodingStream.push(null); + }); + return awsChunkedEncodingStream; + }; + exports2.getAwsChunkedEncodingStream = getAwsChunkedEncodingStream2; + } +}); + +// ../node_modules/.pnpm/@smithy+util-stream@4.2.2/node_modules/@smithy/util-stream/dist-cjs/headStream.browser.js +var require_headStream_browser = __commonJS({ + "../node_modules/.pnpm/@smithy+util-stream@4.2.2/node_modules/@smithy/util-stream/dist-cjs/headStream.browser.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.headStream = headStream2; + async function headStream2(stream, bytes) { + var _a2; + let byteLengthCounter = 0; + const chunks = []; + const reader = stream.getReader(); + let isDone = false; + while (!isDone) { + const { done, value } = await reader.read(); + if (value) { + chunks.push(value); + byteLengthCounter += (_a2 = value === null || value === void 0 ? void 0 : value.byteLength) !== null && _a2 !== void 0 ? _a2 : 0; + } + if (byteLengthCounter >= bytes) { + break; + } + isDone = done; + } + reader.releaseLock(); + const collected = new Uint8Array(Math.min(bytes, byteLengthCounter)); + let offset = 0; + for (const chunk of chunks) { + if (chunk.byteLength > collected.byteLength - offset) { + collected.set(chunk.subarray(0, collected.byteLength - offset), offset); + break; + } else { + collected.set(chunk, offset); + } + offset += chunk.length; + } + return collected; + } + } +}); + +// ../node_modules/.pnpm/@smithy+util-stream@4.2.2/node_modules/@smithy/util-stream/dist-cjs/headStream.js +var require_headStream = __commonJS({ + "../node_modules/.pnpm/@smithy+util-stream@4.2.2/node_modules/@smithy/util-stream/dist-cjs/headStream.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.headStream = void 0; + var stream_1 = require("stream"); + var headStream_browser_1 = require_headStream_browser(); + var stream_type_check_1 = require_stream_type_check(); + var headStream2 = (stream, bytes) => { + if ((0, stream_type_check_1.isReadableStream)(stream)) { + return (0, headStream_browser_1.headStream)(stream, bytes); + } + return new Promise((resolve2, reject) => { + const collector = new Collector(); + collector.limit = bytes; + stream.pipe(collector); + stream.on("error", (err2) => { + collector.end(); + reject(err2); + }); + collector.on("error", reject); + collector.on("finish", function() { + const bytes2 = new Uint8Array(Buffer.concat(this.buffers)); + resolve2(bytes2); + }); + }); + }; + exports2.headStream = headStream2; + var Collector = class extends stream_1.Writable { + constructor() { + super(...arguments); + this.buffers = []; + this.limit = Infinity; + this.bytesBuffered = 0; + } + _write(chunk, encoding, callback) { + var _a2; + this.buffers.push(chunk); + this.bytesBuffered += (_a2 = chunk.byteLength) !== null && _a2 !== void 0 ? _a2 : 0; + if (this.bytesBuffered >= this.limit) { + const excess = this.bytesBuffered - this.limit; + const tailBuffer = this.buffers[this.buffers.length - 1]; + this.buffers[this.buffers.length - 1] = tailBuffer.subarray(0, tailBuffer.byteLength - excess); + this.emit("finish"); + } + callback(); + } + }; + } +}); + +// ../node_modules/.pnpm/@smithy+util-uri-escape@4.0.0/node_modules/@smithy/util-uri-escape/dist-cjs/index.js +var require_dist_cjs12 = __commonJS({ + "../node_modules/.pnpm/@smithy+util-uri-escape@4.0.0/node_modules/@smithy/util-uri-escape/dist-cjs/index.js"(exports2, module2) { + var __defProp3 = Object.defineProperty; + var __getOwnPropDesc3 = Object.getOwnPropertyDescriptor; + var __getOwnPropNames3 = Object.getOwnPropertyNames; + var __hasOwnProp3 = Object.prototype.hasOwnProperty; + var __name = (target, value) => __defProp3(target, "name", { value, configurable: true }); + var __export2 = (target, all) => { + for (var name in all) + __defProp3(target, name, { get: all[name], enumerable: true }); + }; + var __copyProps3 = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames3(from)) + if (!__hasOwnProp3.call(to, key) && key !== except) + __defProp3(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc3(from, key)) || desc.enumerable }); + } + return to; + }; + var __toCommonJS2 = (mod) => __copyProps3(__defProp3({}, "__esModule", { value: true }), mod); + var src_exports = {}; + __export2(src_exports, { + escapeUri: () => escapeUri, + escapeUriPath: () => escapeUriPath + }); + module2.exports = __toCommonJS2(src_exports); + var escapeUri = /* @__PURE__ */ __name((uri) => ( + // AWS percent-encodes some extra non-standard characters in a URI + encodeURIComponent(uri).replace(/[!'()*]/g, hexEncode) + ), "escapeUri"); + var hexEncode = /* @__PURE__ */ __name((c3) => `%${c3.charCodeAt(0).toString(16).toUpperCase()}`, "hexEncode"); + var escapeUriPath = /* @__PURE__ */ __name((uri) => uri.split("/").map(escapeUri).join("/"), "escapeUriPath"); + } +}); + +// ../node_modules/.pnpm/@smithy+querystring-builder@4.0.4/node_modules/@smithy/querystring-builder/dist-cjs/index.js +var require_dist_cjs13 = __commonJS({ + "../node_modules/.pnpm/@smithy+querystring-builder@4.0.4/node_modules/@smithy/querystring-builder/dist-cjs/index.js"(exports2, module2) { + var __defProp3 = Object.defineProperty; + var __getOwnPropDesc3 = Object.getOwnPropertyDescriptor; + var __getOwnPropNames3 = Object.getOwnPropertyNames; + var __hasOwnProp3 = Object.prototype.hasOwnProperty; + var __name = (target, value) => __defProp3(target, "name", { value, configurable: true }); + var __export2 = (target, all) => { + for (var name in all) + __defProp3(target, name, { get: all[name], enumerable: true }); + }; + var __copyProps3 = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames3(from)) + if (!__hasOwnProp3.call(to, key) && key !== except) + __defProp3(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc3(from, key)) || desc.enumerable }); + } + return to; + }; + var __toCommonJS2 = (mod) => __copyProps3(__defProp3({}, "__esModule", { value: true }), mod); + var src_exports = {}; + __export2(src_exports, { + buildQueryString: () => buildQueryString + }); + module2.exports = __toCommonJS2(src_exports); + var import_util_uri_escape = require_dist_cjs12(); + function buildQueryString(query) { + const parts = []; + for (let key of Object.keys(query).sort()) { + const value = query[key]; + key = (0, import_util_uri_escape.escapeUri)(key); + if (Array.isArray(value)) { + for (let i4 = 0, iLen = value.length; i4 < iLen; i4++) { + parts.push(`${key}=${(0, import_util_uri_escape.escapeUri)(value[i4])}`); + } + } else { + let qsEntry = key; + if (value || typeof value === "string") { + qsEntry += `=${(0, import_util_uri_escape.escapeUri)(value)}`; + } + parts.push(qsEntry); + } + } + return parts.join("&"); + } + __name(buildQueryString, "buildQueryString"); + } +}); + +// ../node_modules/.pnpm/@smithy+node-http-handler@4.0.6/node_modules/@smithy/node-http-handler/dist-cjs/index.js +var require_dist_cjs14 = __commonJS({ + "../node_modules/.pnpm/@smithy+node-http-handler@4.0.6/node_modules/@smithy/node-http-handler/dist-cjs/index.js"(exports2, module2) { + var __create3 = Object.create; + var __defProp3 = Object.defineProperty; + var __getOwnPropDesc3 = Object.getOwnPropertyDescriptor; + var __getOwnPropNames3 = Object.getOwnPropertyNames; + var __getProtoOf3 = Object.getPrototypeOf; + var __hasOwnProp3 = Object.prototype.hasOwnProperty; + var __name = (target, value) => __defProp3(target, "name", { value, configurable: true }); + var __export2 = (target, all) => { + for (var name in all) + __defProp3(target, name, { get: all[name], enumerable: true }); + }; + var __copyProps3 = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames3(from)) + if (!__hasOwnProp3.call(to, key) && key !== except) + __defProp3(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc3(from, key)) || desc.enumerable }); + } + return to; + }; + var __toESM3 = (mod, isNodeMode, target) => (target = mod != null ? __create3(__getProtoOf3(mod)) : {}, __copyProps3( + // If the importer is in node compatibility mode or this is not an ESM + // file that has been converted to a CommonJS file using a Babel- + // compatible transform (i.e. "__esModule" has not been set), then set + // "default" to the CommonJS "module.exports" for node compatibility. + isNodeMode || !mod || !mod.__esModule ? __defProp3(target, "default", { value: mod, enumerable: true }) : target, + mod + )); + var __toCommonJS2 = (mod) => __copyProps3(__defProp3({}, "__esModule", { value: true }), mod); + var src_exports = {}; + __export2(src_exports, { + DEFAULT_REQUEST_TIMEOUT: () => DEFAULT_REQUEST_TIMEOUT, + NodeHttp2Handler: () => NodeHttp2Handler, + NodeHttpHandler: () => NodeHttpHandler, + streamCollector: () => streamCollector3 + }); + module2.exports = __toCommonJS2(src_exports); + var import_protocol_http15 = require_dist_cjs2(); + var import_querystring_builder = require_dist_cjs13(); + var import_http3 = require("http"); + var import_https = require("https"); + var NODEJS_TIMEOUT_ERROR_CODES = ["ECONNRESET", "EPIPE", "ETIMEDOUT"]; + var getTransformedHeaders = /* @__PURE__ */ __name((headers) => { + const transformedHeaders = {}; + for (const name of Object.keys(headers)) { + const headerValues = headers[name]; + transformedHeaders[name] = Array.isArray(headerValues) ? headerValues.join(",") : headerValues; + } + return transformedHeaders; + }, "getTransformedHeaders"); + var timing = { + setTimeout: (cb, ms) => setTimeout(cb, ms), + clearTimeout: (timeoutId) => clearTimeout(timeoutId) + }; + var DEFER_EVENT_LISTENER_TIME = 1e3; + var setConnectionTimeout = /* @__PURE__ */ __name((request, reject, timeoutInMs = 0) => { + if (!timeoutInMs) { + return -1; + } + const registerTimeout = /* @__PURE__ */ __name((offset) => { + const timeoutId = timing.setTimeout(() => { + request.destroy(); + reject( + Object.assign(new Error(`Socket timed out without establishing a connection within ${timeoutInMs} ms`), { + name: "TimeoutError" + }) + ); + }, timeoutInMs - offset); + const doWithSocket = /* @__PURE__ */ __name((socket) => { + if (socket == null ? void 0 : socket.connecting) { + socket.on("connect", () => { + timing.clearTimeout(timeoutId); + }); + } else { + timing.clearTimeout(timeoutId); + } + }, "doWithSocket"); + if (request.socket) { + doWithSocket(request.socket); + } else { + request.on("socket", doWithSocket); + } + }, "registerTimeout"); + if (timeoutInMs < 2e3) { + registerTimeout(0); + return 0; + } + return timing.setTimeout(registerTimeout.bind(null, DEFER_EVENT_LISTENER_TIME), DEFER_EVENT_LISTENER_TIME); + }, "setConnectionTimeout"); + var DEFER_EVENT_LISTENER_TIME2 = 3e3; + var setSocketKeepAlive = /* @__PURE__ */ __name((request, { keepAlive, keepAliveMsecs }, deferTimeMs = DEFER_EVENT_LISTENER_TIME2) => { + if (keepAlive !== true) { + return -1; + } + const registerListener = /* @__PURE__ */ __name(() => { + if (request.socket) { + request.socket.setKeepAlive(keepAlive, keepAliveMsecs || 0); + } else { + request.on("socket", (socket) => { + socket.setKeepAlive(keepAlive, keepAliveMsecs || 0); + }); + } + }, "registerListener"); + if (deferTimeMs === 0) { + registerListener(); + return 0; + } + return timing.setTimeout(registerListener, deferTimeMs); + }, "setSocketKeepAlive"); + var DEFER_EVENT_LISTENER_TIME3 = 3e3; + var setSocketTimeout = /* @__PURE__ */ __name((request, reject, timeoutInMs = DEFAULT_REQUEST_TIMEOUT) => { + const registerTimeout = /* @__PURE__ */ __name((offset) => { + const timeout = timeoutInMs - offset; + const onTimeout = /* @__PURE__ */ __name(() => { + request.destroy(); + reject(Object.assign(new Error(`Connection timed out after ${timeoutInMs} ms`), { name: "TimeoutError" })); + }, "onTimeout"); + if (request.socket) { + request.socket.setTimeout(timeout, onTimeout); + request.on("close", () => { + var _a7; + return (_a7 = request.socket) == null ? void 0 : _a7.removeListener("timeout", onTimeout); + }); + } else { + request.setTimeout(timeout, onTimeout); + } + }, "registerTimeout"); + if (0 < timeoutInMs && timeoutInMs < 6e3) { + registerTimeout(0); + return 0; + } + return timing.setTimeout( + registerTimeout.bind(null, timeoutInMs === 0 ? 0 : DEFER_EVENT_LISTENER_TIME3), + DEFER_EVENT_LISTENER_TIME3 + ); + }, "setSocketTimeout"); + var import_stream3 = require("stream"); + var MIN_WAIT_TIME = 6e3; + async function writeRequestBody(httpRequest, request, maxContinueTimeoutMs = MIN_WAIT_TIME) { + const headers = request.headers ?? {}; + const expect = headers["Expect"] || headers["expect"]; + let timeoutId = -1; + let sendBody = true; + if (expect === "100-continue") { + sendBody = await Promise.race([ + new Promise((resolve2) => { + timeoutId = Number(timing.setTimeout(() => resolve2(true), Math.max(MIN_WAIT_TIME, maxContinueTimeoutMs))); + }), + new Promise((resolve2) => { + httpRequest.on("continue", () => { + timing.clearTimeout(timeoutId); + resolve2(true); + }); + httpRequest.on("response", () => { + timing.clearTimeout(timeoutId); + resolve2(false); + }); + httpRequest.on("error", () => { + timing.clearTimeout(timeoutId); + resolve2(false); + }); + }) + ]); + } + if (sendBody) { + writeBody(httpRequest, request.body); + } + } + __name(writeRequestBody, "writeRequestBody"); + function writeBody(httpRequest, body) { + if (body instanceof import_stream3.Readable) { + body.pipe(httpRequest); + return; + } + if (body) { + if (Buffer.isBuffer(body) || typeof body === "string") { + httpRequest.end(body); + return; + } + const uint8 = body; + if (typeof uint8 === "object" && uint8.buffer && typeof uint8.byteOffset === "number" && typeof uint8.byteLength === "number") { + httpRequest.end(Buffer.from(uint8.buffer, uint8.byteOffset, uint8.byteLength)); + return; + } + httpRequest.end(Buffer.from(body)); + return; + } + httpRequest.end(); + } + __name(writeBody, "writeBody"); + var DEFAULT_REQUEST_TIMEOUT = 0; + var _a2; + var NodeHttpHandler = (_a2 = class { + constructor(options) { + this.socketWarningTimestamp = 0; + this.metadata = { handlerProtocol: "http/1.1" }; + this.configProvider = new Promise((resolve2, reject) => { + if (typeof options === "function") { + options().then((_options) => { + resolve2(this.resolveDefaultConfig(_options)); + }).catch(reject); + } else { + resolve2(this.resolveDefaultConfig(options)); + } + }); + } + /** + * @returns the input if it is an HttpHandler of any class, + * or instantiates a new instance of this handler. + */ + static create(instanceOrOptions) { + if (typeof (instanceOrOptions == null ? void 0 : instanceOrOptions.handle) === "function") { + return instanceOrOptions; + } + return new _a2(instanceOrOptions); + } + /** + * @internal + * + * @param agent - http(s) agent in use by the NodeHttpHandler instance. + * @param socketWarningTimestamp - last socket usage check timestamp. + * @param logger - channel for the warning. + * @returns timestamp of last emitted warning. + */ + static checkSocketUsage(agent, socketWarningTimestamp, logger3 = console) { + var _a7, _b, _c; + const { sockets, requests, maxSockets } = agent; + if (typeof maxSockets !== "number" || maxSockets === Infinity) { + return socketWarningTimestamp; + } + const interval = 15e3; + if (Date.now() - interval < socketWarningTimestamp) { + return socketWarningTimestamp; + } + if (sockets && requests) { + for (const origin in sockets) { + const socketsInUse = ((_a7 = sockets[origin]) == null ? void 0 : _a7.length) ?? 0; + const requestsEnqueued = ((_b = requests[origin]) == null ? void 0 : _b.length) ?? 0; + if (socketsInUse >= maxSockets && requestsEnqueued >= 2 * maxSockets) { + (_c = logger3 == null ? void 0 : logger3.warn) == null ? void 0 : _c.call( + logger3, + `@smithy/node-http-handler:WARN - socket usage at capacity=${socketsInUse} and ${requestsEnqueued} additional requests are enqueued. +See https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/node-configuring-maxsockets.html +or increase socketAcquisitionWarningTimeout=(millis) in the NodeHttpHandler config.` + ); + return Date.now(); + } + } + } + return socketWarningTimestamp; + } + resolveDefaultConfig(options) { + const { requestTimeout, connectionTimeout, socketTimeout, socketAcquisitionWarningTimeout, httpAgent, httpsAgent } = options || {}; + const keepAlive = true; + const maxSockets = 50; + return { + connectionTimeout, + requestTimeout: requestTimeout ?? socketTimeout, + socketAcquisitionWarningTimeout, + httpAgent: (() => { + if (httpAgent instanceof import_http3.Agent || typeof (httpAgent == null ? void 0 : httpAgent.destroy) === "function") { + return httpAgent; + } + return new import_http3.Agent({ keepAlive, maxSockets, ...httpAgent }); + })(), + httpsAgent: (() => { + if (httpsAgent instanceof import_https.Agent || typeof (httpsAgent == null ? void 0 : httpsAgent.destroy) === "function") { + return httpsAgent; + } + return new import_https.Agent({ keepAlive, maxSockets, ...httpsAgent }); + })(), + logger: console + }; + } + destroy() { + var _a7, _b, _c, _d; + (_b = (_a7 = this.config) == null ? void 0 : _a7.httpAgent) == null ? void 0 : _b.destroy(); + (_d = (_c = this.config) == null ? void 0 : _c.httpsAgent) == null ? void 0 : _d.destroy(); + } + async handle(request, { abortSignal } = {}) { + if (!this.config) { + this.config = await this.configProvider; + } + return new Promise((_resolve, _reject) => { + let writeRequestBodyPromise = void 0; + const timeouts = []; + const resolve2 = /* @__PURE__ */ __name(async (arg) => { + await writeRequestBodyPromise; + timeouts.forEach(timing.clearTimeout); + _resolve(arg); + }, "resolve"); + const reject = /* @__PURE__ */ __name(async (arg) => { + await writeRequestBodyPromise; + timeouts.forEach(timing.clearTimeout); + _reject(arg); + }, "reject"); + if (!this.config) { + throw new Error("Node HTTP request handler config is not resolved"); + } + if (abortSignal == null ? void 0 : abortSignal.aborted) { + const abortError = new Error("Request aborted"); + abortError.name = "AbortError"; + reject(abortError); + return; + } + const isSSL = request.protocol === "https:"; + const agent = isSSL ? this.config.httpsAgent : this.config.httpAgent; + timeouts.push( + timing.setTimeout( + () => { + this.socketWarningTimestamp = _a2.checkSocketUsage( + agent, + this.socketWarningTimestamp, + this.config.logger + ); + }, + this.config.socketAcquisitionWarningTimeout ?? (this.config.requestTimeout ?? 2e3) + (this.config.connectionTimeout ?? 1e3) + ) + ); + const queryString = (0, import_querystring_builder.buildQueryString)(request.query || {}); + let auth = void 0; + if (request.username != null || request.password != null) { + const username = request.username ?? ""; + const password = request.password ?? ""; + auth = `${username}:${password}`; + } + let path4 = request.path; + if (queryString) { + path4 += `?${queryString}`; + } + if (request.fragment) { + path4 += `#${request.fragment}`; + } + let hostname = request.hostname ?? ""; + if (hostname[0] === "[" && hostname.endsWith("]")) { + hostname = request.hostname.slice(1, -1); + } else { + hostname = request.hostname; + } + const nodeHttpsOptions = { + headers: request.headers, + host: hostname, + method: request.method, + path: path4, + port: request.port, + agent, + auth + }; + const requestFunc = isSSL ? import_https.request : import_http3.request; + const req = requestFunc(nodeHttpsOptions, (res) => { + const httpResponse = new import_protocol_http15.HttpResponse({ + statusCode: res.statusCode || -1, + reason: res.statusMessage, + headers: getTransformedHeaders(res.headers), + body: res + }); + resolve2({ response: httpResponse }); + }); + req.on("error", (err2) => { + if (NODEJS_TIMEOUT_ERROR_CODES.includes(err2.code)) { + reject(Object.assign(err2, { name: "TimeoutError" })); + } else { + reject(err2); + } + }); + if (abortSignal) { + const onAbort = /* @__PURE__ */ __name(() => { + req.destroy(); + const abortError = new Error("Request aborted"); + abortError.name = "AbortError"; + reject(abortError); + }, "onAbort"); + if (typeof abortSignal.addEventListener === "function") { + const signal = abortSignal; + signal.addEventListener("abort", onAbort, { once: true }); + req.once("close", () => signal.removeEventListener("abort", onAbort)); + } else { + abortSignal.onabort = onAbort; + } + } + timeouts.push(setConnectionTimeout(req, reject, this.config.connectionTimeout)); + timeouts.push(setSocketTimeout(req, reject, this.config.requestTimeout)); + const httpAgent = nodeHttpsOptions.agent; + if (typeof httpAgent === "object" && "keepAlive" in httpAgent) { + timeouts.push( + setSocketKeepAlive(req, { + // @ts-expect-error keepAlive is not public on httpAgent. + keepAlive: httpAgent.keepAlive, + // @ts-expect-error keepAliveMsecs is not public on httpAgent. + keepAliveMsecs: httpAgent.keepAliveMsecs + }) + ); + } + writeRequestBodyPromise = writeRequestBody(req, request, this.config.requestTimeout).catch((e4) => { + timeouts.forEach(timing.clearTimeout); + return _reject(e4); + }); + }); + } + updateHttpClientConfig(key, value) { + this.config = void 0; + this.configProvider = this.configProvider.then((config) => { + return { + ...config, + [key]: value + }; + }); + } + httpHandlerConfigs() { + return this.config ?? {}; + } + }, __name(_a2, "NodeHttpHandler"), _a2); + var import_http22 = require("http2"); + var import_http23 = __toESM3(require("http2")); + var _a3; + var NodeHttp2ConnectionPool = (_a3 = class { + constructor(sessions) { + this.sessions = []; + this.sessions = sessions ?? []; + } + poll() { + if (this.sessions.length > 0) { + return this.sessions.shift(); + } + } + offerLast(session) { + this.sessions.push(session); + } + contains(session) { + return this.sessions.includes(session); + } + remove(session) { + this.sessions = this.sessions.filter((s4) => s4 !== session); + } + [Symbol.iterator]() { + return this.sessions[Symbol.iterator](); + } + destroy(connection) { + for (const session of this.sessions) { + if (session === connection) { + if (!session.destroyed) { + session.destroy(); + } + } + } + } + }, __name(_a3, "NodeHttp2ConnectionPool"), _a3); + var _a4; + var NodeHttp2ConnectionManager = (_a4 = class { + constructor(config) { + this.sessionCache = /* @__PURE__ */ new Map(); + this.config = config; + if (this.config.maxConcurrency && this.config.maxConcurrency <= 0) { + throw new RangeError("maxConcurrency must be greater than zero."); + } + } + lease(requestContext, connectionConfiguration) { + const url = this.getUrlString(requestContext); + const existingPool = this.sessionCache.get(url); + if (existingPool) { + const existingSession = existingPool.poll(); + if (existingSession && !this.config.disableConcurrency) { + return existingSession; + } + } + const session = import_http23.default.connect(url); + if (this.config.maxConcurrency) { + session.settings({ maxConcurrentStreams: this.config.maxConcurrency }, (err2) => { + if (err2) { + throw new Error( + "Fail to set maxConcurrentStreams to " + this.config.maxConcurrency + "when creating new session for " + requestContext.destination.toString() + ); + } + }); + } + session.unref(); + const destroySessionCb = /* @__PURE__ */ __name(() => { + session.destroy(); + this.deleteSession(url, session); + }, "destroySessionCb"); + session.on("goaway", destroySessionCb); + session.on("error", destroySessionCb); + session.on("frameError", destroySessionCb); + session.on("close", () => this.deleteSession(url, session)); + if (connectionConfiguration.requestTimeout) { + session.setTimeout(connectionConfiguration.requestTimeout, destroySessionCb); + } + const connectionPool = this.sessionCache.get(url) || new NodeHttp2ConnectionPool(); + connectionPool.offerLast(session); + this.sessionCache.set(url, connectionPool); + return session; + } + /** + * Delete a session from the connection pool. + * @param authority The authority of the session to delete. + * @param session The session to delete. + */ + deleteSession(authority, session) { + const existingConnectionPool = this.sessionCache.get(authority); + if (!existingConnectionPool) { + return; + } + if (!existingConnectionPool.contains(session)) { + return; + } + existingConnectionPool.remove(session); + this.sessionCache.set(authority, existingConnectionPool); + } + release(requestContext, session) { + var _a7; + const cacheKey2 = this.getUrlString(requestContext); + (_a7 = this.sessionCache.get(cacheKey2)) == null ? void 0 : _a7.offerLast(session); + } + destroy() { + for (const [key, connectionPool] of this.sessionCache) { + for (const session of connectionPool) { + if (!session.destroyed) { + session.destroy(); + } + connectionPool.remove(session); + } + this.sessionCache.delete(key); + } + } + setMaxConcurrentStreams(maxConcurrentStreams) { + if (maxConcurrentStreams && maxConcurrentStreams <= 0) { + throw new RangeError("maxConcurrentStreams must be greater than zero."); + } + this.config.maxConcurrency = maxConcurrentStreams; + } + setDisableConcurrentStreams(disableConcurrentStreams) { + this.config.disableConcurrency = disableConcurrentStreams; + } + getUrlString(request) { + return request.destination.toString(); + } + }, __name(_a4, "NodeHttp2ConnectionManager"), _a4); + var _a5; + var NodeHttp2Handler = (_a5 = class { + constructor(options) { + this.metadata = { handlerProtocol: "h2" }; + this.connectionManager = new NodeHttp2ConnectionManager({}); + this.configProvider = new Promise((resolve2, reject) => { + if (typeof options === "function") { + options().then((opts) => { + resolve2(opts || {}); + }).catch(reject); + } else { + resolve2(options || {}); + } + }); + } + /** + * @returns the input if it is an HttpHandler of any class, + * or instantiates a new instance of this handler. + */ + static create(instanceOrOptions) { + if (typeof (instanceOrOptions == null ? void 0 : instanceOrOptions.handle) === "function") { + return instanceOrOptions; + } + return new _a5(instanceOrOptions); + } + destroy() { + this.connectionManager.destroy(); + } + async handle(request, { abortSignal } = {}) { + if (!this.config) { + this.config = await this.configProvider; + this.connectionManager.setDisableConcurrentStreams(this.config.disableConcurrentStreams || false); + if (this.config.maxConcurrentStreams) { + this.connectionManager.setMaxConcurrentStreams(this.config.maxConcurrentStreams); + } + } + const { requestTimeout, disableConcurrentStreams } = this.config; + return new Promise((_resolve, _reject) => { + var _a7; + let fulfilled = false; + let writeRequestBodyPromise = void 0; + const resolve2 = /* @__PURE__ */ __name(async (arg) => { + await writeRequestBodyPromise; + _resolve(arg); + }, "resolve"); + const reject = /* @__PURE__ */ __name(async (arg) => { + await writeRequestBodyPromise; + _reject(arg); + }, "reject"); + if (abortSignal == null ? void 0 : abortSignal.aborted) { + fulfilled = true; + const abortError = new Error("Request aborted"); + abortError.name = "AbortError"; + reject(abortError); + return; + } + const { hostname, method, port, protocol, query } = request; + let auth = ""; + if (request.username != null || request.password != null) { + const username = request.username ?? ""; + const password = request.password ?? ""; + auth = `${username}:${password}@`; + } + const authority = `${protocol}//${auth}${hostname}${port ? `:${port}` : ""}`; + const requestContext = { destination: new URL(authority) }; + const session = this.connectionManager.lease(requestContext, { + requestTimeout: (_a7 = this.config) == null ? void 0 : _a7.sessionTimeout, + disableConcurrentStreams: disableConcurrentStreams || false + }); + const rejectWithDestroy = /* @__PURE__ */ __name((err2) => { + if (disableConcurrentStreams) { + this.destroySession(session); + } + fulfilled = true; + reject(err2); + }, "rejectWithDestroy"); + const queryString = (0, import_querystring_builder.buildQueryString)(query || {}); + let path4 = request.path; + if (queryString) { + path4 += `?${queryString}`; + } + if (request.fragment) { + path4 += `#${request.fragment}`; + } + const req = session.request({ + ...request.headers, + [import_http22.constants.HTTP2_HEADER_PATH]: path4, + [import_http22.constants.HTTP2_HEADER_METHOD]: method + }); + session.ref(); + req.on("response", (headers) => { + const httpResponse = new import_protocol_http15.HttpResponse({ + statusCode: headers[":status"] || -1, + headers: getTransformedHeaders(headers), + body: req + }); + fulfilled = true; + resolve2({ response: httpResponse }); + if (disableConcurrentStreams) { + session.close(); + this.connectionManager.deleteSession(authority, session); + } + }); + if (requestTimeout) { + req.setTimeout(requestTimeout, () => { + req.close(); + const timeoutError = new Error(`Stream timed out because of no activity for ${requestTimeout} ms`); + timeoutError.name = "TimeoutError"; + rejectWithDestroy(timeoutError); + }); + } + if (abortSignal) { + const onAbort = /* @__PURE__ */ __name(() => { + req.close(); + const abortError = new Error("Request aborted"); + abortError.name = "AbortError"; + rejectWithDestroy(abortError); + }, "onAbort"); + if (typeof abortSignal.addEventListener === "function") { + const signal = abortSignal; + signal.addEventListener("abort", onAbort, { once: true }); + req.once("close", () => signal.removeEventListener("abort", onAbort)); + } else { + abortSignal.onabort = onAbort; + } + } + req.on("frameError", (type, code, id) => { + rejectWithDestroy(new Error(`Frame type id ${type} in stream id ${id} has failed with code ${code}.`)); + }); + req.on("error", rejectWithDestroy); + req.on("aborted", () => { + rejectWithDestroy( + new Error(`HTTP/2 stream is abnormally aborted in mid-communication with result code ${req.rstCode}.`) + ); + }); + req.on("close", () => { + session.unref(); + if (disableConcurrentStreams) { + session.destroy(); + } + if (!fulfilled) { + rejectWithDestroy(new Error("Unexpected error: http2 request did not get a response")); + } + }); + writeRequestBodyPromise = writeRequestBody(req, request, requestTimeout); + }); + } + updateHttpClientConfig(key, value) { + this.config = void 0; + this.configProvider = this.configProvider.then((config) => { + return { + ...config, + [key]: value + }; + }); + } + httpHandlerConfigs() { + return this.config ?? {}; + } + /** + * Destroys a session. + * @param session - the session to destroy. + */ + destroySession(session) { + if (!session.destroyed) { + session.destroy(); + } + } + }, __name(_a5, "NodeHttp2Handler"), _a5); + var _a6; + var Collector = (_a6 = class extends import_stream3.Writable { + constructor() { + super(...arguments); + this.bufferedBytes = []; + } + _write(chunk, encoding, callback) { + this.bufferedBytes.push(chunk); + callback(); + } + }, __name(_a6, "Collector"), _a6); + var streamCollector3 = /* @__PURE__ */ __name((stream) => { + if (isReadableStreamInstance(stream)) { + return collectReadableStream(stream); + } + return new Promise((resolve2, reject) => { + const collector = new Collector(); + stream.pipe(collector); + stream.on("error", (err2) => { + collector.end(); + reject(err2); + }); + collector.on("error", reject); + collector.on("finish", function() { + const bytes = new Uint8Array(Buffer.concat(this.bufferedBytes)); + resolve2(bytes); + }); + }); + }, "streamCollector"); + var isReadableStreamInstance = /* @__PURE__ */ __name((stream) => typeof ReadableStream === "function" && stream instanceof ReadableStream, "isReadableStreamInstance"); + async function collectReadableStream(stream) { + const chunks = []; + const reader = stream.getReader(); + let isDone = false; + let length = 0; + while (!isDone) { + const { done, value } = await reader.read(); + if (value) { + chunks.push(value); + length += value.length; + } + isDone = done; + } + const collected = new Uint8Array(length); + let offset = 0; + for (const chunk of chunks) { + collected.set(chunk, offset); + offset += chunk.length; + } + return collected; + } + __name(collectReadableStream, "collectReadableStream"); + } +}); + +// ../node_modules/.pnpm/@smithy+fetch-http-handler@5.0.4/node_modules/@smithy/fetch-http-handler/dist-cjs/index.js +var require_dist_cjs15 = __commonJS({ + "../node_modules/.pnpm/@smithy+fetch-http-handler@5.0.4/node_modules/@smithy/fetch-http-handler/dist-cjs/index.js"(exports2, module2) { + var __defProp3 = Object.defineProperty; + var __getOwnPropDesc3 = Object.getOwnPropertyDescriptor; + var __getOwnPropNames3 = Object.getOwnPropertyNames; + var __hasOwnProp3 = Object.prototype.hasOwnProperty; + var __name = (target, value) => __defProp3(target, "name", { value, configurable: true }); + var __export2 = (target, all) => { + for (var name in all) + __defProp3(target, name, { get: all[name], enumerable: true }); + }; + var __copyProps3 = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames3(from)) + if (!__hasOwnProp3.call(to, key) && key !== except) + __defProp3(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc3(from, key)) || desc.enumerable }); + } + return to; + }; + var __toCommonJS2 = (mod) => __copyProps3(__defProp3({}, "__esModule", { value: true }), mod); + var src_exports = {}; + __export2(src_exports, { + FetchHttpHandler: () => FetchHttpHandler, + keepAliveSupport: () => keepAliveSupport, + streamCollector: () => streamCollector3 + }); + module2.exports = __toCommonJS2(src_exports); + var import_protocol_http15 = require_dist_cjs2(); + var import_querystring_builder = require_dist_cjs13(); + function createRequest(url, requestOptions) { + return new Request(url, requestOptions); + } + __name(createRequest, "createRequest"); + function requestTimeout(timeoutInMs = 0) { + return new Promise((resolve2, reject) => { + if (timeoutInMs) { + setTimeout(() => { + const timeoutError = new Error(`Request did not complete within ${timeoutInMs} ms`); + timeoutError.name = "TimeoutError"; + reject(timeoutError); + }, timeoutInMs); + } + }); + } + __name(requestTimeout, "requestTimeout"); + var keepAliveSupport = { + supported: void 0 + }; + var _a2; + var FetchHttpHandler = (_a2 = class { + /** + * @returns the input if it is an HttpHandler of any class, + * or instantiates a new instance of this handler. + */ + static create(instanceOrOptions) { + if (typeof (instanceOrOptions == null ? void 0 : instanceOrOptions.handle) === "function") { + return instanceOrOptions; + } + return new _a2(instanceOrOptions); + } + constructor(options) { + if (typeof options === "function") { + this.configProvider = options().then((opts) => opts || {}); + } else { + this.config = options ?? {}; + this.configProvider = Promise.resolve(this.config); + } + if (keepAliveSupport.supported === void 0) { + keepAliveSupport.supported = Boolean( + typeof Request !== "undefined" && "keepalive" in createRequest("https://[::1]") + ); + } + } + destroy() { + } + async handle(request, { abortSignal } = {}) { + var _a3; + if (!this.config) { + this.config = await this.configProvider; + } + const requestTimeoutInMs = this.config.requestTimeout; + const keepAlive = this.config.keepAlive === true; + const credentials2 = this.config.credentials; + if (abortSignal == null ? void 0 : abortSignal.aborted) { + const abortError = new Error("Request aborted"); + abortError.name = "AbortError"; + return Promise.reject(abortError); + } + let path4 = request.path; + const queryString = (0, import_querystring_builder.buildQueryString)(request.query || {}); + if (queryString) { + path4 += `?${queryString}`; + } + if (request.fragment) { + path4 += `#${request.fragment}`; + } + let auth = ""; + if (request.username != null || request.password != null) { + const username = request.username ?? ""; + const password = request.password ?? ""; + auth = `${username}:${password}@`; + } + const { port, method } = request; + const url = `${request.protocol}//${auth}${request.hostname}${port ? `:${port}` : ""}${path4}`; + const body = method === "GET" || method === "HEAD" ? void 0 : request.body; + const requestOptions = { + body, + headers: new Headers(request.headers), + method, + credentials: credentials2 + }; + if ((_a3 = this.config) == null ? void 0 : _a3.cache) { + requestOptions.cache = this.config.cache; + } + if (body) { + requestOptions.duplex = "half"; + } + if (typeof AbortController !== "undefined") { + requestOptions.signal = abortSignal; + } + if (keepAliveSupport.supported) { + requestOptions.keepalive = keepAlive; + } + if (typeof this.config.requestInit === "function") { + Object.assign(requestOptions, this.config.requestInit(request)); + } + let removeSignalEventListener = /* @__PURE__ */ __name(() => { + }, "removeSignalEventListener"); + const fetchRequest = createRequest(url, requestOptions); + const raceOfPromises = [ + fetch(fetchRequest).then((response) => { + const fetchHeaders = response.headers; + const transformedHeaders = {}; + for (const pair of fetchHeaders.entries()) { + transformedHeaders[pair[0]] = pair[1]; + } + const hasReadableStream = response.body != void 0; + if (!hasReadableStream) { + return response.blob().then((body2) => ({ + response: new import_protocol_http15.HttpResponse({ + headers: transformedHeaders, + reason: response.statusText, + statusCode: response.status, + body: body2 + }) + })); + } + return { + response: new import_protocol_http15.HttpResponse({ + headers: transformedHeaders, + reason: response.statusText, + statusCode: response.status, + body: response.body + }) + }; + }), + requestTimeout(requestTimeoutInMs) + ]; + if (abortSignal) { + raceOfPromises.push( + new Promise((resolve2, reject) => { + const onAbort = /* @__PURE__ */ __name(() => { + const abortError = new Error("Request aborted"); + abortError.name = "AbortError"; + reject(abortError); + }, "onAbort"); + if (typeof abortSignal.addEventListener === "function") { + const signal = abortSignal; + signal.addEventListener("abort", onAbort, { once: true }); + removeSignalEventListener = /* @__PURE__ */ __name(() => signal.removeEventListener("abort", onAbort), "removeSignalEventListener"); + } else { + abortSignal.onabort = onAbort; + } + }) + ); + } + return Promise.race(raceOfPromises).finally(removeSignalEventListener); + } + updateHttpClientConfig(key, value) { + this.config = void 0; + this.configProvider = this.configProvider.then((config) => { + config[key] = value; + return config; + }); + } + httpHandlerConfigs() { + return this.config ?? {}; + } + }, __name(_a2, "FetchHttpHandler"), _a2); + var import_util_base645 = require_dist_cjs11(); + var streamCollector3 = /* @__PURE__ */ __name(async (stream) => { + var _a3; + if (typeof Blob === "function" && stream instanceof Blob || ((_a3 = stream.constructor) == null ? void 0 : _a3.name) === "Blob") { + if (Blob.prototype.arrayBuffer !== void 0) { + return new Uint8Array(await stream.arrayBuffer()); + } + return collectBlob(stream); + } + return collectStream(stream); + }, "streamCollector"); + async function collectBlob(blob) { + const base64 = await readToBase64(blob); + const arrayBuffer = (0, import_util_base645.fromBase64)(base64); + return new Uint8Array(arrayBuffer); + } + __name(collectBlob, "collectBlob"); + async function collectStream(stream) { + const chunks = []; + const reader = stream.getReader(); + let isDone = false; + let length = 0; + while (!isDone) { + const { done, value } = await reader.read(); + if (value) { + chunks.push(value); + length += value.length; + } + isDone = done; + } + const collected = new Uint8Array(length); + let offset = 0; + for (const chunk of chunks) { + collected.set(chunk, offset); + offset += chunk.length; + } + return collected; + } + __name(collectStream, "collectStream"); + function readToBase64(blob) { + return new Promise((resolve2, reject) => { + const reader = new FileReader(); + reader.onloadend = () => { + if (reader.readyState !== 2) { + return reject(new Error("Reader aborted too early")); + } + const result = reader.result ?? ""; + const commaIndex = result.indexOf(","); + const dataOffset = commaIndex > -1 ? commaIndex + 1 : result.length; + resolve2(result.substring(dataOffset)); + }; + reader.onabort = () => reject(new Error("Read aborted")); + reader.onerror = () => reject(reader.error); + reader.readAsDataURL(blob); + }); + } + __name(readToBase64, "readToBase64"); + } +}); + +// ../node_modules/.pnpm/@smithy+util-hex-encoding@4.0.0/node_modules/@smithy/util-hex-encoding/dist-cjs/index.js +var require_dist_cjs16 = __commonJS({ + "../node_modules/.pnpm/@smithy+util-hex-encoding@4.0.0/node_modules/@smithy/util-hex-encoding/dist-cjs/index.js"(exports2, module2) { + var __defProp3 = Object.defineProperty; + var __getOwnPropDesc3 = Object.getOwnPropertyDescriptor; + var __getOwnPropNames3 = Object.getOwnPropertyNames; + var __hasOwnProp3 = Object.prototype.hasOwnProperty; + var __name = (target, value) => __defProp3(target, "name", { value, configurable: true }); + var __export2 = (target, all) => { + for (var name in all) + __defProp3(target, name, { get: all[name], enumerable: true }); + }; + var __copyProps3 = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames3(from)) + if (!__hasOwnProp3.call(to, key) && key !== except) + __defProp3(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc3(from, key)) || desc.enumerable }); + } + return to; + }; + var __toCommonJS2 = (mod) => __copyProps3(__defProp3({}, "__esModule", { value: true }), mod); + var src_exports = {}; + __export2(src_exports, { + fromHex: () => fromHex, + toHex: () => toHex + }); + module2.exports = __toCommonJS2(src_exports); + var SHORT_TO_HEX = {}; + var HEX_TO_SHORT = {}; + for (let i4 = 0; i4 < 256; i4++) { + let encodedByte = i4.toString(16).toLowerCase(); + if (encodedByte.length === 1) { + encodedByte = `0${encodedByte}`; + } + SHORT_TO_HEX[i4] = encodedByte; + HEX_TO_SHORT[encodedByte] = i4; + } + function fromHex(encoded) { + if (encoded.length % 2 !== 0) { + throw new Error("Hex encoded strings must have an even number length"); + } + const out = new Uint8Array(encoded.length / 2); + for (let i4 = 0; i4 < encoded.length; i4 += 2) { + const encodedByte = encoded.slice(i4, i4 + 2).toLowerCase(); + if (encodedByte in HEX_TO_SHORT) { + out[i4 / 2] = HEX_TO_SHORT[encodedByte]; + } else { + throw new Error(`Cannot decode unrecognized sequence ${encodedByte} as hexadecimal`); + } + } + return out; + } + __name(fromHex, "fromHex"); + function toHex(bytes) { + let out = ""; + for (let i4 = 0; i4 < bytes.byteLength; i4++) { + out += SHORT_TO_HEX[bytes[i4]]; + } + return out; + } + __name(toHex, "toHex"); + } +}); + +// ../node_modules/.pnpm/@smithy+util-stream@4.2.2/node_modules/@smithy/util-stream/dist-cjs/sdk-stream-mixin.browser.js +var require_sdk_stream_mixin_browser = __commonJS({ + "../node_modules/.pnpm/@smithy+util-stream@4.2.2/node_modules/@smithy/util-stream/dist-cjs/sdk-stream-mixin.browser.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.sdkStreamMixin = void 0; + var fetch_http_handler_1 = require_dist_cjs15(); + var util_base64_1 = require_dist_cjs11(); + var util_hex_encoding_1 = require_dist_cjs16(); + var util_utf8_1 = require_dist_cjs10(); + var stream_type_check_1 = require_stream_type_check(); + var ERR_MSG_STREAM_HAS_BEEN_TRANSFORMED = "The stream has already been transformed."; + var sdkStreamMixin3 = (stream) => { + var _a2, _b; + if (!isBlobInstance(stream) && !(0, stream_type_check_1.isReadableStream)(stream)) { + const name = ((_b = (_a2 = stream === null || stream === void 0 ? void 0 : stream.__proto__) === null || _a2 === void 0 ? void 0 : _a2.constructor) === null || _b === void 0 ? void 0 : _b.name) || stream; + throw new Error(`Unexpected stream implementation, expect Blob or ReadableStream, got ${name}`); + } + let transformed = false; + const transformToByteArray = async () => { + if (transformed) { + throw new Error(ERR_MSG_STREAM_HAS_BEEN_TRANSFORMED); + } + transformed = true; + return await (0, fetch_http_handler_1.streamCollector)(stream); + }; + const blobToWebStream = (blob) => { + if (typeof blob.stream !== "function") { + throw new Error("Cannot transform payload Blob to web stream. Please make sure the Blob.stream() is polyfilled.\nIf you are using React Native, this API is not yet supported, see: https://react-native.canny.io/feature-requests/p/fetch-streaming-body"); + } + return blob.stream(); + }; + return Object.assign(stream, { + transformToByteArray, + transformToString: async (encoding) => { + const buf = await transformToByteArray(); + if (encoding === "base64") { + return (0, util_base64_1.toBase64)(buf); + } else if (encoding === "hex") { + return (0, util_hex_encoding_1.toHex)(buf); + } else if (encoding === void 0 || encoding === "utf8" || encoding === "utf-8") { + return (0, util_utf8_1.toUtf8)(buf); + } else if (typeof TextDecoder === "function") { + return new TextDecoder(encoding).decode(buf); + } else { + throw new Error("TextDecoder is not available, please make sure polyfill is provided."); + } + }, + transformToWebStream: () => { + if (transformed) { + throw new Error(ERR_MSG_STREAM_HAS_BEEN_TRANSFORMED); + } + transformed = true; + if (isBlobInstance(stream)) { + return blobToWebStream(stream); + } else if ((0, stream_type_check_1.isReadableStream)(stream)) { + return stream; + } else { + throw new Error(`Cannot transform payload to web stream, got ${stream}`); + } + } + }); + }; + exports2.sdkStreamMixin = sdkStreamMixin3; + var isBlobInstance = (stream) => typeof Blob === "function" && stream instanceof Blob; + } +}); + +// ../node_modules/.pnpm/@smithy+util-stream@4.2.2/node_modules/@smithy/util-stream/dist-cjs/sdk-stream-mixin.js +var require_sdk_stream_mixin = __commonJS({ + "../node_modules/.pnpm/@smithy+util-stream@4.2.2/node_modules/@smithy/util-stream/dist-cjs/sdk-stream-mixin.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.sdkStreamMixin = void 0; + var node_http_handler_1 = require_dist_cjs14(); + var util_buffer_from_1 = require_dist_cjs9(); + var stream_1 = require("stream"); + var sdk_stream_mixin_browser_1 = require_sdk_stream_mixin_browser(); + var ERR_MSG_STREAM_HAS_BEEN_TRANSFORMED = "The stream has already been transformed."; + var sdkStreamMixin3 = (stream) => { + var _a2, _b; + if (!(stream instanceof stream_1.Readable)) { + try { + return (0, sdk_stream_mixin_browser_1.sdkStreamMixin)(stream); + } catch (e4) { + const name = ((_b = (_a2 = stream === null || stream === void 0 ? void 0 : stream.__proto__) === null || _a2 === void 0 ? void 0 : _a2.constructor) === null || _b === void 0 ? void 0 : _b.name) || stream; + throw new Error(`Unexpected stream implementation, expect Stream.Readable instance, got ${name}`); + } + } + let transformed = false; + const transformToByteArray = async () => { + if (transformed) { + throw new Error(ERR_MSG_STREAM_HAS_BEEN_TRANSFORMED); + } + transformed = true; + return await (0, node_http_handler_1.streamCollector)(stream); + }; + return Object.assign(stream, { + transformToByteArray, + transformToString: async (encoding) => { + const buf = await transformToByteArray(); + if (encoding === void 0 || Buffer.isEncoding(encoding)) { + return (0, util_buffer_from_1.fromArrayBuffer)(buf.buffer, buf.byteOffset, buf.byteLength).toString(encoding); + } else { + const decoder = new TextDecoder(encoding); + return decoder.decode(buf); + } + }, + transformToWebStream: () => { + if (transformed) { + throw new Error(ERR_MSG_STREAM_HAS_BEEN_TRANSFORMED); + } + if (stream.readableFlowing !== null) { + throw new Error("The stream has been consumed by other callbacks."); + } + if (typeof stream_1.Readable.toWeb !== "function") { + throw new Error("Readable.toWeb() is not supported. Please ensure a polyfill is available."); + } + transformed = true; + return stream_1.Readable.toWeb(stream); + } + }); + }; + exports2.sdkStreamMixin = sdkStreamMixin3; + } +}); + +// ../node_modules/.pnpm/@smithy+util-stream@4.2.2/node_modules/@smithy/util-stream/dist-cjs/splitStream.browser.js +var require_splitStream_browser = __commonJS({ + "../node_modules/.pnpm/@smithy+util-stream@4.2.2/node_modules/@smithy/util-stream/dist-cjs/splitStream.browser.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.splitStream = splitStream2; + async function splitStream2(stream) { + if (typeof stream.stream === "function") { + stream = stream.stream(); + } + const readableStream = stream; + return readableStream.tee(); + } + } +}); + +// ../node_modules/.pnpm/@smithy+util-stream@4.2.2/node_modules/@smithy/util-stream/dist-cjs/splitStream.js +var require_splitStream = __commonJS({ + "../node_modules/.pnpm/@smithy+util-stream@4.2.2/node_modules/@smithy/util-stream/dist-cjs/splitStream.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.splitStream = splitStream2; + var stream_1 = require("stream"); + var splitStream_browser_1 = require_splitStream_browser(); + var stream_type_check_1 = require_stream_type_check(); + async function splitStream2(stream) { + if ((0, stream_type_check_1.isReadableStream)(stream) || (0, stream_type_check_1.isBlob)(stream)) { + return (0, splitStream_browser_1.splitStream)(stream); + } + const stream1 = new stream_1.PassThrough(); + const stream2 = new stream_1.PassThrough(); + stream.pipe(stream1); + stream.pipe(stream2); + return [stream1, stream2]; + } + } +}); + +// ../node_modules/.pnpm/@smithy+util-stream@4.2.2/node_modules/@smithy/util-stream/dist-cjs/index.js +var require_dist_cjs17 = __commonJS({ + "../node_modules/.pnpm/@smithy+util-stream@4.2.2/node_modules/@smithy/util-stream/dist-cjs/index.js"(exports2, module2) { + var __defProp3 = Object.defineProperty; + var __getOwnPropDesc3 = Object.getOwnPropertyDescriptor; + var __getOwnPropNames3 = Object.getOwnPropertyNames; + var __hasOwnProp3 = Object.prototype.hasOwnProperty; + var __name = (target, value) => __defProp3(target, "name", { value, configurable: true }); + var __export2 = (target, all) => { + for (var name in all) + __defProp3(target, name, { get: all[name], enumerable: true }); + }; + var __copyProps3 = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames3(from)) + if (!__hasOwnProp3.call(to, key) && key !== except) + __defProp3(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc3(from, key)) || desc.enumerable }); + } + return to; + }; + var __reExport = (target, mod, secondTarget) => (__copyProps3(target, mod, "default"), secondTarget && __copyProps3(secondTarget, mod, "default")); + var __toCommonJS2 = (mod) => __copyProps3(__defProp3({}, "__esModule", { value: true }), mod); + var src_exports = {}; + __export2(src_exports, { + Uint8ArrayBlobAdapter: () => Uint8ArrayBlobAdapter2 + }); + module2.exports = __toCommonJS2(src_exports); + var import_util_base645 = require_dist_cjs11(); + var import_util_utf85 = require_dist_cjs10(); + function transformToString(payload, encoding = "utf-8") { + if (encoding === "base64") { + return (0, import_util_base645.toBase64)(payload); + } + return (0, import_util_utf85.toUtf8)(payload); + } + __name(transformToString, "transformToString"); + function transformFromString(str, encoding) { + if (encoding === "base64") { + return Uint8ArrayBlobAdapter2.mutate((0, import_util_base645.fromBase64)(str)); + } + return Uint8ArrayBlobAdapter2.mutate((0, import_util_utf85.fromUtf8)(str)); + } + __name(transformFromString, "transformFromString"); + var _a2; + var Uint8ArrayBlobAdapter2 = (_a2 = class extends Uint8Array { + /** + * @param source - such as a string or Stream. + * @returns a new Uint8ArrayBlobAdapter extending Uint8Array. + */ + static fromString(source, encoding = "utf-8") { + switch (typeof source) { + case "string": + return transformFromString(source, encoding); + default: + throw new Error(`Unsupported conversion from ${typeof source} to Uint8ArrayBlobAdapter.`); + } + } + /** + * @param source - Uint8Array to be mutated. + * @returns the same Uint8Array but with prototype switched to Uint8ArrayBlobAdapter. + */ + static mutate(source) { + Object.setPrototypeOf(source, _a2.prototype); + return source; + } + /** + * @param encoding - default 'utf-8'. + * @returns the blob as string. + */ + transformToString(encoding = "utf-8") { + return transformToString(this, encoding); + } + }, __name(_a2, "Uint8ArrayBlobAdapter"), _a2); + __reExport(src_exports, require_ChecksumStream(), module2.exports); + __reExport(src_exports, require_createChecksumStream(), module2.exports); + __reExport(src_exports, require_createBufferedReadable(), module2.exports); + __reExport(src_exports, require_getAwsChunkedEncodingStream(), module2.exports); + __reExport(src_exports, require_headStream(), module2.exports); + __reExport(src_exports, require_sdk_stream_mixin(), module2.exports); + __reExport(src_exports, require_splitStream(), module2.exports); + __reExport(src_exports, require_stream_type_check(), module2.exports); + } +}); + +// ../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/submodules/protocols/collect-stream-body.js +var import_util_stream, collectBody2; +var init_collect_stream_body = __esm({ + "../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/submodules/protocols/collect-stream-body.js"() { + import_util_stream = __toESM(require_dist_cjs17()); + collectBody2 = async (streamBody = new Uint8Array(), context) => { + if (streamBody instanceof Uint8Array) { + return import_util_stream.Uint8ArrayBlobAdapter.mutate(streamBody); + } + if (!streamBody) { + return import_util_stream.Uint8ArrayBlobAdapter.mutate(new Uint8Array()); + } + const fromContext = context.streamCollector(streamBody); + return import_util_stream.Uint8ArrayBlobAdapter.mutate(await fromContext); + }; + } +}); + +// ../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/submodules/protocols/extended-encode-uri-component.js +function extendedEncodeURIComponent2(str) { + return encodeURIComponent(str).replace(/[!'()*]/g, function(c3) { + return "%" + c3.charCodeAt(0).toString(16).toUpperCase(); + }); +} +var init_extended_encode_uri_component = __esm({ + "../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/submodules/protocols/extended-encode-uri-component.js"() { + } +}); + +// ../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/submodules/schema/deref.js +var deref; +var init_deref = __esm({ + "../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/submodules/schema/deref.js"() { + deref = (schemaRef) => { + if (typeof schemaRef === "function") { + return schemaRef(); + } + return schemaRef; + }; + } +}); + +// ../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/submodules/schema/middleware/schemaDeserializationMiddleware.js +var import_protocol_http2, import_util_middleware3; +var init_schemaDeserializationMiddleware = __esm({ + "../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/submodules/schema/middleware/schemaDeserializationMiddleware.js"() { + import_protocol_http2 = __toESM(require_dist_cjs2()); + import_util_middleware3 = __toESM(require_dist_cjs6()); + } +}); + +// ../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/submodules/schema/middleware/schemaSerializationMiddleware.js +var import_util_middleware4; +var init_schemaSerializationMiddleware = __esm({ + "../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/submodules/schema/middleware/schemaSerializationMiddleware.js"() { + import_util_middleware4 = __toESM(require_dist_cjs6()); + } +}); + +// ../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/submodules/schema/middleware/getSchemaSerdePlugin.js +var init_getSchemaSerdePlugin = __esm({ + "../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/submodules/schema/middleware/getSchemaSerdePlugin.js"() { + init_schemaDeserializationMiddleware(); + init_schemaSerializationMiddleware(); + } +}); + +// ../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/submodules/schema/TypeRegistry.js +var TypeRegistry; +var init_TypeRegistry = __esm({ + "../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/submodules/schema/TypeRegistry.js"() { + TypeRegistry = class _TypeRegistry { + constructor(namespace, schemas = /* @__PURE__ */ new Map()) { + this.namespace = namespace; + this.schemas = schemas; + } + static for(namespace) { + if (!_TypeRegistry.registries.has(namespace)) { + _TypeRegistry.registries.set(namespace, new _TypeRegistry(namespace)); + } + return _TypeRegistry.registries.get(namespace); + } + register(shapeId, schema6) { + const qualifiedName = this.normalizeShapeId(shapeId); + const registry = _TypeRegistry.for(this.getNamespace(shapeId)); + registry.schemas.set(qualifiedName, schema6); + } + getSchema(shapeId) { + const id = this.normalizeShapeId(shapeId); + if (!this.schemas.has(id)) { + throw new Error(`@smithy/core/schema - schema not found for ${id}`); + } + return this.schemas.get(id); + } + getBaseException() { + for (const [id, schema6] of this.schemas.entries()) { + if (id.startsWith("smithyts.client.synthetic.") && id.endsWith("ServiceException")) { + return schema6; + } + } + return void 0; + } + find(predicate) { + return [...this.schemas.values()].find(predicate); + } + destroy() { + _TypeRegistry.registries.delete(this.namespace); + this.schemas.clear(); + } + normalizeShapeId(shapeId) { + if (shapeId.includes("#")) { + return shapeId; + } + return this.namespace + "#" + shapeId; + } + getNamespace(shapeId) { + return this.normalizeShapeId(shapeId).split("#")[0]; + } + }; + TypeRegistry.registries = /* @__PURE__ */ new Map(); + } +}); + +// ../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/submodules/schema/schemas/Schema.js +var Schema; +var init_Schema = __esm({ + "../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/submodules/schema/schemas/Schema.js"() { + Schema = class { + constructor(name, traits) { + this.name = name; + this.traits = traits; + } + }; + } +}); + +// ../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/submodules/schema/schemas/ListSchema.js +var ListSchema; +var init_ListSchema = __esm({ + "../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/submodules/schema/schemas/ListSchema.js"() { + init_TypeRegistry(); + init_Schema(); + ListSchema = class extends Schema { + constructor(name, traits, valueSchema) { + super(name, traits); + this.name = name; + this.traits = traits; + this.valueSchema = valueSchema; + } + }; + } +}); + +// ../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/submodules/schema/schemas/MapSchema.js +var MapSchema; +var init_MapSchema = __esm({ + "../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/submodules/schema/schemas/MapSchema.js"() { + init_TypeRegistry(); + init_Schema(); + MapSchema = class extends Schema { + constructor(name, traits, keySchema, valueSchema) { + super(name, traits); + this.name = name; + this.traits = traits; + this.keySchema = keySchema; + this.valueSchema = valueSchema; + } + }; + } +}); + +// ../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/submodules/schema/schemas/OperationSchema.js +var init_OperationSchema = __esm({ + "../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/submodules/schema/schemas/OperationSchema.js"() { + init_TypeRegistry(); + init_Schema(); + } +}); + +// ../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/submodules/schema/schemas/StructureSchema.js +var StructureSchema; +var init_StructureSchema = __esm({ + "../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/submodules/schema/schemas/StructureSchema.js"() { + init_TypeRegistry(); + init_Schema(); + StructureSchema = class extends Schema { + constructor(name, traits, memberNames, memberList) { + super(name, traits); + this.name = name; + this.traits = traits; + this.memberNames = memberNames; + this.memberList = memberList; + this.members = {}; + for (let i4 = 0; i4 < memberNames.length; ++i4) { + this.members[memberNames[i4]] = Array.isArray(memberList[i4]) ? memberList[i4] : [memberList[i4], 0]; + } + } + }; + } +}); + +// ../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/submodules/schema/schemas/ErrorSchema.js +var init_ErrorSchema = __esm({ + "../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/submodules/schema/schemas/ErrorSchema.js"() { + init_TypeRegistry(); + init_StructureSchema(); + } +}); + +// ../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/submodules/schema/schemas/sentinels.js +var SCHEMA; +var init_sentinels = __esm({ + "../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/submodules/schema/schemas/sentinels.js"() { + SCHEMA = { + BLOB: 21, + STREAMING_BLOB: 42, + BOOLEAN: 2, + STRING: 0, + NUMERIC: 1, + BIG_INTEGER: 17, + BIG_DECIMAL: 19, + DOCUMENT: 15, + TIMESTAMP_DEFAULT: 4, + TIMESTAMP_DATE_TIME: 5, + TIMESTAMP_HTTP_DATE: 6, + TIMESTAMP_EPOCH_SECONDS: 7, + LIST_MODIFIER: 64, + MAP_MODIFIER: 128 + }; + } +}); + +// ../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/submodules/schema/schemas/SimpleSchema.js +var SimpleSchema; +var init_SimpleSchema = __esm({ + "../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/submodules/schema/schemas/SimpleSchema.js"() { + init_TypeRegistry(); + init_Schema(); + SimpleSchema = class extends Schema { + constructor(name, schemaRef, traits) { + super(name, traits); + this.name = name; + this.schemaRef = schemaRef; + this.traits = traits; + } + }; + } +}); + +// ../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/submodules/schema/schemas/NormalizedSchema.js +var NormalizedSchema; +var init_NormalizedSchema = __esm({ + "../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/submodules/schema/schemas/NormalizedSchema.js"() { + init_deref(); + init_ListSchema(); + init_MapSchema(); + init_sentinels(); + init_SimpleSchema(); + init_StructureSchema(); + NormalizedSchema = class _NormalizedSchema { + constructor(ref, memberName) { + var _a2, _b; + this.ref = ref; + this.memberName = memberName; + const traitStack = []; + let _ref = ref; + let schema6 = ref; + this._isMemberSchema = false; + while (Array.isArray(_ref)) { + traitStack.push(_ref[1]); + _ref = _ref[0]; + schema6 = deref(_ref); + this._isMemberSchema = true; + } + if (traitStack.length > 0) { + this.memberTraits = {}; + for (let i4 = traitStack.length - 1; i4 >= 0; --i4) { + const traitSet = traitStack[i4]; + Object.assign(this.memberTraits, _NormalizedSchema.translateTraits(traitSet)); + } + } else { + this.memberTraits = 0; + } + if (schema6 instanceof _NormalizedSchema) { + this.name = schema6.name; + this.traits = schema6.traits; + this._isMemberSchema = schema6._isMemberSchema; + this.schema = schema6.schema; + this.memberTraits = Object.assign({}, schema6.getMemberTraits(), this.getMemberTraits()); + this.normalizedTraits = void 0; + this.ref = schema6.ref; + this.memberName = memberName ?? schema6.memberName; + return; + } + this.schema = deref(schema6); + if (this.schema && typeof this.schema === "object") { + this.traits = ((_a2 = this.schema) == null ? void 0 : _a2.traits) ?? {}; + } else { + this.traits = 0; + } + this.name = (typeof this.schema === "object" ? (_b = this.schema) == null ? void 0 : _b.name : void 0) ?? this.memberName ?? this.getSchemaName(); + if (this._isMemberSchema && !memberName) { + throw new Error(`@smithy/core/schema - NormalizedSchema member schema ${this.getName(true)} must initialize with memberName argument.`); + } + } + static of(ref, memberName) { + if (ref instanceof _NormalizedSchema) { + return ref; + } + return new _NormalizedSchema(ref, memberName); + } + static translateTraits(indicator) { + if (typeof indicator === "object") { + return indicator; + } + indicator = indicator | 0; + const traits = {}; + if ((indicator & 1) === 1) { + traits.httpLabel = 1; + } + if ((indicator >> 1 & 1) === 1) { + traits.idempotent = 1; + } + if ((indicator >> 2 & 1) === 1) { + traits.idempotencyToken = 1; + } + if ((indicator >> 3 & 1) === 1) { + traits.sensitive = 1; + } + if ((indicator >> 4 & 1) === 1) { + traits.httpPayload = 1; + } + if ((indicator >> 5 & 1) === 1) { + traits.httpResponseCode = 1; + } + if ((indicator >> 6 & 1) === 1) { + traits.httpQueryParams = 1; + } + return traits; + } + static memberFrom(memberSchema, memberName) { + if (memberSchema instanceof _NormalizedSchema) { + memberSchema.memberName = memberName; + memberSchema._isMemberSchema = true; + return memberSchema; + } + return new _NormalizedSchema(memberSchema, memberName); + } + getSchema() { + if (this.schema instanceof _NormalizedSchema) { + return this.schema = this.schema.getSchema(); + } + if (this.schema instanceof SimpleSchema) { + return deref(this.schema.schemaRef); + } + return deref(this.schema); + } + getName(withNamespace = false) { + if (!withNamespace) { + if (this.name && this.name.includes("#")) { + return this.name.split("#")[1]; + } + } + return this.name || void 0; + } + getMemberName() { + if (!this.isMemberSchema()) { + throw new Error(`@smithy/core/schema - cannot get member name on non-member schema: ${this.getName(true)}`); + } + return this.memberName; + } + isMemberSchema() { + return this._isMemberSchema; + } + isUnitSchema() { + return this.getSchema() === "unit"; + } + isListSchema() { + const inner = this.getSchema(); + if (typeof inner === "number") { + return inner >= SCHEMA.LIST_MODIFIER && inner < SCHEMA.MAP_MODIFIER; + } + return inner instanceof ListSchema; + } + isMapSchema() { + const inner = this.getSchema(); + if (typeof inner === "number") { + return inner >= SCHEMA.MAP_MODIFIER && inner <= 255; + } + return inner instanceof MapSchema; + } + isDocumentSchema() { + return this.getSchema() === SCHEMA.DOCUMENT; + } + isStructSchema() { + const inner = this.getSchema(); + return inner !== null && typeof inner === "object" && "members" in inner || inner instanceof StructureSchema; + } + isBlobSchema() { + return this.getSchema() === SCHEMA.BLOB || this.getSchema() === SCHEMA.STREAMING_BLOB; + } + isTimestampSchema() { + const schema6 = this.getSchema(); + return typeof schema6 === "number" && schema6 >= SCHEMA.TIMESTAMP_DEFAULT && schema6 <= SCHEMA.TIMESTAMP_EPOCH_SECONDS; + } + isStringSchema() { + return this.getSchema() === SCHEMA.STRING; + } + isBooleanSchema() { + return this.getSchema() === SCHEMA.BOOLEAN; + } + isNumericSchema() { + return this.getSchema() === SCHEMA.NUMERIC; + } + isBigIntegerSchema() { + return this.getSchema() === SCHEMA.BIG_INTEGER; + } + isBigDecimalSchema() { + return this.getSchema() === SCHEMA.BIG_DECIMAL; + } + isStreaming() { + const streaming = !!this.getMergedTraits().streaming; + if (streaming) { + return true; + } + return this.getSchema() === SCHEMA.STREAMING_BLOB; + } + getMergedTraits() { + if (this.normalizedTraits) { + return this.normalizedTraits; + } + this.normalizedTraits = { + ...this.getOwnTraits(), + ...this.getMemberTraits() + }; + return this.normalizedTraits; + } + getMemberTraits() { + return _NormalizedSchema.translateTraits(this.memberTraits); + } + getOwnTraits() { + return _NormalizedSchema.translateTraits(this.traits); + } + getKeySchema() { + if (this.isDocumentSchema()) { + return _NormalizedSchema.memberFrom([SCHEMA.DOCUMENT, 0], "key"); + } + if (!this.isMapSchema()) { + throw new Error(`@smithy/core/schema - cannot get key schema for non-map schema: ${this.getName(true)}`); + } + const schema6 = this.getSchema(); + if (typeof schema6 === "number") { + return _NormalizedSchema.memberFrom([63 & schema6, 0], "key"); + } + return _NormalizedSchema.memberFrom([schema6.keySchema, 0], "key"); + } + getValueSchema() { + const schema6 = this.getSchema(); + if (typeof schema6 === "number") { + if (this.isMapSchema()) { + return _NormalizedSchema.memberFrom([63 & schema6, 0], "value"); + } else if (this.isListSchema()) { + return _NormalizedSchema.memberFrom([63 & schema6, 0], "member"); + } + } + if (schema6 && typeof schema6 === "object") { + if (this.isStructSchema()) { + throw new Error(`cannot call getValueSchema() with StructureSchema ${this.getName(true)}`); + } + const collection = schema6; + if ("valueSchema" in collection) { + if (this.isMapSchema()) { + return _NormalizedSchema.memberFrom([collection.valueSchema, 0], "value"); + } else if (this.isListSchema()) { + return _NormalizedSchema.memberFrom([collection.valueSchema, 0], "member"); + } + } + } + if (this.isDocumentSchema()) { + return _NormalizedSchema.memberFrom([SCHEMA.DOCUMENT, 0], "value"); + } + throw new Error(`@smithy/core/schema - the schema ${this.getName(true)} does not have a value member.`); + } + getMemberSchema(member) { + if (this.isStructSchema()) { + const struct = this.getSchema(); + if (!(member in struct.members)) { + throw new Error(`@smithy/core/schema - the schema ${this.getName(true)} does not have a member with name=${member}.`); + } + return _NormalizedSchema.memberFrom(struct.members[member], member); + } + if (this.isDocumentSchema()) { + return _NormalizedSchema.memberFrom([SCHEMA.DOCUMENT, 0], member); + } + throw new Error(`@smithy/core/schema - the schema ${this.getName(true)} does not have members.`); + } + getMemberSchemas() { + const { schema: schema6 } = this; + const struct = schema6; + if (!struct || typeof struct !== "object") { + return {}; + } + if ("members" in struct) { + const buffer = {}; + for (const member of struct.memberNames) { + buffer[member] = this.getMemberSchema(member); + } + return buffer; + } + return {}; + } + *structIterator() { + if (!this.isStructSchema()) { + throw new Error("@smithy/core/schema - cannot acquire structIterator on non-struct schema."); + } + const struct = this.getSchema(); + for (let i4 = 0; i4 < struct.memberNames.length; ++i4) { + yield [struct.memberNames[i4], _NormalizedSchema.memberFrom([struct.memberList[i4], 0], struct.memberNames[i4])]; + } + } + getSchemaName() { + var _a2; + const schema6 = this.getSchema(); + if (typeof schema6 === "number") { + const _schema = 63 & schema6; + const container = 192 & schema6; + const type = ((_a2 = Object.entries(SCHEMA).find(([, value]) => { + return value === _schema; + })) == null ? void 0 : _a2[0]) ?? "Unknown"; + switch (container) { + case SCHEMA.MAP_MODIFIER: + return `${type}Map`; + case SCHEMA.LIST_MODIFIER: + return `${type}List`; + case 0: + return type; + } + } + return "Unknown"; + } + }; + } +}); + +// ../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/submodules/schema/index.js +var init_schema = __esm({ + "../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/submodules/schema/index.js"() { + init_deref(); + init_getSchemaSerdePlugin(); + init_ListSchema(); + init_MapSchema(); + init_OperationSchema(); + init_ErrorSchema(); + init_NormalizedSchema(); + init_Schema(); + init_SimpleSchema(); + init_StructureSchema(); + init_sentinels(); + init_TypeRegistry(); + } +}); + +// ../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/submodules/serde/copyDocumentWithTransform.js +var copyDocumentWithTransform2; +var init_copyDocumentWithTransform = __esm({ + "../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/submodules/serde/copyDocumentWithTransform.js"() { + init_schema(); + copyDocumentWithTransform2 = (source, schemaRef, transform = (_3) => _3) => { + const ns = NormalizedSchema.of(schemaRef); + switch (typeof source) { + case "undefined": + case "boolean": + case "number": + case "string": + case "bigint": + case "symbol": + return transform(source, ns); + case "function": + case "object": + if (source === null) { + return transform(null, ns); + } + if (Array.isArray(source)) { + const newArray = new Array(source.length); + let i4 = 0; + for (const item of source) { + newArray[i4++] = copyDocumentWithTransform2(item, ns.getValueSchema(), transform); + } + return transform(newArray, ns); + } + if ("byteLength" in source) { + const newBytes = new Uint8Array(source.byteLength); + newBytes.set(source, 0); + return transform(newBytes, ns); + } + if (source instanceof Date) { + return transform(source, ns); + } + const newObject = {}; + if (ns.isMapSchema()) { + for (const key of Object.keys(source)) { + newObject[key] = copyDocumentWithTransform2(source[key], ns.getValueSchema(), transform); + } + } else if (ns.isStructSchema()) { + for (const [key, memberSchema] of ns.structIterator()) { + newObject[key] = copyDocumentWithTransform2(source[key], memberSchema, transform); + } + } else if (ns.isDocumentSchema()) { + for (const key of Object.keys(source)) { + newObject[key] = copyDocumentWithTransform2(source[key], ns.getValueSchema(), transform); + } + } + return transform(newObject, ns); + default: + return transform(source, ns); + } + }; + } +}); + +// ../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/submodules/serde/parse-utils.js +var parseBoolean2, expectBoolean2, expectNumber2, MAX_FLOAT, expectFloat322, expectLong2, expectInt2, expectInt322, expectShort2, expectByte2, expectSizedInt, castInt, expectNonNull2, expectObject2, expectString2, expectUnion2, strictParseDouble2, strictParseFloat2, strictParseFloat322, NUMBER_REGEX, parseNumber, limitedParseDouble2, handleFloat2, limitedParseFloat2, limitedParseFloat322, parseFloatString, strictParseLong2, strictParseInt2, strictParseInt322, strictParseShort2, strictParseByte2, stackTraceWarning, logger2; +var init_parse_utils = __esm({ + "../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/submodules/serde/parse-utils.js"() { + parseBoolean2 = (value) => { + switch (value) { + case "true": + return true; + case "false": + return false; + default: + throw new Error(`Unable to parse boolean value "${value}"`); + } + }; + expectBoolean2 = (value) => { + if (value === null || value === void 0) { + return void 0; + } + if (typeof value === "number") { + if (value === 0 || value === 1) { + logger2.warn(stackTraceWarning(`Expected boolean, got ${typeof value}: ${value}`)); + } + if (value === 0) { + return false; + } + if (value === 1) { + return true; + } + } + if (typeof value === "string") { + const lower2 = value.toLowerCase(); + if (lower2 === "false" || lower2 === "true") { + logger2.warn(stackTraceWarning(`Expected boolean, got ${typeof value}: ${value}`)); + } + if (lower2 === "false") { + return false; + } + if (lower2 === "true") { + return true; + } + } + if (typeof value === "boolean") { + return value; + } + throw new TypeError(`Expected boolean, got ${typeof value}: ${value}`); + }; + expectNumber2 = (value) => { + if (value === null || value === void 0) { + return void 0; + } + if (typeof value === "string") { + const parsed = parseFloat(value); + if (!Number.isNaN(parsed)) { + if (String(parsed) !== String(value)) { + logger2.warn(stackTraceWarning(`Expected number but observed string: ${value}`)); + } + return parsed; + } + } + if (typeof value === "number") { + return value; + } + throw new TypeError(`Expected number, got ${typeof value}: ${value}`); + }; + MAX_FLOAT = Math.ceil(2 ** 127 * (2 - 2 ** -23)); + expectFloat322 = (value) => { + const expected = expectNumber2(value); + if (expected !== void 0 && !Number.isNaN(expected) && expected !== Infinity && expected !== -Infinity) { + if (Math.abs(expected) > MAX_FLOAT) { + throw new TypeError(`Expected 32-bit float, got ${value}`); + } + } + return expected; + }; + expectLong2 = (value) => { + if (value === null || value === void 0) { + return void 0; + } + if (Number.isInteger(value) && !Number.isNaN(value)) { + return value; + } + throw new TypeError(`Expected integer, got ${typeof value}: ${value}`); + }; + expectInt2 = expectLong2; + expectInt322 = (value) => expectSizedInt(value, 32); + expectShort2 = (value) => expectSizedInt(value, 16); + expectByte2 = (value) => expectSizedInt(value, 8); + expectSizedInt = (value, size) => { + const expected = expectLong2(value); + if (expected !== void 0 && castInt(expected, size) !== expected) { + throw new TypeError(`Expected ${size}-bit integer, got ${value}`); + } + return expected; + }; + castInt = (value, size) => { + switch (size) { + case 32: + return Int32Array.of(value)[0]; + case 16: + return Int16Array.of(value)[0]; + case 8: + return Int8Array.of(value)[0]; + } + }; + expectNonNull2 = (value, location) => { + if (value === null || value === void 0) { + if (location) { + throw new TypeError(`Expected a non-null value for ${location}`); + } + throw new TypeError("Expected a non-null value"); + } + return value; + }; + expectObject2 = (value) => { + if (value === null || value === void 0) { + return void 0; + } + if (typeof value === "object" && !Array.isArray(value)) { + return value; + } + const receivedType = Array.isArray(value) ? "array" : typeof value; + throw new TypeError(`Expected object, got ${receivedType}: ${value}`); + }; + expectString2 = (value) => { + if (value === null || value === void 0) { + return void 0; + } + if (typeof value === "string") { + return value; + } + if (["boolean", "number", "bigint"].includes(typeof value)) { + logger2.warn(stackTraceWarning(`Expected string, got ${typeof value}: ${value}`)); + return String(value); + } + throw new TypeError(`Expected string, got ${typeof value}: ${value}`); + }; + expectUnion2 = (value) => { + if (value === null || value === void 0) { + return void 0; + } + const asObject = expectObject2(value); + const setKeys = Object.entries(asObject).filter(([, v6]) => v6 != null).map(([k3]) => k3); + if (setKeys.length === 0) { + throw new TypeError(`Unions must have exactly one non-null member. None were found.`); + } + if (setKeys.length > 1) { + throw new TypeError(`Unions must have exactly one non-null member. Keys ${setKeys} were not null.`); + } + return asObject; + }; + strictParseDouble2 = (value) => { + if (typeof value == "string") { + return expectNumber2(parseNumber(value)); + } + return expectNumber2(value); + }; + strictParseFloat2 = strictParseDouble2; + strictParseFloat322 = (value) => { + if (typeof value == "string") { + return expectFloat322(parseNumber(value)); + } + return expectFloat322(value); + }; + NUMBER_REGEX = /(-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?)|(-?Infinity)|(NaN)/g; + parseNumber = (value) => { + const matches = value.match(NUMBER_REGEX); + if (matches === null || matches[0].length !== value.length) { + throw new TypeError(`Expected real number, got implicit NaN`); + } + return parseFloat(value); + }; + limitedParseDouble2 = (value) => { + if (typeof value == "string") { + return parseFloatString(value); + } + return expectNumber2(value); + }; + handleFloat2 = limitedParseDouble2; + limitedParseFloat2 = limitedParseDouble2; + limitedParseFloat322 = (value) => { + if (typeof value == "string") { + return parseFloatString(value); + } + return expectFloat322(value); + }; + parseFloatString = (value) => { + switch (value) { + case "NaN": + return NaN; + case "Infinity": + return Infinity; + case "-Infinity": + return -Infinity; + default: + throw new Error(`Unable to parse float value: ${value}`); + } + }; + strictParseLong2 = (value) => { + if (typeof value === "string") { + return expectLong2(parseNumber(value)); + } + return expectLong2(value); + }; + strictParseInt2 = strictParseLong2; + strictParseInt322 = (value) => { + if (typeof value === "string") { + return expectInt322(parseNumber(value)); + } + return expectInt322(value); + }; + strictParseShort2 = (value) => { + if (typeof value === "string") { + return expectShort2(parseNumber(value)); + } + return expectShort2(value); + }; + strictParseByte2 = (value) => { + if (typeof value === "string") { + return expectByte2(parseNumber(value)); + } + return expectByte2(value); + }; + stackTraceWarning = (message) => { + return String(new TypeError(message).stack || message).split("\n").slice(0, 5).filter((s4) => !s4.includes("stackTraceWarning")).join("\n"); + }; + logger2 = { + warn: console.warn + }; + } +}); + +// ../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/submodules/serde/date-utils.js +function dateToUtcString2(date) { + const year = date.getUTCFullYear(); + const month = date.getUTCMonth(); + const dayOfWeek = date.getUTCDay(); + const dayOfMonthInt = date.getUTCDate(); + const hoursInt = date.getUTCHours(); + const minutesInt = date.getUTCMinutes(); + const secondsInt = date.getUTCSeconds(); + const dayOfMonthString = dayOfMonthInt < 10 ? `0${dayOfMonthInt}` : `${dayOfMonthInt}`; + const hoursString = hoursInt < 10 ? `0${hoursInt}` : `${hoursInt}`; + const minutesString = minutesInt < 10 ? `0${minutesInt}` : `${minutesInt}`; + const secondsString = secondsInt < 10 ? `0${secondsInt}` : `${secondsInt}`; + return `${DAYS[dayOfWeek]}, ${dayOfMonthString} ${MONTHS[month]} ${year} ${hoursString}:${minutesString}:${secondsString} GMT`; +} +var DAYS, MONTHS, RFC3339, parseRfc3339DateTime2, RFC3339_WITH_OFFSET, parseRfc3339DateTimeWithOffset2, IMF_FIXDATE, RFC_850_DATE, ASC_TIME, parseRfc7231DateTime2, parseEpochTimestamp2, buildDate, parseTwoDigitYear, FIFTY_YEARS_IN_MILLIS, adjustRfc850Year, parseMonthByShortName, DAYS_IN_MONTH, validateDayOfMonth, isLeapYear, parseDateValue, parseMilliseconds, parseOffsetToMilliseconds, stripLeadingZeroes; +var init_date_utils = __esm({ + "../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/submodules/serde/date-utils.js"() { + init_parse_utils(); + DAYS = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]; + MONTHS = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]; + RFC3339 = new RegExp(/^(\d{4})-(\d{2})-(\d{2})[tT](\d{2}):(\d{2}):(\d{2})(?:\.(\d+))?[zZ]$/); + parseRfc3339DateTime2 = (value) => { + if (value === null || value === void 0) { + return void 0; + } + if (typeof value !== "string") { + throw new TypeError("RFC-3339 date-times must be expressed as strings"); + } + const match2 = RFC3339.exec(value); + if (!match2) { + throw new TypeError("Invalid RFC-3339 date-time value"); + } + const [_3, yearStr, monthStr, dayStr, hours, minutes, seconds, fractionalMilliseconds] = match2; + const year = strictParseShort2(stripLeadingZeroes(yearStr)); + const month = parseDateValue(monthStr, "month", 1, 12); + const day = parseDateValue(dayStr, "day", 1, 31); + return buildDate(year, month, day, { hours, minutes, seconds, fractionalMilliseconds }); + }; + RFC3339_WITH_OFFSET = new RegExp(/^(\d{4})-(\d{2})-(\d{2})[tT](\d{2}):(\d{2}):(\d{2})(?:\.(\d+))?(([-+]\d{2}\:\d{2})|[zZ])$/); + parseRfc3339DateTimeWithOffset2 = (value) => { + if (value === null || value === void 0) { + return void 0; + } + if (typeof value !== "string") { + throw new TypeError("RFC-3339 date-times must be expressed as strings"); + } + const match2 = RFC3339_WITH_OFFSET.exec(value); + if (!match2) { + throw new TypeError("Invalid RFC-3339 date-time value"); + } + const [_3, yearStr, monthStr, dayStr, hours, minutes, seconds, fractionalMilliseconds, offsetStr] = match2; + const year = strictParseShort2(stripLeadingZeroes(yearStr)); + const month = parseDateValue(monthStr, "month", 1, 12); + const day = parseDateValue(dayStr, "day", 1, 31); + const date = buildDate(year, month, day, { hours, minutes, seconds, fractionalMilliseconds }); + if (offsetStr.toUpperCase() != "Z") { + date.setTime(date.getTime() - parseOffsetToMilliseconds(offsetStr)); + } + return date; + }; + IMF_FIXDATE = new RegExp(/^(?:Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\d{2}) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\d{4}) (\d{1,2}):(\d{2}):(\d{2})(?:\.(\d+))? GMT$/); + RFC_850_DATE = new RegExp(/^(?:Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday), (\d{2})-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\d{2}) (\d{1,2}):(\d{2}):(\d{2})(?:\.(\d+))? GMT$/); + ASC_TIME = new RegExp(/^(?:Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ( [1-9]|\d{2}) (\d{1,2}):(\d{2}):(\d{2})(?:\.(\d+))? (\d{4})$/); + parseRfc7231DateTime2 = (value) => { + if (value === null || value === void 0) { + return void 0; + } + if (typeof value !== "string") { + throw new TypeError("RFC-7231 date-times must be expressed as strings"); + } + let match2 = IMF_FIXDATE.exec(value); + if (match2) { + const [_3, dayStr, monthStr, yearStr, hours, minutes, seconds, fractionalMilliseconds] = match2; + return buildDate(strictParseShort2(stripLeadingZeroes(yearStr)), parseMonthByShortName(monthStr), parseDateValue(dayStr, "day", 1, 31), { hours, minutes, seconds, fractionalMilliseconds }); + } + match2 = RFC_850_DATE.exec(value); + if (match2) { + const [_3, dayStr, monthStr, yearStr, hours, minutes, seconds, fractionalMilliseconds] = match2; + return adjustRfc850Year(buildDate(parseTwoDigitYear(yearStr), parseMonthByShortName(monthStr), parseDateValue(dayStr, "day", 1, 31), { + hours, + minutes, + seconds, + fractionalMilliseconds + })); + } + match2 = ASC_TIME.exec(value); + if (match2) { + const [_3, monthStr, dayStr, hours, minutes, seconds, fractionalMilliseconds, yearStr] = match2; + return buildDate(strictParseShort2(stripLeadingZeroes(yearStr)), parseMonthByShortName(monthStr), parseDateValue(dayStr.trimLeft(), "day", 1, 31), { hours, minutes, seconds, fractionalMilliseconds }); + } + throw new TypeError("Invalid RFC-7231 date-time value"); + }; + parseEpochTimestamp2 = (value) => { + if (value === null || value === void 0) { + return void 0; + } + let valueAsDouble; + if (typeof value === "number") { + valueAsDouble = value; + } else if (typeof value === "string") { + valueAsDouble = strictParseDouble2(value); + } else if (typeof value === "object" && value.tag === 1) { + valueAsDouble = value.value; + } else { + throw new TypeError("Epoch timestamps must be expressed as floating point numbers or their string representation"); + } + if (Number.isNaN(valueAsDouble) || valueAsDouble === Infinity || valueAsDouble === -Infinity) { + throw new TypeError("Epoch timestamps must be valid, non-Infinite, non-NaN numerics"); + } + return new Date(Math.round(valueAsDouble * 1e3)); + }; + buildDate = (year, month, day, time) => { + const adjustedMonth = month - 1; + validateDayOfMonth(year, adjustedMonth, day); + return new Date(Date.UTC(year, adjustedMonth, day, parseDateValue(time.hours, "hour", 0, 23), parseDateValue(time.minutes, "minute", 0, 59), parseDateValue(time.seconds, "seconds", 0, 60), parseMilliseconds(time.fractionalMilliseconds))); + }; + parseTwoDigitYear = (value) => { + const thisYear = (/* @__PURE__ */ new Date()).getUTCFullYear(); + const valueInThisCentury = Math.floor(thisYear / 100) * 100 + strictParseShort2(stripLeadingZeroes(value)); + if (valueInThisCentury < thisYear) { + return valueInThisCentury + 100; + } + return valueInThisCentury; + }; + FIFTY_YEARS_IN_MILLIS = 50 * 365 * 24 * 60 * 60 * 1e3; + adjustRfc850Year = (input) => { + if (input.getTime() - (/* @__PURE__ */ new Date()).getTime() > FIFTY_YEARS_IN_MILLIS) { + return new Date(Date.UTC(input.getUTCFullYear() - 100, input.getUTCMonth(), input.getUTCDate(), input.getUTCHours(), input.getUTCMinutes(), input.getUTCSeconds(), input.getUTCMilliseconds())); + } + return input; + }; + parseMonthByShortName = (value) => { + const monthIdx = MONTHS.indexOf(value); + if (monthIdx < 0) { + throw new TypeError(`Invalid month: ${value}`); + } + return monthIdx + 1; + }; + DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; + validateDayOfMonth = (year, month, day) => { + let maxDays = DAYS_IN_MONTH[month]; + if (month === 1 && isLeapYear(year)) { + maxDays = 29; + } + if (day > maxDays) { + throw new TypeError(`Invalid day for ${MONTHS[month]} in ${year}: ${day}`); + } + }; + isLeapYear = (year) => { + return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0); + }; + parseDateValue = (value, type, lower2, upper) => { + const dateVal = strictParseByte2(stripLeadingZeroes(value)); + if (dateVal < lower2 || dateVal > upper) { + throw new TypeError(`${type} must be between ${lower2} and ${upper}, inclusive`); + } + return dateVal; + }; + parseMilliseconds = (value) => { + if (value === null || value === void 0) { + return 0; + } + return strictParseFloat322("0." + value) * 1e3; + }; + parseOffsetToMilliseconds = (value) => { + const directionStr = value[0]; + let direction = 1; + if (directionStr == "+") { + direction = 1; + } else if (directionStr == "-") { + direction = -1; + } else { + throw new TypeError(`Offset direction, ${directionStr}, must be "+" or "-"`); + } + const hour = Number(value.substring(1, 3)); + const minute = Number(value.substring(4, 6)); + return direction * (hour * 60 + minute) * 60 * 1e3; + }; + stripLeadingZeroes = (value) => { + let idx = 0; + while (idx < value.length - 1 && value.charAt(idx) === "0") { + idx++; + } + if (idx === 0) { + return value; + } + return value.slice(idx); + }; + } +}); + +// ../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/submodules/serde/lazy-json.js +var LazyJsonString2; +var init_lazy_json = __esm({ + "../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/submodules/serde/lazy-json.js"() { + LazyJsonString2 = function LazyJsonString3(val2) { + const str = Object.assign(new String(val2), { + deserializeJSON() { + return JSON.parse(String(val2)); + }, + toString() { + return String(val2); + }, + toJSON() { + return String(val2); + } + }); + return str; + }; + LazyJsonString2.from = (object) => { + if (object && typeof object === "object" && (object instanceof LazyJsonString2 || "deserializeJSON" in object)) { + return object; + } else if (typeof object === "string" || Object.getPrototypeOf(object) === String.prototype) { + return LazyJsonString2(String(object)); + } + return LazyJsonString2(JSON.stringify(object)); + }; + LazyJsonString2.fromObject = LazyJsonString2.from; + } +}); + +// ../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/submodules/serde/quote-header.js +function quoteHeader2(part) { + if (part.includes(",") || part.includes('"')) { + part = `"${part.replace(/"/g, '\\"')}"`; + } + return part; +} +var init_quote_header = __esm({ + "../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/submodules/serde/quote-header.js"() { + } +}); + +// ../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/submodules/serde/split-every.js +function splitEvery2(value, delimiter, numDelimiters) { + if (numDelimiters <= 0 || !Number.isInteger(numDelimiters)) { + throw new Error("Invalid number of delimiters (" + numDelimiters + ") for splitEvery."); + } + const segments = value.split(delimiter); + if (numDelimiters === 1) { + return segments; + } + const compoundSegments = []; + let currentSegment = ""; + for (let i4 = 0; i4 < segments.length; i4++) { + if (currentSegment === "") { + currentSegment = segments[i4]; + } else { + currentSegment += delimiter + segments[i4]; + } + if ((i4 + 1) % numDelimiters === 0) { + compoundSegments.push(currentSegment); + currentSegment = ""; + } + } + if (currentSegment !== "") { + compoundSegments.push(currentSegment); + } + return compoundSegments; +} +var init_split_every = __esm({ + "../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/submodules/serde/split-every.js"() { + } +}); + +// ../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/submodules/serde/split-header.js +var splitHeader2; +var init_split_header = __esm({ + "../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/submodules/serde/split-header.js"() { + splitHeader2 = (value) => { + const z2 = value.length; + const values = []; + let withinQuotes = false; + let prevChar = void 0; + let anchor = 0; + for (let i4 = 0; i4 < z2; ++i4) { + const char = value[i4]; + switch (char) { + case `"`: + if (prevChar !== "\\") { + withinQuotes = !withinQuotes; + } + break; + case ",": + if (!withinQuotes) { + values.push(value.slice(anchor, i4)); + anchor = i4 + 1; + } + break; + default: + } + prevChar = char; + } + values.push(value.slice(anchor)); + return values.map((v6) => { + v6 = v6.trim(); + const z3 = v6.length; + if (z3 < 2) { + return v6; + } + if (v6[0] === `"` && v6[z3 - 1] === `"`) { + v6 = v6.slice(1, z3 - 1); + } + return v6.replace(/\\"/g, '"'); + }); + }; + } +}); + +// ../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/submodules/serde/value/NumericValue.js +function nv2(string2) { + return new NumericValue2(string2, "bigDecimal"); +} +var NumericValue2; +var init_NumericValue = __esm({ + "../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/submodules/serde/value/NumericValue.js"() { + NumericValue2 = class { + constructor(string2, type) { + this.string = string2; + this.type = type; + } + }; + } +}); + +// ../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/submodules/serde/index.js +var serde_exports = {}; +__export(serde_exports, { + LazyJsonString: () => LazyJsonString2, + NumericValue: () => NumericValue2, + copyDocumentWithTransform: () => copyDocumentWithTransform2, + dateToUtcString: () => dateToUtcString2, + expectBoolean: () => expectBoolean2, + expectByte: () => expectByte2, + expectFloat32: () => expectFloat322, + expectInt: () => expectInt2, + expectInt32: () => expectInt322, + expectLong: () => expectLong2, + expectNonNull: () => expectNonNull2, + expectNumber: () => expectNumber2, + expectObject: () => expectObject2, + expectShort: () => expectShort2, + expectString: () => expectString2, + expectUnion: () => expectUnion2, + handleFloat: () => handleFloat2, + limitedParseDouble: () => limitedParseDouble2, + limitedParseFloat: () => limitedParseFloat2, + limitedParseFloat32: () => limitedParseFloat322, + logger: () => logger2, + nv: () => nv2, + parseBoolean: () => parseBoolean2, + parseEpochTimestamp: () => parseEpochTimestamp2, + parseRfc3339DateTime: () => parseRfc3339DateTime2, + parseRfc3339DateTimeWithOffset: () => parseRfc3339DateTimeWithOffset2, + parseRfc7231DateTime: () => parseRfc7231DateTime2, + quoteHeader: () => quoteHeader2, + splitEvery: () => splitEvery2, + splitHeader: () => splitHeader2, + strictParseByte: () => strictParseByte2, + strictParseDouble: () => strictParseDouble2, + strictParseFloat: () => strictParseFloat2, + strictParseFloat32: () => strictParseFloat322, + strictParseInt: () => strictParseInt2, + strictParseInt32: () => strictParseInt322, + strictParseLong: () => strictParseLong2, + strictParseShort: () => strictParseShort2 +}); +var init_serde = __esm({ + "../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/submodules/serde/index.js"() { + init_copyDocumentWithTransform(); + init_date_utils(); + init_lazy_json(); + init_parse_utils(); + init_quote_header(); + init_split_every(); + init_split_header(); + init_NumericValue(); + } +}); + +// ../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/submodules/protocols/HttpProtocol.js +var import_protocol_http3, import_util_stream2, HttpProtocol; +var init_HttpProtocol = __esm({ + "../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/submodules/protocols/HttpProtocol.js"() { + init_schema(); + init_serde(); + import_protocol_http3 = __toESM(require_dist_cjs2()); + import_util_stream2 = __toESM(require_dist_cjs17()); + init_collect_stream_body(); + HttpProtocol = class { + constructor(options) { + this.options = options; + } + getRequestType() { + return import_protocol_http3.HttpRequest; + } + getResponseType() { + return import_protocol_http3.HttpResponse; + } + setSerdeContext(serdeContext) { + this.serdeContext = serdeContext; + this.serializer.setSerdeContext(serdeContext); + this.deserializer.setSerdeContext(serdeContext); + if (this.getPayloadCodec()) { + this.getPayloadCodec().setSerdeContext(serdeContext); + } + } + updateServiceEndpoint(request, endpoint) { + if ("url" in endpoint) { + request.protocol = endpoint.url.protocol; + request.hostname = endpoint.url.hostname; + request.port = endpoint.url.port ? Number(endpoint.url.port) : void 0; + request.path = endpoint.url.pathname; + request.fragment = endpoint.url.hash || void 0; + request.username = endpoint.url.username || void 0; + request.password = endpoint.url.password || void 0; + for (const [k3, v6] of endpoint.url.searchParams.entries()) { + if (!request.query) { + request.query = {}; + } + request.query[k3] = v6; + } + return request; + } else { + request.protocol = endpoint.protocol; + request.hostname = endpoint.hostname; + request.port = endpoint.port ? Number(endpoint.port) : void 0; + request.path = endpoint.path; + request.query = { + ...endpoint.query + }; + return request; + } + } + setHostPrefix(request, operationSchema, input) { + var _a2; + const operationNs = NormalizedSchema.of(operationSchema); + const inputNs = NormalizedSchema.of(operationSchema.input); + if (operationNs.getMergedTraits().endpoint) { + let hostPrefix = (_a2 = operationNs.getMergedTraits().endpoint) == null ? void 0 : _a2[0]; + if (typeof hostPrefix === "string") { + const hostLabelInputs = [...inputNs.structIterator()].filter(([, member]) => member.getMergedTraits().hostLabel); + for (const [name] of hostLabelInputs) { + const replacement = input[name]; + if (typeof replacement !== "string") { + throw new Error(`@smithy/core/schema - ${name} in input must be a string as hostLabel.`); + } + hostPrefix = hostPrefix.replace(`{${name}}`, replacement); + } + request.hostname = hostPrefix + request.hostname; + } + } + } + deserializeMetadata(output) { + return { + httpStatusCode: output.statusCode, + requestId: output.headers["x-amzn-requestid"] ?? output.headers["x-amzn-request-id"] ?? output.headers["x-amz-request-id"], + extendedRequestId: output.headers["x-amz-id-2"], + cfId: output.headers["x-amz-cf-id"] + }; + } + async deserializeHttpMessage(schema6, context, response, headerBindings, dataObject) { + const deserializer = this.deserializer; + const ns = NormalizedSchema.of(schema6); + const nonHttpBindingMembers = []; + for (const [memberName, memberSchema] of ns.structIterator()) { + const memberTraits = memberSchema.getMemberTraits(); + if (memberTraits.httpPayload) { + const isStreaming = memberSchema.isStreaming(); + if (isStreaming) { + const isEventStream = memberSchema.isStructSchema(); + if (isEventStream) { + const context2 = this.serdeContext; + if (!context2.eventStreamMarshaller) { + throw new Error("@smithy/core - HttpProtocol: eventStreamMarshaller missing in serdeContext."); + } + const memberSchemas = memberSchema.getMemberSchemas(); + dataObject[memberName] = context2.eventStreamMarshaller.deserialize(response.body, async (event) => { + const unionMember = Object.keys(event).find((key) => { + return key !== "__type"; + }) ?? ""; + if (unionMember in memberSchemas) { + const eventStreamSchema = memberSchemas[unionMember]; + return { + [unionMember]: await deserializer.read(eventStreamSchema, event[unionMember].body) + }; + } else { + return { + $unknown: event + }; + } + }); + } else { + dataObject[memberName] = (0, import_util_stream2.sdkStreamMixin)(response.body); + } + } else if (response.body) { + const bytes = await collectBody2(response.body, context); + if (bytes.byteLength > 0) { + dataObject[memberName] = await deserializer.read(memberSchema, bytes); + } + } + } else if (memberTraits.httpHeader) { + const key = String(memberTraits.httpHeader).toLowerCase(); + const value = response.headers[key]; + if (null != value) { + if (memberSchema.isListSchema()) { + const headerListValueSchema = memberSchema.getValueSchema(); + let sections; + if (headerListValueSchema.isTimestampSchema() && headerListValueSchema.getSchema() === SCHEMA.TIMESTAMP_DEFAULT) { + sections = splitEvery2(value, ",", 2); + } else { + sections = splitHeader2(value); + } + const list = []; + for (const section of sections) { + list.push(await deserializer.read([headerListValueSchema, { httpHeader: key }], section.trim())); + } + dataObject[memberName] = list; + } else { + dataObject[memberName] = await deserializer.read(memberSchema, value); + } + } + } else if (memberTraits.httpPrefixHeaders !== void 0) { + dataObject[memberName] = {}; + for (const [header, value] of Object.entries(response.headers)) { + if (!headerBindings.has(header) && header.startsWith(memberTraits.httpPrefixHeaders)) { + dataObject[memberName][header.slice(memberTraits.httpPrefixHeaders.length)] = await deserializer.read([memberSchema.getValueSchema(), { httpHeader: header }], value); + } + } + } else if (memberTraits.httpResponseCode) { + dataObject[memberName] = response.statusCode; + } else { + nonHttpBindingMembers.push(memberName); + } + } + return nonHttpBindingMembers; + } + }; + } +}); + +// ../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/submodules/protocols/HttpBindingProtocol.js +var import_protocol_http4, HttpBindingProtocol; +var init_HttpBindingProtocol = __esm({ + "../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/submodules/protocols/HttpBindingProtocol.js"() { + init_schema(); + import_protocol_http4 = __toESM(require_dist_cjs2()); + init_collect_stream_body(); + init_extended_encode_uri_component(); + init_HttpProtocol(); + HttpBindingProtocol = class extends HttpProtocol { + async serializeRequest(operationSchema, input, context) { + const serializer = this.serializer; + const query = {}; + const headers = {}; + const endpoint = await context.endpoint(); + const ns = NormalizedSchema.of(operationSchema == null ? void 0 : operationSchema.input); + const schema6 = ns.getSchema(); + let hasNonHttpBindingMember = false; + let payload; + const request = new import_protocol_http4.HttpRequest({ + protocol: "", + hostname: "", + port: void 0, + path: "", + fragment: void 0, + query, + headers, + body: void 0 + }); + if (endpoint) { + this.updateServiceEndpoint(request, endpoint); + this.setHostPrefix(request, operationSchema, input); + const opTraits = NormalizedSchema.translateTraits(operationSchema.traits); + if (opTraits.http) { + request.method = opTraits.http[0]; + const [path4, search] = opTraits.http[1].split("?"); + if (request.path == "/") { + request.path = path4; + } else { + request.path += path4; + } + const traitSearchParams = new URLSearchParams(search ?? ""); + Object.assign(query, Object.fromEntries(traitSearchParams)); + } + } + const _input = { + ...input + }; + for (const memberName of Object.keys(_input)) { + const memberNs = ns.getMemberSchema(memberName); + if (memberNs === void 0) { + continue; + } + const memberTraits = memberNs.getMergedTraits(); + const inputMember = _input[memberName]; + if (memberTraits.httpPayload) { + const isStreaming = memberNs.isStreaming(); + if (isStreaming) { + const isEventStream = memberNs.isStructSchema(); + if (isEventStream) { + throw new Error("serialization of event streams is not yet implemented"); + } else { + payload = inputMember; + } + } else { + serializer.write(memberNs, inputMember); + payload = serializer.flush(); + } + } else if (memberTraits.httpLabel) { + serializer.write(memberNs, inputMember); + const replacement = serializer.flush(); + if (request.path.includes(`{${memberName}+}`)) { + request.path = request.path.replace(`{${memberName}+}`, replacement.split("/").map(extendedEncodeURIComponent2).join("/")); + } else if (request.path.includes(`{${memberName}}`)) { + request.path = request.path.replace(`{${memberName}}`, extendedEncodeURIComponent2(replacement)); + } + delete _input[memberName]; + } else if (memberTraits.httpHeader) { + serializer.write(memberNs, inputMember); + headers[memberTraits.httpHeader.toLowerCase()] = String(serializer.flush()); + delete _input[memberName]; + } else if (typeof memberTraits.httpPrefixHeaders === "string") { + for (const [key, val2] of Object.entries(inputMember)) { + const amalgam = memberTraits.httpPrefixHeaders + key; + serializer.write([memberNs.getValueSchema(), { httpHeader: amalgam }], val2); + headers[amalgam.toLowerCase()] = serializer.flush(); + } + delete _input[memberName]; + } else if (memberTraits.httpQuery || memberTraits.httpQueryParams) { + this.serializeQuery(memberNs, inputMember, query); + delete _input[memberName]; + } else { + hasNonHttpBindingMember = true; + } + } + if (hasNonHttpBindingMember && input) { + serializer.write(schema6, _input); + payload = serializer.flush(); + } + request.headers = headers; + request.query = query; + request.body = payload; + return request; + } + serializeQuery(ns, data, query) { + const serializer = this.serializer; + const traits = ns.getMergedTraits(); + if (traits.httpQueryParams) { + for (const [key, val2] of Object.entries(data)) { + if (!(key in query)) { + this.serializeQuery(NormalizedSchema.of([ + ns.getValueSchema(), + { + ...traits, + httpQuery: key, + httpQueryParams: void 0 + } + ]), val2, query); + } + } + return; + } + if (ns.isListSchema()) { + const sparse = !!ns.getMergedTraits().sparse; + const buffer = []; + for (const item of data) { + serializer.write([ns.getValueSchema(), traits], item); + const serializable = serializer.flush(); + if (sparse || serializable !== void 0) { + buffer.push(serializable); + } + } + query[traits.httpQuery] = buffer; + } else { + serializer.write([ns, traits], data); + query[traits.httpQuery] = serializer.flush(); + } + } + async deserializeResponse(operationSchema, context, response) { + const deserializer = this.deserializer; + const ns = NormalizedSchema.of(operationSchema.output); + const dataObject = {}; + if (response.statusCode >= 300) { + const bytes = await collectBody2(response.body, context); + if (bytes.byteLength > 0) { + Object.assign(dataObject, await deserializer.read(SCHEMA.DOCUMENT, bytes)); + } + await this.handleError(operationSchema, context, response, dataObject, this.deserializeMetadata(response)); + throw new Error("@smithy/core/protocols - HTTP Protocol error handler failed to throw."); + } + for (const header in response.headers) { + const value = response.headers[header]; + delete response.headers[header]; + response.headers[header.toLowerCase()] = value; + } + const headerBindings = new Set(Object.values(ns.getMemberSchemas()).map((schema6) => { + return schema6.getMergedTraits().httpHeader; + }).filter(Boolean)); + const nonHttpBindingMembers = await this.deserializeHttpMessage(ns, context, response, headerBindings, dataObject); + if (nonHttpBindingMembers.length) { + const bytes = await collectBody2(response.body, context); + if (bytes.byteLength > 0) { + const dataFromBody = await deserializer.read(ns, bytes); + for (const member of nonHttpBindingMembers) { + dataObject[member] = dataFromBody[member]; + } + } + } + const output = { + $metadata: this.deserializeMetadata(response), + ...dataObject + }; + return output; + } + }; + } +}); + +// ../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/submodules/protocols/RpcProtocol.js +var import_protocol_http5, RpcProtocol; +var init_RpcProtocol = __esm({ + "../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/submodules/protocols/RpcProtocol.js"() { + init_schema(); + import_protocol_http5 = __toESM(require_dist_cjs2()); + init_collect_stream_body(); + init_HttpProtocol(); + RpcProtocol = class extends HttpProtocol { + async serializeRequest(operationSchema, input, context) { + const serializer = this.serializer; + const query = {}; + const headers = {}; + const endpoint = await context.endpoint(); + const ns = NormalizedSchema.of(operationSchema == null ? void 0 : operationSchema.input); + const schema6 = ns.getSchema(); + let payload; + const request = new import_protocol_http5.HttpRequest({ + protocol: "", + hostname: "", + port: void 0, + path: "/", + fragment: void 0, + query, + headers, + body: void 0 + }); + if (endpoint) { + this.updateServiceEndpoint(request, endpoint); + this.setHostPrefix(request, operationSchema, input); + } + const _input = { + ...input + }; + if (input) { + serializer.write(schema6, _input); + payload = serializer.flush(); + } + request.headers = headers; + request.query = query; + request.body = payload; + request.method = "POST"; + return request; + } + async deserializeResponse(operationSchema, context, response) { + const deserializer = this.deserializer; + const ns = NormalizedSchema.of(operationSchema.output); + const dataObject = {}; + if (response.statusCode >= 300) { + const bytes2 = await collectBody2(response.body, context); + if (bytes2.byteLength > 0) { + Object.assign(dataObject, await deserializer.read(SCHEMA.DOCUMENT, bytes2)); + } + await this.handleError(operationSchema, context, response, dataObject, this.deserializeMetadata(response)); + throw new Error("@smithy/core/protocols - RPC Protocol error handler failed to throw."); + } + for (const header in response.headers) { + const value = response.headers[header]; + delete response.headers[header]; + response.headers[header.toLowerCase()] = value; + } + const bytes = await collectBody2(response.body, context); + if (bytes.byteLength > 0) { + Object.assign(dataObject, await deserializer.read(ns, bytes)); + } + const output = { + $metadata: this.deserializeMetadata(response), + ...dataObject + }; + return output; + } + }; + } +}); + +// ../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/submodules/protocols/resolve-path.js +var resolvedPath2; +var init_resolve_path = __esm({ + "../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/submodules/protocols/resolve-path.js"() { + init_extended_encode_uri_component(); + resolvedPath2 = (resolvedPath3, input, memberName, labelValueProvider, uriLabel, isGreedyLabel) => { + if (input != null && input[memberName] !== void 0) { + const labelValue = labelValueProvider(); + if (labelValue.length <= 0) { + throw new Error("Empty value provided for input HTTP label: " + memberName + "."); + } + resolvedPath3 = resolvedPath3.replace(uriLabel, isGreedyLabel ? labelValue.split("/").map((segment) => extendedEncodeURIComponent2(segment)).join("/") : extendedEncodeURIComponent2(labelValue)); + } else { + throw new Error("No value provided for input HTTP label: " + memberName + "."); + } + return resolvedPath3; + }; + } +}); + +// ../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/submodules/protocols/requestBuilder.js +function requestBuilder(input, context) { + return new RequestBuilder(input, context); +} +var import_protocol_http6, RequestBuilder; +var init_requestBuilder = __esm({ + "../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/submodules/protocols/requestBuilder.js"() { + import_protocol_http6 = __toESM(require_dist_cjs2()); + init_resolve_path(); + RequestBuilder = class { + constructor(input, context) { + this.input = input; + this.context = context; + this.query = {}; + this.method = ""; + this.headers = {}; + this.path = ""; + this.body = null; + this.hostname = ""; + this.resolvePathStack = []; + } + async build() { + const { hostname, protocol = "https", port, path: basePath } = await this.context.endpoint(); + this.path = basePath; + for (const resolvePath of this.resolvePathStack) { + resolvePath(this.path); + } + return new import_protocol_http6.HttpRequest({ + protocol, + hostname: this.hostname || hostname, + port, + method: this.method, + path: this.path, + query: this.query, + body: this.body, + headers: this.headers + }); + } + hn(hostname) { + this.hostname = hostname; + return this; + } + bp(uriLabel) { + this.resolvePathStack.push((basePath) => { + this.path = `${(basePath == null ? void 0 : basePath.endsWith("/")) ? basePath.slice(0, -1) : basePath || ""}` + uriLabel; + }); + return this; + } + p(memberName, labelValueProvider, uriLabel, isGreedyLabel) { + this.resolvePathStack.push((path4) => { + this.path = resolvedPath2(path4, this.input, memberName, labelValueProvider, uriLabel, isGreedyLabel); + }); + return this; + } + h(headers) { + this.headers = headers; + return this; + } + q(query) { + this.query = query; + return this; + } + b(body) { + this.body = body; + return this; + } + m(method) { + this.method = method; + return this; + } + }; + } +}); + +// ../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/submodules/protocols/serde/determineTimestampFormat.js +function determineTimestampFormat(ns, settings) { + if (settings.timestampFormat.useTrait) { + if (ns.isTimestampSchema() && (ns.getSchema() === SCHEMA.TIMESTAMP_DATE_TIME || ns.getSchema() === SCHEMA.TIMESTAMP_HTTP_DATE || ns.getSchema() === SCHEMA.TIMESTAMP_EPOCH_SECONDS)) { + return ns.getSchema(); + } + } + const { httpLabel, httpPrefixHeaders, httpHeader, httpQuery } = ns.getMergedTraits(); + const bindingFormat = settings.httpBindings ? typeof httpPrefixHeaders === "string" || Boolean(httpHeader) ? SCHEMA.TIMESTAMP_HTTP_DATE : Boolean(httpQuery) || Boolean(httpLabel) ? SCHEMA.TIMESTAMP_DATE_TIME : void 0 : void 0; + return bindingFormat ?? settings.timestampFormat.default; +} +var init_determineTimestampFormat = __esm({ + "../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/submodules/protocols/serde/determineTimestampFormat.js"() { + init_schema(); + } +}); + +// ../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/submodules/protocols/serde/FromStringShapeDeserializer.js +var import_util_base64, import_util_utf8, FromStringShapeDeserializer; +var init_FromStringShapeDeserializer = __esm({ + "../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/submodules/protocols/serde/FromStringShapeDeserializer.js"() { + init_schema(); + init_serde(); + import_util_base64 = __toESM(require_dist_cjs11()); + import_util_utf8 = __toESM(require_dist_cjs10()); + init_determineTimestampFormat(); + FromStringShapeDeserializer = class { + constructor(settings) { + this.settings = settings; + } + setSerdeContext(serdeContext) { + this.serdeContext = serdeContext; + } + read(_schema, data) { + var _a2; + const ns = NormalizedSchema.of(_schema); + if (ns.isListSchema()) { + return splitHeader2(data).map((item) => this.read(ns.getValueSchema(), item)); + } + if (ns.isBlobSchema()) { + return (((_a2 = this.serdeContext) == null ? void 0 : _a2.base64Decoder) ?? import_util_base64.fromBase64)(data); + } + if (ns.isTimestampSchema()) { + const format = determineTimestampFormat(ns, this.settings); + switch (format) { + case SCHEMA.TIMESTAMP_DATE_TIME: + return parseRfc3339DateTimeWithOffset2(data); + case SCHEMA.TIMESTAMP_HTTP_DATE: + return parseRfc7231DateTime2(data); + case SCHEMA.TIMESTAMP_EPOCH_SECONDS: + return parseEpochTimestamp2(data); + default: + console.warn("Missing timestamp format, parsing value with Date constructor:", data); + return new Date(data); + } + } + if (ns.isStringSchema()) { + const mediaType = ns.getMergedTraits().mediaType; + let intermediateValue = data; + if (mediaType) { + if (ns.getMergedTraits().httpHeader) { + intermediateValue = this.base64ToUtf8(intermediateValue); + } + const isJson = mediaType === "application/json" || mediaType.endsWith("+json"); + if (isJson) { + intermediateValue = LazyJsonString2.from(intermediateValue); + } + return intermediateValue; + } + } + switch (true) { + case ns.isNumericSchema(): + return Number(data); + case ns.isBigIntegerSchema(): + return BigInt(data); + case ns.isBigDecimalSchema(): + return new NumericValue2(data, "bigDecimal"); + case ns.isBooleanSchema(): + return String(data).toLowerCase() === "true"; + } + return data; + } + base64ToUtf8(base64String) { + var _a2, _b; + return (((_a2 = this.serdeContext) == null ? void 0 : _a2.utf8Encoder) ?? import_util_utf8.toUtf8)((((_b = this.serdeContext) == null ? void 0 : _b.base64Decoder) ?? import_util_base64.fromBase64)(base64String)); + } + }; + } +}); + +// ../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/submodules/protocols/serde/HttpInterceptingShapeDeserializer.js +var import_util_utf82, HttpInterceptingShapeDeserializer; +var init_HttpInterceptingShapeDeserializer = __esm({ + "../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/submodules/protocols/serde/HttpInterceptingShapeDeserializer.js"() { + init_schema(); + import_util_utf82 = __toESM(require_dist_cjs10()); + init_FromStringShapeDeserializer(); + HttpInterceptingShapeDeserializer = class { + constructor(codecDeserializer, codecSettings) { + this.codecDeserializer = codecDeserializer; + this.stringDeserializer = new FromStringShapeDeserializer(codecSettings); + } + setSerdeContext(serdeContext) { + this.stringDeserializer.setSerdeContext(serdeContext); + this.codecDeserializer.setSerdeContext(serdeContext); + this.serdeContext = serdeContext; + } + read(schema6, data) { + var _a2, _b; + const ns = NormalizedSchema.of(schema6); + const traits = ns.getMergedTraits(); + const toString = ((_a2 = this.serdeContext) == null ? void 0 : _a2.utf8Encoder) ?? import_util_utf82.toUtf8; + if (traits.httpHeader || traits.httpResponseCode) { + return this.stringDeserializer.read(ns, toString(data)); + } + if (traits.httpPayload) { + if (ns.isBlobSchema()) { + const toBytes = ((_b = this.serdeContext) == null ? void 0 : _b.utf8Decoder) ?? import_util_utf82.fromUtf8; + if (typeof data === "string") { + return toBytes(data); + } + return data; + } else if (ns.isStringSchema()) { + if ("byteLength" in data) { + return toString(data); + } + return data; + } + } + return this.codecDeserializer.read(ns, data); + } + }; + } +}); + +// ../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/submodules/protocols/serde/ToStringShapeSerializer.js +var import_util_base642, ToStringShapeSerializer; +var init_ToStringShapeSerializer = __esm({ + "../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/submodules/protocols/serde/ToStringShapeSerializer.js"() { + init_schema(); + init_serde(); + import_util_base642 = __toESM(require_dist_cjs11()); + init_determineTimestampFormat(); + ToStringShapeSerializer = class { + constructor(settings) { + this.settings = settings; + this.stringBuffer = ""; + this.serdeContext = void 0; + } + setSerdeContext(serdeContext) { + this.serdeContext = serdeContext; + } + write(schema6, value) { + var _a2, _b; + const ns = NormalizedSchema.of(schema6); + switch (typeof value) { + case "object": + if (value === null) { + this.stringBuffer = "null"; + return; + } + if (ns.isTimestampSchema()) { + if (!(value instanceof Date)) { + throw new Error(`@smithy/core/protocols - received non-Date value ${value} when schema expected Date in ${ns.getName(true)}`); + } + const format = determineTimestampFormat(ns, this.settings); + switch (format) { + case SCHEMA.TIMESTAMP_DATE_TIME: + this.stringBuffer = value.toISOString().replace(".000Z", "Z"); + break; + case SCHEMA.TIMESTAMP_HTTP_DATE: + this.stringBuffer = dateToUtcString2(value); + break; + case SCHEMA.TIMESTAMP_EPOCH_SECONDS: + this.stringBuffer = String(value.getTime() / 1e3); + break; + default: + console.warn("Missing timestamp format, using epoch seconds", value); + this.stringBuffer = String(value.getTime() / 1e3); + } + return; + } + if (ns.isBlobSchema() && "byteLength" in value) { + this.stringBuffer = (((_a2 = this.serdeContext) == null ? void 0 : _a2.base64Encoder) ?? import_util_base642.toBase64)(value); + return; + } + if (ns.isListSchema() && Array.isArray(value)) { + let buffer = ""; + for (const item of value) { + this.write([ns.getValueSchema(), ns.getMergedTraits()], item); + const headerItem = this.flush(); + const serialized = ns.getValueSchema().isTimestampSchema() ? headerItem : quoteHeader2(headerItem); + if (buffer !== "") { + buffer += ", "; + } + buffer += serialized; + } + this.stringBuffer = buffer; + return; + } + this.stringBuffer = JSON.stringify(value, null, 2); + break; + case "string": + const mediaType = ns.getMergedTraits().mediaType; + let intermediateValue = value; + if (mediaType) { + const isJson = mediaType === "application/json" || mediaType.endsWith("+json"); + if (isJson) { + intermediateValue = LazyJsonString2.from(intermediateValue); + } + if (ns.getMergedTraits().httpHeader) { + this.stringBuffer = (((_b = this.serdeContext) == null ? void 0 : _b.base64Encoder) ?? import_util_base642.toBase64)(intermediateValue.toString()); + return; + } + } + this.stringBuffer = value; + break; + default: + this.stringBuffer = String(value); + } + } + flush() { + const buffer = this.stringBuffer; + this.stringBuffer = ""; + return buffer; + } + }; + } +}); + +// ../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/submodules/protocols/serde/HttpInterceptingShapeSerializer.js +var HttpInterceptingShapeSerializer; +var init_HttpInterceptingShapeSerializer = __esm({ + "../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/submodules/protocols/serde/HttpInterceptingShapeSerializer.js"() { + init_schema(); + init_ToStringShapeSerializer(); + HttpInterceptingShapeSerializer = class { + constructor(codecSerializer, codecSettings, stringSerializer = new ToStringShapeSerializer(codecSettings)) { + this.codecSerializer = codecSerializer; + this.stringSerializer = stringSerializer; + } + setSerdeContext(serdeContext) { + this.codecSerializer.setSerdeContext(serdeContext); + this.stringSerializer.setSerdeContext(serdeContext); + } + write(schema6, value) { + const ns = NormalizedSchema.of(schema6); + const traits = ns.getMergedTraits(); + if (traits.httpHeader || traits.httpLabel || traits.httpQuery) { + this.stringSerializer.write(ns, value); + this.buffer = this.stringSerializer.flush(); + return; + } + return this.codecSerializer.write(ns, value); + } + flush() { + if (this.buffer !== void 0) { + const buffer = this.buffer; + this.buffer = void 0; + return buffer; + } + return this.codecSerializer.flush(); + } + }; + } +}); + +// ../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/submodules/protocols/index.js +var protocols_exports = {}; +__export(protocols_exports, { + FromStringShapeDeserializer: () => FromStringShapeDeserializer, + HttpBindingProtocol: () => HttpBindingProtocol, + HttpInterceptingShapeDeserializer: () => HttpInterceptingShapeDeserializer, + HttpInterceptingShapeSerializer: () => HttpInterceptingShapeSerializer, + RequestBuilder: () => RequestBuilder, + RpcProtocol: () => RpcProtocol, + ToStringShapeSerializer: () => ToStringShapeSerializer, + collectBody: () => collectBody2, + determineTimestampFormat: () => determineTimestampFormat, + extendedEncodeURIComponent: () => extendedEncodeURIComponent2, + requestBuilder: () => requestBuilder, + resolvedPath: () => resolvedPath2 +}); +var init_protocols = __esm({ + "../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/submodules/protocols/index.js"() { + init_collect_stream_body(); + init_extended_encode_uri_component(); + init_HttpBindingProtocol(); + init_RpcProtocol(); + init_requestBuilder(); + init_resolve_path(); + init_FromStringShapeDeserializer(); + init_HttpInterceptingShapeDeserializer(); + init_HttpInterceptingShapeSerializer(); + init_ToStringShapeSerializer(); + init_determineTimestampFormat(); + } +}); + +// ../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/protocols/requestBuilder.js +var init_requestBuilder2 = __esm({ + "../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/protocols/requestBuilder.js"() { + init_protocols(); + } +}); + +// ../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/setFeature.js +function setFeature(context, feature, value) { + if (!context.__smithy_context) { + context.__smithy_context = { + features: {} + }; + } else if (!context.__smithy_context.features) { + context.__smithy_context.features = {}; + } + context.__smithy_context.features[feature] = value; +} +var init_setFeature = __esm({ + "../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/setFeature.js"() { + } +}); + +// ../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/util-identity-and-auth/DefaultIdentityProviderConfig.js +var DefaultIdentityProviderConfig; +var init_DefaultIdentityProviderConfig = __esm({ + "../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/util-identity-and-auth/DefaultIdentityProviderConfig.js"() { + DefaultIdentityProviderConfig = class { + constructor(config) { + this.authSchemes = /* @__PURE__ */ new Map(); + for (const [key, value] of Object.entries(config)) { + if (value !== void 0) { + this.authSchemes.set(key, value); + } + } + } + getIdentityProvider(schemeId) { + return this.authSchemes.get(schemeId); + } + }; + } +}); + +// ../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/util-identity-and-auth/httpAuthSchemes/httpApiKeyAuth.js +var import_protocol_http7, import_types4, HttpApiKeyAuthSigner; +var init_httpApiKeyAuth = __esm({ + "../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/util-identity-and-auth/httpAuthSchemes/httpApiKeyAuth.js"() { + import_protocol_http7 = __toESM(require_dist_cjs2()); + import_types4 = __toESM(require_dist_cjs()); + HttpApiKeyAuthSigner = class { + async sign(httpRequest, identity, signingProperties) { + if (!signingProperties) { + throw new Error("request could not be signed with `apiKey` since the `name` and `in` signer properties are missing"); + } + if (!signingProperties.name) { + throw new Error("request could not be signed with `apiKey` since the `name` signer property is missing"); + } + if (!signingProperties.in) { + throw new Error("request could not be signed with `apiKey` since the `in` signer property is missing"); + } + if (!identity.apiKey) { + throw new Error("request could not be signed with `apiKey` since the `apiKey` is not defined"); + } + const clonedRequest = import_protocol_http7.HttpRequest.clone(httpRequest); + if (signingProperties.in === import_types4.HttpApiKeyAuthLocation.QUERY) { + clonedRequest.query[signingProperties.name] = identity.apiKey; + } else if (signingProperties.in === import_types4.HttpApiKeyAuthLocation.HEADER) { + clonedRequest.headers[signingProperties.name] = signingProperties.scheme ? `${signingProperties.scheme} ${identity.apiKey}` : identity.apiKey; + } else { + throw new Error("request can only be signed with `apiKey` locations `query` or `header`, but found: `" + signingProperties.in + "`"); + } + return clonedRequest; + } + }; + } +}); + +// ../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/util-identity-and-auth/httpAuthSchemes/httpBearerAuth.js +var import_protocol_http8, HttpBearerAuthSigner; +var init_httpBearerAuth = __esm({ + "../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/util-identity-and-auth/httpAuthSchemes/httpBearerAuth.js"() { + import_protocol_http8 = __toESM(require_dist_cjs2()); + HttpBearerAuthSigner = class { + async sign(httpRequest, identity, signingProperties) { + const clonedRequest = import_protocol_http8.HttpRequest.clone(httpRequest); + if (!identity.token) { + throw new Error("request could not be signed with `token` since the `token` is not defined"); + } + clonedRequest.headers["Authorization"] = `Bearer ${identity.token}`; + return clonedRequest; + } + }; + } +}); + +// ../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/util-identity-and-auth/httpAuthSchemes/noAuth.js +var NoAuthSigner; +var init_noAuth = __esm({ + "../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/util-identity-and-auth/httpAuthSchemes/noAuth.js"() { + NoAuthSigner = class { + async sign(httpRequest, identity, signingProperties) { + return httpRequest; + } + }; + } +}); + +// ../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/util-identity-and-auth/httpAuthSchemes/index.js +var init_httpAuthSchemes = __esm({ + "../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/util-identity-and-auth/httpAuthSchemes/index.js"() { + init_httpApiKeyAuth(); + init_httpBearerAuth(); + init_noAuth(); + } +}); + +// ../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/util-identity-and-auth/memoizeIdentityProvider.js +var createIsIdentityExpiredFunction, EXPIRATION_MS, isIdentityExpired, doesIdentityRequireRefresh, memoizeIdentityProvider; +var init_memoizeIdentityProvider = __esm({ + "../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/util-identity-and-auth/memoizeIdentityProvider.js"() { + createIsIdentityExpiredFunction = (expirationMs) => (identity) => doesIdentityRequireRefresh(identity) && identity.expiration.getTime() - Date.now() < expirationMs; + EXPIRATION_MS = 3e5; + isIdentityExpired = createIsIdentityExpiredFunction(EXPIRATION_MS); + doesIdentityRequireRefresh = (identity) => identity.expiration !== void 0; + memoizeIdentityProvider = (provider, isExpired, requiresRefresh) => { + if (provider === void 0) { + return void 0; + } + const normalizedProvider = typeof provider !== "function" ? async () => Promise.resolve(provider) : provider; + let resolved; + let pending; + let hasResult; + let isConstant = false; + const coalesceProvider = async (options) => { + if (!pending) { + pending = normalizedProvider(options); + } + try { + resolved = await pending; + hasResult = true; + isConstant = false; + } finally { + pending = void 0; + } + return resolved; + }; + if (isExpired === void 0) { + return async (options) => { + if (!hasResult || (options == null ? void 0 : options.forceRefresh)) { + resolved = await coalesceProvider(options); + } + return resolved; + }; + } + return async (options) => { + if (!hasResult || (options == null ? void 0 : options.forceRefresh)) { + resolved = await coalesceProvider(options); + } + if (isConstant) { + return resolved; + } + if (!requiresRefresh(resolved)) { + isConstant = true; + return resolved; + } + if (isExpired(resolved)) { + await coalesceProvider(options); + return resolved; + } + return resolved; + }; + }; + } +}); + +// ../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/util-identity-and-auth/index.js +var init_util_identity_and_auth = __esm({ + "../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/util-identity-and-auth/index.js"() { + init_DefaultIdentityProviderConfig(); + init_httpAuthSchemes(); + init_memoizeIdentityProvider(); + } +}); + +// ../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/index.js +var dist_es_exports = {}; +__export(dist_es_exports, { + DefaultIdentityProviderConfig: () => DefaultIdentityProviderConfig, + EXPIRATION_MS: () => EXPIRATION_MS, + HttpApiKeyAuthSigner: () => HttpApiKeyAuthSigner, + HttpBearerAuthSigner: () => HttpBearerAuthSigner, + NoAuthSigner: () => NoAuthSigner, + createIsIdentityExpiredFunction: () => createIsIdentityExpiredFunction, + createPaginator: () => createPaginator, + doesIdentityRequireRefresh: () => doesIdentityRequireRefresh, + getHttpAuthSchemeEndpointRuleSetPlugin: () => getHttpAuthSchemeEndpointRuleSetPlugin, + getHttpAuthSchemePlugin: () => getHttpAuthSchemePlugin, + getHttpSigningPlugin: () => getHttpSigningPlugin, + getSmithyContext: () => getSmithyContext, + httpAuthSchemeEndpointRuleSetMiddlewareOptions: () => httpAuthSchemeEndpointRuleSetMiddlewareOptions, + httpAuthSchemeMiddleware: () => httpAuthSchemeMiddleware, + httpAuthSchemeMiddlewareOptions: () => httpAuthSchemeMiddlewareOptions, + httpSigningMiddleware: () => httpSigningMiddleware, + httpSigningMiddlewareOptions: () => httpSigningMiddlewareOptions, + isIdentityExpired: () => isIdentityExpired, + memoizeIdentityProvider: () => memoizeIdentityProvider, + normalizeProvider: () => normalizeProvider, + requestBuilder: () => requestBuilder, + setFeature: () => setFeature +}); +var init_dist_es = __esm({ + "../node_modules/.pnpm/@smithy+core@3.5.1/node_modules/@smithy/core/dist-es/index.js"() { + init_getSmithyContext(); + init_middleware_http_auth_scheme(); + init_middleware_http_signing(); + init_normalizeProvider(); + init_createPaginator(); + init_requestBuilder2(); + init_setFeature(); + init_util_identity_and_auth(); + } +}); + +// ../node_modules/.pnpm/@smithy+util-endpoints@3.0.6/node_modules/@smithy/util-endpoints/dist-cjs/index.js +var require_dist_cjs18 = __commonJS({ + "../node_modules/.pnpm/@smithy+util-endpoints@3.0.6/node_modules/@smithy/util-endpoints/dist-cjs/index.js"(exports2, module2) { + var __defProp3 = Object.defineProperty; + var __getOwnPropDesc3 = Object.getOwnPropertyDescriptor; + var __getOwnPropNames3 = Object.getOwnPropertyNames; + var __hasOwnProp3 = Object.prototype.hasOwnProperty; + var __name = (target, value) => __defProp3(target, "name", { value, configurable: true }); + var __export2 = (target, all) => { + for (var name in all) + __defProp3(target, name, { get: all[name], enumerable: true }); + }; + var __copyProps3 = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames3(from)) + if (!__hasOwnProp3.call(to, key) && key !== except) + __defProp3(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc3(from, key)) || desc.enumerable }); + } + return to; + }; + var __toCommonJS2 = (mod) => __copyProps3(__defProp3({}, "__esModule", { value: true }), mod); + var src_exports = {}; + __export2(src_exports, { + EndpointCache: () => EndpointCache3, + EndpointError: () => EndpointError2, + customEndpointFunctions: () => customEndpointFunctions3, + isIpAddress: () => isIpAddress2, + isValidHostLabel: () => isValidHostLabel, + resolveEndpoint: () => resolveEndpoint4 + }); + module2.exports = __toCommonJS2(src_exports); + var _a2; + var EndpointCache3 = (_a2 = class { + /** + * @param [size] - desired average maximum capacity. A buffer of 10 additional keys will be allowed + * before keys are dropped. + * @param [params] - list of params to consider as part of the cache key. + * + * If the params list is not populated, no caching will happen. + * This may be out of order depending on how the object is created and arrives to this class. + */ + constructor({ size, params }) { + this.data = /* @__PURE__ */ new Map(); + this.parameters = []; + this.capacity = size ?? 50; + if (params) { + this.parameters = params; + } + } + /** + * @param endpointParams - query for endpoint. + * @param resolver - provider of the value if not present. + * @returns endpoint corresponding to the query. + */ + get(endpointParams, resolver) { + const key = this.hash(endpointParams); + if (key === false) { + return resolver(); + } + if (!this.data.has(key)) { + if (this.data.size > this.capacity + 10) { + const keys = this.data.keys(); + let i4 = 0; + while (true) { + const { value, done } = keys.next(); + this.data.delete(value); + if (done || ++i4 > 10) { + break; + } + } + } + this.data.set(key, resolver()); + } + return this.data.get(key); + } + size() { + return this.data.size; + } + /** + * @returns cache key or false if not cachable. + */ + hash(endpointParams) { + let buffer = ""; + const { parameters } = this; + if (parameters.length === 0) { + return false; + } + for (const param of parameters) { + const val2 = String(endpointParams[param] ?? ""); + if (val2.includes("|;")) { + return false; + } + buffer += val2 + "|;"; + } + return buffer; + } + }, __name(_a2, "EndpointCache"), _a2); + var IP_V4_REGEX = new RegExp( + `^(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}$` + ); + var isIpAddress2 = /* @__PURE__ */ __name((value) => IP_V4_REGEX.test(value) || value.startsWith("[") && value.endsWith("]"), "isIpAddress"); + var VALID_HOST_LABEL_REGEX = new RegExp(`^(?!.*-$)(?!-)[a-zA-Z0-9-]{1,63}$`); + var isValidHostLabel = /* @__PURE__ */ __name((value, allowSubDomains = false) => { + if (!allowSubDomains) { + return VALID_HOST_LABEL_REGEX.test(value); + } + const labels = value.split("."); + for (const label of labels) { + if (!isValidHostLabel(label)) { + return false; + } + } + return true; + }, "isValidHostLabel"); + var customEndpointFunctions3 = {}; + var debugId = "endpoints"; + function toDebugString(input) { + if (typeof input !== "object" || input == null) { + return input; + } + if ("ref" in input) { + return `$${toDebugString(input.ref)}`; + } + if ("fn" in input) { + return `${input.fn}(${(input.argv || []).map(toDebugString).join(", ")})`; + } + return JSON.stringify(input, null, 2); + } + __name(toDebugString, "toDebugString"); + var _a3; + var EndpointError2 = (_a3 = class extends Error { + constructor(message) { + super(message); + this.name = "EndpointError"; + } + }, __name(_a3, "EndpointError"), _a3); + var booleanEquals = /* @__PURE__ */ __name((value1, value2) => value1 === value2, "booleanEquals"); + var getAttrPathList = /* @__PURE__ */ __name((path4) => { + const parts = path4.split("."); + const pathList = []; + for (const part of parts) { + const squareBracketIndex = part.indexOf("["); + if (squareBracketIndex !== -1) { + if (part.indexOf("]") !== part.length - 1) { + throw new EndpointError2(`Path: '${path4}' does not end with ']'`); + } + const arrayIndex = part.slice(squareBracketIndex + 1, -1); + if (Number.isNaN(parseInt(arrayIndex))) { + throw new EndpointError2(`Invalid array index: '${arrayIndex}' in path: '${path4}'`); + } + if (squareBracketIndex !== 0) { + pathList.push(part.slice(0, squareBracketIndex)); + } + pathList.push(arrayIndex); + } else { + pathList.push(part); + } + } + return pathList; + }, "getAttrPathList"); + var getAttr = /* @__PURE__ */ __name((value, path4) => getAttrPathList(path4).reduce((acc, index6) => { + if (typeof acc !== "object") { + throw new EndpointError2(`Index '${index6}' in '${path4}' not found in '${JSON.stringify(value)}'`); + } else if (Array.isArray(acc)) { + return acc[parseInt(index6)]; + } + return acc[index6]; + }, value), "getAttr"); + var isSet = /* @__PURE__ */ __name((value) => value != null, "isSet"); + var not = /* @__PURE__ */ __name((value) => !value, "not"); + var import_types32 = require_dist_cjs(); + var DEFAULT_PORTS = { + [import_types32.EndpointURLScheme.HTTP]: 80, + [import_types32.EndpointURLScheme.HTTPS]: 443 + }; + var parseURL = /* @__PURE__ */ __name((value) => { + const whatwgURL = (() => { + try { + if (value instanceof URL) { + return value; + } + if (typeof value === "object" && "hostname" in value) { + const { hostname: hostname2, port, protocol: protocol2 = "", path: path4 = "", query = {} } = value; + const url = new URL(`${protocol2}//${hostname2}${port ? `:${port}` : ""}${path4}`); + url.search = Object.entries(query).map(([k3, v6]) => `${k3}=${v6}`).join("&"); + return url; + } + return new URL(value); + } catch (error2) { + return null; + } + })(); + if (!whatwgURL) { + console.error(`Unable to parse ${JSON.stringify(value)} as a whatwg URL.`); + return null; + } + const urlString = whatwgURL.href; + const { host, hostname, pathname, protocol, search } = whatwgURL; + if (search) { + return null; + } + const scheme = protocol.slice(0, -1); + if (!Object.values(import_types32.EndpointURLScheme).includes(scheme)) { + return null; + } + const isIp = isIpAddress2(hostname); + const inputContainsDefaultPort = urlString.includes(`${host}:${DEFAULT_PORTS[scheme]}`) || typeof value === "string" && value.includes(`${host}:${DEFAULT_PORTS[scheme]}`); + const authority = `${host}${inputContainsDefaultPort ? `:${DEFAULT_PORTS[scheme]}` : ``}`; + return { + scheme, + authority, + path: pathname, + normalizedPath: pathname.endsWith("/") ? pathname : `${pathname}/`, + isIp + }; + }, "parseURL"); + var stringEquals = /* @__PURE__ */ __name((value1, value2) => value1 === value2, "stringEquals"); + var substring = /* @__PURE__ */ __name((input, start, stop, reverse) => { + if (start >= stop || input.length < stop) { + return null; + } + if (!reverse) { + return input.substring(start, stop); + } + return input.substring(input.length - stop, input.length - start); + }, "substring"); + var uriEncode = /* @__PURE__ */ __name((value) => encodeURIComponent(value).replace(/[!*'()]/g, (c3) => `%${c3.charCodeAt(0).toString(16).toUpperCase()}`), "uriEncode"); + var endpointFunctions = { + booleanEquals, + getAttr, + isSet, + isValidHostLabel, + not, + parseURL, + stringEquals, + substring, + uriEncode + }; + var evaluateTemplate = /* @__PURE__ */ __name((template, options) => { + const evaluatedTemplateArr = []; + const templateContext = { + ...options.endpointParams, + ...options.referenceRecord + }; + let currentIndex = 0; + while (currentIndex < template.length) { + const openingBraceIndex = template.indexOf("{", currentIndex); + if (openingBraceIndex === -1) { + evaluatedTemplateArr.push(template.slice(currentIndex)); + break; + } + evaluatedTemplateArr.push(template.slice(currentIndex, openingBraceIndex)); + const closingBraceIndex = template.indexOf("}", openingBraceIndex); + if (closingBraceIndex === -1) { + evaluatedTemplateArr.push(template.slice(openingBraceIndex)); + break; + } + if (template[openingBraceIndex + 1] === "{" && template[closingBraceIndex + 1] === "}") { + evaluatedTemplateArr.push(template.slice(openingBraceIndex + 1, closingBraceIndex)); + currentIndex = closingBraceIndex + 2; + } + const parameterName = template.substring(openingBraceIndex + 1, closingBraceIndex); + if (parameterName.includes("#")) { + const [refName, attrName] = parameterName.split("#"); + evaluatedTemplateArr.push(getAttr(templateContext[refName], attrName)); + } else { + evaluatedTemplateArr.push(templateContext[parameterName]); + } + currentIndex = closingBraceIndex + 1; + } + return evaluatedTemplateArr.join(""); + }, "evaluateTemplate"); + var getReferenceValue = /* @__PURE__ */ __name(({ ref }, options) => { + const referenceRecord = { + ...options.endpointParams, + ...options.referenceRecord + }; + return referenceRecord[ref]; + }, "getReferenceValue"); + var evaluateExpression = /* @__PURE__ */ __name((obj, keyName, options) => { + if (typeof obj === "string") { + return evaluateTemplate(obj, options); + } else if (obj["fn"]) { + return callFunction(obj, options); + } else if (obj["ref"]) { + return getReferenceValue(obj, options); + } + throw new EndpointError2(`'${keyName}': ${String(obj)} is not a string, function or reference.`); + }, "evaluateExpression"); + var callFunction = /* @__PURE__ */ __name(({ fn, argv }, options) => { + const evaluatedArgs = argv.map( + (arg) => ["boolean", "number"].includes(typeof arg) ? arg : evaluateExpression(arg, "arg", options) + ); + const fnSegments = fn.split("."); + if (fnSegments[0] in customEndpointFunctions3 && fnSegments[1] != null) { + return customEndpointFunctions3[fnSegments[0]][fnSegments[1]](...evaluatedArgs); + } + return endpointFunctions[fn](...evaluatedArgs); + }, "callFunction"); + var evaluateCondition = /* @__PURE__ */ __name(({ assign, ...fnArgs }, options) => { + var _a4, _b; + if (assign && assign in options.referenceRecord) { + throw new EndpointError2(`'${assign}' is already defined in Reference Record.`); + } + const value = callFunction(fnArgs, options); + (_b = (_a4 = options.logger) == null ? void 0 : _a4.debug) == null ? void 0 : _b.call(_a4, `${debugId} evaluateCondition: ${toDebugString(fnArgs)} = ${toDebugString(value)}`); + return { + result: value === "" ? true : !!value, + ...assign != null && { toAssign: { name: assign, value } } + }; + }, "evaluateCondition"); + var evaluateConditions = /* @__PURE__ */ __name((conditions = [], options) => { + var _a4, _b; + const conditionsReferenceRecord = {}; + for (const condition of conditions) { + const { result, toAssign } = evaluateCondition(condition, { + ...options, + referenceRecord: { + ...options.referenceRecord, + ...conditionsReferenceRecord + } + }); + if (!result) { + return { result }; + } + if (toAssign) { + conditionsReferenceRecord[toAssign.name] = toAssign.value; + (_b = (_a4 = options.logger) == null ? void 0 : _a4.debug) == null ? void 0 : _b.call(_a4, `${debugId} assign: ${toAssign.name} := ${toDebugString(toAssign.value)}`); + } + } + return { result: true, referenceRecord: conditionsReferenceRecord }; + }, "evaluateConditions"); + var getEndpointHeaders = /* @__PURE__ */ __name((headers, options) => Object.entries(headers).reduce( + (acc, [headerKey, headerVal]) => ({ + ...acc, + [headerKey]: headerVal.map((headerValEntry) => { + const processedExpr = evaluateExpression(headerValEntry, "Header value entry", options); + if (typeof processedExpr !== "string") { + throw new EndpointError2(`Header '${headerKey}' value '${processedExpr}' is not a string`); + } + return processedExpr; + }) + }), + {} + ), "getEndpointHeaders"); + var getEndpointProperty = /* @__PURE__ */ __name((property, options) => { + if (Array.isArray(property)) { + return property.map((propertyEntry) => getEndpointProperty(propertyEntry, options)); + } + switch (typeof property) { + case "string": + return evaluateTemplate(property, options); + case "object": + if (property === null) { + throw new EndpointError2(`Unexpected endpoint property: ${property}`); + } + return getEndpointProperties(property, options); + case "boolean": + return property; + default: + throw new EndpointError2(`Unexpected endpoint property type: ${typeof property}`); + } + }, "getEndpointProperty"); + var getEndpointProperties = /* @__PURE__ */ __name((properties, options) => Object.entries(properties).reduce( + (acc, [propertyKey, propertyVal]) => ({ + ...acc, + [propertyKey]: getEndpointProperty(propertyVal, options) + }), + {} + ), "getEndpointProperties"); + var getEndpointUrl = /* @__PURE__ */ __name((endpointUrl, options) => { + const expression = evaluateExpression(endpointUrl, "Endpoint URL", options); + if (typeof expression === "string") { + try { + return new URL(expression); + } catch (error2) { + console.error(`Failed to construct URL with ${expression}`, error2); + throw error2; + } + } + throw new EndpointError2(`Endpoint URL must be a string, got ${typeof expression}`); + }, "getEndpointUrl"); + var evaluateEndpointRule = /* @__PURE__ */ __name((endpointRule, options) => { + var _a4, _b; + const { conditions, endpoint } = endpointRule; + const { result, referenceRecord } = evaluateConditions(conditions, options); + if (!result) { + return; + } + const endpointRuleOptions = { + ...options, + referenceRecord: { ...options.referenceRecord, ...referenceRecord } + }; + const { url, properties, headers } = endpoint; + (_b = (_a4 = options.logger) == null ? void 0 : _a4.debug) == null ? void 0 : _b.call(_a4, `${debugId} Resolving endpoint from template: ${toDebugString(endpoint)}`); + return { + ...headers != void 0 && { + headers: getEndpointHeaders(headers, endpointRuleOptions) + }, + ...properties != void 0 && { + properties: getEndpointProperties(properties, endpointRuleOptions) + }, + url: getEndpointUrl(url, endpointRuleOptions) + }; + }, "evaluateEndpointRule"); + var evaluateErrorRule = /* @__PURE__ */ __name((errorRule, options) => { + const { conditions, error: error2 } = errorRule; + const { result, referenceRecord } = evaluateConditions(conditions, options); + if (!result) { + return; + } + throw new EndpointError2( + evaluateExpression(error2, "Error", { + ...options, + referenceRecord: { ...options.referenceRecord, ...referenceRecord } + }) + ); + }, "evaluateErrorRule"); + var evaluateTreeRule = /* @__PURE__ */ __name((treeRule, options) => { + const { conditions, rules } = treeRule; + const { result, referenceRecord } = evaluateConditions(conditions, options); + if (!result) { + return; + } + return evaluateRules(rules, { + ...options, + referenceRecord: { ...options.referenceRecord, ...referenceRecord } + }); + }, "evaluateTreeRule"); + var evaluateRules = /* @__PURE__ */ __name((rules, options) => { + for (const rule of rules) { + if (rule.type === "endpoint") { + const endpointOrUndefined = evaluateEndpointRule(rule, options); + if (endpointOrUndefined) { + return endpointOrUndefined; + } + } else if (rule.type === "error") { + evaluateErrorRule(rule, options); + } else if (rule.type === "tree") { + const endpointOrUndefined = evaluateTreeRule(rule, options); + if (endpointOrUndefined) { + return endpointOrUndefined; + } + } else { + throw new EndpointError2(`Unknown endpoint rule: ${rule}`); + } + } + throw new EndpointError2(`Rules evaluation failed`); + }, "evaluateRules"); + var resolveEndpoint4 = /* @__PURE__ */ __name((ruleSetObject, options) => { + var _a4, _b, _c, _d; + const { endpointParams, logger: logger3 } = options; + const { parameters, rules } = ruleSetObject; + (_b = (_a4 = options.logger) == null ? void 0 : _a4.debug) == null ? void 0 : _b.call(_a4, `${debugId} Initial EndpointParams: ${toDebugString(endpointParams)}`); + const paramsWithDefault = Object.entries(parameters).filter(([, v6]) => v6.default != null).map(([k3, v6]) => [k3, v6.default]); + if (paramsWithDefault.length > 0) { + for (const [paramKey, paramDefaultValue] of paramsWithDefault) { + endpointParams[paramKey] = endpointParams[paramKey] ?? paramDefaultValue; + } + } + const requiredParams = Object.entries(parameters).filter(([, v6]) => v6.required).map(([k3]) => k3); + for (const requiredParam of requiredParams) { + if (endpointParams[requiredParam] == null) { + throw new EndpointError2(`Missing required parameter: '${requiredParam}'`); + } + } + const endpoint = evaluateRules(rules, { endpointParams, logger: logger3, referenceRecord: {} }); + (_d = (_c = options.logger) == null ? void 0 : _c.debug) == null ? void 0 : _d.call(_c, `${debugId} Resolved endpoint: ${toDebugString(endpoint)}`); + return endpoint; + }, "resolveEndpoint"); + } +}); + +// ../node_modules/.pnpm/@aws-sdk+util-endpoints@3.808.0/node_modules/@aws-sdk/util-endpoints/dist-cjs/index.js +var require_dist_cjs19 = __commonJS({ + "../node_modules/.pnpm/@aws-sdk+util-endpoints@3.808.0/node_modules/@aws-sdk/util-endpoints/dist-cjs/index.js"(exports2, module2) { + "use strict"; + var __defProp3 = Object.defineProperty; + var __getOwnPropDesc3 = Object.getOwnPropertyDescriptor; + var __getOwnPropNames3 = Object.getOwnPropertyNames; + var __hasOwnProp3 = Object.prototype.hasOwnProperty; + var __name = (target, value) => __defProp3(target, "name", { value, configurable: true }); + var __export2 = (target, all) => { + for (var name in all) + __defProp3(target, name, { get: all[name], enumerable: true }); + }; + var __copyProps3 = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames3(from)) + if (!__hasOwnProp3.call(to, key) && key !== except) + __defProp3(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc3(from, key)) || desc.enumerable }); + } + return to; + }; + var __toCommonJS2 = (mod) => __copyProps3(__defProp3({}, "__esModule", { value: true }), mod); + var index_exports = {}; + __export2(index_exports, { + ConditionObject: () => import_util_endpoints5.ConditionObject, + DeprecatedObject: () => import_util_endpoints5.DeprecatedObject, + EndpointError: () => import_util_endpoints5.EndpointError, + EndpointObject: () => import_util_endpoints5.EndpointObject, + EndpointObjectHeaders: () => import_util_endpoints5.EndpointObjectHeaders, + EndpointObjectProperties: () => import_util_endpoints5.EndpointObjectProperties, + EndpointParams: () => import_util_endpoints5.EndpointParams, + EndpointResolverOptions: () => import_util_endpoints5.EndpointResolverOptions, + EndpointRuleObject: () => import_util_endpoints5.EndpointRuleObject, + ErrorRuleObject: () => import_util_endpoints5.ErrorRuleObject, + EvaluateOptions: () => import_util_endpoints5.EvaluateOptions, + Expression: () => import_util_endpoints5.Expression, + FunctionArgv: () => import_util_endpoints5.FunctionArgv, + FunctionObject: () => import_util_endpoints5.FunctionObject, + FunctionReturn: () => import_util_endpoints5.FunctionReturn, + ParameterObject: () => import_util_endpoints5.ParameterObject, + ReferenceObject: () => import_util_endpoints5.ReferenceObject, + ReferenceRecord: () => import_util_endpoints5.ReferenceRecord, + RuleSetObject: () => import_util_endpoints5.RuleSetObject, + RuleSetRules: () => import_util_endpoints5.RuleSetRules, + TreeRuleObject: () => import_util_endpoints5.TreeRuleObject, + awsEndpointFunctions: () => awsEndpointFunctions3, + getUserAgentPrefix: () => getUserAgentPrefix, + isIpAddress: () => import_util_endpoints5.isIpAddress, + partition: () => partition, + resolveEndpoint: () => import_util_endpoints5.resolveEndpoint, + setPartitionInfo: () => setPartitionInfo, + useDefaultPartitionInfo: () => useDefaultPartitionInfo + }); + module2.exports = __toCommonJS2(index_exports); + var import_util_endpoints5 = require_dist_cjs18(); + var isVirtualHostableS3Bucket = /* @__PURE__ */ __name((value, allowSubDomains = false) => { + if (allowSubDomains) { + for (const label of value.split(".")) { + if (!isVirtualHostableS3Bucket(label)) { + return false; + } + } + return true; + } + if (!(0, import_util_endpoints5.isValidHostLabel)(value)) { + return false; + } + if (value.length < 3 || value.length > 63) { + return false; + } + if (value !== value.toLowerCase()) { + return false; + } + if ((0, import_util_endpoints5.isIpAddress)(value)) { + return false; + } + return true; + }, "isVirtualHostableS3Bucket"); + var ARN_DELIMITER = ":"; + var RESOURCE_DELIMITER = "/"; + var parseArn = /* @__PURE__ */ __name((value) => { + const segments = value.split(ARN_DELIMITER); + if (segments.length < 6) return null; + const [arn, partition2, service, region, accountId, ...resourcePath] = segments; + if (arn !== "arn" || partition2 === "" || service === "" || resourcePath.join(ARN_DELIMITER) === "") return null; + const resourceId = resourcePath.map((resource) => resource.split(RESOURCE_DELIMITER)).flat(); + return { + partition: partition2, + service, + region, + accountId, + resourceId + }; + }, "parseArn"); + var partitions_default = { + partitions: [{ + id: "aws", + outputs: { + dnsSuffix: "amazonaws.com", + dualStackDnsSuffix: "api.aws", + implicitGlobalRegion: "us-east-1", + name: "aws", + supportsDualStack: true, + supportsFIPS: true + }, + regionRegex: "^(us|eu|ap|sa|ca|me|af|il|mx)\\-\\w+\\-\\d+$", + regions: { + "af-south-1": { + description: "Africa (Cape Town)" + }, + "ap-east-1": { + description: "Asia Pacific (Hong Kong)" + }, + "ap-northeast-1": { + description: "Asia Pacific (Tokyo)" + }, + "ap-northeast-2": { + description: "Asia Pacific (Seoul)" + }, + "ap-northeast-3": { + description: "Asia Pacific (Osaka)" + }, + "ap-south-1": { + description: "Asia Pacific (Mumbai)" + }, + "ap-south-2": { + description: "Asia Pacific (Hyderabad)" + }, + "ap-southeast-1": { + description: "Asia Pacific (Singapore)" + }, + "ap-southeast-2": { + description: "Asia Pacific (Sydney)" + }, + "ap-southeast-3": { + description: "Asia Pacific (Jakarta)" + }, + "ap-southeast-4": { + description: "Asia Pacific (Melbourne)" + }, + "ap-southeast-5": { + description: "Asia Pacific (Malaysia)" + }, + "ap-southeast-7": { + description: "Asia Pacific (Thailand)" + }, + "aws-global": { + description: "AWS Standard global region" + }, + "ca-central-1": { + description: "Canada (Central)" + }, + "ca-west-1": { + description: "Canada West (Calgary)" + }, + "eu-central-1": { + description: "Europe (Frankfurt)" + }, + "eu-central-2": { + description: "Europe (Zurich)" + }, + "eu-north-1": { + description: "Europe (Stockholm)" + }, + "eu-south-1": { + description: "Europe (Milan)" + }, + "eu-south-2": { + description: "Europe (Spain)" + }, + "eu-west-1": { + description: "Europe (Ireland)" + }, + "eu-west-2": { + description: "Europe (London)" + }, + "eu-west-3": { + description: "Europe (Paris)" + }, + "il-central-1": { + description: "Israel (Tel Aviv)" + }, + "me-central-1": { + description: "Middle East (UAE)" + }, + "me-south-1": { + description: "Middle East (Bahrain)" + }, + "mx-central-1": { + description: "Mexico (Central)" + }, + "sa-east-1": { + description: "South America (Sao Paulo)" + }, + "us-east-1": { + description: "US East (N. Virginia)" + }, + "us-east-2": { + description: "US East (Ohio)" + }, + "us-west-1": { + description: "US West (N. California)" + }, + "us-west-2": { + description: "US West (Oregon)" + } + } + }, { + id: "aws-cn", + outputs: { + dnsSuffix: "amazonaws.com.cn", + dualStackDnsSuffix: "api.amazonwebservices.com.cn", + implicitGlobalRegion: "cn-northwest-1", + name: "aws-cn", + supportsDualStack: true, + supportsFIPS: true + }, + regionRegex: "^cn\\-\\w+\\-\\d+$", + regions: { + "aws-cn-global": { + description: "AWS China global region" + }, + "cn-north-1": { + description: "China (Beijing)" + }, + "cn-northwest-1": { + description: "China (Ningxia)" + } + } + }, { + id: "aws-us-gov", + outputs: { + dnsSuffix: "amazonaws.com", + dualStackDnsSuffix: "api.aws", + implicitGlobalRegion: "us-gov-west-1", + name: "aws-us-gov", + supportsDualStack: true, + supportsFIPS: true + }, + regionRegex: "^us\\-gov\\-\\w+\\-\\d+$", + regions: { + "aws-us-gov-global": { + description: "AWS GovCloud (US) global region" + }, + "us-gov-east-1": { + description: "AWS GovCloud (US-East)" + }, + "us-gov-west-1": { + description: "AWS GovCloud (US-West)" + } + } + }, { + id: "aws-iso", + outputs: { + dnsSuffix: "c2s.ic.gov", + dualStackDnsSuffix: "c2s.ic.gov", + implicitGlobalRegion: "us-iso-east-1", + name: "aws-iso", + supportsDualStack: false, + supportsFIPS: true + }, + regionRegex: "^us\\-iso\\-\\w+\\-\\d+$", + regions: { + "aws-iso-global": { + description: "AWS ISO (US) global region" + }, + "us-iso-east-1": { + description: "US ISO East" + }, + "us-iso-west-1": { + description: "US ISO WEST" + } + } + }, { + id: "aws-iso-b", + outputs: { + dnsSuffix: "sc2s.sgov.gov", + dualStackDnsSuffix: "sc2s.sgov.gov", + implicitGlobalRegion: "us-isob-east-1", + name: "aws-iso-b", + supportsDualStack: false, + supportsFIPS: true + }, + regionRegex: "^us\\-isob\\-\\w+\\-\\d+$", + regions: { + "aws-iso-b-global": { + description: "AWS ISOB (US) global region" + }, + "us-isob-east-1": { + description: "US ISOB East (Ohio)" + } + } + }, { + id: "aws-iso-e", + outputs: { + dnsSuffix: "cloud.adc-e.uk", + dualStackDnsSuffix: "cloud.adc-e.uk", + implicitGlobalRegion: "eu-isoe-west-1", + name: "aws-iso-e", + supportsDualStack: false, + supportsFIPS: true + }, + regionRegex: "^eu\\-isoe\\-\\w+\\-\\d+$", + regions: { + "aws-iso-e-global": { + description: "AWS ISOE (Europe) global region" + }, + "eu-isoe-west-1": { + description: "EU ISOE West" + } + } + }, { + id: "aws-iso-f", + outputs: { + dnsSuffix: "csp.hci.ic.gov", + dualStackDnsSuffix: "csp.hci.ic.gov", + implicitGlobalRegion: "us-isof-south-1", + name: "aws-iso-f", + supportsDualStack: false, + supportsFIPS: true + }, + regionRegex: "^us\\-isof\\-\\w+\\-\\d+$", + regions: { + "aws-iso-f-global": { + description: "AWS ISOF global region" + }, + "us-isof-east-1": { + description: "US ISOF EAST" + }, + "us-isof-south-1": { + description: "US ISOF SOUTH" + } + } + }, { + id: "aws-eusc", + outputs: { + dnsSuffix: "amazonaws.eu", + dualStackDnsSuffix: "amazonaws.eu", + implicitGlobalRegion: "eusc-de-east-1", + name: "aws-eusc", + supportsDualStack: false, + supportsFIPS: true + }, + regionRegex: "^eusc\\-(de)\\-\\w+\\-\\d+$", + regions: { + "eusc-de-east-1": { + description: "EU (Germany)" + } + } + }], + version: "1.1" + }; + var selectedPartitionsInfo = partitions_default; + var selectedUserAgentPrefix = ""; + var partition = /* @__PURE__ */ __name((value) => { + const { partitions } = selectedPartitionsInfo; + for (const partition2 of partitions) { + const { regions, outputs: outputs2 } = partition2; + for (const [region, regionData] of Object.entries(regions)) { + if (region === value) { + return { + ...outputs2, + ...regionData + }; + } + } + } + for (const partition2 of partitions) { + const { regionRegex, outputs: outputs2 } = partition2; + if (new RegExp(regionRegex).test(value)) { + return { + ...outputs2 + }; + } + } + const DEFAULT_PARTITION = partitions.find((partition2) => partition2.id === "aws"); + if (!DEFAULT_PARTITION) { + throw new Error( + "Provided region was not found in the partition array or regex, and default partition with id 'aws' doesn't exist." + ); + } + return { + ...DEFAULT_PARTITION.outputs + }; + }, "partition"); + var setPartitionInfo = /* @__PURE__ */ __name((partitionsInfo, userAgentPrefix = "") => { + selectedPartitionsInfo = partitionsInfo; + selectedUserAgentPrefix = userAgentPrefix; + }, "setPartitionInfo"); + var useDefaultPartitionInfo = /* @__PURE__ */ __name(() => { + setPartitionInfo(partitions_default, ""); + }, "useDefaultPartitionInfo"); + var getUserAgentPrefix = /* @__PURE__ */ __name(() => selectedUserAgentPrefix, "getUserAgentPrefix"); + var awsEndpointFunctions3 = { + isVirtualHostableS3Bucket, + parseArn, + partition + }; + import_util_endpoints5.customEndpointFunctions.aws = awsEndpointFunctions3; + } +}); + +// ../node_modules/.pnpm/@aws-sdk+core@3.816.0/node_modules/@aws-sdk/core/dist-es/submodules/client/emitWarningIfUnsupportedVersion.js +var state, emitWarningIfUnsupportedVersion; +var init_emitWarningIfUnsupportedVersion = __esm({ + "../node_modules/.pnpm/@aws-sdk+core@3.816.0/node_modules/@aws-sdk/core/dist-es/submodules/client/emitWarningIfUnsupportedVersion.js"() { + state = { + warningEmitted: false + }; + emitWarningIfUnsupportedVersion = (version3) => { + if (version3 && !state.warningEmitted && parseInt(version3.substring(1, version3.indexOf("."))) < 18) { + state.warningEmitted = true; + process.emitWarning(`NodeDeprecationWarning: The AWS SDK for JavaScript (v3) will +no longer support Node.js 16.x on January 6, 2025. + +To continue receiving updates to AWS services, bug fixes, and security +updates please upgrade to a supported Node.js LTS version. + +More information can be found at: https://a.co/74kJMmI`); + } + }; + } +}); + +// ../node_modules/.pnpm/@aws-sdk+core@3.816.0/node_modules/@aws-sdk/core/dist-es/submodules/client/setCredentialFeature.js +function setCredentialFeature(credentials2, feature, value) { + if (!credentials2.$source) { + credentials2.$source = {}; + } + credentials2.$source[feature] = value; + return credentials2; +} +var init_setCredentialFeature = __esm({ + "../node_modules/.pnpm/@aws-sdk+core@3.816.0/node_modules/@aws-sdk/core/dist-es/submodules/client/setCredentialFeature.js"() { + } +}); + +// ../node_modules/.pnpm/@aws-sdk+core@3.816.0/node_modules/@aws-sdk/core/dist-es/submodules/client/setFeature.js +function setFeature2(context, feature, value) { + if (!context.__aws_sdk_context) { + context.__aws_sdk_context = { + features: {} + }; + } else if (!context.__aws_sdk_context.features) { + context.__aws_sdk_context.features = {}; + } + context.__aws_sdk_context.features[feature] = value; +} +var init_setFeature2 = __esm({ + "../node_modules/.pnpm/@aws-sdk+core@3.816.0/node_modules/@aws-sdk/core/dist-es/submodules/client/setFeature.js"() { + } +}); + +// ../node_modules/.pnpm/@aws-sdk+core@3.816.0/node_modules/@aws-sdk/core/dist-es/submodules/client/index.js +var client_exports = {}; +__export(client_exports, { + emitWarningIfUnsupportedVersion: () => emitWarningIfUnsupportedVersion, + setCredentialFeature: () => setCredentialFeature, + setFeature: () => setFeature2, + state: () => state +}); +var init_client = __esm({ + "../node_modules/.pnpm/@aws-sdk+core@3.816.0/node_modules/@aws-sdk/core/dist-es/submodules/client/index.js"() { + init_emitWarningIfUnsupportedVersion(); + init_setCredentialFeature(); + init_setFeature2(); + } +}); + +// ../node_modules/.pnpm/@aws-sdk+core@3.816.0/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/utils/getDateHeader.js +var import_protocol_http9, getDateHeader; +var init_getDateHeader = __esm({ + "../node_modules/.pnpm/@aws-sdk+core@3.816.0/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/utils/getDateHeader.js"() { + import_protocol_http9 = __toESM(require_dist_cjs2()); + getDateHeader = (response) => { + var _a2, _b; + return import_protocol_http9.HttpResponse.isInstance(response) ? ((_a2 = response.headers) == null ? void 0 : _a2.date) ?? ((_b = response.headers) == null ? void 0 : _b.Date) : void 0; + }; + } +}); + +// ../node_modules/.pnpm/@aws-sdk+core@3.816.0/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/utils/getSkewCorrectedDate.js +var getSkewCorrectedDate; +var init_getSkewCorrectedDate = __esm({ + "../node_modules/.pnpm/@aws-sdk+core@3.816.0/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/utils/getSkewCorrectedDate.js"() { + getSkewCorrectedDate = (systemClockOffset) => new Date(Date.now() + systemClockOffset); + } +}); + +// ../node_modules/.pnpm/@aws-sdk+core@3.816.0/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/utils/isClockSkewed.js +var isClockSkewed; +var init_isClockSkewed = __esm({ + "../node_modules/.pnpm/@aws-sdk+core@3.816.0/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/utils/isClockSkewed.js"() { + init_getSkewCorrectedDate(); + isClockSkewed = (clockTime, systemClockOffset) => Math.abs(getSkewCorrectedDate(systemClockOffset).getTime() - clockTime) >= 3e5; + } +}); + +// ../node_modules/.pnpm/@aws-sdk+core@3.816.0/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/utils/getUpdatedSystemClockOffset.js +var getUpdatedSystemClockOffset; +var init_getUpdatedSystemClockOffset = __esm({ + "../node_modules/.pnpm/@aws-sdk+core@3.816.0/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/utils/getUpdatedSystemClockOffset.js"() { + init_isClockSkewed(); + getUpdatedSystemClockOffset = (clockTime, currentSystemClockOffset) => { + const clockTimeInMs = Date.parse(clockTime); + if (isClockSkewed(clockTimeInMs, currentSystemClockOffset)) { + return clockTimeInMs - Date.now(); + } + return currentSystemClockOffset; + }; + } +}); + +// ../node_modules/.pnpm/@aws-sdk+core@3.816.0/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/utils/index.js +var init_utils6 = __esm({ + "../node_modules/.pnpm/@aws-sdk+core@3.816.0/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/utils/index.js"() { + init_getDateHeader(); + init_getSkewCorrectedDate(); + init_getUpdatedSystemClockOffset(); + } +}); + +// ../node_modules/.pnpm/@aws-sdk+core@3.816.0/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4Signer.js +var import_protocol_http10, throwSigningPropertyError, validateSigningProperties, AwsSdkSigV4Signer, AWSSDKSigV4Signer; +var init_AwsSdkSigV4Signer = __esm({ + "../node_modules/.pnpm/@aws-sdk+core@3.816.0/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4Signer.js"() { + import_protocol_http10 = __toESM(require_dist_cjs2()); + init_utils6(); + throwSigningPropertyError = (name, property) => { + if (!property) { + throw new Error(`Property \`${name}\` is not resolved for AWS SDK SigV4Auth`); + } + return property; + }; + validateSigningProperties = async (signingProperties) => { + var _a2, _b, _c; + const context = throwSigningPropertyError("context", signingProperties.context); + const config = throwSigningPropertyError("config", signingProperties.config); + const authScheme = (_c = (_b = (_a2 = context.endpointV2) == null ? void 0 : _a2.properties) == null ? void 0 : _b.authSchemes) == null ? void 0 : _c[0]; + const signerFunction = throwSigningPropertyError("signer", config.signer); + const signer = await signerFunction(authScheme); + const signingRegion = signingProperties == null ? void 0 : signingProperties.signingRegion; + const signingRegionSet = signingProperties == null ? void 0 : signingProperties.signingRegionSet; + const signingName = signingProperties == null ? void 0 : signingProperties.signingName; + return { + config, + signer, + signingRegion, + signingRegionSet, + signingName + }; + }; + AwsSdkSigV4Signer = class { + async sign(httpRequest, identity, signingProperties) { + var _a2; + if (!import_protocol_http10.HttpRequest.isInstance(httpRequest)) { + throw new Error("The request is not an instance of `HttpRequest` and cannot be signed"); + } + const validatedProps = await validateSigningProperties(signingProperties); + const { config, signer } = validatedProps; + let { signingRegion, signingName } = validatedProps; + const handlerExecutionContext = signingProperties.context; + if (((_a2 = handlerExecutionContext == null ? void 0 : handlerExecutionContext.authSchemes) == null ? void 0 : _a2.length) ?? 0 > 1) { + const [first, second] = handlerExecutionContext.authSchemes; + if ((first == null ? void 0 : first.name) === "sigv4a" && (second == null ? void 0 : second.name) === "sigv4") { + signingRegion = (second == null ? void 0 : second.signingRegion) ?? signingRegion; + signingName = (second == null ? void 0 : second.signingName) ?? signingName; + } + } + const signedRequest = await signer.sign(httpRequest, { + signingDate: getSkewCorrectedDate(config.systemClockOffset), + signingRegion, + signingService: signingName + }); + return signedRequest; + } + errorHandler(signingProperties) { + return (error2) => { + const serverTime = error2.ServerTime ?? getDateHeader(error2.$response); + if (serverTime) { + const config = throwSigningPropertyError("config", signingProperties.config); + const initialSystemClockOffset = config.systemClockOffset; + config.systemClockOffset = getUpdatedSystemClockOffset(serverTime, config.systemClockOffset); + const clockSkewCorrected = config.systemClockOffset !== initialSystemClockOffset; + if (clockSkewCorrected && error2.$metadata) { + error2.$metadata.clockSkewCorrected = true; + } + } + throw error2; + }; + } + successHandler(httpResponse, signingProperties) { + const dateHeader = getDateHeader(httpResponse); + if (dateHeader) { + const config = throwSigningPropertyError("config", signingProperties.config); + config.systemClockOffset = getUpdatedSystemClockOffset(dateHeader, config.systemClockOffset); + } + } + }; + AWSSDKSigV4Signer = AwsSdkSigV4Signer; + } +}); + +// ../node_modules/.pnpm/@aws-sdk+core@3.816.0/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4ASigner.js +var import_protocol_http11, AwsSdkSigV4ASigner; +var init_AwsSdkSigV4ASigner = __esm({ + "../node_modules/.pnpm/@aws-sdk+core@3.816.0/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4ASigner.js"() { + import_protocol_http11 = __toESM(require_dist_cjs2()); + init_utils6(); + init_AwsSdkSigV4Signer(); + AwsSdkSigV4ASigner = class extends AwsSdkSigV4Signer { + async sign(httpRequest, identity, signingProperties) { + var _a2; + if (!import_protocol_http11.HttpRequest.isInstance(httpRequest)) { + throw new Error("The request is not an instance of `HttpRequest` and cannot be signed"); + } + const { config, signer, signingRegion, signingRegionSet, signingName } = await validateSigningProperties(signingProperties); + const configResolvedSigningRegionSet = await ((_a2 = config.sigv4aSigningRegionSet) == null ? void 0 : _a2.call(config)); + const multiRegionOverride = (configResolvedSigningRegionSet ?? signingRegionSet ?? [signingRegion]).join(","); + const signedRequest = await signer.sign(httpRequest, { + signingDate: getSkewCorrectedDate(config.systemClockOffset), + signingRegion: multiRegionOverride, + signingService: signingName + }); + return signedRequest; + } + }; + } +}); + +// ../node_modules/.pnpm/@aws-sdk+core@3.816.0/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/utils/getArrayForCommaSeparatedString.js +var getArrayForCommaSeparatedString; +var init_getArrayForCommaSeparatedString = __esm({ + "../node_modules/.pnpm/@aws-sdk+core@3.816.0/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/utils/getArrayForCommaSeparatedString.js"() { + getArrayForCommaSeparatedString = (str) => typeof str === "string" && str.length > 0 ? str.split(",").map((item) => item.trim()) : []; + } +}); + +// ../node_modules/.pnpm/@aws-sdk+core@3.816.0/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/utils/getBearerTokenEnvKey.js +var getBearerTokenEnvKey; +var init_getBearerTokenEnvKey = __esm({ + "../node_modules/.pnpm/@aws-sdk+core@3.816.0/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/utils/getBearerTokenEnvKey.js"() { + getBearerTokenEnvKey = (signingName) => `AWS_BEARER_TOKEN_${signingName.replace(/[\s-]/g, "_").toUpperCase()}`; + } +}); + +// ../node_modules/.pnpm/@aws-sdk+core@3.816.0/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/aws_sdk/NODE_AUTH_SCHEME_PREFERENCE_OPTIONS.js +var NODE_AUTH_SCHEME_PREFERENCE_ENV_KEY, NODE_AUTH_SCHEME_PREFERENCE_CONFIG_KEY, NODE_AUTH_SCHEME_PREFERENCE_OPTIONS; +var init_NODE_AUTH_SCHEME_PREFERENCE_OPTIONS = __esm({ + "../node_modules/.pnpm/@aws-sdk+core@3.816.0/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/aws_sdk/NODE_AUTH_SCHEME_PREFERENCE_OPTIONS.js"() { + init_getArrayForCommaSeparatedString(); + init_getBearerTokenEnvKey(); + NODE_AUTH_SCHEME_PREFERENCE_ENV_KEY = "AWS_AUTH_SCHEME_PREFERENCE"; + NODE_AUTH_SCHEME_PREFERENCE_CONFIG_KEY = "auth_scheme_preference"; + NODE_AUTH_SCHEME_PREFERENCE_OPTIONS = { + environmentVariableSelector: (env3, options) => { + if (options == null ? void 0 : options.signingName) { + const bearerTokenKey = getBearerTokenEnvKey(options.signingName); + if (bearerTokenKey in env3) + return ["httpBearerAuth"]; + } + if (!(NODE_AUTH_SCHEME_PREFERENCE_ENV_KEY in env3)) + return void 0; + return getArrayForCommaSeparatedString(env3[NODE_AUTH_SCHEME_PREFERENCE_ENV_KEY]); + }, + configFileSelector: (profile) => { + if (!(NODE_AUTH_SCHEME_PREFERENCE_CONFIG_KEY in profile)) + return void 0; + return getArrayForCommaSeparatedString(profile[NODE_AUTH_SCHEME_PREFERENCE_CONFIG_KEY]); + }, + default: [] + }; + } +}); + +// ../node_modules/.pnpm/@smithy+property-provider@4.0.4/node_modules/@smithy/property-provider/dist-cjs/index.js +var require_dist_cjs20 = __commonJS({ + "../node_modules/.pnpm/@smithy+property-provider@4.0.4/node_modules/@smithy/property-provider/dist-cjs/index.js"(exports2, module2) { + var __defProp3 = Object.defineProperty; + var __getOwnPropDesc3 = Object.getOwnPropertyDescriptor; + var __getOwnPropNames3 = Object.getOwnPropertyNames; + var __hasOwnProp3 = Object.prototype.hasOwnProperty; + var __name = (target, value) => __defProp3(target, "name", { value, configurable: true }); + var __export2 = (target, all) => { + for (var name in all) + __defProp3(target, name, { get: all[name], enumerable: true }); + }; + var __copyProps3 = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames3(from)) + if (!__hasOwnProp3.call(to, key) && key !== except) + __defProp3(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc3(from, key)) || desc.enumerable }); + } + return to; + }; + var __toCommonJS2 = (mod) => __copyProps3(__defProp3({}, "__esModule", { value: true }), mod); + var src_exports = {}; + __export2(src_exports, { + CredentialsProviderError: () => CredentialsProviderError, + ProviderError: () => ProviderError2, + TokenProviderError: () => TokenProviderError, + chain: () => chain, + fromStatic: () => fromStatic, + memoize: () => memoize + }); + module2.exports = __toCommonJS2(src_exports); + var _a2; + var ProviderError2 = (_a2 = class extends Error { + constructor(message, options = true) { + var _a5; + let logger3; + let tryNextLink = true; + if (typeof options === "boolean") { + logger3 = void 0; + tryNextLink = options; + } else if (options != null && typeof options === "object") { + logger3 = options.logger; + tryNextLink = options.tryNextLink ?? true; + } + super(message); + this.name = "ProviderError"; + this.tryNextLink = tryNextLink; + Object.setPrototypeOf(this, _a2.prototype); + (_a5 = logger3 == null ? void 0 : logger3.debug) == null ? void 0 : _a5.call(logger3, `@smithy/property-provider ${tryNextLink ? "->" : "(!)"} ${message}`); + } + /** + * @deprecated use new operator. + */ + static from(error2, options = true) { + return Object.assign(new this(error2.message, options), error2); + } + }, __name(_a2, "ProviderError"), _a2); + var _a3; + var CredentialsProviderError = (_a3 = class extends ProviderError2 { + /** + * @override + */ + constructor(message, options = true) { + super(message, options); + this.name = "CredentialsProviderError"; + Object.setPrototypeOf(this, _a3.prototype); + } + }, __name(_a3, "CredentialsProviderError"), _a3); + var _a4; + var TokenProviderError = (_a4 = class extends ProviderError2 { + /** + * @override + */ + constructor(message, options = true) { + super(message, options); + this.name = "TokenProviderError"; + Object.setPrototypeOf(this, _a4.prototype); + } + }, __name(_a4, "TokenProviderError"), _a4); + var chain = /* @__PURE__ */ __name((...providers) => async () => { + if (providers.length === 0) { + throw new ProviderError2("No providers in chain"); + } + let lastProviderError; + for (const provider of providers) { + try { + const credentials2 = await provider(); + return credentials2; + } catch (err2) { + lastProviderError = err2; + if (err2 == null ? void 0 : err2.tryNextLink) { + continue; + } + throw err2; + } + } + throw lastProviderError; + }, "chain"); + var fromStatic = /* @__PURE__ */ __name((staticValue) => () => Promise.resolve(staticValue), "fromStatic"); + var memoize = /* @__PURE__ */ __name((provider, isExpired, requiresRefresh) => { + let resolved; + let pending; + let hasResult; + let isConstant = false; + const coalesceProvider = /* @__PURE__ */ __name(async () => { + if (!pending) { + pending = provider(); + } + try { + resolved = await pending; + hasResult = true; + isConstant = false; + } finally { + pending = void 0; + } + return resolved; + }, "coalesceProvider"); + if (isExpired === void 0) { + return async (options) => { + if (!hasResult || (options == null ? void 0 : options.forceRefresh)) { + resolved = await coalesceProvider(); + } + return resolved; + }; + } + return async (options) => { + if (!hasResult || (options == null ? void 0 : options.forceRefresh)) { + resolved = await coalesceProvider(); + } + if (isConstant) { + return resolved; + } + if (requiresRefresh && !requiresRefresh(resolved)) { + isConstant = true; + return resolved; + } + if (isExpired(resolved)) { + await coalesceProvider(); + return resolved; + } + return resolved; + }; + }, "memoize"); + } +}); + +// ../node_modules/.pnpm/@aws-sdk+core@3.816.0/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/aws_sdk/resolveAwsSdkSigV4AConfig.js +var import_property_provider, resolveAwsSdkSigV4AConfig, NODE_SIGV4A_CONFIG_OPTIONS; +var init_resolveAwsSdkSigV4AConfig = __esm({ + "../node_modules/.pnpm/@aws-sdk+core@3.816.0/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/aws_sdk/resolveAwsSdkSigV4AConfig.js"() { + init_dist_es(); + import_property_provider = __toESM(require_dist_cjs20()); + resolveAwsSdkSigV4AConfig = (config) => { + config.sigv4aSigningRegionSet = normalizeProvider(config.sigv4aSigningRegionSet); + return config; + }; + NODE_SIGV4A_CONFIG_OPTIONS = { + environmentVariableSelector(env3) { + if (env3.AWS_SIGV4A_SIGNING_REGION_SET) { + return env3.AWS_SIGV4A_SIGNING_REGION_SET.split(",").map((_3) => _3.trim()); + } + throw new import_property_provider.ProviderError("AWS_SIGV4A_SIGNING_REGION_SET not set in env.", { + tryNextLink: true + }); + }, + configFileSelector(profile) { + if (profile.sigv4a_signing_region_set) { + return (profile.sigv4a_signing_region_set ?? "").split(",").map((_3) => _3.trim()); + } + throw new import_property_provider.ProviderError("sigv4a_signing_region_set not set in profile.", { + tryNextLink: true + }); + }, + default: void 0 + }; + } +}); + +// ../node_modules/.pnpm/@smithy+signature-v4@5.1.2/node_modules/@smithy/signature-v4/dist-cjs/index.js +var require_dist_cjs21 = __commonJS({ + "../node_modules/.pnpm/@smithy+signature-v4@5.1.2/node_modules/@smithy/signature-v4/dist-cjs/index.js"(exports2, module2) { + var __defProp3 = Object.defineProperty; + var __getOwnPropDesc3 = Object.getOwnPropertyDescriptor; + var __getOwnPropNames3 = Object.getOwnPropertyNames; + var __hasOwnProp3 = Object.prototype.hasOwnProperty; + var __name = (target, value) => __defProp3(target, "name", { value, configurable: true }); + var __export2 = (target, all) => { + for (var name in all) + __defProp3(target, name, { get: all[name], enumerable: true }); + }; + var __copyProps3 = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames3(from)) + if (!__hasOwnProp3.call(to, key) && key !== except) + __defProp3(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc3(from, key)) || desc.enumerable }); + } + return to; + }; + var __toCommonJS2 = (mod) => __copyProps3(__defProp3({}, "__esModule", { value: true }), mod); + var src_exports = {}; + __export2(src_exports, { + ALGORITHM_IDENTIFIER: () => ALGORITHM_IDENTIFIER, + ALGORITHM_IDENTIFIER_V4A: () => ALGORITHM_IDENTIFIER_V4A, + ALGORITHM_QUERY_PARAM: () => ALGORITHM_QUERY_PARAM, + ALWAYS_UNSIGNABLE_HEADERS: () => ALWAYS_UNSIGNABLE_HEADERS, + AMZ_DATE_HEADER: () => AMZ_DATE_HEADER, + AMZ_DATE_QUERY_PARAM: () => AMZ_DATE_QUERY_PARAM, + AUTH_HEADER: () => AUTH_HEADER, + CREDENTIAL_QUERY_PARAM: () => CREDENTIAL_QUERY_PARAM, + DATE_HEADER: () => DATE_HEADER, + EVENT_ALGORITHM_IDENTIFIER: () => EVENT_ALGORITHM_IDENTIFIER, + EXPIRES_QUERY_PARAM: () => EXPIRES_QUERY_PARAM, + GENERATED_HEADERS: () => GENERATED_HEADERS, + HOST_HEADER: () => HOST_HEADER, + KEY_TYPE_IDENTIFIER: () => KEY_TYPE_IDENTIFIER, + MAX_CACHE_SIZE: () => MAX_CACHE_SIZE, + MAX_PRESIGNED_TTL: () => MAX_PRESIGNED_TTL, + PROXY_HEADER_PATTERN: () => PROXY_HEADER_PATTERN, + REGION_SET_PARAM: () => REGION_SET_PARAM, + SEC_HEADER_PATTERN: () => SEC_HEADER_PATTERN, + SHA256_HEADER: () => SHA256_HEADER, + SIGNATURE_HEADER: () => SIGNATURE_HEADER, + SIGNATURE_QUERY_PARAM: () => SIGNATURE_QUERY_PARAM, + SIGNED_HEADERS_QUERY_PARAM: () => SIGNED_HEADERS_QUERY_PARAM, + SignatureV4: () => SignatureV42, + SignatureV4Base: () => SignatureV4Base, + TOKEN_HEADER: () => TOKEN_HEADER, + TOKEN_QUERY_PARAM: () => TOKEN_QUERY_PARAM, + UNSIGNABLE_PATTERNS: () => UNSIGNABLE_PATTERNS, + UNSIGNED_PAYLOAD: () => UNSIGNED_PAYLOAD, + clearCredentialCache: () => clearCredentialCache, + createScope: () => createScope, + getCanonicalHeaders: () => getCanonicalHeaders, + getCanonicalQuery: () => getCanonicalQuery, + getPayloadHash: () => getPayloadHash, + getSigningKey: () => getSigningKey, + hasHeader: () => hasHeader, + moveHeadersToQuery: () => moveHeadersToQuery, + prepareRequest: () => prepareRequest, + signatureV4aContainer: () => signatureV4aContainer + }); + module2.exports = __toCommonJS2(src_exports); + var import_util_utf85 = require_dist_cjs10(); + var ALGORITHM_QUERY_PARAM = "X-Amz-Algorithm"; + var CREDENTIAL_QUERY_PARAM = "X-Amz-Credential"; + var AMZ_DATE_QUERY_PARAM = "X-Amz-Date"; + var SIGNED_HEADERS_QUERY_PARAM = "X-Amz-SignedHeaders"; + var EXPIRES_QUERY_PARAM = "X-Amz-Expires"; + var SIGNATURE_QUERY_PARAM = "X-Amz-Signature"; + var TOKEN_QUERY_PARAM = "X-Amz-Security-Token"; + var REGION_SET_PARAM = "X-Amz-Region-Set"; + var AUTH_HEADER = "authorization"; + var AMZ_DATE_HEADER = AMZ_DATE_QUERY_PARAM.toLowerCase(); + var DATE_HEADER = "date"; + var GENERATED_HEADERS = [AUTH_HEADER, AMZ_DATE_HEADER, DATE_HEADER]; + var SIGNATURE_HEADER = SIGNATURE_QUERY_PARAM.toLowerCase(); + var SHA256_HEADER = "x-amz-content-sha256"; + var TOKEN_HEADER = TOKEN_QUERY_PARAM.toLowerCase(); + var HOST_HEADER = "host"; + var ALWAYS_UNSIGNABLE_HEADERS = { + authorization: true, + "cache-control": true, + connection: true, + expect: true, + from: true, + "keep-alive": true, + "max-forwards": true, + pragma: true, + referer: true, + te: true, + trailer: true, + "transfer-encoding": true, + upgrade: true, + "user-agent": true, + "x-amzn-trace-id": true + }; + var PROXY_HEADER_PATTERN = /^proxy-/; + var SEC_HEADER_PATTERN = /^sec-/; + var UNSIGNABLE_PATTERNS = [/^proxy-/i, /^sec-/i]; + var ALGORITHM_IDENTIFIER = "AWS4-HMAC-SHA256"; + var ALGORITHM_IDENTIFIER_V4A = "AWS4-ECDSA-P256-SHA256"; + var EVENT_ALGORITHM_IDENTIFIER = "AWS4-HMAC-SHA256-PAYLOAD"; + var UNSIGNED_PAYLOAD = "UNSIGNED-PAYLOAD"; + var MAX_CACHE_SIZE = 50; + var KEY_TYPE_IDENTIFIER = "aws4_request"; + var MAX_PRESIGNED_TTL = 60 * 60 * 24 * 7; + var import_util_hex_encoding = require_dist_cjs16(); + var import_util_utf86 = require_dist_cjs10(); + var signingKeyCache = {}; + var cacheQueue = []; + var createScope = /* @__PURE__ */ __name((shortDate, region, service) => `${shortDate}/${region}/${service}/${KEY_TYPE_IDENTIFIER}`, "createScope"); + var getSigningKey = /* @__PURE__ */ __name(async (sha256Constructor, credentials2, shortDate, region, service) => { + const credsHash = await hmac(sha256Constructor, credentials2.secretAccessKey, credentials2.accessKeyId); + const cacheKey2 = `${shortDate}:${region}:${service}:${(0, import_util_hex_encoding.toHex)(credsHash)}:${credentials2.sessionToken}`; + if (cacheKey2 in signingKeyCache) { + return signingKeyCache[cacheKey2]; + } + cacheQueue.push(cacheKey2); + while (cacheQueue.length > MAX_CACHE_SIZE) { + delete signingKeyCache[cacheQueue.shift()]; + } + let key = `AWS4${credentials2.secretAccessKey}`; + for (const signable of [shortDate, region, service, KEY_TYPE_IDENTIFIER]) { + key = await hmac(sha256Constructor, key, signable); + } + return signingKeyCache[cacheKey2] = key; + }, "getSigningKey"); + var clearCredentialCache = /* @__PURE__ */ __name(() => { + cacheQueue.length = 0; + Object.keys(signingKeyCache).forEach((cacheKey2) => { + delete signingKeyCache[cacheKey2]; + }); + }, "clearCredentialCache"); + var hmac = /* @__PURE__ */ __name((ctor, secret, data) => { + const hash = new ctor(secret); + hash.update((0, import_util_utf86.toUint8Array)(data)); + return hash.digest(); + }, "hmac"); + var getCanonicalHeaders = /* @__PURE__ */ __name(({ headers }, unsignableHeaders, signableHeaders) => { + const canonical = {}; + for (const headerName of Object.keys(headers).sort()) { + if (headers[headerName] == void 0) { + continue; + } + const canonicalHeaderName = headerName.toLowerCase(); + if (canonicalHeaderName in ALWAYS_UNSIGNABLE_HEADERS || (unsignableHeaders == null ? void 0 : unsignableHeaders.has(canonicalHeaderName)) || PROXY_HEADER_PATTERN.test(canonicalHeaderName) || SEC_HEADER_PATTERN.test(canonicalHeaderName)) { + if (!signableHeaders || signableHeaders && !signableHeaders.has(canonicalHeaderName)) { + continue; + } + } + canonical[canonicalHeaderName] = headers[headerName].trim().replace(/\s+/g, " "); + } + return canonical; + }, "getCanonicalHeaders"); + var import_is_array_buffer = require_dist_cjs8(); + var import_util_utf822 = require_dist_cjs10(); + var getPayloadHash = /* @__PURE__ */ __name(async ({ headers, body }, hashConstructor) => { + for (const headerName of Object.keys(headers)) { + if (headerName.toLowerCase() === SHA256_HEADER) { + return headers[headerName]; + } + } + if (body == void 0) { + return "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"; + } else if (typeof body === "string" || ArrayBuffer.isView(body) || (0, import_is_array_buffer.isArrayBuffer)(body)) { + const hashCtor = new hashConstructor(); + hashCtor.update((0, import_util_utf822.toUint8Array)(body)); + return (0, import_util_hex_encoding.toHex)(await hashCtor.digest()); + } + return UNSIGNED_PAYLOAD; + }, "getPayloadHash"); + var import_util_utf832 = require_dist_cjs10(); + var _a2; + var HeaderFormatter = (_a2 = class { + format(headers) { + const chunks = []; + for (const headerName of Object.keys(headers)) { + const bytes = (0, import_util_utf832.fromUtf8)(headerName); + chunks.push(Uint8Array.from([bytes.byteLength]), bytes, this.formatHeaderValue(headers[headerName])); + } + const out = new Uint8Array(chunks.reduce((carry, bytes) => carry + bytes.byteLength, 0)); + let position = 0; + for (const chunk of chunks) { + out.set(chunk, position); + position += chunk.byteLength; + } + return out; + } + formatHeaderValue(header) { + switch (header.type) { + case "boolean": + return Uint8Array.from([ + header.value ? 0 : 1 + /* boolFalse */ + ]); + case "byte": + return Uint8Array.from([2, header.value]); + case "short": + const shortView = new DataView(new ArrayBuffer(3)); + shortView.setUint8( + 0, + 3 + /* short */ + ); + shortView.setInt16(1, header.value, false); + return new Uint8Array(shortView.buffer); + case "integer": + const intView = new DataView(new ArrayBuffer(5)); + intView.setUint8( + 0, + 4 + /* integer */ + ); + intView.setInt32(1, header.value, false); + return new Uint8Array(intView.buffer); + case "long": + const longBytes = new Uint8Array(9); + longBytes[0] = 5; + longBytes.set(header.value.bytes, 1); + return longBytes; + case "binary": + const binView = new DataView(new ArrayBuffer(3 + header.value.byteLength)); + binView.setUint8( + 0, + 6 + /* byteArray */ + ); + binView.setUint16(1, header.value.byteLength, false); + const binBytes = new Uint8Array(binView.buffer); + binBytes.set(header.value, 3); + return binBytes; + case "string": + const utf8Bytes = (0, import_util_utf832.fromUtf8)(header.value); + const strView = new DataView(new ArrayBuffer(3 + utf8Bytes.byteLength)); + strView.setUint8( + 0, + 7 + /* string */ + ); + strView.setUint16(1, utf8Bytes.byteLength, false); + const strBytes = new Uint8Array(strView.buffer); + strBytes.set(utf8Bytes, 3); + return strBytes; + case "timestamp": + const tsBytes = new Uint8Array(9); + tsBytes[0] = 8; + tsBytes.set(Int64.fromNumber(header.value.valueOf()).bytes, 1); + return tsBytes; + case "uuid": + if (!UUID_PATTERN.test(header.value)) { + throw new Error(`Invalid UUID received: ${header.value}`); + } + const uuidBytes = new Uint8Array(17); + uuidBytes[0] = 9; + uuidBytes.set((0, import_util_hex_encoding.fromHex)(header.value.replace(/\-/g, "")), 1); + return uuidBytes; + } + } + }, __name(_a2, "HeaderFormatter"), _a2); + var UUID_PATTERN = /^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$/; + var _a3; + var Int64 = (_a3 = class { + constructor(bytes) { + this.bytes = bytes; + if (bytes.byteLength !== 8) { + throw new Error("Int64 buffers must be exactly 8 bytes"); + } + } + static fromNumber(number2) { + if (number2 > 9223372036854776e3 || number2 < -9223372036854776e3) { + throw new Error(`${number2} is too large (or, if negative, too small) to represent as an Int64`); + } + const bytes = new Uint8Array(8); + for (let i4 = 7, remaining = Math.abs(Math.round(number2)); i4 > -1 && remaining > 0; i4--, remaining /= 256) { + bytes[i4] = remaining; + } + if (number2 < 0) { + negate(bytes); + } + return new _a3(bytes); + } + /** + * Called implicitly by infix arithmetic operators. + */ + valueOf() { + const bytes = this.bytes.slice(0); + const negative = bytes[0] & 128; + if (negative) { + negate(bytes); + } + return parseInt((0, import_util_hex_encoding.toHex)(bytes), 16) * (negative ? -1 : 1); + } + toString() { + return String(this.valueOf()); + } + }, __name(_a3, "Int64"), _a3); + function negate(bytes) { + for (let i4 = 0; i4 < 8; i4++) { + bytes[i4] ^= 255; + } + for (let i4 = 7; i4 > -1; i4--) { + bytes[i4]++; + if (bytes[i4] !== 0) + break; + } + } + __name(negate, "negate"); + var hasHeader = /* @__PURE__ */ __name((soughtHeader, headers) => { + soughtHeader = soughtHeader.toLowerCase(); + for (const headerName of Object.keys(headers)) { + if (soughtHeader === headerName.toLowerCase()) { + return true; + } + } + return false; + }, "hasHeader"); + var import_protocol_http15 = require_dist_cjs2(); + var moveHeadersToQuery = /* @__PURE__ */ __name((request, options = {}) => { + var _a6, _b; + const { headers, query = {} } = import_protocol_http15.HttpRequest.clone(request); + for (const name of Object.keys(headers)) { + const lname = name.toLowerCase(); + if (lname.slice(0, 6) === "x-amz-" && !((_a6 = options.unhoistableHeaders) == null ? void 0 : _a6.has(lname)) || ((_b = options.hoistableHeaders) == null ? void 0 : _b.has(lname))) { + query[name] = headers[name]; + delete headers[name]; + } + } + return { + ...request, + headers, + query + }; + }, "moveHeadersToQuery"); + var prepareRequest = /* @__PURE__ */ __name((request) => { + request = import_protocol_http15.HttpRequest.clone(request); + for (const headerName of Object.keys(request.headers)) { + if (GENERATED_HEADERS.indexOf(headerName.toLowerCase()) > -1) { + delete request.headers[headerName]; + } + } + return request; + }, "prepareRequest"); + var import_util_middleware7 = require_dist_cjs6(); + var import_util_utf842 = require_dist_cjs10(); + var import_util_uri_escape = require_dist_cjs12(); + var getCanonicalQuery = /* @__PURE__ */ __name(({ query = {} }) => { + const keys = []; + const serialized = {}; + for (const key of Object.keys(query)) { + if (key.toLowerCase() === SIGNATURE_HEADER) { + continue; + } + const encodedKey = (0, import_util_uri_escape.escapeUri)(key); + keys.push(encodedKey); + const value = query[key]; + if (typeof value === "string") { + serialized[encodedKey] = `${encodedKey}=${(0, import_util_uri_escape.escapeUri)(value)}`; + } else if (Array.isArray(value)) { + serialized[encodedKey] = value.slice(0).reduce((encoded, value2) => encoded.concat([`${encodedKey}=${(0, import_util_uri_escape.escapeUri)(value2)}`]), []).sort().join("&"); + } + } + return keys.sort().map((key) => serialized[key]).filter((serialized2) => serialized2).join("&"); + }, "getCanonicalQuery"); + var iso8601 = /* @__PURE__ */ __name((time) => toDate(time).toISOString().replace(/\.\d{3}Z$/, "Z"), "iso8601"); + var toDate = /* @__PURE__ */ __name((time) => { + if (typeof time === "number") { + return new Date(time * 1e3); + } + if (typeof time === "string") { + if (Number(time)) { + return new Date(Number(time) * 1e3); + } + return new Date(time); + } + return time; + }, "toDate"); + var _a4; + var SignatureV4Base = (_a4 = class { + constructor({ + applyChecksum, + credentials: credentials2, + region, + service, + sha256: sha2562, + uriEscapePath = true + }) { + this.service = service; + this.sha256 = sha2562; + this.uriEscapePath = uriEscapePath; + this.applyChecksum = typeof applyChecksum === "boolean" ? applyChecksum : true; + this.regionProvider = (0, import_util_middleware7.normalizeProvider)(region); + this.credentialProvider = (0, import_util_middleware7.normalizeProvider)(credentials2); + } + createCanonicalRequest(request, canonicalHeaders, payloadHash) { + const sortedHeaders = Object.keys(canonicalHeaders).sort(); + return `${request.method} +${this.getCanonicalPath(request)} +${getCanonicalQuery(request)} +${sortedHeaders.map((name) => `${name}:${canonicalHeaders[name]}`).join("\n")} + +${sortedHeaders.join(";")} +${payloadHash}`; + } + async createStringToSign(longDate, credentialScope, canonicalRequest, algorithmIdentifier) { + const hash = new this.sha256(); + hash.update((0, import_util_utf842.toUint8Array)(canonicalRequest)); + const hashedRequest = await hash.digest(); + return `${algorithmIdentifier} +${longDate} +${credentialScope} +${(0, import_util_hex_encoding.toHex)(hashedRequest)}`; + } + getCanonicalPath({ path: path4 }) { + if (this.uriEscapePath) { + const normalizedPathSegments = []; + for (const pathSegment of path4.split("/")) { + if ((pathSegment == null ? void 0 : pathSegment.length) === 0) + continue; + if (pathSegment === ".") + continue; + if (pathSegment === "..") { + normalizedPathSegments.pop(); + } else { + normalizedPathSegments.push(pathSegment); + } + } + const normalizedPath = `${(path4 == null ? void 0 : path4.startsWith("/")) ? "/" : ""}${normalizedPathSegments.join("/")}${normalizedPathSegments.length > 0 && (path4 == null ? void 0 : path4.endsWith("/")) ? "/" : ""}`; + const doubleEncoded = (0, import_util_uri_escape.escapeUri)(normalizedPath); + return doubleEncoded.replace(/%2F/g, "/"); + } + return path4; + } + validateResolvedCredentials(credentials2) { + if (typeof credentials2 !== "object" || // @ts-expect-error: Property 'accessKeyId' does not exist on type 'object'.ts(2339) + typeof credentials2.accessKeyId !== "string" || // @ts-expect-error: Property 'secretAccessKey' does not exist on type 'object'.ts(2339) + typeof credentials2.secretAccessKey !== "string") { + throw new Error("Resolved credential object is not valid"); + } + } + formatDate(now) { + const longDate = iso8601(now).replace(/[\-:]/g, ""); + return { + longDate, + shortDate: longDate.slice(0, 8) + }; + } + getCanonicalHeaderList(headers) { + return Object.keys(headers).sort().join(";"); + } + }, __name(_a4, "SignatureV4Base"), _a4); + var _a5; + var SignatureV42 = (_a5 = class extends SignatureV4Base { + constructor({ + applyChecksum, + credentials: credentials2, + region, + service, + sha256: sha2562, + uriEscapePath = true + }) { + super({ + applyChecksum, + credentials: credentials2, + region, + service, + sha256: sha2562, + uriEscapePath + }); + this.headerFormatter = new HeaderFormatter(); + } + async presign(originalRequest, options = {}) { + const { + signingDate = /* @__PURE__ */ new Date(), + expiresIn = 3600, + unsignableHeaders, + unhoistableHeaders, + signableHeaders, + hoistableHeaders, + signingRegion, + signingService + } = options; + const credentials2 = await this.credentialProvider(); + this.validateResolvedCredentials(credentials2); + const region = signingRegion ?? await this.regionProvider(); + const { longDate, shortDate } = this.formatDate(signingDate); + if (expiresIn > MAX_PRESIGNED_TTL) { + return Promise.reject( + "Signature version 4 presigned URLs must have an expiration date less than one week in the future" + ); + } + const scope = createScope(shortDate, region, signingService ?? this.service); + const request = moveHeadersToQuery(prepareRequest(originalRequest), { unhoistableHeaders, hoistableHeaders }); + if (credentials2.sessionToken) { + request.query[TOKEN_QUERY_PARAM] = credentials2.sessionToken; + } + request.query[ALGORITHM_QUERY_PARAM] = ALGORITHM_IDENTIFIER; + request.query[CREDENTIAL_QUERY_PARAM] = `${credentials2.accessKeyId}/${scope}`; + request.query[AMZ_DATE_QUERY_PARAM] = longDate; + request.query[EXPIRES_QUERY_PARAM] = expiresIn.toString(10); + const canonicalHeaders = getCanonicalHeaders(request, unsignableHeaders, signableHeaders); + request.query[SIGNED_HEADERS_QUERY_PARAM] = this.getCanonicalHeaderList(canonicalHeaders); + request.query[SIGNATURE_QUERY_PARAM] = await this.getSignature( + longDate, + scope, + this.getSigningKey(credentials2, region, shortDate, signingService), + this.createCanonicalRequest(request, canonicalHeaders, await getPayloadHash(originalRequest, this.sha256)) + ); + return request; + } + async sign(toSign, options) { + if (typeof toSign === "string") { + return this.signString(toSign, options); + } else if (toSign.headers && toSign.payload) { + return this.signEvent(toSign, options); + } else if (toSign.message) { + return this.signMessage(toSign, options); + } else { + return this.signRequest(toSign, options); + } + } + async signEvent({ headers, payload }, { signingDate = /* @__PURE__ */ new Date(), priorSignature, signingRegion, signingService }) { + const region = signingRegion ?? await this.regionProvider(); + const { shortDate, longDate } = this.formatDate(signingDate); + const scope = createScope(shortDate, region, signingService ?? this.service); + const hashedPayload = await getPayloadHash({ headers: {}, body: payload }, this.sha256); + const hash = new this.sha256(); + hash.update(headers); + const hashedHeaders = (0, import_util_hex_encoding.toHex)(await hash.digest()); + const stringToSign = [ + EVENT_ALGORITHM_IDENTIFIER, + longDate, + scope, + priorSignature, + hashedHeaders, + hashedPayload + ].join("\n"); + return this.signString(stringToSign, { signingDate, signingRegion: region, signingService }); + } + async signMessage(signableMessage, { signingDate = /* @__PURE__ */ new Date(), signingRegion, signingService }) { + const promise = this.signEvent( + { + headers: this.headerFormatter.format(signableMessage.message.headers), + payload: signableMessage.message.body + }, + { + signingDate, + signingRegion, + signingService, + priorSignature: signableMessage.priorSignature + } + ); + return promise.then((signature) => { + return { message: signableMessage.message, signature }; + }); + } + async signString(stringToSign, { signingDate = /* @__PURE__ */ new Date(), signingRegion, signingService } = {}) { + const credentials2 = await this.credentialProvider(); + this.validateResolvedCredentials(credentials2); + const region = signingRegion ?? await this.regionProvider(); + const { shortDate } = this.formatDate(signingDate); + const hash = new this.sha256(await this.getSigningKey(credentials2, region, shortDate, signingService)); + hash.update((0, import_util_utf85.toUint8Array)(stringToSign)); + return (0, import_util_hex_encoding.toHex)(await hash.digest()); + } + async signRequest(requestToSign, { + signingDate = /* @__PURE__ */ new Date(), + signableHeaders, + unsignableHeaders, + signingRegion, + signingService + } = {}) { + const credentials2 = await this.credentialProvider(); + this.validateResolvedCredentials(credentials2); + const region = signingRegion ?? await this.regionProvider(); + const request = prepareRequest(requestToSign); + const { longDate, shortDate } = this.formatDate(signingDate); + const scope = createScope(shortDate, region, signingService ?? this.service); + request.headers[AMZ_DATE_HEADER] = longDate; + if (credentials2.sessionToken) { + request.headers[TOKEN_HEADER] = credentials2.sessionToken; + } + const payloadHash = await getPayloadHash(request, this.sha256); + if (!hasHeader(SHA256_HEADER, request.headers) && this.applyChecksum) { + request.headers[SHA256_HEADER] = payloadHash; + } + const canonicalHeaders = getCanonicalHeaders(request, unsignableHeaders, signableHeaders); + const signature = await this.getSignature( + longDate, + scope, + this.getSigningKey(credentials2, region, shortDate, signingService), + this.createCanonicalRequest(request, canonicalHeaders, payloadHash) + ); + request.headers[AUTH_HEADER] = `${ALGORITHM_IDENTIFIER} Credential=${credentials2.accessKeyId}/${scope}, SignedHeaders=${this.getCanonicalHeaderList(canonicalHeaders)}, Signature=${signature}`; + return request; + } + async getSignature(longDate, credentialScope, keyPromise, canonicalRequest) { + const stringToSign = await this.createStringToSign( + longDate, + credentialScope, + canonicalRequest, + ALGORITHM_IDENTIFIER + ); + const hash = new this.sha256(await keyPromise); + hash.update((0, import_util_utf85.toUint8Array)(stringToSign)); + return (0, import_util_hex_encoding.toHex)(await hash.digest()); + } + getSigningKey(credentials2, region, shortDate, service) { + return getSigningKey(this.sha256, credentials2, shortDate, region, service || this.service); + } + }, __name(_a5, "SignatureV4"), _a5); + var signatureV4aContainer = { + SignatureV4a: null + }; + } +}); + +// ../node_modules/.pnpm/@aws-sdk+core@3.816.0/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/aws_sdk/resolveAwsSdkSigV4Config.js +function normalizeCredentialProvider(config, { credentials: credentials2, credentialDefaultProvider }) { + let credentialsProvider; + if (credentials2) { + if (!(credentials2 == null ? void 0 : credentials2.memoized)) { + credentialsProvider = memoizeIdentityProvider(credentials2, isIdentityExpired, doesIdentityRequireRefresh); + } else { + credentialsProvider = credentials2; + } + } else { + if (credentialDefaultProvider) { + credentialsProvider = normalizeProvider(credentialDefaultProvider(Object.assign({}, config, { + parentClientConfig: config + }))); + } else { + credentialsProvider = async () => { + throw new Error("@aws-sdk/core::resolveAwsSdkSigV4Config - `credentials` not provided and no credentialDefaultProvider was configured."); + }; + } + } + credentialsProvider.memoized = true; + return credentialsProvider; +} +function bindCallerConfig(config, credentialsProvider) { + if (credentialsProvider.configBound) { + return credentialsProvider; + } + const fn = async (options) => credentialsProvider({ ...options, callerClientConfig: config }); + fn.memoized = credentialsProvider.memoized; + fn.configBound = true; + return fn; +} +var import_signature_v4, resolveAwsSdkSigV4Config, resolveAWSSDKSigV4Config; +var init_resolveAwsSdkSigV4Config = __esm({ + "../node_modules/.pnpm/@aws-sdk+core@3.816.0/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/aws_sdk/resolveAwsSdkSigV4Config.js"() { + init_client(); + init_dist_es(); + import_signature_v4 = __toESM(require_dist_cjs21()); + resolveAwsSdkSigV4Config = (config) => { + let inputCredentials = config.credentials; + let isUserSupplied = !!config.credentials; + let resolvedCredentials = void 0; + Object.defineProperty(config, "credentials", { + set(credentials2) { + if (credentials2 && credentials2 !== inputCredentials && credentials2 !== resolvedCredentials) { + isUserSupplied = true; + } + inputCredentials = credentials2; + const memoizedProvider = normalizeCredentialProvider(config, { + credentials: inputCredentials, + credentialDefaultProvider: config.credentialDefaultProvider + }); + const boundProvider = bindCallerConfig(config, memoizedProvider); + if (isUserSupplied && !boundProvider.attributed) { + resolvedCredentials = async (options) => boundProvider(options).then((creds) => setCredentialFeature(creds, "CREDENTIALS_CODE", "e")); + resolvedCredentials.memoized = boundProvider.memoized; + resolvedCredentials.configBound = boundProvider.configBound; + resolvedCredentials.attributed = true; + } else { + resolvedCredentials = boundProvider; + } + }, + get() { + return resolvedCredentials; + }, + enumerable: true, + configurable: true + }); + config.credentials = inputCredentials; + const { signingEscapePath = true, systemClockOffset = config.systemClockOffset || 0, sha256: sha2562 } = config; + let signer; + if (config.signer) { + signer = normalizeProvider(config.signer); + } else if (config.regionInfoProvider) { + signer = () => normalizeProvider(config.region)().then(async (region) => [ + await config.regionInfoProvider(region, { + useFipsEndpoint: await config.useFipsEndpoint(), + useDualstackEndpoint: await config.useDualstackEndpoint() + }) || {}, + region + ]).then(([regionInfo, region]) => { + const { signingRegion, signingService } = regionInfo; + config.signingRegion = config.signingRegion || signingRegion || region; + config.signingName = config.signingName || signingService || config.serviceId; + const params = { + ...config, + credentials: config.credentials, + region: config.signingRegion, + service: config.signingName, + sha256: sha2562, + uriEscapePath: signingEscapePath + }; + const SignerCtor = config.signerConstructor || import_signature_v4.SignatureV4; + return new SignerCtor(params); + }); + } else { + signer = async (authScheme) => { + authScheme = Object.assign({}, { + name: "sigv4", + signingName: config.signingName || config.defaultSigningName, + signingRegion: await normalizeProvider(config.region)(), + properties: {} + }, authScheme); + const signingRegion = authScheme.signingRegion; + const signingService = authScheme.signingName; + config.signingRegion = config.signingRegion || signingRegion; + config.signingName = config.signingName || signingService || config.serviceId; + const params = { + ...config, + credentials: config.credentials, + region: config.signingRegion, + service: config.signingName, + sha256: sha2562, + uriEscapePath: signingEscapePath + }; + const SignerCtor = config.signerConstructor || import_signature_v4.SignatureV4; + return new SignerCtor(params); + }; + } + const resolvedConfig = Object.assign(config, { + systemClockOffset, + signingEscapePath, + signer + }); + return resolvedConfig; + }; + resolveAWSSDKSigV4Config = resolveAwsSdkSigV4Config; + } +}); + +// ../node_modules/.pnpm/@aws-sdk+core@3.816.0/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/aws_sdk/index.js +var init_aws_sdk = __esm({ + "../node_modules/.pnpm/@aws-sdk+core@3.816.0/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/aws_sdk/index.js"() { + init_AwsSdkSigV4Signer(); + init_AwsSdkSigV4ASigner(); + init_NODE_AUTH_SCHEME_PREFERENCE_OPTIONS(); + init_resolveAwsSdkSigV4AConfig(); + init_resolveAwsSdkSigV4Config(); + } +}); + +// ../node_modules/.pnpm/@aws-sdk+core@3.816.0/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/index.js +var init_httpAuthSchemes2 = __esm({ + "../node_modules/.pnpm/@aws-sdk+core@3.816.0/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/index.js"() { + init_aws_sdk(); + init_getBearerTokenEnvKey(); + } +}); + +// ../node_modules/.pnpm/@aws-sdk+core@3.816.0/node_modules/@aws-sdk/core/dist-es/submodules/protocols/coercing-serializers.js +var _toStr, _toBool, _toNum; +var init_coercing_serializers = __esm({ + "../node_modules/.pnpm/@aws-sdk+core@3.816.0/node_modules/@aws-sdk/core/dist-es/submodules/protocols/coercing-serializers.js"() { + _toStr = (val2) => { + if (val2 == null) { + return val2; + } + if (typeof val2 === "number" || typeof val2 === "bigint") { + const warning3 = new Error(`Received number ${val2} where a string was expected.`); + warning3.name = "Warning"; + console.warn(warning3); + return String(val2); + } + if (typeof val2 === "boolean") { + const warning3 = new Error(`Received boolean ${val2} where a string was expected.`); + warning3.name = "Warning"; + console.warn(warning3); + return String(val2); + } + return val2; + }; + _toBool = (val2) => { + if (val2 == null) { + return val2; + } + if (typeof val2 === "number") { + } + if (typeof val2 === "string") { + const lowercase = val2.toLowerCase(); + if (val2 !== "" && lowercase !== "false" && lowercase !== "true") { + const warning3 = new Error(`Received string "${val2}" where a boolean was expected.`); + warning3.name = "Warning"; + console.warn(warning3); + } + return val2 !== "" && lowercase !== "false"; + } + return val2; + }; + _toNum = (val2) => { + if (val2 == null) { + return val2; + } + if (typeof val2 === "boolean") { + } + if (typeof val2 === "string") { + const num = Number(val2); + if (num.toString() !== val2) { + const warning3 = new Error(`Received string "${val2}" where a number was expected.`); + warning3.name = "Warning"; + console.warn(warning3); + return val2; + } + return num; + } + return val2; + }; + } +}); + +// ../node_modules/.pnpm/@smithy+middleware-stack@4.0.4/node_modules/@smithy/middleware-stack/dist-cjs/index.js +var require_dist_cjs22 = __commonJS({ + "../node_modules/.pnpm/@smithy+middleware-stack@4.0.4/node_modules/@smithy/middleware-stack/dist-cjs/index.js"(exports2, module2) { + var __defProp3 = Object.defineProperty; + var __getOwnPropDesc3 = Object.getOwnPropertyDescriptor; + var __getOwnPropNames3 = Object.getOwnPropertyNames; + var __hasOwnProp3 = Object.prototype.hasOwnProperty; + var __name = (target, value) => __defProp3(target, "name", { value, configurable: true }); + var __export2 = (target, all) => { + for (var name in all) + __defProp3(target, name, { get: all[name], enumerable: true }); + }; + var __copyProps3 = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames3(from)) + if (!__hasOwnProp3.call(to, key) && key !== except) + __defProp3(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc3(from, key)) || desc.enumerable }); + } + return to; + }; + var __toCommonJS2 = (mod) => __copyProps3(__defProp3({}, "__esModule", { value: true }), mod); + var src_exports = {}; + __export2(src_exports, { + constructStack: () => constructStack + }); + module2.exports = __toCommonJS2(src_exports); + var getAllAliases = /* @__PURE__ */ __name((name, aliases) => { + const _aliases = []; + if (name) { + _aliases.push(name); + } + if (aliases) { + for (const alias of aliases) { + _aliases.push(alias); + } + } + return _aliases; + }, "getAllAliases"); + var getMiddlewareNameWithAliases = /* @__PURE__ */ __name((name, aliases) => { + return `${name || "anonymous"}${aliases && aliases.length > 0 ? ` (a.k.a. ${aliases.join(",")})` : ""}`; + }, "getMiddlewareNameWithAliases"); + var constructStack = /* @__PURE__ */ __name(() => { + let absoluteEntries = []; + let relativeEntries = []; + let identifyOnResolve = false; + const entriesNameSet = /* @__PURE__ */ new Set(); + const sort = /* @__PURE__ */ __name((entries) => entries.sort( + (a3, b3) => stepWeights[b3.step] - stepWeights[a3.step] || priorityWeights[b3.priority || "normal"] - priorityWeights[a3.priority || "normal"] + ), "sort"); + const removeByName = /* @__PURE__ */ __name((toRemove) => { + let isRemoved = false; + const filterCb = /* @__PURE__ */ __name((entry) => { + const aliases = getAllAliases(entry.name, entry.aliases); + if (aliases.includes(toRemove)) { + isRemoved = true; + for (const alias of aliases) { + entriesNameSet.delete(alias); + } + return false; + } + return true; + }, "filterCb"); + absoluteEntries = absoluteEntries.filter(filterCb); + relativeEntries = relativeEntries.filter(filterCb); + return isRemoved; + }, "removeByName"); + const removeByReference = /* @__PURE__ */ __name((toRemove) => { + let isRemoved = false; + const filterCb = /* @__PURE__ */ __name((entry) => { + if (entry.middleware === toRemove) { + isRemoved = true; + for (const alias of getAllAliases(entry.name, entry.aliases)) { + entriesNameSet.delete(alias); + } + return false; + } + return true; + }, "filterCb"); + absoluteEntries = absoluteEntries.filter(filterCb); + relativeEntries = relativeEntries.filter(filterCb); + return isRemoved; + }, "removeByReference"); + const cloneTo = /* @__PURE__ */ __name((toStack) => { + var _a2; + absoluteEntries.forEach((entry) => { + toStack.add(entry.middleware, { ...entry }); + }); + relativeEntries.forEach((entry) => { + toStack.addRelativeTo(entry.middleware, { ...entry }); + }); + (_a2 = toStack.identifyOnResolve) == null ? void 0 : _a2.call(toStack, stack.identifyOnResolve()); + return toStack; + }, "cloneTo"); + const expandRelativeMiddlewareList = /* @__PURE__ */ __name((from) => { + const expandedMiddlewareList = []; + from.before.forEach((entry) => { + if (entry.before.length === 0 && entry.after.length === 0) { + expandedMiddlewareList.push(entry); + } else { + expandedMiddlewareList.push(...expandRelativeMiddlewareList(entry)); + } + }); + expandedMiddlewareList.push(from); + from.after.reverse().forEach((entry) => { + if (entry.before.length === 0 && entry.after.length === 0) { + expandedMiddlewareList.push(entry); + } else { + expandedMiddlewareList.push(...expandRelativeMiddlewareList(entry)); + } + }); + return expandedMiddlewareList; + }, "expandRelativeMiddlewareList"); + const getMiddlewareList = /* @__PURE__ */ __name((debug = false) => { + const normalizedAbsoluteEntries = []; + const normalizedRelativeEntries = []; + const normalizedEntriesNameMap = {}; + absoluteEntries.forEach((entry) => { + const normalizedEntry = { + ...entry, + before: [], + after: [] + }; + for (const alias of getAllAliases(normalizedEntry.name, normalizedEntry.aliases)) { + normalizedEntriesNameMap[alias] = normalizedEntry; + } + normalizedAbsoluteEntries.push(normalizedEntry); + }); + relativeEntries.forEach((entry) => { + const normalizedEntry = { + ...entry, + before: [], + after: [] + }; + for (const alias of getAllAliases(normalizedEntry.name, normalizedEntry.aliases)) { + normalizedEntriesNameMap[alias] = normalizedEntry; + } + normalizedRelativeEntries.push(normalizedEntry); + }); + normalizedRelativeEntries.forEach((entry) => { + if (entry.toMiddleware) { + const toMiddleware = normalizedEntriesNameMap[entry.toMiddleware]; + if (toMiddleware === void 0) { + if (debug) { + return; + } + throw new Error( + `${entry.toMiddleware} is not found when adding ${getMiddlewareNameWithAliases(entry.name, entry.aliases)} middleware ${entry.relation} ${entry.toMiddleware}` + ); + } + if (entry.relation === "after") { + toMiddleware.after.push(entry); + } + if (entry.relation === "before") { + toMiddleware.before.push(entry); + } + } + }); + const mainChain = sort(normalizedAbsoluteEntries).map(expandRelativeMiddlewareList).reduce( + (wholeList, expandedMiddlewareList) => { + wholeList.push(...expandedMiddlewareList); + return wholeList; + }, + [] + ); + return mainChain; + }, "getMiddlewareList"); + const stack = { + add: (middleware, options = {}) => { + const { name, override, aliases: _aliases } = options; + const entry = { + step: "initialize", + priority: "normal", + middleware, + ...options + }; + const aliases = getAllAliases(name, _aliases); + if (aliases.length > 0) { + if (aliases.some((alias) => entriesNameSet.has(alias))) { + if (!override) + throw new Error(`Duplicate middleware name '${getMiddlewareNameWithAliases(name, _aliases)}'`); + for (const alias of aliases) { + const toOverrideIndex = absoluteEntries.findIndex( + (entry2) => { + var _a2; + return entry2.name === alias || ((_a2 = entry2.aliases) == null ? void 0 : _a2.some((a3) => a3 === alias)); + } + ); + if (toOverrideIndex === -1) { + continue; + } + const toOverride = absoluteEntries[toOverrideIndex]; + if (toOverride.step !== entry.step || entry.priority !== toOverride.priority) { + throw new Error( + `"${getMiddlewareNameWithAliases(toOverride.name, toOverride.aliases)}" middleware with ${toOverride.priority} priority in ${toOverride.step} step cannot be overridden by "${getMiddlewareNameWithAliases(name, _aliases)}" middleware with ${entry.priority} priority in ${entry.step} step.` + ); + } + absoluteEntries.splice(toOverrideIndex, 1); + } + } + for (const alias of aliases) { + entriesNameSet.add(alias); + } + } + absoluteEntries.push(entry); + }, + addRelativeTo: (middleware, options) => { + const { name, override, aliases: _aliases } = options; + const entry = { + middleware, + ...options + }; + const aliases = getAllAliases(name, _aliases); + if (aliases.length > 0) { + if (aliases.some((alias) => entriesNameSet.has(alias))) { + if (!override) + throw new Error(`Duplicate middleware name '${getMiddlewareNameWithAliases(name, _aliases)}'`); + for (const alias of aliases) { + const toOverrideIndex = relativeEntries.findIndex( + (entry2) => { + var _a2; + return entry2.name === alias || ((_a2 = entry2.aliases) == null ? void 0 : _a2.some((a3) => a3 === alias)); + } + ); + if (toOverrideIndex === -1) { + continue; + } + const toOverride = relativeEntries[toOverrideIndex]; + if (toOverride.toMiddleware !== entry.toMiddleware || toOverride.relation !== entry.relation) { + throw new Error( + `"${getMiddlewareNameWithAliases(toOverride.name, toOverride.aliases)}" middleware ${toOverride.relation} "${toOverride.toMiddleware}" middleware cannot be overridden by "${getMiddlewareNameWithAliases(name, _aliases)}" middleware ${entry.relation} "${entry.toMiddleware}" middleware.` + ); + } + relativeEntries.splice(toOverrideIndex, 1); + } + } + for (const alias of aliases) { + entriesNameSet.add(alias); + } + } + relativeEntries.push(entry); + }, + clone: () => cloneTo(constructStack()), + use: (plugin) => { + plugin.applyToStack(stack); + }, + remove: (toRemove) => { + if (typeof toRemove === "string") + return removeByName(toRemove); + else + return removeByReference(toRemove); + }, + removeByTag: (toRemove) => { + let isRemoved = false; + const filterCb = /* @__PURE__ */ __name((entry) => { + const { tags, name, aliases: _aliases } = entry; + if (tags && tags.includes(toRemove)) { + const aliases = getAllAliases(name, _aliases); + for (const alias of aliases) { + entriesNameSet.delete(alias); + } + isRemoved = true; + return false; + } + return true; + }, "filterCb"); + absoluteEntries = absoluteEntries.filter(filterCb); + relativeEntries = relativeEntries.filter(filterCb); + return isRemoved; + }, + concat: (from) => { + var _a2; + const cloned = cloneTo(constructStack()); + cloned.use(from); + cloned.identifyOnResolve( + identifyOnResolve || cloned.identifyOnResolve() || (((_a2 = from.identifyOnResolve) == null ? void 0 : _a2.call(from)) ?? false) + ); + return cloned; + }, + applyToStack: cloneTo, + identify: () => { + return getMiddlewareList(true).map((mw) => { + const step = mw.step ?? mw.relation + " " + mw.toMiddleware; + return getMiddlewareNameWithAliases(mw.name, mw.aliases) + " - " + step; + }); + }, + identifyOnResolve(toggle) { + if (typeof toggle === "boolean") + identifyOnResolve = toggle; + return identifyOnResolve; + }, + resolve: (handler, context) => { + for (const middleware of getMiddlewareList().map((entry) => entry.middleware).reverse()) { + handler = middleware(handler, context); + } + if (identifyOnResolve) { + console.log(stack.identify()); + } + return handler; + } + }; + return stack; + }, "constructStack"); + var stepWeights = { + initialize: 5, + serialize: 4, + build: 3, + finalizeRequest: 2, + deserialize: 1 + }; + var priorityWeights = { + high: 3, + normal: 2, + low: 1 + }; + } +}); + +// ../node_modules/.pnpm/@smithy+smithy-client@4.4.1/node_modules/@smithy/smithy-client/dist-cjs/index.js +var require_dist_cjs23 = __commonJS({ + "../node_modules/.pnpm/@smithy+smithy-client@4.4.1/node_modules/@smithy/smithy-client/dist-cjs/index.js"(exports2, module2) { + var __defProp3 = Object.defineProperty; + var __getOwnPropDesc3 = Object.getOwnPropertyDescriptor; + var __getOwnPropNames3 = Object.getOwnPropertyNames; + var __hasOwnProp3 = Object.prototype.hasOwnProperty; + var __name = (target, value) => __defProp3(target, "name", { value, configurable: true }); + var __export2 = (target, all) => { + for (var name in all) + __defProp3(target, name, { get: all[name], enumerable: true }); + }; + var __copyProps3 = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames3(from)) + if (!__hasOwnProp3.call(to, key) && key !== except) + __defProp3(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc3(from, key)) || desc.enumerable }); + } + return to; + }; + var __reExport = (target, mod, secondTarget) => (__copyProps3(target, mod, "default"), secondTarget && __copyProps3(secondTarget, mod, "default")); + var __toCommonJS2 = (mod) => __copyProps3(__defProp3({}, "__esModule", { value: true }), mod); + var src_exports = {}; + __export2(src_exports, { + Client: () => Client, + Command: () => Command, + NoOpLogger: () => NoOpLogger3, + SENSITIVE_STRING: () => SENSITIVE_STRING3, + ServiceException: () => ServiceException, + _json: () => _json2, + collectBody: () => import_protocols2.collectBody, + convertMap: () => convertMap, + createAggregatedClient: () => createAggregatedClient3, + decorateServiceException: () => decorateServiceException, + emitWarningIfUnsupportedVersion: () => emitWarningIfUnsupportedVersion4, + extendedEncodeURIComponent: () => import_protocols2.extendedEncodeURIComponent, + getArrayIfSingleItem: () => getArrayIfSingleItem, + getDefaultClientConfiguration: () => getDefaultClientConfiguration, + getDefaultExtensionConfiguration: () => getDefaultExtensionConfiguration3, + getValueFromTextNode: () => getValueFromTextNode2, + isSerializableHeaderValue: () => isSerializableHeaderValue, + loadConfigsForDefaultMode: () => loadConfigsForDefaultMode3, + map: () => map2, + resolveDefaultRuntimeConfig: () => resolveDefaultRuntimeConfig3, + resolvedPath: () => import_protocols2.resolvedPath, + serializeDateTime: () => serializeDateTime, + serializeFloat: () => serializeFloat, + take: () => take2, + throwDefaultError: () => throwDefaultError3, + withBaseException: () => withBaseException3 + }); + module2.exports = __toCommonJS2(src_exports); + var import_middleware_stack = require_dist_cjs22(); + var _a2; + var Client = (_a2 = class { + constructor(config) { + this.config = config; + this.middlewareStack = (0, import_middleware_stack.constructStack)(); + } + send(command, optionsOrCb, cb) { + const options = typeof optionsOrCb !== "function" ? optionsOrCb : void 0; + const callback = typeof optionsOrCb === "function" ? optionsOrCb : cb; + const useHandlerCache = options === void 0 && this.config.cacheMiddleware === true; + let handler; + if (useHandlerCache) { + if (!this.handlers) { + this.handlers = /* @__PURE__ */ new WeakMap(); + } + const handlers = this.handlers; + if (handlers.has(command.constructor)) { + handler = handlers.get(command.constructor); + } else { + handler = command.resolveMiddleware(this.middlewareStack, this.config, options); + handlers.set(command.constructor, handler); + } + } else { + delete this.handlers; + handler = command.resolveMiddleware(this.middlewareStack, this.config, options); + } + if (callback) { + handler(command).then( + (result) => callback(null, result.output), + (err2) => callback(err2) + ).catch( + // prevent any errors thrown in the callback from triggering an + // unhandled promise rejection + () => { + } + ); + } else { + return handler(command).then((result) => result.output); + } + } + destroy() { + var _a7, _b, _c; + (_c = (_b = (_a7 = this.config) == null ? void 0 : _a7.requestHandler) == null ? void 0 : _b.destroy) == null ? void 0 : _c.call(_b); + delete this.handlers; + } + }, __name(_a2, "Client"), _a2); + var import_protocols2 = (init_protocols(), __toCommonJS(protocols_exports)); + var import_types5 = require_dist_cjs(); + var _a3; + var Command = (_a3 = class { + constructor() { + this.middlewareStack = (0, import_middleware_stack.constructStack)(); + } + /** + * Factory for Command ClassBuilder. + * @internal + */ + static classBuilder() { + return new ClassBuilder(); + } + /** + * @internal + */ + resolveMiddlewareWithContext(clientStack, configuration, options, { + middlewareFn, + clientName, + commandName, + inputFilterSensitiveLog, + outputFilterSensitiveLog, + smithyContext, + additionalContext, + CommandCtor + }) { + for (const mw of middlewareFn.bind(this)(CommandCtor, clientStack, configuration, options)) { + this.middlewareStack.use(mw); + } + const stack = clientStack.concat(this.middlewareStack); + const { logger: logger3 } = configuration; + const handlerExecutionContext = { + logger: logger3, + clientName, + commandName, + inputFilterSensitiveLog, + outputFilterSensitiveLog, + [import_types5.SMITHY_CONTEXT_KEY]: { + commandInstance: this, + ...smithyContext + }, + ...additionalContext + }; + const { requestHandler } = configuration; + return stack.resolve( + (request) => requestHandler.handle(request.request, options || {}), + handlerExecutionContext + ); + } + }, __name(_a3, "Command"), _a3); + var _a4; + var ClassBuilder = (_a4 = class { + constructor() { + this._init = () => { + }; + this._ep = {}; + this._middlewareFn = () => []; + this._commandName = ""; + this._clientName = ""; + this._additionalContext = {}; + this._smithyContext = {}; + this._inputFilterSensitiveLog = (_3) => _3; + this._outputFilterSensitiveLog = (_3) => _3; + this._serializer = null; + this._deserializer = null; + } + /** + * Optional init callback. + */ + init(cb) { + this._init = cb; + } + /** + * Set the endpoint parameter instructions. + */ + ep(endpointParameterInstructions) { + this._ep = endpointParameterInstructions; + return this; + } + /** + * Add any number of middleware. + */ + m(middlewareSupplier) { + this._middlewareFn = middlewareSupplier; + return this; + } + /** + * Set the initial handler execution context Smithy field. + */ + s(service, operation, smithyContext = {}) { + this._smithyContext = { + service, + operation, + ...smithyContext + }; + return this; + } + /** + * Set the initial handler execution context. + */ + c(additionalContext = {}) { + this._additionalContext = additionalContext; + return this; + } + /** + * Set constant string identifiers for the operation. + */ + n(clientName, commandName) { + this._clientName = clientName; + this._commandName = commandName; + return this; + } + /** + * Set the input and output sensistive log filters. + */ + f(inputFilter = (_3) => _3, outputFilter = (_3) => _3) { + this._inputFilterSensitiveLog = inputFilter; + this._outputFilterSensitiveLog = outputFilter; + return this; + } + /** + * Sets the serializer. + */ + ser(serializer) { + this._serializer = serializer; + return this; + } + /** + * Sets the deserializer. + */ + de(deserializer) { + this._deserializer = deserializer; + return this; + } + /** + * Sets input/output schema for the operation. + */ + sc(operation) { + this._operationSchema = operation; + this._smithyContext.operationSchema = operation; + return this; + } + /** + * @returns a Command class with the classBuilder properties. + */ + build() { + var _a7; + const closure = this; + let CommandRef; + return CommandRef = (_a7 = class extends Command { + /** + * @public + */ + constructor(...[input]) { + super(); + this.serialize = closure._serializer; + this.deserialize = closure._deserializer; + this.input = input ?? {}; + closure._init(this); + this.schema = closure._operationSchema; + } + /** + * @public + */ + static getEndpointParameterInstructions() { + return closure._ep; + } + /** + * @internal + */ + resolveMiddleware(stack, configuration, options) { + return this.resolveMiddlewareWithContext(stack, configuration, options, { + CommandCtor: CommandRef, + middlewareFn: closure._middlewareFn, + clientName: closure._clientName, + commandName: closure._commandName, + inputFilterSensitiveLog: closure._inputFilterSensitiveLog, + outputFilterSensitiveLog: closure._outputFilterSensitiveLog, + smithyContext: closure._smithyContext, + additionalContext: closure._additionalContext + }); + } + }, __name(_a7, "CommandRef"), _a7); + } + }, __name(_a4, "ClassBuilder"), _a4); + var SENSITIVE_STRING3 = "***SensitiveInformation***"; + var createAggregatedClient3 = /* @__PURE__ */ __name((commands3, Client2) => { + for (const command of Object.keys(commands3)) { + const CommandCtor = commands3[command]; + const methodImpl = /* @__PURE__ */ __name(async function(args, optionsOrCb, cb) { + const command22 = new CommandCtor(args); + if (typeof optionsOrCb === "function") { + this.send(command22, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") + throw new Error(`Expected http options but got ${typeof optionsOrCb}`); + this.send(command22, optionsOrCb || {}, cb); + } else { + return this.send(command22, optionsOrCb); + } + }, "methodImpl"); + const methodName = (command[0].toLowerCase() + command.slice(1)).replace(/Command$/, ""); + Client2.prototype[methodName] = methodImpl; + } + }, "createAggregatedClient"); + var _a5; + var ServiceException = (_a5 = class extends Error { + constructor(options) { + super(options.message); + Object.setPrototypeOf(this, Object.getPrototypeOf(this).constructor.prototype); + this.name = options.name; + this.$fault = options.$fault; + this.$metadata = options.$metadata; + } + /** + * Checks if a value is an instance of ServiceException (duck typed) + */ + static isInstance(value) { + if (!value) + return false; + const candidate = value; + return _a5.prototype.isPrototypeOf(candidate) || Boolean(candidate.$fault) && Boolean(candidate.$metadata) && (candidate.$fault === "client" || candidate.$fault === "server"); + } + /** + * Custom instanceof check to support the operator for ServiceException base class + */ + static [Symbol.hasInstance](instance) { + if (!instance) + return false; + const candidate = instance; + if (this === _a5) { + return _a5.isInstance(instance); + } + if (_a5.isInstance(instance)) { + if (candidate.name && this.name) { + return this.prototype.isPrototypeOf(instance) || candidate.name === this.name; + } + return this.prototype.isPrototypeOf(instance); + } + return false; + } + }, __name(_a5, "ServiceException"), _a5); + var decorateServiceException = /* @__PURE__ */ __name((exception, additions = {}) => { + Object.entries(additions).filter(([, v6]) => v6 !== void 0).forEach(([k3, v6]) => { + if (exception[k3] == void 0 || exception[k3] === "") { + exception[k3] = v6; + } + }); + const message = exception.message || exception.Message || "UnknownError"; + exception.message = message; + delete exception.Message; + return exception; + }, "decorateServiceException"); + var throwDefaultError3 = /* @__PURE__ */ __name(({ output, parsedBody, exceptionCtor, errorCode }) => { + const $metadata = deserializeMetadata3(output); + const statusCode = $metadata.httpStatusCode ? $metadata.httpStatusCode + "" : void 0; + const response = new exceptionCtor({ + name: (parsedBody == null ? void 0 : parsedBody.code) || (parsedBody == null ? void 0 : parsedBody.Code) || errorCode || statusCode || "UnknownError", + $fault: "client", + $metadata + }); + throw decorateServiceException(response, parsedBody); + }, "throwDefaultError"); + var withBaseException3 = /* @__PURE__ */ __name((ExceptionCtor) => { + return ({ output, parsedBody, errorCode }) => { + throwDefaultError3({ output, parsedBody, exceptionCtor: ExceptionCtor, errorCode }); + }; + }, "withBaseException"); + var deserializeMetadata3 = /* @__PURE__ */ __name((output) => ({ + httpStatusCode: output.statusCode, + requestId: output.headers["x-amzn-requestid"] ?? output.headers["x-amzn-request-id"] ?? output.headers["x-amz-request-id"], + extendedRequestId: output.headers["x-amz-id-2"], + cfId: output.headers["x-amz-cf-id"] + }), "deserializeMetadata"); + var loadConfigsForDefaultMode3 = /* @__PURE__ */ __name((mode) => { + switch (mode) { + case "standard": + return { + retryMode: "standard", + connectionTimeout: 3100 + }; + case "in-region": + return { + retryMode: "standard", + connectionTimeout: 1100 + }; + case "cross-region": + return { + retryMode: "standard", + connectionTimeout: 3100 + }; + case "mobile": + return { + retryMode: "standard", + connectionTimeout: 3e4 + }; + default: + return {}; + } + }, "loadConfigsForDefaultMode"); + var warningEmitted = false; + var emitWarningIfUnsupportedVersion4 = /* @__PURE__ */ __name((version3) => { + if (version3 && !warningEmitted && parseInt(version3.substring(1, version3.indexOf("."))) < 16) { + warningEmitted = true; + } + }, "emitWarningIfUnsupportedVersion"); + var getChecksumConfiguration = /* @__PURE__ */ __name((runtimeConfig) => { + const checksumAlgorithms = []; + for (const id in import_types5.AlgorithmId) { + const algorithmId = import_types5.AlgorithmId[id]; + if (runtimeConfig[algorithmId] === void 0) { + continue; + } + checksumAlgorithms.push({ + algorithmId: () => algorithmId, + checksumConstructor: () => runtimeConfig[algorithmId] + }); + } + return { + addChecksumAlgorithm(algo) { + checksumAlgorithms.push(algo); + }, + checksumAlgorithms() { + return checksumAlgorithms; + } + }; + }, "getChecksumConfiguration"); + var resolveChecksumRuntimeConfig = /* @__PURE__ */ __name((clientConfig) => { + const runtimeConfig = {}; + clientConfig.checksumAlgorithms().forEach((checksumAlgorithm) => { + runtimeConfig[checksumAlgorithm.algorithmId()] = checksumAlgorithm.checksumConstructor(); + }); + return runtimeConfig; + }, "resolveChecksumRuntimeConfig"); + var getRetryConfiguration = /* @__PURE__ */ __name((runtimeConfig) => { + return { + setRetryStrategy(retryStrategy) { + runtimeConfig.retryStrategy = retryStrategy; + }, + retryStrategy() { + return runtimeConfig.retryStrategy; + } + }; + }, "getRetryConfiguration"); + var resolveRetryRuntimeConfig = /* @__PURE__ */ __name((retryStrategyConfiguration) => { + const runtimeConfig = {}; + runtimeConfig.retryStrategy = retryStrategyConfiguration.retryStrategy(); + return runtimeConfig; + }, "resolveRetryRuntimeConfig"); + var getDefaultExtensionConfiguration3 = /* @__PURE__ */ __name((runtimeConfig) => { + return Object.assign(getChecksumConfiguration(runtimeConfig), getRetryConfiguration(runtimeConfig)); + }, "getDefaultExtensionConfiguration"); + var getDefaultClientConfiguration = getDefaultExtensionConfiguration3; + var resolveDefaultRuntimeConfig3 = /* @__PURE__ */ __name((config) => { + return Object.assign(resolveChecksumRuntimeConfig(config), resolveRetryRuntimeConfig(config)); + }, "resolveDefaultRuntimeConfig"); + var getArrayIfSingleItem = /* @__PURE__ */ __name((mayBeArray) => Array.isArray(mayBeArray) ? mayBeArray : [mayBeArray], "getArrayIfSingleItem"); + var getValueFromTextNode2 = /* @__PURE__ */ __name((obj) => { + const textNodeName = "#text"; + for (const key in obj) { + if (obj.hasOwnProperty(key) && obj[key][textNodeName] !== void 0) { + obj[key] = obj[key][textNodeName]; + } else if (typeof obj[key] === "object" && obj[key] !== null) { + obj[key] = getValueFromTextNode2(obj[key]); + } + } + return obj; + }, "getValueFromTextNode"); + var isSerializableHeaderValue = /* @__PURE__ */ __name((value) => { + return value != null; + }, "isSerializableHeaderValue"); + var _a6; + var NoOpLogger3 = (_a6 = class { + trace() { + } + debug() { + } + info() { + } + warn() { + } + error() { + } + }, __name(_a6, "NoOpLogger"), _a6); + function map2(arg0, arg1, arg2) { + let target; + let filter2; + let instructions; + if (typeof arg1 === "undefined" && typeof arg2 === "undefined") { + target = {}; + instructions = arg0; + } else { + target = arg0; + if (typeof arg1 === "function") { + filter2 = arg1; + instructions = arg2; + return mapWithFilter(target, filter2, instructions); + } else { + instructions = arg1; + } + } + for (const key of Object.keys(instructions)) { + if (!Array.isArray(instructions[key])) { + target[key] = instructions[key]; + continue; + } + applyInstruction(target, null, instructions, key); + } + return target; + } + __name(map2, "map"); + var convertMap = /* @__PURE__ */ __name((target) => { + const output = {}; + for (const [k3, v6] of Object.entries(target || {})) { + output[k3] = [, v6]; + } + return output; + }, "convertMap"); + var take2 = /* @__PURE__ */ __name((source, instructions) => { + const out = {}; + for (const key in instructions) { + applyInstruction(out, source, instructions, key); + } + return out; + }, "take"); + var mapWithFilter = /* @__PURE__ */ __name((target, filter2, instructions) => { + return map2( + target, + Object.entries(instructions).reduce( + (_instructions, [key, value]) => { + if (Array.isArray(value)) { + _instructions[key] = value; + } else { + if (typeof value === "function") { + _instructions[key] = [filter2, value()]; + } else { + _instructions[key] = [filter2, value]; + } + } + return _instructions; + }, + {} + ) + ); + }, "mapWithFilter"); + var applyInstruction = /* @__PURE__ */ __name((target, source, instructions, targetKey) => { + if (source !== null) { + let instruction = instructions[targetKey]; + if (typeof instruction === "function") { + instruction = [, instruction]; + } + const [filter22 = nonNullish, valueFn = pass, sourceKey = targetKey] = instruction; + if (typeof filter22 === "function" && filter22(source[sourceKey]) || typeof filter22 !== "function" && !!filter22) { + target[targetKey] = valueFn(source[sourceKey]); + } + return; + } + let [filter2, value] = instructions[targetKey]; + if (typeof value === "function") { + let _value; + const defaultFilterPassed = filter2 === void 0 && (_value = value()) != null; + const customFilterPassed = typeof filter2 === "function" && !!filter2(void 0) || typeof filter2 !== "function" && !!filter2; + if (defaultFilterPassed) { + target[targetKey] = _value; + } else if (customFilterPassed) { + target[targetKey] = value(); + } + } else { + const defaultFilterPassed = filter2 === void 0 && value != null; + const customFilterPassed = typeof filter2 === "function" && !!filter2(value) || typeof filter2 !== "function" && !!filter2; + if (defaultFilterPassed || customFilterPassed) { + target[targetKey] = value; + } + } + }, "applyInstruction"); + var nonNullish = /* @__PURE__ */ __name((_3) => _3 != null, "nonNullish"); + var pass = /* @__PURE__ */ __name((_3) => _3, "pass"); + var serializeFloat = /* @__PURE__ */ __name((value) => { + if (value !== value) { + return "NaN"; + } + switch (value) { + case Infinity: + return "Infinity"; + case -Infinity: + return "-Infinity"; + default: + return value; + } + }, "serializeFloat"); + var serializeDateTime = /* @__PURE__ */ __name((date) => date.toISOString().replace(".000Z", "Z"), "serializeDateTime"); + var _json2 = /* @__PURE__ */ __name((obj) => { + if (obj == null) { + return {}; + } + if (Array.isArray(obj)) { + return obj.filter((_3) => _3 != null).map(_json2); + } + if (typeof obj === "object") { + const target = {}; + for (const key of Object.keys(obj)) { + if (obj[key] == null) { + continue; + } + target[key] = _json2(obj[key]); + } + return target; + } + return obj; + }, "_json"); + __reExport(src_exports, (init_serde(), __toCommonJS(serde_exports)), module2.exports); + } +}); + +// ../node_modules/.pnpm/@aws-sdk+core@3.816.0/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/awsExpectUnion.js +var import_smithy_client, awsExpectUnion; +var init_awsExpectUnion = __esm({ + "../node_modules/.pnpm/@aws-sdk+core@3.816.0/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/awsExpectUnion.js"() { + import_smithy_client = __toESM(require_dist_cjs23()); + awsExpectUnion = (value) => { + if (value == null) { + return void 0; + } + if (typeof value === "object" && "__type" in value) { + delete value.__type; + } + return (0, import_smithy_client.expectUnion)(value); + }; + } +}); + +// ../node_modules/.pnpm/@aws-sdk+core@3.816.0/node_modules/@aws-sdk/core/dist-es/submodules/protocols/common.js +var import_smithy_client2, collectBodyString; +var init_common2 = __esm({ + "../node_modules/.pnpm/@aws-sdk+core@3.816.0/node_modules/@aws-sdk/core/dist-es/submodules/protocols/common.js"() { + import_smithy_client2 = __toESM(require_dist_cjs23()); + collectBodyString = (streamBody, context) => (0, import_smithy_client2.collectBody)(streamBody, context).then((body) => context.utf8Encoder(body)); + } +}); + +// ../node_modules/.pnpm/@aws-sdk+core@3.816.0/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/parseJsonBody.js +var parseJsonBody, parseJsonErrorBody, loadRestJsonErrorCode; +var init_parseJsonBody = __esm({ + "../node_modules/.pnpm/@aws-sdk+core@3.816.0/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/parseJsonBody.js"() { + init_common2(); + parseJsonBody = (streamBody, context) => collectBodyString(streamBody, context).then((encoded) => { + if (encoded.length) { + try { + return JSON.parse(encoded); + } catch (e4) { + if ((e4 == null ? void 0 : e4.name) === "SyntaxError") { + Object.defineProperty(e4, "$responseBodyText", { + value: encoded + }); + } + throw e4; + } + } + return {}; + }); + parseJsonErrorBody = async (errorBody, context) => { + const value = await parseJsonBody(errorBody, context); + value.message = value.message ?? value.Message; + return value; + }; + loadRestJsonErrorCode = (output, data) => { + const findKey = (object, key) => Object.keys(object).find((k3) => k3.toLowerCase() === key.toLowerCase()); + const sanitizeErrorCode = (rawValue) => { + let cleanValue = rawValue; + if (typeof cleanValue === "number") { + cleanValue = cleanValue.toString(); + } + if (cleanValue.indexOf(",") >= 0) { + cleanValue = cleanValue.split(",")[0]; + } + if (cleanValue.indexOf(":") >= 0) { + cleanValue = cleanValue.split(":")[0]; + } + if (cleanValue.indexOf("#") >= 0) { + cleanValue = cleanValue.split("#")[1]; + } + return cleanValue; + }; + const headerKey = findKey(output.headers, "x-amzn-errortype"); + if (headerKey !== void 0) { + return sanitizeErrorCode(output.headers[headerKey]); + } + if (data && typeof data === "object") { + const codeKey = findKey(data, "code"); + if (codeKey && data[codeKey] !== void 0) { + return sanitizeErrorCode(data[codeKey]); + } + if (data["__type"] !== void 0) { + return sanitizeErrorCode(data["__type"]); + } + } + }; + } +}); + +// ../node_modules/.pnpm/fast-xml-parser@4.4.1/node_modules/fast-xml-parser/src/util.js +var require_util2 = __commonJS({ + "../node_modules/.pnpm/fast-xml-parser@4.4.1/node_modules/fast-xml-parser/src/util.js"(exports2) { + "use strict"; + var nameStartChar = ":A-Za-z_\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD"; + var nameChar = nameStartChar + "\\-.\\d\\u00B7\\u0300-\\u036F\\u203F-\\u2040"; + var nameRegexp = "[" + nameStartChar + "][" + nameChar + "]*"; + var regexName = new RegExp("^" + nameRegexp + "$"); + var getAllMatches = function(string2, regex) { + const matches = []; + let match2 = regex.exec(string2); + while (match2) { + const allmatches = []; + allmatches.startIndex = regex.lastIndex - match2[0].length; + const len = match2.length; + for (let index6 = 0; index6 < len; index6++) { + allmatches.push(match2[index6]); + } + matches.push(allmatches); + match2 = regex.exec(string2); + } + return matches; + }; + var isName = function(string2) { + const match2 = regexName.exec(string2); + return !(match2 === null || typeof match2 === "undefined"); + }; + exports2.isExist = function(v6) { + return typeof v6 !== "undefined"; + }; + exports2.isEmptyObject = function(obj) { + return Object.keys(obj).length === 0; + }; + exports2.merge = function(target, a3, arrayMode) { + if (a3) { + const keys = Object.keys(a3); + const len = keys.length; + for (let i4 = 0; i4 < len; i4++) { + if (arrayMode === "strict") { + target[keys[i4]] = [a3[keys[i4]]]; + } else { + target[keys[i4]] = a3[keys[i4]]; + } + } + } + }; + exports2.getValue = function(v6) { + if (exports2.isExist(v6)) { + return v6; + } else { + return ""; + } + }; + exports2.isName = isName; + exports2.getAllMatches = getAllMatches; + exports2.nameRegexp = nameRegexp; + } +}); + +// ../node_modules/.pnpm/fast-xml-parser@4.4.1/node_modules/fast-xml-parser/src/validator.js +var require_validator = __commonJS({ + "../node_modules/.pnpm/fast-xml-parser@4.4.1/node_modules/fast-xml-parser/src/validator.js"(exports2) { + "use strict"; + var util2 = require_util2(); + var defaultOptions = { + allowBooleanAttributes: false, + //A tag can have attributes without any value + unpairedTags: [] + }; + exports2.validate = function(xmlData, options) { + options = Object.assign({}, defaultOptions, options); + const tags = []; + let tagFound = false; + let reachedRoot = false; + if (xmlData[0] === "\uFEFF") { + xmlData = xmlData.substr(1); + } + for (let i4 = 0; i4 < xmlData.length; i4++) { + if (xmlData[i4] === "<" && xmlData[i4 + 1] === "?") { + i4 += 2; + i4 = readPI(xmlData, i4); + if (i4.err) return i4; + } else if (xmlData[i4] === "<") { + let tagStartPos = i4; + i4++; + if (xmlData[i4] === "!") { + i4 = readCommentAndCDATA(xmlData, i4); + continue; + } else { + let closingTag = false; + if (xmlData[i4] === "/") { + closingTag = true; + i4++; + } + let tagName = ""; + for (; i4 < xmlData.length && xmlData[i4] !== ">" && xmlData[i4] !== " " && xmlData[i4] !== " " && xmlData[i4] !== "\n" && xmlData[i4] !== "\r"; i4++) { + tagName += xmlData[i4]; + } + tagName = tagName.trim(); + if (tagName[tagName.length - 1] === "/") { + tagName = tagName.substring(0, tagName.length - 1); + i4--; + } + if (!validateTagName(tagName)) { + let msg; + if (tagName.trim().length === 0) { + msg = "Invalid space after '<'."; + } else { + msg = "Tag '" + tagName + "' is an invalid name."; + } + return getErrorObject("InvalidTag", msg, getLineNumberForPosition(xmlData, i4)); + } + const result = readAttributeStr(xmlData, i4); + if (result === false) { + return getErrorObject("InvalidAttr", "Attributes for '" + tagName + "' have open quote.", getLineNumberForPosition(xmlData, i4)); + } + let attrStr = result.value; + i4 = result.index; + if (attrStr[attrStr.length - 1] === "/") { + const attrStrStart = i4 - attrStr.length; + attrStr = attrStr.substring(0, attrStr.length - 1); + const isValid2 = validateAttributeString(attrStr, options); + if (isValid2 === true) { + tagFound = true; + } else { + return getErrorObject(isValid2.err.code, isValid2.err.msg, getLineNumberForPosition(xmlData, attrStrStart + isValid2.err.line)); + } + } else if (closingTag) { + if (!result.tagClosed) { + return getErrorObject("InvalidTag", "Closing tag '" + tagName + "' doesn't have proper closing.", getLineNumberForPosition(xmlData, i4)); + } else if (attrStr.trim().length > 0) { + return getErrorObject("InvalidTag", "Closing tag '" + tagName + "' can't have attributes or invalid starting.", getLineNumberForPosition(xmlData, tagStartPos)); + } else if (tags.length === 0) { + return getErrorObject("InvalidTag", "Closing tag '" + tagName + "' has not been opened.", getLineNumberForPosition(xmlData, tagStartPos)); + } else { + const otg = tags.pop(); + if (tagName !== otg.tagName) { + let openPos = getLineNumberForPosition(xmlData, otg.tagStartPos); + return getErrorObject( + "InvalidTag", + "Expected closing tag '" + otg.tagName + "' (opened in line " + openPos.line + ", col " + openPos.col + ") instead of closing tag '" + tagName + "'.", + getLineNumberForPosition(xmlData, tagStartPos) + ); + } + if (tags.length == 0) { + reachedRoot = true; + } + } + } else { + const isValid2 = validateAttributeString(attrStr, options); + if (isValid2 !== true) { + return getErrorObject(isValid2.err.code, isValid2.err.msg, getLineNumberForPosition(xmlData, i4 - attrStr.length + isValid2.err.line)); + } + if (reachedRoot === true) { + return getErrorObject("InvalidXml", "Multiple possible root nodes found.", getLineNumberForPosition(xmlData, i4)); + } else if (options.unpairedTags.indexOf(tagName) !== -1) { + } else { + tags.push({ tagName, tagStartPos }); + } + tagFound = true; + } + for (i4++; i4 < xmlData.length; i4++) { + if (xmlData[i4] === "<") { + if (xmlData[i4 + 1] === "!") { + i4++; + i4 = readCommentAndCDATA(xmlData, i4); + continue; + } else if (xmlData[i4 + 1] === "?") { + i4 = readPI(xmlData, ++i4); + if (i4.err) return i4; + } else { + break; + } + } else if (xmlData[i4] === "&") { + const afterAmp = validateAmpersand(xmlData, i4); + if (afterAmp == -1) + return getErrorObject("InvalidChar", "char '&' is not expected.", getLineNumberForPosition(xmlData, i4)); + i4 = afterAmp; + } else { + if (reachedRoot === true && !isWhiteSpace(xmlData[i4])) { + return getErrorObject("InvalidXml", "Extra text at the end", getLineNumberForPosition(xmlData, i4)); + } + } + } + if (xmlData[i4] === "<") { + i4--; + } + } + } else { + if (isWhiteSpace(xmlData[i4])) { + continue; + } + return getErrorObject("InvalidChar", "char '" + xmlData[i4] + "' is not expected.", getLineNumberForPosition(xmlData, i4)); + } + } + if (!tagFound) { + return getErrorObject("InvalidXml", "Start tag expected.", 1); + } else if (tags.length == 1) { + return getErrorObject("InvalidTag", "Unclosed tag '" + tags[0].tagName + "'.", getLineNumberForPosition(xmlData, tags[0].tagStartPos)); + } else if (tags.length > 0) { + return getErrorObject("InvalidXml", "Invalid '" + JSON.stringify(tags.map((t4) => t4.tagName), null, 4).replace(/\r?\n/g, "") + "' found.", { line: 1, col: 1 }); + } + return true; + }; + function isWhiteSpace(char) { + return char === " " || char === " " || char === "\n" || char === "\r"; + } + function readPI(xmlData, i4) { + const start = i4; + for (; i4 < xmlData.length; i4++) { + if (xmlData[i4] == "?" || xmlData[i4] == " ") { + const tagname = xmlData.substr(start, i4 - start); + if (i4 > 5 && tagname === "xml") { + return getErrorObject("InvalidXml", "XML declaration allowed only at the start of the document.", getLineNumberForPosition(xmlData, i4)); + } else if (xmlData[i4] == "?" && xmlData[i4 + 1] == ">") { + i4++; + break; + } else { + continue; + } + } + } + return i4; + } + function readCommentAndCDATA(xmlData, i4) { + if (xmlData.length > i4 + 5 && xmlData[i4 + 1] === "-" && xmlData[i4 + 2] === "-") { + for (i4 += 3; i4 < xmlData.length; i4++) { + if (xmlData[i4] === "-" && xmlData[i4 + 1] === "-" && xmlData[i4 + 2] === ">") { + i4 += 2; + break; + } + } + } else if (xmlData.length > i4 + 8 && xmlData[i4 + 1] === "D" && xmlData[i4 + 2] === "O" && xmlData[i4 + 3] === "C" && xmlData[i4 + 4] === "T" && xmlData[i4 + 5] === "Y" && xmlData[i4 + 6] === "P" && xmlData[i4 + 7] === "E") { + let angleBracketsCount = 1; + for (i4 += 8; i4 < xmlData.length; i4++) { + if (xmlData[i4] === "<") { + angleBracketsCount++; + } else if (xmlData[i4] === ">") { + angleBracketsCount--; + if (angleBracketsCount === 0) { + break; + } + } + } + } else if (xmlData.length > i4 + 9 && xmlData[i4 + 1] === "[" && xmlData[i4 + 2] === "C" && xmlData[i4 + 3] === "D" && xmlData[i4 + 4] === "A" && xmlData[i4 + 5] === "T" && xmlData[i4 + 6] === "A" && xmlData[i4 + 7] === "[") { + for (i4 += 8; i4 < xmlData.length; i4++) { + if (xmlData[i4] === "]" && xmlData[i4 + 1] === "]" && xmlData[i4 + 2] === ">") { + i4 += 2; + break; + } + } + } + return i4; + } + var doubleQuote = '"'; + var singleQuote = "'"; + function readAttributeStr(xmlData, i4) { + let attrStr = ""; + let startChar = ""; + let tagClosed = false; + for (; i4 < xmlData.length; i4++) { + if (xmlData[i4] === doubleQuote || xmlData[i4] === singleQuote) { + if (startChar === "") { + startChar = xmlData[i4]; + } else if (startChar !== xmlData[i4]) { + } else { + startChar = ""; + } + } else if (xmlData[i4] === ">") { + if (startChar === "") { + tagClosed = true; + break; + } + } + attrStr += xmlData[i4]; + } + if (startChar !== "") { + return false; + } + return { + value: attrStr, + index: i4, + tagClosed + }; + } + var validAttrStrRegxp = new RegExp(`(\\s*)([^\\s=]+)(\\s*=)?(\\s*(['"])(([\\s\\S])*?)\\5)?`, "g"); + function validateAttributeString(attrStr, options) { + const matches = util2.getAllMatches(attrStr, validAttrStrRegxp); + const attrNames = {}; + for (let i4 = 0; i4 < matches.length; i4++) { + if (matches[i4][1].length === 0) { + return getErrorObject("InvalidAttr", "Attribute '" + matches[i4][2] + "' has no space in starting.", getPositionFromMatch(matches[i4])); + } else if (matches[i4][3] !== void 0 && matches[i4][4] === void 0) { + return getErrorObject("InvalidAttr", "Attribute '" + matches[i4][2] + "' is without value.", getPositionFromMatch(matches[i4])); + } else if (matches[i4][3] === void 0 && !options.allowBooleanAttributes) { + return getErrorObject("InvalidAttr", "boolean attribute '" + matches[i4][2] + "' is not allowed.", getPositionFromMatch(matches[i4])); + } + const attrName = matches[i4][2]; + if (!validateAttrName(attrName)) { + return getErrorObject("InvalidAttr", "Attribute '" + attrName + "' is an invalid name.", getPositionFromMatch(matches[i4])); + } + if (!attrNames.hasOwnProperty(attrName)) { + attrNames[attrName] = 1; + } else { + return getErrorObject("InvalidAttr", "Attribute '" + attrName + "' is repeated.", getPositionFromMatch(matches[i4])); + } + } + return true; + } + function validateNumberAmpersand(xmlData, i4) { + let re = /\d/; + if (xmlData[i4] === "x") { + i4++; + re = /[\da-fA-F]/; + } + for (; i4 < xmlData.length; i4++) { + if (xmlData[i4] === ";") + return i4; + if (!xmlData[i4].match(re)) + break; + } + return -1; + } + function validateAmpersand(xmlData, i4) { + i4++; + if (xmlData[i4] === ";") + return -1; + if (xmlData[i4] === "#") { + i4++; + return validateNumberAmpersand(xmlData, i4); + } + let count = 0; + for (; i4 < xmlData.length; i4++, count++) { + if (xmlData[i4].match(/\w/) && count < 20) + continue; + if (xmlData[i4] === ";") + break; + return -1; + } + return i4; + } + function getErrorObject(code, message, lineNumber) { + return { + err: { + code, + msg: message, + line: lineNumber.line || lineNumber, + col: lineNumber.col + } + }; + } + function validateAttrName(attrName) { + return util2.isName(attrName); + } + function validateTagName(tagname) { + return util2.isName(tagname); + } + function getLineNumberForPosition(xmlData, index6) { + const lines = xmlData.substring(0, index6).split(/\r?\n/); + return { + line: lines.length, + // column number is last line's length + 1, because column numbering starts at 1: + col: lines[lines.length - 1].length + 1 + }; + } + function getPositionFromMatch(match2) { + return match2.startIndex + match2[1].length; + } + } +}); + +// ../node_modules/.pnpm/fast-xml-parser@4.4.1/node_modules/fast-xml-parser/src/xmlparser/OptionsBuilder.js +var require_OptionsBuilder = __commonJS({ + "../node_modules/.pnpm/fast-xml-parser@4.4.1/node_modules/fast-xml-parser/src/xmlparser/OptionsBuilder.js"(exports2) { + var defaultOptions = { + preserveOrder: false, + attributeNamePrefix: "@_", + attributesGroupName: false, + textNodeName: "#text", + ignoreAttributes: true, + removeNSPrefix: false, + // remove NS from tag name or attribute name if true + allowBooleanAttributes: false, + //a tag can have attributes without any value + //ignoreRootElement : false, + parseTagValue: true, + parseAttributeValue: false, + trimValues: true, + //Trim string values of tag and attributes + cdataPropName: false, + numberParseOptions: { + hex: true, + leadingZeros: true, + eNotation: true + }, + tagValueProcessor: function(tagName, val2) { + return val2; + }, + attributeValueProcessor: function(attrName, val2) { + return val2; + }, + stopNodes: [], + //nested tags will not be parsed even for errors + alwaysCreateTextNode: false, + isArray: () => false, + commentPropName: false, + unpairedTags: [], + processEntities: true, + htmlEntities: false, + ignoreDeclaration: false, + ignorePiTags: false, + transformTagName: false, + transformAttributeName: false, + updateTag: function(tagName, jPath, attrs) { + return tagName; + } + // skipEmptyListItem: false + }; + var buildOptions = function(options) { + return Object.assign({}, defaultOptions, options); + }; + exports2.buildOptions = buildOptions; + exports2.defaultOptions = defaultOptions; + } +}); + +// ../node_modules/.pnpm/fast-xml-parser@4.4.1/node_modules/fast-xml-parser/src/xmlparser/xmlNode.js +var require_xmlNode = __commonJS({ + "../node_modules/.pnpm/fast-xml-parser@4.4.1/node_modules/fast-xml-parser/src/xmlparser/xmlNode.js"(exports2, module2) { + "use strict"; + var XmlNode = class { + constructor(tagname) { + this.tagname = tagname; + this.child = []; + this[":@"] = {}; + } + add(key, val2) { + if (key === "__proto__") key = "#__proto__"; + this.child.push({ [key]: val2 }); + } + addChild(node) { + if (node.tagname === "__proto__") node.tagname = "#__proto__"; + if (node[":@"] && Object.keys(node[":@"]).length > 0) { + this.child.push({ [node.tagname]: node.child, [":@"]: node[":@"] }); + } else { + this.child.push({ [node.tagname]: node.child }); + } + } + }; + module2.exports = XmlNode; + } +}); + +// ../node_modules/.pnpm/fast-xml-parser@4.4.1/node_modules/fast-xml-parser/src/xmlparser/DocTypeReader.js +var require_DocTypeReader = __commonJS({ + "../node_modules/.pnpm/fast-xml-parser@4.4.1/node_modules/fast-xml-parser/src/xmlparser/DocTypeReader.js"(exports2, module2) { + var util2 = require_util2(); + function readDocType(xmlData, i4) { + const entities = {}; + if (xmlData[i4 + 3] === "O" && xmlData[i4 + 4] === "C" && xmlData[i4 + 5] === "T" && xmlData[i4 + 6] === "Y" && xmlData[i4 + 7] === "P" && xmlData[i4 + 8] === "E") { + i4 = i4 + 9; + let angleBracketsCount = 1; + let hasBody = false, comment = false; + let exp = ""; + for (; i4 < xmlData.length; i4++) { + if (xmlData[i4] === "<" && !comment) { + if (hasBody && isEntity(xmlData, i4)) { + i4 += 7; + [entityName, val, i4] = readEntityExp(xmlData, i4 + 1); + if (val.indexOf("&") === -1) + entities[validateEntityName(entityName)] = { + regx: RegExp(`&${entityName};`, "g"), + val + }; + } else if (hasBody && isElement(xmlData, i4)) i4 += 8; + else if (hasBody && isAttlist(xmlData, i4)) i4 += 8; + else if (hasBody && isNotation(xmlData, i4)) i4 += 9; + else if (isComment) comment = true; + else throw new Error("Invalid DOCTYPE"); + angleBracketsCount++; + exp = ""; + } else if (xmlData[i4] === ">") { + if (comment) { + if (xmlData[i4 - 1] === "-" && xmlData[i4 - 2] === "-") { + comment = false; + angleBracketsCount--; + } + } else { + angleBracketsCount--; + } + if (angleBracketsCount === 0) { + break; + } + } else if (xmlData[i4] === "[") { + hasBody = true; + } else { + exp += xmlData[i4]; + } + } + if (angleBracketsCount !== 0) { + throw new Error(`Unclosed DOCTYPE`); + } + } else { + throw new Error(`Invalid Tag instead of DOCTYPE`); + } + return { entities, i: i4 }; + } + function readEntityExp(xmlData, i4) { + let entityName2 = ""; + for (; i4 < xmlData.length && (xmlData[i4] !== "'" && xmlData[i4] !== '"'); i4++) { + entityName2 += xmlData[i4]; + } + entityName2 = entityName2.trim(); + if (entityName2.indexOf(" ") !== -1) throw new Error("External entites are not supported"); + const startChar = xmlData[i4++]; + let val2 = ""; + for (; i4 < xmlData.length && xmlData[i4] !== startChar; i4++) { + val2 += xmlData[i4]; + } + return [entityName2, val2, i4]; + } + function isComment(xmlData, i4) { + if (xmlData[i4 + 1] === "!" && xmlData[i4 + 2] === "-" && xmlData[i4 + 3] === "-") return true; + return false; + } + function isEntity(xmlData, i4) { + if (xmlData[i4 + 1] === "!" && xmlData[i4 + 2] === "E" && xmlData[i4 + 3] === "N" && xmlData[i4 + 4] === "T" && xmlData[i4 + 5] === "I" && xmlData[i4 + 6] === "T" && xmlData[i4 + 7] === "Y") return true; + return false; + } + function isElement(xmlData, i4) { + if (xmlData[i4 + 1] === "!" && xmlData[i4 + 2] === "E" && xmlData[i4 + 3] === "L" && xmlData[i4 + 4] === "E" && xmlData[i4 + 5] === "M" && xmlData[i4 + 6] === "E" && xmlData[i4 + 7] === "N" && xmlData[i4 + 8] === "T") return true; + return false; + } + function isAttlist(xmlData, i4) { + if (xmlData[i4 + 1] === "!" && xmlData[i4 + 2] === "A" && xmlData[i4 + 3] === "T" && xmlData[i4 + 4] === "T" && xmlData[i4 + 5] === "L" && xmlData[i4 + 6] === "I" && xmlData[i4 + 7] === "S" && xmlData[i4 + 8] === "T") return true; + return false; + } + function isNotation(xmlData, i4) { + if (xmlData[i4 + 1] === "!" && xmlData[i4 + 2] === "N" && xmlData[i4 + 3] === "O" && xmlData[i4 + 4] === "T" && xmlData[i4 + 5] === "A" && xmlData[i4 + 6] === "T" && xmlData[i4 + 7] === "I" && xmlData[i4 + 8] === "O" && xmlData[i4 + 9] === "N") return true; + return false; + } + function validateEntityName(name) { + if (util2.isName(name)) + return name; + else + throw new Error(`Invalid entity name ${name}`); + } + module2.exports = readDocType; + } +}); + +// ../node_modules/.pnpm/strnum@1.1.2/node_modules/strnum/strnum.js +var require_strnum = __commonJS({ + "../node_modules/.pnpm/strnum@1.1.2/node_modules/strnum/strnum.js"(exports2, module2) { + var hexRegex = /^[-+]?0x[a-fA-F0-9]+$/; + var numRegex = /^([\-\+])?(0*)([0-9]*(\.[0-9]*)?)$/; + var consider = { + hex: true, + // oct: false, + leadingZeros: true, + decimalPoint: ".", + eNotation: true + //skipLike: /regex/ + }; + function toNumber(str, options = {}) { + options = Object.assign({}, consider, options); + if (!str || typeof str !== "string") return str; + let trimmedStr = str.trim(); + if (options.skipLike !== void 0 && options.skipLike.test(trimmedStr)) return str; + else if (str === "0") return 0; + else if (options.hex && hexRegex.test(trimmedStr)) { + return parse_int(trimmedStr, 16); + } else if (trimmedStr.search(/[eE]/) !== -1) { + const notation = trimmedStr.match(/^([-\+])?(0*)([0-9]*(\.[0-9]*)?[eE][-\+]?[0-9]+)$/); + if (notation) { + if (options.leadingZeros) { + trimmedStr = (notation[1] || "") + notation[3]; + } else { + if (notation[2] === "0" && notation[3][0] === ".") { + } else { + return str; + } + } + return options.eNotation ? Number(trimmedStr) : str; + } else { + return str; + } + } else { + const match2 = numRegex.exec(trimmedStr); + if (match2) { + const sign = match2[1]; + const leadingZeros = match2[2]; + let numTrimmedByZeros = trimZeros(match2[3]); + if (!options.leadingZeros && leadingZeros.length > 0 && sign && trimmedStr[2] !== ".") return str; + else if (!options.leadingZeros && leadingZeros.length > 0 && !sign && trimmedStr[1] !== ".") return str; + else if (options.leadingZeros && leadingZeros === str) return 0; + else { + const num = Number(trimmedStr); + const numStr = "" + num; + if (numStr.search(/[eE]/) !== -1) { + if (options.eNotation) return num; + else return str; + } else if (trimmedStr.indexOf(".") !== -1) { + if (numStr === "0" && numTrimmedByZeros === "") return num; + else if (numStr === numTrimmedByZeros) return num; + else if (sign && numStr === "-" + numTrimmedByZeros) return num; + else return str; + } + if (leadingZeros) { + return numTrimmedByZeros === numStr || sign + numTrimmedByZeros === numStr ? num : str; + } else { + return trimmedStr === numStr || trimmedStr === sign + numStr ? num : str; + } + } + } else { + return str; + } + } + } + function trimZeros(numStr) { + if (numStr && numStr.indexOf(".") !== -1) { + numStr = numStr.replace(/0+$/, ""); + if (numStr === ".") numStr = "0"; + else if (numStr[0] === ".") numStr = "0" + numStr; + else if (numStr[numStr.length - 1] === ".") numStr = numStr.substr(0, numStr.length - 1); + return numStr; + } + return numStr; + } + function parse_int(numStr, base) { + if (parseInt) return parseInt(numStr, base); + else if (Number.parseInt) return Number.parseInt(numStr, base); + else if (window && window.parseInt) return window.parseInt(numStr, base); + else throw new Error("parseInt, Number.parseInt, window.parseInt are not supported"); + } + module2.exports = toNumber; + } +}); + +// ../node_modules/.pnpm/fast-xml-parser@4.4.1/node_modules/fast-xml-parser/src/xmlparser/OrderedObjParser.js +var require_OrderedObjParser = __commonJS({ + "../node_modules/.pnpm/fast-xml-parser@4.4.1/node_modules/fast-xml-parser/src/xmlparser/OrderedObjParser.js"(exports2, module2) { + "use strict"; + var util2 = require_util2(); + var xmlNode = require_xmlNode(); + var readDocType = require_DocTypeReader(); + var toNumber = require_strnum(); + var OrderedObjParser = class { + constructor(options) { + this.options = options; + this.currentNode = null; + this.tagsNodeStack = []; + this.docTypeEntities = {}; + this.lastEntities = { + "apos": { regex: /&(apos|#39|#x27);/g, val: "'" }, + "gt": { regex: /&(gt|#62|#x3E);/g, val: ">" }, + "lt": { regex: /&(lt|#60|#x3C);/g, val: "<" }, + "quot": { regex: /&(quot|#34|#x22);/g, val: '"' } + }; + this.ampEntity = { regex: /&(amp|#38|#x26);/g, val: "&" }; + this.htmlEntities = { + "space": { regex: /&(nbsp|#160);/g, val: " " }, + // "lt" : { regex: /&(lt|#60);/g, val: "<" }, + // "gt" : { regex: /&(gt|#62);/g, val: ">" }, + // "amp" : { regex: /&(amp|#38);/g, val: "&" }, + // "quot" : { regex: /&(quot|#34);/g, val: "\"" }, + // "apos" : { regex: /&(apos|#39);/g, val: "'" }, + "cent": { regex: /&(cent|#162);/g, val: "\xA2" }, + "pound": { regex: /&(pound|#163);/g, val: "\xA3" }, + "yen": { regex: /&(yen|#165);/g, val: "\xA5" }, + "euro": { regex: /&(euro|#8364);/g, val: "\u20AC" }, + "copyright": { regex: /&(copy|#169);/g, val: "\xA9" }, + "reg": { regex: /&(reg|#174);/g, val: "\xAE" }, + "inr": { regex: /&(inr|#8377);/g, val: "\u20B9" }, + "num_dec": { regex: /&#([0-9]{1,7});/g, val: (_3, str) => String.fromCharCode(Number.parseInt(str, 10)) }, + "num_hex": { regex: /&#x([0-9a-fA-F]{1,6});/g, val: (_3, str) => String.fromCharCode(Number.parseInt(str, 16)) } + }; + this.addExternalEntities = addExternalEntities; + this.parseXml = parseXml; + this.parseTextData = parseTextData; + this.resolveNameSpace = resolveNameSpace; + this.buildAttributesMap = buildAttributesMap; + this.isItStopNode = isItStopNode; + this.replaceEntitiesValue = replaceEntitiesValue; + this.readStopNodeData = readStopNodeData; + this.saveTextToParentTag = saveTextToParentTag; + this.addChild = addChild; + } + }; + function addExternalEntities(externalEntities) { + const entKeys = Object.keys(externalEntities); + for (let i4 = 0; i4 < entKeys.length; i4++) { + const ent = entKeys[i4]; + this.lastEntities[ent] = { + regex: new RegExp("&" + ent + ";", "g"), + val: externalEntities[ent] + }; + } + } + function parseTextData(val2, tagName, jPath, dontTrim, hasAttributes, isLeafNode, escapeEntities) { + if (val2 !== void 0) { + if (this.options.trimValues && !dontTrim) { + val2 = val2.trim(); + } + if (val2.length > 0) { + if (!escapeEntities) val2 = this.replaceEntitiesValue(val2); + const newval = this.options.tagValueProcessor(tagName, val2, jPath, hasAttributes, isLeafNode); + if (newval === null || newval === void 0) { + return val2; + } else if (typeof newval !== typeof val2 || newval !== val2) { + return newval; + } else if (this.options.trimValues) { + return parseValue(val2, this.options.parseTagValue, this.options.numberParseOptions); + } else { + const trimmedVal = val2.trim(); + if (trimmedVal === val2) { + return parseValue(val2, this.options.parseTagValue, this.options.numberParseOptions); + } else { + return val2; + } + } + } + } + } + function resolveNameSpace(tagname) { + if (this.options.removeNSPrefix) { + const tags = tagname.split(":"); + const prefix2 = tagname.charAt(0) === "/" ? "/" : ""; + if (tags[0] === "xmlns") { + return ""; + } + if (tags.length === 2) { + tagname = prefix2 + tags[1]; + } + } + return tagname; + } + var attrsRegx = new RegExp(`([^\\s=]+)\\s*(=\\s*(['"])([\\s\\S]*?)\\3)?`, "gm"); + function buildAttributesMap(attrStr, jPath, tagName) { + if (!this.options.ignoreAttributes && typeof attrStr === "string") { + const matches = util2.getAllMatches(attrStr, attrsRegx); + const len = matches.length; + const attrs = {}; + for (let i4 = 0; i4 < len; i4++) { + const attrName = this.resolveNameSpace(matches[i4][1]); + let oldVal = matches[i4][4]; + let aName = this.options.attributeNamePrefix + attrName; + if (attrName.length) { + if (this.options.transformAttributeName) { + aName = this.options.transformAttributeName(aName); + } + if (aName === "__proto__") aName = "#__proto__"; + if (oldVal !== void 0) { + if (this.options.trimValues) { + oldVal = oldVal.trim(); + } + oldVal = this.replaceEntitiesValue(oldVal); + const newVal = this.options.attributeValueProcessor(attrName, oldVal, jPath); + if (newVal === null || newVal === void 0) { + attrs[aName] = oldVal; + } else if (typeof newVal !== typeof oldVal || newVal !== oldVal) { + attrs[aName] = newVal; + } else { + attrs[aName] = parseValue( + oldVal, + this.options.parseAttributeValue, + this.options.numberParseOptions + ); + } + } else if (this.options.allowBooleanAttributes) { + attrs[aName] = true; + } + } + } + if (!Object.keys(attrs).length) { + return; + } + if (this.options.attributesGroupName) { + const attrCollection = {}; + attrCollection[this.options.attributesGroupName] = attrs; + return attrCollection; + } + return attrs; + } + } + var parseXml = function(xmlData) { + xmlData = xmlData.replace(/\r\n?/g, "\n"); + const xmlObj = new xmlNode("!xml"); + let currentNode = xmlObj; + let textData = ""; + let jPath = ""; + for (let i4 = 0; i4 < xmlData.length; i4++) { + const ch = xmlData[i4]; + if (ch === "<") { + if (xmlData[i4 + 1] === "/") { + const closeIndex = findClosingIndex(xmlData, ">", i4, "Closing Tag is not closed."); + let tagName = xmlData.substring(i4 + 2, closeIndex).trim(); + if (this.options.removeNSPrefix) { + const colonIndex = tagName.indexOf(":"); + if (colonIndex !== -1) { + tagName = tagName.substr(colonIndex + 1); + } + } + if (this.options.transformTagName) { + tagName = this.options.transformTagName(tagName); + } + if (currentNode) { + textData = this.saveTextToParentTag(textData, currentNode, jPath); + } + const lastTagName = jPath.substring(jPath.lastIndexOf(".") + 1); + if (tagName && this.options.unpairedTags.indexOf(tagName) !== -1) { + throw new Error(`Unpaired tag can not be used as closing tag: `); + } + let propIndex = 0; + if (lastTagName && this.options.unpairedTags.indexOf(lastTagName) !== -1) { + propIndex = jPath.lastIndexOf(".", jPath.lastIndexOf(".") - 1); + this.tagsNodeStack.pop(); + } else { + propIndex = jPath.lastIndexOf("."); + } + jPath = jPath.substring(0, propIndex); + currentNode = this.tagsNodeStack.pop(); + textData = ""; + i4 = closeIndex; + } else if (xmlData[i4 + 1] === "?") { + let tagData = readTagExp(xmlData, i4, false, "?>"); + if (!tagData) throw new Error("Pi Tag is not closed."); + textData = this.saveTextToParentTag(textData, currentNode, jPath); + if (this.options.ignoreDeclaration && tagData.tagName === "?xml" || this.options.ignorePiTags) { + } else { + const childNode = new xmlNode(tagData.tagName); + childNode.add(this.options.textNodeName, ""); + if (tagData.tagName !== tagData.tagExp && tagData.attrExpPresent) { + childNode[":@"] = this.buildAttributesMap(tagData.tagExp, jPath, tagData.tagName); + } + this.addChild(currentNode, childNode, jPath); + } + i4 = tagData.closeIndex + 1; + } else if (xmlData.substr(i4 + 1, 3) === "!--") { + const endIndex = findClosingIndex(xmlData, "-->", i4 + 4, "Comment is not closed."); + if (this.options.commentPropName) { + const comment = xmlData.substring(i4 + 4, endIndex - 2); + textData = this.saveTextToParentTag(textData, currentNode, jPath); + currentNode.add(this.options.commentPropName, [{ [this.options.textNodeName]: comment }]); + } + i4 = endIndex; + } else if (xmlData.substr(i4 + 1, 2) === "!D") { + const result = readDocType(xmlData, i4); + this.docTypeEntities = result.entities; + i4 = result.i; + } else if (xmlData.substr(i4 + 1, 2) === "![") { + const closeIndex = findClosingIndex(xmlData, "]]>", i4, "CDATA is not closed.") - 2; + const tagExp = xmlData.substring(i4 + 9, closeIndex); + textData = this.saveTextToParentTag(textData, currentNode, jPath); + let val2 = this.parseTextData(tagExp, currentNode.tagname, jPath, true, false, true, true); + if (val2 == void 0) val2 = ""; + if (this.options.cdataPropName) { + currentNode.add(this.options.cdataPropName, [{ [this.options.textNodeName]: tagExp }]); + } else { + currentNode.add(this.options.textNodeName, val2); + } + i4 = closeIndex + 2; + } else { + let result = readTagExp(xmlData, i4, this.options.removeNSPrefix); + let tagName = result.tagName; + const rawTagName = result.rawTagName; + let tagExp = result.tagExp; + let attrExpPresent = result.attrExpPresent; + let closeIndex = result.closeIndex; + if (this.options.transformTagName) { + tagName = this.options.transformTagName(tagName); + } + if (currentNode && textData) { + if (currentNode.tagname !== "!xml") { + textData = this.saveTextToParentTag(textData, currentNode, jPath, false); + } + } + const lastTag = currentNode; + if (lastTag && this.options.unpairedTags.indexOf(lastTag.tagname) !== -1) { + currentNode = this.tagsNodeStack.pop(); + jPath = jPath.substring(0, jPath.lastIndexOf(".")); + } + if (tagName !== xmlObj.tagname) { + jPath += jPath ? "." + tagName : tagName; + } + if (this.isItStopNode(this.options.stopNodes, jPath, tagName)) { + let tagContent = ""; + if (tagExp.length > 0 && tagExp.lastIndexOf("/") === tagExp.length - 1) { + if (tagName[tagName.length - 1] === "/") { + tagName = tagName.substr(0, tagName.length - 1); + jPath = jPath.substr(0, jPath.length - 1); + tagExp = tagName; + } else { + tagExp = tagExp.substr(0, tagExp.length - 1); + } + i4 = result.closeIndex; + } else if (this.options.unpairedTags.indexOf(tagName) !== -1) { + i4 = result.closeIndex; + } else { + const result2 = this.readStopNodeData(xmlData, rawTagName, closeIndex + 1); + if (!result2) throw new Error(`Unexpected end of ${rawTagName}`); + i4 = result2.i; + tagContent = result2.tagContent; + } + const childNode = new xmlNode(tagName); + if (tagName !== tagExp && attrExpPresent) { + childNode[":@"] = this.buildAttributesMap(tagExp, jPath, tagName); + } + if (tagContent) { + tagContent = this.parseTextData(tagContent, tagName, jPath, true, attrExpPresent, true, true); + } + jPath = jPath.substr(0, jPath.lastIndexOf(".")); + childNode.add(this.options.textNodeName, tagContent); + this.addChild(currentNode, childNode, jPath); + } else { + if (tagExp.length > 0 && tagExp.lastIndexOf("/") === tagExp.length - 1) { + if (tagName[tagName.length - 1] === "/") { + tagName = tagName.substr(0, tagName.length - 1); + jPath = jPath.substr(0, jPath.length - 1); + tagExp = tagName; + } else { + tagExp = tagExp.substr(0, tagExp.length - 1); + } + if (this.options.transformTagName) { + tagName = this.options.transformTagName(tagName); + } + const childNode = new xmlNode(tagName); + if (tagName !== tagExp && attrExpPresent) { + childNode[":@"] = this.buildAttributesMap(tagExp, jPath, tagName); + } + this.addChild(currentNode, childNode, jPath); + jPath = jPath.substr(0, jPath.lastIndexOf(".")); + } else { + const childNode = new xmlNode(tagName); + this.tagsNodeStack.push(currentNode); + if (tagName !== tagExp && attrExpPresent) { + childNode[":@"] = this.buildAttributesMap(tagExp, jPath, tagName); + } + this.addChild(currentNode, childNode, jPath); + currentNode = childNode; + } + textData = ""; + i4 = closeIndex; + } + } + } else { + textData += xmlData[i4]; + } + } + return xmlObj.child; + }; + function addChild(currentNode, childNode, jPath) { + const result = this.options.updateTag(childNode.tagname, jPath, childNode[":@"]); + if (result === false) { + } else if (typeof result === "string") { + childNode.tagname = result; + currentNode.addChild(childNode); + } else { + currentNode.addChild(childNode); + } + } + var replaceEntitiesValue = function(val2) { + if (this.options.processEntities) { + for (let entityName2 in this.docTypeEntities) { + const entity = this.docTypeEntities[entityName2]; + val2 = val2.replace(entity.regx, entity.val); + } + for (let entityName2 in this.lastEntities) { + const entity = this.lastEntities[entityName2]; + val2 = val2.replace(entity.regex, entity.val); + } + if (this.options.htmlEntities) { + for (let entityName2 in this.htmlEntities) { + const entity = this.htmlEntities[entityName2]; + val2 = val2.replace(entity.regex, entity.val); + } + } + val2 = val2.replace(this.ampEntity.regex, this.ampEntity.val); + } + return val2; + }; + function saveTextToParentTag(textData, currentNode, jPath, isLeafNode) { + if (textData) { + if (isLeafNode === void 0) isLeafNode = Object.keys(currentNode.child).length === 0; + textData = this.parseTextData( + textData, + currentNode.tagname, + jPath, + false, + currentNode[":@"] ? Object.keys(currentNode[":@"]).length !== 0 : false, + isLeafNode + ); + if (textData !== void 0 && textData !== "") + currentNode.add(this.options.textNodeName, textData); + textData = ""; + } + return textData; + } + function isItStopNode(stopNodes, jPath, currentTagName) { + const allNodesExp = "*." + currentTagName; + for (const stopNodePath in stopNodes) { + const stopNodeExp = stopNodes[stopNodePath]; + if (allNodesExp === stopNodeExp || jPath === stopNodeExp) return true; + } + return false; + } + function tagExpWithClosingIndex(xmlData, i4, closingChar = ">") { + let attrBoundary; + let tagExp = ""; + for (let index6 = i4; index6 < xmlData.length; index6++) { + let ch = xmlData[index6]; + if (attrBoundary) { + if (ch === attrBoundary) attrBoundary = ""; + } else if (ch === '"' || ch === "'") { + attrBoundary = ch; + } else if (ch === closingChar[0]) { + if (closingChar[1]) { + if (xmlData[index6 + 1] === closingChar[1]) { + return { + data: tagExp, + index: index6 + }; + } + } else { + return { + data: tagExp, + index: index6 + }; + } + } else if (ch === " ") { + ch = " "; + } + tagExp += ch; + } + } + function findClosingIndex(xmlData, str, i4, errMsg) { + const closingIndex = xmlData.indexOf(str, i4); + if (closingIndex === -1) { + throw new Error(errMsg); + } else { + return closingIndex + str.length - 1; + } + } + function readTagExp(xmlData, i4, removeNSPrefix, closingChar = ">") { + const result = tagExpWithClosingIndex(xmlData, i4 + 1, closingChar); + if (!result) return; + let tagExp = result.data; + const closeIndex = result.index; + const separatorIndex = tagExp.search(/\s/); + let tagName = tagExp; + let attrExpPresent = true; + if (separatorIndex !== -1) { + tagName = tagExp.substring(0, separatorIndex); + tagExp = tagExp.substring(separatorIndex + 1).trimStart(); + } + const rawTagName = tagName; + if (removeNSPrefix) { + const colonIndex = tagName.indexOf(":"); + if (colonIndex !== -1) { + tagName = tagName.substr(colonIndex + 1); + attrExpPresent = tagName !== result.data.substr(colonIndex + 1); + } + } + return { + tagName, + tagExp, + closeIndex, + attrExpPresent, + rawTagName + }; + } + function readStopNodeData(xmlData, tagName, i4) { + const startIndex = i4; + let openTagCount = 1; + for (; i4 < xmlData.length; i4++) { + if (xmlData[i4] === "<") { + if (xmlData[i4 + 1] === "/") { + const closeIndex = findClosingIndex(xmlData, ">", i4, `${tagName} is not closed`); + let closeTagName = xmlData.substring(i4 + 2, closeIndex).trim(); + if (closeTagName === tagName) { + openTagCount--; + if (openTagCount === 0) { + return { + tagContent: xmlData.substring(startIndex, i4), + i: closeIndex + }; + } + } + i4 = closeIndex; + } else if (xmlData[i4 + 1] === "?") { + const closeIndex = findClosingIndex(xmlData, "?>", i4 + 1, "StopNode is not closed."); + i4 = closeIndex; + } else if (xmlData.substr(i4 + 1, 3) === "!--") { + const closeIndex = findClosingIndex(xmlData, "-->", i4 + 3, "StopNode is not closed."); + i4 = closeIndex; + } else if (xmlData.substr(i4 + 1, 2) === "![") { + const closeIndex = findClosingIndex(xmlData, "]]>", i4, "StopNode is not closed.") - 2; + i4 = closeIndex; + } else { + const tagData = readTagExp(xmlData, i4, ">"); + if (tagData) { + const openTagName = tagData && tagData.tagName; + if (openTagName === tagName && tagData.tagExp[tagData.tagExp.length - 1] !== "/") { + openTagCount++; + } + i4 = tagData.closeIndex; + } + } + } + } + } + function parseValue(val2, shouldParse, options) { + if (shouldParse && typeof val2 === "string") { + const newval = val2.trim(); + if (newval === "true") return true; + else if (newval === "false") return false; + else return toNumber(val2, options); + } else { + if (util2.isExist(val2)) { + return val2; + } else { + return ""; + } + } + } + module2.exports = OrderedObjParser; + } +}); + +// ../node_modules/.pnpm/fast-xml-parser@4.4.1/node_modules/fast-xml-parser/src/xmlparser/node2json.js +var require_node2json = __commonJS({ + "../node_modules/.pnpm/fast-xml-parser@4.4.1/node_modules/fast-xml-parser/src/xmlparser/node2json.js"(exports2) { + "use strict"; + function prettify(node, options) { + return compress2(node, options); + } + function compress2(arr, options, jPath) { + let text; + const compressedObj = {}; + for (let i4 = 0; i4 < arr.length; i4++) { + const tagObj = arr[i4]; + const property = propName(tagObj); + let newJpath = ""; + if (jPath === void 0) newJpath = property; + else newJpath = jPath + "." + property; + if (property === options.textNodeName) { + if (text === void 0) text = tagObj[property]; + else text += "" + tagObj[property]; + } else if (property === void 0) { + continue; + } else if (tagObj[property]) { + let val2 = compress2(tagObj[property], options, newJpath); + const isLeaf = isLeafTag(val2, options); + if (tagObj[":@"]) { + assignAttributes(val2, tagObj[":@"], newJpath, options); + } else if (Object.keys(val2).length === 1 && val2[options.textNodeName] !== void 0 && !options.alwaysCreateTextNode) { + val2 = val2[options.textNodeName]; + } else if (Object.keys(val2).length === 0) { + if (options.alwaysCreateTextNode) val2[options.textNodeName] = ""; + else val2 = ""; + } + if (compressedObj[property] !== void 0 && compressedObj.hasOwnProperty(property)) { + if (!Array.isArray(compressedObj[property])) { + compressedObj[property] = [compressedObj[property]]; + } + compressedObj[property].push(val2); + } else { + if (options.isArray(property, newJpath, isLeaf)) { + compressedObj[property] = [val2]; + } else { + compressedObj[property] = val2; + } + } + } + } + if (typeof text === "string") { + if (text.length > 0) compressedObj[options.textNodeName] = text; + } else if (text !== void 0) compressedObj[options.textNodeName] = text; + return compressedObj; + } + function propName(obj) { + const keys = Object.keys(obj); + for (let i4 = 0; i4 < keys.length; i4++) { + const key = keys[i4]; + if (key !== ":@") return key; + } + } + function assignAttributes(obj, attrMap, jpath, options) { + if (attrMap) { + const keys = Object.keys(attrMap); + const len = keys.length; + for (let i4 = 0; i4 < len; i4++) { + const atrrName = keys[i4]; + if (options.isArray(atrrName, jpath + "." + atrrName, true, true)) { + obj[atrrName] = [attrMap[atrrName]]; + } else { + obj[atrrName] = attrMap[atrrName]; + } + } + } + } + function isLeafTag(obj, options) { + const { textNodeName } = options; + const propCount = Object.keys(obj).length; + if (propCount === 0) { + return true; + } + if (propCount === 1 && (obj[textNodeName] || typeof obj[textNodeName] === "boolean" || obj[textNodeName] === 0)) { + return true; + } + return false; + } + exports2.prettify = prettify; + } +}); + +// ../node_modules/.pnpm/fast-xml-parser@4.4.1/node_modules/fast-xml-parser/src/xmlparser/XMLParser.js +var require_XMLParser = __commonJS({ + "../node_modules/.pnpm/fast-xml-parser@4.4.1/node_modules/fast-xml-parser/src/xmlparser/XMLParser.js"(exports2, module2) { + var { buildOptions } = require_OptionsBuilder(); + var OrderedObjParser = require_OrderedObjParser(); + var { prettify } = require_node2json(); + var validator2 = require_validator(); + var XMLParser2 = class { + constructor(options) { + this.externalEntities = {}; + this.options = buildOptions(options); + } + /** + * Parse XML dats to JS object + * @param {string|Buffer} xmlData + * @param {boolean|Object} validationOption + */ + parse(xmlData, validationOption) { + if (typeof xmlData === "string") { + } else if (xmlData.toString) { + xmlData = xmlData.toString(); + } else { + throw new Error("XML data is accepted in String or Bytes[] form."); + } + if (validationOption) { + if (validationOption === true) validationOption = {}; + const result = validator2.validate(xmlData, validationOption); + if (result !== true) { + throw Error(`${result.err.msg}:${result.err.line}:${result.err.col}`); + } + } + const orderedObjParser = new OrderedObjParser(this.options); + orderedObjParser.addExternalEntities(this.externalEntities); + const orderedResult = orderedObjParser.parseXml(xmlData); + if (this.options.preserveOrder || orderedResult === void 0) return orderedResult; + else return prettify(orderedResult, this.options); + } + /** + * Add Entity which is not by default supported by this library + * @param {string} key + * @param {string} value + */ + addEntity(key, value) { + if (value.indexOf("&") !== -1) { + throw new Error("Entity value can't have '&'"); + } else if (key.indexOf("&") !== -1 || key.indexOf(";") !== -1) { + throw new Error("An entity must be set without '&' and ';'. Eg. use '#xD' for ' '"); + } else if (value === "&") { + throw new Error("An entity with value '&' is not permitted"); + } else { + this.externalEntities[key] = value; + } + } + }; + module2.exports = XMLParser2; + } +}); + +// ../node_modules/.pnpm/fast-xml-parser@4.4.1/node_modules/fast-xml-parser/src/xmlbuilder/orderedJs2Xml.js +var require_orderedJs2Xml = __commonJS({ + "../node_modules/.pnpm/fast-xml-parser@4.4.1/node_modules/fast-xml-parser/src/xmlbuilder/orderedJs2Xml.js"(exports2, module2) { + var EOL = "\n"; + function toXml(jArray, options) { + let indentation = ""; + if (options.format && options.indentBy.length > 0) { + indentation = EOL; + } + return arrToStr(jArray, options, "", indentation); + } + function arrToStr(arr, options, jPath, indentation) { + let xmlStr = ""; + let isPreviousElementTag = false; + for (let i4 = 0; i4 < arr.length; i4++) { + const tagObj = arr[i4]; + const tagName = propName(tagObj); + if (tagName === void 0) continue; + let newJPath = ""; + if (jPath.length === 0) newJPath = tagName; + else newJPath = `${jPath}.${tagName}`; + if (tagName === options.textNodeName) { + let tagText = tagObj[tagName]; + if (!isStopNode(newJPath, options)) { + tagText = options.tagValueProcessor(tagName, tagText); + tagText = replaceEntitiesValue(tagText, options); + } + if (isPreviousElementTag) { + xmlStr += indentation; + } + xmlStr += tagText; + isPreviousElementTag = false; + continue; + } else if (tagName === options.cdataPropName) { + if (isPreviousElementTag) { + xmlStr += indentation; + } + xmlStr += ``; + isPreviousElementTag = false; + continue; + } else if (tagName === options.commentPropName) { + xmlStr += indentation + ``; + isPreviousElementTag = true; + continue; + } else if (tagName[0] === "?") { + const attStr2 = attr_to_str(tagObj[":@"], options); + const tempInd = tagName === "?xml" ? "" : indentation; + let piTextNodeName = tagObj[tagName][0][options.textNodeName]; + piTextNodeName = piTextNodeName.length !== 0 ? " " + piTextNodeName : ""; + xmlStr += tempInd + `<${tagName}${piTextNodeName}${attStr2}?>`; + isPreviousElementTag = true; + continue; + } + let newIdentation = indentation; + if (newIdentation !== "") { + newIdentation += options.indentBy; + } + const attStr = attr_to_str(tagObj[":@"], options); + const tagStart = indentation + `<${tagName}${attStr}`; + const tagValue = arrToStr(tagObj[tagName], options, newJPath, newIdentation); + if (options.unpairedTags.indexOf(tagName) !== -1) { + if (options.suppressUnpairedNode) xmlStr += tagStart + ">"; + else xmlStr += tagStart + "/>"; + } else if ((!tagValue || tagValue.length === 0) && options.suppressEmptyNode) { + xmlStr += tagStart + "/>"; + } else if (tagValue && tagValue.endsWith(">")) { + xmlStr += tagStart + `>${tagValue}${indentation}`; + } else { + xmlStr += tagStart + ">"; + if (tagValue && indentation !== "" && (tagValue.includes("/>") || tagValue.includes("`; + } + isPreviousElementTag = true; + } + return xmlStr; + } + function propName(obj) { + const keys = Object.keys(obj); + for (let i4 = 0; i4 < keys.length; i4++) { + const key = keys[i4]; + if (!obj.hasOwnProperty(key)) continue; + if (key !== ":@") return key; + } + } + function attr_to_str(attrMap, options) { + let attrStr = ""; + if (attrMap && !options.ignoreAttributes) { + for (let attr in attrMap) { + if (!attrMap.hasOwnProperty(attr)) continue; + let attrVal = options.attributeValueProcessor(attr, attrMap[attr]); + attrVal = replaceEntitiesValue(attrVal, options); + if (attrVal === true && options.suppressBooleanAttributes) { + attrStr += ` ${attr.substr(options.attributeNamePrefix.length)}`; + } else { + attrStr += ` ${attr.substr(options.attributeNamePrefix.length)}="${attrVal}"`; + } + } + } + return attrStr; + } + function isStopNode(jPath, options) { + jPath = jPath.substr(0, jPath.length - options.textNodeName.length - 1); + let tagName = jPath.substr(jPath.lastIndexOf(".") + 1); + for (let index6 in options.stopNodes) { + if (options.stopNodes[index6] === jPath || options.stopNodes[index6] === "*." + tagName) return true; + } + return false; + } + function replaceEntitiesValue(textValue, options) { + if (textValue && textValue.length > 0 && options.processEntities) { + for (let i4 = 0; i4 < options.entities.length; i4++) { + const entity = options.entities[i4]; + textValue = textValue.replace(entity.regex, entity.val); + } + } + return textValue; + } + module2.exports = toXml; + } +}); + +// ../node_modules/.pnpm/fast-xml-parser@4.4.1/node_modules/fast-xml-parser/src/xmlbuilder/json2xml.js +var require_json2xml = __commonJS({ + "../node_modules/.pnpm/fast-xml-parser@4.4.1/node_modules/fast-xml-parser/src/xmlbuilder/json2xml.js"(exports2, module2) { + "use strict"; + var buildFromOrderedJs = require_orderedJs2Xml(); + var defaultOptions = { + attributeNamePrefix: "@_", + attributesGroupName: false, + textNodeName: "#text", + ignoreAttributes: true, + cdataPropName: false, + format: false, + indentBy: " ", + suppressEmptyNode: false, + suppressUnpairedNode: true, + suppressBooleanAttributes: true, + tagValueProcessor: function(key, a3) { + return a3; + }, + attributeValueProcessor: function(attrName, a3) { + return a3; + }, + preserveOrder: false, + commentPropName: false, + unpairedTags: [], + entities: [ + { regex: new RegExp("&", "g"), val: "&" }, + //it must be on top + { regex: new RegExp(">", "g"), val: ">" }, + { regex: new RegExp("<", "g"), val: "<" }, + { regex: new RegExp("'", "g"), val: "'" }, + { regex: new RegExp('"', "g"), val: """ } + ], + processEntities: true, + stopNodes: [], + // transformTagName: false, + // transformAttributeName: false, + oneListGroup: false + }; + function Builder(options) { + this.options = Object.assign({}, defaultOptions, options); + if (this.options.ignoreAttributes || this.options.attributesGroupName) { + this.isAttribute = function() { + return false; + }; + } else { + this.attrPrefixLen = this.options.attributeNamePrefix.length; + this.isAttribute = isAttribute; + } + this.processTextOrObjNode = processTextOrObjNode; + if (this.options.format) { + this.indentate = indentate; + this.tagEndChar = ">\n"; + this.newLine = "\n"; + } else { + this.indentate = function() { + return ""; + }; + this.tagEndChar = ">"; + this.newLine = ""; + } + } + Builder.prototype.build = function(jObj) { + if (this.options.preserveOrder) { + return buildFromOrderedJs(jObj, this.options); + } else { + if (Array.isArray(jObj) && this.options.arrayNodeName && this.options.arrayNodeName.length > 1) { + jObj = { + [this.options.arrayNodeName]: jObj + }; + } + return this.j2x(jObj, 0).val; + } + }; + Builder.prototype.j2x = function(jObj, level) { + let attrStr = ""; + let val2 = ""; + for (let key in jObj) { + if (!Object.prototype.hasOwnProperty.call(jObj, key)) continue; + if (typeof jObj[key] === "undefined") { + if (this.isAttribute(key)) { + val2 += ""; + } + } else if (jObj[key] === null) { + if (this.isAttribute(key)) { + val2 += ""; + } else if (key[0] === "?") { + val2 += this.indentate(level) + "<" + key + "?" + this.tagEndChar; + } else { + val2 += this.indentate(level) + "<" + key + "/" + this.tagEndChar; + } + } else if (jObj[key] instanceof Date) { + val2 += this.buildTextValNode(jObj[key], key, "", level); + } else if (typeof jObj[key] !== "object") { + const attr = this.isAttribute(key); + if (attr) { + attrStr += this.buildAttrPairStr(attr, "" + jObj[key]); + } else { + if (key === this.options.textNodeName) { + let newval = this.options.tagValueProcessor(key, "" + jObj[key]); + val2 += this.replaceEntitiesValue(newval); + } else { + val2 += this.buildTextValNode(jObj[key], key, "", level); + } + } + } else if (Array.isArray(jObj[key])) { + const arrLen = jObj[key].length; + let listTagVal = ""; + let listTagAttr = ""; + for (let j3 = 0; j3 < arrLen; j3++) { + const item = jObj[key][j3]; + if (typeof item === "undefined") { + } else if (item === null) { + if (key[0] === "?") val2 += this.indentate(level) + "<" + key + "?" + this.tagEndChar; + else val2 += this.indentate(level) + "<" + key + "/" + this.tagEndChar; + } else if (typeof item === "object") { + if (this.options.oneListGroup) { + const result = this.j2x(item, level + 1); + listTagVal += result.val; + if (this.options.attributesGroupName && item.hasOwnProperty(this.options.attributesGroupName)) { + listTagAttr += result.attrStr; + } + } else { + listTagVal += this.processTextOrObjNode(item, key, level); + } + } else { + if (this.options.oneListGroup) { + let textValue = this.options.tagValueProcessor(key, item); + textValue = this.replaceEntitiesValue(textValue); + listTagVal += textValue; + } else { + listTagVal += this.buildTextValNode(item, key, "", level); + } + } + } + if (this.options.oneListGroup) { + listTagVal = this.buildObjectNode(listTagVal, key, listTagAttr, level); + } + val2 += listTagVal; + } else { + if (this.options.attributesGroupName && key === this.options.attributesGroupName) { + const Ks = Object.keys(jObj[key]); + const L = Ks.length; + for (let j3 = 0; j3 < L; j3++) { + attrStr += this.buildAttrPairStr(Ks[j3], "" + jObj[key][Ks[j3]]); + } + } else { + val2 += this.processTextOrObjNode(jObj[key], key, level); + } + } + } + return { attrStr, val: val2 }; + }; + Builder.prototype.buildAttrPairStr = function(attrName, val2) { + val2 = this.options.attributeValueProcessor(attrName, "" + val2); + val2 = this.replaceEntitiesValue(val2); + if (this.options.suppressBooleanAttributes && val2 === "true") { + return " " + attrName; + } else return " " + attrName + '="' + val2 + '"'; + }; + function processTextOrObjNode(object, key, level) { + const result = this.j2x(object, level + 1); + if (object[this.options.textNodeName] !== void 0 && Object.keys(object).length === 1) { + return this.buildTextValNode(object[this.options.textNodeName], key, result.attrStr, level); + } else { + return this.buildObjectNode(result.val, key, result.attrStr, level); + } + } + Builder.prototype.buildObjectNode = function(val2, key, attrStr, level) { + if (val2 === "") { + if (key[0] === "?") return this.indentate(level) + "<" + key + attrStr + "?" + this.tagEndChar; + else { + return this.indentate(level) + "<" + key + attrStr + this.closeTag(key) + this.tagEndChar; + } + } else { + let tagEndExp = "" + val2 + tagEndExp; + } else if (this.options.commentPropName !== false && key === this.options.commentPropName && piClosingChar.length === 0) { + return this.indentate(level) + `` + this.newLine; + } else { + return this.indentate(level) + "<" + key + attrStr + piClosingChar + this.tagEndChar + val2 + this.indentate(level) + tagEndExp; + } + } + }; + Builder.prototype.closeTag = function(key) { + let closeTag = ""; + if (this.options.unpairedTags.indexOf(key) !== -1) { + if (!this.options.suppressUnpairedNode) closeTag = "/"; + } else if (this.options.suppressEmptyNode) { + closeTag = "/"; + } else { + closeTag = `>` + this.newLine; + } else if (this.options.commentPropName !== false && key === this.options.commentPropName) { + return this.indentate(level) + `` + this.newLine; + } else if (key[0] === "?") { + return this.indentate(level) + "<" + key + attrStr + "?" + this.tagEndChar; + } else { + let textValue = this.options.tagValueProcessor(key, val2); + textValue = this.replaceEntitiesValue(textValue); + if (textValue === "") { + return this.indentate(level) + "<" + key + attrStr + this.closeTag(key) + this.tagEndChar; + } else { + return this.indentate(level) + "<" + key + attrStr + ">" + textValue + " 0 && this.options.processEntities) { + for (let i4 = 0; i4 < this.options.entities.length; i4++) { + const entity = this.options.entities[i4]; + textValue = textValue.replace(entity.regex, entity.val); + } + } + return textValue; + }; + function indentate(level) { + return this.options.indentBy.repeat(level); + } + function isAttribute(name) { + if (name.startsWith(this.options.attributeNamePrefix) && name !== this.options.textNodeName) { + return name.substr(this.attrPrefixLen); + } else { + return false; + } + } + module2.exports = Builder; + } +}); + +// ../node_modules/.pnpm/fast-xml-parser@4.4.1/node_modules/fast-xml-parser/src/fxp.js +var require_fxp = __commonJS({ + "../node_modules/.pnpm/fast-xml-parser@4.4.1/node_modules/fast-xml-parser/src/fxp.js"(exports2, module2) { + "use strict"; + var validator2 = require_validator(); + var XMLParser2 = require_XMLParser(); + var XMLBuilder = require_json2xml(); + module2.exports = { + XMLParser: XMLParser2, + XMLValidator: validator2, + XMLBuilder + }; + } +}); + +// ../node_modules/.pnpm/@aws-sdk+core@3.816.0/node_modules/@aws-sdk/core/dist-es/submodules/protocols/xml/parseXmlBody.js +var import_smithy_client3, import_fast_xml_parser, parseXmlBody, parseXmlErrorBody, loadRestXmlErrorCode; +var init_parseXmlBody = __esm({ + "../node_modules/.pnpm/@aws-sdk+core@3.816.0/node_modules/@aws-sdk/core/dist-es/submodules/protocols/xml/parseXmlBody.js"() { + import_smithy_client3 = __toESM(require_dist_cjs23()); + import_fast_xml_parser = __toESM(require_fxp()); + init_common2(); + parseXmlBody = (streamBody, context) => collectBodyString(streamBody, context).then((encoded) => { + if (encoded.length) { + const parser = new import_fast_xml_parser.XMLParser({ + attributeNamePrefix: "", + htmlEntities: true, + ignoreAttributes: false, + ignoreDeclaration: true, + parseTagValue: false, + trimValues: false, + tagValueProcessor: (_3, val2) => val2.trim() === "" && val2.includes("\n") ? "" : void 0 + }); + parser.addEntity("#xD", "\r"); + parser.addEntity("#10", "\n"); + let parsedObj; + try { + parsedObj = parser.parse(encoded, true); + } catch (e4) { + if (e4 && typeof e4 === "object") { + Object.defineProperty(e4, "$responseBodyText", { + value: encoded + }); + } + throw e4; + } + const textNodeName = "#text"; + const key = Object.keys(parsedObj)[0]; + const parsedObjToReturn = parsedObj[key]; + if (parsedObjToReturn[textNodeName]) { + parsedObjToReturn[key] = parsedObjToReturn[textNodeName]; + delete parsedObjToReturn[textNodeName]; + } + return (0, import_smithy_client3.getValueFromTextNode)(parsedObjToReturn); + } + return {}; + }); + parseXmlErrorBody = async (errorBody, context) => { + const value = await parseXmlBody(errorBody, context); + if (value.Error) { + value.Error.message = value.Error.message ?? value.Error.Message; + } + return value; + }; + loadRestXmlErrorCode = (output, data) => { + var _a2; + if (((_a2 = data == null ? void 0 : data.Error) == null ? void 0 : _a2.Code) !== void 0) { + return data.Error.Code; + } + if ((data == null ? void 0 : data.Code) !== void 0) { + return data.Code; + } + if (output.statusCode == 404) { + return "NotFound"; + } + }; + } +}); + +// ../node_modules/.pnpm/@aws-sdk+core@3.816.0/node_modules/@aws-sdk/core/dist-es/submodules/protocols/index.js +var init_protocols2 = __esm({ + "../node_modules/.pnpm/@aws-sdk+core@3.816.0/node_modules/@aws-sdk/core/dist-es/submodules/protocols/index.js"() { + init_coercing_serializers(); + init_awsExpectUnion(); + init_parseJsonBody(); + init_parseXmlBody(); + } +}); + +// ../node_modules/.pnpm/@aws-sdk+core@3.816.0/node_modules/@aws-sdk/core/dist-es/index.js +var dist_es_exports2 = {}; +__export(dist_es_exports2, { + AWSSDKSigV4Signer: () => AWSSDKSigV4Signer, + AwsSdkSigV4ASigner: () => AwsSdkSigV4ASigner, + AwsSdkSigV4Signer: () => AwsSdkSigV4Signer, + NODE_AUTH_SCHEME_PREFERENCE_OPTIONS: () => NODE_AUTH_SCHEME_PREFERENCE_OPTIONS, + NODE_SIGV4A_CONFIG_OPTIONS: () => NODE_SIGV4A_CONFIG_OPTIONS, + _toBool: () => _toBool, + _toNum: () => _toNum, + _toStr: () => _toStr, + awsExpectUnion: () => awsExpectUnion, + emitWarningIfUnsupportedVersion: () => emitWarningIfUnsupportedVersion, + getBearerTokenEnvKey: () => getBearerTokenEnvKey, + loadRestJsonErrorCode: () => loadRestJsonErrorCode, + loadRestXmlErrorCode: () => loadRestXmlErrorCode, + parseJsonBody: () => parseJsonBody, + parseJsonErrorBody: () => parseJsonErrorBody, + parseXmlBody: () => parseXmlBody, + parseXmlErrorBody: () => parseXmlErrorBody, + resolveAWSSDKSigV4Config: () => resolveAWSSDKSigV4Config, + resolveAwsSdkSigV4AConfig: () => resolveAwsSdkSigV4AConfig, + resolveAwsSdkSigV4Config: () => resolveAwsSdkSigV4Config, + setCredentialFeature: () => setCredentialFeature, + setFeature: () => setFeature2, + state: () => state, + validateSigningProperties: () => validateSigningProperties +}); +var init_dist_es2 = __esm({ + "../node_modules/.pnpm/@aws-sdk+core@3.816.0/node_modules/@aws-sdk/core/dist-es/index.js"() { + init_client(); + init_httpAuthSchemes2(); + init_protocols2(); + } +}); + +// ../node_modules/.pnpm/@aws-sdk+middleware-user-agent@3.816.0/node_modules/@aws-sdk/middleware-user-agent/dist-cjs/index.js +var require_dist_cjs24 = __commonJS({ + "../node_modules/.pnpm/@aws-sdk+middleware-user-agent@3.816.0/node_modules/@aws-sdk/middleware-user-agent/dist-cjs/index.js"(exports2, module2) { + "use strict"; + var __defProp3 = Object.defineProperty; + var __getOwnPropDesc3 = Object.getOwnPropertyDescriptor; + var __getOwnPropNames3 = Object.getOwnPropertyNames; + var __hasOwnProp3 = Object.prototype.hasOwnProperty; + var __name = (target, value) => __defProp3(target, "name", { value, configurable: true }); + var __export2 = (target, all) => { + for (var name in all) + __defProp3(target, name, { get: all[name], enumerable: true }); + }; + var __copyProps3 = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames3(from)) + if (!__hasOwnProp3.call(to, key) && key !== except) + __defProp3(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc3(from, key)) || desc.enumerable }); + } + return to; + }; + var __toCommonJS2 = (mod) => __copyProps3(__defProp3({}, "__esModule", { value: true }), mod); + var index_exports = {}; + __export2(index_exports, { + DEFAULT_UA_APP_ID: () => DEFAULT_UA_APP_ID, + getUserAgentMiddlewareOptions: () => getUserAgentMiddlewareOptions, + getUserAgentPlugin: () => getUserAgentPlugin3, + resolveUserAgentConfig: () => resolveUserAgentConfig3, + userAgentMiddleware: () => userAgentMiddleware + }); + module2.exports = __toCommonJS2(index_exports); + var import_core17 = (init_dist_es(), __toCommonJS(dist_es_exports)); + var DEFAULT_UA_APP_ID = void 0; + function isValidUserAgentAppId(appId) { + if (appId === void 0) { + return true; + } + return typeof appId === "string" && appId.length <= 50; + } + __name(isValidUserAgentAppId, "isValidUserAgentAppId"); + function resolveUserAgentConfig3(input) { + const normalizedAppIdProvider = (0, import_core17.normalizeProvider)(input.userAgentAppId ?? DEFAULT_UA_APP_ID); + const { customUserAgent } = input; + return Object.assign(input, { + customUserAgent: typeof customUserAgent === "string" ? [[customUserAgent]] : customUserAgent, + userAgentAppId: /* @__PURE__ */ __name(async () => { + var _a2, _b; + const appId = await normalizedAppIdProvider(); + if (!isValidUserAgentAppId(appId)) { + const logger3 = ((_b = (_a2 = input.logger) == null ? void 0 : _a2.constructor) == null ? void 0 : _b.name) === "NoOpLogger" || !input.logger ? console : input.logger; + if (typeof appId !== "string") { + logger3 == null ? void 0 : logger3.warn("userAgentAppId must be a string or undefined."); + } else if (appId.length > 50) { + logger3 == null ? void 0 : logger3.warn("The provided userAgentAppId exceeds the maximum length of 50 characters."); + } + } + return appId; + }, "userAgentAppId") + }); + } + __name(resolveUserAgentConfig3, "resolveUserAgentConfig"); + var import_util_endpoints5 = require_dist_cjs19(); + var import_protocol_http15 = require_dist_cjs2(); + var import_core22 = (init_dist_es2(), __toCommonJS(dist_es_exports2)); + var ACCOUNT_ID_ENDPOINT_REGEX = /\d{12}\.ddb/; + async function checkFeatures(context, config, args) { + var _a2, _b, _c, _d, _e, _f, _g; + const request = args.request; + if (((_a2 = request == null ? void 0 : request.headers) == null ? void 0 : _a2["smithy-protocol"]) === "rpc-v2-cbor") { + (0, import_core22.setFeature)(context, "PROTOCOL_RPC_V2_CBOR", "M"); + } + if (typeof config.retryStrategy === "function") { + const retryStrategy = await config.retryStrategy(); + if (typeof retryStrategy.acquireInitialRetryToken === "function") { + if ((_c = (_b = retryStrategy.constructor) == null ? void 0 : _b.name) == null ? void 0 : _c.includes("Adaptive")) { + (0, import_core22.setFeature)(context, "RETRY_MODE_ADAPTIVE", "F"); + } else { + (0, import_core22.setFeature)(context, "RETRY_MODE_STANDARD", "E"); + } + } else { + (0, import_core22.setFeature)(context, "RETRY_MODE_LEGACY", "D"); + } + } + if (typeof config.accountIdEndpointMode === "function") { + const endpointV2 = context.endpointV2; + if (String((_d = endpointV2 == null ? void 0 : endpointV2.url) == null ? void 0 : _d.hostname).match(ACCOUNT_ID_ENDPOINT_REGEX)) { + (0, import_core22.setFeature)(context, "ACCOUNT_ID_ENDPOINT", "O"); + } + switch (await ((_e = config.accountIdEndpointMode) == null ? void 0 : _e.call(config))) { + case "disabled": + (0, import_core22.setFeature)(context, "ACCOUNT_ID_MODE_DISABLED", "Q"); + break; + case "preferred": + (0, import_core22.setFeature)(context, "ACCOUNT_ID_MODE_PREFERRED", "P"); + break; + case "required": + (0, import_core22.setFeature)(context, "ACCOUNT_ID_MODE_REQUIRED", "R"); + break; + } + } + const identity = (_g = (_f = context.__smithy_context) == null ? void 0 : _f.selectedHttpAuthScheme) == null ? void 0 : _g.identity; + if (identity == null ? void 0 : identity.$source) { + const credentials2 = identity; + if (credentials2.accountId) { + (0, import_core22.setFeature)(context, "RESOLVED_ACCOUNT_ID", "T"); + } + for (const [key, value] of Object.entries(credentials2.$source ?? {})) { + (0, import_core22.setFeature)(context, key, value); + } + } + } + __name(checkFeatures, "checkFeatures"); + var USER_AGENT = "user-agent"; + var X_AMZ_USER_AGENT = "x-amz-user-agent"; + var SPACE2 = " "; + var UA_NAME_SEPARATOR = "/"; + var UA_NAME_ESCAPE_REGEX = /[^\!\$\%\&\'\*\+\-\.\^\_\`\|\~\d\w]/g; + var UA_VALUE_ESCAPE_REGEX = /[^\!\$\%\&\'\*\+\-\.\^\_\`\|\~\d\w\#]/g; + var UA_ESCAPE_CHAR = "-"; + var BYTE_LIMIT = 1024; + function encodeFeatures(features) { + let buffer = ""; + for (const key in features) { + const val2 = features[key]; + if (buffer.length + val2.length + 1 <= BYTE_LIMIT) { + if (buffer.length) { + buffer += "," + val2; + } else { + buffer += val2; + } + continue; + } + break; + } + return buffer; + } + __name(encodeFeatures, "encodeFeatures"); + var userAgentMiddleware = /* @__PURE__ */ __name((options) => (next, context) => async (args) => { + var _a2, _b, _c, _d; + const { request } = args; + if (!import_protocol_http15.HttpRequest.isInstance(request)) { + return next(args); + } + const { headers } = request; + const userAgent = ((_a2 = context == null ? void 0 : context.userAgent) == null ? void 0 : _a2.map(escapeUserAgent)) || []; + const defaultUserAgent = (await options.defaultUserAgentProvider()).map(escapeUserAgent); + await checkFeatures(context, options, args); + const awsContext = context; + defaultUserAgent.push( + `m/${encodeFeatures( + Object.assign({}, (_b = context.__smithy_context) == null ? void 0 : _b.features, (_c = awsContext.__aws_sdk_context) == null ? void 0 : _c.features) + )}` + ); + const customUserAgent = ((_d = options == null ? void 0 : options.customUserAgent) == null ? void 0 : _d.map(escapeUserAgent)) || []; + const appId = await options.userAgentAppId(); + if (appId) { + defaultUserAgent.push(escapeUserAgent([`app/${appId}`])); + } + const prefix2 = (0, import_util_endpoints5.getUserAgentPrefix)(); + const sdkUserAgentValue = (prefix2 ? [prefix2] : []).concat([...defaultUserAgent, ...userAgent, ...customUserAgent]).join(SPACE2); + const normalUAValue = [ + ...defaultUserAgent.filter((section) => section.startsWith("aws-sdk-")), + ...customUserAgent + ].join(SPACE2); + if (options.runtime !== "browser") { + if (normalUAValue) { + headers[X_AMZ_USER_AGENT] = headers[X_AMZ_USER_AGENT] ? `${headers[USER_AGENT]} ${normalUAValue}` : normalUAValue; + } + headers[USER_AGENT] = sdkUserAgentValue; + } else { + headers[X_AMZ_USER_AGENT] = sdkUserAgentValue; + } + return next({ + ...args, + request + }); + }, "userAgentMiddleware"); + var escapeUserAgent = /* @__PURE__ */ __name((userAgentPair) => { + var _a2; + const name = userAgentPair[0].split(UA_NAME_SEPARATOR).map((part) => part.replace(UA_NAME_ESCAPE_REGEX, UA_ESCAPE_CHAR)).join(UA_NAME_SEPARATOR); + const version3 = (_a2 = userAgentPair[1]) == null ? void 0 : _a2.replace(UA_VALUE_ESCAPE_REGEX, UA_ESCAPE_CHAR); + const prefixSeparatorIndex = name.indexOf(UA_NAME_SEPARATOR); + const prefix2 = name.substring(0, prefixSeparatorIndex); + let uaName = name.substring(prefixSeparatorIndex + 1); + if (prefix2 === "api") { + uaName = uaName.toLowerCase(); + } + return [prefix2, uaName, version3].filter((item) => item && item.length > 0).reduce((acc, item, index6) => { + switch (index6) { + case 0: + return item; + case 1: + return `${acc}/${item}`; + default: + return `${acc}#${item}`; + } + }, ""); + }, "escapeUserAgent"); + var getUserAgentMiddlewareOptions = { + name: "getUserAgentMiddleware", + step: "build", + priority: "low", + tags: ["SET_USER_AGENT", "USER_AGENT"], + override: true + }; + var getUserAgentPlugin3 = /* @__PURE__ */ __name((config) => ({ + applyToStack: /* @__PURE__ */ __name((clientStack) => { + clientStack.add(userAgentMiddleware(config), getUserAgentMiddlewareOptions); + }, "applyToStack") + }), "getUserAgentPlugin"); + } +}); + +// ../node_modules/.pnpm/@smithy+util-config-provider@4.0.0/node_modules/@smithy/util-config-provider/dist-cjs/index.js +var require_dist_cjs25 = __commonJS({ + "../node_modules/.pnpm/@smithy+util-config-provider@4.0.0/node_modules/@smithy/util-config-provider/dist-cjs/index.js"(exports2, module2) { + var __defProp3 = Object.defineProperty; + var __getOwnPropDesc3 = Object.getOwnPropertyDescriptor; + var __getOwnPropNames3 = Object.getOwnPropertyNames; + var __hasOwnProp3 = Object.prototype.hasOwnProperty; + var __name = (target, value) => __defProp3(target, "name", { value, configurable: true }); + var __export2 = (target, all) => { + for (var name in all) + __defProp3(target, name, { get: all[name], enumerable: true }); + }; + var __copyProps3 = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames3(from)) + if (!__hasOwnProp3.call(to, key) && key !== except) + __defProp3(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc3(from, key)) || desc.enumerable }); + } + return to; + }; + var __toCommonJS2 = (mod) => __copyProps3(__defProp3({}, "__esModule", { value: true }), mod); + var src_exports = {}; + __export2(src_exports, { + SelectorType: () => SelectorType, + booleanSelector: () => booleanSelector, + numberSelector: () => numberSelector + }); + module2.exports = __toCommonJS2(src_exports); + var booleanSelector = /* @__PURE__ */ __name((obj, key, type) => { + if (!(key in obj)) + return void 0; + if (obj[key] === "true") + return true; + if (obj[key] === "false") + return false; + throw new Error(`Cannot load ${type} "${key}". Expected "true" or "false", got ${obj[key]}.`); + }, "booleanSelector"); + var numberSelector = /* @__PURE__ */ __name((obj, key, type) => { + if (!(key in obj)) + return void 0; + const numberValue = parseInt(obj[key], 10); + if (Number.isNaN(numberValue)) { + throw new TypeError(`Cannot load ${type} '${key}'. Expected number, got '${obj[key]}'.`); + } + return numberValue; + }, "numberSelector"); + var SelectorType = /* @__PURE__ */ ((SelectorType2) => { + SelectorType2["ENV"] = "env"; + SelectorType2["CONFIG"] = "shared config entry"; + return SelectorType2; + })(SelectorType || {}); + } +}); + +// ../node_modules/.pnpm/@smithy+config-resolver@4.1.4/node_modules/@smithy/config-resolver/dist-cjs/index.js +var require_dist_cjs26 = __commonJS({ + "../node_modules/.pnpm/@smithy+config-resolver@4.1.4/node_modules/@smithy/config-resolver/dist-cjs/index.js"(exports2, module2) { + var __defProp3 = Object.defineProperty; + var __getOwnPropDesc3 = Object.getOwnPropertyDescriptor; + var __getOwnPropNames3 = Object.getOwnPropertyNames; + var __hasOwnProp3 = Object.prototype.hasOwnProperty; + var __name = (target, value) => __defProp3(target, "name", { value, configurable: true }); + var __export2 = (target, all) => { + for (var name in all) + __defProp3(target, name, { get: all[name], enumerable: true }); + }; + var __copyProps3 = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames3(from)) + if (!__hasOwnProp3.call(to, key) && key !== except) + __defProp3(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc3(from, key)) || desc.enumerable }); + } + return to; + }; + var __toCommonJS2 = (mod) => __copyProps3(__defProp3({}, "__esModule", { value: true }), mod); + var src_exports = {}; + __export2(src_exports, { + CONFIG_USE_DUALSTACK_ENDPOINT: () => CONFIG_USE_DUALSTACK_ENDPOINT, + CONFIG_USE_FIPS_ENDPOINT: () => CONFIG_USE_FIPS_ENDPOINT, + DEFAULT_USE_DUALSTACK_ENDPOINT: () => DEFAULT_USE_DUALSTACK_ENDPOINT, + DEFAULT_USE_FIPS_ENDPOINT: () => DEFAULT_USE_FIPS_ENDPOINT, + ENV_USE_DUALSTACK_ENDPOINT: () => ENV_USE_DUALSTACK_ENDPOINT, + ENV_USE_FIPS_ENDPOINT: () => ENV_USE_FIPS_ENDPOINT, + NODE_REGION_CONFIG_FILE_OPTIONS: () => NODE_REGION_CONFIG_FILE_OPTIONS3, + NODE_REGION_CONFIG_OPTIONS: () => NODE_REGION_CONFIG_OPTIONS3, + NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS: () => NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS3, + NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS: () => NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS3, + REGION_ENV_NAME: () => REGION_ENV_NAME, + REGION_INI_NAME: () => REGION_INI_NAME, + getRegionInfo: () => getRegionInfo, + resolveCustomEndpointsConfig: () => resolveCustomEndpointsConfig, + resolveEndpointsConfig: () => resolveEndpointsConfig, + resolveRegionConfig: () => resolveRegionConfig3 + }); + module2.exports = __toCommonJS2(src_exports); + var import_util_config_provider = require_dist_cjs25(); + var ENV_USE_DUALSTACK_ENDPOINT = "AWS_USE_DUALSTACK_ENDPOINT"; + var CONFIG_USE_DUALSTACK_ENDPOINT = "use_dualstack_endpoint"; + var DEFAULT_USE_DUALSTACK_ENDPOINT = false; + var NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS3 = { + environmentVariableSelector: (env3) => (0, import_util_config_provider.booleanSelector)(env3, ENV_USE_DUALSTACK_ENDPOINT, import_util_config_provider.SelectorType.ENV), + configFileSelector: (profile) => (0, import_util_config_provider.booleanSelector)(profile, CONFIG_USE_DUALSTACK_ENDPOINT, import_util_config_provider.SelectorType.CONFIG), + default: false + }; + var ENV_USE_FIPS_ENDPOINT = "AWS_USE_FIPS_ENDPOINT"; + var CONFIG_USE_FIPS_ENDPOINT = "use_fips_endpoint"; + var DEFAULT_USE_FIPS_ENDPOINT = false; + var NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS3 = { + environmentVariableSelector: (env3) => (0, import_util_config_provider.booleanSelector)(env3, ENV_USE_FIPS_ENDPOINT, import_util_config_provider.SelectorType.ENV), + configFileSelector: (profile) => (0, import_util_config_provider.booleanSelector)(profile, CONFIG_USE_FIPS_ENDPOINT, import_util_config_provider.SelectorType.CONFIG), + default: false + }; + var import_util_middleware7 = require_dist_cjs6(); + var resolveCustomEndpointsConfig = /* @__PURE__ */ __name((input) => { + const { tls, endpoint, urlParser, useDualstackEndpoint } = input; + return Object.assign(input, { + tls: tls ?? true, + endpoint: (0, import_util_middleware7.normalizeProvider)(typeof endpoint === "string" ? urlParser(endpoint) : endpoint), + isCustomEndpoint: true, + useDualstackEndpoint: (0, import_util_middleware7.normalizeProvider)(useDualstackEndpoint ?? false) + }); + }, "resolveCustomEndpointsConfig"); + var getEndpointFromRegion = /* @__PURE__ */ __name(async (input) => { + const { tls = true } = input; + const region = await input.region(); + const dnsHostRegex = new RegExp(/^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]{0,61}[a-zA-Z0-9])$/); + if (!dnsHostRegex.test(region)) { + throw new Error("Invalid region in client config"); + } + const useDualstackEndpoint = await input.useDualstackEndpoint(); + const useFipsEndpoint = await input.useFipsEndpoint(); + const { hostname } = await input.regionInfoProvider(region, { useDualstackEndpoint, useFipsEndpoint }) ?? {}; + if (!hostname) { + throw new Error("Cannot resolve hostname from client config"); + } + return input.urlParser(`${tls ? "https:" : "http:"}//${hostname}`); + }, "getEndpointFromRegion"); + var resolveEndpointsConfig = /* @__PURE__ */ __name((input) => { + const useDualstackEndpoint = (0, import_util_middleware7.normalizeProvider)(input.useDualstackEndpoint ?? false); + const { endpoint, useFipsEndpoint, urlParser, tls } = input; + return Object.assign(input, { + tls: tls ?? true, + endpoint: endpoint ? (0, import_util_middleware7.normalizeProvider)(typeof endpoint === "string" ? urlParser(endpoint) : endpoint) : () => getEndpointFromRegion({ ...input, useDualstackEndpoint, useFipsEndpoint }), + isCustomEndpoint: !!endpoint, + useDualstackEndpoint + }); + }, "resolveEndpointsConfig"); + var REGION_ENV_NAME = "AWS_REGION"; + var REGION_INI_NAME = "region"; + var NODE_REGION_CONFIG_OPTIONS3 = { + environmentVariableSelector: (env3) => env3[REGION_ENV_NAME], + configFileSelector: (profile) => profile[REGION_INI_NAME], + default: () => { + throw new Error("Region is missing"); + } + }; + var NODE_REGION_CONFIG_FILE_OPTIONS3 = { + preferredFile: "credentials" + }; + var isFipsRegion = /* @__PURE__ */ __name((region) => typeof region === "string" && (region.startsWith("fips-") || region.endsWith("-fips")), "isFipsRegion"); + var getRealRegion = /* @__PURE__ */ __name((region) => isFipsRegion(region) ? ["fips-aws-global", "aws-fips"].includes(region) ? "us-east-1" : region.replace(/fips-(dkr-|prod-)?|-fips/, "") : region, "getRealRegion"); + var resolveRegionConfig3 = /* @__PURE__ */ __name((input) => { + const { region, useFipsEndpoint } = input; + if (!region) { + throw new Error("Region is missing"); + } + return Object.assign(input, { + region: async () => { + if (typeof region === "string") { + return getRealRegion(region); + } + const providedRegion = await region(); + return getRealRegion(providedRegion); + }, + useFipsEndpoint: async () => { + const providedRegion = typeof region === "string" ? region : await region(); + if (isFipsRegion(providedRegion)) { + return true; + } + return typeof useFipsEndpoint !== "function" ? Promise.resolve(!!useFipsEndpoint) : useFipsEndpoint(); + } + }); + }, "resolveRegionConfig"); + var getHostnameFromVariants = /* @__PURE__ */ __name((variants = [], { useFipsEndpoint, useDualstackEndpoint }) => { + var _a2; + return (_a2 = variants.find( + ({ tags }) => useFipsEndpoint === tags.includes("fips") && useDualstackEndpoint === tags.includes("dualstack") + )) == null ? void 0 : _a2.hostname; + }, "getHostnameFromVariants"); + var getResolvedHostname = /* @__PURE__ */ __name((resolvedRegion, { regionHostname, partitionHostname }) => regionHostname ? regionHostname : partitionHostname ? partitionHostname.replace("{region}", resolvedRegion) : void 0, "getResolvedHostname"); + var getResolvedPartition = /* @__PURE__ */ __name((region, { partitionHash }) => Object.keys(partitionHash || {}).find((key) => partitionHash[key].regions.includes(region)) ?? "aws", "getResolvedPartition"); + var getResolvedSigningRegion = /* @__PURE__ */ __name((hostname, { signingRegion, regionRegex, useFipsEndpoint }) => { + if (signingRegion) { + return signingRegion; + } else if (useFipsEndpoint) { + const regionRegexJs = regionRegex.replace("\\\\", "\\").replace(/^\^/g, "\\.").replace(/\$$/g, "\\."); + const regionRegexmatchArray = hostname.match(regionRegexJs); + if (regionRegexmatchArray) { + return regionRegexmatchArray[0].slice(1, -1); + } + } + }, "getResolvedSigningRegion"); + var getRegionInfo = /* @__PURE__ */ __name((region, { + useFipsEndpoint = false, + useDualstackEndpoint = false, + signingService, + regionHash, + partitionHash + }) => { + var _a2, _b, _c, _d, _e; + const partition = getResolvedPartition(region, { partitionHash }); + const resolvedRegion = region in regionHash ? region : ((_a2 = partitionHash[partition]) == null ? void 0 : _a2.endpoint) ?? region; + const hostnameOptions = { useFipsEndpoint, useDualstackEndpoint }; + const regionHostname = getHostnameFromVariants((_b = regionHash[resolvedRegion]) == null ? void 0 : _b.variants, hostnameOptions); + const partitionHostname = getHostnameFromVariants((_c = partitionHash[partition]) == null ? void 0 : _c.variants, hostnameOptions); + const hostname = getResolvedHostname(resolvedRegion, { regionHostname, partitionHostname }); + if (hostname === void 0) { + throw new Error(`Endpoint resolution failed for: ${{ resolvedRegion, useFipsEndpoint, useDualstackEndpoint }}`); + } + const signingRegion = getResolvedSigningRegion(hostname, { + signingRegion: (_d = regionHash[resolvedRegion]) == null ? void 0 : _d.signingRegion, + regionRegex: partitionHash[partition].regionRegex, + useFipsEndpoint + }); + return { + partition, + signingService, + hostname, + ...signingRegion && { signingRegion }, + ...((_e = regionHash[resolvedRegion]) == null ? void 0 : _e.signingService) && { + signingService: regionHash[resolvedRegion].signingService + } + }; + }, "getRegionInfo"); + } +}); + +// ../node_modules/.pnpm/@smithy+middleware-content-length@4.0.4/node_modules/@smithy/middleware-content-length/dist-cjs/index.js +var require_dist_cjs27 = __commonJS({ + "../node_modules/.pnpm/@smithy+middleware-content-length@4.0.4/node_modules/@smithy/middleware-content-length/dist-cjs/index.js"(exports2, module2) { + var __defProp3 = Object.defineProperty; + var __getOwnPropDesc3 = Object.getOwnPropertyDescriptor; + var __getOwnPropNames3 = Object.getOwnPropertyNames; + var __hasOwnProp3 = Object.prototype.hasOwnProperty; + var __name = (target, value) => __defProp3(target, "name", { value, configurable: true }); + var __export2 = (target, all) => { + for (var name in all) + __defProp3(target, name, { get: all[name], enumerable: true }); + }; + var __copyProps3 = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames3(from)) + if (!__hasOwnProp3.call(to, key) && key !== except) + __defProp3(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc3(from, key)) || desc.enumerable }); + } + return to; + }; + var __toCommonJS2 = (mod) => __copyProps3(__defProp3({}, "__esModule", { value: true }), mod); + var src_exports = {}; + __export2(src_exports, { + contentLengthMiddleware: () => contentLengthMiddleware, + contentLengthMiddlewareOptions: () => contentLengthMiddlewareOptions, + getContentLengthPlugin: () => getContentLengthPlugin3 + }); + module2.exports = __toCommonJS2(src_exports); + var import_protocol_http15 = require_dist_cjs2(); + var CONTENT_LENGTH_HEADER = "content-length"; + function contentLengthMiddleware(bodyLengthChecker) { + return (next) => async (args) => { + const request = args.request; + if (import_protocol_http15.HttpRequest.isInstance(request)) { + const { body, headers } = request; + if (body && Object.keys(headers).map((str) => str.toLowerCase()).indexOf(CONTENT_LENGTH_HEADER) === -1) { + try { + const length = bodyLengthChecker(body); + request.headers = { + ...request.headers, + [CONTENT_LENGTH_HEADER]: String(length) + }; + } catch (error2) { + } + } + } + return next({ + ...args, + request + }); + }; + } + __name(contentLengthMiddleware, "contentLengthMiddleware"); + var contentLengthMiddlewareOptions = { + step: "build", + tags: ["SET_CONTENT_LENGTH", "CONTENT_LENGTH"], + name: "contentLengthMiddleware", + override: true + }; + var getContentLengthPlugin3 = /* @__PURE__ */ __name((options) => ({ + applyToStack: (clientStack) => { + clientStack.add(contentLengthMiddleware(options.bodyLengthChecker), contentLengthMiddlewareOptions); + } + }), "getContentLengthPlugin"); + } +}); + +// ../node_modules/.pnpm/@smithy+shared-ini-file-loader@4.0.4/node_modules/@smithy/shared-ini-file-loader/dist-cjs/getHomeDir.js +var require_getHomeDir = __commonJS({ + "../node_modules/.pnpm/@smithy+shared-ini-file-loader@4.0.4/node_modules/@smithy/shared-ini-file-loader/dist-cjs/getHomeDir.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.getHomeDir = void 0; + var os_1 = require("os"); + var path_1 = require("path"); + var homeDirCache = {}; + var getHomeDirCacheKey = () => { + if (process && process.geteuid) { + return `${process.geteuid()}`; + } + return "DEFAULT"; + }; + var getHomeDir2 = () => { + const { HOME, USERPROFILE, HOMEPATH, HOMEDRIVE = `C:${path_1.sep}` } = process.env; + if (HOME) + return HOME; + if (USERPROFILE) + return USERPROFILE; + if (HOMEPATH) + return `${HOMEDRIVE}${HOMEPATH}`; + const homeDirCacheKey = getHomeDirCacheKey(); + if (!homeDirCache[homeDirCacheKey]) + homeDirCache[homeDirCacheKey] = (0, os_1.homedir)(); + return homeDirCache[homeDirCacheKey]; + }; + exports2.getHomeDir = getHomeDir2; + } +}); + +// ../node_modules/.pnpm/@smithy+shared-ini-file-loader@4.0.4/node_modules/@smithy/shared-ini-file-loader/dist-cjs/getSSOTokenFilepath.js +var require_getSSOTokenFilepath = __commonJS({ + "../node_modules/.pnpm/@smithy+shared-ini-file-loader@4.0.4/node_modules/@smithy/shared-ini-file-loader/dist-cjs/getSSOTokenFilepath.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.getSSOTokenFilepath = void 0; + var crypto_1 = require("crypto"); + var path_1 = require("path"); + var getHomeDir_1 = require_getHomeDir(); + var getSSOTokenFilepath2 = (id) => { + const hasher = (0, crypto_1.createHash)("sha1"); + const cacheName = hasher.update(id).digest("hex"); + return (0, path_1.join)((0, getHomeDir_1.getHomeDir)(), ".aws", "sso", "cache", `${cacheName}.json`); + }; + exports2.getSSOTokenFilepath = getSSOTokenFilepath2; + } +}); + +// ../node_modules/.pnpm/@smithy+shared-ini-file-loader@4.0.4/node_modules/@smithy/shared-ini-file-loader/dist-cjs/getSSOTokenFromFile.js +var require_getSSOTokenFromFile = __commonJS({ + "../node_modules/.pnpm/@smithy+shared-ini-file-loader@4.0.4/node_modules/@smithy/shared-ini-file-loader/dist-cjs/getSSOTokenFromFile.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.getSSOTokenFromFile = void 0; + var fs_1 = require("fs"); + var getSSOTokenFilepath_1 = require_getSSOTokenFilepath(); + var { readFile: readFile2 } = fs_1.promises; + var getSSOTokenFromFile2 = async (id) => { + const ssoTokenFilepath = (0, getSSOTokenFilepath_1.getSSOTokenFilepath)(id); + const ssoTokenText = await readFile2(ssoTokenFilepath, "utf8"); + return JSON.parse(ssoTokenText); + }; + exports2.getSSOTokenFromFile = getSSOTokenFromFile2; + } +}); + +// ../node_modules/.pnpm/@smithy+shared-ini-file-loader@4.0.4/node_modules/@smithy/shared-ini-file-loader/dist-cjs/slurpFile.js +var require_slurpFile = __commonJS({ + "../node_modules/.pnpm/@smithy+shared-ini-file-loader@4.0.4/node_modules/@smithy/shared-ini-file-loader/dist-cjs/slurpFile.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.slurpFile = void 0; + var fs_1 = require("fs"); + var { readFile: readFile2 } = fs_1.promises; + var filePromisesHash = {}; + var slurpFile = (path4, options) => { + if (!filePromisesHash[path4] || (options === null || options === void 0 ? void 0 : options.ignoreCache)) { + filePromisesHash[path4] = readFile2(path4, "utf8"); + } + return filePromisesHash[path4]; + }; + exports2.slurpFile = slurpFile; + } +}); + +// ../node_modules/.pnpm/@smithy+shared-ini-file-loader@4.0.4/node_modules/@smithy/shared-ini-file-loader/dist-cjs/index.js +var require_dist_cjs28 = __commonJS({ + "../node_modules/.pnpm/@smithy+shared-ini-file-loader@4.0.4/node_modules/@smithy/shared-ini-file-loader/dist-cjs/index.js"(exports2, module2) { + var __defProp3 = Object.defineProperty; + var __getOwnPropDesc3 = Object.getOwnPropertyDescriptor; + var __getOwnPropNames3 = Object.getOwnPropertyNames; + var __hasOwnProp3 = Object.prototype.hasOwnProperty; + var __name = (target, value) => __defProp3(target, "name", { value, configurable: true }); + var __export2 = (target, all) => { + for (var name in all) + __defProp3(target, name, { get: all[name], enumerable: true }); + }; + var __copyProps3 = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames3(from)) + if (!__hasOwnProp3.call(to, key) && key !== except) + __defProp3(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc3(from, key)) || desc.enumerable }); + } + return to; + }; + var __reExport = (target, mod, secondTarget) => (__copyProps3(target, mod, "default"), secondTarget && __copyProps3(secondTarget, mod, "default")); + var __toCommonJS2 = (mod) => __copyProps3(__defProp3({}, "__esModule", { value: true }), mod); + var src_exports = {}; + __export2(src_exports, { + CONFIG_PREFIX_SEPARATOR: () => CONFIG_PREFIX_SEPARATOR, + DEFAULT_PROFILE: () => DEFAULT_PROFILE, + ENV_PROFILE: () => ENV_PROFILE, + getProfileName: () => getProfileName, + loadSharedConfigFiles: () => loadSharedConfigFiles, + loadSsoSessionData: () => loadSsoSessionData, + parseKnownFiles: () => parseKnownFiles + }); + module2.exports = __toCommonJS2(src_exports); + __reExport(src_exports, require_getHomeDir(), module2.exports); + var ENV_PROFILE = "AWS_PROFILE"; + var DEFAULT_PROFILE = "default"; + var getProfileName = /* @__PURE__ */ __name((init2) => init2.profile || process.env[ENV_PROFILE] || DEFAULT_PROFILE, "getProfileName"); + __reExport(src_exports, require_getSSOTokenFilepath(), module2.exports); + __reExport(src_exports, require_getSSOTokenFromFile(), module2.exports); + var import_types5 = require_dist_cjs(); + var getConfigData = /* @__PURE__ */ __name((data) => Object.entries(data).filter(([key]) => { + const indexOfSeparator = key.indexOf(CONFIG_PREFIX_SEPARATOR); + if (indexOfSeparator === -1) { + return false; + } + return Object.values(import_types5.IniSectionType).includes(key.substring(0, indexOfSeparator)); + }).reduce( + (acc, [key, value]) => { + const indexOfSeparator = key.indexOf(CONFIG_PREFIX_SEPARATOR); + const updatedKey = key.substring(0, indexOfSeparator) === import_types5.IniSectionType.PROFILE ? key.substring(indexOfSeparator + 1) : key; + acc[updatedKey] = value; + return acc; + }, + { + // Populate default profile, if present. + ...data.default && { default: data.default } + } + ), "getConfigData"); + var import_path8 = require("path"); + var import_getHomeDir = require_getHomeDir(); + var ENV_CONFIG_PATH = "AWS_CONFIG_FILE"; + var getConfigFilepath = /* @__PURE__ */ __name(() => process.env[ENV_CONFIG_PATH] || (0, import_path8.join)((0, import_getHomeDir.getHomeDir)(), ".aws", "config"), "getConfigFilepath"); + var import_getHomeDir2 = require_getHomeDir(); + var ENV_CREDENTIALS_PATH = "AWS_SHARED_CREDENTIALS_FILE"; + var getCredentialsFilepath = /* @__PURE__ */ __name(() => process.env[ENV_CREDENTIALS_PATH] || (0, import_path8.join)((0, import_getHomeDir2.getHomeDir)(), ".aws", "credentials"), "getCredentialsFilepath"); + var import_getHomeDir3 = require_getHomeDir(); + var prefixKeyRegex = /^([\w-]+)\s(["'])?([\w-@\+\.%:/]+)\2$/; + var profileNameBlockList = ["__proto__", "profile __proto__"]; + var parseIni = /* @__PURE__ */ __name((iniData) => { + const map2 = {}; + let currentSection; + let currentSubSection; + for (const iniLine of iniData.split(/\r?\n/)) { + const trimmedLine = iniLine.split(/(^|\s)[;#]/)[0].trim(); + const isSection = trimmedLine[0] === "[" && trimmedLine[trimmedLine.length - 1] === "]"; + if (isSection) { + currentSection = void 0; + currentSubSection = void 0; + const sectionName = trimmedLine.substring(1, trimmedLine.length - 1); + const matches = prefixKeyRegex.exec(sectionName); + if (matches) { + const [, prefix2, , name] = matches; + if (Object.values(import_types5.IniSectionType).includes(prefix2)) { + currentSection = [prefix2, name].join(CONFIG_PREFIX_SEPARATOR); + } + } else { + currentSection = sectionName; + } + if (profileNameBlockList.includes(sectionName)) { + throw new Error(`Found invalid profile name "${sectionName}"`); + } + } else if (currentSection) { + const indexOfEqualsSign = trimmedLine.indexOf("="); + if (![0, -1].includes(indexOfEqualsSign)) { + const [name, value] = [ + trimmedLine.substring(0, indexOfEqualsSign).trim(), + trimmedLine.substring(indexOfEqualsSign + 1).trim() + ]; + if (value === "") { + currentSubSection = name; + } else { + if (currentSubSection && iniLine.trimStart() === iniLine) { + currentSubSection = void 0; + } + map2[currentSection] = map2[currentSection] || {}; + const key = currentSubSection ? [currentSubSection, name].join(CONFIG_PREFIX_SEPARATOR) : name; + map2[currentSection][key] = value; + } + } + } + } + return map2; + }, "parseIni"); + var import_slurpFile = require_slurpFile(); + var swallowError = /* @__PURE__ */ __name(() => ({}), "swallowError"); + var CONFIG_PREFIX_SEPARATOR = "."; + var loadSharedConfigFiles = /* @__PURE__ */ __name(async (init2 = {}) => { + const { filepath = getCredentialsFilepath(), configFilepath = getConfigFilepath() } = init2; + const homeDir = (0, import_getHomeDir3.getHomeDir)(); + const relativeHomeDirPrefix = "~/"; + let resolvedFilepath = filepath; + if (filepath.startsWith(relativeHomeDirPrefix)) { + resolvedFilepath = (0, import_path8.join)(homeDir, filepath.slice(2)); + } + let resolvedConfigFilepath = configFilepath; + if (configFilepath.startsWith(relativeHomeDirPrefix)) { + resolvedConfigFilepath = (0, import_path8.join)(homeDir, configFilepath.slice(2)); + } + const parsedFiles = await Promise.all([ + (0, import_slurpFile.slurpFile)(resolvedConfigFilepath, { + ignoreCache: init2.ignoreCache + }).then(parseIni).then(getConfigData).catch(swallowError), + (0, import_slurpFile.slurpFile)(resolvedFilepath, { + ignoreCache: init2.ignoreCache + }).then(parseIni).catch(swallowError) + ]); + return { + configFile: parsedFiles[0], + credentialsFile: parsedFiles[1] + }; + }, "loadSharedConfigFiles"); + var getSsoSessionData = /* @__PURE__ */ __name((data) => Object.entries(data).filter(([key]) => key.startsWith(import_types5.IniSectionType.SSO_SESSION + CONFIG_PREFIX_SEPARATOR)).reduce((acc, [key, value]) => ({ ...acc, [key.substring(key.indexOf(CONFIG_PREFIX_SEPARATOR) + 1)]: value }), {}), "getSsoSessionData"); + var import_slurpFile2 = require_slurpFile(); + var swallowError2 = /* @__PURE__ */ __name(() => ({}), "swallowError"); + var loadSsoSessionData = /* @__PURE__ */ __name(async (init2 = {}) => (0, import_slurpFile2.slurpFile)(init2.configFilepath ?? getConfigFilepath()).then(parseIni).then(getSsoSessionData).catch(swallowError2), "loadSsoSessionData"); + var mergeConfigFiles = /* @__PURE__ */ __name((...files) => { + const merged = {}; + for (const file of files) { + for (const [key, values] of Object.entries(file)) { + if (merged[key] !== void 0) { + Object.assign(merged[key], values); + } else { + merged[key] = values; + } + } + } + return merged; + }, "mergeConfigFiles"); + var parseKnownFiles = /* @__PURE__ */ __name(async (init2) => { + const parsedFiles = await loadSharedConfigFiles(init2); + return mergeConfigFiles(parsedFiles.configFile, parsedFiles.credentialsFile); + }, "parseKnownFiles"); + } +}); + +// ../node_modules/.pnpm/@smithy+node-config-provider@4.1.3/node_modules/@smithy/node-config-provider/dist-cjs/index.js +var require_dist_cjs29 = __commonJS({ + "../node_modules/.pnpm/@smithy+node-config-provider@4.1.3/node_modules/@smithy/node-config-provider/dist-cjs/index.js"(exports2, module2) { + var __defProp3 = Object.defineProperty; + var __getOwnPropDesc3 = Object.getOwnPropertyDescriptor; + var __getOwnPropNames3 = Object.getOwnPropertyNames; + var __hasOwnProp3 = Object.prototype.hasOwnProperty; + var __name = (target, value) => __defProp3(target, "name", { value, configurable: true }); + var __export2 = (target, all) => { + for (var name in all) + __defProp3(target, name, { get: all[name], enumerable: true }); + }; + var __copyProps3 = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames3(from)) + if (!__hasOwnProp3.call(to, key) && key !== except) + __defProp3(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc3(from, key)) || desc.enumerable }); + } + return to; + }; + var __toCommonJS2 = (mod) => __copyProps3(__defProp3({}, "__esModule", { value: true }), mod); + var src_exports = {}; + __export2(src_exports, { + loadConfig: () => loadConfig + }); + module2.exports = __toCommonJS2(src_exports); + var import_property_provider2 = require_dist_cjs20(); + function getSelectorName(functionString) { + try { + const constants = new Set(Array.from(functionString.match(/([A-Z_]){3,}/g) ?? [])); + constants.delete("CONFIG"); + constants.delete("CONFIG_PREFIX_SEPARATOR"); + constants.delete("ENV"); + return [...constants].join(", "); + } catch (e4) { + return functionString; + } + } + __name(getSelectorName, "getSelectorName"); + var fromEnv = /* @__PURE__ */ __name((envVarSelector, options) => async () => { + try { + const config = envVarSelector(process.env, options); + if (config === void 0) { + throw new Error(); + } + return config; + } catch (e4) { + throw new import_property_provider2.CredentialsProviderError( + e4.message || `Not found in ENV: ${getSelectorName(envVarSelector.toString())}`, + { logger: options == null ? void 0 : options.logger } + ); + } + }, "fromEnv"); + var import_shared_ini_file_loader = require_dist_cjs28(); + var fromSharedConfigFiles = /* @__PURE__ */ __name((configSelector, { preferredFile = "config", ...init2 } = {}) => async () => { + const profile = (0, import_shared_ini_file_loader.getProfileName)(init2); + const { configFile, credentialsFile } = await (0, import_shared_ini_file_loader.loadSharedConfigFiles)(init2); + const profileFromCredentials = credentialsFile[profile] || {}; + const profileFromConfig = configFile[profile] || {}; + const mergedProfile = preferredFile === "config" ? { ...profileFromCredentials, ...profileFromConfig } : { ...profileFromConfig, ...profileFromCredentials }; + try { + const cfgFile = preferredFile === "config" ? configFile : credentialsFile; + const configValue = configSelector(mergedProfile, cfgFile); + if (configValue === void 0) { + throw new Error(); + } + return configValue; + } catch (e4) { + throw new import_property_provider2.CredentialsProviderError( + e4.message || `Not found in config files w/ profile [${profile}]: ${getSelectorName(configSelector.toString())}`, + { logger: init2.logger } + ); + } + }, "fromSharedConfigFiles"); + var isFunction = /* @__PURE__ */ __name((func) => typeof func === "function", "isFunction"); + var fromStatic = /* @__PURE__ */ __name((defaultValue) => isFunction(defaultValue) ? async () => await defaultValue() : (0, import_property_provider2.fromStatic)(defaultValue), "fromStatic"); + var loadConfig = /* @__PURE__ */ __name(({ environmentVariableSelector, configFileSelector, default: defaultValue }, configuration = {}) => { + const { signingName, logger: logger3 } = configuration; + const envOptions = { signingName, logger: logger3 }; + return (0, import_property_provider2.memoize)( + (0, import_property_provider2.chain)( + fromEnv(environmentVariableSelector, envOptions), + fromSharedConfigFiles(configFileSelector, configuration), + fromStatic(defaultValue) + ) + ); + }, "loadConfig"); + } +}); + +// ../node_modules/.pnpm/@smithy+middleware-endpoint@4.1.9/node_modules/@smithy/middleware-endpoint/dist-cjs/adaptors/getEndpointUrlConfig.js +var require_getEndpointUrlConfig = __commonJS({ + "../node_modules/.pnpm/@smithy+middleware-endpoint@4.1.9/node_modules/@smithy/middleware-endpoint/dist-cjs/adaptors/getEndpointUrlConfig.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.getEndpointUrlConfig = void 0; + var shared_ini_file_loader_1 = require_dist_cjs28(); + var ENV_ENDPOINT_URL = "AWS_ENDPOINT_URL"; + var CONFIG_ENDPOINT_URL = "endpoint_url"; + var getEndpointUrlConfig = (serviceId) => ({ + environmentVariableSelector: (env3) => { + const serviceSuffixParts = serviceId.split(" ").map((w3) => w3.toUpperCase()); + const serviceEndpointUrl = env3[[ENV_ENDPOINT_URL, ...serviceSuffixParts].join("_")]; + if (serviceEndpointUrl) + return serviceEndpointUrl; + const endpointUrl = env3[ENV_ENDPOINT_URL]; + if (endpointUrl) + return endpointUrl; + return void 0; + }, + configFileSelector: (profile, config) => { + if (config && profile.services) { + const servicesSection = config[["services", profile.services].join(shared_ini_file_loader_1.CONFIG_PREFIX_SEPARATOR)]; + if (servicesSection) { + const servicePrefixParts = serviceId.split(" ").map((w3) => w3.toLowerCase()); + const endpointUrl2 = servicesSection[[servicePrefixParts.join("_"), CONFIG_ENDPOINT_URL].join(shared_ini_file_loader_1.CONFIG_PREFIX_SEPARATOR)]; + if (endpointUrl2) + return endpointUrl2; + } + } + const endpointUrl = profile[CONFIG_ENDPOINT_URL]; + if (endpointUrl) + return endpointUrl; + return void 0; + }, + default: void 0 + }); + exports2.getEndpointUrlConfig = getEndpointUrlConfig; + } +}); + +// ../node_modules/.pnpm/@smithy+middleware-endpoint@4.1.9/node_modules/@smithy/middleware-endpoint/dist-cjs/adaptors/getEndpointFromConfig.js +var require_getEndpointFromConfig = __commonJS({ + "../node_modules/.pnpm/@smithy+middleware-endpoint@4.1.9/node_modules/@smithy/middleware-endpoint/dist-cjs/adaptors/getEndpointFromConfig.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.getEndpointFromConfig = void 0; + var node_config_provider_1 = require_dist_cjs29(); + var getEndpointUrlConfig_1 = require_getEndpointUrlConfig(); + var getEndpointFromConfig = async (serviceId) => (0, node_config_provider_1.loadConfig)((0, getEndpointUrlConfig_1.getEndpointUrlConfig)(serviceId !== null && serviceId !== void 0 ? serviceId : ""))(); + exports2.getEndpointFromConfig = getEndpointFromConfig; + } +}); + +// ../node_modules/.pnpm/@smithy+querystring-parser@4.0.4/node_modules/@smithy/querystring-parser/dist-cjs/index.js +var require_dist_cjs30 = __commonJS({ + "../node_modules/.pnpm/@smithy+querystring-parser@4.0.4/node_modules/@smithy/querystring-parser/dist-cjs/index.js"(exports2, module2) { + var __defProp3 = Object.defineProperty; + var __getOwnPropDesc3 = Object.getOwnPropertyDescriptor; + var __getOwnPropNames3 = Object.getOwnPropertyNames; + var __hasOwnProp3 = Object.prototype.hasOwnProperty; + var __name = (target, value) => __defProp3(target, "name", { value, configurable: true }); + var __export2 = (target, all) => { + for (var name in all) + __defProp3(target, name, { get: all[name], enumerable: true }); + }; + var __copyProps3 = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames3(from)) + if (!__hasOwnProp3.call(to, key) && key !== except) + __defProp3(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc3(from, key)) || desc.enumerable }); + } + return to; + }; + var __toCommonJS2 = (mod) => __copyProps3(__defProp3({}, "__esModule", { value: true }), mod); + var src_exports = {}; + __export2(src_exports, { + parseQueryString: () => parseQueryString + }); + module2.exports = __toCommonJS2(src_exports); + function parseQueryString(querystring) { + const query = {}; + querystring = querystring.replace(/^\?/, ""); + if (querystring) { + for (const pair of querystring.split("&")) { + let [key, value = null] = pair.split("="); + key = decodeURIComponent(key); + if (value) { + value = decodeURIComponent(value); + } + if (!(key in query)) { + query[key] = value; + } else if (Array.isArray(query[key])) { + query[key].push(value); + } else { + query[key] = [query[key], value]; + } + } + } + return query; + } + __name(parseQueryString, "parseQueryString"); + } +}); + +// ../node_modules/.pnpm/@smithy+url-parser@4.0.4/node_modules/@smithy/url-parser/dist-cjs/index.js +var require_dist_cjs31 = __commonJS({ + "../node_modules/.pnpm/@smithy+url-parser@4.0.4/node_modules/@smithy/url-parser/dist-cjs/index.js"(exports2, module2) { + var __defProp3 = Object.defineProperty; + var __getOwnPropDesc3 = Object.getOwnPropertyDescriptor; + var __getOwnPropNames3 = Object.getOwnPropertyNames; + var __hasOwnProp3 = Object.prototype.hasOwnProperty; + var __name = (target, value) => __defProp3(target, "name", { value, configurable: true }); + var __export2 = (target, all) => { + for (var name in all) + __defProp3(target, name, { get: all[name], enumerable: true }); + }; + var __copyProps3 = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames3(from)) + if (!__hasOwnProp3.call(to, key) && key !== except) + __defProp3(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc3(from, key)) || desc.enumerable }); + } + return to; + }; + var __toCommonJS2 = (mod) => __copyProps3(__defProp3({}, "__esModule", { value: true }), mod); + var src_exports = {}; + __export2(src_exports, { + parseUrl: () => parseUrl3 + }); + module2.exports = __toCommonJS2(src_exports); + var import_querystring_parser = require_dist_cjs30(); + var parseUrl3 = /* @__PURE__ */ __name((url) => { + if (typeof url === "string") { + return parseUrl3(new URL(url)); + } + const { hostname, pathname, port, protocol, search } = url; + let query; + if (search) { + query = (0, import_querystring_parser.parseQueryString)(search); + } + return { + hostname, + port: port ? parseInt(port) : void 0, + protocol, + path: pathname, + query + }; + }, "parseUrl"); + } +}); + +// ../node_modules/.pnpm/@smithy+middleware-endpoint@4.1.9/node_modules/@smithy/middleware-endpoint/dist-cjs/index.js +var require_dist_cjs32 = __commonJS({ + "../node_modules/.pnpm/@smithy+middleware-endpoint@4.1.9/node_modules/@smithy/middleware-endpoint/dist-cjs/index.js"(exports2, module2) { + var __defProp3 = Object.defineProperty; + var __getOwnPropDesc3 = Object.getOwnPropertyDescriptor; + var __getOwnPropNames3 = Object.getOwnPropertyNames; + var __hasOwnProp3 = Object.prototype.hasOwnProperty; + var __name = (target, value) => __defProp3(target, "name", { value, configurable: true }); + var __export2 = (target, all) => { + for (var name in all) + __defProp3(target, name, { get: all[name], enumerable: true }); + }; + var __copyProps3 = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames3(from)) + if (!__hasOwnProp3.call(to, key) && key !== except) + __defProp3(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc3(from, key)) || desc.enumerable }); + } + return to; + }; + var __toCommonJS2 = (mod) => __copyProps3(__defProp3({}, "__esModule", { value: true }), mod); + var src_exports = {}; + __export2(src_exports, { + endpointMiddleware: () => endpointMiddleware, + endpointMiddlewareOptions: () => endpointMiddlewareOptions, + getEndpointFromInstructions: () => getEndpointFromInstructions, + getEndpointPlugin: () => getEndpointPlugin4, + resolveEndpointConfig: () => resolveEndpointConfig3, + resolveParams: () => resolveParams, + toEndpointV1: () => toEndpointV1 + }); + module2.exports = __toCommonJS2(src_exports); + var resolveParamsForS3 = /* @__PURE__ */ __name(async (endpointParams) => { + const bucket = (endpointParams == null ? void 0 : endpointParams.Bucket) || ""; + if (typeof endpointParams.Bucket === "string") { + endpointParams.Bucket = bucket.replace(/#/g, encodeURIComponent("#")).replace(/\?/g, encodeURIComponent("?")); + } + if (isArnBucketName(bucket)) { + if (endpointParams.ForcePathStyle === true) { + throw new Error("Path-style addressing cannot be used with ARN buckets"); + } + } else if (!isDnsCompatibleBucketName(bucket) || bucket.indexOf(".") !== -1 && !String(endpointParams.Endpoint).startsWith("http:") || bucket.toLowerCase() !== bucket || bucket.length < 3) { + endpointParams.ForcePathStyle = true; + } + if (endpointParams.DisableMultiRegionAccessPoints) { + endpointParams.disableMultiRegionAccessPoints = true; + endpointParams.DisableMRAP = true; + } + return endpointParams; + }, "resolveParamsForS3"); + var DOMAIN_PATTERN = /^[a-z0-9][a-z0-9\.\-]{1,61}[a-z0-9]$/; + var IP_ADDRESS_PATTERN = /(\d+\.){3}\d+/; + var DOTS_PATTERN = /\.\./; + var isDnsCompatibleBucketName = /* @__PURE__ */ __name((bucketName) => DOMAIN_PATTERN.test(bucketName) && !IP_ADDRESS_PATTERN.test(bucketName) && !DOTS_PATTERN.test(bucketName), "isDnsCompatibleBucketName"); + var isArnBucketName = /* @__PURE__ */ __name((bucketName) => { + const [arn, partition, service, , , bucket] = bucketName.split(":"); + const isArn = arn === "arn" && bucketName.split(":").length >= 6; + const isValidArn = Boolean(isArn && partition && service && bucket); + if (isArn && !isValidArn) { + throw new Error(`Invalid ARN: ${bucketName} was an invalid ARN.`); + } + return isValidArn; + }, "isArnBucketName"); + var createConfigValueProvider = /* @__PURE__ */ __name((configKey, canonicalEndpointParamKey, config) => { + const configProvider = /* @__PURE__ */ __name(async () => { + const configValue = config[configKey] ?? config[canonicalEndpointParamKey]; + if (typeof configValue === "function") { + return configValue(); + } + return configValue; + }, "configProvider"); + if (configKey === "credentialScope" || canonicalEndpointParamKey === "CredentialScope") { + return async () => { + const credentials2 = typeof config.credentials === "function" ? await config.credentials() : config.credentials; + const configValue = (credentials2 == null ? void 0 : credentials2.credentialScope) ?? (credentials2 == null ? void 0 : credentials2.CredentialScope); + return configValue; + }; + } + if (configKey === "accountId" || canonicalEndpointParamKey === "AccountId") { + return async () => { + const credentials2 = typeof config.credentials === "function" ? await config.credentials() : config.credentials; + const configValue = (credentials2 == null ? void 0 : credentials2.accountId) ?? (credentials2 == null ? void 0 : credentials2.AccountId); + return configValue; + }; + } + if (configKey === "endpoint" || canonicalEndpointParamKey === "endpoint") { + return async () => { + const endpoint = await configProvider(); + if (endpoint && typeof endpoint === "object") { + if ("url" in endpoint) { + return endpoint.url.href; + } + if ("hostname" in endpoint) { + const { protocol, hostname, port, path: path4 } = endpoint; + return `${protocol}//${hostname}${port ? ":" + port : ""}${path4}`; + } + } + return endpoint; + }; + } + return configProvider; + }, "createConfigValueProvider"); + var import_getEndpointFromConfig = require_getEndpointFromConfig(); + var import_url_parser3 = require_dist_cjs31(); + var toEndpointV1 = /* @__PURE__ */ __name((endpoint) => { + if (typeof endpoint === "object") { + if ("url" in endpoint) { + return (0, import_url_parser3.parseUrl)(endpoint.url); + } + return endpoint; + } + return (0, import_url_parser3.parseUrl)(endpoint); + }, "toEndpointV1"); + var getEndpointFromInstructions = /* @__PURE__ */ __name(async (commandInput, instructionsSupplier, clientConfig, context) => { + if (!clientConfig.endpoint) { + let endpointFromConfig; + if (clientConfig.serviceConfiguredEndpoint) { + endpointFromConfig = await clientConfig.serviceConfiguredEndpoint(); + } else { + endpointFromConfig = await (0, import_getEndpointFromConfig.getEndpointFromConfig)(clientConfig.serviceId); + } + if (endpointFromConfig) { + clientConfig.endpoint = () => Promise.resolve(toEndpointV1(endpointFromConfig)); + } + } + const endpointParams = await resolveParams(commandInput, instructionsSupplier, clientConfig); + if (typeof clientConfig.endpointProvider !== "function") { + throw new Error("config.endpointProvider is not set."); + } + const endpoint = clientConfig.endpointProvider(endpointParams, context); + return endpoint; + }, "getEndpointFromInstructions"); + var resolveParams = /* @__PURE__ */ __name(async (commandInput, instructionsSupplier, clientConfig) => { + var _a2; + const endpointParams = {}; + const instructions = ((_a2 = instructionsSupplier == null ? void 0 : instructionsSupplier.getEndpointParameterInstructions) == null ? void 0 : _a2.call(instructionsSupplier)) || {}; + for (const [name, instruction] of Object.entries(instructions)) { + switch (instruction.type) { + case "staticContextParams": + endpointParams[name] = instruction.value; + break; + case "contextParams": + endpointParams[name] = commandInput[instruction.name]; + break; + case "clientContextParams": + case "builtInParams": + endpointParams[name] = await createConfigValueProvider(instruction.name, name, clientConfig)(); + break; + case "operationContextParams": + endpointParams[name] = instruction.get(commandInput); + break; + default: + throw new Error("Unrecognized endpoint parameter instruction: " + JSON.stringify(instruction)); + } + } + if (Object.keys(instructions).length === 0) { + Object.assign(endpointParams, clientConfig); + } + if (String(clientConfig.serviceId).toLowerCase() === "s3") { + await resolveParamsForS3(endpointParams); + } + return endpointParams; + }, "resolveParams"); + var import_core17 = (init_dist_es(), __toCommonJS(dist_es_exports)); + var import_util_middleware7 = require_dist_cjs6(); + var endpointMiddleware = /* @__PURE__ */ __name(({ + config, + instructions + }) => { + return (next, context) => async (args) => { + var _a2, _b, _c; + if (config.endpoint) { + (0, import_core17.setFeature)(context, "ENDPOINT_OVERRIDE", "N"); + } + const endpoint = await getEndpointFromInstructions( + args.input, + { + getEndpointParameterInstructions() { + return instructions; + } + }, + { ...config }, + context + ); + context.endpointV2 = endpoint; + context.authSchemes = (_a2 = endpoint.properties) == null ? void 0 : _a2.authSchemes; + const authScheme = (_b = context.authSchemes) == null ? void 0 : _b[0]; + if (authScheme) { + context["signing_region"] = authScheme.signingRegion; + context["signing_service"] = authScheme.signingName; + const smithyContext = (0, import_util_middleware7.getSmithyContext)(context); + const httpAuthOption = (_c = smithyContext == null ? void 0 : smithyContext.selectedHttpAuthScheme) == null ? void 0 : _c.httpAuthOption; + if (httpAuthOption) { + httpAuthOption.signingProperties = Object.assign( + httpAuthOption.signingProperties || {}, + { + signing_region: authScheme.signingRegion, + signingRegion: authScheme.signingRegion, + signing_service: authScheme.signingName, + signingName: authScheme.signingName, + signingRegionSet: authScheme.signingRegionSet + }, + authScheme.properties + ); + } + } + return next({ + ...args + }); + }; + }, "endpointMiddleware"); + var import_middleware_serde5 = require_dist_cjs7(); + var endpointMiddlewareOptions = { + step: "serialize", + tags: ["ENDPOINT_PARAMETERS", "ENDPOINT_V2", "ENDPOINT"], + name: "endpointV2Middleware", + override: true, + relation: "before", + toMiddleware: import_middleware_serde5.serializerMiddlewareOption.name + }; + var getEndpointPlugin4 = /* @__PURE__ */ __name((config, instructions) => ({ + applyToStack: (clientStack) => { + clientStack.addRelativeTo( + endpointMiddleware({ + config, + instructions + }), + endpointMiddlewareOptions + ); + } + }), "getEndpointPlugin"); + var import_getEndpointFromConfig2 = require_getEndpointFromConfig(); + var resolveEndpointConfig3 = /* @__PURE__ */ __name((input) => { + const tls = input.tls ?? true; + const { endpoint, useDualstackEndpoint, useFipsEndpoint } = input; + const customEndpointProvider = endpoint != null ? async () => toEndpointV1(await (0, import_util_middleware7.normalizeProvider)(endpoint)()) : void 0; + const isCustomEndpoint = !!endpoint; + const resolvedConfig = Object.assign(input, { + endpoint: customEndpointProvider, + tls, + isCustomEndpoint, + useDualstackEndpoint: (0, import_util_middleware7.normalizeProvider)(useDualstackEndpoint ?? false), + useFipsEndpoint: (0, import_util_middleware7.normalizeProvider)(useFipsEndpoint ?? false) + }); + let configuredEndpointPromise = void 0; + resolvedConfig.serviceConfiguredEndpoint = async () => { + if (input.serviceId && !configuredEndpointPromise) { + configuredEndpointPromise = (0, import_getEndpointFromConfig2.getEndpointFromConfig)(input.serviceId); + } + return configuredEndpointPromise; + }; + return resolvedConfig; + }, "resolveEndpointConfig"); + } +}); + +// ../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-node/rng.js +function rng() { + if (poolPtr > rnds8Pool.length - 16) { + import_crypto2.default.randomFillSync(rnds8Pool); + poolPtr = 0; + } + return rnds8Pool.slice(poolPtr, poolPtr += 16); +} +var import_crypto2, rnds8Pool, poolPtr; +var init_rng = __esm({ + "../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-node/rng.js"() { + import_crypto2 = __toESM(require("crypto")); + rnds8Pool = new Uint8Array(256); + poolPtr = rnds8Pool.length; + } +}); + +// ../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-node/regex.js +var regex_default; +var init_regex = __esm({ + "../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-node/regex.js"() { + regex_default = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i; + } +}); + +// ../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-node/validate.js +function validate(uuid) { + return typeof uuid === "string" && regex_default.test(uuid); +} +var validate_default; +var init_validate = __esm({ + "../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-node/validate.js"() { + init_regex(); + validate_default = validate; + } +}); + +// ../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-node/stringify.js +function unsafeStringify(arr, offset = 0) { + return byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + "-" + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + "-" + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + "-" + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + "-" + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]; +} +function stringify(arr, offset = 0) { + const uuid = unsafeStringify(arr, offset); + if (!validate_default(uuid)) { + throw TypeError("Stringified UUID is invalid"); + } + return uuid; +} +var byteToHex, stringify_default; +var init_stringify = __esm({ + "../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-node/stringify.js"() { + init_validate(); + byteToHex = []; + for (let i4 = 0; i4 < 256; ++i4) { + byteToHex.push((i4 + 256).toString(16).slice(1)); + } + stringify_default = stringify; + } +}); + +// ../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-node/v1.js +function v1(options, buf, offset) { + let i4 = buf && offset || 0; + const b3 = buf || new Array(16); + options = options || {}; + let node = options.node || _nodeId; + let clockseq = options.clockseq !== void 0 ? options.clockseq : _clockseq; + if (node == null || clockseq == null) { + const seedBytes = options.random || (options.rng || rng)(); + if (node == null) { + node = _nodeId = [seedBytes[0] | 1, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]]; + } + if (clockseq == null) { + clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 16383; + } + } + let msecs = options.msecs !== void 0 ? options.msecs : Date.now(); + let nsecs = options.nsecs !== void 0 ? options.nsecs : _lastNSecs + 1; + const dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 1e4; + if (dt < 0 && options.clockseq === void 0) { + clockseq = clockseq + 1 & 16383; + } + if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === void 0) { + nsecs = 0; + } + if (nsecs >= 1e4) { + throw new Error("uuid.v1(): Can't create more than 10M uuids/sec"); + } + _lastMSecs = msecs; + _lastNSecs = nsecs; + _clockseq = clockseq; + msecs += 122192928e5; + const tl = ((msecs & 268435455) * 1e4 + nsecs) % 4294967296; + b3[i4++] = tl >>> 24 & 255; + b3[i4++] = tl >>> 16 & 255; + b3[i4++] = tl >>> 8 & 255; + b3[i4++] = tl & 255; + const tmh = msecs / 4294967296 * 1e4 & 268435455; + b3[i4++] = tmh >>> 8 & 255; + b3[i4++] = tmh & 255; + b3[i4++] = tmh >>> 24 & 15 | 16; + b3[i4++] = tmh >>> 16 & 255; + b3[i4++] = clockseq >>> 8 | 128; + b3[i4++] = clockseq & 255; + for (let n3 = 0; n3 < 6; ++n3) { + b3[i4 + n3] = node[n3]; + } + return buf || unsafeStringify(b3); +} +var _nodeId, _clockseq, _lastMSecs, _lastNSecs, v1_default; +var init_v1 = __esm({ + "../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-node/v1.js"() { + init_rng(); + init_stringify(); + _lastMSecs = 0; + _lastNSecs = 0; + v1_default = v1; + } +}); + +// ../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-node/parse.js +function parse2(uuid) { + if (!validate_default(uuid)) { + throw TypeError("Invalid UUID"); + } + let v6; + const arr = new Uint8Array(16); + arr[0] = (v6 = parseInt(uuid.slice(0, 8), 16)) >>> 24; + arr[1] = v6 >>> 16 & 255; + arr[2] = v6 >>> 8 & 255; + arr[3] = v6 & 255; + arr[4] = (v6 = parseInt(uuid.slice(9, 13), 16)) >>> 8; + arr[5] = v6 & 255; + arr[6] = (v6 = parseInt(uuid.slice(14, 18), 16)) >>> 8; + arr[7] = v6 & 255; + arr[8] = (v6 = parseInt(uuid.slice(19, 23), 16)) >>> 8; + arr[9] = v6 & 255; + arr[10] = (v6 = parseInt(uuid.slice(24, 36), 16)) / 1099511627776 & 255; + arr[11] = v6 / 4294967296 & 255; + arr[12] = v6 >>> 24 & 255; + arr[13] = v6 >>> 16 & 255; + arr[14] = v6 >>> 8 & 255; + arr[15] = v6 & 255; + return arr; +} +var parse_default; +var init_parse = __esm({ + "../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-node/parse.js"() { + init_validate(); + parse_default = parse2; + } +}); + +// ../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-node/v35.js +function stringToBytes(str) { + str = unescape(encodeURIComponent(str)); + const bytes = []; + for (let i4 = 0; i4 < str.length; ++i4) { + bytes.push(str.charCodeAt(i4)); + } + return bytes; +} +function v35(name, version3, hashfunc) { + function generateUUID(value, namespace, buf, offset) { + var _namespace; + if (typeof value === "string") { + value = stringToBytes(value); + } + if (typeof namespace === "string") { + namespace = parse_default(namespace); + } + if (((_namespace = namespace) === null || _namespace === void 0 ? void 0 : _namespace.length) !== 16) { + throw TypeError("Namespace must be array-like (16 iterable integer values, 0-255)"); + } + let bytes = new Uint8Array(16 + value.length); + bytes.set(namespace); + bytes.set(value, namespace.length); + bytes = hashfunc(bytes); + bytes[6] = bytes[6] & 15 | version3; + bytes[8] = bytes[8] & 63 | 128; + if (buf) { + offset = offset || 0; + for (let i4 = 0; i4 < 16; ++i4) { + buf[offset + i4] = bytes[i4]; + } + return buf; + } + return unsafeStringify(bytes); + } + try { + generateUUID.name = name; + } catch (err2) { + } + generateUUID.DNS = DNS; + generateUUID.URL = URL2; + return generateUUID; +} +var DNS, URL2; +var init_v35 = __esm({ + "../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-node/v35.js"() { + init_stringify(); + init_parse(); + DNS = "6ba7b810-9dad-11d1-80b4-00c04fd430c8"; + URL2 = "6ba7b811-9dad-11d1-80b4-00c04fd430c8"; + } +}); + +// ../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-node/md5.js +function md5(bytes) { + if (Array.isArray(bytes)) { + bytes = Buffer.from(bytes); + } else if (typeof bytes === "string") { + bytes = Buffer.from(bytes, "utf8"); + } + return import_crypto3.default.createHash("md5").update(bytes).digest(); +} +var import_crypto3, md5_default; +var init_md5 = __esm({ + "../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-node/md5.js"() { + import_crypto3 = __toESM(require("crypto")); + md5_default = md5; + } +}); + +// ../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-node/v3.js +var v3, v3_default2; +var init_v32 = __esm({ + "../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-node/v3.js"() { + init_v35(); + init_md5(); + v3 = v35("v3", 48, md5_default); + v3_default2 = v3; + } +}); + +// ../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-node/native.js +var import_crypto4, native_default; +var init_native = __esm({ + "../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-node/native.js"() { + import_crypto4 = __toESM(require("crypto")); + native_default = { + randomUUID: import_crypto4.default.randomUUID + }; + } +}); + +// ../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-node/v4.js +function v4(options, buf, offset) { + if (native_default.randomUUID && !buf && !options) { + return native_default.randomUUID(); + } + options = options || {}; + const rnds = options.random || (options.rng || rng)(); + rnds[6] = rnds[6] & 15 | 64; + rnds[8] = rnds[8] & 63 | 128; + if (buf) { + offset = offset || 0; + for (let i4 = 0; i4 < 16; ++i4) { + buf[offset + i4] = rnds[i4]; + } + return buf; + } + return unsafeStringify(rnds); +} +var v4_default; +var init_v4 = __esm({ + "../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-node/v4.js"() { + init_native(); + init_rng(); + init_stringify(); + v4_default = v4; + } +}); + +// ../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-node/sha1.js +function sha1(bytes) { + if (Array.isArray(bytes)) { + bytes = Buffer.from(bytes); + } else if (typeof bytes === "string") { + bytes = Buffer.from(bytes, "utf8"); + } + return import_crypto5.default.createHash("sha1").update(bytes).digest(); +} +var import_crypto5, sha1_default; +var init_sha1 = __esm({ + "../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-node/sha1.js"() { + import_crypto5 = __toESM(require("crypto")); + sha1_default = sha1; + } +}); + +// ../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-node/v5.js +var v5, v5_default; +var init_v5 = __esm({ + "../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-node/v5.js"() { + init_v35(); + init_sha1(); + v5 = v35("v5", 80, sha1_default); + v5_default = v5; + } +}); + +// ../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-node/nil.js +var nil_default; +var init_nil = __esm({ + "../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-node/nil.js"() { + nil_default = "00000000-0000-0000-0000-000000000000"; + } +}); + +// ../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-node/version.js +function version(uuid) { + if (!validate_default(uuid)) { + throw TypeError("Invalid UUID"); + } + return parseInt(uuid.slice(14, 15), 16); +} +var version_default; +var init_version = __esm({ + "../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-node/version.js"() { + init_validate(); + version_default = version; + } +}); + +// ../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-node/index.js +var esm_node_exports = {}; +__export(esm_node_exports, { + NIL: () => nil_default, + parse: () => parse_default, + stringify: () => stringify_default, + v1: () => v1_default, + v3: () => v3_default2, + v4: () => v4_default, + v5: () => v5_default, + validate: () => validate_default, + version: () => version_default +}); +var init_esm_node = __esm({ + "../node_modules/.pnpm/uuid@9.0.1/node_modules/uuid/dist/esm-node/index.js"() { + init_v1(); + init_v32(); + init_v4(); + init_v5(); + init_nil(); + init_version(); + init_validate(); + init_stringify(); + init_parse(); + } +}); + +// ../node_modules/.pnpm/@smithy+service-error-classification@4.0.5/node_modules/@smithy/service-error-classification/dist-cjs/index.js +var require_dist_cjs33 = __commonJS({ + "../node_modules/.pnpm/@smithy+service-error-classification@4.0.5/node_modules/@smithy/service-error-classification/dist-cjs/index.js"(exports2, module2) { + var __defProp3 = Object.defineProperty; + var __getOwnPropDesc3 = Object.getOwnPropertyDescriptor; + var __getOwnPropNames3 = Object.getOwnPropertyNames; + var __hasOwnProp3 = Object.prototype.hasOwnProperty; + var __name = (target, value) => __defProp3(target, "name", { value, configurable: true }); + var __export2 = (target, all) => { + for (var name in all) + __defProp3(target, name, { get: all[name], enumerable: true }); + }; + var __copyProps3 = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames3(from)) + if (!__hasOwnProp3.call(to, key) && key !== except) + __defProp3(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc3(from, key)) || desc.enumerable }); + } + return to; + }; + var __toCommonJS2 = (mod) => __copyProps3(__defProp3({}, "__esModule", { value: true }), mod); + var src_exports = {}; + __export2(src_exports, { + isBrowserNetworkError: () => isBrowserNetworkError, + isClockSkewCorrectedError: () => isClockSkewCorrectedError, + isClockSkewError: () => isClockSkewError, + isRetryableByTrait: () => isRetryableByTrait, + isServerError: () => isServerError, + isThrottlingError: () => isThrottlingError, + isTransientError: () => isTransientError + }); + module2.exports = __toCommonJS2(src_exports); + var CLOCK_SKEW_ERROR_CODES = [ + "AuthFailure", + "InvalidSignatureException", + "RequestExpired", + "RequestInTheFuture", + "RequestTimeTooSkewed", + "SignatureDoesNotMatch" + ]; + var THROTTLING_ERROR_CODES = [ + "BandwidthLimitExceeded", + "EC2ThrottledException", + "LimitExceededException", + "PriorRequestNotComplete", + "ProvisionedThroughputExceededException", + "RequestLimitExceeded", + "RequestThrottled", + "RequestThrottledException", + "SlowDown", + "ThrottledException", + "Throttling", + "ThrottlingException", + "TooManyRequestsException", + "TransactionInProgressException" + // DynamoDB + ]; + var TRANSIENT_ERROR_CODES = ["TimeoutError", "RequestTimeout", "RequestTimeoutException"]; + var TRANSIENT_ERROR_STATUS_CODES = [500, 502, 503, 504]; + var NODEJS_TIMEOUT_ERROR_CODES = ["ECONNRESET", "ECONNREFUSED", "EPIPE", "ETIMEDOUT"]; + var isRetryableByTrait = /* @__PURE__ */ __name((error2) => error2.$retryable !== void 0, "isRetryableByTrait"); + var isClockSkewError = /* @__PURE__ */ __name((error2) => CLOCK_SKEW_ERROR_CODES.includes(error2.name), "isClockSkewError"); + var isClockSkewCorrectedError = /* @__PURE__ */ __name((error2) => { + var _a2; + return (_a2 = error2.$metadata) == null ? void 0 : _a2.clockSkewCorrected; + }, "isClockSkewCorrectedError"); + var isBrowserNetworkError = /* @__PURE__ */ __name((error2) => { + const errorMessages = /* @__PURE__ */ new Set([ + "Failed to fetch", + // Chrome + "NetworkError when attempting to fetch resource", + // Firefox + "The Internet connection appears to be offline", + // Safari 16 + "Load failed", + // Safari 17+ + "Network request failed" + // `cross-fetch` + ]); + const isValid2 = error2 && error2 instanceof TypeError; + if (!isValid2) { + return false; + } + return errorMessages.has(error2.message); + }, "isBrowserNetworkError"); + var isThrottlingError = /* @__PURE__ */ __name((error2) => { + var _a2, _b; + return ((_a2 = error2.$metadata) == null ? void 0 : _a2.httpStatusCode) === 429 || THROTTLING_ERROR_CODES.includes(error2.name) || ((_b = error2.$retryable) == null ? void 0 : _b.throttling) == true; + }, "isThrottlingError"); + var isTransientError = /* @__PURE__ */ __name((error2, depth = 0) => { + var _a2; + return isClockSkewCorrectedError(error2) || TRANSIENT_ERROR_CODES.includes(error2.name) || NODEJS_TIMEOUT_ERROR_CODES.includes((error2 == null ? void 0 : error2.code) || "") || TRANSIENT_ERROR_STATUS_CODES.includes(((_a2 = error2.$metadata) == null ? void 0 : _a2.httpStatusCode) || 0) || isBrowserNetworkError(error2) || error2.cause !== void 0 && depth <= 10 && isTransientError(error2.cause, depth + 1); + }, "isTransientError"); + var isServerError = /* @__PURE__ */ __name((error2) => { + var _a2; + if (((_a2 = error2.$metadata) == null ? void 0 : _a2.httpStatusCode) !== void 0) { + const statusCode = error2.$metadata.httpStatusCode; + if (500 <= statusCode && statusCode <= 599 && !isTransientError(error2)) { + return true; + } + return false; + } + return false; + }, "isServerError"); + } +}); + +// ../node_modules/.pnpm/@smithy+util-retry@4.0.5/node_modules/@smithy/util-retry/dist-cjs/index.js +var require_dist_cjs34 = __commonJS({ + "../node_modules/.pnpm/@smithy+util-retry@4.0.5/node_modules/@smithy/util-retry/dist-cjs/index.js"(exports2, module2) { + var __defProp3 = Object.defineProperty; + var __getOwnPropDesc3 = Object.getOwnPropertyDescriptor; + var __getOwnPropNames3 = Object.getOwnPropertyNames; + var __hasOwnProp3 = Object.prototype.hasOwnProperty; + var __name = (target, value) => __defProp3(target, "name", { value, configurable: true }); + var __export2 = (target, all) => { + for (var name in all) + __defProp3(target, name, { get: all[name], enumerable: true }); + }; + var __copyProps3 = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames3(from)) + if (!__hasOwnProp3.call(to, key) && key !== except) + __defProp3(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc3(from, key)) || desc.enumerable }); + } + return to; + }; + var __toCommonJS2 = (mod) => __copyProps3(__defProp3({}, "__esModule", { value: true }), mod); + var src_exports = {}; + __export2(src_exports, { + AdaptiveRetryStrategy: () => AdaptiveRetryStrategy, + ConfiguredRetryStrategy: () => ConfiguredRetryStrategy, + DEFAULT_MAX_ATTEMPTS: () => DEFAULT_MAX_ATTEMPTS, + DEFAULT_RETRY_DELAY_BASE: () => DEFAULT_RETRY_DELAY_BASE, + DEFAULT_RETRY_MODE: () => DEFAULT_RETRY_MODE3, + DefaultRateLimiter: () => DefaultRateLimiter, + INITIAL_RETRY_TOKENS: () => INITIAL_RETRY_TOKENS, + INVOCATION_ID_HEADER: () => INVOCATION_ID_HEADER, + MAXIMUM_RETRY_DELAY: () => MAXIMUM_RETRY_DELAY, + NO_RETRY_INCREMENT: () => NO_RETRY_INCREMENT, + REQUEST_HEADER: () => REQUEST_HEADER, + RETRY_COST: () => RETRY_COST, + RETRY_MODES: () => RETRY_MODES, + StandardRetryStrategy: () => StandardRetryStrategy, + THROTTLING_RETRY_DELAY_BASE: () => THROTTLING_RETRY_DELAY_BASE, + TIMEOUT_RETRY_COST: () => TIMEOUT_RETRY_COST + }); + module2.exports = __toCommonJS2(src_exports); + var RETRY_MODES = /* @__PURE__ */ ((RETRY_MODES2) => { + RETRY_MODES2["STANDARD"] = "standard"; + RETRY_MODES2["ADAPTIVE"] = "adaptive"; + return RETRY_MODES2; + })(RETRY_MODES || {}); + var DEFAULT_MAX_ATTEMPTS = 3; + var DEFAULT_RETRY_MODE3 = "standard"; + var import_service_error_classification = require_dist_cjs33(); + var _a2; + var DefaultRateLimiter = (_a2 = class { + constructor(options) { + this.currentCapacity = 0; + this.enabled = false; + this.lastMaxRate = 0; + this.measuredTxRate = 0; + this.requestCount = 0; + this.lastTimestamp = 0; + this.timeWindow = 0; + this.beta = (options == null ? void 0 : options.beta) ?? 0.7; + this.minCapacity = (options == null ? void 0 : options.minCapacity) ?? 1; + this.minFillRate = (options == null ? void 0 : options.minFillRate) ?? 0.5; + this.scaleConstant = (options == null ? void 0 : options.scaleConstant) ?? 0.4; + this.smooth = (options == null ? void 0 : options.smooth) ?? 0.8; + const currentTimeInSeconds = this.getCurrentTimeInSeconds(); + this.lastThrottleTime = currentTimeInSeconds; + this.lastTxRateBucket = Math.floor(this.getCurrentTimeInSeconds()); + this.fillRate = this.minFillRate; + this.maxCapacity = this.minCapacity; + } + getCurrentTimeInSeconds() { + return Date.now() / 1e3; + } + async getSendToken() { + return this.acquireTokenBucket(1); + } + async acquireTokenBucket(amount) { + if (!this.enabled) { + return; + } + this.refillTokenBucket(); + if (amount > this.currentCapacity) { + const delay = (amount - this.currentCapacity) / this.fillRate * 1e3; + await new Promise((resolve2) => _a2.setTimeoutFn(resolve2, delay)); + } + this.currentCapacity = this.currentCapacity - amount; + } + refillTokenBucket() { + const timestamp = this.getCurrentTimeInSeconds(); + if (!this.lastTimestamp) { + this.lastTimestamp = timestamp; + return; + } + const fillAmount = (timestamp - this.lastTimestamp) * this.fillRate; + this.currentCapacity = Math.min(this.maxCapacity, this.currentCapacity + fillAmount); + this.lastTimestamp = timestamp; + } + updateClientSendingRate(response) { + let calculatedRate; + this.updateMeasuredRate(); + if ((0, import_service_error_classification.isThrottlingError)(response)) { + const rateToUse = !this.enabled ? this.measuredTxRate : Math.min(this.measuredTxRate, this.fillRate); + this.lastMaxRate = rateToUse; + this.calculateTimeWindow(); + this.lastThrottleTime = this.getCurrentTimeInSeconds(); + calculatedRate = this.cubicThrottle(rateToUse); + this.enableTokenBucket(); + } else { + this.calculateTimeWindow(); + calculatedRate = this.cubicSuccess(this.getCurrentTimeInSeconds()); + } + const newRate = Math.min(calculatedRate, 2 * this.measuredTxRate); + this.updateTokenBucketRate(newRate); + } + calculateTimeWindow() { + this.timeWindow = this.getPrecise(Math.pow(this.lastMaxRate * (1 - this.beta) / this.scaleConstant, 1 / 3)); + } + cubicThrottle(rateToUse) { + return this.getPrecise(rateToUse * this.beta); + } + cubicSuccess(timestamp) { + return this.getPrecise( + this.scaleConstant * Math.pow(timestamp - this.lastThrottleTime - this.timeWindow, 3) + this.lastMaxRate + ); + } + enableTokenBucket() { + this.enabled = true; + } + updateTokenBucketRate(newRate) { + this.refillTokenBucket(); + this.fillRate = Math.max(newRate, this.minFillRate); + this.maxCapacity = Math.max(newRate, this.minCapacity); + this.currentCapacity = Math.min(this.currentCapacity, this.maxCapacity); + } + updateMeasuredRate() { + const t4 = this.getCurrentTimeInSeconds(); + const timeBucket = Math.floor(t4 * 2) / 2; + this.requestCount++; + if (timeBucket > this.lastTxRateBucket) { + const currentRate = this.requestCount / (timeBucket - this.lastTxRateBucket); + this.measuredTxRate = this.getPrecise(currentRate * this.smooth + this.measuredTxRate * (1 - this.smooth)); + this.requestCount = 0; + this.lastTxRateBucket = timeBucket; + } + } + getPrecise(num) { + return parseFloat(num.toFixed(8)); + } + }, __name(_a2, "DefaultRateLimiter"), _a2.setTimeoutFn = setTimeout, _a2); + var DEFAULT_RETRY_DELAY_BASE = 100; + var MAXIMUM_RETRY_DELAY = 20 * 1e3; + var THROTTLING_RETRY_DELAY_BASE = 500; + var INITIAL_RETRY_TOKENS = 500; + var RETRY_COST = 5; + var TIMEOUT_RETRY_COST = 10; + var NO_RETRY_INCREMENT = 1; + var INVOCATION_ID_HEADER = "amz-sdk-invocation-id"; + var REQUEST_HEADER = "amz-sdk-request"; + var getDefaultRetryBackoffStrategy = /* @__PURE__ */ __name(() => { + let delayBase = DEFAULT_RETRY_DELAY_BASE; + const computeNextBackoffDelay = /* @__PURE__ */ __name((attempts) => { + return Math.floor(Math.min(MAXIMUM_RETRY_DELAY, Math.random() * 2 ** attempts * delayBase)); + }, "computeNextBackoffDelay"); + const setDelayBase = /* @__PURE__ */ __name((delay) => { + delayBase = delay; + }, "setDelayBase"); + return { + computeNextBackoffDelay, + setDelayBase + }; + }, "getDefaultRetryBackoffStrategy"); + var createDefaultRetryToken = /* @__PURE__ */ __name(({ + retryDelay, + retryCount, + retryCost + }) => { + const getRetryCount = /* @__PURE__ */ __name(() => retryCount, "getRetryCount"); + const getRetryDelay = /* @__PURE__ */ __name(() => Math.min(MAXIMUM_RETRY_DELAY, retryDelay), "getRetryDelay"); + const getRetryCost = /* @__PURE__ */ __name(() => retryCost, "getRetryCost"); + return { + getRetryCount, + getRetryDelay, + getRetryCost + }; + }, "createDefaultRetryToken"); + var _a3; + var StandardRetryStrategy = (_a3 = class { + constructor(maxAttempts) { + this.maxAttempts = maxAttempts; + this.mode = "standard"; + this.capacity = INITIAL_RETRY_TOKENS; + this.retryBackoffStrategy = getDefaultRetryBackoffStrategy(); + this.maxAttemptsProvider = typeof maxAttempts === "function" ? maxAttempts : async () => maxAttempts; + } + // eslint-disable-next-line @typescript-eslint/no-unused-vars + async acquireInitialRetryToken(retryTokenScope) { + return createDefaultRetryToken({ + retryDelay: DEFAULT_RETRY_DELAY_BASE, + retryCount: 0 + }); + } + async refreshRetryTokenForRetry(token, errorInfo) { + const maxAttempts = await this.getMaxAttempts(); + if (this.shouldRetry(token, errorInfo, maxAttempts)) { + const errorType = errorInfo.errorType; + this.retryBackoffStrategy.setDelayBase( + errorType === "THROTTLING" ? THROTTLING_RETRY_DELAY_BASE : DEFAULT_RETRY_DELAY_BASE + ); + const delayFromErrorType = this.retryBackoffStrategy.computeNextBackoffDelay(token.getRetryCount()); + const retryDelay = errorInfo.retryAfterHint ? Math.max(errorInfo.retryAfterHint.getTime() - Date.now() || 0, delayFromErrorType) : delayFromErrorType; + const capacityCost = this.getCapacityCost(errorType); + this.capacity -= capacityCost; + return createDefaultRetryToken({ + retryDelay, + retryCount: token.getRetryCount() + 1, + retryCost: capacityCost + }); + } + throw new Error("No retry token available"); + } + recordSuccess(token) { + this.capacity = Math.max(INITIAL_RETRY_TOKENS, this.capacity + (token.getRetryCost() ?? NO_RETRY_INCREMENT)); + } + /** + * @returns the current available retry capacity. + * + * This number decreases when retries are executed and refills when requests or retries succeed. + */ + getCapacity() { + return this.capacity; + } + async getMaxAttempts() { + try { + return await this.maxAttemptsProvider(); + } catch (error2) { + console.warn(`Max attempts provider could not resolve. Using default of ${DEFAULT_MAX_ATTEMPTS}`); + return DEFAULT_MAX_ATTEMPTS; + } + } + shouldRetry(tokenToRenew, errorInfo, maxAttempts) { + const attempts = tokenToRenew.getRetryCount() + 1; + return attempts < maxAttempts && this.capacity >= this.getCapacityCost(errorInfo.errorType) && this.isRetryableError(errorInfo.errorType); + } + getCapacityCost(errorType) { + return errorType === "TRANSIENT" ? TIMEOUT_RETRY_COST : RETRY_COST; + } + isRetryableError(errorType) { + return errorType === "THROTTLING" || errorType === "TRANSIENT"; + } + }, __name(_a3, "StandardRetryStrategy"), _a3); + var _a4; + var AdaptiveRetryStrategy = (_a4 = class { + constructor(maxAttemptsProvider, options) { + this.maxAttemptsProvider = maxAttemptsProvider; + this.mode = "adaptive"; + const { rateLimiter } = options ?? {}; + this.rateLimiter = rateLimiter ?? new DefaultRateLimiter(); + this.standardRetryStrategy = new StandardRetryStrategy(maxAttemptsProvider); + } + async acquireInitialRetryToken(retryTokenScope) { + await this.rateLimiter.getSendToken(); + return this.standardRetryStrategy.acquireInitialRetryToken(retryTokenScope); + } + async refreshRetryTokenForRetry(tokenToRenew, errorInfo) { + this.rateLimiter.updateClientSendingRate(errorInfo); + return this.standardRetryStrategy.refreshRetryTokenForRetry(tokenToRenew, errorInfo); + } + recordSuccess(token) { + this.rateLimiter.updateClientSendingRate({}); + this.standardRetryStrategy.recordSuccess(token); + } + }, __name(_a4, "AdaptiveRetryStrategy"), _a4); + var _a5; + var ConfiguredRetryStrategy = (_a5 = class extends StandardRetryStrategy { + /** + * @param maxAttempts - the maximum number of retry attempts allowed. + * e.g., if set to 3, then 4 total requests are possible. + * @param computeNextBackoffDelay - a millisecond delay for each retry or a function that takes the retry attempt + * and returns the delay. + * + * @example exponential backoff. + * ```js + * new Client({ + * retryStrategy: new ConfiguredRetryStrategy(3, (attempt) => attempt ** 2) + * }); + * ``` + * @example constant delay. + * ```js + * new Client({ + * retryStrategy: new ConfiguredRetryStrategy(3, 2000) + * }); + * ``` + */ + constructor(maxAttempts, computeNextBackoffDelay = DEFAULT_RETRY_DELAY_BASE) { + super(typeof maxAttempts === "function" ? maxAttempts : async () => maxAttempts); + if (typeof computeNextBackoffDelay === "number") { + this.computeNextBackoffDelay = () => computeNextBackoffDelay; + } else { + this.computeNextBackoffDelay = computeNextBackoffDelay; + } + } + async refreshRetryTokenForRetry(tokenToRenew, errorInfo) { + const token = await super.refreshRetryTokenForRetry(tokenToRenew, errorInfo); + token.getRetryDelay = () => this.computeNextBackoffDelay(token.getRetryCount()); + return token; + } + }, __name(_a5, "ConfiguredRetryStrategy"), _a5); + } +}); + +// ../node_modules/.pnpm/@smithy+middleware-retry@4.1.10/node_modules/@smithy/middleware-retry/dist-cjs/isStreamingPayload/isStreamingPayload.js +var require_isStreamingPayload = __commonJS({ + "../node_modules/.pnpm/@smithy+middleware-retry@4.1.10/node_modules/@smithy/middleware-retry/dist-cjs/isStreamingPayload/isStreamingPayload.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.isStreamingPayload = void 0; + var stream_1 = require("stream"); + var isStreamingPayload = (request) => (request === null || request === void 0 ? void 0 : request.body) instanceof stream_1.Readable || typeof ReadableStream !== "undefined" && (request === null || request === void 0 ? void 0 : request.body) instanceof ReadableStream; + exports2.isStreamingPayload = isStreamingPayload; + } +}); + +// ../node_modules/.pnpm/@smithy+middleware-retry@4.1.10/node_modules/@smithy/middleware-retry/dist-cjs/index.js +var require_dist_cjs35 = __commonJS({ + "../node_modules/.pnpm/@smithy+middleware-retry@4.1.10/node_modules/@smithy/middleware-retry/dist-cjs/index.js"(exports2, module2) { + var __defProp3 = Object.defineProperty; + var __getOwnPropDesc3 = Object.getOwnPropertyDescriptor; + var __getOwnPropNames3 = Object.getOwnPropertyNames; + var __hasOwnProp3 = Object.prototype.hasOwnProperty; + var __name = (target, value) => __defProp3(target, "name", { value, configurable: true }); + var __export2 = (target, all) => { + for (var name in all) + __defProp3(target, name, { get: all[name], enumerable: true }); + }; + var __copyProps3 = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames3(from)) + if (!__hasOwnProp3.call(to, key) && key !== except) + __defProp3(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc3(from, key)) || desc.enumerable }); + } + return to; + }; + var __toCommonJS2 = (mod) => __copyProps3(__defProp3({}, "__esModule", { value: true }), mod); + var src_exports = {}; + __export2(src_exports, { + AdaptiveRetryStrategy: () => AdaptiveRetryStrategy, + CONFIG_MAX_ATTEMPTS: () => CONFIG_MAX_ATTEMPTS, + CONFIG_RETRY_MODE: () => CONFIG_RETRY_MODE, + ENV_MAX_ATTEMPTS: () => ENV_MAX_ATTEMPTS, + ENV_RETRY_MODE: () => ENV_RETRY_MODE, + NODE_MAX_ATTEMPT_CONFIG_OPTIONS: () => NODE_MAX_ATTEMPT_CONFIG_OPTIONS3, + NODE_RETRY_MODE_CONFIG_OPTIONS: () => NODE_RETRY_MODE_CONFIG_OPTIONS3, + StandardRetryStrategy: () => StandardRetryStrategy, + defaultDelayDecider: () => defaultDelayDecider, + defaultRetryDecider: () => defaultRetryDecider, + getOmitRetryHeadersPlugin: () => getOmitRetryHeadersPlugin, + getRetryAfterHint: () => getRetryAfterHint, + getRetryPlugin: () => getRetryPlugin3, + omitRetryHeadersMiddleware: () => omitRetryHeadersMiddleware, + omitRetryHeadersMiddlewareOptions: () => omitRetryHeadersMiddlewareOptions, + resolveRetryConfig: () => resolveRetryConfig3, + retryMiddleware: () => retryMiddleware, + retryMiddlewareOptions: () => retryMiddlewareOptions + }); + module2.exports = __toCommonJS2(src_exports); + var import_protocol_http15 = require_dist_cjs2(); + var import_uuid = (init_esm_node(), __toCommonJS(esm_node_exports)); + var import_util_retry3 = require_dist_cjs34(); + var getDefaultRetryQuota = /* @__PURE__ */ __name((initialRetryTokens, options) => { + const MAX_CAPACITY = initialRetryTokens; + const noRetryIncrement = (options == null ? void 0 : options.noRetryIncrement) ?? import_util_retry3.NO_RETRY_INCREMENT; + const retryCost = (options == null ? void 0 : options.retryCost) ?? import_util_retry3.RETRY_COST; + const timeoutRetryCost = (options == null ? void 0 : options.timeoutRetryCost) ?? import_util_retry3.TIMEOUT_RETRY_COST; + let availableCapacity = initialRetryTokens; + const getCapacityAmount = /* @__PURE__ */ __name((error2) => error2.name === "TimeoutError" ? timeoutRetryCost : retryCost, "getCapacityAmount"); + const hasRetryTokens = /* @__PURE__ */ __name((error2) => getCapacityAmount(error2) <= availableCapacity, "hasRetryTokens"); + const retrieveRetryTokens = /* @__PURE__ */ __name((error2) => { + if (!hasRetryTokens(error2)) { + throw new Error("No retry token available"); + } + const capacityAmount = getCapacityAmount(error2); + availableCapacity -= capacityAmount; + return capacityAmount; + }, "retrieveRetryTokens"); + const releaseRetryTokens = /* @__PURE__ */ __name((capacityReleaseAmount) => { + availableCapacity += capacityReleaseAmount ?? noRetryIncrement; + availableCapacity = Math.min(availableCapacity, MAX_CAPACITY); + }, "releaseRetryTokens"); + return Object.freeze({ + hasRetryTokens, + retrieveRetryTokens, + releaseRetryTokens + }); + }, "getDefaultRetryQuota"); + var defaultDelayDecider = /* @__PURE__ */ __name((delayBase, attempts) => Math.floor(Math.min(import_util_retry3.MAXIMUM_RETRY_DELAY, Math.random() * 2 ** attempts * delayBase)), "defaultDelayDecider"); + var import_service_error_classification = require_dist_cjs33(); + var defaultRetryDecider = /* @__PURE__ */ __name((error2) => { + if (!error2) { + return false; + } + return (0, import_service_error_classification.isRetryableByTrait)(error2) || (0, import_service_error_classification.isClockSkewError)(error2) || (0, import_service_error_classification.isThrottlingError)(error2) || (0, import_service_error_classification.isTransientError)(error2); + }, "defaultRetryDecider"); + var asSdkError = /* @__PURE__ */ __name((error2) => { + if (error2 instanceof Error) + return error2; + if (error2 instanceof Object) + return Object.assign(new Error(), error2); + if (typeof error2 === "string") + return new Error(error2); + return new Error(`AWS SDK error wrapper for ${error2}`); + }, "asSdkError"); + var _a2; + var StandardRetryStrategy = (_a2 = class { + constructor(maxAttemptsProvider, options) { + this.maxAttemptsProvider = maxAttemptsProvider; + this.mode = import_util_retry3.RETRY_MODES.STANDARD; + this.retryDecider = (options == null ? void 0 : options.retryDecider) ?? defaultRetryDecider; + this.delayDecider = (options == null ? void 0 : options.delayDecider) ?? defaultDelayDecider; + this.retryQuota = (options == null ? void 0 : options.retryQuota) ?? getDefaultRetryQuota(import_util_retry3.INITIAL_RETRY_TOKENS); + } + shouldRetry(error2, attempts, maxAttempts) { + return attempts < maxAttempts && this.retryDecider(error2) && this.retryQuota.hasRetryTokens(error2); + } + async getMaxAttempts() { + let maxAttempts; + try { + maxAttempts = await this.maxAttemptsProvider(); + } catch (error2) { + maxAttempts = import_util_retry3.DEFAULT_MAX_ATTEMPTS; + } + return maxAttempts; + } + async retry(next, args, options) { + let retryTokenAmount; + let attempts = 0; + let totalDelay = 0; + const maxAttempts = await this.getMaxAttempts(); + const { request } = args; + if (import_protocol_http15.HttpRequest.isInstance(request)) { + request.headers[import_util_retry3.INVOCATION_ID_HEADER] = (0, import_uuid.v4)(); + } + while (true) { + try { + if (import_protocol_http15.HttpRequest.isInstance(request)) { + request.headers[import_util_retry3.REQUEST_HEADER] = `attempt=${attempts + 1}; max=${maxAttempts}`; + } + if (options == null ? void 0 : options.beforeRequest) { + await options.beforeRequest(); + } + const { response, output } = await next(args); + if (options == null ? void 0 : options.afterRequest) { + options.afterRequest(response); + } + this.retryQuota.releaseRetryTokens(retryTokenAmount); + output.$metadata.attempts = attempts + 1; + output.$metadata.totalRetryDelay = totalDelay; + return { response, output }; + } catch (e4) { + const err2 = asSdkError(e4); + attempts++; + if (this.shouldRetry(err2, attempts, maxAttempts)) { + retryTokenAmount = this.retryQuota.retrieveRetryTokens(err2); + const delayFromDecider = this.delayDecider( + (0, import_service_error_classification.isThrottlingError)(err2) ? import_util_retry3.THROTTLING_RETRY_DELAY_BASE : import_util_retry3.DEFAULT_RETRY_DELAY_BASE, + attempts + ); + const delayFromResponse = getDelayFromRetryAfterHeader(err2.$response); + const delay = Math.max(delayFromResponse || 0, delayFromDecider); + totalDelay += delay; + await new Promise((resolve2) => setTimeout(resolve2, delay)); + continue; + } + if (!err2.$metadata) { + err2.$metadata = {}; + } + err2.$metadata.attempts = attempts; + err2.$metadata.totalRetryDelay = totalDelay; + throw err2; + } + } + } + }, __name(_a2, "StandardRetryStrategy"), _a2); + var getDelayFromRetryAfterHeader = /* @__PURE__ */ __name((response) => { + if (!import_protocol_http15.HttpResponse.isInstance(response)) + return; + const retryAfterHeaderName = Object.keys(response.headers).find((key) => key.toLowerCase() === "retry-after"); + if (!retryAfterHeaderName) + return; + const retryAfter = response.headers[retryAfterHeaderName]; + const retryAfterSeconds = Number(retryAfter); + if (!Number.isNaN(retryAfterSeconds)) + return retryAfterSeconds * 1e3; + const retryAfterDate = new Date(retryAfter); + return retryAfterDate.getTime() - Date.now(); + }, "getDelayFromRetryAfterHeader"); + var _a3; + var AdaptiveRetryStrategy = (_a3 = class extends StandardRetryStrategy { + constructor(maxAttemptsProvider, options) { + const { rateLimiter, ...superOptions } = options ?? {}; + super(maxAttemptsProvider, superOptions); + this.rateLimiter = rateLimiter ?? new import_util_retry3.DefaultRateLimiter(); + this.mode = import_util_retry3.RETRY_MODES.ADAPTIVE; + } + async retry(next, args) { + return super.retry(next, args, { + beforeRequest: async () => { + return this.rateLimiter.getSendToken(); + }, + afterRequest: (response) => { + this.rateLimiter.updateClientSendingRate(response); + } + }); + } + }, __name(_a3, "AdaptiveRetryStrategy"), _a3); + var import_util_middleware7 = require_dist_cjs6(); + var ENV_MAX_ATTEMPTS = "AWS_MAX_ATTEMPTS"; + var CONFIG_MAX_ATTEMPTS = "max_attempts"; + var NODE_MAX_ATTEMPT_CONFIG_OPTIONS3 = { + environmentVariableSelector: (env3) => { + const value = env3[ENV_MAX_ATTEMPTS]; + if (!value) + return void 0; + const maxAttempt = parseInt(value); + if (Number.isNaN(maxAttempt)) { + throw new Error(`Environment variable ${ENV_MAX_ATTEMPTS} mast be a number, got "${value}"`); + } + return maxAttempt; + }, + configFileSelector: (profile) => { + const value = profile[CONFIG_MAX_ATTEMPTS]; + if (!value) + return void 0; + const maxAttempt = parseInt(value); + if (Number.isNaN(maxAttempt)) { + throw new Error(`Shared config file entry ${CONFIG_MAX_ATTEMPTS} mast be a number, got "${value}"`); + } + return maxAttempt; + }, + default: import_util_retry3.DEFAULT_MAX_ATTEMPTS + }; + var resolveRetryConfig3 = /* @__PURE__ */ __name((input) => { + const { retryStrategy, retryMode: _retryMode, maxAttempts: _maxAttempts } = input; + const maxAttempts = (0, import_util_middleware7.normalizeProvider)(_maxAttempts ?? import_util_retry3.DEFAULT_MAX_ATTEMPTS); + return Object.assign(input, { + maxAttempts, + retryStrategy: async () => { + if (retryStrategy) { + return retryStrategy; + } + const retryMode = await (0, import_util_middleware7.normalizeProvider)(_retryMode)(); + if (retryMode === import_util_retry3.RETRY_MODES.ADAPTIVE) { + return new import_util_retry3.AdaptiveRetryStrategy(maxAttempts); + } + return new import_util_retry3.StandardRetryStrategy(maxAttempts); + } + }); + }, "resolveRetryConfig"); + var ENV_RETRY_MODE = "AWS_RETRY_MODE"; + var CONFIG_RETRY_MODE = "retry_mode"; + var NODE_RETRY_MODE_CONFIG_OPTIONS3 = { + environmentVariableSelector: (env3) => env3[ENV_RETRY_MODE], + configFileSelector: (profile) => profile[CONFIG_RETRY_MODE], + default: import_util_retry3.DEFAULT_RETRY_MODE + }; + var omitRetryHeadersMiddleware = /* @__PURE__ */ __name(() => (next) => async (args) => { + const { request } = args; + if (import_protocol_http15.HttpRequest.isInstance(request)) { + delete request.headers[import_util_retry3.INVOCATION_ID_HEADER]; + delete request.headers[import_util_retry3.REQUEST_HEADER]; + } + return next(args); + }, "omitRetryHeadersMiddleware"); + var omitRetryHeadersMiddlewareOptions = { + name: "omitRetryHeadersMiddleware", + tags: ["RETRY", "HEADERS", "OMIT_RETRY_HEADERS"], + relation: "before", + toMiddleware: "awsAuthMiddleware", + override: true + }; + var getOmitRetryHeadersPlugin = /* @__PURE__ */ __name((options) => ({ + applyToStack: (clientStack) => { + clientStack.addRelativeTo(omitRetryHeadersMiddleware(), omitRetryHeadersMiddlewareOptions); + } + }), "getOmitRetryHeadersPlugin"); + var import_smithy_client25 = require_dist_cjs23(); + var import_isStreamingPayload = require_isStreamingPayload(); + var retryMiddleware = /* @__PURE__ */ __name((options) => (next, context) => async (args) => { + var _a4; + let retryStrategy = await options.retryStrategy(); + const maxAttempts = await options.maxAttempts(); + if (isRetryStrategyV2(retryStrategy)) { + retryStrategy = retryStrategy; + let retryToken = await retryStrategy.acquireInitialRetryToken(context["partition_id"]); + let lastError = new Error(); + let attempts = 0; + let totalRetryDelay = 0; + const { request } = args; + const isRequest2 = import_protocol_http15.HttpRequest.isInstance(request); + if (isRequest2) { + request.headers[import_util_retry3.INVOCATION_ID_HEADER] = (0, import_uuid.v4)(); + } + while (true) { + try { + if (isRequest2) { + request.headers[import_util_retry3.REQUEST_HEADER] = `attempt=${attempts + 1}; max=${maxAttempts}`; + } + const { response, output } = await next(args); + retryStrategy.recordSuccess(retryToken); + output.$metadata.attempts = attempts + 1; + output.$metadata.totalRetryDelay = totalRetryDelay; + return { response, output }; + } catch (e4) { + const retryErrorInfo = getRetryErrorInfo(e4); + lastError = asSdkError(e4); + if (isRequest2 && (0, import_isStreamingPayload.isStreamingPayload)(request)) { + (_a4 = context.logger instanceof import_smithy_client25.NoOpLogger ? console : context.logger) == null ? void 0 : _a4.warn( + "An error was encountered in a non-retryable streaming request." + ); + throw lastError; + } + try { + retryToken = await retryStrategy.refreshRetryTokenForRetry(retryToken, retryErrorInfo); + } catch (refreshError) { + if (!lastError.$metadata) { + lastError.$metadata = {}; + } + lastError.$metadata.attempts = attempts + 1; + lastError.$metadata.totalRetryDelay = totalRetryDelay; + throw lastError; + } + attempts = retryToken.getRetryCount(); + const delay = retryToken.getRetryDelay(); + totalRetryDelay += delay; + await new Promise((resolve2) => setTimeout(resolve2, delay)); + } + } + } else { + retryStrategy = retryStrategy; + if (retryStrategy == null ? void 0 : retryStrategy.mode) + context.userAgent = [...context.userAgent || [], ["cfg/retry-mode", retryStrategy.mode]]; + return retryStrategy.retry(next, args); + } + }, "retryMiddleware"); + var isRetryStrategyV2 = /* @__PURE__ */ __name((retryStrategy) => typeof retryStrategy.acquireInitialRetryToken !== "undefined" && typeof retryStrategy.refreshRetryTokenForRetry !== "undefined" && typeof retryStrategy.recordSuccess !== "undefined", "isRetryStrategyV2"); + var getRetryErrorInfo = /* @__PURE__ */ __name((error2) => { + const errorInfo = { + error: error2, + errorType: getRetryErrorType(error2) + }; + const retryAfterHint = getRetryAfterHint(error2.$response); + if (retryAfterHint) { + errorInfo.retryAfterHint = retryAfterHint; + } + return errorInfo; + }, "getRetryErrorInfo"); + var getRetryErrorType = /* @__PURE__ */ __name((error2) => { + if ((0, import_service_error_classification.isThrottlingError)(error2)) + return "THROTTLING"; + if ((0, import_service_error_classification.isTransientError)(error2)) + return "TRANSIENT"; + if ((0, import_service_error_classification.isServerError)(error2)) + return "SERVER_ERROR"; + return "CLIENT_ERROR"; + }, "getRetryErrorType"); + var retryMiddlewareOptions = { + name: "retryMiddleware", + tags: ["RETRY"], + step: "finalizeRequest", + priority: "high", + override: true + }; + var getRetryPlugin3 = /* @__PURE__ */ __name((options) => ({ + applyToStack: (clientStack) => { + clientStack.add(retryMiddleware(options), retryMiddlewareOptions); + } + }), "getRetryPlugin"); + var getRetryAfterHint = /* @__PURE__ */ __name((response) => { + if (!import_protocol_http15.HttpResponse.isInstance(response)) + return; + const retryAfterHeaderName = Object.keys(response.headers).find((key) => key.toLowerCase() === "retry-after"); + if (!retryAfterHeaderName) + return; + const retryAfter = response.headers[retryAfterHeaderName]; + const retryAfterSeconds = Number(retryAfter); + if (!Number.isNaN(retryAfterSeconds)) + return new Date(retryAfterSeconds * 1e3); + const retryAfterDate = new Date(retryAfter); + return retryAfterDate; + }, "getRetryAfterHint"); + } +}); + +// ../node_modules/.pnpm/@aws-sdk+client-rds-data@3.817.0/node_modules/@aws-sdk/client-rds-data/dist-cjs/auth/httpAuthSchemeProvider.js +var require_httpAuthSchemeProvider = __commonJS({ + "../node_modules/.pnpm/@aws-sdk+client-rds-data@3.817.0/node_modules/@aws-sdk/client-rds-data/dist-cjs/auth/httpAuthSchemeProvider.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.resolveHttpAuthSchemeConfig = exports2.defaultRDSDataHttpAuthSchemeProvider = exports2.defaultRDSDataHttpAuthSchemeParametersProvider = void 0; + var core_1 = (init_dist_es2(), __toCommonJS(dist_es_exports2)); + var util_middleware_1 = require_dist_cjs6(); + var defaultRDSDataHttpAuthSchemeParametersProvider = async (config, context, input) => { + return { + operation: (0, util_middleware_1.getSmithyContext)(context).operation, + region: await (0, util_middleware_1.normalizeProvider)(config.region)() || (() => { + throw new Error("expected `region` to be configured for `aws.auth#sigv4`"); + })() + }; + }; + exports2.defaultRDSDataHttpAuthSchemeParametersProvider = defaultRDSDataHttpAuthSchemeParametersProvider; + function createAwsAuthSigv4HttpAuthOption3(authParameters) { + return { + schemeId: "aws.auth#sigv4", + signingProperties: { + name: "rds-data", + region: authParameters.region + }, + propertiesExtractor: (config, context) => ({ + signingProperties: { + config, + context + } + }) + }; + } + var defaultRDSDataHttpAuthSchemeProvider = (authParameters) => { + const options = []; + switch (authParameters.operation) { + default: { + options.push(createAwsAuthSigv4HttpAuthOption3(authParameters)); + } + } + return options; + }; + exports2.defaultRDSDataHttpAuthSchemeProvider = defaultRDSDataHttpAuthSchemeProvider; + var resolveHttpAuthSchemeConfig3 = (config) => { + const config_0 = (0, core_1.resolveAwsSdkSigV4Config)(config); + return Object.assign(config_0, { + authSchemePreference: (0, util_middleware_1.normalizeProvider)(config.authSchemePreference ?? []) + }); + }; + exports2.resolveHttpAuthSchemeConfig = resolveHttpAuthSchemeConfig3; + } +}); + +// ../node_modules/.pnpm/tslib@2.8.1/node_modules/tslib/tslib.es6.mjs +var tslib_es6_exports = {}; +__export(tslib_es6_exports, { + __addDisposableResource: () => __addDisposableResource, + __assign: () => __assign, + __asyncDelegator: () => __asyncDelegator, + __asyncGenerator: () => __asyncGenerator, + __asyncValues: () => __asyncValues, + __await: () => __await, + __awaiter: () => __awaiter, + __classPrivateFieldGet: () => __classPrivateFieldGet, + __classPrivateFieldIn: () => __classPrivateFieldIn, + __classPrivateFieldSet: () => __classPrivateFieldSet, + __createBinding: () => __createBinding, + __decorate: () => __decorate, + __disposeResources: () => __disposeResources, + __esDecorate: () => __esDecorate, + __exportStar: () => __exportStar, + __extends: () => __extends, + __generator: () => __generator, + __importDefault: () => __importDefault, + __importStar: () => __importStar, + __makeTemplateObject: () => __makeTemplateObject, + __metadata: () => __metadata, + __param: () => __param, + __propKey: () => __propKey, + __read: () => __read, + __rest: () => __rest, + __rewriteRelativeImportExtension: () => __rewriteRelativeImportExtension, + __runInitializers: () => __runInitializers, + __setFunctionName: () => __setFunctionName, + __spread: () => __spread, + __spreadArray: () => __spreadArray, + __spreadArrays: () => __spreadArrays, + __values: () => __values, + default: () => tslib_es6_default +}); +function __extends(d3, b3) { + if (typeof b3 !== "function" && b3 !== null) + throw new TypeError("Class extends value " + String(b3) + " is not a constructor or null"); + extendStatics(d3, b3); + function __() { + this.constructor = d3; + } + d3.prototype = b3 === null ? Object.create(b3) : (__.prototype = b3.prototype, new __()); +} +function __rest(s4, e4) { + var t4 = {}; + for (var p3 in s4) if (Object.prototype.hasOwnProperty.call(s4, p3) && e4.indexOf(p3) < 0) + t4[p3] = s4[p3]; + if (s4 != null && typeof Object.getOwnPropertySymbols === "function") + for (var i4 = 0, p3 = Object.getOwnPropertySymbols(s4); i4 < p3.length; i4++) { + if (e4.indexOf(p3[i4]) < 0 && Object.prototype.propertyIsEnumerable.call(s4, p3[i4])) + t4[p3[i4]] = s4[p3[i4]]; + } + return t4; +} +function __decorate(decorators, target, key, desc) { + var c3 = arguments.length, r4 = c3 < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d3; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r4 = Reflect.decorate(decorators, target, key, desc); + else for (var i4 = decorators.length - 1; i4 >= 0; i4--) if (d3 = decorators[i4]) r4 = (c3 < 3 ? d3(r4) : c3 > 3 ? d3(target, key, r4) : d3(target, key)) || r4; + return c3 > 3 && r4 && Object.defineProperty(target, key, r4), r4; +} +function __param(paramIndex, decorator) { + return function(target, key) { + decorator(target, key, paramIndex); + }; +} +function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) { + function accept(f5) { + if (f5 !== void 0 && typeof f5 !== "function") throw new TypeError("Function expected"); + return f5; + } + var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value"; + var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null; + var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {}); + var _3, done = false; + for (var i4 = decorators.length - 1; i4 >= 0; i4--) { + var context = {}; + for (var p3 in contextIn) context[p3] = p3 === "access" ? {} : contextIn[p3]; + for (var p3 in contextIn.access) context.access[p3] = contextIn.access[p3]; + context.addInitializer = function(f5) { + if (done) throw new TypeError("Cannot add initializers after decoration has completed"); + extraInitializers.push(accept(f5 || null)); + }; + var result = (0, decorators[i4])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context); + if (kind === "accessor") { + if (result === void 0) continue; + if (result === null || typeof result !== "object") throw new TypeError("Object expected"); + if (_3 = accept(result.get)) descriptor.get = _3; + if (_3 = accept(result.set)) descriptor.set = _3; + if (_3 = accept(result.init)) initializers.unshift(_3); + } else if (_3 = accept(result)) { + if (kind === "field") initializers.unshift(_3); + else descriptor[key] = _3; + } + } + if (target) Object.defineProperty(target, contextIn.name, descriptor); + done = true; +} +function __runInitializers(thisArg, initializers, value) { + var useValue = arguments.length > 2; + for (var i4 = 0; i4 < initializers.length; i4++) { + value = useValue ? initializers[i4].call(thisArg, value) : initializers[i4].call(thisArg); + } + return useValue ? value : void 0; +} +function __propKey(x4) { + return typeof x4 === "symbol" ? x4 : "".concat(x4); +} +function __setFunctionName(f5, name, prefix2) { + if (typeof name === "symbol") name = name.description ? "[".concat(name.description, "]") : ""; + return Object.defineProperty(f5, "name", { configurable: true, value: prefix2 ? "".concat(prefix2, " ", name) : name }); +} +function __metadata(metadataKey, metadataValue) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue); +} +function __awaiter(thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function(resolve2) { + resolve2(value); + }); + } + return new (P || (P = Promise))(function(resolve2, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e4) { + reject(e4); + } + } + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e4) { + reject(e4); + } + } + function step(result) { + result.done ? resolve2(result.value) : adopt(result.value).then(fulfilled, rejected); + } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +} +function __generator(thisArg, body) { + var _3 = { label: 0, sent: function() { + if (t4[0] & 1) throw t4[1]; + return t4[1]; + }, trys: [], ops: [] }, f5, y2, t4, g3 = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype); + return g3.next = verb(0), g3["throw"] = verb(1), g3["return"] = verb(2), typeof Symbol === "function" && (g3[Symbol.iterator] = function() { + return this; + }), g3; + function verb(n3) { + return function(v6) { + return step([n3, v6]); + }; + } + function step(op) { + if (f5) throw new TypeError("Generator is already executing."); + while (g3 && (g3 = 0, op[0] && (_3 = 0)), _3) try { + if (f5 = 1, y2 && (t4 = op[0] & 2 ? y2["return"] : op[0] ? y2["throw"] || ((t4 = y2["return"]) && t4.call(y2), 0) : y2.next) && !(t4 = t4.call(y2, op[1])).done) return t4; + if (y2 = 0, t4) op = [op[0] & 2, t4.value]; + switch (op[0]) { + case 0: + case 1: + t4 = op; + break; + case 4: + _3.label++; + return { value: op[1], done: false }; + case 5: + _3.label++; + y2 = op[1]; + op = [0]; + continue; + case 7: + op = _3.ops.pop(); + _3.trys.pop(); + continue; + default: + if (!(t4 = _3.trys, t4 = t4.length > 0 && t4[t4.length - 1]) && (op[0] === 6 || op[0] === 2)) { + _3 = 0; + continue; + } + if (op[0] === 3 && (!t4 || op[1] > t4[0] && op[1] < t4[3])) { + _3.label = op[1]; + break; + } + if (op[0] === 6 && _3.label < t4[1]) { + _3.label = t4[1]; + t4 = op; + break; + } + if (t4 && _3.label < t4[2]) { + _3.label = t4[2]; + _3.ops.push(op); + break; + } + if (t4[2]) _3.ops.pop(); + _3.trys.pop(); + continue; + } + op = body.call(thisArg, _3); + } catch (e4) { + op = [6, e4]; + y2 = 0; + } finally { + f5 = t4 = 0; + } + if (op[0] & 5) throw op[1]; + return { value: op[0] ? op[1] : void 0, done: true }; + } +} +function __exportStar(m4, o3) { + for (var p3 in m4) if (p3 !== "default" && !Object.prototype.hasOwnProperty.call(o3, p3)) __createBinding(o3, m4, p3); +} +function __values(o3) { + var s4 = typeof Symbol === "function" && Symbol.iterator, m4 = s4 && o3[s4], i4 = 0; + if (m4) return m4.call(o3); + if (o3 && typeof o3.length === "number") return { + next: function() { + if (o3 && i4 >= o3.length) o3 = void 0; + return { value: o3 && o3[i4++], done: !o3 }; + } + }; + throw new TypeError(s4 ? "Object is not iterable." : "Symbol.iterator is not defined."); +} +function __read(o3, n3) { + var m4 = typeof Symbol === "function" && o3[Symbol.iterator]; + if (!m4) return o3; + var i4 = m4.call(o3), r4, ar = [], e4; + try { + while ((n3 === void 0 || n3-- > 0) && !(r4 = i4.next()).done) ar.push(r4.value); + } catch (error2) { + e4 = { error: error2 }; + } finally { + try { + if (r4 && !r4.done && (m4 = i4["return"])) m4.call(i4); + } finally { + if (e4) throw e4.error; + } + } + return ar; +} +function __spread() { + for (var ar = [], i4 = 0; i4 < arguments.length; i4++) + ar = ar.concat(__read(arguments[i4])); + return ar; +} +function __spreadArrays() { + for (var s4 = 0, i4 = 0, il = arguments.length; i4 < il; i4++) s4 += arguments[i4].length; + for (var r4 = Array(s4), k3 = 0, i4 = 0; i4 < il; i4++) + for (var a3 = arguments[i4], j3 = 0, jl = a3.length; j3 < jl; j3++, k3++) + r4[k3] = a3[j3]; + return r4; +} +function __spreadArray(to, from, pack) { + if (pack || arguments.length === 2) for (var i4 = 0, l3 = from.length, ar; i4 < l3; i4++) { + if (ar || !(i4 in from)) { + if (!ar) ar = Array.prototype.slice.call(from, 0, i4); + ar[i4] = from[i4]; + } + } + return to.concat(ar || Array.prototype.slice.call(from)); +} +function __await(v6) { + return this instanceof __await ? (this.v = v6, this) : new __await(v6); +} +function __asyncGenerator(thisArg, _arguments, generator) { + if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); + var g3 = generator.apply(thisArg, _arguments || []), i4, q3 = []; + return i4 = Object.create((typeof AsyncIterator === "function" ? AsyncIterator : Object).prototype), verb("next"), verb("throw"), verb("return", awaitReturn), i4[Symbol.asyncIterator] = function() { + return this; + }, i4; + function awaitReturn(f5) { + return function(v6) { + return Promise.resolve(v6).then(f5, reject); + }; + } + function verb(n3, f5) { + if (g3[n3]) { + i4[n3] = function(v6) { + return new Promise(function(a3, b3) { + q3.push([n3, v6, a3, b3]) > 1 || resume(n3, v6); + }); + }; + if (f5) i4[n3] = f5(i4[n3]); + } + } + function resume(n3, v6) { + try { + step(g3[n3](v6)); + } catch (e4) { + settle(q3[0][3], e4); + } + } + function step(r4) { + r4.value instanceof __await ? Promise.resolve(r4.value.v).then(fulfill, reject) : settle(q3[0][2], r4); + } + function fulfill(value) { + resume("next", value); + } + function reject(value) { + resume("throw", value); + } + function settle(f5, v6) { + if (f5(v6), q3.shift(), q3.length) resume(q3[0][0], q3[0][1]); + } +} +function __asyncDelegator(o3) { + var i4, p3; + return i4 = {}, verb("next"), verb("throw", function(e4) { + throw e4; + }), verb("return"), i4[Symbol.iterator] = function() { + return this; + }, i4; + function verb(n3, f5) { + i4[n3] = o3[n3] ? function(v6) { + return (p3 = !p3) ? { value: __await(o3[n3](v6)), done: false } : f5 ? f5(v6) : v6; + } : f5; + } +} +function __asyncValues(o3) { + if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); + var m4 = o3[Symbol.asyncIterator], i4; + return m4 ? m4.call(o3) : (o3 = typeof __values === "function" ? __values(o3) : o3[Symbol.iterator](), i4 = {}, verb("next"), verb("throw"), verb("return"), i4[Symbol.asyncIterator] = function() { + return this; + }, i4); + function verb(n3) { + i4[n3] = o3[n3] && function(v6) { + return new Promise(function(resolve2, reject) { + v6 = o3[n3](v6), settle(resolve2, reject, v6.done, v6.value); + }); + }; + } + function settle(resolve2, reject, d3, v6) { + Promise.resolve(v6).then(function(v7) { + resolve2({ value: v7, done: d3 }); + }, reject); + } +} +function __makeTemplateObject(cooked, raw2) { + if (Object.defineProperty) { + Object.defineProperty(cooked, "raw", { value: raw2 }); + } else { + cooked.raw = raw2; + } + return cooked; +} +function __importStar(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) { + for (var k3 = ownKeys(mod), i4 = 0; i4 < k3.length; i4++) if (k3[i4] !== "default") __createBinding(result, mod, k3[i4]); + } + __setModuleDefault(result, mod); + return result; +} +function __importDefault(mod) { + return mod && mod.__esModule ? mod : { default: mod }; +} +function __classPrivateFieldGet(receiver, state2, kind, f5) { + if (kind === "a" && !f5) throw new TypeError("Private accessor was defined without a getter"); + if (typeof state2 === "function" ? receiver !== state2 || !f5 : !state2.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it"); + return kind === "m" ? f5 : kind === "a" ? f5.call(receiver) : f5 ? f5.value : state2.get(receiver); +} +function __classPrivateFieldSet(receiver, state2, value, kind, f5) { + if (kind === "m") throw new TypeError("Private method is not writable"); + if (kind === "a" && !f5) throw new TypeError("Private accessor was defined without a setter"); + if (typeof state2 === "function" ? receiver !== state2 || !f5 : !state2.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it"); + return kind === "a" ? f5.call(receiver, value) : f5 ? f5.value = value : state2.set(receiver, value), value; +} +function __classPrivateFieldIn(state2, receiver) { + if (receiver === null || typeof receiver !== "object" && typeof receiver !== "function") throw new TypeError("Cannot use 'in' operator on non-object"); + return typeof state2 === "function" ? receiver === state2 : state2.has(receiver); +} +function __addDisposableResource(env3, value, async) { + if (value !== null && value !== void 0) { + if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected."); + var dispose, inner; + if (async) { + if (!Symbol.asyncDispose) throw new TypeError("Symbol.asyncDispose is not defined."); + dispose = value[Symbol.asyncDispose]; + } + if (dispose === void 0) { + if (!Symbol.dispose) throw new TypeError("Symbol.dispose is not defined."); + dispose = value[Symbol.dispose]; + if (async) inner = dispose; + } + if (typeof dispose !== "function") throw new TypeError("Object not disposable."); + if (inner) dispose = function() { + try { + inner.call(this); + } catch (e4) { + return Promise.reject(e4); + } + }; + env3.stack.push({ value, dispose, async }); + } else if (async) { + env3.stack.push({ async: true }); + } + return value; +} +function __disposeResources(env3) { + function fail(e4) { + env3.error = env3.hasError ? new _SuppressedError(e4, env3.error, "An error was suppressed during disposal.") : e4; + env3.hasError = true; + } + var r4, s4 = 0; + function next() { + while (r4 = env3.stack.pop()) { + try { + if (!r4.async && s4 === 1) return s4 = 0, env3.stack.push(r4), Promise.resolve().then(next); + if (r4.dispose) { + var result = r4.dispose.call(r4.value); + if (r4.async) return s4 |= 2, Promise.resolve(result).then(next, function(e4) { + fail(e4); + return next(); + }); + } else s4 |= 1; + } catch (e4) { + fail(e4); + } + } + if (s4 === 1) return env3.hasError ? Promise.reject(env3.error) : Promise.resolve(); + if (env3.hasError) throw env3.error; + } + return next(); +} +function __rewriteRelativeImportExtension(path4, preserveJsx) { + if (typeof path4 === "string" && /^\.\.?\//.test(path4)) { + return path4.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i, function(m4, tsx, d3, ext2, cm) { + return tsx ? preserveJsx ? ".jsx" : ".js" : d3 && (!ext2 || !cm) ? m4 : d3 + ext2 + "." + cm.toLowerCase() + "js"; + }); + } + return path4; +} +var extendStatics, __assign, __createBinding, __setModuleDefault, ownKeys, _SuppressedError, tslib_es6_default; +var init_tslib_es6 = __esm({ + "../node_modules/.pnpm/tslib@2.8.1/node_modules/tslib/tslib.es6.mjs"() { + extendStatics = function(d3, b3) { + extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d4, b4) { + d4.__proto__ = b4; + } || function(d4, b4) { + for (var p3 in b4) if (Object.prototype.hasOwnProperty.call(b4, p3)) d4[p3] = b4[p3]; + }; + return extendStatics(d3, b3); + }; + __assign = function() { + __assign = Object.assign || function __assign2(t4) { + for (var s4, i4 = 1, n3 = arguments.length; i4 < n3; i4++) { + s4 = arguments[i4]; + for (var p3 in s4) if (Object.prototype.hasOwnProperty.call(s4, p3)) t4[p3] = s4[p3]; + } + return t4; + }; + return __assign.apply(this, arguments); + }; + __createBinding = Object.create ? function(o3, m4, k3, k22) { + if (k22 === void 0) k22 = k3; + var desc = Object.getOwnPropertyDescriptor(m4, k3); + if (!desc || ("get" in desc ? !m4.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m4[k3]; + } }; + } + Object.defineProperty(o3, k22, desc); + } : function(o3, m4, k3, k22) { + if (k22 === void 0) k22 = k3; + o3[k22] = m4[k3]; + }; + __setModuleDefault = Object.create ? function(o3, v6) { + Object.defineProperty(o3, "default", { enumerable: true, value: v6 }); + } : function(o3, v6) { + o3["default"] = v6; + }; + ownKeys = function(o3) { + ownKeys = Object.getOwnPropertyNames || function(o4) { + var ar = []; + for (var k3 in o4) if (Object.prototype.hasOwnProperty.call(o4, k3)) ar[ar.length] = k3; + return ar; + }; + return ownKeys(o3); + }; + _SuppressedError = typeof SuppressedError === "function" ? SuppressedError : function(error2, suppressed, message) { + var e4 = new Error(message); + return e4.name = "SuppressedError", e4.error = error2, e4.suppressed = suppressed, e4; + }; + tslib_es6_default = { + __extends, + __assign, + __rest, + __decorate, + __param, + __esDecorate, + __runInitializers, + __propKey, + __setFunctionName, + __metadata, + __awaiter, + __generator, + __createBinding, + __exportStar, + __values, + __read, + __spread, + __spreadArrays, + __spreadArray, + __await, + __asyncGenerator, + __asyncDelegator, + __asyncValues, + __makeTemplateObject, + __importStar, + __importDefault, + __classPrivateFieldGet, + __classPrivateFieldSet, + __classPrivateFieldIn, + __addDisposableResource, + __disposeResources, + __rewriteRelativeImportExtension + }; + } +}); + +// ../node_modules/.pnpm/@aws-sdk+client-rds-data@3.817.0/node_modules/@aws-sdk/client-rds-data/package.json +var require_package2 = __commonJS({ + "../node_modules/.pnpm/@aws-sdk+client-rds-data@3.817.0/node_modules/@aws-sdk/client-rds-data/package.json"(exports2, module2) { + module2.exports = { + name: "@aws-sdk/client-rds-data", + description: "AWS SDK for JavaScript Rds Data Client for Node.js, Browser and React Native", + version: "3.817.0", + scripts: { + build: "concurrently 'yarn:build:cjs' 'yarn:build:es' 'yarn:build:types'", + "build:cjs": "node ../../scripts/compilation/inline client-rds-data", + "build:es": "tsc -p tsconfig.es.json", + "build:include:deps": "lerna run --scope $npm_package_name --include-dependencies build", + "build:types": "tsc -p tsconfig.types.json", + "build:types:downlevel": "downlevel-dts dist-types dist-types/ts3.4", + clean: "rimraf ./dist-* && rimraf *.tsbuildinfo", + "extract:docs": "api-extractor run --local", + "generate:client": "node ../../scripts/generate-clients/single-service --solo rds-data" + }, + main: "./dist-cjs/index.js", + types: "./dist-types/index.d.ts", + module: "./dist-es/index.js", + sideEffects: false, + dependencies: { + "@aws-crypto/sha256-browser": "5.2.0", + "@aws-crypto/sha256-js": "5.2.0", + "@aws-sdk/core": "3.816.0", + "@aws-sdk/credential-provider-node": "3.817.0", + "@aws-sdk/middleware-host-header": "3.804.0", + "@aws-sdk/middleware-logger": "3.804.0", + "@aws-sdk/middleware-recursion-detection": "3.804.0", + "@aws-sdk/middleware-user-agent": "3.816.0", + "@aws-sdk/region-config-resolver": "3.808.0", + "@aws-sdk/types": "3.804.0", + "@aws-sdk/util-endpoints": "3.808.0", + "@aws-sdk/util-user-agent-browser": "3.804.0", + "@aws-sdk/util-user-agent-node": "3.816.0", + "@smithy/config-resolver": "^4.1.2", + "@smithy/core": "^3.3.3", + "@smithy/fetch-http-handler": "^5.0.2", + "@smithy/hash-node": "^4.0.2", + "@smithy/invalid-dependency": "^4.0.2", + "@smithy/middleware-content-length": "^4.0.2", + "@smithy/middleware-endpoint": "^4.1.6", + "@smithy/middleware-retry": "^4.1.7", + "@smithy/middleware-serde": "^4.0.5", + "@smithy/middleware-stack": "^4.0.2", + "@smithy/node-config-provider": "^4.1.1", + "@smithy/node-http-handler": "^4.0.4", + "@smithy/protocol-http": "^5.1.0", + "@smithy/smithy-client": "^4.2.6", + "@smithy/types": "^4.2.0", + "@smithy/url-parser": "^4.0.2", + "@smithy/util-base64": "^4.0.0", + "@smithy/util-body-length-browser": "^4.0.0", + "@smithy/util-body-length-node": "^4.0.0", + "@smithy/util-defaults-mode-browser": "^4.0.14", + "@smithy/util-defaults-mode-node": "^4.0.14", + "@smithy/util-endpoints": "^3.0.4", + "@smithy/util-middleware": "^4.0.2", + "@smithy/util-retry": "^4.0.3", + "@smithy/util-utf8": "^4.0.0", + tslib: "^2.6.2" + }, + devDependencies: { + "@tsconfig/node18": "18.2.4", + "@types/node": "^18.19.69", + concurrently: "7.0.0", + "downlevel-dts": "0.10.1", + rimraf: "3.0.2", + typescript: "~5.8.3" + }, + engines: { + node: ">=18.0.0" + }, + typesVersions: { + "<4.0": { + "dist-types/*": [ + "dist-types/ts3.4/*" + ] + } + }, + files: [ + "dist-*/**" + ], + author: { + name: "AWS SDK for JavaScript Team", + url: "https://aws.amazon.com/javascript/" + }, + license: "Apache-2.0", + browser: { + "./dist-es/runtimeConfig": "./dist-es/runtimeConfig.browser" + }, + "react-native": { + "./dist-es/runtimeConfig": "./dist-es/runtimeConfig.native" + }, + homepage: "https://github.com/aws/aws-sdk-js-v3/tree/main/clients/client-rds-data", + repository: { + type: "git", + url: "https://github.com/aws/aws-sdk-js-v3.git", + directory: "clients/client-rds-data" + } + }; + } +}); + +// ../node_modules/.pnpm/@aws-sdk+credential-provider-env@3.816.0/node_modules/@aws-sdk/credential-provider-env/dist-cjs/index.js +var require_dist_cjs36 = __commonJS({ + "../node_modules/.pnpm/@aws-sdk+credential-provider-env@3.816.0/node_modules/@aws-sdk/credential-provider-env/dist-cjs/index.js"(exports2, module2) { + "use strict"; + var __defProp3 = Object.defineProperty; + var __getOwnPropDesc3 = Object.getOwnPropertyDescriptor; + var __getOwnPropNames3 = Object.getOwnPropertyNames; + var __hasOwnProp3 = Object.prototype.hasOwnProperty; + var __name = (target, value) => __defProp3(target, "name", { value, configurable: true }); + var __export2 = (target, all) => { + for (var name in all) + __defProp3(target, name, { get: all[name], enumerable: true }); + }; + var __copyProps3 = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames3(from)) + if (!__hasOwnProp3.call(to, key) && key !== except) + __defProp3(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc3(from, key)) || desc.enumerable }); + } + return to; + }; + var __toCommonJS2 = (mod) => __copyProps3(__defProp3({}, "__esModule", { value: true }), mod); + var index_exports = {}; + __export2(index_exports, { + ENV_ACCOUNT_ID: () => ENV_ACCOUNT_ID, + ENV_CREDENTIAL_SCOPE: () => ENV_CREDENTIAL_SCOPE, + ENV_EXPIRATION: () => ENV_EXPIRATION, + ENV_KEY: () => ENV_KEY, + ENV_SECRET: () => ENV_SECRET, + ENV_SESSION: () => ENV_SESSION, + fromEnv: () => fromEnv + }); + module2.exports = __toCommonJS2(index_exports); + var import_client3 = (init_client(), __toCommonJS(client_exports)); + var import_property_provider2 = require_dist_cjs20(); + var ENV_KEY = "AWS_ACCESS_KEY_ID"; + var ENV_SECRET = "AWS_SECRET_ACCESS_KEY"; + var ENV_SESSION = "AWS_SESSION_TOKEN"; + var ENV_EXPIRATION = "AWS_CREDENTIAL_EXPIRATION"; + var ENV_CREDENTIAL_SCOPE = "AWS_CREDENTIAL_SCOPE"; + var ENV_ACCOUNT_ID = "AWS_ACCOUNT_ID"; + var fromEnv = /* @__PURE__ */ __name((init2) => async () => { + var _a2; + (_a2 = init2 == null ? void 0 : init2.logger) == null ? void 0 : _a2.debug("@aws-sdk/credential-provider-env - fromEnv"); + const accessKeyId = process.env[ENV_KEY]; + const secretAccessKey = process.env[ENV_SECRET]; + const sessionToken = process.env[ENV_SESSION]; + const expiry = process.env[ENV_EXPIRATION]; + const credentialScope = process.env[ENV_CREDENTIAL_SCOPE]; + const accountId = process.env[ENV_ACCOUNT_ID]; + if (accessKeyId && secretAccessKey) { + const credentials2 = { + accessKeyId, + secretAccessKey, + ...sessionToken && { sessionToken }, + ...expiry && { expiration: new Date(expiry) }, + ...credentialScope && { credentialScope }, + ...accountId && { accountId } + }; + (0, import_client3.setCredentialFeature)(credentials2, "CREDENTIALS_ENV_VARS", "g"); + return credentials2; + } + throw new import_property_provider2.CredentialsProviderError("Unable to find environment variable credentials.", { logger: init2 == null ? void 0 : init2.logger }); + }, "fromEnv"); + } +}); + +// ../node_modules/.pnpm/@smithy+credential-provider-imds@4.0.6/node_modules/@smithy/credential-provider-imds/dist-cjs/index.js +var require_dist_cjs37 = __commonJS({ + "../node_modules/.pnpm/@smithy+credential-provider-imds@4.0.6/node_modules/@smithy/credential-provider-imds/dist-cjs/index.js"(exports2, module2) { + var __defProp3 = Object.defineProperty; + var __getOwnPropDesc3 = Object.getOwnPropertyDescriptor; + var __getOwnPropNames3 = Object.getOwnPropertyNames; + var __hasOwnProp3 = Object.prototype.hasOwnProperty; + var __name = (target, value) => __defProp3(target, "name", { value, configurable: true }); + var __export2 = (target, all) => { + for (var name in all) + __defProp3(target, name, { get: all[name], enumerable: true }); + }; + var __copyProps3 = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames3(from)) + if (!__hasOwnProp3.call(to, key) && key !== except) + __defProp3(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc3(from, key)) || desc.enumerable }); + } + return to; + }; + var __toCommonJS2 = (mod) => __copyProps3(__defProp3({}, "__esModule", { value: true }), mod); + var src_exports = {}; + __export2(src_exports, { + DEFAULT_MAX_RETRIES: () => DEFAULT_MAX_RETRIES, + DEFAULT_TIMEOUT: () => DEFAULT_TIMEOUT, + ENV_CMDS_AUTH_TOKEN: () => ENV_CMDS_AUTH_TOKEN, + ENV_CMDS_FULL_URI: () => ENV_CMDS_FULL_URI, + ENV_CMDS_RELATIVE_URI: () => ENV_CMDS_RELATIVE_URI, + Endpoint: () => Endpoint, + fromContainerMetadata: () => fromContainerMetadata, + fromInstanceMetadata: () => fromInstanceMetadata, + getInstanceMetadataEndpoint: () => getInstanceMetadataEndpoint, + httpRequest: () => httpRequest, + providerConfigFromInit: () => providerConfigFromInit + }); + module2.exports = __toCommonJS2(src_exports); + var import_url8 = require("url"); + var import_property_provider2 = require_dist_cjs20(); + var import_buffer2 = require("buffer"); + var import_http3 = require("http"); + function httpRequest(options) { + return new Promise((resolve2, reject) => { + var _a3; + const req = (0, import_http3.request)({ + method: "GET", + ...options, + // Node.js http module doesn't accept hostname with square brackets + // Refs: https://github.com/nodejs/node/issues/39738 + hostname: (_a3 = options.hostname) == null ? void 0 : _a3.replace(/^\[(.+)\]$/, "$1") + }); + req.on("error", (err2) => { + reject(Object.assign(new import_property_provider2.ProviderError("Unable to connect to instance metadata service"), err2)); + req.destroy(); + }); + req.on("timeout", () => { + reject(new import_property_provider2.ProviderError("TimeoutError from instance metadata service")); + req.destroy(); + }); + req.on("response", (res) => { + const { statusCode = 400 } = res; + if (statusCode < 200 || 300 <= statusCode) { + reject( + Object.assign(new import_property_provider2.ProviderError("Error response received from instance metadata service"), { statusCode }) + ); + req.destroy(); + } + const chunks = []; + res.on("data", (chunk) => { + chunks.push(chunk); + }); + res.on("end", () => { + resolve2(import_buffer2.Buffer.concat(chunks)); + req.destroy(); + }); + }); + req.end(); + }); + } + __name(httpRequest, "httpRequest"); + var isImdsCredentials = /* @__PURE__ */ __name((arg) => Boolean(arg) && typeof arg === "object" && typeof arg.AccessKeyId === "string" && typeof arg.SecretAccessKey === "string" && typeof arg.Token === "string" && typeof arg.Expiration === "string", "isImdsCredentials"); + var fromImdsCredentials = /* @__PURE__ */ __name((creds) => ({ + accessKeyId: creds.AccessKeyId, + secretAccessKey: creds.SecretAccessKey, + sessionToken: creds.Token, + expiration: new Date(creds.Expiration), + ...creds.AccountId && { accountId: creds.AccountId } + }), "fromImdsCredentials"); + var DEFAULT_TIMEOUT = 1e3; + var DEFAULT_MAX_RETRIES = 0; + var providerConfigFromInit = /* @__PURE__ */ __name(({ + maxRetries = DEFAULT_MAX_RETRIES, + timeout = DEFAULT_TIMEOUT + }) => ({ maxRetries, timeout }), "providerConfigFromInit"); + var retry = /* @__PURE__ */ __name((toRetry, maxRetries) => { + let promise = toRetry(); + for (let i4 = 0; i4 < maxRetries; i4++) { + promise = promise.catch(toRetry); + } + return promise; + }, "retry"); + var ENV_CMDS_FULL_URI = "AWS_CONTAINER_CREDENTIALS_FULL_URI"; + var ENV_CMDS_RELATIVE_URI = "AWS_CONTAINER_CREDENTIALS_RELATIVE_URI"; + var ENV_CMDS_AUTH_TOKEN = "AWS_CONTAINER_AUTHORIZATION_TOKEN"; + var fromContainerMetadata = /* @__PURE__ */ __name((init2 = {}) => { + const { timeout, maxRetries } = providerConfigFromInit(init2); + return () => retry(async () => { + const requestOptions = await getCmdsUri({ logger: init2.logger }); + const credsResponse = JSON.parse(await requestFromEcsImds(timeout, requestOptions)); + if (!isImdsCredentials(credsResponse)) { + throw new import_property_provider2.CredentialsProviderError("Invalid response received from instance metadata service.", { + logger: init2.logger + }); + } + return fromImdsCredentials(credsResponse); + }, maxRetries); + }, "fromContainerMetadata"); + var requestFromEcsImds = /* @__PURE__ */ __name(async (timeout, options) => { + if (process.env[ENV_CMDS_AUTH_TOKEN]) { + options.headers = { + ...options.headers, + Authorization: process.env[ENV_CMDS_AUTH_TOKEN] + }; + } + const buffer = await httpRequest({ + ...options, + timeout + }); + return buffer.toString(); + }, "requestFromEcsImds"); + var CMDS_IP = "169.254.170.2"; + var GREENGRASS_HOSTS = { + localhost: true, + "127.0.0.1": true + }; + var GREENGRASS_PROTOCOLS = { + "http:": true, + "https:": true + }; + var getCmdsUri = /* @__PURE__ */ __name(async ({ logger: logger3 }) => { + if (process.env[ENV_CMDS_RELATIVE_URI]) { + return { + hostname: CMDS_IP, + path: process.env[ENV_CMDS_RELATIVE_URI] + }; + } + if (process.env[ENV_CMDS_FULL_URI]) { + const parsed = (0, import_url8.parse)(process.env[ENV_CMDS_FULL_URI]); + if (!parsed.hostname || !(parsed.hostname in GREENGRASS_HOSTS)) { + throw new import_property_provider2.CredentialsProviderError(`${parsed.hostname} is not a valid container metadata service hostname`, { + tryNextLink: false, + logger: logger3 + }); + } + if (!parsed.protocol || !(parsed.protocol in GREENGRASS_PROTOCOLS)) { + throw new import_property_provider2.CredentialsProviderError(`${parsed.protocol} is not a valid container metadata service protocol`, { + tryNextLink: false, + logger: logger3 + }); + } + return { + ...parsed, + port: parsed.port ? parseInt(parsed.port, 10) : void 0 + }; + } + throw new import_property_provider2.CredentialsProviderError( + `The container metadata credential provider cannot be used unless the ${ENV_CMDS_RELATIVE_URI} or ${ENV_CMDS_FULL_URI} environment variable is set`, + { + tryNextLink: false, + logger: logger3 + } + ); + }, "getCmdsUri"); + var _a2; + var InstanceMetadataV1FallbackError = (_a2 = class extends import_property_provider2.CredentialsProviderError { + constructor(message, tryNextLink = true) { + super(message, tryNextLink); + this.tryNextLink = tryNextLink; + this.name = "InstanceMetadataV1FallbackError"; + Object.setPrototypeOf(this, _a2.prototype); + } + }, __name(_a2, "InstanceMetadataV1FallbackError"), _a2); + var import_node_config_provider3 = require_dist_cjs29(); + var import_url_parser3 = require_dist_cjs31(); + var Endpoint = /* @__PURE__ */ ((Endpoint2) => { + Endpoint2["IPv4"] = "http://169.254.169.254"; + Endpoint2["IPv6"] = "http://[fd00:ec2::254]"; + return Endpoint2; + })(Endpoint || {}); + var ENV_ENDPOINT_NAME = "AWS_EC2_METADATA_SERVICE_ENDPOINT"; + var CONFIG_ENDPOINT_NAME = "ec2_metadata_service_endpoint"; + var ENDPOINT_CONFIG_OPTIONS = { + environmentVariableSelector: (env3) => env3[ENV_ENDPOINT_NAME], + configFileSelector: (profile) => profile[CONFIG_ENDPOINT_NAME], + default: void 0 + }; + var EndpointMode = /* @__PURE__ */ ((EndpointMode2) => { + EndpointMode2["IPv4"] = "IPv4"; + EndpointMode2["IPv6"] = "IPv6"; + return EndpointMode2; + })(EndpointMode || {}); + var ENV_ENDPOINT_MODE_NAME = "AWS_EC2_METADATA_SERVICE_ENDPOINT_MODE"; + var CONFIG_ENDPOINT_MODE_NAME = "ec2_metadata_service_endpoint_mode"; + var ENDPOINT_MODE_CONFIG_OPTIONS = { + environmentVariableSelector: (env3) => env3[ENV_ENDPOINT_MODE_NAME], + configFileSelector: (profile) => profile[CONFIG_ENDPOINT_MODE_NAME], + default: "IPv4" + /* IPv4 */ + }; + var getInstanceMetadataEndpoint = /* @__PURE__ */ __name(async () => (0, import_url_parser3.parseUrl)(await getFromEndpointConfig() || await getFromEndpointModeConfig()), "getInstanceMetadataEndpoint"); + var getFromEndpointConfig = /* @__PURE__ */ __name(async () => (0, import_node_config_provider3.loadConfig)(ENDPOINT_CONFIG_OPTIONS)(), "getFromEndpointConfig"); + var getFromEndpointModeConfig = /* @__PURE__ */ __name(async () => { + const endpointMode = await (0, import_node_config_provider3.loadConfig)(ENDPOINT_MODE_CONFIG_OPTIONS)(); + switch (endpointMode) { + case "IPv4": + return "http://169.254.169.254"; + case "IPv6": + return "http://[fd00:ec2::254]"; + default: + throw new Error(`Unsupported endpoint mode: ${endpointMode}. Select from ${Object.values(EndpointMode)}`); + } + }, "getFromEndpointModeConfig"); + var STATIC_STABILITY_REFRESH_INTERVAL_SECONDS = 5 * 60; + var STATIC_STABILITY_REFRESH_INTERVAL_JITTER_WINDOW_SECONDS = 5 * 60; + var STATIC_STABILITY_DOC_URL = "https://docs.aws.amazon.com/sdkref/latest/guide/feature-static-credentials.html"; + var getExtendedInstanceMetadataCredentials = /* @__PURE__ */ __name((credentials2, logger3) => { + const refreshInterval = STATIC_STABILITY_REFRESH_INTERVAL_SECONDS + Math.floor(Math.random() * STATIC_STABILITY_REFRESH_INTERVAL_JITTER_WINDOW_SECONDS); + const newExpiration = new Date(Date.now() + refreshInterval * 1e3); + logger3.warn( + `Attempting credential expiration extension due to a credential service availability issue. A refresh of these credentials will be attempted after ${new Date(newExpiration)}. +For more information, please visit: ` + STATIC_STABILITY_DOC_URL + ); + const originalExpiration = credentials2.originalExpiration ?? credentials2.expiration; + return { + ...credentials2, + ...originalExpiration ? { originalExpiration } : {}, + expiration: newExpiration + }; + }, "getExtendedInstanceMetadataCredentials"); + var staticStabilityProvider = /* @__PURE__ */ __name((provider, options = {}) => { + const logger3 = (options == null ? void 0 : options.logger) || console; + let pastCredentials; + return async () => { + let credentials2; + try { + credentials2 = await provider(); + if (credentials2.expiration && credentials2.expiration.getTime() < Date.now()) { + credentials2 = getExtendedInstanceMetadataCredentials(credentials2, logger3); + } + } catch (e4) { + if (pastCredentials) { + logger3.warn("Credential renew failed: ", e4); + credentials2 = getExtendedInstanceMetadataCredentials(pastCredentials, logger3); + } else { + throw e4; + } + } + pastCredentials = credentials2; + return credentials2; + }; + }, "staticStabilityProvider"); + var IMDS_PATH = "/latest/meta-data/iam/security-credentials/"; + var IMDS_TOKEN_PATH = "/latest/api/token"; + var AWS_EC2_METADATA_V1_DISABLED = "AWS_EC2_METADATA_V1_DISABLED"; + var PROFILE_AWS_EC2_METADATA_V1_DISABLED = "ec2_metadata_v1_disabled"; + var X_AWS_EC2_METADATA_TOKEN = "x-aws-ec2-metadata-token"; + var fromInstanceMetadata = /* @__PURE__ */ __name((init2 = {}) => staticStabilityProvider(getInstanceMetadataProvider(init2), { logger: init2.logger }), "fromInstanceMetadata"); + var getInstanceMetadataProvider = /* @__PURE__ */ __name((init2 = {}) => { + let disableFetchToken = false; + const { logger: logger3, profile } = init2; + const { timeout, maxRetries } = providerConfigFromInit(init2); + const getCredentials = /* @__PURE__ */ __name(async (maxRetries2, options) => { + var _a3; + const isImdsV1Fallback = disableFetchToken || ((_a3 = options.headers) == null ? void 0 : _a3[X_AWS_EC2_METADATA_TOKEN]) == null; + if (isImdsV1Fallback) { + let fallbackBlockedFromProfile = false; + let fallbackBlockedFromProcessEnv = false; + const configValue = await (0, import_node_config_provider3.loadConfig)( + { + environmentVariableSelector: (env3) => { + const envValue = env3[AWS_EC2_METADATA_V1_DISABLED]; + fallbackBlockedFromProcessEnv = !!envValue && envValue !== "false"; + if (envValue === void 0) { + throw new import_property_provider2.CredentialsProviderError( + `${AWS_EC2_METADATA_V1_DISABLED} not set in env, checking config file next.`, + { logger: init2.logger } + ); + } + return fallbackBlockedFromProcessEnv; + }, + configFileSelector: (profile2) => { + const profileValue = profile2[PROFILE_AWS_EC2_METADATA_V1_DISABLED]; + fallbackBlockedFromProfile = !!profileValue && profileValue !== "false"; + return fallbackBlockedFromProfile; + }, + default: false + }, + { + profile + } + )(); + if (init2.ec2MetadataV1Disabled || configValue) { + const causes = []; + if (init2.ec2MetadataV1Disabled) + causes.push("credential provider initialization (runtime option ec2MetadataV1Disabled)"); + if (fallbackBlockedFromProfile) + causes.push(`config file profile (${PROFILE_AWS_EC2_METADATA_V1_DISABLED})`); + if (fallbackBlockedFromProcessEnv) + causes.push(`process environment variable (${AWS_EC2_METADATA_V1_DISABLED})`); + throw new InstanceMetadataV1FallbackError( + `AWS EC2 Metadata v1 fallback has been blocked by AWS SDK configuration in the following: [${causes.join( + ", " + )}].` + ); + } + } + const imdsProfile = (await retry(async () => { + let profile2; + try { + profile2 = await getProfile(options); + } catch (err2) { + if (err2.statusCode === 401) { + disableFetchToken = false; + } + throw err2; + } + return profile2; + }, maxRetries2)).trim(); + return retry(async () => { + let creds; + try { + creds = await getCredentialsFromProfile(imdsProfile, options, init2); + } catch (err2) { + if (err2.statusCode === 401) { + disableFetchToken = false; + } + throw err2; + } + return creds; + }, maxRetries2); + }, "getCredentials"); + return async () => { + const endpoint = await getInstanceMetadataEndpoint(); + if (disableFetchToken) { + logger3 == null ? void 0 : logger3.debug("AWS SDK Instance Metadata", "using v1 fallback (no token fetch)"); + return getCredentials(maxRetries, { ...endpoint, timeout }); + } else { + let token; + try { + token = (await getMetadataToken({ ...endpoint, timeout })).toString(); + } catch (error2) { + if ((error2 == null ? void 0 : error2.statusCode) === 400) { + throw Object.assign(error2, { + message: "EC2 Metadata token request returned error" + }); + } else if (error2.message === "TimeoutError" || [403, 404, 405].includes(error2.statusCode)) { + disableFetchToken = true; + } + logger3 == null ? void 0 : logger3.debug("AWS SDK Instance Metadata", "using v1 fallback (initial)"); + return getCredentials(maxRetries, { ...endpoint, timeout }); + } + return getCredentials(maxRetries, { + ...endpoint, + headers: { + [X_AWS_EC2_METADATA_TOKEN]: token + }, + timeout + }); + } + }; + }, "getInstanceMetadataProvider"); + var getMetadataToken = /* @__PURE__ */ __name(async (options) => httpRequest({ + ...options, + path: IMDS_TOKEN_PATH, + method: "PUT", + headers: { + "x-aws-ec2-metadata-token-ttl-seconds": "21600" + } + }), "getMetadataToken"); + var getProfile = /* @__PURE__ */ __name(async (options) => (await httpRequest({ ...options, path: IMDS_PATH })).toString(), "getProfile"); + var getCredentialsFromProfile = /* @__PURE__ */ __name(async (profile, options, init2) => { + const credentialsResponse = JSON.parse( + (await httpRequest({ + ...options, + path: IMDS_PATH + profile + })).toString() + ); + if (!isImdsCredentials(credentialsResponse)) { + throw new import_property_provider2.CredentialsProviderError("Invalid response received from instance metadata service.", { + logger: init2.logger + }); + } + return fromImdsCredentials(credentialsResponse); + }, "getCredentialsFromProfile"); + } +}); + +// ../node_modules/.pnpm/@aws-sdk+credential-provider-http@3.816.0/node_modules/@aws-sdk/credential-provider-http/dist-cjs/fromHttp/checkUrl.js +var require_checkUrl = __commonJS({ + "../node_modules/.pnpm/@aws-sdk+credential-provider-http@3.816.0/node_modules/@aws-sdk/credential-provider-http/dist-cjs/fromHttp/checkUrl.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.checkUrl = void 0; + var property_provider_1 = require_dist_cjs20(); + var ECS_CONTAINER_HOST = "169.254.170.2"; + var EKS_CONTAINER_HOST_IPv4 = "169.254.170.23"; + var EKS_CONTAINER_HOST_IPv6 = "[fd00:ec2::23]"; + var checkUrl = (url, logger3) => { + if (url.protocol === "https:") { + return; + } + if (url.hostname === ECS_CONTAINER_HOST || url.hostname === EKS_CONTAINER_HOST_IPv4 || url.hostname === EKS_CONTAINER_HOST_IPv6) { + return; + } + if (url.hostname.includes("[")) { + if (url.hostname === "[::1]" || url.hostname === "[0000:0000:0000:0000:0000:0000:0000:0001]") { + return; + } + } else { + if (url.hostname === "localhost") { + return; + } + const ipComponents = url.hostname.split("."); + const inRange = (component) => { + const num = parseInt(component, 10); + return 0 <= num && num <= 255; + }; + if (ipComponents[0] === "127" && inRange(ipComponents[1]) && inRange(ipComponents[2]) && inRange(ipComponents[3]) && ipComponents.length === 4) { + return; + } + } + throw new property_provider_1.CredentialsProviderError(`URL not accepted. It must either be HTTPS or match one of the following: + - loopback CIDR 127.0.0.0/8 or [::1/128] + - ECS container host 169.254.170.2 + - EKS container host 169.254.170.23 or [fd00:ec2::23]`, { logger: logger3 }); + }; + exports2.checkUrl = checkUrl; + } +}); + +// ../node_modules/.pnpm/@aws-sdk+credential-provider-http@3.816.0/node_modules/@aws-sdk/credential-provider-http/dist-cjs/fromHttp/requestHelpers.js +var require_requestHelpers = __commonJS({ + "../node_modules/.pnpm/@aws-sdk+credential-provider-http@3.816.0/node_modules/@aws-sdk/credential-provider-http/dist-cjs/fromHttp/requestHelpers.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.createGetRequest = createGetRequest; + exports2.getCredentials = getCredentials; + var property_provider_1 = require_dist_cjs20(); + var protocol_http_1 = require_dist_cjs2(); + var smithy_client_1 = require_dist_cjs23(); + var util_stream_1 = require_dist_cjs17(); + function createGetRequest(url) { + return new protocol_http_1.HttpRequest({ + protocol: url.protocol, + hostname: url.hostname, + port: Number(url.port), + path: url.pathname, + query: Array.from(url.searchParams.entries()).reduce((acc, [k3, v6]) => { + acc[k3] = v6; + return acc; + }, {}), + fragment: url.hash + }); + } + async function getCredentials(response, logger3) { + const stream = (0, util_stream_1.sdkStreamMixin)(response.body); + const str = await stream.transformToString(); + if (response.statusCode === 200) { + const parsed = JSON.parse(str); + if (typeof parsed.AccessKeyId !== "string" || typeof parsed.SecretAccessKey !== "string" || typeof parsed.Token !== "string" || typeof parsed.Expiration !== "string") { + throw new property_provider_1.CredentialsProviderError("HTTP credential provider response not of the required format, an object matching: { AccessKeyId: string, SecretAccessKey: string, Token: string, Expiration: string(rfc3339) }", { logger: logger3 }); + } + return { + accessKeyId: parsed.AccessKeyId, + secretAccessKey: parsed.SecretAccessKey, + sessionToken: parsed.Token, + expiration: (0, smithy_client_1.parseRfc3339DateTime)(parsed.Expiration) + }; + } + if (response.statusCode >= 400 && response.statusCode < 500) { + let parsedBody = {}; + try { + parsedBody = JSON.parse(str); + } catch (e4) { + } + throw Object.assign(new property_provider_1.CredentialsProviderError(`Server responded with status: ${response.statusCode}`, { logger: logger3 }), { + Code: parsedBody.Code, + Message: parsedBody.Message + }); + } + throw new property_provider_1.CredentialsProviderError(`Server responded with status: ${response.statusCode}`, { logger: logger3 }); + } + } +}); + +// ../node_modules/.pnpm/@aws-sdk+credential-provider-http@3.816.0/node_modules/@aws-sdk/credential-provider-http/dist-cjs/fromHttp/retry-wrapper.js +var require_retry_wrapper = __commonJS({ + "../node_modules/.pnpm/@aws-sdk+credential-provider-http@3.816.0/node_modules/@aws-sdk/credential-provider-http/dist-cjs/fromHttp/retry-wrapper.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.retryWrapper = void 0; + var retryWrapper = (toRetry, maxRetries, delayMs) => { + return async () => { + for (let i4 = 0; i4 < maxRetries; ++i4) { + try { + return await toRetry(); + } catch (e4) { + await new Promise((resolve2) => setTimeout(resolve2, delayMs)); + } + } + return await toRetry(); + }; + }; + exports2.retryWrapper = retryWrapper; + } +}); + +// ../node_modules/.pnpm/@aws-sdk+credential-provider-http@3.816.0/node_modules/@aws-sdk/credential-provider-http/dist-cjs/fromHttp/fromHttp.js +var require_fromHttp = __commonJS({ + "../node_modules/.pnpm/@aws-sdk+credential-provider-http@3.816.0/node_modules/@aws-sdk/credential-provider-http/dist-cjs/fromHttp/fromHttp.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.fromHttp = void 0; + var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports)); + var client_1 = (init_client(), __toCommonJS(client_exports)); + var node_http_handler_1 = require_dist_cjs14(); + var property_provider_1 = require_dist_cjs20(); + var promises_1 = tslib_1.__importDefault(require("fs/promises")); + var checkUrl_1 = require_checkUrl(); + var requestHelpers_1 = require_requestHelpers(); + var retry_wrapper_1 = require_retry_wrapper(); + var AWS_CONTAINER_CREDENTIALS_RELATIVE_URI = "AWS_CONTAINER_CREDENTIALS_RELATIVE_URI"; + var DEFAULT_LINK_LOCAL_HOST = "http://169.254.170.2"; + var AWS_CONTAINER_CREDENTIALS_FULL_URI = "AWS_CONTAINER_CREDENTIALS_FULL_URI"; + var AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE = "AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE"; + var AWS_CONTAINER_AUTHORIZATION_TOKEN = "AWS_CONTAINER_AUTHORIZATION_TOKEN"; + var fromHttp = (options = {}) => { + var _a2, _b, _c; + (_a2 = options.logger) == null ? void 0 : _a2.debug("@aws-sdk/credential-provider-http - fromHttp"); + let host; + const relative = options.awsContainerCredentialsRelativeUri ?? process.env[AWS_CONTAINER_CREDENTIALS_RELATIVE_URI]; + const full = options.awsContainerCredentialsFullUri ?? process.env[AWS_CONTAINER_CREDENTIALS_FULL_URI]; + const token = options.awsContainerAuthorizationToken ?? process.env[AWS_CONTAINER_AUTHORIZATION_TOKEN]; + const tokenFile = options.awsContainerAuthorizationTokenFile ?? process.env[AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE]; + const warn = ((_c = (_b = options.logger) == null ? void 0 : _b.constructor) == null ? void 0 : _c.name) === "NoOpLogger" || !options.logger ? console.warn : options.logger.warn; + if (relative && full) { + warn("@aws-sdk/credential-provider-http: you have set both awsContainerCredentialsRelativeUri and awsContainerCredentialsFullUri."); + warn("awsContainerCredentialsFullUri will take precedence."); + } + if (token && tokenFile) { + warn("@aws-sdk/credential-provider-http: you have set both awsContainerAuthorizationToken and awsContainerAuthorizationTokenFile."); + warn("awsContainerAuthorizationToken will take precedence."); + } + if (full) { + host = full; + } else if (relative) { + host = `${DEFAULT_LINK_LOCAL_HOST}${relative}`; + } else { + throw new property_provider_1.CredentialsProviderError(`No HTTP credential provider host provided. +Set AWS_CONTAINER_CREDENTIALS_FULL_URI or AWS_CONTAINER_CREDENTIALS_RELATIVE_URI.`, { logger: options.logger }); + } + const url = new URL(host); + (0, checkUrl_1.checkUrl)(url, options.logger); + const requestHandler = new node_http_handler_1.NodeHttpHandler({ + requestTimeout: options.timeout ?? 1e3, + connectionTimeout: options.timeout ?? 1e3 + }); + return (0, retry_wrapper_1.retryWrapper)(async () => { + const request = (0, requestHelpers_1.createGetRequest)(url); + if (token) { + request.headers.Authorization = token; + } else if (tokenFile) { + request.headers.Authorization = (await promises_1.default.readFile(tokenFile)).toString(); + } + try { + const result = await requestHandler.handle(request); + return (0, requestHelpers_1.getCredentials)(result.response).then((creds) => (0, client_1.setCredentialFeature)(creds, "CREDENTIALS_HTTP", "z")); + } catch (e4) { + throw new property_provider_1.CredentialsProviderError(String(e4), { logger: options.logger }); + } + }, options.maxRetries ?? 3, options.timeout ?? 1e3); + }; + exports2.fromHttp = fromHttp; + } +}); + +// ../node_modules/.pnpm/@aws-sdk+credential-provider-http@3.816.0/node_modules/@aws-sdk/credential-provider-http/dist-cjs/index.js +var require_dist_cjs38 = __commonJS({ + "../node_modules/.pnpm/@aws-sdk+credential-provider-http@3.816.0/node_modules/@aws-sdk/credential-provider-http/dist-cjs/index.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.fromHttp = void 0; + var fromHttp_1 = require_fromHttp(); + Object.defineProperty(exports2, "fromHttp", { enumerable: true, get: function() { + return fromHttp_1.fromHttp; + } }); + } +}); + +// ../node_modules/.pnpm/@aws-sdk+client-sso@3.817.0/node_modules/@aws-sdk/client-sso/dist-cjs/auth/httpAuthSchemeProvider.js +var require_httpAuthSchemeProvider2 = __commonJS({ + "../node_modules/.pnpm/@aws-sdk+client-sso@3.817.0/node_modules/@aws-sdk/client-sso/dist-cjs/auth/httpAuthSchemeProvider.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.resolveHttpAuthSchemeConfig = exports2.defaultSSOHttpAuthSchemeProvider = exports2.defaultSSOHttpAuthSchemeParametersProvider = void 0; + var core_1 = (init_dist_es2(), __toCommonJS(dist_es_exports2)); + var util_middleware_1 = require_dist_cjs6(); + var defaultSSOHttpAuthSchemeParametersProvider = async (config, context, input) => { + return { + operation: (0, util_middleware_1.getSmithyContext)(context).operation, + region: await (0, util_middleware_1.normalizeProvider)(config.region)() || (() => { + throw new Error("expected `region` to be configured for `aws.auth#sigv4`"); + })() + }; + }; + exports2.defaultSSOHttpAuthSchemeParametersProvider = defaultSSOHttpAuthSchemeParametersProvider; + function createAwsAuthSigv4HttpAuthOption3(authParameters) { + return { + schemeId: "aws.auth#sigv4", + signingProperties: { + name: "awsssoportal", + region: authParameters.region + }, + propertiesExtractor: (config, context) => ({ + signingProperties: { + config, + context + } + }) + }; + } + function createSmithyApiNoAuthHttpAuthOption3(authParameters) { + return { + schemeId: "smithy.api#noAuth" + }; + } + var defaultSSOHttpAuthSchemeProvider = (authParameters) => { + const options = []; + switch (authParameters.operation) { + case "GetRoleCredentials": { + options.push(createSmithyApiNoAuthHttpAuthOption3(authParameters)); + break; + } + case "ListAccountRoles": { + options.push(createSmithyApiNoAuthHttpAuthOption3(authParameters)); + break; + } + case "ListAccounts": { + options.push(createSmithyApiNoAuthHttpAuthOption3(authParameters)); + break; + } + case "Logout": { + options.push(createSmithyApiNoAuthHttpAuthOption3(authParameters)); + break; + } + default: { + options.push(createAwsAuthSigv4HttpAuthOption3(authParameters)); + } + } + return options; + }; + exports2.defaultSSOHttpAuthSchemeProvider = defaultSSOHttpAuthSchemeProvider; + var resolveHttpAuthSchemeConfig3 = (config) => { + const config_0 = (0, core_1.resolveAwsSdkSigV4Config)(config); + return Object.assign(config_0, { + authSchemePreference: (0, util_middleware_1.normalizeProvider)(config.authSchemePreference ?? []) + }); + }; + exports2.resolveHttpAuthSchemeConfig = resolveHttpAuthSchemeConfig3; + } +}); + +// ../node_modules/.pnpm/@aws-sdk+client-sso@3.817.0/node_modules/@aws-sdk/client-sso/package.json +var require_package3 = __commonJS({ + "../node_modules/.pnpm/@aws-sdk+client-sso@3.817.0/node_modules/@aws-sdk/client-sso/package.json"(exports2, module2) { + module2.exports = { + name: "@aws-sdk/client-sso", + description: "AWS SDK for JavaScript Sso Client for Node.js, Browser and React Native", + version: "3.817.0", + scripts: { + build: "concurrently 'yarn:build:cjs' 'yarn:build:es' 'yarn:build:types'", + "build:cjs": "node ../../scripts/compilation/inline client-sso", + "build:es": "tsc -p tsconfig.es.json", + "build:include:deps": "lerna run --scope $npm_package_name --include-dependencies build", + "build:types": "tsc -p tsconfig.types.json", + "build:types:downlevel": "downlevel-dts dist-types dist-types/ts3.4", + clean: "rimraf ./dist-* && rimraf *.tsbuildinfo", + "extract:docs": "api-extractor run --local", + "generate:client": "node ../../scripts/generate-clients/single-service --solo sso" + }, + main: "./dist-cjs/index.js", + types: "./dist-types/index.d.ts", + module: "./dist-es/index.js", + sideEffects: false, + dependencies: { + "@aws-crypto/sha256-browser": "5.2.0", + "@aws-crypto/sha256-js": "5.2.0", + "@aws-sdk/core": "3.816.0", + "@aws-sdk/middleware-host-header": "3.804.0", + "@aws-sdk/middleware-logger": "3.804.0", + "@aws-sdk/middleware-recursion-detection": "3.804.0", + "@aws-sdk/middleware-user-agent": "3.816.0", + "@aws-sdk/region-config-resolver": "3.808.0", + "@aws-sdk/types": "3.804.0", + "@aws-sdk/util-endpoints": "3.808.0", + "@aws-sdk/util-user-agent-browser": "3.804.0", + "@aws-sdk/util-user-agent-node": "3.816.0", + "@smithy/config-resolver": "^4.1.2", + "@smithy/core": "^3.3.3", + "@smithy/fetch-http-handler": "^5.0.2", + "@smithy/hash-node": "^4.0.2", + "@smithy/invalid-dependency": "^4.0.2", + "@smithy/middleware-content-length": "^4.0.2", + "@smithy/middleware-endpoint": "^4.1.6", + "@smithy/middleware-retry": "^4.1.7", + "@smithy/middleware-serde": "^4.0.5", + "@smithy/middleware-stack": "^4.0.2", + "@smithy/node-config-provider": "^4.1.1", + "@smithy/node-http-handler": "^4.0.4", + "@smithy/protocol-http": "^5.1.0", + "@smithy/smithy-client": "^4.2.6", + "@smithy/types": "^4.2.0", + "@smithy/url-parser": "^4.0.2", + "@smithy/util-base64": "^4.0.0", + "@smithy/util-body-length-browser": "^4.0.0", + "@smithy/util-body-length-node": "^4.0.0", + "@smithy/util-defaults-mode-browser": "^4.0.14", + "@smithy/util-defaults-mode-node": "^4.0.14", + "@smithy/util-endpoints": "^3.0.4", + "@smithy/util-middleware": "^4.0.2", + "@smithy/util-retry": "^4.0.3", + "@smithy/util-utf8": "^4.0.0", + tslib: "^2.6.2" + }, + devDependencies: { + "@tsconfig/node18": "18.2.4", + "@types/node": "^18.19.69", + concurrently: "7.0.0", + "downlevel-dts": "0.10.1", + rimraf: "3.0.2", + typescript: "~5.8.3" + }, + engines: { + node: ">=18.0.0" + }, + typesVersions: { + "<4.0": { + "dist-types/*": [ + "dist-types/ts3.4/*" + ] + } + }, + files: [ + "dist-*/**" + ], + author: { + name: "AWS SDK for JavaScript Team", + url: "https://aws.amazon.com/javascript/" + }, + license: "Apache-2.0", + browser: { + "./dist-es/runtimeConfig": "./dist-es/runtimeConfig.browser" + }, + "react-native": { + "./dist-es/runtimeConfig": "./dist-es/runtimeConfig.native" + }, + homepage: "https://github.com/aws/aws-sdk-js-v3/tree/main/clients/client-sso", + repository: { + type: "git", + url: "https://github.com/aws/aws-sdk-js-v3.git", + directory: "clients/client-sso" + } + }; + } +}); + +// ../node_modules/.pnpm/@aws-sdk+util-user-agent-node@3.816.0/node_modules/@aws-sdk/util-user-agent-node/dist-cjs/index.js +var require_dist_cjs39 = __commonJS({ + "../node_modules/.pnpm/@aws-sdk+util-user-agent-node@3.816.0/node_modules/@aws-sdk/util-user-agent-node/dist-cjs/index.js"(exports2, module2) { + "use strict"; + var __defProp3 = Object.defineProperty; + var __getOwnPropDesc3 = Object.getOwnPropertyDescriptor; + var __getOwnPropNames3 = Object.getOwnPropertyNames; + var __hasOwnProp3 = Object.prototype.hasOwnProperty; + var __name = (target, value) => __defProp3(target, "name", { value, configurable: true }); + var __export2 = (target, all) => { + for (var name in all) + __defProp3(target, name, { get: all[name], enumerable: true }); + }; + var __copyProps3 = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames3(from)) + if (!__hasOwnProp3.call(to, key) && key !== except) + __defProp3(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc3(from, key)) || desc.enumerable }); + } + return to; + }; + var __toCommonJS2 = (mod) => __copyProps3(__defProp3({}, "__esModule", { value: true }), mod); + var index_exports = {}; + __export2(index_exports, { + NODE_APP_ID_CONFIG_OPTIONS: () => NODE_APP_ID_CONFIG_OPTIONS3, + UA_APP_ID_ENV_NAME: () => UA_APP_ID_ENV_NAME, + UA_APP_ID_INI_NAME: () => UA_APP_ID_INI_NAME, + createDefaultUserAgentProvider: () => createDefaultUserAgentProvider3, + crtAvailability: () => crtAvailability, + defaultUserAgent: () => defaultUserAgent + }); + module2.exports = __toCommonJS2(index_exports); + var import_os = require("os"); + var import_process = require("process"); + var crtAvailability = { + isCrtAvailable: false + }; + var isCrtAvailable = /* @__PURE__ */ __name(() => { + if (crtAvailability.isCrtAvailable) { + return ["md/crt-avail"]; + } + return null; + }, "isCrtAvailable"); + var createDefaultUserAgentProvider3 = /* @__PURE__ */ __name(({ serviceId, clientVersion }) => { + return async (config) => { + var _a2; + const sections = [ + // sdk-metadata + ["aws-sdk-js", clientVersion], + // ua-metadata + ["ua", "2.1"], + // os-metadata + [`os/${(0, import_os.platform)()}`, (0, import_os.release)()], + // language-metadata + // ECMAScript edition doesn't matter in JS, so no version needed. + ["lang/js"], + ["md/nodejs", `${import_process.versions.node}`] + ]; + const crtAvailable = isCrtAvailable(); + if (crtAvailable) { + sections.push(crtAvailable); + } + if (serviceId) { + sections.push([`api/${serviceId}`, clientVersion]); + } + if (import_process.env.AWS_EXECUTION_ENV) { + sections.push([`exec-env/${import_process.env.AWS_EXECUTION_ENV}`]); + } + const appId = await ((_a2 = config == null ? void 0 : config.userAgentAppId) == null ? void 0 : _a2.call(config)); + const resolvedUserAgent = appId ? [...sections, [`app/${appId}`]] : [...sections]; + return resolvedUserAgent; + }; + }, "createDefaultUserAgentProvider"); + var defaultUserAgent = createDefaultUserAgentProvider3; + var import_middleware_user_agent3 = require_dist_cjs24(); + var UA_APP_ID_ENV_NAME = "AWS_SDK_UA_APP_ID"; + var UA_APP_ID_INI_NAME = "sdk_ua_app_id"; + var UA_APP_ID_INI_NAME_DEPRECATED = "sdk-ua-app-id"; + var NODE_APP_ID_CONFIG_OPTIONS3 = { + environmentVariableSelector: /* @__PURE__ */ __name((env22) => env22[UA_APP_ID_ENV_NAME], "environmentVariableSelector"), + configFileSelector: /* @__PURE__ */ __name((profile) => profile[UA_APP_ID_INI_NAME] ?? profile[UA_APP_ID_INI_NAME_DEPRECATED], "configFileSelector"), + default: import_middleware_user_agent3.DEFAULT_UA_APP_ID + }; + } +}); + +// ../node_modules/.pnpm/@smithy+hash-node@4.0.4/node_modules/@smithy/hash-node/dist-cjs/index.js +var require_dist_cjs40 = __commonJS({ + "../node_modules/.pnpm/@smithy+hash-node@4.0.4/node_modules/@smithy/hash-node/dist-cjs/index.js"(exports2, module2) { + var __defProp3 = Object.defineProperty; + var __getOwnPropDesc3 = Object.getOwnPropertyDescriptor; + var __getOwnPropNames3 = Object.getOwnPropertyNames; + var __hasOwnProp3 = Object.prototype.hasOwnProperty; + var __name = (target, value) => __defProp3(target, "name", { value, configurable: true }); + var __export2 = (target, all) => { + for (var name in all) + __defProp3(target, name, { get: all[name], enumerable: true }); + }; + var __copyProps3 = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames3(from)) + if (!__hasOwnProp3.call(to, key) && key !== except) + __defProp3(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc3(from, key)) || desc.enumerable }); + } + return to; + }; + var __toCommonJS2 = (mod) => __copyProps3(__defProp3({}, "__esModule", { value: true }), mod); + var src_exports = {}; + __export2(src_exports, { + Hash: () => Hash3 + }); + module2.exports = __toCommonJS2(src_exports); + var import_util_buffer_from = require_dist_cjs9(); + var import_util_utf85 = require_dist_cjs10(); + var import_buffer2 = require("buffer"); + var import_crypto10 = require("crypto"); + var _a2; + var Hash3 = (_a2 = class { + constructor(algorithmIdentifier, secret) { + this.algorithmIdentifier = algorithmIdentifier; + this.secret = secret; + this.reset(); + } + update(toHash, encoding) { + this.hash.update((0, import_util_utf85.toUint8Array)(castSourceData(toHash, encoding))); + } + digest() { + return Promise.resolve(this.hash.digest()); + } + reset() { + this.hash = this.secret ? (0, import_crypto10.createHmac)(this.algorithmIdentifier, castSourceData(this.secret)) : (0, import_crypto10.createHash)(this.algorithmIdentifier); + } + }, __name(_a2, "Hash"), _a2); + function castSourceData(toCast, encoding) { + if (import_buffer2.Buffer.isBuffer(toCast)) { + return toCast; + } + if (typeof toCast === "string") { + return (0, import_util_buffer_from.fromString)(toCast, encoding); + } + if (ArrayBuffer.isView(toCast)) { + return (0, import_util_buffer_from.fromArrayBuffer)(toCast.buffer, toCast.byteOffset, toCast.byteLength); + } + return (0, import_util_buffer_from.fromArrayBuffer)(toCast); + } + __name(castSourceData, "castSourceData"); + } +}); + +// ../node_modules/.pnpm/@smithy+util-body-length-node@4.0.0/node_modules/@smithy/util-body-length-node/dist-cjs/index.js +var require_dist_cjs41 = __commonJS({ + "../node_modules/.pnpm/@smithy+util-body-length-node@4.0.0/node_modules/@smithy/util-body-length-node/dist-cjs/index.js"(exports2, module2) { + var __defProp3 = Object.defineProperty; + var __getOwnPropDesc3 = Object.getOwnPropertyDescriptor; + var __getOwnPropNames3 = Object.getOwnPropertyNames; + var __hasOwnProp3 = Object.prototype.hasOwnProperty; + var __name = (target, value) => __defProp3(target, "name", { value, configurable: true }); + var __export2 = (target, all) => { + for (var name in all) + __defProp3(target, name, { get: all[name], enumerable: true }); + }; + var __copyProps3 = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames3(from)) + if (!__hasOwnProp3.call(to, key) && key !== except) + __defProp3(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc3(from, key)) || desc.enumerable }); + } + return to; + }; + var __toCommonJS2 = (mod) => __copyProps3(__defProp3({}, "__esModule", { value: true }), mod); + var src_exports = {}; + __export2(src_exports, { + calculateBodyLength: () => calculateBodyLength3 + }); + module2.exports = __toCommonJS2(src_exports); + var import_fs14 = require("fs"); + var calculateBodyLength3 = /* @__PURE__ */ __name((body) => { + if (!body) { + return 0; + } + if (typeof body === "string") { + return Buffer.byteLength(body); + } else if (typeof body.byteLength === "number") { + return body.byteLength; + } else if (typeof body.size === "number") { + return body.size; + } else if (typeof body.start === "number" && typeof body.end === "number") { + return body.end + 1 - body.start; + } else if (typeof body.path === "string" || Buffer.isBuffer(body.path)) { + return (0, import_fs14.lstatSync)(body.path).size; + } else if (typeof body.fd === "number") { + return (0, import_fs14.fstatSync)(body.fd).size; + } + throw new Error(`Body Length computation failed for ${body}`); + }, "calculateBodyLength"); + } +}); + +// ../node_modules/.pnpm/@aws-sdk+client-sso@3.817.0/node_modules/@aws-sdk/client-sso/dist-cjs/endpoint/ruleset.js +var require_ruleset = __commonJS({ + "../node_modules/.pnpm/@aws-sdk+client-sso@3.817.0/node_modules/@aws-sdk/client-sso/dist-cjs/endpoint/ruleset.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ruleSet = void 0; + var u3 = "required"; + var v6 = "fn"; + var w3 = "argv"; + var x4 = "ref"; + var a3 = true; + var b3 = "isSet"; + var c3 = "booleanEquals"; + var d3 = "error"; + var e4 = "endpoint"; + var f5 = "tree"; + var g3 = "PartitionResult"; + var h4 = "getAttr"; + var i4 = { [u3]: false, "type": "String" }; + var j3 = { [u3]: true, "default": false, "type": "Boolean" }; + var k3 = { [x4]: "Endpoint" }; + var l3 = { [v6]: c3, [w3]: [{ [x4]: "UseFIPS" }, true] }; + var m4 = { [v6]: c3, [w3]: [{ [x4]: "UseDualStack" }, true] }; + var n3 = {}; + var o3 = { [v6]: h4, [w3]: [{ [x4]: g3 }, "supportsFIPS"] }; + var p3 = { [x4]: g3 }; + var q3 = { [v6]: c3, [w3]: [true, { [v6]: h4, [w3]: [p3, "supportsDualStack"] }] }; + var r4 = [l3]; + var s4 = [m4]; + var t4 = [{ [x4]: "Region" }]; + var _data3 = { version: "1.0", parameters: { Region: i4, UseDualStack: j3, UseFIPS: j3, Endpoint: i4 }, rules: [{ conditions: [{ [v6]: b3, [w3]: [k3] }], rules: [{ conditions: r4, error: "Invalid Configuration: FIPS and custom endpoint are not supported", type: d3 }, { conditions: s4, error: "Invalid Configuration: Dualstack and custom endpoint are not supported", type: d3 }, { endpoint: { url: k3, properties: n3, headers: n3 }, type: e4 }], type: f5 }, { conditions: [{ [v6]: b3, [w3]: t4 }], rules: [{ conditions: [{ [v6]: "aws.partition", [w3]: t4, assign: g3 }], rules: [{ conditions: [l3, m4], rules: [{ conditions: [{ [v6]: c3, [w3]: [a3, o3] }, q3], rules: [{ endpoint: { url: "https://portal.sso-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", properties: n3, headers: n3 }, type: e4 }], type: f5 }, { error: "FIPS and DualStack are enabled, but this partition does not support one or both", type: d3 }], type: f5 }, { conditions: r4, rules: [{ conditions: [{ [v6]: c3, [w3]: [o3, a3] }], rules: [{ conditions: [{ [v6]: "stringEquals", [w3]: [{ [v6]: h4, [w3]: [p3, "name"] }, "aws-us-gov"] }], endpoint: { url: "https://portal.sso.{Region}.amazonaws.com", properties: n3, headers: n3 }, type: e4 }, { endpoint: { url: "https://portal.sso-fips.{Region}.{PartitionResult#dnsSuffix}", properties: n3, headers: n3 }, type: e4 }], type: f5 }, { error: "FIPS is enabled but this partition does not support FIPS", type: d3 }], type: f5 }, { conditions: s4, rules: [{ conditions: [q3], rules: [{ endpoint: { url: "https://portal.sso.{Region}.{PartitionResult#dualStackDnsSuffix}", properties: n3, headers: n3 }, type: e4 }], type: f5 }, { error: "DualStack is enabled but this partition does not support DualStack", type: d3 }], type: f5 }, { endpoint: { url: "https://portal.sso.{Region}.{PartitionResult#dnsSuffix}", properties: n3, headers: n3 }, type: e4 }], type: f5 }], type: f5 }, { error: "Invalid Configuration: Missing Region", type: d3 }] }; + exports2.ruleSet = _data3; + } +}); + +// ../node_modules/.pnpm/@aws-sdk+client-sso@3.817.0/node_modules/@aws-sdk/client-sso/dist-cjs/endpoint/endpointResolver.js +var require_endpointResolver = __commonJS({ + "../node_modules/.pnpm/@aws-sdk+client-sso@3.817.0/node_modules/@aws-sdk/client-sso/dist-cjs/endpoint/endpointResolver.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.defaultEndpointResolver = void 0; + var util_endpoints_1 = require_dist_cjs19(); + var util_endpoints_2 = require_dist_cjs18(); + var ruleset_1 = require_ruleset(); + var cache3 = new util_endpoints_2.EndpointCache({ + size: 50, + params: ["Endpoint", "Region", "UseDualStack", "UseFIPS"] + }); + var defaultEndpointResolver3 = (endpointParams, context = {}) => { + return cache3.get(endpointParams, () => (0, util_endpoints_2.resolveEndpoint)(ruleset_1.ruleSet, { + endpointParams, + logger: context.logger + })); + }; + exports2.defaultEndpointResolver = defaultEndpointResolver3; + util_endpoints_2.customEndpointFunctions.aws = util_endpoints_1.awsEndpointFunctions; + } +}); + +// ../node_modules/.pnpm/@aws-sdk+client-sso@3.817.0/node_modules/@aws-sdk/client-sso/dist-cjs/runtimeConfig.shared.js +var require_runtimeConfig_shared = __commonJS({ + "../node_modules/.pnpm/@aws-sdk+client-sso@3.817.0/node_modules/@aws-sdk/client-sso/dist-cjs/runtimeConfig.shared.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.getRuntimeConfig = void 0; + var core_1 = (init_dist_es2(), __toCommonJS(dist_es_exports2)); + var core_2 = (init_dist_es(), __toCommonJS(dist_es_exports)); + var smithy_client_1 = require_dist_cjs23(); + var url_parser_1 = require_dist_cjs31(); + var util_base64_1 = require_dist_cjs11(); + var util_utf8_1 = require_dist_cjs10(); + var httpAuthSchemeProvider_1 = require_httpAuthSchemeProvider2(); + var endpointResolver_1 = require_endpointResolver(); + var getRuntimeConfig5 = (config) => { + return { + apiVersion: "2019-06-10", + base64Decoder: (config == null ? void 0 : config.base64Decoder) ?? util_base64_1.fromBase64, + base64Encoder: (config == null ? void 0 : config.base64Encoder) ?? util_base64_1.toBase64, + disableHostPrefix: (config == null ? void 0 : config.disableHostPrefix) ?? false, + endpointProvider: (config == null ? void 0 : config.endpointProvider) ?? endpointResolver_1.defaultEndpointResolver, + extensions: (config == null ? void 0 : config.extensions) ?? [], + httpAuthSchemeProvider: (config == null ? void 0 : config.httpAuthSchemeProvider) ?? httpAuthSchemeProvider_1.defaultSSOHttpAuthSchemeProvider, + httpAuthSchemes: (config == null ? void 0 : config.httpAuthSchemes) ?? [ + { + schemeId: "aws.auth#sigv4", + identityProvider: (ipc) => ipc.getIdentityProvider("aws.auth#sigv4"), + signer: new core_1.AwsSdkSigV4Signer() + }, + { + schemeId: "smithy.api#noAuth", + identityProvider: (ipc) => ipc.getIdentityProvider("smithy.api#noAuth") || (async () => ({})), + signer: new core_2.NoAuthSigner() + } + ], + logger: (config == null ? void 0 : config.logger) ?? new smithy_client_1.NoOpLogger(), + serviceId: (config == null ? void 0 : config.serviceId) ?? "SSO", + urlParser: (config == null ? void 0 : config.urlParser) ?? url_parser_1.parseUrl, + utf8Decoder: (config == null ? void 0 : config.utf8Decoder) ?? util_utf8_1.fromUtf8, + utf8Encoder: (config == null ? void 0 : config.utf8Encoder) ?? util_utf8_1.toUtf8 + }; + }; + exports2.getRuntimeConfig = getRuntimeConfig5; + } +}); + +// ../node_modules/.pnpm/@smithy+util-defaults-mode-node@4.0.17/node_modules/@smithy/util-defaults-mode-node/dist-cjs/index.js +var require_dist_cjs42 = __commonJS({ + "../node_modules/.pnpm/@smithy+util-defaults-mode-node@4.0.17/node_modules/@smithy/util-defaults-mode-node/dist-cjs/index.js"(exports2, module2) { + var __create3 = Object.create; + var __defProp3 = Object.defineProperty; + var __getOwnPropDesc3 = Object.getOwnPropertyDescriptor; + var __getOwnPropNames3 = Object.getOwnPropertyNames; + var __getProtoOf3 = Object.getPrototypeOf; + var __hasOwnProp3 = Object.prototype.hasOwnProperty; + var __name = (target, value) => __defProp3(target, "name", { value, configurable: true }); + var __export2 = (target, all) => { + for (var name in all) + __defProp3(target, name, { get: all[name], enumerable: true }); + }; + var __copyProps3 = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames3(from)) + if (!__hasOwnProp3.call(to, key) && key !== except) + __defProp3(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc3(from, key)) || desc.enumerable }); + } + return to; + }; + var __toESM3 = (mod, isNodeMode, target) => (target = mod != null ? __create3(__getProtoOf3(mod)) : {}, __copyProps3( + // If the importer is in node compatibility mode or this is not an ESM + // file that has been converted to a CommonJS file using a Babel- + // compatible transform (i.e. "__esModule" has not been set), then set + // "default" to the CommonJS "module.exports" for node compatibility. + isNodeMode || !mod || !mod.__esModule ? __defProp3(target, "default", { value: mod, enumerable: true }) : target, + mod + )); + var __toCommonJS2 = (mod) => __copyProps3(__defProp3({}, "__esModule", { value: true }), mod); + var src_exports = {}; + __export2(src_exports, { + resolveDefaultsModeConfig: () => resolveDefaultsModeConfig3 + }); + module2.exports = __toCommonJS2(src_exports); + var import_config_resolver5 = require_dist_cjs26(); + var import_node_config_provider3 = require_dist_cjs29(); + var import_property_provider2 = require_dist_cjs20(); + var AWS_EXECUTION_ENV = "AWS_EXECUTION_ENV"; + var AWS_REGION_ENV = "AWS_REGION"; + var AWS_DEFAULT_REGION_ENV = "AWS_DEFAULT_REGION"; + var ENV_IMDS_DISABLED = "AWS_EC2_METADATA_DISABLED"; + var DEFAULTS_MODE_OPTIONS = ["in-region", "cross-region", "mobile", "standard", "legacy"]; + var IMDS_REGION_PATH = "/latest/meta-data/placement/region"; + var AWS_DEFAULTS_MODE_ENV = "AWS_DEFAULTS_MODE"; + var AWS_DEFAULTS_MODE_CONFIG = "defaults_mode"; + var NODE_DEFAULTS_MODE_CONFIG_OPTIONS = { + environmentVariableSelector: (env3) => { + return env3[AWS_DEFAULTS_MODE_ENV]; + }, + configFileSelector: (profile) => { + return profile[AWS_DEFAULTS_MODE_CONFIG]; + }, + default: "legacy" + }; + var resolveDefaultsModeConfig3 = /* @__PURE__ */ __name(({ + region = (0, import_node_config_provider3.loadConfig)(import_config_resolver5.NODE_REGION_CONFIG_OPTIONS), + defaultsMode = (0, import_node_config_provider3.loadConfig)(NODE_DEFAULTS_MODE_CONFIG_OPTIONS) + } = {}) => (0, import_property_provider2.memoize)(async () => { + const mode = typeof defaultsMode === "function" ? await defaultsMode() : defaultsMode; + switch (mode == null ? void 0 : mode.toLowerCase()) { + case "auto": + return resolveNodeDefaultsModeAuto(region); + case "in-region": + case "cross-region": + case "mobile": + case "standard": + case "legacy": + return Promise.resolve(mode == null ? void 0 : mode.toLocaleLowerCase()); + case void 0: + return Promise.resolve("legacy"); + default: + throw new Error( + `Invalid parameter for "defaultsMode", expect ${DEFAULTS_MODE_OPTIONS.join(", ")}, got ${mode}` + ); + } + }), "resolveDefaultsModeConfig"); + var resolveNodeDefaultsModeAuto = /* @__PURE__ */ __name(async (clientRegion) => { + if (clientRegion) { + const resolvedRegion = typeof clientRegion === "function" ? await clientRegion() : clientRegion; + const inferredRegion = await inferPhysicalRegion(); + if (!inferredRegion) { + return "standard"; + } + if (resolvedRegion === inferredRegion) { + return "in-region"; + } else { + return "cross-region"; + } + } + return "standard"; + }, "resolveNodeDefaultsModeAuto"); + var inferPhysicalRegion = /* @__PURE__ */ __name(async () => { + if (process.env[AWS_EXECUTION_ENV] && (process.env[AWS_REGION_ENV] || process.env[AWS_DEFAULT_REGION_ENV])) { + return process.env[AWS_REGION_ENV] ?? process.env[AWS_DEFAULT_REGION_ENV]; + } + if (!process.env[ENV_IMDS_DISABLED]) { + try { + const { getInstanceMetadataEndpoint, httpRequest } = await Promise.resolve().then(() => __toESM3(require_dist_cjs37())); + const endpoint = await getInstanceMetadataEndpoint(); + return (await httpRequest({ ...endpoint, path: IMDS_REGION_PATH })).toString(); + } catch (e4) { + } + } + }, "inferPhysicalRegion"); + } +}); + +// ../node_modules/.pnpm/@aws-sdk+client-sso@3.817.0/node_modules/@aws-sdk/client-sso/dist-cjs/runtimeConfig.js +var require_runtimeConfig = __commonJS({ + "../node_modules/.pnpm/@aws-sdk+client-sso@3.817.0/node_modules/@aws-sdk/client-sso/dist-cjs/runtimeConfig.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.getRuntimeConfig = void 0; + var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports)); + var package_json_1 = tslib_1.__importDefault(require_package3()); + var core_1 = (init_dist_es2(), __toCommonJS(dist_es_exports2)); + var util_user_agent_node_1 = require_dist_cjs39(); + var config_resolver_1 = require_dist_cjs26(); + var hash_node_1 = require_dist_cjs40(); + var middleware_retry_1 = require_dist_cjs35(); + var node_config_provider_1 = require_dist_cjs29(); + var node_http_handler_1 = require_dist_cjs14(); + var util_body_length_node_1 = require_dist_cjs41(); + var util_retry_1 = require_dist_cjs34(); + var runtimeConfig_shared_1 = require_runtimeConfig_shared(); + var smithy_client_1 = require_dist_cjs23(); + var util_defaults_mode_node_1 = require_dist_cjs42(); + var smithy_client_2 = require_dist_cjs23(); + var getRuntimeConfig5 = (config) => { + (0, smithy_client_2.emitWarningIfUnsupportedVersion)(process.version); + const defaultsMode = (0, util_defaults_mode_node_1.resolveDefaultsModeConfig)(config); + const defaultConfigProvider = () => defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode); + const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)(config); + (0, core_1.emitWarningIfUnsupportedVersion)(process.version); + const loaderConfig = { + profile: config == null ? void 0 : config.profile, + logger: clientSharedValues.logger + }; + return { + ...clientSharedValues, + ...config, + runtime: "node", + defaultsMode, + authSchemePreference: (config == null ? void 0 : config.authSchemePreference) ?? (0, node_config_provider_1.loadConfig)(core_1.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS, loaderConfig), + bodyLengthChecker: (config == null ? void 0 : config.bodyLengthChecker) ?? util_body_length_node_1.calculateBodyLength, + defaultUserAgentProvider: (config == null ? void 0 : config.defaultUserAgentProvider) ?? (0, util_user_agent_node_1.createDefaultUserAgentProvider)({ serviceId: clientSharedValues.serviceId, clientVersion: package_json_1.default.version }), + maxAttempts: (config == null ? void 0 : config.maxAttempts) ?? (0, node_config_provider_1.loadConfig)(middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS, config), + region: (config == null ? void 0 : config.region) ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_REGION_CONFIG_OPTIONS, { ...config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig }), + requestHandler: node_http_handler_1.NodeHttpHandler.create((config == null ? void 0 : config.requestHandler) ?? defaultConfigProvider), + retryMode: (config == null ? void 0 : config.retryMode) ?? (0, node_config_provider_1.loadConfig)({ + ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS, + default: async () => (await defaultConfigProvider()).retryMode || util_retry_1.DEFAULT_RETRY_MODE + }, config), + sha256: (config == null ? void 0 : config.sha256) ?? hash_node_1.Hash.bind(null, "sha256"), + streamCollector: (config == null ? void 0 : config.streamCollector) ?? node_http_handler_1.streamCollector, + useDualstackEndpoint: (config == null ? void 0 : config.useDualstackEndpoint) ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, loaderConfig), + useFipsEndpoint: (config == null ? void 0 : config.useFipsEndpoint) ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, loaderConfig), + userAgentAppId: (config == null ? void 0 : config.userAgentAppId) ?? (0, node_config_provider_1.loadConfig)(util_user_agent_node_1.NODE_APP_ID_CONFIG_OPTIONS, loaderConfig) + }; + }; + exports2.getRuntimeConfig = getRuntimeConfig5; + } +}); + +// ../node_modules/.pnpm/@aws-sdk+region-config-resolver@3.808.0/node_modules/@aws-sdk/region-config-resolver/dist-cjs/index.js +var require_dist_cjs43 = __commonJS({ + "../node_modules/.pnpm/@aws-sdk+region-config-resolver@3.808.0/node_modules/@aws-sdk/region-config-resolver/dist-cjs/index.js"(exports2, module2) { + "use strict"; + var __defProp3 = Object.defineProperty; + var __getOwnPropDesc3 = Object.getOwnPropertyDescriptor; + var __getOwnPropNames3 = Object.getOwnPropertyNames; + var __hasOwnProp3 = Object.prototype.hasOwnProperty; + var __name = (target, value) => __defProp3(target, "name", { value, configurable: true }); + var __export2 = (target, all) => { + for (var name in all) + __defProp3(target, name, { get: all[name], enumerable: true }); + }; + var __copyProps3 = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames3(from)) + if (!__hasOwnProp3.call(to, key) && key !== except) + __defProp3(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc3(from, key)) || desc.enumerable }); + } + return to; + }; + var __toCommonJS2 = (mod) => __copyProps3(__defProp3({}, "__esModule", { value: true }), mod); + var index_exports = {}; + __export2(index_exports, { + NODE_REGION_CONFIG_FILE_OPTIONS: () => NODE_REGION_CONFIG_FILE_OPTIONS3, + NODE_REGION_CONFIG_OPTIONS: () => NODE_REGION_CONFIG_OPTIONS3, + REGION_ENV_NAME: () => REGION_ENV_NAME, + REGION_INI_NAME: () => REGION_INI_NAME, + getAwsRegionExtensionConfiguration: () => getAwsRegionExtensionConfiguration3, + resolveAwsRegionExtensionConfiguration: () => resolveAwsRegionExtensionConfiguration3, + resolveRegionConfig: () => resolveRegionConfig3 + }); + module2.exports = __toCommonJS2(index_exports); + var getAwsRegionExtensionConfiguration3 = /* @__PURE__ */ __name((runtimeConfig) => { + return { + setRegion(region) { + runtimeConfig.region = region; + }, + region() { + return runtimeConfig.region; + } + }; + }, "getAwsRegionExtensionConfiguration"); + var resolveAwsRegionExtensionConfiguration3 = /* @__PURE__ */ __name((awsRegionExtensionConfiguration) => { + return { + region: awsRegionExtensionConfiguration.region() + }; + }, "resolveAwsRegionExtensionConfiguration"); + var REGION_ENV_NAME = "AWS_REGION"; + var REGION_INI_NAME = "region"; + var NODE_REGION_CONFIG_OPTIONS3 = { + environmentVariableSelector: /* @__PURE__ */ __name((env3) => env3[REGION_ENV_NAME], "environmentVariableSelector"), + configFileSelector: /* @__PURE__ */ __name((profile) => profile[REGION_INI_NAME], "configFileSelector"), + default: /* @__PURE__ */ __name(() => { + throw new Error("Region is missing"); + }, "default") + }; + var NODE_REGION_CONFIG_FILE_OPTIONS3 = { + preferredFile: "credentials" + }; + var isFipsRegion = /* @__PURE__ */ __name((region) => typeof region === "string" && (region.startsWith("fips-") || region.endsWith("-fips")), "isFipsRegion"); + var getRealRegion = /* @__PURE__ */ __name((region) => isFipsRegion(region) ? ["fips-aws-global", "aws-fips"].includes(region) ? "us-east-1" : region.replace(/fips-(dkr-|prod-)?|-fips/, "") : region, "getRealRegion"); + var resolveRegionConfig3 = /* @__PURE__ */ __name((input) => { + const { region, useFipsEndpoint } = input; + if (!region) { + throw new Error("Region is missing"); + } + return Object.assign(input, { + region: /* @__PURE__ */ __name(async () => { + if (typeof region === "string") { + return getRealRegion(region); + } + const providedRegion = await region(); + return getRealRegion(providedRegion); + }, "region"), + useFipsEndpoint: /* @__PURE__ */ __name(async () => { + const providedRegion = typeof region === "string" ? region : await region(); + if (isFipsRegion(providedRegion)) { + return true; + } + return typeof useFipsEndpoint !== "function" ? Promise.resolve(!!useFipsEndpoint) : useFipsEndpoint(); + }, "useFipsEndpoint") + }); + }, "resolveRegionConfig"); + } +}); + +// ../node_modules/.pnpm/@aws-sdk+client-sso@3.817.0/node_modules/@aws-sdk/client-sso/dist-cjs/index.js +var require_dist_cjs44 = __commonJS({ + "../node_modules/.pnpm/@aws-sdk+client-sso@3.817.0/node_modules/@aws-sdk/client-sso/dist-cjs/index.js"(exports2, module2) { + "use strict"; + var __defProp3 = Object.defineProperty; + var __getOwnPropDesc3 = Object.getOwnPropertyDescriptor; + var __getOwnPropNames3 = Object.getOwnPropertyNames; + var __hasOwnProp3 = Object.prototype.hasOwnProperty; + var __name = (target, value) => __defProp3(target, "name", { value, configurable: true }); + var __export2 = (target, all) => { + for (var name in all) + __defProp3(target, name, { get: all[name], enumerable: true }); + }; + var __copyProps3 = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames3(from)) + if (!__hasOwnProp3.call(to, key) && key !== except) + __defProp3(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc3(from, key)) || desc.enumerable }); + } + return to; + }; + var __toCommonJS2 = (mod) => __copyProps3(__defProp3({}, "__esModule", { value: true }), mod); + var index_exports = {}; + __export2(index_exports, { + GetRoleCredentialsCommand: () => GetRoleCredentialsCommand, + GetRoleCredentialsRequestFilterSensitiveLog: () => GetRoleCredentialsRequestFilterSensitiveLog, + GetRoleCredentialsResponseFilterSensitiveLog: () => GetRoleCredentialsResponseFilterSensitiveLog, + InvalidRequestException: () => InvalidRequestException2, + ListAccountRolesCommand: () => ListAccountRolesCommand, + ListAccountRolesRequestFilterSensitiveLog: () => ListAccountRolesRequestFilterSensitiveLog, + ListAccountsCommand: () => ListAccountsCommand, + ListAccountsRequestFilterSensitiveLog: () => ListAccountsRequestFilterSensitiveLog, + LogoutCommand: () => LogoutCommand, + LogoutRequestFilterSensitiveLog: () => LogoutRequestFilterSensitiveLog, + ResourceNotFoundException: () => ResourceNotFoundException, + RoleCredentialsFilterSensitiveLog: () => RoleCredentialsFilterSensitiveLog, + SSO: () => SSO, + SSOClient: () => SSOClient, + SSOServiceException: () => SSOServiceException, + TooManyRequestsException: () => TooManyRequestsException, + UnauthorizedException: () => UnauthorizedException, + __Client: () => import_smithy_client25.Client, + paginateListAccountRoles: () => paginateListAccountRoles, + paginateListAccounts: () => paginateListAccounts + }); + module2.exports = __toCommonJS2(index_exports); + var import_middleware_host_header3 = require_dist_cjs3(); + var import_middleware_logger3 = require_dist_cjs4(); + var import_middleware_recursion_detection3 = require_dist_cjs5(); + var import_middleware_user_agent3 = require_dist_cjs24(); + var import_config_resolver5 = require_dist_cjs26(); + var import_core17 = (init_dist_es(), __toCommonJS(dist_es_exports)); + var import_middleware_content_length3 = require_dist_cjs27(); + var import_middleware_endpoint6 = require_dist_cjs32(); + var import_middleware_retry5 = require_dist_cjs35(); + var import_httpAuthSchemeProvider5 = require_httpAuthSchemeProvider2(); + var resolveClientEndpointParameters3 = /* @__PURE__ */ __name((options) => { + return Object.assign(options, { + useDualstackEndpoint: options.useDualstackEndpoint ?? false, + useFipsEndpoint: options.useFipsEndpoint ?? false, + defaultSigningName: "awsssoportal" + }); + }, "resolveClientEndpointParameters"); + var commonParams3 = { + UseFIPS: { type: "builtInParams", name: "useFipsEndpoint" }, + Endpoint: { type: "builtInParams", name: "endpoint" }, + Region: { type: "builtInParams", name: "region" }, + UseDualStack: { type: "builtInParams", name: "useDualstackEndpoint" } + }; + var import_runtimeConfig5 = require_runtimeConfig(); + var import_region_config_resolver3 = require_dist_cjs43(); + var import_protocol_http15 = require_dist_cjs2(); + var import_smithy_client25 = require_dist_cjs23(); + var getHttpAuthExtensionConfiguration3 = /* @__PURE__ */ __name((runtimeConfig) => { + const _httpAuthSchemes = runtimeConfig.httpAuthSchemes; + let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider; + let _credentials = runtimeConfig.credentials; + return { + setHttpAuthScheme(httpAuthScheme) { + const index6 = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId); + if (index6 === -1) { + _httpAuthSchemes.push(httpAuthScheme); + } else { + _httpAuthSchemes.splice(index6, 1, httpAuthScheme); + } + }, + httpAuthSchemes() { + return _httpAuthSchemes; + }, + setHttpAuthSchemeProvider(httpAuthSchemeProvider) { + _httpAuthSchemeProvider = httpAuthSchemeProvider; + }, + httpAuthSchemeProvider() { + return _httpAuthSchemeProvider; + }, + setCredentials(credentials2) { + _credentials = credentials2; + }, + credentials() { + return _credentials; + } + }; + }, "getHttpAuthExtensionConfiguration"); + var resolveHttpAuthRuntimeConfig3 = /* @__PURE__ */ __name((config) => { + return { + httpAuthSchemes: config.httpAuthSchemes(), + httpAuthSchemeProvider: config.httpAuthSchemeProvider(), + credentials: config.credentials() + }; + }, "resolveHttpAuthRuntimeConfig"); + var resolveRuntimeExtensions3 = /* @__PURE__ */ __name((runtimeConfig, extensions) => { + const extensionConfiguration = Object.assign( + (0, import_region_config_resolver3.getAwsRegionExtensionConfiguration)(runtimeConfig), + (0, import_smithy_client25.getDefaultExtensionConfiguration)(runtimeConfig), + (0, import_protocol_http15.getHttpHandlerExtensionConfiguration)(runtimeConfig), + getHttpAuthExtensionConfiguration3(runtimeConfig) + ); + extensions.forEach((extension) => extension.configure(extensionConfiguration)); + return Object.assign( + runtimeConfig, + (0, import_region_config_resolver3.resolveAwsRegionExtensionConfiguration)(extensionConfiguration), + (0, import_smithy_client25.resolveDefaultRuntimeConfig)(extensionConfiguration), + (0, import_protocol_http15.resolveHttpHandlerRuntimeConfig)(extensionConfiguration), + resolveHttpAuthRuntimeConfig3(extensionConfiguration) + ); + }, "resolveRuntimeExtensions"); + var _a2; + var SSOClient = (_a2 = class extends import_smithy_client25.Client { + /** + * The resolved configuration of SSOClient class. This is resolved and normalized from the {@link SSOClientConfig | constructor configuration interface}. + */ + config; + constructor(...[configuration]) { + const _config_0 = (0, import_runtimeConfig5.getRuntimeConfig)(configuration || {}); + super(_config_0); + this.initConfig = _config_0; + const _config_1 = resolveClientEndpointParameters3(_config_0); + const _config_2 = (0, import_middleware_user_agent3.resolveUserAgentConfig)(_config_1); + const _config_3 = (0, import_middleware_retry5.resolveRetryConfig)(_config_2); + const _config_4 = (0, import_config_resolver5.resolveRegionConfig)(_config_3); + const _config_5 = (0, import_middleware_host_header3.resolveHostHeaderConfig)(_config_4); + const _config_6 = (0, import_middleware_endpoint6.resolveEndpointConfig)(_config_5); + const _config_7 = (0, import_httpAuthSchemeProvider5.resolveHttpAuthSchemeConfig)(_config_6); + const _config_8 = resolveRuntimeExtensions3(_config_7, (configuration == null ? void 0 : configuration.extensions) || []); + this.config = _config_8; + this.middlewareStack.use((0, import_middleware_user_agent3.getUserAgentPlugin)(this.config)); + this.middlewareStack.use((0, import_middleware_retry5.getRetryPlugin)(this.config)); + this.middlewareStack.use((0, import_middleware_content_length3.getContentLengthPlugin)(this.config)); + this.middlewareStack.use((0, import_middleware_host_header3.getHostHeaderPlugin)(this.config)); + this.middlewareStack.use((0, import_middleware_logger3.getLoggerPlugin)(this.config)); + this.middlewareStack.use((0, import_middleware_recursion_detection3.getRecursionDetectionPlugin)(this.config)); + this.middlewareStack.use( + (0, import_core17.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config, { + httpAuthSchemeParametersProvider: import_httpAuthSchemeProvider5.defaultSSOHttpAuthSchemeParametersProvider, + identityProviderConfigProvider: /* @__PURE__ */ __name(async (config) => new import_core17.DefaultIdentityProviderConfig({ + "aws.auth#sigv4": config.credentials + }), "identityProviderConfigProvider") + }) + ); + this.middlewareStack.use((0, import_core17.getHttpSigningPlugin)(this.config)); + } + /** + * Destroy underlying resources, like sockets. It's usually not necessary to do this. + * However in Node.js, it's best to explicitly shut down the client's agent when it is no longer needed. + * Otherwise, sockets might stay open for quite a long time before the server terminates them. + */ + destroy() { + super.destroy(); + } + }, __name(_a2, "SSOClient"), _a2); + var import_middleware_serde5 = require_dist_cjs7(); + var _a3; + var SSOServiceException = (_a3 = class extends import_smithy_client25.ServiceException { + /** + * @internal + */ + constructor(options) { + super(options); + Object.setPrototypeOf(this, _a3.prototype); + } + }, __name(_a3, "SSOServiceException"), _a3); + var _a4; + var InvalidRequestException2 = (_a4 = class extends SSOServiceException { + name = "InvalidRequestException"; + $fault = "client"; + /** + * @internal + */ + constructor(opts) { + super({ + name: "InvalidRequestException", + $fault: "client", + ...opts + }); + Object.setPrototypeOf(this, _a4.prototype); + } + }, __name(_a4, "InvalidRequestException"), _a4); + var _a5; + var ResourceNotFoundException = (_a5 = class extends SSOServiceException { + name = "ResourceNotFoundException"; + $fault = "client"; + /** + * @internal + */ + constructor(opts) { + super({ + name: "ResourceNotFoundException", + $fault: "client", + ...opts + }); + Object.setPrototypeOf(this, _a5.prototype); + } + }, __name(_a5, "ResourceNotFoundException"), _a5); + var _a6; + var TooManyRequestsException = (_a6 = class extends SSOServiceException { + name = "TooManyRequestsException"; + $fault = "client"; + /** + * @internal + */ + constructor(opts) { + super({ + name: "TooManyRequestsException", + $fault: "client", + ...opts + }); + Object.setPrototypeOf(this, _a6.prototype); + } + }, __name(_a6, "TooManyRequestsException"), _a6); + var _a7; + var UnauthorizedException = (_a7 = class extends SSOServiceException { + name = "UnauthorizedException"; + $fault = "client"; + /** + * @internal + */ + constructor(opts) { + super({ + name: "UnauthorizedException", + $fault: "client", + ...opts + }); + Object.setPrototypeOf(this, _a7.prototype); + } + }, __name(_a7, "UnauthorizedException"), _a7); + var GetRoleCredentialsRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({ + ...obj, + ...obj.accessToken && { accessToken: import_smithy_client25.SENSITIVE_STRING } + }), "GetRoleCredentialsRequestFilterSensitiveLog"); + var RoleCredentialsFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({ + ...obj, + ...obj.secretAccessKey && { secretAccessKey: import_smithy_client25.SENSITIVE_STRING }, + ...obj.sessionToken && { sessionToken: import_smithy_client25.SENSITIVE_STRING } + }), "RoleCredentialsFilterSensitiveLog"); + var GetRoleCredentialsResponseFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({ + ...obj, + ...obj.roleCredentials && { roleCredentials: RoleCredentialsFilterSensitiveLog(obj.roleCredentials) } + }), "GetRoleCredentialsResponseFilterSensitiveLog"); + var ListAccountRolesRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({ + ...obj, + ...obj.accessToken && { accessToken: import_smithy_client25.SENSITIVE_STRING } + }), "ListAccountRolesRequestFilterSensitiveLog"); + var ListAccountsRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({ + ...obj, + ...obj.accessToken && { accessToken: import_smithy_client25.SENSITIVE_STRING } + }), "ListAccountsRequestFilterSensitiveLog"); + var LogoutRequestFilterSensitiveLog = /* @__PURE__ */ __name((obj) => ({ + ...obj, + ...obj.accessToken && { accessToken: import_smithy_client25.SENSITIVE_STRING } + }), "LogoutRequestFilterSensitiveLog"); + var import_core22 = (init_dist_es2(), __toCommonJS(dist_es_exports2)); + var se_GetRoleCredentialsCommand = /* @__PURE__ */ __name(async (input, context) => { + const b3 = (0, import_core17.requestBuilder)(input, context); + const headers = (0, import_smithy_client25.map)({}, import_smithy_client25.isSerializableHeaderValue, { + [_xasbt]: input[_aT] + }); + b3.bp("/federation/credentials"); + const query = (0, import_smithy_client25.map)({ + [_rn]: [, (0, import_smithy_client25.expectNonNull)(input[_rN], `roleName`)], + [_ai]: [, (0, import_smithy_client25.expectNonNull)(input[_aI], `accountId`)] + }); + let body; + b3.m("GET").h(headers).q(query).b(body); + return b3.build(); + }, "se_GetRoleCredentialsCommand"); + var se_ListAccountRolesCommand = /* @__PURE__ */ __name(async (input, context) => { + const b3 = (0, import_core17.requestBuilder)(input, context); + const headers = (0, import_smithy_client25.map)({}, import_smithy_client25.isSerializableHeaderValue, { + [_xasbt]: input[_aT] + }); + b3.bp("/assignment/roles"); + const query = (0, import_smithy_client25.map)({ + [_nt]: [, input[_nT]], + [_mr]: [() => input.maxResults !== void 0, () => input[_mR].toString()], + [_ai]: [, (0, import_smithy_client25.expectNonNull)(input[_aI], `accountId`)] + }); + let body; + b3.m("GET").h(headers).q(query).b(body); + return b3.build(); + }, "se_ListAccountRolesCommand"); + var se_ListAccountsCommand = /* @__PURE__ */ __name(async (input, context) => { + const b3 = (0, import_core17.requestBuilder)(input, context); + const headers = (0, import_smithy_client25.map)({}, import_smithy_client25.isSerializableHeaderValue, { + [_xasbt]: input[_aT] + }); + b3.bp("/assignment/accounts"); + const query = (0, import_smithy_client25.map)({ + [_nt]: [, input[_nT]], + [_mr]: [() => input.maxResults !== void 0, () => input[_mR].toString()] + }); + let body; + b3.m("GET").h(headers).q(query).b(body); + return b3.build(); + }, "se_ListAccountsCommand"); + var se_LogoutCommand = /* @__PURE__ */ __name(async (input, context) => { + const b3 = (0, import_core17.requestBuilder)(input, context); + const headers = (0, import_smithy_client25.map)({}, import_smithy_client25.isSerializableHeaderValue, { + [_xasbt]: input[_aT] + }); + b3.bp("/logout"); + let body; + b3.m("POST").h(headers).b(body); + return b3.build(); + }, "se_LogoutCommand"); + var de_GetRoleCredentialsCommand = /* @__PURE__ */ __name(async (output, context) => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return de_CommandError3(output, context); + } + const contents = (0, import_smithy_client25.map)({ + $metadata: deserializeMetadata3(output) + }); + const data = (0, import_smithy_client25.expectNonNull)((0, import_smithy_client25.expectObject)(await (0, import_core22.parseJsonBody)(output.body, context)), "body"); + const doc = (0, import_smithy_client25.take)(data, { + roleCredentials: import_smithy_client25._json + }); + Object.assign(contents, doc); + return contents; + }, "de_GetRoleCredentialsCommand"); + var de_ListAccountRolesCommand = /* @__PURE__ */ __name(async (output, context) => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return de_CommandError3(output, context); + } + const contents = (0, import_smithy_client25.map)({ + $metadata: deserializeMetadata3(output) + }); + const data = (0, import_smithy_client25.expectNonNull)((0, import_smithy_client25.expectObject)(await (0, import_core22.parseJsonBody)(output.body, context)), "body"); + const doc = (0, import_smithy_client25.take)(data, { + nextToken: import_smithy_client25.expectString, + roleList: import_smithy_client25._json + }); + Object.assign(contents, doc); + return contents; + }, "de_ListAccountRolesCommand"); + var de_ListAccountsCommand = /* @__PURE__ */ __name(async (output, context) => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return de_CommandError3(output, context); + } + const contents = (0, import_smithy_client25.map)({ + $metadata: deserializeMetadata3(output) + }); + const data = (0, import_smithy_client25.expectNonNull)((0, import_smithy_client25.expectObject)(await (0, import_core22.parseJsonBody)(output.body, context)), "body"); + const doc = (0, import_smithy_client25.take)(data, { + accountList: import_smithy_client25._json, + nextToken: import_smithy_client25.expectString + }); + Object.assign(contents, doc); + return contents; + }, "de_ListAccountsCommand"); + var de_LogoutCommand = /* @__PURE__ */ __name(async (output, context) => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return de_CommandError3(output, context); + } + const contents = (0, import_smithy_client25.map)({ + $metadata: deserializeMetadata3(output) + }); + await (0, import_smithy_client25.collectBody)(output.body, context); + return contents; + }, "de_LogoutCommand"); + var de_CommandError3 = /* @__PURE__ */ __name(async (output, context) => { + const parsedOutput = { + ...output, + body: await (0, import_core22.parseJsonErrorBody)(output.body, context) + }; + const errorCode = (0, import_core22.loadRestJsonErrorCode)(output, parsedOutput.body); + switch (errorCode) { + case "InvalidRequestException": + case "com.amazonaws.sso#InvalidRequestException": + throw await de_InvalidRequestExceptionRes2(parsedOutput, context); + case "ResourceNotFoundException": + case "com.amazonaws.sso#ResourceNotFoundException": + throw await de_ResourceNotFoundExceptionRes(parsedOutput, context); + case "TooManyRequestsException": + case "com.amazonaws.sso#TooManyRequestsException": + throw await de_TooManyRequestsExceptionRes(parsedOutput, context); + case "UnauthorizedException": + case "com.amazonaws.sso#UnauthorizedException": + throw await de_UnauthorizedExceptionRes(parsedOutput, context); + default: + const parsedBody = parsedOutput.body; + return throwDefaultError3({ + output, + parsedBody, + errorCode + }); + } + }, "de_CommandError"); + var throwDefaultError3 = (0, import_smithy_client25.withBaseException)(SSOServiceException); + var de_InvalidRequestExceptionRes2 = /* @__PURE__ */ __name(async (parsedOutput, context) => { + const contents = (0, import_smithy_client25.map)({}); + const data = parsedOutput.body; + const doc = (0, import_smithy_client25.take)(data, { + message: import_smithy_client25.expectString + }); + Object.assign(contents, doc); + const exception = new InvalidRequestException2({ + $metadata: deserializeMetadata3(parsedOutput), + ...contents + }); + return (0, import_smithy_client25.decorateServiceException)(exception, parsedOutput.body); + }, "de_InvalidRequestExceptionRes"); + var de_ResourceNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => { + const contents = (0, import_smithy_client25.map)({}); + const data = parsedOutput.body; + const doc = (0, import_smithy_client25.take)(data, { + message: import_smithy_client25.expectString + }); + Object.assign(contents, doc); + const exception = new ResourceNotFoundException({ + $metadata: deserializeMetadata3(parsedOutput), + ...contents + }); + return (0, import_smithy_client25.decorateServiceException)(exception, parsedOutput.body); + }, "de_ResourceNotFoundExceptionRes"); + var de_TooManyRequestsExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => { + const contents = (0, import_smithy_client25.map)({}); + const data = parsedOutput.body; + const doc = (0, import_smithy_client25.take)(data, { + message: import_smithy_client25.expectString + }); + Object.assign(contents, doc); + const exception = new TooManyRequestsException({ + $metadata: deserializeMetadata3(parsedOutput), + ...contents + }); + return (0, import_smithy_client25.decorateServiceException)(exception, parsedOutput.body); + }, "de_TooManyRequestsExceptionRes"); + var de_UnauthorizedExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => { + const contents = (0, import_smithy_client25.map)({}); + const data = parsedOutput.body; + const doc = (0, import_smithy_client25.take)(data, { + message: import_smithy_client25.expectString + }); + Object.assign(contents, doc); + const exception = new UnauthorizedException({ + $metadata: deserializeMetadata3(parsedOutput), + ...contents + }); + return (0, import_smithy_client25.decorateServiceException)(exception, parsedOutput.body); + }, "de_UnauthorizedExceptionRes"); + var deserializeMetadata3 = /* @__PURE__ */ __name((output) => ({ + httpStatusCode: output.statusCode, + requestId: output.headers["x-amzn-requestid"] ?? output.headers["x-amzn-request-id"] ?? output.headers["x-amz-request-id"], + extendedRequestId: output.headers["x-amz-id-2"], + cfId: output.headers["x-amz-cf-id"] + }), "deserializeMetadata"); + var _aI = "accountId"; + var _aT = "accessToken"; + var _ai = "account_id"; + var _mR = "maxResults"; + var _mr = "max_result"; + var _nT = "nextToken"; + var _nt = "next_token"; + var _rN = "roleName"; + var _rn = "role_name"; + var _xasbt = "x-amz-sso_bearer_token"; + var _a8; + var GetRoleCredentialsCommand = (_a8 = class extends import_smithy_client25.Command.classBuilder().ep(commonParams3).m(function(Command, cs, config, o3) { + return [ + (0, import_middleware_serde5.getSerdePlugin)(config, this.serialize, this.deserialize), + (0, import_middleware_endpoint6.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) + ]; + }).s("SWBPortalService", "GetRoleCredentials", {}).n("SSOClient", "GetRoleCredentialsCommand").f(GetRoleCredentialsRequestFilterSensitiveLog, GetRoleCredentialsResponseFilterSensitiveLog).ser(se_GetRoleCredentialsCommand).de(de_GetRoleCredentialsCommand).build() { + }, __name(_a8, "GetRoleCredentialsCommand"), _a8); + var _a9; + var ListAccountRolesCommand = (_a9 = class extends import_smithy_client25.Command.classBuilder().ep(commonParams3).m(function(Command, cs, config, o3) { + return [ + (0, import_middleware_serde5.getSerdePlugin)(config, this.serialize, this.deserialize), + (0, import_middleware_endpoint6.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) + ]; + }).s("SWBPortalService", "ListAccountRoles", {}).n("SSOClient", "ListAccountRolesCommand").f(ListAccountRolesRequestFilterSensitiveLog, void 0).ser(se_ListAccountRolesCommand).de(de_ListAccountRolesCommand).build() { + }, __name(_a9, "ListAccountRolesCommand"), _a9); + var _a10; + var ListAccountsCommand = (_a10 = class extends import_smithy_client25.Command.classBuilder().ep(commonParams3).m(function(Command, cs, config, o3) { + return [ + (0, import_middleware_serde5.getSerdePlugin)(config, this.serialize, this.deserialize), + (0, import_middleware_endpoint6.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) + ]; + }).s("SWBPortalService", "ListAccounts", {}).n("SSOClient", "ListAccountsCommand").f(ListAccountsRequestFilterSensitiveLog, void 0).ser(se_ListAccountsCommand).de(de_ListAccountsCommand).build() { + }, __name(_a10, "ListAccountsCommand"), _a10); + var _a11; + var LogoutCommand = (_a11 = class extends import_smithy_client25.Command.classBuilder().ep(commonParams3).m(function(Command, cs, config, o3) { + return [ + (0, import_middleware_serde5.getSerdePlugin)(config, this.serialize, this.deserialize), + (0, import_middleware_endpoint6.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) + ]; + }).s("SWBPortalService", "Logout", {}).n("SSOClient", "LogoutCommand").f(LogoutRequestFilterSensitiveLog, void 0).ser(se_LogoutCommand).de(de_LogoutCommand).build() { + }, __name(_a11, "LogoutCommand"), _a11); + var commands3 = { + GetRoleCredentialsCommand, + ListAccountRolesCommand, + ListAccountsCommand, + LogoutCommand + }; + var _a12; + var SSO = (_a12 = class extends SSOClient { + }, __name(_a12, "SSO"), _a12); + (0, import_smithy_client25.createAggregatedClient)(commands3, SSO); + var paginateListAccountRoles = (0, import_core17.createPaginator)(SSOClient, ListAccountRolesCommand, "nextToken", "nextToken", "maxResults"); + var paginateListAccounts = (0, import_core17.createPaginator)(SSOClient, ListAccountsCommand, "nextToken", "nextToken", "maxResults"); + } +}); + +// ../node_modules/.pnpm/@aws-sdk+nested-clients@3.817.0/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/auth/httpAuthSchemeProvider.js +function createAwsAuthSigv4HttpAuthOption(authParameters) { + return { + schemeId: "aws.auth#sigv4", + signingProperties: { + name: "sso-oauth", + region: authParameters.region + }, + propertiesExtractor: (config, context) => ({ + signingProperties: { + config, + context + } + }) + }; +} +function createSmithyApiNoAuthHttpAuthOption(authParameters) { + return { + schemeId: "smithy.api#noAuth" + }; +} +var import_util_middleware5, defaultSSOOIDCHttpAuthSchemeParametersProvider, defaultSSOOIDCHttpAuthSchemeProvider, resolveHttpAuthSchemeConfig; +var init_httpAuthSchemeProvider = __esm({ + "../node_modules/.pnpm/@aws-sdk+nested-clients@3.817.0/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/auth/httpAuthSchemeProvider.js"() { + init_dist_es2(); + import_util_middleware5 = __toESM(require_dist_cjs6()); + defaultSSOOIDCHttpAuthSchemeParametersProvider = async (config, context, input) => { + return { + operation: (0, import_util_middleware5.getSmithyContext)(context).operation, + region: await (0, import_util_middleware5.normalizeProvider)(config.region)() || (() => { + throw new Error("expected `region` to be configured for `aws.auth#sigv4`"); + })() + }; + }; + defaultSSOOIDCHttpAuthSchemeProvider = (authParameters) => { + const options = []; + switch (authParameters.operation) { + case "CreateToken": { + options.push(createSmithyApiNoAuthHttpAuthOption(authParameters)); + break; + } + default: { + options.push(createAwsAuthSigv4HttpAuthOption(authParameters)); + } + } + return options; + }; + resolveHttpAuthSchemeConfig = (config) => { + const config_0 = resolveAwsSdkSigV4Config(config); + return Object.assign(config_0, { + authSchemePreference: (0, import_util_middleware5.normalizeProvider)(config.authSchemePreference ?? []) + }); + }; + } +}); + +// ../node_modules/.pnpm/@aws-sdk+nested-clients@3.817.0/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/endpoint/EndpointParameters.js +var resolveClientEndpointParameters, commonParams; +var init_EndpointParameters = __esm({ + "../node_modules/.pnpm/@aws-sdk+nested-clients@3.817.0/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/endpoint/EndpointParameters.js"() { + resolveClientEndpointParameters = (options) => { + return Object.assign(options, { + useDualstackEndpoint: options.useDualstackEndpoint ?? false, + useFipsEndpoint: options.useFipsEndpoint ?? false, + defaultSigningName: "sso-oauth" + }); + }; + commonParams = { + UseFIPS: { type: "builtInParams", name: "useFipsEndpoint" }, + Endpoint: { type: "builtInParams", name: "endpoint" }, + Region: { type: "builtInParams", name: "region" }, + UseDualStack: { type: "builtInParams", name: "useDualstackEndpoint" } + }; + } +}); + +// ../node_modules/.pnpm/@aws-sdk+nested-clients@3.817.0/node_modules/@aws-sdk/nested-clients/package.json +var package_default; +var init_package = __esm({ + "../node_modules/.pnpm/@aws-sdk+nested-clients@3.817.0/node_modules/@aws-sdk/nested-clients/package.json"() { + package_default = { + name: "@aws-sdk/nested-clients", + version: "3.817.0", + description: "Nested clients for AWS SDK packages.", + main: "./dist-cjs/index.js", + module: "./dist-es/index.js", + types: "./dist-types/index.d.ts", + scripts: { + build: "yarn lint && concurrently 'yarn:build:cjs' 'yarn:build:es' 'yarn:build:types'", + "build:cjs": "node ../../scripts/compilation/inline nested-clients", + "build:es": "tsc -p tsconfig.es.json", + "build:include:deps": "lerna run --scope $npm_package_name --include-dependencies build", + "build:types": "tsc -p tsconfig.types.json", + "build:types:downlevel": "downlevel-dts dist-types dist-types/ts3.4", + clean: "rimraf ./dist-* && rimraf *.tsbuildinfo", + lint: "node ../../scripts/validation/submodules-linter.js --pkg nested-clients", + test: "yarn g:vitest run", + "test:watch": "yarn g:vitest watch" + }, + engines: { + node: ">=18.0.0" + }, + author: { + name: "AWS SDK for JavaScript Team", + url: "https://aws.amazon.com/javascript/" + }, + license: "Apache-2.0", + dependencies: { + "@aws-crypto/sha256-browser": "5.2.0", + "@aws-crypto/sha256-js": "5.2.0", + "@aws-sdk/core": "3.816.0", + "@aws-sdk/middleware-host-header": "3.804.0", + "@aws-sdk/middleware-logger": "3.804.0", + "@aws-sdk/middleware-recursion-detection": "3.804.0", + "@aws-sdk/middleware-user-agent": "3.816.0", + "@aws-sdk/region-config-resolver": "3.808.0", + "@aws-sdk/types": "3.804.0", + "@aws-sdk/util-endpoints": "3.808.0", + "@aws-sdk/util-user-agent-browser": "3.804.0", + "@aws-sdk/util-user-agent-node": "3.816.0", + "@smithy/config-resolver": "^4.1.2", + "@smithy/core": "^3.3.3", + "@smithy/fetch-http-handler": "^5.0.2", + "@smithy/hash-node": "^4.0.2", + "@smithy/invalid-dependency": "^4.0.2", + "@smithy/middleware-content-length": "^4.0.2", + "@smithy/middleware-endpoint": "^4.1.6", + "@smithy/middleware-retry": "^4.1.7", + "@smithy/middleware-serde": "^4.0.5", + "@smithy/middleware-stack": "^4.0.2", + "@smithy/node-config-provider": "^4.1.1", + "@smithy/node-http-handler": "^4.0.4", + "@smithy/protocol-http": "^5.1.0", + "@smithy/smithy-client": "^4.2.6", + "@smithy/types": "^4.2.0", + "@smithy/url-parser": "^4.0.2", + "@smithy/util-base64": "^4.0.0", + "@smithy/util-body-length-browser": "^4.0.0", + "@smithy/util-body-length-node": "^4.0.0", + "@smithy/util-defaults-mode-browser": "^4.0.14", + "@smithy/util-defaults-mode-node": "^4.0.14", + "@smithy/util-endpoints": "^3.0.4", + "@smithy/util-middleware": "^4.0.2", + "@smithy/util-retry": "^4.0.3", + "@smithy/util-utf8": "^4.0.0", + tslib: "^2.6.2" + }, + devDependencies: { + concurrently: "7.0.0", + "downlevel-dts": "0.10.1", + rimraf: "3.0.2", + typescript: "~5.8.3" + }, + typesVersions: { + "<4.0": { + "dist-types/*": [ + "dist-types/ts3.4/*" + ] + } + }, + files: [ + "./sso-oidc.d.ts", + "./sso-oidc.js", + "./sts.d.ts", + "./sts.js", + "dist-*/**" + ], + browser: { + "./dist-es/submodules/sso-oidc/runtimeConfig": "./dist-es/submodules/sso-oidc/runtimeConfig.browser", + "./dist-es/submodules/sts/runtimeConfig": "./dist-es/submodules/sts/runtimeConfig.browser" + }, + "react-native": {}, + homepage: "https://github.com/aws/aws-sdk-js-v3/tree/main/packages/nested-clients", + repository: { + type: "git", + url: "https://github.com/aws/aws-sdk-js-v3.git", + directory: "packages/nested-clients" + }, + exports: { + "./sso-oidc": { + types: "./dist-types/submodules/sso-oidc/index.d.ts", + module: "./dist-es/submodules/sso-oidc/index.js", + node: "./dist-cjs/submodules/sso-oidc/index.js", + import: "./dist-es/submodules/sso-oidc/index.js", + require: "./dist-cjs/submodules/sso-oidc/index.js" + }, + "./sts": { + types: "./dist-types/submodules/sts/index.d.ts", + module: "./dist-es/submodules/sts/index.js", + node: "./dist-cjs/submodules/sts/index.js", + import: "./dist-es/submodules/sts/index.js", + require: "./dist-cjs/submodules/sts/index.js" + } + } + }; + } +}); + +// ../node_modules/.pnpm/@aws-sdk+nested-clients@3.817.0/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/endpoint/ruleset.js +var u, v, w, x2, a, b, c, d, e2, f3, g, h2, i2, j, k, l, m2, n, o, p, q, r2, s2, t2, _data, ruleSet; +var init_ruleset = __esm({ + "../node_modules/.pnpm/@aws-sdk+nested-clients@3.817.0/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/endpoint/ruleset.js"() { + u = "required"; + v = "fn"; + w = "argv"; + x2 = "ref"; + a = true; + b = "isSet"; + c = "booleanEquals"; + d = "error"; + e2 = "endpoint"; + f3 = "tree"; + g = "PartitionResult"; + h2 = "getAttr"; + i2 = { [u]: false, "type": "String" }; + j = { [u]: true, "default": false, "type": "Boolean" }; + k = { [x2]: "Endpoint" }; + l = { [v]: c, [w]: [{ [x2]: "UseFIPS" }, true] }; + m2 = { [v]: c, [w]: [{ [x2]: "UseDualStack" }, true] }; + n = {}; + o = { [v]: h2, [w]: [{ [x2]: g }, "supportsFIPS"] }; + p = { [x2]: g }; + q = { [v]: c, [w]: [true, { [v]: h2, [w]: [p, "supportsDualStack"] }] }; + r2 = [l]; + s2 = [m2]; + t2 = [{ [x2]: "Region" }]; + _data = { version: "1.0", parameters: { Region: i2, UseDualStack: j, UseFIPS: j, Endpoint: i2 }, rules: [{ conditions: [{ [v]: b, [w]: [k] }], rules: [{ conditions: r2, error: "Invalid Configuration: FIPS and custom endpoint are not supported", type: d }, { conditions: s2, error: "Invalid Configuration: Dualstack and custom endpoint are not supported", type: d }, { endpoint: { url: k, properties: n, headers: n }, type: e2 }], type: f3 }, { conditions: [{ [v]: b, [w]: t2 }], rules: [{ conditions: [{ [v]: "aws.partition", [w]: t2, assign: g }], rules: [{ conditions: [l, m2], rules: [{ conditions: [{ [v]: c, [w]: [a, o] }, q], rules: [{ endpoint: { url: "https://oidc-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", properties: n, headers: n }, type: e2 }], type: f3 }, { error: "FIPS and DualStack are enabled, but this partition does not support one or both", type: d }], type: f3 }, { conditions: r2, rules: [{ conditions: [{ [v]: c, [w]: [o, a] }], rules: [{ conditions: [{ [v]: "stringEquals", [w]: [{ [v]: h2, [w]: [p, "name"] }, "aws-us-gov"] }], endpoint: { url: "https://oidc.{Region}.amazonaws.com", properties: n, headers: n }, type: e2 }, { endpoint: { url: "https://oidc-fips.{Region}.{PartitionResult#dnsSuffix}", properties: n, headers: n }, type: e2 }], type: f3 }, { error: "FIPS is enabled but this partition does not support FIPS", type: d }], type: f3 }, { conditions: s2, rules: [{ conditions: [q], rules: [{ endpoint: { url: "https://oidc.{Region}.{PartitionResult#dualStackDnsSuffix}", properties: n, headers: n }, type: e2 }], type: f3 }, { error: "DualStack is enabled but this partition does not support DualStack", type: d }], type: f3 }, { endpoint: { url: "https://oidc.{Region}.{PartitionResult#dnsSuffix}", properties: n, headers: n }, type: e2 }], type: f3 }], type: f3 }, { error: "Invalid Configuration: Missing Region", type: d }] }; + ruleSet = _data; + } +}); + +// ../node_modules/.pnpm/@aws-sdk+nested-clients@3.817.0/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/endpoint/endpointResolver.js +var import_util_endpoints, import_util_endpoints2, cache, defaultEndpointResolver; +var init_endpointResolver = __esm({ + "../node_modules/.pnpm/@aws-sdk+nested-clients@3.817.0/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/endpoint/endpointResolver.js"() { + import_util_endpoints = __toESM(require_dist_cjs19()); + import_util_endpoints2 = __toESM(require_dist_cjs18()); + init_ruleset(); + cache = new import_util_endpoints2.EndpointCache({ + size: 50, + params: ["Endpoint", "Region", "UseDualStack", "UseFIPS"] + }); + defaultEndpointResolver = (endpointParams, context = {}) => { + return cache.get(endpointParams, () => (0, import_util_endpoints2.resolveEndpoint)(ruleSet, { + endpointParams, + logger: context.logger + })); + }; + import_util_endpoints2.customEndpointFunctions.aws = import_util_endpoints.awsEndpointFunctions; + } +}); + +// ../node_modules/.pnpm/@aws-sdk+nested-clients@3.817.0/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/runtimeConfig.shared.js +var import_smithy_client4, import_url_parser, import_util_base643, import_util_utf83, getRuntimeConfig; +var init_runtimeConfig_shared = __esm({ + "../node_modules/.pnpm/@aws-sdk+nested-clients@3.817.0/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/runtimeConfig.shared.js"() { + init_dist_es2(); + init_dist_es(); + import_smithy_client4 = __toESM(require_dist_cjs23()); + import_url_parser = __toESM(require_dist_cjs31()); + import_util_base643 = __toESM(require_dist_cjs11()); + import_util_utf83 = __toESM(require_dist_cjs10()); + init_httpAuthSchemeProvider(); + init_endpointResolver(); + getRuntimeConfig = (config) => { + return { + apiVersion: "2019-06-10", + base64Decoder: (config == null ? void 0 : config.base64Decoder) ?? import_util_base643.fromBase64, + base64Encoder: (config == null ? void 0 : config.base64Encoder) ?? import_util_base643.toBase64, + disableHostPrefix: (config == null ? void 0 : config.disableHostPrefix) ?? false, + endpointProvider: (config == null ? void 0 : config.endpointProvider) ?? defaultEndpointResolver, + extensions: (config == null ? void 0 : config.extensions) ?? [], + httpAuthSchemeProvider: (config == null ? void 0 : config.httpAuthSchemeProvider) ?? defaultSSOOIDCHttpAuthSchemeProvider, + httpAuthSchemes: (config == null ? void 0 : config.httpAuthSchemes) ?? [ + { + schemeId: "aws.auth#sigv4", + identityProvider: (ipc) => ipc.getIdentityProvider("aws.auth#sigv4"), + signer: new AwsSdkSigV4Signer() + }, + { + schemeId: "smithy.api#noAuth", + identityProvider: (ipc) => ipc.getIdentityProvider("smithy.api#noAuth") || (async () => ({})), + signer: new NoAuthSigner() + } + ], + logger: (config == null ? void 0 : config.logger) ?? new import_smithy_client4.NoOpLogger(), + serviceId: (config == null ? void 0 : config.serviceId) ?? "SSO OIDC", + urlParser: (config == null ? void 0 : config.urlParser) ?? import_url_parser.parseUrl, + utf8Decoder: (config == null ? void 0 : config.utf8Decoder) ?? import_util_utf83.fromUtf8, + utf8Encoder: (config == null ? void 0 : config.utf8Encoder) ?? import_util_utf83.toUtf8 + }; + }; + } +}); + +// ../node_modules/.pnpm/@aws-sdk+nested-clients@3.817.0/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/runtimeConfig.js +var import_util_user_agent_node, import_config_resolver, import_hash_node, import_middleware_retry, import_node_config_provider, import_node_http_handler, import_util_body_length_node, import_util_retry, import_smithy_client5, import_util_defaults_mode_node, import_smithy_client6, getRuntimeConfig2; +var init_runtimeConfig = __esm({ + "../node_modules/.pnpm/@aws-sdk+nested-clients@3.817.0/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/runtimeConfig.js"() { + init_package(); + init_dist_es2(); + import_util_user_agent_node = __toESM(require_dist_cjs39()); + import_config_resolver = __toESM(require_dist_cjs26()); + import_hash_node = __toESM(require_dist_cjs40()); + import_middleware_retry = __toESM(require_dist_cjs35()); + import_node_config_provider = __toESM(require_dist_cjs29()); + import_node_http_handler = __toESM(require_dist_cjs14()); + import_util_body_length_node = __toESM(require_dist_cjs41()); + import_util_retry = __toESM(require_dist_cjs34()); + init_runtimeConfig_shared(); + import_smithy_client5 = __toESM(require_dist_cjs23()); + import_util_defaults_mode_node = __toESM(require_dist_cjs42()); + import_smithy_client6 = __toESM(require_dist_cjs23()); + getRuntimeConfig2 = (config) => { + (0, import_smithy_client6.emitWarningIfUnsupportedVersion)(process.version); + const defaultsMode = (0, import_util_defaults_mode_node.resolveDefaultsModeConfig)(config); + const defaultConfigProvider = () => defaultsMode().then(import_smithy_client5.loadConfigsForDefaultMode); + const clientSharedValues = getRuntimeConfig(config); + emitWarningIfUnsupportedVersion(process.version); + const loaderConfig = { + profile: config == null ? void 0 : config.profile, + logger: clientSharedValues.logger + }; + return { + ...clientSharedValues, + ...config, + runtime: "node", + defaultsMode, + authSchemePreference: (config == null ? void 0 : config.authSchemePreference) ?? (0, import_node_config_provider.loadConfig)(NODE_AUTH_SCHEME_PREFERENCE_OPTIONS, loaderConfig), + bodyLengthChecker: (config == null ? void 0 : config.bodyLengthChecker) ?? import_util_body_length_node.calculateBodyLength, + defaultUserAgentProvider: (config == null ? void 0 : config.defaultUserAgentProvider) ?? (0, import_util_user_agent_node.createDefaultUserAgentProvider)({ serviceId: clientSharedValues.serviceId, clientVersion: package_default.version }), + maxAttempts: (config == null ? void 0 : config.maxAttempts) ?? (0, import_node_config_provider.loadConfig)(import_middleware_retry.NODE_MAX_ATTEMPT_CONFIG_OPTIONS, config), + region: (config == null ? void 0 : config.region) ?? (0, import_node_config_provider.loadConfig)(import_config_resolver.NODE_REGION_CONFIG_OPTIONS, { ...import_config_resolver.NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig }), + requestHandler: import_node_http_handler.NodeHttpHandler.create((config == null ? void 0 : config.requestHandler) ?? defaultConfigProvider), + retryMode: (config == null ? void 0 : config.retryMode) ?? (0, import_node_config_provider.loadConfig)({ + ...import_middleware_retry.NODE_RETRY_MODE_CONFIG_OPTIONS, + default: async () => (await defaultConfigProvider()).retryMode || import_util_retry.DEFAULT_RETRY_MODE + }, config), + sha256: (config == null ? void 0 : config.sha256) ?? import_hash_node.Hash.bind(null, "sha256"), + streamCollector: (config == null ? void 0 : config.streamCollector) ?? import_node_http_handler.streamCollector, + useDualstackEndpoint: (config == null ? void 0 : config.useDualstackEndpoint) ?? (0, import_node_config_provider.loadConfig)(import_config_resolver.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, loaderConfig), + useFipsEndpoint: (config == null ? void 0 : config.useFipsEndpoint) ?? (0, import_node_config_provider.loadConfig)(import_config_resolver.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, loaderConfig), + userAgentAppId: (config == null ? void 0 : config.userAgentAppId) ?? (0, import_node_config_provider.loadConfig)(import_util_user_agent_node.NODE_APP_ID_CONFIG_OPTIONS, loaderConfig) + }; + }; + } +}); + +// ../node_modules/.pnpm/@aws-sdk+nested-clients@3.817.0/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/auth/httpAuthExtensionConfiguration.js +var getHttpAuthExtensionConfiguration, resolveHttpAuthRuntimeConfig; +var init_httpAuthExtensionConfiguration = __esm({ + "../node_modules/.pnpm/@aws-sdk+nested-clients@3.817.0/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/auth/httpAuthExtensionConfiguration.js"() { + getHttpAuthExtensionConfiguration = (runtimeConfig) => { + const _httpAuthSchemes = runtimeConfig.httpAuthSchemes; + let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider; + let _credentials = runtimeConfig.credentials; + return { + setHttpAuthScheme(httpAuthScheme) { + const index6 = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId); + if (index6 === -1) { + _httpAuthSchemes.push(httpAuthScheme); + } else { + _httpAuthSchemes.splice(index6, 1, httpAuthScheme); + } + }, + httpAuthSchemes() { + return _httpAuthSchemes; + }, + setHttpAuthSchemeProvider(httpAuthSchemeProvider) { + _httpAuthSchemeProvider = httpAuthSchemeProvider; + }, + httpAuthSchemeProvider() { + return _httpAuthSchemeProvider; + }, + setCredentials(credentials2) { + _credentials = credentials2; + }, + credentials() { + return _credentials; + } + }; + }; + resolveHttpAuthRuntimeConfig = (config) => { + return { + httpAuthSchemes: config.httpAuthSchemes(), + httpAuthSchemeProvider: config.httpAuthSchemeProvider(), + credentials: config.credentials() + }; + }; + } +}); + +// ../node_modules/.pnpm/@aws-sdk+nested-clients@3.817.0/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/runtimeExtensions.js +var import_region_config_resolver, import_protocol_http12, import_smithy_client7, resolveRuntimeExtensions; +var init_runtimeExtensions = __esm({ + "../node_modules/.pnpm/@aws-sdk+nested-clients@3.817.0/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/runtimeExtensions.js"() { + import_region_config_resolver = __toESM(require_dist_cjs43()); + import_protocol_http12 = __toESM(require_dist_cjs2()); + import_smithy_client7 = __toESM(require_dist_cjs23()); + init_httpAuthExtensionConfiguration(); + resolveRuntimeExtensions = (runtimeConfig, extensions) => { + const extensionConfiguration = Object.assign((0, import_region_config_resolver.getAwsRegionExtensionConfiguration)(runtimeConfig), (0, import_smithy_client7.getDefaultExtensionConfiguration)(runtimeConfig), (0, import_protocol_http12.getHttpHandlerExtensionConfiguration)(runtimeConfig), getHttpAuthExtensionConfiguration(runtimeConfig)); + extensions.forEach((extension) => extension.configure(extensionConfiguration)); + return Object.assign(runtimeConfig, (0, import_region_config_resolver.resolveAwsRegionExtensionConfiguration)(extensionConfiguration), (0, import_smithy_client7.resolveDefaultRuntimeConfig)(extensionConfiguration), (0, import_protocol_http12.resolveHttpHandlerRuntimeConfig)(extensionConfiguration), resolveHttpAuthRuntimeConfig(extensionConfiguration)); + }; + } +}); + +// ../node_modules/.pnpm/@aws-sdk+nested-clients@3.817.0/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/SSOOIDCClient.js +var import_middleware_host_header, import_middleware_logger, import_middleware_recursion_detection, import_middleware_user_agent, import_config_resolver2, import_middleware_content_length, import_middleware_endpoint, import_middleware_retry2, import_smithy_client8, SSOOIDCClient; +var init_SSOOIDCClient = __esm({ + "../node_modules/.pnpm/@aws-sdk+nested-clients@3.817.0/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/SSOOIDCClient.js"() { + import_middleware_host_header = __toESM(require_dist_cjs3()); + import_middleware_logger = __toESM(require_dist_cjs4()); + import_middleware_recursion_detection = __toESM(require_dist_cjs5()); + import_middleware_user_agent = __toESM(require_dist_cjs24()); + import_config_resolver2 = __toESM(require_dist_cjs26()); + init_dist_es(); + import_middleware_content_length = __toESM(require_dist_cjs27()); + import_middleware_endpoint = __toESM(require_dist_cjs32()); + import_middleware_retry2 = __toESM(require_dist_cjs35()); + import_smithy_client8 = __toESM(require_dist_cjs23()); + init_httpAuthSchemeProvider(); + init_EndpointParameters(); + init_runtimeConfig(); + init_runtimeExtensions(); + SSOOIDCClient = class extends import_smithy_client8.Client { + config; + constructor(...[configuration]) { + const _config_0 = getRuntimeConfig2(configuration || {}); + super(_config_0); + this.initConfig = _config_0; + const _config_1 = resolveClientEndpointParameters(_config_0); + const _config_2 = (0, import_middleware_user_agent.resolveUserAgentConfig)(_config_1); + const _config_3 = (0, import_middleware_retry2.resolveRetryConfig)(_config_2); + const _config_4 = (0, import_config_resolver2.resolveRegionConfig)(_config_3); + const _config_5 = (0, import_middleware_host_header.resolveHostHeaderConfig)(_config_4); + const _config_6 = (0, import_middleware_endpoint.resolveEndpointConfig)(_config_5); + const _config_7 = resolveHttpAuthSchemeConfig(_config_6); + const _config_8 = resolveRuntimeExtensions(_config_7, (configuration == null ? void 0 : configuration.extensions) || []); + this.config = _config_8; + this.middlewareStack.use((0, import_middleware_user_agent.getUserAgentPlugin)(this.config)); + this.middlewareStack.use((0, import_middleware_retry2.getRetryPlugin)(this.config)); + this.middlewareStack.use((0, import_middleware_content_length.getContentLengthPlugin)(this.config)); + this.middlewareStack.use((0, import_middleware_host_header.getHostHeaderPlugin)(this.config)); + this.middlewareStack.use((0, import_middleware_logger.getLoggerPlugin)(this.config)); + this.middlewareStack.use((0, import_middleware_recursion_detection.getRecursionDetectionPlugin)(this.config)); + this.middlewareStack.use(getHttpAuthSchemeEndpointRuleSetPlugin(this.config, { + httpAuthSchemeParametersProvider: defaultSSOOIDCHttpAuthSchemeParametersProvider, + identityProviderConfigProvider: async (config) => new DefaultIdentityProviderConfig({ + "aws.auth#sigv4": config.credentials + }) + })); + this.middlewareStack.use(getHttpSigningPlugin(this.config)); + } + destroy() { + super.destroy(); + } + }; + } +}); + +// ../node_modules/.pnpm/@aws-sdk+nested-clients@3.817.0/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/models/SSOOIDCServiceException.js +var import_smithy_client9, SSOOIDCServiceException; +var init_SSOOIDCServiceException = __esm({ + "../node_modules/.pnpm/@aws-sdk+nested-clients@3.817.0/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/models/SSOOIDCServiceException.js"() { + import_smithy_client9 = __toESM(require_dist_cjs23()); + SSOOIDCServiceException = class _SSOOIDCServiceException extends import_smithy_client9.ServiceException { + constructor(options) { + super(options); + Object.setPrototypeOf(this, _SSOOIDCServiceException.prototype); + } + }; + } +}); + +// ../node_modules/.pnpm/@aws-sdk+nested-clients@3.817.0/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/models/models_0.js +var import_smithy_client10, AccessDeniedException, AuthorizationPendingException, CreateTokenRequestFilterSensitiveLog, CreateTokenResponseFilterSensitiveLog, ExpiredTokenException, InternalServerException, InvalidClientException, InvalidGrantException, InvalidRequestException, InvalidScopeException, SlowDownException, UnauthorizedClientException, UnsupportedGrantTypeException; +var init_models_0 = __esm({ + "../node_modules/.pnpm/@aws-sdk+nested-clients@3.817.0/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/models/models_0.js"() { + import_smithy_client10 = __toESM(require_dist_cjs23()); + init_SSOOIDCServiceException(); + AccessDeniedException = class _AccessDeniedException extends SSOOIDCServiceException { + name = "AccessDeniedException"; + $fault = "client"; + error; + error_description; + constructor(opts) { + super({ + name: "AccessDeniedException", + $fault: "client", + ...opts + }); + Object.setPrototypeOf(this, _AccessDeniedException.prototype); + this.error = opts.error; + this.error_description = opts.error_description; + } + }; + AuthorizationPendingException = class _AuthorizationPendingException extends SSOOIDCServiceException { + name = "AuthorizationPendingException"; + $fault = "client"; + error; + error_description; + constructor(opts) { + super({ + name: "AuthorizationPendingException", + $fault: "client", + ...opts + }); + Object.setPrototypeOf(this, _AuthorizationPendingException.prototype); + this.error = opts.error; + this.error_description = opts.error_description; + } + }; + CreateTokenRequestFilterSensitiveLog = (obj) => ({ + ...obj, + ...obj.clientSecret && { clientSecret: import_smithy_client10.SENSITIVE_STRING }, + ...obj.refreshToken && { refreshToken: import_smithy_client10.SENSITIVE_STRING }, + ...obj.codeVerifier && { codeVerifier: import_smithy_client10.SENSITIVE_STRING } + }); + CreateTokenResponseFilterSensitiveLog = (obj) => ({ + ...obj, + ...obj.accessToken && { accessToken: import_smithy_client10.SENSITIVE_STRING }, + ...obj.refreshToken && { refreshToken: import_smithy_client10.SENSITIVE_STRING }, + ...obj.idToken && { idToken: import_smithy_client10.SENSITIVE_STRING } + }); + ExpiredTokenException = class _ExpiredTokenException extends SSOOIDCServiceException { + name = "ExpiredTokenException"; + $fault = "client"; + error; + error_description; + constructor(opts) { + super({ + name: "ExpiredTokenException", + $fault: "client", + ...opts + }); + Object.setPrototypeOf(this, _ExpiredTokenException.prototype); + this.error = opts.error; + this.error_description = opts.error_description; + } + }; + InternalServerException = class _InternalServerException extends SSOOIDCServiceException { + name = "InternalServerException"; + $fault = "server"; + error; + error_description; + constructor(opts) { + super({ + name: "InternalServerException", + $fault: "server", + ...opts + }); + Object.setPrototypeOf(this, _InternalServerException.prototype); + this.error = opts.error; + this.error_description = opts.error_description; + } + }; + InvalidClientException = class _InvalidClientException extends SSOOIDCServiceException { + name = "InvalidClientException"; + $fault = "client"; + error; + error_description; + constructor(opts) { + super({ + name: "InvalidClientException", + $fault: "client", + ...opts + }); + Object.setPrototypeOf(this, _InvalidClientException.prototype); + this.error = opts.error; + this.error_description = opts.error_description; + } + }; + InvalidGrantException = class _InvalidGrantException extends SSOOIDCServiceException { + name = "InvalidGrantException"; + $fault = "client"; + error; + error_description; + constructor(opts) { + super({ + name: "InvalidGrantException", + $fault: "client", + ...opts + }); + Object.setPrototypeOf(this, _InvalidGrantException.prototype); + this.error = opts.error; + this.error_description = opts.error_description; + } + }; + InvalidRequestException = class _InvalidRequestException extends SSOOIDCServiceException { + name = "InvalidRequestException"; + $fault = "client"; + error; + error_description; + constructor(opts) { + super({ + name: "InvalidRequestException", + $fault: "client", + ...opts + }); + Object.setPrototypeOf(this, _InvalidRequestException.prototype); + this.error = opts.error; + this.error_description = opts.error_description; + } + }; + InvalidScopeException = class _InvalidScopeException extends SSOOIDCServiceException { + name = "InvalidScopeException"; + $fault = "client"; + error; + error_description; + constructor(opts) { + super({ + name: "InvalidScopeException", + $fault: "client", + ...opts + }); + Object.setPrototypeOf(this, _InvalidScopeException.prototype); + this.error = opts.error; + this.error_description = opts.error_description; + } + }; + SlowDownException = class _SlowDownException extends SSOOIDCServiceException { + name = "SlowDownException"; + $fault = "client"; + error; + error_description; + constructor(opts) { + super({ + name: "SlowDownException", + $fault: "client", + ...opts + }); + Object.setPrototypeOf(this, _SlowDownException.prototype); + this.error = opts.error; + this.error_description = opts.error_description; + } + }; + UnauthorizedClientException = class _UnauthorizedClientException extends SSOOIDCServiceException { + name = "UnauthorizedClientException"; + $fault = "client"; + error; + error_description; + constructor(opts) { + super({ + name: "UnauthorizedClientException", + $fault: "client", + ...opts + }); + Object.setPrototypeOf(this, _UnauthorizedClientException.prototype); + this.error = opts.error; + this.error_description = opts.error_description; + } + }; + UnsupportedGrantTypeException = class _UnsupportedGrantTypeException extends SSOOIDCServiceException { + name = "UnsupportedGrantTypeException"; + $fault = "client"; + error; + error_description; + constructor(opts) { + super({ + name: "UnsupportedGrantTypeException", + $fault: "client", + ...opts + }); + Object.setPrototypeOf(this, _UnsupportedGrantTypeException.prototype); + this.error = opts.error; + this.error_description = opts.error_description; + } + }; + } +}); + +// ../node_modules/.pnpm/@aws-sdk+nested-clients@3.817.0/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/protocols/Aws_restJson1.js +var import_smithy_client11, se_CreateTokenCommand, de_CreateTokenCommand, de_CommandError, throwDefaultError, de_AccessDeniedExceptionRes, de_AuthorizationPendingExceptionRes, de_ExpiredTokenExceptionRes, de_InternalServerExceptionRes, de_InvalidClientExceptionRes, de_InvalidGrantExceptionRes, de_InvalidRequestExceptionRes, de_InvalidScopeExceptionRes, de_SlowDownExceptionRes, de_UnauthorizedClientExceptionRes, de_UnsupportedGrantTypeExceptionRes, deserializeMetadata; +var init_Aws_restJson1 = __esm({ + "../node_modules/.pnpm/@aws-sdk+nested-clients@3.817.0/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/protocols/Aws_restJson1.js"() { + init_dist_es2(); + init_dist_es(); + import_smithy_client11 = __toESM(require_dist_cjs23()); + init_models_0(); + init_SSOOIDCServiceException(); + se_CreateTokenCommand = async (input, context) => { + const b3 = requestBuilder(input, context); + const headers = { + "content-type": "application/json" + }; + b3.bp("/token"); + let body; + body = JSON.stringify((0, import_smithy_client11.take)(input, { + clientId: [], + clientSecret: [], + code: [], + codeVerifier: [], + deviceCode: [], + grantType: [], + redirectUri: [], + refreshToken: [], + scope: (_3) => (0, import_smithy_client11._json)(_3) + })); + b3.m("POST").h(headers).b(body); + return b3.build(); + }; + de_CreateTokenCommand = async (output, context) => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return de_CommandError(output, context); + } + const contents = (0, import_smithy_client11.map)({ + $metadata: deserializeMetadata(output) + }); + const data = (0, import_smithy_client11.expectNonNull)((0, import_smithy_client11.expectObject)(await parseJsonBody(output.body, context)), "body"); + const doc = (0, import_smithy_client11.take)(data, { + accessToken: import_smithy_client11.expectString, + expiresIn: import_smithy_client11.expectInt32, + idToken: import_smithy_client11.expectString, + refreshToken: import_smithy_client11.expectString, + tokenType: import_smithy_client11.expectString + }); + Object.assign(contents, doc); + return contents; + }; + de_CommandError = async (output, context) => { + const parsedOutput = { + ...output, + body: await parseJsonErrorBody(output.body, context) + }; + const errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.ssooidc#AccessDeniedException": + throw await de_AccessDeniedExceptionRes(parsedOutput, context); + case "AuthorizationPendingException": + case "com.amazonaws.ssooidc#AuthorizationPendingException": + throw await de_AuthorizationPendingExceptionRes(parsedOutput, context); + case "ExpiredTokenException": + case "com.amazonaws.ssooidc#ExpiredTokenException": + throw await de_ExpiredTokenExceptionRes(parsedOutput, context); + case "InternalServerException": + case "com.amazonaws.ssooidc#InternalServerException": + throw await de_InternalServerExceptionRes(parsedOutput, context); + case "InvalidClientException": + case "com.amazonaws.ssooidc#InvalidClientException": + throw await de_InvalidClientExceptionRes(parsedOutput, context); + case "InvalidGrantException": + case "com.amazonaws.ssooidc#InvalidGrantException": + throw await de_InvalidGrantExceptionRes(parsedOutput, context); + case "InvalidRequestException": + case "com.amazonaws.ssooidc#InvalidRequestException": + throw await de_InvalidRequestExceptionRes(parsedOutput, context); + case "InvalidScopeException": + case "com.amazonaws.ssooidc#InvalidScopeException": + throw await de_InvalidScopeExceptionRes(parsedOutput, context); + case "SlowDownException": + case "com.amazonaws.ssooidc#SlowDownException": + throw await de_SlowDownExceptionRes(parsedOutput, context); + case "UnauthorizedClientException": + case "com.amazonaws.ssooidc#UnauthorizedClientException": + throw await de_UnauthorizedClientExceptionRes(parsedOutput, context); + case "UnsupportedGrantTypeException": + case "com.amazonaws.ssooidc#UnsupportedGrantTypeException": + throw await de_UnsupportedGrantTypeExceptionRes(parsedOutput, context); + default: + const parsedBody = parsedOutput.body; + return throwDefaultError({ + output, + parsedBody, + errorCode + }); + } + }; + throwDefaultError = (0, import_smithy_client11.withBaseException)(SSOOIDCServiceException); + de_AccessDeniedExceptionRes = async (parsedOutput, context) => { + const contents = (0, import_smithy_client11.map)({}); + const data = parsedOutput.body; + const doc = (0, import_smithy_client11.take)(data, { + error: import_smithy_client11.expectString, + error_description: import_smithy_client11.expectString + }); + Object.assign(contents, doc); + const exception = new AccessDeniedException({ + $metadata: deserializeMetadata(parsedOutput), + ...contents + }); + return (0, import_smithy_client11.decorateServiceException)(exception, parsedOutput.body); + }; + de_AuthorizationPendingExceptionRes = async (parsedOutput, context) => { + const contents = (0, import_smithy_client11.map)({}); + const data = parsedOutput.body; + const doc = (0, import_smithy_client11.take)(data, { + error: import_smithy_client11.expectString, + error_description: import_smithy_client11.expectString + }); + Object.assign(contents, doc); + const exception = new AuthorizationPendingException({ + $metadata: deserializeMetadata(parsedOutput), + ...contents + }); + return (0, import_smithy_client11.decorateServiceException)(exception, parsedOutput.body); + }; + de_ExpiredTokenExceptionRes = async (parsedOutput, context) => { + const contents = (0, import_smithy_client11.map)({}); + const data = parsedOutput.body; + const doc = (0, import_smithy_client11.take)(data, { + error: import_smithy_client11.expectString, + error_description: import_smithy_client11.expectString + }); + Object.assign(contents, doc); + const exception = new ExpiredTokenException({ + $metadata: deserializeMetadata(parsedOutput), + ...contents + }); + return (0, import_smithy_client11.decorateServiceException)(exception, parsedOutput.body); + }; + de_InternalServerExceptionRes = async (parsedOutput, context) => { + const contents = (0, import_smithy_client11.map)({}); + const data = parsedOutput.body; + const doc = (0, import_smithy_client11.take)(data, { + error: import_smithy_client11.expectString, + error_description: import_smithy_client11.expectString + }); + Object.assign(contents, doc); + const exception = new InternalServerException({ + $metadata: deserializeMetadata(parsedOutput), + ...contents + }); + return (0, import_smithy_client11.decorateServiceException)(exception, parsedOutput.body); + }; + de_InvalidClientExceptionRes = async (parsedOutput, context) => { + const contents = (0, import_smithy_client11.map)({}); + const data = parsedOutput.body; + const doc = (0, import_smithy_client11.take)(data, { + error: import_smithy_client11.expectString, + error_description: import_smithy_client11.expectString + }); + Object.assign(contents, doc); + const exception = new InvalidClientException({ + $metadata: deserializeMetadata(parsedOutput), + ...contents + }); + return (0, import_smithy_client11.decorateServiceException)(exception, parsedOutput.body); + }; + de_InvalidGrantExceptionRes = async (parsedOutput, context) => { + const contents = (0, import_smithy_client11.map)({}); + const data = parsedOutput.body; + const doc = (0, import_smithy_client11.take)(data, { + error: import_smithy_client11.expectString, + error_description: import_smithy_client11.expectString + }); + Object.assign(contents, doc); + const exception = new InvalidGrantException({ + $metadata: deserializeMetadata(parsedOutput), + ...contents + }); + return (0, import_smithy_client11.decorateServiceException)(exception, parsedOutput.body); + }; + de_InvalidRequestExceptionRes = async (parsedOutput, context) => { + const contents = (0, import_smithy_client11.map)({}); + const data = parsedOutput.body; + const doc = (0, import_smithy_client11.take)(data, { + error: import_smithy_client11.expectString, + error_description: import_smithy_client11.expectString + }); + Object.assign(contents, doc); + const exception = new InvalidRequestException({ + $metadata: deserializeMetadata(parsedOutput), + ...contents + }); + return (0, import_smithy_client11.decorateServiceException)(exception, parsedOutput.body); + }; + de_InvalidScopeExceptionRes = async (parsedOutput, context) => { + const contents = (0, import_smithy_client11.map)({}); + const data = parsedOutput.body; + const doc = (0, import_smithy_client11.take)(data, { + error: import_smithy_client11.expectString, + error_description: import_smithy_client11.expectString + }); + Object.assign(contents, doc); + const exception = new InvalidScopeException({ + $metadata: deserializeMetadata(parsedOutput), + ...contents + }); + return (0, import_smithy_client11.decorateServiceException)(exception, parsedOutput.body); + }; + de_SlowDownExceptionRes = async (parsedOutput, context) => { + const contents = (0, import_smithy_client11.map)({}); + const data = parsedOutput.body; + const doc = (0, import_smithy_client11.take)(data, { + error: import_smithy_client11.expectString, + error_description: import_smithy_client11.expectString + }); + Object.assign(contents, doc); + const exception = new SlowDownException({ + $metadata: deserializeMetadata(parsedOutput), + ...contents + }); + return (0, import_smithy_client11.decorateServiceException)(exception, parsedOutput.body); + }; + de_UnauthorizedClientExceptionRes = async (parsedOutput, context) => { + const contents = (0, import_smithy_client11.map)({}); + const data = parsedOutput.body; + const doc = (0, import_smithy_client11.take)(data, { + error: import_smithy_client11.expectString, + error_description: import_smithy_client11.expectString + }); + Object.assign(contents, doc); + const exception = new UnauthorizedClientException({ + $metadata: deserializeMetadata(parsedOutput), + ...contents + }); + return (0, import_smithy_client11.decorateServiceException)(exception, parsedOutput.body); + }; + de_UnsupportedGrantTypeExceptionRes = async (parsedOutput, context) => { + const contents = (0, import_smithy_client11.map)({}); + const data = parsedOutput.body; + const doc = (0, import_smithy_client11.take)(data, { + error: import_smithy_client11.expectString, + error_description: import_smithy_client11.expectString + }); + Object.assign(contents, doc); + const exception = new UnsupportedGrantTypeException({ + $metadata: deserializeMetadata(parsedOutput), + ...contents + }); + return (0, import_smithy_client11.decorateServiceException)(exception, parsedOutput.body); + }; + deserializeMetadata = (output) => ({ + httpStatusCode: output.statusCode, + requestId: output.headers["x-amzn-requestid"] ?? output.headers["x-amzn-request-id"] ?? output.headers["x-amz-request-id"], + extendedRequestId: output.headers["x-amz-id-2"], + cfId: output.headers["x-amz-cf-id"] + }); + } +}); + +// ../node_modules/.pnpm/@aws-sdk+nested-clients@3.817.0/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/commands/CreateTokenCommand.js +var import_middleware_endpoint2, import_middleware_serde2, import_smithy_client12, CreateTokenCommand; +var init_CreateTokenCommand = __esm({ + "../node_modules/.pnpm/@aws-sdk+nested-clients@3.817.0/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/commands/CreateTokenCommand.js"() { + import_middleware_endpoint2 = __toESM(require_dist_cjs32()); + import_middleware_serde2 = __toESM(require_dist_cjs7()); + import_smithy_client12 = __toESM(require_dist_cjs23()); + init_EndpointParameters(); + init_models_0(); + init_Aws_restJson1(); + CreateTokenCommand = class extends import_smithy_client12.Command.classBuilder().ep(commonParams).m(function(Command, cs, config, o3) { + return [ + (0, import_middleware_serde2.getSerdePlugin)(config, this.serialize, this.deserialize), + (0, import_middleware_endpoint2.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) + ]; + }).s("AWSSSOOIDCService", "CreateToken", {}).n("SSOOIDCClient", "CreateTokenCommand").f(CreateTokenRequestFilterSensitiveLog, CreateTokenResponseFilterSensitiveLog).ser(se_CreateTokenCommand).de(de_CreateTokenCommand).build() { + }; + } +}); + +// ../node_modules/.pnpm/@aws-sdk+nested-clients@3.817.0/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/SSOOIDC.js +var import_smithy_client13, commands, SSOOIDC; +var init_SSOOIDC = __esm({ + "../node_modules/.pnpm/@aws-sdk+nested-clients@3.817.0/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/SSOOIDC.js"() { + import_smithy_client13 = __toESM(require_dist_cjs23()); + init_CreateTokenCommand(); + init_SSOOIDCClient(); + commands = { + CreateTokenCommand + }; + SSOOIDC = class extends SSOOIDCClient { + }; + (0, import_smithy_client13.createAggregatedClient)(commands, SSOOIDC); + } +}); + +// ../node_modules/.pnpm/@aws-sdk+nested-clients@3.817.0/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/commands/index.js +var init_commands = __esm({ + "../node_modules/.pnpm/@aws-sdk+nested-clients@3.817.0/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/commands/index.js"() { + init_CreateTokenCommand(); + } +}); + +// ../node_modules/.pnpm/@aws-sdk+nested-clients@3.817.0/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/models/index.js +var init_models = __esm({ + "../node_modules/.pnpm/@aws-sdk+nested-clients@3.817.0/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/models/index.js"() { + init_models_0(); + } +}); + +// ../node_modules/.pnpm/@aws-sdk+nested-clients@3.817.0/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/index.js +var sso_oidc_exports = {}; +__export(sso_oidc_exports, { + $Command: () => import_smithy_client12.Command, + AccessDeniedException: () => AccessDeniedException, + AuthorizationPendingException: () => AuthorizationPendingException, + CreateTokenCommand: () => CreateTokenCommand, + CreateTokenRequestFilterSensitiveLog: () => CreateTokenRequestFilterSensitiveLog, + CreateTokenResponseFilterSensitiveLog: () => CreateTokenResponseFilterSensitiveLog, + ExpiredTokenException: () => ExpiredTokenException, + InternalServerException: () => InternalServerException, + InvalidClientException: () => InvalidClientException, + InvalidGrantException: () => InvalidGrantException, + InvalidRequestException: () => InvalidRequestException, + InvalidScopeException: () => InvalidScopeException, + SSOOIDC: () => SSOOIDC, + SSOOIDCClient: () => SSOOIDCClient, + SSOOIDCServiceException: () => SSOOIDCServiceException, + SlowDownException: () => SlowDownException, + UnauthorizedClientException: () => UnauthorizedClientException, + UnsupportedGrantTypeException: () => UnsupportedGrantTypeException, + __Client: () => import_smithy_client8.Client +}); +var init_sso_oidc = __esm({ + "../node_modules/.pnpm/@aws-sdk+nested-clients@3.817.0/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/index.js"() { + init_SSOOIDCClient(); + init_SSOOIDC(); + init_commands(); + init_models(); + init_SSOOIDCServiceException(); + } +}); + +// ../node_modules/.pnpm/@aws-sdk+token-providers@3.817.0/node_modules/@aws-sdk/token-providers/dist-cjs/index.js +var require_dist_cjs45 = __commonJS({ + "../node_modules/.pnpm/@aws-sdk+token-providers@3.817.0/node_modules/@aws-sdk/token-providers/dist-cjs/index.js"(exports2, module2) { + "use strict"; + var __create3 = Object.create; + var __defProp3 = Object.defineProperty; + var __getOwnPropDesc3 = Object.getOwnPropertyDescriptor; + var __getOwnPropNames3 = Object.getOwnPropertyNames; + var __getProtoOf3 = Object.getPrototypeOf; + var __hasOwnProp3 = Object.prototype.hasOwnProperty; + var __name = (target, value) => __defProp3(target, "name", { value, configurable: true }); + var __export2 = (target, all) => { + for (var name in all) + __defProp3(target, name, { get: all[name], enumerable: true }); + }; + var __copyProps3 = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames3(from)) + if (!__hasOwnProp3.call(to, key) && key !== except) + __defProp3(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc3(from, key)) || desc.enumerable }); + } + return to; + }; + var __toESM3 = (mod, isNodeMode, target) => (target = mod != null ? __create3(__getProtoOf3(mod)) : {}, __copyProps3( + // If the importer is in node compatibility mode or this is not an ESM + // file that has been converted to a CommonJS file using a Babel- + // compatible transform (i.e. "__esModule" has not been set), then set + // "default" to the CommonJS "module.exports" for node compatibility. + isNodeMode || !mod || !mod.__esModule ? __defProp3(target, "default", { value: mod, enumerable: true }) : target, + mod + )); + var __toCommonJS2 = (mod) => __copyProps3(__defProp3({}, "__esModule", { value: true }), mod); + var index_exports = {}; + __export2(index_exports, { + fromEnvSigningName: () => fromEnvSigningName, + fromSso: () => fromSso, + fromStatic: () => fromStatic, + nodeProvider: () => nodeProvider + }); + module2.exports = __toCommonJS2(index_exports); + var import_core17 = (init_dist_es2(), __toCommonJS(dist_es_exports2)); + var import_property_provider2 = require_dist_cjs20(); + var fromEnvSigningName = /* @__PURE__ */ __name(({ logger: logger3, signingName } = {}) => async () => { + var _a2; + (_a2 = logger3 == null ? void 0 : logger3.debug) == null ? void 0 : _a2.call(logger3, "@aws-sdk/token-providers - fromEnvSigningName"); + if (!signingName) { + throw new import_property_provider2.TokenProviderError("Please pass 'signingName' to compute environment variable key", { logger: logger3 }); + } + const bearerTokenKey = (0, import_core17.getBearerTokenEnvKey)(signingName); + if (!(bearerTokenKey in process.env)) { + throw new import_property_provider2.TokenProviderError(`Token not present in '${bearerTokenKey}' environment variable`, { logger: logger3 }); + } + return { token: process.env[bearerTokenKey] }; + }, "fromEnvSigningName"); + var EXPIRE_WINDOW_MS = 5 * 60 * 1e3; + var REFRESH_MESSAGE = `To refresh this SSO session run 'aws sso login' with the corresponding profile.`; + var getSsoOidcClient = /* @__PURE__ */ __name(async (ssoRegion, init2 = {}) => { + var _a2, _b, _c; + const { SSOOIDCClient: SSOOIDCClient2 } = await Promise.resolve().then(() => __toESM3((init_sso_oidc(), __toCommonJS(sso_oidc_exports)))); + const ssoOidcClient = new SSOOIDCClient2( + Object.assign({}, init2.clientConfig ?? {}, { + region: ssoRegion ?? ((_a2 = init2.clientConfig) == null ? void 0 : _a2.region), + logger: ((_b = init2.clientConfig) == null ? void 0 : _b.logger) ?? ((_c = init2.parentClientConfig) == null ? void 0 : _c.logger) + }) + ); + return ssoOidcClient; + }, "getSsoOidcClient"); + var getNewSsoOidcToken = /* @__PURE__ */ __name(async (ssoToken, ssoRegion, init2 = {}) => { + const { CreateTokenCommand: CreateTokenCommand2 } = await Promise.resolve().then(() => __toESM3((init_sso_oidc(), __toCommonJS(sso_oidc_exports)))); + const ssoOidcClient = await getSsoOidcClient(ssoRegion, init2); + return ssoOidcClient.send( + new CreateTokenCommand2({ + clientId: ssoToken.clientId, + clientSecret: ssoToken.clientSecret, + refreshToken: ssoToken.refreshToken, + grantType: "refresh_token" + }) + ); + }, "getNewSsoOidcToken"); + var validateTokenExpiry = /* @__PURE__ */ __name((token) => { + if (token.expiration && token.expiration.getTime() < Date.now()) { + throw new import_property_provider2.TokenProviderError(`Token is expired. ${REFRESH_MESSAGE}`, false); + } + }, "validateTokenExpiry"); + var validateTokenKey = /* @__PURE__ */ __name((key, value, forRefresh = false) => { + if (typeof value === "undefined") { + throw new import_property_provider2.TokenProviderError( + `Value not present for '${key}' in SSO Token${forRefresh ? ". Cannot refresh" : ""}. ${REFRESH_MESSAGE}`, + false + ); + } + }, "validateTokenKey"); + var import_shared_ini_file_loader = require_dist_cjs28(); + var import_fs14 = require("fs"); + var { writeFile } = import_fs14.promises; + var writeSSOTokenToFile = /* @__PURE__ */ __name((id, ssoToken) => { + const tokenFilepath = (0, import_shared_ini_file_loader.getSSOTokenFilepath)(id); + const tokenString = JSON.stringify(ssoToken, null, 2); + return writeFile(tokenFilepath, tokenString); + }, "writeSSOTokenToFile"); + var lastRefreshAttemptTime = /* @__PURE__ */ new Date(0); + var fromSso = /* @__PURE__ */ __name((_init = {}) => async ({ callerClientConfig } = {}) => { + var _a2; + const init2 = { + ..._init, + parentClientConfig: { + ...callerClientConfig, + ..._init.parentClientConfig + } + }; + (_a2 = init2.logger) == null ? void 0 : _a2.debug("@aws-sdk/token-providers - fromSso"); + const profiles = await (0, import_shared_ini_file_loader.parseKnownFiles)(init2); + const profileName = (0, import_shared_ini_file_loader.getProfileName)({ + profile: init2.profile ?? (callerClientConfig == null ? void 0 : callerClientConfig.profile) + }); + const profile = profiles[profileName]; + if (!profile) { + throw new import_property_provider2.TokenProviderError(`Profile '${profileName}' could not be found in shared credentials file.`, false); + } else if (!profile["sso_session"]) { + throw new import_property_provider2.TokenProviderError(`Profile '${profileName}' is missing required property 'sso_session'.`); + } + const ssoSessionName = profile["sso_session"]; + const ssoSessions = await (0, import_shared_ini_file_loader.loadSsoSessionData)(init2); + const ssoSession = ssoSessions[ssoSessionName]; + if (!ssoSession) { + throw new import_property_provider2.TokenProviderError( + `Sso session '${ssoSessionName}' could not be found in shared credentials file.`, + false + ); + } + for (const ssoSessionRequiredKey of ["sso_start_url", "sso_region"]) { + if (!ssoSession[ssoSessionRequiredKey]) { + throw new import_property_provider2.TokenProviderError( + `Sso session '${ssoSessionName}' is missing required property '${ssoSessionRequiredKey}'.`, + false + ); + } + } + const ssoStartUrl = ssoSession["sso_start_url"]; + const ssoRegion = ssoSession["sso_region"]; + let ssoToken; + try { + ssoToken = await (0, import_shared_ini_file_loader.getSSOTokenFromFile)(ssoSessionName); + } catch (e4) { + throw new import_property_provider2.TokenProviderError( + `The SSO session token associated with profile=${profileName} was not found or is invalid. ${REFRESH_MESSAGE}`, + false + ); + } + validateTokenKey("accessToken", ssoToken.accessToken); + validateTokenKey("expiresAt", ssoToken.expiresAt); + const { accessToken, expiresAt } = ssoToken; + const existingToken = { token: accessToken, expiration: new Date(expiresAt) }; + if (existingToken.expiration.getTime() - Date.now() > EXPIRE_WINDOW_MS) { + return existingToken; + } + if (Date.now() - lastRefreshAttemptTime.getTime() < 30 * 1e3) { + validateTokenExpiry(existingToken); + return existingToken; + } + validateTokenKey("clientId", ssoToken.clientId, true); + validateTokenKey("clientSecret", ssoToken.clientSecret, true); + validateTokenKey("refreshToken", ssoToken.refreshToken, true); + try { + lastRefreshAttemptTime.setTime(Date.now()); + const newSsoOidcToken = await getNewSsoOidcToken(ssoToken, ssoRegion, init2); + validateTokenKey("accessToken", newSsoOidcToken.accessToken); + validateTokenKey("expiresIn", newSsoOidcToken.expiresIn); + const newTokenExpiration = new Date(Date.now() + newSsoOidcToken.expiresIn * 1e3); + try { + await writeSSOTokenToFile(ssoSessionName, { + ...ssoToken, + accessToken: newSsoOidcToken.accessToken, + expiresAt: newTokenExpiration.toISOString(), + refreshToken: newSsoOidcToken.refreshToken + }); + } catch (error2) { + } + return { + token: newSsoOidcToken.accessToken, + expiration: newTokenExpiration + }; + } catch (error2) { + validateTokenExpiry(existingToken); + return existingToken; + } + }, "fromSso"); + var fromStatic = /* @__PURE__ */ __name(({ token, logger: logger3 }) => async () => { + logger3 == null ? void 0 : logger3.debug("@aws-sdk/token-providers - fromStatic"); + if (!token || !token.token) { + throw new import_property_provider2.TokenProviderError(`Please pass a valid token to fromStatic`, false); + } + return token; + }, "fromStatic"); + var nodeProvider = /* @__PURE__ */ __name((init2 = {}) => (0, import_property_provider2.memoize)( + (0, import_property_provider2.chain)(fromSso(init2), async () => { + throw new import_property_provider2.TokenProviderError("Could not load token from any providers", false); + }), + (token) => token.expiration !== void 0 && token.expiration.getTime() - Date.now() < 3e5, + (token) => token.expiration !== void 0 + ), "nodeProvider"); + } +}); + +// ../node_modules/.pnpm/@aws-sdk+credential-provider-sso@3.817.0/node_modules/@aws-sdk/credential-provider-sso/dist-cjs/index.js +var require_dist_cjs46 = __commonJS({ + "../node_modules/.pnpm/@aws-sdk+credential-provider-sso@3.817.0/node_modules/@aws-sdk/credential-provider-sso/dist-cjs/index.js"(exports2, module2) { + "use strict"; + var __defProp3 = Object.defineProperty; + var __getOwnPropDesc3 = Object.getOwnPropertyDescriptor; + var __getOwnPropNames3 = Object.getOwnPropertyNames; + var __hasOwnProp3 = Object.prototype.hasOwnProperty; + var __name = (target, value) => __defProp3(target, "name", { value, configurable: true }); + var __esm2 = (fn, res) => function __init() { + return fn && (res = (0, fn[__getOwnPropNames3(fn)[0]])(fn = 0)), res; + }; + var __export2 = (target, all) => { + for (var name in all) + __defProp3(target, name, { get: all[name], enumerable: true }); + }; + var __copyProps3 = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames3(from)) + if (!__hasOwnProp3.call(to, key) && key !== except) + __defProp3(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc3(from, key)) || desc.enumerable }); + } + return to; + }; + var __toCommonJS2 = (mod) => __copyProps3(__defProp3({}, "__esModule", { value: true }), mod); + var loadSso_exports = {}; + __export2(loadSso_exports, { + GetRoleCredentialsCommand: () => import_client_sso.GetRoleCredentialsCommand, + SSOClient: () => import_client_sso.SSOClient + }); + var import_client_sso; + var init_loadSso = __esm2({ + "src/loadSso.ts"() { + "use strict"; + import_client_sso = require_dist_cjs44(); + } + }); + var index_exports = {}; + __export2(index_exports, { + fromSSO: () => fromSSO, + isSsoProfile: () => isSsoProfile, + validateSsoProfile: () => validateSsoProfile + }); + module2.exports = __toCommonJS2(index_exports); + var isSsoProfile = /* @__PURE__ */ __name((arg) => arg && (typeof arg.sso_start_url === "string" || typeof arg.sso_account_id === "string" || typeof arg.sso_session === "string" || typeof arg.sso_region === "string" || typeof arg.sso_role_name === "string"), "isSsoProfile"); + var import_client3 = (init_client(), __toCommonJS(client_exports)); + var import_token_providers = require_dist_cjs45(); + var import_property_provider2 = require_dist_cjs20(); + var import_shared_ini_file_loader = require_dist_cjs28(); + var SHOULD_FAIL_CREDENTIAL_CHAIN = false; + var resolveSSOCredentials = /* @__PURE__ */ __name(async ({ + ssoStartUrl, + ssoSession, + ssoAccountId, + ssoRegion, + ssoRoleName, + ssoClient, + clientConfig, + parentClientConfig, + profile, + logger: logger3 + }) => { + let token; + const refreshMessage = `To refresh this SSO session run aws sso login with the corresponding profile.`; + if (ssoSession) { + try { + const _token = await (0, import_token_providers.fromSso)({ profile })(); + token = { + accessToken: _token.token, + expiresAt: new Date(_token.expiration).toISOString() + }; + } catch (e4) { + throw new import_property_provider2.CredentialsProviderError(e4.message, { + tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN, + logger: logger3 + }); + } + } else { + try { + token = await (0, import_shared_ini_file_loader.getSSOTokenFromFile)(ssoStartUrl); + } catch (e4) { + throw new import_property_provider2.CredentialsProviderError(`The SSO session associated with this profile is invalid. ${refreshMessage}`, { + tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN, + logger: logger3 + }); + } + } + if (new Date(token.expiresAt).getTime() - Date.now() <= 0) { + throw new import_property_provider2.CredentialsProviderError(`The SSO session associated with this profile has expired. ${refreshMessage}`, { + tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN, + logger: logger3 + }); + } + const { accessToken } = token; + const { SSOClient: SSOClient2, GetRoleCredentialsCommand: GetRoleCredentialsCommand2 } = await Promise.resolve().then(() => (init_loadSso(), loadSso_exports)); + const sso = ssoClient || new SSOClient2( + Object.assign({}, clientConfig ?? {}, { + logger: (clientConfig == null ? void 0 : clientConfig.logger) ?? (parentClientConfig == null ? void 0 : parentClientConfig.logger), + region: (clientConfig == null ? void 0 : clientConfig.region) ?? ssoRegion + }) + ); + let ssoResp; + try { + ssoResp = await sso.send( + new GetRoleCredentialsCommand2({ + accountId: ssoAccountId, + roleName: ssoRoleName, + accessToken + }) + ); + } catch (e4) { + throw new import_property_provider2.CredentialsProviderError(e4, { + tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN, + logger: logger3 + }); + } + const { + roleCredentials: { accessKeyId, secretAccessKey, sessionToken, expiration, credentialScope, accountId } = {} + } = ssoResp; + if (!accessKeyId || !secretAccessKey || !sessionToken || !expiration) { + throw new import_property_provider2.CredentialsProviderError("SSO returns an invalid temporary credential.", { + tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN, + logger: logger3 + }); + } + const credentials2 = { + accessKeyId, + secretAccessKey, + sessionToken, + expiration: new Date(expiration), + ...credentialScope && { credentialScope }, + ...accountId && { accountId } + }; + if (ssoSession) { + (0, import_client3.setCredentialFeature)(credentials2, "CREDENTIALS_SSO", "s"); + } else { + (0, import_client3.setCredentialFeature)(credentials2, "CREDENTIALS_SSO_LEGACY", "u"); + } + return credentials2; + }, "resolveSSOCredentials"); + var validateSsoProfile = /* @__PURE__ */ __name((profile, logger3) => { + const { sso_start_url, sso_account_id, sso_region, sso_role_name } = profile; + if (!sso_start_url || !sso_account_id || !sso_region || !sso_role_name) { + throw new import_property_provider2.CredentialsProviderError( + `Profile is configured with invalid SSO credentials. Required parameters "sso_account_id", "sso_region", "sso_role_name", "sso_start_url". Got ${Object.keys(profile).join( + ", " + )} +Reference: https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sso.html`, + { tryNextLink: false, logger: logger3 } + ); + } + return profile; + }, "validateSsoProfile"); + var fromSSO = /* @__PURE__ */ __name((init2 = {}) => async ({ callerClientConfig } = {}) => { + var _a2; + (_a2 = init2.logger) == null ? void 0 : _a2.debug("@aws-sdk/credential-provider-sso - fromSSO"); + const { ssoStartUrl, ssoAccountId, ssoRegion, ssoRoleName, ssoSession } = init2; + const { ssoClient } = init2; + const profileName = (0, import_shared_ini_file_loader.getProfileName)({ + profile: init2.profile ?? (callerClientConfig == null ? void 0 : callerClientConfig.profile) + }); + if (!ssoStartUrl && !ssoAccountId && !ssoRegion && !ssoRoleName && !ssoSession) { + const profiles = await (0, import_shared_ini_file_loader.parseKnownFiles)(init2); + const profile = profiles[profileName]; + if (!profile) { + throw new import_property_provider2.CredentialsProviderError(`Profile ${profileName} was not found.`, { logger: init2.logger }); + } + if (!isSsoProfile(profile)) { + throw new import_property_provider2.CredentialsProviderError(`Profile ${profileName} is not configured with SSO credentials.`, { + logger: init2.logger + }); + } + if (profile == null ? void 0 : profile.sso_session) { + const ssoSessions = await (0, import_shared_ini_file_loader.loadSsoSessionData)(init2); + const session = ssoSessions[profile.sso_session]; + const conflictMsg = ` configurations in profile ${profileName} and sso-session ${profile.sso_session}`; + if (ssoRegion && ssoRegion !== session.sso_region) { + throw new import_property_provider2.CredentialsProviderError(`Conflicting SSO region` + conflictMsg, { + tryNextLink: false, + logger: init2.logger + }); + } + if (ssoStartUrl && ssoStartUrl !== session.sso_start_url) { + throw new import_property_provider2.CredentialsProviderError(`Conflicting SSO start_url` + conflictMsg, { + tryNextLink: false, + logger: init2.logger + }); + } + profile.sso_region = session.sso_region; + profile.sso_start_url = session.sso_start_url; + } + const { sso_start_url, sso_account_id, sso_region, sso_role_name, sso_session } = validateSsoProfile( + profile, + init2.logger + ); + return resolveSSOCredentials({ + ssoStartUrl: sso_start_url, + ssoSession: sso_session, + ssoAccountId: sso_account_id, + ssoRegion: sso_region, + ssoRoleName: sso_role_name, + ssoClient, + clientConfig: init2.clientConfig, + parentClientConfig: init2.parentClientConfig, + profile: profileName + }); + } else if (!ssoStartUrl || !ssoAccountId || !ssoRegion || !ssoRoleName) { + throw new import_property_provider2.CredentialsProviderError( + 'Incomplete configuration. The fromSSO() argument hash must include "ssoStartUrl", "ssoAccountId", "ssoRegion", "ssoRoleName"', + { tryNextLink: false, logger: init2.logger } + ); + } else { + return resolveSSOCredentials({ + ssoStartUrl, + ssoSession, + ssoAccountId, + ssoRegion, + ssoRoleName, + ssoClient, + clientConfig: init2.clientConfig, + parentClientConfig: init2.parentClientConfig, + profile: profileName + }); + } + }, "fromSSO"); + } +}); + +// ../node_modules/.pnpm/@aws-sdk+nested-clients@3.817.0/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/auth/httpAuthSchemeProvider.js +function createAwsAuthSigv4HttpAuthOption2(authParameters) { + return { + schemeId: "aws.auth#sigv4", + signingProperties: { + name: "sts", + region: authParameters.region + }, + propertiesExtractor: (config, context) => ({ + signingProperties: { + config, + context + } + }) + }; +} +function createSmithyApiNoAuthHttpAuthOption2(authParameters) { + return { + schemeId: "smithy.api#noAuth" + }; +} +var import_util_middleware6, defaultSTSHttpAuthSchemeParametersProvider, defaultSTSHttpAuthSchemeProvider, resolveStsAuthConfig, resolveHttpAuthSchemeConfig2; +var init_httpAuthSchemeProvider2 = __esm({ + "../node_modules/.pnpm/@aws-sdk+nested-clients@3.817.0/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/auth/httpAuthSchemeProvider.js"() { + init_dist_es2(); + import_util_middleware6 = __toESM(require_dist_cjs6()); + init_STSClient(); + defaultSTSHttpAuthSchemeParametersProvider = async (config, context, input) => { + return { + operation: (0, import_util_middleware6.getSmithyContext)(context).operation, + region: await (0, import_util_middleware6.normalizeProvider)(config.region)() || (() => { + throw new Error("expected `region` to be configured for `aws.auth#sigv4`"); + })() + }; + }; + defaultSTSHttpAuthSchemeProvider = (authParameters) => { + const options = []; + switch (authParameters.operation) { + case "AssumeRoleWithWebIdentity": { + options.push(createSmithyApiNoAuthHttpAuthOption2(authParameters)); + break; + } + default: { + options.push(createAwsAuthSigv4HttpAuthOption2(authParameters)); + } + } + return options; + }; + resolveStsAuthConfig = (input) => Object.assign(input, { + stsClientCtor: STSClient + }); + resolveHttpAuthSchemeConfig2 = (config) => { + const config_0 = resolveStsAuthConfig(config); + const config_1 = resolveAwsSdkSigV4Config(config_0); + return Object.assign(config_1, { + authSchemePreference: (0, import_util_middleware6.normalizeProvider)(config.authSchemePreference ?? []) + }); + }; + } +}); + +// ../node_modules/.pnpm/@aws-sdk+nested-clients@3.817.0/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/endpoint/EndpointParameters.js +var resolveClientEndpointParameters2, commonParams2; +var init_EndpointParameters2 = __esm({ + "../node_modules/.pnpm/@aws-sdk+nested-clients@3.817.0/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/endpoint/EndpointParameters.js"() { + resolveClientEndpointParameters2 = (options) => { + return Object.assign(options, { + useDualstackEndpoint: options.useDualstackEndpoint ?? false, + useFipsEndpoint: options.useFipsEndpoint ?? false, + useGlobalEndpoint: options.useGlobalEndpoint ?? false, + defaultSigningName: "sts" + }); + }; + commonParams2 = { + UseGlobalEndpoint: { type: "builtInParams", name: "useGlobalEndpoint" }, + UseFIPS: { type: "builtInParams", name: "useFipsEndpoint" }, + Endpoint: { type: "builtInParams", name: "endpoint" }, + Region: { type: "builtInParams", name: "region" }, + UseDualStack: { type: "builtInParams", name: "useDualstackEndpoint" } + }; + } +}); + +// ../node_modules/.pnpm/@aws-sdk+nested-clients@3.817.0/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/endpoint/ruleset.js +var F2, G, H, I, J, a2, b2, c2, d2, e3, f4, g2, h3, i3, j2, k2, l2, m3, n2, o2, p2, q2, r3, s3, t3, u2, v2, w2, x3, y, z, A2, B, C, D, E, _data2, ruleSet2; +var init_ruleset2 = __esm({ + "../node_modules/.pnpm/@aws-sdk+nested-clients@3.817.0/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/endpoint/ruleset.js"() { + F2 = "required"; + G = "type"; + H = "fn"; + I = "argv"; + J = "ref"; + a2 = false; + b2 = true; + c2 = "booleanEquals"; + d2 = "stringEquals"; + e3 = "sigv4"; + f4 = "sts"; + g2 = "us-east-1"; + h3 = "endpoint"; + i3 = "https://sts.{Region}.{PartitionResult#dnsSuffix}"; + j2 = "tree"; + k2 = "error"; + l2 = "getAttr"; + m3 = { [F2]: false, [G]: "String" }; + n2 = { [F2]: true, "default": false, [G]: "Boolean" }; + o2 = { [J]: "Endpoint" }; + p2 = { [H]: "isSet", [I]: [{ [J]: "Region" }] }; + q2 = { [J]: "Region" }; + r3 = { [H]: "aws.partition", [I]: [q2], "assign": "PartitionResult" }; + s3 = { [J]: "UseFIPS" }; + t3 = { [J]: "UseDualStack" }; + u2 = { "url": "https://sts.amazonaws.com", "properties": { "authSchemes": [{ "name": e3, "signingName": f4, "signingRegion": g2 }] }, "headers": {} }; + v2 = {}; + w2 = { "conditions": [{ [H]: d2, [I]: [q2, "aws-global"] }], [h3]: u2, [G]: h3 }; + x3 = { [H]: c2, [I]: [s3, true] }; + y = { [H]: c2, [I]: [t3, true] }; + z = { [H]: l2, [I]: [{ [J]: "PartitionResult" }, "supportsFIPS"] }; + A2 = { [J]: "PartitionResult" }; + B = { [H]: c2, [I]: [true, { [H]: l2, [I]: [A2, "supportsDualStack"] }] }; + C = [{ [H]: "isSet", [I]: [o2] }]; + D = [x3]; + E = [y]; + _data2 = { version: "1.0", parameters: { Region: m3, UseDualStack: n2, UseFIPS: n2, Endpoint: m3, UseGlobalEndpoint: n2 }, rules: [{ conditions: [{ [H]: c2, [I]: [{ [J]: "UseGlobalEndpoint" }, b2] }, { [H]: "not", [I]: C }, p2, r3, { [H]: c2, [I]: [s3, a2] }, { [H]: c2, [I]: [t3, a2] }], rules: [{ conditions: [{ [H]: d2, [I]: [q2, "ap-northeast-1"] }], endpoint: u2, [G]: h3 }, { conditions: [{ [H]: d2, [I]: [q2, "ap-south-1"] }], endpoint: u2, [G]: h3 }, { conditions: [{ [H]: d2, [I]: [q2, "ap-southeast-1"] }], endpoint: u2, [G]: h3 }, { conditions: [{ [H]: d2, [I]: [q2, "ap-southeast-2"] }], endpoint: u2, [G]: h3 }, w2, { conditions: [{ [H]: d2, [I]: [q2, "ca-central-1"] }], endpoint: u2, [G]: h3 }, { conditions: [{ [H]: d2, [I]: [q2, "eu-central-1"] }], endpoint: u2, [G]: h3 }, { conditions: [{ [H]: d2, [I]: [q2, "eu-north-1"] }], endpoint: u2, [G]: h3 }, { conditions: [{ [H]: d2, [I]: [q2, "eu-west-1"] }], endpoint: u2, [G]: h3 }, { conditions: [{ [H]: d2, [I]: [q2, "eu-west-2"] }], endpoint: u2, [G]: h3 }, { conditions: [{ [H]: d2, [I]: [q2, "eu-west-3"] }], endpoint: u2, [G]: h3 }, { conditions: [{ [H]: d2, [I]: [q2, "sa-east-1"] }], endpoint: u2, [G]: h3 }, { conditions: [{ [H]: d2, [I]: [q2, g2] }], endpoint: u2, [G]: h3 }, { conditions: [{ [H]: d2, [I]: [q2, "us-east-2"] }], endpoint: u2, [G]: h3 }, { conditions: [{ [H]: d2, [I]: [q2, "us-west-1"] }], endpoint: u2, [G]: h3 }, { conditions: [{ [H]: d2, [I]: [q2, "us-west-2"] }], endpoint: u2, [G]: h3 }, { endpoint: { url: i3, properties: { authSchemes: [{ name: e3, signingName: f4, signingRegion: "{Region}" }] }, headers: v2 }, [G]: h3 }], [G]: j2 }, { conditions: C, rules: [{ conditions: D, error: "Invalid Configuration: FIPS and custom endpoint are not supported", [G]: k2 }, { conditions: E, error: "Invalid Configuration: Dualstack and custom endpoint are not supported", [G]: k2 }, { endpoint: { url: o2, properties: v2, headers: v2 }, [G]: h3 }], [G]: j2 }, { conditions: [p2], rules: [{ conditions: [r3], rules: [{ conditions: [x3, y], rules: [{ conditions: [{ [H]: c2, [I]: [b2, z] }, B], rules: [{ endpoint: { url: "https://sts-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", properties: v2, headers: v2 }, [G]: h3 }], [G]: j2 }, { error: "FIPS and DualStack are enabled, but this partition does not support one or both", [G]: k2 }], [G]: j2 }, { conditions: D, rules: [{ conditions: [{ [H]: c2, [I]: [z, b2] }], rules: [{ conditions: [{ [H]: d2, [I]: [{ [H]: l2, [I]: [A2, "name"] }, "aws-us-gov"] }], endpoint: { url: "https://sts.{Region}.amazonaws.com", properties: v2, headers: v2 }, [G]: h3 }, { endpoint: { url: "https://sts-fips.{Region}.{PartitionResult#dnsSuffix}", properties: v2, headers: v2 }, [G]: h3 }], [G]: j2 }, { error: "FIPS is enabled but this partition does not support FIPS", [G]: k2 }], [G]: j2 }, { conditions: E, rules: [{ conditions: [B], rules: [{ endpoint: { url: "https://sts.{Region}.{PartitionResult#dualStackDnsSuffix}", properties: v2, headers: v2 }, [G]: h3 }], [G]: j2 }, { error: "DualStack is enabled but this partition does not support DualStack", [G]: k2 }], [G]: j2 }, w2, { endpoint: { url: i3, properties: v2, headers: v2 }, [G]: h3 }], [G]: j2 }], [G]: j2 }, { error: "Invalid Configuration: Missing Region", [G]: k2 }] }; + ruleSet2 = _data2; + } +}); + +// ../node_modules/.pnpm/@aws-sdk+nested-clients@3.817.0/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/endpoint/endpointResolver.js +var import_util_endpoints3, import_util_endpoints4, cache2, defaultEndpointResolver2; +var init_endpointResolver2 = __esm({ + "../node_modules/.pnpm/@aws-sdk+nested-clients@3.817.0/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/endpoint/endpointResolver.js"() { + import_util_endpoints3 = __toESM(require_dist_cjs19()); + import_util_endpoints4 = __toESM(require_dist_cjs18()); + init_ruleset2(); + cache2 = new import_util_endpoints4.EndpointCache({ + size: 50, + params: ["Endpoint", "Region", "UseDualStack", "UseFIPS", "UseGlobalEndpoint"] + }); + defaultEndpointResolver2 = (endpointParams, context = {}) => { + return cache2.get(endpointParams, () => (0, import_util_endpoints4.resolveEndpoint)(ruleSet2, { + endpointParams, + logger: context.logger + })); + }; + import_util_endpoints4.customEndpointFunctions.aws = import_util_endpoints3.awsEndpointFunctions; + } +}); + +// ../node_modules/.pnpm/@aws-sdk+nested-clients@3.817.0/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/runtimeConfig.shared.js +var import_smithy_client14, import_url_parser2, import_util_base644, import_util_utf84, getRuntimeConfig3; +var init_runtimeConfig_shared2 = __esm({ + "../node_modules/.pnpm/@aws-sdk+nested-clients@3.817.0/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/runtimeConfig.shared.js"() { + init_dist_es2(); + init_dist_es(); + import_smithy_client14 = __toESM(require_dist_cjs23()); + import_url_parser2 = __toESM(require_dist_cjs31()); + import_util_base644 = __toESM(require_dist_cjs11()); + import_util_utf84 = __toESM(require_dist_cjs10()); + init_httpAuthSchemeProvider2(); + init_endpointResolver2(); + getRuntimeConfig3 = (config) => { + return { + apiVersion: "2011-06-15", + base64Decoder: (config == null ? void 0 : config.base64Decoder) ?? import_util_base644.fromBase64, + base64Encoder: (config == null ? void 0 : config.base64Encoder) ?? import_util_base644.toBase64, + disableHostPrefix: (config == null ? void 0 : config.disableHostPrefix) ?? false, + endpointProvider: (config == null ? void 0 : config.endpointProvider) ?? defaultEndpointResolver2, + extensions: (config == null ? void 0 : config.extensions) ?? [], + httpAuthSchemeProvider: (config == null ? void 0 : config.httpAuthSchemeProvider) ?? defaultSTSHttpAuthSchemeProvider, + httpAuthSchemes: (config == null ? void 0 : config.httpAuthSchemes) ?? [ + { + schemeId: "aws.auth#sigv4", + identityProvider: (ipc) => ipc.getIdentityProvider("aws.auth#sigv4"), + signer: new AwsSdkSigV4Signer() + }, + { + schemeId: "smithy.api#noAuth", + identityProvider: (ipc) => ipc.getIdentityProvider("smithy.api#noAuth") || (async () => ({})), + signer: new NoAuthSigner() + } + ], + logger: (config == null ? void 0 : config.logger) ?? new import_smithy_client14.NoOpLogger(), + serviceId: (config == null ? void 0 : config.serviceId) ?? "STS", + urlParser: (config == null ? void 0 : config.urlParser) ?? import_url_parser2.parseUrl, + utf8Decoder: (config == null ? void 0 : config.utf8Decoder) ?? import_util_utf84.fromUtf8, + utf8Encoder: (config == null ? void 0 : config.utf8Encoder) ?? import_util_utf84.toUtf8 + }; + }; + } +}); + +// ../node_modules/.pnpm/@aws-sdk+nested-clients@3.817.0/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/runtimeConfig.js +var import_util_user_agent_node2, import_config_resolver3, import_hash_node2, import_middleware_retry3, import_node_config_provider2, import_node_http_handler2, import_util_body_length_node2, import_util_retry2, import_smithy_client15, import_util_defaults_mode_node2, import_smithy_client16, getRuntimeConfig4; +var init_runtimeConfig2 = __esm({ + "../node_modules/.pnpm/@aws-sdk+nested-clients@3.817.0/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/runtimeConfig.js"() { + init_package(); + init_dist_es2(); + import_util_user_agent_node2 = __toESM(require_dist_cjs39()); + import_config_resolver3 = __toESM(require_dist_cjs26()); + init_dist_es(); + import_hash_node2 = __toESM(require_dist_cjs40()); + import_middleware_retry3 = __toESM(require_dist_cjs35()); + import_node_config_provider2 = __toESM(require_dist_cjs29()); + import_node_http_handler2 = __toESM(require_dist_cjs14()); + import_util_body_length_node2 = __toESM(require_dist_cjs41()); + import_util_retry2 = __toESM(require_dist_cjs34()); + init_runtimeConfig_shared2(); + import_smithy_client15 = __toESM(require_dist_cjs23()); + import_util_defaults_mode_node2 = __toESM(require_dist_cjs42()); + import_smithy_client16 = __toESM(require_dist_cjs23()); + getRuntimeConfig4 = (config) => { + (0, import_smithy_client16.emitWarningIfUnsupportedVersion)(process.version); + const defaultsMode = (0, import_util_defaults_mode_node2.resolveDefaultsModeConfig)(config); + const defaultConfigProvider = () => defaultsMode().then(import_smithy_client15.loadConfigsForDefaultMode); + const clientSharedValues = getRuntimeConfig3(config); + emitWarningIfUnsupportedVersion(process.version); + const loaderConfig = { + profile: config == null ? void 0 : config.profile, + logger: clientSharedValues.logger + }; + return { + ...clientSharedValues, + ...config, + runtime: "node", + defaultsMode, + authSchemePreference: (config == null ? void 0 : config.authSchemePreference) ?? (0, import_node_config_provider2.loadConfig)(NODE_AUTH_SCHEME_PREFERENCE_OPTIONS, loaderConfig), + bodyLengthChecker: (config == null ? void 0 : config.bodyLengthChecker) ?? import_util_body_length_node2.calculateBodyLength, + defaultUserAgentProvider: (config == null ? void 0 : config.defaultUserAgentProvider) ?? (0, import_util_user_agent_node2.createDefaultUserAgentProvider)({ serviceId: clientSharedValues.serviceId, clientVersion: package_default.version }), + httpAuthSchemes: (config == null ? void 0 : config.httpAuthSchemes) ?? [ + { + schemeId: "aws.auth#sigv4", + identityProvider: (ipc) => ipc.getIdentityProvider("aws.auth#sigv4") || (async (idProps) => await config.credentialDefaultProvider((idProps == null ? void 0 : idProps.__config) || {})()), + signer: new AwsSdkSigV4Signer() + }, + { + schemeId: "smithy.api#noAuth", + identityProvider: (ipc) => ipc.getIdentityProvider("smithy.api#noAuth") || (async () => ({})), + signer: new NoAuthSigner() + } + ], + maxAttempts: (config == null ? void 0 : config.maxAttempts) ?? (0, import_node_config_provider2.loadConfig)(import_middleware_retry3.NODE_MAX_ATTEMPT_CONFIG_OPTIONS, config), + region: (config == null ? void 0 : config.region) ?? (0, import_node_config_provider2.loadConfig)(import_config_resolver3.NODE_REGION_CONFIG_OPTIONS, { ...import_config_resolver3.NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig }), + requestHandler: import_node_http_handler2.NodeHttpHandler.create((config == null ? void 0 : config.requestHandler) ?? defaultConfigProvider), + retryMode: (config == null ? void 0 : config.retryMode) ?? (0, import_node_config_provider2.loadConfig)({ + ...import_middleware_retry3.NODE_RETRY_MODE_CONFIG_OPTIONS, + default: async () => (await defaultConfigProvider()).retryMode || import_util_retry2.DEFAULT_RETRY_MODE + }, config), + sha256: (config == null ? void 0 : config.sha256) ?? import_hash_node2.Hash.bind(null, "sha256"), + streamCollector: (config == null ? void 0 : config.streamCollector) ?? import_node_http_handler2.streamCollector, + useDualstackEndpoint: (config == null ? void 0 : config.useDualstackEndpoint) ?? (0, import_node_config_provider2.loadConfig)(import_config_resolver3.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, loaderConfig), + useFipsEndpoint: (config == null ? void 0 : config.useFipsEndpoint) ?? (0, import_node_config_provider2.loadConfig)(import_config_resolver3.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, loaderConfig), + userAgentAppId: (config == null ? void 0 : config.userAgentAppId) ?? (0, import_node_config_provider2.loadConfig)(import_util_user_agent_node2.NODE_APP_ID_CONFIG_OPTIONS, loaderConfig) + }; + }; + } +}); + +// ../node_modules/.pnpm/@aws-sdk+nested-clients@3.817.0/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/auth/httpAuthExtensionConfiguration.js +var getHttpAuthExtensionConfiguration2, resolveHttpAuthRuntimeConfig2; +var init_httpAuthExtensionConfiguration2 = __esm({ + "../node_modules/.pnpm/@aws-sdk+nested-clients@3.817.0/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/auth/httpAuthExtensionConfiguration.js"() { + getHttpAuthExtensionConfiguration2 = (runtimeConfig) => { + const _httpAuthSchemes = runtimeConfig.httpAuthSchemes; + let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider; + let _credentials = runtimeConfig.credentials; + return { + setHttpAuthScheme(httpAuthScheme) { + const index6 = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId); + if (index6 === -1) { + _httpAuthSchemes.push(httpAuthScheme); + } else { + _httpAuthSchemes.splice(index6, 1, httpAuthScheme); + } + }, + httpAuthSchemes() { + return _httpAuthSchemes; + }, + setHttpAuthSchemeProvider(httpAuthSchemeProvider) { + _httpAuthSchemeProvider = httpAuthSchemeProvider; + }, + httpAuthSchemeProvider() { + return _httpAuthSchemeProvider; + }, + setCredentials(credentials2) { + _credentials = credentials2; + }, + credentials() { + return _credentials; + } + }; + }; + resolveHttpAuthRuntimeConfig2 = (config) => { + return { + httpAuthSchemes: config.httpAuthSchemes(), + httpAuthSchemeProvider: config.httpAuthSchemeProvider(), + credentials: config.credentials() + }; + }; + } +}); + +// ../node_modules/.pnpm/@aws-sdk+nested-clients@3.817.0/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/runtimeExtensions.js +var import_region_config_resolver2, import_protocol_http13, import_smithy_client17, resolveRuntimeExtensions2; +var init_runtimeExtensions2 = __esm({ + "../node_modules/.pnpm/@aws-sdk+nested-clients@3.817.0/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/runtimeExtensions.js"() { + import_region_config_resolver2 = __toESM(require_dist_cjs43()); + import_protocol_http13 = __toESM(require_dist_cjs2()); + import_smithy_client17 = __toESM(require_dist_cjs23()); + init_httpAuthExtensionConfiguration2(); + resolveRuntimeExtensions2 = (runtimeConfig, extensions) => { + const extensionConfiguration = Object.assign((0, import_region_config_resolver2.getAwsRegionExtensionConfiguration)(runtimeConfig), (0, import_smithy_client17.getDefaultExtensionConfiguration)(runtimeConfig), (0, import_protocol_http13.getHttpHandlerExtensionConfiguration)(runtimeConfig), getHttpAuthExtensionConfiguration2(runtimeConfig)); + extensions.forEach((extension) => extension.configure(extensionConfiguration)); + return Object.assign(runtimeConfig, (0, import_region_config_resolver2.resolveAwsRegionExtensionConfiguration)(extensionConfiguration), (0, import_smithy_client17.resolveDefaultRuntimeConfig)(extensionConfiguration), (0, import_protocol_http13.resolveHttpHandlerRuntimeConfig)(extensionConfiguration), resolveHttpAuthRuntimeConfig2(extensionConfiguration)); + }; + } +}); + +// ../node_modules/.pnpm/@aws-sdk+nested-clients@3.817.0/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/STSClient.js +var import_middleware_host_header2, import_middleware_logger2, import_middleware_recursion_detection2, import_middleware_user_agent2, import_config_resolver4, import_middleware_content_length2, import_middleware_endpoint3, import_middleware_retry4, import_smithy_client18, STSClient; +var init_STSClient = __esm({ + "../node_modules/.pnpm/@aws-sdk+nested-clients@3.817.0/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/STSClient.js"() { + import_middleware_host_header2 = __toESM(require_dist_cjs3()); + import_middleware_logger2 = __toESM(require_dist_cjs4()); + import_middleware_recursion_detection2 = __toESM(require_dist_cjs5()); + import_middleware_user_agent2 = __toESM(require_dist_cjs24()); + import_config_resolver4 = __toESM(require_dist_cjs26()); + init_dist_es(); + import_middleware_content_length2 = __toESM(require_dist_cjs27()); + import_middleware_endpoint3 = __toESM(require_dist_cjs32()); + import_middleware_retry4 = __toESM(require_dist_cjs35()); + import_smithy_client18 = __toESM(require_dist_cjs23()); + init_httpAuthSchemeProvider2(); + init_EndpointParameters2(); + init_runtimeConfig2(); + init_runtimeExtensions2(); + STSClient = class extends import_smithy_client18.Client { + config; + constructor(...[configuration]) { + const _config_0 = getRuntimeConfig4(configuration || {}); + super(_config_0); + this.initConfig = _config_0; + const _config_1 = resolveClientEndpointParameters2(_config_0); + const _config_2 = (0, import_middleware_user_agent2.resolveUserAgentConfig)(_config_1); + const _config_3 = (0, import_middleware_retry4.resolveRetryConfig)(_config_2); + const _config_4 = (0, import_config_resolver4.resolveRegionConfig)(_config_3); + const _config_5 = (0, import_middleware_host_header2.resolveHostHeaderConfig)(_config_4); + const _config_6 = (0, import_middleware_endpoint3.resolveEndpointConfig)(_config_5); + const _config_7 = resolveHttpAuthSchemeConfig2(_config_6); + const _config_8 = resolveRuntimeExtensions2(_config_7, (configuration == null ? void 0 : configuration.extensions) || []); + this.config = _config_8; + this.middlewareStack.use((0, import_middleware_user_agent2.getUserAgentPlugin)(this.config)); + this.middlewareStack.use((0, import_middleware_retry4.getRetryPlugin)(this.config)); + this.middlewareStack.use((0, import_middleware_content_length2.getContentLengthPlugin)(this.config)); + this.middlewareStack.use((0, import_middleware_host_header2.getHostHeaderPlugin)(this.config)); + this.middlewareStack.use((0, import_middleware_logger2.getLoggerPlugin)(this.config)); + this.middlewareStack.use((0, import_middleware_recursion_detection2.getRecursionDetectionPlugin)(this.config)); + this.middlewareStack.use(getHttpAuthSchemeEndpointRuleSetPlugin(this.config, { + httpAuthSchemeParametersProvider: defaultSTSHttpAuthSchemeParametersProvider, + identityProviderConfigProvider: async (config) => new DefaultIdentityProviderConfig({ + "aws.auth#sigv4": config.credentials + }) + })); + this.middlewareStack.use(getHttpSigningPlugin(this.config)); + } + destroy() { + super.destroy(); + } + }; + } +}); + +// ../node_modules/.pnpm/@aws-sdk+nested-clients@3.817.0/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/models/STSServiceException.js +var import_smithy_client19, STSServiceException; +var init_STSServiceException = __esm({ + "../node_modules/.pnpm/@aws-sdk+nested-clients@3.817.0/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/models/STSServiceException.js"() { + import_smithy_client19 = __toESM(require_dist_cjs23()); + STSServiceException = class _STSServiceException extends import_smithy_client19.ServiceException { + constructor(options) { + super(options); + Object.setPrototypeOf(this, _STSServiceException.prototype); + } + }; + } +}); + +// ../node_modules/.pnpm/@aws-sdk+nested-clients@3.817.0/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/models/models_0.js +var import_smithy_client20, CredentialsFilterSensitiveLog, AssumeRoleResponseFilterSensitiveLog, ExpiredTokenException2, MalformedPolicyDocumentException, PackedPolicyTooLargeException, RegionDisabledException, IDPRejectedClaimException, InvalidIdentityTokenException, AssumeRoleWithWebIdentityRequestFilterSensitiveLog, AssumeRoleWithWebIdentityResponseFilterSensitiveLog, IDPCommunicationErrorException; +var init_models_02 = __esm({ + "../node_modules/.pnpm/@aws-sdk+nested-clients@3.817.0/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/models/models_0.js"() { + import_smithy_client20 = __toESM(require_dist_cjs23()); + init_STSServiceException(); + CredentialsFilterSensitiveLog = (obj) => ({ + ...obj, + ...obj.SecretAccessKey && { SecretAccessKey: import_smithy_client20.SENSITIVE_STRING } + }); + AssumeRoleResponseFilterSensitiveLog = (obj) => ({ + ...obj, + ...obj.Credentials && { Credentials: CredentialsFilterSensitiveLog(obj.Credentials) } + }); + ExpiredTokenException2 = class _ExpiredTokenException extends STSServiceException { + name = "ExpiredTokenException"; + $fault = "client"; + constructor(opts) { + super({ + name: "ExpiredTokenException", + $fault: "client", + ...opts + }); + Object.setPrototypeOf(this, _ExpiredTokenException.prototype); + } + }; + MalformedPolicyDocumentException = class _MalformedPolicyDocumentException extends STSServiceException { + name = "MalformedPolicyDocumentException"; + $fault = "client"; + constructor(opts) { + super({ + name: "MalformedPolicyDocumentException", + $fault: "client", + ...opts + }); + Object.setPrototypeOf(this, _MalformedPolicyDocumentException.prototype); + } + }; + PackedPolicyTooLargeException = class _PackedPolicyTooLargeException extends STSServiceException { + name = "PackedPolicyTooLargeException"; + $fault = "client"; + constructor(opts) { + super({ + name: "PackedPolicyTooLargeException", + $fault: "client", + ...opts + }); + Object.setPrototypeOf(this, _PackedPolicyTooLargeException.prototype); + } + }; + RegionDisabledException = class _RegionDisabledException extends STSServiceException { + name = "RegionDisabledException"; + $fault = "client"; + constructor(opts) { + super({ + name: "RegionDisabledException", + $fault: "client", + ...opts + }); + Object.setPrototypeOf(this, _RegionDisabledException.prototype); + } + }; + IDPRejectedClaimException = class _IDPRejectedClaimException extends STSServiceException { + name = "IDPRejectedClaimException"; + $fault = "client"; + constructor(opts) { + super({ + name: "IDPRejectedClaimException", + $fault: "client", + ...opts + }); + Object.setPrototypeOf(this, _IDPRejectedClaimException.prototype); + } + }; + InvalidIdentityTokenException = class _InvalidIdentityTokenException extends STSServiceException { + name = "InvalidIdentityTokenException"; + $fault = "client"; + constructor(opts) { + super({ + name: "InvalidIdentityTokenException", + $fault: "client", + ...opts + }); + Object.setPrototypeOf(this, _InvalidIdentityTokenException.prototype); + } + }; + AssumeRoleWithWebIdentityRequestFilterSensitiveLog = (obj) => ({ + ...obj, + ...obj.WebIdentityToken && { WebIdentityToken: import_smithy_client20.SENSITIVE_STRING } + }); + AssumeRoleWithWebIdentityResponseFilterSensitiveLog = (obj) => ({ + ...obj, + ...obj.Credentials && { Credentials: CredentialsFilterSensitiveLog(obj.Credentials) } + }); + IDPCommunicationErrorException = class _IDPCommunicationErrorException extends STSServiceException { + name = "IDPCommunicationErrorException"; + $fault = "client"; + constructor(opts) { + super({ + name: "IDPCommunicationErrorException", + $fault: "client", + ...opts + }); + Object.setPrototypeOf(this, _IDPCommunicationErrorException.prototype); + } + }; + } +}); + +// ../node_modules/.pnpm/@aws-sdk+nested-clients@3.817.0/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/protocols/Aws_query.js +var import_protocol_http14, import_smithy_client21, se_AssumeRoleCommand, se_AssumeRoleWithWebIdentityCommand, de_AssumeRoleCommand, de_AssumeRoleWithWebIdentityCommand, de_CommandError2, de_ExpiredTokenExceptionRes2, de_IDPCommunicationErrorExceptionRes, de_IDPRejectedClaimExceptionRes, de_InvalidIdentityTokenExceptionRes, de_MalformedPolicyDocumentExceptionRes, de_PackedPolicyTooLargeExceptionRes, de_RegionDisabledExceptionRes, se_AssumeRoleRequest, se_AssumeRoleWithWebIdentityRequest, se_policyDescriptorListType, se_PolicyDescriptorType, se_ProvidedContext, se_ProvidedContextsListType, se_Tag, se_tagKeyListType, se_tagListType, de_AssumedRoleUser, de_AssumeRoleResponse, de_AssumeRoleWithWebIdentityResponse, de_Credentials, de_ExpiredTokenException, de_IDPCommunicationErrorException, de_IDPRejectedClaimException, de_InvalidIdentityTokenException, de_MalformedPolicyDocumentException, de_PackedPolicyTooLargeException, de_RegionDisabledException, deserializeMetadata2, throwDefaultError2, buildHttpRpcRequest, SHARED_HEADERS, _2, _A, _AKI, _AR, _ARI, _ARU, _ARWWI, _Ar, _Au, _C, _CA, _DS, _E, _EI, _K, _P, _PA, _PAr, _PC, _PI, _PPS, _Pr, _RA, _RSN, _SAK, _SFWIT, _SI, _SN, _ST, _T, _TC, _TTK, _V, _Va, _WIT, _a, _m, buildFormUrlencodedString, loadQueryErrorCode; +var init_Aws_query = __esm({ + "../node_modules/.pnpm/@aws-sdk+nested-clients@3.817.0/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/protocols/Aws_query.js"() { + init_dist_es2(); + import_protocol_http14 = __toESM(require_dist_cjs2()); + import_smithy_client21 = __toESM(require_dist_cjs23()); + init_models_02(); + init_STSServiceException(); + se_AssumeRoleCommand = async (input, context) => { + const headers = SHARED_HEADERS; + let body; + body = buildFormUrlencodedString({ + ...se_AssumeRoleRequest(input, context), + [_A]: _AR, + [_V]: _2 + }); + return buildHttpRpcRequest(context, headers, "/", void 0, body); + }; + se_AssumeRoleWithWebIdentityCommand = async (input, context) => { + const headers = SHARED_HEADERS; + let body; + body = buildFormUrlencodedString({ + ...se_AssumeRoleWithWebIdentityRequest(input, context), + [_A]: _ARWWI, + [_V]: _2 + }); + return buildHttpRpcRequest(context, headers, "/", void 0, body); + }; + de_AssumeRoleCommand = async (output, context) => { + if (output.statusCode >= 300) { + return de_CommandError2(output, context); + } + const data = await parseXmlBody(output.body, context); + let contents = {}; + contents = de_AssumeRoleResponse(data.AssumeRoleResult, context); + const response = { + $metadata: deserializeMetadata2(output), + ...contents + }; + return response; + }; + de_AssumeRoleWithWebIdentityCommand = async (output, context) => { + if (output.statusCode >= 300) { + return de_CommandError2(output, context); + } + const data = await parseXmlBody(output.body, context); + let contents = {}; + contents = de_AssumeRoleWithWebIdentityResponse(data.AssumeRoleWithWebIdentityResult, context); + const response = { + $metadata: deserializeMetadata2(output), + ...contents + }; + return response; + }; + de_CommandError2 = async (output, context) => { + const parsedOutput = { + ...output, + body: await parseXmlErrorBody(output.body, context) + }; + const errorCode = loadQueryErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "ExpiredTokenException": + case "com.amazonaws.sts#ExpiredTokenException": + throw await de_ExpiredTokenExceptionRes2(parsedOutput, context); + case "MalformedPolicyDocument": + case "com.amazonaws.sts#MalformedPolicyDocumentException": + throw await de_MalformedPolicyDocumentExceptionRes(parsedOutput, context); + case "PackedPolicyTooLarge": + case "com.amazonaws.sts#PackedPolicyTooLargeException": + throw await de_PackedPolicyTooLargeExceptionRes(parsedOutput, context); + case "RegionDisabledException": + case "com.amazonaws.sts#RegionDisabledException": + throw await de_RegionDisabledExceptionRes(parsedOutput, context); + case "IDPCommunicationError": + case "com.amazonaws.sts#IDPCommunicationErrorException": + throw await de_IDPCommunicationErrorExceptionRes(parsedOutput, context); + case "IDPRejectedClaim": + case "com.amazonaws.sts#IDPRejectedClaimException": + throw await de_IDPRejectedClaimExceptionRes(parsedOutput, context); + case "InvalidIdentityToken": + case "com.amazonaws.sts#InvalidIdentityTokenException": + throw await de_InvalidIdentityTokenExceptionRes(parsedOutput, context); + default: + const parsedBody = parsedOutput.body; + return throwDefaultError2({ + output, + parsedBody: parsedBody.Error, + errorCode + }); + } + }; + de_ExpiredTokenExceptionRes2 = async (parsedOutput, context) => { + const body = parsedOutput.body; + const deserialized = de_ExpiredTokenException(body.Error, context); + const exception = new ExpiredTokenException2({ + $metadata: deserializeMetadata2(parsedOutput), + ...deserialized + }); + return (0, import_smithy_client21.decorateServiceException)(exception, body); + }; + de_IDPCommunicationErrorExceptionRes = async (parsedOutput, context) => { + const body = parsedOutput.body; + const deserialized = de_IDPCommunicationErrorException(body.Error, context); + const exception = new IDPCommunicationErrorException({ + $metadata: deserializeMetadata2(parsedOutput), + ...deserialized + }); + return (0, import_smithy_client21.decorateServiceException)(exception, body); + }; + de_IDPRejectedClaimExceptionRes = async (parsedOutput, context) => { + const body = parsedOutput.body; + const deserialized = de_IDPRejectedClaimException(body.Error, context); + const exception = new IDPRejectedClaimException({ + $metadata: deserializeMetadata2(parsedOutput), + ...deserialized + }); + return (0, import_smithy_client21.decorateServiceException)(exception, body); + }; + de_InvalidIdentityTokenExceptionRes = async (parsedOutput, context) => { + const body = parsedOutput.body; + const deserialized = de_InvalidIdentityTokenException(body.Error, context); + const exception = new InvalidIdentityTokenException({ + $metadata: deserializeMetadata2(parsedOutput), + ...deserialized + }); + return (0, import_smithy_client21.decorateServiceException)(exception, body); + }; + de_MalformedPolicyDocumentExceptionRes = async (parsedOutput, context) => { + const body = parsedOutput.body; + const deserialized = de_MalformedPolicyDocumentException(body.Error, context); + const exception = new MalformedPolicyDocumentException({ + $metadata: deserializeMetadata2(parsedOutput), + ...deserialized + }); + return (0, import_smithy_client21.decorateServiceException)(exception, body); + }; + de_PackedPolicyTooLargeExceptionRes = async (parsedOutput, context) => { + const body = parsedOutput.body; + const deserialized = de_PackedPolicyTooLargeException(body.Error, context); + const exception = new PackedPolicyTooLargeException({ + $metadata: deserializeMetadata2(parsedOutput), + ...deserialized + }); + return (0, import_smithy_client21.decorateServiceException)(exception, body); + }; + de_RegionDisabledExceptionRes = async (parsedOutput, context) => { + const body = parsedOutput.body; + const deserialized = de_RegionDisabledException(body.Error, context); + const exception = new RegionDisabledException({ + $metadata: deserializeMetadata2(parsedOutput), + ...deserialized + }); + return (0, import_smithy_client21.decorateServiceException)(exception, body); + }; + se_AssumeRoleRequest = (input, context) => { + var _a2, _b, _c, _d; + const entries = {}; + if (input[_RA] != null) { + entries[_RA] = input[_RA]; + } + if (input[_RSN] != null) { + entries[_RSN] = input[_RSN]; + } + if (input[_PA] != null) { + const memberEntries = se_policyDescriptorListType(input[_PA], context); + if (((_a2 = input[_PA]) == null ? void 0 : _a2.length) === 0) { + entries.PolicyArns = []; + } + Object.entries(memberEntries).forEach(([key, value]) => { + const loc = `PolicyArns.${key}`; + entries[loc] = value; + }); + } + if (input[_P] != null) { + entries[_P] = input[_P]; + } + if (input[_DS] != null) { + entries[_DS] = input[_DS]; + } + if (input[_T] != null) { + const memberEntries = se_tagListType(input[_T], context); + if (((_b = input[_T]) == null ? void 0 : _b.length) === 0) { + entries.Tags = []; + } + Object.entries(memberEntries).forEach(([key, value]) => { + const loc = `Tags.${key}`; + entries[loc] = value; + }); + } + if (input[_TTK] != null) { + const memberEntries = se_tagKeyListType(input[_TTK], context); + if (((_c = input[_TTK]) == null ? void 0 : _c.length) === 0) { + entries.TransitiveTagKeys = []; + } + Object.entries(memberEntries).forEach(([key, value]) => { + const loc = `TransitiveTagKeys.${key}`; + entries[loc] = value; + }); + } + if (input[_EI] != null) { + entries[_EI] = input[_EI]; + } + if (input[_SN] != null) { + entries[_SN] = input[_SN]; + } + if (input[_TC] != null) { + entries[_TC] = input[_TC]; + } + if (input[_SI] != null) { + entries[_SI] = input[_SI]; + } + if (input[_PC] != null) { + const memberEntries = se_ProvidedContextsListType(input[_PC], context); + if (((_d = input[_PC]) == null ? void 0 : _d.length) === 0) { + entries.ProvidedContexts = []; + } + Object.entries(memberEntries).forEach(([key, value]) => { + const loc = `ProvidedContexts.${key}`; + entries[loc] = value; + }); + } + return entries; + }; + se_AssumeRoleWithWebIdentityRequest = (input, context) => { + var _a2; + const entries = {}; + if (input[_RA] != null) { + entries[_RA] = input[_RA]; + } + if (input[_RSN] != null) { + entries[_RSN] = input[_RSN]; + } + if (input[_WIT] != null) { + entries[_WIT] = input[_WIT]; + } + if (input[_PI] != null) { + entries[_PI] = input[_PI]; + } + if (input[_PA] != null) { + const memberEntries = se_policyDescriptorListType(input[_PA], context); + if (((_a2 = input[_PA]) == null ? void 0 : _a2.length) === 0) { + entries.PolicyArns = []; + } + Object.entries(memberEntries).forEach(([key, value]) => { + const loc = `PolicyArns.${key}`; + entries[loc] = value; + }); + } + if (input[_P] != null) { + entries[_P] = input[_P]; + } + if (input[_DS] != null) { + entries[_DS] = input[_DS]; + } + return entries; + }; + se_policyDescriptorListType = (input, context) => { + const entries = {}; + let counter = 1; + for (const entry of input) { + if (entry === null) { + continue; + } + const memberEntries = se_PolicyDescriptorType(entry, context); + Object.entries(memberEntries).forEach(([key, value]) => { + entries[`member.${counter}.${key}`] = value; + }); + counter++; + } + return entries; + }; + se_PolicyDescriptorType = (input, context) => { + const entries = {}; + if (input[_a] != null) { + entries[_a] = input[_a]; + } + return entries; + }; + se_ProvidedContext = (input, context) => { + const entries = {}; + if (input[_PAr] != null) { + entries[_PAr] = input[_PAr]; + } + if (input[_CA] != null) { + entries[_CA] = input[_CA]; + } + return entries; + }; + se_ProvidedContextsListType = (input, context) => { + const entries = {}; + let counter = 1; + for (const entry of input) { + if (entry === null) { + continue; + } + const memberEntries = se_ProvidedContext(entry, context); + Object.entries(memberEntries).forEach(([key, value]) => { + entries[`member.${counter}.${key}`] = value; + }); + counter++; + } + return entries; + }; + se_Tag = (input, context) => { + const entries = {}; + if (input[_K] != null) { + entries[_K] = input[_K]; + } + if (input[_Va] != null) { + entries[_Va] = input[_Va]; + } + return entries; + }; + se_tagKeyListType = (input, context) => { + const entries = {}; + let counter = 1; + for (const entry of input) { + if (entry === null) { + continue; + } + entries[`member.${counter}`] = entry; + counter++; + } + return entries; + }; + se_tagListType = (input, context) => { + const entries = {}; + let counter = 1; + for (const entry of input) { + if (entry === null) { + continue; + } + const memberEntries = se_Tag(entry, context); + Object.entries(memberEntries).forEach(([key, value]) => { + entries[`member.${counter}.${key}`] = value; + }); + counter++; + } + return entries; + }; + de_AssumedRoleUser = (output, context) => { + const contents = {}; + if (output[_ARI] != null) { + contents[_ARI] = (0, import_smithy_client21.expectString)(output[_ARI]); + } + if (output[_Ar] != null) { + contents[_Ar] = (0, import_smithy_client21.expectString)(output[_Ar]); + } + return contents; + }; + de_AssumeRoleResponse = (output, context) => { + const contents = {}; + if (output[_C] != null) { + contents[_C] = de_Credentials(output[_C], context); + } + if (output[_ARU] != null) { + contents[_ARU] = de_AssumedRoleUser(output[_ARU], context); + } + if (output[_PPS] != null) { + contents[_PPS] = (0, import_smithy_client21.strictParseInt32)(output[_PPS]); + } + if (output[_SI] != null) { + contents[_SI] = (0, import_smithy_client21.expectString)(output[_SI]); + } + return contents; + }; + de_AssumeRoleWithWebIdentityResponse = (output, context) => { + const contents = {}; + if (output[_C] != null) { + contents[_C] = de_Credentials(output[_C], context); + } + if (output[_SFWIT] != null) { + contents[_SFWIT] = (0, import_smithy_client21.expectString)(output[_SFWIT]); + } + if (output[_ARU] != null) { + contents[_ARU] = de_AssumedRoleUser(output[_ARU], context); + } + if (output[_PPS] != null) { + contents[_PPS] = (0, import_smithy_client21.strictParseInt32)(output[_PPS]); + } + if (output[_Pr] != null) { + contents[_Pr] = (0, import_smithy_client21.expectString)(output[_Pr]); + } + if (output[_Au] != null) { + contents[_Au] = (0, import_smithy_client21.expectString)(output[_Au]); + } + if (output[_SI] != null) { + contents[_SI] = (0, import_smithy_client21.expectString)(output[_SI]); + } + return contents; + }; + de_Credentials = (output, context) => { + const contents = {}; + if (output[_AKI] != null) { + contents[_AKI] = (0, import_smithy_client21.expectString)(output[_AKI]); + } + if (output[_SAK] != null) { + contents[_SAK] = (0, import_smithy_client21.expectString)(output[_SAK]); + } + if (output[_ST] != null) { + contents[_ST] = (0, import_smithy_client21.expectString)(output[_ST]); + } + if (output[_E] != null) { + contents[_E] = (0, import_smithy_client21.expectNonNull)((0, import_smithy_client21.parseRfc3339DateTimeWithOffset)(output[_E])); + } + return contents; + }; + de_ExpiredTokenException = (output, context) => { + const contents = {}; + if (output[_m] != null) { + contents[_m] = (0, import_smithy_client21.expectString)(output[_m]); + } + return contents; + }; + de_IDPCommunicationErrorException = (output, context) => { + const contents = {}; + if (output[_m] != null) { + contents[_m] = (0, import_smithy_client21.expectString)(output[_m]); + } + return contents; + }; + de_IDPRejectedClaimException = (output, context) => { + const contents = {}; + if (output[_m] != null) { + contents[_m] = (0, import_smithy_client21.expectString)(output[_m]); + } + return contents; + }; + de_InvalidIdentityTokenException = (output, context) => { + const contents = {}; + if (output[_m] != null) { + contents[_m] = (0, import_smithy_client21.expectString)(output[_m]); + } + return contents; + }; + de_MalformedPolicyDocumentException = (output, context) => { + const contents = {}; + if (output[_m] != null) { + contents[_m] = (0, import_smithy_client21.expectString)(output[_m]); + } + return contents; + }; + de_PackedPolicyTooLargeException = (output, context) => { + const contents = {}; + if (output[_m] != null) { + contents[_m] = (0, import_smithy_client21.expectString)(output[_m]); + } + return contents; + }; + de_RegionDisabledException = (output, context) => { + const contents = {}; + if (output[_m] != null) { + contents[_m] = (0, import_smithy_client21.expectString)(output[_m]); + } + return contents; + }; + deserializeMetadata2 = (output) => ({ + httpStatusCode: output.statusCode, + requestId: output.headers["x-amzn-requestid"] ?? output.headers["x-amzn-request-id"] ?? output.headers["x-amz-request-id"], + extendedRequestId: output.headers["x-amz-id-2"], + cfId: output.headers["x-amz-cf-id"] + }); + throwDefaultError2 = (0, import_smithy_client21.withBaseException)(STSServiceException); + buildHttpRpcRequest = async (context, headers, path4, resolvedHostname, body) => { + const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); + const contents = { + protocol, + hostname, + port, + method: "POST", + path: basePath.endsWith("/") ? basePath.slice(0, -1) + path4 : basePath + path4, + headers + }; + if (resolvedHostname !== void 0) { + contents.hostname = resolvedHostname; + } + if (body !== void 0) { + contents.body = body; + } + return new import_protocol_http14.HttpRequest(contents); + }; + SHARED_HEADERS = { + "content-type": "application/x-www-form-urlencoded" + }; + _2 = "2011-06-15"; + _A = "Action"; + _AKI = "AccessKeyId"; + _AR = "AssumeRole"; + _ARI = "AssumedRoleId"; + _ARU = "AssumedRoleUser"; + _ARWWI = "AssumeRoleWithWebIdentity"; + _Ar = "Arn"; + _Au = "Audience"; + _C = "Credentials"; + _CA = "ContextAssertion"; + _DS = "DurationSeconds"; + _E = "Expiration"; + _EI = "ExternalId"; + _K = "Key"; + _P = "Policy"; + _PA = "PolicyArns"; + _PAr = "ProviderArn"; + _PC = "ProvidedContexts"; + _PI = "ProviderId"; + _PPS = "PackedPolicySize"; + _Pr = "Provider"; + _RA = "RoleArn"; + _RSN = "RoleSessionName"; + _SAK = "SecretAccessKey"; + _SFWIT = "SubjectFromWebIdentityToken"; + _SI = "SourceIdentity"; + _SN = "SerialNumber"; + _ST = "SessionToken"; + _T = "Tags"; + _TC = "TokenCode"; + _TTK = "TransitiveTagKeys"; + _V = "Version"; + _Va = "Value"; + _WIT = "WebIdentityToken"; + _a = "arn"; + _m = "message"; + buildFormUrlencodedString = (formEntries) => Object.entries(formEntries).map(([key, value]) => (0, import_smithy_client21.extendedEncodeURIComponent)(key) + "=" + (0, import_smithy_client21.extendedEncodeURIComponent)(value)).join("&"); + loadQueryErrorCode = (output, data) => { + var _a2; + if (((_a2 = data.Error) == null ? void 0 : _a2.Code) !== void 0) { + return data.Error.Code; + } + if (output.statusCode == 404) { + return "NotFound"; + } + }; + } +}); + +// ../node_modules/.pnpm/@aws-sdk+nested-clients@3.817.0/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/commands/AssumeRoleCommand.js +var import_middleware_endpoint4, import_middleware_serde3, import_smithy_client22, AssumeRoleCommand; +var init_AssumeRoleCommand = __esm({ + "../node_modules/.pnpm/@aws-sdk+nested-clients@3.817.0/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/commands/AssumeRoleCommand.js"() { + import_middleware_endpoint4 = __toESM(require_dist_cjs32()); + import_middleware_serde3 = __toESM(require_dist_cjs7()); + import_smithy_client22 = __toESM(require_dist_cjs23()); + init_EndpointParameters2(); + init_models_02(); + init_Aws_query(); + AssumeRoleCommand = class extends import_smithy_client22.Command.classBuilder().ep(commonParams2).m(function(Command, cs, config, o3) { + return [ + (0, import_middleware_serde3.getSerdePlugin)(config, this.serialize, this.deserialize), + (0, import_middleware_endpoint4.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) + ]; + }).s("AWSSecurityTokenServiceV20110615", "AssumeRole", {}).n("STSClient", "AssumeRoleCommand").f(void 0, AssumeRoleResponseFilterSensitiveLog).ser(se_AssumeRoleCommand).de(de_AssumeRoleCommand).build() { + }; + } +}); + +// ../node_modules/.pnpm/@aws-sdk+nested-clients@3.817.0/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/commands/AssumeRoleWithWebIdentityCommand.js +var import_middleware_endpoint5, import_middleware_serde4, import_smithy_client23, AssumeRoleWithWebIdentityCommand; +var init_AssumeRoleWithWebIdentityCommand = __esm({ + "../node_modules/.pnpm/@aws-sdk+nested-clients@3.817.0/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/commands/AssumeRoleWithWebIdentityCommand.js"() { + import_middleware_endpoint5 = __toESM(require_dist_cjs32()); + import_middleware_serde4 = __toESM(require_dist_cjs7()); + import_smithy_client23 = __toESM(require_dist_cjs23()); + init_EndpointParameters2(); + init_models_02(); + init_Aws_query(); + AssumeRoleWithWebIdentityCommand = class extends import_smithy_client23.Command.classBuilder().ep(commonParams2).m(function(Command, cs, config, o3) { + return [ + (0, import_middleware_serde4.getSerdePlugin)(config, this.serialize, this.deserialize), + (0, import_middleware_endpoint5.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) + ]; + }).s("AWSSecurityTokenServiceV20110615", "AssumeRoleWithWebIdentity", {}).n("STSClient", "AssumeRoleWithWebIdentityCommand").f(AssumeRoleWithWebIdentityRequestFilterSensitiveLog, AssumeRoleWithWebIdentityResponseFilterSensitiveLog).ser(se_AssumeRoleWithWebIdentityCommand).de(de_AssumeRoleWithWebIdentityCommand).build() { + }; + } +}); + +// ../node_modules/.pnpm/@aws-sdk+nested-clients@3.817.0/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/STS.js +var import_smithy_client24, commands2, STS; +var init_STS = __esm({ + "../node_modules/.pnpm/@aws-sdk+nested-clients@3.817.0/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/STS.js"() { + import_smithy_client24 = __toESM(require_dist_cjs23()); + init_AssumeRoleCommand(); + init_AssumeRoleWithWebIdentityCommand(); + init_STSClient(); + commands2 = { + AssumeRoleCommand, + AssumeRoleWithWebIdentityCommand + }; + STS = class extends STSClient { + }; + (0, import_smithy_client24.createAggregatedClient)(commands2, STS); + } +}); + +// ../node_modules/.pnpm/@aws-sdk+nested-clients@3.817.0/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/commands/index.js +var init_commands2 = __esm({ + "../node_modules/.pnpm/@aws-sdk+nested-clients@3.817.0/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/commands/index.js"() { + init_AssumeRoleCommand(); + init_AssumeRoleWithWebIdentityCommand(); + } +}); + +// ../node_modules/.pnpm/@aws-sdk+nested-clients@3.817.0/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/models/index.js +var init_models2 = __esm({ + "../node_modules/.pnpm/@aws-sdk+nested-clients@3.817.0/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/models/index.js"() { + init_models_02(); + } +}); + +// ../node_modules/.pnpm/@aws-sdk+nested-clients@3.817.0/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/defaultStsRoleAssumers.js +var ASSUME_ROLE_DEFAULT_REGION, getAccountIdFromAssumedRoleUser, resolveRegion, getDefaultRoleAssumer, getDefaultRoleAssumerWithWebIdentity, isH2; +var init_defaultStsRoleAssumers = __esm({ + "../node_modules/.pnpm/@aws-sdk+nested-clients@3.817.0/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/defaultStsRoleAssumers.js"() { + init_client(); + init_AssumeRoleCommand(); + init_AssumeRoleWithWebIdentityCommand(); + ASSUME_ROLE_DEFAULT_REGION = "us-east-1"; + getAccountIdFromAssumedRoleUser = (assumedRoleUser) => { + if (typeof (assumedRoleUser == null ? void 0 : assumedRoleUser.Arn) === "string") { + const arnComponents = assumedRoleUser.Arn.split(":"); + if (arnComponents.length > 4 && arnComponents[4] !== "") { + return arnComponents[4]; + } + } + return void 0; + }; + resolveRegion = async (_region, _parentRegion, credentialProviderLogger) => { + var _a2; + const region = typeof _region === "function" ? await _region() : _region; + const parentRegion = typeof _parentRegion === "function" ? await _parentRegion() : _parentRegion; + (_a2 = credentialProviderLogger == null ? void 0 : credentialProviderLogger.debug) == null ? void 0 : _a2.call(credentialProviderLogger, "@aws-sdk/client-sts::resolveRegion", "accepting first of:", `${region} (provider)`, `${parentRegion} (parent client)`, `${ASSUME_ROLE_DEFAULT_REGION} (STS default)`); + return region ?? parentRegion ?? ASSUME_ROLE_DEFAULT_REGION; + }; + getDefaultRoleAssumer = (stsOptions, STSClient2) => { + let stsClient; + let closureSourceCreds; + return async (sourceCreds, params) => { + var _a2, _b, _c, _d; + closureSourceCreds = sourceCreds; + if (!stsClient) { + const { logger: logger3 = (_a2 = stsOptions == null ? void 0 : stsOptions.parentClientConfig) == null ? void 0 : _a2.logger, region, requestHandler = (_b = stsOptions == null ? void 0 : stsOptions.parentClientConfig) == null ? void 0 : _b.requestHandler, credentialProviderLogger } = stsOptions; + const resolvedRegion = await resolveRegion(region, (_c = stsOptions == null ? void 0 : stsOptions.parentClientConfig) == null ? void 0 : _c.region, credentialProviderLogger); + const isCompatibleRequestHandler = !isH2(requestHandler); + stsClient = new STSClient2({ + profile: (_d = stsOptions == null ? void 0 : stsOptions.parentClientConfig) == null ? void 0 : _d.profile, + credentialDefaultProvider: () => async () => closureSourceCreds, + region: resolvedRegion, + requestHandler: isCompatibleRequestHandler ? requestHandler : void 0, + logger: logger3 + }); + } + const { Credentials, AssumedRoleUser } = await stsClient.send(new AssumeRoleCommand(params)); + if (!Credentials || !Credentials.AccessKeyId || !Credentials.SecretAccessKey) { + throw new Error(`Invalid response from STS.assumeRole call with role ${params.RoleArn}`); + } + const accountId = getAccountIdFromAssumedRoleUser(AssumedRoleUser); + const credentials2 = { + accessKeyId: Credentials.AccessKeyId, + secretAccessKey: Credentials.SecretAccessKey, + sessionToken: Credentials.SessionToken, + expiration: Credentials.Expiration, + ...Credentials.CredentialScope && { credentialScope: Credentials.CredentialScope }, + ...accountId && { accountId } + }; + setCredentialFeature(credentials2, "CREDENTIALS_STS_ASSUME_ROLE", "i"); + return credentials2; + }; + }; + getDefaultRoleAssumerWithWebIdentity = (stsOptions, STSClient2) => { + let stsClient; + return async (params) => { + var _a2, _b, _c, _d; + if (!stsClient) { + const { logger: logger3 = (_a2 = stsOptions == null ? void 0 : stsOptions.parentClientConfig) == null ? void 0 : _a2.logger, region, requestHandler = (_b = stsOptions == null ? void 0 : stsOptions.parentClientConfig) == null ? void 0 : _b.requestHandler, credentialProviderLogger } = stsOptions; + const resolvedRegion = await resolveRegion(region, (_c = stsOptions == null ? void 0 : stsOptions.parentClientConfig) == null ? void 0 : _c.region, credentialProviderLogger); + const isCompatibleRequestHandler = !isH2(requestHandler); + stsClient = new STSClient2({ + profile: (_d = stsOptions == null ? void 0 : stsOptions.parentClientConfig) == null ? void 0 : _d.profile, + region: resolvedRegion, + requestHandler: isCompatibleRequestHandler ? requestHandler : void 0, + logger: logger3 + }); + } + const { Credentials, AssumedRoleUser } = await stsClient.send(new AssumeRoleWithWebIdentityCommand(params)); + if (!Credentials || !Credentials.AccessKeyId || !Credentials.SecretAccessKey) { + throw new Error(`Invalid response from STS.assumeRoleWithWebIdentity call with role ${params.RoleArn}`); + } + const accountId = getAccountIdFromAssumedRoleUser(AssumedRoleUser); + const credentials2 = { + accessKeyId: Credentials.AccessKeyId, + secretAccessKey: Credentials.SecretAccessKey, + sessionToken: Credentials.SessionToken, + expiration: Credentials.Expiration, + ...Credentials.CredentialScope && { credentialScope: Credentials.CredentialScope }, + ...accountId && { accountId } + }; + if (accountId) { + setCredentialFeature(credentials2, "RESOLVED_ACCOUNT_ID", "T"); + } + setCredentialFeature(credentials2, "CREDENTIALS_STS_ASSUME_ROLE_WEB_ID", "k"); + return credentials2; + }; + }; + isH2 = (requestHandler) => { + var _a2; + return ((_a2 = requestHandler == null ? void 0 : requestHandler.metadata) == null ? void 0 : _a2.handlerProtocol) === "h2"; + }; + } +}); + +// ../node_modules/.pnpm/@aws-sdk+nested-clients@3.817.0/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/defaultRoleAssumers.js +var getCustomizableStsClientCtor, getDefaultRoleAssumer2, getDefaultRoleAssumerWithWebIdentity2, decorateDefaultCredentialProvider; +var init_defaultRoleAssumers = __esm({ + "../node_modules/.pnpm/@aws-sdk+nested-clients@3.817.0/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/defaultRoleAssumers.js"() { + init_defaultStsRoleAssumers(); + init_STSClient(); + getCustomizableStsClientCtor = (baseCtor, customizations) => { + if (!customizations) + return baseCtor; + else + return class CustomizableSTSClient extends baseCtor { + constructor(config) { + super(config); + for (const customization of customizations) { + this.middlewareStack.use(customization); + } + } + }; + }; + getDefaultRoleAssumer2 = (stsOptions = {}, stsPlugins) => getDefaultRoleAssumer(stsOptions, getCustomizableStsClientCtor(STSClient, stsPlugins)); + getDefaultRoleAssumerWithWebIdentity2 = (stsOptions = {}, stsPlugins) => getDefaultRoleAssumerWithWebIdentity(stsOptions, getCustomizableStsClientCtor(STSClient, stsPlugins)); + decorateDefaultCredentialProvider = (provider) => (input) => provider({ + roleAssumer: getDefaultRoleAssumer2(input), + roleAssumerWithWebIdentity: getDefaultRoleAssumerWithWebIdentity2(input), + ...input + }); + } +}); + +// ../node_modules/.pnpm/@aws-sdk+nested-clients@3.817.0/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/index.js +var sts_exports = {}; +__export(sts_exports, { + AssumeRoleCommand: () => AssumeRoleCommand, + AssumeRoleResponseFilterSensitiveLog: () => AssumeRoleResponseFilterSensitiveLog, + AssumeRoleWithWebIdentityCommand: () => AssumeRoleWithWebIdentityCommand, + AssumeRoleWithWebIdentityRequestFilterSensitiveLog: () => AssumeRoleWithWebIdentityRequestFilterSensitiveLog, + AssumeRoleWithWebIdentityResponseFilterSensitiveLog: () => AssumeRoleWithWebIdentityResponseFilterSensitiveLog, + CredentialsFilterSensitiveLog: () => CredentialsFilterSensitiveLog, + ExpiredTokenException: () => ExpiredTokenException2, + IDPCommunicationErrorException: () => IDPCommunicationErrorException, + IDPRejectedClaimException: () => IDPRejectedClaimException, + InvalidIdentityTokenException: () => InvalidIdentityTokenException, + MalformedPolicyDocumentException: () => MalformedPolicyDocumentException, + PackedPolicyTooLargeException: () => PackedPolicyTooLargeException, + RegionDisabledException: () => RegionDisabledException, + STS: () => STS, + STSClient: () => STSClient, + STSServiceException: () => STSServiceException, + __Client: () => import_smithy_client18.Client, + decorateDefaultCredentialProvider: () => decorateDefaultCredentialProvider, + getDefaultRoleAssumer: () => getDefaultRoleAssumer2, + getDefaultRoleAssumerWithWebIdentity: () => getDefaultRoleAssumerWithWebIdentity2 +}); +var init_sts = __esm({ + "../node_modules/.pnpm/@aws-sdk+nested-clients@3.817.0/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/index.js"() { + init_STSClient(); + init_STS(); + init_commands2(); + init_models2(); + init_defaultRoleAssumers(); + init_STSServiceException(); + } +}); + +// ../node_modules/.pnpm/@aws-sdk+credential-provider-process@3.816.0/node_modules/@aws-sdk/credential-provider-process/dist-cjs/index.js +var require_dist_cjs47 = __commonJS({ + "../node_modules/.pnpm/@aws-sdk+credential-provider-process@3.816.0/node_modules/@aws-sdk/credential-provider-process/dist-cjs/index.js"(exports2, module2) { + "use strict"; + var __defProp3 = Object.defineProperty; + var __getOwnPropDesc3 = Object.getOwnPropertyDescriptor; + var __getOwnPropNames3 = Object.getOwnPropertyNames; + var __hasOwnProp3 = Object.prototype.hasOwnProperty; + var __name = (target, value) => __defProp3(target, "name", { value, configurable: true }); + var __export2 = (target, all) => { + for (var name in all) + __defProp3(target, name, { get: all[name], enumerable: true }); + }; + var __copyProps3 = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames3(from)) + if (!__hasOwnProp3.call(to, key) && key !== except) + __defProp3(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc3(from, key)) || desc.enumerable }); + } + return to; + }; + var __toCommonJS2 = (mod) => __copyProps3(__defProp3({}, "__esModule", { value: true }), mod); + var index_exports = {}; + __export2(index_exports, { + fromProcess: () => fromProcess + }); + module2.exports = __toCommonJS2(index_exports); + var import_shared_ini_file_loader = require_dist_cjs28(); + var import_property_provider2 = require_dist_cjs20(); + var import_child_process = require("child_process"); + var import_util4 = require("util"); + var import_client3 = (init_client(), __toCommonJS(client_exports)); + var getValidatedProcessCredentials = /* @__PURE__ */ __name((profileName, data, profiles) => { + var _a2; + if (data.Version !== 1) { + throw Error(`Profile ${profileName} credential_process did not return Version 1.`); + } + if (data.AccessKeyId === void 0 || data.SecretAccessKey === void 0) { + throw Error(`Profile ${profileName} credential_process returned invalid credentials.`); + } + if (data.Expiration) { + const currentTime = /* @__PURE__ */ new Date(); + const expireTime = new Date(data.Expiration); + if (expireTime < currentTime) { + throw Error(`Profile ${profileName} credential_process returned expired credentials.`); + } + } + let accountId = data.AccountId; + if (!accountId && ((_a2 = profiles == null ? void 0 : profiles[profileName]) == null ? void 0 : _a2.aws_account_id)) { + accountId = profiles[profileName].aws_account_id; + } + const credentials2 = { + accessKeyId: data.AccessKeyId, + secretAccessKey: data.SecretAccessKey, + ...data.SessionToken && { sessionToken: data.SessionToken }, + ...data.Expiration && { expiration: new Date(data.Expiration) }, + ...data.CredentialScope && { credentialScope: data.CredentialScope }, + ...accountId && { accountId } + }; + (0, import_client3.setCredentialFeature)(credentials2, "CREDENTIALS_PROCESS", "w"); + return credentials2; + }, "getValidatedProcessCredentials"); + var resolveProcessCredentials = /* @__PURE__ */ __name(async (profileName, profiles, logger3) => { + const profile = profiles[profileName]; + if (profiles[profileName]) { + const credentialProcess = profile["credential_process"]; + if (credentialProcess !== void 0) { + const execPromise = (0, import_util4.promisify)(import_child_process.exec); + try { + const { stdout } = await execPromise(credentialProcess); + let data; + try { + data = JSON.parse(stdout.trim()); + } catch { + throw Error(`Profile ${profileName} credential_process returned invalid JSON.`); + } + return getValidatedProcessCredentials(profileName, data, profiles); + } catch (error2) { + throw new import_property_provider2.CredentialsProviderError(error2.message, { logger: logger3 }); + } + } else { + throw new import_property_provider2.CredentialsProviderError(`Profile ${profileName} did not contain credential_process.`, { logger: logger3 }); + } + } else { + throw new import_property_provider2.CredentialsProviderError(`Profile ${profileName} could not be found in shared credentials file.`, { + logger: logger3 + }); + } + }, "resolveProcessCredentials"); + var fromProcess = /* @__PURE__ */ __name((init2 = {}) => async ({ callerClientConfig } = {}) => { + var _a2; + (_a2 = init2.logger) == null ? void 0 : _a2.debug("@aws-sdk/credential-provider-process - fromProcess"); + const profiles = await (0, import_shared_ini_file_loader.parseKnownFiles)(init2); + return resolveProcessCredentials( + (0, import_shared_ini_file_loader.getProfileName)({ + profile: init2.profile ?? (callerClientConfig == null ? void 0 : callerClientConfig.profile) + }), + profiles, + init2.logger + ); + }, "fromProcess"); + } +}); + +// ../node_modules/.pnpm/@aws-sdk+credential-provider-web-identity@3.817.0/node_modules/@aws-sdk/credential-provider-web-identity/dist-cjs/fromWebToken.js +var require_fromWebToken = __commonJS({ + "../node_modules/.pnpm/@aws-sdk+credential-provider-web-identity@3.817.0/node_modules/@aws-sdk/credential-provider-web-identity/dist-cjs/fromWebToken.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o3, m4, k3, k22) { + if (k22 === void 0) k22 = k3; + var desc = Object.getOwnPropertyDescriptor(m4, k3); + if (!desc || ("get" in desc ? !m4.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m4[k3]; + } }; + } + Object.defineProperty(o3, k22, desc); + } : function(o3, m4, k3, k22) { + if (k22 === void 0) k22 = k3; + o3[k22] = m4[k3]; + }); + var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? function(o3, v6) { + Object.defineProperty(o3, "default", { enumerable: true, value: v6 }); + } : function(o3, v6) { + o3["default"] = v6; + }); + var __importStar2 = exports2 && exports2.__importStar || /* @__PURE__ */ function() { + var ownKeys2 = function(o3) { + ownKeys2 = Object.getOwnPropertyNames || function(o4) { + var ar = []; + for (var k3 in o4) if (Object.prototype.hasOwnProperty.call(o4, k3)) ar[ar.length] = k3; + return ar; + }; + return ownKeys2(o3); + }; + return function(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) { + for (var k3 = ownKeys2(mod), i4 = 0; i4 < k3.length; i4++) if (k3[i4] !== "default") __createBinding2(result, mod, k3[i4]); + } + __setModuleDefault2(result, mod); + return result; + }; + }(); + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.fromWebToken = void 0; + var fromWebToken2 = (init2) => async (awsIdentityProperties) => { + var _a2; + (_a2 = init2.logger) == null ? void 0 : _a2.debug("@aws-sdk/credential-provider-web-identity - fromWebToken"); + const { roleArn, roleSessionName, webIdentityToken, providerId, policyArns, policy: policy5, durationSeconds } = init2; + let { roleAssumerWithWebIdentity } = init2; + if (!roleAssumerWithWebIdentity) { + const { getDefaultRoleAssumerWithWebIdentity: getDefaultRoleAssumerWithWebIdentity3 } = await Promise.resolve().then(() => __importStar2((init_sts(), __toCommonJS(sts_exports)))); + roleAssumerWithWebIdentity = getDefaultRoleAssumerWithWebIdentity3({ + ...init2.clientConfig, + credentialProviderLogger: init2.logger, + parentClientConfig: { + ...awsIdentityProperties == null ? void 0 : awsIdentityProperties.callerClientConfig, + ...init2.parentClientConfig + } + }, init2.clientPlugins); + } + return roleAssumerWithWebIdentity({ + RoleArn: roleArn, + RoleSessionName: roleSessionName ?? `aws-sdk-js-session-${Date.now()}`, + WebIdentityToken: webIdentityToken, + ProviderId: providerId, + PolicyArns: policyArns, + Policy: policy5, + DurationSeconds: durationSeconds + }); + }; + exports2.fromWebToken = fromWebToken2; + } +}); + +// ../node_modules/.pnpm/@aws-sdk+credential-provider-web-identity@3.817.0/node_modules/@aws-sdk/credential-provider-web-identity/dist-cjs/fromTokenFile.js +var require_fromTokenFile = __commonJS({ + "../node_modules/.pnpm/@aws-sdk+credential-provider-web-identity@3.817.0/node_modules/@aws-sdk/credential-provider-web-identity/dist-cjs/fromTokenFile.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.fromTokenFile = void 0; + var client_1 = (init_client(), __toCommonJS(client_exports)); + var property_provider_1 = require_dist_cjs20(); + var fs_1 = require("fs"); + var fromWebToken_1 = require_fromWebToken(); + var ENV_TOKEN_FILE = "AWS_WEB_IDENTITY_TOKEN_FILE"; + var ENV_ROLE_ARN = "AWS_ROLE_ARN"; + var ENV_ROLE_SESSION_NAME = "AWS_ROLE_SESSION_NAME"; + var fromTokenFile2 = (init2 = {}) => async () => { + var _a2; + (_a2 = init2.logger) == null ? void 0 : _a2.debug("@aws-sdk/credential-provider-web-identity - fromTokenFile"); + const webIdentityTokenFile = (init2 == null ? void 0 : init2.webIdentityTokenFile) ?? process.env[ENV_TOKEN_FILE]; + const roleArn = (init2 == null ? void 0 : init2.roleArn) ?? process.env[ENV_ROLE_ARN]; + const roleSessionName = (init2 == null ? void 0 : init2.roleSessionName) ?? process.env[ENV_ROLE_SESSION_NAME]; + if (!webIdentityTokenFile || !roleArn) { + throw new property_provider_1.CredentialsProviderError("Web identity configuration not specified", { + logger: init2.logger + }); + } + const credentials2 = await (0, fromWebToken_1.fromWebToken)({ + ...init2, + webIdentityToken: (0, fs_1.readFileSync)(webIdentityTokenFile, { encoding: "ascii" }), + roleArn, + roleSessionName + })(); + if (webIdentityTokenFile === process.env[ENV_TOKEN_FILE]) { + (0, client_1.setCredentialFeature)(credentials2, "CREDENTIALS_ENV_VARS_STS_WEB_ID_TOKEN", "h"); + } + return credentials2; + }; + exports2.fromTokenFile = fromTokenFile2; + } +}); + +// ../node_modules/.pnpm/@aws-sdk+credential-provider-web-identity@3.817.0/node_modules/@aws-sdk/credential-provider-web-identity/dist-cjs/index.js +var require_dist_cjs48 = __commonJS({ + "../node_modules/.pnpm/@aws-sdk+credential-provider-web-identity@3.817.0/node_modules/@aws-sdk/credential-provider-web-identity/dist-cjs/index.js"(exports2, module2) { + "use strict"; + var __defProp3 = Object.defineProperty; + var __getOwnPropDesc3 = Object.getOwnPropertyDescriptor; + var __getOwnPropNames3 = Object.getOwnPropertyNames; + var __hasOwnProp3 = Object.prototype.hasOwnProperty; + var __copyProps3 = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames3(from)) + if (!__hasOwnProp3.call(to, key) && key !== except) + __defProp3(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc3(from, key)) || desc.enumerable }); + } + return to; + }; + var __reExport = (target, mod, secondTarget) => (__copyProps3(target, mod, "default"), secondTarget && __copyProps3(secondTarget, mod, "default")); + var __toCommonJS2 = (mod) => __copyProps3(__defProp3({}, "__esModule", { value: true }), mod); + var index_exports = {}; + module2.exports = __toCommonJS2(index_exports); + __reExport(index_exports, require_fromTokenFile(), module2.exports); + __reExport(index_exports, require_fromWebToken(), module2.exports); + } +}); + +// ../node_modules/.pnpm/@aws-sdk+credential-provider-ini@3.817.0/node_modules/@aws-sdk/credential-provider-ini/dist-cjs/index.js +var require_dist_cjs49 = __commonJS({ + "../node_modules/.pnpm/@aws-sdk+credential-provider-ini@3.817.0/node_modules/@aws-sdk/credential-provider-ini/dist-cjs/index.js"(exports2, module2) { + "use strict"; + var __create3 = Object.create; + var __defProp3 = Object.defineProperty; + var __getOwnPropDesc3 = Object.getOwnPropertyDescriptor; + var __getOwnPropNames3 = Object.getOwnPropertyNames; + var __getProtoOf3 = Object.getPrototypeOf; + var __hasOwnProp3 = Object.prototype.hasOwnProperty; + var __name = (target, value) => __defProp3(target, "name", { value, configurable: true }); + var __export2 = (target, all) => { + for (var name in all) + __defProp3(target, name, { get: all[name], enumerable: true }); + }; + var __copyProps3 = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames3(from)) + if (!__hasOwnProp3.call(to, key) && key !== except) + __defProp3(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc3(from, key)) || desc.enumerable }); + } + return to; + }; + var __toESM3 = (mod, isNodeMode, target) => (target = mod != null ? __create3(__getProtoOf3(mod)) : {}, __copyProps3( + // If the importer is in node compatibility mode or this is not an ESM + // file that has been converted to a CommonJS file using a Babel- + // compatible transform (i.e. "__esModule" has not been set), then set + // "default" to the CommonJS "module.exports" for node compatibility. + isNodeMode || !mod || !mod.__esModule ? __defProp3(target, "default", { value: mod, enumerable: true }) : target, + mod + )); + var __toCommonJS2 = (mod) => __copyProps3(__defProp3({}, "__esModule", { value: true }), mod); + var index_exports = {}; + __export2(index_exports, { + fromIni: () => fromIni + }); + module2.exports = __toCommonJS2(index_exports); + var import_shared_ini_file_loader = require_dist_cjs28(); + var import_client3 = (init_client(), __toCommonJS(client_exports)); + var import_property_provider2 = require_dist_cjs20(); + var resolveCredentialSource = /* @__PURE__ */ __name((credentialSource, profileName, logger3) => { + const sourceProvidersMap = { + EcsContainer: /* @__PURE__ */ __name(async (options) => { + const { fromHttp } = await Promise.resolve().then(() => __toESM3(require_dist_cjs38())); + const { fromContainerMetadata } = await Promise.resolve().then(() => __toESM3(require_dist_cjs37())); + logger3 == null ? void 0 : logger3.debug("@aws-sdk/credential-provider-ini - credential_source is EcsContainer"); + return async () => (0, import_property_provider2.chain)(fromHttp(options ?? {}), fromContainerMetadata(options))().then(setNamedProvider); + }, "EcsContainer"), + Ec2InstanceMetadata: /* @__PURE__ */ __name(async (options) => { + logger3 == null ? void 0 : logger3.debug("@aws-sdk/credential-provider-ini - credential_source is Ec2InstanceMetadata"); + const { fromInstanceMetadata } = await Promise.resolve().then(() => __toESM3(require_dist_cjs37())); + return async () => fromInstanceMetadata(options)().then(setNamedProvider); + }, "Ec2InstanceMetadata"), + Environment: /* @__PURE__ */ __name(async (options) => { + logger3 == null ? void 0 : logger3.debug("@aws-sdk/credential-provider-ini - credential_source is Environment"); + const { fromEnv } = await Promise.resolve().then(() => __toESM3(require_dist_cjs36())); + return async () => fromEnv(options)().then(setNamedProvider); + }, "Environment") + }; + if (credentialSource in sourceProvidersMap) { + return sourceProvidersMap[credentialSource]; + } else { + throw new import_property_provider2.CredentialsProviderError( + `Unsupported credential source in profile ${profileName}. Got ${credentialSource}, expected EcsContainer or Ec2InstanceMetadata or Environment.`, + { logger: logger3 } + ); + } + }, "resolveCredentialSource"); + var setNamedProvider = /* @__PURE__ */ __name((creds) => (0, import_client3.setCredentialFeature)(creds, "CREDENTIALS_PROFILE_NAMED_PROVIDER", "p"), "setNamedProvider"); + var isAssumeRoleProfile = /* @__PURE__ */ __name((arg, { profile = "default", logger: logger3 } = {}) => { + return Boolean(arg) && typeof arg === "object" && typeof arg.role_arn === "string" && ["undefined", "string"].indexOf(typeof arg.role_session_name) > -1 && ["undefined", "string"].indexOf(typeof arg.external_id) > -1 && ["undefined", "string"].indexOf(typeof arg.mfa_serial) > -1 && (isAssumeRoleWithSourceProfile(arg, { profile, logger: logger3 }) || isCredentialSourceProfile(arg, { profile, logger: logger3 })); + }, "isAssumeRoleProfile"); + var isAssumeRoleWithSourceProfile = /* @__PURE__ */ __name((arg, { profile, logger: logger3 }) => { + var _a2; + const withSourceProfile = typeof arg.source_profile === "string" && typeof arg.credential_source === "undefined"; + if (withSourceProfile) { + (_a2 = logger3 == null ? void 0 : logger3.debug) == null ? void 0 : _a2.call(logger3, ` ${profile} isAssumeRoleWithSourceProfile source_profile=${arg.source_profile}`); + } + return withSourceProfile; + }, "isAssumeRoleWithSourceProfile"); + var isCredentialSourceProfile = /* @__PURE__ */ __name((arg, { profile, logger: logger3 }) => { + var _a2; + const withProviderProfile = typeof arg.credential_source === "string" && typeof arg.source_profile === "undefined"; + if (withProviderProfile) { + (_a2 = logger3 == null ? void 0 : logger3.debug) == null ? void 0 : _a2.call(logger3, ` ${profile} isCredentialSourceProfile credential_source=${arg.credential_source}`); + } + return withProviderProfile; + }, "isCredentialSourceProfile"); + var resolveAssumeRoleCredentials = /* @__PURE__ */ __name(async (profileName, profiles, options, visitedProfiles = {}) => { + var _a2, _b, _c; + (_a2 = options.logger) == null ? void 0 : _a2.debug("@aws-sdk/credential-provider-ini - resolveAssumeRoleCredentials (STS)"); + const profileData = profiles[profileName]; + const { source_profile, region } = profileData; + if (!options.roleAssumer) { + const { getDefaultRoleAssumer: getDefaultRoleAssumer3 } = await Promise.resolve().then(() => __toESM3((init_sts(), __toCommonJS(sts_exports)))); + options.roleAssumer = getDefaultRoleAssumer3( + { + ...options.clientConfig, + credentialProviderLogger: options.logger, + parentClientConfig: { + ...options == null ? void 0 : options.parentClientConfig, + region: region ?? ((_b = options == null ? void 0 : options.parentClientConfig) == null ? void 0 : _b.region) + } + }, + options.clientPlugins + ); + } + if (source_profile && source_profile in visitedProfiles) { + throw new import_property_provider2.CredentialsProviderError( + `Detected a cycle attempting to resolve credentials for profile ${(0, import_shared_ini_file_loader.getProfileName)(options)}. Profiles visited: ` + Object.keys(visitedProfiles).join(", "), + { logger: options.logger } + ); + } + (_c = options.logger) == null ? void 0 : _c.debug( + `@aws-sdk/credential-provider-ini - finding credential resolver using ${source_profile ? `source_profile=[${source_profile}]` : `profile=[${profileName}]`}` + ); + const sourceCredsProvider = source_profile ? resolveProfileData( + source_profile, + profiles, + options, + { + ...visitedProfiles, + [source_profile]: true + }, + isCredentialSourceWithoutRoleArn(profiles[source_profile] ?? {}) + ) : (await resolveCredentialSource(profileData.credential_source, profileName, options.logger)(options))(); + if (isCredentialSourceWithoutRoleArn(profileData)) { + return sourceCredsProvider.then((creds) => (0, import_client3.setCredentialFeature)(creds, "CREDENTIALS_PROFILE_SOURCE_PROFILE", "o")); + } else { + const params = { + RoleArn: profileData.role_arn, + RoleSessionName: profileData.role_session_name || `aws-sdk-js-${Date.now()}`, + ExternalId: profileData.external_id, + DurationSeconds: parseInt(profileData.duration_seconds || "3600", 10) + }; + const { mfa_serial } = profileData; + if (mfa_serial) { + if (!options.mfaCodeProvider) { + throw new import_property_provider2.CredentialsProviderError( + `Profile ${profileName} requires multi-factor authentication, but no MFA code callback was provided.`, + { logger: options.logger, tryNextLink: false } + ); + } + params.SerialNumber = mfa_serial; + params.TokenCode = await options.mfaCodeProvider(mfa_serial); + } + const sourceCreds = await sourceCredsProvider; + return options.roleAssumer(sourceCreds, params).then( + (creds) => (0, import_client3.setCredentialFeature)(creds, "CREDENTIALS_PROFILE_SOURCE_PROFILE", "o") + ); + } + }, "resolveAssumeRoleCredentials"); + var isCredentialSourceWithoutRoleArn = /* @__PURE__ */ __name((section) => { + return !section.role_arn && !!section.credential_source; + }, "isCredentialSourceWithoutRoleArn"); + var isProcessProfile = /* @__PURE__ */ __name((arg) => Boolean(arg) && typeof arg === "object" && typeof arg.credential_process === "string", "isProcessProfile"); + var resolveProcessCredentials = /* @__PURE__ */ __name(async (options, profile) => Promise.resolve().then(() => __toESM3(require_dist_cjs47())).then( + ({ fromProcess }) => fromProcess({ + ...options, + profile + })().then((creds) => (0, import_client3.setCredentialFeature)(creds, "CREDENTIALS_PROFILE_PROCESS", "v")) + ), "resolveProcessCredentials"); + var resolveSsoCredentials = /* @__PURE__ */ __name(async (profile, profileData, options = {}) => { + const { fromSSO } = await Promise.resolve().then(() => __toESM3(require_dist_cjs46())); + return fromSSO({ + profile, + logger: options.logger, + parentClientConfig: options.parentClientConfig, + clientConfig: options.clientConfig + })().then((creds) => { + if (profileData.sso_session) { + return (0, import_client3.setCredentialFeature)(creds, "CREDENTIALS_PROFILE_SSO", "r"); + } else { + return (0, import_client3.setCredentialFeature)(creds, "CREDENTIALS_PROFILE_SSO_LEGACY", "t"); + } + }); + }, "resolveSsoCredentials"); + var isSsoProfile = /* @__PURE__ */ __name((arg) => arg && (typeof arg.sso_start_url === "string" || typeof arg.sso_account_id === "string" || typeof arg.sso_session === "string" || typeof arg.sso_region === "string" || typeof arg.sso_role_name === "string"), "isSsoProfile"); + var isStaticCredsProfile = /* @__PURE__ */ __name((arg) => Boolean(arg) && typeof arg === "object" && typeof arg.aws_access_key_id === "string" && typeof arg.aws_secret_access_key === "string" && ["undefined", "string"].indexOf(typeof arg.aws_session_token) > -1 && ["undefined", "string"].indexOf(typeof arg.aws_account_id) > -1, "isStaticCredsProfile"); + var resolveStaticCredentials = /* @__PURE__ */ __name(async (profile, options) => { + var _a2; + (_a2 = options == null ? void 0 : options.logger) == null ? void 0 : _a2.debug("@aws-sdk/credential-provider-ini - resolveStaticCredentials"); + const credentials2 = { + accessKeyId: profile.aws_access_key_id, + secretAccessKey: profile.aws_secret_access_key, + sessionToken: profile.aws_session_token, + ...profile.aws_credential_scope && { credentialScope: profile.aws_credential_scope }, + ...profile.aws_account_id && { accountId: profile.aws_account_id } + }; + return (0, import_client3.setCredentialFeature)(credentials2, "CREDENTIALS_PROFILE", "n"); + }, "resolveStaticCredentials"); + var isWebIdentityProfile = /* @__PURE__ */ __name((arg) => Boolean(arg) && typeof arg === "object" && typeof arg.web_identity_token_file === "string" && typeof arg.role_arn === "string" && ["undefined", "string"].indexOf(typeof arg.role_session_name) > -1, "isWebIdentityProfile"); + var resolveWebIdentityCredentials = /* @__PURE__ */ __name(async (profile, options) => Promise.resolve().then(() => __toESM3(require_dist_cjs48())).then( + ({ fromTokenFile: fromTokenFile2 }) => fromTokenFile2({ + webIdentityTokenFile: profile.web_identity_token_file, + roleArn: profile.role_arn, + roleSessionName: profile.role_session_name, + roleAssumerWithWebIdentity: options.roleAssumerWithWebIdentity, + logger: options.logger, + parentClientConfig: options.parentClientConfig + })().then((creds) => (0, import_client3.setCredentialFeature)(creds, "CREDENTIALS_PROFILE_STS_WEB_ID_TOKEN", "q")) + ), "resolveWebIdentityCredentials"); + var resolveProfileData = /* @__PURE__ */ __name(async (profileName, profiles, options, visitedProfiles = {}, isAssumeRoleRecursiveCall = false) => { + const data = profiles[profileName]; + if (Object.keys(visitedProfiles).length > 0 && isStaticCredsProfile(data)) { + return resolveStaticCredentials(data, options); + } + if (isAssumeRoleRecursiveCall || isAssumeRoleProfile(data, { profile: profileName, logger: options.logger })) { + return resolveAssumeRoleCredentials(profileName, profiles, options, visitedProfiles); + } + if (isStaticCredsProfile(data)) { + return resolveStaticCredentials(data, options); + } + if (isWebIdentityProfile(data)) { + return resolveWebIdentityCredentials(data, options); + } + if (isProcessProfile(data)) { + return resolveProcessCredentials(options, profileName); + } + if (isSsoProfile(data)) { + return await resolveSsoCredentials(profileName, data, options); + } + throw new import_property_provider2.CredentialsProviderError( + `Could not resolve credentials using profile: [${profileName}] in configuration/credentials file(s).`, + { logger: options.logger } + ); + }, "resolveProfileData"); + var fromIni = /* @__PURE__ */ __name((_init = {}) => async ({ callerClientConfig } = {}) => { + var _a2; + const init2 = { + ..._init, + parentClientConfig: { + ...callerClientConfig, + ..._init.parentClientConfig + } + }; + (_a2 = init2.logger) == null ? void 0 : _a2.debug("@aws-sdk/credential-provider-ini - fromIni"); + const profiles = await (0, import_shared_ini_file_loader.parseKnownFiles)(init2); + return resolveProfileData( + (0, import_shared_ini_file_loader.getProfileName)({ + profile: _init.profile ?? (callerClientConfig == null ? void 0 : callerClientConfig.profile) + }), + profiles, + init2 + ); + }, "fromIni"); + } +}); + +// ../node_modules/.pnpm/@aws-sdk+credential-provider-node@3.817.0/node_modules/@aws-sdk/credential-provider-node/dist-cjs/index.js +var require_dist_cjs50 = __commonJS({ + "../node_modules/.pnpm/@aws-sdk+credential-provider-node@3.817.0/node_modules/@aws-sdk/credential-provider-node/dist-cjs/index.js"(exports2, module2) { + "use strict"; + var __create3 = Object.create; + var __defProp3 = Object.defineProperty; + var __getOwnPropDesc3 = Object.getOwnPropertyDescriptor; + var __getOwnPropNames3 = Object.getOwnPropertyNames; + var __getProtoOf3 = Object.getPrototypeOf; + var __hasOwnProp3 = Object.prototype.hasOwnProperty; + var __name = (target, value) => __defProp3(target, "name", { value, configurable: true }); + var __export2 = (target, all) => { + for (var name in all) + __defProp3(target, name, { get: all[name], enumerable: true }); + }; + var __copyProps3 = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames3(from)) + if (!__hasOwnProp3.call(to, key) && key !== except) + __defProp3(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc3(from, key)) || desc.enumerable }); + } + return to; + }; + var __toESM3 = (mod, isNodeMode, target) => (target = mod != null ? __create3(__getProtoOf3(mod)) : {}, __copyProps3( + // If the importer is in node compatibility mode or this is not an ESM + // file that has been converted to a CommonJS file using a Babel- + // compatible transform (i.e. "__esModule" has not been set), then set + // "default" to the CommonJS "module.exports" for node compatibility. + isNodeMode || !mod || !mod.__esModule ? __defProp3(target, "default", { value: mod, enumerable: true }) : target, + mod + )); + var __toCommonJS2 = (mod) => __copyProps3(__defProp3({}, "__esModule", { value: true }), mod); + var index_exports = {}; + __export2(index_exports, { + credentialsTreatedAsExpired: () => credentialsTreatedAsExpired, + credentialsWillNeedRefresh: () => credentialsWillNeedRefresh, + defaultProvider: () => defaultProvider + }); + module2.exports = __toCommonJS2(index_exports); + var import_credential_provider_env = require_dist_cjs36(); + var import_shared_ini_file_loader = require_dist_cjs28(); + var import_property_provider2 = require_dist_cjs20(); + var ENV_IMDS_DISABLED = "AWS_EC2_METADATA_DISABLED"; + var remoteProvider = /* @__PURE__ */ __name(async (init2) => { + var _a2, _b; + const { ENV_CMDS_FULL_URI, ENV_CMDS_RELATIVE_URI, fromContainerMetadata, fromInstanceMetadata } = await Promise.resolve().then(() => __toESM3(require_dist_cjs37())); + if (process.env[ENV_CMDS_RELATIVE_URI] || process.env[ENV_CMDS_FULL_URI]) { + (_a2 = init2.logger) == null ? void 0 : _a2.debug("@aws-sdk/credential-provider-node - remoteProvider::fromHttp/fromContainerMetadata"); + const { fromHttp } = await Promise.resolve().then(() => __toESM3(require_dist_cjs38())); + return (0, import_property_provider2.chain)(fromHttp(init2), fromContainerMetadata(init2)); + } + if (process.env[ENV_IMDS_DISABLED] && process.env[ENV_IMDS_DISABLED] !== "false") { + return async () => { + throw new import_property_provider2.CredentialsProviderError("EC2 Instance Metadata Service access disabled", { logger: init2.logger }); + }; + } + (_b = init2.logger) == null ? void 0 : _b.debug("@aws-sdk/credential-provider-node - remoteProvider::fromInstanceMetadata"); + return fromInstanceMetadata(init2); + }, "remoteProvider"); + var multipleCredentialSourceWarningEmitted = false; + var defaultProvider = /* @__PURE__ */ __name((init2 = {}) => (0, import_property_provider2.memoize)( + (0, import_property_provider2.chain)( + async () => { + var _a2, _b, _c, _d; + const profile = init2.profile ?? process.env[import_shared_ini_file_loader.ENV_PROFILE]; + if (profile) { + const envStaticCredentialsAreSet = process.env[import_credential_provider_env.ENV_KEY] && process.env[import_credential_provider_env.ENV_SECRET]; + if (envStaticCredentialsAreSet) { + if (!multipleCredentialSourceWarningEmitted) { + const warnFn = ((_a2 = init2.logger) == null ? void 0 : _a2.warn) && ((_c = (_b = init2.logger) == null ? void 0 : _b.constructor) == null ? void 0 : _c.name) !== "NoOpLogger" ? init2.logger.warn : console.warn; + warnFn( + `@aws-sdk/credential-provider-node - defaultProvider::fromEnv WARNING: + Multiple credential sources detected: + Both AWS_PROFILE and the pair AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY static credentials are set. + This SDK will proceed with the AWS_PROFILE value. + + However, a future version may change this behavior to prefer the ENV static credentials. + Please ensure that your environment only sets either the AWS_PROFILE or the + AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY pair. +` + ); + multipleCredentialSourceWarningEmitted = true; + } + } + throw new import_property_provider2.CredentialsProviderError("AWS_PROFILE is set, skipping fromEnv provider.", { + logger: init2.logger, + tryNextLink: true + }); + } + (_d = init2.logger) == null ? void 0 : _d.debug("@aws-sdk/credential-provider-node - defaultProvider::fromEnv"); + return (0, import_credential_provider_env.fromEnv)(init2)(); + }, + async () => { + var _a2; + (_a2 = init2.logger) == null ? void 0 : _a2.debug("@aws-sdk/credential-provider-node - defaultProvider::fromSSO"); + const { ssoStartUrl, ssoAccountId, ssoRegion, ssoRoleName, ssoSession } = init2; + if (!ssoStartUrl && !ssoAccountId && !ssoRegion && !ssoRoleName && !ssoSession) { + throw new import_property_provider2.CredentialsProviderError( + "Skipping SSO provider in default chain (inputs do not include SSO fields).", + { logger: init2.logger } + ); + } + const { fromSSO } = await Promise.resolve().then(() => __toESM3(require_dist_cjs46())); + return fromSSO(init2)(); + }, + async () => { + var _a2; + (_a2 = init2.logger) == null ? void 0 : _a2.debug("@aws-sdk/credential-provider-node - defaultProvider::fromIni"); + const { fromIni } = await Promise.resolve().then(() => __toESM3(require_dist_cjs49())); + return fromIni(init2)(); + }, + async () => { + var _a2; + (_a2 = init2.logger) == null ? void 0 : _a2.debug("@aws-sdk/credential-provider-node - defaultProvider::fromProcess"); + const { fromProcess } = await Promise.resolve().then(() => __toESM3(require_dist_cjs47())); + return fromProcess(init2)(); + }, + async () => { + var _a2; + (_a2 = init2.logger) == null ? void 0 : _a2.debug("@aws-sdk/credential-provider-node - defaultProvider::fromTokenFile"); + const { fromTokenFile: fromTokenFile2 } = await Promise.resolve().then(() => __toESM3(require_dist_cjs48())); + return fromTokenFile2(init2)(); + }, + async () => { + var _a2; + (_a2 = init2.logger) == null ? void 0 : _a2.debug("@aws-sdk/credential-provider-node - defaultProvider::remoteProvider"); + return (await remoteProvider(init2))(); + }, + async () => { + throw new import_property_provider2.CredentialsProviderError("Could not load credentials from any providers", { + tryNextLink: false, + logger: init2.logger + }); + } + ), + credentialsTreatedAsExpired, + credentialsWillNeedRefresh + ), "defaultProvider"); + var credentialsWillNeedRefresh = /* @__PURE__ */ __name((credentials2) => (credentials2 == null ? void 0 : credentials2.expiration) !== void 0, "credentialsWillNeedRefresh"); + var credentialsTreatedAsExpired = /* @__PURE__ */ __name((credentials2) => (credentials2 == null ? void 0 : credentials2.expiration) !== void 0 && credentials2.expiration.getTime() - Date.now() < 3e5, "credentialsTreatedAsExpired"); + } +}); + +// ../node_modules/.pnpm/@aws-sdk+client-rds-data@3.817.0/node_modules/@aws-sdk/client-rds-data/dist-cjs/endpoint/ruleset.js +var require_ruleset2 = __commonJS({ + "../node_modules/.pnpm/@aws-sdk+client-rds-data@3.817.0/node_modules/@aws-sdk/client-rds-data/dist-cjs/endpoint/ruleset.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ruleSet = void 0; + var s4 = "required"; + var t4 = "fn"; + var u3 = "argv"; + var v6 = "ref"; + var a3 = true; + var b3 = "isSet"; + var c3 = "booleanEquals"; + var d3 = "error"; + var e4 = "endpoint"; + var f5 = "tree"; + var g3 = "PartitionResult"; + var h4 = { [s4]: false, "type": "String" }; + var i4 = { [s4]: true, "default": false, "type": "Boolean" }; + var j3 = { [v6]: "Endpoint" }; + var k3 = { [t4]: c3, [u3]: [{ [v6]: "UseFIPS" }, true] }; + var l3 = { [t4]: c3, [u3]: [{ [v6]: "UseDualStack" }, true] }; + var m4 = {}; + var n3 = { [t4]: "getAttr", [u3]: [{ [v6]: g3 }, "supportsFIPS"] }; + var o3 = { [t4]: c3, [u3]: [true, { [t4]: "getAttr", [u3]: [{ [v6]: g3 }, "supportsDualStack"] }] }; + var p3 = [k3]; + var q3 = [l3]; + var r4 = [{ [v6]: "Region" }]; + var _data3 = { version: "1.0", parameters: { Region: h4, UseDualStack: i4, UseFIPS: i4, Endpoint: h4 }, rules: [{ conditions: [{ [t4]: b3, [u3]: [j3] }], rules: [{ conditions: p3, error: "Invalid Configuration: FIPS and custom endpoint are not supported", type: d3 }, { conditions: q3, error: "Invalid Configuration: Dualstack and custom endpoint are not supported", type: d3 }, { endpoint: { url: j3, properties: m4, headers: m4 }, type: e4 }], type: f5 }, { conditions: [{ [t4]: b3, [u3]: r4 }], rules: [{ conditions: [{ [t4]: "aws.partition", [u3]: r4, assign: g3 }], rules: [{ conditions: [k3, l3], rules: [{ conditions: [{ [t4]: c3, [u3]: [a3, n3] }, o3], rules: [{ endpoint: { url: "https://rds-data-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", properties: m4, headers: m4 }, type: e4 }], type: f5 }, { error: "FIPS and DualStack are enabled, but this partition does not support one or both", type: d3 }], type: f5 }, { conditions: p3, rules: [{ conditions: [{ [t4]: c3, [u3]: [n3, a3] }], rules: [{ endpoint: { url: "https://rds-data-fips.{Region}.{PartitionResult#dnsSuffix}", properties: m4, headers: m4 }, type: e4 }], type: f5 }, { error: "FIPS is enabled but this partition does not support FIPS", type: d3 }], type: f5 }, { conditions: q3, rules: [{ conditions: [o3], rules: [{ endpoint: { url: "https://rds-data.{Region}.{PartitionResult#dualStackDnsSuffix}", properties: m4, headers: m4 }, type: e4 }], type: f5 }, { error: "DualStack is enabled but this partition does not support DualStack", type: d3 }], type: f5 }, { endpoint: { url: "https://rds-data.{Region}.{PartitionResult#dnsSuffix}", properties: m4, headers: m4 }, type: e4 }], type: f5 }], type: f5 }, { error: "Invalid Configuration: Missing Region", type: d3 }] }; + exports2.ruleSet = _data3; + } +}); + +// ../node_modules/.pnpm/@aws-sdk+client-rds-data@3.817.0/node_modules/@aws-sdk/client-rds-data/dist-cjs/endpoint/endpointResolver.js +var require_endpointResolver2 = __commonJS({ + "../node_modules/.pnpm/@aws-sdk+client-rds-data@3.817.0/node_modules/@aws-sdk/client-rds-data/dist-cjs/endpoint/endpointResolver.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.defaultEndpointResolver = void 0; + var util_endpoints_1 = require_dist_cjs19(); + var util_endpoints_2 = require_dist_cjs18(); + var ruleset_1 = require_ruleset2(); + var cache3 = new util_endpoints_2.EndpointCache({ + size: 50, + params: ["Endpoint", "Region", "UseDualStack", "UseFIPS"] + }); + var defaultEndpointResolver3 = (endpointParams, context = {}) => { + return cache3.get(endpointParams, () => (0, util_endpoints_2.resolveEndpoint)(ruleset_1.ruleSet, { + endpointParams, + logger: context.logger + })); + }; + exports2.defaultEndpointResolver = defaultEndpointResolver3; + util_endpoints_2.customEndpointFunctions.aws = util_endpoints_1.awsEndpointFunctions; + } +}); + +// ../node_modules/.pnpm/@aws-sdk+client-rds-data@3.817.0/node_modules/@aws-sdk/client-rds-data/dist-cjs/runtimeConfig.shared.js +var require_runtimeConfig_shared2 = __commonJS({ + "../node_modules/.pnpm/@aws-sdk+client-rds-data@3.817.0/node_modules/@aws-sdk/client-rds-data/dist-cjs/runtimeConfig.shared.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.getRuntimeConfig = void 0; + var core_1 = (init_dist_es2(), __toCommonJS(dist_es_exports2)); + var smithy_client_1 = require_dist_cjs23(); + var url_parser_1 = require_dist_cjs31(); + var util_base64_1 = require_dist_cjs11(); + var util_utf8_1 = require_dist_cjs10(); + var httpAuthSchemeProvider_1 = require_httpAuthSchemeProvider(); + var endpointResolver_1 = require_endpointResolver2(); + var getRuntimeConfig5 = (config) => { + return { + apiVersion: "2018-08-01", + base64Decoder: (config == null ? void 0 : config.base64Decoder) ?? util_base64_1.fromBase64, + base64Encoder: (config == null ? void 0 : config.base64Encoder) ?? util_base64_1.toBase64, + disableHostPrefix: (config == null ? void 0 : config.disableHostPrefix) ?? false, + endpointProvider: (config == null ? void 0 : config.endpointProvider) ?? endpointResolver_1.defaultEndpointResolver, + extensions: (config == null ? void 0 : config.extensions) ?? [], + httpAuthSchemeProvider: (config == null ? void 0 : config.httpAuthSchemeProvider) ?? httpAuthSchemeProvider_1.defaultRDSDataHttpAuthSchemeProvider, + httpAuthSchemes: (config == null ? void 0 : config.httpAuthSchemes) ?? [ + { + schemeId: "aws.auth#sigv4", + identityProvider: (ipc) => ipc.getIdentityProvider("aws.auth#sigv4"), + signer: new core_1.AwsSdkSigV4Signer() + } + ], + logger: (config == null ? void 0 : config.logger) ?? new smithy_client_1.NoOpLogger(), + serviceId: (config == null ? void 0 : config.serviceId) ?? "RDS Data", + urlParser: (config == null ? void 0 : config.urlParser) ?? url_parser_1.parseUrl, + utf8Decoder: (config == null ? void 0 : config.utf8Decoder) ?? util_utf8_1.fromUtf8, + utf8Encoder: (config == null ? void 0 : config.utf8Encoder) ?? util_utf8_1.toUtf8 + }; + }; + exports2.getRuntimeConfig = getRuntimeConfig5; + } +}); + +// ../node_modules/.pnpm/@aws-sdk+client-rds-data@3.817.0/node_modules/@aws-sdk/client-rds-data/dist-cjs/runtimeConfig.js +var require_runtimeConfig2 = __commonJS({ + "../node_modules/.pnpm/@aws-sdk+client-rds-data@3.817.0/node_modules/@aws-sdk/client-rds-data/dist-cjs/runtimeConfig.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.getRuntimeConfig = void 0; + var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports)); + var package_json_1 = tslib_1.__importDefault(require_package2()); + var core_1 = (init_dist_es2(), __toCommonJS(dist_es_exports2)); + var credential_provider_node_1 = require_dist_cjs50(); + var util_user_agent_node_1 = require_dist_cjs39(); + var config_resolver_1 = require_dist_cjs26(); + var hash_node_1 = require_dist_cjs40(); + var middleware_retry_1 = require_dist_cjs35(); + var node_config_provider_1 = require_dist_cjs29(); + var node_http_handler_1 = require_dist_cjs14(); + var util_body_length_node_1 = require_dist_cjs41(); + var util_retry_1 = require_dist_cjs34(); + var runtimeConfig_shared_1 = require_runtimeConfig_shared2(); + var smithy_client_1 = require_dist_cjs23(); + var util_defaults_mode_node_1 = require_dist_cjs42(); + var smithy_client_2 = require_dist_cjs23(); + var getRuntimeConfig5 = (config) => { + (0, smithy_client_2.emitWarningIfUnsupportedVersion)(process.version); + const defaultsMode = (0, util_defaults_mode_node_1.resolveDefaultsModeConfig)(config); + const defaultConfigProvider = () => defaultsMode().then(smithy_client_1.loadConfigsForDefaultMode); + const clientSharedValues = (0, runtimeConfig_shared_1.getRuntimeConfig)(config); + (0, core_1.emitWarningIfUnsupportedVersion)(process.version); + const loaderConfig = { + profile: config == null ? void 0 : config.profile, + logger: clientSharedValues.logger + }; + return { + ...clientSharedValues, + ...config, + runtime: "node", + defaultsMode, + authSchemePreference: (config == null ? void 0 : config.authSchemePreference) ?? (0, node_config_provider_1.loadConfig)(core_1.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS, loaderConfig), + bodyLengthChecker: (config == null ? void 0 : config.bodyLengthChecker) ?? util_body_length_node_1.calculateBodyLength, + credentialDefaultProvider: (config == null ? void 0 : config.credentialDefaultProvider) ?? credential_provider_node_1.defaultProvider, + defaultUserAgentProvider: (config == null ? void 0 : config.defaultUserAgentProvider) ?? (0, util_user_agent_node_1.createDefaultUserAgentProvider)({ serviceId: clientSharedValues.serviceId, clientVersion: package_json_1.default.version }), + maxAttempts: (config == null ? void 0 : config.maxAttempts) ?? (0, node_config_provider_1.loadConfig)(middleware_retry_1.NODE_MAX_ATTEMPT_CONFIG_OPTIONS, config), + region: (config == null ? void 0 : config.region) ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_REGION_CONFIG_OPTIONS, { ...config_resolver_1.NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig }), + requestHandler: node_http_handler_1.NodeHttpHandler.create((config == null ? void 0 : config.requestHandler) ?? defaultConfigProvider), + retryMode: (config == null ? void 0 : config.retryMode) ?? (0, node_config_provider_1.loadConfig)({ + ...middleware_retry_1.NODE_RETRY_MODE_CONFIG_OPTIONS, + default: async () => (await defaultConfigProvider()).retryMode || util_retry_1.DEFAULT_RETRY_MODE + }, config), + sha256: (config == null ? void 0 : config.sha256) ?? hash_node_1.Hash.bind(null, "sha256"), + streamCollector: (config == null ? void 0 : config.streamCollector) ?? node_http_handler_1.streamCollector, + useDualstackEndpoint: (config == null ? void 0 : config.useDualstackEndpoint) ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, loaderConfig), + useFipsEndpoint: (config == null ? void 0 : config.useFipsEndpoint) ?? (0, node_config_provider_1.loadConfig)(config_resolver_1.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, loaderConfig), + userAgentAppId: (config == null ? void 0 : config.userAgentAppId) ?? (0, node_config_provider_1.loadConfig)(util_user_agent_node_1.NODE_APP_ID_CONFIG_OPTIONS, loaderConfig) + }; + }; + exports2.getRuntimeConfig = getRuntimeConfig5; + } +}); + +// ../node_modules/.pnpm/@aws-sdk+client-rds-data@3.817.0/node_modules/@aws-sdk/client-rds-data/dist-cjs/index.js +var require_dist_cjs51 = __commonJS({ + "../node_modules/.pnpm/@aws-sdk+client-rds-data@3.817.0/node_modules/@aws-sdk/client-rds-data/dist-cjs/index.js"(exports2, module2) { + "use strict"; + var __defProp3 = Object.defineProperty; + var __getOwnPropDesc3 = Object.getOwnPropertyDescriptor; + var __getOwnPropNames3 = Object.getOwnPropertyNames; + var __hasOwnProp3 = Object.prototype.hasOwnProperty; + var __name = (target, value) => __defProp3(target, "name", { value, configurable: true }); + var __export2 = (target, all) => { + for (var name in all) + __defProp3(target, name, { get: all[name], enumerable: true }); + }; + var __copyProps3 = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames3(from)) + if (!__hasOwnProp3.call(to, key) && key !== except) + __defProp3(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc3(from, key)) || desc.enumerable }); + } + return to; + }; + var __toCommonJS2 = (mod) => __copyProps3(__defProp3({}, "__esModule", { value: true }), mod); + var index_exports = {}; + __export2(index_exports, { + AccessDeniedException: () => AccessDeniedException2, + ArrayValue: () => ArrayValue, + BadRequestException: () => BadRequestException, + BatchExecuteStatementCommand: () => BatchExecuteStatementCommand, + BeginTransactionCommand: () => BeginTransactionCommand, + CommitTransactionCommand: () => CommitTransactionCommand, + DatabaseErrorException: () => DatabaseErrorException, + DatabaseNotFoundException: () => DatabaseNotFoundException, + DatabaseResumingException: () => DatabaseResumingException, + DatabaseUnavailableException: () => DatabaseUnavailableException, + DecimalReturnType: () => DecimalReturnType, + ExecuteSqlCommand: () => ExecuteSqlCommand, + ExecuteStatementCommand: () => ExecuteStatementCommand, + Field: () => Field, + ForbiddenException: () => ForbiddenException, + HttpEndpointNotEnabledException: () => HttpEndpointNotEnabledException, + InternalServerErrorException: () => InternalServerErrorException, + InvalidResourceStateException: () => InvalidResourceStateException, + InvalidSecretException: () => InvalidSecretException, + LongReturnType: () => LongReturnType, + NotFoundException: () => NotFoundException, + RDSData: () => RDSData, + RDSDataClient: () => RDSDataClient, + RDSDataServiceException: () => RDSDataServiceException, + RecordsFormatType: () => RecordsFormatType, + RollbackTransactionCommand: () => RollbackTransactionCommand, + SecretsErrorException: () => SecretsErrorException, + ServiceUnavailableError: () => ServiceUnavailableError, + StatementTimeoutException: () => StatementTimeoutException, + TransactionNotFoundException: () => TransactionNotFoundException, + TypeHint: () => TypeHint, + UnsupportedResultException: () => UnsupportedResultException, + Value: () => Value, + __Client: () => import_smithy_client25.Client + }); + module2.exports = __toCommonJS2(index_exports); + var import_middleware_host_header3 = require_dist_cjs3(); + var import_middleware_logger3 = require_dist_cjs4(); + var import_middleware_recursion_detection3 = require_dist_cjs5(); + var import_middleware_user_agent3 = require_dist_cjs24(); + var import_config_resolver5 = require_dist_cjs26(); + var import_core17 = (init_dist_es(), __toCommonJS(dist_es_exports)); + var import_middleware_content_length3 = require_dist_cjs27(); + var import_middleware_endpoint6 = require_dist_cjs32(); + var import_middleware_retry5 = require_dist_cjs35(); + var import_httpAuthSchemeProvider5 = require_httpAuthSchemeProvider(); + var resolveClientEndpointParameters3 = /* @__PURE__ */ __name((options) => { + return Object.assign(options, { + useDualstackEndpoint: options.useDualstackEndpoint ?? false, + useFipsEndpoint: options.useFipsEndpoint ?? false, + defaultSigningName: "rds-data" + }); + }, "resolveClientEndpointParameters"); + var commonParams3 = { + UseFIPS: { type: "builtInParams", name: "useFipsEndpoint" }, + Endpoint: { type: "builtInParams", name: "endpoint" }, + Region: { type: "builtInParams", name: "region" }, + UseDualStack: { type: "builtInParams", name: "useDualstackEndpoint" } + }; + var import_runtimeConfig5 = require_runtimeConfig2(); + var import_region_config_resolver3 = require_dist_cjs43(); + var import_protocol_http15 = require_dist_cjs2(); + var import_smithy_client25 = require_dist_cjs23(); + var getHttpAuthExtensionConfiguration3 = /* @__PURE__ */ __name((runtimeConfig) => { + const _httpAuthSchemes = runtimeConfig.httpAuthSchemes; + let _httpAuthSchemeProvider = runtimeConfig.httpAuthSchemeProvider; + let _credentials = runtimeConfig.credentials; + return { + setHttpAuthScheme(httpAuthScheme) { + const index6 = _httpAuthSchemes.findIndex((scheme) => scheme.schemeId === httpAuthScheme.schemeId); + if (index6 === -1) { + _httpAuthSchemes.push(httpAuthScheme); + } else { + _httpAuthSchemes.splice(index6, 1, httpAuthScheme); + } + }, + httpAuthSchemes() { + return _httpAuthSchemes; + }, + setHttpAuthSchemeProvider(httpAuthSchemeProvider) { + _httpAuthSchemeProvider = httpAuthSchemeProvider; + }, + httpAuthSchemeProvider() { + return _httpAuthSchemeProvider; + }, + setCredentials(credentials2) { + _credentials = credentials2; + }, + credentials() { + return _credentials; + } + }; + }, "getHttpAuthExtensionConfiguration"); + var resolveHttpAuthRuntimeConfig3 = /* @__PURE__ */ __name((config) => { + return { + httpAuthSchemes: config.httpAuthSchemes(), + httpAuthSchemeProvider: config.httpAuthSchemeProvider(), + credentials: config.credentials() + }; + }, "resolveHttpAuthRuntimeConfig"); + var resolveRuntimeExtensions3 = /* @__PURE__ */ __name((runtimeConfig, extensions) => { + const extensionConfiguration = Object.assign( + (0, import_region_config_resolver3.getAwsRegionExtensionConfiguration)(runtimeConfig), + (0, import_smithy_client25.getDefaultExtensionConfiguration)(runtimeConfig), + (0, import_protocol_http15.getHttpHandlerExtensionConfiguration)(runtimeConfig), + getHttpAuthExtensionConfiguration3(runtimeConfig) + ); + extensions.forEach((extension) => extension.configure(extensionConfiguration)); + return Object.assign( + runtimeConfig, + (0, import_region_config_resolver3.resolveAwsRegionExtensionConfiguration)(extensionConfiguration), + (0, import_smithy_client25.resolveDefaultRuntimeConfig)(extensionConfiguration), + (0, import_protocol_http15.resolveHttpHandlerRuntimeConfig)(extensionConfiguration), + resolveHttpAuthRuntimeConfig3(extensionConfiguration) + ); + }, "resolveRuntimeExtensions"); + var _a2; + var RDSDataClient = (_a2 = class extends import_smithy_client25.Client { + /** + * The resolved configuration of RDSDataClient class. This is resolved and normalized from the {@link RDSDataClientConfig | constructor configuration interface}. + */ + config; + constructor(...[configuration]) { + const _config_0 = (0, import_runtimeConfig5.getRuntimeConfig)(configuration || {}); + super(_config_0); + this.initConfig = _config_0; + const _config_1 = resolveClientEndpointParameters3(_config_0); + const _config_2 = (0, import_middleware_user_agent3.resolveUserAgentConfig)(_config_1); + const _config_3 = (0, import_middleware_retry5.resolveRetryConfig)(_config_2); + const _config_4 = (0, import_config_resolver5.resolveRegionConfig)(_config_3); + const _config_5 = (0, import_middleware_host_header3.resolveHostHeaderConfig)(_config_4); + const _config_6 = (0, import_middleware_endpoint6.resolveEndpointConfig)(_config_5); + const _config_7 = (0, import_httpAuthSchemeProvider5.resolveHttpAuthSchemeConfig)(_config_6); + const _config_8 = resolveRuntimeExtensions3(_config_7, (configuration == null ? void 0 : configuration.extensions) || []); + this.config = _config_8; + this.middlewareStack.use((0, import_middleware_user_agent3.getUserAgentPlugin)(this.config)); + this.middlewareStack.use((0, import_middleware_retry5.getRetryPlugin)(this.config)); + this.middlewareStack.use((0, import_middleware_content_length3.getContentLengthPlugin)(this.config)); + this.middlewareStack.use((0, import_middleware_host_header3.getHostHeaderPlugin)(this.config)); + this.middlewareStack.use((0, import_middleware_logger3.getLoggerPlugin)(this.config)); + this.middlewareStack.use((0, import_middleware_recursion_detection3.getRecursionDetectionPlugin)(this.config)); + this.middlewareStack.use( + (0, import_core17.getHttpAuthSchemeEndpointRuleSetPlugin)(this.config, { + httpAuthSchemeParametersProvider: import_httpAuthSchemeProvider5.defaultRDSDataHttpAuthSchemeParametersProvider, + identityProviderConfigProvider: /* @__PURE__ */ __name(async (config) => new import_core17.DefaultIdentityProviderConfig({ + "aws.auth#sigv4": config.credentials + }), "identityProviderConfigProvider") + }) + ); + this.middlewareStack.use((0, import_core17.getHttpSigningPlugin)(this.config)); + } + /** + * Destroy underlying resources, like sockets. It's usually not necessary to do this. + * However in Node.js, it's best to explicitly shut down the client's agent when it is no longer needed. + * Otherwise, sockets might stay open for quite a long time before the server terminates them. + */ + destroy() { + super.destroy(); + } + }, __name(_a2, "RDSDataClient"), _a2); + var import_middleware_serde5 = require_dist_cjs7(); + var import_core22 = (init_dist_es2(), __toCommonJS(dist_es_exports2)); + var _a3; + var RDSDataServiceException = (_a3 = class extends import_smithy_client25.ServiceException { + /** + * @internal + */ + constructor(options) { + super(options); + Object.setPrototypeOf(this, _a3.prototype); + } + }, __name(_a3, "RDSDataServiceException"), _a3); + var _a4; + var AccessDeniedException2 = (_a4 = class extends RDSDataServiceException { + name = "AccessDeniedException"; + $fault = "client"; + /** + * @internal + */ + constructor(opts) { + super({ + name: "AccessDeniedException", + $fault: "client", + ...opts + }); + Object.setPrototypeOf(this, _a4.prototype); + } + }, __name(_a4, "AccessDeniedException"), _a4); + var _a5; + var BadRequestException = (_a5 = class extends RDSDataServiceException { + name = "BadRequestException"; + $fault = "client"; + /** + * @internal + */ + constructor(opts) { + super({ + name: "BadRequestException", + $fault: "client", + ...opts + }); + Object.setPrototypeOf(this, _a5.prototype); + } + }, __name(_a5, "BadRequestException"), _a5); + var TypeHint = { + DATE: "DATE", + DECIMAL: "DECIMAL", + JSON: "JSON", + TIME: "TIME", + TIMESTAMP: "TIMESTAMP", + UUID: "UUID" + }; + var _a6; + var DatabaseErrorException = (_a6 = class extends RDSDataServiceException { + name = "DatabaseErrorException"; + $fault = "client"; + /** + * @internal + */ + constructor(opts) { + super({ + name: "DatabaseErrorException", + $fault: "client", + ...opts + }); + Object.setPrototypeOf(this, _a6.prototype); + } + }, __name(_a6, "DatabaseErrorException"), _a6); + var _a7; + var DatabaseNotFoundException = (_a7 = class extends RDSDataServiceException { + name = "DatabaseNotFoundException"; + $fault = "client"; + /** + * @internal + */ + constructor(opts) { + super({ + name: "DatabaseNotFoundException", + $fault: "client", + ...opts + }); + Object.setPrototypeOf(this, _a7.prototype); + } + }, __name(_a7, "DatabaseNotFoundException"), _a7); + var _a8; + var DatabaseResumingException = (_a8 = class extends RDSDataServiceException { + name = "DatabaseResumingException"; + $fault = "client"; + /** + * @internal + */ + constructor(opts) { + super({ + name: "DatabaseResumingException", + $fault: "client", + ...opts + }); + Object.setPrototypeOf(this, _a8.prototype); + } + }, __name(_a8, "DatabaseResumingException"), _a8); + var _a9; + var DatabaseUnavailableException = (_a9 = class extends RDSDataServiceException { + name = "DatabaseUnavailableException"; + $fault = "server"; + /** + * @internal + */ + constructor(opts) { + super({ + name: "DatabaseUnavailableException", + $fault: "server", + ...opts + }); + Object.setPrototypeOf(this, _a9.prototype); + } + }, __name(_a9, "DatabaseUnavailableException"), _a9); + var _a10; + var ForbiddenException = (_a10 = class extends RDSDataServiceException { + name = "ForbiddenException"; + $fault = "client"; + /** + * @internal + */ + constructor(opts) { + super({ + name: "ForbiddenException", + $fault: "client", + ...opts + }); + Object.setPrototypeOf(this, _a10.prototype); + } + }, __name(_a10, "ForbiddenException"), _a10); + var _a11; + var HttpEndpointNotEnabledException = (_a11 = class extends RDSDataServiceException { + name = "HttpEndpointNotEnabledException"; + $fault = "client"; + /** + * @internal + */ + constructor(opts) { + super({ + name: "HttpEndpointNotEnabledException", + $fault: "client", + ...opts + }); + Object.setPrototypeOf(this, _a11.prototype); + } + }, __name(_a11, "HttpEndpointNotEnabledException"), _a11); + var _a12; + var InternalServerErrorException = (_a12 = class extends RDSDataServiceException { + name = "InternalServerErrorException"; + $fault = "server"; + /** + * @internal + */ + constructor(opts) { + super({ + name: "InternalServerErrorException", + $fault: "server", + ...opts + }); + Object.setPrototypeOf(this, _a12.prototype); + } + }, __name(_a12, "InternalServerErrorException"), _a12); + var _a13; + var InvalidResourceStateException = (_a13 = class extends RDSDataServiceException { + name = "InvalidResourceStateException"; + $fault = "client"; + /** + * @internal + */ + constructor(opts) { + super({ + name: "InvalidResourceStateException", + $fault: "client", + ...opts + }); + Object.setPrototypeOf(this, _a13.prototype); + } + }, __name(_a13, "InvalidResourceStateException"), _a13); + var _a14; + var InvalidSecretException = (_a14 = class extends RDSDataServiceException { + name = "InvalidSecretException"; + $fault = "client"; + /** + * @internal + */ + constructor(opts) { + super({ + name: "InvalidSecretException", + $fault: "client", + ...opts + }); + Object.setPrototypeOf(this, _a14.prototype); + } + }, __name(_a14, "InvalidSecretException"), _a14); + var _a15; + var SecretsErrorException = (_a15 = class extends RDSDataServiceException { + name = "SecretsErrorException"; + $fault = "client"; + /** + * @internal + */ + constructor(opts) { + super({ + name: "SecretsErrorException", + $fault: "client", + ...opts + }); + Object.setPrototypeOf(this, _a15.prototype); + } + }, __name(_a15, "SecretsErrorException"), _a15); + var _a16; + var ServiceUnavailableError = (_a16 = class extends RDSDataServiceException { + name = "ServiceUnavailableError"; + $fault = "server"; + /** + * @internal + */ + constructor(opts) { + super({ + name: "ServiceUnavailableError", + $fault: "server", + ...opts + }); + Object.setPrototypeOf(this, _a16.prototype); + } + }, __name(_a16, "ServiceUnavailableError"), _a16); + var _a17; + var StatementTimeoutException = (_a17 = class extends RDSDataServiceException { + name = "StatementTimeoutException"; + $fault = "client"; + /** + *

The database connection ID that executed the SQL statement.

+ * @public + */ + dbConnectionId; + /** + * @internal + */ + constructor(opts) { + super({ + name: "StatementTimeoutException", + $fault: "client", + ...opts + }); + Object.setPrototypeOf(this, _a17.prototype); + this.dbConnectionId = opts.dbConnectionId; + } + }, __name(_a17, "StatementTimeoutException"), _a17); + var _a18; + var TransactionNotFoundException = (_a18 = class extends RDSDataServiceException { + name = "TransactionNotFoundException"; + $fault = "client"; + /** + * @internal + */ + constructor(opts) { + super({ + name: "TransactionNotFoundException", + $fault: "client", + ...opts + }); + Object.setPrototypeOf(this, _a18.prototype); + } + }, __name(_a18, "TransactionNotFoundException"), _a18); + var _a19; + var NotFoundException = (_a19 = class extends RDSDataServiceException { + name = "NotFoundException"; + $fault = "client"; + /** + * @internal + */ + constructor(opts) { + super({ + name: "NotFoundException", + $fault: "client", + ...opts + }); + Object.setPrototypeOf(this, _a19.prototype); + } + }, __name(_a19, "NotFoundException"), _a19); + var DecimalReturnType = { + DOUBLE_OR_LONG: "DOUBLE_OR_LONG", + STRING: "STRING" + }; + var RecordsFormatType = { + JSON: "JSON", + NONE: "NONE" + }; + var LongReturnType = { + LONG: "LONG", + STRING: "STRING" + }; + var _a20; + var UnsupportedResultException = (_a20 = class extends RDSDataServiceException { + name = "UnsupportedResultException"; + $fault = "client"; + /** + * @internal + */ + constructor(opts) { + super({ + name: "UnsupportedResultException", + $fault: "client", + ...opts + }); + Object.setPrototypeOf(this, _a20.prototype); + } + }, __name(_a20, "UnsupportedResultException"), _a20); + var ArrayValue; + ((ArrayValue2) => { + ArrayValue2.visit = /* @__PURE__ */ __name((value, visitor) => { + if (value.booleanValues !== void 0) return visitor.booleanValues(value.booleanValues); + if (value.longValues !== void 0) return visitor.longValues(value.longValues); + if (value.doubleValues !== void 0) return visitor.doubleValues(value.doubleValues); + if (value.stringValues !== void 0) return visitor.stringValues(value.stringValues); + if (value.arrayValues !== void 0) return visitor.arrayValues(value.arrayValues); + return visitor._(value.$unknown[0], value.$unknown[1]); + }, "visit"); + })(ArrayValue || (ArrayValue = {})); + var Field; + ((Field2) => { + Field2.visit = /* @__PURE__ */ __name((value, visitor) => { + if (value.isNull !== void 0) return visitor.isNull(value.isNull); + if (value.booleanValue !== void 0) return visitor.booleanValue(value.booleanValue); + if (value.longValue !== void 0) return visitor.longValue(value.longValue); + if (value.doubleValue !== void 0) return visitor.doubleValue(value.doubleValue); + if (value.stringValue !== void 0) return visitor.stringValue(value.stringValue); + if (value.blobValue !== void 0) return visitor.blobValue(value.blobValue); + if (value.arrayValue !== void 0) return visitor.arrayValue(value.arrayValue); + return visitor._(value.$unknown[0], value.$unknown[1]); + }, "visit"); + })(Field || (Field = {})); + var Value; + ((Value3) => { + Value3.visit = /* @__PURE__ */ __name((value, visitor) => { + if (value.isNull !== void 0) return visitor.isNull(value.isNull); + if (value.bitValue !== void 0) return visitor.bitValue(value.bitValue); + if (value.bigIntValue !== void 0) return visitor.bigIntValue(value.bigIntValue); + if (value.intValue !== void 0) return visitor.intValue(value.intValue); + if (value.doubleValue !== void 0) return visitor.doubleValue(value.doubleValue); + if (value.realValue !== void 0) return visitor.realValue(value.realValue); + if (value.stringValue !== void 0) return visitor.stringValue(value.stringValue); + if (value.blobValue !== void 0) return visitor.blobValue(value.blobValue); + if (value.arrayValues !== void 0) return visitor.arrayValues(value.arrayValues); + if (value.structValue !== void 0) return visitor.structValue(value.structValue); + return visitor._(value.$unknown[0], value.$unknown[1]); + }, "visit"); + })(Value || (Value = {})); + var se_BatchExecuteStatementCommand = /* @__PURE__ */ __name(async (input, context) => { + const b3 = (0, import_core17.requestBuilder)(input, context); + const headers = { + "content-type": "application/json" + }; + b3.bp("/BatchExecute"); + let body; + body = JSON.stringify( + (0, import_smithy_client25.take)(input, { + database: [], + parameterSets: /* @__PURE__ */ __name((_3) => se_SqlParameterSets(_3, context), "parameterSets"), + resourceArn: [], + schema: [], + secretArn: [], + sql: [], + transactionId: [] + }) + ); + b3.m("POST").h(headers).b(body); + return b3.build(); + }, "se_BatchExecuteStatementCommand"); + var se_BeginTransactionCommand = /* @__PURE__ */ __name(async (input, context) => { + const b3 = (0, import_core17.requestBuilder)(input, context); + const headers = { + "content-type": "application/json" + }; + b3.bp("/BeginTransaction"); + let body; + body = JSON.stringify( + (0, import_smithy_client25.take)(input, { + database: [], + resourceArn: [], + schema: [], + secretArn: [] + }) + ); + b3.m("POST").h(headers).b(body); + return b3.build(); + }, "se_BeginTransactionCommand"); + var se_CommitTransactionCommand = /* @__PURE__ */ __name(async (input, context) => { + const b3 = (0, import_core17.requestBuilder)(input, context); + const headers = { + "content-type": "application/json" + }; + b3.bp("/CommitTransaction"); + let body; + body = JSON.stringify( + (0, import_smithy_client25.take)(input, { + resourceArn: [], + secretArn: [], + transactionId: [] + }) + ); + b3.m("POST").h(headers).b(body); + return b3.build(); + }, "se_CommitTransactionCommand"); + var se_ExecuteSqlCommand = /* @__PURE__ */ __name(async (input, context) => { + const b3 = (0, import_core17.requestBuilder)(input, context); + const headers = { + "content-type": "application/json" + }; + b3.bp("/ExecuteSql"); + let body; + body = JSON.stringify( + (0, import_smithy_client25.take)(input, { + awsSecretStoreArn: [], + database: [], + dbClusterOrInstanceArn: [], + schema: [], + sqlStatements: [] + }) + ); + b3.m("POST").h(headers).b(body); + return b3.build(); + }, "se_ExecuteSqlCommand"); + var se_ExecuteStatementCommand = /* @__PURE__ */ __name(async (input, context) => { + const b3 = (0, import_core17.requestBuilder)(input, context); + const headers = { + "content-type": "application/json" + }; + b3.bp("/Execute"); + let body; + body = JSON.stringify( + (0, import_smithy_client25.take)(input, { + continueAfterTimeout: [], + database: [], + formatRecordsAs: [], + includeResultMetadata: [], + parameters: /* @__PURE__ */ __name((_3) => se_SqlParametersList(_3, context), "parameters"), + resourceArn: [], + resultSetOptions: /* @__PURE__ */ __name((_3) => (0, import_smithy_client25._json)(_3), "resultSetOptions"), + schema: [], + secretArn: [], + sql: [], + transactionId: [] + }) + ); + b3.m("POST").h(headers).b(body); + return b3.build(); + }, "se_ExecuteStatementCommand"); + var se_RollbackTransactionCommand = /* @__PURE__ */ __name(async (input, context) => { + const b3 = (0, import_core17.requestBuilder)(input, context); + const headers = { + "content-type": "application/json" + }; + b3.bp("/RollbackTransaction"); + let body; + body = JSON.stringify( + (0, import_smithy_client25.take)(input, { + resourceArn: [], + secretArn: [], + transactionId: [] + }) + ); + b3.m("POST").h(headers).b(body); + return b3.build(); + }, "se_RollbackTransactionCommand"); + var de_BatchExecuteStatementCommand = /* @__PURE__ */ __name(async (output, context) => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return de_CommandError3(output, context); + } + const contents = (0, import_smithy_client25.map)({ + $metadata: deserializeMetadata3(output) + }); + const data = (0, import_smithy_client25.expectNonNull)((0, import_smithy_client25.expectObject)(await (0, import_core22.parseJsonBody)(output.body, context)), "body"); + const doc = (0, import_smithy_client25.take)(data, { + updateResults: /* @__PURE__ */ __name((_3) => de_UpdateResults(_3, context), "updateResults") + }); + Object.assign(contents, doc); + return contents; + }, "de_BatchExecuteStatementCommand"); + var de_BeginTransactionCommand = /* @__PURE__ */ __name(async (output, context) => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return de_CommandError3(output, context); + } + const contents = (0, import_smithy_client25.map)({ + $metadata: deserializeMetadata3(output) + }); + const data = (0, import_smithy_client25.expectNonNull)((0, import_smithy_client25.expectObject)(await (0, import_core22.parseJsonBody)(output.body, context)), "body"); + const doc = (0, import_smithy_client25.take)(data, { + transactionId: import_smithy_client25.expectString + }); + Object.assign(contents, doc); + return contents; + }, "de_BeginTransactionCommand"); + var de_CommitTransactionCommand = /* @__PURE__ */ __name(async (output, context) => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return de_CommandError3(output, context); + } + const contents = (0, import_smithy_client25.map)({ + $metadata: deserializeMetadata3(output) + }); + const data = (0, import_smithy_client25.expectNonNull)((0, import_smithy_client25.expectObject)(await (0, import_core22.parseJsonBody)(output.body, context)), "body"); + const doc = (0, import_smithy_client25.take)(data, { + transactionStatus: import_smithy_client25.expectString + }); + Object.assign(contents, doc); + return contents; + }, "de_CommitTransactionCommand"); + var de_ExecuteSqlCommand = /* @__PURE__ */ __name(async (output, context) => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return de_CommandError3(output, context); + } + const contents = (0, import_smithy_client25.map)({ + $metadata: deserializeMetadata3(output) + }); + const data = (0, import_smithy_client25.expectNonNull)((0, import_smithy_client25.expectObject)(await (0, import_core22.parseJsonBody)(output.body, context)), "body"); + const doc = (0, import_smithy_client25.take)(data, { + sqlStatementResults: /* @__PURE__ */ __name((_3) => de_SqlStatementResults(_3, context), "sqlStatementResults") + }); + Object.assign(contents, doc); + return contents; + }, "de_ExecuteSqlCommand"); + var de_ExecuteStatementCommand = /* @__PURE__ */ __name(async (output, context) => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return de_CommandError3(output, context); + } + const contents = (0, import_smithy_client25.map)({ + $metadata: deserializeMetadata3(output) + }); + const data = (0, import_smithy_client25.expectNonNull)((0, import_smithy_client25.expectObject)(await (0, import_core22.parseJsonBody)(output.body, context)), "body"); + const doc = (0, import_smithy_client25.take)(data, { + columnMetadata: import_smithy_client25._json, + formattedRecords: import_smithy_client25.expectString, + generatedFields: /* @__PURE__ */ __name((_3) => de_FieldList(_3, context), "generatedFields"), + numberOfRecordsUpdated: import_smithy_client25.expectLong, + records: /* @__PURE__ */ __name((_3) => de_SqlRecords(_3, context), "records") + }); + Object.assign(contents, doc); + return contents; + }, "de_ExecuteStatementCommand"); + var de_RollbackTransactionCommand = /* @__PURE__ */ __name(async (output, context) => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return de_CommandError3(output, context); + } + const contents = (0, import_smithy_client25.map)({ + $metadata: deserializeMetadata3(output) + }); + const data = (0, import_smithy_client25.expectNonNull)((0, import_smithy_client25.expectObject)(await (0, import_core22.parseJsonBody)(output.body, context)), "body"); + const doc = (0, import_smithy_client25.take)(data, { + transactionStatus: import_smithy_client25.expectString + }); + Object.assign(contents, doc); + return contents; + }, "de_RollbackTransactionCommand"); + var de_CommandError3 = /* @__PURE__ */ __name(async (output, context) => { + const parsedOutput = { + ...output, + body: await (0, import_core22.parseJsonErrorBody)(output.body, context) + }; + const errorCode = (0, import_core22.loadRestJsonErrorCode)(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.rdsdata#AccessDeniedException": + throw await de_AccessDeniedExceptionRes2(parsedOutput, context); + case "BadRequestException": + case "com.amazonaws.rdsdata#BadRequestException": + throw await de_BadRequestExceptionRes(parsedOutput, context); + case "DatabaseErrorException": + case "com.amazonaws.rdsdata#DatabaseErrorException": + throw await de_DatabaseErrorExceptionRes(parsedOutput, context); + case "DatabaseNotFoundException": + case "com.amazonaws.rdsdata#DatabaseNotFoundException": + throw await de_DatabaseNotFoundExceptionRes(parsedOutput, context); + case "DatabaseResumingException": + case "com.amazonaws.rdsdata#DatabaseResumingException": + throw await de_DatabaseResumingExceptionRes(parsedOutput, context); + case "DatabaseUnavailableException": + case "com.amazonaws.rdsdata#DatabaseUnavailableException": + throw await de_DatabaseUnavailableExceptionRes(parsedOutput, context); + case "ForbiddenException": + case "com.amazonaws.rdsdata#ForbiddenException": + throw await de_ForbiddenExceptionRes(parsedOutput, context); + case "HttpEndpointNotEnabledException": + case "com.amazonaws.rdsdata#HttpEndpointNotEnabledException": + throw await de_HttpEndpointNotEnabledExceptionRes(parsedOutput, context); + case "InternalServerErrorException": + case "com.amazonaws.rdsdata#InternalServerErrorException": + throw await de_InternalServerErrorExceptionRes(parsedOutput, context); + case "InvalidResourceStateException": + case "com.amazonaws.rdsdata#InvalidResourceStateException": + throw await de_InvalidResourceStateExceptionRes(parsedOutput, context); + case "InvalidSecretException": + case "com.amazonaws.rdsdata#InvalidSecretException": + throw await de_InvalidSecretExceptionRes(parsedOutput, context); + case "SecretsErrorException": + case "com.amazonaws.rdsdata#SecretsErrorException": + throw await de_SecretsErrorExceptionRes(parsedOutput, context); + case "ServiceUnavailableError": + case "com.amazonaws.rdsdata#ServiceUnavailableError": + throw await de_ServiceUnavailableErrorRes(parsedOutput, context); + case "StatementTimeoutException": + case "com.amazonaws.rdsdata#StatementTimeoutException": + throw await de_StatementTimeoutExceptionRes(parsedOutput, context); + case "TransactionNotFoundException": + case "com.amazonaws.rdsdata#TransactionNotFoundException": + throw await de_TransactionNotFoundExceptionRes(parsedOutput, context); + case "NotFoundException": + case "com.amazonaws.rdsdata#NotFoundException": + throw await de_NotFoundExceptionRes(parsedOutput, context); + case "UnsupportedResultException": + case "com.amazonaws.rdsdata#UnsupportedResultException": + throw await de_UnsupportedResultExceptionRes(parsedOutput, context); + default: + const parsedBody = parsedOutput.body; + return throwDefaultError3({ + output, + parsedBody, + errorCode + }); + } + }, "de_CommandError"); + var throwDefaultError3 = (0, import_smithy_client25.withBaseException)(RDSDataServiceException); + var de_AccessDeniedExceptionRes2 = /* @__PURE__ */ __name(async (parsedOutput, context) => { + const contents = (0, import_smithy_client25.map)({}); + const data = parsedOutput.body; + const doc = (0, import_smithy_client25.take)(data, { + message: import_smithy_client25.expectString + }); + Object.assign(contents, doc); + const exception = new AccessDeniedException2({ + $metadata: deserializeMetadata3(parsedOutput), + ...contents + }); + return (0, import_smithy_client25.decorateServiceException)(exception, parsedOutput.body); + }, "de_AccessDeniedExceptionRes"); + var de_BadRequestExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => { + const contents = (0, import_smithy_client25.map)({}); + const data = parsedOutput.body; + const doc = (0, import_smithy_client25.take)(data, { + message: import_smithy_client25.expectString + }); + Object.assign(contents, doc); + const exception = new BadRequestException({ + $metadata: deserializeMetadata3(parsedOutput), + ...contents + }); + return (0, import_smithy_client25.decorateServiceException)(exception, parsedOutput.body); + }, "de_BadRequestExceptionRes"); + var de_DatabaseErrorExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => { + const contents = (0, import_smithy_client25.map)({}); + const data = parsedOutput.body; + const doc = (0, import_smithy_client25.take)(data, { + message: import_smithy_client25.expectString + }); + Object.assign(contents, doc); + const exception = new DatabaseErrorException({ + $metadata: deserializeMetadata3(parsedOutput), + ...contents + }); + return (0, import_smithy_client25.decorateServiceException)(exception, parsedOutput.body); + }, "de_DatabaseErrorExceptionRes"); + var de_DatabaseNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => { + const contents = (0, import_smithy_client25.map)({}); + const data = parsedOutput.body; + const doc = (0, import_smithy_client25.take)(data, { + message: import_smithy_client25.expectString + }); + Object.assign(contents, doc); + const exception = new DatabaseNotFoundException({ + $metadata: deserializeMetadata3(parsedOutput), + ...contents + }); + return (0, import_smithy_client25.decorateServiceException)(exception, parsedOutput.body); + }, "de_DatabaseNotFoundExceptionRes"); + var de_DatabaseResumingExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => { + const contents = (0, import_smithy_client25.map)({}); + const data = parsedOutput.body; + const doc = (0, import_smithy_client25.take)(data, { + message: import_smithy_client25.expectString + }); + Object.assign(contents, doc); + const exception = new DatabaseResumingException({ + $metadata: deserializeMetadata3(parsedOutput), + ...contents + }); + return (0, import_smithy_client25.decorateServiceException)(exception, parsedOutput.body); + }, "de_DatabaseResumingExceptionRes"); + var de_DatabaseUnavailableExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => { + const contents = (0, import_smithy_client25.map)({}); + const data = parsedOutput.body; + const doc = (0, import_smithy_client25.take)(data, {}); + Object.assign(contents, doc); + const exception = new DatabaseUnavailableException({ + $metadata: deserializeMetadata3(parsedOutput), + ...contents + }); + return (0, import_smithy_client25.decorateServiceException)(exception, parsedOutput.body); + }, "de_DatabaseUnavailableExceptionRes"); + var de_ForbiddenExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => { + const contents = (0, import_smithy_client25.map)({}); + const data = parsedOutput.body; + const doc = (0, import_smithy_client25.take)(data, { + message: import_smithy_client25.expectString + }); + Object.assign(contents, doc); + const exception = new ForbiddenException({ + $metadata: deserializeMetadata3(parsedOutput), + ...contents + }); + return (0, import_smithy_client25.decorateServiceException)(exception, parsedOutput.body); + }, "de_ForbiddenExceptionRes"); + var de_HttpEndpointNotEnabledExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => { + const contents = (0, import_smithy_client25.map)({}); + const data = parsedOutput.body; + const doc = (0, import_smithy_client25.take)(data, { + message: import_smithy_client25.expectString + }); + Object.assign(contents, doc); + const exception = new HttpEndpointNotEnabledException({ + $metadata: deserializeMetadata3(parsedOutput), + ...contents + }); + return (0, import_smithy_client25.decorateServiceException)(exception, parsedOutput.body); + }, "de_HttpEndpointNotEnabledExceptionRes"); + var de_InternalServerErrorExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => { + const contents = (0, import_smithy_client25.map)({}); + const data = parsedOutput.body; + const doc = (0, import_smithy_client25.take)(data, {}); + Object.assign(contents, doc); + const exception = new InternalServerErrorException({ + $metadata: deserializeMetadata3(parsedOutput), + ...contents + }); + return (0, import_smithy_client25.decorateServiceException)(exception, parsedOutput.body); + }, "de_InternalServerErrorExceptionRes"); + var de_InvalidResourceStateExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => { + const contents = (0, import_smithy_client25.map)({}); + const data = parsedOutput.body; + const doc = (0, import_smithy_client25.take)(data, { + message: import_smithy_client25.expectString + }); + Object.assign(contents, doc); + const exception = new InvalidResourceStateException({ + $metadata: deserializeMetadata3(parsedOutput), + ...contents + }); + return (0, import_smithy_client25.decorateServiceException)(exception, parsedOutput.body); + }, "de_InvalidResourceStateExceptionRes"); + var de_InvalidSecretExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => { + const contents = (0, import_smithy_client25.map)({}); + const data = parsedOutput.body; + const doc = (0, import_smithy_client25.take)(data, { + message: import_smithy_client25.expectString + }); + Object.assign(contents, doc); + const exception = new InvalidSecretException({ + $metadata: deserializeMetadata3(parsedOutput), + ...contents + }); + return (0, import_smithy_client25.decorateServiceException)(exception, parsedOutput.body); + }, "de_InvalidSecretExceptionRes"); + var de_NotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => { + const contents = (0, import_smithy_client25.map)({}); + const data = parsedOutput.body; + const doc = (0, import_smithy_client25.take)(data, { + message: import_smithy_client25.expectString + }); + Object.assign(contents, doc); + const exception = new NotFoundException({ + $metadata: deserializeMetadata3(parsedOutput), + ...contents + }); + return (0, import_smithy_client25.decorateServiceException)(exception, parsedOutput.body); + }, "de_NotFoundExceptionRes"); + var de_SecretsErrorExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => { + const contents = (0, import_smithy_client25.map)({}); + const data = parsedOutput.body; + const doc = (0, import_smithy_client25.take)(data, { + message: import_smithy_client25.expectString + }); + Object.assign(contents, doc); + const exception = new SecretsErrorException({ + $metadata: deserializeMetadata3(parsedOutput), + ...contents + }); + return (0, import_smithy_client25.decorateServiceException)(exception, parsedOutput.body); + }, "de_SecretsErrorExceptionRes"); + var de_ServiceUnavailableErrorRes = /* @__PURE__ */ __name(async (parsedOutput, context) => { + const contents = (0, import_smithy_client25.map)({}); + const data = parsedOutput.body; + const doc = (0, import_smithy_client25.take)(data, {}); + Object.assign(contents, doc); + const exception = new ServiceUnavailableError({ + $metadata: deserializeMetadata3(parsedOutput), + ...contents + }); + return (0, import_smithy_client25.decorateServiceException)(exception, parsedOutput.body); + }, "de_ServiceUnavailableErrorRes"); + var de_StatementTimeoutExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => { + const contents = (0, import_smithy_client25.map)({}); + const data = parsedOutput.body; + const doc = (0, import_smithy_client25.take)(data, { + dbConnectionId: import_smithy_client25.expectLong, + message: import_smithy_client25.expectString + }); + Object.assign(contents, doc); + const exception = new StatementTimeoutException({ + $metadata: deserializeMetadata3(parsedOutput), + ...contents + }); + return (0, import_smithy_client25.decorateServiceException)(exception, parsedOutput.body); + }, "de_StatementTimeoutExceptionRes"); + var de_TransactionNotFoundExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => { + const contents = (0, import_smithy_client25.map)({}); + const data = parsedOutput.body; + const doc = (0, import_smithy_client25.take)(data, { + message: import_smithy_client25.expectString + }); + Object.assign(contents, doc); + const exception = new TransactionNotFoundException({ + $metadata: deserializeMetadata3(parsedOutput), + ...contents + }); + return (0, import_smithy_client25.decorateServiceException)(exception, parsedOutput.body); + }, "de_TransactionNotFoundExceptionRes"); + var de_UnsupportedResultExceptionRes = /* @__PURE__ */ __name(async (parsedOutput, context) => { + const contents = (0, import_smithy_client25.map)({}); + const data = parsedOutput.body; + const doc = (0, import_smithy_client25.take)(data, { + message: import_smithy_client25.expectString + }); + Object.assign(contents, doc); + const exception = new UnsupportedResultException({ + $metadata: deserializeMetadata3(parsedOutput), + ...contents + }); + return (0, import_smithy_client25.decorateServiceException)(exception, parsedOutput.body); + }, "de_UnsupportedResultExceptionRes"); + var se_ArrayOfArray = /* @__PURE__ */ __name((input, context) => { + return input.filter((e4) => e4 != null).map((entry) => { + return se_ArrayValue(entry, context); + }); + }, "se_ArrayOfArray"); + var se_ArrayValue = /* @__PURE__ */ __name((input, context) => { + return ArrayValue.visit(input, { + arrayValues: /* @__PURE__ */ __name((value) => ({ arrayValues: se_ArrayOfArray(value, context) }), "arrayValues"), + booleanValues: /* @__PURE__ */ __name((value) => ({ booleanValues: (0, import_smithy_client25._json)(value) }), "booleanValues"), + doubleValues: /* @__PURE__ */ __name((value) => ({ doubleValues: se_DoubleArray(value, context) }), "doubleValues"), + longValues: /* @__PURE__ */ __name((value) => ({ longValues: (0, import_smithy_client25._json)(value) }), "longValues"), + stringValues: /* @__PURE__ */ __name((value) => ({ stringValues: (0, import_smithy_client25._json)(value) }), "stringValues"), + _: /* @__PURE__ */ __name((name, value) => ({ [name]: value }), "_") + }); + }, "se_ArrayValue"); + var se_DoubleArray = /* @__PURE__ */ __name((input, context) => { + return input.filter((e4) => e4 != null).map((entry) => { + return (0, import_smithy_client25.serializeFloat)(entry); + }); + }, "se_DoubleArray"); + var se_Field = /* @__PURE__ */ __name((input, context) => { + return Field.visit(input, { + arrayValue: /* @__PURE__ */ __name((value) => ({ arrayValue: se_ArrayValue(value, context) }), "arrayValue"), + blobValue: /* @__PURE__ */ __name((value) => ({ blobValue: context.base64Encoder(value) }), "blobValue"), + booleanValue: /* @__PURE__ */ __name((value) => ({ booleanValue: value }), "booleanValue"), + doubleValue: /* @__PURE__ */ __name((value) => ({ doubleValue: (0, import_smithy_client25.serializeFloat)(value) }), "doubleValue"), + isNull: /* @__PURE__ */ __name((value) => ({ isNull: value }), "isNull"), + longValue: /* @__PURE__ */ __name((value) => ({ longValue: value }), "longValue"), + stringValue: /* @__PURE__ */ __name((value) => ({ stringValue: value }), "stringValue"), + _: /* @__PURE__ */ __name((name, value) => ({ [name]: value }), "_") + }); + }, "se_Field"); + var se_SqlParameter = /* @__PURE__ */ __name((input, context) => { + return (0, import_smithy_client25.take)(input, { + name: [], + typeHint: [], + value: /* @__PURE__ */ __name((_3) => se_Field(_3, context), "value") + }); + }, "se_SqlParameter"); + var se_SqlParameterSets = /* @__PURE__ */ __name((input, context) => { + return input.filter((e4) => e4 != null).map((entry) => { + return se_SqlParametersList(entry, context); + }); + }, "se_SqlParameterSets"); + var se_SqlParametersList = /* @__PURE__ */ __name((input, context) => { + return input.filter((e4) => e4 != null).map((entry) => { + return se_SqlParameter(entry, context); + }); + }, "se_SqlParametersList"); + var de_ArrayOfArray = /* @__PURE__ */ __name((output, context) => { + const retVal = (output || []).filter((e4) => e4 != null).map((entry) => { + return de_ArrayValue((0, import_core22.awsExpectUnion)(entry), context); + }); + return retVal; + }, "de_ArrayOfArray"); + var de_ArrayValue = /* @__PURE__ */ __name((output, context) => { + if (output.arrayValues != null) { + return { + arrayValues: de_ArrayOfArray(output.arrayValues, context) + }; + } + if (output.booleanValues != null) { + return { + booleanValues: (0, import_smithy_client25._json)(output.booleanValues) + }; + } + if (output.doubleValues != null) { + return { + doubleValues: de_DoubleArray(output.doubleValues, context) + }; + } + if (output.longValues != null) { + return { + longValues: (0, import_smithy_client25._json)(output.longValues) + }; + } + if (output.stringValues != null) { + return { + stringValues: (0, import_smithy_client25._json)(output.stringValues) + }; + } + return { $unknown: Object.entries(output)[0] }; + }, "de_ArrayValue"); + var de_ArrayValueList = /* @__PURE__ */ __name((output, context) => { + const retVal = (output || []).filter((e4) => e4 != null).map((entry) => { + return de_Value((0, import_core22.awsExpectUnion)(entry), context); + }); + return retVal; + }, "de_ArrayValueList"); + var de_DoubleArray = /* @__PURE__ */ __name((output, context) => { + const retVal = (output || []).filter((e4) => e4 != null).map((entry) => { + return (0, import_smithy_client25.limitedParseDouble)(entry); + }); + return retVal; + }, "de_DoubleArray"); + var de_Field = /* @__PURE__ */ __name((output, context) => { + if (output.arrayValue != null) { + return { + arrayValue: de_ArrayValue((0, import_core22.awsExpectUnion)(output.arrayValue), context) + }; + } + if (output.blobValue != null) { + return { + blobValue: context.base64Decoder(output.blobValue) + }; + } + if ((0, import_smithy_client25.expectBoolean)(output.booleanValue) !== void 0) { + return { booleanValue: (0, import_smithy_client25.expectBoolean)(output.booleanValue) }; + } + if ((0, import_smithy_client25.limitedParseDouble)(output.doubleValue) !== void 0) { + return { doubleValue: (0, import_smithy_client25.limitedParseDouble)(output.doubleValue) }; + } + if ((0, import_smithy_client25.expectBoolean)(output.isNull) !== void 0) { + return { isNull: (0, import_smithy_client25.expectBoolean)(output.isNull) }; + } + if ((0, import_smithy_client25.expectLong)(output.longValue) !== void 0) { + return { longValue: (0, import_smithy_client25.expectLong)(output.longValue) }; + } + if ((0, import_smithy_client25.expectString)(output.stringValue) !== void 0) { + return { stringValue: (0, import_smithy_client25.expectString)(output.stringValue) }; + } + return { $unknown: Object.entries(output)[0] }; + }, "de_Field"); + var de_FieldList = /* @__PURE__ */ __name((output, context) => { + const retVal = (output || []).filter((e4) => e4 != null).map((entry) => { + return de_Field((0, import_core22.awsExpectUnion)(entry), context); + }); + return retVal; + }, "de_FieldList"); + var de__Record = /* @__PURE__ */ __name((output, context) => { + return (0, import_smithy_client25.take)(output, { + values: /* @__PURE__ */ __name((_3) => de_Row(_3, context), "values") + }); + }, "de__Record"); + var de_Records = /* @__PURE__ */ __name((output, context) => { + const retVal = (output || []).filter((e4) => e4 != null).map((entry) => { + return de__Record(entry, context); + }); + return retVal; + }, "de_Records"); + var de_ResultFrame = /* @__PURE__ */ __name((output, context) => { + return (0, import_smithy_client25.take)(output, { + records: /* @__PURE__ */ __name((_3) => de_Records(_3, context), "records"), + resultSetMetadata: import_smithy_client25._json + }); + }, "de_ResultFrame"); + var de_Row = /* @__PURE__ */ __name((output, context) => { + const retVal = (output || []).filter((e4) => e4 != null).map((entry) => { + return de_Value((0, import_core22.awsExpectUnion)(entry), context); + }); + return retVal; + }, "de_Row"); + var de_SqlRecords = /* @__PURE__ */ __name((output, context) => { + const retVal = (output || []).filter((e4) => e4 != null).map((entry) => { + return de_FieldList(entry, context); + }); + return retVal; + }, "de_SqlRecords"); + var de_SqlStatementResult = /* @__PURE__ */ __name((output, context) => { + return (0, import_smithy_client25.take)(output, { + numberOfRecordsUpdated: import_smithy_client25.expectLong, + resultFrame: /* @__PURE__ */ __name((_3) => de_ResultFrame(_3, context), "resultFrame") + }); + }, "de_SqlStatementResult"); + var de_SqlStatementResults = /* @__PURE__ */ __name((output, context) => { + const retVal = (output || []).filter((e4) => e4 != null).map((entry) => { + return de_SqlStatementResult(entry, context); + }); + return retVal; + }, "de_SqlStatementResults"); + var de_StructValue = /* @__PURE__ */ __name((output, context) => { + return (0, import_smithy_client25.take)(output, { + attributes: /* @__PURE__ */ __name((_3) => de_ArrayValueList(_3, context), "attributes") + }); + }, "de_StructValue"); + var de_UpdateResult = /* @__PURE__ */ __name((output, context) => { + return (0, import_smithy_client25.take)(output, { + generatedFields: /* @__PURE__ */ __name((_3) => de_FieldList(_3, context), "generatedFields") + }); + }, "de_UpdateResult"); + var de_UpdateResults = /* @__PURE__ */ __name((output, context) => { + const retVal = (output || []).filter((e4) => e4 != null).map((entry) => { + return de_UpdateResult(entry, context); + }); + return retVal; + }, "de_UpdateResults"); + var de_Value = /* @__PURE__ */ __name((output, context) => { + if (output.arrayValues != null) { + return { + arrayValues: de_ArrayValueList(output.arrayValues, context) + }; + } + if ((0, import_smithy_client25.expectLong)(output.bigIntValue) !== void 0) { + return { bigIntValue: (0, import_smithy_client25.expectLong)(output.bigIntValue) }; + } + if ((0, import_smithy_client25.expectBoolean)(output.bitValue) !== void 0) { + return { bitValue: (0, import_smithy_client25.expectBoolean)(output.bitValue) }; + } + if (output.blobValue != null) { + return { + blobValue: context.base64Decoder(output.blobValue) + }; + } + if ((0, import_smithy_client25.limitedParseDouble)(output.doubleValue) !== void 0) { + return { doubleValue: (0, import_smithy_client25.limitedParseDouble)(output.doubleValue) }; + } + if ((0, import_smithy_client25.expectInt32)(output.intValue) !== void 0) { + return { intValue: (0, import_smithy_client25.expectInt32)(output.intValue) }; + } + if ((0, import_smithy_client25.expectBoolean)(output.isNull) !== void 0) { + return { isNull: (0, import_smithy_client25.expectBoolean)(output.isNull) }; + } + if ((0, import_smithy_client25.limitedParseFloat32)(output.realValue) !== void 0) { + return { realValue: (0, import_smithy_client25.limitedParseFloat32)(output.realValue) }; + } + if ((0, import_smithy_client25.expectString)(output.stringValue) !== void 0) { + return { stringValue: (0, import_smithy_client25.expectString)(output.stringValue) }; + } + if (output.structValue != null) { + return { + structValue: de_StructValue(output.structValue, context) + }; + } + return { $unknown: Object.entries(output)[0] }; + }, "de_Value"); + var deserializeMetadata3 = /* @__PURE__ */ __name((output) => ({ + httpStatusCode: output.statusCode, + requestId: output.headers["x-amzn-requestid"] ?? output.headers["x-amzn-request-id"] ?? output.headers["x-amz-request-id"], + extendedRequestId: output.headers["x-amz-id-2"], + cfId: output.headers["x-amz-cf-id"] + }), "deserializeMetadata"); + var _a21; + var BatchExecuteStatementCommand = (_a21 = class extends import_smithy_client25.Command.classBuilder().ep(commonParams3).m(function(Command, cs, config, o3) { + return [ + (0, import_middleware_serde5.getSerdePlugin)(config, this.serialize, this.deserialize), + (0, import_middleware_endpoint6.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) + ]; + }).s("RdsDataService", "BatchExecuteStatement", {}).n("RDSDataClient", "BatchExecuteStatementCommand").f(void 0, void 0).ser(se_BatchExecuteStatementCommand).de(de_BatchExecuteStatementCommand).build() { + }, __name(_a21, "BatchExecuteStatementCommand"), _a21); + var _a22; + var BeginTransactionCommand = (_a22 = class extends import_smithy_client25.Command.classBuilder().ep(commonParams3).m(function(Command, cs, config, o3) { + return [ + (0, import_middleware_serde5.getSerdePlugin)(config, this.serialize, this.deserialize), + (0, import_middleware_endpoint6.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) + ]; + }).s("RdsDataService", "BeginTransaction", {}).n("RDSDataClient", "BeginTransactionCommand").f(void 0, void 0).ser(se_BeginTransactionCommand).de(de_BeginTransactionCommand).build() { + }, __name(_a22, "BeginTransactionCommand"), _a22); + var _a23; + var CommitTransactionCommand = (_a23 = class extends import_smithy_client25.Command.classBuilder().ep(commonParams3).m(function(Command, cs, config, o3) { + return [ + (0, import_middleware_serde5.getSerdePlugin)(config, this.serialize, this.deserialize), + (0, import_middleware_endpoint6.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) + ]; + }).s("RdsDataService", "CommitTransaction", {}).n("RDSDataClient", "CommitTransactionCommand").f(void 0, void 0).ser(se_CommitTransactionCommand).de(de_CommitTransactionCommand).build() { + }, __name(_a23, "CommitTransactionCommand"), _a23); + var _a24; + var ExecuteSqlCommand = (_a24 = class extends import_smithy_client25.Command.classBuilder().ep(commonParams3).m(function(Command, cs, config, o3) { + return [ + (0, import_middleware_serde5.getSerdePlugin)(config, this.serialize, this.deserialize), + (0, import_middleware_endpoint6.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) + ]; + }).s("RdsDataService", "ExecuteSql", {}).n("RDSDataClient", "ExecuteSqlCommand").f(void 0, void 0).ser(se_ExecuteSqlCommand).de(de_ExecuteSqlCommand).build() { + }, __name(_a24, "ExecuteSqlCommand"), _a24); + var _a25; + var ExecuteStatementCommand = (_a25 = class extends import_smithy_client25.Command.classBuilder().ep(commonParams3).m(function(Command, cs, config, o3) { + return [ + (0, import_middleware_serde5.getSerdePlugin)(config, this.serialize, this.deserialize), + (0, import_middleware_endpoint6.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) + ]; + }).s("RdsDataService", "ExecuteStatement", {}).n("RDSDataClient", "ExecuteStatementCommand").f(void 0, void 0).ser(se_ExecuteStatementCommand).de(de_ExecuteStatementCommand).build() { + }, __name(_a25, "ExecuteStatementCommand"), _a25); + var _a26; + var RollbackTransactionCommand = (_a26 = class extends import_smithy_client25.Command.classBuilder().ep(commonParams3).m(function(Command, cs, config, o3) { + return [ + (0, import_middleware_serde5.getSerdePlugin)(config, this.serialize, this.deserialize), + (0, import_middleware_endpoint6.getEndpointPlugin)(config, Command.getEndpointParameterInstructions()) + ]; + }).s("RdsDataService", "RollbackTransaction", {}).n("RDSDataClient", "RollbackTransactionCommand").f(void 0, void 0).ser(se_RollbackTransactionCommand).de(de_RollbackTransactionCommand).build() { + }, __name(_a26, "RollbackTransactionCommand"), _a26); + var commands3 = { + BatchExecuteStatementCommand, + BeginTransactionCommand, + CommitTransactionCommand, + ExecuteSqlCommand, + ExecuteStatementCommand, + RollbackTransactionCommand + }; + var _a27; + var RDSData = (_a27 = class extends RDSDataClient { + }, __name(_a27, "RDSData"), _a27); + (0, import_smithy_client25.createAggregatedClient)(commands3, RDSData); + } +}); + +// ../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/primitives/chars.js +var require_chars = __commonJS({ + "../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/primitives/chars.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.$v = exports2.$s = exports2.$r = exports2.$p = exports2.$o = exports2.$n = exports2.$m = exports2.$j = exports2.$b = exports2.$Z = exports2.$Y = exports2.$X = exports2.$V = exports2.$T = exports2.$S = exports2.$R = exports2.$Q = exports2.$P = exports2.$O = exports2.$M = exports2.$L = exports2.$K = exports2.$I = exports2.$H = exports2.$E = exports2.$D = exports2.$C = exports2.$A = exports2.$1 = exports2.$0 = void 0; + exports2.ord = ord; + exports2.chr = chr; + exports2.$0 = ord("0"); + exports2.$1 = ord("1"); + exports2.$A = ord("A"); + exports2.$C = ord("C"); + exports2.$D = ord("D"); + exports2.$E = ord("E"); + exports2.$H = ord("H"); + exports2.$I = ord("I"); + exports2.$K = ord("K"); + exports2.$L = ord("L"); + exports2.$M = ord("M"); + exports2.$O = ord("O"); + exports2.$P = ord("P"); + exports2.$Q = ord("Q"); + exports2.$R = ord("R"); + exports2.$S = ord("S"); + exports2.$T = ord("T"); + exports2.$V = ord("V"); + exports2.$X = ord("X"); + exports2.$Y = ord("Y"); + exports2.$Z = ord("Z"); + exports2.$b = ord("b"); + exports2.$j = ord("j"); + exports2.$m = ord("m"); + exports2.$n = ord("n"); + exports2.$o = ord("o"); + exports2.$p = ord("p"); + exports2.$r = ord("r"); + exports2.$s = ord("s"); + exports2.$v = ord("v"); + function ord(str) { + const ch = str.charCodeAt(0); + if (ch <= 0 || ch >= 255) { + throw new TypeError(`char "${ch}" is outside ASCII`); + } + return ch & 255; + } + function chr(ch) { + if (ch <= 0 || ch >= 255) { + throw new TypeError(`char "${ch}" is outside ASCII`); + } + return String.fromCharCode(ch); + } + } +}); + +// ../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/primitives/buffer.js +var require_buffer = __commonJS({ + "../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/primitives/buffer.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o3, m4, k3, k22) { + if (k22 === void 0) k22 = k3; + var desc = Object.getOwnPropertyDescriptor(m4, k3); + if (!desc || ("get" in desc ? !m4.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m4[k3]; + } }; + } + Object.defineProperty(o3, k22, desc); + } : function(o3, m4, k3, k22) { + if (k22 === void 0) k22 = k3; + o3[k22] = m4[k3]; + }); + var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? function(o3, v6) { + Object.defineProperty(o3, "default", { enumerable: true, value: v6 }); + } : function(o3, v6) { + o3["default"] = v6; + }); + var __importStar2 = exports2 && exports2.__importStar || function(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) { + for (var k3 in mod) if (k3 !== "default" && Object.prototype.hasOwnProperty.call(mod, k3)) __createBinding2(result, mod, k3); + } + __setModuleDefault2(result, mod); + return result; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ReadBuffer = exports2.ReadMessageBuffer = exports2.WriteMessageBuffer = exports2.WriteBuffer = exports2.BufferError = exports2.encodeB64 = exports2.decodeB64 = exports2.utf8Decoder = exports2.utf8Encoder = void 0; + exports2.uuidToBuffer = uuidToBuffer; + var chars = __importStar2(require_chars()); + exports2.utf8Encoder = new TextEncoder(); + exports2.utf8Decoder = new TextDecoder("utf8"); + var decodeB64; + var encodeB64; + if (typeof Buffer === "function") { + exports2.decodeB64 = decodeB64 = (b64) => { + return Buffer.from(b64, "base64"); + }; + exports2.encodeB64 = encodeB64 = (data) => { + const buf = !Buffer.isBuffer(data) ? Buffer.from(data.buffer, data.byteOffset, data.byteLength) : data; + return buf.toString("base64"); + }; + } else { + exports2.decodeB64 = decodeB64 = (b64) => { + const binaryString = atob(b64); + const size = binaryString.length; + const bytes = new Uint8Array(size); + for (let i4 = 0; i4 < size; i4++) { + bytes[i4] = binaryString.charCodeAt(i4); + } + return bytes; + }; + exports2.encodeB64 = encodeB64 = (data) => { + const binaryString = String.fromCharCode(...data); + return btoa(binaryString); + }; + } + var BUFFER_INC_SIZE = 4096; + var EMPTY_BUFFER = new Uint8Array(0); + var BufferError = class extends Error { + }; + exports2.BufferError = BufferError; + var WriteBuffer = class { + _rawBuffer; + buffer; + size; + pos; + constructor() { + this.size = BUFFER_INC_SIZE; + this.pos = 0; + this._rawBuffer = new Uint8Array(this.size); + this.buffer = new DataView(this._rawBuffer.buffer); + } + get position() { + return this.pos; + } + reset() { + this.pos = 0; + } + ensureAlloced(extraLength) { + const newSize = this.pos + extraLength; + if (newSize > this.size) { + this.__realloc(newSize); + } + } + __realloc(newSize) { + newSize += BUFFER_INC_SIZE; + const newBuffer = new Uint8Array(newSize); + newBuffer.set(this._rawBuffer); + this._rawBuffer = newBuffer; + this.buffer = new DataView(this._rawBuffer.buffer); + this.size = newSize; + } + writeChar(ch) { + this.ensureAlloced(1); + this.buffer.setUint8(this.pos, ch); + this.pos++; + return this; + } + writeString(s4) { + return this.writeBytes(exports2.utf8Encoder.encode(s4)); + } + writeBytes(buf) { + this.ensureAlloced(buf.length + 4); + this.buffer.setInt32(this.pos, buf.length); + this.pos += 4; + this._rawBuffer.set(buf, this.pos); + this.pos += buf.length; + return this; + } + writeInt16(i4) { + this.ensureAlloced(2); + this.buffer.setInt16(this.pos, i4); + this.pos += 2; + return this; + } + writeInt32(i4) { + this.ensureAlloced(4); + this.buffer.setInt32(this.pos, i4); + this.pos += 4; + return this; + } + writeFloat32(i4) { + this.ensureAlloced(4); + this.buffer.setFloat32(this.pos, i4); + this.pos += 4; + return this; + } + writeFloat64(i4) { + this.ensureAlloced(8); + this.buffer.setFloat64(this.pos, i4); + this.pos += 8; + return this; + } + writeUInt8(i4) { + this.ensureAlloced(1); + this.buffer.setUint8(this.pos, i4); + this.pos += 1; + return this; + } + writeUInt16(i4) { + this.ensureAlloced(2); + this.buffer.setUint16(this.pos, i4); + this.pos += 2; + return this; + } + writeUInt32(i4) { + this.ensureAlloced(4); + this.buffer.setUint32(this.pos, i4); + this.pos += 4; + return this; + } + writeInt64(i4) { + this.ensureAlloced(8); + const hi = Math.floor(i4 / 4294967296); + const lo = i4 - hi * 4294967296; + this.buffer.setInt32(this.pos, hi); + this.buffer.setUint32(this.pos + 4, lo); + this.pos += 8; + return this; + } + writeBigInt64(i4) { + let ii = i4; + if (ii < 0n) { + ii = 18446744073709551616n + i4; + } + const hi = ii >> 32n; + const lo = ii & 0xffffffffn; + this.writeUInt32(Number(hi)); + this.writeUInt32(Number(lo)); + return this; + } + writeBuffer(buf) { + const len = buf.length; + this.ensureAlloced(len); + this._rawBuffer.set(buf, this.pos); + this.pos += len; + return this; + } + writeDeferredSize() { + const startPos = this.pos; + this.writeInt32(0); + return () => { + this.buffer.setInt32(startPos, this.pos - (startPos + 4)); + }; + } + unwrap() { + return this._rawBuffer.subarray(0, this.pos); + } + }; + exports2.WriteBuffer = WriteBuffer; + var WriteMessageBuffer = class { + buffer; + messagePos; + constructor() { + this.messagePos = -1; + this.buffer = new WriteBuffer(); + } + reset() { + this.messagePos = -1; + this.buffer.reset(); + return this; + } + beginMessage(mtype) { + if (this.messagePos >= 0) { + throw new BufferError("cannot begin a new message: the previous message is not finished"); + } + this.messagePos = this.buffer.position; + this.buffer.writeChar(mtype); + this.buffer.writeInt32(0); + return this; + } + endMessage() { + if (this.messagePos < 0) { + throw new BufferError("cannot end the message: no current message"); + } + this.buffer.buffer.setInt32(this.messagePos + 1, this.buffer.position - this.messagePos - 1); + this.messagePos = -1; + return this; + } + writeChar(ch) { + if (this.messagePos < 0) { + throw new BufferError("cannot writeChar: no current message"); + } + this.buffer.writeChar(ch); + return this; + } + writeString(s4) { + if (this.messagePos < 0) { + throw new BufferError("cannot writeString: no current message"); + } + this.buffer.writeString(s4); + return this; + } + writeBytes(val2) { + if (this.messagePos < 0) { + throw new BufferError("cannot writeBytes: no current message"); + } + this.buffer.writeBytes(val2); + return this; + } + writeInt16(i4) { + if (this.messagePos < 0) { + throw new BufferError("cannot writeInt16: no current message"); + } + this.buffer.writeInt16(i4); + return this; + } + writeInt32(i4) { + if (this.messagePos < 0) { + throw new BufferError("cannot writeInt32: no current message"); + } + this.buffer.writeInt32(i4); + return this; + } + writeUInt16(i4) { + if (this.messagePos < 0) { + throw new BufferError("cannot writeInt16: no current message"); + } + this.buffer.writeUInt16(i4); + return this; + } + writeUInt32(i4) { + if (this.messagePos < 0) { + throw new BufferError("cannot writeInt32: no current message"); + } + this.buffer.writeUInt32(i4); + return this; + } + writeBigInt64(i4) { + if (this.messagePos < 0) { + throw new BufferError("cannot writeChar: no current message"); + } + this.buffer.writeBigInt64(i4); + return this; + } + writeFlags(h4, l3) { + if (this.messagePos < 0) { + throw new BufferError("cannot writeChar: no current message"); + } + this.buffer.writeUInt32(h4); + this.buffer.writeUInt32(l3); + return this; + } + writeBuffer(buf) { + if (this.messagePos < 0) { + throw new BufferError("cannot writeBuffer: no current message"); + } + this.buffer.writeBuffer(buf); + return this; + } + writeSync() { + if (this.messagePos >= 0) { + throw new BufferError("cannot writeSync: the previous message is not finished"); + } + this.buffer.writeBuffer(SYNC_MESSAGE); + return this; + } + writeFlush() { + if (this.messagePos >= 0) { + throw new BufferError("cannot writeFlush: the previous message is not finished"); + } + this.buffer.writeBuffer(FLUSH_MESSAGE); + return this; + } + unwrap() { + if (this.messagePos >= 0) { + throw new BufferError("cannot unwrap: an unfinished message is in the buffer"); + } + return this.buffer.unwrap(); + } + }; + exports2.WriteMessageBuffer = WriteMessageBuffer; + var SYNC_MESSAGE = new WriteMessageBuffer().beginMessage(chars.$S).endMessage().unwrap(); + var FLUSH_MESSAGE = new WriteMessageBuffer().beginMessage(chars.$H).endMessage().unwrap(); + var byteToHex2 = []; + for (let i4 = 0; i4 < 256; ++i4) { + byteToHex2.push((i4 + 256).toString(16).slice(1)); + } + function uuidToBuffer(uuid) { + const buf = new Uint8Array(16); + for (let i4 = 0; i4 < 16; i4++) { + buf[i4] = parseInt(uuid.slice(i4 * 2, i4 * 2 + 2), 16); + } + return buf; + } + var ReadMessageBuffer = class { + bufs; + len; + buf0; + pos0; + len0; + curMessageType; + curMessageLen; + curMessageLenUnread; + curMessageReady; + constructor() { + this.bufs = []; + this.buf0 = null; + this.pos0 = 0; + this.len0 = 0; + this.len = 0; + this.curMessageType = 0; + this.curMessageLen = 0; + this.curMessageLenUnread = 0; + this.curMessageReady = false; + } + get length() { + return this.len; + } + feed(buf) { + if (this.buf0 == null || this.pos0 === this.len0 && this.bufs.length === 0) { + this.buf0 = new DataView(buf.buffer, buf.byteOffset, buf.byteLength); + this.len0 = buf.byteLength; + this.pos0 = 0; + this.len = this.len0; + } else { + this.feedEnqueue(buf); + } + } + feedEnqueue(buf) { + this.bufs.push(buf); + this.len += buf.byteLength; + } + ensureFirstBuf() { + if (this.pos0 === this.len0) { + this.__nextBuf(); + } + const buf0 = this.buf0; + if (buf0 == null || buf0.byteLength < 1) { + throw new BufferError("empty buffer"); + } + return buf0; + } + checkOverread(size) { + if (this.curMessageLenUnread < size || size > this.len) { + throw new BufferError("buffer overread"); + } + } + __nextBuf() { + const nextBuf = this.bufs.shift(); + if (nextBuf == null) { + throw new BufferError("buffer overread"); + } + this.buf0 = new DataView(nextBuf.buffer, nextBuf.byteOffset, nextBuf.byteLength); + this.pos0 = 0; + this.len0 = nextBuf.byteLength; + } + discardBuffer(size) { + this.ensureFirstBuf(); + while (true) { + if (this.pos0 + size > this.len0) { + const nread = this.len0 - this.pos0; + this.pos0 = this.len0; + this.len -= nread; + size -= nread; + this.ensureFirstBuf(); + } else { + this.pos0 += size; + this.len -= size; + break; + } + } + } + _finishMessage() { + this.curMessageLen = 0; + this.curMessageLenUnread = 0; + this.curMessageReady = false; + this.curMessageType = 0; + } + __readBufferCopy(buf0, size) { + const ret = new Uint8Array(size); + let retPos = 0; + while (true) { + if (this.pos0 + size > this.len0) { + const nread = this.len0 - this.pos0; + ret.set(new Uint8Array(buf0.buffer, buf0.byteOffset + this.pos0, nread), retPos); + retPos += nread; + this.pos0 = this.len0; + this.len -= nread; + size -= nread; + buf0 = this.ensureFirstBuf(); + } else { + ret.set(new Uint8Array(buf0.buffer, buf0.byteOffset + this.pos0, size), retPos); + this.pos0 += size; + this.len -= size; + break; + } + } + return ret; + } + _readBuffer(size) { + if (size === 0) { + return EMPTY_BUFFER; + } + const buf0 = this.ensureFirstBuf(); + if (this.pos0 + size <= this.len0) { + const ret = new Uint8Array(buf0.buffer, buf0.byteOffset + this.pos0, size); + this.pos0 += size; + this.len -= size; + return ret; + } + return this.__readBufferCopy(buf0, size); + } + readBuffer(size) { + this.checkOverread(size); + const buf = this._readBuffer(size); + this.curMessageLenUnread -= size; + return buf; + } + readUUID() { + const buf = this.readBuffer(16); + return byteToHex2[buf[0]] + byteToHex2[buf[1]] + byteToHex2[buf[2]] + byteToHex2[buf[3]] + byteToHex2[buf[4]] + byteToHex2[buf[5]] + byteToHex2[buf[6]] + byteToHex2[buf[7]] + byteToHex2[buf[8]] + byteToHex2[buf[9]] + byteToHex2[buf[10]] + byteToHex2[buf[11]] + byteToHex2[buf[12]] + byteToHex2[buf[13]] + byteToHex2[buf[14]] + byteToHex2[buf[15]]; + } + readChar() { + this.checkOverread(1); + const buf0 = this.ensureFirstBuf(); + const ret = buf0.getUint8(this.pos0); + this.pos0++; + this.curMessageLenUnread--; + this.len--; + return ret; + } + readInt16() { + this.checkOverread(2); + const buf0 = this.ensureFirstBuf(); + if (this.pos0 + 2 <= this.len0) { + const ret = buf0.getInt16(this.pos0); + this.pos0 += 2; + this.curMessageLenUnread -= 2; + this.len -= 2; + return ret; + } + const buf = this._readBuffer(2); + this.curMessageLenUnread -= 2; + return new DataView(buf.buffer, buf.byteOffset, buf.byteLength).getInt16(0); + } + readInt32() { + this.checkOverread(4); + const buf0 = this.ensureFirstBuf(); + if (this.pos0 + 4 <= this.len0) { + const ret = buf0.getInt32(this.pos0); + this.pos0 += 4; + this.curMessageLenUnread -= 4; + this.len -= 4; + return ret; + } + const buf = this._readBuffer(4); + this.curMessageLenUnread -= 4; + return new DataView(buf.buffer, buf.byteOffset, buf.byteLength).getInt32(0); + } + readUInt16() { + this.checkOverread(2); + const buf0 = this.ensureFirstBuf(); + if (this.pos0 + 2 <= this.len0) { + const ret = buf0.getUint16(this.pos0); + this.pos0 += 2; + this.curMessageLenUnread -= 2; + this.len -= 2; + return ret; + } + const buf = this._readBuffer(2); + this.curMessageLenUnread -= 2; + return new DataView(buf.buffer, buf.byteOffset, buf.byteLength).getUint16(0); + } + readUInt32() { + this.checkOverread(4); + const buf0 = this.ensureFirstBuf(); + if (this.pos0 + 4 <= this.len0) { + const ret = buf0.getUint32(this.pos0); + this.pos0 += 4; + this.curMessageLenUnread -= 4; + this.len -= 4; + return ret; + } + const buf = this._readBuffer(4); + this.curMessageLenUnread -= 4; + return new DataView(buf.buffer, buf.byteOffset, buf.byteLength).getUint32(0); + } + readBigInt64() { + this.checkOverread(8); + const buf0 = this.ensureFirstBuf(); + if (this.pos0 + 8 <= this.len0) { + const ret = buf0.getBigInt64(this.pos0); + this.pos0 += 8; + this.curMessageLenUnread -= 8; + this.len -= 8; + return ret; + } + const buf = this._readBuffer(8); + this.curMessageLenUnread -= 8; + return new DataView(buf.buffer, buf.byteOffset, buf.byteLength).getBigInt64(0); + } + readString() { + const len = this.readInt32(); + const buf = this.readBuffer(len); + return exports2.utf8Decoder.decode(buf); + } + readLenPrefixedBuffer() { + const len = this.readInt32(); + return this.readBuffer(len); + } + takeMessage() { + if (this.curMessageReady) { + return true; + } + if (this.curMessageType === 0) { + if (this.len < 1) { + return false; + } + const buf0 = this.ensureFirstBuf(); + this.curMessageType = buf0.getUint8(this.pos0); + this.pos0++; + this.len--; + } + if (this.curMessageLen === 0) { + if (this.len < 4) { + return false; + } + const buf0 = this.ensureFirstBuf(); + if (this.pos0 + 4 <= this.len0) { + this.curMessageLen = buf0.getInt32(this.pos0); + this.pos0 += 4; + this.len -= 4; + } else { + const buf = this._readBuffer(4); + this.curMessageLen = new DataView(buf.buffer, buf.byteOffset, buf.byteLength).getInt32(0); + } + this.curMessageLenUnread = this.curMessageLen - 4; + } + if (this.len < this.curMessageLenUnread) { + return false; + } + this.curMessageReady = true; + return true; + } + getMessageType() { + return this.curMessageType; + } + takeMessageType(mtype) { + if (this.curMessageReady) { + return this.curMessageType === mtype; + } + if (this.len >= 1) { + const buf0 = this.ensureFirstBuf(); + const unreadMessageType = buf0.getUint8(this.pos0); + return mtype === unreadMessageType && this.takeMessage(); + } + return false; + } + putMessage() { + if (!this.curMessageReady) { + throw new BufferError("cannot put message: no message taken"); + } + if (this.curMessageLenUnread !== this.curMessageLen - 4) { + throw new BufferError("cannot put message: message is partially read"); + } + this.curMessageReady = false; + } + discardMessage() { + if (!this.curMessageReady) { + throw new BufferError("no message to discard"); + } + if (this.curMessageLenUnread > 0) { + this.discardBuffer(this.curMessageLenUnread); + } + this._finishMessage(); + } + consumeMessage() { + if (!this.curMessageReady) { + throw new BufferError("no message to consume"); + } + let buf; + if (this.curMessageLenUnread > 0) { + buf = this._readBuffer(this.curMessageLenUnread); + this.curMessageLenUnread = 0; + } else { + buf = EMPTY_BUFFER; + } + this._finishMessage(); + return buf; + } + consumeMessageInto(frb) { + if (!this.curMessageReady) { + throw new BufferError("no message to consume"); + } + if (this.curMessageLenUnread > 0) { + if (this.pos0 + this.curMessageLenUnread <= this.len0) { + ReadBuffer.init(frb, new Uint8Array(this.buf0.buffer, this.buf0.byteOffset + this.pos0, this.curMessageLenUnread)); + this.pos0 += this.curMessageLenUnread; + this.len -= this.curMessageLenUnread; + } else { + const buf = this._readBuffer(this.curMessageLenUnread); + ReadBuffer.init(frb, buf); + } + this.curMessageLenUnread = 0; + } else { + ReadBuffer.init(frb, EMPTY_BUFFER); + } + this._finishMessage(); + } + finishMessage() { + if (this.curMessageType === 0 || !this.curMessageReady) { + return; + } + if (this.curMessageLenUnread) { + throw new BufferError(`cannot finishMessage: unread data in message "${chars.chr(this.curMessageType)}"`); + } + this._finishMessage(); + } + }; + exports2.ReadMessageBuffer = ReadMessageBuffer; + var ReadBuffer = class { + _rawBuffer; + buffer; + pos; + len; + constructor(buf) { + this._rawBuffer = buf; + this.buffer = new DataView(buf.buffer, buf.byteOffset, buf.byteLength); + this.len = buf.length; + this.pos = 0; + } + get position() { + return this.pos; + } + get length() { + return this.len - this.pos; + } + finish(message) { + if (this.len !== this.pos) { + throw new BufferError(message ?? "unexpected trailing data in buffer"); + } + } + discard(size) { + if (this.pos + size > this.len) { + throw new BufferError("buffer overread"); + } + this.pos += size; + } + readUInt8() { + if (this.pos + 1 > this.len) { + throw new BufferError("buffer overread"); + } + const num = this.buffer.getUint8(this.pos); + this.pos++; + return num; + } + readUInt16() { + if (this.pos + 2 > this.len) { + throw new BufferError("buffer overread"); + } + const num = this.buffer.getUint16(this.pos); + this.pos += 2; + return num; + } + readInt8() { + if (this.pos + 1 > this.len) { + throw new BufferError("buffer overread"); + } + const num = this.buffer.getInt8(this.pos); + this.pos++; + return num; + } + readInt16() { + if (this.pos + 2 > this.len) { + throw new BufferError("buffer overread"); + } + const num = this.buffer.getInt16(this.pos); + this.pos += 2; + return num; + } + readInt32() { + if (this.pos + 4 > this.len) { + throw new BufferError("buffer overread"); + } + const num = this.buffer.getInt32(this.pos); + this.pos += 4; + return num; + } + readFloat32() { + if (this.pos + 4 > this.len) { + throw new BufferError("buffer overread"); + } + const num = this.buffer.getFloat32(this.pos); + this.pos += 4; + return num; + } + readFloat64(le) { + if (this.pos + 8 > this.len) { + throw new BufferError("buffer overread"); + } + const num = this.buffer.getFloat64(this.pos, le); + this.pos += 8; + return num; + } + readUInt32(le) { + if (this.pos + 4 > this.len) { + throw new BufferError("buffer overread"); + } + const num = this.buffer.getUint32(this.pos, le); + this.pos += 4; + return num; + } + reportInt64Overflow(hi, lo) { + const bhi = BigInt(hi); + const blo = BigInt(lo >>> 0); + const num = bhi * BigInt(4294967296) + blo; + throw new BufferError(`integer overflow: cannot unpack '${num.toString()}' into JavaScript Number type without losing precision`); + } + readInt64() { + if (this.pos + 8 > this.len) { + throw new BufferError("buffer overread"); + } + const hi = this.buffer.getInt32(this.pos); + const lo = this.buffer.getInt32(this.pos + 4); + this.pos += 8; + if (hi === 0) { + return lo >>> 0; + } else if (hi >= -2097152 && hi < 2097152) { + return hi * 4294967296 + (lo >>> 0); + } + return this.reportInt64Overflow(hi, lo); + } + readBigInt64() { + if (this.pos + 8 > this.len) { + throw new BufferError("buffer overread"); + } + const ret = this.buffer.getBigInt64(this.pos); + this.pos += 8; + return ret; + } + readBoolean() { + return this.readUInt8() !== 0; + } + readBuffer(size) { + if (this.pos + size > this.len) { + throw new BufferError("buffer overread"); + } + const buf = this._rawBuffer.subarray(this.pos, this.pos + size); + this.pos += size; + return buf; + } + readUUIDBytes() { + return this.readBuffer(16); + } + readUUID(dash = "") { + if (this.pos + 16 > this.len) { + throw new BufferError("buffer overread"); + } + const buf = this._rawBuffer; + const pos = this.pos; + const uuid = byteToHex2[buf[pos + 0]] + byteToHex2[buf[pos + 1]] + byteToHex2[buf[pos + 2]] + byteToHex2[buf[pos + 3]] + dash + byteToHex2[buf[pos + 4]] + byteToHex2[buf[pos + 5]] + dash + byteToHex2[buf[pos + 6]] + byteToHex2[buf[pos + 7]] + dash + byteToHex2[buf[pos + 8]] + byteToHex2[buf[pos + 9]] + dash + byteToHex2[buf[pos + 10]] + byteToHex2[buf[pos + 11]] + byteToHex2[buf[pos + 12]] + byteToHex2[buf[pos + 13]] + byteToHex2[buf[pos + 14]] + byteToHex2[buf[pos + 15]]; + this.pos += 16; + return uuid; + } + readString() { + const len = this.readUInt32(); + const buf = this.readBuffer(len); + return exports2.utf8Decoder.decode(buf); + } + consumeAsString() { + if (this.pos === this.len) { + return ""; + } + const res = exports2.utf8Decoder.decode(this._rawBuffer.subarray(this.pos, this.len)); + this.pos = this.len; + return res; + } + consumeAsBuffer() { + const res = this._rawBuffer.subarray(this.pos, this.len); + this.pos = this.len; + return res; + } + sliceInto(frb, size) { + if (this.pos + size > this.len) { + throw new BufferError("buffer overread"); + } + frb._rawBuffer = this._rawBuffer; + frb.buffer = this.buffer; + frb.pos = this.pos; + frb.len = this.pos + size; + this.pos += size; + } + static init(frb, buffer) { + frb._rawBuffer = buffer; + frb.buffer = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength); + frb.pos = 0; + frb.len = buffer.byteLength; + } + static alloc() { + return new this(EMPTY_BUFFER); + } + }; + exports2.ReadBuffer = ReadBuffer; + } +}); + +// ../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/errors/base.js +var require_base = __commonJS({ + "../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/errors/base.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ErrorAttr = exports2.GelError = void 0; + exports2.prettyPrintError = prettyPrintError; + var buffer_1 = require_buffer(); + var GelError = class extends Error { + static tags = {}; + _message; + _query; + _attrs; + constructor(message, options) { + super(void 0, options); + Object.defineProperties(this, { + _message: { writable: true, enumerable: false }, + _query: { writable: true, enumerable: false }, + _attrs: { writable: true, enumerable: false } + }); + this._message = message ?? ""; + } + get message() { + return this._message + (this._query && this._attrs ? prettyPrintError(this._attrs, this._query) : ""); + } + get name() { + return this.constructor.name; + } + hasTag(tag) { + const error_type = this.constructor; + return error_type.tags[tag] ?? false; + } + }; + exports2.GelError = GelError; + var ErrorAttr; + (function(ErrorAttr2) { + ErrorAttr2[ErrorAttr2["hint"] = 1] = "hint"; + ErrorAttr2[ErrorAttr2["details"] = 2] = "details"; + ErrorAttr2[ErrorAttr2["serverTraceback"] = 257] = "serverTraceback"; + ErrorAttr2[ErrorAttr2["positionStart"] = -15] = "positionStart"; + ErrorAttr2[ErrorAttr2["positionEnd"] = -14] = "positionEnd"; + ErrorAttr2[ErrorAttr2["lineStart"] = -13] = "lineStart"; + ErrorAttr2[ErrorAttr2["columnStart"] = -12] = "columnStart"; + ErrorAttr2[ErrorAttr2["utf16ColumnStart"] = -11] = "utf16ColumnStart"; + ErrorAttr2[ErrorAttr2["lineEnd"] = -10] = "lineEnd"; + ErrorAttr2[ErrorAttr2["columnEnd"] = -9] = "columnEnd"; + ErrorAttr2[ErrorAttr2["utf16ColumnEnd"] = -8] = "utf16ColumnEnd"; + ErrorAttr2[ErrorAttr2["characterStart"] = -7] = "characterStart"; + ErrorAttr2[ErrorAttr2["characterEnd"] = -6] = "characterEnd"; + })(ErrorAttr || (exports2.ErrorAttr = ErrorAttr = {})); + function tryParseInt(val2) { + if (val2 == null) + return null; + try { + return parseInt(val2 instanceof Uint8Array ? buffer_1.utf8Decoder.decode(val2) : val2, 10); + } catch { + return null; + } + } + function readAttrStr(val2) { + return val2 instanceof Uint8Array ? buffer_1.utf8Decoder.decode(val2) : val2 ?? ""; + } + function prettyPrintError(attrs, query) { + let errMessage = "\n"; + const lineStart = tryParseInt(attrs.get(ErrorAttr.lineStart)); + const lineEnd = tryParseInt(attrs.get(ErrorAttr.lineEnd)); + const colStart = tryParseInt(attrs.get(ErrorAttr.utf16ColumnStart)); + const colEnd = tryParseInt(attrs.get(ErrorAttr.utf16ColumnEnd)); + if (lineStart != null && lineEnd != null && colStart != null && colEnd != null) { + const queryLines = query.split("\n"); + const lineNoWidth = lineEnd.toString().length; + errMessage += "|".padStart(lineNoWidth + 3) + "\n"; + for (let i4 = lineStart; i4 < lineEnd + 1; i4++) { + const line = queryLines[i4 - 1]; + const start = i4 === lineStart ? colStart : 0; + const end = i4 === lineEnd ? colEnd : line.length; + errMessage += ` ${i4.toString().padStart(lineNoWidth)} | ${line} +`; + errMessage += `${"|".padStart(lineNoWidth + 3)} ${"".padStart(end - start, "^").padStart(end)} +`; + } + } + if (attrs.has(ErrorAttr.details)) { + errMessage += `Details: ${readAttrStr(attrs.get(ErrorAttr.details))} +`; + } + if (attrs.has(ErrorAttr.hint)) { + errMessage += `Hint: ${readAttrStr(attrs.get(ErrorAttr.hint))} +`; + } + return errMessage; + } + } +}); + +// ../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/errors/tags.js +var require_tags = __commonJS({ + "../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/errors/tags.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.SHOULD_RETRY = exports2.SHOULD_RECONNECT = void 0; + exports2.SHOULD_RECONNECT = Symbol("SHOULD_RECONNECT"); + exports2.SHOULD_RETRY = Symbol("SHOULD_RETRY"); + } +}); + +// ../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/errors/index.js +var require_errors = __commonJS({ + "../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/errors/index.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o3, m4, k3, k22) { + if (k22 === void 0) k22 = k3; + var desc = Object.getOwnPropertyDescriptor(m4, k3); + if (!desc || ("get" in desc ? !m4.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m4[k3]; + } }; + } + Object.defineProperty(o3, k22, desc); + } : function(o3, m4, k3, k22) { + if (k22 === void 0) k22 = k3; + o3[k22] = m4[k3]; + }); + var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? function(o3, v6) { + Object.defineProperty(o3, "default", { enumerable: true, value: v6 }); + } : function(o3, v6) { + o3["default"] = v6; + }); + var __importStar2 = exports2 && exports2.__importStar || function(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) { + for (var k3 in mod) if (k3 !== "default" && Object.prototype.hasOwnProperty.call(mod, k3)) __createBinding2(result, mod, k3); + } + __setModuleDefault2(result, mod); + return result; + }; + var __exportStar2 = exports2 && exports2.__exportStar || function(m4, exports3) { + for (var p3 in m4) if (p3 !== "default" && !Object.prototype.hasOwnProperty.call(exports3, p3)) __createBinding2(exports3, m4, p3); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.DuplicatePropertyDefinitionError = exports2.DuplicateLinkDefinitionError = exports2.DuplicateModuleDefinitionError = exports2.DuplicateDefinitionError = exports2.InvalidCastDefinitionError = exports2.InvalidConstraintDefinitionError = exports2.InvalidFunctionDefinitionError = exports2.InvalidAliasDefinitionError = exports2.InvalidOperatorDefinitionError = exports2.InvalidDatabaseDefinitionError = exports2.InvalidUserDefinitionError = exports2.InvalidPropertyDefinitionError = exports2.InvalidLinkDefinitionError = exports2.InvalidModuleDefinitionError = exports2.InvalidDefinitionError = exports2.SchemaDefinitionError = exports2.SchemaError = exports2.DeprecatedScopingError = exports2.UnknownParameterError = exports2.UnknownDatabaseError = exports2.UnknownUserError = exports2.UnknownPropertyError = exports2.UnknownLinkError = exports2.UnknownModuleError = exports2.InvalidReferenceError = exports2.InvalidPropertyTargetError = exports2.InvalidLinkTargetError = exports2.InvalidTargetError = exports2.InvalidTypeError = exports2.GraphQLSyntaxError = exports2.SchemaSyntaxError = exports2.EdgeQLSyntaxError = exports2.InvalidSyntaxError = exports2.QueryError = exports2.UnsafeIsolationLevelError = exports2.DisabledCapabilityError = exports2.UnsupportedCapabilityError = exports2.CapabilityError = exports2.ResultCardinalityMismatchError = exports2.StateMismatchError = exports2.ParameterTypeMismatchError = exports2.InputDataError = exports2.UnexpectedMessageError = exports2.TypeSpecNotFoundError = exports2.UnsupportedProtocolVersionError = exports2.BinaryProtocolError = exports2.ProtocolError = exports2.UnsupportedFeatureError = exports2.InternalServerError = exports2.GelError = void 0; + exports2.QueryArgumentError = exports2.InterfaceError = exports2.ClientConnectionClosedError = exports2.ClientConnectionTimeoutError = exports2.ClientConnectionFailedTemporarilyError = exports2.ClientConnectionFailedError = exports2.ClientConnectionError = exports2.ClientError = exports2.MigrationStatusMessage = exports2.StatusMessage = exports2.WarningMessage = exports2.LogMessage = exports2.UnsupportedBackendFeatureError = exports2.BackendError = exports2.ServerBlockedError = exports2.UnknownTenantError = exports2.ServerOfflineError = exports2.BackendUnavailableError = exports2.AvailabilityError = exports2.AuthenticationError = exports2.AccessError = exports2.ConfigurationError = exports2.WatchError = exports2.TransactionDeadlockError = exports2.TransactionSerializationError = exports2.TransactionConflictError = exports2.TransactionError = exports2.MissingRequiredError = exports2.CardinalityViolationError = exports2.ConstraintViolationError = exports2.IntegrityError = exports2.QueryAssertionError = exports2.AccessPolicyError = exports2.NumericOutOfRangeError = exports2.DivisionByZeroError = exports2.InvalidValueError = exports2.ExecutionError = exports2.IdleTransactionTimeoutError = exports2.TransactionTimeoutError = exports2.QueryTimeoutError = exports2.IdleSessionTimeoutError = exports2.SessionTimeoutError = exports2.DuplicateMigrationError = exports2.DuplicateCastDefinitionError = exports2.DuplicateConstraintDefinitionError = exports2.DuplicateFunctionDefinitionError = exports2.DuplicateViewDefinitionError = exports2.DuplicateOperatorDefinitionError = exports2.DuplicateDatabaseDefinitionError = exports2.DuplicateUserDefinitionError = void 0; + exports2.InternalClientError = exports2.NoDataError = exports2.InvalidArgumentError = exports2.UnknownArgumentError = exports2.MissingArgumentError = void 0; + var base_1 = require_base(); + var tags = __importStar2(require_tags()); + var base_2 = require_base(); + Object.defineProperty(exports2, "GelError", { enumerable: true, get: function() { + return base_2.GelError; + } }); + __exportStar2(require_tags(), exports2); + var InternalServerError = class extends base_1.GelError { + get code() { + return 16777216; + } + }; + exports2.InternalServerError = InternalServerError; + var UnsupportedFeatureError = class extends base_1.GelError { + get code() { + return 33554432; + } + }; + exports2.UnsupportedFeatureError = UnsupportedFeatureError; + var ProtocolError = class extends base_1.GelError { + get code() { + return 50331648; + } + }; + exports2.ProtocolError = ProtocolError; + var BinaryProtocolError = class extends ProtocolError { + get code() { + return 50397184; + } + }; + exports2.BinaryProtocolError = BinaryProtocolError; + var UnsupportedProtocolVersionError = class extends BinaryProtocolError { + get code() { + return 50397185; + } + }; + exports2.UnsupportedProtocolVersionError = UnsupportedProtocolVersionError; + var TypeSpecNotFoundError = class extends BinaryProtocolError { + get code() { + return 50397186; + } + }; + exports2.TypeSpecNotFoundError = TypeSpecNotFoundError; + var UnexpectedMessageError = class extends BinaryProtocolError { + get code() { + return 50397187; + } + }; + exports2.UnexpectedMessageError = UnexpectedMessageError; + var InputDataError = class extends ProtocolError { + get code() { + return 50462720; + } + }; + exports2.InputDataError = InputDataError; + var ParameterTypeMismatchError = class extends InputDataError { + get code() { + return 50462976; + } + }; + exports2.ParameterTypeMismatchError = ParameterTypeMismatchError; + var StateMismatchError = class extends InputDataError { + static tags = { [tags.SHOULD_RETRY]: true }; + get code() { + return 50463232; + } + }; + exports2.StateMismatchError = StateMismatchError; + var ResultCardinalityMismatchError = class extends ProtocolError { + get code() { + return 50528256; + } + }; + exports2.ResultCardinalityMismatchError = ResultCardinalityMismatchError; + var CapabilityError = class extends ProtocolError { + get code() { + return 50593792; + } + }; + exports2.CapabilityError = CapabilityError; + var UnsupportedCapabilityError = class extends CapabilityError { + get code() { + return 50594048; + } + }; + exports2.UnsupportedCapabilityError = UnsupportedCapabilityError; + var DisabledCapabilityError = class extends CapabilityError { + get code() { + return 50594304; + } + }; + exports2.DisabledCapabilityError = DisabledCapabilityError; + var UnsafeIsolationLevelError = class extends CapabilityError { + get code() { + return 50594560; + } + }; + exports2.UnsafeIsolationLevelError = UnsafeIsolationLevelError; + var QueryError = class extends base_1.GelError { + get code() { + return 67108864; + } + }; + exports2.QueryError = QueryError; + var InvalidSyntaxError = class extends QueryError { + get code() { + return 67174400; + } + }; + exports2.InvalidSyntaxError = InvalidSyntaxError; + var EdgeQLSyntaxError = class extends InvalidSyntaxError { + get code() { + return 67174656; + } + }; + exports2.EdgeQLSyntaxError = EdgeQLSyntaxError; + var SchemaSyntaxError = class extends InvalidSyntaxError { + get code() { + return 67174912; + } + }; + exports2.SchemaSyntaxError = SchemaSyntaxError; + var GraphQLSyntaxError = class extends InvalidSyntaxError { + get code() { + return 67175168; + } + }; + exports2.GraphQLSyntaxError = GraphQLSyntaxError; + var InvalidTypeError = class extends QueryError { + get code() { + return 67239936; + } + }; + exports2.InvalidTypeError = InvalidTypeError; + var InvalidTargetError = class extends InvalidTypeError { + get code() { + return 67240192; + } + }; + exports2.InvalidTargetError = InvalidTargetError; + var InvalidLinkTargetError = class extends InvalidTargetError { + get code() { + return 67240193; + } + }; + exports2.InvalidLinkTargetError = InvalidLinkTargetError; + var InvalidPropertyTargetError = class extends InvalidTargetError { + get code() { + return 67240194; + } + }; + exports2.InvalidPropertyTargetError = InvalidPropertyTargetError; + var InvalidReferenceError = class extends QueryError { + get code() { + return 67305472; + } + }; + exports2.InvalidReferenceError = InvalidReferenceError; + var UnknownModuleError = class extends InvalidReferenceError { + get code() { + return 67305473; + } + }; + exports2.UnknownModuleError = UnknownModuleError; + var UnknownLinkError = class extends InvalidReferenceError { + get code() { + return 67305474; + } + }; + exports2.UnknownLinkError = UnknownLinkError; + var UnknownPropertyError = class extends InvalidReferenceError { + get code() { + return 67305475; + } + }; + exports2.UnknownPropertyError = UnknownPropertyError; + var UnknownUserError = class extends InvalidReferenceError { + get code() { + return 67305476; + } + }; + exports2.UnknownUserError = UnknownUserError; + var UnknownDatabaseError = class extends InvalidReferenceError { + get code() { + return 67305477; + } + }; + exports2.UnknownDatabaseError = UnknownDatabaseError; + var UnknownParameterError = class extends InvalidReferenceError { + get code() { + return 67305478; + } + }; + exports2.UnknownParameterError = UnknownParameterError; + var DeprecatedScopingError = class extends InvalidReferenceError { + get code() { + return 67305479; + } + }; + exports2.DeprecatedScopingError = DeprecatedScopingError; + var SchemaError = class extends QueryError { + get code() { + return 67371008; + } + }; + exports2.SchemaError = SchemaError; + var SchemaDefinitionError = class extends QueryError { + get code() { + return 67436544; + } + }; + exports2.SchemaDefinitionError = SchemaDefinitionError; + var InvalidDefinitionError = class extends SchemaDefinitionError { + get code() { + return 67436800; + } + }; + exports2.InvalidDefinitionError = InvalidDefinitionError; + var InvalidModuleDefinitionError = class extends InvalidDefinitionError { + get code() { + return 67436801; + } + }; + exports2.InvalidModuleDefinitionError = InvalidModuleDefinitionError; + var InvalidLinkDefinitionError = class extends InvalidDefinitionError { + get code() { + return 67436802; + } + }; + exports2.InvalidLinkDefinitionError = InvalidLinkDefinitionError; + var InvalidPropertyDefinitionError = class extends InvalidDefinitionError { + get code() { + return 67436803; + } + }; + exports2.InvalidPropertyDefinitionError = InvalidPropertyDefinitionError; + var InvalidUserDefinitionError = class extends InvalidDefinitionError { + get code() { + return 67436804; + } + }; + exports2.InvalidUserDefinitionError = InvalidUserDefinitionError; + var InvalidDatabaseDefinitionError = class extends InvalidDefinitionError { + get code() { + return 67436805; + } + }; + exports2.InvalidDatabaseDefinitionError = InvalidDatabaseDefinitionError; + var InvalidOperatorDefinitionError = class extends InvalidDefinitionError { + get code() { + return 67436806; + } + }; + exports2.InvalidOperatorDefinitionError = InvalidOperatorDefinitionError; + var InvalidAliasDefinitionError = class extends InvalidDefinitionError { + get code() { + return 67436807; + } + }; + exports2.InvalidAliasDefinitionError = InvalidAliasDefinitionError; + var InvalidFunctionDefinitionError = class extends InvalidDefinitionError { + get code() { + return 67436808; + } + }; + exports2.InvalidFunctionDefinitionError = InvalidFunctionDefinitionError; + var InvalidConstraintDefinitionError = class extends InvalidDefinitionError { + get code() { + return 67436809; + } + }; + exports2.InvalidConstraintDefinitionError = InvalidConstraintDefinitionError; + var InvalidCastDefinitionError = class extends InvalidDefinitionError { + get code() { + return 67436810; + } + }; + exports2.InvalidCastDefinitionError = InvalidCastDefinitionError; + var DuplicateDefinitionError = class extends SchemaDefinitionError { + get code() { + return 67437056; + } + }; + exports2.DuplicateDefinitionError = DuplicateDefinitionError; + var DuplicateModuleDefinitionError = class extends DuplicateDefinitionError { + get code() { + return 67437057; + } + }; + exports2.DuplicateModuleDefinitionError = DuplicateModuleDefinitionError; + var DuplicateLinkDefinitionError = class extends DuplicateDefinitionError { + get code() { + return 67437058; + } + }; + exports2.DuplicateLinkDefinitionError = DuplicateLinkDefinitionError; + var DuplicatePropertyDefinitionError = class extends DuplicateDefinitionError { + get code() { + return 67437059; + } + }; + exports2.DuplicatePropertyDefinitionError = DuplicatePropertyDefinitionError; + var DuplicateUserDefinitionError = class extends DuplicateDefinitionError { + get code() { + return 67437060; + } + }; + exports2.DuplicateUserDefinitionError = DuplicateUserDefinitionError; + var DuplicateDatabaseDefinitionError = class extends DuplicateDefinitionError { + get code() { + return 67437061; + } + }; + exports2.DuplicateDatabaseDefinitionError = DuplicateDatabaseDefinitionError; + var DuplicateOperatorDefinitionError = class extends DuplicateDefinitionError { + get code() { + return 67437062; + } + }; + exports2.DuplicateOperatorDefinitionError = DuplicateOperatorDefinitionError; + var DuplicateViewDefinitionError = class extends DuplicateDefinitionError { + get code() { + return 67437063; + } + }; + exports2.DuplicateViewDefinitionError = DuplicateViewDefinitionError; + var DuplicateFunctionDefinitionError = class extends DuplicateDefinitionError { + get code() { + return 67437064; + } + }; + exports2.DuplicateFunctionDefinitionError = DuplicateFunctionDefinitionError; + var DuplicateConstraintDefinitionError = class extends DuplicateDefinitionError { + get code() { + return 67437065; + } + }; + exports2.DuplicateConstraintDefinitionError = DuplicateConstraintDefinitionError; + var DuplicateCastDefinitionError = class extends DuplicateDefinitionError { + get code() { + return 67437066; + } + }; + exports2.DuplicateCastDefinitionError = DuplicateCastDefinitionError; + var DuplicateMigrationError = class extends DuplicateDefinitionError { + get code() { + return 67437067; + } + }; + exports2.DuplicateMigrationError = DuplicateMigrationError; + var SessionTimeoutError = class extends QueryError { + get code() { + return 67502080; + } + }; + exports2.SessionTimeoutError = SessionTimeoutError; + var IdleSessionTimeoutError = class extends SessionTimeoutError { + static tags = { [tags.SHOULD_RETRY]: true }; + get code() { + return 67502336; + } + }; + exports2.IdleSessionTimeoutError = IdleSessionTimeoutError; + var QueryTimeoutError = class extends SessionTimeoutError { + get code() { + return 67502592; + } + }; + exports2.QueryTimeoutError = QueryTimeoutError; + var TransactionTimeoutError = class extends SessionTimeoutError { + get code() { + return 67504640; + } + }; + exports2.TransactionTimeoutError = TransactionTimeoutError; + var IdleTransactionTimeoutError = class extends TransactionTimeoutError { + get code() { + return 67504641; + } + }; + exports2.IdleTransactionTimeoutError = IdleTransactionTimeoutError; + var ExecutionError = class extends base_1.GelError { + get code() { + return 83886080; + } + }; + exports2.ExecutionError = ExecutionError; + var InvalidValueError = class extends ExecutionError { + get code() { + return 83951616; + } + }; + exports2.InvalidValueError = InvalidValueError; + var DivisionByZeroError = class extends InvalidValueError { + get code() { + return 83951617; + } + }; + exports2.DivisionByZeroError = DivisionByZeroError; + var NumericOutOfRangeError = class extends InvalidValueError { + get code() { + return 83951618; + } + }; + exports2.NumericOutOfRangeError = NumericOutOfRangeError; + var AccessPolicyError = class extends InvalidValueError { + get code() { + return 83951619; + } + }; + exports2.AccessPolicyError = AccessPolicyError; + var QueryAssertionError = class extends InvalidValueError { + get code() { + return 83951620; + } + }; + exports2.QueryAssertionError = QueryAssertionError; + var IntegrityError = class extends ExecutionError { + get code() { + return 84017152; + } + }; + exports2.IntegrityError = IntegrityError; + var ConstraintViolationError = class extends IntegrityError { + get code() { + return 84017153; + } + }; + exports2.ConstraintViolationError = ConstraintViolationError; + var CardinalityViolationError = class extends IntegrityError { + get code() { + return 84017154; + } + }; + exports2.CardinalityViolationError = CardinalityViolationError; + var MissingRequiredError = class extends IntegrityError { + get code() { + return 84017155; + } + }; + exports2.MissingRequiredError = MissingRequiredError; + var TransactionError = class extends ExecutionError { + get code() { + return 84082688; + } + }; + exports2.TransactionError = TransactionError; + var TransactionConflictError = class extends TransactionError { + static tags = { [tags.SHOULD_RETRY]: true }; + get code() { + return 84082944; + } + }; + exports2.TransactionConflictError = TransactionConflictError; + var TransactionSerializationError = class extends TransactionConflictError { + static tags = { [tags.SHOULD_RETRY]: true }; + get code() { + return 84082945; + } + }; + exports2.TransactionSerializationError = TransactionSerializationError; + var TransactionDeadlockError = class extends TransactionConflictError { + static tags = { [tags.SHOULD_RETRY]: true }; + get code() { + return 84082946; + } + }; + exports2.TransactionDeadlockError = TransactionDeadlockError; + var WatchError = class extends ExecutionError { + get code() { + return 84148224; + } + }; + exports2.WatchError = WatchError; + var ConfigurationError = class extends base_1.GelError { + get code() { + return 100663296; + } + }; + exports2.ConfigurationError = ConfigurationError; + var AccessError = class extends base_1.GelError { + get code() { + return 117440512; + } + }; + exports2.AccessError = AccessError; + var AuthenticationError = class extends AccessError { + get code() { + return 117506048; + } + }; + exports2.AuthenticationError = AuthenticationError; + var AvailabilityError = class extends base_1.GelError { + get code() { + return 134217728; + } + }; + exports2.AvailabilityError = AvailabilityError; + var BackendUnavailableError = class extends AvailabilityError { + static tags = { [tags.SHOULD_RETRY]: true }; + get code() { + return 134217729; + } + }; + exports2.BackendUnavailableError = BackendUnavailableError; + var ServerOfflineError = class extends AvailabilityError { + static tags = { + [tags.SHOULD_RECONNECT]: true, + [tags.SHOULD_RETRY]: true + }; + get code() { + return 134217730; + } + }; + exports2.ServerOfflineError = ServerOfflineError; + var UnknownTenantError = class extends AvailabilityError { + static tags = { + [tags.SHOULD_RECONNECT]: true, + [tags.SHOULD_RETRY]: true + }; + get code() { + return 134217731; + } + }; + exports2.UnknownTenantError = UnknownTenantError; + var ServerBlockedError = class extends AvailabilityError { + get code() { + return 134217732; + } + }; + exports2.ServerBlockedError = ServerBlockedError; + var BackendError = class extends base_1.GelError { + get code() { + return 150994944; + } + }; + exports2.BackendError = BackendError; + var UnsupportedBackendFeatureError = class extends BackendError { + get code() { + return 150995200; + } + }; + exports2.UnsupportedBackendFeatureError = UnsupportedBackendFeatureError; + var LogMessage = class extends base_1.GelError { + get code() { + return 4026531840; + } + }; + exports2.LogMessage = LogMessage; + var WarningMessage = class extends LogMessage { + get code() { + return 4026597376; + } + }; + exports2.WarningMessage = WarningMessage; + var StatusMessage = class extends LogMessage { + get code() { + return 4026662912; + } + }; + exports2.StatusMessage = StatusMessage; + var MigrationStatusMessage = class extends StatusMessage { + get code() { + return 4026662913; + } + }; + exports2.MigrationStatusMessage = MigrationStatusMessage; + var ClientError = class extends base_1.GelError { + get code() { + return 4278190080; + } + }; + exports2.ClientError = ClientError; + var ClientConnectionError = class extends ClientError { + get code() { + return 4278255616; + } + }; + exports2.ClientConnectionError = ClientConnectionError; + var ClientConnectionFailedError = class extends ClientConnectionError { + get code() { + return 4278255872; + } + }; + exports2.ClientConnectionFailedError = ClientConnectionFailedError; + var ClientConnectionFailedTemporarilyError = class extends ClientConnectionFailedError { + static tags = { + [tags.SHOULD_RECONNECT]: true, + [tags.SHOULD_RETRY]: true + }; + get code() { + return 4278255873; + } + }; + exports2.ClientConnectionFailedTemporarilyError = ClientConnectionFailedTemporarilyError; + var ClientConnectionTimeoutError = class extends ClientConnectionError { + static tags = { + [tags.SHOULD_RECONNECT]: true, + [tags.SHOULD_RETRY]: true + }; + get code() { + return 4278256128; + } + }; + exports2.ClientConnectionTimeoutError = ClientConnectionTimeoutError; + var ClientConnectionClosedError = class extends ClientConnectionError { + static tags = { + [tags.SHOULD_RECONNECT]: true, + [tags.SHOULD_RETRY]: true + }; + get code() { + return 4278256384; + } + }; + exports2.ClientConnectionClosedError = ClientConnectionClosedError; + var InterfaceError = class extends ClientError { + get code() { + return 4278321152; + } + }; + exports2.InterfaceError = InterfaceError; + var QueryArgumentError = class extends InterfaceError { + get code() { + return 4278321408; + } + }; + exports2.QueryArgumentError = QueryArgumentError; + var MissingArgumentError = class extends QueryArgumentError { + get code() { + return 4278321409; + } + }; + exports2.MissingArgumentError = MissingArgumentError; + var UnknownArgumentError = class extends QueryArgumentError { + get code() { + return 4278321410; + } + }; + exports2.UnknownArgumentError = UnknownArgumentError; + var InvalidArgumentError = class extends QueryArgumentError { + get code() { + return 4278321411; + } + }; + exports2.InvalidArgumentError = InvalidArgumentError; + var NoDataError = class extends ClientError { + get code() { + return 4278386688; + } + }; + exports2.NoDataError = NoDataError; + var InternalClientError = class extends ClientError { + get code() { + return 4278452224; + } + }; + exports2.InternalClientError = InternalClientError; + } +}); + +// ../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/primitives/lru.js +var require_lru = __commonJS({ + "../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/primitives/lru.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + var errors_1 = require_errors(); + var Node3 = class { + key; + value; + next; + prev; + constructor(key, value) { + this.key = key; + this.value = value; + this.next = null; + this.prev = null; + } + }; + var Deque = class { + head; + tail; + len; + constructor() { + this.head = null; + this.tail = null; + this.len = 0; + } + get length() { + return this.len; + } + push(key, value) { + const node = new Node3(key, value); + if (this.head == null) { + this.head = node; + this.tail = node; + } else { + this.head.prev = node; + node.next = this.head; + this.head = node; + } + this.len++; + return node; + } + moveToTop(node) { + if (node.prev == null) { + return; + } + const prev = node.prev; + const next = node.next; + prev.next = next; + if (next != null) { + next.prev = prev; + } + if (this.tail === node) { + this.tail = prev; + } + node.prev = null; + node.next = this.head; + this.head.prev = node; + this.head = node; + } + deleteBottom() { + if (!this.len || !this.tail || !this.head) { + return null; + } + if (this.tail === this.head) { + this.len = 0; + const node = this.tail; + this.tail = null; + this.head = null; + return node; + } + const tail = this.tail; + const beforeLast = this.tail.prev; + beforeLast.next = null; + this.tail.prev = null; + this.tail.next = null; + this.tail = beforeLast; + this.len--; + return tail; + } + }; + var LRU = class { + capacity; + map; + deque; + constructor({ capacity }) { + if (capacity <= 0) { + throw new TypeError("capacity is expected to be greater than 0"); + } + this.capacity = capacity; + this.map = /* @__PURE__ */ new Map(); + this.deque = new Deque(); + } + get length() { + const len = this.map.size; + if (len !== this.deque.length) { + throw new errors_1.InternalClientError("deque & map disagree on elements count"); + } + return len; + } + has(key) { + return this.map.has(key); + } + get(key) { + const node = this.map.get(key); + if (node != null) { + this.deque.moveToTop(node); + return node.value; + } + return void 0; + } + set(key, value) { + const existingNode = this.map.get(key); + if (existingNode != null) { + existingNode.value = value; + this.deque.moveToTop(existingNode); + } else { + const newNode = this.deque.push(key, value); + this.map.set(key, newNode); + while (this.deque.length > this.capacity) { + const bottomNode = this.deque.deleteBottom(); + this.map.delete(bottomNode.key); + } + } + } + *keys() { + let node = this.deque.head; + while (node != null) { + yield node.key; + node = node.next; + } + } + *entries() { + let node = this.deque.head; + while (node != null) { + yield [node.key, node.value]; + node = node.next; + } + } + *values() { + let node = this.deque.head; + while (node != null) { + yield node.value; + node = node.next; + } + } + }; + exports2.default = LRU; + } +}); + +// ../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/codecs/consts.js +var require_consts = __commonJS({ + "../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/codecs/consts.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.KNOWN_TYPENAMES = exports2.KNOWN_TYPES = exports2.INVALID_CODEC_ID = exports2.NULL_CODEC_ID = void 0; + exports2.NULL_CODEC_ID = "00000000000000000000000000000000"; + exports2.INVALID_CODEC_ID = "ffffffffffffffffffffffffffffffff"; + exports2.KNOWN_TYPES = /* @__PURE__ */ new Map([ + ["00000000000000000000000000000001", "anytype"], + ["00000000000000000000000000000002", "anytuple"], + ["00000000000000000000000000000003", "anyobject"], + ["000000000000000000000000000000f0", "std"], + ["000000000000000000000000000000ff", "empty-tuple"], + ["00000000000000000000000000000100", "std::uuid"], + ["00000000000000000000000000000101", "std::str"], + ["00000000000000000000000000000102", "std::bytes"], + ["00000000000000000000000000000103", "std::int16"], + ["00000000000000000000000000000104", "std::int32"], + ["00000000000000000000000000000105", "std::int64"], + ["00000000000000000000000000000106", "std::float32"], + ["00000000000000000000000000000107", "std::float64"], + ["00000000000000000000000000000108", "std::decimal"], + ["00000000000000000000000000000109", "std::bool"], + ["0000000000000000000000000000010a", "std::datetime"], + ["0000000000000000000000000000010b", "cal::local_datetime"], + ["0000000000000000000000000000010c", "cal::local_date"], + ["0000000000000000000000000000010d", "cal::local_time"], + ["0000000000000000000000000000010e", "std::duration"], + ["0000000000000000000000000000010f", "std::json"], + ["00000000000000000000000000000110", "std::bigint"], + ["00000000000000000000000000000111", "cal::relative_duration"], + ["00000000000000000000000000000112", "cal::date_duration"], + ["00000000000000000000000000000130", "cfg::memory"], + ["00000000000000000000000001000001", "std::pg::json"], + ["00000000000000000000000001000002", "std::pg::timestamptz"], + ["00000000000000000000000001000003", "std::pg::timestamp"], + ["00000000000000000000000001000004", "std::pg::date"], + ["00000000000000000000000001000005", "std::pg::interval"], + ["9565dd8804f511eea6910b6ebe179825", "ext::pgvector::vector"], + ["4ba84534188e43b4a7cecea2af0f405b", "ext::pgvector::halfvec"], + ["003e434dcac2430ab238fb39d73447d2", "ext::pgvector::sparsevec"], + ["44c901c0d922489483c8061bd05e4840", "ext::postgis::geometry"], + ["4d7388783a5f4821ab769d8e7d6b32c4", "ext::postgis::geography"], + ["7fae553663114f608eb9096a5d972f48", "ext::postgis::box2d"], + ["c1a50ff8fded48b085c24905a8481433", "ext::postgis::box3d"] + ]); + exports2.KNOWN_TYPENAMES = (() => { + const res = /* @__PURE__ */ new Map(); + for (const [id, name] of exports2.KNOWN_TYPES.entries()) { + res.set(name, id); + } + return res; + })(); + } +}); + +// ../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/codecs/ifaces.js +var require_ifaces = __commonJS({ + "../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/codecs/ifaces.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ScalarCodec = exports2.Codec = void 0; + var buffer_1 = require_buffer(); + var consts_1 = require_consts(); + var Codec = class { + tid; + tidBuffer; + constructor(tid) { + this.tid = tid; + this.tidBuffer = (0, buffer_1.uuidToBuffer)(tid); + } + getKnownTypeName() { + return "anytype"; + } + }; + exports2.Codec = Codec; + var ScalarCodec = class extends Codec { + typeName; + ancestors = null; + constructor(tid, typeName) { + super(tid); + this.typeName = typeName; + } + derive(tid, typeName, ancestors) { + const self2 = this.constructor; + const codec = new self2(tid, typeName); + codec.ancestors = ancestors; + return codec; + } + getSubcodecs() { + return []; + } + getKind() { + return "scalar"; + } + tsType = "unknown"; + tsModule = null; + getKnownTypeName() { + if (this.typeName) { + return this.typeName; + } + return consts_1.KNOWN_TYPES.get(this.tid) || "anytype"; + } + }; + exports2.ScalarCodec = ScalarCodec; + } +}); + +// ../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/codecs/boolean.js +var require_boolean = __commonJS({ + "../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/codecs/boolean.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.BoolCodec = void 0; + var ifaces_1 = require_ifaces(); + var errors_1 = require_errors(); + var BoolCodec = class extends ifaces_1.ScalarCodec { + tsType = "boolean"; + encode(buf, object, ctx) { + const val2 = ctx.preEncode(this, object); + const typeOf = typeof val2; + if (typeOf !== "boolean" && typeOf !== "number") { + throw new errors_1.InvalidArgumentError(`a boolean or a number was expected, got "${val2}"`); + } + buf.writeInt32(1); + buf.writeChar(val2 ? 1 : 0); + } + decode(buf, ctx) { + return ctx.postDecode(this, buf.readUInt8() !== 0); + } + }; + exports2.BoolCodec = BoolCodec; + } +}); + +// ../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/codecs/numbers.js +var require_numbers = __commonJS({ + "../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/codecs/numbers.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.Float64Codec = exports2.Float32Codec = exports2.Int16Codec = exports2.Int32Codec = exports2.Int64Codec = void 0; + var ifaces_1 = require_ifaces(); + var errors_1 = require_errors(); + var Int64Codec = class extends ifaces_1.ScalarCodec { + tsType = "number"; + encode(buf, object, ctx) { + if (ctx.hasOverload(this)) { + const val2 = ctx.preEncode(this, object); + buf.writeInt32(8); + buf.writeBigInt64(val2); + return; + } + if (typeof object !== "number") { + throw new errors_1.InvalidArgumentError(`a number was expected, got "${object}"`); + } + buf.writeInt32(8); + buf.writeInt64(object); + } + decode(buf, ctx) { + if (ctx.hasOverload(this)) { + return ctx.postDecode(this, buf.readBigInt64()); + } + return buf.readInt64(); + } + }; + exports2.Int64Codec = Int64Codec; + var Int32Codec = class extends ifaces_1.ScalarCodec { + tsType = "number"; + encode(buf, object, ctx) { + object = ctx.preEncode(this, object); + if (typeof object !== "number") { + throw new errors_1.InvalidArgumentError(`a number was expected, got "${object}"`); + } + buf.writeInt32(4); + buf.writeInt32(object); + } + decode(buf, ctx) { + return ctx.postDecode(this, buf.readInt32()); + } + }; + exports2.Int32Codec = Int32Codec; + var Int16Codec = class extends ifaces_1.ScalarCodec { + tsType = "number"; + encode(buf, object, ctx) { + object = ctx.preEncode(this, object); + if (typeof object !== "number") { + throw new errors_1.InvalidArgumentError(`a number was expected, got "${object}"`); + } + buf.writeInt32(2); + buf.writeInt16(object); + } + decode(buf, ctx) { + return ctx.postDecode(this, buf.readInt16()); + } + }; + exports2.Int16Codec = Int16Codec; + var Float32Codec = class extends ifaces_1.ScalarCodec { + tsType = "number"; + encode(buf, object, ctx) { + object = ctx.preEncode(this, object); + if (typeof object !== "number") { + throw new errors_1.InvalidArgumentError(`a number was expected, got "${object}"`); + } + buf.writeInt32(4); + buf.writeFloat32(object); + } + decode(buf, ctx) { + return ctx.postDecode(this, buf.readFloat32()); + } + }; + exports2.Float32Codec = Float32Codec; + var Float64Codec = class extends ifaces_1.ScalarCodec { + tsType = "number"; + encode(buf, object, ctx) { + object = ctx.preEncode(this, object); + if (typeof object !== "number") { + throw new errors_1.InvalidArgumentError(`a number was expected, got "${object}"`); + } + buf.writeInt32(8); + buf.writeFloat64(object); + } + decode(buf, ctx) { + return ctx.postDecode(this, buf.readFloat64()); + } + }; + exports2.Float64Codec = Float64Codec; + } +}); + +// ../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/codecs/numerics.js +var require_numerics = __commonJS({ + "../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/codecs/numerics.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.DecimalStringCodec = exports2.BigIntCodec = void 0; + var ifaces_1 = require_ifaces(); + var errors_1 = require_errors(); + var NUMERIC_POS = 0; + var NUMERIC_NEG = 16384; + var BigIntCodec = class extends ifaces_1.ScalarCodec { + tsType = "bigint"; + encode(buf, object, ctx) { + object = ctx.preEncode(this, object); + if (typeof object !== "bigint") { + throw new errors_1.InvalidArgumentError(`a bigint was expected, got "${object}"`); + } + const digits = []; + let sign = NUMERIC_POS; + let uval = object; + if (object === 0n) { + buf.writeUInt32(8); + buf.writeUInt32(0); + buf.writeUInt16(NUMERIC_POS); + buf.writeUInt16(0); + return; + } + if (object < 0n) { + sign = NUMERIC_NEG; + uval = -uval; + } + while (uval) { + const mod = uval % 10000n; + uval /= 10000n; + digits.push(mod); + } + buf.writeUInt32(8 + digits.length * 2); + buf.writeUInt16(digits.length); + buf.writeUInt16(digits.length - 1); + buf.writeUInt16(sign); + buf.writeUInt16(0); + for (let i4 = digits.length - 1; i4 >= 0; i4--) { + buf.writeUInt16(Number(digits[i4])); + } + } + decode(buf, ctx) { + const val2 = BigInt(decodeBigIntToString(buf)); + return ctx.postDecode(this, val2); + } + }; + exports2.BigIntCodec = BigIntCodec; + var DecimalStringCodec = class extends ifaces_1.ScalarCodec { + tsType = "string"; + encode(buf, object, ctx) { + object = ctx.preEncode(this, object); + if (typeof object !== "string") { + throw new errors_1.InvalidArgumentError(`a string was expected, got "${object}"`); + } + const match2 = object.match(/^(-?)([0-9]+)(?:\.([0-9]+))?(?:[eE]([-+]?[0-9]+))?$/); + if (!match2) { + throw new errors_1.InvalidArgumentError(`invalid decimal string "${object}"`); + } + const [_3, sign, int, _frac, _exp] = match2; + const frac = _frac ?? ""; + const exp = _exp ? parseInt(_exp, 10) : 0; + const sdigits = int.padStart(Math.ceil(int.length / 4) * 4, "0") + frac.padEnd(Math.ceil(frac.length / 4) * 4, "0"); + const digits = []; + for (let i4 = 0, len = sdigits.length; i4 < len; i4 += 4) { + digits.push(parseInt(sdigits.slice(i4, i4 + 4), 10)); + } + buf.writeUInt32(8 + digits.length * 2); + buf.writeUInt16(digits.length); + buf.writeInt16(Math.ceil((int.length + exp) / 4) - 1); + buf.writeUInt16(sign === "-" ? NUMERIC_NEG : NUMERIC_POS); + buf.writeUInt16(Math.max(frac.length - exp, 0)); + for (let i4 = 0, len = digits.length; i4 < len; i4++) { + buf.writeUInt16(digits[i4]); + } + } + decode(buf, ctx) { + if (ctx.hasOverload(this)) { + return ctx.postDecode(this, decodeDecimalToString(buf)); + } + return decodeDecimalToString(buf); + } + }; + exports2.DecimalStringCodec = DecimalStringCodec; + function decodeBigIntToString(buf) { + const ndigits = buf.readUInt16(); + const weight = buf.readInt16(); + const sign = buf.readUInt16(); + const dscale = buf.readUInt16(); + let result = ""; + switch (sign) { + case NUMERIC_POS: + break; + case NUMERIC_NEG: + result += "-"; + break; + default: + throw new errors_1.ProtocolError("bad bigint sign data"); + } + if (dscale !== 0) { + throw new errors_1.ProtocolError("bigint data has fractional part"); + } + if (ndigits === 0) { + return "0"; + } + let i4 = weight; + let d3 = 0; + while (i4 >= 0) { + if (i4 <= weight && d3 < ndigits) { + const digit = buf.readUInt16().toString(); + result += d3 > 0 ? digit.padStart(4, "0") : digit; + d3++; + } else { + result += "0000"; + } + i4--; + } + return result; + } + function decodeDecimalToString(buf) { + const ndigits = buf.readUInt16(); + const weight = buf.readInt16(); + const sign = buf.readUInt16(); + const dscale = buf.readUInt16(); + let result = ""; + switch (sign) { + case NUMERIC_POS: + break; + case NUMERIC_NEG: + result += "-"; + break; + default: + throw new errors_1.ProtocolError("bad decimal sign data"); + } + let d3 = 0; + if (weight < 0) { + d3 = weight + 1; + result += "0"; + } else { + for (d3 = 0; d3 <= weight; d3++) { + const digit = d3 < ndigits ? buf.readUInt16() : 0; + let sdigit = digit.toString(); + if (d3 > 0) { + sdigit = sdigit.padStart(4, "0"); + } + result += sdigit; + } + } + if (dscale > 0) { + result += "."; + const end = result.length + dscale; + for (let i4 = 0; i4 < dscale; d3++, i4 += 4) { + const digit = d3 >= 0 && d3 < ndigits ? buf.readUInt16() : 0; + result += digit.toString().padStart(4, "0"); + } + result = result.slice(0, end); + } + return result; + } + } +}); + +// ../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/codecs/text.js +var require_text = __commonJS({ + "../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/codecs/text.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.StrCodec = void 0; + var buffer_1 = require_buffer(); + var ifaces_1 = require_ifaces(); + var errors_1 = require_errors(); + var StrCodec = class extends ifaces_1.ScalarCodec { + tsType = "string"; + encode(buf, object, ctx) { + object = ctx.preEncode(this, object); + if (typeof object !== "string") { + throw new errors_1.InvalidArgumentError(`a string was expected, got "${object}"`); + } + const val2 = object; + const strbuf = buffer_1.utf8Encoder.encode(val2); + buf.writeInt32(strbuf.length); + buf.writeBuffer(strbuf); + } + decode(buf, ctx) { + return ctx.postDecode(this, buf.consumeAsString()); + } + }; + exports2.StrCodec = StrCodec; + } +}); + +// ../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/codecs/uuid.js +var require_uuid = __commonJS({ + "../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/codecs/uuid.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.UUIDCodec = void 0; + var buffer_1 = require_buffer(); + var ifaces_1 = require_ifaces(); + var errors_1 = require_errors(); + function UUIDBufferFromString(uuid) { + let uuidClean = uuid; + if (uuidClean.length !== 32) { + uuidClean = uuidClean.replace(/-/g, ""); + if (uuidClean.length !== 32) { + throw new TypeError(`invalid UUID "${uuid}"`); + } + } + try { + return (0, buffer_1.uuidToBuffer)(uuidClean); + } catch { + throw new TypeError(`invalid UUID "${uuid}"`); + } + } + var UUIDCodec = class extends ifaces_1.ScalarCodec { + tsType = "string"; + encode(buf, object, ctx) { + if (ctx.hasOverload(this)) { + const val2 = ctx.preEncode(this, object); + if (!(val2 instanceof Uint8Array)) { + throw new errors_1.InvalidArgumentError(`a Uint8Array was expected from a custom UUID codec`); + } + if (val2.length != 16) { + throw new errors_1.InvalidArgumentError(`a 16-element long Uint8Array was expected from a custom UUID codec`); + } + buf.writeInt32(16); + buf.writeBuffer(val2); + return; + } + if (typeof object === "string") { + const ubuf = UUIDBufferFromString(object); + buf.writeInt32(16); + buf.writeBuffer(ubuf); + } else { + throw new errors_1.InvalidArgumentError(`cannot encode UUID "${object}": invalid type`); + } + } + decode(buf, ctx) { + if (ctx.hasOverload(this)) { + return ctx.postDecode(this, buf.readUUIDBytes()); + } + return buf.readUUID("-"); + } + }; + exports2.UUIDCodec = UUIDCodec; + } +}); + +// ../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/codecs/bytes.js +var require_bytes = __commonJS({ + "../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/codecs/bytes.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.BytesCodec = void 0; + var ifaces_1 = require_ifaces(); + var errors_1 = require_errors(); + var BytesCodec = class extends ifaces_1.ScalarCodec { + tsType = "Uint8Array"; + encode(buf, object, ctx) { + const val2 = ctx.preEncode(this, object); + if (!(val2 instanceof Uint8Array)) { + throw new errors_1.InvalidArgumentError(`a Uint8Array or Buffer was expected, got "${val2}"`); + } + buf.writeInt32(val2.length); + buf.writeBuffer(val2); + } + decode(buf, ctx) { + return ctx.postDecode(this, buf.consumeAsBuffer()); + } + }; + exports2.BytesCodec = BytesCodec; + } +}); + +// ../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/codecs/json.js +var require_json = __commonJS({ + "../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/codecs/json.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.PgTextJSONStringCodec = exports2.PgTextJSONCodec = exports2.JSONCodec = void 0; + var buffer_1 = require_buffer(); + var ifaces_1 = require_ifaces(); + var errors_1 = require_errors(); + var JSONCodec = class extends ifaces_1.ScalarCodec { + tsType = "unknown"; + jsonFormat = 1; + encode(buf, object, ctx) { + let val2; + if (ctx.hasOverload(this)) { + val2 = ctx.preEncode(this, object); + } else { + try { + val2 = JSON.stringify(object); + } catch (_err) { + throw new errors_1.InvalidArgumentError(`a JSON-serializable value was expected, got "${object}"`); + } + } + if (typeof val2 !== "string") { + throw new errors_1.InvalidArgumentError(`a JSON-serializable value was expected, got "${object}"`); + } + const strbuf = buffer_1.utf8Encoder.encode(val2); + if (this.jsonFormat !== null) { + buf.writeInt32(strbuf.length + 1); + buf.writeChar(this.jsonFormat); + } else { + buf.writeInt32(strbuf.length); + } + buf.writeBuffer(strbuf); + } + decode(buf, ctx) { + if (this.jsonFormat !== null) { + const format = buf.readUInt8(); + if (format !== this.jsonFormat) { + throw new errors_1.ProtocolError(`unexpected JSON format ${format}`); + } + } + if (ctx.hasOverload(this)) { + return ctx.postDecode(this, buf.consumeAsString()); + } else { + return JSON.parse(buf.consumeAsString()); + } + } + }; + exports2.JSONCodec = JSONCodec; + var PgTextJSONCodec = class extends JSONCodec { + jsonFormat = null; + }; + exports2.PgTextJSONCodec = PgTextJSONCodec; + var PgTextJSONStringCodec = class extends ifaces_1.ScalarCodec { + encode(buf, object, ctx) { + if (ctx.hasOverload(this)) { + object = ctx.preEncode(this, object); + } + if (typeof object !== "string") { + throw new errors_1.InvalidArgumentError(`a string was expected, got "${object}"`); + } + const strbuf = buffer_1.utf8Encoder.encode(object); + buf.writeInt32(strbuf.length); + buf.writeBuffer(strbuf); + } + decode(buf, ctx) { + return ctx.postDecode(this, buf.consumeAsString()); + } + }; + exports2.PgTextJSONStringCodec = PgTextJSONStringCodec; + } +}); + +// ../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/datatypes/dateutil.js +var require_dateutil = __commonJS({ + "../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/datatypes/dateutil.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.isLeapYear = isLeapYear2; + exports2.daysInMonth = daysInMonth; + exports2.daysBeforeMonth = daysBeforeMonth; + exports2.ymd2ord = ymd2ord; + exports2.ord2ymd = ord2ymd; + function isLeapYear2(year) { + return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0); + } + function daysInMonth(year, month) { + if (month === 2 && isLeapYear2(year)) { + return 29; + } + return _DAYS_IN_MONTH[month]; + } + function daysBeforeYear(year) { + const y2 = year - 1; + return y2 * 365 + Math.trunc(y2 / 4) - Math.trunc(y2 / 100) + Math.trunc(y2 / 400); + } + function daysBeforeMonth(year, month) { + return _DAYS_BEFORE_MONTH[month] + (month > 2 && isLeapYear2(year) ? 1 : 0); + } + var _DI400Y = daysBeforeYear(401); + var _DI100Y = daysBeforeYear(101); + var _DI4Y = daysBeforeYear(5); + var _DAYS_IN_MONTH = [-1, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; + var _DAYS_BEFORE_MONTH = (() => { + const dbf = [-1]; + let dbm = 0; + for (let i4 = 1; i4 < _DAYS_IN_MONTH.length; i4++) { + const dim = _DAYS_IN_MONTH[i4]; + dbf.push(dbm); + dbm += dim; + } + return dbf; + })(); + function ymd2ord(year, month, day) { + return daysBeforeYear(year) + daysBeforeMonth(year, month) + day; + } + function divmod(dividend, divisor) { + const quotient = Math.floor(dividend / divisor); + return [quotient, dividend - divisor * quotient]; + } + function ord2ymd(n3) { + n3--; + let n400; + [n400, n3] = divmod(n3, _DI400Y); + let year = n400 * 400 + 1; + let n100; + [n100, n3] = divmod(n3, _DI100Y); + let n4; + [n4, n3] = divmod(n3, _DI4Y); + let n1; + [n1, n3] = divmod(n3, 365); + year += n100 * 100 + n4 * 4 + n1; + if (n1 === 4 || n100 === 4) { + return [year - 1, 12, 31]; + } + const leapyear = n1 === 3 && (n4 !== 24 || n100 === 3); + let month = n3 + 50 >> 5; + let preceding = _DAYS_BEFORE_MONTH[month] + (month > 2 && leapyear ? 1 : 0); + if (preceding > n3) { + month -= 1; + preceding -= _DAYS_IN_MONTH[month] + (month === 2 && leapyear ? 1 : 0); + } + n3 -= preceding; + return [year, month, n3 + 1]; + } + } +}); + +// ../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/datatypes/datetime.js +var require_datetime = __commonJS({ + "../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/datatypes/datetime.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.DateDuration = exports2.RelativeDuration = exports2.Duration = exports2.LocalDateTime = exports2.LocalDate = exports2.localDateInstances = exports2.LocalTime = exports2.localTimeInstances = exports2.DATE_PRIVATE = void 0; + exports2.LocalDateToOrdinal = LocalDateToOrdinal; + exports2.LocalDateFromOrdinal = LocalDateFromOrdinal; + exports2.parseHumanDurationString = parseHumanDurationString; + var dateutil_1 = require_dateutil(); + exports2.DATE_PRIVATE = Symbol.for("gel.datetime"); + function toNumber(val2) { + const n3 = Number(val2); + if (Number.isNaN(n3)) { + return 0; + } + return n3; + } + function assertInteger(val2) { + if (!Number.isInteger(val2)) { + throw new RangeError(`unsupported fractional value ${val2}`); + } + return val2; + } + exports2.localTimeInstances = /* @__PURE__ */ new WeakMap(); + var LocalTime = class { + hour; + minute; + second; + millisecond; + microsecond; + nanosecond; + constructor(isoHour = 0, isoMinute = 0, isoSecond = 0, isoMillisecond = 0, isoMicrosecond = 0, isoNanosecond = 0) { + isoHour = Math.floor(toNumber(isoHour)); + isoMinute = Math.floor(toNumber(isoMinute)); + isoSecond = Math.floor(toNumber(isoSecond)); + isoMillisecond = Math.floor(toNumber(isoMillisecond)); + isoMicrosecond = Math.floor(toNumber(isoMicrosecond)); + isoNanosecond = Math.floor(toNumber(isoNanosecond)); + if (isoHour < 0 || isoHour > 23) { + throw new RangeError(`invalid number of hours ${isoHour}: expected a value in 0-23 range`); + } + if (isoMinute < 0 || isoMinute > 59) { + throw new RangeError(`invalid number of minutes ${isoMinute}: expected a value in 0-59 range`); + } + if (isoSecond < 0 || isoSecond > 59) { + throw new RangeError(`invalid number of seconds ${isoSecond}: expected a value in 0-59 range`); + } + if (isoMillisecond < 0 || isoMillisecond > 999) { + throw new RangeError(`invalid number of milliseconds ${isoMillisecond}: expected a value in 0-999 range`); + } + if (isoMicrosecond < 0 || isoMicrosecond > 999) { + throw new RangeError(`invalid number of microseconds ${isoMicrosecond}: expected a value in 0-999 range`); + } + if (isoNanosecond < 0 || isoNanosecond > 999) { + throw new RangeError(`invalid number of nanoseconds ${isoNanosecond}: expected a value in 0-999 range`); + } + this.hour = isoHour; + this.minute = isoMinute; + this.second = isoSecond; + this.millisecond = isoMillisecond; + this.microsecond = isoMicrosecond; + this.nanosecond = isoNanosecond; + forwardJsonAsToString(this); + throwOnValueOf(this, "LocalTime"); + } + toString() { + const hh = this.hour.toString().padStart(2, "0"); + const mm = this.minute.toString().padStart(2, "0"); + const ss = this.second.toString().padStart(2, "0"); + let repr = `${hh}:${mm}:${ss}`; + if (this.millisecond || this.microsecond || this.nanosecond) { + repr += `.${this.millisecond.toString().padStart(3, "0")}${this.microsecond.toString().padStart(3, "0")}${this.nanosecond.toString().padStart(3, "0")}`.replace(/(?:0+)$/, ""); + } + return repr; + } + }; + exports2.LocalTime = LocalTime; + exports2.localDateInstances = /* @__PURE__ */ new WeakMap(); + var LocalDate = class { + constructor(isoYear, isoMonth, isoDay) { + isoYear = Math.trunc(toNumber(isoYear)); + isoMonth = Math.floor(toNumber(isoMonth)); + isoDay = Math.floor(toNumber(isoDay)); + if (isoYear < -271820 || isoYear > 275759) { + throw new RangeError(`invalid year ${isoYear}: expected a value in -271820-275759 range`); + } + if (isoMonth < 1 || isoMonth > 12) { + throw new RangeError(`invalid month ${isoMonth}: expected a value in 1-12 range`); + } + const maxDays = (0, dateutil_1.daysInMonth)(isoYear, isoMonth); + if (isoDay < 1 || isoDay > maxDays) { + throw new RangeError(`invalid number of days ${isoDay}: expected a value in 1-${maxDays} range`); + } + const date = new Date(Date.UTC(isoYear, isoMonth - 1, isoDay)); + if (isoYear >= 0 && isoYear <= 99) { + date.setUTCFullYear(isoYear); + } + exports2.localDateInstances.set(this, date); + forwardJsonAsToString(this); + throwOnValueOf(this, "LocalDate"); + } + get year() { + return exports2.localDateInstances.get(this).getUTCFullYear(); + } + get month() { + return exports2.localDateInstances.get(this).getUTCMonth() + 1; + } + get day() { + return exports2.localDateInstances.get(this).getUTCDate(); + } + get dayOfWeek() { + return (exports2.localDateInstances.get(this).getUTCDay() + 6) % 7 + 1; + } + get dayOfYear() { + const date = exports2.localDateInstances.get(this); + return (0, dateutil_1.daysBeforeMonth)(date.getUTCFullYear(), date.getUTCMonth() + 1) + date.getUTCDate(); + } + get daysInWeek() { + return 7; + } + get daysInMonth() { + const date = exports2.localDateInstances.get(this); + return (0, dateutil_1.daysInMonth)(date.getUTCFullYear(), date.getUTCMonth() + 1); + } + get daysInYear() { + return this.inLeapYear ? 366 : 365; + } + get monthsInYear() { + return 12; + } + get inLeapYear() { + return (0, dateutil_1.isLeapYear)(exports2.localDateInstances.get(this).getUTCFullYear()); + } + toString() { + const year = this.year < 0 || this.year > 9999 ? (this.year < 0 ? "-" : "+") + Math.abs(this.year).toString().padStart(6, "0") : this.year.toString().padStart(4, "0"); + const month = this.month.toString().padStart(2, "0"); + const day = this.day.toString().padStart(2, "0"); + return `${year}-${month}-${day}`; + } + }; + exports2.LocalDate = LocalDate; + function LocalDateToOrdinal(localdate) { + return (0, dateutil_1.ymd2ord)(localdate.year, localdate.month, localdate.day); + } + function LocalDateFromOrdinal(ordinal) { + const [year, month, day] = (0, dateutil_1.ord2ymd)(ordinal); + return new LocalDate(year, month, day); + } + var LocalDateTime = class extends LocalDate { + constructor(isoYear, isoMonth, isoDay, isoHour = 0, isoMinute = 0, isoSecond = 0, isoMillisecond = 0, isoMicrosecond = 0, isoNanosecond = 0) { + super(isoYear, isoMonth, isoDay); + const time = new LocalTime(isoHour, isoMinute, isoSecond, isoMillisecond, isoMicrosecond, isoNanosecond); + exports2.localTimeInstances.set(this, time); + throwOnValueOf(this, "LocalDateTime"); + } + get hour() { + return exports2.localTimeInstances.get(this).hour; + } + get minute() { + return exports2.localTimeInstances.get(this).minute; + } + get second() { + return exports2.localTimeInstances.get(this).second; + } + get millisecond() { + return exports2.localTimeInstances.get(this).millisecond; + } + get microsecond() { + return exports2.localTimeInstances.get(this).microsecond; + } + get nanosecond() { + return exports2.localTimeInstances.get(this).nanosecond; + } + toString() { + return `${super.toString()}T${exports2.localTimeInstances.get(this).toString()}`; + } + }; + exports2.LocalDateTime = LocalDateTime; + var durationRegex2 = new RegExp(`^(\\-|\\+)?P(?:(\\d+)Y)?(?:(\\d+)M)?(?:(\\d+)W)?(?:(\\d+)D)?(T(?:(\\d+)(\\.\\d{1,10})?H)?(?:(\\d+)(\\.\\d{1,10})?M)?(?:(\\d+)(\\.\\d{1,9})?S)?)?$`, "i"); + var Duration = class _Duration { + years; + months; + weeks; + days; + hours; + minutes; + seconds; + milliseconds; + microseconds; + nanoseconds; + sign; + constructor(years = 0, months = 0, weeks = 0, days = 0, hours = 0, minutes = 0, seconds = 0, milliseconds = 0, microseconds = 0, nanoseconds = 0) { + years = assertInteger(toNumber(years)); + months = assertInteger(toNumber(months)); + weeks = assertInteger(toNumber(weeks)); + days = assertInteger(toNumber(days)); + hours = assertInteger(toNumber(hours)); + minutes = assertInteger(toNumber(minutes)); + seconds = assertInteger(toNumber(seconds)); + milliseconds = assertInteger(toNumber(milliseconds)); + microseconds = assertInteger(toNumber(microseconds)); + nanoseconds = assertInteger(toNumber(nanoseconds)); + const fields = [ + years, + months, + weeks, + days, + hours, + minutes, + seconds, + milliseconds, + microseconds, + nanoseconds + ]; + let sign = 0; + for (const field of fields) { + if (field === Infinity || field === -Infinity) { + throw new RangeError("infinite values not allowed as duration fields"); + } + const fieldSign = Math.sign(field); + if (sign && fieldSign && fieldSign !== sign) { + throw new RangeError("mixed-sign values not allowed as duration fields"); + } + sign = sign || fieldSign; + } + this.years = years || 0; + this.months = months || 0; + this.weeks = weeks || 0; + this.days = days || 0; + this.hours = hours || 0; + this.minutes = minutes || 0; + this.seconds = seconds || 0; + this.milliseconds = milliseconds || 0; + this.microseconds = microseconds || 0; + this.nanoseconds = nanoseconds || 0; + this.sign = sign || 0; + forwardJsonAsToString(this); + throwOnValueOf(this, "TemporalDuration"); + } + get blank() { + return this.sign === 0; + } + toString() { + let dateParts = ""; + if (this.years) { + dateParts += BigInt(Math.abs(this.years)) + "Y"; + } + if (this.months) { + dateParts += BigInt(Math.abs(this.months)) + "M"; + } + if (this.weeks) { + dateParts += BigInt(Math.abs(this.weeks)) + "W"; + } + if (this.days) { + dateParts += BigInt(Math.abs(this.days)) + "D"; + } + let timeParts = ""; + if (this.hours) { + timeParts += BigInt(Math.abs(this.hours)) + "H"; + } + if (this.minutes) { + timeParts += BigInt(Math.abs(this.minutes)) + "M"; + } + if (!dateParts && !timeParts || this.seconds || this.milliseconds || this.microseconds || this.nanoseconds) { + const totalNanoseconds = (BigInt(Math.abs(this.seconds)) * BigInt(1e9) + BigInt(Math.abs(this.milliseconds)) * BigInt(1e6) + BigInt(Math.abs(this.microseconds)) * BigInt(1e3) + BigInt(Math.abs(this.nanoseconds))).toString().padStart(10, "0"); + const seconds = totalNanoseconds.slice(0, -9); + const fracSeconds = totalNanoseconds.slice(-9).replace(/0+$/, ""); + timeParts += seconds + (fracSeconds.length ? "." + fracSeconds : "") + "S"; + } + return (this.sign === -1 ? "-" : "") + "P" + dateParts + (timeParts ? "T" + timeParts : ""); + } + static from(item) { + let result; + if (item instanceof _Duration) { + result = item; + } + if (typeof item === "object") { + if (item.years === void 0 && item.months === void 0 && item.weeks === void 0 && item.days === void 0 && item.hours === void 0 && item.minutes === void 0 && item.seconds === void 0 && item.milliseconds === void 0 && item.microseconds === void 0 && item.nanoseconds === void 0) { + throw new TypeError(`invalid duration-like`); + } + result = item; + } else { + const str = String(item); + const matches = str.match(durationRegex2); + if (!matches) { + throw new RangeError(`invalid duration: ${str}`); + } + const [_duration, _sign, years, months, weeks, days, _time, hours, fHours, minutes, fMinutes, seconds, fSeconds] = matches; + if (_duration.length < 3 || _time.length === 1) { + throw new RangeError(`invalid duration: ${str}`); + } + const sign = _sign === "-" ? -1 : 1; + result = {}; + if (years) { + result.years = sign * Number(years); + } + if (months) { + result.months = sign * Number(months); + } + if (weeks) { + result.weeks = sign * Number(weeks); + } + if (days) { + result.days = sign * Number(days); + } + if (hours) { + result.hours = sign * Number(hours); + } + if (fHours) { + if (minutes || fMinutes || seconds || fSeconds) { + throw new RangeError("only the smallest unit can be fractional"); + } + result.minutes = Number(fHours) * 60; + } else { + result.minutes = toNumber(minutes); + } + if (fMinutes) { + if (seconds || fSeconds) { + throw new RangeError("only the smallest unit can be fractional"); + } + result.seconds = Number(fMinutes) * 60; + } else if (seconds) { + result.seconds = Number(seconds); + } else { + result.seconds = result.minutes % 1 * 60; + } + if (fSeconds) { + const ns = fSeconds.slice(1).padEnd(9, "0"); + result.milliseconds = Number(ns.slice(0, 3)); + result.microseconds = Number(ns.slice(3, 6)); + result.nanoseconds = sign * Number(ns.slice(6)); + } else { + result.milliseconds = result.seconds % 1 * 1e3; + result.microseconds = result.milliseconds % 1 * 1e3; + result.nanoseconds = sign * Math.floor(result.microseconds % 1 * 1e3); + } + result.minutes = sign * Math.floor(result.minutes); + result.seconds = sign * Math.floor(result.seconds); + result.milliseconds = sign * Math.floor(result.milliseconds); + result.microseconds = sign * Math.floor(result.microseconds); + } + return new _Duration(result.years, result.months, result.weeks, result.days, result.hours, result.minutes, result.seconds, result.milliseconds, result.microseconds, result.nanoseconds); + } + }; + exports2.Duration = Duration; + var RelativeDuration = class { + years; + months; + weeks; + days; + hours; + minutes; + seconds; + milliseconds; + microseconds; + constructor(years = 0, months = 0, weeks = 0, days = 0, hours = 0, minutes = 0, seconds = 0, milliseconds = 0, microseconds = 0) { + this.years = Math.trunc(years) || 0; + this.months = Math.trunc(months) || 0; + this.weeks = Math.trunc(weeks) || 0; + this.days = Math.trunc(days) || 0; + this.hours = Math.trunc(hours) || 0; + this.minutes = Math.trunc(minutes) || 0; + this.seconds = Math.trunc(seconds) || 0; + this.milliseconds = Math.trunc(milliseconds) || 0; + this.microseconds = Math.trunc(microseconds) || 0; + forwardJsonAsToString(this); + throwOnValueOf(this, "RelativeDuration"); + } + toString() { + let str = "P"; + if (this.years) { + str += `${this.years}Y`; + } + if (this.months) { + str += `${this.months}M`; + } + const days = this.days + 7 * this.weeks; + if (days) { + str += `${days}D`; + } + let timeParts = ""; + if (this.hours) { + timeParts += `${this.hours}H`; + } + if (this.minutes) { + timeParts += `${this.minutes}M`; + } + const seconds = this.seconds + this.milliseconds / 1e3 + this.microseconds / 1e6; + if (seconds !== 0) { + timeParts += `${seconds}S`; + } + if (timeParts) { + str += `T${timeParts}`; + } + if (str === "P") { + return "PT0S"; + } + return str; + } + }; + exports2.RelativeDuration = RelativeDuration; + var DateDuration = class { + years; + months; + weeks; + days; + constructor(years = 0, months = 0, weeks = 0, days = 0) { + this.years = Math.trunc(years) || 0; + this.months = Math.trunc(months) || 0; + this.weeks = Math.trunc(weeks) || 0; + this.days = Math.trunc(days) || 0; + forwardJsonAsToString(this); + throwOnValueOf(this, "DateDuration"); + } + toString() { + let str = "P"; + if (this.years) { + str += `${this.years}Y`; + } + if (this.months) { + str += `${this.months}M`; + } + const days = this.days + 7 * this.weeks; + if (days) { + str += `${days}D`; + } + if (str === "P") { + return "PT0S"; + } + return str; + } + }; + exports2.DateDuration = DateDuration; + var humanDurationPrefixes = { + h: 36e5, + hou: 36e5, + m: 6e4, + min: 6e4, + s: 1e3, + sec: 1e3, + ms: 1, + mil: 1 + }; + function parseHumanDurationString(durationStr) { + const regex = /(\d+|\d+\.\d+|\.\d+)\s*(hours?|minutes?|seconds?|milliseconds?|ms|h|m|s)\s*/g; + let duration = 0; + const seen = /* @__PURE__ */ new Set(); + let match2 = regex.exec(durationStr); + let lastIndex = 0; + while (match2) { + if (match2.index !== lastIndex) { + throw new Error(`invalid duration "${durationStr}"`); + } + const mult = humanDurationPrefixes[match2[2].slice(0, 3)]; + if (seen.has(mult)) { + throw new Error(`invalid duration "${durationStr}"`); + } + duration += Number(match2[1]) * mult; + seen.add(mult); + lastIndex = regex.lastIndex; + match2 = regex.exec(durationStr); + } + if (lastIndex !== durationStr.length) { + throw new Error(`invalid duration "${durationStr}"`); + } + return duration; + } + var forwardJsonAsToString = (obj) => { + Object.defineProperty(obj, "toJSON", { + value: () => obj.toString(), + enumerable: false, + configurable: true + }); + }; + var throwOnValueOf = (obj, typename) => { + Object.defineProperty(obj, "valueOf", { + value: () => { + throw new TypeError(`Not possible to compare ${typename}`); + }, + enumerable: false, + configurable: true + }); + }; + } +}); + +// ../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/codecs/datetime.js +var require_datetime2 = __commonJS({ + "../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/codecs/datetime.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.DateDurationCodec = exports2.RelativeDurationCodec = exports2.DurationCodec = exports2.LocalTimeCodec = exports2.LocalDateCodec = exports2.LocalDateTimeCodec = exports2.DateTimeCodec = void 0; + exports2.checkValidGelDuration = checkValidGelDuration; + var ifaces_1 = require_ifaces(); + var datetime_1 = require_datetime(); + var dateutil_1 = require_dateutil(); + var errors_1 = require_errors(); + var TIMESHIFT = 9466848e5; + var BI_TIMESHIFT_US = BigInt(TIMESHIFT) * 1000n; + var DATESHIFT_ORD = (0, dateutil_1.ymd2ord)(2e3, 1, 1); + var DateTimeCodec = class extends ifaces_1.ScalarCodec { + tsType = "Date"; + encode(buf, object, ctx) { + if (ctx.hasOverload(this)) { + const val2 = ctx.preEncode(this, object); + if (typeof val2 != "bigint") { + throw new errors_1.InvalidArgumentError(`a bigint was expected out of a custom std::datetime codec`); + } + buf.writeInt32(8); + buf.writeBigInt64(val2 - BI_TIMESHIFT_US); + return; + } + if (!(object instanceof Date)) { + throw new errors_1.InvalidArgumentError(`a Date instance was expected, got "${object}"`); + } + const ms = object.getTime() - TIMESHIFT; + const us = ms * 1e3; + buf.writeInt32(8); + buf.writeInt64(us); + } + decode(buf, ctx) { + if (ctx.hasOverload(this)) { + const us2 = buf.readBigInt64(); + return ctx.postDecode(this, us2 + BI_TIMESHIFT_US); + } + const us = Number(buf.readBigInt64()); + let ms = Math.round(us / 1e3); + if (Math.abs(us % 1e3) === 500 && Math.abs(ms) % 2 === 1) { + ms -= 1; + } + ms += TIMESHIFT; + return new Date(ms); + } + }; + exports2.DateTimeCodec = DateTimeCodec; + var LocalDateTimeCodec = class extends ifaces_1.ScalarCodec { + tsType = "LocalDateTime"; + tsModule = "gel"; + encode(buf, object, ctx) { + if (ctx.hasOverload(this)) { + let us2 = ctx.preEncode(this, object); + if (typeof us2 != "bigint") { + throw new errors_1.InvalidArgumentError(`a bigint was expected out of a custom cal::local_datetime codec`); + } + us2 -= BI_TIMESHIFT_US; + buf.writeInt32(8); + buf.writeBigInt64(us2); + return; + } + if (!(object instanceof datetime_1.LocalDateTime)) { + throw new errors_1.InvalidArgumentError(`a LocalDateTime instance was expected, got "${object}"`); + } + const ms = BigInt(datetime_1.localDateInstances.get(object).getTime() - TIMESHIFT); + let us = ms * 1000n + BigInt(object.hour * 36e8 + object.minute * 6e7 + object.second * 1e6 + object.millisecond * 1e3 + object.microsecond); + if (object.nanosecond === 500 && Math.abs(object.microsecond) % 2 === 1 || object.nanosecond > 500) { + us += 1n; + } + buf.writeInt32(8); + buf.writeBigInt64(us); + } + decode(buf, ctx) { + const bi_us = buf.readBigInt64(); + if (ctx.hasOverload(this)) { + return ctx.postDecode(this, BigInt(bi_us + BI_TIMESHIFT_US)); + } + const bi_ms = bi_us / 1000n; + let us = Number(bi_us - bi_ms * 1000n); + let ms = Number(bi_ms); + if (us < 0) { + us += 1e3; + ms -= 1; + } + ms += TIMESHIFT; + const date = new Date(ms); + return new datetime_1.LocalDateTime(date.getUTCFullYear(), date.getUTCMonth() + 1, date.getUTCDate(), date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds(), date.getUTCMilliseconds(), us); + } + }; + exports2.LocalDateTimeCodec = LocalDateTimeCodec; + var LocalDateCodec = class extends ifaces_1.ScalarCodec { + tsType = "LocalDate"; + tsModule = "gel"; + encode(buf, object, ctx) { + if (ctx.hasOverload(this)) { + const ret = ctx.preEncode(this, object); + const ord2 = (0, dateutil_1.ymd2ord)(...ret); + buf.writeInt32(4); + buf.writeInt32(ord2 - DATESHIFT_ORD); + return; + } + if (!(object instanceof datetime_1.LocalDate)) { + throw new errors_1.InvalidArgumentError(`a LocalDate instance was expected, got "${object}"`); + } + const ord = (0, datetime_1.LocalDateToOrdinal)(object); + buf.writeInt32(4); + buf.writeInt32(ord - DATESHIFT_ORD); + } + decode(buf, ctx) { + const ord = buf.readInt32() + DATESHIFT_ORD; + if (ctx.hasOverload(this)) { + return ctx.postDecode(this, (0, dateutil_1.ord2ymd)(ord)); + } + return (0, datetime_1.LocalDateFromOrdinal)(ord); + } + }; + exports2.LocalDateCodec = LocalDateCodec; + var LocalTimeCodec = class extends ifaces_1.ScalarCodec { + tsType = "LocalTime"; + tsModule = "gel"; + encode(buf, object, ctx) { + if (ctx.hasOverload(this)) { + const us2 = ctx.preEncode(this, object); + if (typeof us2 != "bigint") { + throw new errors_1.InvalidArgumentError(`a bigint was expected out of a custom cal::local_time codec`); + } + buf.writeInt32(8); + buf.writeBigInt64(us2); + return; + } + if (!(object instanceof datetime_1.LocalTime)) { + throw new errors_1.InvalidArgumentError(`a LocalTime instance was expected, got "${object}"`); + } + let us = object.hour * 36e8 + object.minute * 6e7 + object.second * 1e6 + object.millisecond * 1e3 + object.microsecond; + if (object.nanosecond === 500 && us % 2 === 1 || object.nanosecond > 500) { + us += 1; + } + buf.writeInt32(8); + buf.writeInt64(us); + } + decode(buf, ctx) { + const bius = buf.readBigInt64(); + if (ctx.hasOverload(this)) { + return ctx.postDecode(this, bius); + } + let us = Number(bius); + let seconds = Math.floor(us / 1e6); + const ms = Math.floor(us % 1e6 / 1e3); + us = us % 1e6 - ms * 1e3; + let minutes = Math.floor(seconds / 60); + seconds = Math.floor(seconds % 60); + const hours = Math.floor(minutes / 60); + minutes = Math.floor(minutes % 60); + return new datetime_1.LocalTime(hours, minutes, seconds, ms, us); + } + }; + exports2.LocalTimeCodec = LocalTimeCodec; + var unencodableDurationFields = [ + "years", + "months", + "weeks", + "days" + ]; + function checkValidGelDuration(duration) { + for (const field of unencodableDurationFields) { + if (duration[field] !== 0) { + return field; + } + } + return null; + } + var DurationCodec = class extends ifaces_1.ScalarCodec { + tsType = "Duration"; + tsModule = "gel"; + encode(buf, object, ctx) { + if (ctx.hasOverload(this)) { + const us2 = ctx.preEncode(this, object); + if (typeof us2 != "bigint") { + throw new errors_1.InvalidArgumentError(`a bigint was expected out of a custom std::duration codec`); + } + buf.writeInt32(16); + buf.writeBigInt64(us2); + buf.writeInt32(0); + buf.writeInt32(0); + return; + } + if (!(object instanceof datetime_1.Duration)) { + throw new errors_1.InvalidArgumentError(`a Duration instance was expected, got "${object}"`); + } + const invalidField = checkValidGelDuration(object); + if (invalidField) { + throw new errors_1.InvalidArgumentError(`Cannot encode a 'Duration' with a non-zero number of ${invalidField}`); + } + let us = BigInt(Math.abs(object.microseconds)); + us += BigInt(Math.abs(object.milliseconds)) * BigInt(1e3); + us += BigInt(Math.abs(object.seconds)) * BigInt(1e6); + us += BigInt(Math.abs(object.minutes)) * BigInt(6e7); + us += BigInt(Math.abs(object.hours)) * BigInt(36e8); + if (Math.abs(object.nanoseconds) === 500 && Math.abs(object.microseconds) % 2 === 1 || Math.abs(object.nanoseconds) > 500) { + us += 1n; + } + if (object.sign < 0) { + us *= -1n; + } + buf.writeInt32(16); + buf.writeBigInt64(us); + buf.writeInt32(0); + buf.writeInt32(0); + } + decode(buf, ctx) { + let bius = buf.readBigInt64(); + const days = buf.readInt32(); + const months = buf.readInt32(); + if (days !== 0) { + throw new errors_1.ProtocolError("non-zero reserved bytes in duration"); + } + if (months !== 0) { + throw new errors_1.ProtocolError("non-zero reserved bytes in duration"); + } + if (ctx.hasOverload(this)) { + return ctx.postDecode(this, bius); + } + let sign = 1; + if (Number(bius) < 0) { + sign = -1; + bius *= -1n; + } + const biMillion = 1000000n; + const biSeconds = bius / biMillion; + let us = Number(bius - biSeconds * biMillion); + const ms = Math.floor(us / 1e3); + us = us % 1e3; + let seconds = Number(biSeconds); + let minutes = Math.floor(seconds / 60); + seconds = Math.floor(seconds % 60); + const hours = Math.floor(minutes / 60); + minutes = Math.floor(minutes % 60); + return new datetime_1.Duration(0, 0, 0, 0, hours * sign, minutes * sign, seconds * sign, ms * sign, us * sign); + } + }; + exports2.DurationCodec = DurationCodec; + var RelativeDurationCodec = class extends ifaces_1.ScalarCodec { + tsType = "RelativeDuration"; + tsModule = "gel"; + encode(buf, object, ctx) { + if (ctx.hasOverload(this)) { + const ret = ctx.preEncode(this, object); + buf.writeInt32(16); + buf.writeBigInt64(ret[2]); + buf.writeInt32(ret[1]); + buf.writeInt32(ret[0]); + return; + } + if (!(object instanceof datetime_1.RelativeDuration)) { + throw new errors_1.InvalidArgumentError(` + a RelativeDuration instance was expected, got "${object}" + `); + } + const us = BigInt(object.microseconds) + BigInt(object.milliseconds) * BigInt(1e3) + BigInt(object.seconds) * BigInt(1e6) + BigInt(object.minutes) * BigInt(6e7) + BigInt(object.hours) * BigInt(36e8); + buf.writeInt32(16); + buf.writeBigInt64(us); + buf.writeInt32(object.days + 7 * object.weeks); + buf.writeInt32(object.months + 12 * object.years); + } + decode(buf, ctx) { + let bius = buf.readBigInt64(); + let days = buf.readInt32(); + let months = buf.readInt32(); + if (ctx.hasOverload(this)) { + return ctx.postDecode(this, [ + months, + days, + bius + ]); + } + let sign = 1; + if (Number(bius) < 0) { + sign = -1; + bius *= -1n; + } + const million = BigInt(1e6); + const biSeconds = bius / million; + let us = Number(bius - biSeconds * million); + const ms = Math.trunc(us / 1e3); + us = us % 1e3; + let seconds = Number(biSeconds); + let minutes = Math.trunc(seconds / 60); + seconds = Math.trunc(seconds % 60); + const hours = Math.trunc(minutes / 60); + minutes = Math.trunc(minutes % 60); + const weeks = Math.trunc(days / 7); + days = Math.trunc(days % 7); + const years = Math.trunc(months / 12); + months = Math.trunc(months % 12); + return new datetime_1.RelativeDuration(years, months, weeks, days, hours * sign, minutes * sign, seconds * sign, ms * sign, us * sign); + } + }; + exports2.RelativeDurationCodec = RelativeDurationCodec; + var DateDurationCodec = class extends ifaces_1.ScalarCodec { + tsType = "DateDuration"; + tsModule = "gel"; + encode(buf, object, ctx) { + if (ctx.hasOverload(this)) { + const ret = ctx.preEncode(this, object); + buf.writeInt32(16); + buf.writeInt64(0); + buf.writeInt32(ret[1]); + buf.writeInt32(ret[0]); + return; + } + if (!(object instanceof datetime_1.DateDuration)) { + throw new errors_1.InvalidArgumentError(` + a DateDuration instance was expected, got "${object}" + `); + } + buf.writeInt32(16); + buf.writeInt64(0); + buf.writeInt32(object.days + 7 * object.weeks); + buf.writeInt32(object.months + 12 * object.years); + } + decode(buf, ctx) { + buf.discard(8); + let days = buf.readInt32(); + let months = buf.readInt32(); + if (ctx.hasOverload(this)) { + return ctx.postDecode(this, [months, days]); + } + const weeks = Math.trunc(days / 7); + days = Math.trunc(days % 7); + const years = Math.trunc(months / 12); + months = Math.trunc(months % 12); + return new datetime_1.DateDuration(years, months, weeks, days); + } + }; + exports2.DateDurationCodec = DateDurationCodec; + } +}); + +// ../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/datatypes/memory.js +var require_memory = __commonJS({ + "../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/datatypes/memory.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ConfigMemory = void 0; + var KiB = 1024; + var MiB = 1024 * KiB; + var GiB = 1024 * MiB; + var TiB = 1024 * GiB; + var PiB = 1024 * TiB; + var ConfigMemory = class { + _bytes; + constructor(bytes) { + this._bytes = bytes; + } + get bytes() { + return Number(this._bytes); + } + get bytesBigInt() { + return this._bytes; + } + get kibibytes() { + return Number(this._bytes) / KiB; + } + get mebibytes() { + return Number(this._bytes) / MiB; + } + get gibibytes() { + return Number(this._bytes) / GiB; + } + get tebibytes() { + return Number(this._bytes) / TiB; + } + get pebibytes() { + return Number(this._bytes) / PiB; + } + toString() { + const bytes = this._bytes; + const bigPiB = BigInt(PiB); + if (bytes >= bigPiB && Number(bytes % bigPiB) === 0) { + return `${bytes / bigPiB}PiB`; + } + const bigTiB = BigInt(TiB); + if (bytes >= bigTiB && Number(bytes % bigTiB) === 0) { + return `${bytes / bigTiB}TiB`; + } + const bigGiB = BigInt(GiB); + if (bytes >= bigGiB && Number(bytes % bigGiB) === 0) { + return `${bytes / bigGiB}GiB`; + } + const bigMiB = BigInt(MiB); + if (bytes >= bigMiB && Number(bytes % bigMiB) === 0) { + return `${bytes / bigMiB}MiB`; + } + const bigKiB = BigInt(KiB); + if (bytes >= bigKiB && Number(bytes % bigKiB) === 0) { + return `${bytes / bigKiB}KiB`; + } + return `${bytes}B`; + } + }; + exports2.ConfigMemory = ConfigMemory; + } +}); + +// ../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/codecs/memory.js +var require_memory2 = __commonJS({ + "../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/codecs/memory.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ConfigMemoryCodec = void 0; + var ifaces_1 = require_ifaces(); + var memory_1 = require_memory(); + var errors_1 = require_errors(); + var ConfigMemoryCodec = class extends ifaces_1.ScalarCodec { + tsType = "ConfigMemory"; + tsModule = "gel"; + encode(buf, object, ctx) { + if (ctx.hasOverload(this)) { + const val2 = ctx.preEncode(this, object); + if (typeof val2 != "bigint") { + throw new errors_1.InvalidArgumentError(`a bigint was expected out of a custom cfg::memory codec`); + } + buf.writeInt32(8); + buf.writeBigInt64(val2); + return; + } + if (!(object instanceof memory_1.ConfigMemory)) { + throw new errors_1.InvalidArgumentError(`a ConfigMemory instance was expected, got "${object}"`); + } + buf.writeInt32(8); + buf.writeBigInt64(object._bytes); + } + decode(buf, ctx) { + const val2 = buf.readBigInt64(); + if (ctx.hasOverload(this)) { + return ctx.postDecode(this, val2); + } + return new memory_1.ConfigMemory(val2); + } + }; + exports2.ConfigMemoryCodec = ConfigMemoryCodec; + } +}); + +// ../node_modules/.pnpm/@petamoriken+float16@3.9.2/node_modules/@petamoriken/float16/lib/_util/messages.cjs +var require_messages = __commonJS({ + "../node_modules/.pnpm/@petamoriken+float16@3.9.2/node_modules/@petamoriken/float16/lib/_util/messages.cjs"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + var THIS_IS_NOT_AN_OBJECT = exports2.THIS_IS_NOT_AN_OBJECT = "This is not an object"; + var THIS_IS_NOT_A_FLOAT16ARRAY_OBJECT = exports2.THIS_IS_NOT_A_FLOAT16ARRAY_OBJECT = "This is not a Float16Array object"; + var THIS_CONSTRUCTOR_IS_NOT_A_SUBCLASS_OF_FLOAT16ARRAY = exports2.THIS_CONSTRUCTOR_IS_NOT_A_SUBCLASS_OF_FLOAT16ARRAY = "This constructor is not a subclass of Float16Array"; + var THE_CONSTRUCTOR_PROPERTY_VALUE_IS_NOT_AN_OBJECT = exports2.THE_CONSTRUCTOR_PROPERTY_VALUE_IS_NOT_AN_OBJECT = "The constructor property value is not an object"; + var SPECIES_CONSTRUCTOR_DIDNT_RETURN_TYPEDARRAY_OBJECT = exports2.SPECIES_CONSTRUCTOR_DIDNT_RETURN_TYPEDARRAY_OBJECT = "Species constructor didn't return TypedArray object"; + var DERIVED_CONSTRUCTOR_CREATED_TYPEDARRAY_OBJECT_WHICH_WAS_TOO_SMALL_LENGTH = exports2.DERIVED_CONSTRUCTOR_CREATED_TYPEDARRAY_OBJECT_WHICH_WAS_TOO_SMALL_LENGTH = "Derived constructor created TypedArray object which was too small length"; + var ATTEMPTING_TO_ACCESS_DETACHED_ARRAYBUFFER = exports2.ATTEMPTING_TO_ACCESS_DETACHED_ARRAYBUFFER = "Attempting to access detached ArrayBuffer"; + var CANNOT_CONVERT_UNDEFINED_OR_NULL_TO_OBJECT = exports2.CANNOT_CONVERT_UNDEFINED_OR_NULL_TO_OBJECT = "Cannot convert undefined or null to object"; + var CANNOT_MIX_BIGINT_AND_OTHER_TYPES = exports2.CANNOT_MIX_BIGINT_AND_OTHER_TYPES = "Cannot mix BigInt and other types, use explicit conversions"; + var ITERATOR_PROPERTY_IS_NOT_CALLABLE = exports2.ITERATOR_PROPERTY_IS_NOT_CALLABLE = "@@iterator property is not callable"; + var REDUCE_OF_EMPTY_ARRAY_WITH_NO_INITIAL_VALUE = exports2.REDUCE_OF_EMPTY_ARRAY_WITH_NO_INITIAL_VALUE = "Reduce of empty array with no initial value"; + var THE_COMPARISON_FUNCTION_MUST_BE_EITHER_A_FUNCTION_OR_UNDEFINED = exports2.THE_COMPARISON_FUNCTION_MUST_BE_EITHER_A_FUNCTION_OR_UNDEFINED = "The comparison function must be either a function or undefined"; + var OFFSET_IS_OUT_OF_BOUNDS = exports2.OFFSET_IS_OUT_OF_BOUNDS = "Offset is out of bounds"; + } +}); + +// ../node_modules/.pnpm/@petamoriken+float16@3.9.2/node_modules/@petamoriken/float16/lib/_util/primordials.cjs +var require_primordials = __commonJS({ + "../node_modules/.pnpm/@petamoriken+float16@3.9.2/node_modules/@petamoriken/float16/lib/_util/primordials.cjs"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + var _messages = require_messages(); + function uncurryThis(target) { + return (thisArg, ...args) => { + return ReflectApply(target, thisArg, args); + }; + } + function uncurryThisGetter(target, key) { + return uncurryThis(ReflectGetOwnPropertyDescriptor(target, key).get); + } + var { + apply: ReflectApply, + construct: ReflectConstruct, + defineProperty: ReflectDefineProperty, + get: ReflectGet, + getOwnPropertyDescriptor: ReflectGetOwnPropertyDescriptor, + getPrototypeOf: ReflectGetPrototypeOf, + has: ReflectHas, + ownKeys: ReflectOwnKeys, + set: ReflectSet, + setPrototypeOf: ReflectSetPrototypeOf + } = Reflect; + exports2.ReflectSetPrototypeOf = ReflectSetPrototypeOf; + exports2.ReflectSet = ReflectSet; + exports2.ReflectOwnKeys = ReflectOwnKeys; + exports2.ReflectHas = ReflectHas; + exports2.ReflectGetPrototypeOf = ReflectGetPrototypeOf; + exports2.ReflectGetOwnPropertyDescriptor = ReflectGetOwnPropertyDescriptor; + exports2.ReflectGet = ReflectGet; + exports2.ReflectDefineProperty = ReflectDefineProperty; + exports2.ReflectConstruct = ReflectConstruct; + exports2.ReflectApply = ReflectApply; + var NativeProxy = exports2.NativeProxy = Proxy; + var { + EPSILON, + MAX_SAFE_INTEGER, + isFinite: NumberIsFinite, + isNaN: NumberIsNaN + } = Number; + exports2.NumberIsNaN = NumberIsNaN; + exports2.NumberIsFinite = NumberIsFinite; + exports2.MAX_SAFE_INTEGER = MAX_SAFE_INTEGER; + exports2.EPSILON = EPSILON; + var { + iterator: SymbolIterator, + species: SymbolSpecies, + toStringTag: SymbolToStringTag, + for: SymbolFor + } = Symbol; + exports2.SymbolFor = SymbolFor; + exports2.SymbolToStringTag = SymbolToStringTag; + exports2.SymbolSpecies = SymbolSpecies; + exports2.SymbolIterator = SymbolIterator; + var NativeObject = exports2.NativeObject = Object; + var { + create: ObjectCreate, + defineProperty: ObjectDefineProperty, + freeze: ObjectFreeze, + is: ObjectIs + } = NativeObject; + exports2.ObjectIs = ObjectIs; + exports2.ObjectFreeze = ObjectFreeze; + exports2.ObjectDefineProperty = ObjectDefineProperty; + exports2.ObjectCreate = ObjectCreate; + var ObjectPrototype = NativeObject.prototype; + var ObjectPrototype__lookupGetter__ = exports2.ObjectPrototype__lookupGetter__ = ObjectPrototype.__lookupGetter__ ? uncurryThis(ObjectPrototype.__lookupGetter__) : (object, key) => { + if (object == null) { + throw NativeTypeError(_messages.CANNOT_CONVERT_UNDEFINED_OR_NULL_TO_OBJECT); + } + let target = NativeObject(object); + do { + const descriptor = ReflectGetOwnPropertyDescriptor(target, key); + if (descriptor !== void 0) { + if (ObjectHasOwn(descriptor, "get")) { + return descriptor.get; + } + return; + } + } while ((target = ReflectGetPrototypeOf(target)) !== null); + }; + var ObjectHasOwn = exports2.ObjectHasOwn = NativeObject.hasOwn || uncurryThis(ObjectPrototype.hasOwnProperty); + var NativeArray = Array; + var ArrayIsArray = exports2.ArrayIsArray = NativeArray.isArray; + var ArrayPrototype = NativeArray.prototype; + var ArrayPrototypeJoin = exports2.ArrayPrototypeJoin = uncurryThis(ArrayPrototype.join); + var ArrayPrototypePush = exports2.ArrayPrototypePush = uncurryThis(ArrayPrototype.push); + var ArrayPrototypeToLocaleString = exports2.ArrayPrototypeToLocaleString = uncurryThis(ArrayPrototype.toLocaleString); + var NativeArrayPrototypeSymbolIterator = exports2.NativeArrayPrototypeSymbolIterator = ArrayPrototype[SymbolIterator]; + var ArrayPrototypeSymbolIterator = exports2.ArrayPrototypeSymbolIterator = uncurryThis(NativeArrayPrototypeSymbolIterator); + var { + abs: MathAbs, + trunc: MathTrunc + } = Math; + exports2.MathTrunc = MathTrunc; + exports2.MathAbs = MathAbs; + var NativeArrayBuffer = exports2.NativeArrayBuffer = ArrayBuffer; + var ArrayBufferIsView = exports2.ArrayBufferIsView = NativeArrayBuffer.isView; + var ArrayBufferPrototype = NativeArrayBuffer.prototype; + var ArrayBufferPrototypeSlice = exports2.ArrayBufferPrototypeSlice = uncurryThis(ArrayBufferPrototype.slice); + var ArrayBufferPrototypeGetByteLength = exports2.ArrayBufferPrototypeGetByteLength = uncurryThisGetter(ArrayBufferPrototype, "byteLength"); + var NativeSharedArrayBuffer = exports2.NativeSharedArrayBuffer = typeof SharedArrayBuffer !== "undefined" ? SharedArrayBuffer : null; + var SharedArrayBufferPrototypeGetByteLength = exports2.SharedArrayBufferPrototypeGetByteLength = NativeSharedArrayBuffer && uncurryThisGetter(NativeSharedArrayBuffer.prototype, "byteLength"); + var TypedArray = exports2.TypedArray = ReflectGetPrototypeOf(Uint8Array); + var TypedArrayFrom = TypedArray.from; + var TypedArrayPrototype = exports2.TypedArrayPrototype = TypedArray.prototype; + var NativeTypedArrayPrototypeSymbolIterator = exports2.NativeTypedArrayPrototypeSymbolIterator = TypedArrayPrototype[SymbolIterator]; + var TypedArrayPrototypeKeys = exports2.TypedArrayPrototypeKeys = uncurryThis(TypedArrayPrototype.keys); + var TypedArrayPrototypeValues = exports2.TypedArrayPrototypeValues = uncurryThis(TypedArrayPrototype.values); + var TypedArrayPrototypeEntries = exports2.TypedArrayPrototypeEntries = uncurryThis(TypedArrayPrototype.entries); + var TypedArrayPrototypeSet = exports2.TypedArrayPrototypeSet = uncurryThis(TypedArrayPrototype.set); + var TypedArrayPrototypeReverse = exports2.TypedArrayPrototypeReverse = uncurryThis(TypedArrayPrototype.reverse); + var TypedArrayPrototypeFill = exports2.TypedArrayPrototypeFill = uncurryThis(TypedArrayPrototype.fill); + var TypedArrayPrototypeCopyWithin = exports2.TypedArrayPrototypeCopyWithin = uncurryThis(TypedArrayPrototype.copyWithin); + var TypedArrayPrototypeSort = exports2.TypedArrayPrototypeSort = uncurryThis(TypedArrayPrototype.sort); + var TypedArrayPrototypeSlice = exports2.TypedArrayPrototypeSlice = uncurryThis(TypedArrayPrototype.slice); + var TypedArrayPrototypeSubarray = exports2.TypedArrayPrototypeSubarray = uncurryThis(TypedArrayPrototype.subarray); + var TypedArrayPrototypeGetBuffer = exports2.TypedArrayPrototypeGetBuffer = uncurryThisGetter(TypedArrayPrototype, "buffer"); + var TypedArrayPrototypeGetByteOffset = exports2.TypedArrayPrototypeGetByteOffset = uncurryThisGetter(TypedArrayPrototype, "byteOffset"); + var TypedArrayPrototypeGetLength = exports2.TypedArrayPrototypeGetLength = uncurryThisGetter(TypedArrayPrototype, "length"); + var TypedArrayPrototypeGetSymbolToStringTag = exports2.TypedArrayPrototypeGetSymbolToStringTag = uncurryThisGetter(TypedArrayPrototype, SymbolToStringTag); + var NativeUint8Array = exports2.NativeUint8Array = Uint8Array; + var NativeUint16Array = exports2.NativeUint16Array = Uint16Array; + var Uint16ArrayFrom = (...args) => { + return ReflectApply(TypedArrayFrom, NativeUint16Array, args); + }; + exports2.Uint16ArrayFrom = Uint16ArrayFrom; + var NativeUint32Array = exports2.NativeUint32Array = Uint32Array; + var NativeFloat32Array = exports2.NativeFloat32Array = Float32Array; + var ArrayIteratorPrototype = exports2.ArrayIteratorPrototype = ReflectGetPrototypeOf([][SymbolIterator]()); + var ArrayIteratorPrototypeNext = exports2.ArrayIteratorPrototypeNext = uncurryThis(ArrayIteratorPrototype.next); + var GeneratorPrototypeNext = exports2.GeneratorPrototypeNext = uncurryThis(function* () { + }().next); + var IteratorPrototype = exports2.IteratorPrototype = ReflectGetPrototypeOf(ArrayIteratorPrototype); + var DataViewPrototype = DataView.prototype; + var DataViewPrototypeGetUint16 = exports2.DataViewPrototypeGetUint16 = uncurryThis(DataViewPrototype.getUint16); + var DataViewPrototypeSetUint16 = exports2.DataViewPrototypeSetUint16 = uncurryThis(DataViewPrototype.setUint16); + var NativeTypeError = exports2.NativeTypeError = TypeError; + var NativeRangeError = exports2.NativeRangeError = RangeError; + var NativeWeakSet = exports2.NativeWeakSet = WeakSet; + var WeakSetPrototype = NativeWeakSet.prototype; + var WeakSetPrototypeAdd = exports2.WeakSetPrototypeAdd = uncurryThis(WeakSetPrototype.add); + var WeakSetPrototypeHas = exports2.WeakSetPrototypeHas = uncurryThis(WeakSetPrototype.has); + var NativeWeakMap = exports2.NativeWeakMap = WeakMap; + var WeakMapPrototype = NativeWeakMap.prototype; + var WeakMapPrototypeGet = exports2.WeakMapPrototypeGet = uncurryThis(WeakMapPrototype.get); + var WeakMapPrototypeHas = exports2.WeakMapPrototypeHas = uncurryThis(WeakMapPrototype.has); + var WeakMapPrototypeSet = exports2.WeakMapPrototypeSet = uncurryThis(WeakMapPrototype.set); + } +}); + +// ../node_modules/.pnpm/@petamoriken+float16@3.9.2/node_modules/@petamoriken/float16/lib/_util/arrayIterator.cjs +var require_arrayIterator = __commonJS({ + "../node_modules/.pnpm/@petamoriken+float16@3.9.2/node_modules/@petamoriken/float16/lib/_util/arrayIterator.cjs"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.safeIfNeeded = safeIfNeeded; + exports2.wrap = wrap; + var _primordials = require_primordials(); + var arrayIterators = new _primordials.NativeWeakMap(); + var SafeIteratorPrototype = (0, _primordials.ObjectCreate)(null, { + next: { + value: function next() { + const arrayIterator = (0, _primordials.WeakMapPrototypeGet)(arrayIterators, this); + return (0, _primordials.ArrayIteratorPrototypeNext)(arrayIterator); + } + }, + [_primordials.SymbolIterator]: { + value: function values() { + return this; + } + } + }); + function safeIfNeeded(array2) { + if (array2[_primordials.SymbolIterator] === _primordials.NativeArrayPrototypeSymbolIterator && _primordials.ArrayIteratorPrototype.next === _primordials.ArrayIteratorPrototypeNext) { + return array2; + } + const safe = (0, _primordials.ObjectCreate)(SafeIteratorPrototype); + (0, _primordials.WeakMapPrototypeSet)(arrayIterators, safe, (0, _primordials.ArrayPrototypeSymbolIterator)(array2)); + return safe; + } + var generators = new _primordials.NativeWeakMap(); + var DummyArrayIteratorPrototype = (0, _primordials.ObjectCreate)(_primordials.IteratorPrototype, { + next: { + value: function next() { + const generator = (0, _primordials.WeakMapPrototypeGet)(generators, this); + return (0, _primordials.GeneratorPrototypeNext)(generator); + }, + writable: true, + configurable: true + } + }); + for (const key of (0, _primordials.ReflectOwnKeys)(_primordials.ArrayIteratorPrototype)) { + if (key === "next") { + continue; + } + (0, _primordials.ObjectDefineProperty)(DummyArrayIteratorPrototype, key, (0, _primordials.ReflectGetOwnPropertyDescriptor)(_primordials.ArrayIteratorPrototype, key)); + } + function wrap(generator) { + const dummy = (0, _primordials.ObjectCreate)(DummyArrayIteratorPrototype); + (0, _primordials.WeakMapPrototypeSet)(generators, dummy, generator); + return dummy; + } + } +}); + +// ../node_modules/.pnpm/@petamoriken+float16@3.9.2/node_modules/@petamoriken/float16/lib/_util/is.cjs +var require_is = __commonJS({ + "../node_modules/.pnpm/@petamoriken+float16@3.9.2/node_modules/@petamoriken/float16/lib/_util/is.cjs"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.isAnyArrayBuffer = isAnyArrayBuffer; + exports2.isCanonicalIntegerIndexString = isCanonicalIntegerIndexString; + exports2.isNativeBigIntTypedArray = isNativeBigIntTypedArray; + exports2.isNativeTypedArray = isNativeTypedArray; + exports2.isObject = isObject; + exports2.isObjectLike = isObjectLike; + exports2.isOrdinaryArray = isOrdinaryArray; + exports2.isOrdinaryNativeTypedArray = isOrdinaryNativeTypedArray; + exports2.isSharedArrayBuffer = isSharedArrayBuffer; + var _primordials = require_primordials(); + function isObject(value) { + return value !== null && typeof value === "object" || typeof value === "function"; + } + function isObjectLike(value) { + return value !== null && typeof value === "object"; + } + function isNativeTypedArray(value) { + return (0, _primordials.TypedArrayPrototypeGetSymbolToStringTag)(value) !== void 0; + } + function isNativeBigIntTypedArray(value) { + const typedArrayName = (0, _primordials.TypedArrayPrototypeGetSymbolToStringTag)(value); + return typedArrayName === "BigInt64Array" || typedArrayName === "BigUint64Array"; + } + function isArrayBuffer(value) { + try { + if ((0, _primordials.ArrayIsArray)(value)) { + return false; + } + (0, _primordials.ArrayBufferPrototypeGetByteLength)(value); + return true; + } catch (e4) { + return false; + } + } + function isSharedArrayBuffer(value) { + if (_primordials.NativeSharedArrayBuffer === null) { + return false; + } + try { + (0, _primordials.SharedArrayBufferPrototypeGetByteLength)(value); + return true; + } catch (e4) { + return false; + } + } + function isAnyArrayBuffer(value) { + return isArrayBuffer(value) || isSharedArrayBuffer(value); + } + function isOrdinaryArray(value) { + if (!(0, _primordials.ArrayIsArray)(value)) { + return false; + } + return value[_primordials.SymbolIterator] === _primordials.NativeArrayPrototypeSymbolIterator && _primordials.ArrayIteratorPrototype.next === _primordials.ArrayIteratorPrototypeNext; + } + function isOrdinaryNativeTypedArray(value) { + if (!isNativeTypedArray(value)) { + return false; + } + return value[_primordials.SymbolIterator] === _primordials.NativeTypedArrayPrototypeSymbolIterator && _primordials.ArrayIteratorPrototype.next === _primordials.ArrayIteratorPrototypeNext; + } + function isCanonicalIntegerIndexString(value) { + if (typeof value !== "string") { + return false; + } + const number2 = +value; + if (value !== number2 + "") { + return false; + } + if (!(0, _primordials.NumberIsFinite)(number2)) { + return false; + } + return number2 === (0, _primordials.MathTrunc)(number2); + } + } +}); + +// ../node_modules/.pnpm/@petamoriken+float16@3.9.2/node_modules/@petamoriken/float16/lib/_util/brand.cjs +var require_brand = __commonJS({ + "../node_modules/.pnpm/@petamoriken+float16@3.9.2/node_modules/@petamoriken/float16/lib/_util/brand.cjs"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.hasFloat16ArrayBrand = hasFloat16ArrayBrand; + var _is = require_is(); + var _messages = require_messages(); + var _primordials = require_primordials(); + var brand = exports2.brand = (0, _primordials.SymbolFor)("__Float16Array__"); + function hasFloat16ArrayBrand(target) { + if (!(0, _is.isObjectLike)(target)) { + return false; + } + const prototype = (0, _primordials.ReflectGetPrototypeOf)(target); + if (!(0, _is.isObjectLike)(prototype)) { + return false; + } + const constructor = prototype.constructor; + if (constructor === void 0) { + return false; + } + if (!(0, _is.isObject)(constructor)) { + throw (0, _primordials.NativeTypeError)(_messages.THE_CONSTRUCTOR_PROPERTY_VALUE_IS_NOT_AN_OBJECT); + } + return (0, _primordials.ReflectHas)(constructor, brand); + } + } +}); + +// ../node_modules/.pnpm/@petamoriken+float16@3.9.2/node_modules/@petamoriken/float16/lib/_util/converter.cjs +var require_converter = __commonJS({ + "../node_modules/.pnpm/@petamoriken+float16@3.9.2/node_modules/@petamoriken/float16/lib/_util/converter.cjs"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.convertToNumber = convertToNumber; + exports2.roundToFloat16 = roundToFloat16; + exports2.roundToFloat16Bits = roundToFloat16Bits; + var _primordials = require_primordials(); + var INVERSE_OF_EPSILON = 1 / _primordials.EPSILON; + function roundTiesToEven(num) { + return num + INVERSE_OF_EPSILON - INVERSE_OF_EPSILON; + } + var FLOAT16_MIN_VALUE = 6103515625e-14; + var FLOAT16_MAX_VALUE = 65504; + var FLOAT16_EPSILON = 9765625e-10; + var FLOAT16_EPSILON_MULTIPLIED_BY_FLOAT16_MIN_VALUE = FLOAT16_EPSILON * FLOAT16_MIN_VALUE; + var FLOAT16_EPSILON_DEVIDED_BY_EPSILON = FLOAT16_EPSILON * INVERSE_OF_EPSILON; + function roundToFloat16(num) { + const number2 = +num; + if (!(0, _primordials.NumberIsFinite)(number2) || number2 === 0) { + return number2; + } + const sign = number2 > 0 ? 1 : -1; + const absolute = (0, _primordials.MathAbs)(number2); + if (absolute < FLOAT16_MIN_VALUE) { + return sign * roundTiesToEven(absolute / FLOAT16_EPSILON_MULTIPLIED_BY_FLOAT16_MIN_VALUE) * FLOAT16_EPSILON_MULTIPLIED_BY_FLOAT16_MIN_VALUE; + } + const temp = (1 + FLOAT16_EPSILON_DEVIDED_BY_EPSILON) * absolute; + const result = temp - (temp - absolute); + if (result > FLOAT16_MAX_VALUE || (0, _primordials.NumberIsNaN)(result)) { + return sign * Infinity; + } + return sign * result; + } + var buffer = new _primordials.NativeArrayBuffer(4); + var floatView = new _primordials.NativeFloat32Array(buffer); + var uint32View = new _primordials.NativeUint32Array(buffer); + var baseTable = new _primordials.NativeUint16Array(512); + var shiftTable = new _primordials.NativeUint8Array(512); + for (let i4 = 0; i4 < 256; ++i4) { + const e4 = i4 - 127; + if (e4 < -24) { + baseTable[i4] = 0; + baseTable[i4 | 256] = 32768; + shiftTable[i4] = 24; + shiftTable[i4 | 256] = 24; + } else if (e4 < -14) { + baseTable[i4] = 1024 >> -e4 - 14; + baseTable[i4 | 256] = 1024 >> -e4 - 14 | 32768; + shiftTable[i4] = -e4 - 1; + shiftTable[i4 | 256] = -e4 - 1; + } else if (e4 <= 15) { + baseTable[i4] = e4 + 15 << 10; + baseTable[i4 | 256] = e4 + 15 << 10 | 32768; + shiftTable[i4] = 13; + shiftTable[i4 | 256] = 13; + } else if (e4 < 128) { + baseTable[i4] = 31744; + baseTable[i4 | 256] = 64512; + shiftTable[i4] = 24; + shiftTable[i4 | 256] = 24; + } else { + baseTable[i4] = 31744; + baseTable[i4 | 256] = 64512; + shiftTable[i4] = 13; + shiftTable[i4 | 256] = 13; + } + } + function roundToFloat16Bits(num) { + floatView[0] = roundToFloat16(num); + const f5 = uint32View[0]; + const e4 = f5 >> 23 & 511; + return baseTable[e4] + ((f5 & 8388607) >> shiftTable[e4]); + } + var mantissaTable = new _primordials.NativeUint32Array(2048); + for (let i4 = 1; i4 < 1024; ++i4) { + let m4 = i4 << 13; + let e4 = 0; + while ((m4 & 8388608) === 0) { + m4 <<= 1; + e4 -= 8388608; + } + m4 &= ~8388608; + e4 += 947912704; + mantissaTable[i4] = m4 | e4; + } + for (let i4 = 1024; i4 < 2048; ++i4) { + mantissaTable[i4] = 939524096 + (i4 - 1024 << 13); + } + var exponentTable = new _primordials.NativeUint32Array(64); + for (let i4 = 1; i4 < 31; ++i4) { + exponentTable[i4] = i4 << 23; + } + exponentTable[31] = 1199570944; + exponentTable[32] = 2147483648; + for (let i4 = 33; i4 < 63; ++i4) { + exponentTable[i4] = 2147483648 + (i4 - 32 << 23); + } + exponentTable[63] = 3347054592; + var offsetTable = new _primordials.NativeUint16Array(64); + for (let i4 = 1; i4 < 64; ++i4) { + if (i4 !== 32) { + offsetTable[i4] = 1024; + } + } + function convertToNumber(float16bits) { + const i4 = float16bits >> 10; + uint32View[0] = mantissaTable[offsetTable[i4] + (float16bits & 1023)] + exponentTable[i4]; + return floatView[0]; + } + } +}); + +// ../node_modules/.pnpm/@petamoriken+float16@3.9.2/node_modules/@petamoriken/float16/lib/_util/spec.cjs +var require_spec = __commonJS({ + "../node_modules/.pnpm/@petamoriken+float16@3.9.2/node_modules/@petamoriken/float16/lib/_util/spec.cjs"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.IsDetachedBuffer = IsDetachedBuffer; + exports2.SpeciesConstructor = SpeciesConstructor; + exports2.ToIntegerOrInfinity = ToIntegerOrInfinity; + exports2.ToLength = ToLength; + exports2.defaultCompare = defaultCompare; + var _is = require_is(); + var _messages = require_messages(); + var _primordials = require_primordials(); + function ToIntegerOrInfinity(target) { + const number2 = +target; + if ((0, _primordials.NumberIsNaN)(number2) || number2 === 0) { + return 0; + } + return (0, _primordials.MathTrunc)(number2); + } + function ToLength(target) { + const length = ToIntegerOrInfinity(target); + if (length < 0) { + return 0; + } + return length < _primordials.MAX_SAFE_INTEGER ? length : _primordials.MAX_SAFE_INTEGER; + } + function SpeciesConstructor(target, defaultConstructor) { + if (!(0, _is.isObject)(target)) { + throw (0, _primordials.NativeTypeError)(_messages.THIS_IS_NOT_AN_OBJECT); + } + const constructor = target.constructor; + if (constructor === void 0) { + return defaultConstructor; + } + if (!(0, _is.isObject)(constructor)) { + throw (0, _primordials.NativeTypeError)(_messages.THE_CONSTRUCTOR_PROPERTY_VALUE_IS_NOT_AN_OBJECT); + } + const species = constructor[_primordials.SymbolSpecies]; + if (species == null) { + return defaultConstructor; + } + return species; + } + function IsDetachedBuffer(buffer) { + if ((0, _is.isSharedArrayBuffer)(buffer)) { + return false; + } + try { + (0, _primordials.ArrayBufferPrototypeSlice)(buffer, 0, 0); + return false; + } catch (e4) { + } + return true; + } + function defaultCompare(x4, y2) { + const isXNaN = (0, _primordials.NumberIsNaN)(x4); + const isYNaN = (0, _primordials.NumberIsNaN)(y2); + if (isXNaN && isYNaN) { + return 0; + } + if (isXNaN) { + return 1; + } + if (isYNaN) { + return -1; + } + if (x4 < y2) { + return -1; + } + if (x4 > y2) { + return 1; + } + if (x4 === 0 && y2 === 0) { + const isXPlusZero = (0, _primordials.ObjectIs)(x4, 0); + const isYPlusZero = (0, _primordials.ObjectIs)(y2, 0); + if (!isXPlusZero && isYPlusZero) { + return -1; + } + if (isXPlusZero && !isYPlusZero) { + return 1; + } + } + return 0; + } + } +}); + +// ../node_modules/.pnpm/@petamoriken+float16@3.9.2/node_modules/@petamoriken/float16/lib/Float16Array.cjs +var require_Float16Array = __commonJS({ + "../node_modules/.pnpm/@petamoriken+float16@3.9.2/node_modules/@petamoriken/float16/lib/Float16Array.cjs"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.isFloat16Array = isFloat16Array; + var _arrayIterator = require_arrayIterator(); + var _brand = require_brand(); + var _converter = require_converter(); + var _is = require_is(); + var _messages = require_messages(); + var _primordials = require_primordials(); + var _spec = require_spec(); + var BYTES_PER_ELEMENT = 2; + var float16bitsArrays = new _primordials.NativeWeakMap(); + function isFloat16Array(target) { + return (0, _primordials.WeakMapPrototypeHas)(float16bitsArrays, target) || !(0, _primordials.ArrayBufferIsView)(target) && (0, _brand.hasFloat16ArrayBrand)(target); + } + function assertFloat16Array(target) { + if (!isFloat16Array(target)) { + throw (0, _primordials.NativeTypeError)(_messages.THIS_IS_NOT_A_FLOAT16ARRAY_OBJECT); + } + } + function assertSpeciesTypedArray(target, count) { + const isTargetFloat16Array = isFloat16Array(target); + const isTargetTypedArray = (0, _is.isNativeTypedArray)(target); + if (!isTargetFloat16Array && !isTargetTypedArray) { + throw (0, _primordials.NativeTypeError)(_messages.SPECIES_CONSTRUCTOR_DIDNT_RETURN_TYPEDARRAY_OBJECT); + } + if (typeof count === "number") { + let length; + if (isTargetFloat16Array) { + const float16bitsArray = getFloat16BitsArray(target); + length = (0, _primordials.TypedArrayPrototypeGetLength)(float16bitsArray); + } else { + length = (0, _primordials.TypedArrayPrototypeGetLength)(target); + } + if (length < count) { + throw (0, _primordials.NativeTypeError)(_messages.DERIVED_CONSTRUCTOR_CREATED_TYPEDARRAY_OBJECT_WHICH_WAS_TOO_SMALL_LENGTH); + } + } + if ((0, _is.isNativeBigIntTypedArray)(target)) { + throw (0, _primordials.NativeTypeError)(_messages.CANNOT_MIX_BIGINT_AND_OTHER_TYPES); + } + } + function getFloat16BitsArray(float16) { + const float16bitsArray = (0, _primordials.WeakMapPrototypeGet)(float16bitsArrays, float16); + if (float16bitsArray !== void 0) { + const buffer2 = (0, _primordials.TypedArrayPrototypeGetBuffer)(float16bitsArray); + if ((0, _spec.IsDetachedBuffer)(buffer2)) { + throw (0, _primordials.NativeTypeError)(_messages.ATTEMPTING_TO_ACCESS_DETACHED_ARRAYBUFFER); + } + return float16bitsArray; + } + const buffer = float16.buffer; + if ((0, _spec.IsDetachedBuffer)(buffer)) { + throw (0, _primordials.NativeTypeError)(_messages.ATTEMPTING_TO_ACCESS_DETACHED_ARRAYBUFFER); + } + const cloned = (0, _primordials.ReflectConstruct)(Float16Array, [buffer, float16.byteOffset, float16.length], float16.constructor); + return (0, _primordials.WeakMapPrototypeGet)(float16bitsArrays, cloned); + } + function copyToArray(float16bitsArray) { + const length = (0, _primordials.TypedArrayPrototypeGetLength)(float16bitsArray); + const array2 = []; + for (let i4 = 0; i4 < length; ++i4) { + array2[i4] = (0, _converter.convertToNumber)(float16bitsArray[i4]); + } + return array2; + } + var TypedArrayPrototypeGetters = new _primordials.NativeWeakSet(); + for (const key of (0, _primordials.ReflectOwnKeys)(_primordials.TypedArrayPrototype)) { + if (key === _primordials.SymbolToStringTag) { + continue; + } + const descriptor = (0, _primordials.ReflectGetOwnPropertyDescriptor)(_primordials.TypedArrayPrototype, key); + if ((0, _primordials.ObjectHasOwn)(descriptor, "get") && typeof descriptor.get === "function") { + (0, _primordials.WeakSetPrototypeAdd)(TypedArrayPrototypeGetters, descriptor.get); + } + } + var handler = (0, _primordials.ObjectFreeze)({ + get(target, key, receiver) { + if ((0, _is.isCanonicalIntegerIndexString)(key) && (0, _primordials.ObjectHasOwn)(target, key)) { + return (0, _converter.convertToNumber)((0, _primordials.ReflectGet)(target, key)); + } + if ((0, _primordials.WeakSetPrototypeHas)(TypedArrayPrototypeGetters, (0, _primordials.ObjectPrototype__lookupGetter__)(target, key))) { + return (0, _primordials.ReflectGet)(target, key); + } + return (0, _primordials.ReflectGet)(target, key, receiver); + }, + set(target, key, value, receiver) { + if ((0, _is.isCanonicalIntegerIndexString)(key) && (0, _primordials.ObjectHasOwn)(target, key)) { + return (0, _primordials.ReflectSet)(target, key, (0, _converter.roundToFloat16Bits)(value)); + } + return (0, _primordials.ReflectSet)(target, key, value, receiver); + }, + getOwnPropertyDescriptor(target, key) { + if ((0, _is.isCanonicalIntegerIndexString)(key) && (0, _primordials.ObjectHasOwn)(target, key)) { + const descriptor = (0, _primordials.ReflectGetOwnPropertyDescriptor)(target, key); + descriptor.value = (0, _converter.convertToNumber)(descriptor.value); + return descriptor; + } + return (0, _primordials.ReflectGetOwnPropertyDescriptor)(target, key); + }, + defineProperty(target, key, descriptor) { + if ((0, _is.isCanonicalIntegerIndexString)(key) && (0, _primordials.ObjectHasOwn)(target, key) && (0, _primordials.ObjectHasOwn)(descriptor, "value")) { + descriptor.value = (0, _converter.roundToFloat16Bits)(descriptor.value); + return (0, _primordials.ReflectDefineProperty)(target, key, descriptor); + } + return (0, _primordials.ReflectDefineProperty)(target, key, descriptor); + } + }); + var Float16Array = class _Float16Array { + constructor(input, _byteOffset, _length) { + let float16bitsArray; + if (isFloat16Array(input)) { + float16bitsArray = (0, _primordials.ReflectConstruct)(_primordials.NativeUint16Array, [getFloat16BitsArray(input)], new.target); + } else if ((0, _is.isObject)(input) && !(0, _is.isAnyArrayBuffer)(input)) { + let list; + let length; + if ((0, _is.isNativeTypedArray)(input)) { + list = input; + length = (0, _primordials.TypedArrayPrototypeGetLength)(input); + const buffer = (0, _primordials.TypedArrayPrototypeGetBuffer)(input); + if ((0, _spec.IsDetachedBuffer)(buffer)) { + throw (0, _primordials.NativeTypeError)(_messages.ATTEMPTING_TO_ACCESS_DETACHED_ARRAYBUFFER); + } + if ((0, _is.isNativeBigIntTypedArray)(input)) { + throw (0, _primordials.NativeTypeError)(_messages.CANNOT_MIX_BIGINT_AND_OTHER_TYPES); + } + const data = new _primordials.NativeArrayBuffer(length * BYTES_PER_ELEMENT); + float16bitsArray = (0, _primordials.ReflectConstruct)(_primordials.NativeUint16Array, [data], new.target); + } else { + const iterator = input[_primordials.SymbolIterator]; + if (iterator != null && typeof iterator !== "function") { + throw (0, _primordials.NativeTypeError)(_messages.ITERATOR_PROPERTY_IS_NOT_CALLABLE); + } + if (iterator != null) { + if ((0, _is.isOrdinaryArray)(input)) { + list = input; + length = input.length; + } else { + list = [...input]; + length = list.length; + } + } else { + list = input; + length = (0, _spec.ToLength)(list.length); + } + float16bitsArray = (0, _primordials.ReflectConstruct)(_primordials.NativeUint16Array, [length], new.target); + } + for (let i4 = 0; i4 < length; ++i4) { + float16bitsArray[i4] = (0, _converter.roundToFloat16Bits)(list[i4]); + } + } else { + float16bitsArray = (0, _primordials.ReflectConstruct)(_primordials.NativeUint16Array, arguments, new.target); + } + const proxy = new _primordials.NativeProxy(float16bitsArray, handler); + (0, _primordials.WeakMapPrototypeSet)(float16bitsArrays, proxy, float16bitsArray); + return proxy; + } + static from(src, ...opts) { + const Constructor = this; + if (!(0, _primordials.ReflectHas)(Constructor, _brand.brand)) { + throw (0, _primordials.NativeTypeError)(_messages.THIS_CONSTRUCTOR_IS_NOT_A_SUBCLASS_OF_FLOAT16ARRAY); + } + if (Constructor === _Float16Array) { + if (isFloat16Array(src) && opts.length === 0) { + const float16bitsArray = getFloat16BitsArray(src); + const uint16 = new _primordials.NativeUint16Array((0, _primordials.TypedArrayPrototypeGetBuffer)(float16bitsArray), (0, _primordials.TypedArrayPrototypeGetByteOffset)(float16bitsArray), (0, _primordials.TypedArrayPrototypeGetLength)(float16bitsArray)); + return new _Float16Array((0, _primordials.TypedArrayPrototypeGetBuffer)((0, _primordials.TypedArrayPrototypeSlice)(uint16))); + } + if (opts.length === 0) { + return new _Float16Array((0, _primordials.TypedArrayPrototypeGetBuffer)((0, _primordials.Uint16ArrayFrom)(src, _converter.roundToFloat16Bits))); + } + const mapFunc = opts[0]; + const thisArg = opts[1]; + return new _Float16Array((0, _primordials.TypedArrayPrototypeGetBuffer)((0, _primordials.Uint16ArrayFrom)(src, function(val2, ...args) { + return (0, _converter.roundToFloat16Bits)((0, _primordials.ReflectApply)(mapFunc, this, [val2, ...(0, _arrayIterator.safeIfNeeded)(args)])); + }, thisArg))); + } + let list; + let length; + const iterator = src[_primordials.SymbolIterator]; + if (iterator != null && typeof iterator !== "function") { + throw (0, _primordials.NativeTypeError)(_messages.ITERATOR_PROPERTY_IS_NOT_CALLABLE); + } + if (iterator != null) { + if ((0, _is.isOrdinaryArray)(src)) { + list = src; + length = src.length; + } else if ((0, _is.isOrdinaryNativeTypedArray)(src)) { + list = src; + length = (0, _primordials.TypedArrayPrototypeGetLength)(src); + } else { + list = [...src]; + length = list.length; + } + } else { + if (src == null) { + throw (0, _primordials.NativeTypeError)(_messages.CANNOT_CONVERT_UNDEFINED_OR_NULL_TO_OBJECT); + } + list = (0, _primordials.NativeObject)(src); + length = (0, _spec.ToLength)(list.length); + } + const array2 = new Constructor(length); + if (opts.length === 0) { + for (let i4 = 0; i4 < length; ++i4) { + array2[i4] = list[i4]; + } + } else { + const mapFunc = opts[0]; + const thisArg = opts[1]; + for (let i4 = 0; i4 < length; ++i4) { + array2[i4] = (0, _primordials.ReflectApply)(mapFunc, thisArg, [list[i4], i4]); + } + } + return array2; + } + static of(...items) { + const Constructor = this; + if (!(0, _primordials.ReflectHas)(Constructor, _brand.brand)) { + throw (0, _primordials.NativeTypeError)(_messages.THIS_CONSTRUCTOR_IS_NOT_A_SUBCLASS_OF_FLOAT16ARRAY); + } + const length = items.length; + if (Constructor === _Float16Array) { + const proxy = new _Float16Array(length); + const float16bitsArray = getFloat16BitsArray(proxy); + for (let i4 = 0; i4 < length; ++i4) { + float16bitsArray[i4] = (0, _converter.roundToFloat16Bits)(items[i4]); + } + return proxy; + } + const array2 = new Constructor(length); + for (let i4 = 0; i4 < length; ++i4) { + array2[i4] = items[i4]; + } + return array2; + } + keys() { + assertFloat16Array(this); + const float16bitsArray = getFloat16BitsArray(this); + return (0, _primordials.TypedArrayPrototypeKeys)(float16bitsArray); + } + values() { + assertFloat16Array(this); + const float16bitsArray = getFloat16BitsArray(this); + return (0, _arrayIterator.wrap)(function* () { + for (const val2 of (0, _primordials.TypedArrayPrototypeValues)(float16bitsArray)) { + yield (0, _converter.convertToNumber)(val2); + } + }()); + } + entries() { + assertFloat16Array(this); + const float16bitsArray = getFloat16BitsArray(this); + return (0, _arrayIterator.wrap)(function* () { + for (const [i4, val2] of (0, _primordials.TypedArrayPrototypeEntries)(float16bitsArray)) { + yield [i4, (0, _converter.convertToNumber)(val2)]; + } + }()); + } + at(index6) { + assertFloat16Array(this); + const float16bitsArray = getFloat16BitsArray(this); + const length = (0, _primordials.TypedArrayPrototypeGetLength)(float16bitsArray); + const relativeIndex = (0, _spec.ToIntegerOrInfinity)(index6); + const k3 = relativeIndex >= 0 ? relativeIndex : length + relativeIndex; + if (k3 < 0 || k3 >= length) { + return; + } + return (0, _converter.convertToNumber)(float16bitsArray[k3]); + } + with(index6, value) { + assertFloat16Array(this); + const float16bitsArray = getFloat16BitsArray(this); + const length = (0, _primordials.TypedArrayPrototypeGetLength)(float16bitsArray); + const relativeIndex = (0, _spec.ToIntegerOrInfinity)(index6); + const k3 = relativeIndex >= 0 ? relativeIndex : length + relativeIndex; + const number2 = +value; + if (k3 < 0 || k3 >= length) { + throw (0, _primordials.NativeRangeError)(_messages.OFFSET_IS_OUT_OF_BOUNDS); + } + const uint16 = new _primordials.NativeUint16Array((0, _primordials.TypedArrayPrototypeGetBuffer)(float16bitsArray), (0, _primordials.TypedArrayPrototypeGetByteOffset)(float16bitsArray), (0, _primordials.TypedArrayPrototypeGetLength)(float16bitsArray)); + const cloned = new _Float16Array((0, _primordials.TypedArrayPrototypeGetBuffer)((0, _primordials.TypedArrayPrototypeSlice)(uint16))); + const array2 = getFloat16BitsArray(cloned); + array2[k3] = (0, _converter.roundToFloat16Bits)(number2); + return cloned; + } + map(callback, ...opts) { + assertFloat16Array(this); + const float16bitsArray = getFloat16BitsArray(this); + const length = (0, _primordials.TypedArrayPrototypeGetLength)(float16bitsArray); + const thisArg = opts[0]; + const Constructor = (0, _spec.SpeciesConstructor)(float16bitsArray, _Float16Array); + if (Constructor === _Float16Array) { + const proxy = new _Float16Array(length); + const array3 = getFloat16BitsArray(proxy); + for (let i4 = 0; i4 < length; ++i4) { + const val2 = (0, _converter.convertToNumber)(float16bitsArray[i4]); + array3[i4] = (0, _converter.roundToFloat16Bits)((0, _primordials.ReflectApply)(callback, thisArg, [val2, i4, this])); + } + return proxy; + } + const array2 = new Constructor(length); + assertSpeciesTypedArray(array2, length); + for (let i4 = 0; i4 < length; ++i4) { + const val2 = (0, _converter.convertToNumber)(float16bitsArray[i4]); + array2[i4] = (0, _primordials.ReflectApply)(callback, thisArg, [val2, i4, this]); + } + return array2; + } + filter(callback, ...opts) { + assertFloat16Array(this); + const float16bitsArray = getFloat16BitsArray(this); + const length = (0, _primordials.TypedArrayPrototypeGetLength)(float16bitsArray); + const thisArg = opts[0]; + const kept = []; + for (let i4 = 0; i4 < length; ++i4) { + const val2 = (0, _converter.convertToNumber)(float16bitsArray[i4]); + if ((0, _primordials.ReflectApply)(callback, thisArg, [val2, i4, this])) { + (0, _primordials.ArrayPrototypePush)(kept, val2); + } + } + const Constructor = (0, _spec.SpeciesConstructor)(float16bitsArray, _Float16Array); + const array2 = new Constructor(kept); + assertSpeciesTypedArray(array2); + return array2; + } + reduce(callback, ...opts) { + assertFloat16Array(this); + const float16bitsArray = getFloat16BitsArray(this); + const length = (0, _primordials.TypedArrayPrototypeGetLength)(float16bitsArray); + if (length === 0 && opts.length === 0) { + throw (0, _primordials.NativeTypeError)(_messages.REDUCE_OF_EMPTY_ARRAY_WITH_NO_INITIAL_VALUE); + } + let accumulator, start; + if (opts.length === 0) { + accumulator = (0, _converter.convertToNumber)(float16bitsArray[0]); + start = 1; + } else { + accumulator = opts[0]; + start = 0; + } + for (let i4 = start; i4 < length; ++i4) { + accumulator = callback(accumulator, (0, _converter.convertToNumber)(float16bitsArray[i4]), i4, this); + } + return accumulator; + } + reduceRight(callback, ...opts) { + assertFloat16Array(this); + const float16bitsArray = getFloat16BitsArray(this); + const length = (0, _primordials.TypedArrayPrototypeGetLength)(float16bitsArray); + if (length === 0 && opts.length === 0) { + throw (0, _primordials.NativeTypeError)(_messages.REDUCE_OF_EMPTY_ARRAY_WITH_NO_INITIAL_VALUE); + } + let accumulator, start; + if (opts.length === 0) { + accumulator = (0, _converter.convertToNumber)(float16bitsArray[length - 1]); + start = length - 2; + } else { + accumulator = opts[0]; + start = length - 1; + } + for (let i4 = start; i4 >= 0; --i4) { + accumulator = callback(accumulator, (0, _converter.convertToNumber)(float16bitsArray[i4]), i4, this); + } + return accumulator; + } + forEach(callback, ...opts) { + assertFloat16Array(this); + const float16bitsArray = getFloat16BitsArray(this); + const length = (0, _primordials.TypedArrayPrototypeGetLength)(float16bitsArray); + const thisArg = opts[0]; + for (let i4 = 0; i4 < length; ++i4) { + (0, _primordials.ReflectApply)(callback, thisArg, [(0, _converter.convertToNumber)(float16bitsArray[i4]), i4, this]); + } + } + find(callback, ...opts) { + assertFloat16Array(this); + const float16bitsArray = getFloat16BitsArray(this); + const length = (0, _primordials.TypedArrayPrototypeGetLength)(float16bitsArray); + const thisArg = opts[0]; + for (let i4 = 0; i4 < length; ++i4) { + const value = (0, _converter.convertToNumber)(float16bitsArray[i4]); + if ((0, _primordials.ReflectApply)(callback, thisArg, [value, i4, this])) { + return value; + } + } + } + findIndex(callback, ...opts) { + assertFloat16Array(this); + const float16bitsArray = getFloat16BitsArray(this); + const length = (0, _primordials.TypedArrayPrototypeGetLength)(float16bitsArray); + const thisArg = opts[0]; + for (let i4 = 0; i4 < length; ++i4) { + const value = (0, _converter.convertToNumber)(float16bitsArray[i4]); + if ((0, _primordials.ReflectApply)(callback, thisArg, [value, i4, this])) { + return i4; + } + } + return -1; + } + findLast(callback, ...opts) { + assertFloat16Array(this); + const float16bitsArray = getFloat16BitsArray(this); + const length = (0, _primordials.TypedArrayPrototypeGetLength)(float16bitsArray); + const thisArg = opts[0]; + for (let i4 = length - 1; i4 >= 0; --i4) { + const value = (0, _converter.convertToNumber)(float16bitsArray[i4]); + if ((0, _primordials.ReflectApply)(callback, thisArg, [value, i4, this])) { + return value; + } + } + } + findLastIndex(callback, ...opts) { + assertFloat16Array(this); + const float16bitsArray = getFloat16BitsArray(this); + const length = (0, _primordials.TypedArrayPrototypeGetLength)(float16bitsArray); + const thisArg = opts[0]; + for (let i4 = length - 1; i4 >= 0; --i4) { + const value = (0, _converter.convertToNumber)(float16bitsArray[i4]); + if ((0, _primordials.ReflectApply)(callback, thisArg, [value, i4, this])) { + return i4; + } + } + return -1; + } + every(callback, ...opts) { + assertFloat16Array(this); + const float16bitsArray = getFloat16BitsArray(this); + const length = (0, _primordials.TypedArrayPrototypeGetLength)(float16bitsArray); + const thisArg = opts[0]; + for (let i4 = 0; i4 < length; ++i4) { + if (!(0, _primordials.ReflectApply)(callback, thisArg, [(0, _converter.convertToNumber)(float16bitsArray[i4]), i4, this])) { + return false; + } + } + return true; + } + some(callback, ...opts) { + assertFloat16Array(this); + const float16bitsArray = getFloat16BitsArray(this); + const length = (0, _primordials.TypedArrayPrototypeGetLength)(float16bitsArray); + const thisArg = opts[0]; + for (let i4 = 0; i4 < length; ++i4) { + if ((0, _primordials.ReflectApply)(callback, thisArg, [(0, _converter.convertToNumber)(float16bitsArray[i4]), i4, this])) { + return true; + } + } + return false; + } + set(input, ...opts) { + assertFloat16Array(this); + const float16bitsArray = getFloat16BitsArray(this); + const targetOffset = (0, _spec.ToIntegerOrInfinity)(opts[0]); + if (targetOffset < 0) { + throw (0, _primordials.NativeRangeError)(_messages.OFFSET_IS_OUT_OF_BOUNDS); + } + if (input == null) { + throw (0, _primordials.NativeTypeError)(_messages.CANNOT_CONVERT_UNDEFINED_OR_NULL_TO_OBJECT); + } + if ((0, _is.isNativeBigIntTypedArray)(input)) { + throw (0, _primordials.NativeTypeError)(_messages.CANNOT_MIX_BIGINT_AND_OTHER_TYPES); + } + if (isFloat16Array(input)) { + return (0, _primordials.TypedArrayPrototypeSet)(getFloat16BitsArray(this), getFloat16BitsArray(input), targetOffset); + } + if ((0, _is.isNativeTypedArray)(input)) { + const buffer = (0, _primordials.TypedArrayPrototypeGetBuffer)(input); + if ((0, _spec.IsDetachedBuffer)(buffer)) { + throw (0, _primordials.NativeTypeError)(_messages.ATTEMPTING_TO_ACCESS_DETACHED_ARRAYBUFFER); + } + } + const targetLength = (0, _primordials.TypedArrayPrototypeGetLength)(float16bitsArray); + const src = (0, _primordials.NativeObject)(input); + const srcLength = (0, _spec.ToLength)(src.length); + if (targetOffset === Infinity || srcLength + targetOffset > targetLength) { + throw (0, _primordials.NativeRangeError)(_messages.OFFSET_IS_OUT_OF_BOUNDS); + } + for (let i4 = 0; i4 < srcLength; ++i4) { + float16bitsArray[i4 + targetOffset] = (0, _converter.roundToFloat16Bits)(src[i4]); + } + } + reverse() { + assertFloat16Array(this); + const float16bitsArray = getFloat16BitsArray(this); + (0, _primordials.TypedArrayPrototypeReverse)(float16bitsArray); + return this; + } + toReversed() { + assertFloat16Array(this); + const float16bitsArray = getFloat16BitsArray(this); + const uint16 = new _primordials.NativeUint16Array((0, _primordials.TypedArrayPrototypeGetBuffer)(float16bitsArray), (0, _primordials.TypedArrayPrototypeGetByteOffset)(float16bitsArray), (0, _primordials.TypedArrayPrototypeGetLength)(float16bitsArray)); + const cloned = new _Float16Array((0, _primordials.TypedArrayPrototypeGetBuffer)((0, _primordials.TypedArrayPrototypeSlice)(uint16))); + const clonedFloat16bitsArray = getFloat16BitsArray(cloned); + (0, _primordials.TypedArrayPrototypeReverse)(clonedFloat16bitsArray); + return cloned; + } + fill(value, ...opts) { + assertFloat16Array(this); + const float16bitsArray = getFloat16BitsArray(this); + (0, _primordials.TypedArrayPrototypeFill)(float16bitsArray, (0, _converter.roundToFloat16Bits)(value), ...(0, _arrayIterator.safeIfNeeded)(opts)); + return this; + } + copyWithin(target, start, ...opts) { + assertFloat16Array(this); + const float16bitsArray = getFloat16BitsArray(this); + (0, _primordials.TypedArrayPrototypeCopyWithin)(float16bitsArray, target, start, ...(0, _arrayIterator.safeIfNeeded)(opts)); + return this; + } + sort(compareFn) { + assertFloat16Array(this); + const float16bitsArray = getFloat16BitsArray(this); + const sortCompare = compareFn !== void 0 ? compareFn : _spec.defaultCompare; + (0, _primordials.TypedArrayPrototypeSort)(float16bitsArray, (x4, y2) => { + return sortCompare((0, _converter.convertToNumber)(x4), (0, _converter.convertToNumber)(y2)); + }); + return this; + } + toSorted(compareFn) { + assertFloat16Array(this); + const float16bitsArray = getFloat16BitsArray(this); + if (compareFn !== void 0 && typeof compareFn !== "function") { + throw new _primordials.NativeTypeError(_messages.THE_COMPARISON_FUNCTION_MUST_BE_EITHER_A_FUNCTION_OR_UNDEFINED); + } + const sortCompare = compareFn !== void 0 ? compareFn : _spec.defaultCompare; + const uint16 = new _primordials.NativeUint16Array((0, _primordials.TypedArrayPrototypeGetBuffer)(float16bitsArray), (0, _primordials.TypedArrayPrototypeGetByteOffset)(float16bitsArray), (0, _primordials.TypedArrayPrototypeGetLength)(float16bitsArray)); + const cloned = new _Float16Array((0, _primordials.TypedArrayPrototypeGetBuffer)((0, _primordials.TypedArrayPrototypeSlice)(uint16))); + const clonedFloat16bitsArray = getFloat16BitsArray(cloned); + (0, _primordials.TypedArrayPrototypeSort)(clonedFloat16bitsArray, (x4, y2) => { + return sortCompare((0, _converter.convertToNumber)(x4), (0, _converter.convertToNumber)(y2)); + }); + return cloned; + } + slice(start, end) { + assertFloat16Array(this); + const float16bitsArray = getFloat16BitsArray(this); + const Constructor = (0, _spec.SpeciesConstructor)(float16bitsArray, _Float16Array); + if (Constructor === _Float16Array) { + const uint16 = new _primordials.NativeUint16Array((0, _primordials.TypedArrayPrototypeGetBuffer)(float16bitsArray), (0, _primordials.TypedArrayPrototypeGetByteOffset)(float16bitsArray), (0, _primordials.TypedArrayPrototypeGetLength)(float16bitsArray)); + return new _Float16Array((0, _primordials.TypedArrayPrototypeGetBuffer)((0, _primordials.TypedArrayPrototypeSlice)(uint16, start, end))); + } + const length = (0, _primordials.TypedArrayPrototypeGetLength)(float16bitsArray); + const relativeStart = (0, _spec.ToIntegerOrInfinity)(start); + const relativeEnd = end === void 0 ? length : (0, _spec.ToIntegerOrInfinity)(end); + let k3; + if (relativeStart === -Infinity) { + k3 = 0; + } else if (relativeStart < 0) { + k3 = length + relativeStart > 0 ? length + relativeStart : 0; + } else { + k3 = length < relativeStart ? length : relativeStart; + } + let final; + if (relativeEnd === -Infinity) { + final = 0; + } else if (relativeEnd < 0) { + final = length + relativeEnd > 0 ? length + relativeEnd : 0; + } else { + final = length < relativeEnd ? length : relativeEnd; + } + const count = final - k3 > 0 ? final - k3 : 0; + const array2 = new Constructor(count); + assertSpeciesTypedArray(array2, count); + if (count === 0) { + return array2; + } + const buffer = (0, _primordials.TypedArrayPrototypeGetBuffer)(float16bitsArray); + if ((0, _spec.IsDetachedBuffer)(buffer)) { + throw (0, _primordials.NativeTypeError)(_messages.ATTEMPTING_TO_ACCESS_DETACHED_ARRAYBUFFER); + } + let n3 = 0; + while (k3 < final) { + array2[n3] = (0, _converter.convertToNumber)(float16bitsArray[k3]); + ++k3; + ++n3; + } + return array2; + } + subarray(begin, end) { + assertFloat16Array(this); + const float16bitsArray = getFloat16BitsArray(this); + const Constructor = (0, _spec.SpeciesConstructor)(float16bitsArray, _Float16Array); + const uint16 = new _primordials.NativeUint16Array((0, _primordials.TypedArrayPrototypeGetBuffer)(float16bitsArray), (0, _primordials.TypedArrayPrototypeGetByteOffset)(float16bitsArray), (0, _primordials.TypedArrayPrototypeGetLength)(float16bitsArray)); + const uint16Subarray = (0, _primordials.TypedArrayPrototypeSubarray)(uint16, begin, end); + const array2 = new Constructor((0, _primordials.TypedArrayPrototypeGetBuffer)(uint16Subarray), (0, _primordials.TypedArrayPrototypeGetByteOffset)(uint16Subarray), (0, _primordials.TypedArrayPrototypeGetLength)(uint16Subarray)); + assertSpeciesTypedArray(array2); + return array2; + } + indexOf(element, ...opts) { + assertFloat16Array(this); + const float16bitsArray = getFloat16BitsArray(this); + const length = (0, _primordials.TypedArrayPrototypeGetLength)(float16bitsArray); + let from = (0, _spec.ToIntegerOrInfinity)(opts[0]); + if (from === Infinity) { + return -1; + } + if (from < 0) { + from += length; + if (from < 0) { + from = 0; + } + } + for (let i4 = from; i4 < length; ++i4) { + if ((0, _primordials.ObjectHasOwn)(float16bitsArray, i4) && (0, _converter.convertToNumber)(float16bitsArray[i4]) === element) { + return i4; + } + } + return -1; + } + lastIndexOf(element, ...opts) { + assertFloat16Array(this); + const float16bitsArray = getFloat16BitsArray(this); + const length = (0, _primordials.TypedArrayPrototypeGetLength)(float16bitsArray); + let from = opts.length >= 1 ? (0, _spec.ToIntegerOrInfinity)(opts[0]) : length - 1; + if (from === -Infinity) { + return -1; + } + if (from >= 0) { + from = from < length - 1 ? from : length - 1; + } else { + from += length; + } + for (let i4 = from; i4 >= 0; --i4) { + if ((0, _primordials.ObjectHasOwn)(float16bitsArray, i4) && (0, _converter.convertToNumber)(float16bitsArray[i4]) === element) { + return i4; + } + } + return -1; + } + includes(element, ...opts) { + assertFloat16Array(this); + const float16bitsArray = getFloat16BitsArray(this); + const length = (0, _primordials.TypedArrayPrototypeGetLength)(float16bitsArray); + let from = (0, _spec.ToIntegerOrInfinity)(opts[0]); + if (from === Infinity) { + return false; + } + if (from < 0) { + from += length; + if (from < 0) { + from = 0; + } + } + const isNaN2 = (0, _primordials.NumberIsNaN)(element); + for (let i4 = from; i4 < length; ++i4) { + const value = (0, _converter.convertToNumber)(float16bitsArray[i4]); + if (isNaN2 && (0, _primordials.NumberIsNaN)(value)) { + return true; + } + if (value === element) { + return true; + } + } + return false; + } + join(separator) { + assertFloat16Array(this); + const float16bitsArray = getFloat16BitsArray(this); + const array2 = copyToArray(float16bitsArray); + return (0, _primordials.ArrayPrototypeJoin)(array2, separator); + } + toLocaleString(...opts) { + assertFloat16Array(this); + const float16bitsArray = getFloat16BitsArray(this); + const array2 = copyToArray(float16bitsArray); + return (0, _primordials.ArrayPrototypeToLocaleString)(array2, ...(0, _arrayIterator.safeIfNeeded)(opts)); + } + get [_primordials.SymbolToStringTag]() { + if (isFloat16Array(this)) { + return "Float16Array"; + } + } + }; + exports2.Float16Array = Float16Array; + (0, _primordials.ObjectDefineProperty)(Float16Array, "BYTES_PER_ELEMENT", { + value: BYTES_PER_ELEMENT + }); + (0, _primordials.ObjectDefineProperty)(Float16Array, _brand.brand, {}); + (0, _primordials.ReflectSetPrototypeOf)(Float16Array, _primordials.TypedArray); + var Float16ArrayPrototype = Float16Array.prototype; + (0, _primordials.ObjectDefineProperty)(Float16ArrayPrototype, "BYTES_PER_ELEMENT", { + value: BYTES_PER_ELEMENT + }); + (0, _primordials.ObjectDefineProperty)(Float16ArrayPrototype, _primordials.SymbolIterator, { + value: Float16ArrayPrototype.values, + writable: true, + configurable: true + }); + (0, _primordials.ReflectSetPrototypeOf)(Float16ArrayPrototype, _primordials.TypedArrayPrototype); + } +}); + +// ../node_modules/.pnpm/@petamoriken+float16@3.9.2/node_modules/@petamoriken/float16/lib/isTypedArray.cjs +var require_isTypedArray = __commonJS({ + "../node_modules/.pnpm/@petamoriken+float16@3.9.2/node_modules/@petamoriken/float16/lib/isTypedArray.cjs"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.isTypedArray = isTypedArray; + var _Float16Array = require_Float16Array(); + var _is = require_is(); + function isTypedArray(target) { + return (0, _is.isNativeTypedArray)(target) || (0, _Float16Array.isFloat16Array)(target); + } + } +}); + +// ../node_modules/.pnpm/@petamoriken+float16@3.9.2/node_modules/@petamoriken/float16/lib/DataView.cjs +var require_DataView = __commonJS({ + "../node_modules/.pnpm/@petamoriken+float16@3.9.2/node_modules/@petamoriken/float16/lib/DataView.cjs"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.getFloat16 = getFloat16; + exports2.setFloat16 = setFloat16; + var _arrayIterator = require_arrayIterator(); + var _converter = require_converter(); + var _primordials = require_primordials(); + function getFloat16(dataView, byteOffset, ...opts) { + return (0, _converter.convertToNumber)((0, _primordials.DataViewPrototypeGetUint16)(dataView, byteOffset, ...(0, _arrayIterator.safeIfNeeded)(opts))); + } + function setFloat16(dataView, byteOffset, value, ...opts) { + return (0, _primordials.DataViewPrototypeSetUint16)(dataView, byteOffset, (0, _converter.roundToFloat16Bits)(value), ...(0, _arrayIterator.safeIfNeeded)(opts)); + } + } +}); + +// ../node_modules/.pnpm/@petamoriken+float16@3.9.2/node_modules/@petamoriken/float16/lib/f16round.cjs +var require_f16round = __commonJS({ + "../node_modules/.pnpm/@petamoriken+float16@3.9.2/node_modules/@petamoriken/float16/lib/f16round.cjs"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.f16round = f16round; + var _converter = require_converter(); + function f16round(x4) { + return (0, _converter.roundToFloat16)(x4); + } + } +}); + +// ../node_modules/.pnpm/@petamoriken+float16@3.9.2/node_modules/@petamoriken/float16/lib/index.cjs +var require_lib2 = __commonJS({ + "../node_modules/.pnpm/@petamoriken+float16@3.9.2/node_modules/@petamoriken/float16/lib/index.cjs"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + var _Float16Array = require_Float16Array(); + exports2.Float16Array = _Float16Array.Float16Array; + exports2.isFloat16Array = _Float16Array.isFloat16Array; + var _isTypedArray = require_isTypedArray(); + exports2.isTypedArray = _isTypedArray.isTypedArray; + var _DataView = require_DataView(); + exports2.getFloat16 = _DataView.getFloat16; + exports2.setFloat16 = _DataView.setFloat16; + var _f16round = require_f16round(); + exports2.f16round = _f16round.f16round; + exports2.hfround = _f16round.f16round; + } +}); + +// ../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/utils.js +var require_utils2 = __commonJS({ + "../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/utils.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.setFloat16 = exports2.isFloat16Array = exports2.getFloat16 = exports2.Float16Array = void 0; + exports2.getUniqueId = getUniqueId; + exports2.sleep = sleep; + exports2.versionEqual = versionEqual; + exports2.versionGreaterThan = versionGreaterThan; + exports2.versionGreaterThanOrEqual = versionGreaterThanOrEqual; + exports2.getAuthenticatedFetch = getAuthenticatedFetch; + var float16_1 = require_lib2(); + Object.defineProperty(exports2, "Float16Array", { enumerable: true, get: function() { + return float16_1.Float16Array; + } }); + Object.defineProperty(exports2, "getFloat16", { enumerable: true, get: function() { + return float16_1.getFloat16; + } }); + Object.defineProperty(exports2, "isFloat16Array", { enumerable: true, get: function() { + return float16_1.isFloat16Array; + } }); + Object.defineProperty(exports2, "setFloat16", { enumerable: true, get: function() { + return float16_1.setFloat16; + } }); + var idCounter = {}; + function getUniqueId(prefix2 = "") { + if (!idCounter[prefix2]) { + idCounter[prefix2] = 0; + } + const id = ++idCounter[prefix2]; + return `_gel_${prefix2}_${id.toString(16)}_`; + } + function sleep(durationMillis) { + return new Promise((accept) => { + setTimeout(() => accept(), durationMillis); + }); + } + function versionEqual(left, right) { + return left[0] === right[0] && left[1] === right[1]; + } + function versionGreaterThan(left, right) { + if (left[0] > right[0]) { + return true; + } + if (left[0] < right[0]) { + return false; + } + return left[1] > right[1]; + } + function versionGreaterThanOrEqual(left, right) { + if (left[0] === right[0] && left[1] === right[1]) { + return true; + } + return versionGreaterThan(left, right); + } + var _tokens = /* @__PURE__ */ new WeakMap(); + async function getAuthenticatedFetch(config, httpSCRAMAuth, basePath) { + let token = config.secretKey ?? _tokens.get(config); + const { address, tlsSecurity, database } = config; + const protocol = tlsSecurity === "insecure" ? "http" : "https"; + const baseUrl = `${protocol}://${address[0]}:${address[1]}`; + const databaseUrl = `${baseUrl}/db/${database}/${basePath ?? ""}`; + if (!token && config.password != null) { + token = await httpSCRAMAuth(baseUrl, config.user, config.password); + _tokens.set(config, token); + } + return (input, init2) => { + let path4; + if (typeof input === "string") { + path4 = input; + } else if (input instanceof Request) { + path4 = input.url; + } else + path4 = input.toString(); + const url = new URL(path4, databaseUrl); + const headers = new Headers(init2 == null ? void 0 : init2.headers); + if (config.user !== void 0) { + headers.append("X-EdgeDB-User", config.user); + } + if (token !== void 0) { + headers.append("Authorization", `Bearer ${token}`); + } + return fetch(url, { + ...init2, + headers + }); + }; + } + } +}); + +// ../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/datatypes/pgvector.js +var require_pgvector = __commonJS({ + "../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/datatypes/pgvector.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.SparseVector = void 0; + var SparseVector = class { + length; + indexes; + values; + constructor(length, indexesOrMap, values) { + this.length = length; + if (indexesOrMap instanceof Uint32Array) { + if (indexesOrMap.length !== (values == null ? void 0 : values.length)) { + throw new Error("indexes array must be the same length as the data array"); + } + if (indexesOrMap.length > length) { + throw new Error("length of data cannot be larger than length of sparse vector"); + } + this.values = values; + this.indexes = indexesOrMap; + } else { + const entries = Object.entries(indexesOrMap); + if (entries.length > length) { + throw new Error("length of data cannot be larger than length of sparse vector"); + } + this.indexes = new Uint32Array(entries.length); + this.values = new Float32Array(entries.length); + for (let i4 = 0; i4 < entries.length; i4++) { + const index6 = parseInt(entries[i4][0], 10); + const val2 = entries[i4][1]; + if (Number.isNaN(index6)) { + throw new Error(`key ${entries[i4][0]} in data map is not an integer`); + } + if (index6 < 0 || index6 >= length) { + throw new Error(`index ${index6} is out of range of sparse vector length`); + } + this.indexes[i4] = index6; + if (typeof val2 !== "number") { + throw new Error(`expected value at index ${index6} to be number, got ${typeof val2} ${val2}`); + } + if (val2 === 0) { + throw new Error("elements in sparse vector cannot be 0"); + } + this.values[i4] = val2; + } + } + return new Proxy(this, { + get(target, p3) { + const index6 = typeof p3 === "string" ? parseInt(p3, 10) : NaN; + if (!Number.isNaN(index6)) { + if (index6 < 0 || index6 >= target.length) + return void 0; + const dataIndex = target.indexes.indexOf(index6); + return dataIndex === -1 ? 0 : target.values[dataIndex]; + } + return target[p3]; + } + }); + } + *[Symbol.iterator]() { + let nextIndex = 0; + for (let i4 = 0; i4 < this.length; i4++) { + yield this.indexes[nextIndex] === i4 ? this.values[nextIndex++] : 0; + } + } + }; + exports2.SparseVector = SparseVector; + } +}); + +// ../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/codecs/pgvector.js +var require_pgvector2 = __commonJS({ + "../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/codecs/pgvector.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.PgVectorSparseVecCodec = exports2.PgVectorHalfVecCodec = exports2.PgVectorCodec = exports2.PG_VECTOR_MAX_DIM = void 0; + var ifaces_1 = require_ifaces(); + var errors_1 = require_errors(); + var utils_1 = require_utils2(); + var pgvector_1 = require_pgvector(); + exports2.PG_VECTOR_MAX_DIM = (1 << 16) - 1; + var PgVectorCodec = class extends ifaces_1.ScalarCodec { + tsType = "Float32Array"; + encode(buf, object, ctx) { + object = ctx.preEncode(this, object); + if (!(object instanceof Float32Array || Array.isArray(object))) { + throw new errors_1.InvalidArgumentError(`a Float32Array or array of numbers was expected, got "${object}"`); + } + if (object.length > exports2.PG_VECTOR_MAX_DIM) { + throw new errors_1.InvalidArgumentError("too many elements in array to encode into pgvector"); + } + buf.writeInt32(4 + object.length * 4).writeUInt16(object.length).writeUInt16(0); + if (object instanceof Float32Array) { + for (const el of object) { + buf.writeFloat32(el); + } + } else { + for (const el of object) { + if (typeof el !== "number") { + throw new errors_1.InvalidArgumentError(`elements of vector array expected to be a numbers, got "${el}"`); + } + buf.writeFloat32(el); + } + } + } + decode(buf, ctx) { + const dim = buf.readUInt16(); + buf.discard(2); + const vecBuf = buf.readBuffer(dim * 4); + const data = new DataView(vecBuf.buffer, vecBuf.byteOffset, vecBuf.byteLength); + const vec = new Float32Array(dim); + for (let i4 = 0; i4 < dim; i4++) { + vec[i4] = data.getFloat32(i4 * 4); + } + return ctx.postDecode(this, vec); + } + }; + exports2.PgVectorCodec = PgVectorCodec; + var PgVectorHalfVecCodec = class extends ifaces_1.ScalarCodec { + tsType = "Float16Array"; + tsModule = "gel"; + encode(buf, object, ctx) { + object = ctx.preEncode(this, object); + if (!((0, utils_1.isFloat16Array)(object) || Array.isArray(object))) { + throw new errors_1.InvalidArgumentError(`a Float16Array or array of numbers was expected, got "${object}"`); + } + if (object.length > exports2.PG_VECTOR_MAX_DIM) { + throw new errors_1.InvalidArgumentError("too many elements in array to encode into pgvector"); + } + buf.writeInt32(4 + object.length * 2).writeUInt16(object.length).writeUInt16(0); + const vecBuf = new Uint8Array(object.length * 2); + const data = new DataView(vecBuf.buffer, vecBuf.byteOffset, vecBuf.byteLength); + if ((0, utils_1.isFloat16Array)(object)) { + for (let i4 = 0; i4 < object.length; i4++) { + (0, utils_1.setFloat16)(data, i4 * 2, object[i4]); + } + } else { + for (let i4 = 0; i4 < object.length; i4++) { + if (typeof object[i4] !== "number") { + throw new errors_1.InvalidArgumentError(`elements of vector array expected to be a numbers, got "${object[i4]}"`); + } + (0, utils_1.setFloat16)(data, i4 * 2, object[i4]); + } + } + buf.writeBuffer(vecBuf); + } + decode(buf, ctx) { + const dim = buf.readUInt16(); + buf.discard(2); + const vecBuf = buf.readBuffer(dim * 2); + const data = new DataView(vecBuf.buffer, vecBuf.byteOffset, vecBuf.byteLength); + const vec = new utils_1.Float16Array(dim); + for (let i4 = 0; i4 < dim; i4++) { + vec[i4] = (0, utils_1.getFloat16)(data, i4 * 2); + } + return ctx.postDecode(this, vec); + } + }; + exports2.PgVectorHalfVecCodec = PgVectorHalfVecCodec; + var PgVectorSparseVecCodec = class extends ifaces_1.ScalarCodec { + tsType = "SparseVector"; + tsModule = "gel"; + encode(buf, object, ctx) { + let dims; + let indexes; + let values; + if (ctx.hasOverload(this)) { + [dims, indexes, values] = ctx.preEncode(this, object); + } else { + if (!(object instanceof pgvector_1.SparseVector)) { + throw new errors_1.InvalidArgumentError(`a SparseVector was expected, got "${object}"`); + } + dims = object.length; + indexes = object.indexes; + values = object.values; + } + const indexesLength = indexes.length; + if (indexesLength > exports2.PG_VECTOR_MAX_DIM || indexesLength > dims) { + throw new errors_1.InvalidArgumentError("too many elements in sparse vector value"); + } + buf.writeUInt32(4 * (3 + indexesLength * 2)).writeUInt32(dims).writeUInt32(indexesLength).writeUInt32(0); + const vecBuf = new Uint8Array(indexesLength * 8); + const data = new DataView(vecBuf.buffer, vecBuf.byteOffset, vecBuf.byteLength); + for (let i4 = 0; i4 < indexesLength; i4++) { + data.setUint32(i4 * 4, indexes[i4]); + } + for (let i4 = 0; i4 < indexesLength; i4++) { + data.setFloat32((indexesLength + i4) * 4, values[i4]); + } + buf.writeBuffer(vecBuf); + } + decode(buf, ctx) { + const dim = buf.readUInt32(); + const nnz = buf.readUInt32(); + buf.discard(4); + const vecBuf = buf.readBuffer(nnz * 8); + const data = new DataView(vecBuf.buffer, vecBuf.byteOffset, vecBuf.byteLength); + const indexes = new Uint32Array(nnz); + for (let i4 = 0; i4 < nnz; i4++) { + indexes[i4] = data.getUint32(i4 * 4); + } + const vecData = new Float32Array(nnz); + for (let i4 = 0; i4 < nnz; i4++) { + vecData[i4] = data.getFloat32((i4 + nnz) * 4); + } + if (ctx.hasOverload(this)) { + return ctx.postDecode(this, [ + dim, + indexes, + vecData + ]); + } + return new pgvector_1.SparseVector(dim, indexes, vecData); + } + }; + exports2.PgVectorSparseVecCodec = PgVectorSparseVecCodec; + } +}); + +// ../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/datatypes/postgis.js +var require_postgis = __commonJS({ + "../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/datatypes/postgis.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.Box3D = exports2.Box2D = exports2.GeometryCollection = exports2.MultiSurface = exports2.TriangulatedIrregularNetwork = exports2.PolyhedralSurface = exports2.MultiPolygon = exports2.CurvePolygon = exports2.Triangle = exports2.Polygon = exports2.MultiCurve = exports2.CompoundCurve = exports2.MultiLineString = exports2.CircularString = exports2.LineString = exports2.MultiPoint = exports2.Point = exports2.Geometry = void 0; + var Geometry = class { + }; + exports2.Geometry = Geometry; + function _pointToWKT(p3) { + return `${p3.x} ${p3.y}${p3.z !== null ? ` ${p3.z}` : ""}${p3.m !== null ? ` ${p3.m}` : ""}`; + } + function _flagsToWKT(z2, m4) { + return (z2 || m4 ? " " : "") + (z2 ? "Z" : "") + (m4 ? "M" : ""); + } + function _sridWKTPrefix(srid, depth) { + return srid !== null && depth === 0 ? `SRID=${srid}; ` : ""; + } + function _indent(indent, depth) { + if (!indent) + return ""; + return "\n" + " ".repeat(indent * depth); + } + var Point = class extends Geometry { + x; + y; + z; + m; + srid; + constructor(x4, y2, z2 = null, m4 = null, srid = null) { + super(); + this.x = x4; + this.y = y2; + this.z = z2; + this.m = m4; + this.srid = srid; + } + get hasZ() { + return this.z !== null; + } + get hasM() { + return this.m !== null; + } + toWKT(_indent2, _truncate = Infinity, depth = 0) { + return `${_sridWKTPrefix(this.srid, depth)}POINT${_flagsToWKT(this.z !== null, this.m !== null)} ${Number.isNaN(this.x) ? "EMPTY" : "(" + _pointToWKT(this) + ")"}`; + } + equals(other) { + return this.srid === other.srid && (Number.isNaN(this.x) ? this.hasZ === other.hasZ && this.hasM === other.hasM : this.x === other.x && this.y === other.y && this.z === other.z && this.m === other.m); + } + }; + exports2.Point = Point; + var MultiPoint = class extends Geometry { + geometries; + hasZ; + hasM; + srid; + constructor(geometries, hasZ, hasM, srid) { + super(); + this.geometries = geometries; + this.hasZ = hasZ; + this.hasM = hasM; + this.srid = srid; + } + toWKT(indent, truncate = Infinity, depth = 0) { + let wkt = `${_sridWKTPrefix(this.srid, depth)}MULTIPOINT${_flagsToWKT(this.hasZ, this.hasM)} `; + if (this.geometries.length === 0) { + return wkt + "EMPTY"; + } + wkt += `(`; + let i4 = 0; + while (i4 < this.geometries.length && wkt.length < truncate) { + wkt += _indent(indent, depth + 1) + "(" + _pointToWKT(this.geometries[i4++]) + (i4 < this.geometries.length ? "), " : ")"); + } + return wkt + _indent(indent, depth) + ")"; + } + }; + exports2.MultiPoint = MultiPoint; + function _linestringToWKT(points, indent, truncate = Infinity, depth = 0) { + let wkt = `(`; + let i4 = 0; + while (i4 < points.length && wkt.length < truncate) { + wkt += _indent(indent, depth + 1) + _pointToWKT(points[i4++]) + (i4 < points.length ? ", " : ""); + } + return wkt + _indent(indent, depth) + ")"; + } + var LineString = class extends Geometry { + points; + hasZ; + hasM; + srid; + constructor(points, hasZ, hasM, srid) { + super(); + this.points = points; + this.hasZ = hasZ; + this.hasM = hasM; + this.srid = srid; + this._validate(); + } + _validate() { + if (this.points.length === 1) { + throw new Error(`expected zero, or 2 or more points in LineString`); + } + } + static _wktName = "LINESTRING"; + toWKT(indent, truncate = Infinity, depth = 0) { + const wkt = `${_sridWKTPrefix(this.srid, depth)}${this.constructor._wktName}${_flagsToWKT(this.hasZ, this.hasM)} `; + if (this.points.length === 0) { + return wkt + "EMPTY"; + } + return wkt + _linestringToWKT(this.points, indent, truncate - wkt.length, depth); + } + }; + exports2.LineString = LineString; + var CircularString = class extends LineString { + static _wktName = "CIRCULARSTRING"; + _validate() { + if (this.points.length !== 0 && (this.points.length <= 1 || this.points.length % 2 !== 1)) { + throw new Error(`expected zero points, or odd number of points greater than 1 in CircularString`); + } + } + }; + exports2.CircularString = CircularString; + function _multilinestringToWKT(lineStrings, indent, truncate = Infinity, depth = 0) { + let wkt = `(`; + let i4 = 0; + while (i4 < lineStrings.length && wkt.length < truncate) { + wkt += _indent(indent, depth + 1) + _linestringToWKT(lineStrings[i4++].points, indent, truncate - wkt.length, depth + 1) + (i4 < lineStrings.length ? ", " : ""); + } + return wkt + _indent(indent, depth) + ")"; + } + var MultiLineString = class extends Geometry { + geometries; + hasZ; + hasM; + srid; + constructor(geometries, hasZ, hasM, srid) { + super(); + this.geometries = geometries; + this.hasZ = hasZ; + this.hasM = hasM; + this.srid = srid; + } + toWKT(indent, truncate = Infinity, depth = 0) { + const wkt = `${_sridWKTPrefix(this.srid, depth)}MULTILINESTRING${_flagsToWKT(this.hasZ, this.hasM)} `; + if (this.geometries.length === 0) { + return wkt + "EMPTY"; + } + return wkt + _multilinestringToWKT(this.geometries, indent, truncate - wkt.length, depth); + } + }; + exports2.MultiLineString = MultiLineString; + var CompoundCurve = class extends Geometry { + geometries; + hasZ; + hasM; + srid; + constructor(geometries, hasZ, hasM, srid) { + super(); + this.geometries = geometries; + this.hasZ = hasZ; + this.hasM = hasM; + this.srid = srid; + let lastPoint = null; + for (const segment of geometries) { + if (lastPoint && !segment.points[0].equals(lastPoint)) { + throw new Error("segments in CompoundCurve do not join"); + } + lastPoint = segment.points[segment.points.length - 1]; + } + } + toWKT(indent, truncate = Infinity, depth = 0) { + let wkt = `${_sridWKTPrefix(this.srid, depth)}COMPOUNDCURVE${_flagsToWKT(this.hasZ, this.hasM)} `; + if (this.geometries.length === 0) { + return wkt + "EMPTY"; + } + wkt += "("; + let i4 = 0; + while (i4 < this.geometries.length && wkt.length < truncate) { + wkt += _indent(indent, depth + 1) + (this.geometries[i4] instanceof CircularString ? "CIRCULARSTRING " : "LINESTRING ") + _linestringToWKT(this.geometries[i4++].points, indent, truncate - wkt.length, depth + 1) + (i4 < this.geometries.length ? ", " : ""); + } + return wkt + _indent(indent, depth) + ")"; + } + }; + exports2.CompoundCurve = CompoundCurve; + var MultiCurve = class extends Geometry { + geometries; + hasZ; + hasM; + srid; + constructor(geometries, hasZ, hasM, srid) { + super(); + this.geometries = geometries; + this.hasZ = hasZ; + this.hasM = hasM; + this.srid = srid; + } + toWKT(indent, truncate = Infinity, depth = 0) { + let wkt = `${_sridWKTPrefix(this.srid, depth)}MULTICURVE${_flagsToWKT(this.hasZ, this.hasM)} `; + if (this.geometries.length === 0) { + return wkt + "EMPTY"; + } + wkt += `(`; + let i4 = 0; + while (i4 < this.geometries.length && wkt.length < truncate) { + wkt += _indent(indent, depth + 1) + this.geometries[i4++].toWKT(indent, truncate - wkt.length, depth + 1) + (i4 < this.geometries.length ? ", " : ""); + } + return wkt + _indent(indent, depth) + ")"; + } + }; + exports2.MultiCurve = MultiCurve; + var Polygon = class extends Geometry { + rings; + hasZ; + hasM; + srid; + constructor(rings, hasZ, hasM, srid) { + super(); + this.rings = rings; + this.hasZ = hasZ; + this.hasM = hasM; + this.srid = srid; + this._validate(); + } + _validate() { + if (this.rings.some((ring) => ring.points.length < 4 || !ring.points[0].equals(ring.points[ring.points.length - 1]))) { + throw new Error("expected rings in Polygon to be closed and to have at least 4 points"); + } + } + static _wktName = "POLYGON"; + toWKT(indent, truncate = Infinity, depth = 0) { + const wkt = `${_sridWKTPrefix(this.srid, depth)}${this.constructor._wktName}${_flagsToWKT(this.hasZ, this.hasM)} `; + if (this.rings.length === 0) { + return wkt + "EMPTY"; + } + return wkt + _multilinestringToWKT(this.rings, indent, truncate - wkt.length, depth); + } + }; + exports2.Polygon = Polygon; + var Triangle = class extends Polygon { + static _wktName = "TRIANGLE"; + _validate() { + if (this.rings.length > 1) { + throw new Error("Triangle can only contain a single ring"); + } + if (this.rings.some((ring) => ring.points.length !== 4 || !ring.points[0].equals(ring.points[ring.points.length - 1]))) { + throw new Error("expected Triangle to be closed and to have exactly 4 points"); + } + } + }; + exports2.Triangle = Triangle; + var CurvePolygon = class extends Geometry { + geometries; + hasZ; + hasM; + srid; + constructor(geometries, hasZ, hasM, srid) { + super(); + this.geometries = geometries; + this.hasZ = hasZ; + this.hasM = hasM; + this.srid = srid; + if (this.geometries.some((ring) => ring instanceof LineString && ring.points.length < 4 || (ring instanceof CompoundCurve ? !ring.geometries[0].points[0].equals(ring.geometries[ring.geometries.length - 1].points[ring.geometries[ring.geometries.length - 1].points.length - 1]) : !ring.points[0].equals(ring.points[ring.points.length - 1])))) { + throw new Error("expected rings in CurvePolygon to be closed and LinearRings to have at least 4 points"); + } + } + toWKT(indent, truncate = Infinity, depth = 0) { + let wkt = `${_sridWKTPrefix(this.srid, depth)}CURVEPOLYGON${_flagsToWKT(this.hasZ, this.hasM)} `; + if (this.geometries.length === 0) { + return wkt + "EMPTY"; + } + wkt += `(`; + let i4 = 0; + while (i4 < this.geometries.length && wkt.length < truncate) { + wkt += _indent(indent, depth + 1) + this.geometries[i4++].toWKT(indent, truncate - wkt.length, depth + 1) + (i4 < this.geometries.length ? ", " : ""); + } + return wkt + _indent(indent, depth) + ")"; + } + }; + exports2.CurvePolygon = CurvePolygon; + var MultiPolygon = class extends Geometry { + geometries; + hasZ; + hasM; + srid; + constructor(geometries, hasZ, hasM, srid) { + super(); + this.geometries = geometries; + this.hasZ = hasZ; + this.hasM = hasM; + this.srid = srid; + } + static _wktName = "MULTIPOLYGON"; + toWKT(indent, truncate = Infinity, depth = 0) { + let wkt = `${_sridWKTPrefix(this.srid, depth)}${this.constructor._wktName}${_flagsToWKT(this.hasZ, this.hasM)} `; + if (this.geometries.length === 0) { + return wkt + "EMPTY"; + } + wkt += `(`; + let i4 = 0; + while (i4 < this.geometries.length && wkt.length < truncate) { + wkt += _indent(indent, depth + 1) + _multilinestringToWKT(this.geometries[i4++].rings, indent, truncate - wkt.length, depth + 1) + (i4 < this.geometries.length ? ", " : ""); + } + return wkt + _indent(indent, depth) + ")"; + } + }; + exports2.MultiPolygon = MultiPolygon; + var PolyhedralSurface = class extends MultiPolygon { + static _wktName = "POLYHEDRALSURFACE"; + }; + exports2.PolyhedralSurface = PolyhedralSurface; + var TriangulatedIrregularNetwork = class extends MultiPolygon { + static _wktName = "TIN"; + }; + exports2.TriangulatedIrregularNetwork = TriangulatedIrregularNetwork; + var MultiSurface = class extends Geometry { + geometries; + hasZ; + hasM; + srid; + constructor(geometries, hasZ, hasM, srid) { + super(); + this.geometries = geometries; + this.hasZ = hasZ; + this.hasM = hasM; + this.srid = srid; + } + toWKT(indent, truncate = Infinity, depth = 0) { + let wkt = `${_sridWKTPrefix(this.srid, depth)}MULTISURFACE${_flagsToWKT(this.hasZ, this.hasM)} `; + if (this.geometries.length === 0) { + return wkt + "EMPTY"; + } + wkt += `(`; + let i4 = 0; + while (i4 < this.geometries.length && wkt.length < truncate) { + wkt += _indent(indent, depth + 1) + this.geometries[i4++].toWKT(indent, truncate - wkt.length, depth + 1) + (i4 < this.geometries.length ? ", " : ""); + } + return wkt + _indent(indent, depth) + ")"; + } + }; + exports2.MultiSurface = MultiSurface; + var GeometryCollection = class extends Geometry { + geometries; + hasZ; + hasM; + srid; + constructor(geometries, hasZ, hasM, srid) { + super(); + this.geometries = geometries; + this.hasZ = hasZ; + this.hasM = hasM; + this.srid = srid; + } + toWKT(indent, truncate = Infinity, depth = 0) { + let wkt = `${_sridWKTPrefix(this.srid, depth)}GEOMETRYCOLLECTION${_flagsToWKT(this.hasZ, this.hasM)} `; + if (this.geometries.length === 0) { + return wkt + "EMPTY"; + } + wkt += `(`; + let i4 = 0; + while (i4 < this.geometries.length && wkt.length < truncate) { + wkt += _indent(indent, depth + 1) + this.geometries[i4++].toWKT(indent, truncate - wkt.length, depth + 1) + (i4 < this.geometries.length ? ", " : ""); + } + return wkt + _indent(indent, depth) + ")"; + } + }; + exports2.GeometryCollection = GeometryCollection; + var Box2D = class { + min; + max; + constructor(min, max) { + this.min = min; + this.max = max; + } + toString() { + return `BOX(${this.min[0]} ${this.min[1]}, ${this.max[0]} ${this.max[1]})`; + } + }; + exports2.Box2D = Box2D; + var Box3D = class { + min; + max; + constructor(min, max) { + this.min = min; + this.max = max; + } + toString() { + return `BOX3D(${this.min[0]} ${this.min[1]} ${this.min[2]}, ${this.max[0]} ${this.max[1]} ${this.max[2]})`; + } + }; + exports2.Box3D = Box3D; + } +}); + +// ../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/codecs/postgis.js +var require_postgis2 = __commonJS({ + "../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/codecs/postgis.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.PostgisBox3dCodec = exports2.PostgisBox2dCodec = exports2.PostgisGeometryCodec = void 0; + var postgis_1 = require_postgis(); + var errors_1 = require_errors(); + var ifaces_1 = require_ifaces(); + var PostgisGeometryCodec = class extends ifaces_1.ScalarCodec { + encode(buf, object, ctx) { + if (ctx.hasOverload(this)) { + const geomBuf = ctx.preEncode(this, object); + buf.writeBytes(geomBuf); + } else { + if (!(object instanceof postgis_1.Geometry)) { + throw new errors_1.InvalidArgumentError(`a Geometry object was expected, got "${object}"`); + } + const finalise = buf.writeDeferredSize(); + _encodeGeometry(buf, object); + finalise(); + } + } + decode(buf, ctx) { + if (ctx.hasOverload(this)) { + return ctx.postDecode(this, buf.consumeAsBuffer()); + } + return _parseGeometry(buf); + } + }; + exports2.PostgisGeometryCodec = PostgisGeometryCodec; + var PostgisBox2dCodec = class extends ifaces_1.ScalarCodec { + encode(buf, object, ctx) { + let min; + let max; + if (ctx.hasOverload(this)) { + [min, max] = ctx.preEncode(this, object); + } else { + if (!(object instanceof postgis_1.Box2D)) { + throw new errors_1.InvalidArgumentError(`a Box2D object was expected, got "${object}"`); + } + min = object.min; + max = object.max; + } + const finalise = buf.writeDeferredSize(); + _encodeGeometry(buf, new postgis_1.Polygon([ + new postgis_1.LineString([ + new postgis_1.Point(min[0], min[1]), + new postgis_1.Point(min[0], max[1]), + new postgis_1.Point(max[0], max[1]), + new postgis_1.Point(min[0], min[1]) + ], false, false, null) + ], false, false, null)); + finalise(); + } + decode(buf, ctx) { + const poly = _parseGeometry(buf); + if (poly.constructor !== postgis_1.Polygon || poly.hasZ || poly.rings.length !== 1 || poly.rings[0].points.length !== 5) { + throw new errors_1.InternalClientError(`failed to decode ext::postgis::box2d type`); + } + const points = poly.rings[0].points; + const min = [points[0].x, points[0].y]; + const max = [points[2].x, points[2].y]; + if (ctx.hasOverload(this)) { + return ctx.postDecode(this, [min, max]); + } + return new postgis_1.Box2D(min, max); + } + }; + exports2.PostgisBox2dCodec = PostgisBox2dCodec; + var PostgisBox3dCodec = class extends ifaces_1.ScalarCodec { + encode(buf, object, ctx) { + let min; + let max; + if (ctx.hasOverload(this)) { + [min, max] = ctx.preEncode(this, object); + } else { + if (!(object instanceof postgis_1.Box3D)) { + throw new errors_1.InvalidArgumentError(`a Box3D object was expected, got "${object}"`); + } + min = object.min; + max = object.max; + } + const finalise = buf.writeDeferredSize(); + _encodeGeometry(buf, new postgis_1.Polygon([ + new postgis_1.LineString([ + new postgis_1.Point(min[0], min[1], min[2]), + new postgis_1.Point(min[0], max[1], max[2]), + new postgis_1.Point(max[0], max[1], max[2]), + new postgis_1.Point(min[0], min[1], min[2]) + ], true, false, null) + ], true, false, null)); + finalise(); + } + decode(buf, ctx) { + const poly = _parseGeometry(buf); + let min; + let max; + if (poly.constructor === postgis_1.Polygon && poly.rings.length === 1 && poly.rings[0].points.length === 5) { + const points = poly.rings[0].points; + min = points[0]; + max = points[2]; + } else if (poly.constructor === postgis_1.PolyhedralSurface && poly.geometries.length === 6 && poly.geometries[0].rings.length === 1 && poly.geometries[0].rings[0].points.length === 5) { + min = poly.geometries[0].rings[0].points[0]; + max = poly.geometries[5].rings[0].points[2]; + } else { + throw new errors_1.InternalClientError(`failed to decode ext::postgis::box3d type`); + } + if (ctx.hasOverload(this)) { + return ctx.postDecode(this, [ + [min.x, min.y, min.z ?? 0], + [max.x, max.y, max.z ?? 0] + ]); + } + return new postgis_1.Box3D([min.x, min.y, min.z ?? 0], [max.x, max.y, max.z ?? 0]); + } + }; + exports2.PostgisBox3dCodec = PostgisBox3dCodec; + var zFlag = 2147483648; + var mFlag = 1073741824; + var sridFlag = 536870912; + var allFlags = zFlag | mFlag | sridFlag; + function _parseGeometry(buf, srid = null) { + const le = buf.readUInt8() === 1; + let type = buf.readUInt32(le); + const z2 = (type & zFlag) !== 0; + const m4 = (type & mFlag) !== 0; + if ((type & sridFlag) !== 0) { + srid = buf.readUInt32(le); + } + type = type & ~allFlags; + switch (type) { + case 1: + return _parsePoint(buf, le, z2, m4, srid); + case 2: + return _parseLineString(buf, postgis_1.LineString, le, z2, m4, srid); + case 3: + return _parsePolygon(buf, postgis_1.Polygon, le, z2, m4, srid); + case 4: + return _parseMultiPoint(buf, le, z2, m4, srid); + case 5: + return _parseMultiLineString(buf, le, z2, m4, srid); + case 6: + return _parseMultiPolygon(buf, postgis_1.MultiPolygon, le, z2, m4, srid); + case 7: + return _parseGeometryCollection(buf, le, z2, m4, srid); + case 8: + return _parseLineString(buf, postgis_1.CircularString, le, z2, m4, srid); + case 9: + return _parseCompoundCurve(buf, le, z2, m4, srid); + case 10: + return _parseMultiCurve(buf, postgis_1.CurvePolygon, le, z2, m4, srid); + case 11: + return _parseMultiCurve(buf, postgis_1.MultiCurve, le, z2, m4, srid); + case 12: + return _parseMultiSurface(buf, le, z2, m4, srid); + case 15: + return _parseMultiPolygon(buf, postgis_1.PolyhedralSurface, le, z2, m4, srid); + case 16: + return _parseMultiPolygon(buf, postgis_1.TriangulatedIrregularNetwork, le, z2, m4, srid); + case 17: + return _parsePolygon(buf, postgis_1.Triangle, le, z2, m4, srid); + default: + throw new Error(`unsupported wkb type: ${type}`); + } + } + function _parsePoint(buf, le, z2, m4, srid) { + return new postgis_1.Point(buf.readFloat64(le), buf.readFloat64(le), z2 ? buf.readFloat64(le) : null, m4 ? buf.readFloat64(le) : null, srid); + } + function _parseLineString(buf, cls, le, z2, m4, srid) { + const pointCount = buf.readUInt32(le); + const points = new Array(pointCount); + for (let i4 = 0; i4 < pointCount; i4++) { + points[i4] = _parsePoint(buf, le, z2, m4, srid); + } + return new cls(points, z2, m4, srid); + } + function _parsePolygon(buf, cls, le, z2, m4, srid) { + const ringCount = buf.readUInt32(le); + const rings = new Array(ringCount); + for (let i4 = 0; i4 < ringCount; i4++) { + rings[i4] = _parseLineString(buf, postgis_1.LineString, le, z2, m4, srid); + } + return new cls(rings, z2, m4, srid); + } + function _parseMultiPoint(buf, le, z2, m4, srid) { + const pointCount = buf.readUInt32(le); + const points = new Array(pointCount); + for (let i4 = 0; i4 < pointCount; i4++) { + buf.discard(5); + points[i4] = _parsePoint(buf, le, z2, m4, srid); + } + return new postgis_1.MultiPoint(points, z2, m4, srid); + } + function _parseMultiLineString(buf, le, z2, m4, srid) { + const lineStringCount = buf.readUInt32(le); + const lineStrings = new Array(lineStringCount); + for (let i4 = 0; i4 < lineStringCount; i4++) { + buf.discard(5); + lineStrings[i4] = _parseLineString(buf, postgis_1.LineString, le, z2, m4, srid); + } + return new postgis_1.MultiLineString(lineStrings, z2, m4, srid); + } + function _parseCompoundCurve(buf, le, z2, m4, srid) { + const curveCount = buf.readUInt32(le); + const curves = new Array(curveCount); + for (let i4 = 0; i4 < curveCount; i4++) { + buf.discard(1); + const type = buf.readUInt32(le) & ~allFlags; + switch (type) { + case 2: + curves[i4] = _parseLineString(buf, postgis_1.LineString, le, z2, m4, srid); + break; + case 8: + curves[i4] = _parseLineString(buf, postgis_1.CircularString, le, z2, m4, srid); + break; + default: + throw new Error(`unexpected type ${type} in CompoundCurve`); + } + } + return new postgis_1.CompoundCurve(curves, z2, m4, srid); + } + function _parseMultiCurve(buf, cls, le, z2, m4, srid) { + const curveCount = buf.readUInt32(le); + const curves = new Array(curveCount); + for (let i4 = 0; i4 < curveCount; i4++) { + buf.discard(1); + const type = buf.readUInt32(le) & ~allFlags; + switch (type) { + case 2: + curves[i4] = _parseLineString(buf, postgis_1.LineString, le, z2, m4, srid); + break; + case 8: + curves[i4] = _parseLineString(buf, postgis_1.CircularString, le, z2, m4, srid); + break; + case 9: + curves[i4] = _parseCompoundCurve(buf, le, z2, m4, srid); + break; + default: + throw new Error(`unexpected type ${type} in MultiCurve/CurvePolygon`); + } + } + return new cls(curves, z2, m4, srid); + } + function _parseMultiPolygon(buf, cls, le, z2, m4, srid) { + const polyCls = cls === postgis_1.TriangulatedIrregularNetwork ? postgis_1.Triangle : postgis_1.Polygon; + const polyCount = buf.readUInt32(le); + const polys = new Array(polyCount); + for (let i4 = 0; i4 < polyCount; i4++) { + buf.discard(5); + polys[i4] = _parsePolygon(buf, polyCls, le, z2, m4, srid); + } + return new cls(polys, z2, m4, srid); + } + function _parseMultiSurface(buf, le, z2, m4, srid) { + const surfaceCount = buf.readUInt32(le); + const surfaces = new Array(surfaceCount); + for (let i4 = 0; i4 < surfaceCount; i4++) { + buf.discard(1); + const type = buf.readUInt32(le) & ~allFlags; + switch (type) { + case 3: + surfaces[i4] = _parsePolygon(buf, postgis_1.Polygon, le, z2, m4, srid); + break; + case 10: + surfaces[i4] = _parseMultiCurve(buf, postgis_1.CurvePolygon, le, z2, m4, srid); + break; + default: + throw new Error(`unexpected type ${type} in MultiSurface`); + } + } + return new postgis_1.MultiSurface(surfaces, z2, m4, srid); + } + function _parseGeometryCollection(buf, le, z2, m4, srid) { + const geometryCount = buf.readUInt32(le); + const geometries = new Array(geometryCount); + for (let i4 = 0; i4 < geometryCount; i4++) { + geometries[i4] = _parseGeometry(buf, srid); + } + return new postgis_1.GeometryCollection(geometries, z2, m4, srid); + } + var geomTypes = /* @__PURE__ */ new Map([ + [postgis_1.Point, 1], + [postgis_1.LineString, 2], + [postgis_1.Polygon, 3], + [postgis_1.MultiPoint, 4], + [postgis_1.MultiLineString, 5], + [postgis_1.MultiPolygon, 6], + [postgis_1.GeometryCollection, 7], + [postgis_1.CircularString, 8], + [postgis_1.CompoundCurve, 9], + [postgis_1.CurvePolygon, 10], + [postgis_1.MultiCurve, 11], + [postgis_1.MultiSurface, 12], + [postgis_1.PolyhedralSurface, 15], + [postgis_1.TriangulatedIrregularNetwork, 16], + [postgis_1.Triangle, 17] + ]); + function _encodeGeometry(buf, geom) { + buf.writeUInt8(0); + const type = geomTypes.get(geom.constructor); + if (!type) { + throw new Error(`unknown geometry type ${geom}`); + } + buf.writeUInt32(type | (geom.hasZ ? zFlag : 0) | (geom.hasM ? mFlag : 0) | (geom.srid !== null ? sridFlag : 0)); + if (geom.srid !== null) { + buf.writeUInt32(geom.srid); + } + if (geom instanceof postgis_1.Point) { + _encodePoint(buf, geom); + return; + } + if (geom instanceof postgis_1.LineString) { + _encodeLineString(buf, geom); + return; + } + if (geom instanceof postgis_1.Polygon) { + buf.writeUInt32(geom.rings.length); + for (const ring of geom.rings) { + _encodeLineString(buf, ring); + } + return; + } + buf.writeUInt32(geom.geometries.length); + for (const point of geom.geometries) { + _encodeGeometry(buf, point); + } + } + function _encodePoint(buf, point) { + buf.writeFloat64(point.x); + buf.writeFloat64(point.y); + if (point.z !== null) + buf.writeFloat64(point.z); + if (point.m !== null) + buf.writeFloat64(point.m); + } + function _encodeLineString(buf, linestring) { + buf.writeUInt32(linestring.points.length); + for (const point of linestring.points) { + _encodePoint(buf, point); + } + } + } +}); + +// ../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/codecs/codecs.js +var require_codecs = __commonJS({ + "../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/codecs/codecs.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.INVALID_CODEC = exports2.NULL_CODEC = exports2.SCALAR_CODECS = exports2.NullCodec = void 0; + var buffer_1 = require_buffer(); + var boolean_1 = require_boolean(); + var ifaces_1 = require_ifaces(); + var numbers_1 = require_numbers(); + var numerics_1 = require_numerics(); + var text_1 = require_text(); + var uuid_1 = require_uuid(); + var bytes_1 = require_bytes(); + var json_1 = require_json(); + var datetime_1 = require_datetime2(); + var memory_1 = require_memory2(); + var pgvector_1 = require_pgvector2(); + var postgis_1 = require_postgis2(); + var errors_1 = require_errors(); + var consts_1 = require_consts(); + var NullCodec = class extends ifaces_1.Codec { + static BUFFER = new buffer_1.WriteBuffer().writeInt32(0).unwrap(); + encode(_buf, _object) { + throw new errors_1.InternalClientError("null codec cannot used to encode data"); + } + decode(_buf, _ctx) { + throw new errors_1.InternalClientError("null codec cannot used to decode data"); + } + getSubcodecs() { + return []; + } + getKind() { + return "scalar"; + } + }; + exports2.NullCodec = NullCodec; + exports2.SCALAR_CODECS = /* @__PURE__ */ new Map(); + exports2.NULL_CODEC = new NullCodec(consts_1.NULL_CODEC_ID); + exports2.INVALID_CODEC = new NullCodec(consts_1.INVALID_CODEC_ID); + function registerScalarCodecs(codecs) { + for (const [typename, type] of Object.entries(codecs)) { + const id = consts_1.KNOWN_TYPENAMES.get(typename); + if (id == null) { + throw new errors_1.InternalClientError("unknown type name"); + } + exports2.SCALAR_CODECS.set(id, new type(id, typename)); + } + } + registerScalarCodecs({ + "std::int16": numbers_1.Int16Codec, + "std::int32": numbers_1.Int32Codec, + "std::int64": numbers_1.Int64Codec, + "std::float32": numbers_1.Float32Codec, + "std::float64": numbers_1.Float64Codec, + "std::bigint": numerics_1.BigIntCodec, + "std::decimal": numerics_1.DecimalStringCodec, + "std::bool": boolean_1.BoolCodec, + "std::json": json_1.JSONCodec, + "std::str": text_1.StrCodec, + "std::bytes": bytes_1.BytesCodec, + "std::uuid": uuid_1.UUIDCodec, + "cal::local_date": datetime_1.LocalDateCodec, + "cal::local_time": datetime_1.LocalTimeCodec, + "cal::local_datetime": datetime_1.LocalDateTimeCodec, + "std::datetime": datetime_1.DateTimeCodec, + "std::duration": datetime_1.DurationCodec, + "cal::relative_duration": datetime_1.RelativeDurationCodec, + "cal::date_duration": datetime_1.DateDurationCodec, + "cfg::memory": memory_1.ConfigMemoryCodec, + "std::pg::json": json_1.PgTextJSONCodec, + "std::pg::timestamptz": datetime_1.DateTimeCodec, + "std::pg::timestamp": datetime_1.LocalDateTimeCodec, + "std::pg::date": datetime_1.LocalDateCodec, + "std::pg::interval": datetime_1.RelativeDurationCodec, + "ext::pgvector::vector": pgvector_1.PgVectorCodec, + "ext::pgvector::halfvec": pgvector_1.PgVectorHalfVecCodec, + "ext::pgvector::sparsevec": pgvector_1.PgVectorSparseVecCodec, + "ext::postgis::geometry": postgis_1.PostgisGeometryCodec, + "ext::postgis::geography": postgis_1.PostgisGeometryCodec, + "ext::postgis::box2d": postgis_1.PostgisBox2dCodec, + "ext::postgis::box3d": postgis_1.PostgisBox3dCodec + }); + } +}); + +// ../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/codecs/tuple.js +var require_tuple = __commonJS({ + "../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/codecs/tuple.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.EMPTY_TUPLE_CODEC = exports2.EMPTY_TUPLE_CODEC_ID = exports2.EmptyTupleCodec = exports2.TupleCodec = void 0; + var consts_1 = require_consts(); + var ifaces_1 = require_ifaces(); + var buffer_1 = require_buffer(); + var errors_1 = require_errors(); + var TupleCodec = class extends ifaces_1.Codec { + subCodecs; + typeName; + constructor(tid, typeName, codecs) { + super(tid); + this.subCodecs = codecs; + this.typeName = typeName; + } + encode(buf, object, ctx) { + if (!Array.isArray(object)) { + throw new errors_1.InvalidArgumentError(`an array was expected, got "${object}"`); + } + const codecs = this.subCodecs; + const codecsLen = codecs.length; + if (object.length !== codecsLen) { + throw new errors_1.InvalidArgumentError(`expected ${codecsLen} tuple item${codecsLen === 1 ? "" : "s"}, got ${object.length}`); + } + if (!codecsLen) { + buf.writeBuffer(EmptyTupleCodec.BUFFER); + } + const elemData = new buffer_1.WriteBuffer(); + for (let i4 = 0; i4 < codecsLen; i4++) { + const elem = object[i4]; + elemData.writeInt32(0); + if (elem == null) { + throw new errors_1.MissingArgumentError(`element at index ${i4} in tuple cannot be 'null'`); + } else { + try { + codecs[i4].encode(elemData, elem, ctx); + } catch (e4) { + if (e4 instanceof errors_1.QueryArgumentError) { + throw new errors_1.InvalidArgumentError(`invalid element at index ${i4} in tuple: ${e4.message}`); + } else { + throw e4; + } + } + } + } + const elemBuf = elemData.unwrap(); + buf.writeInt32(4 + elemBuf.length); + buf.writeInt32(codecsLen); + buf.writeBuffer(elemBuf); + } + decode(buf, ctx) { + const els = buf.readUInt32(); + const subCodecs = this.subCodecs; + if (els !== subCodecs.length) { + throw new errors_1.ProtocolError(`cannot decode Tuple: expected ${subCodecs.length} elements, got ${els}`); + } + const elemBuf = buffer_1.ReadBuffer.alloc(); + const result = new Array(els); + for (let i4 = 0; i4 < els; i4++) { + buf.discard(4); + const elemLen = buf.readInt32(); + if (elemLen === -1) { + result[i4] = null; + } else { + buf.sliceInto(elemBuf, elemLen); + result[i4] = subCodecs[i4].decode(elemBuf, ctx); + elemBuf.finish(); + } + } + return result; + } + getSubcodecs() { + return Array.from(this.subCodecs); + } + getKind() { + return "tuple"; + } + }; + exports2.TupleCodec = TupleCodec; + var EmptyTupleCodec = class extends ifaces_1.Codec { + static BUFFER = new buffer_1.WriteBuffer().writeInt32(4).writeInt32(0).unwrap(); + encode(buf, object, _ctx) { + if (!Array.isArray(object)) { + throw new errors_1.InvalidArgumentError("cannot encode empty Tuple: expected an array"); + } + if (object.length) { + throw new errors_1.InvalidArgumentError(`cannot encode empty Tuple: expected 0 elements got ${object.length}`); + } + buf.writeInt32(4); + buf.writeInt32(0); + } + decode(buf) { + const els = buf.readInt32(); + if (els !== 0) { + throw new errors_1.ProtocolError(`cannot decode empty Tuple: expected 0 elements, received ${els}`); + } + return []; + } + getSubcodecs() { + return []; + } + getKind() { + return "tuple"; + } + }; + exports2.EmptyTupleCodec = EmptyTupleCodec; + exports2.EMPTY_TUPLE_CODEC_ID = consts_1.KNOWN_TYPENAMES.get("empty-tuple"); + exports2.EMPTY_TUPLE_CODEC = new EmptyTupleCodec(exports2.EMPTY_TUPLE_CODEC_ID); + } +}); + +// ../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/datatypes/range.js +var require_range2 = __commonJS({ + "../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/datatypes/range.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.MultiRange = exports2.Range = void 0; + var Range = class _Range { + _lower; + _upper; + _incLower; + _incUpper; + _isEmpty = false; + constructor(_lower, _upper, _incLower = _lower != null, _incUpper = false) { + this._lower = _lower; + this._upper = _upper; + this._incLower = _incLower; + this._incUpper = _incUpper; + } + get lower() { + return this._lower; + } + get upper() { + return this._upper; + } + get incLower() { + return this._incLower; + } + get incUpper() { + return this._incUpper; + } + get isEmpty() { + return this._isEmpty; + } + static empty() { + const range = new _Range(null, null); + range._isEmpty = true; + return range; + } + toJSON() { + return this.isEmpty ? { empty: true } : { + lower: this._lower, + upper: this._upper, + inc_lower: this._incLower, + inc_upper: this._incUpper + }; + } + }; + exports2.Range = Range; + var MultiRange = class { + _ranges; + constructor(ranges = []) { + this._ranges = [...ranges]; + } + get length() { + return this._ranges.length; + } + *[Symbol.iterator]() { + for (const range of this._ranges) { + yield range; + } + } + toJSON() { + return [...this._ranges]; + } + }; + exports2.MultiRange = MultiRange; + } +}); + +// ../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/codecs/range.js +var require_range3 = __commonJS({ + "../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/codecs/range.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.MultiRangeCodec = exports2.RangeCodec = void 0; + var ifaces_1 = require_ifaces(); + var buffer_1 = require_buffer(); + var range_1 = require_range2(); + var errors_1 = require_errors(); + var RangeFlags; + (function(RangeFlags2) { + RangeFlags2[RangeFlags2["EMPTY"] = 1] = "EMPTY"; + RangeFlags2[RangeFlags2["INC_LOWER"] = 2] = "INC_LOWER"; + RangeFlags2[RangeFlags2["INC_UPPER"] = 4] = "INC_UPPER"; + RangeFlags2[RangeFlags2["EMPTY_LOWER"] = 8] = "EMPTY_LOWER"; + RangeFlags2[RangeFlags2["EMPTY_UPPER"] = 16] = "EMPTY_UPPER"; + })(RangeFlags || (RangeFlags = {})); + var MAXINT32 = 2147483647; + function encodeRange(buf, obj, subCodec, ctx) { + if (!(obj instanceof range_1.Range)) { + throw new errors_1.InvalidArgumentError("a Range was expected"); + } + const elemData = new buffer_1.WriteBuffer(); + if (obj.lower !== null) { + subCodec.encode(elemData, obj.lower, ctx); + } + if (obj.upper !== null) { + subCodec.encode(elemData, obj.upper, ctx); + } + const elemBuf = elemData.unwrap(); + buf.writeInt32(1 + elemBuf.length); + buf.writeUInt8(obj.isEmpty ? RangeFlags.EMPTY : (obj.incLower ? RangeFlags.INC_LOWER : 0) | (obj.incUpper ? RangeFlags.INC_UPPER : 0) | (obj.lower === null ? RangeFlags.EMPTY_LOWER : 0) | (obj.upper === null ? RangeFlags.EMPTY_UPPER : 0)); + buf.writeBuffer(elemBuf); + } + function decodeRange(buf, subCodec, ctx) { + const flags = buf.readUInt8(); + if (flags & RangeFlags.EMPTY) { + return range_1.Range.empty(); + } + const elemBuf = buffer_1.ReadBuffer.alloc(); + let lower2 = null; + let upper = null; + if (!(flags & RangeFlags.EMPTY_LOWER)) { + buf.sliceInto(elemBuf, buf.readInt32()); + lower2 = subCodec.decode(elemBuf, ctx); + elemBuf.finish(); + } + if (!(flags & RangeFlags.EMPTY_UPPER)) { + buf.sliceInto(elemBuf, buf.readInt32()); + upper = subCodec.decode(elemBuf, ctx); + elemBuf.finish(); + } + return new range_1.Range(lower2, upper, !!(flags & RangeFlags.INC_LOWER), !!(flags & RangeFlags.INC_UPPER)); + } + var RangeCodec = class extends ifaces_1.Codec { + tsType = "Range"; + tsModule = "gel"; + subCodec; + typeName; + constructor(tid, typeName, subCodec) { + super(tid); + this.subCodec = subCodec; + this.typeName = typeName; + } + encode(buf, obj, ctx) { + return encodeRange(buf, obj, this.subCodec, ctx); + } + decode(buf, ctx) { + return decodeRange(buf, this.subCodec, ctx); + } + getSubcodecs() { + return [this.subCodec]; + } + getKind() { + return "range"; + } + }; + exports2.RangeCodec = RangeCodec; + var MultiRangeCodec = class extends ifaces_1.Codec { + tsType = "MultiRange"; + tsModule = "gel"; + subCodec; + typeName; + constructor(tid, typeName, subCodec) { + super(tid); + this.subCodec = subCodec; + this.typeName = typeName; + } + encode(buf, obj, ctx) { + if (!(obj instanceof range_1.MultiRange)) { + throw new TypeError(`a MultiRange expected (got type ${obj.constructor.name})`); + } + const objLen = obj.length; + if (objLen > MAXINT32) { + throw new errors_1.InvalidArgumentError("too many elements in array"); + } + const elemData = new buffer_1.WriteBuffer(); + for (const item of obj) { + try { + encodeRange(elemData, item, this.subCodec, ctx); + } catch (e4) { + if (e4 instanceof errors_1.InvalidArgumentError) { + throw new errors_1.InvalidArgumentError(`invalid multirange element: ${e4.message}`); + } else { + throw e4; + } + } + } + const elemBuf = elemData.unwrap(); + const elemDataLen = elemBuf.length; + if (elemDataLen > MAXINT32 - 4) { + throw new errors_1.InvalidArgumentError(`size of encoded multirange datum exceeds the maximum allowed ${MAXINT32 - 4} bytes`); + } + buf.writeInt32(4 + elemDataLen); + buf.writeInt32(objLen); + buf.writeBuffer(elemBuf); + } + decode(buf, ctx) { + const elemCount = buf.readInt32(); + const result = new Array(elemCount); + const elemBuf = buffer_1.ReadBuffer.alloc(); + const subCodec = this.subCodec; + for (let i4 = 0; i4 < elemCount; i4++) { + const elemLen = buf.readInt32(); + if (elemLen === -1) { + throw new errors_1.ProtocolError("unexpected NULL element in multirange value"); + } else { + buf.sliceInto(elemBuf, elemLen); + const elem = decodeRange(elemBuf, subCodec, ctx); + if (elemBuf.length) { + throw new errors_1.ProtocolError(`unexpected trailing data in buffer after multirange element decoding: ${elemBuf.length}`); + } + result[i4] = elem; + elemBuf.finish(); + } + } + return new range_1.MultiRange(result); + } + getSubcodecs() { + return [this.subCodec]; + } + getKind() { + return "multirange"; + } + }; + exports2.MultiRangeCodec = MultiRangeCodec; + } +}); + +// ../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/codecs/namedtuple.js +var require_namedtuple = __commonJS({ + "../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/codecs/namedtuple.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.NamedTupleCodec = void 0; + var ifaces_1 = require_ifaces(); + var buffer_1 = require_buffer(); + var errors_1 = require_errors(); + var NamedTupleCodec = class extends ifaces_1.Codec { + subCodecs; + names; + typeName; + constructor(tid, typeName, codecs, names) { + super(tid); + this.subCodecs = codecs; + this.names = names; + this.typeName = typeName; + } + encode(buf, object, ctx) { + if (typeof object !== "object" || Array.isArray(object)) { + throw new errors_1.InvalidArgumentError(`an object was expected, got "${object}"`); + } + const codecsLen = this.subCodecs.length; + if (Object.keys(object).length !== codecsLen) { + throw new errors_1.QueryArgumentError(`expected ${codecsLen} element${codecsLen === 1 ? "" : "s"} in named tuple, got ${Object.keys(object).length}`); + } + const elemData = new buffer_1.WriteBuffer(); + for (let i4 = 0; i4 < codecsLen; i4++) { + const key = this.names[i4]; + const val2 = object[key]; + if (val2 == null) { + throw new errors_1.MissingArgumentError(`element '${key}' in named tuple cannot be 'null'`); + } else { + elemData.writeInt32(0); + try { + this.subCodecs[i4].encode(elemData, val2, ctx); + } catch (e4) { + if (e4 instanceof errors_1.QueryArgumentError) { + throw new errors_1.InvalidArgumentError(`invalid element '${key}' in named tuple: ${e4.message}`); + } else { + throw e4; + } + } + } + } + const elemBuf = elemData.unwrap(); + buf.writeInt32(4 + elemBuf.length); + buf.writeInt32(codecsLen); + buf.writeBuffer(elemBuf); + } + decode(buf, ctx) { + const els = buf.readUInt32(); + const subCodecs = this.subCodecs; + if (els !== subCodecs.length) { + throw new errors_1.ProtocolError(`cannot decode NamedTuple: expected ${subCodecs.length} elements, got ${els}`); + } + const elemBuf = buffer_1.ReadBuffer.alloc(); + const names = this.names; + const result = {}; + for (let i4 = 0; i4 < els; i4++) { + buf.discard(4); + const elemLen = buf.readInt32(); + let val2 = null; + if (elemLen !== -1) { + buf.sliceInto(elemBuf, elemLen); + val2 = subCodecs[i4].decode(elemBuf, ctx); + elemBuf.finish(); + } + result[names[i4]] = val2; + } + return result; + } + getSubcodecs() { + return Array.from(this.subCodecs); + } + getNames() { + return Array.from(this.names); + } + getKind() { + return "namedtuple"; + } + }; + exports2.NamedTupleCodec = NamedTupleCodec; + } +}); + +// ../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/codecs/array.js +var require_array = __commonJS({ + "../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/codecs/array.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ArrayCodec = void 0; + var ifaces_1 = require_ifaces(); + var buffer_1 = require_buffer(); + var tuple_1 = require_tuple(); + var range_1 = require_range3(); + var errors_1 = require_errors(); + var namedtuple_1 = require_namedtuple(); + var ArrayCodec = class extends ifaces_1.Codec { + subCodec; + len; + typeName; + constructor(tid, typeName, subCodec, len) { + super(tid); + this.subCodec = subCodec; + this.len = len; + this.typeName = typeName; + } + encode(buf, obj, ctx) { + if (!(this.subCodec instanceof ifaces_1.ScalarCodec || this.subCodec instanceof tuple_1.TupleCodec || this.subCodec instanceof namedtuple_1.NamedTupleCodec || this.subCodec instanceof range_1.RangeCodec || this.subCodec instanceof range_1.MultiRangeCodec)) { + throw new errors_1.InvalidArgumentError("only arrays of scalars or tuples are supported"); + } + if (!Array.isArray(obj) && !isTypedArray(obj)) { + throw new errors_1.InvalidArgumentError(`an array was expected (got type ${obj.constructor.name})`); + } + const subCodec = this.subCodec; + const elemData = new buffer_1.WriteBuffer(); + const objLen = obj.length; + if (objLen > 2147483647) { + throw new errors_1.InvalidArgumentError("too many elements in array"); + } + for (let i4 = 0; i4 < objLen; i4++) { + const item = obj[i4]; + if (item == null) { + elemData.writeInt32(-1); + } else { + subCodec.encode(elemData, item, ctx); + } + } + const elemBuf = elemData.unwrap(); + buf.writeInt32(12 + 8 + elemBuf.length); + buf.writeInt32(1); + buf.writeInt32(0); + buf.writeInt32(0); + buf.writeInt32(objLen); + buf.writeInt32(1); + buf.writeBuffer(elemBuf); + } + decode(buf, ctx) { + const ndims = buf.readInt32(); + buf.discard(4); + buf.discard(4); + if (ndims === 0) { + return []; + } + if (ndims !== 1) { + throw new errors_1.ProtocolError("only 1-dimensional arrays are supported"); + } + const len = buf.readUInt32(); + if (this.len !== -1 && len !== this.len) { + throw new errors_1.ProtocolError(`invalid array size: received ${len}, expected ${this.len}`); + } + buf.discard(4); + const result = new Array(len); + const elemBuf = buffer_1.ReadBuffer.alloc(); + const subCodec = this.subCodec; + for (let i4 = 0; i4 < len; i4++) { + const elemLen = buf.readInt32(); + if (elemLen === -1) { + result[i4] = null; + } else { + buf.sliceInto(elemBuf, elemLen); + result[i4] = subCodec.decode(elemBuf, ctx); + elemBuf.finish(); + } + } + return result; + } + getSubcodecs() { + return [this.subCodec]; + } + getKind() { + return "array"; + } + }; + exports2.ArrayCodec = ArrayCodec; + function isTypedArray(obj) { + return !!(obj.buffer instanceof ArrayBuffer && obj.BYTES_PER_ELEMENT); + } + } +}); + +// ../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/codecs/enum.js +var require_enum = __commonJS({ + "../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/codecs/enum.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.EnumCodec = void 0; + var text_1 = require_text(); + var EnumCodec = class extends text_1.StrCodec { + values; + constructor(tid, typeName, values) { + super(tid, typeName); + this.values = values; + } + }; + exports2.EnumCodec = EnumCodec; + } +}); + +// ../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/ifaces.js +var require_ifaces2 = __commonJS({ + "../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/ifaces.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o3, m4, k3, k22) { + if (k22 === void 0) k22 = k3; + var desc = Object.getOwnPropertyDescriptor(m4, k3); + if (!desc || ("get" in desc ? !m4.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m4[k3]; + } }; + } + Object.defineProperty(o3, k22, desc); + } : function(o3, m4, k3, k22) { + if (k22 === void 0) k22 = k3; + o3[k22] = m4[k3]; + }); + var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? function(o3, v6) { + Object.defineProperty(o3, "default", { enumerable: true, value: v6 }); + } : function(o3, v6) { + o3["default"] = v6; + }); + var __importStar2 = exports2 && exports2.__importStar || function(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) { + for (var k3 in mod) if (k3 !== "default" && Object.prototype.hasOwnProperty.call(mod, k3)) __createBinding2(result, mod, k3); + } + __setModuleDefault2(result, mod); + return result; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.Language = exports2.Cardinality = exports2.OutputFormat = void 0; + var chars = __importStar2(require_chars()); + var OutputFormat; + (function(OutputFormat2) { + OutputFormat2[OutputFormat2["BINARY"] = chars.$b] = "BINARY"; + OutputFormat2[OutputFormat2["JSON"] = chars.$j] = "JSON"; + OutputFormat2[OutputFormat2["NONE"] = chars.$n] = "NONE"; + })(OutputFormat || (exports2.OutputFormat = OutputFormat = {})); + var Cardinality; + (function(Cardinality2) { + Cardinality2[Cardinality2["NO_RESULT"] = chars.$n] = "NO_RESULT"; + Cardinality2[Cardinality2["AT_MOST_ONE"] = chars.$o] = "AT_MOST_ONE"; + Cardinality2[Cardinality2["ONE"] = chars.$A] = "ONE"; + Cardinality2[Cardinality2["MANY"] = chars.$m] = "MANY"; + Cardinality2[Cardinality2["AT_LEAST_ONE"] = chars.$M] = "AT_LEAST_ONE"; + })(Cardinality || (exports2.Cardinality = Cardinality = {})); + var Language; + (function(Language2) { + Language2[Language2["EDGEQL"] = chars.$E] = "EDGEQL"; + Language2[Language2["SQL"] = chars.$S] = "SQL"; + })(Language || (exports2.Language = Language = {})); + } +}); + +// ../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/codecs/object.js +var require_object = __commonJS({ + "../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/codecs/object.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ObjectCodec = void 0; + var ifaces_1 = require_ifaces2(); + var ifaces_2 = require_ifaces(); + var buffer_1 = require_buffer(); + var errors_1 = require_errors(); + var EDGE_POINTER_IS_IMPLICIT = 1 << 0; + var EDGE_POINTER_IS_LINKPROP = 1 << 1; + var ObjectCodec = class extends ifaces_2.Codec { + codecs; + fields; + namesSet; + cardinalities; + constructor(tid, codecs, names, flags, cards) { + super(tid); + this.codecs = codecs; + this.fields = new Array(names.length); + this.namesSet = /* @__PURE__ */ new Set(); + this.cardinalities = cards; + for (let i4 = 0; i4 < names.length; i4++) { + const isLinkprop = !!(flags[i4] & EDGE_POINTER_IS_LINKPROP); + const name = isLinkprop ? `@${names[i4]}` : names[i4]; + this.fields[i4] = { + name, + implicit: !!(flags[i4] & EDGE_POINTER_IS_IMPLICIT), + linkprop: isLinkprop, + cardinality: cards[i4] + }; + this.namesSet.add(name); + } + } + encode(_buf, _object) { + throw new errors_1.InvalidArgumentError("Objects cannot be passed as arguments"); + } + encodeArgs(args, ctx) { + if (this.fields[0].name === "0" || this.fields[0].name === "1") { + return this._encodePositionalArgs(args, ctx); + } + return this._encodeNamedArgs(args, ctx); + } + _encodePositionalArgs(args, ctx) { + if (!Array.isArray(args)) { + throw new errors_1.InvalidArgumentError("an array of arguments was expected"); + } + const codecs = this.codecs; + const codecsLen = codecs.length; + if (args.length !== codecsLen) { + throw new errors_1.QueryArgumentError(`expected ${codecsLen} argument${codecsLen === 1 ? "" : "s"}, got ${args.length}`); + } + const elemData = new buffer_1.WriteBuffer(); + for (let i4 = 0; i4 < codecsLen; i4++) { + elemData.writeInt32(0); + const arg = args[i4]; + if (arg == null) { + const card = this.cardinalities[i4]; + if (card === ifaces_1.Cardinality.ONE || card === ifaces_1.Cardinality.AT_LEAST_ONE) { + throw new errors_1.MissingArgumentError(`argument ${this.fields[i4].name} is required, but received ${arg}`); + } + elemData.writeInt32(-1); + } else { + const codec = codecs[i4]; + codec.encode(elemData, arg, ctx); + } + } + const elemBuf = elemData.unwrap(); + const buf = new buffer_1.WriteBuffer(); + buf.writeInt32(4 + elemBuf.length); + buf.writeInt32(codecsLen); + buf.writeBuffer(elemBuf); + return buf.unwrap(); + } + _encodeNamedArgs(args, ctx) { + if (args == null) { + throw new errors_1.MissingArgumentError("One or more named arguments expected, received null"); + } + const keys = Object.keys(args); + const fields = this.fields; + const namesSet = this.namesSet; + const codecs = this.codecs; + const codecsLen = codecs.length; + if (keys.length > codecsLen) { + const extraKeys = keys.filter((key) => !namesSet.has(key)); + throw new errors_1.UnknownArgumentError(`Unused named argument${extraKeys.length === 1 ? "" : "s"}: "${extraKeys.join('", "')}"`); + } + const elemData = new buffer_1.WriteBuffer(); + for (let i4 = 0; i4 < codecsLen; i4++) { + const key = fields[i4].name; + const val2 = args[key]; + elemData.writeInt32(0); + if (val2 == null) { + const card = this.cardinalities[i4]; + if (card === ifaces_1.Cardinality.ONE || card === ifaces_1.Cardinality.AT_LEAST_ONE) { + throw new errors_1.MissingArgumentError(`argument ${this.fields[i4].name} is required, but received ${val2}`); + } + elemData.writeInt32(-1); + } else { + const codec = codecs[i4]; + codec.encode(elemData, val2, ctx); + } + } + const elemBuf = elemData.unwrap(); + const buf = new buffer_1.WriteBuffer(); + buf.writeInt32(4 + elemBuf.length); + buf.writeInt32(codecsLen); + buf.writeBuffer(elemBuf); + return buf.unwrap(); + } + decode(buf, ctx) { + const codecs = this.codecs; + const fields = this.fields; + const els = buf.readUInt32(); + if (els !== codecs.length) { + throw new errors_1.ProtocolError(`cannot decode Object: expected ${codecs.length} elements, got ${els}`); + } + const elemBuf = buffer_1.ReadBuffer.alloc(); + const result = {}; + for (let i4 = 0; i4 < els; i4++) { + buf.discard(4); + const elemLen = buf.readInt32(); + const name = fields[i4].name; + let val2 = null; + if (elemLen !== -1) { + buf.sliceInto(elemBuf, elemLen); + val2 = codecs[i4].decode(elemBuf, ctx); + elemBuf.finish(); + } + result[name] = val2; + } + return result; + } + getSubcodecs() { + return Array.from(this.codecs); + } + getFields() { + return Array.from(this.fields); + } + getKind() { + return "object"; + } + }; + exports2.ObjectCodec = ObjectCodec; + } +}); + +// ../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/codecs/set.js +var require_set = __commonJS({ + "../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/codecs/set.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.SetCodec = void 0; + var ifaces_1 = require_ifaces(); + var buffer_1 = require_buffer(); + var array_1 = require_array(); + var errors_1 = require_errors(); + var SetCodec = class extends ifaces_1.Codec { + subCodec; + constructor(tid, subCodec) { + super(tid); + this.subCodec = subCodec; + } + encode(_buf, _obj) { + throw new errors_1.InvalidArgumentError("Sets cannot be passed in query arguments"); + } + decode(buf, ctx) { + if (this.subCodec instanceof array_1.ArrayCodec) { + return this.decodeSetOfArrays(buf, ctx); + } else { + return this.decodeSet(buf, ctx); + } + } + decodeSetOfArrays(buf, ctx) { + const ndims = buf.readInt32(); + buf.discard(4); + buf.discard(4); + if (ndims === 0) { + return []; + } + if (ndims !== 1) { + throw new errors_1.ProtocolError(`expected 1-dimensional array of records of arrays`); + } + const len = buf.readUInt32(); + buf.discard(4); + const result = new Array(len); + const elemBuf = buffer_1.ReadBuffer.alloc(); + const subCodec = this.subCodec; + for (let i4 = 0; i4 < len; i4++) { + buf.discard(4); + const recSize = buf.readUInt32(); + if (recSize !== 1) { + throw new errors_1.ProtocolError("expected a record with a single element as an array set element envelope"); + } + buf.discard(4); + const elemLen = buf.readInt32(); + if (elemLen === -1) { + throw new errors_1.ProtocolError("unexpected NULL value in array set element"); + } + buf.sliceInto(elemBuf, elemLen); + result[i4] = subCodec.decode(elemBuf, ctx); + elemBuf.finish(); + } + return result; + } + decodeSet(buf, ctx) { + const ndims = buf.readInt32(); + buf.discard(4); + buf.discard(4); + if (ndims === 0) { + return []; + } + if (ndims !== 1) { + throw new errors_1.ProtocolError(`invalid set dimensinality: ${ndims}`); + } + const len = buf.readUInt32(); + buf.discard(4); + const result = new Array(len); + const elemBuf = buffer_1.ReadBuffer.alloc(); + const subCodec = this.subCodec; + for (let i4 = 0; i4 < len; i4++) { + const elemLen = buf.readInt32(); + if (elemLen === -1) { + result[i4] = null; + } else { + buf.sliceInto(elemBuf, elemLen); + result[i4] = subCodec.decode(elemBuf, ctx); + elemBuf.finish(); + } + } + return result; + } + getSubcodecs() { + return [this.subCodec]; + } + getKind() { + return "set"; + } + }; + exports2.SetCodec = SetCodec; + } +}); + +// ../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/codecs/record.js +var require_record = __commonJS({ + "../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/codecs/record.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.RecordCodec = exports2.SQLRowModeObject = exports2.SQLRowModeArray = void 0; + var ifaces_1 = require_ifaces(); + var buffer_1 = require_buffer(); + var errors_1 = require_errors(); + var SQLRowArrayCodec = { + fromDatabase(values, _desc) { + return values; + }, + toDatabase() { + throw new errors_1.InternalClientError("cannot encode SQL record as a query argument"); + } + }; + var SQLRowObjectCodec = { + fromDatabase(values, { names }) { + return Object.fromEntries(names.map((key, index6) => [key, values[index6]])); + }, + toDatabase() { + throw new errors_1.InternalClientError("cannot encode SQL record as a query argument"); + } + }; + exports2.SQLRowModeArray = { + _private_sql_row: SQLRowArrayCodec + }; + exports2.SQLRowModeObject = { + _private_sql_row: SQLRowObjectCodec + }; + var RecordCodec = class extends ifaces_1.Codec { + subCodecs; + names; + constructor(tid, codecs, names) { + super(tid); + this.subCodecs = codecs; + this.names = names; + } + encode(_buf, _object) { + throw new errors_1.InvalidArgumentError("SQL records cannot be passed as arguments"); + } + decode(buf, ctx) { + const els = buf.readUInt32(); + const subCodecs = this.subCodecs; + if (els !== subCodecs.length) { + throw new errors_1.ProtocolError(`cannot decode Record: expected ${subCodecs.length} elements, got ${els}`); + } + const elemBuf = buffer_1.ReadBuffer.alloc(); + const overload = ctx.getContainerOverload("_private_sql_row"); + if (overload != null && overload !== SQLRowObjectCodec) { + const result = new Array(els); + for (let i4 = 0; i4 < els; i4++) { + buf.discard(4); + const elemLen = buf.readInt32(); + let val2 = null; + if (elemLen !== -1) { + buf.sliceInto(elemBuf, elemLen); + val2 = subCodecs[i4].decode(elemBuf, ctx); + elemBuf.finish(); + } + result[i4] = val2; + } + if (overload !== SQLRowArrayCodec) { + return overload.fromDatabase(result, { names: this.names }); + } + return result; + } else { + const names = this.names; + const result = {}; + for (let i4 = 0; i4 < els; i4++) { + buf.discard(4); + const elemLen = buf.readInt32(); + let val2 = null; + if (elemLen !== -1) { + buf.sliceInto(elemBuf, elemLen); + val2 = subCodecs[i4].decode(elemBuf, ctx); + elemBuf.finish(); + } + result[names[i4]] = val2; + } + return result; + } + } + getSubcodecs() { + return Array.from(this.subCodecs); + } + getNames() { + return Array.from(this.names); + } + getKind() { + return "record"; + } + }; + exports2.RecordCodec = RecordCodec; + } +}); + +// ../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/codecs/sparseObject.js +var require_sparseObject = __commonJS({ + "../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/codecs/sparseObject.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.SparseObjectCodec = void 0; + var ifaces_1 = require_ifaces(); + var buffer_1 = require_buffer(); + var errors_1 = require_errors(); + var SparseObjectCodec = class extends ifaces_1.Codec { + codecs; + names; + constructor(tid, codecs, names) { + super(tid); + this.codecs = codecs; + this.names = names; + } + encode(buf, object, ctx) { + const elemBuf = new buffer_1.WriteBuffer(); + let objLen = 0; + for (const [key, val2] of Object.entries(object)) { + if (val2 !== void 0) { + const i4 = this.names.indexOf(key); + if (i4 === -1) { + throw new errors_1.UnknownArgumentError(this.names.length ? `invalid global '${key}', valid globals are ${this.names.map((n3) => `'${n3}'`).join(", ")}` : `invalid global '${key}', no valid globals exist`); + } + objLen += 1; + elemBuf.writeInt32(i4); + if (val2 === null) { + elemBuf.writeInt32(-1); + } else { + this.codecs[i4].encode(elemBuf, val2, ctx); + } + } + } + const elemData = elemBuf.unwrap(); + buf.writeInt32(4 + elemData.length); + buf.writeInt32(objLen); + buf.writeBuffer(elemData); + } + decode(buf, ctx) { + const codecs = this.codecs; + const names = this.names; + const els = buf.readUInt32(); + const elemBuf = buffer_1.ReadBuffer.alloc(); + const result = {}; + for (let _3 = 0; _3 < els; _3++) { + const i4 = buf.readUInt32(); + const elemLen = buf.readInt32(); + const name = names[i4]; + let val2 = null; + if (elemLen !== -1) { + buf.sliceInto(elemBuf, elemLen); + val2 = codecs[i4].decode(elemBuf, ctx); + elemBuf.finish(); + } + result[name] = val2; + } + return result; + } + getSubcodecs() { + return Array.from(this.codecs); + } + getKind() { + return "sparse_object"; + } + }; + exports2.SparseObjectCodec = SparseObjectCodec; + } +}); + +// ../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/codecs/registry.js +var require_registry = __commonJS({ + "../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/codecs/registry.js"(exports2) { + "use strict"; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.CodecsRegistry = void 0; + var buffer_1 = require_buffer(); + var lru_1 = __importDefault2(require_lru()); + var ifaces_1 = require_ifaces(); + var codecs_1 = require_codecs(); + var consts_1 = require_consts(); + var tuple_1 = require_tuple(); + var array_1 = require_array(); + var namedtuple_1 = require_namedtuple(); + var enum_1 = require_enum(); + var object_1 = require_object(); + var set_1 = require_set(); + var record_1 = require_record(); + var range_1 = require_range3(); + var utils_1 = require_utils2(); + var sparseObject_1 = require_sparseObject(); + var errors_1 = require_errors(); + var CODECS_CACHE_SIZE = 1e3; + var CODECS_BUILD_CACHE_SIZE = 200; + var CTYPE_SET = 0; + var CTYPE_SHAPE = 1; + var CTYPE_BASE_SCALAR = 2; + var CTYPE_SCALAR = 3; + var CTYPE_TUPLE = 4; + var CTYPE_NAMEDTUPLE = 5; + var CTYPE_ARRAY = 6; + var CTYPE_ENUM = 7; + var CTYPE_INPUT_SHAPE = 8; + var CTYPE_RANGE = 9; + var CTYPE_OBJECT = 10; + var CTYPE_COMPOUND = 11; + var CTYPE_MULTIRANGE = 12; + var CTYPE_RECORD = 13; + var CodecsRegistry = class { + codecsBuildCache; + codecs; + constructor() { + this.codecs = new lru_1.default({ capacity: CODECS_CACHE_SIZE }); + this.codecsBuildCache = new lru_1.default({ capacity: CODECS_BUILD_CACHE_SIZE }); + } + hasCodec(typeId) { + if (this.codecs.has(typeId)) { + return true; + } + return typeId === consts_1.NULL_CODEC_ID || typeId === tuple_1.EMPTY_TUPLE_CODEC_ID; + } + getCodec(typeId) { + const codec = this.codecs.get(typeId); + if (codec != null) { + return codec; + } + if (typeId === tuple_1.EMPTY_TUPLE_CODEC_ID) { + return tuple_1.EMPTY_TUPLE_CODEC; + } + if (typeId === consts_1.NULL_CODEC_ID) { + return codecs_1.NULL_CODEC; + } + return null; + } + buildCodec(spec, protocolVersion) { + if (!(0, utils_1.versionGreaterThanOrEqual)(protocolVersion, [2, 0])) { + throw new errors_1.UnsupportedProtocolVersionError("unsupported old protocol version v1; downgrade to the previous version of gel-js"); + } + const frb = new buffer_1.ReadBuffer(spec); + const codecsList = []; + let codec = null; + while (frb.length) { + const descLen = frb.readInt32(); + const descBuf = buffer_1.ReadBuffer.alloc(); + frb.sliceInto(descBuf, descLen); + codec = this._buildCodec(descBuf, codecsList); + descBuf.finish("unexpected trailing data in type descriptor buffer"); + if (codec == null) { + continue; + } + codecsList.push(codec); + this.codecs.set(codec.tid, codec); + } + if (!codecsList.length) { + throw new errors_1.InternalClientError("could not build a codec"); + } + return codecsList[codecsList.length - 1]; + } + _buildCodec(frb, cl) { + const t4 = frb.readUInt8(); + const tid = frb.readUUID(); + let res = this.codecs.get(tid); + if (res == null) { + res = this.codecsBuildCache.get(tid); + } + if (res != null) { + frb.discard(frb.length); + return res; + } + switch (t4) { + case CTYPE_BASE_SCALAR: { + res = codecs_1.SCALAR_CODECS.get(tid); + if (!res) { + if (consts_1.KNOWN_TYPES.has(tid)) { + throw new errors_1.InternalClientError(`no JS codec for ${consts_1.KNOWN_TYPES.get(tid)}`); + } + throw new errors_1.InternalClientError(`no JS codec for the type with ID ${tid}`); + } + if (!(res instanceof ifaces_1.ScalarCodec)) { + throw new errors_1.ProtocolError("could not build scalar codec: base scalar is a non-scalar codec"); + } + break; + } + case CTYPE_SHAPE: + case CTYPE_INPUT_SHAPE: { + if (t4 === CTYPE_SHAPE) { + frb.readBoolean(); + frb.readUInt16(); + } + const els = frb.readUInt16(); + const codecs = new Array(els); + const names = new Array(els); + const flags = new Array(els); + const cards = new Array(els); + for (let i4 = 0; i4 < els; i4++) { + const flag = frb.readUInt32(); + const card = frb.readUInt8(); + const name = frb.readString(); + const pos = frb.readUInt16(); + const subCodec = cl[pos]; + if (subCodec == null) { + throw new errors_1.ProtocolError("could not build object codec: missing subcodec"); + } + codecs[i4] = subCodec; + names[i4] = name; + flags[i4] = flag; + cards[i4] = card; + if (t4 === CTYPE_SHAPE) { + frb.readUInt16(); + } + } + res = t4 === CTYPE_INPUT_SHAPE ? new sparseObject_1.SparseObjectCodec(tid, codecs, names) : new object_1.ObjectCodec(tid, codecs, names, flags, cards); + break; + } + case CTYPE_SET: { + const pos = frb.readUInt16(); + const subCodec = cl[pos]; + if (subCodec == null) { + throw new errors_1.ProtocolError("could not build set codec: missing subcodec"); + } + res = new set_1.SetCodec(tid, subCodec); + break; + } + case CTYPE_SCALAR: { + const typeName = frb.readString(); + frb.readBoolean(); + const ancestorCount = frb.readUInt16(); + const ancestors = []; + for (let i4 = 0; i4 < ancestorCount; i4++) { + const ancestorPos = frb.readUInt16(); + const ancestorCodec = cl[ancestorPos]; + if (ancestorCodec == null) { + throw new errors_1.ProtocolError("could not build scalar codec: missing a codec for base scalar"); + } + if (!(ancestorCodec instanceof ifaces_1.ScalarCodec)) { + throw new errors_1.ProtocolError(`a scalar codec expected for base scalar type, got ${ancestorCodec}`); + } + ancestors.push(ancestorCodec); + } + if (ancestorCount === 0) { + res = codecs_1.SCALAR_CODECS.get(tid); + if (res == null) { + if (consts_1.KNOWN_TYPES.has(tid)) { + throw new errors_1.InternalClientError(`no JS codec for ${consts_1.KNOWN_TYPES.get(tid)}`); + } + throw new errors_1.InternalClientError(`no JS codec for the type with ID ${tid}`); + } + } else { + const baseCodec = ancestors[ancestors.length - 1]; + res = baseCodec.derive(tid, typeName, ancestors); + } + break; + } + case CTYPE_ARRAY: { + const typeName = frb.readString(); + frb.readBoolean(); + const ancestorCount = frb.readUInt16(); + for (let i4 = 0; i4 < ancestorCount; i4++) { + frb.readUInt16(); + } + const pos = frb.readUInt16(); + const els = frb.readUInt16(); + if (els !== 1) { + throw new errors_1.ProtocolError("cannot handle arrays with more than one dimension"); + } + const dimLen = frb.readInt32(); + const subCodec = cl[pos]; + if (subCodec == null) { + throw new errors_1.ProtocolError("could not build array codec: missing subcodec"); + } + res = new array_1.ArrayCodec(tid, typeName, subCodec, dimLen); + break; + } + case CTYPE_TUPLE: { + const typeName = frb.readString(); + frb.readBoolean(); + const ancestorCount = frb.readUInt16(); + for (let i4 = 0; i4 < ancestorCount; i4++) { + frb.readUInt16(); + } + const els = frb.readUInt16(); + if (els === 0) { + res = tuple_1.EMPTY_TUPLE_CODEC; + } else { + const codecs = new Array(els); + for (let i4 = 0; i4 < els; i4++) { + const pos = frb.readUInt16(); + const subCodec = cl[pos]; + if (subCodec == null) { + throw new errors_1.ProtocolError("could not build tuple codec: missing subcodec"); + } + codecs[i4] = subCodec; + } + res = new tuple_1.TupleCodec(tid, typeName, codecs); + } + break; + } + case CTYPE_NAMEDTUPLE: { + const typeName = frb.readString(); + frb.readBoolean(); + const ancestorCount = frb.readUInt16(); + for (let i4 = 0; i4 < ancestorCount; i4++) { + frb.readUInt16(); + } + const els = frb.readUInt16(); + const codecs = new Array(els); + const names = new Array(els); + for (let i4 = 0; i4 < els; i4++) { + names[i4] = frb.readString(); + const pos = frb.readUInt16(); + const subCodec = cl[pos]; + if (subCodec == null) { + throw new errors_1.ProtocolError("could not build namedtuple codec: missing subcodec"); + } + codecs[i4] = subCodec; + } + res = new namedtuple_1.NamedTupleCodec(tid, typeName, codecs, names); + break; + } + case CTYPE_RECORD: { + const els = frb.readUInt16(); + const codecs = new Array(els); + const names = new Array(els); + for (let i4 = 0; i4 < els; i4++) { + names[i4] = frb.readString(); + const pos = frb.readUInt16(); + const subCodec = cl[pos]; + if (subCodec == null) { + throw new errors_1.ProtocolError("could not build record codec: missing subcodec"); + } + codecs[i4] = subCodec; + } + res = new record_1.RecordCodec(tid, codecs, names); + break; + } + case CTYPE_ENUM: { + const typeName = frb.readString(); + frb.readBoolean(); + const ancestorCount = frb.readUInt16(); + for (let i4 = 0; i4 < ancestorCount; i4++) { + frb.readUInt16(); + } + const els = frb.readUInt16(); + const values = []; + for (let i4 = 0; i4 < els; i4++) { + values.push(frb.readString()); + } + res = new enum_1.EnumCodec(tid, typeName, values); + break; + } + case CTYPE_RANGE: { + const typeName = frb.readString(); + frb.readBoolean(); + const ancestorCount = frb.readUInt16(); + for (let i4 = 0; i4 < ancestorCount; i4++) { + frb.readUInt16(); + } + const pos = frb.readUInt16(); + const subCodec = cl[pos]; + if (subCodec == null) { + throw new errors_1.ProtocolError("could not build range codec: missing subcodec"); + } + res = new range_1.RangeCodec(tid, typeName, subCodec); + break; + } + case CTYPE_OBJECT: { + frb.discard(frb.length); + res = codecs_1.NULL_CODEC; + break; + } + case CTYPE_COMPOUND: { + frb.discard(frb.length); + res = codecs_1.NULL_CODEC; + break; + } + case CTYPE_MULTIRANGE: { + const typeName = frb.readString(); + frb.readBoolean(); + const ancestorCount = frb.readUInt16(); + for (let i4 = 0; i4 < ancestorCount; i4++) { + frb.readUInt16(); + } + const pos = frb.readUInt16(); + const subCodec = cl[pos]; + if (subCodec == null) { + throw new errors_1.ProtocolError("could not build range codec: missing subcodec"); + } + res = new range_1.MultiRangeCodec(tid, typeName, subCodec); + break; + } + } + if (res == null) { + if (consts_1.KNOWN_TYPES.has(tid)) { + throw new errors_1.InternalClientError(`could not build a codec for ${consts_1.KNOWN_TYPES.get(tid)} type`); + } else { + throw new errors_1.InternalClientError(`could not build a codec for ${tid} type`); + } + } + this.codecsBuildCache.set(tid, res); + return res; + } + }; + exports2.CodecsRegistry = CodecsRegistry; + } +}); + +// ../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/codecs/context.js +var require_context = __commonJS({ + "../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/codecs/context.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.NOOP_CODEC_CONTEXT = exports2.CodecContext = void 0; + var NOOP = { + toDatabase(data) { + return data; + }, + fromDatabase(data) { + return data; + } + }; + var CodecContext = class { + spec; + map; + constructor(spec) { + if (spec === null || spec.size === 0) { + this.spec = null; + } else { + this.spec = spec; + } + this.map = /* @__PURE__ */ new Map(); + } + initCodec(codec) { + const specMap = this.spec; + const targetTypeName = codec.typeName; + const s4 = specMap.get(targetTypeName); + if (s4 != null) { + this.map.set(targetTypeName, s4); + return s4; + } + const ancestors = codec.ancestors; + if (ancestors == null) { + this.map.set(targetTypeName, NOOP); + return NOOP; + } + for (let i4 = 0; i4 < ancestors.length; i4++) { + const parent = ancestors[i4]; + const s5 = specMap.get(parent.typeName); + if (s5 != null) { + this.map.set(targetTypeName, s5); + return s5; + } + } + this.map.set(targetTypeName, NOOP); + return NOOP; + } + getContainerOverload(kind) { + if (this.spec === null || !this.spec.size) { + return; + } + return this.spec.get(kind); + } + hasOverload(codec) { + if (this.spec === null || !this.spec.size) { + return false; + } + const op = this.map.get(codec.typeName); + if (op === NOOP) { + return false; + } + if (op != null) { + return true; + } + return this.initCodec(codec) !== NOOP; + } + postDecode(codec, value) { + if (this.spec === null || !this.spec.size) { + return value; + } + let op = this.map.get(codec.typeName); + if (op === NOOP) { + return value; + } + if (op == null) { + op = this.initCodec(codec); + } + return op.fromDatabase(value); + } + preEncode(codec, value) { + if (this.spec === null || !this.spec.size) { + return value; + } + let op = this.map.get(codec.typeName); + if (op === NOOP) { + return value; + } + if (op == null) { + op = this.initCodec(codec); + } + return op.toDatabase(value); + } + }; + exports2.CodecContext = CodecContext; + exports2.NOOP_CODEC_CONTEXT = new CodecContext(null); + } +}); + +// ../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/options.js +var require_options = __commonJS({ + "../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/options.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o3, m4, k3, k22) { + if (k22 === void 0) k22 = k3; + var desc = Object.getOwnPropertyDescriptor(m4, k3); + if (!desc || ("get" in desc ? !m4.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m4[k3]; + } }; + } + Object.defineProperty(o3, k22, desc); + } : function(o3, m4, k3, k22) { + if (k22 === void 0) k22 = k3; + o3[k22] = m4[k3]; + }); + var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? function(o3, v6) { + Object.defineProperty(o3, "default", { enumerable: true, value: v6 }); + } : function(o3, v6) { + o3["default"] = v6; + }); + var __importStar2 = exports2 && exports2.__importStar || function(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) { + for (var k3 in mod) if (k3 !== "default" && Object.prototype.hasOwnProperty.call(mod, k3)) __createBinding2(result, mod, k3); + } + __setModuleDefault2(result, mod); + return result; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.Options = exports2.TransactionOptions = exports2.RetryOptions = exports2.logWarnings = exports2.throwWarnings = exports2.RetryCondition = exports2.IsolationLevel = void 0; + exports2.defaultBackoff = defaultBackoff; + var errors = __importStar2(require_errors()); + var buffer_1 = require_buffer(); + var record_1 = require_record(); + var context_1 = require_context(); + function defaultBackoff(attempt) { + return 2 ** attempt * 100 + Math.random() * 100; + } + var IsolationLevel; + (function(IsolationLevel2) { + IsolationLevel2["Serializable"] = "Serializable"; + IsolationLevel2["RepeatableRead"] = "RepeatableRead"; + IsolationLevel2["PreferRepeatableRead"] = "PreferRepeatableRead"; + })(IsolationLevel || (exports2.IsolationLevel = IsolationLevel = {})); + var RetryCondition; + (function(RetryCondition2) { + RetryCondition2[RetryCondition2["TransactionConflict"] = 0] = "TransactionConflict"; + RetryCondition2[RetryCondition2["NetworkError"] = 1] = "NetworkError"; + })(RetryCondition || (exports2.RetryCondition = RetryCondition = {})); + var RetryRule = class { + attempts; + backoff; + constructor(attempts, backoff) { + this.attempts = attempts; + this.backoff = backoff; + } + }; + var throwWarnings = (warnings) => { + throw new AggregateError(warnings, formatWarnings(warnings)); + }; + exports2.throwWarnings = throwWarnings; + var logWarnings = (warnings) => { + const merged = new Error(formatWarnings(warnings)); + console.warn(Object.assign(merged, { name: "" })); + }; + exports2.logWarnings = logWarnings; + var formatWarnings = (warnings) => `warnings occurred while running query: +${warnings.map((warn) => warn.message).join("\n")}`; + var RetryOptions = class _RetryOptions { + default; + overrides; + constructor(attempts = 3, backoff = defaultBackoff) { + this.default = new RetryRule(attempts, backoff); + this.overrides = /* @__PURE__ */ new Map(); + } + withRule(condition, attempts, backoff) { + const def = this.default; + const overrides = new Map(this.overrides); + overrides.set(condition, new RetryRule(attempts ?? def.attempts, backoff ?? def.backoff)); + const result = Object.create(_RetryOptions.prototype); + result.default = def; + result.overrides = overrides; + return result; + } + getRuleForException(err2) { + let result; + if (err2 instanceof errors.TransactionConflictError) { + result = this.overrides.get(RetryCondition.TransactionConflict); + } else if (err2 instanceof errors.ClientError) { + result = this.overrides.get(RetryCondition.NetworkError); + } + return result ?? this.default; + } + static defaults() { + return _retryOptionsDefault; + } + }; + exports2.RetryOptions = RetryOptions; + var _retryOptionsDefault = new RetryOptions(); + var TransactionOptions = class { + isolation; + readonly; + deferrable; + constructor({ isolation, readonly, deferrable } = {}) { + this.isolation = isolation; + this.readonly = readonly; + this.deferrable = deferrable; + } + isDefault() { + return this.isolation === void 0 && this.readonly === void 0 && this.deferrable === void 0; + } + static defaults() { + return _defaultTransactionOptions; + } + }; + exports2.TransactionOptions = TransactionOptions; + var _defaultTransactionOptions = new TransactionOptions(); + var TAG_ANNOTATION_KEY = "tag"; + var Options = class _Options { + static schemaVersion = 0; + module; + moduleAliases; + config; + globals; + retryOptions; + transactionOptions; + codecs; + warningHandler; + annotations = /* @__PURE__ */ new Map(); + cachedCodecContext = null; + cachedCodecContextVer = -1; + get tag() { + return this.annotations.get(TAG_ANNOTATION_KEY) ?? null; + } + static signalSchemaChange() { + this.schemaVersion += 1; + } + constructor({ retryOptions = RetryOptions.defaults(), transactionOptions = TransactionOptions.defaults(), warningHandler = exports2.logWarnings, module: module3 = "default", moduleAliases = {}, config = {}, globals = {}, codecs = {} } = {}) { + this.retryOptions = retryOptions; + this.transactionOptions = transactionOptions; + this.warningHandler = warningHandler; + this.module = module3; + this.moduleAliases = new Map(Object.entries(moduleAliases)); + this.config = new Map(Object.entries(config)); + this.globals = new Map(Object.entries(globals)); + this.codecs = new Map(Object.entries(codecs)); + } + makeCodecContext() { + if (this.codecs.size === 0) { + return context_1.NOOP_CODEC_CONTEXT; + } + if (this.cachedCodecContextVer === _Options.schemaVersion) { + return this.cachedCodecContext; + } + const ctx = new context_1.CodecContext(this.codecs); + this.cachedCodecContext = ctx; + this.cachedCodecContextVer = _Options.schemaVersion; + return ctx; + } + _cloneWith(mergeOptions) { + const clone2 = Object.create(_Options.prototype); + clone2.annotations = this.annotations; + clone2.retryOptions = mergeOptions.retryOptions ?? this.retryOptions; + clone2.transactionOptions = mergeOptions.transactionOptions ?? this.transactionOptions; + clone2.warningHandler = mergeOptions.warningHandler ?? this.warningHandler; + if (mergeOptions.config != null) { + clone2.config = new Map([ + ...this.config, + ...Object.entries(mergeOptions.config) + ]); + } else { + clone2.config = this.config; + } + if (mergeOptions.globals != null) { + clone2.globals = new Map([ + ...this.globals, + ...Object.entries(mergeOptions.globals) + ]); + } else { + clone2.globals = this.globals; + } + if (mergeOptions.moduleAliases != null) { + clone2.moduleAliases = new Map([ + ...this.moduleAliases, + ...Object.entries(mergeOptions.moduleAliases) + ]); + } else { + clone2.moduleAliases = this.moduleAliases; + } + if (mergeOptions.codecs != null) { + clone2.codecs = new Map([ + ...this.codecs, + ...Object.entries(mergeOptions.codecs) + ]); + } else { + clone2.codecs = this.codecs; + clone2.cachedCodecContext = this.cachedCodecContext; + clone2.cachedCodecContextVer = this.cachedCodecContextVer; + } + if (mergeOptions._dropSQLRowCodec && clone2.codecs.has("_private_sql_row")) { + if (clone2.codecs === this.codecs) { + clone2.codecs = new Map(clone2.codecs); + clone2.cachedCodecContext = null; + clone2.cachedCodecContextVer = -1; + } + clone2.codecs.delete("_private_sql_row"); + } + clone2.module = mergeOptions.module ?? this.module; + return clone2; + } + _serialise() { + const state2 = {}; + if (this.module !== "default") { + state2.module = this.module; + } + if (this.moduleAliases.size) { + state2.aliases = Array.from(this.moduleAliases.entries()); + } + if (this.config.size) { + state2.config = Object.fromEntries(this.config.entries()); + } + if (this.globals.size) { + const globs = {}; + for (const [key, val2] of this.globals.entries()) { + globs[key.includes("::") ? key : `${this.module}::${key}`] = val2; + } + state2.globals = globs; + } + return state2; + } + withModuleAliases({ module: module3, ...aliases }) { + return this._cloneWith({ + module: module3 ?? this.module, + moduleAliases: aliases + }); + } + withConfig(config) { + return this._cloneWith({ config }); + } + withCodecs(codecs) { + return this._cloneWith({ codecs }); + } + withSQLRowMode(mode) { + if (mode === "object") { + return this._cloneWith({ _dropSQLRowCodec: true }); + } else if (mode === "array") { + return this._cloneWith({ codecs: record_1.SQLRowModeArray }); + } else { + throw new errors.InterfaceError(`invalid mode=${mode}`); + } + } + withGlobals(globals) { + return this._cloneWith({ + globals: { ...this.globals, ...globals } + }); + } + withQueryTag(tag) { + const annos = new Map(this.annotations); + if (tag != null) { + if (tag.startsWith("edgedb/")) { + throw new errors.InterfaceError("reserved tag: edgedb/*"); + } + if (tag.startsWith("gel/")) { + throw new errors.InterfaceError("reserved tag: gel/*"); + } + if (buffer_1.utf8Encoder.encode(tag).length > 128) { + throw new errors.InterfaceError("tag too long (> 128 bytes)"); + } + annos.set(TAG_ANNOTATION_KEY, tag); + } else { + annos.delete(TAG_ANNOTATION_KEY); + } + const clone2 = this._cloneWith({}); + clone2.annotations = annos; + return clone2; + } + withTransactionOptions(opt) { + return this._cloneWith({ + transactionOptions: opt instanceof TransactionOptions ? opt : new TransactionOptions(opt) + }); + } + withRetryOptions(opt) { + return this._cloneWith({ + retryOptions: opt instanceof RetryOptions ? opt : new RetryOptions(opt.attempts, opt.backoff) + }); + } + withWarningHandler(handler) { + return this._cloneWith({ warningHandler: handler }); + } + isDefaultSession() { + return this.config.size === 0 && this.globals.size === 0 && this.moduleAliases.size === 0 && this.module === "default" && this.transactionOptions.isDefault(); + } + static defaults() { + return _defaultOptions; + } + }; + exports2.Options = Options; + var _defaultOptions = new Options(); + } +}); + +// ../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/primitives/event.js +var require_event = __commonJS({ + "../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/primitives/event.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + var errors_1 = require_errors(); + var Event = class { + _promise; + _resolve; + _reject; + _done; + async wait() { + await this._promise; + } + then(..._args) { + throw new errors_1.InternalClientError("Event objects cannot be awaited on directly; use Event.wait()"); + } + get done() { + return this._done; + } + set() { + if (this._done) { + throw new errors_1.InternalClientError("emit(): the Event is already set"); + } + this._resolve(true); + } + setError(reason) { + if (this._done) { + throw new errors_1.InternalClientError("emitError(): the Event is already set"); + } + this._reject(reason); + } + constructor() { + this._done = false; + let futReject = null; + let futResolve = null; + this._promise = new Promise((resolve2, reject) => { + futReject = (reason) => { + this._done = true; + reject(reason); + }; + futResolve = (value) => { + this._done = true; + resolve2(value); + }; + }); + if (!futReject || !futResolve) { + throw new errors_1.InternalClientError("Promise executor was not called synchronously"); + } + this._reject = futReject; + this._resolve = futResolve; + } + }; + exports2.default = Event; + } +}); + +// ../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/primitives/queues.js +var require_queues = __commonJS({ + "../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/primitives/queues.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.LifoQueue = void 0; + var errors_1 = require_errors(); + var LifoQueue = class { + _promises; + _resolvers; + _rejecters; + constructor() { + this._resolvers = []; + this._rejecters = []; + this._promises = []; + } + _add() { + this._promises.push(new Promise((resolve2, reject) => { + this._resolvers.push(resolve2); + this._rejecters.push(reject); + })); + } + push(item) { + if (!this._resolvers.length) { + this._add(); + } + const resolve2 = this._resolvers.shift(); + this._rejecters.shift(); + if (!resolve2) { + throw new errors_1.InternalClientError("resolve function was null or undefined when attempting to push."); + } + resolve2(item); + } + get() { + if (!this._promises.length) { + this._add(); + } + const promise = this._promises.pop(); + if (!promise) { + throw new errors_1.InternalClientError("promise was null or undefined when attempting to get."); + } + return promise; + } + cancelAllPending(err2) { + const rejecters = this._rejecters; + this._rejecters = []; + this._resolvers = []; + for (const reject of rejecters) { + reject(err2); + } + } + get length() { + return this._promises.length - this._resolvers.length; + } + get pending() { + return Math.max(0, this._resolvers.length - this._promises.length); + } + }; + exports2.LifoQueue = LifoQueue; + } +}); + +// ../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/retry.js +var require_retry = __commonJS({ + "../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/retry.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o3, m4, k3, k22) { + if (k22 === void 0) k22 = k3; + var desc = Object.getOwnPropertyDescriptor(m4, k3); + if (!desc || ("get" in desc ? !m4.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m4[k3]; + } }; + } + Object.defineProperty(o3, k22, desc); + } : function(o3, m4, k3, k22) { + if (k22 === void 0) k22 = k3; + o3[k22] = m4[k3]; + }); + var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? function(o3, v6) { + Object.defineProperty(o3, "default", { enumerable: true, value: v6 }); + } : function(o3, v6) { + o3["default"] = v6; + }); + var __importStar2 = exports2 && exports2.__importStar || function(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) { + for (var k3 in mod) if (k3 !== "default" && Object.prototype.hasOwnProperty.call(mod, k3)) __createBinding2(result, mod, k3); + } + __setModuleDefault2(result, mod); + return result; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.retryingConnect = retryingConnect; + var errors = __importStar2(require_errors()); + var utils_1 = require_utils2(); + var lastLoggingAt = 0; + async function retryingConnect(connectWithTimeout, config, registry) { + const maxTime = config.connectionParams.waitUntilAvailable === 0 ? 0 : Date.now() + config.connectionParams.waitUntilAvailable; + while (true) { + try { + return await connectWithTimeout(config, registry); + } catch (e4) { + if (e4 instanceof errors.ClientConnectionError) { + if (e4.hasTag(errors.SHOULD_RECONNECT)) { + const now = Date.now(); + if (now > maxTime) { + throw e4; + } + if (config.logging && (!lastLoggingAt || now - lastLoggingAt > 5e3)) { + lastLoggingAt = now; + const logMsg = [ + `A client connection error occurred; reconnecting because of "waitUntilAvailable=${config.connectionParams.waitUntilAvailable}".`, + e4 + ]; + if (!config.fromProject && !config.fromEnv && await config.inProject()) { + logMsg.push(` + + +Hint: it looks like the program is running from a directory initialized with "gel project init". Consider calling "gel.connect()" without arguments. +`); + } + console.warn(...logMsg); + } + } else { + throw e4; + } + } else { + console.error("Unexpected connection error:", e4); + throw e4; + } + } + await (0, utils_1.sleep)(Math.trunc(10 + Math.random() * 200)); + } + } + } +}); + +// ../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/reflection/enums.js +var require_enums = __commonJS({ + "../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/reflection/enums.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.OperatorKind = exports2.SelectModifierKind = exports2.ExpressionKind = exports2.TypeKind = exports2.Cardinality = void 0; + var Cardinality; + (function(Cardinality2) { + Cardinality2["AtMostOne"] = "AtMostOne"; + Cardinality2["One"] = "One"; + Cardinality2["Many"] = "Many"; + Cardinality2["AtLeastOne"] = "AtLeastOne"; + Cardinality2["Empty"] = "Empty"; + })(Cardinality || (exports2.Cardinality = Cardinality = {})); + var TypeKind; + (function(TypeKind2) { + TypeKind2["scalar"] = "scalar"; + TypeKind2["enum"] = "enum"; + TypeKind2["object"] = "object"; + TypeKind2["namedtuple"] = "namedtuple"; + TypeKind2["tuple"] = "tuple"; + TypeKind2["array"] = "array"; + TypeKind2["range"] = "range"; + TypeKind2["multirange"] = "multirange"; + })(TypeKind || (exports2.TypeKind = TypeKind = {})); + var ExpressionKind; + (function(ExpressionKind2) { + ExpressionKind2["Set"] = "Set"; + ExpressionKind2["Array"] = "Array"; + ExpressionKind2["Tuple"] = "Tuple"; + ExpressionKind2["NamedTuple"] = "NamedTuple"; + ExpressionKind2["TuplePath"] = "TuplePath"; + ExpressionKind2["PathNode"] = "PathNode"; + ExpressionKind2["PathLeaf"] = "PathLeaf"; + ExpressionKind2["Literal"] = "Literal"; + ExpressionKind2["Cast"] = "Cast"; + ExpressionKind2["Select"] = "Select"; + ExpressionKind2["Update"] = "Update"; + ExpressionKind2["Delete"] = "Delete"; + ExpressionKind2["Insert"] = "Insert"; + ExpressionKind2["InsertUnlessConflict"] = "InsertUnlessConflict"; + ExpressionKind2["Function"] = "Function"; + ExpressionKind2["Operator"] = "Operator"; + ExpressionKind2["For"] = "For"; + ExpressionKind2["ForVar"] = "ForVar"; + ExpressionKind2["TypeIntersection"] = "TypeIntersection"; + ExpressionKind2["Alias"] = "Alias"; + ExpressionKind2["With"] = "With"; + ExpressionKind2["WithParams"] = "WithParams"; + ExpressionKind2["Param"] = "Param"; + ExpressionKind2["OptionalParam"] = "OptionalParam"; + ExpressionKind2["Detached"] = "Detached"; + ExpressionKind2["Global"] = "Global"; + ExpressionKind2["PolyShapeElement"] = "PolyShapeElement"; + ExpressionKind2["Group"] = "Group"; + })(ExpressionKind || (exports2.ExpressionKind = ExpressionKind = {})); + var SelectModifierKind; + (function(SelectModifierKind2) { + SelectModifierKind2["filter"] = "filter"; + SelectModifierKind2["order_by"] = "order_by"; + SelectModifierKind2["offset"] = "offset"; + SelectModifierKind2["limit"] = "limit"; + })(SelectModifierKind || (exports2.SelectModifierKind = SelectModifierKind = {})); + var OperatorKind; + (function(OperatorKind2) { + OperatorKind2["Infix"] = "Infix"; + OperatorKind2["Postfix"] = "Postfix"; + OperatorKind2["Prefix"] = "Prefix"; + OperatorKind2["Ternary"] = "Ternary"; + })(OperatorKind || (exports2.OperatorKind = OperatorKind = {})); + } +}); + +// ../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/reflection/util.js +var require_util3 = __commonJS({ + "../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/reflection/util.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.util = void 0; + var ifaces_1 = require_ifaces2(); + var enums_1 = require_enums(); + var util2; + (function(util3) { + function assertNever(arg, error2) { + throw error2 ?? new Error(`${arg} is supposed to be of "never" type`); + } + util3.assertNever = assertNever; + function splitName(name) { + if (!name.includes("::")) + throw new Error(`Invalid FQN ${name}`); + const parts = name.split("::"); + return { + mod: parts.slice(0, -1).join("::"), + name: parts[parts.length - 1] + }; + } + util3.splitName = splitName; + function toIdent(name) { + if (name.includes("::")) { + throw new Error(`toIdent: invalid name ${name}`); + } + return name.replace(/([^a-zA-Z0-9_]+)/g, "_"); + } + util3.toIdent = toIdent; + util3.deduplicate = (args) => [...new Set(args)]; + util3.getFromArrayMap = (map2, id) => { + return map2[id] || []; + }; + util3.defineProperty = (obj, name, def) => { + return Object.defineProperty(obj, name, def); + }; + util3.defineGetter = (obj, name, getter) => { + return Object.defineProperty(obj, name, { + get: getter, + enumerable: true + }); + }; + util3.defineMethod = (obj, name, method) => { + obj[name] = method.bind(obj); + return obj; + }; + function flatMap(array2, callbackfn) { + return Array.prototype.concat(...array2.map(callbackfn)); + } + util3.flatMap = flatMap; + function omitDollarPrefixed(object) { + const obj = {}; + for (const key of Object.keys(object)) { + if (!key.startsWith("$")) { + obj[key] = object[key]; + } + } + return obj; + } + util3.omitDollarPrefixed = omitDollarPrefixed; + util3.parseCardinality = (cardinality) => { + switch (cardinality) { + case ifaces_1.Cardinality.MANY: + return enums_1.Cardinality.Many; + case ifaces_1.Cardinality.ONE: + return enums_1.Cardinality.One; + case ifaces_1.Cardinality.AT_MOST_ONE: + return enums_1.Cardinality.AtMostOne; + case ifaces_1.Cardinality.AT_LEAST_ONE: + return enums_1.Cardinality.AtLeastOne; + case ifaces_1.Cardinality.NO_RESULT: + return enums_1.Cardinality.Empty; + } + throw new Error(`Unexpected cardinality: ${cardinality}`); + }; + })(util2 || (exports2.util = util2 = {})); + } +}); + +// ../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/transaction.js +var require_transaction = __commonJS({ + "../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/transaction.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o3, m4, k3, k22) { + if (k22 === void 0) k22 = k3; + var desc = Object.getOwnPropertyDescriptor(m4, k3); + if (!desc || ("get" in desc ? !m4.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m4[k3]; + } }; + } + Object.defineProperty(o3, k22, desc); + } : function(o3, m4, k3, k22) { + if (k22 === void 0) k22 = k3; + o3[k22] = m4[k3]; + }); + var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? function(o3, v6) { + Object.defineProperty(o3, "default", { enumerable: true, value: v6 }); + } : function(o3, v6) { + o3["default"] = v6; + }); + var __importStar2 = exports2 && exports2.__importStar || function(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) { + for (var k3 in mod) if (k3 !== "default" && Object.prototype.hasOwnProperty.call(mod, k3)) __createBinding2(result, mod, k3); + } + __setModuleDefault2(result, mod); + return result; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.Transaction = exports2.TransactionImpl = exports2.TransactionState = void 0; + var errors = __importStar2(require_errors()); + var ifaces_1 = require_ifaces2(); + var options_1 = require_options(); + var TransactionState; + (function(TransactionState2) { + TransactionState2[TransactionState2["ACTIVE"] = 0] = "ACTIVE"; + TransactionState2[TransactionState2["COMMITTED"] = 1] = "COMMITTED"; + TransactionState2[TransactionState2["ROLLEDBACK"] = 2] = "ROLLEDBACK"; + TransactionState2[TransactionState2["FAILED"] = 3] = "FAILED"; + })(TransactionState || (exports2.TransactionState = TransactionState = {})); + var TransactionImpl = class _TransactionImpl { + _holder; + _rawConn; + _state; + _opInProgress; + constructor(holder, rawConn) { + this._holder = holder; + this._rawConn = rawConn; + this._state = TransactionState.ACTIVE; + this._opInProgress = false; + } + static async _startTransaction(holder, optimisticRepeatableRead) { + const rawConn = await holder._getConnection(); + await rawConn.resetState(); + const options = holder.options.transactionOptions; + const txOptions = []; + if (options.isolation === options_1.IsolationLevel.RepeatableRead) { + txOptions.push(`ISOLATION REPEATABLE READ`); + } else if (options.isolation === options_1.IsolationLevel.Serializable) { + txOptions.push(`ISOLATION SERIALIZABLE`); + } else if (options.isolation === options_1.IsolationLevel.PreferRepeatableRead) { + if (optimisticRepeatableRead) { + txOptions.push(`ISOLATION REPEATABLE READ`); + } else { + txOptions.push(`ISOLATION SERIALIZABLE`); + } + } else if (options.isolation != null) { + throw new errors.InterfaceError(`Invalid isolation level: ${options.isolation}`); + } + if (options.readonly !== void 0) { + txOptions.push(options.readonly ? "READ ONLY" : "READ WRITE"); + } + if (options.deferrable !== void 0) { + txOptions.push(options.deferrable ? "DEFERRABLE" : "NOT DEFERRABLE"); + } + await rawConn.fetch(`START TRANSACTION ${txOptions.join(", ")};`, void 0, ifaces_1.OutputFormat.NONE, ifaces_1.Cardinality.NO_RESULT, holder.options, true); + return new _TransactionImpl(holder, rawConn); + } + async _waitForConnAbort() { + await this._rawConn.connAbortWaiter.wait(); + const abortError = this._rawConn.getConnAbortError(); + if (abortError instanceof errors.GelError && abortError.cause instanceof errors.TransactionTimeoutError) { + throw abortError.cause; + } else { + throw abortError; + } + } + async _runOp(opname, op, errMessage) { + if (this._opInProgress) { + throw new errors.InterfaceError(errMessage ?? "Another query is in progress. Use the query methods on 'Client' to run queries concurrently."); + } + if (this._state !== TransactionState.ACTIVE) { + throw new errors.InterfaceError(`cannot ${opname}; the transaction is ${this._state === TransactionState.COMMITTED ? "already committed" : this._state === TransactionState.ROLLEDBACK ? "already rolled back" : "in error state"}`); + } + this._opInProgress = true; + try { + return await op(); + } finally { + this._opInProgress = false; + } + } + async _runFetchOp(opName, ...args) { + const { result, warnings } = await this._runOp(opName, () => this._rawConn.fetch(...args)); + if (warnings.length) { + this._holder.options.warningHandler(warnings); + } + return result; + } + async _commit() { + await this._runOp("commit", async () => { + await this._rawConn.fetch("COMMIT", void 0, ifaces_1.OutputFormat.NONE, ifaces_1.Cardinality.NO_RESULT, this._holder.options, true); + this._state = TransactionState.COMMITTED; + }, "A query is still in progress after transaction block has returned."); + } + async _rollback() { + await this._runOp("rollback", async () => { + await this._rawConn.fetch("ROLLBACK", void 0, ifaces_1.OutputFormat.NONE, ifaces_1.Cardinality.NO_RESULT, this._holder.options, true); + this._state = TransactionState.ROLLEDBACK; + }, "A query is still in progress after transaction block has returned."); + } + }; + exports2.TransactionImpl = TransactionImpl; + var Transaction = class _Transaction { + impl; + options; + constructor(impl, options) { + this.impl = impl; + this.options = options; + } + withSQLRowMode(mode) { + return new _Transaction(this.impl, this.options.withSQLRowMode(mode)); + } + async execute(query, args) { + await this.impl._runFetchOp("execute", query, args, ifaces_1.OutputFormat.NONE, ifaces_1.Cardinality.NO_RESULT, this.options); + } + async executeSQL(query, args) { + await this.impl._runFetchOp("execute", query, args, ifaces_1.OutputFormat.NONE, ifaces_1.Cardinality.NO_RESULT, this.options, false, ifaces_1.Language.SQL); + } + async query(query, args) { + return this.impl._runFetchOp("query", query, args, ifaces_1.OutputFormat.BINARY, ifaces_1.Cardinality.MANY, this.options); + } + async querySQL(query, args) { + return this.impl._runFetchOp("query", query, args, ifaces_1.OutputFormat.BINARY, ifaces_1.Cardinality.MANY, this.options, false, ifaces_1.Language.SQL); + } + async queryJSON(query, args) { + return this.impl._runFetchOp("queryJSON", query, args, ifaces_1.OutputFormat.JSON, ifaces_1.Cardinality.MANY, this.options); + } + async querySingle(query, args) { + return this.impl._runFetchOp("querySingle", query, args, ifaces_1.OutputFormat.BINARY, ifaces_1.Cardinality.AT_MOST_ONE, this.options); + } + async querySingleJSON(query, args) { + return this.impl._runFetchOp("querySingleJSON", query, args, ifaces_1.OutputFormat.JSON, ifaces_1.Cardinality.AT_MOST_ONE, this.options); + } + async queryRequired(query, args) { + return this.impl._runFetchOp("queryRequired", query, args, ifaces_1.OutputFormat.BINARY, ifaces_1.Cardinality.AT_LEAST_ONE, this.options); + } + async queryRequiredJSON(query, args) { + return this.impl._runFetchOp("queryRequiredJSON", query, args, ifaces_1.OutputFormat.JSON, ifaces_1.Cardinality.AT_LEAST_ONE, this.options); + } + async queryRequiredSingle(query, args) { + return this.impl._runFetchOp("queryRequiredSingle", query, args, ifaces_1.OutputFormat.BINARY, ifaces_1.Cardinality.ONE, this.options); + } + async queryRequiredSingleJSON(query, args) { + return this.impl._runFetchOp("queryRequiredSingleJSON", query, args, ifaces_1.OutputFormat.JSON, ifaces_1.Cardinality.ONE, this.options); + } + }; + exports2.Transaction = Transaction; + } +}); + +// ../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/baseClient.js +var require_baseClient = __commonJS({ + "../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/baseClient.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o3, m4, k3, k22) { + if (k22 === void 0) k22 = k3; + var desc = Object.getOwnPropertyDescriptor(m4, k3); + if (!desc || ("get" in desc ? !m4.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m4[k3]; + } }; + } + Object.defineProperty(o3, k22, desc); + } : function(o3, m4, k3, k22) { + if (k22 === void 0) k22 = k3; + o3[k22] = m4[k3]; + }); + var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? function(o3, v6) { + Object.defineProperty(o3, "default", { enumerable: true, value: v6 }); + } : function(o3, v6) { + o3["default"] = v6; + }); + var __importStar2 = exports2 && exports2.__importStar || function(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) { + for (var k3 in mod) if (k3 !== "default" && Object.prototype.hasOwnProperty.call(mod, k3)) __createBinding2(result, mod, k3); + } + __setModuleDefault2(result, mod); + return result; + }; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.Client = exports2.BaseClientPool = exports2.ClientConnectionHolder = void 0; + var registry_1 = require_registry(); + var errors = __importStar2(require_errors()); + var ifaces_1 = require_ifaces2(); + var options_1 = require_options(); + var event_1 = __importDefault2(require_event()); + var queues_1 = require_queues(); + var retry_1 = require_retry(); + var util_1 = require_util3(); + var transaction_1 = require_transaction(); + var utils_1 = require_utils2(); + var ClientConnectionHolder = class { + _pool; + _connection; + _options; + _inUse; + constructor(pool) { + this._pool = pool; + this._connection = null; + this._options = null; + this._inUse = null; + } + get options() { + return this._options ?? options_1.Options.defaults(); + } + async _getConnection() { + if (!this._connection || this._connection.isClosed()) { + this._connection = await this._pool.getNewConnection(); + } + return this._connection; + } + get connectionOpen() { + return this._connection !== null && !this._connection.isClosed(); + } + async acquire(options) { + if (this._inUse) { + throw new errors.InternalClientError("ClientConnectionHolder cannot be acquired, already in use"); + } + this._options = options; + this._inUse = new event_1.default(); + return this; + } + async release() { + var _a2; + if (this._inUse === null) { + throw new errors.ClientError("ClientConnectionHolder.release() called on a free connection holder"); + } + this._options = null; + await ((_a2 = this._connection) == null ? void 0 : _a2.resetState()); + if (!this._inUse.done) { + this._inUse.set(); + } + this._inUse = null; + this._pool.enqueue(this); + } + async _waitUntilReleasedAndClose() { + var _a2; + if (this._inUse) { + await this._inUse.wait(); + } + await ((_a2 = this._connection) == null ? void 0 : _a2.close()); + } + terminate() { + var _a2; + (_a2 = this._connection) == null ? void 0 : _a2.close(); + } + async transaction(action) { + let result; + let optimisticRepeatableRead = true; + for (let iteration = 0; ; ++iteration) { + const transaction = await transaction_1.TransactionImpl._startTransaction(this, optimisticRepeatableRead); + const clientTx = new transaction_1.Transaction(transaction, this.options); + let commitFailed = false; + try { + result = await Promise.race([ + action(clientTx), + transaction._waitForConnAbort() + ]); + try { + await transaction._commit(); + } catch (err2) { + commitFailed = true; + throw err2; + } + } catch (err2) { + try { + if (!commitFailed) { + await transaction._rollback(); + } + } catch (rollback_err) { + if (!(rollback_err instanceof errors.GelError)) { + throw rollback_err; + } + } + if (err2 instanceof errors.CapabilityError && err2.message && err2.message.includes("REPEATABLE READ") && optimisticRepeatableRead) { + optimisticRepeatableRead = false; + iteration--; + continue; + } + if (err2 instanceof errors.GelError && err2.hasTag(errors.SHOULD_RETRY) && !(commitFailed && err2 instanceof errors.ClientConnectionError)) { + const rule = this.options.retryOptions.getRuleForException(err2); + if (iteration + 1 >= rule.attempts) { + throw err2; + } + await (0, utils_1.sleep)(rule.backoff(iteration + 1)); + continue; + } + throw err2; + } + return result; + } + } + async retryingFetch(query, args, outputFormat, expectedCardinality, language = ifaces_1.Language.EDGEQL) { + for (let iteration = 0; ; ++iteration) { + const conn = await this._getConnection(); + try { + const { result, warnings } = await conn.fetch(query, args, outputFormat, expectedCardinality, this.options, false, language); + if (warnings.length) { + this.options.warningHandler(warnings); + } + return result; + } catch (err2) { + if (err2 instanceof errors.GelError && err2.hasTag(errors.SHOULD_RETRY) && (conn.getQueryCapabilities(query, outputFormat, expectedCardinality) === 0 || err2 instanceof errors.TransactionConflictError)) { + const rule = this.options.retryOptions.getRuleForException(err2); + if (iteration + 1 >= rule.attempts) { + throw err2; + } + await (0, utils_1.sleep)(rule.backoff(iteration + 1)); + continue; + } + throw err2; + } + } + } + async execute(query, args) { + await this.retryingFetch(query, args, ifaces_1.OutputFormat.NONE, ifaces_1.Cardinality.NO_RESULT); + } + async executeSQL(query, args) { + await this.retryingFetch(query, args, ifaces_1.OutputFormat.NONE, ifaces_1.Cardinality.NO_RESULT, ifaces_1.Language.SQL); + } + async query(query, args) { + return this.retryingFetch(query, args, ifaces_1.OutputFormat.BINARY, ifaces_1.Cardinality.MANY); + } + async querySQL(query, args) { + return this.retryingFetch(query, args, ifaces_1.OutputFormat.BINARY, ifaces_1.Cardinality.MANY, ifaces_1.Language.SQL); + } + async queryJSON(query, args) { + return this.retryingFetch(query, args, ifaces_1.OutputFormat.JSON, ifaces_1.Cardinality.MANY); + } + async querySingle(query, args) { + return this.retryingFetch(query, args, ifaces_1.OutputFormat.BINARY, ifaces_1.Cardinality.AT_MOST_ONE); + } + async querySingleJSON(query, args) { + return this.retryingFetch(query, args, ifaces_1.OutputFormat.JSON, ifaces_1.Cardinality.AT_MOST_ONE); + } + async queryRequired(query, args) { + return this.retryingFetch(query, args, ifaces_1.OutputFormat.BINARY, ifaces_1.Cardinality.AT_LEAST_ONE); + } + async queryRequiredJSON(query, args) { + return this.retryingFetch(query, args, ifaces_1.OutputFormat.JSON, ifaces_1.Cardinality.AT_LEAST_ONE); + } + async queryRequiredSingle(query, args) { + return this.retryingFetch(query, args, ifaces_1.OutputFormat.BINARY, ifaces_1.Cardinality.ONE); + } + async queryRequiredSingleJSON(query, args) { + return this.retryingFetch(query, args, ifaces_1.OutputFormat.JSON, ifaces_1.Cardinality.ONE); + } + }; + exports2.ClientConnectionHolder = ClientConnectionHolder; + var BaseClientPool = class { + _parseConnectArguments; + _closing; + _queue; + _holders; + _userConcurrency; + _suggestedConcurrency; + _connectConfig; + _codecsRegistry; + constructor(_parseConnectArguments, options) { + this._parseConnectArguments = _parseConnectArguments; + this.validateClientOptions(options); + this._codecsRegistry = new registry_1.CodecsRegistry(); + this._queue = new queues_1.LifoQueue(); + this._holders = []; + this._userConcurrency = options.concurrency ?? null; + this._suggestedConcurrency = null; + this._closing = null; + this._connectConfig = { ...options }; + this._resizeHolderPool(); + } + validateClientOptions(opts) { + if (opts.concurrency != null && (typeof opts.concurrency !== "number" || !Number.isInteger(opts.concurrency) || opts.concurrency < 0)) { + throw new errors.InterfaceError(`invalid 'concurrency' value: expected integer greater than 0 (got ${JSON.stringify(opts.concurrency)})`); + } + } + _getStats() { + return { + queueLength: this._queue.pending, + openConnections: this._holders.filter((holder) => holder.connectionOpen).length + }; + } + async ensureConnected() { + if (this._closing) { + throw new errors.InterfaceError(this._closing.done ? "The client is closed" : "The client is closing"); + } + if (this._getStats().openConnections > 0) { + return; + } + const connHolder = await this._queue.get(); + try { + await connHolder._getConnection(); + } finally { + this._queue.push(connHolder); + } + } + get _concurrency() { + return this._userConcurrency ?? this._suggestedConcurrency ?? 1; + } + _resizeHolderPool() { + const holdersDiff = this._concurrency - this._holders.length; + if (holdersDiff > 0) { + for (let i4 = 0; i4 < holdersDiff; i4++) { + const connectionHolder = new ClientConnectionHolder(this); + this._holders.push(connectionHolder); + this._queue.push(connectionHolder); + } + } else if (holdersDiff < 0) { + } + } + __normalizedConnectConfig = null; + _getNormalizedConnectConfig() { + return this.__normalizedConnectConfig ?? (this.__normalizedConnectConfig = this._parseConnectArguments(this._connectConfig)); + } + async resolveConnectionParams() { + const config = await this._getNormalizedConnectConfig(); + return config.connectionParams; + } + async getNewConnection() { + var _a2; + if ((_a2 = this._closing) == null ? void 0 : _a2.done) { + throw new errors.InterfaceError("The client is closed"); + } + const config = await this._getNormalizedConnectConfig(); + const connection = await (0, retry_1.retryingConnect)(this._connectWithTimeout, config, this._codecsRegistry); + const suggestedConcurrency = connection.serverSettings.suggested_pool_concurrency; + if (suggestedConcurrency && suggestedConcurrency !== this._suggestedConcurrency) { + this._suggestedConcurrency = suggestedConcurrency; + this._resizeHolderPool(); + } + return connection; + } + async acquireHolder(options) { + if (this._closing) { + throw new errors.InterfaceError(this._closing.done ? "The client is closed" : "The client is closing"); + } + const connectionHolder = await this._queue.get(); + try { + return await connectionHolder.acquire(options); + } catch (error2) { + this._queue.push(connectionHolder); + throw error2; + } + } + enqueue(holder) { + this._queue.push(holder); + } + async close() { + if (this._closing) { + return await this._closing.wait(); + } + this._closing = new event_1.default(); + this._queue.cancelAllPending(new errors.InterfaceError(`The client is closing`)); + const warningTimeoutId = setTimeout(() => { + console.warn("Client.close() is taking over 60 seconds to complete. Check if you have any unreleased connections left."); + }, 6e4); + try { + await Promise.all(this._holders.map((connectionHolder) => connectionHolder._waitUntilReleasedAndClose())); + } catch (err2) { + this._terminate(); + this._closing.setError(err2); + throw err2; + } finally { + clearTimeout(warningTimeoutId); + } + this._closing.set(); + } + _terminate() { + for (const connectionHolder of this._holders) { + connectionHolder.terminate(); + } + } + terminate() { + var _a2; + if ((_a2 = this._closing) == null ? void 0 : _a2.done) { + return; + } + this._queue.cancelAllPending(new errors.InterfaceError(`The client is closed`)); + this._terminate(); + if (!this._closing) { + this._closing = new event_1.default(); + this._closing.set(); + } + } + isClosed() { + return !!this._closing; + } + }; + exports2.BaseClientPool = BaseClientPool; + var Client = class _Client { + pool; + options; + constructor(pool, options) { + this.pool = pool; + this.options = options; + } + withTransactionOptions(opts) { + return new _Client(this.pool, this.options.withTransactionOptions(opts)); + } + withRetryOptions(opts) { + return new _Client(this.pool, this.options.withRetryOptions(opts)); + } + withModuleAliases(aliases) { + return new _Client(this.pool, this.options.withModuleAliases(aliases)); + } + withConfig(config) { + return new _Client(this.pool, this.options.withConfig(config)); + } + withCodecs(codecs) { + return new _Client(this.pool, this.options.withCodecs(codecs)); + } + withSQLRowMode(mode) { + return new _Client(this.pool, this.options.withSQLRowMode(mode)); + } + withGlobals(globals) { + return new _Client(this.pool, this.options.withGlobals(globals)); + } + withQueryTag(tag) { + return new _Client(this.pool, this.options.withQueryTag(tag)); + } + withWarningHandler(handler) { + return new _Client(this.pool, this.options.withWarningHandler(handler)); + } + async ensureConnected() { + await this.pool.ensureConnected(); + return this; + } + async resolveConnectionParams() { + return this.pool.resolveConnectionParams(); + } + isClosed() { + return this.pool.isClosed(); + } + async close() { + await this.pool.close(); + } + terminate() { + this.pool.terminate(); + } + async transaction(action) { + if (this.pool.isStateless) { + throw new errors.GelError(`cannot use 'transaction()' API on HTTP client`); + } + const holder = await this.pool.acquireHolder(this.options); + try { + return await holder.transaction(action); + } finally { + await holder.release(); + } + } + async execute(query, args) { + const holder = await this.pool.acquireHolder(this.options); + try { + return await holder.execute(query, args); + } finally { + await holder.release(); + } + } + async executeSQL(query, args) { + const holder = await this.pool.acquireHolder(this.options); + try { + return await holder.executeSQL(query, args); + } finally { + await holder.release(); + } + } + async query(query, args) { + const holder = await this.pool.acquireHolder(this.options); + try { + return await holder.query(query, args); + } finally { + await holder.release(); + } + } + async querySQL(query, args) { + const holder = await this.pool.acquireHolder(this.options); + try { + return await holder.querySQL(query, args); + } finally { + await holder.release(); + } + } + async queryJSON(query, args) { + const holder = await this.pool.acquireHolder(this.options); + try { + return await holder.queryJSON(query, args); + } finally { + await holder.release(); + } + } + async querySingle(query, args) { + const holder = await this.pool.acquireHolder(this.options); + try { + return await holder.querySingle(query, args); + } finally { + await holder.release(); + } + } + async querySingleJSON(query, args) { + const holder = await this.pool.acquireHolder(this.options); + try { + return await holder.querySingleJSON(query, args); + } finally { + await holder.release(); + } + } + async queryRequired(query, args) { + const holder = await this.pool.acquireHolder(this.options); + try { + return await holder.queryRequired(query, args); + } finally { + await holder.release(); + } + } + async queryRequiredJSON(query, args) { + const holder = await this.pool.acquireHolder(this.options); + try { + return await holder.queryRequiredJSON(query, args); + } finally { + await holder.release(); + } + } + async queryRequiredSingle(query, args) { + const holder = await this.pool.acquireHolder(this.options); + try { + return await holder.queryRequiredSingle(query, args); + } finally { + await holder.release(); + } + } + async queryRequiredSingleJSON(query, args) { + const holder = await this.pool.acquireHolder(this.options); + try { + return await holder.queryRequiredSingleJSON(query, args); + } finally { + await holder.release(); + } + } + async describe(query) { + const holder = await this.pool.acquireHolder(this.options); + try { + const cxn = await holder._getConnection(); + const result = await cxn._parse(ifaces_1.Language.EDGEQL, query, ifaces_1.OutputFormat.BINARY, ifaces_1.Cardinality.MANY, this.options); + const cardinality = util_1.util.parseCardinality(result[0]); + return { + in: result[1], + out: result[2], + cardinality, + capabilities: result[3] + }; + } finally { + await holder.release(); + } + } + async parse(query) { + return await this.describe(query); + } + }; + exports2.Client = Client; + } +}); + +// ../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/systemUtils.js +var require_systemUtils = __commonJS({ + "../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/systemUtils.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o3, m4, k3, k22) { + if (k22 === void 0) k22 = k3; + var desc = Object.getOwnPropertyDescriptor(m4, k3); + if (!desc || ("get" in desc ? !m4.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m4[k3]; + } }; + } + Object.defineProperty(o3, k22, desc); + } : function(o3, m4, k3, k22) { + if (k22 === void 0) k22 = k3; + o3[k22] = m4[k3]; + }); + var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? function(o3, v6) { + Object.defineProperty(o3, "default", { enumerable: true, value: v6 }); + } : function(o3, v6) { + o3["default"] = v6; + }); + var __importStar2 = exports2 && exports2.__importStar || function(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) { + for (var k3 in mod) if (k3 !== "default" && Object.prototype.hasOwnProperty.call(mod, k3)) __createBinding2(result, mod, k3); + } + __setModuleDefault2(result, mod); + return result; + }; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.readFileUtf8 = readFileUtf8; + exports2.hasFSReadPermission = hasFSReadPermission; + exports2.hashSHA1toHex = hashSHA1toHex; + exports2.walk = walk; + exports2.exists = exists; + exports2.input = input; + var crypto7 = __importStar2(require("node:crypto")); + var node_fs_1 = require("node:fs"); + var node_path_1 = __importDefault2(require("node:path")); + var node_process_1 = __importDefault2(require("node:process")); + var readline = __importStar2(require("node:readline")); + var node_stream_1 = require("node:stream"); + async function readFileUtf8(...pathParts) { + return await node_fs_1.promises.readFile(node_path_1.default.join(...pathParts), { encoding: "utf8" }); + } + function hasFSReadPermission() { + if (typeof Deno !== "undefined") { + return Deno.permissions.querySync({ name: "read" }).state === "granted"; + } + return true; + } + function hashSHA1toHex(msg) { + return crypto7.createHash("sha1").update(msg).digest("hex"); + } + async function walk(dir, params) { + const { match: match2, skip = [] } = params || {}; + try { + await node_fs_1.promises.access(dir); + } catch (_err) { + return []; + } + const dirents = await node_fs_1.promises.readdir(dir, { withFileTypes: true }); + const files = await Promise.all(dirents.map((dirent) => { + const fspath = node_path_1.default.resolve(dir, dirent.name); + if (skip) { + if (skip.some((re) => re.test(fspath))) { + return []; + } + } + if (dirent.isDirectory()) { + return walk(fspath, params); + } + if (match2) { + if (!match2.some((re) => re.test(fspath))) { + return []; + } + } + return [fspath]; + })); + return Array.prototype.concat(...files); + } + async function exists(filepath) { + try { + await node_fs_1.promises.access(filepath); + return true; + } catch { + return false; + } + } + async function input(message, params) { + let silent = false; + const output = (params == null ? void 0 : params.silent) ? new node_stream_1.Writable({ + write(chunk, encoding, callback) { + if (!silent) + node_process_1.default.stdout.write(chunk, encoding); + callback(); + } + }) : node_process_1.default.stdout; + const rl = readline.createInterface({ + input: node_process_1.default.stdin, + output + }); + return new Promise((resolve2) => { + rl.question(message, (val2) => { + rl.close(); + resolve2(val2); + }); + silent = true; + }); + } + } +}); + +// ../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/platform.js +var require_platform = __commonJS({ + "../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/platform.js"(exports2) { + "use strict"; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.isWindows = void 0; + exports2.searchConfigDir = searchConfigDir; + var node_path_1 = __importDefault2(require("node:path")); + var node_os_1 = __importDefault2(require("node:os")); + var systemUtils_1 = require_systemUtils(); + exports2.isWindows = process.platform === "win32"; + var homeDir = node_os_1.default.homedir; + var _configDir; + if (process.platform === "darwin") { + _configDir = () => { + return node_path_1.default.join(homeDir(), "Library", "Application Support", "edgedb"); + }; + } else if (process.platform === "win32") { + _configDir = () => { + const localAppDataDir = process.env.LOCALAPPDATA ?? node_path_1.default.join(homeDir(), "AppData", "Local"); + return node_path_1.default.join(localAppDataDir, "EdgeDB", "config"); + }; + } else { + _configDir = () => { + let xdgConfigDir = process.env.XDG_CONFIG_HOME; + if (!xdgConfigDir || !node_path_1.default.isAbsolute(xdgConfigDir)) { + xdgConfigDir = node_path_1.default.join(homeDir(), ".config"); + } + return node_path_1.default.join(xdgConfigDir, "edgedb"); + }; + } + async function searchConfigDir(...configPath) { + const filePath = node_path_1.default.join(_configDir(), ...configPath); + if (await (0, systemUtils_1.exists)(filePath)) { + return filePath; + } + const fallbackPath = node_path_1.default.join(homeDir(), ".edgedb", ...configPath); + if (await (0, systemUtils_1.exists)(fallbackPath)) { + return fallbackPath; + } + return filePath; + } + } +}); + +// ../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/credentials.js +var require_credentials = __commonJS({ + "../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/credentials.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.getCredentialsPath = getCredentialsPath; + exports2.readCredentialsFile = readCredentialsFile; + exports2.validateCredentials = validateCredentials; + var conUtils_1 = require_conUtils(); + var errors_1 = require_errors(); + async function getCredentialsPath(instanceName, serverUtils) { + return serverUtils.searchConfigDir("credentials", instanceName + ".json"); + } + async function readCredentialsFile(file, serverUtils) { + try { + const data = await serverUtils.readFileUtf8(file); + return validateCredentials(JSON.parse(data)); + } catch (e4) { + throw new errors_1.InterfaceError(`cannot read credentials file ${file}: ${e4}`); + } + } + function validateCredentials(data) { + const port = data.port; + if (port != null && (typeof port !== "number" || port < 1 || port > 65535)) { + throw new errors_1.InterfaceError("invalid `port` value"); + } + const user = data.user; + if (user == null) { + throw new errors_1.InterfaceError("`user` key is required"); + } + if (typeof user !== "string") { + throw new errors_1.InterfaceError("`user` must be string"); + } + const result = { user, port }; + const host = data.host; + if (host != null) { + if (typeof host !== "string") { + throw new errors_1.InterfaceError("`host` must be string"); + } + result.host = host; + } + const database = data.database; + if (database != null) { + if (typeof database !== "string") { + throw new errors_1.InterfaceError("`database` must be string"); + } + result.database = database; + } + const branch = data.branch; + if (branch != null) { + if (typeof branch !== "string") { + throw new errors_1.InterfaceError("`branch` must be string"); + } + if (database != null && branch !== database) { + throw new errors_1.InterfaceError("`database` and `branch` cannot both be set"); + } + result.branch = branch; + } + const password = data.password; + if (password != null) { + if (typeof password !== "string") { + throw new errors_1.InterfaceError("`password` must be string"); + } + result.password = password; + } + const caData = data.tls_ca; + if (caData != null) { + if (typeof caData !== "string") { + throw new errors_1.InterfaceError("`tls_ca` must be string"); + } + result.tlsCAData = caData; + } + const certData = data.tls_cert_data; + if (certData != null) { + if (typeof certData !== "string") { + throw new errors_1.InterfaceError("`tls_cert_data` must be string"); + } + if (caData != null && certData !== caData) { + throw new errors_1.InterfaceError(`both 'tls_ca' and 'tls_cert_data' are defined, and are not in agreement`); + } + result.tlsCAData = certData; + } + let verifyHostname = data.tls_verify_hostname; + const tlsSecurity = data.tls_security; + if (verifyHostname != null) { + if (typeof verifyHostname === "boolean") { + verifyHostname = verifyHostname ? "strict" : "no_host_verification"; + } else { + throw new errors_1.InterfaceError("`tls_verify_hostname` must be boolean"); + } + } + if (tlsSecurity != null && (typeof tlsSecurity !== "string" || !conUtils_1.validTlsSecurityValues.includes(tlsSecurity))) { + throw new errors_1.InterfaceError(`\`tls_security\` must be one of ${conUtils_1.validTlsSecurityValues.map((val2) => `"${val2}"`).join(", ")}`); + } + if (verifyHostname && tlsSecurity && verifyHostname !== tlsSecurity && !(verifyHostname === "no_host_verification" && tlsSecurity === "insecure")) { + throw new errors_1.InterfaceError(`both 'tls_security' and 'tls_verify_hostname' are defined, and are not in agreement`); + } + if (tlsSecurity || verifyHostname) { + result.tlsSecurity = tlsSecurity ?? verifyHostname; + } + return result; + } + } +}); + +// ../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/primitives/crcHqx.js +var require_crcHqx = __commonJS({ + "../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/primitives/crcHqx.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.crcHqx = crcHqx; + var crctabHqx = new Uint16Array([ + 0, + 4129, + 8258, + 12387, + 16516, + 20645, + 24774, + 28903, + 33032, + 37161, + 41290, + 45419, + 49548, + 53677, + 57806, + 61935, + 4657, + 528, + 12915, + 8786, + 21173, + 17044, + 29431, + 25302, + 37689, + 33560, + 45947, + 41818, + 54205, + 50076, + 62463, + 58334, + 9314, + 13379, + 1056, + 5121, + 25830, + 29895, + 17572, + 21637, + 42346, + 46411, + 34088, + 38153, + 58862, + 62927, + 50604, + 54669, + 13907, + 9842, + 5649, + 1584, + 30423, + 26358, + 22165, + 18100, + 46939, + 42874, + 38681, + 34616, + 63455, + 59390, + 55197, + 51132, + 18628, + 22757, + 26758, + 30887, + 2112, + 6241, + 10242, + 14371, + 51660, + 55789, + 59790, + 63919, + 35144, + 39273, + 43274, + 47403, + 23285, + 19156, + 31415, + 27286, + 6769, + 2640, + 14899, + 10770, + 56317, + 52188, + 64447, + 60318, + 39801, + 35672, + 47931, + 43802, + 27814, + 31879, + 19684, + 23749, + 11298, + 15363, + 3168, + 7233, + 60846, + 64911, + 52716, + 56781, + 44330, + 48395, + 36200, + 40265, + 32407, + 28342, + 24277, + 20212, + 15891, + 11826, + 7761, + 3696, + 65439, + 61374, + 57309, + 53244, + 48923, + 44858, + 40793, + 36728, + 37256, + 33193, + 45514, + 41451, + 53516, + 49453, + 61774, + 57711, + 4224, + 161, + 12482, + 8419, + 20484, + 16421, + 28742, + 24679, + 33721, + 37784, + 41979, + 46042, + 49981, + 54044, + 58239, + 62302, + 689, + 4752, + 8947, + 13010, + 16949, + 21012, + 25207, + 29270, + 46570, + 42443, + 38312, + 34185, + 62830, + 58703, + 54572, + 50445, + 13538, + 9411, + 5280, + 1153, + 29798, + 25671, + 21540, + 17413, + 42971, + 47098, + 34713, + 38840, + 59231, + 63358, + 50973, + 55100, + 9939, + 14066, + 1681, + 5808, + 26199, + 30326, + 17941, + 22068, + 55628, + 51565, + 63758, + 59695, + 39368, + 35305, + 47498, + 43435, + 22596, + 18533, + 30726, + 26663, + 6336, + 2273, + 14466, + 10403, + 52093, + 56156, + 60223, + 64286, + 35833, + 39896, + 43963, + 48026, + 19061, + 23124, + 27191, + 31254, + 2801, + 6864, + 10931, + 14994, + 64814, + 60687, + 56684, + 52557, + 48554, + 44427, + 40424, + 36297, + 31782, + 27655, + 23652, + 19525, + 15522, + 11395, + 7392, + 3265, + 61215, + 65342, + 53085, + 57212, + 44955, + 49082, + 36825, + 40952, + 28183, + 32310, + 20053, + 24180, + 11923, + 16050, + 3793, + 7920 + ]); + function crcHqx(data, crc) { + crc &= 65535; + const len = data.length; + let i4 = 0; + while (i4 < len) { + crc = crc << 8 & 65280 ^ crctabHqx[crc >> 8 ^ data[i4++]]; + } + return crc; + } + } +}); + +// ../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/conUtils.js +var require_conUtils = __commonJS({ + "../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/conUtils.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o3, m4, k3, k22) { + if (k22 === void 0) k22 = k3; + var desc = Object.getOwnPropertyDescriptor(m4, k3); + if (!desc || ("get" in desc ? !m4.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m4[k3]; + } }; + } + Object.defineProperty(o3, k22, desc); + } : function(o3, m4, k3, k22) { + if (k22 === void 0) k22 = k3; + o3[k22] = m4[k3]; + }); + var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? function(o3, v6) { + Object.defineProperty(o3, "default", { enumerable: true, value: v6 }); + } : function(o3, v6) { + o3["default"] = v6; + }); + var __importStar2 = exports2 && exports2.__importStar || function(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) { + for (var k3 in mod) if (k3 !== "default" && Object.prototype.hasOwnProperty.call(mod, k3)) __createBinding2(result, mod, k3); + } + __setModuleDefault2(result, mod); + return result; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.ResolvedConnectConfig = exports2.validTlsSecurityValues = void 0; + exports2.isValidTlsSecurityValue = isValidTlsSecurityValue; + exports2.getConnectArgumentsParser = getConnectArgumentsParser; + exports2.parseDuration = parseDuration; + var errors = __importStar2(require_errors()); + var credentials_1 = require_credentials(); + var datetime_1 = require_datetime(); + var datetime_2 = require_datetime2(); + var errors_1 = require_errors(); + var buffer_1 = require_buffer(); + var crcHqx_1 = require_crcHqx(); + var DOMAIN_NAME_MAX_LEN = 63; + exports2.validTlsSecurityValues = [ + "insecure", + "no_host_verification", + "strict", + "default" + ]; + function isValidTlsSecurityValue(candidate) { + return typeof candidate === "string" && exports2.validTlsSecurityValues.includes(candidate); + } + function getConnectArgumentsParser(utils) { + return async (opts) => { + return { + ...await parseConnectDsnAndArgs(opts, utils), + connectTimeout: opts.timeout, + logging: opts.logging ?? true + }; + }; + } + function getEnv(envName, _required = false) { + const gelEnv = envName; + const edgedbEnv = envName.replace(/^GEL_/, "EDGEDB_"); + const gelValue = process.env[gelEnv]; + const edgedbValue = process.env[edgedbEnv]; + if (gelValue !== void 0 && edgedbValue !== void 0) { + console.warn(`Both GEL_w+ and EDGEDB_w+ are set; EDGEDB_w+ will be ignored`); + } + return gelValue ?? edgedbValue; + } + var ResolvedConnectConfig = class { + _host = null; + _hostSource = null; + _port = null; + _portSource = null; + _database = null; + _databaseSource = null; + _branch = null; + _branchSource = null; + _user = null; + _userSource = null; + _password = null; + _passwordSource = null; + _secretKey = null; + _secretKeySource = null; + _cloudProfile = null; + _cloudProfileSource = null; + _tlsCAData = null; + _tlsCADataSource = null; + _tlsSecurity = null; + _tlsSecuritySource = null; + _tlsServerName = null; + _tlsServerNameSource = null; + _waitUntilAvailable = null; + _waitUntilAvailableSource = null; + serverSettings = {}; + constructor() { + this.setHost = this.setHost.bind(this); + this.setPort = this.setPort.bind(this); + this.setDatabase = this.setDatabase.bind(this); + this.setBranch = this.setBranch.bind(this); + this.setUser = this.setUser.bind(this); + this.setPassword = this.setPassword.bind(this); + this.setSecretKey = this.setSecretKey.bind(this); + this.setTlsCAData = this.setTlsCAData.bind(this); + this.setTlsCAFile = this.setTlsCAFile.bind(this); + this.setTlsServerName = this.setTlsServerName.bind(this); + this.setTlsSecurity = this.setTlsSecurity.bind(this); + this.setWaitUntilAvailable = this.setWaitUntilAvailable.bind(this); + } + _setParam(param, value, source, validator2) { + if (this[`_${param}`] === null) { + this[`_${param}Source`] = source; + if (value !== null) { + this[`_${param}`] = validator2 ? validator2(value) : value; + return true; + } + } + return false; + } + async _setParamAsync(param, value, source, validator2) { + if (this[`_${param}`] === null) { + this[`_${param}Source`] = source; + if (value !== null) { + this[`_${param}`] = validator2 ? await validator2(value) : value; + return true; + } + } + return false; + } + setHost(host, source) { + return this._setParam("host", host, source, validateHost); + } + setPort(port, source) { + return this._setParam("port", port, source, parseValidatePort); + } + setDatabase(database, source) { + return this._setParam("database", database, source, (db) => { + if (db === "") { + throw new errors_1.InterfaceError(`invalid database name: '${db}'`); + } + return db; + }); + } + setBranch(branch, source) { + return this._setParam("branch", branch, source, (branchName) => { + if (branchName === "") { + throw new errors_1.InterfaceError(`invalid branch name: '${branchName}'`); + } + return branchName; + }); + } + setUser(user, source) { + return this._setParam("user", user, source, (_user) => { + if (_user === "") { + throw new errors_1.InterfaceError(`invalid user name: '${_user}'`); + } + return _user; + }); + } + setPassword(password, source) { + return this._setParam("password", password, source); + } + setSecretKey(secretKey, source) { + return this._setParam("secretKey", secretKey, source); + } + setCloudProfile(cloudProfile, source) { + return this._setParam("cloudProfile", cloudProfile, source); + } + setTlsCAData(caData, source) { + return this._setParam("tlsCAData", caData, source); + } + setTlsCAFile(caFile, source, readFile2) { + return this._setParamAsync("tlsCAData", caFile, source, (caFilePath) => readFile2(caFilePath)); + } + setTlsServerName(serverName, source) { + return this._setParam("tlsServerName", serverName, source, validateHost); + } + setTlsSecurity(tlsSecurity, source) { + return this._setParam("tlsSecurity", tlsSecurity, source, (_tlsSecurity) => { + if (!exports2.validTlsSecurityValues.includes(_tlsSecurity)) { + throw new errors_1.InterfaceError(`invalid 'tlsSecurity' value: '${_tlsSecurity}', must be one of ${exports2.validTlsSecurityValues.map((val2) => `'${val2}'`).join(", ")}`); + } + const clientSecurity = getEnv("GEL_CLIENT_SECURITY"); + if (clientSecurity !== void 0) { + if (!["default", "insecure_dev_mode", "strict"].includes(clientSecurity)) { + throw new errors_1.InterfaceError(`invalid GEL_CLIENT_SECURITY value: '${clientSecurity}', must be one of 'default', 'insecure_dev_mode' or 'strict'`); + } + if (clientSecurity === "insecure_dev_mode") { + if (_tlsSecurity === "default") { + _tlsSecurity = "insecure"; + } + } else if (clientSecurity === "strict") { + if (_tlsSecurity === "insecure" || _tlsSecurity === "no_host_verification") { + throw new errors_1.InterfaceError(`'tlsSecurity' value (${_tlsSecurity}) conflicts with GEL_CLIENT_SECURITY value (${clientSecurity}), 'tlsSecurity' value cannot be lower than security level set by GEL_CLIENT_SECURITY`); + } + _tlsSecurity = "strict"; + } + } + return _tlsSecurity; + }); + } + setWaitUntilAvailable(duration, source) { + return this._setParam("waitUntilAvailable", duration, source, parseDuration); + } + addServerSettings(settings) { + this.serverSettings = { + ...settings, + ...this.serverSettings + }; + } + get address() { + return [this._host ?? "localhost", this._port ?? 5656]; + } + get database() { + return this._database ?? this._branch ?? "edgedb"; + } + get branch() { + return this._branch ?? this._database ?? "__default__"; + } + get user() { + return this._user ?? "edgedb"; + } + get password() { + return this._password ?? void 0; + } + get secretKey() { + return this._secretKey ?? void 0; + } + get cloudProfile() { + return this._cloudProfile ?? "default"; + } + get tlsServerName() { + return this._tlsServerName ?? void 0; + } + get tlsSecurity() { + return this._tlsSecurity && this._tlsSecurity !== "default" ? this._tlsSecurity : this._tlsCAData !== null ? "no_host_verification" : "strict"; + } + get waitUntilAvailable() { + return this._waitUntilAvailable ?? 3e4; + } + explainConfig() { + const output = [ + `Parameter Value Source`, + `--------- ----- ------` + ]; + const outputLine = (param, val2, rawVal, source) => { + const isDefault = rawVal === null; + const maxValLength = 40 - (isDefault ? 10 : 0); + let value = String(val2); + if (value.length > maxValLength) { + value = value.slice(0, maxValLength - 3) + "..."; + } + output.push(param.padEnd(19, " ") + (value + (isDefault ? " (default)" : "")).padEnd(42, " ") + (source ?? "default")); + }; + outputLine("host", this.address[0], this._host, this._hostSource); + outputLine("port", this.address[1], this._port, this._portSource); + outputLine("database", this.database, this._database, this._databaseSource); + outputLine("branch", this.branch, this._branch, this._branchSource); + outputLine("user", this.user, this._user, this._userSource); + outputLine("password", this.password && this.password.slice(0, 3).padEnd(this.password.length, "*"), this._password, this._passwordSource); + outputLine("tlsCAData", this._tlsCAData && this._tlsCAData.replace(/\r\n?|\n/, ""), this._tlsCAData, this._tlsCADataSource); + outputLine("tlsSecurity", this.tlsSecurity, this._tlsSecurity, this._tlsSecuritySource); + outputLine("tlsServerName", this.tlsServerName, this._tlsServerName, this._tlsServerNameSource); + outputLine("waitUntilAvailable", this.waitUntilAvailable, this._waitUntilAvailable, this._waitUntilAvailableSource); + return output.join("\n"); + } + }; + exports2.ResolvedConnectConfig = ResolvedConnectConfig; + function parseValidatePort(port) { + let parsedPort; + if (typeof port === "string") { + if (!/^\d*$/.test(port)) { + throw new errors_1.InterfaceError(`invalid port: ${port}`); + } + parsedPort = parseInt(port, 10); + if (Number.isNaN(parsedPort)) { + throw new errors_1.InterfaceError(`invalid port: ${port}`); + } + } else { + parsedPort = port; + } + if (!Number.isInteger(parsedPort) || parsedPort < 1 || parsedPort > 65535) { + throw new errors_1.InterfaceError(`invalid port: ${port}`); + } + return parsedPort; + } + function validateHost(host) { + if (host.includes("/")) { + throw new errors_1.InterfaceError(`unix socket paths not supported`); + } + if (!host.length || host.includes(",")) { + throw new errors_1.InterfaceError(`invalid host: '${host}'`); + } + return host; + } + function parseDuration(duration) { + if (typeof duration === "number") { + if (duration < 0) { + throw new errors_1.InterfaceError("invalid waitUntilAvailable duration, must be >= 0"); + } + return duration; + } + if (typeof duration === "string") { + if (duration.startsWith("P")) { + duration = datetime_1.Duration.from(duration); + } else { + return (0, datetime_1.parseHumanDurationString)(duration); + } + } + if (duration instanceof datetime_1.Duration) { + const invalidField = (0, datetime_2.checkValidGelDuration)(duration); + if (invalidField) { + throw new errors_1.InterfaceError(`invalid waitUntilAvailable duration, cannot have a '${invalidField}' value`); + } + if (duration.sign < 0) { + throw new errors_1.InterfaceError("invalid waitUntilAvailable duration, must be >= 0"); + } + return duration.milliseconds + duration.seconds * 1e3 + duration.minutes * 6e4 + duration.hours * 36e5; + } + throw new errors_1.InterfaceError(`invalid duration`); + } + async function parseConnectDsnAndArgs(config, serverUtils) { + const resolvedConfig = new ResolvedConnectConfig(); + let fromEnv = false; + let fromProject = false; + const [dsn, instanceName] = config.instanceName == null && config.dsn != null && !/^[a-z]+:\/\//i.test(config.dsn) ? [void 0, config.dsn] : [config.dsn, config.instanceName]; + let { hasCompoundOptions } = await resolveConfigOptions(resolvedConfig, { + dsn, + instanceName, + credentials: config.credentials, + credentialsFile: config.credentialsFile, + host: config.host, + port: config.port, + database: config.database, + branch: config.branch, + user: config.user, + password: config.password, + secretKey: config.secretKey, + cloudProfile: getEnv("GEL_CLOUD_PROFILE"), + tlsCA: config.tlsCA, + tlsCAFile: config.tlsCAFile, + tlsServerName: config.tlsServerName, + tlsSecurity: config.tlsSecurity, + serverSettings: config.serverSettings, + waitUntilAvailable: config.waitUntilAvailable + }, { + dsn: `'dsnOrInstanceName' option (parsed as dsn)`, + instanceName: config.instanceName != null ? `'instanceName' option` : `'dsnOrInstanceName' option (parsed as instance name)`, + credentials: `'credentials' option`, + credentialsFile: `'credentialsFile' option`, + host: `'host' option`, + port: `'port' option`, + database: `'database' option`, + branch: `'branch' option`, + user: `'user' option`, + password: `'password' option`, + secretKey: `'secretKey' option`, + cloudProfile: `'GEL_CLOUD_PROFILE' environment variable`, + tlsCA: `'tlsCA' option`, + tlsCAFile: `'tlsCAFile' option`, + tlsSecurity: `'tlsSecurity' option`, + tlsServerName: `'tlsServerName' option`, + serverSettings: `'serverSettings' option`, + waitUntilAvailable: `'waitUntilAvailable' option` + }, `Cannot have more than one of the following connection options: 'dsn', 'instanceName', 'credentials', 'credentialsFile' or 'host'/'port'`, serverUtils); + if (!hasCompoundOptions) { + let port = getEnv("GEL_PORT"); + if (resolvedConfig._port === null && (port == null ? void 0 : port.startsWith("tcp://"))) { + console.warn(`GEL_PORT in 'tcp://host:port' format, so will be ignored`); + port = void 0; + } + ({ hasCompoundOptions, anyOptionsUsed: fromEnv } = await resolveConfigOptions(resolvedConfig, { + dsn: getEnv("GEL_DSN"), + instanceName: getEnv("GEL_INSTANCE"), + credentials: getEnv("GEL_CREDENTIALS"), + credentialsFile: getEnv("GEL_CREDENTIALS_FILE"), + host: getEnv("GEL_HOST"), + port, + database: getEnv("GEL_DATABASE"), + branch: getEnv("GEL_BRANCH"), + user: getEnv("GEL_USER"), + password: getEnv("GEL_PASSWORD"), + secretKey: getEnv("GEL_SECRET_KEY"), + tlsCA: getEnv("GEL_TLS_CA"), + tlsCAFile: getEnv("GEL_TLS_CA_FILE"), + tlsServerName: getEnv("GEL_TLS_SERVER_NAME"), + tlsSecurity: getEnv("GEL_CLIENT_TLS_SECURITY"), + waitUntilAvailable: getEnv("GEL_WAIT_UNTIL_AVAILABLE") + }, { + dsn: `'GEL_DSN' environment variable`, + instanceName: `'GEL_INSTANCE' environment variable`, + credentials: `'GEL_CREDENTIALS' environment variable`, + credentialsFile: `'GEL_CREDENTIALS_FILE' environment variable`, + host: `'GEL_HOST' environment variable`, + port: `'GEL_PORT' environment variable`, + database: `'GEL_DATABASE' environment variable`, + branch: `'GEL_BRANCH' environment variable`, + user: `'GEL_USER' environment variable`, + password: `'GEL_PASSWORD' environment variable`, + secretKey: `'GEL_SECRET_KEY' environment variable`, + tlsCA: `'GEL_TLS_CA' environment variable`, + tlsCAFile: `'GEL_TLS_CA_FILE' environment variable`, + tlsServerName: `'GEL_TLS_SERVER_NAME' environment variable`, + tlsSecurity: `'GEL_CLIENT_TLS_SECURITY' environment variable`, + waitUntilAvailable: `'GEL_WAIT_UNTIL_AVAILABLE' environment variable` + }, `Cannot have more than one of the following connection environment variables: 'GEL_DSN', 'GEL_INSTANCE', 'GEL_CREDENTIALS', 'GEL_CREDENTIALS_FILE' or 'GEL_HOST'`, serverUtils)); + } + if (!hasCompoundOptions) { + if (!serverUtils) { + throw new errors.ClientConnectionError("no connection options specified either by arguments to `createClient` API or environment variables; also cannot resolve from project config file in browser (or edge runtime) environment"); + } + const projectDir = await (serverUtils == null ? void 0 : serverUtils.findProjectDir()); + if (!projectDir) { + throw new errors.ClientConnectionError("no project config file found and no connection options specified either via arguments to `createClient()` API or via environment variables GEL_HOST, GEL_INSTANCE, GEL_DSN, GEL_CREDENTIALS or GEL_CREDENTIALS_FILE"); + } + const stashDir = await serverUtils.findStashPath(projectDir); + const instName = await serverUtils.readFileUtf8(stashDir, "instance-name").then((name) => name.trim()).catch(() => null); + if (instName !== null) { + const [cloudProfile, _database, branch] = await Promise.all([ + serverUtils.readFileUtf8(stashDir, "cloud-profile").then((name) => name.trim()).catch(() => void 0), + serverUtils.readFileUtf8(stashDir, "database").then((name) => name.trim()).catch(() => void 0), + serverUtils.readFileUtf8(stashDir, "branch").then((name) => name.trim()).catch(() => void 0) + ]); + let database = _database; + if (database !== void 0 && branch !== void 0) { + if (database !== branch) { + throw new errors_1.InterfaceError("Both database and branch exist in the config dir and don't match."); + } else { + database = void 0; + } + } + await resolveConfigOptions(resolvedConfig, { instanceName: instName, cloudProfile, database, branch }, { + instanceName: `project linked instance ('${instName}')`, + cloudProfile: `project defined cloud instance ('${cloudProfile}')`, + database: `project default database`, + branch: `project default branch` + }, "", serverUtils); + fromProject = true; + } else { + throw new errors.ClientConnectionError("Found project config file but the project is not initialized. Run 'gel project init'."); + } + } + resolvedConfig.setTlsSecurity("default", "default"); + return { + connectionParams: resolvedConfig, + inProject: async () => await (serverUtils == null ? void 0 : serverUtils.findProjectDir(false)) != null, + fromEnv, + fromProject + }; + } + async function resolveConfigOptions(resolvedConfig, config, sources, compoundParamsError, serverUtils) { + var _a2; + let anyOptionsUsed = false; + const readFile2 = (serverUtils == null ? void 0 : serverUtils.readFileUtf8) ?? ((fn) => { + throw new errors_1.InterfaceError(`cannot read file "${fn}" in browser (or edge runtime) environment`); + }); + if (config.tlsCA != null && config.tlsCAFile != null) { + throw new errors_1.InterfaceError(`Cannot specify both ${sources.tlsCA} and ${sources.tlsCAFile}`); + } + if (config.database != null) { + if (config.branch != null) { + throw new errors_1.InterfaceError(`${sources.database} and ${sources.branch} are mutually exclusive`); + } + if (resolvedConfig._branch == null) { + anyOptionsUsed = resolvedConfig.setDatabase(config.database ?? null, sources.database) || anyOptionsUsed; + } + } + if (config.branch != null) { + if (resolvedConfig._database == null) { + anyOptionsUsed = resolvedConfig.setBranch(config.branch ?? null, sources.branch) || anyOptionsUsed; + } + } + anyOptionsUsed = resolvedConfig.setUser(config.user ?? null, sources.user) || anyOptionsUsed; + anyOptionsUsed = resolvedConfig.setPassword(config.password ?? null, sources.password) || anyOptionsUsed; + anyOptionsUsed = resolvedConfig.setSecretKey(config.secretKey ?? null, sources.secretKey) || anyOptionsUsed; + anyOptionsUsed = resolvedConfig.setCloudProfile(config.cloudProfile ?? null, sources.cloudProfile) || anyOptionsUsed; + anyOptionsUsed = resolvedConfig.setTlsCAData(config.tlsCA ?? null, sources.tlsCA) || anyOptionsUsed; + anyOptionsUsed = await resolvedConfig.setTlsCAFile(config.tlsCAFile ?? null, sources.tlsCAFile, readFile2) || anyOptionsUsed; + anyOptionsUsed = resolvedConfig.setTlsServerName(config.tlsServerName ?? null, sources.tlsServerName) || anyOptionsUsed; + anyOptionsUsed = resolvedConfig.setTlsSecurity(config.tlsSecurity ?? null, sources.tlsSecurity) || anyOptionsUsed; + anyOptionsUsed = resolvedConfig.setWaitUntilAvailable(config.waitUntilAvailable ?? null, sources.waitUntilAvailable) || anyOptionsUsed; + resolvedConfig.addServerSettings(config.serverSettings ?? {}); + const compoundParamsCount = [ + config.dsn, + config.instanceName, + config.credentials, + config.credentialsFile, + config.host ?? config.port + ].filter((param) => param !== void 0).length; + if (compoundParamsCount > 1) { + throw new errors_1.InterfaceError(compoundParamsError); + } + if (compoundParamsCount === 1) { + if (config.dsn !== void 0 || config.host !== void 0 || config.port !== void 0) { + let dsn = config.dsn; + if (dsn === void 0) { + if (config.port !== void 0) { + resolvedConfig.setPort(config.port, sources.port); + } + const host = config.host != null ? validateHost(config.host) : ""; + dsn = `edgedb://${host.includes(":") ? `[${encodeURI(host)}]` : host}`; + } + await parseDSNIntoConfig(dsn, resolvedConfig, config.dsn ? sources.dsn : config.host !== void 0 ? sources.host : sources.port, readFile2); + } else { + let creds; + let source; + if (config.credentials != null) { + creds = (0, credentials_1.validateCredentials)(JSON.parse(config.credentials)); + source = sources.credentials; + } else { + if (!serverUtils && !((_a2 = config.instanceName) == null ? void 0 : _a2.includes("/"))) { + throw new errors_1.InterfaceError(`cannot ${config.credentialsFile ? `read credentials file "${config.credentialsFile}"` : `resolve instance name "${config.instanceName}"`} in browser (or edge runtime) environment`); + } + let credentialsFile = config.credentialsFile; + if (credentialsFile === void 0) { + if (/^\w(-?\w)*$/.test(config.instanceName)) { + credentialsFile = await (0, credentials_1.getCredentialsPath)(config.instanceName, serverUtils); + source = sources.instanceName; + } else { + if (!/^([A-Za-z0-9_-](-?[A-Za-z0-9_])*)\/([A-Za-z0-9](-?[A-Za-z0-9])*)$/.test(config.instanceName)) { + throw new errors_1.InterfaceError(`invalid DSN or instance name: '${config.instanceName}'`); + } + await parseCloudInstanceNameIntoConfig(resolvedConfig, config.instanceName, sources.instanceName, serverUtils); + return { hasCompoundOptions: true, anyOptionsUsed: true }; + } + } else { + source = sources.credentialsFile; + } + creds = await (0, credentials_1.readCredentialsFile)(credentialsFile, serverUtils); + } + resolvedConfig.setHost(creds.host ?? null, source); + resolvedConfig.setPort(creds.port ?? null, source); + if (creds.database != null) { + if (resolvedConfig._branch == null) { + resolvedConfig.setDatabase(creds.database ?? null, source); + } + } else if (creds.branch != null) { + if (resolvedConfig._database == null) { + resolvedConfig.setBranch(creds.branch ?? null, source); + } + } + resolvedConfig.setUser(creds.user ?? null, source); + resolvedConfig.setPassword(creds.password ?? null, source); + resolvedConfig.setTlsCAData(creds.tlsCAData ?? null, source); + resolvedConfig.setTlsSecurity(creds.tlsSecurity ?? null, source); + } + return { hasCompoundOptions: true, anyOptionsUsed: true }; + } + return { hasCompoundOptions: false, anyOptionsUsed }; + } + async function parseDSNIntoConfig(_dsnString, config, source, readFile2) { + let dsnString = _dsnString; + let regexHostname = null; + let zoneId = ""; + const regexResult = /\[(.*?)(%25.+?)\]/.exec(_dsnString); + if (regexResult) { + regexHostname = regexResult[1]; + zoneId = decodeURI(regexResult[2]); + dsnString = dsnString.slice(0, regexResult.index + regexHostname.length + 1) + dsnString.slice(regexResult.index + regexHostname.length + regexResult[2].length + 1); + } + let parsed; + try { + parsed = new URL(dsnString); + if (regexHostname !== null && parsed.hostname !== `[${regexHostname}]`) { + throw new Error(); + } + } catch (_3) { + throw new errors_1.InterfaceError(`invalid DSN or instance name: '${_dsnString}'`); + } + if (parsed.protocol !== "edgedb:" && parsed.protocol !== "gel:") { + throw new errors_1.InterfaceError(`invalid DSN: scheme is expected to be 'gel', got '${parsed.protocol.slice(0, -1)}'`); + } + const searchParams = /* @__PURE__ */ new Map(); + for (const [key, value] of parsed.searchParams) { + if (searchParams.has(key)) { + throw new errors_1.InterfaceError(`invalid DSN: duplicate query parameter '${key}'`); + } + searchParams.set(key, value); + } + async function handleDSNPart(paramName, value, currentValue, setter, formatter = (val2) => val2) { + if ([ + value || null, + searchParams.get(paramName), + searchParams.get(`${paramName}_env`), + searchParams.get(`${paramName}_file`) + ].filter((param) => param != null).length > 1) { + throw new errors_1.InterfaceError(`invalid DSN: more than one of ${value !== null ? `'${paramName}', ` : ""}'?${paramName}=', '?${paramName}_env=' or '?${paramName}_file=' was specified ${dsnString}`); + } + if (currentValue === null) { + let param = value || (searchParams.get(paramName) ?? null); + let paramSource = source; + if (param === null) { + const env3 = searchParams.get(`${paramName}_env`); + if (env3 != null) { + param = getEnv(env3, true) ?? null; + if (param === null) { + throw new errors_1.InterfaceError(`'${paramName}_env' environment variable '${env3}' doesn't exist`); + } + paramSource += ` (${paramName}_env: ${env3})`; + } + } + if (param === null) { + const file = searchParams.get(`${paramName}_file`); + if (file != null) { + param = await readFile2(file); + paramSource += ` (${paramName}_file: ${file})`; + } + } + param = param !== null ? formatter(param) : null; + await setter(param, paramSource); + } + searchParams.delete(paramName); + searchParams.delete(`${paramName}_env`); + searchParams.delete(`${paramName}_file`); + } + const hostname = /^\[.*\]$/.test(parsed.hostname) ? parsed.hostname.slice(1, -1) + zoneId : parsed.hostname; + await handleDSNPart("host", hostname, config._host, config.setHost); + await handleDSNPart("port", parsed.port, config._port, config.setPort); + const stripLeadingSlash = (str) => str.replace(/^\//, ""); + const searchParamsContainsDatabase = searchParams.has("database") || searchParams.has("database_env") || searchParams.has("database_file"); + const searchParamsContainsBranch = searchParams.has("branch") || searchParams.has("branch_env") || searchParams.has("branch_file"); + if (searchParamsContainsBranch) { + if (searchParamsContainsDatabase) { + throw new errors_1.InterfaceError(`invalid DSN: cannot specify both 'database' and 'branch'`); + } + if (config._database === null) { + await handleDSNPart("branch", stripLeadingSlash(parsed.pathname), config._branch, config.setBranch, stripLeadingSlash); + } else { + searchParams.delete("branch"); + searchParams.delete("branch_env"); + searchParams.delete("branch_file"); + } + } else { + if (config._branch === null) { + await handleDSNPart("database", stripLeadingSlash(parsed.pathname), config._database, config.setDatabase, stripLeadingSlash); + } else { + searchParams.delete("database"); + searchParams.delete("database_env"); + searchParams.delete("database_file"); + } + } + await handleDSNPart("user", parsed.username, config._user, config.setUser); + await handleDSNPart("password", parsed.password, config._password, config.setPassword); + await handleDSNPart("secret_key", null, config._secretKey, config.setSecretKey); + await handleDSNPart("tls_ca", null, config._tlsCAData, config.setTlsCAData); + await handleDSNPart("tls_ca_file", null, config._tlsCAData, (val2, _source) => config.setTlsCAFile(val2, _source, readFile2)); + await handleDSNPart("tls_server_name", null, config._tlsServerName, config.setTlsServerName); + await handleDSNPart("tls_security", null, config._tlsSecurity, config.setTlsSecurity); + await handleDSNPart("wait_until_available", null, config._waitUntilAvailable, config.setWaitUntilAvailable); + const serverSettings = {}; + for (const [key, value] of searchParams) { + serverSettings[key] = value; + } + config.addServerSettings(serverSettings); + } + async function parseCloudInstanceNameIntoConfig(config, cloudInstanceName, source, serverUtils) { + const normInstanceName = cloudInstanceName.toLowerCase(); + const [org, instanceName] = normInstanceName.split("/"); + const domainName = `${instanceName}--${org}`; + if (domainName.length > DOMAIN_NAME_MAX_LEN) { + throw new errors_1.InterfaceError(`invalid instance name: cloud instance name length cannot exceed ${DOMAIN_NAME_MAX_LEN - 1} characters: ${cloudInstanceName}`); + } + let secretKey = config.secretKey; + if (secretKey == null) { + try { + if (!serverUtils) { + throw new errors_1.InterfaceError(`Cannot get secret key from cloud profile in browser (or edge runtime) environment`); + } + const profile = config.cloudProfile; + const profilePath = await serverUtils.searchConfigDir("cloud-credentials", `${profile}.json`); + const fileData = await serverUtils.readFileUtf8(profilePath); + secretKey = JSON.parse(fileData)["secret_key"]; + if (!secretKey) { + throw new errors_1.InterfaceError(`Cloud profile '${profile}' doesn't contain a secret key`); + } + config.setSecretKey(secretKey, `cloud-credentials/${profile}.json`); + } catch (e4) { + throw new errors_1.InterfaceError(`Cannot connect to cloud instances without a secret key: ${e4}`); + } + } + try { + const keyParts = secretKey.split("."); + if (keyParts.length < 2) { + throw new errors_1.InterfaceError("Invalid secret key: does not contain payload"); + } + const dnsZone = _jwtBase64Decode(keyParts[1])["iss"]; + if (!dnsZone) { + throw new errors_1.InterfaceError("Invalid secret key: payload does not contain 'iss' value"); + } + const dnsBucket = ((0, crcHqx_1.crcHqx)(buffer_1.utf8Encoder.encode(normInstanceName), 0) % 100).toString(10).padStart(2, "0"); + const host = `${domainName}.c-${dnsBucket}.i.${dnsZone}`; + config.setHost(host, `resolved from 'secretKey' and ${source}`); + } catch (e4) { + if (e4 instanceof errors.GelError) { + throw e4; + } else { + throw new errors_1.InterfaceError(`Invalid secret key: ${e4}`); + } + } + } + function _jwtBase64Decode(payload) { + return JSON.parse(buffer_1.utf8Decoder.decode((0, buffer_1.decodeB64)(payload.padEnd(Math.ceil(payload.length / 4) * 4, "=")))); + } + } +}); + +// ../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/conUtils.server.js +var require_conUtils_server = __commonJS({ + "../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/conUtils.server.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o3, m4, k3, k22) { + if (k22 === void 0) k22 = k3; + var desc = Object.getOwnPropertyDescriptor(m4, k3); + if (!desc || ("get" in desc ? !m4.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m4[k3]; + } }; + } + Object.defineProperty(o3, k22, desc); + } : function(o3, m4, k3, k22) { + if (k22 === void 0) k22 = k3; + o3[k22] = m4[k3]; + }); + var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? function(o3, v6) { + Object.defineProperty(o3, "default", { enumerable: true, value: v6 }); + } : function(o3, v6) { + o3["default"] = v6; + }); + var __importStar2 = exports2 && exports2.__importStar || function(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) { + for (var k3 in mod) if (k3 !== "default" && Object.prototype.hasOwnProperty.call(mod, k3)) __createBinding2(result, mod, k3); + } + __setModuleDefault2(result, mod); + return result; + }; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.parseConnectArguments = exports2.serverUtils = void 0; + exports2.findStashPath = findStashPath; + var platform = __importStar2(require_platform()); + var node_fs_1 = require("node:fs"); + var node_path_1 = __importDefault2(require("node:path")); + var systemUtils_1 = require_systemUtils(); + var conUtils_1 = require_conUtils(); + var projectDirCache = /* @__PURE__ */ new Map(); + async function findProjectDir(required = true) { + if (!required && !(0, systemUtils_1.hasFSReadPermission)()) { + return null; + } + const workingDir = process.cwd(); + if (projectDirCache.has(workingDir)) { + return projectDirCache.get(workingDir); + } + let dir = workingDir; + const cwdDev = (await node_fs_1.promises.stat(dir)).dev; + while (true) { + if (await (0, systemUtils_1.exists)(node_path_1.default.join(dir, "edgedb.toml")) || await (0, systemUtils_1.exists)(node_path_1.default.join(dir, "gel.toml"))) { + projectDirCache.set(workingDir, dir); + return dir; + } + const parentDir = node_path_1.default.join(dir, ".."); + if (parentDir === dir || (await node_fs_1.promises.stat(parentDir)).dev !== cwdDev) { + projectDirCache.set(workingDir, null); + return null; + } + dir = parentDir; + } + } + async function findStashPath(projectDir) { + let projectPath = await node_fs_1.promises.realpath(projectDir); + if (platform.isWindows && !projectPath.startsWith("\\\\")) { + projectPath = "\\\\?\\" + projectPath; + } + const hash = (0, systemUtils_1.hashSHA1toHex)(projectPath); + const baseName = node_path_1.default.basename(projectPath); + const dirName = baseName + "-" + hash; + return platform.searchConfigDir("projects", dirName); + } + exports2.serverUtils = { + findProjectDir, + findStashPath, + readFileUtf8: systemUtils_1.readFileUtf8, + searchConfigDir: platform.searchConfigDir + }; + exports2.parseConnectArguments = (0, conUtils_1.getConnectArgumentsParser)(exports2.serverUtils); + } +}); + +// ../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/errors/map.js +var require_map = __commonJS({ + "../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/errors/map.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o3, m4, k3, k22) { + if (k22 === void 0) k22 = k3; + var desc = Object.getOwnPropertyDescriptor(m4, k3); + if (!desc || ("get" in desc ? !m4.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m4[k3]; + } }; + } + Object.defineProperty(o3, k22, desc); + } : function(o3, m4, k3, k22) { + if (k22 === void 0) k22 = k3; + o3[k22] = m4[k3]; + }); + var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? function(o3, v6) { + Object.defineProperty(o3, "default", { enumerable: true, value: v6 }); + } : function(o3, v6) { + o3["default"] = v6; + }); + var __importStar2 = exports2 && exports2.__importStar || function(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) { + for (var k3 in mod) if (k3 !== "default" && Object.prototype.hasOwnProperty.call(mod, k3)) __createBinding2(result, mod, k3); + } + __setModuleDefault2(result, mod); + return result; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.errorMapping = void 0; + var errors = __importStar2(require_errors()); + exports2.errorMapping = /* @__PURE__ */ new Map(); + exports2.errorMapping.set(16777216, errors.InternalServerError); + exports2.errorMapping.set(33554432, errors.UnsupportedFeatureError); + exports2.errorMapping.set(50331648, errors.ProtocolError); + exports2.errorMapping.set(50397184, errors.BinaryProtocolError); + exports2.errorMapping.set(50397185, errors.UnsupportedProtocolVersionError); + exports2.errorMapping.set(50397186, errors.TypeSpecNotFoundError); + exports2.errorMapping.set(50397187, errors.UnexpectedMessageError); + exports2.errorMapping.set(50462720, errors.InputDataError); + exports2.errorMapping.set(50462976, errors.ParameterTypeMismatchError); + exports2.errorMapping.set(50463232, errors.StateMismatchError); + exports2.errorMapping.set(50528256, errors.ResultCardinalityMismatchError); + exports2.errorMapping.set(50593792, errors.CapabilityError); + exports2.errorMapping.set(50594048, errors.UnsupportedCapabilityError); + exports2.errorMapping.set(50594304, errors.DisabledCapabilityError); + exports2.errorMapping.set(50594560, errors.UnsafeIsolationLevelError); + exports2.errorMapping.set(67108864, errors.QueryError); + exports2.errorMapping.set(67174400, errors.InvalidSyntaxError); + exports2.errorMapping.set(67174656, errors.EdgeQLSyntaxError); + exports2.errorMapping.set(67174912, errors.SchemaSyntaxError); + exports2.errorMapping.set(67175168, errors.GraphQLSyntaxError); + exports2.errorMapping.set(67239936, errors.InvalidTypeError); + exports2.errorMapping.set(67240192, errors.InvalidTargetError); + exports2.errorMapping.set(67240193, errors.InvalidLinkTargetError); + exports2.errorMapping.set(67240194, errors.InvalidPropertyTargetError); + exports2.errorMapping.set(67305472, errors.InvalidReferenceError); + exports2.errorMapping.set(67305473, errors.UnknownModuleError); + exports2.errorMapping.set(67305474, errors.UnknownLinkError); + exports2.errorMapping.set(67305475, errors.UnknownPropertyError); + exports2.errorMapping.set(67305476, errors.UnknownUserError); + exports2.errorMapping.set(67305477, errors.UnknownDatabaseError); + exports2.errorMapping.set(67305478, errors.UnknownParameterError); + exports2.errorMapping.set(67305479, errors.DeprecatedScopingError); + exports2.errorMapping.set(67371008, errors.SchemaError); + exports2.errorMapping.set(67436544, errors.SchemaDefinitionError); + exports2.errorMapping.set(67436800, errors.InvalidDefinitionError); + exports2.errorMapping.set(67436801, errors.InvalidModuleDefinitionError); + exports2.errorMapping.set(67436802, errors.InvalidLinkDefinitionError); + exports2.errorMapping.set(67436803, errors.InvalidPropertyDefinitionError); + exports2.errorMapping.set(67436804, errors.InvalidUserDefinitionError); + exports2.errorMapping.set(67436805, errors.InvalidDatabaseDefinitionError); + exports2.errorMapping.set(67436806, errors.InvalidOperatorDefinitionError); + exports2.errorMapping.set(67436807, errors.InvalidAliasDefinitionError); + exports2.errorMapping.set(67436808, errors.InvalidFunctionDefinitionError); + exports2.errorMapping.set(67436809, errors.InvalidConstraintDefinitionError); + exports2.errorMapping.set(67436810, errors.InvalidCastDefinitionError); + exports2.errorMapping.set(67437056, errors.DuplicateDefinitionError); + exports2.errorMapping.set(67437057, errors.DuplicateModuleDefinitionError); + exports2.errorMapping.set(67437058, errors.DuplicateLinkDefinitionError); + exports2.errorMapping.set(67437059, errors.DuplicatePropertyDefinitionError); + exports2.errorMapping.set(67437060, errors.DuplicateUserDefinitionError); + exports2.errorMapping.set(67437061, errors.DuplicateDatabaseDefinitionError); + exports2.errorMapping.set(67437062, errors.DuplicateOperatorDefinitionError); + exports2.errorMapping.set(67437063, errors.DuplicateViewDefinitionError); + exports2.errorMapping.set(67437064, errors.DuplicateFunctionDefinitionError); + exports2.errorMapping.set(67437065, errors.DuplicateConstraintDefinitionError); + exports2.errorMapping.set(67437066, errors.DuplicateCastDefinitionError); + exports2.errorMapping.set(67437067, errors.DuplicateMigrationError); + exports2.errorMapping.set(67502080, errors.SessionTimeoutError); + exports2.errorMapping.set(67502336, errors.IdleSessionTimeoutError); + exports2.errorMapping.set(67502592, errors.QueryTimeoutError); + exports2.errorMapping.set(67504640, errors.TransactionTimeoutError); + exports2.errorMapping.set(67504641, errors.IdleTransactionTimeoutError); + exports2.errorMapping.set(83886080, errors.ExecutionError); + exports2.errorMapping.set(83951616, errors.InvalidValueError); + exports2.errorMapping.set(83951617, errors.DivisionByZeroError); + exports2.errorMapping.set(83951618, errors.NumericOutOfRangeError); + exports2.errorMapping.set(83951619, errors.AccessPolicyError); + exports2.errorMapping.set(83951620, errors.QueryAssertionError); + exports2.errorMapping.set(84017152, errors.IntegrityError); + exports2.errorMapping.set(84017153, errors.ConstraintViolationError); + exports2.errorMapping.set(84017154, errors.CardinalityViolationError); + exports2.errorMapping.set(84017155, errors.MissingRequiredError); + exports2.errorMapping.set(84082688, errors.TransactionError); + exports2.errorMapping.set(84082944, errors.TransactionConflictError); + exports2.errorMapping.set(84082945, errors.TransactionSerializationError); + exports2.errorMapping.set(84082946, errors.TransactionDeadlockError); + exports2.errorMapping.set(84148224, errors.WatchError); + exports2.errorMapping.set(100663296, errors.ConfigurationError); + exports2.errorMapping.set(117440512, errors.AccessError); + exports2.errorMapping.set(117506048, errors.AuthenticationError); + exports2.errorMapping.set(134217728, errors.AvailabilityError); + exports2.errorMapping.set(134217729, errors.BackendUnavailableError); + exports2.errorMapping.set(134217730, errors.ServerOfflineError); + exports2.errorMapping.set(134217731, errors.UnknownTenantError); + exports2.errorMapping.set(134217732, errors.ServerBlockedError); + exports2.errorMapping.set(150994944, errors.BackendError); + exports2.errorMapping.set(150995200, errors.UnsupportedBackendFeatureError); + exports2.errorMapping.set(4026531840, errors.LogMessage); + exports2.errorMapping.set(4026597376, errors.WarningMessage); + exports2.errorMapping.set(4026662912, errors.StatusMessage); + exports2.errorMapping.set(4026662913, errors.MigrationStatusMessage); + exports2.errorMapping.set(4278190080, errors.ClientError); + exports2.errorMapping.set(4278255616, errors.ClientConnectionError); + exports2.errorMapping.set(4278255872, errors.ClientConnectionFailedError); + exports2.errorMapping.set(4278255873, errors.ClientConnectionFailedTemporarilyError); + exports2.errorMapping.set(4278256128, errors.ClientConnectionTimeoutError); + exports2.errorMapping.set(4278256384, errors.ClientConnectionClosedError); + exports2.errorMapping.set(4278321152, errors.InterfaceError); + exports2.errorMapping.set(4278321408, errors.QueryArgumentError); + exports2.errorMapping.set(4278321409, errors.MissingArgumentError); + exports2.errorMapping.set(4278321410, errors.UnknownArgumentError); + exports2.errorMapping.set(4278321411, errors.InvalidArgumentError); + exports2.errorMapping.set(4278386688, errors.NoDataError); + exports2.errorMapping.set(4278452224, errors.InternalClientError); + } +}); + +// ../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/errors/resolve.js +var require_resolve = __commonJS({ + "../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/errors/resolve.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o3, m4, k3, k22) { + if (k22 === void 0) k22 = k3; + var desc = Object.getOwnPropertyDescriptor(m4, k3); + if (!desc || ("get" in desc ? !m4.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m4[k3]; + } }; + } + Object.defineProperty(o3, k22, desc); + } : function(o3, m4, k3, k22) { + if (k22 === void 0) k22 = k3; + o3[k22] = m4[k3]; + }); + var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? function(o3, v6) { + Object.defineProperty(o3, "default", { enumerable: true, value: v6 }); + } : function(o3, v6) { + o3["default"] = v6; + }); + var __importStar2 = exports2 && exports2.__importStar || function(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) { + for (var k3 in mod) if (k3 !== "default" && Object.prototype.hasOwnProperty.call(mod, k3)) __createBinding2(result, mod, k3); + } + __setModuleDefault2(result, mod); + return result; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.resolveErrorCode = resolveErrorCode; + exports2.errorFromJSON = errorFromJSON; + var errors = __importStar2(require_errors()); + var base_1 = require_base(); + var map_1 = require_map(); + function resolveErrorCode(code) { + let result; + result = map_1.errorMapping.get(code); + if (result) { + return result; + } + code = code & 4294967040; + result = map_1.errorMapping.get(code); + if (result) { + return result; + } + code = code & 4294901760; + result = map_1.errorMapping.get(code); + if (result) { + return result; + } + code = code & 4278190080; + result = map_1.errorMapping.get(code); + if (result) { + return result; + } + return errors.GelError; + } + var _JSON_FIELDS = { + hint: base_1.ErrorAttr.hint, + details: base_1.ErrorAttr.details, + start: base_1.ErrorAttr.characterStart, + end: base_1.ErrorAttr.characterEnd, + line: base_1.ErrorAttr.lineStart, + col: base_1.ErrorAttr.columnStart + }; + function errorFromJSON(data) { + const errType = resolveErrorCode(data.code); + const err2 = new errType(data.message); + const attrs = /* @__PURE__ */ new Map(); + for (const [name, field] of Object.entries(_JSON_FIELDS)) { + if (data[name] != null) { + attrs.set(field, data[name]); + } + } + err2._attrs = attrs; + return err2; + } + } +}); + +// ../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/baseConn.js +var require_baseConn = __commonJS({ + "../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/baseConn.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o3, m4, k3, k22) { + if (k22 === void 0) k22 = k3; + var desc = Object.getOwnPropertyDescriptor(m4, k3); + if (!desc || ("get" in desc ? !m4.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m4[k3]; + } }; + } + Object.defineProperty(o3, k22, desc); + } : function(o3, m4, k3, k22) { + if (k22 === void 0) k22 = k3; + o3[k22] = m4[k3]; + }); + var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? function(o3, v6) { + Object.defineProperty(o3, "default", { enumerable: true, value: v6 }); + } : function(o3, v6) { + o3["default"] = v6; + }); + var __importStar2 = exports2 && exports2.__importStar || function(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) { + for (var k3 in mod) if (k3 !== "default" && Object.prototype.hasOwnProperty.call(mod, k3)) __createBinding2(result, mod, k3); + } + __setModuleDefault2(result, mod); + return result; + }; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.BaseRawConnection = exports2.RESTRICTED_CAPABILITIES = exports2.Capabilities = exports2.PROTO_VER_MIN = exports2.PROTO_VER = void 0; + var codecs_1 = require_codecs(); + var object_1 = require_object(); + var utils_1 = require_utils2(); + var errors = __importStar2(require_errors()); + var resolve_1 = require_resolve(); + var context_1 = require_context(); + var ifaces_1 = require_ifaces2(); + var buffer_1 = require_buffer(); + var chars = __importStar2(require_chars()); + var event_1 = __importDefault2(require_event()); + var lru_1 = __importDefault2(require_lru()); + var options_1 = require_options(); + exports2.PROTO_VER = [3, 0]; + exports2.PROTO_VER_MIN = [0, 9]; + var TransactionStatus; + (function(TransactionStatus2) { + TransactionStatus2[TransactionStatus2["TRANS_IDLE"] = 0] = "TRANS_IDLE"; + TransactionStatus2[TransactionStatus2["TRANS_ACTIVE"] = 1] = "TRANS_ACTIVE"; + TransactionStatus2[TransactionStatus2["TRANS_INTRANS"] = 2] = "TRANS_INTRANS"; + TransactionStatus2[TransactionStatus2["TRANS_INERROR"] = 3] = "TRANS_INERROR"; + TransactionStatus2[TransactionStatus2["TRANS_UNKNOWN"] = 4] = "TRANS_UNKNOWN"; + })(TransactionStatus || (TransactionStatus = {})); + var Capabilities; + (function(Capabilities2) { + Capabilities2[Capabilities2["NONE"] = 0] = "NONE"; + Capabilities2[Capabilities2["MODIFICATONS"] = 1] = "MODIFICATONS"; + Capabilities2[Capabilities2["SESSION_CONFIG"] = 2] = "SESSION_CONFIG"; + Capabilities2[Capabilities2["TRANSACTION"] = 4] = "TRANSACTION"; + Capabilities2[Capabilities2["DDL"] = 8] = "DDL"; + Capabilities2[Capabilities2["PERSISTENT_CONFIG"] = 16] = "PERSISTENT_CONFIG"; + Capabilities2[Capabilities2["SET_GLOBAL"] = 32] = "SET_GLOBAL"; + Capabilities2[Capabilities2["ALL"] = 4294967295] = "ALL"; + })(Capabilities || (exports2.Capabilities = Capabilities = {})); + var NO_TRANSACTION_CAPABILITIES = (Capabilities.ALL & ~Capabilities.TRANSACTION) >>> 0; + var NO_TRANSACTION_CAPABILITIES_BYTES = new Uint8Array(Array(8).fill(255)); + new DataView(NO_TRANSACTION_CAPABILITIES_BYTES.buffer).setUint32(4, NO_TRANSACTION_CAPABILITIES); + exports2.RESTRICTED_CAPABILITIES = (Capabilities.ALL & ~Capabilities.TRANSACTION & ~Capabilities.SESSION_CONFIG & ~Capabilities.SET_GLOBAL) >>> 0; + var CompilationFlag; + (function(CompilationFlag2) { + CompilationFlag2[CompilationFlag2["INJECT_OUTPUT_TYPE_IDS"] = 1] = "INJECT_OUTPUT_TYPE_IDS"; + CompilationFlag2[CompilationFlag2["INJECT_OUTPUT_TYPE_NAMES"] = 2] = "INJECT_OUTPUT_TYPE_NAMES"; + CompilationFlag2[CompilationFlag2["INJECT_OUTPUT_OBJECT_IDS"] = 4] = "INJECT_OUTPUT_OBJECT_IDS"; + })(CompilationFlag || (CompilationFlag = {})); + var OLD_ERROR_CODES = /* @__PURE__ */ new Map([ + [84082689, 84082945], + [84082690, 84082946] + ]); + var BaseRawConnection = class { + connected = false; + lastStatus; + codecsRegistry; + queryCodecCache; + serverSecret; + serverSettings; + serverXactStatus; + buffer; + messageWaiter; + connWaiter; + connAbortWaiter; + _abortedWith = null; + protocolVersion = exports2.PROTO_VER; + stateCodec = codecs_1.INVALID_CODEC; + stateCache = /* @__PURE__ */ new WeakMap(); + lastStateUpdate = null; + adminUIMode = false; + constructor(registry) { + this.buffer = new buffer_1.ReadMessageBuffer(); + this.codecsRegistry = registry; + this.queryCodecCache = new lru_1.default({ capacity: 1e3 }); + this.lastStatus = null; + this.serverSecret = null; + this.serverSettings = {}; + this.serverXactStatus = TransactionStatus.TRANS_UNKNOWN; + this.messageWaiter = null; + this.connWaiter = new event_1.default(); + this.connAbortWaiter = new event_1.default(); + } + throwNotImplemented(method) { + throw new errors.InternalClientError(`method ${method} is not implemented`); + } + async _waitForMessage() { + this.throwNotImplemented("_waitForMessage"); + } + _sendData(_data3) { + this.throwNotImplemented("_sendData"); + } + getConnAbortError() { + return this._abortedWith ?? new errors.InterfaceError(`client has been closed`); + } + _checkState() { + if (this.isClosed()) { + throw this.getConnAbortError(); + } + } + _abortWithError(err2) { + this._abortedWith = err2; + this._abort(); + } + _ignoreHeaders() { + let numFields = this.buffer.readInt16(); + while (numFields) { + this.buffer.readInt16(); + this.buffer.readLenPrefixedBuffer(); + numFields--; + } + } + _readHeaders() { + const numFields = this.buffer.readInt16(); + const headers = {}; + for (let i4 = 0; i4 < numFields; i4++) { + const key = this.buffer.readString(); + const value = this.buffer.readString(); + headers[key] = value; + } + return headers; + } + _abortWaiters(err2) { + var _a2; + if (!this.connWaiter.done) { + this.connWaiter.setError(err2); + } + (_a2 = this.messageWaiter) == null ? void 0 : _a2.setError(err2); + this.messageWaiter = null; + } + _parseHeaders() { + const ret = /* @__PURE__ */ new Map(); + let numFields = this.buffer.readInt16(); + while (numFields) { + const key = this.buffer.readInt16(); + const value = this.buffer.readLenPrefixedBuffer(); + ret.set(key, value); + numFields--; + } + return ret; + } + _parseDescribeTypeMessage(query) { + let capabilities = -1; + let warnings = []; + let unsafeIsolationDangers = []; + const headers = this._readHeaders(); + if (headers.warnings != null) { + warnings = JSON.parse(headers.warnings).map((warning3) => { + const err2 = (0, resolve_1.errorFromJSON)(warning3); + err2._query = query; + return err2; + }); + } + if (headers.unsafe_isolation_dangers != null) { + unsafeIsolationDangers = JSON.parse(headers.unsafe_isolation_dangers).map((danger) => { + const err2 = (0, resolve_1.errorFromJSON)(danger); + err2._query = query; + return err2; + }); + } + capabilities = Number(this.buffer.readBigInt64()); + const cardinality = this.buffer.readChar(); + const inTypeId = this.buffer.readUUID(); + const inTypeData = this.buffer.readLenPrefixedBuffer(); + const outTypeId = this.buffer.readUUID(); + const outTypeData = this.buffer.readLenPrefixedBuffer(); + this.buffer.finishMessage(); + let inCodec = this.codecsRegistry.getCodec(inTypeId); + if (inCodec == null) { + inCodec = this.codecsRegistry.buildCodec(inTypeData, this.protocolVersion); + } + let outCodec = this.codecsRegistry.getCodec(outTypeId); + if (outCodec == null) { + outCodec = this.codecsRegistry.buildCodec(outTypeData, this.protocolVersion); + } + return [ + cardinality, + inCodec, + outCodec, + capabilities, + inTypeData, + outTypeData, + warnings, + unsafeIsolationDangers + ]; + } + _parseCommandCompleteMessage() { + this._ignoreHeaders(); + this.buffer.readBigInt64(); + const status = this.buffer.readString(); + const stateTypeId = this.buffer.readUUID(); + const stateData = this.buffer.readLenPrefixedBuffer(); + if (this.adminUIMode && stateTypeId === this.stateCodec.tid) { + this.lastStateUpdate = this.stateCodec.decode(new buffer_1.ReadBuffer(stateData), context_1.NOOP_CODEC_CONTEXT); + } + this.buffer.finishMessage(); + return status; + } + _parseErrorMessage() { + this.buffer.readChar(); + const code = this.buffer.readUInt32(); + const message = this.buffer.readString(); + const errorType = (0, resolve_1.resolveErrorCode)(OLD_ERROR_CODES.get(code) ?? code); + const err2 = new errorType(message); + err2._attrs = this._parseHeaders(); + this.buffer.finishMessage(); + if (err2 instanceof errors.AuthenticationError) { + throw err2; + } + return err2; + } + _parseSyncMessage() { + this._parseHeaders(); + const status = this.buffer.readChar(); + switch (status) { + case chars.$I: + this.serverXactStatus = TransactionStatus.TRANS_IDLE; + break; + case chars.$T: + this.serverXactStatus = TransactionStatus.TRANS_INTRANS; + break; + case chars.$E: + this.serverXactStatus = TransactionStatus.TRANS_INERROR; + break; + default: + this.serverXactStatus = TransactionStatus.TRANS_UNKNOWN; + } + this.buffer.finishMessage(); + } + _redirectDataMessages(result) { + const $D = chars.$D; + const buffer = this.buffer; + while (buffer.takeMessageType($D)) { + const msg = buffer.consumeMessage(); + result.writeChar($D); + result.writeInt32(msg.length + 4); + result.writeBuffer(msg); + } + } + _parseDataMessages(codec, result, ctx) { + const frb = buffer_1.ReadBuffer.alloc(); + const $D = chars.$D; + const buffer = this.buffer; + if (Array.isArray(result)) { + while (buffer.takeMessageType($D)) { + buffer.consumeMessageInto(frb); + frb.discard(6); + result.push(codec.decode(frb, ctx)); + frb.finish(); + } + } else { + this._redirectDataMessages(result); + } + } + _parseServerSettings(name, value) { + switch (name) { + case "suggested_pool_concurrency": { + this.serverSettings.suggested_pool_concurrency = parseInt(buffer_1.utf8Decoder.decode(value), 10); + break; + } + case "system_config": { + const buf = new buffer_1.ReadBuffer(value); + const typedescLen = buf.readInt32() - 16; + const typedescId = buf.readUUID(); + const typedesc = buf.readBuffer(typedescLen); + let codec = this.codecsRegistry.getCodec(typedescId); + if (codec === null) { + codec = this.codecsRegistry.buildCodec(typedesc, this.protocolVersion); + } + buf.discard(4); + const data = codec.decode(buf, context_1.NOOP_CODEC_CONTEXT); + buf.finish(); + this.serverSettings.system_config = data; + break; + } + default: + this.serverSettings[name] = value; + break; + } + } + _parseDescribeStateMessage() { + const typedescId = this.buffer.readUUID(); + const typedesc = this.buffer.readBuffer(this.buffer.readInt32()); + let codec = this.codecsRegistry.getCodec(typedescId); + if (codec === null) { + codec = this.codecsRegistry.buildCodec(typedesc, this.protocolVersion); + } + this.stateCodec = codec; + this.stateCache = /* @__PURE__ */ new WeakMap(); + this.buffer.finishMessage(); + } + _fallthrough() { + const mtype = this.buffer.getMessageType(); + switch (mtype) { + case chars.$S: { + const name = this.buffer.readString(); + const value = this.buffer.readLenPrefixedBuffer(); + this._parseServerSettings(name, value); + this.buffer.finishMessage(); + break; + } + case chars.$L: { + const severity = this.buffer.readChar(); + const code = this.buffer.readUInt32(); + const message = this.buffer.readString(); + this._parseHeaders(); + this.buffer.finishMessage(); + console.info("SERVER MESSAGE", severity, code, message); + break; + } + default: + throw new errors.UnexpectedMessageError(`unexpected message type ${mtype} ("${chars.chr(mtype)}")`); + } + } + _encodeArgs(args, inCodec, ctx) { + if (inCodec === codecs_1.NULL_CODEC) { + if (args != null) { + throw new errors.QueryArgumentError(`This query does not contain any query parameters, but query arguments were provided to the 'query*()' method`); + } + return codecs_1.NullCodec.BUFFER; + } + if (inCodec instanceof object_1.ObjectCodec) { + return inCodec.encodeArgs(args, ctx); + } + throw new errors.ProtocolError("invalid input codec"); + } + _isInTransaction() { + return this.serverXactStatus === TransactionStatus.TRANS_INTRANS || this.serverXactStatus === TransactionStatus.TRANS_ACTIVE; + } + _setStateCodec(state2) { + let encodedState = this.stateCache.get(state2); + if (encodedState) { + return encodedState; + } + const buf = new buffer_1.WriteBuffer(); + this.stateCodec.encode(buf, state2._serialise(), context_1.NOOP_CODEC_CONTEXT); + encodedState = buf.unwrap(); + this.stateCache.set(state2, encodedState); + return encodedState; + } + _encodeParseParams(wb, query, outputFormat, expectedCardinality, state2, capabilitiesFlags, options, language, isExecute, unsafeIsolationDangers) { + if ((0, utils_1.versionGreaterThanOrEqual)(this.protocolVersion, [3, 0])) { + if (state2.annotations.size >= 1 << 16) { + throw new errors.InternalClientError("too many annotations"); + } + wb.writeUInt16(state2.annotations.size); + for (const [name, value] of state2.annotations) { + wb.writeString(name); + wb.writeString(value); + } + } else { + wb.writeUInt16(0); + } + wb.writeFlags(4294967295, capabilitiesFlags); + wb.writeFlags(0, 0 | ((options == null ? void 0 : options.injectObjectids) ? CompilationFlag.INJECT_OUTPUT_OBJECT_IDS : 0) | ((options == null ? void 0 : options.injectTypeids) ? CompilationFlag.INJECT_OUTPUT_TYPE_IDS : 0) | ((options == null ? void 0 : options.injectTypenames) ? CompilationFlag.INJECT_OUTPUT_TYPE_NAMES : 0)); + wb.writeBigInt64((options == null ? void 0 : options.implicitLimit) ?? BigInt(0)); + if ((0, utils_1.versionGreaterThanOrEqual)(this.protocolVersion, [3, 0])) { + wb.writeChar(language); + } + wb.writeChar(outputFormat); + wb.writeChar(expectedCardinality === ifaces_1.Cardinality.ONE || expectedCardinality === ifaces_1.Cardinality.AT_MOST_ONE ? ifaces_1.Cardinality.AT_MOST_ONE : ifaces_1.Cardinality.MANY); + wb.writeString(query); + if (!this.adminUIMode && state2.isDefaultSession()) { + wb.writeBuffer(codecs_1.NULL_CODEC.tidBuffer); + wb.writeInt32(0); + } else { + wb.writeBuffer(this.stateCodec.tidBuffer); + if (this.stateCodec === codecs_1.INVALID_CODEC || this.stateCodec === codecs_1.NULL_CODEC) { + wb.writeInt32(0); + } else { + if ((0, utils_1.versionGreaterThanOrEqual)(this.protocolVersion, [3, 0]) && isExecute && !this._isInTransaction()) { + const isolation = state2.transactionOptions.isolation === options_1.IsolationLevel.PreferRepeatableRead ? unsafeIsolationDangers.length === 0 ? options_1.IsolationLevel.RepeatableRead : options_1.IsolationLevel.Serializable : state2.transactionOptions.isolation; + if (isolation !== state2.config.get("default_transaction_isolation")) { + state2 = state2.withConfig({ + default_transaction_isolation: isolation + }).withTransactionOptions({ + isolation + }); + } + if (state2.transactionOptions.readonly !== state2.config.get("default_transaction_access_mode")) { + state2 = state2.withConfig({ + default_transaction_access_mode: state2.transactionOptions.readonly ? "ReadOnly" : "ReadWrite" + }); + } + } + const encodedState = this._setStateCodec(state2); + wb.writeBuffer(encodedState); + } + } + } + async _parse(language, query, outputFormat, expectedCardinality, state2, capabilitiesFlags = exports2.RESTRICTED_CAPABILITIES, options, unsafeIsolationDangers = []) { + const wb = new buffer_1.WriteMessageBuffer(); + wb.beginMessage(chars.$P); + this._encodeParseParams(wb, query, outputFormat, expectedCardinality, state2, capabilitiesFlags, options, language, false, unsafeIsolationDangers); + wb.endMessage(); + wb.writeSync(); + this._sendData(wb.unwrap()); + let parsing = true; + let error2 = null; + let newCard = null; + let capabilities = -1; + let inCodec = null; + let outCodec = null; + let inCodecBuf = null; + let outCodecBuf = null; + let warnings = []; + while (parsing) { + if (!this.buffer.takeMessage()) { + await this._waitForMessage(); + } + const mtype = this.buffer.getMessageType(); + switch (mtype) { + case chars.$T: { + try { + [ + newCard, + inCodec, + outCodec, + capabilities, + inCodecBuf, + outCodecBuf, + warnings, + unsafeIsolationDangers + ] = this._parseDescribeTypeMessage(query); + const key = this._getQueryCacheKey(query, outputFormat, expectedCardinality); + this.queryCodecCache.set(key, [ + newCard, + inCodec, + outCodec, + capabilities, + unsafeIsolationDangers + ]); + } catch (e4) { + error2 = e4; + } + break; + } + case chars.$E: { + error2 = this._parseErrorMessage(); + error2._query = query; + break; + } + case chars.$s: { + options_1.Options.signalSchemaChange(); + this._parseDescribeStateMessage(); + break; + } + case chars.$Z: { + this._parseSyncMessage(); + parsing = false; + break; + } + default: + this._fallthrough(); + } + } + if (error2 !== null) { + if (error2 instanceof errors.StateMismatchError) { + return this._parse(language, query, outputFormat, expectedCardinality, state2, capabilitiesFlags, options, unsafeIsolationDangers); + } + throw error2; + } + return [ + newCard, + inCodec, + outCodec, + capabilities, + inCodecBuf, + outCodecBuf, + warnings, + unsafeIsolationDangers + ]; + } + async _executeFlow(language, query, args, outputFormat, expectedCardinality, state2, inCodec, outCodec, result, capabilitiesFlags = exports2.RESTRICTED_CAPABILITIES, options, unsafeIsolationDangers = []) { + let currentUnsafeIsolationDangers = unsafeIsolationDangers; + let ctx = state2.makeCodecContext(); + const wb = new buffer_1.WriteMessageBuffer(); + wb.beginMessage(chars.$O); + this._encodeParseParams(wb, query, outputFormat, expectedCardinality, state2, capabilitiesFlags, options, language, true, currentUnsafeIsolationDangers); + wb.writeBuffer(inCodec.tidBuffer); + wb.writeBuffer(outCodec.tidBuffer); + if (inCodec) { + wb.writeBuffer(this._encodeArgs(args, inCodec, ctx)); + } else { + wb.writeInt32(0); + } + wb.endMessage(); + wb.writeSync(); + this._sendData(wb.unwrap()); + let error2 = null; + let parsing = true; + let currentWarnings = []; + while (parsing) { + if (!this.buffer.takeMessage()) { + await this._waitForMessage(); + } + const mtype = this.buffer.getMessageType(); + switch (mtype) { + case chars.$D: { + if (error2 == null) { + try { + this._parseDataMessages(outCodec, result, ctx); + } catch (e4) { + error2 = e4; + this.buffer.finishMessage(); + } + } else { + this.buffer.discardMessage(); + } + break; + } + case chars.$C: { + this.lastStatus = this._parseCommandCompleteMessage(); + break; + } + case chars.$Z: { + this._parseSyncMessage(); + parsing = false; + break; + } + case chars.$T: { + try { + ctx = state2.makeCodecContext(); + const [newCard, newInCodec, newOutCodec, capabilities, _3, __, _warnings, _dangers] = this._parseDescribeTypeMessage(query); + if (outCodec !== codecs_1.NULL_CODEC && outCodec.tid !== newOutCodec.tid || inCodec !== codecs_1.NULL_CODEC && inCodec.tid !== newInCodec.tid) { + options_1.Options.signalSchemaChange(); + ctx = state2.makeCodecContext(); + } + const key = this._getQueryCacheKey(query, outputFormat, expectedCardinality); + this.queryCodecCache.set(key, [ + newCard, + newInCodec, + newOutCodec, + capabilities, + _dangers + ]); + outCodec = newOutCodec; + currentWarnings = _warnings; + currentUnsafeIsolationDangers = _dangers; + } catch (e4) { + options_1.Options.signalSchemaChange(); + error2 = e4; + } + break; + } + case chars.$s: { + options_1.Options.signalSchemaChange(); + this._parseDescribeStateMessage(); + break; + } + case chars.$E: { + error2 = this._parseErrorMessage(); + error2._query = query; + break; + } + default: + this._fallthrough(); + } + } + if (error2 != null) { + if (error2 instanceof errors.StateMismatchError) { + return this._executeFlow(language, query, args, outputFormat, expectedCardinality, state2, inCodec, outCodec, result, capabilitiesFlags, options, currentUnsafeIsolationDangers); + } + throw error2; + } + return [currentWarnings, currentUnsafeIsolationDangers]; + } + _getQueryCacheKey(query, outputFormat, expectedCardinality, language = ifaces_1.Language.EDGEQL) { + const expectOne = expectedCardinality === ifaces_1.Cardinality.ONE || expectedCardinality === ifaces_1.Cardinality.AT_MOST_ONE; + return [language, outputFormat, expectOne, query.length, query].join(";"); + } + _validateFetchCardinality(card, outputFormat, expectedCardinality) { + if (expectedCardinality === ifaces_1.Cardinality.ONE && card === ifaces_1.Cardinality.NO_RESULT) { + throw new errors.NoDataError(`query executed via queryRequiredSingle${outputFormat === ifaces_1.OutputFormat.JSON ? "JSON" : ""}() returned no data`); + } + } + async fetch(query, args = null, outputFormat, expectedCardinality, state2, privilegedMode = false, language = ifaces_1.Language.EDGEQL) { + if (language !== ifaces_1.Language.EDGEQL && (0, utils_1.versionGreaterThan)([3, 0], this.protocolVersion)) { + throw new errors.UnsupportedFeatureError(`the server does not support SQL queries, upgrade to 6.0 or newer`); + } + this._checkState(); + const requiredOne = expectedCardinality === ifaces_1.Cardinality.ONE; + const expectOne = requiredOne || expectedCardinality === ifaces_1.Cardinality.AT_MOST_ONE; + const asJson = outputFormat === ifaces_1.OutputFormat.JSON; + const key = this._getQueryCacheKey(query, outputFormat, expectedCardinality, language); + const ret = []; + let warnings = []; + let [card, inCodec, outCodec, , unsafeIsolationDangers] = this.queryCodecCache.get(key) ?? []; + if (card) { + this._validateFetchCardinality(card, outputFormat, expectedCardinality); + } + if (!inCodec && args !== null || this.stateCodec === codecs_1.INVALID_CODEC && !state2.isDefaultSession()) { + [card, inCodec, outCodec, , , , warnings, unsafeIsolationDangers] = await this._parse(language, query, outputFormat, expectedCardinality, state2, privilegedMode ? Capabilities.ALL : void 0, void 0, unsafeIsolationDangers); + this._validateFetchCardinality(card, outputFormat, expectedCardinality); + } + try { + [warnings, unsafeIsolationDangers] = await this._executeFlow(language, query, args, outputFormat, expectedCardinality, state2, inCodec ?? codecs_1.NULL_CODEC, outCodec ?? codecs_1.NULL_CODEC, ret, privilegedMode ? Capabilities.ALL : void 0, void 0, unsafeIsolationDangers); + } catch (e4) { + if (e4 instanceof errors.ParameterTypeMismatchError) { + [card, inCodec, outCodec, , unsafeIsolationDangers] = this.queryCodecCache.get(key); + [warnings, unsafeIsolationDangers] = await this._executeFlow(language, query, args, outputFormat, expectedCardinality, state2, inCodec ?? codecs_1.NULL_CODEC, outCodec ?? codecs_1.NULL_CODEC, ret, privilegedMode ? Capabilities.ALL : void 0); + } else { + throw e4; + } + } + if (outputFormat === ifaces_1.OutputFormat.NONE) { + return { result: null, warnings, unsafeIsolationDangers }; + } + if (expectOne) { + if (requiredOne && !ret.length) { + throw new errors.NoDataError("query returned no data"); + } else { + return { + result: ret[0] ?? (asJson ? "null" : null), + warnings, + unsafeIsolationDangers + }; + } + } else { + if (ret && ret.length) { + if (asJson) { + return { result: ret[0], warnings, unsafeIsolationDangers }; + } else { + return { result: ret, warnings, unsafeIsolationDangers }; + } + } else { + if (asJson) { + return { result: "[]", warnings, unsafeIsolationDangers }; + } else { + return { result: ret, warnings, unsafeIsolationDangers }; + } + } + } + } + getQueryCapabilities(query, outputFormat, expectedCardinality) { + var _a2; + const key = this._getQueryCacheKey(query, outputFormat, expectedCardinality); + return ((_a2 = this.queryCodecCache.get(key)) == null ? void 0 : _a2[3]) ?? null; + } + async resetState() { + if (this.connected && this.serverXactStatus !== TransactionStatus.TRANS_IDLE) { + try { + await this.fetch(`rollback`, void 0, ifaces_1.OutputFormat.NONE, ifaces_1.Cardinality.NO_RESULT, options_1.Options.defaults(), true); + } catch { + this._abortWithError(new errors.ClientConnectionClosedError("failed to reset state")); + } + } + } + _abort() { + this.connected = false; + this._abortWaiters(this.getConnAbortError()); + if (!this.connAbortWaiter.done) { + this.connAbortWaiter.set(); + } + } + isClosed() { + return !this.connected; + } + async close() { + this._abort(); + } + }; + exports2.BaseRawConnection = BaseRawConnection; + } +}); + +// ../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/scram.js +var require_scram = __commonJS({ + "../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/scram.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.saslprep = saslprep; + exports2.getSCRAM = getSCRAM; + var buffer_1 = require_buffer(); + var errors_1 = require_errors(); + var RAW_NONCE_LENGTH = 18; + function saslprep(str) { + return str.normalize("NFKC"); + } + function getSCRAM({ randomBytes, H: H2, HMAC, makeKey }) { + function bufferEquals(a3, b3) { + if (a3.length !== b3.length) { + return false; + } + for (let i4 = 0, len = a3.length; i4 < len; i4++) { + if (a3[i4] !== b3[i4]) { + return false; + } + } + return true; + } + function generateNonce(length = RAW_NONCE_LENGTH) { + return randomBytes(length); + } + function buildClientFirstMessage(clientNonce, username) { + const bare = `n=${saslprep(username)},r=${(0, buffer_1.encodeB64)(clientNonce)}`; + return [`n,,${bare}`, bare]; + } + function parseServerFirstMessage(msg) { + const attrs = msg.split(","); + if (attrs.length < 3) { + throw new errors_1.ProtocolError("malformed SCRAM message"); + } + const nonceAttr = attrs[0]; + if (!nonceAttr || nonceAttr[0] !== "r") { + throw new errors_1.ProtocolError("malformed SCRAM message"); + } + const nonceB64 = nonceAttr.split("=", 2)[1]; + if (!nonceB64) { + throw new errors_1.ProtocolError("malformed SCRAM message"); + } + const nonce = (0, buffer_1.decodeB64)(nonceB64); + const saltAttr = attrs[1]; + if (!saltAttr || saltAttr[0] !== "s") { + throw new errors_1.ProtocolError("malformed SCRAM message"); + } + const saltB64 = saltAttr.split("=", 2)[1]; + if (!saltB64) { + throw new errors_1.ProtocolError("malformed SCRAM message"); + } + const salt = (0, buffer_1.decodeB64)(saltB64); + const iterAttr = attrs[2]; + if (!iterAttr || iterAttr[0] !== "i") { + throw new errors_1.ProtocolError("malformed SCRAM message"); + } + const iter = iterAttr.split("=", 2)[1]; + if (!iter || !iter.match(/^[0-9]*$/)) { + throw new errors_1.ProtocolError("malformed SCRAM message"); + } + const iterCount = parseInt(iter, 10); + if (iterCount <= 0) { + throw new errors_1.ProtocolError("malformed SCRAM message"); + } + return [nonce, salt, iterCount]; + } + function parseServerFinalMessage(msg) { + const attrs = msg.split(","); + if (attrs.length < 1) { + throw new errors_1.ProtocolError("malformed SCRAM message"); + } + const nonceAttr = attrs[0]; + if (!nonceAttr || nonceAttr[0] !== "v") { + throw new errors_1.ProtocolError("malformed SCRAM message"); + } + const signatureB64 = nonceAttr.split("=", 2)[1]; + if (!signatureB64) { + throw new errors_1.ProtocolError("malformed SCRAM message"); + } + return (0, buffer_1.decodeB64)(signatureB64); + } + async function buildClientFinalMessage(password, salt, iterations, clientFirstBare, serverFirst, serverNonce) { + const clientFinal = `c=biws,r=${(0, buffer_1.encodeB64)(serverNonce)}`; + const authMessage = buffer_1.utf8Encoder.encode(`${clientFirstBare},${serverFirst},${clientFinal}`); + const saltedPassword = await _getSaltedPassword(buffer_1.utf8Encoder.encode(saslprep(password)), salt, iterations); + const clientKey = await _getClientKey(saltedPassword); + const storedKey = await H2(clientKey); + const clientSignature = await HMAC(storedKey, authMessage); + const clientProof = _XOR(clientKey, clientSignature); + const serverKey = await _getServerKey(saltedPassword); + const serverProof = await HMAC(serverKey, authMessage); + return [`${clientFinal},p=${(0, buffer_1.encodeB64)(clientProof)}`, serverProof]; + } + async function _getSaltedPassword(password, salt, iterations) { + const msg = new Uint8Array(salt.length + 4); + msg.set(salt); + msg.set([0, 0, 0, 1], salt.length); + const keyFromPassword = await makeKey(password); + let Hi = await HMAC(keyFromPassword, msg); + let Ui = Hi; + for (let _3 = 0; _3 < iterations - 1; _3++) { + Ui = await HMAC(keyFromPassword, Ui); + Hi = _XOR(Hi, Ui); + } + return Hi; + } + function _getClientKey(saltedPassword) { + return HMAC(saltedPassword, buffer_1.utf8Encoder.encode("Client Key")); + } + function _getServerKey(saltedPassword) { + return HMAC(saltedPassword, buffer_1.utf8Encoder.encode("Server Key")); + } + function _XOR(a3, b3) { + const len = a3.length; + if (len !== b3.length) { + throw new errors_1.ProtocolError("scram.XOR: buffers are of different lengths"); + } + const res = new Uint8Array(len); + for (let i4 = 0; i4 < len; i4++) { + res[i4] = a3[i4] ^ b3[i4]; + } + return res; + } + return { + bufferEquals, + generateNonce, + buildClientFirstMessage, + parseServerFirstMessage, + parseServerFinalMessage, + buildClientFinalMessage, + _getSaltedPassword, + _getClientKey, + _getServerKey, + _XOR + }; + } + } +}); + +// ../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/browserCrypto.js +var require_browserCrypto = __commonJS({ + "../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/browserCrypto.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.cryptoUtils = void 0; + async function makeKey(key) { + return await crypto.subtle.importKey("raw", key, { + name: "HMAC", + hash: { name: "SHA-256" } + }, false, ["sign"]); + } + function randomBytes(size) { + return crypto.getRandomValues(new Uint8Array(size)); + } + async function H2(msg) { + return new Uint8Array(await crypto.subtle.digest("SHA-256", msg)); + } + async function HMAC(key, msg) { + const cryptoKey = key instanceof Uint8Array ? await makeKey(key) : key; + return new Uint8Array(await crypto.subtle.sign("HMAC", cryptoKey, msg)); + } + exports2.cryptoUtils = { + makeKey, + randomBytes, + H: H2, + HMAC + }; + } +}); + +// ../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/nodeCrypto.js +var require_nodeCrypto = __commonJS({ + "../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/nodeCrypto.js"(exports2) { + "use strict"; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.cryptoUtils = void 0; + var node_crypto_1 = __importDefault2(require("node:crypto")); + function makeKey(keyBytes) { + return Promise.resolve(keyBytes); + } + function randomBytes(size) { + return node_crypto_1.default.randomBytes(size); + } + async function H2(msg) { + const sign = node_crypto_1.default.createHash("sha256"); + sign.update(msg); + return sign.digest(); + } + async function HMAC(key, msg) { + const cryptoKey = key instanceof Uint8Array ? key : node_crypto_1.default.KeyObject.from(key); + const hm = node_crypto_1.default.createHmac("sha256", cryptoKey); + hm.update(msg); + return hm.digest(); + } + exports2.cryptoUtils = { + makeKey, + randomBytes, + H: H2, + HMAC + }; + } +}); + +// ../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/cryptoUtils.js +var require_cryptoUtils = __commonJS({ + "../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/cryptoUtils.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + var browserCrypto_1 = require_browserCrypto(); + var isNode = typeof process !== "undefined" && process.versions != null && process.versions.node != null; + var cryptoUtils; + function loadCrypto() { + if (isNode) { + try { + require("node:crypto"); + cryptoUtils = require_nodeCrypto().cryptoUtils; + } catch (_3) { + if (typeof globalThis.crypto !== "undefined") { + cryptoUtils = browserCrypto_1.cryptoUtils; + } else { + throw new Error("No crypto implementation found"); + } + } + } else { + cryptoUtils = browserCrypto_1.cryptoUtils; + } + } + loadCrypto(); + exports2.default = cryptoUtils; + } +}); + +// ../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/rawConn.js +var require_rawConn = __commonJS({ + "../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/rawConn.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o3, m4, k3, k22) { + if (k22 === void 0) k22 = k3; + var desc = Object.getOwnPropertyDescriptor(m4, k3); + if (!desc || ("get" in desc ? !m4.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m4[k3]; + } }; + } + Object.defineProperty(o3, k22, desc); + } : function(o3, m4, k3, k22) { + if (k22 === void 0) k22 = k3; + o3[k22] = m4[k3]; + }); + var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? function(o3, v6) { + Object.defineProperty(o3, "default", { enumerable: true, value: v6 }); + } : function(o3, v6) { + o3["default"] = v6; + }); + var __importStar2 = exports2 && exports2.__importStar || function(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) { + for (var k3 in mod) if (k3 !== "default" && Object.prototype.hasOwnProperty.call(mod, k3)) __createBinding2(result, mod, k3); + } + __setModuleDefault2(result, mod); + return result; + }; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.RawConnection = void 0; + var node_net_1 = __importDefault2(require("node:net")); + var tls = __importStar2(require("node:tls")); + var baseConn_1 = require_baseConn(); + var utils_1 = require_utils2(); + var buffer_1 = require_buffer(); + var event_1 = __importDefault2(require_event()); + var chars = __importStar2(require_chars()); + var scram_1 = require_scram(); + var errors = __importStar2(require_errors()); + var cryptoUtils_1 = __importDefault2(require_cryptoUtils()); + var AuthenticationStatuses; + (function(AuthenticationStatuses2) { + AuthenticationStatuses2[AuthenticationStatuses2["AUTH_OK"] = 0] = "AUTH_OK"; + AuthenticationStatuses2[AuthenticationStatuses2["AUTH_SASL"] = 10] = "AUTH_SASL"; + AuthenticationStatuses2[AuthenticationStatuses2["AUTH_SASL_CONTINUE"] = 11] = "AUTH_SASL_CONTINUE"; + AuthenticationStatuses2[AuthenticationStatuses2["AUTH_SASL_FINAL"] = 12] = "AUTH_SASL_FINAL"; + })(AuthenticationStatuses || (AuthenticationStatuses = {})); + var scram = (0, scram_1.getSCRAM)(cryptoUtils_1.default); + var _tlsOptions = /* @__PURE__ */ new WeakMap(); + function getTlsOptions(config) { + if (_tlsOptions.has(config)) { + return _tlsOptions.get(config); + } + const tlsSecurity = config.tlsSecurity; + const tlsOptions = { + ALPNProtocols: ["edgedb-binary"], + rejectUnauthorized: tlsSecurity !== "insecure" + }; + const isIPAddress = node_net_1.default.isIP(config.address[0]) !== 0; + if (!isIPAddress) { + tlsOptions.servername = config.tlsServerName || config.address[0]; + } + _tlsOptions.set(config, tlsOptions); + if (config._tlsCAData !== null) { + tlsOptions.ca = config._tlsCAData; + } + if (tlsSecurity === "no_host_verification") { + tlsOptions.checkServerIdentity = (hostname, cert) => { + const err2 = tls.checkServerIdentity(hostname, cert); + if (err2 === void 0) { + return void 0; + } + if (err2.message.startsWith("Hostname/IP does not match certificate")) { + return void 0; + } + return err2; + }; + } + return tlsOptions; + } + var RawConnection = class extends baseConn_1.BaseRawConnection { + config; + sock; + paused; + constructor(sock, config, registry) { + super(registry); + this.config = config; + this.paused = false; + this.sock = sock; + this.sock.setNoDelay(); + this.sock.on("error", this._onError.bind(this)); + this.sock.on("data", this._onData.bind(this)); + if (tls.TLSSocket && this.sock instanceof tls.TLSSocket) { + this.sock.on("secureConnect", this._onConnect.bind(this)); + } else { + this.sock.on("connect", this._onConnect.bind(this)); + } + this.sock.on("close", this._onClose.bind(this)); + } + _onConnect() { + this.connWaiter.set(); + } + _onClose() { + if (!this.connected) { + return; + } + const newErr = new errors.ClientConnectionClosedError(`the connection has been aborted`); + if (!this.connWaiter.done || this.messageWaiter) { + this._abortWaiters(newErr); + } + if (this.buffer.takeMessage() && this.buffer.getMessageType() === chars.$E) { + Object.defineProperty(newErr, "cause", { + enumerable: false, + value: this._parseErrorMessage() + }); + } + this._abortWithError(newErr); + } + _onError(err2) { + const newErr = new errors.ClientConnectionClosedError(`network error: ${err2}`, { cause: err2 }); + try { + this._abortWaiters(newErr); + } finally { + this._abortWithError(newErr); + } + } + _onData(data) { + try { + this.buffer.feed(data); + } catch (e4) { + if (this.messageWaiter) { + this.messageWaiter.setError(e4); + this.messageWaiter = null; + } + this._abortWithError(e4); + } + if (this.messageWaiter) { + if (this.buffer.takeMessage()) { + this.messageWaiter.set(); + this.messageWaiter = null; + } + } + } + async _waitForMessage() { + if (this.buffer.takeMessage()) { + return; + } + if (this.paused) { + this.paused = false; + this.sock.resume(); + } + this.sock.ref(); + this.messageWaiter = new event_1.default(); + try { + await this.messageWaiter.wait(); + } finally { + this.sock.unref(); + } + } + _sendData(data) { + this.sock.write(data); + } + static newSock(addr, options) { + if (typeof addr === "string") { + return node_net_1.default.createConnection(addr); + } + const [host, port] = addr; + if (options == null) { + return node_net_1.default.createConnection(port, host); + } + const opts = { ...options, host, port }; + return tls.connect(opts); + } + _abort() { + if (this.sock && this.connected) { + this.sock.destroy(); + } + super._abort(); + } + async close() { + if (this.sock && this.connected) { + this.sock.write(new buffer_1.WriteMessageBuffer().beginMessage(chars.$X).endMessage().unwrap()); + } + return await super.close(); + } + static async connectWithTimeout(config, registry, useTls = true) { + const sock = this.newSock(config.connectionParams.address, useTls ? getTlsOptions(config.connectionParams) : void 0); + const conn = new this(sock, config, registry); + const connPromise = conn.connect(); + let timeoutCb = null; + let timeoutHappened = false; + if (config.connectTimeout) { + timeoutCb = setTimeout(() => { + if (!conn.connected) { + timeoutHappened = true; + conn.sock.destroy(new errors.ClientConnectionTimeoutError(`connection timed out (${config.connectTimeout}ms)`)); + } + }, config.connectTimeout); + } + try { + await connPromise; + } catch (e4) { + conn._abort(); + if (timeoutHappened && e4 instanceof errors.ClientConnectionClosedError) { + throw new errors.ClientConnectionTimeoutError(`connection timed out (${config.connectTimeout}ms)`); + } + if (e4 instanceof errors.GelError) { + throw e4; + } else { + let err2; + switch (e4.code) { + case "EPROTO": + if (useTls === true) { + try { + return this.connectWithTimeout(config, registry, false); + } catch { + } + } + err2 = new errors.ClientConnectionFailedError(`${e4.message} +Attempted to connect using the following credentials: +${config.connectionParams.explainConfig()} +`, { cause: e4 }); + break; + case "ECONNREFUSED": + case "ECONNABORTED": + case "ECONNRESET": + case "ENOTFOUND": + case "ENOENT": + err2 = new errors.ClientConnectionFailedTemporarilyError(`${e4.message} +Attempted to connect using the following credentials: +${config.connectionParams.explainConfig()} +`, { cause: e4 }); + break; + default: + err2 = new errors.ClientConnectionFailedError(`${e4.message} +Attempted to connect using the following credentials: +${config.connectionParams.explainConfig()} +`, { cause: e4 }); + break; + } + throw err2; + } + } finally { + if (timeoutCb != null) { + clearTimeout(timeoutCb); + } + } + return conn; + } + async connect() { + await this.connWaiter.wait(); + if (this.sock instanceof tls.TLSSocket) { + if (this.sock.alpnProtocol !== "edgedb-binary") { + throw new errors.ClientConnectionFailedError("The server doesn't support the edgedb-binary protocol."); + } + } + const handshake = new buffer_1.WriteMessageBuffer(); + handshake.beginMessage(chars.$V).writeInt16(this.protocolVersion[0]).writeInt16(this.protocolVersion[1]); + const clientHandshakeOptions = { + user: this.config.connectionParams.user, + database: this.config.connectionParams.database + }; + if (this.config.connectionParams.secretKey != null) { + clientHandshakeOptions.secret_key = this.config.connectionParams.secretKey; + } + handshake.writeInt16(Object.keys(clientHandshakeOptions).length); + for (const [key, value] of Object.entries(clientHandshakeOptions)) { + handshake.writeString(key).writeString(value); + } + handshake.writeInt16(0); + handshake.endMessage(); + this.sock.write(handshake.unwrap()); + while (true) { + if (!this.buffer.takeMessage()) { + await this._waitForMessage(); + } + const mtype = this.buffer.getMessageType(); + switch (mtype) { + case chars.$v: { + const hi = this.buffer.readInt16(); + const lo = this.buffer.readInt16(); + this._parseHeaders(); + this.buffer.finishMessage(); + const proposed = [hi, lo]; + if ((0, utils_1.versionGreaterThan)(proposed, baseConn_1.PROTO_VER) || (0, utils_1.versionGreaterThan)(baseConn_1.PROTO_VER_MIN, proposed)) { + throw new errors.UnsupportedProtocolVersionError(`the server requested an unsupported version of the protocol ${hi}.${lo}`); + } + this.protocolVersion = [hi, lo]; + break; + } + case chars.$R: { + const status = this.buffer.readInt32(); + if (status === AuthenticationStatuses.AUTH_OK) { + this.buffer.finishMessage(); + } else if (status === AuthenticationStatuses.AUTH_SASL) { + await this._authSasl(); + } else { + throw new errors.ProtocolError(`unsupported authentication method requested by the server: ${status}`); + } + break; + } + case chars.$K: { + this.serverSecret = this.buffer.readBuffer(32); + this.buffer.finishMessage(); + break; + } + case chars.$E: { + throw this._parseErrorMessage(); + } + case chars.$s: { + this._parseDescribeStateMessage(); + break; + } + case chars.$Z: { + this._parseSyncMessage(); + if (!(this.sock instanceof tls.TLSSocket) && typeof Deno === "undefined") { + const [major, minor] = this.protocolVersion; + throw new errors.ProtocolError(`the protocol version requires TLS: ${major}.${minor}`); + } + this.connected = true; + return; + } + default: + this._fallthrough(); + } + } + } + async _authSasl() { + const numMethods = this.buffer.readInt32(); + if (numMethods <= 0) { + throw new errors.ProtocolError("the server requested SASL authentication but did not offer any methods"); + } + const methods = []; + let foundScram256 = false; + for (let _3 = 0; _3 < numMethods; _3++) { + const method = this.buffer.readString(); + if (method === "SCRAM-SHA-256") { + foundScram256 = true; + } + methods.push(method); + } + this.buffer.finishMessage(); + if (!foundScram256) { + throw new errors.ProtocolError(`the server offered the following SASL authentication methods: ${methods.join(", ")}, neither are supported.`); + } + const clientNonce = scram.generateNonce(); + const [clientFirst, clientFirstBare] = scram.buildClientFirstMessage(clientNonce, this.config.connectionParams.user); + const wb = new buffer_1.WriteMessageBuffer(); + wb.beginMessage(chars.$p).writeString("SCRAM-SHA-256").writeString(clientFirst).endMessage(); + this.sock.write(wb.unwrap()); + await this._ensureMessage(chars.$R, "SASLContinue"); + let status = this.buffer.readInt32(); + if (status !== AuthenticationStatuses.AUTH_SASL_CONTINUE) { + throw new errors.ProtocolError(`expected SASLContinue from the server, received ${status}`); + } + const serverFirst = this.buffer.readString(); + this.buffer.finishMessage(); + const [serverNonce, salt, itercount] = scram.parseServerFirstMessage(serverFirst); + const [clientFinal, expectedServerSig] = await scram.buildClientFinalMessage(this.config.connectionParams.password || "", salt, itercount, clientFirstBare, serverFirst, serverNonce); + wb.reset().beginMessage(chars.$r).writeString(clientFinal).endMessage(); + this.sock.write(wb.unwrap()); + await this._ensureMessage(chars.$R, "SASLFinal"); + status = this.buffer.readInt32(); + if (status !== AuthenticationStatuses.AUTH_SASL_FINAL) { + throw new errors.ProtocolError(`expected SASLFinal from the server, received ${status}`); + } + const serverFinal = this.buffer.readString(); + this.buffer.finishMessage(); + const serverSig = scram.parseServerFinalMessage(serverFinal); + if (!scram.bufferEquals(serverSig, expectedServerSig)) { + throw new errors.ProtocolError("server SCRAM proof does not match"); + } + } + async _ensureMessage(expectedMtype, err2) { + if (!this.buffer.takeMessage()) { + await this._waitForMessage(); + } + const mtype = this.buffer.getMessageType(); + switch (mtype) { + case chars.$E: { + throw this._parseErrorMessage(); + } + case expectedMtype: { + return; + } + default: { + throw new errors.UnexpectedMessageError(`expected ${err2} from the server, received ${chars.chr(mtype)}`); + } + } + } + }; + exports2.RawConnection = RawConnection; + } +}); + +// ../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/fetchConn.js +var require_fetchConn = __commonJS({ + "../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/fetchConn.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o3, m4, k3, k22) { + if (k22 === void 0) k22 = k3; + var desc = Object.getOwnPropertyDescriptor(m4, k3); + if (!desc || ("get" in desc ? !m4.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m4[k3]; + } }; + } + Object.defineProperty(o3, k22, desc); + } : function(o3, m4, k3, k22) { + if (k22 === void 0) k22 = k3; + o3[k22] = m4[k3]; + }); + var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? function(o3, v6) { + Object.defineProperty(o3, "default", { enumerable: true, value: v6 }); + } : function(o3, v6) { + o3["default"] = v6; + }); + var __importStar2 = exports2 && exports2.__importStar || function(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) { + for (var k3 in mod) if (k3 !== "default" && Object.prototype.hasOwnProperty.call(mod, k3)) __createBinding2(result, mod, k3); + } + __setModuleDefault2(result, mod); + return result; + }; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.FetchConnection = exports2.AdminUIFetchConnection = void 0; + var baseConn_1 = require_baseConn(); + var codecs_1 = require_codecs(); + var errors_1 = require_errors(); + var ifaces_1 = require_ifaces2(); + var buffer_1 = require_buffer(); + var chars = __importStar2(require_chars()); + var event_1 = __importDefault2(require_event()); + var utils_1 = require_utils2(); + var PROTO_MIME = `application/x.edgedb.v_${baseConn_1.PROTO_VER[0]}_${baseConn_1.PROTO_VER[1]}.binary'`; + var PROTO_MIME_RE = /application\/x\.edgedb\.v_(\d+)_(\d+)\.binary/; + var STUDIO_CAPABILITIES = (baseConn_1.RESTRICTED_CAPABILITIES | baseConn_1.Capabilities.SESSION_CONFIG | baseConn_1.Capabilities.SET_GLOBAL) >>> 0; + var BaseFetchConnection = class extends baseConn_1.BaseRawConnection { + authenticatedFetch; + abortSignal = null; + constructor(fetch3, registry) { + super(registry); + this.authenticatedFetch = fetch3; + } + async _waitForMessage() { + if (this.buffer.takeMessage()) { + return; + } + if (this.messageWaiter == null || this.messageWaiter.done) { + throw new errors_1.InternalClientError(`message waiter was not initialized before waiting for response`); + } + await this.messageWaiter.wait(); + } + async __sendData(data) { + if (this.buffer.takeMessage()) { + const mtype = this.buffer.getMessageType(); + throw new errors_1.InternalClientError(`sending request before reading all data of the previous one: ${chars.chr(mtype)}`); + } + if (this.messageWaiter != null && !this.messageWaiter.done) { + throw new errors_1.InternalClientError(`sending request before waiting for completion of the previous one`); + } + this.messageWaiter = new event_1.default(); + try { + const resp = await this.authenticatedFetch("", { + method: "post", + body: data, + headers: { + "Content-Type": PROTO_MIME + }, + signal: this.abortSignal + }); + if (!resp.ok) { + throw new errors_1.ProtocolError(`fetch failed with status code ${resp.status}: ${resp.statusText}`); + } + const contentType = resp.headers.get("content-type"); + const matchProtoVer = contentType == null ? void 0 : contentType.match(PROTO_MIME_RE); + if (matchProtoVer) { + this.protocolVersion = [+matchProtoVer[1], +matchProtoVer[2]]; + } + const respData = await resp.arrayBuffer(); + const buf = new Uint8Array(respData); + try { + this.buffer.feed(buf); + } catch (e4) { + this.messageWaiter.setError(e4); + } + if (!this.buffer.takeMessage()) { + throw new errors_1.ProtocolError("no binary protocol messages in the response"); + } + this.messageWaiter.set(); + } catch (e4) { + this.messageWaiter.setError(e4); + } finally { + this.messageWaiter = null; + } + } + _sendData(data) { + this.__sendData(data); + } + async fetch(...args) { + const protoVer = this.protocolVersion; + try { + return await super.fetch(...args); + } catch (err2) { + if (err2 instanceof errors_1.BinaryProtocolError && !(0, utils_1.versionEqual)(protoVer, this.protocolVersion)) { + return await super.fetch(...args); + } + throw err2; + } + } + static create(fetch3, registry) { + const conn = new this(fetch3, registry); + conn.connected = true; + conn.connWaiter.set(); + return conn; + } + }; + var AdminUIFetchConnection = class extends BaseFetchConnection { + adminUIMode = true; + static create(fetch3, registry, knownServerVersion) { + const conn = super.create(fetch3, registry); + if (knownServerVersion && knownServerVersion[0] < 6) { + conn.protocolVersion = [2, 0]; + } + return conn; + } + async rawParse(language, query, state2, options, abortSignal) { + this.abortSignal = abortSignal ?? null; + const result = await this._parse(language, query, ifaces_1.OutputFormat.BINARY, ifaces_1.Cardinality.MANY, state2, STUDIO_CAPABILITIES, options); + return [this.protocolVersion, ...result]; + } + async rawExecute(language, query, state2, outCodec, options, inCodec, args = null, abortSignal) { + this.abortSignal = abortSignal ?? null; + const result = new buffer_1.WriteBuffer(); + const [warnings] = await this._executeFlow(language, query, args, outCodec ? ifaces_1.OutputFormat.BINARY : ifaces_1.OutputFormat.NONE, ifaces_1.Cardinality.MANY, state2, inCodec ?? codecs_1.NULL_CODEC, outCodec ?? codecs_1.NULL_CODEC, result, STUDIO_CAPABILITIES, options); + return [result.unwrap(), warnings]; + } + }; + exports2.AdminUIFetchConnection = AdminUIFetchConnection; + var FetchConnection = class _FetchConnection extends BaseFetchConnection { + static createConnectWithTimeout(httpSCRAMAuth) { + return async function connectWithTimeout(config, registry) { + const fetch3 = await (0, utils_1.getAuthenticatedFetch)(config.connectionParams, httpSCRAMAuth); + const conn = new _FetchConnection(fetch3, registry); + conn.connected = true; + conn.connWaiter.set(); + return conn; + }; + } + }; + exports2.FetchConnection = FetchConnection; + } +}); + +// ../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/httpScram.js +var require_httpScram = __commonJS({ + "../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/httpScram.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.getHTTPSCRAMAuth = getHTTPSCRAMAuth; + var errors_1 = require_errors(); + var buffer_1 = require_buffer(); + var scram_1 = require_scram(); + var AUTH_ENDPOINT = "/auth/token"; + function getHTTPSCRAMAuth(cryptoUtils) { + const { bufferEquals, generateNonce, buildClientFirstMessage, buildClientFinalMessage, parseServerFirstMessage, parseServerFinalMessage } = (0, scram_1.getSCRAM)(cryptoUtils); + return async function HTTPSCRAMAuth(baseUrl, username, password) { + const authUrl = baseUrl + AUTH_ENDPOINT; + const clientNonce = generateNonce(); + const [clientFirst, clientFirstBare] = buildClientFirstMessage(clientNonce, username); + const serverFirstRes = await fetch(authUrl, { + headers: { + Authorization: `SCRAM-SHA-256 data=${utf8ToB64(clientFirst)}` + } + }); + const authenticateHeader = serverFirstRes.headers.get("WWW-Authenticate"); + if (serverFirstRes.status !== 401 || !authenticateHeader) { + const body = await serverFirstRes.text(); + throw new errors_1.ProtocolError(`authentication failed: ${body}`); + } + if (!authenticateHeader.startsWith("SCRAM-SHA-256")) { + throw new errors_1.ProtocolError(`unsupported authentication scheme: ${authenticateHeader}`); + } + const authParams = authenticateHeader.split(/ (.+)?/, 2)[1] ?? ""; + if (authParams.length === 0) { + const body = await serverFirstRes.text(); + throw new errors_1.ProtocolError(`authentication failed: ${body}`); + } + const { sid, data: serverFirst } = parseScramAttrs(authParams); + if (!sid || !serverFirst) { + throw new errors_1.ProtocolError(`authentication challenge missing attributes: expected "sid" and "data", got '${authParams}'`); + } + const [serverNonce, salt, iterCount] = parseServerFirstMessage(serverFirst); + const [clientFinal, expectedServerSig] = await buildClientFinalMessage(password, salt, iterCount, clientFirstBare, serverFirst, serverNonce); + const serverFinalRes = await fetch(authUrl, { + headers: { + Authorization: `SCRAM-SHA-256 sid=${sid}, data=${utf8ToB64(clientFinal)}` + } + }); + const authInfoHeader = serverFinalRes.headers.get("Authentication-Info"); + if (!serverFinalRes.ok || !authInfoHeader) { + const body = await serverFinalRes.text(); + throw new errors_1.ProtocolError(`authentication failed: ${body}`); + } + const { data: serverFinal, sid: sidFinal } = parseScramAttrs(authInfoHeader); + if (!sidFinal || !serverFinal) { + throw new errors_1.ProtocolError(`authentication info missing attributes: expected "sid" and "data", got '${authInfoHeader}'`); + } + if (sidFinal !== sid) { + throw new errors_1.ProtocolError("SCRAM session id does not match"); + } + const serverSig = parseServerFinalMessage(serverFinal); + if (!bufferEquals(serverSig, expectedServerSig)) { + throw new errors_1.ProtocolError("server SCRAM proof does not match"); + } + const authToken = await serverFinalRes.text(); + return authToken; + }; + } + function utf8ToB64(str) { + return (0, buffer_1.encodeB64)(buffer_1.utf8Encoder.encode(str)); + } + function b64ToUtf8(str) { + return buffer_1.utf8Decoder.decode((0, buffer_1.decodeB64)(str)); + } + function parseScramAttrs(paramsStr) { + const params = new Map(paramsStr.length > 0 ? paramsStr.split(",").map((attr) => attr.split(/=(.+)?/, 2)).map(([key, val2]) => [key.trim(), val2.trim()]) : []); + const sid = params.get("sid") ?? null; + const rawData = params.get("data"); + const data = rawData ? b64ToUtf8(rawData) : null; + return { sid, data }; + } + } +}); + +// ../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/nodeClient.js +var require_nodeClient = __commonJS({ + "../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/nodeClient.js"(exports2) { + "use strict"; + var __importDefault2 = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.createClient = createClient; + exports2.createHttpClient = createHttpClient; + var baseClient_1 = require_baseClient(); + var conUtils_server_1 = require_conUtils_server(); + var options_1 = require_options(); + var rawConn_1 = require_rawConn(); + var fetchConn_1 = require_fetchConn(); + var httpScram_1 = require_httpScram(); + var cryptoUtils_1 = __importDefault2(require_cryptoUtils()); + var ClientPool = class extends baseClient_1.BaseClientPool { + isStateless = false; + _connectWithTimeout = rawConn_1.RawConnection.connectWithTimeout.bind(rawConn_1.RawConnection); + }; + function createClient(options) { + return new baseClient_1.Client(new ClientPool(conUtils_server_1.parseConnectArguments, typeof options === "string" ? { dsn: options } : options ?? {}), options_1.Options.defaults()); + } + var httpSCRAMAuth = (0, httpScram_1.getHTTPSCRAMAuth)(cryptoUtils_1.default); + var FetchClientPool = class extends baseClient_1.BaseClientPool { + isStateless = true; + _connectWithTimeout = fetchConn_1.FetchConnection.createConnectWithTimeout(httpSCRAMAuth); + }; + function createHttpClient(options) { + return new baseClient_1.Client(new FetchClientPool(conUtils_server_1.parseConnectArguments, typeof options === "string" ? { dsn: options } : options ?? {}), options_1.Options.defaults()); + } + } +}); + +// ../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/datatypes/wkt.js +var require_wkt = __commonJS({ + "../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/datatypes/wkt.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.parseWKT = parseWKT; + var postgis_1 = require_postgis(); + var sridRegex = /\s*SRID=([0-9]+)\s*;/iy; + var endRegex = /\s*$/y; + var geomTypes = [ + "POINT", + "LINESTRING", + "POLYGON", + "MULTIPOINT", + "MULTILINESTRING", + "MULTIPOLYGON", + "GEOMETRYCOLLECTION", + "POLYHEDRALSURFACE", + "TRIANGLE", + "TIN", + "CIRCULARSTRING", + "COMPOUNDCURVE", + "CURVEPOLYGON", + "MULTICURVE", + "MULTISURFACE" + ]; + var geomTypeRegex = new RegExp(`\\s*(${geomTypes.join("|")})`, "iy"); + var zmFlagsRegex = /\s+(ZM|Z|M)/iy; + var emptyOrOpenRegex = /\s+(EMPTY)|\s*\(/iy; + var openRegex = /\s*\(/y; + var closeRegex = /\s*\)/y; + var commaRegex = /\s*,/y; + var _num = "-?[0-9]+(?:\\.[0-9]+)?"; + var pointRegex = new RegExp(`\\s*(${_num})\\s+(${_num})(?:\\s+(${_num}))?(?:\\s+(${_num}))?`, "y"); + function parseWKT(wkt) { + let i4 = 0; + let hasZ = null; + let hasM = null; + let srid = null; + sridRegex.lastIndex = i4; + const _srid = sridRegex.exec(wkt); + if (_srid) { + srid = parseInt(_srid[1], 10); + i4 += _srid[0].length; + } + const geom = _parseGeom(); + endRegex.lastIndex = i4; + if (endRegex.exec(wkt) === null) { + throw createParseError(wkt, i4, "expected end of wkt"); + } + return geom; + function _parseGeom(unnamedGeom = null, allowedGeoms = null) { + geomTypeRegex.lastIndex = i4; + const _geomType = geomTypeRegex.exec(wkt); + const type = (_geomType == null ? void 0 : _geomType[1].toUpperCase()) ?? unnamedGeom; + if (!type || allowedGeoms && !allowedGeoms.includes(type)) { + throw createParseError(wkt, i4, `expected one of ${(allowedGeoms ? ["(", ...allowedGeoms] : geomTypes).join(", ")}`); + } + i4 += (_geomType == null ? void 0 : _geomType[0].length) ?? 0; + if (_geomType !== null) { + zmFlagsRegex.lastIndex = i4; + const _zmFlags = zmFlagsRegex.exec(wkt); + if (_zmFlags !== null) { + const zm = _zmFlags[1].toLowerCase(); + hasZ = zm === "zm" || zm === "z"; + hasM = zm === "zm" || zm === "m"; + i4 += _zmFlags[0].length; + } else { + hasZ = null; + hasM = null; + } + } + const open = _geomType === null ? openRegex : emptyOrOpenRegex; + open.lastIndex = i4; + const _emptyOrOpen = open.exec(wkt); + if (_emptyOrOpen === null) { + throw createParseError(wkt, i4, _geomType === null ? `expected (` : `expected EMPTY or (`); + } + i4 += _emptyOrOpen[0].length; + const empty = _emptyOrOpen[1] != null; + let geom2; + switch (type) { + case "POINT": + geom2 = _parsePoint(empty); + break; + case "LINESTRING": + case "CIRCULARSTRING": + geom2 = _parseLineString(empty, type === "CIRCULARSTRING" ? postgis_1.CircularString : postgis_1.LineString); + break; + case "POLYGON": + case "TRIANGLE": + geom2 = _parsePolygon(empty, type === "TRIANGLE" ? postgis_1.Triangle : postgis_1.Polygon); + break; + case "MULTIPOINT": + geom2 = new postgis_1.MultiPoint(empty ? [] : _parseCommaSep(() => _parseBracketedGeom(_parsePoint)), hasZ ?? false, hasM ?? false, srid); + break; + case "MULTILINESTRING": + geom2 = new postgis_1.MultiLineString(empty ? [] : _parseCommaSep(() => _parseBracketedGeom(_parseLineString)), hasZ ?? false, hasM ?? false, srid); + break; + case "MULTIPOLYGON": + case "POLYHEDRALSURFACE": + case "TIN": + { + const Geom = type === "TIN" ? postgis_1.TriangulatedIrregularNetwork : type === "POLYHEDRALSURFACE" ? postgis_1.PolyhedralSurface : postgis_1.MultiPolygon; + geom2 = new Geom(empty ? [] : _parseCommaSep(() => _parseBracketedGeom(() => _parsePolygon(false, type === "TIN" ? postgis_1.Triangle : postgis_1.Polygon))), hasZ ?? false, hasM ?? false, srid); + } + break; + case "GEOMETRYCOLLECTION": { + geom2 = new postgis_1.GeometryCollection(empty ? [] : _checkDimensions(() => _parseCommaSep(_parseGeom)), hasZ ?? false, hasM ?? false, srid); + break; + } + case "COMPOUNDCURVE": + { + const segments = empty ? [] : _checkDimensions(() => _parseCommaSep(() => _parseGeom("LINESTRING", ["LINESTRING", "CIRCULARSTRING"]))); + geom2 = new postgis_1.CompoundCurve(segments, hasZ ?? false, hasM ?? false, srid); + } + break; + case "CURVEPOLYGON": + case "MULTICURVE": + { + const rings = empty ? [] : _checkDimensions(() => _parseCommaSep(() => _parseGeom("LINESTRING", [ + "LINESTRING", + "CIRCULARSTRING", + "COMPOUNDCURVE" + ]))); + const Geom = type === "MULTICURVE" ? postgis_1.MultiCurve : postgis_1.CurvePolygon; + geom2 = new Geom(rings, hasZ ?? false, hasM ?? false, srid); + } + break; + case "MULTISURFACE": + { + const surfaces = empty ? [] : _checkDimensions(() => _parseCommaSep(() => _parseGeom("POLYGON", ["POLYGON", "CURVEPOLYGON"]))); + geom2 = new postgis_1.MultiSurface(surfaces, hasZ ?? false, hasM ?? false, srid); + } + break; + default: + assertNever(type, `unknown geometry type ${type}`); + } + if (!empty) { + closeRegex.lastIndex = i4; + const _close = closeRegex.exec(wkt); + if (_close === null) { + throw createParseError(wkt, i4, `expected )`); + } + i4 += _close[0].length; + } + return geom2; + } + function _parsePoint(empty = false) { + if (empty) { + return new postgis_1.Point(NaN, NaN, hasZ ? NaN : null, hasM ? NaN : null, srid); + } + pointRegex.lastIndex = i4; + const coords = pointRegex.exec(wkt); + if (coords === null) { + throw createParseError(wkt, i4, `expected between 2 to 4 coordinates`); + } + const x4 = parseFloat(coords[1]); + const y2 = parseFloat(coords[2]); + const z2 = coords[3] ? parseFloat(coords[3]) : null; + const m4 = coords[4] ? parseFloat(coords[4]) : null; + if (hasZ === null) { + hasZ = z2 !== null; + hasM = m4 !== null; + } else { + if (m4 === null) { + if (hasZ && hasM) { + throw createParseError(wkt, i4, `expected M coordinate`); + } + } else { + if (!hasM) { + throw createParseError(wkt, i4, `unexpected M coordinate`); + } + } + if (z2 === null) { + if (hasZ || hasM) { + throw createParseError(wkt, i4, `expected ${hasZ ? "Z" : "M"} coordinate`); + } + } else { + if (!hasZ && (!hasM || m4 !== null)) { + throw createParseError(wkt, i4, `unexpected Z coordinate`); + } + } + } + i4 += coords[0].length; + return new postgis_1.Point(x4, y2, hasZ ? z2 : null, hasZ ? m4 : z2, srid); + } + function _parseLineString(empty = false, Geom = postgis_1.LineString) { + return new Geom(empty ? [] : _parseCommaSep(_parsePoint), hasZ ?? false, hasM ?? false, srid); + } + function _parsePolygon(empty = false, Geom = postgis_1.Polygon) { + return new Geom(empty ? [] : _parseCommaSep(() => _parseBracketedGeom(_parseLineString)), hasZ ?? false, hasM ?? false, srid); + } + function _parseCommaSep(parseGeom) { + const geoms = [parseGeom()]; + while (true) { + commaRegex.lastIndex = i4; + const comma = commaRegex.exec(wkt); + if (comma === null) { + break; + } + i4 += comma[0].length; + geoms.push(parseGeom()); + } + return geoms; + } + function _parseBracketedGeom(parseGeom) { + openRegex.lastIndex = i4; + const open = openRegex.exec(wkt); + if (open === null) { + throw createParseError(wkt, i4, `expected (`); + } + i4 += open[0].length; + const geom2 = parseGeom(); + closeRegex.lastIndex = i4; + const close = closeRegex.exec(wkt); + if (close === null) { + throw createParseError(wkt, i4, `expected )`); + } + i4 += close[0].length; + return geom2; + } + function _checkDimensions(parseChildren) { + const parentZ = hasZ; + const parentM = hasM; + const geoms = parseChildren(); + hasZ = parentZ ?? geoms[0].hasZ ?? false; + hasM = parentM ?? geoms[0].hasM ?? false; + if (geoms.some((geom2) => geom2.hasZ !== hasZ || geom2.hasM !== hasM)) { + throw createParseError(wkt, i4, `child geometries have mixed dimensions`); + } + return geoms; + } + } + function createParseError(_wkt, index6, error2) { + return new Error(`${error2} at position ${index6}`); + } + function assertNever(_type, message) { + throw new Error(message); + } + } +}); + +// ../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/index.shared.js +var require_index_shared = __commonJS({ + "../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/index.shared.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o3, m4, k3, k22) { + if (k22 === void 0) k22 = k3; + var desc = Object.getOwnPropertyDescriptor(m4, k3); + if (!desc || ("get" in desc ? !m4.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m4[k3]; + } }; + } + Object.defineProperty(o3, k22, desc); + } : function(o3, m4, k3, k22) { + if (k22 === void 0) k22 = k3; + o3[k22] = m4[k3]; + }); + var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? function(o3, v6) { + Object.defineProperty(o3, "default", { enumerable: true, value: v6 }); + } : function(o3, v6) { + o3["default"] = v6; + }); + var __exportStar2 = exports2 && exports2.__exportStar || function(m4, exports3) { + for (var p3 in m4) if (p3 !== "default" && !Object.prototype.hasOwnProperty.call(exports3, p3)) __createBinding2(exports3, m4, p3); + }; + var __importStar2 = exports2 && exports2.__importStar || function(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) { + for (var k3 in mod) if (k3 !== "default" && Object.prototype.hasOwnProperty.call(mod, k3)) __createBinding2(result, mod, k3); + } + __setModuleDefault2(result, mod); + return result; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2._ReadBuffer = exports2._CodecsRegistry = exports2.throwWarnings = exports2.logWarnings = exports2.defaultBackoff = exports2.Options = exports2.RetryOptions = exports2.RetryCondition = exports2.IsolationLevel = exports2.parseWKT = exports2.Float16Array = exports2.SparseVector = exports2.MultiRange = exports2.Range = exports2.ConfigMemory = exports2.DateDuration = exports2.RelativeDuration = exports2.Duration = exports2.LocalTime = exports2.LocalDate = exports2.LocalDateTime = void 0; + var datetime_1 = require_datetime(); + Object.defineProperty(exports2, "LocalDateTime", { enumerable: true, get: function() { + return datetime_1.LocalDateTime; + } }); + Object.defineProperty(exports2, "LocalDate", { enumerable: true, get: function() { + return datetime_1.LocalDate; + } }); + Object.defineProperty(exports2, "LocalTime", { enumerable: true, get: function() { + return datetime_1.LocalTime; + } }); + Object.defineProperty(exports2, "Duration", { enumerable: true, get: function() { + return datetime_1.Duration; + } }); + Object.defineProperty(exports2, "RelativeDuration", { enumerable: true, get: function() { + return datetime_1.RelativeDuration; + } }); + Object.defineProperty(exports2, "DateDuration", { enumerable: true, get: function() { + return datetime_1.DateDuration; + } }); + var memory_1 = require_memory(); + Object.defineProperty(exports2, "ConfigMemory", { enumerable: true, get: function() { + return memory_1.ConfigMemory; + } }); + var range_1 = require_range2(); + Object.defineProperty(exports2, "Range", { enumerable: true, get: function() { + return range_1.Range; + } }); + Object.defineProperty(exports2, "MultiRange", { enumerable: true, get: function() { + return range_1.MultiRange; + } }); + var pgvector_1 = require_pgvector(); + Object.defineProperty(exports2, "SparseVector", { enumerable: true, get: function() { + return pgvector_1.SparseVector; + } }); + var utils_1 = require_utils2(); + Object.defineProperty(exports2, "Float16Array", { enumerable: true, get: function() { + return utils_1.Float16Array; + } }); + __exportStar2(require_postgis(), exports2); + var wkt_1 = require_wkt(); + Object.defineProperty(exports2, "parseWKT", { enumerable: true, get: function() { + return wkt_1.parseWKT; + } }); + var options_1 = require_options(); + Object.defineProperty(exports2, "IsolationLevel", { enumerable: true, get: function() { + return options_1.IsolationLevel; + } }); + Object.defineProperty(exports2, "RetryCondition", { enumerable: true, get: function() { + return options_1.RetryCondition; + } }); + Object.defineProperty(exports2, "RetryOptions", { enumerable: true, get: function() { + return options_1.RetryOptions; + } }); + Object.defineProperty(exports2, "Options", { enumerable: true, get: function() { + return options_1.Options; + } }); + Object.defineProperty(exports2, "defaultBackoff", { enumerable: true, get: function() { + return options_1.defaultBackoff; + } }); + Object.defineProperty(exports2, "logWarnings", { enumerable: true, get: function() { + return options_1.logWarnings; + } }); + Object.defineProperty(exports2, "throwWarnings", { enumerable: true, get: function() { + return options_1.throwWarnings; + } }); + __exportStar2(require_errors(), exports2); + var reg = __importStar2(require_registry()); + var buf = __importStar2(require_buffer()); + exports2._CodecsRegistry = reg.CodecsRegistry; + exports2._ReadBuffer = buf.ReadBuffer; + } +}); + +// ../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/reflection/typeutil.js +var require_typeutil = __commonJS({ + "../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/reflection/typeutil.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + } +}); + +// ../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/reflection/strictMap.js +var require_strictMap = __commonJS({ + "../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/reflection/strictMap.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.StrictMapSet = exports2.StrictMap = void 0; + var StrictMap = class extends Map { + get(key) { + if (!this.has(key)) { + throw new Error(`key "${key}" is not found`); + } + return super.get(key); + } + }; + exports2.StrictMap = StrictMap; + var StrictMapSet = class extends StrictMap { + appendAt(key, value) { + const set = this.has(key) ? this.get(key) : /* @__PURE__ */ new Set(); + set.add(value); + this.set(key, set); + } + }; + exports2.StrictMapSet = StrictMapSet; + } +}); + +// ../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/reflection/reservedKeywords.js +var require_reservedKeywords = __commonJS({ + "../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/reflection/reservedKeywords.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.reservedKeywords = void 0; + exports2.reservedKeywords = /* @__PURE__ */ new Set([ + "__edgedbsys__", + "__edgedbtpl__", + "__source__", + "__std__", + "__subject__", + "__type__", + "abort", + "alter", + "analyze", + "and", + "anyarray", + "anytuple", + "anytype", + "anyobject", + "begin", + "case", + "check", + "commit", + "configure", + "create", + "deallocate", + "declare", + "delete", + "describe", + "detached", + "discard", + "distinct", + "do", + "drop", + "else", + "empty", + "end", + "execute", + "exists", + "explain", + "extending", + "fetch", + "filter", + "for", + "get", + "global", + "grant", + "group", + "if", + "ilike", + "import", + "in", + "insert", + "introspect", + "is", + "like", + "limit", + "listen", + "load", + "lock", + "match", + "module", + "move", + "not", + "notify", + "offset", + "optional", + "or", + "order", + "over", + "partition", + "policy", + "populate", + "prepare", + "raise", + "refresh", + "reindex", + "release", + "reset", + "revoke", + "rollback", + "select", + "set", + "single", + "start", + "typeof", + "union", + "update", + "variadic", + "when", + "window", + "with" + ]); + } +}); + +// ../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/reflection/queries/types.js +var require_types = __commonJS({ + "../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/reflection/queries/types.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.typeMapping = void 0; + exports2.getTypes = getTypes; + exports2.types = getTypes; + exports2.topoSort = topoSort; + exports2.getTypes = getTypes; + exports2.types = getTypes; + var strictMap_1 = require_strictMap(); + var numberType2 = { + id: "00000000-0000-0000-0000-0000000001ff", + name: "std::number", + is_abstract: false, + is_seq: false, + kind: "scalar", + enum_values: null, + material_id: null, + bases: [] + }; + exports2.typeMapping = /* @__PURE__ */ new Map([ + [ + "00000000-0000-0000-0000-000000000103", + numberType2 + ], + [ + "00000000-0000-0000-0000-000000000104", + numberType2 + ], + [ + "00000000-0000-0000-0000-000000000105", + numberType2 + ], + [ + "00000000-0000-0000-0000-000000000106", + numberType2 + ], + [ + "00000000-0000-0000-0000-000000000107", + numberType2 + ] + ]); + async function getTypes(cxn, params) { + var _a2, _b, _c, _d; + const debug = (params == null ? void 0 : params.debug) === true; + const version3 = await cxn.queryRequiredSingle(`select sys::get_version().major;`); + const v2Plus = version3 >= 2; + const v4Plus = version3 >= 4; + const QUERY = ` + WITH + MODULE schema, + + material_scalars := ( + SELECT ScalarType + FILTER NOT .abstract + AND NOT EXISTS .enum_values + AND NOT EXISTS (SELECT .ancestors FILTER NOT .abstract) + ) + + SELECT Type { + id, + name := + array_join(array_agg([IS ObjectType].union_of.name), ' | ') + IF EXISTS [IS ObjectType].union_of + ELSE .name, + is_abstract := .abstract, + + kind := 'object' IF Type IS ObjectType ELSE + 'scalar' IF Type IS ScalarType ELSE + 'array' IF Type IS Array ELSE + 'tuple' IF Type IS Tuple ELSE + ${v2Plus ? `'range' IF Type IS Range ELSE` : ``} + ${v4Plus ? `'multirange' IF Type IS MultiRange ELSE` : ``} + 'unknown', + + [IS ScalarType].enum_values, + is_seq := 'std::sequence' in [IS ScalarType].ancestors.name, + # for sequence (abstract type that has non-abstract ancestor) + single material_id := ( + SELECT x := Type[IS ScalarType].ancestors + FILTER x IN material_scalars + LIMIT 1 + ).id, + + [IS InheritingObject].bases: { + id + } ORDER BY @index ASC, + + [IS ObjectType].union_of, + [IS ObjectType].intersection_of, + [IS ObjectType].pointers: { + card := ("One" IF .required ELSE "AtMostOne") IF .cardinality = "One" ELSE ("AtLeastOne" IF .required ELSE "Many"), + name, + target_id := .target.id, + kind := 'link' IF .__type__.name = 'schema::Link' ELSE 'property', + is_exclusive := exists (select .constraints filter .name = 'std::exclusive'), + is_computed := len(.computed_fields) != 0, + is_readonly := .readonly, + has_default := EXISTS .default or ("std::sequence" in .target[IS ScalarType].ancestors.name), + [IS Link].pointers: { + card := ("One" IF .required ELSE "AtMostOne") IF .cardinality = "One" ELSE ("AtLeastOne" IF .required ELSE "Many"), + name := '@' ++ .name, + target_id := .target.id, + kind := 'link' IF .__type__.name = 'schema::Link' ELSE 'property', + is_computed := len(.computed_fields) != 0, + is_readonly := .readonly + } filter .name != '@source' and .name != '@target', + } FILTER any(@is_owned), + exclusives := assert_distinct(( + [is schema::ObjectType].constraints + union + [is schema::ObjectType].pointers.constraints + ) { + target := (.subject[is schema::Property].name ?? .subject[is schema::Link].name ?? .subjectexpr) + } filter .name = 'std::exclusive'), + backlinks := ( + SELECT DETACHED Link + FILTER .target = Type + AND NOT EXISTS .source[IS ObjectType].union_of + ) { + card := "AtMostOne" + IF + EXISTS (select .constraints filter .name = 'std::exclusive') + ELSE + "Many", + name := '<' ++ .name ++ '[is ' ++ assert_exists(.source.name) ++ ']', + stub := .name, + target_id := .source.id, + kind := 'link', + is_exclusive := (EXISTS (select .constraints filter .name = 'std::exclusive')) AND .cardinality = "One", + }, + backlink_stubs := array_agg(( + WITH + stubs := DISTINCT (SELECT DETACHED Link FILTER .target = Type).name, + baseObjectId := (SELECT DETACHED ObjectType FILTER .name = 'std::BaseObject' LIMIT 1).id + FOR stub in { stubs } + UNION ( + SELECT { + card := "Many", + name := '<' ++ stub, + target_id := baseObjectId, + kind := 'link', + is_exclusive := false, + } + ) + )), + array_element_id := [IS Array].element_type.id, + + tuple_elements := (SELECT [IS Tuple].element_types { + target_id := .type.id, + name + } ORDER BY @index ASC), + ${v2Plus ? `range_element_id := [IS Range].element_type.id,` : ``} + ${v4Plus ? `multirange_element_id := [IS MultiRange].element_type.id,` : ``} + } + ORDER BY .name; + `; + const _types = JSON.parse(await cxn.queryJSON(QUERY)); + if (debug) + console.log(JSON.stringify(_types, null, 2)); + for (const type of _types) { + if (Array.isArray(type.backlinks)) { + for (const backlink of type.backlinks) { + const isName = backlink.name.match(/\[is (.+)\]/)[1]; + if (isName.split("::").length === 2 && isName.startsWith("default::")) { + backlink.name = backlink.name.replace(/\[is (.+)\]/, `[is ${isName.slice(9)}]`); + } + } + } + switch (type.kind) { + case "scalar": + if (exports2.typeMapping.has(type.id)) { + type.cast_type = exports2.typeMapping.get(type.id).id; + } + if (type.is_seq) { + type.cast_type = numberType2.id; + } + if (type.name !== "std::sequence" && ((_a2 = type.bases[0]) == null ? void 0 : _a2.id) === type.material_id) { + type.cast_type = ((_b = exports2.typeMapping.get(type.material_id)) == null ? void 0 : _b.id) ?? type.material_id; + } + break; + case "multirange": + type.multirange_element_id = ((_c = exports2.typeMapping.get(type.multirange_element_id)) == null ? void 0 : _c.id) ?? type.multirange_element_id; + break; + case "range": + type.range_element_id = ((_d = exports2.typeMapping.get(type.range_element_id)) == null ? void 0 : _d.id) ?? type.range_element_id; + break; + case "object": { + const ptrs = {}; + for (const ptr of type.pointers) { + ptrs[ptr.name] = ptr; + } + const rawExclusives = type.exclusives; + const exclusives = []; + for (const ex of rawExclusives) { + const target = ex.target; + if (target in ptrs) { + exclusives.push({ [ex.target]: ptrs[ex.target] }); + } + if (target[0] === "(" && target[target.length - 1] === ")") { + const targets = target.slice(1, -1).split(" ").map((t4) => { + t4 = t4.trim(); + if (t4[0] === ".") + t4 = t4.slice(1); + if (t4[t4.length - 1] === ",") + t4 = t4.slice(0, -1); + return t4; + }); + const newEx = {}; + if (!targets.every((t4) => t4 in ptrs)) { + continue; + } + for (const t4 of targets) { + newEx[t4] = ptrs[t4]; + } + exclusives.push(newEx); + } + } + type.exclusives = exclusives; + break; + } + } + } + _types.push(numberType2); + const types3 = topoSort(_types); + for (const [_3, type] of types3) { + if (type.kind === "object" && type.union_of.length) { + const unionTypes = type.union_of.map(({ id }) => { + const t4 = types3.get(id); + if (t4.kind !== "object") { + throw new Error(`type '${t4.name}' of union '${type.name}' is not an object type`); + } + return t4; + }); + const [first, ...rest] = unionTypes; + const restPointerNames = rest.map((t4) => new Set(t4.pointers.map((p3) => p3.name))); + for (const pointer of first.pointers) { + if (restPointerNames.every((names) => names.has(pointer.name))) { + type.pointers.push(pointer); + } + } + type.backlinks = []; + type.backlink_stubs = []; + } + } + return types3; + } + function topoSort(types3) { + const graph = new strictMap_1.StrictMap(); + const adj = new strictMap_1.StrictMap(); + for (const type of types3) { + graph.set(type.id, type); + } + for (const type of types3) { + if (type.kind !== "object" && type.kind !== "scalar") { + continue; + } + for (const { id: base } of type.bases) { + if (!graph.has(base)) { + throw new Error(`reference to an unknown object type: ${base}`); + } + if (!adj.has(type.id)) { + adj.set(type.id, /* @__PURE__ */ new Set()); + } + adj.get(type.id).add(base); + } + } + const visiting = /* @__PURE__ */ new Set(); + const visited = /* @__PURE__ */ new Set(); + const sorted = new strictMap_1.StrictMap(); + const visit = (type) => { + if (visiting.has(type.name)) { + const last = Array.from(visiting).slice(1, 2); + throw new Error(`dependency cycle between ${type.name} and ${last}`); + } + if (!visited.has(type.id)) { + visiting.add(type.name); + if (adj.has(type.id)) { + for (const adjId of adj.get(type.id).values()) { + visit(graph.get(adjId)); + } + } + sorted.set(type.id, type); + visited.add(type.id); + visiting.delete(type.name); + } + }; + for (const type of types3) { + visit(type); + } + return sorted; + } + } +}); + +// ../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/reflection/queries/casts.js +var require_casts = __commonJS({ + "../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/reflection/queries/casts.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.casts = void 0; + var types_1 = require_types(); + var reachableFrom = (source, adj, seen = /* @__PURE__ */ new Set()) => { + const reachable = /* @__PURE__ */ new Set(); + if (seen.has(source)) + return []; + seen.add(source); + (adj[source] || []).map((cast) => { + reachable.add(cast); + for (const item of reachableFrom(cast, adj, seen)) { + reachable.add(item); + } + }); + return [...reachable]; + }; + var casts = async (cxn, params) => { + const allCastsRaw = await cxn.queryJSON(`WITH MODULE schema + SELECT Cast { + id, + source := .from_type { id, name }, + target := .to_type { id, name }, + allow_assignment, + allow_implicit, + } + FILTER .from_type IS ScalarType + AND .to_type IS ScalarType + # AND .from_type.is_abstract = false + # AND .to_type.is_abstract = false + `); + const allCasts = JSON.parse(allCastsRaw); + const types3 = /* @__PURE__ */ new Set(); + const typesById = {}; + const castsById = {}; + const castsBySource = {}; + const implicitCastsBySource = {}; + const implicitCastsByTarget = {}; + const assignmentCastsBySource = {}; + const assignmentCastsByTarget = {}; + for (const cast of allCasts) { + if (types_1.typeMapping.has(cast.source.id) || types_1.typeMapping.has(cast.target.id)) { + cast.allow_implicit = false; + cast.allow_assignment = false; + } + typesById[cast.source.id] = cast.source; + typesById[cast.target.id] = cast.target; + types3.add(cast.source.id); + types3.add(cast.target.id); + castsById[cast.id] = cast; + castsBySource[cast.source.id] = castsBySource[cast.source.id] || []; + castsBySource[cast.source.id].push(cast.target.id); + if (cast.allow_assignment || cast.allow_implicit) { + assignmentCastsBySource[cast.source.id] ??= []; + assignmentCastsBySource[cast.source.id].push(cast.target.id); + assignmentCastsByTarget[cast.target.id] ??= []; + assignmentCastsByTarget[cast.target.id].push(cast.source.id); + } + if (cast.allow_implicit) { + implicitCastsBySource[cast.source.id] ??= []; + implicitCastsBySource[cast.source.id].push(cast.target.id); + implicitCastsByTarget[cast.target.id] ??= []; + implicitCastsByTarget[cast.target.id].push(cast.source.id); + } + } + const castMap = {}; + const implicitCastMap = {}; + const implicitCastFromMap = {}; + const assignmentCastMap = {}; + const assignableByMap = {}; + for (const type of [...types3]) { + castMap[type] = castsBySource[type] || []; + implicitCastMap[type] = reachableFrom(type, implicitCastsBySource); + implicitCastFromMap[type] = reachableFrom(type, implicitCastsByTarget); + assignmentCastMap[type] = reachableFrom(type, assignmentCastsBySource); + assignableByMap[type] = reachableFrom(type, assignmentCastsByTarget); + } + if ((params == null ? void 0 : params.debug) === true) { + console.log(` +IMPLICIT`); + for (const [fromId, castArr] of Object.entries(implicitCastMap)) { + console.log(`${typesById[fromId].name} implicitly castable to: [${castArr.map((id) => typesById[id].name).join(", ")}]`); + } + console.log(""); + for (const [fromId, castArr] of Object.entries(implicitCastFromMap)) { + console.log(`${typesById[fromId].name} implicitly castable from: [${castArr.map((id) => typesById[id].name).join(", ")}]`); + } + console.log(` +ASSIGNABLE TO`); + for (const [fromId, castArr] of Object.entries(assignmentCastMap)) { + console.log(`${typesById[fromId].name} assignable to: [${castArr.map((id) => typesById[id].name).join(", ")}]`); + } + console.log(` +ASSIGNABLE BY`); + for (const [fromId, castArr] of Object.entries(assignableByMap)) { + console.log(`${typesById[fromId].name} assignable by: [${castArr.map((id) => typesById[id].name).join(", ")}]`); + } + console.log(` +EXPLICIT`); + for (const [fromId, castArr] of Object.entries(castMap)) { + console.log(`${typesById[fromId].name} castable to: [${castArr.map((id) => { + return typesById[id].name; + }).join(", ")}]`); + } + } + return { + castsById, + typesById, + castMap, + implicitCastMap, + implicitCastFromMap, + assignmentCastMap, + assignableByMap + }; + }; + exports2.casts = casts; + } +}); + +// ../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/reflection/queries/functions.js +var require_functions = __commonJS({ + "../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/reflection/queries/functions.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.functions = void 0; + exports2.replaceNumberTypes = replaceNumberTypes; + var strictMap_1 = require_strictMap(); + var types_1 = require_types(); + var functions = async (cxn) => { + var _a2; + const functionsJson = await cxn.queryJSON(` + with module schema + select Function { + id, + name, + annotations: { + name, + @value + } filter .name = 'std::description', + return_type: {id, name}, + return_typemod, + params: { + name, + type: {id, name}, + kind, + typemod, + hasDefault := exists .default, + } order by @index, + preserves_optionality, + } filter .internal = false + `); + const functionMap = new strictMap_1.StrictMap(); + const seenFuncDefHashes = /* @__PURE__ */ new Set(); + for (const func of JSON.parse(functionsJson)) { + const { name } = func; + const funcDef = { + ...func, + description: (_a2 = func.annotations[0]) == null ? void 0 : _a2["@value"] + }; + replaceNumberTypes(funcDef); + const hash = hashFuncDef(funcDef); + if (!seenFuncDefHashes.has(hash)) { + if (!functionMap.has(name)) { + functionMap.set(name, [funcDef]); + } else { + functionMap.get(name).push(funcDef); + } + seenFuncDefHashes.add(hash); + } + } + return functionMap; + }; + exports2.functions = functions; + function replaceNumberTypes(def) { + if (types_1.typeMapping.has(def.return_type.id)) { + const type = types_1.typeMapping.get(def.return_type.id); + def.return_type = { + id: type.id, + name: type.name + }; + } + for (const param of def.params) { + if (types_1.typeMapping.has(param.type.id)) { + const type = types_1.typeMapping.get(param.type.id); + param.type = { + id: type.id, + name: type.name + }; + } + } + } + function hashFuncDef(def) { + return JSON.stringify({ + name: def.name, + return_type: def.return_type.id, + return_typemod: def.return_typemod, + params: def.params.map((param) => JSON.stringify({ + kind: param.kind, + type: param.type.id, + typemod: param.typemod, + hasDefault: !!param.hasDefault + })).sort(), + preserves_optionality: def.preserves_optionality + }); + } + } +}); + +// ../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/reflection/queries/globals.js +var require_globals = __commonJS({ + "../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/reflection/queries/globals.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.globals = globals; + async function globals(cxn) { + const globalsMap = /* @__PURE__ */ new Map(); + const version3 = await cxn.queryRequiredSingle(`select sys::get_version().major;`); + if (version3 === 1) { + return globalsMap; + } + const QUERY = ` + WITH + MODULE schema + SELECT schema::Global { + id, + name, + target_id := .target.id, + card := ("One" IF .required ELSE "One" IF EXISTS .default ELSE "AtMostOne") + IF .cardinality = "One" ELSE + ("AtLeastOne" IF .required ELSE "Many"), + has_default := exists .default, + } + ORDER BY .name; + `; + const allGlobals = JSON.parse(await cxn.queryJSON(QUERY)); + for (const g3 of allGlobals) { + globalsMap.set(g3.id, g3); + } + return globalsMap; + } + } +}); + +// ../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/reflection/queries/operators.js +var require_operators = __commonJS({ + "../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/reflection/queries/operators.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.operators = void 0; + var strictMap_1 = require_strictMap(); + var functions_1 = require_functions(); + var util_1 = require_util3(); + var _operators = async (cxn) => { + var _a2, _b; + const operatorsJson = await cxn.queryJSON(` + with module schema + select Operator { + id, + name, + annotations: { + name, + @value + } filter .name in {'std::identifier', 'std::description'}, + operator_kind, + return_type: {id, name}, + return_typemod, + params: { + name, + type: {id, name}, + kind, + typemod, + } order by @index, + } filter not .internal and not .abstract + `); + const operators = new strictMap_1.StrictMap(); + const seenOpDefHashes = /* @__PURE__ */ new Set(); + for (const op of JSON.parse(operatorsJson)) { + const identifier = (_a2 = op.annotations.find((anno) => anno.name === "std::identifier")) == null ? void 0 : _a2["@value"]; + if (!identifier) { + continue; + } + const { mod } = util_1.util.splitName(op.name); + const name = `${mod}::${identifier}`; + const opDef = { + ...op, + name, + kind: op.operator_kind, + originalName: op.name, + description: (_b = op.annotations.find((anno) => anno.name === "std::description")) == null ? void 0 : _b["@value"], + annotations: void 0 + }; + (0, functions_1.replaceNumberTypes)(opDef); + const hash = hashOpDef(opDef); + if (!seenOpDefHashes.has(hash)) { + if (!operators.has(name)) { + operators.set(name, [opDef]); + } else { + operators.get(name).push(opDef); + } + seenOpDefHashes.add(hash); + } + } + return operators; + }; + exports2.operators = _operators; + function hashOpDef(def) { + return JSON.stringify({ + name: def.name, + return_type: def.return_type.id, + return_typemod: def.return_typemod, + params: def.params.map((param) => JSON.stringify({ + kind: param.kind, + type: param.type.id, + typemod: param.typemod, + hasDefault: !!param.hasDefault + })).sort(), + operator_kind: def.operator_kind + }); + } + } +}); + +// ../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/reflection/queries/scalars.js +var require_scalars = __commonJS({ + "../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/reflection/queries/scalars.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.scalars = void 0; + var strictMap_1 = require_strictMap(); + var _scalars = async (cxn) => { + const scalarArray = await cxn.queryJSON(`with module schema +select InheritingObject { + id, + name, + is_abstract, + bases: { id, name }, + ancestors: { id, name }, + children := . { + const optionsWithDefaults = { + indent: "", + optionalNulls: false, + readonly: false, + ...options + }; + const context = { + ...optionsWithDefaults, + generators: exports2.defaultCodecGenerators, + applyCardinality: (0, exports2.defaultApplyCardinalityToTsType)(optionsWithDefaults), + ...options, + imports: new ImportMap(), + walk: (codec2, innerContext) => { + innerContext ??= context; + for (const [type2, generator] of innerContext.generators) { + if (codec2 instanceof type2) { + return generator(codec2, innerContext); + } + } + throw new Error(`Unexpected codec kind: ${codec2.getKind()}`); + } + }; + const type = context.applyCardinality(context.walk(codec, context), cardinality); + return { + type, + imports: context.imports + }; + }; + exports2.generateTSTypeFromCodec = generateTSTypeFromCodec; + var genDef = (codecType, generator) => [codecType, generator]; + exports2.defineCodecGeneratorTuple = genDef; + exports2.defaultCodecGenerators = new Map([ + genDef(codecs_1.NullCodec, () => "null"), + genDef(enum_1.EnumCodec, (codec) => { + return `(${codec.values.map((val2) => JSON.stringify(val2)).join(" | ")})`; + }), + genDef(ifaces_1.ScalarCodec, (codec, ctx) => { + if (codec.tsModule) { + ctx.imports.add(codec.tsModule, codec.tsType); + } + return codec.tsType; + }), + genDef(object_1.ObjectCodec, (codec, ctx) => { + const subCodecs = codec.getSubcodecs(); + const fields = codec.getFields().map((field, i4) => ({ + name: field.name, + codec: subCodecs[i4], + cardinality: util_1.util.parseCardinality(field.cardinality) + })); + return (0, exports2.generateTsObject)(fields, ctx); + }), + genDef(namedtuple_1.NamedTupleCodec, (codec, ctx) => { + const subCodecs = codec.getSubcodecs(); + const fields = codec.getNames().map((name, i4) => ({ + name, + codec: subCodecs[i4], + cardinality: enums_1.Cardinality.One + })); + return (0, exports2.generateTsObject)(fields, ctx); + }), + genDef(tuple_1.TupleCodec, (codec, ctx) => { + const subCodecs = codec.getSubcodecs().map((subCodec) => ctx.walk(subCodec)); + const tuple = `[${subCodecs.join(", ")}]`; + return ctx.readonly ? `(readonly ${tuple})` : tuple; + }), + genDef(array_1.ArrayCodec, (codec, ctx) => ctx.applyCardinality(ctx.walk(codec.getSubcodecs()[0]), enums_1.Cardinality.Many)), + genDef(range_1.RangeCodec, (codec, ctx) => { + const subCodec = codec.getSubcodecs()[0]; + if (!(subCodec instanceof ifaces_1.ScalarCodec)) { + throw Error("expected range subtype to be scalar type"); + } + ctx.imports.add(codec.tsModule, codec.tsType); + return `${codec.tsType}<${ctx.walk(subCodec)}>`; + }), + genDef(range_1.MultiRangeCodec, (codec, ctx) => { + const subCodec = codec.getSubcodecs()[0]; + if (!(subCodec instanceof ifaces_1.ScalarCodec)) { + throw Error("expected multirange subtype to be scalar type"); + } + ctx.imports.add(codec.tsModule, codec.tsType); + return `${codec.tsType}<${ctx.walk(subCodec)}>`; + }) + ]); + var generateTsObject = (fields, ctx) => { + const properties = fields.map((field) => (0, exports2.generateTsObjectField)(field, ctx)); + return `{ +${properties.join("\n")} +${ctx.indent}}`; + }; + exports2.generateTsObject = generateTsObject; + var generateTsObjectField = (field, ctx) => { + const codec = unwrapSetCodec(field.codec, field.cardinality); + const name = JSON.stringify(field.name); + const value = ctx.applyCardinality(ctx.walk(codec, { ...ctx, indent: ctx.indent + " " }), field.cardinality); + const optional = ctx.optionalNulls && field.cardinality === enums_1.Cardinality.AtMostOne; + const questionMark = optional ? "?" : ""; + const isReadonly = ctx.readonly ? "readonly " : ""; + return `${ctx.indent} ${isReadonly}${name}${questionMark}: ${value};`; + }; + exports2.generateTsObjectField = generateTsObjectField; + function unwrapSetCodec(codec, cardinality) { + if (!(codec instanceof set_1.SetCodec)) { + return codec; + } + if (cardinality === enums_1.Cardinality.Many || cardinality === enums_1.Cardinality.AtLeastOne) { + return codec.getSubcodecs()[0]; + } + throw new Error("Sub-codec is SetCodec, but upper cardinality is one"); + } + var defaultApplyCardinalityToTsType = (ctx) => (type, cardinality) => { + switch (cardinality) { + case enums_1.Cardinality.Many: + return `${ctx.readonly ? "Readonly" : ""}Array<${type}>`; + case enums_1.Cardinality.One: + return type; + case enums_1.Cardinality.AtMostOne: + return `${type} | null`; + case enums_1.Cardinality.AtLeastOne: { + const tuple = `[(${type}), ...(${type})[]]`; + return ctx.readonly ? `(readonly ${tuple})` : tuple; + } + } + throw new Error(`Unexpected cardinality: ${cardinality}`); + }; + exports2.defaultApplyCardinalityToTsType = defaultApplyCardinalityToTsType; + var ImportMap = class _ImportMap extends Map { + add(module3, specifier) { + if (!this.has(module3)) { + this.set(module3, /* @__PURE__ */ new Set()); + } + this.get(module3).add(specifier); + return this; + } + merge(map2) { + const out = new _ImportMap(); + for (const [mod, specifiers] of [...this, ...map2]) { + for (const specifier of specifiers) { + out.add(mod, specifier); + } + } + return out; + } + }; + exports2.ImportMap = ImportMap; + } +}); + +// ../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/reflection/index.js +var require_reflection = __commonJS({ + "../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/reflection/index.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o3, m4, k3, k22) { + if (k22 === void 0) k22 = k3; + var desc = Object.getOwnPropertyDescriptor(m4, k3); + if (!desc || ("get" in desc ? !m4.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m4[k3]; + } }; + } + Object.defineProperty(o3, k22, desc); + } : function(o3, m4, k3, k22) { + if (k22 === void 0) k22 = k3; + o3[k22] = m4[k3]; + }); + var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? function(o3, v6) { + Object.defineProperty(o3, "default", { enumerable: true, value: v6 }); + } : function(o3, v6) { + o3["default"] = v6; + }); + var __exportStar2 = exports2 && exports2.__exportStar || function(m4, exports3) { + for (var p3 in m4) if (p3 !== "default" && !Object.prototype.hasOwnProperty.call(exports3, p3)) __createBinding2(exports3, m4, p3); + }; + var __importStar2 = exports2 && exports2.__importStar || function(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) { + for (var k3 in mod) if (k3 !== "default" && Object.prototype.hasOwnProperty.call(mod, k3)) __createBinding2(result, mod, k3); + } + __setModuleDefault2(result, mod); + return result; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.Capabilities = exports2.introspect = void 0; + __exportStar2(require_enums(), exports2); + __exportStar2(require_util3(), exports2); + __exportStar2(require_typeutil(), exports2); + __exportStar2(require_util3(), exports2); + __exportStar2(require_strictMap(), exports2); + __exportStar2(require_reservedKeywords(), exports2); + exports2.introspect = __importStar2(require_queries()); + __exportStar2(require_analyzeQuery(), exports2); + var baseConn_1 = require_baseConn(); + Object.defineProperty(exports2, "Capabilities", { enumerable: true, get: function() { + return baseConn_1.Capabilities; + } }); + } +}); + +// ../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/index.node.js +var require_index_node = __commonJS({ + "../node_modules/.pnpm/gel@2.1.0/node_modules/gel/dist/index.node.js"(exports2) { + "use strict"; + var __createBinding2 = exports2 && exports2.__createBinding || (Object.create ? function(o3, m4, k3, k22) { + if (k22 === void 0) k22 = k3; + var desc = Object.getOwnPropertyDescriptor(m4, k3); + if (!desc || ("get" in desc ? !m4.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m4[k3]; + } }; + } + Object.defineProperty(o3, k22, desc); + } : function(o3, m4, k3, k22) { + if (k22 === void 0) k22 = k3; + o3[k22] = m4[k3]; + }); + var __setModuleDefault2 = exports2 && exports2.__setModuleDefault || (Object.create ? function(o3, v6) { + Object.defineProperty(o3, "default", { enumerable: true, value: v6 }); + } : function(o3, v6) { + o3["default"] = v6; + }); + var __importStar2 = exports2 && exports2.__importStar || function(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) { + for (var k3 in mod) if (k3 !== "default" && Object.prototype.hasOwnProperty.call(mod, k3)) __createBinding2(result, mod, k3); + } + __setModuleDefault2(result, mod); + return result; + }; + var __exportStar2 = exports2 && exports2.__exportStar || function(m4, exports3) { + for (var p3 in m4) if (p3 !== "default" && !Object.prototype.hasOwnProperty.call(exports3, p3)) __createBinding2(exports3, m4, p3); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.$ = exports2.Client = exports2.ResolvedConnectConfig = exports2._RawConnection = exports2.systemUtils = exports2.createHttpClient = exports2.createClient = void 0; + var nodeClient_1 = require_nodeClient(); + exports2.default = nodeClient_1.createClient; + var nodeClient_2 = require_nodeClient(); + Object.defineProperty(exports2, "createClient", { enumerable: true, get: function() { + return nodeClient_2.createClient; + } }); + Object.defineProperty(exports2, "createHttpClient", { enumerable: true, get: function() { + return nodeClient_2.createHttpClient; + } }); + var systemUtils = __importStar2(require_systemUtils()); + exports2.systemUtils = systemUtils; + var rawConn_1 = require_rawConn(); + Object.defineProperty(exports2, "_RawConnection", { enumerable: true, get: function() { + return rawConn_1.RawConnection; + } }); + var conUtils_1 = require_conUtils(); + Object.defineProperty(exports2, "ResolvedConnectConfig", { enumerable: true, get: function() { + return conUtils_1.ResolvedConnectConfig; + } }); + var baseClient_1 = require_baseClient(); + Object.defineProperty(exports2, "Client", { enumerable: true, get: function() { + return baseClient_1.Client; + } }); + __exportStar2(require_index_shared(), exports2); + exports2.$ = __importStar2(require_reflection()); + } +}); + +// src/cli/connections.ts +var connections_exports = {}; +__export(connections_exports, { + connectToD1: () => connectToD1, + connectToLibSQL: () => connectToLibSQL, + connectToMySQL: () => connectToMySQL, + connectToSQLite: () => connectToSQLite, + connectToSingleStore: () => connectToSingleStore, + prepareGelDB: () => prepareGelDB, + preparePostgresDB: () => preparePostgresDB +}); +var preparePostgresDB, prepareGelDB, parseSingleStoreCredentials, connectToSingleStore, parseMysqlCredentials, connectToMySQL, prepareSqliteParams, preparePGliteParams, connectToD1, connectToSQLite, connectToLibSQL; +var init_connections = __esm({ + "src/cli/connections.ts"() { + "use strict"; + init_src(); + init_wrapper(); + init_global(); + init_utils2(); + init_utils5(); + init_outputs(); + preparePostgresDB = async (credentials2) => { + if ("driver" in credentials2) { + const { driver: driver2 } = credentials2; + if (driver2 === "aws-data-api") { + assertPackages("@aws-sdk/client-rds-data"); + const { RDSDataClient, ExecuteStatementCommand, TypeHint } = await Promise.resolve().then(() => __toESM(require_dist_cjs51())); + const { AwsDataApiSession, drizzle } = await import("drizzle-orm/aws-data-api/pg"); + const { migrate: migrate2 } = await import("drizzle-orm/aws-data-api/pg/migrator"); + const { PgDialect: PgDialect2 } = await import("drizzle-orm/pg-core"); + const config = { + database: credentials2.database, + resourceArn: credentials2.resourceArn, + secretArn: credentials2.secretArn + }; + const rdsClient = new RDSDataClient(); + const session = new AwsDataApiSession( + rdsClient, + new PgDialect2(), + void 0, + config, + void 0 + ); + const db = drizzle(rdsClient, config); + const migrateFn = async (config2) => { + return migrate2(db, config2); + }; + const query = async (sql, params) => { + const prepared = session.prepareQuery( + { sql, params: params ?? [] }, + void 0, + void 0, + false + ); + const result = await prepared.all(); + return result; + }; + const proxy = async (params) => { + const prepared = session.prepareQuery( + { + sql: params.sql, + params: params.params ?? [], + typings: params.typings + }, + void 0, + void 0, + params.mode === "array" + ); + if (params.mode === "array") { + const result2 = await prepared.values(); + return result2.rows; + } + const result = await prepared.execute(); + return result.rows; + }; + const transactionProxy = async (queries) => { + throw new Error("Transaction not supported"); + }; + return { + packageName: "@aws-sdk/client-rds-data", + query, + proxy, + transactionProxy, + migrate: migrateFn + }; + } + if (driver2 === "pglite") { + assertPackages("@electric-sql/pglite"); + const { PGlite, types: types3 } = await import("@electric-sql/pglite"); + const { drizzle } = await import("drizzle-orm/pglite"); + const { migrate: migrate2 } = await import("drizzle-orm/pglite/migrator"); + const pglite = "client" in credentials2 ? credentials2.client : new PGlite(normalisePGliteUrl(credentials2.url)); + await pglite.waitReady; + const drzl = drizzle(pglite); + const migrateFn = async (config) => { + return migrate2(drzl, config); + }; + const parsers = { + [types3.TIMESTAMP]: (value) => value, + [types3.TIMESTAMPTZ]: (value) => value, + [types3.INTERVAL]: (value) => value, + [types3.DATE]: (value) => value + }; + const query = async (sql, params = []) => { + const result = await pglite.query(sql, params, { + parsers + }); + return result.rows; + }; + const proxy = async (params) => { + const preparedParams = preparePGliteParams(params.params || []); + const result = await pglite.query(params.sql, preparedParams, { + rowMode: params.mode, + parsers + }); + return result.rows; + }; + const transactionProxy = async (queries) => { + const results = []; + try { + await pglite.transaction(async (tx) => { + for (const query2 of queries) { + const result = await tx.query(query2.sql, void 0, { + parsers + }); + results.push(result.rows); + } + }); + } catch (error2) { + results.push(error2); + } + return results; + }; + return { packageName: "pglite", query, proxy, transactionProxy, migrate: migrateFn }; + } + assertUnreachable(driver2); + } + if (await checkPackage("pg")) { + console.log(withStyle.info(`Using 'pg' driver for database querying`)); + const { default: pg } = await import("pg"); + const { drizzle } = await import("drizzle-orm/node-postgres"); + const { migrate: migrate2 } = await import("drizzle-orm/node-postgres/migrator"); + const ssl = "ssl" in credentials2 ? credentials2.ssl === "prefer" || credentials2.ssl === "require" || credentials2.ssl === "allow" ? { rejectUnauthorized: false } : credentials2.ssl === "verify-full" ? {} : credentials2.ssl : {}; + const types3 = { + // @ts-ignore + getTypeParser: (typeId, format) => { + if (typeId === pg.types.builtins.TIMESTAMPTZ) { + return (val2) => val2; + } + if (typeId === pg.types.builtins.TIMESTAMP) { + return (val2) => val2; + } + if (typeId === pg.types.builtins.DATE) { + return (val2) => val2; + } + if (typeId === pg.types.builtins.INTERVAL) { + return (val2) => val2; + } + return pg.types.getTypeParser(typeId, format); + } + }; + const client = "url" in credentials2 ? new pg.Pool({ connectionString: credentials2.url, max: 1 }) : new pg.Pool({ ...credentials2, ssl, max: 1 }); + const db = drizzle(client); + const migrateFn = async (config) => { + return migrate2(db, config); + }; + const query = async (sql, params) => { + const result = await client.query({ + text: sql, + values: params ?? [], + types: types3 + }); + return result.rows; + }; + const proxy = async (params) => { + const result = await client.query({ + text: params.sql, + values: params.params, + ...params.mode === "array" && { rowMode: "array" }, + types: types3 + }); + return result.rows; + }; + const transactionProxy = async (queries) => { + const results = []; + const tx = await client.connect(); + try { + await tx.query("BEGIN"); + for (const query2 of queries) { + const result = await tx.query({ + text: query2.sql, + types: types3 + }); + results.push(result.rows); + } + await tx.query("COMMIT"); + } catch (error2) { + await tx.query("ROLLBACK"); + results.push(error2); + } finally { + tx.release(); + } + return results; + }; + return { packageName: "pg", query, proxy, transactionProxy, migrate: migrateFn }; + } + if (await checkPackage("postgres")) { + console.log( + withStyle.info(`Using 'postgres' driver for database querying`) + ); + const postgres = await import("postgres"); + const { drizzle } = await import("drizzle-orm/postgres-js"); + const { migrate: migrate2 } = await import("drizzle-orm/postgres-js/migrator"); + const client = "url" in credentials2 ? postgres.default(credentials2.url, { max: 1 }) : postgres.default({ ...credentials2, max: 1 }); + const transparentParser = (val2) => val2; + for (const type of ["1184", "1082", "1083", "1114"]) { + client.options.parsers[type] = transparentParser; + client.options.serializers[type] = transparentParser; + } + client.options.serializers["114"] = transparentParser; + client.options.serializers["3802"] = transparentParser; + const db = drizzle(client); + const migrateFn = async (config) => { + return migrate2(db, config); + }; + const query = async (sql, params) => { + const result = await client.unsafe(sql, params ?? []); + return result; + }; + const proxy = async (params) => { + if (params.mode === "array") { + return await client.unsafe(params.sql, params.params).values(); + } + return await client.unsafe(params.sql, params.params); + }; + const transactionProxy = async (queries) => { + const results = []; + try { + await client.begin(async (sql) => { + for (const query2 of queries) { + const result = await sql.unsafe(query2.sql); + results.push(result); + } + }); + } catch (error2) { + results.push(error2); + } + return results; + }; + return { packageName: "postgres", query, proxy, transactionProxy, migrate: migrateFn }; + } + if (await checkPackage("@vercel/postgres")) { + console.log( + withStyle.info(`Using '@vercel/postgres' driver for database querying`) + ); + console.log( + withStyle.fullWarning( + "'@vercel/postgres' can only connect to remote Neon/Vercel Postgres/Supabase instances through a websocket" + ) + ); + const { VercelPool, types: pgTypes } = await import("@vercel/postgres"); + const { drizzle } = await import("drizzle-orm/vercel-postgres"); + const { migrate: migrate2 } = await import("drizzle-orm/vercel-postgres/migrator"); + const ssl = "ssl" in credentials2 ? credentials2.ssl === "prefer" || credentials2.ssl === "require" || credentials2.ssl === "allow" ? { rejectUnauthorized: false } : credentials2.ssl === "verify-full" ? {} : credentials2.ssl : {}; + const types3 = { + // @ts-ignore + getTypeParser: (typeId, format) => { + if (typeId === pgTypes.builtins.TIMESTAMPTZ) { + return (val2) => val2; + } + if (typeId === pgTypes.builtins.TIMESTAMP) { + return (val2) => val2; + } + if (typeId === pgTypes.builtins.DATE) { + return (val2) => val2; + } + if (typeId === pgTypes.builtins.INTERVAL) { + return (val2) => val2; + } + return pgTypes.getTypeParser(typeId, format); + } + }; + const client = "url" in credentials2 ? new VercelPool({ connectionString: credentials2.url }) : new VercelPool({ ...credentials2, ssl }); + await client.connect(); + const db = drizzle(client); + const migrateFn = async (config) => { + return migrate2(db, config); + }; + const query = async (sql, params) => { + const result = await client.query({ + text: sql, + values: params ?? [], + types: types3 + }); + return result.rows; + }; + const proxy = async (params) => { + const result = await client.query({ + text: params.sql, + values: params.params, + ...params.mode === "array" && { rowMode: "array" }, + types: types3 + }); + return result.rows; + }; + const transactionProxy = async (queries) => { + const results = []; + const tx = await client.connect(); + try { + await tx.query("BEGIN"); + for (const query2 of queries) { + const result = await tx.query({ + text: query2.sql, + types: types3 + }); + results.push(result.rows); + } + await tx.query("COMMIT"); + } catch (error2) { + await tx.query("ROLLBACK"); + results.push(error2); + } finally { + tx.release(); + } + return results; + }; + return { packageName: "@vercel/postgres", query, proxy, transactionProxy, migrate: migrateFn }; + } + if (await checkPackage("@neondatabase/serverless")) { + console.log( + withStyle.info( + `Using '@neondatabase/serverless' driver for database querying` + ) + ); + console.log( + withStyle.fullWarning( + "'@neondatabase/serverless' can only connect to remote Neon/Vercel Postgres/Supabase instances through a websocket" + ) + ); + const { Pool, neonConfig, types: pgTypes } = await import("@neondatabase/serverless"); + const { drizzle } = await import("drizzle-orm/neon-serverless"); + const { migrate: migrate2 } = await import("drizzle-orm/neon-serverless/migrator"); + const ssl = "ssl" in credentials2 ? credentials2.ssl === "prefer" || credentials2.ssl === "require" || credentials2.ssl === "allow" ? { rejectUnauthorized: false } : credentials2.ssl === "verify-full" ? {} : credentials2.ssl : {}; + const types3 = { + // @ts-ignore + getTypeParser: (typeId, format) => { + if (typeId === pgTypes.builtins.TIMESTAMPTZ) { + return (val2) => val2; + } + if (typeId === pgTypes.builtins.TIMESTAMP) { + return (val2) => val2; + } + if (typeId === pgTypes.builtins.DATE) { + return (val2) => val2; + } + if (typeId === pgTypes.builtins.INTERVAL) { + return (val2) => val2; + } + return pgTypes.getTypeParser(typeId, format); + } + }; + const client = "url" in credentials2 ? new Pool({ connectionString: credentials2.url, max: 1 }) : new Pool({ ...credentials2, max: 1, ssl }); + neonConfig.webSocketConstructor = wrapper_default; + const db = drizzle(client); + const migrateFn = async (config) => { + return migrate2(db, config); + }; + const query = async (sql, params) => { + const result = await client.query({ + text: sql, + values: params ?? [], + types: types3 + }); + return result.rows; + }; + const proxy = async (params) => { + const result = await client.query({ + text: params.sql, + values: params.params, + ...params.mode === "array" && { rowMode: "array" }, + types: types3 + }); + return result.rows; + }; + const transactionProxy = async (queries) => { + const results = []; + const tx = await client.connect(); + try { + await tx.query("BEGIN"); + for (const query2 of queries) { + const result = await tx.query({ + text: query2.sql, + types: types3 + }); + results.push(result.rows); + } + await tx.query("COMMIT"); + } catch (error2) { + await tx.query("ROLLBACK"); + results.push(error2); + } finally { + tx.release(); + } + return results; + }; + return { packageName: "@neondatabase/serverless", query, proxy, transactionProxy, migrate: migrateFn }; + } + console.error( + "To connect to Postgres database - please install either of 'pg', 'postgres', '@neondatabase/serverless' or '@vercel/postgres' drivers" + ); + process.exit(1); + }; + prepareGelDB = async (credentials2) => { + if (await checkPackage("gel")) { + const gel = await Promise.resolve().then(() => __toESM(require_index_node())); + let client; + if (!credentials2) { + client = gel.createClient(); + try { + await client.querySQL(`select 1;`); + } catch (error2) { + if (error2 instanceof gel.ClientConnectionError) { + console.error( + `It looks like you forgot to link the Gel project or provide the database credentials. +To link your project, please refer https://docs.geldata.com/reference/cli/gel_instance/gel_instance_link, or add the dbCredentials to your configuration file.` + ); + process.exit(1); + } + throw error2; + } + } else if ("url" in credentials2) { + "tlsSecurity" in credentials2 ? client = gel.createClient({ dsn: credentials2.url, tlsSecurity: credentials2.tlsSecurity, concurrency: 1 }) : client = gel.createClient({ dsn: credentials2.url, concurrency: 1 }); + } else { + gel.createClient({ ...credentials2, concurrency: 1 }); + } + const query = async (sql, params) => { + const result = (params == null ? void 0 : params.length) ? await client.querySQL(sql, params) : await client.querySQL(sql); + return result; + }; + const proxy = async (params) => { + const { method, mode, params: sqlParams, sql, typings } = params; + let result; + switch (mode) { + case "array": + result = (sqlParams == null ? void 0 : sqlParams.length) ? await client.withSQLRowMode("array").querySQL(sql, sqlParams) : await client.withSQLRowMode("array").querySQL(sql); + break; + case "object": + result = (sqlParams == null ? void 0 : sqlParams.length) ? await client.querySQL(sql, sqlParams) : await client.querySQL(sql); + break; + } + return result; + }; + const transactionProxy = async (queries) => { + const result = []; + try { + await client.transaction(async (tx) => { + for (const query2 of queries) { + const res = await tx.querySQL(query2.sql); + result.push(res); + } + }); + } catch (error2) { + result.push(error2); + } + return result; + }; + return { packageName: "gel", query, proxy, transactionProxy }; + } + console.error( + "To connect to gel database - please install 'edgedb' driver" + ); + process.exit(1); + }; + parseSingleStoreCredentials = (credentials2) => { + if ("url" in credentials2) { + const url = credentials2.url; + const connectionUrl = new URL(url); + const pathname = connectionUrl.pathname; + const database = pathname.split("/")[pathname.split("/").length - 1]; + if (!database) { + console.error( + "You should specify a database name in connection string (singlestore://USER:PASSWORD@HOST:PORT/DATABASE)" + ); + process.exit(1); + } + return { database, url }; + } else { + return { + database: credentials2.database, + credentials: credentials2 + }; + } + }; + connectToSingleStore = async (it) => { + const result = parseSingleStoreCredentials(it); + if (await checkPackage("mysql2")) { + const { createConnection } = await import("mysql2/promise"); + const { drizzle } = await import("drizzle-orm/singlestore"); + const { migrate: migrate2 } = await import("drizzle-orm/singlestore/migrator"); + const connection = result.url ? await createConnection(result.url) : await createConnection(result.credentials); + const db = drizzle(connection); + const migrateFn = async (config) => { + return migrate2(db, config); + }; + await connection.connect(); + const query = async (sql, params) => { + const res = await connection.execute(sql, params); + return res[0]; + }; + const proxy = async (params) => { + const result2 = await connection.query({ + sql: params.sql, + values: params.params, + rowsAsArray: params.mode === "array" + }); + return result2[0]; + }; + const transactionProxy = async (queries) => { + const results = []; + try { + await connection.beginTransaction(); + for (const query2 of queries) { + const res = await connection.query(query2.sql); + results.push(res[0]); + } + await connection.commit(); + } catch (error2) { + await connection.rollback(); + results.push(error2); + } + return results; + }; + return { + db: { query }, + packageName: "mysql2", + proxy, + transactionProxy, + database: result.database, + migrate: migrateFn + }; + } + console.error( + "To connect to SingleStore database - please install 'mysql2' driver" + ); + process.exit(1); + }; + parseMysqlCredentials = (credentials2) => { + if ("url" in credentials2) { + const url = credentials2.url; + const connectionUrl = new URL(url); + const pathname = connectionUrl.pathname; + const database = pathname.split("/")[pathname.split("/").length - 1]; + if (!database) { + console.error( + "You should specify a database name in connection string (mysql://USER:PASSWORD@HOST:PORT/DATABASE)" + ); + process.exit(1); + } + return { database, url }; + } else { + return { + database: credentials2.database, + credentials: credentials2 + }; + } + }; + connectToMySQL = async (it) => { + const result = parseMysqlCredentials(it); + if (await checkPackage("mysql2")) { + const { createConnection } = await import("mysql2/promise"); + const { drizzle } = await import("drizzle-orm/mysql2"); + const { migrate: migrate2 } = await import("drizzle-orm/mysql2/migrator"); + const connection = result.url ? await createConnection(result.url) : await createConnection(result.credentials); + const db = drizzle(connection); + const migrateFn = async (config) => { + return migrate2(db, config); + }; + const typeCast = (field, next) => { + if (field.type === "TIMESTAMP" || field.type === "DATETIME" || field.type === "DATE") { + return field.string(); + } + return next(); + }; + await connection.connect(); + const query = async (sql, params) => { + const res = await connection.execute({ + sql, + values: params, + typeCast + }); + return res[0]; + }; + const proxy = async (params) => { + const result2 = await connection.query({ + sql: params.sql, + values: params.params, + rowsAsArray: params.mode === "array", + typeCast + }); + return result2[0]; + }; + const transactionProxy = async (queries) => { + const results = []; + try { + await connection.beginTransaction(); + for (const query2 of queries) { + const res = await connection.query(query2.sql); + results.push(res[0]); + } + await connection.commit(); + } catch (error2) { + await connection.rollback(); + results.push(error2); + } + return results; + }; + return { + db: { query }, + packageName: "mysql2", + proxy, + transactionProxy, + database: result.database, + migrate: migrateFn + }; + } + if (await checkPackage("@planetscale/database")) { + const { Client } = await import("@planetscale/database"); + const { drizzle } = await import("drizzle-orm/planetscale-serverless"); + const { migrate: migrate2 } = await import("drizzle-orm/planetscale-serverless/migrator"); + const connection = new Client(result); + const db = drizzle(connection); + const migrateFn = async (config) => { + return migrate2(db, config); + }; + const query = async (sql, params) => { + const res = await connection.execute(sql, params); + return res.rows; + }; + const proxy = async (params) => { + const result2 = await connection.execute( + params.sql, + params.params, + params.mode === "array" ? { as: "array" } : void 0 + ); + return result2.rows; + }; + const transactionProxy = async (queries) => { + const results = []; + try { + await connection.transaction(async (tx) => { + for (const query2 of queries) { + const res = await tx.execute(query2.sql); + results.push(res.rows); + } + }); + } catch (error2) { + results.push(error2); + } + return results; + }; + return { + db: { query }, + packageName: "@planetscale/database", + proxy, + transactionProxy, + database: result.database, + migrate: migrateFn + }; + } + console.error( + "To connect to MySQL database - please install either of 'mysql2' or '@planetscale/database' drivers" + ); + process.exit(1); + }; + prepareSqliteParams = (params, driver2) => { + return params.map((param) => { + if (param && typeof param === "object" && "type" in param && "value" in param && param.type === "binary") { + const value = typeof param.value === "object" ? JSON.stringify(param.value) : param.value; + if (driver2 === "d1-http" || driver2 === "d1") { + return value; + } + return Buffer.from(value); + } + return param; + }); + }; + preparePGliteParams = (params) => { + return params.map((param) => { + if (param && typeof param === "object" && "type" in param && "value" in param && param.type === "binary") { + const value = typeof param.value === "object" ? JSON.stringify(param.value) : param.value; + return value; + } + return param; + }); + }; + connectToD1 = async (d1) => { + const db = { + query: async (sql, params) => { + const stmt = d1.prepare(sql); + const boundStmt = params && params.length > 0 ? stmt.bind(...params) : stmt; + const result = await boundStmt.all(); + return result.results ?? []; + }, + run: async (query) => { + const stmt = d1.prepare(query); + await stmt.run(); + } + }; + const proxy = async (params) => { + var _a2, _b; + const preparedParams = prepareSqliteParams(params.params || [], "d1"); + const stmt = d1.prepare(params.sql); + const boundStmt = preparedParams.length > 0 ? stmt.bind(...preparedParams) : stmt; + try { + if (params.mode === "array") { + return await boundStmt.raw(); + } + const result = await boundStmt.all(); + return result.results ?? []; + } catch (error2) { + if (((_a2 = error2 == null ? void 0 : error2.message) == null ? void 0 : _a2.includes("SQLITE_AUTH")) || ((_b = error2 == null ? void 0 : error2.message) == null ? void 0 : _b.includes("not authorized"))) { + return []; + } + throw error2; + } + }; + const transactionProxy = async (queries) => { + const results = []; + try { + const statements = queries.map((q3) => d1.prepare(q3.sql)); + const batchResults = await d1.batch(statements); + for (const result of batchResults) { + results.push(result.results ?? []); + } + } catch (error2) { + results.push(error2); + } + return results; + }; + const { drizzle } = await import("drizzle-orm/d1"); + const { migrate: migrate2 } = await import("drizzle-orm/d1/migrator"); + const drzl = drizzle(d1); + const migrateFn = async (config) => { + return migrate2(drzl, config); + }; + return { ...db, packageName: "d1", proxy, transactionProxy, migrate: migrateFn }; + }; + connectToSQLite = async (credentials2) => { + if ("driver" in credentials2) { + const { driver: driver2 } = credentials2; + if (driver2 === "d1-http") { + const { drizzle } = await import("drizzle-orm/sqlite-proxy"); + const { migrate: migrate2 } = await import("drizzle-orm/sqlite-proxy/migrator"); + const remoteCallback = async (sql, params, method) => { + const res = await fetch2( + `https://api.cloudflare.com/client/v4/accounts/${credentials2.accountId}/d1/database/${credentials2.databaseId}/${method === "values" ? "raw" : "query"}`, + { + method: "POST", + body: JSON.stringify({ sql, params }), + headers: { + "Content-Type": "application/json", + Authorization: `Bearer ${credentials2.token}` + } + } + ); + const data = await res.json(); + if (!data.success) { + throw new Error( + data.errors.map((it) => `${it.code}: ${it.message}`).join("\n") + ); + } + const result = data.result[0].results; + const rows = Array.isArray(result) ? result : result.rows; + return { + rows + }; + }; + const remoteBatchCallback = async (queries) => { + const sql = queries.map((q3) => q3.sql).join("; "); + const res = await fetch2( + `https://api.cloudflare.com/client/v4/accounts/${credentials2.accountId}/d1/database/${credentials2.databaseId}/query`, + { + method: "POST", + body: JSON.stringify({ sql }), + headers: { + "Content-Type": "application/json", + Authorization: `Bearer ${credentials2.token}` + } + } + ); + const data = await res.json(); + if (!data.success) { + throw new Error( + data.errors.map((it) => `${it.code}: ${it.message}`).join("\n") + ); + } + const rows = data.result.map((result) => { + const res2 = result.results; + return Array.isArray(res2) ? res2 : res2.rows; + }); + return { + rows + }; + }; + const drzl = drizzle(remoteCallback); + const migrateFn = async (config) => { + return migrate2( + drzl, + async (queries) => { + for (const query of queries) { + await remoteCallback(query, [], "run"); + } + }, + config + ); + }; + const db = { + query: async (sql, params) => { + const res = await remoteCallback(sql, params || [], "all"); + return res.rows; + }, + run: async (query) => { + await remoteCallback(query, [], "run"); + } + }; + const proxy = async (params) => { + const preparedParams = prepareSqliteParams(params.params || [], "d1-http"); + const result = await remoteCallback( + params.sql, + preparedParams, + params.mode === "array" ? "values" : "all" + ); + return result.rows; + }; + const transactionProxy = async (queries) => { + const result = await remoteBatchCallback(queries); + return result.rows; + }; + return { ...db, packageName: "d1-http", proxy, transactionProxy, migrate: migrateFn }; + } else { + assertUnreachable(driver2); + } + } + if (await checkPackage("@libsql/client")) { + const { createClient } = await import("@libsql/client"); + const { drizzle } = await import("drizzle-orm/libsql"); + const { migrate: migrate2 } = await import("drizzle-orm/libsql/migrator"); + const client = createClient({ + url: normaliseSQLiteUrl(credentials2.url, "libsql") + }); + const drzl = drizzle(client); + const migrateFn = async (config) => { + return migrate2(drzl, config); + }; + const db = { + query: async (sql, params) => { + const res = await client.execute({ sql, args: params || [] }); + return res.rows; + }, + run: async (query) => { + await client.execute(query); + } + }; + const proxy = async (params) => { + const preparedParams = prepareSqliteParams(params.params || []); + const result = await client.execute({ + sql: params.sql, + args: preparedParams + }); + if (params.mode === "array") { + return result.rows.map((row) => Object.values(row)); + } else { + return result.rows; + } + }; + const transactionProxy = async (queries) => { + const results = []; + let transaction = null; + try { + transaction = await client.transaction(); + for (const query of queries) { + const result = await transaction.execute(query.sql); + results.push(result.rows); + } + await transaction.commit(); + } catch (error2) { + results.push(error2); + await (transaction == null ? void 0 : transaction.rollback()); + } finally { + transaction == null ? void 0 : transaction.close(); + } + return results; + }; + return { ...db, packageName: "@libsql/client", proxy, transactionProxy, migrate: migrateFn }; + } + if (await checkPackage("better-sqlite3")) { + const { default: Database } = await import("better-sqlite3"); + const { drizzle } = await import("drizzle-orm/better-sqlite3"); + const { migrate: migrate2 } = await import("drizzle-orm/better-sqlite3/migrator"); + const sqlite = new Database( + normaliseSQLiteUrl(credentials2.url, "better-sqlite") + ); + const drzl = drizzle(sqlite); + const migrateFn = async (config) => { + return migrate2(drzl, config); + }; + const db = { + query: async (sql, params = []) => { + return sqlite.prepare(sql).bind(params).all(); + }, + run: async (query) => { + sqlite.prepare(query).run(); + } + }; + const proxy = async (params) => { + const preparedParams = prepareSqliteParams(params.params || []); + if (params.method === "values" || params.method === "get" || params.method === "all") { + return sqlite.prepare(params.sql).raw(params.mode === "array").all(preparedParams); + } + sqlite.prepare(params.sql).run(preparedParams); + return []; + }; + const transactionProxy = async (queries) => { + const results = []; + const tx = sqlite.transaction((queries2) => { + for (const query of queries2) { + let result = []; + if (query.method === "values" || query.method === "get" || query.method === "all") { + result = sqlite.prepare(query.sql).all(); + } else { + sqlite.prepare(query.sql).run(); + } + results.push(result); + } + }); + try { + tx(queries); + } catch (error2) { + results.push(error2); + } + return results; + }; + return { ...db, packageName: "better-sqlite3", proxy, transactionProxy, migrate: migrateFn }; + } + console.log( + "Please install either 'better-sqlite3' or '@libsql/client' for Drizzle Kit to connect to SQLite databases" + ); + process.exit(1); + }; + connectToLibSQL = async (credentials2) => { + if (await checkPackage("@libsql/client")) { + const { createClient } = await import("@libsql/client"); + const { drizzle } = await import("drizzle-orm/libsql"); + const { migrate: migrate2 } = await import("drizzle-orm/libsql/migrator"); + const client = createClient({ + url: normaliseSQLiteUrl(credentials2.url, "libsql"), + authToken: credentials2.authToken + }); + const drzl = drizzle(client); + const migrateFn = async (config) => { + return migrate2(drzl, config); + }; + const db = { + query: async (sql, params) => { + const res = await client.execute({ sql, args: params || [] }); + return res.rows; + }, + run: async (query) => { + await client.execute(query); + }, + batchWithPragma: async (queries) => { + await client.migrate(queries); + } + }; + const proxy = async (params) => { + const preparedParams = prepareSqliteParams(params.params || []); + const result = await client.execute({ + sql: params.sql, + args: preparedParams + }); + if (params.mode === "array") { + return result.rows.map((row) => Object.values(row)); + } else { + return result.rows; + } + }; + const transactionProxy = async (queries) => { + const results = []; + let transaction = null; + try { + transaction = await client.transaction(); + for (const query of queries) { + const result = await transaction.execute(query.sql); + results.push(result.rows); + } + await transaction.commit(); + } catch (error2) { + results.push(error2); + await (transaction == null ? void 0 : transaction.rollback()); + } finally { + transaction == null ? void 0 : transaction.close(); + } + return results; + }; + return { ...db, packageName: "@libsql/client", proxy, transactionProxy, migrate: migrateFn }; + } + console.log( + "Please install '@libsql/client' for Drizzle Kit to connect to LibSQL databases" + ); + process.exit(1); + }; + } +}); + +// src/cli/selector-ui.ts +var import_hanji5, Select; +var init_selector_ui = __esm({ + "src/cli/selector-ui.ts"() { + "use strict"; + init_source(); + import_hanji5 = __toESM(require_hanji()); + Select = class extends import_hanji5.Prompt { + constructor(items) { + super(); + this.on("attach", (terminal) => terminal.toggleCursor("hide")); + this.on("detach", (terminal) => terminal.toggleCursor("show")); + this.data = new import_hanji5.SelectState( + items.map((it) => ({ label: it, value: `${it}-value` })) + ); + this.data.bind(this); + } + render(status) { + if (status === "submitted" || status === "aborted") return ""; + let text = ``; + this.data.items.forEach((it, idx) => { + text += idx === this.data.selectedIdx ? `${source_default.green("\u276F " + it.label)}` : ` ${it.label}`; + text += idx != this.data.items.length - 1 ? "\n" : ""; + }); + return text; + } + result() { + return { + index: this.data.selectedIdx, + value: this.data.items[this.data.selectedIdx].value + }; + } + }; + } +}); + +// src/cli/commands/libSqlPushUtils.ts +var getOldTableName2, _moveDataStatements2, libSqlLogSuggestionsAndReturn; +var init_libSqlPushUtils = __esm({ + "src/cli/commands/libSqlPushUtils.ts"() { + "use strict"; + init_source(); + init_utils2(); + init_sqliteSchema(); + init_sqlgenerator(); + getOldTableName2 = (tableName, meta) => { + for (const key of Object.keys(meta.tables)) { + const value = meta.tables[key]; + if (`"${tableName}"` === value) { + return key.substring(1, key.length - 1); + } + } + return tableName; + }; + _moveDataStatements2 = (tableName, json, dataLoss = false) => { + const statements = []; + const newTableName = `__new_${tableName}`; + const tableColumns = Object.values(json.tables[tableName].columns); + const referenceData = Object.values(json.tables[tableName].foreignKeys); + const compositePKs = Object.values( + json.tables[tableName].compositePrimaryKeys + ).map((it) => SQLiteSquasher.unsquashPK(it)); + const checkConstraints = Object.values(json.tables[tableName].checkConstraints); + const fks = referenceData.map((it) => SQLiteSquasher.unsquashPushFK(it)); + const mappedCheckConstraints = checkConstraints.map( + (it) => it.replaceAll(`"${tableName}".`, `"${newTableName}".`).replaceAll(`\`${tableName}\`.`, `\`${newTableName}\`.`).replaceAll(`${tableName}.`, `${newTableName}.`).replaceAll(`'${tableName}'.`, `\`${newTableName}\`.`) + ); + statements.push( + new SQLiteCreateTableConvertor().convert({ + type: "sqlite_create_table", + tableName: newTableName, + columns: tableColumns, + referenceData: fks, + compositePKs, + checkConstraints: mappedCheckConstraints + }) + ); + if (!dataLoss) { + const columns = Object.keys(json.tables[tableName].columns).map( + (c3) => `"${c3}"` + ); + statements.push( + `INSERT INTO \`${newTableName}\`(${columns.join( + ", " + )}) SELECT ${columns.join(", ")} FROM \`${tableName}\`;` + ); + } + statements.push( + new SQLiteDropTableConvertor().convert({ + type: "drop_table", + tableName, + schema: "" + }) + ); + statements.push( + new SqliteRenameTableConvertor().convert({ + fromSchema: "", + tableNameFrom: newTableName, + tableNameTo: tableName, + toSchema: "", + type: "rename_table" + }) + ); + for (const idx of Object.values(json.tables[tableName].indexes)) { + statements.push( + new CreateSqliteIndexConvertor().convert({ + type: "create_index", + tableName, + schema: "", + data: idx + }) + ); + } + return statements; + }; + libSqlLogSuggestionsAndReturn = async (connection, statements, json1, json2, meta) => { + let shouldAskForApprove = false; + const statementsToExecute = []; + const infoToPrint = []; + const tablesToRemove = []; + const columnsToRemove = []; + const tablesToTruncate = []; + for (const statement of statements) { + if (statement.type === "drop_table") { + const res = await connection.query( + `select count(*) as count from \`${statement.tableName}\`` + ); + const count = Number(res[0].count); + if (count > 0) { + infoToPrint.push( + `\xB7 You're about to delete ${source_default.underline( + statement.tableName + )} table with ${count} items` + ); + tablesToRemove.push(statement.tableName); + shouldAskForApprove = true; + } + const fromJsonStatement = fromJson([statement], "turso", "push", json2); + statementsToExecute.push( + ...Array.isArray(fromJsonStatement) ? fromJsonStatement : [fromJsonStatement] + ); + } else if (statement.type === "alter_table_drop_column") { + const tableName = statement.tableName; + const res = await connection.query( + `select count(*) as count from \`${tableName}\`` + ); + const count = Number(res[0].count); + if (count > 0) { + infoToPrint.push( + `\xB7 You're about to delete ${source_default.underline( + statement.columnName + )} column in ${tableName} table with ${count} items` + ); + columnsToRemove.push(`${tableName}_${statement.columnName}`); + shouldAskForApprove = true; + } + const fromJsonStatement = fromJson([statement], "turso", "push", json2); + statementsToExecute.push( + ...Array.isArray(fromJsonStatement) ? fromJsonStatement : [fromJsonStatement] + ); + } else if (statement.type === "sqlite_alter_table_add_column" && statement.column.notNull && !statement.column.default) { + const newTableName = statement.tableName; + const res = await connection.query( + `select count(*) as count from \`${newTableName}\`` + ); + const count = Number(res[0].count); + if (count > 0) { + infoToPrint.push( + `\xB7 You're about to add not-null ${source_default.underline( + statement.column.name + )} column without default value, which contains ${count} items` + ); + tablesToTruncate.push(newTableName); + statementsToExecute.push(`delete from ${newTableName};`); + shouldAskForApprove = true; + } + const fromJsonStatement = fromJson([statement], "turso", "push", json2); + statementsToExecute.push( + ...Array.isArray(fromJsonStatement) ? fromJsonStatement : [fromJsonStatement] + ); + } else if (statement.type === "alter_table_alter_column_set_notnull") { + const tableName = statement.tableName; + if (statement.type === "alter_table_alter_column_set_notnull" && typeof statement.columnDefault === "undefined") { + const res = await connection.query( + `select count(*) as count from \`${tableName}\`` + ); + const count = Number(res[0].count); + if (count > 0) { + infoToPrint.push( + `\xB7 You're about to add not-null constraint to ${source_default.underline( + statement.columnName + )} column without default value, which contains ${count} items` + ); + tablesToTruncate.push(tableName); + statementsToExecute.push(`delete from \`${tableName}\``); + shouldAskForApprove = true; + } + } + const modifyStatements = new LibSQLModifyColumn().convert(statement, json2); + statementsToExecute.push( + ...Array.isArray(modifyStatements) ? modifyStatements : [modifyStatements] + ); + } else if (statement.type === "recreate_table") { + const tableName = statement.tableName; + let dataLoss = false; + const oldTableName = getOldTableName2(tableName, meta); + const prevColumnNames = Object.keys(json1.tables[oldTableName].columns); + const currentColumnNames = Object.keys(json2.tables[tableName].columns); + const { removedColumns, addedColumns } = findAddedAndRemoved( + prevColumnNames, + currentColumnNames + ); + if (removedColumns.length) { + for (const removedColumn of removedColumns) { + const res = await connection.query( + `select count(\`${tableName}\`.\`${removedColumn}\`) as count from \`${tableName}\`` + ); + const count = Number(res[0].count); + if (count > 0) { + infoToPrint.push( + `\xB7 You're about to delete ${source_default.underline( + removedColumn + )} column in ${tableName} table with ${count} items` + ); + columnsToRemove.push(removedColumn); + shouldAskForApprove = true; + } + } + } + if (addedColumns.length) { + for (const addedColumn of addedColumns) { + const [res] = await connection.query( + `select count(*) as count from \`${tableName}\`` + ); + const columnConf = json2.tables[tableName].columns[addedColumn]; + const count = Number(res.count); + if (count > 0 && columnConf.notNull && !columnConf.default) { + dataLoss = true; + infoToPrint.push( + `\xB7 You're about to add not-null ${source_default.underline( + addedColumn + )} column without default value to table, which contains ${count} items` + ); + shouldAskForApprove = true; + tablesToTruncate.push(tableName); + statementsToExecute.push(`DELETE FROM \`${tableName}\`;`); + } + } + } + const tablesReferencingCurrent = []; + for (const table6 of Object.values(json2.tables)) { + const tablesRefs = Object.values(json2.tables[table6.name].foreignKeys).filter((t4) => SQLiteSquasher.unsquashPushFK(t4).tableTo === tableName).map((it) => SQLiteSquasher.unsquashPushFK(it).tableFrom); + tablesReferencingCurrent.push(...tablesRefs); + } + if (!tablesReferencingCurrent.length) { + statementsToExecute.push(..._moveDataStatements2(tableName, json2, dataLoss)); + continue; + } + statementsToExecute.push( + ..._moveDataStatements2(tableName, json2, dataLoss) + ); + } else if (statement.type === "alter_table_alter_column_set_generated" || statement.type === "alter_table_alter_column_drop_generated") { + const tableName = statement.tableName; + const res = await connection.query( + `select count("${statement.columnName}") as count from \`${tableName}\`` + ); + const count = Number(res[0].count); + if (count > 0) { + infoToPrint.push( + `\xB7 You're about to delete ${source_default.underline( + statement.columnName + )} column in ${tableName} table with ${count} items` + ); + columnsToRemove.push(`${tableName}_${statement.columnName}`); + shouldAskForApprove = true; + } + const fromJsonStatement = fromJson([statement], "turso", "push", json2); + statementsToExecute.push( + ...Array.isArray(fromJsonStatement) ? fromJsonStatement : [fromJsonStatement] + ); + } else { + const fromJsonStatement = fromJson([statement], "turso", "push", json2); + statementsToExecute.push( + ...Array.isArray(fromJsonStatement) ? fromJsonStatement : [fromJsonStatement] + ); + } + } + return { + statementsToExecute: [...new Set(statementsToExecute)], + shouldAskForApprove, + infoToPrint, + columnsToRemove: [...new Set(columnsToRemove)], + tablesToTruncate: [...new Set(tablesToTruncate)], + tablesToRemove: [...new Set(tablesToRemove)] + }; + }; + } +}); + +// src/cli/commands/mysqlPushUtils.ts +var import_hanji6, filterStatements, logSuggestionsAndReturn2; +var init_mysqlPushUtils = __esm({ + "src/cli/commands/mysqlPushUtils.ts"() { + "use strict"; + init_source(); + import_hanji6 = __toESM(require_hanji()); + init_mysqlSchema(); + init_selector_ui(); + init_outputs(); + filterStatements = (statements, currentSchema, prevSchema) => { + return statements.filter((statement) => { + if (statement.type === "alter_table_alter_column_set_type") { + if (statement.oldDataType.startsWith("tinyint") && statement.newDataType.startsWith("boolean")) { + return false; + } + if (statement.oldDataType.startsWith("bigint unsigned") && statement.newDataType.startsWith("serial")) { + return false; + } + if (statement.oldDataType.startsWith("serial") && statement.newDataType.startsWith("bigint unsigned")) { + return false; + } + } else if (statement.type === "alter_table_alter_column_set_default") { + if (statement.newDefaultValue === false && statement.oldDefaultValue === 0 && statement.newDataType === "boolean") { + return false; + } + if (statement.newDefaultValue === true && statement.oldDefaultValue === 1 && statement.newDataType === "boolean") { + return false; + } + } else if (statement.type === "delete_unique_constraint") { + const unsquashed = MySqlSquasher.unsquashUnique(statement.data); + if (unsquashed.columns.length === 1 && currentSchema.tables[statement.tableName].columns[unsquashed.columns[0]].type === "serial" && prevSchema.tables[statement.tableName].columns[unsquashed.columns[0]].type === "serial" && currentSchema.tables[statement.tableName].columns[unsquashed.columns[0]].name === unsquashed.columns[0]) { + return false; + } + } else if (statement.type === "alter_table_alter_column_drop_notnull") { + const serialStatement = statements.find( + (it) => it.type === "alter_table_alter_column_set_type" + ); + if ((serialStatement == null ? void 0 : serialStatement.oldDataType.startsWith("bigint unsigned")) && (serialStatement == null ? void 0 : serialStatement.newDataType.startsWith("serial")) && serialStatement.columnName === statement.columnName && serialStatement.tableName === statement.tableName) { + return false; + } + if (statement.newDataType === "serial" && !statement.columnNotNull) { + return false; + } + if (statement.columnAutoIncrement) { + return false; + } + } + return true; + }); + }; + logSuggestionsAndReturn2 = async (db, statements, json2) => { + let shouldAskForApprove = false; + const statementsToExecute = []; + const infoToPrint = []; + const tablesToRemove = []; + const columnsToRemove = []; + const schemasToRemove = []; + const tablesToTruncate = []; + for (const statement of statements) { + if (statement.type === "drop_table") { + const res = await db.query( + `select count(*) as count from \`${statement.tableName}\`` + ); + const count = Number(res[0].count); + if (count > 0) { + infoToPrint.push( + `\xB7 You're about to delete ${source_default.underline( + statement.tableName + )} table with ${count} items` + ); + tablesToRemove.push(statement.tableName); + shouldAskForApprove = true; + } + } else if (statement.type === "alter_table_drop_column") { + const res = await db.query( + `select count(*) as count from \`${statement.tableName}\`` + ); + const count = Number(res[0].count); + if (count > 0) { + infoToPrint.push( + `\xB7 You're about to delete ${source_default.underline( + statement.columnName + )} column in ${statement.tableName} table with ${count} items` + ); + columnsToRemove.push(`${statement.tableName}_${statement.columnName}`); + shouldAskForApprove = true; + } + } else if (statement.type === "drop_schema") { + const res = await db.query( + `select count(*) as count from information_schema.tables where table_schema = \`${statement.name}\`;` + ); + const count = Number(res[0].count); + if (count > 0) { + infoToPrint.push( + `\xB7 You're about to delete ${source_default.underline( + statement.name + )} schema with ${count} tables` + ); + schemasToRemove.push(statement.name); + shouldAskForApprove = true; + } + } else if (statement.type === "alter_table_alter_column_set_type") { + const res = await db.query( + `select count(*) as count from \`${statement.tableName}\`` + ); + const count = Number(res[0].count); + if (count > 0) { + infoToPrint.push( + `\xB7 You're about to change ${source_default.underline( + statement.columnName + )} column type from ${source_default.underline( + statement.oldDataType + )} to ${source_default.underline(statement.newDataType)} with ${count} items` + ); + statementsToExecute.push(`truncate table ${statement.tableName};`); + tablesToTruncate.push(statement.tableName); + shouldAskForApprove = true; + } + } else if (statement.type === "alter_table_alter_column_drop_default") { + if (statement.columnNotNull) { + const res = await db.query( + `select count(*) as count from \`${statement.tableName}\`` + ); + const count = Number(res[0].count); + if (count > 0) { + infoToPrint.push( + `\xB7 You're about to remove default value from ${source_default.underline( + statement.columnName + )} not-null column with ${count} items` + ); + tablesToTruncate.push(statement.tableName); + statementsToExecute.push(`truncate table ${statement.tableName};`); + shouldAskForApprove = true; + } + } + } else if (statement.type === "alter_table_alter_column_set_notnull") { + if (typeof statement.columnDefault === "undefined") { + const res = await db.query( + `select count(*) as count from \`${statement.tableName}\`` + ); + const count = Number(res[0].count); + if (count > 0) { + infoToPrint.push( + `\xB7 You're about to set not-null constraint to ${source_default.underline( + statement.columnName + )} column without default, which contains ${count} items` + ); + tablesToTruncate.push(statement.tableName); + statementsToExecute.push(`truncate table ${statement.tableName};`); + shouldAskForApprove = true; + } + } + } else if (statement.type === "alter_table_alter_column_drop_pk") { + const res = await db.query( + `select count(*) as count from \`${statement.tableName}\`` + ); + if (Object.values(json2.tables[statement.tableName].columns).filter( + (column11) => column11.autoincrement + ).length > 0) { + console.log( + `${withStyle.errorWarning( + `You have removed the primary key from a ${statement.tableName} table without removing the auto-increment property from this table. As the database error states: 'there can be only one auto column, and it must be defined as a key. Make sure to remove autoincrement from ${statement.tableName} table` + )}` + ); + process.exit(1); + } + const count = Number(res[0].count); + if (count > 0) { + infoToPrint.push( + `\xB7 You're about to change ${source_default.underline( + statement.tableName + )} primary key. This statements may fail and you table may left without primary key` + ); + tablesToTruncate.push(statement.tableName); + shouldAskForApprove = true; + } + } else if (statement.type === "delete_composite_pk") { + if (Object.values(json2.tables[statement.tableName].columns).filter( + (column11) => column11.autoincrement + ).length > 0) { + console.log( + `${withStyle.errorWarning( + `You have removed the primary key from a ${statement.tableName} table without removing the auto-increment property from this table. As the database error states: 'there can be only one auto column, and it must be defined as a key. Make sure to remove autoincrement from ${statement.tableName} table` + )}` + ); + process.exit(1); + } + } else if (statement.type === "alter_table_add_column") { + if (statement.column.notNull && typeof statement.column.default === "undefined") { + const res = await db.query( + `select count(*) as count from \`${statement.tableName}\`` + ); + const count = Number(res[0].count); + if (count > 0) { + infoToPrint.push( + `\xB7 You're about to add not-null ${source_default.underline( + statement.column.name + )} column without default value, which contains ${count} items` + ); + tablesToTruncate.push(statement.tableName); + statementsToExecute.push(`truncate table ${statement.tableName};`); + shouldAskForApprove = true; + } + } + } else if (statement.type === "create_unique_constraint") { + const res = await db.query( + `select count(*) as count from \`${statement.tableName}\`` + ); + const count = Number(res[0].count); + if (count > 0) { + const unsquashedUnique = MySqlSquasher.unsquashUnique(statement.data); + console.log( + `\xB7 You're about to add ${source_default.underline( + unsquashedUnique.name + )} unique constraint to the table, which contains ${count} items. If this statement fails, you will receive an error from the database. Do you want to truncate ${source_default.underline( + statement.tableName + )} table? +` + ); + const { status, data } = await (0, import_hanji6.render)( + new Select([ + "No, add the constraint without truncating the table", + `Yes, truncate the table` + ]) + ); + if ((data == null ? void 0 : data.index) === 1) { + tablesToTruncate.push(statement.tableName); + statementsToExecute.push(`truncate table ${statement.tableName};`); + shouldAskForApprove = true; + } + } + } + } + return { + statementsToExecute, + shouldAskForApprove, + infoToPrint, + columnsToRemove: [...new Set(columnsToRemove)], + schemasToRemove: [...new Set(schemasToRemove)], + tablesToTruncate: [...new Set(tablesToTruncate)], + tablesToRemove: [...new Set(tablesToRemove)] + }; + }; + } +}); + +// src/cli/commands/pgPushUtils.ts +function concatSchemaAndTableName(schema6, table6) { + return schema6 ? `"${schema6}"."${table6}"` : `"${table6}"`; +} +function tableNameWithSchemaFrom(schema6, tableName, renamedSchemas, renamedTables) { + const newSchemaName = schema6 ? renamedSchemas[schema6] ? renamedSchemas[schema6] : schema6 : void 0; + const newTableName = renamedTables[concatSchemaAndTableName(newSchemaName, tableName)] ? renamedTables[concatSchemaAndTableName(newSchemaName, tableName)] : tableName; + return concatSchemaAndTableName(newSchemaName, newTableName); +} +var import_hanji7, pgSuggestions; +var init_pgPushUtils = __esm({ + "src/cli/commands/pgPushUtils.ts"() { + "use strict"; + init_source(); + import_hanji7 = __toESM(require_hanji()); + init_pgSchema(); + init_sqlgenerator(); + init_selector_ui(); + pgSuggestions = async (db, statements) => { + let shouldAskForApprove = false; + const statementsToExecute = []; + const infoToPrint = []; + const tablesToRemove = []; + const columnsToRemove = []; + const schemasToRemove = []; + const tablesToTruncate = []; + const matViewsToRemove = []; + let renamedSchemas = {}; + let renamedTables = {}; + for (const statement of statements) { + if (statement.type === "rename_schema") { + renamedSchemas[statement.to] = statement.from; + } else if (statement.type === "rename_table") { + renamedTables[concatSchemaAndTableName(statement.toSchema, statement.tableNameTo)] = statement.tableNameFrom; + } else if (statement.type === "drop_table") { + const res = await db.query( + `select count(*) as count from ${tableNameWithSchemaFrom(statement.schema, statement.tableName, renamedSchemas, renamedTables)}` + ); + const count = Number(res[0].count); + if (count > 0) { + infoToPrint.push(`\xB7 You're about to delete ${source_default.underline(statement.tableName)} table with ${count} items`); + tablesToRemove.push(statement.tableName); + shouldAskForApprove = true; + } + } else if (statement.type === "drop_view" && statement.materialized) { + const res = await db.query(`select count(*) as count from "${statement.schema ?? "public"}"."${statement.name}"`); + const count = Number(res[0].count); + if (count > 0) { + infoToPrint.push( + `\xB7 You're about to delete "${source_default.underline(statement.name)}" materialized view with ${count} items` + ); + matViewsToRemove.push(statement.name); + shouldAskForApprove = true; + } + } else if (statement.type === "alter_table_drop_column") { + const res = await db.query( + `select count(*) as count from ${tableNameWithSchemaFrom(statement.schema, statement.tableName, renamedSchemas, renamedTables)}` + ); + const count = Number(res[0].count); + if (count > 0) { + infoToPrint.push( + `\xB7 You're about to delete ${source_default.underline(statement.columnName)} column in ${statement.tableName} table with ${count} items` + ); + columnsToRemove.push(`${statement.tableName}_${statement.columnName}`); + shouldAskForApprove = true; + } + } else if (statement.type === "drop_schema") { + const res = await db.query( + `select count(*) as count from information_schema.tables where table_schema = '${statement.name}';` + ); + const count = Number(res[0].count); + if (count > 0) { + infoToPrint.push(`\xB7 You're about to delete ${source_default.underline(statement.name)} schema with ${count} tables`); + schemasToRemove.push(statement.name); + shouldAskForApprove = true; + } + } else if (statement.type === "alter_table_alter_column_set_type") { + const res = await db.query( + `select count(*) as count from ${tableNameWithSchemaFrom(statement.schema, statement.tableName, renamedSchemas, renamedTables)}` + ); + const count = Number(res[0].count); + if (count > 0) { + infoToPrint.push( + `\xB7 You're about to change ${source_default.underline(statement.columnName)} column type from ${source_default.underline(statement.oldDataType)} to ${source_default.underline( + statement.newDataType + )} with ${count} items` + ); + statementsToExecute.push( + `truncate table ${tableNameWithSchemaFrom(statement.schema, statement.tableName, renamedSchemas, renamedTables)} cascade;` + ); + tablesToTruncate.push(statement.tableName); + shouldAskForApprove = true; + } + } else if (statement.type === "alter_table_alter_column_drop_pk") { + const res = await db.query( + `select count(*) as count from ${tableNameWithSchemaFrom(statement.schema, statement.tableName, renamedSchemas, renamedTables)}` + ); + const count = Number(res[0].count); + if (count > 0) { + infoToPrint.push( + `\xB7 You're about to change ${source_default.underline(statement.tableName)} primary key. This statements may fail and you table may left without primary key` + ); + tablesToTruncate.push(statement.tableName); + shouldAskForApprove = true; + } + const tableNameWithSchema = tableNameWithSchemaFrom( + statement.schema, + statement.tableName, + renamedSchemas, + renamedTables + ); + const pkNameResponse = await db.query( + `SELECT constraint_name FROM information_schema.table_constraints + WHERE table_schema = '${typeof statement.schema === "undefined" || statement.schema === "" ? "public" : statement.schema}' + AND table_name = '${statement.tableName}' + AND constraint_type = 'PRIMARY KEY';` + ); + statementsToExecute.push( + `ALTER TABLE ${tableNameWithSchema} DROP CONSTRAINT "${pkNameResponse[0].constraint_name}"` + ); + continue; + } else if (statement.type === "alter_table_add_column") { + if (statement.column.notNull && typeof statement.column.default === "undefined") { + const res = await db.query( + `select count(*) as count from ${tableNameWithSchemaFrom(statement.schema, statement.tableName, renamedSchemas, renamedTables)}` + ); + const count = Number(res[0].count); + if (count > 0) { + infoToPrint.push( + `\xB7 You're about to add not-null ${source_default.underline(statement.column.name)} column without default value, which contains ${count} items` + ); + tablesToTruncate.push(statement.tableName); + statementsToExecute.push( + `truncate table ${tableNameWithSchemaFrom(statement.schema, statement.tableName, renamedSchemas, renamedTables)} cascade;` + ); + shouldAskForApprove = true; + } + } + } else if (statement.type === "create_unique_constraint") { + const res = await db.query( + `select count(*) as count from ${tableNameWithSchemaFrom(statement.schema, statement.tableName, renamedSchemas, renamedTables)}` + ); + const count = Number(res[0].count); + if (count > 0) { + const unsquashedUnique = PgSquasher.unsquashUnique(statement.data); + console.log( + `\xB7 You're about to add ${source_default.underline( + unsquashedUnique.name + )} unique constraint to the table, which contains ${count} items. If this statement fails, you will receive an error from the database. Do you want to truncate ${source_default.underline( + statement.tableName + )} table? +` + ); + const { status, data } = await (0, import_hanji7.render)( + new Select(["No, add the constraint without truncating the table", `Yes, truncate the table`]) + ); + if ((data == null ? void 0 : data.index) === 1) { + tablesToTruncate.push(statement.tableName); + statementsToExecute.push( + `truncate table ${tableNameWithSchemaFrom(statement.schema, statement.tableName, renamedSchemas, renamedTables)} cascade;` + ); + shouldAskForApprove = true; + } + } + } + const stmnt = fromJson([statement], "postgresql", "push"); + if (typeof stmnt !== "undefined") { + statementsToExecute.push(...stmnt); + } + } + return { + statementsToExecute: [...new Set(statementsToExecute)], + shouldAskForApprove, + infoToPrint, + matViewsToRemove: [...new Set(matViewsToRemove)], + columnsToRemove: [...new Set(columnsToRemove)], + schemasToRemove: [...new Set(schemasToRemove)], + tablesToTruncate: [...new Set(tablesToTruncate)], + tablesToRemove: [...new Set(tablesToRemove)] + }; + }; + } +}); + +// src/cli/commands/singlestorePushUtils.ts +function findColumnTypeAlternations(columns1, columns2) { + const changes = []; + for (const key in columns1) { + if (columns1.hasOwnProperty(key) && columns2.hasOwnProperty(key)) { + const col1 = columns1[key]; + const col2 = columns2[key]; + if (col1.type !== col2.type) { + changes.push(col2.name); + } + } + } + return changes; +} +var import_hanji8, filterStatements2, logSuggestionsAndReturn3; +var init_singlestorePushUtils = __esm({ + "src/cli/commands/singlestorePushUtils.ts"() { + "use strict"; + init_source(); + import_hanji8 = __toESM(require_hanji()); + init_sqlgenerator(); + init_singlestoreSchema(); + init_utils2(); + init_selector_ui(); + init_outputs(); + filterStatements2 = (statements, currentSchema, prevSchema) => { + return statements.filter((statement) => { + if (statement.type === "alter_table_alter_column_set_type") { + if (statement.oldDataType.startsWith("tinyint") && statement.newDataType.startsWith("boolean")) { + return false; + } + if (statement.oldDataType.startsWith("bigint unsigned") && statement.newDataType.startsWith("serial")) { + return false; + } + if (statement.oldDataType.startsWith("serial") && statement.newDataType.startsWith("bigint unsigned")) { + return false; + } + } else if (statement.type === "alter_table_alter_column_set_default") { + if (statement.newDefaultValue === false && statement.oldDefaultValue === 0 && statement.newDataType === "boolean") { + return false; + } + if (statement.newDefaultValue === true && statement.oldDefaultValue === 1 && statement.newDataType === "boolean") { + return false; + } + } else if (statement.type === "delete_unique_constraint") { + const unsquashed = SingleStoreSquasher.unsquashUnique(statement.data); + if (unsquashed.columns.length === 1 && currentSchema.tables[statement.tableName].columns[unsquashed.columns[0]].type === "serial" && prevSchema.tables[statement.tableName].columns[unsquashed.columns[0]].type === "serial" && currentSchema.tables[statement.tableName].columns[unsquashed.columns[0]].name === unsquashed.columns[0]) { + return false; + } + } else if (statement.type === "alter_table_alter_column_drop_notnull") { + const serialStatement = statements.find( + (it) => it.type === "alter_table_alter_column_set_type" + ); + if ((serialStatement == null ? void 0 : serialStatement.oldDataType.startsWith("bigint unsigned")) && (serialStatement == null ? void 0 : serialStatement.newDataType.startsWith("serial")) && serialStatement.columnName === statement.columnName && serialStatement.tableName === statement.tableName) { + return false; + } + if (statement.newDataType === "serial" && !statement.columnNotNull) { + return false; + } + if (statement.columnAutoIncrement) { + return false; + } + } + return true; + }); + }; + logSuggestionsAndReturn3 = async (db, statements, json2, json1) => { + let shouldAskForApprove = false; + const statementsToExecute = []; + const infoToPrint = []; + const tablesToRemove = []; + const columnsToRemove = []; + const schemasToRemove = []; + const tablesToTruncate = []; + for (const statement of statements) { + if (statement.type === "drop_table") { + const res = await db.query( + `select count(*) as count from \`${statement.tableName}\`` + ); + const count = Number(res[0].count); + if (count > 0) { + infoToPrint.push( + `\xB7 You're about to delete ${source_default.underline( + statement.tableName + )} table with ${count} items` + ); + tablesToRemove.push(statement.tableName); + shouldAskForApprove = true; + } + } else if (statement.type === "alter_table_drop_column") { + const res = await db.query( + `select count(*) as count from \`${statement.tableName}\`` + ); + const count = Number(res[0].count); + if (count > 0) { + infoToPrint.push( + `\xB7 You're about to delete ${source_default.underline( + statement.columnName + )} column in ${statement.tableName} table with ${count} items` + ); + columnsToRemove.push(`${statement.tableName}_${statement.columnName}`); + shouldAskForApprove = true; + } + } else if (statement.type === "drop_schema") { + const res = await db.query( + `select count(*) as count from information_schema.tables where table_schema = \`${statement.name}\`;` + ); + const count = Number(res[0].count); + if (count > 0) { + infoToPrint.push( + `\xB7 You're about to delete ${source_default.underline( + statement.name + )} schema with ${count} tables` + ); + schemasToRemove.push(statement.name); + shouldAskForApprove = true; + } + } else if (statement.type === "alter_table_alter_column_set_type") { + const res = await db.query( + `select count(*) as count from \`${statement.tableName}\`` + ); + const count = Number(res[0].count); + if (count > 0) { + infoToPrint.push( + `\xB7 You're about to change ${source_default.underline( + statement.columnName + )} column type from ${source_default.underline( + statement.oldDataType + )} to ${source_default.underline(statement.newDataType)} with ${count} items` + ); + statementsToExecute.push(`truncate table ${statement.tableName};`); + tablesToTruncate.push(statement.tableName); + shouldAskForApprove = true; + } + } else if (statement.type === "alter_table_alter_column_drop_default") { + if (statement.columnNotNull) { + const res = await db.query( + `select count(*) as count from \`${statement.tableName}\`` + ); + const count = Number(res[0].count); + if (count > 0) { + infoToPrint.push( + `\xB7 You're about to remove default value from ${source_default.underline( + statement.columnName + )} not-null column with ${count} items` + ); + tablesToTruncate.push(statement.tableName); + statementsToExecute.push(`truncate table ${statement.tableName};`); + shouldAskForApprove = true; + } + } + } else if (statement.type === "alter_table_alter_column_set_notnull") { + if (typeof statement.columnDefault === "undefined") { + const res = await db.query( + `select count(*) as count from \`${statement.tableName}\`` + ); + const count = Number(res[0].count); + if (count > 0) { + infoToPrint.push( + `\xB7 You're about to set not-null constraint to ${source_default.underline( + statement.columnName + )} column without default, which contains ${count} items` + ); + tablesToTruncate.push(statement.tableName); + statementsToExecute.push(`truncate table ${statement.tableName};`); + shouldAskForApprove = true; + } + } + } else if (statement.type === "alter_table_alter_column_drop_pk") { + const res = await db.query( + `select count(*) as count from \`${statement.tableName}\`` + ); + if (Object.values(json2.tables[statement.tableName].columns).filter( + (column11) => column11.autoincrement + ).length > 0) { + console.log( + `${withStyle.errorWarning( + `You have removed the primary key from a ${statement.tableName} table without removing the auto-increment property from this table. As the database error states: 'there can be only one auto column, and it must be defined as a key. Make sure to remove autoincrement from ${statement.tableName} table` + )}` + ); + process.exit(1); + } + const count = Number(res[0].count); + if (count > 0) { + infoToPrint.push( + `\xB7 You're about to change ${source_default.underline( + statement.tableName + )} primary key. This statements may fail and you table may left without primary key` + ); + tablesToTruncate.push(statement.tableName); + shouldAskForApprove = true; + } + } else if (statement.type === "delete_composite_pk") { + if (Object.values(json2.tables[statement.tableName].columns).filter( + (column11) => column11.autoincrement + ).length > 0) { + console.log( + `${withStyle.errorWarning( + `You have removed the primary key from a ${statement.tableName} table without removing the auto-increment property from this table. As the database error states: 'there can be only one auto column, and it must be defined as a key. Make sure to remove autoincrement from ${statement.tableName} table` + )}` + ); + process.exit(1); + } + } else if (statement.type === "alter_table_add_column") { + if (statement.column.notNull && typeof statement.column.default === "undefined") { + const res = await db.query( + `select count(*) as count from \`${statement.tableName}\`` + ); + const count = Number(res[0].count); + if (count > 0) { + infoToPrint.push( + `\xB7 You're about to add not-null ${source_default.underline( + statement.column.name + )} column without default value, which contains ${count} items` + ); + tablesToTruncate.push(statement.tableName); + statementsToExecute.push(`truncate table ${statement.tableName};`); + shouldAskForApprove = true; + } + } + } else if (statement.type === "create_unique_constraint") { + const res = await db.query( + `select count(*) as count from \`${statement.tableName}\`` + ); + const count = Number(res[0].count); + if (count > 0) { + const unsquashedUnique = SingleStoreSquasher.unsquashUnique(statement.data); + console.log( + `\xB7 You're about to add ${source_default.underline( + unsquashedUnique.name + )} unique constraint to the table, which contains ${count} items. If this statement fails, you will receive an error from the database. Do you want to truncate ${source_default.underline( + statement.tableName + )} table? +` + ); + const { status, data } = await (0, import_hanji8.render)( + new Select([ + "No, add the constraint without truncating the table", + `Yes, truncate the table` + ]) + ); + if ((data == null ? void 0 : data.index) === 1) { + tablesToTruncate.push(statement.tableName); + statementsToExecute.push(`truncate table ${statement.tableName};`); + shouldAskForApprove = true; + } + } + } else if (statement.type === "singlestore_recreate_table") { + const tableName = statement.tableName; + const prevColumns = json1.tables[tableName].columns; + const currentColumns = json2.tables[tableName].columns; + const { removedColumns, addedColumns } = findAddedAndRemoved( + Object.keys(prevColumns), + Object.keys(currentColumns) + ); + if (removedColumns.length) { + for (const removedColumn of removedColumns) { + const res = await db.query( + `select count(\`${tableName}\`.\`${removedColumn}\`) as count from \`${tableName}\`` + ); + const count = Number(res[0].count); + if (count > 0) { + infoToPrint.push( + `\xB7 You're about to delete ${source_default.underline( + removedColumn + )} column in ${tableName} table with ${count} items` + ); + columnsToRemove.push(removedColumn); + shouldAskForApprove = true; + } + } + } + if (addedColumns.length) { + for (const addedColumn of addedColumns) { + const [res] = await db.query( + `select count(*) as count from \`${tableName}\`` + ); + const columnConf = json2.tables[tableName].columns[addedColumn]; + const count = Number(res.count); + if (count > 0 && columnConf.notNull && !columnConf.default) { + infoToPrint.push( + `\xB7 You're about to add not-null ${source_default.underline( + addedColumn + )} column without default value to table, which contains ${count} items` + ); + shouldAskForApprove = true; + tablesToTruncate.push(tableName); + statementsToExecute.push(`TRUNCATE TABLE \`${tableName}\`;`); + } + } + } + const columnWithChangedType = findColumnTypeAlternations(prevColumns, currentColumns); + for (const column11 of columnWithChangedType) { + const [res] = await db.query( + `select count(*) as count from \`${tableName}\` WHERE \`${tableName}\`.\`${column11}\` IS NOT NULL;` + ); + const count = Number(res.count); + if (count > 0) { + infoToPrint.push( + `\xB7 You're about recreate ${source_default.underline(tableName)} table with data type changing for ${source_default.underline( + column11 + )} column, which contains ${count} items` + ); + shouldAskForApprove = true; + tablesToTruncate.push(tableName); + statementsToExecute.push(`TRUNCATE TABLE \`${tableName}\`;`); + } + } + } + const stmnt = fromJson([statement], "singlestore", "push"); + if (typeof stmnt !== "undefined") { + statementsToExecute.push(...stmnt); + } + } + return { + statementsToExecute, + shouldAskForApprove, + infoToPrint, + columnsToRemove: [...new Set(columnsToRemove)], + schemasToRemove: [...new Set(schemasToRemove)], + tablesToTruncate: [...new Set(tablesToTruncate)], + tablesToRemove: [...new Set(tablesToRemove)] + }; + }; + } +}); + +// ../node_modules/.pnpm/minimatch@7.4.6/node_modules/minimatch/dist/mjs/brace-expressions.js +var posixClasses, braceEscape, regexpEscape, rangesToString, parseClass; +var init_brace_expressions = __esm({ + "../node_modules/.pnpm/minimatch@7.4.6/node_modules/minimatch/dist/mjs/brace-expressions.js"() { + posixClasses = { + "[:alnum:]": ["\\p{L}\\p{Nl}\\p{Nd}", true], + "[:alpha:]": ["\\p{L}\\p{Nl}", true], + "[:ascii:]": ["\\x00-\\x7f", false], + "[:blank:]": ["\\p{Zs}\\t", true], + "[:cntrl:]": ["\\p{Cc}", true], + "[:digit:]": ["\\p{Nd}", true], + "[:graph:]": ["\\p{Z}\\p{C}", true, true], + "[:lower:]": ["\\p{Ll}", true], + "[:print:]": ["\\p{C}", true], + "[:punct:]": ["\\p{P}", true], + "[:space:]": ["\\p{Z}\\t\\r\\n\\v\\f", true], + "[:upper:]": ["\\p{Lu}", true], + "[:word:]": ["\\p{L}\\p{Nl}\\p{Nd}\\p{Pc}", true], + "[:xdigit:]": ["A-Fa-f0-9", false] + }; + braceEscape = (s4) => s4.replace(/[[\]\\-]/g, "\\$&"); + regexpEscape = (s4) => s4.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"); + rangesToString = (ranges) => ranges.join(""); + parseClass = (glob2, position) => { + const pos = position; + if (glob2.charAt(pos) !== "[") { + throw new Error("not in a brace expression"); + } + const ranges = []; + const negs = []; + let i4 = pos + 1; + let sawStart = false; + let uflag = false; + let escaping = false; + let negate = false; + let endPos = pos; + let rangeStart = ""; + WHILE: while (i4 < glob2.length) { + const c3 = glob2.charAt(i4); + if ((c3 === "!" || c3 === "^") && i4 === pos + 1) { + negate = true; + i4++; + continue; + } + if (c3 === "]" && sawStart && !escaping) { + endPos = i4 + 1; + break; + } + sawStart = true; + if (c3 === "\\") { + if (!escaping) { + escaping = true; + i4++; + continue; + } + } + if (c3 === "[" && !escaping) { + for (const [cls, [unip, u3, neg]] of Object.entries(posixClasses)) { + if (glob2.startsWith(cls, i4)) { + if (rangeStart) { + return ["$.", false, glob2.length - pos, true]; + } + i4 += cls.length; + if (neg) + negs.push(unip); + else + ranges.push(unip); + uflag = uflag || u3; + continue WHILE; + } + } + } + escaping = false; + if (rangeStart) { + if (c3 > rangeStart) { + ranges.push(braceEscape(rangeStart) + "-" + braceEscape(c3)); + } else if (c3 === rangeStart) { + ranges.push(braceEscape(c3)); + } + rangeStart = ""; + i4++; + continue; + } + if (glob2.startsWith("-]", i4 + 1)) { + ranges.push(braceEscape(c3 + "-")); + i4 += 2; + continue; + } + if (glob2.startsWith("-", i4 + 1)) { + rangeStart = c3; + i4 += 2; + continue; + } + ranges.push(braceEscape(c3)); + i4++; + } + if (endPos < i4) { + return ["", false, 0, false]; + } + if (!ranges.length && !negs.length) { + return ["$.", false, glob2.length - pos, true]; + } + if (negs.length === 0 && ranges.length === 1 && /^\\?.$/.test(ranges[0]) && !negate) { + const r4 = ranges[0].length === 2 ? ranges[0].slice(-1) : ranges[0]; + return [regexpEscape(r4), false, endPos - pos, false]; + } + const sranges = "[" + (negate ? "^" : "") + rangesToString(ranges) + "]"; + const snegs = "[" + (negate ? "" : "^") + rangesToString(negs) + "]"; + const comb = ranges.length && negs.length ? "(" + sranges + "|" + snegs + ")" : ranges.length ? sranges : snegs; + return [comb, uflag, endPos - pos, true]; + }; + } +}); + +// ../node_modules/.pnpm/minimatch@7.4.6/node_modules/minimatch/dist/mjs/escape.js +var escape; +var init_escape = __esm({ + "../node_modules/.pnpm/minimatch@7.4.6/node_modules/minimatch/dist/mjs/escape.js"() { + escape = (s4, { windowsPathsNoEscape = false } = {}) => { + return windowsPathsNoEscape ? s4.replace(/[?*()[\]]/g, "[$&]") : s4.replace(/[?*()[\]\\]/g, "\\$&"); + }; + } +}); + +// ../node_modules/.pnpm/minimatch@7.4.6/node_modules/minimatch/dist/mjs/unescape.js +var unescape2; +var init_unescape = __esm({ + "../node_modules/.pnpm/minimatch@7.4.6/node_modules/minimatch/dist/mjs/unescape.js"() { + unescape2 = (s4, { windowsPathsNoEscape = false } = {}) => { + return windowsPathsNoEscape ? s4.replace(/\[([^\/\\])\]/g, "$1") : s4.replace(/((?!\\).|^)\[([^\/\\])\]/g, "$1$2").replace(/\\([^\/])/g, "$1"); + }; + } +}); + +// ../node_modules/.pnpm/minimatch@7.4.6/node_modules/minimatch/dist/mjs/index.js +var import_brace_expansion, minimatch, starDotExtRE, starDotExtTest, starDotExtTestDot, starDotExtTestNocase, starDotExtTestNocaseDot, starDotStarRE, starDotStarTest, starDotStarTestDot, dotStarRE, dotStarTest, starRE, starTest, starTestDot, qmarksRE, qmarksTestNocase, qmarksTestNocaseDot, qmarksTestDot, qmarksTest, qmarksTestNoExt, qmarksTestNoExtDot, defaultPlatform, path3, sep, GLOBSTAR, plTypes, qmark, star, twoStarDot, twoStarNoDot, charSet, reSpecials, addPatternStartSet, filter, ext, defaults, braceExpand, MAX_PATTERN_LENGTH, assertValidPattern, makeRe, match, globUnescape, globMagic, regExpEscape, Minimatch; +var init_mjs = __esm({ + "../node_modules/.pnpm/minimatch@7.4.6/node_modules/minimatch/dist/mjs/index.js"() { + import_brace_expansion = __toESM(require_brace_expansion(), 1); + init_brace_expressions(); + init_escape(); + init_unescape(); + init_escape(); + init_unescape(); + minimatch = (p3, pattern, options = {}) => { + assertValidPattern(pattern); + if (!options.nocomment && pattern.charAt(0) === "#") { + return false; + } + return new Minimatch(pattern, options).match(p3); + }; + starDotExtRE = /^\*+([^+@!?\*\[\(]*)$/; + starDotExtTest = (ext2) => (f5) => !f5.startsWith(".") && f5.endsWith(ext2); + starDotExtTestDot = (ext2) => (f5) => f5.endsWith(ext2); + starDotExtTestNocase = (ext2) => { + ext2 = ext2.toLowerCase(); + return (f5) => !f5.startsWith(".") && f5.toLowerCase().endsWith(ext2); + }; + starDotExtTestNocaseDot = (ext2) => { + ext2 = ext2.toLowerCase(); + return (f5) => f5.toLowerCase().endsWith(ext2); + }; + starDotStarRE = /^\*+\.\*+$/; + starDotStarTest = (f5) => !f5.startsWith(".") && f5.includes("."); + starDotStarTestDot = (f5) => f5 !== "." && f5 !== ".." && f5.includes("."); + dotStarRE = /^\.\*+$/; + dotStarTest = (f5) => f5 !== "." && f5 !== ".." && f5.startsWith("."); + starRE = /^\*+$/; + starTest = (f5) => f5.length !== 0 && !f5.startsWith("."); + starTestDot = (f5) => f5.length !== 0 && f5 !== "." && f5 !== ".."; + qmarksRE = /^\?+([^+@!?\*\[\(]*)?$/; + qmarksTestNocase = ([$0, ext2 = ""]) => { + const noext = qmarksTestNoExt([$0]); + if (!ext2) + return noext; + ext2 = ext2.toLowerCase(); + return (f5) => noext(f5) && f5.toLowerCase().endsWith(ext2); + }; + qmarksTestNocaseDot = ([$0, ext2 = ""]) => { + const noext = qmarksTestNoExtDot([$0]); + if (!ext2) + return noext; + ext2 = ext2.toLowerCase(); + return (f5) => noext(f5) && f5.toLowerCase().endsWith(ext2); + }; + qmarksTestDot = ([$0, ext2 = ""]) => { + const noext = qmarksTestNoExtDot([$0]); + return !ext2 ? noext : (f5) => noext(f5) && f5.endsWith(ext2); + }; + qmarksTest = ([$0, ext2 = ""]) => { + const noext = qmarksTestNoExt([$0]); + return !ext2 ? noext : (f5) => noext(f5) && f5.endsWith(ext2); + }; + qmarksTestNoExt = ([$0]) => { + const len = $0.length; + return (f5) => f5.length === len && !f5.startsWith("."); + }; + qmarksTestNoExtDot = ([$0]) => { + const len = $0.length; + return (f5) => f5.length === len && f5 !== "." && f5 !== ".."; + }; + defaultPlatform = typeof process === "object" && process ? typeof process.env === "object" && process.env && process.env.__MINIMATCH_TESTING_PLATFORM__ || process.platform : "posix"; + path3 = { + win32: { sep: "\\" }, + posix: { sep: "/" } + }; + sep = defaultPlatform === "win32" ? path3.win32.sep : path3.posix.sep; + minimatch.sep = sep; + GLOBSTAR = Symbol("globstar **"); + minimatch.GLOBSTAR = GLOBSTAR; + plTypes = { + "!": { open: "(?:(?!(?:", close: "))[^/]*?)" }, + "?": { open: "(?:", close: ")?" }, + "+": { open: "(?:", close: ")+" }, + "*": { open: "(?:", close: ")*" }, + "@": { open: "(?:", close: ")" } + }; + qmark = "[^/]"; + star = qmark + "*?"; + twoStarDot = "(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?"; + twoStarNoDot = "(?:(?!(?:\\/|^)\\.).)*?"; + charSet = (s4) => s4.split("").reduce((set, c3) => { + set[c3] = true; + return set; + }, {}); + reSpecials = charSet("().*{}+?[]^$\\!"); + addPatternStartSet = charSet("[.("); + filter = (pattern, options = {}) => (p3) => minimatch(p3, pattern, options); + minimatch.filter = filter; + ext = (a3, b3 = {}) => Object.assign({}, a3, b3); + defaults = (def) => { + if (!def || typeof def !== "object" || !Object.keys(def).length) { + return minimatch; + } + const orig = minimatch; + const m4 = (p3, pattern, options = {}) => orig(p3, pattern, ext(def, options)); + return Object.assign(m4, { + Minimatch: class Minimatch extends orig.Minimatch { + constructor(pattern, options = {}) { + super(pattern, ext(def, options)); + } + static defaults(options) { + return orig.defaults(ext(def, options)).Minimatch; + } + }, + unescape: (s4, options = {}) => orig.unescape(s4, ext(def, options)), + escape: (s4, options = {}) => orig.escape(s4, ext(def, options)), + filter: (pattern, options = {}) => orig.filter(pattern, ext(def, options)), + defaults: (options) => orig.defaults(ext(def, options)), + makeRe: (pattern, options = {}) => orig.makeRe(pattern, ext(def, options)), + braceExpand: (pattern, options = {}) => orig.braceExpand(pattern, ext(def, options)), + match: (list, pattern, options = {}) => orig.match(list, pattern, ext(def, options)), + sep: orig.sep, + GLOBSTAR + }); + }; + minimatch.defaults = defaults; + braceExpand = (pattern, options = {}) => { + assertValidPattern(pattern); + if (options.nobrace || !/\{(?:(?!\{).)*\}/.test(pattern)) { + return [pattern]; + } + return (0, import_brace_expansion.default)(pattern); + }; + minimatch.braceExpand = braceExpand; + MAX_PATTERN_LENGTH = 1024 * 64; + assertValidPattern = (pattern) => { + if (typeof pattern !== "string") { + throw new TypeError("invalid pattern"); + } + if (pattern.length > MAX_PATTERN_LENGTH) { + throw new TypeError("pattern is too long"); + } + }; + makeRe = (pattern, options = {}) => new Minimatch(pattern, options).makeRe(); + minimatch.makeRe = makeRe; + match = (list, pattern, options = {}) => { + const mm = new Minimatch(pattern, options); + list = list.filter((f5) => mm.match(f5)); + if (mm.options.nonull && !list.length) { + list.push(pattern); + } + return list; + }; + minimatch.match = match; + globUnescape = (s4) => s4.replace(/\\(.)/g, "$1"); + globMagic = /[?*]|[+@!]\(.*?\)|\[|\]/; + regExpEscape = (s4) => s4.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"); + Minimatch = class { + options; + set; + pattern; + windowsPathsNoEscape; + nonegate; + negate; + comment; + empty; + preserveMultipleSlashes; + partial; + globSet; + globParts; + nocase; + isWindows; + platform; + windowsNoMagicRoot; + regexp; + constructor(pattern, options = {}) { + assertValidPattern(pattern); + options = options || {}; + this.options = options; + this.pattern = pattern; + this.platform = options.platform || defaultPlatform; + this.isWindows = this.platform === "win32"; + this.windowsPathsNoEscape = !!options.windowsPathsNoEscape || options.allowWindowsEscape === false; + if (this.windowsPathsNoEscape) { + this.pattern = this.pattern.replace(/\\/g, "/"); + } + this.preserveMultipleSlashes = !!options.preserveMultipleSlashes; + this.regexp = null; + this.negate = false; + this.nonegate = !!options.nonegate; + this.comment = false; + this.empty = false; + this.partial = !!options.partial; + this.nocase = !!this.options.nocase; + this.windowsNoMagicRoot = options.windowsNoMagicRoot !== void 0 ? options.windowsNoMagicRoot : !!(this.isWindows && this.nocase); + this.globSet = []; + this.globParts = []; + this.set = []; + this.make(); + } + hasMagic() { + if (this.options.magicalBraces && this.set.length > 1) { + return true; + } + for (const pattern of this.set) { + for (const part of pattern) { + if (typeof part !== "string") + return true; + } + } + return false; + } + debug(..._3) { + } + make() { + const pattern = this.pattern; + const options = this.options; + if (!options.nocomment && pattern.charAt(0) === "#") { + this.comment = true; + return; + } + if (!pattern) { + this.empty = true; + return; + } + this.parseNegate(); + this.globSet = [...new Set(this.braceExpand())]; + if (options.debug) { + this.debug = (...args) => console.error(...args); + } + this.debug(this.pattern, this.globSet); + const rawGlobParts = this.globSet.map((s4) => this.slashSplit(s4)); + this.globParts = this.preprocess(rawGlobParts); + this.debug(this.pattern, this.globParts); + let set = this.globParts.map((s4, _3, __) => { + if (this.isWindows && this.windowsNoMagicRoot) { + const isUNC = s4[0] === "" && s4[1] === "" && (s4[2] === "?" || !globMagic.test(s4[2])) && !globMagic.test(s4[3]); + const isDrive = /^[a-z]:/i.test(s4[0]); + if (isUNC) { + return [...s4.slice(0, 4), ...s4.slice(4).map((ss) => this.parse(ss))]; + } else if (isDrive) { + return [s4[0], ...s4.slice(1).map((ss) => this.parse(ss))]; + } + } + return s4.map((ss) => this.parse(ss)); + }); + this.debug(this.pattern, set); + this.set = set.filter((s4) => s4.indexOf(false) === -1); + if (this.isWindows) { + for (let i4 = 0; i4 < this.set.length; i4++) { + const p3 = this.set[i4]; + if (p3[0] === "" && p3[1] === "" && this.globParts[i4][2] === "?" && typeof p3[3] === "string" && /^[a-z]:$/i.test(p3[3])) { + p3[2] = "?"; + } + } + } + this.debug(this.pattern, this.set); + } + // various transforms to equivalent pattern sets that are + // faster to process in a filesystem walk. The goal is to + // eliminate what we can, and push all ** patterns as far + // to the right as possible, even if it increases the number + // of patterns that we have to process. + preprocess(globParts) { + if (this.options.noglobstar) { + for (let i4 = 0; i4 < globParts.length; i4++) { + for (let j3 = 0; j3 < globParts[i4].length; j3++) { + if (globParts[i4][j3] === "**") { + globParts[i4][j3] = "*"; + } + } + } + } + const { optimizationLevel = 1 } = this.options; + if (optimizationLevel >= 2) { + globParts = this.firstPhasePreProcess(globParts); + globParts = this.secondPhasePreProcess(globParts); + } else if (optimizationLevel >= 1) { + globParts = this.levelOneOptimize(globParts); + } else { + globParts = this.adjascentGlobstarOptimize(globParts); + } + return globParts; + } + // just get rid of adjascent ** portions + adjascentGlobstarOptimize(globParts) { + return globParts.map((parts) => { + let gs = -1; + while (-1 !== (gs = parts.indexOf("**", gs + 1))) { + let i4 = gs; + while (parts[i4 + 1] === "**") { + i4++; + } + if (i4 !== gs) { + parts.splice(gs, i4 - gs); + } + } + return parts; + }); + } + // get rid of adjascent ** and resolve .. portions + levelOneOptimize(globParts) { + return globParts.map((parts) => { + parts = parts.reduce((set, part) => { + const prev = set[set.length - 1]; + if (part === "**" && prev === "**") { + return set; + } + if (part === "..") { + if (prev && prev !== ".." && prev !== "." && prev !== "**") { + set.pop(); + return set; + } + } + set.push(part); + return set; + }, []); + return parts.length === 0 ? [""] : parts; + }); + } + levelTwoFileOptimize(parts) { + if (!Array.isArray(parts)) { + parts = this.slashSplit(parts); + } + let didSomething = false; + do { + didSomething = false; + if (!this.preserveMultipleSlashes) { + for (let i4 = 1; i4 < parts.length - 1; i4++) { + const p3 = parts[i4]; + if (i4 === 1 && p3 === "" && parts[0] === "") + continue; + if (p3 === "." || p3 === "") { + didSomething = true; + parts.splice(i4, 1); + i4--; + } + } + if (parts[0] === "." && parts.length === 2 && (parts[1] === "." || parts[1] === "")) { + didSomething = true; + parts.pop(); + } + } + let dd = 0; + while (-1 !== (dd = parts.indexOf("..", dd + 1))) { + const p3 = parts[dd - 1]; + if (p3 && p3 !== "." && p3 !== ".." && p3 !== "**") { + didSomething = true; + parts.splice(dd - 1, 2); + dd -= 2; + } + } + } while (didSomething); + return parts.length === 0 ? [""] : parts; + } + // First phase: single-pattern processing + //
 is 1 or more portions
+      //  is 1 or more portions
+      // 

is any portion other than ., .., '', or ** + // is . or '' + // + // **/.. is *brutal* for filesystem walking performance, because + // it effectively resets the recursive walk each time it occurs, + // and ** cannot be reduced out by a .. pattern part like a regexp + // or most strings (other than .., ., and '') can be. + // + //

/**/../

/

/ -> {

/../

/

/,

/**/

/

/} + //

// -> 
/
+      // 
/

/../ ->

/
+      // **/**/ -> **/
+      //
+      // **/*/ -> */**/ <== not valid because ** doesn't follow
+      // this WOULD be allowed if ** did follow symlinks, or * didn't
+      firstPhasePreProcess(globParts) {
+        let didSomething = false;
+        do {
+          didSomething = false;
+          for (let parts of globParts) {
+            let gs = -1;
+            while (-1 !== (gs = parts.indexOf("**", gs + 1))) {
+              let gss = gs;
+              while (parts[gss + 1] === "**") {
+                gss++;
+              }
+              if (gss > gs) {
+                parts.splice(gs + 1, gss - gs);
+              }
+              let next = parts[gs + 1];
+              const p3 = parts[gs + 2];
+              const p22 = parts[gs + 3];
+              if (next !== "..")
+                continue;
+              if (!p3 || p3 === "." || p3 === ".." || !p22 || p22 === "." || p22 === "..") {
+                continue;
+              }
+              didSomething = true;
+              parts.splice(gs, 1);
+              const other = parts.slice(0);
+              other[gs] = "**";
+              globParts.push(other);
+              gs--;
+            }
+            if (!this.preserveMultipleSlashes) {
+              for (let i4 = 1; i4 < parts.length - 1; i4++) {
+                const p3 = parts[i4];
+                if (i4 === 1 && p3 === "" && parts[0] === "")
+                  continue;
+                if (p3 === "." || p3 === "") {
+                  didSomething = true;
+                  parts.splice(i4, 1);
+                  i4--;
+                }
+              }
+              if (parts[0] === "." && parts.length === 2 && (parts[1] === "." || parts[1] === "")) {
+                didSomething = true;
+                parts.pop();
+              }
+            }
+            let dd = 0;
+            while (-1 !== (dd = parts.indexOf("..", dd + 1))) {
+              const p3 = parts[dd - 1];
+              if (p3 && p3 !== "." && p3 !== ".." && p3 !== "**") {
+                didSomething = true;
+                const needDot = dd === 1 && parts[dd + 1] === "**";
+                const splin = needDot ? ["."] : [];
+                parts.splice(dd - 1, 2, ...splin);
+                if (parts.length === 0)
+                  parts.push("");
+                dd -= 2;
+              }
+            }
+          }
+        } while (didSomething);
+        return globParts;
+      }
+      // second phase: multi-pattern dedupes
+      // {
/*/,
/

/} ->

/*/
+      // {
/,
/} -> 
/
+      // {
/**/,
/} -> 
/**/
+      //
+      // {
/**/,
/**/

/} ->

/**/
+      // ^-- not valid because ** doens't follow symlinks
+      secondPhasePreProcess(globParts) {
+        for (let i4 = 0; i4 < globParts.length - 1; i4++) {
+          for (let j3 = i4 + 1; j3 < globParts.length; j3++) {
+            const matched = this.partsMatch(globParts[i4], globParts[j3], !this.preserveMultipleSlashes);
+            if (!matched)
+              continue;
+            globParts[i4] = matched;
+            globParts[j3] = [];
+          }
+        }
+        return globParts.filter((gs) => gs.length);
+      }
+      partsMatch(a3, b3, emptyGSMatch = false) {
+        let ai = 0;
+        let bi = 0;
+        let result = [];
+        let which = "";
+        while (ai < a3.length && bi < b3.length) {
+          if (a3[ai] === b3[bi]) {
+            result.push(which === "b" ? b3[bi] : a3[ai]);
+            ai++;
+            bi++;
+          } else if (emptyGSMatch && a3[ai] === "**" && b3[bi] === a3[ai + 1]) {
+            result.push(a3[ai]);
+            ai++;
+          } else if (emptyGSMatch && b3[bi] === "**" && a3[ai] === b3[bi + 1]) {
+            result.push(b3[bi]);
+            bi++;
+          } else if (a3[ai] === "*" && b3[bi] && (this.options.dot || !b3[bi].startsWith(".")) && b3[bi] !== "**") {
+            if (which === "b")
+              return false;
+            which = "a";
+            result.push(a3[ai]);
+            ai++;
+            bi++;
+          } else if (b3[bi] === "*" && a3[ai] && (this.options.dot || !a3[ai].startsWith(".")) && a3[ai] !== "**") {
+            if (which === "a")
+              return false;
+            which = "b";
+            result.push(b3[bi]);
+            ai++;
+            bi++;
+          } else {
+            return false;
+          }
+        }
+        return a3.length === b3.length && result;
+      }
+      parseNegate() {
+        if (this.nonegate)
+          return;
+        const pattern = this.pattern;
+        let negate = false;
+        let negateOffset = 0;
+        for (let i4 = 0; i4 < pattern.length && pattern.charAt(i4) === "!"; i4++) {
+          negate = !negate;
+          negateOffset++;
+        }
+        if (negateOffset)
+          this.pattern = pattern.slice(negateOffset);
+        this.negate = negate;
+      }
+      // set partial to true to test if, for example,
+      // "/a/b" matches the start of "/*/b/*/d"
+      // Partial means, if you run out of file before you run
+      // out of pattern, then that's fine, as long as all
+      // the parts match.
+      matchOne(file, pattern, partial = false) {
+        const options = this.options;
+        if (this.isWindows) {
+          const fileUNC = file[0] === "" && file[1] === "" && file[2] === "?" && typeof file[3] === "string" && /^[a-z]:$/i.test(file[3]);
+          const patternUNC = pattern[0] === "" && pattern[1] === "" && pattern[2] === "?" && typeof pattern[3] === "string" && /^[a-z]:$/i.test(pattern[3]);
+          if (fileUNC && patternUNC) {
+            const fd = file[3];
+            const pd = pattern[3];
+            if (fd.toLowerCase() === pd.toLowerCase()) {
+              file[3] = pd;
+            }
+          } else if (patternUNC && typeof file[0] === "string") {
+            const pd = pattern[3];
+            const fd = file[0];
+            if (pd.toLowerCase() === fd.toLowerCase()) {
+              pattern[3] = fd;
+              pattern = pattern.slice(3);
+            }
+          } else if (fileUNC && typeof pattern[0] === "string") {
+            const fd = file[3];
+            if (fd.toLowerCase() === pattern[0].toLowerCase()) {
+              pattern[0] = fd;
+              file = file.slice(3);
+            }
+          }
+        }
+        const { optimizationLevel = 1 } = this.options;
+        if (optimizationLevel >= 2) {
+          file = this.levelTwoFileOptimize(file);
+        }
+        this.debug("matchOne", this, { file, pattern });
+        this.debug("matchOne", file.length, pattern.length);
+        for (var fi = 0, pi = 0, fl = file.length, pl = pattern.length; fi < fl && pi < pl; fi++, pi++) {
+          this.debug("matchOne loop");
+          var p3 = pattern[pi];
+          var f5 = file[fi];
+          this.debug(pattern, p3, f5);
+          if (p3 === false) {
+            return false;
+          }
+          if (p3 === GLOBSTAR) {
+            this.debug("GLOBSTAR", [pattern, p3, f5]);
+            var fr = fi;
+            var pr = pi + 1;
+            if (pr === pl) {
+              this.debug("** at the end");
+              for (; fi < fl; fi++) {
+                if (file[fi] === "." || file[fi] === ".." || !options.dot && file[fi].charAt(0) === ".")
+                  return false;
+              }
+              return true;
+            }
+            while (fr < fl) {
+              var swallowee = file[fr];
+              this.debug("\nglobstar while", file, fr, pattern, pr, swallowee);
+              if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) {
+                this.debug("globstar found match!", fr, fl, swallowee);
+                return true;
+              } else {
+                if (swallowee === "." || swallowee === ".." || !options.dot && swallowee.charAt(0) === ".") {
+                  this.debug("dot detected!", file, fr, pattern, pr);
+                  break;
+                }
+                this.debug("globstar swallow a segment, and continue");
+                fr++;
+              }
+            }
+            if (partial) {
+              this.debug("\n>>> no match, partial?", file, fr, pattern, pr);
+              if (fr === fl) {
+                return true;
+              }
+            }
+            return false;
+          }
+          let hit;
+          if (typeof p3 === "string") {
+            hit = f5 === p3;
+            this.debug("string match", p3, f5, hit);
+          } else {
+            hit = p3.test(f5);
+            this.debug("pattern match", p3, f5, hit);
+          }
+          if (!hit)
+            return false;
+        }
+        if (fi === fl && pi === pl) {
+          return true;
+        } else if (fi === fl) {
+          return partial;
+        } else if (pi === pl) {
+          return fi === fl - 1 && file[fi] === "";
+        } else {
+          throw new Error("wtf?");
+        }
+      }
+      braceExpand() {
+        return braceExpand(this.pattern, this.options);
+      }
+      parse(pattern) {
+        assertValidPattern(pattern);
+        const options = this.options;
+        if (pattern === "**")
+          return GLOBSTAR;
+        if (pattern === "")
+          return "";
+        let m4;
+        let fastTest = null;
+        if (m4 = pattern.match(starRE)) {
+          fastTest = options.dot ? starTestDot : starTest;
+        } else if (m4 = pattern.match(starDotExtRE)) {
+          fastTest = (options.nocase ? options.dot ? starDotExtTestNocaseDot : starDotExtTestNocase : options.dot ? starDotExtTestDot : starDotExtTest)(m4[1]);
+        } else if (m4 = pattern.match(qmarksRE)) {
+          fastTest = (options.nocase ? options.dot ? qmarksTestNocaseDot : qmarksTestNocase : options.dot ? qmarksTestDot : qmarksTest)(m4);
+        } else if (m4 = pattern.match(starDotStarRE)) {
+          fastTest = options.dot ? starDotStarTestDot : starDotStarTest;
+        } else if (m4 = pattern.match(dotStarRE)) {
+          fastTest = dotStarTest;
+        }
+        let re = "";
+        let hasMagic = false;
+        let escaping = false;
+        const patternListStack = [];
+        const negativeLists = [];
+        let stateChar = false;
+        let uflag = false;
+        let pl;
+        let dotTravAllowed = pattern.charAt(0) === ".";
+        let dotFileAllowed = options.dot || dotTravAllowed;
+        const patternStart = () => dotTravAllowed ? "" : dotFileAllowed ? "(?!(?:^|\\/)\\.{1,2}(?:$|\\/))" : "(?!\\.)";
+        const subPatternStart = (p3) => p3.charAt(0) === "." ? "" : options.dot ? "(?!(?:^|\\/)\\.{1,2}(?:$|\\/))" : "(?!\\.)";
+        const clearStateChar = () => {
+          if (stateChar) {
+            switch (stateChar) {
+              case "*":
+                re += star;
+                hasMagic = true;
+                break;
+              case "?":
+                re += qmark;
+                hasMagic = true;
+                break;
+              default:
+                re += "\\" + stateChar;
+                break;
+            }
+            this.debug("clearStateChar %j %j", stateChar, re);
+            stateChar = false;
+          }
+        };
+        for (let i4 = 0, c3; i4 < pattern.length && (c3 = pattern.charAt(i4)); i4++) {
+          this.debug("%s	%s %s %j", pattern, i4, re, c3);
+          if (escaping) {
+            if (c3 === "/") {
+              return false;
+            }
+            if (reSpecials[c3]) {
+              re += "\\";
+            }
+            re += c3;
+            escaping = false;
+            continue;
+          }
+          switch (c3) {
+            // Should already be path-split by now.
+            /* c8 ignore start */
+            case "/": {
+              return false;
+            }
+            /* c8 ignore stop */
+            case "\\":
+              clearStateChar();
+              escaping = true;
+              continue;
+            // the various stateChar values
+            // for the "extglob" stuff.
+            case "?":
+            case "*":
+            case "+":
+            case "@":
+            case "!":
+              this.debug("%s	%s %s %j <-- stateChar", pattern, i4, re, c3);
+              this.debug("call clearStateChar %j", stateChar);
+              clearStateChar();
+              stateChar = c3;
+              if (options.noext)
+                clearStateChar();
+              continue;
+            case "(": {
+              if (!stateChar) {
+                re += "\\(";
+                continue;
+              }
+              const plEntry = {
+                type: stateChar,
+                start: i4 - 1,
+                reStart: re.length,
+                open: plTypes[stateChar].open,
+                close: plTypes[stateChar].close
+              };
+              this.debug(this.pattern, "	", plEntry);
+              patternListStack.push(plEntry);
+              re += plEntry.open;
+              if (plEntry.start === 0 && plEntry.type !== "!") {
+                dotTravAllowed = true;
+                re += subPatternStart(pattern.slice(i4 + 1));
+              }
+              this.debug("plType %j %j", stateChar, re);
+              stateChar = false;
+              continue;
+            }
+            case ")": {
+              const plEntry = patternListStack[patternListStack.length - 1];
+              if (!plEntry) {
+                re += "\\)";
+                continue;
+              }
+              patternListStack.pop();
+              clearStateChar();
+              hasMagic = true;
+              pl = plEntry;
+              re += pl.close;
+              if (pl.type === "!") {
+                negativeLists.push(Object.assign(pl, { reEnd: re.length }));
+              }
+              continue;
+            }
+            case "|": {
+              const plEntry = patternListStack[patternListStack.length - 1];
+              if (!plEntry) {
+                re += "\\|";
+                continue;
+              }
+              clearStateChar();
+              re += "|";
+              if (plEntry.start === 0 && plEntry.type !== "!") {
+                dotTravAllowed = true;
+                re += subPatternStart(pattern.slice(i4 + 1));
+              }
+              continue;
+            }
+            // these are mostly the same in regexp and glob
+            case "[":
+              clearStateChar();
+              const [src, needUflag, consumed, magic] = parseClass(pattern, i4);
+              if (consumed) {
+                re += src;
+                uflag = uflag || needUflag;
+                i4 += consumed - 1;
+                hasMagic = hasMagic || magic;
+              } else {
+                re += "\\[";
+              }
+              continue;
+            case "]":
+              re += "\\" + c3;
+              continue;
+            default:
+              clearStateChar();
+              re += regExpEscape(c3);
+              break;
+          }
+        }
+        for (pl = patternListStack.pop(); pl; pl = patternListStack.pop()) {
+          let tail;
+          tail = re.slice(pl.reStart + pl.open.length);
+          this.debug(this.pattern, "setting tail", re, pl);
+          tail = tail.replace(/((?:\\{2}){0,64})(\\?)\|/g, (_3, $1, $2) => {
+            if (!$2) {
+              $2 = "\\";
+            }
+            return $1 + $1 + $2 + "|";
+          });
+          this.debug("tail=%j\n   %s", tail, tail, pl, re);
+          const t4 = pl.type === "*" ? star : pl.type === "?" ? qmark : "\\" + pl.type;
+          hasMagic = true;
+          re = re.slice(0, pl.reStart) + t4 + "\\(" + tail;
+        }
+        clearStateChar();
+        if (escaping) {
+          re += "\\\\";
+        }
+        const addPatternStart = addPatternStartSet[re.charAt(0)];
+        for (let n3 = negativeLists.length - 1; n3 > -1; n3--) {
+          const nl = negativeLists[n3];
+          const nlBefore = re.slice(0, nl.reStart);
+          const nlFirst = re.slice(nl.reStart, nl.reEnd - 8);
+          let nlAfter = re.slice(nl.reEnd);
+          const nlLast = re.slice(nl.reEnd - 8, nl.reEnd) + nlAfter;
+          const closeParensBefore = nlBefore.split(")").length;
+          const openParensBefore = nlBefore.split("(").length - closeParensBefore;
+          let cleanAfter = nlAfter;
+          for (let i4 = 0; i4 < openParensBefore; i4++) {
+            cleanAfter = cleanAfter.replace(/\)[+*?]?/, "");
+          }
+          nlAfter = cleanAfter;
+          const dollar = nlAfter === "" ? "(?:$|\\/)" : "";
+          re = nlBefore + nlFirst + nlAfter + dollar + nlLast;
+        }
+        if (re !== "" && hasMagic) {
+          re = "(?=.)" + re;
+        }
+        if (addPatternStart) {
+          re = patternStart() + re;
+        }
+        if (options.nocase && !hasMagic && !options.nocaseMagicOnly) {
+          hasMagic = pattern.toUpperCase() !== pattern.toLowerCase();
+        }
+        if (!hasMagic) {
+          return globUnescape(re);
+        }
+        const flags = (options.nocase ? "i" : "") + (uflag ? "u" : "");
+        try {
+          const ext2 = fastTest ? {
+            _glob: pattern,
+            _src: re,
+            test: fastTest
+          } : {
+            _glob: pattern,
+            _src: re
+          };
+          return Object.assign(new RegExp("^" + re + "$", flags), ext2);
+        } catch (er) {
+          this.debug("invalid regexp", er);
+          return new RegExp("$.");
+        }
+      }
+      makeRe() {
+        if (this.regexp || this.regexp === false)
+          return this.regexp;
+        const set = this.set;
+        if (!set.length) {
+          this.regexp = false;
+          return this.regexp;
+        }
+        const options = this.options;
+        const twoStar = options.noglobstar ? star : options.dot ? twoStarDot : twoStarNoDot;
+        const flags = options.nocase ? "i" : "";
+        let re = set.map((pattern) => {
+          const pp = pattern.map((p3) => typeof p3 === "string" ? regExpEscape(p3) : p3 === GLOBSTAR ? GLOBSTAR : p3._src);
+          pp.forEach((p3, i4) => {
+            const next = pp[i4 + 1];
+            const prev = pp[i4 - 1];
+            if (p3 !== GLOBSTAR || prev === GLOBSTAR) {
+              return;
+            }
+            if (prev === void 0) {
+              if (next !== void 0 && next !== GLOBSTAR) {
+                pp[i4 + 1] = "(?:\\/|" + twoStar + "\\/)?" + next;
+              } else {
+                pp[i4] = twoStar;
+              }
+            } else if (next === void 0) {
+              pp[i4 - 1] = prev + "(?:\\/|" + twoStar + ")?";
+            } else if (next !== GLOBSTAR) {
+              pp[i4 - 1] = prev + "(?:\\/|\\/" + twoStar + "\\/)" + next;
+              pp[i4 + 1] = GLOBSTAR;
+            }
+          });
+          return pp.filter((p3) => p3 !== GLOBSTAR).join("/");
+        }).join("|");
+        re = "^(?:" + re + ")$";
+        if (this.negate)
+          re = "^(?!" + re + ").*$";
+        try {
+          this.regexp = new RegExp(re, flags);
+        } catch (ex) {
+          this.regexp = false;
+        }
+        return this.regexp;
+      }
+      slashSplit(p3) {
+        if (this.preserveMultipleSlashes) {
+          return p3.split("/");
+        } else if (this.isWindows && /^\/\/[^\/]+/.test(p3)) {
+          return ["", ...p3.split(/\/+/)];
+        } else {
+          return p3.split(/\/+/);
+        }
+      }
+      match(f5, partial = this.partial) {
+        this.debug("match", f5, this.pattern);
+        if (this.comment) {
+          return false;
+        }
+        if (this.empty) {
+          return f5 === "";
+        }
+        if (f5 === "/" && partial) {
+          return true;
+        }
+        const options = this.options;
+        if (this.isWindows) {
+          f5 = f5.split("\\").join("/");
+        }
+        const ff = this.slashSplit(f5);
+        this.debug(this.pattern, "split", ff);
+        const set = this.set;
+        this.debug(this.pattern, "set", set);
+        let filename = ff[ff.length - 1];
+        if (!filename) {
+          for (let i4 = ff.length - 2; !filename && i4 >= 0; i4--) {
+            filename = ff[i4];
+          }
+        }
+        for (let i4 = 0; i4 < set.length; i4++) {
+          const pattern = set[i4];
+          let file = ff;
+          if (options.matchBase && pattern.length === 1) {
+            file = [filename];
+          }
+          const hit = this.matchOne(file, pattern, partial);
+          if (hit) {
+            if (options.flipNegate) {
+              return true;
+            }
+            return !this.negate;
+          }
+        }
+        if (options.flipNegate) {
+          return false;
+        }
+        return this.negate;
+      }
+      static defaults(def) {
+        return minimatch.defaults(def).Minimatch;
+      }
+    };
+    minimatch.Minimatch = Minimatch;
+    minimatch.escape = escape;
+    minimatch.unescape = unescape2;
+  }
+});
+
+// src/cli/commands/mysqlIntrospect.ts
+var mysqlIntrospect_exports = {};
+__export(mysqlIntrospect_exports, {
+  mysqlPushIntrospect: () => mysqlPushIntrospect
+});
+var import_hanji9, mysqlPushIntrospect;
+var init_mysqlIntrospect = __esm({
+  "src/cli/commands/mysqlIntrospect.ts"() {
+    "use strict";
+    import_hanji9 = __toESM(require_hanji());
+    init_mjs();
+    init_global();
+    init_mysqlSerializer();
+    init_views();
+    mysqlPushIntrospect = async (db, databaseName, filters) => {
+      const matchers = filters.map((it) => {
+        return new Minimatch(it);
+      });
+      const filter2 = (tableName) => {
+        if (matchers.length === 0) return true;
+        let flags = [];
+        for (let matcher of matchers) {
+          if (matcher.negate) {
+            if (!matcher.match(tableName)) {
+              flags.push(false);
+            }
+          }
+          if (matcher.match(tableName)) {
+            flags.push(true);
+          }
+        }
+        if (flags.length > 0) {
+          return flags.every(Boolean);
+        }
+        return false;
+      };
+      const progress = new ProgressView(
+        "Pulling schema from database...",
+        "Pulling schema from database..."
+      );
+      const res = await (0, import_hanji9.renderWithTask)(
+        progress,
+        fromDatabase(db, databaseName, filter2)
+      );
+      const schema6 = { id: originUUID, prevId: "", ...res };
+      const { internal, ...schemaWithoutInternals } = schema6;
+      return { schema: schemaWithoutInternals };
+    };
+  }
+});
+
+// src/cli/commands/singlestoreIntrospect.ts
+var singlestoreIntrospect_exports = {};
+__export(singlestoreIntrospect_exports, {
+  singlestorePushIntrospect: () => singlestorePushIntrospect
+});
+var import_hanji10, singlestorePushIntrospect;
+var init_singlestoreIntrospect = __esm({
+  "src/cli/commands/singlestoreIntrospect.ts"() {
+    "use strict";
+    import_hanji10 = __toESM(require_hanji());
+    init_mjs();
+    init_global();
+    init_singlestoreSerializer();
+    init_views();
+    singlestorePushIntrospect = async (db, databaseName, filters) => {
+      const matchers = filters.map((it) => {
+        return new Minimatch(it);
+      });
+      const filter2 = (tableName) => {
+        if (matchers.length === 0) return true;
+        let flags = [];
+        for (let matcher of matchers) {
+          if (matcher.negate) {
+            if (!matcher.match(tableName)) {
+              flags.push(false);
+            }
+          }
+          if (matcher.match(tableName)) {
+            flags.push(true);
+          }
+        }
+        if (flags.length > 0) {
+          return flags.every(Boolean);
+        }
+        return false;
+      };
+      const progress = new ProgressView(
+        "Pulling schema from database...",
+        "Pulling schema from database..."
+      );
+      const res = await (0, import_hanji10.renderWithTask)(
+        progress,
+        fromDatabase4(db, databaseName, filter2)
+      );
+      const schema6 = { id: originUUID, prevId: "", ...res };
+      const { internal, ...schemaWithoutInternals } = schema6;
+      return { schema: schemaWithoutInternals };
+    };
+  }
+});
+
+// src/cli/commands/pgIntrospect.ts
+var pgIntrospect_exports = {};
+__export(pgIntrospect_exports, {
+  pgPushIntrospect: () => pgPushIntrospect
+});
+var import_hanji11, pgPushIntrospect;
+var init_pgIntrospect = __esm({
+  "src/cli/commands/pgIntrospect.ts"() {
+    "use strict";
+    import_hanji11 = __toESM(require_hanji());
+    init_mjs();
+    init_global();
+    init_pgSerializer();
+    init_views();
+    pgPushIntrospect = async (db, filters, schemaFilters, entities, tsSchema) => {
+      const matchers = filters.map((it) => {
+        return new Minimatch(it);
+      });
+      const filter2 = (tableName) => {
+        if (matchers.length === 0) return true;
+        let flags = [];
+        for (let matcher of matchers) {
+          if (matcher.negate) {
+            if (!matcher.match(tableName)) {
+              flags.push(false);
+            }
+          }
+          if (matcher.match(tableName)) {
+            flags.push(true);
+          }
+        }
+        if (flags.length > 0) {
+          return flags.every(Boolean);
+        }
+        return false;
+      };
+      const progress = new ProgressView(
+        "Pulling schema from database...",
+        "Pulling schema from database..."
+      );
+      const res = await (0, import_hanji11.renderWithTask)(
+        progress,
+        fromDatabase2(db, filter2, schemaFilters, entities, void 0, tsSchema)
+      );
+      const schema6 = { id: originUUID, prevId: "", ...res };
+      const { internal, ...schemaWithoutInternals } = schema6;
+      return { schema: schemaWithoutInternals };
+    };
+  }
+});
+
+// src/introspect-sqlite.ts
+var import_casing2, sqliteImportsList, indexName4, objToStatement2, relations, escapeColumnKey, withCasing, dbColumnName, schemaToTypeScript, isCyclic, isSelf, mapColumnDefault, column6, createTableColumns, createTableIndexes, createTableUniques, createTableChecks, createTablePKs, createTableFKs;
+var init_introspect_sqlite = __esm({
+  "src/introspect-sqlite.ts"() {
+    "use strict";
+    import_casing2 = require("drizzle-orm/casing");
+    init_utils();
+    init_global();
+    sqliteImportsList = /* @__PURE__ */ new Set([
+      "sqliteTable",
+      "integer",
+      "real",
+      "text",
+      "numeric",
+      "blob"
+    ]);
+    indexName4 = (tableName, columns) => {
+      return `${tableName}_${columns.join("_")}_index`;
+    };
+    objToStatement2 = (json) => {
+      json = Object.fromEntries(Object.entries(json).filter((it) => it[1]));
+      const keys = Object.keys(json);
+      if (keys.length === 0) return;
+      let statement = "{ ";
+      statement += keys.map((it) => `${it}: "${json[it]}"`).join(", ");
+      statement += " }";
+      return statement;
+    };
+    relations = /* @__PURE__ */ new Set();
+    escapeColumnKey = (value) => {
+      if (/^(?![a-zA-Z_$][a-zA-Z0-9_$]*$).+$/.test(value)) {
+        return `"${value}"`;
+      }
+      return value;
+    };
+    withCasing = (value, casing2) => {
+      if (casing2 === "preserve") {
+        return escapeColumnKey(value);
+      }
+      if (casing2 === "camel") {
+        return escapeColumnKey(value.camelCase());
+      }
+      return value;
+    };
+    dbColumnName = ({ name, casing: casing2, withMode = false }) => {
+      if (casing2 === "preserve") {
+        return "";
+      }
+      if (casing2 === "camel") {
+        return (0, import_casing2.toCamelCase)(name) === name ? "" : withMode ? `"${name}", ` : `"${name}"`;
+      }
+      assertUnreachable(casing2);
+    };
+    schemaToTypeScript = (schema6, casing2) => {
+      Object.values(schema6.tables).forEach((table6) => {
+        Object.values(table6.foreignKeys).forEach((fk5) => {
+          const relation = `${fk5.tableFrom}-${fk5.tableTo}`;
+          relations.add(relation);
+        });
+      });
+      const imports = Object.values(schema6.tables).reduce(
+        (res, it) => {
+          const idxImports = Object.values(it.indexes).map((idx) => idx.isUnique ? "uniqueIndex" : "index");
+          const fkImpots = Object.values(it.foreignKeys).map((it2) => "foreignKey");
+          const pkImports = Object.values(it.compositePrimaryKeys).map(
+            (it2) => "primaryKey"
+          );
+          const uniqueImports = Object.values(it.uniqueConstraints).map(
+            (it2) => "unique"
+          );
+          const checkImports = Object.values(it.checkConstraints).map(
+            (it2) => "check"
+          );
+          res.sqlite.push(...idxImports);
+          res.sqlite.push(...fkImpots);
+          res.sqlite.push(...pkImports);
+          res.sqlite.push(...uniqueImports);
+          res.sqlite.push(...checkImports);
+          const columnImports = Object.values(it.columns).map((col) => {
+            return col.type;
+          }).filter((type) => {
+            return sqliteImportsList.has(type);
+          });
+          res.sqlite.push(...columnImports);
+          return res;
+        },
+        { sqlite: [] }
+      );
+      Object.values(schema6.views).forEach((it) => {
+        imports.sqlite.push("sqliteView");
+        const columnImports = Object.values(it.columns).map((col) => {
+          return col.type;
+        }).filter((type) => {
+          return sqliteImportsList.has(type);
+        });
+        imports.sqlite.push(...columnImports);
+      });
+      const tableStatements = Object.values(schema6.tables).map((table6) => {
+        const func = "sqliteTable";
+        let statement = "";
+        if (imports.sqlite.includes(withCasing(table6.name, casing2))) {
+          statement = `// Table name is in conflict with ${withCasing(
+            table6.name,
+            casing2
+          )} import.
+// Please change to any other name, that is not in imports list
+`;
+        }
+        statement += `export const ${withCasing(table6.name, casing2)} = ${func}("${table6.name}", {
+`;
+        statement += createTableColumns(
+          Object.values(table6.columns),
+          Object.values(table6.foreignKeys),
+          casing2
+        );
+        statement += "}";
+        const filteredFKs = Object.values(table6.foreignKeys).filter((it) => {
+          return it.columnsFrom.length > 1 || isSelf(it);
+        });
+        if (Object.keys(table6.indexes).length > 0 || filteredFKs.length > 0 || Object.keys(table6.compositePrimaryKeys).length > 0 || Object.keys(table6.uniqueConstraints).length > 0 || Object.keys(table6.checkConstraints).length > 0) {
+          statement += ",\n";
+          statement += "(table) => [";
+          statement += createTableIndexes(
+            table6.name,
+            Object.values(table6.indexes),
+            casing2
+          );
+          statement += createTableFKs(Object.values(filteredFKs), casing2);
+          statement += createTablePKs(
+            Object.values(table6.compositePrimaryKeys),
+            casing2
+          );
+          statement += createTableUniques(
+            Object.values(table6.uniqueConstraints),
+            casing2
+          );
+          statement += createTableChecks(
+            Object.values(table6.checkConstraints),
+            casing2
+          );
+          statement += "\n]";
+        }
+        statement += ");";
+        return statement;
+      });
+      const viewsStatements = Object.values(schema6.views).map((view5) => {
+        var _a2;
+        const func = "sqliteView";
+        let statement = "";
+        if (imports.sqlite.includes(withCasing(view5.name, casing2))) {
+          statement = `// Table name is in conflict with ${withCasing(
+            view5.name,
+            casing2
+          )} import.
+// Please change to any other name, that is not in imports list
+`;
+        }
+        statement += `export const ${withCasing(view5.name, casing2)} = ${func}("${view5.name}", {
+`;
+        statement += createTableColumns(
+          Object.values(view5.columns),
+          [],
+          casing2
+        );
+        statement += "})";
+        statement += `.as(sql\`${(_a2 = view5.definition) == null ? void 0 : _a2.replaceAll("`", "\\`")}\`);`;
+        return statement;
+      });
+      const uniqueSqliteImports = [
+        "sqliteTable",
+        "AnySQLiteColumn",
+        ...new Set(imports.sqlite)
+      ];
+      const importsTs = `import { ${uniqueSqliteImports.join(
+        ", "
+      )} } from "drizzle-orm/sqlite-core"
+  import { sql } from "drizzle-orm"
+
+`;
+      let decalrations = tableStatements.join("\n\n");
+      decalrations += "\n\n";
+      decalrations += viewsStatements.join("\n\n");
+      const file = importsTs + decalrations;
+      const schemaEntry = `
+    {
+      ${Object.values(schema6.tables).map((it) => withCasing(it.name, casing2)).join(",")}
+    }
+  `;
+      return { file, imports: importsTs, decalrations, schemaEntry };
+    };
+    isCyclic = (fk5) => {
+      const key = `${fk5.tableFrom}-${fk5.tableTo}`;
+      const reverse = `${fk5.tableTo}-${fk5.tableFrom}`;
+      return relations.has(key) && relations.has(reverse);
+    };
+    isSelf = (fk5) => {
+      return fk5.tableFrom === fk5.tableTo;
+    };
+    mapColumnDefault = (defaultValue) => {
+      if (typeof defaultValue === "string" && defaultValue.startsWith("(") && defaultValue.endsWith(")")) {
+        return `sql\`${defaultValue}\``;
+      }
+      if (defaultValue === "NULL") {
+        return `sql\`NULL\``;
+      }
+      if (typeof defaultValue === "string") {
+        return defaultValue.substring(1, defaultValue.length - 1).replaceAll('"', '\\"').replaceAll("''", "'");
+      }
+      return defaultValue;
+    };
+    column6 = (type, name, defaultValue, autoincrement, casing2) => {
+      let lowered = type;
+      casing2 = casing2;
+      if (lowered === "integer") {
+        let out = `${withCasing(name, casing2)}: integer(${dbColumnName({ name, casing: casing2 })})`;
+        out += typeof defaultValue !== "undefined" ? `.default(${mapColumnDefault(defaultValue)})` : "";
+        return out;
+      }
+      if (lowered === "real") {
+        let out = `${withCasing(name, casing2)}: real(${dbColumnName({ name, casing: casing2 })})`;
+        out += defaultValue ? `.default(${mapColumnDefault(defaultValue)})` : "";
+        return out;
+      }
+      if (lowered.startsWith("text")) {
+        const match2 = lowered.match(/\d+/);
+        let out;
+        if (match2) {
+          out = `${withCasing(name, casing2)}: text(${dbColumnName({ name, casing: casing2, withMode: true })}{ length: ${match2[0]} })`;
+        } else {
+          out = `${withCasing(name, casing2)}: text(${dbColumnName({ name, casing: casing2 })})`;
+        }
+        out += defaultValue ? `.default("${mapColumnDefault(defaultValue)}")` : "";
+        return out;
+      }
+      if (lowered === "blob") {
+        let out = `${withCasing(name, casing2)}: blob(${dbColumnName({ name, casing: casing2 })})`;
+        out += defaultValue ? `.default(${mapColumnDefault(defaultValue)})` : "";
+        return out;
+      }
+      if (lowered === "numeric") {
+        let out = `${withCasing(name, casing2)}: numeric(${dbColumnName({ name, casing: casing2 })})`;
+        out += defaultValue ? `.default(${mapColumnDefault(defaultValue)})` : "";
+        return out;
+      }
+      return `// Warning: Can't parse ${type} from database
+	// ${type}Type: ${type}("${name}")`;
+    };
+    createTableColumns = (columns, fks, casing2) => {
+      let statement = "";
+      const oneColumnsFKs = Object.values(fks).filter((it) => {
+        return !isSelf(it);
+      }).filter((it) => it.columnsFrom.length === 1);
+      const fkByColumnName = oneColumnsFKs.reduce((res, it) => {
+        const arr = res[it.columnsFrom[0]] || [];
+        arr.push(it);
+        res[it.columnsFrom[0]] = arr;
+        return res;
+      }, {});
+      columns.forEach((it) => {
+        statement += "	";
+        statement += column6(it.type, it.name, it.default, it.autoincrement, casing2);
+        statement += it.primaryKey ? `.primaryKey(${it.autoincrement ? "{ autoIncrement: true }" : ""})` : "";
+        statement += it.notNull ? ".notNull()" : "";
+        statement += it.generated ? `.generatedAlwaysAs(sql\`${it.generated.as.replace(/`/g, "\\`").slice(1, -1)}\`, { mode: "${it.generated.type}" })` : "";
+        const fks2 = fkByColumnName[it.name];
+        if (fks2) {
+          const fksStatement = fks2.map((it2) => {
+            const onDelete = it2.onDelete && it2.onDelete !== "no action" ? it2.onDelete : null;
+            const onUpdate = it2.onUpdate && it2.onUpdate !== "no action" ? it2.onUpdate : null;
+            const params = { onDelete, onUpdate };
+            const typeSuffix = isCyclic(it2) ? ": AnySQLiteColumn" : "";
+            const paramsStr = objToStatement2(params);
+            if (paramsStr) {
+              return `.references(()${typeSuffix} => ${withCasing(
+                it2.tableTo,
+                casing2
+              )}.${withCasing(it2.columnsTo[0], casing2)}, ${paramsStr} )`;
+            }
+            return `.references(()${typeSuffix} => ${withCasing(
+              it2.tableTo,
+              casing2
+            )}.${withCasing(it2.columnsTo[0], casing2)})`;
+          }).join("");
+          statement += fksStatement;
+        }
+        statement += ",\n";
+      });
+      return statement;
+    };
+    createTableIndexes = (tableName, idxs, casing2) => {
+      let statement = "";
+      idxs.forEach((it) => {
+        let idxKey = it.name.startsWith(tableName) && it.name !== tableName ? it.name.slice(tableName.length + 1) : it.name;
+        idxKey = idxKey.endsWith("_index") ? idxKey.slice(0, -"_index".length) + "_idx" : idxKey;
+        idxKey = withCasing(idxKey, casing2);
+        const indexGeneratedName = indexName4(tableName, it.columns);
+        const escapedIndexName = indexGeneratedName === it.name ? "" : `"${it.name}"`;
+        statement += `
+	`;
+        statement += it.isUnique ? "uniqueIndex(" : "index(";
+        statement += `${escapedIndexName})`;
+        statement += `.on(${it.columns.map((it2) => `table.${withCasing(it2, casing2)}`).join(", ")}),`;
+      });
+      return statement;
+    };
+    createTableUniques = (unqs, casing2) => {
+      let statement = "";
+      unqs.forEach((it) => {
+        const idxKey = withCasing(it.name, casing2);
+        statement += `
+	`;
+        statement += "unique(";
+        statement += `"${it.name}")`;
+        statement += `.on(${it.columns.map((it2) => `table.${withCasing(it2, casing2)}`).join(", ")}),`;
+      });
+      return statement;
+    };
+    createTableChecks = (checks, casing2) => {
+      let statement = "";
+      checks.forEach((it) => {
+        statement += `
+	`;
+        statement += "check(";
+        statement += `"${it.name}", `;
+        statement += `sql\`${it.value}\`)`;
+        statement += `,`;
+      });
+      return statement;
+    };
+    createTablePKs = (pks, casing2) => {
+      let statement = "";
+      pks.forEach((it, i4) => {
+        statement += `
+	`;
+        statement += "primaryKey({ columns: [";
+        statement += `${it.columns.map((c3) => {
+          return `table.${withCasing(c3, casing2)}`;
+        }).join(", ")}]${it.name ? `, name: "${it.name}"` : ""}}`;
+        statement += ")";
+      });
+      return statement;
+    };
+    createTableFKs = (fks, casing2) => {
+      let statement = "";
+      fks.forEach((it) => {
+        const isSelf5 = it.tableTo === it.tableFrom;
+        const tableTo = isSelf5 ? "table" : `${withCasing(it.tableTo, casing2)}`;
+        statement += `
+	`;
+        statement += `foreignKey(() => ({
+`;
+        statement += `			columns: [${it.columnsFrom.map((i4) => `table.${withCasing(i4, casing2)}`).join(", ")}],
+`;
+        statement += `			foreignColumns: [${it.columnsTo.map((i4) => `${tableTo}.${withCasing(i4, casing2)}`).join(", ")}],
+`;
+        statement += `			name: "${it.name}"
+`;
+        statement += `		}))`;
+        statement += it.onUpdate && it.onUpdate !== "no action" ? `.onUpdate("${it.onUpdate}")` : "";
+        statement += it.onDelete && it.onDelete !== "no action" ? `.onDelete("${it.onDelete}")` : "";
+        statement += `,`;
+      });
+      return statement;
+    };
+  }
+});
+
+// src/cli/commands/sqliteIntrospect.ts
+var sqliteIntrospect_exports = {};
+__export(sqliteIntrospect_exports, {
+  sqliteIntrospect: () => sqliteIntrospect,
+  sqlitePushIntrospect: () => sqlitePushIntrospect
+});
+var import_hanji12, sqliteIntrospect, sqlitePushIntrospect;
+var init_sqliteIntrospect = __esm({
+  "src/cli/commands/sqliteIntrospect.ts"() {
+    "use strict";
+    import_hanji12 = __toESM(require_hanji());
+    init_mjs();
+    init_global();
+    init_introspect_sqlite();
+    init_sqliteSerializer();
+    init_views();
+    sqliteIntrospect = async (credentials2, filters, casing2) => {
+      const { connectToSQLite: connectToSQLite2 } = await Promise.resolve().then(() => (init_connections(), connections_exports));
+      const db = await connectToSQLite2(credentials2);
+      const matchers = filters.map((it) => {
+        return new Minimatch(it);
+      });
+      const filter2 = (tableName) => {
+        if (matchers.length === 0) return true;
+        let flags = [];
+        for (let matcher of matchers) {
+          if (matcher.negate) {
+            if (!matcher.match(tableName)) {
+              flags.push(false);
+            }
+          }
+          if (matcher.match(tableName)) {
+            flags.push(true);
+          }
+        }
+        if (flags.length > 0) {
+          return flags.every(Boolean);
+        }
+        return false;
+      };
+      const progress = new IntrospectProgress();
+      const res = await (0, import_hanji12.renderWithTask)(
+        progress,
+        fromDatabase3(db, filter2, (stage, count, status) => {
+          progress.update(stage, count, status);
+        })
+      );
+      const schema6 = { id: originUUID, prevId: "", ...res };
+      const ts = schemaToTypeScript(schema6, casing2);
+      return { schema: schema6, ts };
+    };
+    sqlitePushIntrospect = async (db, filters) => {
+      const matchers = filters.map((it) => {
+        return new Minimatch(it);
+      });
+      const filter2 = (tableName) => {
+        if (matchers.length === 0) return true;
+        let flags = [];
+        for (let matcher of matchers) {
+          if (matcher.negate) {
+            if (!matcher.match(tableName)) {
+              flags.push(false);
+            }
+          }
+          if (matcher.match(tableName)) {
+            flags.push(true);
+          }
+        }
+        if (flags.length > 0) {
+          return flags.every(Boolean);
+        }
+        return false;
+      };
+      const progress = new ProgressView(
+        "Pulling schema from database...",
+        "Pulling schema from database..."
+      );
+      const res = await (0, import_hanji12.renderWithTask)(progress, fromDatabase3(db, filter2));
+      const schema6 = { id: originUUID, prevId: "", ...res };
+      return { schema: schema6 };
+    };
+  }
+});
+
+// src/cli/commands/push.ts
+var push_exports = {};
+__export(push_exports, {
+  libSQLPush: () => libSQLPush,
+  mysqlPush: () => mysqlPush,
+  pgPush: () => pgPush,
+  singlestorePush: () => singlestorePush,
+  sqlitePush: () => sqlitePush
+});
+var import_crypto6, import_hanji13, mysqlPush, singlestorePush, pgPush, sqlitePush, libSQLPush;
+var init_push = __esm({
+  "src/cli/commands/push.ts"() {
+    "use strict";
+    init_source();
+    import_crypto6 = require("crypto");
+    import_hanji13 = __toESM(require_hanji());
+    init_serializer();
+    init_sqlgenerator();
+    init_selector_ui();
+    init_outputs();
+    init_libSqlPushUtils();
+    init_mysqlPushUtils();
+    init_pgPushUtils();
+    init_singlestorePushUtils();
+    init_sqlitePushUtils();
+    mysqlPush = async (schemaPath, credentials2, tablesFilter, strict, verbose, force, casing2) => {
+      const { connectToMySQL: connectToMySQL2 } = await Promise.resolve().then(() => (init_connections(), connections_exports));
+      const { mysqlPushIntrospect: mysqlPushIntrospect2 } = await Promise.resolve().then(() => (init_mysqlIntrospect(), mysqlIntrospect_exports));
+      const { db, database } = await connectToMySQL2(credentials2);
+      const { schema: schema6 } = await mysqlPushIntrospect2(db, database, tablesFilter);
+      const { prepareMySQLPush: prepareMySQLPush2 } = await Promise.resolve().then(() => (init_migrate(), migrate_exports));
+      const statements = await prepareMySQLPush2(schemaPath, schema6, casing2);
+      const filteredStatements = filterStatements(
+        statements.statements ?? [],
+        statements.validatedCur,
+        statements.validatedPrev
+      );
+      try {
+        if (filteredStatements.length === 0) {
+          (0, import_hanji13.render)(`[${source_default.blue("i")}] No changes detected`);
+        } else {
+          const {
+            shouldAskForApprove,
+            statementsToExecute,
+            columnsToRemove,
+            tablesToRemove,
+            tablesToTruncate,
+            infoToPrint
+          } = await logSuggestionsAndReturn2(
+            db,
+            filteredStatements,
+            statements.validatedCur
+          );
+          const filteredSqlStatements = fromJson(filteredStatements, "mysql");
+          const uniqueSqlStatementsToExecute = [];
+          statementsToExecute.forEach((ss) => {
+            if (!uniqueSqlStatementsToExecute.includes(ss)) {
+              uniqueSqlStatementsToExecute.push(ss);
+            }
+          });
+          const uniqueFilteredSqlStatements = [];
+          filteredSqlStatements.forEach((ss) => {
+            if (!uniqueFilteredSqlStatements.includes(ss)) {
+              uniqueFilteredSqlStatements.push(ss);
+            }
+          });
+          if (verbose) {
+            console.log();
+            console.log(
+              withStyle.warning("You are about to execute current statements:")
+            );
+            console.log();
+            console.log(
+              [...uniqueSqlStatementsToExecute, ...uniqueFilteredSqlStatements].map((s4) => source_default.blue(s4)).join("\n")
+            );
+            console.log();
+          }
+          if (!force && strict) {
+            if (!shouldAskForApprove) {
+              const { status, data } = await (0, import_hanji13.render)(
+                new Select(["No, abort", `Yes, I want to execute all statements`])
+              );
+              if ((data == null ? void 0 : data.index) === 0) {
+                (0, import_hanji13.render)(`[${source_default.red("x")}] All changes were aborted`);
+                process.exit(0);
+              }
+            }
+          }
+          if (!force && shouldAskForApprove) {
+            console.log(withStyle.warning("Found data-loss statements:"));
+            console.log(infoToPrint.join("\n"));
+            console.log();
+            console.log(
+              source_default.red.bold(
+                "THIS ACTION WILL CAUSE DATA LOSS AND CANNOT BE REVERTED\n"
+              )
+            );
+            console.log(source_default.white("Do you still want to push changes?"));
+            const { status, data } = await (0, import_hanji13.render)(
+              new Select([
+                "No, abort",
+                `Yes, I want to${tablesToRemove.length > 0 ? ` remove ${tablesToRemove.length} ${tablesToRemove.length > 1 ? "tables" : "table"},` : " "}${columnsToRemove.length > 0 ? ` remove ${columnsToRemove.length} ${columnsToRemove.length > 1 ? "columns" : "column"},` : " "}${tablesToTruncate.length > 0 ? ` truncate ${tablesToTruncate.length} ${tablesToTruncate.length > 1 ? "tables" : "table"}` : ""}`.replace(/(^,)|(,$)/g, "").replace(/ +(?= )/g, "")
+              ])
+            );
+            if ((data == null ? void 0 : data.index) === 0) {
+              (0, import_hanji13.render)(`[${source_default.red("x")}] All changes were aborted`);
+              process.exit(0);
+            }
+          }
+          for (const dStmnt of uniqueSqlStatementsToExecute) {
+            await db.query(dStmnt);
+          }
+          for (const statement of uniqueFilteredSqlStatements) {
+            await db.query(statement);
+          }
+          if (filteredStatements.length > 0) {
+            (0, import_hanji13.render)(`[${source_default.green("\u2713")}] Changes applied`);
+          } else {
+            (0, import_hanji13.render)(`[${source_default.blue("i")}] No changes detected`);
+          }
+        }
+      } catch (e4) {
+        console.log(e4);
+      }
+    };
+    singlestorePush = async (schemaPath, credentials2, tablesFilter, strict, verbose, force, casing2) => {
+      const { connectToSingleStore: connectToSingleStore2 } = await Promise.resolve().then(() => (init_connections(), connections_exports));
+      const { singlestorePushIntrospect: singlestorePushIntrospect2 } = await Promise.resolve().then(() => (init_singlestoreIntrospect(), singlestoreIntrospect_exports));
+      const { db, database } = await connectToSingleStore2(credentials2);
+      const { schema: schema6 } = await singlestorePushIntrospect2(
+        db,
+        database,
+        tablesFilter
+      );
+      const { prepareSingleStorePush: prepareSingleStorePush2 } = await Promise.resolve().then(() => (init_migrate(), migrate_exports));
+      const statements = await prepareSingleStorePush2(schemaPath, schema6, casing2);
+      const filteredStatements = filterStatements2(
+        statements.statements ?? [],
+        statements.validatedCur,
+        statements.validatedPrev
+      );
+      try {
+        if (filteredStatements.length === 0) {
+          (0, import_hanji13.render)(`[${source_default.blue("i")}] No changes detected`);
+        } else {
+          const {
+            shouldAskForApprove,
+            statementsToExecute,
+            columnsToRemove,
+            tablesToRemove,
+            tablesToTruncate,
+            infoToPrint,
+            schemasToRemove
+          } = await logSuggestionsAndReturn3(
+            db,
+            filteredStatements,
+            statements.validatedCur,
+            statements.validatedPrev
+          );
+          if (verbose) {
+            console.log();
+            console.log(
+              withStyle.warning("You are about to execute current statements:")
+            );
+            console.log();
+            console.log(statementsToExecute.map((s4) => source_default.blue(s4)).join("\n"));
+            console.log();
+          }
+          if (!force && strict) {
+            if (!shouldAskForApprove) {
+              const { status, data } = await (0, import_hanji13.render)(
+                new Select(["No, abort", `Yes, I want to execute all statements`])
+              );
+              if ((data == null ? void 0 : data.index) === 0) {
+                (0, import_hanji13.render)(`[${source_default.red("x")}] All changes were aborted`);
+                process.exit(0);
+              }
+            }
+          }
+          if (!force && shouldAskForApprove) {
+            console.log(withStyle.warning("Found data-loss statements:"));
+            console.log(infoToPrint.join("\n"));
+            console.log();
+            console.log(
+              source_default.red.bold(
+                "THIS ACTION WILL CAUSE DATA LOSS AND CANNOT BE REVERTED\n"
+              )
+            );
+            console.log(source_default.white("Do you still want to push changes?"));
+            const { status, data } = await (0, import_hanji13.render)(
+              new Select([
+                "No, abort",
+                `Yes, I want to${tablesToRemove.length > 0 ? ` remove ${tablesToRemove.length} ${tablesToRemove.length > 1 ? "tables" : "table"},` : " "}${columnsToRemove.length > 0 ? ` remove ${columnsToRemove.length} ${columnsToRemove.length > 1 ? "columns" : "column"},` : " "}${tablesToTruncate.length > 0 ? ` truncate ${tablesToTruncate.length} ${tablesToTruncate.length > 1 ? "tables" : "table"}` : ""}`.replace(/(^,)|(,$)/g, "").replace(/ +(?= )/g, "")
+              ])
+            );
+            if ((data == null ? void 0 : data.index) === 0) {
+              (0, import_hanji13.render)(`[${source_default.red("x")}] All changes were aborted`);
+              process.exit(0);
+            }
+          }
+          for (const dStmnt of statementsToExecute) {
+            await db.query(dStmnt);
+          }
+          if (filteredStatements.length > 0) {
+            (0, import_hanji13.render)(`[${source_default.green("\u2713")}] Changes applied`);
+          } else {
+            (0, import_hanji13.render)(`[${source_default.blue("i")}] No changes detected`);
+          }
+        }
+      } catch (e4) {
+        console.log(e4);
+      }
+    };
+    pgPush = async (schemaPath, verbose, strict, credentials2, tablesFilter, schemasFilter, entities, force, casing2) => {
+      const { preparePostgresDB: preparePostgresDB2 } = await Promise.resolve().then(() => (init_connections(), connections_exports));
+      const { pgPushIntrospect: pgPushIntrospect2 } = await Promise.resolve().then(() => (init_pgIntrospect(), pgIntrospect_exports));
+      const db = await preparePostgresDB2(credentials2);
+      const serialized = await serializePg(schemaPath, casing2, schemasFilter);
+      const { schema: schema6 } = await pgPushIntrospect2(db, tablesFilter, schemasFilter, entities, serialized);
+      const { preparePgPush: preparePgPush2 } = await Promise.resolve().then(() => (init_migrate(), migrate_exports));
+      const statements = await preparePgPush2(
+        { id: (0, import_crypto6.randomUUID)(), prevId: schema6.id, ...serialized },
+        schema6
+      );
+      try {
+        if (statements.sqlStatements.length === 0) {
+          (0, import_hanji13.render)(`[${source_default.blue("i")}] No changes detected`);
+        } else {
+          const {
+            shouldAskForApprove,
+            statementsToExecute,
+            columnsToRemove,
+            tablesToRemove,
+            matViewsToRemove,
+            tablesToTruncate,
+            infoToPrint,
+            schemasToRemove
+          } = await pgSuggestions(db, statements.statements);
+          if (verbose) {
+            console.log();
+            console.log(
+              withStyle.warning("You are about to execute current statements:")
+            );
+            console.log();
+            console.log(statementsToExecute.map((s4) => source_default.blue(s4)).join("\n"));
+            console.log();
+          }
+          if (!force && strict) {
+            if (!shouldAskForApprove) {
+              const { status, data } = await (0, import_hanji13.render)(
+                new Select(["No, abort", `Yes, I want to execute all statements`])
+              );
+              if ((data == null ? void 0 : data.index) === 0) {
+                (0, import_hanji13.render)(`[${source_default.red("x")}] All changes were aborted`);
+                process.exit(0);
+              }
+            }
+          }
+          if (!force && shouldAskForApprove) {
+            console.log(withStyle.warning("Found data-loss statements:"));
+            console.log(infoToPrint.join("\n"));
+            console.log();
+            console.log(
+              source_default.red.bold(
+                "THIS ACTION WILL CAUSE DATA LOSS AND CANNOT BE REVERTED\n"
+              )
+            );
+            console.log(source_default.white("Do you still want to push changes?"));
+            const { status, data } = await (0, import_hanji13.render)(
+              new Select([
+                "No, abort",
+                `Yes, I want to${tablesToRemove.length > 0 ? ` remove ${tablesToRemove.length} ${tablesToRemove.length > 1 ? "tables" : "table"},` : " "}${columnsToRemove.length > 0 ? ` remove ${columnsToRemove.length} ${columnsToRemove.length > 1 ? "columns" : "column"},` : " "}${tablesToTruncate.length > 0 ? ` truncate ${tablesToTruncate.length} ${tablesToTruncate.length > 1 ? "tables" : "table"}` : ""}${matViewsToRemove.length > 0 ? ` remove ${matViewsToRemove.length} ${matViewsToRemove.length > 1 ? "materialized views" : "materialize view"},` : " "}`.replace(/(^,)|(,$)/g, "").replace(/ +(?= )/g, "")
+              ])
+            );
+            if ((data == null ? void 0 : data.index) === 0) {
+              (0, import_hanji13.render)(`[${source_default.red("x")}] All changes were aborted`);
+              process.exit(0);
+            }
+          }
+          for (const dStmnt of statementsToExecute) {
+            await db.query(dStmnt);
+          }
+          if (statements.statements.length > 0) {
+            (0, import_hanji13.render)(`[${source_default.green("\u2713")}] Changes applied`);
+          } else {
+            (0, import_hanji13.render)(`[${source_default.blue("i")}] No changes detected`);
+          }
+        }
+      } catch (e4) {
+        console.error(e4);
+      }
+    };
+    sqlitePush = async (schemaPath, verbose, strict, credentials2, tablesFilter, force, casing2) => {
+      const { connectToSQLite: connectToSQLite2 } = await Promise.resolve().then(() => (init_connections(), connections_exports));
+      const { sqlitePushIntrospect: sqlitePushIntrospect2 } = await Promise.resolve().then(() => (init_sqliteIntrospect(), sqliteIntrospect_exports));
+      const db = await connectToSQLite2(credentials2);
+      const { schema: schema6 } = await sqlitePushIntrospect2(db, tablesFilter);
+      const { prepareSQLitePush: prepareSQLitePush2 } = await Promise.resolve().then(() => (init_migrate(), migrate_exports));
+      const statements = await prepareSQLitePush2(schemaPath, schema6, casing2);
+      if (statements.sqlStatements.length === 0) {
+        (0, import_hanji13.render)(`
+[${source_default.blue("i")}] No changes detected`);
+      } else {
+        const {
+          shouldAskForApprove,
+          statementsToExecute,
+          columnsToRemove,
+          tablesToRemove,
+          tablesToTruncate,
+          infoToPrint,
+          schemasToRemove
+        } = await logSuggestionsAndReturn(
+          db,
+          statements.statements,
+          statements.squashedPrev,
+          statements.squashedCur,
+          statements.meta
+        );
+        if (verbose && statementsToExecute.length > 0) {
+          console.log();
+          console.log(
+            withStyle.warning("You are about to execute current statements:")
+          );
+          console.log();
+          console.log(statementsToExecute.map((s4) => source_default.blue(s4)).join("\n"));
+          console.log();
+        }
+        if (!force && strict) {
+          if (!shouldAskForApprove) {
+            const { status, data } = await (0, import_hanji13.render)(
+              new Select(["No, abort", `Yes, I want to execute all statements`])
+            );
+            if ((data == null ? void 0 : data.index) === 0) {
+              (0, import_hanji13.render)(`[${source_default.red("x")}] All changes were aborted`);
+              process.exit(0);
+            }
+          }
+        }
+        if (!force && shouldAskForApprove) {
+          console.log(withStyle.warning("Found data-loss statements:"));
+          console.log(infoToPrint.join("\n"));
+          console.log();
+          console.log(
+            source_default.red.bold(
+              "THIS ACTION WILL CAUSE DATA LOSS AND CANNOT BE REVERTED\n"
+            )
+          );
+          console.log(source_default.white("Do you still want to push changes?"));
+          const { status, data } = await (0, import_hanji13.render)(
+            new Select([
+              "No, abort",
+              `Yes, I want to${tablesToRemove.length > 0 ? ` remove ${tablesToRemove.length} ${tablesToRemove.length > 1 ? "tables" : "table"},` : " "}${columnsToRemove.length > 0 ? ` remove ${columnsToRemove.length} ${columnsToRemove.length > 1 ? "columns" : "column"},` : " "}${tablesToTruncate.length > 0 ? ` truncate ${tablesToTruncate.length} ${tablesToTruncate.length > 1 ? "tables" : "table"}` : ""}`.trimEnd().replace(/(^,)|(,$)/g, "").replace(/ +(?= )/g, "")
+            ])
+          );
+          if ((data == null ? void 0 : data.index) === 0) {
+            (0, import_hanji13.render)(`[${source_default.red("x")}] All changes were aborted`);
+            process.exit(0);
+          }
+        }
+        if (statementsToExecute.length === 0) {
+          (0, import_hanji13.render)(`
+[${source_default.blue("i")}] No changes detected`);
+        } else {
+          const isNotD1 = !("driver" in credentials2 && credentials2.driver === "d1-http");
+          isNotD1 ?? await db.run("begin");
+          try {
+            for (const dStmnt of statementsToExecute) {
+              await db.run(dStmnt);
+            }
+            isNotD1 ?? await db.run("commit");
+          } catch (e4) {
+            console.error(e4);
+            isNotD1 ?? await db.run("rollback");
+            process.exit(1);
+          }
+          (0, import_hanji13.render)(`[${source_default.green("\u2713")}] Changes applied`);
+        }
+      }
+    };
+    libSQLPush = async (schemaPath, verbose, strict, credentials2, tablesFilter, force, casing2) => {
+      const { connectToLibSQL: connectToLibSQL2 } = await Promise.resolve().then(() => (init_connections(), connections_exports));
+      const { sqlitePushIntrospect: sqlitePushIntrospect2 } = await Promise.resolve().then(() => (init_sqliteIntrospect(), sqliteIntrospect_exports));
+      const db = await connectToLibSQL2(credentials2);
+      const { schema: schema6 } = await sqlitePushIntrospect2(db, tablesFilter);
+      const { prepareLibSQLPush: prepareLibSQLPush2 } = await Promise.resolve().then(() => (init_migrate(), migrate_exports));
+      const statements = await prepareLibSQLPush2(schemaPath, schema6, casing2);
+      if (statements.sqlStatements.length === 0) {
+        (0, import_hanji13.render)(`
+[${source_default.blue("i")}] No changes detected`);
+      } else {
+        const {
+          shouldAskForApprove,
+          statementsToExecute,
+          columnsToRemove,
+          tablesToRemove,
+          tablesToTruncate,
+          infoToPrint
+        } = await libSqlLogSuggestionsAndReturn(
+          db,
+          statements.statements,
+          statements.squashedPrev,
+          statements.squashedCur,
+          statements.meta
+        );
+        if (verbose && statementsToExecute.length > 0) {
+          console.log();
+          console.log(
+            withStyle.warning("You are about to execute current statements:")
+          );
+          console.log();
+          console.log(statementsToExecute.map((s4) => source_default.blue(s4)).join("\n"));
+          console.log();
+        }
+        if (!force && strict) {
+          if (!shouldAskForApprove) {
+            const { status, data } = await (0, import_hanji13.render)(
+              new Select(["No, abort", `Yes, I want to execute all statements`])
+            );
+            if ((data == null ? void 0 : data.index) === 0) {
+              (0, import_hanji13.render)(`[${source_default.red("x")}] All changes were aborted`);
+              process.exit(0);
+            }
+          }
+        }
+        if (!force && shouldAskForApprove) {
+          console.log(withStyle.warning("Found data-loss statements:"));
+          console.log(infoToPrint.join("\n"));
+          console.log();
+          console.log(
+            source_default.red.bold(
+              "THIS ACTION WILL CAUSE DATA LOSS AND CANNOT BE REVERTED\n"
+            )
+          );
+          console.log(source_default.white("Do you still want to push changes?"));
+          const { status, data } = await (0, import_hanji13.render)(
+            new Select([
+              "No, abort",
+              `Yes, I want to${tablesToRemove.length > 0 ? ` remove ${tablesToRemove.length} ${tablesToRemove.length > 1 ? "tables" : "table"},` : " "}${columnsToRemove.length > 0 ? ` remove ${columnsToRemove.length} ${columnsToRemove.length > 1 ? "columns" : "column"},` : " "}${tablesToTruncate.length > 0 ? ` truncate ${tablesToTruncate.length} ${tablesToTruncate.length > 1 ? "tables" : "table"}` : ""}`.trimEnd().replace(/(^,)|(,$)/g, "").replace(/ +(?= )/g, "")
+            ])
+          );
+          if ((data == null ? void 0 : data.index) === 0) {
+            (0, import_hanji13.render)(`[${source_default.red("x")}] All changes were aborted`);
+            process.exit(0);
+          }
+        }
+        if (statementsToExecute.length === 0) {
+          (0, import_hanji13.render)(`
+[${source_default.blue("i")}] No changes detected`);
+        } else {
+          await db.batchWithPragma(statementsToExecute);
+          (0, import_hanji13.render)(`[${source_default.green("\u2713")}] Changes applied`);
+        }
+      }
+    };
+  }
+});
+
+// ../node_modules/.pnpm/pluralize@8.0.0/node_modules/pluralize/pluralize.js
+var require_pluralize = __commonJS({
+  "../node_modules/.pnpm/pluralize@8.0.0/node_modules/pluralize/pluralize.js"(exports2, module2) {
+    (function(root, pluralize) {
+      if (typeof require === "function" && typeof exports2 === "object" && typeof module2 === "object") {
+        module2.exports = pluralize();
+      } else if (typeof define === "function" && define.amd) {
+        define(function() {
+          return pluralize();
+        });
+      } else {
+        root.pluralize = pluralize();
+      }
+    })(exports2, function() {
+      var pluralRules = [];
+      var singularRules = [];
+      var uncountables = {};
+      var irregularPlurals = {};
+      var irregularSingles = {};
+      function sanitizeRule(rule) {
+        if (typeof rule === "string") {
+          return new RegExp("^" + rule + "$", "i");
+        }
+        return rule;
+      }
+      function restoreCase(word, token) {
+        if (word === token) return token;
+        if (word === word.toLowerCase()) return token.toLowerCase();
+        if (word === word.toUpperCase()) return token.toUpperCase();
+        if (word[0] === word[0].toUpperCase()) {
+          return token.charAt(0).toUpperCase() + token.substr(1).toLowerCase();
+        }
+        return token.toLowerCase();
+      }
+      function interpolate(str, args) {
+        return str.replace(/\$(\d{1,2})/g, function(match2, index6) {
+          return args[index6] || "";
+        });
+      }
+      function replace(word, rule) {
+        return word.replace(rule[0], function(match2, index6) {
+          var result = interpolate(rule[1], arguments);
+          if (match2 === "") {
+            return restoreCase(word[index6 - 1], result);
+          }
+          return restoreCase(match2, result);
+        });
+      }
+      function sanitizeWord(token, word, rules) {
+        if (!token.length || uncountables.hasOwnProperty(token)) {
+          return word;
+        }
+        var len = rules.length;
+        while (len--) {
+          var rule = rules[len];
+          if (rule[0].test(word)) return replace(word, rule);
+        }
+        return word;
+      }
+      function replaceWord(replaceMap, keepMap, rules) {
+        return function(word) {
+          var token = word.toLowerCase();
+          if (keepMap.hasOwnProperty(token)) {
+            return restoreCase(word, token);
+          }
+          if (replaceMap.hasOwnProperty(token)) {
+            return restoreCase(word, replaceMap[token]);
+          }
+          return sanitizeWord(token, word, rules);
+        };
+      }
+      function checkWord(replaceMap, keepMap, rules, bool) {
+        return function(word) {
+          var token = word.toLowerCase();
+          if (keepMap.hasOwnProperty(token)) return true;
+          if (replaceMap.hasOwnProperty(token)) return false;
+          return sanitizeWord(token, token, rules) === token;
+        };
+      }
+      function pluralize(word, count, inclusive) {
+        var pluralized = count === 1 ? pluralize.singular(word) : pluralize.plural(word);
+        return (inclusive ? count + " " : "") + pluralized;
+      }
+      pluralize.plural = replaceWord(
+        irregularSingles,
+        irregularPlurals,
+        pluralRules
+      );
+      pluralize.isPlural = checkWord(
+        irregularSingles,
+        irregularPlurals,
+        pluralRules
+      );
+      pluralize.singular = replaceWord(
+        irregularPlurals,
+        irregularSingles,
+        singularRules
+      );
+      pluralize.isSingular = checkWord(
+        irregularPlurals,
+        irregularSingles,
+        singularRules
+      );
+      pluralize.addPluralRule = function(rule, replacement) {
+        pluralRules.push([sanitizeRule(rule), replacement]);
+      };
+      pluralize.addSingularRule = function(rule, replacement) {
+        singularRules.push([sanitizeRule(rule), replacement]);
+      };
+      pluralize.addUncountableRule = function(word) {
+        if (typeof word === "string") {
+          uncountables[word.toLowerCase()] = true;
+          return;
+        }
+        pluralize.addPluralRule(word, "$0");
+        pluralize.addSingularRule(word, "$0");
+      };
+      pluralize.addIrregularRule = function(single, plural2) {
+        plural2 = plural2.toLowerCase();
+        single = single.toLowerCase();
+        irregularSingles[single] = plural2;
+        irregularPlurals[plural2] = single;
+      };
+      [
+        // Pronouns.
+        ["I", "we"],
+        ["me", "us"],
+        ["he", "they"],
+        ["she", "they"],
+        ["them", "them"],
+        ["myself", "ourselves"],
+        ["yourself", "yourselves"],
+        ["itself", "themselves"],
+        ["herself", "themselves"],
+        ["himself", "themselves"],
+        ["themself", "themselves"],
+        ["is", "are"],
+        ["was", "were"],
+        ["has", "have"],
+        ["this", "these"],
+        ["that", "those"],
+        // Words ending in with a consonant and `o`.
+        ["echo", "echoes"],
+        ["dingo", "dingoes"],
+        ["volcano", "volcanoes"],
+        ["tornado", "tornadoes"],
+        ["torpedo", "torpedoes"],
+        // Ends with `us`.
+        ["genus", "genera"],
+        ["viscus", "viscera"],
+        // Ends with `ma`.
+        ["stigma", "stigmata"],
+        ["stoma", "stomata"],
+        ["dogma", "dogmata"],
+        ["lemma", "lemmata"],
+        ["schema", "schemata"],
+        ["anathema", "anathemata"],
+        // Other irregular rules.
+        ["ox", "oxen"],
+        ["axe", "axes"],
+        ["die", "dice"],
+        ["yes", "yeses"],
+        ["foot", "feet"],
+        ["eave", "eaves"],
+        ["goose", "geese"],
+        ["tooth", "teeth"],
+        ["quiz", "quizzes"],
+        ["human", "humans"],
+        ["proof", "proofs"],
+        ["carve", "carves"],
+        ["valve", "valves"],
+        ["looey", "looies"],
+        ["thief", "thieves"],
+        ["groove", "grooves"],
+        ["pickaxe", "pickaxes"],
+        ["passerby", "passersby"]
+      ].forEach(function(rule) {
+        return pluralize.addIrregularRule(rule[0], rule[1]);
+      });
+      [
+        [/s?$/i, "s"],
+        [/[^\u0000-\u007F]$/i, "$0"],
+        [/([^aeiou]ese)$/i, "$1"],
+        [/(ax|test)is$/i, "$1es"],
+        [/(alias|[^aou]us|t[lm]as|gas|ris)$/i, "$1es"],
+        [/(e[mn]u)s?$/i, "$1s"],
+        [/([^l]ias|[aeiou]las|[ejzr]as|[iu]am)$/i, "$1"],
+        [/(alumn|syllab|vir|radi|nucle|fung|cact|stimul|termin|bacill|foc|uter|loc|strat)(?:us|i)$/i, "$1i"],
+        [/(alumn|alg|vertebr)(?:a|ae)$/i, "$1ae"],
+        [/(seraph|cherub)(?:im)?$/i, "$1im"],
+        [/(her|at|gr)o$/i, "$1oes"],
+        [/(agend|addend|millenni|dat|extrem|bacteri|desiderat|strat|candelabr|errat|ov|symposi|curricul|automat|quor)(?:a|um)$/i, "$1a"],
+        [/(apheli|hyperbat|periheli|asyndet|noumen|phenomen|criteri|organ|prolegomen|hedr|automat)(?:a|on)$/i, "$1a"],
+        [/sis$/i, "ses"],
+        [/(?:(kni|wi|li)fe|(ar|l|ea|eo|oa|hoo)f)$/i, "$1$2ves"],
+        [/([^aeiouy]|qu)y$/i, "$1ies"],
+        [/([^ch][ieo][ln])ey$/i, "$1ies"],
+        [/(x|ch|ss|sh|zz)$/i, "$1es"],
+        [/(matr|cod|mur|sil|vert|ind|append)(?:ix|ex)$/i, "$1ices"],
+        [/\b((?:tit)?m|l)(?:ice|ouse)$/i, "$1ice"],
+        [/(pe)(?:rson|ople)$/i, "$1ople"],
+        [/(child)(?:ren)?$/i, "$1ren"],
+        [/eaux$/i, "$0"],
+        [/m[ae]n$/i, "men"],
+        ["thou", "you"]
+      ].forEach(function(rule) {
+        return pluralize.addPluralRule(rule[0], rule[1]);
+      });
+      [
+        [/s$/i, ""],
+        [/(ss)$/i, "$1"],
+        [/(wi|kni|(?:after|half|high|low|mid|non|night|[^\w]|^)li)ves$/i, "$1fe"],
+        [/(ar|(?:wo|[ae])l|[eo][ao])ves$/i, "$1f"],
+        [/ies$/i, "y"],
+        [/\b([pl]|zomb|(?:neck|cross)?t|coll|faer|food|gen|goon|group|lass|talk|goal|cut)ies$/i, "$1ie"],
+        [/\b(mon|smil)ies$/i, "$1ey"],
+        [/\b((?:tit)?m|l)ice$/i, "$1ouse"],
+        [/(seraph|cherub)im$/i, "$1"],
+        [/(x|ch|ss|sh|zz|tto|go|cho|alias|[^aou]us|t[lm]as|gas|(?:her|at|gr)o|[aeiou]ris)(?:es)?$/i, "$1"],
+        [/(analy|diagno|parenthe|progno|synop|the|empha|cri|ne)(?:sis|ses)$/i, "$1sis"],
+        [/(movie|twelve|abuse|e[mn]u)s$/i, "$1"],
+        [/(test)(?:is|es)$/i, "$1is"],
+        [/(alumn|syllab|vir|radi|nucle|fung|cact|stimul|termin|bacill|foc|uter|loc|strat)(?:us|i)$/i, "$1us"],
+        [/(agend|addend|millenni|dat|extrem|bacteri|desiderat|strat|candelabr|errat|ov|symposi|curricul|quor)a$/i, "$1um"],
+        [/(apheli|hyperbat|periheli|asyndet|noumen|phenomen|criteri|organ|prolegomen|hedr|automat)a$/i, "$1on"],
+        [/(alumn|alg|vertebr)ae$/i, "$1a"],
+        [/(cod|mur|sil|vert|ind)ices$/i, "$1ex"],
+        [/(matr|append)ices$/i, "$1ix"],
+        [/(pe)(rson|ople)$/i, "$1rson"],
+        [/(child)ren$/i, "$1"],
+        [/(eau)x?$/i, "$1"],
+        [/men$/i, "man"]
+      ].forEach(function(rule) {
+        return pluralize.addSingularRule(rule[0], rule[1]);
+      });
+      [
+        // Singular words with no plurals.
+        "adulthood",
+        "advice",
+        "agenda",
+        "aid",
+        "aircraft",
+        "alcohol",
+        "ammo",
+        "analytics",
+        "anime",
+        "athletics",
+        "audio",
+        "bison",
+        "blood",
+        "bream",
+        "buffalo",
+        "butter",
+        "carp",
+        "cash",
+        "chassis",
+        "chess",
+        "clothing",
+        "cod",
+        "commerce",
+        "cooperation",
+        "corps",
+        "debris",
+        "diabetes",
+        "digestion",
+        "elk",
+        "energy",
+        "equipment",
+        "excretion",
+        "expertise",
+        "firmware",
+        "flounder",
+        "fun",
+        "gallows",
+        "garbage",
+        "graffiti",
+        "hardware",
+        "headquarters",
+        "health",
+        "herpes",
+        "highjinks",
+        "homework",
+        "housework",
+        "information",
+        "jeans",
+        "justice",
+        "kudos",
+        "labour",
+        "literature",
+        "machinery",
+        "mackerel",
+        "mail",
+        "media",
+        "mews",
+        "moose",
+        "music",
+        "mud",
+        "manga",
+        "news",
+        "only",
+        "personnel",
+        "pike",
+        "plankton",
+        "pliers",
+        "police",
+        "pollution",
+        "premises",
+        "rain",
+        "research",
+        "rice",
+        "salmon",
+        "scissors",
+        "series",
+        "sewage",
+        "shambles",
+        "shrimp",
+        "software",
+        "species",
+        "staff",
+        "swine",
+        "tennis",
+        "traffic",
+        "transportation",
+        "trout",
+        "tuna",
+        "wealth",
+        "welfare",
+        "whiting",
+        "wildebeest",
+        "wildlife",
+        "you",
+        /pok[eé]mon$/i,
+        // Regexes.
+        /[^aeiou]ese$/i,
+        // "chinese", "japanese"
+        /deer$/i,
+        // "deer", "reindeer"
+        /fish$/i,
+        // "fish", "blowfish", "angelfish"
+        /measles$/i,
+        /o[iu]s$/i,
+        // "carnivorous"
+        /pox$/i,
+        // "chickpox", "smallpox"
+        /sheep$/i
+      ].forEach(pluralize.addUncountableRule);
+      return pluralize;
+    });
+  }
+});
+
+// src/serializer/gelSerializer.ts
+function stringFromDatabaseIdentityProperty2(field) {
+  return typeof field === "string" ? field : typeof field === "undefined" ? void 0 : typeof field === "bigint" ? field.toString() : String(field);
+}
+var import_drizzle_orm9, import_gel_core, indexName5, trimChar2, fromDatabase5, defaultForColumn2, getColumnsInfoQuery2;
+var init_gelSerializer = __esm({
+  "src/serializer/gelSerializer.ts"() {
+    "use strict";
+    import_drizzle_orm9 = require("drizzle-orm");
+    import_gel_core = require("drizzle-orm/gel-core");
+    init_vector();
+    init_outputs();
+    init_utils2();
+    init_utils4();
+    indexName5 = (tableName, columns) => {
+      return `${tableName}_${columns.join("_")}_index`;
+    };
+    trimChar2 = (str, char) => {
+      let start = 0;
+      let end = str.length;
+      while (start < end && str[start] === char) ++start;
+      while (end > start && str[end - 1] === char) --end;
+      return start > 0 || end < str.length ? str.substring(start, end) : str.toString();
+    };
+    fromDatabase5 = async (db, tablesFilter = () => true, schemaFilters, entities, progressCallback, tsSchema) => {
+      const result = {};
+      const policies = {};
+      const internals = { tables: {} };
+      const where = schemaFilters.map((t4) => `n.nspname = '${t4}'`).join(" or ");
+      const allTables = await db.query(
+        `SELECT 
+    n.nspname::text AS table_schema, 
+    c.relname::text AS table_name, 
+    CASE 
+        WHEN c.relkind = 'r' THEN 'table'
+        WHEN c.relkind = 'v' THEN 'view'
+        WHEN c.relkind = 'm' THEN 'materialized_view'
+    END AS type,
+	c.relrowsecurity AS rls_enabled
+FROM 
+    pg_catalog.pg_class c
+JOIN 
+    pg_catalog.pg_namespace n ON n.oid::text = c.relnamespace::text
+WHERE 
+	c.relkind IN ('r', 'v', 'm') 
+    ${where === "" ? "" : ` AND ${where}`};`
+      );
+      const schemas = new Set(allTables.map((it) => it.table_schema));
+      const allSchemas = await db.query(`select s.nspname::text as table_schema
+  from pg_catalog.pg_namespace s
+  join pg_catalog.pg_user u on u.usesysid::text = s.nspowner::text
+  where nspname not in ('information_schema', 'pg_catalog', 'public')
+        and nspname::text not like 'pg_toast%'
+        and nspname::text not like 'pg_temp_%'
+  order by 1;`);
+      allSchemas.forEach((item) => {
+        if (schemaFilters.includes(item.table_schema)) {
+          schemas.add(item.table_schema);
+        }
+      });
+      let columnsCount = 0;
+      let indexesCount = 0;
+      let foreignKeysCount = 0;
+      let tableCount = 0;
+      const sequencesToReturn = {};
+      const all = allTables.filter((it) => it.type === "table").map((row) => {
+        return new Promise(async (res, rej) => {
+          var _a2, _b, _c, _d, _e, _f;
+          const tableName = row.table_name;
+          if (!tablesFilter(tableName)) return res("");
+          tableCount += 1;
+          const tableSchema = row.table_schema;
+          try {
+            const columnToReturn = {};
+            const indexToReturn = {};
+            const foreignKeysToReturn = {};
+            const primaryKeys = {};
+            const tableResponse = await getColumnsInfoQuery2({ schema: tableSchema, table: tableName, db });
+            columnsCount += tableResponse.length;
+            if (progressCallback) {
+              progressCallback("columns", columnsCount, "fetching");
+            }
+            const tableForeignKeys = await db.query(
+              `SELECT
+					    con.contype::text AS constraint_type,
+					    nsp.nspname::text AS constraint_schema,
+					    con.conname::text AS constraint_name,
+					    rel.relname::text AS table_name,
+					    att.attname::text AS column_name,
+					    fnsp.nspname::text AS foreign_table_schema,
+					    frel.relname::text AS foreign_table_name,
+					    fatt.attname::text AS foreign_column_name,
+					    CASE con.confupdtype
+					      WHEN 'a' THEN 'NO ACTION'
+					      WHEN 'r' THEN 'RESTRICT'
+					      WHEN 'n' THEN 'SET NULL'
+					      WHEN 'c' THEN 'CASCADE'
+					      WHEN 'd' THEN 'SET DEFAULT'
+					    END AS update_rule,
+					    CASE con.confdeltype
+					      WHEN 'a' THEN 'NO ACTION'
+					      WHEN 'r' THEN 'RESTRICT'
+					      WHEN 'n' THEN 'SET NULL'
+					      WHEN 'c' THEN 'CASCADE'
+					      WHEN 'd' THEN 'SET DEFAULT'
+					    END AS delete_rule
+					  FROM
+					    pg_catalog.pg_constraint con
+					    JOIN pg_catalog.pg_class rel ON rel.oid = con.conrelid
+					    JOIN pg_catalog.pg_namespace nsp ON nsp.oid = con.connamespace
+					    LEFT JOIN pg_catalog.pg_attribute att ON att.attnum = ANY (con.conkey)
+					      AND att.attrelid = con.conrelid
+					    LEFT JOIN pg_catalog.pg_class frel ON frel.oid = con.confrelid
+					    LEFT JOIN pg_catalog.pg_namespace fnsp ON fnsp.oid = frel.relnamespace
+					    LEFT JOIN pg_catalog.pg_attribute fatt ON fatt.attnum = ANY (con.confkey)
+					      AND fatt.attrelid = con.confrelid
+					  WHERE
+					    nsp.nspname = '${tableSchema}'
+					    AND rel.relname = '${tableName}'
+					    AND con.contype IN ('f');`
+            );
+            foreignKeysCount += tableForeignKeys.length;
+            if (progressCallback) {
+              progressCallback("fks", foreignKeysCount, "fetching");
+            }
+            for (const fk5 of tableForeignKeys) {
+              const columnFrom = fk5.column_name;
+              const tableTo = fk5.foreign_table_name;
+              const columnTo = fk5.foreign_column_name;
+              const schemaTo = fk5.foreign_table_schema;
+              const foreignKeyName = fk5.constraint_name;
+              const onUpdate = (_a2 = fk5.update_rule) == null ? void 0 : _a2.toLowerCase();
+              const onDelete = (_b = fk5.delete_rule) == null ? void 0 : _b.toLowerCase();
+              if (typeof foreignKeysToReturn[foreignKeyName] !== "undefined") {
+                foreignKeysToReturn[foreignKeyName].columnsFrom.push(columnFrom);
+                foreignKeysToReturn[foreignKeyName].columnsTo.push(columnTo);
+              } else {
+                foreignKeysToReturn[foreignKeyName] = {
+                  name: foreignKeyName,
+                  tableFrom: tableName,
+                  tableTo,
+                  schemaTo,
+                  columnsFrom: [columnFrom],
+                  columnsTo: [columnTo],
+                  onDelete,
+                  onUpdate
+                };
+              }
+              foreignKeysToReturn[foreignKeyName].columnsFrom = [
+                ...new Set(foreignKeysToReturn[foreignKeyName].columnsFrom)
+              ];
+              foreignKeysToReturn[foreignKeyName].columnsTo = [...new Set(foreignKeysToReturn[foreignKeyName].columnsTo)];
+            }
+            for (const columnResponse of tableResponse) {
+              const columnName = columnResponse.column_name;
+              if (columnName === "__type__") continue;
+              const columnAdditionalDT = columnResponse.additional_dt;
+              const columnDimensions = columnResponse.array_dimensions;
+              const enumType2 = columnResponse.enum_name;
+              let columnType = columnResponse.data_type;
+              const defaultValueRes = columnResponse.column_default;
+              const isGenerated = columnResponse.is_generated === "ALWAYS";
+              const generationExpression = columnResponse.generation_expression;
+              const isIdentity = columnResponse.is_identity === "YES";
+              const identityGeneration = columnResponse.identity_generation === "ALWAYS" ? "always" : "byDefault";
+              const identityStart = columnResponse.identity_start;
+              const identityIncrement = columnResponse.identity_increment;
+              const identityMaximum = columnResponse.identity_maximum;
+              const identityMinimum = columnResponse.identity_minimum;
+              const identityCycle = columnResponse.identity_cycle === "YES";
+              const identityName = columnResponse.seq_name;
+              let columnTypeMapped = columnType;
+              if (columnAdditionalDT === "ARRAY") {
+                if (typeof internals.tables[tableName] === "undefined") {
+                  internals.tables[tableName] = {
+                    columns: {
+                      [columnName]: {
+                        isArray: true,
+                        dimensions: columnDimensions,
+                        rawType: columnTypeMapped.substring(0, columnTypeMapped.length - 2)
+                      }
+                    }
+                  };
+                } else {
+                  if (typeof internals.tables[tableName].columns[columnName] === "undefined") {
+                    internals.tables[tableName].columns[columnName] = {
+                      isArray: true,
+                      dimensions: columnDimensions,
+                      rawType: columnTypeMapped.substring(0, columnTypeMapped.length - 2)
+                    };
+                  }
+                }
+              }
+              const defaultValue = defaultForColumn2(columnResponse, internals, tableName);
+              if (defaultValue === "NULL" || defaultValueRes && defaultValueRes.startsWith("(") && defaultValueRes.endsWith(")")) {
+                if (typeof internals.tables[tableName] === "undefined") {
+                  internals.tables[tableName] = {
+                    columns: {
+                      [columnName]: {
+                        isDefaultAnExpression: true
+                      }
+                    }
+                  };
+                } else {
+                  if (typeof internals.tables[tableName].columns[columnName] === "undefined") {
+                    internals.tables[tableName].columns[columnName] = {
+                      isDefaultAnExpression: true
+                    };
+                  } else {
+                    internals.tables[tableName].columns[columnName].isDefaultAnExpression = true;
+                  }
+                }
+              }
+              if (columnTypeMapped.startsWith("numeric(")) {
+                columnTypeMapped = columnTypeMapped.replace(",", ", ");
+              }
+              if (columnAdditionalDT === "ARRAY") {
+                for (let i4 = 1; i4 < Number(columnDimensions); i4++) {
+                  columnTypeMapped += "[]";
+                }
+              }
+              if (columnTypeMapped.includes("tuple<") || columnTypeMapped.includes("range")) continue;
+              columnTypeMapped = trimChar2(columnTypeMapped, '"');
+              columnTypeMapped = columnTypeMapped.replace("pg_catalog.", "");
+              columnTypeMapped = columnTypeMapped.replace("float4[]", "real[]").replace("float8[]", "double precision[]").replace('"numeric"[]', "numeric[]").replace('"time"[]', "time without time zone[]").replace(
+                "int2[]",
+                "smallint[]"
+              ).replace(
+                "int4[]",
+                "integer[]"
+              ).replace(
+                "int8[]",
+                "bigint[]"
+              ).replace(
+                "bool[]",
+                "boolean[]"
+              );
+              columnToReturn[columnName] = {
+                name: columnName,
+                type: (
+                  // filter vectors, but in future we should filter any extension that was installed by user
+                  columnAdditionalDT === "USER-DEFINED" && !["vector", "geometry"].includes(enumType2) ? enumType2 : columnTypeMapped
+                ),
+                typeSchema: void 0,
+                // typeSchema: enumsToReturn[`${typeSchema}.${enumType}`] !== undefined
+                // 	? enumsToReturn[`${typeSchema}.${enumType}`].schema
+                // 	: undefined,
+                primaryKey: columnName === "id",
+                default: defaultValue,
+                notNull: columnResponse.is_nullable === "NO",
+                generated: isGenerated ? { as: generationExpression, type: "stored" } : void 0,
+                identity: isIdentity ? {
+                  type: identityGeneration,
+                  name: identityName,
+                  increment: stringFromDatabaseIdentityProperty2(identityIncrement),
+                  minValue: stringFromDatabaseIdentityProperty2(identityMinimum),
+                  maxValue: stringFromDatabaseIdentityProperty2(identityMaximum),
+                  startWith: stringFromDatabaseIdentityProperty2(identityStart),
+                  cache: ((_c = sequencesToReturn[identityName]) == null ? void 0 : _c.cache) ? (_d = sequencesToReturn[identityName]) == null ? void 0 : _d.cache : ((_e = sequencesToReturn[`${tableSchema}.${identityName}`]) == null ? void 0 : _e.cache) ? (_f = sequencesToReturn[`${tableSchema}.${identityName}`]) == null ? void 0 : _f.cache : void 0,
+                  cycle: identityCycle,
+                  schema: tableSchema
+                } : void 0
+              };
+              if (identityName && typeof identityName === "string") {
+                delete sequencesToReturn[`${tableSchema}.${identityName.startsWith('"') && identityName.endsWith('"') ? identityName.slice(1, -1) : identityName}`];
+                delete sequencesToReturn[identityName];
+              }
+            }
+            const dbIndexes = await db.query(
+              `SELECT  DISTINCT ON (t.relname, ic.relname, k.i) t.relname::text as table_name, ic.relname::text AS indexname,
+        k.i AS index_order,
+        i.indisunique as is_unique,
+        am.amname::text as method,
+        ic.reloptions as with,
+        coalesce(a.attname,
+                  (('{' || pg_get_expr(
+                              i.indexprs,
+                              i.indrelid
+                          )
+                        || '}')::text[]
+                  )[k.i]
+                )::text AS column_name,
+          CASE
+        WHEN pg_get_expr(i.indexprs, i.indrelid) IS NOT NULL THEN 1
+        ELSE 0
+    END AS is_expression,
+        i.indoption[k.i-1] & 1 = 1 AS descending,
+        i.indoption[k.i-1] & 2 = 2 AS nulls_first,
+        pg_get_expr(
+                              i.indpred,
+                              i.indrelid
+                          ) as where,
+         opc.opcname::text
+      FROM pg_class t
+          LEFT JOIN pg_index i ON t.oid = i.indrelid
+          LEFT JOIN pg_class ic ON ic.oid = i.indexrelid
+		  CROSS JOIN LATERAL (SELECT unnest(i.indkey), generate_subscripts(i.indkey, 1) + 1) AS k(attnum, i)
+          LEFT JOIN pg_attribute AS a
+            ON i.indrelid = a.attrelid AND k.attnum = a.attnum
+          JOIN pg_namespace c on c.oid = t.relnamespace
+        LEFT JOIN pg_am AS am ON ic.relam = am.oid
+        JOIN pg_opclass opc ON opc.oid = ANY(i.indclass)
+      WHERE
+      c.nspname = '${tableSchema}' AND
+      t.relname = '${tableName}';`
+            );
+            const dbIndexFromConstraint = await db.query(
+              `SELECT
+          idx.indexrelname::text AS index_name,
+          idx.relname::text AS table_name,
+          schemaname::text,
+          CASE WHEN con.conname IS NOT NULL THEN 1 ELSE 0 END AS generated_by_constraint
+        FROM
+          pg_stat_user_indexes idx
+        LEFT JOIN
+          pg_constraint con ON con.conindid = idx.indexrelid
+        WHERE idx.relname = '${tableName}' and schemaname = '${tableSchema}'
+        group by index_name, table_name,schemaname, generated_by_constraint;`
+            );
+            const idxsInConsteraint = dbIndexFromConstraint.filter((it) => it.generated_by_constraint === 1).map(
+              (it) => it.index_name
+            );
+            for (const dbIndex of dbIndexes) {
+              const indexName6 = dbIndex.indexname;
+              const indexColumnName = dbIndex.column_name;
+              const indexIsUnique = dbIndex.is_unique;
+              const indexMethod = dbIndex.method;
+              const indexWith = dbIndex.with;
+              const indexWhere = dbIndex.where;
+              const opclass = dbIndex.opcname;
+              const isExpression = dbIndex.is_expression === 1;
+              const desc = dbIndex.descending;
+              const nullsFirst = dbIndex.nulls_first;
+              const mappedWith = {};
+              if (indexWith !== null) {
+                indexWith.forEach((it) => {
+                  const splitted = it.split("=");
+                  mappedWith[splitted[0]] = splitted[1];
+                });
+              }
+              if (idxsInConsteraint.includes(indexName6)) continue;
+              if (typeof indexToReturn[indexName6] !== "undefined") {
+                indexToReturn[indexName6].columns.push({
+                  expression: indexColumnName,
+                  asc: !desc,
+                  nulls: nullsFirst ? "first" : "last",
+                  opclass,
+                  isExpression
+                });
+              } else {
+                indexToReturn[indexName6] = {
+                  name: indexName6,
+                  columns: [
+                    {
+                      expression: indexColumnName,
+                      asc: !desc,
+                      nulls: nullsFirst ? "first" : "last",
+                      opclass,
+                      isExpression
+                    }
+                  ],
+                  isUnique: indexIsUnique,
+                  // should not be a part of diff detects
+                  concurrently: false,
+                  method: indexMethod,
+                  where: indexWhere === null ? void 0 : indexWhere,
+                  with: mappedWith
+                };
+              }
+            }
+            indexesCount += Object.keys(indexToReturn).length;
+            if (progressCallback) {
+              progressCallback("indexes", indexesCount, "fetching");
+            }
+            result[`${tableSchema}.${tableName}`] = {
+              name: tableName,
+              schema: tableSchema !== "public" ? tableSchema : "",
+              columns: columnToReturn,
+              indexes: indexToReturn,
+              foreignKeys: foreignKeysToReturn,
+              compositePrimaryKeys: primaryKeys,
+              uniqueConstraints: {},
+              // uniqueConstrains,
+              checkConstraints: {},
+              // checkConstraints,
+              policies: {},
+              // policiesByTable[`${tableSchema}.${tableName}`] ?? {},
+              isRLSEnabled: row.rls_enabled
+            };
+          } catch (e4) {
+            rej(e4);
+            return;
+          }
+          res("");
+        });
+      });
+      if (progressCallback) {
+        progressCallback("tables", tableCount, "done");
+      }
+      for await (const _3 of all) {
+      }
+      if (progressCallback) {
+        progressCallback("columns", columnsCount, "done");
+        progressCallback("indexes", indexesCount, "done");
+        progressCallback("fks", foreignKeysCount, "done");
+      }
+      const schemasObject = Object.fromEntries([...schemas].map((it) => [it, it]));
+      return {
+        version: "1",
+        dialect: "gel",
+        tables: result,
+        enums: {},
+        schemas: schemasObject,
+        sequences: sequencesToReturn,
+        roles: {},
+        // rolesToReturn,
+        policies,
+        views: {},
+        // views,
+        _meta: {
+          schemas: {},
+          tables: {},
+          columns: {}
+        },
+        internal: internals
+      };
+    };
+    defaultForColumn2 = (column11, internals, tableName) => {
+      var _a2, _b;
+      const columnName = column11.column_name;
+      const isArray = ((_b = (_a2 = internals == null ? void 0 : internals.tables[tableName]) == null ? void 0 : _a2.columns[columnName]) == null ? void 0 : _b.isArray) ?? false;
+      if (column11.column_default === null || column11.column_default === void 0) return void 0;
+      if (column11.column_default.endsWith("[]")) {
+        column11.column_default = column11.column_default.slice(0, -2);
+      }
+      column11.column_default = column11.column_default.replace(/::(.*?)(? {
+      return db.query(
+        `SELECT 
+    a.attrelid::regclass::text AS table_name,  -- Table, view, or materialized view name
+    a.attname::text AS column_name,   -- Column name
+    CASE 
+        WHEN NOT a.attisdropped THEN 
+            CASE 
+                WHEN a.attnotnull THEN 'NO'
+                ELSE 'YES'
+            END 
+        ELSE NULL 
+    END AS is_nullable,  -- NULL or NOT NULL constraint
+    a.attndims AS array_dimensions,  -- Array dimensions
+    CASE 
+        WHEN a.atttypid = ANY ('{int,int8,int2}'::regtype[]) 
+        AND EXISTS (
+            SELECT FROM pg_attrdef ad
+            WHERE ad.adrelid = a.attrelid 
+            AND ad.adnum = a.attnum 
+            AND pg_get_expr(ad.adbin, ad.adrelid) = 'nextval(''' 
+                || pg_get_serial_sequence(a.attrelid::regclass::text, a.attname)::regclass || '''::regclass)'
+        )
+        THEN CASE a.atttypid
+            WHEN 'int'::regtype THEN 'serial'
+            WHEN 'int8'::regtype THEN 'bigserial'
+            WHEN 'int2'::regtype THEN 'smallserial'
+        END
+        ELSE format_type(a.atttypid, a.atttypmod)
+    END AS data_type,  -- Column data type
+--    ns.nspname AS type_schema,  -- Schema name
+    c.column_default::text,  -- Column default value
+    c.data_type::text AS additional_dt,  -- Data type from information_schema
+    c.udt_name::text AS enum_name,  -- Enum type (if applicable)
+    c.is_generated::text,  -- Is it a generated column?
+    c.generation_expression::text,  -- Generation expression (if generated)
+    c.is_identity::text,  -- Is it an identity column?
+    c.identity_generation::text,  -- Identity generation strategy (ALWAYS or BY DEFAULT)
+    c.identity_start::text,  -- Start value of identity column
+    c.identity_increment::text,  -- Increment for identity column
+    c.identity_maximum::text,  -- Maximum value for identity column
+    c.identity_minimum::text,  -- Minimum value for identity column
+    c.identity_cycle::text,  -- Does the identity column cycle?
+    ns.nspname::text AS type_schema  -- Schema of the enum type
+FROM 
+    pg_attribute a
+JOIN 
+    pg_class cls ON cls.oid = a.attrelid  -- Join pg_class to get table/view/materialized view info
+JOIN 
+    pg_namespace ns ON ns.oid = cls.relnamespace  -- Join namespace to get schema info
+LEFT JOIN 
+    information_schema.columns c ON c.column_name = a.attname 
+        AND c.table_schema = ns.nspname 
+        AND c.table_name = cls.relname  -- Match schema and table/view name
+LEFT JOIN 
+    pg_type enum_t ON enum_t.oid = a.atttypid  -- Join to get the type info
+LEFT JOIN 
+    pg_namespace enum_ns ON enum_ns.oid = enum_t.typnamespace  -- Join to get the enum schema
+WHERE 
+    a.attnum > 0  -- Valid column numbers only
+    AND NOT a.attisdropped  -- Skip dropped columns
+    AND cls.relkind IN ('r', 'v', 'm')  -- Include regular tables ('r'), views ('v'), and materialized views ('m')
+    AND ns.nspname::text = '${schema6}'  -- Filter by schema
+    AND cls.relname::text = '${table6}'  -- Filter by table name
+ORDER BY 
+    a.attnum;  -- Order by column number`
+      );
+    };
+  }
+});
+
+// src/introspect-gel.ts
+function generateIdentityParams(identity) {
+  let paramsObj = `{ name: "${identity.name}"`;
+  if (identity == null ? void 0 : identity.startWith) {
+    paramsObj += `, startWith: ${identity.startWith}`;
+  }
+  if (identity == null ? void 0 : identity.increment) {
+    paramsObj += `, increment: ${identity.increment}`;
+  }
+  if (identity == null ? void 0 : identity.minValue) {
+    paramsObj += `, minValue: ${identity.minValue}`;
+  }
+  if (identity == null ? void 0 : identity.maxValue) {
+    paramsObj += `, maxValue: ${identity.maxValue}`;
+  }
+  if (identity == null ? void 0 : identity.cache) {
+    paramsObj += `, cache: ${identity.cache}`;
+  }
+  if (identity == null ? void 0 : identity.cycle) {
+    paramsObj += `, cycle: true`;
+  }
+  paramsObj += " }";
+  if ((identity == null ? void 0 : identity.type) === "always") {
+    return `.generatedAlwaysAsIdentity(${paramsObj})`;
+  }
+  return `.generatedByDefaultAsIdentity(${paramsObj})`;
+}
+var import_casing3, gelImportsList, mapColumnDefault2, relations2, escapeColumnKey2, withCasing2, dbColumnName2, paramNameFor, schemaToTypeScript2, isCyclic2, isSelf2, buildArrayDefault, mapDefault, column7, dimensionsInArray, createTableColumns2, createTableIndexes2, createTablePKs2, createTablePolicies, createTableUniques2, createTableChecks2, createTableFKs2;
+var init_introspect_gel = __esm({
+  "src/introspect-gel.ts"() {
+    "use strict";
+    init_utils();
+    import_casing3 = require("drizzle-orm/casing");
+    init_global();
+    init_gelSerializer();
+    init_utils2();
+    gelImportsList = /* @__PURE__ */ new Set([
+      "gelTable",
+      "smallint",
+      "integer",
+      "bigint",
+      "bigintT",
+      "boolean",
+      "bytes",
+      "dateDuration",
+      "decimal",
+      "doublePrecision",
+      "duration",
+      "json",
+      "localDate",
+      "localTime",
+      "real",
+      "relDuration",
+      "text",
+      "timestamp",
+      "timestamptz",
+      "uuid",
+      "time"
+    ]);
+    mapColumnDefault2 = (defaultValue, isExpression) => {
+      if (isExpression) {
+        return `sql\`${defaultValue}\``;
+      }
+      return defaultValue;
+    };
+    relations2 = /* @__PURE__ */ new Set();
+    escapeColumnKey2 = (value) => {
+      if (/^(?![a-zA-Z_$][a-zA-Z0-9_$]*$).+$/.test(value)) {
+        return `"${value}"`;
+      }
+      return value;
+    };
+    withCasing2 = (value, casing2) => {
+      if (casing2 === "preserve") {
+        return escapeColumnKey2(value);
+      }
+      if (casing2 === "camel") {
+        return escapeColumnKey2(value.camelCase());
+      }
+      assertUnreachable(casing2);
+    };
+    dbColumnName2 = ({ name, casing: casing2, withMode = false }) => {
+      if (casing2 === "preserve") {
+        return "";
+      }
+      if (casing2 === "camel") {
+        return (0, import_casing3.toCamelCase)(name) === name ? "" : withMode ? `"${name}", ` : `"${name}"`;
+      }
+      assertUnreachable(casing2);
+    };
+    paramNameFor = (name, schema6) => {
+      const schemaSuffix = schema6 && schema6 !== "public" ? `In${schema6.capitalise()}` : "";
+      return `${name}${schemaSuffix}`;
+    };
+    schemaToTypeScript2 = (schema6, casing2) => {
+      Object.values(schema6.tables).forEach((table6) => {
+        Object.values(table6.foreignKeys).forEach((fk5) => {
+          const relation = `${fk5.tableFrom}-${fk5.tableTo}`;
+          relations2.add(relation);
+        });
+      });
+      const schemas = Object.fromEntries(
+        Object.entries(schema6.schemas).map((it) => {
+          return [it[0], withCasing2(it[1].replace("::", ""), casing2)];
+        })
+      );
+      const imports = Object.values(schema6.tables).reduce(
+        (res, it) => {
+          const idxImports = Object.values(it.indexes).map((idx) => idx.isUnique ? "uniqueIndex" : "index");
+          const fkImpots = Object.values(it.foreignKeys).map((it2) => "foreignKey");
+          if (Object.values(it.foreignKeys).some((it2) => isCyclic2(it2) && !isSelf2(it2))) {
+            res.gel.push("type AnyGelColumn");
+          }
+          const pkImports = Object.values(it.compositePrimaryKeys).map((it2) => "primaryKey");
+          const uniqueImports = Object.values(it.uniqueConstraints).map((it2) => "unique");
+          const checkImports = Object.values(it.checkConstraints).map(
+            (it2) => "check"
+          );
+          const policiesImports = Object.values(it.policies).map(
+            (it2) => "gelPolicy"
+          );
+          if (it.schema && it.schema !== "public" && it.schema !== "") {
+            res.gel.push("gelSchema");
+          }
+          res.gel.push(...idxImports);
+          res.gel.push(...fkImpots);
+          res.gel.push(...pkImports);
+          res.gel.push(...uniqueImports);
+          res.gel.push(...policiesImports);
+          res.gel.push(...checkImports);
+          const columnImports = Object.values(it.columns).map((col) => {
+            var _a2;
+            let patched = ((_a2 = col.type) == null ? void 0 : _a2.replace("[]", "")) ?? "";
+            patched = patched.startsWith("time without time zone") ? "localTime" : patched;
+            patched = patched === "double precision" ? "doublePrecision" : patched;
+            patched = patched.startsWith("edgedbt.bigint_t") ? "bigintT" : patched;
+            patched = patched.startsWith("jsonb") ? "json" : patched;
+            patched = patched.startsWith("edgedbt.timestamptz_t") ? "timestamptz" : patched;
+            patched = patched.startsWith("edgedbt.timestamp_t") ? "timestamp" : patched;
+            patched = patched.startsWith("edgedbt.relative_duration_t") ? "relDuration" : patched;
+            patched = patched.startsWith("bytea") ? "bytes" : patched;
+            patched = patched.startsWith("numeric") ? "decimal" : patched;
+            patched = patched.startsWith("edgedbt.duration_t") ? "duration" : patched;
+            patched = patched.startsWith("edgedbt.date_t") ? "localDate" : patched;
+            patched = patched.startsWith("edgedbt.date_duration_t") ? "dateDuration" : patched;
+            return patched;
+          }).filter((type) => {
+            return gelImportsList.has(type);
+          });
+          res.gel.push(...columnImports);
+          return res;
+        },
+        { gel: [] }
+      );
+      if (Object.keys(schema6.roles).length > 0) {
+        imports.gel.push("gelRole");
+      }
+      const schemaStatements = Object.entries(schemas).filter((it) => it[0] !== "public").map((it) => {
+        return `export const ${it[1].replace("::", "").camelCase()} = gelSchema("${it[0]}");
+`;
+      }).join("");
+      const rolesNameToTsKey = {};
+      const rolesStatements = Object.entries(schema6.roles).map((it) => {
+        const fields = it[1];
+        rolesNameToTsKey[fields.name] = it[0];
+        return `export const ${withCasing2(it[0], casing2)} = gelRole("${fields.name}", ${!fields.createDb && !fields.createRole && fields.inherit ? "" : `${`, { ${fields.createDb ? `createDb: true,` : ""}${fields.createRole ? ` createRole: true,` : ""}${!fields.inherit ? ` inherit: false ` : ""}`.trimChar(",")}}`} );
+`;
+      }).join("");
+      const tableStatements = Object.values(schema6.tables).map((table6) => {
+        const tableSchema = schemas[table6.schema];
+        const paramName = paramNameFor(table6.name, tableSchema);
+        const func = tableSchema ? `${tableSchema}.table` : "gelTable";
+        let statement = `export const ${withCasing2(paramName, casing2)} = ${func}("${table6.name}", {
+`;
+        statement += createTableColumns2(
+          table6.name,
+          Object.values(table6.columns),
+          Object.values(table6.foreignKeys),
+          // enumTypes,
+          /* @__PURE__ */ new Set(),
+          schemas,
+          casing2,
+          schema6.internal
+        );
+        statement += "}";
+        if (Object.keys(table6.indexes).length > 0 || Object.values(table6.foreignKeys).length > 0 || Object.values(table6.policies).length > 0 || Object.keys(table6.compositePrimaryKeys).length > 0 || Object.keys(table6.uniqueConstraints).length > 0 || Object.keys(table6.checkConstraints).length > 0) {
+          statement += ", ";
+          statement += "(table) => [";
+          statement += createTableIndexes2(table6.name, Object.values(table6.indexes), casing2);
+          statement += createTableFKs2(Object.values(table6.foreignKeys), schemas, casing2);
+          statement += createTablePKs2(
+            Object.values(table6.compositePrimaryKeys),
+            casing2
+          );
+          statement += createTableUniques2(
+            Object.values(table6.uniqueConstraints),
+            casing2
+          );
+          statement += createTablePolicies(
+            Object.values(table6.policies),
+            casing2,
+            rolesNameToTsKey
+          );
+          statement += createTableChecks2(
+            Object.values(table6.checkConstraints),
+            casing2
+          );
+          statement += "\n]";
+        }
+        statement += ");";
+        return statement;
+      });
+      const uniqueGelImports = ["gelTable", ...new Set(imports.gel)];
+      const importsTs = `import { ${uniqueGelImports.join(
+        ", "
+      )} } from "drizzle-orm/gel-core"
+import { sql } from "drizzle-orm"
+
+`;
+      let decalrations = schemaStatements;
+      decalrations += rolesStatements;
+      decalrations += "\n";
+      decalrations += tableStatements.join("\n\n");
+      decalrations += "\n";
+      const file = importsTs + decalrations;
+      const schemaEntry = `
+    {
+      ${Object.values(schema6.tables).map((it) => withCasing2(it.name, casing2)).join(",\n")}
+    }
+  `;
+      return { file, imports: importsTs, decalrations, schemaEntry };
+    };
+    isCyclic2 = (fk5) => {
+      const key = `${fk5.tableFrom}-${fk5.tableTo}`;
+      const reverse = `${fk5.tableTo}-${fk5.tableFrom}`;
+      return relations2.has(key) && relations2.has(reverse);
+    };
+    isSelf2 = (fk5) => {
+      return fk5.tableFrom === fk5.tableTo;
+    };
+    buildArrayDefault = (defaultValue, typeName) => {
+      if (typeof defaultValue === "string" && !(defaultValue.startsWith("_nullif_array_nulls(ARRAY[") || defaultValue.startsWith("ARRAY["))) {
+        return `sql\`${defaultValue}\``;
+      }
+      const regex = /ARRAY\[(.*)\]/;
+      const match2 = defaultValue.match(regex);
+      if (!match2) {
+        return `sql\`${defaultValue}\``;
+      }
+      defaultValue = match2[1];
+      return `sql\`[${defaultValue}]\``;
+    };
+    mapDefault = (tableName, type, name, enumTypes, typeSchema, defaultValue, internals) => {
+      var _a2, _b, _c, _d;
+      const isExpression = ((_b = (_a2 = internals == null ? void 0 : internals.tables[tableName]) == null ? void 0 : _a2.columns[name]) == null ? void 0 : _b.isDefaultAnExpression) ?? false;
+      const isArray = ((_d = (_c = internals == null ? void 0 : internals.tables[tableName]) == null ? void 0 : _c.columns[name]) == null ? void 0 : _d.isArray) ?? false;
+      const lowered = type.toLowerCase().replace("[]", "");
+      if (name === "id") {
+        return `.default(sql\`uuid_generate_v4()\`)`;
+      }
+      if (isArray) {
+        return typeof defaultValue !== "undefined" ? `.default(${buildArrayDefault(defaultValue, lowered)})` : "";
+      }
+      if (enumTypes.has(`${typeSchema}.${type.replace("[]", "")}`)) {
+        return typeof defaultValue !== "undefined" ? `.default(${mapColumnDefault2(unescapeSingleQuotes(defaultValue, true), isExpression)})` : "";
+      }
+      if (lowered.startsWith("integer")) {
+        return typeof defaultValue !== "undefined" ? `.default(${mapColumnDefault2(defaultValue.replaceAll("(", "").replaceAll(")", ""), isExpression)})` : "";
+      }
+      if (lowered.startsWith("smallint")) {
+        return typeof defaultValue !== "undefined" ? `.default(${mapColumnDefault2(defaultValue.replaceAll("(", "").replaceAll(")", ""), isExpression)})` : "";
+      }
+      if (lowered.startsWith("bigint")) {
+        return typeof defaultValue !== "undefined" ? `.default(${mapColumnDefault2(defaultValue.replaceAll("(", "").replaceAll(")", ""), isExpression)})` : "";
+      }
+      if (lowered.startsWith("edgedbt.bigint_t")) {
+        return typeof defaultValue !== "undefined" ? `.default(BigInt(${mapColumnDefault2(defaultValue.replaceAll("(", "").replaceAll(")", ""), isExpression)}))` : "";
+      }
+      if (lowered.startsWith("boolean")) {
+        return typeof defaultValue !== "undefined" ? `.default(${mapColumnDefault2(defaultValue, isExpression)})` : "";
+      }
+      if (lowered.startsWith("double precision")) {
+        return typeof defaultValue !== "undefined" ? `.default(${mapColumnDefault2(defaultValue, isExpression)})` : "";
+      }
+      if (lowered.startsWith("edgedbt.date_duration_t")) {
+        return typeof defaultValue !== "undefined" ? `.default(${mapColumnDefault2(defaultValue, true)})` : "";
+      }
+      if (lowered.startsWith("real")) {
+        return typeof defaultValue !== "undefined" ? `.default(${mapColumnDefault2(defaultValue, isExpression)})` : "";
+      }
+      if (lowered.startsWith("uuid")) {
+        const res = defaultValue === "gen_random_uuid()" ? ".defaultRandom()" : defaultValue ? `.default(sql\`${defaultValue}\`)` : "";
+        return res;
+      }
+      if (lowered.startsWith("numeric")) {
+        defaultValue = defaultValue ? defaultValue.startsWith(`'`) && defaultValue.endsWith(`'`) ? defaultValue.substring(1, defaultValue.length - 1) : defaultValue : void 0;
+        return defaultValue ? `.default(sql\`${defaultValue}\`)` : "";
+      }
+      if (lowered.startsWith("edgedbt.timestamptz_t")) {
+        return defaultValue === "now()" ? ".defaultNow()" : /^'\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}(\.\d+)?([+-]\d{2}(:\d{2})?)?'$/.test(defaultValue) ? `.default(${mapColumnDefault2(defaultValue, isExpression)})` : defaultValue ? `.default(sql\`${defaultValue}\`)` : "";
+      }
+      if (lowered.startsWith("time without time zone")) {
+        return defaultValue === "now()" ? ".defaultNow()" : /^'\d{2}:\d{2}(:\d{2})?(\.\d+)?'$/.test(defaultValue) ? `.default(${mapColumnDefault2(defaultValue, isExpression)})` : defaultValue ? `.default(sql\`${defaultValue}\`)` : "";
+      }
+      if (lowered.startsWith("edgedbt.duration_t")) {
+        return defaultValue ? `.default(${mapColumnDefault2(defaultValue, true)})` : "";
+      }
+      if (lowered === "edgedbt.date_t") {
+        return defaultValue === "now()" ? ".defaultNow()" : /^'\d{4}-\d{2}-\d{2}'$/.test(defaultValue) ? `.default(${defaultValue})` : defaultValue ? `.default(sql\`${defaultValue}\`)` : "";
+      }
+      if (lowered.startsWith("edgedbt.relative_duration_t")) {
+        return defaultValue ? `.default(${mapColumnDefault2(defaultValue, true)})` : "";
+      }
+      if (lowered.startsWith("text")) {
+        return typeof defaultValue !== "undefined" ? `.default(${mapColumnDefault2(unescapeSingleQuotes(defaultValue, true), isExpression)})` : "";
+      }
+      if (lowered.startsWith("json")) {
+        const def = typeof defaultValue !== "undefined" ? defaultValue : null;
+        return defaultValue ? `.default(sql\`${def}\`)` : "";
+      }
+      if (lowered.startsWith("bytea")) {
+        return typeof defaultValue !== "undefined" ? `.default(${mapColumnDefault2(defaultValue, true)})` : "";
+      }
+      return "";
+    };
+    column7 = (tableName, type, name, enumTypes, typeSchema, casing2, defaultValue, internals) => {
+      var _a2, _b;
+      const isExpression = ((_b = (_a2 = internals == null ? void 0 : internals.tables[tableName]) == null ? void 0 : _a2.columns[name]) == null ? void 0 : _b.isDefaultAnExpression) ?? false;
+      const lowered = type.toLowerCase().replace("[]", "");
+      if (enumTypes.has(`${typeSchema}.${type.replace("[]", "")}`)) {
+        let out = `${withCasing2(name, casing2)}: ${withCasing2(paramNameFor(type.replace("[]", ""), typeSchema), casing2)}(${dbColumnName2({ name, casing: casing2 })})`;
+        return out;
+      }
+      if (lowered.startsWith("integer")) {
+        let out = `${withCasing2(name, casing2)}: integer(${dbColumnName2({ name, casing: casing2 })})`;
+        return out;
+      }
+      if (lowered.startsWith("smallint")) {
+        let out = `${withCasing2(name, casing2)}: smallint(${dbColumnName2({ name, casing: casing2 })})`;
+        return out;
+      }
+      if (lowered.startsWith("bigint")) {
+        let out = `${withCasing2(name, casing2)}: bigint(${dbColumnName2({ name, casing: casing2 })})`;
+        return out;
+      }
+      if (lowered.startsWith("edgedbt.bigint_t")) {
+        let out = `${withCasing2(name, casing2)}: bigintT(${dbColumnName2({ name, casing: casing2 })})`;
+        return out;
+      }
+      if (lowered.startsWith("boolean")) {
+        let out = `${withCasing2(name, casing2)}: boolean(${dbColumnName2({ name, casing: casing2 })})`;
+        return out;
+      }
+      if (lowered.startsWith("double precision")) {
+        let out = `${withCasing2(name, casing2)}: doublePrecision(${dbColumnName2({ name, casing: casing2 })})`;
+        return out;
+      }
+      if (lowered.startsWith("edgedbt.date_duration_t")) {
+        let out = `${withCasing2(name, casing2)}: dateDuration(${dbColumnName2({ name, casing: casing2 })})`;
+        return out;
+      }
+      if (lowered.startsWith("real")) {
+        let out = `${withCasing2(name, casing2)}: real(${dbColumnName2({ name, casing: casing2 })})`;
+        return out;
+      }
+      if (lowered.startsWith("uuid")) {
+        let out = `${withCasing2(name, casing2)}: uuid(${dbColumnName2({ name, casing: casing2 })})`;
+        return out;
+      }
+      if (lowered.startsWith("numeric")) {
+        let out = `${withCasing2(name, casing2)}: decimal(${dbColumnName2({ name, casing: casing2 })})`;
+        return out;
+      }
+      if (lowered.startsWith("edgedbt.timestamptz_t")) {
+        let out = `${withCasing2(name, casing2)}: timestamptz(${dbColumnName2({ name, casing: casing2 })})`;
+        return out;
+      }
+      if (lowered.startsWith("edgedbt.timestamp_t")) {
+        let out = `${withCasing2(name, casing2)}: timestamp(${dbColumnName2({ name, casing: casing2 })})`;
+        return out;
+      }
+      if (lowered.startsWith("edgedbt.date_t")) {
+        let out = `${withCasing2(name, casing2)}: localDate(${dbColumnName2({ name, casing: casing2 })})`;
+        return out;
+      }
+      if (lowered.startsWith("edgedbt.duration_t")) {
+        let out = `${withCasing2(name, casing2)}: duration(${dbColumnName2({ name, casing: casing2 })})`;
+        return out;
+      }
+      if (lowered.startsWith("edgedbt.relative_duration_t")) {
+        let out = `${withCasing2(name, casing2)}: relDuration(${dbColumnName2({ name, casing: casing2 })})`;
+        return out;
+      }
+      if (lowered.startsWith("text")) {
+        let out = `${withCasing2(name, casing2)}: text(${dbColumnName2({ name, casing: casing2 })})`;
+        return out;
+      }
+      if (lowered.startsWith("jsonb")) {
+        let out = `${withCasing2(name, casing2)}: json(${dbColumnName2({ name, casing: casing2 })})`;
+        return out;
+      }
+      if (lowered.startsWith("time without time zone")) {
+        let out = `${withCasing2(name, casing2)}: localTime(${dbColumnName2({ name, casing: casing2 })})`;
+        return out;
+      }
+      if (lowered.startsWith("bytea")) {
+        let out = `${withCasing2(name, casing2)}: bytes(${dbColumnName2({ name, casing: casing2 })})`;
+        return out;
+      }
+      let unknown = `// TODO: failed to parse database type '${type}'
+`;
+      unknown += `	${withCasing2(name, casing2)}: unknown("${name}")`;
+      return unknown;
+    };
+    dimensionsInArray = (size) => {
+      let res = "";
+      if (typeof size === "undefined") return res;
+      for (let i4 = 0; i4 < size; i4++) {
+        res += ".array()";
+      }
+      return res;
+    };
+    createTableColumns2 = (tableName, columns, fks, enumTypes, schemas, casing2, internals) => {
+      let statement = "";
+      const oneColumnsFKs = Object.values(fks).filter((it) => {
+        return !isSelf2(it);
+      }).filter((it) => it.columnsFrom.length === 1);
+      const fkByColumnName = oneColumnsFKs.reduce((res, it) => {
+        const arr = res[it.columnsFrom[0]] || [];
+        arr.push(it);
+        res[it.columnsFrom[0]] = arr;
+        return res;
+      }, {});
+      columns.forEach((it) => {
+        var _a2, _b, _c, _d;
+        const columnStatement = column7(
+          tableName,
+          it.type,
+          it.name,
+          enumTypes,
+          it.typeSchema ?? "public",
+          casing2,
+          it.default,
+          internals
+        );
+        statement += "	";
+        statement += columnStatement;
+        if ((_b = (_a2 = internals == null ? void 0 : internals.tables[tableName]) == null ? void 0 : _a2.columns[it.name]) == null ? void 0 : _b.isArray) {
+          statement += dimensionsInArray((_d = (_c = internals == null ? void 0 : internals.tables[tableName]) == null ? void 0 : _c.columns[it.name]) == null ? void 0 : _d.dimensions);
+        }
+        statement += mapDefault(tableName, it.type, it.name, enumTypes, it.typeSchema ?? "public", it.default, internals);
+        statement += it.primaryKey ? ".primaryKey()" : "";
+        statement += it.notNull && !it.identity ? ".notNull()" : "";
+        statement += it.identity ? generateIdentityParams(it.identity) : "";
+        statement += it.generated ? `.generatedAlwaysAs(sql\`${it.generated.as}\`)` : "";
+        statement += ",\n";
+      });
+      return statement;
+    };
+    createTableIndexes2 = (tableName, idxs, casing2) => {
+      let statement = "";
+      idxs.forEach((it) => {
+        let idxKey = it.name.startsWith(tableName) && it.name !== tableName ? it.name.slice(tableName.length + 1) : it.name;
+        idxKey = idxKey.endsWith("_index") ? idxKey.slice(0, -"_index".length) + "_idx" : idxKey;
+        idxKey = withCasing2(idxKey, casing2);
+        const indexGeneratedName = indexName5(
+          tableName,
+          it.columns.map((it2) => it2.expression)
+        );
+        const escapedIndexName = indexGeneratedName === it.name ? "" : `"${it.name}"`;
+        statement += `
+	`;
+        statement += it.isUnique ? "uniqueIndex(" : "index(";
+        statement += `${escapedIndexName})`;
+        statement += `${it.concurrently ? `.concurrently()` : ""}`;
+        statement += `.using("${it.method}", ${it.columns.map((it2) => {
+          if (it2.isExpression) {
+            return `sql\`${it2.expression}\``;
+          } else {
+            return `table.${withCasing2(it2.expression, casing2)}${it2.asc ? ".asc()" : ".desc()"}${it2.nulls === "first" ? ".nullsFirst()" : ".nullsLast()"}${it2.opclass ? `.op("${it2.opclass}")` : ""}`;
+          }
+        }).join(", ")})`;
+        statement += it.where ? `.where(sql\`${it.where}\`)` : "";
+        function reverseLogic(mappedWith) {
+          let reversedString = "{";
+          for (const key in mappedWith) {
+            if (mappedWith.hasOwnProperty(key)) {
+              reversedString += `${key}: "${mappedWith[key]}",`;
+            }
+          }
+          reversedString = reversedString.length > 1 ? reversedString.slice(0, reversedString.length - 1) : reversedString;
+          return `${reversedString}}`;
+        }
+        statement += it.with && Object.keys(it.with).length > 0 ? `.with(${reverseLogic(it.with)})` : "";
+        statement += `,`;
+      });
+      return statement;
+    };
+    createTablePKs2 = (pks, casing2) => {
+      let statement = "";
+      pks.forEach((it) => {
+        statement += `
+	`;
+        statement += "primaryKey({ columns: [";
+        statement += `${it.columns.map((c3) => {
+          return `table.${withCasing2(c3, casing2)}`;
+        }).join(", ")}]${it.name ? `, name: "${it.name}"` : ""}}`;
+        statement += ")";
+        statement += `,`;
+      });
+      return statement;
+    };
+    createTablePolicies = (policies, casing2, rolesNameToTsKey = {}) => {
+      let statement = "";
+      policies.forEach((it) => {
+        var _a2, _b, _c;
+        const idxKey = withCasing2(it.name, casing2);
+        const mappedItTo = (_a2 = it.to) == null ? void 0 : _a2.map((v6) => {
+          return rolesNameToTsKey[v6] ? withCasing2(rolesNameToTsKey[v6], casing2) : `"${v6}"`;
+        });
+        statement += `
+	`;
+        statement += "gelPolicy(";
+        statement += `"${it.name}", { `;
+        statement += `as: "${(_b = it.as) == null ? void 0 : _b.toLowerCase()}", for: "${(_c = it.for) == null ? void 0 : _c.toLowerCase()}", to: [${mappedItTo == null ? void 0 : mappedItTo.join(", ")}]${it.using ? `, using: sql\`${it.using}\`` : ""}${it.withCheck ? `, withCheck: sql\`${it.withCheck}\` ` : ""}`;
+        statement += ` }),`;
+      });
+      return statement;
+    };
+    createTableUniques2 = (unqs, casing2) => {
+      let statement = "";
+      unqs.forEach((it) => {
+        statement += `
+	`;
+        statement += "unique(";
+        statement += `"${it.name}")`;
+        statement += `.on(${it.columns.map((it2) => `table.${withCasing2(it2, casing2)}`).join(", ")})`;
+        statement += it.nullsNotDistinct ? `.nullsNotDistinct()` : "";
+        statement += `,`;
+      });
+      return statement;
+    };
+    createTableChecks2 = (checkConstraints, casing2) => {
+      let statement = "";
+      checkConstraints.forEach((it) => {
+        statement += `
+	`;
+        statement += "check(";
+        statement += `"${it.name}", `;
+        statement += `sql\`${it.value}\`)`;
+        statement += `,`;
+      });
+      return statement;
+    };
+    createTableFKs2 = (fks, schemas, casing2) => {
+      let statement = "";
+      fks.forEach((it) => {
+        const tableSchema = schemas[it.schemaTo || ""];
+        const paramName = paramNameFor(it.tableTo, tableSchema);
+        const isSelf5 = it.tableTo === it.tableFrom;
+        const tableTo = isSelf5 ? "table" : `${withCasing2(paramName, casing2)}`;
+        statement += `
+	`;
+        statement += `foreignKey({
+`;
+        statement += `			columns: [${it.columnsFrom.map((i4) => `table.${withCasing2(i4, casing2)}`).join(", ")}],
+`;
+        statement += `			foreignColumns: [${it.columnsTo.map((i4) => `${tableTo}.${withCasing2(i4, casing2)}`).join(", ")}],
+`;
+        statement += `			name: "${it.name}"
+`;
+        statement += `		})`;
+        statement += it.onUpdate && it.onUpdate !== "no action" ? `.onUpdate("${it.onUpdate}")` : "";
+        statement += it.onDelete && it.onDelete !== "no action" ? `.onDelete("${it.onDelete}")` : "";
+        statement += `,`;
+      });
+      return statement;
+    };
+  }
+});
+
+// src/introspect-mysql.ts
+var import_casing4, mysqlImportsList, objToStatement22, timeConfig, binaryConfig, importsPatch, relations3, escapeColumnKey3, prepareCasing, dbColumnName3, schemaToTypeScript3, isCyclic3, isSelf3, mapColumnDefault3, mapColumnDefaultForJson, column8, createTableColumns3, createTableIndexes3, createTableUniques3, createTableChecks3, createTablePKs3, createTableFKs3;
+var init_introspect_mysql = __esm({
+  "src/introspect-mysql.ts"() {
+    "use strict";
+    import_casing4 = require("drizzle-orm/casing");
+    init_utils();
+    init_global();
+    init_utils2();
+    mysqlImportsList = /* @__PURE__ */ new Set([
+      "mysqlTable",
+      "mysqlEnum",
+      "bigint",
+      "binary",
+      "boolean",
+      "char",
+      "date",
+      "datetime",
+      "decimal",
+      "double",
+      "float",
+      "int",
+      "json",
+      "mediumint",
+      "real",
+      "serial",
+      "smallint",
+      "text",
+      "tinytext",
+      "mediumtext",
+      "longtext",
+      "time",
+      "timestamp",
+      "tinyint",
+      "varbinary",
+      "varchar",
+      "year",
+      "enum"
+    ]);
+    objToStatement22 = (json) => {
+      json = Object.fromEntries(Object.entries(json).filter((it) => it[1]));
+      const keys = Object.keys(json);
+      if (keys.length === 0) return;
+      let statement = "{ ";
+      statement += keys.map((it) => `${it}: "${json[it]}"`).join(", ");
+      statement += " }";
+      return statement;
+    };
+    timeConfig = (json) => {
+      json = Object.fromEntries(Object.entries(json).filter((it) => it[1]));
+      const keys = Object.keys(json);
+      if (keys.length === 0) return;
+      let statement = "{ ";
+      statement += keys.map((it) => `${it}: ${json[it]}`).join(", ");
+      statement += " }";
+      return statement;
+    };
+    binaryConfig = (json) => {
+      json = Object.fromEntries(Object.entries(json).filter((it) => it[1]));
+      const keys = Object.keys(json);
+      if (keys.length === 0) return;
+      let statement = "{ ";
+      statement += keys.map((it) => `${it}: ${json[it]}`).join(", ");
+      statement += " }";
+      return statement;
+    };
+    importsPatch = {
+      "double precision": "doublePrecision",
+      "timestamp without time zone": "timestamp"
+    };
+    relations3 = /* @__PURE__ */ new Set();
+    escapeColumnKey3 = (value) => {
+      if (/^(?![a-zA-Z_$][a-zA-Z0-9_$]*$).+$/.test(value)) {
+        return `"${value}"`;
+      }
+      return value;
+    };
+    prepareCasing = (casing2) => (value) => {
+      if (casing2 === "preserve") {
+        return escapeColumnKey3(value);
+      }
+      if (casing2 === "camel") {
+        return escapeColumnKey3(value.camelCase());
+      }
+      assertUnreachable(casing2);
+    };
+    dbColumnName3 = ({ name, casing: casing2, withMode = false }) => {
+      if (casing2 === "preserve") {
+        return "";
+      }
+      if (casing2 === "camel") {
+        return (0, import_casing4.toCamelCase)(name) === name ? "" : withMode ? `"${name}", ` : `"${name}"`;
+      }
+      assertUnreachable(casing2);
+    };
+    schemaToTypeScript3 = (schema6, casing2) => {
+      const withCasing5 = prepareCasing(casing2);
+      Object.values(schema6.tables).forEach((table6) => {
+        Object.values(table6.foreignKeys).forEach((fk5) => {
+          const relation = `${fk5.tableFrom}-${fk5.tableTo}`;
+          relations3.add(relation);
+        });
+      });
+      const imports = Object.values(schema6.tables).reduce(
+        (res, it) => {
+          const idxImports = Object.values(it.indexes).map((idx) => idx.isUnique ? "uniqueIndex" : "index");
+          const fkImpots = Object.values(it.foreignKeys).map((it2) => "foreignKey");
+          const pkImports = Object.values(it.compositePrimaryKeys).map(
+            (it2) => "primaryKey"
+          );
+          const uniqueImports = Object.values(it.uniqueConstraints).map(
+            (it2) => "unique"
+          );
+          const checkImports = Object.values(it.checkConstraint).map(
+            (it2) => "check"
+          );
+          res.mysql.push(...idxImports);
+          res.mysql.push(...fkImpots);
+          res.mysql.push(...pkImports);
+          res.mysql.push(...uniqueImports);
+          res.mysql.push(...checkImports);
+          const columnImports = Object.values(it.columns).map((col) => {
+            let patched = importsPatch[col.type] ?? col.type;
+            patched = patched.startsWith("varchar(") ? "varchar" : patched;
+            patched = patched.startsWith("char(") ? "char" : patched;
+            patched = patched.startsWith("binary(") ? "binary" : patched;
+            patched = patched.startsWith("decimal(") ? "decimal" : patched;
+            patched = patched.startsWith("smallint(") ? "smallint" : patched;
+            patched = patched.startsWith("enum(") ? "mysqlEnum" : patched;
+            patched = patched.startsWith("datetime(") ? "datetime" : patched;
+            patched = patched.startsWith("varbinary(") ? "varbinary" : patched;
+            patched = patched.startsWith("int(") ? "int" : patched;
+            patched = patched.startsWith("double(") ? "double" : patched;
+            patched = patched.startsWith("float(") ? "float" : patched;
+            patched = patched.startsWith("int unsigned") ? "int" : patched;
+            patched = patched.startsWith("tinyint unsigned") ? "tinyint" : patched;
+            patched = patched.startsWith("smallint unsigned") ? "smallint" : patched;
+            patched = patched.startsWith("mediumint unsigned") ? "mediumint" : patched;
+            patched = patched.startsWith("bigint unsigned") ? "bigint" : patched;
+            return patched;
+          }).filter((type) => {
+            return mysqlImportsList.has(type);
+          });
+          res.mysql.push(...columnImports);
+          return res;
+        },
+        { mysql: [] }
+      );
+      Object.values(schema6.views).forEach((it) => {
+        imports.mysql.push("mysqlView");
+        const columnImports = Object.values(it.columns).map((col) => {
+          let patched = importsPatch[col.type] ?? col.type;
+          patched = patched.startsWith("varchar(") ? "varchar" : patched;
+          patched = patched.startsWith("char(") ? "char" : patched;
+          patched = patched.startsWith("binary(") ? "binary" : patched;
+          patched = patched.startsWith("decimal(") ? "decimal" : patched;
+          patched = patched.startsWith("smallint(") ? "smallint" : patched;
+          patched = patched.startsWith("enum(") ? "mysqlEnum" : patched;
+          patched = patched.startsWith("datetime(") ? "datetime" : patched;
+          patched = patched.startsWith("varbinary(") ? "varbinary" : patched;
+          patched = patched.startsWith("int(") ? "int" : patched;
+          patched = patched.startsWith("double(") ? "double" : patched;
+          patched = patched.startsWith("float(") ? "float" : patched;
+          patched = patched.startsWith("int unsigned") ? "int" : patched;
+          patched = patched.startsWith("tinyint unsigned") ? "tinyint" : patched;
+          patched = patched.startsWith("smallint unsigned") ? "smallint" : patched;
+          patched = patched.startsWith("mediumint unsigned") ? "mediumint" : patched;
+          patched = patched.startsWith("bigint unsigned") ? "bigint" : patched;
+          return patched;
+        }).filter((type) => {
+          return mysqlImportsList.has(type);
+        });
+        imports.mysql.push(...columnImports);
+      });
+      const tableStatements = Object.values(schema6.tables).map((table6) => {
+        const func = "mysqlTable";
+        let statement = "";
+        if (imports.mysql.includes(withCasing5(table6.name))) {
+          statement = `// Table name is in conflict with ${withCasing5(
+            table6.name
+          )} import.
+// Please change to any other name, that is not in imports list
+`;
+        }
+        statement += `export const ${withCasing5(table6.name)} = ${func}("${table6.name}", {
+`;
+        statement += createTableColumns3(
+          Object.values(table6.columns),
+          Object.values(table6.foreignKeys),
+          withCasing5,
+          casing2,
+          table6.name,
+          schema6
+        );
+        statement += "}";
+        const filteredFKs = Object.values(table6.foreignKeys).filter((it) => {
+          return it.columnsFrom.length > 1 || isSelf3(it);
+        });
+        if (Object.keys(table6.indexes).length > 0 || filteredFKs.length > 0 || Object.keys(table6.compositePrimaryKeys).length > 0 || Object.keys(table6.uniqueConstraints).length > 0 || Object.keys(table6.checkConstraint).length > 0) {
+          statement += ",\n";
+          statement += "(table) => [";
+          statement += createTableIndexes3(
+            table6.name,
+            Object.values(table6.indexes),
+            withCasing5
+          );
+          statement += createTableFKs3(Object.values(filteredFKs), withCasing5);
+          statement += createTablePKs3(
+            Object.values(table6.compositePrimaryKeys),
+            withCasing5
+          );
+          statement += createTableUniques3(
+            Object.values(table6.uniqueConstraints),
+            withCasing5
+          );
+          statement += createTableChecks3(
+            Object.values(table6.checkConstraint),
+            withCasing5
+          );
+          statement += "\n]";
+        }
+        statement += ");";
+        return statement;
+      });
+      const viewsStatements = Object.values(schema6.views).map((view5) => {
+        const { columns, name, algorithm, definition, sqlSecurity, withCheckOption } = view5;
+        const func = "mysqlView";
+        let statement = "";
+        if (imports.mysql.includes(withCasing5(name))) {
+          statement = `// Table name is in conflict with ${withCasing5(
+            view5.name
+          )} import.
+// Please change to any other name, that is not in imports list
+`;
+        }
+        statement += `export const ${withCasing5(name)} = ${func}("${name}", {
+`;
+        statement += createTableColumns3(
+          Object.values(columns),
+          [],
+          withCasing5,
+          casing2,
+          name,
+          schema6
+        );
+        statement += "})";
+        statement += algorithm ? `.algorithm("${algorithm}")` : "";
+        statement += sqlSecurity ? `.sqlSecurity("${sqlSecurity}")` : "";
+        statement += withCheckOption ? `.withCheckOption("${withCheckOption}")` : "";
+        statement += `.as(sql\`${definition == null ? void 0 : definition.replaceAll("`", "\\`")}\`);`;
+        return statement;
+      });
+      const uniqueMySqlImports = [
+        "mysqlTable",
+        "mysqlSchema",
+        "AnyMySqlColumn",
+        ...new Set(imports.mysql)
+      ];
+      const importsTs = `import { ${uniqueMySqlImports.join(
+        ", "
+      )} } from "drizzle-orm/mysql-core"
+import { sql } from "drizzle-orm"
+
+`;
+      let decalrations = "";
+      decalrations += tableStatements.join("\n\n");
+      decalrations += "\n";
+      decalrations += viewsStatements.join("\n\n");
+      const file = importsTs + decalrations;
+      const schemaEntry = `
+    {
+      ${Object.values(schema6.tables).map((it) => withCasing5(it.name)).join(",")}
+    }
+  `;
+      return {
+        file,
+        // backward compatible, print to file
+        imports: importsTs,
+        decalrations,
+        schemaEntry
+      };
+    };
+    isCyclic3 = (fk5) => {
+      const key = `${fk5.tableFrom}-${fk5.tableTo}`;
+      const reverse = `${fk5.tableTo}-${fk5.tableFrom}`;
+      return relations3.has(key) && relations3.has(reverse);
+    };
+    isSelf3 = (fk5) => {
+      return fk5.tableFrom === fk5.tableTo;
+    };
+    mapColumnDefault3 = (defaultValue, isExpression) => {
+      if (isExpression) {
+        return `sql\`${defaultValue}\``;
+      }
+      return defaultValue;
+    };
+    mapColumnDefaultForJson = (defaultValue) => {
+      if (typeof defaultValue === "string" && defaultValue.startsWith("('") && defaultValue.endsWith("')")) {
+        return defaultValue.substring(2, defaultValue.length - 2);
+      }
+      return defaultValue;
+    };
+    column8 = (type, name, casing2, rawCasing, defaultValue, autoincrement, onUpdate, isExpression) => {
+      let lowered = type;
+      if (!type.startsWith("enum(")) {
+        lowered = type.toLowerCase();
+      }
+      if (lowered === "serial") {
+        return `${casing2(name)}: serial(${dbColumnName3({ name, casing: rawCasing })})`;
+      }
+      if (lowered.startsWith("int")) {
+        const isUnsigned = lowered.startsWith("int unsigned");
+        const columnName = dbColumnName3({ name, casing: rawCasing, withMode: isUnsigned });
+        let out = `${casing2(name)}: int(${columnName}${isUnsigned ? "{ unsigned: true }" : ""})`;
+        out += autoincrement ? `.autoincrement()` : "";
+        out += typeof defaultValue !== "undefined" ? `.default(${mapColumnDefault3(defaultValue, isExpression)})` : "";
+        return out;
+      }
+      if (lowered.startsWith("tinyint")) {
+        const isUnsigned = lowered.startsWith("tinyint unsigned");
+        const columnName = dbColumnName3({ name, casing: rawCasing, withMode: isUnsigned });
+        let out = `${casing2(name)}: tinyint(${columnName}${isUnsigned ? "{ unsigned: true }" : ""})`;
+        out += autoincrement ? `.autoincrement()` : "";
+        out += typeof defaultValue !== "undefined" ? `.default(${mapColumnDefault3(defaultValue, isExpression)})` : "";
+        return out;
+      }
+      if (lowered.startsWith("smallint")) {
+        const isUnsigned = lowered.startsWith("smallint unsigned");
+        const columnName = dbColumnName3({ name, casing: rawCasing, withMode: isUnsigned });
+        let out = `${casing2(name)}: smallint(${columnName}${isUnsigned ? "{ unsigned: true }" : ""})`;
+        out += autoincrement ? `.autoincrement()` : "";
+        out += defaultValue ? `.default(${mapColumnDefault3(defaultValue, isExpression)})` : "";
+        return out;
+      }
+      if (lowered.startsWith("mediumint")) {
+        const isUnsigned = lowered.startsWith("mediumint unsigned");
+        const columnName = dbColumnName3({ name, casing: rawCasing, withMode: isUnsigned });
+        let out = `${casing2(name)}: mediumint(${columnName}${isUnsigned ? "{ unsigned: true }" : ""})`;
+        out += autoincrement ? `.autoincrement()` : "";
+        out += defaultValue ? `.default(${mapColumnDefault3(defaultValue, isExpression)})` : "";
+        return out;
+      }
+      if (lowered.startsWith("bigint")) {
+        const isUnsigned = lowered.startsWith("bigint unsigned");
+        let out = `${casing2(name)}: bigint(${dbColumnName3({ name, casing: rawCasing, withMode: true })}{ mode: "number"${isUnsigned ? ", unsigned: true" : ""} })`;
+        out += autoincrement ? `.autoincrement()` : "";
+        out += defaultValue ? `.default(${mapColumnDefault3(defaultValue, isExpression)})` : "";
+        return out;
+      }
+      if (lowered === "boolean") {
+        let out = `${casing2(name)}: boolean(${dbColumnName3({ name, casing: rawCasing })})`;
+        out += defaultValue ? `.default(${mapColumnDefault3(defaultValue, isExpression)})` : "";
+        return out;
+      }
+      if (lowered.startsWith("double")) {
+        let params;
+        if (lowered.length > (lowered.includes("unsigned") ? 15 : 6)) {
+          const [precision, scale] = lowered.slice(7, lowered.length - (1 + (lowered.includes("unsigned") ? 9 : 0))).split(",");
+          params = { precision, scale };
+        }
+        if (lowered.includes("unsigned")) {
+          params = { ...params ?? {}, unsigned: true };
+        }
+        const timeConfigParams = params ? timeConfig(params) : void 0;
+        let out = params ? `${casing2(name)}: double(${dbColumnName3({ name, casing: rawCasing, withMode: timeConfigParams !== void 0 })}${timeConfig(params)})` : `${casing2(name)}: double(${dbColumnName3({ name, casing: rawCasing })})`;
+        out += defaultValue ? `.default(${mapColumnDefault3(defaultValue, isExpression)})` : "";
+        return out;
+      }
+      if (lowered.startsWith("float")) {
+        let params;
+        if (lowered.length > (lowered.includes("unsigned") ? 14 : 5)) {
+          const [precision, scale] = lowered.slice(6, lowered.length - (1 + (lowered.includes("unsigned") ? 9 : 0))).split(",");
+          params = { precision, scale };
+        }
+        if (lowered.includes("unsigned")) {
+          params = { ...params ?? {}, unsigned: true };
+        }
+        let out = `${casing2(name)}: float(${dbColumnName3({ name, casing: rawCasing })}${params ? timeConfig(params) : ""})`;
+        out += defaultValue ? `.default(${mapColumnDefault3(defaultValue, isExpression)})` : "";
+        return out;
+      }
+      if (lowered === "real") {
+        let out = `${casing2(name)}: real(${dbColumnName3({ name, casing: rawCasing })})`;
+        out += defaultValue ? `.default(${mapColumnDefault3(defaultValue, isExpression)})` : "";
+        return out;
+      }
+      if (lowered.startsWith("timestamp")) {
+        const keyLength = "timestamp".length + 1;
+        let fsp = lowered.length > keyLength ? Number(lowered.substring(keyLength, lowered.length - 1)) : null;
+        fsp = fsp ? fsp : null;
+        const params = timeConfig({ fsp, mode: "'string'" });
+        let out = params ? `${casing2(name)}: timestamp(${dbColumnName3({ name, casing: rawCasing, withMode: params !== void 0 })}${params})` : `${casing2(name)}: timestamp(${dbColumnName3({ name, casing: rawCasing })})`;
+        defaultValue = defaultValue === "now()" || defaultValue === "(CURRENT_TIMESTAMP)" ? ".defaultNow()" : defaultValue ? `.default(${mapColumnDefault3(defaultValue, isExpression)})` : "";
+        out += defaultValue;
+        let onUpdateNow = onUpdate ? ".onUpdateNow()" : "";
+        out += onUpdateNow;
+        return out;
+      }
+      if (lowered.startsWith("time")) {
+        const keyLength = "time".length + 1;
+        let fsp = lowered.length > keyLength ? Number(lowered.substring(keyLength, lowered.length - 1)) : null;
+        fsp = fsp ? fsp : null;
+        const params = timeConfig({ fsp });
+        let out = params ? `${casing2(name)}: time(${dbColumnName3({ name, casing: rawCasing, withMode: params !== void 0 })}${params})` : `${casing2(name)}: time(${dbColumnName3({ name, casing: rawCasing })})`;
+        defaultValue = defaultValue === "now()" ? ".defaultNow()" : defaultValue ? `.default(${mapColumnDefault3(defaultValue, isExpression)})` : "";
+        out += defaultValue;
+        return out;
+      }
+      if (lowered === "date") {
+        let out = `// you can use { mode: 'date' }, if you want to have Date as type for this column
+	${casing2(
+          name
+        )}: date(${dbColumnName3({ name, casing: rawCasing, withMode: true })}{ mode: 'string' })`;
+        defaultValue = defaultValue === "now()" ? ".defaultNow()" : defaultValue ? `.default(${mapColumnDefault3(defaultValue, isExpression)})` : "";
+        out += defaultValue;
+        return out;
+      }
+      if (lowered === "text") {
+        let out = `${casing2(name)}: text(${dbColumnName3({ name, casing: rawCasing })})`;
+        out += defaultValue ? `.default(${mapColumnDefault3(defaultValue, isExpression)})` : "";
+        return out;
+      }
+      if (lowered === "tinytext") {
+        let out = `${casing2(name)}: tinytext(${dbColumnName3({ name, casing: rawCasing })})`;
+        out += defaultValue ? `.default(${mapColumnDefault3(defaultValue, isExpression)})` : "";
+        return out;
+      }
+      if (lowered === "mediumtext") {
+        let out = `${casing2(name)}: mediumtext(${dbColumnName3({ name, casing: rawCasing })})`;
+        out += defaultValue ? `.default(${mapColumnDefault3(defaultValue, isExpression)})` : "";
+        return out;
+      }
+      if (lowered === "longtext") {
+        let out = `${casing2(name)}: longtext(${dbColumnName3({ name, casing: rawCasing })})`;
+        out += defaultValue ? `.default(${mapColumnDefault3(defaultValue, isExpression)})` : "";
+        return out;
+      }
+      if (lowered === "year") {
+        let out = `${casing2(name)}: year(${dbColumnName3({ name, casing: rawCasing })})`;
+        out += defaultValue ? `.default(${mapColumnDefault3(defaultValue, isExpression)})` : "";
+        return out;
+      }
+      if (lowered === "json") {
+        let out = `${casing2(name)}: json(${dbColumnName3({ name, casing: rawCasing })})`;
+        out += defaultValue ? `.default(${mapColumnDefaultForJson(defaultValue)})` : "";
+        return out;
+      }
+      if (lowered.startsWith("varchar")) {
+        let out = `${casing2(
+          name
+        )}: varchar(${dbColumnName3({ name, casing: rawCasing, withMode: true })}{ length: ${lowered.substring(
+          "varchar".length + 1,
+          lowered.length - 1
+        )} })`;
+        const mappedDefaultValue = mapColumnDefault3(defaultValue, isExpression);
+        out += defaultValue ? `.default(${isExpression ? mappedDefaultValue : unescapeSingleQuotes(mappedDefaultValue, true)})` : "";
+        return out;
+      }
+      if (lowered.startsWith("char")) {
+        let out = `${casing2(
+          name
+        )}: char(${dbColumnName3({ name, casing: rawCasing, withMode: true })}{ length: ${lowered.substring(
+          "char".length + 1,
+          lowered.length - 1
+        )} })`;
+        out += defaultValue ? `.default(${mapColumnDefault3(defaultValue, isExpression)})` : "";
+        return out;
+      }
+      if (lowered.startsWith("datetime")) {
+        let out = `// you can use { mode: 'date' }, if you want to have Date as type for this column
+	`;
+        const fsp = lowered.startsWith("datetime(") ? lowered.substring("datetime".length + 1, lowered.length - 1) : void 0;
+        out = fsp ? `${casing2(
+          name
+        )}: datetime(${dbColumnName3({ name, casing: rawCasing, withMode: true })}{ mode: 'string', fsp: ${lowered.substring(
+          "datetime".length + 1,
+          lowered.length - 1
+        )} })` : `${casing2(name)}: datetime(${dbColumnName3({ name, casing: rawCasing, withMode: true })}{ mode: 'string'})`;
+        defaultValue = defaultValue === "now()" ? ".defaultNow()" : defaultValue ? `.default(${mapColumnDefault3(defaultValue, isExpression)})` : "";
+        out += defaultValue;
+        return out;
+      }
+      if (lowered.startsWith("decimal")) {
+        let params;
+        if (lowered.length > (lowered.includes("unsigned") ? 16 : 7)) {
+          const [precision, scale] = lowered.slice(8, lowered.length - (1 + (lowered.includes("unsigned") ? 9 : 0))).split(",");
+          params = { precision, scale };
+        }
+        if (lowered.includes("unsigned")) {
+          params = { ...params ?? {}, unsigned: true };
+        }
+        const timeConfigParams = params ? timeConfig(params) : void 0;
+        let out = params ? `${casing2(name)}: decimal(${dbColumnName3({ name, casing: rawCasing, withMode: timeConfigParams !== void 0 })}${timeConfigParams})` : `${casing2(name)}: decimal(${dbColumnName3({ name, casing: rawCasing })})`;
+        defaultValue = typeof defaultValue !== "undefined" ? `.default(${mapColumnDefault3(defaultValue, isExpression)})` : "";
+        out += defaultValue;
+        return out;
+      }
+      if (lowered.startsWith("binary")) {
+        const keyLength = "binary".length + 1;
+        let length = lowered.length > keyLength ? Number(lowered.substring(keyLength, lowered.length - 1)) : null;
+        length = length ? length : null;
+        const params = binaryConfig({ length });
+        let out = params ? `${casing2(name)}: binary(${dbColumnName3({ name, casing: rawCasing, withMode: params !== void 0 })}${params})` : `${casing2(name)}: binary(${dbColumnName3({ name, casing: rawCasing })})`;
+        defaultValue = defaultValue ? `.default(${mapColumnDefault3(defaultValue, isExpression)})` : "";
+        out += defaultValue;
+        return out;
+      }
+      if (lowered.startsWith("enum")) {
+        const values = lowered.substring("enum".length + 1, lowered.length - 1).split(",").map((v6) => unescapeSingleQuotes(v6, true)).join(",");
+        let out = `${casing2(name)}: mysqlEnum(${dbColumnName3({ name, casing: rawCasing, withMode: true })}[${values}])`;
+        const mappedDefaultValue = mapColumnDefault3(defaultValue, isExpression);
+        out += defaultValue ? `.default(${isExpression ? mappedDefaultValue : unescapeSingleQuotes(mappedDefaultValue, true)})` : "";
+        return out;
+      }
+      if (lowered.startsWith("varbinary")) {
+        const keyLength = "varbinary".length + 1;
+        let length = lowered.length > keyLength ? Number(lowered.substring(keyLength, lowered.length - 1)) : null;
+        length = length ? length : null;
+        const params = binaryConfig({ length });
+        let out = params ? `${casing2(name)}: varbinary(${dbColumnName3({ name, casing: rawCasing, withMode: params !== void 0 })}${params})` : `${casing2(name)}: varbinary(${dbColumnName3({ name, casing: rawCasing })})`;
+        defaultValue = defaultValue ? `.default(${mapColumnDefault3(defaultValue, isExpression)})` : "";
+        out += defaultValue;
+        return out;
+      }
+      console.log("uknown", type);
+      return `// Warning: Can't parse ${type} from database
+	// ${type}Type: ${type}("${name}")`;
+    };
+    createTableColumns3 = (columns, fks, casing2, rawCasing, tableName, schema6) => {
+      let statement = "";
+      const oneColumnsFKs = Object.values(fks).filter((it) => {
+        return !isSelf3(it);
+      }).filter((it) => it.columnsFrom.length === 1);
+      const fkByColumnName = oneColumnsFKs.reduce((res, it) => {
+        const arr = res[it.columnsFrom[0]] || [];
+        arr.push(it);
+        res[it.columnsFrom[0]] = arr;
+        return res;
+      }, {});
+      columns.forEach((it) => {
+        var _a2, _b, _c;
+        statement += "	";
+        statement += column8(
+          it.type,
+          it.name,
+          casing2,
+          rawCasing,
+          it.default,
+          it.autoincrement,
+          it.onUpdate,
+          ((_c = (_b = (_a2 = schema6.internal) == null ? void 0 : _a2.tables[tableName]) == null ? void 0 : _b.columns[it.name]) == null ? void 0 : _c.isDefaultAnExpression) ?? false
+        );
+        statement += it.primaryKey ? ".primaryKey()" : "";
+        statement += it.notNull ? ".notNull()" : "";
+        statement += it.generated ? `.generatedAlwaysAs(sql\`${it.generated.as.replace(
+          /`/g,
+          "\\`"
+        )}\`, { mode: "${it.generated.type}" })` : "";
+        const fks2 = fkByColumnName[it.name];
+        if (fks2) {
+          const fksStatement = fks2.map((it2) => {
+            const onDelete = it2.onDelete && it2.onDelete !== "no action" ? it2.onDelete : null;
+            const onUpdate = it2.onUpdate && it2.onUpdate !== "no action" ? it2.onUpdate : null;
+            const params = { onDelete, onUpdate };
+            const typeSuffix = isCyclic3(it2) ? ": AnyMySqlColumn" : "";
+            const paramsStr = objToStatement22(params);
+            if (paramsStr) {
+              return `.references(()${typeSuffix} => ${casing2(
+                it2.tableTo
+              )}.${casing2(it2.columnsTo[0])}, ${paramsStr} )`;
+            }
+            return `.references(()${typeSuffix} => ${casing2(it2.tableTo)}.${casing2(
+              it2.columnsTo[0]
+            )})`;
+          }).join("");
+          statement += fksStatement;
+        }
+        statement += ",\n";
+      });
+      return statement;
+    };
+    createTableIndexes3 = (tableName, idxs, casing2) => {
+      let statement = "";
+      idxs.forEach((it) => {
+        let idxKey = it.name.startsWith(tableName) && it.name !== tableName ? it.name.slice(tableName.length + 1) : it.name;
+        idxKey = idxKey.endsWith("_index") ? idxKey.slice(0, -"_index".length) + "_idx" : idxKey;
+        idxKey = casing2(idxKey);
+        statement += `
+	`;
+        statement += it.isUnique ? "uniqueIndex(" : "index(";
+        statement += `"${it.name}")`;
+        statement += `.on(${it.columns.map((it2) => `table.${casing2(it2)}`).join(", ")}),`;
+      });
+      return statement;
+    };
+    createTableUniques3 = (unqs, casing2) => {
+      let statement = "";
+      unqs.forEach((it) => {
+        const idxKey = casing2(it.name);
+        statement += `
+	`;
+        statement += "unique(";
+        statement += `"${it.name}")`;
+        statement += `.on(${it.columns.map((it2) => `table.${casing2(it2)}`).join(", ")}),`;
+      });
+      return statement;
+    };
+    createTableChecks3 = (checks, casing2) => {
+      let statement = "";
+      checks.forEach((it) => {
+        statement += `
+	`;
+        statement += "check(";
+        statement += `"${it.name}", `;
+        statement += `sql\`${it.value.replace(/`/g, "\\`")}\`)`;
+        statement += `,`;
+      });
+      return statement;
+    };
+    createTablePKs3 = (pks, casing2) => {
+      let statement = "";
+      pks.forEach((it) => {
+        let idxKey = casing2(it.name);
+        statement += `
+	`;
+        statement += "primaryKey({ columns: [";
+        statement += `${it.columns.map((c3) => {
+          return `table.${casing2(c3)}`;
+        }).join(", ")}]${it.name ? `, name: "${it.name}"` : ""}}`;
+        statement += "),";
+      });
+      return statement;
+    };
+    createTableFKs3 = (fks, casing2) => {
+      let statement = "";
+      fks.forEach((it) => {
+        const isSelf5 = it.tableTo === it.tableFrom;
+        const tableTo = isSelf5 ? "table" : `${casing2(it.tableTo)}`;
+        statement += `
+	`;
+        statement += `foreignKey({
+`;
+        statement += `			columns: [${it.columnsFrom.map((i4) => `table.${casing2(i4)}`).join(", ")}],
+`;
+        statement += `			foreignColumns: [${it.columnsTo.map((i4) => `${tableTo}.${casing2(i4)}`).join(", ")}],
+`;
+        statement += `			name: "${it.name}"
+`;
+        statement += `		})`;
+        statement += it.onUpdate && it.onUpdate !== "no action" ? `.onUpdate("${it.onUpdate}")` : "";
+        statement += it.onDelete && it.onDelete !== "no action" ? `.onDelete("${it.onDelete}")` : "";
+        statement += `,`;
+      });
+      return statement;
+    };
+  }
+});
+
+// src/introspect-pg.ts
+function generateIdentityParams2(identity) {
+  let paramsObj = `{ name: "${identity.name}"`;
+  if (identity == null ? void 0 : identity.startWith) {
+    paramsObj += `, startWith: ${identity.startWith}`;
+  }
+  if (identity == null ? void 0 : identity.increment) {
+    paramsObj += `, increment: ${identity.increment}`;
+  }
+  if (identity == null ? void 0 : identity.minValue) {
+    paramsObj += `, minValue: ${identity.minValue}`;
+  }
+  if (identity == null ? void 0 : identity.maxValue) {
+    paramsObj += `, maxValue: ${identity.maxValue}`;
+  }
+  if (identity == null ? void 0 : identity.cache) {
+    paramsObj += `, cache: ${identity.cache}`;
+  }
+  if (identity == null ? void 0 : identity.cycle) {
+    paramsObj += `, cycle: true`;
+  }
+  paramsObj += " }";
+  if ((identity == null ? void 0 : identity.type) === "always") {
+    return `.generatedAlwaysAsIdentity(${paramsObj})`;
+  }
+  return `.generatedByDefaultAsIdentity(${paramsObj})`;
+}
+var import_drizzle_orm10, import_relations2, import_casing5, pgImportsList, timeConfig2, possibleIntervals, intervalStrToObj, intervalConfig, mapColumnDefault4, importsPatch2, relations4, escapeColumnKey4, withCasing3, dbColumnName4, paramNameFor2, schemaToTypeScript4, isCyclic4, isSelf4, buildArrayDefault2, mapDefault2, column9, dimensionsInArray2, createTableColumns4, createTableIndexes4, createTablePKs4, createTablePolicies2, createTableUniques4, createTableChecks4, createTableFKs4;
+var init_introspect_pg = __esm({
+  "src/introspect-pg.ts"() {
+    "use strict";
+    import_drizzle_orm10 = require("drizzle-orm");
+    import_relations2 = require("drizzle-orm/relations");
+    init_utils();
+    import_casing5 = require("drizzle-orm/casing");
+    init_global();
+    init_pgSerializer();
+    init_utils2();
+    pgImportsList = /* @__PURE__ */ new Set([
+      "pgTable",
+      "pgEnum",
+      "smallint",
+      "integer",
+      "bigint",
+      "boolean",
+      "text",
+      "varchar",
+      "char",
+      "serial",
+      "smallserial",
+      "bigserial",
+      "decimal",
+      "numeric",
+      "real",
+      "json",
+      "jsonb",
+      "time",
+      "timestamp",
+      "date",
+      "interval",
+      "cidr",
+      "inet",
+      "macaddr",
+      "macaddr8",
+      "bigint",
+      "doublePrecision",
+      "uuid",
+      "vector",
+      "point",
+      "line",
+      "geometry"
+    ]);
+    timeConfig2 = (json) => {
+      json = Object.fromEntries(Object.entries(json).filter((it) => it[1]));
+      const keys = Object.keys(json);
+      if (keys.length === 0) return;
+      let statement = "{ ";
+      statement += keys.map((it) => `${it}: ${json[it]}`).join(", ");
+      statement += " }";
+      return statement;
+    };
+    possibleIntervals = [
+      "year",
+      "month",
+      "day",
+      "hour",
+      "minute",
+      "second",
+      "year to month",
+      "day to hour",
+      "day to minute",
+      "day to second",
+      "hour to minute",
+      "hour to second",
+      "minute to second"
+    ];
+    intervalStrToObj = (str) => {
+      if (str.startsWith("interval(")) {
+        return {
+          precision: Number(str.substring("interval(".length, str.length - 1))
+        };
+      }
+      const splitted = str.split(" ");
+      if (splitted.length === 1) {
+        return {};
+      }
+      const rest = splitted.slice(1, splitted.length).join(" ");
+      if (possibleIntervals.includes(rest)) {
+        return { fields: `"${rest}"` };
+      }
+      for (const s4 of possibleIntervals) {
+        if (rest.startsWith(`${s4}(`)) {
+          return {
+            fields: `"${s4}"`,
+            precision: Number(rest.substring(s4.length + 1, rest.length - 1))
+          };
+        }
+      }
+      return {};
+    };
+    intervalConfig = (str) => {
+      const json = intervalStrToObj(str);
+      const keys = Object.keys(json);
+      if (keys.length === 0) return;
+      let statement = "{ ";
+      statement += keys.map((it) => `${it}: ${json[it]}`).join(", ");
+      statement += " }";
+      return statement;
+    };
+    mapColumnDefault4 = (defaultValue, isExpression) => {
+      if (isExpression) {
+        return `sql\`${defaultValue}\``;
+      }
+      return defaultValue;
+    };
+    importsPatch2 = {
+      "double precision": "doublePrecision",
+      "timestamp without time zone": "timestamp",
+      "timestamp with time zone": "timestamp",
+      "time without time zone": "time",
+      "time with time zone": "time"
+    };
+    relations4 = /* @__PURE__ */ new Set();
+    escapeColumnKey4 = (value) => {
+      if (/^(?![a-zA-Z_$][a-zA-Z0-9_$]*$).+$/.test(value)) {
+        return `"${value}"`;
+      }
+      return value;
+    };
+    withCasing3 = (value, casing2) => {
+      if (casing2 === "preserve") {
+        return escapeColumnKey4(value);
+      }
+      if (casing2 === "camel") {
+        return escapeColumnKey4(value.camelCase());
+      }
+      assertUnreachable(casing2);
+    };
+    dbColumnName4 = ({ name, casing: casing2, withMode = false }) => {
+      if (casing2 === "preserve") {
+        return "";
+      }
+      if (casing2 === "camel") {
+        return (0, import_casing5.toCamelCase)(name) === name ? "" : withMode ? `"${name}", ` : `"${name}"`;
+      }
+      assertUnreachable(casing2);
+    };
+    paramNameFor2 = (name, schema6) => {
+      const schemaSuffix = schema6 && schema6 !== "public" ? `In${schema6.capitalise()}` : "";
+      return `${name}${schemaSuffix}`;
+    };
+    schemaToTypeScript4 = (schema6, casing2) => {
+      Object.values(schema6.tables).forEach((table6) => {
+        Object.values(table6.foreignKeys).forEach((fk5) => {
+          const relation = `${fk5.tableFrom}-${fk5.tableTo}`;
+          relations4.add(relation);
+        });
+      });
+      const schemas = Object.fromEntries(
+        Object.entries(schema6.schemas).map((it) => {
+          return [it[0], withCasing3(it[1], casing2)];
+        })
+      );
+      const enumTypes = Object.values(schema6.enums).reduce((acc, cur) => {
+        acc.add(`${cur.schema}.${cur.name}`);
+        return acc;
+      }, /* @__PURE__ */ new Set());
+      const imports = Object.values(schema6.tables).reduce(
+        (res, it) => {
+          const idxImports = Object.values(it.indexes).map((idx) => idx.isUnique ? "uniqueIndex" : "index");
+          const fkImpots = Object.values(it.foreignKeys).map((it2) => "foreignKey");
+          if (Object.values(it.foreignKeys).some((it2) => isCyclic4(it2) && !isSelf4(it2))) {
+            res.pg.push("type AnyPgColumn");
+          }
+          const pkImports = Object.values(it.compositePrimaryKeys).map((it2) => "primaryKey");
+          const uniqueImports = Object.values(it.uniqueConstraints).map((it2) => "unique");
+          const checkImports = Object.values(it.checkConstraints).map(
+            (it2) => "check"
+          );
+          const policiesImports = Object.values(it.policies).map(
+            (it2) => "pgPolicy"
+          );
+          if (it.schema && it.schema !== "public" && it.schema !== "") {
+            res.pg.push("pgSchema");
+          }
+          res.pg.push(...idxImports);
+          res.pg.push(...fkImpots);
+          res.pg.push(...pkImports);
+          res.pg.push(...uniqueImports);
+          res.pg.push(...policiesImports);
+          res.pg.push(...checkImports);
+          const columnImports = Object.values(it.columns).map((col) => {
+            let patched = (importsPatch2[col.type] || col.type).replace("[]", "");
+            patched = patched === "double precision" ? "doublePrecision" : patched;
+            patched = patched.startsWith("varchar(") ? "varchar" : patched;
+            patched = patched.startsWith("char(") ? "char" : patched;
+            patched = patched.startsWith("numeric(") ? "numeric" : patched;
+            patched = patched.startsWith("time(") ? "time" : patched;
+            patched = patched.startsWith("timestamp(") ? "timestamp" : patched;
+            patched = patched.startsWith("vector(") ? "vector" : patched;
+            patched = patched.startsWith("geometry(") ? "geometry" : patched;
+            return patched;
+          }).filter((type) => {
+            return pgImportsList.has(type);
+          });
+          res.pg.push(...columnImports);
+          return res;
+        },
+        { pg: [] }
+      );
+      Object.values(schema6.views).forEach((it) => {
+        if (it.schema && it.schema !== "public" && it.schema !== "") {
+          imports.pg.push("pgSchema");
+        } else if (it.schema === "public") {
+          it.materialized ? imports.pg.push("pgMaterializedView") : imports.pg.push("pgView");
+        }
+        Object.values(it.columns).forEach(() => {
+          const columnImports = Object.values(it.columns).map((col) => {
+            let patched = (importsPatch2[col.type] || col.type).replace("[]", "");
+            patched = patched === "double precision" ? "doublePrecision" : patched;
+            patched = patched.startsWith("varchar(") ? "varchar" : patched;
+            patched = patched.startsWith("char(") ? "char" : patched;
+            patched = patched.startsWith("numeric(") ? "numeric" : patched;
+            patched = patched.startsWith("time(") ? "time" : patched;
+            patched = patched.startsWith("timestamp(") ? "timestamp" : patched;
+            patched = patched.startsWith("vector(") ? "vector" : patched;
+            patched = patched.startsWith("geometry(") ? "geometry" : patched;
+            return patched;
+          }).filter((type) => {
+            return pgImportsList.has(type);
+          });
+          imports.pg.push(...columnImports);
+        });
+      });
+      Object.values(schema6.sequences).forEach((it) => {
+        if (it.schema && it.schema !== "public" && it.schema !== "") {
+          imports.pg.push("pgSchema");
+        } else if (it.schema === "public") {
+          imports.pg.push("pgSequence");
+        }
+      });
+      Object.values(schema6.enums).forEach((it) => {
+        if (it.schema && it.schema !== "public" && it.schema !== "") {
+          imports.pg.push("pgSchema");
+        } else if (it.schema === "public") {
+          imports.pg.push("pgEnum");
+        }
+      });
+      if (Object.keys(schema6.roles).length > 0) {
+        imports.pg.push("pgRole");
+      }
+      const enumStatements = Object.values(schema6.enums).map((it) => {
+        const enumSchema4 = schemas[it.schema];
+        const paramName = paramNameFor2(it.name, enumSchema4);
+        const func = enumSchema4 ? `${enumSchema4}.enum` : "pgEnum";
+        const values = Object.values(it.values).map((it2) => `'${unescapeSingleQuotes(it2, false)}'`).join(", ");
+        return `export const ${withCasing3(paramName, casing2)} = ${func}("${it.name}", [${values}])
+`;
+      }).join("").concat("\n");
+      const sequencesStatements = Object.values(schema6.sequences).map((it) => {
+        const seqSchema = schemas[it.schema];
+        const paramName = paramNameFor2(it.name, seqSchema);
+        const func = seqSchema ? `${seqSchema}.sequence` : "pgSequence";
+        let params = "";
+        if (it.startWith) {
+          params += `, startWith: "${it.startWith}"`;
+        }
+        if (it.increment) {
+          params += `, increment: "${it.increment}"`;
+        }
+        if (it.minValue) {
+          params += `, minValue: "${it.minValue}"`;
+        }
+        if (it.maxValue) {
+          params += `, maxValue: "${it.maxValue}"`;
+        }
+        if (it.cache) {
+          params += `, cache: "${it.cache}"`;
+        }
+        if (it.cycle) {
+          params += `, cycle: true`;
+        } else {
+          params += `, cycle: false`;
+        }
+        return `export const ${withCasing3(paramName, casing2)} = ${func}("${it.name}"${params ? `, { ${params.trimChar(",")} }` : ""})
+`;
+      }).join("").concat("");
+      const schemaStatements = Object.entries(schemas).map((it) => {
+        return `export const ${it[1]} = pgSchema("${it[0]}");
+`;
+      }).join("");
+      const rolesNameToTsKey = {};
+      const rolesStatements = Object.entries(schema6.roles).map((it) => {
+        const fields = it[1];
+        rolesNameToTsKey[fields.name] = it[0];
+        return `export const ${withCasing3(it[0], casing2)} = pgRole("${fields.name}", ${!fields.createDb && !fields.createRole && fields.inherit ? "" : `${`, { ${fields.createDb ? `createDb: true,` : ""}${fields.createRole ? ` createRole: true,` : ""}${!fields.inherit ? ` inherit: false ` : ""}`.trimChar(",")}}`} );
+`;
+      }).join("");
+      const tableStatements = Object.values(schema6.tables).map((table6) => {
+        const tableSchema = schemas[table6.schema];
+        const paramName = paramNameFor2(table6.name, tableSchema);
+        const func = tableSchema ? `${tableSchema}.table` : "pgTable";
+        let statement = `export const ${withCasing3(paramName, casing2)} = ${func}("${table6.name}", {
+`;
+        statement += createTableColumns4(
+          table6.name,
+          Object.values(table6.columns),
+          Object.values(table6.foreignKeys),
+          enumTypes,
+          schemas,
+          casing2,
+          schema6.internal
+        );
+        statement += "}";
+        if (Object.keys(table6.indexes).length > 0 || Object.values(table6.foreignKeys).length > 0 || Object.values(table6.policies).length > 0 || Object.keys(table6.compositePrimaryKeys).length > 0 || Object.keys(table6.uniqueConstraints).length > 0 || Object.keys(table6.checkConstraints).length > 0) {
+          statement += ", ";
+          statement += "(table) => [";
+          statement += createTableIndexes4(table6.name, Object.values(table6.indexes), casing2);
+          statement += createTableFKs4(Object.values(table6.foreignKeys), schemas, casing2);
+          statement += createTablePKs4(
+            Object.values(table6.compositePrimaryKeys),
+            casing2
+          );
+          statement += createTableUniques4(
+            Object.values(table6.uniqueConstraints),
+            casing2
+          );
+          statement += createTablePolicies2(
+            Object.values(table6.policies),
+            casing2,
+            rolesNameToTsKey
+          );
+          statement += createTableChecks4(
+            Object.values(table6.checkConstraints),
+            casing2
+          );
+          statement += "\n]";
+        }
+        statement += ");";
+        return statement;
+      });
+      const viewsStatements = Object.values(schema6.views).map((it) => {
+        const viewSchema = schemas[it.schema];
+        const paramName = paramNameFor2(it.name, viewSchema);
+        const func = viewSchema ? it.materialized ? `${viewSchema}.materializedView` : `${viewSchema}.view` : it.materialized ? "pgMaterializedView" : "pgView";
+        const withOption = it.with ?? "";
+        const as = `sql\`${it.definition}\``;
+        const tablespace = it.tablespace ?? "";
+        const columns = createTableColumns4(
+          "",
+          Object.values(it.columns),
+          [],
+          enumTypes,
+          schemas,
+          casing2,
+          schema6.internal
+        );
+        let statement = `export const ${withCasing3(paramName, casing2)} = ${func}("${it.name}", {${columns}})`;
+        statement += tablespace ? `.tablespace("${tablespace}")` : "";
+        statement += withOption ? `.with(${JSON.stringify(withOption)})` : "";
+        statement += `.as(${as});`;
+        return statement;
+      }).join("\n\n");
+      const uniquePgImports = ["pgTable", ...new Set(imports.pg)];
+      const importsTs = `import { ${uniquePgImports.join(
+        ", "
+      )} } from "drizzle-orm/pg-core"
+import { sql } from "drizzle-orm"
+
+`;
+      let decalrations = schemaStatements;
+      decalrations += rolesStatements;
+      decalrations += enumStatements;
+      decalrations += sequencesStatements;
+      decalrations += "\n";
+      decalrations += tableStatements.join("\n\n");
+      decalrations += "\n";
+      decalrations += viewsStatements;
+      const file = importsTs + decalrations;
+      const schemaEntry = `
+    {
+      ${Object.values(schema6.tables).map((it) => withCasing3(it.name, casing2)).join(",\n")}
+    }
+  `;
+      return { file, imports: importsTs, decalrations, schemaEntry };
+    };
+    isCyclic4 = (fk5) => {
+      const key = `${fk5.tableFrom}-${fk5.tableTo}`;
+      const reverse = `${fk5.tableTo}-${fk5.tableFrom}`;
+      return relations4.has(key) && relations4.has(reverse);
+    };
+    isSelf4 = (fk5) => {
+      return fk5.tableFrom === fk5.tableTo;
+    };
+    buildArrayDefault2 = (defaultValue, typeName) => {
+      if (typeof defaultValue === "string" && !(defaultValue.startsWith("{") || defaultValue.startsWith("'{"))) {
+        return `sql\`${defaultValue}\``;
+      }
+      defaultValue = defaultValue.substring(2, defaultValue.length - 2);
+      return `[${defaultValue.split(/\s*,\s*/g).map((value) => {
+        if (typeName === "json" || typeName === "jsonb") {
+          return value.substring(1, value.length - 1).replaceAll("\\", "");
+        }
+        return value;
+      }).join(", ")}]`;
+    };
+    mapDefault2 = (tableName, type, name, enumTypes, typeSchema, defaultValue, internals) => {
+      var _a2, _b, _c, _d;
+      const isExpression = ((_b = (_a2 = internals == null ? void 0 : internals.tables[tableName]) == null ? void 0 : _a2.columns[name]) == null ? void 0 : _b.isDefaultAnExpression) ?? false;
+      const isArray = ((_d = (_c = internals == null ? void 0 : internals.tables[tableName]) == null ? void 0 : _c.columns[name]) == null ? void 0 : _d.isArray) ?? false;
+      const lowered = type.toLowerCase().replace("[]", "");
+      if (isArray) {
+        return typeof defaultValue !== "undefined" ? `.default(${buildArrayDefault2(defaultValue, lowered)})` : "";
+      }
+      if (enumTypes.has(`${typeSchema}.${type.replace("[]", "")}`)) {
+        return typeof defaultValue !== "undefined" ? `.default(${mapColumnDefault4(unescapeSingleQuotes(defaultValue, true), isExpression)})` : "";
+      }
+      if (lowered.startsWith("integer")) {
+        return typeof defaultValue !== "undefined" ? `.default(${mapColumnDefault4(defaultValue, isExpression)})` : "";
+      }
+      if (lowered.startsWith("smallint")) {
+        return typeof defaultValue !== "undefined" ? `.default(${mapColumnDefault4(defaultValue, isExpression)})` : "";
+      }
+      if (lowered.startsWith("bigint")) {
+        return typeof defaultValue !== "undefined" ? `.default(${mapColumnDefault4(defaultValue, isExpression)})` : "";
+      }
+      if (lowered.startsWith("boolean")) {
+        return typeof defaultValue !== "undefined" ? `.default(${mapColumnDefault4(defaultValue, isExpression)})` : "";
+      }
+      if (lowered.startsWith("double precision")) {
+        return typeof defaultValue !== "undefined" ? `.default(${mapColumnDefault4(defaultValue, isExpression)})` : "";
+      }
+      if (lowered.startsWith("real")) {
+        return typeof defaultValue !== "undefined" ? `.default(${mapColumnDefault4(defaultValue, isExpression)})` : "";
+      }
+      if (lowered.startsWith("uuid")) {
+        return defaultValue === "gen_random_uuid()" ? ".defaultRandom()" : defaultValue ? `.default(sql\`${defaultValue}\`)` : "";
+      }
+      if (lowered.startsWith("numeric")) {
+        defaultValue = defaultValue ? defaultValue.startsWith(`'`) && defaultValue.endsWith(`'`) ? defaultValue.substring(1, defaultValue.length - 1) : defaultValue : void 0;
+        return defaultValue ? `.default('${mapColumnDefault4(defaultValue, isExpression)}')` : "";
+      }
+      if (lowered.startsWith("timestamp")) {
+        return defaultValue === "now()" ? ".defaultNow()" : /^'\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}(\.\d+)?([+-]\d{2}(:\d{2})?)?'$/.test(defaultValue) ? `.default(${mapColumnDefault4(defaultValue, isExpression)})` : defaultValue ? `.default(sql\`${defaultValue}\`)` : "";
+      }
+      if (lowered.startsWith("time")) {
+        return defaultValue === "now()" ? ".defaultNow()" : /^'\d{2}:\d{2}(:\d{2})?(\.\d+)?'$/.test(defaultValue) ? `.default(${mapColumnDefault4(defaultValue, isExpression)})` : defaultValue ? `.default(sql\`${defaultValue}\`)` : "";
+      }
+      if (lowered.startsWith("interval")) {
+        return defaultValue ? `.default(${mapColumnDefault4(defaultValue, isExpression)})` : "";
+      }
+      if (lowered === "date") {
+        return defaultValue === "now()" ? ".defaultNow()" : /^'\d{4}-\d{2}-\d{2}'$/.test(defaultValue) ? `.default(${defaultValue})` : defaultValue ? `.default(sql\`${defaultValue}\`)` : "";
+      }
+      if (lowered.startsWith("text")) {
+        return typeof defaultValue !== "undefined" ? `.default(${mapColumnDefault4(unescapeSingleQuotes(defaultValue, true), isExpression)})` : "";
+      }
+      if (lowered.startsWith("jsonb")) {
+        const def = typeof defaultValue !== "undefined" ? defaultValue.replace(/::(.*?)(? {
+      var _a2, _b;
+      const isExpression = ((_b = (_a2 = internals == null ? void 0 : internals.tables[tableName]) == null ? void 0 : _a2.columns[name]) == null ? void 0 : _b.isDefaultAnExpression) ?? false;
+      const lowered = type.toLowerCase().replace("[]", "");
+      if (enumTypes.has(`${typeSchema}.${type.replace("[]", "")}`)) {
+        let out = `${withCasing3(name, casing2)}: ${withCasing3(paramNameFor2(type.replace("[]", ""), typeSchema), casing2)}(${dbColumnName4({ name, casing: casing2 })})`;
+        return out;
+      }
+      if (lowered.startsWith("serial")) {
+        return `${withCasing3(name, casing2)}: serial(${dbColumnName4({ name, casing: casing2 })})`;
+      }
+      if (lowered.startsWith("smallserial")) {
+        return `${withCasing3(name, casing2)}: smallserial(${dbColumnName4({ name, casing: casing2 })})`;
+      }
+      if (lowered.startsWith("bigserial")) {
+        return `${withCasing3(name, casing2)}: bigserial(${dbColumnName4({ name, casing: casing2, withMode: true })}{ mode: "bigint" })`;
+      }
+      if (lowered.startsWith("integer")) {
+        let out = `${withCasing3(name, casing2)}: integer(${dbColumnName4({ name, casing: casing2 })})`;
+        return out;
+      }
+      if (lowered.startsWith("smallint")) {
+        let out = `${withCasing3(name, casing2)}: smallint(${dbColumnName4({ name, casing: casing2 })})`;
+        return out;
+      }
+      if (lowered.startsWith("bigint")) {
+        let out = `// You can use { mode: "bigint" } if numbers are exceeding js number limitations
+	`;
+        out += `${withCasing3(name, casing2)}: bigint(${dbColumnName4({ name, casing: casing2, withMode: true })}{ mode: "number" })`;
+        return out;
+      }
+      if (lowered.startsWith("boolean")) {
+        let out = `${withCasing3(name, casing2)}: boolean(${dbColumnName4({ name, casing: casing2 })})`;
+        return out;
+      }
+      if (lowered.startsWith("double precision")) {
+        let out = `${withCasing3(name, casing2)}: doublePrecision(${dbColumnName4({ name, casing: casing2 })})`;
+        return out;
+      }
+      if (lowered.startsWith("real")) {
+        let out = `${withCasing3(name, casing2)}: real(${dbColumnName4({ name, casing: casing2 })})`;
+        return out;
+      }
+      if (lowered.startsWith("uuid")) {
+        let out = `${withCasing3(name, casing2)}: uuid(${dbColumnName4({ name, casing: casing2 })})`;
+        return out;
+      }
+      if (lowered.startsWith("numeric")) {
+        let params;
+        if (lowered.length > 7) {
+          const [precision, scale] = lowered.slice(8, lowered.length - 1).split(",");
+          params = { precision, scale };
+        }
+        let out = params ? `${withCasing3(name, casing2)}: numeric(${dbColumnName4({ name, casing: casing2, withMode: true })}${timeConfig2(params)})` : `${withCasing3(name, casing2)}: numeric(${dbColumnName4({ name, casing: casing2 })})`;
+        return out;
+      }
+      if (lowered.startsWith("timestamp")) {
+        const withTimezone = lowered.includes("with time zone");
+        let precision = lowered.startsWith("timestamp(") ? Number(lowered.split(" ")[0].substring("timestamp(".length, lowered.split(" ")[0].length - 1)) : null;
+        precision = precision ? precision : null;
+        const params = timeConfig2({
+          precision,
+          withTimezone,
+          mode: "'string'"
+        });
+        let out = params ? `${withCasing3(name, casing2)}: timestamp(${dbColumnName4({ name, casing: casing2, withMode: true })}${params})` : `${withCasing3(name, casing2)}: timestamp(${dbColumnName4({ name, casing: casing2 })})`;
+        return out;
+      }
+      if (lowered.startsWith("time")) {
+        const withTimezone = lowered.includes("with time zone");
+        let precision = lowered.startsWith("time(") ? Number(lowered.split(" ")[0].substring("time(".length, lowered.split(" ")[0].length - 1)) : null;
+        precision = precision ? precision : null;
+        const params = timeConfig2({ precision, withTimezone });
+        let out = params ? `${withCasing3(name, casing2)}: time(${dbColumnName4({ name, casing: casing2, withMode: true })}${params})` : `${withCasing3(name, casing2)}: time(${dbColumnName4({ name, casing: casing2 })})`;
+        return out;
+      }
+      if (lowered.startsWith("interval")) {
+        const params = intervalConfig(lowered);
+        let out = params ? `${withCasing3(name, casing2)}: interval(${dbColumnName4({ name, casing: casing2, withMode: true })}${params})` : `${withCasing3(name, casing2)}: interval(${dbColumnName4({ name, casing: casing2 })})`;
+        return out;
+      }
+      if (lowered === "date") {
+        let out = `${withCasing3(name, casing2)}: date(${dbColumnName4({ name, casing: casing2 })})`;
+        return out;
+      }
+      if (lowered.startsWith("text")) {
+        let out = `${withCasing3(name, casing2)}: text(${dbColumnName4({ name, casing: casing2 })})`;
+        return out;
+      }
+      if (lowered.startsWith("jsonb")) {
+        let out = `${withCasing3(name, casing2)}: jsonb(${dbColumnName4({ name, casing: casing2 })})`;
+        return out;
+      }
+      if (lowered.startsWith("json")) {
+        let out = `${withCasing3(name, casing2)}: json(${dbColumnName4({ name, casing: casing2 })})`;
+        return out;
+      }
+      if (lowered.startsWith("inet")) {
+        let out = `${withCasing3(name, casing2)}: inet(${dbColumnName4({ name, casing: casing2 })})`;
+        return out;
+      }
+      if (lowered.startsWith("cidr")) {
+        let out = `${withCasing3(name, casing2)}: cidr(${dbColumnName4({ name, casing: casing2 })})`;
+        return out;
+      }
+      if (lowered.startsWith("macaddr8")) {
+        let out = `${withCasing3(name, casing2)}: macaddr8(${dbColumnName4({ name, casing: casing2 })})`;
+        return out;
+      }
+      if (lowered.startsWith("macaddr")) {
+        let out = `${withCasing3(name, casing2)}: macaddr(${dbColumnName4({ name, casing: casing2 })})`;
+        return out;
+      }
+      if (lowered.startsWith("varchar")) {
+        let out;
+        if (lowered.length !== 7) {
+          out = `${withCasing3(name, casing2)}: varchar(${dbColumnName4({ name, casing: casing2, withMode: true })}{ length: ${lowered.substring(8, lowered.length - 1)} })`;
+        } else {
+          out = `${withCasing3(name, casing2)}: varchar(${dbColumnName4({ name, casing: casing2 })})`;
+        }
+        return out;
+      }
+      if (lowered.startsWith("point")) {
+        let out = `${withCasing3(name, casing2)}: point(${dbColumnName4({ name, casing: casing2 })})`;
+        return out;
+      }
+      if (lowered.startsWith("line")) {
+        let out = `${withCasing3(name, casing2)}: point(${dbColumnName4({ name, casing: casing2 })})`;
+        return out;
+      }
+      if (lowered.startsWith("geometry")) {
+        let out = "";
+        let isGeoUnknown = false;
+        if (lowered.length !== 8) {
+          const geometryOptions = lowered.slice(9, -1).split(",");
+          if (geometryOptions.length === 1 && geometryOptions[0] !== "") {
+            out = `${withCasing3(name, casing2)}: geometry(${dbColumnName4({ name, casing: casing2, withMode: true })}{ type: "${geometryOptions[0]}" })`;
+          } else if (geometryOptions.length === 2) {
+            out = `${withCasing3(name, casing2)}: geometry(${dbColumnName4({ name, casing: casing2, withMode: true })}{ type: "${geometryOptions[0]}", srid: ${geometryOptions[1]} })`;
+          } else {
+            isGeoUnknown = true;
+          }
+        } else {
+          out = `${withCasing3(name, casing2)}: geometry(${dbColumnName4({ name, casing: casing2 })})`;
+        }
+        if (isGeoUnknown) {
+          let unknown2 = `// TODO: failed to parse geometry type because found more than 2 options inside geometry function '${type}'
+// Introspect is currently supporting only type and srid options
+`;
+          unknown2 += `	${withCasing3(name, casing2)}: unknown("${name}")`;
+          return unknown2;
+        }
+        return out;
+      }
+      if (lowered.startsWith("vector")) {
+        let out;
+        if (lowered.length !== 6) {
+          out = `${withCasing3(name, casing2)}: vector(${dbColumnName4({ name, casing: casing2, withMode: true })}{ dimensions: ${lowered.substring(7, lowered.length - 1)} })`;
+        } else {
+          out = `${withCasing3(name, casing2)}: vector(${dbColumnName4({ name, casing: casing2 })})`;
+        }
+        return out;
+      }
+      if (lowered.startsWith("char")) {
+        let out;
+        if (lowered.length !== 4) {
+          out = `${withCasing3(name, casing2)}: char(${dbColumnName4({ name, casing: casing2, withMode: true })}{ length: ${lowered.substring(5, lowered.length - 1)} })`;
+        } else {
+          out = `${withCasing3(name, casing2)}: char(${dbColumnName4({ name, casing: casing2 })})`;
+        }
+        return out;
+      }
+      let unknown = `// TODO: failed to parse database type '${type}'
+`;
+      unknown += `	${withCasing3(name, casing2)}: unknown("${name}")`;
+      return unknown;
+    };
+    dimensionsInArray2 = (size) => {
+      let res = "";
+      if (typeof size === "undefined") return res;
+      for (let i4 = 0; i4 < size; i4++) {
+        res += ".array()";
+      }
+      return res;
+    };
+    createTableColumns4 = (tableName, columns, fks, enumTypes, schemas, casing2, internals) => {
+      let statement = "";
+      const oneColumnsFKs = Object.values(fks).filter((it) => {
+        return !isSelf4(it);
+      }).filter((it) => it.columnsFrom.length === 1);
+      const fkByColumnName = oneColumnsFKs.reduce((res, it) => {
+        const arr = res[it.columnsFrom[0]] || [];
+        arr.push(it);
+        res[it.columnsFrom[0]] = arr;
+        return res;
+      }, {});
+      columns.forEach((it) => {
+        var _a2, _b, _c, _d;
+        const columnStatement = column9(
+          tableName,
+          it.type,
+          it.name,
+          enumTypes,
+          it.typeSchema ?? "public",
+          casing2,
+          it.default,
+          internals
+        );
+        statement += "	";
+        statement += columnStatement;
+        if ((_b = (_a2 = internals == null ? void 0 : internals.tables[tableName]) == null ? void 0 : _a2.columns[it.name]) == null ? void 0 : _b.isArray) {
+          statement += dimensionsInArray2((_d = (_c = internals == null ? void 0 : internals.tables[tableName]) == null ? void 0 : _c.columns[it.name]) == null ? void 0 : _d.dimensions);
+        }
+        statement += mapDefault2(tableName, it.type, it.name, enumTypes, it.typeSchema ?? "public", it.default, internals);
+        statement += it.primaryKey ? ".primaryKey()" : "";
+        statement += it.notNull && !it.identity ? ".notNull()" : "";
+        statement += it.identity ? generateIdentityParams2(it.identity) : "";
+        statement += it.generated ? `.generatedAlwaysAs(sql\`${it.generated.as}\`)` : "";
+        statement += ",\n";
+      });
+      return statement;
+    };
+    createTableIndexes4 = (tableName, idxs, casing2) => {
+      let statement = "";
+      idxs.forEach((it) => {
+        let idxKey = it.name.startsWith(tableName) && it.name !== tableName ? it.name.slice(tableName.length + 1) : it.name;
+        idxKey = idxKey.endsWith("_index") ? idxKey.slice(0, -"_index".length) + "_idx" : idxKey;
+        idxKey = withCasing3(idxKey, casing2);
+        const indexGeneratedName = indexName2(
+          tableName,
+          it.columns.map((it2) => it2.expression)
+        );
+        const escapedIndexName = indexGeneratedName === it.name ? "" : `"${it.name}"`;
+        statement += `
+	`;
+        statement += it.isUnique ? "uniqueIndex(" : "index(";
+        statement += `${escapedIndexName})`;
+        statement += `${it.concurrently ? `.concurrently()` : ""}`;
+        statement += `.using("${it.method}", ${it.columns.map((it2) => {
+          if (it2.isExpression) {
+            return `sql\`${it2.expression}\``;
+          } else {
+            return `table.${withCasing3(it2.expression, casing2)}${it2.asc ? ".asc()" : ".desc()"}${it2.nulls === "first" ? ".nullsFirst()" : ".nullsLast()"}${it2.opclass ? `.op("${it2.opclass}")` : ""}`;
+          }
+        }).join(", ")})`;
+        statement += it.where ? `.where(sql\`${it.where}\`)` : "";
+        function reverseLogic(mappedWith) {
+          let reversedString = "{";
+          for (const key in mappedWith) {
+            if (mappedWith.hasOwnProperty(key)) {
+              reversedString += `${key}: "${mappedWith[key]}",`;
+            }
+          }
+          reversedString = reversedString.length > 1 ? reversedString.slice(0, reversedString.length - 1) : reversedString;
+          return `${reversedString}}`;
+        }
+        statement += it.with && Object.keys(it.with).length > 0 ? `.with(${reverseLogic(it.with)})` : "";
+        statement += `,`;
+      });
+      return statement;
+    };
+    createTablePKs4 = (pks, casing2) => {
+      let statement = "";
+      pks.forEach((it) => {
+        statement += `
+	`;
+        statement += "primaryKey({ columns: [";
+        statement += `${it.columns.map((c3) => {
+          return `table.${withCasing3(c3, casing2)}`;
+        }).join(", ")}]${it.name ? `, name: "${it.name}"` : ""}}`;
+        statement += ")";
+        statement += `,`;
+      });
+      return statement;
+    };
+    createTablePolicies2 = (policies, casing2, rolesNameToTsKey = {}) => {
+      let statement = "";
+      policies.forEach((it) => {
+        var _a2, _b, _c;
+        const idxKey = withCasing3(it.name, casing2);
+        const mappedItTo = (_a2 = it.to) == null ? void 0 : _a2.map((v6) => {
+          return rolesNameToTsKey[v6] ? withCasing3(rolesNameToTsKey[v6], casing2) : `"${v6}"`;
+        });
+        statement += `
+	`;
+        statement += "pgPolicy(";
+        statement += `"${it.name}", { `;
+        statement += `as: "${(_b = it.as) == null ? void 0 : _b.toLowerCase()}", for: "${(_c = it.for) == null ? void 0 : _c.toLowerCase()}", to: [${mappedItTo == null ? void 0 : mappedItTo.join(", ")}]${it.using ? `, using: sql\`${it.using}\`` : ""}${it.withCheck ? `, withCheck: sql\`${it.withCheck}\` ` : ""}`;
+        statement += ` }),`;
+      });
+      return statement;
+    };
+    createTableUniques4 = (unqs, casing2) => {
+      let statement = "";
+      unqs.forEach((it) => {
+        statement += `
+	`;
+        statement += "unique(";
+        statement += `"${it.name}")`;
+        statement += `.on(${it.columns.map((it2) => `table.${withCasing3(it2, casing2)}`).join(", ")})`;
+        statement += it.nullsNotDistinct ? `.nullsNotDistinct()` : "";
+        statement += `,`;
+      });
+      return statement;
+    };
+    createTableChecks4 = (checkConstraints, casing2) => {
+      let statement = "";
+      checkConstraints.forEach((it) => {
+        statement += `
+	`;
+        statement += "check(";
+        statement += `"${it.name}", `;
+        statement += `sql\`${it.value}\`)`;
+        statement += `,`;
+      });
+      return statement;
+    };
+    createTableFKs4 = (fks, schemas, casing2) => {
+      let statement = "";
+      fks.forEach((it) => {
+        const tableSchema = schemas[it.schemaTo || ""];
+        const paramName = paramNameFor2(it.tableTo, tableSchema);
+        const isSelf5 = it.tableTo === it.tableFrom;
+        const tableTo = isSelf5 ? "table" : `${withCasing3(paramName, casing2)}`;
+        statement += `
+	`;
+        statement += `foreignKey({
+`;
+        statement += `			columns: [${it.columnsFrom.map((i4) => `table.${withCasing3(i4, casing2)}`).join(", ")}],
+`;
+        statement += `			foreignColumns: [${it.columnsTo.map((i4) => `${tableTo}.${withCasing3(i4, casing2)}`).join(", ")}],
+`;
+        statement += `			name: "${it.name}"
+`;
+        statement += `		})`;
+        statement += it.onUpdate && it.onUpdate !== "no action" ? `.onUpdate("${it.onUpdate}")` : "";
+        statement += it.onDelete && it.onDelete !== "no action" ? `.onDelete("${it.onDelete}")` : "";
+        statement += `,`;
+      });
+      return statement;
+    };
+  }
+});
+
+// src/introspect-singlestore.ts
+var import_casing6, singlestoreImportsList, timeConfig3, binaryConfig2, importsPatch3, escapeColumnKey5, prepareCasing2, dbColumnName5, schemaToTypeScript5, mapColumnDefault5, mapColumnDefaultForJson2, column10, createTableColumns5, createTableIndexes5, createTableUniques5, createTablePKs5;
+var init_introspect_singlestore = __esm({
+  "src/introspect-singlestore.ts"() {
+    "use strict";
+    import_casing6 = require("drizzle-orm/casing");
+    init_utils();
+    init_global();
+    init_singlestoreSerializer();
+    singlestoreImportsList = /* @__PURE__ */ new Set([
+      "singlestoreTable",
+      "singlestoreEnum",
+      "bigint",
+      "binary",
+      "boolean",
+      "char",
+      "date",
+      "datetime",
+      "decimal",
+      "double",
+      "float",
+      "int",
+      "json",
+      // TODO: add new type BSON
+      // TODO: add new type Blob
+      // TODO: add new type UUID
+      // TODO: add new type GUID
+      // TODO: add new type Vector
+      // TODO: add new type GeoPoint
+      "mediumint",
+      "real",
+      "serial",
+      "smallint",
+      "text",
+      "tinytext",
+      "mediumtext",
+      "longtext",
+      "time",
+      "timestamp",
+      "tinyint",
+      "varbinary",
+      "varchar",
+      "vector",
+      "year",
+      "enum"
+    ]);
+    timeConfig3 = (json) => {
+      json = Object.fromEntries(Object.entries(json).filter((it) => it[1]));
+      const keys = Object.keys(json);
+      if (keys.length === 0) return;
+      let statement = "{ ";
+      statement += keys.map((it) => `${it}: ${json[it]}`).join(", ");
+      statement += " }";
+      return statement;
+    };
+    binaryConfig2 = (json) => {
+      json = Object.fromEntries(Object.entries(json).filter((it) => it[1]));
+      const keys = Object.keys(json);
+      if (keys.length === 0) return;
+      let statement = "{ ";
+      statement += keys.map((it) => `${it}: ${json[it]}`).join(", ");
+      statement += " }";
+      return statement;
+    };
+    importsPatch3 = {
+      "double precision": "doublePrecision",
+      "timestamp without time zone": "timestamp"
+    };
+    escapeColumnKey5 = (value) => {
+      if (/^(?![a-zA-Z_$][a-zA-Z0-9_$]*$).+$/.test(value)) {
+        return `"${value}"`;
+      }
+      return value;
+    };
+    prepareCasing2 = (casing2) => (value) => {
+      if (casing2 === "preserve") {
+        return escapeColumnKey5(value);
+      }
+      if (casing2 === "camel") {
+        return escapeColumnKey5(value.camelCase());
+      }
+      assertUnreachable(casing2);
+    };
+    dbColumnName5 = ({ name, casing: casing2, withMode = false }) => {
+      if (casing2 === "preserve") {
+        return "";
+      }
+      if (casing2 === "camel") {
+        return (0, import_casing6.toCamelCase)(name) === name ? "" : withMode ? `"${name}", ` : `"${name}"`;
+      }
+      assertUnreachable(casing2);
+    };
+    schemaToTypeScript5 = (schema6, casing2) => {
+      const withCasing5 = prepareCasing2(casing2);
+      const imports = Object.values(schema6.tables).reduce(
+        (res, it) => {
+          const idxImports = Object.values(it.indexes).map((idx) => idx.isUnique ? "uniqueIndex" : "index");
+          const pkImports = Object.values(it.compositePrimaryKeys).map(
+            (it2) => "primaryKey"
+          );
+          const uniqueImports = Object.values(it.uniqueConstraints).map(
+            (it2) => "unique"
+          );
+          res.singlestore.push(...idxImports);
+          res.singlestore.push(...pkImports);
+          res.singlestore.push(...uniqueImports);
+          const columnImports = Object.values(it.columns).map((col) => {
+            let patched = importsPatch3[col.type] ?? col.type;
+            patched = patched.startsWith("varchar(") ? "varchar" : patched;
+            patched = patched.startsWith("char(") ? "char" : patched;
+            patched = patched.startsWith("binary(") ? "binary" : patched;
+            patched = patched.startsWith("decimal(") ? "decimal" : patched;
+            patched = patched.startsWith("smallint(") ? "smallint" : patched;
+            patched = patched.startsWith("enum(") ? "singlestoreEnum" : patched;
+            patched = patched.startsWith("datetime(") ? "datetime" : patched;
+            patched = patched.startsWith("varbinary(") ? "varbinary" : patched;
+            patched = patched.startsWith("int(") ? "int" : patched;
+            patched = patched.startsWith("double(") ? "double" : patched;
+            patched = patched.startsWith("float(") ? "float" : patched;
+            patched = patched.startsWith("int unsigned") ? "int" : patched;
+            patched = patched.startsWith("tinyint(") ? "tinyint" : patched;
+            patched = patched.startsWith("mediumint(") ? "mediumint" : patched;
+            patched = patched.startsWith("bigint(") ? "bigint" : patched;
+            patched = patched.startsWith("tinyint unsigned") ? "tinyint" : patched;
+            patched = patched.startsWith("smallint unsigned") ? "smallint" : patched;
+            patched = patched.startsWith("mediumint unsigned") ? "mediumint" : patched;
+            patched = patched.startsWith("bigint unsigned") ? "bigint" : patched;
+            return patched;
+          }).filter((type) => {
+            return singlestoreImportsList.has(type);
+          });
+          res.singlestore.push(...columnImports);
+          return res;
+        },
+        { singlestore: [] }
+      );
+      const tableStatements = Object.values(schema6.tables).map((table6) => {
+        const func = "singlestoreTable";
+        let statement = "";
+        if (imports.singlestore.includes(withCasing5(table6.name))) {
+          statement = `// Table name is in conflict with ${withCasing5(
+            table6.name
+          )} import.
+// Please change to any other name, that is not in imports list
+`;
+        }
+        statement += `export const ${withCasing5(table6.name)} = ${func}("${table6.name}", {
+`;
+        statement += createTableColumns5(
+          Object.values(table6.columns),
+          withCasing5,
+          casing2,
+          table6.name,
+          schema6
+        );
+        statement += "}";
+        if (Object.keys(table6.indexes).length > 0 || Object.keys(table6.compositePrimaryKeys).length > 0 || Object.keys(table6.uniqueConstraints).length > 0) {
+          statement += ",\n";
+          statement += "(table) => [";
+          statement += createTableIndexes5(
+            table6.name,
+            Object.values(table6.indexes),
+            withCasing5
+          );
+          statement += createTablePKs5(
+            Object.values(table6.compositePrimaryKeys),
+            withCasing5
+          );
+          statement += createTableUniques5(
+            Object.values(table6.uniqueConstraints),
+            withCasing5
+          );
+          statement += "\n]";
+        }
+        statement += ");";
+        return statement;
+      });
+      const uniqueSingleStoreImports = [
+        "singlestoreTable",
+        "singlestoreSchema",
+        "AnySingleStoreColumn",
+        ...new Set(imports.singlestore)
+      ];
+      const importsTs = `import { ${uniqueSingleStoreImports.join(
+        ", "
+      )} } from "drizzle-orm/singlestore-core"
+import { sql } from "drizzle-orm"
+
+`;
+      let decalrations = "";
+      decalrations += tableStatements.join("\n\n");
+      decalrations += "\n";
+      const file = importsTs + decalrations;
+      const schemaEntry = `
+    {
+      ${Object.values(schema6.tables).map((it) => withCasing5(it.name)).join(",")}
+    }
+  `;
+      return {
+        file,
+        // backward compatible, print to file
+        imports: importsTs,
+        decalrations,
+        schemaEntry
+      };
+    };
+    mapColumnDefault5 = (defaultValue, isExpression) => {
+      if (isExpression) {
+        return `sql\`${defaultValue}\``;
+      }
+      return defaultValue;
+    };
+    mapColumnDefaultForJson2 = (defaultValue) => {
+      if (typeof defaultValue === "string" && defaultValue.startsWith("('") && defaultValue.endsWith("')")) {
+        return defaultValue.substring(2, defaultValue.length - 2);
+      }
+      return defaultValue;
+    };
+    column10 = (type, name, casing2, rawCasing, defaultValue, autoincrement, onUpdate, isExpression) => {
+      let lowered = type;
+      if (!type.startsWith("enum(")) {
+        lowered = type.toLowerCase();
+      }
+      if (lowered === "serial") {
+        return `${casing2(name)}: serial(${dbColumnName5({ name, casing: rawCasing })})`;
+      }
+      if (lowered.startsWith("int")) {
+        const isUnsigned = lowered.includes("unsigned");
+        const columnName = dbColumnName5({ name, casing: rawCasing, withMode: isUnsigned });
+        let out = `${casing2(name)}: int(${columnName}${isUnsigned ? "{ unsigned: true }" : ""})`;
+        out += autoincrement ? `.autoincrement()` : "";
+        out += typeof defaultValue !== "undefined" ? `.default(${mapColumnDefault5(defaultValue, isExpression)})` : "";
+        return out;
+      }
+      if (lowered.startsWith("tinyint")) {
+        const isUnsigned = lowered.includes("unsigned");
+        const columnName = dbColumnName5({ name, casing: rawCasing, withMode: isUnsigned });
+        let out = `${casing2(name)}: tinyint(${columnName}${isUnsigned ? "{ unsigned: true }" : ""})`;
+        out += autoincrement ? `.autoincrement()` : "";
+        out += typeof defaultValue !== "undefined" ? `.default(${mapColumnDefault5(defaultValue, isExpression)})` : "";
+        return out;
+      }
+      if (lowered.startsWith("smallint")) {
+        const isUnsigned = lowered.includes("unsigned");
+        const columnName = dbColumnName5({ name, casing: rawCasing, withMode: isUnsigned });
+        let out = `${casing2(name)}: smallint(${columnName}${isUnsigned ? "{ unsigned: true }" : ""})`;
+        out += autoincrement ? `.autoincrement()` : "";
+        out += defaultValue ? `.default(${mapColumnDefault5(defaultValue, isExpression)})` : "";
+        return out;
+      }
+      if (lowered.startsWith("mediumint")) {
+        const isUnsigned = lowered.includes("unsigned");
+        const columnName = dbColumnName5({ name, casing: rawCasing, withMode: isUnsigned });
+        let out = `${casing2(name)}: mediumint(${columnName}${isUnsigned ? "{ unsigned: true }" : ""})`;
+        out += autoincrement ? `.autoincrement()` : "";
+        out += defaultValue ? `.default(${mapColumnDefault5(defaultValue, isExpression)})` : "";
+        return out;
+      }
+      if (lowered.startsWith("bigint")) {
+        const isUnsigned = lowered.includes("unsigned");
+        let out = `${casing2(name)}: bigint(${dbColumnName5({ name, casing: rawCasing, withMode: true })}{ mode: "number"${isUnsigned ? ", unsigned: true" : ""} })`;
+        out += autoincrement ? `.autoincrement()` : "";
+        out += defaultValue ? `.default(${mapColumnDefault5(defaultValue, isExpression)})` : "";
+        return out;
+      }
+      if (lowered === "boolean") {
+        let out = `${casing2(name)}: boolean(${dbColumnName5({ name, casing: rawCasing })})`;
+        out += defaultValue ? `.default(${mapColumnDefault5(defaultValue, isExpression)})` : "";
+        return out;
+      }
+      if (lowered.startsWith("double")) {
+        let params;
+        if (lowered.length > (lowered.includes("unsigned") ? 15 : 6)) {
+          const [precision, scale] = lowered.slice(7, lowered.length - (1 + (lowered.includes("unsigned") ? 9 : 0))).split(",");
+          params = { precision, scale };
+        }
+        if (lowered.includes("unsigned")) {
+          params = { ...params ?? {}, unsigned: true };
+        }
+        const timeConfigParams = params ? timeConfig3(params) : void 0;
+        let out = params ? `${casing2(name)}: double(${dbColumnName5({ name, casing: rawCasing, withMode: timeConfigParams !== void 0 })}${timeConfig3(params)})` : `${casing2(name)}: double(${dbColumnName5({ name, casing: rawCasing })})`;
+        out += defaultValue ? `.default(${mapColumnDefault5(defaultValue, isExpression)})` : "";
+        return out;
+      }
+      if (lowered.startsWith("float")) {
+        let params;
+        if (lowered.length > (lowered.includes("unsigned") ? 14 : 5)) {
+          const [precision, scale] = lowered.slice(6, lowered.length - (1 + (lowered.includes("unsigned") ? 9 : 0))).split(",");
+          params = { precision, scale };
+        }
+        if (lowered.includes("unsigned")) {
+          params = { ...params ?? {}, unsigned: true };
+        }
+        let out = `${casing2(name)}: float(${dbColumnName5({ name, casing: rawCasing })}${params ? timeConfig3(params) : ""})`;
+        out += defaultValue ? `.default(${mapColumnDefault5(defaultValue, isExpression)})` : "";
+        return out;
+      }
+      if (lowered === "real") {
+        let out = `${casing2(name)}: real(${dbColumnName5({ name, casing: rawCasing })})`;
+        out += defaultValue ? `.default(${mapColumnDefault5(defaultValue, isExpression)})` : "";
+        return out;
+      }
+      if (lowered.startsWith("timestamp")) {
+        const keyLength = "timestamp".length + 1;
+        let fsp = lowered.length > keyLength ? Number(lowered.substring(keyLength, lowered.length - 1)) : null;
+        fsp = fsp ? fsp : null;
+        const params = timeConfig3({ fsp, mode: "'string'" });
+        let out = params ? `${casing2(name)}: timestamp(${dbColumnName5({ name, casing: rawCasing, withMode: params !== void 0 })}${params})` : `${casing2(name)}: timestamp(${dbColumnName5({ name, casing: rawCasing })})`;
+        defaultValue = defaultValue === "now()" || defaultValue === "CURRENT_TIMESTAMP" ? ".defaultNow()" : defaultValue ? `.default(${mapColumnDefault5(defaultValue, isExpression)})` : "";
+        out += defaultValue;
+        let onUpdateNow = onUpdate ? ".onUpdateNow()" : "";
+        out += onUpdateNow;
+        return out;
+      }
+      if (lowered.startsWith("time")) {
+        const keyLength = "time".length + 1;
+        let fsp = lowered.length > keyLength ? Number(lowered.substring(keyLength, lowered.length - 1)) : null;
+        fsp = fsp ? fsp : null;
+        const params = timeConfig3({ fsp });
+        let out = params ? `${casing2(name)}: time(${dbColumnName5({ name, casing: rawCasing, withMode: params !== void 0 })}${params})` : `${casing2(name)}: time(${dbColumnName5({ name, casing: rawCasing })})`;
+        defaultValue = defaultValue === "now()" ? ".defaultNow()" : defaultValue ? `.default(${mapColumnDefault5(defaultValue, isExpression)})` : "";
+        out += defaultValue;
+        return out;
+      }
+      if (lowered === "date") {
+        let out = `// you can use { mode: 'date' }, if you want to have Date as type for this column
+	${casing2(
+          name
+        )}: date(${dbColumnName5({ name, casing: rawCasing, withMode: true })}{ mode: 'string' })`;
+        defaultValue = defaultValue === "now()" ? ".defaultNow()" : defaultValue ? `.default(${mapColumnDefault5(defaultValue, isExpression)})` : "";
+        out += defaultValue;
+        return out;
+      }
+      if (lowered === "text") {
+        let out = `${casing2(name)}: text(${dbColumnName5({ name, casing: rawCasing })})`;
+        out += defaultValue ? `.default(${mapColumnDefault5(defaultValue, isExpression)})` : "";
+        return out;
+      }
+      if (lowered === "tinytext") {
+        let out = `${casing2(name)}: tinytext(${dbColumnName5({ name, casing: rawCasing })})`;
+        out += defaultValue ? `.default(${mapColumnDefault5(defaultValue, isExpression)})` : "";
+        return out;
+      }
+      if (lowered === "mediumtext") {
+        let out = `${casing2(name)}: mediumtext(${dbColumnName5({ name, casing: rawCasing })})`;
+        out += defaultValue ? `.default(${mapColumnDefault5(defaultValue, isExpression)})` : "";
+        return out;
+      }
+      if (lowered === "longtext") {
+        let out = `${casing2(name)}: longtext(${dbColumnName5({ name, casing: rawCasing })})`;
+        out += defaultValue ? `.default(${mapColumnDefault5(defaultValue, isExpression)})` : "";
+        return out;
+      }
+      if (lowered === "year") {
+        let out = `${casing2(name)}: year(${dbColumnName5({ name, casing: rawCasing })})`;
+        out += defaultValue ? `.default(${mapColumnDefault5(defaultValue, isExpression)})` : "";
+        return out;
+      }
+      if (lowered === "json") {
+        let out = `${casing2(name)}: json(${dbColumnName5({ name, casing: rawCasing })})`;
+        out += defaultValue ? `.default(${mapColumnDefaultForJson2(defaultValue)})` : "";
+        return out;
+      }
+      if (lowered.startsWith("varchar")) {
+        let out = `${casing2(
+          name
+        )}: varchar(${dbColumnName5({ name, casing: rawCasing, withMode: true })}{ length: ${lowered.substring(
+          "varchar".length + 1,
+          lowered.length - 1
+        )} })`;
+        out += defaultValue ? `.default(${mapColumnDefault5(defaultValue, isExpression)})` : "";
+        return out;
+      }
+      if (lowered.startsWith("char")) {
+        let out = `${casing2(
+          name
+        )}: char(${dbColumnName5({ name, casing: rawCasing, withMode: true })}{ length: ${lowered.substring(
+          "char".length + 1,
+          lowered.length - 1
+        )} })`;
+        out += defaultValue ? `.default(${mapColumnDefault5(defaultValue, isExpression)})` : "";
+        return out;
+      }
+      if (lowered.startsWith("datetime")) {
+        let out = `// you can use { mode: 'date' }, if you want to have Date as type for this column
+	`;
+        const fsp = lowered.startsWith("datetime(") ? lowered.substring("datetime".length + 1, lowered.length - 1) : void 0;
+        out = fsp ? `${casing2(
+          name
+        )}: datetime(${dbColumnName5({ name, casing: rawCasing, withMode: true })}{ mode: 'string', fsp: ${lowered.substring(
+          "datetime".length + 1,
+          lowered.length - 1
+        )} })` : `${casing2(name)}: datetime(${dbColumnName5({ name, casing: rawCasing, withMode: true })}{ mode: 'string'})`;
+        defaultValue = defaultValue === "now()" ? ".defaultNow()" : defaultValue ? `.default(${mapColumnDefault5(defaultValue, isExpression)})` : "";
+        out += defaultValue;
+        return out;
+      }
+      if (lowered.startsWith("decimal")) {
+        let params;
+        if (lowered.length > (lowered.includes("unsigned") ? 16 : 7)) {
+          const [precision, scale] = lowered.slice(8, lowered.length - (1 + (lowered.includes("unsigned") ? 9 : 0))).split(",");
+          params = { precision, scale };
+        }
+        if (lowered.includes("unsigned")) {
+          params = { ...params ?? {}, unsigned: true };
+        }
+        const timeConfigParams = params ? timeConfig3(params) : void 0;
+        let out = params ? `${casing2(name)}: decimal(${dbColumnName5({ name, casing: rawCasing, withMode: timeConfigParams !== void 0 })}${timeConfigParams})` : `${casing2(name)}: decimal(${dbColumnName5({ name, casing: rawCasing })})`;
+        defaultValue = typeof defaultValue !== "undefined" ? `.default(${mapColumnDefault5(defaultValue, isExpression)})` : "";
+        out += defaultValue;
+        return out;
+      }
+      if (lowered.startsWith("binary")) {
+        const keyLength = "binary".length + 1;
+        let length = lowered.length > keyLength ? Number(lowered.substring(keyLength, lowered.length - 1)) : null;
+        length = length ? length : null;
+        const params = binaryConfig2({ length });
+        let out = params ? `${casing2(name)}: binary(${dbColumnName5({ name, casing: rawCasing, withMode: params !== void 0 })}${params})` : `${casing2(name)}: binary(${dbColumnName5({ name, casing: rawCasing })})`;
+        defaultValue = defaultValue ? `.default(${mapColumnDefault5(defaultValue, isExpression)})` : "";
+        out += defaultValue;
+        return out;
+      }
+      if (lowered.startsWith("enum")) {
+        const values = lowered.substring("enum".length + 1, lowered.length - 1);
+        let out = `${casing2(name)}: singlestoreEnum(${dbColumnName5({ name, casing: rawCasing, withMode: true })}[${values}])`;
+        out += defaultValue ? `.default(${mapColumnDefault5(defaultValue, isExpression)})` : "";
+        return out;
+      }
+      if (lowered.startsWith("varbinary")) {
+        const keyLength = "varbinary".length + 1;
+        let length = lowered.length > keyLength ? Number(lowered.substring(keyLength, lowered.length - 1)) : null;
+        length = length ? length : null;
+        const params = binaryConfig2({ length });
+        let out = params ? `${casing2(name)}: varbinary(${dbColumnName5({ name, casing: rawCasing, withMode: params !== void 0 })}${params})` : `${casing2(name)}: varbinary(${dbColumnName5({ name, casing: rawCasing })})`;
+        defaultValue = defaultValue ? `.default(${mapColumnDefault5(defaultValue, isExpression)})` : "";
+        out += defaultValue;
+        return out;
+      }
+      if (lowered.startsWith("vector")) {
+        const [dimensions, elementType] = lowered.substring("vector".length + 1, lowered.length - 1).split(",");
+        let out = `${casing2(name)}: vector(${dbColumnName5({ name, casing: rawCasing, withMode: true })}{ dimensions: ${dimensions}, elementType: ${elementType} })`;
+        out += defaultValue ? `.default(${mapColumnDefault5(defaultValue, isExpression)})` : "";
+        return out;
+      }
+      console.log("uknown", type);
+      return `// Warning: Can't parse ${type} from database
+	// ${type}Type: ${type}("${name}")`;
+    };
+    createTableColumns5 = (columns, casing2, rawCasing, tableName, schema6) => {
+      let statement = "";
+      columns.forEach((it) => {
+        var _a2, _b, _c;
+        statement += "	";
+        statement += column10(
+          it.type,
+          it.name,
+          casing2,
+          rawCasing,
+          it.default,
+          it.autoincrement,
+          it.onUpdate,
+          ((_c = (_b = (_a2 = schema6.internal) == null ? void 0 : _a2.tables[tableName]) == null ? void 0 : _b.columns[it.name]) == null ? void 0 : _c.isDefaultAnExpression) ?? false
+        );
+        statement += it.primaryKey ? ".primaryKey()" : "";
+        statement += it.notNull ? ".notNull()" : "";
+        statement += it.generated ? `.generatedAlwaysAs(sql\`${it.generated.as.replace(
+          /`/g,
+          "\\`"
+        )}\`, { mode: "${it.generated.type}" })` : "";
+        statement += ",\n";
+      });
+      return statement;
+    };
+    createTableIndexes5 = (tableName, idxs, casing2) => {
+      let statement = "";
+      idxs.forEach((it) => {
+        let idxKey = it.name.startsWith(tableName) && it.name !== tableName ? it.name.slice(tableName.length + 1) : it.name;
+        idxKey = idxKey.endsWith("_index") ? idxKey.slice(0, -"_index".length) + "_idx" : idxKey;
+        idxKey = casing2(idxKey);
+        const indexGeneratedName = indexName3(tableName, it.columns);
+        const escapedIndexName = indexGeneratedName === it.name ? "" : `"${it.name}"`;
+        statement += `
+	`;
+        statement += it.isUnique ? "uniqueIndex(" : "index(";
+        statement += `${escapedIndexName})`;
+        statement += `.on(${it.columns.map((it2) => `table.${casing2(it2)}`).join(", ")}),`;
+      });
+      return statement;
+    };
+    createTableUniques5 = (unqs, casing2) => {
+      let statement = "";
+      unqs.forEach((it) => {
+        statement += `
+	`;
+        statement += "unique(";
+        statement += `"${it.name}")`;
+        statement += `.on(${it.columns.map((it2) => `table.${casing2(it2)}`).join(", ")}),`;
+      });
+      return statement;
+    };
+    createTablePKs5 = (pks, casing2) => {
+      let statement = "";
+      pks.forEach((it) => {
+        let idxKey = casing2(it.name);
+        statement += `
+	`;
+        statement += "primaryKey({ columns: [";
+        statement += `${it.columns.map((c3) => {
+          return `table.${casing2(c3)}`;
+        }).join(", ")}]${it.name ? `, name: "${it.name}"` : ""}}`;
+        statement += "),";
+      });
+      return statement;
+    };
+  }
+});
+
+// src/cli/commands/introspect.ts
+var introspect_exports = {};
+__export(introspect_exports, {
+  introspectGel: () => introspectGel,
+  introspectLibSQL: () => introspectLibSQL,
+  introspectMysql: () => introspectMysql,
+  introspectPostgres: () => introspectPostgres,
+  introspectSingleStore: () => introspectSingleStore,
+  introspectSqlite: () => introspectSqlite,
+  relationsToTypeScript: () => relationsToTypeScript
+});
+var import_fs11, import_hanji14, import_path7, import_pluralize, introspectPostgres, introspectGel, introspectMysql, introspectSingleStore, introspectSqlite, introspectLibSQL, withCasing4, relationsToTypeScript;
+var init_introspect = __esm({
+  "src/cli/commands/introspect.ts"() {
+    "use strict";
+    init_source();
+    import_fs11 = require("fs");
+    import_hanji14 = __toESM(require_hanji());
+    init_mjs();
+    import_path7 = require("path");
+    import_pluralize = __toESM(require_pluralize());
+    init_singlestoreSchema();
+    init_global();
+    init_introspect_gel();
+    init_introspect_mysql();
+    init_introspect_pg();
+    init_introspect_singlestore();
+    init_introspect_sqlite();
+    init_gelSerializer();
+    init_mysqlSchema();
+    init_mysqlSerializer();
+    init_pgSchema();
+    init_pgSerializer();
+    init_singlestoreSerializer();
+    init_sqliteSchema();
+    init_sqliteSerializer();
+    init_snapshotsDiffer();
+    init_utils2();
+    init_views();
+    init_migrate();
+    introspectPostgres = async (casing2, out, breakpoints, credentials2, tablesFilter, schemasFilter, prefix2, entities) => {
+      const { preparePostgresDB: preparePostgresDB2 } = await Promise.resolve().then(() => (init_connections(), connections_exports));
+      const db = await preparePostgresDB2(credentials2);
+      const matchers = tablesFilter.map((it) => {
+        return new Minimatch(it);
+      });
+      const filter2 = (tableName) => {
+        if (matchers.length === 0) return true;
+        let flags = [];
+        for (let matcher of matchers) {
+          if (matcher.negate) {
+            if (!matcher.match(tableName)) {
+              flags.push(false);
+            }
+          }
+          if (matcher.match(tableName)) {
+            flags.push(true);
+          }
+        }
+        if (flags.length > 0) {
+          return flags.every(Boolean);
+        }
+        return false;
+      };
+      const progress = new IntrospectProgress(true);
+      const res = await (0, import_hanji14.renderWithTask)(
+        progress,
+        fromDatabase2(
+          db,
+          filter2,
+          schemasFilter,
+          entities,
+          (stage, count, status) => {
+            progress.update(stage, count, status);
+          }
+        )
+      );
+      const schema6 = { id: originUUID, prevId: "", ...res };
+      const ts = schemaToTypeScript4(schema6, casing2);
+      const relationsTs = relationsToTypeScript(schema6, casing2);
+      const { internal, ...schemaWithoutInternals } = schema6;
+      const schemaFile = (0, import_path7.join)(out, "schema.ts");
+      (0, import_fs11.writeFileSync)(schemaFile, ts.file);
+      const relationsFile = (0, import_path7.join)(out, "relations.ts");
+      (0, import_fs11.writeFileSync)(relationsFile, relationsTs.file);
+      console.log();
+      const { snapshots, journal } = prepareOutFolder(out, "postgresql");
+      if (snapshots.length === 0) {
+        const { sqlStatements, _meta } = await applyPgSnapshotsDiff(
+          squashPgScheme(dryPg),
+          squashPgScheme(schema6),
+          schemasResolver,
+          enumsResolver,
+          sequencesResolver,
+          policyResolver,
+          indPolicyResolver,
+          roleResolver,
+          tablesResolver,
+          columnsResolver,
+          viewsResolver,
+          dryPg,
+          schema6
+        );
+        writeResult({
+          cur: schema6,
+          sqlStatements,
+          journal,
+          _meta,
+          outFolder: out,
+          breakpoints,
+          type: "introspect",
+          prefixMode: prefix2
+        });
+      } else {
+        (0, import_hanji14.render)(
+          `[${source_default.blue(
+            "i"
+          )}] No SQL generated, you already have migrations in project`
+        );
+      }
+      (0, import_hanji14.render)(
+        `[${source_default.green(
+          "\u2713"
+        )}] Your schema file is ready \u279C ${source_default.bold.underline.blue(schemaFile)} \u{1F680}`
+      );
+      (0, import_hanji14.render)(
+        `[${source_default.green(
+          "\u2713"
+        )}] Your relations file is ready \u279C ${source_default.bold.underline.blue(
+          relationsFile
+        )} \u{1F680}`
+      );
+      process.exit(0);
+    };
+    introspectGel = async (casing2, out, breakpoints, credentials2, tablesFilter, schemasFilter, prefix2, entities) => {
+      const { prepareGelDB: prepareGelDB2 } = await Promise.resolve().then(() => (init_connections(), connections_exports));
+      const db = await prepareGelDB2(credentials2);
+      const matchers = tablesFilter.map((it) => {
+        return new Minimatch(it);
+      });
+      const filter2 = (tableName) => {
+        if (matchers.length === 0) return true;
+        let flags = [];
+        for (let matcher of matchers) {
+          if (matcher.negate) {
+            if (!matcher.match(tableName)) {
+              flags.push(false);
+            }
+          }
+          if (matcher.match(tableName)) {
+            flags.push(true);
+          }
+        }
+        if (flags.length > 0) {
+          return flags.every(Boolean);
+        }
+        return false;
+      };
+      const progress = new IntrospectProgress(true);
+      const res = await (0, import_hanji14.renderWithTask)(
+        progress,
+        fromDatabase5(
+          db,
+          filter2,
+          schemasFilter,
+          entities,
+          (stage, count, status) => {
+            progress.update(stage, count, status);
+          }
+        )
+      );
+      const schema6 = { id: originUUID, prevId: "", ...res };
+      const ts = schemaToTypeScript2(schema6, casing2);
+      const relationsTs = relationsToTypeScript(schema6, casing2);
+      const { internal, ...schemaWithoutInternals } = schema6;
+      const schemaFile = (0, import_path7.join)(out, "schema.ts");
+      (0, import_fs11.writeFileSync)(schemaFile, ts.file);
+      const relationsFile = (0, import_path7.join)(out, "relations.ts");
+      (0, import_fs11.writeFileSync)(relationsFile, relationsTs.file);
+      console.log();
+      (0, import_hanji14.render)(
+        `[${source_default.green(
+          "\u2713"
+        )}] Your schema file is ready \u279C ${source_default.bold.underline.blue(schemaFile)} \u{1F680}`
+      );
+      (0, import_hanji14.render)(
+        `[${source_default.green(
+          "\u2713"
+        )}] Your relations file is ready \u279C ${source_default.bold.underline.blue(
+          relationsFile
+        )} \u{1F680}`
+      );
+      process.exit(0);
+    };
+    introspectMysql = async (casing2, out, breakpoints, credentials2, tablesFilter, prefix2) => {
+      const { connectToMySQL: connectToMySQL2 } = await Promise.resolve().then(() => (init_connections(), connections_exports));
+      const { db, database } = await connectToMySQL2(credentials2);
+      const matchers = tablesFilter.map((it) => {
+        return new Minimatch(it);
+      });
+      const filter2 = (tableName) => {
+        if (matchers.length === 0) return true;
+        let flags = [];
+        for (let matcher of matchers) {
+          if (matcher.negate) {
+            if (!matcher.match(tableName)) {
+              flags.push(false);
+            }
+          }
+          if (matcher.match(tableName)) {
+            flags.push(true);
+          }
+        }
+        if (flags.length > 0) {
+          return flags.every(Boolean);
+        }
+        return false;
+      };
+      const progress = new IntrospectProgress();
+      const res = await (0, import_hanji14.renderWithTask)(
+        progress,
+        fromDatabase(db, database, filter2, (stage, count, status) => {
+          progress.update(stage, count, status);
+        })
+      );
+      const schema6 = { id: originUUID, prevId: "", ...res };
+      const ts = schemaToTypeScript3(schema6, casing2);
+      const relationsTs = relationsToTypeScript(schema6, casing2);
+      const { internal, ...schemaWithoutInternals } = schema6;
+      const schemaFile = (0, import_path7.join)(out, "schema.ts");
+      (0, import_fs11.writeFileSync)(schemaFile, ts.file);
+      const relationsFile = (0, import_path7.join)(out, "relations.ts");
+      (0, import_fs11.writeFileSync)(relationsFile, relationsTs.file);
+      console.log();
+      const { snapshots, journal } = prepareOutFolder(out, "mysql");
+      if (snapshots.length === 0) {
+        const { sqlStatements, _meta } = await applyMysqlSnapshotsDiff(
+          squashMysqlScheme(dryMySql),
+          squashMysqlScheme(schema6),
+          tablesResolver,
+          columnsResolver,
+          mySqlViewsResolver,
+          dryMySql,
+          schema6
+        );
+        writeResult({
+          cur: schema6,
+          sqlStatements,
+          journal,
+          _meta,
+          outFolder: out,
+          breakpoints,
+          type: "introspect",
+          prefixMode: prefix2
+        });
+      } else {
+        (0, import_hanji14.render)(
+          `[${source_default.blue(
+            "i"
+          )}] No SQL generated, you already have migrations in project`
+        );
+      }
+      (0, import_hanji14.render)(
+        `[${source_default.green(
+          "\u2713"
+        )}] Your schema file is ready \u279C ${source_default.bold.underline.blue(schemaFile)} \u{1F680}`
+      );
+      (0, import_hanji14.render)(
+        `[${source_default.green(
+          "\u2713"
+        )}] Your relations file is ready \u279C ${source_default.bold.underline.blue(
+          relationsFile
+        )} \u{1F680}`
+      );
+      process.exit(0);
+    };
+    introspectSingleStore = async (casing2, out, breakpoints, credentials2, tablesFilter, prefix2) => {
+      const { connectToSingleStore: connectToSingleStore2 } = await Promise.resolve().then(() => (init_connections(), connections_exports));
+      const { db, database } = await connectToSingleStore2(credentials2);
+      const matchers = tablesFilter.map((it) => {
+        return new Minimatch(it);
+      });
+      const filter2 = (tableName) => {
+        if (matchers.length === 0) return true;
+        let flags = [];
+        for (let matcher of matchers) {
+          if (matcher.negate) {
+            if (!matcher.match(tableName)) {
+              flags.push(false);
+            }
+          }
+          if (matcher.match(tableName)) {
+            flags.push(true);
+          }
+        }
+        if (flags.length > 0) {
+          return flags.every(Boolean);
+        }
+        return false;
+      };
+      const progress = new IntrospectProgress();
+      const res = await (0, import_hanji14.renderWithTask)(
+        progress,
+        fromDatabase4(db, database, filter2, (stage, count, status) => {
+          progress.update(stage, count, status);
+        })
+      );
+      const schema6 = { id: originUUID, prevId: "", ...res };
+      const ts = schemaToTypeScript5(schema6, casing2);
+      const { internal, ...schemaWithoutInternals } = schema6;
+      const schemaFile = (0, import_path7.join)(out, "schema.ts");
+      (0, import_fs11.writeFileSync)(schemaFile, ts.file);
+      console.log();
+      const { snapshots, journal } = prepareOutFolder(out, "postgresql");
+      if (snapshots.length === 0) {
+        const { sqlStatements, _meta } = await applySingleStoreSnapshotsDiff(
+          squashSingleStoreScheme(drySingleStore),
+          squashSingleStoreScheme(schema6),
+          tablesResolver,
+          columnsResolver,
+          /* singleStoreViewsResolver, */
+          drySingleStore,
+          schema6
+        );
+        writeResult({
+          cur: schema6,
+          sqlStatements,
+          journal,
+          _meta,
+          outFolder: out,
+          breakpoints,
+          type: "introspect",
+          prefixMode: prefix2
+        });
+      } else {
+        (0, import_hanji14.render)(
+          `[${source_default.blue(
+            "i"
+          )}] No SQL generated, you already have migrations in project`
+        );
+      }
+      (0, import_hanji14.render)(
+        `[${source_default.green(
+          "\u2713"
+        )}] You schema file is ready \u279C ${source_default.bold.underline.blue(schemaFile)} \u{1F680}`
+      );
+      process.exit(0);
+    };
+    introspectSqlite = async (casing2, out, breakpoints, credentials2, tablesFilter, prefix2) => {
+      const { connectToSQLite: connectToSQLite2 } = await Promise.resolve().then(() => (init_connections(), connections_exports));
+      const db = await connectToSQLite2(credentials2);
+      const matchers = tablesFilter.map((it) => {
+        return new Minimatch(it);
+      });
+      const filter2 = (tableName) => {
+        if (matchers.length === 0) return true;
+        let flags = [];
+        for (let matcher of matchers) {
+          if (matcher.negate) {
+            if (!matcher.match(tableName)) {
+              flags.push(false);
+            }
+          }
+          if (matcher.match(tableName)) {
+            flags.push(true);
+          }
+        }
+        if (flags.length > 0) {
+          return flags.every(Boolean);
+        }
+        return false;
+      };
+      const progress = new IntrospectProgress();
+      const res = await (0, import_hanji14.renderWithTask)(
+        progress,
+        fromDatabase3(db, filter2, (stage, count, status) => {
+          progress.update(stage, count, status);
+        })
+      );
+      const schema6 = { id: originUUID, prevId: "", ...res };
+      const ts = schemaToTypeScript(schema6, casing2);
+      const relationsTs = relationsToTypeScript(schema6, casing2);
+      const schemaFile = (0, import_path7.join)(out, "schema.ts");
+      (0, import_fs11.writeFileSync)(schemaFile, ts.file);
+      const relationsFile = (0, import_path7.join)(out, "relations.ts");
+      (0, import_fs11.writeFileSync)(relationsFile, relationsTs.file);
+      console.log();
+      const { snapshots, journal } = prepareOutFolder(out, "sqlite");
+      if (snapshots.length === 0) {
+        const { sqlStatements, _meta } = await applySqliteSnapshotsDiff(
+          squashSqliteScheme(drySQLite),
+          squashSqliteScheme(schema6),
+          tablesResolver,
+          columnsResolver,
+          sqliteViewsResolver,
+          drySQLite,
+          schema6
+        );
+        writeResult({
+          cur: schema6,
+          sqlStatements,
+          journal,
+          _meta,
+          outFolder: out,
+          breakpoints,
+          type: "introspect",
+          prefixMode: prefix2
+        });
+      } else {
+        (0, import_hanji14.render)(
+          `[${source_default.blue(
+            "i"
+          )}] No SQL generated, you already have migrations in project`
+        );
+      }
+      (0, import_hanji14.render)(
+        `[${source_default.green(
+          "\u2713"
+        )}] You schema file is ready \u279C ${source_default.bold.underline.blue(schemaFile)} \u{1F680}`
+      );
+      (0, import_hanji14.render)(
+        `[${source_default.green(
+          "\u2713"
+        )}] You relations file is ready \u279C ${source_default.bold.underline.blue(
+          relationsFile
+        )} \u{1F680}`
+      );
+      process.exit(0);
+    };
+    introspectLibSQL = async (casing2, out, breakpoints, credentials2, tablesFilter, prefix2) => {
+      const { connectToLibSQL: connectToLibSQL2 } = await Promise.resolve().then(() => (init_connections(), connections_exports));
+      const db = await connectToLibSQL2(credentials2);
+      const matchers = tablesFilter.map((it) => {
+        return new Minimatch(it);
+      });
+      const filter2 = (tableName) => {
+        if (matchers.length === 0) return true;
+        let flags = [];
+        for (let matcher of matchers) {
+          if (matcher.negate) {
+            if (!matcher.match(tableName)) {
+              flags.push(false);
+            }
+          }
+          if (matcher.match(tableName)) {
+            flags.push(true);
+          }
+        }
+        if (flags.length > 0) {
+          return flags.every(Boolean);
+        }
+        return false;
+      };
+      const progress = new IntrospectProgress();
+      const res = await (0, import_hanji14.renderWithTask)(
+        progress,
+        fromDatabase3(db, filter2, (stage, count, status) => {
+          progress.update(stage, count, status);
+        })
+      );
+      const schema6 = { id: originUUID, prevId: "", ...res };
+      const ts = schemaToTypeScript(schema6, casing2);
+      const relationsTs = relationsToTypeScript(schema6, casing2);
+      const schemaFile = (0, import_path7.join)(out, "schema.ts");
+      (0, import_fs11.writeFileSync)(schemaFile, ts.file);
+      const relationsFile = (0, import_path7.join)(out, "relations.ts");
+      (0, import_fs11.writeFileSync)(relationsFile, relationsTs.file);
+      console.log();
+      const { snapshots, journal } = prepareOutFolder(out, "sqlite");
+      if (snapshots.length === 0) {
+        const { sqlStatements, _meta } = await applyLibSQLSnapshotsDiff(
+          squashSqliteScheme(drySQLite),
+          squashSqliteScheme(schema6),
+          tablesResolver,
+          columnsResolver,
+          sqliteViewsResolver,
+          drySQLite,
+          schema6
+        );
+        writeResult({
+          cur: schema6,
+          sqlStatements,
+          journal,
+          _meta,
+          outFolder: out,
+          breakpoints,
+          type: "introspect",
+          prefixMode: prefix2
+        });
+      } else {
+        (0, import_hanji14.render)(
+          `[${source_default.blue(
+            "i"
+          )}] No SQL generated, you already have migrations in project`
+        );
+      }
+      (0, import_hanji14.render)(
+        `[${source_default.green(
+          "\u2713"
+        )}] Your schema file is ready \u279C ${source_default.bold.underline.blue(schemaFile)} \u{1F680}`
+      );
+      (0, import_hanji14.render)(
+        `[${source_default.green(
+          "\u2713"
+        )}] Your relations file is ready \u279C ${source_default.bold.underline.blue(
+          relationsFile
+        )} \u{1F680}`
+      );
+      process.exit(0);
+    };
+    withCasing4 = (value, casing2) => {
+      if (casing2 === "preserve") {
+        return value;
+      }
+      if (casing2 === "camel") {
+        return value.camelCase();
+      }
+      assertUnreachable(casing2);
+    };
+    relationsToTypeScript = (schema6, casing2) => {
+      const imports = [];
+      const tableRelations = {};
+      Object.values(schema6.tables).forEach((table6) => {
+        Object.values(table6.foreignKeys).forEach((fk5) => {
+          const tableNameFrom = paramNameFor2(fk5.tableFrom, table6.schema);
+          const tableNameTo = paramNameFor2(fk5.tableTo, fk5.schemaTo);
+          const tableFrom = withCasing4(tableNameFrom.replace(/:+/g, ""), casing2);
+          const tableTo = withCasing4(tableNameTo.replace(/:+/g, ""), casing2);
+          const columnFrom = withCasing4(fk5.columnsFrom[0], casing2);
+          const columnTo = withCasing4(fk5.columnsTo[0], casing2);
+          imports.push(tableTo, tableFrom);
+          const keyFrom = tableFrom;
+          if (!tableRelations[keyFrom]) {
+            tableRelations[keyFrom] = [];
+          }
+          tableRelations[keyFrom].push({
+            name: (0, import_pluralize.singular)(tableTo),
+            type: "one",
+            tableFrom,
+            columnFrom,
+            tableTo,
+            columnTo
+          });
+          const keyTo = tableTo;
+          if (!tableRelations[keyTo]) {
+            tableRelations[keyTo] = [];
+          }
+          tableRelations[keyTo].push({
+            name: (0, import_pluralize.plural)(tableFrom),
+            type: "many",
+            tableFrom: tableTo,
+            columnFrom: columnTo,
+            tableTo: tableFrom,
+            columnTo: columnFrom
+          });
+        });
+      });
+      const uniqueImports = [...new Set(imports)];
+      const importsTs = `import { relations } from "drizzle-orm/relations";
+import { ${uniqueImports.join(
+        ", "
+      )} } from "./schema";
+
+`;
+      const relationStatements = Object.entries(tableRelations).map(
+        ([table6, relations5]) => {
+          const hasOne = relations5.some((it) => it.type === "one");
+          const hasMany = relations5.some((it) => it.type === "many");
+          const preparedRelations = relations5.map(
+            (relation, relationIndex, originArray) => {
+              let name = relation.name;
+              let relationName;
+              const hasMultipleRelations = originArray.some(
+                (it, originIndex) => relationIndex !== originIndex && it.tableTo === relation.tableTo
+              );
+              if (hasMultipleRelations) {
+                relationName = relation.type === "one" ? `${relation.tableFrom}_${relation.columnFrom}_${relation.tableTo}_${relation.columnTo}` : `${relation.tableTo}_${relation.columnTo}_${relation.tableFrom}_${relation.columnFrom}`;
+              }
+              const hasDuplicatedRelation = originArray.some(
+                (it, originIndex) => relationIndex !== originIndex && it.name === relation.name
+              );
+              if (hasDuplicatedRelation) {
+                name = `${relation.name}_${relation.type === "one" ? relation.columnFrom : relation.columnTo}`;
+              }
+              return {
+                ...relation,
+                name,
+                relationName
+              };
+            }
+          );
+          const fields = preparedRelations.map((relation) => {
+            if (relation.type === "one") {
+              return `	${relation.name}: one(${relation.tableTo}, {
+		fields: [${relation.tableFrom}.${relation.columnFrom}],
+		references: [${relation.tableTo}.${relation.columnTo}]${relation.relationName ? `,
+		relationName: "${relation.relationName}"` : ""}
+	}),`;
+            } else {
+              return `	${relation.name}: many(${relation.tableTo}${relation.relationName ? `, {
+		relationName: "${relation.relationName}"
+	}` : ""}),`;
+            }
+          });
+          return `export const ${table6}Relations = relations(${table6}, ({${hasOne ? "one" : ""}${hasOne && hasMany ? ", " : ""}${hasMany ? "many" : ""}}) => ({
+${fields.join("\n")}
+}));`;
+        }
+      );
+      return {
+        file: importsTs + relationStatements.join("\n\n")
+      };
+    };
+  }
+});
+
+// ../node_modules/.pnpm/@hono+node-server@1.14.3_hono@4.7.10/node_modules/@hono/node-server/dist/index.mjs
+function writeFromReadableStream(stream, writable) {
+  if (stream.locked) {
+    throw new TypeError("ReadableStream is locked.");
+  } else if (writable.destroyed) {
+    stream.cancel();
+    return;
+  }
+  const reader = stream.getReader();
+  writable.on("close", cancel);
+  writable.on("error", cancel);
+  reader.read().then(flow, cancel);
+  return reader.closed.finally(() => {
+    writable.off("close", cancel);
+    writable.off("error", cancel);
+  });
+  function cancel(error2) {
+    reader.cancel(error2).catch(() => {
+    });
+    if (error2) {
+      writable.destroy(error2);
+    }
+  }
+  function onDrain() {
+    reader.read().then(flow, cancel);
+  }
+  function flow({ done, value }) {
+    try {
+      if (done) {
+        writable.end();
+      } else if (!writable.write(value)) {
+        writable.once("drain", onDrain);
+      } else {
+        return reader.read().then(flow, cancel);
+      }
+    } catch (e4) {
+      cancel(e4);
+    }
+  }
+}
+var import_http, import_http2, import_stream2, import_crypto7, RequestError, toRequestError, GlobalRequest, Request3, newRequestFromIncoming, getRequestCache, requestCache, incomingKey, urlKey, abortControllerKey, getAbortController, requestPrototype, newRequest, responseCache, getResponseCache, cacheKey, GlobalResponse, Response22, buildOutgoingHttpHeaders, X_ALREADY_SENT, webFetch, regBuffer, regContentType, handleRequestError, handleFetchError, handleResponseError, responseViaCache, responseViaResponseObject, getRequestListener, createAdaptorServer, serve;
+var init_dist2 = __esm({
+  "../node_modules/.pnpm/@hono+node-server@1.14.3_hono@4.7.10/node_modules/@hono/node-server/dist/index.mjs"() {
+    import_http = require("http");
+    import_http2 = require("http2");
+    import_stream2 = require("stream");
+    import_crypto7 = __toESM(require("crypto"), 1);
+    RequestError = class extends Error {
+      constructor(message, options) {
+        super(message, options);
+        this.name = "RequestError";
+      }
+    };
+    toRequestError = (e4) => {
+      if (e4 instanceof RequestError) {
+        return e4;
+      }
+      return new RequestError(e4.message, { cause: e4 });
+    };
+    GlobalRequest = global.Request;
+    Request3 = class extends GlobalRequest {
+      constructor(input, options) {
+        var _a2;
+        if (typeof input === "object" && getRequestCache in input) {
+          input = input[getRequestCache]();
+        }
+        if (typeof ((_a2 = options == null ? void 0 : options.body) == null ? void 0 : _a2.getReader) !== "undefined") {
+          ;
+          options.duplex ??= "half";
+        }
+        super(input, options);
+      }
+    };
+    newRequestFromIncoming = (method, url, incoming, abortController) => {
+      const headerRecord = [];
+      const rawHeaders = incoming.rawHeaders;
+      for (let i4 = 0; i4 < rawHeaders.length; i4 += 2) {
+        const { [i4]: key, [i4 + 1]: value } = rawHeaders;
+        if (key.charCodeAt(0) !== /*:*/
+        58) {
+          headerRecord.push([key, value]);
+        }
+      }
+      const init2 = {
+        method,
+        headers: headerRecord,
+        signal: abortController.signal
+      };
+      if (method === "TRACE") {
+        init2.method = "GET";
+        const req = new Request3(url, init2);
+        Object.defineProperty(req, "method", {
+          get() {
+            return "TRACE";
+          }
+        });
+        return req;
+      }
+      if (!(method === "GET" || method === "HEAD")) {
+        if ("rawBody" in incoming && incoming.rawBody instanceof Buffer) {
+          init2.body = new ReadableStream({
+            start(controller) {
+              controller.enqueue(incoming.rawBody);
+              controller.close();
+            }
+          });
+        } else {
+          init2.body = import_stream2.Readable.toWeb(incoming);
+        }
+      }
+      return new Request3(url, init2);
+    };
+    getRequestCache = Symbol("getRequestCache");
+    requestCache = Symbol("requestCache");
+    incomingKey = Symbol("incomingKey");
+    urlKey = Symbol("urlKey");
+    abortControllerKey = Symbol("abortControllerKey");
+    getAbortController = Symbol("getAbortController");
+    requestPrototype = {
+      get method() {
+        return this[incomingKey].method || "GET";
+      },
+      get url() {
+        return this[urlKey];
+      },
+      [getAbortController]() {
+        this[getRequestCache]();
+        return this[abortControllerKey];
+      },
+      [getRequestCache]() {
+        this[abortControllerKey] ||= new AbortController();
+        return this[requestCache] ||= newRequestFromIncoming(
+          this.method,
+          this[urlKey],
+          this[incomingKey],
+          this[abortControllerKey]
+        );
+      }
+    };
+    [
+      "body",
+      "bodyUsed",
+      "cache",
+      "credentials",
+      "destination",
+      "headers",
+      "integrity",
+      "mode",
+      "redirect",
+      "referrer",
+      "referrerPolicy",
+      "signal",
+      "keepalive"
+    ].forEach((k3) => {
+      Object.defineProperty(requestPrototype, k3, {
+        get() {
+          return this[getRequestCache]()[k3];
+        }
+      });
+    });
+    ["arrayBuffer", "blob", "clone", "formData", "json", "text"].forEach((k3) => {
+      Object.defineProperty(requestPrototype, k3, {
+        value: function() {
+          return this[getRequestCache]()[k3]();
+        }
+      });
+    });
+    Object.setPrototypeOf(requestPrototype, Request3.prototype);
+    newRequest = (incoming, defaultHostname) => {
+      const req = Object.create(requestPrototype);
+      req[incomingKey] = incoming;
+      const incomingUrl = incoming.url || "";
+      if (incomingUrl[0] !== "/" && // short-circuit for performance. most requests are relative URL.
+      (incomingUrl.startsWith("http://") || incomingUrl.startsWith("https://"))) {
+        if (incoming instanceof import_http2.Http2ServerRequest) {
+          throw new RequestError("Absolute URL for :path is not allowed in HTTP/2");
+        }
+        try {
+          const url2 = new URL(incomingUrl);
+          req[urlKey] = url2.href;
+        } catch (e4) {
+          throw new RequestError("Invalid absolute URL", { cause: e4 });
+        }
+        return req;
+      }
+      const host = (incoming instanceof import_http2.Http2ServerRequest ? incoming.authority : incoming.headers.host) || defaultHostname;
+      if (!host) {
+        throw new RequestError("Missing host header");
+      }
+      let scheme;
+      if (incoming instanceof import_http2.Http2ServerRequest) {
+        scheme = incoming.scheme;
+        if (!(scheme === "http" || scheme === "https")) {
+          throw new RequestError("Unsupported scheme");
+        }
+      } else {
+        scheme = incoming.socket && incoming.socket.encrypted ? "https" : "http";
+      }
+      const url = new URL(`${scheme}://${host}${incomingUrl}`);
+      if (url.hostname.length !== host.length && url.hostname !== host.replace(/:\d+$/, "")) {
+        throw new RequestError("Invalid host header");
+      }
+      req[urlKey] = url.href;
+      return req;
+    };
+    responseCache = Symbol("responseCache");
+    getResponseCache = Symbol("getResponseCache");
+    cacheKey = Symbol("cache");
+    GlobalResponse = global.Response;
+    Response22 = class _Response {
+      #body;
+      #init;
+      [getResponseCache]() {
+        delete this[cacheKey];
+        return this[responseCache] ||= new GlobalResponse(this.#body, this.#init);
+      }
+      constructor(body, init2) {
+        let headers;
+        this.#body = body;
+        if (init2 instanceof _Response) {
+          const cachedGlobalResponse = init2[responseCache];
+          if (cachedGlobalResponse) {
+            this.#init = cachedGlobalResponse;
+            this[getResponseCache]();
+            return;
+          } else {
+            this.#init = init2.#init;
+            headers = new Headers(init2.#init.headers);
+          }
+        } else {
+          this.#init = init2;
+        }
+        if (typeof body === "string" || typeof (body == null ? void 0 : body.getReader) !== "undefined" || body instanceof Blob || body instanceof Uint8Array) {
+          headers ||= (init2 == null ? void 0 : init2.headers) || { "content-type": "text/plain; charset=UTF-8" };
+          this[cacheKey] = [(init2 == null ? void 0 : init2.status) || 200, body, headers];
+        }
+      }
+      get headers() {
+        const cache3 = this[cacheKey];
+        if (cache3) {
+          if (!(cache3[2] instanceof Headers)) {
+            cache3[2] = new Headers(cache3[2]);
+          }
+          return cache3[2];
+        }
+        return this[getResponseCache]().headers;
+      }
+      get status() {
+        var _a2;
+        return ((_a2 = this[cacheKey]) == null ? void 0 : _a2[0]) ?? this[getResponseCache]().status;
+      }
+      get ok() {
+        const status = this.status;
+        return status >= 200 && status < 300;
+      }
+    };
+    ["body", "bodyUsed", "redirected", "statusText", "trailers", "type", "url"].forEach((k3) => {
+      Object.defineProperty(Response22.prototype, k3, {
+        get() {
+          return this[getResponseCache]()[k3];
+        }
+      });
+    });
+    ["arrayBuffer", "blob", "clone", "formData", "json", "text"].forEach((k3) => {
+      Object.defineProperty(Response22.prototype, k3, {
+        value: function() {
+          return this[getResponseCache]()[k3]();
+        }
+      });
+    });
+    Object.setPrototypeOf(Response22, GlobalResponse);
+    Object.setPrototypeOf(Response22.prototype, GlobalResponse.prototype);
+    buildOutgoingHttpHeaders = (headers) => {
+      const res = {};
+      if (!(headers instanceof Headers)) {
+        headers = new Headers(headers ?? void 0);
+      }
+      const cookies = [];
+      for (const [k3, v6] of headers) {
+        if (k3 === "set-cookie") {
+          cookies.push(v6);
+        } else {
+          res[k3] = v6;
+        }
+      }
+      if (cookies.length > 0) {
+        res["set-cookie"] = cookies;
+      }
+      res["content-type"] ??= "text/plain; charset=UTF-8";
+      return res;
+    };
+    X_ALREADY_SENT = "x-hono-already-sent";
+    webFetch = global.fetch;
+    if (typeof global.crypto === "undefined") {
+      global.crypto = import_crypto7.default;
+    }
+    global.fetch = (info2, init2) => {
+      init2 = {
+        // Disable compression handling so people can return the result of a fetch
+        // directly in the loader without messing with the Content-Encoding header.
+        compress: false,
+        ...init2
+      };
+      return webFetch(info2, init2);
+    };
+    regBuffer = /^no$/i;
+    regContentType = /^(application\/json\b|text\/(?!event-stream\b))/i;
+    handleRequestError = () => new Response(null, {
+      status: 400
+    });
+    handleFetchError = (e4) => new Response(null, {
+      status: e4 instanceof Error && (e4.name === "TimeoutError" || e4.constructor.name === "TimeoutError") ? 504 : 500
+    });
+    handleResponseError = (e4, outgoing) => {
+      const err2 = e4 instanceof Error ? e4 : new Error("unknown error", { cause: e4 });
+      if (err2.code === "ERR_STREAM_PREMATURE_CLOSE") {
+        console.info("The user aborted a request.");
+      } else {
+        console.error(e4);
+        if (!outgoing.headersSent) {
+          outgoing.writeHead(500, { "Content-Type": "text/plain" });
+        }
+        outgoing.end(`Error: ${err2.message}`);
+        outgoing.destroy(err2);
+      }
+    };
+    responseViaCache = async (res, outgoing) => {
+      var _a2;
+      let [status, body, header] = res[cacheKey];
+      if (header instanceof Headers) {
+        header = buildOutgoingHttpHeaders(header);
+      }
+      if (typeof body === "string") {
+        header["Content-Length"] = Buffer.byteLength(body);
+      } else if (body instanceof Uint8Array) {
+        header["Content-Length"] = body.byteLength;
+      } else if (body instanceof Blob) {
+        header["Content-Length"] = body.size;
+      }
+      outgoing.writeHead(status, header);
+      if (typeof body === "string" || body instanceof Uint8Array) {
+        outgoing.end(body);
+      } else if (body instanceof Blob) {
+        outgoing.end(new Uint8Array(await body.arrayBuffer()));
+      } else {
+        return (_a2 = writeFromReadableStream(body, outgoing)) == null ? void 0 : _a2.catch(
+          (e4) => handleResponseError(e4, outgoing)
+        );
+      }
+    };
+    responseViaResponseObject = async (res, outgoing, options = {}) => {
+      if (res instanceof Promise) {
+        if (options.errorHandler) {
+          try {
+            res = await res;
+          } catch (err2) {
+            const errRes = await options.errorHandler(err2);
+            if (!errRes) {
+              return;
+            }
+            res = errRes;
+          }
+        } else {
+          res = await res.catch(handleFetchError);
+        }
+      }
+      if (cacheKey in res) {
+        return responseViaCache(res, outgoing);
+      }
+      const resHeaderRecord = buildOutgoingHttpHeaders(res.headers);
+      if (res.body) {
+        const {
+          "transfer-encoding": transferEncoding,
+          "content-encoding": contentEncoding,
+          "content-length": contentLength,
+          "x-accel-buffering": accelBuffering,
+          "content-type": contentType
+        } = resHeaderRecord;
+        if (transferEncoding || contentEncoding || contentLength || // nginx buffering variant
+        accelBuffering && regBuffer.test(accelBuffering) || !regContentType.test(contentType)) {
+          outgoing.writeHead(res.status, resHeaderRecord);
+          await writeFromReadableStream(res.body, outgoing);
+        } else {
+          const buffer = await res.arrayBuffer();
+          resHeaderRecord["content-length"] = buffer.byteLength;
+          outgoing.writeHead(res.status, resHeaderRecord);
+          outgoing.end(new Uint8Array(buffer));
+        }
+      } else if (resHeaderRecord[X_ALREADY_SENT]) {
+      } else {
+        outgoing.writeHead(res.status, resHeaderRecord);
+        outgoing.end();
+      }
+    };
+    getRequestListener = (fetchCallback, options = {}) => {
+      if (options.overrideGlobalObjects !== false && global.Request !== Request3) {
+        Object.defineProperty(global, "Request", {
+          value: Request3
+        });
+        Object.defineProperty(global, "Response", {
+          value: Response22
+        });
+      }
+      return async (incoming, outgoing) => {
+        let res, req;
+        try {
+          req = newRequest(incoming, options.hostname);
+          outgoing.on("close", () => {
+            const abortController = req[abortControllerKey];
+            if (!abortController) {
+              return;
+            }
+            if (incoming.errored) {
+              req[abortControllerKey].abort(incoming.errored.toString());
+            } else if (!outgoing.writableFinished) {
+              req[abortControllerKey].abort("Client connection prematurely closed.");
+            }
+          });
+          res = fetchCallback(req, { incoming, outgoing });
+          if (cacheKey in res) {
+            return responseViaCache(res, outgoing);
+          }
+        } catch (e4) {
+          if (!res) {
+            if (options.errorHandler) {
+              res = await options.errorHandler(req ? e4 : toRequestError(e4));
+              if (!res) {
+                return;
+              }
+            } else if (!req) {
+              res = handleRequestError();
+            } else {
+              res = handleFetchError(e4);
+            }
+          } else {
+            return handleResponseError(e4, outgoing);
+          }
+        }
+        try {
+          return await responseViaResponseObject(res, outgoing, options);
+        } catch (e4) {
+          return handleResponseError(e4, outgoing);
+        }
+      };
+    };
+    createAdaptorServer = (options) => {
+      const fetchCallback = options.fetch;
+      const requestListener = getRequestListener(fetchCallback, {
+        hostname: options.hostname,
+        overrideGlobalObjects: options.overrideGlobalObjects
+      });
+      const createServer2 = options.createServer || import_http.createServer;
+      const server = createServer2(options.serverOptions || {}, requestListener);
+      return server;
+    };
+    serve = (options, listeningListener) => {
+      const server = createAdaptorServer(options);
+      server.listen((options == null ? void 0 : options.port) ?? 3e3, options.hostname, () => {
+        const serverInfo = server.address();
+        listeningListener && listeningListener(serverInfo);
+      });
+      return server;
+    };
+  }
+});
+
+// ../node_modules/.pnpm/hono@4.7.10/node_modules/hono/dist/utils/url.js
+var splitPath, splitRoutingPath, extractGroupsFromPath, replaceGroupMarks, patternCache, getPattern, tryDecode, tryDecodeURI, getPath, getPathNoStrict, mergePath, checkOptionalParameter, _decodeURI, _getQueryParam, getQueryParam, getQueryParams, decodeURIComponent_;
+var init_url = __esm({
+  "../node_modules/.pnpm/hono@4.7.10/node_modules/hono/dist/utils/url.js"() {
+    splitPath = (path4) => {
+      const paths = path4.split("/");
+      if (paths[0] === "") {
+        paths.shift();
+      }
+      return paths;
+    };
+    splitRoutingPath = (routePath) => {
+      const { groups, path: path4 } = extractGroupsFromPath(routePath);
+      const paths = splitPath(path4);
+      return replaceGroupMarks(paths, groups);
+    };
+    extractGroupsFromPath = (path4) => {
+      const groups = [];
+      path4 = path4.replace(/\{[^}]+\}/g, (match2, index6) => {
+        const mark = `@${index6}`;
+        groups.push([mark, match2]);
+        return mark;
+      });
+      return { groups, path: path4 };
+    };
+    replaceGroupMarks = (paths, groups) => {
+      for (let i4 = groups.length - 1; i4 >= 0; i4--) {
+        const [mark] = groups[i4];
+        for (let j3 = paths.length - 1; j3 >= 0; j3--) {
+          if (paths[j3].includes(mark)) {
+            paths[j3] = paths[j3].replace(mark, groups[i4][1]);
+            break;
+          }
+        }
+      }
+      return paths;
+    };
+    patternCache = {};
+    getPattern = (label, next) => {
+      if (label === "*") {
+        return "*";
+      }
+      const match2 = label.match(/^\:([^\{\}]+)(?:\{(.+)\})?$/);
+      if (match2) {
+        const cacheKey2 = `${label}#${next}`;
+        if (!patternCache[cacheKey2]) {
+          if (match2[2]) {
+            patternCache[cacheKey2] = next && next[0] !== ":" && next[0] !== "*" ? [cacheKey2, match2[1], new RegExp(`^${match2[2]}(?=/${next})`)] : [label, match2[1], new RegExp(`^${match2[2]}$`)];
+          } else {
+            patternCache[cacheKey2] = [label, match2[1], true];
+          }
+        }
+        return patternCache[cacheKey2];
+      }
+      return null;
+    };
+    tryDecode = (str, decoder) => {
+      try {
+        return decoder(str);
+      } catch {
+        return str.replace(/(?:%[0-9A-Fa-f]{2})+/g, (match2) => {
+          try {
+            return decoder(match2);
+          } catch {
+            return match2;
+          }
+        });
+      }
+    };
+    tryDecodeURI = (str) => tryDecode(str, decodeURI);
+    getPath = (request) => {
+      const url = request.url;
+      const start = url.indexOf("/", 8);
+      let i4 = start;
+      for (; i4 < url.length; i4++) {
+        const charCode = url.charCodeAt(i4);
+        if (charCode === 37) {
+          const queryIndex = url.indexOf("?", i4);
+          const path4 = url.slice(start, queryIndex === -1 ? void 0 : queryIndex);
+          return tryDecodeURI(path4.includes("%25") ? path4.replace(/%25/g, "%2525") : path4);
+        } else if (charCode === 63) {
+          break;
+        }
+      }
+      return url.slice(start, i4);
+    };
+    getPathNoStrict = (request) => {
+      const result = getPath(request);
+      return result.length > 1 && result.at(-1) === "/" ? result.slice(0, -1) : result;
+    };
+    mergePath = (base, sub, ...rest) => {
+      if (rest.length) {
+        sub = mergePath(sub, ...rest);
+      }
+      return `${(base == null ? void 0 : base[0]) === "/" ? "" : "/"}${base}${sub === "/" ? "" : `${(base == null ? void 0 : base.at(-1)) === "/" ? "" : "/"}${(sub == null ? void 0 : sub[0]) === "/" ? sub.slice(1) : sub}`}`;
+    };
+    checkOptionalParameter = (path4) => {
+      if (path4.charCodeAt(path4.length - 1) !== 63 || !path4.includes(":")) {
+        return null;
+      }
+      const segments = path4.split("/");
+      const results = [];
+      let basePath = "";
+      segments.forEach((segment) => {
+        if (segment !== "" && !/\:/.test(segment)) {
+          basePath += "/" + segment;
+        } else if (/\:/.test(segment)) {
+          if (/\?/.test(segment)) {
+            if (results.length === 0 && basePath === "") {
+              results.push("/");
+            } else {
+              results.push(basePath);
+            }
+            const optionalSegment = segment.replace("?", "");
+            basePath += "/" + optionalSegment;
+            results.push(basePath);
+          } else {
+            basePath += "/" + segment;
+          }
+        }
+      });
+      return results.filter((v6, i4, a3) => a3.indexOf(v6) === i4);
+    };
+    _decodeURI = (value) => {
+      if (!/[%+]/.test(value)) {
+        return value;
+      }
+      if (value.indexOf("+") !== -1) {
+        value = value.replace(/\+/g, " ");
+      }
+      return value.indexOf("%") !== -1 ? decodeURIComponent_(value) : value;
+    };
+    _getQueryParam = (url, key, multiple) => {
+      let encoded;
+      if (!multiple && key && !/[%+]/.test(key)) {
+        let keyIndex2 = url.indexOf(`?${key}`, 8);
+        if (keyIndex2 === -1) {
+          keyIndex2 = url.indexOf(`&${key}`, 8);
+        }
+        while (keyIndex2 !== -1) {
+          const trailingKeyCode = url.charCodeAt(keyIndex2 + key.length + 1);
+          if (trailingKeyCode === 61) {
+            const valueIndex = keyIndex2 + key.length + 2;
+            const endIndex = url.indexOf("&", valueIndex);
+            return _decodeURI(url.slice(valueIndex, endIndex === -1 ? void 0 : endIndex));
+          } else if (trailingKeyCode == 38 || isNaN(trailingKeyCode)) {
+            return "";
+          }
+          keyIndex2 = url.indexOf(`&${key}`, keyIndex2 + 1);
+        }
+        encoded = /[%+]/.test(url);
+        if (!encoded) {
+          return void 0;
+        }
+      }
+      const results = {};
+      encoded ??= /[%+]/.test(url);
+      let keyIndex = url.indexOf("?", 8);
+      while (keyIndex !== -1) {
+        const nextKeyIndex = url.indexOf("&", keyIndex + 1);
+        let valueIndex = url.indexOf("=", keyIndex);
+        if (valueIndex > nextKeyIndex && nextKeyIndex !== -1) {
+          valueIndex = -1;
+        }
+        let name = url.slice(
+          keyIndex + 1,
+          valueIndex === -1 ? nextKeyIndex === -1 ? void 0 : nextKeyIndex : valueIndex
+        );
+        if (encoded) {
+          name = _decodeURI(name);
+        }
+        keyIndex = nextKeyIndex;
+        if (name === "") {
+          continue;
+        }
+        let value;
+        if (valueIndex === -1) {
+          value = "";
+        } else {
+          value = url.slice(valueIndex + 1, nextKeyIndex === -1 ? void 0 : nextKeyIndex);
+          if (encoded) {
+            value = _decodeURI(value);
+          }
+        }
+        if (multiple) {
+          if (!(results[name] && Array.isArray(results[name]))) {
+            results[name] = [];
+          }
+          ;
+          results[name].push(value);
+        } else {
+          results[name] ??= value;
+        }
+      }
+      return key ? results[key] : results;
+    };
+    getQueryParam = _getQueryParam;
+    getQueryParams = (url, key) => {
+      return _getQueryParam(url, key, true);
+    };
+    decodeURIComponent_ = decodeURIComponent;
+  }
+});
+
+// ../node_modules/.pnpm/hono@4.7.10/node_modules/hono/dist/utils/cookie.js
+var validCookieNameRegEx, validCookieValueRegEx, parse3;
+var init_cookie = __esm({
+  "../node_modules/.pnpm/hono@4.7.10/node_modules/hono/dist/utils/cookie.js"() {
+    init_url();
+    validCookieNameRegEx = /^[\w!#$%&'*.^`|~+-]+$/;
+    validCookieValueRegEx = /^[ !#-:<-[\]-~]*$/;
+    parse3 = (cookie, name) => {
+      if (name && cookie.indexOf(name) === -1) {
+        return {};
+      }
+      const pairs = cookie.trim().split(";");
+      const parsedCookie = {};
+      for (let pairStr of pairs) {
+        pairStr = pairStr.trim();
+        const valueStartPos = pairStr.indexOf("=");
+        if (valueStartPos === -1) {
+          continue;
+        }
+        const cookieName = pairStr.substring(0, valueStartPos).trim();
+        if (name && name !== cookieName || !validCookieNameRegEx.test(cookieName)) {
+          continue;
+        }
+        let cookieValue = pairStr.substring(valueStartPos + 1).trim();
+        if (cookieValue.startsWith('"') && cookieValue.endsWith('"')) {
+          cookieValue = cookieValue.slice(1, -1);
+        }
+        if (validCookieValueRegEx.test(cookieValue)) {
+          parsedCookie[cookieName] = decodeURIComponent_(cookieValue);
+          if (name) {
+            break;
+          }
+        }
+      }
+      return parsedCookie;
+    };
+  }
+});
+
+// ../node_modules/.pnpm/hono@4.7.10/node_modules/hono/dist/helper/cookie/index.js
+var getCookie;
+var init_cookie2 = __esm({
+  "../node_modules/.pnpm/hono@4.7.10/node_modules/hono/dist/helper/cookie/index.js"() {
+    init_cookie();
+    getCookie = (c3, key, prefix2) => {
+      const cookie = c3.req.raw.headers.get("Cookie");
+      if (typeof key === "string") {
+        if (!cookie) {
+          return void 0;
+        }
+        let finalKey = key;
+        if (prefix2 === "secure") {
+          finalKey = "__Secure-" + key;
+        } else if (prefix2 === "host") {
+          finalKey = "__Host-" + key;
+        }
+        const obj2 = parse3(cookie, finalKey);
+        return obj2[finalKey];
+      }
+      if (!cookie) {
+        return {};
+      }
+      const obj = parse3(cookie);
+      return obj;
+    };
+  }
+});
+
+// ../node_modules/.pnpm/hono@4.7.10/node_modules/hono/dist/http-exception.js
+var HTTPException;
+var init_http_exception = __esm({
+  "../node_modules/.pnpm/hono@4.7.10/node_modules/hono/dist/http-exception.js"() {
+    HTTPException = class extends Error {
+      res;
+      status;
+      constructor(status = 500, options) {
+        super(options == null ? void 0 : options.message, { cause: options == null ? void 0 : options.cause });
+        this.res = options == null ? void 0 : options.res;
+        this.status = status;
+      }
+      getResponse() {
+        if (this.res) {
+          const newResponse = new Response(this.res.body, {
+            status: this.status,
+            headers: this.res.headers
+          });
+          return newResponse;
+        }
+        return new Response(this.message, {
+          status: this.status
+        });
+      }
+    };
+  }
+});
+
+// ../node_modules/.pnpm/hono@4.7.10/node_modules/hono/dist/utils/crypto.js
+var init_crypto = __esm({
+  "../node_modules/.pnpm/hono@4.7.10/node_modules/hono/dist/utils/crypto.js"() {
+  }
+});
+
+// ../node_modules/.pnpm/hono@4.7.10/node_modules/hono/dist/utils/buffer.js
+var bufferToFormData;
+var init_buffer = __esm({
+  "../node_modules/.pnpm/hono@4.7.10/node_modules/hono/dist/utils/buffer.js"() {
+    init_crypto();
+    bufferToFormData = (arrayBuffer, contentType) => {
+      const response = new Response(arrayBuffer, {
+        headers: {
+          "Content-Type": contentType
+        }
+      });
+      return response.formData();
+    };
+  }
+});
+
+// ../node_modules/.pnpm/hono@4.7.10/node_modules/hono/dist/validator/validator.js
+var jsonRegex, multipartRegex, urlencodedRegex, validator;
+var init_validator = __esm({
+  "../node_modules/.pnpm/hono@4.7.10/node_modules/hono/dist/validator/validator.js"() {
+    init_cookie2();
+    init_http_exception();
+    init_buffer();
+    jsonRegex = /^application\/([a-z-\.]+\+)?json(;\s*[a-zA-Z0-9\-]+\=([^;]+))*$/;
+    multipartRegex = /^multipart\/form-data(;\s?boundary=[a-zA-Z0-9'"()+_,\-./:=?]+)?$/;
+    urlencodedRegex = /^application\/x-www-form-urlencoded(;\s*[a-zA-Z0-9\-]+\=([^;]+))*$/;
+    validator = (target, validationFunc) => {
+      return async (c3, next) => {
+        let value = {};
+        const contentType = c3.req.header("Content-Type");
+        switch (target) {
+          case "json":
+            if (!contentType || !jsonRegex.test(contentType)) {
+              break;
+            }
+            try {
+              value = await c3.req.json();
+            } catch {
+              const message = "Malformed JSON in request body";
+              throw new HTTPException(400, { message });
+            }
+            break;
+          case "form": {
+            if (!contentType || !(multipartRegex.test(contentType) || urlencodedRegex.test(contentType))) {
+              break;
+            }
+            let formData;
+            if (c3.req.bodyCache.formData) {
+              formData = await c3.req.bodyCache.formData;
+            } else {
+              try {
+                const arrayBuffer = await c3.req.arrayBuffer();
+                formData = await bufferToFormData(arrayBuffer, contentType);
+                c3.req.bodyCache.formData = formData;
+              } catch (e4) {
+                let message = "Malformed FormData request.";
+                message += e4 instanceof Error ? ` ${e4.message}` : ` ${String(e4)}`;
+                throw new HTTPException(400, { message });
+              }
+            }
+            const form = {};
+            formData.forEach((value2, key) => {
+              if (key.endsWith("[]")) {
+                ;
+                (form[key] ??= []).push(value2);
+              } else if (Array.isArray(form[key])) {
+                ;
+                form[key].push(value2);
+              } else if (key in form) {
+                form[key] = [form[key], value2];
+              } else {
+                form[key] = value2;
+              }
+            });
+            value = form;
+            break;
+          }
+          case "query":
+            value = Object.fromEntries(
+              Object.entries(c3.req.queries()).map(([k3, v6]) => {
+                return v6.length === 1 ? [k3, v6[0]] : [k3, v6];
+              })
+            );
+            break;
+          case "param":
+            value = c3.req.param();
+            break;
+          case "header":
+            value = c3.req.header();
+            break;
+          case "cookie":
+            value = getCookie(c3);
+            break;
+        }
+        const res = await validationFunc(value, c3);
+        if (res instanceof Response) {
+          return res;
+        }
+        c3.req.addValidatedData(target, res);
+        await next();
+      };
+    };
+  }
+});
+
+// ../node_modules/.pnpm/hono@4.7.10/node_modules/hono/dist/validator/index.js
+var init_validator2 = __esm({
+  "../node_modules/.pnpm/hono@4.7.10/node_modules/hono/dist/validator/index.js"() {
+    init_validator();
+  }
+});
+
+// ../node_modules/.pnpm/@hono+zod-validator@0.2.2_hono@4.7.10_zod@3.25.42/node_modules/@hono/zod-validator/dist/esm/index.js
+var zValidator;
+var init_esm2 = __esm({
+  "../node_modules/.pnpm/@hono+zod-validator@0.2.2_hono@4.7.10_zod@3.25.42/node_modules/@hono/zod-validator/dist/esm/index.js"() {
+    init_validator2();
+    zValidator = (target, schema6, hook) => (
+      // @ts-expect-error not typed well
+      validator(target, async (value, c3) => {
+        const result = await schema6.safeParseAsync(value);
+        if (hook) {
+          const hookResult = await hook({ data: value, ...result }, c3);
+          if (hookResult) {
+            if (hookResult instanceof Response) {
+              return hookResult;
+            }
+            if ("response" in hookResult) {
+              return hookResult.response;
+            }
+          }
+        }
+        if (!result.success) {
+          return c3.json(result, 400);
+        }
+        return result.data;
+      })
+    );
+  }
+});
+
+// ../node_modules/.pnpm/hono@4.7.10/node_modules/hono/dist/compose.js
+var compose;
+var init_compose = __esm({
+  "../node_modules/.pnpm/hono@4.7.10/node_modules/hono/dist/compose.js"() {
+    compose = (middleware, onError, onNotFound) => {
+      return (context, next) => {
+        let index6 = -1;
+        return dispatch(0);
+        async function dispatch(i4) {
+          if (i4 <= index6) {
+            throw new Error("next() called multiple times");
+          }
+          index6 = i4;
+          let res;
+          let isError = false;
+          let handler;
+          if (middleware[i4]) {
+            handler = middleware[i4][0][0];
+            context.req.routeIndex = i4;
+          } else {
+            handler = i4 === middleware.length && next || void 0;
+          }
+          if (handler) {
+            try {
+              res = await handler(context, () => dispatch(i4 + 1));
+            } catch (err2) {
+              if (err2 instanceof Error && onError) {
+                context.error = err2;
+                res = await onError(err2, context);
+                isError = true;
+              } else {
+                throw err2;
+              }
+            }
+          } else {
+            if (context.finalized === false && onNotFound) {
+              res = await onNotFound(context);
+            }
+          }
+          if (res && (context.finalized === false || isError)) {
+            context.res = res;
+          }
+          return context;
+        }
+      };
+    };
+  }
+});
+
+// ../node_modules/.pnpm/hono@4.7.10/node_modules/hono/dist/utils/body.js
+async function parseFormData(request, options) {
+  const formData = await request.formData();
+  if (formData) {
+    return convertFormDataToBodyData(formData, options);
+  }
+  return {};
+}
+function convertFormDataToBodyData(formData, options) {
+  const form = /* @__PURE__ */ Object.create(null);
+  formData.forEach((value, key) => {
+    const shouldParseAllValues = options.all || key.endsWith("[]");
+    if (!shouldParseAllValues) {
+      form[key] = value;
+    } else {
+      handleParsingAllValues(form, key, value);
+    }
+  });
+  if (options.dot) {
+    Object.entries(form).forEach(([key, value]) => {
+      const shouldParseDotValues = key.includes(".");
+      if (shouldParseDotValues) {
+        handleParsingNestedValues(form, key, value);
+        delete form[key];
+      }
+    });
+  }
+  return form;
+}
+var parseBody, handleParsingAllValues, handleParsingNestedValues;
+var init_body2 = __esm({
+  "../node_modules/.pnpm/hono@4.7.10/node_modules/hono/dist/utils/body.js"() {
+    init_request2();
+    parseBody = async (request, options = /* @__PURE__ */ Object.create(null)) => {
+      const { all = false, dot = false } = options;
+      const headers = request instanceof HonoRequest ? request.raw.headers : request.headers;
+      const contentType = headers.get("Content-Type");
+      if ((contentType == null ? void 0 : contentType.startsWith("multipart/form-data")) || (contentType == null ? void 0 : contentType.startsWith("application/x-www-form-urlencoded"))) {
+        return parseFormData(request, { all, dot });
+      }
+      return {};
+    };
+    handleParsingAllValues = (form, key, value) => {
+      if (form[key] !== void 0) {
+        if (Array.isArray(form[key])) {
+          ;
+          form[key].push(value);
+        } else {
+          form[key] = [form[key], value];
+        }
+      } else {
+        form[key] = value;
+      }
+    };
+    handleParsingNestedValues = (form, key, value) => {
+      let nestedForm = form;
+      const keys = key.split(".");
+      keys.forEach((key2, index6) => {
+        if (index6 === keys.length - 1) {
+          nestedForm[key2] = value;
+        } else {
+          if (!nestedForm[key2] || typeof nestedForm[key2] !== "object" || Array.isArray(nestedForm[key2]) || nestedForm[key2] instanceof File) {
+            nestedForm[key2] = /* @__PURE__ */ Object.create(null);
+          }
+          nestedForm = nestedForm[key2];
+        }
+      });
+    };
+  }
+});
+
+// ../node_modules/.pnpm/hono@4.7.10/node_modules/hono/dist/request.js
+var tryDecodeURIComponent, HonoRequest;
+var init_request2 = __esm({
+  "../node_modules/.pnpm/hono@4.7.10/node_modules/hono/dist/request.js"() {
+    init_body2();
+    init_url();
+    tryDecodeURIComponent = (str) => tryDecode(str, decodeURIComponent_);
+    HonoRequest = class {
+      raw;
+      #validatedData;
+      #matchResult;
+      routeIndex = 0;
+      path;
+      bodyCache = {};
+      constructor(request, path4 = "/", matchResult = [[]]) {
+        this.raw = request;
+        this.path = path4;
+        this.#matchResult = matchResult;
+        this.#validatedData = {};
+      }
+      param(key) {
+        return key ? this.#getDecodedParam(key) : this.#getAllDecodedParams();
+      }
+      #getDecodedParam(key) {
+        const paramKey = this.#matchResult[0][this.routeIndex][1][key];
+        const param = this.#getParamValue(paramKey);
+        return param ? /\%/.test(param) ? tryDecodeURIComponent(param) : param : void 0;
+      }
+      #getAllDecodedParams() {
+        const decoded = {};
+        const keys = Object.keys(this.#matchResult[0][this.routeIndex][1]);
+        for (const key of keys) {
+          const value = this.#getParamValue(this.#matchResult[0][this.routeIndex][1][key]);
+          if (value && typeof value === "string") {
+            decoded[key] = /\%/.test(value) ? tryDecodeURIComponent(value) : value;
+          }
+        }
+        return decoded;
+      }
+      #getParamValue(paramKey) {
+        return this.#matchResult[1] ? this.#matchResult[1][paramKey] : paramKey;
+      }
+      query(key) {
+        return getQueryParam(this.url, key);
+      }
+      queries(key) {
+        return getQueryParams(this.url, key);
+      }
+      header(name) {
+        if (name) {
+          return this.raw.headers.get(name) ?? void 0;
+        }
+        const headerData = {};
+        this.raw.headers.forEach((value, key) => {
+          headerData[key] = value;
+        });
+        return headerData;
+      }
+      async parseBody(options) {
+        return this.bodyCache.parsedBody ??= await parseBody(this, options);
+      }
+      #cachedBody = (key) => {
+        const { bodyCache, raw: raw2 } = this;
+        const cachedBody = bodyCache[key];
+        if (cachedBody) {
+          return cachedBody;
+        }
+        const anyCachedKey = Object.keys(bodyCache)[0];
+        if (anyCachedKey) {
+          return bodyCache[anyCachedKey].then((body) => {
+            if (anyCachedKey === "json") {
+              body = JSON.stringify(body);
+            }
+            return new Response(body)[key]();
+          });
+        }
+        return bodyCache[key] = raw2[key]();
+      };
+      json() {
+        return this.#cachedBody("json");
+      }
+      text() {
+        return this.#cachedBody("text");
+      }
+      arrayBuffer() {
+        return this.#cachedBody("arrayBuffer");
+      }
+      blob() {
+        return this.#cachedBody("blob");
+      }
+      formData() {
+        return this.#cachedBody("formData");
+      }
+      addValidatedData(target, data) {
+        this.#validatedData[target] = data;
+      }
+      valid(target) {
+        return this.#validatedData[target];
+      }
+      get url() {
+        return this.raw.url;
+      }
+      get method() {
+        return this.raw.method;
+      }
+      get matchedRoutes() {
+        return this.#matchResult[0].map(([[, route]]) => route);
+      }
+      get routePath() {
+        return this.#matchResult[0].map(([[, route]]) => route)[this.routeIndex].path;
+      }
+    };
+  }
+});
+
+// ../node_modules/.pnpm/hono@4.7.10/node_modules/hono/dist/utils/html.js
+var HtmlEscapedCallbackPhase, raw, resolveCallback;
+var init_html = __esm({
+  "../node_modules/.pnpm/hono@4.7.10/node_modules/hono/dist/utils/html.js"() {
+    HtmlEscapedCallbackPhase = {
+      Stringify: 1,
+      BeforeStream: 2,
+      Stream: 3
+    };
+    raw = (value, callbacks) => {
+      const escapedString = new String(value);
+      escapedString.isEscaped = true;
+      escapedString.callbacks = callbacks;
+      return escapedString;
+    };
+    resolveCallback = async (str, phase, preserveCallbacks, context, buffer) => {
+      if (typeof str === "object" && !(str instanceof String)) {
+        if (!(str instanceof Promise)) {
+          str = str.toString();
+        }
+        if (str instanceof Promise) {
+          str = await str;
+        }
+      }
+      const callbacks = str.callbacks;
+      if (!(callbacks == null ? void 0 : callbacks.length)) {
+        return Promise.resolve(str);
+      }
+      if (buffer) {
+        buffer[0] += str;
+      } else {
+        buffer = [str];
+      }
+      const resStr = Promise.all(callbacks.map((c3) => c3({ phase, buffer, context }))).then(
+        (res) => Promise.all(
+          res.filter(Boolean).map((str2) => resolveCallback(str2, phase, false, context, buffer))
+        ).then(() => buffer[0])
+      );
+      if (preserveCallbacks) {
+        return raw(await resStr, callbacks);
+      } else {
+        return resStr;
+      }
+    };
+  }
+});
+
+// ../node_modules/.pnpm/hono@4.7.10/node_modules/hono/dist/context.js
+var TEXT_PLAIN, setHeaders, Context;
+var init_context = __esm({
+  "../node_modules/.pnpm/hono@4.7.10/node_modules/hono/dist/context.js"() {
+    init_request2();
+    init_html();
+    TEXT_PLAIN = "text/plain; charset=UTF-8";
+    setHeaders = (headers, map2 = {}) => {
+      for (const key of Object.keys(map2)) {
+        headers.set(key, map2[key]);
+      }
+      return headers;
+    };
+    Context = class {
+      #rawRequest;
+      #req;
+      env = {};
+      #var;
+      finalized = false;
+      error;
+      #status = 200;
+      #executionCtx;
+      #headers;
+      #preparedHeaders;
+      #res;
+      #isFresh = true;
+      #layout;
+      #renderer;
+      #notFoundHandler;
+      #matchResult;
+      #path;
+      constructor(req, options) {
+        this.#rawRequest = req;
+        if (options) {
+          this.#executionCtx = options.executionCtx;
+          this.env = options.env;
+          this.#notFoundHandler = options.notFoundHandler;
+          this.#path = options.path;
+          this.#matchResult = options.matchResult;
+        }
+      }
+      get req() {
+        this.#req ??= new HonoRequest(this.#rawRequest, this.#path, this.#matchResult);
+        return this.#req;
+      }
+      get event() {
+        if (this.#executionCtx && "respondWith" in this.#executionCtx) {
+          return this.#executionCtx;
+        } else {
+          throw Error("This context has no FetchEvent");
+        }
+      }
+      get executionCtx() {
+        if (this.#executionCtx) {
+          return this.#executionCtx;
+        } else {
+          throw Error("This context has no ExecutionContext");
+        }
+      }
+      get res() {
+        this.#isFresh = false;
+        return this.#res ||= new Response("404 Not Found", { status: 404 });
+      }
+      set res(_res) {
+        this.#isFresh = false;
+        if (this.#res && _res) {
+          _res = new Response(_res.body, _res);
+          for (const [k3, v6] of this.#res.headers.entries()) {
+            if (k3 === "content-type") {
+              continue;
+            }
+            if (k3 === "set-cookie") {
+              const cookies = this.#res.headers.getSetCookie();
+              _res.headers.delete("set-cookie");
+              for (const cookie of cookies) {
+                _res.headers.append("set-cookie", cookie);
+              }
+            } else {
+              _res.headers.set(k3, v6);
+            }
+          }
+        }
+        this.#res = _res;
+        this.finalized = true;
+      }
+      render = (...args) => {
+        this.#renderer ??= (content) => this.html(content);
+        return this.#renderer(...args);
+      };
+      setLayout = (layout) => this.#layout = layout;
+      getLayout = () => this.#layout;
+      setRenderer = (renderer) => {
+        this.#renderer = renderer;
+      };
+      header = (name, value, options) => {
+        if (this.finalized) {
+          this.#res = new Response(this.#res.body, this.#res);
+        }
+        if (value === void 0) {
+          if (this.#headers) {
+            this.#headers.delete(name);
+          } else if (this.#preparedHeaders) {
+            delete this.#preparedHeaders[name.toLocaleLowerCase()];
+          }
+          if (this.finalized) {
+            this.res.headers.delete(name);
+          }
+          return;
+        }
+        if (options == null ? void 0 : options.append) {
+          if (!this.#headers) {
+            this.#isFresh = false;
+            this.#headers = new Headers(this.#preparedHeaders);
+            this.#preparedHeaders = {};
+          }
+          this.#headers.append(name, value);
+        } else {
+          if (this.#headers) {
+            this.#headers.set(name, value);
+          } else {
+            this.#preparedHeaders ??= {};
+            this.#preparedHeaders[name.toLowerCase()] = value;
+          }
+        }
+        if (this.finalized) {
+          if (options == null ? void 0 : options.append) {
+            this.res.headers.append(name, value);
+          } else {
+            this.res.headers.set(name, value);
+          }
+        }
+      };
+      status = (status) => {
+        this.#isFresh = false;
+        this.#status = status;
+      };
+      set = (key, value) => {
+        this.#var ??= /* @__PURE__ */ new Map();
+        this.#var.set(key, value);
+      };
+      get = (key) => {
+        return this.#var ? this.#var.get(key) : void 0;
+      };
+      get var() {
+        if (!this.#var) {
+          return {};
+        }
+        return Object.fromEntries(this.#var);
+      }
+      #newResponse(data, arg, headers) {
+        if (this.#isFresh && !headers && !arg && this.#status === 200) {
+          return new Response(data, {
+            headers: this.#preparedHeaders
+          });
+        }
+        if (arg && typeof arg !== "number") {
+          const header = new Headers(arg.headers);
+          if (this.#headers) {
+            this.#headers.forEach((v6, k3) => {
+              if (k3 === "set-cookie") {
+                header.append(k3, v6);
+              } else {
+                header.set(k3, v6);
+              }
+            });
+          }
+          const headers2 = setHeaders(header, this.#preparedHeaders);
+          return new Response(data, {
+            headers: headers2,
+            status: arg.status ?? this.#status
+          });
+        }
+        const status = typeof arg === "number" ? arg : this.#status;
+        this.#preparedHeaders ??= {};
+        this.#headers ??= new Headers();
+        setHeaders(this.#headers, this.#preparedHeaders);
+        if (this.#res) {
+          this.#res.headers.forEach((v6, k3) => {
+            var _a2, _b;
+            if (k3 === "set-cookie") {
+              (_a2 = this.#headers) == null ? void 0 : _a2.append(k3, v6);
+            } else {
+              (_b = this.#headers) == null ? void 0 : _b.set(k3, v6);
+            }
+          });
+          setHeaders(this.#headers, this.#preparedHeaders);
+        }
+        headers ??= {};
+        for (const [k3, v6] of Object.entries(headers)) {
+          if (typeof v6 === "string") {
+            this.#headers.set(k3, v6);
+          } else {
+            this.#headers.delete(k3);
+            for (const v22 of v6) {
+              this.#headers.append(k3, v22);
+            }
+          }
+        }
+        return new Response(data, {
+          status,
+          headers: this.#headers
+        });
+      }
+      newResponse = (...args) => this.#newResponse(...args);
+      body = (data, arg, headers) => {
+        return typeof arg === "number" ? this.#newResponse(data, arg, headers) : this.#newResponse(data, arg);
+      };
+      text = (text, arg, headers) => {
+        if (!this.#preparedHeaders) {
+          if (this.#isFresh && !headers && !arg) {
+            return new Response(text);
+          }
+          this.#preparedHeaders = {};
+        }
+        this.#preparedHeaders["content-type"] = TEXT_PLAIN;
+        if (typeof arg === "number") {
+          return this.#newResponse(text, arg, headers);
+        }
+        return this.#newResponse(text, arg);
+      };
+      json = (object, arg, headers) => {
+        const body = JSON.stringify(object);
+        this.#preparedHeaders ??= {};
+        this.#preparedHeaders["content-type"] = "application/json";
+        return typeof arg === "number" ? this.#newResponse(body, arg, headers) : this.#newResponse(body, arg);
+      };
+      html = (html, arg, headers) => {
+        this.#preparedHeaders ??= {};
+        this.#preparedHeaders["content-type"] = "text/html; charset=UTF-8";
+        if (typeof html === "object") {
+          return resolveCallback(html, HtmlEscapedCallbackPhase.Stringify, false, {}).then((html2) => {
+            return typeof arg === "number" ? this.#newResponse(html2, arg, headers) : this.#newResponse(html2, arg);
+          });
+        }
+        return typeof arg === "number" ? this.#newResponse(html, arg, headers) : this.#newResponse(html, arg);
+      };
+      redirect = (location, status) => {
+        this.#headers ??= new Headers();
+        this.#headers.set("Location", String(location));
+        return this.newResponse(null, status ?? 302);
+      };
+      notFound = () => {
+        this.#notFoundHandler ??= () => new Response();
+        return this.#notFoundHandler(this);
+      };
+    };
+  }
+});
+
+// ../node_modules/.pnpm/hono@4.7.10/node_modules/hono/dist/router.js
+var METHOD_NAME_ALL, METHOD_NAME_ALL_LOWERCASE, METHODS, MESSAGE_MATCHER_IS_ALREADY_BUILT, UnsupportedPathError;
+var init_router = __esm({
+  "../node_modules/.pnpm/hono@4.7.10/node_modules/hono/dist/router.js"() {
+    METHOD_NAME_ALL = "ALL";
+    METHOD_NAME_ALL_LOWERCASE = "all";
+    METHODS = ["get", "post", "put", "delete", "options", "patch"];
+    MESSAGE_MATCHER_IS_ALREADY_BUILT = "Can not add a route since the matcher is already built.";
+    UnsupportedPathError = class extends Error {
+    };
+  }
+});
+
+// ../node_modules/.pnpm/hono@4.7.10/node_modules/hono/dist/utils/constants.js
+var COMPOSED_HANDLER;
+var init_constants = __esm({
+  "../node_modules/.pnpm/hono@4.7.10/node_modules/hono/dist/utils/constants.js"() {
+    COMPOSED_HANDLER = "__COMPOSED_HANDLER";
+  }
+});
+
+// ../node_modules/.pnpm/hono@4.7.10/node_modules/hono/dist/hono-base.js
+var notFoundHandler, errorHandler, Hono;
+var init_hono_base = __esm({
+  "../node_modules/.pnpm/hono@4.7.10/node_modules/hono/dist/hono-base.js"() {
+    init_compose();
+    init_context();
+    init_router();
+    init_constants();
+    init_url();
+    notFoundHandler = (c3) => {
+      return c3.text("404 Not Found", 404);
+    };
+    errorHandler = (err2, c3) => {
+      if ("getResponse" in err2) {
+        return err2.getResponse();
+      }
+      console.error(err2);
+      return c3.text("Internal Server Error", 500);
+    };
+    Hono = class {
+      get;
+      post;
+      put;
+      delete;
+      options;
+      patch;
+      all;
+      on;
+      use;
+      router;
+      getPath;
+      _basePath = "/";
+      #path = "/";
+      routes = [];
+      constructor(options = {}) {
+        const allMethods = [...METHODS, METHOD_NAME_ALL_LOWERCASE];
+        allMethods.forEach((method) => {
+          this[method] = (args1, ...args) => {
+            if (typeof args1 === "string") {
+              this.#path = args1;
+            } else {
+              this.#addRoute(method, this.#path, args1);
+            }
+            args.forEach((handler) => {
+              this.#addRoute(method, this.#path, handler);
+            });
+            return this;
+          };
+        });
+        this.on = (method, path4, ...handlers) => {
+          for (const p3 of [path4].flat()) {
+            this.#path = p3;
+            for (const m4 of [method].flat()) {
+              handlers.map((handler) => {
+                this.#addRoute(m4.toUpperCase(), this.#path, handler);
+              });
+            }
+          }
+          return this;
+        };
+        this.use = (arg1, ...handlers) => {
+          if (typeof arg1 === "string") {
+            this.#path = arg1;
+          } else {
+            this.#path = "*";
+            handlers.unshift(arg1);
+          }
+          handlers.forEach((handler) => {
+            this.#addRoute(METHOD_NAME_ALL, this.#path, handler);
+          });
+          return this;
+        };
+        const { strict, ...optionsWithoutStrict } = options;
+        Object.assign(this, optionsWithoutStrict);
+        this.getPath = strict ?? true ? options.getPath ?? getPath : getPathNoStrict;
+      }
+      #clone() {
+        const clone2 = new Hono({
+          router: this.router,
+          getPath: this.getPath
+        });
+        clone2.errorHandler = this.errorHandler;
+        clone2.#notFoundHandler = this.#notFoundHandler;
+        clone2.routes = this.routes;
+        return clone2;
+      }
+      #notFoundHandler = notFoundHandler;
+      errorHandler = errorHandler;
+      route(path4, app) {
+        const subApp = this.basePath(path4);
+        app.routes.map((r4) => {
+          let handler;
+          if (app.errorHandler === errorHandler) {
+            handler = r4.handler;
+          } else {
+            handler = async (c3, next) => (await compose([], app.errorHandler)(c3, () => r4.handler(c3, next))).res;
+            handler[COMPOSED_HANDLER] = r4.handler;
+          }
+          subApp.#addRoute(r4.method, r4.path, handler);
+        });
+        return this;
+      }
+      basePath(path4) {
+        const subApp = this.#clone();
+        subApp._basePath = mergePath(this._basePath, path4);
+        return subApp;
+      }
+      onError = (handler) => {
+        this.errorHandler = handler;
+        return this;
+      };
+      notFound = (handler) => {
+        this.#notFoundHandler = handler;
+        return this;
+      };
+      mount(path4, applicationHandler, options) {
+        let replaceRequest;
+        let optionHandler;
+        if (options) {
+          if (typeof options === "function") {
+            optionHandler = options;
+          } else {
+            optionHandler = options.optionHandler;
+            if (options.replaceRequest === false) {
+              replaceRequest = (request) => request;
+            } else {
+              replaceRequest = options.replaceRequest;
+            }
+          }
+        }
+        const getOptions = optionHandler ? (c3) => {
+          const options2 = optionHandler(c3);
+          return Array.isArray(options2) ? options2 : [options2];
+        } : (c3) => {
+          let executionContext = void 0;
+          try {
+            executionContext = c3.executionCtx;
+          } catch {
+          }
+          return [c3.env, executionContext];
+        };
+        replaceRequest ||= (() => {
+          const mergedPath = mergePath(this._basePath, path4);
+          const pathPrefixLength = mergedPath === "/" ? 0 : mergedPath.length;
+          return (request) => {
+            const url = new URL(request.url);
+            url.pathname = url.pathname.slice(pathPrefixLength) || "/";
+            return new Request(url, request);
+          };
+        })();
+        const handler = async (c3, next) => {
+          const res = await applicationHandler(replaceRequest(c3.req.raw), ...getOptions(c3));
+          if (res) {
+            return res;
+          }
+          await next();
+        };
+        this.#addRoute(METHOD_NAME_ALL, mergePath(path4, "*"), handler);
+        return this;
+      }
+      #addRoute(method, path4, handler) {
+        method = method.toUpperCase();
+        path4 = mergePath(this._basePath, path4);
+        const r4 = { path: path4, method, handler };
+        this.router.add(method, path4, [handler, r4]);
+        this.routes.push(r4);
+      }
+      #handleError(err2, c3) {
+        if (err2 instanceof Error) {
+          return this.errorHandler(err2, c3);
+        }
+        throw err2;
+      }
+      #dispatch(request, executionCtx, env3, method) {
+        if (method === "HEAD") {
+          return (async () => new Response(null, await this.#dispatch(request, executionCtx, env3, "GET")))();
+        }
+        const path4 = this.getPath(request, { env: env3 });
+        const matchResult = this.router.match(method, path4);
+        const c3 = new Context(request, {
+          path: path4,
+          matchResult,
+          env: env3,
+          executionCtx,
+          notFoundHandler: this.#notFoundHandler
+        });
+        if (matchResult[0].length === 1) {
+          let res;
+          try {
+            res = matchResult[0][0][0][0](c3, async () => {
+              c3.res = await this.#notFoundHandler(c3);
+            });
+          } catch (err2) {
+            return this.#handleError(err2, c3);
+          }
+          return res instanceof Promise ? res.then(
+            (resolved) => resolved || (c3.finalized ? c3.res : this.#notFoundHandler(c3))
+          ).catch((err2) => this.#handleError(err2, c3)) : res ?? this.#notFoundHandler(c3);
+        }
+        const composed = compose(matchResult[0], this.errorHandler, this.#notFoundHandler);
+        return (async () => {
+          try {
+            const context = await composed(c3);
+            if (!context.finalized) {
+              throw new Error(
+                "Context is not finalized. Did you forget to return a Response object or `await next()`?"
+              );
+            }
+            return context.res;
+          } catch (err2) {
+            return this.#handleError(err2, c3);
+          }
+        })();
+      }
+      fetch = (request, ...rest) => {
+        return this.#dispatch(request, rest[1], rest[0], request.method);
+      };
+      request = (input, requestInit, Env, executionCtx) => {
+        if (input instanceof Request) {
+          return this.fetch(requestInit ? new Request(input, requestInit) : input, Env, executionCtx);
+        }
+        input = input.toString();
+        return this.fetch(
+          new Request(
+            /^https?:\/\//.test(input) ? input : `http://localhost${mergePath("/", input)}`,
+            requestInit
+          ),
+          Env,
+          executionCtx
+        );
+      };
+      fire = () => {
+        addEventListener("fetch", (event) => {
+          event.respondWith(this.#dispatch(event.request, event, void 0, event.request.method));
+        });
+      };
+    };
+  }
+});
+
+// ../node_modules/.pnpm/hono@4.7.10/node_modules/hono/dist/router/reg-exp-router/node.js
+function compareKey(a3, b3) {
+  if (a3.length === 1) {
+    return b3.length === 1 ? a3 < b3 ? -1 : 1 : -1;
+  }
+  if (b3.length === 1) {
+    return 1;
+  }
+  if (a3 === ONLY_WILDCARD_REG_EXP_STR || a3 === TAIL_WILDCARD_REG_EXP_STR) {
+    return 1;
+  } else if (b3 === ONLY_WILDCARD_REG_EXP_STR || b3 === TAIL_WILDCARD_REG_EXP_STR) {
+    return -1;
+  }
+  if (a3 === LABEL_REG_EXP_STR) {
+    return 1;
+  } else if (b3 === LABEL_REG_EXP_STR) {
+    return -1;
+  }
+  return a3.length === b3.length ? a3 < b3 ? -1 : 1 : b3.length - a3.length;
+}
+var LABEL_REG_EXP_STR, ONLY_WILDCARD_REG_EXP_STR, TAIL_WILDCARD_REG_EXP_STR, PATH_ERROR, regExpMetaChars, Node;
+var init_node = __esm({
+  "../node_modules/.pnpm/hono@4.7.10/node_modules/hono/dist/router/reg-exp-router/node.js"() {
+    LABEL_REG_EXP_STR = "[^/]+";
+    ONLY_WILDCARD_REG_EXP_STR = ".*";
+    TAIL_WILDCARD_REG_EXP_STR = "(?:|/.*)";
+    PATH_ERROR = Symbol();
+    regExpMetaChars = new Set(".\\+*[^]$()");
+    Node = class {
+      #index;
+      #varIndex;
+      #children = /* @__PURE__ */ Object.create(null);
+      insert(tokens, index6, paramMap, context, pathErrorCheckOnly) {
+        if (tokens.length === 0) {
+          if (this.#index !== void 0) {
+            throw PATH_ERROR;
+          }
+          if (pathErrorCheckOnly) {
+            return;
+          }
+          this.#index = index6;
+          return;
+        }
+        const [token, ...restTokens] = tokens;
+        const pattern = token === "*" ? restTokens.length === 0 ? ["", "", ONLY_WILDCARD_REG_EXP_STR] : ["", "", LABEL_REG_EXP_STR] : token === "/*" ? ["", "", TAIL_WILDCARD_REG_EXP_STR] : token.match(/^\:([^\{\}]+)(?:\{(.+)\})?$/);
+        let node;
+        if (pattern) {
+          const name = pattern[1];
+          let regexpStr = pattern[2] || LABEL_REG_EXP_STR;
+          if (name && pattern[2]) {
+            regexpStr = regexpStr.replace(/^\((?!\?:)(?=[^)]+\)$)/, "(?:");
+            if (/\((?!\?:)/.test(regexpStr)) {
+              throw PATH_ERROR;
+            }
+          }
+          node = this.#children[regexpStr];
+          if (!node) {
+            if (Object.keys(this.#children).some(
+              (k3) => k3 !== ONLY_WILDCARD_REG_EXP_STR && k3 !== TAIL_WILDCARD_REG_EXP_STR
+            )) {
+              throw PATH_ERROR;
+            }
+            if (pathErrorCheckOnly) {
+              return;
+            }
+            node = this.#children[regexpStr] = new Node();
+            if (name !== "") {
+              node.#varIndex = context.varIndex++;
+            }
+          }
+          if (!pathErrorCheckOnly && name !== "") {
+            paramMap.push([name, node.#varIndex]);
+          }
+        } else {
+          node = this.#children[token];
+          if (!node) {
+            if (Object.keys(this.#children).some(
+              (k3) => k3.length > 1 && k3 !== ONLY_WILDCARD_REG_EXP_STR && k3 !== TAIL_WILDCARD_REG_EXP_STR
+            )) {
+              throw PATH_ERROR;
+            }
+            if (pathErrorCheckOnly) {
+              return;
+            }
+            node = this.#children[token] = new Node();
+          }
+        }
+        node.insert(restTokens, index6, paramMap, context, pathErrorCheckOnly);
+      }
+      buildRegExpStr() {
+        const childKeys = Object.keys(this.#children).sort(compareKey);
+        const strList = childKeys.map((k3) => {
+          const c3 = this.#children[k3];
+          return (typeof c3.#varIndex === "number" ? `(${k3})@${c3.#varIndex}` : regExpMetaChars.has(k3) ? `\\${k3}` : k3) + c3.buildRegExpStr();
+        });
+        if (typeof this.#index === "number") {
+          strList.unshift(`#${this.#index}`);
+        }
+        if (strList.length === 0) {
+          return "";
+        }
+        if (strList.length === 1) {
+          return strList[0];
+        }
+        return "(?:" + strList.join("|") + ")";
+      }
+    };
+  }
+});
+
+// ../node_modules/.pnpm/hono@4.7.10/node_modules/hono/dist/router/reg-exp-router/trie.js
+var Trie;
+var init_trie = __esm({
+  "../node_modules/.pnpm/hono@4.7.10/node_modules/hono/dist/router/reg-exp-router/trie.js"() {
+    init_node();
+    Trie = class {
+      #context = { varIndex: 0 };
+      #root = new Node();
+      insert(path4, index6, pathErrorCheckOnly) {
+        const paramAssoc = [];
+        const groups = [];
+        for (let i4 = 0; ; ) {
+          let replaced = false;
+          path4 = path4.replace(/\{[^}]+\}/g, (m4) => {
+            const mark = `@\\${i4}`;
+            groups[i4] = [mark, m4];
+            i4++;
+            replaced = true;
+            return mark;
+          });
+          if (!replaced) {
+            break;
+          }
+        }
+        const tokens = path4.match(/(?::[^\/]+)|(?:\/\*$)|./g) || [];
+        for (let i4 = groups.length - 1; i4 >= 0; i4--) {
+          const [mark] = groups[i4];
+          for (let j3 = tokens.length - 1; j3 >= 0; j3--) {
+            if (tokens[j3].indexOf(mark) !== -1) {
+              tokens[j3] = tokens[j3].replace(mark, groups[i4][1]);
+              break;
+            }
+          }
+        }
+        this.#root.insert(tokens, index6, paramAssoc, this.#context, pathErrorCheckOnly);
+        return paramAssoc;
+      }
+      buildRegExp() {
+        let regexp = this.#root.buildRegExpStr();
+        if (regexp === "") {
+          return [/^$/, [], []];
+        }
+        let captureIndex = 0;
+        const indexReplacementMap = [];
+        const paramReplacementMap = [];
+        regexp = regexp.replace(/#(\d+)|@(\d+)|\.\*\$/g, (_3, handlerIndex, paramIndex) => {
+          if (handlerIndex !== void 0) {
+            indexReplacementMap[++captureIndex] = Number(handlerIndex);
+            return "$()";
+          }
+          if (paramIndex !== void 0) {
+            paramReplacementMap[Number(paramIndex)] = ++captureIndex;
+            return "";
+          }
+          return "";
+        });
+        return [new RegExp(`^${regexp}`), indexReplacementMap, paramReplacementMap];
+      }
+    };
+  }
+});
+
+// ../node_modules/.pnpm/hono@4.7.10/node_modules/hono/dist/router/reg-exp-router/router.js
+function buildWildcardRegExp(path4) {
+  return wildcardRegExpCache[path4] ??= new RegExp(
+    path4 === "*" ? "" : `^${path4.replace(
+      /\/\*$|([.\\+*[^\]$()])/g,
+      (_3, metaChar) => metaChar ? `\\${metaChar}` : "(?:|/.*)"
+    )}$`
+  );
+}
+function clearWildcardRegExpCache() {
+  wildcardRegExpCache = /* @__PURE__ */ Object.create(null);
+}
+function buildMatcherFromPreprocessedRoutes(routes) {
+  var _a2;
+  const trie = new Trie();
+  const handlerData = [];
+  if (routes.length === 0) {
+    return nullMatcher;
+  }
+  const routesWithStaticPathFlag = routes.map(
+    (route) => [!/\*|\/:/.test(route[0]), ...route]
+  ).sort(
+    ([isStaticA, pathA], [isStaticB, pathB]) => isStaticA ? 1 : isStaticB ? -1 : pathA.length - pathB.length
+  );
+  const staticMap = /* @__PURE__ */ Object.create(null);
+  for (let i4 = 0, j3 = -1, len = routesWithStaticPathFlag.length; i4 < len; i4++) {
+    const [pathErrorCheckOnly, path4, handlers] = routesWithStaticPathFlag[i4];
+    if (pathErrorCheckOnly) {
+      staticMap[path4] = [handlers.map(([h4]) => [h4, /* @__PURE__ */ Object.create(null)]), emptyParam];
+    } else {
+      j3++;
+    }
+    let paramAssoc;
+    try {
+      paramAssoc = trie.insert(path4, j3, pathErrorCheckOnly);
+    } catch (e4) {
+      throw e4 === PATH_ERROR ? new UnsupportedPathError(path4) : e4;
+    }
+    if (pathErrorCheckOnly) {
+      continue;
+    }
+    handlerData[j3] = handlers.map(([h4, paramCount]) => {
+      const paramIndexMap = /* @__PURE__ */ Object.create(null);
+      paramCount -= 1;
+      for (; paramCount >= 0; paramCount--) {
+        const [key, value] = paramAssoc[paramCount];
+        paramIndexMap[key] = value;
+      }
+      return [h4, paramIndexMap];
+    });
+  }
+  const [regexp, indexReplacementMap, paramReplacementMap] = trie.buildRegExp();
+  for (let i4 = 0, len = handlerData.length; i4 < len; i4++) {
+    for (let j3 = 0, len2 = handlerData[i4].length; j3 < len2; j3++) {
+      const map2 = (_a2 = handlerData[i4][j3]) == null ? void 0 : _a2[1];
+      if (!map2) {
+        continue;
+      }
+      const keys = Object.keys(map2);
+      for (let k3 = 0, len3 = keys.length; k3 < len3; k3++) {
+        map2[keys[k3]] = paramReplacementMap[map2[keys[k3]]];
+      }
+    }
+  }
+  const handlerMap = [];
+  for (const i4 in indexReplacementMap) {
+    handlerMap[i4] = handlerData[indexReplacementMap[i4]];
+  }
+  return [regexp, handlerMap, staticMap];
+}
+function findMiddleware(middleware, path4) {
+  if (!middleware) {
+    return void 0;
+  }
+  for (const k3 of Object.keys(middleware).sort((a3, b3) => b3.length - a3.length)) {
+    if (buildWildcardRegExp(k3).test(path4)) {
+      return [...middleware[k3]];
+    }
+  }
+  return void 0;
+}
+var emptyParam, nullMatcher, wildcardRegExpCache, RegExpRouter;
+var init_router2 = __esm({
+  "../node_modules/.pnpm/hono@4.7.10/node_modules/hono/dist/router/reg-exp-router/router.js"() {
+    init_router();
+    init_url();
+    init_node();
+    init_trie();
+    emptyParam = [];
+    nullMatcher = [/^$/, [], /* @__PURE__ */ Object.create(null)];
+    wildcardRegExpCache = /* @__PURE__ */ Object.create(null);
+    RegExpRouter = class {
+      name = "RegExpRouter";
+      #middleware;
+      #routes;
+      constructor() {
+        this.#middleware = { [METHOD_NAME_ALL]: /* @__PURE__ */ Object.create(null) };
+        this.#routes = { [METHOD_NAME_ALL]: /* @__PURE__ */ Object.create(null) };
+      }
+      add(method, path4, handler) {
+        const middleware = this.#middleware;
+        const routes = this.#routes;
+        if (!middleware || !routes) {
+          throw new Error(MESSAGE_MATCHER_IS_ALREADY_BUILT);
+        }
+        if (!middleware[method]) {
+          ;
+          [middleware, routes].forEach((handlerMap) => {
+            handlerMap[method] = /* @__PURE__ */ Object.create(null);
+            Object.keys(handlerMap[METHOD_NAME_ALL]).forEach((p3) => {
+              handlerMap[method][p3] = [...handlerMap[METHOD_NAME_ALL][p3]];
+            });
+          });
+        }
+        if (path4 === "/*") {
+          path4 = "*";
+        }
+        const paramCount = (path4.match(/\/:/g) || []).length;
+        if (/\*$/.test(path4)) {
+          const re = buildWildcardRegExp(path4);
+          if (method === METHOD_NAME_ALL) {
+            Object.keys(middleware).forEach((m4) => {
+              middleware[m4][path4] ||= findMiddleware(middleware[m4], path4) || findMiddleware(middleware[METHOD_NAME_ALL], path4) || [];
+            });
+          } else {
+            middleware[method][path4] ||= findMiddleware(middleware[method], path4) || findMiddleware(middleware[METHOD_NAME_ALL], path4) || [];
+          }
+          Object.keys(middleware).forEach((m4) => {
+            if (method === METHOD_NAME_ALL || method === m4) {
+              Object.keys(middleware[m4]).forEach((p3) => {
+                re.test(p3) && middleware[m4][p3].push([handler, paramCount]);
+              });
+            }
+          });
+          Object.keys(routes).forEach((m4) => {
+            if (method === METHOD_NAME_ALL || method === m4) {
+              Object.keys(routes[m4]).forEach(
+                (p3) => re.test(p3) && routes[m4][p3].push([handler, paramCount])
+              );
+            }
+          });
+          return;
+        }
+        const paths = checkOptionalParameter(path4) || [path4];
+        for (let i4 = 0, len = paths.length; i4 < len; i4++) {
+          const path22 = paths[i4];
+          Object.keys(routes).forEach((m4) => {
+            if (method === METHOD_NAME_ALL || method === m4) {
+              routes[m4][path22] ||= [
+                ...findMiddleware(middleware[m4], path22) || findMiddleware(middleware[METHOD_NAME_ALL], path22) || []
+              ];
+              routes[m4][path22].push([handler, paramCount - len + i4 + 1]);
+            }
+          });
+        }
+      }
+      match(method, path4) {
+        clearWildcardRegExpCache();
+        const matchers = this.#buildAllMatchers();
+        this.match = (method2, path22) => {
+          const matcher = matchers[method2] || matchers[METHOD_NAME_ALL];
+          const staticMatch = matcher[2][path22];
+          if (staticMatch) {
+            return staticMatch;
+          }
+          const match2 = path22.match(matcher[0]);
+          if (!match2) {
+            return [[], emptyParam];
+          }
+          const index6 = match2.indexOf("", 1);
+          return [matcher[1][index6], match2];
+        };
+        return this.match(method, path4);
+      }
+      #buildAllMatchers() {
+        const matchers = /* @__PURE__ */ Object.create(null);
+        Object.keys(this.#routes).concat(Object.keys(this.#middleware)).forEach((method) => {
+          matchers[method] ||= this.#buildMatcher(method);
+        });
+        this.#middleware = this.#routes = void 0;
+        return matchers;
+      }
+      #buildMatcher(method) {
+        const routes = [];
+        let hasOwnRoute = method === METHOD_NAME_ALL;
+        [this.#middleware, this.#routes].forEach((r4) => {
+          const ownRoute = r4[method] ? Object.keys(r4[method]).map((path4) => [path4, r4[method][path4]]) : [];
+          if (ownRoute.length !== 0) {
+            hasOwnRoute ||= true;
+            routes.push(...ownRoute);
+          } else if (method !== METHOD_NAME_ALL) {
+            routes.push(
+              ...Object.keys(r4[METHOD_NAME_ALL]).map((path4) => [path4, r4[METHOD_NAME_ALL][path4]])
+            );
+          }
+        });
+        if (!hasOwnRoute) {
+          return null;
+        } else {
+          return buildMatcherFromPreprocessedRoutes(routes);
+        }
+      }
+    };
+  }
+});
+
+// ../node_modules/.pnpm/hono@4.7.10/node_modules/hono/dist/router/reg-exp-router/index.js
+var init_reg_exp_router = __esm({
+  "../node_modules/.pnpm/hono@4.7.10/node_modules/hono/dist/router/reg-exp-router/index.js"() {
+    init_router2();
+  }
+});
+
+// ../node_modules/.pnpm/hono@4.7.10/node_modules/hono/dist/router/smart-router/router.js
+var SmartRouter;
+var init_router3 = __esm({
+  "../node_modules/.pnpm/hono@4.7.10/node_modules/hono/dist/router/smart-router/router.js"() {
+    init_router();
+    SmartRouter = class {
+      name = "SmartRouter";
+      #routers = [];
+      #routes = [];
+      constructor(init2) {
+        this.#routers = init2.routers;
+      }
+      add(method, path4, handler) {
+        if (!this.#routes) {
+          throw new Error(MESSAGE_MATCHER_IS_ALREADY_BUILT);
+        }
+        this.#routes.push([method, path4, handler]);
+      }
+      match(method, path4) {
+        if (!this.#routes) {
+          throw new Error("Fatal error");
+        }
+        const routers = this.#routers;
+        const routes = this.#routes;
+        const len = routers.length;
+        let i4 = 0;
+        let res;
+        for (; i4 < len; i4++) {
+          const router = routers[i4];
+          try {
+            for (let i22 = 0, len2 = routes.length; i22 < len2; i22++) {
+              router.add(...routes[i22]);
+            }
+            res = router.match(method, path4);
+          } catch (e4) {
+            if (e4 instanceof UnsupportedPathError) {
+              continue;
+            }
+            throw e4;
+          }
+          this.match = router.match.bind(router);
+          this.#routers = [router];
+          this.#routes = void 0;
+          break;
+        }
+        if (i4 === len) {
+          throw new Error("Fatal error");
+        }
+        this.name = `SmartRouter + ${this.activeRouter.name}`;
+        return res;
+      }
+      get activeRouter() {
+        if (this.#routes || this.#routers.length !== 1) {
+          throw new Error("No active router has been determined yet.");
+        }
+        return this.#routers[0];
+      }
+    };
+  }
+});
+
+// ../node_modules/.pnpm/hono@4.7.10/node_modules/hono/dist/router/smart-router/index.js
+var init_smart_router = __esm({
+  "../node_modules/.pnpm/hono@4.7.10/node_modules/hono/dist/router/smart-router/index.js"() {
+    init_router3();
+  }
+});
+
+// ../node_modules/.pnpm/hono@4.7.10/node_modules/hono/dist/router/trie-router/node.js
+var emptyParams, Node2;
+var init_node2 = __esm({
+  "../node_modules/.pnpm/hono@4.7.10/node_modules/hono/dist/router/trie-router/node.js"() {
+    init_router();
+    init_url();
+    emptyParams = /* @__PURE__ */ Object.create(null);
+    Node2 = class {
+      #methods;
+      #children;
+      #patterns;
+      #order = 0;
+      #params = emptyParams;
+      constructor(method, handler, children) {
+        this.#children = children || /* @__PURE__ */ Object.create(null);
+        this.#methods = [];
+        if (method && handler) {
+          const m4 = /* @__PURE__ */ Object.create(null);
+          m4[method] = { handler, possibleKeys: [], score: 0 };
+          this.#methods = [m4];
+        }
+        this.#patterns = [];
+      }
+      insert(method, path4, handler) {
+        this.#order = ++this.#order;
+        let curNode = this;
+        const parts = splitRoutingPath(path4);
+        const possibleKeys = [];
+        for (let i4 = 0, len = parts.length; i4 < len; i4++) {
+          const p3 = parts[i4];
+          const nextP = parts[i4 + 1];
+          const pattern = getPattern(p3, nextP);
+          const key = Array.isArray(pattern) ? pattern[0] : p3;
+          if (Object.keys(curNode.#children).includes(key)) {
+            curNode = curNode.#children[key];
+            const pattern2 = getPattern(p3, nextP);
+            if (pattern2) {
+              possibleKeys.push(pattern2[1]);
+            }
+            continue;
+          }
+          curNode.#children[key] = new Node2();
+          if (pattern) {
+            curNode.#patterns.push(pattern);
+            possibleKeys.push(pattern[1]);
+          }
+          curNode = curNode.#children[key];
+        }
+        const m4 = /* @__PURE__ */ Object.create(null);
+        const handlerSet = {
+          handler,
+          possibleKeys: possibleKeys.filter((v6, i4, a3) => a3.indexOf(v6) === i4),
+          score: this.#order
+        };
+        m4[method] = handlerSet;
+        curNode.#methods.push(m4);
+        return curNode;
+      }
+      #getHandlerSets(node, method, nodeParams, params) {
+        const handlerSets = [];
+        for (let i4 = 0, len = node.#methods.length; i4 < len; i4++) {
+          const m4 = node.#methods[i4];
+          const handlerSet = m4[method] || m4[METHOD_NAME_ALL];
+          const processedSet = {};
+          if (handlerSet !== void 0) {
+            handlerSet.params = /* @__PURE__ */ Object.create(null);
+            handlerSets.push(handlerSet);
+            if (nodeParams !== emptyParams || params && params !== emptyParams) {
+              for (let i22 = 0, len2 = handlerSet.possibleKeys.length; i22 < len2; i22++) {
+                const key = handlerSet.possibleKeys[i22];
+                const processed = processedSet[handlerSet.score];
+                handlerSet.params[key] = (params == null ? void 0 : params[key]) && !processed ? params[key] : nodeParams[key] ?? (params == null ? void 0 : params[key]);
+                processedSet[handlerSet.score] = true;
+              }
+            }
+          }
+        }
+        return handlerSets;
+      }
+      search(method, path4) {
+        var _a2;
+        const handlerSets = [];
+        this.#params = emptyParams;
+        const curNode = this;
+        let curNodes = [curNode];
+        const parts = splitPath(path4);
+        const curNodesQueue = [];
+        for (let i4 = 0, len = parts.length; i4 < len; i4++) {
+          const part = parts[i4];
+          const isLast = i4 === len - 1;
+          const tempNodes = [];
+          for (let j3 = 0, len2 = curNodes.length; j3 < len2; j3++) {
+            const node = curNodes[j3];
+            const nextNode = node.#children[part];
+            if (nextNode) {
+              nextNode.#params = node.#params;
+              if (isLast) {
+                if (nextNode.#children["*"]) {
+                  handlerSets.push(
+                    ...this.#getHandlerSets(nextNode.#children["*"], method, node.#params)
+                  );
+                }
+                handlerSets.push(...this.#getHandlerSets(nextNode, method, node.#params));
+              } else {
+                tempNodes.push(nextNode);
+              }
+            }
+            for (let k3 = 0, len3 = node.#patterns.length; k3 < len3; k3++) {
+              const pattern = node.#patterns[k3];
+              const params = node.#params === emptyParams ? {} : { ...node.#params };
+              if (pattern === "*") {
+                const astNode = node.#children["*"];
+                if (astNode) {
+                  handlerSets.push(...this.#getHandlerSets(astNode, method, node.#params));
+                  astNode.#params = params;
+                  tempNodes.push(astNode);
+                }
+                continue;
+              }
+              if (part === "") {
+                continue;
+              }
+              const [key, name, matcher] = pattern;
+              const child = node.#children[key];
+              const restPathString = parts.slice(i4).join("/");
+              if (matcher instanceof RegExp) {
+                const m4 = matcher.exec(restPathString);
+                if (m4) {
+                  params[name] = m4[0];
+                  handlerSets.push(...this.#getHandlerSets(child, method, node.#params, params));
+                  if (Object.keys(child.#children).length) {
+                    child.#params = params;
+                    const componentCount = ((_a2 = m4[0].match(/\//)) == null ? void 0 : _a2.length) ?? 0;
+                    const targetCurNodes = curNodesQueue[componentCount] ||= [];
+                    targetCurNodes.push(child);
+                  }
+                  continue;
+                }
+              }
+              if (matcher === true || matcher.test(part)) {
+                params[name] = part;
+                if (isLast) {
+                  handlerSets.push(...this.#getHandlerSets(child, method, params, node.#params));
+                  if (child.#children["*"]) {
+                    handlerSets.push(
+                      ...this.#getHandlerSets(child.#children["*"], method, params, node.#params)
+                    );
+                  }
+                } else {
+                  child.#params = params;
+                  tempNodes.push(child);
+                }
+              }
+            }
+          }
+          curNodes = tempNodes.concat(curNodesQueue.shift() ?? []);
+        }
+        if (handlerSets.length > 1) {
+          handlerSets.sort((a3, b3) => {
+            return a3.score - b3.score;
+          });
+        }
+        return [handlerSets.map(({ handler, params }) => [handler, params])];
+      }
+    };
+  }
+});
+
+// ../node_modules/.pnpm/hono@4.7.10/node_modules/hono/dist/router/trie-router/router.js
+var TrieRouter;
+var init_router4 = __esm({
+  "../node_modules/.pnpm/hono@4.7.10/node_modules/hono/dist/router/trie-router/router.js"() {
+    init_url();
+    init_node2();
+    TrieRouter = class {
+      name = "TrieRouter";
+      #node;
+      constructor() {
+        this.#node = new Node2();
+      }
+      add(method, path4, handler) {
+        const results = checkOptionalParameter(path4);
+        if (results) {
+          for (let i4 = 0, len = results.length; i4 < len; i4++) {
+            this.#node.insert(method, results[i4], handler);
+          }
+          return;
+        }
+        this.#node.insert(method, path4, handler);
+      }
+      match(method, path4) {
+        return this.#node.search(method, path4);
+      }
+    };
+  }
+});
+
+// ../node_modules/.pnpm/hono@4.7.10/node_modules/hono/dist/router/trie-router/index.js
+var init_trie_router = __esm({
+  "../node_modules/.pnpm/hono@4.7.10/node_modules/hono/dist/router/trie-router/index.js"() {
+    init_router4();
+  }
+});
+
+// ../node_modules/.pnpm/hono@4.7.10/node_modules/hono/dist/hono.js
+var Hono2;
+var init_hono = __esm({
+  "../node_modules/.pnpm/hono@4.7.10/node_modules/hono/dist/hono.js"() {
+    init_hono_base();
+    init_reg_exp_router();
+    init_smart_router();
+    init_trie_router();
+    Hono2 = class extends Hono {
+      constructor(options = {}) {
+        super(options);
+        this.router = options.router ?? new SmartRouter({
+          routers: [new RegExpRouter(), new TrieRouter()]
+        });
+      }
+    };
+  }
+});
+
+// ../node_modules/.pnpm/hono@4.7.10/node_modules/hono/dist/index.js
+var init_dist3 = __esm({
+  "../node_modules/.pnpm/hono@4.7.10/node_modules/hono/dist/index.js"() {
+    init_hono();
+  }
+});
+
+// ../node_modules/.pnpm/hono@4.7.10/node_modules/hono/dist/utils/compress.js
+var COMPRESSIBLE_CONTENT_TYPE_REGEX;
+var init_compress = __esm({
+  "../node_modules/.pnpm/hono@4.7.10/node_modules/hono/dist/utils/compress.js"() {
+    COMPRESSIBLE_CONTENT_TYPE_REGEX = /^\s*(?:text\/(?!event-stream(?:[;\s]|$))[^;\s]+|application\/(?:javascript|json|xml|xml-dtd|ecmascript|dart|postscript|rtf|tar|toml|vnd\.dart|vnd\.ms-fontobject|vnd\.ms-opentype|wasm|x-httpd-php|x-javascript|x-ns-proxy-autoconfig|x-sh|x-tar|x-virtualbox-hdd|x-virtualbox-ova|x-virtualbox-ovf|x-virtualbox-vbox|x-virtualbox-vdi|x-virtualbox-vhd|x-virtualbox-vmdk|x-www-form-urlencoded)|font\/(?:otf|ttf)|image\/(?:bmp|vnd\.adobe\.photoshop|vnd\.microsoft\.icon|vnd\.ms-dds|x-icon|x-ms-bmp)|message\/rfc822|model\/gltf-binary|x-shader\/x-fragment|x-shader\/x-vertex|[^;\s]+?\+(?:json|text|xml|yaml))(?:[;\s]|$)/i;
+  }
+});
+
+// ../node_modules/.pnpm/hono@4.7.10/node_modules/hono/dist/middleware/compress/index.js
+var ENCODING_TYPES, cacheControlNoTransformRegExp, compress, shouldCompress, shouldTransform;
+var init_compress2 = __esm({
+  "../node_modules/.pnpm/hono@4.7.10/node_modules/hono/dist/middleware/compress/index.js"() {
+    init_compress();
+    ENCODING_TYPES = ["gzip", "deflate"];
+    cacheControlNoTransformRegExp = /(?:^|,)\s*?no-transform\s*?(?:,|$)/i;
+    compress = (options) => {
+      const threshold = (options == null ? void 0 : options.threshold) ?? 1024;
+      return async function compress2(ctx, next) {
+        await next();
+        const contentLength = ctx.res.headers.get("Content-Length");
+        if (ctx.res.headers.has("Content-Encoding") || ctx.res.headers.has("Transfer-Encoding") || ctx.req.method === "HEAD" || contentLength && Number(contentLength) < threshold || !shouldCompress(ctx.res) || !shouldTransform(ctx.res)) {
+          return;
+        }
+        const accepted = ctx.req.header("Accept-Encoding");
+        const encoding = (options == null ? void 0 : options.encoding) ?? ENCODING_TYPES.find((encoding2) => accepted == null ? void 0 : accepted.includes(encoding2));
+        if (!encoding || !ctx.res.body) {
+          return;
+        }
+        const stream = new CompressionStream(encoding);
+        ctx.res = new Response(ctx.res.body.pipeThrough(stream), ctx.res);
+        ctx.res.headers.delete("Content-Length");
+        ctx.res.headers.set("Content-Encoding", encoding);
+      };
+    };
+    shouldCompress = (res) => {
+      const type = res.headers.get("Content-Type");
+      return type && COMPRESSIBLE_CONTENT_TYPE_REGEX.test(type);
+    };
+    shouldTransform = (res) => {
+      const cacheControl = res.headers.get("Cache-Control");
+      return !cacheControl || !cacheControlNoTransformRegExp.test(cacheControl);
+    };
+  }
+});
+
+// ../node_modules/.pnpm/hono@4.7.10/node_modules/hono/dist/middleware/cors/index.js
+var cors;
+var init_cors = __esm({
+  "../node_modules/.pnpm/hono@4.7.10/node_modules/hono/dist/middleware/cors/index.js"() {
+    cors = (options) => {
+      const defaults2 = {
+        origin: "*",
+        allowMethods: ["GET", "HEAD", "PUT", "POST", "DELETE", "PATCH"],
+        allowHeaders: [],
+        exposeHeaders: []
+      };
+      const opts = {
+        ...defaults2,
+        ...options
+      };
+      const findAllowOrigin = ((optsOrigin) => {
+        if (typeof optsOrigin === "string") {
+          if (optsOrigin === "*") {
+            return () => optsOrigin;
+          } else {
+            return (origin) => optsOrigin === origin ? origin : null;
+          }
+        } else if (typeof optsOrigin === "function") {
+          return optsOrigin;
+        } else {
+          return (origin) => optsOrigin.includes(origin) ? origin : null;
+        }
+      })(opts.origin);
+      return async function cors2(c3, next) {
+        var _a2, _b;
+        function set(key, value) {
+          c3.res.headers.set(key, value);
+        }
+        const allowOrigin = findAllowOrigin(c3.req.header("origin") || "", c3);
+        if (allowOrigin) {
+          set("Access-Control-Allow-Origin", allowOrigin);
+        }
+        if (opts.origin !== "*") {
+          const existingVary = c3.req.header("Vary");
+          if (existingVary) {
+            set("Vary", existingVary);
+          } else {
+            set("Vary", "Origin");
+          }
+        }
+        if (opts.credentials) {
+          set("Access-Control-Allow-Credentials", "true");
+        }
+        if ((_a2 = opts.exposeHeaders) == null ? void 0 : _a2.length) {
+          set("Access-Control-Expose-Headers", opts.exposeHeaders.join(","));
+        }
+        if (c3.req.method === "OPTIONS") {
+          if (opts.maxAge != null) {
+            set("Access-Control-Max-Age", opts.maxAge.toString());
+          }
+          if ((_b = opts.allowMethods) == null ? void 0 : _b.length) {
+            set("Access-Control-Allow-Methods", opts.allowMethods.join(","));
+          }
+          let headers = opts.allowHeaders;
+          if (!(headers == null ? void 0 : headers.length)) {
+            const requestHeaders = c3.req.header("Access-Control-Request-Headers");
+            if (requestHeaders) {
+              headers = requestHeaders.split(/\s*,\s*/);
+            }
+          }
+          if (headers == null ? void 0 : headers.length) {
+            set("Access-Control-Allow-Headers", headers.join(","));
+            c3.res.headers.append("Vary", "Access-Control-Request-Headers");
+          }
+          c3.res.headers.delete("Content-Length");
+          c3.res.headers.delete("Content-Type");
+          return new Response(null, {
+            headers: c3.res.headers,
+            status: 204,
+            statusText: "No Content"
+          });
+        }
+        await next();
+      };
+    };
+  }
+});
+
+// src/serializer/studio.ts
+var studio_exports = {};
+__export(studio_exports, {
+  drizzleForLibSQL: () => drizzleForLibSQL,
+  drizzleForMySQL: () => drizzleForMySQL,
+  drizzleForPostgres: () => drizzleForPostgres,
+  drizzleForSQLite: () => drizzleForSQLite,
+  drizzleForSingleStore: () => drizzleForSingleStore,
+  extractRelations: () => extractRelations,
+  prepareMySqlSchema: () => prepareMySqlSchema,
+  preparePgSchema: () => preparePgSchema,
+  prepareSQLiteSchema: () => prepareSQLiteSchema,
+  prepareServer: () => prepareServer,
+  prepareSingleStoreSchema: () => prepareSingleStoreSchema
+});
+var import_crypto9, import_drizzle_orm11, import_mysql_core3, import_pg_core3, import_relations3, import_singlestore_core3, import_sqlite_core3, import_fs12, import_node_https2, preparePgSchema, prepareMySqlSchema, prepareSQLiteSchema, prepareSingleStoreSchema, getCustomDefaults, drizzleForPostgres, drizzleForMySQL, drizzleForSQLite, drizzleForLibSQL, drizzleForSingleStore, extractRelations, init, proxySchema, transactionProxySchema, defaultsSchema, schema5, jsonStringify, prepareServer;
+var init_studio2 = __esm({
+  "src/serializer/studio.ts"() {
+    "use strict";
+    init_dist2();
+    init_esm2();
+    import_crypto9 = require("crypto");
+    import_drizzle_orm11 = require("drizzle-orm");
+    import_mysql_core3 = require("drizzle-orm/mysql-core");
+    import_pg_core3 = require("drizzle-orm/pg-core");
+    import_relations3 = require("drizzle-orm/relations");
+    import_singlestore_core3 = require("drizzle-orm/singlestore-core");
+    import_sqlite_core3 = require("drizzle-orm/sqlite-core");
+    import_fs12 = __toESM(require("fs"));
+    init_dist3();
+    init_compress2();
+    init_cors();
+    import_node_https2 = require("node:https");
+    init_global();
+    init_esm();
+    init_utils3();
+    init_serializer();
+    init_utils4();
+    preparePgSchema = async (path4) => {
+      const imports = prepareFilenames(path4);
+      const pgSchema2 = {};
+      const relations5 = {};
+      const files = imports.map((it, index6) => ({
+        // get the file name from the path
+        name: it.split("/").pop() || `schema${index6}.ts`,
+        content: import_fs12.default.readFileSync(it, "utf-8")
+      }));
+      await safeRegister(async () => {
+        for (let i4 = 0; i4 < imports.length; i4++) {
+          const it = imports[i4];
+          const i0 = require(`${it}`);
+          const i0values = Object.entries(i0);
+          i0values.forEach(([k3, t4]) => {
+            if ((0, import_drizzle_orm11.is)(t4, import_pg_core3.PgTable)) {
+              const schema6 = (0, import_pg_core3.getTableConfig)(t4).schema || "public";
+              pgSchema2[schema6] = pgSchema2[schema6] || {};
+              pgSchema2[schema6][k3] = t4;
+            }
+            if ((0, import_drizzle_orm11.is)(t4, import_relations3.Relations)) {
+              relations5[k3] = t4;
+            }
+          });
+        }
+      });
+      return { schema: pgSchema2, relations: relations5, files };
+    };
+    prepareMySqlSchema = async (path4) => {
+      const imports = prepareFilenames(path4);
+      const mysqlSchema3 = {
+        public: {}
+      };
+      const relations5 = {};
+      const files = imports.map((it, index6) => ({
+        // get the file name from the path
+        name: it.split("/").pop() || `schema${index6}.ts`,
+        content: import_fs12.default.readFileSync(it, "utf-8")
+      }));
+      await safeRegister(async () => {
+        for (let i4 = 0; i4 < imports.length; i4++) {
+          const it = imports[i4];
+          const i0 = require(`${it}`);
+          const i0values = Object.entries(i0);
+          i0values.forEach(([k3, t4]) => {
+            if ((0, import_drizzle_orm11.is)(t4, import_mysql_core3.MySqlTable)) {
+              const schema6 = (0, import_mysql_core3.getTableConfig)(t4).schema || "public";
+              mysqlSchema3[schema6][k3] = t4;
+            }
+            if ((0, import_drizzle_orm11.is)(t4, import_relations3.Relations)) {
+              relations5[k3] = t4;
+            }
+          });
+        }
+      });
+      return { schema: mysqlSchema3, relations: relations5, files };
+    };
+    prepareSQLiteSchema = async (path4) => {
+      const imports = prepareFilenames(path4);
+      const sqliteSchema2 = {
+        public: {}
+      };
+      const relations5 = {};
+      const files = imports.map((it, index6) => ({
+        // get the file name from the path
+        name: it.split("/").pop() || `schema${index6}.ts`,
+        content: import_fs12.default.readFileSync(it, "utf-8")
+      }));
+      await safeRegister(async () => {
+        for (let i4 = 0; i4 < imports.length; i4++) {
+          const it = imports[i4];
+          const i0 = require(`${it}`);
+          const i0values = Object.entries(i0);
+          i0values.forEach(([k3, t4]) => {
+            if ((0, import_drizzle_orm11.is)(t4, import_sqlite_core3.SQLiteTable)) {
+              const schema6 = "public";
+              sqliteSchema2[schema6][k3] = t4;
+            }
+            if ((0, import_drizzle_orm11.is)(t4, import_relations3.Relations)) {
+              relations5[k3] = t4;
+            }
+          });
+        }
+      });
+      return { schema: sqliteSchema2, relations: relations5, files };
+    };
+    prepareSingleStoreSchema = async (path4) => {
+      const imports = prepareFilenames(path4);
+      const singlestoreSchema2 = {
+        public: {}
+      };
+      const relations5 = {};
+      const files = imports.map((it, index6) => ({
+        // get the file name from the path
+        name: it.split("/").pop() || `schema${index6}.ts`,
+        content: import_fs12.default.readFileSync(it, "utf-8")
+      }));
+      await safeRegister(async () => {
+        for (let i4 = 0; i4 < imports.length; i4++) {
+          const it = imports[i4];
+          const i0 = require(`${it}`);
+          const i0values = Object.entries(i0);
+          i0values.forEach(([k3, t4]) => {
+            if ((0, import_drizzle_orm11.is)(t4, import_singlestore_core3.SingleStoreTable)) {
+              const schema6 = (0, import_singlestore_core3.getTableConfig)(t4).schema || "public";
+              singlestoreSchema2[schema6][k3] = t4;
+            }
+            if ((0, import_drizzle_orm11.is)(t4, import_relations3.Relations)) {
+              relations5[k3] = t4;
+            }
+          });
+        }
+      });
+      return { schema: singlestoreSchema2, relations: relations5, files };
+    };
+    getCustomDefaults = (schema6, casing2) => {
+      const customDefaults = [];
+      Object.entries(schema6).map(([schema7, tables]) => {
+        Object.entries(tables).map(([, table6]) => {
+          let tableConfig;
+          if ((0, import_drizzle_orm11.is)(table6, import_pg_core3.PgTable)) {
+            tableConfig = (0, import_pg_core3.getTableConfig)(table6);
+          } else if ((0, import_drizzle_orm11.is)(table6, import_mysql_core3.MySqlTable)) {
+            tableConfig = (0, import_mysql_core3.getTableConfig)(table6);
+          } else if ((0, import_drizzle_orm11.is)(table6, import_sqlite_core3.SQLiteTable)) {
+            tableConfig = (0, import_sqlite_core3.getTableConfig)(table6);
+          } else {
+            tableConfig = (0, import_singlestore_core3.getTableConfig)(table6);
+          }
+          tableConfig.columns.map((column11) => {
+            if (column11.defaultFn) {
+              customDefaults.push({
+                schema: schema7,
+                table: tableConfig.name,
+                column: getColumnCasing(column11, casing2),
+                func: column11.defaultFn
+              });
+            }
+          });
+        });
+      });
+      return customDefaults;
+    };
+    drizzleForPostgres = async (credentials2, pgSchema2, relations5, schemaFiles, casing2) => {
+      const { preparePostgresDB: preparePostgresDB2 } = await Promise.resolve().then(() => (init_connections(), connections_exports));
+      const db = await preparePostgresDB2(credentials2);
+      const customDefaults = getCustomDefaults(pgSchema2, casing2);
+      let dbUrl;
+      if ("driver" in credentials2) {
+        const { driver: driver2 } = credentials2;
+        if (driver2 === "aws-data-api") {
+          dbUrl = `aws-data-api://${credentials2.database}/${credentials2.secretArn}/${credentials2.resourceArn}`;
+        } else if (driver2 === "pglite") {
+          dbUrl = "client" in credentials2 ? credentials2.client.dataDir || "pglite://custom-client" : credentials2.url;
+        } else {
+          assertUnreachable(driver2);
+        }
+      } else if ("url" in credentials2) {
+        dbUrl = credentials2.url;
+      } else {
+        dbUrl = `postgresql://${credentials2.user}:${credentials2.password}@${credentials2.host}:${credentials2.port}/${credentials2.database}`;
+      }
+      const dbHash = (0, import_crypto9.createHash)("sha256").update(dbUrl).digest("hex");
+      return {
+        dbHash,
+        dialect: "postgresql",
+        driver: "driver" in credentials2 ? credentials2.driver : void 0,
+        packageName: db.packageName,
+        proxy: db.proxy,
+        transactionProxy: db.transactionProxy,
+        customDefaults,
+        schema: pgSchema2,
+        relations: relations5,
+        schemaFiles,
+        casing: casing2
+      };
+    };
+    drizzleForMySQL = async (credentials2, mysqlSchema3, relations5, schemaFiles, casing2) => {
+      const { connectToMySQL: connectToMySQL2 } = await Promise.resolve().then(() => (init_connections(), connections_exports));
+      const { proxy, transactionProxy, database, packageName } = await connectToMySQL2(credentials2);
+      const customDefaults = getCustomDefaults(mysqlSchema3, casing2);
+      let dbUrl;
+      if ("url" in credentials2) {
+        dbUrl = credentials2.url;
+      } else {
+        dbUrl = `mysql://${credentials2.user}:${credentials2.password}@${credentials2.host}:${credentials2.port}/${credentials2.database}`;
+      }
+      const dbHash = (0, import_crypto9.createHash)("sha256").update(dbUrl).digest("hex");
+      return {
+        dbHash,
+        dialect: "mysql",
+        packageName,
+        databaseName: database,
+        proxy,
+        transactionProxy,
+        customDefaults,
+        schema: mysqlSchema3,
+        relations: relations5,
+        schemaFiles,
+        casing: casing2
+      };
+    };
+    drizzleForSQLite = async (credentials2, sqliteSchema2, relations5, schemaFiles, casing2) => {
+      const customDefaults = getCustomDefaults(sqliteSchema2, casing2);
+      if ("driver" in credentials2 && credentials2.driver === "d1") {
+        const { connectToD1: connectToD12 } = await Promise.resolve().then(() => (init_connections(), connections_exports));
+        const sqliteDB2 = await connectToD12(credentials2.binding);
+        const dbUrl2 = "d1://binding";
+        const dbHash2 = (0, import_crypto9.createHash)("sha256").update(dbUrl2).digest("hex");
+        return {
+          dbHash: dbHash2,
+          dialect: "sqlite",
+          driver: "d1",
+          packageName: "d1",
+          proxy: sqliteDB2.proxy,
+          transactionProxy: sqliteDB2.transactionProxy,
+          customDefaults,
+          schema: sqliteSchema2,
+          relations: relations5,
+          schemaFiles,
+          casing: casing2
+        };
+      }
+      const { connectToSQLite: connectToSQLite2 } = await Promise.resolve().then(() => (init_connections(), connections_exports));
+      const sqliteDB = await connectToSQLite2(credentials2);
+      let dbUrl;
+      if ("driver" in credentials2) {
+        const { driver: driver2 } = credentials2;
+        if (driver2 === "d1-http") {
+          dbUrl = `d1-http://${credentials2.accountId}/${credentials2.databaseId}/${credentials2.token}`;
+        } else {
+          assertUnreachable(driver2);
+        }
+      } else {
+        dbUrl = credentials2.url;
+      }
+      const dbHash = (0, import_crypto9.createHash)("sha256").update(dbUrl).digest("hex");
+      return {
+        dbHash,
+        dialect: "sqlite",
+        driver: "driver" in credentials2 ? credentials2.driver : void 0,
+        packageName: sqliteDB.packageName,
+        proxy: sqliteDB.proxy,
+        transactionProxy: sqliteDB.transactionProxy,
+        customDefaults,
+        schema: sqliteSchema2,
+        relations: relations5,
+        schemaFiles,
+        casing: casing2
+      };
+    };
+    drizzleForLibSQL = async (credentials2, sqliteSchema2, relations5, schemaFiles, casing2) => {
+      const { connectToLibSQL: connectToLibSQL2 } = await Promise.resolve().then(() => (init_connections(), connections_exports));
+      const sqliteDB = await connectToLibSQL2(credentials2);
+      const customDefaults = getCustomDefaults(sqliteSchema2, casing2);
+      let dbUrl = `turso://${credentials2.url}/${credentials2.authToken}`;
+      const dbHash = (0, import_crypto9.createHash)("sha256").update(dbUrl).digest("hex");
+      return {
+        dbHash,
+        dialect: "sqlite",
+        driver: void 0,
+        packageName: sqliteDB.packageName,
+        proxy: sqliteDB.proxy,
+        transactionProxy: sqliteDB.transactionProxy,
+        customDefaults,
+        schema: sqliteSchema2,
+        relations: relations5,
+        schemaFiles,
+        casing: casing2
+      };
+    };
+    drizzleForSingleStore = async (credentials2, singlestoreSchema2, relations5, schemaFiles, casing2) => {
+      const { connectToSingleStore: connectToSingleStore2 } = await Promise.resolve().then(() => (init_connections(), connections_exports));
+      const { proxy, transactionProxy, database, packageName } = await connectToSingleStore2(credentials2);
+      const customDefaults = getCustomDefaults(singlestoreSchema2, casing2);
+      let dbUrl;
+      if ("url" in credentials2) {
+        dbUrl = credentials2.url;
+      } else {
+        dbUrl = `singlestore://${credentials2.user}:${credentials2.password}@${credentials2.host}:${credentials2.port}/${credentials2.database}`;
+      }
+      const dbHash = (0, import_crypto9.createHash)("sha256").update(dbUrl).digest("hex");
+      return {
+        dbHash,
+        dialect: "singlestore",
+        databaseName: database,
+        packageName,
+        proxy,
+        transactionProxy,
+        customDefaults,
+        schema: singlestoreSchema2,
+        relations: relations5,
+        schemaFiles,
+        casing: casing2
+      };
+    };
+    extractRelations = (tablesConfig, casing2) => {
+      const relations5 = Object.values(tablesConfig.tables).map(
+        (it) => Object.entries(it.relations).map(([name, relation]) => {
+          try {
+            const normalized = (0, import_relations3.normalizeRelation)(
+              tablesConfig.tables,
+              tablesConfig.tableNamesMap,
+              relation
+            );
+            const rel = relation;
+            const refTableName = rel.referencedTableName;
+            const refTable = rel.referencedTable;
+            const fields = normalized.fields.map((it2) => getColumnCasing(it2, casing2)).flat();
+            const refColumns = normalized.references.map((it2) => getColumnCasing(it2, casing2)).flat();
+            let refSchema;
+            if ((0, import_drizzle_orm11.is)(refTable, import_pg_core3.PgTable)) {
+              refSchema = (0, import_pg_core3.getTableConfig)(refTable).schema;
+            } else if ((0, import_drizzle_orm11.is)(refTable, import_mysql_core3.MySqlTable)) {
+              refSchema = (0, import_mysql_core3.getTableConfig)(refTable).schema;
+            } else if ((0, import_drizzle_orm11.is)(refTable, import_sqlite_core3.SQLiteTable)) {
+              refSchema = void 0;
+            } else if ((0, import_drizzle_orm11.is)(refTable, import_singlestore_core3.SingleStoreTable)) {
+              refSchema = (0, import_singlestore_core3.getTableConfig)(refTable).schema;
+            } else {
+              throw new Error("unsupported dialect");
+            }
+            let type;
+            if ((0, import_drizzle_orm11.is)(rel, import_relations3.One)) {
+              type = "one";
+            } else if ((0, import_drizzle_orm11.is)(rel, import_relations3.Many)) {
+              type = "many";
+            } else {
+              throw new Error("unsupported relation type");
+            }
+            return {
+              name,
+              type,
+              table: it.dbName,
+              schema: it.schema || "public",
+              columns: fields,
+              refTable: refTableName,
+              refSchema: refSchema || "public",
+              refColumns
+            };
+          } catch {
+            throw new Error(
+              `Invalid relation "${relation.fieldName}" for table "${it.schema ? `${it.schema}.${it.dbName}` : it.dbName}"`
+            );
+          }
+        })
+      ).flat();
+      return relations5;
+    };
+    init = external_exports.object({
+      type: external_exports.literal("init")
+    });
+    proxySchema = external_exports.object({
+      type: external_exports.literal("proxy"),
+      data: external_exports.object({
+        sql: external_exports.string(),
+        params: external_exports.array(external_exports.any()).optional(),
+        typings: external_exports.string().array().optional(),
+        mode: external_exports.enum(["array", "object"]).default("object"),
+        method: external_exports.union([
+          external_exports.literal("values"),
+          external_exports.literal("get"),
+          external_exports.literal("all"),
+          external_exports.literal("run"),
+          external_exports.literal("execute")
+        ])
+      })
+    });
+    transactionProxySchema = external_exports.object({
+      type: external_exports.literal("tproxy"),
+      data: external_exports.object({
+        sql: external_exports.string(),
+        method: external_exports.union([
+          external_exports.literal("values"),
+          external_exports.literal("get"),
+          external_exports.literal("all"),
+          external_exports.literal("run"),
+          external_exports.literal("execute")
+        ]).optional()
+      }).array()
+    });
+    defaultsSchema = external_exports.object({
+      type: external_exports.literal("defaults"),
+      data: external_exports.array(
+        external_exports.object({
+          schema: external_exports.string(),
+          table: external_exports.string(),
+          column: external_exports.string()
+        })
+      ).min(1)
+    });
+    schema5 = external_exports.union([
+      init,
+      proxySchema,
+      transactionProxySchema,
+      defaultsSchema
+    ]);
+    jsonStringify = (data) => {
+      return JSON.stringify(data, (_key, value) => {
+        if (value instanceof Error) {
+          return {
+            error: value.message
+          };
+        }
+        if (typeof value === "bigint") {
+          return value.toString();
+        }
+        if (value && typeof value === "object" && "type" in value && "data" in value && value.type === "Buffer" || value instanceof ArrayBuffer || value instanceof Buffer) {
+          return Buffer.from(value).toString("base64");
+        }
+        return value;
+      });
+    };
+    prepareServer = async ({
+      dialect: dialect6,
+      driver: driver2,
+      packageName,
+      databaseName,
+      proxy,
+      transactionProxy,
+      customDefaults,
+      schema: drizzleSchema,
+      relations: relations5,
+      dbHash,
+      casing: casing2,
+      schemaFiles
+    }, app) => {
+      app = app !== void 0 ? app : new Hono2();
+      app.use(compress());
+      app.use(async (ctx, next) => {
+        await next();
+        ctx.header("Access-Control-Allow-Private-Network", "true");
+      });
+      app.use(cors());
+      app.onError((err2, ctx) => {
+        console.error(err2);
+        return ctx.json({
+          status: "error",
+          error: err2.message
+        });
+      });
+      const relationalSchema = {
+        ...Object.fromEntries(
+          Object.entries(drizzleSchema).map(([schemaName, schema6]) => {
+            const mappedTableEntries = Object.entries(schema6).map(
+              ([tableName, table6]) => {
+                return [`__${schemaName}__.${tableName}`, table6];
+              }
+            );
+            return mappedTableEntries;
+          }).flat()
+        ),
+        ...relations5
+      };
+      const relationsConfig = (0, import_relations3.extractTablesRelationalConfig)(
+        relationalSchema,
+        import_relations3.createTableRelationsHelpers
+      );
+      app.post("/", zValidator("json", schema5), async (c3) => {
+        const body = c3.req.valid("json");
+        const { type } = body;
+        if (type === "init") {
+          const preparedDefaults = customDefaults.map((d3) => ({
+            schema: d3.schema,
+            table: d3.table,
+            column: d3.column
+          }));
+          let relations6 = [];
+          try {
+            relations6 = extractRelations(relationsConfig, casing2);
+          } catch (error2) {
+            console.warn(
+              "Failed to extract relations. This is likely due to ambiguous or misconfigured relations."
+            );
+            console.warn(
+              "Please check your schema and ensure that all relations are correctly defined."
+            );
+            console.warn(
+              "See: https://orm.drizzle.team/docs/relations#disambiguating-relations"
+            );
+            console.warn("Error message:", error2.message);
+          }
+          return c3.json({
+            version: "6.2",
+            dialect: dialect6,
+            driver: driver2,
+            packageName,
+            schemaFiles,
+            customDefaults: preparedDefaults,
+            relations: relations6,
+            dbHash,
+            databaseName
+          });
+        }
+        if (type === "proxy") {
+          const result = await proxy({
+            ...body.data,
+            params: body.data.params || []
+          });
+          return c3.json(JSON.parse(jsonStringify(result)));
+        }
+        if (type === "tproxy") {
+          const result = await transactionProxy(body.data);
+          return c3.json(JSON.parse(jsonStringify(result)));
+        }
+        if (type === "defaults") {
+          const columns = body.data;
+          const result = columns.map((column11) => {
+            const found = customDefaults.find((d3) => {
+              return d3.schema === column11.schema && d3.table === column11.table && d3.column === column11.column;
+            });
+            if (!found) {
+              throw new Error(
+                `Custom default not found for ${column11.schema}.${column11.table}.${column11.column}`
+              );
+            }
+            const value = found.func();
+            return {
+              ...column11,
+              value
+            };
+          });
+          return c3.json(JSON.parse(jsonStringify(result)));
+        }
+        throw new Error(`Unknown type: ${type}`);
+      });
+      return {
+        start: (params) => {
+          serve(
+            {
+              fetch: app.fetch,
+              createServer: params.key ? import_node_https2.createServer : void 0,
+              hostname: params.host,
+              port: params.port,
+              serverOptions: {
+                key: params.key,
+                cert: params.cert
+              }
+            },
+            () => params.cb(null, `${params.host}:${params.port}`)
+          );
+        }
+      };
+    };
+  }
+});
+
+// ../node_modules/.pnpm/@drizzle-team+brocli@0.10.2/node_modules/@drizzle-team/brocli/index.js
+var __create2 = Object.create;
+var __defProp2 = Object.defineProperty;
+var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
+var __getOwnPropNames2 = Object.getOwnPropertyNames;
+var __getProtoOf2 = Object.getPrototypeOf;
+var __hasOwnProp2 = Object.prototype.hasOwnProperty;
+var __commonJS2 = (cb, mod) => function __require() {
+  return mod || (0, cb[__getOwnPropNames2(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
+};
+var __copyProps2 = (to, from, except, desc) => {
+  if (from && typeof from === "object" || typeof from === "function") {
+    for (let key of __getOwnPropNames2(from))
+      if (!__hasOwnProp2.call(to, key) && key !== except)
+        __defProp2(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable });
+  }
+  return to;
+};
+var __toESM2 = (mod, isNodeMode, target) => (target = mod != null ? __create2(__getProtoOf2(mod)) : {}, __copyProps2(
+  // If the importer is in node compatibility mode or this is not an ESM
+  // file that has been converted to a CommonJS file using a Babel-
+  // compatible transform (i.e. "__esModule" has not been set), then set
+  // "default" to the CommonJS "module.exports" for node compatibility.
+  isNodeMode || !mod || !mod.__esModule ? __defProp2(target, "default", { value: mod, enumerable: true }) : target,
+  mod
+));
+var require_clone = __commonJS2({
+  "node_modules/.pnpm/clone@2.1.2/node_modules/clone/clone.js"(exports2, module2) {
+    "use strict";
+    var clone2 = function() {
+      "use strict";
+      function _instanceof(obj, type) {
+        return type != null && obj instanceof type;
+      }
+      var nativeMap;
+      try {
+        nativeMap = Map;
+      } catch (_3) {
+        nativeMap = function() {
+        };
+      }
+      var nativeSet;
+      try {
+        nativeSet = Set;
+      } catch (_3) {
+        nativeSet = function() {
+        };
+      }
+      var nativePromise;
+      try {
+        nativePromise = Promise;
+      } catch (_3) {
+        nativePromise = function() {
+        };
+      }
+      function clone3(parent, circular, depth, prototype, includeNonEnumerable) {
+        if (typeof circular === "object") {
+          depth = circular.depth;
+          prototype = circular.prototype;
+          includeNonEnumerable = circular.includeNonEnumerable;
+          circular = circular.circular;
+        }
+        var allParents = [];
+        var allChildren = [];
+        var useBuffer = typeof Buffer != "undefined";
+        if (typeof circular == "undefined")
+          circular = true;
+        if (typeof depth == "undefined")
+          depth = Infinity;
+        function _clone(parent2, depth2) {
+          if (parent2 === null)
+            return null;
+          if (depth2 === 0)
+            return parent2;
+          var child;
+          var proto2;
+          if (typeof parent2 != "object") {
+            return parent2;
+          }
+          if (_instanceof(parent2, nativeMap)) {
+            child = new nativeMap();
+          } else if (_instanceof(parent2, nativeSet)) {
+            child = new nativeSet();
+          } else if (_instanceof(parent2, nativePromise)) {
+            child = new nativePromise(function(resolve2, reject) {
+              parent2.then(function(value) {
+                resolve2(_clone(value, depth2 - 1));
+              }, function(err2) {
+                reject(_clone(err2, depth2 - 1));
+              });
+            });
+          } else if (clone3.__isArray(parent2)) {
+            child = [];
+          } else if (clone3.__isRegExp(parent2)) {
+            child = new RegExp(parent2.source, __getRegExpFlags(parent2));
+            if (parent2.lastIndex) child.lastIndex = parent2.lastIndex;
+          } else if (clone3.__isDate(parent2)) {
+            child = new Date(parent2.getTime());
+          } else if (useBuffer && Buffer.isBuffer(parent2)) {
+            if (Buffer.allocUnsafe) {
+              child = Buffer.allocUnsafe(parent2.length);
+            } else {
+              child = new Buffer(parent2.length);
+            }
+            parent2.copy(child);
+            return child;
+          } else if (_instanceof(parent2, Error)) {
+            child = Object.create(parent2);
+          } else {
+            if (typeof prototype == "undefined") {
+              proto2 = Object.getPrototypeOf(parent2);
+              child = Object.create(proto2);
+            } else {
+              child = Object.create(prototype);
+              proto2 = prototype;
+            }
+          }
+          if (circular) {
+            var index6 = allParents.indexOf(parent2);
+            if (index6 != -1) {
+              return allChildren[index6];
+            }
+            allParents.push(parent2);
+            allChildren.push(child);
+          }
+          if (_instanceof(parent2, nativeMap)) {
+            parent2.forEach(function(value, key) {
+              var keyChild = _clone(key, depth2 - 1);
+              var valueChild = _clone(value, depth2 - 1);
+              child.set(keyChild, valueChild);
+            });
+          }
+          if (_instanceof(parent2, nativeSet)) {
+            parent2.forEach(function(value) {
+              var entryChild = _clone(value, depth2 - 1);
+              child.add(entryChild);
+            });
+          }
+          for (var i4 in parent2) {
+            var attrs;
+            if (proto2) {
+              attrs = Object.getOwnPropertyDescriptor(proto2, i4);
+            }
+            if (attrs && attrs.set == null) {
+              continue;
+            }
+            child[i4] = _clone(parent2[i4], depth2 - 1);
+          }
+          if (Object.getOwnPropertySymbols) {
+            var symbols = Object.getOwnPropertySymbols(parent2);
+            for (var i4 = 0; i4 < symbols.length; i4++) {
+              var symbol = symbols[i4];
+              var descriptor = Object.getOwnPropertyDescriptor(parent2, symbol);
+              if (descriptor && !descriptor.enumerable && !includeNonEnumerable) {
+                continue;
+              }
+              child[symbol] = _clone(parent2[symbol], depth2 - 1);
+              if (!descriptor.enumerable) {
+                Object.defineProperty(child, symbol, {
+                  enumerable: false
+                });
+              }
+            }
+          }
+          if (includeNonEnumerable) {
+            var allPropertyNames = Object.getOwnPropertyNames(parent2);
+            for (var i4 = 0; i4 < allPropertyNames.length; i4++) {
+              var propertyName = allPropertyNames[i4];
+              var descriptor = Object.getOwnPropertyDescriptor(parent2, propertyName);
+              if (descriptor && descriptor.enumerable) {
+                continue;
+              }
+              child[propertyName] = _clone(parent2[propertyName], depth2 - 1);
+              Object.defineProperty(child, propertyName, {
+                enumerable: false
+              });
+            }
+          }
+          return child;
+        }
+        return _clone(parent, depth);
+      }
+      clone3.clonePrototype = function clonePrototype(parent) {
+        if (parent === null)
+          return null;
+        var c3 = function() {
+        };
+        c3.prototype = parent;
+        return new c3();
+      };
+      function __objToStr(o3) {
+        return Object.prototype.toString.call(o3);
+      }
+      clone3.__objToStr = __objToStr;
+      function __isDate(o3) {
+        return typeof o3 === "object" && __objToStr(o3) === "[object Date]";
+      }
+      clone3.__isDate = __isDate;
+      function __isArray(o3) {
+        return typeof o3 === "object" && __objToStr(o3) === "[object Array]";
+      }
+      clone3.__isArray = __isArray;
+      function __isRegExp(o3) {
+        return typeof o3 === "object" && __objToStr(o3) === "[object RegExp]";
+      }
+      clone3.__isRegExp = __isRegExp;
+      function __getRegExpFlags(re) {
+        var flags = "";
+        if (re.global) flags += "g";
+        if (re.ignoreCase) flags += "i";
+        if (re.multiline) flags += "m";
+        return flags;
+      }
+      clone3.__getRegExpFlags = __getRegExpFlags;
+      return clone3;
+    }();
+    if (typeof module2 === "object" && module2.exports) {
+      module2.exports = clone2;
+    }
+  }
+});
+var require_quote = __commonJS2({
+  "node_modules/.pnpm/shell-quote@1.8.1/node_modules/shell-quote/quote.js"(exports2, module2) {
+    "use strict";
+    module2.exports = function quote(xs) {
+      return xs.map(function(s4) {
+        if (s4 && typeof s4 === "object") {
+          return s4.op.replace(/(.)/g, "\\$1");
+        }
+        if (/["\s]/.test(s4) && !/'/.test(s4)) {
+          return "'" + s4.replace(/(['\\])/g, "\\$1") + "'";
+        }
+        if (/["'\s]/.test(s4)) {
+          return '"' + s4.replace(/(["\\$`!])/g, "\\$1") + '"';
+        }
+        return String(s4).replace(/([A-Za-z]:)?([#!"$&'()*,:;<=>?@[\\\]^`{|}])/g, "$1\\$2");
+      }).join(" ");
+    };
+  }
+});
+var require_parse = __commonJS2({
+  "node_modules/.pnpm/shell-quote@1.8.1/node_modules/shell-quote/parse.js"(exports2, module2) {
+    "use strict";
+    var CONTROL = "(?:" + [
+      "\\|\\|",
+      "\\&\\&",
+      ";;",
+      "\\|\\&",
+      "\\<\\(",
+      "\\<\\<\\<",
+      ">>",
+      ">\\&",
+      "<\\&",
+      "[&;()|<>]"
+    ].join("|") + ")";
+    var controlRE = new RegExp("^" + CONTROL + "$");
+    var META = "|&;()<> \\t";
+    var SINGLE_QUOTE = '"((\\\\"|[^"])*?)"';
+    var DOUBLE_QUOTE = "'((\\\\'|[^'])*?)'";
+    var hash = /^#$/;
+    var SQ = "'";
+    var DQ = '"';
+    var DS = "$";
+    var TOKEN = "";
+    var mult = 4294967296;
+    for (i4 = 0; i4 < 4; i4++) {
+      TOKEN += (mult * Math.random()).toString(16);
+    }
+    var i4;
+    var startsWithToken = new RegExp("^" + TOKEN);
+    function matchAll(s4, r4) {
+      var origIndex = r4.lastIndex;
+      var matches = [];
+      var matchObj;
+      while (matchObj = r4.exec(s4)) {
+        matches.push(matchObj);
+        if (r4.lastIndex === matchObj.index) {
+          r4.lastIndex += 1;
+        }
+      }
+      r4.lastIndex = origIndex;
+      return matches;
+    }
+    function getVar(env3, pre, key) {
+      var r4 = typeof env3 === "function" ? env3(key) : env3[key];
+      if (typeof r4 === "undefined" && key != "") {
+        r4 = "";
+      } else if (typeof r4 === "undefined") {
+        r4 = "$";
+      }
+      if (typeof r4 === "object") {
+        return pre + TOKEN + JSON.stringify(r4) + TOKEN;
+      }
+      return pre + r4;
+    }
+    function parseInternal(string2, env3, opts) {
+      if (!opts) {
+        opts = {};
+      }
+      var BS = opts.escape || "\\";
+      var BAREWORD = "(\\" + BS + `['"` + META + `]|[^\\s'"` + META + "])+";
+      var chunker = new RegExp([
+        "(" + CONTROL + ")",
+        // control chars
+        "(" + BAREWORD + "|" + SINGLE_QUOTE + "|" + DOUBLE_QUOTE + ")+"
+      ].join("|"), "g");
+      var matches = matchAll(string2, chunker);
+      if (matches.length === 0) {
+        return [];
+      }
+      if (!env3) {
+        env3 = {};
+      }
+      var commented = false;
+      return matches.map(function(match2) {
+        var s4 = match2[0];
+        if (!s4 || commented) {
+          return void 0;
+        }
+        if (controlRE.test(s4)) {
+          return { op: s4 };
+        }
+        var quote = false;
+        var esc = false;
+        var out = "";
+        var isGlob = false;
+        var i22;
+        function parseEnvVar() {
+          i22 += 1;
+          var varend;
+          var varname;
+          var char = s4.charAt(i22);
+          if (char === "{") {
+            i22 += 1;
+            if (s4.charAt(i22) === "}") {
+              throw new Error("Bad substitution: " + s4.slice(i22 - 2, i22 + 1));
+            }
+            varend = s4.indexOf("}", i22);
+            if (varend < 0) {
+              throw new Error("Bad substitution: " + s4.slice(i22));
+            }
+            varname = s4.slice(i22, varend);
+            i22 = varend;
+          } else if (/[*@#?$!_-]/.test(char)) {
+            varname = char;
+            i22 += 1;
+          } else {
+            var slicedFromI = s4.slice(i22);
+            varend = slicedFromI.match(/[^\w\d_]/);
+            if (!varend) {
+              varname = slicedFromI;
+              i22 = s4.length;
+            } else {
+              varname = slicedFromI.slice(0, varend.index);
+              i22 += varend.index - 1;
+            }
+          }
+          return getVar(env3, "", varname);
+        }
+        for (i22 = 0; i22 < s4.length; i22++) {
+          var c3 = s4.charAt(i22);
+          isGlob = isGlob || !quote && (c3 === "*" || c3 === "?");
+          if (esc) {
+            out += c3;
+            esc = false;
+          } else if (quote) {
+            if (c3 === quote) {
+              quote = false;
+            } else if (quote == SQ) {
+              out += c3;
+            } else {
+              if (c3 === BS) {
+                i22 += 1;
+                c3 = s4.charAt(i22);
+                if (c3 === DQ || c3 === BS || c3 === DS) {
+                  out += c3;
+                } else {
+                  out += BS + c3;
+                }
+              } else if (c3 === DS) {
+                out += parseEnvVar();
+              } else {
+                out += c3;
+              }
+            }
+          } else if (c3 === DQ || c3 === SQ) {
+            quote = c3;
+          } else if (controlRE.test(c3)) {
+            return { op: s4 };
+          } else if (hash.test(c3)) {
+            commented = true;
+            var commentObj = { comment: string2.slice(match2.index + i22 + 1) };
+            if (out.length) {
+              return [out, commentObj];
+            }
+            return [commentObj];
+          } else if (c3 === BS) {
+            esc = true;
+          } else if (c3 === DS) {
+            out += parseEnvVar();
+          } else {
+            out += c3;
+          }
+        }
+        if (isGlob) {
+          return { op: "glob", pattern: out };
+        }
+        return out;
+      }).reduce(function(prev, arg) {
+        return typeof arg === "undefined" ? prev : prev.concat(arg);
+      }, []);
+    }
+    module2.exports = function parse4(s4, env3, opts) {
+      var mapped = parseInternal(s4, env3, opts);
+      if (typeof env3 !== "function") {
+        return mapped;
+      }
+      return mapped.reduce(function(acc, s22) {
+        if (typeof s22 === "object") {
+          return acc.concat(s22);
+        }
+        var xs = s22.split(RegExp("(" + TOKEN + ".*?" + TOKEN + ")", "g"));
+        if (xs.length === 1) {
+          return acc.concat(xs[0]);
+        }
+        return acc.concat(xs.filter(Boolean).map(function(x4) {
+          if (startsWithToken.test(x4)) {
+            return JSON.parse(x4.split(TOKEN)[1]);
+          }
+          return x4;
+        }));
+      }, []);
+    };
+  }
+});
+var require_shell_quote = __commonJS2({
+  "node_modules/.pnpm/shell-quote@1.8.1/node_modules/shell-quote/index.js"(exports2) {
+    "use strict";
+    exports2.quote = require_quote();
+    exports2.parse = require_parse();
+  }
+});
+var BroCliError = class extends Error {
+  constructor(message, event) {
+    const errPrefix = "BroCli error: ";
+    super(message === void 0 ? message : `${errPrefix}${message}`);
+    this.event = event;
+  }
+};
+var import_clone = __toESM2(require_clone(), 1);
+var getOptionTypeText = (option) => {
+  let result = "";
+  switch (option.type) {
+    case "boolean":
+      result = "";
+      break;
+    case "number": {
+      if ((option.minVal ?? option.maxVal) !== void 0) {
+        let text = "";
+        if (option.isInt) text = text + `integer `;
+        if (option.minVal !== void 0) text = text + `[${option.minVal};`;
+        else text = text + `(\u221E;`;
+        if (option.maxVal !== void 0) text = text + `${option.maxVal}]`;
+        else text = text + `\u221E)`;
+        result = text;
+        break;
+      }
+      if (option.isInt) {
+        result = "integer";
+        break;
+      }
+      result = "number";
+      break;
+    }
+    case "string": {
+      if (option.enumVals) {
+        result = "[ " + option.enumVals.join(" | ") + " ]";
+        break;
+      }
+      result = "string";
+      break;
+    }
+    case "positional": {
+      result = `${option.isRequired ? "<" : "["}${option.enumVals ? option.enumVals.join("|") : option.name}${option.isRequired ? ">" : "]"}`;
+      break;
+    }
+  }
+  if (option.isRequired && option.type !== "positional") result = "!" + result.length ? " " : "" + result;
+  return result;
+};
+var defaultEventHandler = async (event) => {
+  var _a2;
+  switch (event.type) {
+    case "command_help": {
+      const command3 = event.command;
+      const commandName = getCommandNameWithParents(command3);
+      const cliName = event.name;
+      const desc = command3.desc ?? command3.shortDesc;
+      const subs = (_a2 = command3.subcommands) == null ? void 0 : _a2.filter((s4) => !s4.hidden);
+      const subcommands = subs && subs.length ? subs : void 0;
+      if (desc !== void 0) {
+        console.log(`
+${desc}`);
+      }
+      const opts = Object.values(command3.options ?? {}).filter(
+        (opt) => !opt.config.isHidden
+      );
+      const positionals = opts.filter((opt) => opt.config.type === "positional");
+      const options = opts.filter((opt) => opt.config.type !== "positional");
+      console.log("\nUsage:");
+      if (command3.handler) {
+        console.log(
+          `  ${cliName ? cliName + " " : ""}${commandName}${positionals.length ? " " + positionals.map(({ config: p3 }) => getOptionTypeText(p3)).join(" ") : ""} [flags]`
+        );
+      } else console.log(`  ${cliName ? cliName + " " : ""}${commandName} [command]`);
+      if (command3.aliases) {
+        console.log(`
+Aliases:`);
+        console.log(`  ${[command3.name, ...command3.aliases].join(", ")}`);
+      }
+      if (subcommands) {
+        console.log("\nAvailable Commands:");
+        const padding = 3;
+        const maxLength = subcommands.reduce((p3, e4) => e4.name.length > p3 ? e4.name.length : p3, 0);
+        const paddedLength = maxLength + padding;
+        const preDescPad = 2 + paddedLength;
+        const data = subcommands.map(
+          (s4) => `  ${s4.name.padEnd(paddedLength)}${(() => {
+            const description = s4.shortDesc ?? s4.desc;
+            if (!(description == null ? void 0 : description.length)) return "";
+            const split = description.split("\n");
+            const first = split.shift();
+            const final = [first, ...split.map((s22) => "".padEnd(preDescPad) + s22)].join("\n");
+            return final;
+          })()}`
+        ).join("\n");
+        console.log(data);
+      }
+      if (options.length) {
+        const aliasLength = options.reduce((p3, e4) => {
+          const currentLength = e4.config.aliases.reduce((pa, a3) => pa + a3.length, 0) + (e4.config.aliases.length - 1) * 2 + 1;
+          return currentLength > p3 ? currentLength : p3;
+        }, 0);
+        const paddedAliasLength = aliasLength > 0 ? aliasLength + 1 : 0;
+        const nameLength = options.reduce((p3, e4) => {
+          const typeLen = getOptionTypeText(e4.config).length;
+          const length = typeLen > 0 ? e4.config.name.length + 1 + typeLen : e4.config.name.length;
+          return length > p3 ? length : p3;
+        }, 0) + 3;
+        const preDescPad = paddedAliasLength + nameLength + 2;
+        const data = options.map(
+          ({ config: opt }) => `  ${`${opt.aliases.length ? opt.aliases.join(", ") + "," : ""}`.padEnd(paddedAliasLength)}${`${opt.name}${(() => {
+            const typeText = getOptionTypeText(opt);
+            return typeText.length ? " " + typeText : "";
+          })()}`.padEnd(nameLength)}${(() => {
+            var _a3;
+            if (!((_a3 = opt.description) == null ? void 0 : _a3.length)) {
+              return opt.default !== void 0 ? `default: ${JSON.stringify(opt.default)}` : "";
+            }
+            const split = opt.description.split("\n");
+            const first = split.shift();
+            const def = opt.default !== void 0 ? ` (default: ${JSON.stringify(opt.default)})` : "";
+            const final = [first, ...split.map((s4) => "".padEnd(preDescPad) + s4)].join("\n") + def;
+            return final;
+          })()}`
+        ).join("\n");
+        console.log("\nFlags:");
+        console.log(data);
+      }
+      console.log("\nGlobal flags:");
+      console.log(`  -h, --help      help for ${commandName}`);
+      console.log(`  -v, --version   version${cliName ? ` for ${cliName}` : ""}`);
+      if (subcommands) {
+        console.log(
+          `
+Use "${cliName ? cliName + " " : ""}${commandName} [command] --help" for more information about a command.
+`
+        );
+      }
+      return true;
+    }
+    case "global_help": {
+      const cliName = event.name;
+      const desc = event.description;
+      const commands3 = event.commands.filter((c3) => !c3.hidden);
+      if (desc !== void 0) {
+        console.log(`${desc}
+`);
+      }
+      console.log("Usage:");
+      console.log(`  ${cliName ? cliName + " " : ""}[command]`);
+      if (commands3.length) {
+        console.log("\nAvailable Commands:");
+        const padding = 3;
+        const maxLength = commands3.reduce((p3, e4) => e4.name.length > p3 ? e4.name.length : p3, 0);
+        const paddedLength = maxLength + padding;
+        const data = commands3.map(
+          (c3) => `  ${c3.name.padEnd(paddedLength)}${(() => {
+            const desc2 = c3.shortDesc ?? c3.desc;
+            if (!(desc2 == null ? void 0 : desc2.length)) return "";
+            const split = desc2.split("\n");
+            const first = split.shift();
+            const final = [first, ...split.map((s4) => "".padEnd(paddedLength + 2) + s4)].join("\n");
+            return final;
+          })()}`
+        ).join("\n");
+        console.log(data);
+      } else {
+        console.log("\nNo available commands.");
+      }
+      console.log("\nFlags:");
+      console.log(`  -h, --help      help${cliName ? ` for ${cliName}` : ""}`);
+      console.log(`  -v, --version   version${cliName ? ` for ${cliName}` : ""}`);
+      console.log("\n");
+      return true;
+    }
+    case "version": {
+      return true;
+    }
+    case "error": {
+      let msg;
+      switch (event.violation) {
+        case "above_max": {
+          const matchedName = event.offender.namePart;
+          const data = event.offender.dataPart;
+          const option = event.option;
+          const max = option.maxVal;
+          msg = `Invalid value: number type argument '${matchedName}' expects maximal value of ${max} as an input, got: ${data}`;
+          break;
+        }
+        case "below_min": {
+          const matchedName = event.offender.namePart;
+          const data = event.offender.dataPart;
+          const option = event.option;
+          const min = option.minVal;
+          msg = `Invalid value: number type argument '${matchedName}' expects minimal value of ${min} as an input, got: ${data}`;
+          break;
+        }
+        case "expected_int": {
+          const matchedName = event.offender.namePart;
+          const data = event.offender.dataPart;
+          msg = `Invalid value: number type argument '${matchedName}' expects an integer as an input, got: ${data}`;
+          break;
+        }
+        case "invalid_boolean_syntax": {
+          const matchedName = event.offender.namePart;
+          const data = event.offender.dataPart;
+          msg = `Invalid syntax: boolean type argument '${matchedName}' must have it's value passed in the following formats: ${matchedName}= | ${matchedName}  | ${matchedName}.
+Allowed values: true, false, 0, 1`;
+          break;
+        }
+        case "invalid_string_syntax": {
+          const matchedName = event.offender.namePart;
+          msg = `Invalid syntax: string type argument '${matchedName}' must have it's value passed in the following formats: ${matchedName}= | ${matchedName} `;
+          break;
+        }
+        case "invalid_number_syntax": {
+          const matchedName = event.offender.namePart;
+          msg = `Invalid syntax: number type argument '${matchedName}' must have it's value passed in the following formats: ${matchedName}= | ${matchedName} `;
+          break;
+        }
+        case "invalid_number_value": {
+          const matchedName = event.offender.namePart;
+          const data = event.offender.dataPart;
+          msg = `Invalid value: number type argument '${matchedName}' expects a number as an input, got: ${data}`;
+          break;
+        }
+        case "enum_violation": {
+          const matchedName = event.offender.namePart;
+          const data = event.offender.dataPart;
+          const option = event.option;
+          const values = option.enumVals;
+          msg = option.type === "positional" ? `Invalid value: value for the positional argument '${option.name}' must be either one of the following: ${values.join(", ")}; Received: ${data}` : `Invalid value: value for the argument '${matchedName}' must be either one of the following: ${values.join(", ")}; Received: ${data}`;
+          break;
+        }
+        case "unknown_command_error": {
+          const msg2 = `Unknown command: '${event.offender}'.
+Type '--help' to get help on the cli.`;
+          console.error(msg2);
+          return true;
+        }
+        case "unknown_subcommand_error": {
+          const cName = getCommandNameWithParents(event.command);
+          const msg2 = `Unknown command: ${cName} ${event.offender}.
+Type '${cName} --help' to get the help on command.`;
+          console.error(msg2);
+          return true;
+        }
+        case "missing_args_error": {
+          const { missing: missingOpts, command: command3 } = event;
+          msg = `Command '${command3.name}' is missing following required options: ${missingOpts.map((opt) => {
+            const name = opt.shift();
+            const aliases = opt;
+            if (aliases.length) return `${name} [${aliases.join(", ")}]`;
+            return name;
+          }).join(", ")}`;
+          break;
+        }
+        case "unrecognized_args_error": {
+          const { command: command3, unrecognized } = event;
+          msg = `Unrecognized options for command '${command3.name}': ${unrecognized.join(", ")}`;
+          break;
+        }
+        case "unknown_error": {
+          const e4 = event.error;
+          console.error(typeof e4 === "object" && e4 !== null && "message" in e4 ? e4.message : e4);
+          return true;
+        }
+      }
+      console.error(msg);
+      return true;
+    }
+  }
+  return false;
+};
+var eventHandlerWrapper = (customEventHandler) => async (event) => await customEventHandler(event) ? true : await defaultEventHandler(event);
+var import_shell_quote = __toESM2(require_shell_quote(), 1);
+function isInt(value) {
+  return value === Math.floor(value);
+}
+var executeOrLog = async (target) => typeof target === "string" ? console.log(target) : target ? await target() : void 0;
+var generatePrefix = (name) => name.startsWith("-") ? name : name.length > 1 ? `--${name}` : `-${name}`;
+var validateOptions = (config) => {
+  const cloned = (0, import_clone.default)(config);
+  const entries = [];
+  const storedNames = [];
+  const cfgEntries = Object.entries(cloned);
+  for (const [key, value] of cfgEntries) {
+    const cfg = value._.config;
+    if (cfg.name === void 0) cfg.name = key;
+    if (cfg.type === "positional") continue;
+    if (cfg.name.includes("=")) {
+      throw new BroCliError(
+        `Can't define option '${generatePrefix(cfg.name)}' - option names and aliases cannot contain '='!`
+      );
+    }
+    for (const alias of cfg.aliases) {
+      if (alias.includes("=")) {
+        throw new BroCliError(
+          `Can't define option '${generatePrefix(cfg.name)}' - option names and aliases cannot contain '='!`
+        );
+      }
+    }
+    cfg.name = generatePrefix(cfg.name);
+    cfg.aliases = cfg.aliases.map((a3) => generatePrefix(a3));
+  }
+  for (const [key, value] of cfgEntries) {
+    const cfg = value._.config;
+    if (cfg.type === "positional") {
+      entries.push([key, { config: cfg, $output: void 0 }]);
+      continue;
+    }
+    const reservedNames = ["--help", "-h", "--version", "-v"];
+    const allNames = [cfg.name, ...cfg.aliases];
+    for (const name of allNames) {
+      const match2 = reservedNames.find((n3) => n3 === name);
+      if (match2) throw new BroCliError(`Can't define option '${cfg.name}' - name '${match2}' is reserved!`);
+    }
+    for (const storage of storedNames) {
+      const nameOccupier = storage.find((e4) => e4 === cfg.name);
+      if (!nameOccupier) continue;
+      throw new BroCliError(
+        `Can't define option '${cfg.name}' - name is already in use by option '${storage[0]}'!`
+      );
+    }
+    for (const alias of cfg.aliases) {
+      for (const storage of storedNames) {
+        const nameOccupier = storage.find((e4) => e4 === alias);
+        if (!nameOccupier) continue;
+        throw new BroCliError(
+          `Can't define option '${cfg.name}' - alias '${alias}' is already in use by option '${storage[0]}'!`
+        );
+      }
+    }
+    const currentNames = [cfg.name, ...cfg.aliases];
+    storedNames.push(currentNames);
+    currentNames.forEach((name, idx) => {
+      if (currentNames.findIndex((e4) => e4 === name) === idx) return;
+      throw new BroCliError(
+        `Can't define option '${cfg.name}' - duplicate alias '${name}'!`
+      );
+    });
+    entries.push([key, { config: cfg, $output: void 0 }]);
+  }
+  return Object.fromEntries(entries);
+};
+var assignParent = (parent, subcommands) => subcommands.forEach((e4) => {
+  e4.parent = parent;
+  if (e4.subcommands) assignParent(e4, e4.subcommands);
+});
+var command2 = (command3) => {
+  var _a2, _b, _c;
+  const allNames = command3.aliases ? [command3.name, ...command3.aliases] : [command3.name];
+  const cmd = (0, import_clone.default)(command3);
+  if (command3.subcommands && command3.options && Object.values(command3.options).find((opt) => opt._.config.type === "positional")) {
+    throw new BroCliError(
+      `Can't define command '${cmd.name}' - command can't have subcommands and positional args at the same time!`
+    );
+  }
+  if (!command3.handler && !command3.subcommands) {
+    throw new BroCliError(
+      `Can't define command '${cmd.name}' - command without subcommands must have a handler present!`
+    );
+  }
+  const processedOptions = command3.options ? validateOptions(command3.options) : void 0;
+  cmd.options = processedOptions;
+  cmd.name = cmd.name ?? ((_a2 = cmd.aliases) == null ? void 0 : _a2.shift());
+  if (!cmd.name) throw new BroCliError(`Can't define command without name!`);
+  cmd.aliases = ((_b = cmd.aliases) == null ? void 0 : _b.length) ? cmd.aliases : void 0;
+  if (cmd.name.startsWith("-")) {
+    throw new BroCliError(`Can't define command '${cmd.name}' - command name can't start with '-'!`);
+  }
+  (_c = cmd.aliases) == null ? void 0 : _c.forEach((a3) => {
+    if (a3.startsWith("-")) {
+      throw new BroCliError(`Can't define command '${cmd.name}' - command aliases can't start with '-'!`);
+    }
+  });
+  allNames.forEach((n3, i4) => {
+    if (n3 === "help") {
+      throw new BroCliError(
+        `Can't define command '${cmd.name}' - 'help' is a reserved name. If you want to redefine help message - do so in runCli's config.`
+      );
+    }
+    const lCaseName = n3 == null ? void 0 : n3.toLowerCase();
+    if (lCaseName === "0" || lCaseName === "1" || lCaseName === "true" || lCaseName === "false") {
+      throw new BroCliError(
+        `Can't define command '${cmd.name}' - '${n3}' is a reserved for boolean values name!`
+      );
+    }
+    const idx = allNames.findIndex((an) => an === n3);
+    if (idx !== i4) throw new BroCliError(`Can't define command '${cmd.name}' - duplicate alias '${n3}'!`);
+  });
+  if (cmd.subcommands) {
+    assignParent(cmd, cmd.subcommands);
+  }
+  return cmd;
+};
+var getCommandInner = (commands3, candidates, args, cliName, cliDescription) => {
+  const { data: arg, originalIndex: index6 } = candidates.shift();
+  const command3 = commands3.find((c3) => {
+    const names = c3.aliases ? [c3.name, ...c3.aliases] : [c3.name];
+    const res = names.find((name) => name === arg);
+    return res;
+  });
+  if (!command3) {
+    return {
+      command: command3,
+      args
+    };
+  }
+  const newArgs = removeByIndex(args, index6);
+  if (!candidates.length || !command3.subcommands) {
+    return {
+      command: command3,
+      args: newArgs
+    };
+  }
+  const newCandidates = candidates.map((c3) => ({ data: c3.data, originalIndex: c3.originalIndex - 1 }));
+  const subcommand = getCommandInner(command3.subcommands, newCandidates, newArgs, cliName, cliDescription);
+  if (!subcommand.command) {
+    throw new BroCliError(void 0, {
+      type: "error",
+      violation: "unknown_subcommand_error",
+      name: cliName,
+      description: cliDescription,
+      command: command3,
+      offender: candidates[0].data
+    });
+  }
+  return subcommand;
+};
+var getCommand = (commands3, args, cliName, cliDescription) => {
+  var _a2;
+  const candidates = [];
+  for (let i4 = 0; i4 < args.length; ++i4) {
+    const arg = args[i4];
+    if (arg === "--help" || arg === "-h" || arg === "--version" || arg === "-v") {
+      const lCaseNext = (_a2 = args[i4 + 1]) == null ? void 0 : _a2.toLowerCase();
+      if (lCaseNext === "0" || lCaseNext === "1" || lCaseNext === "true" || lCaseNext === "false") ++i4;
+      continue;
+    }
+    if (arg == null ? void 0 : arg.startsWith("-")) {
+      if (!arg.includes("=")) ++i4;
+      continue;
+    }
+    candidates.push({
+      data: arg,
+      originalIndex: i4
+    });
+  }
+  if (!candidates.length) {
+    return {
+      command: void 0,
+      args
+    };
+  }
+  const firstCandidate = candidates[0];
+  if (firstCandidate.data === "help") {
+    return {
+      command: "help",
+      args: removeByIndex(args, firstCandidate.originalIndex)
+    };
+  }
+  const { command: command3, args: argsRes } = getCommandInner(commands3, candidates, args, cliName, cliDescription);
+  if (!command3) {
+    throw new BroCliError(void 0, {
+      type: "error",
+      violation: "unknown_command_error",
+      commands: commands3,
+      name: cliName,
+      description: cliDescription,
+      offender: firstCandidate.data
+    });
+  }
+  return {
+    command: command3,
+    args: argsRes
+  };
+};
+var parseArg = (command3, options, positionals, arg, nextArg, cliName, cliDescription) => {
+  let data = void 0;
+  const argSplit = arg.split("=");
+  const hasEq = arg.includes("=");
+  const namePart = argSplit.shift();
+  const dataPart = hasEq ? argSplit.join("=") : nextArg;
+  let skipNext = !hasEq;
+  if (namePart === "--help" || namePart === "-h") {
+    return {
+      isHelp: true
+    };
+  }
+  if (namePart === "--version" || namePart === "-v") {
+    return {
+      isVersion: true
+    };
+  }
+  if (!arg.startsWith("-")) {
+    if (!positionals.length) return {};
+    const pos = positionals.shift();
+    if (pos[1].enumVals && !pos[1].enumVals.find((val2) => val2 === arg)) {
+      throw new BroCliError(void 0, {
+        type: "error",
+        name: cliName,
+        description: cliDescription,
+        violation: "enum_violation",
+        command: command3,
+        option: pos[1],
+        offender: {
+          dataPart: arg
+        }
+      });
+    }
+    data = arg;
+    return {
+      data,
+      skipNext: false,
+      name: pos[0],
+      option: pos[1]
+    };
+  }
+  const option = options.find(([optKey, opt]) => {
+    const names = [opt.name, ...opt.aliases];
+    if (opt.type === "boolean") {
+      const match2 = names.find((name) => name === namePart);
+      if (!match2) return false;
+      let lcaseData = dataPart == null ? void 0 : dataPart.toLowerCase();
+      if (!hasEq && (nextArg == null ? void 0 : nextArg.startsWith("-"))) {
+        data = true;
+        skipNext = false;
+        return true;
+      }
+      if (lcaseData === void 0 || lcaseData === "" || lcaseData === "true" || lcaseData === "1") {
+        data = true;
+        return true;
+      }
+      if (lcaseData === "false" || lcaseData === "0") {
+        data = false;
+        return true;
+      }
+      if (!hasEq) {
+        data = true;
+        skipNext = false;
+        return true;
+      }
+      throw new BroCliError(void 0, {
+        type: "error",
+        name: cliName,
+        description: cliDescription,
+        violation: "invalid_boolean_syntax",
+        option: opt,
+        command: command3,
+        offender: {
+          namePart,
+          dataPart
+        }
+      });
+    } else {
+      const match2 = names.find((name) => name === namePart);
+      if (!match2) return false;
+      if (opt.type === "string") {
+        if (!hasEq && nextArg === void 0) {
+          throw new BroCliError(void 0, {
+            type: "error",
+            name: cliName,
+            description: cliDescription,
+            violation: "invalid_string_syntax",
+            option: opt,
+            command: command3,
+            offender: {
+              namePart,
+              dataPart
+            }
+          });
+        }
+        if (opt.enumVals && !opt.enumVals.find((val2) => val2 === dataPart)) {
+          throw new BroCliError(void 0, {
+            type: "error",
+            name: cliName,
+            description: cliDescription,
+            violation: "enum_violation",
+            option: opt,
+            command: command3,
+            offender: {
+              namePart,
+              dataPart
+            }
+          });
+        }
+        data = dataPart;
+        return true;
+      }
+      if (!hasEq && nextArg === void 0) {
+        throw new BroCliError(void 0, {
+          type: "error",
+          name: cliName,
+          description: cliDescription,
+          violation: "invalid_number_syntax",
+          option: opt,
+          command: command3,
+          offender: {
+            namePart,
+            dataPart
+          }
+        });
+      }
+      const numData = Number(dataPart);
+      if (isNaN(numData)) {
+        throw new BroCliError(void 0, {
+          type: "error",
+          name: cliName,
+          description: cliDescription,
+          violation: "invalid_number_value",
+          option: opt,
+          command: command3,
+          offender: {
+            namePart,
+            dataPart
+          }
+        });
+      }
+      if (opt.isInt && !isInt(numData)) {
+        throw new BroCliError(void 0, {
+          type: "error",
+          name: cliName,
+          description: cliDescription,
+          violation: "expected_int",
+          option: opt,
+          command: command3,
+          offender: {
+            namePart,
+            dataPart
+          }
+        });
+      }
+      if (opt.minVal !== void 0 && numData < opt.minVal) {
+        throw new BroCliError(void 0, {
+          type: "error",
+          name: cliName,
+          description: cliDescription,
+          violation: "below_min",
+          option: opt,
+          command: command3,
+          offender: {
+            namePart,
+            dataPart
+          }
+        });
+      }
+      if (opt.maxVal !== void 0 && numData > opt.maxVal) {
+        throw new BroCliError(void 0, {
+          type: "error",
+          name: cliName,
+          description: cliDescription,
+          violation: "above_max",
+          option: opt,
+          command: command3,
+          offender: {
+            namePart,
+            dataPart
+          }
+        });
+      }
+      data = numData;
+      return true;
+    }
+  });
+  return {
+    data,
+    skipNext,
+    name: option == null ? void 0 : option[0],
+    option: option == null ? void 0 : option[1]
+  };
+};
+var parseOptions = (command3, args, cliName, cliDescription, omitKeysOfUndefinedOptions) => {
+  const options = command3.options;
+  const optEntries = Object.entries(options ?? {}).map(
+    (opt) => [opt[0], opt[1].config]
+  );
+  const nonPositionalEntries = optEntries.filter(([key, opt]) => opt.type !== "positional");
+  const positionalEntries = optEntries.filter(([key, opt]) => opt.type === "positional");
+  const result = {};
+  const missingRequiredArr = [];
+  const unrecognizedArgsArr = [];
+  for (let i4 = 0; i4 < args.length; ++i4) {
+    const arg = args[i4];
+    const nextArg = args[i4 + 1];
+    const {
+      data,
+      name,
+      option,
+      skipNext,
+      isHelp,
+      isVersion
+    } = parseArg(command3, nonPositionalEntries, positionalEntries, arg, nextArg, cliName, cliDescription);
+    if (!option) unrecognizedArgsArr.push(arg.split("=")[0]);
+    if (skipNext) ++i4;
+    if (isHelp) return "help";
+    if (isVersion) return "version";
+    result[name] = data;
+  }
+  for (const [optKey, option] of optEntries) {
+    const data = result[optKey] ?? option.default;
+    if (!omitKeysOfUndefinedOptions) {
+      result[optKey] = data;
+    } else {
+      if (data !== void 0) result[optKey] = data;
+    }
+    if (option.isRequired && result[optKey] === void 0) missingRequiredArr.push([option.name, ...option.aliases]);
+  }
+  if (missingRequiredArr.length) {
+    throw new BroCliError(void 0, {
+      type: "error",
+      violation: "missing_args_error",
+      name: cliName,
+      description: cliDescription,
+      command: command3,
+      missing: missingRequiredArr
+    });
+  }
+  if (unrecognizedArgsArr.length) {
+    throw new BroCliError(void 0, {
+      type: "error",
+      violation: "unrecognized_args_error",
+      name: cliName,
+      description: cliDescription,
+      command: command3,
+      unrecognized: unrecognizedArgsArr
+    });
+  }
+  return Object.keys(result).length ? result : void 0;
+};
+var getCommandNameWithParents = (command3) => command3.parent ? `${getCommandNameWithParents(command3.parent)} ${command3.name}` : command3.name;
+var validateCommands = (commands3, parent) => {
+  const storedNames = {};
+  for (const cmd of commands3) {
+    const storageVals = Object.values(storedNames);
+    for (const storage of storageVals) {
+      const nameOccupier = storage.find((e4) => e4 === cmd.name);
+      if (!nameOccupier) continue;
+      throw new BroCliError(
+        `Can't define command '${getCommandNameWithParents(cmd)}': name is already in use by command '${parent ? `${getCommandNameWithParents(parent)} ` : ""}${storage[0]}'!`
+      );
+    }
+    if (cmd.aliases) {
+      for (const alias of cmd.aliases) {
+        for (const storage of storageVals) {
+          const nameOccupier = storage.find((e4) => e4 === alias);
+          if (!nameOccupier) continue;
+          throw new BroCliError(
+            `Can't define command '${getCommandNameWithParents(cmd)}': alias '${alias}' is already in use by command '${parent ? `${getCommandNameWithParents(parent)} ` : ""}${storage[0]}'!`
+          );
+        }
+      }
+    }
+    storedNames[cmd.name] = cmd.aliases ? [cmd.name, ...cmd.aliases] : [cmd.name];
+    if (cmd.subcommands) cmd.subcommands = validateCommands(cmd.subcommands, cmd);
+  }
+  return commands3;
+};
+var removeByIndex = (arr, idx) => [...arr.slice(0, idx), ...arr.slice(idx + 1, arr.length)];
+var run = async (commands3, config) => {
+  var _a2, _b;
+  const eventHandler = (config == null ? void 0 : config.theme) ? eventHandlerWrapper(config.theme) : defaultEventHandler;
+  const argSource = (config == null ? void 0 : config.argSource) ?? process.argv;
+  const version3 = config == null ? void 0 : config.version;
+  const help = config == null ? void 0 : config.help;
+  const omitKeysOfUndefinedOptions = (config == null ? void 0 : config.omitKeysOfUndefinedOptions) ?? false;
+  const cliName = config == null ? void 0 : config.name;
+  const cliDescription = config == null ? void 0 : config.description;
+  try {
+    const processedCmds = validateCommands(commands3);
+    let args = argSource.slice(2, argSource.length);
+    if (!args.length) {
+      return help !== void 0 ? await executeOrLog(help) : await eventHandler({
+        type: "global_help",
+        description: cliDescription,
+        name: cliName,
+        commands: processedCmds
+      });
+    }
+    const helpIndex = args.findIndex((arg) => arg === "--help" || arg === "-h");
+    if (helpIndex !== -1 && (helpIndex > 0 ? ((_a2 = args[helpIndex - 1]) == null ? void 0 : _a2.startsWith("-")) && !args[helpIndex - 1].includes("=") ? false : true : true)) {
+      const command4 = getCommand(processedCmds, args, cliName, cliDescription).command;
+      if (typeof command4 === "object") {
+        return command4.help !== void 0 ? await executeOrLog(command4.help) : await eventHandler({
+          type: "command_help",
+          description: cliDescription,
+          name: cliName,
+          command: command4
+        });
+      } else {
+        return help !== void 0 ? await executeOrLog(help) : await eventHandler({
+          type: "global_help",
+          description: cliDescription,
+          name: cliName,
+          commands: processedCmds
+        });
+      }
+    }
+    const versionIndex = args.findIndex((arg) => arg === "--version" || arg === "-v");
+    if (versionIndex !== -1 && (versionIndex > 0 ? ((_b = args[versionIndex - 1]) == null ? void 0 : _b.startsWith("-")) ? false : true : true)) {
+      return version3 !== void 0 ? await executeOrLog(version3) : await eventHandler({
+        type: "version",
+        name: cliName,
+        description: cliDescription
+      });
+    }
+    const { command: command3, args: newArgs } = getCommand(processedCmds, args, cliName, cliDescription);
+    if (!command3) {
+      return help !== void 0 ? await executeOrLog(help) : await eventHandler({
+        type: "global_help",
+        description: cliDescription,
+        name: cliName,
+        commands: processedCmds
+      });
+    }
+    if (command3 === "help") {
+      let helpCommand;
+      let newestArgs = newArgs;
+      do {
+        const res = getCommand(processedCmds, newestArgs, cliName, cliDescription);
+        helpCommand = res.command;
+        newestArgs = res.args;
+      } while (helpCommand === "help");
+      return helpCommand ? helpCommand.help !== void 0 ? await executeOrLog(helpCommand.help) : await eventHandler({
+        type: "command_help",
+        description: cliDescription,
+        name: cliName,
+        command: helpCommand
+      }) : help !== void 0 ? await executeOrLog(help) : await eventHandler({
+        type: "global_help",
+        description: cliDescription,
+        name: cliName,
+        commands: processedCmds
+      });
+    }
+    const optionResult = parseOptions(command3, newArgs, cliName, cliDescription, omitKeysOfUndefinedOptions);
+    if (optionResult === "help") {
+      return command3.help !== void 0 ? await executeOrLog(command3.help) : await eventHandler({
+        type: "command_help",
+        description: cliDescription,
+        name: cliName,
+        command: command3
+      });
+    }
+    if (optionResult === "version") {
+      return version3 !== void 0 ? await executeOrLog(version3) : await eventHandler({
+        type: "version",
+        name: cliName,
+        description: cliDescription
+      });
+    }
+    if (command3.handler) {
+      if (config == null ? void 0 : config.hook) await config.hook("before", command3);
+      await command3.handler(command3.transform ? await command3.transform(optionResult) : optionResult);
+      if (config == null ? void 0 : config.hook) await config.hook("after", command3);
+      return;
+    } else {
+      return command3.help !== void 0 ? await executeOrLog(command3.help) : await eventHandler({
+        type: "command_help",
+        description: cliDescription,
+        name: cliName,
+        command: command3
+      });
+    }
+  } catch (e4) {
+    if (e4 instanceof BroCliError) {
+      if (e4.event) await eventHandler(e4.event);
+      else {
+        if (!(config == null ? void 0 : config.noExit)) console.error(e4.message);
+        else return e4.message;
+      }
+    } else {
+      await eventHandler({
+        type: "error",
+        violation: "unknown_error",
+        name: cliName,
+        description: cliDescription,
+        error: e4
+      });
+    }
+    if (!(config == null ? void 0 : config.noExit)) process.exit(1);
+    return;
+  }
+};
+var OptionBuilderBase = class _OptionBuilderBase {
+  _;
+  config = () => this._.config;
+  constructor(config) {
+    this._ = {
+      config: config ?? {
+        aliases: [],
+        type: "string"
+      },
+      $output: void 0
+    };
+  }
+  string(name) {
+    const config = this.config();
+    return new _OptionBuilderBase({ ...config, type: "string", name });
+  }
+  number(name) {
+    const config = this.config();
+    return new _OptionBuilderBase({ ...config, type: "number", name });
+  }
+  boolean(name) {
+    const config = this.config();
+    return new _OptionBuilderBase({ ...config, type: "boolean", name });
+  }
+  positional(displayName) {
+    const config = this.config();
+    return new _OptionBuilderBase({ ...config, type: "positional", name: displayName });
+  }
+  alias(...aliases) {
+    const config = this.config();
+    return new _OptionBuilderBase({ ...config, aliases });
+  }
+  desc(description) {
+    const config = this.config();
+    return new _OptionBuilderBase({ ...config, description });
+  }
+  hidden() {
+    const config = this.config();
+    return new _OptionBuilderBase({ ...config, isHidden: true });
+  }
+  required() {
+    const config = this.config();
+    return new _OptionBuilderBase({ ...config, isRequired: true });
+  }
+  default(value) {
+    const config = this.config();
+    const enums = config.enumVals;
+    if (enums && !enums.find((v6) => value === v6)) {
+      throw new Error(
+        `Option enums [ ${enums.join(", ")} ] are incompatible with default value ${value}`
+      );
+    }
+    return new _OptionBuilderBase({ ...config, default: value });
+  }
+  enum(...values) {
+    const config = this.config();
+    const defaultVal = config.default;
+    if (defaultVal !== void 0 && !values.find((v6) => defaultVal === v6)) {
+      throw new Error(
+        `Option enums [ ${values.join(", ")} ] are incompatible with default value ${defaultVal}`
+      );
+    }
+    return new _OptionBuilderBase({ ...config, enumVals: values });
+  }
+  min(value) {
+    const config = this.config();
+    const maxVal = config.maxVal;
+    if (maxVal !== void 0 && maxVal < value) {
+      throw new BroCliError("Unable to define option's min value to be higher than max value!");
+    }
+    return new _OptionBuilderBase({ ...config, minVal: value });
+  }
+  max(value) {
+    const config = this.config();
+    const minVal = config.minVal;
+    if (minVal !== void 0 && minVal > value) {
+      throw new BroCliError("Unable to define option's max value to be lower than min value!");
+    }
+    return new _OptionBuilderBase({ ...config, maxVal: value });
+  }
+  int() {
+    const config = this.config();
+    return new _OptionBuilderBase({ ...config, isInt: true });
+  }
+};
+function string(name) {
+  return typeof name === "string" ? new OptionBuilderBase().string(name) : new OptionBuilderBase().string();
+}
+function number(name) {
+  return typeof name === "string" ? new OptionBuilderBase().number(name) : new OptionBuilderBase().number();
+}
+function boolean(name) {
+  return typeof name === "string" ? new OptionBuilderBase().boolean(name) : new OptionBuilderBase().boolean();
+}
+
+// src/cli/index.ts
+init_source();
+
+// src/cli/schema.ts
+init_source();
+
+// ../node_modules/.pnpm/dotenv@16.5.0/node_modules/dotenv/config.js
+(function() {
+  require_main().config(
+    Object.assign(
+      {},
+      require_env_options(),
+      require_cli_options()(process.argv)
+    )
+  );
+})();
+
+// src/cli/schema.ts
+var import_fs13 = require("fs");
+var import_hanji15 = __toESM(require_hanji());
+init_schemaValidator();
+init_utils();
+init_global();
+init_utils2();
+
+// ../node_modules/.pnpm/env-paths@3.0.0/node_modules/env-paths/index.js
+var import_node_path = __toESM(require("node:path"), 1);
+var import_node_os2 = __toESM(require("node:os"), 1);
+var import_node_process2 = __toESM(require("node:process"), 1);
+var homedir = import_node_os2.default.homedir();
+var tmpdir = import_node_os2.default.tmpdir();
+var { env: env2 } = import_node_process2.default;
+var macos = (name) => {
+  const library = import_node_path.default.join(homedir, "Library");
+  return {
+    data: import_node_path.default.join(library, "Application Support", name),
+    config: import_node_path.default.join(library, "Preferences", name),
+    cache: import_node_path.default.join(library, "Caches", name),
+    log: import_node_path.default.join(library, "Logs", name),
+    temp: import_node_path.default.join(tmpdir, name)
+  };
+};
+var windows = (name) => {
+  const appData = env2.APPDATA || import_node_path.default.join(homedir, "AppData", "Roaming");
+  const localAppData = env2.LOCALAPPDATA || import_node_path.default.join(homedir, "AppData", "Local");
+  return {
+    // Data/config/cache/log are invented by me as Windows isn't opinionated about this
+    data: import_node_path.default.join(localAppData, name, "Data"),
+    config: import_node_path.default.join(appData, name, "Config"),
+    cache: import_node_path.default.join(localAppData, name, "Cache"),
+    log: import_node_path.default.join(localAppData, name, "Log"),
+    temp: import_node_path.default.join(tmpdir, name)
+  };
+};
+var linux = (name) => {
+  const username = import_node_path.default.basename(homedir);
+  return {
+    data: import_node_path.default.join(env2.XDG_DATA_HOME || import_node_path.default.join(homedir, ".local", "share"), name),
+    config: import_node_path.default.join(env2.XDG_CONFIG_HOME || import_node_path.default.join(homedir, ".config"), name),
+    cache: import_node_path.default.join(env2.XDG_CACHE_HOME || import_node_path.default.join(homedir, ".cache"), name),
+    // https://wiki.debian.org/XDGBaseDirectorySpecification#state
+    log: import_node_path.default.join(env2.XDG_STATE_HOME || import_node_path.default.join(homedir, ".local", "state"), name),
+    temp: import_node_path.default.join(tmpdir, username, name)
+  };
+};
+function envPaths(name, { suffix = "nodejs" } = {}) {
+  if (typeof name !== "string") {
+    throw new TypeError(`Expected a string, got ${typeof name}`);
+  }
+  if (suffix) {
+    name += `-${suffix}`;
+  }
+  if (import_node_process2.default.platform === "darwin") {
+    return macos(name);
+  }
+  if (import_node_process2.default.platform === "win32") {
+    return windows(name);
+  }
+  return linux(name);
+}
+
+// src/utils/certs.ts
+var import_fs2 = require("fs");
+var import_promises = require("fs/promises");
+var import_node_child_process = require("node:child_process");
+var import_path2 = require("path");
+function runCommand(command, options = {}) {
+  return new Promise((resolve2) => {
+    (0, import_node_child_process.exec)(command, options, (error2) => {
+      return resolve2({ exitCode: (error2 == null ? void 0 : error2.code) ?? 0 });
+    });
+  });
+}
+var certs = async () => {
+  const res = await runCommand("mkcert --help");
+  if (res.exitCode === 0) {
+    const p3 = envPaths("drizzle-studio", {
+      suffix: ""
+    });
+    (0, import_fs2.mkdirSync)(p3.data, { recursive: true });
+    const keyPath = (0, import_path2.join)(p3.data, "localhost-key.pem");
+    const certPath = (0, import_path2.join)(p3.data, "localhost.pem");
+    try {
+      await Promise.all([(0, import_promises.access)(keyPath), (0, import_promises.access)(certPath)]);
+    } catch (e4) {
+      await runCommand(`mkcert localhost`, { cwd: p3.data });
+    }
+    const [key, cert] = await Promise.all([
+      (0, import_promises.readFile)(keyPath, { encoding: "utf-8" }),
+      (0, import_promises.readFile)(certPath, { encoding: "utf-8" })
+    ]);
+    return key && cert ? { key, cert } : null;
+  }
+  return null;
+};
+
+// src/cli/commands/check.ts
+init_utils2();
+var checkHandler = (out, dialect6) => {
+  const { snapshots, journal } = prepareOutFolder(out, dialect6);
+  const report = validateWithReport(snapshots, dialect6);
+  if (report.nonLatest.length > 0) {
+    console.log(
+      report.nonLatest.map((it) => {
+        return `${it} is not of the latest version, please run "drizzle-kit up"`;
+      }).join("\n")
+    );
+    process.exit(1);
+  }
+  if (report.malformed.length) {
+    const message2 = report.malformed.map((it) => {
+      return `${it} data is malformed`;
+    }).join("\n");
+    console.log(message2);
+  }
+  const collisionEntries = Object.entries(report.idsMap).filter(
+    (it) => it[1].snapshots.length > 1
+  );
+  const message = collisionEntries.map((it) => {
+    const data = it[1];
+    return `[${data.snapshots.join(
+      ", "
+    )}] are pointing to a parent snapshot: ${data.parent}/snapshot.json which is a collision.`;
+  }).join("\n");
+  if (message) {
+    console.log(message);
+  }
+  let latest;
+  for (const entry of journal.entries) {
+    if (latest && entry.when <= latest.when) {
+      console.warn(
+        `Warning: ${entry.tag} (idx: ${entry.idx}, when: ${entry.when}) follows ${latest.tag} (idx: ${latest.idx}, when: ${latest.when}) in the journal, but its timestamp is not greater. If the earlier entry has already been applied, the migrator will skip this entry. Journal timestamps must strictly increase in entry order.`
+      );
+    } else {
+      latest = entry;
+    }
+  }
+  const abort = report.malformed.length || collisionEntries.length > 0;
+  if (abort) {
+    process.exit(1);
+  }
+};
+
+// src/cli/commands/drop.ts
+init_source();
+var import_fs7 = require("fs");
+var import_fs8 = __toESM(require("fs"));
+var import_hanji4 = __toESM(require_hanji());
+var import_path6 = require("path");
+init_views();
+init_migrate();
+var dropMigration = async ({
+  out,
+  bundle
+}) => {
+  const metaFilePath = (0, import_path6.join)(out, "meta", "_journal.json");
+  const journal = JSON.parse((0, import_fs7.readFileSync)(metaFilePath, "utf-8"));
+  if (journal.entries.length === 0) {
+    console.log(
+      `[${source_default.blue("i")}] no migration entries found in ${metaFilePath}`
+    );
+    return;
+  }
+  const result = await (0, import_hanji4.render)(new DropMigrationView(journal.entries));
+  if (result.status === "aborted") return;
+  delete journal.entries[journal.entries.indexOf(result.data)];
+  const resultJournal = {
+    ...journal,
+    entries: journal.entries.filter(Boolean)
+  };
+  const sqlFilePath = (0, import_path6.join)(out, `${result.data.tag}.sql`);
+  const snapshotFilePath = (0, import_path6.join)(
+    out,
+    "meta",
+    `${result.data.tag.split("_")[0]}_snapshot.json`
+  );
+  (0, import_fs7.rmSync)(sqlFilePath);
+  (0, import_fs7.rmSync)(snapshotFilePath);
+  (0, import_fs7.writeFileSync)(metaFilePath, JSON.stringify(resultJournal, null, 2));
+  if (bundle) {
+    import_fs8.default.writeFileSync(
+      (0, import_path6.join)(out, `migrations.js`),
+      embeddedMigrations(resultJournal)
+    );
+  }
+  console.log(
+    `[${source_default.green("\u2713")}] ${source_default.bold(
+      result.data.tag
+    )} migration successfully dropped`
+  );
+};
+
+// src/cli/commands/mysqlUp.ts
+var upMysqlHandler = (out) => {
+};
+
+// src/cli/commands/pgUp.ts
+init_source();
+var import_fs9 = require("fs");
+init_pgSchema();
+init_utils2();
+var upPgHandler = (out) => {
+  const { snapshots } = prepareOutFolder(out, "postgresql");
+  const report = validateWithReport(snapshots, "postgresql");
+  report.nonLatest.map((it) => ({
+    path: it,
+    raw: report.rawMap[it]
+  })).forEach((it) => {
+    const path4 = it.path;
+    let resultV6 = it.raw;
+    if (it.raw.version === "5") {
+      resultV6 = updateUpToV6(it.raw);
+    }
+    const result = updateUpToV7(resultV6);
+    console.log(`[${source_default.green("\u2713")}] ${path4}`);
+    (0, import_fs9.writeFileSync)(path4, JSON.stringify(result, null, 2));
+  });
+  console.log("Everything's fine \u{1F436}\u{1F525}");
+};
+var updateUpToV6 = (json) => {
+  const schema6 = pgSchemaV5.parse(json);
+  const tables = Object.fromEntries(
+    Object.entries(schema6.tables).map((it) => {
+      const table6 = it[1];
+      const schema7 = table6.schema || "public";
+      return [`${schema7}.${table6.name}`, table6];
+    })
+  );
+  const enums = Object.fromEntries(
+    Object.entries(schema6.enums).map((it) => {
+      const en = it[1];
+      return [
+        `public.${en.name}`,
+        {
+          name: en.name,
+          schema: "public",
+          values: Object.values(en.values)
+        }
+      ];
+    })
+  );
+  return {
+    ...schema6,
+    version: "6",
+    dialect: "postgresql",
+    tables,
+    enums
+  };
+};
+var updateUpToV7 = (json) => {
+  const schema6 = pgSchemaV6.parse(json);
+  const tables = Object.fromEntries(
+    Object.entries(schema6.tables).map((it) => {
+      const table6 = it[1];
+      const mappedIndexes = Object.fromEntries(
+        Object.entries(table6.indexes).map((idx) => {
+          const { columns, ...rest } = idx[1];
+          const mappedColumns = columns.map((it2) => {
+            return {
+              expression: it2,
+              isExpression: false,
+              asc: true,
+              nulls: "last",
+              opClass: void 0
+            };
+          });
+          return [idx[0], { columns: mappedColumns, with: {}, ...rest }];
+        })
+      );
+      return [it[0], { ...table6, indexes: mappedIndexes, policies: {}, isRLSEnabled: false, checkConstraints: {} }];
+    })
+  );
+  return {
+    ...schema6,
+    version: "7",
+    dialect: "postgresql",
+    sequences: {},
+    tables,
+    policies: {},
+    views: {},
+    roles: {}
+  };
+};
+
+// src/cli/commands/singlestoreUp.ts
+var upSinglestoreHandler = (out) => {
+};
+
+// src/cli/commands/sqliteUp.ts
+init_source();
+var import_fs10 = require("fs");
+init_global();
+init_sqliteSchema();
+init_utils2();
+var upSqliteHandler = (out) => {
+  const { snapshots } = prepareOutFolder(out, "sqlite");
+  const report = validateWithReport(snapshots, "sqlite");
+  report.nonLatest.map((it) => ({
+    path: it,
+    raw: report.rawMap[it]
+  })).forEach((it) => {
+    const path4 = it.path;
+    const result = updateUpToV62(it.raw);
+    console.log(`[${source_default.green("\u2713")}] ${path4}`);
+    (0, import_fs10.writeFileSync)(path4, JSON.stringify(result, null, 2));
+  });
+  console.log("Everything's fine \u{1F436}\u{1F525}");
+};
+var updateUpToV62 = (json) => {
+  const schema6 = sqliteSchemaV5.parse(json);
+  const tables = mapEntries(schema6.tables, (tableKey2, table6) => {
+    const columns = mapEntries(table6.columns, (key, value) => {
+      if (value.default && (typeof value.default === "object" || Array.isArray(value.default))) {
+        value.default = `'${JSON.stringify(value.default)}'`;
+      }
+      return [key, value];
+    });
+    table6.columns = columns;
+    return [tableKey2, table6];
+  });
+  return {
+    ...schema6,
+    version: "6",
+    dialect: "sqlite",
+    tables,
+    views: {}
+  };
+};
+
+// src/cli/schema.ts
+init_utils3();
+init_utils5();
+init_common();
+init_outputs();
+init_views();
+var optionDialect = string("dialect").enum(...dialects).desc(
+  `Database dialect: 'gel', 'postgresql', 'mysql', 'sqlite', 'turso' or 'singlestore'`
+);
+var optionOut = string().desc("Output folder, 'drizzle' by default");
+var optionConfig = string().desc("Path to drizzle config file");
+var optionBreakpoints = boolean().desc(
+  `Prepare SQL statements with breakpoints`
+);
+var optionDriver = string().enum(...drivers).desc("Database driver");
+var optionCasing = string().enum("camelCase", "snake_case").desc("Casing for serialization");
+var generate = command2({
+  name: "generate",
+  options: {
+    config: optionConfig,
+    dialect: optionDialect,
+    driver: optionDriver,
+    casing: optionCasing,
+    schema: string().desc("Path to a schema file or folder"),
+    out: optionOut,
+    name: string().desc("Migration file name"),
+    breakpoints: optionBreakpoints,
+    custom: boolean().desc("Prepare empty migration file for custom SQL").default(false),
+    prefix: string().enum(...prefixes).default("index")
+  },
+  transform: async (opts) => {
+    const from = assertCollisions(
+      "generate",
+      opts,
+      ["prefix", "name", "custom"],
+      ["driver", "breakpoints", "schema", "out", "dialect", "casing"]
+    );
+    return prepareGenerateConfig(opts, from);
+  },
+  handler: async (opts) => {
+    await assertOrmCoreVersion();
+    await assertPackages("drizzle-orm");
+    const {
+      prepareAndMigratePg: prepareAndMigratePg2,
+      prepareAndMigrateMysql: prepareAndMigrateMysql2,
+      prepareAndMigrateSqlite: prepareAndMigrateSqlite2,
+      prepareAndMigrateLibSQL: prepareAndMigrateLibSQL2,
+      prepareAndMigrateSingleStore: prepareAndMigrateSingleStore2
+    } = await Promise.resolve().then(() => (init_migrate(), migrate_exports));
+    const dialect6 = opts.dialect;
+    if (dialect6 === "postgresql") {
+      await prepareAndMigratePg2(opts);
+    } else if (dialect6 === "mysql") {
+      await prepareAndMigrateMysql2(opts);
+    } else if (dialect6 === "sqlite") {
+      await prepareAndMigrateSqlite2(opts);
+    } else if (dialect6 === "turso") {
+      await prepareAndMigrateLibSQL2(opts);
+    } else if (dialect6 === "singlestore") {
+      await prepareAndMigrateSingleStore2(opts);
+    } else if (dialect6 === "gel") {
+      console.log(
+        error(
+          `You can't use 'generate' command with Gel dialect`
+        )
+      );
+      process.exit(1);
+    } else {
+      assertUnreachable(dialect6);
+    }
+  }
+});
+var migrate = command2({
+  name: "migrate",
+  options: {
+    config: optionConfig
+  },
+  transform: async (opts) => {
+    return await prepareMigrateConfig(opts.config);
+  },
+  handler: async (opts) => {
+    await assertOrmCoreVersion();
+    await assertPackages("drizzle-orm");
+    const { dialect: dialect6, schema: schema6, table: table6, out, credentials: credentials2 } = opts;
+    try {
+      if (dialect6 === "postgresql") {
+        if ("driver" in credentials2) {
+          const { driver: driver2 } = credentials2;
+          if (driver2 === "aws-data-api") {
+            if (!await ormVersionGt("0.30.10")) {
+              console.log(
+                "To use 'aws-data-api' driver - please update drizzle-orm to the latest version"
+              );
+              process.exit(1);
+            }
+          } else if (driver2 === "pglite") {
+            if (!await ormVersionGt("0.30.6")) {
+              console.log(
+                "To use 'pglite' driver - please update drizzle-orm to the latest version"
+              );
+              process.exit(1);
+            }
+          } else {
+            assertUnreachable(driver2);
+          }
+        }
+        const { preparePostgresDB: preparePostgresDB2 } = await Promise.resolve().then(() => (init_connections(), connections_exports));
+        const { migrate: migrate2 } = await preparePostgresDB2(credentials2);
+        await (0, import_hanji15.renderWithTask)(
+          new MigrateProgress(),
+          migrate2({
+            migrationsFolder: out,
+            migrationsTable: table6,
+            migrationsSchema: schema6
+          })
+        );
+      } else if (dialect6 === "mysql") {
+        const { connectToMySQL: connectToMySQL2 } = await Promise.resolve().then(() => (init_connections(), connections_exports));
+        const { migrate: migrate2 } = await connectToMySQL2(credentials2);
+        await (0, import_hanji15.renderWithTask)(
+          new MigrateProgress(),
+          migrate2({
+            migrationsFolder: out,
+            migrationsTable: table6,
+            migrationsSchema: schema6
+          })
+        );
+      } else if (dialect6 === "singlestore") {
+        const { connectToSingleStore: connectToSingleStore2 } = await Promise.resolve().then(() => (init_connections(), connections_exports));
+        const { migrate: migrate2 } = await connectToSingleStore2(credentials2);
+        await (0, import_hanji15.renderWithTask)(
+          new MigrateProgress(),
+          migrate2({
+            migrationsFolder: out,
+            migrationsTable: table6,
+            migrationsSchema: schema6
+          })
+        );
+      } else if (dialect6 === "sqlite") {
+        const { connectToSQLite: connectToSQLite2 } = await Promise.resolve().then(() => (init_connections(), connections_exports));
+        const { migrate: migrate2 } = await connectToSQLite2(credentials2);
+        await (0, import_hanji15.renderWithTask)(
+          new MigrateProgress(),
+          migrate2({
+            migrationsFolder: opts.out,
+            migrationsTable: table6,
+            migrationsSchema: schema6
+          })
+        );
+      } else if (dialect6 === "turso") {
+        const { connectToLibSQL: connectToLibSQL2 } = await Promise.resolve().then(() => (init_connections(), connections_exports));
+        const { migrate: migrate2 } = await connectToLibSQL2(credentials2);
+        await (0, import_hanji15.renderWithTask)(
+          new MigrateProgress(),
+          migrate2({
+            migrationsFolder: opts.out,
+            migrationsTable: table6,
+            migrationsSchema: schema6
+          })
+        );
+      } else if (dialect6 === "gel") {
+        console.log(
+          error(
+            `You can't use 'migrate' command with Gel dialect`
+          )
+        );
+        process.exit(1);
+      } else {
+        assertUnreachable(dialect6);
+      }
+    } catch (e4) {
+      console.error(e4);
+      process.exit(1);
+    }
+    process.exit(0);
+  }
+});
+var optionsFilters = {
+  tablesFilter: string().desc("Table name filters"),
+  schemaFilters: string().desc("Schema name filters"),
+  extensionsFilters: string().desc(
+    "`Database extensions internal database filters"
+  )
+};
+var optionsDatabaseCredentials = {
+  url: string().desc("Database connection URL"),
+  host: string().desc("Database host"),
+  port: string().desc("Database port"),
+  user: string().desc("Database user"),
+  password: string().desc("Database password"),
+  database: string().desc("Database name"),
+  ssl: string().desc("ssl mode"),
+  // Turso
+  authToken: string("auth-token").desc("Database auth token [Turso]"),
+  // gel
+  tlsSecurity: string("tlsSecurity").desc("tls security mode"),
+  // specific cases
+  driver: optionDriver
+};
+var push = command2({
+  name: "push",
+  options: {
+    config: optionConfig,
+    dialect: optionDialect,
+    casing: optionCasing,
+    schema: string().desc("Path to a schema file or folder"),
+    ...optionsFilters,
+    ...optionsDatabaseCredentials,
+    verbose: boolean().desc("Print all statements for each push").default(false),
+    strict: boolean().desc("Always ask for confirmation").default(false),
+    force: boolean().desc(
+      "Auto-approve all data loss statements. Note: Data loss statements may truncate your tables and data"
+    ).default(false)
+  },
+  transform: async (opts) => {
+    const from = assertCollisions(
+      "push",
+      opts,
+      ["force", "verbose", "strict"],
+      [
+        "schema",
+        "dialect",
+        "driver",
+        "url",
+        "host",
+        "port",
+        "user",
+        "password",
+        "database",
+        "ssl",
+        "authToken",
+        "schemaFilters",
+        "extensionsFilters",
+        "tablesFilter",
+        "casing",
+        "tlsSecurity"
+      ]
+    );
+    return preparePushConfig(opts, from);
+  },
+  handler: async (config) => {
+    await assertPackages("drizzle-orm");
+    await assertOrmCoreVersion();
+    const {
+      dialect: dialect6,
+      schemaPath,
+      strict,
+      verbose,
+      credentials: credentials2,
+      tablesFilter,
+      schemasFilter,
+      force,
+      casing: casing2,
+      entities
+    } = config;
+    try {
+      if (dialect6 === "mysql") {
+        const { mysqlPush: mysqlPush2 } = await Promise.resolve().then(() => (init_push(), push_exports));
+        await mysqlPush2(
+          schemaPath,
+          credentials2,
+          tablesFilter,
+          strict,
+          verbose,
+          force,
+          casing2
+        );
+      } else if (dialect6 === "postgresql") {
+        if ("driver" in credentials2) {
+          const { driver: driver2 } = credentials2;
+          if (driver2 === "aws-data-api") {
+            if (!await ormVersionGt("0.30.10")) {
+              console.log(
+                "To use 'aws-data-api' driver - please update drizzle-orm to the latest version"
+              );
+              process.exit(1);
+            }
+          } else if (driver2 === "pglite") {
+            if (!await ormVersionGt("0.30.6")) {
+              console.log(
+                "To use 'pglite' driver - please update drizzle-orm to the latest version"
+              );
+              process.exit(1);
+            }
+          } else {
+            assertUnreachable(driver2);
+          }
+        }
+        const { pgPush: pgPush2 } = await Promise.resolve().then(() => (init_push(), push_exports));
+        await pgPush2(
+          schemaPath,
+          verbose,
+          strict,
+          credentials2,
+          tablesFilter,
+          schemasFilter,
+          entities,
+          force,
+          casing2
+        );
+      } else if (dialect6 === "sqlite") {
+        const { sqlitePush: sqlitePush2 } = await Promise.resolve().then(() => (init_push(), push_exports));
+        await sqlitePush2(
+          schemaPath,
+          verbose,
+          strict,
+          credentials2,
+          tablesFilter,
+          force,
+          casing2
+        );
+      } else if (dialect6 === "turso") {
+        const { libSQLPush: libSQLPush2 } = await Promise.resolve().then(() => (init_push(), push_exports));
+        await libSQLPush2(
+          schemaPath,
+          verbose,
+          strict,
+          credentials2,
+          tablesFilter,
+          force,
+          casing2
+        );
+      } else if (dialect6 === "singlestore") {
+        const { singlestorePush: singlestorePush2 } = await Promise.resolve().then(() => (init_push(), push_exports));
+        await singlestorePush2(
+          schemaPath,
+          credentials2,
+          tablesFilter,
+          strict,
+          verbose,
+          force,
+          casing2
+        );
+      } else if (dialect6 === "gel") {
+        console.log(
+          error(
+            `You can't use 'push' command with Gel dialect`
+          )
+        );
+        process.exit(1);
+      } else {
+        assertUnreachable(dialect6);
+      }
+    } catch (e4) {
+      console.error(e4);
+    }
+    process.exit(0);
+  }
+});
+var check = command2({
+  name: "check",
+  options: {
+    config: optionConfig,
+    dialect: optionDialect,
+    out: optionOut
+  },
+  transform: async (opts) => {
+    const from = assertCollisions("check", opts, [], ["dialect", "out"]);
+    return prepareCheckParams(opts, from);
+  },
+  handler: async (config) => {
+    await assertOrmCoreVersion();
+    const { out, dialect: dialect6 } = config;
+    checkHandler(out, dialect6);
+    console.log("Everything's fine \u{1F436}\u{1F525}");
+  }
+});
+var up = command2({
+  name: "up",
+  options: {
+    config: optionConfig,
+    dialect: optionDialect,
+    out: optionOut
+  },
+  transform: async (opts) => {
+    const from = assertCollisions("check", opts, [], ["dialect", "out"]);
+    return prepareCheckParams(opts, from);
+  },
+  handler: async (config) => {
+    await assertOrmCoreVersion();
+    const { out, dialect: dialect6 } = config;
+    await assertPackages("drizzle-orm");
+    if (dialect6 === "postgresql") {
+      upPgHandler(out);
+    }
+    if (dialect6 === "mysql") {
+      upMysqlHandler(out);
+    }
+    if (dialect6 === "sqlite" || dialect6 === "turso") {
+      upSqliteHandler(out);
+    }
+    if (dialect6 === "singlestore") {
+      upSinglestoreHandler(out);
+    }
+    if (dialect6 === "gel") {
+      console.log(
+        error(
+          `You can't use 'up' command with Gel dialect`
+        )
+      );
+      process.exit(1);
+    }
+  }
+});
+var pull = command2({
+  name: "introspect",
+  aliases: ["pull"],
+  options: {
+    config: optionConfig,
+    dialect: optionDialect,
+    out: optionOut,
+    breakpoints: optionBreakpoints,
+    casing: string("introspect-casing").enum("camel", "preserve"),
+    ...optionsFilters,
+    ...optionsDatabaseCredentials
+  },
+  transform: async (opts) => {
+    const from = assertCollisions(
+      "introspect",
+      opts,
+      [],
+      [
+        "dialect",
+        "driver",
+        "out",
+        "url",
+        "host",
+        "port",
+        "user",
+        "password",
+        "database",
+        "ssl",
+        "authToken",
+        "casing",
+        "breakpoints",
+        "tablesFilter",
+        "schemaFilters",
+        "extensionsFilters",
+        "tlsSecurity"
+      ]
+    );
+    return preparePullConfig(opts, from);
+  },
+  handler: async (config) => {
+    await assertPackages("drizzle-orm");
+    await assertOrmCoreVersion();
+    const {
+      dialect: dialect6,
+      credentials: credentials2,
+      out,
+      casing: casing2,
+      breakpoints,
+      tablesFilter,
+      schemasFilter,
+      prefix: prefix2,
+      entities
+    } = config;
+    (0, import_fs13.mkdirSync)(out, { recursive: true });
+    console.log(
+      grey(
+        `Pulling from [${schemasFilter.map((it) => `'${it}'`).join(", ")}] list of schemas`
+      )
+    );
+    console.log();
+    try {
+      if (dialect6 === "postgresql") {
+        if ("driver" in credentials2) {
+          const { driver: driver2 } = credentials2;
+          if (driver2 === "aws-data-api") {
+            if (!await ormVersionGt("0.30.10")) {
+              console.log(
+                "To use 'aws-data-api' driver - please update drizzle-orm to the latest version"
+              );
+              process.exit(1);
+            }
+          } else if (driver2 === "pglite") {
+            if (!await ormVersionGt("0.30.6")) {
+              console.log(
+                "To use 'pglite' driver - please update drizzle-orm to the latest version"
+              );
+              process.exit(1);
+            }
+          } else {
+            assertUnreachable(driver2);
+          }
+        }
+        const { introspectPostgres: introspectPostgres2 } = await Promise.resolve().then(() => (init_introspect(), introspect_exports));
+        await introspectPostgres2(
+          casing2,
+          out,
+          breakpoints,
+          credentials2,
+          tablesFilter,
+          schemasFilter,
+          prefix2,
+          entities
+        );
+      } else if (dialect6 === "mysql") {
+        const { introspectMysql: introspectMysql2 } = await Promise.resolve().then(() => (init_introspect(), introspect_exports));
+        await introspectMysql2(
+          casing2,
+          out,
+          breakpoints,
+          credentials2,
+          tablesFilter,
+          prefix2
+        );
+      } else if (dialect6 === "sqlite") {
+        const { introspectSqlite: introspectSqlite2 } = await Promise.resolve().then(() => (init_introspect(), introspect_exports));
+        await introspectSqlite2(
+          casing2,
+          out,
+          breakpoints,
+          credentials2,
+          tablesFilter,
+          prefix2
+        );
+      } else if (dialect6 === "turso") {
+        const { introspectLibSQL: introspectLibSQL2 } = await Promise.resolve().then(() => (init_introspect(), introspect_exports));
+        await introspectLibSQL2(
+          casing2,
+          out,
+          breakpoints,
+          credentials2,
+          tablesFilter,
+          prefix2
+        );
+      } else if (dialect6 === "singlestore") {
+        const { introspectSingleStore: introspectSingleStore2 } = await Promise.resolve().then(() => (init_introspect(), introspect_exports));
+        await introspectSingleStore2(
+          casing2,
+          out,
+          breakpoints,
+          credentials2,
+          tablesFilter,
+          prefix2
+        );
+      } else if (dialect6 === "gel") {
+        const { introspectGel: introspectGel2 } = await Promise.resolve().then(() => (init_introspect(), introspect_exports));
+        await introspectGel2(
+          casing2,
+          out,
+          breakpoints,
+          credentials2,
+          tablesFilter,
+          schemasFilter,
+          prefix2,
+          entities
+        );
+      } else {
+        assertUnreachable(dialect6);
+      }
+    } catch (e4) {
+      console.error(e4);
+    }
+    process.exit(0);
+  }
+});
+var drop = command2({
+  name: "drop",
+  options: {
+    config: optionConfig,
+    out: optionOut,
+    driver: optionDriver
+  },
+  transform: async (opts) => {
+    const from = assertCollisions("check", opts, [], ["driver", "out"]);
+    return prepareDropParams(opts, from);
+  },
+  handler: async (config) => {
+    await assertOrmCoreVersion();
+    assertV1OutFolder(config.out);
+    await dropMigration(config);
+  }
+});
+var studio = command2({
+  name: "studio",
+  options: {
+    config: optionConfig,
+    port: number().desc("Custom port for drizzle studio [default=4983]"),
+    host: string().desc("Custom host for drizzle studio [default=0.0.0.0]"),
+    verbose: boolean().default(false).desc("Print all stataments that are executed by Studio")
+  },
+  handler: async (opts) => {
+    await assertOrmCoreVersion();
+    await assertPackages("drizzle-orm");
+    assertStudioNodeVersion();
+    const {
+      dialect: dialect6,
+      schema: schemaPath,
+      port,
+      host,
+      credentials: credentials2,
+      casing: casing2
+    } = await prepareStudioConfig(opts);
+    const {
+      drizzleForPostgres: drizzleForPostgres2,
+      preparePgSchema: preparePgSchema2,
+      prepareMySqlSchema: prepareMySqlSchema2,
+      drizzleForMySQL: drizzleForMySQL2,
+      prepareSQLiteSchema: prepareSQLiteSchema2,
+      drizzleForSQLite: drizzleForSQLite2,
+      prepareSingleStoreSchema: prepareSingleStoreSchema2,
+      drizzleForSingleStore: drizzleForSingleStore2,
+      drizzleForLibSQL: drizzleForLibSQL2
+    } = await Promise.resolve().then(() => (init_studio2(), studio_exports));
+    let setup;
+    try {
+      if (dialect6 === "postgresql") {
+        if ("driver" in credentials2) {
+          const { driver: driver2 } = credentials2;
+          if (driver2 === "aws-data-api") {
+            if (!await ormVersionGt("0.30.10")) {
+              console.log(
+                "To use 'aws-data-api' driver - please update drizzle-orm to the latest version"
+              );
+              process.exit(1);
+            }
+          } else if (driver2 === "pglite") {
+            if (!await ormVersionGt("0.30.6")) {
+              console.log(
+                "To use 'pglite' driver - please update drizzle-orm to the latest version"
+              );
+              process.exit(1);
+            }
+          } else {
+            assertUnreachable(driver2);
+          }
+        }
+        const { schema: schema6, relations: relations5, files } = schemaPath ? await preparePgSchema2(schemaPath) : { schema: {}, relations: {}, files: [] };
+        setup = await drizzleForPostgres2(credentials2, schema6, relations5, files, casing2);
+      } else if (dialect6 === "mysql") {
+        const { schema: schema6, relations: relations5, files } = schemaPath ? await prepareMySqlSchema2(schemaPath) : { schema: {}, relations: {}, files: [] };
+        setup = await drizzleForMySQL2(credentials2, schema6, relations5, files, casing2);
+      } else if (dialect6 === "sqlite") {
+        const { schema: schema6, relations: relations5, files } = schemaPath ? await prepareSQLiteSchema2(schemaPath) : { schema: {}, relations: {}, files: [] };
+        setup = await drizzleForSQLite2(credentials2, schema6, relations5, files, casing2);
+      } else if (dialect6 === "turso") {
+        const { schema: schema6, relations: relations5, files } = schemaPath ? await prepareSQLiteSchema2(schemaPath) : { schema: {}, relations: {}, files: [] };
+        setup = await drizzleForLibSQL2(credentials2, schema6, relations5, files, casing2);
+      } else if (dialect6 === "singlestore") {
+        const { schema: schema6, relations: relations5, files } = schemaPath ? await prepareSingleStoreSchema2(schemaPath) : { schema: {}, relations: {}, files: [] };
+        setup = await drizzleForSingleStore2(
+          credentials2,
+          schema6,
+          relations5,
+          files,
+          casing2
+        );
+      } else if (dialect6 === "gel") {
+        console.log(
+          error(
+            `You can't use 'studio' command with Gel dialect`
+          )
+        );
+        process.exit(1);
+      } else {
+        assertUnreachable(dialect6);
+      }
+      const { prepareServer: prepareServer2 } = await Promise.resolve().then(() => (init_studio2(), studio_exports));
+      const server = await prepareServer2(setup);
+      console.log();
+      console.log(
+        withStyle.fullWarning(
+          "Drizzle Studio is currently in Beta. If you find anything that is not working as expected or should be improved, feel free to create an issue on GitHub: https://github.com/drizzle-team/drizzle-kit-mirror/issues/new or write to us on Discord: https://discord.gg/WcRKz2FFxN"
+        )
+      );
+      const { key, cert } = await certs() || {};
+      server.start({
+        host,
+        port,
+        key,
+        cert,
+        cb: (err2, _address) => {
+          if (err2) {
+            console.error(err2);
+          } else {
+            const queryParams = {};
+            if (port !== 4983) {
+              queryParams.port = port;
+            }
+            if (host !== "127.0.0.1") {
+              queryParams.host = host;
+            }
+            const queryString = Object.keys(queryParams).map((key2) => {
+              return `${key2}=${queryParams[key2]}`;
+            }).join("&");
+            console.log(
+              `
+Drizzle Studio is up and running on ${source_default.blue(
+                `https://local.drizzle.studio${queryString ? `?${queryString}` : ""}`
+              )}`
+            );
+          }
+        }
+      });
+    } catch (e4) {
+      console.error(e4);
+      process.exit(0);
+    }
+  }
+});
+var exportRaw = command2({
+  name: "export",
+  desc: "Generate diff between current state and empty state in specified formats: sql",
+  options: {
+    sql: boolean("sql").default(true).desc("Generate as sql"),
+    config: optionConfig,
+    dialect: optionDialect,
+    schema: string().desc("Path to a schema file or folder")
+  },
+  transform: async (opts) => {
+    const from = assertCollisions("export", opts, ["sql"], ["dialect", "schema"]);
+    return prepareExportConfig(opts, from);
+  },
+  handler: async (opts) => {
+    await assertOrmCoreVersion();
+    await assertPackages("drizzle-orm");
+    const {
+      prepareAndExportPg: prepareAndExportPg2,
+      prepareAndExportMysql: prepareAndExportMysql2,
+      prepareAndExportSqlite: prepareAndExportSqlite2,
+      prepareAndExportLibSQL: prepareAndExportLibSQL2,
+      prepareAndExportSinglestore: prepareAndExportSinglestore2
+    } = await Promise.resolve().then(() => (init_migrate(), migrate_exports));
+    const dialect6 = opts.dialect;
+    if (dialect6 === "postgresql") {
+      await prepareAndExportPg2(opts);
+    } else if (dialect6 === "mysql") {
+      await prepareAndExportMysql2(opts);
+    } else if (dialect6 === "sqlite") {
+      await prepareAndExportSqlite2(opts);
+    } else if (dialect6 === "turso") {
+      await prepareAndExportLibSQL2(opts);
+    } else if (dialect6 === "singlestore") {
+      await prepareAndExportSinglestore2(opts);
+    } else if (dialect6 === "gel") {
+      console.log(
+        error(
+          `You can't use 'export' command with Gel dialect`
+        )
+      );
+      process.exit(1);
+    } else {
+      assertUnreachable(dialect6);
+    }
+  }
+});
+
+// src/cli/index.ts
+init_utils5();
+var version2 = async () => {
+  const { npmVersion } = await ormCoreVersions();
+  const ormVersion = npmVersion ? `drizzle-orm: v${npmVersion}` : "";
+  const envVersion = "0.31.11";
+  const kitVersion = envVersion ? `v${envVersion}` : "--";
+  const versions = `drizzle-kit: ${kitVersion}
+${ormVersion}`;
+  console.log(source_default.gray(versions), "\n");
+};
+var legacyCommand = (name, newName) => {
+  return command2({
+    name,
+    hidden: true,
+    handler: () => {
+      console.log(
+        `This command is deprecated, please use updated '${newName}' command (see https://orm.drizzle.team/kit-docs/upgrade-21#how-to-migrate-to-0210)`
+      );
+    }
+  });
+};
+var legacy = [
+  legacyCommand("generate:pg", "generate"),
+  legacyCommand("generate:mysql", "generate"),
+  legacyCommand("generate:sqlite", "generate"),
+  legacyCommand("push:pg", "push"),
+  legacyCommand("push:mysql", "push"),
+  legacyCommand("push:sqlite", "push"),
+  legacyCommand("introspect:pg", "introspect"),
+  legacyCommand("introspect:mysql", "introspect"),
+  legacyCommand("introspect:sqlite", "introspect"),
+  legacyCommand("up:pg", "up"),
+  legacyCommand("up:mysql", "up"),
+  legacyCommand("up:sqlite", "up"),
+  legacyCommand("check:pg", "check"),
+  legacyCommand("check:mysql", "check"),
+  legacyCommand("check:sqlite", "check")
+];
+run([generate, migrate, pull, push, studio, up, check, drop, exportRaw, ...legacy], {
+  name: "drizzle-kit",
+  version: version2
+});
+/*! Bundled license information:
+
+web-streams-polyfill/dist/ponyfill.es2018.js:
+  (**
+   * @license
+   * web-streams-polyfill v3.3.3
+   * Copyright 2024 Mattias Buelens, Diwank Singh Tomer and other contributors.
+   * This code is released under the MIT license.
+   * SPDX-License-Identifier: MIT
+   *)
+
+fetch-blob/index.js:
+  (*! fetch-blob. MIT License. Jimmy Wärting  *)
+
+formdata-polyfill/esm.min.js:
+  (*! formdata-polyfill. MIT License. Jimmy Wärting  *)
+
+node-domexception/index.js:
+  (*! node-domexception. MIT License. Jimmy Wärting  *)
+
+gel/dist/primitives/chars.js:
+gel/dist/primitives/buffer.js:
+gel/dist/errors/index.js:
+gel/dist/primitives/lru.js:
+gel/dist/codecs/consts.js:
+gel/dist/codecs/ifaces.js:
+gel/dist/codecs/boolean.js:
+gel/dist/codecs/numbers.js:
+gel/dist/codecs/numerics.js:
+gel/dist/codecs/text.js:
+gel/dist/codecs/uuid.js:
+gel/dist/codecs/bytes.js:
+gel/dist/codecs/json.js:
+gel/dist/datatypes/datetime.js:
+gel/dist/codecs/datetime.js:
+gel/dist/datatypes/memory.js:
+gel/dist/codecs/memory.js:
+gel/dist/codecs/pgvector.js:
+gel/dist/codecs/codecs.js:
+gel/dist/codecs/tuple.js:
+gel/dist/datatypes/range.js:
+gel/dist/codecs/range.js:
+gel/dist/codecs/namedtuple.js:
+gel/dist/codecs/array.js:
+gel/dist/codecs/enum.js:
+gel/dist/codecs/object.js:
+gel/dist/codecs/set.js:
+gel/dist/codecs/record.js:
+gel/dist/codecs/sparseObject.js:
+gel/dist/codecs/registry.js:
+gel/dist/retry.js:
+gel/dist/conUtils.js:
+gel/dist/errors/map.js:
+gel/dist/errors/resolve.js:
+gel/dist/baseConn.js:
+gel/dist/scram.js:
+gel/dist/rawConn.js:
+gel/dist/index.shared.js:
+gel/dist/index.node.js:
+  (*!
+   * This source file is part of the Gel open source project.
+   *
+   * Copyright 2019-present MagicStack Inc. and the Gel authors.
+   *
+   * Licensed under the Apache License, Version 2.0 (the "License");
+   * you may not use this file except in compliance with the License.
+   * You may obtain a copy of the License at
+   *
+   *     http://www.apache.org/licenses/LICENSE-2.0
+   *
+   * Unless required by applicable law or agreed to in writing, software
+   * distributed under the License is distributed on an "AS IS" BASIS,
+   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   * See the License for the specific language governing permissions and
+   * limitations under the License.
+   *)
+
+gel/dist/datatypes/dateutil.js:
+  (*!
+   * Portions Copyright (c) 2019 MagicStack Inc. and the Gel authors.
+   * Portions Copyright (c) 2001-2019 Python Software Foundation.
+   * All rights reserved.
+   * Licence: PSFL https://docs.python.org/3/license.html
+   *)
+
+gel/dist/utils.js:
+gel/dist/ifaces.js:
+gel/dist/primitives/queues.js:
+gel/dist/baseClient.js:
+gel/dist/reflection/strictMap.js:
+gel/dist/reflection/index.js:
+  (*!
+   * This source file is part of the Gel open source project.
+   *
+   * Copyright 2020-present MagicStack Inc. and the Gel authors.
+   *
+   * Licensed under the Apache License, Version 2.0 (the "License");
+   * you may not use this file except in compliance with the License.
+   * You may obtain a copy of the License at
+   *
+   *     http://www.apache.org/licenses/LICENSE-2.0
+   *
+   * Unless required by applicable law or agreed to in writing, software
+   * distributed under the License is distributed on an "AS IS" BASIS,
+   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   * See the License for the specific language governing permissions and
+   * limitations under the License.
+   *)
+
+gel/dist/primitives/event.js:
+  (*!
+   * This source file is part of the Gel open source project.
+   *
+   * Copyright 2021-present MagicStack Inc. and the Gel authors.
+   *
+   * Licensed under the Apache License, Version 2.0 (the "License");
+   * you may not use this file except in compliance with the License.
+   * You may obtain a copy of the License at
+   *
+   *     http://www.apache.org/licenses/LICENSE-2.0
+   *
+   * Unless required by applicable law or agreed to in writing, software
+   * distributed under the License is distributed on an "AS IS" BASIS,
+   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   * See the License for the specific language governing permissions and
+   * limitations under the License.
+   *)
+
+gel/dist/fetchConn.js:
+  (*!
+   * This source file is part of the Gel open source project.
+   *
+   * Copyright 2022-present MagicStack Inc. and the Gel authors.
+   *
+   * Licensed under the Apache License, Version 2.0 (the "License");
+   * you may not use this file except in compliance with the License.
+   * You may obtain a copy of the License at
+   *
+   *     http://www.apache.org/licenses/LICENSE-2.0
+   *
+   * Unless required by applicable law or agreed to in writing, software
+   * distributed under the License is distributed on an "AS IS" BASIS,
+   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   * See the License for the specific language governing permissions and
+   * limitations under the License.
+   *)
+*/
diff --git a/e-commerce/node_modules/.bin/esbuild b/e-commerce/node_modules/.bin/esbuild
new file mode 100644
index 0000000000000000000000000000000000000000..60adfebc065e9ae8d975283ed8d01d9ad32e8f6a
--- /dev/null
+++ b/e-commerce/node_modules/.bin/esbuild
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:bab29b2ca7a9e89b67cf720b77b2d743f9f31f5cf0d5bd74ee8c8de30ced7014
+size 10358936
diff --git a/e-commerce/node_modules/.bin/jiti b/e-commerce/node_modules/.bin/jiti
new file mode 100644
index 0000000000000000000000000000000000000000..3bb3b9e9af1fa260ac6e7489a459f76360254890
--- /dev/null
+++ b/e-commerce/node_modules/.bin/jiti
@@ -0,0 +1,34 @@
+#!/usr/bin/env node
+
+import { resolve } from "node:path";
+import nodeModule from "node:module";
+
+const script = process.argv.splice(2, 1)[0];
+
+if (!script) {
+  console.error("Usage: jiti  [...arguments]");
+  process.exit(1);
+}
+
+// https://nodejs.org/api/module.html#moduleenablecompilecachecachedir
+// https://github.com/nodejs/node/pull/54501
+if (nodeModule.enableCompileCache && !process.env.NODE_DISABLE_COMPILE_CACHE) {
+  try {
+    nodeModule.enableCompileCache();
+  } catch {
+    // Ignore errors
+  }
+}
+
+const pwd = process.cwd();
+
+const { createJiti } = await import("./jiti.cjs");
+
+const jiti = createJiti(pwd);
+
+const resolved = (process.argv[1] = jiti.resolve(resolve(pwd, script)));
+
+await jiti.import(resolved).catch((error) => {
+  console.error(error);
+  process.exit(1);
+});
diff --git a/e-commerce/node_modules/.bin/nanoid b/e-commerce/node_modules/.bin/nanoid
new file mode 100644
index 0000000000000000000000000000000000000000..c76db0faa81f6d683c4a18a212f804fb70cf8143
--- /dev/null
+++ b/e-commerce/node_modules/.bin/nanoid
@@ -0,0 +1,55 @@
+#!/usr/bin/env node
+
+let { nanoid, customAlphabet } = require('..')
+
+function print(msg) {
+  process.stdout.write(msg + '\n')
+}
+
+function error(msg) {
+  process.stderr.write(msg + '\n')
+  process.exit(1)
+}
+
+if (process.argv.includes('--help') || process.argv.includes('-h')) {
+  print(`
+  Usage
+    $ nanoid [options]
+
+  Options
+    -s, --size       Generated ID size
+    -a, --alphabet   Alphabet to use
+    -h, --help       Show this help
+
+  Examples
+    $ nanoid --s 15
+    S9sBF77U6sDB8Yg
+
+    $ nanoid --size 10 --alphabet abc
+    bcabababca`)
+  process.exit()
+}
+
+let alphabet, size
+for (let i = 2; i < process.argv.length; i++) {
+  let arg = process.argv[i]
+  if (arg === '--size' || arg === '-s') {
+    size = Number(process.argv[i + 1])
+    i += 1
+    if (Number.isNaN(size) || size <= 0) {
+      error('Size must be positive integer')
+    }
+  } else if (arg === '--alphabet' || arg === '-a') {
+    alphabet = process.argv[i + 1]
+    i += 1
+  } else {
+    error('Unknown argument ' + arg)
+  }
+}
+
+if (alphabet) {
+  let customNanoid = customAlphabet(alphabet, size)
+  print(customNanoid())
+} else {
+  print(nanoid(size))
+}
diff --git a/e-commerce/node_modules/.bin/next b/e-commerce/node_modules/.bin/next
new file mode 100644
index 0000000000000000000000000000000000000000..f257a64cba5e7e329e0f026cca9c4a20cc97f01c
--- /dev/null
+++ b/e-commerce/node_modules/.bin/next
@@ -0,0 +1,309 @@
+#!/usr/bin/env node
+"use strict";
+Object.defineProperty(exports, "__esModule", {
+    value: true
+});
+require("../server/require-hook");
+const _os = /*#__PURE__*/ _interop_require_default(require("os"));
+const _commander = require("next/dist/compiled/commander");
+const _log = require("../build/output/log");
+const _semver = /*#__PURE__*/ _interop_require_default(require("next/dist/compiled/semver"));
+const _picocolors = require("../lib/picocolors");
+const _formatclihelpoutput = require("../lib/format-cli-help-output");
+const _constants = require("../lib/constants");
+const _utils = require("../server/lib/utils");
+const _nexttest = require("../cli/next-test.js");
+const _profilesdir = require("../lib/profiles-dir");
+function _interop_require_default(obj) {
+    return obj && obj.__esModule ? obj : {
+        default: obj
+    };
+}
+/**
+ * Create `.next-profiles` (with its `.gitignore`) when profiling/tracing is
+ * enabled — whether via the CLI flags or the env vars directly — so the
+ * gitignore logic lives in one place. Also points CPU profiles at the directory.
+ * Skipped for tracing when `NEXT_TURBOPACK_TRACING_PATH` redirects the output.
+ */ function setupProfilesDir(dir) {
+    const cpuProf = !!process.env.NEXT_CPU_PROF;
+    const turbopackTrace = !!process.env.NEXT_TURBOPACK_TRACING && !process.env.NEXT_TURBOPACK_TRACING_PATH;
+    if (!cpuProf && !turbopackTrace) {
+        return;
+    }
+    const profilesDir = (0, _profilesdir.ensureProfilesDir)(dir);
+    if (cpuProf) {
+        process.env.NEXT_CPU_PROF_DIR = profilesDir;
+    }
+}
+if (process.env.NEXT_RSPACK) {
+    // silent rspack's schema check
+    process.env.RSPACK_CONFIG_VALIDATE = 'loose-silent';
+}
+if (!_semver.default.satisfies(process.versions.node, ">=20.9.0", {
+    includePrerelease: true
+})) {
+    console.error(`You are using Node.js ${process.versions.node}. For Next.js, Node.js version "${">=20.9.0"}" is required.`);
+    process.exit(1);
+}
+process.env.NEXT_PRIVATE_START_TIME = Date.now().toString();
+class NextRootCommand extends _commander.Command {
+    createCommand(name) {
+        const command = new _commander.Command(name);
+        command.hook('preAction', (event)=>{
+            const commandName = event.name();
+            const defaultEnv = commandName === 'dev' ? 'development' : 'production';
+            const standardEnv = [
+                'production',
+                'development',
+                'test'
+            ];
+            // `next build` reruns itself as a child to show the upgrade menu. The
+            // parent already warned, and it sets NODE_ENV for --debug-prerender.
+            const isUpgradeBuildChild = process.env.NEXT_PRIVATE_UPGRADE_BUILD_CHILD === '1';
+            if (process.env.NODE_ENV && !isUpgradeBuildChild) {
+                const isNotStandard = !standardEnv.includes(process.env.NODE_ENV);
+                const shouldWarnCommands = process.env.NODE_ENV === 'development' ? [
+                    'start',
+                    'build'
+                ] : process.env.NODE_ENV === 'production' ? [
+                    'dev'
+                ] : [];
+                if (isNotStandard || shouldWarnCommands.includes(commandName)) {
+                    (0, _log.warn)(_constants.NON_STANDARD_NODE_ENV);
+                }
+            }
+            // The upgrade harness may run both dev and production checks. Preserve
+            // its caller's environment instead of forcing all child commands into
+            // production mode merely because they were launched through this CLI.
+            if (commandName !== 'upgrade' || !event.getOptionValue('agent')) {
+                ;
+                process.env.NODE_ENV = process.env.NODE_ENV || defaultEnv;
+                process.env.NEXT_RUNTIME = 'nodejs';
+            }
+            if (!isUpgradeBuildChild && process.platform === 'darwin' && process.arch === 'x64' && _os.default.cpus().some((cpu)=>cpu.model.includes('Apple'))) {
+                (0, _log.warn)('You are running Next.js on an Apple Silicon Mac with Rosetta 2 ' + 'translation, which may cause degraded performance. You may have ' + 'accidentally installed an x86-64 version of Node.js.');
+            }
+            if (commandName !== 'dev' && commandName !== 'start' && event.getOptionValue('inspect') === true) {
+                console.error(`\`--inspect\` flag is deprecated. Use env variable NODE_OPTIONS instead: NODE_OPTIONS='--inspect' next ${commandName}`);
+                process.exit(1);
+            }
+        });
+        return command;
+    }
+}
+function parseValidInspectAddress(value) {
+    const address = (0, _utils.getParsedDebugAddress)(value);
+    if (Number.isNaN(address.port)) {
+        throw new _commander.InvalidArgumentError('The given value is not a valid inspect address. ' + 'Did you mean to pass an app path?\n' + `Try switching the order of the arguments or set the default address explicitly e.g.\n` + `next dev ${value} --inspect\n` + `next dev --inspect= ${value}`);
+    }
+    return address;
+}
+const program = new NextRootCommand();
+// Commander needs positional options on both ancestors (program and analyze)
+// to keep identically named capture/export flags local after the subcommand.
+// Leave option parsing for the rest of the CLI unchanged.
+program.enablePositionalOptions(process.argv[2] === 'analyze' || process.argv[2] === 'experimental-analyze');
+program.name('next').description('The Next.js CLI allows you to develop, build, start your application, and more.').configureHelp({
+    formatHelp: (cmd, helper)=>(0, _formatclihelpoutput.formatCliHelpOutput)(cmd, helper),
+    subcommandTerm: (cmd)=>`${cmd.name()} ${cmd.usage()}`
+}).helpCommand(false).helpOption('-h, --help', 'Displays this message.').version(`Next.js v${"16.4.0"}`, '-v, --version', 'Outputs the Next.js version.');
+program.command('build').description('Creates an optimized production build of your application. The output displays information about each route.').argument('[directory]', `A directory on which to build the application. ${(0, _picocolors.italic)('If no directory is provided, the current directory will be used.')}`).option('--analyze', 'Analyze bundle output. Only compatible with Turbopack.').addOption(new _commander.Option('--experimental-analyze').hideHelp()).option('-d, --debug', 'Enables a more verbose build output.').option('--debug-prerender', 'Enables debug mode for prerendering. Not for production use!').option('--no-mangling', 'Disables mangling.').option('--profile', 'Enables production profiling for React.').option('--experimental-app-only', 'Builds only App Router routes.').option('--turbo', 'Builds using Turbopack.').option('--turbopack', 'Builds using Turbopack.').option('--webpack', 'Builds using webpack.').addOption(new _commander.Option('--experimental-build-mode [mode]', 'Uses an experimental build mode.').choices([
+    'compile',
+    'generate',
+    'generate-env'
+]).default('default')).option('--experimental-debug-memory-usage', 'Enables memory profiling features to debug memory consumption.').option('--experimental-upload-trace, ', 'Reports a subset of the debugging trace to a remote HTTP URL. Includes sensitive data.').option('--experimental-next-config-strip-types', 'Use Node.js native TypeScript resolution for next.config.(ts|mts)').option('--debug-build-paths ', 'Comma-separated glob patterns or explicit paths for selective builds. Use "!" prefix to exclude. Examples: "app/*", "app/page.tsx", "app/**/page.tsx", "app/**,!app/[slug]/**"').option('--experimental-cpu-prof', 'Enable CPU profiling. Profile is saved to .next-profiles/ on exit.').addOption(new _commander.Option('--internal-trace [level]', 'Enable Turbopack tracing. "all" (default) enables turbo-tasks level tracing, "overview" enables overview tracing.').choices([
+    'all',
+    'overview'
+]).preset('all')).action((directory, options)=>{
+    if (options.debugPrerender) {
+        // @ts-expect-error not readonly
+        process.env.NODE_ENV = 'development';
+    }
+    if (options.experimentalNextConfigStripTypes) {
+        process.env.__NEXT_NODE_NATIVE_TS_LOADER_ENABLED = 'true';
+    }
+    if (options.experimentalCpuProf) {
+        process.env.NEXT_CPU_PROF = '1';
+        process.env.__NEXT_PRIVATE_CPU_PROFILE = 'build-main';
+    }
+    if (options.internalTrace) {
+        process.env.NEXT_TURBOPACK_TRACING = options.internalTrace === 'all' ? 'turbo-tasks' : String(options.internalTrace);
+    }
+    setupProfilesDir(directory || process.cwd());
+    // ensure process exits after build completes so open handles/connections
+    // don't cause process to hang
+    return import('../cli/next-build.js').then((mod)=>mod.nextBuild(options, directory).then(async ()=>{
+            // Save CPU profile before exiting if enabled
+            if (options.experimentalCpuProf) {
+                await mod.saveCpuProfile();
+            }
+            process.exit(0);
+        }));
+}).usage('[directory] [options]');
+const analyzeCommand = program.command('analyze').alias('experimental-analyze').enablePositionalOptions().version(program.version(), '-v, --version', 'Outputs the Next.js version.').description('Analyze production bundle output with an interactive web ui. Does not produce an application build. Only compatible with Turbopack.').argument('[directory]', `A directory on which to analyze the application. ${(0, _picocolors.italic)('If no directory is provided, the current directory will be used.')}`).option('--no-mangling', 'Disables mangling.').option('--profile', 'Enables production profiling for React.').option('--experimental-app-only', 'Analyzes only App Router routes.').option('--snapshot ', 'Save a named snapshot, replacing an existing capture with that name.').option('-o, --output', 'Only write analysis files to disk. Does not start the server.').addOption(new _commander.Option('--port ', 'Specify a port number to serve the analyzer on.').implies({
+    serve: true
+}).argParser(_utils.parseValidPositiveInteger).default(4000).env('PORT')).action((directory, options)=>{
+    const { nextAnalyze } = require('../cli/next-analyze.js');
+    return nextAnalyze(options, directory).then(()=>{
+        if (options.output) {
+            // The Next.js process is held open by something on the event loop. Exit manually like the `build` command does.
+            // TODO: Fix the underlying issue so this is not necessary.
+            process.exit(0);
+        }
+    }).catch((error)=>{
+        console.error(error);
+        process.exit(1);
+    });
+});
+analyzeCommand.command('export').version(program.version(), '-v, --version', 'Outputs the Next.js version.').description('Stream a saved analyzer graph as JSON Lines without building or serving.').argument('[directory]', `The application directory containing the saved analysis. ${(0, _picocolors.italic)('If no directory is provided, the current directory will be used.')}`).option('--snapshot ', 'Select a saved snapshot by name (defaults to latest).').option('--route ', 'Filter graph records to a route.').option('--dist-dir ', 'Read from an explicitly chosen build directory (defaults to .next).').action(async (directory, options)=>{
+    try {
+        // Reject explicit capture/server options before the subcommand, but
+        // ignore defaults and inherited PORT. Options after export are local.
+        const captureOptions = [
+            [
+                'output',
+                '--output'
+            ],
+            [
+                'profile',
+                '--profile'
+            ],
+            [
+                'experimentalAppOnly',
+                '--experimental-app-only'
+            ],
+            [
+                'mangling',
+                '--no-mangling'
+            ],
+            [
+                'port',
+                '--port'
+            ],
+            [
+                'snapshot',
+                '--snapshot'
+            ]
+        ];
+        const offending = captureOptions.filter(([key])=>analyzeCommand.getOptionValueSource(key) === 'cli').map(([, flag])=>flag);
+        if (offending.length > 0) {
+            throw new Error(`next analyze export cannot use capture/server options before export: ${offending.join(', ')}`);
+        }
+        const { nextAnalyzeExport } = require('../cli/next-analyze.js');
+        nextAnalyzeExport(options, directory);
+        // The synchronous exporter has completed every fd write, including slow pipes.
+        process.exit(0);
+    } catch (error) {
+        console.error(error);
+        process.exit(1);
+    }
+});
+program.command('dev', {
+    isDefault: true
+}).description('Starts Next.js in development mode with hot-code reloading, error reporting, and more.').argument('[directory]', `A directory on which to build the application. ${(0, _picocolors.italic)('If no directory is provided, the current directory will be used.')}`).addOption(new _commander.Option('--inspect [[host:]port]', 'Allows inspecting server-side code. See https://nextjs.org/docs/app/guides/debugging#server-side-code').argParser(parseValidInspectAddress)).option('--turbo', 'Starts development mode using Turbopack.').option('--turbopack', 'Starts development mode using Turbopack.').option('--webpack', 'Starts development mode using webpack.').addOption(new _commander.Option('-p, --port ', 'Specify a port number on which to start the application.').argParser(_utils.parseValidPositiveInteger).default(3000).env('PORT')).option('-H, --hostname ', 'Specify a hostname on which to start the application (default: 0.0.0.0).').option('--disable-source-maps', "Don't start the Dev server with `--enable-source-maps`.", false).option('--experimental-https', 'Starts the server with HTTPS and generates a self-signed certificate.').option('--experimental-https-key, ', 'Path to a HTTPS key file.').option('--experimental-https-cert, ', 'Path to a HTTPS certificate file.').option('--experimental-https-ca, ', 'Path to a HTTPS certificate authority file.')// `--server-fast-refresh` is hidden because it's the default behavior and
+// only needs to be explicitly passed to override a
+// `experimental.turbopackServerFastRefresh: false` in next.config. The
+// `--no-server-fast-refresh` negation is the meaningful user-facing flag.
+.addOption(new _commander.Option('--server-fast-refresh').default(undefined).hideHelp()).addOption(new _commander.Option('--no-server-fast-refresh', 'Disable server-side Fast Refresh')).option('--experimental-upload-trace, ', 'Reports a subset of the debugging trace to a remote HTTP URL. Includes sensitive data.').option('--experimental-next-config-strip-types', 'Use Node.js native TypeScript resolution for next.config.(ts|mts)').option('--experimental-cpu-prof', 'Enable CPU profiling. Profiles are saved to .next-profiles/ on exit.').addOption(new _commander.Option('--internal-trace [level]', 'Enable Turbopack tracing. "all" (default) enables turbo-tasks level tracing, "overview" enables overview tracing.').choices([
+    'all',
+    'overview'
+]).preset('all')).action((directory, options, { _optionValueSources })=>{
+    if (options.experimentalNextConfigStripTypes) {
+        process.env.__NEXT_NODE_NATIVE_TS_LOADER_ENABLED = 'true';
+    }
+    if (options.experimentalCpuProf) {
+        process.env.NEXT_CPU_PROF = '1';
+        process.env.__NEXT_PRIVATE_CPU_PROFILE = 'dev-main';
+    }
+    if (options.internalTrace) {
+        process.env.NEXT_TURBOPACK_TRACING = options.internalTrace === 'all' ? 'turbo-tasks' : String(options.internalTrace);
+    }
+    setupProfilesDir(directory || process.cwd());
+    const portSource = _optionValueSources.port;
+    import('../cli/next-dev.js').then((mod)=>mod.nextDev(options, portSource, directory));
+}).usage('[directory] [options]');
+program.command('export', {
+    hidden: true
+}).action(()=>import('../cli/next-export.js').then((mod)=>mod.nextExport())).helpOption(false);
+program.command('info').description('Prints relevant details about the current system which can be used to report Next.js bugs.').addHelpText('after', `\nLearn more: ${(0, _picocolors.cyan)('https://nextjs.org/docs/api-reference/cli#info')}`).option('--verbose', 'Collects additional information for debugging.').action((options)=>import('../cli/next-info.js').then((mod)=>mod.nextInfo(options)));
+program.command('start').description('Starts Next.js in production mode. The application should be compiled with `next build` first.').argument('[directory]', `A directory on which to start the application. ${(0, _picocolors.italic)('If no directory is provided, the current directory will be used.')}`).addOption(new _commander.Option('-p, --port ', 'Specify a port number on which to start the application.').argParser(_utils.parseValidPositiveInteger).default(3000).env('PORT')).option('-H, --hostname ', 'Specify a hostname on which to start the application (default: 0.0.0.0).').addOption(new _commander.Option('--inspect [[host:]port]', 'Allows inspecting server-side code. See https://nextjs.org/docs/app/guides/debugging#server-side-code').argParser(parseValidInspectAddress)).addOption(new _commander.Option('--keepAliveTimeout ', 'Specify the maximum amount of milliseconds to wait before closing inactive connections.').argParser(_utils.parseValidPositiveInteger)).option('--experimental-next-config-strip-types', 'Use Node.js native TypeScript resolution for next.config.(ts|mts)').option('--experimental-cpu-prof', 'Enable CPU profiling. Profiles are saved to .next-profiles/ on exit.').action((directory, options)=>{
+    if (options.experimentalNextConfigStripTypes) {
+        process.env.__NEXT_NODE_NATIVE_TS_LOADER_ENABLED = 'true';
+    }
+    if (options.experimentalCpuProf) {
+        process.env.NEXT_CPU_PROF = '1';
+        process.env.__NEXT_PRIVATE_CPU_PROFILE = 'start-main';
+    }
+    setupProfilesDir(directory || process.cwd());
+    return import('../cli/next-start.js').then((mod)=>mod.nextStart(options, directory));
+}).usage('[directory] [options]');
+program.command('telemetry').description(`Allows you to enable or disable Next.js' ${(0, _picocolors.bold)('completely anonymous')} telemetry collection.`).addArgument(new _commander.Argument('[arg]').choices([
+    'disable',
+    'enable',
+    'status'
+])).addHelpText('after', `\nLearn more: ${(0, _picocolors.cyan)('https://nextjs.org/telemetry')}`).addOption(new _commander.Option('--enable', `Enables Next.js' telemetry collection.`).conflicts('disable')).option('--disable', `Disables Next.js' telemetry collection.`).action((arg, options)=>import('../cli/next-telemetry.js').then((mod)=>mod.nextTelemetry(options, arg)));
+program.command('typegen').description('Generate TypeScript definitions for routes, pages, and layouts without running a full build.').argument('[directory]', `A directory on which to generate types. ${(0, _picocolors.italic)('If no directory is provided, the current directory will be used.')}`).option('--webpack', 'Use webpack when validating next.config.js').action((directory, options)=>// ensure process exits after typegen completes so open handles/connections
+    // don't cause process to hang
+    import('../cli/next-typegen.js').then((mod)=>mod.nextTypegen(options, directory).then(()=>process.exit(0)).catch((err)=>{
+            // Without this, a failed typegen (e.g. `next.config` throwing) is
+            // swallowed as an unhandled rejection that exits 0; surface it with a
+            // non-zero exit so `next typegen && tsc` halts instead of running
+            // against missing route types.
+            console.error('\n> Unexpected error while generating route types. Original error:\n');
+            console.error(err);
+            process.exit(1);
+        }))).usage('[directory] [options]');
+const nextVersion = "16.4.0" || 'unknown';
+program.command('upgrade').aliases([
+    'update',
+    'up'
+]).description('Upgrade Next.js apps to desired versions with a single command.').argument('[directory]', `A Next.js project directory to upgrade. ${(0, _picocolors.italic)('If no directory is provided, the current directory will be used.')}`).usage('[directory] [options]').option('--revision ', 'Specify the target Next.js version using an NPM dist tag (e.g. "latest", "canary", "rc", "beta") or an exact version number (e.g. "15.0.0").', nextVersion.includes('-canary.') ? 'canary' : nextVersion.includes('-rc.') ? 'rc' : nextVersion.includes('-beta.') ? 'beta' : 'latest').option('--verbose', 'Verbose output', false).addOption(new _commander.Option('--agent [type]', 'Upgrade with an agent to security, latest, or experimental-future. Defaults to security.').conflicts('revision'))// Keep nudge attribution available to agents without exposing it in public help.
+.addOption(new _commander.Option('--internal-nudge-id ').hideHelp()).action(async (directory, options)=>{
+    const mod = await import('../cli/next-upgrade.js');
+    await mod.spawnNextUpgrade(directory, options, options.internalNudgeId !== undefined ? {
+        id: options.internalNudgeId,
+        recipient: 'agent'
+    } : null);
+});
+program.command('experimental-test').description(`Execute \`next/experimental/testmode\` tests using a specified test runner. The test runner defaults to 'playwright' if the \`experimental.defaultTestRunner\` configuration option or the \`--test-runner\` option are not set.`).argument('[directory]', `A Next.js project directory to execute the test runner on. ${(0, _picocolors.italic)('If no directory is provided, the current directory will be used.')}`).argument('[test-runner-args...]', 'Any additional arguments or options to pass down to the test runner `test` command.').option('--test-runner [test-runner]', `Any supported test runner. Options: ${(0, _picocolors.bold)(_nexttest.SUPPORTED_TEST_RUNNERS_LIST.join(', '))}. ${(0, _picocolors.italic)("If no test runner is provided, the Next.js config option `experimental.defaultTestRunner`, or 'playwright' will be used.")}`).allowUnknownOption().action((directory, testRunnerArgs, options)=>{
+    return import('../cli/next-test.js').then((mod)=>{
+        mod.nextTest(directory, testRunnerArgs, options);
+    });
+}).usage('[directory] [options]');
+program.command('experimental-request-insights').description('Inspect experimental Request Insights from a running Next.js dev server.').argument('[directory]', `A directory containing the Next.js application. ${(0, _picocolors.italic)('If no directory is provided, the current directory will be used.')}`).option('--url ', 'Override automatic discovery with the complete HTTP(S) URL of the running Next.js dev server.').option('--json', 'Print raw request insight JSON.').addOption(new _commander.Option('--limit ', 'Maximum number of recent request summaries to print.').argParser(_utils.parseValidPositiveInteger)).action((directory, options)=>{
+    return import('../cli/next-request-insights.js').then((mod)=>mod.nextRequestInsights(options, directory));
+}).usage('[directory] [options]');
+const internal = program.command('internal').description('Internal debugging commands. Use with caution. Not covered by semver.');
+// Agents use the pinned CLI to report completion after the upgrade has changed dependencies.
+internal.command('report-agent-upgrade', {
+    hidden: true
+}).argument('', 'The upgrade run UUID.').argument('', 'The agent-reported success or failure result.').action((runId, result)=>import('../cli/next-upgrade.js').then((mod)=>mod.reportAgentUpgradeAgentResult(runId, result)));
+internal.command('agent-feedback-instructions', {
+    hidden: true
+}).option('--dry-run', 'Print report preview URLs without opening the review form.').action((options)=>import('../cli/internal/agent-feedback-instructions.js').then((mod)=>mod.agentFeedbackInstructionsCli(options)));
+internal.command('trace').alias('turbo-trace-server').argument('file', 'Trace file to serve.').addOption(new _commander.Option('-p, --port ', 'Override the port.').argParser(_utils.parseValidPositiveInteger)).addOption(new _commander.Option('--mcp-port ', 'Port for the MCP (Model Context Protocol) server. Defaults to --port + 1.').argParser(_utils.parseValidPositiveInteger)).action((file, options)=>{
+    return import('../cli/internal/turbo-trace-server.js').then((mod)=>mod.startTurboTraceServerCli(file, options.port, options.mcpPort));
+});
+internal.command('query-trace').description('Query a running turbopack trace server (started with `next internal trace --mcp-port `).').addOption(new _commander.Option('--port ', 'MCP port of the running trace server. Defaults to 5748.').argParser(_utils.parseValidPositiveInteger)).addOption(new _commander.Option('--parent ', 'Span ID to enumerate children of. Omit for root level.')).addOption(new _commander.Option('--no-aggregated', 'Disable aggregation of spans by name (aggregated by default).')).addOption(new _commander.Option('--sort ', 'Sort mode: "value" for corrected duration descending, "name" for alphabetical, "allocations" for total allocated bytes descending, "persistent-allocations" for persistentAllocations descending.').choices([
+    'value',
+    'name',
+    'allocations',
+    'persistent-allocations'
+])).addOption(new _commander.Option('--search ', 'Substring filter on span name/category. Searches the whole subtree below --parent.')).addOption(new _commander.Option('--max-depth ', 'Levels to descend for --search and --depth (default 32, also the cap).').argParser(_utils.parseValidPositiveInteger)).addOption(new _commander.Option('--depth ', 'Levels of descendants to nest inline under each span (default 1).').argParser(_utils.parseValidPositiveInteger)).addOption(new _commander.Option('--json', 'Output as JSON instead of markdown.')).addOption(new _commander.Option('--page ', 'Page number (1-based, default 1).').argParser(_utils.parseValidPositiveInteger)).addOption(new _commander.Option('--page-size ', 'Spans per page (default 20, max 500).').argParser(_utils.parseValidPositiveInteger)).addHelpText('after', ({ command })=>{
+    const port = command.opts().port ?? 5748;
+    return `\nExample:\n  next internal query-trace --port ${port} --parent `;
+}).action((options)=>import('../cli/internal/query-trace.js').then((mod)=>mod.queryTraceCli(options)));
+internal.command('post-build').description('Runs post-build optimization steps (e.g. Turbopack database compaction).').argument('[directory]', `A directory on which to run post-build steps. ${(0, _picocolors.italic)('If no directory is provided, the current directory will be used.')}`).action((directory, options)=>{
+    return require('../cli/next-post-build.js').nextPostBuild(options, directory).then(()=>process.exit(0));
+}).usage('[directory] [options]');
+internal.command('upload-trace').description('Upload CPU profiles from .next-profiles/ to Vercel Blob storage.').argument('[directory]', `The project directory containing .next-profiles/. ${(0, _picocolors.italic)('If no directory is provided, the current directory will be used.')}`).action((directory)=>{
+    return import('../cli/internal/upload-trace.js').then((mod)=>mod.uploadTraceToBlob({
+            directory
+        }));
+}).usage('[directory] [options]');
+internal.command('static-routes-info').description('Analyze a built Next.js app and report per-route bundle sizes across server bundled JS, server source maps, server unbundled, client JS, client source maps, and client CSS categories.').argument('[directory]', `A directory containing the built Next.js application. ${(0, _picocolors.italic)('If no directory is provided, the current directory will be used.')}`).option('--json', 'Output as JSON instead of markdown.').option('--limit ', 'Only show the first N routes after sorting (totals always reflect all routes).', parseInt).option('--sort ', 'Sort routes by: name (default, ascending), or one of client, client-js, client-css, client-map, server, server-bundled-js, server-unbundled, server-map, total (descending).').option('--files', 'Include the list of files (relative to the output directory) per category in the JSON output. Requires --json.').action((directory, options)=>{
+    return import('../cli/internal/static-routes-info.js').then((mod)=>mod.staticRoutesInfoCli(options, directory));
+}).usage('[directory] [options]');
+program.parse(process.argv);
+
+//# sourceMappingURL=next.map
\ No newline at end of file
diff --git a/e-commerce/node_modules/.bin/playwright b/e-commerce/node_modules/.bin/playwright
new file mode 100644
index 0000000000000000000000000000000000000000..e42facb076f4b05f009186346d05d39c2d9b784d
--- /dev/null
+++ b/e-commerce/node_modules/.bin/playwright
@@ -0,0 +1,19 @@
+#!/usr/bin/env node
+/**
+ * Copyright (c) Microsoft Corporation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+const { program } = require('playwright/lib/program');
+program.parse(process.argv);
diff --git a/e-commerce/node_modules/.bin/playwright-core b/e-commerce/node_modules/.bin/playwright-core
new file mode 100644
index 0000000000000000000000000000000000000000..7dbfc530629d95699fb0361bc8b2fd5d3d430289
--- /dev/null
+++ b/e-commerce/node_modules/.bin/playwright-core
@@ -0,0 +1,22 @@
+#!/usr/bin/env node
+/**
+ * Copyright (c) Microsoft Corporation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+require('./lib/bootstrap');
+const { libCli, libCliTestStub } = require('./lib/coreBundle');
+const { program } = require('./lib/utilsBundle');
+libCli.decorateProgram(program);
+libCliTestStub.decorateProgram(program);
+program.parse(process.argv);
diff --git a/e-commerce/node_modules/.bin/tsc b/e-commerce/node_modules/.bin/tsc
new file mode 100644
index 0000000000000000000000000000000000000000..34638f82f78ad0641bd169a41a598ed3a73b63d5
--- /dev/null
+++ b/e-commerce/node_modules/.bin/tsc
@@ -0,0 +1,2 @@
+#!/usr/bin/env node
+import "../lib/tsc.js";
diff --git a/e-commerce/node_modules/.bin/tsx b/e-commerce/node_modules/.bin/tsx
new file mode 100644
index 0000000000000000000000000000000000000000..cf67136a7794146f179477f5645e0cb54d0480fc
--- /dev/null
+++ b/e-commerce/node_modules/.bin/tsx
@@ -0,0 +1,55 @@
+#!/usr/bin/env node
+var Dr=Object.defineProperty;var i=(e,t)=>Dr(e,"name",{value:t,configurable:!0});import{createRequire as lr}from"node:module";const Te=lr(import.meta.url);import{constants as Ue}from"node:os";import cr from"tty";import{v as fr}from"./package-Dj0mHsMt.mjs";import{pathToFileURL as hr,fileURLToPath as dr}from"node:url";import pr from"child_process";import ge from"path";import ye from"fs";import{i as Wt,a as Er,t as Cr,d as Fr}from"./temporary-directory-Du7LpLp9.mjs";import $e from"node:path";import Oe from"node:fs";import gr from"events";import ve from"util";import mr from"stream";import Gt from"os";import{g as _r,i as Ar,e as yr,l as wr,y as be,f as Rr,h as vr}from"./index-Bqjv9TxC.mjs";import br from"node:net";var Br=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function jt(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}i(jt,"getDefaultExportFromCjs");const Sr="known-flag",xr="unknown-flag",Tr="argument",{stringify:Be}=JSON,$r=/\B([A-Z])/g,Or=i(e=>e.replace($r,"-$1").toLowerCase(),"v$1"),{hasOwnProperty:Pr}=Object.prototype,Se=i((e,t)=>Pr.call(e,t),"w$2"),Nr=i(e=>Array.isArray(e),"L$2"),qt=i(e=>typeof e=="function"?[e,!1]:Nr(e)?[e[0],!0]:qt(e.type),"b$2"),Ir=i((e,t)=>e===Boolean?t!=="false":t,"d$2"),Hr=i((e,t)=>typeof t=="boolean"?t:e===Number&&t===""?Number.NaN:e(t),"m$1"),Lr=/[\s.:=]/,kr=i(e=>{const t=`Flag name ${Be(e)}`;if(e.length===0)throw new Error(`${t} cannot be empty`);if(e.length===1)throw new Error(`${t} must be longer than a character`);const u=e.match(Lr);if(u)throw new Error(`${t} cannot contain ${Be(u?.[0])}`)},"B"),Mr=i(e=>{const t={},u=i((n,s)=>{if(Se(t,n))throw new Error(`Duplicate flags named ${Be(n)}`);t[n]=s},"r");for(const n in e){if(!Se(e,n))continue;kr(n);const s=e[n],r=[[],...qt(s),s];u(n,r);const o=Or(n);if(n!==o&&u(o,r),"alias"in s&&typeof s.alias=="string"){const{alias:a}=s,D=`Flag alias ${Be(a)} for flag ${Be(n)}`;if(a.length===0)throw new Error(`${D} cannot be empty`);if(a.length>1)throw new Error(`${D} must be a single character`);u(a,r)}}return t},"K$1"),Wr=i((e,t)=>{const u={};for(const n in e){if(!Se(e,n))continue;const[s,,r,o]=t[n];if(s.length===0&&"default"in o){let{default:a}=o;typeof a=="function"&&(a=a()),u[n]=a}else u[n]=r?s:s.pop()}return u},"_$2"),Pe="--",Gr=/[.:=]/,jr=/^-{1,2}\w/,qr=i(e=>{if(!jr.test(e))return;const t=!e.startsWith(Pe);let u=e.slice(t?1:2),n;const s=u.match(Gr);if(s){const{index:r}=s;n=u.slice(r+1),u=u.slice(0,r)}return[u,n,t]},"N"),Ur=i((e,{onFlag:t,onArgument:u})=>{let n;const s=i((r,o)=>{if(typeof n!="function")return!0;n(r,o),n=void 0},"o");for(let r=0;r{for(const[u,n,s]of t.reverse()){if(n){const r=e[u];let o=r.slice(0,n);if(s||(o+=r.slice(n+1)),o!=="-"){e[u]=o;continue}}e.splice(u,1)}},"E"),Ut=i((e,t=process.argv.slice(2),{ignore:u}={})=>{const n=[],s=Mr(e),r={},o=[];return o[Pe]=[],Ur(t,{onFlag(a,D,l){const f=Se(s,a);if(!u?.(f?Sr:xr,a,D)){if(f){const[C,h]=s[a],P=Ir(h,D),$=i((U,_)=>{n.push(l),_&&n.push(_),C.push(Hr(h,U||""))},"p");return P===void 0?$:$(P)}Se(r,a)||(r[a]=[]),r[a].push(D===void 0?!0:D),n.push(l)}},onArgument(a,D,l){u?.(Tr,t[D[0]])||(o.push(...a),l?(o[Pe]=a,t.splice(D[0])):n.push(D))}}),Kr(t,n),{flags:Wr(e,s),unknownFlags:r,_:o}},"U$2");var zr=Object.create,Ne=Object.defineProperty,Vr=Object.defineProperties,Yr=Object.getOwnPropertyDescriptor,Xr=Object.getOwnPropertyDescriptors,Qr=Object.getOwnPropertyNames,Kt=Object.getOwnPropertySymbols,Zr=Object.getPrototypeOf,zt=Object.prototype.hasOwnProperty,Jr=Object.prototype.propertyIsEnumerable,Vt=i((e,t,u)=>t in e?Ne(e,t,{enumerable:!0,configurable:!0,writable:!0,value:u}):e[t]=u,"W$1"),Ie=i((e,t)=>{for(var u in t||(t={}))zt.call(t,u)&&Vt(e,u,t[u]);if(Kt)for(var u of Kt(t))Jr.call(t,u)&&Vt(e,u,t[u]);return e},"p"),Ke=i((e,t)=>Vr(e,Xr(t)),"c"),en=i(e=>Ne(e,"__esModule",{value:!0}),"nD"),tn=i((e,t)=>()=>(e&&(t=e(e=0)),t),"rD"),un=i((e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),"iD"),rn=i((e,t,u,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of Qr(t))!zt.call(e,s)&&s!=="default"&&Ne(e,s,{get:i(()=>t[s],"get"),enumerable:!(n=Yr(t,s))||n.enumerable});return e},"oD"),nn=i((e,t)=>rn(en(Ne(e!=null?zr(Zr(e)):{},"default",{value:e,enumerable:!0})),e),"BD"),Ce=tn(()=>{}),sn=un((e,t)=>{Ce(),t.exports=function(){return/\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67)\uDB40\uDC7F|(?:\uD83E\uDDD1\uD83C\uDFFF\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFC-\uDFFF])|\uD83D\uDC68(?:\uD83C\uDFFB(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|[\u2695\u2696\u2708]\uFE0F|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))?|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])\uFE0F|\u200D(?:(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D[\uDC66\uDC67])|\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC)?|(?:\uD83D\uDC69(?:\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69]))|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC69(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83E\uDDD1(?:\u200D(?:\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDE36\u200D\uD83C\uDF2B|\uD83C\uDFF3\uFE0F\u200D\u26A7|\uD83D\uDC3B\u200D\u2744|(?:(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\uD83C\uDFF4\u200D\u2620|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])\u200D[\u2640\u2642]|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u2600-\u2604\u260E\u2611\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26B0\u26B1\u26C8\u26CF\u26D1\u26D3\u26E9\u26F0\u26F1\u26F4\u26F7\u26F8\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u3030\u303D\u3297\u3299]|\uD83C[\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]|\uD83D[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3])\uFE0F|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDE35\u200D\uD83D\uDCAB|\uD83D\uDE2E\u200D\uD83D\uDCA8|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83E\uDDD1(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83D\uDC69(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF6\uD83C\uDDE6|\uD83C\uDDF4\uD83C\uDDF2|\uD83D\uDC08\u200D\u2B1B|\u2764\uFE0F\u200D(?:\uD83D\uDD25|\uD83E\uDE79)|\uD83D\uDC41\uFE0F|\uD83C\uDFF3\uFE0F|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|[#\*0-9]\uFE0F\u20E3|\u2764\uFE0F|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|\uD83C\uDFF4|(?:[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270C\u270D]|\uD83D[\uDD74\uDD90])(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC08\uDC15\uDC3B\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE2E\uDE35\uDE36\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5]|\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD]|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF]|[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0D\uDD0E\uDD10-\uDD17\uDD1D\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78\uDD7A-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCB\uDDD0\uDDE0-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6]|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26A7\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5-\uDED7\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDD77\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g}});Ce(),Ce(),Ce();var on=i(e=>{var t,u,n;let s=(t=process.stdout.columns)!=null?t:Number.POSITIVE_INFINITY;return typeof e=="function"&&(e=e(s)),e||(e={}),Array.isArray(e)?{columns:e,stdoutColumns:s}:{columns:(u=e.columns)!=null?u:[],stdoutColumns:(n=e.stdoutColumns)!=null?n:s}},"v");Ce(),Ce(),Ce(),Ce(),Ce();function an({onlyFirst:e=!1}={}){let t=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(t,e?void 0:"g")}i(an,"w$1");function Yt(e){if(typeof e!="string")throw new TypeError(`Expected a \`string\`, got \`${typeof e}\``);return e.replace(an(),"")}i(Yt,"d$1"),Ce();function Dn(e){return Number.isInteger(e)?e>=4352&&(e<=4447||e===9001||e===9002||11904<=e&&e<=12871&&e!==12351||12880<=e&&e<=19903||19968<=e&&e<=42182||43360<=e&&e<=43388||44032<=e&&e<=55203||63744<=e&&e<=64255||65040<=e&&e<=65049||65072<=e&&e<=65131||65281<=e&&e<=65376||65504<=e&&e<=65510||110592<=e&&e<=110593||127488<=e&&e<=127569||131072<=e&&e<=262141):!1}i(Dn,"y$1");var ln=nn(sn());function we(e){if(typeof e!="string"||e.length===0||(e=Yt(e),e.length===0))return 0;e=e.replace((0,ln.default)(),"  ");let t=0;for(let u=0;u=127&&n<=159||n>=768&&n<=879||(n>65535&&u++,t+=Dn(n)?2:1)}return t}i(we,"g");var Xt=i(e=>Math.max(...e.split(`
+`).map(we)),"b$1"),cn=i(e=>{let t=[];for(let u of e){let{length:n}=u,s=n-t.length;for(let r=0;rt[r]&&(t[r]=o)}}return t},"k$1");Ce();var Qt=/^\d+%$/,Zt={width:"auto",align:"left",contentWidth:0,paddingLeft:0,paddingRight:0,paddingTop:0,paddingBottom:0,horizontalPadding:0,paddingLeftString:"",paddingRightString:""},fn=i((e,t)=>{var u;let n=[];for(let s=0;s=t){let D=o-t,l=Math.ceil(u.paddingLeft/s*D),f=D-l;u.paddingLeft-=l,u.paddingRight-=f,u.horizontalPadding=u.paddingLeft+u.paddingRight}u.paddingLeftString=u.paddingLeft?" ".repeat(u.paddingLeft):"",u.paddingRightString=u.paddingRight?" ".repeat(u.paddingRight):"";let a=t-u.horizontalPadding;u.width=Math.max(Math.min(u.width,a),r)}}i(hn,"aD");var Jt=i(()=>Object.assign([],{columns:0}),"G$1");function dn(e,t){let u=[Jt()],[n]=u;for(let s of e){let r=s.width+s.horizontalPadding;n.columns+r>t&&(n=Jt(),u.push(n)),n.push(s),n.columns+=r}for(let s of u){let r=s.reduce((h,P)=>h+P.width+P.horizontalPadding,0),o=t-r;if(o===0)continue;let a=s.filter(h=>"autoOverflow"in h),D=a.filter(h=>h.autoOverflow>0),l=D.reduce((h,P)=>h+P.autoOverflow,0),f=Math.min(l,o);for(let h of D){let P=Math.floor(h.autoOverflow/l*f);h.width+=P,o-=P}let C=Math.floor(o/a.length);for(let h=0;ht=>`\x1B[${t+e}m`,"U$1"),tu=i((e=0)=>t=>`\x1B[${38+e};5;${t}m`,"V$1"),uu=i((e=0)=>(t,u,n)=>`\x1B[${38+e};2;${t};${u};${n}m`,"Y");function En(){let e=new Map,t={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};t.color.gray=t.color.blackBright,t.bgColor.bgGray=t.bgColor.bgBlackBright,t.color.grey=t.color.blackBright,t.bgColor.bgGrey=t.bgColor.bgBlackBright;for(let[u,n]of Object.entries(t)){for(let[s,r]of Object.entries(n))t[s]={open:`\x1B[${r[0]}m`,close:`\x1B[${r[1]}m`},n[s]=t[s],e.set(r[0],r[1]);Object.defineProperty(t,u,{value:n,enumerable:!1})}return Object.defineProperty(t,"codes",{value:e,enumerable:!1}),t.color.close="\x1B[39m",t.bgColor.close="\x1B[49m",t.color.ansi=eu(),t.color.ansi256=tu(),t.color.ansi16m=uu(),t.bgColor.ansi=eu(ze),t.bgColor.ansi256=tu(ze),t.bgColor.ansi16m=uu(ze),Object.defineProperties(t,{rgbToAnsi256:{value:i((u,n,s)=>u===n&&n===s?u<8?16:u>248?231:Math.round((u-8)/247*24)+232:16+36*Math.round(u/255*5)+6*Math.round(n/255*5)+Math.round(s/255*5),"value"),enumerable:!1},hexToRgb:{value:i(u=>{let n=/(?[a-f\d]{6}|[a-f\d]{3})/i.exec(u.toString(16));if(!n)return[0,0,0];let{colorString:s}=n.groups;s.length===3&&(s=s.split("").map(o=>o+o).join(""));let r=Number.parseInt(s,16);return[r>>16&255,r>>8&255,r&255]},"value"),enumerable:!1},hexToAnsi256:{value:i(u=>t.rgbToAnsi256(...t.hexToRgb(u)),"value"),enumerable:!1},ansi256ToAnsi:{value:i(u=>{if(u<8)return 30+u;if(u<16)return 90+(u-8);let n,s,r;if(u>=232)n=((u-232)*10+8)/255,s=n,r=n;else{u-=16;let D=u%36;n=Math.floor(u/36)/5,s=Math.floor(D/6)/5,r=D%6/5}let o=Math.max(n,s,r)*2;if(o===0)return 30;let a=30+(Math.round(r)<<2|Math.round(s)<<1|Math.round(n));return o===2&&(a+=60),a},"value"),enumerable:!1},rgbToAnsi:{value:i((u,n,s)=>t.ansi256ToAnsi(t.rgbToAnsi256(u,n,s)),"value"),enumerable:!1},hexToAnsi:{value:i(u=>t.ansi256ToAnsi(t.hexToAnsi256(u)),"value"),enumerable:!1}}),t}i(En,"AD");var Cn=En(),Fn=Cn,He=new Set(["\x1B","\x9B"]),gn=39,Ve="\x07",ru="[",mn="]",nu="m",Ye=`${mn}8;;`,su=i(e=>`${He.values().next().value}${ru}${e}${nu}`,"J$1"),iu=i(e=>`${He.values().next().value}${Ye}${e}${Ve}`,"Q"),_n=i(e=>e.split(" ").map(t=>we(t)),"hD"),Xe=i((e,t,u)=>{let n=[...t],s=!1,r=!1,o=we(Yt(e[e.length-1]));for(let[a,D]of n.entries()){let l=we(D);if(o+l<=u?e[e.length-1]+=D:(e.push(D),o=0),He.has(D)&&(s=!0,r=n.slice(a+1).join("").startsWith(Ye)),s){r?D===Ve&&(s=!1,r=!1):D===nu&&(s=!1);continue}o+=l,o===u&&a0&&e.length>1&&(e[e.length-2]+=e.pop())},"S$1"),An=i(e=>{let t=e.split(" "),u=t.length;for(;u>0&&!(we(t[u-1])>0);)u--;return u===t.length?e:t.slice(0,u).join(" ")+t.slice(u).join("")},"cD"),yn=i((e,t,u={})=>{if(u.trim!==!1&&e.trim()==="")return"";let n="",s,r,o=_n(e),a=[""];for(let[l,f]of e.split(" ").entries()){u.trim!==!1&&(a[a.length-1]=a[a.length-1].trimStart());let C=we(a[a.length-1]);if(l!==0&&(C>=t&&(u.wordWrap===!1||u.trim===!1)&&(a.push(""),C=0),(C>0||u.trim===!1)&&(a[a.length-1]+=" ",C++)),u.hard&&o[l]>t){let h=t-C,P=1+Math.floor((o[l]-h-1)/t);Math.floor((o[l]-1)/t)t&&C>0&&o[l]>0){if(u.wordWrap===!1&&Ct&&u.wordWrap===!1){Xe(a,f,t);continue}a[a.length-1]+=f}u.trim!==!1&&(a=a.map(l=>An(l)));let D=[...a.join(`
+`)];for(let[l,f]of D.entries()){if(n+=f,He.has(f)){let{groups:h}=new RegExp(`(?:\\${ru}(?\\d+)m|\\${Ye}(?.*)${Ve})`).exec(D.slice(l).join(""))||{groups:{}};if(h.code!==void 0){let P=Number.parseFloat(h.code);s=P===gn?void 0:P}else h.uri!==void 0&&(r=h.uri.length===0?void 0:h.uri)}let C=Fn.codes.get(Number(s));D[l+1]===`
+`?(r&&(n+=iu("")),s&&C&&(n+=su(C))):f===`
+`&&(s&&C&&(n+=su(s)),r&&(n+=iu(r)))}return n},"dD");function wn(e,t,u){return String(e).normalize().replace(/\r\n/g,`
+`).split(`
+`).map(n=>yn(n,t,u)).join(`
+`)}i(wn,"T$1");var ou=i(e=>Array.from({length:e}).fill(""),"X");function Rn(e,t){let u=[],n=0;for(let s of e){let r=0,o=s.map(D=>{var l;let f=(l=t[n])!=null?l:"";n+=1,D.preprocess&&(f=D.preprocess(f)),Xt(f)>D.width&&(f=wn(f,D.width,{hard:!0}));let C=f.split(`
+`);if(D.postprocess){let{postprocess:h}=D;C=C.map((P,$)=>h.call(D,P,$))}return D.paddingTop&&C.unshift(...ou(D.paddingTop)),D.paddingBottom&&C.push(...ou(D.paddingBottom)),C.length>r&&(r=C.length),Ke(Ie({},D),{lines:C})}),a=[];for(let D=0;D{var C;let h=(C=f.lines[D])!=null?C:"",P=Number.isFinite(f.width)?" ".repeat(f.width-we(h)):"",$=f.paddingLeftString;return f.align==="right"&&($+=P),$+=h,f.align==="left"&&($+=P),$+f.paddingRightString}).join("");a.push(l)}u.push(a.join(`
+`))}return u.join(`
+`)}i(Rn,"P");function vn(e,t){if(!e||e.length===0)return"";let u=cn(e),n=u.length;if(n===0)return"";let{stdoutColumns:s,columns:r}=on(t);if(r.length>n)throw new Error(`${r.length} columns defined, but only ${n} columns found`);let o=pn(s,r,u);return e.map(a=>Rn(o,a)).join(`
+`)}i(vn,"mD"),Ce();var bn=["<",">","=",">=","<="];function Bn(e){if(!bn.includes(e))throw new TypeError(`Invalid breakpoint operator: ${e}`)}i(Bn,"xD");function Sn(e){let t=Object.keys(e).map(u=>{let[n,s]=u.split(" ");Bn(n);let r=Number.parseInt(s,10);if(Number.isNaN(r))throw new TypeError(`Invalid breakpoint value: ${s}`);let o=e[u];return{operator:n,breakpoint:r,value:o}}).sort((u,n)=>n.breakpoint-u.breakpoint);return u=>{var n;return(n=t.find(({operator:s,breakpoint:r})=>s==="="&&u===r||s===">"&&u>r||s==="<"&&u="&&u>=r||s==="<="&&u<=r))==null?void 0:n.value}}i(Sn,"wD");const xn=i(e=>e.replace(/[\W_]([a-z\d])?/gi,(t,u)=>u?u.toUpperCase():""),"S"),Tn=i(e=>e.replace(/\B([A-Z])/g,"-$1").toLowerCase(),"q"),$n={"> 80":[{width:"content-width",paddingLeft:2,paddingRight:8},{width:"auto"}],"> 40":[{width:"auto",paddingLeft:2,paddingRight:8,preprocess:i(e=>e.trim(),"preprocess")},{width:"100%",paddingLeft:2,paddingBottom:1}],"> 0":{stdoutColumns:1e3,columns:[{width:"content-width",paddingLeft:2,paddingRight:8},{width:"content-width"}]}};function On(e){let t=!1;return{type:"table",data:{tableData:Object.keys(e).sort((u,n)=>u.localeCompare(n)).map(u=>{const n=e[u],s="alias"in n;return s&&(t=!0),{name:u,flag:n,flagFormatted:`--${Tn(u)}`,aliasesEnabled:t,aliasFormatted:s?`-${n.alias}`:void 0}}).map(u=>(u.aliasesEnabled=t,[{type:"flagName",data:u},{type:"flagDescription",data:u}])),tableBreakpoints:$n}}}i(On,"D");const au=i(e=>!e||(e.version??(e.help?e.help.version:void 0)),"A"),Du=i(e=>{const t="parent"in e&&e.parent?.name;return(t?`${t} `:"")+e.name},"C");function Pn(e){const t=[];e.name&&t.push(Du(e));const u=au(e)??("parent"in e&&au(e.parent));if(u&&t.push(`v${u}`),t.length!==0)return{id:"name",type:"text",data:`${t.join(" ")}
+`}}i(Pn,"R");function Nn(e){const{help:t}=e;if(!(!t||!t.description))return{id:"description",type:"text",data:`${t.description}
+`}}i(Nn,"L");function In(e){const t=e.help||{};if("usage"in t)return t.usage?{id:"usage",type:"section",data:{title:"Usage:",body:Array.isArray(t.usage)?t.usage.join(`
+`):t.usage}}:void 0;if(e.name){const u=[],n=[Du(e)];if(e.flags&&Object.keys(e.flags).length>0&&n.push("[flags...]"),e.parameters&&e.parameters.length>0){const{parameters:s}=e,r=s.indexOf("--"),o=r>-1&&s.slice(r+1).some(a=>a.startsWith("<"));n.push(s.map(a=>a!=="--"?a:o?"--":"[--]").join(" "))}if(n.length>1&&u.push(n.join(" ")),"commands"in e&&e.commands?.length&&u.push(`${e.name} `),u.length>0)return{id:"usage",type:"section",data:{title:"Usage:",body:u.join(`
+`)}}}}i(In,"T");function Hn(e){return!("commands"in e)||!e.commands?.length?void 0:{id:"commands",type:"section",data:{title:"Commands:",body:{type:"table",data:{tableData:e.commands.map(t=>[t.options.name,t.options.help?t.options.help.description:""]),tableOptions:[{width:"content-width",paddingLeft:2,paddingRight:8}]}},indentBody:0}}}i(Hn,"_");function Ln(e){if(!(!e.flags||Object.keys(e.flags).length===0))return{id:"flags",type:"section",data:{title:"Flags:",body:On(e.flags),indentBody:0}}}i(Ln,"k");function kn(e){const{help:t}=e;if(!t||!t.examples||t.examples.length===0)return;let{examples:u}=t;if(Array.isArray(u)&&(u=u.join(`
+`)),u)return{id:"examples",type:"section",data:{title:"Examples:",body:u}}}i(kn,"F");function Mn(e){if(!("alias"in e)||!e.alias)return;const{alias:t}=e;return{id:"aliases",type:"section",data:{title:"Aliases:",body:Array.isArray(t)?t.join(", "):t}}}i(Mn,"H");const Wn=i(e=>[Pn,Nn,In,Hn,Ln,kn,Mn].map(t=>t(e)).filter(Boolean),"U"),Gn=cr.WriteStream.prototype.hasColors();class jn{static{i(this,"M")}text(t){return t}bold(t){return Gn?`\x1B[1m${t}\x1B[22m`:t.toLocaleUpperCase()}indentText({text:t,spaces:u}){return t.replace(/^/gm," ".repeat(u))}heading(t){return this.bold(t)}section({title:t,body:u,indentBody:n=2}){return`${(t?`${this.heading(t)}
+`:"")+(u?this.indentText({text:this.render(u),spaces:n}):"")}
+`}table({tableData:t,tableOptions:u,tableBreakpoints:n}){return vn(t.map(s=>s.map(r=>this.render(r))),n?Sn(n):u)}flagParameter(t){return t===Boolean?"":t===String?"":t===Number?"":Array.isArray(t)?this.flagParameter(t[0]):""}flagOperator(t){return" "}flagName(t){const{flag:u,flagFormatted:n,aliasesEnabled:s,aliasFormatted:r}=t;let o="";if(r?o+=`${r}, `:s&&(o+="    "),o+=n,"placeholder"in u&&typeof u.placeholder=="string")o+=`${this.flagOperator(t)}${u.placeholder}`;else{const a=this.flagParameter("type"in u?u.type:u);a&&(o+=`${this.flagOperator(t)}${a}`)}return o}flagDefault(t){return JSON.stringify(t)}flagDescription({flag:t}){let u="description"in t?t.description??"":"";if("default"in t){let{default:n}=t;typeof n=="function"&&(n=n()),n&&(u+=` (default: ${this.flagDefault(n)})`)}return u}render(t){if(typeof t=="string")return t;if(Array.isArray(t))return t.map(u=>this.render(u)).join(`
+`);if("type"in t&&this[t.type]){const u=this[t.type];if(typeof u=="function")return u.call(this,t.data)}throw new Error(`Invalid node type: ${JSON.stringify(t)}`)}}const Qe=/^[\w.-]+$/,{stringify:Ae}=JSON,qn=/[|\\{}()[\]^$+*?.]/;function Ze(e){const t=[];let u,n;for(const s of e){if(n)throw new Error(`Invalid parameter: Spread parameter ${Ae(n)} must be last`);const r=s[0],o=s[s.length-1];let a;if(r==="<"&&o===">"&&(a=!0,u))throw new Error(`Invalid parameter: Required parameter ${Ae(s)} cannot come after optional parameter ${Ae(u)}`);if(r==="["&&o==="]"&&(a=!1,u=s),a===void 0)throw new Error(`Invalid parameter: ${Ae(s)}. Must be wrapped in <> (required parameter) or [] (optional parameter)`);let D=s.slice(1,-1);const l=D.slice(-3)==="...";l&&(n=s,D=D.slice(0,-3));const f=D.match(qn);if(f)throw new Error(`Invalid parameter: ${Ae(s)}. Invalid character found ${Ae(f[0])}`);t.push({name:D,required:a,spread:l})}return t}i(Ze,"w");function Je(e,t,u,n){for(let s=0;s{console.log(t.version)},"f");if(r&&D.flags.version===!0)return l(),process.exit(0);const f=new jn,C=a&&o?.render?o.render:$=>f.render($),h=i($=>{const U=Wn({...t,...$?{help:$}:{},flags:s});console.log(C(U,f))},"u");if(a&&D.flags.help===!0)return h(),process.exit(0);if(t.parameters){let{parameters:$}=t,U=D._;const _=$.indexOf("--"),A=$.slice(_+1),W=Object.create(null);if(_>-1&&A.length>0){$=$.slice(0,_);const p=D._["--"];U=U.slice(0,-p.length||void 0),Je(W,Ze($),U,h),Je(W,Ze(A),p,h)}else Je(W,Ze($),U,h);Object.assign(D._,W)}const P={...D,showVersion:l,showHelp:h};return typeof u=="function"&&u(P),{command:e,...P}}i(lu,"x");function Kn(e,t){const u=new Map;for(const n of t){const s=[n.options.name],{alias:r}=n.options;r&&(Array.isArray(r)?s.push(...r):s.push(r));for(const o of s){if(u.has(o))throw new Error(`Duplicate command name found: ${Ae(o)}`);u.set(o,n)}}return u.get(e)}i(Kn,"z");function cu(e,t,u=process.argv.slice(2)){if(!e)throw new Error("Options is required");if("name"in e&&(!e.name||!Qe.test(e.name)))throw new Error(`Invalid script name: ${Ae(e.name)}`);const n=u[0];if(e.commands&&Qe.test(n)){const s=Kn(n,e.commands);if(s)return lu(s.options.name,{...s.options,parent:e},s.callback,u.slice(1))}return lu(void 0,e,t,u)}i(cu,"Z");function zn(e,t){if(!e)throw new Error("Command options are required");const{name:u}=e;if(e.name===void 0)throw new Error("Command name is required");if(!Qe.test(u))throw new Error(`Invalid command name ${JSON.stringify(u)}. Command names must be one word.`);return{options:e,callback:t}}i(zn,"G");var Re={exports:{}},et,fu;function Vn(){if(fu)return et;fu=1,et=n,n.sync=s;var e=ye;function t(r,o){var a=o.pathExt!==void 0?o.pathExt:process.env.PATHEXT;if(!a||(a=a.split(";"),a.indexOf("")!==-1))return!0;for(var D=0;DObject.assign(new Error(`not found: ${D}`),{code:"ENOENT"}),"getNotFoundError"),r=i((D,l)=>{const f=l.colon||u,C=D.match(/\//)||e&&D.match(/\\/)?[""]:[...e?[process.cwd()]:[],...(l.path||process.env.PATH||"").split(f)],h=e?l.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",P=e?h.split(f):[""];return e&&D.indexOf(".")!==-1&&P[0]!==""&&P.unshift(""),{pathEnv:C,pathExt:P,pathExtExe:h}},"getPathInfo"),o=i((D,l,f)=>{typeof l=="function"&&(f=l,l={}),l||(l={});const{pathEnv:C,pathExt:h,pathExtExe:P}=r(D,l),$=[],U=i(A=>new Promise((W,p)=>{if(A===C.length)return l.all&&$.length?W($):p(s(D));const B=C[A],w=/^".*"$/.test(B)?B.slice(1,-1):B,I=t.join(w,D),y=!w&&/^\.[\\\/]/.test(D)?D.slice(0,2)+I:I;W(_(y,A,0))}),"step"),_=i((A,W,p)=>new Promise((B,w)=>{if(p===h.length)return B(U(W+1));const I=h[p];n(A+I,{pathExt:P},(y,q)=>{if(!y&&q)if(l.all)$.push(A+I);else return B(A+I);return B(_(A,W,p+1))})}),"subStep");return f?U(0).then(A=>f(null,A),f):U(0)},"which"),a=i((D,l)=>{l=l||{};const{pathEnv:f,pathExt:C,pathExtExe:h}=r(D,l),P=[];for(let $=0;${const u=t.env||process.env;return(t.platform||process.platform)!=="win32"?"PATH":Object.keys(u).reverse().find(s=>s.toUpperCase()==="PATH")||"Path"},"pathKey$1");return Le.exports=e,Le.exports.default=e,Le.exports}i(Zn,"requirePathKey");var nt,Cu;function Jn(){if(Cu)return nt;Cu=1;const e=ge,t=Qn(),u=Zn();function n(r,o){const a=r.options.env||process.env,D=process.cwd(),l=r.options.cwd!=null,f=l&&process.chdir!==void 0&&!process.chdir.disabled;if(f)try{process.chdir(r.options.cwd)}catch{}let C;try{C=t.sync(r.command,{path:a[u({env:a})],pathExt:o?e.delimiter:void 0})}catch{}finally{f&&process.chdir(D)}return C&&(C=e.resolve(l?r.options.cwd:"",C)),C}i(n,"resolveCommandAttempt");function s(r){return n(r)||n(r,!0)}return i(s,"resolveCommand"),nt=s,nt}i(Jn,"requireResolveCommand");var ke={},Fu;function es(){if(Fu)return ke;Fu=1;const e=/([()\][%!^"`<>&|;, *?])/g;function t(n){return n=n.replace(e,"^$1"),n}i(t,"escapeCommand");function u(n,s){return n=`${n}`,n=n.replace(/(?=(\\+?)?)\1"/g,'$1$1\\"'),n=n.replace(/(?=(\\+?)?)\1$/,"$1$1"),n=`"${n}"`,n=n.replace(e,"^$1"),s&&(n=n.replace(e,"^$1")),n}return i(u,"escapeArgument"),ke.command=t,ke.argument=u,ke}i(es,"require_escape");var st,gu;function ts(){return gu||(gu=1,st=/^#!(.*)/),st}i(ts,"requireShebangRegex");var it,mu;function us(){if(mu)return it;mu=1;const e=ts();return it=i((t="")=>{const u=t.match(e);if(!u)return null;const[n,s]=u[0].replace(/#! ?/,"").split(" "),r=n.split("/").pop();return r==="env"?s:s?`${r} ${s}`:r},"shebangCommand"),it}i(us,"requireShebangCommand");var ot,_u;function rs(){if(_u)return ot;_u=1;const e=ye,t=us();function u(n){const r=Buffer.alloc(150);let o;try{o=e.openSync(n,"r"),e.readSync(o,r,0,150,0),e.closeSync(o)}catch{}return t(r.toString())}return i(u,"readShebang"),ot=u,ot}i(rs,"requireReadShebang");var at,Au;function ns(){if(Au)return at;Au=1;const e=ge,t=Jn(),u=es(),n=rs(),s=process.platform==="win32",r=/\.(?:com|exe)$/i,o=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function a(f){f.file=t(f);const C=f.file&&n(f.file);return C?(f.args.unshift(f.file),f.command=C,t(f)):f.file}i(a,"detectShebang");function D(f){if(!s)return f;const C=a(f),h=!r.test(C);if(f.options.forceShell||h){const P=o.test(C);f.command=e.normalize(f.command),f.command=u.command(f.command),f.args=f.args.map(U=>u.argument(U,P));const $=[f.command].concat(f.args).join(" ");f.args=["/d","/s","/c",`"${$}"`],f.command=process.env.comspec||"cmd.exe",f.options.windowsVerbatimArguments=!0}return f}i(D,"parseNonShell");function l(f,C,h){C&&!Array.isArray(C)&&(h=C,C=null),C=C?C.slice(0):[],h=Object.assign({},h);const P={command:f,args:C,options:h,file:void 0,original:{command:f,args:C}};return h.shell?P:D(P)}return i(l,"parse"),at=l,at}i(ns,"requireParse$2");var Dt,yu;function ss(){if(yu)return Dt;yu=1;const e=process.platform==="win32";function t(r,o){return Object.assign(new Error(`${o} ${r.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${o} ${r.command}`,path:r.command,spawnargs:r.args})}i(t,"notFoundError");function u(r,o){if(!e)return;const a=r.emit;r.emit=function(D,l){if(D==="exit"){const f=n(l,o);if(f)return a.call(r,"error",f)}return a.apply(r,arguments)}}i(u,"hookChildProcess");function n(r,o){return e&&r===1&&!o.file?t(o.original,"spawn"):null}i(n,"verifyENOENT");function s(r,o){return e&&r===1&&!o.file?t(o.original,"spawnSync"):null}return i(s,"verifyENOENTSync"),Dt={hookChildProcess:u,verifyENOENT:n,verifyENOENTSync:s,notFoundError:t},Dt}i(ss,"requireEnoent");var wu;function is(){if(wu)return Re.exports;wu=1;const e=pr,t=ns(),u=ss();function n(r,o,a){const D=t(r,o,a),l=e.spawn(D.command,D.args,D.options);return u.hookChildProcess(l,D),l}i(n,"spawn");function s(r,o,a){const D=t(r,o,a),l=e.spawnSync(D.command,D.args,D.options);return l.error=l.error||u.verifyENOENTSync(l.status,D),l}return i(s,"spawnSync"),Re.exports=n,Re.exports.spawn=n,Re.exports.sync=s,Re.exports._parse=t,Re.exports._enoent=u,Re.exports}i(is,"requireCrossSpawn");var os=is(),as=jt(os);const Ru=i((e,t)=>{const u={...process.env},n=["inherit","inherit","inherit"];process.send&&n.push("ipc"),t&&(t.noCache&&(u.TSX_DISABLE_CACHE="1"),t.tsconfigPath&&(u.TSX_TSCONFIG_PATH=t.tsconfigPath));const s=e.filter(r=>r!=="-i"&&r!=="--interactive").length===0;return as(process.execPath,["--require",Te.resolve("./preflight.cjs"),...s?["--require",Te.resolve("./patch-repl.cjs")]:[],Wt(Er)?"--import":"--loader",hr(Te.resolve("./loader.mjs")).toString(),...e],{stdio:n,env:u})},"run");var Me={},lt={},ct,vu;function We(){if(vu)return ct;vu=1;const e=ge,t="\\\\/",u=`[^${t}]`,n="\\.",s="\\+",r="\\?",o="\\/",a="(?=.)",D="[^/]",l=`(?:${o}|$)`,f=`(?:^|${o})`,C=`${n}{1,2}${l}`,h=`(?!${n})`,P=`(?!${f}${C})`,$=`(?!${n}{0,1}${l})`,U=`(?!${C})`,_=`[^.${o}]`,A=`${D}*?`,W={DOT_LITERAL:n,PLUS_LITERAL:s,QMARK_LITERAL:r,SLASH_LITERAL:o,ONE_CHAR:a,QMARK:D,END_ANCHOR:l,DOTS_SLASH:C,NO_DOT:h,NO_DOTS:P,NO_DOT_SLASH:$,NO_DOTS_SLASH:U,QMARK_NO_DOT:_,STAR:A,START_ANCHOR:f},p={...W,SLASH_LITERAL:`[${t}]`,QMARK:u,STAR:`${u}*?`,DOTS_SLASH:`${n}{1,2}(?:[${t}]|$)`,NO_DOT:`(?!${n})`,NO_DOTS:`(?!(?:^|[${t}])${n}{1,2}(?:[${t}]|$))`,NO_DOT_SLASH:`(?!${n}{0,1}(?:[${t}]|$))`,NO_DOTS_SLASH:`(?!${n}{1,2}(?:[${t}]|$))`,QMARK_NO_DOT:`[^.${t}]`,START_ANCHOR:`(?:^|[${t}])`,END_ANCHOR:`(?:[${t}]|$)`},B={alnum:"a-zA-Z0-9",alpha:"a-zA-Z",ascii:"\\x00-\\x7F",blank:" \\t",cntrl:"\\x00-\\x1F\\x7F",digit:"0-9",graph:"\\x21-\\x7E",lower:"a-z",print:"\\x20-\\x7E ",punct:"\\-!\"#$%&'()\\*+,./:;<=>?@[\\]^_`{|}~",space:" \\t\\r\\n\\v\\f",upper:"A-Z",word:"A-Za-z0-9_",xdigit:"A-Fa-f0-9"};return ct={MAX_LENGTH:1024*64,POSIX_REGEX_SOURCE:B,REGEX_BACKSLASH:/\\(?![*+?^${}(|)[\]])/g,REGEX_NON_SPECIAL_CHARS:/^[^@![\].,$*+?^{}()|\\/]+/,REGEX_SPECIAL_CHARS:/[-*+?.^${}(|)[\]]/,REGEX_SPECIAL_CHARS_BACKREF:/(\\?)((\W)(\3*))/g,REGEX_SPECIAL_CHARS_GLOBAL:/([-*+?.^${}(|)[\]])/g,REGEX_REMOVE_BACKSLASH:/(?:\[.*?[^\\]\]|\\(?=.))/g,REPLACEMENTS:{"***":"*","**/**":"**","**/**/**":"**"},CHAR_0:48,CHAR_9:57,CHAR_UPPERCASE_A:65,CHAR_LOWERCASE_A:97,CHAR_UPPERCASE_Z:90,CHAR_LOWERCASE_Z:122,CHAR_LEFT_PARENTHESES:40,CHAR_RIGHT_PARENTHESES:41,CHAR_ASTERISK:42,CHAR_AMPERSAND:38,CHAR_AT:64,CHAR_BACKWARD_SLASH:92,CHAR_CARRIAGE_RETURN:13,CHAR_CIRCUMFLEX_ACCENT:94,CHAR_COLON:58,CHAR_COMMA:44,CHAR_DOT:46,CHAR_DOUBLE_QUOTE:34,CHAR_EQUAL:61,CHAR_EXCLAMATION_MARK:33,CHAR_FORM_FEED:12,CHAR_FORWARD_SLASH:47,CHAR_GRAVE_ACCENT:96,CHAR_HASH:35,CHAR_HYPHEN_MINUS:45,CHAR_LEFT_ANGLE_BRACKET:60,CHAR_LEFT_CURLY_BRACE:123,CHAR_LEFT_SQUARE_BRACKET:91,CHAR_LINE_FEED:10,CHAR_NO_BREAK_SPACE:160,CHAR_PERCENT:37,CHAR_PLUS:43,CHAR_QUESTION_MARK:63,CHAR_RIGHT_ANGLE_BRACKET:62,CHAR_RIGHT_CURLY_BRACE:125,CHAR_RIGHT_SQUARE_BRACKET:93,CHAR_SEMICOLON:59,CHAR_SINGLE_QUOTE:39,CHAR_SPACE:32,CHAR_TAB:9,CHAR_UNDERSCORE:95,CHAR_VERTICAL_LINE:124,CHAR_ZERO_WIDTH_NOBREAK_SPACE:65279,SEP:e.sep,extglobChars(w){return{"!":{type:"negate",open:"(?:(?!(?:",close:`))${w.STAR})`},"?":{type:"qmark",open:"(?:",close:")?"},"+":{type:"plus",open:"(?:",close:")+"},"*":{type:"star",open:"(?:",close:")*"},"@":{type:"at",open:"(?:",close:")"}}},globChars(w){return w===!0?p:W}},ct}i(We,"requireConstants$2");var bu;function ft(){return bu||(bu=1,(function(e){const t=ge,u=process.platform==="win32",{REGEX_BACKSLASH:n,REGEX_REMOVE_BACKSLASH:s,REGEX_SPECIAL_CHARS:r,REGEX_SPECIAL_CHARS_GLOBAL:o}=We();e.isObject=a=>a!==null&&typeof a=="object"&&!Array.isArray(a),e.hasRegexChars=a=>r.test(a),e.isRegexChar=a=>a.length===1&&e.hasRegexChars(a),e.escapeRegex=a=>a.replace(o,"\\$1"),e.toPosixSlashes=a=>a.replace(n,"/"),e.removeBackslashes=a=>a.replace(s,D=>D==="\\"?"":D),e.supportsLookbehinds=()=>{const a=process.version.slice(1).split(".").map(Number);return a.length===3&&a[0]>=9||a[0]===8&&a[1]>=10},e.isWindows=a=>a&&typeof a.windows=="boolean"?a.windows:u===!0||t.sep==="\\",e.escapeLast=(a,D,l)=>{const f=a.lastIndexOf(D,l);return f===-1?a:a[f-1]==="\\"?e.escapeLast(a,D,f-1):`${a.slice(0,f)}\\${a.slice(f)}`},e.removePrefix=(a,D={})=>{let l=a;return l.startsWith("./")&&(l=l.slice(2),D.prefix="./"),l},e.wrapOutput=(a,D={},l={})=>{const f=l.contains?"":"^",C=l.contains?"":"$";let h=`${f}(?:${a})${C}`;return D.negated===!0&&(h=`(?:^(?!${h}).*$)`),h}})(lt)),lt}i(ft,"requireUtils$1");var ht,Bu;function Ds(){if(Bu)return ht;Bu=1;const e=ft(),{CHAR_ASTERISK:t,CHAR_AT:u,CHAR_BACKWARD_SLASH:n,CHAR_COMMA:s,CHAR_DOT:r,CHAR_EXCLAMATION_MARK:o,CHAR_FORWARD_SLASH:a,CHAR_LEFT_CURLY_BRACE:D,CHAR_LEFT_PARENTHESES:l,CHAR_LEFT_SQUARE_BRACKET:f,CHAR_PLUS:C,CHAR_QUESTION_MARK:h,CHAR_RIGHT_CURLY_BRACE:P,CHAR_RIGHT_PARENTHESES:$,CHAR_RIGHT_SQUARE_BRACKET:U}=We(),_=i(p=>p===a||p===n,"isPathSeparator"),A=i(p=>{p.isPrefix!==!0&&(p.depth=p.isGlobstar?1/0:1)},"depth");return ht=i((p,B)=>{const w=B||{},I=p.length-1,y=w.parts===!0||w.scanToEnd===!0,q=[],m=[],S=[];let N=p,L=-1,g=0,z=0,Y=!1,J=!1,ue=!1,De=!1,de=!1,le=!1,R=!1,he=!1,te=!1,T=!1,d=0,c,v,x={value:"",depth:0,isGlob:!1};const k=i(()=>L>=I,"eos"),b=i(()=>N.charCodeAt(L+1),"peek"),O=i(()=>(c=v,N.charCodeAt(++L)),"advance");for(;L0&&(Q=N.slice(0,g),N=N.slice(g),z-=g),M&&ue===!0&&z>0?(M=N.slice(0,z),K=N.slice(z)):ue===!0?(M="",K=N):M=N,M&&M!==""&&M!=="/"&&M!==N&&_(M.charCodeAt(M.length-1))&&(M=M.slice(0,-1)),w.unescape===!0&&(K&&(K=e.removeBackslashes(K)),M&&R===!0&&(M=e.removeBackslashes(M)));const V={prefix:Q,input:p,start:g,base:M,glob:K,isBrace:Y,isBracket:J,isGlob:ue,isExtglob:De,isGlobstar:de,negated:he,negatedExtglob:te};if(w.tokens===!0&&(V.maxDepth=0,_(v)||m.push(x),V.tokens=m),w.parts===!0||w.tokens===!0){let H;for(let ee=0;ee{if(typeof C.expandRange=="function")return C.expandRange(...f,C);f.sort();const h=`[${f.join("-")}]`;try{new RegExp(h)}catch{return f.map($=>t.escapeRegex($)).join("..")}return h},"expandRange"),D=i((f,C)=>`Missing ${f}: "${C}" - use "\\\\${C}" to match literal characters`,"syntaxError"),l=i((f,C)=>{if(typeof f!="string")throw new TypeError("Expected a string");f=o[f]||f;const h={...C},P=typeof h.maxLength=="number"?Math.min(u,h.maxLength):u;let $=f.length;if($>P)throw new SyntaxError(`Input length: ${$}, exceeds maximum allowed length: ${P}`);const U={type:"bos",value:"",output:h.prepend||""},_=[U],A=h.capture?"":"?:",W=t.isWindows(C),p=e.globChars(W),B=e.extglobChars(p),{DOT_LITERAL:w,PLUS_LITERAL:I,SLASH_LITERAL:y,ONE_CHAR:q,DOTS_SLASH:m,NO_DOT:S,NO_DOT_SLASH:N,NO_DOTS_SLASH:L,QMARK:g,QMARK_NO_DOT:z,STAR:Y,START_ANCHOR:J}=p,ue=i(G=>`(${A}(?:(?!${J}${G.dot?m:w}).)*?)`,"globstar"),De=h.dot?"":S,de=h.dot?g:z;let le=h.bash===!0?ue(h):Y;h.capture&&(le=`(${le})`),typeof h.noext=="boolean"&&(h.noextglob=h.noext);const R={input:f,index:-1,start:0,dot:h.dot===!0,consumed:"",output:"",prefix:"",backtrack:!1,negated:!1,brackets:0,braces:0,parens:0,quotes:0,globstar:!1,tokens:_};f=t.removePrefix(f,R),$=f.length;const he=[],te=[],T=[];let d=U,c;const v=i(()=>R.index===$-1,"eos"),x=R.peek=(G=1)=>f[R.index+G],k=R.advance=()=>f[++R.index]||"",b=i(()=>f.slice(R.index+1),"remaining"),O=i((G="",ae=0)=>{R.consumed+=G,R.index+=ae},"consume"),M=i(G=>{R.output+=G.output!=null?G.output:G.value,O(G.value)},"append"),Q=i(()=>{let G=1;for(;x()==="!"&&(x(2)!=="("||x(3)==="?");)k(),R.start++,G++;return G%2===0?!1:(R.negated=!0,R.start++,!0)},"negate"),K=i(G=>{R[G]++,T.push(G)},"increment"),V=i(G=>{R[G]--,T.pop()},"decrement"),H=i(G=>{if(d.type==="globstar"){const ae=R.braces>0&&(G.type==="comma"||G.type==="brace"),j=G.extglob===!0||he.length&&(G.type==="pipe"||G.type==="paren");G.type!=="slash"&&G.type!=="paren"&&!ae&&!j&&(R.output=R.output.slice(0,-d.output.length),d.type="star",d.value="*",d.output=le,R.output+=d.output)}if(he.length&&G.type!=="paren"&&(he[he.length-1].inner+=G.value),(G.value||G.output)&&M(G),d&&d.type==="text"&&G.type==="text"){d.value+=G.value,d.output=(d.output||"")+G.value;return}G.prev=d,_.push(G),d=G},"push"),ee=i((G,ae)=>{const j={...B[ae],conditions:1,inner:""};j.prev=d,j.parens=R.parens,j.output=R.output;const ne=(h.capture?"(":"")+j.open;K("parens"),H({type:G,value:ae,output:R.output?"":q}),H({type:"paren",extglob:!0,value:k(),output:ne}),he.push(j)},"extglobOpen"),Ee=i(G=>{let ae=G.close+(h.capture?")":""),j;if(G.type==="negate"){let ne=le;if(G.inner&&G.inner.length>1&&G.inner.includes("/")&&(ne=ue(h)),(ne!==le||v()||/^\)+$/.test(b()))&&(ae=G.close=`)$))${ne}`),G.inner.includes("*")&&(j=b())&&/^\.[^\\/.]+$/.test(j)){const fe=l(j,{...C,fastpaths:!1}).output;ae=G.close=`)${fe})${ne})`}G.prev.type==="bos"&&(R.negatedExtglob=!0)}H({type:"paren",extglob:!0,value:c,output:ae}),V("parens")},"extglobClose");if(h.fastpaths!==!1&&!/(^[*!]|[/()[\]{}"])/.test(f)){let G=!1,ae=f.replace(r,(j,ne,fe,re,E,F)=>re==="\\"?(G=!0,j):re==="?"?ne?ne+re+(E?g.repeat(E.length):""):F===0?de+(E?g.repeat(E.length):""):g.repeat(fe.length):re==="."?w.repeat(fe.length):re==="*"?ne?ne+re+(E?le:""):le:ne?j:`\\${j}`);return G===!0&&(h.unescape===!0?ae=ae.replace(/\\/g,""):ae=ae.replace(/\\+/g,j=>j.length%2===0?"\\\\":j?"\\":"")),ae===f&&h.contains===!0?(R.output=f,R):(R.output=t.wrapOutput(ae,R,C),R)}for(;!v();){if(c=k(),c==="\0")continue;if(c==="\\"){const j=x();if(j==="/"&&h.bash!==!0||j==="."||j===";")continue;if(!j){c+="\\",H({type:"text",value:c});continue}const ne=/^\\+/.exec(b());let fe=0;if(ne&&ne[0].length>2&&(fe=ne[0].length,R.index+=fe,fe%2!==0&&(c+="\\")),h.unescape===!0?c=k():c+=k(),R.brackets===0){H({type:"text",value:c});continue}}if(R.brackets>0&&(c!=="]"||d.value==="["||d.value==="[^")){if(h.posix!==!1&&c===":"){const j=d.value.slice(1);if(j.includes("[")&&(d.posix=!0,j.includes(":"))){const ne=d.value.lastIndexOf("["),fe=d.value.slice(0,ne),re=d.value.slice(ne+2),E=n[re];if(E){d.value=fe+E,R.backtrack=!0,k(),!U.output&&_.indexOf(d)===1&&(U.output=q);continue}}}(c==="["&&x()!==":"||c==="-"&&x()==="]")&&(c=`\\${c}`),c==="]"&&(d.value==="["||d.value==="[^")&&(c=`\\${c}`),h.posix===!0&&c==="!"&&d.value==="["&&(c="^"),d.value+=c,M({value:c});continue}if(R.quotes===1&&c!=='"'){c=t.escapeRegex(c),d.value+=c,M({value:c});continue}if(c==='"'){R.quotes=R.quotes===1?0:1,h.keepQuotes===!0&&H({type:"text",value:c});continue}if(c==="("){K("parens"),H({type:"paren",value:c});continue}if(c===")"){if(R.parens===0&&h.strictBrackets===!0)throw new SyntaxError(D("opening","("));const j=he[he.length-1];if(j&&R.parens===j.parens+1){Ee(he.pop());continue}H({type:"paren",value:c,output:R.parens?")":"\\)"}),V("parens");continue}if(c==="["){if(h.nobracket===!0||!b().includes("]")){if(h.nobracket!==!0&&h.strictBrackets===!0)throw new SyntaxError(D("closing","]"));c=`\\${c}`}else K("brackets");H({type:"bracket",value:c});continue}if(c==="]"){if(h.nobracket===!0||d&&d.type==="bracket"&&d.value.length===1){H({type:"text",value:c,output:`\\${c}`});continue}if(R.brackets===0){if(h.strictBrackets===!0)throw new SyntaxError(D("opening","["));H({type:"text",value:c,output:`\\${c}`});continue}V("brackets");const j=d.value.slice(1);if(d.posix!==!0&&j[0]==="^"&&!j.includes("/")&&(c=`/${c}`),d.value+=c,M({value:c}),h.literalBrackets===!1||t.hasRegexChars(j))continue;const ne=t.escapeRegex(d.value);if(R.output=R.output.slice(0,-d.value.length),h.literalBrackets===!0){R.output+=ne,d.value=ne;continue}d.value=`(${A}${ne}|${d.value})`,R.output+=d.value;continue}if(c==="{"&&h.nobrace!==!0){K("braces");const j={type:"brace",value:c,output:"(",outputIndex:R.output.length,tokensIndex:R.tokens.length};te.push(j),H(j);continue}if(c==="}"){const j=te[te.length-1];if(h.nobrace===!0||!j){H({type:"text",value:c,output:c});continue}let ne=")";if(j.dots===!0){const fe=_.slice(),re=[];for(let E=fe.length-1;E>=0&&(_.pop(),fe[E].type!=="brace");E--)fe[E].type!=="dots"&&re.unshift(fe[E].value);ne=a(re,h),R.backtrack=!0}if(j.comma!==!0&&j.dots!==!0){const fe=R.output.slice(0,j.outputIndex),re=R.tokens.slice(j.tokensIndex);j.value=j.output="\\{",c=ne="\\}",R.output=fe;for(const E of re)R.output+=E.output||E.value}H({type:"brace",value:c,output:ne}),V("braces"),te.pop();continue}if(c==="|"){he.length>0&&he[he.length-1].conditions++,H({type:"text",value:c});continue}if(c===","){let j=c;const ne=te[te.length-1];ne&&T[T.length-1]==="braces"&&(ne.comma=!0,j="|"),H({type:"comma",value:c,output:j});continue}if(c==="/"){if(d.type==="dot"&&R.index===R.start+1){R.start=R.index+1,R.consumed="",R.output="",_.pop(),d=U;continue}H({type:"slash",value:c,output:y});continue}if(c==="."){if(R.braces>0&&d.type==="dot"){d.value==="."&&(d.output=w);const j=te[te.length-1];d.type="dots",d.output+=c,d.value+=c,j.dots=!0;continue}if(R.braces+R.parens===0&&d.type!=="bos"&&d.type!=="slash"){H({type:"text",value:c,output:w});continue}H({type:"dot",value:c,output:w});continue}if(c==="?"){if(!(d&&d.value==="(")&&h.noextglob!==!0&&x()==="("&&x(2)!=="?"){ee("qmark",c);continue}if(d&&d.type==="paren"){const ne=x();let fe=c;if(ne==="<"&&!t.supportsLookbehinds())throw new Error("Node.js v10 or higher is required for regex lookbehinds");(d.value==="("&&!/[!=<:]/.test(ne)||ne==="<"&&!/<([!=]|\w+>)/.test(b()))&&(fe=`\\${c}`),H({type:"text",value:c,output:fe});continue}if(h.dot!==!0&&(d.type==="slash"||d.type==="bos")){H({type:"qmark",value:c,output:z});continue}H({type:"qmark",value:c,output:g});continue}if(c==="!"){if(h.noextglob!==!0&&x()==="("&&(x(2)!=="?"||!/[!=<:]/.test(x(3)))){ee("negate",c);continue}if(h.nonegate!==!0&&R.index===0){Q();continue}}if(c==="+"){if(h.noextglob!==!0&&x()==="("&&x(2)!=="?"){ee("plus",c);continue}if(d&&d.value==="("||h.regex===!1){H({type:"plus",value:c,output:I});continue}if(d&&(d.type==="bracket"||d.type==="paren"||d.type==="brace")||R.parens>0){H({type:"plus",value:c});continue}H({type:"plus",value:I});continue}if(c==="@"){if(h.noextglob!==!0&&x()==="("&&x(2)!=="?"){H({type:"at",extglob:!0,value:c,output:""});continue}H({type:"text",value:c});continue}if(c!=="*"){(c==="$"||c==="^")&&(c=`\\${c}`);const j=s.exec(b());j&&(c+=j[0],R.index+=j[0].length),H({type:"text",value:c});continue}if(d&&(d.type==="globstar"||d.star===!0)){d.type="star",d.star=!0,d.value+=c,d.output=le,R.backtrack=!0,R.globstar=!0,O(c);continue}let G=b();if(h.noextglob!==!0&&/^\([^?]/.test(G)){ee("star",c);continue}if(d.type==="star"){if(h.noglobstar===!0){O(c);continue}const j=d.prev,ne=j.prev,fe=j.type==="slash"||j.type==="bos",re=ne&&(ne.type==="star"||ne.type==="globstar");if(h.bash===!0&&(!fe||G[0]&&G[0]!=="/")){H({type:"star",value:c,output:""});continue}const E=R.braces>0&&(j.type==="comma"||j.type==="brace"),F=he.length&&(j.type==="pipe"||j.type==="paren");if(!fe&&j.type!=="paren"&&!E&&!F){H({type:"star",value:c,output:""});continue}for(;G.slice(0,3)==="/**";){const Z=f[R.index+4];if(Z&&Z!=="/")break;G=G.slice(3),O("/**",3)}if(j.type==="bos"&&v()){d.type="globstar",d.value+=c,d.output=ue(h),R.output=d.output,R.globstar=!0,O(c);continue}if(j.type==="slash"&&j.prev.type!=="bos"&&!re&&v()){R.output=R.output.slice(0,-(j.output+d.output).length),j.output=`(?:${j.output}`,d.type="globstar",d.output=ue(h)+(h.strictSlashes?")":"|$)"),d.value+=c,R.globstar=!0,R.output+=j.output+d.output,O(c);continue}if(j.type==="slash"&&j.prev.type!=="bos"&&G[0]==="/"){const Z=G[1]!==void 0?"|$":"";R.output=R.output.slice(0,-(j.output+d.output).length),j.output=`(?:${j.output}`,d.type="globstar",d.output=`${ue(h)}${y}|${y}${Z})`,d.value+=c,R.output+=j.output+d.output,R.globstar=!0,O(c+k()),H({type:"slash",value:"/",output:""});continue}if(j.type==="bos"&&G[0]==="/"){d.type="globstar",d.value+=c,d.output=`(?:^|${y}|${ue(h)}${y})`,R.output=d.output,R.globstar=!0,O(c+k()),H({type:"slash",value:"/",output:""});continue}R.output=R.output.slice(0,-d.output.length),d.type="globstar",d.output=ue(h),d.value+=c,R.output+=d.output,R.globstar=!0,O(c);continue}const ae={type:"star",value:c,output:le};if(h.bash===!0){ae.output=".*?",(d.type==="bos"||d.type==="slash")&&(ae.output=De+ae.output),H(ae);continue}if(d&&(d.type==="bracket"||d.type==="paren")&&h.regex===!0){ae.output=c,H(ae);continue}(R.index===R.start||d.type==="slash"||d.type==="dot")&&(d.type==="dot"?(R.output+=N,d.output+=N):h.dot===!0?(R.output+=L,d.output+=L):(R.output+=De,d.output+=De),x()!=="*"&&(R.output+=q,d.output+=q)),H(ae)}for(;R.brackets>0;){if(h.strictBrackets===!0)throw new SyntaxError(D("closing","]"));R.output=t.escapeLast(R.output,"["),V("brackets")}for(;R.parens>0;){if(h.strictBrackets===!0)throw new SyntaxError(D("closing",")"));R.output=t.escapeLast(R.output,"("),V("parens")}for(;R.braces>0;){if(h.strictBrackets===!0)throw new SyntaxError(D("closing","}"));R.output=t.escapeLast(R.output,"{"),V("braces")}if(h.strictSlashes!==!0&&(d.type==="star"||d.type==="bracket")&&H({type:"maybe_slash",value:"",output:`${y}?`}),R.backtrack===!0){R.output="";for(const G of R.tokens)R.output+=G.output!=null?G.output:G.value,G.suffix&&(R.output+=G.suffix)}return R},"parse");return l.fastpaths=(f,C)=>{const h={...C},P=typeof h.maxLength=="number"?Math.min(u,h.maxLength):u,$=f.length;if($>P)throw new SyntaxError(`Input length: ${$}, exceeds maximum allowed length: ${P}`);f=o[f]||f;const U=t.isWindows(C),{DOT_LITERAL:_,SLASH_LITERAL:A,ONE_CHAR:W,DOTS_SLASH:p,NO_DOT:B,NO_DOTS:w,NO_DOTS_SLASH:I,STAR:y,START_ANCHOR:q}=e.globChars(U),m=h.dot?w:B,S=h.dot?I:B,N=h.capture?"":"?:",L={negated:!1,prefix:""};let g=h.bash===!0?".*?":y;h.capture&&(g=`(${g})`);const z=i(De=>De.noglobstar===!0?g:`(${N}(?:(?!${q}${De.dot?p:_}).)*?)`,"globstar"),Y=i(De=>{switch(De){case"*":return`${m}${W}${g}`;case".*":return`${_}${W}${g}`;case"*.*":return`${m}${g}${_}${W}${g}`;case"*/*":return`${m}${g}${A}${W}${S}${g}`;case"**":return m+z(h);case"**/*":return`(?:${m}${z(h)}${A})?${S}${W}${g}`;case"**/*.*":return`(?:${m}${z(h)}${A})?${S}${g}${_}${W}${g}`;case"**/.*":return`(?:${m}${z(h)}${A})?${_}${W}${g}`;default:{const de=/^(.*?)\.(\w+)$/.exec(De);if(!de)return;const le=Y(de[1]);return le?le+_+de[2]:void 0}}},"create"),J=t.removePrefix(f,L);let ue=Y(J);return ue&&h.strictSlashes!==!0&&(ue+=`${A}?`),ue},dt=l,dt}i(ls,"requireParse$1");var pt,xu;function cs(){if(xu)return pt;xu=1;const e=ge,t=Ds(),u=ls(),n=ft(),s=We(),r=i(a=>a&&typeof a=="object"&&!Array.isArray(a),"isObject"),o=i((a,D,l=!1)=>{if(Array.isArray(a)){const A=a.map(p=>o(p,D,l));return i(p=>{for(const B of A){const w=B(p);if(w)return w}return!1},"arrayMatcher")}const f=r(a)&&a.tokens&&a.input;if(a===""||typeof a!="string"&&!f)throw new TypeError("Expected pattern to be a non-empty string");const C=D||{},h=n.isWindows(D),P=f?o.compileRe(a,D):o.makeRe(a,D,!1,!0),$=P.state;delete P.state;let U=i(()=>!1,"isIgnored");if(C.ignore){const A={...D,ignore:null,onMatch:null,onResult:null};U=o(C.ignore,A,l)}const _=i((A,W=!1)=>{const{isMatch:p,match:B,output:w}=o.test(A,P,D,{glob:a,posix:h}),I={glob:a,state:$,regex:P,posix:h,input:A,output:w,match:B,isMatch:p};return typeof C.onResult=="function"&&C.onResult(I),p===!1?(I.isMatch=!1,W?I:!1):U(A)?(typeof C.onIgnore=="function"&&C.onIgnore(I),I.isMatch=!1,W?I:!1):(typeof C.onMatch=="function"&&C.onMatch(I),W?I:!0)},"matcher");return l&&(_.state=$),_},"picomatch");return o.test=(a,D,l,{glob:f,posix:C}={})=>{if(typeof a!="string")throw new TypeError("Expected input to be a string");if(a==="")return{isMatch:!1,output:""};const h=l||{},P=h.format||(C?n.toPosixSlashes:null);let $=a===f,U=$&&P?P(a):a;return $===!1&&(U=P?P(a):a,$=U===f),($===!1||h.capture===!0)&&(h.matchBase===!0||h.basename===!0?$=o.matchBase(a,D,l,C):$=D.exec(U)),{isMatch:!!$,match:$,output:U}},o.matchBase=(a,D,l,f=n.isWindows(l))=>(D instanceof RegExp?D:o.makeRe(D,l)).test(e.basename(a)),o.isMatch=(a,D,l)=>o(D,l)(a),o.parse=(a,D)=>Array.isArray(a)?a.map(l=>o.parse(l,D)):u(a,{...D,fastpaths:!1}),o.scan=(a,D)=>t(a,D),o.compileRe=(a,D,l=!1,f=!1)=>{if(l===!0)return a.output;const C=D||{},h=C.contains?"":"^",P=C.contains?"":"$";let $=`${h}(?:${a.output})${P}`;a&&a.negated===!0&&($=`^(?!${$}).*$`);const U=o.toRegex($,D);return f===!0&&(U.state=a),U},o.makeRe=(a,D={},l=!1,f=!1)=>{if(!a||typeof a!="string")throw new TypeError("Expected a non-empty string");let C={negated:!1,fastpaths:!0};return D.fastpaths!==!1&&(a[0]==="."||a[0]==="*")&&(C.output=u.fastpaths(a,D)),C.output||(C=u(a,D)),o.compileRe(C,D,l,f)},o.toRegex=(a,D)=>{try{const l=D||{};return new RegExp(a,l.flags||(l.nocase?"i":""))}catch(l){if(D&&D.debug===!0)throw l;return/$^/}},o.constants=s,pt=o,pt}i(cs,"requirePicomatch$1");var Et,Tu;function $u(){return Tu||(Tu=1,Et=cs()),Et}i($u,"requirePicomatch");var Ct,Ou;function fs(){if(Ou)return Ct;Ou=1;const e=ye,{Readable:t}=mr,u=ge,{promisify:n}=ve,s=$u(),r=n(e.readdir),o=n(e.stat),a=n(e.lstat),D=n(e.realpath),l="!",f="READDIRP_RECURSIVE_ERROR",C=new Set(["ENOENT","EPERM","EACCES","ELOOP",f]),h="files",P="directories",$="files_directories",U="all",_=[h,P,$,U],A=i(m=>C.has(m.code),"isNormalFlowError"),[W,p]=process.versions.node.split(".").slice(0,2).map(m=>Number.parseInt(m,10)),B=process.platform==="win32"&&(W>10||W===10&&p>=5),w=i(m=>{if(m!==void 0){if(typeof m=="function")return m;if(typeof m=="string"){const S=s(m.trim());return N=>S(N.basename)}if(Array.isArray(m)){const S=[],N=[];for(const L of m){const g=L.trim();g.charAt(0)===l?N.push(s(g.slice(1))):S.push(s(g))}return N.length>0?S.length>0?L=>S.some(g=>g(L.basename))&&!N.some(g=>g(L.basename)):L=>!N.some(g=>g(L.basename)):L=>S.some(g=>g(L.basename))}}},"normalizeFilter");class I extends t{static{i(this,"ReaddirpStream")}static get defaultOptions(){return{root:".",fileFilter:i(S=>!0,"fileFilter"),directoryFilter:i(S=>!0,"directoryFilter"),type:h,lstat:!1,depth:2147483648,alwaysStat:!1}}constructor(S={}){super({objectMode:!0,autoDestroy:!0,highWaterMark:S.highWaterMark||4096});const N={...I.defaultOptions,...S},{root:L,type:g}=N;this._fileFilter=w(N.fileFilter),this._directoryFilter=w(N.directoryFilter);const z=N.lstat?a:o;B?this._stat=Y=>z(Y,{bigint:!0}):this._stat=z,this._maxDepth=N.depth,this._wantsDir=[P,$,U].includes(g),this._wantsFile=[h,$,U].includes(g),this._wantsEverything=g===U,this._root=u.resolve(L),this._isDirent="Dirent"in e&&!N.alwaysStat,this._statsProp=this._isDirent?"dirent":"stats",this._rdOptions={encoding:"utf8",withFileTypes:this._isDirent},this.parents=[this._exploreDir(L,1)],this.reading=!1,this.parent=void 0}async _read(S){if(!this.reading){this.reading=!0;try{for(;!this.destroyed&&S>0;){const{path:N,depth:L,files:g=[]}=this.parent||{};if(g.length>0){const z=g.splice(0,S).map(Y=>this._formatEntry(Y,N));for(const Y of await Promise.all(z)){if(this.destroyed)return;const J=await this._getEntryType(Y);J==="directory"&&this._directoryFilter(Y)?(L<=this._maxDepth&&this.parents.push(this._exploreDir(Y.fullPath,L+1)),this._wantsDir&&(this.push(Y),S--)):(J==="file"||this._includeAsFile(Y))&&this._fileFilter(Y)&&this._wantsFile&&(this.push(Y),S--)}}else{const z=this.parents.pop();if(!z){this.push(null);break}if(this.parent=await z,this.destroyed)return}}}catch(N){this.destroy(N)}finally{this.reading=!1}}}async _exploreDir(S,N){let L;try{L=await r(S,this._rdOptions)}catch(g){this._onError(g)}return{files:L,depth:N,path:S}}async _formatEntry(S,N){let L;try{const g=this._isDirent?S.name:S,z=u.resolve(u.join(N,g));L={path:u.relative(this._root,z),fullPath:z,basename:g},L[this._statsProp]=this._isDirent?S:await this._stat(z)}catch(g){this._onError(g)}return L}_onError(S){A(S)&&!this.destroyed?this.emit("warn",S):this.destroy(S)}async _getEntryType(S){const N=S&&S[this._statsProp];if(N){if(N.isFile())return"file";if(N.isDirectory())return"directory";if(N&&N.isSymbolicLink()){const L=S.fullPath;try{const g=await D(L),z=await a(g);if(z.isFile())return"file";if(z.isDirectory()){const Y=g.length;if(L.startsWith(g)&&L.substr(Y,1)===u.sep){const J=new Error(`Circular symlink detected: "${L}" points to "${g}"`);return J.code=f,this._onError(J)}return"directory"}}catch(g){this._onError(g)}}}}_includeAsFile(S){const N=S&&S[this._statsProp];return N&&this._wantsEverything&&!N.isDirectory()}}const y=i((m,S={})=>{let N=S.entryType||S.type;if(N==="both"&&(N=$),N&&(S.type=N),m){if(typeof m!="string")throw new TypeError("readdirp: root argument must be a string. Usage: readdirp(root, options)");if(N&&!_.includes(N))throw new Error(`readdirp: Invalid type passed. Use one of ${_.join(", ")}`)}else throw new Error("readdirp: root argument is required. Usage: readdirp(root, options)");return S.root=m,new I(S)},"readdirp"),q=i((m,S={})=>new Promise((N,L)=>{const g=[];y(m,S).on("data",z=>g.push(z)).on("end",()=>N(g)).on("error",z=>L(z))}),"readdirpPromise");return y.promise=q,y.ReaddirpStream=I,y.default=y,Ct=y,Ct}i(fs,"requireReaddirp");var Ge={exports:{}},Ft,Pu;function Nu(){if(Pu)return Ft;Pu=1;/*!
+ * normalize-path 
+ *
+ * Copyright (c) 2014-2018, Jon Schlinkert.
+ * Released under the MIT License.
+ */return Ft=i(function(e,t){if(typeof e!="string")throw new TypeError("expected path to be a string");if(e==="\\"||e==="/")return"/";var u=e.length;if(u<=1)return e;var n="";if(u>4&&e[3]==="\\"){var s=e[2];(s==="?"||s===".")&&e.slice(0,2)==="\\\\"&&(e=e.slice(2),n="//")}var r=e.split(/[/\\]+/);return t!==!1&&r[r.length-1]===""&&r.pop(),n+r.join("/")},"normalizePath"),Ft}i(Nu,"requireNormalizePath");var hs=Ge.exports,Iu;function ds(){if(Iu)return Ge.exports;Iu=1,Object.defineProperty(hs,"__esModule",{value:!0});const e=$u(),t=Nu(),u="!",n={returnIndex:!1},s=i(D=>Array.isArray(D)?D:[D],"arrify"),r=i((D,l)=>{if(typeof D=="function")return D;if(typeof D=="string"){const f=e(D,l);return C=>D===C||f(C)}return D instanceof RegExp?f=>D.test(f):f=>!1},"createPattern"),o=i((D,l,f,C)=>{const h=Array.isArray(f),P=h?f[0]:f;if(!h&&typeof P!="string")throw new TypeError("anymatch: second argument must be a string: got "+Object.prototype.toString.call(P));const $=t(P,!1);for(let _=0;_{if(D==null)throw new TypeError("anymatch: specify first argument");const C=typeof f=="boolean"?{returnIndex:f}:f,h=C.returnIndex||!1,P=s(D),$=P.filter(_=>typeof _=="string"&&_.charAt(0)===u).map(_=>_.slice(1)).map(_=>e(_,C)),U=P.filter(_=>typeof _!="string"||typeof _=="string"&&_.charAt(0)!==u).map(_=>r(_,C));return l==null?(_,A=!1)=>o(U,$,_,typeof A=="boolean"?A:!1):o(U,$,l,h)},"anymatch$1");return a.default=a,Ge.exports=a,Ge.exports}i(ds,"requireAnymatch");var gt,Hu;function ps(){if(Hu)return gt;Hu=1;/*!
+ * is-extglob 
+ *
+ * Copyright (c) 2014-2016, Jon Schlinkert.
+ * Licensed under the MIT License.
+ */return gt=i(function(t){if(typeof t!="string"||t==="")return!1;for(var u;u=/(\\).|([@?!+*]\(.*\))/g.exec(t);){if(u[2])return!0;t=t.slice(u.index+u[0].length)}return!1},"isExtglob"),gt}i(ps,"requireIsExtglob");var mt,Lu;function _t(){if(Lu)return mt;Lu=1;/*!
+ * is-glob 
+ *
+ * Copyright (c) 2014-2017, Jon Schlinkert.
+ * Released under the MIT License.
+ */var e=ps(),t={"{":"}","(":")","[":"]"},u=i(function(s){if(s[0]==="!")return!0;for(var r=0,o=-2,a=-2,D=-2,l=-2,f=-2;rr&&(f===-1||f>a||(f=s.indexOf("\\",r),f===-1||f>a)))||D!==-1&&s[r]==="{"&&s[r+1]!=="}"&&(D=s.indexOf("}",r),D>r&&(f=s.indexOf("\\",r),f===-1||f>D))||l!==-1&&s[r]==="("&&s[r+1]==="?"&&/[:!=]/.test(s[r+2])&&s[r+3]!==")"&&(l=s.indexOf(")",r),l>r&&(f=s.indexOf("\\",r),f===-1||f>l))||o!==-1&&s[r]==="("&&s[r+1]!=="|"&&(oo&&(f=s.indexOf("\\",o),f===-1||f>l))))return!0;if(s[r]==="\\"){var C=s[r+1];r+=2;var h=t[C];if(h){var P=s.indexOf(h,r);P!==-1&&(r=P+1)}if(s[r]==="!")return!0}else r++}return!1},"strictCheck"),n=i(function(s){if(s[0]==="!")return!0;for(var r=0;rtypeof t=="number"?Number.isInteger(t):typeof t=="string"&&t.trim()!==""?Number.isInteger(Number(t)):!1,e.find=(t,u)=>t.nodes.find(n=>n.type===u),e.exceedsLimit=(t,u,n=1,s)=>s===!1||!e.isInteger(t)||!e.isInteger(u)?!1:(Number(u)-Number(t))/Number(n)>=s,e.escapeNode=(t,u=0,n)=>{let s=t.nodes[u];s&&(n&&s.type===n||s.type==="open"||s.type==="close")&&s.escaped!==!0&&(s.value="\\"+s.value,s.escaped=!0)},e.encloseBrace=t=>t.type!=="brace"?!1:t.commas>>0+t.ranges>>0===0?(t.invalid=!0,!0):!1,e.isInvalidBrace=t=>t.type!=="brace"?!1:t.invalid===!0||t.dollar?!0:t.commas>>0+t.ranges>>0===0||t.open!==!0||t.close!==!0?(t.invalid=!0,!0):!1,e.isOpenOrClose=t=>t.type==="open"||t.type==="close"?!0:t.open===!0||t.close===!0,e.reduce=t=>t.reduce((u,n)=>(n.type==="text"&&u.push(n.value),n.type==="range"&&(n.type="text"),u),[]),e.flatten=(...t)=>{const u=[],n=i(s=>{for(let r=0;r{let n=i((s,r={})=>{let o=u.escapeInvalid&&e.isInvalidBrace(r),a=s.invalid===!0&&u.escapeInvalid===!0,D="";if(s.value)return(o||a)&&e.isOpenOrClose(s)?"\\"+s.value:s.value;if(s.value)return s.value;if(s.nodes)for(let l of s.nodes)D+=n(l);return D},"stringify");return n(t)},"stringify"),Rt}i(vt,"requireStringify");var bt,Gu;function Cs(){if(Gu)return bt;Gu=1;/*!
+ * is-number 
+ *
+ * Copyright (c) 2014-present, Jon Schlinkert.
+ * Released under the MIT License.
+ */return bt=i(function(e){return typeof e=="number"?e-e===0:typeof e=="string"&&e.trim()!==""?Number.isFinite?Number.isFinite(+e):isFinite(+e):!1},"isNumber"),bt}i(Cs,"requireIsNumber");var Bt,ju;function Fs(){if(ju)return Bt;ju=1;/*!
+ * to-regex-range 
+ *
+ * Copyright (c) 2015-present, Jon Schlinkert.
+ * Released under the MIT License.
+ */const e=Cs(),t=i((_,A,W)=>{if(e(_)===!1)throw new TypeError("toRegexRange: expected the first argument to be a number");if(A===void 0||_===A)return String(_);if(e(A)===!1)throw new TypeError("toRegexRange: expected the second argument to be a number.");let p={relaxZeros:!0,...W};typeof p.strictZeros=="boolean"&&(p.relaxZeros=p.strictZeros===!1);let B=String(p.relaxZeros),w=String(p.shorthand),I=String(p.capture),y=String(p.wrap),q=_+":"+A+"="+B+w+I+y;if(t.cache.hasOwnProperty(q))return t.cache[q].result;let m=Math.min(_,A),S=Math.max(_,A);if(Math.abs(m-S)===1){let Y=_+"|"+A;return p.capture?`(${Y})`:p.wrap===!1?Y:`(?:${Y})`}let N=$(_)||$(A),L={min:_,max:A,a:m,b:S},g=[],z=[];if(N&&(L.isPadded=N,L.maxLen=String(L.max).length),m<0){let Y=S<0?Math.abs(S):1;z=r(Y,Math.abs(m),L,p),m=L.a=0}return S>=0&&(g=r(m,S,L,p)),L.negatives=z,L.positives=g,L.result=u(z,g),p.capture===!0?L.result=`(${L.result})`:p.wrap!==!1&&g.length+z.length>1&&(L.result=`(?:${L.result})`),t.cache[q]=L,L.result},"toRegexRange");function u(_,A,W){let p=o(_,A,"-",!1)||[],B=o(A,_,"",!1)||[],w=o(_,A,"-?",!0)||[];return p.concat(w).concat(B).join("|")}i(u,"collatePatterns");function n(_,A){let W=1,p=1,B=f(_,W),w=new Set([A]);for(;_<=B&&B<=A;)w.add(B),W+=1,B=f(_,W);for(B=C(A+1,p)-1;_1&&y.count.pop(),y.count.push(S.count[0]),y.string=y.pattern+h(y.count),I=m+1;continue}W.isPadded&&(N=U(m,W,p)),S.string=N+S.pattern+h(S.count),w.push(S),I=m+1,y=S}return w}i(r,"splitToPatterns");function o(_,A,W,p,B){let w=[];for(let I of _){let{string:y}=I;!p&&!l(A,"string",y)&&w.push(W+y),p&&l(A,"string",y)&&w.push(W+y)}return w}i(o,"filterPatterns");function a(_,A){let W=[];for(let p=0;p<_.length;p++)W.push([_[p],A[p]]);return W}i(a,"zip");function D(_,A){return _>A?1:A>_?-1:0}i(D,"compare");function l(_,A,W){return _.some(p=>p[A]===W)}i(l,"contains");function f(_,A){return Number(String(_).slice(0,-A)+"9".repeat(A))}i(f,"countNines");function C(_,A){return _-_%Math.pow(10,A)}i(C,"countZeros");function h(_){let[A=0,W=""]=_;return W||A>1?`{${A+(W?","+W:"")}}`:""}i(h,"toQuantifier");function P(_,A,W){return`[${_}${A-_===1?"":"-"}${A}]`}i(P,"toCharacterClass");function $(_){return/^-?(0+)\d/.test(_)}i($,"hasPadding");function U(_,A,W){if(!A.isPadded)return _;let p=Math.abs(A.maxLen-String(_).length),B=W.relaxZeros!==!1;switch(p){case 0:return"";case 1:return B?"0?":"0";case 2:return B?"0{0,2}":"00";default:return B?`0{0,${p}}`:`0{${p}}`}}return i(U,"padZeros"),t.cache={},t.clearCache=()=>t.cache={},Bt=t,Bt}i(Fs,"requireToRegexRange");var St,qu;function Uu(){if(qu)return St;qu=1;/*!
+ * fill-range 
+ *
+ * Copyright (c) 2014-present, Jon Schlinkert.
+ * Licensed under the MIT License.
+ */const e=ve,t=Fs(),u=i(p=>p!==null&&typeof p=="object"&&!Array.isArray(p),"isObject"),n=i(p=>B=>p===!0?Number(B):String(B),"transform"),s=i(p=>typeof p=="number"||typeof p=="string"&&p!=="","isValidValue"),r=i(p=>Number.isInteger(+p),"isNumber"),o=i(p=>{let B=`${p}`,w=-1;if(B[0]==="-"&&(B=B.slice(1)),B==="0")return!1;for(;B[++w]==="0";);return w>0},"zeros"),a=i((p,B,w)=>typeof p=="string"||typeof B=="string"?!0:w.stringify===!0,"stringify"),D=i((p,B,w)=>{if(B>0){let I=p[0]==="-"?"-":"";I&&(p=p.slice(1)),p=I+p.padStart(I?B-1:B,"0")}return w===!1?String(p):p},"pad"),l=i((p,B)=>{let w=p[0]==="-"?"-":"";for(w&&(p=p.slice(1),B--);p.length{p.negatives.sort((m,S)=>mS?1:0),p.positives.sort((m,S)=>mS?1:0);let w=B.capture?"":"?:",I="",y="",q;return p.positives.length&&(I=p.positives.join("|")),p.negatives.length&&(y=`-(${w}${p.negatives.join("|")})`),I&&y?q=`${I}|${y}`:q=I||y,B.wrap?`(${w}${q})`:q},"toSequence"),C=i((p,B,w,I)=>{if(w)return t(p,B,{wrap:!1,...I});let y=String.fromCharCode(p);if(p===B)return y;let q=String.fromCharCode(B);return`[${y}-${q}]`},"toRange"),h=i((p,B,w)=>{if(Array.isArray(p)){let I=w.wrap===!0,y=w.capture?"":"?:";return I?`(${y}${p.join("|")})`:p.join("|")}return t(p,B,w)},"toRegex"),P=i((...p)=>new RangeError("Invalid range arguments: "+e.inspect(...p)),"rangeError"),$=i((p,B,w)=>{if(w.strictRanges===!0)throw P([p,B]);return[]},"invalidRange"),U=i((p,B)=>{if(B.strictRanges===!0)throw new TypeError(`Expected step "${p}" to be a number`);return[]},"invalidStep"),_=i((p,B,w=1,I={})=>{let y=Number(p),q=Number(B);if(!Number.isInteger(y)||!Number.isInteger(q)){if(I.strictRanges===!0)throw P([p,B]);return[]}y===0&&(y=0),q===0&&(q=0);let m=y>q,S=String(p),N=String(B),L=String(w);w=Math.max(Math.abs(w),1);let g=o(S)||o(N)||o(L),z=g?Math.max(S.length,N.length,L.length):0,Y=g===!1&&a(p,B,I)===!1,J=I.transform||n(Y);if(I.toRegex&&w===1)return C(l(p,z),l(B,z),!0,I);let ue={negatives:[],positives:[]},De=i(R=>ue[R<0?"negatives":"positives"].push(Math.abs(R)),"push"),de=[],le=0;for(;m?y>=q:y<=q;)I.toRegex===!0&&w>1?De(y):de.push(D(J(y,le),z,Y)),y=m?y-w:y+w,le++;return I.toRegex===!0?w>1?f(ue,I):h(de,null,{wrap:!1,...I}):de},"fillNumbers"),A=i((p,B,w=1,I={})=>{if(!r(p)&&p.length>1||!r(B)&&B.length>1)return $(p,B,I);let y=I.transform||(Y=>String.fromCharCode(Y)),q=`${p}`.charCodeAt(0),m=`${B}`.charCodeAt(0),S=q>m,N=Math.min(q,m),L=Math.max(q,m);if(I.toRegex&&w===1)return C(N,L,!1,I);let g=[],z=0;for(;S?q>=m:q<=m;)g.push(y(q,z)),q=S?q-w:q+w,z++;return I.toRegex===!0?h(g,null,{wrap:!1,options:I}):g},"fillLetters"),W=i((p,B,w,I={})=>{if(B==null&&s(p))return[p];if(!s(p)||!s(B))return $(p,B,I);if(typeof w=="function")return W(p,B,1,{transform:w});if(u(w))return W(p,B,0,w);let y={...I};return y.capture===!0&&(y.wrap=!0),w=w||y.step||1,r(w)?r(p)&&r(B)?_(p,B,w,y):A(p,B,Math.max(Math.abs(w),1),y):w!=null&&!u(w)?U(w,y):W(p,B,1,w)},"fill");return St=W,St}i(Uu,"requireFillRange");var xt,Ku;function gs(){if(Ku)return xt;Ku=1;const e=Uu(),t=wt();return xt=i((n,s={})=>{let r=i((o,a={})=>{let D=t.isInvalidBrace(a),l=o.invalid===!0&&s.escapeInvalid===!0,f=D===!0||l===!0,C=s.escapeInvalid===!0?"\\":"",h="";if(o.isOpen===!0||o.isClose===!0)return C+o.value;if(o.type==="open")return f?C+o.value:"(";if(o.type==="close")return f?C+o.value:")";if(o.type==="comma")return o.prev.type==="comma"?"":f?o.value:"|";if(o.value)return o.value;if(o.nodes&&o.ranges>0){let P=t.reduce(o.nodes),$=e(...P,{...s,wrap:!1,toRegex:!0});if($.length!==0)return P.length>1&&$.length>1?`(${$})`:$}if(o.nodes)for(let P of o.nodes)h+=r(P,o);return h},"walk");return r(n)},"compile"),xt}i(gs,"requireCompile");var Tt,zu;function ms(){if(zu)return Tt;zu=1;const e=Uu(),t=vt(),u=wt(),n=i((r="",o="",a=!1)=>{let D=[];if(r=[].concat(r),o=[].concat(o),!o.length)return r;if(!r.length)return a?u.flatten(o).map(l=>`{${l}}`):o;for(let l of r)if(Array.isArray(l))for(let f of l)D.push(n(f,o,a));else for(let f of o)a===!0&&typeof f=="string"&&(f=`{${f}}`),D.push(Array.isArray(f)?n(l,f,a):l+f);return u.flatten(D)},"append");return Tt=i((r,o={})=>{let a=o.rangeLimit===void 0?1e3:o.rangeLimit,D=i((l,f={})=>{l.queue=[];let C=f,h=f.queue;for(;C.type!=="brace"&&C.type!=="root"&&C.parent;)C=C.parent,h=C.queue;if(l.invalid||l.dollar){h.push(n(h.pop(),t(l,o)));return}if(l.type==="brace"&&l.invalid!==!0&&l.nodes.length===2){h.push(n(h.pop(),["{}"]));return}if(l.nodes&&l.ranges>0){let _=u.reduce(l.nodes);if(u.exceedsLimit(..._,o.step,a))throw new RangeError("expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit.");let A=e(..._,o);A.length===0&&(A=t(l,o)),h.push(n(h.pop(),A)),l.nodes=[];return}let P=u.encloseBrace(l),$=l.queue,U=l;for(;U.type!=="brace"&&U.type!=="root"&&U.parent;)U=U.parent,$=U.queue;for(let _=0;_",CHAR_RIGHT_CURLY_BRACE:"}",CHAR_RIGHT_SQUARE_BRACKET:"]",CHAR_SEMICOLON:";",CHAR_SINGLE_QUOTE:"'",CHAR_SPACE:" ",CHAR_TAB:"	",CHAR_UNDERSCORE:"_",CHAR_VERTICAL_LINE:"|",CHAR_ZERO_WIDTH_NOBREAK_SPACE:"\uFEFF"}),$t}i(_s,"requireConstants$1");var Ot,Yu;function As(){if(Yu)return Ot;Yu=1;const e=vt(),{MAX_LENGTH:t,CHAR_BACKSLASH:u,CHAR_BACKTICK:n,CHAR_COMMA:s,CHAR_DOT:r,CHAR_LEFT_PARENTHESES:o,CHAR_RIGHT_PARENTHESES:a,CHAR_LEFT_CURLY_BRACE:D,CHAR_RIGHT_CURLY_BRACE:l,CHAR_LEFT_SQUARE_BRACKET:f,CHAR_RIGHT_SQUARE_BRACKET:C,CHAR_DOUBLE_QUOTE:h,CHAR_SINGLE_QUOTE:P,CHAR_NO_BREAK_SPACE:$,CHAR_ZERO_WIDTH_NOBREAK_SPACE:U}=_s();return Ot=i((A,W={})=>{if(typeof A!="string")throw new TypeError("Expected a string");let p=W||{},B=typeof p.maxLength=="number"?Math.min(t,p.maxLength):t;if(A.length>B)throw new SyntaxError(`Input length (${A.length}), exceeds max characters (${B})`);let w={type:"root",input:A,nodes:[]},I=[w],y=w,q=w,m=0,S=A.length,N=0,L=0,g;const z=i(()=>A[N++],"advance"),Y=i(J=>{if(J.type==="text"&&q.type==="dot"&&(q.type="text"),q&&q.type==="text"&&J.type==="text"){q.value+=J.value;return}return y.nodes.push(J),J.parent=y,J.prev=q,q=J,J},"push");for(Y({type:"bos"});N0){if(y.ranges>0){y.ranges=0;let J=y.nodes.shift();y.nodes=[J,{type:"text",value:e(y)}]}Y({type:"comma",value:g}),y.commas++;continue}if(g===r&&L>0&&y.commas===0){let J=y.nodes;if(L===0||J.length===0){Y({type:"text",value:g});continue}if(q.type==="dot"){if(y.range=[],q.value+=g,q.type="range",y.nodes.length!==3&&y.nodes.length!==5){y.invalid=!0,y.ranges=0,q.type="text";continue}y.ranges++,y.args=[];continue}if(q.type==="range"){J.pop();let ue=J[J.length-1];ue.value+=q.value+g,q=ue,y.ranges--;continue}Y({type:"dot",value:g});continue}Y({type:"text",value:g})}do if(y=I.pop(),y.type!=="root"){y.nodes.forEach(De=>{De.nodes||(De.type==="open"&&(De.isOpen=!0),De.type==="close"&&(De.isClose=!0),De.nodes||(De.type="text"),De.invalid=!0)});let J=I[I.length-1],ue=J.nodes.indexOf(y);J.nodes.splice(ue,1,...y.nodes)}while(I.length>0);return Y({type:"eos"}),w},"parse"),Ot}i(As,"requireParse");var Pt,Xu;function ys(){if(Xu)return Pt;Xu=1;const e=vt(),t=gs(),u=ms(),n=As(),s=i((r,o={})=>{let a=[];if(Array.isArray(r))for(let D of r){let l=s.create(D,o);Array.isArray(l)?a.push(...l):a.push(l)}else a=[].concat(s.create(r,o));return o&&o.expand===!0&&o.nodupes===!0&&(a=[...new Set(a)]),a},"braces");return s.parse=(r,o={})=>n(r,o),s.stringify=(r,o={})=>e(typeof r=="string"?s.parse(r,o):r,o),s.compile=(r,o={})=>(typeof r=="string"&&(r=s.parse(r,o)),t(r,o)),s.expand=(r,o={})=>{typeof r=="string"&&(r=s.parse(r,o));let a=u(r,o);return o.noempty===!0&&(a=a.filter(Boolean)),o.nodupes===!0&&(a=[...new Set(a)]),a},s.create=(r,o={})=>r===""||r.length<3?[r]:o.expand!==!0?s.compile(r,o):s.expand(r,o),Pt=s,Pt}i(ys,"requireBraces");var ws=["3dm","3ds","3g2","3gp","7z","a","aac","adp","afdesign","afphoto","afpub","ai","aif","aiff","alz","ape","apk","appimage","ar","arj","asf","au","avi","bak","baml","bh","bin","bk","bmp","btif","bz2","bzip2","cab","caf","cgm","class","cmx","cpio","cr2","cur","dat","dcm","deb","dex","djvu","dll","dmg","dng","doc","docm","docx","dot","dotm","dra","DS_Store","dsk","dts","dtshd","dvb","dwg","dxf","ecelp4800","ecelp7470","ecelp9600","egg","eol","eot","epub","exe","f4v","fbs","fh","fla","flac","flatpak","fli","flv","fpx","fst","fvt","g3","gh","gif","graffle","gz","gzip","h261","h263","h264","icns","ico","ief","img","ipa","iso","jar","jpeg","jpg","jpgv","jpm","jxr","key","ktx","lha","lib","lvp","lz","lzh","lzma","lzo","m3u","m4a","m4v","mar","mdi","mht","mid","midi","mj2","mka","mkv","mmr","mng","mobi","mov","movie","mp3","mp4","mp4a","mpeg","mpg","mpga","mxu","nef","npx","numbers","nupkg","o","odp","ods","odt","oga","ogg","ogv","otf","ott","pages","pbm","pcx","pdb","pdf","pea","pgm","pic","png","pnm","pot","potm","potx","ppa","ppam","ppm","pps","ppsm","ppsx","ppt","pptm","pptx","psd","pya","pyc","pyo","pyv","qt","rar","ras","raw","resources","rgb","rip","rlc","rmf","rmvb","rpm","rtf","rz","s3m","s7z","scpt","sgi","shar","snap","sil","sketch","slk","smv","snk","so","stl","suo","sub","swf","tar","tbz","tbz2","tga","tgz","thmx","tif","tiff","tlz","ttc","ttf","txz","udf","uvh","uvi","uvm","uvp","uvs","uvu","viv","vob","war","wav","wax","wbmp","wdp","weba","webm","webp","whl","wim","wm","wma","wmv","wmx","woff","woff2","wrm","wvx","xbm","xif","xla","xlam","xls","xlsb","xlsm","xlsx","xlt","xltm","xltx","xm","xmind","xpi","xpm","xwd","xz","z","zip","zipx"],Nt,Qu;function Rs(){return Qu||(Qu=1,Nt=ws),Nt}i(Rs,"requireBinaryExtensions");var It,Zu;function vs(){if(Zu)return It;Zu=1;const e=ge,t=Rs(),u=new Set(t);return It=i(n=>u.has(e.extname(n).slice(1).toLowerCase()),"isBinaryPath"),It}i(vs,"requireIsBinaryPath");var Ht={},Ju;function Lt(){return Ju||(Ju=1,(function(e){const{sep:t}=ge,{platform:u}=process,n=Gt;e.EV_ALL="all",e.EV_READY="ready",e.EV_ADD="add",e.EV_CHANGE="change",e.EV_ADD_DIR="addDir",e.EV_UNLINK="unlink",e.EV_UNLINK_DIR="unlinkDir",e.EV_RAW="raw",e.EV_ERROR="error",e.STR_DATA="data",e.STR_END="end",e.STR_CLOSE="close",e.FSEVENT_CREATED="created",e.FSEVENT_MODIFIED="modified",e.FSEVENT_DELETED="deleted",e.FSEVENT_MOVED="moved",e.FSEVENT_CLONED="cloned",e.FSEVENT_UNKNOWN="unknown",e.FSEVENT_FLAG_MUST_SCAN_SUBDIRS=1,e.FSEVENT_TYPE_FILE="file",e.FSEVENT_TYPE_DIRECTORY="directory",e.FSEVENT_TYPE_SYMLINK="symlink",e.KEY_LISTENERS="listeners",e.KEY_ERR="errHandlers",e.KEY_RAW="rawEmitters",e.HANDLER_KEYS=[e.KEY_LISTENERS,e.KEY_ERR,e.KEY_RAW],e.DOT_SLASH=`.${t}`,e.BACK_SLASH_RE=/\\/g,e.DOUBLE_SLASH_RE=/\/\//,e.SLASH_OR_BACK_SLASH_RE=/[/\\]/,e.DOT_RE=/\..*\.(sw[px])$|~$|\.subl.*\.tmp/,e.REPLACER_RE=/^\.[/\\]/,e.SLASH="/",e.SLASH_SLASH="//",e.BRACE_START="{",e.BANG="!",e.ONE_DOT=".",e.TWO_DOTS="..",e.STAR="*",e.GLOBSTAR="**",e.ROOT_GLOBSTAR="/**/*",e.SLASH_GLOBSTAR="/**",e.DIR_SUFFIX="Dir",e.ANYMATCH_OPTS={dot:!0},e.STRING_TYPE="string",e.FUNCTION_TYPE="function",e.EMPTY_STR="",e.EMPTY_FN=()=>{},e.IDENTITY_FN=s=>s,e.isWindows=u==="win32",e.isMacos=u==="darwin",e.isLinux=u==="linux",e.isIBMi=n.type()==="OS400"})(Ht)),Ht}i(Lt,"requireConstants");var kt,er;function bs(){if(er)return kt;er=1;const e=ye,t=ge,{promisify:u}=ve,n=vs(),{isWindows:s,isLinux:r,EMPTY_FN:o,EMPTY_STR:a,KEY_LISTENERS:D,KEY_ERR:l,KEY_RAW:f,HANDLER_KEYS:C,EV_CHANGE:h,EV_ADD:P,EV_ADD_DIR:$,EV_ERROR:U,STR_DATA:_,STR_END:A,BRACE_START:W,STAR:p}=Lt(),B="watch",w=u(e.open),I=u(e.stat),y=u(e.lstat),q=u(e.close),m=u(e.realpath),S={lstat:y,stat:I},N=i((te,T)=>{te instanceof Set?te.forEach(T):T(te)},"foreach"),L=i((te,T,d)=>{let c=te[T];c instanceof Set||(te[T]=c=new Set([c])),c.add(d)},"addAndConvert"),g=i(te=>T=>{const d=te[T];d instanceof Set?d.clear():delete te[T]},"clearItem"),z=i((te,T,d)=>{const c=te[T];c instanceof Set?c.delete(d):c===d&&delete te[T]},"delFromSet"),Y=i(te=>te instanceof Set?te.size===0:!te,"isEmptySet"),J=new Map;function ue(te,T,d,c,v){const x=i((k,b)=>{d(te),v(k,b,{watchedPath:te}),b&&te!==b&&De(t.resolve(te,b),D,t.join(te,b))},"handleEvent");try{return e.watch(te,T,x)}catch(k){c(k)}}i(ue,"createFsWatchInstance");const De=i((te,T,d,c,v)=>{const x=J.get(te);x&&N(x[T],k=>{k(d,c,v)})},"fsWatchBroadcast"),de=i((te,T,d,c)=>{const{listener:v,errHandler:x,rawEmitter:k}=c;let b=J.get(T),O;if(!d.persistent)return O=ue(te,d,v,x,k),O.close.bind(O);if(b)L(b,D,v),L(b,l,x),L(b,f,k);else{if(O=ue(te,d,De.bind(null,T,D),x,De.bind(null,T,f)),!O)return;O.on(U,async M=>{const Q=De.bind(null,T,l);if(b.watcherUnusable=!0,s&&M.code==="EPERM")try{const K=await w(te,"r");await q(K),Q(M)}catch{}else Q(M)}),b={listeners:v,errHandlers:x,rawEmitters:k,watcher:O},J.set(T,b)}return()=>{z(b,D,v),z(b,l,x),z(b,f,k),Y(b.listeners)&&(b.watcher.close(),J.delete(T),C.forEach(g(b)),b.watcher=void 0,Object.freeze(b))}},"setFsWatchListener"),le=new Map,R=i((te,T,d,c)=>{const{listener:v,rawEmitter:x}=c;let k=le.get(T);const b=k&&k.options;return b&&(b.persistentd.interval)&&(k.listeners,k.rawEmitters,e.unwatchFile(T),k=void 0),k?(L(k,D,v),L(k,f,x)):(k={listeners:v,rawEmitters:x,options:d,watcher:e.watchFile(T,d,(O,M)=>{N(k.rawEmitters,K=>{K(h,T,{curr:O,prev:M})});const Q=O.mtimeMs;(O.size!==M.size||Q>M.mtimeMs||Q===0)&&N(k.listeners,K=>K(te,O))})},le.set(T,k)),()=>{z(k,D,v),z(k,f,x),Y(k.listeners)&&(le.delete(T),e.unwatchFile(T),k.options=k.watcher=void 0,Object.freeze(k))}},"setFsWatchFileListener");class he{static{i(this,"NodeFsHandler")}constructor(T){this.fsw=T,this._boundHandleError=d=>T._handleError(d)}_watchWithNodeFs(T,d){const c=this.fsw.options,v=t.dirname(T),x=t.basename(T);this.fsw._getWatchedDir(v).add(x);const b=t.resolve(T),O={persistent:c.persistent};d||(d=o);let M;return c.usePolling?(O.interval=c.enableBinaryInterval&&n(x)?c.binaryInterval:c.interval,M=R(T,b,O,{listener:d,rawEmitter:this.fsw._emitRaw})):M=de(T,b,O,{listener:d,errHandler:this._boundHandleError,rawEmitter:this.fsw._emitRaw}),M}_handleFile(T,d,c){if(this.fsw.closed)return;const v=t.dirname(T),x=t.basename(T),k=this.fsw._getWatchedDir(v);let b=d;if(k.has(x))return;const O=i(async(Q,K)=>{if(this.fsw._throttle(B,T,5)){if(!K||K.mtimeMs===0)try{const V=await I(T);if(this.fsw.closed)return;const H=V.atimeMs,ee=V.mtimeMs;(!H||H<=ee||ee!==b.mtimeMs)&&this.fsw._emit(h,T,V),r&&b.ino!==V.ino?(this.fsw._closeFile(Q),b=V,this.fsw._addPathCloser(Q,this._watchWithNodeFs(T,O))):b=V}catch{this.fsw._remove(v,x)}else if(k.has(x)){const V=K.atimeMs,H=K.mtimeMs;(!V||V<=H||H!==b.mtimeMs)&&this.fsw._emit(h,T,K),b=K}}},"listener"),M=this._watchWithNodeFs(T,O);if(!(c&&this.fsw.options.ignoreInitial)&&this.fsw._isntIgnored(T)){if(!this.fsw._throttle(P,T,0))return;this.fsw._emit(P,T,d)}return M}async _handleSymlink(T,d,c,v){if(this.fsw.closed)return;const x=T.fullPath,k=this.fsw._getWatchedDir(d);if(!this.fsw.options.followSymlinks){this.fsw._incrReadyCount();let b;try{b=await m(c)}catch{return this.fsw._emitReady(),!0}return this.fsw.closed?void 0:(k.has(v)?this.fsw._symlinkPaths.get(x)!==b&&(this.fsw._symlinkPaths.set(x,b),this.fsw._emit(h,c,T.stats)):(k.add(v),this.fsw._symlinkPaths.set(x,b),this.fsw._emit(P,c,T.stats)),this.fsw._emitReady(),!0)}if(this.fsw._symlinkPaths.has(x))return!0;this.fsw._symlinkPaths.set(x,!0)}_handleRead(T,d,c,v,x,k,b){if(T=t.join(T,a),!c.hasGlob&&(b=this.fsw._throttle("readdir",T,1e3),!b))return;const O=this.fsw._getWatchedDir(c.path),M=new Set;let Q=this.fsw._readdirp(T,{fileFilter:i(K=>c.filterPath(K),"fileFilter"),directoryFilter:i(K=>c.filterDir(K),"directoryFilter"),depth:0}).on(_,async K=>{if(this.fsw.closed){Q=void 0;return}const V=K.path;let H=t.join(T,V);if(M.add(V),!(K.stats.isSymbolicLink()&&await this._handleSymlink(K,T,H,V))){if(this.fsw.closed){Q=void 0;return}(V===v||!v&&!O.has(V))&&(this.fsw._incrReadyCount(),H=t.join(x,t.relative(x,H)),this._addToNodeFs(H,d,c,k+1))}}).on(U,this._boundHandleError);return new Promise(K=>Q.once(A,()=>{if(this.fsw.closed){Q=void 0;return}const V=b?b.clear():!1;K(),O.getChildren().filter(H=>H!==T&&!M.has(H)&&(!c.hasGlob||c.filterPath({fullPath:t.resolve(T,H)}))).forEach(H=>{this.fsw._remove(T,H)}),Q=void 0,V&&this._handleRead(T,!1,c,v,x,k,b)}))}async _handleDir(T,d,c,v,x,k,b){const O=this.fsw._getWatchedDir(t.dirname(T)),M=O.has(t.basename(T));!(c&&this.fsw.options.ignoreInitial)&&!x&&!M&&(!k.hasGlob||k.globFilter(T))&&this.fsw._emit($,T,d),O.add(t.basename(T)),this.fsw._getWatchedDir(T);let Q,K;const V=this.fsw.options.depth;if((V==null||v<=V)&&!this.fsw._symlinkPaths.has(b)){if(!x&&(await this._handleRead(T,c,k,x,T,v,Q),this.fsw.closed))return;K=this._watchWithNodeFs(T,(H,ee)=>{ee&&ee.mtimeMs===0||this._handleRead(H,!1,k,x,T,v,Q)})}return K}async _addToNodeFs(T,d,c,v,x){const k=this.fsw._emitReady;if(this.fsw._isIgnored(T)||this.fsw.closed)return k(),!1;const b=this.fsw._getWatchHelpers(T,v);!b.hasGlob&&c&&(b.hasGlob=c.hasGlob,b.globFilter=c.globFilter,b.filterPath=O=>c.filterPath(O),b.filterDir=O=>c.filterDir(O));try{const O=await S[b.statMethod](b.watchPath);if(this.fsw.closed)return;if(this.fsw._isIgnored(b.watchPath,O))return k(),!1;const M=this.fsw.options.followSymlinks&&!T.includes(p)&&!T.includes(W);let Q;if(O.isDirectory()){const K=t.resolve(T),V=M?await m(T):T;if(this.fsw.closed||(Q=await this._handleDir(b.watchPath,O,d,v,x,b,V),this.fsw.closed))return;K!==V&&V!==void 0&&this.fsw._symlinkPaths.set(K,V)}else if(O.isSymbolicLink()){const K=M?await m(T):T;if(this.fsw.closed)return;const V=t.dirname(b.watchPath);if(this.fsw._getWatchedDir(V).add(b.watchPath),this.fsw._emit(P,b.watchPath,O),Q=await this._handleDir(V,O,d,v,T,b,K),this.fsw.closed)return;K!==void 0&&this.fsw._symlinkPaths.set(t.resolve(T),K)}else Q=this._handleFile(b.watchPath,O,d);return k(),this.fsw._addPathCloser(T,Q),!1}catch(O){if(this.fsw._handleError(O))return k(),T}}}return kt=he,kt}i(bs,"requireNodefsHandler");var je={exports:{}},tr;function Bs(){if(tr)return je.exports;tr=1;const e=ye,t=ge,{promisify:u}=ve;let n;try{n=Te("fsevents")}catch(d){process.env.CHOKIDAR_PRINT_FSEVENTS_REQUIRE_ERROR&&console.error(d)}if(n){const d=process.version.match(/v(\d+)\.(\d+)/);if(d&&d[1]&&d[2]){const c=Number.parseInt(d[1],10),v=Number.parseInt(d[2],10);c===8&&v<16&&(n=void 0)}}const{EV_ADD:s,EV_CHANGE:r,EV_ADD_DIR:o,EV_UNLINK:a,EV_ERROR:D,STR_DATA:l,STR_END:f,FSEVENT_CREATED:C,FSEVENT_MODIFIED:h,FSEVENT_DELETED:P,FSEVENT_MOVED:$,FSEVENT_UNKNOWN:U,FSEVENT_FLAG_MUST_SCAN_SUBDIRS:_,FSEVENT_TYPE_FILE:A,FSEVENT_TYPE_DIRECTORY:W,FSEVENT_TYPE_SYMLINK:p,ROOT_GLOBSTAR:B,DIR_SUFFIX:w,DOT_SLASH:I,FUNCTION_TYPE:y,EMPTY_FN:q,IDENTITY_FN:m}=Lt(),S=i(d=>isNaN(d)?{}:{depth:d},"Depth"),N=u(e.stat),L=u(e.lstat),g=u(e.realpath),z={stat:N,lstat:L},Y=new Map,J=10,ue=new Set([69888,70400,71424,72704,73472,131328,131840,262912]),De=i((d,c)=>({stop:n.watch(d,c)}),"createFSEventsInstance");function de(d,c,v,x){let k=t.extname(c)?t.dirname(c):c;const b=t.dirname(k);let O=Y.get(k);le(b)&&(k=b);const M=t.resolve(d),Q=M!==c,K=i((H,ee,Ee)=>{Q&&(H=H.replace(c,M)),(H===M||!H.indexOf(M+t.sep))&&v(H,ee,Ee)},"filteredListener");let V=!1;for(const H of Y.keys())if(c.indexOf(t.resolve(H)+t.sep)===0){k=H,O=Y.get(k),V=!0;break}return O||V?O.listeners.add(K):(O={listeners:new Set([K]),rawEmitter:x,watcher:De(k,(H,ee)=>{if(!O.listeners.size||ee&_)return;const Ee=n.getInfo(H,ee);O.listeners.forEach(G=>{G(H,ee,Ee)}),O.rawEmitter(Ee.event,H,Ee)})},Y.set(k,O)),()=>{const H=O.listeners;if(H.delete(K),!H.size&&(Y.delete(k),O.watcher))return O.watcher.stop().then(()=>{O.rawEmitter=O.watcher=void 0,Object.freeze(O)})}}i(de,"setFSEventsListener");const le=i(d=>{let c=0;for(const v of Y.keys())if(v.indexOf(d)===0&&(c++,c>=J))return!0;return!1},"couldConsolidate"),R=i(()=>n&&Y.size<128,"canUse"),he=i((d,c)=>{let v=0;for(;!d.indexOf(c)&&(d=t.dirname(d))!==c;)v++;return v},"calcDepth"),te=i((d,c)=>d.type===W&&c.isDirectory()||d.type===p&&c.isSymbolicLink()||d.type===A&&c.isFile(),"sameTypes");class T{static{i(this,"FsEventsHandler")}constructor(c){this.fsw=c}checkIgnored(c,v){const x=this.fsw._ignoredPaths;if(this.fsw._isIgnored(c,v))return x.add(c),v&&v.isDirectory()&&x.add(c+B),!0;x.delete(c),x.delete(c+B)}addOrChange(c,v,x,k,b,O,M,Q){const K=b.has(O)?r:s;this.handleEvent(K,c,v,x,k,b,O,M,Q)}async checkExists(c,v,x,k,b,O,M,Q){try{const K=await N(c);if(this.fsw.closed)return;te(M,K)?this.addOrChange(c,v,x,k,b,O,M,Q):this.handleEvent(a,c,v,x,k,b,O,M,Q)}catch(K){K.code==="EACCES"?this.addOrChange(c,v,x,k,b,O,M,Q):this.handleEvent(a,c,v,x,k,b,O,M,Q)}}handleEvent(c,v,x,k,b,O,M,Q,K){if(!(this.fsw.closed||this.checkIgnored(v)))if(c===a){const V=Q.type===W;(V||O.has(M))&&this.fsw._remove(b,M,V)}else{if(c===s){if(Q.type===W&&this.fsw._getWatchedDir(v),Q.type===p&&K.followSymlinks){const H=K.depth===void 0?void 0:he(x,k)+1;return this._addToFsEvents(v,!1,!0,H)}this.fsw._getWatchedDir(b).add(M)}const V=Q.type===W?c+w:c;this.fsw._emit(V,v),V===o&&this._addToFsEvents(v,!1,!0)}}_watchWithFsEvents(c,v,x,k){if(this.fsw.closed||this.fsw._isIgnored(c))return;const b=this.fsw.options,M=de(c,v,i(async(Q,K,V)=>{if(this.fsw.closed||b.depth!==void 0&&he(Q,v)>b.depth)return;const H=x(t.join(c,t.relative(c,Q)));if(k&&!k(H))return;const ee=t.dirname(H),Ee=t.basename(H),G=this.fsw._getWatchedDir(V.type===W?H:ee);if(ue.has(K)||V.event===U)if(typeof b.ignored===y){let ae;try{ae=await N(H)}catch{}if(this.fsw.closed||this.checkIgnored(H,ae))return;te(V,ae)?this.addOrChange(H,Q,v,ee,G,Ee,V,b):this.handleEvent(a,H,Q,v,ee,G,Ee,V,b)}else this.checkExists(H,Q,v,ee,G,Ee,V,b);else switch(V.event){case C:case h:return this.addOrChange(H,Q,v,ee,G,Ee,V,b);case P:case $:return this.checkExists(H,Q,v,ee,G,Ee,V,b)}},"watchCallback"),this.fsw._emitRaw);return this.fsw._emitReady(),M}async _handleFsEventsSymlink(c,v,x,k){if(!(this.fsw.closed||this.fsw._symlinkPaths.has(v))){this.fsw._symlinkPaths.set(v,!0),this.fsw._incrReadyCount();try{const b=await g(c);if(this.fsw.closed)return;if(this.fsw._isIgnored(b))return this.fsw._emitReady();this.fsw._incrReadyCount(),this._addToFsEvents(b||c,O=>{let M=c;return b&&b!==I?M=O.replace(b,c):O!==I&&(M=t.join(c,O)),x(M)},!1,k)}catch(b){if(this.fsw._handleError(b))return this.fsw._emitReady()}}}emitAdd(c,v,x,k,b){const O=x(c),M=v.isDirectory(),Q=this.fsw._getWatchedDir(t.dirname(O)),K=t.basename(O);M&&this.fsw._getWatchedDir(O),!Q.has(K)&&(Q.add(K),(!k.ignoreInitial||b===!0)&&this.fsw._emit(M?o:s,O,v))}initWatch(c,v,x,k){if(this.fsw.closed)return;const b=this._watchWithFsEvents(x.watchPath,t.resolve(c||x.watchPath),k,x.globFilter);this.fsw._addPathCloser(v,b)}async _addToFsEvents(c,v,x,k){if(this.fsw.closed)return;const b=this.fsw.options,O=typeof v===y?v:m,M=this.fsw._getWatchHelpers(c);try{const Q=await z[M.statMethod](M.watchPath);if(this.fsw.closed)return;if(this.fsw._isIgnored(M.watchPath,Q))throw null;if(Q.isDirectory()){if(M.globFilter||this.emitAdd(O(c),Q,O,b,x),k&&k>b.depth)return;this.fsw._readdirp(M.watchPath,{fileFilter:i(K=>M.filterPath(K),"fileFilter"),directoryFilter:i(K=>M.filterDir(K),"directoryFilter"),...S(b.depth-(k||0))}).on(l,K=>{if(this.fsw.closed||K.stats.isDirectory()&&!M.filterPath(K))return;const V=t.join(M.watchPath,K.path),{fullPath:H}=K;if(M.followSymlinks&&K.stats.isSymbolicLink()){const ee=b.depth===void 0?void 0:he(V,t.resolve(M.watchPath))+1;this._handleFsEventsSymlink(V,H,O,ee)}else this.emitAdd(V,K.stats,O,b,x)}).on(D,q).on(f,()=>{this.fsw._emitReady()})}else this.emitAdd(M.watchPath,Q,O,b,x),this.fsw._emitReady()}catch(Q){(!Q||this.fsw._handleError(Q))&&(this.fsw._emitReady(),this.fsw._emitReady())}if(b.persistent&&x!==!0)if(typeof v===y)this.initWatch(void 0,c,M,O);else{let Q;try{Q=await g(M.watchPath)}catch{}this.initWatch(Q,c,M,O)}}}return je.exports=T,je.exports.canUse=R,je.exports}i(Bs,"requireFseventsHandler");var ur;function Ss(){if(ur)return Me;ur=1;const{EventEmitter:e}=gr,t=ye,u=ge,{promisify:n}=ve,s=fs(),r=ds().default,o=Es(),a=_t(),D=ys(),l=Nu(),f=bs(),C=Bs(),{EV_ALL:h,EV_READY:P,EV_ADD:$,EV_CHANGE:U,EV_UNLINK:_,EV_ADD_DIR:A,EV_UNLINK_DIR:W,EV_RAW:p,EV_ERROR:B,STR_CLOSE:w,STR_END:I,BACK_SLASH_RE:y,DOUBLE_SLASH_RE:q,SLASH_OR_BACK_SLASH_RE:m,DOT_RE:S,REPLACER_RE:N,SLASH:L,SLASH_SLASH:g,BRACE_START:z,BANG:Y,ONE_DOT:J,TWO_DOTS:ue,GLOBSTAR:De,SLASH_GLOBSTAR:de,ANYMATCH_OPTS:le,STRING_TYPE:R,FUNCTION_TYPE:he,EMPTY_STR:te,EMPTY_FN:T,isWindows:d,isMacos:c,isIBMi:v}=Lt(),x=n(t.stat),k=n(t.readdir),b=i((re=[])=>Array.isArray(re)?re:[re],"arrify"),O=i((re,E=[])=>(re.forEach(F=>{Array.isArray(F)?O(F,E):E.push(F)}),E),"flatten"),M=i(re=>{const E=O(b(re));if(!E.every(F=>typeof F===R))throw new TypeError(`Non-string provided as watch path: ${E}`);return E.map(K)},"unifyPaths"),Q=i(re=>{let E=re.replace(y,L),F=!1;for(E.startsWith(g)&&(F=!0);E.match(q);)E=E.replace(q,L);return F&&(E=L+E),E},"toUnix"),K=i(re=>Q(u.normalize(Q(re))),"normalizePathToUnix"),V=i((re=te)=>E=>typeof E!==R?E:K(u.isAbsolute(E)?E:u.join(re,E)),"normalizeIgnored"),H=i((re,E)=>u.isAbsolute(re)?re:re.startsWith(Y)?Y+u.join(E,re.slice(1)):u.join(E,re),"getAbsolutePath"),ee=i((re,E)=>re[E]===void 0,"undef");class Ee{static{i(this,"DirEntry")}constructor(E,F){this.path=E,this._removeWatcher=F,this.items=new Set}add(E){const{items:F}=this;F&&E!==J&&E!==ue&&F.add(E)}async remove(E){const{items:F}=this;if(!F||(F.delete(E),F.size>0))return;const Z=this.path;try{await k(Z)}catch{this._removeWatcher&&this._removeWatcher(u.dirname(Z),u.basename(Z))}}has(E){const{items:F}=this;if(F)return F.has(E)}getChildren(){const{items:E}=this;if(E)return[...E.values()]}dispose(){this.items.clear(),delete this.path,delete this._removeWatcher,delete this.items,Object.freeze(this)}}const G="stat",ae="lstat";class j{static{i(this,"WatchHelper")}constructor(E,F,Z,X){this.fsw=X,this.path=E=E.replace(N,te),this.watchPath=F,this.fullWatchPath=u.resolve(F),this.hasGlob=F!==E,E===te&&(this.hasGlob=!1),this.globSymlink=this.hasGlob&&Z?void 0:!1,this.globFilter=this.hasGlob?r(E,void 0,le):!1,this.dirParts=this.getDirParts(E),this.dirParts.forEach(ce=>{ce.length>1&&ce.pop()}),this.followSymlinks=Z,this.statMethod=Z?G:ae}checkGlobSymlink(E){return this.globSymlink===void 0&&(this.globSymlink=E.fullParentDir===this.fullWatchPath?!1:{realPath:E.fullParentDir,linkPath:this.fullWatchPath}),this.globSymlink?E.fullPath.replace(this.globSymlink.realPath,this.globSymlink.linkPath):E.fullPath}entryPath(E){return u.join(this.watchPath,u.relative(this.watchPath,this.checkGlobSymlink(E)))}filterPath(E){const{stats:F}=E;if(F&&F.isSymbolicLink())return this.filterDir(E);const Z=this.entryPath(E);return(this.hasGlob&&typeof this.globFilter===he?this.globFilter(Z):!0)&&this.fsw._isntIgnored(Z,F)&&this.fsw._hasReadPermissions(F)}getDirParts(E){if(!this.hasGlob)return[];const F=[];return(E.includes(z)?D.expand(E):[E]).forEach(X=>{F.push(u.relative(this.watchPath,X).split(m))}),F}filterDir(E){if(this.hasGlob){const F=this.getDirParts(this.checkGlobSymlink(E));let Z=!1;this.unmatchedGlob=!this.dirParts.some(X=>X.every((ce,ie)=>(ce===De&&(Z=!0),Z||!F[0][ie]||r(ce,F[0][ie],le))))}return!this.unmatchedGlob&&this.fsw._isntIgnored(this.entryPath(E),E.stats)}}class ne extends e{static{i(this,"FSWatcher")}constructor(E){super();const F={};E&&Object.assign(F,E),this._watched=new Map,this._closers=new Map,this._ignoredPaths=new Set,this._throttled=new Map,this._symlinkPaths=new Map,this._streams=new Set,this.closed=!1,ee(F,"persistent")&&(F.persistent=!0),ee(F,"ignoreInitial")&&(F.ignoreInitial=!1),ee(F,"ignorePermissionErrors")&&(F.ignorePermissionErrors=!1),ee(F,"interval")&&(F.interval=100),ee(F,"binaryInterval")&&(F.binaryInterval=300),ee(F,"disableGlobbing")&&(F.disableGlobbing=!1),F.enableBinaryInterval=F.binaryInterval!==F.interval,ee(F,"useFsEvents")&&(F.useFsEvents=!F.usePolling),C.canUse()||(F.useFsEvents=!1),ee(F,"usePolling")&&!F.useFsEvents&&(F.usePolling=c),v&&(F.usePolling=!0);const X=process.env.CHOKIDAR_USEPOLLING;if(X!==void 0){const oe=X.toLowerCase();oe==="false"||oe==="0"?F.usePolling=!1:oe==="true"||oe==="1"?F.usePolling=!0:F.usePolling=!!oe}const ce=process.env.CHOKIDAR_INTERVAL;ce&&(F.interval=Number.parseInt(ce,10)),ee(F,"atomic")&&(F.atomic=!F.usePolling&&!F.useFsEvents),F.atomic&&(this._pendingUnlinks=new Map),ee(F,"followSymlinks")&&(F.followSymlinks=!0),ee(F,"awaitWriteFinish")&&(F.awaitWriteFinish=!1),F.awaitWriteFinish===!0&&(F.awaitWriteFinish={});const ie=F.awaitWriteFinish;ie&&(ie.stabilityThreshold||(ie.stabilityThreshold=2e3),ie.pollInterval||(ie.pollInterval=100),this._pendingWrites=new Map),F.ignored&&(F.ignored=b(F.ignored));let se=0;this._emitReady=()=>{se++,se>=this._readyCount&&(this._emitReady=T,this._readyEmitted=!0,process.nextTick(()=>this.emit(P)))},this._emitRaw=(...oe)=>this.emit(p,...oe),this._readyEmitted=!1,this.options=F,F.useFsEvents?this._fsEventsHandler=new C(this):this._nodeFsHandler=new f(this),Object.freeze(F)}add(E,F,Z){const{cwd:X,disableGlobbing:ce}=this.options;this.closed=!1;let ie=M(E);return X&&(ie=ie.map(se=>{const oe=H(se,X);return ce||!a(se)?oe:l(oe)})),ie=ie.filter(se=>se.startsWith(Y)?(this._ignoredPaths.add(se.slice(1)),!1):(this._ignoredPaths.delete(se),this._ignoredPaths.delete(se+de),this._userIgnored=void 0,!0)),this.options.useFsEvents&&this._fsEventsHandler?(this._readyCount||(this._readyCount=ie.length),this.options.persistent&&(this._readyCount+=ie.length),ie.forEach(se=>this._fsEventsHandler._addToFsEvents(se))):(this._readyCount||(this._readyCount=0),this._readyCount+=ie.length,Promise.all(ie.map(async se=>{const oe=await this._nodeFsHandler._addToNodeFs(se,!Z,0,0,F);return oe&&this._emitReady(),oe})).then(se=>{this.closed||se.filter(oe=>oe).forEach(oe=>{this.add(u.dirname(oe),u.basename(F||oe))})})),this}unwatch(E){if(this.closed)return this;const F=M(E),{cwd:Z}=this.options;return F.forEach(X=>{!u.isAbsolute(X)&&!this._closers.has(X)&&(Z&&(X=u.join(Z,X)),X=u.resolve(X)),this._closePath(X),this._ignoredPaths.add(X),this._watched.has(X)&&this._ignoredPaths.add(X+de),this._userIgnored=void 0}),this}close(){if(this.closed)return this._closePromise;this.closed=!0,this.removeAllListeners();const E=[];return this._closers.forEach(F=>F.forEach(Z=>{const X=Z();X instanceof Promise&&E.push(X)})),this._streams.forEach(F=>F.destroy()),this._userIgnored=void 0,this._readyCount=0,this._readyEmitted=!1,this._watched.forEach(F=>F.dispose()),["closers","watched","streams","symlinkPaths","throttled"].forEach(F=>{this[`_${F}`].clear()}),this._closePromise=E.length?Promise.all(E).then(()=>{}):Promise.resolve(),this._closePromise}getWatched(){const E={};return this._watched.forEach((F,Z)=>{const X=this.options.cwd?u.relative(this.options.cwd,Z):Z;E[X||J]=F.getChildren().sort()}),E}emitWithAll(E,F){this.emit(...F),E!==B&&this.emit(h,...F)}async _emit(E,F,Z,X,ce){if(this.closed)return;const ie=this.options;d&&(F=u.normalize(F)),ie.cwd&&(F=u.relative(ie.cwd,F));const se=[E,F];ce!==void 0?se.push(Z,X,ce):X!==void 0?se.push(Z,X):Z!==void 0&&se.push(Z);const oe=ie.awaitWriteFinish;let me;if(oe&&(me=this._pendingWrites.get(F)))return me.lastChange=new Date,this;if(ie.atomic){if(E===_)return this._pendingUnlinks.set(F,se),setTimeout(()=>{this._pendingUnlinks.forEach((pe,Fe)=>{this.emit(...pe),this.emit(h,...pe),this._pendingUnlinks.delete(Fe)})},typeof ie.atomic=="number"?ie.atomic:100),this;E===$&&this._pendingUnlinks.has(F)&&(E=se[0]=U,this._pendingUnlinks.delete(F))}if(oe&&(E===$||E===U)&&this._readyEmitted){const pe=i((Fe,_e)=>{Fe?(E=se[0]=B,se[1]=Fe,this.emitWithAll(E,se)):_e&&(se.length>2?se[2]=_e:se.push(_e),this.emitWithAll(E,se))},"awfEmit");return this._awaitWriteFinish(F,oe.stabilityThreshold,E,pe),this}if(E===U&&!this._throttle(U,F,50))return this;if(ie.alwaysStat&&Z===void 0&&(E===$||E===A||E===U)){const pe=ie.cwd?u.join(ie.cwd,F):F;let Fe;try{Fe=await x(pe)}catch{}if(!Fe||this.closed)return;se.push(Fe)}return this.emitWithAll(E,se),this}_handleError(E){const F=E&&E.code;return E&&F!=="ENOENT"&&F!=="ENOTDIR"&&(!this.options.ignorePermissionErrors||F!=="EPERM"&&F!=="EACCES")&&this.emit(B,E),E||this.closed}_throttle(E,F,Z){this._throttled.has(E)||this._throttled.set(E,new Map);const X=this._throttled.get(E),ce=X.get(F);if(ce)return ce.count++,!1;let ie;const se=i(()=>{const me=X.get(F),pe=me?me.count:0;return X.delete(F),clearTimeout(ie),me&&clearTimeout(me.timeoutObject),pe},"clear");ie=setTimeout(se,Z);const oe={timeoutObject:ie,clear:se,count:0};return X.set(F,oe),oe}_incrReadyCount(){return this._readyCount++}_awaitWriteFinish(E,F,Z,X){let ce,ie=E;this.options.cwd&&!u.isAbsolute(E)&&(ie=u.join(this.options.cwd,E));const se=new Date,oe=i(me=>{t.stat(ie,(pe,Fe)=>{if(pe||!this._pendingWrites.has(E)){pe&&pe.code!=="ENOENT"&&X(pe);return}const _e=Number(new Date);me&&Fe.size!==me.size&&(this._pendingWrites.get(E).lastChange=_e);const ar=this._pendingWrites.get(E);_e-ar.lastChange>=F?(this._pendingWrites.delete(E),X(void 0,Fe)):ce=setTimeout(oe,this.options.awaitWriteFinish.pollInterval,Fe)})},"awaitWriteFinish");this._pendingWrites.has(E)||(this._pendingWrites.set(E,{lastChange:se,cancelWait:i(()=>(this._pendingWrites.delete(E),clearTimeout(ce),Z),"cancelWait")}),ce=setTimeout(oe,this.options.awaitWriteFinish.pollInterval))}_getGlobIgnored(){return[...this._ignoredPaths.values()]}_isIgnored(E,F){if(this.options.atomic&&S.test(E))return!0;if(!this._userIgnored){const{cwd:Z}=this.options,X=this.options.ignored,ce=X&&X.map(V(Z)),ie=b(ce).filter(oe=>typeof oe===R&&!a(oe)).map(oe=>oe+de),se=this._getGlobIgnored().map(V(Z)).concat(ce,ie);this._userIgnored=r(se,void 0,le)}return this._userIgnored([E,F])}_isntIgnored(E,F){return!this._isIgnored(E,F)}_getWatchHelpers(E,F){const Z=F||this.options.disableGlobbing||!a(E)?E:o(E),X=this.options.followSymlinks;return new j(E,Z,X,this)}_getWatchedDir(E){this._boundRemove||(this._boundRemove=this._remove.bind(this));const F=u.resolve(E);return this._watched.has(F)||this._watched.set(F,new Ee(F,this._boundRemove)),this._watched.get(F)}_hasReadPermissions(E){if(this.options.ignorePermissionErrors)return!0;const Z=(E&&Number.parseInt(E.mode,10))&511;return!!(4&Number.parseInt(Z.toString(8)[0],10))}_remove(E,F,Z){const X=u.join(E,F),ce=u.resolve(X);if(Z=Z??(this._watched.has(X)||this._watched.has(ce)),!this._throttle("remove",X,100))return;!Z&&!this.options.useFsEvents&&this._watched.size===1&&this.add(E,F,!0),this._getWatchedDir(X).getChildren().forEach(_e=>this._remove(X,_e));const oe=this._getWatchedDir(E),me=oe.has(F);oe.remove(F),this._symlinkPaths.has(ce)&&this._symlinkPaths.delete(ce);let pe=X;if(this.options.cwd&&(pe=u.relative(this.options.cwd,X)),this.options.awaitWriteFinish&&this._pendingWrites.has(pe)&&this._pendingWrites.get(pe).cancelWait()===$)return;this._watched.delete(X),this._watched.delete(ce);const Fe=Z?W:_;me&&!this._isIgnored(X)&&this._emit(Fe,X),this.options.useFsEvents||this._closePath(X)}_closePath(E){this._closeFile(E);const F=u.dirname(E);this._getWatchedDir(F).remove(u.basename(E))}_closeFile(E){const F=this._closers.get(E);F&&(F.forEach(Z=>Z()),this._closers.delete(E))}_addPathCloser(E,F){if(!F)return;let Z=this._closers.get(E);Z||(Z=[],this._closers.set(E,Z)),Z.push(F)}_readdirp(E,F){if(this.closed)return;const Z={type:h,alwaysStat:!0,lstat:!0,...F};let X=s(E,Z);return this._streams.add(X),X.once(w,()=>{X=void 0}),X.once(I,()=>{X&&(this._streams.delete(X),X=void 0)}),X}}Me.FSWatcher=ne;const fe=i((re,E)=>{const F=new ne(E);return F.add(re),F},"watch");return Me.watch=fe,Me}i(Ss,"requireChokidar");var Mt=Ss(),xs=_t(),rr=jt(xs);const qe=i((e=!0)=>{let t=!1;return u=>{if(t||u==="unknown-flag")return!0;if(u==="argument")return t=!0,e}},"ignoreAfterArgument"),nr=i((e,t=process.argv.slice(2))=>(Ut(e,t,{ignore:qe()}),t),"removeArgvFlags"),Ts=i(e=>{let t=Buffer.alloc(0);return u=>{for(t=Buffer.concat([t,u]);t.length>4;){const n=t.readInt32BE(0);if(t.length>=4+n){const s=t.slice(4,4+n);e(s),t=t.slice(4+n)}else break}}},"bufferData"),sr=i(async()=>{const e=br.createServer(u=>{u.on("data",Ts(n=>{const s=JSON.parse(n.toString());e.emit("data",s)}))}),t=_r(process.pid);return await Oe.promises.mkdir(Cr,{recursive:!0}),await Oe.promises.rm(t,{force:!0}),await new Promise((u,n)=>{e.listen(t,u),e.on("error",n)}),e.unref(),process.on("exit",()=>{if(e.close(),!Ar)try{Oe.rmSync(t)}catch{}}),e},"createIpcServer"),$s=i(()=>new Date().toLocaleTimeString(),"currentTime"),xe=i((...e)=>console.log(yr($s()),wr("[tsx]"),...e),"log"),Os="\x1Bc",Ps=i((e,t)=>{let u;return function(){u&&clearTimeout(u),u=setTimeout(()=>Reflect.apply(e,this,arguments),t)}},"debounce"),ir={noCache:{type:Boolean,description:"Disable caching",default:!1},tsconfig:{type:String,description:"Custom tsconfig.json path"},clearScreen:{type:Boolean,description:"Clearing the screen on rerun",default:!0},ignore:{type:[String],description:"Paths & globs to exclude from being watched (Deprecated: use --exclude)"},include:{type:[String],description:"Additional paths & globs to watch"},exclude:{type:[String],description:"Paths & globs to exclude from being watched"}},Ns=zn({name:"watch",parameters:["