create-twenty-app 0.4.1 → 0.4.3
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
|
@@ -102,7 +102,7 @@ export default defineApplication({
|
|
|
102
102
|
description: '${R??""}',
|
|
103
103
|
defaultRoleUniversalIdentifier: DEFAULT_ROLE_UNIVERSAL_IDENTIFIER,
|
|
104
104
|
});
|
|
105
|
-
`;await J.ensureDir(nn.join(o,H??"")),await J.writeFile(nn.join(o,H??"",B),Dn)},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.4.
|
|
105
|
+
`;await J.ensureDir(nn.join(o,H??"")),await J.writeFile(nn.join(o,H??"",B),Dn)},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.4.3"},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 fr=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},st={exports:{}};/**
|
|
106
106
|
* @license
|
|
107
107
|
* Lodash <https://lodash.com/>
|
|
108
108
|
* Copyright OpenJS Foundation and other contributors <https://openjsf.org/>
|
|
@@ -128,4 +128,4 @@ __p += '`),D&&(d+=`' +
|
|
|
128
128
|
function print() { __p += __j.call(arguments, '') }
|
|
129
129
|
`:`;
|
|
130
130
|
`)+d+`return __p
|
|
131
|
-
}`;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,e,t){if(n=W(n),n&&(t||e===o))return wu(n);if(!n||!(e=gn(e)))return n;var r=Ln(n),i=Ln(e),f=xu(r,i),a=yu(r,i)+1;return fe(r,f,a).join("")}function Lp(n,e,t){if(n=W(n),n&&(t||e===o))return n.slice(0,Au(n)+1);if(!n||!(e=gn(e)))return n;var r=Ln(n),i=yu(r,Ln(e))+1;return fe(r,0,i).join("")}function Cp(n,e,t){if(n=W(n),n&&(t||e===o))return n.replace(yr,"");if(!n||!(e=gn(e)))return n;var r=Ln(n),i=xu(r,Ln(e));return fe(r,i).join("")}function Op(n,e){var t=Io,r=Ro;if($(e)){var i="separator"in e?e.separator:i;t="length"in e?S(e.length):t,r="omission"in e?gn(e.omission):r}n=W(n);var f=n.length;if(Te(n)){var a=Ln(n);f=a.length}if(t>=f)return n;var l=t-Se(r);if(l<1)return r;var c=a?fe(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&&$o.test(n)?n.replace(Bi,fl):n}var Dp=We(function(n,e,t){return n+(t?" ":"")+e.toUpperCase()}),Ri=cf("toUpperCase");function lo(n,e,t){return n=W(n),e=t?o:e,e===o?el(n)?ll(n):Ya(n):n.match(e)||[]}var so=C(function(n,e){try{return cn(n,o,e)}catch(t){return yi(t)?t:new E(t)}}),Fp=zn(function(n,e){return wn(e,function(t){t=Un(t),qn(n,t,wi(n[t],n))}),n});function Wp(n){var e=n==null?0:n.length,t=m();return n=e?G(n,function(r){if(typeof r[1]!="function")throw new xn(en);return[t(r[0]),r[1]]}):[],C(function(r){for(var i=-1;++i<e;){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,e){return n==null||n!==n?e:n}var Bp=gf(),Mp=gf(!0);function ln(n){return n}function Ti(n){return $u(typeof n=="function"?n:mn(n,Vn))}function Np(n){return Ku(mn(n,Vn))}function Gp(n,e){return zu(n,mn(e,Vn))}var Hp=C(function(n,e){return function(t){return rt(t,n,e)}}),$p=C(function(n,e){return function(t){return rt(n,t,e)}});function Si(n,e,t){var r=X(e),i=Gt(e,r);t==null&&!($(e)&&(i.length||!r.length))&&(t=e,e=n,n=this,i=Gt(e,X(e)));var f=!($(t)&&"chain"in t)||!!t.chain,a=Zn(n);return wn(i,function(l){var c=e[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,ne([this.value()],arguments))})}),n}function qp(){return Q._===this&&(Q._=_l),this}function Li(){}function Kp(n){return n=S(n),C(function(e){return Yu(e,n)})}var zp=ui(G),Yp=ui(gu),Zp=ui(Or);function co(n){return hi(n)?br(Un(n)):Is(n)}function Xp(n){return function(e){return n==null?o:_e(n,e)}}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,e){if(n=S(n),n<1||n>kn)return[];var t=Fn,r=k(n,Fn);e=m(e),n-=Fn;for(var i=Wr(r,e);++t<n;)e(t);return i}function e_(n){return T(n)?G(n,Un):pn(n)?[n]:fn(bf(W(n)))}function t_(n){var e=++gl;return W(n)+e}var r_=Yt(function(n,e){return n+e},0),i_=fi("ceil"),u_=Yt(function(n,e){return n/e},1),f_=fi("floor");function o_(n){return n&&n.length?Nt(n,ln,zr):o}function a_(n,e){return n&&n.length?Nt(n,m(e,2),zr):o}function l_(n){return du(n,ln)}function s_(n,e){return du(n,m(e,2))}function c_(n){return n&&n.length?Nt(n,ln,Jr):o}function h_(n,e){return n&&n.length?Nt(n,m(e,2),Jr):o}var g_=Yt(function(n,e){return n*e},1),p_=fi("round"),__=Yt(function(n,e){return n-e},0);function d_(n){return n&&n.length?Fr(n,ln):0}function v_(n,e){return n&&n.length?Fr(n,m(e,2)):0}return u.after=Nh,u.ary=$f,u.assign=Tg,u.assignIn=to,u.assignInWith=ur,u.assignWith=Sg,u.at=Lg,u.before=qf,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=$h,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=$g,u.invokeMap=Th,u.iteratee=Ti,u.keyBy=Sh,u.keys=X,u.keysIn=an,u.map=jt,u.mapKeys=Kg,u.mapValues=zg,u.matches=Np,u.matchesProperty=Gp,u.memoize=er,u.merge=Yg,u.mergeWith=ro,u.method=Hp,u.methodOf=$p,u.mixin=Si,u.negate=tr,u.nthArg=Kp,u.omit=Zg,u.omitBy=Xg,u.once=qh,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=$c,u.take=qc,u.takeRight=Kc,u.takeRightWhile=zc,u.takeWhile=Yc,u.tap=oh,u.throttle=Xh,u.thru=kt,u.toArray=jf,u.toPairs=uo,u.toPairsIn=fo,u.toPath=e_,u.toPlainObject=eo,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=ep,u.updateWith=tp,u.values=Be,u.valuesIn=rp,u.without=jc,u.words=lo,u.wrap=Qh,u.xor=nh,u.xorBy=eh,u.xorWith=th,u.zip=rh,u.zipObject=ih,u.zipObjectDeep=uh,u.zipWith=fh,u.entries=uo,u.entriesIn=fo,u.extend=to,u.extendWith=ur,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=eg,u.cloneWith=jh,u.conformsTo=tg,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=qg,u.isArguments=we,u.isArray=T,u.isArrayBuffer=ug,u.isArrayLike=on,u.isArrayLikeObject=K,u.isBoolean=fg,u.isBuffer=oe,u.isDate=og,u.isElement=ag,u.isEmpty=lg,u.isEqual=sg,u.isEqualWith=cg,u.isError=yi,u.isFinite=hg,u.isFunction=Zn,u.isInteger=Jf,u.isLength=rr,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=$,u.isObjectLike=q,u.isPlainObject=lt,u.isRegExp=mi,u.isSafeInteger=xg,u.isSet=kf,u.isString=ir,u.isSymbol=pn,u.isTypedArray=Ue,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=qp,u.noop=Li,u.now=nr,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=Xn,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=t_,u.upperCase=Dp,u.upperFirst=Ri,u.each=Gf,u.eachRight=Hf,u.first=Uf,Si(u,function(){var n={};return Wn(u,function(e,t){P.call(u.prototype,t)||(n[t]=e)}),n}(),{chain:!1}),u.VERSION=H,wn(["bind","bindKey","curry","curryRight","partial","partialRight"],function(n){u[n].placeholder=u}),wn(["drop","take"],function(n,e){b.prototype[n]=function(t){t=t===o?1:Z(S(t),0);var r=this.__filtered__&&!e?new b(this):this.clone();return r.__filtered__?r.__takeCount__=k(t,r.__takeCount__):r.__views__.push({size:k(t,Fn),type:n+(r.__dir__<0?"Right":"")}),r},b.prototype[n+"Right"]=function(t){return this.reverse()[n](t).reverse()}}),wn(["filter","map","takeWhile"],function(n,e){var t=e+1,r=t==Wi||t==Lo;b.prototype[n]=function(i){var f=this.clone();return f.__iteratees__.push({iteratee:m(i,3),type:t}),f.__filtered__=f.__filtered__||r,f}}),wn(["head","last"],function(n,e){var t="take"+(e?"Right":"");b.prototype[n]=function(){return this[t](1).value()[0]}}),wn(["initial","tail"],function(n,e){var t="drop"+(e?"":"Right");b.prototype[n]=function(){return this.__filtered__?new b(this):this[t](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,e){return typeof n=="function"?new b(this):this.map(function(t){return rt(t,n,e)})}),b.prototype.reject=function(n){return this.filter(tr(m(n)))},b.prototype.slice=function(n,e){n=S(n);var t=this;return t.__filtered__&&(n>0||e<0)?new b(t):(n<0?t=t.takeRight(-n):n&&(t=t.drop(n)),e!==o&&(e=S(e),t=e<0?t.dropRight(-e):t.take(e-n)),t)},b.prototype.takeRightWhile=function(n){return this.reverse().takeWhile(n).reverse()},b.prototype.toArray=function(){return this.take(Fn)},Wn(b.prototype,function(n,e){var t=/^(?:filter|find|map|reject)|While$/.test(e),r=/^(?:head|last)$/.test(e),i=u[r?"take"+(e=="last"?"Right":""):e],f=r||/^find/.test(e);i&&(u.prototype[e]=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,ne([O],l));return r&&v?D[0]:D};_&&t&&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:kt,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 e=Rt[n],t=/^(?: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 e.apply(T(f)?f:[],i)}return this[t](function(a){return e.apply(T(a)?a:[],i)})}}),Wn(b.prototype,function(n,e){var t=u[e];if(t){var r=t.name+"";P.call(be,r)||(be[r]=[]),be[r].push({name:e,func:t})}}),be[zt(o,me).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,Qe&&(u.prototype[Qe]=hh),u},Le=sl();se?((se.exports=Le)._=Le,Tr._=Le):Q._=Le}).call(P_)}(st,st.exports)),st.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)}},ae=xo.promisify(yo.exec),H_=async w=>{try{return await ae("git rev-parse --is-inside-work-tree",{cwd:w}),!0}catch{}return!1},$_=async w=>{try{return await ae("hg --cwd . root",{cwd:w}),!0}catch{}return!1},q_=async w=>{try{return await ae("git config init.defaultBranch",{cwd:w}),!0}catch{}return!1},K_=async w=>{try{if(await ae("git --version",{cwd:w}),await H_(w)||await $_(w))return!1;await ae("git init",{cwd:w});try{return await q_(w)||await ae("git checkout -b main",{cwd:w}),await ae("git add -A",{cwd:w}),await ae('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:H,appDirectory:B,appDescription:Dn}=await this.getAppInfos(R);await this.validateDirectory(B),this.logCreationInfo({appDirectory:B,appName:o}),await J.ensureDir(B),await T_({appName:o,appDisplayName:H,appDescription:Dn,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:H,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:""}]),en=(o??R).trim(),or=H.trim(),Me=B.trim(),ar=R?go.join(_o,R):go.join(_o,I_.default(en));return{appName:en,appDisplayName:or,appDirectory:ar,appDescription:Me}}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.4.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))}
|
|
131
|
+
}`;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,e,t){if(n=W(n),n&&(t||e===o))return wu(n);if(!n||!(e=gn(e)))return n;var r=Ln(n),i=Ln(e),f=xu(r,i),a=yu(r,i)+1;return fe(r,f,a).join("")}function Lp(n,e,t){if(n=W(n),n&&(t||e===o))return n.slice(0,Au(n)+1);if(!n||!(e=gn(e)))return n;var r=Ln(n),i=yu(r,Ln(e))+1;return fe(r,0,i).join("")}function Cp(n,e,t){if(n=W(n),n&&(t||e===o))return n.replace(yr,"");if(!n||!(e=gn(e)))return n;var r=Ln(n),i=xu(r,Ln(e));return fe(r,i).join("")}function Op(n,e){var t=Io,r=Ro;if($(e)){var i="separator"in e?e.separator:i;t="length"in e?S(e.length):t,r="omission"in e?gn(e.omission):r}n=W(n);var f=n.length;if(Te(n)){var a=Ln(n);f=a.length}if(t>=f)return n;var l=t-Se(r);if(l<1)return r;var c=a?fe(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&&$o.test(n)?n.replace(Bi,fl):n}var Dp=We(function(n,e,t){return n+(t?" ":"")+e.toUpperCase()}),Ri=cf("toUpperCase");function lo(n,e,t){return n=W(n),e=t?o:e,e===o?el(n)?ll(n):Ya(n):n.match(e)||[]}var so=C(function(n,e){try{return cn(n,o,e)}catch(t){return yi(t)?t:new E(t)}}),Fp=zn(function(n,e){return wn(e,function(t){t=Un(t),qn(n,t,wi(n[t],n))}),n});function Wp(n){var e=n==null?0:n.length,t=m();return n=e?G(n,function(r){if(typeof r[1]!="function")throw new xn(en);return[t(r[0]),r[1]]}):[],C(function(r){for(var i=-1;++i<e;){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,e){return n==null||n!==n?e:n}var Bp=gf(),Mp=gf(!0);function ln(n){return n}function Ti(n){return $u(typeof n=="function"?n:mn(n,Vn))}function Np(n){return Ku(mn(n,Vn))}function Gp(n,e){return zu(n,mn(e,Vn))}var Hp=C(function(n,e){return function(t){return rt(t,n,e)}}),$p=C(function(n,e){return function(t){return rt(n,t,e)}});function Si(n,e,t){var r=X(e),i=Gt(e,r);t==null&&!($(e)&&(i.length||!r.length))&&(t=e,e=n,n=this,i=Gt(e,X(e)));var f=!($(t)&&"chain"in t)||!!t.chain,a=Zn(n);return wn(i,function(l){var c=e[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,ne([this.value()],arguments))})}),n}function qp(){return Q._===this&&(Q._=_l),this}function Li(){}function Kp(n){return n=S(n),C(function(e){return Yu(e,n)})}var zp=ui(G),Yp=ui(gu),Zp=ui(Or);function co(n){return hi(n)?br(Un(n)):Is(n)}function Xp(n){return function(e){return n==null?o:_e(n,e)}}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,e){if(n=S(n),n<1||n>kn)return[];var t=Fn,r=k(n,Fn);e=m(e),n-=Fn;for(var i=Wr(r,e);++t<n;)e(t);return i}function e_(n){return T(n)?G(n,Un):pn(n)?[n]:fn(bf(W(n)))}function t_(n){var e=++gl;return W(n)+e}var r_=Yt(function(n,e){return n+e},0),i_=fi("ceil"),u_=Yt(function(n,e){return n/e},1),f_=fi("floor");function o_(n){return n&&n.length?Nt(n,ln,zr):o}function a_(n,e){return n&&n.length?Nt(n,m(e,2),zr):o}function l_(n){return du(n,ln)}function s_(n,e){return du(n,m(e,2))}function c_(n){return n&&n.length?Nt(n,ln,Jr):o}function h_(n,e){return n&&n.length?Nt(n,m(e,2),Jr):o}var g_=Yt(function(n,e){return n*e},1),p_=fi("round"),__=Yt(function(n,e){return n-e},0);function d_(n){return n&&n.length?Fr(n,ln):0}function v_(n,e){return n&&n.length?Fr(n,m(e,2)):0}return u.after=Nh,u.ary=$f,u.assign=Tg,u.assignIn=to,u.assignInWith=ur,u.assignWith=Sg,u.at=Lg,u.before=qf,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=$h,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=$g,u.invokeMap=Th,u.iteratee=Ti,u.keyBy=Sh,u.keys=X,u.keysIn=an,u.map=jt,u.mapKeys=Kg,u.mapValues=zg,u.matches=Np,u.matchesProperty=Gp,u.memoize=er,u.merge=Yg,u.mergeWith=ro,u.method=Hp,u.methodOf=$p,u.mixin=Si,u.negate=tr,u.nthArg=Kp,u.omit=Zg,u.omitBy=Xg,u.once=qh,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=$c,u.take=qc,u.takeRight=Kc,u.takeRightWhile=zc,u.takeWhile=Yc,u.tap=oh,u.throttle=Xh,u.thru=kt,u.toArray=jf,u.toPairs=uo,u.toPairsIn=fo,u.toPath=e_,u.toPlainObject=eo,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=ep,u.updateWith=tp,u.values=Be,u.valuesIn=rp,u.without=jc,u.words=lo,u.wrap=Qh,u.xor=nh,u.xorBy=eh,u.xorWith=th,u.zip=rh,u.zipObject=ih,u.zipObjectDeep=uh,u.zipWith=fh,u.entries=uo,u.entriesIn=fo,u.extend=to,u.extendWith=ur,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=eg,u.cloneWith=jh,u.conformsTo=tg,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=qg,u.isArguments=we,u.isArray=T,u.isArrayBuffer=ug,u.isArrayLike=on,u.isArrayLikeObject=K,u.isBoolean=fg,u.isBuffer=oe,u.isDate=og,u.isElement=ag,u.isEmpty=lg,u.isEqual=sg,u.isEqualWith=cg,u.isError=yi,u.isFinite=hg,u.isFunction=Zn,u.isInteger=Jf,u.isLength=rr,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=$,u.isObjectLike=q,u.isPlainObject=lt,u.isRegExp=mi,u.isSafeInteger=xg,u.isSet=kf,u.isString=ir,u.isSymbol=pn,u.isTypedArray=Ue,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=qp,u.noop=Li,u.now=nr,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=Xn,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=t_,u.upperCase=Dp,u.upperFirst=Ri,u.each=Gf,u.eachRight=Hf,u.first=Uf,Si(u,function(){var n={};return Wn(u,function(e,t){P.call(u.prototype,t)||(n[t]=e)}),n}(),{chain:!1}),u.VERSION=H,wn(["bind","bindKey","curry","curryRight","partial","partialRight"],function(n){u[n].placeholder=u}),wn(["drop","take"],function(n,e){b.prototype[n]=function(t){t=t===o?1:Z(S(t),0);var r=this.__filtered__&&!e?new b(this):this.clone();return r.__filtered__?r.__takeCount__=k(t,r.__takeCount__):r.__views__.push({size:k(t,Fn),type:n+(r.__dir__<0?"Right":"")}),r},b.prototype[n+"Right"]=function(t){return this.reverse()[n](t).reverse()}}),wn(["filter","map","takeWhile"],function(n,e){var t=e+1,r=t==Wi||t==Lo;b.prototype[n]=function(i){var f=this.clone();return f.__iteratees__.push({iteratee:m(i,3),type:t}),f.__filtered__=f.__filtered__||r,f}}),wn(["head","last"],function(n,e){var t="take"+(e?"Right":"");b.prototype[n]=function(){return this[t](1).value()[0]}}),wn(["initial","tail"],function(n,e){var t="drop"+(e?"":"Right");b.prototype[n]=function(){return this.__filtered__?new b(this):this[t](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,e){return typeof n=="function"?new b(this):this.map(function(t){return rt(t,n,e)})}),b.prototype.reject=function(n){return this.filter(tr(m(n)))},b.prototype.slice=function(n,e){n=S(n);var t=this;return t.__filtered__&&(n>0||e<0)?new b(t):(n<0?t=t.takeRight(-n):n&&(t=t.drop(n)),e!==o&&(e=S(e),t=e<0?t.dropRight(-e):t.take(e-n)),t)},b.prototype.takeRightWhile=function(n){return this.reverse().takeWhile(n).reverse()},b.prototype.toArray=function(){return this.take(Fn)},Wn(b.prototype,function(n,e){var t=/^(?:filter|find|map|reject)|While$/.test(e),r=/^(?:head|last)$/.test(e),i=u[r?"take"+(e=="last"?"Right":""):e],f=r||/^find/.test(e);i&&(u.prototype[e]=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,ne([O],l));return r&&v?D[0]:D};_&&t&&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:kt,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 e=Rt[n],t=/^(?: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 e.apply(T(f)?f:[],i)}return this[t](function(a){return e.apply(T(a)?a:[],i)})}}),Wn(b.prototype,function(n,e){var t=u[e];if(t){var r=t.name+"";P.call(be,r)||(be[r]=[]),be[r].push({name:e,func:t})}}),be[zt(o,me).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,Qe&&(u.prototype[Qe]=hh),u},Le=sl();se?((se.exports=Le)._=Le,Tr._=Le):Q._=Le}).call(P_)}(st,st.exports)),st.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)}},ae=xo.promisify(yo.exec),H_=async w=>{try{return await ae("git rev-parse --is-inside-work-tree",{cwd:w}),!0}catch{}return!1},$_=async w=>{try{return await ae("hg --cwd . root",{cwd:w}),!0}catch{}return!1},q_=async w=>{try{return await ae("git config init.defaultBranch",{cwd:w}),!0}catch{}return!1},K_=async w=>{try{if(await ae("git --version",{cwd:w}),await H_(w)||await $_(w))return!1;await ae("git init",{cwd:w});try{return await q_(w)||await ae("git checkout -b main",{cwd:w}),await ae("git add -A",{cwd:w}),await ae('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:H,appDirectory:B,appDescription:Dn}=await this.getAppInfos(R);await this.validateDirectory(B),this.logCreationInfo({appDirectory:B,appName:o}),await J.ensureDir(B),await T_({appName:o,appDisplayName:H,appDescription:Dn,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:H,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:""}]),en=(o??R).trim(),or=H.trim(),Me=B.trim(),ar=R?go.join(_o,R):go.join(_o,I_.default(en));return{appName:en,appDisplayName:or,appDirectory:ar,appDescription:Me}}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.4.3",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
|
@@ -207,7 +207,7 @@ export default defineApplication({
|
|
|
207
207
|
"lint:fix": "eslint --fix"
|
|
208
208
|
},
|
|
209
209
|
dependencies: {
|
|
210
|
-
"twenty-sdk": "0.4.
|
|
210
|
+
"twenty-sdk": "0.4.3"
|
|
211
211
|
},
|
|
212
212
|
devDependencies: {
|
|
213
213
|
typescript: "^5.9.3",
|
|
@@ -4005,7 +4005,7 @@ class G_ {
|
|
|
4005
4005
|
console.log(ln.green("✅ Application created!")), console.log(""), console.log(ln.blue("Next steps:")), console.log(ln.gray(` cd ${o}`)), console.log(ln.gray(" corepack enable # if you don't use yarn@4")), console.log(ln.gray(" yarn install # if you don't use yarn@4")), console.log(ln.gray(" yarn auth:login # Authenticate with Twenty")), console.log(ln.gray(" yarn app:dev # Start dev mode"));
|
|
4006
4006
|
}
|
|
4007
4007
|
}
|
|
4008
|
-
const H_ = "create-twenty-app", $_ = "0.4.
|
|
4008
|
+
const H_ = "create-twenty-app", $_ = "0.4.3", _o = {
|
|
4009
4009
|
name: H_,
|
|
4010
4010
|
version: $_
|
|
4011
4011
|
}, xo = new __(_o.name).description("CLI tool to initialize a new Twenty application").version(
|