@stackone/core 2.46.0 → 2.48.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/index.cjs CHANGED
@@ -1 +1 @@
1
- var e=Object.create,t=Object.defineProperty,__name=(e,n)=>t(e,`name`,{value:n,configurable:!0}),n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,__copyProps=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},__toESM=(n,r,a)=>(a=n==null?{}:e(i(n)),__copyProps(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));let o=require(`@stackone/utils`),s=require(`@stackone/expressions`),c=require(`@stackone/transport`),l=require(`mime-types`);l=__toESM(l);let u=require(`form-data`);u=__toESM(u);const d={hris:{title:`HRIS`,key:`hris`,description:`Human Resource Information System`},crm:{title:`CRM`,key:`crm`,description:`Customer Relationship Management`},ats:{title:`ATS`,key:`ats`,description:`Applicant Tracking System`},lms:{title:`LMS`,key:`lms`,description:`Learning Management System`},marketing:{title:`Marketing`,key:`marketing`,description:`Marketing`},filestorage:{title:`File Storage`,key:`filestorage`,description:`File Storage`},internal:{title:`Internal`,key:`internal`,description:`Category for internal actions`},action:{title:`Action`,key:`action`,description:`Action`}},getCategoryDetails=e=>d[e.toLowerCase()]??null,isValidCategory=e=>!!d[e.toLowerCase()],f=`so1!`,p=(0,o.encodeToBase64)(`so1!`),m=`:`,h=`,`,g=RegExp(`(?<!\\\\):`,`g`),_=RegExp(`(?<!\\\\),`,`g`),v=1;var y=class CoreError extends Error{constructor({category:e,name:t,type:n,context:r,message:i}){super(i),this.name=t??`CoreError`,this.type=n,this.category=e,this.context=r,Error.captureStackTrace&&Error.captureStackTrace(this,CoreError)}toString(){let e=this.message?`: ${this.message}`:``;return`${this.category}-${this.name} [${this.type}]${e}`}},BaseCompositeIdError=class extends y{constructor(e,t,n){super({category:`CompositeId`,name:t??`BaseCompositeIdError`,type:e,message:n})}},CompositeIdMissingHeaderError=class extends BaseCompositeIdError{constructor(e){super(`COMPOSITE_ID_MISSING_HEADER_ERROR`,`CompositeIdMissingHeaderError`,e??`Invalid compositeId, missing header`)}},CompositeIdMissingBodyError=class extends BaseCompositeIdError{constructor(e){super(`COMPOSITE_ID_MISSING_BODY_ERROR`,`CompositeIdMissingBodyError`,e??`Invalid compositeId, missing body`)}},CompositeIdUnknownIdentifierError=class extends BaseCompositeIdError{constructor(e){super(`COMPOSITE_ID_UNKNOWN_IDENTIFIER_ERROR`,`CompositeIdUnknownIdentifierError`,e??`Invalid compositeId, unknown identifier`)}},CompositeIdUnsupportedVersionError=class extends BaseCompositeIdError{constructor(e){super(`COMPOSITE_ID_UNSUPPORTED_VERSION_ERROR`,`CompositeIdUnsupportedVersionError`,e??`Invalid compositeId, unsupported version`)}};const isSingleIdentifier=e=>!(0,o.isMissing)(e)&&`value`in e&&e.value!==void 0,isMultipleIdentifier=e=>!(0,o.isMissing)(e)&&`identifiers`in e&&e.identifiers!==void 0,encodeCompositeId=(e,t={version:1})=>{if(t.version===1)return encodeIdV1(getComposedIdV1(e,t.aliases));throw new CompositeIdUnsupportedVersionError(`Cannot generate ID, unsupported version number: ${t.version}`)},decodeCompositeId=(e,t={version:1})=>{let n=decodeId(e,t),r={};return n&&n.split(_).forEach(e=>{let[n,i]=e.split(g),a=getOriginalKey(n,t.aliases??{});r[a]=unescapeValue(i)}),r},getComposedIdV1=(e,t={})=>{if(isSingleIdentifier(e))return getSingleIdentifierString({identifier:e,compositeIdAliases:t,isSoleIdentifier:!0});if(isMultipleIdentifier(e))return e.identifiers.map(e=>getSingleIdentifierString({identifier:e,compositeIdAliases:t,isSoleIdentifier:!1})).join(`,`);throw new CompositeIdUnknownIdentifierError},getSingleIdentifierString=({identifier:e,compositeIdAliases:t,isSoleIdentifier:n})=>[n?`id`:t[e.key]||e.key,escapeValue(e.value)].filter(Boolean).join(`:`),getOriginalKey=(e,t)=>Object.keys(t).find(n=>t[n]===e)??e,decodeId=(e,t)=>{if(t.version===1)return decodeIdV1(e);throw new CompositeIdUnsupportedVersionError(`Cannot decode ID, unsupported version number: ${t.version}`)},encodeIdV1=e=>`${p}${(0,o.encodeToBase64)(e)}`,decodeIdV1=e=>{if(!e.startsWith(p))throw new CompositeIdMissingHeaderError(`Trying to decode an ID without the header: ${e}`);let t=e.split(p)[1];if(!t)throw new CompositeIdMissingBodyError(`Trying to decode an ID without a body: ${e}`);return(0,o.decodeFromBase64)(t)},escapeValue=e=>[`,`,`:`].reduce((e,t)=>e.replace(t,`\\`+t),e),unescapeValue=e=>[`,`,`:`].reduce((e,t)=>{let n=`\\`+t;return e.replace(RegExp(`\\\\`+n,`g`),t)},e),isCompositeId=e=>(0,o.isMissing)(e)?!1:e.startsWith(p),evaluateExternalAccountIdExtractor=(e,t)=>{let n=e.events?.externalAccountIdExtractor;if((0,o.isMissing)(n)||typeof n.result!=`string`||n.result.trim().length===0)return;let r=(0,s.safeEvaluate)(`{{${n.result.trim()}}}`,t);if(!(0,o.isMissing)(r)){if(typeof r==`string`){let e=r.trim();return e.length>0?e:void 0}if(typeof r==`number`||typeof r==`bigint`||typeof r==`boolean`)return String(r)}},evaluateEventRouter=(e,t)=>{let n=e.events?.router;if(!(0,o.isMissing)(n))for(let e of n.rules){let n=(0,s.safeEvaluate)(`{{${e.when.trim()}}}`,t);if(n!==null&&n!==!1&&n!==void 0){let n=e.then.input?Object.fromEntries(Object.entries(e.then.input).map(([e,n])=>[e,(0,s.safeEvaluate)(`{{${String(n).trim()}}}`,t)])):void 0;return{action:e.then.action,input:n}}}},b={employment_status:[`active`,`inactive`,`terminated`,`pending`,`leave`],employment_type:[`full_time`,`part_time`,`contractor`,`intern`,`temporary`],gender:[`male`,`female`,`non_binary`,`other`,`prefer_not_to_say`],marital_status:[`single`,`married`,`divorced`,`widowed`,`domestic_partnership`]},getInputEnumValues=e=>b[e],isValidEnumRef=e=>e in b,x=[`preview`,`beta`,`ga`,`deprecated`],S=(0,o.zStrictObject)({r:o.z.record(o.z.string(),(0,o.zStrictObject)({n:o.z.number().optional().nullable(),c:o.z.string().optional().nullable(),p:o.z.number().optional().nullable()})),v:o.z.number(),t:o.z.number()}),C=(0,o.zStrictObject)({remote:o.z.record(o.z.string(),(0,o.zStrictObject)({pageNumber:o.z.number().optional(),providerPageCursor:o.z.string().optional(),position:o.z.number().optional()})),version:o.z.number(),timestamp:o.z.number()}),minifyCursor=e=>(0,o.encodeToBase64)(JSON.stringify(minifyCursorObject(e))),minifyCursorObject=e=>{let{remote:t,version:n,timestamp:r}=e;return{r:Object.fromEntries(Object.entries(t).map(([e,{pageNumber:t,providerPageCursor:n,position:r}])=>[e,{n:t,c:n,p:r}])),v:n,t:r}},expandCursor=e=>{try{if((0,o.isString)(e)){let t=(0,o.decodeFromBase64)(e),n=JSON.parse(t);return expandCursorObject(S.parse(n))}else return C.parse(e),e}catch{return null}},expandCursorObject=e=>{let{r:t,v:n,t:r}=e;return{remote:Object.fromEntries(Object.entries(t).map(([e,{n:t,c:n,p:r}])=>[e,{pageNumber:t,providerPageCursor:n,position:r}])),version:n,timestamp:r}},areCursorsEqual=(e,t)=>{let n=typeof e==`string`?expandCursor(e):e,r=typeof t==`string`?expandCursor(t):t;if(n===null||r===null)return n===r;let{timestamp:i,...a}=n,{timestamp:s,...c}=r;return(0,o.getContentHash)(a)===(0,o.getContentHash)(c)},isCursorEmpty=({cursor:e,ignoreStepIndex:t})=>(0,o.isMissing)(e)?!0:Object.keys(e?.remote??{}).reduce((n,r)=>{let i=e?.remote?.[r];return((0,o.isMissing)(t)||r!==t.toString())&&(n=n&&(0,o.isMissing)(i.pageNumber)&&(0,o.isMissing)(i.position)&&(0,o.isMissing)(i.providerPageCursor)),n},!0),updateCursor=({cursor:e,stepIndex:t,pageNumber:n,providerPageCursor:r,position:i})=>{let a={pageNumber:n??void 0,providerPageCursor:r??void 0,position:i??void 0},s=(0,o.isMissing)(n)&&(0,o.isMissing)(r)&&(0,o.isMissing)(i);return(0,o.isMissing)(e)?{remote:s?{}:{[t]:a},version:2,timestamp:Date.now()}:s?(delete e.remote[t],e):{...e,remote:{...e.remote,[t]:a}}},isCoreError=e=>e instanceof y,sanitizeRaw=e=>{let t={};return e.status!=null&&(t.status=e.status),e.data!==void 0&&(t.data=e.data),e.headers!=null&&(t.headers=e.headers),e.requestUrl!=null&&(t.requestUrl=e.requestUrl),e.message!=null&&(t.message=e.message),t},isHttpLikeError=e=>typeof e==`object`&&!!e&&`response`in e&&e.response!=null&&typeof e.response==`object`,extractErrorMessage=(e,t)=>{let n=e.data;if(typeof n==`object`&&n&&!Array.isArray(n)){let e=n;if(typeof e.message==`string`&&e.message.trim().length>0)return e.message}if(typeof e.message==`string`&&e.message.length>0)return e.message;if(typeof n==`object`&&n&&!Array.isArray(n)){let e=n;if(e.error!=null&&typeof e.error==`object`&&!Array.isArray(e.error)&&typeof e.error.message==`string`)return e.error.message;if(typeof e.error==`string`)return e.error;if(typeof e.error_description==`string`)return e.error_description}return typeof n==`string`&&n.length>0?n:t},buildStepErrorOutput=(e,t)=>{if(e instanceof c.HttpResponseError){let n=e.message;return{block:t,successful:!1,errors:[(0,c.serializeHttpResponseError)(e)],output:{statusCode:e.response?.status??500,message:extractErrorMessage(e.response,n),data:e.response?.data,raw:sanitizeRaw(e.response)}}}if(isHttpLikeError(e)){let n=e.response,r=e instanceof Error?e.message:`HTTP error: ${n.status??500}`;return{block:t,successful:!1,errors:[(0,c.serializeHttpResponseError)(e)],output:{statusCode:n.status??500,message:extractErrorMessage(n,r),data:n.data,raw:sanitizeRaw(n)}}}return e instanceof Error?{block:t,successful:!1,errors:[(0,c.serializeHttpResponseError)(e)],output:{statusCode:500,message:e.message}}:{block:t,successful:!1,errors:[(0,c.serializeHttpResponseError)(e)],output:{statusCode:500,message:String(e)}}},w=(0,o.zStrictObject)({type:o.z.literal(`none`)}),T=(0,o.zStrictObject)({type:o.z.literal(`basic`),username:o.z.string().optional(),password:o.z.string().optional(),encoding:o.z.string().optional()}),E=(0,o.zStrictObject)({type:o.z.literal(`bearer`),token:o.z.string(),includeBearer:o.z.boolean().optional().default(!0)}),D=(0,o.zStrictObject)({type:o.z.literal(`oauth2`),authorizationUrl:o.z.string().optional(),authorizationParams:o.z.record(o.z.string(),o.z.string()).optional(),tokenUrl:o.z.string().optional(),tokenParams:o.z.record(o.z.string(),o.z.string()).optional(),tokenExpiresIn:o.z.number().optional(),tokenRefreshExpiresIn:o.z.number().optional(),token:o.z.string(),includeBearer:o.z.boolean().optional().default(!0),scopes:o.z.string().optional(),scopeDelimiter:o.z.string().optional(),customHeaders:o.z.record(o.z.string(),o.z.string()).optional(),pkce:o.z.boolean().optional(),additionalTokenFields:o.z.record(o.z.string(),o.z.string().optional()).optional()}),O=o.z.discriminatedUnion(`type`,[w,T,E,D]),k=(0,o.zStrictObject)({certs:o.z.string().array().optional(),keys:o.z.string().array().optional()}).optional(),A=o.z.object({baseUrl:o.z.string().optional(),url:o.z.string(),method:o.z.enum(c.HttpMethods).optional().default(`get`),authorization:O.optional(),responseMode:o.z.enum([`buffer`,`stream`]).optional().default(`buffer`),responseType:o.z.enum([`arraybuffer`,`blob`,`text`,`json`]).optional().default(`arraybuffer`),encoding:o.z.enum([`base64`,`utf8`,`binary`,`raw`,`none`]).optional().default(`base64`),response:(0,o.zStrictObject)({dataKey:o.z.string().optional(),fileNameKey:o.z.string().optional(),contentTypeKey:o.z.string().optional(),contentIsBase64:o.z.boolean().optional().default(!1),urlKey:o.z.string().optional(),forwardAuth:o.z.boolean().optional().default(!1)}).optional(),maxRedirects:o.z.number().optional().default(5),followRedirects:o.z.boolean().optional().default(!0),customErrors:c.CUSTOM_ERROR_CONFIG_SCHEMA.array().optional(),args:(0,o.zStrictObject)({name:o.z.string(),value:o.z.unknown(),in:o.z.enum(c.RequestParameterLocations),spread:o.z.boolean().optional(),condition:o.z.string().optional(),arrayFormat:o.z.enum(c.QueryArrayFormats).optional()}).array().optional()}),j=(0,o.zStrictObject)({data:o.z.union([o.z.string(),o.z.instanceof(Buffer)]).optional(),raw:o.z.unknown().optional(),statusCode:o.z.number(),message:o.z.string().optional(),headers:o.z.record(o.z.string(),o.z.string()).optional(),contentDisposition:o.z.string().optional(),fileMetadata:(0,o.zStrictObject)({contentType:o.z.string().optional(),contentLength:o.z.number().optional(),fileName:o.z.string().optional(),lastModified:o.z.string().optional(),etag:o.z.string().optional()}).optional(),finalUrl:o.z.string().optional()}).optional(),downloadFileStepFunction=async({block:e,params:t})=>{if(!e.httpClient)throw Error(`HTTP client is not configured`);let{args:n}=t,r=n?n.filter(t=>!t.condition||(0,s.evaluate)(t.condition,e)===!0).map(e=>({...e,condition:void 0})):void 0,i=t?(0,s.safeEvaluateRecord)({...t,args:r},e):{},a={...i,customErrors:t?.customErrors},{baseUrl:l,url:u,method:d,authorization:f,args:p,responseMode:m,responseType:h,encoding:g,response:_,maxRedirects:v,followRedirects:y}=A.parse(a),b=i?.authentication?.[e.context.authenticationType]?.[e.context.environment]?.authorization,x=p?(0,c.parseRequestParameters)(p):{query:{},body:{},headers:{}},S=(0,c.createAuthorizationHeaders)((0,o.notMissing)(f)?f:O.parse(b)),C={...x?.headers??{},...S},w=e.connector?.rateLimit,T=e.connector?.concurrency,E=w!==void 0||T!==void 0?{rateLimit:w,concurrency:T}:void 0;if(m===`stream`)return performStreamDownload({block:e,httpClient:e.httpClient,baseUrl:l??``,url:u,method:d,headers:C,queryParams:x?.query,body:x?.body,maxRedirects:y?v:0,requestConfig:E});try{return{block:e,successful:!0,output:await performDownload({httpClient:e.httpClient,baseUrl:l??``,url:u,method:d,headers:C,queryParams:x?.query,body:x?.body,responseType:h,encoding:g,response:_,maxRedirects:y?v:0,requestConfig:E,authHeaders:S})}}catch(t){return buildStepErrorOutput(t,e)}},performStreamDownload=async e=>{let{block:t,httpClient:n,baseUrl:r,url:i,method:a,headers:o,queryParams:s,body:c,maxRedirects:l,requestConfig:u}=e,d=`${r}${i}`;if(!d.startsWith(`http://`)&&!d.startsWith(`https://`))throw Error(`Invalid URL: "${d}". URL must be absolute (start with http:// or https://). Either provide a baseUrl or ensure url is a complete URL.`);if(!n.requestStream)throw Error(`HTTP client does not support streaming. Either implement requestStream method or use responseMode: "buffer".`);try{let e=await n.requestStream({url:d,method:a,headers:o,queryParams:s,payload:c,maxRedirects:l,requestConfig:u}),r=extractFileMetadata(e.headers),i=buildContentDisposition(r);return{block:t,successful:!0,streamOutput:{stream:e.stream,headers:e.headers,contentDisposition:i,fileMetadata:r}}}catch(e){return buildStepErrorOutput(e,t)}},performDownload=async e=>{let{httpClient:t,baseUrl:n,url:r,method:i,headers:a,queryParams:o,body:s,responseType:c,encoding:l,response:u,maxRedirects:d,requestConfig:f,authHeaders:p}=e,m=`${n}${r}`;if(!m.startsWith(`http://`)&&!m.startsWith(`https://`))throw Error(`Invalid URL: "${m}". URL must be absolute (start with http:// or https://). Either provide a baseUrl or ensure url is a complete URL.`);let h=u?.urlKey||u?.dataKey?`json`:c,g=await t.request({url:m,method:i,headers:a,queryParams:o,payload:s,responseType:h===`json`?void 0:h,maxRedirects:d,requestConfig:f});if(u?.urlKey||u?.dataKey)return handleJsonResponse({httpClient:t,result:g,response:u,encoding:l,maxRedirects:d,requestConfig:f,authHeaders:p});let _=encodeFileData(g.data,l),v=extractFileMetadata(g.headers),y=buildContentDisposition(v);return{data:_,raw:g,statusCode:g?.status,message:g?.message,headers:g.headers,contentDisposition:y,fileMetadata:v,finalUrl:g?.requestUrl}},handleJsonResponse=async e=>{let{httpClient:t,result:n,response:r,encoding:i,maxRedirects:a,requestConfig:s,authHeaders:c}=e,l=n.data;if(r.urlKey){let e=extractValueByPath(l,r.urlKey);if(typeof e==`string`){let n=await t.request({url:e,method:`get`,headers:r.forwardAuth?c:{},responseType:`arraybuffer`,maxRedirects:a,requestConfig:s}),o=encodeFileData(n.data,i),u=extractFileMetadata(n.headers);if(r.fileNameKey){let e=extractValueByPath(l,r.fileNameKey);typeof e==`string`&&(u.fileName=e)}if(r.contentTypeKey){let e=extractValueByPath(l,r.contentTypeKey);typeof e==`string`&&(u.contentType=e)}let d=buildContentDisposition(u);return{data:o,raw:n,statusCode:n?.status,message:n?.message,headers:n.headers,contentDisposition:d,fileMetadata:u,finalUrl:e}}}if(r.dataKey){let e=extractValueByPath(l,r.dataKey);if((0,o.isMissing)(e))throw Error(`No file content found at path: ${r.dataKey}`);let t;if(typeof e==`string`)t=r.contentIsBase64?i===`base64`?e:i===`none`?Buffer.from(e,`base64`):Buffer.from(e,`base64`).toString(i===`raw`?`binary`:i):encodeFileData(e,i);else if(e instanceof ArrayBuffer||ArrayBuffer.isView(e))t=encodeFileData(e,i);else throw Error(`Unexpected file content type at path: ${r.dataKey}`);let a={};if(r.fileNameKey){let e=extractValueByPath(l,r.fileNameKey);typeof e==`string`&&(a.fileName=e)}if(r.contentTypeKey){let e=extractValueByPath(l,r.contentTypeKey);typeof e==`string`&&(a.contentType=e)}let s=buildContentDisposition(a);return{data:t,raw:n,statusCode:n?.status,message:n?.message,headers:n.headers,contentDisposition:s,fileMetadata:a}}throw Error(`JSON response handling requires either urlKey or dataKey to be specified`)},extractValueByPath=(e,t)=>{let n=(t.startsWith(`$.`)?t.slice(2):t).split(`.`),r=e;for(let e of n){if((0,o.isMissing)(r)||typeof r!=`object`)return;r=r[e]}return r},encodeFileData=(e,t)=>{if(t===`none`)return e instanceof ArrayBuffer||ArrayBuffer.isView(e)||typeof e==`string`?Buffer.from(e):Buffer.from(JSON.stringify(e));if(t===`raw`)return typeof e==`string`?e:e instanceof ArrayBuffer||ArrayBuffer.isView(e)?Buffer.from(e).toString(`binary`):JSON.stringify(e);if(typeof e==`string`)return t===`base64`?Buffer.from(e).toString(`base64`):e;if(e instanceof ArrayBuffer||ArrayBuffer.isView(e)){let n=Buffer.from(e);switch(t){case`base64`:return n.toString(`base64`);case`utf8`:return n.toString(`utf8`);case`binary`:default:return n.toString(`binary`)}}return JSON.stringify(e)},extractFileMetadata=e=>{let t=(0,o.isString)(e[`content-type`])?e[`content-type`]:void 0,n=(0,o.isString)(e[`content-length`])?e[`content-length`]:void 0,r=(0,o.isString)(e[`content-disposition`])?e[`content-disposition`]:void 0,i=(0,o.isString)(e[`last-modified`])?e[`last-modified`]:void 0,a=(0,o.isString)(e.etag)?e.etag:void 0,s=n?parseInt(n,10):void 0,c=extractFileName(r);return{contentType:t,contentLength:Number.isNaN(s)?void 0:s,fileName:c,lastModified:i,etag:a}},extractFileName=e=>{if(!e)return;let t=e.match(/filename\*=(?:UTF-8''|utf-8'')([^;\s]+)/i);if(t&&t[1])try{return decodeURIComponent(t[1])}catch{}let n=e.match(/filename=["']([^"']+)["']/);if(n&&n[1])return n[1];let r=e.match(/filename=([^;\s]+)/);if(r&&r[1])return r[1]},buildContentDisposition=e=>{let{fileName:t,contentType:n}=e,r=`attachment`;if(t)r=`attachment; filename="${t}"; filename*=UTF-8''${encodeURIComponent(t).replace(/['()]/g,escape)}`;else if(n){let e=getExtensionFromContentType(n);e&&(r=`attachment; filename="download.${e}"`)}return r},getExtensionFromContentType=e=>{let t=e.split(`;`)[0].trim().toLowerCase();return l.default.extension(t)||void 0},M=o.z.object({event:o.z.object({eventType:o.z.string(),eventDate:o.z.string().optional(),data:o.z.unknown().optional()}).optional()}),N=o.z.record(o.z.string(),o.z.unknown()),emitEventStepFunction=async({block:e,params:t})=>{let n=t?(0,s.safeEvaluateRecord)(t,e):{},{event:r}=M.parse(n);if(r&&e.emitEvent)try{await e.emitEvent({eventType:r.eventType,eventDate:r.eventDate,data:r.data})}catch(t){throw e.logger?.error({code:`EmitEventError`,message:`emitEvent callback failed: ${t.message}`}),t}else r&&!e.emitEvent&&e.logger?.warning({message:`emit_event step executed but no emitEvent callback provided on the block`});let{event:i,...a}=n;return{block:{...e},successful:!0,output:a}},P=o.z.object({stepsDataToGroup:o.z.array(o.z.string()),isSingleRecord:o.z.boolean().optional()}),F=o.z.object({data:o.z.unknown()}),groupDataStepFunction=async({block:e,params:t})=>{let{stepsDataToGroup:n,isSingleRecord:r}=P.parse(t),i=n.reduce((t,n)=>{let i=e.steps?.[n]?.output?.data;return i?r?{...t,[n]:{...i}}:(Object.keys(i).forEach(e=>{t[e]={...(0,o.notMissing)(t[e])?t[e]:{},[n]:{...i[e]}}}),t):t},{});return{block:{...e},successful:!0,output:{data:r?i:Object.values(i)}}},I=__name(async({block:e})=>{let t=e?.fieldConfigs,n=[],r=e.steps;if(!t||e?.debug?.custom_mappings===`disabled`||!r)return{block:e,successful:!0};let i;if(Array.isArray(e.result)){let a=e.result.length;i=e.result.map((e,i)=>{let o=L(e,t,extractSingleRecordBlockStepData(r,a,i));return n.push(...o.errors||[]),o.record})}else{let a=L(e.result,t,r);i=a.record,n.push(...a.errors||[])}return{block:{...e,result:i},successful:!0,errors:Object.keys(n).length>0?n:void 0}},`mapFieldsStepFunction`),extractSingleRecordBlockStepData=(e,t,n)=>Object.entries(e).reduce((e,[r,i])=>{let a=i?.output?.data;return Array.isArray(a)&&a.length===t?e[r]={output:{data:a[n]}}:e[r]=i,e},{}),L=__name((e,t,n)=>{if(!e||!n)return{record:e};let r={unified:{...e},...typeof n==`object`?n:{}},i={},a=[],o={...e};for(let n of t){let{error:t,value:s}=R(r,e.id,n);if(t){a.push(t);continue}n.custom?i[n.targetFieldKey]=s:o[n.targetFieldKey]=s}return{record:{...o,unified_custom_fields:Object.keys(i).length>0?i:void 0},errors:a.length>0?a:void 0}},`mapSingleRecord`),R=__name((e,t,n)=>{let{expression:r,targetFieldKey:i}=n;if(!r)return{error:{message:`Expression is empty`,id:t,targetField:i}};let a;try{a=(0,s.evaluate)(r,e)}catch{return{error:{message:`Invalid expression`,id:t,targetField:i}}}return a===void 0?{error:{message:`Expression returned no value`,id:t,targetField:i}}:{value:a}},`extractFieldValue`),getEnumMatcher=e=>{switch(e){case`country_alpha2code_by_alpha2code`:return o.getCountryAlpha2CodeByAlpha2Code;case`country_alpha3code_by_alpha3code`:return o.getCountryAlpha3CodeByAlpha3Code;case`country_code_by_country_code`:return o.getCountryCodeByCountryCode;case`country_name_by_country_name`:return o.getCountryNameByCountryName;case`country_name_by_alpha3code`:return o.getCountryNameByAlpha3Code;case`country_name_by_alpha2code`:return o.getCountryNameByAlpha2Code;case`country_name_by_country_code`:return o.getCountryNameByCountryCode;case`country_alpha3code_by_alpha2code`:return o.getCountryAlpha3CodeByAlpha2Code;case`country_alpha3code_by_country_name`:return o.getCountryAlpha3CodeByCountryName;case`country_alpha3code_by_country_code`:return o.getCountryAlpha3CodeByCountryCode;case`country_alpha2code_by_alpha3code`:return o.getCountryAlpha2CodeByAlpha3Code;case`country_alpha2code_by_country_name`:return o.getCountryAlpha2CodeByCountryName;case`country_alpha2code_by_country_code`:return o.getCountryAlpha2CodeByCountryCode;case`country_code_by_alpha2code`:return o.getCountryCodeByAlpha2Code;case`country_code_by_alpha3code`:return o.getCountryCodeByAlpha3Code;case`country_code_by_country_name`:return o.getCountryCodeByCountryName;case`country_subdivisions_by_alpha2code`:return o.getCountrySubDivisionsByAlpha2Code;case`country_subdivision_code_by_subdivision_name`:return o.getCountrySubDivisionCodeBySubDivisionName;case`country_alpha2code_by_citizenship`:return o.getCountryAlpha2CodeByCitizenship;case`country_subdivision_name_by_subdivision_code`:return o.getCountrySubDivisionNameBySubDivisionCode;case`document_file_format_from_extension`:return o.getDocumentFileFormatFromExtension;default:return}},z=(0,o.zStrictObject)({targetFieldKey:o.z.string(),alias:o.z.string().optional(),expression:o.z.string().optional(),values:o.z.unknown().optional(),type:o.z.enum([`string`,`number`,`boolean`,`datetime_string`,`enum`,`object`]),array:o.z.boolean().default(!1),custom:o.z.boolean().default(!1),hidden:o.z.boolean().default(!1),enumMapper:(0,o.zStrictObject)({matcher:o.z.string().or((0,o.zStrictObject)({matchExpression:o.z.string(),value:o.z.string()}).array())}).optional(),properties:o.z.lazy(()=>z).array().optional(),requiredScopes:o.z.string().array().optional()}),B=o.z.object({fields:z.array(),dataSource:o.z.string(),externalSources:o.z.record(o.z.string(),o.z.string()).optional()}),V=o.z.object({data:o.z.unknown()}),mapFieldsStepFunction=async({block:e,params:t})=>{let n=[],{fields:r,dataSource:i,externalSources:a}=B.parse(t),o=(0,s.evaluate)(i,e);if(!r||!i||e?.debug?.custom_mappings===`disabled`||!o)return{block:e,successful:!0};let c=Object.keys(a??{})?.reduce((t,n)=>(t[n]=(0,s.evaluate)(a?.[n],e),t),{}),l;if(Array.isArray(o))l=o.map(e=>{let t=U(r,{...e,external:c});return n.push(...t?.errors||[]),t?.record});else{let e=U(r,{...o,external:c});l=e?.record,n.push(...e?.errors||[])}return{block:{...e},successful:!0,output:{data:l},errors:Object.keys(n).length>0?n:void 0}},handleObjectArrayFromValues=(e,t,n)=>{if(Array.isArray(e.values))return e.values.map(r=>{let i=evaluateExpressionsInObject(r,t),a=U(e.properties,i);return(0,o.notMissing)(a?.errors)&&n.push(...a.errors),a?.record}).filter(Boolean)},handleObjectArrayFromExpression=(e,t,n)=>{if(e.expression)try{let r=(0,s.evaluate)(e.expression,t);if(Array.isArray(r))return r.map(t=>{let r=U(e.properties,t);return(0,o.notMissing)(r?.errors)&&n.push(...r.errors),r?.record}).filter(Boolean);{let t=U(e.properties,r);return(0,o.notMissing)(t?.errors)&&n.push(...t.errors),t?.record}}catch{n.push({message:`Invalid expression`,id:t?.id,targetField:e.targetFieldKey});return}},handleSingleObject=(e,t,n)=>{let r=(0,o.notMissing)(e.values)?e.values:t,i=U(e.properties,r);return(0,o.notMissing)(i?.errors)&&n.push(...i.errors),i?.record},H=__name((e,t,n)=>{if(!(0,o.isMissing)(e.properties))return e.array&&Array.isArray(e.values)?handleObjectArrayFromValues(e,t,n):e.array&&e.expression?handleObjectArrayFromExpression(e,t,n):handleSingleObject(e,t,n)},`handleObjectField`),U=__name((e,t)=>{if(!t)return;let n={},r=[],i={};for(let a of e){let e;if(a.type===`object`){if(e=H(a,t,r),e===void 0)continue}else{let{error:n,value:i}=extractFieldValue(t,t?.id,a);if(e=i,n){r.push(n);continue}}a.custom?n[a.targetFieldKey]=e:i[a.targetFieldKey]=e}let a=Object.keys(n).length>0?{unified_custom_fields:n}:{};return{record:{...i,...a},errors:r.length>0?r:void 0}},`mapSingleRecord`),evaluateExpressionsInObject=(e,t)=>{if(e==null)return e;if(typeof e==`string`){if((0,s.isValidExpression)(e))try{return(0,s.evaluate)(e,t)}catch{return e}return e}if(Array.isArray(e))return e.map(e=>evaluateExpressionsInObject(e,t));if(typeof e==`object`){let n={...e};for(let[e,r]of Object.entries(n))n[e]=evaluateExpressionsInObject(r,t);return n}return e},extractFieldValue=(e,t,n)=>{switch(n.type){case`string`:case`number`:case`boolean`:case`datetime_string`:return W(n,t,e);case`enum`:return evaluateEnumValue(n,t,e);default:return{error:{message:`Invalid type`,id:t,targetField:n.targetFieldKey}}}},W=__name((e,t,n)=>{if(!e.expression)return{error:{message:`Expression is empty`,id:t,targetField:e.targetFieldKey}};let r;try{r=(0,s.evaluate)(e.expression,n)}catch{return{error:{message:`Invalid expression`,id:t,targetField:e.targetFieldKey}}}return r===void 0?{error:{message:`Expression returned no value`,id:t,targetField:e.targetFieldKey}}:{value:r}},`evaluateValue`),evaluateEnumValue=(e,t,n)=>{let r=W(e,t,n),i=(0,o.notMissing)(r.value)?r.value:null;if(e.enumMapper===void 0)return{error:{message:`Enum mapper was not defined`,id:t,targetField:e.targetFieldKey}};let a=e.enumMapper.matcher;if((0,o.isString)(a)){let n=getEnumMatcher(a);return(0,o.notMissing)(n)?{value:{value:((0,o.notMissing)(i)?n(i):null)??`unmapped_value`,source_value:i}}:{error:{message:`The built-in matcher "${a}" is not supported`,id:t,targetField:e.targetFieldKey}}}for(let e of a){let{matchExpression:t,value:r}=e;if((0,s.evaluate)(t,n)===!0)return{value:{value:r,source_value:i}}}return{value:{value:`unmapped_value`,source_value:i}}},G=[`data`,`headers`],ee=o.z.object({baseUrl:o.z.string(),url:o.z.string(),method:o.z.enum(c.HttpMethods),saml:(0,o.zStrictObject)({objectKey:o.z.string(),key:o.z.string(),clientId:o.z.string(),cert:o.z.unknown().optional(),issuer:o.z.string().optional(),lifetime:o.z.number().optional(),nameId:o.z.string().optional(),audience:o.z.string().optional(),nameIdentifierFormat:o.z.string().optional(),tokenEndpoint:o.z.string().optional()}).optional(),response:(0,o.zStrictObject)({indexField:o.z.string().optional(),dataKey:o.z.string().optional(),nextKey:o.z.string().optional(),nextKeyIn:o.z.enum(G).optional()}).optional(),iterator:(0,o.zStrictObject)({key:o.z.string(),in:o.z.enum(c.RequestParameterLocations),condition:o.z.string().optional(),mode:o.z.enum([`cursor`,`offset`]).optional()}),cursor:(0,o.zStrictObject)({token:o.z.string().optional().nullable(),position:o.z.number().optional().nullable()}).optional(),customErrors:c.CUSTOM_ERROR_CONFIG_SCHEMA.array().optional(),args:(0,o.zStrictObject)({name:o.z.string(),value:o.z.unknown(),in:o.z.enum(c.RequestParameterLocations),spread:o.z.boolean().optional(),condition:o.z.string().optional(),arrayFormat:o.z.enum(c.QueryArrayFormats).optional()}).array().optional()}),K=(0,o.zStrictObject)({data:o.z.unknown().optional(),raw:o.z.unknown().optional(),statusCode:o.z.number(),message:o.z.string().optional(),next:o.z.string().optional().nullable(),position:o.z.number().optional()}).optional(),q=25,J=__name(e=>{let t=e.trim();return t.startsWith(`{{`)&&t.endsWith(`}}`)},`isJexlExpression`),paginatedRequestStepFunction=async({block:e,params:t})=>{let n=c.RequestClientFactory.build();if(!e.httpClient)throw Error(`HTTP client is not configured`);let{args:r}=t,i=Number(e.inputs?.page_size),a=Number.isNaN(i)?25:i,l=r?r.filter(t=>!t.condition||(0,s.evaluate)(t.condition,e)===!0).map(e=>({...e,condition:void 0})):void 0,u=t?(0,s.safeEvaluateRecord)({...t,args:l},e):{},d=t?.response?.nextKey,f=d&&J(d),p=t?.response?.dataKey,m=p&&J(p),h={...u?.response??{},...f?{nextKey:d}:{},...m?{dataKey:p}:{}},g={...u,customErrors:t?.customErrors,iterator:{...u?.iterator??{},condition:t?.iterator?.condition},response:f||m?h:u?.response},{baseUrl:_,url:v,method:y,response:b,iterator:x,cursor:S,customErrors:C,args:w,saml:T}=ee.parse(g),E=u?.authentication?.[e.context.authenticationType]?.[e.context.environment],D=E?.authorization,k=E?.certificates,A=k?(0,c.buildHttpsAgent)(k):void 0,j=O.parse(D),M=w?(0,c.parseRequestParameters)(w):{query:{},body:{},headers:{}},N=(0,c.createAuthorizationHeaders)(j),P={...M?.headers??{},...N},F=e.connector?.rateLimit,I=e.connector?.concurrency,L=F!==void 0||I!==void 0?{rateLimit:F,concurrency:I}:void 0,R=(0,o.notMissing)(T)?{[T.objectKey]:await(0,o.generateSamlAssertion)({key:T.key,clientId:T.clientId,cert:T.cert,issuer:T.issuer,lifetime:T.lifetime,audience:T.audience,nameId:T.nameId,nameIdentifierFormat:T.nameIdentifierFormat,tokenEndpoint:T.tokenEndpoint})}:{},z=x.mode===`offset`,B=S?.token??null,V=null,H=null,U=[],W=[],G=[],K=a,q=S?.position??0,Y=!0,X=!0,Z=!0;do{Y?Y=!1:z||(q=0),B===null?z&&(x.in===`query`?M.query[x.key]=q.toString():x.in===`body`&&(Array.isArray(M.body)||(M.body[x.key]=q))):x.in===`query`?(0,o.isObject)(B)?Object.entries(B).forEach(([e,t])=>{M.query[`${x.key}[${e}]`]=t?.toString()??``}):M.query[x.key]=B.toString():x.in===`body`&&(Array.isArray(M.body)||(M.body[x.key]=B));let t;try{t=await n.performRequest({httpClient:e.httpClient,url:`${_}${v}`,queryParams:{...M?.query},method:y,headers:{...P},body:Array.isArray(M?.body)?M.body:{...M?.body,...R},customErrorConfigs:C,requestConfig:L,httpsAgent:A})}catch(t){return buildStepErrorOutput(t,e)}V=B,W=b?.dataKey?te(t.data,b.dataKey):t.data;let r=z?W?.slice(0,K):W?.slice(q,q+K);K-=r.length,q+=r.length,G.push(t),U=U.concat(r),H=t?.status,B=ne({result:t,response:b}),Z=(0,o.notMissing)(x.condition)?(0,s.safeEvaluate)(x.condition,t.data)===!0:!0,!z&&r.length===W.length&&K===0&&(q=0,V=B),X=!Z||(0,o.isMissing)(B)&&U.length<a}while((z||(0,o.notMissing)(B))&&Z&&U.length<a&&W?.length>0);return{block:e,successful:!0,output:{data:re(U,b),raw:G,statusCode:H,next:X?void 0:V,position:X?void 0:q}}},te=__name((e,t)=>{if((0,o.isMissing)(e)||typeof e!=`object`||!e)return e;let n=(0,s.safeEvaluate)(J(t)?t:`$.${t}`,e);return n===void 0?e[t]:n},`resolveDataKey`),ne=__name(({result:e,response:t})=>{if((0,o.isMissing)(t?.nextKey))return null;let n=t?.nextKeyIn??`data`,r=t?.nextKey;return n===`headers`?Y(e.headers,r):X(e.data,r)},`resolveNextIterator`),Y=__name((e,t)=>{if((0,o.isMissing)(e)||typeof e!=`object`)return null;if(J(t)){let n=(0,s.safeEvaluate)(t,e);return typeof n==`string`&&n!==``||typeof n==`number`?n:null}let n=t.toLowerCase(),[,r]=Object.entries(e).find(([e])=>e?.toLowerCase()===n)??[];if(Array.isArray(r)){let e=r.find(e=>typeof e==`string`&&e!==``||typeof e==`number`);return typeof e==`string`||typeof e==`number`?e:null}return typeof r==`string`&&r!==``||typeof r==`number`?r:null},`resolveFromHeaders`),X=__name((e,t)=>{if((0,o.isMissing)(e)||typeof e!=`object`||!e)return null;let n=(0,s.safeEvaluate)(J(t)?t:`$.${t}`,e);return(0,o.isMissing)(n)?null:typeof n==`string`||typeof n==`number`||typeof n==`object`?n:null},`resolveFromData`),re=__name((e,t)=>{if(t?.indexField&&Array.isArray(e))return e.reduce((e,n)=>{let r=t.indexField;return r&&n[r]&&(e[n[r]]=n),e},{});if(t?.indexField){let n=t.indexField;return n&&e[n]?{[e[n]]:e}:e}return e},`indexResponseData`),Z=o.z.object({baseUrl:o.z.string().optional(),url:o.z.string(),method:o.z.enum(c.HttpMethods),authorization:O.optional(),certificates:k,saml:(0,o.zStrictObject)({objectKey:o.z.string(),key:o.z.string(),clientId:o.z.string(),cert:o.z.unknown().optional(),issuer:o.z.string().optional(),lifetime:o.z.number().optional(),nameId:o.z.string().optional(),audience:o.z.string().optional(),nameIdentifierFormat:o.z.string().optional(),tokenEndpoint:o.z.string().optional()}).optional(),response:(0,o.zStrictObject)({collection:o.z.boolean().optional(),indexField:o.z.string().optional(),dataKey:o.z.string().optional()}).optional(),customErrors:c.CUSTOM_ERROR_CONFIG_SCHEMA.array().optional(),args:(0,o.zStrictObject)({name:o.z.string(),value:o.z.unknown(),in:o.z.enum(c.RequestParameterLocations),spread:o.z.boolean().optional(),condition:o.z.string().optional(),arrayFormat:o.z.enum(c.QueryArrayFormats).optional()}).array().optional()}),ie=(0,o.zStrictObject)({data:o.z.unknown().optional(),raw:o.z.unknown().optional(),statusCode:o.z.number(),message:o.z.string().optional()}).optional(),isJexlExpression=e=>{let t=e.trim();return t.startsWith(`{{`)&&t.endsWith(`}}`)},requestStepFunction=async({block:e,params:t})=>{let n=c.RequestClientFactory.build();if(!e.httpClient)throw Error(`HTTP client is not configured`);let{args:r}=t,i=r?r.filter(t=>!t.condition||(0,s.evaluate)(t.condition,e)===!0).map(e=>({...e,condition:void 0})):void 0,a=t?.response?.dataKey,l=a&&isJexlExpression(a),u=t?(0,s.safeEvaluateRecord)({...t,args:i},e):{},d={...u,customErrors:t?.customErrors,response:l?{...u?.response??{},dataKey:a}:u?.response},{baseUrl:f,url:p,method:m,response:h,authorization:g,certificates:_,customErrors:v,args:y,saml:b}=Z.parse(d),x=u?.authentication?.[e.context.authenticationType]?.[e.context.environment],S=x?.authorization,C=_??x?.certificates,w=C?(0,c.buildHttpsAgent)(C):void 0,T=y?(0,c.parseRequestParameters)(y):{query:{},body:{},headers:{}},E=(0,c.createAuthorizationHeaders)((0,o.notMissing)(g)?g:O.parse(S)),D={...T?.headers??{},...E},k=e.connector?.rateLimit,A=e.connector?.concurrency,j=k!==void 0||A!==void 0?{rateLimit:k,concurrency:A}:void 0,M=(0,o.notMissing)(b)?{[b.objectKey]:await(0,o.generateSamlAssertion)({key:b.key,clientId:b.clientId,cert:b.cert,issuer:b.issuer,lifetime:b.lifetime,audience:b.audience,nameId:b.nameId,nameIdentifierFormat:b.nameIdentifierFormat,tokenEndpoint:b.tokenEndpoint})}:{},N;try{N=await n.performRequest({httpClient:e.httpClient,url:`${f}${p}`,queryParams:T?.query,method:m,headers:D,body:Array.isArray(T?.body)?T?.body:{...T?.body,...M},customErrorConfigs:v,requestConfig:j,httpsAgent:w})}catch(t){return buildStepErrorOutput(t,e)}return{block:e,successful:!0,output:{data:ae(h?.dataKey?resolveDataKey(N.data,h.dataKey):N.data,h),raw:N,statusCode:N?.status,message:N?.message}}},resolveDataKey=(e,t)=>{if((0,o.isMissing)(e)||typeof e!=`object`||!e)return e;let n=(0,s.safeEvaluate)(isJexlExpression(t)?t:`$.${t}`,e);return n===void 0?e[t]:n},ae=__name((e,t)=>{if(t?.collection&&t?.indexField&&Array.isArray(e))return e.reduce((e,n)=>{let r=t.indexField;return r&&n[r]&&(e[n[r]]=n),e},{});if(!t?.collection&&t?.indexField){let n=t.indexField;return n&&e[n]?{[e[n]]:e}:e}return e},`indexResponseData`),oe=[`data`,`headers`],se=o.z.object({baseUrl:o.z.string().optional(),url:o.z.string(),method:o.z.enum(c.HttpMethods),authorization:o.z.discriminatedUnion(`type`,[(0,o.zStrictObject)({type:o.z.literal(`none`)}),(0,o.zStrictObject)({type:o.z.literal(`basic`),username:o.z.string().optional(),password:o.z.string().optional(),encoding:o.z.string().optional()}),(0,o.zStrictObject)({type:o.z.literal(`bearer`),token:o.z.string(),includeBearer:o.z.boolean().optional().default(!0)}),(0,o.zStrictObject)({type:o.z.literal(`oauth2`),token:o.z.string(),includeBearer:o.z.boolean().optional().default(!0)})]).optional(),envelope:o.z.union([o.z.string(),o.z.record(o.z.string(),o.z.unknown())]).optional(),namespaces:o.z.strictObject({namespaceIdentifier:o.z.string(),namespace:o.z.string()}).array().optional(),soapOperation:o.z.string().optional(),soapAction:o.z.string().optional(),useSoapContext:o.z.boolean().optional().default(!0),response:(0,o.zStrictObject)({collection:o.z.boolean().optional(),indexField:o.z.string().optional(),dataKey:o.z.string().optional(),nextKey:o.z.string().optional(),nextKeyIn:o.z.enum(oe).optional()}).optional(),iterator:(0,o.zStrictObject)({key:o.z.string(),in:o.z.enum(c.RequestParameterLocations)}),cursor:(0,o.zStrictObject)({token:o.z.string().optional().nullable(),position:o.z.number().optional().nullable()}).optional(),customErrors:c.CUSTOM_ERROR_CONFIG_SCHEMA.array().optional(),args:(0,o.zStrictObject)({name:o.z.string(),value:o.z.unknown(),in:o.z.enum(c.RequestParameterLocations),condition:o.z.string().optional(),arrayFormat:o.z.enum(c.QueryArrayFormats).optional()}).array().optional()}),ce=(0,o.zStrictObject)({data:o.z.unknown().optional(),raw:o.z.unknown().optional(),statusCode:o.z.number(),message:o.z.string().optional(),next:o.z.string().optional().nullable(),position:o.z.number().optional()}).optional(),le=25,soapPaginatedRequestStepFunction=async({block:e,params:t})=>{let n=c.RequestClientFactory.build(`soap`);if(!e.httpClient)throw Error(`HTTP client is not configured`);let{args:r}=t,i=Number(e.inputs?.page_size),a=Number.isNaN(i)?25:i,l=r?r.filter(t=>!t.condition||(0,s.evaluate)(t.condition,e)===!0).map(e=>({...e,condition:void 0})):void 0,u=t?(0,s.safeEvaluateRecord)({...t,args:l},e):{},d={...u,customErrors:t?.customErrors},{baseUrl:f,url:p,method:m,response:h,iterator:g,cursor:_,authorization:v,customErrors:y,args:b,soapOperation:x,namespaces:S,envelope:C,soapAction:w,useSoapContext:T}=se.parse(d),E=u?.authentication?.[e.context.authenticationType]?.[e.context.environment]?.authorization,D=b?(0,c.parseRequestParameters)(b):{query:{},body:{},headers:{}},k=(0,c.createAuthorizationHeaders)((0,o.notMissing)(v)?v:O.parse(E)),A={...D?.headers??{},...k},j=e.connector?.rateLimit,M=e.connector?.concurrency,N={...(j!==void 0||M!==void 0)&&{rateLimit:j,concurrency:M},soapOperation:x,namespaces:S,envelope:C,soapAction:w,soapContext:T?{username:e.credentials?.username,password:e.credentials?.password}:void 0},P=_?.token??null,F=null,I=null,L=[],R=[],z=[],B=a,V=_?.position??0,H=!0,U;do{H?H=!1:V=0,P!==null&&(g.in===`query`?D.query[g.key]=P.toString():g.in===`body`&&(D.body[g.key]=P));let t;try{t=await n.performRequest({httpClient:e.httpClient,url:`${f}${p}`,queryParams:D?.query,method:m,headers:A,body:D?.body,customErrorConfigs:y,requestConfig:N})}catch(t){return buildStepErrorOutput(t,e)}F=P,R=h?.dataKey?t.data[h?.dataKey]:t.data,Array.isArray(R)||(R=R?[R]:[]);let r=R?.slice(V,V+B);B-=r.length,V+=r.length,z.push(t),L=L.concat(r),I=t?.status,P=resolveNextIterator({result:t,response:h}),r.length===R.length&&B===0&&(V=0,F=P),U=(0,o.isMissing)(P)&&L.length<a}while((0,o.notMissing)(P)&&L.length<a&&R?.length>0);return{block:e,successful:!0,output:{data:ue(L,h),raw:z,statusCode:I,next:U?void 0:F,position:U?void 0:V}}},resolveNextIterator=({result:e,response:t})=>{if((0,o.isMissing)(t?.nextKey))return null;let n=t?.nextKeyIn??`data`,r=t?.nextKey;return n===`headers`?resolveFromHeaders(e.headers,r):resolveFromData(e.data,r)},resolveFromHeaders=(e,t)=>{if((0,o.isMissing)(e)||typeof e!=`object`)return null;let n=t.toLowerCase(),[,r]=Object.entries(e).find(([e])=>e?.toLowerCase()===n)??[];if(Array.isArray(r)){let e=r.find(e=>typeof e==`string`&&e!==``||typeof e==`number`);return typeof e==`string`||typeof e==`number`?e:null}return typeof r==`string`&&r!==``||typeof r==`number`?r:null},resolveFromData=(e,t)=>{if((0,o.isMissing)(e)||typeof e!=`object`||!e)return null;let n=e[t];return(0,o.isMissing)(n)?null:typeof n==`string`||typeof n==`number`?n:null},ue=__name((e,t)=>{if(t?.indexField&&Array.isArray(e))return e.reduce((e,n)=>{let r=t.indexField;return r&&n[r]&&(e[n[r]]=n),e},{});if(t?.indexField){let n=t.indexField;return n&&e[n]?{[e[n]]:e}:e}return e},`indexResponseData`),de=o.z.object({baseUrl:o.z.string().optional(),url:o.z.string(),method:o.z.enum(c.HttpMethods),authorization:O.optional(),envelope:o.z.union([o.z.string(),o.z.record(o.z.string(),o.z.unknown())]).optional(),namespaces:o.z.strictObject({namespaceIdentifier:o.z.string(),namespace:o.z.string()}).array().optional(),soapOperation:o.z.string().optional(),soapAction:o.z.string().optional(),useSoapContext:o.z.boolean().optional().default(!0),response:(0,o.zStrictObject)({collection:o.z.boolean().optional(),indexField:o.z.string().optional(),dataKey:o.z.string().optional()}).optional(),customErrors:c.CUSTOM_ERROR_CONFIG_SCHEMA.array().optional(),args:(0,o.zStrictObject)({name:o.z.string(),value:o.z.unknown(),in:o.z.enum(c.RequestParameterLocations),condition:o.z.string().optional(),arrayFormat:o.z.enum(c.QueryArrayFormats).optional()}).array().optional()}),fe=(0,o.zStrictObject)({data:o.z.unknown().optional(),raw:o.z.unknown().optional(),statusCode:o.z.number(),message:o.z.string().optional()}).optional(),soapRequestStepFunction=async({block:e,params:t})=>{let n=c.RequestClientFactory.build(`soap`);if(!e.httpClient)throw Error(`HTTP client is not configured`);let{args:r}=t,i=r?r.filter(t=>!t.condition||(0,s.evaluate)(t.condition,e)===!0).map(e=>({...e,condition:void 0})):void 0,a=t?(0,s.safeEvaluateRecord)({...t,args:i},e):{},l={...a,customErrors:t?.customErrors},{baseUrl:u,url:d,method:f,response:p,authorization:m,customErrors:h,args:g,soapOperation:_,namespaces:v,envelope:y,soapAction:b,useSoapContext:x}=de.parse(l),S=a?.authentication?.[e.context.authenticationType]?.[e.context.environment]?.authorization,C=g?(0,c.parseRequestParameters)(g):{query:{},body:{},headers:{}},w=(0,c.createAuthorizationHeaders)((0,o.notMissing)(m)?m:O.parse(S)),T={...C?.headers??{},...w},E=e.connector?.rateLimit,D=e.connector?.concurrency,k={...(E!==void 0||D!==void 0)&&{rateLimit:E,concurrency:D},soapOperation:_,namespaces:v,envelope:y,soapAction:b,soapContext:x?{username:e.credentials?.username,password:e.credentials?.password}:void 0},A;try{A=await n.performRequest({httpClient:e.httpClient,url:`${u}${d}`,queryParams:C?.query,method:f,headers:T,body:C?.body,customErrorConfigs:h,requestConfig:k})}catch(t){return buildStepErrorOutput(t,e)}return{block:e,successful:!0,output:{data:pe(p?.dataKey?A.data[p?.dataKey]:A.data,p),raw:A,statusCode:A?.status,message:A?.message}}},pe=__name((e,t)=>{if(t?.collection&&t?.indexField&&Array.isArray(e))return e.reduce((e,n)=>{let r=t.indexField;return r&&n[r]&&(e[n[r]]=n),e},{});if(!t?.collection&&t?.indexField){let n=t.indexField;return n&&e[n]?{[e[n]]:e}:e}return e},`indexResponseData`),me=o.z.object({values:o.z.string().or(o.z.record(o.z.string(),o.z.unknown())).or(o.z.array(o.z.unknown()))}),he=o.z.object({data:o.z.unknown()}),staticValuesStepFunction=async({block:e,params:t})=>{let{values:n}=me.parse(t),r=Array.isArray(n)?n.map(t=>evaluateValue(t,e)):evaluateValue(n,e);return{block:{...e},successful:!0,output:{data:r}}},evaluateValue=(e,t)=>(0,o.isString)(e)?(0,s.safeEvaluate)(e,t):(0,o.isObject)(e)?(0,s.safeEvaluateRecord)(e,t):e,ge=o.z.object({targetFieldKey:o.z.string(),type:o.z.enum([`string`,`number`,`boolean`,`datetime_string`,`enum`,`object`]),array:o.z.boolean().default(!1),custom:o.z.boolean().default(!1),hidden:o.z.boolean().default(!1),properties:o.z.lazy(()=>ge).array().optional(),requiredScopes:o.z.string().array().optional()}),_e=o.z.object({fields:ge.array().optional(),dataSource:o.z.string()}),ve=o.z.object({data:o.z.unknown()});let Q=function(e){return e.String=`string`,e.Number=`number`,e.Boolean=`boolean`,e.DateTimeString=`datetime_string`,e}({});const typecast=({value:e,type:t,format:n})=>{if((0,o.isMissing)(e))return null;switch(t){case Q.String:return(0,o.safeParseToString)({value:e});case Q.Number:return(0,o.safeParseToNumber)({value:e});case Q.Boolean:return(0,o.safeParseToBoolean)({value:e});case Q.DateTimeString:return(0,o.safeParseToDateTimeString)({value:e,format:n});default:return e}},isFieldSupportedType=e=>Object.values(Q).includes(e),ye=__name(async({block:e})=>{let t=e?.fieldConfigs;if(!t||e?.debug?.custom_mappings===`disabled`)return{block:e,successful:!0};let n;return n=Array.isArray(e.result)?e.result.map(e=>be(e,t)):be(e.result,t),{block:{...e,result:n},successful:!0}},`typecastStepFunction`),be=__name((e,t)=>{let n={...e};return t.forEach(t=>{let{targetFieldKey:r,type:i}=t;isFieldSupportedType(i)&&(!t.custom&&(0,o.notMissing)(n[r])?n[r]=typecast({value:e[r],type:i}):n.unified_custom_fields&&(0,o.notMissing)(n.unified_custom_fields?.[r])&&(n.unified_custom_fields[r]=typecast({value:e.unified_custom_fields?.[r],type:i})))}),{...n}},`mapSingleRecord`),typecastStepFunction=async({block:e,params:t})=>{let{fields:n,dataSource:r}=_e.parse(t),i=(0,s.evaluate)(r,e);if(!n||e?.debug?.custom_mappings===`disabled`)return{block:e,successful:!0};let a;return a=Array.isArray(i)?i.map(e=>mapSingleRecord(e,n)):mapSingleRecord(i,n),{block:{...e},successful:!0,output:{data:a}}},handleObjectField=(e,t)=>!e.properties||!t?t:Array.isArray(t)?t.map(t=>typeof t==`object`&&t?mapSingleRecord(t,e.properties):t):typeof t==`object`&&t?mapSingleRecord(t,e.properties):t,mapSingleRecord=(e,t)=>{let n={...e};return t.forEach(t=>{let{targetFieldKey:r,type:i,array:a}=t;i===`object`?!t.custom&&(0,o.notMissing)(n[r])?n[r]=handleObjectField(t,e[r]):n.unified_custom_fields&&(0,o.notMissing)(n.unified_custom_fields?.[r])&&(n.unified_custom_fields[r]=handleObjectField(t,e.unified_custom_fields?.[r])):isFieldSupportedType(i)&&(!t.custom&&(0,o.notMissing)(n[r])?(!a||!Array.isArray(n[r]))&&(n[r]=typecast({value:e[r],type:i})):n.unified_custom_fields&&(0,o.notMissing)(n.unified_custom_fields?.[r])&&(!a||!Array.isArray(n.unified_custom_fields[r]))&&(n.unified_custom_fields[r]=typecast({value:e.unified_custom_fields?.[r],type:i})))}),{...n}},xe=(0,o.zStrictObject)({content:o.z.string().describe(`The file content as base64 encoded string`),contentType:o.z.string().optional().describe(`The MIME type for the binary content (defaults to application/octet-stream)`)}),Se=o.z.object({baseUrl:o.z.string().optional(),url:o.z.string(),method:o.z.enum(c.HttpMethods).default(`post`),authorization:O.optional(),binaryContent:xe.describe(`Raw binary content for octet-stream uploads`),response:(0,o.zStrictObject)({collection:o.z.boolean().optional(),indexField:o.z.string().optional(),dataKey:o.z.string().optional()}).optional(),customErrors:c.CUSTOM_ERROR_CONFIG_SCHEMA.array().optional(),args:(0,o.zStrictObject)({name:o.z.string(),value:o.z.unknown(),in:o.z.enum(c.RequestParameterLocations),spread:o.z.boolean().optional(),condition:o.z.string().optional(),arrayFormat:o.z.enum(c.QueryArrayFormats).optional()}).array().optional().describe(`Additional request parameters (query params, headers)`)}),Ce=(0,o.zStrictObject)({data:o.z.unknown().optional(),raw:o.z.unknown().optional(),statusCode:o.z.number(),message:o.z.string().optional()}).optional(),uploadBinaryStepFunction=async({block:e,params:t})=>{if(!e.httpClient)throw Error(`HTTP client is not configured`);let{args:n}=t,r=n?n.filter(t=>!t.condition||(0,s.evaluate)(t.condition,e)===!0).map(e=>({...e,condition:void 0})):void 0,i=t?(0,s.safeEvaluateRecord)({...t,args:r},e):{},a={...i,customErrors:t?.customErrors},{baseUrl:l,url:u,method:d,response:f,authorization:p,binaryContent:m,args:h,customErrors:g}=Se.parse(a),_=i?.authentication?.[e.context.authenticationType]?.[e.context.environment]?.authorization,v=h?(0,c.parseRequestParameters)(h):{query:{},body:{},headers:{}},y=(0,c.createAuthorizationHeaders)((0,o.notMissing)(p)?p:O.parse(_)),b=Buffer.from(m.content,`base64`),x={"content-type":m.contentType??`application/octet-stream`,...v?.headers??{},...y},S=e.connector?.rateLimit,C=e.connector?.concurrency,w=S!==void 0||C!==void 0?{rateLimit:S,concurrency:C}:void 0,T;try{T=await e.httpClient.request({url:`${l??``}${u}`,method:d,headers:x,queryParams:v?.query,payload:b,requestConfig:w})}catch(t){let n=t;return{block:e,successful:!1,errors:[(0,c.serializeHttpResponseError)(t)],output:{statusCode:n?.response?.status??500,message:n?.response?.message}}}let E=(0,c.translateCustomError)(T,g);return(0,c.isFailedStatusCode)(E?.status)?{block:e,successful:!1,errors:[(0,c.serializeHttpResponseError)(new c.HttpResponseError(E,E.message))],output:{statusCode:E.status,message:E.message}}:{block:e,successful:!0,output:{data:we(f?.dataKey?E.data[f?.dataKey]:E.data,f),raw:E,statusCode:E?.status,message:E?.message}}},we=__name((e,t)=>{if(t?.collection&&t?.indexField&&Array.isArray(e))return e.reduce((e,n)=>{let r=t.indexField;return r&&n[r]&&(e[n[r]]=n),e},{});if(!t?.collection&&t?.indexField){let n=t.indexField;return n&&e[n]?{[e[n]]:e}:e}return e},`indexResponseData`),Te=(0,o.zStrictObject)({fieldName:o.z.string().describe(`The form field name for the file`),content:o.z.string().describe(`The file content as base64 encoded string`),filename:o.z.string().describe(`The filename to use in the upload`),contentType:o.z.string().optional().describe(`The MIME type of the file (e.g., "image/png", "application/pdf")`)}),Ee=o.z.object({baseUrl:o.z.string().optional(),url:o.z.string(),method:o.z.enum(c.HttpMethods).default(`post`),authorization:O.optional(),file:Te.describe(`The file to upload`),additionalFields:(0,o.zStrictObject)({name:o.z.string(),value:o.z.unknown(),condition:o.z.string().optional(),contentType:o.z.string().optional().describe(`The MIME type for this form field (e.g., "application/json")`)}).array().optional().describe(`Additional form fields to include in the multipart request`),response:(0,o.zStrictObject)({collection:o.z.boolean().optional(),indexField:o.z.string().optional(),dataKey:o.z.string().optional()}).optional(),customErrors:c.CUSTOM_ERROR_CONFIG_SCHEMA.array().optional(),args:(0,o.zStrictObject)({name:o.z.string(),value:o.z.unknown(),in:o.z.enum(c.RequestParameterLocations),spread:o.z.boolean().optional(),condition:o.z.string().optional(),arrayFormat:o.z.enum(c.QueryArrayFormats).optional()}).array().optional().describe(`Additional request parameters (query params, headers)`)}),De=(0,o.zStrictObject)({data:o.z.unknown().optional(),raw:o.z.unknown().optional(),statusCode:o.z.number(),message:o.z.string().optional()}).optional(),uploadFileStepFunction=async({block:e,params:t})=>{if(!e.httpClient)throw Error(`HTTP client is not configured`);let{args:n,additionalFields:r}=t,i=n?n.filter(t=>!t.condition||(0,s.evaluate)(t.condition,e)===!0).map(e=>({...e,condition:void 0})):void 0,a=r?r.filter(t=>!t.condition||(0,s.evaluate)(t.condition,e)===!0).map(e=>({...e,condition:void 0})):void 0,l=t?(0,s.safeEvaluateRecord)({...t,args:i,additionalFields:a},e):{},d={...l,customErrors:t?.customErrors},{baseUrl:f,url:p,method:m,response:h,authorization:g,file:_,additionalFields:v,args:y,customErrors:b}=Ee.parse(d),x=l?.authentication?.[e.context.authenticationType]?.[e.context.environment]?.authorization,S=y?(0,c.parseRequestParameters)(y):{query:{},body:{},headers:{}},C=(0,c.createAuthorizationHeaders)((0,o.notMissing)(g)?g:O.parse(x)),w=new u.default;if(v)for(let e of v){let t=typeof e.value==`object`?JSON.stringify(e.value):String(e.value);w.append(e.name,t,e.contentType?{contentType:e.contentType}:void 0)}let T=Buffer.from(_.content,`base64`);w.append(_.fieldName,T,{filename:_.filename,contentType:_.contentType});let E={...w.getHeaders(),...S?.headers??{},...C},D=e.connector?.rateLimit,k=e.connector?.concurrency,A=D!==void 0||k!==void 0?{rateLimit:D,concurrency:k}:void 0,j;try{j=await e.httpClient.request({url:`${f??``}${p}`,method:m,headers:E,queryParams:S?.query,payload:w,requestConfig:A})}catch(t){return buildStepErrorOutput(t,e)}let M=(0,c.translateCustomError)(j,b);return(0,c.isFailedStatusCode)(M?.status)?buildStepErrorOutput(new c.HttpResponseError(M,M.message),e):{block:e,successful:!0,output:{data:indexResponseData(h?.dataKey?M.data[h?.dataKey]:M.data,h),raw:M,statusCode:M?.status,message:M?.message}}},indexResponseData=(e,t)=>{if(t?.collection&&t?.indexField&&Array.isArray(e))return e.reduce((e,n)=>{let r=t.indexField;return r&&n[r]&&(e[n[r]]=n),e},{});if(!t?.collection&&t?.indexField){let n=t.indexField;return n&&e[n]?{[e[n]]:e}:e}return e};let $=function(e){return e.TYPECAST=`typecast`,e.MAP_FIELDS=`map_fields`,e.GROUP_DATA=`group_data`,e.REQUEST=`request`,e.PAGINATED_REQUEST=`paginated_request`,e.SOAP_REQUEST=`soap_request`,e.SOAP_PAGINATED_REQUEST=`soap_paginated_request`,e.STATIC_VALUES=`static_values`,e.UPLOAD_FILE=`upload_file`,e.UPLOAD_BINARY=`upload_binary`,e.DOWNLOAD_FILE=`download_file`,e.EMIT_EVENT=`emit_event`,e}({});const Oe={[$.TYPECAST]:{v1:{fn:ye},v2:{fn:typecastStepFunction,inputSchema:_e,outputSchema:ve}},[$.MAP_FIELDS]:{v1:{fn:I},v2:{fn:mapFieldsStepFunction,inputSchema:B,outputSchema:V}},[$.REQUEST]:{v1:{fn:requestStepFunction,inputSchema:Z,outputSchema:ie}},[$.GROUP_DATA]:{v1:{fn:groupDataStepFunction,inputSchema:P,outputSchema:F}},[$.PAGINATED_REQUEST]:{v1:{fn:paginatedRequestStepFunction,inputSchema:ee,outputSchema:K}},[$.SOAP_REQUEST]:{v1:{fn:soapRequestStepFunction,inputSchema:de,outputSchema:fe}},[$.SOAP_PAGINATED_REQUEST]:{v1:{fn:soapPaginatedRequestStepFunction,inputSchema:se,outputSchema:ce}},[$.STATIC_VALUES]:{v1:{fn:staticValuesStepFunction,inputSchema:me,outputSchema:he}},[$.UPLOAD_FILE]:{v1:{fn:uploadFileStepFunction,inputSchema:Ee,outputSchema:De}},[$.UPLOAD_BINARY]:{v1:{fn:uploadBinaryStepFunction,inputSchema:Se,outputSchema:Ce}},[$.DOWNLOAD_FILE]:{v1:{fn:downloadFileStepFunction,inputSchema:A,outputSchema:j}},[$.EMIT_EVENT]:{v1:{fn:emitEventStepFunction,inputSchema:M,outputSchema:N}}},formatZodIssues=(e,t,n)=>e instanceof o.z.ZodError?e.issues.map(e=>({...e,kind:t,functionName:n})):[{kind:t,functionName:n,message:e?.message??`unknown error`}],stepFunctionEnhancedWithSchemasValidation=(e,t)=>async({block:n,params:r})=>{try{e.inputSchema&&e.inputSchema.parse(r)}catch(e){return{block:n,successful:!1,errors:formatZodIssues(e,`input_schema_validation`,t)}}let i=await e.fn({block:n,params:r});try{e.outputSchema&&e.outputSchema.parse(i.output)}catch(e){return{block:n,successful:!1,errors:formatZodIssues(e,`output_schema_validation`,t)}}return i},ke={build({functionName:e,version:t=`1`,validateSchemas:n=!1,stepFunctionsList:r=Oe}){let i=r?.[e]?.[`v${t}`];if(!i)throw Error(`Unknown step function: ${e} v${t}`);return n?{...i,fn:stepFunctionEnhancedWithSchemasValidation(i,e)}:i}},isForeachStep=e=>`iterator`in e&&typeof e.iterator==`string`;exports.AUTHORIZATION_SCHEMA=O,exports.COMPOSITE_ID_LATEST_VERSION=1,exports.CoreError=y,exports.INPUT_ENUM_REGISTRY=b,exports.ReleaseStages=x,exports.StepFunctionName=$,exports.StepFunctionsFactory=ke,exports.StepFunctionsRegistry=Oe,exports.areCursorsEqual=areCursorsEqual,exports.decodeCompositeId=decodeCompositeId,exports.encodeCompositeId=encodeCompositeId,exports.evaluateEventRouter=evaluateEventRouter,exports.evaluateExternalAccountIdExtractor=evaluateExternalAccountIdExtractor,exports.expandCursor=expandCursor,exports.getCategoryDetails=getCategoryDetails,exports.getInputEnumValues=getInputEnumValues,exports.isCompositeId=isCompositeId,exports.isCoreError=isCoreError,exports.isCursorEmpty=isCursorEmpty,exports.isForeachStep=isForeachStep,exports.isValidCategory=isValidCategory,exports.isValidEnumRef=isValidEnumRef,exports.minifyCursor=minifyCursor,exports.updateCursor=updateCursor;
1
+ var e=Object.create,t=Object.defineProperty,__name=(e,n)=>t(e,`name`,{value:n,configurable:!0}),n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,__copyProps=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},__toESM=(n,r,a)=>(a=n==null?{}:e(i(n)),__copyProps(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));let o=require(`@stackone/utils`),s=require(`@stackone/expressions`),c=require(`@stackone/transport`),l=require(`mime-types`);l=__toESM(l);let u=require(`form-data`);u=__toESM(u);const d={hris:{title:`HRIS`,key:`hris`,description:`Human Resource Information System`},crm:{title:`CRM`,key:`crm`,description:`Customer Relationship Management`},ats:{title:`ATS`,key:`ats`,description:`Applicant Tracking System`},lms:{title:`LMS`,key:`lms`,description:`Learning Management System`},marketing:{title:`Marketing`,key:`marketing`,description:`Marketing`},filestorage:{title:`File Storage`,key:`filestorage`,description:`File Storage`},internal:{title:`Internal`,key:`internal`,description:`Category for internal actions`},action:{title:`Action`,key:`action`,description:`Action`}},getCategoryDetails=e=>d[e.toLowerCase()]??null,isValidCategory=e=>!!d[e.toLowerCase()],f=`so1!`,p=(0,o.encodeToBase64)(`so1!`),m=`:`,h=`,`,g=RegExp(`(?<!\\\\):`,`g`),_=RegExp(`(?<!\\\\),`,`g`),v=1;var y=class CoreError extends Error{constructor({category:e,name:t,type:n,context:r,message:i}){super(i),this.name=t??`CoreError`,this.type=n,this.category=e,this.context=r,Error.captureStackTrace&&Error.captureStackTrace(this,CoreError)}toString(){let e=this.message?`: ${this.message}`:``;return`${this.category}-${this.name} [${this.type}]${e}`}},BaseCompositeIdError=class extends y{constructor(e,t,n){super({category:`CompositeId`,name:t??`BaseCompositeIdError`,type:e,message:n})}},CompositeIdMissingHeaderError=class extends BaseCompositeIdError{constructor(e){super(`COMPOSITE_ID_MISSING_HEADER_ERROR`,`CompositeIdMissingHeaderError`,e??`Invalid compositeId, missing header`)}},CompositeIdMissingBodyError=class extends BaseCompositeIdError{constructor(e){super(`COMPOSITE_ID_MISSING_BODY_ERROR`,`CompositeIdMissingBodyError`,e??`Invalid compositeId, missing body`)}},CompositeIdUnknownIdentifierError=class extends BaseCompositeIdError{constructor(e){super(`COMPOSITE_ID_UNKNOWN_IDENTIFIER_ERROR`,`CompositeIdUnknownIdentifierError`,e??`Invalid compositeId, unknown identifier`)}},CompositeIdUnsupportedVersionError=class extends BaseCompositeIdError{constructor(e){super(`COMPOSITE_ID_UNSUPPORTED_VERSION_ERROR`,`CompositeIdUnsupportedVersionError`,e??`Invalid compositeId, unsupported version`)}};const isSingleIdentifier=e=>!(0,o.isMissing)(e)&&`value`in e&&e.value!==void 0,isMultipleIdentifier=e=>!(0,o.isMissing)(e)&&`identifiers`in e&&e.identifiers!==void 0,encodeCompositeId=(e,t={version:1})=>{if(t.version===1)return encodeIdV1(getComposedIdV1(e,t.aliases));throw new CompositeIdUnsupportedVersionError(`Cannot generate ID, unsupported version number: ${t.version}`)},decodeCompositeId=(e,t={version:1})=>{let n=decodeId(e,t),r={};return n&&n.split(_).forEach(e=>{let[n,i]=e.split(g),a=getOriginalKey(n,t.aliases??{});r[a]=unescapeValue(i)}),r},getComposedIdV1=(e,t={})=>{if(isSingleIdentifier(e))return getSingleIdentifierString({identifier:e,compositeIdAliases:t,isSoleIdentifier:!0});if(isMultipleIdentifier(e))return e.identifiers.map(e=>getSingleIdentifierString({identifier:e,compositeIdAliases:t,isSoleIdentifier:!1})).join(`,`);throw new CompositeIdUnknownIdentifierError},getSingleIdentifierString=({identifier:e,compositeIdAliases:t,isSoleIdentifier:n})=>[n?`id`:t[e.key]||e.key,escapeValue(e.value)].filter(Boolean).join(`:`),getOriginalKey=(e,t)=>Object.keys(t).find(n=>t[n]===e)??e,decodeId=(e,t)=>{if(t.version===1)return decodeIdV1(e);throw new CompositeIdUnsupportedVersionError(`Cannot decode ID, unsupported version number: ${t.version}`)},encodeIdV1=e=>`${p}${(0,o.encodeToBase64)(e)}`,decodeIdV1=e=>{if(!e.startsWith(p))throw new CompositeIdMissingHeaderError(`Trying to decode an ID without the header: ${e}`);let t=e.split(p)[1];if(!t)throw new CompositeIdMissingBodyError(`Trying to decode an ID without a body: ${e}`);return(0,o.decodeFromBase64)(t)},escapeValue=e=>[`,`,`:`].reduce((e,t)=>e.replace(t,`\\`+t),e),unescapeValue=e=>[`,`,`:`].reduce((e,t)=>{let n=`\\`+t;return e.replace(RegExp(`\\\\`+n,`g`),t)},e),isCompositeId=e=>(0,o.isMissing)(e)?!1:e.startsWith(p),evaluateExternalAccountIdExtractor=(e,t)=>{let n=e.events?.externalAccountIdExtractor;if((0,o.isMissing)(n)||typeof n.result!=`string`||n.result.trim().length===0)return;let r=(0,s.safeEvaluate)(`{{${n.result.trim()}}}`,t);if(!(0,o.isMissing)(r)){if(typeof r==`string`){let e=r.trim();return e.length>0?e:void 0}if(typeof r==`number`||typeof r==`bigint`||typeof r==`boolean`)return String(r)}},evaluateEventRouter=(e,t)=>{let n=e.events?.router;if(!(0,o.isMissing)(n))for(let e of n.rules){let n=(0,s.safeEvaluate)(`{{${e.when.trim()}}}`,t);if(n!==null&&n!==!1&&n!==void 0){let n=e.then.input?Object.fromEntries(Object.entries(e.then.input).map(([e,n])=>[e,(0,s.safeEvaluate)(`{{${String(n).trim()}}}`,t)])):void 0;return{action:e.then.action,input:n}}}},b={employment_status:[`active`,`inactive`,`terminated`,`pending`,`leave`],employment_type:[`full_time`,`part_time`,`contractor`,`intern`,`temporary`],gender:[`male`,`female`,`non_binary`,`other`,`prefer_not_to_say`],marital_status:[`single`,`married`,`divorced`,`widowed`,`domestic_partnership`]},getInputEnumValues=e=>b[e],isValidEnumRef=e=>e in b,x=[`preview`,`beta`,`ga`,`deprecated`],S=(0,o.zStrictObject)({r:o.z.record(o.z.string(),(0,o.zStrictObject)({n:o.z.number().optional().nullable(),c:o.z.string().optional().nullable(),p:o.z.number().optional().nullable()})),v:o.z.number(),t:o.z.number()}),C=(0,o.zStrictObject)({remote:o.z.record(o.z.string(),(0,o.zStrictObject)({pageNumber:o.z.number().optional(),providerPageCursor:o.z.string().optional(),position:o.z.number().optional()})),version:o.z.number(),timestamp:o.z.number()}),minifyCursor=e=>(0,o.encodeToBase64)(JSON.stringify(minifyCursorObject(e))),minifyCursorObject=e=>{let{remote:t,version:n,timestamp:r}=e;return{r:Object.fromEntries(Object.entries(t).map(([e,{pageNumber:t,providerPageCursor:n,position:r}])=>[e,{n:t,c:n,p:r}])),v:n,t:r}},expandCursor=e=>{try{if((0,o.isString)(e)){let t=(0,o.decodeFromBase64)(e),n=JSON.parse(t);return expandCursorObject(S.parse(n))}else return C.parse(e),e}catch{return null}},expandCursorObject=e=>{let{r:t,v:n,t:r}=e;return{remote:Object.fromEntries(Object.entries(t).map(([e,{n:t,c:n,p:r}])=>[e,{pageNumber:t,providerPageCursor:n,position:r}])),version:n,timestamp:r}},areCursorsEqual=(e,t)=>{let n=typeof e==`string`?expandCursor(e):e,r=typeof t==`string`?expandCursor(t):t;if(n===null||r===null)return n===r;let{timestamp:i,...a}=n,{timestamp:s,...c}=r;return(0,o.getContentHash)(a)===(0,o.getContentHash)(c)},isCursorEmpty=({cursor:e,ignoreStepIndex:t})=>(0,o.isMissing)(e)?!0:Object.keys(e?.remote??{}).reduce((n,r)=>{let i=e?.remote?.[r];return((0,o.isMissing)(t)||r!==t.toString())&&(n=n&&(0,o.isMissing)(i.pageNumber)&&(0,o.isMissing)(i.position)&&(0,o.isMissing)(i.providerPageCursor)),n},!0),updateCursor=({cursor:e,stepIndex:t,pageNumber:n,providerPageCursor:r,position:i})=>{let a={pageNumber:n??void 0,providerPageCursor:r??void 0,position:i??void 0},s=(0,o.isMissing)(n)&&(0,o.isMissing)(r)&&(0,o.isMissing)(i);return(0,o.isMissing)(e)?{remote:s?{}:{[t]:a},version:2,timestamp:Date.now()}:s?(delete e.remote[t],e):{...e,remote:{...e.remote,[t]:a}}},isCoreError=e=>e instanceof y,sanitizeRaw=e=>{let t={};return e.status!=null&&(t.status=e.status),e.data!==void 0&&(t.data=e.data),e.headers!=null&&(t.headers=e.headers),e.requestUrl!=null&&(t.requestUrl=e.requestUrl),e.message!=null&&(t.message=e.message),t},isHttpLikeError=e=>typeof e==`object`&&!!e&&`response`in e&&e.response!=null&&typeof e.response==`object`,extractErrorMessage=(e,t)=>{let n=e.data;if(typeof n==`object`&&n&&!Array.isArray(n)){let e=n;if(typeof e.message==`string`&&e.message.trim().length>0)return e.message}if(typeof e.message==`string`&&e.message.length>0)return e.message;if(typeof n==`object`&&n&&!Array.isArray(n)){let e=n;if(e.error!=null&&typeof e.error==`object`&&!Array.isArray(e.error)&&typeof e.error.message==`string`)return e.error.message;if(typeof e.error==`string`)return e.error;if(typeof e.error_description==`string`)return e.error_description}return typeof n==`string`&&n.length>0?n:t},buildStepErrorOutput=(e,t)=>{if(e instanceof c.HttpResponseError){let n=e.message;return{block:t,successful:!1,errors:[(0,c.serializeHttpResponseError)(e)],output:{statusCode:e.response?.status??500,message:extractErrorMessage(e.response,n),data:e.response?.data,raw:sanitizeRaw(e.response)}}}if(isHttpLikeError(e)){let n=e.response,r=e instanceof Error?e.message:`HTTP error: ${n.status??500}`;return{block:t,successful:!1,errors:[(0,c.serializeHttpResponseError)(e)],output:{statusCode:n.status??500,message:extractErrorMessage(n,r),data:n.data,raw:sanitizeRaw(n)}}}return e instanceof Error?{block:t,successful:!1,errors:[(0,c.serializeHttpResponseError)(e)],output:{statusCode:500,message:e.message}}:{block:t,successful:!1,errors:[(0,c.serializeHttpResponseError)(e)],output:{statusCode:500,message:String(e)}}},w=(0,o.zStrictObject)({strategy:o.z.literal(`aws4`),service:o.z.string(),region:o.z.string().optional()}),T=(0,o.zStrictObject)({strategy:o.z.literal(`hmac`),algorithm:o.z.enum([`sha256`,`sha512`]).optional(),headerName:o.z.string().optional(),prefix:o.z.string().optional()}),E=o.z.discriminatedUnion(`strategy`,[w,T]),D=(0,o.zStrictObject)({type:o.z.literal(`none`),signing:E.optional()}),O=(0,o.zStrictObject)({type:o.z.literal(`basic`),username:o.z.string().optional(),password:o.z.string().optional(),encoding:o.z.string().optional()}),k=(0,o.zStrictObject)({type:o.z.literal(`bearer`),token:o.z.string(),includeBearer:o.z.boolean().optional().default(!0)}),A=(0,o.zStrictObject)({type:o.z.literal(`oauth2`),authorizationUrl:o.z.string().optional(),authorizationParams:o.z.record(o.z.string(),o.z.string()).optional(),tokenUrl:o.z.string().optional(),tokenParams:o.z.record(o.z.string(),o.z.string()).optional(),tokenExpiresIn:o.z.number().optional(),tokenRefreshExpiresIn:o.z.number().optional(),token:o.z.string(),includeBearer:o.z.boolean().optional().default(!0),scopes:o.z.string().optional(),scopeDelimiter:o.z.string().optional(),customHeaders:o.z.record(o.z.string(),o.z.string()).optional(),pkce:o.z.boolean().optional(),additionalTokenFields:o.z.record(o.z.string(),o.z.string().optional()).optional()}),j=o.z.discriminatedUnion(`type`,[D,O,k,A]),M=(0,o.zStrictObject)({certs:o.z.string().array().optional(),keys:o.z.string().array().optional()}).optional(),N=o.z.object({baseUrl:o.z.string().optional(),url:o.z.string(),method:o.z.enum(c.HttpMethods).optional().default(`get`),authorization:j.optional(),responseMode:o.z.enum([`buffer`,`stream`]).optional().default(`buffer`),responseType:o.z.enum([`arraybuffer`,`blob`,`text`,`json`]).optional().default(`arraybuffer`),encoding:o.z.enum([`base64`,`utf8`,`binary`,`raw`,`none`]).optional().default(`base64`),response:(0,o.zStrictObject)({dataKey:o.z.string().optional(),fileNameKey:o.z.string().optional(),contentTypeKey:o.z.string().optional(),contentIsBase64:o.z.boolean().optional().default(!1),urlKey:o.z.string().optional(),forwardAuth:o.z.boolean().optional().default(!1)}).optional(),maxRedirects:o.z.number().optional().default(5),followRedirects:o.z.boolean().optional().default(!0),customErrors:c.CUSTOM_ERROR_CONFIG_SCHEMA.array().optional(),args:(0,o.zStrictObject)({name:o.z.string(),value:o.z.unknown(),in:o.z.enum(c.RequestParameterLocations),spread:o.z.boolean().optional(),condition:o.z.string().optional(),arrayFormat:o.z.enum(c.QueryArrayFormats).optional()}).array().optional()}),P=(0,o.zStrictObject)({data:o.z.union([o.z.string(),o.z.instanceof(Buffer)]).optional(),raw:o.z.unknown().optional(),statusCode:o.z.number(),message:o.z.string().optional(),headers:o.z.record(o.z.string(),o.z.string()).optional(),contentDisposition:o.z.string().optional(),fileMetadata:(0,o.zStrictObject)({contentType:o.z.string().optional(),contentLength:o.z.number().optional(),fileName:o.z.string().optional(),lastModified:o.z.string().optional(),etag:o.z.string().optional()}).optional(),finalUrl:o.z.string().optional()}).optional(),downloadFileStepFunction=async({block:e,params:t})=>{if(!e.httpClient)throw Error(`HTTP client is not configured`);let{args:n}=t,r=n?n.filter(t=>!t.condition||(0,s.evaluate)(t.condition,e)===!0).map(e=>({...e,condition:void 0})):void 0,i=t?(0,s.safeEvaluateRecord)({...t,args:r},e):{},a={...i,customErrors:t?.customErrors},{baseUrl:l,url:u,method:d,authorization:f,args:p,responseMode:m,responseType:h,encoding:g,response:_,maxRedirects:v,followRedirects:y}=N.parse(a),b=i?.authentication?.[e.context.authenticationType]?.[e.context.environment]?.authorization,x=p?(0,c.parseRequestParameters)(p):{query:{},body:{},headers:{}},S=(0,c.createAuthorizationHeaders)((0,o.notMissing)(f)?f:j.parse(b)),C={...x?.headers??{},...S},w=e.connector?.rateLimit,T=e.connector?.concurrency,E=w!==void 0||T!==void 0?{rateLimit:w,concurrency:T}:void 0;if(m===`stream`)return performStreamDownload({block:e,httpClient:e.httpClient,baseUrl:l??``,url:u,method:d,headers:C,queryParams:x?.query,body:x?.body,maxRedirects:y?v:0,requestConfig:E});try{return{block:e,successful:!0,output:await performDownload({httpClient:e.httpClient,baseUrl:l??``,url:u,method:d,headers:C,queryParams:x?.query,body:x?.body,responseType:h,encoding:g,response:_,maxRedirects:y?v:0,requestConfig:E,authHeaders:S})}}catch(t){return buildStepErrorOutput(t,e)}},performStreamDownload=async e=>{let{block:t,httpClient:n,baseUrl:r,url:i,method:a,headers:o,queryParams:s,body:c,maxRedirects:l,requestConfig:u}=e,d=`${r}${i}`;if(!d.startsWith(`http://`)&&!d.startsWith(`https://`))throw Error(`Invalid URL: "${d}". URL must be absolute (start with http:// or https://). Either provide a baseUrl or ensure url is a complete URL.`);if(!n.requestStream)throw Error(`HTTP client does not support streaming. Either implement requestStream method or use responseMode: "buffer".`);try{let e=await n.requestStream({url:d,method:a,headers:o,queryParams:s,payload:c,maxRedirects:l,requestConfig:u}),r=extractFileMetadata(e.headers),i=buildContentDisposition(r);return{block:t,successful:!0,streamOutput:{stream:e.stream,headers:e.headers,contentDisposition:i,fileMetadata:r}}}catch(e){return buildStepErrorOutput(e,t)}},performDownload=async e=>{let{httpClient:t,baseUrl:n,url:r,method:i,headers:a,queryParams:o,body:s,responseType:c,encoding:l,response:u,maxRedirects:d,requestConfig:f,authHeaders:p}=e,m=`${n}${r}`;if(!m.startsWith(`http://`)&&!m.startsWith(`https://`))throw Error(`Invalid URL: "${m}". URL must be absolute (start with http:// or https://). Either provide a baseUrl or ensure url is a complete URL.`);let h=u?.urlKey||u?.dataKey?`json`:c,g=await t.request({url:m,method:i,headers:a,queryParams:o,payload:s,responseType:h===`json`?void 0:h,maxRedirects:d,requestConfig:f});if(u?.urlKey||u?.dataKey)return handleJsonResponse({httpClient:t,result:g,response:u,encoding:l,maxRedirects:d,requestConfig:f,authHeaders:p});let _=encodeFileData(g.data,l),v=extractFileMetadata(g.headers),y=buildContentDisposition(v);return{data:_,raw:g,statusCode:g?.status,message:g?.message,headers:g.headers,contentDisposition:y,fileMetadata:v,finalUrl:g?.requestUrl}},handleJsonResponse=async e=>{let{httpClient:t,result:n,response:r,encoding:i,maxRedirects:a,requestConfig:s,authHeaders:c}=e,l=n.data;if(r.urlKey){let e=extractValueByPath(l,r.urlKey);if(typeof e==`string`){let n=await t.request({url:e,method:`get`,headers:r.forwardAuth?c:{},responseType:`arraybuffer`,maxRedirects:a,requestConfig:s}),o=encodeFileData(n.data,i),u=extractFileMetadata(n.headers);if(r.fileNameKey){let e=extractValueByPath(l,r.fileNameKey);typeof e==`string`&&(u.fileName=e)}if(r.contentTypeKey){let e=extractValueByPath(l,r.contentTypeKey);typeof e==`string`&&(u.contentType=e)}let d=buildContentDisposition(u);return{data:o,raw:n,statusCode:n?.status,message:n?.message,headers:n.headers,contentDisposition:d,fileMetadata:u,finalUrl:e}}}if(r.dataKey){let e=extractValueByPath(l,r.dataKey);if((0,o.isMissing)(e))throw Error(`No file content found at path: ${r.dataKey}`);let t;if(typeof e==`string`)t=r.contentIsBase64?i===`base64`?e:i===`none`?Buffer.from(e,`base64`):Buffer.from(e,`base64`).toString(i===`raw`?`binary`:i):encodeFileData(e,i);else if(e instanceof ArrayBuffer||ArrayBuffer.isView(e))t=encodeFileData(e,i);else throw Error(`Unexpected file content type at path: ${r.dataKey}`);let a={};if(r.fileNameKey){let e=extractValueByPath(l,r.fileNameKey);typeof e==`string`&&(a.fileName=e)}if(r.contentTypeKey){let e=extractValueByPath(l,r.contentTypeKey);typeof e==`string`&&(a.contentType=e)}let s=buildContentDisposition(a);return{data:t,raw:n,statusCode:n?.status,message:n?.message,headers:n.headers,contentDisposition:s,fileMetadata:a}}throw Error(`JSON response handling requires either urlKey or dataKey to be specified`)},extractValueByPath=(e,t)=>{let n=(t.startsWith(`$.`)?t.slice(2):t).split(`.`),r=e;for(let e of n){if((0,o.isMissing)(r)||typeof r!=`object`)return;r=r[e]}return r},encodeFileData=(e,t)=>{if(t===`none`)return e instanceof ArrayBuffer||ArrayBuffer.isView(e)||typeof e==`string`?Buffer.from(e):Buffer.from(JSON.stringify(e));if(t===`raw`)return typeof e==`string`?e:e instanceof ArrayBuffer||ArrayBuffer.isView(e)?Buffer.from(e).toString(`binary`):JSON.stringify(e);if(typeof e==`string`)return t===`base64`?Buffer.from(e).toString(`base64`):e;if(e instanceof ArrayBuffer||ArrayBuffer.isView(e)){let n=Buffer.from(e);switch(t){case`base64`:return n.toString(`base64`);case`utf8`:return n.toString(`utf8`);case`binary`:default:return n.toString(`binary`)}}return JSON.stringify(e)},extractFileMetadata=e=>{let t=(0,o.isString)(e[`content-type`])?e[`content-type`]:void 0,n=(0,o.isString)(e[`content-length`])?e[`content-length`]:void 0,r=(0,o.isString)(e[`content-disposition`])?e[`content-disposition`]:void 0,i=(0,o.isString)(e[`last-modified`])?e[`last-modified`]:void 0,a=(0,o.isString)(e.etag)?e.etag:void 0,s=n?parseInt(n,10):void 0,c=extractFileName(r);return{contentType:t,contentLength:Number.isNaN(s)?void 0:s,fileName:c,lastModified:i,etag:a}},extractFileName=e=>{if(!e)return;let t=e.match(/filename\*=(?:UTF-8''|utf-8'')([^;\s]+)/i);if(t&&t[1])try{return decodeURIComponent(t[1])}catch{}let n=e.match(/filename=["']([^"']+)["']/);if(n&&n[1])return n[1];let r=e.match(/filename=([^;\s]+)/);if(r&&r[1])return r[1]},buildContentDisposition=e=>{let{fileName:t,contentType:n}=e,r=`attachment`;if(t)r=`attachment; filename="${t}"; filename*=UTF-8''${encodeURIComponent(t).replace(/['()]/g,escape)}`;else if(n){let e=getExtensionFromContentType(n);e&&(r=`attachment; filename="download.${e}"`)}return r},getExtensionFromContentType=e=>{let t=e.split(`;`)[0].trim().toLowerCase();return l.default.extension(t)||void 0},F=o.z.object({event:o.z.object({eventType:o.z.string(),eventDate:o.z.string().optional(),data:o.z.unknown().optional()}).optional()}),I=o.z.record(o.z.string(),o.z.unknown()),emitEventStepFunction=async({block:e,params:t})=>{let n=t?(0,s.safeEvaluateRecord)(t,e):{},{event:r}=F.parse(n);if(r&&e.emitEvent)try{await e.emitEvent({eventType:r.eventType,eventDate:r.eventDate,data:r.data})}catch(t){throw e.logger?.error({code:`EmitEventError`,message:`emitEvent callback failed: ${t.message}`}),t}else r&&!e.emitEvent&&e.logger?.warning({message:`emit_event step executed but no emitEvent callback provided on the block`});let{event:i,...a}=n;return{block:{...e},successful:!0,output:a}},L=o.z.object({stepsDataToGroup:o.z.array(o.z.string()),isSingleRecord:o.z.boolean().optional()}),R=o.z.object({data:o.z.unknown()}),groupDataStepFunction=async({block:e,params:t})=>{let{stepsDataToGroup:n,isSingleRecord:r}=L.parse(t),i=n.reduce((t,n)=>{let i=e.steps?.[n]?.output?.data;return i?r?{...t,[n]:{...i}}:(Object.keys(i).forEach(e=>{t[e]={...(0,o.notMissing)(t[e])?t[e]:{},[n]:{...i[e]}}}),t):t},{});return{block:{...e},successful:!0,output:{data:r?i:Object.values(i)}}},z=__name(async({block:e})=>{let t=e?.fieldConfigs,n=[],r=e.steps;if(!t||e?.debug?.custom_mappings===`disabled`||!r)return{block:e,successful:!0};let i;if(Array.isArray(e.result)){let a=e.result.length;i=e.result.map((e,i)=>{let o=B(e,t,extractSingleRecordBlockStepData(r,a,i));return n.push(...o.errors||[]),o.record})}else{let a=B(e.result,t,r);i=a.record,n.push(...a.errors||[])}return{block:{...e,result:i},successful:!0,errors:Object.keys(n).length>0?n:void 0}},`mapFieldsStepFunction`),extractSingleRecordBlockStepData=(e,t,n)=>Object.entries(e).reduce((e,[r,i])=>{let a=i?.output?.data;return Array.isArray(a)&&a.length===t?e[r]={output:{data:a[n]}}:e[r]=i,e},{}),B=__name((e,t,n)=>{if(!e||!n)return{record:e};let r={unified:{...e},...typeof n==`object`?n:{}},i={},a=[],o={...e};for(let n of t){let{error:t,value:s}=V(r,e.id,n);if(t){a.push(t);continue}n.custom?i[n.targetFieldKey]=s:o[n.targetFieldKey]=s}return{record:{...o,unified_custom_fields:Object.keys(i).length>0?i:void 0},errors:a.length>0?a:void 0}},`mapSingleRecord`),V=__name((e,t,n)=>{let{expression:r,targetFieldKey:i}=n;if(!r)return{error:{message:`Expression is empty`,id:t,targetField:i}};let a;try{a=(0,s.evaluate)(r,e)}catch{return{error:{message:`Invalid expression`,id:t,targetField:i}}}return a===void 0?{error:{message:`Expression returned no value`,id:t,targetField:i}}:{value:a}},`extractFieldValue`),getEnumMatcher=e=>{switch(e){case`country_alpha2code_by_alpha2code`:return o.getCountryAlpha2CodeByAlpha2Code;case`country_alpha3code_by_alpha3code`:return o.getCountryAlpha3CodeByAlpha3Code;case`country_code_by_country_code`:return o.getCountryCodeByCountryCode;case`country_name_by_country_name`:return o.getCountryNameByCountryName;case`country_name_by_alpha3code`:return o.getCountryNameByAlpha3Code;case`country_name_by_alpha2code`:return o.getCountryNameByAlpha2Code;case`country_name_by_country_code`:return o.getCountryNameByCountryCode;case`country_alpha3code_by_alpha2code`:return o.getCountryAlpha3CodeByAlpha2Code;case`country_alpha3code_by_country_name`:return o.getCountryAlpha3CodeByCountryName;case`country_alpha3code_by_country_code`:return o.getCountryAlpha3CodeByCountryCode;case`country_alpha2code_by_alpha3code`:return o.getCountryAlpha2CodeByAlpha3Code;case`country_alpha2code_by_country_name`:return o.getCountryAlpha2CodeByCountryName;case`country_alpha2code_by_country_code`:return o.getCountryAlpha2CodeByCountryCode;case`country_code_by_alpha2code`:return o.getCountryCodeByAlpha2Code;case`country_code_by_alpha3code`:return o.getCountryCodeByAlpha3Code;case`country_code_by_country_name`:return o.getCountryCodeByCountryName;case`country_subdivisions_by_alpha2code`:return o.getCountrySubDivisionsByAlpha2Code;case`country_subdivision_code_by_subdivision_name`:return o.getCountrySubDivisionCodeBySubDivisionName;case`country_alpha2code_by_citizenship`:return o.getCountryAlpha2CodeByCitizenship;case`country_subdivision_name_by_subdivision_code`:return o.getCountrySubDivisionNameBySubDivisionCode;case`document_file_format_from_extension`:return o.getDocumentFileFormatFromExtension;default:return}},H=(0,o.zStrictObject)({targetFieldKey:o.z.string(),alias:o.z.string().optional(),expression:o.z.string().optional(),values:o.z.unknown().optional(),type:o.z.enum([`string`,`number`,`boolean`,`datetime_string`,`enum`,`object`]),array:o.z.boolean().default(!1),custom:o.z.boolean().default(!1),hidden:o.z.boolean().default(!1),enumMapper:(0,o.zStrictObject)({matcher:o.z.string().or((0,o.zStrictObject)({matchExpression:o.z.string(),value:o.z.string()}).array())}).optional(),properties:o.z.lazy(()=>H).array().optional(),requiredScopes:o.z.string().array().optional()}),U=o.z.object({fields:H.array(),dataSource:o.z.string(),externalSources:o.z.record(o.z.string(),o.z.string()).optional()}),W=o.z.object({data:o.z.unknown()}),mapFieldsStepFunction=async({block:e,params:t})=>{let n=[],{fields:r,dataSource:i,externalSources:a}=U.parse(t),o=(0,s.evaluate)(i,e);if(!r||!i||e?.debug?.custom_mappings===`disabled`||!o)return{block:e,successful:!0};let c=Object.keys(a??{})?.reduce((t,n)=>(t[n]=(0,s.evaluate)(a?.[n],e),t),{}),l;if(Array.isArray(o))l=o.map(e=>{let t=K(r,{...e,external:c});return n.push(...t?.errors||[]),t?.record});else{let e=K(r,{...o,external:c});l=e?.record,n.push(...e?.errors||[])}return{block:{...e},successful:!0,output:{data:l},errors:Object.keys(n).length>0?n:void 0}},handleObjectArrayFromValues=(e,t,n)=>{if(Array.isArray(e.values))return e.values.map(r=>{let i=evaluateExpressionsInObject(r,t),a=K(e.properties,i);return(0,o.notMissing)(a?.errors)&&n.push(...a.errors),a?.record}).filter(Boolean)},handleObjectArrayFromExpression=(e,t,n)=>{if(e.expression)try{let r=(0,s.evaluate)(e.expression,t);if(Array.isArray(r))return r.map(t=>{let r=K(e.properties,t);return(0,o.notMissing)(r?.errors)&&n.push(...r.errors),r?.record}).filter(Boolean);{let t=K(e.properties,r);return(0,o.notMissing)(t?.errors)&&n.push(...t.errors),t?.record}}catch{n.push({message:`Invalid expression`,id:t?.id,targetField:e.targetFieldKey});return}},handleSingleObject=(e,t,n)=>{let r=(0,o.notMissing)(e.values)?e.values:t,i=K(e.properties,r);return(0,o.notMissing)(i?.errors)&&n.push(...i.errors),i?.record},G=__name((e,t,n)=>{if(!(0,o.isMissing)(e.properties))return e.array&&Array.isArray(e.values)?handleObjectArrayFromValues(e,t,n):e.array&&e.expression?handleObjectArrayFromExpression(e,t,n):handleSingleObject(e,t,n)},`handleObjectField`),K=__name((e,t)=>{if(!t)return;let n={},r=[],i={};for(let a of e){let e;if(a.type===`object`){if(e=G(a,t,r),e===void 0)continue}else{let{error:n,value:i}=extractFieldValue(t,t?.id,a);if(e=i,n){r.push(n);continue}}a.custom?n[a.targetFieldKey]=e:i[a.targetFieldKey]=e}let a=Object.keys(n).length>0?{unified_custom_fields:n}:{};return{record:{...i,...a},errors:r.length>0?r:void 0}},`mapSingleRecord`),evaluateExpressionsInObject=(e,t)=>{if(e==null)return e;if(typeof e==`string`){if((0,s.isValidExpression)(e))try{return(0,s.evaluate)(e,t)}catch{return e}return e}if(Array.isArray(e))return e.map(e=>evaluateExpressionsInObject(e,t));if(typeof e==`object`){let n={...e};for(let[e,r]of Object.entries(n))n[e]=evaluateExpressionsInObject(r,t);return n}return e},extractFieldValue=(e,t,n)=>{switch(n.type){case`string`:case`number`:case`boolean`:case`datetime_string`:return q(n,t,e);case`enum`:return evaluateEnumValue(n,t,e);default:return{error:{message:`Invalid type`,id:t,targetField:n.targetFieldKey}}}},q=__name((e,t,n)=>{if(!e.expression)return{error:{message:`Expression is empty`,id:t,targetField:e.targetFieldKey}};let r;try{r=(0,s.evaluate)(e.expression,n)}catch{return{error:{message:`Invalid expression`,id:t,targetField:e.targetFieldKey}}}return r===void 0?{error:{message:`Expression returned no value`,id:t,targetField:e.targetFieldKey}}:{value:r}},`evaluateValue`),evaluateEnumValue=(e,t,n)=>{let r=q(e,t,n),i=(0,o.notMissing)(r.value)?r.value:null;if(e.enumMapper===void 0)return{error:{message:`Enum mapper was not defined`,id:t,targetField:e.targetFieldKey}};let a=e.enumMapper.matcher;if((0,o.isString)(a)){let n=getEnumMatcher(a);return(0,o.notMissing)(n)?{value:{value:((0,o.notMissing)(i)?n(i):null)??`unmapped_value`,source_value:i}}:{error:{message:`The built-in matcher "${a}" is not supported`,id:t,targetField:e.targetFieldKey}}}for(let e of a){let{matchExpression:t,value:r}=e;if((0,s.evaluate)(t,n)===!0)return{value:{value:r,source_value:i}}}return{value:{value:`unmapped_value`,source_value:i}}},J=[`data`,`headers`],ee=o.z.object({baseUrl:o.z.string(),url:o.z.string(),method:o.z.enum(c.HttpMethods),saml:(0,o.zStrictObject)({objectKey:o.z.string(),key:o.z.string(),clientId:o.z.string(),cert:o.z.unknown().optional(),issuer:o.z.string().optional(),lifetime:o.z.number().optional(),nameId:o.z.string().optional(),audience:o.z.string().optional(),nameIdentifierFormat:o.z.string().optional(),tokenEndpoint:o.z.string().optional()}).optional(),response:(0,o.zStrictObject)({indexField:o.z.string().optional(),dataKey:o.z.string().optional(),nextKey:o.z.string().optional(),nextKeyIn:o.z.enum(J).optional()}).optional(),iterator:(0,o.zStrictObject)({key:o.z.string(),in:o.z.enum(c.RequestParameterLocations),condition:o.z.string().optional(),mode:o.z.enum([`cursor`,`offset`]).optional()}),cursor:(0,o.zStrictObject)({token:o.z.string().optional().nullable(),position:o.z.number().optional().nullable()}).optional(),customErrors:c.CUSTOM_ERROR_CONFIG_SCHEMA.array().optional(),args:(0,o.zStrictObject)({name:o.z.string(),value:o.z.unknown(),in:o.z.enum(c.RequestParameterLocations),spread:o.z.boolean().optional(),condition:o.z.string().optional(),arrayFormat:o.z.enum(c.QueryArrayFormats).optional()}).array().optional()}),Y=(0,o.zStrictObject)({data:o.z.unknown().optional(),raw:o.z.unknown().optional(),statusCode:o.z.number(),message:o.z.string().optional(),next:o.z.string().optional().nullable(),position:o.z.number().optional()}).optional(),X=25,Z=__name(e=>{let t=e.trim();return t.startsWith(`{{`)&&t.endsWith(`}}`)},`isJexlExpression`),paginatedRequestStepFunction=async({block:e,params:t})=>{let n=c.RequestClientFactory.build();if(!e.httpClient)throw Error(`HTTP client is not configured`);let{args:r}=t,i=Number(e.inputs?.page_size),a=Number.isNaN(i)?25:i,l=r?r.filter(t=>!t.condition||(0,s.evaluate)(t.condition,e)===!0).map(e=>({...e,condition:void 0})):void 0,u=t?(0,s.safeEvaluateRecord)({...t,args:l},e):{},d=t?.response?.nextKey,f=d&&Z(d),p=t?.response?.dataKey,m=p&&Z(p),h={...u?.response??{},...f?{nextKey:d}:{},...m?{dataKey:p}:{}},g={...u,customErrors:t?.customErrors,iterator:{...u?.iterator??{},condition:t?.iterator?.condition},response:f||m?h:u?.response},{baseUrl:_,url:v,method:y,response:b,iterator:x,cursor:S,customErrors:C,args:w,saml:T}=ee.parse(g),E=u?.authentication?.[e.context.authenticationType]?.[e.context.environment],D=E?.authorization,O=E?.certificates,k=O?(0,c.buildHttpsAgent)(O):void 0,A=j.parse(D),M=w?(0,c.parseRequestParameters)(w):{query:{},body:{},headers:{}},N=(0,c.createAuthorizationHeaders)(A),P={...M?.headers??{},...N},F=e.connector?.rateLimit,I=e.connector?.concurrency,L=F!==void 0||I!==void 0?{rateLimit:F,concurrency:I}:void 0,R=(0,o.notMissing)(T)?{[T.objectKey]:await(0,o.generateSamlAssertion)({key:T.key,clientId:T.clientId,cert:T.cert,issuer:T.issuer,lifetime:T.lifetime,audience:T.audience,nameId:T.nameId,nameIdentifierFormat:T.nameIdentifierFormat,tokenEndpoint:T.tokenEndpoint})}:{},z=x.mode===`offset`,B=S?.token??null,V=null,H=null,U=[],W=[],G=[],K=a,q=S?.position??0,J=!0,Y=!0,X=!0;do{J?J=!1:z||(q=0),B===null?z&&(x.in===`query`?M.query[x.key]=q.toString():x.in===`body`&&(Array.isArray(M.body)||(M.body[x.key]=q))):x.in===`query`?(0,o.isObject)(B)?Object.entries(B).forEach(([e,t])=>{M.query[`${x.key}[${e}]`]=t?.toString()??``}):M.query[x.key]=B.toString():x.in===`body`&&(Array.isArray(M.body)||(M.body[x.key]=B));let t;try{t=await n.performRequest({httpClient:e.httpClient,url:`${_}${v}`,queryParams:{...M?.query},method:y,headers:{...P},body:Array.isArray(M?.body)?M.body:{...M?.body,...R},customErrorConfigs:C,requestConfig:L,httpsAgent:k})}catch(t){return buildStepErrorOutput(t,e)}V=B,W=b?.dataKey?te(t.data,b.dataKey):t.data;let r=z?W?.slice(0,K):W?.slice(q,q+K);K-=r.length,q+=r.length,G.push(t),U=U.concat(r),H=t?.status,B=ne({result:t,response:b}),X=(0,o.notMissing)(x.condition)?(0,s.safeEvaluate)(x.condition,t.data)===!0:!0,!z&&r.length===W.length&&K===0&&(q=0,V=B),Y=!X||(0,o.isMissing)(B)&&U.length<a}while((z||(0,o.notMissing)(B))&&X&&U.length<a&&W?.length>0);return{block:e,successful:!0,output:{data:ae(U,b),raw:G,statusCode:H,next:Y?void 0:V,position:Y?void 0:q}}},te=__name((e,t)=>{if((0,o.isMissing)(e)||typeof e!=`object`||!e)return e;let n=(0,s.safeEvaluate)(Z(t)?t:`$.${t}`,e);return n===void 0?e[t]:n},`resolveDataKey`),ne=__name(({result:e,response:t})=>{if((0,o.isMissing)(t?.nextKey))return null;let n=t?.nextKeyIn??`data`,r=t?.nextKey;return n===`headers`?re(e.headers,r):ie(e.data,r)},`resolveNextIterator`),re=__name((e,t)=>{if((0,o.isMissing)(e)||typeof e!=`object`)return null;if(Z(t)){let n=(0,s.safeEvaluate)(t,e);return typeof n==`string`&&n!==``||typeof n==`number`?n:null}let n=t.toLowerCase(),[,r]=Object.entries(e).find(([e])=>e?.toLowerCase()===n)??[];if(Array.isArray(r)){let e=r.find(e=>typeof e==`string`&&e!==``||typeof e==`number`);return typeof e==`string`||typeof e==`number`?e:null}return typeof r==`string`&&r!==``||typeof r==`number`?r:null},`resolveFromHeaders`),ie=__name((e,t)=>{if((0,o.isMissing)(e)||typeof e!=`object`||!e)return null;let n=(0,s.safeEvaluate)(Z(t)?t:`$.${t}`,e);return(0,o.isMissing)(n)?null:typeof n==`string`||typeof n==`number`||typeof n==`object`?n:null},`resolveFromData`),ae=__name((e,t)=>{if(t?.indexField&&Array.isArray(e))return e.reduce((e,n)=>{let r=t.indexField;return r&&n[r]&&(e[n[r]]=n),e},{});if(t?.indexField){let n=t.indexField;return n&&e[n]?{[e[n]]:e}:e}return e},`indexResponseData`),oe=o.z.object({baseUrl:o.z.string().optional(),url:o.z.string(),method:o.z.enum(c.HttpMethods),authorization:j.optional(),certificates:M,saml:(0,o.zStrictObject)({objectKey:o.z.string(),key:o.z.string(),clientId:o.z.string(),cert:o.z.unknown().optional(),issuer:o.z.string().optional(),lifetime:o.z.number().optional(),nameId:o.z.string().optional(),audience:o.z.string().optional(),nameIdentifierFormat:o.z.string().optional(),tokenEndpoint:o.z.string().optional()}).optional(),response:(0,o.zStrictObject)({collection:o.z.boolean().optional(),indexField:o.z.string().optional(),dataKey:o.z.string().optional()}).optional(),customErrors:c.CUSTOM_ERROR_CONFIG_SCHEMA.array().optional(),args:(0,o.zStrictObject)({name:o.z.string(),value:o.z.unknown(),in:o.z.enum(c.RequestParameterLocations),spread:o.z.boolean().optional(),condition:o.z.string().optional(),arrayFormat:o.z.enum(c.QueryArrayFormats).optional()}).array().optional()}),se=(0,o.zStrictObject)({data:o.z.unknown().optional(),raw:o.z.unknown().optional(),statusCode:o.z.number(),message:o.z.string().optional()}).optional(),isJexlExpression=e=>{let t=e.trim();return t.startsWith(`{{`)&&t.endsWith(`}}`)},requestStepFunction=async({block:e,params:t})=>{let n=c.RequestClientFactory.build();if(!e.httpClient)throw Error(`HTTP client is not configured`);let{args:r}=t,i=r?r.filter(t=>!t.condition||(0,s.evaluate)(t.condition,e)===!0).map(e=>({...e,condition:void 0})):void 0,a=t?.response?.dataKey,l=a&&isJexlExpression(a),u=t?(0,s.safeEvaluateRecord)({...t,args:i},e):{},d={...u,customErrors:t?.customErrors,response:l?{...u?.response??{},dataKey:a}:u?.response},{baseUrl:f,url:p,method:m,response:h,authorization:g,certificates:_,customErrors:v,args:y,saml:b}=oe.parse(d),x=u?.authentication?.[e.context.authenticationType]?.[e.context.environment],S=x?.authorization,C=_??x?.certificates,w=C?(0,c.buildHttpsAgent)(C):void 0,T=y?(0,c.parseRequestParameters)(y):{query:{},body:{},headers:{}},E=(0,o.notMissing)(g)?g:j.parse(S),D=(0,c.createAuthorizationHeaders)(E),O={...T?.headers??{},...D},k=e.connector?.rateLimit,A=e.connector?.concurrency,M=k!==void 0||A!==void 0?{rateLimit:k,concurrency:A}:void 0,N=(0,o.notMissing)(b)?{[b.objectKey]:await(0,o.generateSamlAssertion)({key:b.key,clientId:b.clientId,cert:b.cert,issuer:b.issuer,lifetime:b.lifetime,audience:b.audience,nameId:b.nameId,nameIdentifierFormat:b.nameIdentifierFormat,tokenEndpoint:b.tokenEndpoint})}:{},P=Array.isArray(T?.body)?T?.body:{...T?.body,...N};if(E.type===`none`&&E.signing?.strategy){let t=E.signing,n=e.credentials??{};try{let e=(0,c.getSigningStrategy)(t.strategy);if(!e)throw Error(`Signing strategy "${t.strategy}" is not registered`);let r=e({method:m,url:`${f}${p}`,headers:O,query:T?.query??{},body:P},n,t);Object.assign(O,r)}catch(t){return buildStepErrorOutput(t,e)}}let F;try{F=await n.performRequest({httpClient:e.httpClient,url:`${f}${p}`,queryParams:T?.query,method:m,headers:O,body:P,customErrorConfigs:v,requestConfig:M,httpsAgent:w})}catch(t){return buildStepErrorOutput(t,e)}return{block:e,successful:!0,output:{data:ce(h?.dataKey?resolveDataKey(F.data,h.dataKey):F.data,h),raw:F,statusCode:F?.status,message:F?.message}}},resolveDataKey=(e,t)=>{if((0,o.isMissing)(e)||typeof e!=`object`||!e)return e;let n=(0,s.safeEvaluate)(isJexlExpression(t)?t:`$.${t}`,e);return n===void 0?e[t]:n},ce=__name((e,t)=>{if(t?.collection&&t?.indexField&&Array.isArray(e))return e.reduce((e,n)=>{let r=t.indexField;return r&&n[r]&&(e[n[r]]=n),e},{});if(!t?.collection&&t?.indexField){let n=t.indexField;return n&&e[n]?{[e[n]]:e}:e}return e},`indexResponseData`),le=[`data`,`headers`],ue=o.z.object({baseUrl:o.z.string().optional(),url:o.z.string(),method:o.z.enum(c.HttpMethods),authorization:o.z.discriminatedUnion(`type`,[(0,o.zStrictObject)({type:o.z.literal(`none`)}),(0,o.zStrictObject)({type:o.z.literal(`basic`),username:o.z.string().optional(),password:o.z.string().optional(),encoding:o.z.string().optional()}),(0,o.zStrictObject)({type:o.z.literal(`bearer`),token:o.z.string(),includeBearer:o.z.boolean().optional().default(!0)}),(0,o.zStrictObject)({type:o.z.literal(`oauth2`),token:o.z.string(),includeBearer:o.z.boolean().optional().default(!0)})]).optional(),envelope:o.z.union([o.z.string(),o.z.record(o.z.string(),o.z.unknown())]).optional(),namespaces:o.z.strictObject({namespaceIdentifier:o.z.string(),namespace:o.z.string()}).array().optional(),soapOperation:o.z.string().optional(),soapAction:o.z.string().optional(),useSoapContext:o.z.boolean().optional().default(!0),response:(0,o.zStrictObject)({collection:o.z.boolean().optional(),indexField:o.z.string().optional(),dataKey:o.z.string().optional(),nextKey:o.z.string().optional(),nextKeyIn:o.z.enum(le).optional()}).optional(),iterator:(0,o.zStrictObject)({key:o.z.string(),in:o.z.enum(c.RequestParameterLocations)}),cursor:(0,o.zStrictObject)({token:o.z.string().optional().nullable(),position:o.z.number().optional().nullable()}).optional(),customErrors:c.CUSTOM_ERROR_CONFIG_SCHEMA.array().optional(),args:(0,o.zStrictObject)({name:o.z.string(),value:o.z.unknown(),in:o.z.enum(c.RequestParameterLocations),condition:o.z.string().optional(),arrayFormat:o.z.enum(c.QueryArrayFormats).optional()}).array().optional()}),de=(0,o.zStrictObject)({data:o.z.unknown().optional(),raw:o.z.unknown().optional(),statusCode:o.z.number(),message:o.z.string().optional(),next:o.z.string().optional().nullable(),position:o.z.number().optional()}).optional(),fe=25,soapPaginatedRequestStepFunction=async({block:e,params:t})=>{let n=c.RequestClientFactory.build(`soap`);if(!e.httpClient)throw Error(`HTTP client is not configured`);let{args:r}=t,i=Number(e.inputs?.page_size),a=Number.isNaN(i)?25:i,l=r?r.filter(t=>!t.condition||(0,s.evaluate)(t.condition,e)===!0).map(e=>({...e,condition:void 0})):void 0,u=t?(0,s.safeEvaluateRecord)({...t,args:l},e):{},d={...u,customErrors:t?.customErrors},{baseUrl:f,url:p,method:m,response:h,iterator:g,cursor:_,authorization:v,customErrors:y,args:b,soapOperation:x,namespaces:S,envelope:C,soapAction:w,useSoapContext:T}=ue.parse(d),E=u?.authentication?.[e.context.authenticationType]?.[e.context.environment]?.authorization,D=b?(0,c.parseRequestParameters)(b):{query:{},body:{},headers:{}},O=(0,c.createAuthorizationHeaders)((0,o.notMissing)(v)?v:j.parse(E)),k={...D?.headers??{},...O},A=e.connector?.rateLimit,M=e.connector?.concurrency,N={...(A!==void 0||M!==void 0)&&{rateLimit:A,concurrency:M},soapOperation:x,namespaces:S,envelope:C,soapAction:w,soapContext:T?{username:e.credentials?.username,password:e.credentials?.password}:void 0},P=_?.token??null,F=null,I=null,L=[],R=[],z=[],B=a,V=_?.position??0,H=!0,U;do{H?H=!1:V=0,P!==null&&(g.in===`query`?D.query[g.key]=P.toString():g.in===`body`&&(D.body[g.key]=P));let t;try{t=await n.performRequest({httpClient:e.httpClient,url:`${f}${p}`,queryParams:D?.query,method:m,headers:k,body:D?.body,customErrorConfigs:y,requestConfig:N})}catch(t){return buildStepErrorOutput(t,e)}F=P,R=h?.dataKey?t.data[h?.dataKey]:t.data,Array.isArray(R)||(R=R?[R]:[]);let r=R?.slice(V,V+B);B-=r.length,V+=r.length,z.push(t),L=L.concat(r),I=t?.status,P=resolveNextIterator({result:t,response:h}),r.length===R.length&&B===0&&(V=0,F=P),U=(0,o.isMissing)(P)&&L.length<a}while((0,o.notMissing)(P)&&L.length<a&&R?.length>0);return{block:e,successful:!0,output:{data:pe(L,h),raw:z,statusCode:I,next:U?void 0:F,position:U?void 0:V}}},resolveNextIterator=({result:e,response:t})=>{if((0,o.isMissing)(t?.nextKey))return null;let n=t?.nextKeyIn??`data`,r=t?.nextKey;return n===`headers`?resolveFromHeaders(e.headers,r):resolveFromData(e.data,r)},resolveFromHeaders=(e,t)=>{if((0,o.isMissing)(e)||typeof e!=`object`)return null;let n=t.toLowerCase(),[,r]=Object.entries(e).find(([e])=>e?.toLowerCase()===n)??[];if(Array.isArray(r)){let e=r.find(e=>typeof e==`string`&&e!==``||typeof e==`number`);return typeof e==`string`||typeof e==`number`?e:null}return typeof r==`string`&&r!==``||typeof r==`number`?r:null},resolveFromData=(e,t)=>{if((0,o.isMissing)(e)||typeof e!=`object`||!e)return null;let n=e[t];return(0,o.isMissing)(n)?null:typeof n==`string`||typeof n==`number`?n:null},pe=__name((e,t)=>{if(t?.indexField&&Array.isArray(e))return e.reduce((e,n)=>{let r=t.indexField;return r&&n[r]&&(e[n[r]]=n),e},{});if(t?.indexField){let n=t.indexField;return n&&e[n]?{[e[n]]:e}:e}return e},`indexResponseData`),me=o.z.object({baseUrl:o.z.string().optional(),url:o.z.string(),method:o.z.enum(c.HttpMethods),authorization:j.optional(),envelope:o.z.union([o.z.string(),o.z.record(o.z.string(),o.z.unknown())]).optional(),namespaces:o.z.strictObject({namespaceIdentifier:o.z.string(),namespace:o.z.string()}).array().optional(),soapOperation:o.z.string().optional(),soapAction:o.z.string().optional(),useSoapContext:o.z.boolean().optional().default(!0),response:(0,o.zStrictObject)({collection:o.z.boolean().optional(),indexField:o.z.string().optional(),dataKey:o.z.string().optional()}).optional(),customErrors:c.CUSTOM_ERROR_CONFIG_SCHEMA.array().optional(),args:(0,o.zStrictObject)({name:o.z.string(),value:o.z.unknown(),in:o.z.enum(c.RequestParameterLocations),condition:o.z.string().optional(),arrayFormat:o.z.enum(c.QueryArrayFormats).optional()}).array().optional()}),he=(0,o.zStrictObject)({data:o.z.unknown().optional(),raw:o.z.unknown().optional(),statusCode:o.z.number(),message:o.z.string().optional()}).optional(),soapRequestStepFunction=async({block:e,params:t})=>{let n=c.RequestClientFactory.build(`soap`);if(!e.httpClient)throw Error(`HTTP client is not configured`);let{args:r}=t,i=r?r.filter(t=>!t.condition||(0,s.evaluate)(t.condition,e)===!0).map(e=>({...e,condition:void 0})):void 0,a=t?(0,s.safeEvaluateRecord)({...t,args:i},e):{},l={...a,customErrors:t?.customErrors},{baseUrl:u,url:d,method:f,response:p,authorization:m,customErrors:h,args:g,soapOperation:_,namespaces:v,envelope:y,soapAction:b,useSoapContext:x}=me.parse(l),S=a?.authentication?.[e.context.authenticationType]?.[e.context.environment]?.authorization,C=g?(0,c.parseRequestParameters)(g):{query:{},body:{},headers:{}},w=(0,c.createAuthorizationHeaders)((0,o.notMissing)(m)?m:j.parse(S)),T={...C?.headers??{},...w},E=e.connector?.rateLimit,D=e.connector?.concurrency,O={...(E!==void 0||D!==void 0)&&{rateLimit:E,concurrency:D},soapOperation:_,namespaces:v,envelope:y,soapAction:b,soapContext:x?{username:e.credentials?.username,password:e.credentials?.password}:void 0},k;try{k=await n.performRequest({httpClient:e.httpClient,url:`${u}${d}`,queryParams:C?.query,method:f,headers:T,body:C?.body,customErrorConfigs:h,requestConfig:O})}catch(t){return buildStepErrorOutput(t,e)}return{block:e,successful:!0,output:{data:ge(p?.dataKey?k.data[p?.dataKey]:k.data,p),raw:k,statusCode:k?.status,message:k?.message}}},ge=__name((e,t)=>{if(t?.collection&&t?.indexField&&Array.isArray(e))return e.reduce((e,n)=>{let r=t.indexField;return r&&n[r]&&(e[n[r]]=n),e},{});if(!t?.collection&&t?.indexField){let n=t.indexField;return n&&e[n]?{[e[n]]:e}:e}return e},`indexResponseData`),_e=o.z.object({values:o.z.string().or(o.z.record(o.z.string(),o.z.unknown())).or(o.z.array(o.z.unknown()))}),ve=o.z.object({data:o.z.unknown()}),staticValuesStepFunction=async({block:e,params:t})=>{let{values:n}=_e.parse(t),r=Array.isArray(n)?n.map(t=>evaluateValue(t,e)):evaluateValue(n,e);return{block:{...e},successful:!0,output:{data:r}}},evaluateValue=(e,t)=>(0,o.isString)(e)?(0,s.safeEvaluate)(e,t):(0,o.isObject)(e)?(0,s.safeEvaluateRecord)(e,t):e,ye=o.z.object({targetFieldKey:o.z.string(),type:o.z.enum([`string`,`number`,`boolean`,`datetime_string`,`enum`,`object`]),array:o.z.boolean().default(!1),custom:o.z.boolean().default(!1),hidden:o.z.boolean().default(!1),properties:o.z.lazy(()=>ye).array().optional(),requiredScopes:o.z.string().array().optional()}),be=o.z.object({fields:ye.array().optional(),dataSource:o.z.string()}),xe=o.z.object({data:o.z.unknown()});let Q=function(e){return e.String=`string`,e.Number=`number`,e.Boolean=`boolean`,e.DateTimeString=`datetime_string`,e}({});const typecast=({value:e,type:t,format:n})=>{if((0,o.isMissing)(e))return null;switch(t){case Q.String:return(0,o.safeParseToString)({value:e});case Q.Number:return(0,o.safeParseToNumber)({value:e});case Q.Boolean:return(0,o.safeParseToBoolean)({value:e});case Q.DateTimeString:return(0,o.safeParseToDateTimeString)({value:e,format:n});default:return e}},isFieldSupportedType=e=>Object.values(Q).includes(e),Se=__name(async({block:e})=>{let t=e?.fieldConfigs;if(!t||e?.debug?.custom_mappings===`disabled`)return{block:e,successful:!0};let n;return n=Array.isArray(e.result)?e.result.map(e=>Ce(e,t)):Ce(e.result,t),{block:{...e,result:n},successful:!0}},`typecastStepFunction`),Ce=__name((e,t)=>{let n={...e};return t.forEach(t=>{let{targetFieldKey:r,type:i}=t;isFieldSupportedType(i)&&(!t.custom&&(0,o.notMissing)(n[r])?n[r]=typecast({value:e[r],type:i}):n.unified_custom_fields&&(0,o.notMissing)(n.unified_custom_fields?.[r])&&(n.unified_custom_fields[r]=typecast({value:e.unified_custom_fields?.[r],type:i})))}),{...n}},`mapSingleRecord`),typecastStepFunction=async({block:e,params:t})=>{let{fields:n,dataSource:r}=be.parse(t),i=(0,s.evaluate)(r,e);if(!n||e?.debug?.custom_mappings===`disabled`)return{block:e,successful:!0};let a;return a=Array.isArray(i)?i.map(e=>mapSingleRecord(e,n)):mapSingleRecord(i,n),{block:{...e},successful:!0,output:{data:a}}},handleObjectField=(e,t)=>!e.properties||!t?t:Array.isArray(t)?t.map(t=>typeof t==`object`&&t?mapSingleRecord(t,e.properties):t):typeof t==`object`&&t?mapSingleRecord(t,e.properties):t,mapSingleRecord=(e,t)=>{let n={...e};return t.forEach(t=>{let{targetFieldKey:r,type:i,array:a}=t;i===`object`?!t.custom&&(0,o.notMissing)(n[r])?n[r]=handleObjectField(t,e[r]):n.unified_custom_fields&&(0,o.notMissing)(n.unified_custom_fields?.[r])&&(n.unified_custom_fields[r]=handleObjectField(t,e.unified_custom_fields?.[r])):isFieldSupportedType(i)&&(!t.custom&&(0,o.notMissing)(n[r])?(!a||!Array.isArray(n[r]))&&(n[r]=typecast({value:e[r],type:i})):n.unified_custom_fields&&(0,o.notMissing)(n.unified_custom_fields?.[r])&&(!a||!Array.isArray(n.unified_custom_fields[r]))&&(n.unified_custom_fields[r]=typecast({value:e.unified_custom_fields?.[r],type:i})))}),{...n}},we=(0,o.zStrictObject)({content:o.z.string().describe(`The file content as base64 encoded string`),contentType:o.z.string().optional().describe(`The MIME type for the binary content (defaults to application/octet-stream)`)}),Te=o.z.object({baseUrl:o.z.string().optional(),url:o.z.string(),method:o.z.enum(c.HttpMethods).default(`post`),authorization:j.optional(),binaryContent:we.describe(`Raw binary content for octet-stream uploads`),response:(0,o.zStrictObject)({collection:o.z.boolean().optional(),indexField:o.z.string().optional(),dataKey:o.z.string().optional()}).optional(),customErrors:c.CUSTOM_ERROR_CONFIG_SCHEMA.array().optional(),args:(0,o.zStrictObject)({name:o.z.string(),value:o.z.unknown(),in:o.z.enum(c.RequestParameterLocations),spread:o.z.boolean().optional(),condition:o.z.string().optional(),arrayFormat:o.z.enum(c.QueryArrayFormats).optional()}).array().optional().describe(`Additional request parameters (query params, headers)`)}),Ee=(0,o.zStrictObject)({data:o.z.unknown().optional(),raw:o.z.unknown().optional(),statusCode:o.z.number(),message:o.z.string().optional()}).optional(),uploadBinaryStepFunction=async({block:e,params:t})=>{if(!e.httpClient)throw Error(`HTTP client is not configured`);let{args:n}=t,r=n?n.filter(t=>!t.condition||(0,s.evaluate)(t.condition,e)===!0).map(e=>({...e,condition:void 0})):void 0,i=t?(0,s.safeEvaluateRecord)({...t,args:r},e):{},a={...i,customErrors:t?.customErrors},{baseUrl:l,url:u,method:d,response:f,authorization:p,binaryContent:m,args:h,customErrors:g}=Te.parse(a),_=i?.authentication?.[e.context.authenticationType]?.[e.context.environment]?.authorization,v=h?(0,c.parseRequestParameters)(h):{query:{},body:{},headers:{}},y=(0,c.createAuthorizationHeaders)((0,o.notMissing)(p)?p:j.parse(_)),b=Buffer.from(m.content,`base64`),x={"content-type":m.contentType??`application/octet-stream`,...v?.headers??{},...y},S=e.connector?.rateLimit,C=e.connector?.concurrency,w=S!==void 0||C!==void 0?{rateLimit:S,concurrency:C}:void 0,T;try{T=await e.httpClient.request({url:`${l??``}${u}`,method:d,headers:x,queryParams:v?.query,payload:b,requestConfig:w})}catch(t){let n=t;return{block:e,successful:!1,errors:[(0,c.serializeHttpResponseError)(t)],output:{statusCode:n?.response?.status??500,message:n?.response?.message}}}let E=(0,c.translateCustomError)(T,g);return(0,c.isFailedStatusCode)(E?.status)?{block:e,successful:!1,errors:[(0,c.serializeHttpResponseError)(new c.HttpResponseError(E,E.message))],output:{statusCode:E.status,message:E.message}}:{block:e,successful:!0,output:{data:De(f?.dataKey?E.data[f?.dataKey]:E.data,f),raw:E,statusCode:E?.status,message:E?.message}}},De=__name((e,t)=>{if(t?.collection&&t?.indexField&&Array.isArray(e))return e.reduce((e,n)=>{let r=t.indexField;return r&&n[r]&&(e[n[r]]=n),e},{});if(!t?.collection&&t?.indexField){let n=t.indexField;return n&&e[n]?{[e[n]]:e}:e}return e},`indexResponseData`),Oe=(0,o.zStrictObject)({fieldName:o.z.string().describe(`The form field name for the file`),content:o.z.string().describe(`The file content as base64 encoded string`),filename:o.z.string().describe(`The filename to use in the upload`),contentType:o.z.string().optional().describe(`The MIME type of the file (e.g., "image/png", "application/pdf")`)}),ke=o.z.object({baseUrl:o.z.string().optional(),url:o.z.string(),method:o.z.enum(c.HttpMethods).default(`post`),authorization:j.optional(),file:Oe.describe(`The file to upload`),additionalFields:(0,o.zStrictObject)({name:o.z.string(),value:o.z.unknown(),condition:o.z.string().optional(),contentType:o.z.string().optional().describe(`The MIME type for this form field (e.g., "application/json")`)}).array().optional().describe(`Additional form fields to include in the multipart request`),response:(0,o.zStrictObject)({collection:o.z.boolean().optional(),indexField:o.z.string().optional(),dataKey:o.z.string().optional()}).optional(),customErrors:c.CUSTOM_ERROR_CONFIG_SCHEMA.array().optional(),args:(0,o.zStrictObject)({name:o.z.string(),value:o.z.unknown(),in:o.z.enum(c.RequestParameterLocations),spread:o.z.boolean().optional(),condition:o.z.string().optional(),arrayFormat:o.z.enum(c.QueryArrayFormats).optional()}).array().optional().describe(`Additional request parameters (query params, headers)`)}),Ae=(0,o.zStrictObject)({data:o.z.unknown().optional(),raw:o.z.unknown().optional(),statusCode:o.z.number(),message:o.z.string().optional()}).optional(),uploadFileStepFunction=async({block:e,params:t})=>{if(!e.httpClient)throw Error(`HTTP client is not configured`);let{args:n,additionalFields:r}=t,i=n?n.filter(t=>!t.condition||(0,s.evaluate)(t.condition,e)===!0).map(e=>({...e,condition:void 0})):void 0,a=r?r.filter(t=>!t.condition||(0,s.evaluate)(t.condition,e)===!0).map(e=>({...e,condition:void 0})):void 0,l=t?(0,s.safeEvaluateRecord)({...t,args:i,additionalFields:a},e):{},d={...l,customErrors:t?.customErrors},{baseUrl:f,url:p,method:m,response:h,authorization:g,file:_,additionalFields:v,args:y,customErrors:b}=ke.parse(d),x=l?.authentication?.[e.context.authenticationType]?.[e.context.environment]?.authorization,S=y?(0,c.parseRequestParameters)(y):{query:{},body:{},headers:{}},C=(0,c.createAuthorizationHeaders)((0,o.notMissing)(g)?g:j.parse(x)),w=new u.default;if(v)for(let e of v){let t=typeof e.value==`object`?JSON.stringify(e.value):String(e.value);w.append(e.name,t,e.contentType?{contentType:e.contentType}:void 0)}let T=Buffer.from(_.content,`base64`);w.append(_.fieldName,T,{filename:_.filename,contentType:_.contentType});let E={...w.getHeaders(),...S?.headers??{},...C},D=e.connector?.rateLimit,O=e.connector?.concurrency,k=D!==void 0||O!==void 0?{rateLimit:D,concurrency:O}:void 0,A;try{A=await e.httpClient.request({url:`${f??``}${p}`,method:m,headers:E,queryParams:S?.query,payload:w,requestConfig:k})}catch(t){return buildStepErrorOutput(t,e)}let M=(0,c.translateCustomError)(A,b);return(0,c.isFailedStatusCode)(M?.status)?buildStepErrorOutput(new c.HttpResponseError(M,M.message),e):{block:e,successful:!0,output:{data:indexResponseData(h?.dataKey?M.data[h?.dataKey]:M.data,h),raw:M,statusCode:M?.status,message:M?.message}}},indexResponseData=(e,t)=>{if(t?.collection&&t?.indexField&&Array.isArray(e))return e.reduce((e,n)=>{let r=t.indexField;return r&&n[r]&&(e[n[r]]=n),e},{});if(!t?.collection&&t?.indexField){let n=t.indexField;return n&&e[n]?{[e[n]]:e}:e}return e};let $=function(e){return e.TYPECAST=`typecast`,e.MAP_FIELDS=`map_fields`,e.GROUP_DATA=`group_data`,e.REQUEST=`request`,e.PAGINATED_REQUEST=`paginated_request`,e.SOAP_REQUEST=`soap_request`,e.SOAP_PAGINATED_REQUEST=`soap_paginated_request`,e.STATIC_VALUES=`static_values`,e.UPLOAD_FILE=`upload_file`,e.UPLOAD_BINARY=`upload_binary`,e.DOWNLOAD_FILE=`download_file`,e.EMIT_EVENT=`emit_event`,e}({});const je={[$.TYPECAST]:{v1:{fn:Se},v2:{fn:typecastStepFunction,inputSchema:be,outputSchema:xe}},[$.MAP_FIELDS]:{v1:{fn:z},v2:{fn:mapFieldsStepFunction,inputSchema:U,outputSchema:W}},[$.REQUEST]:{v1:{fn:requestStepFunction,inputSchema:oe,outputSchema:se}},[$.GROUP_DATA]:{v1:{fn:groupDataStepFunction,inputSchema:L,outputSchema:R}},[$.PAGINATED_REQUEST]:{v1:{fn:paginatedRequestStepFunction,inputSchema:ee,outputSchema:Y}},[$.SOAP_REQUEST]:{v1:{fn:soapRequestStepFunction,inputSchema:me,outputSchema:he}},[$.SOAP_PAGINATED_REQUEST]:{v1:{fn:soapPaginatedRequestStepFunction,inputSchema:ue,outputSchema:de}},[$.STATIC_VALUES]:{v1:{fn:staticValuesStepFunction,inputSchema:_e,outputSchema:ve}},[$.UPLOAD_FILE]:{v1:{fn:uploadFileStepFunction,inputSchema:ke,outputSchema:Ae}},[$.UPLOAD_BINARY]:{v1:{fn:uploadBinaryStepFunction,inputSchema:Te,outputSchema:Ee}},[$.DOWNLOAD_FILE]:{v1:{fn:downloadFileStepFunction,inputSchema:N,outputSchema:P}},[$.EMIT_EVENT]:{v1:{fn:emitEventStepFunction,inputSchema:F,outputSchema:I}}},formatZodIssues=(e,t,n)=>e instanceof o.z.ZodError?e.issues.map(e=>({...e,kind:t,functionName:n})):[{kind:t,functionName:n,message:e?.message??`unknown error`}],stepFunctionEnhancedWithSchemasValidation=(e,t)=>async({block:n,params:r})=>{try{e.inputSchema&&e.inputSchema.parse(r)}catch(e){return{block:n,successful:!1,errors:formatZodIssues(e,`input_schema_validation`,t)}}let i=await e.fn({block:n,params:r});try{e.outputSchema&&e.outputSchema.parse(i.output)}catch(e){return{block:n,successful:!1,errors:formatZodIssues(e,`output_schema_validation`,t)}}return i},Me={build({functionName:e,version:t=`1`,validateSchemas:n=!1,stepFunctionsList:r=je}){let i=r?.[e]?.[`v${t}`];if(!i)throw Error(`Unknown step function: ${e} v${t}`);return n?{...i,fn:stepFunctionEnhancedWithSchemasValidation(i,e)}:i}},isForeachStep=e=>`iterator`in e&&typeof e.iterator==`string`;exports.AUTHORIZATION_SCHEMA=j,exports.COMPOSITE_ID_LATEST_VERSION=1,exports.CoreError=y,exports.INPUT_ENUM_REGISTRY=b,exports.ReleaseStages=x,exports.StepFunctionName=$,exports.StepFunctionsFactory=Me,exports.StepFunctionsRegistry=je,exports.areCursorsEqual=areCursorsEqual,exports.decodeCompositeId=decodeCompositeId,exports.encodeCompositeId=encodeCompositeId,exports.evaluateEventRouter=evaluateEventRouter,exports.evaluateExternalAccountIdExtractor=evaluateExternalAccountIdExtractor,exports.expandCursor=expandCursor,exports.getCategoryDetails=getCategoryDetails,exports.getInputEnumValues=getInputEnumValues,exports.isCompositeId=isCompositeId,exports.isCoreError=isCoreError,exports.isCursorEmpty=isCursorEmpty,exports.isForeachStep=isForeachStep,exports.isValidCategory=isValidCategory,exports.isValidEnumRef=isValidEnumRef,exports.minifyCursor=minifyCursor,exports.updateCursor=updateCursor;
package/dist/index.d.cts CHANGED
@@ -315,6 +315,20 @@ type RequestContext = {
315
315
  behaviours?: HttpClientBehaviour[];
316
316
  };
