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.
- package/LLM.md +545 -540
- package/README.md +678 -678
- package/dist/cli.js +46 -46
- package/dist/globals.d.ts +649 -649
- package/dist/index.d.ts +1 -1
- package/dist/index.js +66 -66
- package/dist/plugin.js +39 -39
- package/dist/post-process.js +46 -46
- package/dist/preprocess.js +42 -42
- package/dist/runtime/index.js +1 -1
- package/dist/runtime/origin.d.ts +5 -7
- package/dist/runtime-inline.d.ts +4 -5
- package/dist/runtime-inline.min.js +1 -1
- package/dist/schema-resolver.d.ts +13 -0
- package/dist/transform/schema-codegen.d.ts +5 -0
- package/dist/vite-dts.js +7 -7
- package/package.json +1 -1
package/dist/plugin.js
CHANGED
|
@@ -1,39 +1,39 @@
|
|
|
1
|
-
import KZ from"magic-string";var
|
|
2
|
-
`,X+2);if($===-1)return Z>X;if(Z>X&&Z<=$)return!0;X=$+1;continue}if(Y==="/"&&Q[X+1]==="*"){let $=Q.indexOf("*/",X+2);if($===-1)return Z>X;if(Z>X&&Z<$+2)return!0;X=$+2;continue}if(Y==='"'||Y==="'"||Y==="`"){let $=Y,_=X;X++;while(X<Q.length){if(Q[X]==="\\"){X+=2;continue}if(Q[X]===$){if(Z>_&&Z<=X)return!0;X++;break}if($==="`"&&Q[X]==="$"&&Q[X+1]==="{"){let J=X;X+=2;let U=1;while(X<Q.length&&U>0){if(Q[X]==="{")U++;else if(Q[X]==="}")U--;else if(Q[X]==="\\")X++;X++}if(Z>_&&Z<J)return!0;continue}X++}continue}X++}return!1}function
|
|
3
|
-
`,_+2);if(U!==-1)_=U;else _=Q.length;continue}if(J==="/"&&Q[_+1]==="*"){let U=Q.indexOf("*/",_+2);if(U!==-1)_=U+1;else _=Q.length;continue}if(J==='"'||J==="'"||J==="`"){let U=J;_++;while(_<Q.length&&Q[_]!==U){if(Q[_]==="\\")_++;_++}continue}if(J===X)$++;else if(J===Y){if($--,$===0)return _}}return-1}function
|
|
1
|
+
import KZ from"magic-string";var kX={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 h(Q){return kX.hasMacros.test(Q)}function N(Q,Z){let X=0;while(X<Z){let Y=Q[X];if(Y==="/"&&Q[X+1]==="/"){let $=Q.indexOf(`
|
|
2
|
+
`,X+2);if($===-1)return Z>X;if(Z>X&&Z<=$)return!0;X=$+1;continue}if(Y==="/"&&Q[X+1]==="*"){let $=Q.indexOf("*/",X+2);if($===-1)return Z>X;if(Z>X&&Z<$+2)return!0;X=$+2;continue}if(Y==='"'||Y==="'"||Y==="`"){let $=Y,_=X;X++;while(X<Q.length){if(Q[X]==="\\"){X+=2;continue}if(Q[X]===$){if(Z>_&&Z<=X)return!0;X++;break}if($==="`"&&Q[X]==="$"&&Q[X+1]==="{"){let J=X;X+=2;let U=1;while(X<Q.length&&U>0){if(Q[X]==="{")U++;else if(Q[X]==="}")U--;else if(Q[X]==="\\")X++;X++}if(Z>_&&Z<J)return!0;continue}X++}continue}X++}return!1}function s(Q){if(!Q.startsWith("$bindable"))return{isBindable:!1};let Z=9;if(Q[Z]==="<"){let _=1;Z++;while(Z<Q.length&&_>0){let J=Q[Z];if(J==="="&&Q[Z+1]===">"){Z+=2;continue}if(J==="<")_++;else if(J===">")_--;Z++}}while(Z<Q.length&&/\s/.test(Q[Z]))Z++;if(Q[Z]!=="(")return{isBindable:!1};let X=Z,Y=B(Q,X);if(Y===-1)return{isBindable:!1};return{isBindable:!0,innerValue:Q.slice(X+1,Y).trim()||"undefined"}}function a(Q){let Z=0,X=0;for(let Y=0;Y<Q.length-4;Y++){let $=Q[Y];if($==='"'||$==="'"||$==="`"){let _=$;Y++;while(Y<Q.length&&Q[Y]!==_){if(Q[Y]==="\\")Y++;Y++}continue}if($==="{"||$==="("||$==="[")Z++;else if($==="}"||$===")"||$==="]")Z--;else if($==="<"){let _=Y>0?Q[Y-1]:"";if(/[\w$)]/.test(_))X++}else if($===">"){if(Y>0&&Q[Y-1]==="=")continue;if(X>0)X--}else if(Z===0&&X===0&&Q.slice(Y,Y+4)===" as ")return Y}return-1}function B(Q,Z,X="(",Y=")"){let $=0;for(let _=Z;_<Q.length;_++){let J=Q[_];if(J==="/"&&Q[_+1]==="/"){let U=Q.indexOf(`
|
|
3
|
+
`,_+2);if(U!==-1)_=U;else _=Q.length;continue}if(J==="/"&&Q[_+1]==="*"){let U=Q.indexOf("*/",_+2);if(U!==-1)_=U+1;else _=Q.length;continue}if(J==='"'||J==="'"||J==="`"){let U=J;_++;while(_<Q.length&&Q[_]!==U){if(Q[_]==="\\")_++;_++}continue}if(J===X)$++;else if(J===Y){if($--,$===0)return _}}return-1}function r(Q){return`import { ${Q.join(", ")} } from 'svelte-origin/runtime'`}function p(Q,Z){let X=[],_=Z.split(".").map((H)=>H.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")).join("\\s*\\.\\s*"),J=new RegExp(_+"\\s*\\(","g"),U;while((U=J.exec(Q))!==null){let H=U.index,W=H+U[0].length-1;if(N(Q,H))continue;let q=IX(Q,H);if(q)X.push({...q,macroOpenParen:W})}return X}function IX(Q,Z){let X=Z-1;while(X>=0&&/\s/.test(Q[X]))X--;if(Q[X]!=="=")return null;let Y=X;X--;while(X>=0&&/\s/.test(Q[X]))X--;let $=null,_=-1,J=X+1,U=0,H=-1,W=X;while(W>=0){let O=Q[W];if(O==='"'||O==="'"||O==="`"){W--;while(W>=0&&Q[W]!==O){if(Q[W-1]==="\\")W--;W--}W--;continue}if(O===">"||O===")"||O==="]"||O==="}")U++;else if(O==="<"||O==="("||O==="["||O==="{")U--;else if(O===":"&&U===0){H=W;break}else if(U===0&&/[;\n{]/.test(O))break;W--}if(H!==-1){_=J,$=Q.slice(H+1,_).trim(),X=H-1;while(X>=0&&/\s/.test(Q[X]))X--}if(!/[\w$]/.test(Q[X]))return null;let q=X+1;while(X>=0&&/[\w$]/.test(Q[X]))X--;let z=X+1,K=Q.slice(z,q);if(!K)return null;while(X>=0&&/\s/.test(Q[X]))X--;let w=-1;if(Q.slice(X-4,X+1)==="const")w=X-4,X-=5;else if(Q.slice(X-2,X+1)==="let")w=X-2,X-=3;else if(Q.slice(X-2,X+1)==="var")w=X-2,X-=3;else return null;let G=w;while(X>=0&&/\s/.test(Q[X]))X--;let j=!1;if(Q.slice(X-5,X+1)==="export"){j=!0,G=X-5,X-=6;while(X>=0&&/\s/.test(Q[X]))X--}let T=Y+1;return{varName:K,startIndex:G,valueStartIndex:T,hasExport:j,typeAnnotation:$}}function wQ(Q){return/\b(type|interface)\s+\$\$Props\b/.test(Q)}function TQ(Q){let Z=0,X=0,Y=Q.match(/^<script[^>]*>/);if(Y)X=Y[0].length,Z=X;while(X<Q.length){while(X<Q.length&&/\s/.test(Q[X]))X++;if(Q.slice(X,X+6)==="import"){X+=6;while(X<Q.length&&/\s/.test(Q[X]))X++;if(Q.slice(X,X+4)==="type"&&/\s/.test(Q[X+4])){X+=4;while(X<Q.length&&/\s/.test(Q[X]))X++}let _=!1;while(X<Q.length){let J=Q[X];if(J==="{"){let U=B(Q,X,"{","}");if(U!==-1){X=U+1;continue}}if(J==='"'||J==="'"||J==="`"){let U=J;X++;while(X<Q.length&&Q[X]!==U){if(Q[X]==="\\")X++;X++}X++;while(X<Q.length&&Q[X]!==`
|
|
4
4
|
`&&Q[X]!==";")X++;if(Q[X]===";")X++;if(Q[X]===`
|
|
5
|
-
`)X++;Z=X,_=!0;break}if(Q.slice(X,X+4)==="from"&&/\s/.test(Q[X+4])){X+=4;while(X<Q.length&&/\s/.test(Q[X]))X++;continue}X++}if(!_)break;continue}if(Q[X]==="<")break;if(/[a-zA-Z_$]/.test(Q[X])){if(Q.slice(X,X+6)==="export"){let _=Q.slice(X+6,X+20);if(!/\s*(const|let|var|function|class|default|type|interface|\{)/.test(_))break}break}X++}if(Z>0)return Z;let $=Q.match(/<script[^>]*>/);if($)return $.index+$[0].length;return 0}function
|
|
6
|
-
`);if(Y!==-1){Z=Z.slice(Y+1).trim();continue}Z="";break}break}let X=Z.indexOf("*/");if(X!==-1){let Y=Z.slice(X+2).trim();if(Y.match(/^(\w+)\s*:/))Z=Y}return Z}function
|
|
7
|
-
`,_+2);if(
|
|
8
|
-
`,X+2);if(
|
|
9
|
-
`,X+2);if(
|
|
10
|
-
`);if(X.length<=1)return Q;let Y=1/0;for(let _=1;_<X.length-1;_++){let J=X[_];if(!J.trim())continue;let
|
|
11
|
-
`)}function
|
|
12
|
-
`||$[F]==="\t"))F++;
|
|
5
|
+
`)X++;Z=X,_=!0;break}if(Q.slice(X,X+4)==="from"&&/\s/.test(Q[X+4])){X+=4;while(X<Q.length&&/\s/.test(Q[X]))X++;continue}X++}if(!_)break;continue}if(Q[X]==="<")break;if(/[a-zA-Z_$]/.test(Q[X])){if(Q.slice(X,X+6)==="export"){let _=Q.slice(X+6,X+20);if(!/\s*(const|let|var|function|class|default|type|interface|\{)/.test(_))break}break}X++}if(Z>0)return Z;let $=Q.match(/<script[^>]*>/);if($)return $.index+$[0].length;return 0}function t(Q){let Z=Q.trim();while(!0){if(Z.startsWith("/*")){let Y=Z.indexOf("*/");if(Y!==-1){Z=Z.slice(Y+2).trim();continue}break}if(Z.startsWith("//")){let Y=Z.indexOf(`
|
|
6
|
+
`);if(Y!==-1){Z=Z.slice(Y+1).trim();continue}Z="";break}break}let X=Z.indexOf("*/");if(X!==-1){let Y=Z.slice(X+2).trim();if(Y.match(/^(\w+)\s*:/))Z=Y}return Z}function NX(Q){let Z=0,X=0;while(Z<Q.length){let Y=Q[Z];if(Y==='"'||Y==="'"||Y==="`"){let _=Y;Z++;while(Z<Q.length&&Q[Z]!==_){if(Q[Z]==="\\")Z++;Z++}Z++;continue}if(Y==="/"&&Q[Z+1]==="*"){X++,Z+=2;continue}if(Y==="*"&&Q[Z+1]==="/")if(X>0){X--,Z+=2;continue}else return vX(Q,Z);Z++}return-1}function vX(Q,Z){let X=Z-1;while(X>=0&&/\s/.test(Q[X]))X--;let Y=Q.slice(0,X+1),$=0,_=0;while(_<Y.length){let J=Y[_];if(J==='"'||J==="'"||J==="`"){let K=J;_++;while(_<Y.length&&Y[_]!==K){if(Y[_]==="\\")_++;_++}if(_<Y.length)$=_+1,_++;continue}if(J==="{"||J==="("||J==="["){let K=J,w=J==="{"?"}":J==="("?")":"]",G=1;_++;while(_<Y.length&&G>0){let j=Y[_];if(j===K)G++;else if(j===w){if(G--,G===0)$=_+1}else if(j==='"'||j==="'"||j==="`"){let T=j;_++;while(_<Y.length&&Y[_]!==T){if(Y[_]==="\\")_++;_++}}_++}continue}let H=Y.slice(_),W=H.match(/^(true|false|null|undefined)\b/);if(W){_+=W[0].length;let K=Y.slice(_);if(/^\s+[\w$]/.test(K)){$=_;break}$=_;continue}let q=H.match(/^-?\d+(\.\d+)?/);if(q){_+=q[0].length;let K=Y.slice(_);if(/^\s+[\w$]/.test(K)){$=_;break}$=_;continue}let z=H.match(/^[\w$]+/);if(z){_+=z[0].length;let K=Y.slice(_);if(/^\s+[\w$]/.test(K)){$=_;break}$=_;continue}_++}return $>0?$:Z}function e(Q){let Z=Q.trim(),X=NX(Z);if(X!==-1)Z=Z.slice(0,X).trim();let Y=0;while(Y<Z.length){let $=Z[Y];if($==='"'||$==="'"||$==="`"){let J=$;Y++;while(Y<Z.length&&Z[Y]!==J){if(Z[Y]==="\\")Y++;Y++}Y++;continue}if($==="{"||$==="("||$==="["){let J=1;Y++;while(Y<Z.length&&J>0){let U=Z[Y];if(U==="{"||U==="("||U==="[")J++;else if(U==="}"||U===")"||U==="]")J--;else if(U==='"'||U==="'"||U==="`"){let H=U;Y++;while(Y<Z.length&&Z[Y]!==H){if(Z[Y]==="\\")Y++;Y++}}Y++}continue}if($==="/"&&Z[Y+1]==="*"){Z=Z.slice(0,Y).trim();break}if($==="/"&&Z[Y+1]==="/"){Z=Z.slice(0,Y).trim();break}Y++}return Z}function g(Q){let Z=[],X="",Y=0,$=0,_=0;while(_<Q.length){let J=Q[_];if(J==="/"&&Q[_+1]==="/"){let H=Q.indexOf(`
|
|
7
|
+
`,_+2);if(H!==-1)X+=Q.slice(_,H+1),_=H+1;else X+=Q.slice(_),_=Q.length;continue}if(J==="/"&&Q[_+1]==="*"){let H=Q.indexOf("*/",_+2);if(H!==-1)X+=Q.slice(_,H+2),_=H+2;else X+=Q.slice(_),_=Q.length;continue}if(J==='"'||J==="'"||J==="`"){let H=J;X+=J,_++;while(_<Q.length&&Q[_]!==H){if(Q[_]==="\\")X+=Q[_],_++;if(_<Q.length)X+=Q[_],_++}if(_<Q.length)X+=Q[_],_++;continue}if(J==="<"){let H=X.length>0?X[X.length-1]:"";if(/[\w$)]/.test(H))$++;X+=J,_++;continue}if(J===">"){if(_>0&&Q[_-1]==="="){X+=J,_++;continue}if($>0)$--;X+=J,_++;continue}if(J==="{"||J==="("||J==="[")Y++,X+=J;else if(J==="}"||J===")"||J==="]")Y--,X+=J;else if(J===","&&Y===0&&$===0)Z.push(X),X="";else X+=J;_++}if(X.trim())Z.push(X);return Z}function QQ(Q){return`{ ${LQ(Q).map(({key:Y,defaultValue:$,bindable:_,hasDefault:J})=>`${Y}: { default: ${$}, bindable: ${_}, hasDefault: ${J} }`).join(", ")} }`}function LQ(Q){let Z=[],X=g(Q);for(let Y of X){let $=Y.trim();if(!$)continue;if($=t($),!$)continue;let _=$.indexOf(":");if(_===-1)continue;let J=$.slice(0,_).trim(),U=$.slice(_+1).trim();U=e(U);let H=a(U);if(H!==-1)U=U.slice(0,H).trim();let W=s(U);if(W.isBindable){let q=W.innerValue,z=q!==""&&q!=="undefined";Z.push({key:J,defaultValue:q,bindable:!0,hasDefault:z})}else{let q=U!=="undefined";Z.push({key:J,defaultValue:U,bindable:!1,hasDefault:q})}}return Z}function yQ(Q){let Z=[],X=0;while(X<Q.length){while(X<Q.length&&/[\s,]/.test(Q[X]))X++;if(X>=Q.length)break;if(Q.slice(X,X+2)==="/*"){let W=Q.indexOf("*/",X+2);if(W!==-1){X=W+2;continue}}if(Q.slice(X,X+2)==="//"){let W=Q.indexOf(`
|
|
8
|
+
`,X+2);if(W!==-1){X=W+1;continue}else break}let Y=!1,$=!1,_=!1,J=!1;if(Q.slice(X).match(/^get\s+/))Y=!0,X+=Q.slice(X).match(/^get\s+/)[0].length;else if(Q.slice(X).match(/^set\s+/))$=!0,X+=Q.slice(X).match(/^set\s+/)[0].length;else if(Q.slice(X).match(/^async\s+\*/)){_=!0,J=!0,X+=Q.slice(X).match(/^async\s+\*/)[0].length;while(X<Q.length&&/\s/.test(Q[X]))X++}else if(Q.slice(X).match(/^async\s+/))_=!0,X+=Q.slice(X).match(/^async\s+/)[0].length;else if(Q[X]==="*"){J=!0,X++;while(X<Q.length&&/\s/.test(Q[X]))X++}let U=!1,H="";if(Q[X]==="["){U=!0;let W=X,q=1;X++;while(X<Q.length&&q>0){if(Q[X]==="[")q++;else if(Q[X]==="]")q--;X++}H=Q.slice(W,X)}else{let W=Q.slice(X).match(/^(\$?\w+)/);if(!W)break;H=W[1],X+=H.length}while(X<Q.length&&/\s/.test(Q[X]))X++;if(Q[X]===":"){X++;let W=X,q=0,z=0;while(X<Q.length){let w=Q[X];if(w==="/"&&Q[X+1]==="/"){let G=Q.indexOf(`
|
|
9
|
+
`,X+2);if(G!==-1){X=G+1;continue}else break}if(w==="/"&&Q[X+1]==="*"){let G=Q.indexOf("*/",X+2);if(G!==-1){X=G+2;continue}else break}if(w==='"'||w==="'"||w==="`"){let G=w;X++;while(X<Q.length&&Q[X]!==G){if(Q[X]==="\\")X++;X++}X++;continue}if((w===","||w==="}")&&q===0&&z===0)break;if(w==="{"||w==="("||w==="[")q++;if(w==="}"||w===")"||w==="]")q--;if(w==="<"&&X>0&&/\w/.test(Q[X-1]))z++;if(w===">"&&z>0)z--;X++}let K=Q.slice(W,X).trim();Z.push({key:H,value:K,isGetter:Y,isSetter:$,isMethod:!1,isAsync:_,isGenerator:J,isComputed:U})}else if(Q[X]==="("){let W=X,q=1;X++;while(X<Q.length&&q>0){if(Q[X]==="(")q++;if(Q[X]===")")q--;X++}while(X<Q.length&&/\s/.test(Q[X]))X++;if(Q[X]===":"){X++;let z=0;while(X<Q.length){let K=Q[X];if(K==="<"||K==="("||K==="[")z++;if(K===">"||K===")"||K==="]")z--;if(K==="{"&&z===0)break;X++}}if(Q[X]==="{"){let z=X;q=1,X++;while(X<Q.length&&q>0){if(Q[X]==="{")q++;if(Q[X]==="}")q--;X++}let K=X;if(Y){let w=Q.slice(z,K);Z.push({key:H,value:w,isGetter:Y,isSetter:$,isMethod:!1,isAsync:_,isGenerator:J,isComputed:U})}else if($){let w=Q.slice(W,K);Z.push({key:H,value:w,isGetter:Y,isSetter:$,isMethod:!1,isAsync:_,isGenerator:J,isComputed:U})}else{let w=Q.slice(W,K);Z.push({key:H,value:w,isGetter:!1,isSetter:!1,isMethod:!0,isAsync:_,isGenerator:J,isComputed:U})}}else{let z=Q.slice(W,X);Z.push({key:H,value:z,isGetter:Y,isSetter:$,isMethod:!Y&&!$,isAsync:_,isGenerator:J,isComputed:U})}}else if(Q[X]==="{"){let W=X,q=1;X++;while(X<Q.length&&q>0){if(Q[X]==="{")q++;if(Q[X]==="}")q--;X++}let z=Q.slice(W,X);Z.push({key:H,value:z,isGetter:Y,isSetter:$,isMethod:!1,isAsync:_,isGenerator:J,isComputed:U})}else break}return Z}function jQ(Q){let Z=Q.trim();if(!Z.endsWith(")"))return!1;let X=0;for(let Y=Z.length-1;Y>=0;Y--)if(Z[Y]===")")X++;else if(Z[Y]==="("){if(X--,X===0)return!0}return!1}function XQ(Q){let Z=Q.trim(),X=0;for(let Y=Z.length-1;Y>=0;Y--)if(Z[Y]===")")X++;else if(Z[Y]==="("){if(X--,X===0)return Z.slice(0,Y)}return Z}function ZQ(Q){let Z=Q.trim(),X=0;for(let Y=0;Y<Z.length;Y++){let $=Z[Y];if($==="(")X++;else if($===")")X--;else if($==="<"&&X===0)return!0}return!1}function PQ(Q){let Z=Q.trim(),X=Z.indexOf("<");if(X!==-1)return Z.slice(0,X);let Y=Z.indexOf("(");return Y===-1?Z:Z.slice(0,Y)}function f(Q){let Z=Q.trim();if(ZQ(Z)&&!jQ(Z))return`${Z}()`;return Z}function OQ(Q){let Z=/\$origin\s*\.\s*create\s*\(/g,X=[],Y;while((Y=Z.exec(Q))!==null){let $=Y.index;if(N(Q,$))continue;let _=$+Y[0].length-1,J=B(Q,_);if(J===-1)continue;let U=Q.slice(_+1,J).trim(),H=U,W=null,q=0;for(let z=0;z<U.length;z++){let K=U[z];if(K==="("||K==="{"||K==="["||K==="<")q++;else if(K===")"||K==="}"||K==="]"||K===">")q--;else if(K===","&&q===0){H=U.slice(0,z).trim(),W=U.slice(z+1).trim();break}}X.push({callStart:$,callEnd:J+1,factoryExpr:f(H),propsExpr:W})}return X}function CX(Q){let Z=/\$origin\s*\.\s*bind\s*\(/g,X=!1,Y=Q,$;while(($=Z.exec(Q))!==null){let _=$.index;if(N(Q,_))continue;let J=_+$[0].length-1,U=B(Q,J);if(U===-1)continue;let H=Q.slice(J+1,U).trim(),W=Q.slice(_,U+1),q=`__bindable(() => ${H}, (v) => { ${H} = v })`;Y=Y.replace(W,q),X=!0}return{code:Y,hasBindable:X}}function BQ(Q,Z){if(Z){let{code:X,hasBindable:Y}=CX(Z);return{replacement:`__createOriginInstance(${Q}, ${X})`,needsHelper:!0,needsBindable:Y}}return{replacement:`${Q}({})`,needsHelper:!1,needsBindable:!1}}function FQ(Q){let Z=OQ(Q);if(Z.length===0)return{result:Q,needsHelper:!1,needsBindable:!1};let X=Q,Y=0,$=!1,_=!1;for(let J of Z){let{replacement:U,needsHelper:H,needsBindable:W}=BQ(J.factoryExpr,J.propsExpr);if(H)$=!0;if(W)_=!0;let q=J.callStart+Y,z=J.callEnd+Y;X=X.slice(0,q)+U+X.slice(z),Y+=U.length-(J.callEnd-J.callStart)}return{result:X,needsHelper:$,needsBindable:_}}function bQ(Q,Z){let X={derivedNames:new Set,stateNames:new Set,valueNames:new Set,methodNames:new Set,getterNames:new Set,superDelegatingGetters:new Set,superDelegatingMethods:new Set};for(let Y of Q){let{key:$,value:_,isGetter:J,isMethod:U,isSetter:H}=Y;if(!J&&!U&&!H&&_.startsWith("$state"))X.stateNames.add($);else if(!J&&!U&&!H)X.valueNames.add($);if(U)X.methodNames.add($);if(J)X.getterNames.add($);if(J&&Z){let W=_.trim();if(new RegExp(`^\\{\\s*return\\s+this\\.super\\.${$}\\s*\\}$`).test(W))X.superDelegatingGetters.add($)}if(U&&Z){let W=_.trim();if(new RegExp(`^\\([^)]*\\)\\s*\\{\\s*return\\s+this\\.super\\.${$}\\([^)]*\\)\\s*\\}$`).test(W))X.superDelegatingMethods.add($)}if(J&&/return\s+\$derived(\.by)?\s*\(/.test(_))X.derivedNames.add($)}return X}function YQ(Q,Z){let{propName:X,hasParents:Y,metadata:$}=Z,{derivedNames:_,stateNames:J,valueNames:U,methodNames:H,getterNames:W,superDelegatingGetters:q,superDelegatingMethods:z}=$,K=Q;K=K.replace(/this\.super\./g,"__super."),K=K.replace(/this\.super\b/g,"__super");let w=new RegExp(`this\\.${X}\\.`,"g");K=K.replace(w,"__props.");let G=new RegExp(`this\\.${X}\\b`,"g");return K=K.replace(G,"__props"),K=K.replace(/this\.(\w+)/g,(j,T)=>{if(T==="super")return j;if(_.has(T))return`__${T}`;if(J.has(T))return T;if(U.has(T))return T;if(q.has(T)||z.has(T))return`__super.${T}`;if(H.has(T)||W.has(T))return Y?`__super.${T}`:`__self.${T}`;return Y?`__super.${T}`:`__self.${T}`}),K}function $Q(Q,Z){let{propName:X,metadata:Y}=Z,{derivedNames:$,stateNames:_,valueNames:J}=Y,U=Q,H=/\$derived(\.by)?\s*\(/g,W=[],q;while((q=H.exec(Q))!==null){let w=q.index+q[0].length-1,G=B(Q,w);if(G!==-1){let j=Q.slice(w+1,G),T=YQ(j,Z);W.push({start:w+1,end:G,replacement:T})}}for(let w of W.reverse())U=U.slice(0,w.start)+w.replacement+U.slice(w.end);U=U.replace(/this\.super\./g,"__super."),U=U.replace(/this\.super\b/g,"__super");let z=new RegExp(`this\\.${X}\\.`,"g");U=U.replace(z,`__self.${X}.`);let K=new RegExp(`this\\.${X}\\b`,"g");return U=U.replace(K,`__self.${X}`),U=U.replace(/this\.(\w+)/g,(w,G)=>{if(G==="super")return w;if($.has(G))return`__${G}`;if(_.has(G))return G;if(J.has(G))return G;return`__self.${G}`}),U=U.replace(/\bthis\b(?!\.)/g,"__self"),U}function gQ(Q){if(Q.length===0)return"\t\tconst __props = __inputAttrs";let Z=[];for(let X of Q){let Y=X.hasDefault?` ?? ${X.defaultValue}`:"";Z.push(`get ${X.key}() { return __inputAttrs.${X.key}${Y} }`),Z.push(`set ${X.key}(v) { const __d = Object.getOwnPropertyDescriptor(__inputAttrs, '${X.key}'); if (__d?.set) __inputAttrs.${X.key} = v }`)}return` const __props = { ${Z.join(", ")} }`}function fQ(Q,Z){let X=Z.match(/^\$state(?:\.(\w+))?(?:<([^>]+(?:<[^>]+>)*)>)?\s*\(/);if(!X)return null;let Y=X[1],$=X[2],_=Z.indexOf("("),J=B(Z,_);if(J===-1)return null;let U=Z.slice(_+1,J).trim(),H=Y?`.${Y}`:"",W=$?`<${$}>`:"";return{declaration:` let ${Q} = $state${H}${W}(${U})`,getter:`get ${Q}() { return ${Q} }`,setter:`set ${Q}(v) { ${Q} = v }`}}function xQ(Q,Z,X){let Y=Z.match(/return\s+\$derived(\.by)?\s*\(/);if(!Y)return null;let $=Y[1]?"$derived.by":"$derived",J=Z.indexOf($+"(")+$.length,U=B(Z,J);if(U===-1)return null;let H=Z.slice(J+1,U).trim(),W=YQ(H,X);return{declaration:` let __${Q} = ${$}(${W})`,getter:`get ${Q}() { return __${Q} }`}}function _Q(Q,Z){let X=Q.split(`
|
|
10
|
+
`);if(X.length<=1)return Q;let Y=1/0;for(let _=1;_<X.length-1;_++){let J=X[_];if(!J.trim())continue;let H=J.search(/\S/);if(H>=0&&H<Y)Y=H}if(Y===1/0)Y=0;let $=[];for(let _=0;_<X.length;_++){let J=X[_],U=J.trim();if(_===0){$.push(U);continue}if(_===X.length-1){$.push(Z+U);continue}if(!U){$.push("");continue}let H=J.search(/\S/),W=Math.max(0,H-Y);$.push(Z+"\t"+"\t".repeat(W)+U)}return $.join(`
|
|
11
|
+
`)}function hQ(Q,Z,X,Y){let $=/\$origin\s*\(/g,_,J=!1;while((_=$.exec(Z))!==null){let U=_.index;if(N(Z,U))continue;let H=U+_[0].length-1,W=B(Z,H);if(W===-1){console.warn(`[svelte-origin] Could not find matching ) for $origin( at index ${U}`);continue}let q=Z.slice(H+1,W),z=yX(q,Y,X);Q.overwrite(U,W+1,`__createOrigin(${z})`),X.add("__createOrigin"),J=!0}return J}function yX(Q,Z,X){let Y=[],$=Q.trim(),_=null;if($.startsWith("[")){let O=B($,0,"[","]");if(O!==-1){Y=$.slice(1,O).split(",").map((L)=>L.trim()).filter((L)=>L);let V=O+1;while(V<$.length&&/[\s,]/.test($[V]))V++;$=$.slice(V)}}if($.startsWith("{")){let O=B($,0,"{","}");if(O!==-1){let A=$.slice(O+1).trim();if(A.startsWith(",")){if(A=A.slice(1).trim(),A)_=A}$=$.slice(1,O)}}let J=$.match(/(\w+)\s*:\s*\$origin\s*\.\s*props\s*\(/),U="{}",H="",W=$,q="props",z=null;if(J){q=J[1];let O=J.index,A=O+J[0].length-1,V=B($,A);if(V!==-1){let L=$.slice(A+1,V).trim();if(L.startsWith("[")){let E=B(L,0,"[","]");if(E!==-1){let R=E+1;while(R<L.length&&/[\s,]/.test(L[R]))R++;L=L.slice(R)}}if(L.startsWith("{")){let E=B(L,0,"{","}");if(E!==-1)H=L.slice(1,E)}U=QQ(H);let F=V+1;while(F<$.length&&($[F]===","||$[F]===" "||$[F]===`
|
|
12
|
+
`||$[F]==="\t"))F++;W=$.slice(0,O)+$.slice(F)}}else{let O=$.match(/(\w+)\s*:\s*(\w+)\s*,/);if(O){let A=O[1],V=O[2];if((A==="props"||A==="attrs")&&/^[A-Z]/.test(V)&&!["$state","$derived","$effect","$bindable"].includes(V)){q=A,z=V;let L=O.index,F=L+O[0].length;W=$.slice(0,L)+$.slice(F)}}}let K=LQ(H),{body:w,attachments:G}=PX(W.trim(),Y,K,q,Z,X),j=Y.length>0?`[${Y.join(", ")}]`:"undefined",T=`{
|
|
13
13
|
__attrSchema: ${U},
|
|
14
|
-
__parents: ${
|
|
14
|
+
__parents: ${j},`;if(z)T+=`
|
|
15
15
|
__propsRef: ${z},`;if(T+=`
|
|
16
16
|
__create: (__inputAttrs${Y.length>0?", __super":""}) => {
|
|
17
|
-
${
|
|
18
|
-
}`,
|
|
19
|
-
__attachments: { ${
|
|
20
|
-
__onInit: ${
|
|
21
|
-
}`,T}function
|
|
22
|
-
return { ${
|
|
23
|
-
`))
|
|
24
|
-
`))D=
|
|
25
|
-
`))D=
|
|
17
|
+
${w}
|
|
18
|
+
}`,G.length>0)T+=`,
|
|
19
|
+
__attachments: { ${G.join(", ")} }`;if(_){let{result:O,needsHelper:A,needsBindable:V}=FQ(_);if(A&&X)X.add("__createOriginInstance");if(V&&X)X.add("__bindable");T+=`,
|
|
20
|
+
__onInit: ${O}`}return T+=`
|
|
21
|
+
}`,T}function PX(Q,Z=[],X=[],Y="props",$,_){let{result:J,needsHelper:U,needsBindable:H}=FQ(Q);if(U&&_)_.add("__createOriginInstance");if(H&&_)_.add("__bindable");let W=J.trim(),q=Z.length>0,z=gQ(X);if(!W){let V=[`get ${Y}() { return __props }`];if(q)V.push("get super() { return __super }");return{body:`${z}
|
|
22
|
+
return { ${V.join(", ")} }`,attachments:[]}}let K=yQ(W),w=bQ(K,q),G={hasParents:q,propName:Y,metadata:w},j=[],T=[`get ${Y}() { return __props }`],O=[];if(q)T.push("get super() { return __super }");for(let V of K){let{key:L,value:F,isGetter:E,isMethod:R,isSetter:C,isAsync:y,isGenerator:I,isComputed:m}=V;if(L===Y)continue;if(R&&L.startsWith("$")){let D=L.slice(1),u=y?"async ":"";O.push(`${D}: ${u}function${F}`);continue}if(!E&&!R&&!C&&F.startsWith("$state")){let D=fQ(L,F);if(D){j.push(D.declaration),T.push(D.getter),T.push(D.setter);continue}}let P=y?"async ":"",d=I?"*":"",GQ=m?L:L;if(E){let D=xQ(L,F,G);if(D){j.push(D.declaration),T.push(D.getter);continue}let u=$Q(F,G);if(u.includes(`
|
|
23
|
+
`))u=_Q(u,"\t\t\t");T.push(`get ${L}() ${u}`)}else if(C){let D=$Q(F,G);if(D.includes(`
|
|
24
|
+
`))D=_Q(D,"\t\t\t");T.push(`set ${L}${D}`)}else if(R){let D=$Q(F,G);if(D.includes(`
|
|
25
|
+
`))D=_Q(D,"\t\t\t");T.push(`${P}${d}${GQ}${D}`)}else{let D=YQ(F,G);j.push(` let ${L} = ${D}`),T.push(`get ${L}() { return ${L} }`),T.push(`set ${L}(v) { ${L} = v }`)}}let A=j.length>0?j.join(`
|
|
26
26
|
`)+`
|
|
27
27
|
`:"";return{body:`${z}
|
|
28
|
-
${
|
|
28
|
+
${A} const __self = {
|
|
29
29
|
${T.join(`,
|
|
30
30
|
`)}
|
|
31
31
|
}
|
|
32
|
-
return __self`,attachments:
|
|
32
|
+
return __self`,attachments:O}}function lQ(Q,Z,X){return bX(Q,Z,X)}function bX(Q,Z,X){let _="$origin.props".replace(/\./g,"\\s*\\.\\s*").replace(/\$/g,"\\$"),J=new RegExp(_+"\\s*\\(","g"),U,H=!1;while((U=J.exec(Z))!==null){let W=U.index;if(N(Z,W))continue;let q=Z.slice(Math.max(0,W-20),W);if(/:\s*$/.test(q))continue;let z=W+U[0].length-1,K=B(Z,z);if(K===-1){console.warn(`[svelte-origin] Could not find matching ) for $origin.props( at index ${W}`);continue}let w=Z.slice(z+1,K).trim(),G=gX(w);Q.overwrite(W,K+1,`__createAttrs(${G})`),X.add("__createAttrs"),H=!0}return H}function gX(Q){let Z=[],X=Q.trim();if(X.startsWith("[")){let J=B(X,0,"[","]");if(J!==-1){Z=X.slice(1,J).split(",").map((W)=>W.trim()).filter((W)=>W);let H=J+1;while(H<X.length&&/[\s,]/.test(X[H]))H++;X=X.slice(H)}}let Y="";if(X.startsWith("{")){let J=B(X,0,"{","}");if(J!==-1)Y=X.slice(1,J)}let $=QQ(Y),_=Z.length>0?`[${Z.join(", ")}]`:"undefined";return`{
|
|
33
33
|
__attrSchema: ${$},
|
|
34
34
|
__parents: ${_}
|
|
35
|
-
}`}function
|
|
36
|
-
`)),$=!0}return $}function
|
|
35
|
+
}`}function fX(Q){let Z=p(Q,"$origin.create"),X=[];for(let Y of Z){let{varName:$,startIndex:_,macroOpenParen:J}=Y,U=B(Q,J);if(U===-1){console.warn(`[svelte-origin] Could not find matching ) for $origin.create( at index ${J}`);continue}let H=Q.slice(J+1,U).trim(),W=H,q=null,z=0,K=-1;for(let w=0;w<H.length;w++){let G=H[w];if(G==="("||G==="{"||G==="["||G==="<")z++;else if(G===")"||G==="}"||G==="]"||G===">")z--;else if(G===","&&z===0){K=w;break}}if(K!==-1)W=H.slice(0,K).trim(),q=H.slice(K+1).trim();X.push({varName:$,factoryExpr:W,propsExpr:q,startIndex:_,endIndex:U+1})}return X}function xX(Q){let Z=/\$origin\s*\.\s*bind\s*\(\s*([^)]+)\s*\)/g,X=!1;return{code:Q.replace(Z,($,_)=>{return X=!0,`__BIND__${_.trim()}__BIND__`}),hasBind:X}}function hX(Q,Z,X){let Y=f(Z),$=[];if(!X)return $.push(`let ${Q} = ${Y}({})`),$;let{code:_,hasBind:J}=xX(X),U=X.match(/^\{([\s\S]*)\}$/);if(!U)return $.push(`let __${Q}_props = $state(${X})`),$.push(`let ${Q} = ${Y}(__${Q}_props)`),$;let H=U[1],W=lX(J?_.slice(1,-1):H);if(W.length===0)return $.push(`let ${Q} = ${Y}({})`),$;let q=[],z=[];for(let{key:K,value:w}of W){let G=J?w.match(/^__BIND__(.+)__BIND__$/):null;if(G){let j=G[1];q.push(` get ${K}() { return ${j} },`),q.push(` set ${K}(v) { ${j} = v },`)}else q.push(` get ${K}() { return ${w} },`)}return $.push(...z),$.push(`let __${Q}_attrs = {`),$.push(...q),$.push("}"),$.push(`let ${Q} = ${Y}(__${Q}_attrs)`),$}function lX(Q){let Z=[],X=0;while(X<Q.length){while(X<Q.length&&/\s/.test(Q[X]))X++;if(X>=Q.length)break;let Y="",$="";if(Q[X]==='"'||Q[X]==="'"){let _=Q[X];X++;let J=X;while(X<Q.length&&Q[X]!==_){if(Q[X]==="\\")X++;X++}Y=Q.slice(J,X),X++}else if(/[\w$]/.test(Q[X])){let _=X;while(X<Q.length&&/[\w$]/.test(Q[X]))X++;Y=Q.slice(_,X)}else{X++;continue}while(X<Q.length&&/\s/.test(Q[X]))X++;if(Q[X]===":"){X++;while(X<Q.length&&/\s/.test(Q[X]))X++;let _=X,J=0;while(X<Q.length){let U=Q[X];if(U==='"'||U==="'"){let H=U;X++;while(X<Q.length&&Q[X]!==H){if(Q[X]==="\\")X++;X++}X++;continue}if(U==="`"){X++;while(X<Q.length&&Q[X]!=="`"){if(Q[X]==="\\")X++;else if(Q[X]==="$"&&Q[X+1]==="{"){X+=2;let H=1;while(X<Q.length&&H>0){if(Q[X]==="{")H++;else if(Q[X]==="}")H--;else if(Q[X]==='"'||Q[X]==="'"){let W=Q[X];X++;while(X<Q.length&&Q[X]!==W){if(Q[X]==="\\")X++;X++}}X++}continue}X++}X++;continue}if(U==="("||U==="{"||U==="[")J++;else if(U===")"||U==="}"||U==="]"){if(J--,J<0)break}else if(U===","&&J===0)break;X++}$=Q.slice(_,X).trim()}else $=Y;if(Y&&$)Z.push({key:Y,value:$});if(Q[X]===",")X++}return Z}function mQ(Q,Z,X){let Y=fX(Z);if(Y.length===0)return!1;let $=!1;for(let{varName:_,factoryExpr:J,propsExpr:U,startIndex:H,endIndex:W}of Y){let q=hX(_,J,U);Q.overwrite(H,W,q.join(`
|
|
36
|
+
`)),$=!0}return $}function uQ(Q,Z,X){let Y=OQ(Z),$=!1;for(let _ of Y){let J=Z.slice(Math.max(0,_.callStart-100),_.callStart);if(/(?:let|const|var)\s+\w+\s*=\s*$/.test(J))continue;let{replacement:U,needsHelper:H,needsBindable:W}=BQ(_.factoryExpr,_.propsExpr);if(H)X.add("__createOriginInstance");if(W)X.add("__bindable");Q.overwrite(_.callStart,_.callEnd,U),$=!0}return $}function JQ(Q,Z){let X=pX(Q,Z);if(X)return X;let Y=cX(Q,Z);if(Y)return Y;return null}function UQ(Q,Z){let X=mX(Q,Z);if(X)return X;let Y=uX(Q,Z);if(Y)return Y;return null}function v(Q,Z){let X=[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 Y of X){let $=Y.exec(Q);if($)return $[1]}return null}function mX(Q,Z){let Y=new RegExp(`export\\s+(?:const|var|let)\\s+${Z}\\s*=\\s*\\$origin\\s*\\.\\s*props\\s*\\(`,"s").exec(Q);if(!Y)return null;let $=Y.index+Y[0].length-1,_=B(Q,$);if(_===-1)return null;let J=Q.slice($+1,_).trim(),U=[];if(J.startsWith("[")){let z=B(J,0,"[","]");if(z!==-1){U=J.slice(1,z).split(",").map((G)=>G.trim()).map((G)=>{let j=G.match(/^(\w+)\s*\(/);if(j)return j[1];return G}).filter((G)=>G&&/^\w+$/.test(G));let w=z+1;while(w<J.length&&/[\s,]/.test(J[w]))w++;J=J.slice(w)}}if(!J.startsWith("{"))return{attrs:[],parentNames:U};let H=B(J,0,"{","}");if(H===-1)return{attrs:[],parentNames:U};let W=J.slice(1,H);return{attrs:iQ(W),parentNames:U}}function uX(Q,Z){let Y=new RegExp(`export\\s+(?:const|var|let)\\s+${Z}\\s*=\\s*__createAttrs\\s*\\(\\s*\\{`,"s").exec(Q);if(!Y)return null;let $=Y.index+Y[0].length-1,_=B(Q,$,"{","}");if(_===-1)return null;let J=Q.slice($+1,_),U=J.match(/__attrSchema\s*:\s*\{/);if(!U)return{attrs:[],parentNames:[]};let H=U.index+U[0].length-1,W=B(J,H,"{","}");if(W===-1)return{attrs:[],parentNames:[]};let q=J.slice(H+1,W),z=dQ(q),K=J.match(/__parents\s*:\s*\[([^\]]*)\]/),w=[];if(K&&K[1].trim())w=K[1].split(",").map((G)=>G.trim()).filter((G)=>G&&/^\w+$/.test(G));return{attrs:z,parentNames:w}}function pX(Q,Z){let X=dX(Q,Z);if(X)return X;let Y=iX(Q,Z);if(Y)return Y;let $=nX(Q,Z);if($)return $;return null}function dX(Q,Z){let Y=new RegExp(`export\\s+(?:const|var|let)\\s+${Z}\\s*=\\s*\\$origin\\s*\\(`,"s").exec(Q);if(!Y)return null;let $=Y.index+Y[0].length-1,_=B(Q,$);if(_===-1)return null;let J=Q.slice($+1,_);return VQ(J)}function iX(Q,Z){let Y=new RegExp(`export\\s+function\\s+${Z}\\s*(?:<[^>]*>)?\\s*\\([^)]*\\)\\s*(?::\\s*[^{]+)?\\s*\\{`,"s").exec(Q);if(!Y)return null;let $=Y.index+Y[0].length-1,_=B(Q,$,"{","}");if(_===-1)return null;let J=Q.slice($+1,_);return pQ(J)}function nX(Q,Z){let Y=new RegExp(`export\\s+(?:const|var|let)\\s+${Z}\\s*=\\s*(?:<[^>]*>)?\\s*\\([^)]*\\)\\s*(?::\\s*[^=]+)?\\s*=>\\s*`,"s").exec(Q);if(!Y)return null;let $=Q.slice(Y.index+Y[0].length).trim();if($.startsWith("$origin(")){let _=Y.index+Y[0].length+$.indexOf("$origin(")+8,J=B(Q,_-1);if(J===-1)return null;let U=Q.slice(_,J);return VQ(U)}if($.startsWith("{")){let _=Y.index+Y[0].length,J=B(Q,_,"{","}");if(J===-1)return null;let U=Q.slice(_+1,J);return pQ(U)}return null}function pQ(Q){let Z=Q.match(/(?:return\s+)?\$origin\s*\(/);if(!Z)return null;let X=Z.index+Z[0].length-1,Y=B(Q,X);if(Y===-1)return null;let $=Q.slice(X+1,Y);return VQ($)}function VQ(Q){let Z=[],X=Q.trim();if(X.startsWith("[")){let W=B(X,0,"[","]");if(W!==-1){Z=X.slice(1,W).split(",").map((K)=>K.trim()).map((K)=>{let w=K.match(/^(\w+)\s*\(/);if(w)return w[1];return K}).filter((K)=>K&&/^\w+$/.test(K));let z=W+1;while(z<X.length&&/[\s,]/.test(X[z]))z++;X=X.slice(z)}}let Y=X.match(/(\w+)\s*:\s*\$origin\s*\.\s*props\s*\(\s*\{/);if(!Y){let W=X.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 $=Y.index,_=X.indexOf("{",$+Y[0].length-1),J=B(X,_,"{","}");if(J===-1)return{attrs:[],parentNames:Z};let U=X.slice(_+1,J);return{attrs:iQ(U),parentNames:Z}}function cX(Q,Z){let Y=new RegExp(`export\\s+(?:const|var|let)\\s+${Z}\\s*=\\s*__createOrigin\\s*\\(\\s*\\{`,"s").exec(Q);if(!Y)return null;let $=Y.index+Y[0].length-1,_=B(Q,$,"{","}");if(_===-1)return null;let J=Q.slice($+1,_),U=J.match(/__attrSchema\s*:\s*\{/);if(!U)return{attrs:[],parentNames:[]};let H=U.index+U[0].length-1,W=B(J,H,"{","}");if(W===-1)return{attrs:[],parentNames:[]};let q=J.slice(H+1,W),z=dQ(q),K=J.match(/__parents\s*:\s*\[([^\]]*)\]/),w=[];if(K&&K[1].trim())w=K[1].split(",").map((T)=>T.trim()).filter((T)=>T&&/^\w+$/.test(T));let G=J.match(/__propsRef\s*:\s*(\w+)/),j=G?G[1]:void 0;return{attrs:z,parentNames:w,propsRef:j}}function dQ(Q){let Z=[],X=0;while(X<Q.length){while(X<Q.length&&/[\s,]/.test(Q[X]))X++;if(X>=Q.length)break;if(Q.slice(X,X+2)==="/*"){let G=Q.indexOf("*/",X+2);if(G!==-1){X=G+2;continue}}let Y=Q.slice(X).match(/^(\w+)\s*:/);if(!Y)break;let $=Y[1];X+=Y[0].length;while(X<Q.length&&/\s/.test(Q[X]))X++;if(Q[X]!=="{")break;let _=X,J=B(Q,_,"{","}");if(J===-1)break;let U=Q.slice(_+1,J),H="undefined",W=!1,q=!1,z=U.match(/\bdefault\s*:\s*/);if(z){let G=z.index+z[0].length,j=0,T=G;while(T<U.length){let O=U[T];if(O==="{"||O==="("||O==="[")j++;else if(O==="}"||O===")"||O==="]")j--;else if(O===","&&j===0)break;T++}H=U.slice(G,T).trim()}let K=U.match(/\bbindable\s*:\s*(true|false)/);if(K)W=K[1]==="true";let w=U.match(/\bhasDefault\s*:\s*(true|false)/);if(w)q=w[1]==="true";Z.push({key:$,defaultValue:H,bindable:W,hasDefault:q}),X=J+1}return Z}function iQ(Q){let Z=[],X=g(Q);for(let Y of X){let $=Y.trim();if(!$)continue;if($=t($),!$)continue;let _=$.indexOf(":");if(_===-1)continue;let J=$.slice(0,_).trim(),U=$.slice(_+1).trim();U=e(U);let H=a(U);if(H!==-1)U=U.slice(0,H).trim();let W=s(U);if(W.isBindable){let q=W.innerValue,z=q!==""&&q!=="undefined";Z.push({key:J,defaultValue:q,bindable:!0,hasDefault:z})}else{let q=U!=="undefined";Z.push({key:J,defaultValue:U,bindable:!1,hasDefault:q})}}return Z}function HQ(Q){return`___${Q}`}function x(Q,Z){let X=HQ(Q);return`${Q}: ${X} = ${Z}`}function WQ(Q){let Z=HQ(Q);return`${Q}: ${Z}`}function zQ(Q){let Z=HQ(Q);return`get ${Q}() { return ${Z} }`}function qQ(Q){let Z=HQ(Q);return`set ${Q}(v) { ${Z} = v }`}function oX(Q){if(jQ(Q))return`ReturnType<typeof ${XQ(Q)}>`;return`typeof ${Q}`}function i(Q,Z,X={}){let{useNewApi:Y=!0,useUserPropsType:$=!1}=X,_=[];for(let H of Q)if(H.bindable)if(H.hasDefault)_.push(x(H.key,`$bindable(${H.defaultValue})`));else _.push(x(H.key,"$bindable()"));else if(H.hasDefault)_.push(x(H.key,H.defaultValue));else _.push(WQ(H.key));if($)return`let { ${_.join(", ")} }: $$Props = $props()`;let J=oX(Z),U=Y?"$origin.Props":"$origin.Props";return`let { ${_.join(", ")} }: ${U}<${J}> = $props()`}function RQ(Q,Z){let X=[];for(let Y of Z)if(X.push(zQ(Y.key)),Y.bindable)X.push(qQ(Y.key));return`${Q}({ ${X.join(", ")} })`}function sX(Q){let Z=[],X=[];for(let $ of Q.attrs){let _=AQ($.defaultValue),J=$.hasDefault?"?":"";if(Z.push(`${$.key}${J}: ${_}`),$.bindable)X.push($.key)}return{interfaceContent:Z.length>0?`{ ${Z.join("; ")} }`:"{}",bindings:X}}function AQ(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 aX(Q,Z,X,Y="regenerated on save"){let $=[],_=[];for(let H of X.attrs){let W=AQ(H.defaultValue),q=H.hasDefault?"?":"";if($.push(` ${H.key}${q}: ${W};`),H.bindable)_.push(`"${H.key}"`)}let J=$.length>0?`{
|
|
37
37
|
${$.join(`
|
|
38
38
|
`)}
|
|
39
39
|
}`:"{}",U=_.length>0?_.join(" | "):"never";return`// Auto-generated by svelte-origin
|
|
@@ -51,16 +51,16 @@ type Props = ${J};
|
|
|
51
51
|
|
|
52
52
|
declare const __component: Component<Props, {}, ${U}>;
|
|
53
53
|
export default __component;
|
|
54
|
-
`}function
|
|
55
|
-
`)),X.set(Y,{varName:Y,factoryExpr:$,startPos:_,endPos:J}),{...Z,restVarInjected:U.restVarInjected,isFirstDeclaration:!1}}function
|
|
56
|
-
`)),Y.set($,{varName:$,factoryExpr:_,startPos:J,endPos:U})}function
|
|
57
|
-
`));return Z.neededImports.add("__attrsFor"),Z}function
|
|
58
|
-
`))}X.neededImports.add("__attrsFor")}function
|
|
54
|
+
`}function nQ(Q){let Z=[],X=p(Q,"$origin.component");for(let Y of X){let{varName:$,startIndex:_,macroOpenParen:J}=Y,U=B(Q,J);if(U===-1){console.warn(`[svelte-origin] Could not find matching ) for $origin.component( at index ${J}`);continue}let H=Q.slice(J+1,U).trim();Z.push({varName:$,factoryExpr:H,startIndex:_,endIndex:U+1,isGeneric:ZQ(H)})}return Z.sort((Y,$)=>Y.startIndex-$.startIndex),Z}function rX(Q){let Z=f(Q);return ZQ(Q)?`$origin.Props<ReturnType<typeof ${XQ(Z)}>>`:`$origin.Props<typeof ${Q}>`}function tX(Q,Z,X,Y,$,_,J,U,H){let W=[],q=f(Z),z=J;if($&&_){let K=rX(Z);W.push(`type $$Props = ${K}`)}if(X&&Y){let K=Y[1];if(!/\.\.\.\s*(\w+)\s*$/.test(K)&&!z){let j=K.trimEnd()?`${K.trimEnd()}, ...___originAttrs`:"...___originAttrs",T=H.indexOf("}",Y.index+5);if(T!==-1)U.overwrite(Y.index+5,T,` ${j} `),z=!0;W.push(`let ${Q} = ${q}(__attrsFor(${q}, ___originAttrs))`)}else{let G=K.match(/\.\.\.\s*(\w+)\s*$/),j=G?G[1]:"___originAttrs";W.push(`let ${Q} = ${q}(__attrsFor(${q}, ${j}))`)}}else W.push("let ___attrs: $$Props = $props()",`let ${Q} = ${q}(__attrsFor(${q}, ___attrs))`);return{lines:W,restVarInjected:z}}function cQ(Q,Z,X){let{varName:Y,factoryExpr:$,startIndex:_,endIndex:J}=Q,U=tX(Y,$,Z.hasExistingProps,Z.existingPropsMatch,Z.isFirstDeclaration,Z.needsPropsInjection,Z.restVarInjected,Z.s,Z.source);if(Z.neededImports.add("__attrsFor"),Z.isFirstDeclaration&&Z.needsPropsInjection)Z.propsTypeDeclaration="";return Z.s.overwrite(_,J,U.lines.join(`
|
|
55
|
+
`)),X.set(Y,{varName:Y,factoryExpr:$,startPos:_,endPos:J}),{...Z,restVarInjected:U.restVarInjected,isFirstDeclaration:!1}}function eX(Q,Z,X,Y){let{varName:$,factoryExpr:_,startIndex:J,endIndex:U}=Q,H=f(_),W=wQ(X.source),q=i(Z.attrs,H,{useNewApi:!0,useUserPropsType:W}),z=RQ(H,Z.attrs),K=[q,`let ${$} = ${z}`];X.s.overwrite(J,U,K.join(`
|
|
56
|
+
`)),Y.set($,{varName:$,factoryExpr:_,startPos:J,endPos:U})}function oQ(Q,Z,X){let Y=Z.match(/let\s*\{([^}]*)\}\s*(?::\s*[^=]+)?\s*=\s*\$props\s*\(\s*\)/),$=!!Y,_=!wQ(Z)&&!$;return{s:Q,source:Z,neededImports:X,existingPropsMatch:Y,hasExistingProps:$,needsPropsInjection:_,isFirstDeclaration:!0,restVarInjected:!1,propsTypeDeclaration:null}}async function QZ(Q,Z,X,Y){let $=nQ(Z);if($.length===0)return{changed:!1,propsTypeDeclaration:null,originInstances:new Map};let _=oQ(Q,Z,X),J=new Map;for(let U of $){let H=!0;if(Y){let W=PQ(U.factoryExpr),q=v(Z,W),z=await Y(U.factoryExpr,W,q);if(z&&z.attrs.length>0)eX(U,z,_,J),_={..._,isFirstDeclaration:!1},H=!1}if(H)_=cQ(U,_,J)}return{changed:!0,propsTypeDeclaration:_.propsTypeDeclaration,originInstances:J}}function XZ(Q,Z,X){let Y=nQ(Z);if(Y.length===0)return{changed:!1,propsTypeDeclaration:null,originInstances:new Map};let $=oQ(Q,Z,X),_=new Map;for(let J of Y)$=cQ(J,$,_);return{changed:!0,propsTypeDeclaration:$.propsTypeDeclaration,originInstances:_}}function DQ(Q,Z,X){return XZ(Q,Z,X)}async function sQ(Q,Z,X,Y){return QZ(Q,Z,X,Y?async(_,J,U)=>{return Y.resolve(U,J)}:void 0)}function aQ(Q){return`svelteHTML.IntrinsicElements['${Q}']`}function rQ(Q){let Z=[];for(let X of Q)if(Z.push(zQ(X.key)),X.bindable)Z.push(qQ(X.key));return`{ ${Z.join(", ")} }`}function ZZ(Q){let Z=[];for(let X of Q)if(X.bindable)Z.push(X.hasDefault?x(X.key,`$bindable(${X.defaultValue})`):x(X.key,"$bindable()"));else if(X.hasDefault)Z.push(x(X.key,X.defaultValue));else Z.push(WQ(X.key));return Z.join(", ")}function tQ(Q){let Z=[],X=p(Q,"$origin.for");for(let Y of X){let{varName:$,startIndex:_,macroOpenParen:J}=Y,U=B(Q,J);if(U===-1)continue;let H=Q.slice(J+1,U).trim(),W=H.match(/^['"](\w+)['"]$/);Z.push({varName:$,arg:H,startIndex:_,endIndex:U+1,isElement:!!W,elementName:W?W[1]:void 0,factoryName:W?void 0:H})}return Z.sort((Y,$)=>Y.startIndex-$.startIndex),Z}function YZ(Q){let Z=Q.match(/let\s*\{([^}]*)\}\s*(?::\s*[^=]+)?\s*=\s*\$props\s*\(\s*\)/);if(!Z)return null;let X=Z[1],Y=X.match(/\.\.\.\s*(\w+)\s*$/);return{match:Z,content:X,restVarName:Y?Y[1]:null}}function eQ(Q,Z,X,Y){let $=X.content.trimEnd()?`${X.content.trimEnd()}, ...${Y}`:`...${Y}`,_=Z.indexOf("}",X.match.index+5);if(_!==-1)Q.overwrite(X.match.index+5,_,` ${$} `)}function QX(Q,Z,X){let Y=YZ(Z);return{s:Q,source:Z,neededImports:X,existingProps:Y,restVarName:Y?.restVarName??null,restVarInjected:!1}}function XX(Q,Z){let X=aQ(Q.elementName);if(Z.existingProps){if(!Z.restVarName&&!Z.restVarInjected)Z.restVarName="___restAttrs",eQ(Z.s,Z.source,Z.existingProps,Z.restVarName),Z.restVarInjected=!0;Z.s.overwrite(Q.startIndex,Q.endIndex,`let ${Q.varName} = ${Z.restVarName} as ${X}`)}else Z.s.overwrite(Q.startIndex,Q.endIndex,`let { ...${Q.varName} } = $props<${X}>()`);return Z}function ZX(Q,Z){if(Z.existingProps){if(!Z.restVarName&&!Z.restVarInjected)Z.restVarName="___restAttrs",eQ(Z.s,Z.source,Z.existingProps,Z.restVarName),Z.restVarInjected=!0;Z.s.overwrite(Q.startIndex,Q.endIndex,`let ${Q.varName} = __attrsFor(${Q.factoryName}, ${Z.restVarName})`)}else Z.s.overwrite(Q.startIndex,Q.endIndex,[`let ___attrs: $origin.Props<typeof ${Q.factoryName}> = $props()`,`let ${Q.varName} = __attrsFor(${Q.factoryName}, ___attrs)`].join(`
|
|
57
|
+
`));return Z.neededImports.add("__attrsFor"),Z}function $Z(Q,Z,X){if(X.existingProps){let Y=ZZ(Z.attrs),$=X.existingProps.content.match(/,?\s*\.\.\.\s*(\w+)\s*$/),_=X.existingProps.content,J="";if($)J=$[0],_=X.existingProps.content.slice(0,$.index);let U=_.trimEnd()?`${_.trimEnd()}, ${Y}${J}`:`${Y}${J}`,H=X.source.indexOf("}",X.existingProps.match.index+5);if(H!==-1)X.s.overwrite(X.existingProps.match.index+5,H,` ${U} `);let W=rQ(Z.attrs);X.s.overwrite(Q.startIndex,Q.endIndex,`let ${Q.varName} = __attrsFor(${Q.factoryName}, ${W})`)}else{let Y=i(Z.attrs,Q.factoryName,{useNewApi:!0}),$=rQ(Z.attrs);X.s.overwrite(Q.startIndex,Q.endIndex,[Y,`let ${Q.varName} = __attrsFor(${Q.factoryName}, ${$})`].join(`
|
|
58
|
+
`))}X.neededImports.add("__attrsFor")}function _Z(Q,Z,X){let Y=tQ(Z);if(Y.length===0)return!1;let $=QX(Q,Z,X);for(let _ of Y)if(_.isElement&&_.elementName)$=XX(_,$);else if(_.factoryName)$=ZX(_,$);return!0}async function JZ(Q,Z,X,Y){let $=tQ(Z);if($.length===0)return!1;let _=QX(Q,Z,X);for(let J of $)if(J.isElement&&J.elementName)_=XX(J,_);else if(J.factoryName){let U=!0;if(Y){let H=v(Z,J.factoryName),W=await Y(J.factoryName,H);if(W&&W.attrs.length>0)$Z(J,W,_),U=!1}if(U)_=ZX(J,_)}return!0}function EQ(Q,Z,X){return _Z(Q,Z,X)}async function YX(Q,Z,X,Y){return JZ(Q,Z,X,Y?async(_,J)=>{if(!J)return null;return Y.resolve(J,_)}:void 0)}function UX(Q,Z,X){let Y=!1,$=UZ(Z,X);for(let _ of $.reverse()){let J=WZ(_,X);if(J)Q.overwrite(_.startPos,_.endPos,J),Y=!0}return Y}function UZ(Q,Z){let X=[],Y=/\b(let|const|var)\s*\{/g,$;while(($=Y.exec(Q))!==null){if(N(Q,$.index))continue;let _=$[1],J=$.index+$[0].length-1,U=B(Q,J,"{","}");if(U===-1)continue;let H=U+1;while(H<Q.length&&/\s/.test(Q[H]))H++;if(Q[H]!=="=")continue;H++;while(H<Q.length&&/\s/.test(Q[H]))H++;let W="";while(H<Q.length&&/[\w$]/.test(Q[H]))W+=Q[H],H++;if(!W)continue;if(!Z.has(W))continue;let q=!1;while(H<Q.length&&/\s/.test(Q[H]))H++;if(Q[H]==="."){H++;while(H<Q.length&&/\s/.test(Q[H]))H++;let G=qZ(Q,H);if(G==="props")q=!0,H+=G.length;else continue}let z=H;while(z<Q.length&&/\s/.test(Q[z])&&Q[z]!==`
|
|
59
59
|
`)z++;if(Q[z]===";")z++;if(Q[z]===`
|
|
60
|
-
`)z++;let
|
|
60
|
+
`)z++;let K=Q.slice(J+1,U),w=HZ(K,q);X.push({startPos:$.index,endPos:z,sourceVar:W,isPropsAccess:q,methods:w.methods,props:w.props,nestedPropsPattern:w.nestedProps})}return X}function HZ(Q,Z){let X=[],Y=[],$=null,_=g(Q);for(let J of _){let U=J.trim();if(!U)continue;if(U.match(/^props\s*:\s*\{/)){let W=U.indexOf("{"),q=B(U,W,"{","}");if(q!==-1){let z=U.slice(W+1,q),K=g(z),w=[];for(let G of K){let j=$X(G.trim());if(j)w.push(j)}$={startPos:0,endPos:0,props:w}}continue}if(Z){let W=$X(U);if(W)Y.push(W)}else{let W=HX(U);if(W)X.push(W)}}return{methods:X,props:Y,nestedProps:$}}function HX(Q){let Z=Q.trim();if(!Z)return null;let X=zZ(Z),Y,$=null,_=Z;if(X!==-1){Y=Z.slice(0,X).trim(),_=Z.slice(X+1).trim();let U=JX(_);if(U!==-1)return $=_.slice(0,U).trim(),{key:Y,alias:$,defaultValue:_.slice(U+1).trim()};else return $=_,{key:Y,alias:$,defaultValue:null}}let J=JX(Z);if(J!==-1)return Y=Z.slice(0,J).trim(),{key:Y,alias:null,defaultValue:Z.slice(J+1).trim()};return{key:Z,alias:null,defaultValue:null}}function $X(Q){let Z=HX(Q);if(!Z)return null;let X=!1,Y=null;if(Z.defaultValue){if(Z.defaultValue.match(/^\$bindable\s*\(/)){X=!0;let _=Z.defaultValue.indexOf("("),J=B(Z.defaultValue,_,"(",")");if(J!==-1)Y=Z.defaultValue.slice(_+1,J).trim()||null}}return{...Z,isBindable:X,bindableDefault:Y}}function WZ(Q,Z){let X=[];if(!Z.get(Q.sourceVar))return null;for(let $ of Q.methods){let _=$.alias||$.key;if($.defaultValue)X.push(`let ${_} = ${Q.sourceVar}.${$.key}?.bind(${Q.sourceVar}) ?? ${$.defaultValue}`);else X.push(`let ${_} = ${Q.sourceVar}.${$.key}.bind(${Q.sourceVar})`)}if(Q.nestedPropsPattern)for(let $ of Q.nestedPropsPattern.props)X.push(..._X($,Q.sourceVar));if(Q.isPropsAccess)for(let $ of Q.props)X.push(..._X($,Q.sourceVar));return X.join(`
|
|
61
61
|
`)+`
|
|
62
|
-
`}function
|
|
63
|
-
`,X+2);X=Y===-1?Q.length:Y+1;continue}if(Q[X]==="/"&&Q[X+1]==="*"){let Y=Q.indexOf("*/",X+2);X=Y===-1?Q.length:Y+2;continue}if(Q[X]==='"'||Q[X]==="'"||Q[X]==="`"){let Y=Q[X];Z+=Q[X],X++;while(X<Q.length&&Q[X]!==Y){if(Q[X]==="\\")Z+=Q[X],X++;if(X<Q.length)Z+=Q[X],X++}if(X<Q.length)Z+=Q[X],X++;continue}Z+=Q[X],X++}return Z}function
|
|
62
|
+
`}function _X(Q,Z){let X=[],Y=Q.alias||Q.key;if(Q.isBindable){let $=Q.bindableDefault||"undefined";X.push(`let ${Y} = $derived(${Z}.props.${Q.key} ?? ${$})`)}else if(Q.defaultValue)X.push(`let ${Y} = $derived(${Z}.props.${Q.key} ?? ${Q.defaultValue})`);else X.push(`let ${Y} = $derived(${Z}.props.${Q.key})`);return X}function zZ(Q){let Z=0;for(let X=0;X<Q.length;X++){let Y=Q[X];if(Y==="{"||Y==="("||Y==="["||Y==="<")Z++;else if(Y==="}"||Y===")"||Y==="]"||Y===">")Z--;else if(Y===":"&&Z===0)return X}return-1}function JX(Q){let Z=0;for(let X=0;X<Q.length;X++){let Y=Q[X];if(Y==="{"||Y==="("||Y==="["||Y==="<")Z++;else if(Y==="}"||Y===")"||Y==="]"||Y===">")Z--;else if(Y==="="&&Z===0){if(Q[X+1]!=="="&&Q[X+1]!==">")return X}}return-1}function qZ(Q,Z){let X="",Y=Z;while(Y<Q.length&&/[\w$]/.test(Q[Y]))X+=Q[Y],Y++;return X}function GZ(Q){let Z="",X=0;while(X<Q.length){if(Q[X]==="/"&&Q[X+1]==="/"){let Y=Q.indexOf(`
|
|
63
|
+
`,X+2);X=Y===-1?Q.length:Y+1;continue}if(Q[X]==="/"&&Q[X+1]==="*"){let Y=Q.indexOf("*/",X+2);X=Y===-1?Q.length:Y+2;continue}if(Q[X]==='"'||Q[X]==="'"||Q[X]==="`"){let Y=Q[X];Z+=Q[X],X++;while(X<Q.length&&Q[X]!==Y){if(Q[X]==="\\")Z+=Q[X],X++;if(X<Q.length)Z+=Q[X],X++}if(X<Q.length)Z+=Q[X],X++;continue}Z+=Q[X],X++}return Z}function WX(Q,Z,X){if(Z)return;let Y=GZ(Q),$=/\$origin\s*\.\s*component\s*\(/,_=/\$origin\s*\.\s*for\s*\(\s*\w+\s*\)/,J=/\$origin\s*\.\s*for\s*\(\s*['"]/;if($.test(Y)){let U=X?` in "${X}"`:"";throw Error(`[svelte-origin] $origin.component()${U} can only be used inside .svelte components.
|
|
64
64
|
|
|
65
65
|
Use $origin.create() instead for programmatic origin creation in .svelte.ts/.svelte.js files.
|
|
66
66
|
|
|
@@ -71,11 +71,11 @@ export default __component;
|
|
|
71
71
|
// Use:
|
|
72
72
|
let counter = $origin.create(Counter, { count: 0 })`)}if(_.test(Y)||J.test(Y)){let U=X?` in "${X}"`:"";throw Error(`[svelte-origin] $origin.for()${U} can only be used inside .svelte components.
|
|
73
73
|
|
|
74
|
-
This macro is for forwarding props to child components in templates.`)}}function
|
|
75
|
-
`+
|
|
76
|
-
`+Q.propsTypeDeclaration)}}}else{let Y=
|
|
74
|
+
This macro is for forwarding props to child components in templates.`)}}function zX(Q,Z){return{s:new KZ(Q),source:Q,isComponent:Z,neededImports:new Set,svelteImports:new Set,changed:!1,propsTypeDeclaration:null}}function qX(Q){if(!Q.isComponent)Q.changed=hQ(Q.s,Q.source,Q.neededImports,Q.svelteImports)||Q.changed,Q.changed=lQ(Q.s,Q.source,Q.neededImports)||Q.changed;Q.changed=mQ(Q.s,Q.source,Q.neededImports)||Q.changed,Q.changed=uQ(Q.s,Q.s.toString(),Q.neededImports)||Q.changed}function KX(Q,Z){if(Q.changed=Z.changed||Q.changed,Q.propsTypeDeclaration=Z.propsTypeDeclaration,Z.originInstances.size>0)Q.changed=UX(Q.s,Q.source,Z.originInstances)||Q.changed}function wZ(Q){let Z=/<script[^>]*>/.test(Q.source),X=Q.propsTypeDeclaration&&Q.propsTypeDeclaration.length>0;if(Q.isComponent&&(Q.neededImports.size>0||X))if(Z){let Y=Q.source.match(/<script[^>]*>/);if(Y){let $=Y.index+Y[0].length,_=TQ(Q.source);if(Q.neededImports.size>0)Q.s.appendLeft($,`
|
|
75
|
+
`+r([...Q.neededImports]));if(X){let J=_>$?_:$;Q.s.appendLeft(J,`
|
|
76
|
+
`+Q.propsTypeDeclaration)}}}else{let Y=TQ(Q.source);if(Q.neededImports.size>0)Q.s.prepend(r([...Q.neededImports])+`
|
|
77
77
|
`);if(X)Q.s.appendLeft(Y,Q.propsTypeDeclaration+`
|
|
78
|
-
`)}else if(Q.neededImports.size>0||Q.svelteImports.size>0){if(Q.neededImports.size>0)Q.s.prepend(
|
|
78
|
+
`)}else if(Q.neededImports.size>0||Q.svelteImports.size>0){if(Q.neededImports.size>0)Q.s.prepend(r([...Q.neededImports])+`
|
|
79
79
|
`);if(Q.svelteImports.size>0)Q.s.prepend(`import { ${[...Q.svelteImports].join(", ")} } from 'svelte'
|
|
80
|
-
`)}}function
|
|
81
|
-
`)Y=!1,Z+=J;_++;continue}if($){if(J==="*"&&U==="/"){$=!1,_+=2;continue}_++;continue}if(X){if(Z+=J,J==="\\"&&U){Z+=U,_+=2;continue}if(J==='"')X=!1;_++;continue}if(J==='"'){X=!0,Z+=J,_++;continue}if(J==="/"&&U==="/"){Y=!0,_+=2;continue}if(J==="/"&&U==="*"){$=!0,_+=2;continue}Z+=J,_++}return Z}function TX(Q,Z=new Set){let X=k(Q);if(Z.has(X))return null;if(Z.add(X),!M(X))return null;try{let Y=EQ(X,"utf-8"),$=GZ(Y),_=JSON.parse($),J=l(X),U={},K=_.compilerOptions?.baseUrl,H=_.extends;if(H){let W=Array.isArray(H)?H:[H];for(let z of W){let q;if(z.startsWith("."))q=k(J,z);else if(z.startsWith("/")||/^[a-zA-Z]:/.test(z))q=z;else{let w=wZ(z,J);if(w)q=w;else continue}if(!q.endsWith(".json")){if(M(q+".json"))q=q+".json";else if(M(S(q,"tsconfig.json")))q=S(q,"tsconfig.json")}let G=TX(q,Z);if(G){if(G.paths)U={...G.paths,...U};if(G.baseUrl&&!K){let w=l(q);K=k(w,G.baseUrl)}}}}if(_.compilerOptions?.paths)U={...U,..._.compilerOptions.paths};if(K&&!b(K))K=k(J,K);return{paths:Object.keys(U).length>0?U:void 0,baseUrl:K}}catch{return null}}function wZ(Q,Z){let X=Z,Y=b(Z)?(Z.match(/^[a-zA-Z]:[/\\]/)||["/"])[0]:"/";while(X!==Y&&X!==l(X)){let $=S(X,"node_modules",Q);if(M($)){if($.endsWith(".json"))return $;let _=S($,"tsconfig.json");if(M(_))return _;if(M($+".json"))return $+".json"}X=l(X)}return null}function TZ(Q,Z){let X={};for(let[Y,$]of Object.entries(Q)){if(!$||$.length===0)continue;let _=$[0],J=Y.endsWith("/*"),U=J?Y.slice(0,-2):Y;if(J&&_.endsWith("/*"))_=_.slice(0,-2);let K=b(_)?_:k(Z,_);X[U]=K}return X}function LZ(Q,Z){if(!M(Q))return{};try{let X=EQ(Q,"utf-8"),Y={},$=X.match(/alias\s*:\s*\{([^}]+)\}/s);if(!$)return{};let _=$[1],J=/['"]?(\$[\w-]+)['"]?\s*:\s*['"]([^'"]+)['"]/g,U;while((U=J.exec(_))!==null){let[,K,H]=U,W=b(H)?H:k(Z,H);Y[K]=W}return Y}catch{return{}}}function jZ(Q){let Z=[],X=["tsconfig.json","jsconfig.json",".svelte-kit/tsconfig.json"];for(let Y of X){let $=k(Q,Y);if(M($))Z.push($)}return Z}function LX(Q={}){let{aliases:Z={},root:X=process.cwd(),autoDetect:Y=!0,tsconfig:$,svelteConfig:_}=Q,J=b(X)?X:k(process.cwd(),X),U={};if(Y){let K=$?[b($)?$:k(J,$)]:jZ(J);for(let z of K){let q=TX(z);if(q?.paths){let G=q.baseUrl||l(z);U={...TZ(q.paths,G),...U}}}let H=_?b(_)?_:k(J,_):k(J,"svelte.config.js"),W=LZ(H,J);U={...U,...W}}for(let[K,H]of Object.entries(Z))U[K]=b(H)?H:k(J,H);return{aliases:U,root:J}}function jX(Q,Z,X){if(Q.startsWith("."))return k(X,Q);let Y=Object.entries(Z).sort((_,J)=>J[0].length-_[0].length);for(let[_,J]of Y){if(Q===_)return J;if(Q.startsWith(_+"/")){let U=Q.slice(_.length+1);return S(J,U)}}let $=OZ(Q,X);if($)return $;return null}function OZ(Q,Z){if(Q.startsWith(".")||Q.startsWith("/")||/^[a-zA-Z]:/.test(Q))return null;let X,Y;if(Q.startsWith("@")){let J=Q.split("/");if(J.length<2)return null;X=`${J[0]}/${J[1]}`,Y=J.slice(2).join("/")}else{let J=Q.indexOf("/");if(J===-1)X=Q,Y="";else X=Q.slice(0,J),Y=Q.slice(J+1)}let $=Z,_=b(Z)?(Z.match(/^[a-zA-Z]:[/\\]/)||["/"])[0]:"/";while($!==_&&$!==l($)){let J=S($,"node_modules"),U=S(J,X);if(M(U)){let K=S(U,"package.json"),H=Y?`./${Y}`:".";if(M(K))try{let W=JSON.parse(EQ(K,"utf-8"));if(W.exports){let z=BZ(W.exports,H);if(z)return S(U,z)}if(!Y){let z=W.module||W.main||"index.js";return S(U,z)}}catch{}if(Y)return S(U,Y);return S(U,"index.js")}$=l($)}return null}function BZ(Q,Z){if(typeof Q==="string")return Z==="."?Q:null;if(typeof Q!=="object"||Q===null)return null;let X=Q[Z];if(X)return WQ(X);if(Z==="."&&Q["."])return WQ(Q["."]);if(Z==="."){let Y=WQ(Q);if(Y)return Y}return null}function WQ(Q){if(typeof Q==="string")return Q;if(typeof Q!=="object"||Q===null)return null;let Z=Q,X=["svelte","import","module","default","require"];for(let Y of X)if(Y in Z){let $=Z[Y];if(typeof $==="string")return $;let _=WQ($);if(_)return _}return null}function OX(Q){if(M(Q))try{let Y=qZ(Q);if(Y.isFile())return Q;if(Y.isDirectory()){let $=["index.ts","index.js"];for(let _ of $){let J=S(Q,_);if(M(J))return J}}}catch{}let Z=[".ts",".js",".svelte.ts",".svelte.js"];if(Q.endsWith(".svelte")){let Y=Q+".ts";if(M(Y))return Y}if(Q.endsWith(".svelte.js")){let Y=Q.slice(0,-3)+".ts";if(M(Y))return Y}for(let Y of Z){let $=Q+Y;if(M($))return $}let X=["/index.ts","/index.js"];for(let Y of X){let $=Q+Y;if(M($))return $}return null}import{readFileSync as FZ}from"node:fs";import{dirname as VZ}from"node:path";function n(Q,Z,X=!1){for(let Y of Z){let $=Q.findIndex((_)=>_.key===Y.key);if($===-1)Q.push(Y);else if(X)Q[$]=Y}}function RZ(Q,Z,X,Y){let $=jX(Q,X,Z);if(!$){if(Y)console.log(`[svelte-origin] No alias match for ${Q}, skipping`);return null}if(Y)console.log(`[svelte-origin] Resolved path: ${$}`);let _=OX($);if(!_){if(Y)console.log(`[svelte-origin] Could not find file for ${$}`);return null}if(Y)console.log(`[svelte-origin] Found file: ${_}`);let J=FZ(_,"utf-8");return{filePath:_,source:J}}async function BX(Q,Z,X,Y,$,_={}){let{debug:J=!1,aliases:U={}}=_,K=Q==="attrs"?`attrs::${Z}::${X}`:`${Z}::${X}`;if($.has(K)){if(J)console.log(`[svelte-origin] Cache hit for ${K}`);return $.get(K)||null}try{let H=VZ(Y);if(J)console.log(`[svelte-origin] Resolving ${Q}: ${X} from ${Z}`);let W=RZ(Z,H,U,J);if(!W)return $.set(K,null),null;let{filePath:z,source:q}=W,G=Q==="attrs"?_Q(q,X):$Q(q,X);if(!G)return $.set(K,null),null;let w=[];for(let T of G.parentNames){let L=v(q,T),V=null;if(L)V=Q==="attrs"?await MQ(L,T,z,$,_):await zQ(L,T,z,$,_);else if(Q==="attrs")V=await SQ(q,T,z,$,_);if(V)n(w,V.attrs)}if(Q==="origin"&&G.propsRef){let T=v(q,G.propsRef),L=null;if(T){if(J)console.log(`[svelte-origin] Resolving propsRef: ${G.propsRef} from import ${T}`);L=await MQ(T,G.propsRef,z,$,_)}else{if(J)console.log(`[svelte-origin] Resolving propsRef: ${G.propsRef} from same file`);L=await SQ(q,G.propsRef,z,$,_)}if(L)n(w,L.attrs,!0)}n(w,G.attrs,!0);let O={attrs:w,parentNames:G.parentNames};if(J)console.log(`[svelte-origin] Resolved ${Q} schema for ${X}:`,O.attrs.map((T)=>T.key));return $.set(K,O),O}catch(H){if(J)console.error(`[svelte-origin] Error resolving ${Q} schema for ${Z}:`,H);return $.set(K,null),null}}async function zQ(Q,Z,X,Y,$={}){return BX("origin",Q,Z,X,Y,$)}async function MQ(Q,Z,X,Y,$={}){return BX("attrs",Q,Z,X,Y,$)}async function SQ(Q,Z,X,Y,$={}){let{debug:_=!1}=$,J=_Q(Q,Z);if(!J)return null;if(J.parentNames.length===0)return J;let U=[];for(let K of J.parentNames){let H=v(Q,K),W=null;if(H)W=await MQ(H,K,X,Y,$);else W=await SQ(Q,K,X,Y,$);if(W)n(U,W.attrs)}if(n(U,J.attrs,!0),_)console.log(`[svelte-origin] Resolved same-file attrs for ${Z}:`,U.map((K)=>K.key));return{attrs:U,parentNames:J.parentNames}}function kQ(Q,Z,X={}){let{debug:Y=!1,moduleImports:$}=X;return{resolve:async(_,J)=>{if(_!==null)return zQ(_,J,Q,Z,X);if($?.has(J)){let K=$.get(J);if(Y)console.log(`[svelte-origin] Found ${J} in module imports: ${K}`);return zQ(K,J,Q,Z,X)}if(Y)console.log(`[svelte-origin] No import path for ${J}, attempting sibling file resolution`);let U=AZ(J,Q);for(let K of U){if(Y)console.log(`[svelte-origin] Trying sibling path: ${K}`);let H=await zQ(K,J,Q,Z,X);if(H){if(Y)console.log(`[svelte-origin] Found schema in sibling file: ${K}`);return H}}if(Y)console.log(`[svelte-origin] Could not find schema for ${J} in sibling files`);return null}}}function AZ(Q,Z){let X=new Set,Y=[],$=(z)=>{if(!X.has(z))X.add(z),Y.push(z)},_=[".svelte.ts",".svelte.js",".svelte"],J=Q.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase(),U=Q.charAt(0).toLowerCase()+Q.slice(1),K=Q,H=Q.replace(/([a-z])([A-Z])/g,"$1_$2").toLowerCase();for(let z of _)$(`./${J}${z}`),$(`./${U}${z}`),$(`./${K}${z}`),$(`./${H}${z}`);let W=Q.match(/^[A-Z][a-z]+(?=[A-Z])/);if(W){let z=Q.slice(W[0].length);if(z){let q=z.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase(),G=z.charAt(0).toLowerCase()+z.slice(1),w=z,O=z.replace(/([a-z])([A-Z])/g,"$1_$2").toLowerCase();for(let T of _)$(`./${q}${T}`),$(`./${G}${T}`),$(`./${w}${T}`),$(`./${O}${T}`)}}for(let z of _)$(`./state${z}`),$(`./factory${z}`),$(`./schema${z}`),$(`./origin${z}`);return Y}var FX=!1,IQ={outputTransformed:!1,outputDir:void 0,debug:!1};function s0(){FX=!0}function VX(){return FX}function RX(Q){IQ={...IQ,...Q}}function a0(){return IQ}import{writeFileSync as DZ,mkdirSync as EZ,existsSync as MZ,readdirSync as SZ}from"node:fs";import{dirname as kZ,join as AX,basename as IZ}from"node:path";function NQ(Q,Z,X){if(!X.enabled||!Q)return;try{let Y=X.outputDir??kZ(Q);if(!MZ(Y))EZ(Y,{recursive:!0});let $=IZ(Q),_=AX(Y,`${$}.transformed.txt`);if(DZ(_,Z,"utf-8"),X.debug)console.log(`[svelte-origin] Wrote transformed output to ${_}`)}catch(Y){console.warn("[svelte-origin] Failed to write transformed output:",Y)}}function Q1(Q,Z){let X=[];function Y($){let _=SZ($,{withFileTypes:!0});for(let J of _){if(J.name.startsWith(".")||J.name==="node_modules")continue;let U=AX($,J.name);if(J.isDirectory())Y(U);else if(J.isFile()){if(Z.some((H)=>J.name.endsWith(H)))X.push(U)}}}return Y(Q),X}import{readFileSync as NZ}from"node:fs";import{resolve as vZ}from"node:path";function yZ(Q={}){let{extensions:Z=[".svelte.ts",".svelte.js",".origin.svelte.ts"],debug:X=!1,outputTransformed:Y=!1,outputDir:$,aliases:_={},root:J,autoDetectAliases:U=!0,tsconfig:K,svelteConfig:H}=Q,{aliases:W,root:z}=LX({aliases:_,root:J,autoDetect:U,tsconfig:K,svelteConfig:H}),q=$?vZ(z,$):void 0;if(RX({outputTransformed:Y,outputDir:q,debug:X}),X){if(console.log("[svelte-origin] Resolved aliases:",W),console.log("[svelte-origin] Project root:",z),q)console.log("[svelte-origin] Output directory:",q)}let G=new Map,w={enabled:Y,outputDir:q,debug:X};function O(j){return Z.some((F)=>j.endsWith(F))}function T(j){return j.endsWith(".svelte")&&!O(j)}function L(j){let F=[],E=/<script\b([^>]*)>([\s\S]*?)<\/script>/gi,R;while((R=E.exec(j))!==null){let y=R[1],C=R[2],I=R[0],m=R.index+I.indexOf(C),P=m+C.length,d=/\bcontext\s*=\s*["']module["']/.test(y)||/\bmodule\b/.test(y);F.push({content:C,start:m,end:P,isModule:d})}return F}async function V(j,F){let E=L(j);if(E.length===0)return{code:j,changed:!1};let R=j,y=0,C=!1;for(let I of E){if(!h(I.content))continue;let m=kQ(F,G,{debug:X,aliases:W}),P;if(I.isModule)P=DQ(I.content,{filename:F,isComponent:!1});else P=await wX(I.content,{filename:F,isComponent:!0,schemaResolver:m});if(P.changed){C=!0;let d=I.start+y,qQ=I.end+y;R=R.slice(0,d)+P.code+R.slice(qQ),y+=P.code.length-I.content.length}}return{code:R,changed:C}}let A={name:"svelte-origin",enforce:"pre",async load(j){if(!O(j))return null;try{let F=NZ(j,"utf-8");if(!h(F))return null;if(X)console.log(`[svelte-origin] Processing origin file: ${j}`);let E=kQ(j,G,{debug:X,aliases:W}),R=await DQ(F,{filename:j,isComponent:!1,schemaResolver:E});if(!R.changed){if(X)console.log(`[svelte-origin] No changes made to: ${j}`);return null}if(X)console.log(`[svelte-origin] Transformed origin file: ${j}`);return NQ(j,R.code,w),{code:R.code,map:R.map}}catch(F){if(X)console.error(`[svelte-origin] Error processing ${j}:`,F);return null}}};if(!VX()){if(X)console.log("[svelte-origin] Preprocessor not detected, plugin will handle .svelte files");A.transform=async function(j,F){if(!T(F))return null;if(!h(j))return null;if(X)console.log(`[svelte-origin] Processing .svelte file: ${F}`);try{let E=await V(j,F);if(!E.changed){if(X)console.log(`[svelte-origin] No changes made to: ${F}`);return null}if(X)console.log(`[svelte-origin] Transformed .svelte file: ${F}`);return NQ(F,E.code,w),{code:E.code,map:void 0}}catch(E){if(X)console.error(`[svelte-origin] Error processing ${F}:`,E);return null}}}return A}var q1=yZ;export{yZ as svelteOrigin,$Q as parseOriginSchemaFromSource,v as findImportPath,q1 as default};
|
|
80
|
+
`)}}function GX(Q){if(wZ(Q),!Q.changed)return{code:Q.source,changed:!1};return{code:Q.s.toString(),changed:!0,map:Q.s.generateMap({hires:!0})}}async function wX(Q,Z){if(!h(Q))return{code:Q,changed:!1};let{isComponent:X=!1,schemaResolver:Y,filename:$}=Z;WX(Q,X,$);let _=zX(Q,X);if(qX(_),X){let J=Y?await sQ(_.s,Q,_.neededImports,Y):DQ(_.s,Q,_.neededImports);KX(_,J)}if(X){let J=Y?await YX(_.s,Q,_.neededImports,Y):EQ(_.s,Q,_.neededImports);_.changed=J||_.changed}return GX(_)}function TZ(Q,Z){if(!h(Q))return{code:Q,changed:!1};let{isComponent:X=!1,filename:Y}=Z;WX(Q,X,Y);let $=zX(Q,X);if(qX($),X){let _=DQ($.s,Q,$.neededImports);KX($,_)}if(X){let _=EQ($.s,Q,$.neededImports);$.changed=_||$.changed}return GX($)}function MQ(Q,Z={}){if(Z.schemaResolver)return wX(Q,Z);return TZ(Q,Z)}async function TX(Q,Z){return wX(Q,Z)}import{existsSync as M,readFileSync as SQ,statSync as LZ}from"node:fs";import{dirname as l,join as S,resolve as k,isAbsolute as b}from"node:path";function jZ(Q){let Z="",X=!1,Y=!1,$=!1,_=0;while(_<Q.length){let J=Q[_],U=Q[_+1];if(Y){if(J===`
|
|
81
|
+
`)Y=!1,Z+=J;_++;continue}if($){if(J==="*"&&U==="/"){$=!1,_+=2;continue}_++;continue}if(X){if(Z+=J,J==="\\"&&U){Z+=U,_+=2;continue}if(J==='"')X=!1;_++;continue}if(J==='"'){X=!0,Z+=J,_++;continue}if(J==="/"&&U==="/"){Y=!0,_+=2;continue}if(J==="/"&&U==="*"){$=!0,_+=2;continue}Z+=J,_++}return Z}function LX(Q,Z=new Set){let X=k(Q);if(Z.has(X))return null;if(Z.add(X),!M(X))return null;try{let Y=SQ(X,"utf-8"),$=jZ(Y),_=JSON.parse($),J=l(X),U={},H=_.compilerOptions?.baseUrl,W=_.extends;if(W){let q=Array.isArray(W)?W:[W];for(let z of q){let K;if(z.startsWith("."))K=k(J,z);else if(z.startsWith("/")||/^[a-zA-Z]:/.test(z))K=z;else{let G=OZ(z,J);if(G)K=G;else continue}if(!K.endsWith(".json")){if(M(K+".json"))K=K+".json";else if(M(S(K,"tsconfig.json")))K=S(K,"tsconfig.json")}let w=LX(K,Z);if(w){if(w.paths)U={...w.paths,...U};if(w.baseUrl&&!H){let G=l(K);H=k(G,w.baseUrl)}}}}if(_.compilerOptions?.paths)U={...U,..._.compilerOptions.paths};if(H&&!b(H))H=k(J,H);return{paths:Object.keys(U).length>0?U:void 0,baseUrl:H}}catch{return null}}function OZ(Q,Z){let X=Z,Y=b(Z)?(Z.match(/^[a-zA-Z]:[/\\]/)||["/"])[0]:"/";while(X!==Y&&X!==l(X)){let $=S(X,"node_modules",Q);if(M($)){if($.endsWith(".json"))return $;let _=S($,"tsconfig.json");if(M(_))return _;if(M($+".json"))return $+".json"}X=l(X)}return null}function BZ(Q,Z){let X={};for(let[Y,$]of Object.entries(Q)){if(!$||$.length===0)continue;let _=$[0],J=Y.endsWith("/*"),U=J?Y.slice(0,-2):Y;if(J&&_.endsWith("/*"))_=_.slice(0,-2);let H=b(_)?_:k(Z,_);X[U]=H}return X}function FZ(Q,Z){if(!M(Q))return{};try{let X=SQ(Q,"utf-8"),Y={},$=X.match(/alias\s*:\s*\{([^}]+)\}/s);if(!$)return{};let _=$[1],J=/['"]?(\$[\w-]+)['"]?\s*:\s*['"]([^'"]+)['"]/g,U;while((U=J.exec(_))!==null){let[,H,W]=U,q=b(W)?W:k(Z,W);Y[H]=q}return Y}catch{return{}}}function VZ(Q){let Z=[],X=["tsconfig.json","jsconfig.json",".svelte-kit/tsconfig.json"];for(let Y of X){let $=k(Q,Y);if(M($))Z.push($)}return Z}function jX(Q={}){let{aliases:Z={},root:X=process.cwd(),autoDetect:Y=!0,tsconfig:$,svelteConfig:_}=Q,J=b(X)?X:k(process.cwd(),X),U={};if(Y){let H=$?[b($)?$:k(J,$)]:VZ(J);for(let z of H){let K=LX(z);if(K?.paths){let w=K.baseUrl||l(z);U={...BZ(K.paths,w),...U}}}let W=_?b(_)?_:k(J,_):k(J,"svelte.config.js"),q=FZ(W,J);U={...U,...q}}for(let[H,W]of Object.entries(Z))U[H]=b(W)?W:k(J,W);return{aliases:U,root:J}}function OX(Q,Z,X){if(Q.startsWith("."))return k(X,Q);let Y=Object.entries(Z).sort((_,J)=>J[0].length-_[0].length);for(let[_,J]of Y){if(Q===_)return J;if(Q.startsWith(_+"/")){let U=Q.slice(_.length+1);return S(J,U)}}let $=RZ(Q,X);if($)return $;return null}function RZ(Q,Z){if(Q.startsWith(".")||Q.startsWith("/")||/^[a-zA-Z]:/.test(Q))return null;let X,Y;if(Q.startsWith("@")){let J=Q.split("/");if(J.length<2)return null;X=`${J[0]}/${J[1]}`,Y=J.slice(2).join("/")}else{let J=Q.indexOf("/");if(J===-1)X=Q,Y="";else X=Q.slice(0,J),Y=Q.slice(J+1)}let $=Z,_=b(Z)?(Z.match(/^[a-zA-Z]:[/\\]/)||["/"])[0]:"/";while($!==_&&$!==l($)){let J=S($,"node_modules"),U=S(J,X);if(M(U)){let H=S(U,"package.json"),W=Y?`./${Y}`:".";if(M(H))try{let q=JSON.parse(SQ(H,"utf-8"));if(q.exports){let z=AZ(q.exports,W);if(z)return S(U,z)}if(!Y){let z=q.module||q.main||"index.js";return S(U,z)}}catch{}if(Y)return S(U,Y);return S(U,"index.js")}$=l($)}return null}function AZ(Q,Z){if(typeof Q==="string")return Z==="."?Q:null;if(typeof Q!=="object"||Q===null)return null;let X=Q[Z];if(X)return KQ(X);if(Z==="."&&Q["."])return KQ(Q["."]);if(Z==="."){let Y=KQ(Q);if(Y)return Y}return null}function KQ(Q){if(typeof Q==="string")return Q;if(typeof Q!=="object"||Q===null)return null;let Z=Q,X=["svelte","import","module","default","require"];for(let Y of X)if(Y in Z){let $=Z[Y];if(typeof $==="string")return $;let _=KQ($);if(_)return _}return null}function BX(Q){if(M(Q))try{let Y=LZ(Q);if(Y.isFile())return Q;if(Y.isDirectory()){let $=["index.ts","index.js"];for(let _ of $){let J=S(Q,_);if(M(J))return J}}}catch{}let Z=[".ts",".js",".svelte.ts",".svelte.js"];if(Q.endsWith(".svelte")){let Y=Q+".ts";if(M(Y))return Y}if(Q.endsWith(".svelte.js")){let Y=Q.slice(0,-3)+".ts";if(M(Y))return Y}for(let Y of Z){let $=Q+Y;if(M($))return $}let X=["/index.ts","/index.js"];for(let Y of X){let $=Q+Y;if(M($))return $}return null}import{readFileSync as DZ,statSync as RX}from"node:fs";import{basename as FX,dirname as EZ}from"node:path";var o=new Map;function MZ(Q,Z){let X=o.get(Q);if(!X)return!1;try{for(let Y=0;Y<X.filePaths.length;Y++)if(RX(X.filePaths[Y]).mtimeMs!==X.mtimes[Y]){if(Z)console.log(`[svelte-origin] Cache stale for ${Q}: ${X.filePaths[Y]} changed`);return!1}return!0}catch{return!1}}function VX(Q,Z){let X=[],Y=[];for(let $ of Z)try{let _=RX($).mtimeMs;X.push($),Y.push(_)}catch{}if(X.length>0)o.set(Q,{filePaths:X,mtimes:Y})}function AX(Q,Z){let X=FX(Q);for(let[Y,$]of o.entries())if($.filePaths.some((J)=>J===Q||FX(J)===X))Z.delete(Y),o.delete(Y)}function n(Q,Z,X=!1){for(let Y of Z){let $=Q.findIndex((_)=>_.key===Y.key);if($===-1)Q.push(Y);else if(X)Q[$]=Y}}function SZ(Q,Z,X,Y){let $=OX(Q,X,Z);if(!$){if(Y)console.log(`[svelte-origin] No alias match for ${Q}, skipping`);return null}if(Y)console.log(`[svelte-origin] Resolved path: ${$}`);let _=BX($);if(!_){if(Y)console.log(`[svelte-origin] Could not find file for ${$}`);return null}if(Y)console.log(`[svelte-origin] Found file: ${_}`);let J=DZ(_,"utf-8");return{filePath:_,source:J}}async function c(Q,Z,X,Y,$,_={},J=null){let{debug:U=!1,aliases:H={}}=_,W=J===null,q=J??new Set,z=Q==="attrs"?`attrs::${Z}::${X}`:`${Z}::${X}`;if($.has(z)&&MZ(z,U)){if(U)console.log(`[svelte-origin] Cache hit for ${z}`);return $.get(z)||null}if($.has(z))$.delete(z),o.delete(z);try{let K=EZ(Y);if(U)console.log(`[svelte-origin] Resolving ${Q}: ${X} from ${Z}`);let w=SZ(Z,K,H,U);if(!w)return $.set(z,null),null;let{filePath:G,source:j}=w;q.add(G);let T=Q==="attrs"?UQ(j,X):JQ(j,X);if(!T){if($.set(z,null),W)VX(z,q);return null}let O=[];for(let V of T.parentNames){let L=v(j,V),F=null;if(L)F=Q==="attrs"?await c("attrs",L,V,G,$,_,q):await c("origin",L,V,G,$,_,q);else if(Q==="attrs")F=await IQ(j,V,G,$,_,q);if(F)n(O,F.attrs)}if(Q==="origin"&&T.propsRef){let V=v(j,T.propsRef),L=null;if(V){if(U)console.log(`[svelte-origin] Resolving propsRef: ${T.propsRef} from import ${V}`);L=await c("attrs",V,T.propsRef,G,$,_,q)}else{if(U)console.log(`[svelte-origin] Resolving propsRef: ${T.propsRef} from same file`);L=await IQ(j,T.propsRef,G,$,_,q)}if(L)n(O,L.attrs,!0)}n(O,T.attrs,!0);let A={attrs:O,parentNames:T.parentNames};if(U)console.log(`[svelte-origin] Resolved ${Q} schema for ${X}:`,A.attrs.map((V)=>V.key));if($.set(z,A),W)VX(z,q);return A}catch(K){if(U)console.error(`[svelte-origin] Error resolving ${Q} schema for ${Z}:`,K);return $.set(z,null),null}}async function kQ(Q,Z,X,Y,$={}){return c("origin",Q,Z,X,Y,$)}async function IQ(Q,Z,X,Y,$={},_=null){let{debug:J=!1}=$;if(_)_.add(X);let U=UQ(Q,Z);if(!U)return null;if(U.parentNames.length===0)return U;let H=[];for(let W of U.parentNames){let q=v(Q,W),z=null;if(q)z=await c("attrs",q,W,X,Y,$,_);else z=await IQ(Q,W,X,Y,$,_);if(z)n(H,z.attrs)}if(n(H,U.attrs,!0),J)console.log(`[svelte-origin] Resolved same-file attrs for ${Z}:`,H.map((W)=>W.key));return{attrs:H,parentNames:U.parentNames}}function NQ(Q,Z,X={}){let{debug:Y=!1,moduleImports:$}=X;return{resolve:async(_,J)=>{if(_!==null)return kQ(_,J,Q,Z,X);if($?.has(J)){let H=$.get(J);if(Y)console.log(`[svelte-origin] Found ${J} in module imports: ${H}`);return kQ(H,J,Q,Z,X)}if(Y)console.log(`[svelte-origin] No import path for ${J}, attempting sibling file resolution`);let U=kZ(J,Q);for(let H of U){if(Y)console.log(`[svelte-origin] Trying sibling path: ${H}`);let W=await kQ(H,J,Q,Z,X);if(W){if(Y)console.log(`[svelte-origin] Found schema in sibling file: ${H}`);return W}}if(Y)console.log(`[svelte-origin] Could not find schema for ${J} in sibling files`);return null}}}function kZ(Q,Z){let X=new Set,Y=[],$=(z)=>{if(!X.has(z))X.add(z),Y.push(z)},_=[".svelte.ts",".svelte.js",".svelte"],J=Q.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase(),U=Q.charAt(0).toLowerCase()+Q.slice(1),H=Q,W=Q.replace(/([a-z])([A-Z])/g,"$1_$2").toLowerCase();for(let z of _)$(`./${J}${z}`),$(`./${U}${z}`),$(`./${H}${z}`),$(`./${W}${z}`);let q=Q.match(/^[A-Z][a-z]+(?=[A-Z])/);if(q){let z=Q.slice(q[0].length);if(z){let K=z.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase(),w=z.charAt(0).toLowerCase()+z.slice(1),G=z,j=z.replace(/([a-z])([A-Z])/g,"$1_$2").toLowerCase();for(let T of _)$(`./${K}${T}`),$(`./${w}${T}`),$(`./${G}${T}`),$(`./${j}${T}`)}}for(let z of _)$(`./state${z}`),$(`./factory${z}`),$(`./schema${z}`),$(`./origin${z}`);return Y}var DX=!1,vQ={outputTransformed:!1,outputDir:void 0,debug:!1};function Q1(){DX=!0}function EX(){return DX}function MX(Q){vQ={...vQ,...Q}}function X1(){return vQ}import{writeFileSync as IZ,mkdirSync as NZ,existsSync as vZ,readdirSync as CZ}from"node:fs";import{dirname as yZ,join as SX,basename as PZ}from"node:path";function CQ(Q,Z,X){if(!X.enabled||!Q)return;try{let Y=X.outputDir??yZ(Q);if(!vZ(Y))NZ(Y,{recursive:!0});let $=PZ(Q),_=SX(Y,`${$}.transformed.txt`);if(IZ(_,Z,"utf-8"),X.debug)console.log(`[svelte-origin] Wrote transformed output to ${_}`)}catch(Y){console.warn("[svelte-origin] Failed to write transformed output:",Y)}}function _1(Q,Z){let X=[];function Y($){let _=CZ($,{withFileTypes:!0});for(let J of _){if(J.name.startsWith(".")||J.name==="node_modules")continue;let U=SX($,J.name);if(J.isDirectory())Y(U);else if(J.isFile()){if(Z.some((W)=>J.name.endsWith(W)))X.push(U)}}}return Y(Q),X}import{readFileSync as bZ}from"node:fs";import{resolve as gZ}from"node:path";function fZ(Q={}){let{extensions:Z=[".svelte.ts",".svelte.js",".origin.svelte.ts"],debug:X=!1,outputTransformed:Y=!1,outputDir:$,aliases:_={},root:J,autoDetectAliases:U=!0,tsconfig:H,svelteConfig:W}=Q,{aliases:q,root:z}=jX({aliases:_,root:J,autoDetect:U,tsconfig:H,svelteConfig:W}),K=$?gZ(z,$):void 0;if(MX({outputTransformed:Y,outputDir:K,debug:X}),X){if(console.log("[svelte-origin] Resolved aliases:",q),console.log("[svelte-origin] Project root:",z),K)console.log("[svelte-origin] Output directory:",K)}let w=new Map,G={enabled:Y,outputDir:K,debug:X};function j(L){return Z.some((F)=>L.endsWith(F))}function T(L){return L.endsWith(".svelte")&&!j(L)}function O(L){let F=[],E=/<script\b([^>]*)>([\s\S]*?)<\/script>/gi,R;while((R=E.exec(L))!==null){let C=R[1],y=R[2],I=R[0],m=R.index+I.indexOf(y),P=m+y.length,d=/\bcontext\s*=\s*["']module["']/.test(C)||/\bmodule\b/.test(C);F.push({content:y,start:m,end:P,isModule:d})}return F}async function A(L,F){let E=O(L);if(E.length===0)return{code:L,changed:!1};let R=L,C=0,y=!1;for(let I of E){if(!h(I.content))continue;let m=NQ(F,w,{debug:X,aliases:q}),P;if(I.isModule)P=MQ(I.content,{filename:F,isComponent:!1});else P=await TX(I.content,{filename:F,isComponent:!0,schemaResolver:m});if(P.changed){y=!0;let d=I.start+C,GQ=I.end+C;R=R.slice(0,d)+P.code+R.slice(GQ),C+=P.code.length-I.content.length}}return{code:R,changed:y}}let V={name:"svelte-origin",enforce:"pre",async load(L){if(!j(L))return null;AX(L,w);try{let F=bZ(L,"utf-8");if(!h(F))return null;if(X)console.log(`[svelte-origin] Processing origin file: ${L}`);let E=NQ(L,w,{debug:X,aliases:q}),R=await MQ(F,{filename:L,isComponent:!1,schemaResolver:E});if(!R.changed){if(X)console.log(`[svelte-origin] No changes made to: ${L}`);return null}if(X)console.log(`[svelte-origin] Transformed origin file: ${L}`);return CQ(L,R.code,G),{code:R.code,map:R.map}}catch(F){if(X)console.error(`[svelte-origin] Error processing ${L}:`,F);return null}}};if(!EX()){if(X)console.log("[svelte-origin] Preprocessor not detected, plugin will handle .svelte files");V.transform=async function(L,F){if(!T(F))return null;if(!h(L))return null;if(X)console.log(`[svelte-origin] Processing .svelte file: ${F}`);try{let E=await A(L,F);if(!E.changed){if(X)console.log(`[svelte-origin] No changes made to: ${F}`);return null}if(X)console.log(`[svelte-origin] Transformed .svelte file: ${F}`);return CQ(F,E.code,G),{code:E.code,map:void 0}}catch(E){if(X)console.error(`[svelte-origin] Error processing ${F}:`,E);return null}}}return V}var j1=fZ;export{fZ as svelteOrigin,JQ as parseOriginSchemaFromSource,v as findImportPath,j1 as default};
|