@stackone/core 2.7.0 → 2.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -1 +1 @@
1
- let e=require(`@stackone/utils`),t=require(`@stackone/expressions`),n=require(`@stackone/transport`);const r={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`}},i=e=>r[e.toLowerCase()]??null,a=e=>!!r[e.toLowerCase()],o=`so1!`,s=(0,e.encodeToBase64)(`so1!`),c=`:`,l=`,`,u=RegExp(`(?<!\\\\):`,`g`),d=RegExp(`(?<!\\\\),`,`g`),f=1;var p=class e extends Error{constructor({category:t,name:n,type:r,context:i,message:a}){super(a),this.name=n??`CoreError`,this.type=r,this.category=t,this.context=i,Error.captureStackTrace&&Error.captureStackTrace(this,e)}toString(){let e=this.message?`: ${this.message}`:``;return`${this.category}-${this.name} [${this.type}]${e}`}},m=class extends p{constructor(e,t,n){super({category:`CompositeId`,name:t??`BaseCompositeIdError`,type:e,message:n})}},h=class extends m{constructor(e){super(`COMPOSITE_ID_MISSING_HEADER_ERROR`,`CompositeIdMissingHeaderError`,e??`Invalid compositeId, missing header`)}},g=class extends m{constructor(e){super(`COMPOSITE_ID_MISSING_BODY_ERROR`,`CompositeIdMissingBodyError`,e??`Invalid compositeId, missing body`)}},_=class extends m{constructor(e){super(`COMPOSITE_ID_UNKNOWN_IDENTIFIER_ERROR`,`CompositeIdUnknownIdentifierError`,e??`Invalid compositeId, unknown identifier`)}},v=class extends m{constructor(e){super(`COMPOSITE_ID_UNSUPPORTED_VERSION_ERROR`,`CompositeIdUnsupportedVersionError`,e??`Invalid compositeId, unsupported version`)}};const y=t=>!(0,e.isMissing)(t)&&`value`in t&&t.value!==void 0,b=t=>!(0,e.isMissing)(t)&&`identifiers`in t&&t.identifiers!==void 0,x=(e,t={version:1})=>{if(t.version===1)return D(C(e,t.aliases));throw new v(`Cannot generate ID, unsupported version number: ${t.version}`)},S=(e,t={version:1})=>{let n=E(e,t),r={};return n&&n.split(d).forEach(e=>{let[n,i]=e.split(u),a=T(n,t.aliases??{});r[a]=A(i)}),r},C=(e,t={})=>{if(y(e))return w({identifier:e,compositeIdAliases:t,isSoleIdentifier:!0});if(b(e))return e.identifiers.map(e=>w({identifier:e,compositeIdAliases:t,isSoleIdentifier:!1})).join(`,`);throw new _},w=({identifier:e,compositeIdAliases:t,isSoleIdentifier:n})=>[n?`id`:t[e.key]||e.key,k(e.value)].filter(Boolean).join(`:`),T=(e,t)=>Object.keys(t).find(n=>t[n]===e)??e,E=(e,t)=>{if(t.version===1)return O(e);throw new v(`Cannot decode ID, unsupported version number: ${t.version}`)},D=t=>`${s}${(0,e.encodeToBase64)(t)}`,O=t=>{if(!t.startsWith(s))throw new h(`Trying to decode an ID without the header: ${t}`);let n=t.split(s)[1];if(!n)throw new g(`Trying to decode an ID without a body: ${t}`);return(0,e.decodeFromBase64)(n)},k=e=>[`,`,`:`].reduce((e,t)=>e.replace(t,`\\`+t),e),A=e=>[`,`,`:`].reduce((e,t)=>{let n=`\\`+t;return e.replace(RegExp(`\\\\`+n,`g`),t)},e),j=t=>(0,e.isMissing)(t)?!1:t.startsWith(s),M={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`]},N=e=>M[e],P=e=>e in M,F=[`preview`,`beta`,`ga`,`deprecated`],I=(0,e.zStrictObject)({r:e.z.record(e.z.string(),(0,e.zStrictObject)({n:e.z.number().optional().nullable(),c:e.z.string().optional().nullable(),p:e.z.number().optional().nullable()})),v:e.z.number(),t:e.z.number()}),L=(0,e.zStrictObject)({remote:e.z.record(e.z.string(),(0,e.zStrictObject)({pageNumber:e.z.number().optional(),providerPageCursor:e.z.string().optional(),position:e.z.number().optional()})),version:e.z.number(),timestamp:e.z.number()}),R=t=>(0,e.encodeToBase64)(JSON.stringify(z(t))),z=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}},B=t=>{try{if((0,e.isString)(t)){let n=(0,e.decodeFromBase64)(t),r=JSON.parse(n);return V(I.parse(r))}else return L.parse(t),t}catch{return null}},V=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}},H=(t,n)=>{let r=typeof t==`string`?B(t):t,i=typeof n==`string`?B(n):n;if(r===null||i===null)return r===i;let{timestamp:a,...o}=r,{timestamp:s,...c}=i;return(0,e.getContentHash)(o)===(0,e.getContentHash)(c)},ee=({cursor:t,ignoreStepIndex:n})=>(0,e.isMissing)(t)?!0:Object.keys(t?.remote??{}).reduce((r,i)=>{let a=t?.remote?.[i];return((0,e.isMissing)(n)||i!==n.toString())&&(r=r&&(0,e.isMissing)(a.pageNumber)&&(0,e.isMissing)(a.position)&&(0,e.isMissing)(a.providerPageCursor)),r},!0),te=({cursor:t,stepIndex:n,pageNumber:r,providerPageCursor:i,position:a})=>{let o={pageNumber:r??void 0,providerPageCursor:i??void 0,position:a??void 0},s=(0,e.isMissing)(r)&&(0,e.isMissing)(i)&&(0,e.isMissing)(a);return(0,e.isMissing)(t)?{remote:s?{}:{[n]:o},version:2,timestamp:Date.now()}:s?(delete t.remote[n],t):{...t,remote:{...t.remote,[n]:o}}},ne=e=>e instanceof p,U=e.z.object({stepsDataToGroup:e.z.array(e.z.string()),isSingleRecord:e.z.boolean().optional()}),re=e.z.object({data:e.z.unknown()}),ie=async({block:t,params:n})=>{let{stepsDataToGroup:r,isSingleRecord:i}=U.parse(n),a=r.reduce((n,r)=>{let a=t.steps?.[r]?.output?.data;return a?i?{...n,[r]:{...a}}:(Object.keys(a).forEach(t=>{n[t]={...(0,e.notMissing)(n[t])?n[t]:{},[r]:{...a[t]}}}),n):n},{});return{block:{...t},successful:!0,output:{data:i?a:Object.values(a)}}},ae=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=W(e,t,oe(r,a,i));return n.push(...o.errors||[]),o.record})}else{let a=W(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}},oe=(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},{}),W=(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}=se(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}},se=(e,n,r)=>{let{expression:i,targetFieldKey:a}=r;if(!i)return{error:{message:`Expression is empty`,id:n,targetField:a}};let o;try{o=(0,t.evaluate)(i,e)}catch{return{error:{message:`Invalid expression`,id:n,targetField:a}}}return o===void 0?{error:{message:`Expression returned no value`,id:n,targetField:a}}:{value:o}},ce=t=>{switch(t){case`country_alpha2code_by_alpha2code`:return e.getCountryAlpha2CodeByAlpha2Code;case`country_alpha3code_by_alpha3code`:return e.getCountryAlpha3CodeByAlpha3Code;case`country_code_by_country_code`:return e.getCountryCodeByCountryCode;case`country_name_by_country_name`:return e.getCountryNameByCountryName;case`country_name_by_alpha3code`:return e.getCountryNameByAlpha3Code;case`country_name_by_alpha2code`:return e.getCountryNameByAlpha2Code;case`country_name_by_country_code`:return e.getCountryNameByCountryCode;case`country_alpha3code_by_alpha2code`:return e.getCountryAlpha3CodeByAlpha2Code;case`country_alpha3code_by_country_name`:return e.getCountryAlpha3CodeByCountryName;case`country_alpha3code_by_country_code`:return e.getCountryAlpha3CodeByCountryCode;case`country_alpha2code_by_alpha3code`:return e.getCountryAlpha2CodeByAlpha3Code;case`country_alpha2code_by_country_name`:return e.getCountryAlpha2CodeByCountryName;case`country_alpha2code_by_country_code`:return e.getCountryAlpha2CodeByCountryCode;case`country_code_by_alpha2code`:return e.getCountryCodeByAlpha2Code;case`country_code_by_alpha3code`:return e.getCountryCodeByAlpha3Code;case`country_code_by_country_name`:return e.getCountryCodeByCountryName;case`country_subdivisions_by_alpha2code`:return e.getCountrySubDivisionsByAlpha2Code;case`country_subdivision_code_by_subdivision_name`:return e.getCountrySubDivisionCodeBySubDivisionName;case`country_alpha2code_by_citizenship`:return e.getCountryAlpha2CodeByCitizenship;case`country_subdivision_name_by_subdivision_code`:return e.getCountrySubDivisionNameBySubDivisionCode;case`document_file_format_from_extension`:return e.getDocumentFileFormatFromExtension;default:return}},G=(0,e.zStrictObject)({targetFieldKey:e.z.string(),alias:e.z.string().optional(),expression:e.z.string().optional(),values:e.z.unknown().optional(),type:e.z.enum([`string`,`number`,`boolean`,`datetime_string`,`enum`,`object`]),array:e.z.boolean().default(!1),custom:e.z.boolean().default(!1),hidden:e.z.boolean().default(!1),enumMapper:(0,e.zStrictObject)({matcher:e.z.string().or((0,e.zStrictObject)({matchExpression:e.z.string(),value:e.z.string()}).array())}).optional(),properties:e.z.lazy(()=>G).array().optional(),requiredScopes:e.z.string().array().optional()}),K=e.z.object({fields:G.array(),dataSource:e.z.string(),externalSources:e.z.record(e.z.string(),e.z.string()).optional()}),le=e.z.object({data:e.z.unknown()}),ue=async({block:e,params:n})=>{let r=[],{fields:i,dataSource:a,externalSources:o}=K.parse(n),s=(0,t.evaluate)(a,e);if(!i||!a||e?.debug?.custom_mappings===`disabled`||!s)return{block:e,successful:!0};let c=Object.keys(o??{})?.reduce((n,r)=>(n[r]=(0,t.evaluate)(o?.[r],e),n),{}),l;if(Array.isArray(s))l=s.map(e=>{let t=q(i,{...e,external:c});return r.push(...t?.errors||[]),t?.record});else{let e=q(i,{...s,external:c});l=e?.record,r.push(...e?.errors||[])}return{block:{...e},successful:!0,output:{data:l},errors:Object.keys(r).length>0?r:void 0}},de=(t,n,r)=>{if(Array.isArray(t.values))return t.values.map(i=>{let a=J(i,n),o=q(t.properties,a);return(0,e.notMissing)(o?.errors)&&r.push(...o.errors),o?.record}).filter(Boolean)},fe=(n,r,i)=>{if(n.expression)try{let a=(0,t.evaluate)(n.expression,r);if(Array.isArray(a))return a.map(t=>{let r=q(n.properties,t);return(0,e.notMissing)(r?.errors)&&i.push(...r.errors),r?.record}).filter(Boolean);{let t=q(n.properties,a);return(0,e.notMissing)(t?.errors)&&i.push(...t.errors),t?.record}}catch{i.push({message:`Invalid expression`,id:r?.id,targetField:n.targetFieldKey});return}},pe=(t,n,r)=>{let i=(0,e.notMissing)(t.values)?t.values:n,a=q(t.properties,i);return(0,e.notMissing)(a?.errors)&&r.push(...a.errors),a?.record},me=(t,n,r)=>{if(!(0,e.isMissing)(t.properties))return t.array&&Array.isArray(t.values)?de(t,n,r):t.array&&t.expression?fe(t,n,r):pe(t,n,r)},q=(e,t)=>{if(!t)return;let n={},r=[],i={};for(let a of e){let e;if(a.type===`object`){if(e=me(a,t,r),e===void 0)continue}else{let{error:n,value:i}=he(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}},J=(e,n)=>{if(e==null)return e;if(typeof e==`string`){if((0,t.isValidExpression)(e))try{return(0,t.evaluate)(e,n)}catch{return e}return e}if(Array.isArray(e))return e.map(e=>J(e,n));if(typeof e==`object`){let t={...e};for(let[e,r]of Object.entries(t))t[e]=J(r,n);return t}return e},he=(e,t,n)=>{switch(n.type){case`string`:case`number`:case`boolean`:case`datetime_string`:return ge(n,t,e);case`enum`:return _e(n,t,e);default:return{error:{message:`Invalid type`,id:t,targetField:n.targetFieldKey}}}},ge=(e,n,r)=>{if(!e.expression)return{error:{message:`Expression is empty`,id:n,targetField:e.targetFieldKey}};let i;try{i=(0,t.evaluate)(e.expression,r)}catch{return{error:{message:`Invalid expression`,id:n,targetField:e.targetFieldKey}}}return i===void 0?{error:{message:`Expression returned no value`,id:n,targetField:e.targetFieldKey}}:{value:i}},_e=(n,r,i)=>{let a=ge(n,r,i),o=(0,e.notMissing)(a.value)?a.value:null;if(n.enumMapper===void 0)return{error:{message:`Enum mapper was not defined`,id:r,targetField:n.targetFieldKey}};let s=n.enumMapper.matcher;if((0,e.isString)(s)){let t=ce(s);return(0,e.notMissing)(t)?{value:{value:((0,e.notMissing)(o)?t(o):null)??`unmapped_value`,source_value:o}}:{error:{message:`The built-in matcher "${s}" is not supported`,id:r,targetField:n.targetFieldKey}}}for(let e of s){let{matchExpression:n,value:r}=e;if((0,t.evaluate)(n,i)===!0)return{value:{value:r,source_value:o}}}return{value:{value:`unmapped_value`,source_value:o}}},ve=[`data`,`headers`],ye=(0,e.zStrictObject)({type:e.z.literal(`none`)}),be=(0,e.zStrictObject)({type:e.z.literal(`basic`),username:e.z.string().optional(),password:e.z.string().optional(),encoding:e.z.string().optional()}),xe=(0,e.zStrictObject)({type:e.z.literal(`bearer`),token:e.z.string(),includeBearer:e.z.boolean().optional().default(!0)}),Se=(0,e.zStrictObject)({type:e.z.literal(`oauth2`),authorizationUrl:e.z.string().optional(),authorizationParams:e.z.record(e.z.string(),e.z.string()).optional(),tokenUrl:e.z.string().optional(),tokenParams:e.z.record(e.z.string(),e.z.string()).optional(),tokenExpiresIn:e.z.number().optional(),tokenRefreshExpiresIn:e.z.number().optional(),token:e.z.string(),includeBearer:e.z.boolean().optional().default(!0),scopes:e.z.string().optional(),scopeDelimiter:e.z.string().optional(),customHeaders:e.z.record(e.z.string(),e.z.string()).optional(),pkce:e.z.boolean().optional()}),Ce=e.z.discriminatedUnion(`type`,[ye,be,xe,Se]),we=e.z.object({baseUrl:e.z.string(),url:e.z.string(),method:e.z.enum(n.HttpMethods),response:(0,e.zStrictObject)({indexField:e.z.string().optional(),dataKey:e.z.string().optional(),nextKey:e.z.string().optional(),nextKeyIn:e.z.enum(ve).optional()}).optional(),iterator:(0,e.zStrictObject)({key:e.z.string(),in:e.z.enum(n.RequestParameterLocations),condition:e.z.string().optional()}),cursor:(0,e.zStrictObject)({token:e.z.string().optional().nullable(),position:e.z.number().optional().nullable()}).optional(),customErrors:n.CUSTOM_ERROR_CONFIG_SCHEMA.array().optional(),args:(0,e.zStrictObject)({name:e.z.string(),value:e.z.unknown(),in:e.z.enum(n.RequestParameterLocations),condition:e.z.string().optional()}).array().optional()}),Te=(0,e.zStrictObject)({data:e.z.unknown().optional(),raw:e.z.unknown().optional(),statusCode:e.z.number(),message:e.z.string().optional(),next:e.z.string().optional().nullable(),position:e.z.number().optional()}).optional(),Ee=25,De=async({block:r,params:i})=>{let a=n.RequestClientFactory.build();if(!r.httpClient)throw Error(`HTTP client is not configured`);let{args:o}=i,s=Number(r.inputs?.page_size),c=Number.isNaN(s)?25:s,l=o?o.filter(e=>!e.condition||(0,t.evaluate)(e.condition,r)===!0).map(e=>({...e,condition:void 0})):void 0,u=i?(0,t.safeEvaluateRecord)({...i,args:l},r):{},d={...u,customErrors:i?.customErrors,iterator:{...u?.iterator??{},condition:i?.iterator?.condition}},{baseUrl:f,url:p,method:m,response:h,iterator:g,cursor:_,customErrors:v,args:y}=we.parse(d),b=u?.authentication?.[r.context.authenticationType]?.[r.context.environment]?.authorization,x=Ce.parse(b),S=y?(0,n.parseRequestParameters)(y):{query:{},body:{},headers:{}},C=(0,n.createAuthorizationHeaders)(x),w={...S?.headers??{},...C},T=r.connector?.rateLimit,E=r.connector?.concurrency,D=T!==void 0||E!==void 0?{rateLimit:T,concurrency:E}:void 0,O=_?.token??null,k=null,A=null,j=[],M=[],N=[],P=c,F=_?.position??0,I=!0,L=!0,R=!0;do{I?I=!1:F=0,O!==null&&(g.in===`query`?(0,e.isObject)(O)?Object.entries(O).forEach(([e,t])=>{S.query[`${g.key}[${e}]`]=t?.toString()??``}):S.query[g.key]=O.toString():g.in===`body`&&(S.body[g.key]=O));let i;try{i=await a.performRequest({httpClient:r.httpClient,url:`${f}${p}`,queryParams:{...S?.query},method:m,headers:{...w},body:{...S?.body},customErrorConfigs:v,requestConfig:D})}catch(e){let t=e;return{block:r,successful:!1,errors:[(0,n.serializeHttpResponseError)(e)],output:{statusCode:t?.response?.status??500,message:t?.response?.message}}}k=O,M=h?.dataKey?i.data[h?.dataKey]:i.data;let o=M?.slice(F,F+P);P-=o.length,F+=o.length,N.push(i),j=j.concat(o),A=i?.status,O=Oe({result:i,response:h}),R=(0,e.notMissing)(g.condition)?(0,t.safeEvaluate)(g.condition,i.data)===!0:!0,o.length===M.length&&P===0&&(F=0,k=O),L=(0,e.isMissing)(O)&&j.length<c}while((0,e.notMissing)(O)&&R&&j.length<c&&M?.length>0);return{block:r,successful:!0,output:{data:je(j,h),raw:N,statusCode:A,next:L?void 0:k,position:L?void 0:F}}},Oe=({result:t,response:n})=>{if((0,e.isMissing)(n?.nextKey))return null;let r=n?.nextKeyIn??`data`,i=n?.nextKey;return r===`headers`?ke(t.headers,i):Ae(t.data,i)},ke=(t,n)=>{if((0,e.isMissing)(t)||typeof t!=`object`)return null;let r=n.toLowerCase(),[,i]=Object.entries(t).find(([e])=>e?.toLowerCase()===r)??[];if(Array.isArray(i)){let e=i.find(e=>typeof e==`string`&&e!==``||typeof e==`number`);return typeof e==`string`||typeof e==`number`?e:null}return typeof i==`string`&&i!==``||typeof i==`number`?i:null},Ae=(n,r)=>{if((0,e.isMissing)(n)||typeof n!=`object`||!n)return null;let i=(0,t.safeEvaluate)(`$.${r}`,n);return(0,e.isMissing)(i)?null:typeof i==`string`||typeof i==`number`||typeof i==`object`?i:null},je=(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},Me=(0,e.zStrictObject)({type:e.z.literal(`none`)}),Ne=(0,e.zStrictObject)({type:e.z.literal(`basic`),username:e.z.string().optional(),password:e.z.string().optional(),encoding:e.z.string().optional()}),Pe=(0,e.zStrictObject)({type:e.z.literal(`bearer`),token:e.z.string(),includeBearer:e.z.boolean().optional().default(!0)}),Fe=(0,e.zStrictObject)({type:e.z.literal(`oauth2`),authorizationUrl:e.z.string().optional(),authorizationParams:e.z.record(e.z.string(),e.z.string()).optional(),tokenUrl:e.z.string().optional(),tokenParams:e.z.record(e.z.string(),e.z.string()).optional(),tokenExpiresIn:e.z.number().optional(),tokenRefreshExpiresIn:e.z.number().optional(),token:e.z.string(),includeBearer:e.z.boolean().optional().default(!0),scopes:e.z.string().optional(),scopeDelimiter:e.z.string().optional(),customHeaders:e.z.record(e.z.string(),e.z.string()).optional(),pkce:e.z.boolean().optional()}),Ie=e.z.discriminatedUnion(`type`,[Me,Ne,Pe,Fe]),Le=e.z.object({baseUrl:e.z.string().optional(),url:e.z.string(),method:e.z.enum(n.HttpMethods),authorization:Ie.optional(),response:(0,e.zStrictObject)({collection:e.z.boolean().optional(),indexField:e.z.string().optional(),dataKey:e.z.string().optional()}).optional(),customErrors:n.CUSTOM_ERROR_CONFIG_SCHEMA.array().optional(),args:(0,e.zStrictObject)({name:e.z.string(),value:e.z.unknown(),in:e.z.enum(n.RequestParameterLocations),condition:e.z.string().optional()}).array().optional()}),Re=(0,e.zStrictObject)({data:e.z.unknown().optional(),raw:e.z.unknown().optional(),statusCode:e.z.number(),message:e.z.string().optional()}).optional(),ze=async({block:r,params:i})=>{let a=n.RequestClientFactory.build();if(!r.httpClient)throw Error(`HTTP client is not configured`);let{args:o}=i,s=o?o.filter(e=>!e.condition||(0,t.evaluate)(e.condition,r)===!0).map(e=>({...e,condition:void 0})):void 0,c=i?(0,t.safeEvaluateRecord)({...i,args:s},r):{},l={...c,customErrors:i?.customErrors},{baseUrl:u,url:d,method:f,response:p,authorization:m,customErrors:h,args:g}=Le.parse(l),_=c?.authentication?.[r.context.authenticationType]?.[r.context.environment]?.authorization,v=g?(0,n.parseRequestParameters)(g):{query:{},body:{},headers:{}},y=(0,n.createAuthorizationHeaders)((0,e.notMissing)(m)?m:Ie.parse(_)),b={...v?.headers??{},...y},x=r.connector?.rateLimit,S=r.connector?.concurrency,C=x!==void 0||S!==void 0?{rateLimit:x,concurrency:S}:void 0,w;try{w=await a.performRequest({httpClient:r.httpClient,url:`${u}${d}`,queryParams:v?.query,method:f,headers:b,body:v?.body,customErrorConfigs:h,requestConfig:C})}catch(e){let t=e;return{block:r,successful:!1,errors:[(0,n.serializeHttpResponseError)(e)],output:{statusCode:t?.response?.status??500,message:t?.response?.message}}}return{block:r,successful:!0,output:{data:Be(p?.dataKey?w.data[p?.dataKey]:w.data,p),raw:w,statusCode:w?.status,message:w?.message}}},Be=(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},Ve=(0,e.zStrictObject)({type:e.z.literal(`none`)}),He=(0,e.zStrictObject)({type:e.z.literal(`basic`),username:e.z.string().optional(),password:e.z.string().optional(),encoding:e.z.string().optional()}),Ue=(0,e.zStrictObject)({type:e.z.literal(`bearer`),token:e.z.string(),includeBearer:e.z.boolean().optional().default(!0)}),We=(0,e.zStrictObject)({type:e.z.literal(`oauth2`),authorizationUrl:e.z.string().optional(),authorizationParams:e.z.record(e.z.string(),e.z.string()).optional(),tokenUrl:e.z.string().optional(),tokenParams:e.z.record(e.z.string(),e.z.string()).optional(),tokenExpiresIn:e.z.number().optional(),tokenRefreshExpiresIn:e.z.number().optional(),token:e.z.string(),includeBearer:e.z.boolean().optional().default(!0),scopes:e.z.string().optional(),scopeDelimiter:e.z.string().optional(),customHeaders:e.z.record(e.z.string(),e.z.string()).optional(),pkce:e.z.boolean().optional()}),Y=e.z.discriminatedUnion(`type`,[Ve,He,Ue,We]),Ge=[`data`,`headers`],Ke=e.z.object({baseUrl:e.z.string().optional(),url:e.z.string(),method:e.z.enum(n.HttpMethods),authorization:e.z.discriminatedUnion(`type`,[(0,e.zStrictObject)({type:e.z.literal(`none`)}),(0,e.zStrictObject)({type:e.z.literal(`basic`),username:e.z.string().optional(),password:e.z.string().optional(),encoding:e.z.string().optional()}),(0,e.zStrictObject)({type:e.z.literal(`bearer`),token:e.z.string(),includeBearer:e.z.boolean().optional().default(!0)}),(0,e.zStrictObject)({type:e.z.literal(`oauth2`),token:e.z.string(),includeBearer:e.z.boolean().optional().default(!0)})]).optional(),envelope:e.z.union([e.z.string(),e.z.record(e.z.string(),e.z.unknown())]).optional(),namespaces:e.z.strictObject({namespaceIdentifier:e.z.string(),namespace:e.z.string()}).array().optional(),soapOperation:e.z.string().optional(),soapAction:e.z.string().optional(),useSoapContext:e.z.boolean().optional().default(!0),response:(0,e.zStrictObject)({collection:e.z.boolean().optional(),indexField:e.z.string().optional(),dataKey:e.z.string().optional(),nextKey:e.z.string().optional(),nextKeyIn:e.z.enum(Ge).optional()}).optional(),iterator:(0,e.zStrictObject)({key:e.z.string(),in:e.z.enum(n.RequestParameterLocations)}),cursor:(0,e.zStrictObject)({token:e.z.string().optional().nullable(),position:e.z.number().optional().nullable()}).optional(),customErrors:n.CUSTOM_ERROR_CONFIG_SCHEMA.array().optional(),args:(0,e.zStrictObject)({name:e.z.string(),value:e.z.unknown(),in:e.z.enum(n.RequestParameterLocations),condition:e.z.string().optional()}).array().optional()}),qe=(0,e.zStrictObject)({data:e.z.unknown().optional(),raw:e.z.unknown().optional(),statusCode:e.z.number(),message:e.z.string().optional(),next:e.z.string().optional().nullable(),position:e.z.number().optional()}).optional(),Je=25,Ye=async({block:r,params:i})=>{let a=n.RequestClientFactory.build(`soap`);if(!r.httpClient)throw Error(`HTTP client is not configured`);let{args:o}=i,s=Number(r.inputs?.page_size),c=Number.isNaN(s)?25:s,l=o?o.filter(e=>!e.condition||(0,t.evaluate)(e.condition,r)===!0).map(e=>({...e,condition:void 0})):void 0,u=i?(0,t.safeEvaluateRecord)({...i,args:l},r):{},d={...u,customErrors:i?.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}=Ke.parse(d),E=u?.authentication?.[r.context.authenticationType]?.[r.context.environment]?.authorization,D=b?(0,n.parseRequestParameters)(b):{query:{},body:{},headers:{}},O=(0,n.createAuthorizationHeaders)((0,e.notMissing)(v)?v:Y.parse(E)),k={...D?.headers??{},...O},A=r.connector?.rateLimit,j=r.connector?.concurrency,M={...(A!==void 0||j!==void 0)&&{rateLimit:A,concurrency:j},soapOperation:x,namespaces:S,envelope:C,soapAction:w,soapContext:T?{username:r.credentials?.username,password:r.credentials?.password}:void 0},N=_?.token??null,P=null,F=null,I=[],L=[],R=[],z=c,B=_?.position??0,V=!0,H;do{V?V=!1:B=0,N!==null&&(g.in===`query`?D.query[g.key]=N.toString():g.in===`body`&&(D.body[g.key]=N));let t;try{t=await a.performRequest({httpClient:r.httpClient,url:`${f}${p}`,queryParams:D?.query,method:m,headers:k,body:D?.body,customErrorConfigs:y,requestConfig:M})}catch(e){let t=e;return{block:r,successful:!1,errors:[(0,n.serializeHttpResponseError)(e)],output:{statusCode:t?.response?.status??500,message:t?.response?.message}}}P=N,L=h?.dataKey?t.data[h?.dataKey]:t.data,Array.isArray(L)||(L=L?[L]:[]);let i=L?.slice(B,B+z);z-=i.length,B+=i.length,R.push(t),I=I.concat(i),F=t?.status,N=Xe({result:t,response:h}),i.length===L.length&&z===0&&(B=0,P=N),H=(0,e.isMissing)(N)&&I.length<c}while((0,e.notMissing)(N)&&I.length<c&&L?.length>0);return{block:r,successful:!0,output:{data:$e(I,h),raw:R,statusCode:F,next:H?void 0:P,position:H?void 0:B}}},Xe=({result:t,response:n})=>{if((0,e.isMissing)(n?.nextKey))return null;let r=n?.nextKeyIn??`data`,i=n?.nextKey;return r===`headers`?Ze(t.headers,i):Qe(t.data,i)},Ze=(t,n)=>{if((0,e.isMissing)(t)||typeof t!=`object`)return null;let r=n.toLowerCase(),[,i]=Object.entries(t).find(([e])=>e?.toLowerCase()===r)??[];if(Array.isArray(i)){let e=i.find(e=>typeof e==`string`&&e!==``||typeof e==`number`);return typeof e==`string`||typeof e==`number`?e:null}return typeof i==`string`&&i!==``||typeof i==`number`?i:null},Qe=(t,n)=>{if((0,e.isMissing)(t)||typeof t!=`object`||!t)return null;let r=t[n];return(0,e.isMissing)(r)?null:typeof r==`string`||typeof r==`number`?r:null},$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},et=e.z.object({baseUrl:e.z.string().optional(),url:e.z.string(),method:e.z.enum(n.HttpMethods),authorization:Y.optional(),envelope:e.z.union([e.z.string(),e.z.record(e.z.string(),e.z.unknown())]).optional(),namespaces:e.z.strictObject({namespaceIdentifier:e.z.string(),namespace:e.z.string()}).array().optional(),soapOperation:e.z.string().optional(),soapAction:e.z.string().optional(),useSoapContext:e.z.boolean().optional().default(!0),response:(0,e.zStrictObject)({collection:e.z.boolean().optional(),indexField:e.z.string().optional(),dataKey:e.z.string().optional()}).optional(),customErrors:n.CUSTOM_ERROR_CONFIG_SCHEMA.array().optional(),args:(0,e.zStrictObject)({name:e.z.string(),value:e.z.unknown(),in:e.z.enum(n.RequestParameterLocations),condition:e.z.string().optional()}).array().optional()}),tt=(0,e.zStrictObject)({data:e.z.unknown().optional(),raw:e.z.unknown().optional(),statusCode:e.z.number(),message:e.z.string().optional()}).optional(),nt=async({block:r,params:i})=>{let a=n.RequestClientFactory.build(`soap`);if(!r.httpClient)throw Error(`HTTP client is not configured`);let{args:o}=i,s=o?o.filter(e=>!e.condition||(0,t.evaluate)(e.condition,r)===!0).map(e=>({...e,condition:void 0})):void 0,c=i?(0,t.safeEvaluateRecord)({...i,args:s},r):{},l={...c,customErrors:i?.customErrors},{baseUrl:u,url:d,method:f,response:p,authorization:m,customErrors:h,args:g,soapOperation:_,namespaces:v,envelope:y,soapAction:b,useSoapContext:x}=et.parse(l),S=c?.authentication?.[r.context.authenticationType]?.[r.context.environment]?.authorization,C=g?(0,n.parseRequestParameters)(g):{query:{},body:{},headers:{}},w=(0,n.createAuthorizationHeaders)((0,e.notMissing)(m)?m:Y.parse(S)),T={...C?.headers??{},...w},E=r.connector?.rateLimit,D=r.connector?.concurrency,O={...(E!==void 0||D!==void 0)&&{rateLimit:E,concurrency:D},soapOperation:_,namespaces:v,envelope:y,soapAction:b,soapContext:x?{username:r.credentials?.username,password:r.credentials?.password}:void 0},k;try{k=await a.performRequest({httpClient:r.httpClient,url:`${u}${d}`,queryParams:C?.query,method:f,headers:T,body:C?.body,customErrorConfigs:h,requestConfig:O})}catch(e){let t=e;return{block:r,successful:!1,errors:[(0,n.serializeHttpResponseError)(e)],output:{statusCode:t?.response?.status??500,message:t?.response?.message}}}return{block:r,successful:!0,output:{data:rt(p?.dataKey?k.data[p?.dataKey]:k.data,p),raw:k,statusCode:k?.status,message:k?.message}}},rt=(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},it=e.z.object({values:e.z.string().or(e.z.record(e.z.string(),e.z.unknown())).or(e.z.array(e.z.unknown()))}),at=e.z.object({data:e.z.unknown()}),ot=async({block:e,params:t})=>{let{values:n}=it.parse(t),r=Array.isArray(n)?n.map(t=>st(t,e)):st(n,e);return{block:{...e},successful:!0,output:{data:r}}},st=(n,r)=>(0,e.isString)(n)?(0,t.safeEvaluate)(n,r):(0,e.isObject)(n)?(0,t.safeEvaluateRecord)(n,r):n,ct=e.z.object({targetFieldKey:e.z.string(),type:e.z.enum([`string`,`number`,`boolean`,`datetime_string`,`enum`,`object`]),array:e.z.boolean().default(!1),custom:e.z.boolean().default(!1),hidden:e.z.boolean().default(!1),properties:e.z.lazy(()=>ct).array().optional(),requiredScopes:e.z.string().array().optional()}),lt=e.z.object({fields:ct.array().optional(),dataSource:e.z.string()}),ut=e.z.object({data:e.z.unknown()});let X=function(e){return e.String=`string`,e.Number=`number`,e.Boolean=`boolean`,e.DateTimeString=`datetime_string`,e}({});const Z=({value:t,type:n,format:r})=>{if((0,e.isMissing)(t))return null;switch(n){case X.String:return(0,e.safeParseToString)({value:t});case X.Number:return(0,e.safeParseToNumber)({value:t});case X.Boolean:return(0,e.safeParseToBoolean)({value:t});case X.DateTimeString:return(0,e.safeParseToDateTimeString)({value:t,format:r});default:return t}},dt=e=>Object.values(X).includes(e),ft=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=>pt(e,t)):pt(e.result,t),{block:{...e,result:n},successful:!0}},pt=(t,n)=>{let r={...t};return n.forEach(n=>{let{targetFieldKey:i,type:a}=n;dt(a)&&(!n.custom&&(0,e.notMissing)(r[i])?r[i]=Z({value:t[i],type:a}):r.unified_custom_fields&&(0,e.notMissing)(r.unified_custom_fields?.[i])&&(r.unified_custom_fields[i]=Z({value:t.unified_custom_fields?.[i],type:a})))}),{...r}},mt=async({block:e,params:n})=>{let{fields:r,dataSource:i}=lt.parse(n),a=(0,t.evaluate)(i,e);if(!r||e?.debug?.custom_mappings===`disabled`)return{block:e,successful:!0};let o;return o=Array.isArray(a)?a.map(e=>Q(e,r)):Q(a,r),{block:{...e},successful:!0,output:{data:o}}},ht=(e,t)=>!e.properties||!t?t:Array.isArray(t)?t.map(t=>typeof t==`object`&&t?Q(t,e.properties):t):typeof t==`object`&&t?Q(t,e.properties):t,Q=(t,n)=>{let r={...t};return n.forEach(n=>{let{targetFieldKey:i,type:a,array:o}=n;a===`object`?!n.custom&&(0,e.notMissing)(r[i])?r[i]=ht(n,t[i]):r.unified_custom_fields&&(0,e.notMissing)(r.unified_custom_fields?.[i])&&(r.unified_custom_fields[i]=ht(n,t.unified_custom_fields?.[i])):dt(a)&&(!n.custom&&(0,e.notMissing)(r[i])?(!o||!Array.isArray(r[i]))&&(r[i]=Z({value:t[i],type:a})):r.unified_custom_fields&&(0,e.notMissing)(r.unified_custom_fields?.[i])&&(!o||!Array.isArray(r.unified_custom_fields[i]))&&(r.unified_custom_fields[i]=Z({value:t.unified_custom_fields?.[i],type:a})))}),{...r}};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}({});const gt={[$.TYPECAST]:{v1:{fn:ft},v2:{fn:mt,inputSchema:lt,outputSchema:ut}},[$.MAP_FIELDS]:{v1:{fn:ae},v2:{fn:ue,inputSchema:K,outputSchema:le}},[$.REQUEST]:{v1:{fn:ze,inputSchema:Le,outputSchema:Re}},[$.GROUP_DATA]:{v1:{fn:ie,inputSchema:U,outputSchema:re}},[$.PAGINATED_REQUEST]:{v1:{fn:De,inputSchema:we,outputSchema:Te}},[$.SOAP_REQUEST]:{v1:{fn:nt,inputSchema:et,outputSchema:tt}},[$.SOAP_PAGINATED_REQUEST]:{v1:{fn:Ye,inputSchema:Ke,outputSchema:qe}},[$.STATIC_VALUES]:{v1:{fn:ot,inputSchema:it,outputSchema:at}}},_t=(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},vt={build({functionName:e,version:t=`1`,validateSchemas:n=!1,stepFunctionsList:r=gt}){let i=r?.[e]?.[`v${t}`];if(!i)throw Error(`Unknown step function: ${e} v${t}`);return n?{...i,fn:_t(i,e)}:i}};exports.AUTHORIZATION_SCHEMA=Y,exports.COMPOSITE_ID_LATEST_VERSION=1,exports.CoreError=p,exports.INPUT_ENUM_REGISTRY=M,exports.ReleaseStages=F,exports.StepFunctionName=$,exports.StepFunctionsFactory=vt,exports.StepFunctionsRegistry=gt,exports.areCursorsEqual=H,exports.decodeCompositeId=S,exports.encodeCompositeId=x,exports.expandCursor=B,exports.getCategoryDetails=i,exports.getInputEnumValues=N,exports.isCompositeId=j,exports.isCoreError=ne,exports.isCursorEmpty=ee,exports.isValidCategory=a,exports.isValidEnumRef=P,exports.minifyCursor=R,exports.updateCursor=te;
1
+ let e=require(`@stackone/utils`),t=require(`@stackone/expressions`),n=require(`@stackone/transport`);const r={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`}},i=e=>r[e.toLowerCase()]??null,a=e=>!!r[e.toLowerCase()],o=`so1!`,s=(0,e.encodeToBase64)(`so1!`),c=`:`,l=`,`,u=RegExp(`(?<!\\\\):`,`g`),d=RegExp(`(?<!\\\\),`,`g`),f=1;var p=class e extends Error{constructor({category:t,name:n,type:r,context:i,message:a}){super(a),this.name=n??`CoreError`,this.type=r,this.category=t,this.context=i,Error.captureStackTrace&&Error.captureStackTrace(this,e)}toString(){let e=this.message?`: ${this.message}`:``;return`${this.category}-${this.name} [${this.type}]${e}`}},m=class extends p{constructor(e,t,n){super({category:`CompositeId`,name:t??`BaseCompositeIdError`,type:e,message:n})}},h=class extends m{constructor(e){super(`COMPOSITE_ID_MISSING_HEADER_ERROR`,`CompositeIdMissingHeaderError`,e??`Invalid compositeId, missing header`)}},g=class extends m{constructor(e){super(`COMPOSITE_ID_MISSING_BODY_ERROR`,`CompositeIdMissingBodyError`,e??`Invalid compositeId, missing body`)}},_=class extends m{constructor(e){super(`COMPOSITE_ID_UNKNOWN_IDENTIFIER_ERROR`,`CompositeIdUnknownIdentifierError`,e??`Invalid compositeId, unknown identifier`)}},v=class extends m{constructor(e){super(`COMPOSITE_ID_UNSUPPORTED_VERSION_ERROR`,`CompositeIdUnsupportedVersionError`,e??`Invalid compositeId, unsupported version`)}};const y=t=>!(0,e.isMissing)(t)&&`value`in t&&t.value!==void 0,b=t=>!(0,e.isMissing)(t)&&`identifiers`in t&&t.identifiers!==void 0,x=(e,t={version:1})=>{if(t.version===1)return D(C(e,t.aliases));throw new v(`Cannot generate ID, unsupported version number: ${t.version}`)},S=(e,t={version:1})=>{let n=E(e,t),r={};return n&&n.split(d).forEach(e=>{let[n,i]=e.split(u),a=T(n,t.aliases??{});r[a]=A(i)}),r},C=(e,t={})=>{if(y(e))return w({identifier:e,compositeIdAliases:t,isSoleIdentifier:!0});if(b(e))return e.identifiers.map(e=>w({identifier:e,compositeIdAliases:t,isSoleIdentifier:!1})).join(`,`);throw new _},w=({identifier:e,compositeIdAliases:t,isSoleIdentifier:n})=>[n?`id`:t[e.key]||e.key,k(e.value)].filter(Boolean).join(`:`),T=(e,t)=>Object.keys(t).find(n=>t[n]===e)??e,E=(e,t)=>{if(t.version===1)return O(e);throw new v(`Cannot decode ID, unsupported version number: ${t.version}`)},D=t=>`${s}${(0,e.encodeToBase64)(t)}`,O=t=>{if(!t.startsWith(s))throw new h(`Trying to decode an ID without the header: ${t}`);let n=t.split(s)[1];if(!n)throw new g(`Trying to decode an ID without a body: ${t}`);return(0,e.decodeFromBase64)(n)},k=e=>[`,`,`:`].reduce((e,t)=>e.replace(t,`\\`+t),e),A=e=>[`,`,`:`].reduce((e,t)=>{let n=`\\`+t;return e.replace(RegExp(`\\\\`+n,`g`),t)},e),j=t=>(0,e.isMissing)(t)?!1:t.startsWith(s),M={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`]},N=e=>M[e],P=e=>e in M,F=[`preview`,`beta`,`ga`,`deprecated`],I=(0,e.zStrictObject)({r:e.z.record(e.z.string(),(0,e.zStrictObject)({n:e.z.number().optional().nullable(),c:e.z.string().optional().nullable(),p:e.z.number().optional().nullable()})),v:e.z.number(),t:e.z.number()}),L=(0,e.zStrictObject)({remote:e.z.record(e.z.string(),(0,e.zStrictObject)({pageNumber:e.z.number().optional(),providerPageCursor:e.z.string().optional(),position:e.z.number().optional()})),version:e.z.number(),timestamp:e.z.number()}),R=t=>(0,e.encodeToBase64)(JSON.stringify(z(t))),z=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}},B=t=>{try{if((0,e.isString)(t)){let n=(0,e.decodeFromBase64)(t),r=JSON.parse(n);return V(I.parse(r))}else return L.parse(t),t}catch{return null}},V=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}},H=(t,n)=>{let r=typeof t==`string`?B(t):t,i=typeof n==`string`?B(n):n;if(r===null||i===null)return r===i;let{timestamp:a,...o}=r,{timestamp:s,...c}=i;return(0,e.getContentHash)(o)===(0,e.getContentHash)(c)},ee=({cursor:t,ignoreStepIndex:n})=>(0,e.isMissing)(t)?!0:Object.keys(t?.remote??{}).reduce((r,i)=>{let a=t?.remote?.[i];return((0,e.isMissing)(n)||i!==n.toString())&&(r=r&&(0,e.isMissing)(a.pageNumber)&&(0,e.isMissing)(a.position)&&(0,e.isMissing)(a.providerPageCursor)),r},!0),te=({cursor:t,stepIndex:n,pageNumber:r,providerPageCursor:i,position:a})=>{let o={pageNumber:r??void 0,providerPageCursor:i??void 0,position:a??void 0},s=(0,e.isMissing)(r)&&(0,e.isMissing)(i)&&(0,e.isMissing)(a);return(0,e.isMissing)(t)?{remote:s?{}:{[n]:o},version:2,timestamp:Date.now()}:s?(delete t.remote[n],t):{...t,remote:{...t.remote,[n]:o}}},ne=e=>e instanceof p,U=e.z.object({stepsDataToGroup:e.z.array(e.z.string()),isSingleRecord:e.z.boolean().optional()}),re=e.z.object({data:e.z.unknown()}),ie=async({block:t,params:n})=>{let{stepsDataToGroup:r,isSingleRecord:i}=U.parse(n),a=r.reduce((n,r)=>{let a=t.steps?.[r]?.output?.data;return a?i?{...n,[r]:{...a}}:(Object.keys(a).forEach(t=>{n[t]={...(0,e.notMissing)(n[t])?n[t]:{},[r]:{...a[t]}}}),n):n},{});return{block:{...t},successful:!0,output:{data:i?a:Object.values(a)}}},ae=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=W(e,t,oe(r,a,i));return n.push(...o.errors||[]),o.record})}else{let a=W(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}},oe=(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},{}),W=(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}=se(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}},se=(e,n,r)=>{let{expression:i,targetFieldKey:a}=r;if(!i)return{error:{message:`Expression is empty`,id:n,targetField:a}};let o;try{o=(0,t.evaluate)(i,e)}catch{return{error:{message:`Invalid expression`,id:n,targetField:a}}}return o===void 0?{error:{message:`Expression returned no value`,id:n,targetField:a}}:{value:o}},ce=t=>{switch(t){case`country_alpha2code_by_alpha2code`:return e.getCountryAlpha2CodeByAlpha2Code;case`country_alpha3code_by_alpha3code`:return e.getCountryAlpha3CodeByAlpha3Code;case`country_code_by_country_code`:return e.getCountryCodeByCountryCode;case`country_name_by_country_name`:return e.getCountryNameByCountryName;case`country_name_by_alpha3code`:return e.getCountryNameByAlpha3Code;case`country_name_by_alpha2code`:return e.getCountryNameByAlpha2Code;case`country_name_by_country_code`:return e.getCountryNameByCountryCode;case`country_alpha3code_by_alpha2code`:return e.getCountryAlpha3CodeByAlpha2Code;case`country_alpha3code_by_country_name`:return e.getCountryAlpha3CodeByCountryName;case`country_alpha3code_by_country_code`:return e.getCountryAlpha3CodeByCountryCode;case`country_alpha2code_by_alpha3code`:return e.getCountryAlpha2CodeByAlpha3Code;case`country_alpha2code_by_country_name`:return e.getCountryAlpha2CodeByCountryName;case`country_alpha2code_by_country_code`:return e.getCountryAlpha2CodeByCountryCode;case`country_code_by_alpha2code`:return e.getCountryCodeByAlpha2Code;case`country_code_by_alpha3code`:return e.getCountryCodeByAlpha3Code;case`country_code_by_country_name`:return e.getCountryCodeByCountryName;case`country_subdivisions_by_alpha2code`:return e.getCountrySubDivisionsByAlpha2Code;case`country_subdivision_code_by_subdivision_name`:return e.getCountrySubDivisionCodeBySubDivisionName;case`country_alpha2code_by_citizenship`:return e.getCountryAlpha2CodeByCitizenship;case`country_subdivision_name_by_subdivision_code`:return e.getCountrySubDivisionNameBySubDivisionCode;case`document_file_format_from_extension`:return e.getDocumentFileFormatFromExtension;default:return}},G=(0,e.zStrictObject)({targetFieldKey:e.z.string(),alias:e.z.string().optional(),expression:e.z.string().optional(),values:e.z.unknown().optional(),type:e.z.enum([`string`,`number`,`boolean`,`datetime_string`,`enum`,`object`]),array:e.z.boolean().default(!1),custom:e.z.boolean().default(!1),hidden:e.z.boolean().default(!1),enumMapper:(0,e.zStrictObject)({matcher:e.z.string().or((0,e.zStrictObject)({matchExpression:e.z.string(),value:e.z.string()}).array())}).optional(),properties:e.z.lazy(()=>G).array().optional(),requiredScopes:e.z.string().array().optional()}),K=e.z.object({fields:G.array(),dataSource:e.z.string(),externalSources:e.z.record(e.z.string(),e.z.string()).optional()}),le=e.z.object({data:e.z.unknown()}),ue=async({block:e,params:n})=>{let r=[],{fields:i,dataSource:a,externalSources:o}=K.parse(n),s=(0,t.evaluate)(a,e);if(!i||!a||e?.debug?.custom_mappings===`disabled`||!s)return{block:e,successful:!0};let c=Object.keys(o??{})?.reduce((n,r)=>(n[r]=(0,t.evaluate)(o?.[r],e),n),{}),l;if(Array.isArray(s))l=s.map(e=>{let t=q(i,{...e,external:c});return r.push(...t?.errors||[]),t?.record});else{let e=q(i,{...s,external:c});l=e?.record,r.push(...e?.errors||[])}return{block:{...e},successful:!0,output:{data:l},errors:Object.keys(r).length>0?r:void 0}},de=(t,n,r)=>{if(Array.isArray(t.values))return t.values.map(i=>{let a=J(i,n),o=q(t.properties,a);return(0,e.notMissing)(o?.errors)&&r.push(...o.errors),o?.record}).filter(Boolean)},fe=(n,r,i)=>{if(n.expression)try{let a=(0,t.evaluate)(n.expression,r);if(Array.isArray(a))return a.map(t=>{let r=q(n.properties,t);return(0,e.notMissing)(r?.errors)&&i.push(...r.errors),r?.record}).filter(Boolean);{let t=q(n.properties,a);return(0,e.notMissing)(t?.errors)&&i.push(...t.errors),t?.record}}catch{i.push({message:`Invalid expression`,id:r?.id,targetField:n.targetFieldKey});return}},pe=(t,n,r)=>{let i=(0,e.notMissing)(t.values)?t.values:n,a=q(t.properties,i);return(0,e.notMissing)(a?.errors)&&r.push(...a.errors),a?.record},me=(t,n,r)=>{if(!(0,e.isMissing)(t.properties))return t.array&&Array.isArray(t.values)?de(t,n,r):t.array&&t.expression?fe(t,n,r):pe(t,n,r)},q=(e,t)=>{if(!t)return;let n={},r=[],i={};for(let a of e){let e;if(a.type===`object`){if(e=me(a,t,r),e===void 0)continue}else{let{error:n,value:i}=he(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}},J=(e,n)=>{if(e==null)return e;if(typeof e==`string`){if((0,t.isValidExpression)(e))try{return(0,t.evaluate)(e,n)}catch{return e}return e}if(Array.isArray(e))return e.map(e=>J(e,n));if(typeof e==`object`){let t={...e};for(let[e,r]of Object.entries(t))t[e]=J(r,n);return t}return e},he=(e,t,n)=>{switch(n.type){case`string`:case`number`:case`boolean`:case`datetime_string`:return ge(n,t,e);case`enum`:return _e(n,t,e);default:return{error:{message:`Invalid type`,id:t,targetField:n.targetFieldKey}}}},ge=(e,n,r)=>{if(!e.expression)return{error:{message:`Expression is empty`,id:n,targetField:e.targetFieldKey}};let i;try{i=(0,t.evaluate)(e.expression,r)}catch{return{error:{message:`Invalid expression`,id:n,targetField:e.targetFieldKey}}}return i===void 0?{error:{message:`Expression returned no value`,id:n,targetField:e.targetFieldKey}}:{value:i}},_e=(n,r,i)=>{let a=ge(n,r,i),o=(0,e.notMissing)(a.value)?a.value:null;if(n.enumMapper===void 0)return{error:{message:`Enum mapper was not defined`,id:r,targetField:n.targetFieldKey}};let s=n.enumMapper.matcher;if((0,e.isString)(s)){let t=ce(s);return(0,e.notMissing)(t)?{value:{value:((0,e.notMissing)(o)?t(o):null)??`unmapped_value`,source_value:o}}:{error:{message:`The built-in matcher "${s}" is not supported`,id:r,targetField:n.targetFieldKey}}}for(let e of s){let{matchExpression:n,value:r}=e;if((0,t.evaluate)(n,i)===!0)return{value:{value:r,source_value:o}}}return{value:{value:`unmapped_value`,source_value:o}}},ve=[`data`,`headers`],ye=(0,e.zStrictObject)({type:e.z.literal(`none`)}),be=(0,e.zStrictObject)({type:e.z.literal(`basic`),username:e.z.string().optional(),password:e.z.string().optional(),encoding:e.z.string().optional()}),xe=(0,e.zStrictObject)({type:e.z.literal(`bearer`),token:e.z.string(),includeBearer:e.z.boolean().optional().default(!0)}),Se=(0,e.zStrictObject)({type:e.z.literal(`oauth2`),authorizationUrl:e.z.string().optional(),authorizationParams:e.z.record(e.z.string(),e.z.string()).optional(),tokenUrl:e.z.string().optional(),tokenParams:e.z.record(e.z.string(),e.z.string()).optional(),tokenExpiresIn:e.z.number().optional(),tokenRefreshExpiresIn:e.z.number().optional(),token:e.z.string(),includeBearer:e.z.boolean().optional().default(!0),scopes:e.z.string().optional(),scopeDelimiter:e.z.string().optional(),customHeaders:e.z.record(e.z.string(),e.z.string()).optional(),pkce:e.z.boolean().optional()}),Ce=e.z.discriminatedUnion(`type`,[ye,be,xe,Se]),we=e.z.object({baseUrl:e.z.string(),url:e.z.string(),method:e.z.enum(n.HttpMethods),response:(0,e.zStrictObject)({indexField:e.z.string().optional(),dataKey:e.z.string().optional(),nextKey:e.z.string().optional(),nextKeyIn:e.z.enum(ve).optional()}).optional(),iterator:(0,e.zStrictObject)({key:e.z.string(),in:e.z.enum(n.RequestParameterLocations),condition:e.z.string().optional()}),cursor:(0,e.zStrictObject)({token:e.z.string().optional().nullable(),position:e.z.number().optional().nullable()}).optional(),customErrors:n.CUSTOM_ERROR_CONFIG_SCHEMA.array().optional(),args:(0,e.zStrictObject)({name:e.z.string(),value:e.z.unknown(),in:e.z.enum(n.RequestParameterLocations),condition:e.z.string().optional(),arrayFormat:e.z.enum(n.QueryArrayFormats).optional()}).array().optional()}),Te=(0,e.zStrictObject)({data:e.z.unknown().optional(),raw:e.z.unknown().optional(),statusCode:e.z.number(),message:e.z.string().optional(),next:e.z.string().optional().nullable(),position:e.z.number().optional()}).optional(),Ee=25,De=async({block:r,params:i})=>{let a=n.RequestClientFactory.build();if(!r.httpClient)throw Error(`HTTP client is not configured`);let{args:o}=i,s=Number(r.inputs?.page_size),c=Number.isNaN(s)?25:s,l=o?o.filter(e=>!e.condition||(0,t.evaluate)(e.condition,r)===!0).map(e=>({...e,condition:void 0})):void 0,u=i?(0,t.safeEvaluateRecord)({...i,args:l},r):{},d={...u,customErrors:i?.customErrors,iterator:{...u?.iterator??{},condition:i?.iterator?.condition}},{baseUrl:f,url:p,method:m,response:h,iterator:g,cursor:_,customErrors:v,args:y}=we.parse(d),b=u?.authentication?.[r.context.authenticationType]?.[r.context.environment]?.authorization,x=Ce.parse(b),S=y?(0,n.parseRequestParameters)(y):{query:{},body:{},headers:{}},C=(0,n.createAuthorizationHeaders)(x),w={...S?.headers??{},...C},T=r.connector?.rateLimit,E=r.connector?.concurrency,D=T!==void 0||E!==void 0?{rateLimit:T,concurrency:E}:void 0,O=_?.token??null,k=null,A=null,j=[],M=[],N=[],P=c,F=_?.position??0,I=!0,L=!0,R=!0;do{I?I=!1:F=0,O!==null&&(g.in===`query`?(0,e.isObject)(O)?Object.entries(O).forEach(([e,t])=>{S.query[`${g.key}[${e}]`]=t?.toString()??``}):S.query[g.key]=O.toString():g.in===`body`&&(S.body[g.key]=O));let i;try{i=await a.performRequest({httpClient:r.httpClient,url:`${f}${p}`,queryParams:{...S?.query},method:m,headers:{...w},body:{...S?.body},customErrorConfigs:v,requestConfig:D})}catch(e){let t=e;return{block:r,successful:!1,errors:[(0,n.serializeHttpResponseError)(e)],output:{statusCode:t?.response?.status??500,message:t?.response?.message}}}k=O,M=h?.dataKey?i.data[h?.dataKey]:i.data;let o=M?.slice(F,F+P);P-=o.length,F+=o.length,N.push(i),j=j.concat(o),A=i?.status,O=Oe({result:i,response:h}),R=(0,e.notMissing)(g.condition)?(0,t.safeEvaluate)(g.condition,i.data)===!0:!0,o.length===M.length&&P===0&&(F=0,k=O),L=(0,e.isMissing)(O)&&j.length<c}while((0,e.notMissing)(O)&&R&&j.length<c&&M?.length>0);return{block:r,successful:!0,output:{data:je(j,h),raw:N,statusCode:A,next:L?void 0:k,position:L?void 0:F}}},Oe=({result:t,response:n})=>{if((0,e.isMissing)(n?.nextKey))return null;let r=n?.nextKeyIn??`data`,i=n?.nextKey;return r===`headers`?ke(t.headers,i):Ae(t.data,i)},ke=(t,n)=>{if((0,e.isMissing)(t)||typeof t!=`object`)return null;let r=n.toLowerCase(),[,i]=Object.entries(t).find(([e])=>e?.toLowerCase()===r)??[];if(Array.isArray(i)){let e=i.find(e=>typeof e==`string`&&e!==``||typeof e==`number`);return typeof e==`string`||typeof e==`number`?e:null}return typeof i==`string`&&i!==``||typeof i==`number`?i:null},Ae=(n,r)=>{if((0,e.isMissing)(n)||typeof n!=`object`||!n)return null;let i=(0,t.safeEvaluate)(`$.${r}`,n);return(0,e.isMissing)(i)?null:typeof i==`string`||typeof i==`number`||typeof i==`object`?i:null},je=(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},Me=(0,e.zStrictObject)({type:e.z.literal(`none`)}),Ne=(0,e.zStrictObject)({type:e.z.literal(`basic`),username:e.z.string().optional(),password:e.z.string().optional(),encoding:e.z.string().optional()}),Pe=(0,e.zStrictObject)({type:e.z.literal(`bearer`),token:e.z.string(),includeBearer:e.z.boolean().optional().default(!0)}),Fe=(0,e.zStrictObject)({type:e.z.literal(`oauth2`),authorizationUrl:e.z.string().optional(),authorizationParams:e.z.record(e.z.string(),e.z.string()).optional(),tokenUrl:e.z.string().optional(),tokenParams:e.z.record(e.z.string(),e.z.string()).optional(),tokenExpiresIn:e.z.number().optional(),tokenRefreshExpiresIn:e.z.number().optional(),token:e.z.string(),includeBearer:e.z.boolean().optional().default(!0),scopes:e.z.string().optional(),scopeDelimiter:e.z.string().optional(),customHeaders:e.z.record(e.z.string(),e.z.string()).optional(),pkce:e.z.boolean().optional()}),Ie=e.z.discriminatedUnion(`type`,[Me,Ne,Pe,Fe]),Le=e.z.object({baseUrl:e.z.string().optional(),url:e.z.string(),method:e.z.enum(n.HttpMethods),authorization:Ie.optional(),response:(0,e.zStrictObject)({collection:e.z.boolean().optional(),indexField:e.z.string().optional(),dataKey:e.z.string().optional()}).optional(),customErrors:n.CUSTOM_ERROR_CONFIG_SCHEMA.array().optional(),args:(0,e.zStrictObject)({name:e.z.string(),value:e.z.unknown(),in:e.z.enum(n.RequestParameterLocations),condition:e.z.string().optional(),arrayFormat:e.z.enum(n.QueryArrayFormats).optional()}).array().optional()}),Re=(0,e.zStrictObject)({data:e.z.unknown().optional(),raw:e.z.unknown().optional(),statusCode:e.z.number(),message:e.z.string().optional()}).optional(),ze=async({block:r,params:i})=>{let a=n.RequestClientFactory.build();if(!r.httpClient)throw Error(`HTTP client is not configured`);let{args:o}=i,s=o?o.filter(e=>!e.condition||(0,t.evaluate)(e.condition,r)===!0).map(e=>({...e,condition:void 0})):void 0,c=i?(0,t.safeEvaluateRecord)({...i,args:s},r):{},l={...c,customErrors:i?.customErrors},{baseUrl:u,url:d,method:f,response:p,authorization:m,customErrors:h,args:g}=Le.parse(l),_=c?.authentication?.[r.context.authenticationType]?.[r.context.environment]?.authorization,v=g?(0,n.parseRequestParameters)(g):{query:{},body:{},headers:{}},y=(0,n.createAuthorizationHeaders)((0,e.notMissing)(m)?m:Ie.parse(_)),b={...v?.headers??{},...y},x=r.connector?.rateLimit,S=r.connector?.concurrency,C=x!==void 0||S!==void 0?{rateLimit:x,concurrency:S}:void 0,w;try{w=await a.performRequest({httpClient:r.httpClient,url:`${u}${d}`,queryParams:v?.query,method:f,headers:b,body:v?.body,customErrorConfigs:h,requestConfig:C})}catch(e){let t=e;return{block:r,successful:!1,errors:[(0,n.serializeHttpResponseError)(e)],output:{statusCode:t?.response?.status??500,message:t?.response?.message}}}return{block:r,successful:!0,output:{data:Be(p?.dataKey?w.data[p?.dataKey]:w.data,p),raw:w,statusCode:w?.status,message:w?.message}}},Be=(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},Ve=(0,e.zStrictObject)({type:e.z.literal(`none`)}),He=(0,e.zStrictObject)({type:e.z.literal(`basic`),username:e.z.string().optional(),password:e.z.string().optional(),encoding:e.z.string().optional()}),Ue=(0,e.zStrictObject)({type:e.z.literal(`bearer`),token:e.z.string(),includeBearer:e.z.boolean().optional().default(!0)}),We=(0,e.zStrictObject)({type:e.z.literal(`oauth2`),authorizationUrl:e.z.string().optional(),authorizationParams:e.z.record(e.z.string(),e.z.string()).optional(),tokenUrl:e.z.string().optional(),tokenParams:e.z.record(e.z.string(),e.z.string()).optional(),tokenExpiresIn:e.z.number().optional(),tokenRefreshExpiresIn:e.z.number().optional(),token:e.z.string(),includeBearer:e.z.boolean().optional().default(!0),scopes:e.z.string().optional(),scopeDelimiter:e.z.string().optional(),customHeaders:e.z.record(e.z.string(),e.z.string()).optional(),pkce:e.z.boolean().optional()}),Y=e.z.discriminatedUnion(`type`,[Ve,He,Ue,We]),Ge=[`data`,`headers`],Ke=e.z.object({baseUrl:e.z.string().optional(),url:e.z.string(),method:e.z.enum(n.HttpMethods),authorization:e.z.discriminatedUnion(`type`,[(0,e.zStrictObject)({type:e.z.literal(`none`)}),(0,e.zStrictObject)({type:e.z.literal(`basic`),username:e.z.string().optional(),password:e.z.string().optional(),encoding:e.z.string().optional()}),(0,e.zStrictObject)({type:e.z.literal(`bearer`),token:e.z.string(),includeBearer:e.z.boolean().optional().default(!0)}),(0,e.zStrictObject)({type:e.z.literal(`oauth2`),token:e.z.string(),includeBearer:e.z.boolean().optional().default(!0)})]).optional(),envelope:e.z.union([e.z.string(),e.z.record(e.z.string(),e.z.unknown())]).optional(),namespaces:e.z.strictObject({namespaceIdentifier:e.z.string(),namespace:e.z.string()}).array().optional(),soapOperation:e.z.string().optional(),soapAction:e.z.string().optional(),useSoapContext:e.z.boolean().optional().default(!0),response:(0,e.zStrictObject)({collection:e.z.boolean().optional(),indexField:e.z.string().optional(),dataKey:e.z.string().optional(),nextKey:e.z.string().optional(),nextKeyIn:e.z.enum(Ge).optional()}).optional(),iterator:(0,e.zStrictObject)({key:e.z.string(),in:e.z.enum(n.RequestParameterLocations)}),cursor:(0,e.zStrictObject)({token:e.z.string().optional().nullable(),position:e.z.number().optional().nullable()}).optional(),customErrors:n.CUSTOM_ERROR_CONFIG_SCHEMA.array().optional(),args:(0,e.zStrictObject)({name:e.z.string(),value:e.z.unknown(),in:e.z.enum(n.RequestParameterLocations),condition:e.z.string().optional(),arrayFormat:e.z.enum(n.QueryArrayFormats).optional()}).array().optional()}),qe=(0,e.zStrictObject)({data:e.z.unknown().optional(),raw:e.z.unknown().optional(),statusCode:e.z.number(),message:e.z.string().optional(),next:e.z.string().optional().nullable(),position:e.z.number().optional()}).optional(),Je=25,Ye=async({block:r,params:i})=>{let a=n.RequestClientFactory.build(`soap`);if(!r.httpClient)throw Error(`HTTP client is not configured`);let{args:o}=i,s=Number(r.inputs?.page_size),c=Number.isNaN(s)?25:s,l=o?o.filter(e=>!e.condition||(0,t.evaluate)(e.condition,r)===!0).map(e=>({...e,condition:void 0})):void 0,u=i?(0,t.safeEvaluateRecord)({...i,args:l},r):{},d={...u,customErrors:i?.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}=Ke.parse(d),E=u?.authentication?.[r.context.authenticationType]?.[r.context.environment]?.authorization,D=b?(0,n.parseRequestParameters)(b):{query:{},body:{},headers:{}},O=(0,n.createAuthorizationHeaders)((0,e.notMissing)(v)?v:Y.parse(E)),k={...D?.headers??{},...O},A=r.connector?.rateLimit,j=r.connector?.concurrency,M={...(A!==void 0||j!==void 0)&&{rateLimit:A,concurrency:j},soapOperation:x,namespaces:S,envelope:C,soapAction:w,soapContext:T?{username:r.credentials?.username,password:r.credentials?.password}:void 0},N=_?.token??null,P=null,F=null,I=[],L=[],R=[],z=c,B=_?.position??0,V=!0,H;do{V?V=!1:B=0,N!==null&&(g.in===`query`?D.query[g.key]=N.toString():g.in===`body`&&(D.body[g.key]=N));let t;try{t=await a.performRequest({httpClient:r.httpClient,url:`${f}${p}`,queryParams:D?.query,method:m,headers:k,body:D?.body,customErrorConfigs:y,requestConfig:M})}catch(e){let t=e;return{block:r,successful:!1,errors:[(0,n.serializeHttpResponseError)(e)],output:{statusCode:t?.response?.status??500,message:t?.response?.message}}}P=N,L=h?.dataKey?t.data[h?.dataKey]:t.data,Array.isArray(L)||(L=L?[L]:[]);let i=L?.slice(B,B+z);z-=i.length,B+=i.length,R.push(t),I=I.concat(i),F=t?.status,N=Xe({result:t,response:h}),i.length===L.length&&z===0&&(B=0,P=N),H=(0,e.isMissing)(N)&&I.length<c}while((0,e.notMissing)(N)&&I.length<c&&L?.length>0);return{block:r,successful:!0,output:{data:$e(I,h),raw:R,statusCode:F,next:H?void 0:P,position:H?void 0:B}}},Xe=({result:t,response:n})=>{if((0,e.isMissing)(n?.nextKey))return null;let r=n?.nextKeyIn??`data`,i=n?.nextKey;return r===`headers`?Ze(t.headers,i):Qe(t.data,i)},Ze=(t,n)=>{if((0,e.isMissing)(t)||typeof t!=`object`)return null;let r=n.toLowerCase(),[,i]=Object.entries(t).find(([e])=>e?.toLowerCase()===r)??[];if(Array.isArray(i)){let e=i.find(e=>typeof e==`string`&&e!==``||typeof e==`number`);return typeof e==`string`||typeof e==`number`?e:null}return typeof i==`string`&&i!==``||typeof i==`number`?i:null},Qe=(t,n)=>{if((0,e.isMissing)(t)||typeof t!=`object`||!t)return null;let r=t[n];return(0,e.isMissing)(r)?null:typeof r==`string`||typeof r==`number`?r:null},$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},et=e.z.object({baseUrl:e.z.string().optional(),url:e.z.string(),method:e.z.enum(n.HttpMethods),authorization:Y.optional(),envelope:e.z.union([e.z.string(),e.z.record(e.z.string(),e.z.unknown())]).optional(),namespaces:e.z.strictObject({namespaceIdentifier:e.z.string(),namespace:e.z.string()}).array().optional(),soapOperation:e.z.string().optional(),soapAction:e.z.string().optional(),useSoapContext:e.z.boolean().optional().default(!0),response:(0,e.zStrictObject)({collection:e.z.boolean().optional(),indexField:e.z.string().optional(),dataKey:e.z.string().optional()}).optional(),customErrors:n.CUSTOM_ERROR_CONFIG_SCHEMA.array().optional(),args:(0,e.zStrictObject)({name:e.z.string(),value:e.z.unknown(),in:e.z.enum(n.RequestParameterLocations),condition:e.z.string().optional(),arrayFormat:e.z.enum(n.QueryArrayFormats).optional()}).array().optional()}),tt=(0,e.zStrictObject)({data:e.z.unknown().optional(),raw:e.z.unknown().optional(),statusCode:e.z.number(),message:e.z.string().optional()}).optional(),nt=async({block:r,params:i})=>{let a=n.RequestClientFactory.build(`soap`);if(!r.httpClient)throw Error(`HTTP client is not configured`);let{args:o}=i,s=o?o.filter(e=>!e.condition||(0,t.evaluate)(e.condition,r)===!0).map(e=>({...e,condition:void 0})):void 0,c=i?(0,t.safeEvaluateRecord)({...i,args:s},r):{},l={...c,customErrors:i?.customErrors},{baseUrl:u,url:d,method:f,response:p,authorization:m,customErrors:h,args:g,soapOperation:_,namespaces:v,envelope:y,soapAction:b,useSoapContext:x}=et.parse(l),S=c?.authentication?.[r.context.authenticationType]?.[r.context.environment]?.authorization,C=g?(0,n.parseRequestParameters)(g):{query:{},body:{},headers:{}},w=(0,n.createAuthorizationHeaders)((0,e.notMissing)(m)?m:Y.parse(S)),T={...C?.headers??{},...w},E=r.connector?.rateLimit,D=r.connector?.concurrency,O={...(E!==void 0||D!==void 0)&&{rateLimit:E,concurrency:D},soapOperation:_,namespaces:v,envelope:y,soapAction:b,soapContext:x?{username:r.credentials?.username,password:r.credentials?.password}:void 0},k;try{k=await a.performRequest({httpClient:r.httpClient,url:`${u}${d}`,queryParams:C?.query,method:f,headers:T,body:C?.body,customErrorConfigs:h,requestConfig:O})}catch(e){let t=e;return{block:r,successful:!1,errors:[(0,n.serializeHttpResponseError)(e)],output:{statusCode:t?.response?.status??500,message:t?.response?.message}}}return{block:r,successful:!0,output:{data:rt(p?.dataKey?k.data[p?.dataKey]:k.data,p),raw:k,statusCode:k?.status,message:k?.message}}},rt=(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},it=e.z.object({values:e.z.string().or(e.z.record(e.z.string(),e.z.unknown())).or(e.z.array(e.z.unknown()))}),at=e.z.object({data:e.z.unknown()}),ot=async({block:e,params:t})=>{let{values:n}=it.parse(t),r=Array.isArray(n)?n.map(t=>st(t,e)):st(n,e);return{block:{...e},successful:!0,output:{data:r}}},st=(n,r)=>(0,e.isString)(n)?(0,t.safeEvaluate)(n,r):(0,e.isObject)(n)?(0,t.safeEvaluateRecord)(n,r):n,ct=e.z.object({targetFieldKey:e.z.string(),type:e.z.enum([`string`,`number`,`boolean`,`datetime_string`,`enum`,`object`]),array:e.z.boolean().default(!1),custom:e.z.boolean().default(!1),hidden:e.z.boolean().default(!1),properties:e.z.lazy(()=>ct).array().optional(),requiredScopes:e.z.string().array().optional()}),lt=e.z.object({fields:ct.array().optional(),dataSource:e.z.string()}),ut=e.z.object({data:e.z.unknown()});let X=function(e){return e.String=`string`,e.Number=`number`,e.Boolean=`boolean`,e.DateTimeString=`datetime_string`,e}({});const Z=({value:t,type:n,format:r})=>{if((0,e.isMissing)(t))return null;switch(n){case X.String:return(0,e.safeParseToString)({value:t});case X.Number:return(0,e.safeParseToNumber)({value:t});case X.Boolean:return(0,e.safeParseToBoolean)({value:t});case X.DateTimeString:return(0,e.safeParseToDateTimeString)({value:t,format:r});default:return t}},dt=e=>Object.values(X).includes(e),ft=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=>pt(e,t)):pt(e.result,t),{block:{...e,result:n},successful:!0}},pt=(t,n)=>{let r={...t};return n.forEach(n=>{let{targetFieldKey:i,type:a}=n;dt(a)&&(!n.custom&&(0,e.notMissing)(r[i])?r[i]=Z({value:t[i],type:a}):r.unified_custom_fields&&(0,e.notMissing)(r.unified_custom_fields?.[i])&&(r.unified_custom_fields[i]=Z({value:t.unified_custom_fields?.[i],type:a})))}),{...r}},mt=async({block:e,params:n})=>{let{fields:r,dataSource:i}=lt.parse(n),a=(0,t.evaluate)(i,e);if(!r||e?.debug?.custom_mappings===`disabled`)return{block:e,successful:!0};let o;return o=Array.isArray(a)?a.map(e=>Q(e,r)):Q(a,r),{block:{...e},successful:!0,output:{data:o}}},ht=(e,t)=>!e.properties||!t?t:Array.isArray(t)?t.map(t=>typeof t==`object`&&t?Q(t,e.properties):t):typeof t==`object`&&t?Q(t,e.properties):t,Q=(t,n)=>{let r={...t};return n.forEach(n=>{let{targetFieldKey:i,type:a,array:o}=n;a===`object`?!n.custom&&(0,e.notMissing)(r[i])?r[i]=ht(n,t[i]):r.unified_custom_fields&&(0,e.notMissing)(r.unified_custom_fields?.[i])&&(r.unified_custom_fields[i]=ht(n,t.unified_custom_fields?.[i])):dt(a)&&(!n.custom&&(0,e.notMissing)(r[i])?(!o||!Array.isArray(r[i]))&&(r[i]=Z({value:t[i],type:a})):r.unified_custom_fields&&(0,e.notMissing)(r.unified_custom_fields?.[i])&&(!o||!Array.isArray(r.unified_custom_fields[i]))&&(r.unified_custom_fields[i]=Z({value:t.unified_custom_fields?.[i],type:a})))}),{...r}};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}({});const gt={[$.TYPECAST]:{v1:{fn:ft},v2:{fn:mt,inputSchema:lt,outputSchema:ut}},[$.MAP_FIELDS]:{v1:{fn:ae},v2:{fn:ue,inputSchema:K,outputSchema:le}},[$.REQUEST]:{v1:{fn:ze,inputSchema:Le,outputSchema:Re}},[$.GROUP_DATA]:{v1:{fn:ie,inputSchema:U,outputSchema:re}},[$.PAGINATED_REQUEST]:{v1:{fn:De,inputSchema:we,outputSchema:Te}},[$.SOAP_REQUEST]:{v1:{fn:nt,inputSchema:et,outputSchema:tt}},[$.SOAP_PAGINATED_REQUEST]:{v1:{fn:Ye,inputSchema:Ke,outputSchema:qe}},[$.STATIC_VALUES]:{v1:{fn:ot,inputSchema:it,outputSchema:at}}},_t=(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},vt={build({functionName:e,version:t=`1`,validateSchemas:n=!1,stepFunctionsList:r=gt}){let i=r?.[e]?.[`v${t}`];if(!i)throw Error(`Unknown step function: ${e} v${t}`);return n?{...i,fn:_t(i,e)}:i}};exports.AUTHORIZATION_SCHEMA=Y,exports.COMPOSITE_ID_LATEST_VERSION=1,exports.CoreError=p,exports.INPUT_ENUM_REGISTRY=M,exports.ReleaseStages=F,exports.StepFunctionName=$,exports.StepFunctionsFactory=vt,exports.StepFunctionsRegistry=gt,exports.areCursorsEqual=H,exports.decodeCompositeId=S,exports.encodeCompositeId=x,exports.expandCursor=B,exports.getCategoryDetails=i,exports.getInputEnumValues=N,exports.isCompositeId=j,exports.isCoreError=ne,exports.isCursorEmpty=ee,exports.isValidCategory=a,exports.isValidEnumRef=P,exports.minifyCursor=R,exports.updateCursor=te;
package/dist/index.d.cts CHANGED
@@ -158,12 +158,20 @@ type RequestConfig = {
158
158
  concurrency?: ConcurrencyConfig;
159
159
  };
