create-qwik 0.0.24 → 0.0.27

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.
Files changed (33) hide show
  1. package/create-qwik +1 -1
  2. package/index.js +8 -8
  3. package/package.json +1 -1
  4. package/starters/apps/base/gitignore +1 -0
  5. package/starters/apps/base/package.json +3 -3
  6. package/starters/apps/base/src/global.css +15 -0
  7. package/starters/apps/base/src/root.tsx +13 -0
  8. package/starters/apps/base/tsconfig.json +3 -0
  9. package/starters/apps/library/package.json +35 -0
  10. package/starters/apps/library/src/components/counter/counter.tsx +14 -0
  11. package/starters/apps/library/src/components/logo/logo.tsx +16 -0
  12. package/starters/apps/library/src/entry.ssr.tsx +15 -0
  13. package/starters/apps/library/src/index.ts +2 -0
  14. package/starters/apps/library/src/root.tsx +17 -0
  15. package/starters/apps/library/vite.config.ts +20 -0
  16. package/starters/apps/qwik-city/package.json +2 -2
  17. package/starters/apps/starter/package.json +1 -1
  18. package/starters/apps/starter/src/components/app/app.tsx +0 -2
  19. package/starters/apps/starter/src/{components/app/global.css → global.css} +0 -0
  20. package/starters/apps/starter/src/root.tsx +2 -0
  21. package/starters/apps/starter-builder/package.json +1 -1
  22. package/starters/apps/starter-builder/src/components/app/app.tsx +0 -2
  23. package/starters/apps/starter-builder/src/{components/app/global.css → global.css} +0 -0
  24. package/starters/apps/starter-builder/src/root.tsx +2 -0
  25. package/starters/apps/starter-partytown/package.json +1 -1
  26. package/starters/apps/starter-partytown/src/components/app/app.tsx +0 -1
  27. package/starters/apps/starter-partytown/src/{components/app/global.css → global.css} +0 -0
  28. package/starters/apps/starter-partytown/src/root.tsx +2 -0
  29. package/starters/apps/todo/package.json +2 -2
  30. package/starters/apps/todo/src/components/app/app.tsx +12 -9
  31. package/starters/features/eslint/.eslintrc.js +6 -1
  32. package/starters/servers/cloudflare-pages/package.json +1 -1
  33. package/starters/servers/netlify/package.json +1 -1
