lecodes-cli 2.0.7 → 2.0.9
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/dist/index.js +1798 -1116
- package/package.json +21 -11
- package/runtime/sdk-types.json +1 -1
- package/runtime/web/VERSION.json +3 -3
- package/runtime/web/assets/creator-2d-BSJoqaE1.wasm +0 -0
- package/runtime/web/assets/{creator-2d-CYlV77UR.js → creator-2d-DG2jJnoQ.js} +1 -1
- package/runtime/web/assets/creator-ui-Bu2prHDl.wasm +0 -0
- package/runtime/web/assets/creator-ui-HDloYDcM.js +1 -0
- package/runtime/web/player.js +15 -15
- package/runtime/web-lite/assets/pager-DpGa2uaE.js +1 -0
- package/runtime/web-lite/assets/vlist-CwSYpLz-.js +1 -0
- package/runtime/web-lite/features.json +2 -2
- package/runtime/web-lite/lite.js +21 -10
- package/src/commands/app/android.ts +7 -7
- package/src/commands/app/index.ts +58 -84
- package/src/commands/app/shared.ts +53 -74
- package/src/commands/app/templates/ios.ts +75 -78
- package/src/commands/compile.ts +1 -1
- package/src/commands/init/templates.ts +7 -0
- package/src/commands/render.ts +17 -4
- package/src/commands/test.ts +10 -6
- package/src/compile/collect.ts +12 -3
- package/src/compile/headlessBundle.ts +10 -3
- package/src/declarations/lecodes-headless.d.ts +3 -0
- package/src/dev/backendWorker.ts +17 -6
- package/src/dev/localBackend.ts +8 -2
- package/src/dev/projectBackend.ts +31 -9
- package/src/hosts/desktopScript.ts +11 -1
- package/src/hosts/flowPick.ts +111 -0
- package/src/hosts/liteBrowser.mjs +5 -0
- package/src/hosts/liteRunner.ts +30 -0
- package/src/hosts/peerInstall.ts +5 -1
- package/src/hosts/peers.ts +2 -0
- package/runtime/web/assets/creator-2d-nG7rGEmq.wasm +0 -0
- package/runtime/web/assets/creator-ui-CbtoaRlz.js +0 -1
- package/runtime/web/assets/creator-ui-DZaoxIpX.wasm +0 -0
- package/runtime/web-lite/assets/pager-Db5BY7FB.js +0 -1
- package/runtime/web-lite/assets/vlist-DrV2Q7P5.js +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{f as B,i as L,j as O,k as R,l as j,t as q,m as K,n as U,o as J,q as Q,s as X}from"../lite.js";const Y=120,Z=i=>{const l=new Map,u=new Map;let c=[];const a=e=>{let t=e;for(;t.parent;)t=t.parent;return t},d=e=>e.tabs.flat(),g=(e,t)=>e.tabs.some(s=>s.includes(t)),h=e=>{const t=e.tabs[e.selected];return t&&t.length>0?t[t.length-1]:null},_=e=>{const t=a(e.node),s=u.get(t);return s?s.open===t:i.shown(t)},p=(e,t)=>{const s=e.node.el.ownerDocument;for(;e.cells.length<=t;){const n=s.createElement("div");n.className="lc-pager-cell",e.track.appendChild(n),e.cells.push(n)}return e.cells[t]},V=(e,t)=>{const s=e.selected*e.track.clientWidth;if(Math.abs(e.track.scrollLeft-s)<1){e.heading=null;return}e.heading=e.selected,e.track.scrollTo({left:s,behavior:t?"smooth":"instant"})},M=e=>{var t;for(const s of e.tabs)s.forEach((n,o)=>n.el.classList.toggle("lc-covered",o!==s.length-1));for(const s of e.stash)s.el.classList.add("lc-covered");e.track.classList.toggle("lc-drilled",(((t=e.tabs[e.selected])==null?void 0:t.length)??0)>1)},N=(e,t,s)=>t.type!=="screen"?(i.warn("pager: a page must be a live screen node"),!1):e.stash.delete(t)?(R(p(e,s),t.el),!0):t.parent!==null||t.rooted?(i.warn("pager: the page is attached elsewhere (remove it first)"),!1):(u.set(t,e),i.rootOwned(t,!0),t.el.classList.add("lc-covered"),R(p(e,s),t.el),!0),w=(e,t,s=!0)=>{if(t.el.classList.remove("lc-above"),s&&(t.flags&j)!==0){e.stash.add(t),t.el.classList.add("lc-covered");return}q(t.el),t.el.classList.remove("lc-covered"),u.delete(t),i.rootOwned(t,!1),i.emit(t.id,K)},I=(e,t)=>{i.emit(e.id,t,U,e.id)},S=(e,t)=>{e.active!==t&&(e.active=t,v(e))},C=(e,t)=>{for(const s of[...l.values()])l.get(s.node)===s&&s.node!==e&&a(s.node)===e&&S(s,t)};function v(e){const t=e.active?h(e):null;if(e.open!==t){if(e.open){const s=e.open;C(s,!1),I(s,Q),e.open=null,c=c.filter(n=>n!==e)}t&&(e.open=t,c.push(e),I(t,X),C(t,!0)),i.rootsChanged()}}const H=e=>{const t=u.get(e);return t?t.open===e||t.stage.holds(e)?!0:h(t)===e&&i.rootHolds(a(t.node)):null},z=e=>{const t=e.track.clientWidth;if(t<=0||e.tabs.length===0)return;const s=Math.max(0,Math.min(e.tabs.length-1,Math.round(e.track.scrollLeft/t)));if(e.heading!==null){s===e.heading&&(e.heading=null);return}s!==e.selected&&(e.stage.settle(),e.selected=s,M(e),i.emit(e.node.id,J,s),v(e))},F=e=>{const t=l.get(e);if(t)return t;const s=e.el.ownerDocument,n=s.defaultView??window,o=s.createElement("div");o.className="lc-pager-track",e.el.appendChild(o);const r={node:e,track:o,cells:[],tabs:[],backs:new Map,stash:new Set,selected:0,active:!1,open:null,heading:null,stage:i.stage(),sizes:new ResizeObserver(()=>{r.track.scrollLeft=r.selected*r.track.clientWidth}),settle:0};r.sizes.observe(o),"onscrollend"in o?o.addEventListener("scrollend",()=>z(r)):o.addEventListener("scroll",()=>{n.clearTimeout(r.settle),r.settle=n.setTimeout(()=>z(r),Y)},{passive:!0});const f=()=>{r.heading=null};return o.addEventListener("touchstart",f,{passive:!0}),o.addEventListener("wheel",f,{passive:!0}),l.set(e,r),r},A=(e,t,s,n)=>{const o=n===O?L:n;v(e),M(e),s&&s.el.classList.remove("lc-covered");const r=e.stage.enterOnTop(o);t.el.classList.toggle("lc-above",r),s==null||s.el.classList.toggle("lc-above",!r),e.stage.run(t,s,o,()=>{t.el.classList.remove("lc-above"),s&&(s.el.classList.remove("lc-above"),!(l.get(e.node)!==e||u.get(s)!==e)&&h(e)!==s&&(s.el.classList.add("lc-covered"),!g(e,s)&&!e.stash.has(s)&&w(e,s)))})},P=(e,t,s)=>{const n=e.tabs[e.selected],o=n[n.length-1],r=s===O?e.backs.get(o)??L:s,f=n.slice(t,n.length-1);n.length=t;for(const m of f)e.backs.delete(m),w(e,m);e.backs.delete(o),A(e,n[n.length-1],o,r)},k=e=>{const t=l.get(e);return t&&t.tabs.length>0?t:null},G=()=>{var e;for(let t=c.length-1;t>=0;t--){const s=c[t];if((((e=s.tabs[s.selected])==null?void 0:e.length)??0)>1)return s}return null},W=e=>{e.stage.settle(),S(e,!1);for(const t of d(e))w(e,t,!1);e.tabs=[];for(const t of[...e.stash])e.stash.delete(t),w(e,t,!1);c=c.filter(t=>t!==e),e.sizes.disconnect(),clearTimeout(e.settle),e.track.remove(),l.delete(e.node)};return{ownerOf:e=>{var t;return((t=u.get(e))==null?void 0:t.node)??null},pageShown:H,pages(e){const t=l.get(e);return t?t.tabs.flatMap((s,n)=>s.map((o,r)=>({tab:n,pos:r,node:o}))):null},selected:e=>{var t;return((t=l.get(e))==null?void 0:t.selected)??0},isCell:e=>e.classList.contains("lc-pager-cell"),setContent(e,t,s,n){const o=F(e);o.stage.settle();const r=d(o),f=[];let m=0;s.forEach((E,T)=>{const y=[];for(let D=0;D<E&&m<t.length;D++,m++){const b=t[m];b&&(r.includes(b)&&u.get(b)===o?(R(p(o,T),b.el),y.push(b)):N(o,b,T)&&y.push(b))}f.push(y)}),o.tabs=f,o.backs.clear();for(const E of r)g(o,E)||w(o,E);for(;o.cells.length>Math.max(f.length,0);){const E=o.cells.pop();for(const T of o.stash)T.el.parentElement===E&&R(o.node.el,T.el);E.remove()}o.selected=f.length===0?0:Math.max(0,Math.min(n,f.length-1)),!o.active&&_(o)&&(o.active=!0),v(o),M(o),V(o,!1)},select(e,t,s){const n=k(e);if(!n)return;n.stage.settle();const o=Math.max(0,Math.min(t,n.tabs.length-1));o!==n.selected&&(n.selected=o,v(n),M(n)),V(n,s)},push(e,t,s,n){const o=k(e);if(!o||!t)return;o.stage.settle();const r=o.tabs[o.selected],f=r[r.length-1]??null;N(o,t,o.selected)&&(r.push(t),o.backs.set(t,n===O?L:n),A(o,t,f,s))},pop(e,t){const s=k(e);if(!s)return;s.stage.settle();const n=s.tabs[s.selected].length;n>1&&P(s,n-1,t)},popToRoot(e,t){const s=k(e);s&&(s.stage.settle(),s.tabs[s.selected].length>1&&P(s,1,t))},replace(e,t,s,n){const o=k(e);if(!o||!t)return;o.stage.settle();const r=o.tabs[o.selected],f=r[r.length-1]??null;f!==t&&N(o,t,o.selected)&&(o.backs.set(t,n===O?f?o.backs.get(f)??L:L:n),f?(r[r.length-1]=t,o.backs.delete(f)):r.push(t),A(o,t,f,s))},popForBack(){const e=G();if(!e)return!1;e.stage.settle();const t=e.tabs[e.selected].length-1;return i.emit(e.node.id,B,t),P(e,t,O),!0},rootActive:(e,t)=>C(e,t),subtreeMoved(e){for(const t of[...l.values()])if(l.get(t.node)===t){for(let s=t.node;s;s=s.parent)if(s===e){S(t,_(t));break}}},forget(e){const t=l.get(e);t&&W(t);const s=u.get(e);if(s){s.open===e&&(s.open=null,c=c.filter(n=>n!==s));for(const n of s.tabs){const o=n.indexOf(e);o>=0&&n.splice(o,1)}s.backs.delete(e),s.stash.delete(e),u.delete(e)}},destroy(){for(const e of l.values())e.sizes.disconnect(),clearTimeout(e.settle),e.track.remove();l.clear(),u.clear(),c=[]}}},x={name:"pager",install(i){const l=Z({emit:i.emitLater,warn:i.warn,rootOwned:i.rootOwned,shown:i.shown,stage:i.stage,rootsChanged:i.rootsChanged,rootHolds:i.rootHolds}),u=c=>{const a=i.node(c);return(a==null?void 0:a.type)==="pager"?a:void 0};return{bridge:{pagerSetContent(c,a,d,g){const h=u(c);h&&l.setContent(h,a.map(_=>i.node(_)),d,g)},pagerSelect(c,a,d){const g=u(c);g&&l.select(g,a,d)},pagerPush(c,a,d,g){const h=u(c);h&&l.push(h,i.node(a),d,g)},pagerPop(c,a){const d=u(c);d&&l.pop(d,a)},pagerPopToRoot(c,a){const d=u(c);d&&l.popToRoot(d,a)},pagerReplace(c,a,d,g){const h=u(c);h&&l.replace(h,i.node(a),d,g)}},forget:l.forget,destroy:l.destroy,rootActive:l.rootActive,subtreeMoved:l.subtreeMoved,back:l.popForBack,boundary:l.isCell,ownerOf:l.ownerOf,pageShown:l.pageShown,roots:c=>{var a;return((a=l.pages(c))==null?void 0:a.map(d=>d.node))??null},dump(c,a,d){const g=l.pages(c);g&&(a.selected=l.selected(c),a.pages=g.map(h=>({tab:h.tab,pos:h.pos,node:d(h.node)})))}}}};export{Z as createPagers,x as pager};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{u as W,w as B}from"../lite.js";const F=(m,c)=>{let d=[],l=[];const r=new Map,f=new Map,a=new Set;let e=[0],o=0,t=0,i=0,y=0,w=!0,O=!1,v=!1,p=!1,M=!1,K=!0;const I=n=>f.get(d[n])??l[n],E=n=>{o=Math.min(o,n)},N=()=>{const n=d.length;e.length=n+1,o>n&&(o=n),o===0&&(e[0]=0);for(let s=o;s<n;s++)e[s+1]=e[s]+I(s);o=n},L=()=>(N(),e[d.length]??0),k=n=>{for(let s=n;s<d.length;s++)r.set(d[s],s)},C=()=>m.inverted?Math.max(0,y-L()):0,_=()=>Math.max(0,L()-y),R=()=>{N();const n=d.length;if(n===0||y<=0)return[-1,-2];const s=m.overscan<0?y:m.overscan,u=t-s,h=t+y+s;let T=0,g=n;for(;T<g;){const S=T+g>>1;e[S+1]>u?g=S:T=S+1}const x=Math.min(T,n-1);for(T=0,g=n;T<g;){const S=T+g>>1;e[S]<h?T=S+1:g=S}return[Math.max(x,0),Math.min(T-1,n-1)]},H=()=>{m.endThreshold>0&&(L()-(t+y)<=m.endThreshold?O||(O=!0,c.edge(!0)):O=!1),m.startThreshold>0&&(t<=m.startThreshold?v||(v=!0,c.edge(!1)):v=!1)},z=()=>{if(p){M=!0;return}p=!0;try{for(let n=0;n<4;n++){M=!1;const[s,u]=R(),h=[],T=[];for(const g of a){const x=r.get(g);(x===void 0||x<s||x>u)&&h.push(g)}for(let g=s;g<=u;g++)a.has(d[g])||T.push(d[g]);if(h.length===0&&T.length===0||(c.sync(h,T),!M))break}}finally{p=!1}},b=n=>{t=Math.max(0,Math.min(n,_())),c.adjust(t)},D=(n,s,u)=>{const h=I(s);if(f.set(n,u),Math.abs(u-h)<=.5)return;N();const T=e[s];E(s),T<t?b(t+(u-h)):m.inverted&&w&&b(_()),M=!0};return{setKeys(n,s){d=n.slice(),l=d.map((u,h)=>s[h]??0),r.clear(),k(0),E(0),b(t),z(),H()},insertKeys(n,s,u){if(s.length===0)return;const h=d.length;(n<0||n>h)&&(n=h);const T=h>0,g=n===h;let x=0;s.forEach((V,A)=>{x+=f.get(V)??u[A]??0}),d.splice(n,0,...s),l.splice(n,0,...s.map((V,A)=>u[A]??0)),k(n),E(n);const S=w;N(),T&&!g&&e[n]<=t+.5&&b(t+x),m.inverted&&S&&g&&(b(_()),w=!0),z(),H()},removeKeys(n){let s=0;N();for(const u of n){const h=r.get(u);h!==void 0&&(e[h+1]<=t&&(s+=I(h)),d.splice(h,1),l.splice(h,1),r.delete(u),f.delete(u),k(h),E(h),N())}b(s>0?t-s:t),z(),H()},invalidate(n){if(!(!a.has(n)||p)){p=!0;try{c.sync([n],[n])}finally{p=!1}M&&(M=!1,z())}},mounted(n,s){const u=r.get(n);u!==void 0&&(a.add(n),D(n,u,s))},unmounted(n){a.delete(n)},isMounted:n=>a.has(n),resized(n,s){const u=r.get(n);u===void 0||!a.has(n)||(D(n,u,s),M&&!p&&(M=!1,z()))},scrolled(n){t=Math.max(0,n),w=t+y>=L()-2,z(),H()},viewport(n,s,u){if(!(n>0)||!(s>0))return;const h=Math.abs(n-i)>.5,T=Math.abs(s-y)>.5;if(i=n,y=s,L()<=y&&(w=!0),h){E(0);for(const g of a)f.set(g,u(g))}K?(K=!1,m.inverted&&(b(_()),w=!0)):m.inverted&&w&&T?b(_()):h&&b(t),z()},offsetOf(n){const s=r.get(n);return s===void 0?NaN:(N(),C()+e[s])},mountedTop(){let n=-1;for(const s of a){const u=r.get(s);u!==void 0&&(n<0||u<n)&&(n=u)}return N(),C()+(n<0?0:e[n])},indexOf:n=>r.get(n)??-1,contentHeight:()=>m.inverted?Math.max(L(),y):L(),maxScroll:_,scrollY:()=>t,mountedKeys:()=>[...a]}},$=m=>{const c=new Map,d=new Map,l=e=>{e.content.style.minHeight=`${e.window.contentHeight()}px`,e.content.style.paddingTop=`${e.window.mountedTop()}px`},r=(e,o)=>{const t=e.items.get(o);e.window.unmounted(o),t&&(e.items.delete(o),e.keyOf.delete(t),d.delete(t),e.sizes.unobserve(t.el),t.el.remove(),m.rootOwned(t,!1))},f=(e,o,t)=>{if(Number.isNaN(o))return;l(e);const i=Math.max(0,Math.min(o,e.window.maxScroll()));e.node.el.scrollTo({top:i,behavior:t?"smooth":"instant"})},a=e=>{for(const o of[...e.items.keys()])r(e,o);e.sizes.disconnect(),e.node.el.removeEventListener("scroll",e.onScroll),e.content.remove(),c.delete(e.node)};return{init(e,o,t,i,y){if(c.has(e))return;const w=e.el,O=w.ownerDocument.createElement("div");O.className="lc-vlist-content",w.appendChild(O);const v={node:e,content:O,items:new Map,keyOf:new Map,onScroll:()=>{v.window.scrolled(w.scrollTop),l(v)}};v.window=F({overscan:o,inverted:t,startThreshold:i,endThreshold:y},{sync(p,M){for(const K of p)r(v,K);m.emit(e.id,B,p,M),l(v)},adjust(p){l(v),Math.abs(w.scrollTop-p)>=.5&&(w.scrollTop=p)},edge:p=>{m.emitLater(e.id,W,p)}}),v.sizes=new ResizeObserver(p=>{for(const M of p){const K=M.target;if(K===w){v.window.viewport(w.clientWidth,w.clientHeight,I=>{var E;return((E=v.items.get(I))==null?void 0:E.el.offsetHeight)??0});continue}for(const[I,E]of v.keyOf)if(I.el===K){v.window.resized(E,K.offsetHeight);break}}l(v)}),v.sizes.observe(w),w.addEventListener("scroll",v.onScroll,{passive:!0}),c.set(e,v)},setKeys(e,o,t){const i=c.get(e);i&&(i.window.setKeys(o,Array.from(t)),l(i))},insertKeys(e,o,t,i){const y=c.get(e);y&&(y.window.insertKeys(o,t,Array.from(i)),l(y))},removeKeys(e,o){const t=c.get(e);t&&(t.window.removeKeys(o),l(t))},invalidate(e,o){const t=c.get(e);t&&(t.window.invalidate(o),l(t))},mount(e,o,t){const i=c.get(e);if(!i||!t)return;if(t.parent!==null||t.rooted){m.warn(`vlist: the item for key '${o}' is attached elsewhere`);return}const y=i.window.indexOf(o);if(y<0)return;i.items.has(o)&&r(i,o);let w=null,O=1/0;for(const[v,p]of i.items){const M=i.window.indexOf(v);M>y&&M<O&&(w=p,O=M)}i.items.set(o,t),i.keyOf.set(t,o),d.set(t,i),m.rootOwned(t,!0),i.content.insertBefore(t.el,(w==null?void 0:w.el)??null),m.flush(),i.sizes.observe(t.el),i.window.mounted(o,t.el.offsetHeight)},scrollTo(e,o,t){const i=c.get(e);i&&f(i,o,t)},scrollToKey(e,o,t){const i=c.get(e);i&&f(i,i.window.offsetOf(o),t)},scrollToEnd(e,o){const t=c.get(e);t&&f(t,t.window.maxScroll(),o)},mounted(e){const o=c.get(e);return o?[...o.items.values()].sort((t,i)=>t.el.compareDocumentPosition(i.el)&Node.DOCUMENT_POSITION_FOLLOWING?-1:1):null},ownerOf:e=>{var o;return((o=d.get(e))==null?void 0:o.node)??null},forget(e){const o=c.get(e);o&&a(o);const t=d.get(e),i=t==null?void 0:t.keyOf.get(e);t&&i!==void 0&&(t.window.unmounted(i),t.items.delete(i),t.keyOf.delete(e),t.sizes.unobserve(e.el),d.delete(e))},destroy(){for(const e of c.values())e.sizes.disconnect(),e.content.remove();c.clear(),d.clear()}}},G={name:"vlist",install(m){const c=$({emit:m.emit,emitLater:m.emitLater,warn:m.warn,rootOwned:m.rootOwned,flush:m.flush}),d=l=>{const r=m.node(l);return(r==null?void 0:r.type)==="vlist"?r:void 0};return{bridge:{vlistInit(l,r,f,a,e){const o=d(l);o&&c.init(o,r,f,a,e)},vlistSetKeys(l,r,f){const a=d(l);a&&c.setKeys(a,r,f)},vlistInsertKeys(l,r,f,a){const e=d(l);e&&c.insertKeys(e,r,f,a)},vlistRemoveKeys(l,r){const f=d(l);f&&c.removeKeys(f,r)},vlistInvalidate(l,r){const f=d(l);f&&c.invalidate(f,r)},vlistMount(l,r,f){const a=d(l);a&&c.mount(a,r,m.node(f))},vlistScrollTo(l,r,f){const a=d(l);a&&c.scrollTo(a,r,f)},vlistScrollToKey(l,r,f){const a=d(l);a&&c.scrollToKey(a,r,f)},vlistScrollToEnd(l,r){const f=d(l);f&&c.scrollToEnd(f,r)}},forget:c.forget,destroy:c.destroy,dump(l,r,f){const a=c.mounted(l);a&&(r.items=a.map(f))}}}};export{$ as createVLists,G as vlist};
|
|
@@ -69,7 +69,7 @@
|
|
|
69
69
|
"pagerSetContent"
|
|
70
70
|
],
|
|
71
71
|
"files": [
|
|
72
|
-
"assets/pager-
|
|
72
|
+
"assets/pager-DpGa2uaE.js"
|
|
73
73
|
]
|
|
74
74
|
},
|
|
75
75
|
{
|
|
@@ -78,7 +78,7 @@
|
|
|
78
78
|
"vlistInit"
|
|
79
79
|
],
|
|
80
80
|
"files": [
|
|
81
|
-
"assets/vlist-
|
|
81
|
+
"assets/vlist-CwSYpLz-.js"
|
|
82
82
|
]
|
|
83
83
|
},
|
|
84
84
|
{
|