160
160
  //#endregion
161
+ //#region ../transport/src/parsers/types.d.ts
162
+ declare const QueryArrayFormats: readonly ["repeat", "brackets", "comma"];
163
+ type QueryArrayFormat = (typeof QueryArrayFormats)[number];
164
+ //#endregion
161
165
  //#region ../transport/src/httpClient/types.d.ts
162
166
  type HttpHeaders = {
163
167
  [key: string]: string;
164
168
  };
169
+ type HttpQueryParamValue = {
170
+ value: string | string[];
171
+ arrayFormat?: QueryArrayFormat;
172
+ };
165
173
  type HttpQueryParams = {
166
- [key: string]: string;
174
+ [key: string]: string | string[] | HttpQueryParamValue;
167
175
  };
168
176
  declare const HttpMethods: readonly ["get", "post", "put", "delete", "patch"];
169
177
  type HttpMethod = (typeof HttpMethods)[number];
@@ -433,6 +441,11 @@ declare const stepFunctions: {
433
441
  headers: "headers";
434
442
  }>;
435
443
  condition: zod_v40.ZodOptional<zod_v40.ZodString>;
444
+ arrayFormat: zod_v40.ZodOptional<zod_v40.ZodEnum<{
445
+ repeat: "repeat";
446
+ brackets: "brackets";
447
+ comma: "comma";
448
+ }>>;
436
449
  }, zod_v4_core0.$strict>>>;