package/create-qwik CHANGED
@@ -104,4 +104,4 @@ Filtered results for: ${this.inputValue?this.inputValue:F.gray("Enter something
104
104
  `),this.close()}submit(){this.value=this.value||!1,this.done=!0,this.aborted=!1,this.fire(),this.render(),this.out.write(`
105
105
  `),this.close()}_(e,t){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(In.hide):this.out.write(zl(this.outputText,this.out.columns)),super.render(),this.outputText=[$n.symbol(this.done,this.aborted),Tn.bold(this.msg),$n.delimiter(this.done),this.done?this.value?this.yesMsg:this.noMsg:Tn.gray(this.initialValue?this.yesOption:this.noOption)].join(" "),this.out.write(Wl.line+In.to(0)+this.outputText))}};_n.exports=Bt});var Cn=u((Sa,Dn)=>{"use strict";Dn.exports={TextPrompt:Ir(),SelectPrompt:Cr(),TogglePrompt:Rr(),DatePrompt:un(),NumberPrompt:fn(),MultiselectPrompt:Ht(),AutocompletePrompt:xn(),AutocompleteMultiselectPrompt:Mn(),ConfirmPrompt:Pn()}});var jn=u(En=>{"use strict";var y=En,Zl=Cn(),Ee=i=>i;function P(i,e,t={}){return new Promise((s,r)=>{let n=new Zl[i](e),o=t.onAbort||Ee,h=t.onSubmit||Ee,l=t.onExit||Ee;n.on("state",e.onState||Ee),n.on("submit",a=>s(h(a))),n.on("exit",a=>s(l(a))),n.on("abort",a=>r(o(a)))})}y.text=i=>P("TextPrompt",i);y.password=i=>(i.style="password",y.text(i));y.invisible=i=>(i.style="invisible",y.text(i));y.number=i=>P("NumberPrompt",i);y.date=i=>P("DatePrompt",i);y.confirm=i=>P("ConfirmPrompt",i);y.list=i=>{let e=i.separator||",";return P("TextPrompt",i,{onSubmit:t=>t.split(e).map(s=>s.trim())})};y.toggle=i=>P("TogglePrompt",i);y.select=i=>P("SelectPrompt",i);y.multiselect=i=>{i.choices=[].concat(i.choices||[]);let e=t=>t.filter(s=>s.selected).map(s=>s.value);return P("MultiselectPrompt",i,{onAbort:e,onSubmit:e})};y.autocompleteMultiselect=i=>{i.choices=[].concat(i.choices||[]);let e=t=>t.filter(s=>s.selected).map(s=>s.value);return P("AutocompleteMultiselectPrompt",i,{onAbort:e,onSubmit:e})};var Kl=(i,e)=>Promise.resolve(e.filter(t=>t.title.slice(0,i.length).toLowerCase()===i.toLowerCase()));y.autocomplete=i=>(i.suggest=i.suggest||Kl,i.choices=[].concat(i.choices||[]),P("AutocompletePrompt",i))});var kn=u((qa,Rn)=>{"use strict";var Ut=jn(),Ql=["suggest","format","onState","validate","onRender","type"],An=()=>{};async function N(i=[],{onSubmit:e=An,onCancel:t=An}={}){let s={},r=N._override||{};i=[].concat(i);let n,o,h,l,a,Q,X=async(v,O,ce=!1)=>{if(!(!ce&&v.validate&&v.validate(O)!==!0))return v.format?await v.format(O,s):O};for(o of i)if({name:l,type:a}=o,typeof a=="function"&&(a=await a(n,Re({},s),o),o.type=a),!!a){for(let v in o){if(Ql.includes(v))continue;let O=o[v];o[v]=typeof O=="function"?await O(n,Re({},s),Q):O}if(Q=o,typeof o.message!="string")throw new Error("prompt message is required");if({name:l,type:a}=o,Ut[a]===void 0)throw new Error(`prompt type (${a}) is not defined`);if(r[o.name]!==void 0&&(n=await X(o,r[o.name]),n!==void 0)){s[l]=n;continue}try{n=N._injected?Xl(N._injected,o.initial):await Ut[a](o),s[l]=n=await X(o,n,!0),h=await e(o,n,s)}catch{h=!await t(o,s)}if(h)return s}return s}function Xl(i,e){let t=i.shift();if(t instanceof Error)throw t;return t===void 0?e:t}function eu(i){N._injected=(N._injected||[]).concat(i)}function tu(i){N._override=Object.assign({},i)}Rn.exports=Object.assign(N,{prompt:N,prompts:Ut,inject:eu,override:tu})});var Yn=u((Ma,Fn)=>{function iu(i){i=(Array.isArray(i)?i:i.split(".")).map(Number);let e=0,t=process.versions.node.split(".").map(Number);for(;e<i.length;e++){if(t[e]>i[e])return!1;if(i[e]>t[e])return!0}return!1}Fn.exports=iu("8.6.0")?lr():kn()});var oi=require("fs"),hi=require("./index.js");var ke,Xt,ei,ti,ii=!0;typeof process<"u"&&({FORCE_COLOR:ke,NODE_DISABLE_COLORS:Xt,NO_COLOR:ei,TERM:ti}=process.env,ii=process.stdout&&process.stdout.isTTY);var c={enabled:!Xt&&ei==null&&ti!=="dumb"&&(ke!=null&&ke!=="0"||ii),reset:f(0,0),bold:f(1,22),dim:f(2,22),italic:f(3,23),underline:f(4,24),inverse:f(7,27),hidden:f(8,28),strikethrough:f(9,29),black:f(30,39),red:f(31,39),green:f(32,39),yellow:f(33,39),blue:f(34,39),magenta:f(35,39),cyan:f(36,39),white:f(37,39),gray:f(90,39),grey:f(90,39),bgBlack:f(40,49),bgRed:f(41,49),bgGreen:f(42,49),bgYellow:f(43,49),bgBlue:f(44,49),bgMagenta:f(45,49),bgCyan:f(46,49),bgWhite:f(47,49)};function Qt(i,e){let t=0,s,r="",n="";for(;t<i.length;t++)s=i[t],r+=s.open,n+=s.close,~e.indexOf(s.close)&&(e=e.replace(s.rgx,s.close+s.open));return r+e+n}function Wn(i,e){let t={has:i,keys:e};return t.reset=c.reset.bind(t),t.bold=c.bold.bind(t),t.dim=c.dim.bind(t),t.italic=c.italic.bind(t),t.underline=c.underline.bind(t),t.inverse=c.inverse.bind(t),t.hidden=c.hidden.bind(t),t.strikethrough=c.strikethrough.bind(t),t.black=c.black.bind(t),t.red=c.red.bind(t),t.green=c.green.bind(t),t.yellow=c.yellow.bind(t),t.blue=c.blue.bind(t),t.magenta=c.magenta.bind(t),t.cyan=c.cyan.bind(t),t.white=c.white.bind(t),t.gray=c.gray.bind(t),t.grey=c.grey.bind(t),t.bgBlack=c.bgBlack.bind(t),t.bgRed=c.bgRed.bind(t),t.bgGreen=c.bgGreen.bind(t),t.bgYellow=c.bgYellow.bind(t),t.bgBlue=c.bgBlue.bind(t),t.bgMagenta=c.bgMagenta.bind(t),t.bgCyan=c.bgCyan.bind(t),t.bgWhite=c.bgWhite.bind(t),t}function f(i,e){let t={open:`\x1B[${i}m`,close:`\x1B[${e}m`,rgx:new RegExp(`\\x1b\\[${e}m`,"g")};return function(s){return this!==void 0&&this.has!==void 0?(~this.has.indexOf(i)||(this.has.push(i),this.keys.push(t)),s===void 0?this:c.enabled?Qt(this.keys,s+""):s+""):s===void 0?Wn([i],[t]):c.enabled?Qt([t],s+""):s+""}}var q=c;var si=require("path");function fe(i){let e=process.cwd()===i.outDir,t=(0,si.relative)(process.cwd(),i.outDir);console.log(""),console.log(e?`\u2B50\uFE0F ${q.green("Success!")}`:`\u2B50\uFE0F ${q.green("Success! Project saved in")} ${q.yellow(t)} ${q.green("directory")}`),console.log(""),console.log(`\u{1F916} ${q.cyan("Next steps:")}`),e||console.log(` cd ${t}`),console.log(" npm install"),console.log(" npm start"),console.log(""),console.log(`\u{1F4AC} ${q.cyan("Questions? Start the conversation at:")}`),console.log(" https://qwik.builder.io/chat"),console.log(" https://twitter.com/QwikDev"),console.log("")}function pe(i){console.error(`
106
106
  \u274C ${q.red(i)}
107
- `),process.exit(1)}var ri=require("fs"),ni=require("path");function ge(i){return i.toLocaleLowerCase().replace(/ /g,"-")}function me(i){return(0,ni.resolve)(process.cwd(),i)}function be(i){(0,ri.existsSync)(i)&&pe(`Directory "${i}" already exists. Please either remove this directory, or choose another location.`)}async function li(i,e){let t=ge(e),s;Zn()?s=process.cwd():(s=me(t),be(s),(0,oi.mkdirSync)(s,{recursive:!0}));let n=await(0,hi.generateStarter)({appId:i,projectName:e,serverId:"express",outDir:s,featureIds:[]});fe(n)}function Zn(){return Kn()}function Kn(){try{return process.cwd().startsWith("/home/projects/")}catch{}return!1}var Hn=zn(Yn());var je=require("./index.js");async function Vn(){console.clear(),console.log(`\u{1F4AB} ${q.cyan("Let's create a Qwik project")} \u{1F4AB}`),console.log("");let i=await(0,je.getStarters)(),e=i.apps.filter(r=>r.id!=="base"),t={projectName:"",appId:"",serverId:"",featureIds:[],outDir:""};await(0,Hn.default)([{type:"text",name:"projectName",message:"Project name",initial:"qwik-app",validate:r=>{let n=ge(r);return t.outDir=me(n),be(t.outDir),!0},format:r=>t.projectName=r},{type:"select",name:"appId",message:"Select a starter",choices:e.map(r=>({title:r.name,value:r.id,description:r.description})),format:r=>t.appId=r},{type:"select",name:"serverId",message:"Select a server",choices:()=>[...i.servers.map(r=>({title:r.name,value:r.id,description:r.description})),{title:"Setup later",value:"no-hosting",description:"I'll setup my own hosting"}],format:r=>t.serverId=r},{type:()=>{let r=i.apps.find(n=>n.id===t.appId);return r&&r.featureOptions.length>0?"multiselect":null},name:"featureIds",message:"Features",instructions:!1,choices:()=>[...i.apps.find(o=>o.id===t.appId).featureOptions].map(o=>{let h=i.features.find(l=>l.id===o);return{title:h.name,value:h.id,description:h.description,selected:!0}}),format:r=>t.featureIds=r}]);let s=await(0,je.generateStarter)(t);fe(s)}async function su(){try{let i=process.argv.slice(2);if(i.length>=2){let e=i[0],t=i[1];await li(e,t)}else await Vn()}catch(i){pe(i.message||i)}}su();
107
+ `),process.exit(1)}var ri=require("fs"),ni=require("path");function ge(i){return i.toLocaleLowerCase().replace(/ /g,"-")}function me(i){return(0,ni.resolve)(process.cwd(),i)}function be(i){(0,ri.existsSync)(i)&&pe(`Directory "${i}" already exists. Please either remove this directory, or choose another location.`)}async function li(i,e){let t=ge(e),s;Zn()?s=process.cwd():(s=me(t),be(s),(0,oi.mkdirSync)(s,{recursive:!0}));let n=await(0,hi.generateStarter)({appId:i,projectName:e,serverId:"express",outDir:s,featureIds:[]});fe(n)}function Zn(){return Kn()}function Kn(){try{return process.cwd().startsWith("/home/projects/")}catch{}return!1}var Hn=zn(Yn());var je=require("./index.js");async function Vn(){console.clear(),console.log(`\u{1F4AB} ${q.cyan("Let's create a Qwik project")} \u{1F4AB}`),console.log("");let i=await(0,je.getStarters)(),e=i.apps.filter(r=>r.id!=="base"),t={projectName:"",appId:"",serverId:"",featureIds:[],outDir:""};await(0,Hn.default)([{type:"text",name:"projectName",message:"Project name",initial:"qwik-app",validate:r=>{let n=ge(r);return t.outDir=me(n),be(t.outDir),!0},format:r=>t.projectName=r},{type:"select",name:"appId",message:"Select a starter",choices:e.map(r=>({title:r.name,value:r.id,description:r.description})),format:r=>t.appId=r},{type:()=>{let r=i.apps.find(n=>n.id===t.appId);return r!=null&&r.selectServer?"select":null},name:"serverId",message:"Select a server",choices:()=>[...i.servers.map(r=>({title:r.name,value:r.id,description:r.description})),{title:"Setup later",value:"no-hosting",description:"I'll setup my own hosting"}],format:r=>t.serverId=r},{type:()=>{let r=i.apps.find(n=>n.id===t.appId);return r&&r.featureOptions.length>0?"multiselect":null},name:"featureIds",message:"Features",instructions:!1,choices:()=>[...i.apps.find(o=>o.id===t.appId).featureOptions].map(o=>{let h=i.features.find(a=>a.id===o),l=h.id!=="tailwindcss";return{title:h.name,value:h.id,description:h.description,selected:l}}),format:r=>t.featureIds=r}]);let s=await(0,je.generateStarter)(t);fe(s)}async function su(){try{let i=process.argv.slice(2);if(i.length>=2){let e=i[0],t=i[1];await li(e,t)}else await Vn()}catch(i){pe(i.message||i)}}su();
package/index.js CHANGED
@@ -5,14 +5,14 @@
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
7
7
  */
8
- var j=Object.defineProperty;var B=Object.getOwnPropertyDescriptor;var A=Object.getOwnPropertyNames,G=Object.getOwnPropertySymbols;var F=Object.prototype.hasOwnProperty,K=Object.prototype.propertyIsEnumerable;var _=(e,t,r)=>t in e?j(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,k=(e,t)=>{for(var r in t||(t={}))F.call(t,r)&&_(e,r,t[r]);if(G)for(var r of G(t))K.call(t,r)&&_(e,r,t[r]);return e};var W=(e,t)=>{for(var r in t)j(e,r,{get:t[r],enumerable:!0})},$=(e,t,r,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of A(t))!F.call(e,n)&&n!==r&&j(e,n,{get:()=>t[n],enumerable:!(i=B(t,n))||i.enumerable});return e};var z=e=>$(j({},"__esModule",{value:!0}),e);var ee={};W(ee,{generateStarter:()=>U,getStarters:()=>N});module.exports=z(ee);var y=require("fs"),L=require("path");var d=require("fs"),D=require("path");function g(e,t,r){let i=(0,d.readdirSync)(e);for(let n of i){let o=n==="gitignore"?".gitignore":n,s=(0,D.join)(e,n),c=(0,D.join)(t,o),w=(0,d.statSync)(s);if(w.isDirectory())(0,d.mkdirSync)(c,{recursive:!0}),g(s,c,r);else if(w.isFile())if(r.length>0&&[".json",".toml",".md",".html","vite.config.ts"].some(p=>s.endsWith(p))){let p=(0,d.readFileSync)(s,"utf8");for(let l of r)p=p.replace(l[0],l[1]);(0,d.writeFileSync)(c,p)}else(0,d.copyFileSync)(s,c)}}function f(e){let t=(0,D.join)(e,"package.json");return JSON.parse((0,d.readFileSync)(t,"utf-8"))}function q(e,t){let r=(0,D.join)(e,"package.json");(0,d.writeFileSync)(r,JSON.stringify(t,null,2)+`
9
- `)}function M(e){return e.toLocaleLowerCase().split("-").map(t=>t.charAt(0).toUpperCase()+t.slice(1)).join(" ")}function Q(e){return e.toLocaleLowerCase().replace(/ /g,"-")}function J(e,t){["scripts","dependencies","devDependencies"].forEach(i=>{H(e,t,i)})}function H(e,t,r){if(t[r]){e[r]?Object.assign(e[r],k({},t[r])):e[r]=k({},t[r]);let i={},n=Object.keys(e[r]).sort();for(let o of n)i[o]=e[r][o];e[r]=i}}async function U(e){if(!E(e.projectName))throw new Error("Missing project name");if(!E(e.appId))throw new Error("Missing starter id");if(!E(e.outDir))throw new Error("Missing outDir");(0,y.existsSync)(e.outDir)||(0,y.mkdirSync)(e.outDir,{recursive:!0});let t={projectName:e.projectName,appId:e.appId,serverId:e.serverId,outDir:e.outDir},r=await N(),i=r.apps.find(s=>s.id===e.appId),n=r.servers.find(s=>s.id===e.serverId),o=r.features.filter(s=>e.featureIds.includes(s.id));if(i)X(r,t,i,n,o);else throw new Error(`Invalid starter id "${e.appId}".`);return t}function X(e,t,r,i,n){var T,C,b,V,v;let o=[[/\bqwik-project-name\b/g,t.projectName]],s=e.apps.find(m=>m.id==="base");if(!s)throw new Error("Unable to find base app.");if(i){let a=(T=f(i.dir).qwik)==null?void 0:T.vite;o.push([/\/\* VITE_IMPORTS \*\//g,(C=a==null?void 0:a.VITE_IMPORTS)!=null?C:""]),o.push([/\/\* VITE_CONFIG \*\//g,(b=a==null?void 0:a.VITE_CONFIG)!=null?b:""]),o.push([/\/\* VITE_QWIK \*\//g,(V=a==null?void 0:a.VITE_QWIK)!=null?V:""]),o.push([/\/\* VITE_PLUGINS \*\//g,(v=a==null?void 0:a.VITE_PLUGINS)!=null?v:""])}g(s.dir,t.outDir,o),g(r.dir,t.outDir,o);let c=f(s.dir),w=f(r.dir);J(c,w);let u=s.readme.trim()+`
8
+ var N=Object.defineProperty;var A=Object.getOwnPropertyDescriptor;var K=Object.getOwnPropertyNames,q=Object.getOwnPropertySymbols;var F=Object.prototype.hasOwnProperty,W=Object.prototype.propertyIsEnumerable;var G=(e,t,r)=>t in e?N(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,k=(e,t)=>{for(var r in t||(t={}))F.call(t,r)&&G(e,r,t[r]);if(q)for(var r of q(t))W.call(t,r)&&G(e,r,t[r]);return e};var $=(e,t)=>{for(var r in t)N(e,r,{get:t[r],enumerable:!0})},z=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of K(t))!F.call(e,o)&&o!==r&&N(e,o,{get:()=>t[o],enumerable:!(n=A(t,o))||n.enumerable});return e};var H=e=>z(N({},"__esModule",{value:!0}),e);var te={};$(te,{generateStarter:()=>B,getStarters:()=>J});module.exports=H(te);var y=require("fs"),U=require("path");var p=require("fs"),D=require("path");function g(e,t,r){let n=(0,p.readdirSync)(e);for(let o of n){let s=o==="gitignore"?".gitignore":o,i=(0,D.join)(e,o),d=(0,D.join)(t,s),l=(0,p.statSync)(i);if(l.isDirectory())(0,p.mkdirSync)(d,{recursive:!0}),g(i,d,r);else if(l.isFile())if(r.length>0&&[".json",".toml",".md",".html","vite.config.ts"].some(f=>i.endsWith(f))){let f=(0,p.readFileSync)(i,"utf8");for(let m of r)f=f.replace(m[0],m[1]);(0,p.writeFileSync)(d,f)}else(0,p.copyFileSync)(i,d)}}function u(e){let t=(0,D.join)(e,"package.json");return JSON.parse((0,p.readFileSync)(t,"utf-8"))}function M(e,t){let r=(0,D.join)(e,"package.json");(0,p.writeFileSync)(r,JSON.stringify(t,null,2)+`
9
+ `)}function Q(e){return e.toLocaleLowerCase().split("-").map(t=>t.charAt(0).toUpperCase()+t.slice(1)).join(" ")}function L(e){return e.toLocaleLowerCase().replace(/ /g,"-")}function E(e,t){["scripts","dependencies","devDependencies"].forEach(n=>{X(e,t,n)})}function X(e,t,r){if(t[r]){e[r]?Object.assign(e[r],k({},t[r])):e[r]=k({},t[r]);let n={},o=Object.keys(e[r]).sort();for(let s of o)n[s]=e[r][s];e[r]=n}}async function B(e){if(!x(e.projectName))throw new Error("Missing project name");if(!x(e.appId))throw new Error("Missing starter id");if(!x(e.outDir))throw new Error("Missing outDir");(0,y.existsSync)(e.outDir)||(0,y.mkdirSync)(e.outDir,{recursive:!0});let t={projectName:e.projectName,appId:e.appId,serverId:e.serverId,outDir:e.outDir},r=await J(),n=r.apps.find(i=>i.id===e.appId),o=r.servers.find(i=>i.id===e.serverId),s=r.features.filter(i=>e.featureIds.includes(i.id));if(n)Y(r,t,n,o,s);else throw new Error(`Invalid starter id "${e.appId}".`);return t}function Y(e,t,r,n,o){var P,T,C,b,V;let s=[[/\bqwik-project-name\b/g,t.projectName]],i=e.apps.find(a=>a.id==="base");if(!i)throw new Error("Unable to find base app.");if(n){let c=(P=u(n.dir).__qwik__)==null?void 0:P.vite;s.push([/\/\* VITE_IMPORTS \*\//g,(T=c==null?void 0:c.VITE_IMPORTS)!=null?T:""]),s.push([/\/\* VITE_CONFIG \*\//g,(C=c==null?void 0:c.VITE_CONFIG)!=null?C:""]),s.push([/\/\* VITE_QWIK \*\//g,(b=c==null?void 0:c.VITE_QWIK)!=null?b:""]),s.push([/\/\* VITE_PLUGINS \*\//g,(V=c==null?void 0:c.VITE_PLUGINS)!=null?V:""])}g(i.dir,t.outDir,s),g(r.dir,t.outDir,s);let d=u(i.dir),l=u(r.dir);E(d,l);let w=["version","private","main","module","qwik","types","exports","files"];for(let a of w)l[a]!==void 0&&(d[a]=l[a]);let f=i.readme.trim()+`
10
10
 
11
- `,p=[r.description,"Vite.js tooling."];if(i){g(i.dir,t.outDir,o);let m=f(i.dir);J(c,m),m.description&&p.push(m.description),i.readme&&(u+=i.readme.trim()+`
11
+ `,m=[r.description,"Vite.js tooling."];if(n){g(n.dir,t.outDir,s);let a=u(n.dir);E(d,a),a.description&&m.push(a.description),n.readme&&(f+=n.readme.trim()+`
12
12
 
13
- `)}for(let m of n){g(m.dir,t.outDir,o);let a=f(m.dir);J(c,a),a.description&&p.push(a.description),m.readme&&(u+=m.readme.trim()+`
13
+ `)}for(let a of o){g(a.dir,t.outDir,s);let c=u(a.dir);E(d,c),c.description&&m.push(c.description),a.readme&&(f+=a.readme.trim()+`
14
14
 
15
- `)}c.name=Q(t.projectName),c.description=p.join(" ").trim();let l=(0,L.join)(t.outDir,"README.md"),I=p.map(m=>`- ${m}`).join(`
16
- `).trim(),O=[`# Qwik ${t.projectName} \u26A1\uFE0F`,"",I,"",u.trim(),"","--------------------","","## Related","","- [Qwik Docs](https://qwik.builder.io/)","- [Qwik Github](https://github.com/BuilderIO/qwik)","- [@QwikDev](https://twitter.com/QwikDev)","- [Discord](https://qwik.builder.io/chat)","- [Vite](https://vitejs.dev/)","- [Partytown](https://partytown.builder.io/)","- [Mitosis](https://github.com/BuilderIO/mitosis)","- [Builder.io](https://www.builder.io/)"].join(`
17
- `);(0,y.writeFileSync)(l,O.trim()+`
18
- `);let x=Y(c);q(t.outDir,x)}function Y(e){e=k({},e);let t={name:e.name,version:e.version,description:e.description,scripts:e.scripts,dependencies:e.dependencies,devDependencies:e.devDependencies};Object.keys(t).forEach(i=>{delete e[i]}),delete e.qwik;let r=Object.keys(e).sort();for(let i of r)t[i]=e[i];return t}function E(e){return typeof e=="string"&&e.trim().length>0}var S=require("fs"),h=require("path");var P=null;async function N(){return P==null&&(P=Z((0,h.join)(__dirname,"starters"))),P}function Z(e){return{apps:R(e,"apps"),servers:R(e,"servers"),features:R(e,"features")}}function R(e,t){let r=(0,h.join)(e,t);return(0,S.readdirSync)(r).filter(n=>(0,S.statSync)((0,h.join)(r,n)).isDirectory()).map(n=>{var u,p,l,I,O;let o=(0,h.join)(r,n),s=f(o),c=null;try{c=(0,S.readFileSync)((0,h.join)(o,"README.md"),"utf-8")}catch{}return{id:n,name:M(n),description:(u=s.description)!=null?u:"",readme:c,dir:o,priority:(l=(p=s==null?void 0:s.qwik)==null?void 0:p.priority)!=null?l:0,featureOptions:(O=(I=s==null?void 0:s.qwik)==null?void 0:I.featureOptions)!=null?O:[]}}).sort((n,o)=>n.priority>o.priority?-1:n.priority<o.priority?1:n.name<o.name?-1:n.name>o.name?1:0)}0&&(module.exports={generateStarter,getStarters});
15
+ `)}d.name=L(t.projectName),d.description=m.join(" ").trim();let _=(0,U.join)(t.outDir,"README.md"),I=m.map(a=>`- ${a}`).join(`
16
+ `).trim(),O=[`# Qwik ${t.projectName} \u26A1\uFE0F`,"",I,"",f.trim(),"","--------------------","","## Related","","- [Qwik Docs](https://qwik.builder.io/)","- [Qwik Github](https://github.com/BuilderIO/qwik)","- [@QwikDev](https://twitter.com/QwikDev)","- [Discord](https://qwik.builder.io/chat)","- [Vite](https://vitejs.dev/)","- [Partytown](https://partytown.builder.io/)","- [Mitosis](https://github.com/BuilderIO/mitosis)","- [Builder.io](https://www.builder.io/)"].join(`
17
+ `);(0,y.writeFileSync)(_,O.trim()+`
18
+ `);let j=Z(d);M(t.outDir,j)}function Z(e){e=k({},e);let t={name:e.name,version:e.version,description:e.description,scripts:e.scripts,dependencies:e.dependencies,devDependencies:e.devDependencies};Object.keys(t).forEach(n=>{delete e[n]}),delete e.__qwik__;let r=Object.keys(e).sort();for(let n of r)t[n]=e[n];return t}function x(e){return typeof e=="string"&&e.trim().length>0}var S=require("fs"),h=require("path");var R=null;async function J(){return R==null&&(R=ee((0,h.join)(__dirname,"starters"))),R}function ee(e){return{apps:v(e,"apps"),servers:v(e,"servers"),features:v(e,"features")}}function v(e,t){let r=(0,h.join)(e,t);return(0,S.readdirSync)(r).filter(o=>(0,S.statSync)((0,h.join)(r,o)).isDirectory()).map(o=>{var w,f,m,_,I,O,j;let s=(0,h.join)(r,o),i=u(s),d=null;try{d=(0,S.readFileSync)((0,h.join)(s,"README.md"),"utf-8")}catch{}return{id:o,name:Q(o),description:(w=i.description)!=null?w:"",readme:d,dir:s,selectServer:(m=(f=i==null?void 0:i.__qwik__)==null?void 0:f.selectServer)!=null?m:!0,priority:(I=(_=i==null?void 0:i.__qwik__)==null?void 0:_.priority)!=null?I:0,featureOptions:(j=(O=i==null?void 0:i.__qwik__)==null?void 0:O.featureOptions)!=null?j:[]}}).sort((o,s)=>o.priority>s.priority?-1:o.priority<s.priority?1:o.name<s.name?-1:o.name>s.name?1:0)}0&&(module.exports={generateStarter,getStarters});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-qwik",
3
- "version": "0.0.24",
3
+ "version": "0.0.27",
4
4
  "description": "Interactive CLI and API for generating Qwik projects.",
5
5
  "bin": "create-qwik",
6
6
  "main": "index.js",
@@ -1,6 +1,7 @@
1
1
  # Build
2
2
  build
3
3
  dist
4
+ lib
4
5
  server
5
6
  functions/**/*.js
6
7
 
@@ -7,13 +7,13 @@
7
7
  "build.client": "vite build",
8
8
  "build.ssr": "vite build --ssr src/entry.server.tsx",
9
9
  "dev": "vite",
10
- "dev.ssr": "vite --mode ssr",
11
- "dev.debug": "node --inspect-brk node_modules/vite/bin/vite.js",
10
+ "dev.ssr": "node --inspect node_modules/vite/bin/vite.js --mode ssr",
11
+ "dev.debug": "node --inspect-brk node_modules/vite/bin/vite.js --mode ssr",
12
12
  "start": "npm run dev",
13
13
  "typecheck": "tsc --noEmit"
14
14
  },
15
15
  "devDependencies": {
16
- "@builder.io/qwik": "0.0.24",
16
+ "@builder.io/qwik": "0.0.27",
17
17
  "@types/node": "latest",
18
18
  "node-fetch": "2.6.7",
19
19
  "typescript": "4.7.2",
@@ -0,0 +1,15 @@
1
+ html {
2
+ line-height: 1.5;
3
+ -webkit-text-size-adjust: 100%;
4
+ -moz-tab-size: 4;
5
+ -o-tab-size: 4;
6
+ tab-size: 4;
7
+ font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto,
8
+ 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji',
9
+ 'Segoe UI Symbol', 'Noto Color Emoji';
10
+ }
11
+
12
+ body {
13
+ padding: 0;
14
+ line-height: inherit;
15
+ }
@@ -0,0 +1,13 @@
1
+ import './global.css';
2
+
3
+ export const Root = () => {
4
+ return (
5
+ <html>
6
+ <head>
7
+ <meta charSet="utf-8" />
8
+ <title>Qwik Blank App</title>
9
+ </head>
10
+ <body></body>
11
+ </html>
12
+ );
13
+ };
@@ -1,11 +1,14 @@
1
1
  {
2
2
  "compilerOptions": {
3
+ "allowJs": true,
3
4
  "target": "ES2017",
4
5
  "module": "ES2020",
5
6
  "lib": ["es2020", "DOM"],
6
7
  "jsx": "react-jsx",
7
8
  "jsxImportSource": "@builder.io/qwik",
8
9
  "strict": true,
10
+ "declaration": true,
11
+ "declarationDir": "lib/types",
9
12
  "resolveJsonModule": true,
10
13
  "moduleResolution": "node",
11
14
  "esModuleInterop": true,
@@ -0,0 +1,35 @@
1
+ {
2
+ "description": "Create a component library",
3
+ "version": "0.0.1",
4
+ "private": false,
5
+ "main": "./lib/index.cjs.qwik.js",
6
+ "qwik": "./lib/index.es.qwik.js",
7
+ "module": "./lib/index.es.qwik.js",
8
+ "types": "./lib/types/index.d.ts",
9
+ "exports": {
10
+ ".": {
11
+ "import": "./lib/index.es.qwik.js",
12
+ "require": "./lib/index.cjs.qwik.js"
13
+ }
14
+ },
15
+ "files": [
16
+ "lib"
17
+ ],
18
+ "scripts": {
19
+ "build": "npm run build.lib && npm run build.types",
20
+ "build.lib": "vite build --mode lib",
21
+ "build.types": "tsc --emitDeclarationOnly",
22
+ "release": "np"
23
+ },
24
+ "devDependencies": {
25
+ "np": "7.6.1"
26
+ },
27
+ "__qwik__": {
28
+ "priority": -1,
29
+ "selectServer": false,
30
+ "featureOptions": [
31
+ "prettier",
32
+ "eslint"
33
+ ]
34
+ }
35
+ }
@@ -0,0 +1,14 @@
1
+ import { component$, useStore } from '@builder.io/qwik';
2
+
3
+ export const Counter = component$(() => {
4
+ const store = useStore({ count: 0 });
5
+
6
+ return (
7
+ <div>
8
+ <p>Count: {store.count}</p>
9
+ <p>
10
+ <button onClick$={() => store.count++}>Increment</button>
11
+ </p>
12
+ </div>
13
+ );
14
+ });
@@ -0,0 +1,16 @@
1
+ import { component$, Host } from '@builder.io/qwik';
2
+
3
+ export const Logo = component$(() => {
4
+ return (
5
+ <Host style={{ 'text-align': 'center' }}>
6
+ <a href="https://qwik.builder.io/">
7
+ <img
8
+ alt="Qwik Logo"
9
+ width={400}
10
+ height={147}
11
+ src="https://cdn.builder.io/api/v1/image/assets%2FYJIGb4i01jvw0SRdL5Bt%2F667ab6c2283d4c4d878fb9083aacc10f"
12
+ />
13
+ </a>
14
+ </Host>
15
+ );
16
+ });
@@ -0,0 +1,15 @@
1
+ import { renderToString, RenderToStringOptions } from '@builder.io/qwik/server';
2
+ import { manifest } from '@qwik-client-manifest';
3
+ import { Root } from './root';
4
+
5
+ /**
6
+ * Server-Side Render method to be called by a server.
7
+ */
8
+ export function render(opts?: RenderToStringOptions) {
9
+ // Render the Root component to a string
10
+ // Pass in the manifest that was generated from the client build
11
+ return renderToString(<Root />, {
12
+ manifest,
13
+ ...opts,
14
+ });
15
+ }
@@ -0,0 +1,2 @@
1
+ export { Logo } from './components/logo/logo';
2
+ export { Counter } from './components/counter/counter';
@@ -0,0 +1,17 @@
1
+ import { Counter } from './components/counter/counter';
2
+ import { Logo } from './components/logo/logo';
3
+
4
+ export const Root = () => {
5
+ return (
6
+ <html>
7
+ <head>
8
+ <meta charSet="utf-8" />
9
+ <title>Qwik Blank App</title>
10
+ </head>
11
+ <body>
12
+ <Logo />
13
+ <Counter />
14
+ </body>
15
+ </html>
16
+ );
17
+ };
@@ -0,0 +1,20 @@
1
+ import { defineConfig } from 'vite';
2
+ import { qwikVite } from '@builder.io/qwik/optimizer';
3
+ /* VITE_IMPORTS */
4
+
5
+ export default defineConfig(() => {
6
+ return {
7
+ /* VITE_CONFIG */
8
+ build: {
9
+ lib: {
10
+ entry: './src/index.ts',
11
+ formats: ['es', 'cjs'],
12
+ fileName: (format) => `index.${format}.qwik.js`,
13
+ },
14
+ },
15
+ plugins: [
16
+ qwikVite(/* VITE_QWIK */),
17
+ /* VITE_PLUGINS */
18
+ ],
19
+ };
20
+ });
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "description": "Starter with built-in routing, powered by Qwik City",
3
- "qwik": {
4
- "priority": 0,
3
+ "__qwik__": {
4
+ "priority": 1,
5
5
  "featureOptions": [
6
6
  "prettier",
7
7
  "eslint",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "description": "Blank Qwik starter app.",
3
- "qwik": {
3
+ "qwi__qwik__k": {
4
4
  "priority": 0,
5
5
  "featureOptions": [
6
6
  "prettier",
@@ -1,8 +1,6 @@
1
1
  import { useStore, component$, Host } from '@builder.io/qwik';
2
2
  import { Logo } from '../logo/logo';
3
3
 
4
- import './global.css';
5
-
6
4
  export const App = component$(() => {
7
5
  const state = useStore({ name: 'World' });
8
6
  return (
@@ -1,5 +1,7 @@
1
1
  import { App } from './components/app/app';
2
2
 
3
+ import './global.css';
4
+
3
5
  export const Root = () => {
4
6
  return (
5
7
  <html>
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "description": "Blank Qwik starter app with Builder.io.",
3
- "qwik": {
3
+ "__qwik__": {
4
4
  "priority": 0,
5
5
  "featureOptions": [
6
6
  "prettier",
@@ -2,8 +2,6 @@ import { component$ } from '@builder.io/qwik';
2
2
  import { Footer } from '../footer/footer';
3
3
  import { Header } from '../header/header';
4
4
 
5
- import './global.css';
6
-
7
5
  export const App = component$(() => {
8
6
  return (
9
7
  <>
@@ -1,5 +1,7 @@
1
1
  import { App } from './components/app/app';
2
2
 
3
+ import './global.css';
4
+
3
5
  export const Root = () => {
4
6
  return (
5
7
  <html>
@@ -3,7 +3,7 @@
3
3
  "dependencies": {
4
4
  "@builder.io/partytown": "latest"
5
5
  },
6
- "qwik": {
6
+ "__qwik__": {
7
7
  "priority": 0,
8
8
  "featureOptions": [
9
9
  "prettier",
@@ -1,5 +1,4 @@
1
1
  import { component$, useStore } from '@builder.io/qwik';
2
- import './global.css';
3
2
 
4
3
  export const App = component$(() => {
5
4
  const state = useStore({ name: 'World', running: true });
@@ -1,6 +1,8 @@
1
1
  import { App } from './components/app/app';
2
2
  import { partytownSnippet } from '@builder.io/partytown/integration';
3
3
 
4
+ import './global.css';
5
+
4
6
  export const Root = () => {
5
7
  return (
6
8
  <html>
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "description": "Qwik implementation of TodoMVC: https://todomvc.com/.",
3
- "qwik": {
4
- "priority": 0,
3
+ "__qwik__": {
4
+ "priority": -2,
5
5
  "featureOptions": []
6
6
  }
7
7
  }
@@ -15,15 +15,18 @@ import styles from './index.css?inline';
15
15
  export const App = component$(() => {
16
16
  useStyles$(styles);
17
17
 
18
- const todos = useStore<Todos>({
19
- filter: 'all',
20
- items: [
21
- { completed: false, title: 'Read Qwik docs', id: '0' },
22
- { completed: false, title: 'Build HelloWorld', id: '1' },
23
- { completed: false, title: 'Profit', id: '2' },
24
- ],
25
- nextItemId: 3,
26
- });
18
+ const todos = useStore<Todos>(
19
+ {
20
+ filter: 'all',
21
+ items: [
22
+ { completed: false, title: 'Read Qwik docs', id: '0' },
23
+ { completed: false, title: 'Build HelloWorld', id: '1' },
24
+ { completed: false, title: 'Profit', id: '2' },
25
+ ],
26
+ nextItemId: 3,
27
+ },
28
+ { recursive: true }
29
+ );
27
30
  useContextProvider(TODOS, todos);
28
31
 
29
32
  return (
@@ -11,8 +11,13 @@ module.exports = {
11
11
  ],
12
12
  parser: '@typescript-eslint/parser',
13
13
  parserOptions: {
14
- ecmaVersion: 12,
14
+ tsconfigRootDir: __dirname,
15
+ project: ['./tsconfig.json'],
16
+ ecmaVersion: 2021,
15
17
  sourceType: 'module',
18
+ ecmaFeatures: {
19
+ jsx: true,
20
+ },
16
21
  },
17
22
  plugins: ['@typescript-eslint'],
18
23
  rules: {
@@ -7,7 +7,7 @@
7
7
  "devDependencies": {
8
8
  "wrangler": "beta"
9
9
  },
10
- "qwik": {
10
+ "__qwik__": {
11
11
  "priority": -1,
12
12
  "vite": {
13
13
  "VITE_IMPORTS": "",
@@ -7,7 +7,7 @@
7
7
  "devDependencies": {
8
8
  "@netlify/vite-plugin-netlify-edge": "^1.1.0"
9
9
  },
10
- "qwik": {
10
+ "__qwik__": {
11
11
  "priority": -1,
12
12
  "vite": {
13
13
  "VITE_IMPORTS": "import netlifyEdge from '@netlify/vite-plugin-netlify-edge';",