twenty-client-sdk 2.35.0 → 2.37.0
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/{application-jIH-TLc8.js → application-B8_Undo1.js} +1 -1
- package/dist/{application-uUo_d2Xg.mjs → application-yzkKx8Nd.mjs} +1 -1
- package/dist/core/generated/index.d.ts +2 -10
- package/dist/generate/twenty-client-template.d.ts +3 -3
- package/dist/generate.cjs +12 -18
- package/dist/generate.mjs +3 -3
- package/dist/metadata/generated/index.d.ts +2 -2
- package/dist/metadata/generated/schema.d.ts +330 -165
- package/dist/metadata/generated/types.d.ts +136 -64
- package/dist/metadata.cjs +2 -2
- package/dist/metadata.mjs +1332 -1228
- package/dist/rest/index.d.ts +2 -2
- package/dist/rest.cjs +1 -1
- package/dist/rest.mjs +11 -11
- package/dist/shared/twenty-client-options.type.d.ts +9 -0
- package/dist/shared/twenty-client-run-as.type.d.ts +1 -0
- package/package.json +1 -1
|
@@ -17,4 +17,4 @@ var e=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{1
|
|
|
17
17
|
newResult[${r}] = ${n}.value;
|
|
18
18
|
}
|
|
19
19
|
|
|
20
|
-
`)}t.write(`payload.value = newResult;`),t.write(`return payload;`);let s=t.compile();return(t,n)=>s(e,t,n)},a,o=w,s=!_.jitless,c=s&&ue.value,l=t.catchall,u;e._zod.parse=(d,f)=>{u??=r.value;let p=d.value;return o(p)?s&&c&&f?.async===!1&&f.jitless!==!0?(a||=i(t.shape),d=a(d,f),l?tn([],p,d,f,u,e):d):n(d,f):(d.issues.push({expected:`object`,code:`invalid_type`,input:p,inst:e}),d)}});function an(e,t,n,r){for(let n of e)if(n.issues.length===0)return t.value=n.value,t;let i=e.filter(e=>!k(e));return i.length===1?(t.value=i[0].value,i[0]):(t.issues.push({code:`invalid_union`,input:t.value,inst:n,errors:e.map(e=>e.issues.map(e=>j(e,r,v())))}),t)}var on=h(`$ZodUnion`,(e,t)=>{z.init(e,t),x(e._zod,`optin`,()=>t.options.some(e=>e._zod.optin===`optional`)?`optional`:void 0),x(e._zod,`optout`,()=>t.options.some(e=>e._zod.optout===`optional`)?`optional`:void 0),x(e._zod,`values`,()=>{if(t.options.every(e=>e._zod.values))return new Set(t.options.flatMap(e=>Array.from(e._zod.values)))}),x(e._zod,`pattern`,()=>{if(t.options.every(e=>e._zod.pattern)){let e=t.options.map(e=>e._zod.pattern);return RegExp(`^(${e.map(e=>oe(e.source)).join(`|`)})$`)}});let n=t.options.length===1,r=t.options[0]._zod.run;e._zod.parse=(i,a)=>{if(n)return r(i,a);let o=!1,s=[];for(let e of t.options){let t=e._zod.run({value:i.value,issues:[]},a);if(t instanceof Promise)s.push(t),o=!0;else{if(t.issues.length===0)return t;s.push(t)}}return o?Promise.all(s).then(t=>an(t,i,e,a)):an(s,i,e,a)}}),sn=h(`$ZodIntersection`,(e,t)=>{z.init(e,t),e._zod.parse=(e,n)=>{let r=e.value,i=t.left._zod.run({value:r,issues:[]},n),a=t.right._zod.run({value:r,issues:[]},n);return i instanceof Promise||a instanceof Promise?Promise.all([i,a]).then(([t,n])=>cn(e,t,n)):cn(e,i,a)}});function U(e,t){if(e===t||e instanceof Date&&t instanceof Date&&+e==+t)return{valid:!0,data:e};if(T(e)&&T(t)){let n=Object.keys(t),r=Object.keys(e).filter(e=>n.indexOf(e)!==-1),i={...e,...t};for(let n of r){let r=U(e[n],t[n]);if(!r.valid)return{valid:!1,mergeErrorPath:[n,...r.mergeErrorPath]};i[n]=r.data}return{valid:!0,data:i}}if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return{valid:!1,mergeErrorPath:[]};let n=[];for(let r=0;r<e.length;r++){let i=e[r],a=t[r],o=U(i,a);if(!o.valid)return{valid:!1,mergeErrorPath:[r,...o.mergeErrorPath]};n.push(o.data)}return{valid:!0,data:n}}return{valid:!1,mergeErrorPath:[]}}function cn(e,t,n){if(t.issues.length&&e.issues.push(...t.issues),n.issues.length&&e.issues.push(...n.issues),k(e))return e;let r=U(t.value,n.value);if(!r.valid)throw Error(`Unmergable intersection. Error path: ${JSON.stringify(r.mergeErrorPath)}`);return e.value=r.data,e}var ln=h(`$ZodEnum`,(e,t)=>{z.init(e,t);let n=ie(t.entries),r=new Set(n);e._zod.values=r,e._zod.pattern=RegExp(`^(${n.filter(e=>fe.has(typeof e)).map(e=>typeof e==`string`?E(e):e.toString()).join(`|`)})$`),e._zod.parse=(t,i)=>{let a=t.value;return r.has(a)||t.issues.push({code:`invalid_value`,values:n,input:a,inst:e}),t}}),un=h(`$ZodTransform`,(e,t)=>{z.init(e,t),e._zod.parse=(n,r)=>{if(r.direction===`backward`)throw new re(e.constructor.name);let i=t.transform(n.value,n);if(r.async)return(i instanceof Promise?i:Promise.resolve(i)).then(e=>(n.value=e,n));if(i instanceof Promise)throw new g;return n.value=i,n}});function dn(e,t){return e.issues.length&&t===void 0?{issues:[],value:void 0}:e}var fn=h(`$ZodOptional`,(e,t)=>{z.init(e,t),e._zod.optin=`optional`,e._zod.optout=`optional`,x(e._zod,`values`,()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,void 0]):void 0),x(e._zod,`pattern`,()=>{let e=t.innerType._zod.pattern;return e?RegExp(`^(${oe(e.source)})?$`):void 0}),e._zod.parse=(e,n)=>{if(t.innerType._zod.optin===`optional`){let r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(t=>dn(t,e.value)):dn(r,e.value)}return e.value===void 0?e:t.innerType._zod.run(e,n)}}),pn=h(`$ZodNullable`,(e,t)=>{z.init(e,t),x(e._zod,`optin`,()=>t.innerType._zod.optin),x(e._zod,`optout`,()=>t.innerType._zod.optout),x(e._zod,`pattern`,()=>{let e=t.innerType._zod.pattern;return e?RegExp(`^(${oe(e.source)}|null)$`):void 0}),x(e._zod,`values`,()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,null]):void 0),e._zod.parse=(e,n)=>e.value===null?e:t.innerType._zod.run(e,n)}),mn=h(`$ZodDefault`,(e,t)=>{z.init(e,t),e._zod.optin=`optional`,x(e._zod,`values`,()=>t.innerType._zod.values),e._zod.parse=(e,n)=>{if(n.direction===`backward`)return t.innerType._zod.run(e,n);if(e.value===void 0)return e.value=t.defaultValue,e;let r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(e=>hn(e,t)):hn(r,t)}});function hn(e,t){return e.value===void 0&&(e.value=t.defaultValue),e}var gn=h(`$ZodPrefault`,(e,t)=>{z.init(e,t),e._zod.optin=`optional`,x(e._zod,`values`,()=>t.innerType._zod.values),e._zod.parse=(e,n)=>(n.direction===`backward`||e.value===void 0&&(e.value=t.defaultValue),t.innerType._zod.run(e,n))}),_n=h(`$ZodNonOptional`,(e,t)=>{z.init(e,t),x(e._zod,`values`,()=>{let e=t.innerType._zod.values;return e?new Set([...e].filter(e=>e!==void 0)):void 0}),e._zod.parse=(n,r)=>{let i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(t=>vn(t,e)):vn(i,e)}});function vn(e,t){return!e.issues.length&&e.value===void 0&&e.issues.push({code:`invalid_type`,expected:`nonoptional`,input:e.value,inst:t}),e}var yn=h(`$ZodCatch`,(e,t)=>{z.init(e,t),x(e._zod,`optin`,()=>t.innerType._zod.optin),x(e._zod,`optout`,()=>t.innerType._zod.optout),x(e._zod,`values`,()=>t.innerType._zod.values),e._zod.parse=(e,n)=>{if(n.direction===`backward`)return t.innerType._zod.run(e,n);let r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(r=>(e.value=r.value,r.issues.length&&(e.value=t.catchValue({...e,error:{issues:r.issues.map(e=>j(e,n,v()))},input:e.value}),e.issues=[]),e)):(e.value=r.value,r.issues.length&&(e.value=t.catchValue({...e,error:{issues:r.issues.map(e=>j(e,n,v()))},input:e.value}),e.issues=[]),e)}}),bn=h(`$ZodPipe`,(e,t)=>{z.init(e,t),x(e._zod,`values`,()=>t.in._zod.values),x(e._zod,`optin`,()=>t.in._zod.optin),x(e._zod,`optout`,()=>t.out._zod.optout),x(e._zod,`propValues`,()=>t.in._zod.propValues),e._zod.parse=(e,n)=>{if(n.direction===`backward`){let r=t.out._zod.run(e,n);return r instanceof Promise?r.then(e=>W(e,t.in,n)):W(r,t.in,n)}let r=t.in._zod.run(e,n);return r instanceof Promise?r.then(e=>W(e,t.out,n)):W(r,t.out,n)}});function W(e,t,n){return e.issues.length?(e.aborted=!0,e):t._zod.run({value:e.value,issues:e.issues},n)}var xn=h(`$ZodReadonly`,(e,t)=>{z.init(e,t),x(e._zod,`propValues`,()=>t.innerType._zod.propValues),x(e._zod,`values`,()=>t.innerType._zod.values),x(e._zod,`optin`,()=>t.innerType._zod.optin),x(e._zod,`optout`,()=>t.innerType._zod.optout),e._zod.parse=(e,n)=>{if(n.direction===`backward`)return t.innerType._zod.run(e,n);let r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(Sn):Sn(r)}});function Sn(e){return e.value=Object.freeze(e.value),e}var Cn=h(`$ZodCustom`,(e,t)=>{L.init(e,t),z.init(e,t),e._zod.parse=(e,t)=>e,e._zod.check=n=>{let r=n.value,i=t.fn(r);if(i instanceof Promise)return i.then(t=>wn(t,n,r,e));wn(i,n,r,e)}});function wn(e,t,n,r){if(!e){let e={code:`custom`,input:n,inst:r,path:[...r._zod.def.path??[]],continue:!r._zod.def.abort};r._zod.def.params&&(e.params=r._zod.def.params),t.issues.push(M(e))}}var Tn=class{constructor(){this._map=new WeakMap,this._idmap=new Map}add(e,...t){let n=t[0];if(this._map.set(e,n),n&&typeof n==`object`&&`id`in n){if(this._idmap.has(n.id))throw Error(`ID ${n.id} already exists in the registry`);this._idmap.set(n.id,e)}return this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(e){let t=this._map.get(e);return t&&typeof t==`object`&&`id`in t&&this._idmap.delete(t.id),this._map.delete(e),this}get(e){let t=e._zod.parent;if(t){let n={...this.get(t)??{}};delete n.id;let r={...n,...this._map.get(e)};return Object.keys(r).length?r:void 0}return this._map.get(e)}has(e){return this._map.has(e)}};function En(){return new Tn}var G=En();function Dn(e,t){return new e({type:`string`,...O(t)})}function On(e,t){return new e({type:`string`,format:`email`,check:`string_format`,abort:!1,...O(t)})}function kn(e,t){return new e({type:`string`,format:`guid`,check:`string_format`,abort:!1,...O(t)})}function An(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,...O(t)})}function jn(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,version:`v4`,...O(t)})}function Mn(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,version:`v6`,...O(t)})}function Nn(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,version:`v7`,...O(t)})}function Pn(e,t){return new e({type:`string`,format:`url`,check:`string_format`,abort:!1,...O(t)})}function Fn(e,t){return new e({type:`string`,format:`emoji`,check:`string_format`,abort:!1,...O(t)})}function In(e,t){return new e({type:`string`,format:`nanoid`,check:`string_format`,abort:!1,...O(t)})}function Ln(e,t){return new e({type:`string`,format:`cuid`,check:`string_format`,abort:!1,...O(t)})}function Rn(e,t){return new e({type:`string`,format:`cuid2`,check:`string_format`,abort:!1,...O(t)})}function zn(e,t){return new e({type:`string`,format:`ulid`,check:`string_format`,abort:!1,...O(t)})}function Bn(e,t){return new e({type:`string`,format:`xid`,check:`string_format`,abort:!1,...O(t)})}function Vn(e,t){return new e({type:`string`,format:`ksuid`,check:`string_format`,abort:!1,...O(t)})}function Hn(e,t){return new e({type:`string`,format:`ipv4`,check:`string_format`,abort:!1,...O(t)})}function Un(e,t){return new e({type:`string`,format:`ipv6`,check:`string_format`,abort:!1,...O(t)})}function Wn(e,t){return new e({type:`string`,format:`cidrv4`,check:`string_format`,abort:!1,...O(t)})}function Gn(e,t){return new e({type:`string`,format:`cidrv6`,check:`string_format`,abort:!1,...O(t)})}function Kn(e,t){return new e({type:`string`,format:`base64`,check:`string_format`,abort:!1,...O(t)})}function qn(e,t){return new e({type:`string`,format:`base64url`,check:`string_format`,abort:!1,...O(t)})}function Jn(e,t){return new e({type:`string`,format:`e164`,check:`string_format`,abort:!1,...O(t)})}function Yn(e,t){return new e({type:`string`,format:`jwt`,check:`string_format`,abort:!1,...O(t)})}function Xn(e,t){return new e({type:`string`,format:`datetime`,check:`string_format`,offset:!1,local:!1,precision:null,...O(t)})}function Zn(e,t){return new e({type:`string`,format:`date`,check:`string_format`,...O(t)})}function Qn(e,t){return new e({type:`string`,format:`time`,check:`string_format`,precision:null,...O(t)})}function $n(e,t){return new e({type:`string`,format:`duration`,check:`string_format`,...O(t)})}function er(e){return new e({type:`unknown`})}function tr(e,t){return new e({type:`never`,...O(t)})}function nr(e,t){return new ft({check:`max_length`,...O(t),maximum:e})}function K(e,t){return new pt({check:`min_length`,...O(t),minimum:e})}function rr(e,t){return new mt({check:`length_equals`,...O(t),length:e})}function ir(e,t){return new ht({check:`string_format`,format:`regex`,...O(t),pattern:e})}function ar(e){return new gt({check:`string_format`,format:`lowercase`,...O(e)})}function or(e){return new _t({check:`string_format`,format:`uppercase`,...O(e)})}function sr(e,t){return new vt({check:`string_format`,format:`includes`,...O(t),includes:e})}function cr(e,t){return new yt({check:`string_format`,format:`starts_with`,...O(t),prefix:e})}function lr(e,t){return new bt({check:`string_format`,format:`ends_with`,...O(t),suffix:e})}function q(e){return new xt({check:`overwrite`,tx:e})}function ur(e){return q(t=>t.normalize(e))}function dr(){return q(e=>e.trim())}function fr(){return q(e=>e.toLowerCase())}function pr(){return q(e=>e.toUpperCase())}function mr(e,t,n){return new e({type:`array`,element:t,...O(n)})}function hr(e,t,n){return new e({type:`custom`,check:`custom`,fn:t,...O(n)})}function gr(e){let t=_r(n=>(n.addIssue=e=>{if(typeof e==`string`)n.issues.push(M(e,n.value,t._zod.def));else{let r=e;r.fatal&&(r.continue=!1),r.code??=`custom`,r.input??=n.value,r.inst??=t,r.continue??=!t._zod.def.abort,n.issues.push(M(r))}},e(n.value,n)));return t}function _r(e,t){let n=new L({check:`custom`,...O(t)});return n._zod.check=e,n}var vr=h(`ZodISODateTime`,(e,t)=>{Ft.init(e,t),X.init(e,t)});function yr(e){return Xn(vr,e)}var br=h(`ZodISODate`,(e,t)=>{It.init(e,t),X.init(e,t)});function xr(e){return Zn(br,e)}var Sr=h(`ZodISOTime`,(e,t)=>{Lt.init(e,t),X.init(e,t)});function Cr(e){return Qn(Sr,e)}var wr=h(`ZodISODuration`,(e,t)=>{Rt.init(e,t),X.init(e,t)});function Tr(e){return $n(wr,e)}var Er=(e,t)=>{we.init(e,t),e.name=`ZodError`,Object.defineProperties(e,{format:{value:t=>De(e,t)},flatten:{value:t=>Ee(e,t)},addIssue:{value:t=>{e.issues.push(t),e.message=JSON.stringify(e.issues,y,2)}},addIssues:{value:t=>{e.issues.push(...t),e.message=JSON.stringify(e.issues,y,2)}},isEmpty:{get(){return e.issues.length===0}}})};h(`ZodError`,Er);var J=h(`ZodError`,Er,{Parent:Error}),Dr=N(J),Or=P(J),kr=F(J),Ar=I(J),jr=Ae(J),Mr=je(J),Nr=Me(J),Pr=Ne(J),Fr=Pe(J),Ir=Fe(J),Lr=Ie(J),Rr=Le(J),Y=h(`ZodType`,(e,t)=>(z.init(e,t),e.def=t,e.type=t.type,Object.defineProperty(e,"_def",{value:t}),e.check=(...n)=>e.clone(C(t,{checks:[...t.checks??[],...n.map(e=>typeof e==`function`?{_zod:{check:e,def:{check:`custom`},onattach:[]}}:e)]})),e.clone=(t,n)=>D(e,t,n),e.brand=()=>e,e.register=((t,n)=>(t.add(e,n),e)),e.parse=(t,n)=>Dr(e,t,n,{callee:e.parse}),e.safeParse=(t,n)=>kr(e,t,n),e.parseAsync=async(t,n)=>Or(e,t,n,{callee:e.parseAsync}),e.safeParseAsync=async(t,n)=>Ar(e,t,n),e.spa=e.safeParseAsync,e.encode=(t,n)=>jr(e,t,n),e.decode=(t,n)=>Mr(e,t,n),e.encodeAsync=async(t,n)=>Nr(e,t,n),e.decodeAsync=async(t,n)=>Pr(e,t,n),e.safeEncode=(t,n)=>Fr(e,t,n),e.safeDecode=(t,n)=>Ir(e,t,n),e.safeEncodeAsync=async(t,n)=>Lr(e,t,n),e.safeDecodeAsync=async(t,n)=>Rr(e,t,n),e.refine=(t,n)=>e.check(zi(t,n)),e.superRefine=t=>e.check(Bi(t)),e.overwrite=t=>e.check(q(t)),e.optional=()=>Ci(e),e.nullable=()=>Ti(e),e.nullish=()=>Ci(Ti(e)),e.nonoptional=t=>ji(e,t),e.array=()=>di(e),e.or=t=>hi([e,t]),e.and=t=>_i(e,t),e.transform=t=>Fi(e,xi(t)),e.default=t=>Di(e,t),e.prefault=t=>ki(e,t),e.catch=t=>Ni(e,t),e.pipe=t=>Fi(e,t),e.readonly=()=>Li(e),e.describe=t=>{let n=e.clone();return G.add(n,{description:t}),n},Object.defineProperty(e,"description",{get(){return G.get(e)?.description},configurable:!0}),e.meta=(...t)=>{if(t.length===0)return G.get(e);let n=e.clone();return G.add(n,t[0]),n},e.isOptional=()=>e.safeParse(void 0).success,e.isNullable=()=>e.safeParse(null).success,e)),zr=h(`_ZodString`,(e,t)=>{B.init(e,t),Y.init(e,t);let n=e._zod.bag;e.format=n.format??null,e.minLength=n.minimum??null,e.maxLength=n.maximum??null,e.regex=(...t)=>e.check(ir(...t)),e.includes=(...t)=>e.check(sr(...t)),e.startsWith=(...t)=>e.check(cr(...t)),e.endsWith=(...t)=>e.check(lr(...t)),e.min=(...t)=>e.check(K(...t)),e.max=(...t)=>e.check(nr(...t)),e.length=(...t)=>e.check(rr(...t)),e.nonempty=(...t)=>e.check(K(1,...t)),e.lowercase=t=>e.check(ar(t)),e.uppercase=t=>e.check(or(t)),e.trim=()=>e.check(dr()),e.normalize=(...t)=>e.check(ur(...t)),e.toLowerCase=()=>e.check(fr()),e.toUpperCase=()=>e.check(pr())}),Br=h(`ZodString`,(e,t)=>{B.init(e,t),zr.init(e,t),e.email=t=>e.check(On(Hr,t)),e.url=t=>e.check(Pn(Wr,t)),e.jwt=t=>e.check(Yn(ai,t)),e.emoji=t=>e.check(Fn(Gr,t)),e.guid=t=>e.check(kn(Ur,t)),e.uuid=t=>e.check(An(Z,t)),e.uuidv4=t=>e.check(jn(Z,t)),e.uuidv6=t=>e.check(Mn(Z,t)),e.uuidv7=t=>e.check(Nn(Z,t)),e.nanoid=t=>e.check(In(Kr,t)),e.guid=t=>e.check(kn(Ur,t)),e.cuid=t=>e.check(Ln(qr,t)),e.cuid2=t=>e.check(Rn(Jr,t)),e.ulid=t=>e.check(zn(Yr,t)),e.base64=t=>e.check(Kn(ni,t)),e.base64url=t=>e.check(qn(ri,t)),e.xid=t=>e.check(Bn(Xr,t)),e.ksuid=t=>e.check(Vn(Zr,t)),e.ipv4=t=>e.check(Hn(Qr,t)),e.ipv6=t=>e.check(Un($r,t)),e.cidrv4=t=>e.check(Wn(ei,t)),e.cidrv6=t=>e.check(Gn(ti,t)),e.e164=t=>e.check(Jn(ii,t)),e.datetime=t=>e.check(yr(t)),e.date=t=>e.check(xr(t)),e.time=t=>e.check(Cr(t)),e.duration=t=>e.check(Tr(t))});function Vr(e){return Dn(Br,e)}var X=h(`ZodStringFormat`,(e,t)=>{V.init(e,t),zr.init(e,t)}),Hr=h(`ZodEmail`,(e,t)=>{Et.init(e,t),X.init(e,t)}),Ur=h(`ZodGUID`,(e,t)=>{wt.init(e,t),X.init(e,t)}),Z=h(`ZodUUID`,(e,t)=>{Tt.init(e,t),X.init(e,t)}),Wr=h(`ZodURL`,(e,t)=>{Dt.init(e,t),X.init(e,t)}),Gr=h(`ZodEmoji`,(e,t)=>{Ot.init(e,t),X.init(e,t)}),Kr=h(`ZodNanoID`,(e,t)=>{kt.init(e,t),X.init(e,t)}),qr=h(`ZodCUID`,(e,t)=>{At.init(e,t),X.init(e,t)}),Jr=h(`ZodCUID2`,(e,t)=>{jt.init(e,t),X.init(e,t)}),Yr=h(`ZodULID`,(e,t)=>{Mt.init(e,t),X.init(e,t)}),Xr=h(`ZodXID`,(e,t)=>{Nt.init(e,t),X.init(e,t)}),Zr=h(`ZodKSUID`,(e,t)=>{Pt.init(e,t),X.init(e,t)}),Qr=h(`ZodIPv4`,(e,t)=>{zt.init(e,t),X.init(e,t)}),$r=h(`ZodIPv6`,(e,t)=>{Bt.init(e,t),X.init(e,t)}),ei=h(`ZodCIDRv4`,(e,t)=>{Vt.init(e,t),X.init(e,t)}),ti=h(`ZodCIDRv6`,(e,t)=>{Ht.init(e,t),X.init(e,t)}),ni=h(`ZodBase64`,(e,t)=>{Wt.init(e,t),X.init(e,t)}),ri=h(`ZodBase64URL`,(e,t)=>{Kt.init(e,t),X.init(e,t)}),ii=h(`ZodE164`,(e,t)=>{qt.init(e,t),X.init(e,t)}),ai=h(`ZodJWT`,(e,t)=>{Yt.init(e,t),X.init(e,t)}),oi=h(`ZodUnknown`,(e,t)=>{Xt.init(e,t),Y.init(e,t)});function si(){return er(oi)}var ci=h(`ZodNever`,(e,t)=>{Zt.init(e,t),Y.init(e,t)});function li(e){return tr(ci,e)}var ui=h(`ZodArray`,(e,t)=>{$t.init(e,t),Y.init(e,t),e.element=t.element,e.min=(t,n)=>e.check(K(t,n)),e.nonempty=t=>e.check(K(1,t)),e.max=(t,n)=>e.check(nr(t,n)),e.length=(t,n)=>e.check(rr(t,n)),e.unwrap=()=>e.element});function di(e,t){return mr(ui,e,t)}var fi=h(`ZodObject`,(e,t)=>{rn.init(e,t),Y.init(e,t),x(e,`shape`,()=>t.shape),e.keyof=()=>yi(Object.keys(e._zod.def.shape)),e.catchall=t=>e.clone({...e._zod.def,catchall:t}),e.passthrough=()=>e.clone({...e._zod.def,catchall:si()}),e.loose=()=>e.clone({...e._zod.def,catchall:si()}),e.strict=()=>e.clone({...e._zod.def,catchall:li()}),e.strip=()=>e.clone({...e._zod.def,catchall:void 0}),e.extend=t=>ge(e,t),e.safeExtend=t=>_e(e,t),e.merge=t=>ve(e,t),e.pick=t=>me(e,t),e.omit=t=>he(e,t),e.partial=(...t)=>ye(Si,e,t[0]),e.required=(...t)=>be(Ai,e,t[0])});function pi(e,t){return new fi({type:`object`,shape:e??{},...O(t)})}var mi=h(`ZodUnion`,(e,t)=>{on.init(e,t),Y.init(e,t),e.options=t.options});function hi(e,t){return new mi({type:`union`,options:e,...O(t)})}var gi=h(`ZodIntersection`,(e,t)=>{sn.init(e,t),Y.init(e,t)});function _i(e,t){return new gi({type:`intersection`,left:e,right:t})}var vi=h(`ZodEnum`,(e,t)=>{ln.init(e,t),Y.init(e,t),e.enum=t.entries,e.options=Object.values(t.entries);let n=new Set(Object.keys(t.entries));e.extract=(e,r)=>{let i={};for(let r of e)if(n.has(r))i[r]=t.entries[r];else throw Error(`Key ${r} not found in enum`);return new vi({...t,checks:[],...O(r),entries:i})},e.exclude=(e,r)=>{let i={...t.entries};for(let t of e)if(n.has(t))delete i[t];else throw Error(`Key ${t} not found in enum`);return new vi({...t,checks:[],...O(r),entries:i})}});function yi(e,t){return new vi({type:`enum`,entries:Array.isArray(e)?Object.fromEntries(e.map(e=>[e,e])):e,...O(t)})}var bi=h(`ZodTransform`,(e,t)=>{un.init(e,t),Y.init(e,t),e._zod.parse=(n,r)=>{if(r.direction===`backward`)throw new re(e.constructor.name);n.addIssue=r=>{if(typeof r==`string`)n.issues.push(M(r,n.value,t));else{let t=r;t.fatal&&(t.continue=!1),t.code??=`custom`,t.input??=n.value,t.inst??=e,n.issues.push(M(t))}};let i=t.transform(n.value,n);return i instanceof Promise?i.then(e=>(n.value=e,n)):(n.value=i,n)}});function xi(e){return new bi({type:`transform`,transform:e})}var Si=h(`ZodOptional`,(e,t)=>{fn.init(e,t),Y.init(e,t),e.unwrap=()=>e._zod.def.innerType});function Ci(e){return new Si({type:`optional`,innerType:e})}var wi=h(`ZodNullable`,(e,t)=>{pn.init(e,t),Y.init(e,t),e.unwrap=()=>e._zod.def.innerType});function Ti(e){return new wi({type:`nullable`,innerType:e})}var Ei=h(`ZodDefault`,(e,t)=>{mn.init(e,t),Y.init(e,t),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function Di(e,t){return new Ei({type:`default`,innerType:e,get defaultValue(){return typeof t==`function`?t():de(t)}})}var Oi=h(`ZodPrefault`,(e,t)=>{gn.init(e,t),Y.init(e,t),e.unwrap=()=>e._zod.def.innerType});function ki(e,t){return new Oi({type:`prefault`,innerType:e,get defaultValue(){return typeof t==`function`?t():de(t)}})}var Ai=h(`ZodNonOptional`,(e,t)=>{_n.init(e,t),Y.init(e,t),e.unwrap=()=>e._zod.def.innerType});function ji(e,t){return new Ai({type:`nonoptional`,innerType:e,...O(t)})}var Mi=h(`ZodCatch`,(e,t)=>{yn.init(e,t),Y.init(e,t),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function Ni(e,t){return new Mi({type:`catch`,innerType:e,catchValue:typeof t==`function`?t:()=>t})}var Pi=h(`ZodPipe`,(e,t)=>{bn.init(e,t),Y.init(e,t),e.in=t.in,e.out=t.out});function Fi(e,t){return new Pi({type:`pipe`,in:e,out:t})}var Ii=h(`ZodReadonly`,(e,t)=>{xn.init(e,t),Y.init(e,t),e.unwrap=()=>e._zod.def.innerType});function Li(e){return new Ii({type:`readonly`,innerType:e})}var Ri=h(`ZodCustom`,(e,t)=>{Cn.init(e,t),Y.init(e,t)});function zi(e,t={}){return hr(Ri,e,t)}function Bi(e){return gr(e)}var Vi=function(){function e(e){this.groups=[],this.each=!1,this.context=void 0,this.type=e.type,this.name=e.name,this.target=e.target,this.propertyName=e.propertyName,this.constraints=e?.constraints,this.constraintCls=e.constraintCls,this.validationTypeOptions=e.validationTypeOptions,e.validationOptions&&(this.message=e.validationOptions.message,this.groups=e.validationOptions.groups,this.always=e.validationOptions.always,this.each=e.validationOptions.each,this.context=e.validationOptions.context)}return e}(),Hi=function(){function e(){}return e.prototype.transform=function(e){var t=[];return Object.keys(e.properties).forEach(function(n){e.properties[n].forEach(function(r){var i={message:r.message,groups:r.groups,always:r.always,each:r.each},a={type:r.type,name:r.name,target:e.name,propertyName:n,constraints:r.constraints,validationTypeOptions:r.options,validationOptions:i};t.push(new Vi(a))})}),t},e}(),Ui=function(e){var t=typeof Symbol==`function`&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&typeof e.length==`number`)return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw TypeError(t?`Object is not iterable.`:`Symbol.iterator is not defined.`)},Wi=function(e,t){var n=typeof Symbol==`function`&&e[Symbol.iterator];if(!n)return e;var r=n.call(e),i,a=[],o;try{for(;(t===void 0||t-- >0)&&!(i=r.next()).done;)a.push(i.value)}catch(e){o={error:e}}finally{try{i&&!i.done&&(n=r.return)&&n.call(r)}finally{if(o)throw o.error}}return a},Gi=function(e,t,n){if(n||arguments.length===2)for(var r=0,i=t.length,a;r<i;r++)(a||!(r in t))&&(a||=Array.prototype.slice.call(t,0,r),a[r]=t[r]);return e.concat(a||Array.prototype.slice.call(t))};(function(){function e(){this.validationMetadatas=new Map,this.constraintMetadatas=new Map}return Object.defineProperty(e.prototype,"hasValidationMetaData",{get:function(){return!!this.validationMetadatas.size},enumerable:!1,configurable:!0}),e.prototype.addValidationSchema=function(e){var t=this;new Hi().transform(e).forEach(function(e){return t.addValidationMetadata(e)})},e.prototype.addValidationMetadata=function(e){var t=this.validationMetadatas.get(e.target);t?t.push(e):this.validationMetadatas.set(e.target,[e])},e.prototype.addConstraintMetadata=function(e){var t=this.constraintMetadatas.get(e.target);t?t.push(e):this.constraintMetadatas.set(e.target,[e])},e.prototype.groupByPropertyName=function(e){var t={};return e.forEach(function(e){t[e.propertyName]||(t[e.propertyName]=[]),t[e.propertyName].push(e)}),t},e.prototype.getTargetValidationMetadatas=function(e,t,n,r,i){var a,o,s=function(e){return e.always===void 0?e.groups&&e.groups.length?!1:n:e.always},c=function(e){return!!(r&&(!i||!i.length)&&e.groups&&e.groups.length)},l=(this.validationMetadatas.get(e)||[]).filter(function(n){return n.target!==e&&n.target!==t?!1:s(n)?!0:c(n)?!1:i&&i.length>0?n.groups&&!!n.groups.find(function(e){return i.indexOf(e)!==-1}):!0}),u=[];try{for(var d=Ui(this.validationMetadatas.entries()),f=d.next();!f.done;f=d.next()){var p=Wi(f.value,2),ee=p[0],m=p[1];e.prototype instanceof ee&&u.push.apply(u,Gi([],Wi(m),!1))}}catch(e){a={error:e}}finally{try{f&&!f.done&&(o=d.return)&&o.call(d)}finally{if(a)throw a.error}}var te=u.filter(function(t){return typeof t.target==`string`||t.target===e||t.target instanceof Function&&!(e.prototype instanceof t.target)?!1:s(t)?!0:c(t)?!1:i&&i.length>0?t.groups&&!!t.groups.find(function(e){return i.indexOf(e)!==-1}):!0}).filter(function(e){return!l.find(function(t){return t.propertyName===e.propertyName&&t.type===e.type})});return l.concat(te)},e.prototype.getTargetValidatorConstraints=function(e){return this.constraintMetadatas.get(e)||[]},e})(),function(){function e(){}return e.isValid=function(e){var t=this;return e!==`isValid`&&e!==`getMessage`&&Object.keys(this).map(function(e){return t[e]}).indexOf(e)!==-1},e.CUSTOM_VALIDATION=`customValidation`,e.NESTED_VALIDATION=`nestedValidation`,e.PROMISE_VALIDATION=`promiseValidation`,e.CONDITIONAL_VALIDATION=`conditionalValidation`,e.WHITELIST=`whitelistValidation`,e.IS_DEFINED=`isDefined`,e}();var Ki=new(function(){function e(){this.instances=[]}return e.prototype.get=function(e){var t=this.instances.find(function(t){return t.type===e});return t||(t={type:e,object:new e},this.instances.push(t)),t.object},e}()),qi,Q;function Ji(e){if(qi)try{var t=qi.get(e);if(t||!Q||!Q.fallback)return t}catch(e){if(!Q||!Q.fallbackOnErrors)throw e}return Ki.get(e)}(function(){function e(e,t,n){n===void 0&&(n=!1),this.target=e,this.name=t,this.async=n}return Object.defineProperty(e.prototype,"instance",{get:function(){return Ji(this.target)},enumerable:!1,configurable:!0}),e})();var $=function(e){return e.ACTOR=`ACTOR`,e.ADDRESS=`ADDRESS`,e.ARRAY=`ARRAY`,e.BOOLEAN=`BOOLEAN`,e.CURRENCY=`CURRENCY`,e.DATE=`DATE`,e.DATE_TIME=`DATE_TIME`,e.EMAILS=`EMAILS`,e.FILES=`FILES`,e.FULL_NAME=`FULL_NAME`,e.LINKS=`LINKS`,e.MORPH_RELATION=`MORPH_RELATION`,e.MULTI_SELECT=`MULTI_SELECT`,e.NUMBER=`NUMBER`,e.NUMERIC=`NUMERIC`,e.PHONES=`PHONES`,e.POSITION=`POSITION`,e.RATING=`RATING`,e.RAW_JSON=`RAW_JSON`,e.RELATION=`RELATION`,e.RICH_TEXT=`RICH_TEXT`,e.SELECT=`SELECT`,e.TEXT=`TEXT`,e.TS_VECTOR=`TS_VECTOR`,e.UUID=`UUID`,e}({}),Yi=function(e){return e.EMAIL=`EMAIL`,e.CALENDAR=`CALENDAR`,e.WORKFLOW=`WORKFLOW`,e.AGENT=`AGENT`,e.API=`API`,e.IMPORT=`IMPORT`,e.MANUAL=`MANUAL`,e.SYSTEM=`SYSTEM`,e.WEBHOOK=`WEBHOOK`,e.APPLICATION=`APPLICATION`,e}({}),Xi={type:$.ACTOR,properties:[{name:`source`,type:$.SELECT,hidden:!1,isRequired:!0,options:Object.keys(Yi).map((e,t)=>({id:p(),label:`${Yi[e].toLowerCase()}`,value:e,position:t}))},{name:`workspaceMemberId`,type:$.UUID,hidden:`input`,isRequired:!1},{name:`name`,type:$.TEXT,hidden:`input`,isRequired:!0},{name:`context`,type:$.RAW_JSON,hidden:!1,isRequired:!1}]},Zi={type:$.ADDRESS,properties:[{name:`addressStreet1`,type:$.TEXT,hidden:!1,isRequired:!1},{name:`addressStreet2`,type:$.TEXT,hidden:!1,isRequired:!1},{name:`addressCity`,type:$.TEXT,hidden:!1,isRequired:!1},{name:`addressPostcode`,type:$.TEXT,hidden:!1,isRequired:!1},{name:`addressState`,type:$.TEXT,hidden:!1,isRequired:!1},{name:`addressCountry`,type:$.TEXT,hidden:!1,isRequired:!1},{name:`addressLat`,type:$.NUMERIC,hidden:!1,isRequired:!1},{name:`addressLng`,type:$.NUMERIC,hidden:!1,isRequired:!1}]},Qi={type:$.CURRENCY,properties:[{name:`amountMicros`,type:$.NUMERIC,hidden:!1,isRequired:!1},{name:`currencyCode`,type:$.TEXT,hidden:!1,isRequired:!1}]},$i={type:$.EMAILS,properties:[{name:`primaryEmail`,type:$.TEXT,hidden:!1,isRequired:!1,isIncludedInUniqueConstraint:!0},{name:`additionalEmails`,type:$.RAW_JSON,hidden:!1,isRequired:!1}]},ea={type:$.FULL_NAME,properties:[{name:`firstName`,type:$.TEXT,hidden:!1,isRequired:!1,isIncludedInUniqueConstraint:!1},{name:`lastName`,type:$.TEXT,hidden:!1,isRequired:!1,isIncludedInUniqueConstraint:!1}]},ta={type:$.LINKS,properties:[{name:`primaryLinkLabel`,type:$.TEXT,hidden:!1,isRequired:!1},{name:`primaryLinkUrl`,type:$.TEXT,hidden:!1,isRequired:!1,isIncludedInUniqueConstraint:!0},{name:`secondaryLinks`,type:$.RAW_JSON,hidden:!1,isRequired:!1}]},na={type:$.PHONES,properties:[{name:`primaryPhoneNumber`,type:$.TEXT,hidden:!1,isRequired:!1,isIncludedInUniqueConstraint:!0},{name:`primaryPhoneCountryCode`,type:$.TEXT,hidden:!1,isRequired:!1,isIncludedInUniqueConstraint:!0},{name:`primaryPhoneCallingCode`,type:$.TEXT,hidden:!1,isRequired:!1,isIncludedInUniqueConstraint:!0},{name:`additionalPhones`,type:$.RAW_JSON,hidden:!1,isRequired:!1}]},ra={type:$.RICH_TEXT,properties:[{name:`blocknote`,type:$.TEXT,hidden:!1,isRequired:!1},{name:`markdown`,type:$.TEXT,hidden:!1,isRequired:!1}]};pi({blocknote:Vr().nullable().optional(),markdown:Vr().nullable()}),new Map([[$.LINKS,ta],[$.CURRENCY,Qi],[$.FULL_NAME,ea],[$.ADDRESS,Zi],[$.ACTOR,Xi],[$.EMAILS,$i],[$.PHONES,na],[$.RICH_TEXT,ra]]),$.RELATION,$.MORPH_RELATION,$.FILES,$.TS_VECTOR,$.TEXT,$.ARRAY,$.BOOLEAN,$.DATE,$.DATE_TIME,$.NUMBER,$.NUMERIC,$.RAW_JSON,$.RICH_TEXT,$.SELECT,$.MULTI_SELECT;var ia=`TWENTY_API_KEY`,aa=`TWENTY_API_URL`,oa=`TWENTY_APP_ACCESS_TOKEN`,sa=`TWENTY_APP_APPLICATION_ACCESS_TOKEN`,ca=`TWENTY_FUNCTIONS_URL`;Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return oa}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return ca}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return sa}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return aa}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return ia}});
|
|
20
|
+
`)}t.write(`payload.value = newResult;`),t.write(`return payload;`);let s=t.compile();return(t,n)=>s(e,t,n)},a,o=w,s=!_.jitless,c=s&&ue.value,l=t.catchall,u;e._zod.parse=(d,f)=>{u??=r.value;let p=d.value;return o(p)?s&&c&&f?.async===!1&&f.jitless!==!0?(a||=i(t.shape),d=a(d,f),l?tn([],p,d,f,u,e):d):n(d,f):(d.issues.push({expected:`object`,code:`invalid_type`,input:p,inst:e}),d)}});function an(e,t,n,r){for(let n of e)if(n.issues.length===0)return t.value=n.value,t;let i=e.filter(e=>!k(e));return i.length===1?(t.value=i[0].value,i[0]):(t.issues.push({code:`invalid_union`,input:t.value,inst:n,errors:e.map(e=>e.issues.map(e=>j(e,r,v())))}),t)}var on=h(`$ZodUnion`,(e,t)=>{z.init(e,t),x(e._zod,`optin`,()=>t.options.some(e=>e._zod.optin===`optional`)?`optional`:void 0),x(e._zod,`optout`,()=>t.options.some(e=>e._zod.optout===`optional`)?`optional`:void 0),x(e._zod,`values`,()=>{if(t.options.every(e=>e._zod.values))return new Set(t.options.flatMap(e=>Array.from(e._zod.values)))}),x(e._zod,`pattern`,()=>{if(t.options.every(e=>e._zod.pattern)){let e=t.options.map(e=>e._zod.pattern);return RegExp(`^(${e.map(e=>oe(e.source)).join(`|`)})$`)}});let n=t.options.length===1,r=t.options[0]._zod.run;e._zod.parse=(i,a)=>{if(n)return r(i,a);let o=!1,s=[];for(let e of t.options){let t=e._zod.run({value:i.value,issues:[]},a);if(t instanceof Promise)s.push(t),o=!0;else{if(t.issues.length===0)return t;s.push(t)}}return o?Promise.all(s).then(t=>an(t,i,e,a)):an(s,i,e,a)}}),sn=h(`$ZodIntersection`,(e,t)=>{z.init(e,t),e._zod.parse=(e,n)=>{let r=e.value,i=t.left._zod.run({value:r,issues:[]},n),a=t.right._zod.run({value:r,issues:[]},n);return i instanceof Promise||a instanceof Promise?Promise.all([i,a]).then(([t,n])=>cn(e,t,n)):cn(e,i,a)}});function U(e,t){if(e===t||e instanceof Date&&t instanceof Date&&+e==+t)return{valid:!0,data:e};if(T(e)&&T(t)){let n=Object.keys(t),r=Object.keys(e).filter(e=>n.indexOf(e)!==-1),i={...e,...t};for(let n of r){let r=U(e[n],t[n]);if(!r.valid)return{valid:!1,mergeErrorPath:[n,...r.mergeErrorPath]};i[n]=r.data}return{valid:!0,data:i}}if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return{valid:!1,mergeErrorPath:[]};let n=[];for(let r=0;r<e.length;r++){let i=e[r],a=t[r],o=U(i,a);if(!o.valid)return{valid:!1,mergeErrorPath:[r,...o.mergeErrorPath]};n.push(o.data)}return{valid:!0,data:n}}return{valid:!1,mergeErrorPath:[]}}function cn(e,t,n){if(t.issues.length&&e.issues.push(...t.issues),n.issues.length&&e.issues.push(...n.issues),k(e))return e;let r=U(t.value,n.value);if(!r.valid)throw Error(`Unmergable intersection. Error path: ${JSON.stringify(r.mergeErrorPath)}`);return e.value=r.data,e}var ln=h(`$ZodEnum`,(e,t)=>{z.init(e,t);let n=ie(t.entries),r=new Set(n);e._zod.values=r,e._zod.pattern=RegExp(`^(${n.filter(e=>fe.has(typeof e)).map(e=>typeof e==`string`?E(e):e.toString()).join(`|`)})$`),e._zod.parse=(t,i)=>{let a=t.value;return r.has(a)||t.issues.push({code:`invalid_value`,values:n,input:a,inst:e}),t}}),un=h(`$ZodTransform`,(e,t)=>{z.init(e,t),e._zod.parse=(n,r)=>{if(r.direction===`backward`)throw new re(e.constructor.name);let i=t.transform(n.value,n);if(r.async)return(i instanceof Promise?i:Promise.resolve(i)).then(e=>(n.value=e,n));if(i instanceof Promise)throw new g;return n.value=i,n}});function dn(e,t){return e.issues.length&&t===void 0?{issues:[],value:void 0}:e}var fn=h(`$ZodOptional`,(e,t)=>{z.init(e,t),e._zod.optin=`optional`,e._zod.optout=`optional`,x(e._zod,`values`,()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,void 0]):void 0),x(e._zod,`pattern`,()=>{let e=t.innerType._zod.pattern;return e?RegExp(`^(${oe(e.source)})?$`):void 0}),e._zod.parse=(e,n)=>{if(t.innerType._zod.optin===`optional`){let r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(t=>dn(t,e.value)):dn(r,e.value)}return e.value===void 0?e:t.innerType._zod.run(e,n)}}),pn=h(`$ZodNullable`,(e,t)=>{z.init(e,t),x(e._zod,`optin`,()=>t.innerType._zod.optin),x(e._zod,`optout`,()=>t.innerType._zod.optout),x(e._zod,`pattern`,()=>{let e=t.innerType._zod.pattern;return e?RegExp(`^(${oe(e.source)}|null)$`):void 0}),x(e._zod,`values`,()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,null]):void 0),e._zod.parse=(e,n)=>e.value===null?e:t.innerType._zod.run(e,n)}),mn=h(`$ZodDefault`,(e,t)=>{z.init(e,t),e._zod.optin=`optional`,x(e._zod,`values`,()=>t.innerType._zod.values),e._zod.parse=(e,n)=>{if(n.direction===`backward`)return t.innerType._zod.run(e,n);if(e.value===void 0)return e.value=t.defaultValue,e;let r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(e=>hn(e,t)):hn(r,t)}});function hn(e,t){return e.value===void 0&&(e.value=t.defaultValue),e}var gn=h(`$ZodPrefault`,(e,t)=>{z.init(e,t),e._zod.optin=`optional`,x(e._zod,`values`,()=>t.innerType._zod.values),e._zod.parse=(e,n)=>(n.direction===`backward`||e.value===void 0&&(e.value=t.defaultValue),t.innerType._zod.run(e,n))}),_n=h(`$ZodNonOptional`,(e,t)=>{z.init(e,t),x(e._zod,`values`,()=>{let e=t.innerType._zod.values;return e?new Set([...e].filter(e=>e!==void 0)):void 0}),e._zod.parse=(n,r)=>{let i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(t=>vn(t,e)):vn(i,e)}});function vn(e,t){return!e.issues.length&&e.value===void 0&&e.issues.push({code:`invalid_type`,expected:`nonoptional`,input:e.value,inst:t}),e}var yn=h(`$ZodCatch`,(e,t)=>{z.init(e,t),x(e._zod,`optin`,()=>t.innerType._zod.optin),x(e._zod,`optout`,()=>t.innerType._zod.optout),x(e._zod,`values`,()=>t.innerType._zod.values),e._zod.parse=(e,n)=>{if(n.direction===`backward`)return t.innerType._zod.run(e,n);let r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(r=>(e.value=r.value,r.issues.length&&(e.value=t.catchValue({...e,error:{issues:r.issues.map(e=>j(e,n,v()))},input:e.value}),e.issues=[]),e)):(e.value=r.value,r.issues.length&&(e.value=t.catchValue({...e,error:{issues:r.issues.map(e=>j(e,n,v()))},input:e.value}),e.issues=[]),e)}}),bn=h(`$ZodPipe`,(e,t)=>{z.init(e,t),x(e._zod,`values`,()=>t.in._zod.values),x(e._zod,`optin`,()=>t.in._zod.optin),x(e._zod,`optout`,()=>t.out._zod.optout),x(e._zod,`propValues`,()=>t.in._zod.propValues),e._zod.parse=(e,n)=>{if(n.direction===`backward`){let r=t.out._zod.run(e,n);return r instanceof Promise?r.then(e=>W(e,t.in,n)):W(r,t.in,n)}let r=t.in._zod.run(e,n);return r instanceof Promise?r.then(e=>W(e,t.out,n)):W(r,t.out,n)}});function W(e,t,n){return e.issues.length?(e.aborted=!0,e):t._zod.run({value:e.value,issues:e.issues},n)}var xn=h(`$ZodReadonly`,(e,t)=>{z.init(e,t),x(e._zod,`propValues`,()=>t.innerType._zod.propValues),x(e._zod,`values`,()=>t.innerType._zod.values),x(e._zod,`optin`,()=>t.innerType._zod.optin),x(e._zod,`optout`,()=>t.innerType._zod.optout),e._zod.parse=(e,n)=>{if(n.direction===`backward`)return t.innerType._zod.run(e,n);let r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(Sn):Sn(r)}});function Sn(e){return e.value=Object.freeze(e.value),e}var Cn=h(`$ZodCustom`,(e,t)=>{L.init(e,t),z.init(e,t),e._zod.parse=(e,t)=>e,e._zod.check=n=>{let r=n.value,i=t.fn(r);if(i instanceof Promise)return i.then(t=>wn(t,n,r,e));wn(i,n,r,e)}});function wn(e,t,n,r){if(!e){let e={code:`custom`,input:n,inst:r,path:[...r._zod.def.path??[]],continue:!r._zod.def.abort};r._zod.def.params&&(e.params=r._zod.def.params),t.issues.push(M(e))}}var Tn=class{constructor(){this._map=new WeakMap,this._idmap=new Map}add(e,...t){let n=t[0];if(this._map.set(e,n),n&&typeof n==`object`&&`id`in n){if(this._idmap.has(n.id))throw Error(`ID ${n.id} already exists in the registry`);this._idmap.set(n.id,e)}return this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(e){let t=this._map.get(e);return t&&typeof t==`object`&&`id`in t&&this._idmap.delete(t.id),this._map.delete(e),this}get(e){let t=e._zod.parent;if(t){let n={...this.get(t)??{}};delete n.id;let r={...n,...this._map.get(e)};return Object.keys(r).length?r:void 0}return this._map.get(e)}has(e){return this._map.has(e)}};function En(){return new Tn}var G=En();function Dn(e,t){return new e({type:`string`,...O(t)})}function On(e,t){return new e({type:`string`,format:`email`,check:`string_format`,abort:!1,...O(t)})}function kn(e,t){return new e({type:`string`,format:`guid`,check:`string_format`,abort:!1,...O(t)})}function An(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,...O(t)})}function jn(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,version:`v4`,...O(t)})}function Mn(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,version:`v6`,...O(t)})}function Nn(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,version:`v7`,...O(t)})}function Pn(e,t){return new e({type:`string`,format:`url`,check:`string_format`,abort:!1,...O(t)})}function Fn(e,t){return new e({type:`string`,format:`emoji`,check:`string_format`,abort:!1,...O(t)})}function In(e,t){return new e({type:`string`,format:`nanoid`,check:`string_format`,abort:!1,...O(t)})}function Ln(e,t){return new e({type:`string`,format:`cuid`,check:`string_format`,abort:!1,...O(t)})}function Rn(e,t){return new e({type:`string`,format:`cuid2`,check:`string_format`,abort:!1,...O(t)})}function zn(e,t){return new e({type:`string`,format:`ulid`,check:`string_format`,abort:!1,...O(t)})}function Bn(e,t){return new e({type:`string`,format:`xid`,check:`string_format`,abort:!1,...O(t)})}function Vn(e,t){return new e({type:`string`,format:`ksuid`,check:`string_format`,abort:!1,...O(t)})}function Hn(e,t){return new e({type:`string`,format:`ipv4`,check:`string_format`,abort:!1,...O(t)})}function Un(e,t){return new e({type:`string`,format:`ipv6`,check:`string_format`,abort:!1,...O(t)})}function Wn(e,t){return new e({type:`string`,format:`cidrv4`,check:`string_format`,abort:!1,...O(t)})}function Gn(e,t){return new e({type:`string`,format:`cidrv6`,check:`string_format`,abort:!1,...O(t)})}function Kn(e,t){return new e({type:`string`,format:`base64`,check:`string_format`,abort:!1,...O(t)})}function qn(e,t){return new e({type:`string`,format:`base64url`,check:`string_format`,abort:!1,...O(t)})}function Jn(e,t){return new e({type:`string`,format:`e164`,check:`string_format`,abort:!1,...O(t)})}function Yn(e,t){return new e({type:`string`,format:`jwt`,check:`string_format`,abort:!1,...O(t)})}function Xn(e,t){return new e({type:`string`,format:`datetime`,check:`string_format`,offset:!1,local:!1,precision:null,...O(t)})}function Zn(e,t){return new e({type:`string`,format:`date`,check:`string_format`,...O(t)})}function Qn(e,t){return new e({type:`string`,format:`time`,check:`string_format`,precision:null,...O(t)})}function $n(e,t){return new e({type:`string`,format:`duration`,check:`string_format`,...O(t)})}function er(e){return new e({type:`unknown`})}function tr(e,t){return new e({type:`never`,...O(t)})}function nr(e,t){return new ft({check:`max_length`,...O(t),maximum:e})}function K(e,t){return new pt({check:`min_length`,...O(t),minimum:e})}function rr(e,t){return new mt({check:`length_equals`,...O(t),length:e})}function ir(e,t){return new ht({check:`string_format`,format:`regex`,...O(t),pattern:e})}function ar(e){return new gt({check:`string_format`,format:`lowercase`,...O(e)})}function or(e){return new _t({check:`string_format`,format:`uppercase`,...O(e)})}function sr(e,t){return new vt({check:`string_format`,format:`includes`,...O(t),includes:e})}function cr(e,t){return new yt({check:`string_format`,format:`starts_with`,...O(t),prefix:e})}function lr(e,t){return new bt({check:`string_format`,format:`ends_with`,...O(t),suffix:e})}function q(e){return new xt({check:`overwrite`,tx:e})}function ur(e){return q(t=>t.normalize(e))}function dr(){return q(e=>e.trim())}function fr(){return q(e=>e.toLowerCase())}function pr(){return q(e=>e.toUpperCase())}function mr(e,t,n){return new e({type:`array`,element:t,...O(n)})}function hr(e,t,n){return new e({type:`custom`,check:`custom`,fn:t,...O(n)})}function gr(e){let t=_r(n=>(n.addIssue=e=>{if(typeof e==`string`)n.issues.push(M(e,n.value,t._zod.def));else{let r=e;r.fatal&&(r.continue=!1),r.code??=`custom`,r.input??=n.value,r.inst??=t,r.continue??=!t._zod.def.abort,n.issues.push(M(r))}},e(n.value,n)));return t}function _r(e,t){let n=new L({check:`custom`,...O(t)});return n._zod.check=e,n}var vr=h(`ZodISODateTime`,(e,t)=>{Ft.init(e,t),X.init(e,t)});function yr(e){return Xn(vr,e)}var br=h(`ZodISODate`,(e,t)=>{It.init(e,t),X.init(e,t)});function xr(e){return Zn(br,e)}var Sr=h(`ZodISOTime`,(e,t)=>{Lt.init(e,t),X.init(e,t)});function Cr(e){return Qn(Sr,e)}var wr=h(`ZodISODuration`,(e,t)=>{Rt.init(e,t),X.init(e,t)});function Tr(e){return $n(wr,e)}var Er=(e,t)=>{we.init(e,t),e.name=`ZodError`,Object.defineProperties(e,{format:{value:t=>De(e,t)},flatten:{value:t=>Ee(e,t)},addIssue:{value:t=>{e.issues.push(t),e.message=JSON.stringify(e.issues,y,2)}},addIssues:{value:t=>{e.issues.push(...t),e.message=JSON.stringify(e.issues,y,2)}},isEmpty:{get(){return e.issues.length===0}}})};h(`ZodError`,Er);var J=h(`ZodError`,Er,{Parent:Error}),Dr=N(J),Or=P(J),kr=F(J),Ar=I(J),jr=Ae(J),Mr=je(J),Nr=Me(J),Pr=Ne(J),Fr=Pe(J),Ir=Fe(J),Lr=Ie(J),Rr=Le(J),Y=h(`ZodType`,(e,t)=>(z.init(e,t),e.def=t,e.type=t.type,Object.defineProperty(e,"_def",{value:t}),e.check=(...n)=>e.clone(C(t,{checks:[...t.checks??[],...n.map(e=>typeof e==`function`?{_zod:{check:e,def:{check:`custom`},onattach:[]}}:e)]})),e.clone=(t,n)=>D(e,t,n),e.brand=()=>e,e.register=((t,n)=>(t.add(e,n),e)),e.parse=(t,n)=>Dr(e,t,n,{callee:e.parse}),e.safeParse=(t,n)=>kr(e,t,n),e.parseAsync=async(t,n)=>Or(e,t,n,{callee:e.parseAsync}),e.safeParseAsync=async(t,n)=>Ar(e,t,n),e.spa=e.safeParseAsync,e.encode=(t,n)=>jr(e,t,n),e.decode=(t,n)=>Mr(e,t,n),e.encodeAsync=async(t,n)=>Nr(e,t,n),e.decodeAsync=async(t,n)=>Pr(e,t,n),e.safeEncode=(t,n)=>Fr(e,t,n),e.safeDecode=(t,n)=>Ir(e,t,n),e.safeEncodeAsync=async(t,n)=>Lr(e,t,n),e.safeDecodeAsync=async(t,n)=>Rr(e,t,n),e.refine=(t,n)=>e.check(zi(t,n)),e.superRefine=t=>e.check(Bi(t)),e.overwrite=t=>e.check(q(t)),e.optional=()=>Ci(e),e.nullable=()=>Ti(e),e.nullish=()=>Ci(Ti(e)),e.nonoptional=t=>ji(e,t),e.array=()=>di(e),e.or=t=>hi([e,t]),e.and=t=>_i(e,t),e.transform=t=>Fi(e,xi(t)),e.default=t=>Di(e,t),e.prefault=t=>ki(e,t),e.catch=t=>Ni(e,t),e.pipe=t=>Fi(e,t),e.readonly=()=>Li(e),e.describe=t=>{let n=e.clone();return G.add(n,{description:t}),n},Object.defineProperty(e,"description",{get(){return G.get(e)?.description},configurable:!0}),e.meta=(...t)=>{if(t.length===0)return G.get(e);let n=e.clone();return G.add(n,t[0]),n},e.isOptional=()=>e.safeParse(void 0).success,e.isNullable=()=>e.safeParse(null).success,e)),zr=h(`_ZodString`,(e,t)=>{B.init(e,t),Y.init(e,t);let n=e._zod.bag;e.format=n.format??null,e.minLength=n.minimum??null,e.maxLength=n.maximum??null,e.regex=(...t)=>e.check(ir(...t)),e.includes=(...t)=>e.check(sr(...t)),e.startsWith=(...t)=>e.check(cr(...t)),e.endsWith=(...t)=>e.check(lr(...t)),e.min=(...t)=>e.check(K(...t)),e.max=(...t)=>e.check(nr(...t)),e.length=(...t)=>e.check(rr(...t)),e.nonempty=(...t)=>e.check(K(1,...t)),e.lowercase=t=>e.check(ar(t)),e.uppercase=t=>e.check(or(t)),e.trim=()=>e.check(dr()),e.normalize=(...t)=>e.check(ur(...t)),e.toLowerCase=()=>e.check(fr()),e.toUpperCase=()=>e.check(pr())}),Br=h(`ZodString`,(e,t)=>{B.init(e,t),zr.init(e,t),e.email=t=>e.check(On(Hr,t)),e.url=t=>e.check(Pn(Wr,t)),e.jwt=t=>e.check(Yn(ai,t)),e.emoji=t=>e.check(Fn(Gr,t)),e.guid=t=>e.check(kn(Ur,t)),e.uuid=t=>e.check(An(Z,t)),e.uuidv4=t=>e.check(jn(Z,t)),e.uuidv6=t=>e.check(Mn(Z,t)),e.uuidv7=t=>e.check(Nn(Z,t)),e.nanoid=t=>e.check(In(Kr,t)),e.guid=t=>e.check(kn(Ur,t)),e.cuid=t=>e.check(Ln(qr,t)),e.cuid2=t=>e.check(Rn(Jr,t)),e.ulid=t=>e.check(zn(Yr,t)),e.base64=t=>e.check(Kn(ni,t)),e.base64url=t=>e.check(qn(ri,t)),e.xid=t=>e.check(Bn(Xr,t)),e.ksuid=t=>e.check(Vn(Zr,t)),e.ipv4=t=>e.check(Hn(Qr,t)),e.ipv6=t=>e.check(Un($r,t)),e.cidrv4=t=>e.check(Wn(ei,t)),e.cidrv6=t=>e.check(Gn(ti,t)),e.e164=t=>e.check(Jn(ii,t)),e.datetime=t=>e.check(yr(t)),e.date=t=>e.check(xr(t)),e.time=t=>e.check(Cr(t)),e.duration=t=>e.check(Tr(t))});function Vr(e){return Dn(Br,e)}var X=h(`ZodStringFormat`,(e,t)=>{V.init(e,t),zr.init(e,t)}),Hr=h(`ZodEmail`,(e,t)=>{Et.init(e,t),X.init(e,t)}),Ur=h(`ZodGUID`,(e,t)=>{wt.init(e,t),X.init(e,t)}),Z=h(`ZodUUID`,(e,t)=>{Tt.init(e,t),X.init(e,t)}),Wr=h(`ZodURL`,(e,t)=>{Dt.init(e,t),X.init(e,t)}),Gr=h(`ZodEmoji`,(e,t)=>{Ot.init(e,t),X.init(e,t)}),Kr=h(`ZodNanoID`,(e,t)=>{kt.init(e,t),X.init(e,t)}),qr=h(`ZodCUID`,(e,t)=>{At.init(e,t),X.init(e,t)}),Jr=h(`ZodCUID2`,(e,t)=>{jt.init(e,t),X.init(e,t)}),Yr=h(`ZodULID`,(e,t)=>{Mt.init(e,t),X.init(e,t)}),Xr=h(`ZodXID`,(e,t)=>{Nt.init(e,t),X.init(e,t)}),Zr=h(`ZodKSUID`,(e,t)=>{Pt.init(e,t),X.init(e,t)}),Qr=h(`ZodIPv4`,(e,t)=>{zt.init(e,t),X.init(e,t)}),$r=h(`ZodIPv6`,(e,t)=>{Bt.init(e,t),X.init(e,t)}),ei=h(`ZodCIDRv4`,(e,t)=>{Vt.init(e,t),X.init(e,t)}),ti=h(`ZodCIDRv6`,(e,t)=>{Ht.init(e,t),X.init(e,t)}),ni=h(`ZodBase64`,(e,t)=>{Wt.init(e,t),X.init(e,t)}),ri=h(`ZodBase64URL`,(e,t)=>{Kt.init(e,t),X.init(e,t)}),ii=h(`ZodE164`,(e,t)=>{qt.init(e,t),X.init(e,t)}),ai=h(`ZodJWT`,(e,t)=>{Yt.init(e,t),X.init(e,t)}),oi=h(`ZodUnknown`,(e,t)=>{Xt.init(e,t),Y.init(e,t)});function si(){return er(oi)}var ci=h(`ZodNever`,(e,t)=>{Zt.init(e,t),Y.init(e,t)});function li(e){return tr(ci,e)}var ui=h(`ZodArray`,(e,t)=>{$t.init(e,t),Y.init(e,t),e.element=t.element,e.min=(t,n)=>e.check(K(t,n)),e.nonempty=t=>e.check(K(1,t)),e.max=(t,n)=>e.check(nr(t,n)),e.length=(t,n)=>e.check(rr(t,n)),e.unwrap=()=>e.element});function di(e,t){return mr(ui,e,t)}var fi=h(`ZodObject`,(e,t)=>{rn.init(e,t),Y.init(e,t),x(e,`shape`,()=>t.shape),e.keyof=()=>yi(Object.keys(e._zod.def.shape)),e.catchall=t=>e.clone({...e._zod.def,catchall:t}),e.passthrough=()=>e.clone({...e._zod.def,catchall:si()}),e.loose=()=>e.clone({...e._zod.def,catchall:si()}),e.strict=()=>e.clone({...e._zod.def,catchall:li()}),e.strip=()=>e.clone({...e._zod.def,catchall:void 0}),e.extend=t=>ge(e,t),e.safeExtend=t=>_e(e,t),e.merge=t=>ve(e,t),e.pick=t=>me(e,t),e.omit=t=>he(e,t),e.partial=(...t)=>ye(Si,e,t[0]),e.required=(...t)=>be(Ai,e,t[0])});function pi(e,t){return new fi({type:`object`,shape:e??{},...O(t)})}var mi=h(`ZodUnion`,(e,t)=>{on.init(e,t),Y.init(e,t),e.options=t.options});function hi(e,t){return new mi({type:`union`,options:e,...O(t)})}var gi=h(`ZodIntersection`,(e,t)=>{sn.init(e,t),Y.init(e,t)});function _i(e,t){return new gi({type:`intersection`,left:e,right:t})}var vi=h(`ZodEnum`,(e,t)=>{ln.init(e,t),Y.init(e,t),e.enum=t.entries,e.options=Object.values(t.entries);let n=new Set(Object.keys(t.entries));e.extract=(e,r)=>{let i={};for(let r of e)if(n.has(r))i[r]=t.entries[r];else throw Error(`Key ${r} not found in enum`);return new vi({...t,checks:[],...O(r),entries:i})},e.exclude=(e,r)=>{let i={...t.entries};for(let t of e)if(n.has(t))delete i[t];else throw Error(`Key ${t} not found in enum`);return new vi({...t,checks:[],...O(r),entries:i})}});function yi(e,t){return new vi({type:`enum`,entries:Array.isArray(e)?Object.fromEntries(e.map(e=>[e,e])):e,...O(t)})}var bi=h(`ZodTransform`,(e,t)=>{un.init(e,t),Y.init(e,t),e._zod.parse=(n,r)=>{if(r.direction===`backward`)throw new re(e.constructor.name);n.addIssue=r=>{if(typeof r==`string`)n.issues.push(M(r,n.value,t));else{let t=r;t.fatal&&(t.continue=!1),t.code??=`custom`,t.input??=n.value,t.inst??=e,n.issues.push(M(t))}};let i=t.transform(n.value,n);return i instanceof Promise?i.then(e=>(n.value=e,n)):(n.value=i,n)}});function xi(e){return new bi({type:`transform`,transform:e})}var Si=h(`ZodOptional`,(e,t)=>{fn.init(e,t),Y.init(e,t),e.unwrap=()=>e._zod.def.innerType});function Ci(e){return new Si({type:`optional`,innerType:e})}var wi=h(`ZodNullable`,(e,t)=>{pn.init(e,t),Y.init(e,t),e.unwrap=()=>e._zod.def.innerType});function Ti(e){return new wi({type:`nullable`,innerType:e})}var Ei=h(`ZodDefault`,(e,t)=>{mn.init(e,t),Y.init(e,t),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function Di(e,t){return new Ei({type:`default`,innerType:e,get defaultValue(){return typeof t==`function`?t():de(t)}})}var Oi=h(`ZodPrefault`,(e,t)=>{gn.init(e,t),Y.init(e,t),e.unwrap=()=>e._zod.def.innerType});function ki(e,t){return new Oi({type:`prefault`,innerType:e,get defaultValue(){return typeof t==`function`?t():de(t)}})}var Ai=h(`ZodNonOptional`,(e,t)=>{_n.init(e,t),Y.init(e,t),e.unwrap=()=>e._zod.def.innerType});function ji(e,t){return new Ai({type:`nonoptional`,innerType:e,...O(t)})}var Mi=h(`ZodCatch`,(e,t)=>{yn.init(e,t),Y.init(e,t),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function Ni(e,t){return new Mi({type:`catch`,innerType:e,catchValue:typeof t==`function`?t:()=>t})}var Pi=h(`ZodPipe`,(e,t)=>{bn.init(e,t),Y.init(e,t),e.in=t.in,e.out=t.out});function Fi(e,t){return new Pi({type:`pipe`,in:e,out:t})}var Ii=h(`ZodReadonly`,(e,t)=>{xn.init(e,t),Y.init(e,t),e.unwrap=()=>e._zod.def.innerType});function Li(e){return new Ii({type:`readonly`,innerType:e})}var Ri=h(`ZodCustom`,(e,t)=>{Cn.init(e,t),Y.init(e,t)});function zi(e,t={}){return hr(Ri,e,t)}function Bi(e){return gr(e)}var Vi=function(){function e(e){this.groups=[],this.each=!1,this.context=void 0,this.type=e.type,this.name=e.name,this.target=e.target,this.propertyName=e.propertyName,this.constraints=e?.constraints,this.constraintCls=e.constraintCls,this.validationTypeOptions=e.validationTypeOptions,e.validationOptions&&(this.message=e.validationOptions.message,this.groups=e.validationOptions.groups,this.always=e.validationOptions.always,this.each=e.validationOptions.each,this.context=e.validationOptions.context)}return e}(),Hi=function(){function e(){}return e.prototype.transform=function(e){var t=[];return Object.keys(e.properties).forEach(function(n){e.properties[n].forEach(function(r){var i={message:r.message,groups:r.groups,always:r.always,each:r.each},a={type:r.type,name:r.name,target:e.name,propertyName:n,constraints:r.constraints,validationTypeOptions:r.options,validationOptions:i};t.push(new Vi(a))})}),t},e}(),Ui=function(e){var t=typeof Symbol==`function`&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&typeof e.length==`number`)return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw TypeError(t?`Object is not iterable.`:`Symbol.iterator is not defined.`)},Wi=function(e,t){var n=typeof Symbol==`function`&&e[Symbol.iterator];if(!n)return e;var r=n.call(e),i,a=[],o;try{for(;(t===void 0||t-- >0)&&!(i=r.next()).done;)a.push(i.value)}catch(e){o={error:e}}finally{try{i&&!i.done&&(n=r.return)&&n.call(r)}finally{if(o)throw o.error}}return a},Gi=function(e,t,n){if(n||arguments.length===2)for(var r=0,i=t.length,a;r<i;r++)(a||!(r in t))&&(a||=Array.prototype.slice.call(t,0,r),a[r]=t[r]);return e.concat(a||Array.prototype.slice.call(t))};(function(){function e(){this.validationMetadatas=new Map,this.constraintMetadatas=new Map}return Object.defineProperty(e.prototype,"hasValidationMetaData",{get:function(){return!!this.validationMetadatas.size},enumerable:!1,configurable:!0}),e.prototype.addValidationSchema=function(e){var t=this;new Hi().transform(e).forEach(function(e){return t.addValidationMetadata(e)})},e.prototype.addValidationMetadata=function(e){var t=this.validationMetadatas.get(e.target);t?t.push(e):this.validationMetadatas.set(e.target,[e])},e.prototype.addConstraintMetadata=function(e){var t=this.constraintMetadatas.get(e.target);t?t.push(e):this.constraintMetadatas.set(e.target,[e])},e.prototype.groupByPropertyName=function(e){var t={};return e.forEach(function(e){t[e.propertyName]||(t[e.propertyName]=[]),t[e.propertyName].push(e)}),t},e.prototype.getTargetValidationMetadatas=function(e,t,n,r,i){var a,o,s=function(e){return e.always===void 0?e.groups&&e.groups.length?!1:n:e.always},c=function(e){return!!(r&&(!i||!i.length)&&e.groups&&e.groups.length)},l=(this.validationMetadatas.get(e)||[]).filter(function(n){return n.target!==e&&n.target!==t?!1:s(n)?!0:c(n)?!1:i&&i.length>0?n.groups&&!!n.groups.find(function(e){return i.indexOf(e)!==-1}):!0}),u=[];try{for(var d=Ui(this.validationMetadatas.entries()),f=d.next();!f.done;f=d.next()){var p=Wi(f.value,2),ee=p[0],m=p[1];e.prototype instanceof ee&&u.push.apply(u,Gi([],Wi(m),!1))}}catch(e){a={error:e}}finally{try{f&&!f.done&&(o=d.return)&&o.call(d)}finally{if(a)throw a.error}}var te=u.filter(function(t){return typeof t.target==`string`||t.target===e||t.target instanceof Function&&!(e.prototype instanceof t.target)?!1:s(t)?!0:c(t)?!1:i&&i.length>0?t.groups&&!!t.groups.find(function(e){return i.indexOf(e)!==-1}):!0}).filter(function(e){return!l.find(function(t){return t.propertyName===e.propertyName&&t.type===e.type})});return l.concat(te)},e.prototype.getTargetValidatorConstraints=function(e){return this.constraintMetadatas.get(e)||[]},e})(),function(){function e(){}return e.isValid=function(e){var t=this;return e!==`isValid`&&e!==`getMessage`&&Object.keys(this).map(function(e){return t[e]}).indexOf(e)!==-1},e.CUSTOM_VALIDATION=`customValidation`,e.NESTED_VALIDATION=`nestedValidation`,e.PROMISE_VALIDATION=`promiseValidation`,e.CONDITIONAL_VALIDATION=`conditionalValidation`,e.WHITELIST=`whitelistValidation`,e.IS_DEFINED=`isDefined`,e}();var Ki=new(function(){function e(){this.instances=[]}return e.prototype.get=function(e){var t=this.instances.find(function(t){return t.type===e});return t||(t={type:e,object:new e},this.instances.push(t)),t.object},e}()),qi,Q;function Ji(e){if(qi)try{var t=qi.get(e);if(t||!Q||!Q.fallback)return t}catch(e){if(!Q||!Q.fallbackOnErrors)throw e}return Ki.get(e)}(function(){function e(e,t,n){n===void 0&&(n=!1),this.target=e,this.name=t,this.async=n}return Object.defineProperty(e.prototype,"instance",{get:function(){return Ji(this.target)},enumerable:!1,configurable:!0}),e})();var $=function(e){return e.ACTOR=`ACTOR`,e.ADDRESS=`ADDRESS`,e.ARRAY=`ARRAY`,e.BOOLEAN=`BOOLEAN`,e.CURRENCY=`CURRENCY`,e.DATE=`DATE`,e.DATE_TIME=`DATE_TIME`,e.EMAILS=`EMAILS`,e.FILES=`FILES`,e.FULL_NAME=`FULL_NAME`,e.LINKS=`LINKS`,e.MORPH_RELATION=`MORPH_RELATION`,e.MULTI_SELECT=`MULTI_SELECT`,e.NUMBER=`NUMBER`,e.NUMERIC=`NUMERIC`,e.PHONES=`PHONES`,e.POSITION=`POSITION`,e.RATING=`RATING`,e.RAW_JSON=`RAW_JSON`,e.RELATION=`RELATION`,e.RICH_TEXT=`RICH_TEXT`,e.SELECT=`SELECT`,e.TEXT=`TEXT`,e.TS_VECTOR=`TS_VECTOR`,e.UUID=`UUID`,e}({}),Yi=function(e){return e.EMAIL=`EMAIL`,e.CALENDAR=`CALENDAR`,e.WORKFLOW=`WORKFLOW`,e.AGENT=`AGENT`,e.API=`API`,e.IMPORT=`IMPORT`,e.MANUAL=`MANUAL`,e.SYSTEM=`SYSTEM`,e.WEBHOOK=`WEBHOOK`,e.APPLICATION=`APPLICATION`,e}({}),Xi={type:$.ACTOR,properties:[{name:`source`,type:$.SELECT,hidden:!1,isRequired:!0,options:Object.keys(Yi).map((e,t)=>({id:p(),label:`${Yi[e].toLowerCase()}`,value:e,position:t}))},{name:`workspaceMemberId`,type:$.UUID,hidden:`input`,isRequired:!1},{name:`name`,type:$.TEXT,hidden:`input`,isRequired:!0},{name:`context`,type:$.RAW_JSON,hidden:!1,isRequired:!1}]},Zi={type:$.ADDRESS,properties:[{name:`addressStreet1`,type:$.TEXT,hidden:!1,isRequired:!1},{name:`addressStreet2`,type:$.TEXT,hidden:!1,isRequired:!1},{name:`addressCity`,type:$.TEXT,hidden:!1,isRequired:!1},{name:`addressPostcode`,type:$.TEXT,hidden:!1,isRequired:!1},{name:`addressState`,type:$.TEXT,hidden:!1,isRequired:!1},{name:`addressCountry`,type:$.TEXT,hidden:!1,isRequired:!1},{name:`addressLat`,type:$.NUMERIC,hidden:!1,isRequired:!1},{name:`addressLng`,type:$.NUMERIC,hidden:!1,isRequired:!1}]},Qi={type:$.CURRENCY,properties:[{name:`amountMicros`,type:$.NUMERIC,hidden:!1,isRequired:!1},{name:`currencyCode`,type:$.TEXT,hidden:!1,isRequired:!1}]},$i={type:$.EMAILS,properties:[{name:`primaryEmail`,type:$.TEXT,hidden:!1,isRequired:!1,isIncludedInUniqueConstraint:!0},{name:`additionalEmails`,type:$.RAW_JSON,hidden:!1,isRequired:!1}]},ea={type:$.FULL_NAME,properties:[{name:`firstName`,type:$.TEXT,hidden:!1,isRequired:!1,isIncludedInUniqueConstraint:!1},{name:`lastName`,type:$.TEXT,hidden:!1,isRequired:!1,isIncludedInUniqueConstraint:!1}]},ta={type:$.LINKS,properties:[{name:`primaryLinkLabel`,type:$.TEXT,hidden:!1,isRequired:!1},{name:`primaryLinkUrl`,type:$.TEXT,hidden:!1,isRequired:!1,isIncludedInUniqueConstraint:!0},{name:`secondaryLinks`,type:$.RAW_JSON,hidden:!1,isRequired:!1}]},na={type:$.PHONES,properties:[{name:`primaryPhoneNumber`,type:$.TEXT,hidden:!1,isRequired:!1,isIncludedInUniqueConstraint:!0},{name:`primaryPhoneCountryCode`,type:$.TEXT,hidden:!1,isRequired:!1,isIncludedInUniqueConstraint:!0},{name:`primaryPhoneCallingCode`,type:$.TEXT,hidden:!1,isRequired:!1,isIncludedInUniqueConstraint:!0},{name:`additionalPhones`,type:$.RAW_JSON,hidden:!1,isRequired:!1}]},ra={type:$.RICH_TEXT,properties:[{name:`blocknote`,type:$.TEXT,hidden:!1,isRequired:!1},{name:`markdown`,type:$.TEXT,hidden:!1,isRequired:!1}]};pi({blocknote:Vr().nullable().optional(),markdown:Vr().nullable()}),new Map([[$.LINKS,ta],[$.CURRENCY,Qi],[$.FULL_NAME,ea],[$.ADDRESS,Zi],[$.ACTOR,Xi],[$.EMAILS,$i],[$.PHONES,na],[$.RICH_TEXT,ra]]),$.RELATION,$.MORPH_RELATION,$.FILES,$.TS_VECTOR,$.TEXT,$.ARRAY,$.BOOLEAN,$.DATE,$.DATE_TIME,$.NUMBER,$.NUMERIC,$.RAW_JSON,$.RICH_TEXT,$.SELECT,$.MULTI_SELECT;var ia=`TWENTY_API_KEY`,aa=`TWENTY_API_URL`,oa=`TWENTY_APP_ACCESS_TOKEN`,sa=`TWENTY_APP_APPLICATION_ACCESS_TOKEN`,ca=`TWENTY_FUNCTIONS_URL`;Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return aa}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return sa}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return oa}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return ia}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return ca}});
|
|
@@ -2487,4 +2487,4 @@ pi({
|
|
|
2487
2487
|
//#region ../twenty-shared/dist/application.mjs
|
|
2488
2488
|
var ia = "TWENTY_API_KEY", aa = "TWENTY_API_URL", oa = "TWENTY_APP_ACCESS_TOKEN", sa = "TWENTY_APP_APPLICATION_ACCESS_TOKEN", ca = "TWENTY_FUNCTIONS_URL";
|
|
2489
2489
|
//#endregion
|
|
2490
|
-
export {
|
|
2490
|
+
export { aa as a, sa as i, oa as n, ia as r, ca as t };
|
|
@@ -1,15 +1,7 @@
|
|
|
1
|
-
type
|
|
2
|
-
url?: string;
|
|
3
|
-
headers?: HeadersInit | (() => HeadersInit | Promise<HeadersInit>);
|
|
4
|
-
fetcher?: (operation: unknown) => Promise<unknown>;
|
|
5
|
-
fetch?: typeof globalThis.fetch;
|
|
6
|
-
batch?: unknown;
|
|
7
|
-
runAs?: 'user' | 'application';
|
|
8
|
-
};
|
|
1
|
+
import { type TwentyClientOptions } from '../../shared/twenty-client-options.type';
|
|
9
2
|
export declare class CoreApiClient {
|
|
10
3
|
query: any;
|
|
11
4
|
mutation: any;
|
|
12
5
|
upload: any;
|
|
13
|
-
constructor(_options?:
|
|
6
|
+
constructor(_options?: TwentyClientOptions);
|
|
14
7
|
}
|
|
15
|
-
export {};
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
+
import type { TwentyClientRunAs } from '../shared/twenty-client-run-as.type';
|
|
1
2
|
type QueryGenqlSelection = Record<string, unknown>;
|
|
2
3
|
type MutationGenqlSelection = Record<string, unknown>;
|
|
3
4
|
type GraphqlOperation = Record<string, unknown>;
|
|
4
|
-
type ClientOptions = {
|
|
5
|
+
type ClientOptions = Omit<RequestInit, 'body' | 'headers'> & {
|
|
5
6
|
url?: string;
|
|
6
7
|
headers?: HeadersInit | (() => HeadersInit | Promise<HeadersInit>);
|
|
7
8
|
fetcher?: (operation: GraphqlOperation | GraphqlOperation[]) => Promise<unknown>;
|
|
8
9
|
fetch?: typeof globalThis.fetch;
|
|
9
10
|
batch?: unknown;
|
|
10
11
|
};
|
|
11
|
-
type
|
|
12
|
-
type TwentyGeneratedClientOptions = ClientOptions & {
|
|
12
|
+
export type TwentyGeneratedClientOptions = ClientOptions & {
|
|
13
13
|
runAs?: TwentyClientRunAs;
|
|
14
14
|
};
|
|
15
15
|
export declare class TwentyGeneratedClient {
|
package/dist/generate.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("./chunk-DWNI8pZO.js"),t=require("./application-
|
|
1
|
+
Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("./chunk-DWNI8pZO.js"),t=require("./application-B8_Undo1.js");let n=require("node:fs/promises"),r=require("node:path"),i=require("esbuild"),a=require("graphql"),o=require("lodash/camelCase.js");o=e.n(o);let s=require("node:fs"),c=require("node:os"),l=require("prettier/standalone");l=e.n(l);let u=require("prettier/plugins/graphql");u=e.n(u);let d=require("prettier/plugins/typescript");d=e.n(d);let f=require("prettier/plugins/estree");f=e.n(f);let p=require("lodash/uniq.js");p=e.n(p);let ee=require("node:url");var te=`// __STRIPPED_DURING_INJECTION_START__`,ne=`// __STRIPPED_DURING_INJECTION_END__`,m=`// __UPLOAD_FILE_START__`,h=`// __UPLOAD_FILE_END__`,g=e=>e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`),_=(e,t)=>{let n=e;return n=n.replace(RegExp(`${g(te)}[\\s\\S]*?${g(ne)}\\n?`),``),n=n.replace(`'__TWENTY_DEFAULT_URL__'`,t.defaultUrl),n=n.replace(/TwentyGeneratedClient/g,t.apiClientName),t.includeUploadFile?(n=n.replace(RegExp(`\\s*${g(m)}\\n`),`
|
|
2
2
|
`),n=n.replace(RegExp(`\\s*${g(h)}\\n`),`
|
|
3
3
|
`)):n=n.replace(RegExp(`\\s*${g(m)}[\\s\\S]*?${g(h)}\\n?`),`
|
|
4
4
|
`),`\n// ${t.apiClientName} (auto-injected by twenty-client-sdk)\n${n}`},v=e=>(0,n.mkdir)(e,{recursive:!0}),y=async e=>{let t;try{t=await(0,n.readdir)(e)}catch(t){if(t instanceof Error&&`code`in t&&t.code===`ENOENT`){await(0,n.mkdir)(e,{recursive:!0});return}throw t}await Promise.all(t.map(t=>(0,n.rm)((0,r.join)(e,t),{recursive:!0,force:!0})))},b=async(e,t)=>{try{await(0,n.rename)(e,t)}catch(r){if(r instanceof Error&&`code`in r&&r.code===`EXDEV`)await(0,n.cp)(e,t,{recursive:!0}),await(0,n.rm)(e,{recursive:!0,force:!0});else throw r}},x=e=>(0,n.rm)(e,{recursive:!0,force:!0}),re=e=>{let{root:t}=(0,r.parse)(e),n=e.slice(t.length).split(/[\\/]/).filter(Boolean).length,i=(0,r.resolve)((0,c.homedir)()),a=e===i||i.startsWith(`${e}/`);if(e===t||n<2||a)throw Error(`Refusing to recursively clear unsafe path: ${e}`)},S=async(e,t=!1)=>{let n=(0,r.resolve)(...e);t&&(re(n),await s.promises.rm(n,{recursive:!0,force:!0})),await s.promises.mkdir(n,{recursive:!0})},C=async(e,t)=>{let n=(0,r.resolve)(...e,`..`);await s.promises.mkdir(n,{recursive:!0}),await s.promises.writeFile((0,r.resolve)(...e),t)},w=`./runtime`,T=e=>e?`${e.name}GenqlSelection`:``,ie=e=>{let t=e.config?.endpoint?`"${e.config.endpoint}"`:`undefined`,n=e.config?.fetchImport;return`
|
|
@@ -1091,14 +1091,16 @@ export interface LinkedTypeMap {
|
|
|
1091
1091
|
`)+`
|
|
1092
1092
|
}
|
|
1093
1093
|
`).join(`
|
|
1094
|
-
`))}var Ie=async e=>{if(!e.schema)throw Error("`schema` must be defined in the config");let t=(0,a.buildSchema)(e.schema,{assumeValidSDL:!0}),n=e.sortProperties?(0,a.lexicographicSortSchema)(t):t;return n.getQueryType()&&(0,a.assertValidSchema)(n),n},Z=async e=>{if(!e.output)throw Error("`output` must be defined in the config");await Pe(e,await Ie(e))},Le={DateTime:`string`,JSON:`Record<string, unknown>`,UUID:`string`},Q=`core/generated`,$=async({schema:e,outputPath:i,clientWrapperTemplateSource:a})=>{let o=a
|
|
1094
|
+
`))}var Ie=async e=>{if(!e.schema)throw Error("`schema` must be defined in the config");let t=(0,a.buildSchema)(e.schema,{assumeValidSDL:!0}),n=e.sortProperties?(0,a.lexicographicSortSchema)(t):t;return n.getQueryType()&&(0,a.assertValidSchema)(n),n},Z=async e=>{if(!e.output)throw Error("`output` must be defined in the config");await Pe(e,await Ie(e))},Le={DateTime:`string`,JSON:`Record<string, unknown>`,UUID:`string`},Q=`core/generated`,$=async({schema:e,outputPath:i,clientWrapperTemplateSource:a})=>{let o=a??`import type { TwentyClientRunAs } from '../shared/twenty-client-run-as.type';
|
|
1095
|
+
|
|
1096
|
+
// Ambient type stubs for the genql-generated code this template gets
|
|
1095
1097
|
// injected into. They enable full typecheck/lint on this file.
|
|
1096
1098
|
// __STRIPPED_DURING_INJECTION_START__
|
|
1097
1099
|
type QueryGenqlSelection = Record<string, unknown>;
|
|
1098
1100
|
type MutationGenqlSelection = Record<string, unknown>;
|
|
1099
1101
|
type GraphqlOperation = Record<string, unknown>;
|
|
1100
1102
|
|
|
1101
|
-
type ClientOptions = {
|
|
1103
|
+
type ClientOptions = Omit<RequestInit, 'body' | 'headers'> & {
|
|
1102
1104
|
url?: string;
|
|
1103
1105
|
headers?: HeadersInit | (() => HeadersInit | Promise<HeadersInit>);
|
|
1104
1106
|
fetcher?: (
|
|
@@ -1129,12 +1131,7 @@ const APP_APPLICATION_ACCESS_TOKEN_ENV_KEY =
|
|
|
1129
1131
|
'TWENTY_APP_APPLICATION_ACCESS_TOKEN';
|
|
1130
1132
|
const API_KEY_ENV_KEY = 'TWENTY_API_KEY';
|
|
1131
1133
|
|
|
1132
|
-
|
|
1133
|
-
// intersected with the application's, and as the application alone when nobody
|
|
1134
|
-
// triggered it. 'application' asks for the application's access either way.
|
|
1135
|
-
type TwentyClientRunAs = 'user' | 'application';
|
|
1136
|
-
|
|
1137
|
-
type TwentyGeneratedClientOptions = ClientOptions & {
|
|
1134
|
+
export type TwentyGeneratedClientOptions = ClientOptions & {
|
|
1138
1135
|
runAs?: TwentyClientRunAs;
|
|
1139
1136
|
};
|
|
1140
1137
|
|
|
@@ -1540,14 +1537,16 @@ export class TwentyGeneratedClient {
|
|
|
1540
1537
|
processEnvironment[APP_ACCESS_TOKEN_ENV_KEY] = token;
|
|
1541
1538
|
}
|
|
1542
1539
|
}
|
|
1543
|
-
`,s=`${i}.tmp`;await v(s),await y(s);try{await Z({schema:e,output:s,scalarTypes:Le});let a=_(o,{apiClientName:`CoreApiClient`,defaultUrl:`\`\${process.env.${t.
|
|
1540
|
+
`,s=`${i}.tmp`;await v(s),await y(s);try{await Z({schema:e,output:s,scalarTypes:Le});let a=_(o,{apiClientName:`CoreApiClient`,defaultUrl:`\`\${process.env.${t.a}}/graphql\``,includeUploadFile:!0});await(0,n.appendFile)((0,r.join)(s,`index.ts`),a),await x(i),await b(s,i),await ze(i)}catch(e){throw await x(s),e}},Re=async({packageRoot:e,schema:t})=>{let i=(0,r.join)(e,`dist`,Q);await $({schema:t,outputPath:i}),await(0,n.copyFile)((0,r.join)(i,`index.mjs`),(0,r.join)(e,`dist`,`core.mjs`)),await(0,n.copyFile)((0,r.join)(i,`index.cjs`),(0,r.join)(e,`dist`,`core.cjs`))},ze=async e=>{let t=(0,r.join)(e,`index.ts`),a=(0,r.join)(e,`index.mjs`);await(0,i.build)({entryPoints:[t],outfile:a,bundle:!0,format:`esm`,platform:`node`,target:`node18`,sourcemap:!1,minify:!1}),await(0,i.build)({entryPoints:[t],outfile:(0,r.join)(e,`index.cjs`),bundle:!0,format:`cjs`,platform:`node`,target:`node18`,sourcemap:!1,minify:!1}),await(0,n.writeFile)((0,r.join)(e,`package.json`),JSON.stringify({type:`module`,main:`index.mjs`,module:`index.mjs`},null,2))},Be={DateTime:`string`,JSON:`Record<string, unknown>`,UUID:`string`},Ve=async({schema:e,outputPath:i,clientWrapperTemplateSource:a})=>{let o=a??`import type { TwentyClientRunAs } from '../shared/twenty-client-run-as.type';
|
|
1541
|
+
|
|
1542
|
+
// Ambient type stubs for the genql-generated code this template gets
|
|
1544
1543
|
// injected into. They enable full typecheck/lint on this file.
|
|
1545
1544
|
// __STRIPPED_DURING_INJECTION_START__
|
|
1546
1545
|
type QueryGenqlSelection = Record<string, unknown>;
|
|
1547
1546
|
type MutationGenqlSelection = Record<string, unknown>;
|
|
1548
1547
|
type GraphqlOperation = Record<string, unknown>;
|
|
1549
1548
|
|
|
1550
|
-
type ClientOptions = {
|
|
1549
|
+
type ClientOptions = Omit<RequestInit, 'body' | 'headers'> & {
|
|
1551
1550
|
url?: string;
|
|
1552
1551
|
headers?: HeadersInit | (() => HeadersInit | Promise<HeadersInit>);
|
|
1553
1552
|
fetcher?: (
|
|
@@ -1578,12 +1577,7 @@ const APP_APPLICATION_ACCESS_TOKEN_ENV_KEY =
|
|
|
1578
1577
|
'TWENTY_APP_APPLICATION_ACCESS_TOKEN';
|
|
1579
1578
|
const API_KEY_ENV_KEY = 'TWENTY_API_KEY';
|
|
1580
1579
|
|
|
1581
|
-
|
|
1582
|
-
// intersected with the application's, and as the application alone when nobody
|
|
1583
|
-
// triggered it. 'application' asks for the application's access either way.
|
|
1584
|
-
type TwentyClientRunAs = 'user' | 'application';
|
|
1585
|
-
|
|
1586
|
-
type TwentyGeneratedClientOptions = ClientOptions & {
|
|
1580
|
+
export type TwentyGeneratedClientOptions = ClientOptions & {
|
|
1587
1581
|
runAs?: TwentyClientRunAs;
|
|
1588
1582
|
};
|
|
1589
1583
|
|
|
@@ -1989,4 +1983,4 @@ export class TwentyGeneratedClient {
|
|
|
1989
1983
|
processEnvironment[APP_ACCESS_TOKEN_ENV_KEY] = token;
|
|
1990
1984
|
}
|
|
1991
1985
|
}
|
|
1992
|
-
`;await v(i),await y(i),await Z({schema:e,output:i,scalarTypes:{...Be,Upload:`File`}});let s=_(o,{apiClientName:`MetadataApiClient`,defaultUrl:`\`\${process.env.${t.
|
|
1986
|
+
`;await v(i),await y(i),await Z({schema:e,output:i,scalarTypes:{...Be,Upload:`File`}});let s=_(o,{apiClientName:`MetadataApiClient`,defaultUrl:`\`\${process.env.${t.a}}/metadata\``,includeUploadFile:!0});await(0,n.appendFile)((0,r.join)(i,`index.ts`),s)};exports.GENERATED_CORE_DIR=Q,exports.generateCoreClientFromSchema=$,exports.generateMetadataClient=Ve,exports.replaceCoreClient=Re;
|
package/dist/generate.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { a as e } from "./application-yzkKx8Nd.mjs";
|
|
2
2
|
import { appendFile as t, copyFile as n, cp as r, mkdir as i, readdir as a, rename as o, rm as s, writeFile as c } from "node:fs/promises";
|
|
3
3
|
import { dirname as l, join as u, parse as ee, relative as d, resolve as f } from "node:path";
|
|
4
4
|
import { build as p } from "esbuild";
|
|
@@ -522,7 +522,7 @@ var ot = async (e) => {
|
|
|
522
522
|
JSON: "Record<string, unknown>",
|
|
523
523
|
UUID: "string"
|
|
524
524
|
}, Q = "core/generated", $ = async ({ schema: n, outputPath: r, clientWrapperTemplateSource: i }) => {
|
|
525
|
-
let a = i ?? "// Ambient type stubs for the genql-generated code this template gets\n// injected into. They enable full typecheck/lint on this file.\n// __STRIPPED_DURING_INJECTION_START__\ntype QueryGenqlSelection = Record<string, unknown>;\ntype MutationGenqlSelection = Record<string, unknown>;\ntype GraphqlOperation = Record<string, unknown>;\n\ntype ClientOptions = {\n url?: string;\n headers?: HeadersInit | (() => HeadersInit | Promise<HeadersInit>);\n fetcher?: (\n operation: GraphqlOperation | GraphqlOperation[],\n ) => Promise<unknown>;\n fetch?: typeof globalThis.fetch;\n batch?: unknown;\n};\n\ntype Client = {\n query: (\n request: QueryGenqlSelection & { __name?: string },\n ) => Promise<unknown>;\n mutation: (\n request: MutationGenqlSelection & { __name?: string },\n ) => Promise<unknown>;\n};\n\ndeclare function createClient(options: ClientOptions): Client;\n\ndeclare class GenqlError extends Error {\n constructor(errors: unknown, data: unknown);\n}\n// __STRIPPED_DURING_INJECTION_END__\n\nconst APP_ACCESS_TOKEN_ENV_KEY = 'TWENTY_APP_ACCESS_TOKEN';\nconst APP_APPLICATION_ACCESS_TOKEN_ENV_KEY =\n 'TWENTY_APP_APPLICATION_ACCESS_TOKEN';\nconst API_KEY_ENV_KEY = 'TWENTY_API_KEY';\n\n// The default acts as the person who triggered the run, limited to their role\n// intersected with the application's, and as the application alone when nobody\n// triggered it. 'application' asks for the application's access either way.\ntype TwentyClientRunAs = 'user' | 'application';\n\ntype TwentyGeneratedClientOptions = ClientOptions & {\n runAs?: TwentyClientRunAs;\n};\n\ntype ProcessEnvironment = Record<string, string | undefined>;\n\ntype GraphqlErrorPayloadEntry = {\n message?: string;\n extensions?: { code?: string };\n};\n\ntype GraphqlResponsePayload = {\n data?: Record<string, unknown>;\n errors?: GraphqlErrorPayloadEntry[];\n};\n\ntype GraphqlResponse = {\n status: number;\n statusText: string;\n payload: GraphqlResponsePayload | null;\n rawBody: string;\n};\n\nconst getProcessEnvironment = (): ProcessEnvironment => {\n const processObject = (\n globalThis as { process?: { env?: ProcessEnvironment } }\n ).process;\n\n return processObject?.env ?? {};\n};\n\nconst getTokenFromAuthorizationHeader = (\n authorizationHeader: string | undefined,\n): string | null => {\n if (typeof authorizationHeader !== 'string') {\n return null;\n }\n\n const trimmedAuthorizationHeader = authorizationHeader.trim();\n\n if (trimmedAuthorizationHeader.length === 0) {\n return null;\n }\n\n if (trimmedAuthorizationHeader === 'Bearer') {\n return null;\n }\n\n if (trimmedAuthorizationHeader.startsWith('Bearer ')) {\n return trimmedAuthorizationHeader.slice('Bearer '.length).trim();\n }\n\n return trimmedAuthorizationHeader;\n};\n\nconst getTokenFromHeaders = (\n headers: HeadersInit | undefined,\n): string | null => {\n if (!headers) {\n return null;\n }\n\n if (headers instanceof Headers) {\n return getTokenFromAuthorizationHeader(\n headers.get('Authorization') ?? undefined,\n );\n }\n\n if (Array.isArray(headers)) {\n const matchedAuthorizationHeader = headers.find(\n ([headerName]) => headerName.toLowerCase() === 'authorization',\n );\n\n return getTokenFromAuthorizationHeader(matchedAuthorizationHeader?.[1]);\n }\n\n const headersRecord = headers as Record<string, string | undefined>;\n\n return getTokenFromAuthorizationHeader(\n headersRecord.Authorization ?? headersRecord.authorization,\n );\n};\n\nconst hasAuthenticationErrorInGraphqlPayload = (\n payload: GraphqlResponsePayload | null,\n): boolean => {\n if (!payload?.errors) {\n return false;\n }\n\n return payload.errors.some((graphqlError) => {\n return (\n graphqlError.extensions?.code === 'UNAUTHENTICATED' ||\n graphqlError.message?.toLowerCase() === 'unauthorized'\n );\n });\n};\n\nconst defaultOptions: TwentyGeneratedClientOptions = {\n url: '__TWENTY_DEFAULT_URL__',\n headers: {\n 'Content-Type': 'application/json',\n },\n};\n\nexport class TwentyGeneratedClient {\n private client: Client;\n private url: string;\n private requestOptions: RequestInit;\n private headers: HeadersInit | (() => HeadersInit | Promise<HeadersInit>);\n private fetchImplementation: typeof globalThis.fetch | null;\n private authorizationToken: string | null;\n private refreshAccessTokenPromise: Promise<string | null> | null = null;\n\n constructor(options?: TwentyGeneratedClientOptions) {\n const merged: TwentyGeneratedClientOptions = {\n ...defaultOptions,\n ...options,\n };\n\n const {\n url,\n headers,\n fetch: customFetchImplementation,\n fetcher: _fetcher,\n batch: _batch,\n runAs,\n ...requestOptions\n } = merged;\n\n this.url = url ?? '';\n this.requestOptions = requestOptions;\n this.headers = headers ?? {};\n this.fetchImplementation =\n customFetchImplementation ?? globalThis.fetch ?? null;\n\n const processEnvironment = getProcessEnvironment();\n const tokenFromHeaders = getTokenFromHeaders(\n typeof headers === 'function' ? undefined : headers,\n );\n\n // Priority: explicit header > the token for the requested access > api key\n // (legacy).\n this.authorizationToken =\n tokenFromHeaders ??\n processEnvironment[\n runAs === 'application'\n ? APP_APPLICATION_ACCESS_TOKEN_ENV_KEY\n : APP_ACCESS_TOKEN_ENV_KEY\n ] ??\n processEnvironment[API_KEY_ENV_KEY] ??\n null;\n\n this.client = createClient({\n ...merged,\n headers: undefined,\n fetcher: async (operation) =>\n this.executeGraphqlRequestWithOptionalRefresh({\n operation,\n }),\n });\n }\n\n query<R extends QueryGenqlSelection>(request: R & { __name?: string }) {\n return this.client.query(request);\n }\n\n mutation<R extends MutationGenqlSelection>(request: R & { __name?: string }) {\n return this.client.mutation(request);\n }\n\n // __UPLOAD_FILE_START__\n async uploadFile(\n fileBuffer: Buffer,\n filename: string,\n contentType: string = 'application/octet-stream',\n fieldMetadataUniversalIdentifier: string,\n ): Promise<{\n id: string;\n path: string;\n size: number;\n createdAt: string;\n url: string;\n }> {\n const form = new FormData();\n\n form.append(\n 'operations',\n JSON.stringify({\n query: `mutation UploadFilesFieldFileByUniversalIdentifier($file: Upload!, $fieldMetadataUniversalIdentifier: String!) {\n uploadFilesFieldFileByUniversalIdentifier(file: $file, fieldMetadataUniversalIdentifier: $fieldMetadataUniversalIdentifier) { id path size createdAt url }\n }`,\n variables: {\n file: null,\n fieldMetadataUniversalIdentifier,\n },\n }),\n );\n form.append('map', JSON.stringify({ '0': ['variables.file'] }));\n form.append(\n '0',\n new Blob([fileBuffer as BlobPart], { type: contentType }),\n filename,\n );\n\n const result = await this.executeGraphqlRequestWithOptionalRefresh({\n operation: form,\n headers: {},\n requestInit: {\n method: 'POST',\n },\n });\n\n if (result.errors) {\n throw new GenqlError(result.errors, result.data);\n }\n\n const data = result.data as Record<string, unknown>;\n\n return data.uploadFilesFieldFileByUniversalIdentifier as {\n id: string;\n path: string;\n size: number;\n createdAt: string;\n url: string;\n };\n }\n // __UPLOAD_FILE_END__\n\n private async executeGraphqlRequestWithOptionalRefresh({\n operation,\n headers,\n requestInit,\n }: {\n operation: GraphqlOperation | GraphqlOperation[] | FormData;\n headers?: HeadersInit;\n requestInit?: RequestInit;\n }) {\n const firstResponse = await this.executeGraphqlRequest({\n operation,\n headers,\n requestInit,\n token: this.authorizationToken,\n });\n\n if (this.shouldRefreshToken(firstResponse)) {\n const refreshedAccessToken = await this.requestRefreshedAccessToken();\n\n if (refreshedAccessToken) {\n const retryResponse = await this.executeGraphqlRequest({\n operation,\n headers,\n requestInit,\n token: refreshedAccessToken,\n });\n\n return this.assertResponseIsSuccessful(retryResponse);\n }\n }\n\n return this.assertResponseIsSuccessful(firstResponse);\n }\n\n private async executeGraphqlRequest({\n operation,\n headers,\n requestInit,\n token,\n }: {\n operation: GraphqlOperation | GraphqlOperation[] | FormData;\n headers?: HeadersInit;\n requestInit?: RequestInit;\n token: string | null;\n }): Promise<GraphqlResponse> {\n if (!this.fetchImplementation) {\n throw new Error(\n 'Global `fetch` function is not available, ' +\n 'pass a fetch implementation to the Twenty client',\n );\n }\n\n const resolvedHeaders = await this.resolveHeaders();\n const requestHeaders = new Headers(resolvedHeaders);\n\n if (headers) {\n new Headers(headers).forEach((value, key) =>\n requestHeaders.set(key, value),\n );\n }\n\n if (operation instanceof FormData) {\n requestHeaders.delete('Content-Type');\n } else {\n requestHeaders.set('Content-Type', 'application/json');\n }\n\n if (token) {\n requestHeaders.set('Authorization', `Bearer ${token}`);\n } else {\n requestHeaders.delete('Authorization');\n }\n\n const response = await this.fetchImplementation.call(globalThis, this.url, {\n ...this.requestOptions,\n ...requestInit,\n method: requestInit?.method ?? 'POST',\n headers: requestHeaders,\n body:\n operation instanceof FormData ? operation : JSON.stringify(operation),\n });\n\n const rawBody = await response.text();\n let payload: GraphqlResponsePayload | null = null;\n\n if (rawBody.trim().length > 0) {\n try {\n payload = JSON.parse(rawBody) as GraphqlResponsePayload;\n } catch {\n payload = null;\n }\n }\n\n return {\n status: response.status,\n statusText: response.statusText,\n payload,\n rawBody,\n };\n }\n\n private async resolveHeaders(): Promise<HeadersInit> {\n if (typeof this.headers === 'function') {\n return (await this.headers()) ?? {};\n }\n\n return this.headers ?? {};\n }\n\n private shouldRefreshToken(response: GraphqlResponse): boolean {\n if (response.status === 401) {\n return true;\n }\n\n return hasAuthenticationErrorInGraphqlPayload(response.payload);\n }\n\n private assertResponseIsSuccessful(response: GraphqlResponse) {\n if (response.status < 200 || response.status >= 300) {\n throw new Error(`${response.statusText}: ${response.rawBody}`);\n }\n\n if (response.payload === null) {\n throw new Error('Invalid JSON response');\n }\n\n return response.payload;\n }\n\n private async requestRefreshedAccessToken(): Promise<string | null> {\n const refreshAccessTokenFunction = (\n globalThis as {\n frontComponentHostCommunicationApi?: {\n requestAccessTokenRefresh?: () => Promise<string>;\n };\n }\n ).frontComponentHostCommunicationApi?.requestAccessTokenRefresh;\n\n if (typeof refreshAccessTokenFunction !== 'function') {\n return null;\n }\n\n if (!this.refreshAccessTokenPromise) {\n this.refreshAccessTokenPromise = refreshAccessTokenFunction()\n .then((refreshedAccessToken) => {\n if (\n typeof refreshedAccessToken !== 'string' ||\n refreshedAccessToken.length === 0\n ) {\n return null;\n }\n\n this.setAuthorizationToken(refreshedAccessToken);\n\n return refreshedAccessToken;\n })\n .catch((refreshError: unknown) => {\n console.error('Twenty client: token refresh failed', refreshError);\n\n return null;\n })\n .finally(() => {\n this.refreshAccessTokenPromise = null;\n });\n }\n\n return this.refreshAccessTokenPromise;\n }\n\n private setAuthorizationToken(token: string) {\n this.authorizationToken = token;\n\n const processEnvironment = getProcessEnvironment();\n\n processEnvironment[APP_ACCESS_TOKEN_ENV_KEY] = token;\n }\n}\n", o = `${r}.tmp`;
|
|
525
|
+
let a = i ?? "import type { TwentyClientRunAs } from '../shared/twenty-client-run-as.type';\n\n// Ambient type stubs for the genql-generated code this template gets\n// injected into. They enable full typecheck/lint on this file.\n// __STRIPPED_DURING_INJECTION_START__\ntype QueryGenqlSelection = Record<string, unknown>;\ntype MutationGenqlSelection = Record<string, unknown>;\ntype GraphqlOperation = Record<string, unknown>;\n\ntype ClientOptions = Omit<RequestInit, 'body' | 'headers'> & {\n url?: string;\n headers?: HeadersInit | (() => HeadersInit | Promise<HeadersInit>);\n fetcher?: (\n operation: GraphqlOperation | GraphqlOperation[],\n ) => Promise<unknown>;\n fetch?: typeof globalThis.fetch;\n batch?: unknown;\n};\n\ntype Client = {\n query: (\n request: QueryGenqlSelection & { __name?: string },\n ) => Promise<unknown>;\n mutation: (\n request: MutationGenqlSelection & { __name?: string },\n ) => Promise<unknown>;\n};\n\ndeclare function createClient(options: ClientOptions): Client;\n\ndeclare class GenqlError extends Error {\n constructor(errors: unknown, data: unknown);\n}\n// __STRIPPED_DURING_INJECTION_END__\n\nconst APP_ACCESS_TOKEN_ENV_KEY = 'TWENTY_APP_ACCESS_TOKEN';\nconst APP_APPLICATION_ACCESS_TOKEN_ENV_KEY =\n 'TWENTY_APP_APPLICATION_ACCESS_TOKEN';\nconst API_KEY_ENV_KEY = 'TWENTY_API_KEY';\n\nexport type TwentyGeneratedClientOptions = ClientOptions & {\n runAs?: TwentyClientRunAs;\n};\n\ntype ProcessEnvironment = Record<string, string | undefined>;\n\ntype GraphqlErrorPayloadEntry = {\n message?: string;\n extensions?: { code?: string };\n};\n\ntype GraphqlResponsePayload = {\n data?: Record<string, unknown>;\n errors?: GraphqlErrorPayloadEntry[];\n};\n\ntype GraphqlResponse = {\n status: number;\n statusText: string;\n payload: GraphqlResponsePayload | null;\n rawBody: string;\n};\n\nconst getProcessEnvironment = (): ProcessEnvironment => {\n const processObject = (\n globalThis as { process?: { env?: ProcessEnvironment } }\n ).process;\n\n return processObject?.env ?? {};\n};\n\nconst getTokenFromAuthorizationHeader = (\n authorizationHeader: string | undefined,\n): string | null => {\n if (typeof authorizationHeader !== 'string') {\n return null;\n }\n\n const trimmedAuthorizationHeader = authorizationHeader.trim();\n\n if (trimmedAuthorizationHeader.length === 0) {\n return null;\n }\n\n if (trimmedAuthorizationHeader === 'Bearer') {\n return null;\n }\n\n if (trimmedAuthorizationHeader.startsWith('Bearer ')) {\n return trimmedAuthorizationHeader.slice('Bearer '.length).trim();\n }\n\n return trimmedAuthorizationHeader;\n};\n\nconst getTokenFromHeaders = (\n headers: HeadersInit | undefined,\n): string | null => {\n if (!headers) {\n return null;\n }\n\n if (headers instanceof Headers) {\n return getTokenFromAuthorizationHeader(\n headers.get('Authorization') ?? undefined,\n );\n }\n\n if (Array.isArray(headers)) {\n const matchedAuthorizationHeader = headers.find(\n ([headerName]) => headerName.toLowerCase() === 'authorization',\n );\n\n return getTokenFromAuthorizationHeader(matchedAuthorizationHeader?.[1]);\n }\n\n const headersRecord = headers as Record<string, string | undefined>;\n\n return getTokenFromAuthorizationHeader(\n headersRecord.Authorization ?? headersRecord.authorization,\n );\n};\n\nconst hasAuthenticationErrorInGraphqlPayload = (\n payload: GraphqlResponsePayload | null,\n): boolean => {\n if (!payload?.errors) {\n return false;\n }\n\n return payload.errors.some((graphqlError) => {\n return (\n graphqlError.extensions?.code === 'UNAUTHENTICATED' ||\n graphqlError.message?.toLowerCase() === 'unauthorized'\n );\n });\n};\n\nconst defaultOptions: TwentyGeneratedClientOptions = {\n url: '__TWENTY_DEFAULT_URL__',\n headers: {\n 'Content-Type': 'application/json',\n },\n};\n\nexport class TwentyGeneratedClient {\n private client: Client;\n private url: string;\n private requestOptions: RequestInit;\n private headers: HeadersInit | (() => HeadersInit | Promise<HeadersInit>);\n private fetchImplementation: typeof globalThis.fetch | null;\n private authorizationToken: string | null;\n private refreshAccessTokenPromise: Promise<string | null> | null = null;\n\n constructor(options?: TwentyGeneratedClientOptions) {\n const merged: TwentyGeneratedClientOptions = {\n ...defaultOptions,\n ...options,\n };\n\n const {\n url,\n headers,\n fetch: customFetchImplementation,\n fetcher: _fetcher,\n batch: _batch,\n runAs,\n ...requestOptions\n } = merged;\n\n this.url = url ?? '';\n this.requestOptions = requestOptions;\n this.headers = headers ?? {};\n this.fetchImplementation =\n customFetchImplementation ?? globalThis.fetch ?? null;\n\n const processEnvironment = getProcessEnvironment();\n const tokenFromHeaders = getTokenFromHeaders(\n typeof headers === 'function' ? undefined : headers,\n );\n\n // Priority: explicit header > the token for the requested access > api key\n // (legacy).\n this.authorizationToken =\n tokenFromHeaders ??\n processEnvironment[\n runAs === 'application'\n ? APP_APPLICATION_ACCESS_TOKEN_ENV_KEY\n : APP_ACCESS_TOKEN_ENV_KEY\n ] ??\n processEnvironment[API_KEY_ENV_KEY] ??\n null;\n\n this.client = createClient({\n ...merged,\n headers: undefined,\n fetcher: async (operation) =>\n this.executeGraphqlRequestWithOptionalRefresh({\n operation,\n }),\n });\n }\n\n query<R extends QueryGenqlSelection>(request: R & { __name?: string }) {\n return this.client.query(request);\n }\n\n mutation<R extends MutationGenqlSelection>(request: R & { __name?: string }) {\n return this.client.mutation(request);\n }\n\n // __UPLOAD_FILE_START__\n async uploadFile(\n fileBuffer: Buffer,\n filename: string,\n contentType: string = 'application/octet-stream',\n fieldMetadataUniversalIdentifier: string,\n ): Promise<{\n id: string;\n path: string;\n size: number;\n createdAt: string;\n url: string;\n }> {\n const form = new FormData();\n\n form.append(\n 'operations',\n JSON.stringify({\n query: `mutation UploadFilesFieldFileByUniversalIdentifier($file: Upload!, $fieldMetadataUniversalIdentifier: String!) {\n uploadFilesFieldFileByUniversalIdentifier(file: $file, fieldMetadataUniversalIdentifier: $fieldMetadataUniversalIdentifier) { id path size createdAt url }\n }`,\n variables: {\n file: null,\n fieldMetadataUniversalIdentifier,\n },\n }),\n );\n form.append('map', JSON.stringify({ '0': ['variables.file'] }));\n form.append(\n '0',\n new Blob([fileBuffer as BlobPart], { type: contentType }),\n filename,\n );\n\n const result = await this.executeGraphqlRequestWithOptionalRefresh({\n operation: form,\n headers: {},\n requestInit: {\n method: 'POST',\n },\n });\n\n if (result.errors) {\n throw new GenqlError(result.errors, result.data);\n }\n\n const data = result.data as Record<string, unknown>;\n\n return data.uploadFilesFieldFileByUniversalIdentifier as {\n id: string;\n path: string;\n size: number;\n createdAt: string;\n url: string;\n };\n }\n // __UPLOAD_FILE_END__\n\n private async executeGraphqlRequestWithOptionalRefresh({\n operation,\n headers,\n requestInit,\n }: {\n operation: GraphqlOperation | GraphqlOperation[] | FormData;\n headers?: HeadersInit;\n requestInit?: RequestInit;\n }) {\n const firstResponse = await this.executeGraphqlRequest({\n operation,\n headers,\n requestInit,\n token: this.authorizationToken,\n });\n\n if (this.shouldRefreshToken(firstResponse)) {\n const refreshedAccessToken = await this.requestRefreshedAccessToken();\n\n if (refreshedAccessToken) {\n const retryResponse = await this.executeGraphqlRequest({\n operation,\n headers,\n requestInit,\n token: refreshedAccessToken,\n });\n\n return this.assertResponseIsSuccessful(retryResponse);\n }\n }\n\n return this.assertResponseIsSuccessful(firstResponse);\n }\n\n private async executeGraphqlRequest({\n operation,\n headers,\n requestInit,\n token,\n }: {\n operation: GraphqlOperation | GraphqlOperation[] | FormData;\n headers?: HeadersInit;\n requestInit?: RequestInit;\n token: string | null;\n }): Promise<GraphqlResponse> {\n if (!this.fetchImplementation) {\n throw new Error(\n 'Global `fetch` function is not available, ' +\n 'pass a fetch implementation to the Twenty client',\n );\n }\n\n const resolvedHeaders = await this.resolveHeaders();\n const requestHeaders = new Headers(resolvedHeaders);\n\n if (headers) {\n new Headers(headers).forEach((value, key) =>\n requestHeaders.set(key, value),\n );\n }\n\n if (operation instanceof FormData) {\n requestHeaders.delete('Content-Type');\n } else {\n requestHeaders.set('Content-Type', 'application/json');\n }\n\n if (token) {\n requestHeaders.set('Authorization', `Bearer ${token}`);\n } else {\n requestHeaders.delete('Authorization');\n }\n\n const response = await this.fetchImplementation.call(globalThis, this.url, {\n ...this.requestOptions,\n ...requestInit,\n method: requestInit?.method ?? 'POST',\n headers: requestHeaders,\n body:\n operation instanceof FormData ? operation : JSON.stringify(operation),\n });\n\n const rawBody = await response.text();\n let payload: GraphqlResponsePayload | null = null;\n\n if (rawBody.trim().length > 0) {\n try {\n payload = JSON.parse(rawBody) as GraphqlResponsePayload;\n } catch {\n payload = null;\n }\n }\n\n return {\n status: response.status,\n statusText: response.statusText,\n payload,\n rawBody,\n };\n }\n\n private async resolveHeaders(): Promise<HeadersInit> {\n if (typeof this.headers === 'function') {\n return (await this.headers()) ?? {};\n }\n\n return this.headers ?? {};\n }\n\n private shouldRefreshToken(response: GraphqlResponse): boolean {\n if (response.status === 401) {\n return true;\n }\n\n return hasAuthenticationErrorInGraphqlPayload(response.payload);\n }\n\n private assertResponseIsSuccessful(response: GraphqlResponse) {\n if (response.status < 200 || response.status >= 300) {\n throw new Error(`${response.statusText}: ${response.rawBody}`);\n }\n\n if (response.payload === null) {\n throw new Error('Invalid JSON response');\n }\n\n return response.payload;\n }\n\n private async requestRefreshedAccessToken(): Promise<string | null> {\n const refreshAccessTokenFunction = (\n globalThis as {\n frontComponentHostCommunicationApi?: {\n requestAccessTokenRefresh?: () => Promise<string>;\n };\n }\n ).frontComponentHostCommunicationApi?.requestAccessTokenRefresh;\n\n if (typeof refreshAccessTokenFunction !== 'function') {\n return null;\n }\n\n if (!this.refreshAccessTokenPromise) {\n this.refreshAccessTokenPromise = refreshAccessTokenFunction()\n .then((refreshedAccessToken) => {\n if (\n typeof refreshedAccessToken !== 'string' ||\n refreshedAccessToken.length === 0\n ) {\n return null;\n }\n\n this.setAuthorizationToken(refreshedAccessToken);\n\n return refreshedAccessToken;\n })\n .catch((refreshError: unknown) => {\n console.error('Twenty client: token refresh failed', refreshError);\n\n return null;\n })\n .finally(() => {\n this.refreshAccessTokenPromise = null;\n });\n }\n\n return this.refreshAccessTokenPromise;\n }\n\n private setAuthorizationToken(token: string) {\n this.authorizationToken = token;\n\n const processEnvironment = getProcessEnvironment();\n\n processEnvironment[APP_ACCESS_TOKEN_ENV_KEY] = token;\n }\n}\n", o = `${r}.tmp`;
|
|
526
526
|
await O(o), await k(o);
|
|
527
527
|
try {
|
|
528
528
|
await Z({
|
|
@@ -575,7 +575,7 @@ var ot = async (e) => {
|
|
|
575
575
|
JSON: "Record<string, unknown>",
|
|
576
576
|
UUID: "string"
|
|
577
577
|
}, dt = async ({ schema: n, outputPath: r, clientWrapperTemplateSource: i }) => {
|
|
578
|
-
let a = i ?? "// Ambient type stubs for the genql-generated code this template gets\n// injected into. They enable full typecheck/lint on this file.\n// __STRIPPED_DURING_INJECTION_START__\ntype QueryGenqlSelection = Record<string, unknown>;\ntype MutationGenqlSelection = Record<string, unknown>;\ntype GraphqlOperation = Record<string, unknown>;\n\ntype ClientOptions = {\n url?: string;\n headers?: HeadersInit | (() => HeadersInit | Promise<HeadersInit>);\n fetcher?: (\n operation: GraphqlOperation | GraphqlOperation[],\n ) => Promise<unknown>;\n fetch?: typeof globalThis.fetch;\n batch?: unknown;\n};\n\ntype Client = {\n query: (\n request: QueryGenqlSelection & { __name?: string },\n ) => Promise<unknown>;\n mutation: (\n request: MutationGenqlSelection & { __name?: string },\n ) => Promise<unknown>;\n};\n\ndeclare function createClient(options: ClientOptions): Client;\n\ndeclare class GenqlError extends Error {\n constructor(errors: unknown, data: unknown);\n}\n// __STRIPPED_DURING_INJECTION_END__\n\nconst APP_ACCESS_TOKEN_ENV_KEY = 'TWENTY_APP_ACCESS_TOKEN';\nconst APP_APPLICATION_ACCESS_TOKEN_ENV_KEY =\n 'TWENTY_APP_APPLICATION_ACCESS_TOKEN';\nconst API_KEY_ENV_KEY = 'TWENTY_API_KEY';\n\n// The default acts as the person who triggered the run, limited to their role\n// intersected with the application's, and as the application alone when nobody\n// triggered it. 'application' asks for the application's access either way.\ntype TwentyClientRunAs = 'user' | 'application';\n\ntype TwentyGeneratedClientOptions = ClientOptions & {\n runAs?: TwentyClientRunAs;\n};\n\ntype ProcessEnvironment = Record<string, string | undefined>;\n\ntype GraphqlErrorPayloadEntry = {\n message?: string;\n extensions?: { code?: string };\n};\n\ntype GraphqlResponsePayload = {\n data?: Record<string, unknown>;\n errors?: GraphqlErrorPayloadEntry[];\n};\n\ntype GraphqlResponse = {\n status: number;\n statusText: string;\n payload: GraphqlResponsePayload | null;\n rawBody: string;\n};\n\nconst getProcessEnvironment = (): ProcessEnvironment => {\n const processObject = (\n globalThis as { process?: { env?: ProcessEnvironment } }\n ).process;\n\n return processObject?.env ?? {};\n};\n\nconst getTokenFromAuthorizationHeader = (\n authorizationHeader: string | undefined,\n): string | null => {\n if (typeof authorizationHeader !== 'string') {\n return null;\n }\n\n const trimmedAuthorizationHeader = authorizationHeader.trim();\n\n if (trimmedAuthorizationHeader.length === 0) {\n return null;\n }\n\n if (trimmedAuthorizationHeader === 'Bearer') {\n return null;\n }\n\n if (trimmedAuthorizationHeader.startsWith('Bearer ')) {\n return trimmedAuthorizationHeader.slice('Bearer '.length).trim();\n }\n\n return trimmedAuthorizationHeader;\n};\n\nconst getTokenFromHeaders = (\n headers: HeadersInit | undefined,\n): string | null => {\n if (!headers) {\n return null;\n }\n\n if (headers instanceof Headers) {\n return getTokenFromAuthorizationHeader(\n headers.get('Authorization') ?? undefined,\n );\n }\n\n if (Array.isArray(headers)) {\n const matchedAuthorizationHeader = headers.find(\n ([headerName]) => headerName.toLowerCase() === 'authorization',\n );\n\n return getTokenFromAuthorizationHeader(matchedAuthorizationHeader?.[1]);\n }\n\n const headersRecord = headers as Record<string, string | undefined>;\n\n return getTokenFromAuthorizationHeader(\n headersRecord.Authorization ?? headersRecord.authorization,\n );\n};\n\nconst hasAuthenticationErrorInGraphqlPayload = (\n payload: GraphqlResponsePayload | null,\n): boolean => {\n if (!payload?.errors) {\n return false;\n }\n\n return payload.errors.some((graphqlError) => {\n return (\n graphqlError.extensions?.code === 'UNAUTHENTICATED' ||\n graphqlError.message?.toLowerCase() === 'unauthorized'\n );\n });\n};\n\nconst defaultOptions: TwentyGeneratedClientOptions = {\n url: '__TWENTY_DEFAULT_URL__',\n headers: {\n 'Content-Type': 'application/json',\n },\n};\n\nexport class TwentyGeneratedClient {\n private client: Client;\n private url: string;\n private requestOptions: RequestInit;\n private headers: HeadersInit | (() => HeadersInit | Promise<HeadersInit>);\n private fetchImplementation: typeof globalThis.fetch | null;\n private authorizationToken: string | null;\n private refreshAccessTokenPromise: Promise<string | null> | null = null;\n\n constructor(options?: TwentyGeneratedClientOptions) {\n const merged: TwentyGeneratedClientOptions = {\n ...defaultOptions,\n ...options,\n };\n\n const {\n url,\n headers,\n fetch: customFetchImplementation,\n fetcher: _fetcher,\n batch: _batch,\n runAs,\n ...requestOptions\n } = merged;\n\n this.url = url ?? '';\n this.requestOptions = requestOptions;\n this.headers = headers ?? {};\n this.fetchImplementation =\n customFetchImplementation ?? globalThis.fetch ?? null;\n\n const processEnvironment = getProcessEnvironment();\n const tokenFromHeaders = getTokenFromHeaders(\n typeof headers === 'function' ? undefined : headers,\n );\n\n // Priority: explicit header > the token for the requested access > api key\n // (legacy).\n this.authorizationToken =\n tokenFromHeaders ??\n processEnvironment[\n runAs === 'application'\n ? APP_APPLICATION_ACCESS_TOKEN_ENV_KEY\n : APP_ACCESS_TOKEN_ENV_KEY\n ] ??\n processEnvironment[API_KEY_ENV_KEY] ??\n null;\n\n this.client = createClient({\n ...merged,\n headers: undefined,\n fetcher: async (operation) =>\n this.executeGraphqlRequestWithOptionalRefresh({\n operation,\n }),\n });\n }\n\n query<R extends QueryGenqlSelection>(request: R & { __name?: string }) {\n return this.client.query(request);\n }\n\n mutation<R extends MutationGenqlSelection>(request: R & { __name?: string }) {\n return this.client.mutation(request);\n }\n\n // __UPLOAD_FILE_START__\n async uploadFile(\n fileBuffer: Buffer,\n filename: string,\n contentType: string = 'application/octet-stream',\n fieldMetadataUniversalIdentifier: string,\n ): Promise<{\n id: string;\n path: string;\n size: number;\n createdAt: string;\n url: string;\n }> {\n const form = new FormData();\n\n form.append(\n 'operations',\n JSON.stringify({\n query: `mutation UploadFilesFieldFileByUniversalIdentifier($file: Upload!, $fieldMetadataUniversalIdentifier: String!) {\n uploadFilesFieldFileByUniversalIdentifier(file: $file, fieldMetadataUniversalIdentifier: $fieldMetadataUniversalIdentifier) { id path size createdAt url }\n }`,\n variables: {\n file: null,\n fieldMetadataUniversalIdentifier,\n },\n }),\n );\n form.append('map', JSON.stringify({ '0': ['variables.file'] }));\n form.append(\n '0',\n new Blob([fileBuffer as BlobPart], { type: contentType }),\n filename,\n );\n\n const result = await this.executeGraphqlRequestWithOptionalRefresh({\n operation: form,\n headers: {},\n requestInit: {\n method: 'POST',\n },\n });\n\n if (result.errors) {\n throw new GenqlError(result.errors, result.data);\n }\n\n const data = result.data as Record<string, unknown>;\n\n return data.uploadFilesFieldFileByUniversalIdentifier as {\n id: string;\n path: string;\n size: number;\n createdAt: string;\n url: string;\n };\n }\n // __UPLOAD_FILE_END__\n\n private async executeGraphqlRequestWithOptionalRefresh({\n operation,\n headers,\n requestInit,\n }: {\n operation: GraphqlOperation | GraphqlOperation[] | FormData;\n headers?: HeadersInit;\n requestInit?: RequestInit;\n }) {\n const firstResponse = await this.executeGraphqlRequest({\n operation,\n headers,\n requestInit,\n token: this.authorizationToken,\n });\n\n if (this.shouldRefreshToken(firstResponse)) {\n const refreshedAccessToken = await this.requestRefreshedAccessToken();\n\n if (refreshedAccessToken) {\n const retryResponse = await this.executeGraphqlRequest({\n operation,\n headers,\n requestInit,\n token: refreshedAccessToken,\n });\n\n return this.assertResponseIsSuccessful(retryResponse);\n }\n }\n\n return this.assertResponseIsSuccessful(firstResponse);\n }\n\n private async executeGraphqlRequest({\n operation,\n headers,\n requestInit,\n token,\n }: {\n operation: GraphqlOperation | GraphqlOperation[] | FormData;\n headers?: HeadersInit;\n requestInit?: RequestInit;\n token: string | null;\n }): Promise<GraphqlResponse> {\n if (!this.fetchImplementation) {\n throw new Error(\n 'Global `fetch` function is not available, ' +\n 'pass a fetch implementation to the Twenty client',\n );\n }\n\n const resolvedHeaders = await this.resolveHeaders();\n const requestHeaders = new Headers(resolvedHeaders);\n\n if (headers) {\n new Headers(headers).forEach((value, key) =>\n requestHeaders.set(key, value),\n );\n }\n\n if (operation instanceof FormData) {\n requestHeaders.delete('Content-Type');\n } else {\n requestHeaders.set('Content-Type', 'application/json');\n }\n\n if (token) {\n requestHeaders.set('Authorization', `Bearer ${token}`);\n } else {\n requestHeaders.delete('Authorization');\n }\n\n const response = await this.fetchImplementation.call(globalThis, this.url, {\n ...this.requestOptions,\n ...requestInit,\n method: requestInit?.method ?? 'POST',\n headers: requestHeaders,\n body:\n operation instanceof FormData ? operation : JSON.stringify(operation),\n });\n\n const rawBody = await response.text();\n let payload: GraphqlResponsePayload | null = null;\n\n if (rawBody.trim().length > 0) {\n try {\n payload = JSON.parse(rawBody) as GraphqlResponsePayload;\n } catch {\n payload = null;\n }\n }\n\n return {\n status: response.status,\n statusText: response.statusText,\n payload,\n rawBody,\n };\n }\n\n private async resolveHeaders(): Promise<HeadersInit> {\n if (typeof this.headers === 'function') {\n return (await this.headers()) ?? {};\n }\n\n return this.headers ?? {};\n }\n\n private shouldRefreshToken(response: GraphqlResponse): boolean {\n if (response.status === 401) {\n return true;\n }\n\n return hasAuthenticationErrorInGraphqlPayload(response.payload);\n }\n\n private assertResponseIsSuccessful(response: GraphqlResponse) {\n if (response.status < 200 || response.status >= 300) {\n throw new Error(`${response.statusText}: ${response.rawBody}`);\n }\n\n if (response.payload === null) {\n throw new Error('Invalid JSON response');\n }\n\n return response.payload;\n }\n\n private async requestRefreshedAccessToken(): Promise<string | null> {\n const refreshAccessTokenFunction = (\n globalThis as {\n frontComponentHostCommunicationApi?: {\n requestAccessTokenRefresh?: () => Promise<string>;\n };\n }\n ).frontComponentHostCommunicationApi?.requestAccessTokenRefresh;\n\n if (typeof refreshAccessTokenFunction !== 'function') {\n return null;\n }\n\n if (!this.refreshAccessTokenPromise) {\n this.refreshAccessTokenPromise = refreshAccessTokenFunction()\n .then((refreshedAccessToken) => {\n if (\n typeof refreshedAccessToken !== 'string' ||\n refreshedAccessToken.length === 0\n ) {\n return null;\n }\n\n this.setAuthorizationToken(refreshedAccessToken);\n\n return refreshedAccessToken;\n })\n .catch((refreshError: unknown) => {\n console.error('Twenty client: token refresh failed', refreshError);\n\n return null;\n })\n .finally(() => {\n this.refreshAccessTokenPromise = null;\n });\n }\n\n return this.refreshAccessTokenPromise;\n }\n\n private setAuthorizationToken(token: string) {\n this.authorizationToken = token;\n\n const processEnvironment = getProcessEnvironment();\n\n processEnvironment[APP_ACCESS_TOKEN_ENV_KEY] = token;\n }\n}\n";
|
|
578
|
+
let a = i ?? "import type { TwentyClientRunAs } from '../shared/twenty-client-run-as.type';\n\n// Ambient type stubs for the genql-generated code this template gets\n// injected into. They enable full typecheck/lint on this file.\n// __STRIPPED_DURING_INJECTION_START__\ntype QueryGenqlSelection = Record<string, unknown>;\ntype MutationGenqlSelection = Record<string, unknown>;\ntype GraphqlOperation = Record<string, unknown>;\n\ntype ClientOptions = Omit<RequestInit, 'body' | 'headers'> & {\n url?: string;\n headers?: HeadersInit | (() => HeadersInit | Promise<HeadersInit>);\n fetcher?: (\n operation: GraphqlOperation | GraphqlOperation[],\n ) => Promise<unknown>;\n fetch?: typeof globalThis.fetch;\n batch?: unknown;\n};\n\ntype Client = {\n query: (\n request: QueryGenqlSelection & { __name?: string },\n ) => Promise<unknown>;\n mutation: (\n request: MutationGenqlSelection & { __name?: string },\n ) => Promise<unknown>;\n};\n\ndeclare function createClient(options: ClientOptions): Client;\n\ndeclare class GenqlError extends Error {\n constructor(errors: unknown, data: unknown);\n}\n// __STRIPPED_DURING_INJECTION_END__\n\nconst APP_ACCESS_TOKEN_ENV_KEY = 'TWENTY_APP_ACCESS_TOKEN';\nconst APP_APPLICATION_ACCESS_TOKEN_ENV_KEY =\n 'TWENTY_APP_APPLICATION_ACCESS_TOKEN';\nconst API_KEY_ENV_KEY = 'TWENTY_API_KEY';\n\nexport type TwentyGeneratedClientOptions = ClientOptions & {\n runAs?: TwentyClientRunAs;\n};\n\ntype ProcessEnvironment = Record<string, string | undefined>;\n\ntype GraphqlErrorPayloadEntry = {\n message?: string;\n extensions?: { code?: string };\n};\n\ntype GraphqlResponsePayload = {\n data?: Record<string, unknown>;\n errors?: GraphqlErrorPayloadEntry[];\n};\n\ntype GraphqlResponse = {\n status: number;\n statusText: string;\n payload: GraphqlResponsePayload | null;\n rawBody: string;\n};\n\nconst getProcessEnvironment = (): ProcessEnvironment => {\n const processObject = (\n globalThis as { process?: { env?: ProcessEnvironment } }\n ).process;\n\n return processObject?.env ?? {};\n};\n\nconst getTokenFromAuthorizationHeader = (\n authorizationHeader: string | undefined,\n): string | null => {\n if (typeof authorizationHeader !== 'string') {\n return null;\n }\n\n const trimmedAuthorizationHeader = authorizationHeader.trim();\n\n if (trimmedAuthorizationHeader.length === 0) {\n return null;\n }\n\n if (trimmedAuthorizationHeader === 'Bearer') {\n return null;\n }\n\n if (trimmedAuthorizationHeader.startsWith('Bearer ')) {\n return trimmedAuthorizationHeader.slice('Bearer '.length).trim();\n }\n\n return trimmedAuthorizationHeader;\n};\n\nconst getTokenFromHeaders = (\n headers: HeadersInit | undefined,\n): string | null => {\n if (!headers) {\n return null;\n }\n\n if (headers instanceof Headers) {\n return getTokenFromAuthorizationHeader(\n headers.get('Authorization') ?? undefined,\n );\n }\n\n if (Array.isArray(headers)) {\n const matchedAuthorizationHeader = headers.find(\n ([headerName]) => headerName.toLowerCase() === 'authorization',\n );\n\n return getTokenFromAuthorizationHeader(matchedAuthorizationHeader?.[1]);\n }\n\n const headersRecord = headers as Record<string, string | undefined>;\n\n return getTokenFromAuthorizationHeader(\n headersRecord.Authorization ?? headersRecord.authorization,\n );\n};\n\nconst hasAuthenticationErrorInGraphqlPayload = (\n payload: GraphqlResponsePayload | null,\n): boolean => {\n if (!payload?.errors) {\n return false;\n }\n\n return payload.errors.some((graphqlError) => {\n return (\n graphqlError.extensions?.code === 'UNAUTHENTICATED' ||\n graphqlError.message?.toLowerCase() === 'unauthorized'\n );\n });\n};\n\nconst defaultOptions: TwentyGeneratedClientOptions = {\n url: '__TWENTY_DEFAULT_URL__',\n headers: {\n 'Content-Type': 'application/json',\n },\n};\n\nexport class TwentyGeneratedClient {\n private client: Client;\n private url: string;\n private requestOptions: RequestInit;\n private headers: HeadersInit | (() => HeadersInit | Promise<HeadersInit>);\n private fetchImplementation: typeof globalThis.fetch | null;\n private authorizationToken: string | null;\n private refreshAccessTokenPromise: Promise<string | null> | null = null;\n\n constructor(options?: TwentyGeneratedClientOptions) {\n const merged: TwentyGeneratedClientOptions = {\n ...defaultOptions,\n ...options,\n };\n\n const {\n url,\n headers,\n fetch: customFetchImplementation,\n fetcher: _fetcher,\n batch: _batch,\n runAs,\n ...requestOptions\n } = merged;\n\n this.url = url ?? '';\n this.requestOptions = requestOptions;\n this.headers = headers ?? {};\n this.fetchImplementation =\n customFetchImplementation ?? globalThis.fetch ?? null;\n\n const processEnvironment = getProcessEnvironment();\n const tokenFromHeaders = getTokenFromHeaders(\n typeof headers === 'function' ? undefined : headers,\n );\n\n // Priority: explicit header > the token for the requested access > api key\n // (legacy).\n this.authorizationToken =\n tokenFromHeaders ??\n processEnvironment[\n runAs === 'application'\n ? APP_APPLICATION_ACCESS_TOKEN_ENV_KEY\n : APP_ACCESS_TOKEN_ENV_KEY\n ] ??\n processEnvironment[API_KEY_ENV_KEY] ??\n null;\n\n this.client = createClient({\n ...merged,\n headers: undefined,\n fetcher: async (operation) =>\n this.executeGraphqlRequestWithOptionalRefresh({\n operation,\n }),\n });\n }\n\n query<R extends QueryGenqlSelection>(request: R & { __name?: string }) {\n return this.client.query(request);\n }\n\n mutation<R extends MutationGenqlSelection>(request: R & { __name?: string }) {\n return this.client.mutation(request);\n }\n\n // __UPLOAD_FILE_START__\n async uploadFile(\n fileBuffer: Buffer,\n filename: string,\n contentType: string = 'application/octet-stream',\n fieldMetadataUniversalIdentifier: string,\n ): Promise<{\n id: string;\n path: string;\n size: number;\n createdAt: string;\n url: string;\n }> {\n const form = new FormData();\n\n form.append(\n 'operations',\n JSON.stringify({\n query: `mutation UploadFilesFieldFileByUniversalIdentifier($file: Upload!, $fieldMetadataUniversalIdentifier: String!) {\n uploadFilesFieldFileByUniversalIdentifier(file: $file, fieldMetadataUniversalIdentifier: $fieldMetadataUniversalIdentifier) { id path size createdAt url }\n }`,\n variables: {\n file: null,\n fieldMetadataUniversalIdentifier,\n },\n }),\n );\n form.append('map', JSON.stringify({ '0': ['variables.file'] }));\n form.append(\n '0',\n new Blob([fileBuffer as BlobPart], { type: contentType }),\n filename,\n );\n\n const result = await this.executeGraphqlRequestWithOptionalRefresh({\n operation: form,\n headers: {},\n requestInit: {\n method: 'POST',\n },\n });\n\n if (result.errors) {\n throw new GenqlError(result.errors, result.data);\n }\n\n const data = result.data as Record<string, unknown>;\n\n return data.uploadFilesFieldFileByUniversalIdentifier as {\n id: string;\n path: string;\n size: number;\n createdAt: string;\n url: string;\n };\n }\n // __UPLOAD_FILE_END__\n\n private async executeGraphqlRequestWithOptionalRefresh({\n operation,\n headers,\n requestInit,\n }: {\n operation: GraphqlOperation | GraphqlOperation[] | FormData;\n headers?: HeadersInit;\n requestInit?: RequestInit;\n }) {\n const firstResponse = await this.executeGraphqlRequest({\n operation,\n headers,\n requestInit,\n token: this.authorizationToken,\n });\n\n if (this.shouldRefreshToken(firstResponse)) {\n const refreshedAccessToken = await this.requestRefreshedAccessToken();\n\n if (refreshedAccessToken) {\n const retryResponse = await this.executeGraphqlRequest({\n operation,\n headers,\n requestInit,\n token: refreshedAccessToken,\n });\n\n return this.assertResponseIsSuccessful(retryResponse);\n }\n }\n\n return this.assertResponseIsSuccessful(firstResponse);\n }\n\n private async executeGraphqlRequest({\n operation,\n headers,\n requestInit,\n token,\n }: {\n operation: GraphqlOperation | GraphqlOperation[] | FormData;\n headers?: HeadersInit;\n requestInit?: RequestInit;\n token: string | null;\n }): Promise<GraphqlResponse> {\n if (!this.fetchImplementation) {\n throw new Error(\n 'Global `fetch` function is not available, ' +\n 'pass a fetch implementation to the Twenty client',\n );\n }\n\n const resolvedHeaders = await this.resolveHeaders();\n const requestHeaders = new Headers(resolvedHeaders);\n\n if (headers) {\n new Headers(headers).forEach((value, key) =>\n requestHeaders.set(key, value),\n );\n }\n\n if (operation instanceof FormData) {\n requestHeaders.delete('Content-Type');\n } else {\n requestHeaders.set('Content-Type', 'application/json');\n }\n\n if (token) {\n requestHeaders.set('Authorization', `Bearer ${token}`);\n } else {\n requestHeaders.delete('Authorization');\n }\n\n const response = await this.fetchImplementation.call(globalThis, this.url, {\n ...this.requestOptions,\n ...requestInit,\n method: requestInit?.method ?? 'POST',\n headers: requestHeaders,\n body:\n operation instanceof FormData ? operation : JSON.stringify(operation),\n });\n\n const rawBody = await response.text();\n let payload: GraphqlResponsePayload | null = null;\n\n if (rawBody.trim().length > 0) {\n try {\n payload = JSON.parse(rawBody) as GraphqlResponsePayload;\n } catch {\n payload = null;\n }\n }\n\n return {\n status: response.status,\n statusText: response.statusText,\n payload,\n rawBody,\n };\n }\n\n private async resolveHeaders(): Promise<HeadersInit> {\n if (typeof this.headers === 'function') {\n return (await this.headers()) ?? {};\n }\n\n return this.headers ?? {};\n }\n\n private shouldRefreshToken(response: GraphqlResponse): boolean {\n if (response.status === 401) {\n return true;\n }\n\n return hasAuthenticationErrorInGraphqlPayload(response.payload);\n }\n\n private assertResponseIsSuccessful(response: GraphqlResponse) {\n if (response.status < 200 || response.status >= 300) {\n throw new Error(`${response.statusText}: ${response.rawBody}`);\n }\n\n if (response.payload === null) {\n throw new Error('Invalid JSON response');\n }\n\n return response.payload;\n }\n\n private async requestRefreshedAccessToken(): Promise<string | null> {\n const refreshAccessTokenFunction = (\n globalThis as {\n frontComponentHostCommunicationApi?: {\n requestAccessTokenRefresh?: () => Promise<string>;\n };\n }\n ).frontComponentHostCommunicationApi?.requestAccessTokenRefresh;\n\n if (typeof refreshAccessTokenFunction !== 'function') {\n return null;\n }\n\n if (!this.refreshAccessTokenPromise) {\n this.refreshAccessTokenPromise = refreshAccessTokenFunction()\n .then((refreshedAccessToken) => {\n if (\n typeof refreshedAccessToken !== 'string' ||\n refreshedAccessToken.length === 0\n ) {\n return null;\n }\n\n this.setAuthorizationToken(refreshedAccessToken);\n\n return refreshedAccessToken;\n })\n .catch((refreshError: unknown) => {\n console.error('Twenty client: token refresh failed', refreshError);\n\n return null;\n })\n .finally(() => {\n this.refreshAccessTokenPromise = null;\n });\n }\n\n return this.refreshAccessTokenPromise;\n }\n\n private setAuthorizationToken(token: string) {\n this.authorizationToken = token;\n\n const processEnvironment = getProcessEnvironment();\n\n processEnvironment[APP_ACCESS_TOKEN_ENV_KEY] = token;\n }\n}\n";
|
|
579
579
|
await O(r), await k(r), await Z({
|
|
580
580
|
schema: n,
|
|
581
581
|
output: r,
|
|
@@ -27,8 +27,8 @@ export type SubscriptionResult<fields extends SubscriptionGenqlSelection> = Fiel
|
|
|
27
27
|
export declare const generateSubscriptionOp: (fields: SubscriptionGenqlSelection & {
|
|
28
28
|
__name?: string;
|
|
29
29
|
}) => GraphqlOperation;
|
|
30
|
-
type TwentyClientRunAs
|
|
31
|
-
type MetadataApiClientOptions = ClientOptions & {
|
|
30
|
+
import type { TwentyClientRunAs } from '../shared/twenty-client-run-as.type';
|
|
31
|
+
export type MetadataApiClientOptions = ClientOptions & {
|
|
32
32
|
runAs?: TwentyClientRunAs;
|
|
33
33
|
};
|
|
34
34
|
export declare class MetadataApiClient {
|