437
450
  }, zod_v4_core0.$strip>;
438
451
  outputSchema: zod_v40.ZodOptional<zod_v40.ZodObject<{
@@ -505,6 +518,11 @@ declare const stepFunctions: {
505
518
  headers: "headers";
506
519
  }>;
507
520
  condition: zod_v40.ZodOptional<zod_v40.ZodString>;
521
+ arrayFormat: zod_v40.ZodOptional<zod_v40.ZodEnum<{
522
+ repeat: "repeat";
523
+ brackets: "brackets";
524
+ comma: "comma";
525
+ }>>;
508
526
  }, zod_v4_core0.$strict>>>;
509
527
  }, zod_v4_core0.$strip>;
510
528
  outputSchema: zod_v40.ZodOptional<zod_v40.ZodObject<{
@@ -584,6 +602,11 @@ declare const stepFunctions: {
584
602
  headers: "headers";
585
603
  }>;
586
604
  condition: zod_v40.ZodOptional<zod_v40.ZodString>;
605
+ arrayFormat: zod_v40.ZodOptional<zod_v40.ZodEnum<{
606
+ repeat: "repeat";
607
+ brackets: "brackets";
608
+ comma: "comma";
609
+ }>>;
587
610
  }, zod_v4_core0.$strict>>>;