317
317
  //#endregion
318
+ //#region ../transport/src/signing/types.d.ts
319
+ type Aws4SigningOptions = {
320
+ strategy: 'aws4';
321
+ service: string;
322
+ region?: string;
323
+ };
324
+ type HmacSigningOptions = {
325
+ strategy: 'hmac';
326
+ algorithm?: 'sha256' | 'sha512';
327
+ headerName?: string;
328
+ prefix?: string;
329
+ };
330
+ type SigningOptions = Aws4SigningOptions | HmacSigningOptions;
331
+ //#endregion
318
332
  //#region src/schema/types.d.ts
319
333
  type Schema = {
320
334
  name: string;
@@ -434,6 +448,19 @@ declare const stepFunctions: {
434
448
  }>;
435
449
  authorization: zod_v40.ZodOptional<zod_v40.ZodDiscriminatedUnion<[zod_v40.ZodObject<{
436
450
  type: zod_v40.ZodLiteral<"none">;
451
+ signing: zod_v40.ZodOptional<zod_v40.ZodDiscriminatedUnion<[zod_v40.ZodObject<{
452
+ strategy: zod_v40.ZodLiteral<"aws4">;
453
+ service: zod_v40.ZodString;
454
+ region: zod_v40.ZodOptional<zod_v40.ZodString>;
455
+ }, zod_v4_core0.$strict>, zod_v40.ZodObject<{
456
+ strategy: zod_v40.ZodLiteral<"hmac">;
457
+ algorithm: zod_v40.ZodOptional<zod_v40.ZodEnum<{
458
+ sha256: "sha256";
459
+ sha512: "sha512";
460
+ }>>;
461
+ headerName: zod_v40.ZodOptional<zod_v40.ZodString>;
462
+ prefix: zod_v40.ZodOptional<zod_v40.ZodString>;
463
+ }, zod_v4_core0.$strict>]>>;
437
464
  }, zod_v4_core0.$strict>, zod_v40.ZodObject<{
438
465
  type: zod_v40.ZodLiteral<"basic">;
439
466
  username: zod_v40.ZodOptional<zod_v40.ZodString>;
@@ -622,6 +649,19 @@ declare const stepFunctions: {
622
649
  }>;
623
650
  authorization: zod_v40.ZodOptional<zod_v40.ZodDiscriminatedUnion<[zod_v40.ZodObject<{
624
651
  type: zod_v40.ZodLiteral<"none">;
652
+ signing: zod_v40.ZodOptional<zod_v40.ZodDiscriminatedUnion<[zod_v40.ZodObject<{
653
+ strategy: zod_v40.ZodLiteral<"aws4">;
654
+ service: zod_v40.ZodString;
655
+ region: zod_v40.ZodOptional<zod_v40.ZodString>;
656
+ }, zod_v4_core0.$strict>, zod_v40.ZodObject<{
657
+ strategy: zod_v40.ZodLiteral<"hmac">;
658
+ algorithm: zod_v40.ZodOptional<zod_v40.ZodEnum<{
659
+ sha256: "sha256";
660
+ sha512: "sha512";
661
+ }>>;
662
+ headerName: zod_v40.ZodOptional<zod_v40.ZodString>;
663
+ prefix: zod_v40.ZodOptional<zod_v40.ZodString>;
664
+ }, zod_v4_core0.$strict>]>>;
625
665
  }, zod_v4_core0.$strict>, zod_v40.ZodObject<{
626
666
  type: zod_v40.ZodLiteral<"basic">;
627
667
  username: zod_v40.ZodOptional<zod_v40.ZodString>;
@@ -807,6 +847,19 @@ declare const stepFunctions: {
807
847
  }>>;
808
848
  authorization: zod_v40.ZodOptional<zod_v40.ZodDiscriminatedUnion<[zod_v40.ZodObject<{
809
849
  type: zod_v40.ZodLiteral<"none">;
850
+ signing: zod_v40.ZodOptional<zod_v40.ZodDiscriminatedUnion<[zod_v40.ZodObject<{
851
+ strategy: zod_v40.ZodLiteral<"aws4">;
852
+ service: zod_v40.ZodString;
853
+ region: zod_v40.ZodOptional<zod_v40.ZodString>;
854
+ }, zod_v4_core0.$strict>, zod_v40.ZodObject<{
855
+ strategy: zod_v40.ZodLiteral<"hmac">;
856
+ algorithm: zod_v40.ZodOptional<zod_v40.ZodEnum<{
857
+ sha256: "sha256";
858
+ sha512: "sha512";
859
+ }>>;
860
+ headerName: zod_v40.ZodOptional<zod_v40.ZodString>;
861
+ prefix: zod_v40.ZodOptional<zod_v40.ZodString>;
862
+ }, zod_v4_core0.$strict>]>>;
810
863
  }, zod_v4_core0.$strict>, zod_v40.ZodObject<{
811
864
  type: zod_v40.ZodLiteral<"basic">;
812
865
  username: zod_v40.ZodOptional<zod_v40.ZodString>;
@@ -895,6 +948,19 @@ declare const stepFunctions: {
895
948
  }>>;
896
949
  authorization: zod_v40.ZodOptional<zod_v40.ZodDiscriminatedUnion<[zod_v40.ZodObject<{
897
950
  type: zod_v40.ZodLiteral<"none">;
951
+ signing: zod_v40.ZodOptional<zod_v40.ZodDiscriminatedUnion<[zod_v40.ZodObject<{
952
+ strategy: zod_v40.ZodLiteral<"aws4">;
953
+ service: zod_v40.ZodString;
954
+ region: zod_v40.ZodOptional<zod_v40.ZodString>;
955
+ }, zod_v4_core0.$strict>, zod_v40.ZodObject<{
956
+ strategy: zod_v40.ZodLiteral<"hmac">;
957
+ algorithm: zod_v40.ZodOptional<zod_v40.ZodEnum<{
958
+ sha256: "sha256";
959
+ sha512: "sha512";
960
+ }>>;
961
+ headerName: zod_v40.ZodOptional<zod_v40.ZodString>;
962
+ prefix: zod_v40.ZodOptional<zod_v40.ZodString>;
963
+ }, zod_v4_core0.$strict>]>>;
898
964
  }, zod_v4_core0.$strict>, zod_v40.ZodObject<{
899
965
  type: zod_v40.ZodLiteral<"basic">;
900
966
  username: zod_v40.ZodOptional<zod_v40.ZodString>;
@@ -975,6 +1041,19 @@ declare const stepFunctions: {
975
1041
  }>>>;
976
1042
  authorization: zod_v40.ZodOptional<zod_v40.ZodDiscriminatedUnion<[zod_v40.ZodObject<{
977
1043
  type: zod_v40.ZodLiteral<"none">;
1044
+ signing: zod_v40.ZodOptional<zod_v40.ZodDiscriminatedUnion<[zod_v40.ZodObject<{
1045
+ strategy: zod_v40.ZodLiteral<"aws4">;
1046
+ service: zod_v40.ZodString;
1047
+ region: zod_v40.ZodOptional<zod_v40.ZodString>;
1048
+ }, zod_v4_core0.$strict>, zod_v40.ZodObject<{
1049
+ strategy: zod_v40.ZodLiteral<"hmac">;
1050
+ algorithm: zod_v40.ZodOptional<zod_v40.ZodEnum<{
1051
+ sha256: "sha256";
1052
+ sha512: "sha512";
1053
+ }>>;
1054
+ headerName: zod_v40.ZodOptional<zod_v40.ZodString>;
1055
+ prefix: zod_v40.ZodOptional<zod_v40.ZodString>;
1056
+ }, zod_v4_core0.$strict>]>>;
978
1057
  }, zod_v4_core0.$strict>, zod_v40.ZodObject<{
979
1058
  type: zod_v40.ZodLiteral<"basic">;
980
1059
  username: zod_v40.ZodOptional<zod_v40.ZodString>;
@@ -1178,6 +1257,7 @@ interface IOlapClient {
1178
1257
  getDefenderLog(organizationId: string, projectSecureId: string, actionRunId: string): Promise<DefenderLog | undefined>;
1179
1258
  getLogsStatsAggregate(organizationId: string, projectSecureId: string, query: AggregateQuery): Promise<AggregateResult>;
1180
1259
  getLogsStatsDimensions(organizationId: string, projectSecureId: string, query: DimensionsQuery): Promise<DimensionsResult>;
1260
+ getSourceUsage(organizationId: string, projectSecureId: string, query: SourceQuery): Promise<SourceResult>;
1181
1261
  }
1182
1262
  type DefenderContext = {
1183
1263
  result?: {
@@ -1345,6 +1425,7 @@ type Query = {
1345
1425
  sourceValue?: string | string[];
1346
1426
  originOwnerId?: string | string[];
1347
1427
  httpMethod?: string | string[];
1428
+ isBackground?: boolean;
1348
1429
  logType?: (typeof LogType.Action | typeof LogType.Unified) | (typeof LogType.Action | typeof LogType.Unified)[];
1349
1430
  success?: boolean;
1350
1431
  startTime?: Date;
@@ -1367,6 +1448,7 @@ type ActionsQuery = {
1367
1448
  connectorKey?: string | string[];
1368
1449
  mode?: string | string[];
1369
1450
  category?: string | string[];
1451
+ isBackground?: boolean;
1370
1452
  success?: boolean;
1371
1453
  startTime?: Date;
1372
1454
  endTime?: Date;
@@ -1408,6 +1490,7 @@ type UnifiedQuery = {
1408
1490
  source?: string | string[];
1409
1491
  category?: string | string[];
1410
1492
  originOwnerId?: string | string[];
1493
+ isBackground?: boolean;
1411
1494
  success?: boolean;
1412
1495
  startTime?: Date;
1413
1496
  endTime?: Date;
@@ -1453,6 +1536,7 @@ declare const Dimension: {
1453
1536
  readonly StatusCode: "status_code";
1454
1537
  readonly OriginOwnerId: "origin_owner_id";
1455
1538
  readonly SourceId: "source_id";
1539
+ readonly IsBackground: "is_background";
1456
1540
  };
1457
1541
  type Dimension = (typeof Dimension)[keyof typeof Dimension];
1458
1542
  type AggregateQuery = Partial<Query> & {
@@ -1477,6 +1561,13 @@ type DimensionsResult = {
1477
1561
  count: number;
1478
1562
  }>;
1479
1563
  };
1564
+ type SourceQuery = Partial<Query>;
1565
+ type SourceResult = Array<{
1566
+ sourceId: string;
1567
+ sourceType: string;
1568
+ requestCount: number;
1569
+ lastRequest: string;
1570
+ }>;
1480
1571
  interface ILog {
1481
1572
  logType: LogType;
1482
1573
  eventTime: Date;
@@ -1868,7 +1959,21 @@ type EventToEmit = {
1868
1959
  eventDate?: string;
1869
1960
  data?: unknown;
1870
1961
  };
1962
+ type WebhookSetupPhaseKind = 'creation' | 'activation' | 'deletion';
1963
+ type WebhookSetupPhase = {
1964
+ steps: {
1965
+ [stepId: string]: Step;
1966
+ };
1967
+ result?: string;
1968
+ };
1969
+ type WebhookSetup = {
1970
+ creation: WebhookSetupPhase;
1971
+ activation?: WebhookSetupPhase;
1972
+ deletion: WebhookSetupPhase;
1973
+ isConsolidated?: boolean;
1974
+ };
1871
1975
  type ConnectorEvents = {
1976
+ setup?: WebhookSetup;
1872
1977
  actions?: {
1873
1978
  [actionId: string]: Action;
1874
1979
  };
@@ -2054,16 +2159,27 @@ type AuthenticationGuides = {
2054
2159
  config?: Guide;
2055
2160
  setup?: Guide;
2056
2161
  };
2162
+ type AuthorizationDefinition = {
2163
+ type: 'none';
2164
+ signing?: SigningOptions;
2165
+ [authParam: string]: unknown;
2166
+ } | {
2167
+ type: 'basic';
2168
+ [authParam: string]: unknown;
2169
+ } | {
2170
+ type: 'bearer';
2171
+ [authParam: string]: unknown;
2172
+ } | {
2173
+ type: 'oauth2';
2174
+ [authParam: string]: unknown;
2175
+ };
2057
2176
  type AuthenticationConfig = {
2058
2177
  envKey: string;
2059
2178
  envName: string;
2060
2179
  type: 'custom' | 'oauth2';
2061
2180
  grantType?: 'authorization_code' | 'client_credentials';
2062
2181
  label: string;
2063
- authorization: {
2064
- type: 'basic' | 'bearer' | 'oauth2';
2065
- [authParam: string]: unknown;
2066
- };
2182
+ authorization: AuthorizationDefinition;
2067
2183
  requiredScopes?: string[];
2068
2184
  support?: SupportConfig;
2069
2185
  configFields?: AuthenticationField[];
@@ -2175,6 +2291,19 @@ declare const StepFunctionsFactory: {
2175
2291
  //#region src/stepFunctions/shared/schemas.d.ts
2176
2292
  declare const AUTHORIZATION_SCHEMA: z.ZodDiscriminatedUnion<[z.ZodObject<{
2177
2293
  type: z.ZodLiteral<"none">;
2294
+ signing: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
2295
+ strategy: z.ZodLiteral<"aws4">;
2296
+ service: z.ZodString;
2297
+ region: z.ZodOptional<z.ZodString>;
2298
+ }, z.core.$strict>, z.ZodObject<{
2299
+ strategy: z.ZodLiteral<"hmac">;
2300
+ algorithm: z.ZodOptional<z.ZodEnum<{
2301
+ sha256: "sha256";
2302
+ sha512: "sha512";
2303
+ }>>;
2304
+ headerName: z.ZodOptional<z.ZodString>;
2305
+ prefix: z.ZodOptional<z.ZodString>;
2306
+ }, z.core.$strict>]>>;
2178
2307
  }, z.core.$strict>, z.ZodObject<{
2179
2308
  type: z.ZodLiteral<"basic">;
2180
2309
  username: z.ZodOptional<z.ZodString>;
@@ -2219,4 +2348,4 @@ type Account = {
2219
2348
  originOwnerName?: string;
2220
2349
  };
2221
2350
  //#endregion
2222
- export { AUTHORIZATION_SCHEMA, type Account, type Action, type ActionExample, type ActionResponse, type ActionType, type ActionValidationRule, type Assets, type Authentication, type AuthenticationConfig, type AuthenticationField, type AuthenticationGuides, type Block, type BlockContext, type BlockIndexedRecord, COMPOSITE_ID_LATEST_VERSION, type Category, type CompositeIdentifier, type CompositeIdentifierConfig, type CompositeIdentifierConnectorConfig, type Connector, type ConnectorEvents, CoreError, type Cursor, type DefenderMetadata, type DefenderSettings, type EnumOneOf, type EventRouter, type EventRouterRule, type EventToEmit, type FieldConfig, type ForeachStep, type Guide, type GuideImage, type GuideSection, type GuideStep, INPUT_ENUM_REGISTRY, type Input, type InputFormat, type InputLocation, type InputRules, type IntermediateStepSnapshot, type MatchedEventAction, type ReleaseStage, ReleaseStages, type Schema, type SchemaField, type ScopeDefinition, type Settings, type SimpleStep, type Source, type Step, type StepFunction, type StepFunctionMeta, StepFunctionName, type StepFunctionOutput, type StepFunctionParams, StepFunctionsFactory, stepFunctions as StepFunctionsRegistry, type StepsSnapshots, type StreamOutputData, type SupportConfig, type TestActionConfig, areCursorsEqual, decodeCompositeId, encodeCompositeId, evaluateEventRouter, evaluateExternalAccountIdExtractor, expandCursor, getCategoryDetails, getInputEnumValues, isCompositeId, isCoreError, isCursorEmpty, isForeachStep, isValidCategory, isValidEnumRef, minifyCursor, updateCursor };
2351
+ export { AUTHORIZATION_SCHEMA, type Account, type Action, type ActionExample, type ActionResponse, type ActionType, type ActionValidationRule, type Assets, type Authentication, type AuthenticationConfig, type AuthenticationField, type AuthenticationGuides, type Block, type BlockContext, type BlockIndexedRecord, COMPOSITE_ID_LATEST_VERSION, type Category, type CompositeIdentifier, type CompositeIdentifierConfig, type CompositeIdentifierConnectorConfig, type Connector, type ConnectorEvents, CoreError, type Cursor, type DefenderMetadata, type DefenderSettings, type EnumOneOf, type EventRouter, type EventRouterRule, type EventToEmit, type FieldConfig, type ForeachStep, type Guide, type GuideImage, type GuideSection, type GuideStep, INPUT_ENUM_REGISTRY, type Input, type InputFormat, type InputLocation, type InputRules, type IntermediateStepSnapshot, type MatchedEventAction, type ReleaseStage, ReleaseStages, type Schema, type SchemaField, type ScopeDefinition, type Settings, type SimpleStep, type Source, type Step, type StepFunction, type StepFunctionMeta, StepFunctionName, type StepFunctionOutput, type StepFunctionParams, StepFunctionsFactory, stepFunctions as StepFunctionsRegistry, type StepsSnapshots, type StreamOutputData, type SupportConfig, type TestActionConfig, type WebhookSetup, type WebhookSetupPhase, type WebhookSetupPhaseKind, areCursorsEqual, decodeCompositeId, encodeCompositeId, evaluateEventRouter, evaluateExternalAccountIdExtractor, expandCursor, getCategoryDetails, getInputEnumValues, isCompositeId, isCoreError, isCursorEmpty, isForeachStep, isValidCategory, isValidEnumRef, minifyCursor, updateCursor };
package/dist/index.d.mts CHANGED
@@ -314,6 +314,20 @@ type RequestContext = {
314
314
  behaviours?: HttpClientBehaviour[];
315
315
  };
316
316
  //#endregion
317
+ //#region ../transport/src/signing/types.d.ts
318
+ type Aws4SigningOptions = {
319
+ strategy: 'aws4';
320
+ service: string;
321
+ region?: string;
322
+ };
323
+ type HmacSigningOptions = {
324
+ strategy: 'hmac';
325
+ algorithm?: 'sha256' | 'sha512';
326
+ headerName?: string;
327
+ prefix?: string;
328
+ };
329
+ type SigningOptions = Aws4SigningOptions | HmacSigningOptions;
330
+ //#endregion
317
331
  //#region src/schema/types.d.ts
318
332
  type Schema = {
319
333
  name: string;
@@ -433,6 +447,19 @@ declare const stepFunctions: {
433
447
  }>;
434
448
  authorization: zod_v40.ZodOptional<zod_v40.ZodDiscriminatedUnion<[zod_v40.ZodObject<{
435
449
  type: zod_v40.ZodLiteral<"none">;
450
+ signing: zod_v40.ZodOptional<zod_v40.ZodDiscriminatedUnion<[zod_v40.ZodObject<{
451
+ strategy: zod_v40.ZodLiteral<"aws4">;
452
+ service: zod_v40.ZodString;
453
+ region: zod_v40.ZodOptional<zod_v40.ZodString>;
454
+ }, zod_v4_core0.$strict>, zod_v40.ZodObject<{
455
+ strategy: zod_v40.ZodLiteral<"hmac">;
456
+ algorithm: zod_v40.ZodOptional<zod_v40.ZodEnum<{
457
+ sha256: "sha256";
458
+ sha512: "sha512";
459
+ }>>;
460
+ headerName: zod_v40.ZodOptional<zod_v40.ZodString>;
461
+ prefix: zod_v40.ZodOptional<zod_v40.ZodString>;
462
+ }, zod_v4_core0.$strict>]>>;
436
463
  }, zod_v4_core0.$strict>, zod_v40.ZodObject<{
437
464
  type: zod_v40.ZodLiteral<"basic">;
438
465
  username: zod_v40.ZodOptional<zod_v40.ZodString>;
@@ -621,6 +648,19 @@ declare const stepFunctions: {
621
648
  }>;
622
649
  authorization: zod_v40.ZodOptional<zod_v40.ZodDiscriminatedUnion<[zod_v40.ZodObject<{
623
650
  type: zod_v40.ZodLiteral<"none">;
651
+ signing: zod_v40.ZodOptional<zod_v40.ZodDiscriminatedUnion<[zod_v40.ZodObject<{
652
+ strategy: zod_v40.ZodLiteral<"aws4">;
653
+ service: zod_v40.ZodString;
654
+ region: zod_v40.ZodOptional<zod_v40.ZodString>;
655
+ }, zod_v4_core0.$strict>, zod_v40.ZodObject<{
656
+ strategy: zod_v40.ZodLiteral<"hmac">;
657
+ algorithm: zod_v40.ZodOptional<zod_v40.ZodEnum<{
658
+ sha256: "sha256";
659
+ sha512: "sha512";
660
+ }>>;
661
+ headerName: zod_v40.ZodOptional<zod_v40.ZodString>;
662
+ prefix: zod_v40.ZodOptional<zod_v40.ZodString>;
663
+ }, zod_v4_core0.$strict>]>>;
624
664
  }, zod_v4_core0.$strict>, zod_v40.ZodObject<{
625
665
  type: zod_v40.ZodLiteral<"basic">;
626
666
  username: zod_v40.ZodOptional<zod_v40.ZodString>;
@@ -806,6 +846,19 @@ declare const stepFunctions: {
806
846
  }>>;
807
847
  authorization: zod_v40.ZodOptional<zod_v40.ZodDiscriminatedUnion<[zod_v40.ZodObject<{
808
848
  type: zod_v40.ZodLiteral<"none">;
849
+ signing: zod_v40.ZodOptional<zod_v40.ZodDiscriminatedUnion<[zod_v40.ZodObject<{
850
+ strategy: zod_v40.ZodLiteral<"aws4">;
851
+ service: zod_v40.ZodString;
852
+ region: zod_v40.ZodOptional<zod_v40.ZodString>;
853
+ }, zod_v4_core0.$strict>, zod_v40.ZodObject<{
854
+ strategy: zod_v40.ZodLiteral<"hmac">;
855
+ algorithm: zod_v40.ZodOptional<zod_v40.ZodEnum<{
856
+ sha256: "sha256";
857
+ sha512: "sha512";
858
+ }>>;
859
+ headerName: zod_v40.ZodOptional<zod_v40.ZodString>;
860
+ prefix: zod_v40.ZodOptional<zod_v40.ZodString>;
861
+ }, zod_v4_core0.$strict>]>>;
809
862
  }, zod_v4_core0.$strict>, zod_v40.ZodObject<{
810
863
  type: zod_v40.ZodLiteral<"basic">;
811
864
  username: zod_v40.ZodOptional<zod_v40.ZodString>;
@@ -894,6 +947,19 @@ declare const stepFunctions: {
894
947
  }>>;
895
948
  authorization: zod_v40.ZodOptional<zod_v40.ZodDiscriminatedUnion<[zod_v40.ZodObject<{
896
949
  type: zod_v40.ZodLiteral<"none">;
950
+ signing: zod_v40.ZodOptional<zod_v40.ZodDiscriminatedUnion<[zod_v40.ZodObject<{
951
+ strategy: zod_v40.ZodLiteral<"aws4">;
952
+ service: zod_v40.ZodString;
953
+ region: zod_v40.ZodOptional<zod_v40.ZodString>;
954
+ }, zod_v4_core0.$strict>, zod_v40.ZodObject<{
955
+ strategy: zod_v40.ZodLiteral<"hmac">;
956
+ algorithm: zod_v40.ZodOptional<zod_v40.ZodEnum<{
957
+ sha256: "sha256";
958
+ sha512: "sha512";
959
+ }>>;
960
+ headerName: zod_v40.ZodOptional<zod_v40.ZodString>;
961
+ prefix: zod_v40.ZodOptional<zod_v40.ZodString>;
962
+ }, zod_v4_core0.$strict>]>>;
897
963
  }, zod_v4_core0.$strict>, zod_v40.ZodObject<{
898
964
  type: zod_v40.ZodLiteral<"basic">;
899
965
  username: zod_v40.ZodOptional<zod_v40.ZodString>;
@@ -974,6 +1040,19 @@ declare const stepFunctions: {
974
1040
  }>>>;
975
1041
  authorization: zod_v40.ZodOptional<zod_v40.ZodDiscriminatedUnion<[zod_v40.ZodObject<{
976
1042
  type: zod_v40.ZodLiteral<"none">;
1043
+ signing: zod_v40.ZodOptional<zod_v40.ZodDiscriminatedUnion<[zod_v40.ZodObject<{
1044
+ strategy: zod_v40.ZodLiteral<"aws4">;
1045
+ service: zod_v40.ZodString;
1046
+ region: zod_v40.ZodOptional<zod_v40.ZodString>;
1047
+ }, zod_v4_core0.$strict>, zod_v40.ZodObject<{
1048
+ strategy: zod_v40.ZodLiteral<"hmac">;
1049
+ algorithm: zod_v40.ZodOptional<zod_v40.ZodEnum<{
1050
+ sha256: "sha256";
1051
+ sha512: "sha512";
1052
+ }>>;
1053
+ headerName: zod_v40.ZodOptional<zod_v40.ZodString>;
1054
+ prefix: zod_v40.ZodOptional<zod_v40.ZodString>;
1055
+ }, zod_v4_core0.$strict>]>>;
977
1056
  }, zod_v4_core0.$strict>, zod_v40.ZodObject<{
978
1057
  type: zod_v40.ZodLiteral<"basic">;
979
1058
  username: zod_v40.ZodOptional<zod_v40.ZodString>;
@@ -1177,6 +1256,7 @@ interface IOlapClient {
1177
1256
  getDefenderLog(organizationId: string, projectSecureId: string, actionRunId: string): Promise<DefenderLog | undefined>;
1178
1257
  getLogsStatsAggregate(organizationId: string, projectSecureId: string, query: AggregateQuery): Promise<AggregateResult>;
1179
1258
  getLogsStatsDimensions(organizationId: string, projectSecureId: string, query: DimensionsQuery): Promise<DimensionsResult>;
1259
+ getSourceUsage(organizationId: string, projectSecureId: string, query: SourceQuery): Promise<SourceResult>;
1180
1260
  }
1181
1261
  type DefenderContext = {
1182
1262
  result?: {
@@ -1344,6 +1424,7 @@ type Query = {
1344
1424
  sourceValue?: string | string[];
1345
1425
  originOwnerId?: string | string[];
1346
1426
  httpMethod?: string | string[];
1427
+ isBackground?: boolean;
1347
1428
  logType?: (typeof LogType.Action | typeof LogType.Unified) | (typeof LogType.Action | typeof LogType.Unified)[];
1348
1429
  success?: boolean;
1349
1430
  startTime?: Date;
@@ -1366,6 +1447,7 @@ type ActionsQuery = {
1366
1447
  connectorKey?: string | string[];
1367
1448
  mode?: string | string[];
1368
1449
  category?: string | string[];
1450
+ isBackground?: boolean;
1369
1451
  success?: boolean;
1370
1452
  startTime?: Date;
1371
1453
  endTime?: Date;
@@ -1407,6 +1489,7 @@ type UnifiedQuery = {
1407
1489
  source?: string | string[];
1408
1490
  category?: string | string[];
1409
1491
  originOwnerId?: string | string[];
1492
+ isBackground?: boolean;
1410
1493
  success?: boolean;
1411
1494
  startTime?: Date;
1412
1495
  endTime?: Date;
@@ -1452,6 +1535,7 @@ declare const Dimension: {
1452
1535
  readonly StatusCode: "status_code";
1453
1536
  readonly OriginOwnerId: "origin_owner_id";
1454
1537
  readonly SourceId: "source_id";
1538
+ readonly IsBackground: "is_background";
1455
1539
  };
1456
1540
  type Dimension = (typeof Dimension)[keyof typeof Dimension];
1457
1541
  type AggregateQuery = Partial<Query> & {
@@ -1476,6 +1560,13 @@ type DimensionsResult = {
1476
1560
  count: number;
1477
1561
  }>;
1478
1562
  };
1563
+ type SourceQuery = Partial<Query>;
1564
+ type SourceResult = Array<{
1565
+ sourceId: string;
1566
+ sourceType: string;
1567
+ requestCount: number;
1568
+ lastRequest: string;
1569
+ }>;
1479
1570
  interface ILog {
1480
1571
  logType: LogType;
1481
1572
  eventTime: Date;
@@ -1867,7 +1958,21 @@ type EventToEmit = {
1867
1958
  eventDate?: string;
1868
1959
  data?: unknown;
1869
1960
  };
1961
+ type WebhookSetupPhaseKind = 'creation' | 'activation' | 'deletion';
1962
+ type WebhookSetupPhase = {
1963
+ steps: {
1964
+ [stepId: string]: Step;
1965
+ };
1966
+ result?: string;
1967
+ };
1968
+ type WebhookSetup = {
1969
+ creation: WebhookSetupPhase;
1970
+ activation?: WebhookSetupPhase;
1971
+ deletion: WebhookSetupPhase;
1972
+ isConsolidated?: boolean;
1973
+ };
1870
1974
  type ConnectorEvents = {
1975
+ setup?: WebhookSetup;
1871
1976
  actions?: {
1872
1977
  [actionId: string]: Action;
1873
1978
  };
@@ -2053,16 +2158,27 @@ type AuthenticationGuides = {
2053
2158
  config?: Guide;
2054
2159
  setup?: Guide;
2055
2160
  };
2161
+ type AuthorizationDefinition = {
2162
+ type: 'none';
2163
+ signing?: SigningOptions;
2164
+ [authParam: string]: unknown;
2165
+ } | {
2166
+ type: 'basic';
2167
+ [authParam: string]: unknown;
2168
+ } | {
2169
+ type: 'bearer';
2170
+ [authParam: string]: unknown;
2171
+ } | {
2172
+ type: 'oauth2';
2173
+ [authParam: string]: unknown;
2174
+ };
2056
2175
  type AuthenticationConfig = {
2057
2176
  envKey: string;
2058
2177
  envName: string;
2059
2178
  type: 'custom' | 'oauth2';
2060
2179
  grantType?: 'authorization_code' | 'client_credentials';
2061
2180
  label: string;
2062
- authorization: {
2063
- type: 'basic' | 'bearer' | 'oauth2';
2064
- [authParam: string]: unknown;
2065
- };
2181
+ authorization: AuthorizationDefinition;
2066
2182
  requiredScopes?: string[];
2067
2183
  support?: SupportConfig;
2068
2184
  configFields?: AuthenticationField[];
@@ -2174,6 +2290,19 @@ declare const StepFunctionsFactory: {
2174
2290
  //#region src/stepFunctions/shared/schemas.d.ts
2175
2291
  declare const AUTHORIZATION_SCHEMA: z.ZodDiscriminatedUnion<[z.ZodObject<{
2176
2292
  type: z.ZodLiteral<"none">;
2293
+ signing: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
2294
+ strategy: z.ZodLiteral<"aws4">;
2295
+ service: z.ZodString;
2296
+ region: z.ZodOptional<z.ZodString>;
2297
+ }, z.core.$strict>, z.ZodObject<{
2298
+ strategy: z.ZodLiteral<"hmac">;
2299
+ algorithm: z.ZodOptional<z.ZodEnum<{
2300
+ sha256: "sha256";
2301
+ sha512: "sha512";
2302
+ }>>;
2303
+ headerName: z.ZodOptional<z.ZodString>;
2304
+ prefix: z.ZodOptional<z.ZodString>;
2305
+ }, z.core.$strict>]>>;
2177
2306
  }, z.core.$strict>, z.ZodObject<{
2178
2307
  type: z.ZodLiteral<"basic">;
2179
2308
  username: z.ZodOptional<z.ZodString>;
@@ -2218,4 +2347,4 @@ type Account = {
2218
2347
  originOwnerName?: string;
2219
2348
  };
2220
2349
  //#endregion
2221
- export { AUTHORIZATION_SCHEMA, type Account, type Action, type ActionExample, type ActionResponse, type ActionType, type ActionValidationRule, type Assets, type Authentication, type AuthenticationConfig, type AuthenticationField, type AuthenticationGuides, type Block, type BlockContext, type BlockIndexedRecord, COMPOSITE_ID_LATEST_VERSION, type Category, type CompositeIdentifier, type CompositeIdentifierConfig, type CompositeIdentifierConnectorConfig, type Connector, type ConnectorEvents, CoreError, type Cursor, type DefenderMetadata, type DefenderSettings, type EnumOneOf, type EventRouter, type EventRouterRule, type EventToEmit, type FieldConfig, type ForeachStep, type Guide, type GuideImage, type GuideSection, type GuideStep, INPUT_ENUM_REGISTRY, type Input, type InputFormat, type InputLocation, type InputRules, type IntermediateStepSnapshot, type MatchedEventAction, type ReleaseStage, ReleaseStages, type Schema, type SchemaField, type ScopeDefinition, type Settings, type SimpleStep, type Source, type Step, type StepFunction, type StepFunctionMeta, StepFunctionName, type StepFunctionOutput, type StepFunctionParams, StepFunctionsFactory, stepFunctions as StepFunctionsRegistry, type StepsSnapshots, type StreamOutputData, type SupportConfig, type TestActionConfig, areCursorsEqual, decodeCompositeId, encodeCompositeId, evaluateEventRouter, evaluateExternalAccountIdExtractor, expandCursor, getCategoryDetails, getInputEnumValues, isCompositeId, isCoreError, isCursorEmpty, isForeachStep, isValidCategory, isValidEnumRef, minifyCursor, updateCursor };
2350
+ export { AUTHORIZATION_SCHEMA, type Account, type Action, type ActionExample, type ActionResponse, type ActionType, type ActionValidationRule, type Assets, type Authentication, type AuthenticationConfig, type AuthenticationField, type AuthenticationGuides, type Block, type BlockContext, type BlockIndexedRecord, COMPOSITE_ID_LATEST_VERSION, type Category, type CompositeIdentifier, type CompositeIdentifierConfig, type CompositeIdentifierConnectorConfig, type Connector, type ConnectorEvents, CoreError, type Cursor, type DefenderMetadata, type DefenderSettings, type EnumOneOf, type EventRouter, type EventRouterRule, type EventToEmit, type FieldConfig, type ForeachStep, type Guide, type GuideImage, type GuideSection, type GuideStep, INPUT_ENUM_REGISTRY, type Input, type InputFormat, type InputLocation, type InputRules, type IntermediateStepSnapshot, type MatchedEventAction, type ReleaseStage, ReleaseStages, type Schema, type SchemaField, type ScopeDefinition, type Settings, type SimpleStep, type Source, type Step, type StepFunction, type StepFunctionMeta, StepFunctionName, type StepFunctionOutput, type StepFunctionParams, StepFunctionsFactory, stepFunctions as StepFunctionsRegistry, type StepsSnapshots, type StreamOutputData, type SupportConfig, type TestActionConfig, type WebhookSetup, type WebhookSetupPhase, type WebhookSetupPhaseKind, areCursorsEqual, decodeCompositeId, encodeCompositeId, evaluateEventRouter, evaluateExternalAccountIdExtractor, expandCursor, getCategoryDetails, getInputEnumValues, isCompositeId, isCoreError, isCursorEmpty, isForeachStep, isValidCategory, isValidEnumRef, minifyCursor, updateCursor };
package/dist/index.mjs CHANGED
@@ -1 +1 @@
1
- import{t as e}from"./chunk-Cfxk5zVN.mjs";import{decodeFromBase64 as t,encodeToBase64 as n,generateSamlAssertion as r,getContentHash as i,getCountryAlpha2CodeByAlpha2Code as a,getCountryAlpha2CodeByAlpha3Code as o,getCountryAlpha2CodeByCitizenship as s,getCountryAlpha2CodeByCountryCode as c,getCountryAlpha2CodeByCountryName as l,getCountryAlpha3CodeByAlpha2Code as u,getCountryAlpha3CodeByAlpha3Code as d,getCountryAlpha3CodeByCountryCode as f,getCountryAlpha3CodeByCountryName as p,getCountryCodeByAlpha2Code as m,getCountryCodeByAlpha3Code as h,getCountryCodeByCountryCode as g,getCountryCodeByCountryName as _,getCountryNameByAlpha2Code as v,getCountryNameByAlpha3Code as y,getCountryNameByCountryCode as b,getCountryNameByCountryName as x,getCountrySubDivisionCodeBySubDivisionName as S,getCountrySubDivisionNameBySubDivisionCode as C,getCountrySubDivisionsByAlpha2Code as w,getDocumentFileFormatFromExtension as T,isMissing as E,isObject as D,isString as O,notMissing as k,safeParseToBoolean as A,safeParseToDateTimeString as j,safeParseToNumber as M,safeParseToString as N,z as P,zStrictObject as F}from"@stackone/utils";import{evaluate as I,isValidExpression as L,safeEvaluate as R,safeEvaluateRecord as z}from"@stackone/expressions";import{CUSTOM_ERROR_CONFIG_SCHEMA as B,HttpMethods as V,HttpResponseError as H,QueryArrayFormats as U,RequestClientFactory as ee,RequestParameterLocations as W,buildHttpsAgent as te,createAuthorizationHeaders as G,isFailedStatusCode as ne,parseRequestParameters as K,serializeHttpResponseError as q,translateCustomError as J}from"@stackone/transport";import re from"mime-types";import ie from"form-data";const Y={hris:{title:`HRIS`,key:`hris`,description:`Human Resource Information System`},crm:{title:`CRM`,key:`crm`,description:`Customer Relationship Management`},ats:{title:`ATS`,key:`ats`,description:`Applicant Tracking System`},lms:{title:`LMS`,key:`lms`,description:`Learning Management System`},marketing:{title:`Marketing`,key:`marketing`,description:`Marketing`},filestorage:{title:`File Storage`,key:`filestorage`,description:`File Storage`},internal:{title:`Internal`,key:`internal`,description:`Category for internal actions`},action:{title:`Action`,key:`action`,description:`Action`}},getCategoryDetails=e=>Y[e.toLowerCase()]??null,isValidCategory=e=>!!Y[e.toLowerCase()],X=n(`so1!`),ae=RegExp(`(?<!\\\\):`,`g`),oe=RegExp(`(?<!\\\\),`,`g`),se=1;var ce=class CoreError extends Error{constructor({category:e,name:t,type:n,context:r,message:i}){super(i),this.name=t??`CoreError`,this.type=n,this.category=e,this.context=r,Error.captureStackTrace&&Error.captureStackTrace(this,CoreError)}toString(){let e=this.message?`: ${this.message}`:``;return`${this.category}-${this.name} [${this.type}]${e}`}},BaseCompositeIdError=class extends ce{constructor(e,t,n){super({category:`CompositeId`,name:t??`BaseCompositeIdError`,type:e,message:n})}},CompositeIdMissingHeaderError=class extends BaseCompositeIdError{constructor(e){super(`COMPOSITE_ID_MISSING_HEADER_ERROR`,`CompositeIdMissingHeaderError`,e??`Invalid compositeId, missing header`)}},CompositeIdMissingBodyError=class extends BaseCompositeIdError{constructor(e){super(`COMPOSITE_ID_MISSING_BODY_ERROR`,`CompositeIdMissingBodyError`,e??`Invalid compositeId, missing body`)}},CompositeIdUnknownIdentifierError=class extends BaseCompositeIdError{constructor(e){super(`COMPOSITE_ID_UNKNOWN_IDENTIFIER_ERROR`,`CompositeIdUnknownIdentifierError`,e??`Invalid compositeId, unknown identifier`)}},CompositeIdUnsupportedVersionError=class extends BaseCompositeIdError{constructor(e){super(`COMPOSITE_ID_UNSUPPORTED_VERSION_ERROR`,`CompositeIdUnsupportedVersionError`,e??`Invalid compositeId, unsupported version`)}};const isSingleIdentifier=e=>!E(e)&&`value`in e&&e.value!==void 0,isMultipleIdentifier=e=>!E(e)&&`identifiers`in e&&e.identifiers!==void 0,encodeCompositeId=(e,t={version:1})=>{if(t.version===1)return encodeIdV1(getComposedIdV1(e,t.aliases));throw new CompositeIdUnsupportedVersionError(`Cannot generate ID, unsupported version number: ${t.version}`)},decodeCompositeId=(e,t={version:1})=>{let n=decodeId(e,t),r={};return n&&n.split(oe).forEach(e=>{let[n,i]=e.split(ae),a=getOriginalKey(n,t.aliases??{});r[a]=unescapeValue(i)}),r},getComposedIdV1=(e,t={})=>{if(isSingleIdentifier(e))return getSingleIdentifierString({identifier:e,compositeIdAliases:t,isSoleIdentifier:!0});if(isMultipleIdentifier(e))return e.identifiers.map(e=>getSingleIdentifierString({identifier:e,compositeIdAliases:t,isSoleIdentifier:!1})).join(`,`);throw new CompositeIdUnknownIdentifierError},getSingleIdentifierString=({identifier:e,compositeIdAliases:t,isSoleIdentifier:n})=>[n?`id`:t[e.key]||e.key,escapeValue(e.value)].filter(Boolean).join(`:`),getOriginalKey=(e,t)=>Object.keys(t).find(n=>t[n]===e)??e,decodeId=(e,t)=>{if(t.version===1)return decodeIdV1(e);throw new CompositeIdUnsupportedVersionError(`Cannot decode ID, unsupported version number: ${t.version}`)},encodeIdV1=e=>`${X}${n(e)}`,decodeIdV1=e=>{if(!e.startsWith(X))throw new CompositeIdMissingHeaderError(`Trying to decode an ID without the header: ${e}`);let n=e.split(X)[1];if(!n)throw new CompositeIdMissingBodyError(`Trying to decode an ID without a body: ${e}`);return t(n)},escapeValue=e=>[`,`,`:`].reduce((e,t)=>e.replace(t,`\\`+t),e),unescapeValue=e=>[`,`,`:`].reduce((e,t)=>{let n=`\\`+t;return e.replace(RegExp(`\\\\`+n,`g`),t)},e),isCompositeId=e=>E(e)?!1:e.startsWith(X),evaluateExternalAccountIdExtractor=(e,t)=>{let n=e.events?.externalAccountIdExtractor;if(E(n)||typeof n.result!=`string`||n.result.trim().length===0)return;let r=R(`{{${n.result.trim()}}}`,t);if(!E(r)){if(typeof r==`string`){let e=r.trim();return e.length>0?e:void 0}if(typeof r==`number`||typeof r==`bigint`||typeof r==`boolean`)return String(r)}},evaluateEventRouter=(e,t)=>{let n=e.events?.router;if(!E(n))for(let e of n.rules){let n=R(`{{${e.when.trim()}}}`,t);if(n!==null&&n!==!1&&n!==void 0){let n=e.then.input?Object.fromEntries(Object.entries(e.then.input).map(([e,n])=>[e,R(`{{${String(n).trim()}}}`,t)])):void 0;return{action:e.then.action,input:n}}}},le={employment_status:[`active`,`inactive`,`terminated`,`pending`,`leave`],employment_type:[`full_time`,`part_time`,`contractor`,`intern`,`temporary`],gender:[`male`,`female`,`non_binary`,`other`,`prefer_not_to_say`],marital_status:[`single`,`married`,`divorced`,`widowed`,`domestic_partnership`]},getInputEnumValues=e=>le[e],isValidEnumRef=e=>e in le,ue=[`preview`,`beta`,`ga`,`deprecated`],de=F({r:P.record(P.string(),F({n:P.number().optional().nullable(),c:P.string().optional().nullable(),p:P.number().optional().nullable()})),v:P.number(),t:P.number()}),fe=F({remote:P.record(P.string(),F({pageNumber:P.number().optional(),providerPageCursor:P.string().optional(),position:P.number().optional()})),version:P.number(),timestamp:P.number()}),minifyCursor=e=>n(JSON.stringify(minifyCursorObject(e))),minifyCursorObject=e=>{let{remote:t,version:n,timestamp:r}=e;return{r:Object.fromEntries(Object.entries(t).map(([e,{pageNumber:t,providerPageCursor:n,position:r}])=>[e,{n:t,c:n,p:r}])),v:n,t:r}},expandCursor=e=>{try{if(O(e)){let n=t(e),r=JSON.parse(n);return expandCursorObject(de.parse(r))}else return fe.parse(e),e}catch{return null}},expandCursorObject=e=>{let{r:t,v:n,t:r}=e;return{remote:Object.fromEntries(Object.entries(t).map(([e,{n:t,c:n,p:r}])=>[e,{pageNumber:t,providerPageCursor:n,position:r}])),version:n,timestamp:r}},areCursorsEqual=(e,t)=>{let n=typeof e==`string`?expandCursor(e):e,r=typeof t==`string`?expandCursor(t):t;if(n===null||r===null)return n===r;let{timestamp:a,...o}=n,{timestamp:s,...c}=r;return i(o)===i(c)},isCursorEmpty=({cursor:e,ignoreStepIndex:t})=>E(e)?!0:Object.keys(e?.remote??{}).reduce((n,r)=>{let i=e?.remote?.[r];return(E(t)||r!==t.toString())&&(n=n&&E(i.pageNumber)&&E(i.position)&&E(i.providerPageCursor)),n},!0),updateCursor=({cursor:e,stepIndex:t,pageNumber:n,providerPageCursor:r,position:i})=>{let a={pageNumber:n??void 0,providerPageCursor:r??void 0,position:i??void 0},o=E(n)&&E(r)&&E(i);return E(e)?{remote:o?{}:{[t]:a},version:2,timestamp:Date.now()}:o?(delete e.remote[t],e):{...e,remote:{...e.remote,[t]:a}}},isCoreError=e=>e instanceof ce,sanitizeRaw=e=>{let t={};return e.status!=null&&(t.status=e.status),e.data!==void 0&&(t.data=e.data),e.headers!=null&&(t.headers=e.headers),e.requestUrl!=null&&(t.requestUrl=e.requestUrl),e.message!=null&&(t.message=e.message),t},isHttpLikeError=e=>typeof e==`object`&&!!e&&`response`in e&&e.response!=null&&typeof e.response==`object`,extractErrorMessage=(e,t)=>{let n=e.data;if(typeof n==`object`&&n&&!Array.isArray(n)){let e=n;if(typeof e.message==`string`&&e.message.trim().length>0)return e.message}if(typeof e.message==`string`&&e.message.length>0)return e.message;if(typeof n==`object`&&n&&!Array.isArray(n)){let e=n;if(e.error!=null&&typeof e.error==`object`&&!Array.isArray(e.error)&&typeof e.error.message==`string`)return e.error.message;if(typeof e.error==`string`)return e.error;if(typeof e.error_description==`string`)return e.error_description}return typeof n==`string`&&n.length>0?n:t},buildStepErrorOutput=(e,t)=>{if(e instanceof H){let n=e.message;return{block:t,successful:!1,errors:[q(e)],output:{statusCode:e.response?.status??500,message:extractErrorMessage(e.response,n),data:e.response?.data,raw:sanitizeRaw(e.response)}}}if(isHttpLikeError(e)){let n=e.response,r=e instanceof Error?e.message:`HTTP error: ${n.status??500}`;return{block:t,successful:!1,errors:[q(e)],output:{statusCode:n.status??500,message:extractErrorMessage(n,r),data:n.data,raw:sanitizeRaw(n)}}}return e instanceof Error?{block:t,successful:!1,errors:[q(e)],output:{statusCode:500,message:e.message}}:{block:t,successful:!1,errors:[q(e)],output:{statusCode:500,message:String(e)}}},pe=F({type:P.literal(`none`)}),me=F({type:P.literal(`basic`),username:P.string().optional(),password:P.string().optional(),encoding:P.string().optional()}),he=F({type:P.literal(`bearer`),token:P.string(),includeBearer:P.boolean().optional().default(!0)}),ge=F({type:P.literal(`oauth2`),authorizationUrl:P.string().optional(),authorizationParams:P.record(P.string(),P.string()).optional(),tokenUrl:P.string().optional(),tokenParams:P.record(P.string(),P.string()).optional(),tokenExpiresIn:P.number().optional(),tokenRefreshExpiresIn:P.number().optional(),token:P.string(),includeBearer:P.boolean().optional().default(!0),scopes:P.string().optional(),scopeDelimiter:P.string().optional(),customHeaders:P.record(P.string(),P.string()).optional(),pkce:P.boolean().optional(),additionalTokenFields:P.record(P.string(),P.string().optional()).optional()}),Z=P.discriminatedUnion(`type`,[pe,me,he,ge]),_e=F({certs:P.string().array().optional(),keys:P.string().array().optional()}).optional(),ve=P.object({baseUrl:P.string().optional(),url:P.string(),method:P.enum(V).optional().default(`get`),authorization:Z.optional(),responseMode:P.enum([`buffer`,`stream`]).optional().default(`buffer`),responseType:P.enum([`arraybuffer`,`blob`,`text`,`json`]).optional().default(`arraybuffer`),encoding:P.enum([`base64`,`utf8`,`binary`,`raw`,`none`]).optional().default(`base64`),response:F({dataKey:P.string().optional(),fileNameKey:P.string().optional(),contentTypeKey:P.string().optional(),contentIsBase64:P.boolean().optional().default(!1),urlKey:P.string().optional(),forwardAuth:P.boolean().optional().default(!1)}).optional(),maxRedirects:P.number().optional().default(5),followRedirects:P.boolean().optional().default(!0),customErrors:B.array().optional(),args:F({name:P.string(),value:P.unknown(),in:P.enum(W),spread:P.boolean().optional(),condition:P.string().optional(),arrayFormat:P.enum(U).optional()}).array().optional()}),ye=F({data:P.union([P.string(),P.instanceof(Buffer)]).optional(),raw:P.unknown().optional(),statusCode:P.number(),message:P.string().optional(),headers:P.record(P.string(),P.string()).optional(),contentDisposition:P.string().optional(),fileMetadata:F({contentType:P.string().optional(),contentLength:P.number().optional(),fileName:P.string().optional(),lastModified:P.string().optional(),etag:P.string().optional()}).optional(),finalUrl:P.string().optional()}).optional(),downloadFileStepFunction=async({block:e,params:t})=>{if(!e.httpClient)throw Error(`HTTP client is not configured`);let{args:n}=t,r=n?n.filter(t=>!t.condition||I(t.condition,e)===!0).map(e=>({...e,condition:void 0})):void 0,i=t?z({...t,args:r},e):{},a={...i,customErrors:t?.customErrors},{baseUrl:o,url:s,method:c,authorization:l,args:u,responseMode:d,responseType:f,encoding:p,response:m,maxRedirects:h,followRedirects:g}=ve.parse(a),_=i?.authentication?.[e.context.authenticationType]?.[e.context.environment]?.authorization,v=u?K(u):{query:{},body:{},headers:{}},y=G(k(l)?l:Z.parse(_)),b={...v?.headers??{},...y},x=e.connector?.rateLimit,S=e.connector?.concurrency,C=x!==void 0||S!==void 0?{rateLimit:x,concurrency:S}:void 0;if(d===`stream`)return performStreamDownload({block:e,httpClient:e.httpClient,baseUrl:o??``,url:s,method:c,headers:b,queryParams:v?.query,body:v?.body,maxRedirects:g?h:0,requestConfig:C});try{return{block:e,successful:!0,output:await performDownload({httpClient:e.httpClient,baseUrl:o??``,url:s,method:c,headers:b,queryParams:v?.query,body:v?.body,responseType:f,encoding:p,response:m,maxRedirects:g?h:0,requestConfig:C,authHeaders:y})}}catch(t){return buildStepErrorOutput(t,e)}},performStreamDownload=async e=>{let{block:t,httpClient:n,baseUrl:r,url:i,method:a,headers:o,queryParams:s,body:c,maxRedirects:l,requestConfig:u}=e,d=`${r}${i}`;if(!d.startsWith(`http://`)&&!d.startsWith(`https://`))throw Error(`Invalid URL: "${d}". URL must be absolute (start with http:// or https://). Either provide a baseUrl or ensure url is a complete URL.`);if(!n.requestStream)throw Error(`HTTP client does not support streaming. Either implement requestStream method or use responseMode: "buffer".`);try{let e=await n.requestStream({url:d,method:a,headers:o,queryParams:s,payload:c,maxRedirects:l,requestConfig:u}),r=extractFileMetadata(e.headers),i=buildContentDisposition(r);return{block:t,successful:!0,streamOutput:{stream:e.stream,headers:e.headers,contentDisposition:i,fileMetadata:r}}}catch(e){return buildStepErrorOutput(e,t)}},performDownload=async e=>{let{httpClient:t,baseUrl:n,url:r,method:i,headers:a,queryParams:o,body:s,responseType:c,encoding:l,response:u,maxRedirects:d,requestConfig:f,authHeaders:p}=e,m=`${n}${r}`;if(!m.startsWith(`http://`)&&!m.startsWith(`https://`))throw Error(`Invalid URL: "${m}". URL must be absolute (start with http:// or https://). Either provide a baseUrl or ensure url is a complete URL.`);let h=u?.urlKey||u?.dataKey?`json`:c,g=await t.request({url:m,method:i,headers:a,queryParams:o,payload:s,responseType:h===`json`?void 0:h,maxRedirects:d,requestConfig:f});if(u?.urlKey||u?.dataKey)return handleJsonResponse({httpClient:t,result:g,response:u,encoding:l,maxRedirects:d,requestConfig:f,authHeaders:p});let _=encodeFileData(g.data,l),v=extractFileMetadata(g.headers),y=buildContentDisposition(v);return{data:_,raw:g,statusCode:g?.status,message:g?.message,headers:g.headers,contentDisposition:y,fileMetadata:v,finalUrl:g?.requestUrl}},handleJsonResponse=async e=>{let{httpClient:t,result:n,response:r,encoding:i,maxRedirects:a,requestConfig:o,authHeaders:s}=e,c=n.data;if(r.urlKey){let e=extractValueByPath(c,r.urlKey);if(typeof e==`string`){let n=await t.request({url:e,method:`get`,headers:r.forwardAuth?s:{},responseType:`arraybuffer`,maxRedirects:a,requestConfig:o}),l=encodeFileData(n.data,i),u=extractFileMetadata(n.headers);if(r.fileNameKey){let e=extractValueByPath(c,r.fileNameKey);typeof e==`string`&&(u.fileName=e)}if(r.contentTypeKey){let e=extractValueByPath(c,r.contentTypeKey);typeof e==`string`&&(u.contentType=e)}let d=buildContentDisposition(u);return{data:l,raw:n,statusCode:n?.status,message:n?.message,headers:n.headers,contentDisposition:d,fileMetadata:u,finalUrl:e}}}if(r.dataKey){let e=extractValueByPath(c,r.dataKey);if(E(e))throw Error(`No file content found at path: ${r.dataKey}`);let t;if(typeof e==`string`)t=r.contentIsBase64?i===`base64`?e:i===`none`?Buffer.from(e,`base64`):Buffer.from(e,`base64`).toString(i===`raw`?`binary`:i):encodeFileData(e,i);else if(e instanceof ArrayBuffer||ArrayBuffer.isView(e))t=encodeFileData(e,i);else throw Error(`Unexpected file content type at path: ${r.dataKey}`);let a={};if(r.fileNameKey){let e=extractValueByPath(c,r.fileNameKey);typeof e==`string`&&(a.fileName=e)}if(r.contentTypeKey){let e=extractValueByPath(c,r.contentTypeKey);typeof e==`string`&&(a.contentType=e)}let o=buildContentDisposition(a);return{data:t,raw:n,statusCode:n?.status,message:n?.message,headers:n.headers,contentDisposition:o,fileMetadata:a}}throw Error(`JSON response handling requires either urlKey or dataKey to be specified`)},extractValueByPath=(e,t)=>{let n=(t.startsWith(`$.`)?t.slice(2):t).split(`.`),r=e;for(let e of n){if(E(r)||typeof r!=`object`)return;r=r[e]}return r},encodeFileData=(e,t)=>{if(t===`none`)return e instanceof ArrayBuffer||ArrayBuffer.isView(e)||typeof e==`string`?Buffer.from(e):Buffer.from(JSON.stringify(e));if(t===`raw`)return typeof e==`string`?e:e instanceof ArrayBuffer||ArrayBuffer.isView(e)?Buffer.from(e).toString(`binary`):JSON.stringify(e);if(typeof e==`string`)return t===`base64`?Buffer.from(e).toString(`base64`):e;if(e instanceof ArrayBuffer||ArrayBuffer.isView(e)){let n=Buffer.from(e);switch(t){case`base64`:return n.toString(`base64`);case`utf8`:return n.toString(`utf8`);case`binary`:default:return n.toString(`binary`)}}return JSON.stringify(e)},extractFileMetadata=e=>{let t=O(e[`content-type`])?e[`content-type`]:void 0,n=O(e[`content-length`])?e[`content-length`]:void 0,r=O(e[`content-disposition`])?e[`content-disposition`]:void 0,i=O(e[`last-modified`])?e[`last-modified`]:void 0,a=O(e.etag)?e.etag:void 0,o=n?parseInt(n,10):void 0,s=extractFileName(r);return{contentType:t,contentLength:Number.isNaN(o)?void 0:o,fileName:s,lastModified:i,etag:a}},extractFileName=e=>{if(!e)return;let t=e.match(/filename\*=(?:UTF-8''|utf-8'')([^;\s]+)/i);if(t&&t[1])try{return decodeURIComponent(t[1])}catch{}let n=e.match(/filename=["']([^"']+)["']/);if(n&&n[1])return n[1];let r=e.match(/filename=([^;\s]+)/);if(r&&r[1])return r[1]},buildContentDisposition=e=>{let{fileName:t,contentType:n}=e,r=`attachment`;if(t)r=`attachment; filename="${t}"; filename*=UTF-8''${encodeURIComponent(t).replace(/['()]/g,escape)}`;else if(n){let e=getExtensionFromContentType(n);e&&(r=`attachment; filename="download.${e}"`)}return r},getExtensionFromContentType=e=>{let t=e.split(`;`)[0].trim().toLowerCase();return re.extension(t)||void 0},be=P.object({event:P.object({eventType:P.string(),eventDate:P.string().optional(),data:P.unknown().optional()}).optional()}),xe=P.record(P.string(),P.unknown()),emitEventStepFunction=async({block:e,params:t})=>{let n=t?z(t,e):{},{event:r}=be.parse(n);if(r&&e.emitEvent)try{await e.emitEvent({eventType:r.eventType,eventDate:r.eventDate,data:r.data})}catch(t){throw e.logger?.error({code:`EmitEventError`,message:`emitEvent callback failed: ${t.message}`}),t}else r&&!e.emitEvent&&e.logger?.warning({message:`emit_event step executed but no emitEvent callback provided on the block`});let{event:i,...a}=n;return{block:{...e},successful:!0,output:a}},Se=P.object({stepsDataToGroup:P.array(P.string()),isSingleRecord:P.boolean().optional()}),Ce=P.object({data:P.unknown()}),groupDataStepFunction=async({block:e,params:t})=>{let{stepsDataToGroup:n,isSingleRecord:r}=Se.parse(t),i=n.reduce((t,n)=>{let i=e.steps?.[n]?.output?.data;return i?r?{...t,[n]:{...i}}:(Object.keys(i).forEach(e=>{t[e]={...k(t[e])?t[e]:{},[n]:{...i[e]}}}),t):t},{});return{block:{...e},successful:!0,output:{data:r?i:Object.values(i)}}},we=e(async({block:e})=>{let t=e?.fieldConfigs,n=[],r=e.steps;if(!t||e?.debug?.custom_mappings===`disabled`||!r)return{block:e,successful:!0};let i;if(Array.isArray(e.result)){let a=e.result.length;i=e.result.map((e,i)=>{let o=Te(e,t,extractSingleRecordBlockStepData(r,a,i));return n.push(...o.errors||[]),o.record})}else{let a=Te(e.result,t,r);i=a.record,n.push(...a.errors||[])}return{block:{...e,result:i},successful:!0,errors:Object.keys(n).length>0?n:void 0}},`mapFieldsStepFunction`),extractSingleRecordBlockStepData=(e,t,n)=>Object.entries(e).reduce((e,[r,i])=>{let a=i?.output?.data;return Array.isArray(a)&&a.length===t?e[r]={output:{data:a[n]}}:e[r]=i,e},{}),Te=e((e,t,n)=>{if(!e||!n)return{record:e};let r={unified:{...e},...typeof n==`object`?n:{}},i={},a=[],o={...e};for(let n of t){let{error:t,value:s}=Ee(r,e.id,n);if(t){a.push(t);continue}n.custom?i[n.targetFieldKey]=s:o[n.targetFieldKey]=s}return{record:{...o,unified_custom_fields:Object.keys(i).length>0?i:void 0},errors:a.length>0?a:void 0}},`mapSingleRecord`),Ee=e((e,t,n)=>{let{expression:r,targetFieldKey:i}=n;if(!r)return{error:{message:`Expression is empty`,id:t,targetField:i}};let a;try{a=I(r,e)}catch{return{error:{message:`Invalid expression`,id:t,targetField:i}}}return a===void 0?{error:{message:`Expression returned no value`,id:t,targetField:i}}:{value:a}},`extractFieldValue`),getEnumMatcher=e=>{switch(e){case`country_alpha2code_by_alpha2code`:return a;case`country_alpha3code_by_alpha3code`:return d;case`country_code_by_country_code`:return g;case`country_name_by_country_name`:return x;case`country_name_by_alpha3code`:return y;case`country_name_by_alpha2code`:return v;case`country_name_by_country_code`:return b;case`country_alpha3code_by_alpha2code`:return u;case`country_alpha3code_by_country_name`:return p;case`country_alpha3code_by_country_code`:return f;case`country_alpha2code_by_alpha3code`:return o;case`country_alpha2code_by_country_name`:return l;case`country_alpha2code_by_country_code`:return c;case`country_code_by_alpha2code`:return m;case`country_code_by_alpha3code`:return h;case`country_code_by_country_name`:return _;case`country_subdivisions_by_alpha2code`:return w;case`country_subdivision_code_by_subdivision_name`:return S;case`country_alpha2code_by_citizenship`:return s;case`country_subdivision_name_by_subdivision_code`:return C;case`document_file_format_from_extension`:return T;default:return}},De=F({targetFieldKey:P.string(),alias:P.string().optional(),expression:P.string().optional(),values:P.unknown().optional(),type:P.enum([`string`,`number`,`boolean`,`datetime_string`,`enum`,`object`]),array:P.boolean().default(!1),custom:P.boolean().default(!1),hidden:P.boolean().default(!1),enumMapper:F({matcher:P.string().or(F({matchExpression:P.string(),value:P.string()}).array())}).optional(),properties:P.lazy(()=>De).array().optional(),requiredScopes:P.string().array().optional()}),Oe=P.object({fields:De.array(),dataSource:P.string(),externalSources:P.record(P.string(),P.string()).optional()}),ke=P.object({data:P.unknown()}),mapFieldsStepFunction=async({block:e,params:t})=>{let n=[],{fields:r,dataSource:i,externalSources:a}=Oe.parse(t),o=I(i,e);if(!r||!i||e?.debug?.custom_mappings===`disabled`||!o)return{block:e,successful:!0};let s=Object.keys(a??{})?.reduce((t,n)=>(t[n]=I(a?.[n],e),t),{}),c;if(Array.isArray(o))c=o.map(e=>{let t=Q(r,{...e,external:s});return n.push(...t?.errors||[]),t?.record});else{let e=Q(r,{...o,external:s});c=e?.record,n.push(...e?.errors||[])}return{block:{...e},successful:!0,output:{data:c},errors:Object.keys(n).length>0?n:void 0}},handleObjectArrayFromValues=(e,t,n)=>{if(Array.isArray(e.values))return e.values.map(r=>{let i=evaluateExpressionsInObject(r,t),a=Q(e.properties,i);return k(a?.errors)&&n.push(...a.errors),a?.record}).filter(Boolean)},handleObjectArrayFromExpression=(e,t,n)=>{if(e.expression)try{let r=I(e.expression,t);if(Array.isArray(r))return r.map(t=>{let r=Q(e.properties,t);return k(r?.errors)&&n.push(...r.errors),r?.record}).filter(Boolean);{let t=Q(e.properties,r);return k(t?.errors)&&n.push(...t.errors),t?.record}}catch{n.push({message:`Invalid expression`,id:t?.id,targetField:e.targetFieldKey});return}},handleSingleObject=(e,t,n)=>{let r=k(e.values)?e.values:t,i=Q(e.properties,r);return k(i?.errors)&&n.push(...i.errors),i?.record},Ae=e((e,t,n)=>{if(!E(e.properties))return e.array&&Array.isArray(e.values)?handleObjectArrayFromValues(e,t,n):e.array&&e.expression?handleObjectArrayFromExpression(e,t,n):handleSingleObject(e,t,n)},`handleObjectField`),Q=e((e,t)=>{if(!t)return;let n={},r=[],i={};for(let a of e){let e;if(a.type===`object`){if(e=Ae(a,t,r),e===void 0)continue}else{let{error:n,value:i}=extractFieldValue(t,t?.id,a);if(e=i,n){r.push(n);continue}}a.custom?n[a.targetFieldKey]=e:i[a.targetFieldKey]=e}let a=Object.keys(n).length>0?{unified_custom_fields:n}:{};return{record:{...i,...a},errors:r.length>0?r:void 0}},`mapSingleRecord`),evaluateExpressionsInObject=(e,t)=>{if(e==null)return e;if(typeof e==`string`){if(L(e))try{return I(e,t)}catch{return e}return e}if(Array.isArray(e))return e.map(e=>evaluateExpressionsInObject(e,t));if(typeof e==`object`){let n={...e};for(let[e,r]of Object.entries(n))n[e]=evaluateExpressionsInObject(r,t);return n}return e},extractFieldValue=(e,t,n)=>{switch(n.type){case`string`:case`number`:case`boolean`:case`datetime_string`:return je(n,t,e);case`enum`:return evaluateEnumValue(n,t,e);default:return{error:{message:`Invalid type`,id:t,targetField:n.targetFieldKey}}}},je=e((e,t,n)=>{if(!e.expression)return{error:{message:`Expression is empty`,id:t,targetField:e.targetFieldKey}};let r;try{r=I(e.expression,n)}catch{return{error:{message:`Invalid expression`,id:t,targetField:e.targetFieldKey}}}return r===void 0?{error:{message:`Expression returned no value`,id:t,targetField:e.targetFieldKey}}:{value:r}},`evaluateValue`),evaluateEnumValue=(e,t,n)=>{let r=je(e,t,n),i=k(r.value)?r.value:null;if(e.enumMapper===void 0)return{error:{message:`Enum mapper was not defined`,id:t,targetField:e.targetFieldKey}};let a=e.enumMapper.matcher;if(O(a)){let n=getEnumMatcher(a);return k(n)?{value:{value:(k(i)?n(i):null)??`unmapped_value`,source_value:i}}:{error:{message:`The built-in matcher "${a}" is not supported`,id:t,targetField:e.targetFieldKey}}}for(let e of a){let{matchExpression:t,value:r}=e;if(I(t,n)===!0)return{value:{value:r,source_value:i}}}return{value:{value:`unmapped_value`,source_value:i}}},Me=P.object({baseUrl:P.string(),url:P.string(),method:P.enum(V),saml:F({objectKey:P.string(),key:P.string(),clientId:P.string(),cert:P.unknown().optional(),issuer:P.string().optional(),lifetime:P.number().optional(),nameId:P.string().optional(),audience:P.string().optional(),nameIdentifierFormat:P.string().optional(),tokenEndpoint:P.string().optional()}).optional(),response:F({indexField:P.string().optional(),dataKey:P.string().optional(),nextKey:P.string().optional(),nextKeyIn:P.enum([`data`,`headers`]).optional()}).optional(),iterator:F({key:P.string(),in:P.enum(W),condition:P.string().optional(),mode:P.enum([`cursor`,`offset`]).optional()}),cursor:F({token:P.string().optional().nullable(),position:P.number().optional().nullable()}).optional(),customErrors:B.array().optional(),args:F({name:P.string(),value:P.unknown(),in:P.enum(W),spread:P.boolean().optional(),condition:P.string().optional(),arrayFormat:P.enum(U).optional()}).array().optional()}),Ne=F({data:P.unknown().optional(),raw:P.unknown().optional(),statusCode:P.number(),message:P.string().optional(),next:P.string().optional().nullable(),position:P.number().optional()}).optional(),Pe=e(e=>{let t=e.trim();return t.startsWith(`{{`)&&t.endsWith(`}}`)},`isJexlExpression`),paginatedRequestStepFunction=async({block:e,params:t})=>{let n=ee.build();if(!e.httpClient)throw Error(`HTTP client is not configured`);let{args:i}=t,a=Number(e.inputs?.page_size),o=Number.isNaN(a)?25:a,s=i?i.filter(t=>!t.condition||I(t.condition,e)===!0).map(e=>({...e,condition:void 0})):void 0,c=t?z({...t,args:s},e):{},l=t?.response?.nextKey,u=l&&Pe(l),d=t?.response?.dataKey,f=d&&Pe(d),p={...c?.response??{},...u?{nextKey:l}:{},...f?{dataKey:d}:{}},m={...c,customErrors:t?.customErrors,iterator:{...c?.iterator??{},condition:t?.iterator?.condition},response:u||f?p:c?.response},{baseUrl:h,url:g,method:_,response:v,iterator:y,cursor:b,customErrors:x,args:S,saml:C}=Me.parse(m),w=c?.authentication?.[e.context.authenticationType]?.[e.context.environment],T=w?.authorization,O=w?.certificates,A=O?te(O):void 0,j=Z.parse(T),M=S?K(S):{query:{},body:{},headers:{}},N=G(j),P={...M?.headers??{},...N},F=e.connector?.rateLimit,L=e.connector?.concurrency,B=F!==void 0||L!==void 0?{rateLimit:F,concurrency:L}:void 0,V=k(C)?{[C.objectKey]:await r({key:C.key,clientId:C.clientId,cert:C.cert,issuer:C.issuer,lifetime:C.lifetime,audience:C.audience,nameId:C.nameId,nameIdentifierFormat:C.nameIdentifierFormat,tokenEndpoint:C.tokenEndpoint})}:{},H=y.mode===`offset`,U=b?.token??null,W=null,ne=null,q=[],J=[],re=[],ie=o,Y=b?.position??0,X=!0,ae=!0,oe=!0;do{X?X=!1:H||(Y=0),U===null?H&&(y.in===`query`?M.query[y.key]=Y.toString():y.in===`body`&&(Array.isArray(M.body)||(M.body[y.key]=Y))):y.in===`query`?D(U)?Object.entries(U).forEach(([e,t])=>{M.query[`${y.key}[${e}]`]=t?.toString()??``}):M.query[y.key]=U.toString():y.in===`body`&&(Array.isArray(M.body)||(M.body[y.key]=U));let t;try{t=await n.performRequest({httpClient:e.httpClient,url:`${h}${g}`,queryParams:{...M?.query},method:_,headers:{...P},body:Array.isArray(M?.body)?M.body:{...M?.body,...V},customErrorConfigs:x,requestConfig:B,httpsAgent:A})}catch(t){return buildStepErrorOutput(t,e)}W=U,J=v?.dataKey?Fe(t.data,v.dataKey):t.data;let r=H?J?.slice(0,ie):J?.slice(Y,Y+ie);ie-=r.length,Y+=r.length,re.push(t),q=q.concat(r),ne=t?.status,U=Ie({result:t,response:v}),oe=k(y.condition)?R(y.condition,t.data)===!0:!0,!H&&r.length===J.length&&ie===0&&(Y=0,W=U),ae=!oe||E(U)&&q.length<o}while((H||k(U))&&oe&&q.length<o&&J?.length>0);return{block:e,successful:!0,output:{data:ze(q,v),raw:re,statusCode:ne,next:ae?void 0:W,position:ae?void 0:Y}}},Fe=e((e,t)=>{if(E(e)||typeof e!=`object`||!e)return e;let n=R(Pe(t)?t:`$.${t}`,e);return n===void 0?e[t]:n},`resolveDataKey`),Ie=e(({result:e,response:t})=>{if(E(t?.nextKey))return null;let n=t?.nextKeyIn??`data`,r=t?.nextKey;return n===`headers`?Le(e.headers,r):Re(e.data,r)},`resolveNextIterator`),Le=e((e,t)=>{if(E(e)||typeof e!=`object`)return null;if(Pe(t)){let n=R(t,e);return typeof n==`string`&&n!==``||typeof n==`number`?n:null}let n=t.toLowerCase(),[,r]=Object.entries(e).find(([e])=>e?.toLowerCase()===n)??[];if(Array.isArray(r)){let e=r.find(e=>typeof e==`string`&&e!==``||typeof e==`number`);return typeof e==`string`||typeof e==`number`?e:null}return typeof r==`string`&&r!==``||typeof r==`number`?r:null},`resolveFromHeaders`),Re=e((e,t)=>{if(E(e)||typeof e!=`object`||!e)return null;let n=R(Pe(t)?t:`$.${t}`,e);return E(n)?null:typeof n==`string`||typeof n==`number`||typeof n==`object`?n:null},`resolveFromData`),ze=e((e,t)=>{if(t?.indexField&&Array.isArray(e))return e.reduce((e,n)=>{let r=t.indexField;return r&&n[r]&&(e[n[r]]=n),e},{});if(t?.indexField){let n=t.indexField;return n&&e[n]?{[e[n]]:e}:e}return e},`indexResponseData`),Be=P.object({baseUrl:P.string().optional(),url:P.string(),method:P.enum(V),authorization:Z.optional(),certificates:_e,saml:F({objectKey:P.string(),key:P.string(),clientId:P.string(),cert:P.unknown().optional(),issuer:P.string().optional(),lifetime:P.number().optional(),nameId:P.string().optional(),audience:P.string().optional(),nameIdentifierFormat:P.string().optional(),tokenEndpoint:P.string().optional()}).optional(),response:F({collection:P.boolean().optional(),indexField:P.string().optional(),dataKey:P.string().optional()}).optional(),customErrors:B.array().optional(),args:F({name:P.string(),value:P.unknown(),in:P.enum(W),spread:P.boolean().optional(),condition:P.string().optional(),arrayFormat:P.enum(U).optional()}).array().optional()}),Ve=F({data:P.unknown().optional(),raw:P.unknown().optional(),statusCode:P.number(),message:P.string().optional()}).optional(),isJexlExpression=e=>{let t=e.trim();return t.startsWith(`{{`)&&t.endsWith(`}}`)},requestStepFunction=async({block:e,params:t})=>{let n=ee.build();if(!e.httpClient)throw Error(`HTTP client is not configured`);let{args:i}=t,a=i?i.filter(t=>!t.condition||I(t.condition,e)===!0).map(e=>({...e,condition:void 0})):void 0,o=t?.response?.dataKey,s=o&&isJexlExpression(o),c=t?z({...t,args:a},e):{},l={...c,customErrors:t?.customErrors,response:s?{...c?.response??{},dataKey:o}:c?.response},{baseUrl:u,url:d,method:f,response:p,authorization:m,certificates:h,customErrors:g,args:_,saml:v}=Be.parse(l),y=c?.authentication?.[e.context.authenticationType]?.[e.context.environment],b=y?.authorization,x=h??y?.certificates,S=x?te(x):void 0,C=_?K(_):{query:{},body:{},headers:{}},w=G(k(m)?m:Z.parse(b)),T={...C?.headers??{},...w},E=e.connector?.rateLimit,D=e.connector?.concurrency,O=E!==void 0||D!==void 0?{rateLimit:E,concurrency:D}:void 0,A=k(v)?{[v.objectKey]:await r({key:v.key,clientId:v.clientId,cert:v.cert,issuer:v.issuer,lifetime:v.lifetime,audience:v.audience,nameId:v.nameId,nameIdentifierFormat:v.nameIdentifierFormat,tokenEndpoint:v.tokenEndpoint})}:{},j;try{j=await n.performRequest({httpClient:e.httpClient,url:`${u}${d}`,queryParams:C?.query,method:f,headers:T,body:Array.isArray(C?.body)?C?.body:{...C?.body,...A},customErrorConfigs:g,requestConfig:O,httpsAgent:S})}catch(t){return buildStepErrorOutput(t,e)}return{block:e,successful:!0,output:{data:He(p?.dataKey?resolveDataKey(j.data,p.dataKey):j.data,p),raw:j,statusCode:j?.status,message:j?.message}}},resolveDataKey=(e,t)=>{if(E(e)||typeof e!=`object`||!e)return e;let n=R(isJexlExpression(t)?t:`$.${t}`,e);return n===void 0?e[t]:n},He=e((e,t)=>{if(t?.collection&&t?.indexField&&Array.isArray(e))return e.reduce((e,n)=>{let r=t.indexField;return r&&n[r]&&(e[n[r]]=n),e},{});if(!t?.collection&&t?.indexField){let n=t.indexField;return n&&e[n]?{[e[n]]:e}:e}return e},`indexResponseData`),Ue=P.object({baseUrl:P.string().optional(),url:P.string(),method:P.enum(V),authorization:P.discriminatedUnion(`type`,[F({type:P.literal(`none`)}),F({type:P.literal(`basic`),username:P.string().optional(),password:P.string().optional(),encoding:P.string().optional()}),F({type:P.literal(`bearer`),token:P.string(),includeBearer:P.boolean().optional().default(!0)}),F({type:P.literal(`oauth2`),token:P.string(),includeBearer:P.boolean().optional().default(!0)})]).optional(),envelope:P.union([P.string(),P.record(P.string(),P.unknown())]).optional(),namespaces:P.strictObject({namespaceIdentifier:P.string(),namespace:P.string()}).array().optional(),soapOperation:P.string().optional(),soapAction:P.string().optional(),useSoapContext:P.boolean().optional().default(!0),response:F({collection:P.boolean().optional(),indexField:P.string().optional(),dataKey:P.string().optional(),nextKey:P.string().optional(),nextKeyIn:P.enum([`data`,`headers`]).optional()}).optional(),iterator:F({key:P.string(),in:P.enum(W)}),cursor:F({token:P.string().optional().nullable(),position:P.number().optional().nullable()}).optional(),customErrors:B.array().optional(),args:F({name:P.string(),value:P.unknown(),in:P.enum(W),condition:P.string().optional(),arrayFormat:P.enum(U).optional()}).array().optional()}),We=F({data:P.unknown().optional(),raw:P.unknown().optional(),statusCode:P.number(),message:P.string().optional(),next:P.string().optional().nullable(),position:P.number().optional()}).optional(),soapPaginatedRequestStepFunction=async({block:e,params:t})=>{let n=ee.build(`soap`);if(!e.httpClient)throw Error(`HTTP client is not configured`);let{args:r}=t,i=Number(e.inputs?.page_size),a=Number.isNaN(i)?25:i,o=r?r.filter(t=>!t.condition||I(t.condition,e)===!0).map(e=>({...e,condition:void 0})):void 0,s=t?z({...t,args:o},e):{},c={...s,customErrors:t?.customErrors},{baseUrl:l,url:u,method:d,response:f,iterator:p,cursor:m,authorization:h,customErrors:g,args:_,soapOperation:v,namespaces:y,envelope:b,soapAction:x,useSoapContext:S}=Ue.parse(c),C=s?.authentication?.[e.context.authenticationType]?.[e.context.environment]?.authorization,w=_?K(_):{query:{},body:{},headers:{}},T=G(k(h)?h:Z.parse(C)),D={...w?.headers??{},...T},O=e.connector?.rateLimit,A=e.connector?.concurrency,j={...(O!==void 0||A!==void 0)&&{rateLimit:O,concurrency:A},soapOperation:v,namespaces:y,envelope:b,soapAction:x,soapContext:S?{username:e.credentials?.username,password:e.credentials?.password}:void 0},M=m?.token??null,N=null,P=null,F=[],L=[],R=[],B=a,V=m?.position??0,H=!0,U;do{H?H=!1:V=0,M!==null&&(p.in===`query`?w.query[p.key]=M.toString():p.in===`body`&&(w.body[p.key]=M));let t;try{t=await n.performRequest({httpClient:e.httpClient,url:`${l}${u}`,queryParams:w?.query,method:d,headers:D,body:w?.body,customErrorConfigs:g,requestConfig:j})}catch(t){return buildStepErrorOutput(t,e)}N=M,L=f?.dataKey?t.data[f?.dataKey]:t.data,Array.isArray(L)||(L=L?[L]:[]);let r=L?.slice(V,V+B);B-=r.length,V+=r.length,R.push(t),F=F.concat(r),P=t?.status,M=resolveNextIterator({result:t,response:f}),r.length===L.length&&B===0&&(V=0,N=M),U=E(M)&&F.length<a}while(k(M)&&F.length<a&&L?.length>0);return{block:e,successful:!0,output:{data:Ge(F,f),raw:R,statusCode:P,next:U?void 0:N,position:U?void 0:V}}},resolveNextIterator=({result:e,response:t})=>{if(E(t?.nextKey))return null;let n=t?.nextKeyIn??`data`,r=t?.nextKey;return n===`headers`?resolveFromHeaders(e.headers,r):resolveFromData(e.data,r)},resolveFromHeaders=(e,t)=>{if(E(e)||typeof e!=`object`)return null;let n=t.toLowerCase(),[,r]=Object.entries(e).find(([e])=>e?.toLowerCase()===n)??[];if(Array.isArray(r)){let e=r.find(e=>typeof e==`string`&&e!==``||typeof e==`number`);return typeof e==`string`||typeof e==`number`?e:null}return typeof r==`string`&&r!==``||typeof r==`number`?r:null},resolveFromData=(e,t)=>{if(E(e)||typeof e!=`object`||!e)return null;let n=e[t];return E(n)?null:typeof n==`string`||typeof n==`number`?n:null},Ge=e((e,t)=>{if(t?.indexField&&Array.isArray(e))return e.reduce((e,n)=>{let r=t.indexField;return r&&n[r]&&(e[n[r]]=n),e},{});if(t?.indexField){let n=t.indexField;return n&&e[n]?{[e[n]]:e}:e}return e},`indexResponseData`),Ke=P.object({baseUrl:P.string().optional(),url:P.string(),method:P.enum(V),authorization:Z.optional(),envelope:P.union([P.string(),P.record(P.string(),P.unknown())]).optional(),namespaces:P.strictObject({namespaceIdentifier:P.string(),namespace:P.string()}).array().optional(),soapOperation:P.string().optional(),soapAction:P.string().optional(),useSoapContext:P.boolean().optional().default(!0),response:F({collection:P.boolean().optional(),indexField:P.string().optional(),dataKey:P.string().optional()}).optional(),customErrors:B.array().optional(),args:F({name:P.string(),value:P.unknown(),in:P.enum(W),condition:P.string().optional(),arrayFormat:P.enum(U).optional()}).array().optional()}),qe=F({data:P.unknown().optional(),raw:P.unknown().optional(),statusCode:P.number(),message:P.string().optional()}).optional(),soapRequestStepFunction=async({block:e,params:t})=>{let n=ee.build(`soap`);if(!e.httpClient)throw Error(`HTTP client is not configured`);let{args:r}=t,i=r?r.filter(t=>!t.condition||I(t.condition,e)===!0).map(e=>({...e,condition:void 0})):void 0,a=t?z({...t,args:i},e):{},o={...a,customErrors:t?.customErrors},{baseUrl:s,url:c,method:l,response:u,authorization:d,customErrors:f,args:p,soapOperation:m,namespaces:h,envelope:g,soapAction:_,useSoapContext:v}=Ke.parse(o),y=a?.authentication?.[e.context.authenticationType]?.[e.context.environment]?.authorization,b=p?K(p):{query:{},body:{},headers:{}},x=G(k(d)?d:Z.parse(y)),S={...b?.headers??{},...x},C=e.connector?.rateLimit,w=e.connector?.concurrency,T={...(C!==void 0||w!==void 0)&&{rateLimit:C,concurrency:w},soapOperation:m,namespaces:h,envelope:g,soapAction:_,soapContext:v?{username:e.credentials?.username,password:e.credentials?.password}:void 0},E;try{E=await n.performRequest({httpClient:e.httpClient,url:`${s}${c}`,queryParams:b?.query,method:l,headers:S,body:b?.body,customErrorConfigs:f,requestConfig:T})}catch(t){return buildStepErrorOutput(t,e)}return{block:e,successful:!0,output:{data:Je(u?.dataKey?E.data[u?.dataKey]:E.data,u),raw:E,statusCode:E?.status,message:E?.message}}},Je=e((e,t)=>{if(t?.collection&&t?.indexField&&Array.isArray(e))return e.reduce((e,n)=>{let r=t.indexField;return r&&n[r]&&(e[n[r]]=n),e},{});if(!t?.collection&&t?.indexField){let n=t.indexField;return n&&e[n]?{[e[n]]:e}:e}return e},`indexResponseData`),Ye=P.object({values:P.string().or(P.record(P.string(),P.unknown())).or(P.array(P.unknown()))}),Xe=P.object({data:P.unknown()}),staticValuesStepFunction=async({block:e,params:t})=>{let{values:n}=Ye.parse(t),r=Array.isArray(n)?n.map(t=>evaluateValue(t,e)):evaluateValue(n,e);return{block:{...e},successful:!0,output:{data:r}}},evaluateValue=(e,t)=>O(e)?R(e,t):D(e)?z(e,t):e,Ze=P.object({targetFieldKey:P.string(),type:P.enum([`string`,`number`,`boolean`,`datetime_string`,`enum`,`object`]),array:P.boolean().default(!1),custom:P.boolean().default(!1),hidden:P.boolean().default(!1),properties:P.lazy(()=>Ze).array().optional(),requiredScopes:P.string().array().optional()}),Qe=P.object({fields:Ze.array().optional(),dataSource:P.string()}),$e=P.object({data:P.unknown()});let et=function(e){return e.String=`string`,e.Number=`number`,e.Boolean=`boolean`,e.DateTimeString=`datetime_string`,e}({});const typecast=({value:e,type:t,format:n})=>{if(E(e))return null;switch(t){case et.String:return N({value:e});case et.Number:return M({value:e});case et.Boolean:return A({value:e});case et.DateTimeString:return j({value:e,format:n});default:return e}},isFieldSupportedType=e=>Object.values(et).includes(e),tt=e(async({block:e})=>{let t=e?.fieldConfigs;if(!t||e?.debug?.custom_mappings===`disabled`)return{block:e,successful:!0};let n;return n=Array.isArray(e.result)?e.result.map(e=>nt(e,t)):nt(e.result,t),{block:{...e,result:n},successful:!0}},`typecastStepFunction`),nt=e((e,t)=>{let n={...e};return t.forEach(t=>{let{targetFieldKey:r,type:i}=t;isFieldSupportedType(i)&&(!t.custom&&k(n[r])?n[r]=typecast({value:e[r],type:i}):n.unified_custom_fields&&k(n.unified_custom_fields?.[r])&&(n.unified_custom_fields[r]=typecast({value:e.unified_custom_fields?.[r],type:i})))}),{...n}},`mapSingleRecord`),typecastStepFunction=async({block:e,params:t})=>{let{fields:n,dataSource:r}=Qe.parse(t),i=I(r,e);if(!n||e?.debug?.custom_mappings===`disabled`)return{block:e,successful:!0};let a;return a=Array.isArray(i)?i.map(e=>mapSingleRecord(e,n)):mapSingleRecord(i,n),{block:{...e},successful:!0,output:{data:a}}},handleObjectField=(e,t)=>!e.properties||!t?t:Array.isArray(t)?t.map(t=>typeof t==`object`&&t?mapSingleRecord(t,e.properties):t):typeof t==`object`&&t?mapSingleRecord(t,e.properties):t,mapSingleRecord=(e,t)=>{let n={...e};return t.forEach(t=>{let{targetFieldKey:r,type:i,array:a}=t;i===`object`?!t.custom&&k(n[r])?n[r]=handleObjectField(t,e[r]):n.unified_custom_fields&&k(n.unified_custom_fields?.[r])&&(n.unified_custom_fields[r]=handleObjectField(t,e.unified_custom_fields?.[r])):isFieldSupportedType(i)&&(!t.custom&&k(n[r])?(!a||!Array.isArray(n[r]))&&(n[r]=typecast({value:e[r],type:i})):n.unified_custom_fields&&k(n.unified_custom_fields?.[r])&&(!a||!Array.isArray(n.unified_custom_fields[r]))&&(n.unified_custom_fields[r]=typecast({value:e.unified_custom_fields?.[r],type:i})))}),{...n}},rt=F({content:P.string().describe(`The file content as base64 encoded string`),contentType:P.string().optional().describe(`The MIME type for the binary content (defaults to application/octet-stream)`)}),it=P.object({baseUrl:P.string().optional(),url:P.string(),method:P.enum(V).default(`post`),authorization:Z.optional(),binaryContent:rt.describe(`Raw binary content for octet-stream uploads`),response:F({collection:P.boolean().optional(),indexField:P.string().optional(),dataKey:P.string().optional()}).optional(),customErrors:B.array().optional(),args:F({name:P.string(),value:P.unknown(),in:P.enum(W),spread:P.boolean().optional(),condition:P.string().optional(),arrayFormat:P.enum(U).optional()}).array().optional().describe(`Additional request parameters (query params, headers)`)}),at=F({data:P.unknown().optional(),raw:P.unknown().optional(),statusCode:P.number(),message:P.string().optional()}).optional(),uploadBinaryStepFunction=async({block:e,params:t})=>{if(!e.httpClient)throw Error(`HTTP client is not configured`);let{args:n}=t,r=n?n.filter(t=>!t.condition||I(t.condition,e)===!0).map(e=>({...e,condition:void 0})):void 0,i=t?z({...t,args:r},e):{},a={...i,customErrors:t?.customErrors},{baseUrl:o,url:s,method:c,response:l,authorization:u,binaryContent:d,args:f,customErrors:p}=it.parse(a),m=i?.authentication?.[e.context.authenticationType]?.[e.context.environment]?.authorization,h=f?K(f):{query:{},body:{},headers:{}},g=G(k(u)?u:Z.parse(m)),_=Buffer.from(d.content,`base64`),v={"content-type":d.contentType??`application/octet-stream`,...h?.headers??{},...g},y=e.connector?.rateLimit,b=e.connector?.concurrency,x=y!==void 0||b!==void 0?{rateLimit:y,concurrency:b}:void 0,S;try{S=await e.httpClient.request({url:`${o??``}${s}`,method:c,headers:v,queryParams:h?.query,payload:_,requestConfig:x})}catch(t){let n=t;return{block:e,successful:!1,errors:[q(t)],output:{statusCode:n?.response?.status??500,message:n?.response?.message}}}let C=J(S,p);return ne(C?.status)?{block:e,successful:!1,errors:[q(new H(C,C.message))],output:{statusCode:C.status,message:C.message}}:{block:e,successful:!0,output:{data:ot(l?.dataKey?C.data[l?.dataKey]:C.data,l),raw:C,statusCode:C?.status,message:C?.message}}},ot=e((e,t)=>{if(t?.collection&&t?.indexField&&Array.isArray(e))return e.reduce((e,n)=>{let r=t.indexField;return r&&n[r]&&(e[n[r]]=n),e},{});if(!t?.collection&&t?.indexField){let n=t.indexField;return n&&e[n]?{[e[n]]:e}:e}return e},`indexResponseData`),st=F({fieldName:P.string().describe(`The form field name for the file`),content:P.string().describe(`The file content as base64 encoded string`),filename:P.string().describe(`The filename to use in the upload`),contentType:P.string().optional().describe(`The MIME type of the file (e.g., "image/png", "application/pdf")`)}),ct=P.object({baseUrl:P.string().optional(),url:P.string(),method:P.enum(V).default(`post`),authorization:Z.optional(),file:st.describe(`The file to upload`),additionalFields:F({name:P.string(),value:P.unknown(),condition:P.string().optional(),contentType:P.string().optional().describe(`The MIME type for this form field (e.g., "application/json")`)}).array().optional().describe(`Additional form fields to include in the multipart request`),response:F({collection:P.boolean().optional(),indexField:P.string().optional(),dataKey:P.string().optional()}).optional(),customErrors:B.array().optional(),args:F({name:P.string(),value:P.unknown(),in:P.enum(W),spread:P.boolean().optional(),condition:P.string().optional(),arrayFormat:P.enum(U).optional()}).array().optional().describe(`Additional request parameters (query params, headers)`)}),lt=F({data:P.unknown().optional(),raw:P.unknown().optional(),statusCode:P.number(),message:P.string().optional()}).optional(),uploadFileStepFunction=async({block:e,params:t})=>{if(!e.httpClient)throw Error(`HTTP client is not configured`);let{args:n,additionalFields:r}=t,i=n?n.filter(t=>!t.condition||I(t.condition,e)===!0).map(e=>({...e,condition:void 0})):void 0,a=r?r.filter(t=>!t.condition||I(t.condition,e)===!0).map(e=>({...e,condition:void 0})):void 0,o=t?z({...t,args:i,additionalFields:a},e):{},s={...o,customErrors:t?.customErrors},{baseUrl:c,url:l,method:u,response:d,authorization:f,file:p,additionalFields:m,args:h,customErrors:g}=ct.parse(s),_=o?.authentication?.[e.context.authenticationType]?.[e.context.environment]?.authorization,v=h?K(h):{query:{},body:{},headers:{}},y=G(k(f)?f:Z.parse(_)),b=new ie;if(m)for(let e of m){let t=typeof e.value==`object`?JSON.stringify(e.value):String(e.value);b.append(e.name,t,e.contentType?{contentType:e.contentType}:void 0)}let x=Buffer.from(p.content,`base64`);b.append(p.fieldName,x,{filename:p.filename,contentType:p.contentType});let S={...b.getHeaders(),...v?.headers??{},...y},C=e.connector?.rateLimit,w=e.connector?.concurrency,T=C!==void 0||w!==void 0?{rateLimit:C,concurrency:w}:void 0,E;try{E=await e.httpClient.request({url:`${c??``}${l}`,method:u,headers:S,queryParams:v?.query,payload:b,requestConfig:T})}catch(t){return buildStepErrorOutput(t,e)}let D=J(E,g);return ne(D?.status)?buildStepErrorOutput(new H(D,D.message),e):{block:e,successful:!0,output:{data:indexResponseData(d?.dataKey?D.data[d?.dataKey]:D.data,d),raw:D,statusCode:D?.status,message:D?.message}}},indexResponseData=(e,t)=>{if(t?.collection&&t?.indexField&&Array.isArray(e))return e.reduce((e,n)=>{let r=t.indexField;return r&&n[r]&&(e[n[r]]=n),e},{});if(!t?.collection&&t?.indexField){let n=t.indexField;return n&&e[n]?{[e[n]]:e}:e}return e};let $=function(e){return e.TYPECAST=`typecast`,e.MAP_FIELDS=`map_fields`,e.GROUP_DATA=`group_data`,e.REQUEST=`request`,e.PAGINATED_REQUEST=`paginated_request`,e.SOAP_REQUEST=`soap_request`,e.SOAP_PAGINATED_REQUEST=`soap_paginated_request`,e.STATIC_VALUES=`static_values`,e.UPLOAD_FILE=`upload_file`,e.UPLOAD_BINARY=`upload_binary`,e.DOWNLOAD_FILE=`download_file`,e.EMIT_EVENT=`emit_event`,e}({});const ut={[$.TYPECAST]:{v1:{fn:tt},v2:{fn:typecastStepFunction,inputSchema:Qe,outputSchema:$e}},[$.MAP_FIELDS]:{v1:{fn:we},v2:{fn:mapFieldsStepFunction,inputSchema:Oe,outputSchema:ke}},[$.REQUEST]:{v1:{fn:requestStepFunction,inputSchema:Be,outputSchema:Ve}},[$.GROUP_DATA]:{v1:{fn:groupDataStepFunction,inputSchema:Se,outputSchema:Ce}},[$.PAGINATED_REQUEST]:{v1:{fn:paginatedRequestStepFunction,inputSchema:Me,outputSchema:Ne}},[$.SOAP_REQUEST]:{v1:{fn:soapRequestStepFunction,inputSchema:Ke,outputSchema:qe}},[$.SOAP_PAGINATED_REQUEST]:{v1:{fn:soapPaginatedRequestStepFunction,inputSchema:Ue,outputSchema:We}},[$.STATIC_VALUES]:{v1:{fn:staticValuesStepFunction,inputSchema:Ye,outputSchema:Xe}},[$.UPLOAD_FILE]:{v1:{fn:uploadFileStepFunction,inputSchema:ct,outputSchema:lt}},[$.UPLOAD_BINARY]:{v1:{fn:uploadBinaryStepFunction,inputSchema:it,outputSchema:at}},[$.DOWNLOAD_FILE]:{v1:{fn:downloadFileStepFunction,inputSchema:ve,outputSchema:ye}},[$.EMIT_EVENT]:{v1:{fn:emitEventStepFunction,inputSchema:be,outputSchema:xe}}},formatZodIssues=(e,t,n)=>e instanceof P.ZodError?e.issues.map(e=>({...e,kind:t,functionName:n})):[{kind:t,functionName:n,message:e?.message??`unknown error`}],stepFunctionEnhancedWithSchemasValidation=(e,t)=>async({block:n,params:r})=>{try{e.inputSchema&&e.inputSchema.parse(r)}catch(e){return{block:n,successful:!1,errors:formatZodIssues(e,`input_schema_validation`,t)}}let i=await e.fn({block:n,params:r});try{e.outputSchema&&e.outputSchema.parse(i.output)}catch(e){return{block:n,successful:!1,errors:formatZodIssues(e,`output_schema_validation`,t)}}return i},dt={build({functionName:e,version:t=`1`,validateSchemas:n=!1,stepFunctionsList:r=ut}){let i=r?.[e]?.[`v${t}`];if(!i)throw Error(`Unknown step function: ${e} v${t}`);return n?{...i,fn:stepFunctionEnhancedWithSchemasValidation(i,e)}:i}},isForeachStep=e=>`iterator`in e&&typeof e.iterator==`string`;export{Z as AUTHORIZATION_SCHEMA,se as COMPOSITE_ID_LATEST_VERSION,ce as CoreError,le as INPUT_ENUM_REGISTRY,ue as ReleaseStages,$ as StepFunctionName,dt as StepFunctionsFactory,ut as StepFunctionsRegistry,areCursorsEqual,decodeCompositeId,encodeCompositeId,evaluateEventRouter,evaluateExternalAccountIdExtractor,expandCursor,getCategoryDetails,getInputEnumValues,isCompositeId,isCoreError,isCursorEmpty,isForeachStep,isValidCategory,isValidEnumRef,minifyCursor,updateCursor};
1
+ import{t as e}from"./chunk-Cfxk5zVN.mjs";import{decodeFromBase64 as t,encodeToBase64 as n,generateSamlAssertion as r,getContentHash as i,getCountryAlpha2CodeByAlpha2Code as a,getCountryAlpha2CodeByAlpha3Code as o,getCountryAlpha2CodeByCitizenship as s,getCountryAlpha2CodeByCountryCode as c,getCountryAlpha2CodeByCountryName as l,getCountryAlpha3CodeByAlpha2Code as u,getCountryAlpha3CodeByAlpha3Code as d,getCountryAlpha3CodeByCountryCode as f,getCountryAlpha3CodeByCountryName as p,getCountryCodeByAlpha2Code as m,getCountryCodeByAlpha3Code as h,getCountryCodeByCountryCode as g,getCountryCodeByCountryName as _,getCountryNameByAlpha2Code as v,getCountryNameByAlpha3Code as y,getCountryNameByCountryCode as b,getCountryNameByCountryName as x,getCountrySubDivisionCodeBySubDivisionName as S,getCountrySubDivisionNameBySubDivisionCode as C,getCountrySubDivisionsByAlpha2Code as w,getDocumentFileFormatFromExtension as T,isMissing as E,isObject as D,isString as O,notMissing as k,safeParseToBoolean as A,safeParseToDateTimeString as ee,safeParseToNumber as j,safeParseToString as M,z as N,zStrictObject as P}from"@stackone/utils";import{evaluate as F,isValidExpression as I,safeEvaluate as L,safeEvaluateRecord as R}from"@stackone/expressions";import{CUSTOM_ERROR_CONFIG_SCHEMA as z,HttpMethods as B,HttpResponseError as V,QueryArrayFormats as H,RequestClientFactory as te,RequestParameterLocations as U,buildHttpsAgent as ne,createAuthorizationHeaders as W,getSigningStrategy as re,isFailedStatusCode as G,parseRequestParameters as K,serializeHttpResponseError as q,translateCustomError as ie}from"@stackone/transport";import J from"mime-types";import Y from"form-data";const ae={hris:{title:`HRIS`,key:`hris`,description:`Human Resource Information System`},crm:{title:`CRM`,key:`crm`,description:`Customer Relationship Management`},ats:{title:`ATS`,key:`ats`,description:`Applicant Tracking System`},lms:{title:`LMS`,key:`lms`,description:`Learning Management System`},marketing:{title:`Marketing`,key:`marketing`,description:`Marketing`},filestorage:{title:`File Storage`,key:`filestorage`,description:`File Storage`},internal:{title:`Internal`,key:`internal`,description:`Category for internal actions`},action:{title:`Action`,key:`action`,description:`Action`}},getCategoryDetails=e=>ae[e.toLowerCase()]??null,isValidCategory=e=>!!ae[e.toLowerCase()],X=n(`so1!`),oe=RegExp(`(?<!\\\\):`,`g`),se=RegExp(`(?<!\\\\),`,`g`),ce=1;var le=class CoreError extends Error{constructor({category:e,name:t,type:n,context:r,message:i}){super(i),this.name=t??`CoreError`,this.type=n,this.category=e,this.context=r,Error.captureStackTrace&&Error.captureStackTrace(this,CoreError)}toString(){let e=this.message?`: ${this.message}`:``;return`${this.category}-${this.name} [${this.type}]${e}`}},BaseCompositeIdError=class extends le{constructor(e,t,n){super({category:`CompositeId`,name:t??`BaseCompositeIdError`,type:e,message:n})}},CompositeIdMissingHeaderError=class extends BaseCompositeIdError{constructor(e){super(`COMPOSITE_ID_MISSING_HEADER_ERROR`,`CompositeIdMissingHeaderError`,e??`Invalid compositeId, missing header`)}},CompositeIdMissingBodyError=class extends BaseCompositeIdError{constructor(e){super(`COMPOSITE_ID_MISSING_BODY_ERROR`,`CompositeIdMissingBodyError`,e??`Invalid compositeId, missing body`)}},CompositeIdUnknownIdentifierError=class extends BaseCompositeIdError{constructor(e){super(`COMPOSITE_ID_UNKNOWN_IDENTIFIER_ERROR`,`CompositeIdUnknownIdentifierError`,e??`Invalid compositeId, unknown identifier`)}},CompositeIdUnsupportedVersionError=class extends BaseCompositeIdError{constructor(e){super(`COMPOSITE_ID_UNSUPPORTED_VERSION_ERROR`,`CompositeIdUnsupportedVersionError`,e??`Invalid compositeId, unsupported version`)}};const isSingleIdentifier=e=>!E(e)&&`value`in e&&e.value!==void 0,isMultipleIdentifier=e=>!E(e)&&`identifiers`in e&&e.identifiers!==void 0,encodeCompositeId=(e,t={version:1})=>{if(t.version===1)return encodeIdV1(getComposedIdV1(e,t.aliases));throw new CompositeIdUnsupportedVersionError(`Cannot generate ID, unsupported version number: ${t.version}`)},decodeCompositeId=(e,t={version:1})=>{let n=decodeId(e,t),r={};return n&&n.split(se).forEach(e=>{let[n,i]=e.split(oe),a=getOriginalKey(n,t.aliases??{});r[a]=unescapeValue(i)}),r},getComposedIdV1=(e,t={})=>{if(isSingleIdentifier(e))return getSingleIdentifierString({identifier:e,compositeIdAliases:t,isSoleIdentifier:!0});if(isMultipleIdentifier(e))return e.identifiers.map(e=>getSingleIdentifierString({identifier:e,compositeIdAliases:t,isSoleIdentifier:!1})).join(`,`);throw new CompositeIdUnknownIdentifierError},getSingleIdentifierString=({identifier:e,compositeIdAliases:t,isSoleIdentifier:n})=>[n?`id`:t[e.key]||e.key,escapeValue(e.value)].filter(Boolean).join(`:`),getOriginalKey=(e,t)=>Object.keys(t).find(n=>t[n]===e)??e,decodeId=(e,t)=>{if(t.version===1)return decodeIdV1(e);throw new CompositeIdUnsupportedVersionError(`Cannot decode ID, unsupported version number: ${t.version}`)},encodeIdV1=e=>`${X}${n(e)}`,decodeIdV1=e=>{if(!e.startsWith(X))throw new CompositeIdMissingHeaderError(`Trying to decode an ID without the header: ${e}`);let n=e.split(X)[1];if(!n)throw new CompositeIdMissingBodyError(`Trying to decode an ID without a body: ${e}`);return t(n)},escapeValue=e=>[`,`,`:`].reduce((e,t)=>e.replace(t,`\\`+t),e),unescapeValue=e=>[`,`,`:`].reduce((e,t)=>{let n=`\\`+t;return e.replace(RegExp(`\\\\`+n,`g`),t)},e),isCompositeId=e=>E(e)?!1:e.startsWith(X),evaluateExternalAccountIdExtractor=(e,t)=>{let n=e.events?.externalAccountIdExtractor;if(E(n)||typeof n.result!=`string`||n.result.trim().length===0)return;let r=L(`{{${n.result.trim()}}}`,t);if(!E(r)){if(typeof r==`string`){let e=r.trim();return e.length>0?e:void 0}if(typeof r==`number`||typeof r==`bigint`||typeof r==`boolean`)return String(r)}},evaluateEventRouter=(e,t)=>{let n=e.events?.router;if(!E(n))for(let e of n.rules){let n=L(`{{${e.when.trim()}}}`,t);if(n!==null&&n!==!1&&n!==void 0){let n=e.then.input?Object.fromEntries(Object.entries(e.then.input).map(([e,n])=>[e,L(`{{${String(n).trim()}}}`,t)])):void 0;return{action:e.then.action,input:n}}}},ue={employment_status:[`active`,`inactive`,`terminated`,`pending`,`leave`],employment_type:[`full_time`,`part_time`,`contractor`,`intern`,`temporary`],gender:[`male`,`female`,`non_binary`,`other`,`prefer_not_to_say`],marital_status:[`single`,`married`,`divorced`,`widowed`,`domestic_partnership`]},getInputEnumValues=e=>ue[e],isValidEnumRef=e=>e in ue,de=[`preview`,`beta`,`ga`,`deprecated`],fe=P({r:N.record(N.string(),P({n:N.number().optional().nullable(),c:N.string().optional().nullable(),p:N.number().optional().nullable()})),v:N.number(),t:N.number()}),pe=P({remote:N.record(N.string(),P({pageNumber:N.number().optional(),providerPageCursor:N.string().optional(),position:N.number().optional()})),version:N.number(),timestamp:N.number()}),minifyCursor=e=>n(JSON.stringify(minifyCursorObject(e))),minifyCursorObject=e=>{let{remote:t,version:n,timestamp:r}=e;return{r:Object.fromEntries(Object.entries(t).map(([e,{pageNumber:t,providerPageCursor:n,position:r}])=>[e,{n:t,c:n,p:r}])),v:n,t:r}},expandCursor=e=>{try{if(O(e)){let n=t(e),r=JSON.parse(n);return expandCursorObject(fe.parse(r))}else return pe.parse(e),e}catch{return null}},expandCursorObject=e=>{let{r:t,v:n,t:r}=e;return{remote:Object.fromEntries(Object.entries(t).map(([e,{n:t,c:n,p:r}])=>[e,{pageNumber:t,providerPageCursor:n,position:r}])),version:n,timestamp:r}},areCursorsEqual=(e,t)=>{let n=typeof e==`string`?expandCursor(e):e,r=typeof t==`string`?expandCursor(t):t;if(n===null||r===null)return n===r;let{timestamp:a,...o}=n,{timestamp:s,...c}=r;return i(o)===i(c)},isCursorEmpty=({cursor:e,ignoreStepIndex:t})=>E(e)?!0:Object.keys(e?.remote??{}).reduce((n,r)=>{let i=e?.remote?.[r];return(E(t)||r!==t.toString())&&(n=n&&E(i.pageNumber)&&E(i.position)&&E(i.providerPageCursor)),n},!0),updateCursor=({cursor:e,stepIndex:t,pageNumber:n,providerPageCursor:r,position:i})=>{let a={pageNumber:n??void 0,providerPageCursor:r??void 0,position:i??void 0},o=E(n)&&E(r)&&E(i);return E(e)?{remote:o?{}:{[t]:a},version:2,timestamp:Date.now()}:o?(delete e.remote[t],e):{...e,remote:{...e.remote,[t]:a}}},isCoreError=e=>e instanceof le,sanitizeRaw=e=>{let t={};return e.status!=null&&(t.status=e.status),e.data!==void 0&&(t.data=e.data),e.headers!=null&&(t.headers=e.headers),e.requestUrl!=null&&(t.requestUrl=e.requestUrl),e.message!=null&&(t.message=e.message),t},isHttpLikeError=e=>typeof e==`object`&&!!e&&`response`in e&&e.response!=null&&typeof e.response==`object`,extractErrorMessage=(e,t)=>{let n=e.data;if(typeof n==`object`&&n&&!Array.isArray(n)){let e=n;if(typeof e.message==`string`&&e.message.trim().length>0)return e.message}if(typeof e.message==`string`&&e.message.length>0)return e.message;if(typeof n==`object`&&n&&!Array.isArray(n)){let e=n;if(e.error!=null&&typeof e.error==`object`&&!Array.isArray(e.error)&&typeof e.error.message==`string`)return e.error.message;if(typeof e.error==`string`)return e.error;if(typeof e.error_description==`string`)return e.error_description}return typeof n==`string`&&n.length>0?n:t},buildStepErrorOutput=(e,t)=>{if(e instanceof V){let n=e.message;return{block:t,successful:!1,errors:[q(e)],output:{statusCode:e.response?.status??500,message:extractErrorMessage(e.response,n),data:e.response?.data,raw:sanitizeRaw(e.response)}}}if(isHttpLikeError(e)){let n=e.response,r=e instanceof Error?e.message:`HTTP error: ${n.status??500}`;return{block:t,successful:!1,errors:[q(e)],output:{statusCode:n.status??500,message:extractErrorMessage(n,r),data:n.data,raw:sanitizeRaw(n)}}}return e instanceof Error?{block:t,successful:!1,errors:[q(e)],output:{statusCode:500,message:e.message}}:{block:t,successful:!1,errors:[q(e)],output:{statusCode:500,message:String(e)}}},me=P({strategy:N.literal(`aws4`),service:N.string(),region:N.string().optional()}),he=P({strategy:N.literal(`hmac`),algorithm:N.enum([`sha256`,`sha512`]).optional(),headerName:N.string().optional(),prefix:N.string().optional()}),ge=N.discriminatedUnion(`strategy`,[me,he]),_e=P({type:N.literal(`none`),signing:ge.optional()}),ve=P({type:N.literal(`basic`),username:N.string().optional(),password:N.string().optional(),encoding:N.string().optional()}),ye=P({type:N.literal(`bearer`),token:N.string(),includeBearer:N.boolean().optional().default(!0)}),be=P({type:N.literal(`oauth2`),authorizationUrl:N.string().optional(),authorizationParams:N.record(N.string(),N.string()).optional(),tokenUrl:N.string().optional(),tokenParams:N.record(N.string(),N.string()).optional(),tokenExpiresIn:N.number().optional(),tokenRefreshExpiresIn:N.number().optional(),token:N.string(),includeBearer:N.boolean().optional().default(!0),scopes:N.string().optional(),scopeDelimiter:N.string().optional(),customHeaders:N.record(N.string(),N.string()).optional(),pkce:N.boolean().optional(),additionalTokenFields:N.record(N.string(),N.string().optional()).optional()}),Z=N.discriminatedUnion(`type`,[_e,ve,ye,be]),xe=P({certs:N.string().array().optional(),keys:N.string().array().optional()}).optional(),Se=N.object({baseUrl:N.string().optional(),url:N.string(),method:N.enum(B).optional().default(`get`),authorization:Z.optional(),responseMode:N.enum([`buffer`,`stream`]).optional().default(`buffer`),responseType:N.enum([`arraybuffer`,`blob`,`text`,`json`]).optional().default(`arraybuffer`),encoding:N.enum([`base64`,`utf8`,`binary`,`raw`,`none`]).optional().default(`base64`),response:P({dataKey:N.string().optional(),fileNameKey:N.string().optional(),contentTypeKey:N.string().optional(),contentIsBase64:N.boolean().optional().default(!1),urlKey:N.string().optional(),forwardAuth:N.boolean().optional().default(!1)}).optional(),maxRedirects:N.number().optional().default(5),followRedirects:N.boolean().optional().default(!0),customErrors:z.array().optional(),args:P({name:N.string(),value:N.unknown(),in:N.enum(U),spread:N.boolean().optional(),condition:N.string().optional(),arrayFormat:N.enum(H).optional()}).array().optional()}),Ce=P({data:N.union([N.string(),N.instanceof(Buffer)]).optional(),raw:N.unknown().optional(),statusCode:N.number(),message:N.string().optional(),headers:N.record(N.string(),N.string()).optional(),contentDisposition:N.string().optional(),fileMetadata:P({contentType:N.string().optional(),contentLength:N.number().optional(),fileName:N.string().optional(),lastModified:N.string().optional(),etag:N.string().optional()}).optional(),finalUrl:N.string().optional()}).optional(),downloadFileStepFunction=async({block:e,params:t})=>{if(!e.httpClient)throw Error(`HTTP client is not configured`);let{args:n}=t,r=n?n.filter(t=>!t.condition||F(t.condition,e)===!0).map(e=>({...e,condition:void 0})):void 0,i=t?R({...t,args:r},e):{},a={...i,customErrors:t?.customErrors},{baseUrl:o,url:s,method:c,authorization:l,args:u,responseMode:d,responseType:f,encoding:p,response:m,maxRedirects:h,followRedirects:g}=Se.parse(a),_=i?.authentication?.[e.context.authenticationType]?.[e.context.environment]?.authorization,v=u?K(u):{query:{},body:{},headers:{}},y=W(k(l)?l:Z.parse(_)),b={...v?.headers??{},...y},x=e.connector?.rateLimit,S=e.connector?.concurrency,C=x!==void 0||S!==void 0?{rateLimit:x,concurrency:S}:void 0;if(d===`stream`)return performStreamDownload({block:e,httpClient:e.httpClient,baseUrl:o??``,url:s,method:c,headers:b,queryParams:v?.query,body:v?.body,maxRedirects:g?h:0,requestConfig:C});try{return{block:e,successful:!0,output:await performDownload({httpClient:e.httpClient,baseUrl:o??``,url:s,method:c,headers:b,queryParams:v?.query,body:v?.body,responseType:f,encoding:p,response:m,maxRedirects:g?h:0,requestConfig:C,authHeaders:y})}}catch(t){return buildStepErrorOutput(t,e)}},performStreamDownload=async e=>{let{block:t,httpClient:n,baseUrl:r,url:i,method:a,headers:o,queryParams:s,body:c,maxRedirects:l,requestConfig:u}=e,d=`${r}${i}`;if(!d.startsWith(`http://`)&&!d.startsWith(`https://`))throw Error(`Invalid URL: "${d}". URL must be absolute (start with http:// or https://). Either provide a baseUrl or ensure url is a complete URL.`);if(!n.requestStream)throw Error(`HTTP client does not support streaming. Either implement requestStream method or use responseMode: "buffer".`);try{let e=await n.requestStream({url:d,method:a,headers:o,queryParams:s,payload:c,maxRedirects:l,requestConfig:u}),r=extractFileMetadata(e.headers),i=buildContentDisposition(r);return{block:t,successful:!0,streamOutput:{stream:e.stream,headers:e.headers,contentDisposition:i,fileMetadata:r}}}catch(e){return buildStepErrorOutput(e,t)}},performDownload=async e=>{let{httpClient:t,baseUrl:n,url:r,method:i,headers:a,queryParams:o,body:s,responseType:c,encoding:l,response:u,maxRedirects:d,requestConfig:f,authHeaders:p}=e,m=`${n}${r}`;if(!m.startsWith(`http://`)&&!m.startsWith(`https://`))throw Error(`Invalid URL: "${m}". URL must be absolute (start with http:// or https://). Either provide a baseUrl or ensure url is a complete URL.`);let h=u?.urlKey||u?.dataKey?`json`:c,g=await t.request({url:m,method:i,headers:a,queryParams:o,payload:s,responseType:h===`json`?void 0:h,maxRedirects:d,requestConfig:f});if(u?.urlKey||u?.dataKey)return handleJsonResponse({httpClient:t,result:g,response:u,encoding:l,maxRedirects:d,requestConfig:f,authHeaders:p});let _=encodeFileData(g.data,l),v=extractFileMetadata(g.headers),y=buildContentDisposition(v);return{data:_,raw:g,statusCode:g?.status,message:g?.message,headers:g.headers,contentDisposition:y,fileMetadata:v,finalUrl:g?.requestUrl}},handleJsonResponse=async e=>{let{httpClient:t,result:n,response:r,encoding:i,maxRedirects:a,requestConfig:o,authHeaders:s}=e,c=n.data;if(r.urlKey){let e=extractValueByPath(c,r.urlKey);if(typeof e==`string`){let n=await t.request({url:e,method:`get`,headers:r.forwardAuth?s:{},responseType:`arraybuffer`,maxRedirects:a,requestConfig:o}),l=encodeFileData(n.data,i),u=extractFileMetadata(n.headers);if(r.fileNameKey){let e=extractValueByPath(c,r.fileNameKey);typeof e==`string`&&(u.fileName=e)}if(r.contentTypeKey){let e=extractValueByPath(c,r.contentTypeKey);typeof e==`string`&&(u.contentType=e)}let d=buildContentDisposition(u);return{data:l,raw:n,statusCode:n?.status,message:n?.message,headers:n.headers,contentDisposition:d,fileMetadata:u,finalUrl:e}}}if(r.dataKey){let e=extractValueByPath(c,r.dataKey);if(E(e))throw Error(`No file content found at path: ${r.dataKey}`);let t;if(typeof e==`string`)t=r.contentIsBase64?i===`base64`?e:i===`none`?Buffer.from(e,`base64`):Buffer.from(e,`base64`).toString(i===`raw`?`binary`:i):encodeFileData(e,i);else if(e instanceof ArrayBuffer||ArrayBuffer.isView(e))t=encodeFileData(e,i);else throw Error(`Unexpected file content type at path: ${r.dataKey}`);let a={};if(r.fileNameKey){let e=extractValueByPath(c,r.fileNameKey);typeof e==`string`&&(a.fileName=e)}if(r.contentTypeKey){let e=extractValueByPath(c,r.contentTypeKey);typeof e==`string`&&(a.contentType=e)}let o=buildContentDisposition(a);return{data:t,raw:n,statusCode:n?.status,message:n?.message,headers:n.headers,contentDisposition:o,fileMetadata:a}}throw Error(`JSON response handling requires either urlKey or dataKey to be specified`)},extractValueByPath=(e,t)=>{let n=(t.startsWith(`$.`)?t.slice(2):t).split(`.`),r=e;for(let e of n){if(E(r)||typeof r!=`object`)return;r=r[e]}return r},encodeFileData=(e,t)=>{if(t===`none`)return e instanceof ArrayBuffer||ArrayBuffer.isView(e)||typeof e==`string`?Buffer.from(e):Buffer.from(JSON.stringify(e));if(t===`raw`)return typeof e==`string`?e:e instanceof ArrayBuffer||ArrayBuffer.isView(e)?Buffer.from(e).toString(`binary`):JSON.stringify(e);if(typeof e==`string`)return t===`base64`?Buffer.from(e).toString(`base64`):e;if(e instanceof ArrayBuffer||ArrayBuffer.isView(e)){let n=Buffer.from(e);switch(t){case`base64`:return n.toString(`base64`);case`utf8`:return n.toString(`utf8`);case`binary`:default:return n.toString(`binary`)}}return JSON.stringify(e)},extractFileMetadata=e=>{let t=O(e[`content-type`])?e[`content-type`]:void 0,n=O(e[`content-length`])?e[`content-length`]:void 0,r=O(e[`content-disposition`])?e[`content-disposition`]:void 0,i=O(e[`last-modified`])?e[`last-modified`]:void 0,a=O(e.etag)?e.etag:void 0,o=n?parseInt(n,10):void 0,s=extractFileName(r);return{contentType:t,contentLength:Number.isNaN(o)?void 0:o,fileName:s,lastModified:i,etag:a}},extractFileName=e=>{if(!e)return;let t=e.match(/filename\*=(?:UTF-8''|utf-8'')([^;\s]+)/i);if(t&&t[1])try{return decodeURIComponent(t[1])}catch{}let n=e.match(/filename=["']([^"']+)["']/);if(n&&n[1])return n[1];let r=e.match(/filename=([^;\s]+)/);if(r&&r[1])return r[1]},buildContentDisposition=e=>{let{fileName:t,contentType:n}=e,r=`attachment`;if(t)r=`attachment; filename="${t}"; filename*=UTF-8''${encodeURIComponent(t).replace(/['()]/g,escape)}`;else if(n){let e=getExtensionFromContentType(n);e&&(r=`attachment; filename="download.${e}"`)}return r},getExtensionFromContentType=e=>{let t=e.split(`;`)[0].trim().toLowerCase();return J.extension(t)||void 0},we=N.object({event:N.object({eventType:N.string(),eventDate:N.string().optional(),data:N.unknown().optional()}).optional()}),Te=N.record(N.string(),N.unknown()),emitEventStepFunction=async({block:e,params:t})=>{let n=t?R(t,e):{},{event:r}=we.parse(n);if(r&&e.emitEvent)try{await e.emitEvent({eventType:r.eventType,eventDate:r.eventDate,data:r.data})}catch(t){throw e.logger?.error({code:`EmitEventError`,message:`emitEvent callback failed: ${t.message}`}),t}else r&&!e.emitEvent&&e.logger?.warning({message:`emit_event step executed but no emitEvent callback provided on the block`});let{event:i,...a}=n;return{block:{...e},successful:!0,output:a}},Ee=N.object({stepsDataToGroup:N.array(N.string()),isSingleRecord:N.boolean().optional()}),De=N.object({data:N.unknown()}),groupDataStepFunction=async({block:e,params:t})=>{let{stepsDataToGroup:n,isSingleRecord:r}=Ee.parse(t),i=n.reduce((t,n)=>{let i=e.steps?.[n]?.output?.data;return i?r?{...t,[n]:{...i}}:(Object.keys(i).forEach(e=>{t[e]={...k(t[e])?t[e]:{},[n]:{...i[e]}}}),t):t},{});return{block:{...e},successful:!0,output:{data:r?i:Object.values(i)}}},Oe=e(async({block:e})=>{let t=e?.fieldConfigs,n=[],r=e.steps;if(!t||e?.debug?.custom_mappings===`disabled`||!r)return{block:e,successful:!0};let i;if(Array.isArray(e.result)){let a=e.result.length;i=e.result.map((e,i)=>{let o=ke(e,t,extractSingleRecordBlockStepData(r,a,i));return n.push(...o.errors||[]),o.record})}else{let a=ke(e.result,t,r);i=a.record,n.push(...a.errors||[])}return{block:{...e,result:i},successful:!0,errors:Object.keys(n).length>0?n:void 0}},`mapFieldsStepFunction`),extractSingleRecordBlockStepData=(e,t,n)=>Object.entries(e).reduce((e,[r,i])=>{let a=i?.output?.data;return Array.isArray(a)&&a.length===t?e[r]={output:{data:a[n]}}:e[r]=i,e},{}),ke=e((e,t,n)=>{if(!e||!n)return{record:e};let r={unified:{...e},...typeof n==`object`?n:{}},i={},a=[],o={...e};for(let n of t){let{error:t,value:s}=Ae(r,e.id,n);if(t){a.push(t);continue}n.custom?i[n.targetFieldKey]=s:o[n.targetFieldKey]=s}return{record:{...o,unified_custom_fields:Object.keys(i).length>0?i:void 0},errors:a.length>0?a:void 0}},`mapSingleRecord`),Ae=e((e,t,n)=>{let{expression:r,targetFieldKey:i}=n;if(!r)return{error:{message:`Expression is empty`,id:t,targetField:i}};let a;try{a=F(r,e)}catch{return{error:{message:`Invalid expression`,id:t,targetField:i}}}return a===void 0?{error:{message:`Expression returned no value`,id:t,targetField:i}}:{value:a}},`extractFieldValue`),getEnumMatcher=e=>{switch(e){case`country_alpha2code_by_alpha2code`:return a;case`country_alpha3code_by_alpha3code`:return d;case`country_code_by_country_code`:return g;case`country_name_by_country_name`:return x;case`country_name_by_alpha3code`:return y;case`country_name_by_alpha2code`:return v;case`country_name_by_country_code`:return b;case`country_alpha3code_by_alpha2code`:return u;case`country_alpha3code_by_country_name`:return p;case`country_alpha3code_by_country_code`:return f;case`country_alpha2code_by_alpha3code`:return o;case`country_alpha2code_by_country_name`:return l;case`country_alpha2code_by_country_code`:return c;case`country_code_by_alpha2code`:return m;case`country_code_by_alpha3code`:return h;case`country_code_by_country_name`:return _;case`country_subdivisions_by_alpha2code`:return w;case`country_subdivision_code_by_subdivision_name`:return S;case`country_alpha2code_by_citizenship`:return s;case`country_subdivision_name_by_subdivision_code`:return C;case`document_file_format_from_extension`:return T;default:return}},je=P({targetFieldKey:N.string(),alias:N.string().optional(),expression:N.string().optional(),values:N.unknown().optional(),type:N.enum([`string`,`number`,`boolean`,`datetime_string`,`enum`,`object`]),array:N.boolean().default(!1),custom:N.boolean().default(!1),hidden:N.boolean().default(!1),enumMapper:P({matcher:N.string().or(P({matchExpression:N.string(),value:N.string()}).array())}).optional(),properties:N.lazy(()=>je).array().optional(),requiredScopes:N.string().array().optional()}),Me=N.object({fields:je.array(),dataSource:N.string(),externalSources:N.record(N.string(),N.string()).optional()}),Ne=N.object({data:N.unknown()}),mapFieldsStepFunction=async({block:e,params:t})=>{let n=[],{fields:r,dataSource:i,externalSources:a}=Me.parse(t),o=F(i,e);if(!r||!i||e?.debug?.custom_mappings===`disabled`||!o)return{block:e,successful:!0};let s=Object.keys(a??{})?.reduce((t,n)=>(t[n]=F(a?.[n],e),t),{}),c;if(Array.isArray(o))c=o.map(e=>{let t=Q(r,{...e,external:s});return n.push(...t?.errors||[]),t?.record});else{let e=Q(r,{...o,external:s});c=e?.record,n.push(...e?.errors||[])}return{block:{...e},successful:!0,output:{data:c},errors:Object.keys(n).length>0?n:void 0}},handleObjectArrayFromValues=(e,t,n)=>{if(Array.isArray(e.values))return e.values.map(r=>{let i=evaluateExpressionsInObject(r,t),a=Q(e.properties,i);return k(a?.errors)&&n.push(...a.errors),a?.record}).filter(Boolean)},handleObjectArrayFromExpression=(e,t,n)=>{if(e.expression)try{let r=F(e.expression,t);if(Array.isArray(r))return r.map(t=>{let r=Q(e.properties,t);return k(r?.errors)&&n.push(...r.errors),r?.record}).filter(Boolean);{let t=Q(e.properties,r);return k(t?.errors)&&n.push(...t.errors),t?.record}}catch{n.push({message:`Invalid expression`,id:t?.id,targetField:e.targetFieldKey});return}},handleSingleObject=(e,t,n)=>{let r=k(e.values)?e.values:t,i=Q(e.properties,r);return k(i?.errors)&&n.push(...i.errors),i?.record},Pe=e((e,t,n)=>{if(!E(e.properties))return e.array&&Array.isArray(e.values)?handleObjectArrayFromValues(e,t,n):e.array&&e.expression?handleObjectArrayFromExpression(e,t,n):handleSingleObject(e,t,n)},`handleObjectField`),Q=e((e,t)=>{if(!t)return;let n={},r=[],i={};for(let a of e){let e;if(a.type===`object`){if(e=Pe(a,t,r),e===void 0)continue}else{let{error:n,value:i}=extractFieldValue(t,t?.id,a);if(e=i,n){r.push(n);continue}}a.custom?n[a.targetFieldKey]=e:i[a.targetFieldKey]=e}let a=Object.keys(n).length>0?{unified_custom_fields:n}:{};return{record:{...i,...a},errors:r.length>0?r:void 0}},`mapSingleRecord`),evaluateExpressionsInObject=(e,t)=>{if(e==null)return e;if(typeof e==`string`){if(I(e))try{return F(e,t)}catch{return e}return e}if(Array.isArray(e))return e.map(e=>evaluateExpressionsInObject(e,t));if(typeof e==`object`){let n={...e};for(let[e,r]of Object.entries(n))n[e]=evaluateExpressionsInObject(r,t);return n}return e},extractFieldValue=(e,t,n)=>{switch(n.type){case`string`:case`number`:case`boolean`:case`datetime_string`:return Fe(n,t,e);case`enum`:return evaluateEnumValue(n,t,e);default:return{error:{message:`Invalid type`,id:t,targetField:n.targetFieldKey}}}},Fe=e((e,t,n)=>{if(!e.expression)return{error:{message:`Expression is empty`,id:t,targetField:e.targetFieldKey}};let r;try{r=F(e.expression,n)}catch{return{error:{message:`Invalid expression`,id:t,targetField:e.targetFieldKey}}}return r===void 0?{error:{message:`Expression returned no value`,id:t,targetField:e.targetFieldKey}}:{value:r}},`evaluateValue`),evaluateEnumValue=(e,t,n)=>{let r=Fe(e,t,n),i=k(r.value)?r.value:null;if(e.enumMapper===void 0)return{error:{message:`Enum mapper was not defined`,id:t,targetField:e.targetFieldKey}};let a=e.enumMapper.matcher;if(O(a)){let n=getEnumMatcher(a);return k(n)?{value:{value:(k(i)?n(i):null)??`unmapped_value`,source_value:i}}:{error:{message:`The built-in matcher "${a}" is not supported`,id:t,targetField:e.targetFieldKey}}}for(let e of a){let{matchExpression:t,value:r}=e;if(F(t,n)===!0)return{value:{value:r,source_value:i}}}return{value:{value:`unmapped_value`,source_value:i}}},Ie=N.object({baseUrl:N.string(),url:N.string(),method:N.enum(B),saml:P({objectKey:N.string(),key:N.string(),clientId:N.string(),cert:N.unknown().optional(),issuer:N.string().optional(),lifetime:N.number().optional(),nameId:N.string().optional(),audience:N.string().optional(),nameIdentifierFormat:N.string().optional(),tokenEndpoint:N.string().optional()}).optional(),response:P({indexField:N.string().optional(),dataKey:N.string().optional(),nextKey:N.string().optional(),nextKeyIn:N.enum([`data`,`headers`]).optional()}).optional(),iterator:P({key:N.string(),in:N.enum(U),condition:N.string().optional(),mode:N.enum([`cursor`,`offset`]).optional()}),cursor:P({token:N.string().optional().nullable(),position:N.number().optional().nullable()}).optional(),customErrors:z.array().optional(),args:P({name:N.string(),value:N.unknown(),in:N.enum(U),spread:N.boolean().optional(),condition:N.string().optional(),arrayFormat:N.enum(H).optional()}).array().optional()}),Le=P({data:N.unknown().optional(),raw:N.unknown().optional(),statusCode:N.number(),message:N.string().optional(),next:N.string().optional().nullable(),position:N.number().optional()}).optional(),Re=e(e=>{let t=e.trim();return t.startsWith(`{{`)&&t.endsWith(`}}`)},`isJexlExpression`),paginatedRequestStepFunction=async({block:e,params:t})=>{let n=te.build();if(!e.httpClient)throw Error(`HTTP client is not configured`);let{args:i}=t,a=Number(e.inputs?.page_size),o=Number.isNaN(a)?25:a,s=i?i.filter(t=>!t.condition||F(t.condition,e)===!0).map(e=>({...e,condition:void 0})):void 0,c=t?R({...t,args:s},e):{},l=t?.response?.nextKey,u=l&&Re(l),d=t?.response?.dataKey,f=d&&Re(d),p={...c?.response??{},...u?{nextKey:l}:{},...f?{dataKey:d}:{}},m={...c,customErrors:t?.customErrors,iterator:{...c?.iterator??{},condition:t?.iterator?.condition},response:u||f?p:c?.response},{baseUrl:h,url:g,method:_,response:v,iterator:y,cursor:b,customErrors:x,args:S,saml:C}=Ie.parse(m),w=c?.authentication?.[e.context.authenticationType]?.[e.context.environment],T=w?.authorization,O=w?.certificates,A=O?ne(O):void 0,ee=Z.parse(T),j=S?K(S):{query:{},body:{},headers:{}},M=W(ee),N={...j?.headers??{},...M},P=e.connector?.rateLimit,I=e.connector?.concurrency,z=P!==void 0||I!==void 0?{rateLimit:P,concurrency:I}:void 0,B=k(C)?{[C.objectKey]:await r({key:C.key,clientId:C.clientId,cert:C.cert,issuer:C.issuer,lifetime:C.lifetime,audience:C.audience,nameId:C.nameId,nameIdentifierFormat:C.nameIdentifierFormat,tokenEndpoint:C.tokenEndpoint})}:{},V=y.mode===`offset`,H=b?.token??null,U=null,re=null,G=[],q=[],ie=[],J=o,Y=b?.position??0,ae=!0,X=!0,oe=!0;do{ae?ae=!1:V||(Y=0),H===null?V&&(y.in===`query`?j.query[y.key]=Y.toString():y.in===`body`&&(Array.isArray(j.body)||(j.body[y.key]=Y))):y.in===`query`?D(H)?Object.entries(H).forEach(([e,t])=>{j.query[`${y.key}[${e}]`]=t?.toString()??``}):j.query[y.key]=H.toString():y.in===`body`&&(Array.isArray(j.body)||(j.body[y.key]=H));let t;try{t=await n.performRequest({httpClient:e.httpClient,url:`${h}${g}`,queryParams:{...j?.query},method:_,headers:{...N},body:Array.isArray(j?.body)?j.body:{...j?.body,...B},customErrorConfigs:x,requestConfig:z,httpsAgent:A})}catch(t){return buildStepErrorOutput(t,e)}U=H,q=v?.dataKey?ze(t.data,v.dataKey):t.data;let r=V?q?.slice(0,J):q?.slice(Y,Y+J);J-=r.length,Y+=r.length,ie.push(t),G=G.concat(r),re=t?.status,H=Be({result:t,response:v}),oe=k(y.condition)?L(y.condition,t.data)===!0:!0,!V&&r.length===q.length&&J===0&&(Y=0,U=H),X=!oe||E(H)&&G.length<o}while((V||k(H))&&oe&&G.length<o&&q?.length>0);return{block:e,successful:!0,output:{data:Ue(G,v),raw:ie,statusCode:re,next:X?void 0:U,position:X?void 0:Y}}},ze=e((e,t)=>{if(E(e)||typeof e!=`object`||!e)return e;let n=L(Re(t)?t:`$.${t}`,e);return n===void 0?e[t]:n},`resolveDataKey`),Be=e(({result:e,response:t})=>{if(E(t?.nextKey))return null;let n=t?.nextKeyIn??`data`,r=t?.nextKey;return n===`headers`?Ve(e.headers,r):He(e.data,r)},`resolveNextIterator`),Ve=e((e,t)=>{if(E(e)||typeof e!=`object`)return null;if(Re(t)){let n=L(t,e);return typeof n==`string`&&n!==``||typeof n==`number`?n:null}let n=t.toLowerCase(),[,r]=Object.entries(e).find(([e])=>e?.toLowerCase()===n)??[];if(Array.isArray(r)){let e=r.find(e=>typeof e==`string`&&e!==``||typeof e==`number`);return typeof e==`string`||typeof e==`number`?e:null}return typeof r==`string`&&r!==``||typeof r==`number`?r:null},`resolveFromHeaders`),He=e((e,t)=>{if(E(e)||typeof e!=`object`||!e)return null;let n=L(Re(t)?t:`$.${t}`,e);return E(n)?null:typeof n==`string`||typeof n==`number`||typeof n==`object`?n:null},`resolveFromData`),Ue=e((e,t)=>{if(t?.indexField&&Array.isArray(e))return e.reduce((e,n)=>{let r=t.indexField;return r&&n[r]&&(e[n[r]]=n),e},{});if(t?.indexField){let n=t.indexField;return n&&e[n]?{[e[n]]:e}:e}return e},`indexResponseData`),We=N.object({baseUrl:N.string().optional(),url:N.string(),method:N.enum(B),authorization:Z.optional(),certificates:xe,saml:P({objectKey:N.string(),key:N.string(),clientId:N.string(),cert:N.unknown().optional(),issuer:N.string().optional(),lifetime:N.number().optional(),nameId:N.string().optional(),audience:N.string().optional(),nameIdentifierFormat:N.string().optional(),tokenEndpoint:N.string().optional()}).optional(),response:P({collection:N.boolean().optional(),indexField:N.string().optional(),dataKey:N.string().optional()}).optional(),customErrors:z.array().optional(),args:P({name:N.string(),value:N.unknown(),in:N.enum(U),spread:N.boolean().optional(),condition:N.string().optional(),arrayFormat:N.enum(H).optional()}).array().optional()}),Ge=P({data:N.unknown().optional(),raw:N.unknown().optional(),statusCode:N.number(),message:N.string().optional()}).optional(),isJexlExpression=e=>{let t=e.trim();return t.startsWith(`{{`)&&t.endsWith(`}}`)},requestStepFunction=async({block:e,params:t})=>{let n=te.build();if(!e.httpClient)throw Error(`HTTP client is not configured`);let{args:i}=t,a=i?i.filter(t=>!t.condition||F(t.condition,e)===!0).map(e=>({...e,condition:void 0})):void 0,o=t?.response?.dataKey,s=o&&isJexlExpression(o),c=t?R({...t,args:a},e):{},l={...c,customErrors:t?.customErrors,response:s?{...c?.response??{},dataKey:o}:c?.response},{baseUrl:u,url:d,method:f,response:p,authorization:m,certificates:h,customErrors:g,args:_,saml:v}=We.parse(l),y=c?.authentication?.[e.context.authenticationType]?.[e.context.environment],b=y?.authorization,x=h??y?.certificates,S=x?ne(x):void 0,C=_?K(_):{query:{},body:{},headers:{}},w=k(m)?m:Z.parse(b),T=W(w),E={...C?.headers??{},...T},D=e.connector?.rateLimit,O=e.connector?.concurrency,A=D!==void 0||O!==void 0?{rateLimit:D,concurrency:O}:void 0,ee=k(v)?{[v.objectKey]:await r({key:v.key,clientId:v.clientId,cert:v.cert,issuer:v.issuer,lifetime:v.lifetime,audience:v.audience,nameId:v.nameId,nameIdentifierFormat:v.nameIdentifierFormat,tokenEndpoint:v.tokenEndpoint})}:{},j=Array.isArray(C?.body)?C?.body:{...C?.body,...ee};if(w.type===`none`&&w.signing?.strategy){let t=w.signing,n=e.credentials??{};try{let e=re(t.strategy);if(!e)throw Error(`Signing strategy "${t.strategy}" is not registered`);let r=e({method:f,url:`${u}${d}`,headers:E,query:C?.query??{},body:j},n,t);Object.assign(E,r)}catch(t){return buildStepErrorOutput(t,e)}}let M;try{M=await n.performRequest({httpClient:e.httpClient,url:`${u}${d}`,queryParams:C?.query,method:f,headers:E,body:j,customErrorConfigs:g,requestConfig:A,httpsAgent:S})}catch(t){return buildStepErrorOutput(t,e)}return{block:e,successful:!0,output:{data:Ke(p?.dataKey?resolveDataKey(M.data,p.dataKey):M.data,p),raw:M,statusCode:M?.status,message:M?.message}}},resolveDataKey=(e,t)=>{if(E(e)||typeof e!=`object`||!e)return e;let n=L(isJexlExpression(t)?t:`$.${t}`,e);return n===void 0?e[t]:n},Ke=e((e,t)=>{if(t?.collection&&t?.indexField&&Array.isArray(e))return e.reduce((e,n)=>{let r=t.indexField;return r&&n[r]&&(e[n[r]]=n),e},{});if(!t?.collection&&t?.indexField){let n=t.indexField;return n&&e[n]?{[e[n]]:e}:e}return e},`indexResponseData`),qe=N.object({baseUrl:N.string().optional(),url:N.string(),method:N.enum(B),authorization:N.discriminatedUnion(`type`,[P({type:N.literal(`none`)}),P({type:N.literal(`basic`),username:N.string().optional(),password:N.string().optional(),encoding:N.string().optional()}),P({type:N.literal(`bearer`),token:N.string(),includeBearer:N.boolean().optional().default(!0)}),P({type:N.literal(`oauth2`),token:N.string(),includeBearer:N.boolean().optional().default(!0)})]).optional(),envelope:N.union([N.string(),N.record(N.string(),N.unknown())]).optional(),namespaces:N.strictObject({namespaceIdentifier:N.string(),namespace:N.string()}).array().optional(),soapOperation:N.string().optional(),soapAction:N.string().optional(),useSoapContext:N.boolean().optional().default(!0),response:P({collection:N.boolean().optional(),indexField:N.string().optional(),dataKey:N.string().optional(),nextKey:N.string().optional(),nextKeyIn:N.enum([`data`,`headers`]).optional()}).optional(),iterator:P({key:N.string(),in:N.enum(U)}),cursor:P({token:N.string().optional().nullable(),position:N.number().optional().nullable()}).optional(),customErrors:z.array().optional(),args:P({name:N.string(),value:N.unknown(),in:N.enum(U),condition:N.string().optional(),arrayFormat:N.enum(H).optional()}).array().optional()}),Je=P({data:N.unknown().optional(),raw:N.unknown().optional(),statusCode:N.number(),message:N.string().optional(),next:N.string().optional().nullable(),position:N.number().optional()}).optional(),soapPaginatedRequestStepFunction=async({block:e,params:t})=>{let n=te.build(`soap`);if(!e.httpClient)throw Error(`HTTP client is not configured`);let{args:r}=t,i=Number(e.inputs?.page_size),a=Number.isNaN(i)?25:i,o=r?r.filter(t=>!t.condition||F(t.condition,e)===!0).map(e=>({...e,condition:void 0})):void 0,s=t?R({...t,args:o},e):{},c={...s,customErrors:t?.customErrors},{baseUrl:l,url:u,method:d,response:f,iterator:p,cursor:m,authorization:h,customErrors:g,args:_,soapOperation:v,namespaces:y,envelope:b,soapAction:x,useSoapContext:S}=qe.parse(c),C=s?.authentication?.[e.context.authenticationType]?.[e.context.environment]?.authorization,w=_?K(_):{query:{},body:{},headers:{}},T=W(k(h)?h:Z.parse(C)),D={...w?.headers??{},...T},O=e.connector?.rateLimit,A=e.connector?.concurrency,ee={...(O!==void 0||A!==void 0)&&{rateLimit:O,concurrency:A},soapOperation:v,namespaces:y,envelope:b,soapAction:x,soapContext:S?{username:e.credentials?.username,password:e.credentials?.password}:void 0},j=m?.token??null,M=null,N=null,P=[],I=[],L=[],z=a,B=m?.position??0,V=!0,H;do{V?V=!1:B=0,j!==null&&(p.in===`query`?w.query[p.key]=j.toString():p.in===`body`&&(w.body[p.key]=j));let t;try{t=await n.performRequest({httpClient:e.httpClient,url:`${l}${u}`,queryParams:w?.query,method:d,headers:D,body:w?.body,customErrorConfigs:g,requestConfig:ee})}catch(t){return buildStepErrorOutput(t,e)}M=j,I=f?.dataKey?t.data[f?.dataKey]:t.data,Array.isArray(I)||(I=I?[I]:[]);let r=I?.slice(B,B+z);z-=r.length,B+=r.length,L.push(t),P=P.concat(r),N=t?.status,j=resolveNextIterator({result:t,response:f}),r.length===I.length&&z===0&&(B=0,M=j),H=E(j)&&P.length<a}while(k(j)&&P.length<a&&I?.length>0);return{block:e,successful:!0,output:{data:Ye(P,f),raw:L,statusCode:N,next:H?void 0:M,position:H?void 0:B}}},resolveNextIterator=({result:e,response:t})=>{if(E(t?.nextKey))return null;let n=t?.nextKeyIn??`data`,r=t?.nextKey;return n===`headers`?resolveFromHeaders(e.headers,r):resolveFromData(e.data,r)},resolveFromHeaders=(e,t)=>{if(E(e)||typeof e!=`object`)return null;let n=t.toLowerCase(),[,r]=Object.entries(e).find(([e])=>e?.toLowerCase()===n)??[];if(Array.isArray(r)){let e=r.find(e=>typeof e==`string`&&e!==``||typeof e==`number`);return typeof e==`string`||typeof e==`number`?e:null}return typeof r==`string`&&r!==``||typeof r==`number`?r:null},resolveFromData=(e,t)=>{if(E(e)||typeof e!=`object`||!e)return null;let n=e[t];return E(n)?null:typeof n==`string`||typeof n==`number`?n:null},Ye=e((e,t)=>{if(t?.indexField&&Array.isArray(e))return e.reduce((e,n)=>{let r=t.indexField;return r&&n[r]&&(e[n[r]]=n),e},{});if(t?.indexField){let n=t.indexField;return n&&e[n]?{[e[n]]:e}:e}return e},`indexResponseData`),Xe=N.object({baseUrl:N.string().optional(),url:N.string(),method:N.enum(B),authorization:Z.optional(),envelope:N.union([N.string(),N.record(N.string(),N.unknown())]).optional(),namespaces:N.strictObject({namespaceIdentifier:N.string(),namespace:N.string()}).array().optional(),soapOperation:N.string().optional(),soapAction:N.string().optional(),useSoapContext:N.boolean().optional().default(!0),response:P({collection:N.boolean().optional(),indexField:N.string().optional(),dataKey:N.string().optional()}).optional(),customErrors:z.array().optional(),args:P({name:N.string(),value:N.unknown(),in:N.enum(U),condition:N.string().optional(),arrayFormat:N.enum(H).optional()}).array().optional()}),Ze=P({data:N.unknown().optional(),raw:N.unknown().optional(),statusCode:N.number(),message:N.string().optional()}).optional(),soapRequestStepFunction=async({block:e,params:t})=>{let n=te.build(`soap`);if(!e.httpClient)throw Error(`HTTP client is not configured`);let{args:r}=t,i=r?r.filter(t=>!t.condition||F(t.condition,e)===!0).map(e=>({...e,condition:void 0})):void 0,a=t?R({...t,args:i},e):{},o={...a,customErrors:t?.customErrors},{baseUrl:s,url:c,method:l,response:u,authorization:d,customErrors:f,args:p,soapOperation:m,namespaces:h,envelope:g,soapAction:_,useSoapContext:v}=Xe.parse(o),y=a?.authentication?.[e.context.authenticationType]?.[e.context.environment]?.authorization,b=p?K(p):{query:{},body:{},headers:{}},x=W(k(d)?d:Z.parse(y)),S={...b?.headers??{},...x},C=e.connector?.rateLimit,w=e.connector?.concurrency,T={...(C!==void 0||w!==void 0)&&{rateLimit:C,concurrency:w},soapOperation:m,namespaces:h,envelope:g,soapAction:_,soapContext:v?{username:e.credentials?.username,password:e.credentials?.password}:void 0},E;try{E=await n.performRequest({httpClient:e.httpClient,url:`${s}${c}`,queryParams:b?.query,method:l,headers:S,body:b?.body,customErrorConfigs:f,requestConfig:T})}catch(t){return buildStepErrorOutput(t,e)}return{block:e,successful:!0,output:{data:Qe(u?.dataKey?E.data[u?.dataKey]:E.data,u),raw:E,statusCode:E?.status,message:E?.message}}},Qe=e((e,t)=>{if(t?.collection&&t?.indexField&&Array.isArray(e))return e.reduce((e,n)=>{let r=t.indexField;return r&&n[r]&&(e[n[r]]=n),e},{});if(!t?.collection&&t?.indexField){let n=t.indexField;return n&&e[n]?{[e[n]]:e}:e}return e},`indexResponseData`),$e=N.object({values:N.string().or(N.record(N.string(),N.unknown())).or(N.array(N.unknown()))}),et=N.object({data:N.unknown()}),staticValuesStepFunction=async({block:e,params:t})=>{let{values:n}=$e.parse(t),r=Array.isArray(n)?n.map(t=>evaluateValue(t,e)):evaluateValue(n,e);return{block:{...e},successful:!0,output:{data:r}}},evaluateValue=(e,t)=>O(e)?L(e,t):D(e)?R(e,t):e,tt=N.object({targetFieldKey:N.string(),type:N.enum([`string`,`number`,`boolean`,`datetime_string`,`enum`,`object`]),array:N.boolean().default(!1),custom:N.boolean().default(!1),hidden:N.boolean().default(!1),properties:N.lazy(()=>tt).array().optional(),requiredScopes:N.string().array().optional()}),nt=N.object({fields:tt.array().optional(),dataSource:N.string()}),rt=N.object({data:N.unknown()});let it=function(e){return e.String=`string`,e.Number=`number`,e.Boolean=`boolean`,e.DateTimeString=`datetime_string`,e}({});const typecast=({value:e,type:t,format:n})=>{if(E(e))return null;switch(t){case it.String:return M({value:e});case it.Number:return j({value:e});case it.Boolean:return A({value:e});case it.DateTimeString:return ee({value:e,format:n});default:return e}},isFieldSupportedType=e=>Object.values(it).includes(e),at=e(async({block:e})=>{let t=e?.fieldConfigs;if(!t||e?.debug?.custom_mappings===`disabled`)return{block:e,successful:!0};let n;return n=Array.isArray(e.result)?e.result.map(e=>ot(e,t)):ot(e.result,t),{block:{...e,result:n},successful:!0}},`typecastStepFunction`),ot=e((e,t)=>{let n={...e};return t.forEach(t=>{let{targetFieldKey:r,type:i}=t;isFieldSupportedType(i)&&(!t.custom&&k(n[r])?n[r]=typecast({value:e[r],type:i}):n.unified_custom_fields&&k(n.unified_custom_fields?.[r])&&(n.unified_custom_fields[r]=typecast({value:e.unified_custom_fields?.[r],type:i})))}),{...n}},`mapSingleRecord`),typecastStepFunction=async({block:e,params:t})=>{let{fields:n,dataSource:r}=nt.parse(t),i=F(r,e);if(!n||e?.debug?.custom_mappings===`disabled`)return{block:e,successful:!0};let a;return a=Array.isArray(i)?i.map(e=>mapSingleRecord(e,n)):mapSingleRecord(i,n),{block:{...e},successful:!0,output:{data:a}}},handleObjectField=(e,t)=>!e.properties||!t?t:Array.isArray(t)?t.map(t=>typeof t==`object`&&t?mapSingleRecord(t,e.properties):t):typeof t==`object`&&t?mapSingleRecord(t,e.properties):t,mapSingleRecord=(e,t)=>{let n={...e};return t.forEach(t=>{let{targetFieldKey:r,type:i,array:a}=t;i===`object`?!t.custom&&k(n[r])?n[r]=handleObjectField(t,e[r]):n.unified_custom_fields&&k(n.unified_custom_fields?.[r])&&(n.unified_custom_fields[r]=handleObjectField(t,e.unified_custom_fields?.[r])):isFieldSupportedType(i)&&(!t.custom&&k(n[r])?(!a||!Array.isArray(n[r]))&&(n[r]=typecast({value:e[r],type:i})):n.unified_custom_fields&&k(n.unified_custom_fields?.[r])&&(!a||!Array.isArray(n.unified_custom_fields[r]))&&(n.unified_custom_fields[r]=typecast({value:e.unified_custom_fields?.[r],type:i})))}),{...n}},st=P({content:N.string().describe(`The file content as base64 encoded string`),contentType:N.string().optional().describe(`The MIME type for the binary content (defaults to application/octet-stream)`)}),ct=N.object({baseUrl:N.string().optional(),url:N.string(),method:N.enum(B).default(`post`),authorization:Z.optional(),binaryContent:st.describe(`Raw binary content for octet-stream uploads`),response:P({collection:N.boolean().optional(),indexField:N.string().optional(),dataKey:N.string().optional()}).optional(),customErrors:z.array().optional(),args:P({name:N.string(),value:N.unknown(),in:N.enum(U),spread:N.boolean().optional(),condition:N.string().optional(),arrayFormat:N.enum(H).optional()}).array().optional().describe(`Additional request parameters (query params, headers)`)}),lt=P({data:N.unknown().optional(),raw:N.unknown().optional(),statusCode:N.number(),message:N.string().optional()}).optional(),uploadBinaryStepFunction=async({block:e,params:t})=>{if(!e.httpClient)throw Error(`HTTP client is not configured`);let{args:n}=t,r=n?n.filter(t=>!t.condition||F(t.condition,e)===!0).map(e=>({...e,condition:void 0})):void 0,i=t?R({...t,args:r},e):{},a={...i,customErrors:t?.customErrors},{baseUrl:o,url:s,method:c,response:l,authorization:u,binaryContent:d,args:f,customErrors:p}=ct.parse(a),m=i?.authentication?.[e.context.authenticationType]?.[e.context.environment]?.authorization,h=f?K(f):{query:{},body:{},headers:{}},g=W(k(u)?u:Z.parse(m)),_=Buffer.from(d.content,`base64`),v={"content-type":d.contentType??`application/octet-stream`,...h?.headers??{},...g},y=e.connector?.rateLimit,b=e.connector?.concurrency,x=y!==void 0||b!==void 0?{rateLimit:y,concurrency:b}:void 0,S;try{S=await e.httpClient.request({url:`${o??``}${s}`,method:c,headers:v,queryParams:h?.query,payload:_,requestConfig:x})}catch(t){let n=t;return{block:e,successful:!1,errors:[q(t)],output:{statusCode:n?.response?.status??500,message:n?.response?.message}}}let C=ie(S,p);return G(C?.status)?{block:e,successful:!1,errors:[q(new V(C,C.message))],output:{statusCode:C.status,message:C.message}}:{block:e,successful:!0,output:{data:ut(l?.dataKey?C.data[l?.dataKey]:C.data,l),raw:C,statusCode:C?.status,message:C?.message}}},ut=e((e,t)=>{if(t?.collection&&t?.indexField&&Array.isArray(e))return e.reduce((e,n)=>{let r=t.indexField;return r&&n[r]&&(e[n[r]]=n),e},{});if(!t?.collection&&t?.indexField){let n=t.indexField;return n&&e[n]?{[e[n]]:e}:e}return e},`indexResponseData`),dt=P({fieldName:N.string().describe(`The form field name for the file`),content:N.string().describe(`The file content as base64 encoded string`),filename:N.string().describe(`The filename to use in the upload`),contentType:N.string().optional().describe(`The MIME type of the file (e.g., "image/png", "application/pdf")`)}),ft=N.object({baseUrl:N.string().optional(),url:N.string(),method:N.enum(B).default(`post`),authorization:Z.optional(),file:dt.describe(`The file to upload`),additionalFields:P({name:N.string(),value:N.unknown(),condition:N.string().optional(),contentType:N.string().optional().describe(`The MIME type for this form field (e.g., "application/json")`)}).array().optional().describe(`Additional form fields to include in the multipart request`),response:P({collection:N.boolean().optional(),indexField:N.string().optional(),dataKey:N.string().optional()}).optional(),customErrors:z.array().optional(),args:P({name:N.string(),value:N.unknown(),in:N.enum(U),spread:N.boolean().optional(),condition:N.string().optional(),arrayFormat:N.enum(H).optional()}).array().optional().describe(`Additional request parameters (query params, headers)`)}),pt=P({data:N.unknown().optional(),raw:N.unknown().optional(),statusCode:N.number(),message:N.string().optional()}).optional(),uploadFileStepFunction=async({block:e,params:t})=>{if(!e.httpClient)throw Error(`HTTP client is not configured`);let{args:n,additionalFields:r}=t,i=n?n.filter(t=>!t.condition||F(t.condition,e)===!0).map(e=>({...e,condition:void 0})):void 0,a=r?r.filter(t=>!t.condition||F(t.condition,e)===!0).map(e=>({...e,condition:void 0})):void 0,o=t?R({...t,args:i,additionalFields:a},e):{},s={...o,customErrors:t?.customErrors},{baseUrl:c,url:l,method:u,response:d,authorization:f,file:p,additionalFields:m,args:h,customErrors:g}=ft.parse(s),_=o?.authentication?.[e.context.authenticationType]?.[e.context.environment]?.authorization,v=h?K(h):{query:{},body:{},headers:{}},y=W(k(f)?f:Z.parse(_)),b=new Y;if(m)for(let e of m){let t=typeof e.value==`object`?JSON.stringify(e.value):String(e.value);b.append(e.name,t,e.contentType?{contentType:e.contentType}:void 0)}let x=Buffer.from(p.content,`base64`);b.append(p.fieldName,x,{filename:p.filename,contentType:p.contentType});let S={...b.getHeaders(),...v?.headers??{},...y},C=e.connector?.rateLimit,w=e.connector?.concurrency,T=C!==void 0||w!==void 0?{rateLimit:C,concurrency:w}:void 0,E;try{E=await e.httpClient.request({url:`${c??``}${l}`,method:u,headers:S,queryParams:v?.query,payload:b,requestConfig:T})}catch(t){return buildStepErrorOutput(t,e)}let D=ie(E,g);return G(D?.status)?buildStepErrorOutput(new V(D,D.message),e):{block:e,successful:!0,output:{data:indexResponseData(d?.dataKey?D.data[d?.dataKey]:D.data,d),raw:D,statusCode:D?.status,message:D?.message}}},indexResponseData=(e,t)=>{if(t?.collection&&t?.indexField&&Array.isArray(e))return e.reduce((e,n)=>{let r=t.indexField;return r&&n[r]&&(e[n[r]]=n),e},{});if(!t?.collection&&t?.indexField){let n=t.indexField;return n&&e[n]?{[e[n]]:e}:e}return e};let $=function(e){return e.TYPECAST=`typecast`,e.MAP_FIELDS=`map_fields`,e.GROUP_DATA=`group_data`,e.REQUEST=`request`,e.PAGINATED_REQUEST=`paginated_request`,e.SOAP_REQUEST=`soap_request`,e.SOAP_PAGINATED_REQUEST=`soap_paginated_request`,e.STATIC_VALUES=`static_values`,e.UPLOAD_FILE=`upload_file`,e.UPLOAD_BINARY=`upload_binary`,e.DOWNLOAD_FILE=`download_file`,e.EMIT_EVENT=`emit_event`,e}({});const mt={[$.TYPECAST]:{v1:{fn:at},v2:{fn:typecastStepFunction,inputSchema:nt,outputSchema:rt}},[$.MAP_FIELDS]:{v1:{fn:Oe},v2:{fn:mapFieldsStepFunction,inputSchema:Me,outputSchema:Ne}},[$.REQUEST]:{v1:{fn:requestStepFunction,inputSchema:We,outputSchema:Ge}},[$.GROUP_DATA]:{v1:{fn:groupDataStepFunction,inputSchema:Ee,outputSchema:De}},[$.PAGINATED_REQUEST]:{v1:{fn:paginatedRequestStepFunction,inputSchema:Ie,outputSchema:Le}},[$.SOAP_REQUEST]:{v1:{fn:soapRequestStepFunction,inputSchema:Xe,outputSchema:Ze}},[$.SOAP_PAGINATED_REQUEST]:{v1:{fn:soapPaginatedRequestStepFunction,inputSchema:qe,outputSchema:Je}},[$.STATIC_VALUES]:{v1:{fn:staticValuesStepFunction,inputSchema:$e,outputSchema:et}},[$.UPLOAD_FILE]:{v1:{fn:uploadFileStepFunction,inputSchema:ft,outputSchema:pt}},[$.UPLOAD_BINARY]:{v1:{fn:uploadBinaryStepFunction,inputSchema:ct,outputSchema:lt}},[$.DOWNLOAD_FILE]:{v1:{fn:downloadFileStepFunction,inputSchema:Se,outputSchema:Ce}},[$.EMIT_EVENT]:{v1:{fn:emitEventStepFunction,inputSchema:we,outputSchema:Te}}},formatZodIssues=(e,t,n)=>e instanceof N.ZodError?e.issues.map(e=>({...e,kind:t,functionName:n})):[{kind:t,functionName:n,message:e?.message??`unknown error`}],stepFunctionEnhancedWithSchemasValidation=(e,t)=>async({block:n,params:r})=>{try{e.inputSchema&&e.inputSchema.parse(r)}catch(e){return{block:n,successful:!1,errors:formatZodIssues(e,`input_schema_validation`,t)}}let i=await e.fn({block:n,params:r});try{e.outputSchema&&e.outputSchema.parse(i.output)}catch(e){return{block:n,successful:!1,errors:formatZodIssues(e,`output_schema_validation`,t)}}return i},ht={build({functionName:e,version:t=`1`,validateSchemas:n=!1,stepFunctionsList:r=mt}){let i=r?.[e]?.[`v${t}`];if(!i)throw Error(`Unknown step function: ${e} v${t}`);return n?{...i,fn:stepFunctionEnhancedWithSchemasValidation(i,e)}:i}},isForeachStep=e=>`iterator`in e&&typeof e.iterator==`string`;export{Z as AUTHORIZATION_SCHEMA,ce as COMPOSITE_ID_LATEST_VERSION,le as CoreError,ue as INPUT_ENUM_REGISTRY,de as ReleaseStages,$ as StepFunctionName,ht as StepFunctionsFactory,mt as StepFunctionsRegistry,areCursorsEqual,decodeCompositeId,encodeCompositeId,evaluateEventRouter,evaluateExternalAccountIdExtractor,expandCursor,getCategoryDetails,getInputEnumValues,isCompositeId,isCoreError,isCursorEmpty,isForeachStep,isValidCategory,isValidEnumRef,minifyCursor,updateCursor};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stackone/core",
3
- "version": "2.46.0",
3
+ "version": "2.48.0",
4
4
  "description": "",
5
5
  "main": "dist/index.cjs",
6
6
  "module": "dist/index.mjs",