svelte-origin 1.0.0-next.48 → 1.0.0-next.49

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.
@@ -123,15 +123,13 @@ export declare function getMergedAttrSchemaFromAttrs(factory: AttrsFactory<any>,
123
123
  */
124
124
  declare const BINDABLE_MARKER: unique symbol;
125
125
  /**
126
- * Marker type for bindable props.
127
- * Uses mapped type instead of interface to support computed property key.
126
+ * Marker interface for bindable props.
128
127
  */
129
- type BindableMarker<T> = {
130
- readonly [K in typeof BINDABLE_MARKER]: true;
131
- } & {
128
+ interface BindableMarker<T> {
129
+ [BINDABLE_MARKER]: true;
132
130
  get: () => T;
133
131
  set: (value: T) => void;
134
- };
132
+ }
135
133
  /**
136
134
  * Create a bindable prop marker for use in $origin.create() props.
137
135
  *
@@ -169,4 +167,4 @@ export declare function __bindable<T>(get: () => T, set: (value: T) => void): Bi
169
167
  * // Transforms to:
170
168
  * this.child = __createOriginInstance(Counter, { count: __bindable(() => myCount, (v) => { myCount = v }) })
171
169
  */
172
- export declare function __createOriginInstance<T extends OriginFactory<any, any>>(factoryOrThunk: T, props: Record<string, any>): ReturnType<T>;
170
+ export declare function __createOriginInstance<T extends OriginFactory<any, any>>(factory: T, props: Record<string, any>): ReturnType<T>;
@@ -107,12 +107,11 @@ export declare function __createAttrs<TAttrs extends Record<string, any>>(config
107
107
  __parents?: AttrsFactory<any>[];
108
108
  }): AttrsFactory<TAttrs>;
109
109
  declare const BINDABLE_MARKER: unique symbol;
110
- type BindableMarker<T> = {
111
- readonly [K in typeof BINDABLE_MARKER]: true;
112
- } & {
110
+ interface BindableMarker<T> {
111
+ [BINDABLE_MARKER]: true;
113
112
  get: () => T;
114
113
  set: (value: T) => void;
115
- };
114
+ }
116
115
  export declare function __bindable<T>(get: () => T, set: (value: T) => void): BindableMarker<T>;
117
- export declare function __createOriginInstance<T extends OriginFactory<any, any>>(factoryOrThunk: T, props: Record<string, any>): ReturnType<T>;
116
+ export declare function __createOriginInstance<T extends OriginFactory<any, any>>(factory: T, props: Record<string, any>): ReturnType<T>;
118
117
  export {};
@@ -1 +1 @@
1
- import{createAttachmentKey as V}from"svelte/attachments";function S(H,J){let C=J&&typeof J==="object"?J:{},U={},X=new Set;return new Proxy(C,{get(Q,z){if(X.has(z))return U[z];if(typeof z==="symbol")return Q[z];let Y=Q[z];if(Y===void 0&&z in H&&H[z].hasDefault)return H[z].default;return Y},set(Q,z,Y){U[z]=Y;try{Q[z]=Y}catch{X.add(z)}return!0},has(Q,z){return typeof z==="symbol"?z in Q:(z in Q)||(z in H)},ownKeys(Q){return[...new Set([...Reflect.ownKeys(Q),...Object.keys(H)])]},getOwnPropertyDescriptor(Q,z){if(typeof z==="symbol")return Object.getOwnPropertyDescriptor(Q,z);if(z in Q)return Object.getOwnPropertyDescriptor(Q,z);if(z in H)return{configurable:!0,enumerable:!0,value:H[z].hasDefault?H[z].default:void 0};return}})}function R(H,J=new Set){if(J.has(H))return{};J.add(H);let C=H.__parents||[],U={};for(let X of C)Object.assign(U,R(X,J));return Object.assign(U,H.__attrSchema),U}function W(H,J,C=new Set){let U={};for(let X of J){if(C.has(X))continue;Object.assign(U,R(X,new Set(C)))}return Object.assign(U,H),U}function _(H){let{__attrSchema:J,__parents:C=[],__create:U,__onInit:X,__attachments:Q={}}=H;function z(Y,...N){let G,q;if(Y===null||Y===void 0)G={},q=N;else if(typeof Y!=="object"||Array.isArray(Y))G={},q=[Y,...N];else G=Y,q=N;let j=W(J,C),b=S(j,G),D=C.map((Z)=>Z(b)),F=D.length===1?D[0]:D.length>1?D:void 0,E=U(b,F);if(E===null||E===void 0)throw Error("[svelte-origin] __create returned null/undefined");let K=E,B=F?new Proxy(K,{get(Z,$,L){if($ in Z){let x=Reflect.get(Z,$,L);return typeof x==="function"?x.bind(L):x}if(F&&$ in F){let x=Reflect.get(F,$,F);return typeof x==="function"?x.bind(F):x}return},has(Z,$){return $ in Z||F&&$ in F},ownKeys(Z){let $=Reflect.ownKeys(Z);return F?[...new Set([...$,...Reflect.ownKeys(F)])]:$},getOwnPropertyDescriptor(Z,$){return Reflect.getOwnPropertyDescriptor(Z,$)||(F?Reflect.getOwnPropertyDescriptor(F,$):void 0)}}):K;if(X){let Z=X.call(B,...q);if(typeof Z==="function")Object.defineProperty(B,"__cleanup",{value:Z,writable:!0,enumerable:!0,configurable:!0})}let M=new Map;for(let Z of Object.keys(Q))M.set(Z,V());return Object.defineProperty(B,"$attachments",{get(){let Z={};for(let[$,L]of Object.entries(Q))Z[M.get($)]=(x)=>L.call(B,x);for(let $ of Object.getOwnPropertySymbols(G)){let L=G[$];if(typeof L==="function")Z[$]=L}return Z},enumerable:!0,configurable:!0}),B}if(Object.defineProperty(z,"__origin",{value:!0,writable:!1,enumerable:!0}),Object.defineProperty(z,"__attrSchema",{value:J,writable:!1,enumerable:!0}),Object.defineProperty(z,"__parents",{value:C,writable:!1,enumerable:!0}),Object.defineProperty(z,"__create",{value:U,writable:!1,enumerable:!0}),X)Object.defineProperty(z,"__onInit",{value:X,writable:!1,enumerable:!0});return z}function k(H,J){let U=R(H),X={},Q=new Set,z=(G,q)=>{X[G]=q;try{return J[G]=q,!0}catch{return Q.add(G),!1}},Y={},N=(G,q)=>{if(Object.prototype.hasOwnProperty.call(Y,G))return;let j={get(){return Q.has(G)?X[G]:J[G]},enumerable:!0,configurable:!0};if(q.bindable)j.set=function(b){z(G,b)};Object.defineProperty(Y,G,j)};for(let[G,q]of Object.entries(U)){let j=J[G];if(!q.bindable||!q.hasDefault||j!==void 0)N(G,q)}for(let G of Object.getOwnPropertySymbols(J))Object.defineProperty(Y,G,{get(){return J[G]},enumerable:!1,configurable:!0});return new Proxy(Y,{get(G,q){if(typeof q==="string"){if(Q.has(q))return X[q];if(q in U)return J[q]}return q in G?G[q]:J[q]},set(G,q,j){if(typeof q==="string"&&q in U){if(!Object.prototype.hasOwnProperty.call(Y,q))N(q,U[q]);if(U[q].bindable)z(q,j);return!0}if(q in G){try{G[q]=j}catch{}return!0}try{J[q]=j}catch{if(typeof q==="string")X[q]=j,Q.add(q)}return!0},has(G,q){return q in G||q in J},ownKeys(){return[...Object.keys(Y),...Object.getOwnPropertySymbols(J)]},getOwnPropertyDescriptor(G,q){return q in G?Object.getOwnPropertyDescriptor(G,q):Object.getOwnPropertyDescriptor(J,q)}})}function w(H){return{__attrs:!0,__attrSchema:H.__attrSchema,__parents:H.__parents||[]}}var P=Symbol.for("svelte-origin:bindable");function I(H,J){return{[P]:!0,get:H,set:J}}function T(H){return H!==null&&typeof H==="object"&&P in H}function d(H,J){let C=typeof H==="function"&&!("__origin"in H)?H():H,U={};for(let[X,Q]of Object.entries(J))if(T(Q))Object.defineProperty(U,X,{get(){return Q.get()},set(z){Q.set(z)},enumerable:!0,configurable:!0});else Object.defineProperty(U,X,{get(){return Q},enumerable:!0,configurable:!0});return C(U)}export{d as __createOriginInstance,_ as __createOrigin,w as __createAttrs,I as __bindable,k as __attrsFor};
1
+ import{createAttachmentKey as P}from"svelte/attachments";function V(H,J){let C=J&&typeof J==="object"?J:{},U={},X=new Set;return new Proxy(C,{get(Q,z){if(X.has(z))return U[z];if(typeof z==="symbol")return Q[z];let Y=Q[z];if(Y===void 0&&z in H&&H[z].hasDefault)return H[z].default;return Y},set(Q,z,Y){U[z]=Y;try{Q[z]=Y}catch{X.add(z)}return!0},has(Q,z){return typeof z==="symbol"?z in Q:(z in Q)||(z in H)},ownKeys(Q){return[...new Set([...Reflect.ownKeys(Q),...Object.keys(H)])]},getOwnPropertyDescriptor(Q,z){if(typeof z==="symbol")return Object.getOwnPropertyDescriptor(Q,z);if(z in Q)return Object.getOwnPropertyDescriptor(Q,z);if(z in H)return{configurable:!0,enumerable:!0,value:H[z].hasDefault?H[z].default:void 0};return}})}function E(H,J=new Set){if(J.has(H))return{};J.add(H);let C=H.__parents||[],U={};for(let X of C)Object.assign(U,E(X,J));return Object.assign(U,H.__attrSchema),U}function S(H,J,C=new Set){let U={};for(let X of J){if(C.has(X))continue;Object.assign(U,E(X,new Set(C)))}return Object.assign(U,H),U}function k(H){let{__attrSchema:J,__parents:C=[],__create:U,__onInit:X,__attachments:Q={}}=H;function z(Y,...N){let G,q;if(Y===null||Y===void 0)G={},q=N;else if(typeof Y!=="object"||Array.isArray(Y))G={},q=[Y,...N];else G=Y,q=N;let j=S(J,C),b=V(j,G),B=C.map((Z)=>Z(b)),F=B.length===1?B[0]:B.length>1?B:void 0,D=U(b,F);if(D===null||D===void 0)throw Error("[svelte-origin] __create returned null/undefined");let R=D,T=F?new Proxy(R,{get(Z,$,L){if($ in Z){let x=Reflect.get(Z,$,L);return typeof x==="function"?x.bind(L):x}if(F&&$ in F){let x=Reflect.get(F,$,F);return typeof x==="function"?x.bind(F):x}return},has(Z,$){return $ in Z||F&&$ in F},ownKeys(Z){let $=Reflect.ownKeys(Z);return F?[...new Set([...$,...Reflect.ownKeys(F)])]:$},getOwnPropertyDescriptor(Z,$){return Reflect.getOwnPropertyDescriptor(Z,$)||(F?Reflect.getOwnPropertyDescriptor(F,$):void 0)}}):R;if(X){let Z=X.call(T,...q);if(typeof Z==="function")Object.defineProperty(T,"__cleanup",{value:Z,writable:!0,enumerable:!0,configurable:!0})}let K=new Map;for(let Z of Object.keys(Q))K.set(Z,P());return Object.defineProperty(T,"$attachments",{get(){let Z={};for(let[$,L]of Object.entries(Q))Z[K.get($)]=(x)=>L.call(T,x);for(let $ of Object.getOwnPropertySymbols(G)){let L=G[$];if(typeof L==="function")Z[$]=L}return Z},enumerable:!0,configurable:!0}),T}if(Object.defineProperty(z,"__origin",{value:!0,writable:!1,enumerable:!0}),Object.defineProperty(z,"__attrSchema",{value:J,writable:!1,enumerable:!0}),Object.defineProperty(z,"__parents",{value:C,writable:!1,enumerable:!0}),Object.defineProperty(z,"__create",{value:U,writable:!1,enumerable:!0}),X)Object.defineProperty(z,"__onInit",{value:X,writable:!1,enumerable:!0});return z}function _(H,J){let U=E(H),X={},Q=new Set,z=(G,q)=>{X[G]=q;try{return J[G]=q,!0}catch{return Q.add(G),!1}},Y={},N=(G,q)=>{if(Object.prototype.hasOwnProperty.call(Y,G))return;let j={get(){return Q.has(G)?X[G]:J[G]},enumerable:!0,configurable:!0};if(q.bindable)j.set=function(b){z(G,b)};Object.defineProperty(Y,G,j)};for(let[G,q]of Object.entries(U)){let j=J[G];if(!q.bindable||!q.hasDefault||j!==void 0)N(G,q)}for(let G of Object.getOwnPropertySymbols(J))Object.defineProperty(Y,G,{get(){return J[G]},enumerable:!1,configurable:!0});return new Proxy(Y,{get(G,q){if(typeof q==="string"){if(Q.has(q))return X[q];if(q in U)return J[q]}return q in G?G[q]:J[q]},set(G,q,j){if(typeof q==="string"&&q in U){if(!Object.prototype.hasOwnProperty.call(Y,q))N(q,U[q]);if(U[q].bindable)z(q,j);return!0}if(q in G){try{G[q]=j}catch{}return!0}try{J[q]=j}catch{if(typeof q==="string")X[q]=j,Q.add(q)}return!0},has(G,q){return q in G||q in J},ownKeys(){return[...Object.keys(Y),...Object.getOwnPropertySymbols(J)]},getOwnPropertyDescriptor(G,q){return q in G?Object.getOwnPropertyDescriptor(G,q):Object.getOwnPropertyDescriptor(J,q)}})}function w(H){return{__attrs:!0,__attrSchema:H.__attrSchema,__parents:H.__parents||[]}}var M=Symbol.for("svelte-origin:bindable");function I(H,J){return{[M]:!0,get:H,set:J}}function W(H){return H!==null&&typeof H==="object"&&M in H}function d(H,J){let C={};for(let[U,X]of Object.entries(J))if(W(X))Object.defineProperty(C,U,{get(){return X.get()},set(Q){X.set(Q)},enumerable:!0,configurable:!0});else Object.defineProperty(C,U,{get(){return X},enumerable:!0,configurable:!0});return H(C)}export{d as __createOriginInstance,k as __createOrigin,w as __createAttrs,I as __bindable,_ as __attrsFor};
@@ -27,6 +27,19 @@ export interface SchemaResolverOptions {
27
27
  */
28
28
  moduleImports?: Map<string, string>;
29
29
  }