588
611
  }, zod_v4_core0.$strip>;
589
612
  outputSchema: zod_v40.ZodOptional<zod_v40.ZodObject<{
@@ -668,6 +691,11 @@ declare const stepFunctions: {
668
691
  headers: "headers";
669
692
  }>;
670
693
  condition: zod_v40.ZodOptional<zod_v40.ZodString>;
694
+ arrayFormat: zod_v40.ZodOptional<zod_v40.ZodEnum<{
695
+ repeat: "repeat";
696
+ brackets: "brackets";
697
+ comma: "comma";
698
+ }>>;
671
699
  }, zod_v4_core0.$strict>>>;
672
700
  }, zod_v4_core0.$strip>;
673
701
  outputSchema: zod_v40.ZodOptional<zod_v40.ZodObject<{
@@ -714,11 +742,15 @@ interface IOlapClient {
714
742
  }
715
743
  type ActionInput = {
716
744
  actionId?: string;
745
+ mode?: string;
717
746
  url?: string;
718
747
  pathParams?: unknown;
719
748
  queryParams?: unknown;
720
749
  body?: unknown;
721
750
  headers?: Record<string, string>;
751
+ sourceId?: string;
752
+ sourceType?: string;
753
+ sourceValue?: string;
722
754
  };
723
755
  type ActionResult = {
724
756
  actionRunId: string;
@@ -726,7 +758,6 @@ type ActionResult = {
726
758
  connectorKey: string;
727
759
  connectorVersion: string;
728
760
  actionType: string;
729
- mode?: string;
730
761
  category?: string;
731
762
  organizationId: string;
732
763
  projectSecureId: string;
@@ -736,13 +767,11 @@ type ActionResult = {
736
767
  httpMethod?: string;
737
768
  url?: string;
738
769
  path?: string;
739
- sourceId?: string;
740
- sourceType?: string;
741
- sourceValue?: string;
742
770
  resource?: string;
743
771
  subResource?: string;
744
772
  childResource?: string;
745
- status?: string;
773
+ success?: boolean;
774
+ statusCode?: number;
746
775
  message?: string;
747
776
  headers?: Record<string, string>;
748
777
  body?: unknown;
package/dist/index.d.mts CHANGED
@@ -158,12 +158,20 @@ type RequestConfig = {
158
158
  concurrency?: ConcurrencyConfig;
159
159
  };
160
160
  //#endregion
161
+ //#region ../transport/src/parsers/types.d.ts
162
+ declare const QueryArrayFormats: readonly ["repeat", "brackets", "comma"];
163
+ type QueryArrayFormat = (typeof QueryArrayFormats)[number];
164
+ //#endregion
161
165
  //#region ../transport/src/httpClient/types.d.ts
162
166
  type HttpHeaders = {
163
167
  [key: string]: string;
164
168
  };
169
+ type HttpQueryParamValue = {
170
+ value: string | string[];
171
+ arrayFormat?: QueryArrayFormat;
172
+ };
165
173
  type HttpQueryParams = {
166
- [key: string]: string;
174
+ [key: string]: string | string[] | HttpQueryParamValue;
167
175
  };
168
176
  declare const HttpMethods: readonly ["get", "post", "put", "delete", "patch"];
169
177
  type HttpMethod = (typeof HttpMethods)[number];
@@ -433,6 +441,11 @@ declare const stepFunctions: {
433
441
  headers: "headers";
434
442
  }>;
435
443
  condition: zod_v40.ZodOptional<zod_v40.ZodString>;
444
+ arrayFormat: zod_v40.ZodOptional<zod_v40.ZodEnum<{
445
+ repeat: "repeat";
446
+ brackets: "brackets";
447
+ comma: "comma";
448
+ }>>;
436
449
  }, zod_v4_core0.$strict>>>;
437
450
  }, zod_v4_core0.$strip>;
438
451
  outputSchema: zod_v40.ZodOptional<zod_v40.ZodObject<{
@@ -505,6 +518,11 @@ declare const stepFunctions: {
505
518
  headers: "headers";
506
519
  }>;
507
520
  condition: zod_v40.ZodOptional<zod_v40.ZodString>;
521
+ arrayFormat: zod_v40.ZodOptional<zod_v40.ZodEnum<{
522
+ repeat: "repeat";
523
+ brackets: "brackets";
524
+ comma: "comma";
525
+ }>>;
508
526
  }, zod_v4_core0.$strict>>>;
509
527
  }, zod_v4_core0.$strip>;
510
528
  outputSchema: zod_v40.ZodOptional<zod_v40.ZodObject<{
@@ -584,6 +602,11 @@ declare const stepFunctions: {
584
602
  headers: "headers";
585
603
  }>;
586
604
  condition: zod_v40.ZodOptional<zod_v40.ZodString>;
605
+ arrayFormat: zod_v40.ZodOptional<zod_v40.ZodEnum<{
606
+ repeat: "repeat";
607
+ brackets: "brackets";
608
+ comma: "comma";
609
+ }>>;
587
610
  }, zod_v4_core0.$strict>>>;
588
611
  }, zod_v4_core0.$strip>;
