@stacksjs/stx-vscode 0.2.573 → 0.2.575
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -71,6 +71,7 @@ declare module 'stx' {
|
|
|
71
71
|
export const setResponseHeader: (name: string, value: string) => void // <script server> only
|
|
72
72
|
export const setResponseStatus: (status: number) => void // <script server> only
|
|
73
73
|
export const setRouteParams: typeof globalThis.setRouteParams
|
|
74
|
+
export const sharedRequest: typeof globalThis.sharedRequest
|
|
74
75
|
export const state: typeof globalThis.state
|
|
75
76
|
export const untrack: typeof globalThis.untrack
|
|
76
77
|
export const useAsync: typeof globalThis.useAsync
|
|
@@ -113,6 +114,7 @@ declare module 'stx' {
|
|
|
113
114
|
export const useServerRuntimeConfig: () => Readonly<{ public: Record<string, any>, private: Record<string, any> }> // <script server> only
|
|
114
115
|
export const useSessionStorage: typeof globalThis.useSessionStorage
|
|
115
116
|
export const keptState: typeof globalThis.keptState
|
|
117
|
+
export const memo: typeof globalThis.memo
|
|
116
118
|
export const forgetKeptState: typeof globalThis.forgetKeptState
|
|
117
119
|
export const setKeptScope: typeof globalThis.setKeptScope
|
|
118
120
|
export const flushKeptState: typeof globalThis.flushKeptState
|
|
@@ -68,9 +68,18 @@ type StxCleanup = () => void
|
|
|
68
68
|
// ============================================================================
|
|
69
69
|
|
|
70
70
|
declare function state<T>(_initial: T): StxSignal<T>
|
|
71
|
-
|
|
71
|
+
/**
|
|
72
|
+
* A computed value. With `equals`, a change upstream recomputes it at once
|
|
73
|
+
* (while anything reads it) and reaches its readers only when
|
|
74
|
+
* `equals(previous, next)` is false; without it, it is lazy and every upstream
|
|
75
|
+
* change reaches them.
|
|
76
|
+
*/
|
|
77
|
+
declare function derived<T>(_compute: () => T, _options?: { equals?: (_previous: T, _next: T) => boolean }): StxDerivedSignal<T>
|
|
78
|
+
/** A derived value that reaches its readers only when it changes (`Object.is`, or `equals`). */
|
|
79
|
+
declare function memo<T>(_compute: () => T, _equals?: (_previous: T, _next: T) => boolean): StxDerivedSignal<T>
|
|
72
80
|
declare function effect(_fn: () => void | StxCleanup): StxCleanup
|
|
73
81
|
declare function batch(_fn: () => void): void
|
|
82
|
+
/** Read a signal without subscribing the running effect to it; anything else is returned as it is. */
|
|
74
83
|
declare function untrack<T>(_value: T | StxSignal<T> | StxDerivedSignal<T>): T
|
|
75
84
|
declare function peek<T>(_fn: () => T): T
|
|
76
85
|
declare function isSignal(value: unknown): value is StxSignal<unknown>
|
|
@@ -536,6 +545,19 @@ interface StxCachedQuery<T> {
|
|
|
536
545
|
/** Data kept per account, shown at once from last time and refreshed behind. Same key, same query. */
|
|
537
546
|
declare function cachedQuery<T = any>(_key: string, _options?: StxCachedQueryOptions<T>): StxCachedQuery<T>
|
|
538
547
|
|
|
548
|
+
/** One request for every caller that wants the same answer: see shared-request.ts. */
|
|
549
|
+
interface StxSharedRequest<K, T> {
|
|
550
|
+
/** Join a request in flight whose key covers `key` (or a waiting fresh rerun), or start one. */
|
|
551
|
+
run: (_key: K, _start: () => Promise<T>) => Promise<T>
|
|
552
|
+
/** Never joins: waits out a request in flight for `key`, then starts once more (one rerun for every caller meanwhile). */
|
|
553
|
+
fresh: (_key: K, _start: () => Promise<T>) => Promise<T>
|
|
554
|
+
/** A checker that stays true until latest() is called again. */
|
|
555
|
+
latest: () => () => boolean
|
|
556
|
+
/** True while a request is out or a fresh rerun is waiting. */
|
|
557
|
+
readonly busy: boolean
|
|
558
|
+
}
|
|
559
|
+
declare function sharedRequest<K = string, T = any>(_options?: { covers?: (_running: K, _wanted: K) => boolean }): StxSharedRequest<K, T>
|
|
560
|
+
|
|
539
561
|
/**
|
|
540
562
|
* Options accepted by the auto-imported `useCookie` global.
|
|
541
563
|
*
|
|
@@ -698,10 +720,36 @@ declare function definePageMeta(_meta: Record<string, unknown>): void
|
|
|
698
720
|
declare function ref<T>(_value: T): StxRef<T>
|
|
699
721
|
declare function reactive<T extends object>(_target: T): T
|
|
700
722
|
declare function computed<T>(_getter: () => T): StxRef<T>
|
|
723
|
+
type StxWatchSource<T> = (() => T) | StxRef<T> | StxSignal<T> | StxDerivedSignal<T>
|
|
724
|
+
interface StxWatchOptions {
|
|
725
|
+
/** Call back at once with the current value (and no previous one). */
|
|
726
|
+
immediate?: boolean
|
|
727
|
+
/** Compare structurally rather than with Object.is (a reactive object source is deep by default). */
|
|
728
|
+
deep?: boolean
|
|
729
|
+
/** When to call back: after the next render ('post', the default), on a microtask ('pre') or inside the change ('sync'). */
|
|
730
|
+
flush?: 'post' | 'pre' | 'sync'
|
|
731
|
+
/** Stop after the first call. */
|
|
732
|
+
once?: boolean
|
|
733
|
+
}
|
|
734
|
+
/**
|
|
735
|
+
* Call back with (next, previous) when the source's value changes - not at
|
|
736
|
+
* creation unless `immediate`. The source is a signal, derived, getter,
|
|
737
|
+
* reactive object, or an array of those. Returns a stop function.
|
|
738
|
+
*/
|
|
739
|
+
declare function watch<const S extends readonly StxWatchSource<unknown>[]>(
|
|
740
|
+
_source: S,
|
|
741
|
+
_callback: (_value: { [K in keyof S]: S[K] extends StxWatchSource<infer V> ? V : never }, _oldValue: { [K in keyof S]: S[K] extends StxWatchSource<infer V> ? V : never } | undefined, _onCleanup: (_fn: () => void) => void) => void,
|
|
742
|
+
_options?: StxWatchOptions,
|
|
743
|
+
): StxCleanup
|
|
701
744
|
declare function watch<T>(
|
|
702
|
-
_source:
|
|
703
|
-
_callback: (
|
|
704
|
-
_options?:
|
|
745
|
+
_source: StxWatchSource<T>,
|
|
746
|
+
_callback: (_value: T, _oldValue: T | undefined, _onCleanup: (_fn: () => void) => void) => void,
|
|
747
|
+
_options?: StxWatchOptions,
|
|
748
|
+
): StxCleanup
|
|
749
|
+
declare function watch<T extends object>(
|
|
750
|
+
_source: T,
|
|
751
|
+
_callback: (_value: T, _oldValue: T | undefined, _onCleanup: (_fn: () => void) => void) => void,
|
|
752
|
+
_options?: StxWatchOptions,
|
|
705
753
|
): StxCleanup
|
|
706
754
|
declare function watchEffect(_fn: () => void): StxCleanup
|
|
707
755
|
declare function watchMultiple(
|
|
@@ -909,6 +957,7 @@ interface StxRuntimeRegistry {
|
|
|
909
957
|
// Signals
|
|
910
958
|
state: typeof state
|
|
911
959
|
derived: typeof derived
|
|
960
|
+
memo: typeof memo
|
|
912
961
|
effect: typeof effect
|
|
913
962
|
batch: typeof batch
|
|
914
963
|
untrack: typeof untrack
|
|
@@ -980,6 +1029,7 @@ interface StxRuntimeRegistry {
|
|
|
980
1029
|
setKeptScope: typeof setKeptScope
|
|
981
1030
|
flushKeptState: typeof flushKeptState
|
|
982
1031
|
cachedQuery: typeof cachedQuery
|
|
1032
|
+
sharedRequest: typeof sharedRequest
|
|
983
1033
|
useEventListener: typeof useEventListener
|
|
984
1034
|
useScrollLock: typeof useScrollLock
|
|
985
1035
|
useWebSocket: typeof useWebSocket
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
var yt=Object.create;var{getPrototypeOf:wt,defineProperty:Ee,getOwnPropertyNames:Et}=Object;var ve=Object.prototype.hasOwnProperty;function vt(e){return this[e]}var _t,$t,
|
|
2
|
-
`)n++;continue}if(
|
|
3
|
-
`)return-1;if(
|
|
1
|
+
var yt=Object.create;var{getPrototypeOf:wt,defineProperty:Ee,getOwnPropertyNames:Et}=Object;var ve=Object.prototype.hasOwnProperty;function vt(e){return this[e]}var _t,$t,V=(e,s,t)=>{var n=e!=null&&typeof e==="object";if(n){var i=s?_t??=new WeakMap:$t??=new WeakMap,o=i.get(e);if(o)return o}t=e!=null?yt(wt(e)):{};let r=s||!e||!e.__esModule||!ve.call(e,"default")?Ee(t,"default",{value:e,enumerable:!0}):t;if(e&&typeof e==="object"||typeof e==="function"){for(let a of Et(e))if(!ve.call(r,a))Ee(r,a,{get:vt.bind(e,a),enumerable:!0})}if(n)i.set(e,r);return r};var lt=require("node:crypto"),j=require("node:fs"),ut=require("node:os"),P=V(require("node:path"));var ae=["browserQuery","BrowserQueryBuilder","BrowserQueryError","browserAuth","configureBrowser","getBrowserConfig","createBrowserDb","createBrowserModel","isBrowser","debounce","throttle","retry","sleep","wait","delay","waitUntil","waitWhile","lazy","clamp","rand","readableSize","useActiveElement","useIntervalFn","useObjectUrl"];var ue=V(require("node:path"),1);function Tt(e,s){let t=e[s],n=s+1;while(n<e.length){if(e[n]==="\\"){n+=2;continue}if(e[n]===t)return n+1;n++}return e.length}function Ct(e,s){let t=s+1;while(t<e.length){if(e[t]==="\\"){t+=2;continue}if(e[t]==="`")return t+1;if(e[t]==="$"&&e[t+1]==="{"){if(t=_e(e,t+2),t<e.length)t++;continue}t++}return e.length}function _e(e,s){let t=1,n=s,i="{",o="";while(n<e.length){let r=e[n];if(r==="\\"){n+=2;continue}if(r==='"'||r==="'"){n=Tt(e,n),i=W,o="";continue}if(r==="`"){n=Ct(e,n),i=W,o="";continue}if(r==="/"&&e[n+1]==="/"){while(n<e.length&&e[n]!==`
|
|
2
|
+
`)n++;continue}if(r==="/"&&e[n+1]==="*"){n+=2;while(n<e.length&&e.slice(n,n+2)!=="*/")n++;n+=2;continue}if(r==="/"&&$e(i,o)){let a=Te(e,n);if(a!==-1){n=a,i=W,o="";continue}}if(r==="{")t++;else if(r==="}"){if(t--,t===0)return n}if(/[\w$]/.test(r))o=/[\w$]/.test(i)?o+r:r,i=r;else if(!/\s/.test(r))i=r,o="";n++}return e.length}var kt=new Set(["return","typeof","instanceof","in","of","new","delete","void","throw","case","do","else","yield","await"]);function $e(e,s){if(s)return kt.has(s);return!(e===")"||e==="]"||e===W)}var W="\x00";function Te(e,s){let t=s+1,n=!1;while(t<e.length){let i=e[t];if(i===`
|
|
3
|
+
`)return-1;if(i==="\\"){t+=2;continue}if(i==="[")n=!0;else if(i==="]")n=!1;else if(i==="/"&&!n){t++;while(t<e.length&&/[a-z]/i.test(e[t]))t++;return t}t++}return-1}function L(e){let s="",t=0,n="",i="";while(t<e.length){let o=e.slice(t,t+2);if(o==="//"){while(t<e.length&&e[t]!==`
|
|
4
4
|
`)s+=" ",t++;continue}if(o==="/*"){while(t<e.length&&e.slice(t,t+2)!=="*/")s+=e[t]===`
|
|
5
5
|
`?`
|
|
6
|
-
`:" ",t++;s+=" ",t+=2;continue}let
|
|
6
|
+
`:" ",t++;s+=" ",t+=2;continue}let r=e[t];if(r==='"'||r==="'"){let a=r;s+=" ",t++;while(t<e.length&&e[t]!==a){if(e[t]==="\\"){s+=" ",t+=2;continue}s+=e[t]===`
|
|
7
7
|
`?`
|
|
8
|
-
`:" ",t++}s+=" ",t++,n=
|
|
8
|
+
`:" ",t++}s+=" ",t++,n=W,i="";continue}if(r==="/"&&$e(n,i)){let a=Te(e,t);if(a!==-1){s+=`/${" ".repeat(a-t-2)}/`,t=a,n=W,i="";continue}}if(r==="`"){s+=" ",t++;while(t<e.length&&e[t]!=="`"){if(e[t]==="\\"){s+=" ",t+=2;continue}if(e[t]==="$"&&e[t+1]==="{"){let a=t+2,c=_e(e,a);if(s+=" ",s+=L(e.slice(a,c)),c<e.length)s+=" ";t=c+1;continue}s+=e[t]===`
|
|
9
9
|
`?`
|
|
10
|
-
`:" ",t++}s+=" ",t++,n=
|
|
10
|
+
`:" ",t++}s+=" ",t++,n=W,i="";continue}if(s+=r,t++,/[\w$]/.test(r))i=/[\w$]/.test(n)?i+r:r,n=r;else if(!/\s/.test(r))n=r,i=""}return s}function Q(e){let s=new Uint16Array(e.length),t=0,n=!0;for(let i=0;i<e.length;i++){let o=e[i];if(o===")"||o==="]"||o==="}")if(t===0)n=!1;else t--;if(s[i]=t,o==="("||o==="["||o==="{")t++}return{depths:s,balanced:n&&t===0}}function Ce(e){let s=e.indexOf(" as ");if(s!==-1){let o=e.slice(0,s).trim(),r=e.slice(s+4).trim();return o&&r?{arrayExpr:o,itemVar:r}:null}let t=/^\s*(.+?)\s+in\s+([\s\S]+)$/.exec(e);if(!t)return null;let n=t[1].trim().replace(/^\(([\s\S]*)\)$/,"$1").trim(),i=t[2].trim();return n&&i?{arrayExpr:i,itemVar:n}:null}var G=["batch","cachedQuery","clearServerData","computed","configureFetch","defineEmits","defineExpose","definePageMeta","defineProps","defineSlots","defineStore","derived","effect","flushKeptState","forgetKeptState","goBack","goForward","inject","invalidateRoute","isDerived","isSignal","keptState","memo","navigate","nextTick","onBeforeMount","onBeforeUnmount","onDestroy","onMount","onMounted","onUnmounted","peek","provide","reactive","ref","refDebounced","refresh","registerStoresClient","setKeptScope","setRouteParams","sharedRequest","state","untrack","useAsync","useClickOutside","useColorMode","useCookie","useCounter","useDark","useDebounce","useDebounceFn","useDebouncedValue","useDocumentVisibility","useEventListener","useFetch","useFocus","useHead","useId","useInterval","useLocalStorage","useMediaQuery","useModel","useMutation","useOptimistic","usePreferredContrast","usePreferredDark","usePreferredLight","usePreferredReducedMotion","useQuery","useReactiveProp","useRef","useRoute","useRouteParam","useRouteParams","useScrollLock","useSearchParams","useSeoMeta","useSessionStorage","useSlots","useStore","useThrottle","useThrottleFn","useTimeout","useTimeoutFn","useToggle","useWebSocket","watch","watchEffect","watchMultiple","withDefaults"];var At=["defineEmits","defineExpose","definePageMeta","defineProps","defineSlots","withDefaults"];var Cn=G.filter((e)=>!At.includes(e));var Rt=["x-text","x-html","x-model","x-show","x-if","x-for","x-cloak","x-ref","x-data","x-bind","x-class","x-style","x-tooltip","x-tooltip-position"],Dt=["x-init","x-transition","x-effect","x-on"],kn=[...Rt,...Dt];var J=V(require("node:fs"),1),K=V(require("node:path"),1);function ke(e,s,t,n){let i=0;for(let o=s;o<e.length;o++)if(e[o]===t)i++;else if(e[o]===n&&!(n===">"&&e[o-1]==="=")){if(--i===0)return o}return-1}function Pt(e){let s=L(e),t=0,n=0,i=[];for(let o=0;o<s.length;o++)if("([{".includes(s[o]))t++;else if(")]}".includes(s[o]))t--;else if(s[o]===","&&t===0)i.push(e.slice(n,o).trim()),n=o+1;return i.push(e.slice(n).trim()),i}function ce(e,s){let t=L(e),n=new RegExp(`\\b(?:${s.map((i)=>i.replace(/[$]/g,"\\$&")).join("|")})\\s*(?=[<(])`,"g");for(let i of t.matchAll(n)){let o=i.index+i[0].length,r="";if(t[o]==="<"){let c=ke(t,o,"<",">");if(c<0)continue;r=e.slice(o+1,c),o=c+1;while(/\s/.test(t[o]||"")&&o<t.length)o++}if(t[o]!=="(")continue;let a=ke(t,o,"(",")");if(a>=0)return{type:r,args:Pt(e.slice(o+1,a))}}return null}var Ae=`
|
|
11
11
|
type __StxCtor<T> = T extends StringConstructor ? string : T extends NumberConstructor ? number : T extends BooleanConstructor ? boolean : T extends ArrayConstructor ? unknown[] : T extends ObjectConstructor ? object : T extends readonly unknown[] ? __StxCtor<T[number]> : T extends abstract new (...args: any[]) => infer V ? V : unknown;
|
|
12
12
|
type __StxWiden<T> = T extends string ? string : T extends number ? number : T extends boolean ? boolean : T;
|
|
13
13
|
type __StxOption<T> = T extends { type: infer C } ? __StxCtor<C> : T extends { default: infer D } ? D extends (...args: any[]) => infer V ? V : __StxWiden<D> : __StxCtor<T>;
|
|
@@ -15,28 +15,28 @@ type __StxRequired<O> = { [K in keyof O]-?: O[K] extends { required: true } ? K
|
|
|
15
15
|
type __StxDefaulted<O> = { [K in keyof O]-?: O[K] extends { default: unknown } ? K : never }[keyof O];
|
|
16
16
|
type __StxOptions<O> = { [K in Exclude<__StxRequired<O>, __StxDefaulted<O>>]: __StxOption<O[K]> } & { [K in Exclude<keyof O, Exclude<__StxRequired<O>, __StxDefaulted<O>>>]?: __StxOption<O[K]> };
|
|
17
17
|
type __StxDefaults<P, K> = Omit<P, Extract<keyof P, K>> & Partial<Pick<P, Extract<keyof P, K>>>;
|
|
18
|
-
`;function Re(e,s){let t=[],n={defineProps:["defineProps"],defineEmits:["defineEmits"],withDefaults:["withDefaults"]},
|
|
19
|
-
`)}),
|
|
18
|
+
`;function Re(e,s){let t=[],n={defineProps:["defineProps"],defineEmits:["defineEmits"],withDefaults:["withDefaults"]},i=L(e),o=e.replace(/\bimport\s+(?:type\s+)?(\{[^}]*\}|\*\s+as\s+[\w$]+|[\w$]+)\s+from\s*(['"])([^'"]+)\2\s*;?/g,(g,S,y,b,w)=>{if(i.slice(w,w+6)!=="import")return g;if(b.endsWith(".stx"))return"";let v=`${s}Import${t.length}`;if(t.push(`import * as ${v} from ${JSON.stringify(b)};`),S.startsWith("*"))return`import ${S.replace(/^\*\s+as\s+/,"")} = ${v};`;if(!S.startsWith("{"))return`import ${S} = ${v}.default;`;return S.slice(1,-1).split(",").map((T)=>{let[_,C=_]=T.trim().replace(/^type\s+/,"").split(/\s+as\s+/);if(!_)return"";if(/^(?:stx|@stacksjs\/stx)(?:\/|$)/.test(b)&&_ in n)n[_].push(C);return`import ${C} = ${v}.${_};`}).join(`
|
|
19
|
+
`)}),r=ce(e,n.defineProps),a=ce(e,n.defineEmits),c=ce(e,n.withDefaults);if(!r&&!a)return{declarations:"",props:null,events:null};let u=[],p=null,m=null;if(r){u.push(`const __options = (${r.args[0]||"{}"}) as const;`),u.push(`const __defaults = (${c?.args[1]||"{}"});`);let g=r.type||"__StxOptions<typeof __options>";u.push(`export type __StxProps = __StxDefaults<${g}, keyof typeof __defaults | __StxDefaulted<typeof __options>>;`),p=`${s}.__StxProps`}if(a)u.push(`const __events = (${a.args[0]||"[]"}) as const;`),u.push(`export type __StxEvents = ${a.type||"Record<(typeof __events)[number], any[]>"};`),m=`${s}.__StxEvents`;return{declarations:`${t.join(`
|
|
20
20
|
`)}
|
|
21
21
|
namespace ${s} {
|
|
22
22
|
${o}
|
|
23
23
|
${u.join(`
|
|
24
24
|
`)}
|
|
25
|
-
}`,props:p,events:m}}var X=
|
|
25
|
+
}`,props:p,events:m}}var X=V(require("node:fs"),1),A=V(require("node:path"),1);function Pe(e){return e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").replace(/([A-Z]+)([A-Z][a-z])/g,"$1-$2").toLowerCase()}var De=new Map;function Ie(e,s=!0){let t=De.get(e);if(s&&t)return t;let n=new Map,i=[A.default.join(e,"src"),A.default.join(e,"dist"),e];function o(r,a){if(a>6)return;let c;try{c=X.default.readdirSync(r,{withFileTypes:!0})}catch{return}for(let u of c){let p=A.default.join(r,u.name);if(u.isDirectory()){if(u.name==="node_modules"||u.name.startsWith("."))continue;o(p,a+1)}else if(u.isFile()&&u.name.endsWith(".stx")){let m=u.name.slice(0,-4);if(!n.has(m))n.set(m,p);let g=m.toLowerCase();if(!n.has(g))n.set(g,p);let S=Pe(m);if(!n.has(S))n.set(S,p)}}}for(let r of i)if(o(r,0),n.size>0)break;if(s)De.set(e,n);return n}function Le(e,s){if(e.startsWith(".")||e.startsWith("/"))return null;let t=s;while(!0){let n=A.default.join(t,"node_modules",e);try{if(X.default.statSync(n).isDirectory())return n}catch{}let i=A.default.dirname(t);if(i===t)return null;t=i}}function Oe(e,s,t={}){return[A.default.resolve(A.default.dirname(s),`${e}.stx`),A.default.resolve(A.default.dirname(s),e),A.default.resolve(t.componentsDir||"components",`${e}.stx`),A.default.resolve(t.componentsDir||"components",e),e.endsWith(".stx")?e:`${e}.stx`]}function Me(e){let s=e.endsWith(".stx")?e.slice(0,-4):e,t=s.split("-").map((i)=>i.charAt(0).toUpperCase()+i.slice(1)).join(""),n=Pe(s);return[s,t,n]}function It(e,s){let[t,n,i]=Me(e);for(let o of[t,t.toLowerCase(),n,i]){let r=s?.__importedComponents?.get(o);if(r!==void 0)return r}}function*Lt(e,s,t={},n){let i=Me(e);if(i[0].startsWith("./")||i[0].startsWith("../")){yield A.default.resolve(A.default.dirname(s),`${i[0]}.stx`);return}let o=[...new Set(i.map((c)=>`${c}.stx`))],r=t.projectRoot||process.cwd(),a=[...n?.__originalFilePath?[A.default.join(A.default.dirname(n.__originalFilePath),"components")]:[],...t.componentsDir?[t.componentsDir]:[],A.default.join(A.default.dirname(s),"components"),A.default.resolve(r,"src/components"),A.default.resolve(r,"components"),A.default.resolve("/home/runner/work/stx/stx/packages/stx/src","components")];for(let c of new Set(a)){for(let u of o)yield A.default.join(c,u);try{for(let u of X.default.readdirSync(c,{withFileTypes:!0}))if(u.isDirectory())for(let p of o)yield A.default.join(c,u.name,p)}catch{}}}function Ne(e,s,t={},n){let i=It(e,n);if(i!==void 0)return i;for(let o of Lt(e,s,t,n))try{if(X.default.statSync(o,{throwIfNoEntry:!1})?.isFile())return o}catch{}return null}var je=new Set(["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","component","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","label","legend","li","link","main","map","mark","menu","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rp","rt","ruby","s","samp","script","section","select","slot","small","source","span","strong","style","sub","summary","sup","svg","table","tbody","td","template","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr","path","circle","rect","line","polygon","polyline","ellipse","text","tspan","textPath","g","defs","use","symbol","image","clipPath","mask","pattern","marker","linearGradient","radialGradient","stop","filter","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDropShadow","feFlood","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","feSpecularLighting","feTile","feTurbulence","foreignObject","animate","animateMotion","animateTransform","set","mpath","desc","metadata","switch","view"]);function Be(e){if(e.includes("-")||e==="component")return!1;if(/^[A-Z]/.test(e))return!/[a-z]/.test(e)&&[...je].some((s)=>s.toLowerCase()===e.toLowerCase());return je.has(e)||/[A-Z]/.test(e)}function*Ot(e){let s=/<([A-Za-z][\w.-]*)(?=[\s/>])/g,t;while(t=s.exec(e)){let n=s.lastIndex,i=[];while(n<e.length){while(/\s/.test(e[n]||""))n++;if(e[n]===">"||e.slice(n,n+2)==="/>"){n+=e[n]===">"?1:2;break}let o=/^[^\s=/>]+/.exec(e.slice(n))?.[0];if(!o){n++;continue}let r=n;n+=o.length;while(/\s/.test(e[n]||""))n++;if(e[n]!=="="){i.push({name:o,value:!0,offset:r,braced:!1});continue}n++;while(/\s/.test(e[n]||""))n++;let a=e[n],c=a==="{",u=a==='"'||a==="'";if(u||c)n++;let p=n;if(c){let m=L(e.slice(n)),g=1,S=0;for(;S<m.length;S++){if(m[S]==="{")g++;if(m[S]==="}"&&--g===0)break}n+=S}else if(u)while(n<e.length&&e[n]!==a)n++;else while(n<e.length&&!/[\s/>]/.test(e[n]))n++;if(i.push({name:o,value:e.slice(p,n),offset:p,braced:c}),u||c)n++}s.lastIndex=n,yield{name:t[1],offset:t.index,attributes:i}}}function Fe(e,s,t){let n=[],i=[Ae,"type __StxAssignedValue<T> = T extends { readonly _isSignal: true } | { readonly _isDerived: true } ? T extends () => infer V ? V : T : T;","type __StxProp<P, K> = K extends keyof P ? P[K] : unknown;",'type __StxEvent<E, K> = K extends keyof E ? E[K] extends readonly unknown[] ? Exclude<E[K]["length"], 0 | 1> extends never ? E[K][0] : E[K] : E[K] : any;'],o=new Map,r=new Map,a=new Map,c=t.scriptCode(e,t.filePath),u=L(c);for(let y of c.matchAll(/\bimport\s+(\{[^}]+\}|[\w$]+)\s+from\s*['"]([^'"]+)['"]/g)){if(u.slice(y.index,y.index+6)!=="import")continue;let b=y[2],w=K.default.isAbsolute(b)||b.startsWith(".")?K.default.resolve(K.default.dirname(t.filePath),b):Le(b,K.default.dirname(t.filePath));if(!w)continue;let v=w.endsWith(".stx")?w:J.default.existsSync(`${w}.stx`)?`${w}.stx`:void 0,T=v?null:Ie(w,!1),_=y[1].startsWith("{")?y[1].slice(1,-1).split(","):[y[1]];for(let C of _){let[I,k=I]=C.trim().split(/\s+as\s+/),O=v||T?.get(I)||T?.get(I.toLowerCase());if(O)a.set(k,O),a.set(k.toLowerCase(),O),a.set(k.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),O)}}for(let y of s.matchAll(/@import\s*\(([^)]+)\)/g))for(let b of y[1].matchAll(/['"]([^'"]+)['"]/g)){let w=Oe(b[1],t.filePath,t).find((v)=>J.default.statSync(v,{throwIfNoEntry:!1})?.isFile());if(w)a.set(K.default.basename(b[1]).replace(/\.stx$/,""),w)}let p={__importedComponents:a},m=new Map,g=(y,b,w)=>{let v=e.slice(0,y);return{code:b,offset:y,attribute:w,anchor:!0,kind:"directive",line:v.split(`
|
|
26
26
|
`).length,column:y-v.lastIndexOf(`
|
|
27
|
-
`)}},S=(y,b,w)=>n.push({expression:y,statement:{text:b+y.code+w,prefixLength:b.length}});for(let y of Ot(s)){if(Be(y.name)||y.name==="component")continue;let b=
|
|
28
|
-
`):"",checks:n,events:o,dependencies:
|
|
29
|
-
`,s-1)+1;return s-t+1}function ne(e){let s=e.split(""),t=(
|
|
30
|
-
`)s[
|
|
27
|
+
`)}},S=(y,b,w)=>n.push({expression:y,statement:{text:b+y.code+w,prefixLength:b.length}});for(let y of Ot(s)){if(Be(y.name)||y.name==="component")continue;let b=Ne(y.name,t.filePath,t,p);if(!b)continue;let w=m.get(b);if(!w){let T;try{T=t.readComponent?t.readComponent(b):J.default.readFileSync(b,"utf8")}catch{continue}if(T===void 0)continue;r.set(b,T),w=Re(t.scriptCode(T,b),`__StxComponent${m.size}`),m.set(b,w),i.push(w.declarations)}let v=[];for(let T of y.attributes){let{name:_,offset:C}=T,I=T.value===!0?"true":T.value;if(_.startsWith("@")||_.startsWith("v-on:")){if(w.events&&T.value!==!0)o.set(C,`__StxEvent<${w.events}, ${JSON.stringify(_.replace(/^@|^v-on:/,"").split(".")[0])}>`);continue}let k=/^v-model(?::([\w-]+))?(?:\.[\w-]+)*$/.exec(_);if(_.startsWith("v-")&&!_.startsWith("v-bind:")&&!k)continue;if(/^(?:x-|:)(?:if|for|show|key|else)(?:$|[.:-])/.test(_))continue;let O=(k?k[1]||"modelValue":_.replace(/^:|^v-bind:/,"")).replace(/-([a-z])/g,(N,H)=>H.toUpperCase());if(v.push(O),!w.props)continue;let M=_.startsWith(":")||_.startsWith("v-bind:")||!!k||T.braced?I:T.value!==!0?JSON.stringify(I):"true";S(g(C,M,_),";void ((",`) satisfies __StxProp<${w.props}, ${JSON.stringify(O)}>);`)}if(w.props){let T=[...new Set(v)].map((C)=>`${JSON.stringify(C)}: undefined as any`).join(", "),_=g(y.offset,`<${y.name}>`);n.push({expression:_,statement:{text:`;void ({ ${T} } satisfies ${w.props} & Record<string, unknown>);`,prefixLength:0}})}}return{declarations:m.size?i.join(`
|
|
28
|
+
`):"",checks:n,events:o,dependencies:r}}var Ve=/<script(\s[^>]*)?>([\s\S]*?)<\/script>/gi;function Mt(e){let s=(t)=>t.replace(/[^\n]/g," ");return e.replace(/<!--[\s\S]*?-->/g,s).replace(/\{\{--[\s\S]*?--\}\}/g,s)}function te(e){let s=[],t=Mt(e);Ve.lastIndex=0;let n;while((n=Ve.exec(t))!==null){let i=(n[1]||"").trim(),o=(n[0].match(/^<script(?:\s[^>]*)?>/i)?.[0]??"<script>").length,r=(n[0].match(/<\/script\s*>$/i)?.[0]??"</script>").length,a=n.index+o,c=n.index+n[0].length-r,u=e.slice(a,c);if(/\bsrc\s*=/.test(i))continue;let p=i.match(/\btype\s*=\s*["']([^"']+)["']/i);if(p&&!/^(?:module|text\/(?:javascript|typescript))$/i.test(p[1]))continue;let m=/\bserver\b/.test(i)?"server":/\bclient\b/.test(i)?"client":"plain",g=Z(e,a);s.push({kind:m,code:u,startLine:g,startColumn:U(e,a),offset:a,attrs:i})}return s}function Z(e,s){let t=1;for(let n=0;n<s&&n<e.length;n++)if(e.charCodeAt(n)===10)t++;return t}function U(e,s){let t=e.lastIndexOf(`
|
|
29
|
+
`,s-1)+1;return s-t+1}function ne(e){let s=e.split(""),t=(i,o)=>{for(let r=i;r<o&&r<s.length;r++)if(s[r]!==`
|
|
30
|
+
`)s[r]=" "},n=[/<script(?:\s[^>]*)?>[\s\S]*?<\/script>/gi,/<style(?:\s[^>]*)?>[\s\S]*?<\/style>/gi,/<!--[\s\S]*?-->/g,/\{\{--[\s\S]*?--\}\}/g,/@verbatim\b[\s\S]*?@endverbatim\b/g];for(let i of n){i.lastIndex=0;let o;while((o=i.exec(e))!==null)t(o.index,o.index+o[0].length)}return s.join("")}function Nt(e){let s=0,t="";for(let n=0;n<e.length;n++){let i=e[n];if(t){if(i==="\\"){n++;continue}if(i===t)t="";continue}if(i==='"'||i==="'"||i==="`"){t=i;continue}if(i==="("||i==="["||i==="{"){s++;continue}if(i===")"||i==="]"||i==="}"){s--;continue}if(i==="|"&&s===0){if(e[n+1]==="|"){n++;continue}if(e[n-1]==="|")continue;return e.slice(0,n)}}return e}var Ze=new Set([":for","x-for","v-for"]),se=/(?:^|\s)((?::|x-|v-|@)[\w.:-]+)\s*=\s*(["'])([\s\S]*?)\2/g,le="__stx_interpolated",We="__StxElement",Ue="__StxTemplateValue",jt=`type ${Ue}<T> = T extends { readonly _isSignal: true } | { readonly _isDerived: true } ? (T extends () => infer V ? T & V : T) : T`;function Ge(e){return e.replace(/\{\{[\s\S]*?\}\}/g,le).replace(/\{!![\s\S]*?!!\}/g,le)}function Bt(e){return e.replace(/\{\{[\s\S]*?\}\}|\{!![\s\S]*?!!\}/g,(s)=>{let t=s.split(`
|
|
31
31
|
`).length-1,n=s.length-t;return`0${" ".repeat(Math.max(0,n-1))}${`
|
|
32
|
-
`.repeat(t)}`})}var Ft=["foreach","endforeach","forelse","endforelse","for","endfor","while","endwhile","empty","if","elseif","else","endif","unless","endunless","isset","endisset","switch","case","default","endswitch","auth","endauth","guest","endguest","env","endenv","once","endonce","break","continue"],
|
|
33
|
-
`),
|
|
34
|
-
`)}):void 0,a=new Set,c=[];for(let m of t){let g=
|
|
35
|
-
`);S.forEach((y,b)=>{let w=m.startLine-1+b;if(w<
|
|
36
|
-
`).entries())if(
|
|
37
|
-
`))u(g);let m=
|
|
38
|
-
`),lineMap:o,sourceLineCount:n.length,componentDependencies:
|
|
32
|
+
`.repeat(t)}`})}var Ft=["foreach","endforeach","forelse","endforelse","for","endfor","while","endwhile","empty","if","elseif","else","endif","unless","endunless","isset","endisset","switch","case","default","endswitch","auth","endauth","guest","endguest","env","endenv","once","endonce","break","continue"],Vt=new RegExp(String.raw`^[ \t]*@(?:${Ft.join("|")})\b[ \t]*(\([^\n)]*\))?[ \t]*$`,"gm");function Wt(e){return e.replace(Vt,(s)=>s.replace(/[^\n]/g," "))}var Ke=new Set(["x-cloak","x-ref","x-transition","x-teleport","v-slot","x-hydrate",":key","x-tooltip","x-tooltip-position"]);function Gt(e){let s=ne(e),t=[],n=/(@?)\{\{([\s\S]*?)\}\}|(@?)\{!!([\s\S]*?)!!\}/g,i;while((i=n.exec(s))!==null){if(i[1]||i[3])continue;let a=i[2]??i[4]??"",c=i[2]!==void 0?2:3,u=Nt(a);if(!u.trim())continue;let p=i.index+c+(u.length-u.trimStart().length);t.push({code:u.trim(),line:Z(s,p),column:U(s,p),offset:p,kind:"interpolation"})}let o=/@(if|elseif|else\s+if|unless)\b\s*\(/g;while((i=o.exec(s))!==null){let r=i.index+i[0].length-1,a=0,c=r;for(;c<s.length;c++){let g=s[c];if(g==="(")a++;else if(g===")"){if(a--,a===0)break}}if(a!==0)continue;let u=s.slice(r+1,c),p=u.trim();if(o.lastIndex=c+1,!p)continue;let m=r+1+(u.length-u.trimStart().length);t.push({code:p,line:Z(s,m),column:U(s,m),offset:i.index,kind:"condition"})}se.lastIndex=0;while((i=se.exec(s))!==null){let r=i[1],a=i[3]??"",c=r.replace(/\..*$/,"").replace(/^([^:].*?):.*$/,"$1");if(Ke.has(c)||Ke.has(r))continue;if(!a.trim())continue;let u=i.index+i[0].indexOf(i[2],i[0].indexOf(r)+r.length)+1;if(Ze.has(c)){let m=a.match(/\s+(?:in|of)\s+/);if(!m||m.index===void 0)continue;let g=a.slice(m.index+m[0].length),S=m.index+m[0].length+(g.length-g.trimStart().length);t.push({code:Ge(g.trim()),line:Z(s,u+S),column:U(s,u+S),offset:u+S,kind:"directive",attribute:c});continue}let p=a.length-a.trimStart().length;t.push({code:Ge(a.trim()),line:Z(s,u+p),column:U(s,u+p),offset:u+p,kind:"directive",attribute:c})}return t.sort((r,a)=>r.line-a.line||r.column-a.column),t}var Kt=2000;function Ht(e,s){let t=0,n=Math.min(e.length,s+Kt);for(let i=s;i<n;i++){let o=e[i];if(o==="(")t++;else if(o===")"){if(t--,t===0)return e.slice(s+1,i)}}return null}function zt(e){let s=new Map,t=(a,c)=>{let u=a.split(/[,[\]{}()\s]+/).filter(Boolean);for(let p of u){let m=p.replace(/^\.\.\./,"").trim();if(!/^\$?[A-Z_$][\w$]*$/i.test(m))continue;let g=u.length===1?c:void 0,S=s.get(m);if(!S)s.set(m,{name:m,iterable:g});else if(S.iterable!==g)S.iterable=void 0}},n=/^\$?[A-Z_$][\w$]*$/i,i=(a)=>{let c=a.trim();return n.test(c)?c:void 0};for(let a of e.matchAll(/@for(?:each|else)\s*\(/g)){let c=Ht(e,a.index+a[0].length-1);if(c===null)continue;let u=Ce(c);if(!u)continue;t(u.itemVar.replace(/=>/g," "),i(u.arrayExpr))}for(let a of e.matchAll(/@for\s*\(\s*(?:(?:let|const|var)\s+)?([\w$]+|\[[^\]]*\]|\{[^}]*\})\s+(of|in)\s+([^)]*)/g))t(a[1],a[2]==="of"?i(a[3]):void 0);for(let a of e.matchAll(/@for\s*\(\s*(?:let|const|var)\s+([\w$]+)\s*[=;]/g))t(a[1]);let o=ne(e);se.lastIndex=0;let r;while((r=se.exec(o))!==null){let a=r[1].replace(/\..*$/,"");if(!Ze.has(a))continue;let c=r[3].match(/\s+(?:in|of)\s+/);if(!c||c.index===void 0)continue;t(r[3].slice(0,c.index),i(r[3].slice(c.index+c[0].length)))}for(let a of e.matchAll(/@(?:php|js|ts)\b([\s\S]*?)@end(?:php|js|ts)\b/g))for(let c of a[1].matchAll(/\b(?:const|let|var|function|class)\s+([\w$]+)/g))t(c[1]);return[...s.values()].sort((a,c)=>a.name.localeCompare(c.name))}function ee(e){let s=new Set;for(let t of e.matchAll(/^\s*(?:export\s+)?(?:const|let|var)\s+([\w$]+)/gm))s.add(t[1]);for(let t of e.matchAll(/^\s*(?:export\s+)?(?:async\s+)?function\s*\*?\s*([\w$]+)/gm))s.add(t[1]);for(let t of e.matchAll(/^\s*(?:export\s+)?class\s+([\w$]+)/gm))s.add(t[1]);for(let t of e.matchAll(/^\s*(?:export\s+)?(?:const|let|var)\s*[[{]([^\]}]*)[\]}]/gm))for(let n of t[1].split(",")){let i=n.split(":").pop().split("=")[0].replace(/^\.\.\./,"").trim();if(/^[A-Z_$][\w$]*$/i.test(i))s.add(i)}return[...s].sort()}var He=["params","query","cookies","host","ip","setResponseStatus","setResponseHeader","notFound","request","url","definePageMeta","defineClientPayload","defineStore","props","$props"];var ze=["$env","$user","$slot","$slots","$attrs","$props","$page","$route","$loop","loop","$errors","$csrf","props","slot"];function qe(e){let s=new Set,t=new Set;for(let n of e){let i=n.kind==="server"?s:t;for(let o of ee(n.code))i.add(o)}return[...s].filter((n)=>t.has(n)).sort()}var Xt=/^\s*[A-Z_$][\w$]*\s*=[^=]/i;function Zt(e){let s=new Map,t=/!|===|!==|==|!=|&&|\|\||<|>|\btypeof\b|\binstanceof\b|\bin\b/;for(let n of e){let i=L(n),{depths:o,balanced:r}=Q(i);if(!r)continue;let a=/^([ \t]*(?:export[ \t]+)?const[ \t]+)([A-Za-z_$][\w$]*)[ \t]*(?::[^=\n]+)?=[ \t]*([^\n]+)$/gm;for(let c of i.matchAll(a)){let u=c.index??0;if(o[u+c[1].length]!==0)continue;let p=c[2],m=u+c[0].length-c[3].length,g=n.slice(m,u+c[0].length).trim().replace(/;$/,"").trim(),S=c[3],y=t.test(S)&&!/\bawait\b|=>|\bfunction\b|[{}]/.test(S)&&!/[,+\-*/%&|?:=]$/.test(g)&&Q(S).balanced;s.set(p,s.has(p)||!y?null:g)}}return new Map([...s].filter((n)=>n[1]!==null))}function Ye(e,s,t=0,n=new Set){if(s.size===0||t>=5)return e;let i=L(e),o="",r=0;for(let a of i.matchAll(/[A-Za-z_$][\w$]*/g)){let c=a.index??0,u=a[0],p=s.get(u);if(!p||n.has(u))continue;let m=i.slice(0,c).trimEnd(),g=i.slice(c+u.length).trimStart();if(m.endsWith(".")||/^:(?!:)/.test(g)&&/[{,]$/.test(m))continue;if(c>0&&/[\w$]/.test(i[c-1]))continue;o+=`${e.slice(r,c)}(${Ye(p,s,t+1,new Set([...n,u]))})`,r=c+u.length}return o+e.slice(r)}function Ut(e,s){let t=/@(if|unless|elseif|else|endif|endunless)\b\s*(\()?/g,n=[],i;while((i=t.exec(e))!==null){if(i.index>s)break;let o=i[1];if(i.index===s){if(o==="elseif"){let a=n[n.length-1];if(a?.current)a.seen.push(a.current);if(a)a.current=null}break}if(o==="endif"||o==="endunless"){n.pop();continue}let r="";if(i[2]==="("){let a=0,c=i.index+i[0].length-1,u=c+1;for(;c<e.length;c++){let p=e[c];if(p==="(")a++;else if(p===")"){if(a--,a===0)break}}r=e.slice(u,c).trim(),t.lastIndex=c+1}if(o==="if")n.push({seen:[],current:r});else if(o==="unless")n.push({seen:[],current:`!(${r})`});else if(o==="elseif"||o==="else"){let a=n[n.length-1];if(!a)continue;if(a.current)a.seen.push(a.current);a.current=o==="elseif"?r:null}}return n.flatMap((o)=>[...o.seen.map((r)=>`!(${r})`),...o.current?[o.current]:[]]).filter(Boolean)}function qt(e){let s=e.code.trim();if(!s)return null;if(e.attribute?.startsWith("@")){if(Xt.test(s))return null;let n=";(($event: any): void => { ";return{text:`${n}${s} });`,prefixLength:n.length}}let t=";void ((";return{text:`${t}${s}));`,prefixLength:t.length}}var Yt=/(\bfrom\s*|\bimport\s*\(\s*|\bimport\s+)(['"])(\.{1,2}\/[^'"\n]*)\2/g;function Xe(e,s){if(!s)return e;return e.replace(Yt,(t,n,i,o)=>{let r=ue.default.resolve(s,o).replace(/\\/g,"/");return`${n}${i}${r}${i}`})}function Qt(e){return" ".repeat(Math.max(0,(e.startColumn??1)-1))}function Jt(e){let s=new Set,t=L(e);for(let n of t.matchAll(/\bimport\s+(?:type\s+)?([\w$*{}\s,]+?)\s+from\b/g)){let i=n[1],o=/\{([^}]*)\}/.exec(i);for(let u of o?.[1].split(",")??[]){let p=u.trim().replace(/^type\s+/,"").split(/\s+as\s+/).pop()?.trim();if(p&&/^[A-Z_$][\w$]*$/i.test(p))s.add(p)}let r=i.replace(/\{[^}]*\}/,""),a=/\*\s*as\s+([A-Z_$][\w$]*)/i.exec(r);if(a)s.add(a[1]);let c=/^\s*([A-Z_$][\w$]*)/i.exec(r);if(c&&c[1]!=="type")s.add(c[1])}return[...s].sort()}function Qe(e,s={}){let t=te(e),n=e.split(`
|
|
33
|
+
`),i=Array.from({length:n.length},()=>""),o=new Map,r=s.filePath&&s.templateExpressions!==!1?Fe(e,ne(e),{filePath:s.filePath,componentsDir:s.componentsDir,projectRoot:s.projectRoot,readComponent:s.readComponent,scriptCode:(m,g)=>te(m).map((S)=>Xe(S.code,ue.default.dirname(g))).join(`
|
|
34
|
+
`)}):void 0,a=new Set,c=[];for(let m of t){let g=Wt(Bt(m.code)),S=Xe(g,s.originDir??"").split(`
|
|
35
|
+
`);S.forEach((y,b)=>{let w=m.startLine-1+b;if(w<i.length)i[w]=b===0?Qt(m)+y:y,a.add(w)}),c.push(m.startLine-1+S.length-1)}for(let m of c){let g=i[m]?.trim()===""?m:m+1;if(g<i.length&&i[g].trim()===""&&(g===m||!a.has(g)))i[g]=";"}let u=(m,g)=>{for(let[S,y]of m.split(`
|
|
36
|
+
`).entries())if(i.push(y),g)o.set(i.length,S===0?g:{...g,line:g.line+S,column:1,prefixLength:0})};if(s.globals!==!1){u("");let m=new Set([...t.flatMap((b)=>ee(b.code)),...t.flatMap((b)=>Jt(b.code))]),g=(b)=>{if(!m.has(b))u(`declare var ${b}: any`)};if(s.runtimeGlobals!==!1){if(!m.has("window"))u("declare var window: any");for(let b of G)g(b)}let S=[...new Set([...He,...ae,...ze])].filter((b)=>s.runtimeGlobals!==!1||!G.includes(b));if(s.contextScope==="global"){u("declare global {");for(let b of S)u(` var ${b}: any`);u("}")}else{for(let b of He)g(b);for(let b of ae)g(b);for(let b of ze)g(b)}u(`declare var ${le}: any`);let y=new Set(t.flatMap((b)=>ee(b.code)));u(`type ${We}<T> = T extends readonly (infer E)[] ? E : T extends Iterable<infer E2> ? E2 : any`);for(let b of zt(e)){if(y.has(b.name))continue;let w=b.iterable&&y.has(b.iterable)?`${We}<typeof ${b.iterable}>`:"any";u(`declare var ${b.name}: ${w}`)}}if(s.templateExpressions!==!1){if(r?.declarations)for(let g of r.declarations.split(`
|
|
37
|
+
`))u(g);let m=Gt(e).map((g)=>{let S=r?.events.get(g.offset??-1);if(S){g.anchor=!0;let y=g.code.trim(),b=/^([\w$]+)\s*=\s*([^=][\s\S]*)$/.exec(y),w=b?`void ((${b[2]}) satisfies __StxAssignedValue<typeof ${b[1]}>)`:/^[\w$]+(?:\.[\w$]+)*$/.test(y)?`${y} satisfies (($event: ${S}) => unknown)`:y,v=`;(($event: ${S}): void => { `;return{expression:g,statement:{text:`${v}${w} });`,prefixLength:v.length}}}return{expression:g,statement:qt(g)}}).filter((g)=>g.statement!==null);if(m.push(...r?.checks||[]),m.length>0){let g=ne(e),S=Zt(t.map((v)=>v.code)),b=[...new Set(t.flatMap((v)=>ee(v.code)))].filter((v)=>/^[A-Z_$][\w$]*$/i.test(v)),w=0;if(b.length>0){u(jt);for(let v of b)u(`type __StxT_${v} = ${Ue}<typeof ${v}>`);u(`;((${b.map((v)=>`${v}: __StxT_${v}`).join(", ")}) => {`),w=1}for(let{expression:v,statement:T}of m){let _=" ".repeat(w),C=v.offset===void 0?[]:Ut(g,v.offset),I=C.length>0?`${C.map((O)=>`if (${Ye(O,S)}) `).join("")}{ `:"",k=C.length>0?" }":"";u(_+I+T.text+k,{line:v.line,column:v.column,expression:v,prefixLength:T.prefixLength+_.length+I.length,guardPrefixLength:_.length+I.length})}if(w>0)u("});")}}let p=!1;if(s.reference&&i[0]!==void 0&&i[0].trim()==="")i[0]=`/// <reference path=${JSON.stringify(s.reference.replace(/\\/g,"/"))} />`,p=!0;return u("export {}"),{text:i.join(`
|
|
38
|
+
`),lineMap:o,sourceLineCount:n.length,componentDependencies:r?.dependencies,referenced:p}}function fe(e){let s=[0];for(let t=0;t<e.length;t++)if(e.charCodeAt(t)===10)s.push(t+1);return s}function ie(e,s){let t=0,n=e.length-1;while(t<n){let i=Math.ceil((t+n)/2);if(e[i]<=s)t=i;else n=i-1}return{line:t+1,column:s-e[t]+1}}function re(e,s,t){let n=Math.min(Math.max(s,1),e.length)-1,i=n+1<e.length?e[n+1]-1:Number.MAX_SAFE_INTEGER;return Math.min(e[n]+Math.max(t,1)-1,i)}function Je(e,s){if(!e.expression)return!1;return e.inGuard===!0||s===2774}function et(e,s,t){let n=e.lineMap.get(s);if(!n)return s<=e.sourceLineCount?{line:s,column:t}:null;let i=n.expression?.anchor?0:Math.max(0,t-1-(n.prefixLength??0));return{line:n.line,column:n.column+i,expression:n.expression,inGuard:t<=(n.guardPrefixLength??0)}}var tt=["module","exports","require","props","$props","$bool","$num","defineProps","withDefaults","defineClientPayload","useServerData","useRuntimeConfig","useServerRuntimeConfig","state","derived","effect","batch","onMount","onDestroy","definePageMeta","useRoute","useRouter","useHead","useSeoMeta","setResponseStatus","setResponseHeader","notFound","ref","reactive","computed","watch","onMounted","onUnmounted","nextTick","defineEmits","defineExpose","defineSlots","provide","inject","useColorMode","useDark","useMediaQuery","useScrollLock","usePreferredDark","usePreferredLight","usePreferredReducedMotion","usePreferredContrast","window","document","console","confirm","alert","fetch","params"];var en=new Set(["module","exports","require","$bool","$num","window","document","console","confirm","alert","fetch"]),st=tt.filter((e)=>!en.has(e)).sort(),it=[...G].sort(),tn=[...new Set([...st,...it])].sort(),nn=new Set(st),sn=new Set(it),rn=new Set(tn),nt=/\bimport\s+(?!type[\s{])\{([^}]*)\}\s*from\s*(['"])stx\2/g;function on(e,s){if(s==="server")return`'${e}' is not provided by 'stx' in a <script server> block. The engine binds only its own names there (defineProps, state, useHead, ...); any other name becomes \`await import('stx')\`, which does not resolve, so the whole script fails when the page renders. Import it from '@stacksjs/stx' instead.`;return`'${e}' is not provided by 'stx' in a client <script> block. The import is replaced by the window.stx runtime, which has no '${e}', so it is undefined in the browser.`}function rt(e,s){let t=[];for(let n of s){if(n.offset===void 0)continue;let i=n.kind==="server"?nn:sn;nt.lastIndex=0;for(let o of n.code.matchAll(nt)){let r=o.index+o[0].indexOf("{")+1;for(let a of o[1].matchAll(/[^,]+/g)){let c=a[0];if(/^\s*type\s/.test(c))continue;let u=/^\s*([A-Za-z_$][\w$]*)/.exec(c);if(!u)continue;let p=u[1];if(!rn.has(p)||i.has(p))continue;let m=n.offset+r+a.index+u[0].length-p.length,g=e.slice(0,m),S=g.split(`
|
|
39
39
|
`).length;t.push({line:S,column:m-(g.lastIndexOf(`
|
|
40
|
-
`)+1)+1,offset:m,length:p.length,name:p,kind:n.kind,message:on(p,n.kind)})}}}return t}var F=
|
|
40
|
+
`)+1)+1,offset:m,length:p.length,name:p,kind:n.kind,message:on(p,n.kind)})}}}return t}var F=V(require("node:path"),1),an="@stacksjs/stx-typescript-plugin";function cn(e,s){let t=F.default.resolve(e);for(;;){let n=F.default.join(t,"tsconfig.json");if(s(n))return n;let i=F.default.dirname(t);if(i===t)return;t=i}}function ot(e,s,t){let n=cn(e,t);if(!n)return;let i=new Set,o=(r)=>{if(i.has(r))return;i.add(r);let a=s(r);if(!a)return;let c=a.compilerOptions?.plugins;if(Array.isArray(c)){let p=c.find((g)=>g?.name===an),m=Array.isArray(p?.libs)?p.libs.filter((g)=>typeof g==="string"):[];return p?{configPath:r,libs:m.map((g)=>F.default.resolve(F.default.dirname(r),g))}:null}let u=typeof a.extends==="string"?[a.extends]:Array.isArray(a.extends)?a.extends:[];for(let p of[...u].reverse()){if(typeof p!=="string"||!p.startsWith("."))continue;let m=F.default.resolve(F.default.dirname(r),p.endsWith(".json")?p:`${p}.json`),g=o(m);if(g!==void 0)return g}return};return o(n)??void 0}var at=Symbol.for("@stacksjs/stx-typescript-plugin"),ln=new Set([2300,2451,2403]);function q(e){return e.endsWith(".stx")}function ct(e){return q(e)||e.endsWith(".md")}function un(e){if(!e)return;return j.existsSync(P.default.join(e,"stx-module.d.ts"))&&j.existsSync(P.default.join(e,"stx.d.ts"))?P.default.join(e,"stx-module.d.ts"):void 0}function fn(e,s=j.existsSync){let t=e;for(;;){let n=P.default.join(t,"node_modules","@stacksjs","stx","stx-module.d.ts");if(s(n))return n;let i=P.default.dirname(t);if(i===t)return;t=i}}function dn(e,s=P.default.join(ut.tmpdir(),"stx-typescript-plugin")){let t=e.map((i)=>`/// <reference path=${JSON.stringify(i.replace(/\\/g,"/"))} />`).join(`
|
|
41
41
|
`)+`
|
|
42
|
-
`,n=P.default.join(s,`${lt.createHash("sha1").update(t).digest("hex").slice(0,16)}.d.ts`);if(!
|
|
42
|
+
`,n=P.default.join(s,`${lt.createHash("sha1").update(t).digest("hex").slice(0,16)}.d.ts`);if(!j.existsSync(n))j.mkdirSync(s,{recursive:!0}),j.writeFileSync(n,t);return n}function pn(e,s,t,n){let i=(a)=>Qe(s,{templateExpressions:q(e),originDir:P.default.dirname(e),filePath:e,readComponent:n.readComponent,componentsDir:n.componentsDir,projectRoot:n.projectRoot,reference:a,runtimeGlobals:!a,contextScope:"global"}),o=i(n.declarations);if(n.declarations&&!o.referenced)o=i(void 0);let r=te(s);return{version:t,source:s,virtual:o,blocks:r,sourceStarts:fe(s),virtualStarts:fe(o.text),collisions:new Set(qe(r))}}function gn(e,s){let t=e.findConfigFile(s,e.sys.fileExists);if(!t)return;let n=e.readConfigFile(t,e.sys.readFile);if(n.error)return;let i=e.parseJsonConfigFileContent(n.config,e.sys,P.default.dirname(t),void 0,t),o={};if(i.options.types)o.types=i.options.types;let r=i.options.paths;if(r){let a=i.options.baseUrl??i.options.pathsBasePath??P.default.dirname(t);o.paths={};for(let[c,u]of Object.entries(r))o.paths[c]=u.map((p)=>P.default.isAbsolute(p)?p:P.default.resolve(a,p))}return o}function mn(e,s={}){let t=e.typescript,n={},i=new Set,o=new WeakSet;return{create(r){let a=(l)=>{r.project.projectService.logger.info(`[stx-plugin] ${l}`)};if(r.languageService[at])return o.add(r.project),a("already applied to this project by another registration of the plugin; leaving it as it is"),r.languageService;a("TypeScript stx plugin initialized");let{languageService:c,languageServiceHost:u}=r,p=(l)=>{let d=c[l];return typeof d==="function"?d.bind(c):()=>{return}},m=u.getScriptSnapshot?.bind(u),g=u.getScriptVersion?.bind(u),S=un(s.declarationsDir);if(!S)a("the bundled stx declarations were not found; apps without their own fall back to `any`");let y=(l)=>t.sys?.fileExists(l)??j.existsSync(l),b=(l)=>{let d=t.readConfigFile?.(l,(f)=>t.sys.readFile(f));return d&&!d.error?d.config:void 0},w=new Map,v=(l)=>{let d=P.default.dirname(l);if(!w.has(d)){let f=fn(d,y)??S,x=[];try{x=(ot(d,b,y)?.libs??[]).filter(y)}catch(h){a(`could not read the stx entry of the project's tsconfig: ${String(h)}`)}w.set(d,f&&x.length>0?dn([f,...x]):f)}return w.get(d)},T=new Map,_=(l)=>{let d=m?.(l);return d?d.getText(0,d.getLength()):t.sys?.readFile(l)},C=()=>n.enabled!==!1;i.add(()=>{T.clear(),r.project.refreshDiagnostics?.()});let I=(l)=>{if(!ct(l)||!m)return;let d=`${g?.(l)||"0"}:${u.getProjectVersion?.()||""}`,f=T.get(l);if(f&&f.version===d&&[...f.virtual.componentDependencies||[]].every(([h,E])=>_(h)===E))return f;let x=m(l);if(!x)return;try{let h=r.project.getCurrentDirectory?.(),E=h?P.default.resolve(h,typeof r.config?.componentsDir==="string"?r.config.componentsDir:"components"):void 0,R=pn(l,x.getText(0,x.getLength()),d,{declarations:v(l),readComponent:_,componentsDir:E,projectRoot:h});return T.set(l,R),R}catch(h){a(`failed to build virtual document for ${l}: ${String(h)}`);return}},k=(l)=>q(l)?I(l):void 0,O=(l,d)=>{let f=ie(l.virtualStarts,d);return et(l.virtual,f.line,f.column)},Y=(l,d)=>{let f=O(l,d);if(!f)return;return re(l.sourceStarts,f.line,f.column)},M=(l,d)=>{let f=ie(l.sourceStarts,d);return re(l.virtualStarts,f.line,f.column)},N=(l,d)=>{let f=Y(l,d.start);if(f===void 0)return;let x=Y(l,d.start+d.length);return{start:f,length:x!==void 0&&x>=f?x-f:d.length}},H=(l,d)=>l.blocks.some((f)=>f.offset!==void 0&&d>=f.offset&&d<=f.offset+f.code.length),de=(l)=>{let d=k(l.fileName);if(!d)return l;let f=N(d,l.textSpan);if(!f)return;let x=l.contextSpan?N(d,l.contextSpan):void 0;return{...l,textSpan:f,contextSpan:x}},pe=(l)=>l?.map(de).filter((d)=>d!==void 0),ge=(l)=>l?.filter((d)=>{let f=k(d.fileName);if(!f)return!0;let{line:x}=ie(f.virtualStarts,d.textSpan.start);return x<=f.virtual.sourceLineCount&&!f.virtual.lineMap.has(x)});if(m)u.getScriptSnapshot=(l)=>{let d=I(l);if(d)return t.ScriptSnapshot.fromString(d.virtual.text);return m(l)};let me=u.getCompilationSettings?.bind(u),dt=t.server?.ProjectKind!==void 0&&r.project.projectKind===t.server.ProjectKind.Inferred;if(me&&dt){let l=null,d;u.getCompilationSettings=()=>{let f=me();if(l===null)try{l=gn(t,r.project.getCurrentDirectory())}catch(x){a(`could not read the project's tsconfig: ${String(x)}`),l=void 0}if(!l)return f;if(d?.from!==f)d={from:f,options:{...f,...l.paths&&!f.paths?{paths:l.paths}:{},...l.types&&!f.types?{types:l.types}:{}}};return d.options}}let oe=(l,d)=>{let f=I(l);if(!f)return d;if(q(l)&&!C())return[];let x=[];for(let h of d){let E=typeof h.messageText==="string"?h.messageText:h.messageText.messageText;if(ln.has(h.code)){let B=E.match(/'([^']+)'/)?.[1];if(B&&f.collisions.has(B))continue}if(h.start===void 0){x.push(h);continue}let R=O(f,h.start);if(!R||Je(R,h.code))continue;let D=re(f.sourceStarts,R.line,R.column),z=Y(f,h.start+(h.length??0));x.push({...h,start:D,length:z!==void 0&&z>D?z-D:h.length??0})}return x},pt=p("getSemanticDiagnostics");c.getSemanticDiagnostics=(l)=>{let d=oe(l,pt(l)),f=k(l);if(!f||!C())return d;let x=c.getProgram?.()?.getSourceFile(l);for(let h of rt(f.source,f.blocks))d.push({file:x,start:h.offset,length:h.length,messageText:h.message,category:t.DiagnosticCategory?.Error??1,code:0,source:"stx"});return d};let gt=p("getSyntacticDiagnostics");c.getSyntacticDiagnostics=(l)=>oe(l,gt(l));let mt=p("getSuggestionDiagnostics");c.getSuggestionDiagnostics=(l)=>oe(l,mt(l));let he=p("getQuickInfoAtPosition");c.getQuickInfoAtPosition=(l,d,...f)=>{let x=k(l);if(!x)return he(l,d,...f);if(!C())return;let h=he(l,M(x,d),...f);if(!h)return h;let E=N(x,h.textSpan);return E?{...h,textSpan:E}:void 0};let xe=p("getCompletionsAtPosition");c.getCompletionsAtPosition=(l,d,f,...x)=>{let h=k(l);if(!h)return xe(l,d,f,...x);if(!C()||!H(h,d))return;let E=xe(l,M(h,d),{...f,includeCompletionsForModuleExports:!1},...x);if(!E)return E;let R=(D)=>D&&N(h,D);return{...E,optionalReplacementSpan:R(E.optionalReplacementSpan),entries:E.entries.filter((D)=>!D.name.startsWith("__stx")&&!D.name.startsWith("__Stx")).map((D)=>D.replacementSpan?{...D,replacementSpan:R(D.replacementSpan)}:D)}};let be=p("getCompletionEntryDetails");c.getCompletionEntryDetails=(l,d,...f)=>{let x=k(l);if(!x)return be(l,d,...f);let h=be(l,M(x,d),...f);return h?{...h,codeActions:void 0}:h};let Se=p("getSignatureHelpItems");c.getSignatureHelpItems=(l,d,...f)=>{let x=k(l);if(!x)return Se(l,d,...f);if(!C()||!H(x,d))return;let h=Se(l,M(x,d),...f),E=h&&N(x,h.applicableSpan);return h&&E?{...h,applicableSpan:E}:void 0};let ye=p("getDefinitionAndBoundSpan");c.getDefinitionAndBoundSpan=(l,d)=>{let f=k(l);if(!f)return we(ye(l,d));if(!C())return;let x=ye(l,M(f,d)),h=x&&N(f,x.textSpan);return x&&h?{...we(x),textSpan:h}:void 0};let we=(l)=>l&&{...l,definitions:ge(l.definitions)};for(let l of["getDefinitionAtPosition","getTypeDefinitionAtPosition","getImplementationAtPosition"]){let d=p(l);c[l]=(f,x,...h)=>{let E=k(f);if(E&&!C())return;return ge(d(f,E?M(E,x):x,...h))}}for(let l of["getReferencesAtPosition"]){let d=p(l);c[l]=(f,x,...h)=>{let E=k(f);if(E&&!C())return;return pe(d(f,E?M(E,x):x,...h))}}let ht=p("findReferences");c.findReferences=(l,d)=>{let f=k(l);if(f&&!C())return;return ht(l,f?M(f,d):d)?.map((x)=>{let h=de(x.definition);return h?{definition:h,references:pe(x.references)}:void 0}).filter((x)=>x!==void 0)};let xt=p("getDocumentHighlights");c.getDocumentHighlights=(l,d,f)=>{let x=k(l);if(x&&(!C()||!H(x,d)))return;return xt(l,x?M(x,d):d,f)?.map((h)=>{let E=k(h.fileName);if(!E)return h;return{...h,highlightSpans:h.highlightSpans.map((R)=>{let D=N(E,R.textSpan);return D?{...R,textSpan:D,contextSpan:R.contextSpan&&N(E,R.contextSpan)}:void 0}).filter((R)=>R!==void 0)}})};let bt=p("getNavigationTree");c.getNavigationTree=(l)=>{let d=bt(l),f=k(l);if(!f)return d;let x=(E)=>{let R=E.spans.map((B)=>N(f,B)).filter((B)=>B!==void 0);if(R.length===0)return;let D=E.nameSpan&&N(f,E.nameSpan),z=E.childItems?.map(x).filter((B)=>B!==void 0);return{...E,spans:R,nameSpan:D,childItems:z}},h={...d,spans:[{start:0,length:f.source.length}]};return C()?{...h,childItems:d.childItems?.map(x).filter((E)=>E!==void 0)}:{...h,childItems:[]}};let St={getEncodedSemanticClassifications:()=>{return},getEncodedSyntacticClassifications:()=>{return},getSemanticClassifications:()=>[],getSyntacticClassifications:()=>[],getFormattingEditsForDocument:()=>[],getFormattingEditsForRange:()=>[],getFormattingEditsAfterKeystroke:()=>[],getNavigationBarItems:()=>[],getOutliningSpans:()=>[],getBraceMatchingAtPosition:()=>[],getTodoComments:()=>[],getDocCommentTemplateAtPosition:()=>{return},getJsxClosingTagAtPosition:()=>{return},getLinkedEditingRangeAtPosition:()=>{return},getSpanOfEnclosingComment:()=>{return},getCodeFixesAtPosition:()=>[],getApplicableRefactors:()=>[],getEditsForRefactor:()=>{return},getRenameInfo:()=>({canRename:!1,localizedErrorMessage:"Rename is not supported in .stx files."}),findRenameLocations:()=>{return},provideInlayHints:()=>[],prepareCallHierarchy:()=>{return},provideCallHierarchyIncomingCalls:()=>[],provideCallHierarchyOutgoingCalls:()=>[],getFileReferences:()=>[]};for(let[l,d]of Object.entries(St)){let f=c[l];if(typeof f!=="function")continue;let x=f.bind(c);c[l]=(h,...E)=>typeof h==="string"&&q(h)?d():x(h,...E)}return c[at]=!0,a("Language service proxy created"),c},getExternalFiles(r){if(o.has(r))return[];return r.getFileNames().filter(ct)},onConfigurationChanged(r){n={...n,...r};for(let a of i)a()}}}var ft=mn;module.exports=ft;
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stacksjs/stx-vscode",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.2.
|
|
4
|
+
"version": "0.2.575",
|
|
5
5
|
"description": "stx language support for VS Code extensions to embed: the hovers, completions, diagnostics, grammar, snippets, language configuration and TypeScript server plugin behind the stx extension.",
|
|
6
6
|
"author": "Chris Breuer <chris@stacksjs.org>",
|
|
7
7
|
"license": "MIT",
|