@stackone/core 2.18.0 → 2.20.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 +1 -1
- package/dist/index.d.cts +3 -0
- package/dist/index.d.mts +3 -0
- package/dist/index.mjs +1 -1
- package/package.json +1 -1
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),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,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=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()}),A=(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}=k.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){let n=t;return{block:e,successful:!1,errors:[(0,c.serializeHttpResponseError)(t)],output:{statusCode:n?.response?.status??500,message:n?.response?.message}}}},performStreamDownload=async e=>{let{block:t,httpClient:n,baseUrl:r,url:i,method:a,headers:o,queryParams:s,body:l,maxRedirects:u,requestConfig:d}=e,f=`${r}${i}`;if(!f.startsWith(`http://`)&&!f.startsWith(`https://`))throw Error(`Invalid URL: "${f}". 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:f,method:a,headers:o,queryParams:s,payload:l,maxRedirects:u,requestConfig:d}),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){let n=e;return{block:t,successful:!1,errors:[(0,c.serializeHttpResponseError)(e)],output:{statusCode:n?.response?.status??500,message:n?.response?.message}}}},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=e[`content-type`],n=e[`content-length`],r=e[`content-disposition`],i=e[`last-modified`],a=e.etag,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 l.default.extension(t)||void 0},j=o.z.object({stepsDataToGroup:o.z.array(o.z.string()),isSingleRecord:o.z.boolean().optional()}),M=o.z.object({data:o.z.unknown()}),groupDataStepFunction=async({block:e,params:t})=>{let{stepsDataToGroup:n,isSingleRecord:r}=j.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)}}},N=__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=P(e,t,extractSingleRecordBlockStepData(r,a,i));return n.push(...o.errors||[]),o.record})}else{let a=P(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},{}),P=__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}=F(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`),F=__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}},I=(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(()=>I).array().optional(),requiredScopes:o.z.string().array().optional()}),L=o.z.object({fields:I.array(),dataSource:o.z.string(),externalSources:o.z.record(o.z.string(),o.z.string()).optional()}),R=o.z.object({data:o.z.unknown()}),mapFieldsStepFunction=async({block:e,params:t})=>{let n=[],{fields:r,dataSource:i,externalSources:a}=L.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=B(r,{...e,external:c});return n.push(...t?.errors||[]),t?.record});else{let e=B(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=B(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=B(e.properties,t);return(0,o.notMissing)(r?.errors)&&n.push(...r.errors),r?.record}).filter(Boolean);{let t=B(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=B(e.properties,r);return(0,o.notMissing)(i?.errors)&&n.push(...i.errors),i?.record},z=__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`),B=__name((e,t)=>{if(!t)return;let n={},r=[],i={};for(let a of e){let e;if(a.type===`object`){if(e=z(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 V(n,t,e);case`enum`:return evaluateEnumValue(n,t,e);default:return{error:{message:`Invalid type`,id:t,targetField:n.targetFieldKey}}}},V=__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=V(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}}},H=[`data`,`headers`],U=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(H).optional()}).optional(),iterator:(0,o.zStrictObject)({key:o.z.string(),in:o.z.enum(c.RequestParameterLocations),condition:o.z.string().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()}),ee=(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(),te=25,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={...u,customErrors:t?.customErrors,iterator:{...u?.iterator??{},condition:t?.iterator?.condition}},{baseUrl:f,url:p,method:m,response:h,iterator:g,cursor:_,customErrors:v,args:y,saml:b}=U.parse(d),x=u?.authentication?.[e.context.authenticationType]?.[e.context.environment]?.authorization,S=O.parse(x),C=y?(0,c.parseRequestParameters)(y):{query:{},body:{},headers:{}},w=(0,c.createAuthorizationHeaders)(S),T={...C?.headers??{},...w},E=e.connector?.rateLimit,D=e.connector?.concurrency,k=E!==void 0||D!==void 0?{rateLimit:E,concurrency:D}:void 0,A=(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})}:{},j=_?.token??null,M=null,N=null,P=[],F=[],I=[],L=a,R=_?.position??0,z=!0,B=!0,V=!0;do{z?z=!1:R=0,j!==null&&(g.in===`query`?(0,o.isObject)(j)?Object.entries(j).forEach(([e,t])=>{C.query[`${g.key}[${e}]`]=t?.toString()??``}):C.query[g.key]=j.toString():g.in===`body`&&(Array.isArray(C.body)||(C.body[g.key]=j)));let t;try{t=await n.performRequest({httpClient:e.httpClient,url:`${f}${p}`,queryParams:{...C?.query},method:m,headers:{...T},body:Array.isArray(C?.body)?C.body:{...C?.body,...A},customErrorConfigs:v,requestConfig:k})}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}}}M=j,F=h?.dataKey?t.data[h?.dataKey]:t.data;let r=F?.slice(R,R+L);L-=r.length,R+=r.length,I.push(t),P=P.concat(r),N=t?.status,j=ne({result:t,response:h}),V=(0,o.notMissing)(g.condition)?(0,s.safeEvaluate)(g.condition,t.data)===!0:!0,r.length===F.length&&L===0&&(R=0,M=j),B=(0,o.isMissing)(j)&&P.length<a}while((0,o.notMissing)(j)&&V&&P.length<a&&F?.length>0);return{block:e,successful:!0,output:{data:ae(P,h),raw:I,statusCode:N,next:B?void 0:M,position:B?void 0:R}}},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;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)(`$.${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`),W=o.z.object({baseUrl:o.z.string().optional(),url:o.z.string(),method:o.z.enum(c.HttpMethods),authorization:O.optional(),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()}),oe=(0,o.zStrictObject)({data:o.z.unknown().optional(),raw:o.z.unknown().optional(),statusCode:o.z.number(),message:o.z.string().optional()}).optional(),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?(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,saml:_}=W.parse(l),v=a?.authentication?.[e.context.authenticationType]?.[e.context.environment]?.authorization,y=g?(0,c.parseRequestParameters)(g):{query:{},body:{},headers:{}},b=(0,c.createAuthorizationHeaders)((0,o.notMissing)(m)?m:O.parse(v)),x={...y?.headers??{},...b},S=e.connector?.rateLimit,C=e.connector?.concurrency,w=S!==void 0||C!==void 0?{rateLimit:S,concurrency:C}:void 0,T=(0,o.notMissing)(_)?{[_.objectKey]:await(0,o.generateSamlAssertion)({key:_.key,clientId:_.clientId,cert:_.cert,issuer:_.issuer,lifetime:_.lifetime,audience:_.audience,nameId:_.nameId,nameIdentifierFormat:_.nameIdentifierFormat,tokenEndpoint:_.tokenEndpoint})}:{},E;try{E=await n.performRequest({httpClient:e.httpClient,url:`${u}${d}`,queryParams:y?.query,method:f,headers:x,body:Array.isArray(y?.body)?y?.body:{...y?.body,...T},customErrorConfigs:h,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}}}return{block:e,successful:!0,output:{data:se(p?.dataKey?E.data[p?.dataKey]:E.data,p),raw:E,statusCode:E?.status,message:E?.message}}},se=__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`),ce=[`data`,`headers`],G=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(ce).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()}),le=(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(),ue=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}=G.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){let n=t;return{block:e,successful:!1,errors:[(0,c.serializeHttpResponseError)(t)],output:{statusCode:n?.response?.status??500,message:n?.response?.message}}}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:de(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},de=__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`),K=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}=K.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){let n=t;return{block:e,successful:!1,errors:[(0,c.serializeHttpResponseError)(t)],output:{statusCode:n?.response?.status??500,message:n?.response?.message}}}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`),q=o.z.object({values:o.z.string().or(o.z.record(o.z.string(),o.z.unknown())).or(o.z.array(o.z.unknown()))}),me=o.z.object({data:o.z.unknown()}),staticValuesStepFunction=async({block:e,params:t})=>{let{values:n}=q.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,J=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(()=>J).array().optional(),requiredScopes:o.z.string().array().optional()}),Y=o.z.object({fields:J.array().optional(),dataSource:o.z.string()}),he=o.z.object({data:o.z.unknown()});let X=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 X.String:return(0,o.safeParseToString)({value:e});case X.Number:return(0,o.safeParseToNumber)({value:e});case X.Boolean:return(0,o.safeParseToBoolean)({value:e});case X.DateTimeString:return(0,o.safeParseToDateTimeString)({value:e,format:n});default:return e}},isFieldSupportedType=e=>Object.values(X).includes(e),ge=__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=>Z(e,t)):Z(e.result,t),{block:{...e,result:n},successful:!0}},`typecastStepFunction`),Z=__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}=Y.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}},_e=(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")`)}),Q=o.z.object({baseUrl:o.z.string().optional(),url:o.z.string(),method:o.z.enum(c.HttpMethods).default(`post`),authorization:O.optional(),file:_e.describe(`The file to upload`),additionalFields:(0,o.zStrictObject)({name:o.z.string(),value:o.z.unknown()}).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)`)}),ve=(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}=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:d,method:f,response:p,authorization:m,file:h,additionalFields:g,args:_,customErrors:v}=Q.parse(a),y=i?.authentication?.[e.context.authenticationType]?.[e.context.environment]?.authorization,b=_?(0,c.parseRequestParameters)(_):{query:{},body:{},headers:{}},x=(0,c.createAuthorizationHeaders)((0,o.notMissing)(m)?m:O.parse(y)),S=new u.default,C=Buffer.from(h.content,`base64`);if(S.append(h.fieldName,C,{filename:h.filename,contentType:h.contentType}),g)for(let e of g){let t=typeof e.value==`object`?JSON.stringify(e.value):String(e.value);S.append(e.name,t)}let w={...S.getHeaders(),...b?.headers??{},...x},T=e.connector?.rateLimit,E=e.connector?.concurrency,D=T!==void 0||E!==void 0?{rateLimit:T,concurrency:E}:void 0,k;try{k=await e.httpClient.request({url:`${l??``}${d}`,method:f,headers:w,queryParams:b?.query,payload:S,requestConfig:D})}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 A=(0,c.translateCustomError)(k,v);return(0,c.isFailedStatusCode)(A?.status)?{block:e,successful:!1,errors:[(0,c.serializeHttpResponseError)(new c.HttpResponseError(A,A.message))],output:{statusCode:A.status,message:A.message}}:{block:e,successful:!0,output:{data:indexResponseData(p?.dataKey?A.data[p?.dataKey]:A.data,p),raw:A,statusCode:A?.status,message:A?.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.DOWNLOAD_FILE=`download_file`,e}({});const ye={[$.TYPECAST]:{v1:{fn:ge},v2:{fn:typecastStepFunction,inputSchema:Y,outputSchema:he}},[$.MAP_FIELDS]:{v1:{fn:N},v2:{fn:mapFieldsStepFunction,inputSchema:L,outputSchema:R}},[$.REQUEST]:{v1:{fn:requestStepFunction,inputSchema:W,outputSchema:oe}},[$.GROUP_DATA]:{v1:{fn:groupDataStepFunction,inputSchema:j,outputSchema:M}},[$.PAGINATED_REQUEST]:{v1:{fn:paginatedRequestStepFunction,inputSchema:U,outputSchema:ee}},[$.SOAP_REQUEST]:{v1:{fn:soapRequestStepFunction,inputSchema:K,outputSchema:fe}},[$.SOAP_PAGINATED_REQUEST]:{v1:{fn:soapPaginatedRequestStepFunction,inputSchema:G,outputSchema:le}},[$.STATIC_VALUES]:{v1:{fn:staticValuesStepFunction,inputSchema:q,outputSchema:me}},[$.UPLOAD_FILE]:{v1:{fn:uploadFileStepFunction,inputSchema:Q,outputSchema:ve}},[$.DOWNLOAD_FILE]:{v1:{fn:downloadFileStepFunction,inputSchema:k,outputSchema:A}}},stepFunctionEnhancedWithSchemasValidation=(e,t)=>async({block:n,params:r})=>{try{e.inputSchema&&e.inputSchema.parse(r)}catch(e){return{block:n,successful:!1,errors:[{message:`Input parameters for ${t} are invalid: ${e?.message}`}]}}let i=await e.fn({block:n,params:r});try{e.outputSchema&&e.outputSchema.parse(i.output)}catch{return{block:n,successful:!1,errors:[{message:`Output data of ${t} has unexpected format`}]}}return i},be={build({functionName:e,version:t=`1`,validateSchemas:n=!1,stepFunctionsList:r=ye}){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=be,exports.StepFunctionsRegistry=ye,exports.areCursorsEqual=areCursorsEqual,exports.decodeCompositeId=decodeCompositeId,exports.encodeCompositeId=encodeCompositeId,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),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,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=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()}),A=(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}=k.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){let n=t;return{block:e,successful:!1,errors:[(0,c.serializeHttpResponseError)(t)],output:{statusCode:n?.response?.status??500,message:n?.response?.message}}}},performStreamDownload=async e=>{let{block:t,httpClient:n,baseUrl:r,url:i,method:a,headers:o,queryParams:s,body:l,maxRedirects:u,requestConfig:d}=e,f=`${r}${i}`;if(!f.startsWith(`http://`)&&!f.startsWith(`https://`))throw Error(`Invalid URL: "${f}". 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:f,method:a,headers:o,queryParams:s,payload:l,maxRedirects:u,requestConfig:d}),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){let n=e;return{block:t,successful:!1,errors:[(0,c.serializeHttpResponseError)(e)],output:{statusCode:n?.response?.status??500,message:n?.response?.message}}}},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=e[`content-type`],n=e[`content-length`],r=e[`content-disposition`],i=e[`last-modified`],a=e.etag,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 l.default.extension(t)||void 0},j=o.z.object({stepsDataToGroup:o.z.array(o.z.string()),isSingleRecord:o.z.boolean().optional()}),M=o.z.object({data:o.z.unknown()}),groupDataStepFunction=async({block:e,params:t})=>{let{stepsDataToGroup:n,isSingleRecord:r}=j.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)}}},N=__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=P(e,t,extractSingleRecordBlockStepData(r,a,i));return n.push(...o.errors||[]),o.record})}else{let a=P(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},{}),P=__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}=F(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`),F=__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}},I=(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(()=>I).array().optional(),requiredScopes:o.z.string().array().optional()}),L=o.z.object({fields:I.array(),dataSource:o.z.string(),externalSources:o.z.record(o.z.string(),o.z.string()).optional()}),R=o.z.object({data:o.z.unknown()}),mapFieldsStepFunction=async({block:e,params:t})=>{let n=[],{fields:r,dataSource:i,externalSources:a}=L.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=B(r,{...e,external:c});return n.push(...t?.errors||[]),t?.record});else{let e=B(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=B(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=B(e.properties,t);return(0,o.notMissing)(r?.errors)&&n.push(...r.errors),r?.record}).filter(Boolean);{let t=B(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=B(e.properties,r);return(0,o.notMissing)(i?.errors)&&n.push(...i.errors),i?.record},z=__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`),B=__name((e,t)=>{if(!t)return;let n={},r=[],i={};for(let a of e){let e;if(a.type===`object`){if(e=z(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 V(n,t,e);case`enum`:return evaluateEnumValue(n,t,e);default:return{error:{message:`Invalid type`,id:t,targetField:n.targetFieldKey}}}},V=__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=V(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}}},H=[`data`,`headers`],U=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(H).optional()}).optional(),iterator:(0,o.zStrictObject)({key:o.z.string(),in:o.z.enum(c.RequestParameterLocations),condition:o.z.string().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()}),W=(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(),ee=25,isJexlExpression=e=>{let t=e.trim();return t.startsWith(`{{`)&&t.endsWith(`}}`)},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&&isJexlExpression(d),p={...u,customErrors:t?.customErrors,iterator:{...u?.iterator??{},condition:t?.iterator?.condition},response:f?{...u?.response??{},nextKey:d}:u?.response},{baseUrl:m,url:h,method:g,response:_,iterator:v,cursor:y,customErrors:b,args:x,saml:S}=U.parse(p),C=u?.authentication?.[e.context.authenticationType]?.[e.context.environment]?.authorization,w=O.parse(C),T=x?(0,c.parseRequestParameters)(x):{query:{},body:{},headers:{}},E=(0,c.createAuthorizationHeaders)(w),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)(S)?{[S.objectKey]:await(0,o.generateSamlAssertion)({key:S.key,clientId:S.clientId,cert:S.cert,issuer:S.issuer,lifetime:S.lifetime,audience:S.audience,nameId:S.nameId,nameIdentifierFormat:S.nameIdentifierFormat,tokenEndpoint:S.tokenEndpoint})}:{},N=y?.token??null,P=null,F=null,I=[],L=[],R=[],z=a,B=y?.position??0,V=!0,H=!0,W=!0;do{V?V=!1:B=0,N!==null&&(v.in===`query`?(0,o.isObject)(N)?Object.entries(N).forEach(([e,t])=>{T.query[`${v.key}[${e}]`]=t?.toString()??``}):T.query[v.key]=N.toString():v.in===`body`&&(Array.isArray(T.body)||(T.body[v.key]=N)));let t;try{t=await n.performRequest({httpClient:e.httpClient,url:`${m}${h}`,queryParams:{...T?.query},method:g,headers:{...D},body:Array.isArray(T?.body)?T.body:{...T?.body,...M},customErrorConfigs:b,requestConfig:j})}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}}}P=N,L=_?.dataKey?t.data[_?.dataKey]:t.data;let r=L?.slice(B,B+z);z-=r.length,B+=r.length,R.push(t),I=I.concat(r),F=t?.status,N=te({result:t,response:_}),W=(0,o.notMissing)(v.condition)?(0,s.safeEvaluate)(v.condition,t.data)===!0:!0,r.length===L.length&&z===0&&(B=0,P=N),H=(0,o.isMissing)(N)&&I.length<a}while((0,o.notMissing)(N)&&W&&I.length<a&&L?.length>0);return{block:e,successful:!0,output:{data:ie(I,_),raw:R,statusCode:F,next:H?void 0:P,position:H?void 0:B}}},te=__name(({result:e,response:t})=>{if((0,o.isMissing)(t?.nextKey))return null;let n=t?.nextKeyIn??`data`,r=t?.nextKey;return n===`headers`?ne(e.headers,r):re(e.data,r)},`resolveNextIterator`),ne=__name((e,t)=>{if((0,o.isMissing)(e)||typeof e!=`object`)return null;if(isJexlExpression(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`),re=__name((e,t)=>{if((0,o.isMissing)(e)||typeof e!=`object`||!e)return null;let n=(0,s.safeEvaluate)(isJexlExpression(t)?t:`$.${t}`,e);return(0,o.isMissing)(n)?null:typeof n==`string`||typeof n==`number`||typeof n==`object`?n:null},`resolveFromData`),ie=__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`),G=o.z.object({baseUrl:o.z.string().optional(),url:o.z.string(),method:o.z.enum(c.HttpMethods),authorization:O.optional(),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()}),ae=(0,o.zStrictObject)({data:o.z.unknown().optional(),raw:o.z.unknown().optional(),statusCode:o.z.number(),message:o.z.string().optional()}).optional(),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?(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,saml:_}=G.parse(l),v=a?.authentication?.[e.context.authenticationType]?.[e.context.environment]?.authorization,y=g?(0,c.parseRequestParameters)(g):{query:{},body:{},headers:{}},b=(0,c.createAuthorizationHeaders)((0,o.notMissing)(m)?m:O.parse(v)),x={...y?.headers??{},...b},S=e.connector?.rateLimit,C=e.connector?.concurrency,w=S!==void 0||C!==void 0?{rateLimit:S,concurrency:C}:void 0,T=(0,o.notMissing)(_)?{[_.objectKey]:await(0,o.generateSamlAssertion)({key:_.key,clientId:_.clientId,cert:_.cert,issuer:_.issuer,lifetime:_.lifetime,audience:_.audience,nameId:_.nameId,nameIdentifierFormat:_.nameIdentifierFormat,tokenEndpoint:_.tokenEndpoint})}:{},E;try{E=await n.performRequest({httpClient:e.httpClient,url:`${u}${d}`,queryParams:y?.query,method:f,headers:x,body:Array.isArray(y?.body)?y?.body:{...y?.body,...T},customErrorConfigs:h,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}}}return{block:e,successful:!0,output:{data:oe(p?.dataKey?E.data[p?.dataKey]:E.data,p),raw:E,statusCode:E?.status,message:E?.message}}},oe=__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`),se=[`data`,`headers`],K=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(se).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}=K.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){let n=t;return{block:e,successful:!1,errors:[(0,c.serializeHttpResponseError)(t)],output:{statusCode:n?.response?.status??500,message:n?.response?.message}}}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`),q=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()}),de=(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}=q.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){let n=t;return{block:e,successful:!1,errors:[(0,c.serializeHttpResponseError)(t)],output:{statusCode:n?.response?.status??500,message:n?.response?.message}}}return{block:e,successful:!0,output:{data:fe(p?.dataKey?A.data[p?.dataKey]:A.data,p),raw:A,statusCode:A?.status,message:A?.message}}},fe=__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`),J=o.z.object({values:o.z.string().or(o.z.record(o.z.string(),o.z.unknown())).or(o.z.array(o.z.unknown()))}),pe=o.z.object({data:o.z.unknown()}),staticValuesStepFunction=async({block:e,params:t})=>{let{values:n}=J.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,Y=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(()=>Y).array().optional(),requiredScopes:o.z.string().array().optional()}),X=o.z.object({fields:Y.array().optional(),dataSource:o.z.string()}),me=o.z.object({data:o.z.unknown()});let Z=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 Z.String:return(0,o.safeParseToString)({value:e});case Z.Number:return(0,o.safeParseToNumber)({value:e});case Z.Boolean:return(0,o.safeParseToBoolean)({value:e});case Z.DateTimeString:return(0,o.safeParseToDateTimeString)({value:e,format:n});default:return e}},isFieldSupportedType=e=>Object.values(Z).includes(e),he=__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=>Q(e,t)):Q(e.result,t),{block:{...e,result:n},successful:!0}},`typecastStepFunction`),Q=__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}=X.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}},ge=(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")`)}),_e=o.z.object({baseUrl:o.z.string().optional(),url:o.z.string(),method:o.z.enum(c.HttpMethods).default(`post`),authorization:O.optional(),file:ge.describe(`The file to upload`),additionalFields:(0,o.zStrictObject)({name:o.z.string(),value:o.z.unknown()}).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)`)}),ve=(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}=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:d,method:f,response:p,authorization:m,file:h,additionalFields:g,args:_,customErrors:v}=_e.parse(a),y=i?.authentication?.[e.context.authenticationType]?.[e.context.environment]?.authorization,b=_?(0,c.parseRequestParameters)(_):{query:{},body:{},headers:{}},x=(0,c.createAuthorizationHeaders)((0,o.notMissing)(m)?m:O.parse(y)),S=new u.default,C=Buffer.from(h.content,`base64`);if(S.append(h.fieldName,C,{filename:h.filename,contentType:h.contentType}),g)for(let e of g){let t=typeof e.value==`object`?JSON.stringify(e.value):String(e.value);S.append(e.name,t)}let w={...S.getHeaders(),...b?.headers??{},...x},T=e.connector?.rateLimit,E=e.connector?.concurrency,D=T!==void 0||E!==void 0?{rateLimit:T,concurrency:E}:void 0,k;try{k=await e.httpClient.request({url:`${l??``}${d}`,method:f,headers:w,queryParams:b?.query,payload:S,requestConfig:D})}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 A=(0,c.translateCustomError)(k,v);return(0,c.isFailedStatusCode)(A?.status)?{block:e,successful:!1,errors:[(0,c.serializeHttpResponseError)(new c.HttpResponseError(A,A.message))],output:{statusCode:A.status,message:A.message}}:{block:e,successful:!0,output:{data:indexResponseData(p?.dataKey?A.data[p?.dataKey]:A.data,p),raw:A,statusCode:A?.status,message:A?.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.DOWNLOAD_FILE=`download_file`,e}({});const ye={[$.TYPECAST]:{v1:{fn:he},v2:{fn:typecastStepFunction,inputSchema:X,outputSchema:me}},[$.MAP_FIELDS]:{v1:{fn:N},v2:{fn:mapFieldsStepFunction,inputSchema:L,outputSchema:R}},[$.REQUEST]:{v1:{fn:requestStepFunction,inputSchema:G,outputSchema:ae}},[$.GROUP_DATA]:{v1:{fn:groupDataStepFunction,inputSchema:j,outputSchema:M}},[$.PAGINATED_REQUEST]:{v1:{fn:paginatedRequestStepFunction,inputSchema:U,outputSchema:W}},[$.SOAP_REQUEST]:{v1:{fn:soapRequestStepFunction,inputSchema:q,outputSchema:de}},[$.SOAP_PAGINATED_REQUEST]:{v1:{fn:soapPaginatedRequestStepFunction,inputSchema:K,outputSchema:ce}},[$.STATIC_VALUES]:{v1:{fn:staticValuesStepFunction,inputSchema:J,outputSchema:pe}},[$.UPLOAD_FILE]:{v1:{fn:uploadFileStepFunction,inputSchema:_e,outputSchema:ve}},[$.DOWNLOAD_FILE]:{v1:{fn:downloadFileStepFunction,inputSchema:k,outputSchema:A}}},stepFunctionEnhancedWithSchemasValidation=(e,t)=>async({block:n,params:r})=>{try{e.inputSchema&&e.inputSchema.parse(r)}catch(e){return{block:n,successful:!1,errors:[{message:`Input parameters for ${t} are invalid: ${e?.message}`}]}}let i=await e.fn({block:n,params:r});try{e.outputSchema&&e.outputSchema.parse(i.output)}catch{return{block:n,successful:!1,errors:[{message:`Output data of ${t} has unexpected format`}]}}return i},be={build({functionName:e,version:t=`1`,validateSchemas:n=!1,stepFunctionsList:r=ye}){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=be,exports.StepFunctionsRegistry=ye,exports.areCursorsEqual=areCursorsEqual,exports.decodeCompositeId=decodeCompositeId,exports.encodeCompositeId=encodeCompositeId,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
|
@@ -1419,12 +1419,15 @@ type GuideStep = {
|
|
|
1419
1419
|
title: string;
|
|
1420
1420
|
content: string;
|
|
1421
1421
|
list?: string[];
|
|
1422
|
+
displayScopes?: boolean;
|
|
1423
|
+
applicableScopes?: string[];
|
|
1422
1424
|
};
|
|
1423
1425
|
type GuideSection = {
|
|
1424
1426
|
title: string;
|
|
1425
1427
|
content: string;
|
|
1426
1428
|
list?: string[];
|
|
1427
1429
|
steps?: GuideStep[];
|
|
1430
|
+
applicableScopes?: string[];
|
|
1428
1431
|
};
|
|
1429
1432
|
type Guide = {
|
|
1430
1433
|
warning?: string;
|
package/dist/index.d.mts
CHANGED
|
@@ -1418,12 +1418,15 @@ type GuideStep = {
|
|
|
1418
1418
|
title: string;
|
|
1419
1419
|
content: string;
|
|
1420
1420
|
list?: string[];
|
|
1421
|
+
displayScopes?: boolean;
|
|
1422
|
+
applicableScopes?: string[];
|
|
1421
1423
|
};
|
|
1422
1424
|
type GuideSection = {
|
|
1423
1425
|
title: string;
|
|
1424
1426
|
content: string;
|
|
1425
1427
|
list?: string[];
|
|
1426
1428
|
steps?: GuideStep[];
|
|
1429
|
+
applicableScopes?: string[];
|
|
1427
1430
|
};
|
|
1428
1431
|
type Guide = {
|
|
1429
1432
|
warning?: string;
|
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 W,RequestParameterLocations as G,createAuthorizationHeaders as K,isFailedStatusCode as ee,parseRequestParameters as q,serializeHttpResponseError as J,translateCustomError as te}from"@stackone/transport";import ne from"mime-types";import re from"form-data";const ie={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=>ie[e.toLowerCase()]??null,isValidCategory=e=>!!ie[e.toLowerCase()],Y=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=>`${Y}${n(e)}`,decodeIdV1=e=>{if(!e.startsWith(Y))throw new CompositeIdMissingHeaderError(`Trying to decode an ID without the header: ${e}`);let n=e.split(Y)[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(Y),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,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()}),X=P.discriminatedUnion(`type`,[pe,me,he,ge]),_e=P.object({baseUrl:P.string().optional(),url:P.string(),method:P.enum(V).optional().default(`get`),authorization:X.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(G),spread:P.boolean().optional(),condition:P.string().optional(),arrayFormat:P.enum(U).optional()}).array().optional()}),ve=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}=_e.parse(a),_=i?.authentication?.[e.context.authenticationType]?.[e.context.environment]?.authorization,v=u?q(u):{query:{},body:{},headers:{}},y=K(k(l)?l:X.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){let n=t;return{block:e,successful:!1,errors:[J(t)],output:{statusCode:n?.response?.status??500,message:n?.response?.message}}}},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){let n=e;return{block:t,successful:!1,errors:[J(e)],output:{statusCode:n?.response?.status??500,message:n?.response?.message}}}},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=e[`content-type`],n=e[`content-length`],r=e[`content-disposition`],i=e[`last-modified`],a=e.etag,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 ne.extension(t)||void 0},ye=P.object({stepsDataToGroup:P.array(P.string()),isSingleRecord:P.boolean().optional()}),be=P.object({data:P.unknown()}),groupDataStepFunction=async({block:e,params:t})=>{let{stepsDataToGroup:n,isSingleRecord:r}=ye.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)}}},xe=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=Se(e,t,extractSingleRecordBlockStepData(r,a,i));return n.push(...o.errors||[]),o.record})}else{let a=Se(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},{}),Se=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}=Ce(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`),Ce=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}},we=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(()=>we).array().optional(),requiredScopes:P.string().array().optional()}),Te=P.object({fields:we.array(),dataSource:P.string(),externalSources:P.record(P.string(),P.string()).optional()}),Ee=P.object({data:P.unknown()}),mapFieldsStepFunction=async({block:e,params:t})=>{let n=[],{fields:r,dataSource:i,externalSources:a}=Te.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=Z(r,{...e,external:s});return n.push(...t?.errors||[]),t?.record});else{let e=Z(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=Z(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=Z(e.properties,t);return k(r?.errors)&&n.push(...r.errors),r?.record}).filter(Boolean);{let t=Z(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=Z(e.properties,r);return k(i?.errors)&&n.push(...i.errors),i?.record},De=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`),Z=e((e,t)=>{if(!t)return;let n={},r=[],i={};for(let a of e){let e;if(a.type===`object`){if(e=De(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 Oe(n,t,e);case`enum`:return evaluateEnumValue(n,t,e);default:return{error:{message:`Invalid type`,id:t,targetField:n.targetFieldKey}}}},Oe=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=Oe(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}}},ke=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(G),condition:P.string().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(G),spread:P.boolean().optional(),condition:P.string().optional(),arrayFormat:P.enum(U).optional()}).array().optional()}),Ae=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(),paginatedRequestStepFunction=async({block:e,params:t})=>{let n=W.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={...c,customErrors:t?.customErrors,iterator:{...c?.iterator??{},condition:t?.iterator?.condition}},{baseUrl:u,url:d,method:f,response:p,iterator:m,cursor:h,customErrors:g,args:_,saml:v}=ke.parse(l),y=c?.authentication?.[e.context.authenticationType]?.[e.context.environment]?.authorization,b=X.parse(y),x=_?q(_):{query:{},body:{},headers:{}},S=K(b),C={...x?.headers??{},...S},w=e.connector?.rateLimit,T=e.connector?.concurrency,O=w!==void 0||T!==void 0?{rateLimit:w,concurrency:T}: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=h?.token??null,M=null,N=null,P=[],F=[],L=[],B=o,V=h?.position??0,H=!0,U=!0,G=!0;do{H?H=!1:V=0,j!==null&&(m.in===`query`?D(j)?Object.entries(j).forEach(([e,t])=>{x.query[`${m.key}[${e}]`]=t?.toString()??``}):x.query[m.key]=j.toString():m.in===`body`&&(Array.isArray(x.body)||(x.body[m.key]=j)));let t;try{t=await n.performRequest({httpClient:e.httpClient,url:`${u}${d}`,queryParams:{...x?.query},method:f,headers:{...C},body:Array.isArray(x?.body)?x.body:{...x?.body,...A},customErrorConfigs:g,requestConfig:O})}catch(t){let n=t;return{block:e,successful:!1,errors:[J(t)],output:{statusCode:n?.response?.status??500,message:n?.response?.message}}}M=j,F=p?.dataKey?t.data[p?.dataKey]:t.data;let r=F?.slice(V,V+B);B-=r.length,V+=r.length,L.push(t),P=P.concat(r),N=t?.status,j=je({result:t,response:p}),G=k(m.condition)?R(m.condition,t.data)===!0:!0,r.length===F.length&&B===0&&(V=0,M=j),U=E(j)&&P.length<o}while(k(j)&&G&&P.length<o&&F?.length>0);return{block:e,successful:!0,output:{data:Pe(P,p),raw:L,statusCode:N,next:U?void 0:M,position:U?void 0:V}}},je=e(({result:e,response:t})=>{if(E(t?.nextKey))return null;let n=t?.nextKeyIn??`data`,r=t?.nextKey;return n===`headers`?Me(e.headers,r):Ne(e.data,r)},`resolveNextIterator`),Me=e((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},`resolveFromHeaders`),Ne=e((e,t)=>{if(E(e)||typeof e!=`object`||!e)return null;let n=R(`$.${t}`,e);return E(n)?null:typeof n==`string`||typeof n==`number`||typeof n==`object`?n:null},`resolveFromData`),Pe=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`),Fe=P.object({baseUrl:P.string().optional(),url:P.string(),method:P.enum(V),authorization:X.optional(),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(G),spread:P.boolean().optional(),condition:P.string().optional(),arrayFormat:P.enum(U).optional()}).array().optional()}),Ie=F({data:P.unknown().optional(),raw:P.unknown().optional(),statusCode:P.number(),message:P.string().optional()}).optional(),requestStepFunction=async({block:e,params:t})=>{let n=W.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?z({...t,args:a},e):{},s={...o,customErrors:t?.customErrors},{baseUrl:c,url:l,method:u,response:d,authorization:f,customErrors:p,args:m,saml:h}=Fe.parse(s),g=o?.authentication?.[e.context.authenticationType]?.[e.context.environment]?.authorization,_=m?q(m):{query:{},body:{},headers:{}},v=K(k(f)?f:X.parse(g)),y={..._?.headers??{},...v},b=e.connector?.rateLimit,x=e.connector?.concurrency,S=b!==void 0||x!==void 0?{rateLimit:b,concurrency:x}:void 0,C=k(h)?{[h.objectKey]:await r({key:h.key,clientId:h.clientId,cert:h.cert,issuer:h.issuer,lifetime:h.lifetime,audience:h.audience,nameId:h.nameId,nameIdentifierFormat:h.nameIdentifierFormat,tokenEndpoint:h.tokenEndpoint})}:{},w;try{w=await n.performRequest({httpClient:e.httpClient,url:`${c}${l}`,queryParams:_?.query,method:u,headers:y,body:Array.isArray(_?.body)?_?.body:{..._?.body,...C},customErrorConfigs:p,requestConfig:S})}catch(t){let n=t;return{block:e,successful:!1,errors:[J(t)],output:{statusCode:n?.response?.status??500,message:n?.response?.message}}}return{block:e,successful:!0,output:{data:Le(d?.dataKey?w.data[d?.dataKey]:w.data,d),raw:w,statusCode:w?.status,message:w?.message}}},Le=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`),Re=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(G)}),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(G),condition:P.string().optional(),arrayFormat:P.enum(U).optional()}).array().optional()}),ze=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=W.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}=Re.parse(c),C=s?.authentication?.[e.context.authenticationType]?.[e.context.environment]?.authorization,w=_?q(_):{query:{},body:{},headers:{}},T=K(k(h)?h:X.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){let n=t;return{block:e,successful:!1,errors:[J(t)],output:{statusCode:n?.response?.status??500,message:n?.response?.message}}}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:Be(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},Be=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`),Ve=P.object({baseUrl:P.string().optional(),url:P.string(),method:P.enum(V),authorization:X.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(G),condition:P.string().optional(),arrayFormat:P.enum(U).optional()}).array().optional()}),He=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=W.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}=Ve.parse(o),y=a?.authentication?.[e.context.authenticationType]?.[e.context.environment]?.authorization,b=p?q(p):{query:{},body:{},headers:{}},x=K(k(d)?d:X.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){let n=t;return{block:e,successful:!1,errors:[J(t)],output:{statusCode:n?.response?.status??500,message:n?.response?.message}}}return{block:e,successful:!0,output:{data:Ue(u?.dataKey?E.data[u?.dataKey]:E.data,u),raw:E,statusCode:E?.status,message:E?.message}}},Ue=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`),We=P.object({values:P.string().or(P.record(P.string(),P.unknown())).or(P.array(P.unknown()))}),Ge=P.object({data:P.unknown()}),staticValuesStepFunction=async({block:e,params:t})=>{let{values:n}=We.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,Ke=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(()=>Ke).array().optional(),requiredScopes:P.string().array().optional()}),qe=P.object({fields:Ke.array().optional(),dataSource:P.string()}),Je=P.object({data:P.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(E(e))return null;switch(t){case Q.String:return N({value:e});case Q.Number:return M({value:e});case Q.Boolean:return A({value:e});case Q.DateTimeString:return j({value:e,format:n});default:return e}},isFieldSupportedType=e=>Object.values(Q).includes(e),Ye=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=>Xe(e,t)):Xe(e.result,t),{block:{...e,result:n},successful:!0}},`typecastStepFunction`),Xe=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}},Ze=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")`)}),Qe=P.object({baseUrl:P.string().optional(),url:P.string(),method:P.enum(V).default(`post`),authorization:X.optional(),file:Ze.describe(`The file to upload`),additionalFields:F({name:P.string(),value:P.unknown()}).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(G),spread:P.boolean().optional(),condition:P.string().optional(),arrayFormat:P.enum(U).optional()}).array().optional().describe(`Additional request parameters (query params, headers)`)}),$e=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}=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,file:d,additionalFields:f,args:p,customErrors:m}=Qe.parse(a),h=i?.authentication?.[e.context.authenticationType]?.[e.context.environment]?.authorization,g=p?q(p):{query:{},body:{},headers:{}},_=K(k(u)?u:X.parse(h)),v=new re,y=Buffer.from(d.content,`base64`);if(v.append(d.fieldName,y,{filename:d.filename,contentType:d.contentType}),f)for(let e of f){let t=typeof e.value==`object`?JSON.stringify(e.value):String(e.value);v.append(e.name,t)}let b={...v.getHeaders(),...g?.headers??{},..._},x=e.connector?.rateLimit,S=e.connector?.concurrency,C=x!==void 0||S!==void 0?{rateLimit:x,concurrency:S}:void 0,w;try{w=await e.httpClient.request({url:`${o??``}${s}`,method:c,headers:b,queryParams:g?.query,payload:v,requestConfig:C})}catch(t){let n=t;return{block:e,successful:!1,errors:[J(t)],output:{statusCode:n?.response?.status??500,message:n?.response?.message}}}let T=te(w,m);return ee(T?.status)?{block:e,successful:!1,errors:[J(new H(T,T.message))],output:{statusCode:T.status,message:T.message}}:{block:e,successful:!0,output:{data:indexResponseData(l?.dataKey?T.data[l?.dataKey]:T.data,l),raw:T,statusCode:T?.status,message:T?.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.DOWNLOAD_FILE=`download_file`,e}({});const et={[$.TYPECAST]:{v1:{fn:Ye},v2:{fn:typecastStepFunction,inputSchema:qe,outputSchema:Je}},[$.MAP_FIELDS]:{v1:{fn:xe},v2:{fn:mapFieldsStepFunction,inputSchema:Te,outputSchema:Ee}},[$.REQUEST]:{v1:{fn:requestStepFunction,inputSchema:Fe,outputSchema:Ie}},[$.GROUP_DATA]:{v1:{fn:groupDataStepFunction,inputSchema:ye,outputSchema:be}},[$.PAGINATED_REQUEST]:{v1:{fn:paginatedRequestStepFunction,inputSchema:ke,outputSchema:Ae}},[$.SOAP_REQUEST]:{v1:{fn:soapRequestStepFunction,inputSchema:Ve,outputSchema:He}},[$.SOAP_PAGINATED_REQUEST]:{v1:{fn:soapPaginatedRequestStepFunction,inputSchema:Re,outputSchema:ze}},[$.STATIC_VALUES]:{v1:{fn:staticValuesStepFunction,inputSchema:We,outputSchema:Ge}},[$.UPLOAD_FILE]:{v1:{fn:uploadFileStepFunction,inputSchema:Qe,outputSchema:$e}},[$.DOWNLOAD_FILE]:{v1:{fn:downloadFileStepFunction,inputSchema:_e,outputSchema:ve}}},stepFunctionEnhancedWithSchemasValidation=(e,t)=>async({block:n,params:r})=>{try{e.inputSchema&&e.inputSchema.parse(r)}catch(e){return{block:n,successful:!1,errors:[{message:`Input parameters for ${t} are invalid: ${e?.message}`}]}}let i=await e.fn({block:n,params:r});try{e.outputSchema&&e.outputSchema.parse(i.output)}catch{return{block:n,successful:!1,errors:[{message:`Output data of ${t} has unexpected format`}]}}return i},tt={build({functionName:e,version:t=`1`,validateSchemas:n=!1,stepFunctionsList:r=et}){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{X as AUTHORIZATION_SCHEMA,se as COMPOSITE_ID_LATEST_VERSION,ce as CoreError,le as INPUT_ENUM_REGISTRY,ue as ReleaseStages,$ as StepFunctionName,tt as StepFunctionsFactory,et as StepFunctionsRegistry,areCursorsEqual,decodeCompositeId,encodeCompositeId,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 U,RequestParameterLocations as W,createAuthorizationHeaders as G,isFailedStatusCode as K,parseRequestParameters as q,serializeHttpResponseError as J,translateCustomError as te}from"@stackone/transport";import ne from"mime-types";import re from"form-data";const ie={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=>ie[e.toLowerCase()]??null,isValidCategory=e=>!!ie[e.toLowerCase()],Y=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=>`${Y}${n(e)}`,decodeIdV1=e=>{if(!e.startsWith(Y))throw new CompositeIdMissingHeaderError(`Trying to decode an ID without the header: ${e}`);let n=e.split(Y)[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(Y),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=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()}),fe=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(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,pe=P({type:N.literal(`none`)}),me=P({type:N.literal(`basic`),username:N.string().optional(),password:N.string().optional(),encoding:N.string().optional()}),he=P({type:N.literal(`bearer`),token:N.string(),includeBearer:N.boolean().optional().default(!0)}),ge=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()}),X=N.discriminatedUnion(`type`,[pe,me,he,ge]),_e=N.object({baseUrl:N.string().optional(),url:N.string(),method:N.enum(B).optional().default(`get`),authorization:X.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(W),spread:N.boolean().optional(),condition:N.string().optional(),arrayFormat:N.enum(H).optional()}).array().optional()}),ve=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}=_e.parse(a),_=i?.authentication?.[e.context.authenticationType]?.[e.context.environment]?.authorization,v=u?q(u):{query:{},body:{},headers:{}},y=G(k(l)?l:X.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){let n=t;return{block:e,successful:!1,errors:[J(t)],output:{statusCode:n?.response?.status??500,message:n?.response?.message}}}},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){let n=e;return{block:t,successful:!1,errors:[J(e)],output:{statusCode:n?.response?.status??500,message:n?.response?.message}}}},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=e[`content-type`],n=e[`content-length`],r=e[`content-disposition`],i=e[`last-modified`],a=e.etag,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 ne.extension(t)||void 0},ye=N.object({stepsDataToGroup:N.array(N.string()),isSingleRecord:N.boolean().optional()}),be=N.object({data:N.unknown()}),groupDataStepFunction=async({block:e,params:t})=>{let{stepsDataToGroup:n,isSingleRecord:r}=ye.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)}}},xe=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=Se(e,t,extractSingleRecordBlockStepData(r,a,i));return n.push(...o.errors||[]),o.record})}else{let a=Se(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},{}),Se=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}=Ce(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`),Ce=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}},we=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(()=>we).array().optional(),requiredScopes:N.string().array().optional()}),Te=N.object({fields:we.array(),dataSource:N.string(),externalSources:N.record(N.string(),N.string()).optional()}),Ee=N.object({data:N.unknown()}),mapFieldsStepFunction=async({block:e,params:t})=>{let n=[],{fields:r,dataSource:i,externalSources:a}=Te.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=Z(r,{...e,external:s});return n.push(...t?.errors||[]),t?.record});else{let e=Z(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=Z(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=Z(e.properties,t);return k(r?.errors)&&n.push(...r.errors),r?.record}).filter(Boolean);{let t=Z(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=Z(e.properties,r);return k(i?.errors)&&n.push(...i.errors),i?.record},De=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`),Z=e((e,t)=>{if(!t)return;let n={},r=[],i={};for(let a of e){let e;if(a.type===`object`){if(e=De(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 Oe(n,t,e);case`enum`:return evaluateEnumValue(n,t,e);default:return{error:{message:`Invalid type`,id:t,targetField:n.targetFieldKey}}}},Oe=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=Oe(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}}},ke=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(W),condition:N.string().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(W),spread:N.boolean().optional(),condition:N.string().optional(),arrayFormat:N.enum(H).optional()}).array().optional()}),Ae=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(),isJexlExpression=e=>{let t=e.trim();return t.startsWith(`{{`)&&t.endsWith(`}}`)},paginatedRequestStepFunction=async({block:e,params:t})=>{let n=U.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&&isJexlExpression(l),d={...c,customErrors:t?.customErrors,iterator:{...c?.iterator??{},condition:t?.iterator?.condition},response:u?{...c?.response??{},nextKey:l}:c?.response},{baseUrl:f,url:p,method:m,response:h,iterator:g,cursor:_,customErrors:v,args:y,saml:b}=ke.parse(d),x=c?.authentication?.[e.context.authenticationType]?.[e.context.environment]?.authorization,S=X.parse(x),C=y?q(y):{query:{},body:{},headers:{}},w=G(S),T={...C?.headers??{},...w},O=e.connector?.rateLimit,A=e.connector?.concurrency,ee=O!==void 0||A!==void 0?{rateLimit:O,concurrency:A}:void 0,j=k(b)?{[b.objectKey]:await r({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})}:{},M=_?.token??null,N=null,P=null,I=[],z=[],B=[],V=o,H=_?.position??0,W=!0,K=!0,te=!0;do{W?W=!1:H=0,M!==null&&(g.in===`query`?D(M)?Object.entries(M).forEach(([e,t])=>{C.query[`${g.key}[${e}]`]=t?.toString()??``}):C.query[g.key]=M.toString():g.in===`body`&&(Array.isArray(C.body)||(C.body[g.key]=M)));let t;try{t=await n.performRequest({httpClient:e.httpClient,url:`${f}${p}`,queryParams:{...C?.query},method:m,headers:{...T},body:Array.isArray(C?.body)?C.body:{...C?.body,...j},customErrorConfigs:v,requestConfig:ee})}catch(t){let n=t;return{block:e,successful:!1,errors:[J(t)],output:{statusCode:n?.response?.status??500,message:n?.response?.message}}}N=M,z=h?.dataKey?t.data[h?.dataKey]:t.data;let r=z?.slice(H,H+V);V-=r.length,H+=r.length,B.push(t),I=I.concat(r),P=t?.status,M=je({result:t,response:h}),te=k(g.condition)?L(g.condition,t.data)===!0:!0,r.length===z.length&&V===0&&(H=0,N=M),K=E(M)&&I.length<o}while(k(M)&&te&&I.length<o&&z?.length>0);return{block:e,successful:!0,output:{data:Pe(I,h),raw:B,statusCode:P,next:K?void 0:N,position:K?void 0:H}}},je=e(({result:e,response:t})=>{if(E(t?.nextKey))return null;let n=t?.nextKeyIn??`data`,r=t?.nextKey;return n===`headers`?Me(e.headers,r):Ne(e.data,r)},`resolveNextIterator`),Me=e((e,t)=>{if(E(e)||typeof e!=`object`)return null;if(isJexlExpression(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`),Ne=e((e,t)=>{if(E(e)||typeof e!=`object`||!e)return null;let n=L(isJexlExpression(t)?t:`$.${t}`,e);return E(n)?null:typeof n==`string`||typeof n==`number`||typeof n==`object`?n:null},`resolveFromData`),Pe=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`),Fe=N.object({baseUrl:N.string().optional(),url:N.string(),method:N.enum(B),authorization:X.optional(),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(W),spread:N.boolean().optional(),condition:N.string().optional(),arrayFormat:N.enum(H).optional()}).array().optional()}),Ie=P({data:N.unknown().optional(),raw:N.unknown().optional(),statusCode:N.number(),message:N.string().optional()}).optional(),requestStepFunction=async({block:e,params:t})=>{let n=U.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?R({...t,args:a},e):{},s={...o,customErrors:t?.customErrors},{baseUrl:c,url:l,method:u,response:d,authorization:f,customErrors:p,args:m,saml:h}=Fe.parse(s),g=o?.authentication?.[e.context.authenticationType]?.[e.context.environment]?.authorization,_=m?q(m):{query:{},body:{},headers:{}},v=G(k(f)?f:X.parse(g)),y={..._?.headers??{},...v},b=e.connector?.rateLimit,x=e.connector?.concurrency,S=b!==void 0||x!==void 0?{rateLimit:b,concurrency:x}:void 0,C=k(h)?{[h.objectKey]:await r({key:h.key,clientId:h.clientId,cert:h.cert,issuer:h.issuer,lifetime:h.lifetime,audience:h.audience,nameId:h.nameId,nameIdentifierFormat:h.nameIdentifierFormat,tokenEndpoint:h.tokenEndpoint})}:{},w;try{w=await n.performRequest({httpClient:e.httpClient,url:`${c}${l}`,queryParams:_?.query,method:u,headers:y,body:Array.isArray(_?.body)?_?.body:{..._?.body,...C},customErrorConfigs:p,requestConfig:S})}catch(t){let n=t;return{block:e,successful:!1,errors:[J(t)],output:{statusCode:n?.response?.status??500,message:n?.response?.message}}}return{block:e,successful:!0,output:{data:Le(d?.dataKey?w.data[d?.dataKey]:w.data,d),raw:w,statusCode:w?.status,message:w?.message}}},Le=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`),Re=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(W)}),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(W),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(),next:N.string().optional().nullable(),position:N.number().optional()}).optional(),soapPaginatedRequestStepFunction=async({block:e,params:t})=>{let n=U.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}=Re.parse(c),C=s?.authentication?.[e.context.authenticationType]?.[e.context.environment]?.authorization,w=_?q(_):{query:{},body:{},headers:{}},T=G(k(h)?h:X.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){let n=t;return{block:e,successful:!1,errors:[J(t)],output:{statusCode:n?.response?.status??500,message:n?.response?.message}}}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:Be(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},Be=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`),Ve=N.object({baseUrl:N.string().optional(),url:N.string(),method:N.enum(B),authorization:X.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(W),condition:N.string().optional(),arrayFormat:N.enum(H).optional()}).array().optional()}),He=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=U.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}=Ve.parse(o),y=a?.authentication?.[e.context.authenticationType]?.[e.context.environment]?.authorization,b=p?q(p):{query:{},body:{},headers:{}},x=G(k(d)?d:X.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){let n=t;return{block:e,successful:!1,errors:[J(t)],output:{statusCode:n?.response?.status??500,message:n?.response?.message}}}return{block:e,successful:!0,output:{data:Ue(u?.dataKey?E.data[u?.dataKey]:E.data,u),raw:E,statusCode:E?.status,message:E?.message}}},Ue=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`),We=N.object({values:N.string().or(N.record(N.string(),N.unknown())).or(N.array(N.unknown()))}),Ge=N.object({data:N.unknown()}),staticValuesStepFunction=async({block:e,params:t})=>{let{values:n}=We.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,Ke=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(()=>Ke).array().optional(),requiredScopes:N.string().array().optional()}),qe=N.object({fields:Ke.array().optional(),dataSource:N.string()}),Je=N.object({data:N.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(E(e))return null;switch(t){case Q.String:return M({value:e});case Q.Number:return j({value:e});case Q.Boolean:return A({value:e});case Q.DateTimeString:return ee({value:e,format:n});default:return e}},isFieldSupportedType=e=>Object.values(Q).includes(e),Ye=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=>Xe(e,t)):Xe(e.result,t),{block:{...e,result:n},successful:!0}},`typecastStepFunction`),Xe=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=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}},Ze=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")`)}),Qe=N.object({baseUrl:N.string().optional(),url:N.string(),method:N.enum(B).default(`post`),authorization:X.optional(),file:Ze.describe(`The file to upload`),additionalFields:P({name:N.string(),value:N.unknown()}).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(W),spread:N.boolean().optional(),condition:N.string().optional(),arrayFormat:N.enum(H).optional()}).array().optional().describe(`Additional request parameters (query params, headers)`)}),$e=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}=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,file:d,additionalFields:f,args:p,customErrors:m}=Qe.parse(a),h=i?.authentication?.[e.context.authenticationType]?.[e.context.environment]?.authorization,g=p?q(p):{query:{},body:{},headers:{}},_=G(k(u)?u:X.parse(h)),v=new re,y=Buffer.from(d.content,`base64`);if(v.append(d.fieldName,y,{filename:d.filename,contentType:d.contentType}),f)for(let e of f){let t=typeof e.value==`object`?JSON.stringify(e.value):String(e.value);v.append(e.name,t)}let b={...v.getHeaders(),...g?.headers??{},..._},x=e.connector?.rateLimit,S=e.connector?.concurrency,C=x!==void 0||S!==void 0?{rateLimit:x,concurrency:S}:void 0,w;try{w=await e.httpClient.request({url:`${o??``}${s}`,method:c,headers:b,queryParams:g?.query,payload:v,requestConfig:C})}catch(t){let n=t;return{block:e,successful:!1,errors:[J(t)],output:{statusCode:n?.response?.status??500,message:n?.response?.message}}}let T=te(w,m);return K(T?.status)?{block:e,successful:!1,errors:[J(new V(T,T.message))],output:{statusCode:T.status,message:T.message}}:{block:e,successful:!0,output:{data:indexResponseData(l?.dataKey?T.data[l?.dataKey]:T.data,l),raw:T,statusCode:T?.status,message:T?.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.DOWNLOAD_FILE=`download_file`,e}({});const et={[$.TYPECAST]:{v1:{fn:Ye},v2:{fn:typecastStepFunction,inputSchema:qe,outputSchema:Je}},[$.MAP_FIELDS]:{v1:{fn:xe},v2:{fn:mapFieldsStepFunction,inputSchema:Te,outputSchema:Ee}},[$.REQUEST]:{v1:{fn:requestStepFunction,inputSchema:Fe,outputSchema:Ie}},[$.GROUP_DATA]:{v1:{fn:groupDataStepFunction,inputSchema:ye,outputSchema:be}},[$.PAGINATED_REQUEST]:{v1:{fn:paginatedRequestStepFunction,inputSchema:ke,outputSchema:Ae}},[$.SOAP_REQUEST]:{v1:{fn:soapRequestStepFunction,inputSchema:Ve,outputSchema:He}},[$.SOAP_PAGINATED_REQUEST]:{v1:{fn:soapPaginatedRequestStepFunction,inputSchema:Re,outputSchema:ze}},[$.STATIC_VALUES]:{v1:{fn:staticValuesStepFunction,inputSchema:We,outputSchema:Ge}},[$.UPLOAD_FILE]:{v1:{fn:uploadFileStepFunction,inputSchema:Qe,outputSchema:$e}},[$.DOWNLOAD_FILE]:{v1:{fn:downloadFileStepFunction,inputSchema:_e,outputSchema:ve}}},stepFunctionEnhancedWithSchemasValidation=(e,t)=>async({block:n,params:r})=>{try{e.inputSchema&&e.inputSchema.parse(r)}catch(e){return{block:n,successful:!1,errors:[{message:`Input parameters for ${t} are invalid: ${e?.message}`}]}}let i=await e.fn({block:n,params:r});try{e.outputSchema&&e.outputSchema.parse(i.output)}catch{return{block:n,successful:!1,errors:[{message:`Output data of ${t} has unexpected format`}]}}return i},tt={build({functionName:e,version:t=`1`,validateSchemas:n=!1,stepFunctionsList:r=et}){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{X as AUTHORIZATION_SCHEMA,se as COMPOSITE_ID_LATEST_VERSION,ce as CoreError,le as INPUT_ENUM_REGISTRY,ue as ReleaseStages,$ as StepFunctionName,tt as StepFunctionsFactory,et as StepFunctionsRegistry,areCursorsEqual,decodeCompositeId,encodeCompositeId,expandCursor,getCategoryDetails,getInputEnumValues,isCompositeId,isCoreError,isCursorEmpty,isForeachStep,isValidCategory,isValidEnumRef,minifyCursor,updateCursor};
|