589
612
  outputSchema: zod_v40.ZodOptional<zod_v40.ZodObject<{
@@ -668,6 +691,11 @@ declare const stepFunctions: {
668
691
  headers: "headers";
669
692
  }>;
670
693
  condition: zod_v40.ZodOptional<zod_v40.ZodString>;
694
+ arrayFormat: zod_v40.ZodOptional<zod_v40.ZodEnum<{
695
+ repeat: "repeat";
696
+ brackets: "brackets";
697
+ comma: "comma";
698
+ }>>;
671
699
  }, zod_v4_core0.$strict>>>;
672
700
  }, zod_v4_core0.$strip>;
673
701
  outputSchema: zod_v40.ZodOptional<zod_v40.ZodObject<{
@@ -714,11 +742,15 @@ interface IOlapClient {
714
742
  }
715
743
  type ActionInput = {
716
744
  actionId?: string;
745
+ mode?: string;
717
746
  url?: string;
718
747
  pathParams?: unknown;
719
748
  queryParams?: unknown;
720
749
  body?: unknown;
721
750
  headers?: Record<string, string>;
751
+ sourceId?: string;
752
+ sourceType?: string;
753
+ sourceValue?: string;
722
754
  };
723
755
  type ActionResult = {
724
756
  actionRunId: string;
@@ -726,7 +758,6 @@ type ActionResult = {
726
758
  connectorKey: string;
727
759
  connectorVersion: string;
728
760
  actionType: string;
729
- mode?: string;
730
761
  category?: string;
731
762
  organizationId: string;
732
763
  projectSecureId: string;
@@ -736,13 +767,11 @@ type ActionResult = {
736
767
  httpMethod?: string;
737
768
  url?: string;
738
769
  path?: string;
739
- sourceId?: string;
740
- sourceType?: string;
741
- sourceValue?: string;
742
770
  resource?: string;
743
771
  subResource?: string;
744
772
  childResource?: string;
745
- status?: string;
773
+ success?: boolean;
774
+ statusCode?: number;
746
775
  message?: string;
747
776
  headers?: Record<string, string>;
748
777
  body?: unknown;
package/dist/index.mjs CHANGED
@@ -1 +1 @@
1
- import{decodeFromBase64 as e,encodeToBase64 as t,getContentHash as n,getCountryAlpha2CodeByAlpha2Code as r,getCountryAlpha2CodeByAlpha3Code as i,getCountryAlpha2CodeByCitizenship as a,getCountryAlpha2CodeByCountryCode as o,getCountryAlpha2CodeByCountryName as s,getCountryAlpha3CodeByAlpha2Code as c,getCountryAlpha3CodeByAlpha3Code as l,getCountryAlpha3CodeByCountryCode as u,getCountryAlpha3CodeByCountryName as d,getCountryCodeByAlpha2Code as f,getCountryCodeByAlpha3Code as p,getCountryCodeByCountryCode as m,getCountryCodeByCountryName as h,getCountryNameByAlpha2Code as g,getCountryNameByAlpha3Code as _,getCountryNameByCountryCode as v,getCountryNameByCountryName as y,getCountrySubDivisionCodeBySubDivisionName as b,getCountrySubDivisionNameBySubDivisionCode as x,getCountrySubDivisionsByAlpha2Code as S,getDocumentFileFormatFromExtension as C,isMissing as w,isObject as T,isString as E,notMissing as D,safeParseToBoolean as O,safeParseToDateTimeString as k,safeParseToNumber as A,safeParseToString as j,z as M,zStrictObject as N}from"@stackone/utils";import{evaluate as P,isValidExpression as F,safeEvaluate as I,safeEvaluateRecord as L}from"@stackone/expressions";import{CUSTOM_ERROR_CONFIG_SCHEMA as R,HttpMethods as z,RequestClientFactory as B,RequestParameterLocations as V,createAuthorizationHeaders as H,parseRequestParameters as U,serializeHttpResponseError as W}from"@stackone/transport";const G={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`}},ee=e=>G[e.toLowerCase()]??null,K=e=>!!G[e.toLowerCase()],q=t(`so1!`),te=RegExp(`(?<!\\\\):`,`g`),ne=RegExp(`(?<!\\\\),`,`g`),re=1;var ie=class e extends Error{constructor({category:t,name:n,type:r,context:i,message:a}){super(a),this.name=n??`CoreError`,this.type=r,this.category=t,this.context=i,Error.captureStackTrace&&Error.captureStackTrace(this,e)}toString(){let e=this.message?`: ${this.message}`:``;return`${this.category}-${this.name} [${this.type}]${e}`}},J=class extends ie{constructor(e,t,n){super({category:`CompositeId`,name:t??`BaseCompositeIdError`,type:e,message:n})}},ae=class extends J{constructor(e){super(`COMPOSITE_ID_MISSING_HEADER_ERROR`,`CompositeIdMissingHeaderError`,e??`Invalid compositeId, missing header`)}},oe=class extends J{constructor(e){super(`COMPOSITE_ID_MISSING_BODY_ERROR`,`CompositeIdMissingBodyError`,e??`Invalid compositeId, missing body`)}},se=class extends J{constructor(e){super(`COMPOSITE_ID_UNKNOWN_IDENTIFIER_ERROR`,`CompositeIdUnknownIdentifierError`,e??`Invalid compositeId, unknown identifier`)}},ce=class extends J{constructor(e){super(`COMPOSITE_ID_UNSUPPORTED_VERSION_ERROR`,`CompositeIdUnsupportedVersionError`,e??`Invalid compositeId, unsupported version`)}};const le=e=>!w(e)&&`value`in e&&e.value!==void 0,ue=e=>!w(e)&&`identifiers`in e&&e.identifiers!==void 0,de=(e,t={version:1})=>{if(t.version===1)return _e(pe(e,t.aliases));throw new ce(`Cannot generate ID, unsupported version number: ${t.version}`)},fe=(e,t={version:1})=>{let n=ge(e,t),r={};return n&&n.split(ne).forEach(e=>{let[n,i]=e.split(te),a=he(n,t.aliases??{});r[a]=be(i)}),r},pe=(e,t={})=>{if(le(e))return me({identifier:e,compositeIdAliases:t,isSoleIdentifier:!0});if(ue(e))return e.identifiers.map(e=>me({identifier:e,compositeIdAliases:t,isSoleIdentifier:!1})).join(`,`);throw new se},me=({identifier:e,compositeIdAliases:t,isSoleIdentifier:n})=>[n?`id`:t[e.key]||e.key,ye(e.value)].filter(Boolean).join(`:`),he=(e,t)=>Object.keys(t).find(n=>t[n]===e)??e,ge=(e,t)=>{if(t.version===1)return ve(e);throw new ce(`Cannot decode ID, unsupported version number: ${t.version}`)},_e=e=>`${q}${t(e)}`,ve=t=>{if(!t.startsWith(q))throw new ae(`Trying to decode an ID without the header: ${t}`);let n=t.split(q)[1];if(!n)throw new oe(`Trying to decode an ID without a body: ${t}`);return e(n)},ye=e=>[`,`,`:`].reduce((e,t)=>e.replace(t,`\\`+t),e),be=e=>[`,`,`:`].reduce((e,t)=>{let n=`\\`+t;return e.replace(RegExp(`\\\\`+n,`g`),t)},e),xe=e=>w(e)?!1:e.startsWith(q),Se={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`]},Ce=e=>Se[e],we=e=>e in Se,Te=[`preview`,`beta`,`ga`,`deprecated`],Ee=N({r:M.record(M.string(),N({n:M.number().optional().nullable(),c:M.string().optional().nullable(),p:M.number().optional().nullable()})),v:M.number(),t:M.number()}),De=N({remote:M.record(M.string(),N({pageNumber:M.number().optional(),providerPageCursor:M.string().optional(),position:M.number().optional()})),version:M.number(),timestamp:M.number()}),Oe=e=>t(JSON.stringify(ke(e))),ke=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}},Ae=t=>{try{if(E(t)){let n=e(t),r=JSON.parse(n);return je(Ee.parse(r))}else return De.parse(t),t}catch{return null}},je=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}},Me=(e,t)=>{let r=typeof e==`string`?Ae(e):e,i=typeof t==`string`?Ae(t):t;if(r===null||i===null)return r===i;let{timestamp:a,...o}=r,{timestamp:s,...c}=i;return n(o)===n(c)},Ne=({cursor:e,ignoreStepIndex:t})=>w(e)?!0:Object.keys(e?.remote??{}).reduce((n,r)=>{let i=e?.remote?.[r];return(w(t)||r!==t.toString())&&(n=n&&w(i.pageNumber)&&w(i.position)&&w(i.providerPageCursor)),n},!0),Pe=({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=w(n)&&w(r)&&w(i);return w(e)?{remote:o?{}:{[t]:a},version:2,timestamp:Date.now()}:o?(delete e.remote[t],e):{...e,remote:{...e.remote,[t]:a}}},Fe=e=>e instanceof ie,Ie=M.object({stepsDataToGroup:M.array(M.string()),isSingleRecord:M.boolean().optional()}),Le=M.object({data:M.unknown()}),Re=async({block:e,params:t})=>{let{stepsDataToGroup:n,isSingleRecord:r}=Ie.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]={...D(t[e])?t[e]:{},[n]:{...i[e]}}}),t):t},{});return{block:{...e},successful:!0,output:{data:r?i:Object.values(i)}}},ze=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=Ve(e,t,Be(r,a,i));return n.push(...o.errors||[]),o.record})}else{let a=Ve(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}},Be=(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},{}),Ve=(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}=He(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}},He=(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=P(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}},Ue=e=>{switch(e){case`country_alpha2code_by_alpha2code`:return r;case`country_alpha3code_by_alpha3code`:return l;case`country_code_by_country_code`:return m;case`country_name_by_country_name`:return y;case`country_name_by_alpha3code`:return _;case`country_name_by_alpha2code`:return g;case`country_name_by_country_code`:return v;case`country_alpha3code_by_alpha2code`:return c;case`country_alpha3code_by_country_name`:return d;case`country_alpha3code_by_country_code`:return u;case`country_alpha2code_by_alpha3code`:return i;case`country_alpha2code_by_country_name`:return s;case`country_alpha2code_by_country_code`:return o;case`country_code_by_alpha2code`:return f;case`country_code_by_alpha3code`:return p;case`country_code_by_country_name`:return h;case`country_subdivisions_by_alpha2code`:return S;case`country_subdivision_code_by_subdivision_name`:return b;case`country_alpha2code_by_citizenship`:return a;case`country_subdivision_name_by_subdivision_code`:return x;case`document_file_format_from_extension`:return C;default:return}},We=N({targetFieldKey:M.string(),alias:M.string().optional(),expression:M.string().optional(),values:M.unknown().optional(),type:M.enum([`string`,`number`,`boolean`,`datetime_string`,`enum`,`object`]),array:M.boolean().default(!1),custom:M.boolean().default(!1),hidden:M.boolean().default(!1),enumMapper:N({matcher:M.string().or(N({matchExpression:M.string(),value:M.string()}).array())}).optional(),properties:M.lazy(()=>We).array().optional(),requiredScopes:M.string().array().optional()}),Ge=M.object({fields:We.array(),dataSource:M.string(),externalSources:M.record(M.string(),M.string()).optional()}),Ke=M.object({data:M.unknown()}),qe=async({block:e,params:t})=>{let n=[],{fields:r,dataSource:i,externalSources:a}=Ge.parse(t),o=P(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]=P(a?.[n],e),t),{}),c;if(Array.isArray(o))c=o.map(e=>{let t=Y(r,{...e,external:s});return n.push(...t?.errors||[]),t?.record});else{let e=Y(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}},Je=(e,t,n)=>{if(Array.isArray(e.values))return e.values.map(r=>{let i=Qe(r,t),a=Y(e.properties,i);return D(a?.errors)&&n.push(...a.errors),a?.record}).filter(Boolean)},Ye=(e,t,n)=>{if(e.expression)try{let r=P(e.expression,t);if(Array.isArray(r))return r.map(t=>{let r=Y(e.properties,t);return D(r?.errors)&&n.push(...r.errors),r?.record}).filter(Boolean);{let t=Y(e.properties,r);return D(t?.errors)&&n.push(...t.errors),t?.record}}catch{n.push({message:`Invalid expression`,id:t?.id,targetField:e.targetFieldKey});return}},Xe=(e,t,n)=>{let r=D(e.values)?e.values:t,i=Y(e.properties,r);return D(i?.errors)&&n.push(...i.errors),i?.record},Ze=(e,t,n)=>{if(!w(e.properties))return e.array&&Array.isArray(e.values)?Je(e,t,n):e.array&&e.expression?Ye(e,t,n):Xe(e,t,n)},Y=(e,t)=>{if(!t)return;let n={},r=[],i={};for(let a of e){let e;if(a.type===`object`){if(e=Ze(a,t,r),e===void 0)continue}else{let{error:n,value:i}=$e(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}},Qe=(e,t)=>{if(e==null)return e;if(typeof e==`string`){if(F(e))try{return P(e,t)}catch{return e}return e}if(Array.isArray(e))return e.map(e=>Qe(e,t));if(typeof e==`object`){let n={...e};for(let[e,r]of Object.entries(n))n[e]=Qe(r,t);return n}return e},$e=(e,t,n)=>{switch(n.type){case`string`:case`number`:case`boolean`:case`datetime_string`:return et(n,t,e);case`enum`:return tt(n,t,e);default:return{error:{message:`Invalid type`,id:t,targetField:n.targetFieldKey}}}},et=(e,t,n)=>{if(!e.expression)return{error:{message:`Expression is empty`,id:t,targetField:e.targetFieldKey}};let r;try{r=P(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}},tt=(e,t,n)=>{let r=et(e,t,n),i=D(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(E(a)){let n=Ue(a);return D(n)?{value:{value:(D(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(P(t,n)===!0)return{value:{value:r,source_value:i}}}return{value:{value:`unmapped_value`,source_value:i}}},nt=[`data`,`headers`],rt=N({type:M.literal(`none`)}),it=N({type:M.literal(`basic`),username:M.string().optional(),password:M.string().optional(),encoding:M.string().optional()}),at=N({type:M.literal(`bearer`),token:M.string(),includeBearer:M.boolean().optional().default(!0)}),ot=N({type:M.literal(`oauth2`),authorizationUrl:M.string().optional(),authorizationParams:M.record(M.string(),M.string()).optional(),tokenUrl:M.string().optional(),tokenParams:M.record(M.string(),M.string()).optional(),tokenExpiresIn:M.number().optional(),tokenRefreshExpiresIn:M.number().optional(),token:M.string(),includeBearer:M.boolean().optional().default(!0),scopes:M.string().optional(),scopeDelimiter:M.string().optional(),customHeaders:M.record(M.string(),M.string()).optional(),pkce:M.boolean().optional()}),st=M.discriminatedUnion(`type`,[rt,it,at,ot]),ct=M.object({baseUrl:M.string(),url:M.string(),method:M.enum(z),response:N({indexField:M.string().optional(),dataKey:M.string().optional(),nextKey:M.string().optional(),nextKeyIn:M.enum(nt).optional()}).optional(),iterator:N({key:M.string(),in:M.enum(V),condition:M.string().optional()}),cursor:N({token:M.string().optional().nullable(),position:M.number().optional().nullable()}).optional(),customErrors:R.array().optional(),args:N({name:M.string(),value:M.unknown(),in:M.enum(V),condition:M.string().optional()}).array().optional()}),lt=N({data:M.unknown().optional(),raw:M.unknown().optional(),statusCode:M.number(),message:M.string().optional(),next:M.string().optional().nullable(),position:M.number().optional()}).optional(),ut=async({block:e,params:t})=>{let n=B.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,o=r?r.filter(t=>!t.condition||P(t.condition,e)===!0).map(e=>({...e,condition:void 0})):void 0,s=t?L({...t,args:o},e):{},c={...s,customErrors:t?.customErrors,iterator:{...s?.iterator??{},condition:t?.iterator?.condition}},{baseUrl:l,url:u,method:d,response:f,iterator:p,cursor:m,customErrors:h,args:g}=ct.parse(c),_=s?.authentication?.[e.context.authenticationType]?.[e.context.environment]?.authorization,v=st.parse(_),y=g?U(g):{query:{},body:{},headers:{}},b=H(v),x={...y?.headers??{},...b},S=e.connector?.rateLimit,C=e.connector?.concurrency,E=S!==void 0||C!==void 0?{rateLimit:S,concurrency:C}:void 0,O=m?.token??null,k=null,A=null,j=[],M=[],N=[],F=a,R=m?.position??0,z=!0,V=!0,G=!0;do{z?z=!1:R=0,O!==null&&(p.in===`query`?T(O)?Object.entries(O).forEach(([e,t])=>{y.query[`${p.key}[${e}]`]=t?.toString()??``}):y.query[p.key]=O.toString():p.in===`body`&&(y.body[p.key]=O));let t;try{t=await n.performRequest({httpClient:e.httpClient,url:`${l}${u}`,queryParams:{...y?.query},method:d,headers:{...x},body:{...y?.body},customErrorConfigs:h,requestConfig:E})}catch(t){let n=t;return{block:e,successful:!1,errors:[W(t)],output:{statusCode:n?.response?.status??500,message:n?.response?.message}}}k=O,M=f?.dataKey?t.data[f?.dataKey]:t.data;let r=M?.slice(R,R+F);F-=r.length,R+=r.length,N.push(t),j=j.concat(r),A=t?.status,O=dt({result:t,response:f}),G=D(p.condition)?I(p.condition,t.data)===!0:!0,r.length===M.length&&F===0&&(R=0,k=O),V=w(O)&&j.length<a}while(D(O)&&G&&j.length<a&&M?.length>0);return{block:e,successful:!0,output:{data:mt(j,f),raw:N,statusCode:A,next:V?void 0:k,position:V?void 0:R}}},dt=({result:e,response:t})=>{if(w(t?.nextKey))return null;let n=t?.nextKeyIn??`data`,r=t?.nextKey;return n===`headers`?ft(e.headers,r):pt(e.data,r)},ft=(e,t)=>{if(w(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},pt=(e,t)=>{if(w(e)||typeof e!=`object`||!e)return null;let n=I(`$.${t}`,e);return w(n)?null:typeof n==`string`||typeof n==`number`||typeof n==`object`?n:null},mt=(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},ht=N({type:M.literal(`none`)}),gt=N({type:M.literal(`basic`),username:M.string().optional(),password:M.string().optional(),encoding:M.string().optional()}),_t=N({type:M.literal(`bearer`),token:M.string(),includeBearer:M.boolean().optional().default(!0)}),vt=N({type:M.literal(`oauth2`),authorizationUrl:M.string().optional(),authorizationParams:M.record(M.string(),M.string()).optional(),tokenUrl:M.string().optional(),tokenParams:M.record(M.string(),M.string()).optional(),tokenExpiresIn:M.number().optional(),tokenRefreshExpiresIn:M.number().optional(),token:M.string(),includeBearer:M.boolean().optional().default(!0),scopes:M.string().optional(),scopeDelimiter:M.string().optional(),customHeaders:M.record(M.string(),M.string()).optional(),pkce:M.boolean().optional()}),yt=M.discriminatedUnion(`type`,[ht,gt,_t,vt]),bt=M.object({baseUrl:M.string().optional(),url:M.string(),method:M.enum(z),authorization:yt.optional(),response:N({collection:M.boolean().optional(),indexField:M.string().optional(),dataKey:M.string().optional()}).optional(),customErrors:R.array().optional(),args:N({name:M.string(),value:M.unknown(),in:M.enum(V),condition:M.string().optional()}).array().optional()}),xt=N({data:M.unknown().optional(),raw:M.unknown().optional(),statusCode:M.number(),message:M.string().optional()}).optional(),St=async({block:e,params:t})=>{let n=B.build();if(!e.httpClient)throw Error(`HTTP client is not configured`);let{args:r}=t,i=r?r.filter(t=>!t.condition||P(t.condition,e)===!0).map(e=>({...e,condition:void 0})):void 0,a=t?L({...t,args:i},e):{},o={...a,customErrors:t?.customErrors},{baseUrl:s,url:c,method:l,response:u,authorization:d,customErrors:f,args:p}=bt.parse(o),m=a?.authentication?.[e.context.authenticationType]?.[e.context.environment]?.authorization,h=p?U(p):{query:{},body:{},headers:{}},g=H(D(d)?d:yt.parse(m)),_={...h?.headers??{},...g},v=e.connector?.rateLimit,y=e.connector?.concurrency,b=v!==void 0||y!==void 0?{rateLimit:v,concurrency:y}:void 0,x;try{x=await n.performRequest({httpClient:e.httpClient,url:`${s}${c}`,queryParams:h?.query,method:l,headers:_,body:h?.body,customErrorConfigs:f,requestConfig:b})}catch(t){let n=t;return{block:e,successful:!1,errors:[W(t)],output:{statusCode:n?.response?.status??500,message:n?.response?.message}}}return{block:e,successful:!0,output:{data:Ct(u?.dataKey?x.data[u?.dataKey]:x.data,u),raw:x,statusCode:x?.status,message:x?.message}}},Ct=(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},wt=N({type:M.literal(`none`)}),Tt=N({type:M.literal(`basic`),username:M.string().optional(),password:M.string().optional(),encoding:M.string().optional()}),Et=N({type:M.literal(`bearer`),token:M.string(),includeBearer:M.boolean().optional().default(!0)}),Dt=N({type:M.literal(`oauth2`),authorizationUrl:M.string().optional(),authorizationParams:M.record(M.string(),M.string()).optional(),tokenUrl:M.string().optional(),tokenParams:M.record(M.string(),M.string()).optional(),tokenExpiresIn:M.number().optional(),tokenRefreshExpiresIn:M.number().optional(),token:M.string(),includeBearer:M.boolean().optional().default(!0),scopes:M.string().optional(),scopeDelimiter:M.string().optional(),customHeaders:M.record(M.string(),M.string()).optional(),pkce:M.boolean().optional()}),X=M.discriminatedUnion(`type`,[wt,Tt,Et,Dt]),Ot=M.object({baseUrl:M.string().optional(),url:M.string(),method:M.enum(z),authorization:M.discriminatedUnion(`type`,[N({type:M.literal(`none`)}),N({type:M.literal(`basic`),username:M.string().optional(),password:M.string().optional(),encoding:M.string().optional()}),N({type:M.literal(`bearer`),token:M.string(),includeBearer:M.boolean().optional().default(!0)}),N({type:M.literal(`oauth2`),token:M.string(),includeBearer:M.boolean().optional().default(!0)})]).optional(),envelope:M.union([M.string(),M.record(M.string(),M.unknown())]).optional(),namespaces:M.strictObject({namespaceIdentifier:M.string(),namespace:M.string()}).array().optional(),soapOperation:M.string().optional(),soapAction:M.string().optional(),useSoapContext:M.boolean().optional().default(!0),response:N({collection:M.boolean().optional(),indexField:M.string().optional(),dataKey:M.string().optional(),nextKey:M.string().optional(),nextKeyIn:M.enum([`data`,`headers`]).optional()}).optional(),iterator:N({key:M.string(),in:M.enum(V)}),cursor:N({token:M.string().optional().nullable(),position:M.number().optional().nullable()}).optional(),customErrors:R.array().optional(),args:N({name:M.string(),value:M.unknown(),in:M.enum(V),condition:M.string().optional()}).array().optional()}),kt=N({data:M.unknown().optional(),raw:M.unknown().optional(),statusCode:M.number(),message:M.string().optional(),next:M.string().optional().nullable(),position:M.number().optional()}).optional(),At=async({block:e,params:t})=>{let n=B.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||P(t.condition,e)===!0).map(e=>({...e,condition:void 0})):void 0,s=t?L({...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}=Ot.parse(c),C=s?.authentication?.[e.context.authenticationType]?.[e.context.environment]?.authorization,T=_?U(_):{query:{},body:{},headers:{}},E=H(D(h)?h:X.parse(C)),O={...T?.headers??{},...E},k=e.connector?.rateLimit,A=e.connector?.concurrency,j={...(k!==void 0||A!==void 0)&&{rateLimit:k,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,F=null,I=[],R=[],z=[],V=a,G=m?.position??0,ee=!0,K;do{ee?ee=!1:G=0,M!==null&&(p.in===`query`?T.query[p.key]=M.toString():p.in===`body`&&(T.body[p.key]=M));let t;try{t=await n.performRequest({httpClient:e.httpClient,url:`${l}${u}`,queryParams:T?.query,method:d,headers:O,body:T?.body,customErrorConfigs:g,requestConfig:j})}catch(t){let n=t;return{block:e,successful:!1,errors:[W(t)],output:{statusCode:n?.response?.status??500,message:n?.response?.message}}}N=M,R=f?.dataKey?t.data[f?.dataKey]:t.data,Array.isArray(R)||(R=R?[R]:[]);let r=R?.slice(G,G+V);V-=r.length,G+=r.length,z.push(t),I=I.concat(r),F=t?.status,M=jt({result:t,response:f}),r.length===R.length&&V===0&&(G=0,N=M),K=w(M)&&I.length<a}while(D(M)&&I.length<a&&R?.length>0);return{block:e,successful:!0,output:{data:Pt(I,f),raw:z,statusCode:F,next:K?void 0:N,position:K?void 0:G}}},jt=({result:e,response:t})=>{if(w(t?.nextKey))return null;let n=t?.nextKeyIn??`data`,r=t?.nextKey;return n===`headers`?Mt(e.headers,r):Nt(e.data,r)},Mt=(e,t)=>{if(w(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},Nt=(e,t)=>{if(w(e)||typeof e!=`object`||!e)return null;let n=e[t];return w(n)?null:typeof n==`string`||typeof n==`number`?n:null},Pt=(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},Ft=M.object({baseUrl:M.string().optional(),url:M.string(),method:M.enum(z),authorization:X.optional(),envelope:M.union([M.string(),M.record(M.string(),M.unknown())]).optional(),namespaces:M.strictObject({namespaceIdentifier:M.string(),namespace:M.string()}).array().optional(),soapOperation:M.string().optional(),soapAction:M.string().optional(),useSoapContext:M.boolean().optional().default(!0),response:N({collection:M.boolean().optional(),indexField:M.string().optional(),dataKey:M.string().optional()}).optional(),customErrors:R.array().optional(),args:N({name:M.string(),value:M.unknown(),in:M.enum(V),condition:M.string().optional()}).array().optional()}),It=N({data:M.unknown().optional(),raw:M.unknown().optional(),statusCode:M.number(),message:M.string().optional()}).optional(),Lt=async({block:e,params:t})=>{let n=B.build(`soap`);if(!e.httpClient)throw Error(`HTTP client is not configured`);let{args:r}=t,i=r?r.filter(t=>!t.condition||P(t.condition,e)===!0).map(e=>({...e,condition:void 0})):void 0,a=t?L({...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}=Ft.parse(o),y=a?.authentication?.[e.context.authenticationType]?.[e.context.environment]?.authorization,b=p?U(p):{query:{},body:{},headers:{}},x=H(D(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:[W(t)],output:{statusCode:n?.response?.status??500,message:n?.response?.message}}}return{block:e,successful:!0,output:{data:Rt(u?.dataKey?E.data[u?.dataKey]:E.data,u),raw:E,statusCode:E?.status,message:E?.message}}},Rt=(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},zt=M.object({values:M.string().or(M.record(M.string(),M.unknown())).or(M.array(M.unknown()))}),Bt=M.object({data:M.unknown()}),Vt=async({block:e,params:t})=>{let{values:n}=zt.parse(t),r=Array.isArray(n)?n.map(t=>Ht(t,e)):Ht(n,e);return{block:{...e},successful:!0,output:{data:r}}},Ht=(e,t)=>E(e)?I(e,t):T(e)?L(e,t):e,Ut=M.object({targetFieldKey:M.string(),type:M.enum([`string`,`number`,`boolean`,`datetime_string`,`enum`,`object`]),array:M.boolean().default(!1),custom:M.boolean().default(!1),hidden:M.boolean().default(!1),properties:M.lazy(()=>Ut).array().optional(),requiredScopes:M.string().array().optional()}),Wt=M.object({fields:Ut.array().optional(),dataSource:M.string()}),Gt=M.object({data:M.unknown()});let Z=function(e){return e.String=`string`,e.Number=`number`,e.Boolean=`boolean`,e.DateTimeString=`datetime_string`,e}({});const Q=({value:e,type:t,format:n})=>{if(w(e))return null;switch(t){case Z.String:return j({value:e});case Z.Number:return A({value:e});case Z.Boolean:return O({value:e});case Z.DateTimeString:return k({value:e,format:n});default:return e}},Kt=e=>Object.values(Z).includes(e),qt=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=>Jt(e,t)):Jt(e.result,t),{block:{...e,result:n},successful:!0}},Jt=(e,t)=>{let n={...e};return t.forEach(t=>{let{targetFieldKey:r,type:i}=t;Kt(i)&&(!t.custom&&D(n[r])?n[r]=Q({value:e[r],type:i}):n.unified_custom_fields&&D(n.unified_custom_fields?.[r])&&(n.unified_custom_fields[r]=Q({value:e.unified_custom_fields?.[r],type:i})))}),{...n}},Yt=async({block:e,params:t})=>{let{fields:n,dataSource:r}=Wt.parse(t),i=P(r,e);if(!n||e?.debug?.custom_mappings===`disabled`)return{block:e,successful:!0};let a;return a=Array.isArray(i)?i.map(e=>Zt(e,n)):Zt(i,n),{block:{...e},successful:!0,output:{data:a}}},Xt=(e,t)=>!e.properties||!t?t:Array.isArray(t)?t.map(t=>typeof t==`object`&&t?Zt(t,e.properties):t):typeof t==`object`&&t?Zt(t,e.properties):t,Zt=(e,t)=>{let n={...e};return t.forEach(t=>{let{targetFieldKey:r,type:i,array:a}=t;i===`object`?!t.custom&&D(n[r])?n[r]=Xt(t,e[r]):n.unified_custom_fields&&D(n.unified_custom_fields?.[r])&&(n.unified_custom_fields[r]=Xt(t,e.unified_custom_fields?.[r])):Kt(i)&&(!t.custom&&D(n[r])?(!a||!Array.isArray(n[r]))&&(n[r]=Q({value:e[r],type:i})):n.unified_custom_fields&&D(n.unified_custom_fields?.[r])&&(!a||!Array.isArray(n.unified_custom_fields[r]))&&(n.unified_custom_fields[r]=Q({value:e.unified_custom_fields?.[r],type:i})))}),{...n}};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}({});const Qt={[$.TYPECAST]:{v1:{fn:qt},v2:{fn:Yt,inputSchema:Wt,outputSchema:Gt}},[$.MAP_FIELDS]:{v1:{fn:ze},v2:{fn:qe,inputSchema:Ge,outputSchema:Ke}},[$.REQUEST]:{v1:{fn:St,inputSchema:bt,outputSchema:xt}},[$.GROUP_DATA]:{v1:{fn:Re,inputSchema:Ie,outputSchema:Le}},[$.PAGINATED_REQUEST]:{v1:{fn:ut,inputSchema:ct,outputSchema:lt}},[$.SOAP_REQUEST]:{v1:{fn:Lt,inputSchema:Ft,outputSchema:It}},[$.SOAP_PAGINATED_REQUEST]:{v1:{fn:At,inputSchema:Ot,outputSchema:kt}},[$.STATIC_VALUES]:{v1:{fn:Vt,inputSchema:zt,outputSchema:Bt}}},$t=(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},en={build({functionName:e,version:t=`1`,validateSchemas:n=!1,stepFunctionsList:r=Qt}){let i=r?.[e]?.[`v${t}`];if(!i)throw Error(`Unknown step function: ${e} v${t}`);return n?{...i,fn:$t(i,e)}:i}};export{X as AUTHORIZATION_SCHEMA,re as COMPOSITE_ID_LATEST_VERSION,ie as CoreError,Se as INPUT_ENUM_REGISTRY,Te as ReleaseStages,$ as StepFunctionName,en as StepFunctionsFactory,Qt as StepFunctionsRegistry,Me as areCursorsEqual,fe as decodeCompositeId,de as encodeCompositeId,Ae as expandCursor,ee as getCategoryDetails,Ce as getInputEnumValues,xe as isCompositeId,Fe as isCoreError,Ne as isCursorEmpty,K as isValidCategory,we as isValidEnumRef,Oe as minifyCursor,Pe as updateCursor};
1
+ import{decodeFromBase64 as e,encodeToBase64 as t,getContentHash as n,getCountryAlpha2CodeByAlpha2Code as r,getCountryAlpha2CodeByAlpha3Code as i,getCountryAlpha2CodeByCitizenship as a,getCountryAlpha2CodeByCountryCode as o,getCountryAlpha2CodeByCountryName as s,getCountryAlpha3CodeByAlpha2Code as c,getCountryAlpha3CodeByAlpha3Code as l,getCountryAlpha3CodeByCountryCode as u,getCountryAlpha3CodeByCountryName as d,getCountryCodeByAlpha2Code as f,getCountryCodeByAlpha3Code as p,getCountryCodeByCountryCode as m,getCountryCodeByCountryName as h,getCountryNameByAlpha2Code as g,getCountryNameByAlpha3Code as _,getCountryNameByCountryCode as v,getCountryNameByCountryName as y,getCountrySubDivisionCodeBySubDivisionName as b,getCountrySubDivisionNameBySubDivisionCode as x,getCountrySubDivisionsByAlpha2Code as S,getDocumentFileFormatFromExtension as C,isMissing as w,isObject as T,isString as E,notMissing as D,safeParseToBoolean as O,safeParseToDateTimeString as k,safeParseToNumber as A,safeParseToString as j,z as M,zStrictObject as N}from"@stackone/utils";import{evaluate as P,isValidExpression as F,safeEvaluate as I,safeEvaluateRecord as L}from"@stackone/expressions";import{CUSTOM_ERROR_CONFIG_SCHEMA as R,HttpMethods as z,QueryArrayFormats as B,RequestClientFactory as V,RequestParameterLocations as H,createAuthorizationHeaders as U,parseRequestParameters as W,serializeHttpResponseError as G}from"@stackone/transport";const K={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`}},q=e=>K[e.toLowerCase()]??null,ee=e=>!!K[e.toLowerCase()],J=t(`so1!`),te=RegExp(`(?<!\\\\):`,`g`),ne=RegExp(`(?<!\\\\),`,`g`),re=1;var ie=class e extends Error{constructor({category:t,name:n,type:r,context:i,message:a}){super(a),this.name=n??`CoreError`,this.type=r,this.category=t,this.context=i,Error.captureStackTrace&&Error.captureStackTrace(this,e)}toString(){let e=this.message?`: ${this.message}`:``;return`${this.category}-${this.name} [${this.type}]${e}`}},Y=class extends ie{constructor(e,t,n){super({category:`CompositeId`,name:t??`BaseCompositeIdError`,type:e,message:n})}},ae=class extends Y{constructor(e){super(`COMPOSITE_ID_MISSING_HEADER_ERROR`,`CompositeIdMissingHeaderError`,e??`Invalid compositeId, missing header`)}},oe=class extends Y{constructor(e){super(`COMPOSITE_ID_MISSING_BODY_ERROR`,`CompositeIdMissingBodyError`,e??`Invalid compositeId, missing body`)}},se=class extends Y{constructor(e){super(`COMPOSITE_ID_UNKNOWN_IDENTIFIER_ERROR`,`CompositeIdUnknownIdentifierError`,e??`Invalid compositeId, unknown identifier`)}},ce=class extends Y{constructor(e){super(`COMPOSITE_ID_UNSUPPORTED_VERSION_ERROR`,`CompositeIdUnsupportedVersionError`,e??`Invalid compositeId, unsupported version`)}};const le=e=>!w(e)&&`value`in e&&e.value!==void 0,ue=e=>!w(e)&&`identifiers`in e&&e.identifiers!==void 0,de=(e,t={version:1})=>{if(t.version===1)return _e(pe(e,t.aliases));throw new ce(`Cannot generate ID, unsupported version number: ${t.version}`)},fe=(e,t={version:1})=>{let n=ge(e,t),r={};return n&&n.split(ne).forEach(e=>{let[n,i]=e.split(te),a=he(n,t.aliases??{});r[a]=be(i)}),r},pe=(e,t={})=>{if(le(e))return me({identifier:e,compositeIdAliases:t,isSoleIdentifier:!0});if(ue(e))return e.identifiers.map(e=>me({identifier:e,compositeIdAliases:t,isSoleIdentifier:!1})).join(`,`);throw new se},me=({identifier:e,compositeIdAliases:t,isSoleIdentifier:n})=>[n?`id`:t[e.key]||e.key,ye(e.value)].filter(Boolean).join(`:`),he=(e,t)=>Object.keys(t).find(n=>t[n]===e)??e,ge=(e,t)=>{if(t.version===1)return ve(e);throw new ce(`Cannot decode ID, unsupported version number: ${t.version}`)},_e=e=>`${J}${t(e)}`,ve=t=>{if(!t.startsWith(J))throw new ae(`Trying to decode an ID without the header: ${t}`);let n=t.split(J)[1];if(!n)throw new oe(`Trying to decode an ID without a body: ${t}`);return e(n)},ye=e=>[`,`,`:`].reduce((e,t)=>e.replace(t,`\\`+t),e),be=e=>[`,`,`:`].reduce((e,t)=>{let n=`\\`+t;return e.replace(RegExp(`\\\\`+n,`g`),t)},e),xe=e=>w(e)?!1:e.startsWith(J),Se={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`]},Ce=e=>Se[e],we=e=>e in Se,Te=[`preview`,`beta`,`ga`,`deprecated`],Ee=N({r:M.record(M.string(),N({n:M.number().optional().nullable(),c:M.string().optional().nullable(),p:M.number().optional().nullable()})),v:M.number(),t:M.number()}),De=N({remote:M.record(M.string(),N({pageNumber:M.number().optional(),providerPageCursor:M.string().optional(),position:M.number().optional()})),version:M.number(),timestamp:M.number()}),Oe=e=>t(JSON.stringify(ke(e))),ke=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}},Ae=t=>{try{if(E(t)){let n=e(t),r=JSON.parse(n);return je(Ee.parse(r))}else return De.parse(t),t}catch{return null}},je=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}},Me=(e,t)=>{let r=typeof e==`string`?Ae(e):e,i=typeof t==`string`?Ae(t):t;if(r===null||i===null)return r===i;let{timestamp:a,...o}=r,{timestamp:s,...c}=i;return n(o)===n(c)},Ne=({cursor:e,ignoreStepIndex:t})=>w(e)?!0:Object.keys(e?.remote??{}).reduce((n,r)=>{let i=e?.remote?.[r];return(w(t)||r!==t.toString())&&(n=n&&w(i.pageNumber)&&w(i.position)&&w(i.providerPageCursor)),n},!0),Pe=({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=w(n)&&w(r)&&w(i);return w(e)?{remote:o?{}:{[t]:a},version:2,timestamp:Date.now()}:o?(delete e.remote[t],e):{...e,remote:{...e.remote,[t]:a}}},Fe=e=>e instanceof ie,Ie=M.object({stepsDataToGroup:M.array(M.string()),isSingleRecord:M.boolean().optional()}),Le=M.object({data:M.unknown()}),Re=async({block:e,params:t})=>{let{stepsDataToGroup:n,isSingleRecord:r}=Ie.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]={...D(t[e])?t[e]:{},[n]:{...i[e]}}}),t):t},{});return{block:{...e},successful:!0,output:{data:r?i:Object.values(i)}}},ze=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=Ve(e,t,Be(r,a,i));return n.push(...o.errors||[]),o.record})}else{let a=Ve(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}},Be=(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},{}),Ve=(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}=He(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}},He=(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=P(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}},Ue=e=>{switch(e){case`country_alpha2code_by_alpha2code`:return r;case`country_alpha3code_by_alpha3code`:return l;case`country_code_by_country_code`:return m;case`country_name_by_country_name`:return y;case`country_name_by_alpha3code`:return _;case`country_name_by_alpha2code`:return g;case`country_name_by_country_code`:return v;case`country_alpha3code_by_alpha2code`:return c;case`country_alpha3code_by_country_name`:return d;case`country_alpha3code_by_country_code`:return u;case`country_alpha2code_by_alpha3code`:return i;case`country_alpha2code_by_country_name`:return s;case`country_alpha2code_by_country_code`:return o;case`country_code_by_alpha2code`:return f;case`country_code_by_alpha3code`:return p;case`country_code_by_country_name`:return h;case`country_subdivisions_by_alpha2code`:return S;case`country_subdivision_code_by_subdivision_name`:return b;case`country_alpha2code_by_citizenship`:return a;case`country_subdivision_name_by_subdivision_code`:return x;case`document_file_format_from_extension`:return C;default:return}},We=N({targetFieldKey:M.string(),alias:M.string().optional(),expression:M.string().optional(),values:M.unknown().optional(),type:M.enum([`string`,`number`,`boolean`,`datetime_string`,`enum`,`object`]),array:M.boolean().default(!1),custom:M.boolean().default(!1),hidden:M.boolean().default(!1),enumMapper:N({matcher:M.string().or(N({matchExpression:M.string(),value:M.string()}).array())}).optional(),properties:M.lazy(()=>We).array().optional(),requiredScopes:M.string().array().optional()}),Ge=M.object({fields:We.array(),dataSource:M.string(),externalSources:M.record(M.string(),M.string()).optional()}),Ke=M.object({data:M.unknown()}),qe=async({block:e,params:t})=>{let n=[],{fields:r,dataSource:i,externalSources:a}=Ge.parse(t),o=P(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]=P(a?.[n],e),t),{}),c;if(Array.isArray(o))c=o.map(e=>{let t=X(r,{...e,external:s});return n.push(...t?.errors||[]),t?.record});else{let e=X(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}},Je=(e,t,n)=>{if(Array.isArray(e.values))return e.values.map(r=>{let i=Qe(r,t),a=X(e.properties,i);return D(a?.errors)&&n.push(...a.errors),a?.record}).filter(Boolean)},Ye=(e,t,n)=>{if(e.expression)try{let r=P(e.expression,t);if(Array.isArray(r))return r.map(t=>{let r=X(e.properties,t);return D(r?.errors)&&n.push(...r.errors),r?.record}).filter(Boolean);{let t=X(e.properties,r);return D(t?.errors)&&n.push(...t.errors),t?.record}}catch{n.push({message:`Invalid expression`,id:t?.id,targetField:e.targetFieldKey});return}},Xe=(e,t,n)=>{let r=D(e.values)?e.values:t,i=X(e.properties,r);return D(i?.errors)&&n.push(...i.errors),i?.record},Ze=(e,t,n)=>{if(!w(e.properties))return e.array&&Array.isArray(e.values)?Je(e,t,n):e.array&&e.expression?Ye(e,t,n):Xe(e,t,n)},X=(e,t)=>{if(!t)return;let n={},r=[],i={};for(let a of e){let e;if(a.type===`object`){if(e=Ze(a,t,r),e===void 0)continue}else{let{error:n,value:i}=$e(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}},Qe=(e,t)=>{if(e==null)return e;if(typeof e==`string`){if(F(e))try{return P(e,t)}catch{return e}return e}if(Array.isArray(e))return e.map(e=>Qe(e,t));if(typeof e==`object`){let n={...e};for(let[e,r]of Object.entries(n))n[e]=Qe(r,t);return n}return e},$e=(e,t,n)=>{switch(n.type){case`string`:case`number`:case`boolean`:case`datetime_string`:return et(n,t,e);case`enum`:return tt(n,t,e);default:return{error:{message:`Invalid type`,id:t,targetField:n.targetFieldKey}}}},et=(e,t,n)=>{if(!e.expression)return{error:{message:`Expression is empty`,id:t,targetField:e.targetFieldKey}};let r;try{r=P(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}},tt=(e,t,n)=>{let r=et(e,t,n),i=D(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(E(a)){let n=Ue(a);return D(n)?{value:{value:(D(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(P(t,n)===!0)return{value:{value:r,source_value:i}}}return{value:{value:`unmapped_value`,source_value:i}}},nt=[`data`,`headers`],rt=N({type:M.literal(`none`)}),it=N({type:M.literal(`basic`),username:M.string().optional(),password:M.string().optional(),encoding:M.string().optional()}),at=N({type:M.literal(`bearer`),token:M.string(),includeBearer:M.boolean().optional().default(!0)}),ot=N({type:M.literal(`oauth2`),authorizationUrl:M.string().optional(),authorizationParams:M.record(M.string(),M.string()).optional(),tokenUrl:M.string().optional(),tokenParams:M.record(M.string(),M.string()).optional(),tokenExpiresIn:M.number().optional(),tokenRefreshExpiresIn:M.number().optional(),token:M.string(),includeBearer:M.boolean().optional().default(!0),scopes:M.string().optional(),scopeDelimiter:M.string().optional(),customHeaders:M.record(M.string(),M.string()).optional(),pkce:M.boolean().optional()}),st=M.discriminatedUnion(`type`,[rt,it,at,ot]),ct=M.object({baseUrl:M.string(),url:M.string(),method:M.enum(z),response:N({indexField:M.string().optional(),dataKey:M.string().optional(),nextKey:M.string().optional(),nextKeyIn:M.enum(nt).optional()}).optional(),iterator:N({key:M.string(),in:M.enum(H),condition:M.string().optional()}),cursor:N({token:M.string().optional().nullable(),position:M.number().optional().nullable()}).optional(),customErrors:R.array().optional(),args:N({name:M.string(),value:M.unknown(),in:M.enum(H),condition:M.string().optional(),arrayFormat:M.enum(B).optional()}).array().optional()}),lt=N({data:M.unknown().optional(),raw:M.unknown().optional(),statusCode:M.number(),message:M.string().optional(),next:M.string().optional().nullable(),position:M.number().optional()}).optional(),ut=async({block:e,params:t})=>{let n=V.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,o=r?r.filter(t=>!t.condition||P(t.condition,e)===!0).map(e=>({...e,condition:void 0})):void 0,s=t?L({...t,args:o},e):{},c={...s,customErrors:t?.customErrors,iterator:{...s?.iterator??{},condition:t?.iterator?.condition}},{baseUrl:l,url:u,method:d,response:f,iterator:p,cursor:m,customErrors:h,args:g}=ct.parse(c),_=s?.authentication?.[e.context.authenticationType]?.[e.context.environment]?.authorization,v=st.parse(_),y=g?W(g):{query:{},body:{},headers:{}},b=U(v),x={...y?.headers??{},...b},S=e.connector?.rateLimit,C=e.connector?.concurrency,E=S!==void 0||C!==void 0?{rateLimit:S,concurrency:C}:void 0,O=m?.token??null,k=null,A=null,j=[],M=[],N=[],F=a,R=m?.position??0,z=!0,B=!0,H=!0;do{z?z=!1:R=0,O!==null&&(p.in===`query`?T(O)?Object.entries(O).forEach(([e,t])=>{y.query[`${p.key}[${e}]`]=t?.toString()??``}):y.query[p.key]=O.toString():p.in===`body`&&(y.body[p.key]=O));let t;try{t=await n.performRequest({httpClient:e.httpClient,url:`${l}${u}`,queryParams:{...y?.query},method:d,headers:{...x},body:{...y?.body},customErrorConfigs:h,requestConfig:E})}catch(t){let n=t;return{block:e,successful:!1,errors:[G(t)],output:{statusCode:n?.response?.status??500,message:n?.response?.message}}}k=O,M=f?.dataKey?t.data[f?.dataKey]:t.data;let r=M?.slice(R,R+F);F-=r.length,R+=r.length,N.push(t),j=j.concat(r),A=t?.status,O=dt({result:t,response:f}),H=D(p.condition)?I(p.condition,t.data)===!0:!0,r.length===M.length&&F===0&&(R=0,k=O),B=w(O)&&j.length<a}while(D(O)&&H&&j.length<a&&M?.length>0);return{block:e,successful:!0,output:{data:mt(j,f),raw:N,statusCode:A,next:B?void 0:k,position:B?void 0:R}}},dt=({result:e,response:t})=>{if(w(t?.nextKey))return null;let n=t?.nextKeyIn??`data`,r=t?.nextKey;return n===`headers`?ft(e.headers,r):pt(e.data,r)},ft=(e,t)=>{if(w(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},pt=(e,t)=>{if(w(e)||typeof e!=`object`||!e)return null;let n=I(`$.${t}`,e);return w(n)?null:typeof n==`string`||typeof n==`number`||typeof n==`object`?n:null},mt=(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},ht=N({type:M.literal(`none`)}),gt=N({type:M.literal(`basic`),username:M.string().optional(),password:M.string().optional(),encoding:M.string().optional()}),_t=N({type:M.literal(`bearer`),token:M.string(),includeBearer:M.boolean().optional().default(!0)}),vt=N({type:M.literal(`oauth2`),authorizationUrl:M.string().optional(),authorizationParams:M.record(M.string(),M.string()).optional(),tokenUrl:M.string().optional(),tokenParams:M.record(M.string(),M.string()).optional(),tokenExpiresIn:M.number().optional(),tokenRefreshExpiresIn:M.number().optional(),token:M.string(),includeBearer:M.boolean().optional().default(!0),scopes:M.string().optional(),scopeDelimiter:M.string().optional(),customHeaders:M.record(M.string(),M.string()).optional(),pkce:M.boolean().optional()}),yt=M.discriminatedUnion(`type`,[ht,gt,_t,vt]),bt=M.object({baseUrl:M.string().optional(),url:M.string(),method:M.enum(z),authorization:yt.optional(),response:N({collection:M.boolean().optional(),indexField:M.string().optional(),dataKey:M.string().optional()}).optional(),customErrors:R.array().optional(),args:N({name:M.string(),value:M.unknown(),in:M.enum(H),condition:M.string().optional(),arrayFormat:M.enum(B).optional()}).array().optional()}),xt=N({data:M.unknown().optional(),raw:M.unknown().optional(),statusCode:M.number(),message:M.string().optional()}).optional(),St=async({block:e,params:t})=>{let n=V.build();if(!e.httpClient)throw Error(`HTTP client is not configured`);let{args:r}=t,i=r?r.filter(t=>!t.condition||P(t.condition,e)===!0).map(e=>({...e,condition:void 0})):void 0,a=t?L({...t,args:i},e):{},o={...a,customErrors:t?.customErrors},{baseUrl:s,url:c,method:l,response:u,authorization:d,customErrors:f,args:p}=bt.parse(o),m=a?.authentication?.[e.context.authenticationType]?.[e.context.environment]?.authorization,h=p?W(p):{query:{},body:{},headers:{}},g=U(D(d)?d:yt.parse(m)),_={...h?.headers??{},...g},v=e.connector?.rateLimit,y=e.connector?.concurrency,b=v!==void 0||y!==void 0?{rateLimit:v,concurrency:y}:void 0,x;try{x=await n.performRequest({httpClient:e.httpClient,url:`${s}${c}`,queryParams:h?.query,method:l,headers:_,body:h?.body,customErrorConfigs:f,requestConfig:b})}catch(t){let n=t;return{block:e,successful:!1,errors:[G(t)],output:{statusCode:n?.response?.status??500,message:n?.response?.message}}}return{block:e,successful:!0,output:{data:Ct(u?.dataKey?x.data[u?.dataKey]:x.data,u),raw:x,statusCode:x?.status,message:x?.message}}},Ct=(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},wt=N({type:M.literal(`none`)}),Tt=N({type:M.literal(`basic`),username:M.string().optional(),password:M.string().optional(),encoding:M.string().optional()}),Et=N({type:M.literal(`bearer`),token:M.string(),includeBearer:M.boolean().optional().default(!0)}),Dt=N({type:M.literal(`oauth2`),authorizationUrl:M.string().optional(),authorizationParams:M.record(M.string(),M.string()).optional(),tokenUrl:M.string().optional(),tokenParams:M.record(M.string(),M.string()).optional(),tokenExpiresIn:M.number().optional(),tokenRefreshExpiresIn:M.number().optional(),token:M.string(),includeBearer:M.boolean().optional().default(!0),scopes:M.string().optional(),scopeDelimiter:M.string().optional(),customHeaders:M.record(M.string(),M.string()).optional(),pkce:M.boolean().optional()}),Z=M.discriminatedUnion(`type`,[wt,Tt,Et,Dt]),Ot=M.object({baseUrl:M.string().optional(),url:M.string(),method:M.enum(z),authorization:M.discriminatedUnion(`type`,[N({type:M.literal(`none`)}),N({type:M.literal(`basic`),username:M.string().optional(),password:M.string().optional(),encoding:M.string().optional()}),N({type:M.literal(`bearer`),token:M.string(),includeBearer:M.boolean().optional().default(!0)}),N({type:M.literal(`oauth2`),token:M.string(),includeBearer:M.boolean().optional().default(!0)})]).optional(),envelope:M.union([M.string(),M.record(M.string(),M.unknown())]).optional(),namespaces:M.strictObject({namespaceIdentifier:M.string(),namespace:M.string()}).array().optional(),soapOperation:M.string().optional(),soapAction:M.string().optional(),useSoapContext:M.boolean().optional().default(!0),response:N({collection:M.boolean().optional(),indexField:M.string().optional(),dataKey:M.string().optional(),nextKey:M.string().optional(),nextKeyIn:M.enum([`data`,`headers`]).optional()}).optional(),iterator:N({key:M.string(),in:M.enum(H)}),cursor:N({token:M.string().optional().nullable(),position:M.number().optional().nullable()}).optional(),customErrors:R.array().optional(),args:N({name:M.string(),value:M.unknown(),in:M.enum(H),condition:M.string().optional(),arrayFormat:M.enum(B).optional()}).array().optional()}),kt=N({data:M.unknown().optional(),raw:M.unknown().optional(),statusCode:M.number(),message:M.string().optional(),next:M.string().optional().nullable(),position:M.number().optional()}).optional(),At=async({block:e,params:t})=>{let n=V.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||P(t.condition,e)===!0).map(e=>({...e,condition:void 0})):void 0,s=t?L({...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}=Ot.parse(c),C=s?.authentication?.[e.context.authenticationType]?.[e.context.environment]?.authorization,T=_?W(_):{query:{},body:{},headers:{}},E=U(D(h)?h:Z.parse(C)),O={...T?.headers??{},...E},k=e.connector?.rateLimit,A=e.connector?.concurrency,j={...(k!==void 0||A!==void 0)&&{rateLimit:k,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,F=null,I=[],R=[],z=[],B=a,H=m?.position??0,K=!0,q;do{K?K=!1:H=0,M!==null&&(p.in===`query`?T.query[p.key]=M.toString():p.in===`body`&&(T.body[p.key]=M));let t;try{t=await n.performRequest({httpClient:e.httpClient,url:`${l}${u}`,queryParams:T?.query,method:d,headers:O,body:T?.body,customErrorConfigs:g,requestConfig:j})}catch(t){let n=t;return{block:e,successful:!1,errors:[G(t)],output:{statusCode:n?.response?.status??500,message:n?.response?.message}}}N=M,R=f?.dataKey?t.data[f?.dataKey]:t.data,Array.isArray(R)||(R=R?[R]:[]);let r=R?.slice(H,H+B);B-=r.length,H+=r.length,z.push(t),I=I.concat(r),F=t?.status,M=jt({result:t,response:f}),r.length===R.length&&B===0&&(H=0,N=M),q=w(M)&&I.length<a}while(D(M)&&I.length<a&&R?.length>0);return{block:e,successful:!0,output:{data:Pt(I,f),raw:z,statusCode:F,next:q?void 0:N,position:q?void 0:H}}},jt=({result:e,response:t})=>{if(w(t?.nextKey))return null;let n=t?.nextKeyIn??`data`,r=t?.nextKey;return n===`headers`?Mt(e.headers,r):Nt(e.data,r)},Mt=(e,t)=>{if(w(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},Nt=(e,t)=>{if(w(e)||typeof e!=`object`||!e)return null;let n=e[t];return w(n)?null:typeof n==`string`||typeof n==`number`?n:null},Pt=(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},Ft=M.object({baseUrl:M.string().optional(),url:M.string(),method:M.enum(z),authorization:Z.optional(),envelope:M.union([M.string(),M.record(M.string(),M.unknown())]).optional(),namespaces:M.strictObject({namespaceIdentifier:M.string(),namespace:M.string()}).array().optional(),soapOperation:M.string().optional(),soapAction:M.string().optional(),useSoapContext:M.boolean().optional().default(!0),response:N({collection:M.boolean().optional(),indexField:M.string().optional(),dataKey:M.string().optional()}).optional(),customErrors:R.array().optional(),args:N({name:M.string(),value:M.unknown(),in:M.enum(H),condition:M.string().optional(),arrayFormat:M.enum(B).optional()}).array().optional()}),It=N({data:M.unknown().optional(),raw:M.unknown().optional(),statusCode:M.number(),message:M.string().optional()}).optional(),Lt=async({block:e,params:t})=>{let n=V.build(`soap`);if(!e.httpClient)throw Error(`HTTP client is not configured`);let{args:r}=t,i=r?r.filter(t=>!t.condition||P(t.condition,e)===!0).map(e=>({...e,condition:void 0})):void 0,a=t?L({...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}=Ft.parse(o),y=a?.authentication?.[e.context.authenticationType]?.[e.context.environment]?.authorization,b=p?W(p):{query:{},body:{},headers:{}},x=U(D(d)?d:Z.parse(y)),S={...b?.headers??{},...x},C=e.connector?.rateLimit,w=e.connector?.concurrency,T={...(C!==void 0||w!==void 0)&&{rateLimit:C,concurrency:w},soapOperation:m,namespaces:h,envelope:g,soapAction:_,soapContext:v?{username:e.credentials?.username,password:e.credentials?.password}:void 0},E;try{E=await n.performRequest({httpClient:e.httpClient,url:`${s}${c}`,queryParams:b?.query,method:l,headers:S,body:b?.body,customErrorConfigs:f,requestConfig:T})}catch(t){let n=t;return{block:e,successful:!1,errors:[G(t)],output:{statusCode:n?.response?.status??500,message:n?.response?.message}}}return{block:e,successful:!0,output:{data:Rt(u?.dataKey?E.data[u?.dataKey]:E.data,u),raw:E,statusCode:E?.status,message:E?.message}}},Rt=(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},zt=M.object({values:M.string().or(M.record(M.string(),M.unknown())).or(M.array(M.unknown()))}),Bt=M.object({data:M.unknown()}),Vt=async({block:e,params:t})=>{let{values:n}=zt.parse(t),r=Array.isArray(n)?n.map(t=>Ht(t,e)):Ht(n,e);return{block:{...e},successful:!0,output:{data:r}}},Ht=(e,t)=>E(e)?I(e,t):T(e)?L(e,t):e,Ut=M.object({targetFieldKey:M.string(),type:M.enum([`string`,`number`,`boolean`,`datetime_string`,`enum`,`object`]),array:M.boolean().default(!1),custom:M.boolean().default(!1),hidden:M.boolean().default(!1),properties:M.lazy(()=>Ut).array().optional(),requiredScopes:M.string().array().optional()}),Wt=M.object({fields:Ut.array().optional(),dataSource:M.string()}),Gt=M.object({data:M.unknown()});let Q=function(e){return e.String=`string`,e.Number=`number`,e.Boolean=`boolean`,e.DateTimeString=`datetime_string`,e}({});const Kt=({value:e,type:t,format:n})=>{if(w(e))return null;switch(t){case Q.String:return j({value:e});case Q.Number:return A({value:e});case Q.Boolean:return O({value:e});case Q.DateTimeString:return k({value:e,format:n});default:return e}},qt=e=>Object.values(Q).includes(e),Jt=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=>Yt(e,t)):Yt(e.result,t),{block:{...e,result:n},successful:!0}},Yt=(e,t)=>{let n={...e};return t.forEach(t=>{let{targetFieldKey:r,type:i}=t;qt(i)&&(!t.custom&&D(n[r])?n[r]=Kt({value:e[r],type:i}):n.unified_custom_fields&&D(n.unified_custom_fields?.[r])&&(n.unified_custom_fields[r]=Kt({value:e.unified_custom_fields?.[r],type:i})))}),{...n}},Xt=async({block:e,params:t})=>{let{fields:n,dataSource:r}=Wt.parse(t),i=P(r,e);if(!n||e?.debug?.custom_mappings===`disabled`)return{block:e,successful:!0};let a;return a=Array.isArray(i)?i.map(e=>Qt(e,n)):Qt(i,n),{block:{...e},successful:!0,output:{data:a}}},Zt=(e,t)=>!e.properties||!t?t:Array.isArray(t)?t.map(t=>typeof t==`object`&&t?Qt(t,e.properties):t):typeof t==`object`&&t?Qt(t,e.properties):t,Qt=(e,t)=>{let n={...e};return t.forEach(t=>{let{targetFieldKey:r,type:i,array:a}=t;i===`object`?!t.custom&&D(n[r])?n[r]=Zt(t,e[r]):n.unified_custom_fields&&D(n.unified_custom_fields?.[r])&&(n.unified_custom_fields[r]=Zt(t,e.unified_custom_fields?.[r])):qt(i)&&(!t.custom&&D(n[r])?(!a||!Array.isArray(n[r]))&&(n[r]=Kt({value:e[r],type:i})):n.unified_custom_fields&&D(n.unified_custom_fields?.[r])&&(!a||!Array.isArray(n.unified_custom_fields[r]))&&(n.unified_custom_fields[r]=Kt({value:e.unified_custom_fields?.[r],type:i})))}),{...n}};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}({});const $t={[$.TYPECAST]:{v1:{fn:Jt},v2:{fn:Xt,inputSchema:Wt,outputSchema:Gt}},[$.MAP_FIELDS]:{v1:{fn:ze},v2:{fn:qe,inputSchema:Ge,outputSchema:Ke}},[$.REQUEST]:{v1:{fn:St,inputSchema:bt,outputSchema:xt}},[$.GROUP_DATA]:{v1:{fn:Re,inputSchema:Ie,outputSchema:Le}},[$.PAGINATED_REQUEST]:{v1:{fn:ut,inputSchema:ct,outputSchema:lt}},[$.SOAP_REQUEST]:{v1:{fn:Lt,inputSchema:Ft,outputSchema:It}},[$.SOAP_PAGINATED_REQUEST]:{v1:{fn:At,inputSchema:Ot,outputSchema:kt}},[$.STATIC_VALUES]:{v1:{fn:Vt,inputSchema:zt,outputSchema:Bt}}},en=(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},tn={build({functionName:e,version:t=`1`,validateSchemas:n=!1,stepFunctionsList:r=$t}){let i=r?.[e]?.[`v${t}`];if(!i)throw Error(`Unknown step function: ${e} v${t}`);return n?{...i,fn:en(i,e)}:i}};export{Z as AUTHORIZATION_SCHEMA,re as COMPOSITE_ID_LATEST_VERSION,ie as CoreError,Se as INPUT_ENUM_REGISTRY,Te as ReleaseStages,$ as StepFunctionName,tn as StepFunctionsFactory,$t as StepFunctionsRegistry,Me as areCursorsEqual,fe as decodeCompositeId,de as encodeCompositeId,Ae as expandCursor,q as getCategoryDetails,Ce as getInputEnumValues,xe as isCompositeId,Fe as isCoreError,Ne as isCursorEmpty,ee as isValidCategory,we as isValidEnumRef,Oe as minifyCursor,Pe as updateCursor};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stackone/core",
3
- "version": "2.7.0",
3
+ "version": "2.8.0",
4
4
  "description": "",
5
5
  "main": "dist/index.cjs",
6
6
  "module": "dist/index.mjs",