create-twenty-app 0.5.1 → 0.5.2
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/cli.cjs +2 -2
- package/dist/cli.mjs +2 -2
- package/package.json +1 -1
package/dist/cli.cjs
CHANGED
|
@@ -98,7 +98,7 @@ export default defineApplication({
|
|
|
98
98
|
description: '${R??""}',
|
|
99
99
|
defaultRoleUniversalIdentifier: DEFAULT_ROLE_UNIVERSAL_IDENTIFIER,
|
|
100
100
|
});
|
|
101
|
-
`;await J.ensureDir(nn.join(o,q??"")),await J.writeFile(nn.join(o,q??"",B),Jn)},W_=async({appName:w,appDirectory:R})=>{const o={name:w,version:"0.1.0",license:"MIT",engines:{node:"^24.5.0",npm:"please-use-yarn",yarn:">=4.0.2"},packageManager:"yarn@4.9.2",scripts:{"auth:login":"twenty auth:login","auth:logout":"twenty auth:logout","auth:status":"twenty auth:status","auth:switch":"twenty auth:switch","auth:list":"twenty auth:list","app:dev":"twenty app:dev","entity:add":"twenty entity:add","app:generate":"twenty app:generate","function:logs":"twenty function:logs","function:execute":"twenty function:execute","app:uninstall":"twenty app:uninstall",help:"twenty help",lint:"eslint","lint:fix":"eslint --fix"},dependencies:{"twenty-sdk":"0.5.
|
|
101
|
+
`;await J.ensureDir(nn.join(o,q??"")),await J.writeFile(nn.join(o,q??"",B),Jn)},W_=async({appName:w,appDirectory:R})=>{const o={name:w,version:"0.1.0",license:"MIT",engines:{node:"^24.5.0",npm:"please-use-yarn",yarn:">=4.0.2"},packageManager:"yarn@4.9.2",scripts:{"auth:login":"twenty auth:login","auth:logout":"twenty auth:logout","auth:status":"twenty auth:status","auth:switch":"twenty auth:switch","auth:list":"twenty auth:list","app:dev":"twenty app:dev","entity:add":"twenty entity:add","app:generate":"twenty app:generate","function:logs":"twenty function:logs","function:execute":"twenty function:execute","app:uninstall":"twenty app:uninstall",help:"twenty help",lint:"eslint","lint:fix":"eslint --fix"},dependencies:{"twenty-sdk":"0.5.2"},devDependencies:{typescript:"^5.9.3","@types/node":"^24.7.2","@types/react":"^18.2.0",react:"^18.2.0",eslint:"^9.32.0","typescript-eslint":"^8.50.0"}};await J.writeFile(nn.join(R,"package.json"),JSON.stringify(o,null,2),"utf8")};var ur=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},se={exports:{}};/**
|
|
102
102
|
* @license
|
|
103
103
|
* Lodash <https://lodash.com/>
|
|
104
104
|
* Copyright OpenJS Foundation and other contributors <https://openjsf.org/>
|
|
@@ -124,4 +124,4 @@ __p += '`),D&&(d+=`' +
|
|
|
124
124
|
function print() { __p += __j.call(arguments, '') }
|
|
125
125
|
`:`;
|
|
126
126
|
`)+d+`return __p
|
|
127
|
-
}`;var L=so(function(){return F(f,y+"return "+d).apply(o,a)});if(L.source=d,yi(L))throw L;return L}function Ep(n){return W(n).toLowerCase()}function Tp(n){return W(n).toUpperCase()}function Sp(n,t,e){if(n=W(n),n&&(e||t===o))return wu(n);if(!n||!(t=gn(t)))return n;var r=Ln(n),i=Ln(t),f=xu(r,i),a=yu(r,i)+1;return ft(r,f,a).join("")}function Lp(n,t,e){if(n=W(n),n&&(e||t===o))return n.slice(0,Au(n)+1);if(!n||!(t=gn(t)))return n;var r=Ln(n),i=yu(r,Ln(t))+1;return ft(r,0,i).join("")}function Cp(n,t,e){if(n=W(n),n&&(e||t===o))return n.replace(yr,"");if(!n||!(t=gn(t)))return n;var r=Ln(n),i=xu(r,Ln(t));return ft(r,i).join("")}function Op(n,t){var e=Io,r=Ro;if(H(t)){var i="separator"in t?t.separator:i;e="length"in t?S(t.length):e,r="omission"in t?gn(t.omission):r}n=W(n);var f=n.length;if(Tt(n)){var a=Ln(n);f=a.length}if(e>=f)return n;var l=e-St(r);if(l<1)return r;var c=a?ft(a,0,l).join(""):n.slice(0,l);if(i===o)return c+r;if(a&&(l+=c.length-l),mi(i)){if(n.slice(l).search(i)){var p,_=c;for(i.global||(i=Br(i.source,W(Gi.exec(i))+"g")),i.lastIndex=0;p=i.exec(_);)var d=p.index;c=c.slice(0,d===o?l:d)}}else if(n.indexOf(gn(i),l)!=l){var v=c.lastIndexOf(i);v>-1&&(c=c.slice(0,v))}return c+r}function bp(n){return n=W(n),n&&qo.test(n)?n.replace(Bi,fl):n}var Dp=Wt(function(n,t,e){return n+(e?" ":"")+t.toUpperCase()}),Ri=cf("toUpperCase");function lo(n,t,e){return n=W(n),t=e?o:t,t===o?tl(n)?ll(n):Ya(n):n.match(t)||[]}var so=C(function(n,t){try{return cn(n,o,t)}catch(e){return yi(e)?e:new E(e)}}),Fp=Kn(function(n,t){return wn(t,function(e){e=Pn(e),qn(n,e,wi(n[e],n))}),n});function Wp(n){var t=n==null?0:n.length,e=m();return n=t?G(n,function(r){if(typeof r[1]!="function")throw new xn(tn);return[e(r[0]),r[1]]}):[],C(function(r){for(var i=-1;++i<t;){var f=n[i];if(cn(f[0],this,r))return cn(f[1],this,r)}})}function Pp(n){return fs(mn(n,Vn))}function Ei(n){return function(){return n}}function Up(n,t){return n==null||n!==n?t:n}var Bp=gf(),Mp=gf(!0);function ln(n){return n}function Ti(n){return qu(typeof n=="function"?n:mn(n,Vn))}function Np(n){return Ku(mn(n,Vn))}function Gp(n,t){return zu(n,mn(t,Vn))}var Hp=C(function(n,t){return function(e){return re(e,n,t)}}),qp=C(function(n,t){return function(e){return re(n,e,t)}});function Si(n,t,e){var r=X(t),i=Ne(t,r);e==null&&!(H(t)&&(i.length||!r.length))&&(e=t,t=n,n=this,i=Ne(t,X(t)));var f=!(H(e)&&"chain"in e)||!!e.chain,a=Yn(n);return wn(i,function(l){var c=t[l];n[l]=c,a&&(n.prototype[l]=function(){var p=this.__chain__;if(f||p){var _=n(this.__wrapped__),d=_.__actions__=fn(this.__actions__);return d.push({func:c,args:arguments,thisArg:n}),_.__chain__=p,_}return c.apply(n,nt([this.value()],arguments))})}),n}function $p(){return Q._===this&&(Q._=_l),this}function Li(){}function Kp(n){return n=S(n),C(function(t){return Yu(t,n)})}var zp=ui(G),Yp=ui(gu),Zp=ui(Or);function co(n){return hi(n)?br(Pn(n)):Is(n)}function Xp(n){return function(t){return n==null?o:_t(n,t)}}var Jp=_f(),Qp=_f(!0);function Ci(){return[]}function Oi(){return!1}function Vp(){return{}}function kp(){return""}function jp(){return!0}function n_(n,t){if(n=S(n),n<1||n>kn)return[];var e=Dn,r=k(n,Dn);t=m(t),n-=Dn;for(var i=Wr(r,t);++e<n;)t(e);return i}function t_(n){return T(n)?G(n,Pn):pn(n)?[n]:fn(bf(W(n)))}function e_(n){var t=++gl;return W(n)+t}var r_=ze(function(n,t){return n+t},0),i_=fi("ceil"),u_=ze(function(n,t){return n/t},1),f_=fi("floor");function o_(n){return n&&n.length?Me(n,ln,zr):o}function a_(n,t){return n&&n.length?Me(n,m(t,2),zr):o}function l_(n){return du(n,ln)}function s_(n,t){return du(n,m(t,2))}function c_(n){return n&&n.length?Me(n,ln,Jr):o}function h_(n,t){return n&&n.length?Me(n,m(t,2),Jr):o}var g_=ze(function(n,t){return n*t},1),p_=fi("round"),__=ze(function(n,t){return n-t},0);function d_(n){return n&&n.length?Fr(n,ln):0}function v_(n,t){return n&&n.length?Fr(n,m(t,2)):0}return u.after=Nh,u.ary=qf,u.assign=Tg,u.assignIn=eo,u.assignInWith=ir,u.assignWith=Sg,u.at=Lg,u.before=$f,u.bind=wi,u.bindAll=Fp,u.bindKey=Kf,u.castArray=Vh,u.chain=Nf,u.chunk=fc,u.compact=oc,u.concat=ac,u.cond=Wp,u.conforms=Pp,u.constant=Ei,u.countBy=dh,u.create=Cg,u.curry=zf,u.curryRight=Yf,u.debounce=Zf,u.defaults=Og,u.defaultsDeep=bg,u.defer=Gh,u.delay=Hh,u.difference=lc,u.differenceBy=sc,u.differenceWith=cc,u.drop=hc,u.dropRight=gc,u.dropRightWhile=pc,u.dropWhile=_c,u.fill=dc,u.filter=wh,u.flatMap=mh,u.flatMapDeep=Ah,u.flatMapDepth=Ih,u.flatten=Pf,u.flattenDeep=vc,u.flattenDepth=wc,u.flip=qh,u.flow=Bp,u.flowRight=Mp,u.fromPairs=xc,u.functions=Mg,u.functionsIn=Ng,u.groupBy=Rh,u.initial=mc,u.intersection=Ac,u.intersectionBy=Ic,u.intersectionWith=Rc,u.invert=Hg,u.invertBy=qg,u.invokeMap=Th,u.iteratee=Ti,u.keyBy=Sh,u.keys=X,u.keysIn=an,u.map=ke,u.mapKeys=Kg,u.mapValues=zg,u.matches=Np,u.matchesProperty=Gp,u.memoize=nr,u.merge=Yg,u.mergeWith=ro,u.method=Hp,u.methodOf=qp,u.mixin=Si,u.negate=tr,u.nthArg=Kp,u.omit=Zg,u.omitBy=Xg,u.once=$h,u.orderBy=Lh,u.over=zp,u.overArgs=Kh,u.overEvery=Yp,u.overSome=Zp,u.partial=xi,u.partialRight=Xf,u.partition=Ch,u.pick=Jg,u.pickBy=io,u.property=co,u.propertyOf=Xp,u.pull=Lc,u.pullAll=Bf,u.pullAllBy=Cc,u.pullAllWith=Oc,u.pullAt=bc,u.range=Jp,u.rangeRight=Qp,u.rearg=zh,u.reject=Dh,u.remove=Dc,u.rest=Yh,u.reverse=di,u.sampleSize=Wh,u.set=Vg,u.setWith=kg,u.shuffle=Ph,u.slice=Fc,u.sortBy=Mh,u.sortedUniq=Gc,u.sortedUniqBy=Hc,u.split=mp,u.spread=Zh,u.tail=qc,u.take=$c,u.takeRight=Kc,u.takeRightWhile=zc,u.takeWhile=Yc,u.tap=oh,u.throttle=Xh,u.thru=Ve,u.toArray=jf,u.toPairs=uo,u.toPairsIn=fo,u.toPath=t_,u.toPlainObject=to,u.transform=jg,u.unary=Jh,u.union=Zc,u.unionBy=Xc,u.unionWith=Jc,u.uniq=Qc,u.uniqBy=Vc,u.uniqWith=kc,u.unset=np,u.unzip=vi,u.unzipWith=Mf,u.update=tp,u.updateWith=ep,u.values=Bt,u.valuesIn=rp,u.without=jc,u.words=lo,u.wrap=Qh,u.xor=nh,u.xorBy=th,u.xorWith=eh,u.zip=rh,u.zipObject=ih,u.zipObjectDeep=uh,u.zipWith=fh,u.entries=uo,u.entriesIn=fo,u.extend=eo,u.extendWith=ir,Si(u,u),u.add=r_,u.attempt=so,u.camelCase=op,u.capitalize=oo,u.ceil=i_,u.clamp=ip,u.clone=kh,u.cloneDeep=ng,u.cloneDeepWith=tg,u.cloneWith=jh,u.conformsTo=eg,u.deburr=ao,u.defaultTo=Up,u.divide=u_,u.endsWith=ap,u.eq=On,u.escape=lp,u.escapeRegExp=sp,u.every=vh,u.find=xh,u.findIndex=Ff,u.findKey=Dg,u.findLast=yh,u.findLastIndex=Wf,u.findLastKey=Fg,u.floor=f_,u.forEach=Gf,u.forEachRight=Hf,u.forIn=Wg,u.forInRight=Pg,u.forOwn=Ug,u.forOwnRight=Bg,u.get=Ai,u.gt=rg,u.gte=ig,u.has=Gg,u.hasIn=Ii,u.head=Uf,u.identity=ln,u.includes=Eh,u.indexOf=yc,u.inRange=up,u.invoke=$g,u.isArguments=wt,u.isArray=T,u.isArrayBuffer=ug,u.isArrayLike=on,u.isArrayLikeObject=K,u.isBoolean=fg,u.isBuffer=ot,u.isDate=og,u.isElement=ag,u.isEmpty=lg,u.isEqual=sg,u.isEqualWith=cg,u.isError=yi,u.isFinite=hg,u.isFunction=Yn,u.isInteger=Jf,u.isLength=er,u.isMap=Qf,u.isMatch=gg,u.isMatchWith=pg,u.isNaN=_g,u.isNative=dg,u.isNil=wg,u.isNull=vg,u.isNumber=Vf,u.isObject=H,u.isObjectLike=$,u.isPlainObject=le,u.isRegExp=mi,u.isSafeInteger=xg,u.isSet=kf,u.isString=rr,u.isSymbol=pn,u.isTypedArray=Ut,u.isUndefined=yg,u.isWeakMap=mg,u.isWeakSet=Ag,u.join=Ec,u.kebabCase=cp,u.last=In,u.lastIndexOf=Tc,u.lowerCase=hp,u.lowerFirst=gp,u.lt=Ig,u.lte=Rg,u.max=o_,u.maxBy=a_,u.mean=l_,u.meanBy=s_,u.min=c_,u.minBy=h_,u.stubArray=Ci,u.stubFalse=Oi,u.stubObject=Vp,u.stubString=kp,u.stubTrue=jp,u.multiply=g_,u.nth=Sc,u.noConflict=$p,u.noop=Li,u.now=je,u.pad=pp,u.padEnd=_p,u.padStart=dp,u.parseInt=vp,u.random=fp,u.reduce=Oh,u.reduceRight=bh,u.repeat=wp,u.replace=xp,u.result=Qg,u.round=p_,u.runInContext=s,u.sample=Fh,u.size=Uh,u.snakeCase=yp,u.some=Bh,u.sortedIndex=Wc,u.sortedIndexBy=Pc,u.sortedIndexOf=Uc,u.sortedLastIndex=Bc,u.sortedLastIndexBy=Mc,u.sortedLastIndexOf=Nc,u.startCase=Ap,u.startsWith=Ip,u.subtract=__,u.sum=d_,u.sumBy=v_,u.template=Rp,u.times=n_,u.toFinite=Zn,u.toInteger=S,u.toLength=no,u.toLower=Ep,u.toNumber=Rn,u.toSafeInteger=Eg,u.toString=W,u.toUpper=Tp,u.trim=Sp,u.trimEnd=Lp,u.trimStart=Cp,u.truncate=Op,u.unescape=bp,u.uniqueId=e_,u.upperCase=Dp,u.upperFirst=Ri,u.each=Gf,u.eachRight=Hf,u.first=Uf,Si(u,function(){var n={};return Fn(u,function(t,e){P.call(u.prototype,e)||(n[e]=t)}),n}(),{chain:!1}),u.VERSION=q,wn(["bind","bindKey","curry","curryRight","partial","partialRight"],function(n){u[n].placeholder=u}),wn(["drop","take"],function(n,t){b.prototype[n]=function(e){e=e===o?1:Z(S(e),0);var r=this.__filtered__&&!t?new b(this):this.clone();return r.__filtered__?r.__takeCount__=k(e,r.__takeCount__):r.__views__.push({size:k(e,Dn),type:n+(r.__dir__<0?"Right":"")}),r},b.prototype[n+"Right"]=function(e){return this.reverse()[n](e).reverse()}}),wn(["filter","map","takeWhile"],function(n,t){var e=t+1,r=e==Wi||e==Lo;b.prototype[n]=function(i){var f=this.clone();return f.__iteratees__.push({iteratee:m(i,3),type:e}),f.__filtered__=f.__filtered__||r,f}}),wn(["head","last"],function(n,t){var e="take"+(t?"Right":"");b.prototype[n]=function(){return this[e](1).value()[0]}}),wn(["initial","tail"],function(n,t){var e="drop"+(t?"":"Right");b.prototype[n]=function(){return this.__filtered__?new b(this):this[e](1)}}),b.prototype.compact=function(){return this.filter(ln)},b.prototype.find=function(n){return this.filter(n).head()},b.prototype.findLast=function(n){return this.reverse().find(n)},b.prototype.invokeMap=C(function(n,t){return typeof n=="function"?new b(this):this.map(function(e){return re(e,n,t)})}),b.prototype.reject=function(n){return this.filter(tr(m(n)))},b.prototype.slice=function(n,t){n=S(n);var e=this;return e.__filtered__&&(n>0||t<0)?new b(e):(n<0?e=e.takeRight(-n):n&&(e=e.drop(n)),t!==o&&(t=S(t),e=t<0?e.dropRight(-t):e.take(t-n)),e)},b.prototype.takeRightWhile=function(n){return this.reverse().takeWhile(n).reverse()},b.prototype.toArray=function(){return this.take(Dn)},Fn(b.prototype,function(n,t){var e=/^(?:filter|find|map|reject)|While$/.test(t),r=/^(?:head|last)$/.test(t),i=u[r?"take"+(t=="last"?"Right":""):t],f=r||/^find/.test(t);i&&(u.prototype[t]=function(){var a=this.__wrapped__,l=r?[1]:arguments,c=a instanceof b,p=l[0],_=c||T(a),d=function(O){var D=i.apply(u,nt([O],l));return r&&v?D[0]:D};_&&e&&typeof p=="function"&&p.length!=1&&(c=_=!1);var v=this.__chain__,y=!!this.__actions__.length,A=f&&!v,L=c&&!y;if(!f&&_){a=L?a:new b(this);var I=n.apply(a,l);return I.__actions__.push({func:Ve,args:[d],thisArg:o}),new yn(I,v)}return A&&L?n.apply(this,l):(I=this.thru(d),A?r?I.value()[0]:I.value():I)})}),wn(["pop","push","shift","sort","splice","unshift"],function(n){var t=Ie[n],e=/^(?:push|sort|unshift)$/.test(n)?"tap":"thru",r=/^(?:pop|shift)$/.test(n);u.prototype[n]=function(){var i=arguments;if(r&&!this.__chain__){var f=this.value();return t.apply(T(f)?f:[],i)}return this[e](function(a){return t.apply(T(a)?a:[],i)})}}),Fn(b.prototype,function(n,t){var e=u[t];if(e){var r=e.name+"";P.call(bt,r)||(bt[r]=[]),bt[r].push({name:t,func:e})}}),bt[Ke(o,mt).name]=[{name:"wrapper",func:o}],b.prototype.clone=bl,b.prototype.reverse=Dl,b.prototype.value=Fl,u.prototype.at=ah,u.prototype.chain=lh,u.prototype.commit=sh,u.prototype.next=ch,u.prototype.plant=gh,u.prototype.reverse=ph,u.prototype.toJSON=u.prototype.valueOf=u.prototype.value=_h,u.prototype.first=u.prototype.head,Qt&&(u.prototype[Qt]=hh),u},Lt=sl();st?((st.exports=Lt)._=Lt,Tr._=Lt):Q._=Lt}).call(P_)}(se,se.exports)),se.exports}var B_=U_();const M_=w=>{const R=B_.startCase(w).toLowerCase();return R.charAt(0).toUpperCase()+R.slice(1)},N_=xo.promisify(yo.exec),G_=async w=>{try{await N_("yarn",{cwd:w})}catch(R){console.error(sn.default.red("yarn install failed:"),R.stdout)}},at=xo.promisify(yo.exec),H_=async w=>{try{return await at("git rev-parse --is-inside-work-tree",{cwd:w}),!0}catch{}return!1},q_=async w=>{try{return await at("hg --cwd . root",{cwd:w}),!0}catch{}return!1},$_=async w=>{try{return await at("git config init.defaultBranch",{cwd:w}),!0}catch{}return!1},K_=async w=>{try{if(await at("git --version",{cwd:w}),await H_(w)||await q_(w))return!1;await at("git init",{cwd:w});try{return await $_(w)||await at("git checkout -b main",{cwd:w}),await at("git add -A",{cwd:w}),await at('git commit -m "Initial commit from Create Twenty App"',{cwd:w}),!0}catch{return J.rm(nn.join(w,".git"),{recursive:!0,force:!0}),!1}}catch{return!1}},_o=process.env.INIT_CWD||process.cwd();class z_{async execute(R){try{const{appName:o,appDisplayName:q,appDirectory:B,appDescription:Jn}=await this.getAppInfos(R);await this.validateDirectory(B),this.logCreationInfo({appDirectory:B,appName:o}),await J.ensureDir(B),await T_({appName:o,appDisplayName:q,appDescription:Jn,appDirectory:B}),await G_(B),await K_(B),this.logSuccess(B)}catch(o){console.error(sn.default.red("Initialization failed:"),o instanceof Error?o.message:o),process.exit(1)}}async getAppInfos(R){const{name:o,displayName:q,description:B}=await A_.default.prompt([{type:"input",name:"name",message:"Application name:",when:()=>!R,default:"my-awesome-app",validate:Qn=>Qn.length===0?"Application name is required":!0},{type:"input",name:"displayName",message:"Application display name:",default:Qn=>M_(Qn?.name??R)},{type:"input",name:"description",message:"Application description (optional):",default:""}]),tn=(o??R).trim(),or=q.trim(),Mt=B.trim(),ar=R?go.join(_o,R):go.join(_o,I_.default(tn));return{appName:tn,appDisplayName:or,appDirectory:ar,appDescription:Mt}}async validateDirectory(R){if(!await J.pathExists(R))return;if((await J.readdir(R)).length>0)throw new Error(`Directory ${R} already exists and is not empty`)}logCreationInfo({appDirectory:R,appName:o}){console.log(sn.default.blue("🎯 Creating Twenty Application")),console.log(sn.default.gray(`📁 Directory: ${R}`)),console.log(sn.default.gray(`📝 Name: ${o}`)),console.log("")}logSuccess(R){const o=R.split("/").reverse()[0]??"";console.log(sn.default.green("✅ Application created!")),console.log(""),console.log(sn.default.blue("Next steps:")),console.log(sn.default.gray(` cd ${o}`)),console.log(sn.default.gray(" corepack enable # if you don't use yarn@4")),console.log(sn.default.gray(" yarn install # if you don't use yarn@4")),console.log(sn.default.gray(" yarn auth:login # Authenticate with Twenty")),console.log(sn.default.gray(" yarn app:dev # Start dev mode"))}}const Y_="create-twenty-app",Z_="0.5.1",vo={name:Y_,version:Z_},Ao=new wo.Command(vo.name).description("CLI tool to initialize a new Twenty application").version(vo.version,"-v, --version","Output the current version of create-twenty-app.").argument("[directory]").helpOption("-h, --help","Display this help message.").action(async w=>{w&&!/^[a-z0-9-]+$/.test(w)&&(console.error(sn.default.red(`Invalid directory "${w}". Must contain only lowercase letters, numbers, and hyphens`)),process.exit(1)),await new z_().execute(w)});Ao.exitOverride();try{Ao.parse()}catch(w){w instanceof wo.CommanderError&&process.exit(w.exitCode),w instanceof Error&&(console.error(sn.default.red("Error:"),w.message),process.exit(1))}
|
|
127
|
+
}`;var L=so(function(){return F(f,y+"return "+d).apply(o,a)});if(L.source=d,yi(L))throw L;return L}function Ep(n){return W(n).toLowerCase()}function Tp(n){return W(n).toUpperCase()}function Sp(n,t,e){if(n=W(n),n&&(e||t===o))return wu(n);if(!n||!(t=gn(t)))return n;var r=Ln(n),i=Ln(t),f=xu(r,i),a=yu(r,i)+1;return ft(r,f,a).join("")}function Lp(n,t,e){if(n=W(n),n&&(e||t===o))return n.slice(0,Au(n)+1);if(!n||!(t=gn(t)))return n;var r=Ln(n),i=yu(r,Ln(t))+1;return ft(r,0,i).join("")}function Cp(n,t,e){if(n=W(n),n&&(e||t===o))return n.replace(yr,"");if(!n||!(t=gn(t)))return n;var r=Ln(n),i=xu(r,Ln(t));return ft(r,i).join("")}function Op(n,t){var e=Io,r=Ro;if(H(t)){var i="separator"in t?t.separator:i;e="length"in t?S(t.length):e,r="omission"in t?gn(t.omission):r}n=W(n);var f=n.length;if(Tt(n)){var a=Ln(n);f=a.length}if(e>=f)return n;var l=e-St(r);if(l<1)return r;var c=a?ft(a,0,l).join(""):n.slice(0,l);if(i===o)return c+r;if(a&&(l+=c.length-l),mi(i)){if(n.slice(l).search(i)){var p,_=c;for(i.global||(i=Br(i.source,W(Gi.exec(i))+"g")),i.lastIndex=0;p=i.exec(_);)var d=p.index;c=c.slice(0,d===o?l:d)}}else if(n.indexOf(gn(i),l)!=l){var v=c.lastIndexOf(i);v>-1&&(c=c.slice(0,v))}return c+r}function bp(n){return n=W(n),n&&qo.test(n)?n.replace(Bi,fl):n}var Dp=Wt(function(n,t,e){return n+(e?" ":"")+t.toUpperCase()}),Ri=cf("toUpperCase");function lo(n,t,e){return n=W(n),t=e?o:t,t===o?tl(n)?ll(n):Ya(n):n.match(t)||[]}var so=C(function(n,t){try{return cn(n,o,t)}catch(e){return yi(e)?e:new E(e)}}),Fp=Kn(function(n,t){return wn(t,function(e){e=Pn(e),qn(n,e,wi(n[e],n))}),n});function Wp(n){var t=n==null?0:n.length,e=m();return n=t?G(n,function(r){if(typeof r[1]!="function")throw new xn(tn);return[e(r[0]),r[1]]}):[],C(function(r){for(var i=-1;++i<t;){var f=n[i];if(cn(f[0],this,r))return cn(f[1],this,r)}})}function Pp(n){return fs(mn(n,Vn))}function Ei(n){return function(){return n}}function Up(n,t){return n==null||n!==n?t:n}var Bp=gf(),Mp=gf(!0);function ln(n){return n}function Ti(n){return qu(typeof n=="function"?n:mn(n,Vn))}function Np(n){return Ku(mn(n,Vn))}function Gp(n,t){return zu(n,mn(t,Vn))}var Hp=C(function(n,t){return function(e){return re(e,n,t)}}),qp=C(function(n,t){return function(e){return re(n,e,t)}});function Si(n,t,e){var r=X(t),i=Ne(t,r);e==null&&!(H(t)&&(i.length||!r.length))&&(e=t,t=n,n=this,i=Ne(t,X(t)));var f=!(H(e)&&"chain"in e)||!!e.chain,a=Yn(n);return wn(i,function(l){var c=t[l];n[l]=c,a&&(n.prototype[l]=function(){var p=this.__chain__;if(f||p){var _=n(this.__wrapped__),d=_.__actions__=fn(this.__actions__);return d.push({func:c,args:arguments,thisArg:n}),_.__chain__=p,_}return c.apply(n,nt([this.value()],arguments))})}),n}function $p(){return Q._===this&&(Q._=_l),this}function Li(){}function Kp(n){return n=S(n),C(function(t){return Yu(t,n)})}var zp=ui(G),Yp=ui(gu),Zp=ui(Or);function co(n){return hi(n)?br(Pn(n)):Is(n)}function Xp(n){return function(t){return n==null?o:_t(n,t)}}var Jp=_f(),Qp=_f(!0);function Ci(){return[]}function Oi(){return!1}function Vp(){return{}}function kp(){return""}function jp(){return!0}function n_(n,t){if(n=S(n),n<1||n>kn)return[];var e=Dn,r=k(n,Dn);t=m(t),n-=Dn;for(var i=Wr(r,t);++e<n;)t(e);return i}function t_(n){return T(n)?G(n,Pn):pn(n)?[n]:fn(bf(W(n)))}function e_(n){var t=++gl;return W(n)+t}var r_=ze(function(n,t){return n+t},0),i_=fi("ceil"),u_=ze(function(n,t){return n/t},1),f_=fi("floor");function o_(n){return n&&n.length?Me(n,ln,zr):o}function a_(n,t){return n&&n.length?Me(n,m(t,2),zr):o}function l_(n){return du(n,ln)}function s_(n,t){return du(n,m(t,2))}function c_(n){return n&&n.length?Me(n,ln,Jr):o}function h_(n,t){return n&&n.length?Me(n,m(t,2),Jr):o}var g_=ze(function(n,t){return n*t},1),p_=fi("round"),__=ze(function(n,t){return n-t},0);function d_(n){return n&&n.length?Fr(n,ln):0}function v_(n,t){return n&&n.length?Fr(n,m(t,2)):0}return u.after=Nh,u.ary=qf,u.assign=Tg,u.assignIn=eo,u.assignInWith=ir,u.assignWith=Sg,u.at=Lg,u.before=$f,u.bind=wi,u.bindAll=Fp,u.bindKey=Kf,u.castArray=Vh,u.chain=Nf,u.chunk=fc,u.compact=oc,u.concat=ac,u.cond=Wp,u.conforms=Pp,u.constant=Ei,u.countBy=dh,u.create=Cg,u.curry=zf,u.curryRight=Yf,u.debounce=Zf,u.defaults=Og,u.defaultsDeep=bg,u.defer=Gh,u.delay=Hh,u.difference=lc,u.differenceBy=sc,u.differenceWith=cc,u.drop=hc,u.dropRight=gc,u.dropRightWhile=pc,u.dropWhile=_c,u.fill=dc,u.filter=wh,u.flatMap=mh,u.flatMapDeep=Ah,u.flatMapDepth=Ih,u.flatten=Pf,u.flattenDeep=vc,u.flattenDepth=wc,u.flip=qh,u.flow=Bp,u.flowRight=Mp,u.fromPairs=xc,u.functions=Mg,u.functionsIn=Ng,u.groupBy=Rh,u.initial=mc,u.intersection=Ac,u.intersectionBy=Ic,u.intersectionWith=Rc,u.invert=Hg,u.invertBy=qg,u.invokeMap=Th,u.iteratee=Ti,u.keyBy=Sh,u.keys=X,u.keysIn=an,u.map=ke,u.mapKeys=Kg,u.mapValues=zg,u.matches=Np,u.matchesProperty=Gp,u.memoize=nr,u.merge=Yg,u.mergeWith=ro,u.method=Hp,u.methodOf=qp,u.mixin=Si,u.negate=tr,u.nthArg=Kp,u.omit=Zg,u.omitBy=Xg,u.once=$h,u.orderBy=Lh,u.over=zp,u.overArgs=Kh,u.overEvery=Yp,u.overSome=Zp,u.partial=xi,u.partialRight=Xf,u.partition=Ch,u.pick=Jg,u.pickBy=io,u.property=co,u.propertyOf=Xp,u.pull=Lc,u.pullAll=Bf,u.pullAllBy=Cc,u.pullAllWith=Oc,u.pullAt=bc,u.range=Jp,u.rangeRight=Qp,u.rearg=zh,u.reject=Dh,u.remove=Dc,u.rest=Yh,u.reverse=di,u.sampleSize=Wh,u.set=Vg,u.setWith=kg,u.shuffle=Ph,u.slice=Fc,u.sortBy=Mh,u.sortedUniq=Gc,u.sortedUniqBy=Hc,u.split=mp,u.spread=Zh,u.tail=qc,u.take=$c,u.takeRight=Kc,u.takeRightWhile=zc,u.takeWhile=Yc,u.tap=oh,u.throttle=Xh,u.thru=Ve,u.toArray=jf,u.toPairs=uo,u.toPairsIn=fo,u.toPath=t_,u.toPlainObject=to,u.transform=jg,u.unary=Jh,u.union=Zc,u.unionBy=Xc,u.unionWith=Jc,u.uniq=Qc,u.uniqBy=Vc,u.uniqWith=kc,u.unset=np,u.unzip=vi,u.unzipWith=Mf,u.update=tp,u.updateWith=ep,u.values=Bt,u.valuesIn=rp,u.without=jc,u.words=lo,u.wrap=Qh,u.xor=nh,u.xorBy=th,u.xorWith=eh,u.zip=rh,u.zipObject=ih,u.zipObjectDeep=uh,u.zipWith=fh,u.entries=uo,u.entriesIn=fo,u.extend=eo,u.extendWith=ir,Si(u,u),u.add=r_,u.attempt=so,u.camelCase=op,u.capitalize=oo,u.ceil=i_,u.clamp=ip,u.clone=kh,u.cloneDeep=ng,u.cloneDeepWith=tg,u.cloneWith=jh,u.conformsTo=eg,u.deburr=ao,u.defaultTo=Up,u.divide=u_,u.endsWith=ap,u.eq=On,u.escape=lp,u.escapeRegExp=sp,u.every=vh,u.find=xh,u.findIndex=Ff,u.findKey=Dg,u.findLast=yh,u.findLastIndex=Wf,u.findLastKey=Fg,u.floor=f_,u.forEach=Gf,u.forEachRight=Hf,u.forIn=Wg,u.forInRight=Pg,u.forOwn=Ug,u.forOwnRight=Bg,u.get=Ai,u.gt=rg,u.gte=ig,u.has=Gg,u.hasIn=Ii,u.head=Uf,u.identity=ln,u.includes=Eh,u.indexOf=yc,u.inRange=up,u.invoke=$g,u.isArguments=wt,u.isArray=T,u.isArrayBuffer=ug,u.isArrayLike=on,u.isArrayLikeObject=K,u.isBoolean=fg,u.isBuffer=ot,u.isDate=og,u.isElement=ag,u.isEmpty=lg,u.isEqual=sg,u.isEqualWith=cg,u.isError=yi,u.isFinite=hg,u.isFunction=Yn,u.isInteger=Jf,u.isLength=er,u.isMap=Qf,u.isMatch=gg,u.isMatchWith=pg,u.isNaN=_g,u.isNative=dg,u.isNil=wg,u.isNull=vg,u.isNumber=Vf,u.isObject=H,u.isObjectLike=$,u.isPlainObject=le,u.isRegExp=mi,u.isSafeInteger=xg,u.isSet=kf,u.isString=rr,u.isSymbol=pn,u.isTypedArray=Ut,u.isUndefined=yg,u.isWeakMap=mg,u.isWeakSet=Ag,u.join=Ec,u.kebabCase=cp,u.last=In,u.lastIndexOf=Tc,u.lowerCase=hp,u.lowerFirst=gp,u.lt=Ig,u.lte=Rg,u.max=o_,u.maxBy=a_,u.mean=l_,u.meanBy=s_,u.min=c_,u.minBy=h_,u.stubArray=Ci,u.stubFalse=Oi,u.stubObject=Vp,u.stubString=kp,u.stubTrue=jp,u.multiply=g_,u.nth=Sc,u.noConflict=$p,u.noop=Li,u.now=je,u.pad=pp,u.padEnd=_p,u.padStart=dp,u.parseInt=vp,u.random=fp,u.reduce=Oh,u.reduceRight=bh,u.repeat=wp,u.replace=xp,u.result=Qg,u.round=p_,u.runInContext=s,u.sample=Fh,u.size=Uh,u.snakeCase=yp,u.some=Bh,u.sortedIndex=Wc,u.sortedIndexBy=Pc,u.sortedIndexOf=Uc,u.sortedLastIndex=Bc,u.sortedLastIndexBy=Mc,u.sortedLastIndexOf=Nc,u.startCase=Ap,u.startsWith=Ip,u.subtract=__,u.sum=d_,u.sumBy=v_,u.template=Rp,u.times=n_,u.toFinite=Zn,u.toInteger=S,u.toLength=no,u.toLower=Ep,u.toNumber=Rn,u.toSafeInteger=Eg,u.toString=W,u.toUpper=Tp,u.trim=Sp,u.trimEnd=Lp,u.trimStart=Cp,u.truncate=Op,u.unescape=bp,u.uniqueId=e_,u.upperCase=Dp,u.upperFirst=Ri,u.each=Gf,u.eachRight=Hf,u.first=Uf,Si(u,function(){var n={};return Fn(u,function(t,e){P.call(u.prototype,e)||(n[e]=t)}),n}(),{chain:!1}),u.VERSION=q,wn(["bind","bindKey","curry","curryRight","partial","partialRight"],function(n){u[n].placeholder=u}),wn(["drop","take"],function(n,t){b.prototype[n]=function(e){e=e===o?1:Z(S(e),0);var r=this.__filtered__&&!t?new b(this):this.clone();return r.__filtered__?r.__takeCount__=k(e,r.__takeCount__):r.__views__.push({size:k(e,Dn),type:n+(r.__dir__<0?"Right":"")}),r},b.prototype[n+"Right"]=function(e){return this.reverse()[n](e).reverse()}}),wn(["filter","map","takeWhile"],function(n,t){var e=t+1,r=e==Wi||e==Lo;b.prototype[n]=function(i){var f=this.clone();return f.__iteratees__.push({iteratee:m(i,3),type:e}),f.__filtered__=f.__filtered__||r,f}}),wn(["head","last"],function(n,t){var e="take"+(t?"Right":"");b.prototype[n]=function(){return this[e](1).value()[0]}}),wn(["initial","tail"],function(n,t){var e="drop"+(t?"":"Right");b.prototype[n]=function(){return this.__filtered__?new b(this):this[e](1)}}),b.prototype.compact=function(){return this.filter(ln)},b.prototype.find=function(n){return this.filter(n).head()},b.prototype.findLast=function(n){return this.reverse().find(n)},b.prototype.invokeMap=C(function(n,t){return typeof n=="function"?new b(this):this.map(function(e){return re(e,n,t)})}),b.prototype.reject=function(n){return this.filter(tr(m(n)))},b.prototype.slice=function(n,t){n=S(n);var e=this;return e.__filtered__&&(n>0||t<0)?new b(e):(n<0?e=e.takeRight(-n):n&&(e=e.drop(n)),t!==o&&(t=S(t),e=t<0?e.dropRight(-t):e.take(t-n)),e)},b.prototype.takeRightWhile=function(n){return this.reverse().takeWhile(n).reverse()},b.prototype.toArray=function(){return this.take(Dn)},Fn(b.prototype,function(n,t){var e=/^(?:filter|find|map|reject)|While$/.test(t),r=/^(?:head|last)$/.test(t),i=u[r?"take"+(t=="last"?"Right":""):t],f=r||/^find/.test(t);i&&(u.prototype[t]=function(){var a=this.__wrapped__,l=r?[1]:arguments,c=a instanceof b,p=l[0],_=c||T(a),d=function(O){var D=i.apply(u,nt([O],l));return r&&v?D[0]:D};_&&e&&typeof p=="function"&&p.length!=1&&(c=_=!1);var v=this.__chain__,y=!!this.__actions__.length,A=f&&!v,L=c&&!y;if(!f&&_){a=L?a:new b(this);var I=n.apply(a,l);return I.__actions__.push({func:Ve,args:[d],thisArg:o}),new yn(I,v)}return A&&L?n.apply(this,l):(I=this.thru(d),A?r?I.value()[0]:I.value():I)})}),wn(["pop","push","shift","sort","splice","unshift"],function(n){var t=Ie[n],e=/^(?:push|sort|unshift)$/.test(n)?"tap":"thru",r=/^(?:pop|shift)$/.test(n);u.prototype[n]=function(){var i=arguments;if(r&&!this.__chain__){var f=this.value();return t.apply(T(f)?f:[],i)}return this[e](function(a){return t.apply(T(a)?a:[],i)})}}),Fn(b.prototype,function(n,t){var e=u[t];if(e){var r=e.name+"";P.call(bt,r)||(bt[r]=[]),bt[r].push({name:t,func:e})}}),bt[Ke(o,mt).name]=[{name:"wrapper",func:o}],b.prototype.clone=bl,b.prototype.reverse=Dl,b.prototype.value=Fl,u.prototype.at=ah,u.prototype.chain=lh,u.prototype.commit=sh,u.prototype.next=ch,u.prototype.plant=gh,u.prototype.reverse=ph,u.prototype.toJSON=u.prototype.valueOf=u.prototype.value=_h,u.prototype.first=u.prototype.head,Qt&&(u.prototype[Qt]=hh),u},Lt=sl();st?((st.exports=Lt)._=Lt,Tr._=Lt):Q._=Lt}).call(P_)}(se,se.exports)),se.exports}var B_=U_();const M_=w=>{const R=B_.startCase(w).toLowerCase();return R.charAt(0).toUpperCase()+R.slice(1)},N_=xo.promisify(yo.exec),G_=async w=>{try{await N_("yarn",{cwd:w})}catch(R){console.error(sn.default.red("yarn install failed:"),R.stdout)}},at=xo.promisify(yo.exec),H_=async w=>{try{return await at("git rev-parse --is-inside-work-tree",{cwd:w}),!0}catch{}return!1},q_=async w=>{try{return await at("hg --cwd . root",{cwd:w}),!0}catch{}return!1},$_=async w=>{try{return await at("git config init.defaultBranch",{cwd:w}),!0}catch{}return!1},K_=async w=>{try{if(await at("git --version",{cwd:w}),await H_(w)||await q_(w))return!1;await at("git init",{cwd:w});try{return await $_(w)||await at("git checkout -b main",{cwd:w}),await at("git add -A",{cwd:w}),await at('git commit -m "Initial commit from Create Twenty App"',{cwd:w}),!0}catch{return J.rm(nn.join(w,".git"),{recursive:!0,force:!0}),!1}}catch{return!1}},_o=process.env.INIT_CWD||process.cwd();class z_{async execute(R){try{const{appName:o,appDisplayName:q,appDirectory:B,appDescription:Jn}=await this.getAppInfos(R);await this.validateDirectory(B),this.logCreationInfo({appDirectory:B,appName:o}),await J.ensureDir(B),await T_({appName:o,appDisplayName:q,appDescription:Jn,appDirectory:B}),await G_(B),await K_(B),this.logSuccess(B)}catch(o){console.error(sn.default.red("Initialization failed:"),o instanceof Error?o.message:o),process.exit(1)}}async getAppInfos(R){const{name:o,displayName:q,description:B}=await A_.default.prompt([{type:"input",name:"name",message:"Application name:",when:()=>!R,default:"my-awesome-app",validate:Qn=>Qn.length===0?"Application name is required":!0},{type:"input",name:"displayName",message:"Application display name:",default:Qn=>M_(Qn?.name??R)},{type:"input",name:"description",message:"Application description (optional):",default:""}]),tn=(o??R).trim(),or=q.trim(),Mt=B.trim(),ar=R?go.join(_o,R):go.join(_o,I_.default(tn));return{appName:tn,appDisplayName:or,appDirectory:ar,appDescription:Mt}}async validateDirectory(R){if(!await J.pathExists(R))return;if((await J.readdir(R)).length>0)throw new Error(`Directory ${R} already exists and is not empty`)}logCreationInfo({appDirectory:R,appName:o}){console.log(sn.default.blue("🎯 Creating Twenty Application")),console.log(sn.default.gray(`📁 Directory: ${R}`)),console.log(sn.default.gray(`📝 Name: ${o}`)),console.log("")}logSuccess(R){const o=R.split("/").reverse()[0]??"";console.log(sn.default.green("✅ Application created!")),console.log(""),console.log(sn.default.blue("Next steps:")),console.log(sn.default.gray(` cd ${o}`)),console.log(sn.default.gray(" corepack enable # if you don't use yarn@4")),console.log(sn.default.gray(" yarn install # if you don't use yarn@4")),console.log(sn.default.gray(" yarn auth:login # Authenticate with Twenty")),console.log(sn.default.gray(" yarn app:dev # Start dev mode"))}}const Y_="create-twenty-app",Z_="0.5.2",vo={name:Y_,version:Z_},Ao=new wo.Command(vo.name).description("CLI tool to initialize a new Twenty application").version(vo.version,"-v, --version","Output the current version of create-twenty-app.").argument("[directory]").helpOption("-h, --help","Display this help message.").action(async w=>{w&&!/^[a-z0-9-]+$/.test(w)&&(console.error(sn.default.red(`Invalid directory "${w}". Must contain only lowercase letters, numbers, and hyphens`)),process.exit(1)),await new z_().execute(w)});Ao.exitOverride();try{Ao.parse()}catch(w){w instanceof wo.CommanderError&&process.exit(w.exitCode),w instanceof Error&&(console.error(sn.default.red("Error:"),w.message),process.exit(1))}
|
package/dist/cli.mjs
CHANGED
|
@@ -203,7 +203,7 @@ export default defineApplication({
|
|
|
203
203
|
"lint:fix": "eslint --fix"
|
|
204
204
|
},
|
|
205
205
|
dependencies: {
|
|
206
|
-
"twenty-sdk": "0.5.
|
|
206
|
+
"twenty-sdk": "0.5.2"
|
|
207
207
|
},
|
|
208
208
|
devDependencies: {
|
|
209
209
|
typescript: "^5.9.3",
|
|
@@ -4001,7 +4001,7 @@ class G_ {
|
|
|
4001
4001
|
console.log(sn.green("✅ Application created!")), console.log(""), console.log(sn.blue("Next steps:")), console.log(sn.gray(` cd ${o}`)), console.log(sn.gray(" corepack enable # if you don't use yarn@4")), console.log(sn.gray(" yarn install # if you don't use yarn@4")), console.log(sn.gray(" yarn auth:login # Authenticate with Twenty")), console.log(sn.gray(" yarn app:dev # Start dev mode"));
|
|
4002
4002
|
}
|
|
4003
4003
|
}
|
|
4004
|
-
const H_ = "create-twenty-app", $_ = "0.5.
|
|
4004
|
+
const H_ = "create-twenty-app", $_ = "0.5.2", _o = {
|
|
4005
4005
|
name: H_,
|
|
4006
4006
|
version: $_
|
|
4007
4007
|
}, xo = new __(_o.name).description("CLI tool to initialize a new Twenty application").version(
|