create-qwik 0.17.3 → 0.17.5-dev20230207203251

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/index.cjs CHANGED
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * @license
3
- * create-qwik 0.17.3
3
+ * create-qwik 0.17.5-dev20230207203251
4
4
  * Copyright Builder.io, Inc. All Rights Reserved.
5
5
  * Use of this source code is governed by an MIT-style license that can be
6
6
  * found in the LICENSE file at https://github.com/BuilderIO/qwik/blob/main/LICENSE
@@ -104,7 +104,7 @@ Filtered results for: ${this.inputValue?this.inputValue:we.gray("Enter something
104
104
  `),this.close()}_(e,r){return e.toLowerCase()==="y"?(this.value=!0,this.submit()):e.toLowerCase()==="n"?(this.value=!1,this.submit()):this.bell()}render(){this.closed||(this.firstRender?this.out.write(Sc.hide):this.out.write($0(this.outputText,this.out.columns)),super.render(),this.outputText=[xc.symbol(this.done,this.aborted),_c.bold(this.msg),xc.delimiter(this.done),this.done?this.value?this.yesMsg:this.noMsg:_c.gray(this.initialValue?this.yesOption:this.noOption)].join(" "),this.out.write(k0.line+Sc.to(0)+this.outputText))}};Ec.exports=an});var Rc=h((Nv,Oc)=>{"use strict";Oc.exports={TextPrompt:Eh(),SelectPrompt:Ch(),TogglePrompt:Mh(),DatePrompt:sc(),NumberPrompt:lc(),MultiselectPrompt:tn(),AutocompletePrompt:mc(),AutocompleteMultiselectPrompt:wc(),ConfirmPrompt:Tc()}});var Dc=h(Cc=>{"use strict";var N=Cc,j0=Rc(),Br=t=>t;function he(t,e,r={}){return new Promise((i,s)=>{let n=new j0[t](e),o=r.onAbort||Br,a=r.onSubmit||Br,l=r.onExit||Br;n.on("state",e.onState||Br),n.on("submit",u=>i(a(u))),n.on("exit",u=>i(l(u))),n.on("abort",u=>s(o(u)))})}N.text=t=>he("TextPrompt",t);N.password=t=>(t.style="password",N.text(t));N.invisible=t=>(t.style="invisible",N.text(t));N.number=t=>he("NumberPrompt",t);N.date=t=>he("DatePrompt",t);N.confirm=t=>he("ConfirmPrompt",t);N.list=t=>{let e=t.separator||",";return he("TextPrompt",t,{onSubmit:r=>r.split(e).map(i=>i.trim())})};N.toggle=t=>he("TogglePrompt",t);N.select=t=>he("SelectPrompt",t);N.multiselect=t=>{t.choices=[].concat(t.choices||[]);let e=r=>r.filter(i=>i.selected).map(i=>i.value);return he("MultiselectPrompt",t,{onAbort:e,onSubmit:e})};N.autocompleteMultiselect=t=>{t.choices=[].concat(t.choices||[]);let e=r=>r.filter(i=>i.selected).map(i=>i.value);return he("AutocompleteMultiselectPrompt",t,{onAbort:e,onSubmit:e})};var L0=(t,e)=>Promise.resolve(e.filter(r=>r.title.slice(0,t.length).toLowerCase()===t.toLowerCase()));N.autocomplete=t=>(t.suggest=t.suggest||L0,t.choices=[].concat(t.choices||[]),he("AutocompletePrompt",t))});var Mc=h((Hv,qc)=>{"use strict";var ln=Dc(),F0=["suggest","format","onState","validate","onRender","type"],Ac=()=>{};async function Me(t=[],{onSubmit:e=Ac,onCancel:r=Ac}={}){let i={},s=Me._override||{};t=[].concat(t);let n,o,a,l,u,p,f=async(d,g,v=!1)=>{if(!(!v&&d.validate&&d.validate(g)!==!0))return d.format?await d.format(g,i):g};for(o of t)if({name:l,type:u}=o,typeof u=="function"&&(u=await u(n,{...i},o),o.type=u),!!u){for(let d in o){if(F0.includes(d))continue;let g=o[d];o[d]=typeof g=="function"?await g(n,{...i},p):g}if(p=o,typeof o.message!="string")throw new Error("prompt message is required");if({name:l,type:u}=o,ln[u]===void 0)throw new Error(`prompt type (${u}) is not defined`);if(s[o.name]!==void 0&&(n=await f(o,s[o.name]),n!==void 0)){i[l]=n;continue}try{n=Me._injected?B0(Me._injected,o.initial):await ln[u](o),i[l]=n=await f(o,n,!0),a=await e(o,n,i)}catch{a=!await r(o,i)}if(a)return i}return i}function B0(t,e){let r=t.shift();if(r instanceof Error)throw r;return r===void 0?e:r}function N0(t){Me._injected=(Me._injected||[]).concat(t)}function U0(t){Me._override=Object.assign({},t)}qc.exports=Object.assign(Me,{prompt:Me,prompts:ln,inject:N0,override:U0})});var Pc=h((Wv,Ic)=>{function H0(t){t=(Array.isArray(t)?t:t.split(".")).map(Number);let e=0,r=process.versions.node.split(".").map(Number);for(;e<t.length;e++){if(r[e]>t[e])return!1;if(t[e]>r[e])return!0}return!1}Ic.exports=H0("8.6.0")?sh():Mc()});var Y0={};Uc(Y0,{createApp:()=>kt,runCli:()=>W0,runCreateCli:()=>zi,runCreateInteractiveCli:()=>hn});module.exports=Hc(Y0);var $t=A(require("fs"));var Hr,gn,mn,bn,yn=!0;typeof process<"u"&&({FORCE_COLOR:Hr,NODE_DISABLE_COLORS:gn,NO_COLOR:mn,TERM:bn}=process.env||{},yn=process.stdout&&process.stdout.isTTY);var E={enabled:!gn&&mn==null&&bn!=="dumb"&&(Hr!=null&&Hr!=="0"||yn),reset:O(0,0),bold:O(1,22),dim:O(2,22),italic:O(3,23),underline:O(4,24),inverse:O(7,27),hidden:O(8,28),strikethrough:O(9,29),black:O(30,39),red:O(31,39),green:O(32,39),yellow:O(33,39),blue:O(34,39),magenta:O(35,39),cyan:O(36,39),white:O(37,39),gray:O(90,39),grey:O(90,39),bgBlack:O(40,49),bgRed:O(41,49),bgGreen:O(42,49),bgYellow:O(43,49),bgBlue:O(44,49),bgMagenta:O(45,49),bgCyan:O(46,49),bgWhite:O(47,49)};function pn(t,e){let r=0,i,s="",n="";for(;r<t.length;r++)i=t[r],s+=i.open,n+=i.close,~e.indexOf(i.close)&&(e=e.replace(i.rgx,i.close+i.open));return s+e+n}function Wc(t,e){let r={has:t,keys:e};return r.reset=E.reset.bind(r),r.bold=E.bold.bind(r),r.dim=E.dim.bind(r),r.italic=E.italic.bind(r),r.underline=E.underline.bind(r),r.inverse=E.inverse.bind(r),r.hidden=E.hidden.bind(r),r.strikethrough=E.strikethrough.bind(r),r.black=E.black.bind(r),r.red=E.red.bind(r),r.green=E.green.bind(r),r.yellow=E.yellow.bind(r),r.blue=E.blue.bind(r),r.magenta=E.magenta.bind(r),r.cyan=E.cyan.bind(r),r.white=E.white.bind(r),r.gray=E.gray.bind(r),r.grey=E.grey.bind(r),r.bgBlack=E.bgBlack.bind(r),r.bgRed=E.bgRed.bind(r),r.bgGreen=E.bgGreen.bind(r),r.bgYellow=E.bgYellow.bind(r),r.bgBlue=E.bgBlue.bind(r),r.bgMagenta=E.bgMagenta.bind(r),r.bgCyan=E.bgCyan.bind(r),r.bgWhite=E.bgWhite.bind(r),r}function O(t,e){let r={open:`\x1B[${t}m`,close:`\x1B[${e}m`,rgx:new RegExp(`\\x1b\\[${e}m`,"g")};return function(i){return this!==void 0&&this.has!==void 0?(~this.has.indexOf(t)||(this.has.push(t),this.keys.push(r)),i===void 0?this:E.enabled?pn(this.keys,i+""):i+""):i===void 0?Wc([t],[r]):E.enabled?pn([r],i+""):i+""}}var m=E;var Ce=require("path");var Wr=A(require("fs"),1),Gr=require("path");var _n=A(wn(),1);async function xn(t){let e=(0,Gr.join)(t,"package.json");return JSON.parse(await Wr.default.promises.readFile(e,"utf-8"))}async function Sn(t,e){let r=(0,Gr.join)(t,"package.json");await Wr.default.promises.writeFile(r,JSON.stringify(e,null,2)+`
105
105
  `)}function En(t){t={...t};let e={name:t.name,version:t.version,description:t.description,scripts:t.scripts,dependencies:t.dependencies,devDependencies:t.devDependencies,main:t.main,qwik:t.qwik,module:t.module,types:t.types,exports:t.exports,files:t.files,engines:{node:">=15.0.0"}};Object.keys(e).forEach(i=>{delete t[i]}),delete t.__qwik__;let r=Object.keys(t).sort();for(let i of r)e[i]=t[i];return e}function Tn(t){return t.toLocaleLowerCase().split("-").map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(" ")}function Ie(){var t;return((t=(0,_n.default)())==null?void 0:t.name)||"npm"}function Ve(t){console.error(`
106
106
  \u274C ${m.red(t)}
107
- `),process.exit(1)}var Kt=A(require("fs"),1),zt=require("path");var Yr=null;async function Je(){if(!Yr){let t=[],e=["app","feature","adaptor"],r=(0,zt.join)(__dirname,"starters"),i=await Kt.default.promises.readdir(r);await Promise.all(i.map(async s=>{let n=s.slice(0,s.length-1);if(e.includes(n)){let o=(0,zt.join)(r,s),a=await Kt.default.promises.readdir(o);await Promise.all(a.map(async l=>{var f,d,g;let u=(0,zt.join)(o,l);if((await Kt.default.promises.stat(u)).isDirectory()){let v=await xn(u),b={id:l,name:((f=v.__qwik__)==null?void 0:f.displayName)??Tn(l),type:n,dir:u,pkgJson:v,docs:((d=v.__qwik__)==null?void 0:d.docs)??[],priority:((g=v==null?void 0:v.__qwik__)==null?void 0:g.priority)??0};t.push(b)}}))}})),t.sort((s,n)=>s.priority>n.priority?-1:s.priority<n.priority?1:s.id<n.id?-1:1),Yr=t}return Yr}function On(t){t.length>0&&(console.log(`\u{1F4DA} ${m.cyan("Relevant docs:")}`),t.forEach(e=>{console.log(` ${e}`)})),console.log(""),console.log(`\u{1F4AC} ${m.cyan("Questions? Start the conversation at:")}`),console.log(" https://qwik.builder.io/chat"),console.log(" https://twitter.com/QwikDev"),console.log("")}var rl=require("path"),Ji=A(require("fs"),1);var We=A(require("fs"),1);var It=A(require("process"),1);var zr=A(require("process"),1);var jn=A(require("process"),1),Ln=A(An(),1),Fn=A(kn(),1),Vc=(0,Ln.default)(()=>{(0,Fn.default)(()=>{jn.default.stderr.write("\x1B[?25h")},{alwaysLast:!0})}),Bn=Vc;var ir=!1,Xe={};Xe.show=(t=zr.default.stderr)=>{t.isTTY&&(ir=!1,t.write("\x1B[?25h"))};Xe.hide=(t=zr.default.stderr)=>{t.isTTY&&(Bn(),ir=!0,t.write("\x1B[?25l"))};Xe.toggle=(t,e)=>{t!==void 0&&(ir=t),ir?Xe.show(e):Xe.hide(e)};var Zr=Xe;var Pt=A(Wn(),1);var U=A(require("process"),1);function vt(){return U.default.platform!=="win32"?U.default.env.TERM!=="linux":Boolean(U.default.env.CI)||Boolean(U.default.env.WT_SESSION)||Boolean(U.default.env.TERMINUS_SUBLIME)||U.default.env.ConEmuTask==="{cmd::Cmder}"||U.default.env.TERM_PROGRAM==="Terminus-Sublime"||U.default.env.TERM_PROGRAM==="vscode"||U.default.env.TERM==="xterm-256color"||U.default.env.TERM==="alacritty"||U.default.env.TERMINAL_EMULATOR==="JetBrains-JediTerm"}var Kc={info:m.blue("\u2139"),success:m.green("\u2714"),warning:m.yellow("\u26A0"),error:m.red("\u2716")},zc={info:m.blue("i"),success:m.green("\u221A"),warning:m.yellow("\u203C"),error:m.red("\xD7")},Zc=vt()?Kc:zc,wt=Zc;function Xr({onlyFirst:t=!1}={}){let e=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(e,t?void 0:"g")}function Qr(t){if(typeof t!="string")throw new TypeError(`Expected a \`string\`, got \`${typeof t}\``);return t.replace(Xr(),"")}var ha=A(Qn(),1);function ti({stream:t=process.stdout}={}){return Boolean(t&&t.isTTY&&process.env.TERM!=="dumb"&&!("CI"in process.env))}var G=A(require("process"),1),la=A(require("readline"),1),ua=A(aa(),1);var np=3,fe,Mt,it,Oe,xr=class{constructor(){$(this,fe,0);$(this,Mt,new ua.BufferListStream);$(this,it,void 0);$(this,Oe,void 0);c(this,Mt).pipe(G.default.stdout);let e=this;_(this,it,function(r,i,...s){let{stdin:n}=G.default;if(c(e,fe)>0||n.emit===c(e,it)){if(r==="keypress")return;r==="data"&&i.includes(np)&&G.default.emit("SIGINT"),Reflect.apply(c(e,it),this,[r,i,...s])}else Reflect.apply(G.default.stdin.emit,this,[r,i,...s])})}start(){bt(this,fe)._++,c(this,fe)===1&&this._realStart()}stop(){if(c(this,fe)<=0)throw new Error("`stop` called more times than `start`");bt(this,fe)._--,c(this,fe)===0&&this._realStop()}_realStart(){G.default.platform!=="win32"&&(_(this,Oe,la.default.createInterface({input:G.default.stdin,output:c(this,Mt)})),c(this,Oe).on("SIGINT",()=>{G.default.listenerCount("SIGINT")===0?G.default.emit("SIGINT"):(c(this,Oe).close(),G.default.kill(G.default.pid,"SIGINT"))}))}_realStop(){G.default.platform!=="win32"&&(c(this,Oe).close(),_(this,Oe,void 0))}};fe=new WeakMap,Mt=new WeakMap,it=new WeakMap,Oe=new WeakMap;var Sr,Re,st,Ue,de,k,te,L,He,nt,re,ie,se,ot,K,Ii=class{constructor(e){$(this,Re,0);$(this,st,!1);$(this,Ue,0);$(this,de,0);$(this,k,void 0);$(this,te,void 0);$(this,L,void 0);$(this,He,void 0);$(this,nt,void 0);$(this,re,void 0);$(this,ie,void 0);$(this,se,void 0);$(this,ot,void 0);$(this,K,void 0);fn(this,"color");Sr||(Sr=new xr),typeof e=="string"&&(e={text:e}),_(this,k,{color:"cyan",stream:It.default.stderr,discardStdin:!0,hideCursor:!0,...e}),this.color=c(this,k).color,this.spinner=c(this,k).spinner,_(this,nt,c(this,k).interval),_(this,L,c(this,k).stream),_(this,re,typeof c(this,k).isEnabled=="boolean"?c(this,k).isEnabled:ti({stream:c(this,L)})),_(this,ie,typeof c(this,k).isSilent=="boolean"?c(this,k).isSilent:!1),this.text=c(this,k).text,this.prefixText=c(this,k).prefixText,this.indent=c(this,k).indent,It.default.env.NODE_ENV==="test"&&(this._stream=c(this,L),this._isEnabled=c(this,re),Object.defineProperty(this,"_linesToClear",{get(){return c(this,Re)},set(r){_(this,Re,r)}}),Object.defineProperty(this,"_frameIndex",{get(){return c(this,de)}}),Object.defineProperty(this,"_lineCount",{get(){return c(this,Ue)}}))}get indent(){return c(this,se)}set indent(e=0){if(!(e>=0&&Number.isInteger(e)))throw new Error("The `indent` option must be an integer from 0 and up");_(this,se,e),this.updateLineCount()}get interval(){return c(this,nt)||c(this,te).interval||100}get spinner(){return c(this,te)}set spinner(e){if(_(this,de,0),_(this,nt,void 0),typeof e=="object"){if(e.frames===void 0)throw new Error("The given spinner must have a `frames` property");_(this,te,e)}else if(!vt())_(this,te,Pt.default.line);else if(e===void 0)_(this,te,Pt.default.dots);else if(e!=="default"&&Pt.default[e])_(this,te,Pt.default[e]);else throw new Error(`There is no built-in spinner named '${e}'. See https://github.com/sindresorhus/cli-spinners/blob/main/spinners.json for a full list.`)}get text(){return c(this,ot)}set text(e){_(this,ot,e||""),this.updateLineCount()}get prefixText(){return c(this,K)}set prefixText(e){_(this,K,e||""),this.updateLineCount()}get isSpinning(){return c(this,He)!==void 0}getFullPrefixText(e=c(this,K),r=" "){return typeof e=="string"&&e!==""?e+r:typeof e=="function"?e()+r:""}updateLineCount(){let e=c(this,L).columns||80,r=this.getFullPrefixText(c(this,K),"-");_(this,Ue,0);for(let i of Qr(" ".repeat(c(this,se))+r+"--"+c(this,ot)).split(`
107
+ `),process.exit(1)}var Kt=A(require("fs"),1),zt=require("path");var Yr=null;async function Je(){if(!Yr){let t=[],e=["app","feature","adapter"],r=(0,zt.join)(__dirname,"starters"),i=await Kt.default.promises.readdir(r);await Promise.all(i.map(async s=>{let n=s.slice(0,s.length-1);if(e.includes(n)){let o=(0,zt.join)(r,s),a=await Kt.default.promises.readdir(o);await Promise.all(a.map(async l=>{var f,d,g;let u=(0,zt.join)(o,l);if((await Kt.default.promises.stat(u)).isDirectory()){let v=await xn(u),b={id:l,name:((f=v.__qwik__)==null?void 0:f.displayName)??Tn(l),type:n,dir:u,pkgJson:v,docs:((d=v.__qwik__)==null?void 0:d.docs)??[],priority:((g=v==null?void 0:v.__qwik__)==null?void 0:g.priority)??0};t.push(b)}}))}})),t.sort((s,n)=>s.priority>n.priority?-1:s.priority<n.priority?1:s.id<n.id?-1:1),Yr=t}return Yr}function On(t){t.length>0&&(console.log(`\u{1F4DA} ${m.cyan("Relevant docs:")}`),t.forEach(e=>{console.log(` ${e}`)})),console.log(""),console.log(`\u{1F4AC} ${m.cyan("Questions? Start the conversation at:")}`),console.log(" https://qwik.builder.io/chat"),console.log(" https://twitter.com/QwikDev"),console.log("")}var rl=require("path"),Ji=A(require("fs"),1);var We=A(require("fs"),1);var It=A(require("process"),1);var zr=A(require("process"),1);var jn=A(require("process"),1),Ln=A(An(),1),Fn=A(kn(),1),Vc=(0,Ln.default)(()=>{(0,Fn.default)(()=>{jn.default.stderr.write("\x1B[?25h")},{alwaysLast:!0})}),Bn=Vc;var ir=!1,Xe={};Xe.show=(t=zr.default.stderr)=>{t.isTTY&&(ir=!1,t.write("\x1B[?25h"))};Xe.hide=(t=zr.default.stderr)=>{t.isTTY&&(Bn(),ir=!0,t.write("\x1B[?25l"))};Xe.toggle=(t,e)=>{t!==void 0&&(ir=t),ir?Xe.show(e):Xe.hide(e)};var Zr=Xe;var Pt=A(Wn(),1);var U=A(require("process"),1);function vt(){return U.default.platform!=="win32"?U.default.env.TERM!=="linux":Boolean(U.default.env.CI)||Boolean(U.default.env.WT_SESSION)||Boolean(U.default.env.TERMINUS_SUBLIME)||U.default.env.ConEmuTask==="{cmd::Cmder}"||U.default.env.TERM_PROGRAM==="Terminus-Sublime"||U.default.env.TERM_PROGRAM==="vscode"||U.default.env.TERM==="xterm-256color"||U.default.env.TERM==="alacritty"||U.default.env.TERMINAL_EMULATOR==="JetBrains-JediTerm"}var Kc={info:m.blue("\u2139"),success:m.green("\u2714"),warning:m.yellow("\u26A0"),error:m.red("\u2716")},zc={info:m.blue("i"),success:m.green("\u221A"),warning:m.yellow("\u203C"),error:m.red("\xD7")},Zc=vt()?Kc:zc,wt=Zc;function Xr({onlyFirst:t=!1}={}){let e=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(e,t?void 0:"g")}function Qr(t){if(typeof t!="string")throw new TypeError(`Expected a \`string\`, got \`${typeof t}\``);return t.replace(Xr(),"")}var ha=A(Qn(),1);function ti({stream:t=process.stdout}={}){return Boolean(t&&t.isTTY&&process.env.TERM!=="dumb"&&!("CI"in process.env))}var G=A(require("process"),1),la=A(require("readline"),1),ua=A(aa(),1);var np=3,fe,Mt,it,Oe,xr=class{constructor(){$(this,fe,0);$(this,Mt,new ua.BufferListStream);$(this,it,void 0);$(this,Oe,void 0);c(this,Mt).pipe(G.default.stdout);let e=this;_(this,it,function(r,i,...s){let{stdin:n}=G.default;if(c(e,fe)>0||n.emit===c(e,it)){if(r==="keypress")return;r==="data"&&i.includes(np)&&G.default.emit("SIGINT"),Reflect.apply(c(e,it),this,[r,i,...s])}else Reflect.apply(G.default.stdin.emit,this,[r,i,...s])})}start(){bt(this,fe)._++,c(this,fe)===1&&this._realStart()}stop(){if(c(this,fe)<=0)throw new Error("`stop` called more times than `start`");bt(this,fe)._--,c(this,fe)===0&&this._realStop()}_realStart(){G.default.platform!=="win32"&&(_(this,Oe,la.default.createInterface({input:G.default.stdin,output:c(this,Mt)})),c(this,Oe).on("SIGINT",()=>{G.default.listenerCount("SIGINT")===0?G.default.emit("SIGINT"):(c(this,Oe).close(),G.default.kill(G.default.pid,"SIGINT"))}))}_realStop(){G.default.platform!=="win32"&&(c(this,Oe).close(),_(this,Oe,void 0))}};fe=new WeakMap,Mt=new WeakMap,it=new WeakMap,Oe=new WeakMap;var Sr,Re,st,Ue,de,k,te,L,He,nt,re,ie,se,ot,K,Ii=class{constructor(e){$(this,Re,0);$(this,st,!1);$(this,Ue,0);$(this,de,0);$(this,k,void 0);$(this,te,void 0);$(this,L,void 0);$(this,He,void 0);$(this,nt,void 0);$(this,re,void 0);$(this,ie,void 0);$(this,se,void 0);$(this,ot,void 0);$(this,K,void 0);fn(this,"color");Sr||(Sr=new xr),typeof e=="string"&&(e={text:e}),_(this,k,{color:"cyan",stream:It.default.stderr,discardStdin:!0,hideCursor:!0,...e}),this.color=c(this,k).color,this.spinner=c(this,k).spinner,_(this,nt,c(this,k).interval),_(this,L,c(this,k).stream),_(this,re,typeof c(this,k).isEnabled=="boolean"?c(this,k).isEnabled:ti({stream:c(this,L)})),_(this,ie,typeof c(this,k).isSilent=="boolean"?c(this,k).isSilent:!1),this.text=c(this,k).text,this.prefixText=c(this,k).prefixText,this.indent=c(this,k).indent,It.default.env.NODE_ENV==="test"&&(this._stream=c(this,L),this._isEnabled=c(this,re),Object.defineProperty(this,"_linesToClear",{get(){return c(this,Re)},set(r){_(this,Re,r)}}),Object.defineProperty(this,"_frameIndex",{get(){return c(this,de)}}),Object.defineProperty(this,"_lineCount",{get(){return c(this,Ue)}}))}get indent(){return c(this,se)}set indent(e=0){if(!(e>=0&&Number.isInteger(e)))throw new Error("The `indent` option must be an integer from 0 and up");_(this,se,e),this.updateLineCount()}get interval(){return c(this,nt)||c(this,te).interval||100}get spinner(){return c(this,te)}set spinner(e){if(_(this,de,0),_(this,nt,void 0),typeof e=="object"){if(e.frames===void 0)throw new Error("The given spinner must have a `frames` property");_(this,te,e)}else if(!vt())_(this,te,Pt.default.line);else if(e===void 0)_(this,te,Pt.default.dots);else if(e!=="default"&&Pt.default[e])_(this,te,Pt.default[e]);else throw new Error(`There is no built-in spinner named '${e}'. See https://github.com/sindresorhus/cli-spinners/blob/main/spinners.json for a full list.`)}get text(){return c(this,ot)}set text(e){_(this,ot,e||""),this.updateLineCount()}get prefixText(){return c(this,K)}set prefixText(e){_(this,K,e||""),this.updateLineCount()}get isSpinning(){return c(this,He)!==void 0}getFullPrefixText(e=c(this,K),r=" "){return typeof e=="string"&&e!==""?e+r:typeof e=="function"?e()+r:""}updateLineCount(){let e=c(this,L).columns||80,r=this.getFullPrefixText(c(this,K),"-");_(this,Ue,0);for(let i of Qr(" ".repeat(c(this,se))+r+"--"+c(this,ot)).split(`
108
108
  `))_(this,Ue,c(this,Ue)+Math.max(1,Math.ceil((0,ha.default)(i)/e)))}get isEnabled(){return c(this,re)&&!c(this,ie)}set isEnabled(e){if(typeof e!="boolean")throw new TypeError("The `isEnabled` option must be a boolean");_(this,re,e)}get isSilent(){return c(this,ie)}set isSilent(e){if(typeof e!="boolean")throw new TypeError("The `isSilent` option must be a boolean");_(this,ie,e)}frame(){let{frames:e}=c(this,te),r=e[c(this,de)];this.color&&(r=m[this.color](r)),_(this,de,++bt(this,de)._%e.length);let i=typeof c(this,K)=="string"&&c(this,K)!==""?c(this,K)+" ":"",s=typeof this.text=="string"?" "+this.text:"";return i+r+s}clear(){if(!c(this,re)||!c(this,L).isTTY)return this;c(this,L).cursorTo(0);for(let e=0;e<c(this,Re);e++)e>0&&c(this,L).moveCursor(0,-1),c(this,L).clearLine(1);return(c(this,se)||this.lastIndent!==c(this,se))&&c(this,L).cursorTo(c(this,se)),this.lastIndent=c(this,se),_(this,Re,0),this}render(){return c(this,ie)?this:(this.clear(),c(this,L).write(this.frame()),_(this,Re,c(this,Ue)),this)}start(e){return e&&(this.text=e),c(this,ie)?this:c(this,re)?this.isSpinning?this:(c(this,k).hideCursor&&Zr.hide(c(this,L)),c(this,k).discardStdin&&It.default.stdin.isTTY&&(_(this,st,!0),Sr.start()),this.render(),_(this,He,setInterval(this.render.bind(this),this.interval)),this):(this.text&&c(this,L).write(`- ${this.text}
109
109
  `),this)}stop(){return c(this,re)?(clearInterval(c(this,He)),_(this,He,void 0),_(this,de,0),this.clear(),c(this,k).hideCursor&&Zr.show(c(this,L)),c(this,k).discardStdin&&It.default.stdin.isTTY&&c(this,st)&&(Sr.stop(),_(this,st,!1)),this):this}succeed(e){return this.stopAndPersist({symbol:wt.success,text:e})}fail(e){return this.stopAndPersist({symbol:wt.error,text:e})}warn(e){return this.stopAndPersist({symbol:wt.warning,text:e})}info(e){return this.stopAndPersist({symbol:wt.info,text:e})}stopAndPersist(e={}){if(c(this,ie))return this;let r=e.prefixText||c(this,K),i=e.text||this.text,s=typeof i=="string"?" "+i:"";return this.stop(),c(this,L).write(`${this.getFullPrefixText(r," ")}${e.symbol||" "}${s}
110
110
  `),this}};Re=new WeakMap,st=new WeakMap,Ue=new WeakMap,de=new WeakMap,k=new WeakMap,te=new WeakMap,L=new WeakMap,He=new WeakMap,nt=new WeakMap,re=new WeakMap,ie=new WeakMap,se=new WeakMap,ot=new WeakMap,K=new WeakMap;function Pi(t){return new Ii(t)}var Qa=A(require("os"),1),Y=A(require("path"),1),el=A(Xa(),1);function Wi(t,e){return Mp(t,["install"],e)}function Mp(t,e,r){let i,s=new Promise(o=>{try{i=(0,el.default)(t,e,{cwd:r,stdio:"ignore"}),i.on("error",()=>{o(!1)}),i.on("close",a=>{o(a===0)})}catch{o(!1)}});return{abort:async()=>{i&&i.kill("SIGINT")},install:s}}function Gi(t){return Pi(t).start()}function tl(t,e){let{tmpInstallDir:r}=Ip(e),{install:i,abort:s}=Wi(t,r);return{abort:s,complete:async(o,a)=>{let l=!1;if(o){let u=Gi(`Installing ${t} dependencies...`);try{if(await i){let f=Y.default.join(r,"node_modules"),d=Y.default.join(a,"node_modules");await We.default.promises.rename(f,d);try{await We.default.promises.rename(Y.default.join(r,"package-lock.json"),Y.default.join(a,"package-lock.json"))}catch{}try{await We.default.promises.rename(Y.default.join(r,"yarn.lock"),Y.default.join(a,"yarn.lock"))}catch{}try{await We.default.promises.rename(Y.default.join(r,"pnpm-lock.yaml"),Y.default.join(a,"pnpm-lock.yaml"))}catch{}u.succeed(),l=!0}else{let f=`
@@ -125,7 +125,7 @@ ${m.bgRed(` ${t} install failed `)}
125
125
 
126
126
  You might need to run "${m.green(`${t} install`)}" manually inside the root of the project.
127
127
 
128
- `;console.error(g)}}catch(f){u&&u.fail(),Ve(String(f))}};return{rootDir:e.rootDir,integration:i,updates:s,commit:n}}async function zi(t,e){Lp()?e=process.cwd():(e=Xi(e),$t.default.existsSync(e)&&Ve(`Directory "${e}" already exists. Please either remove this directory, or choose another location.`));let r=Ie(),s=await kt({starterId:t,outDir:e});return Zi(r,s,!1),s}function Zi(t,e,r){console.log(""),console.log("");let i=process.cwd()===e.outDir,s=(0,Ce.relative)(process.cwd(),e.outDir);console.log(i?`\u{1F984} ${m.bgMagenta(" Success! ")}`:`\u{1F984} ${m.bgMagenta(" Success! ")} ${m.cyan("Project created in")} ${m.bold(m.magenta(s))} ${m.cyan("directory")}`),console.log(""),console.log(`\u{1F430} ${m.cyan("Next steps:")}`),i||console.log(` cd ${s}`),r||console.log(` ${t} install`),console.log(` ${t} start`),console.log("");let n=t!=="npm"?`${t} qwik add`:"npm run qwik add";console.log(`\u{1F50C} ${m.cyan("Integrations? Add Netlify, Cloudflare, Tailwind...")}`),console.log(` ${n}`),console.log(""),On(e.docs),console.log(`\u{1F4FA} ${m.cyan("Presentations, Podcasts and Videos:")}`),console.log(" https://qwik.builder.io/media/"),console.log("")}async function kt(t){let e=Ie();if(!sl(t.starterId))throw new Error("Missing starter id");if(!sl(t.outDir))throw new Error("Missing outDir");if(!(0,Ce.isAbsolute)(t.outDir))throw new Error("outDir must be an absolute path");$t.default.existsSync(t.outDir)||$t.default.mkdirSync(t.outDir,{recursive:!0});let r={starterId:t.starterId,outDir:t.outDir,docs:[]},i=(await Je()).filter(n=>n.type==="app");if(t.starterId==="library"){let n=i.find(o=>o.id==="library");if(!n)throw new Error("Unable to find base app");await il(e,r,n)}else{let n=i.find(a=>a.id==="base");if(!n)throw new Error("Unable to find base app");let o=i.find(a=>a.id===t.starterId);if(!o)throw new Error(`Invalid starter id "${t.starterId}". It can only be one of${i.map(a=>` "${a.id}"`)}.`);await il(e,r,n,o)}return r}async function il(t,e,r,i){e.docs.push(...r.docs);let s=i??r,n=En({...r.pkgJson,name:`my-${s.pkgJson.name}`,description:s.pkgJson.description,scripts:void 0,dependencies:void 0,devDependencies:void 0});await Sn(e.outDir,n);let o=(0,Ce.join)(e.outDir,"README.md");await $t.default.promises.writeFile(o,""),await(await Ki(t,{rootDir:e.outDir,integration:r.id,installDeps:!1})).commit(!1),i&&(e.docs.push(...i.docs),await(await Ki(t,{rootDir:e.outDir,integration:i.id,installDeps:!1})).commit(!1))}function sl(t){return typeof t=="string"&&t.trim().length>0}function Xi(t){return(0,Ce.resolve)(process.cwd(),t)}function Lp(){return Fp()}function Fp(){try{return process.cwd().startsWith("/home/projects/")}catch{}return!1}var un=A(require("fs")),$c=require("path"),Jt=A(Pc());async function hn(){console.log(""),console.clear(),console.log(""),console.log(`\u{1F430} ${m.cyan("Let's create a")} ${m.bold(m.magenta("Qwik"))} ${m.cyan("app")} \u{1F407} ${m.dim("v0.17.3")}`),console.log("");let t=Ie(),r=(await Je()).filter(S=>S.type==="app"),i=r.find(S=>S.id==="base"),s=r.filter(S=>S.id!==i.id),n=tl(t,i),o=await(0,Jt.default)({type:"text",name:"outDir",message:"Where would you like to create your new project?",initial:"./qwik-app"},{onCancel:()=>{console.log(""),process.exit(1)}});console.log("");let a=Xi(o.outDir.trim()),l=null;if(un.default.existsSync(a)){let S=await(0,Jt.default)({type:"select",name:"outDirChoice",message:`Directory "./${(0,$c.relative)(process.cwd(),a)}" already exists. What would you like to do?`,choices:[{title:"Do not overwrite this directory and exit",value:"exit"},{title:"Overwrite and replace this directory",value:"replace"}],hint:"(use \u2193\u2191 arrows, hit enter)"},{onCancel:async()=>{console.log(m.dim(` - Exited without modifying "${a}"`)+`
128
+ `;console.error(g)}}catch(f){u&&u.fail(),Ve(String(f))}};return{rootDir:e.rootDir,integration:i,updates:s,commit:n}}async function zi(t,e){Lp()?e=process.cwd():(e=Xi(e),$t.default.existsSync(e)&&Ve(`Directory "${e}" already exists. Please either remove this directory, or choose another location.`));let r=Ie(),s=await kt({starterId:t,outDir:e});return Zi(r,s,!1),s}function Zi(t,e,r){console.log(""),console.log("");let i=process.cwd()===e.outDir,s=(0,Ce.relative)(process.cwd(),e.outDir);console.log(i?`\u{1F984} ${m.bgMagenta(" Success! ")}`:`\u{1F984} ${m.bgMagenta(" Success! ")} ${m.cyan("Project created in")} ${m.bold(m.magenta(s))} ${m.cyan("directory")}`),console.log(""),console.log(`\u{1F430} ${m.cyan("Next steps:")}`),i||console.log(` cd ${s}`),r||console.log(` ${t} install`),console.log(` ${t} start`),console.log("");let n=t!=="npm"?`${t} qwik add`:"npm run qwik add";console.log(`\u{1F50C} ${m.cyan("Integrations? Add Netlify, Cloudflare, Tailwind...")}`),console.log(` ${n}`),console.log(""),On(e.docs),console.log(`\u{1F4FA} ${m.cyan("Presentations, Podcasts and Videos:")}`),console.log(" https://qwik.builder.io/media/"),console.log("")}async function kt(t){let e=Ie();if(!sl(t.starterId))throw new Error("Missing starter id");if(!sl(t.outDir))throw new Error("Missing outDir");if(!(0,Ce.isAbsolute)(t.outDir))throw new Error("outDir must be an absolute path");$t.default.existsSync(t.outDir)||$t.default.mkdirSync(t.outDir,{recursive:!0});let r={starterId:t.starterId,outDir:t.outDir,docs:[]},i=(await Je()).filter(n=>n.type==="app");if(t.starterId==="library"){let n=i.find(o=>o.id==="library");if(!n)throw new Error("Unable to find base app");await il(e,r,n)}else{let n=i.find(a=>a.id==="base");if(!n)throw new Error("Unable to find base app");let o=i.find(a=>a.id===t.starterId);if(!o)throw new Error(`Invalid starter id "${t.starterId}". It can only be one of${i.map(a=>` "${a.id}"`)}.`);await il(e,r,n,o)}return r}async function il(t,e,r,i){e.docs.push(...r.docs);let s=i??r,n=En({...r.pkgJson,name:`my-${s.pkgJson.name}`,description:s.pkgJson.description,scripts:void 0,dependencies:void 0,devDependencies:void 0});await Sn(e.outDir,n);let o=(0,Ce.join)(e.outDir,"README.md");await $t.default.promises.writeFile(o,""),await(await Ki(t,{rootDir:e.outDir,integration:r.id,installDeps:!1})).commit(!1),i&&(e.docs.push(...i.docs),await(await Ki(t,{rootDir:e.outDir,integration:i.id,installDeps:!1})).commit(!1))}function sl(t){return typeof t=="string"&&t.trim().length>0}function Xi(t){return(0,Ce.resolve)(process.cwd(),t)}function Lp(){return Fp()}function Fp(){try{return process.cwd().startsWith("/home/projects/")}catch{}return!1}var un=A(require("fs")),$c=require("path"),Jt=A(Pc());async function hn(){console.log(""),console.clear(),console.log(""),console.log(`\u{1F430} ${m.cyan("Let's create a")} ${m.bold(m.magenta("Qwik"))} ${m.cyan("app")} \u{1F407} ${m.dim("v0.17.5-dev20230207203251")}`),console.log("");let t=Ie(),r=(await Je()).filter(S=>S.type==="app"),i=r.find(S=>S.id==="base"),s=r.filter(S=>S.id!==i.id),n=tl(t,i),o=await(0,Jt.default)({type:"text",name:"outDir",message:"Where would you like to create your new project?",initial:"./qwik-app"},{onCancel:()=>{console.log(""),process.exit(1)}});console.log("");let a=Xi(o.outDir.trim()),l=null;if(un.default.existsSync(a)){let S=await(0,Jt.default)({type:"select",name:"outDirChoice",message:`Directory "./${(0,$c.relative)(process.cwd(),a)}" already exists. What would you like to do?`,choices:[{title:"Do not overwrite this directory and exit",value:"exit"},{title:"Overwrite and replace this directory",value:"replace"}],hint:"(use \u2193\u2191 arrows, hit enter)"},{onCancel:async()=>{console.log(m.dim(` - Exited without modifying "${a}"`)+`
129
129
  `),await n.abort(),process.exit(1)}});console.log(""),S.outDirChoice==="replace"?l=un.default.promises.rm(a,{recursive:!0}):(console.log(m.dim(` - Exited without modifying "${a}"`)+`
130
130
  `),await n.abort(),process.exit(1))}let u=await(0,Jt.default)({type:"select",name:"starterId",message:"Select a starter",choices:s.map(S=>{var w;return{title:S.name,value:S.id,description:"\u2514\u2500"+((w=S.pkgJson)==null?void 0:w.description)}}),hint:"(use \u2193\u2191 arrows, hit enter)"},{onCancel:async()=>{console.log(""),await n.abort(),process.exit(1)}});console.log("");let p=u.starterId,f=await(0,Jt.default)({type:"confirm",name:"runInstall",message:`Would you like to install ${t} dependencies?`,initial:!0},{onCancel:async()=>{console.log(""),await n.abort(),process.exit(1)}});console.log(""),l&&await l;let d=f.runInstall,v=await kt({starterId:p,outDir:a}),b=await n.complete(d,v.outDir);return Zi(t,v,b),v}async function W0(){G0();try{let t=process.argv.slice(2);t.length>=2?await zi(t[0],t[1]):await hn()}catch(t){Ve(t.message||t)}}function G0(){let t=process.version,[e,r]=t.replace("v","").split(".");Number(e)<16?(console.error(m.red(`Qwik requires Node.js 16.8 or higher. You are currently running Node.js ${t}.`)),process.exit(1)):Number(e)===16&&Number(r)<8&&console.warn(m.yellow(`Node.js 16.8 or higher is recommended. You are currently running Node.js ${t}.`))}0&&(module.exports={createApp,runCli,runCreateCli,runCreateInteractiveCli});
131
131
  /*! Bundled license information:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-qwik",
3
- "version": "0.17.3",
3
+ "version": "0.17.5-dev20230207203251",
4
4
  "description": "Interactive CLI for create Qwik projects and adding features.",
5
5
  "bin": "./create-qwik.cjs",
6
6
  "main": "./index.cjs",
@@ -32,7 +32,7 @@ Inside your project, you'll see the following directory structure:
32
32
 
33
33
  ## Add Integrations and deployment
34
34
 
35
- Use the `npm run qwik add` command to add additional integrations. Some examples of integrations include: Cloudflare, Netlify or Express server, and the [Static Site Generator (SSG)](https://qwik.builder.io/qwikcity/static-site-generation/static-site-config/).
35
+ Use the `npm run qwik add` command to add additional integrations. Some examples of integrations include: Cloudflare, Netlify or Express server, and the [Static Site Generator (SSG)](https://qwik.builder.io/qwikcity/guides/static-site-generation/).
36
36
 
37
37
  ```shell
38
38
  npm run qwik add # or `yarn qwik add`
@@ -12,24 +12,24 @@
12
12
  "lint": "eslint \"src/**/*.ts*\"",
13
13
  "preview": "qwik build preview && vite preview --open",
14
14
  "start": "vite --open --mode ssr",
15
- "deploy": "echo 'Run \"npm run qwik add\" to install a server adaptor'",
15
+ "deploy": "echo 'Run \"npm run qwik add\" to install a server adapter'",
16
16
  "qwik": "qwik"
17
17
  },
18
18
  "devDependencies": {
19
- "@builder.io/qwik": "0.17.3",
20
- "@builder.io/qwik-city": "0.0.128",
19
+ "@builder.io/qwik": "0.17.5-dev20230207203251",
20
+ "@builder.io/qwik-city": "0.1.0-beta13",
21
21
  "@types/eslint": "8.21.0",
22
- "@types/node": "^18.11.18",
22
+ "@types/node": "^18.11.19",
23
23
  "@types/node-fetch": "latest",
24
- "@typescript-eslint/eslint-plugin": "5.50.0",
25
- "@typescript-eslint/parser": "5.50.0",
26
- "eslint-plugin-qwik": "0.17.3",
24
+ "@typescript-eslint/eslint-plugin": "5.51.0",
25
+ "@typescript-eslint/parser": "5.51.0",
26
+ "eslint-plugin-qwik": "0.17.5-dev20230207203251",
27
27
  "eslint": "8.33.0",
28
28
  "node-fetch": "3.3.0",
29
- "undici": "5.16.0",
29
+ "undici": "5.18.0",
30
30
  "prettier": "2.8.3",
31
31
  "typescript": "4.9.5",
32
- "vite": "4.0.4",
32
+ "vite": "4.1.1",
33
33
  "vite-tsconfig-paths": "3.5.0"
34
34
  },
35
35
  "private": true
@@ -15,6 +15,6 @@ import render from './entry.ssr';
15
15
  import qwikCityPlan from '@qwik-city-plan';
16
16
 
17
17
  /**
18
- * The default export is the QwikCity adaptor used by Vite preview.
18
+ * The default export is the QwikCity adapter used by Vite preview.
19
19
  */
20
20
  export default createQwikCity({ render, qwikCityPlan });
@@ -101,8 +101,9 @@ footer a:hover {
101
101
  text-decoration: underline;
102
102
  }
103
103
 
104
- a.mindblow {
105
- margin: 0 auto;
104
+ a.mindblow,
105
+ a.todolist {
106
+ margin: 10px auto;
106
107
  display: block;
107
108
  background: var(--qwik-dark-purple);
108
109
  padding: 10px 20px;
@@ -118,7 +119,8 @@ a.mindblow {
118
119
  auto; /*!emojicursor.app*/
119
120
  }
120
121
 
121
- a.mindblow:hover {
122
+ a.mindblow:hover,
123
+ a.todolist:hover {
122
124
  border-bottom-width: 0px;
123
125
  margin-bottom: 4px;
124
126
  transform: translateY(4px);
@@ -24,88 +24,79 @@ export default component$(() => {
24
24
  <h2>Commands</h2>
25
25
 
26
26
  <table class="commands">
27
- <tr>
28
- <td>
29
- <code>npm run dev</code>
30
- </td>
31
- <td>Start the dev server and watch for changes.</td>
32
- </tr>
33
- <tr>
34
- <td>
35
- <code>npm run preview</code>
36
- </td>
37
- <td>Production build and start preview server.</td>
38
- </tr>
39
- <tr>
40
- <td>
41
- <code>npm run build</code>
42
- </td>
43
- <td>Production build.</td>
44
- </tr>
45
- <tr>
46
- <td>
47
- <code>npm run qwik add</code>
48
- </td>
49
- <td>Select an integration to add.</td>
50
- </tr>
27
+ <tbody>
28
+ <tr>
29
+ <td>
30
+ <code>npm run dev</code>
31
+ </td>
32
+ <td>Start the dev server and watch for changes.</td>
33
+ </tr>
34
+ <tr>
35
+ <td>
36
+ <code>npm run preview</code>
37
+ </td>
38
+ <td>Production build and start preview server.</td>
39
+ </tr>
40
+ <tr>
41
+ <td>
42
+ <code>npm run build</code>
43
+ </td>
44
+ <td>Production build.</td>
45
+ </tr>
46
+ <tr>
47
+ <td>
48
+ <code>npm run qwik add</code>
49
+ </td>
50
+ <td>Select an integration to add.</td>
51
+ </tr>
52
+ </tbody>
51
53
  </table>
52
54
 
53
55
  <h2>Add Integrations</h2>
54
56
 
55
57
  <table class="commands">
56
- <tr>
57
- <td>
58
- <code>npm run qwik add azure-swa</code>
59
- </td>
60
- <td>
61
- <a href="https://learn.microsoft.com/azure/static-web-apps/overview" target="_blank">
62
- Azure Static Web Apps
63
- </a>
64
- </td>
65
- </tr>
66
- <tr>
67
- <td>
68
- <code>npm run qwik add cloudflare-pages</code>
69
- </td>
70
- <td>
71
- <a href="https://developers.cloudflare.com/pages" target="_blank">
72
- Cloudflare Pages Server
73
- </a>
74
- </td>
75
- </tr>
76
- <tr>
77
- <td>
78
- <code>npm run qwik add express</code>
79
- </td>
80
- <td>
81
- <a href="https://expressjs.com/" target="_blank">
82
- Nodejs Express Server
83
- </a>
84
- </td>
85
- </tr>
86
- <tr>
87
- <td>
88
- <code>npm run qwik add netlify-edge</code>
89
- </td>
90
- <td>
91
- <a href="https://docs.netlify.com/" target="_blank">
92
- Netlify Edge Functions
93
- </a>
94
- </td>
95
- </tr>
96
- <tr>
97
- <td>
98
- <code>npm run qwik add static</code>
99
- </td>
100
- <td>
101
- <a
102
- href="https://qwik.builder.io/qwikcity/static-site-generation/overview/"
103
- target="_blank"
104
- >
105
- Static Site Generation (SSG)
106
- </a>
107
- </td>
108
- </tr>
58
+ <tbody>
59
+ <tr>
60
+ <td>
61
+ <code>npm run qwik add azure-swa</code>
62
+ </td>
63
+ <td>
64
+ <a href="https://learn.microsoft.com/azure/static-web-apps/overview" target="_blank">
65
+ Azure Static Web Apps
66
+ </a>
67
+ </td>
68
+ </tr>
69
+ <tr>
70
+ <td>
71
+ <code>npm run qwik add cloudflare-pages</code>
72
+ </td>
73
+ <td>
74
+ <a href="https://developers.cloudflare.com/pages" target="_blank">
75
+ Cloudflare Pages Server
76
+ </a>
77
+ </td>
78
+ </tr>
79
+ <tr>
80
+ <td>
81
+ <code>npm run qwik add express</code>
82
+ </td>
83
+ <td>
84
+ <a href="https://expressjs.com/" target="_blank">
85
+ Nodejs Express Server
86
+ </a>
87
+ </td>
88
+ </tr>
89
+ <tr>
90
+ <td>
91
+ <code>npm run qwik add netlify-edge</code>
92
+ </td>
93
+ <td>
94
+ <a href="https://docs.netlify.com/" target="_blank">
95
+ Netlify Edge Functions
96
+ </a>
97
+ </td>
98
+ </tr>
99
+ </tbody>
109
100
  </table>
110
101
 
111
102
  <h2>Community</h2>
@@ -140,6 +131,9 @@ export default component$(() => {
140
131
  <Link class="mindblow" href="/flower/">
141
132
  Blow my mind 🤯
142
133
  </Link>
134
+ <Link class="todolist" href="/todolist/">
135
+ TODO demo 📝
136
+ </Link>
143
137
  </div>
144
138
  );
145
139
  });
@@ -1,7 +1,16 @@
1
1
  import { component$, Slot } from '@builder.io/qwik';
2
+ import { loader$ } from '@builder.io/qwik-city';
3
+
2
4
  import Header from '../components/header/header';
3
5
 
6
+ export const serverTimeLoader = loader$(() => {
7
+ return {
8
+ date: new Date().toISOString(),
9
+ };
10
+ });
11
+
4
12
  export default component$(() => {
13
+ const serverTime = serverTimeLoader.use();
5
14
  return (
6
15
  <>
7
16
  <main>
@@ -13,6 +22,7 @@ export default component$(() => {
13
22
  <footer>
14
23
  <a href="https://www.builder.io/" target="_blank">
15
24
  Made with ♡ by Builder.io
25
+ <div>{serverTime.value.date}</div>
16
26
  </a>
17
27
  </footer>
18
28
  </>
@@ -0,0 +1,49 @@
1
+ import { component$ } from '@builder.io/qwik';
2
+ import { DocumentHead, loader$, action$, zod$, z, Form } from '@builder.io/qwik-city';
3
+
4
+ interface ListItem {
5
+ text: string;
6
+ }
7
+
8
+ export const list: ListItem[] = [];
9
+
10
+ export const listLoader = loader$(() => {
11
+ return list;
12
+ });
13
+
14
+ export const addToListAction = action$(
15
+ (item) => {
16
+ list.push(item);
17
+ return {
18
+ success: true,
19
+ };
20
+ },
21
+ zod$({
22
+ text: z.string(),
23
+ })
24
+ );
25
+
26
+ export default component$(() => {
27
+ const list = listLoader.use();
28
+ const action = addToListAction.use();
29
+
30
+ return (
31
+ <>
32
+ <h1>Form Action TODO list</h1>
33
+ <ul>
34
+ {list.value.map((item) => (
35
+ <li>{item.text}</li>
36
+ ))}
37
+ </ul>
38
+ <Form action={action} spaReset>
39
+ <input type="text" name="text" required />
40
+ <button type="submit">Add item</button>
41
+ </Form>
42
+ <p>This little app works even when JavaScript is disabled.</p>
43
+ </>
44
+ );
45
+ });
46
+
47
+ export const head: DocumentHead = {
48
+ title: 'Qwik Flower',
49
+ };
@@ -2,7 +2,7 @@ import { component$, Slot, useStyles$ } from '@builder.io/qwik';
2
2
  import type { DocumentHead } from '@builder.io/qwik-city';
3
3
  import Menu from '~/components/menu/menu';
4
4
  import OnThisPage from '~/components/on-this-page/on-this-page';
5
- import styles from './docs.css?inline';
5
+ import styles from '../docs.css?inline';
6
6
 
7
7
  export default component$(() => {
8
8
  useStyles$(styles);
@@ -32,20 +32,20 @@
32
32
  "release": "np"
33
33
  },
34
34
  "devDependencies": {
35
- "@builder.io/qwik": "0.17.3",
35
+ "@builder.io/qwik": "0.17.5",
36
36
  "@types/eslint": "8.21.0",
37
- "@types/node": "^18.11.18",
37
+ "@types/node": "^18.11.19",
38
38
  "@types/node-fetch": "latest",
39
- "@typescript-eslint/eslint-plugin": "5.50.0",
40
- "@typescript-eslint/parser": "5.50.0",
39
+ "@typescript-eslint/eslint-plugin": "5.51.0",
40
+ "@typescript-eslint/parser": "5.51.0",
41
41
  "eslint-plugin-qwik": "latest",
42
42
  "eslint": "8.33.0",
43
43
  "node-fetch": "3.3.0",
44
- "undici": "5.16.0",
44
+ "undici": "5.18.0",
45
45
  "np": "7.6.1",
46
46
  "prettier": "2.8.3",
47
47
  "typescript": "4.9.5",
48
- "vite": "4.0.4"
48
+ "vite": "4.1.1"
49
49
  },
50
50
  "__qwik__": {
51
51
  "displayName": "Component library",