30
+ /**
31
+ * Invalidate cache entries for a specific file.
32
+ * This is called when a file changes to ensure stale schemas are not served.
33
+ *
34
+ * @param filePath The absolute path of the file that changed
35
+ * @param cache The schema cache to invalidate entries from
36
+ */
37
+ export declare function invalidateCacheForFile(filePath: string, cache: Map<string, ParsedOriginSchema | null>): void;
38
+ /**
39
+ * Reset mtime tracking for testing purposes.
40
+ * This clears all cached mtime data to ensure clean test state.
41
+ */
42
+ export declare function resetMtimeTracking(): void;
30
43
  /**
31
44
  * Resolve a schema from an import path, recursively resolving parent schemas.
32
45
  * This is the core schema resolution logic shared between preprocessor and plugin.
@@ -18,6 +18,11 @@ export interface GeneratePropsDestructuringOptions {
18
18
  * Defaults to true (new API).
19
19
  */
20
20
  useNewApi?: boolean;
21
+ /**
22
+ * If true, uses `$$Props` as the type annotation instead of generating one.
23
+ * This is used when the user has already declared their own `$$Props` type.
24
+ */
25
+ useUserPropsType?: boolean;
21
26
  }
22
27
  /**
23
28
  * Generate $props() destructuring code from parsed attrs
package/dist/vite-dts.js CHANGED
@@ -1,8 +1,8 @@
1
- import{existsSync as ZQ}from"node:fs";import{writeFile as yQ,unlink as CQ}from"node:fs/promises";var YQ={hasMacros:/\$origin\s*[.(]/,origin:/\$origin\s*\(/g,originWithParents:/\$origin\s*\(\s*\[/,originPropsInOrigin:/\$origin\s*\.\s*props\s*\(\s*\{/g,standaloneOriginProps:/(?:let|const|export\s+const|export\s+let)\s+\w+\s*=\s*\$origin\s*\.\s*props\s*\(/g,bindableInAttrs:/\$bindable\s*\(/g,originComponent:/\$origin\s*\.\s*component\s*\(\s*(\w+)\s*\)/g,originCreate:/\$origin\s*\.\s*create\s*\(\s*(\w+)\s*(?:,\s*(\{[^}]*\}))?\s*\)/g,originBind:/\$origin\s*\.\s*bind\s*\(\s*([^)]+)\s*\)/g,originForOrigin:/\$origin\s*\.\s*for\s*\(\s*(\w+)\s*\)/g,originForElement:/\$origin\s*\.\s*for\s*\(\s*['"]([\w-]+)['"]\s*\)/g};function NQ(Q){return YQ.hasMacros.test(Q)}function bQ(Q,Z){let Y=0;while(Y<Z){let X=Q[Y];if(X==="/"&&Q[Y+1]==="/"){let $=Q.indexOf(`
2
- `,Y+2);if($===-1)return Z>Y;if(Z>Y&&Z<=$)return!0;Y=$+1;continue}if(X==="/"&&Q[Y+1]==="*"){let $=Q.indexOf("*/",Y+2);if($===-1)return Z>Y;if(Z>Y&&Z<$+2)return!0;Y=$+2;continue}if(X==='"'||X==="'"||X==="`"){let $=X,_=Y;Y++;while(Y<Q.length){if(Q[Y]==="\\"){Y+=2;continue}if(Q[Y]===$){if(Z>_&&Z<=Y)return!0;Y++;break}if($==="`"&&Q[Y]==="$"&&Q[Y+1]==="{"){let G=Y;Y+=2;let H=1;while(Y<Q.length&&H>0){if(Q[Y]==="{")H++;else if(Q[Y]==="}")H--;else if(Q[Y]==="\\")Y++;Y++}if(Z>_&&Z<G)return!0;continue}Y++}continue}Y++}return!1}function d(Q){if(!Q.startsWith("$bindable"))return{isBindable:!1};let Z=9;if(Q[Z]==="<"){let _=1;Z++;while(Z<Q.length&&_>0){let G=Q[Z];if(G==="="&&Q[Z+1]===">"){Z+=2;continue}if(G==="<")_++;else if(G===">")_--;Z++}}while(Z<Q.length&&/\s/.test(Q[Z]))Z++;if(Q[Z]!=="(")return{isBindable:!1};let Y=Z,X=L(Q,Y);if(X===-1)return{isBindable:!1};return{isBindable:!0,innerValue:Q.slice(Y+1,X).trim()||"undefined"}}function l(Q){let Z=0,Y=0;for(let X=0;X<Q.length-4;X++){let $=Q[X];if($==='"'||$==="'"||$==="`"){let _=$;X++;while(X<Q.length&&Q[X]!==_){if(Q[X]==="\\")X++;X++}continue}if($==="{"||$==="("||$==="[")Z++;else if($==="}"||$===")"||$==="]")Z--;else if($==="<"){let _=X>0?Q[X-1]:"";if(/[\w$)]/.test(_))Y++}else if($===">"){if(X>0&&Q[X-1]==="=")continue;if(Y>0)Y--}else if(Z===0&&Y===0&&Q.slice(X,X+4)===" as ")return X}return-1}function L(Q,Z,Y="(",X=")"){let $=0;for(let _=Z;_<Q.length;_++){let G=Q[_];if(G==="/"&&Q[_+1]==="/"){let H=Q.indexOf(`
3
- `,_+2);if(H!==-1)_=H;else _=Q.length;continue}if(G==="/"&&Q[_+1]==="*"){let H=Q.indexOf("*/",_+2);if(H!==-1)_=H+1;else _=Q.length;continue}if(G==='"'||G==="'"||G==="`"){let H=G;_++;while(_<Q.length&&Q[_]!==H){if(Q[_]==="\\")_++;_++}continue}if(G===Y)$++;else if(G===X){if($--,$===0)return _}}return-1}function m(Q){let Z=Q.trim();while(!0){if(Z.startsWith("/*")){let X=Z.indexOf("*/");if(X!==-1){Z=Z.slice(X+2).trim();continue}break}if(Z.startsWith("//")){let X=Z.indexOf(`
4
- `);if(X!==-1){Z=Z.slice(X+1).trim();continue}Z="";break}break}let Y=Z.indexOf("*/");if(Y!==-1){let X=Z.slice(Y+2).trim();if(X.match(/^(\w+)\s*:/))Z=X}return Z}function _Q(Q){let Z=0,Y=0;while(Z<Q.length){let X=Q[Z];if(X==='"'||X==="'"||X==="`"){let _=X;Z++;while(Z<Q.length&&Q[Z]!==_){if(Q[Z]==="\\")Z++;Z++}Z++;continue}if(X==="/"&&Q[Z+1]==="*"){Y++,Z+=2;continue}if(X==="*"&&Q[Z+1]==="/")if(Y>0){Y--,Z+=2;continue}else return $Q(Q,Z);Z++}return-1}function $Q(Q,Z){let Y=Z-1;while(Y>=0&&/\s/.test(Q[Y]))Y--;let X=Q.slice(0,Y+1),$=0,_=0;while(_<X.length){let G=X[_];if(G==='"'||G==="'"||G==="`"){let U=G;_++;while(_<X.length&&X[_]!==U){if(X[_]==="\\")_++;_++}if(_<X.length)$=_+1,_++;continue}if(G==="{"||G==="("||G==="["){let U=G,K=G==="{"?"}":G==="("?")":"]",O=1;_++;while(_<X.length&&O>0){let T=X[_];if(T===U)O++;else if(T===K){if(O--,O===0)$=_+1}else if(T==='"'||T==="'"||T==="`"){let w=T;_++;while(_<X.length&&X[_]!==w){if(X[_]==="\\")_++;_++}}_++}continue}let z=X.slice(_),W=z.match(/^(true|false|null|undefined)\b/);if(W){_+=W[0].length;let U=X.slice(_);if(/^\s+[\w$]/.test(U)){$=_;break}$=_;continue}let q=z.match(/^-?\d+(\.\d+)?/);if(q){_+=q[0].length;let U=X.slice(_);if(/^\s+[\w$]/.test(U)){$=_;break}$=_;continue}let J=z.match(/^[\w$]+/);if(J){_+=J[0].length;let U=X.slice(_);if(/^\s+[\w$]/.test(U)){$=_;break}$=_;continue}_++}return $>0?$:Z}function h(Q){let Z=Q.trim(),Y=_Q(Z);if(Y!==-1)Z=Z.slice(0,Y).trim();let X=0;while(X<Z.length){let $=Z[X];if($==='"'||$==="'"||$==="`"){let G=$;X++;while(X<Z.length&&Z[X]!==G){if(Z[X]==="\\")X++;X++}X++;continue}if($==="{"||$==="("||$==="["){let G=1;X++;while(X<Z.length&&G>0){let H=Z[X];if(H==="{"||H==="("||H==="[")G++;else if(H==="}"||H===")"||H==="]")G--;else if(H==='"'||H==="'"||H==="`"){let z=H;X++;while(X<Z.length&&Z[X]!==z){if(Z[X]==="\\")X++;X++}}X++}continue}if($==="/"&&Z[X+1]==="*"){Z=Z.slice(0,X).trim();break}if($==="/"&&Z[X+1]==="/"){Z=Z.slice(0,X).trim();break}X++}return Z}function p(Q){let Z=[],Y="",X=0,$=0,_=0;while(_<Q.length){let G=Q[_];if(G==="/"&&Q[_+1]==="/"){let z=Q.indexOf(`
5
- `,_+2);if(z!==-1)Y+=Q.slice(_,z+1),_=z+1;else Y+=Q.slice(_),_=Q.length;continue}if(G==="/"&&Q[_+1]==="*"){let z=Q.indexOf("*/",_+2);if(z!==-1)Y+=Q.slice(_,z+2),_=z+2;else Y+=Q.slice(_),_=Q.length;continue}if(G==='"'||G==="'"||G==="`"){let z=G;Y+=G,_++;while(_<Q.length&&Q[_]!==z){if(Q[_]==="\\")Y+=Q[_],_++;if(_<Q.length)Y+=Q[_],_++}if(_<Q.length)Y+=Q[_],_++;continue}if(G==="<"){let z=Y.length>0?Y[Y.length-1]:"";if(/[\w$)]/.test(z))$++;Y+=G,_++;continue}if(G===">"){if(_>0&&Q[_-1]==="="){Y+=G,_++;continue}if($>0)$--;Y+=G,_++;continue}if(G==="{"||G==="("||G==="[")X++,Y+=G;else if(G==="}"||G===")"||G==="]")X--,Y+=G;else if(G===","&&X===0&&$===0)Z.push(Y),Y="";else Y+=G;_++}if(Y.trim())Z.push(Y);return Z}function v(Q,Z){let Y=zQ(Q,Z);if(Y)return Y;let X=qQ(Q,Z);if(X)return X;return null}function S(Q,Z){let Y=GQ(Q,Z);if(Y)return Y;let X=HQ(Q,Z);if(X)return X;return null}function A(Q,Z){let Y=[new RegExp(`import\\s*\\{[^}]*\\b${Z}\\b[^}]*\\}\\s*from\\s*['"]([^'"]+)['"]`),new RegExp(`import\\s+type\\s*\\{[^}]*\\b${Z}\\b[^}]*\\}\\s*from\\s*['"]([^'"]+)['"]`),new RegExp(`import\\s*\\{[^}]*\\bas\\s+${Z}\\b[^}]*\\}\\s*from\\s*['"]([^'"]+)['"]`),new RegExp(`import\\s+type\\s*\\{[^}]*\\bas\\s+${Z}\\b[^}]*\\}\\s*from\\s*['"]([^'"]+)['"]`),new RegExp(`import\\s+${Z}\\s+from\\s*['"]([^'"]+)['"]`),new RegExp(`import\\s*\\*\\s*as\\s+${Z}\\s+from\\s*['"]([^'"]+)['"]`),new RegExp(`export\\s*\\{[^}]*\\b${Z}\\b[^}]*\\}\\s*from\\s*['"]([^'"]+)['"]`),new RegExp(`export\\s*\\{[^}]*\\bas\\s+${Z}\\b[^}]*\\}\\s*from\\s*['"]([^'"]+)['"]`)];for(let X of Y){let $=X.exec(Q);if($)return $[1]}return null}function GQ(Q,Z){let X=new RegExp(`export\\s+(?:const|var|let)\\s+${Z}\\s*=\\s*\\$origin\\s*\\.\\s*props\\s*\\(`,"s").exec(Q);if(!X)return null;let $=X.index+X[0].length-1,_=L(Q,$);if(_===-1)return null;let G=Q.slice($+1,_).trim(),H=[];if(G.startsWith("[")){let J=L(G,0,"[","]");if(J!==-1){H=G.slice(1,J).split(",").map((O)=>O.trim()).filter((O)=>O&&/^\w+$/.test(O));let K=J+1;while(K<G.length&&/[\s,]/.test(G[K]))K++;G=G.slice(K)}}if(!G.startsWith("{"))return{attrs:[],parentNames:H};let z=L(G,0,"{","}");if(z===-1)return{attrs:[],parentNames:H};let W=G.slice(1,z);return{attrs:i(W),parentNames:H}}function HQ(Q,Z){let X=new RegExp(`export\\s+(?:const|var|let)\\s+${Z}\\s*=\\s*__createAttrs\\s*\\(\\s*\\{`,"s").exec(Q);if(!X)return null;let $=X.index+X[0].length-1,_=L(Q,$,"{","}");if(_===-1)return null;let G=Q.slice($+1,_),H=G.match(/__attrSchema\s*:\s*\{/);if(!H)return{attrs:[],parentNames:[]};let z=H.index+H[0].length-1,W=L(G,z,"{","}");if(W===-1)return{attrs:[],parentNames:[]};let q=G.slice(z+1,W),J=n(q),U=G.match(/__parents\s*:\s*\[([^\]]*)\]/),K=[];if(U&&U[1].trim())K=U[1].split(",").map((O)=>O.trim()).filter((O)=>O&&/^\w+$/.test(O));return{attrs:J,parentNames:K}}function zQ(Q,Z){let Y=JQ(Q,Z);if(Y)return Y;let X=WQ(Q,Z);if(X)return X;let $=UQ(Q,Z);if($)return $;return null}function JQ(Q,Z){let X=new RegExp(`export\\s+(?:const|var|let)\\s+${Z}\\s*=\\s*\\$origin\\s*\\(`,"s").exec(Q);if(!X)return null;let $=X.index+X[0].length-1,_=L(Q,$);if(_===-1)return null;let G=Q.slice($+1,_);return N(G)}function WQ(Q,Z){let X=new RegExp(`export\\s+function\\s+${Z}\\s*(?:<[^>]*>)?\\s*\\([^)]*\\)\\s*(?::\\s*[^{]+)?\\s*\\{`,"s").exec(Q);if(!X)return null;let $=X.index+X[0].length-1,_=L(Q,$,"{","}");if(_===-1)return null;let G=Q.slice($+1,_);return c(G)}function UQ(Q,Z){let X=new RegExp(`export\\s+(?:const|var|let)\\s+${Z}\\s*=\\s*(?:<[^>]*>)?\\s*\\([^)]*\\)\\s*(?::\\s*[^=]+)?\\s*=>\\s*`,"s").exec(Q);if(!X)return null;let $=Q.slice(X.index+X[0].length).trim();if($.startsWith("$origin(")){let _=X.index+X[0].length+$.indexOf("$origin(")+8,G=L(Q,_-1);if(G===-1)return null;let H=Q.slice(_,G);return N(H)}if($.startsWith("{")){let _=X.index+X[0].length,G=L(Q,_,"{","}");if(G===-1)return null;let H=Q.slice(_+1,G);return c(H)}return null}function c(Q){let Z=Q.match(/(?:return\s+)?\$origin\s*\(/);if(!Z)return null;let Y=Z.index+Z[0].length-1,X=L(Q,Y);if(X===-1)return null;let $=Q.slice(Y+1,X);return N($)}function N(Q){let Z=[],Y=Q.trim();if(Y.startsWith("[")){let W=L(Y,0,"[","]");if(W!==-1){Z=Y.slice(1,W).split(",").map((U)=>U.trim()).filter((U)=>U&&/^\w+$/.test(U));let J=W+1;while(J<Y.length&&/[\s,]/.test(Y[J]))J++;Y=Y.slice(J)}}let X=Y.match(/(\w+)\s*:\s*\$origin\s*\.\s*props\s*\(\s*\{/);if(!X){let W=Y.match(/(?:props|attrs)\s*:\s*([A-Z]\w*)\b/);if(W){let q=W[1];if(!["Object","Array","String","Number","Boolean"].includes(q))return{attrs:[],parentNames:Z,propsRef:q}}return{attrs:[],parentNames:Z}}let $=X.index,_=Y.indexOf("{",$+X[0].length-1),G=L(Y,_,"{","}");if(G===-1)return{attrs:[],parentNames:Z};let H=Y.slice(_+1,G);return{attrs:i(H),parentNames:Z}}function qQ(Q,Z){let X=new RegExp(`export\\s+(?:const|var|let)\\s+${Z}\\s*=\\s*__createOrigin\\s*\\(\\s*\\{`,"s").exec(Q);if(!X)return null;let $=X.index+X[0].length-1,_=L(Q,$,"{","}");if(_===-1)return null;let G=Q.slice($+1,_),H=G.match(/__attrSchema\s*:\s*\{/);if(!H)return{attrs:[],parentNames:[]};let z=H.index+H[0].length-1,W=L(G,z,"{","}");if(W===-1)return{attrs:[],parentNames:[]};let q=G.slice(z+1,W),J=n(q),U=G.match(/__parents\s*:\s*\[([^\]]*)\]/),K=[];if(U&&U[1].trim())K=U[1].split(",").map((w)=>w.trim()).filter((w)=>w&&/^\w+$/.test(w));let O=G.match(/__propsRef\s*:\s*(\w+)/),T=O?O[1]:void 0;return{attrs:J,parentNames:K,propsRef:T}}function n(Q){let Z=[],Y=0;while(Y<Q.length){while(Y<Q.length&&/[\s,]/.test(Q[Y]))Y++;if(Y>=Q.length)break;if(Q.slice(Y,Y+2)==="/*"){let O=Q.indexOf("*/",Y+2);if(O!==-1){Y=O+2;continue}}let X=Q.slice(Y).match(/^(\w+)\s*:/);if(!X)break;let $=X[1];Y+=X[0].length;while(Y<Q.length&&/\s/.test(Q[Y]))Y++;if(Q[Y]!=="{")break;let _=Y,G=L(Q,_,"{","}");if(G===-1)break;let H=Q.slice(_+1,G),z="undefined",W=!1,q=!1,J=H.match(/\bdefault\s*:\s*/);if(J){let O=J.index+J[0].length,T=0,w=O;while(w<H.length){let F=H[w];if(F==="{"||F==="("||F==="[")T++;else if(F==="}"||F===")"||F==="]")T--;else if(F===","&&T===0)break;w++}z=H.slice(O,w).trim()}let U=H.match(/\bbindable\s*:\s*(true|false)/);if(U)W=U[1]==="true";let K=H.match(/\bhasDefault\s*:\s*(true|false)/);if(K)q=K[1]==="true";Z.push({key:$,defaultValue:z,bindable:W,hasDefault:q}),Y=G+1}return Z}function i(Q){let Z=[],Y=p(Q);for(let X of Y){let $=X.trim();if(!$)continue;if($=m($),!$)continue;let _=$.indexOf(":");if(_===-1)continue;let G=$.slice(0,_).trim(),H=$.slice(_+1).trim();H=h(H);let z=l(H);if(z!==-1)H=H.slice(0,z).trim();let W=d(H);if(W.isBindable){let q=W.innerValue,J=q!==""&&q!=="undefined";Z.push({key:G,defaultValue:q,bindable:!0,hasDefault:J})}else{let q=H!=="undefined";Z.push({key:G,defaultValue:H,bindable:!1,hasDefault:q})}}return Z}function k(Q){return`___${Q}`}function y(Q,Z){let Y=k(Q);return`${Q}: ${Y} = ${Z}`}function s(Q){let Z=k(Q);return`${Q}: ${Z}`}function o(Q){let Z=k(Q);return`get ${Q}() { return ${Z} }`}function a(Q){let Z=k(Q);return`set ${Q}(v) { ${Z} = v }`}function b(Q){let Z=Q.trim();if(!Z.endsWith(")"))return!1;let Y=0;for(let X=Z.length-1;X>=0;X--)if(Z[X]===")")Y++;else if(Z[X]==="("){if(Y--,Y===0)return!0}return!1}function r(Q){let Z=Q.trim(),Y=0;for(let X=Z.length-1;X>=0;X--)if(Z[X]===")")Y++;else if(Z[X]==="("){if(Y--,Y===0)return Z.slice(0,X)}return Z}function KQ(Q){let Z=Q.trim(),Y=0;for(let X=0;X<Z.length;X++){let $=Z[X];if($==="(")Y++;else if($===")")Y--;else if($==="<"&&Y===0)return!0}return!1}function lQ(Q){let Z=Q.trim(),Y=Z.indexOf("<");if(Y!==-1)return Z.slice(0,Y);let X=Z.indexOf("(");return X===-1?Z:Z.slice(0,X)}function mQ(Q){let Z=Q.trim();if(KQ(Z)&&!b(Z))return`${Z}()`;return Z}function OQ(Q){if(b(Q))return`ReturnType<typeof ${r(Q)}>`;return`typeof ${Q}`}function wQ(Q,Z,Y={}){let{useNewApi:X=!0}=Y,$=[];for(let H of Q)if(H.bindable)if(H.hasDefault)$.push(y(H.key,`$bindable(${H.defaultValue})`));else $.push(y(H.key,"$bindable()"));else if(H.hasDefault)$.push(y(H.key,H.defaultValue));else $.push(s(H.key));let _=OQ(Z),G=X?"$origin.Props":"$origin.Props";return`let { ${$.join(", ")} }: ${G}<${_}> = $props()`}function TQ(Q,Z){let Y=[];for(let X of Z)if(Y.push(o(X.key)),X.bindable)Y.push(a(X.key));return`${Q}({ ${Y.join(", ")} })`}function LQ(Q){let Z=[],Y=[];for(let $ of Q.attrs){let _=P($.defaultValue),G=$.hasDefault?"?":"";if(Z.push(`${$.key}${G}: ${_}`),$.bindable)Y.push($.key)}return{interfaceContent:Z.length>0?`{ ${Z.join("; ")} }`:"{}",bindings:Y}}function P(Q){if(Q==="undefined")return"unknown";if(Q==="true"||Q==="false")return"boolean";if(/^-?\d+$/.test(Q))return"number";if(/^-?\d+\.\d+$/.test(Q))return"number";if(/^['"]/.test(Q))return"string";if(Q.startsWith("["))return"unknown[]";if(Q.startsWith("{"))return"Record<string, unknown>";if(Q==="null")return"null";return"unknown"}function f(Q,Z,Y,X="regenerated on save"){let $=[],_=[];for(let z of Y.attrs){let W=P(z.defaultValue),q=z.hasDefault?"?":"";if($.push(` ${z.key}${q}: ${W};`),z.bindable)_.push(`"${z.key}"`)}let G=$.length>0?`{
1
+ import{existsSync as zQ}from"node:fs";import{writeFile as gQ,unlink as fQ}from"node:fs/promises";var JQ={hasMacros:/\$origin\s*[.(]/,origin:/\$origin\s*\(/g,originWithParents:/\$origin\s*\(\s*\[/,originPropsInOrigin:/\$origin\s*\.\s*props\s*\(\s*\{/g,standaloneOriginProps:/(?:let|const|export\s+const|export\s+let)\s+\w+\s*=\s*\$origin\s*\.\s*props\s*\(/g,bindableInAttrs:/\$bindable\s*\(/g,originComponent:/\$origin\s*\.\s*component\s*\(\s*(\w+)\s*\)/g,originCreate:/\$origin\s*\.\s*create\s*\(\s*(\w+)\s*(?:,\s*(\{[^}]*\}))?\s*\)/g,originBind:/\$origin\s*\.\s*bind\s*\(\s*([^)]+)\s*\)/g,originForOrigin:/\$origin\s*\.\s*for\s*\(\s*(\w+)\s*\)/g,originForElement:/\$origin\s*\.\s*for\s*\(\s*['"]([\w-]+)['"]\s*\)/g};function lQ(Q){return JQ.hasMacros.test(Q)}function dQ(Q,Z){let Y=0;while(Y<Z){let X=Q[Y];if(X==="/"&&Q[Y+1]==="/"){let $=Q.indexOf(`
2
+ `,Y+2);if($===-1)return Z>Y;if(Z>Y&&Z<=$)return!0;Y=$+1;continue}if(X==="/"&&Q[Y+1]==="*"){let $=Q.indexOf("*/",Y+2);if($===-1)return Z>Y;if(Z>Y&&Z<$+2)return!0;Y=$+2;continue}if(X==='"'||X==="'"||X==="`"){let $=X,_=Y;Y++;while(Y<Q.length){if(Q[Y]==="\\"){Y+=2;continue}if(Q[Y]===$){if(Z>_&&Z<=Y)return!0;Y++;break}if($==="`"&&Q[Y]==="$"&&Q[Y+1]==="{"){let G=Y;Y+=2;let H=1;while(Y<Q.length&&H>0){if(Q[Y]==="{")H++;else if(Q[Y]==="}")H--;else if(Q[Y]==="\\")Y++;Y++}if(Z>_&&Z<G)return!0;continue}Y++}continue}Y++}return!1}function p(Q){if(!Q.startsWith("$bindable"))return{isBindable:!1};let Z=9;if(Q[Z]==="<"){let _=1;Z++;while(Z<Q.length&&_>0){let G=Q[Z];if(G==="="&&Q[Z+1]===">"){Z+=2;continue}if(G==="<")_++;else if(G===">")_--;Z++}}while(Z<Q.length&&/\s/.test(Q[Z]))Z++;if(Q[Z]!=="(")return{isBindable:!1};let Y=Z,X=T(Q,Y);if(X===-1)return{isBindable:!1};return{isBindable:!0,innerValue:Q.slice(Y+1,X).trim()||"undefined"}}function c(Q){let Z=0,Y=0;for(let X=0;X<Q.length-4;X++){let $=Q[X];if($==='"'||$==="'"||$==="`"){let _=$;X++;while(X<Q.length&&Q[X]!==_){if(Q[X]==="\\")X++;X++}continue}if($==="{"||$==="("||$==="[")Z++;else if($==="}"||$===")"||$==="]")Z--;else if($==="<"){let _=X>0?Q[X-1]:"";if(/[\w$)]/.test(_))Y++}else if($===">"){if(X>0&&Q[X-1]==="=")continue;if(Y>0)Y--}else if(Z===0&&Y===0&&Q.slice(X,X+4)===" as ")return X}return-1}function T(Q,Z,Y="(",X=")"){let $=0;for(let _=Z;_<Q.length;_++){let G=Q[_];if(G==="/"&&Q[_+1]==="/"){let H=Q.indexOf(`
3
+ `,_+2);if(H!==-1)_=H;else _=Q.length;continue}if(G==="/"&&Q[_+1]==="*"){let H=Q.indexOf("*/",_+2);if(H!==-1)_=H+1;else _=Q.length;continue}if(G==='"'||G==="'"||G==="`"){let H=G;_++;while(_<Q.length&&Q[_]!==H){if(Q[_]==="\\")_++;_++}continue}if(G===Y)$++;else if(G===X){if($--,$===0)return _}}return-1}function n(Q){let Z=Q.trim();while(!0){if(Z.startsWith("/*")){let X=Z.indexOf("*/");if(X!==-1){Z=Z.slice(X+2).trim();continue}break}if(Z.startsWith("//")){let X=Z.indexOf(`
4
+ `);if(X!==-1){Z=Z.slice(X+1).trim();continue}Z="";break}break}let Y=Z.indexOf("*/");if(Y!==-1){let X=Z.slice(Y+2).trim();if(X.match(/^(\w+)\s*:/))Z=X}return Z}function WQ(Q){let Z=0,Y=0;while(Z<Q.length){let X=Q[Z];if(X==='"'||X==="'"||X==="`"){let _=X;Z++;while(Z<Q.length&&Q[Z]!==_){if(Q[Z]==="\\")Z++;Z++}Z++;continue}if(X==="/"&&Q[Z+1]==="*"){Y++,Z+=2;continue}if(X==="*"&&Q[Z+1]==="/")if(Y>0){Y--,Z+=2;continue}else return qQ(Q,Z);Z++}return-1}function qQ(Q,Z){let Y=Z-1;while(Y>=0&&/\s/.test(Q[Y]))Y--;let X=Q.slice(0,Y+1),$=0,_=0;while(_<X.length){let G=X[_];if(G==='"'||G==="'"||G==="`"){let q=G;_++;while(_<X.length&&X[_]!==q){if(X[_]==="\\")_++;_++}if(_<X.length)$=_+1,_++;continue}if(G==="{"||G==="("||G==="["){let q=G,w=G==="{"?"}":G==="("?")":"]",O=1;_++;while(_<X.length&&O>0){let K=X[_];if(K===q)O++;else if(K===w){if(O--,O===0)$=_+1}else if(K==='"'||K==="'"||K==="`"){let F=K;_++;while(_<X.length&&X[_]!==F){if(X[_]==="\\")_++;_++}}_++}continue}let z=X.slice(_),W=z.match(/^(true|false|null|undefined)\b/);if(W){_+=W[0].length;let q=X.slice(_);if(/^\s+[\w$]/.test(q)){$=_;break}$=_;continue}let U=z.match(/^-?\d+(\.\d+)?/);if(U){_+=U[0].length;let q=X.slice(_);if(/^\s+[\w$]/.test(q)){$=_;break}$=_;continue}let J=z.match(/^[\w$]+/);if(J){_+=J[0].length;let q=X.slice(_);if(/^\s+[\w$]/.test(q)){$=_;break}$=_;continue}_++}return $>0?$:Z}function i(Q){let Z=Q.trim(),Y=WQ(Z);if(Y!==-1)Z=Z.slice(0,Y).trim();let X=0;while(X<Z.length){let $=Z[X];if($==='"'||$==="'"||$==="`"){let G=$;X++;while(X<Z.length&&Z[X]!==G){if(Z[X]==="\\")X++;X++}X++;continue}if($==="{"||$==="("||$==="["){let G=1;X++;while(X<Z.length&&G>0){let H=Z[X];if(H==="{"||H==="("||H==="[")G++;else if(H==="}"||H===")"||H==="]")G--;else if(H==='"'||H==="'"||H==="`"){let z=H;X++;while(X<Z.length&&Z[X]!==z){if(Z[X]==="\\")X++;X++}}X++}continue}if($==="/"&&Z[X+1]==="*"){Z=Z.slice(0,X).trim();break}if($==="/"&&Z[X+1]==="/"){Z=Z.slice(0,X).trim();break}X++}return Z}function s(Q){let Z=[],Y="",X=0,$=0,_=0;while(_<Q.length){let G=Q[_];if(G==="/"&&Q[_+1]==="/"){let z=Q.indexOf(`
5
+ `,_+2);if(z!==-1)Y+=Q.slice(_,z+1),_=z+1;else Y+=Q.slice(_),_=Q.length;continue}if(G==="/"&&Q[_+1]==="*"){let z=Q.indexOf("*/",_+2);if(z!==-1)Y+=Q.slice(_,z+2),_=z+2;else Y+=Q.slice(_),_=Q.length;continue}if(G==='"'||G==="'"||G==="`"){let z=G;Y+=G,_++;while(_<Q.length&&Q[_]!==z){if(Q[_]==="\\")Y+=Q[_],_++;if(_<Q.length)Y+=Q[_],_++}if(_<Q.length)Y+=Q[_],_++;continue}if(G==="<"){let z=Y.length>0?Y[Y.length-1]:"";if(/[\w$)]/.test(z))$++;Y+=G,_++;continue}if(G===">"){if(_>0&&Q[_-1]==="="){Y+=G,_++;continue}if($>0)$--;Y+=G,_++;continue}if(G==="{"||G==="("||G==="[")X++,Y+=G;else if(G==="}"||G===")"||G==="]")X--,Y+=G;else if(G===","&&X===0&&$===0)Z.push(Y),Y="";else Y+=G;_++}if(Y.trim())Z.push(Y);return Z}function g(Q,Z){let Y=wQ(Q,Z);if(Y)return Y;let X=LQ(Q,Z);if(X)return X;return null}function v(Q,Z){let Y=UQ(Q,Z);if(Y)return Y;let X=OQ(Q,Z);if(X)return X;return null}function I(Q,Z){let Y=[new RegExp(`import\\s*\\{[^}]*\\b${Z}\\b[^}]*\\}\\s*from\\s*['"]([^'"]+)['"]`),new RegExp(`import\\s+type\\s*\\{[^}]*\\b${Z}\\b[^}]*\\}\\s*from\\s*['"]([^'"]+)['"]`),new RegExp(`import\\s*\\{[^}]*\\bas\\s+${Z}\\b[^}]*\\}\\s*from\\s*['"]([^'"]+)['"]`),new RegExp(`import\\s+type\\s*\\{[^}]*\\bas\\s+${Z}\\b[^}]*\\}\\s*from\\s*['"]([^'"]+)['"]`),new RegExp(`import\\s+${Z}\\s+from\\s*['"]([^'"]+)['"]`),new RegExp(`import\\s*\\*\\s*as\\s+${Z}\\s+from\\s*['"]([^'"]+)['"]`),new RegExp(`export\\s*\\{[^}]*\\b${Z}\\b[^}]*\\}\\s*from\\s*['"]([^'"]+)['"]`),new RegExp(`export\\s*\\{[^}]*\\bas\\s+${Z}\\b[^}]*\\}\\s*from\\s*['"]([^'"]+)['"]`)];for(let X of Y){let $=X.exec(Q);if($)return $[1]}return null}function UQ(Q,Z){let X=new RegExp(`export\\s+(?:const|var|let)\\s+${Z}\\s*=\\s*\\$origin\\s*\\.\\s*props\\s*\\(`,"s").exec(Q);if(!X)return null;let $=X.index+X[0].length-1,_=T(Q,$);if(_===-1)return null;let G=Q.slice($+1,_).trim(),H=[];if(G.startsWith("[")){let J=T(G,0,"[","]");if(J!==-1){H=G.slice(1,J).split(",").map((O)=>O.trim()).map((O)=>{let K=O.match(/^(\w+)\s*\(/);if(K)return K[1];return O}).filter((O)=>O&&/^\w+$/.test(O));let w=J+1;while(w<G.length&&/[\s,]/.test(G[w]))w++;G=G.slice(w)}}if(!G.startsWith("{"))return{attrs:[],parentNames:H};let z=T(G,0,"{","}");if(z===-1)return{attrs:[],parentNames:H};let W=G.slice(1,z);return{attrs:a(W),parentNames:H}}function OQ(Q,Z){let X=new RegExp(`export\\s+(?:const|var|let)\\s+${Z}\\s*=\\s*__createAttrs\\s*\\(\\s*\\{`,"s").exec(Q);if(!X)return null;let $=X.index+X[0].length-1,_=T(Q,$,"{","}");if(_===-1)return null;let G=Q.slice($+1,_),H=G.match(/__attrSchema\s*:\s*\{/);if(!H)return{attrs:[],parentNames:[]};let z=H.index+H[0].length-1,W=T(G,z,"{","}");if(W===-1)return{attrs:[],parentNames:[]};let U=G.slice(z+1,W),J=r(U),q=G.match(/__parents\s*:\s*\[([^\]]*)\]/),w=[];if(q&&q[1].trim())w=q[1].split(",").map((O)=>O.trim()).filter((O)=>O&&/^\w+$/.test(O));return{attrs:J,parentNames:w}}function wQ(Q,Z){let Y=FQ(Q,Z);if(Y)return Y;let X=KQ(Q,Z);if(X)return X;let $=TQ(Q,Z);if($)return $;return null}function FQ(Q,Z){let X=new RegExp(`export\\s+(?:const|var|let)\\s+${Z}\\s*=\\s*\\$origin\\s*\\(`,"s").exec(Q);if(!X)return null;let $=X.index+X[0].length-1,_=T(Q,$);if(_===-1)return null;let G=Q.slice($+1,_);return f(G)}function KQ(Q,Z){let X=new RegExp(`export\\s+function\\s+${Z}\\s*(?:<[^>]*>)?\\s*\\([^)]*\\)\\s*(?::\\s*[^{]+)?\\s*\\{`,"s").exec(Q);if(!X)return null;let $=X.index+X[0].length-1,_=T(Q,$,"{","}");if(_===-1)return null;let G=Q.slice($+1,_);return o(G)}function TQ(Q,Z){let X=new RegExp(`export\\s+(?:const|var|let)\\s+${Z}\\s*=\\s*(?:<[^>]*>)?\\s*\\([^)]*\\)\\s*(?::\\s*[^=]+)?\\s*=>\\s*`,"s").exec(Q);if(!X)return null;let $=Q.slice(X.index+X[0].length).trim();if($.startsWith("$origin(")){let _=X.index+X[0].length+$.indexOf("$origin(")+8,G=T(Q,_-1);if(G===-1)return null;let H=Q.slice(_,G);return f(H)}if($.startsWith("{")){let _=X.index+X[0].length,G=T(Q,_,"{","}");if(G===-1)return null;let H=Q.slice(_+1,G);return o(H)}return null}function o(Q){let Z=Q.match(/(?:return\s+)?\$origin\s*\(/);if(!Z)return null;let Y=Z.index+Z[0].length-1,X=T(Q,Y);if(X===-1)return null;let $=Q.slice(Y+1,X);return f($)}function f(Q){let Z=[],Y=Q.trim();if(Y.startsWith("[")){let W=T(Y,0,"[","]");if(W!==-1){Z=Y.slice(1,W).split(",").map((q)=>q.trim()).map((q)=>{let w=q.match(/^(\w+)\s*\(/);if(w)return w[1];return q}).filter((q)=>q&&/^\w+$/.test(q));let J=W+1;while(J<Y.length&&/[\s,]/.test(Y[J]))J++;Y=Y.slice(J)}}let X=Y.match(/(\w+)\s*:\s*\$origin\s*\.\s*props\s*\(\s*\{/);if(!X){let W=Y.match(/(?:props|attrs)\s*:\s*([A-Z]\w*)\b/);if(W){let U=W[1];if(!["Object","Array","String","Number","Boolean"].includes(U))return{attrs:[],parentNames:Z,propsRef:U}}return{attrs:[],parentNames:Z}}let $=X.index,_=Y.indexOf("{",$+X[0].length-1),G=T(Y,_,"{","}");if(G===-1)return{attrs:[],parentNames:Z};let H=Y.slice(_+1,G);return{attrs:a(H),parentNames:Z}}function LQ(Q,Z){let X=new RegExp(`export\\s+(?:const|var|let)\\s+${Z}\\s*=\\s*__createOrigin\\s*\\(\\s*\\{`,"s").exec(Q);if(!X)return null;let $=X.index+X[0].length-1,_=T(Q,$,"{","}");if(_===-1)return null;let G=Q.slice($+1,_),H=G.match(/__attrSchema\s*:\s*\{/);if(!H)return{attrs:[],parentNames:[]};let z=H.index+H[0].length-1,W=T(G,z,"{","}");if(W===-1)return{attrs:[],parentNames:[]};let U=G.slice(z+1,W),J=r(U),q=G.match(/__parents\s*:\s*\[([^\]]*)\]/),w=[];if(q&&q[1].trim())w=q[1].split(",").map((F)=>F.trim()).filter((F)=>F&&/^\w+$/.test(F));let O=G.match(/__propsRef\s*:\s*(\w+)/),K=O?O[1]:void 0;return{attrs:J,parentNames:w,propsRef:K}}function r(Q){let Z=[],Y=0;while(Y<Q.length){while(Y<Q.length&&/[\s,]/.test(Q[Y]))Y++;if(Y>=Q.length)break;if(Q.slice(Y,Y+2)==="/*"){let O=Q.indexOf("*/",Y+2);if(O!==-1){Y=O+2;continue}}let X=Q.slice(Y).match(/^(\w+)\s*:/);if(!X)break;let $=X[1];Y+=X[0].length;while(Y<Q.length&&/\s/.test(Q[Y]))Y++;if(Q[Y]!=="{")break;let _=Y,G=T(Q,_,"{","}");if(G===-1)break;let H=Q.slice(_+1,G),z="undefined",W=!1,U=!1,J=H.match(/\bdefault\s*:\s*/);if(J){let O=J.index+J[0].length,K=0,F=O;while(F<H.length){let R=H[F];if(R==="{"||R==="("||R==="[")K++;else if(R==="}"||R===")"||R==="]")K--;else if(R===","&&K===0)break;F++}z=H.slice(O,F).trim()}let q=H.match(/\bbindable\s*:\s*(true|false)/);if(q)W=q[1]==="true";let w=H.match(/\bhasDefault\s*:\s*(true|false)/);if(w)U=w[1]==="true";Z.push({key:$,defaultValue:z,bindable:W,hasDefault:U}),Y=G+1}return Z}function a(Q){let Z=[],Y=s(Q);for(let X of Y){let $=X.trim();if(!$)continue;if($=n($),!$)continue;let _=$.indexOf(":");if(_===-1)continue;let G=$.slice(0,_).trim(),H=$.slice(_+1).trim();H=i(H);let z=c(H);if(z!==-1)H=H.slice(0,z).trim();let W=p(H);if(W.isBindable){let U=W.innerValue,J=U!==""&&U!=="undefined";Z.push({key:G,defaultValue:U,bindable:!0,hasDefault:J})}else{let U=H!=="undefined";Z.push({key:G,defaultValue:H,bindable:!1,hasDefault:U})}}return Z}function N(Q){return`___${Q}`}function b(Q,Z){let Y=N(Q);return`${Q}: ${Y} = ${Z}`}function t(Q){let Z=N(Q);return`${Q}: ${Z}`}function e(Q){let Z=N(Q);return`get ${Q}() { return ${Z} }`}function QQ(Q){let Z=N(Q);return`set ${Q}(v) { ${Z} = v }`}function u(Q){let Z=Q.trim();if(!Z.endsWith(")"))return!1;let Y=0;for(let X=Z.length-1;X>=0;X--)if(Z[X]===")")Y++;else if(Z[X]==="("){if(Y--,Y===0)return!0}return!1}function XQ(Q){let Z=Q.trim(),Y=0;for(let X=Z.length-1;X>=0;X--)if(Z[X]===")")Y++;else if(Z[X]==="("){if(Y--,Y===0)return Z.slice(0,X)}return Z}function jQ(Q){let Z=Q.trim(),Y=0;for(let X=0;X<Z.length;X++){let $=Z[X];if($==="(")Y++;else if($===")")Y--;else if($==="<"&&Y===0)return!0}return!1}function sQ(Q){let Z=Q.trim(),Y=Z.indexOf("<");if(Y!==-1)return Z.slice(0,Y);let X=Z.indexOf("(");return X===-1?Z:Z.slice(0,X)}function oQ(Q){let Z=Q.trim();if(jQ(Z)&&!u(Z))return`${Z}()`;return Z}function BQ(Q){if(u(Q))return`ReturnType<typeof ${XQ(Q)}>`;return`typeof ${Q}`}function RQ(Q,Z,Y={}){let{useNewApi:X=!0,useUserPropsType:$=!1}=Y,_=[];for(let z of Q)if(z.bindable)if(z.hasDefault)_.push(b(z.key,`$bindable(${z.defaultValue})`));else _.push(b(z.key,"$bindable()"));else if(z.hasDefault)_.push(b(z.key,z.defaultValue));else _.push(t(z.key));if($)return`let { ${_.join(", ")} }: $$Props = $props()`;let G=BQ(Z),H=X?"$origin.Props":"$origin.Props";return`let { ${_.join(", ")} }: ${H}<${G}> = $props()`}function VQ(Q,Z){let Y=[];for(let X of Z)if(Y.push(e(X.key)),X.bindable)Y.push(QQ(X.key));return`${Q}({ ${Y.join(", ")} })`}function AQ(Q){let Z=[],Y=[];for(let $ of Q.attrs){let _=l($.defaultValue),G=$.hasDefault?"?":"";if(Z.push(`${$.key}${G}: ${_}`),$.bindable)Y.push($.key)}return{interfaceContent:Z.length>0?`{ ${Z.join("; ")} }`:"{}",bindings:Y}}function l(Q){if(Q==="undefined")return"unknown";if(Q==="true"||Q==="false")return"boolean";if(/^-?\d+$/.test(Q))return"number";if(/^-?\d+\.\d+$/.test(Q))return"number";if(/^['"]/.test(Q))return"string";if(Q.startsWith("["))return"unknown[]";if(Q.startsWith("{"))return"Record<string, unknown>";if(Q==="null")return"null";return"unknown"}function d(Q,Z,Y,X="regenerated on save"){let $=[],_=[];for(let z of Y.attrs){let W=l(z.defaultValue),U=z.hasDefault?"?":"";if($.push(` ${z.key}${U}: ${W};`),z.bindable)_.push(`"${z.key}"`)}let G=$.length>0?`{
6
6
  ${$.join(`
7
7
  `)}
8
8
  }`:"{}",H=_.length>0?_.join(" | "):"never";return`// Auto-generated by svelte-origin
@@ -20,5 +20,5 @@ type Props = ${G};
20
20
 
21
21
  declare const __component: Component<Props, {}, ${H}>;
22
22
  export default __component;
23
- `}import{readFileSync as DQ}from"node:fs";import{dirname as MQ}from"node:path";import{existsSync as j,readFileSync as g,statSync as FQ}from"node:fs";import{dirname as E,join as B,resolve as R,isAbsolute as V}from"node:path";function jQ(Q){let Z="",Y=!1,X=!1,$=!1,_=0;while(_<Q.length){let G=Q[_],H=Q[_+1];if(X){if(G===`
24
- `)X=!1,Z+=G;_++;continue}if($){if(G==="*"&&H==="/"){$=!1,_+=2;continue}_++;continue}if(Y){if(Z+=G,G==="\\"&&H){Z+=H,_+=2;continue}if(G==='"')Y=!1;_++;continue}if(G==='"'){Y=!0,Z+=G,_++;continue}if(G==="/"&&H==="/"){X=!0,_+=2;continue}if(G==="/"&&H==="*"){$=!0,_+=2;continue}Z+=G,_++}return Z}function t(Q,Z=new Set){let Y=R(Q);if(Z.has(Y))return null;if(Z.add(Y),!j(Y))return null;try{let X=g(Y,"utf-8"),$=jQ(X),_=JSON.parse($),G=E(Y),H={},z=_.compilerOptions?.baseUrl,W=_.extends;if(W){let q=Array.isArray(W)?W:[W];for(let J of q){let U;if(J.startsWith("."))U=R(G,J);else if(J.startsWith("/")||/^[a-zA-Z]:/.test(J))U=J;else{let O=BQ(J,G);if(O)U=O;else continue}if(!U.endsWith(".json")){if(j(U+".json"))U=U+".json";else if(j(B(U,"tsconfig.json")))U=B(U,"tsconfig.json")}let K=t(U,Z);if(K){if(K.paths)H={...K.paths,...H};if(K.baseUrl&&!z){let O=E(U);z=R(O,K.baseUrl)}}}}if(_.compilerOptions?.paths)H={...H,..._.compilerOptions.paths};if(z&&!V(z))z=R(G,z);return{paths:Object.keys(H).length>0?H:void 0,baseUrl:z}}catch{return null}}function BQ(Q,Z){let Y=Z,X=V(Z)?(Z.match(/^[a-zA-Z]:[/\\]/)||["/"])[0]:"/";while(Y!==X&&Y!==E(Y)){let $=B(Y,"node_modules",Q);if(j($)){if($.endsWith(".json"))return $;let _=B($,"tsconfig.json");if(j(_))return _;if(j($+".json"))return $+".json"}Y=E(Y)}return null}function RQ(Q,Z){let Y={};for(let[X,$]of Object.entries(Q)){if(!$||$.length===0)continue;let _=$[0],G=X.endsWith("/*"),H=G?X.slice(0,-2):X;if(G&&_.endsWith("/*"))_=_.slice(0,-2);let z=V(_)?_:R(Z,_);Y[H]=z}return Y}function VQ(Q,Z){if(!j(Q))return{};try{let Y=g(Q,"utf-8"),X={},$=Y.match(/alias\s*:\s*\{([^}]+)\}/s);if(!$)return{};let _=$[1],G=/['"]?(\$[\w-]+)['"]?\s*:\s*['"]([^'"]+)['"]/g,H;while((H=G.exec(_))!==null){let[,z,W]=H,q=V(W)?W:R(Z,W);X[z]=q}return X}catch{return{}}}function AQ(Q){let Z=[],Y=["tsconfig.json","jsconfig.json",".svelte-kit/tsconfig.json"];for(let X of Y){let $=R(Q,X);if(j($))Z.push($)}return Z}function tQ(Q={}){let{aliases:Z={},root:Y=process.cwd(),autoDetect:X=!0,tsconfig:$,svelteConfig:_}=Q,G=V(Y)?Y:R(process.cwd(),Y),H={};if(X){let z=$?[V($)?$:R(G,$)]:AQ(G);for(let J of z){let U=t(J);if(U?.paths){let K=U.baseUrl||E(J);H={...RQ(U.paths,K),...H}}}let W=_?V(_)?_:R(G,_):R(G,"svelte.config.js"),q=VQ(W,G);H={...H,...q}}for(let[z,W]of Object.entries(Z))H[z]=V(W)?W:R(G,W);return{aliases:H,root:G}}function e(Q,Z,Y){if(Q.startsWith("."))return R(Y,Q);let X=Object.entries(Z).sort((_,G)=>G[0].length-_[0].length);for(let[_,G]of X){if(Q===_)return G;if(Q.startsWith(_+"/")){let H=Q.slice(_.length+1);return B(G,H)}}let $=EQ(Q,Y);if($)return $;return null}function EQ(Q,Z){if(Q.startsWith(".")||Q.startsWith("/")||/^[a-zA-Z]:/.test(Q))return null;let Y,X;if(Q.startsWith("@")){let G=Q.split("/");if(G.length<2)return null;Y=`${G[0]}/${G[1]}`,X=G.slice(2).join("/")}else{let G=Q.indexOf("/");if(G===-1)Y=Q,X="";else Y=Q.slice(0,G),X=Q.slice(G+1)}let $=Z,_=V(Z)?(Z.match(/^[a-zA-Z]:[/\\]/)||["/"])[0]:"/";while($!==_&&$!==E($)){let G=B($,"node_modules"),H=B(G,Y);if(j(H)){let z=B(H,"package.json"),W=X?`./${X}`:".";if(j(z))try{let q=JSON.parse(g(z,"utf-8"));if(q.exports){let J=IQ(q.exports,W);if(J)return B(H,J)}if(!X){let J=q.module||q.main||"index.js";return B(H,J)}}catch{}if(X)return B(H,X);return B(H,"index.js")}$=E($)}return null}function IQ(Q,Z){if(typeof Q==="string")return Z==="."?Q:null;if(typeof Q!=="object"||Q===null)return null;let Y=Q[Z];if(Y)return C(Y);if(Z==="."&&Q["."])return C(Q["."]);if(Z==="."){let X=C(Q);if(X)return X}return null}function C(Q){if(typeof Q==="string")return Q;if(typeof Q!=="object"||Q===null)return null;let Z=Q,Y=["svelte","import","module","default","require"];for(let X of Y)if(X in Z){let $=Z[X];if(typeof $==="string")return $;let _=C($);if(_)return _}return null}function QQ(Q){if(j(Q))try{let X=FQ(Q);if(X.isFile())return Q;if(X.isDirectory()){let $=["index.ts","index.js"];for(let _ of $){let G=B(Q,_);if(j(G))return G}}}catch{}let Z=[".ts",".js",".svelte.ts",".svelte.js"];if(Q.endsWith(".svelte")){let X=Q+".ts";if(j(X))return X}if(Q.endsWith(".svelte.js")){let X=Q.slice(0,-3)+".ts";if(j(X))return X}for(let X of Z){let $=Q+X;if(j($))return $}let Y=["/index.ts","/index.js"];for(let X of Y){let $=Q+X;if(j($))return $}return null}function D(Q,Z,Y=!1){for(let X of Z){let $=Q.findIndex((_)=>_.key===X.key);if($===-1)Q.push(X);else if(Y)Q[$]=X}}function SQ(Q,Z,Y,X){let $=e(Q,Y,Z);if(!$){if(X)console.log(`[svelte-origin] No alias match for ${Q}, skipping`);return null}if(X)console.log(`[svelte-origin] Resolved path: ${$}`);let _=QQ($);if(!_){if(X)console.log(`[svelte-origin] Could not find file for ${$}`);return null}if(X)console.log(`[svelte-origin] Found file: ${_}`);let G=DQ(_,"utf-8");return{filePath:_,source:G}}async function XQ(Q,Z,Y,X,$,_={}){let{debug:G=!1,aliases:H={}}=_,z=Q==="attrs"?`attrs::${Z}::${Y}`:`${Z}::${Y}`;if($.has(z)){if(G)console.log(`[svelte-origin] Cache hit for ${z}`);return $.get(z)||null}try{let W=MQ(X);if(G)console.log(`[svelte-origin] Resolving ${Q}: ${Y} from ${Z}`);let q=SQ(Z,W,H,G);if(!q)return $.set(z,null),null;let{filePath:J,source:U}=q,K=Q==="attrs"?S(U,Y):v(U,Y);if(!K)return $.set(z,null),null;let O=[];for(let w of K.parentNames){let F=A(U,w),M=null;if(F)M=Q==="attrs"?await x(F,w,J,$,_):await I(F,w,J,$,_);else if(Q==="attrs")M=await u(U,w,J,$,_);if(M)D(O,M.attrs)}if(Q==="origin"&&K.propsRef){let w=A(U,K.propsRef),F=null;if(w){if(G)console.log(`[svelte-origin] Resolving propsRef: ${K.propsRef} from import ${w}`);F=await x(w,K.propsRef,J,$,_)}else{if(G)console.log(`[svelte-origin] Resolving propsRef: ${K.propsRef} from same file`);F=await u(U,K.propsRef,J,$,_)}if(F)D(O,F.attrs,!0)}D(O,K.attrs,!0);let T={attrs:O,parentNames:K.parentNames};if(G)console.log(`[svelte-origin] Resolved ${Q} schema for ${Y}:`,T.attrs.map((w)=>w.key));return $.set(z,T),T}catch(W){if(G)console.error(`[svelte-origin] Error resolving ${Q} schema for ${Z}:`,W);return $.set(z,null),null}}async function I(Q,Z,Y,X,$={}){return XQ("origin",Q,Z,Y,X,$)}async function x(Q,Z,Y,X,$={}){return XQ("attrs",Q,Z,Y,X,$)}async function u(Q,Z,Y,X,$={}){let{debug:_=!1}=$,G=S(Q,Z);if(!G)return null;if(G.parentNames.length===0)return G;let H=[];for(let z of G.parentNames){let W=A(Q,z),q=null;if(W)q=await x(W,z,Y,X,$);else q=await u(Q,z,Y,X,$);if(q)D(H,q.attrs)}if(D(H,G.attrs,!0),_)console.log(`[svelte-origin] Resolved same-file attrs for ${Z}:`,H.map((z)=>z.key));return{attrs:H,parentNames:G.parentNames}}function _X(Q,Z,Y={}){let{debug:X=!1,moduleImports:$}=Y;return{resolve:async(_,G)=>{if(_!==null)return I(_,G,Q,Z,Y);if($?.has(G)){let z=$.get(G);if(X)console.log(`[svelte-origin] Found ${G} in module imports: ${z}`);return I(z,G,Q,Z,Y)}if(X)console.log(`[svelte-origin] No import path for ${G}, attempting sibling file resolution`);let H=kQ(G,Q);for(let z of H){if(X)console.log(`[svelte-origin] Trying sibling path: ${z}`);let W=await I(z,G,Q,Z,Y);if(W){if(X)console.log(`[svelte-origin] Found schema in sibling file: ${z}`);return W}}if(X)console.log(`[svelte-origin] Could not find schema for ${G} in sibling files`);return null}}}function kQ(Q,Z){let Y=new Set,X=[],$=(J)=>{if(!Y.has(J))Y.add(J),X.push(J)},_=[".svelte.ts",".svelte.js",".svelte"],G=Q.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase(),H=Q.charAt(0).toLowerCase()+Q.slice(1),z=Q,W=Q.replace(/([a-z])([A-Z])/g,"$1_$2").toLowerCase();for(let J of _)$(`./${G}${J}`),$(`./${H}${J}`),$(`./${z}${J}`),$(`./${W}${J}`);let q=Q.match(/^[A-Z][a-z]+(?=[A-Z])/);if(q){let J=Q.slice(q[0].length);if(J){let U=J.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase(),K=J.charAt(0).toLowerCase()+J.slice(1),O=J,T=J.replace(/([a-z])([A-Z])/g,"$1_$2").toLowerCase();for(let w of _)$(`./${U}${w}`),$(`./${K}${w}`),$(`./${O}${w}`),$(`./${T}${w}`)}}for(let J of _)$(`./state${J}`),$(`./factory${J}`),$(`./schema${J}`),$(`./origin${J}`);return X}function vQ(Q={}){let{debug:Z=!1}=Q,Y=new Map;return{name:"svelte-origin-dts",enforce:"pre",async transform(X,$){if(!$.endsWith(".svelte"))return null;let _=X.match(/\$origin\s*\.\s*component\s*\(\s*(\w+)\s*\)/);if(!_)return null;let G=_[1],H=A(X,G);if(!H)return null;let z=await I(H,G,$,Y,{debug:Z});if(!z||z.attrs.length===0)return null;let W=f(G,H,z),q=$+".d.ts";return await yQ(q,W,"utf-8"),null},async handleHotUpdate({file:X}){if(X.endsWith(".svelte")){let $=X+".d.ts";if(!ZQ(X)&&ZQ($))await CQ($)}}}}var UX=vQ;export{vQ as svelteOriginDts,UX as default};
23
+ `}import{readFileSync as vQ,statSync as HQ}from"node:fs";import{basename as $Q,dirname as NQ}from"node:path";import{existsSync as L,readFileSync as m,statSync as EQ}from"node:fs";import{dirname as D,join as j,resolve as B,isAbsolute as A}from"node:path";function IQ(Q){let Z="",Y=!1,X=!1,$=!1,_=0;while(_<Q.length){let G=Q[_],H=Q[_+1];if(X){if(G===`
24
+ `)X=!1,Z+=G;_++;continue}if($){if(G==="*"&&H==="/"){$=!1,_+=2;continue}_++;continue}if(Y){if(Z+=G,G==="\\"&&H){Z+=H,_+=2;continue}if(G==='"')Y=!1;_++;continue}if(G==='"'){Y=!0,Z+=G,_++;continue}if(G==="/"&&H==="/"){X=!0,_+=2;continue}if(G==="/"&&H==="*"){$=!0,_+=2;continue}Z+=G,_++}return Z}function ZQ(Q,Z=new Set){let Y=B(Q);if(Z.has(Y))return null;if(Z.add(Y),!L(Y))return null;try{let X=m(Y,"utf-8"),$=IQ(X),_=JSON.parse($),G=D(Y),H={},z=_.compilerOptions?.baseUrl,W=_.extends;if(W){let U=Array.isArray(W)?W:[W];for(let J of U){let q;if(J.startsWith("."))q=B(G,J);else if(J.startsWith("/")||/^[a-zA-Z]:/.test(J))q=J;else{let O=DQ(J,G);if(O)q=O;else continue}if(!q.endsWith(".json")){if(L(q+".json"))q=q+".json";else if(L(j(q,"tsconfig.json")))q=j(q,"tsconfig.json")}let w=ZQ(q,Z);if(w){if(w.paths)H={...w.paths,...H};if(w.baseUrl&&!z){let O=D(q);z=B(O,w.baseUrl)}}}}if(_.compilerOptions?.paths)H={...H,..._.compilerOptions.paths};if(z&&!A(z))z=B(G,z);return{paths:Object.keys(H).length>0?H:void 0,baseUrl:z}}catch{return null}}function DQ(Q,Z){let Y=Z,X=A(Z)?(Z.match(/^[a-zA-Z]:[/\\]/)||["/"])[0]:"/";while(Y!==X&&Y!==D(Y)){let $=j(Y,"node_modules",Q);if(L($)){if($.endsWith(".json"))return $;let _=j($,"tsconfig.json");if(L(_))return _;if(L($+".json"))return $+".json"}Y=D(Y)}return null}function MQ(Q,Z){let Y={};for(let[X,$]of Object.entries(Q)){if(!$||$.length===0)continue;let _=$[0],G=X.endsWith("/*"),H=G?X.slice(0,-2):X;if(G&&_.endsWith("/*"))_=_.slice(0,-2);let z=A(_)?_:B(Z,_);Y[H]=z}return Y}function SQ(Q,Z){if(!L(Q))return{};try{let Y=m(Q,"utf-8"),X={},$=Y.match(/alias\s*:\s*\{([^}]+)\}/s);if(!$)return{};let _=$[1],G=/['"]?(\$[\w-]+)['"]?\s*:\s*['"]([^'"]+)['"]/g,H;while((H=G.exec(_))!==null){let[,z,W]=H,U=A(W)?W:B(Z,W);X[z]=U}return X}catch{return{}}}function kQ(Q){let Z=[],Y=["tsconfig.json","jsconfig.json",".svelte-kit/tsconfig.json"];for(let X of Y){let $=B(Q,X);if(L($))Z.push($)}return Z}function $X(Q={}){let{aliases:Z={},root:Y=process.cwd(),autoDetect:X=!0,tsconfig:$,svelteConfig:_}=Q,G=A(Y)?Y:B(process.cwd(),Y),H={};if(X){let z=$?[A($)?$:B(G,$)]:kQ(G);for(let J of z){let q=ZQ(J);if(q?.paths){let w=q.baseUrl||D(J);H={...MQ(q.paths,w),...H}}}let W=_?A(_)?_:B(G,_):B(G,"svelte.config.js"),U=SQ(W,G);H={...H,...U}}for(let[z,W]of Object.entries(Z))H[z]=A(W)?W:B(G,W);return{aliases:H,root:G}}function YQ(Q,Z,Y){if(Q.startsWith("."))return B(Y,Q);let X=Object.entries(Z).sort((_,G)=>G[0].length-_[0].length);for(let[_,G]of X){if(Q===_)return G;if(Q.startsWith(_+"/")){let H=Q.slice(_.length+1);return j(G,H)}}let $=yQ(Q,Y);if($)return $;return null}function yQ(Q,Z){if(Q.startsWith(".")||Q.startsWith("/")||/^[a-zA-Z]:/.test(Q))return null;let Y,X;if(Q.startsWith("@")){let G=Q.split("/");if(G.length<2)return null;Y=`${G[0]}/${G[1]}`,X=G.slice(2).join("/")}else{let G=Q.indexOf("/");if(G===-1)Y=Q,X="";else Y=Q.slice(0,G),X=Q.slice(G+1)}let $=Z,_=A(Z)?(Z.match(/^[a-zA-Z]:[/\\]/)||["/"])[0]:"/";while($!==_&&$!==D($)){let G=j($,"node_modules"),H=j(G,Y);if(L(H)){let z=j(H,"package.json"),W=X?`./${X}`:".";if(L(z))try{let U=JSON.parse(m(z,"utf-8"));if(U.exports){let J=CQ(U.exports,W);if(J)return j(H,J)}if(!X){let J=U.module||U.main||"index.js";return j(H,J)}}catch{}if(X)return j(H,X);return j(H,"index.js")}$=D($)}return null}function CQ(Q,Z){if(typeof Q==="string")return Z==="."?Q:null;if(typeof Q!=="object"||Q===null)return null;let Y=Q[Z];if(Y)return P(Y);if(Z==="."&&Q["."])return P(Q["."]);if(Z==="."){let X=P(Q);if(X)return X}return null}function P(Q){if(typeof Q==="string")return Q;if(typeof Q!=="object"||Q===null)return null;let Z=Q,Y=["svelte","import","module","default","require"];for(let X of Y)if(X in Z){let $=Z[X];if(typeof $==="string")return $;let _=P($);if(_)return _}return null}function _Q(Q){if(L(Q))try{let X=EQ(Q);if(X.isFile())return Q;if(X.isDirectory()){let $=["index.ts","index.js"];for(let _ of $){let G=j(Q,_);if(L(G))return G}}}catch{}let Z=[".ts",".js",".svelte.ts",".svelte.js"];if(Q.endsWith(".svelte")){let X=Q+".ts";if(L(X))return X}if(Q.endsWith(".svelte.js")){let X=Q.slice(0,-3)+".ts";if(L(X))return X}for(let X of Z){let $=Q+X;if(L($))return $}let Y=["/index.ts","/index.js"];for(let X of Y){let $=Q+X;if(L($))return $}return null}var y=new Map;function bQ(Q,Z){let Y=y.get(Q);if(!Y)return!1;try{for(let X=0;X<Y.filePaths.length;X++)if(HQ(Y.filePaths[X]).mtimeMs!==Y.mtimes[X]){if(Z)console.log(`[svelte-origin] Cache stale for ${Q}: ${Y.filePaths[X]} changed`);return!1}return!0}catch{return!1}}function GQ(Q,Z){let Y=[],X=[];for(let $ of Z)try{let _=HQ($).mtimeMs;Y.push($),X.push(_)}catch{}if(Y.length>0)y.set(Q,{filePaths:Y,mtimes:X})}function qX(Q,Z){let Y=$Q(Q);for(let[X,$]of y.entries())if($.filePaths.some((G)=>G===Q||$Q(G)===Y))Z.delete(X),y.delete(X)}function M(Q,Z,Y=!1){for(let X of Z){let $=Q.findIndex((_)=>_.key===X.key);if($===-1)Q.push(X);else if(Y)Q[$]=X}}function PQ(Q,Z,Y,X){let $=YQ(Q,Y,Z);if(!$){if(X)console.log(`[svelte-origin] No alias match for ${Q}, skipping`);return null}if(X)console.log(`[svelte-origin] Resolved path: ${$}`);let _=_Q($);if(!_){if(X)console.log(`[svelte-origin] Could not find file for ${$}`);return null}if(X)console.log(`[svelte-origin] Found file: ${_}`);let G=vQ(_,"utf-8");return{filePath:_,source:G}}async function S(Q,Z,Y,X,$,_={},G=null){let{debug:H=!1,aliases:z={}}=_,W=G===null,U=G??new Set,J=Q==="attrs"?`attrs::${Z}::${Y}`:`${Z}::${Y}`;if($.has(J)&&bQ(J,H)){if(H)console.log(`[svelte-origin] Cache hit for ${J}`);return $.get(J)||null}if($.has(J))$.delete(J),y.delete(J);try{let q=NQ(X);if(H)console.log(`[svelte-origin] Resolving ${Q}: ${Y} from ${Z}`);let w=PQ(Z,q,z,H);if(!w)return $.set(J,null),null;let{filePath:O,source:K}=w;U.add(O);let F=Q==="attrs"?v(K,Y):g(K,Y);if(!F){if($.set(J,null),W)GQ(J,U);return null}let R=[];for(let V of F.parentNames){let E=I(K,V),C=null;if(E)C=Q==="attrs"?await S("attrs",E,V,O,$,_,U):await S("origin",E,V,O,$,_,U);else if(Q==="attrs")C=await h(K,V,O,$,_,U);if(C)M(R,C.attrs)}if(Q==="origin"&&F.propsRef){let V=I(K,F.propsRef),E=null;if(V){if(H)console.log(`[svelte-origin] Resolving propsRef: ${F.propsRef} from import ${V}`);E=await S("attrs",V,F.propsRef,O,$,_,U)}else{if(H)console.log(`[svelte-origin] Resolving propsRef: ${F.propsRef} from same file`);E=await h(K,F.propsRef,O,$,_,U)}if(E)M(R,E.attrs,!0)}M(R,F.attrs,!0);let x={attrs:R,parentNames:F.parentNames};if(H)console.log(`[svelte-origin] Resolved ${Q} schema for ${Y}:`,x.attrs.map((V)=>V.key));if($.set(J,x),W)GQ(J,U);return x}catch(q){if(H)console.error(`[svelte-origin] Error resolving ${Q} schema for ${Z}:`,q);return $.set(J,null),null}}async function k(Q,Z,Y,X,$={}){return S("origin",Q,Z,Y,X,$)}async function h(Q,Z,Y,X,$={},_=null){let{debug:G=!1}=$;if(_)_.add(Y);let H=v(Q,Z);if(!H)return null;if(H.parentNames.length===0)return H;let z=[];for(let W of H.parentNames){let U=I(Q,W),J=null;if(U)J=await S("attrs",U,W,Y,X,$,_);else J=await h(Q,W,Y,X,$,_);if(J)M(z,J.attrs)}if(M(z,H.attrs,!0),G)console.log(`[svelte-origin] Resolved same-file attrs for ${Z}:`,z.map((W)=>W.key));return{attrs:z,parentNames:H.parentNames}}function UX(Q,Z,Y={}){let{debug:X=!1,moduleImports:$}=Y;return{resolve:async(_,G)=>{if(_!==null)return k(_,G,Q,Z,Y);if($?.has(G)){let z=$.get(G);if(X)console.log(`[svelte-origin] Found ${G} in module imports: ${z}`);return k(z,G,Q,Z,Y)}if(X)console.log(`[svelte-origin] No import path for ${G}, attempting sibling file resolution`);let H=xQ(G,Q);for(let z of H){if(X)console.log(`[svelte-origin] Trying sibling path: ${z}`);let W=await k(z,G,Q,Z,Y);if(W){if(X)console.log(`[svelte-origin] Found schema in sibling file: ${z}`);return W}}if(X)console.log(`[svelte-origin] Could not find schema for ${G} in sibling files`);return null}}}function xQ(Q,Z){let Y=new Set,X=[],$=(J)=>{if(!Y.has(J))Y.add(J),X.push(J)},_=[".svelte.ts",".svelte.js",".svelte"],G=Q.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase(),H=Q.charAt(0).toLowerCase()+Q.slice(1),z=Q,W=Q.replace(/([a-z])([A-Z])/g,"$1_$2").toLowerCase();for(let J of _)$(`./${G}${J}`),$(`./${H}${J}`),$(`./${z}${J}`),$(`./${W}${J}`);let U=Q.match(/^[A-Z][a-z]+(?=[A-Z])/);if(U){let J=Q.slice(U[0].length);if(J){let q=J.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase(),w=J.charAt(0).toLowerCase()+J.slice(1),O=J,K=J.replace(/([a-z])([A-Z])/g,"$1_$2").toLowerCase();for(let F of _)$(`./${q}${F}`),$(`./${w}${F}`),$(`./${O}${F}`),$(`./${K}${F}`)}}for(let J of _)$(`./state${J}`),$(`./factory${J}`),$(`./schema${J}`),$(`./origin${J}`);return X}function uQ(Q={}){let{debug:Z=!1}=Q,Y=new Map;return{name:"svelte-origin-dts",enforce:"pre",async transform(X,$){if(!$.endsWith(".svelte"))return null;let _=X.match(/\$origin\s*\.\s*component\s*\(\s*(\w+)\s*\)/);if(!_)return null;let G=_[1],H=I(X,G);if(!H)return null;let z=await k(H,G,$,Y,{debug:Z});if(!z||z.attrs.length===0)return null;let W=d(G,H,z),U=$+".d.ts";return await gQ(U,W,"utf-8"),null},async handleHotUpdate({file:X}){if(X.endsWith(".svelte")){let $=X+".d.ts";if(!zQ(X)&&zQ($))await fQ($)}}}}var jX=uQ;export{uQ as svelteOriginDts,jX as default};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "svelte-origin",
3
- "version": "1.0.0-next.48",
3
+ "version": "1.0.0-next.49",
4
4
  "description": "Compiler-assisted state and prop ergonomics for Svelte 5",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",