@stackone/core 3.29.0 → 3.30.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,3 +1,3 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=Object.create,t=Object.defineProperty,__name=(e,n)=>t(e,`name`,{value:n,configurable:!0}),n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,__copyProps=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},__toESM=(n,r,a)=>(a=n==null?{}:e(i(n)),__copyProps(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));let o=require("@stackone/utils"),s=require("@stackone/expressions"),c=require("@stackone/transport"),l=require("@aws-sdk/client-lambda"),u=require("node:stream"),d=require("mime-types");d=__toESM(d);let f=require("saml"),p=require("uuid"),m=require("@stackone/redaction"),h=require("node:crypto"),g=require("jose"),_=require("form-data");_=__toESM(_);const v=[`context`,`inputs`,`steps`,`intermediateSteps`,`iterator`,`result`],buildExpressionContext=(e,t={})=>{let n=t.includeCredentials??e.context?.flowType===`refresh_authentication`,r=v.reduce((t,n)=>(n in e&&(t[n]=e[n]),t),{});return n&&`credentials`in e&&(r.credentials=e.credentials),r},y={hris:{title:`HRIS`,key:`hris`,description:`Human Resource Information System`},crm:{title:`CRM`,key:`crm`,description:`Customer Relationship Management`},ats:{title:`ATS`,key:`ats`,description:`Applicant Tracking System`},lms:{title:`LMS`,key:`lms`,description:`Learning Management System`},marketing:{title:`Marketing`,key:`marketing`,description:`Marketing`},filestorage:{title:`File Storage`,key:`filestorage`,description:`File Storage`},iam:{title:`IAM`,key:`iam`,description:`Identity and Access Management`},internal:{title:`Internal`,key:`internal`,description:`Category for internal actions`},action:{title:`Action`,key:`action`,description:`Action`}},getCategoryDetails=e=>y[e.toLowerCase()]??null,isValidCategory=e=>!!y[e.toLowerCase()],b=(0,o.encodeToBase64)(`so1!`),x=RegExp(`(?<!\\\\):`,`g`),S=RegExp(`(?<!\\\\),`,`g`);var C=class CoreError extends Error{constructor({category:e,name:t,type:n,context:r,message:i}){super(i),this.name=t??`CoreError`,this.type=n,this.category=e,this.context=r,Error.captureStackTrace&&Error.captureStackTrace(this,CoreError)}toString(){let e=this.message?`: ${this.message}`:``;return`${this.category}-${this.name} [${this.type}]${e}`}},BaseCompositeIdError=class extends C{constructor(e,t,n){super({category:`CompositeId`,name:t??`BaseCompositeIdError`,type:e,message:n})}},CompositeIdMissingHeaderError=class extends BaseCompositeIdError{constructor(e){super(`COMPOSITE_ID_MISSING_HEADER_ERROR`,`CompositeIdMissingHeaderError`,e??`Invalid compositeId, missing header`)}},CompositeIdMissingBodyError=class extends BaseCompositeIdError{constructor(e){super(`COMPOSITE_ID_MISSING_BODY_ERROR`,`CompositeIdMissingBodyError`,e??`Invalid compositeId, missing body`)}},CompositeIdUnknownIdentifierError=class extends BaseCompositeIdError{constructor(e){super(`COMPOSITE_ID_UNKNOWN_IDENTIFIER_ERROR`,`CompositeIdUnknownIdentifierError`,e??`Invalid compositeId, unknown identifier`)}},CompositeIdUnsupportedVersionError=class extends BaseCompositeIdError{constructor(e){super(`COMPOSITE_ID_UNSUPPORTED_VERSION_ERROR`,`CompositeIdUnsupportedVersionError`,e??`Invalid compositeId, unsupported version`)}};const isSingleIdentifier=e=>!(0,o.isMissing)(e)&&`value`in e&&e.value!==void 0,isMultipleIdentifier=e=>!(0,o.isMissing)(e)&&`identifiers`in e&&e.identifiers!==void 0,encodeCompositeId=(e,t={version:1})=>{if(t.version===1)return encodeIdV1(getComposedIdV1(e,t.aliases));throw new CompositeIdUnsupportedVersionError(`Cannot generate ID, unsupported version number: ${t.version}`)},decodeCompositeId=(e,t={version:1})=>{let n=decodeId(e,t),r={};return n&&n.split(S).forEach(e=>{let[n,i]=e.split(x),a=getOriginalKey(n,t.aliases??{});r[a]=unescapeValue(i)}),r},getComposedIdV1=(e,t={})=>{if(isSingleIdentifier(e))return getSingleIdentifierString({identifier:e,compositeIdAliases:t,isSoleIdentifier:!0});if(isMultipleIdentifier(e))return e.identifiers.map(e=>getSingleIdentifierString({identifier:e,compositeIdAliases:t,isSoleIdentifier:!1})).join(`,`);throw new CompositeIdUnknownIdentifierError},getSingleIdentifierString=({identifier:e,compositeIdAliases:t,isSoleIdentifier:n})=>[n?`id`:t[e.key]||e.key,escapeValue(e.value)].filter(Boolean).join(`:`),getOriginalKey=(e,t)=>Object.keys(t).find(n=>t[n]===e)??e,decodeId=(e,t)=>{if(t.version===1)return decodeIdV1(e);throw new CompositeIdUnsupportedVersionError(`Cannot decode ID, unsupported version number: ${t.version}`)},encodeIdV1=e=>`${b}${(0,o.encodeToBase64)(e)}`,decodeIdV1=e=>{if(!e.startsWith(b))throw new CompositeIdMissingHeaderError(`Trying to decode an ID without the header: ${e}`);let t=e.split(b)[1];if(!t)throw new CompositeIdMissingBodyError(`Trying to decode an ID without a body: ${e}`);return(0,o.decodeFromBase64)(t)},escapeValue=e=>[`,`,`:`].reduce((e,t)=>e.replace(t,`\\`+t),e),unescapeValue=e=>[`,`,`:`].reduce((e,t)=>{let n=`\\`+t;return e.replace(RegExp(`\\\\`+n,`g`),t)},e),isCompositeId=e=>(0,o.isMissing)(e)?!1:e.startsWith(b),computeDataSyncFingerprint=e=>{let{incremental:t}=e;return(0,o.getContentHash)({indexField:Array.isArray(e.indexField)?e.indexField:[e.indexField],incremental:t?{type:t.type,iteratorKey:t.iterator.key,iteratorIn:t.iterator.in,format:`format`in t?t.format:null}:null})},evaluateExternalAccountIdExtractor=(e,t)=>{let n=e.events?.externalAccountIdExtractor;if((0,o.isMissing)(n)||typeof n.result!=`string`||n.result.trim().length===0)return;let r=(0,s.safeEvaluate)(`{{${n.result.trim()}}}`,t);if(!(0,o.isMissing)(r)){if(typeof r==`string`){let e=r.trim();return e.length>0?e:void 0}if(typeof r==`number`||typeof r==`bigint`||typeof r==`boolean`)return String(r)}},evaluateEventRouter=(e,t)=>{let n=e.events?.router;if(!(0,o.isMissing)(n))for(let e of n.rules){let n=(0,s.safeEvaluate)(`{{${e.when.trim()}}}`,t);if(n!==null&&n!==!1&&n!==void 0){let n=e.then.input?Object.fromEntries(Object.entries(e.then.input).map(([e,n])=>[e,(0,s.safeEvaluate)(`{{${String(n).trim()}}}`,t)])):void 0;return{action:e.then.action,input:n}}}},w={email:/^[^\s@]+@(?=[^\s@]+\.[^\s@])[^\s@]+$/,url:/^https?:\/\/[^\s/?#]+(?:[/?#]\S*)?$/,uri:/^[a-zA-Z][a-zA-Z0-9+.-]*:\S+$/,uuid:/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i,date:/^\d{4}-\d{2}-\d{2}$/,datetime:/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:[Zz]|[+-]\d{2}(?::?\d{2})?)?$/},T={employment_status:[`active`,`inactive`,`terminated`,`pending`,`leave`],employment_type:[`full_time`,`part_time`,`contractor`,`intern`,`temporary`],gender:[`male`,`female`,`non_binary`,`other`,`prefer_not_to_say`],marital_status:[`single`,`married`,`divorced`,`widowed`,`domestic_partnership`]},getInputEnumValues=e=>T[e],isValidEnumRef=e=>e in T,E=[`preview`,`beta`,`ga`,`deprecated`,`internal`],D=[`auth`,`downstream-change`,`bug-fix`,`new-actions`],O=[`sync`,`async`],k=(0,o.zStrictObject)({r:o.z.record(o.z.string(),(0,o.zStrictObject)({n:o.z.number().optional().nullable(),c:o.z.string().optional().nullable(),p:o.z.number().optional().nullable()})),v:o.z.number(),t:o.z.number()}),A=(0,o.zStrictObject)({remote:o.z.record(o.z.string(),(0,o.zStrictObject)({pageNumber:o.z.number().optional(),providerPageCursor:o.z.string().optional(),position:o.z.number().optional()})),version:o.z.number(),timestamp:o.z.number()}),minifyCursor=e=>(0,o.encodeToBase64)(JSON.stringify(minifyCursorObject(e))),minifyCursorObject=e=>{let{remote:t,version:n,timestamp:r}=e;return{r:Object.fromEntries(Object.entries(t).map(([e,{pageNumber:t,providerPageCursor:n,position:r}])=>[e,{n:t,c:n,p:r}])),v:n,t:r}},expandCursor=e=>{try{if((0,o.isString)(e)){let t=(0,o.decodeFromBase64)(e),n=JSON.parse(t);return expandCursorObject(k.parse(n))}else return A.parse(e),e}catch{return null}},expandCursorObject=e=>{let{r:t,v:n,t:r}=e;return{remote:Object.fromEntries(Object.entries(t).map(([e,{n:t,c:n,p:r}])=>[e,{pageNumber:t,providerPageCursor:n,position:r}])),version:n,timestamp:r}},areCursorsEqual=(e,t)=>{let n=typeof e==`string`?expandCursor(e):e,r=typeof t==`string`?expandCursor(t):t;if(n===null||r===null)return n===r;let{timestamp:i,...a}=n,{timestamp:s,...c}=r;return(0,o.getContentHash)(a)===(0,o.getContentHash)(c)},isCursorEmpty=({cursor:e,ignoreStepIndex:t})=>(0,o.isMissing)(e)?!0:Object.keys(e?.remote??{}).reduce((n,r)=>{let i=e?.remote?.[r];return((0,o.isMissing)(t)||r!==t.toString())&&(n=n&&(0,o.isMissing)(i.pageNumber)&&(0,o.isMissing)(i.position)&&(0,o.isMissing)(i.providerPageCursor)),n},!0),updateCursor=({cursor:e,stepIndex:t,pageNumber:n,providerPageCursor:r,position:i})=>{let a={pageNumber:n??void 0,providerPageCursor:r??void 0,position:i??void 0},s=(0,o.isMissing)(n)&&(0,o.isMissing)(r)&&(0,o.isMissing)(i);return(0,o.isMissing)(e)?{remote:s?{}:{[t]:a},version:2,timestamp:Date.now()}:s?(delete e.remote[t],e):{...e,remote:{...e.remote,[t]:a}}},isCoreError=e=>e instanceof C;function stripPaginationParams(e,t){let n=getPaginationKeys(t);if(n.length===0)return e;let r=getIteratorLocation(t);if(!r)return e;let i=e[r];if(!i||typeof i!=`object`)return e;let a={...i};for(let e of n)delete a[e];return{...e,[r]:a}}function getPaginationKeys(e){switch(e.type){case`cursor`:return[e.iterator.key];case`offset`:{let t=e;return[t.iterator.offsetKey,t.iterator.limitKey]}case`page`:{let t=e,n=[t.iterator.pageKey];return t.iterator.pageSizeKey&&n.push(t.iterator.pageSizeKey),n}default:return[]}}function getIteratorLocation(e){if(`iterator`in e&&typeof e.iterator==`object`&&e.iterator!==null)return e.iterator.in}function stripIncrementalParams(e,t){if(!t)return e;let{key:n,in:r}=t.iterator,i=e[r];if(!i||typeof i!=`object`)return e;let a={...i};return delete a[n],{...e,[r]:a}}const j={RequestTester:`REQUEST_TESTER`,ActionTester:`ACTION_TESTER`,Discode:`DISCODE`,Dashboard:`DASHBOARD`,Playground:`PLAYGROUND`,SDK:`SDK`,API:`API`,Scheduler:`SCHEDULER`,Webhook:`WEBHOOK`,Agent:`AGENT`,MCP:`MCP`,Application:`APPLICATION`,DataSync:`DATA_SYNC`,DataSyncV2:`DATA_SYNC_V2`,Internal:`INTERNAL`,ConnectionTest:`CONNECTION_TEST`},M={HTTP:`HTTP`,MCP:`MCP`,ActionRPC:`ACTION_RPC`,WebSocket:`WEBSOCKET`},N={HTTP:`HTTP`,WebSocket:`WEBSOCKET`,SSE:`SSE`},P={APIKey:`API_KEY`,SessionToken:`SESSION_TOKEN`,UserSession:`USER_SESSION`,Cookie:`COOKIE`,Webhook:`WEBHOOK`,Signature:`SIGNATURE`},browserUseStepFunction=async()=>{throw Error(`browser_use step function cannot be executed synchronously — actions using this step must have executionMode: "async" so they are dispatched to the Temporal workflow runtime`)},F=o.z.object({startUrl:o.z.string().url(),systemPrompt:o.z.string().optional(),viewport:(0,o.zStrictObject)({width:o.z.number().int().positive(),height:o.z.number().int().positive()}).optional(),locale:o.z.string().optional(),budgets:(0,o.zStrictObject)({maxDurationMs:o.z.number().int().positive(),maxSteps:o.z.number().int().positive()}),auth:(0,o.zStrictObject)({sensitiveKeys:o.z.array(o.z.string().min(1)).optional(),requiresSession:o.z.boolean().optional(),allowedDomains:o.z.array(o.z.string().min(1)).optional()}).optional()}),I=o.z.unknown(),sanitizeRaw=e=>{let t={};return e.status!=null&&(t.status=e.status),e.data!==void 0&&(t.data=e.data),e.headers!=null&&(t.headers=e.headers),e.requestUrl!=null&&(t.requestUrl=e.requestUrl),e.message!=null&&(t.message=e.message),t},isSerializedBuffer=e=>typeof e==`object`&&!!e&&e.type===`Buffer`&&Array.isArray(e.data),decodeBinaryBody=e=>{let t;if(Buffer.isBuffer(e)?t=e.toString(`utf8`):e instanceof ArrayBuffer?t=new TextDecoder().decode(new Uint8Array(e)):ArrayBuffer.isView(e)?t=new TextDecoder().decode(new Uint8Array(e.buffer,e.byteOffset,e.byteLength)):isSerializedBuffer(e)&&(t=Buffer.from(e.data).toString(`utf8`)),t===void 0)return e;try{return JSON.parse(t)}catch{return t}},decodeResponseBody=e=>({...e,data:decodeBinaryBody(e.data)}),isHttpLikeError=e=>typeof e==`object`&&!!e&&`response`in e&&e.response!=null&&typeof e.response==`object`,extractTopLevelMessage=e=>{if(typeof e.message==`string`&&e.message.trim().length>0)return e.message},extractNestedErrorMessage=e=>{if(e.error!=null&&typeof e.error==`object`&&!Array.isArray(e.error)&&typeof e.error.message==`string`)return e.error.message;if(typeof e.error==`string`&&e.error.length>0)return e.error;if(typeof e.error_description==`string`&&e.error_description.length>0)return e.error_description},extractErrorMessage=(e,t)=>{let n=e.data;if(typeof n==`object`&&n&&!Array.isArray(n)){let e=extractTopLevelMessage(n);if(e!=null)return e}if(typeof e.message==`string`&&e.message.length>0)return e.message;if(typeof n==`object`&&n&&!Array.isArray(n)){let e=extractNestedErrorMessage(n);if(e!=null)return e}if(Array.isArray(n)&&n.length>0){let e=n[0];if(typeof e==`object`&&e&&!Array.isArray(e)){let t=e,n=extractTopLevelMessage(t)??extractNestedErrorMessage(t);if(n!=null)return n}}return typeof n==`string`&&n.length>0?n:t},buildStepErrorOutput=(e,t)=>{if(e instanceof c.HttpResponseError){let n=e.message,r=decodeResponseBody(e.response);return{block:t,successful:!1,errors:[(0,c.serializeHttpResponseError)(e)],output:{statusCode:r?.status??500,message:extractErrorMessage(r,n),data:r?.data,raw:sanitizeRaw(r)}}}if(isHttpLikeError(e)){let n=decodeResponseBody(e.response),r=e instanceof Error?e.message:`HTTP error: ${n.status??500}`;return{block:t,successful:!1,errors:[(0,c.serializeHttpResponseError)(e)],output:{statusCode:n.status??500,message:extractErrorMessage(n,r),data:n.data,raw:sanitizeRaw(n)}}}return e instanceof Error?{block:t,successful:!1,errors:[(0,c.serializeHttpResponseError)(e)],output:{statusCode:500,message:e.message}}:{block:t,successful:!1,errors:[(0,c.serializeHttpResponseError)(e)],output:{statusCode:500,message:String(e)}}},isAwsCredentials=e=>!!e&&typeof e.accessKeyId==`string`&&typeof e.secretAccessKey==`string`,buildLambdaClientConfig=({region:e,endpoint:t,credentials:n})=>({region:e,...t?{endpoint:t}:{},...isAwsCredentials(n)?{credentials:{accessKeyId:n.accessKeyId,secretAccessKey:n.secretAccessKey,sessionToken:typeof n.sessionToken==`string`?n.sessionToken:void 0}}:t?{credentials:{accessKeyId:`local`,secretAccessKey:`local`}}:{}}),defaultClientFactory=e=>new l.LambdaClient(e),invokeLambda=async({lambdaName:e,payload:t,region:n,endpoint:r,invocationType:i=`RequestResponse`,qualifier:a,credentials:o,clientFactory:s=defaultClientFactory})=>{let c=s(buildLambdaClientConfig({region:n,endpoint:r,credentials:o})),u=new l.InvokeCommand({FunctionName:e,InvocationType:i,Qualifier:a,Payload:t?Buffer.from(JSON.stringify(t)):void 0}),d=await c.send(u),f=d.Payload?Buffer.from(d.Payload).toString(`utf-8`):``,p;if(f.length===0)p=void 0;else try{p=JSON.parse(f)}catch{p=f}return{statusCode:d.StatusCode??200,payload:p,functionError:d.FunctionError,executedVersion:d.ExecutedVersion}},L=(0,o.zStrictObject)({lambdaName:o.z.string(),region:o.z.string().optional(),endpoint:o.z.string().optional(),invocationType:o.z.enum([`RequestResponse`,`Event`,`DryRun`]).optional(),qualifier:o.z.string().optional(),args:(0,o.zStrictObject)({name:o.z.string(),value:o.z.unknown(),condition:o.z.string().optional()}).array().optional().describe(`Key/value pairs combined into the JSON payload sent to the Lambda function`),dataKey:o.z.string().optional()}),R=(0,o.zStrictObject)({data:o.z.unknown().optional(),raw:o.z.unknown().optional(),statusCode:o.z.number(),message:o.z.string().optional(),executedVersion:o.z.string().optional()}).optional(),z=/\${[^}]+}/,isJsonPathLike=e=>{let t=e.trimStart();return t.startsWith(`$.`)||t.startsWith(`$[`)},hasExpressionMarker=e=>(0,s.isExpression)(e)||z.test(e)||isJsonPathLike(e),buildDataKeyExpression=e=>(0,s.isExpression)(e)||e.trimStart().startsWith(`$`)?e:`$.${e}`,B=__name((e,t)=>{if((0,o.isMissing)(e)||typeof e!=`object`||!e)return e;try{let n=(0,s.evaluate)(buildDataKeyExpression(t),e);if(n!==void 0)return n}catch{}return e[t]},`resolveDataKey`),buildPayloadFromArgs=e=>{if(!(!e||e.length===0))return e.reduce((e,t)=>(e[t.name]=t.value,e),{})},codeExecutionLambdaStepFunction=async({block:e,params:t},n=invokeLambda)=>{let r=t?.args,i=Array.isArray(r)?r:void 0,isPlainObject=e=>typeof e==`object`&&!!e,a=i?i.filter(t=>{if(!isPlainObject(t))return!0;let n=t.condition;return typeof n!=`string`||(0,s.safeEvaluate)(n,e)===!0}).map(e=>isPlainObject(e)?{...e,condition:void 0}:e):void 0,o=t?.dataKey,c=typeof o==`string`&&!z.test(o),l=t?.qualifier,u=typeof l==`string`&&!hasExpressionMarker(l),d={...t?(0,s.safeEvaluateRecord)(i===void 0?t:{...t,args:a},e):{},...c?{dataKey:o}:{},...u?{qualifier:l}:{}},f;try{f=L.parse(d)}catch(t){return buildStepErrorOutput(t,e)}let{lambdaName:p,region:m,endpoint:h,invocationType:g,qualifier:_,args:v,dataKey:y}=f,b;try{b=await n({lambdaName:p,payload:buildPayloadFromArgs(v),region:m,endpoint:h,invocationType:g,qualifier:_,credentials:e.credentials})}catch(t){return buildStepErrorOutput(t,e)}if(b.functionError){let t=typeof b.payload==`object`&&b.payload!==null&&`errorMessage`in b.payload&&typeof b.payload.errorMessage==`string`?b.payload.errorMessage:`Lambda function error: ${b.functionError}`;return{block:e,successful:!1,errors:[{message:t,kind:`lambda_function_error`,functionError:b.functionError}],output:{statusCode:b.statusCode,message:t,data:b.payload,raw:b}}}return{block:e,successful:!0,output:{data:y?B(b.payload,y):b.payload,raw:b,statusCode:b.statusCode,executedVersion:b.executedVersion}}},buildRequestContext=e=>({accountSecureId:e.context.accountSecureId,projectSecureId:e.context.projectSecureId,organizationId:e.context.organizationId,environment:e.context.environment,authConfigKey:e.context.authenticationType,provider:e.connector?.key,service:e.context.category,resource:e.connector?.key,action:e.action?.id}),V=(0,o.zStrictObject)({strategy:o.z.literal(`aws4`),service:o.z.string(),region:o.z.string().optional()}),H=(0,o.zStrictObject)({strategy:o.z.literal(`hmac`),algorithm:o.z.enum([`sha1`,`sha256`,`sha512`]).optional(),headerName:o.z.string().optional(),prefix:o.z.string().optional(),dateFormat:o.z.enum([`iso8601`,`rfc2822`]).optional(),includeHost:o.z.boolean().optional(),includeBodyHash:o.z.boolean().optional(),outputFormat:o.z.enum([`header`,`basic`]).optional(),username:o.z.string().optional()}),U=o.z.discriminatedUnion(`strategy`,[V,H]),ee=(0,o.zStrictObject)({type:o.z.literal(`none`),signing:U.optional(),redirectUri:o.z.string().optional()}),W=(0,o.zStrictObject)({type:o.z.literal(`basic`),username:o.z.string().optional(),password:o.z.string().optional(),encoding:o.z.string().optional(),redirectUri:o.z.string().optional()}),G=(0,o.zStrictObject)({type:o.z.literal(`bearer`),token:o.z.string(),includeBearer:o.z.boolean().optional().default(!0),redirectUri:o.z.string().optional()}),te=new Set([`accessToken`,`refreshToken`,`idToken`,`clientId`,`clientSecret`,`authentication_config_key`,`environment`]),K=(0,o.zStrictObject)({type:o.z.literal(`oauth2`),authorizationUrl:o.z.string().optional(),redirectUri:o.z.string().optional(),authorizationParams:o.z.record(o.z.string(),o.z.string()).optional(),tokenUrl:o.z.string().optional(),tokenParams:o.z.record(o.z.string(),o.z.string()).optional(),tokenExpiresIn:o.z.number().optional(),tokenRefreshExpiresIn:o.z.number().optional(),token:o.z.string(),includeBearer:o.z.boolean().optional().default(!0),scopes:o.z.string().optional(),scopeDelimiter:o.z.string().optional(),customHeaders:o.z.record(o.z.string(),o.z.string()).optional(),pkce:o.z.boolean().optional(),additionalTokenFields:o.z.record(o.z.string(),o.z.string().optional()).optional(),callbackParams:o.z.record(o.z.string(),o.z.string().min(1)).superRefine((e,t)=>{for(let[n,r]of Object.entries(e))te.has(r)&&t.addIssue({code:o.z.ZodIssueCode.custom,path:[n],message:`callbackParams must not target reserved credential key "${r}"`})}).optional(),issuer:o.z.string().optional(),tokenResponse:(0,o.zStrictObject)({acceptTokenTypes:o.z.array(o.z.string()).optional(),accessToken:o.z.string().min(1).optional(),refreshToken:o.z.string().min(1).optional()}).optional()}),q=o.z.discriminatedUnion(`type`,[ee,W,G,K]),J=(0,o.zStrictObject)({certs:o.z.string().array().optional(),keys:o.z.string().array().optional()}).optional(),ne=o.z.object({baseUrl:o.z.string().optional(),url:o.z.string(),method:o.z.enum(c.HttpMethods).optional().default(`get`),authorization:q.optional(),responseMode:o.z.enum([`buffer`,`stream`]).optional().default(`buffer`),responseType:o.z.enum([`arraybuffer`,`blob`,`text`,`json`]).optional().default(`arraybuffer`),encoding:o.z.enum([`base64`,`utf8`,`binary`,`raw`,`none`]).optional().default(`base64`),response:(0,o.zStrictObject)({dataKey:o.z.string().optional(),fileNameKey:o.z.string().optional(),contentTypeKey:o.z.string().optional(),contentType:o.z.string().optional(),contentIsBase64:o.z.boolean().optional().default(!1),urlKey:o.z.string().optional(),forwardAuth:o.z.boolean().optional().default(!1)}).optional(),maxRedirects:o.z.number().optional().default(5),followRedirects:o.z.boolean().optional().default(!0),customErrors:c.CUSTOM_ERROR_CONFIG_SCHEMA.array().optional(),args:(0,o.zStrictObject)({name:o.z.string(),value:o.z.unknown(),in:o.z.enum(c.RequestParameterLocations),spread:o.z.boolean().optional(),condition:o.z.string().optional(),arrayFormat:o.z.enum(c.QueryArrayFormats).optional()}).array().optional()}),Y=(0,o.zStrictObject)({data:o.z.union([o.z.string(),o.z.instanceof(Buffer)]).optional(),raw:o.z.unknown().optional(),statusCode:o.z.number(),message:o.z.string().optional(),headers:o.z.record(o.z.string(),o.z.union([o.z.string(),o.z.array(o.z.string())])).optional(),contentDisposition:o.z.string().optional(),fileMetadata:(0,o.zStrictObject)({contentType:o.z.string().optional(),contentLength:o.z.number().optional(),fileName:o.z.string().optional(),lastModified:o.z.string().optional(),etag:o.z.string().optional()}).optional(),finalUrl:o.z.string().optional()}).optional(),downloadFileStepFunction=async({block:e,params:t})=>{if(!e.httpClient)throw Error(`HTTP client is not configured`);let{args:n}=t,r=n?n.filter(t=>!t.condition||(0,s.evaluate)(t.condition,e)===!0).map(e=>({...e,condition:void 0})):void 0,i=t?(0,s.safeEvaluateRecord)({...t,args:r},e):{},a={...i,customErrors:t?.customErrors},{baseUrl:l,url:u,method:d,authorization:f,args:p,responseMode:m,responseType:h,encoding:g,response:_,maxRedirects:v,followRedirects:y}=ne.parse(a),b=i?.authentication?.[e.context.authenticationType]?.[e.context.environment]?.authorization,x=p?(0,c.parseRequestParameters)(p):{query:{},body:{},headers:{}},S=typeof x?.body==`string`?void 0:x?.body,C=(0,c.createAuthorizationHeaders)((0,o.notMissing)(f)?f:q.parse(b)),w={...x?.headers??{},...C},T=e.connector?.rateLimit,E=e.connector?.concurrency,D=T!==void 0||E!==void 0?{rateLimits:T,concurrency:E}:void 0,O=buildRequestContext(e);if(m===`stream`)return performStreamDownload({block:e,httpClient:e.httpClient,baseUrl:l??``,url:u,method:d,headers:w,queryParams:x?.query,body:S,maxRedirects:y?v:0,requestConfig:D,context:O,response:_,responseType:h,authHeaders:C});try{return{block:e,successful:!0,output:await performDownload({httpClient:e.httpClient,baseUrl:l??``,url:u,method:d,headers:w,queryParams:x?.query,body:S,responseType:h,encoding:g,response:_,maxRedirects:y?v:0,requestConfig:D,context:O,authHeaders:C})}}catch(t){return buildStepErrorOutput(t,e)}},performStreamDownload=async e=>{let{block:t,httpClient:n,baseUrl:r,url:i,method:a,headers:s,queryParams:c,body:l,maxRedirects:d,requestConfig:f,context:p,response:m,responseType:h,authHeaders:g}=e,_=`${r}${i}`;if(!_.startsWith(`http://`)&&!_.startsWith(`https://`))throw Error(`Invalid URL: "${_}". URL must be absolute (start with http:// or https://). Either provide a baseUrl or ensure url is a complete URL.`);if((0,o.notMissing)(m?.dataKey)||(0,o.notMissing)(m?.urlKey))try{let e=await performDownload({httpClient:n,baseUrl:r,url:i,method:a,headers:s,queryParams:c,body:l,responseType:h??`arraybuffer`,encoding:`none`,response:m,maxRedirects:d,requestConfig:f,context:p,authHeaders:g??{}}),_=Buffer.isBuffer(e.data)?e.data:Buffer.from(e.data),v={...e.fileMetadata,contentLength:_.length};return{block:t,successful:!0,streamOutput:{stream:u.Readable.from(_),headers:(0,o.notMissing)(v.contentType)?{"content-type":v.contentType}:{},contentDisposition:e.contentDisposition,fileMetadata:v}}}catch(e){return buildStepErrorOutput(e,t)}if(!n.requestStream)throw Error(`HTTP client does not support streaming. Either implement requestStream method or use responseMode: "buffer".`);try{let e=await n.requestStream({url:_,method:a,headers:s,queryParams:c,payload:l,maxRedirects:d,requestConfig:f,context:p}),r=extractFileMetadata(e.headers),i=buildContentDisposition(r);return{block:t,successful:!0,streamOutput:{stream:e.stream,headers:e.headers,contentDisposition:i,fileMetadata:r}}}catch(e){return buildStepErrorOutput(e,t)}},performDownload=async e=>{let{httpClient:t,baseUrl:n,url:r,method:i,headers:a,queryParams:o,body:s,responseType:c,encoding:l,response:u,maxRedirects:d,requestConfig:f,context:p,authHeaders:m}=e,h=`${n}${r}`;if(!h.startsWith(`http://`)&&!h.startsWith(`https://`))throw Error(`Invalid URL: "${h}". URL must be absolute (start with http:// or https://). Either provide a baseUrl or ensure url is a complete URL.`);let g=u?.urlKey||u?.dataKey?`json`:c,_=await t.request({url:h,method:i,headers:a,queryParams:o,payload:s,responseType:g===`json`?void 0:g,maxRedirects:d,requestConfig:f,context:p});if(u?.urlKey||u?.dataKey)return handleJsonResponse({httpClient:t,result:_,response:u,encoding:l,maxRedirects:d,requestConfig:f,context:p,authHeaders:m});let v=encodeFileData(_.data,l),y=extractFileMetadata(_.headers),b=buildContentDisposition(y);return{data:v,raw:_,statusCode:_?.status,message:_?.message,headers:_.headers,contentDisposition:b,fileMetadata:y,finalUrl:_?.requestUrl}},handleJsonResponse=async e=>{let{httpClient:t,result:n,response:r,encoding:i,maxRedirects:a,requestConfig:s,context:c,authHeaders:l}=e,u=n.data;if(r.urlKey){let e=extractValueByPath(u,r.urlKey);if(typeof e==`string`){let n=await t.request({url:e,method:`get`,headers:r.forwardAuth?l:{},responseType:`arraybuffer`,maxRedirects:a,requestConfig:s,context:c}),d=encodeFileData(n.data,i),f=extractFileMetadata(n.headers);if(r.fileNameKey){let e=extractValueByPath(u,r.fileNameKey);typeof e==`string`&&(f.fileName=e)}if(r.contentTypeKey){let e=extractValueByPath(u,r.contentTypeKey);typeof e==`string`&&(f.contentType=e)}(0,o.isMissing)(f.contentType)&&(0,o.notMissing)(r.contentType)&&(f.contentType=r.contentType);let p=buildContentDisposition(f);return{data:d,raw:n,statusCode:n?.status,message:n?.message,headers:n.headers,contentDisposition:p,fileMetadata:f,finalUrl:e}}}if(r.dataKey){let e=extractValueByPath(u,r.dataKey);if((0,o.isMissing)(e))throw Error(`No file content found at path: ${r.dataKey}`);let t;if(typeof e==`string`)t=r.contentIsBase64?i===`base64`?e:i===`none`?Buffer.from(e,`base64`):Buffer.from(e,`base64`).toString(i===`raw`?`binary`:i):encodeFileData(e,i);else if(e instanceof ArrayBuffer||ArrayBuffer.isView(e))t=encodeFileData(e,i);else throw Error(`Unexpected file content type at path: ${r.dataKey}`);let a={};if(r.fileNameKey){let e=extractValueByPath(u,r.fileNameKey);typeof e==`string`&&(a.fileName=e)}if(r.contentTypeKey){let e=extractValueByPath(u,r.contentTypeKey);typeof e==`string`&&(a.contentType=e)}(0,o.isMissing)(a.contentType)&&(0,o.notMissing)(r.contentType)&&(a.contentType=r.contentType);let s=buildContentDisposition(a);return{data:t,raw:n,statusCode:n?.status,message:n?.message,headers:n.headers,contentDisposition:s,fileMetadata:a}}throw Error(`JSON response handling requires either urlKey or dataKey to be specified`)},extractValueByPath=(e,t)=>{let n=(t.startsWith(`$.`)?t.slice(2):t).split(`.`),r=e;for(let e of n){if((0,o.isMissing)(r)||typeof r!=`object`)return;r=r[e]}return r},encodeFileData=(e,t)=>{if(t===`none`)return e instanceof ArrayBuffer||ArrayBuffer.isView(e)||typeof e==`string`?Buffer.from(e):Buffer.from(JSON.stringify(e));if(t===`raw`)return typeof e==`string`?e:e instanceof ArrayBuffer||ArrayBuffer.isView(e)?Buffer.from(e).toString(`binary`):JSON.stringify(e);if(typeof e==`string`)return t===`base64`?Buffer.from(e).toString(`base64`):e;if(e instanceof ArrayBuffer||ArrayBuffer.isView(e)){let n=Buffer.from(e);switch(t){case`base64`:return n.toString(`base64`);case`utf8`:return n.toString(`utf8`);default:return n.toString(`binary`)}}return JSON.stringify(e)},extractFileMetadata=e=>{let t=(0,o.isString)(e[`content-type`])?e[`content-type`]:void 0,n=(0,o.isString)(e[`content-length`])?e[`content-length`]:void 0,r=(0,o.isString)(e[`content-disposition`])?e[`content-disposition`]:void 0,i=(0,o.isString)(e[`last-modified`])?e[`last-modified`]:void 0,a=(0,o.isString)(e.etag)?e.etag:void 0,s=n?parseInt(n,10):void 0,c=extractFileName(r);return{contentType:t,contentLength:Number.isNaN(s)?void 0:s,fileName:c,lastModified:i,etag:a}},extractFileName=e=>{if(!e)return;let t=e.match(/filename\*=(?:UTF-8''|utf-8'')([^;\s]+)/i);if(t&&t[1])try{return decodeURIComponent(t[1])}catch{}let n=e.match(/filename=["']([^"']+)["']/);if(n&&n[1])return n[1];let r=e.match(/filename=([^;\s]+)/);if(r&&r[1])return r[1]},buildContentDisposition=e=>{let{fileName:t,contentType:n}=e,r=`attachment`;if(t)r=`attachment; filename="${t}"; filename*=UTF-8''${encodeURIComponent(t).replace(/['()]/g,escape)}`;else if(n){let e=getExtensionFromContentType(n);e&&(r=`attachment; filename="download.${e}"`)}return r},getExtensionFromContentType=e=>{let t=e.split(`;`)[0].trim().toLowerCase();return d.default.extension(t)||void 0},X=o.z.object({event:o.z.object({eventType:o.z.string(),eventId:o.z.coerce.string().optional(),eventDate:o.z.coerce.string().optional(),data:o.z.unknown().optional()}).optional()}),re=o.z.record(o.z.string(),o.z.unknown()),emitEventStepFunction=async({block:e,params:t})=>{let n=t?(0,s.safeEvaluateRecord)(t,e):{},{event:r}=X.parse(n);if(r&&e.emitEvent)try{await e.emitEvent({eventType:r.eventType,eventId:r.eventId,eventDate:r.eventDate,data:r.data})}catch(t){throw e.logger?.error({code:`EmitEventError`,message:`emitEvent callback failed: ${t.message}`}),t}else r&&!e.emitEvent&&e.logger?.warning({message:`emit_event step executed but no emitEvent callback provided on the block`});let{event:i,...a}=n;return{block:{...e},successful:!0,output:a}},ie=o.z.object({stepsDataToGroup:o.z.array(o.z.string()),isSingleRecord:o.z.boolean().optional()}),Z=o.z.object({data:o.z.unknown()}),groupDataStepFunction=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]={...(0,o.notMissing)(t[e])?t[e]:{},[n]:{...i[e]}}}),t):t},{});return{block:{...e},successful:!0,output:{data:r?i:Object.values(i)}}},ae=__name(async({block:e})=>{let t=e?.fieldConfigs,n=[],r=e.steps;if(!t||e?.debug?.custom_mappings===`disabled`||!r)return{block:e,successful:!0};let i=buildExpressionContext(e),a;if(Array.isArray(e.result)){let o=e.result.length;a=e.result.map((e,a)=>{let s=oe(e,t,extractSingleRecordBlockStepData(r,o,a),i);return n.push(...s.errors||[]),s.record})}else{let o=oe(e.result,t,r,i);a=o.record,n.push(...o.errors||[])}return{block:{...e,result:a},successful:!0,errors:Object.keys(n).length>0?n:void 0}},`mapFieldsStepFunction`),extractSingleRecordBlockStepData=(e,t,n)=>Object.entries(e).reduce((e,[r,i])=>{let a=i?.output?.data;return Array.isArray(a)&&a.length===t?e[r]={output:{data:a[n]}}:e[r]=i,e},{}),oe=__name((e,t,n,r)=>{if(!e||!n)return{record:e};let i={...r,unified:{...e},...typeof n==`object`?n:{}},a={},o=[],s={...e};for(let n of t){let{error:t,value:r}=se(i,e.id,n);if(t){o.push(t);continue}n.custom?a[n.targetFieldKey]=r:s[n.targetFieldKey]=r}return{record:{...s,unified_custom_fields:Object.keys(a).length>0?a:void 0},errors:o.length>0?o:void 0}},`mapSingleRecord`),se=__name((e,t,n)=>{let{expression:r,targetFieldKey:i}=n;if(!r)return{error:{message:`Expression is empty`,id:t,targetField:i}};let a;try{a=(0,s.evaluate)(r,e)}catch{return{error:{message:`Invalid expression`,id:t,targetField:i}}}return a===void 0?{error:{message:`Expression returned no value`,id:t,targetField:i}}:{value:a}},`extractFieldValue`),getEnumMatcher=e=>{switch(e){case`country_alpha2code_by_alpha2code`:return o.getCountryAlpha2CodeByAlpha2Code;case`country_alpha3code_by_alpha3code`:return o.getCountryAlpha3CodeByAlpha3Code;case`country_code_by_country_code`:return o.getCountryCodeByCountryCode;case`country_name_by_country_name`:return o.getCountryNameByCountryName;case`country_name_by_alpha3code`:return o.getCountryNameByAlpha3Code;case`country_name_by_alpha2code`:return o.getCountryNameByAlpha2Code;case`country_name_by_country_code`:return o.getCountryNameByCountryCode;case`country_alpha3code_by_alpha2code`:return o.getCountryAlpha3CodeByAlpha2Code;case`country_alpha3code_by_country_name`:return o.getCountryAlpha3CodeByCountryName;case`country_alpha3code_by_country_code`:return o.getCountryAlpha3CodeByCountryCode;case`country_alpha2code_by_alpha3code`:return o.getCountryAlpha2CodeByAlpha3Code;case`country_alpha2code_by_country_name`:return o.getCountryAlpha2CodeByCountryName;case`country_alpha2code_by_country_code`:return o.getCountryAlpha2CodeByCountryCode;case`country_code_by_alpha2code`:return o.getCountryCodeByAlpha2Code;case`country_code_by_alpha3code`:return o.getCountryCodeByAlpha3Code;case`country_code_by_country_name`:return o.getCountryCodeByCountryName;case`country_subdivisions_by_alpha2code`:return o.getCountrySubDivisionsByAlpha2Code;case`country_subdivision_code_by_subdivision_name`:return o.getCountrySubDivisionCodeBySubDivisionName;case`country_alpha2code_by_citizenship`:return o.getCountryAlpha2CodeByCitizenship;case`country_subdivision_name_by_subdivision_code`:return o.getCountrySubDivisionNameBySubDivisionCode;case`document_file_format_from_extension`:return o.getDocumentFileFormatFromExtension;default:return}},ce=(0,o.zStrictObject)({targetFieldKey:o.z.string(),alias:o.z.string().optional(),expression:o.z.string().optional(),values:o.z.unknown().optional(),type:o.z.enum([`string`,`number`,`boolean`,`datetime_string`,`enum`,`object`]),array:o.z.boolean().default(!1),custom:o.z.boolean().default(!1),hidden:o.z.boolean().default(!1),enumMapper:(0,o.zStrictObject)({matcher:o.z.string().or((0,o.zStrictObject)({matchExpression:o.z.string(),value:o.z.string()}).array())}).optional(),properties:o.z.lazy(()=>ce).array().optional(),requiredScopes:o.z.string().array().optional()}),le=o.z.object({fields:ce.array(),dataSource:o.z.string(),externalSources:o.z.record(o.z.string(),o.z.string()).optional()}),ue=o.z.object({data:o.z.unknown()}),mergeSourceWithState=(e,t)=>(0,o.isObject)(e)?{...t,...e}:e,mapFieldsStepFunction=async({block:e,params:t})=>{let n=[],{fields:r,dataSource:i,externalSources:a}=le.parse(t),o=buildExpressionContext(e,{includeCredentials:!0}),c=(0,s.evaluate)(i,o);if(!r||!i||e?.debug?.custom_mappings===`disabled`||!c)return{block:e,successful:!0};let l=Object.keys(a??{})?.reduce((e,t)=>(e[t]=(0,s.evaluate)(a?.[t],o),e),{}),u;if(Array.isArray(c))u=c.map(e=>{let t=Q(r,{...e,external:l},o);return n.push(...t?.errors||[]),t?.record});else{let e=Q(r,{...c,external:l},o);u=e?.record,n.push(...e?.errors||[])}return{block:{...e},successful:!0,output:{data:u},errors:Object.keys(n).length>0?n:void 0}},handleObjectArrayFromValues=(e,t,n,r)=>{if(Array.isArray(e.values))return e.values.map(i=>{let a=evaluateExpressionsInObject(i,t),s=Q(e.properties,a,r);return(0,o.notMissing)(s?.errors)&&n.push(...s.errors),s?.record}).filter(Boolean)},handleObjectArrayFromExpression=(e,t,n,r,i)=>{if(e.expression)try{let t=(0,s.evaluate)(e.expression,n);if(Array.isArray(t))return t.map(t=>{let n=Q(e.properties,t,i);return(0,o.notMissing)(n?.errors)&&r.push(...n.errors),n?.record}).filter(Boolean);{let n=Q(e.properties,t,i);return(0,o.notMissing)(n?.errors)&&r.push(...n.errors),n?.record}}catch{r.push({message:`Invalid expression`,id:t?.id,targetField:e.targetFieldKey});return}},handleSingleObject=(e,t,n,r)=>{let i=(0,o.notMissing)(e.values)?e.values:t,a=Q(e.properties,i,r);return(0,o.notMissing)(a?.errors)&&n.push(...a.errors),a?.record},de=__name((e,t,n,r,i)=>{if(!(0,o.isMissing)(e.properties))return e.array&&Array.isArray(e.values)?handleObjectArrayFromValues(e,n,r,i):e.array&&e.expression?handleObjectArrayFromExpression(e,t,n,r,i):handleSingleObject(e,t,r,i)},`handleObjectField`),Q=__name((e,t,n)=>{if(!t)return;let r=mergeSourceWithState(t,n),i={},a=[],o={};for(let s of e){let e;if(s.type===`object`){if(e=de(s,t,r,a,n),e===void 0)continue}else{let{error:n,value:i}=extractFieldValue(r,t?.id,s);if(e=i,n){a.push(n);continue}}s.custom?i[s.targetFieldKey]=e:o[s.targetFieldKey]=e}let s=Object.keys(i).length>0?{unified_custom_fields:i}:{};return{record:{...o,...s},errors:a.length>0?a:void 0}},`mapSingleRecord`),evaluateExpressionsInObject=(e,t)=>{if(e==null)return e;if(typeof e==`string`){if((0,s.isValidExpression)(e))try{return(0,s.evaluate)(e,t)}catch{return e}return e}if(Array.isArray(e))return e.map(e=>evaluateExpressionsInObject(e,t));if(typeof e==`object`){let n={...e};for(let[e,r]of Object.entries(n))n[e]=evaluateExpressionsInObject(r,t);return n}return e},extractFieldValue=(e,t,n)=>{switch(n.type){case`string`:case`number`:case`boolean`:case`datetime_string`:return fe(n,t,e);case`enum`:return evaluateEnumValue(n,t,e);default:return{error:{message:`Invalid type`,id:t,targetField:n.targetFieldKey}}}},fe=__name((e,t,n)=>{if(!e.expression)return{error:{message:`Expression is empty`,id:t,targetField:e.targetFieldKey}};let r;try{r=(0,s.evaluate)(e.expression,n)}catch{return{error:{message:`Invalid expression`,id:t,targetField:e.targetFieldKey}}}return r===void 0?{error:{message:`Expression returned no value`,id:t,targetField:e.targetFieldKey}}:{value:r}},`evaluateValue`),evaluateEnumValue=(e,t,n)=>{let r=fe(e,t,n),i=(0,o.notMissing)(r.value)?r.value:null;if(e.enumMapper===void 0)return{error:{message:`Enum mapper was not defined`,id:t,targetField:e.targetFieldKey}};let a=e.enumMapper.matcher;if((0,o.isString)(a)){let n=getEnumMatcher(a);return(0,o.notMissing)(n)?{value:{value:((0,o.notMissing)(i)?n(i):null)??`unmapped_value`,source_value:i}}:{error:{message:`The built-in matcher "${a}" is not supported`,id:t,targetField:e.targetFieldKey}}}for(let e of a){let{matchExpression:t,value:r}=e;if((0,s.evaluate)(t,n)===!0)return{value:{value:r,source_value:i}}}return{value:{value:`unmapped_value`,source_value:i}}},pe=o.z.object({baseUrl:o.z.string().optional(),url:o.z.string().optional(),method:o.z.enum([`tools/call`,`tools/list`]).default(`tools/call`),toolName:o.z.string().optional(),timeout:o.z.number().int().positive().optional(),authorization:q.optional(),args:(0,o.zStrictObject)({name:o.z.string(),value:o.z.unknown(),condition:o.z.string().optional()}).array().optional()}).refine(e=>e.method!==`tools/call`||!!e.toolName,{message:`The 'toolName' parameter is required when method is 'tools/call'`,path:[`toolName`]}),me=(0,o.zStrictObject)({data:o.z.unknown().optional(),raw:o.z.unknown().optional(),statusCode:o.z.number(),message:o.z.string().optional()}).optional(),buildMcpClient=e=>new c.McpClient(e),buildToolArguments=e=>(e??[]).reduce((e,t)=>(e[t.name]=t.value,e),{}),parseJsonText=e=>{try{return JSON.parse(e)}catch{return e}},resolveToolData=e=>{if((0,o.notMissing)(e.structuredContent))return e.structuredContent;let[t,...n]=e.content;return n.length===0&&t?.type===`text`&&typeof t.text==`string`?parseJsonText(t.text):e.content},extractTextMessage=e=>e.content.find(e=>typeof e.text==`string`)?.text,mcpRequestStepFunction=async({block:e,params:t},n=buildMcpClient)=>{let r=t?.args,i=r?r.filter(t=>!t.condition||(0,s.evaluate)(t.condition,e)===!0).map(e=>({...e,condition:void 0})):void 0,a=t?(0,s.safeEvaluateRecord)({...t,args:i},e):{},l;try{l=pe.parse(a)}catch(t){return buildStepErrorOutput(t,e)}let{baseUrl:u,url:d,method:f,toolName:p,timeout:m,authorization:h,args:g}=l,_=`${u??``}${d??``}`;if(!_)return buildStepErrorOutput(Error(`MCP server URL is missing: set the connector baseUrl or the step url parameter`),e);let v=a?.authentication?.[e.context.authenticationType]?.[e.context.environment]?.authorization,y;try{y=(0,c.createAuthorizationHeaders)((0,o.notMissing)(h)?h:q.parse(v??{type:`none`}))}catch(t){return buildStepErrorOutput(t,e)}let b=e.connector?.rateLimit,x=e.connector?.concurrency,S=n({serverUrl:_,headers:y,timeout:m,requestConfig:b!==void 0||x!==void 0?{rateLimits:b,concurrency:x}:void 0,context:buildRequestContext(e)});try{if(f===`tools/list`){let t=await S.listTools();return{block:e,successful:!0,output:{data:t.tools,raw:t,statusCode:200}}}if(!p)return buildStepErrorOutput(Error(`The 'toolName' parameter is required when method is 'tools/call'`),e);let t=await S.callTool({name:p,arguments:buildToolArguments(g)});if(t.isError){let n=extractTextMessage(t)??`MCP tool '${p}' returned an error`;return{block:e,successful:!1,errors:[{message:n,kind:`mcp_tool_error`,toolName:p}],output:{statusCode:502,message:n,data:resolveToolData(t),raw:t}}}return{block:e,successful:!0,output:{data:resolveToolData(t),raw:t,statusCode:200}}}catch(t){return buildStepErrorOutput(t,e)}finally{await S.close().catch(()=>void 0)}},generateSamlAssertion=async({cert:e,key:t,issuer:n,lifetime:r,clientId:i,nameId:a,tokenEndpoint:o,audience:s,nameIdentifierFormat:c,createSamlFn:l=e=>f.Saml20.create(e),sleepFn:u=e=>new Promise(t=>setTimeout(t,e))})=>{let d={api_key:i},m={cert:e,key:generatePrivateKey(t),issuer:n,lifetimeInSeconds:r,audiences:s,attributes:d,nameIdentifier:a,nameIdentifierFormat:c,recipient:o,sessionIndex:`_`+(0,p.v4)()},h=Buffer.from(l(m)).toString(`base64`);return await u(1e3),h},generatePrivateKey=e=>{let t=Buffer.from(e,`base64`).toString(`utf-8`).split(`###`);if(t.length!==2)throw Error(`Invalid private key`);let n=t[0];return Buffer.from(`-----BEGIN PRIVATE KEY-----
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=Object.create,t=Object.defineProperty,__name=(e,n)=>t(e,`name`,{value:n,configurable:!0}),n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,__copyProps=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},__toESM=(n,r,a)=>(a=n==null?{}:e(i(n)),__copyProps(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));let o=require("@stackone/utils"),s=require("@stackone/expressions"),c=require("@stackone/transport"),l=require("@aws-sdk/client-lambda"),u=require("node:stream"),d=require("mime-types");d=__toESM(d);let f=require("saml"),p=require("uuid"),m=require("@stackone/redaction"),h=require("node:crypto"),g=require("jose"),_=require("form-data");_=__toESM(_);const v=[`context`,`inputs`,`steps`,`intermediateSteps`,`iterator`,`result`],buildExpressionContext=(e,t={})=>{let n=t.includeCredentials??e.context?.flowType===`refresh_authentication`,r=v.reduce((t,n)=>(n in e&&(t[n]=e[n]),t),{});return n&&`credentials`in e&&(r.credentials=e.credentials),r},y={hris:{title:`HRIS`,key:`hris`,description:`Human Resource Information System`},crm:{title:`CRM`,key:`crm`,description:`Customer Relationship Management`},ats:{title:`ATS`,key:`ats`,description:`Applicant Tracking System`},lms:{title:`LMS`,key:`lms`,description:`Learning Management System`},marketing:{title:`Marketing`,key:`marketing`,description:`Marketing`},filestorage:{title:`File Storage`,key:`filestorage`,description:`File Storage`},iam:{title:`IAM`,key:`iam`,description:`Identity and Access Management`},internal:{title:`Internal`,key:`internal`,description:`Category for internal actions`},action:{title:`Action`,key:`action`,description:`Action`}},getCategoryDetails=e=>y[e.toLowerCase()]??null,isValidCategory=e=>!!y[e.toLowerCase()],b=(0,o.encodeToBase64)(`so1!`),x=RegExp(`(?<!\\\\):`,`g`),S=RegExp(`(?<!\\\\),`,`g`);var C=class CoreError extends Error{constructor({category:e,name:t,type:n,context:r,message:i}){super(i),this.name=t??`CoreError`,this.type=n,this.category=e,this.context=r,Error.captureStackTrace&&Error.captureStackTrace(this,CoreError)}toString(){let e=this.message?`: ${this.message}`:``;return`${this.category}-${this.name} [${this.type}]${e}`}},BaseCompositeIdError=class extends C{constructor(e,t,n){super({category:`CompositeId`,name:t??`BaseCompositeIdError`,type:e,message:n})}},CompositeIdMissingHeaderError=class extends BaseCompositeIdError{constructor(e){super(`COMPOSITE_ID_MISSING_HEADER_ERROR`,`CompositeIdMissingHeaderError`,e??`Invalid compositeId, missing header`)}},CompositeIdMissingBodyError=class extends BaseCompositeIdError{constructor(e){super(`COMPOSITE_ID_MISSING_BODY_ERROR`,`CompositeIdMissingBodyError`,e??`Invalid compositeId, missing body`)}},CompositeIdUnknownIdentifierError=class extends BaseCompositeIdError{constructor(e){super(`COMPOSITE_ID_UNKNOWN_IDENTIFIER_ERROR`,`CompositeIdUnknownIdentifierError`,e??`Invalid compositeId, unknown identifier`)}},CompositeIdUnsupportedVersionError=class extends BaseCompositeIdError{constructor(e){super(`COMPOSITE_ID_UNSUPPORTED_VERSION_ERROR`,`CompositeIdUnsupportedVersionError`,e??`Invalid compositeId, unsupported version`)}};const isSingleIdentifier=e=>!(0,o.isMissing)(e)&&`value`in e&&e.value!==void 0,isMultipleIdentifier=e=>!(0,o.isMissing)(e)&&`identifiers`in e&&e.identifiers!==void 0,encodeCompositeId=(e,t={version:1})=>{if(t.version===1)return encodeIdV1(getComposedIdV1(e,t.aliases));throw new CompositeIdUnsupportedVersionError(`Cannot generate ID, unsupported version number: ${t.version}`)},decodeCompositeId=(e,t={version:1})=>{let n=decodeId(e,t),r={};return n&&n.split(S).forEach(e=>{let[n,i]=e.split(x),a=getOriginalKey(n,t.aliases??{});r[a]=unescapeValue(i)}),r},getComposedIdV1=(e,t={})=>{if(isSingleIdentifier(e))return getSingleIdentifierString({identifier:e,compositeIdAliases:t,isSoleIdentifier:!0});if(isMultipleIdentifier(e))return e.identifiers.map(e=>getSingleIdentifierString({identifier:e,compositeIdAliases:t,isSoleIdentifier:!1})).join(`,`);throw new CompositeIdUnknownIdentifierError},getSingleIdentifierString=({identifier:e,compositeIdAliases:t,isSoleIdentifier:n})=>[n?`id`:t[e.key]||e.key,escapeValue(e.value)].filter(Boolean).join(`:`),getOriginalKey=(e,t)=>Object.keys(t).find(n=>t[n]===e)??e,decodeId=(e,t)=>{if(t.version===1)return decodeIdV1(e);throw new CompositeIdUnsupportedVersionError(`Cannot decode ID, unsupported version number: ${t.version}`)},encodeIdV1=e=>`${b}${(0,o.encodeToBase64)(e)}`,decodeIdV1=e=>{if(!e.startsWith(b))throw new CompositeIdMissingHeaderError(`Trying to decode an ID without the header: ${e}`);let t=e.split(b)[1];if(!t)throw new CompositeIdMissingBodyError(`Trying to decode an ID without a body: ${e}`);return(0,o.decodeFromBase64)(t)},escapeValue=e=>[`,`,`:`].reduce((e,t)=>e.replace(t,`\\`+t),e),unescapeValue=e=>[`,`,`:`].reduce((e,t)=>{let n=`\\`+t;return e.replace(RegExp(`\\\\`+n,`g`),t)},e),isCompositeId=e=>(0,o.isMissing)(e)?!1:e.startsWith(b),computeDataSyncFingerprint=e=>{let{incremental:t}=e;return(0,o.getContentHash)({indexField:Array.isArray(e.indexField)?e.indexField:[e.indexField],incremental:t?{type:t.type,iteratorKey:t.iterator.key,iteratorIn:t.iterator.in,format:`format`in t?t.format:null}:null})},evaluateExternalAccountIdExtractor=(e,t)=>{let n=e.events?.externalAccountIdExtractor;if((0,o.isMissing)(n)||typeof n.result!=`string`||n.result.trim().length===0)return;let r=(0,s.safeEvaluate)(`{{${n.result.trim()}}}`,t);if(!(0,o.isMissing)(r)){if(typeof r==`string`){let e=r.trim();return e.length>0?e:void 0}if(typeof r==`number`||typeof r==`bigint`||typeof r==`boolean`)return String(r)}},evaluateEventRouter=(e,t)=>{let n=e.events?.router;if(!(0,o.isMissing)(n))for(let e of n.rules){let n=(0,s.safeEvaluate)(`{{${e.when.trim()}}}`,t);if(n!==null&&n!==!1&&n!==void 0){let n=e.then.input?Object.fromEntries(Object.entries(e.then.input).map(([e,n])=>[e,(0,s.safeEvaluate)(`{{${String(n).trim()}}}`,t)])):void 0;return{action:e.then.action,input:n}}}},w={email:/^[^\s@]+@(?=[^\s@]+\.[^\s@])[^\s@]+$/,url:/^https?:\/\/[^\s/?#]+(?:[/?#]\S*)?$/,uri:/^[a-zA-Z][a-zA-Z0-9+.-]*:\S+$/,uuid:/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i,date:/^\d{4}-\d{2}-\d{2}$/,datetime:/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:[Zz]|[+-]\d{2}(?::?\d{2})?)?$/},T={employment_status:[`active`,`inactive`,`terminated`,`pending`,`leave`],employment_type:[`full_time`,`part_time`,`contractor`,`intern`,`temporary`],gender:[`male`,`female`,`non_binary`,`other`,`prefer_not_to_say`],marital_status:[`single`,`married`,`divorced`,`widowed`,`domestic_partnership`]},getInputEnumValues=e=>T[e],isValidEnumRef=e=>e in T,E=[`preview`,`beta`,`ga`,`deprecated`,`internal`],D=[`auth`,`downstream-change`,`bug-fix`,`new-actions`],O=[`list`,`get`,`create`,`update`,`delete`,`custom`,`refresh_token`,`test`,`event`,`unknown`],k=[`read`,`write`,`delete`,`search`,`execute`],A=[`native`,`unified`],j=[`body`,`query`,`path`,`headers`],M=[`email`,`url`,`uuid`,`date`,`datetime`,`uri`],N=[`string`,`number`,`boolean`,`datetime_string`,`object`,`enum`],P=[`sync`,`async`],F=(0,o.zStrictObject)({r:o.z.record(o.z.string(),(0,o.zStrictObject)({n:o.z.number().optional().nullable(),c:o.z.string().optional().nullable(),p:o.z.number().optional().nullable()})),v:o.z.number(),t:o.z.number()}),I=(0,o.zStrictObject)({remote:o.z.record(o.z.string(),(0,o.zStrictObject)({pageNumber:o.z.number().optional(),providerPageCursor:o.z.string().optional(),position:o.z.number().optional()})),version:o.z.number(),timestamp:o.z.number()}),minifyCursor=e=>(0,o.encodeToBase64)(JSON.stringify(minifyCursorObject(e))),minifyCursorObject=e=>{let{remote:t,version:n,timestamp:r}=e;return{r:Object.fromEntries(Object.entries(t).map(([e,{pageNumber:t,providerPageCursor:n,position:r}])=>[e,{n:t,c:n,p:r}])),v:n,t:r}},expandCursor=e=>{try{if((0,o.isString)(e)){let t=(0,o.decodeFromBase64)(e),n=JSON.parse(t);return expandCursorObject(F.parse(n))}else return I.parse(e),e}catch{return null}},expandCursorObject=e=>{let{r:t,v:n,t:r}=e;return{remote:Object.fromEntries(Object.entries(t).map(([e,{n:t,c:n,p:r}])=>[e,{pageNumber:t,providerPageCursor:n,position:r}])),version:n,timestamp:r}},areCursorsEqual=(e,t)=>{let n=typeof e==`string`?expandCursor(e):e,r=typeof t==`string`?expandCursor(t):t;if(n===null||r===null)return n===r;let{timestamp:i,...a}=n,{timestamp:s,...c}=r;return(0,o.getContentHash)(a)===(0,o.getContentHash)(c)},isCursorEmpty=({cursor:e,ignoreStepIndex:t})=>(0,o.isMissing)(e)?!0:Object.keys(e?.remote??{}).reduce((n,r)=>{let i=e?.remote?.[r];return((0,o.isMissing)(t)||r!==t.toString())&&(n=n&&(0,o.isMissing)(i.pageNumber)&&(0,o.isMissing)(i.position)&&(0,o.isMissing)(i.providerPageCursor)),n},!0),updateCursor=({cursor:e,stepIndex:t,pageNumber:n,providerPageCursor:r,position:i})=>{let a={pageNumber:n??void 0,providerPageCursor:r??void 0,position:i??void 0},s=(0,o.isMissing)(n)&&(0,o.isMissing)(r)&&(0,o.isMissing)(i);return(0,o.isMissing)(e)?{remote:s?{}:{[t]:a},version:2,timestamp:Date.now()}:s?(delete e.remote[t],e):{...e,remote:{...e.remote,[t]:a}}},isCoreError=e=>e instanceof C;function stripPaginationParams(e,t){let n=getPaginationKeys(t);if(n.length===0)return e;let r=getIteratorLocation(t);if(!r)return e;let i=e[r];if(!i||typeof i!=`object`)return e;let a={...i};for(let e of n)delete a[e];return{...e,[r]:a}}function getPaginationKeys(e){switch(e.type){case`cursor`:return[e.iterator.key];case`offset`:{let t=e;return[t.iterator.offsetKey,t.iterator.limitKey]}case`page`:{let t=e,n=[t.iterator.pageKey];return t.iterator.pageSizeKey&&n.push(t.iterator.pageSizeKey),n}default:return[]}}function getIteratorLocation(e){if(`iterator`in e&&typeof e.iterator==`object`&&e.iterator!==null)return e.iterator.in}function stripIncrementalParams(e,t){if(!t)return e;let{key:n,in:r}=t.iterator,i=e[r];if(!i||typeof i!=`object`)return e;let a={...i};return delete a[n],{...e,[r]:a}}const L={RequestTester:`REQUEST_TESTER`,ActionTester:`ACTION_TESTER`,Discode:`DISCODE`,Dashboard:`DASHBOARD`,Playground:`PLAYGROUND`,SDK:`SDK`,API:`API`,Scheduler:`SCHEDULER`,Webhook:`WEBHOOK`,Agent:`AGENT`,MCP:`MCP`,Application:`APPLICATION`,DataSync:`DATA_SYNC`,DataSyncV2:`DATA_SYNC_V2`,Internal:`INTERNAL`,ConnectionTest:`CONNECTION_TEST`},R={HTTP:`HTTP`,MCP:`MCP`,ActionRPC:`ACTION_RPC`,WebSocket:`WEBSOCKET`},z={HTTP:`HTTP`,WebSocket:`WEBSOCKET`,SSE:`SSE`},B={APIKey:`API_KEY`,SessionToken:`SESSION_TOKEN`,UserSession:`USER_SESSION`,Cookie:`COOKIE`,Webhook:`WEBHOOK`,Signature:`SIGNATURE`},browserUseStepFunction=async()=>{throw Error(`browser_use step function cannot be executed synchronously — actions using this step must have executionMode: "async" so they are dispatched to the Temporal workflow runtime`)},V=o.z.object({startUrl:o.z.string().url(),systemPrompt:o.z.string().optional(),viewport:(0,o.zStrictObject)({width:o.z.number().int().positive(),height:o.z.number().int().positive()}).optional(),locale:o.z.string().optional(),budgets:(0,o.zStrictObject)({maxDurationMs:o.z.number().int().positive(),maxSteps:o.z.number().int().positive()}),auth:(0,o.zStrictObject)({sensitiveKeys:o.z.array(o.z.string().min(1)).optional(),requiresSession:o.z.boolean().optional(),allowedDomains:o.z.array(o.z.string().min(1)).optional()}).optional()}),H=o.z.unknown(),sanitizeRaw=e=>{let t={};return e.status!=null&&(t.status=e.status),e.data!==void 0&&(t.data=e.data),e.headers!=null&&(t.headers=e.headers),e.requestUrl!=null&&(t.requestUrl=e.requestUrl),e.message!=null&&(t.message=e.message),t},isSerializedBuffer=e=>typeof e==`object`&&!!e&&e.type===`Buffer`&&Array.isArray(e.data),decodeBinaryBody=e=>{let t;if(Buffer.isBuffer(e)?t=e.toString(`utf8`):e instanceof ArrayBuffer?t=new TextDecoder().decode(new Uint8Array(e)):ArrayBuffer.isView(e)?t=new TextDecoder().decode(new Uint8Array(e.buffer,e.byteOffset,e.byteLength)):isSerializedBuffer(e)&&(t=Buffer.from(e.data).toString(`utf8`)),t===void 0)return e;try{return JSON.parse(t)}catch{return t}},decodeResponseBody=e=>({...e,data:decodeBinaryBody(e.data)}),isHttpLikeError=e=>typeof e==`object`&&!!e&&`response`in e&&e.response!=null&&typeof e.response==`object`,extractTopLevelMessage=e=>{if(typeof e.message==`string`&&e.message.trim().length>0)return e.message},extractNestedErrorMessage=e=>{if(e.error!=null&&typeof e.error==`object`&&!Array.isArray(e.error)&&typeof e.error.message==`string`)return e.error.message;if(typeof e.error==`string`&&e.error.length>0)return e.error;if(typeof e.error_description==`string`&&e.error_description.length>0)return e.error_description},extractErrorMessage=(e,t)=>{let n=e.data;if(typeof n==`object`&&n&&!Array.isArray(n)){let e=extractTopLevelMessage(n);if(e!=null)return e}if(typeof e.message==`string`&&e.message.length>0)return e.message;if(typeof n==`object`&&n&&!Array.isArray(n)){let e=extractNestedErrorMessage(n);if(e!=null)return e}if(Array.isArray(n)&&n.length>0){let e=n[0];if(typeof e==`object`&&e&&!Array.isArray(e)){let t=e,n=extractTopLevelMessage(t)??extractNestedErrorMessage(t);if(n!=null)return n}}return typeof n==`string`&&n.length>0?n:t},buildStepErrorOutput=(e,t)=>{if(e instanceof c.HttpResponseError){let n=e.message,r=decodeResponseBody(e.response);return{block:t,successful:!1,errors:[(0,c.serializeHttpResponseError)(e)],output:{statusCode:r?.status??500,message:extractErrorMessage(r,n),data:r?.data,raw:sanitizeRaw(r)}}}if(isHttpLikeError(e)){let n=decodeResponseBody(e.response),r=e instanceof Error?e.message:`HTTP error: ${n.status??500}`;return{block:t,successful:!1,errors:[(0,c.serializeHttpResponseError)(e)],output:{statusCode:n.status??500,message:extractErrorMessage(n,r),data:n.data,raw:sanitizeRaw(n)}}}return e instanceof Error?{block:t,successful:!1,errors:[(0,c.serializeHttpResponseError)(e)],output:{statusCode:500,message:e.message}}:{block:t,successful:!1,errors:[(0,c.serializeHttpResponseError)(e)],output:{statusCode:500,message:String(e)}}},isAwsCredentials=e=>!!e&&typeof e.accessKeyId==`string`&&typeof e.secretAccessKey==`string`,buildLambdaClientConfig=({region:e,endpoint:t,credentials:n})=>({region:e,...t?{endpoint:t}:{},...isAwsCredentials(n)?{credentials:{accessKeyId:n.accessKeyId,secretAccessKey:n.secretAccessKey,sessionToken:typeof n.sessionToken==`string`?n.sessionToken:void 0}}:t?{credentials:{accessKeyId:`local`,secretAccessKey:`local`}}:{}}),defaultClientFactory=e=>new l.LambdaClient(e),invokeLambda=async({lambdaName:e,payload:t,region:n,endpoint:r,invocationType:i=`RequestResponse`,qualifier:a,credentials:o,clientFactory:s=defaultClientFactory})=>{let c=s(buildLambdaClientConfig({region:n,endpoint:r,credentials:o})),u=new l.InvokeCommand({FunctionName:e,InvocationType:i,Qualifier:a,Payload:t?Buffer.from(JSON.stringify(t)):void 0}),d=await c.send(u),f=d.Payload?Buffer.from(d.Payload).toString(`utf-8`):``,p;if(f.length===0)p=void 0;else try{p=JSON.parse(f)}catch{p=f}return{statusCode:d.StatusCode??200,payload:p,functionError:d.FunctionError,executedVersion:d.ExecutedVersion}},U=(0,o.zStrictObject)({lambdaName:o.z.string(),region:o.z.string().optional(),endpoint:o.z.string().optional(),invocationType:o.z.enum([`RequestResponse`,`Event`,`DryRun`]).optional(),qualifier:o.z.string().optional(),args:(0,o.zStrictObject)({name:o.z.string(),value:o.z.unknown(),condition:o.z.string().optional()}).array().optional().describe(`Key/value pairs combined into the JSON payload sent to the Lambda function`),dataKey:o.z.string().optional()}),W=(0,o.zStrictObject)({data:o.z.unknown().optional(),raw:o.z.unknown().optional(),statusCode:o.z.number(),message:o.z.string().optional(),executedVersion:o.z.string().optional()}).optional(),G=/\${[^}]+}/,isJsonPathLike=e=>{let t=e.trimStart();return t.startsWith(`$.`)||t.startsWith(`$[`)},hasExpressionMarker=e=>(0,s.isExpression)(e)||G.test(e)||isJsonPathLike(e),buildDataKeyExpression=e=>(0,s.isExpression)(e)||e.trimStart().startsWith(`$`)?e:`$.${e}`,K=__name((e,t)=>{if((0,o.isMissing)(e)||typeof e!=`object`||!e)return e;try{let n=(0,s.evaluate)(buildDataKeyExpression(t),e);if(n!==void 0)return n}catch{}return e[t]},`resolveDataKey`),buildPayloadFromArgs=e=>{if(!(!e||e.length===0))return e.reduce((e,t)=>(e[t.name]=t.value,e),{})},codeExecutionLambdaStepFunction=async({block:e,params:t},n=invokeLambda)=>{let r=t?.args,i=Array.isArray(r)?r:void 0,isPlainObject=e=>typeof e==`object`&&!!e,a=i?i.filter(t=>{if(!isPlainObject(t))return!0;let n=t.condition;return typeof n!=`string`||(0,s.safeEvaluate)(n,e)===!0}).map(e=>isPlainObject(e)?{...e,condition:void 0}:e):void 0,o=t?.dataKey,c=typeof o==`string`&&!G.test(o),l=t?.qualifier,u=typeof l==`string`&&!hasExpressionMarker(l),d={...t?(0,s.safeEvaluateRecord)(i===void 0?t:{...t,args:a},e):{},...c?{dataKey:o}:{},...u?{qualifier:l}:{}},f;try{f=U.parse(d)}catch(t){return buildStepErrorOutput(t,e)}let{lambdaName:p,region:m,endpoint:h,invocationType:g,qualifier:_,args:v,dataKey:y}=f,b;try{b=await n({lambdaName:p,payload:buildPayloadFromArgs(v),region:m,endpoint:h,invocationType:g,qualifier:_,credentials:e.credentials})}catch(t){return buildStepErrorOutput(t,e)}if(b.functionError){let t=typeof b.payload==`object`&&b.payload!==null&&`errorMessage`in b.payload&&typeof b.payload.errorMessage==`string`?b.payload.errorMessage:`Lambda function error: ${b.functionError}`;return{block:e,successful:!1,errors:[{message:t,kind:`lambda_function_error`,functionError:b.functionError}],output:{statusCode:b.statusCode,message:t,data:b.payload,raw:b}}}return{block:e,successful:!0,output:{data:y?K(b.payload,y):b.payload,raw:b,statusCode:b.statusCode,executedVersion:b.executedVersion}}},buildRequestContext=e=>({accountSecureId:e.context.accountSecureId,projectSecureId:e.context.projectSecureId,organizationId:e.context.organizationId,environment:e.context.environment,authConfigKey:e.context.authenticationType,provider:e.connector?.key,service:e.context.category,resource:e.connector?.key,action:e.action?.id}),ee=(0,o.zStrictObject)({strategy:o.z.literal(`aws4`),service:o.z.string(),region:o.z.string().optional()}),q=(0,o.zStrictObject)({strategy:o.z.literal(`hmac`),algorithm:o.z.enum([`sha1`,`sha256`,`sha512`]).optional(),headerName:o.z.string().optional(),prefix:o.z.string().optional(),dateFormat:o.z.enum([`iso8601`,`rfc2822`]).optional(),includeHost:o.z.boolean().optional(),includeBodyHash:o.z.boolean().optional(),outputFormat:o.z.enum([`header`,`basic`]).optional(),username:o.z.string().optional()}),J=o.z.discriminatedUnion(`strategy`,[ee,q]),te=(0,o.zStrictObject)({type:o.z.literal(`none`),signing:J.optional(),redirectUri:o.z.string().optional()}),Y=(0,o.zStrictObject)({type:o.z.literal(`basic`),username:o.z.string().optional(),password:o.z.string().optional(),encoding:o.z.string().optional(),redirectUri:o.z.string().optional()}),X=(0,o.zStrictObject)({type:o.z.literal(`bearer`),token:o.z.string(),includeBearer:o.z.boolean().optional().default(!0),redirectUri:o.z.string().optional()}),ne=new Set([`accessToken`,`refreshToken`,`idToken`,`clientId`,`clientSecret`,`authentication_config_key`,`environment`]),re=(0,o.zStrictObject)({type:o.z.literal(`oauth2`),authorizationUrl:o.z.string().optional(),redirectUri:o.z.string().optional(),authorizationParams:o.z.record(o.z.string(),o.z.string()).optional(),tokenUrl:o.z.string().optional(),tokenParams:o.z.record(o.z.string(),o.z.string()).optional(),tokenExpiresIn:o.z.number().optional(),tokenRefreshExpiresIn:o.z.number().optional(),token:o.z.string(),includeBearer:o.z.boolean().optional().default(!0),scopes:o.z.string().optional(),scopeDelimiter:o.z.string().optional(),customHeaders:o.z.record(o.z.string(),o.z.string()).optional(),pkce:o.z.boolean().optional(),additionalTokenFields:o.z.record(o.z.string(),o.z.string().optional()).optional(),callbackParams:o.z.record(o.z.string(),o.z.string().min(1)).superRefine((e,t)=>{for(let[n,r]of Object.entries(e))ne.has(r)&&t.addIssue({code:o.z.ZodIssueCode.custom,path:[n],message:`callbackParams must not target reserved credential key "${r}"`})}).optional(),issuer:o.z.string().optional(),tokenResponse:(0,o.zStrictObject)({acceptTokenTypes:o.z.array(o.z.string()).optional(),accessToken:o.z.string().min(1).optional(),refreshToken:o.z.string().min(1).optional()}).optional()}),Z=o.z.discriminatedUnion(`type`,[te,Y,X,re]),ie=(0,o.zStrictObject)({certs:o.z.string().array().optional(),keys:o.z.string().array().optional()}).optional(),ae=o.z.object({baseUrl:o.z.string().optional(),url:o.z.string(),method:o.z.enum(c.HttpMethods).optional().default(`get`),authorization:Z.optional(),responseMode:o.z.enum([`buffer`,`stream`]).optional().default(`buffer`),responseType:o.z.enum([`arraybuffer`,`blob`,`text`,`json`]).optional().default(`arraybuffer`),encoding:o.z.enum([`base64`,`utf8`,`binary`,`raw`,`none`]).optional().default(`base64`),response:(0,o.zStrictObject)({dataKey:o.z.string().optional(),fileNameKey:o.z.string().optional(),contentTypeKey:o.z.string().optional(),contentType:o.z.string().optional(),contentIsBase64:o.z.boolean().optional().default(!1),urlKey:o.z.string().optional(),forwardAuth:o.z.boolean().optional().default(!1)}).optional(),maxRedirects:o.z.number().optional().default(5),followRedirects:o.z.boolean().optional().default(!0),customErrors:c.CUSTOM_ERROR_CONFIG_SCHEMA.array().optional(),args:(0,o.zStrictObject)({name:o.z.string(),value:o.z.unknown(),in:o.z.enum(c.RequestParameterLocations),spread:o.z.boolean().optional(),condition:o.z.string().optional(),arrayFormat:o.z.enum(c.QueryArrayFormats).optional()}).array().optional()}),oe=(0,o.zStrictObject)({data:o.z.union([o.z.string(),o.z.instanceof(Buffer)]).optional(),raw:o.z.unknown().optional(),statusCode:o.z.number(),message:o.z.string().optional(),headers:o.z.record(o.z.string(),o.z.union([o.z.string(),o.z.array(o.z.string())])).optional(),contentDisposition:o.z.string().optional(),fileMetadata:(0,o.zStrictObject)({contentType:o.z.string().optional(),contentLength:o.z.number().optional(),fileName:o.z.string().optional(),lastModified:o.z.string().optional(),etag:o.z.string().optional()}).optional(),finalUrl:o.z.string().optional()}).optional(),downloadFileStepFunction=async({block:e,params:t})=>{if(!e.httpClient)throw Error(`HTTP client is not configured`);let{args:n}=t,r=n?n.filter(t=>!t.condition||(0,s.evaluate)(t.condition,e)===!0).map(e=>({...e,condition:void 0})):void 0,i=t?(0,s.safeEvaluateRecord)({...t,args:r},e):{},a={...i,customErrors:t?.customErrors},{baseUrl:l,url:u,method:d,authorization:f,args:p,responseMode:m,responseType:h,encoding:g,response:_,maxRedirects:v,followRedirects:y}=ae.parse(a),b=i?.authentication?.[e.context.authenticationType]?.[e.context.environment]?.authorization,x=p?(0,c.parseRequestParameters)(p):{query:{},body:{},headers:{}},S=typeof x?.body==`string`?void 0:x?.body,C=(0,c.createAuthorizationHeaders)((0,o.notMissing)(f)?f:Z.parse(b)),w={...x?.headers??{},...C},T=e.connector?.rateLimit,E=e.connector?.concurrency,D=T!==void 0||E!==void 0?{rateLimits:T,concurrency:E}:void 0,O=buildRequestContext(e);if(m===`stream`)return performStreamDownload({block:e,httpClient:e.httpClient,baseUrl:l??``,url:u,method:d,headers:w,queryParams:x?.query,body:S,maxRedirects:y?v:0,requestConfig:D,context:O,response:_,responseType:h,authHeaders:C});try{return{block:e,successful:!0,output:await performDownload({httpClient:e.httpClient,baseUrl:l??``,url:u,method:d,headers:w,queryParams:x?.query,body:S,responseType:h,encoding:g,response:_,maxRedirects:y?v:0,requestConfig:D,context:O,authHeaders:C})}}catch(t){return buildStepErrorOutput(t,e)}},performStreamDownload=async e=>{let{block:t,httpClient:n,baseUrl:r,url:i,method:a,headers:s,queryParams:c,body:l,maxRedirects:d,requestConfig:f,context:p,response:m,responseType:h,authHeaders:g}=e,_=`${r}${i}`;if(!_.startsWith(`http://`)&&!_.startsWith(`https://`))throw Error(`Invalid URL: "${_}". URL must be absolute (start with http:// or https://). Either provide a baseUrl or ensure url is a complete URL.`);if((0,o.notMissing)(m?.dataKey)||(0,o.notMissing)(m?.urlKey))try{let e=await performDownload({httpClient:n,baseUrl:r,url:i,method:a,headers:s,queryParams:c,body:l,responseType:h??`arraybuffer`,encoding:`none`,response:m,maxRedirects:d,requestConfig:f,context:p,authHeaders:g??{}}),_=Buffer.isBuffer(e.data)?e.data:Buffer.from(e.data),v={...e.fileMetadata,contentLength:_.length};return{block:t,successful:!0,streamOutput:{stream:u.Readable.from(_),headers:(0,o.notMissing)(v.contentType)?{"content-type":v.contentType}:{},contentDisposition:e.contentDisposition,fileMetadata:v}}}catch(e){return buildStepErrorOutput(e,t)}if(!n.requestStream)throw Error(`HTTP client does not support streaming. Either implement requestStream method or use responseMode: "buffer".`);try{let e=await n.requestStream({url:_,method:a,headers:s,queryParams:c,payload:l,maxRedirects:d,requestConfig:f,context:p}),r=extractFileMetadata(e.headers),i=buildContentDisposition(r);return{block:t,successful:!0,streamOutput:{stream:e.stream,headers:e.headers,contentDisposition:i,fileMetadata:r}}}catch(e){return buildStepErrorOutput(e,t)}},performDownload=async e=>{let{httpClient:t,baseUrl:n,url:r,method:i,headers:a,queryParams:o,body:s,responseType:c,encoding:l,response:u,maxRedirects:d,requestConfig:f,context:p,authHeaders:m}=e,h=`${n}${r}`;if(!h.startsWith(`http://`)&&!h.startsWith(`https://`))throw Error(`Invalid URL: "${h}". URL must be absolute (start with http:// or https://). Either provide a baseUrl or ensure url is a complete URL.`);let g=u?.urlKey||u?.dataKey?`json`:c,_=await t.request({url:h,method:i,headers:a,queryParams:o,payload:s,responseType:g===`json`?void 0:g,maxRedirects:d,requestConfig:f,context:p});if(u?.urlKey||u?.dataKey)return handleJsonResponse({httpClient:t,result:_,response:u,encoding:l,maxRedirects:d,requestConfig:f,context:p,authHeaders:m});let v=encodeFileData(_.data,l),y=extractFileMetadata(_.headers),b=buildContentDisposition(y);return{data:v,raw:_,statusCode:_?.status,message:_?.message,headers:_.headers,contentDisposition:b,fileMetadata:y,finalUrl:_?.requestUrl}},handleJsonResponse=async e=>{let{httpClient:t,result:n,response:r,encoding:i,maxRedirects:a,requestConfig:s,context:c,authHeaders:l}=e,u=n.data;if(r.urlKey){let e=extractValueByPath(u,r.urlKey);if(typeof e==`string`){let n=await t.request({url:e,method:`get`,headers:r.forwardAuth?l:{},responseType:`arraybuffer`,maxRedirects:a,requestConfig:s,context:c}),d=encodeFileData(n.data,i),f=extractFileMetadata(n.headers);if(r.fileNameKey){let e=extractValueByPath(u,r.fileNameKey);typeof e==`string`&&(f.fileName=e)}if(r.contentTypeKey){let e=extractValueByPath(u,r.contentTypeKey);typeof e==`string`&&(f.contentType=e)}(0,o.isMissing)(f.contentType)&&(0,o.notMissing)(r.contentType)&&(f.contentType=r.contentType);let p=buildContentDisposition(f);return{data:d,raw:n,statusCode:n?.status,message:n?.message,headers:n.headers,contentDisposition:p,fileMetadata:f,finalUrl:e}}}if(r.dataKey){let e=extractValueByPath(u,r.dataKey);if((0,o.isMissing)(e))throw Error(`No file content found at path: ${r.dataKey}`);let t;if(typeof e==`string`)t=r.contentIsBase64?i===`base64`?e:i===`none`?Buffer.from(e,`base64`):Buffer.from(e,`base64`).toString(i===`raw`?`binary`:i):encodeFileData(e,i);else if(e instanceof ArrayBuffer||ArrayBuffer.isView(e))t=encodeFileData(e,i);else throw Error(`Unexpected file content type at path: ${r.dataKey}`);let a={};if(r.fileNameKey){let e=extractValueByPath(u,r.fileNameKey);typeof e==`string`&&(a.fileName=e)}if(r.contentTypeKey){let e=extractValueByPath(u,r.contentTypeKey);typeof e==`string`&&(a.contentType=e)}(0,o.isMissing)(a.contentType)&&(0,o.notMissing)(r.contentType)&&(a.contentType=r.contentType);let s=buildContentDisposition(a);return{data:t,raw:n,statusCode:n?.status,message:n?.message,headers:n.headers,contentDisposition:s,fileMetadata:a}}throw Error(`JSON response handling requires either urlKey or dataKey to be specified`)},extractValueByPath=(e,t)=>{let n=(t.startsWith(`$.`)?t.slice(2):t).split(`.`),r=e;for(let e of n){if((0,o.isMissing)(r)||typeof r!=`object`)return;r=r[e]}return r},encodeFileData=(e,t)=>{if(t===`none`)return e instanceof ArrayBuffer||ArrayBuffer.isView(e)||typeof e==`string`?Buffer.from(e):Buffer.from(JSON.stringify(e));if(t===`raw`)return typeof e==`string`?e:e instanceof ArrayBuffer||ArrayBuffer.isView(e)?Buffer.from(e).toString(`binary`):JSON.stringify(e);if(typeof e==`string`)return t===`base64`?Buffer.from(e).toString(`base64`):e;if(e instanceof ArrayBuffer||ArrayBuffer.isView(e)){let n=Buffer.from(e);switch(t){case`base64`:return n.toString(`base64`);case`utf8`:return n.toString(`utf8`);default:return n.toString(`binary`)}}return JSON.stringify(e)},extractFileMetadata=e=>{let t=(0,o.isString)(e[`content-type`])?e[`content-type`]:void 0,n=(0,o.isString)(e[`content-length`])?e[`content-length`]:void 0,r=(0,o.isString)(e[`content-disposition`])?e[`content-disposition`]:void 0,i=(0,o.isString)(e[`last-modified`])?e[`last-modified`]:void 0,a=(0,o.isString)(e.etag)?e.etag:void 0,s=n?parseInt(n,10):void 0,c=extractFileName(r);return{contentType:t,contentLength:Number.isNaN(s)?void 0:s,fileName:c,lastModified:i,etag:a}},extractFileName=e=>{if(!e)return;let t=e.match(/filename\*=(?:UTF-8''|utf-8'')([^;\s]+)/i);if(t&&t[1])try{return decodeURIComponent(t[1])}catch{}let n=e.match(/filename=["']([^"']+)["']/);if(n&&n[1])return n[1];let r=e.match(/filename=([^;\s]+)/);if(r&&r[1])return r[1]},buildContentDisposition=e=>{let{fileName:t,contentType:n}=e,r=`attachment`;if(t)r=`attachment; filename="${t}"; filename*=UTF-8''${encodeURIComponent(t).replace(/['()]/g,escape)}`;else if(n){let e=getExtensionFromContentType(n);e&&(r=`attachment; filename="download.${e}"`)}return r},getExtensionFromContentType=e=>{let t=e.split(`;`)[0].trim().toLowerCase();return d.default.extension(t)||void 0},se=o.z.object({event:o.z.object({eventType:o.z.string(),eventId:o.z.coerce.string().optional(),eventDate:o.z.coerce.string().optional(),data:o.z.unknown().optional()}).optional()}),ce=o.z.record(o.z.string(),o.z.unknown()),emitEventStepFunction=async({block:e,params:t})=>{let n=t?(0,s.safeEvaluateRecord)(t,e):{},{event:r}=se.parse(n);if(r&&e.emitEvent)try{await e.emitEvent({eventType:r.eventType,eventId:r.eventId,eventDate:r.eventDate,data:r.data})}catch(t){throw e.logger?.error({code:`EmitEventError`,message:`emitEvent callback failed: ${t.message}`}),t}else r&&!e.emitEvent&&e.logger?.warning({message:`emit_event step executed but no emitEvent callback provided on the block`});let{event:i,...a}=n;return{block:{...e},successful:!0,output:a}},le=o.z.object({stepsDataToGroup:o.z.array(o.z.string()),isSingleRecord:o.z.boolean().optional()}),ue=o.z.object({data:o.z.unknown()}),groupDataStepFunction=async({block:e,params:t})=>{let{stepsDataToGroup:n,isSingleRecord:r}=le.parse(t),i=n.reduce((t,n)=>{let i=e.steps?.[n]?.output?.data;return i?r?{...t,[n]:{...i}}:(Object.keys(i).forEach(e=>{t[e]={...(0,o.notMissing)(t[e])?t[e]:{},[n]:{...i[e]}}}),t):t},{});return{block:{...e},successful:!0,output:{data:r?i:Object.values(i)}}},de=__name(async({block:e})=>{let t=e?.fieldConfigs,n=[],r=e.steps;if(!t||e?.debug?.custom_mappings===`disabled`||!r)return{block:e,successful:!0};let i=buildExpressionContext(e),a;if(Array.isArray(e.result)){let o=e.result.length;a=e.result.map((e,a)=>{let s=fe(e,t,extractSingleRecordBlockStepData(r,o,a),i);return n.push(...s.errors||[]),s.record})}else{let o=fe(e.result,t,r,i);a=o.record,n.push(...o.errors||[])}return{block:{...e,result:a},successful:!0,errors:Object.keys(n).length>0?n:void 0}},`mapFieldsStepFunction`),extractSingleRecordBlockStepData=(e,t,n)=>Object.entries(e).reduce((e,[r,i])=>{let a=i?.output?.data;return Array.isArray(a)&&a.length===t?e[r]={output:{data:a[n]}}:e[r]=i,e},{}),fe=__name((e,t,n,r)=>{if(!e||!n)return{record:e};let i={...r,unified:{...e},...typeof n==`object`?n:{}},a={},o=[],s={...e};for(let n of t){let{error:t,value:r}=pe(i,e.id,n);if(t){o.push(t);continue}n.custom?a[n.targetFieldKey]=r:s[n.targetFieldKey]=r}return{record:{...s,unified_custom_fields:Object.keys(a).length>0?a:void 0},errors:o.length>0?o:void 0}},`mapSingleRecord`),pe=__name((e,t,n)=>{let{expression:r,targetFieldKey:i}=n;if(!r)return{error:{message:`Expression is empty`,id:t,targetField:i}};let a;try{a=(0,s.evaluate)(r,e)}catch{return{error:{message:`Invalid expression`,id:t,targetField:i}}}return a===void 0?{error:{message:`Expression returned no value`,id:t,targetField:i}}:{value:a}},`extractFieldValue`),getEnumMatcher=e=>{switch(e){case`country_alpha2code_by_alpha2code`:return o.getCountryAlpha2CodeByAlpha2Code;case`country_alpha3code_by_alpha3code`:return o.getCountryAlpha3CodeByAlpha3Code;case`country_code_by_country_code`:return o.getCountryCodeByCountryCode;case`country_name_by_country_name`:return o.getCountryNameByCountryName;case`country_name_by_alpha3code`:return o.getCountryNameByAlpha3Code;case`country_name_by_alpha2code`:return o.getCountryNameByAlpha2Code;case`country_name_by_country_code`:return o.getCountryNameByCountryCode;case`country_alpha3code_by_alpha2code`:return o.getCountryAlpha3CodeByAlpha2Code;case`country_alpha3code_by_country_name`:return o.getCountryAlpha3CodeByCountryName;case`country_alpha3code_by_country_code`:return o.getCountryAlpha3CodeByCountryCode;case`country_alpha2code_by_alpha3code`:return o.getCountryAlpha2CodeByAlpha3Code;case`country_alpha2code_by_country_name`:return o.getCountryAlpha2CodeByCountryName;case`country_alpha2code_by_country_code`:return o.getCountryAlpha2CodeByCountryCode;case`country_code_by_alpha2code`:return o.getCountryCodeByAlpha2Code;case`country_code_by_alpha3code`:return o.getCountryCodeByAlpha3Code;case`country_code_by_country_name`:return o.getCountryCodeByCountryName;case`country_subdivisions_by_alpha2code`:return o.getCountrySubDivisionsByAlpha2Code;case`country_subdivision_code_by_subdivision_name`:return o.getCountrySubDivisionCodeBySubDivisionName;case`country_alpha2code_by_citizenship`:return o.getCountryAlpha2CodeByCitizenship;case`country_subdivision_name_by_subdivision_code`:return o.getCountrySubDivisionNameBySubDivisionCode;case`document_file_format_from_extension`:return o.getDocumentFileFormatFromExtension;default:return}},me=(0,o.zStrictObject)({targetFieldKey:o.z.string(),alias:o.z.string().optional(),expression:o.z.string().optional(),values:o.z.unknown().optional(),type:o.z.enum([`string`,`number`,`boolean`,`datetime_string`,`enum`,`object`]),array:o.z.boolean().default(!1),custom:o.z.boolean().default(!1),hidden:o.z.boolean().default(!1),enumMapper:(0,o.zStrictObject)({matcher:o.z.string().or((0,o.zStrictObject)({matchExpression:o.z.string(),value:o.z.string()}).array())}).optional(),properties:o.z.lazy(()=>me).array().optional(),requiredScopes:o.z.string().array().optional()}),he=o.z.object({fields:me.array(),dataSource:o.z.string(),externalSources:o.z.record(o.z.string(),o.z.string()).optional()}),ge=o.z.object({data:o.z.unknown()}),mergeSourceWithState=(e,t)=>(0,o.isObject)(e)?{...t,...e}:e,mapFieldsStepFunction=async({block:e,params:t})=>{let n=[],{fields:r,dataSource:i,externalSources:a}=he.parse(t),o=buildExpressionContext(e,{includeCredentials:!0}),c=(0,s.evaluate)(i,o);if(!r||!i||e?.debug?.custom_mappings===`disabled`||!c)return{block:e,successful:!0};let l=Object.keys(a??{})?.reduce((e,t)=>(e[t]=(0,s.evaluate)(a?.[t],o),e),{}),u;if(Array.isArray(c))u=c.map(e=>{let t=Q(r,{...e,external:l},o);return n.push(...t?.errors||[]),t?.record});else{let e=Q(r,{...c,external:l},o);u=e?.record,n.push(...e?.errors||[])}return{block:{...e},successful:!0,output:{data:u},errors:Object.keys(n).length>0?n:void 0}},handleObjectArrayFromValues=(e,t,n,r)=>{if(Array.isArray(e.values))return e.values.map(i=>{let a=evaluateExpressionsInObject(i,t),s=Q(e.properties,a,r);return(0,o.notMissing)(s?.errors)&&n.push(...s.errors),s?.record}).filter(Boolean)},handleObjectArrayFromExpression=(e,t,n,r,i)=>{if(e.expression)try{let t=(0,s.evaluate)(e.expression,n);if(Array.isArray(t))return t.map(t=>{let n=Q(e.properties,t,i);return(0,o.notMissing)(n?.errors)&&r.push(...n.errors),n?.record}).filter(Boolean);{let n=Q(e.properties,t,i);return(0,o.notMissing)(n?.errors)&&r.push(...n.errors),n?.record}}catch{r.push({message:`Invalid expression`,id:t?.id,targetField:e.targetFieldKey});return}},handleSingleObject=(e,t,n,r)=>{let i=(0,o.notMissing)(e.values)?e.values:t,a=Q(e.properties,i,r);return(0,o.notMissing)(a?.errors)&&n.push(...a.errors),a?.record},_e=__name((e,t,n,r,i)=>{if(!(0,o.isMissing)(e.properties))return e.array&&Array.isArray(e.values)?handleObjectArrayFromValues(e,n,r,i):e.array&&e.expression?handleObjectArrayFromExpression(e,t,n,r,i):handleSingleObject(e,t,r,i)},`handleObjectField`),Q=__name((e,t,n)=>{if(!t)return;let r=mergeSourceWithState(t,n),i={},a=[],o={};for(let s of e){let e;if(s.type===`object`){if(e=_e(s,t,r,a,n),e===void 0)continue}else{let{error:n,value:i}=extractFieldValue(r,t?.id,s);if(e=i,n){a.push(n);continue}}s.custom?i[s.targetFieldKey]=e:o[s.targetFieldKey]=e}let s=Object.keys(i).length>0?{unified_custom_fields:i}:{};return{record:{...o,...s},errors:a.length>0?a:void 0}},`mapSingleRecord`),evaluateExpressionsInObject=(e,t)=>{if(e==null)return e;if(typeof e==`string`){if((0,s.isValidExpression)(e))try{return(0,s.evaluate)(e,t)}catch{return e}return e}if(Array.isArray(e))return e.map(e=>evaluateExpressionsInObject(e,t));if(typeof e==`object`){let n={...e};for(let[e,r]of Object.entries(n))n[e]=evaluateExpressionsInObject(r,t);return n}return e},extractFieldValue=(e,t,n)=>{switch(n.type){case`string`:case`number`:case`boolean`:case`datetime_string`:return ve(n,t,e);case`enum`:return evaluateEnumValue(n,t,e);default:return{error:{message:`Invalid type`,id:t,targetField:n.targetFieldKey}}}},ve=__name((e,t,n)=>{if(!e.expression)return{error:{message:`Expression is empty`,id:t,targetField:e.targetFieldKey}};let r;try{r=(0,s.evaluate)(e.expression,n)}catch{return{error:{message:`Invalid expression`,id:t,targetField:e.targetFieldKey}}}return r===void 0?{error:{message:`Expression returned no value`,id:t,targetField:e.targetFieldKey}}:{value:r}},`evaluateValue`),evaluateEnumValue=(e,t,n)=>{let r=ve(e,t,n),i=(0,o.notMissing)(r.value)?r.value:null;if(e.enumMapper===void 0)return{error:{message:`Enum mapper was not defined`,id:t,targetField:e.targetFieldKey}};let a=e.enumMapper.matcher;if((0,o.isString)(a)){let n=getEnumMatcher(a);return(0,o.notMissing)(n)?{value:{value:((0,o.notMissing)(i)?n(i):null)??`unmapped_value`,source_value:i}}:{error:{message:`The built-in matcher "${a}" is not supported`,id:t,targetField:e.targetFieldKey}}}for(let e of a){let{matchExpression:t,value:r}=e;if((0,s.evaluate)(t,n)===!0)return{value:{value:r,source_value:i}}}return{value:{value:`unmapped_value`,source_value:i}}},ye=o.z.object({baseUrl:o.z.string().optional(),url:o.z.string().optional(),method:o.z.enum([`tools/call`,`tools/list`]).default(`tools/call`),toolName:o.z.string().optional(),timeout:o.z.number().int().positive().optional(),authorization:Z.optional(),args:(0,o.zStrictObject)({name:o.z.string(),value:o.z.unknown(),condition:o.z.string().optional()}).array().optional()}).refine(e=>e.method!==`tools/call`||!!e.toolName,{message:`The 'toolName' parameter is required when method is 'tools/call'`,path:[`toolName`]}),be=(0,o.zStrictObject)({data:o.z.unknown().optional(),raw:o.z.unknown().optional(),statusCode:o.z.number(),message:o.z.string().optional()}).optional(),buildMcpClient=e=>new c.McpClient(e),buildToolArguments=e=>(e??[]).reduce((e,t)=>(e[t.name]=t.value,e),{}),parseJsonText=e=>{try{return JSON.parse(e)}catch{return e}},resolveToolData=e=>{if((0,o.notMissing)(e.structuredContent))return e.structuredContent;let[t,...n]=e.content;return n.length===0&&t?.type===`text`&&typeof t.text==`string`?parseJsonText(t.text):e.content},extractTextMessage=e=>e.content.find(e=>typeof e.text==`string`)?.text,mcpRequestStepFunction=async({block:e,params:t},n=buildMcpClient)=>{let r=t?.args,i=r?r.filter(t=>!t.condition||(0,s.evaluate)(t.condition,e)===!0).map(e=>({...e,condition:void 0})):void 0,a=t?(0,s.safeEvaluateRecord)({...t,args:i},e):{},l;try{l=ye.parse(a)}catch(t){return buildStepErrorOutput(t,e)}let{baseUrl:u,url:d,method:f,toolName:p,timeout:m,authorization:h,args:g}=l,_=`${u??``}${d??``}`;if(!_)return buildStepErrorOutput(Error(`MCP server URL is missing: set the connector baseUrl or the step url parameter`),e);let v=a?.authentication?.[e.context.authenticationType]?.[e.context.environment]?.authorization,y;try{y=(0,c.createAuthorizationHeaders)((0,o.notMissing)(h)?h:Z.parse(v??{type:`none`}))}catch(t){return buildStepErrorOutput(t,e)}let b=e.connector?.rateLimit,x=e.connector?.concurrency,S=n({serverUrl:_,headers:y,timeout:m,requestConfig:b!==void 0||x!==void 0?{rateLimits:b,concurrency:x}:void 0,context:buildRequestContext(e)});try{if(f===`tools/list`){let t=await S.listTools();return{block:e,successful:!0,output:{data:t.tools,raw:t,statusCode:200}}}if(!p)return buildStepErrorOutput(Error(`The 'toolName' parameter is required when method is 'tools/call'`),e);let t=await S.callTool({name:p,arguments:buildToolArguments(g)});if(t.isError){let n=extractTextMessage(t)??`MCP tool '${p}' returned an error`;return{block:e,successful:!1,errors:[{message:n,kind:`mcp_tool_error`,toolName:p}],output:{statusCode:502,message:n,data:resolveToolData(t),raw:t}}}return{block:e,successful:!0,output:{data:resolveToolData(t),raw:t,statusCode:200}}}catch(t){return buildStepErrorOutput(t,e)}finally{await S.close().catch(()=>void 0)}},generateSamlAssertion=async({cert:e,key:t,issuer:n,lifetime:r,clientId:i,nameId:a,tokenEndpoint:o,audience:s,nameIdentifierFormat:c,createSamlFn:l=e=>f.Saml20.create(e),sleepFn:u=e=>new Promise(t=>setTimeout(t,e))})=>{let d={api_key:i},m={cert:e,key:generatePrivateKey(t),issuer:n,lifetimeInSeconds:r,audiences:s,attributes:d,nameIdentifier:a,nameIdentifierFormat:c,recipient:o,sessionIndex:`_`+(0,p.v4)()},h=Buffer.from(l(m)).toString(`base64`);return await u(1e3),h},generatePrivateKey=e=>{let t=Buffer.from(e,`base64`).toString(`utf-8`).split(`###`);if(t.length!==2)throw Error(`Invalid private key`);let n=t[0];return Buffer.from(`-----BEGIN PRIVATE KEY-----
2
2
  ${n}
3
- -----END PRIVATE KEY-----`)},$=__name(e=>{let t=e.trim();return t.startsWith(`{{`)&&t.endsWith(`}}`)},`isJexlExpression`),he=__name((e,t)=>{if((0,o.isMissing)(e)||typeof e!=`object`||!e)return e;let n=(0,s.safeEvaluate)($(t)?t:`$.${t}`,e);return n===void 0?e[t]:n},`resolveDataKey`),resolveFromHeaders=(e,t)=>{if((0,o.isMissing)(e)||typeof e!=`object`)return null;if($(t)){let n=(0,s.safeEvaluate)(t,e);return typeof n==`string`&&n!==``||typeof n==`number`?n:null}let n=t.toLowerCase(),[,r]=Object.entries(e).find(([e])=>e?.toLowerCase()===n)??[];if(Array.isArray(r)){let e=r.find(e=>typeof e==`string`&&e!==``||typeof e==`number`);return typeof e==`string`||typeof e==`number`?e:null}return typeof r==`string`&&r!==``||typeof r==`number`?r:null},resolveFromData=(e,t)=>{if((0,o.isMissing)(e)||typeof e!=`object`||!e)return null;let n=(0,s.safeEvaluate)($(t)?t:`$.${t}`,e);return(0,o.isMissing)(n)?null:typeof n==`string`||typeof n==`number`||typeof n==`object`?n:null},preserveJexlResponseKeys=(e,t)=>{let{nextKey:n,dataKey:r}=e?.response??{},i=n&&$(n),a=r&&$(r);return!i&&!a?t:{...t??{},...i?{nextKey:n}:{},...a?{dataKey:r}:{}}},ge=o.z.object({baseUrl:o.z.string(),url:o.z.string(),method:o.z.enum(c.HttpMethods),authorization:q.optional(),saml:(0,o.zStrictObject)({objectKey:o.z.string(),key:o.z.string(),clientId:o.z.string(),cert:o.z.unknown().optional(),issuer:o.z.string().optional(),lifetime:o.z.number().optional(),nameId:o.z.string().optional(),audience:o.z.string().optional(),nameIdentifierFormat:o.z.string().optional(),tokenEndpoint:o.z.string().optional()}).optional(),response:(0,o.zStrictObject)({indexField:o.z.string().optional(),dataKey:o.z.string().optional(),nextKey:o.z.string().optional(),nextKeyIn:o.z.enum([`data`,`headers`]).optional()}).optional(),iterator:(0,o.zStrictObject)({key:o.z.string(),in:o.z.enum([`query`,`body`]),condition:o.z.string().optional(),mode:o.z.enum([`cursor`,`offset`,`page`]).optional(),startPage:o.z.number().int().min(0).max(2**53-1).optional(),maxPage:o.z.number().int().positive().max(1e4).optional()}).superRefine((e,t)=>{e.startPage!==void 0&&e.mode!==`page`&&t.addIssue({code:o.z.ZodIssueCode.custom,path:[`startPage`],message:`startPage is only valid when iterator.mode is "page"`}),e.maxPage!==void 0&&e.mode!==`page`&&t.addIssue({code:o.z.ZodIssueCode.custom,path:[`maxPage`],message:`maxPage is only valid when iterator.mode is "page"`});let n=e.maxPage??1e3;e.mode===`page`&&(e.startPage??1)>n&&t.addIssue({code:o.z.ZodIssueCode.custom,path:[`startPage`],message:`startPage must not exceed maxPage (${n})`})}),cursor:(0,o.zStrictObject)({token:o.z.string().optional().nullable(),position:o.z.number().optional().nullable()}).optional(),customErrors:c.CUSTOM_ERROR_CONFIG_SCHEMA.array().optional(),encodeQueryParams:o.z.boolean().optional(),cacheTTL:o.z.number().int().nonnegative().optional(),args:(0,o.zStrictObject)({name:o.z.string(),value:o.z.unknown(),in:o.z.enum(c.RequestParameterLocations),spread:o.z.boolean().optional(),condition:o.z.string().optional(),arrayFormat:o.z.enum(c.QueryArrayFormats).optional()}).array().optional()}),_e=(0,o.zStrictObject)({data:o.z.unknown().optional(),raw:o.z.unknown().optional(),statusCode:o.z.number(),message:o.z.string().optional(),next:o.z.string().optional().nullable(),position:o.z.number().optional()}).optional(),paginatedRequestStepFunction=async({block:e,params:t})=>{let n=c.RequestClientFactory.build();if(!e.httpClient)throw Error(`HTTP client is not configured`);let{args:r}=t,i=Number(e.inputs?.page_size),a=Number.isNaN(i)?25:i,l=r?r.filter(t=>!t.condition||(0,s.evaluate)(t.condition,e)===!0).map(e=>({...e,condition:void 0})):void 0,u=t?(0,s.safeEvaluateRecord)({...t,args:l},e):{},d={...u,customErrors:t?.customErrors,iterator:{...u?.iterator??{},condition:t?.iterator?.condition},response:preserveJexlResponseKeys(t,u?.response)},f=d.authorization;if((0,o.notMissing)(f)){let t=q.safeParse(f);if(!t.success)return buildStepErrorOutput(Error(invalidStepAuthorizationMessage(t.error)),e)}let{baseUrl:p,url:m,method:h,response:g,authorization:_,iterator:v,cursor:y,customErrors:b,encodeQueryParams:x,args:S,saml:C,cacheTTL:w}=ge.parse(d),T=u?.authentication?.[e.context.authenticationType]?.[e.context.environment],E=T?.authorization,D=T?.certificates,O=D?(0,c.buildHttpsAgent)(D):void 0,k=(0,o.notMissing)(_)?_:q.parse(E);if(k.type===`none`&&(0,o.notMissing)(k.signing))return buildStepErrorOutput(Error(`authorization.signing is not supported on paginated_request steps — every page changes the query string, so the signature would have to be recomputed per page; use a request step instead`),e);let A=S?(0,c.parseRequestParameters)(S):{query:{},body:{},headers:{}},j=(0,c.createAuthorizationHeaders)(k),M={...A?.headers??{},...j},N=e.connector?.rateLimit,P=e.connector?.concurrency,F=N!==void 0||P!==void 0?{rateLimits:N,concurrency:P}:void 0,I=buildRequestContext(e),L=(0,o.notMissing)(C)?{[C.objectKey]:await generateSamlAssertion({key:C.key,clientId:C.clientId,cert:C.cert,issuer:C.issuer,lifetime:C.lifetime,audience:C.audience,nameId:C.nameId,nameIdentifierFormat:C.nameIdentifierFormat,tokenEndpoint:C.tokenEndpoint})}:{},R=v.mode===`offset`,z=v.mode===`page`,B=v.maxPage??1e3,V=B+1,H=z?resolveInitialPage(y?.token,v.startPage??1):y?.token??null,U=null,ee=null,W=[],G=[],te=[],K=a,J=y?.position??0,ne=!0,Y=!0,X=!0,re=null;do{if(z&&Number(H)>V)return buildStepErrorOutput(maxPageExceededError(B,H),e);ne?ne=!1:R||(J=0),H===null?R&&(v.in===`query`?A.query[v.key]=J.toString():v.in===`body`&&(Array.isArray(A.body)||(A.body[v.key]=J))):v.in===`query`?(0,o.isObject)(H)?Object.entries(H).forEach(([e,t])=>{A.query[`${v.key}[${e}]`]=t?.toString()??``}):A.query[v.key]=H.toString():v.in===`body`&&(Array.isArray(A.body)||(A.body[v.key]=H));let t;try{t=await n.performRequest({httpClient:e.httpClient,url:`${p}${m}`,queryParams:{...A?.query},encodeQueryParams:x,method:h,headers:{...M},body:Array.isArray(A?.body)?A.body:{...typeof A?.body==`string`?void 0:A?.body,...L},customErrorConfigs:b,requestConfig:F,httpsAgent:O,credentials:e.credentials,context:I,cacheTTL:w})}catch(t){return buildStepErrorOutput(t,e)}if(U=H,G=g?.dataKey?he(t.data,g.dataKey):t.data,!Array.isArray(G)){let n=z?` at page ${U}`:``,r=g?.dataKey?` at "${g.dataKey}"`:``,i=G===null?`null`:typeof G;e.logger?.warning({message:`Pagination stopped${n}: expected an array of records${r} but received ${i}; treating it as an empty page`}),te.push(t),ee=t?.status,Y=!0;break}if(z){let t=(0,o.getContentHash)(G);if(t===re){e.logger?.warning({message:`Pagination stopped at page ${U}: the provider returned the previous page again, so the page number is not advancing`}),Y=!0;break}re=t}if(z&&Number(U)>B&&G.length>0)return buildStepErrorOutput(maxPageExceededError(B,U),e);let r=R?G?.slice(0,K):G?.slice(J,J+K);K-=r.length,J+=r.length,te.push(t),W=W.concat(r),ee=t?.status,H=z?incrementPage(Number(U)):ve({result:t,response:g}),X=(0,o.notMissing)(v.condition)?(0,s.safeEvaluate)(v.condition,t.data)===!0:!0;let i=J>=(G?.length??0),c=(0,o.notMissing)(g?.nextKey),l=r.length===G.length&&K===0;!R&&(c||z)&&i&&(J=0,U=H),Y=R?!X||(0,o.isMissing)(H)&&W.length<a:z?i&&(!X||W.length<a):c?i&&((0,o.isMissing)(H)||!X):!X||(0,o.isMissing)(H)&&W.length<a||l}while((R||(0,o.notMissing)(H))&&X&&W.length<a&&G?.length>0);let ie=ye(W,g),Z=Y?void 0:U;return{block:e,successful:!0,output:{data:ie,raw:te,statusCode:ee,next:z&&typeof Z==`number`?Z.toString():Z,position:Y?void 0:J}}},resolveInitialPage=(e,t)=>{let n=Number(e);return Number.isSafeInteger(n)&&n>=t?n:t},incrementPage=e=>e+1,maxPageExceededError=(e,t)=>Error(`Pagination exceeded iterator.maxPage (${e}) at page ${t}`),invalidStepAuthorizationMessage=e=>`step authorization is invalid, check its credential expressions resolve for this account: ${e.issues.map(e=>e.message).join(`; `)}`,ve=__name(({result:e,response:t})=>{if((0,o.isMissing)(t?.nextKey))return null;let n=t?.nextKeyIn??`data`,r=t?.nextKey;return n===`headers`?resolveFromHeaders(e.headers,r):resolveFromData(e.data,r)},`resolveNextIterator`),ye=__name((e,t)=>{if(t?.indexField&&Array.isArray(e))return e.reduce((e,n)=>{let r=t.indexField;return r&&n[r]&&(e[n[r]]=n),e},{});if(t?.indexField){let n=t.indexField;return n&&e[n]?{[e[n]]:e}:e}return e},`indexResponseData`),be=o.z.object({baseUrl:o.z.string().optional(),url:o.z.string(),method:o.z.enum(c.HttpMethods),authorization:q.optional(),certificates:J,saml:(0,o.zStrictObject)({objectKey:o.z.string(),key:o.z.string(),clientId:o.z.string(),cert:o.z.unknown().optional(),issuer:o.z.string().optional(),lifetime:o.z.number().optional(),nameId:o.z.string().optional(),audience:o.z.string().optional(),nameIdentifierFormat:o.z.string().optional(),tokenEndpoint:o.z.string().optional()}).optional(),response:(0,o.zStrictObject)({collection:o.z.boolean().optional(),indexField:o.z.string().optional(),dataKey:o.z.string().optional()}).optional(),customErrors:c.CUSTOM_ERROR_CONFIG_SCHEMA.array().optional(),encodeQueryParams:o.z.boolean().optional(),cacheTTL:o.z.number().int().nonnegative().optional(),args:(0,o.zStrictObject)({name:o.z.string(),value:o.z.unknown(),in:o.z.enum(c.RequestParameterLocations),spread:o.z.boolean().optional(),inline:o.z.boolean().optional(),condition:o.z.string().optional(),arrayFormat:o.z.enum(c.QueryArrayFormats).optional()}).array().optional()}).superRefine((e,t)=>{let n=e.args??[],r=n.map((e,t)=>({arg:e,index:t})).filter(({arg:e})=>e.inline===!0),i=n.filter(e=>e.in===`body`).length;if(n.forEach((e,n)=>{e.inline===!0&&e.in!==`body`&&t.addIssue({code:o.z.ZodIssueCode.custom,path:[`args`,n,`inline`],message:`args.${e.name}: inline is only valid when in is "body", got "${e.in}"`}),e.inline===!0&&e.spread&&t.addIssue({code:o.z.ZodIssueCode.custom,path:[`args`,n,`inline`],message:`args.${e.name}: inline cannot be combined with spread`})}),r.length>0&&i>1)for(let{arg:e,index:n}of r)t.addIssue({code:o.z.ZodIssueCode.custom,path:[`args`,n,`inline`],message:`args.${e.name}: an inline body arg must be the only "in: body" arg, found ${i}; arg conditions are not considered`});if(r.length>0&&e.saml!==void 0)for(let{arg:e,index:n}of r)t.addIssue({code:o.z.ZodIssueCode.custom,path:[`args`,n,`inline`],message:`args.${e.name}: inline cannot be combined with the saml parameter`});if(r.length>0&&e.cacheTTL!==void 0&&e.cacheTTL>0)for(let{arg:e,index:n}of r)t.addIssue({code:o.z.ZodIssueCode.custom,path:[`args`,n,`inline`],message:`args.${e.name}: inline cannot be combined with a nonzero cacheTTL`});for(let{arg:e,index:n}of r)typeof e.value==`string`?e.value.length===0&&t.addIssue({code:o.z.ZodIssueCode.custom,path:[`args`,n,`value`],message:`args.${e.name}: inline value must be a non-empty string, got an empty string`}):t.addIssue({code:o.z.ZodIssueCode.custom,path:[`args`,n,`value`],message:`args.${e.name}: inline value must be a non-empty string, got ${typeof e.value}`})}),xe=(0,o.zStrictObject)({data:o.z.unknown().optional(),raw:o.z.unknown().optional(),statusCode:o.z.number(),message:o.z.string().optional()}).optional(),isJexlExpression=e=>{let t=e.trim();return t.startsWith(`{{`)&&t.endsWith(`}}`)},isErrorWithResponseBody=e=>typeof e==`object`&&!!e&&`response`in e&&e.response!=null&&typeof e.response==`object`&&`body`in e.response,isErrorWithResponseConfigData=e=>typeof e==`object`&&!!e&&`response`in e&&e.response!=null&&typeof e.response==`object`&&`config`in e.response&&e.response.config!=null&&typeof e.response.config==`object`&&`data`in e.response.config,requestStepFunction=async({block:e,params:t})=>{let n=c.RequestClientFactory.build();if(!e.httpClient)throw Error(`HTTP client is not configured`);let{args:r}=t,i=r?r.filter(t=>!t.condition||(0,s.evaluate)(t.condition,e)===!0).map(e=>({...e,condition:void 0})):void 0,a=t?.response?.dataKey,l=a&&isJexlExpression(a),u=t?(0,s.safeEvaluateRecord)({...t,args:i},e):{},d={...u,customErrors:t?.customErrors,response:l?{...u?.response??{},dataKey:a}:u?.response},{baseUrl:f,url:p,method:h,response:g,authorization:_,certificates:v,customErrors:y,encodeQueryParams:b,args:x,saml:S,cacheTTL:C}=be.parse(d),w=u?.authentication?.[e.context.authenticationType]?.[e.context.environment],T=w?.authorization,E=v??w?.certificates,D=E?(0,c.buildHttpsAgent)(E):void 0,O=x?(0,c.parseRequestParameters)(x):{query:{},body:{},headers:{}},k=x?.some(e=>e.in===`body`&&e.inline===!0)??!1,A=(0,o.notMissing)(_)?_:q.parse(T),j=(0,c.createAuthorizationHeaders)(A),M={...O?.headers??{},...j},N=e.connector?.rateLimit,P=e.connector?.concurrency,F=N!==void 0||P!==void 0?{rateLimits:N,concurrency:P}:void 0,I=(0,o.notMissing)(S)?{[S.objectKey]:await generateSamlAssertion({key:S.key,clientId:S.clientId,cert:S.cert,issuer:S.issuer,lifetime:S.lifetime,audience:S.audience,nameId:S.nameId,nameIdentifierFormat:S.nameIdentifierFormat,tokenEndpoint:S.tokenEndpoint})}:{},L=typeof O?.body==`string`||Array.isArray(O?.body)?O?.body:{...O?.body,...I};if(A.type===`none`&&A.signing?.strategy){if(b===!1)return buildStepErrorOutput(Error(`encodeQueryParams: false is not supported when a request signing strategy is configured — signed canonical would not match the wire query`),e);let t=A.signing,n=e.credentials??{};try{let e=(0,c.getSigningStrategy)(t.strategy);if(!e)throw Error(`Signing strategy "${t.strategy}" is not registered`);let r=e({method:h,url:`${f}${p}`,headers:M,query:O?.query??{},body:L},n,t);Object.assign(M,r)}catch(t){return buildStepErrorOutput(t,e)}}let R;try{R=await n.performRequest({httpClient:e.httpClient,url:`${f}${p}`,queryParams:O?.query,encodeQueryParams:b,method:h,headers:M,body:L,customErrorConfigs:y,requestConfig:F,httpsAgent:D,credentials:e.credentials,context:buildRequestContext(e),cacheTTL:C})}catch(t){return k&&(isErrorWithResponseBody(t)&&(t.response.body=m.REDACT_CENSOR),isErrorWithResponseConfigData(t)&&(t.response.config.data=m.REDACT_CENSOR)),buildStepErrorOutput(t,e)}return{block:e,successful:!0,output:{data:Se(g?.dataKey?resolveDataKey(R.data,g.dataKey):R.data,g),raw:k&&R&&`body`in R?{...R,body:m.REDACT_CENSOR}:R,statusCode:R?.status,message:R?.message}}},resolveDataKey=(e,t)=>{if((0,o.isMissing)(e)||typeof e!=`object`||!e)return e;let n=(0,s.safeEvaluate)(isJexlExpression(t)?t:`$.${t}`,e);return n===void 0?e[t]:n},Se=__name((e,t)=>{if(t?.collection&&t?.indexField&&Array.isArray(e))return e.reduce((e,n)=>{let r=t.indexField;return r&&n[r]&&(e[n[r]]=n),e},{});if(!t?.collection&&t?.indexField){let n=t.indexField;return n&&e[n]?{[e[n]]:e}:e}return e},`indexResponseData`),Ce=o.z.union([o.z.string(),o.z.number()]),we=(0,o.zStrictObject)({algorithm:o.z.literal(`RS256`),privateKey:o.z.string(),claims:o.z.record(o.z.string(),Ce)}),Te=(0,o.zStrictObject)({token:o.z.string(),expiresIn:o.z.number(),publicKeyFingerprint:o.z.string()}),computePublicKeyFingerprint=e=>{let t=e.export({format:`der`,type:`spki`});return`SHA256:${(0,h.createHash)(`sha256`).update(t).digest(`base64`)}`},Ee=/^now$/,De=/^now\+(?<amount>\d+)(?<unit>[smh])$/,Oe=`{publicKeyFingerprint}`,ke={s:1,m:60,h:3600},Ae=new Set([`iat`,`exp`,`nbf`]),resolveClaimValue=(e,t,{now:n,publicKeyFingerprint:r})=>{if(typeof t==`number`)return t;let i=t.includes(Oe)?t.split(Oe).join(r):t;if(!Ae.has(e))return i;if(Ee.test(i))return n;let a=i.match(De);return a?.groups?n+Number(a.groups.amount)*ke[a.groups.unit]:i},signJwtStepFunction=async({block:e,params:t})=>{try{let n=t?(0,s.safeEvaluateRecord)(t,e):void 0,{algorithm:r,privateKey:i,claims:a}=we.parse(n),o=(0,h.createPrivateKey)(i),c=computePublicKeyFingerprint((0,h.createPublicKey)(o)),l=Math.floor(Date.now()/1e3),u={};for(let[e,t]of Object.entries(a))u[e]=resolveClaimValue(e,t,{now:l,publicKeyFingerprint:c});let{iat:d,exp:f}=u;if(typeof d!=`number`||typeof f!=`number`)throw Error(`signJwt requires numeric 'iat' and 'exp' claims (use 'now' / 'now+<N>s|m|h' tokens, or pass numbers directly)`);if(f<=d)throw Error(`signJwt requires 'exp' to be greater than 'iat'`);let p=await new g.SignJWT(u).setProtectedHeader({alg:r}).sign(o);return{block:{...e},successful:!0,output:{token:p,expiresIn:f-d,publicKeyFingerprint:c}}}catch(t){return buildStepErrorOutput(t,e)}},je=o.z.object({baseUrl:o.z.string().optional(),url:o.z.string(),method:o.z.enum(c.HttpMethods),authorization:o.z.discriminatedUnion(`type`,[(0,o.zStrictObject)({type:o.z.literal(`none`)}),(0,o.zStrictObject)({type:o.z.literal(`basic`),username:o.z.string().optional(),password:o.z.string().optional(),encoding:o.z.string().optional()}),(0,o.zStrictObject)({type:o.z.literal(`bearer`),token:o.z.string(),includeBearer:o.z.boolean().optional().default(!0)}),(0,o.zStrictObject)({type:o.z.literal(`oauth2`),token:o.z.string(),includeBearer:o.z.boolean().optional().default(!0)})]).optional(),envelope:o.z.union([o.z.string(),o.z.record(o.z.string(),o.z.unknown())]).optional(),namespaces:o.z.strictObject({namespaceIdentifier:o.z.string(),namespace:o.z.string()}).array().optional(),soapOperation:o.z.string().optional(),soapAction:o.z.string().optional(),useSoapContext:o.z.boolean().optional().default(!0),response:(0,o.zStrictObject)({collection:o.z.boolean().optional(),indexField:o.z.string().optional(),dataKey:o.z.string().optional(),nextKey:o.z.string().optional(),nextKeyIn:o.z.enum([`data`,`headers`]).optional()}).optional(),iterator:(0,o.zStrictObject)({key:o.z.string(),in:o.z.enum([`query`,`body`])}),cursor:(0,o.zStrictObject)({token:o.z.string().optional().nullable(),position:o.z.number().optional().nullable()}).optional(),customErrors:c.CUSTOM_ERROR_CONFIG_SCHEMA.array().optional(),encodeQueryParams:o.z.boolean().optional(),args:(0,o.zStrictObject)({name:o.z.string(),value:o.z.unknown(),in:o.z.enum(c.RequestParameterLocations),condition:o.z.string().optional(),arrayFormat:o.z.enum(c.QueryArrayFormats).optional()}).array().optional()}),Me=(0,o.zStrictObject)({data:o.z.unknown().optional(),raw:o.z.unknown().optional(),statusCode:o.z.number(),message:o.z.string().optional(),next:o.z.string().optional().nullable(),position:o.z.number().optional()}).optional(),soapPaginatedRequestStepFunction=async({block:e,params:t})=>{let n=c.RequestClientFactory.build(`soap`);if(!e.httpClient)throw Error(`HTTP client is not configured`);let{args:r}=t,i=Number(e.inputs?.page_size),a=Number.isNaN(i)?25:i,l=r?r.filter(t=>!t.condition||(0,s.evaluate)(t.condition,e)===!0).map(e=>({...e,condition:void 0})):void 0,u=t?(0,s.safeEvaluateRecord)({...t,args:l},e):{},d={...u,customErrors:t?.customErrors,response:preserveJexlResponseKeys(t,u?.response)},f=t?.envelope,{baseUrl:p,url:m,method:h,response:g,iterator:_,cursor:v,authorization:y,customErrors:b,encodeQueryParams:x,args:S,soapOperation:C,namespaces:w,soapAction:T,useSoapContext:E}=je.parse(d),D=u?.authentication?.[e.context.authenticationType]?.[e.context.environment]?.authorization,O=S?(0,c.parseRequestParameters)(S):{query:{},body:{},headers:{}},k=(0,c.createAuthorizationHeaders)((0,o.notMissing)(y)?y:q.parse(D)),A={...O?.headers??{},...k},j=e.connector?.rateLimit,M=e.connector?.concurrency,N={...j!==void 0||M!==void 0?{rateLimits:j,concurrency:M}:void 0,soapOperation:C,namespaces:w,soapAction:T,soapContext:E?{username:e.credentials?.username,password:e.credentials?.password}:void 0},P=v?.token??null,F=null,I=null,L=[],R=[],z=[],B=a,V=v?.position??0,H=!0,U;do{H?H=!1:V=0,P!==null&&(_.in===`query`?O.query[_.key]=P.toString():_.in===`body`&&(O.body[_.key]=P));let t;try{t=await n.performRequest({httpClient:e.httpClient,url:`${p}${m}`,queryParams:{...O?.query},encodeQueryParams:x,method:h,headers:A,body:O?.body,customErrorConfigs:b,requestConfig:{...N,...(0,o.notMissing)(f)&&{envelope:evaluateEnvelope(f,e,P)}},credentials:e.credentials,context:buildRequestContext(e)})}catch(t){return buildStepErrorOutput(t,e)}F=P,R=g?.dataKey?he(t.data,g.dataKey):t.data,Array.isArray(R)||(R=R?[R]:[]);let r=R?.slice(V,V+B);B-=r.length,V+=r.length,z.push(t),L=L.concat(r),I=t?.status,P=resolveNextIterator({result:t,response:g});let i=V>=(R?.length??0),s=(0,o.notMissing)(g?.nextKey),c=r.length===R.length&&B===0;s&&i&&(V=0,F=P),U=s?i&&(0,o.isMissing)(P):(0,o.isMissing)(P)&&L.length<a||c}while((0,o.notMissing)(P)&&L.length<a&&R?.length>0);return{block:e,successful:!0,output:{data:Ne(L,g),raw:z,statusCode:I,next:U?void 0:stringifyCursorToken(F),position:U?void 0:V}}},stringifyCursorToken=e=>e===null?null:String(e),evaluateEnvelope=(e,t,n)=>{let r={...t,pageIterator:n};return typeof e==`string`?(0,s.safeEvaluate)(e,r):(0,s.safeEvaluateRecord)(e,r)},resolveNextIterator=({result:e,response:t})=>{if((0,o.isMissing)(t?.nextKey))return null;let n=t?.nextKeyIn??`data`,r=t?.nextKey,i=n===`headers`?resolveFromHeaders(e.headers,r):resolveFromData(e.data,r);return typeof i==`string`||typeof i==`number`?i:null},Ne=__name((e,t)=>{if(t?.indexField&&Array.isArray(e))return e.reduce((e,n)=>{let r=t.indexField;return r&&n[r]&&(e[n[r]]=n),e},{});if(t?.indexField){let n=t.indexField;return n&&e[n]?{[e[n]]:e}:e}return e},`indexResponseData`),Pe=o.z.object({baseUrl:o.z.string().optional(),url:o.z.string(),method:o.z.enum(c.HttpMethods),authorization:q.optional(),envelope:o.z.union([o.z.string(),o.z.record(o.z.string(),o.z.unknown())]).optional(),namespaces:o.z.strictObject({namespaceIdentifier:o.z.string(),namespace:o.z.string()}).array().optional(),soapOperation:o.z.string().optional(),soapAction:o.z.string().optional(),useSoapContext:o.z.boolean().optional().default(!0),response:(0,o.zStrictObject)({collection:o.z.boolean().optional(),indexField:o.z.string().optional(),dataKey:o.z.string().optional()}).optional(),customErrors:c.CUSTOM_ERROR_CONFIG_SCHEMA.array().optional(),encodeQueryParams:o.z.boolean().optional(),args:(0,o.zStrictObject)({name:o.z.string(),value:o.z.unknown(),in:o.z.enum(c.RequestParameterLocations),condition:o.z.string().optional(),arrayFormat:o.z.enum(c.QueryArrayFormats).optional()}).array().optional()}),Fe=(0,o.zStrictObject)({data:o.z.unknown().optional(),raw:o.z.unknown().optional(),statusCode:o.z.number(),message:o.z.string().optional()}).optional(),soapRequestStepFunction=async({block:e,params:t})=>{let n=c.RequestClientFactory.build(`soap`);if(!e.httpClient)throw Error(`HTTP client is not configured`);let{args:r}=t,i=r?r.filter(t=>!t.condition||(0,s.evaluate)(t.condition,e)===!0).map(e=>({...e,condition:void 0})):void 0,a=t?(0,s.safeEvaluateRecord)({...t,args:i},e):{},l={...a,customErrors:t?.customErrors},{baseUrl:u,url:d,method:f,response:p,authorization:m,customErrors:h,encodeQueryParams:g,args:_,soapOperation:v,namespaces:y,envelope:b,soapAction:x,useSoapContext:S}=Pe.parse(l),C=a?.authentication?.[e.context.authenticationType]?.[e.context.environment]?.authorization,w=_?(0,c.parseRequestParameters)(_):{query:{},body:{},headers:{}},T=(0,c.createAuthorizationHeaders)((0,o.notMissing)(m)?m:q.parse(C)),E={...w?.headers??{},...T},D=e.connector?.rateLimit,O=e.connector?.concurrency,k={...D!==void 0||O!==void 0?{rateLimits:D,concurrency:O}:void 0,soapOperation:v,namespaces:y,envelope:b,soapAction:x,soapContext:S?{username:e.credentials?.username,password:e.credentials?.password}:void 0},A;try{A=await n.performRequest({httpClient:e.httpClient,url:`${u}${d}`,queryParams:w?.query,encodeQueryParams:g,method:f,headers:E,body:w?.body,customErrorConfigs:h,requestConfig:k,credentials:e.credentials,context:buildRequestContext(e)})}catch(t){return buildStepErrorOutput(t,e)}return{block:e,successful:!0,output:{data:Ie(p?.dataKey?A.data[p?.dataKey]:A.data,p),raw:A,statusCode:A?.status,message:A?.message}}},Ie=__name((e,t)=>{if(t?.collection&&t?.indexField&&Array.isArray(e))return e.reduce((e,n)=>{let r=t.indexField;return r&&n[r]&&(e[n[r]]=n),e},{});if(!t?.collection&&t?.indexField){let n=t.indexField;return n&&e[n]?{[e[n]]:e}:e}return e},`indexResponseData`),Le=o.z.object({values:o.z.string().or(o.z.record(o.z.string(),o.z.unknown())).or(o.z.array(o.z.unknown()))}),Re=o.z.object({data:o.z.unknown()}),staticValuesStepFunction=async({block:e,params:t})=>{let{values:n}=Le.parse(t),r=Array.isArray(n)?n.map(t=>evaluateValue(t,e)):evaluateValue(n,e);return{block:{...e},successful:!0,output:{data:r}}},evaluateValue=(e,t)=>(0,o.isString)(e)?(0,s.safeEvaluate)(e,t):(0,o.isObject)(e)?(0,s.safeEvaluateRecord)(e,t):e,ze=o.z.object({targetFieldKey:o.z.string(),type:o.z.enum([`string`,`number`,`boolean`,`datetime_string`,`enum`,`object`]),array:o.z.boolean().default(!1),custom:o.z.boolean().default(!1),hidden:o.z.boolean().default(!1),properties:o.z.lazy(()=>ze).array().optional(),requiredScopes:o.z.string().array().optional()}),Be=o.z.object({fields:ze.array().optional(),dataSource:o.z.string()}),Ve=o.z.object({data:o.z.unknown()});let He=function(e){return e.String=`string`,e.Number=`number`,e.Boolean=`boolean`,e.DateTimeString=`datetime_string`,e}({});const typecast=({value:e,type:t,format:n})=>{if((0,o.isMissing)(e))return null;switch(t){case`string`:return(0,o.safeParseToString)({value:e});case`number`:return(0,o.safeParseToNumber)({value:e});case`boolean`:return(0,o.safeParseToBoolean)({value:e});case`datetime_string`:return(0,o.safeParseToDateTimeString)({value:e,format:n});default:return e}},isFieldSupportedType=e=>Object.values(He).includes(e),Ue=__name(async({block:e})=>{let t=e?.fieldConfigs;if(!t||e?.debug?.custom_mappings===`disabled`)return{block:e,successful:!0};let n;return n=Array.isArray(e.result)?e.result.map(e=>We(e,t)):We(e.result,t),{block:{...e,result:n},successful:!0}},`typecastStepFunction`),We=__name((e,t)=>{let n={...e};return t.forEach(t=>{let{targetFieldKey:r,type:i}=t;isFieldSupportedType(i)&&(!t.custom&&(0,o.notMissing)(n[r])?n[r]=typecast({value:e[r],type:i}):n.unified_custom_fields&&(0,o.notMissing)(n.unified_custom_fields?.[r])&&(n.unified_custom_fields[r]=typecast({value:e.unified_custom_fields?.[r],type:i})))}),{...n}},`mapSingleRecord`),typecastStepFunction=async({block:e,params:t})=>{let{fields:n,dataSource:r}=Be.parse(t),i=(0,s.evaluate)(r,buildExpressionContext(e));if(!n||e?.debug?.custom_mappings===`disabled`)return{block:e,successful:!0};let a;return a=Array.isArray(i)?i.map(e=>mapSingleRecord(e,n)):mapSingleRecord(i,n),{block:{...e},successful:!0,output:{data:a}}},handleObjectField=(e,t)=>!e.properties||!t?t:Array.isArray(t)?t.map(t=>typeof t==`object`&&t?mapSingleRecord(t,e.properties):t):typeof t==`object`&&t?mapSingleRecord(t,e.properties):t,mapSingleRecord=(e,t)=>{let n={...e};return t.forEach(t=>{let{targetFieldKey:r,type:i,array:a}=t;i===`object`?!t.custom&&(0,o.notMissing)(n[r])?n[r]=handleObjectField(t,e[r]):n.unified_custom_fields&&(0,o.notMissing)(n.unified_custom_fields?.[r])&&(n.unified_custom_fields[r]=handleObjectField(t,e.unified_custom_fields?.[r])):isFieldSupportedType(i)&&(!t.custom&&(0,o.notMissing)(n[r])?(!a||!Array.isArray(n[r]))&&(n[r]=typecast({value:e[r],type:i})):n.unified_custom_fields&&(0,o.notMissing)(n.unified_custom_fields?.[r])&&(!a||!Array.isArray(n.unified_custom_fields[r]))&&(n.unified_custom_fields[r]=typecast({value:e.unified_custom_fields?.[r],type:i})))}),{...n}},Ge=(0,o.zStrictObject)({content:o.z.string().describe(`The file content as base64 encoded string`),contentType:o.z.string().optional().describe(`The MIME type for the binary content (defaults to application/octet-stream)`)}),Ke=o.z.object({baseUrl:o.z.string().optional(),url:o.z.string(),method:o.z.enum(c.HttpMethods).default(`post`),authorization:q.optional(),binaryContent:Ge.describe(`Raw binary content for octet-stream uploads`),response:(0,o.zStrictObject)({collection:o.z.boolean().optional(),indexField:o.z.string().optional(),dataKey:o.z.string().optional()}).optional(),customErrors:c.CUSTOM_ERROR_CONFIG_SCHEMA.array().optional(),args:(0,o.zStrictObject)({name:o.z.string(),value:o.z.unknown(),in:o.z.enum(c.RequestParameterLocations),spread:o.z.boolean().optional(),condition:o.z.string().optional(),arrayFormat:o.z.enum(c.QueryArrayFormats).optional()}).array().optional().describe(`Additional request parameters (query params, headers)`)}),qe=(0,o.zStrictObject)({data:o.z.unknown().optional(),raw:o.z.unknown().optional(),statusCode:o.z.number(),message:o.z.string().optional()}).optional(),uploadBinaryStepFunction=async({block:e,params:t})=>{if(!e.httpClient)throw Error(`HTTP client is not configured`);let{args:n}=t,r=n?n.filter(t=>!t.condition||(0,s.evaluate)(t.condition,e)===!0).map(e=>({...e,condition:void 0})):void 0,i=t?(0,s.safeEvaluateRecord)({...t,args:r},e):{},a={...i,customErrors:t?.customErrors},{baseUrl:l,url:u,method:d,response:f,authorization:p,binaryContent:m,args:h,customErrors:g}=Ke.parse(a),_=i?.authentication?.[e.context.authenticationType]?.[e.context.environment]?.authorization,v=h?(0,c.parseRequestParameters)(h):{query:{},body:{},headers:{}},y=(0,c.createAuthorizationHeaders)((0,o.notMissing)(p)?p:q.parse(_)),b=Buffer.from(m.content,`base64`),x={"content-type":m.contentType??`application/octet-stream`,...v?.headers??{},...y},S=e.connector?.rateLimit,C=e.connector?.concurrency,w=S!==void 0||C!==void 0?{rateLimits:S,concurrency:C}:void 0,T;try{T=await e.httpClient.request({url:`${l??``}${u}`,method:d,headers:x,queryParams:v?.query,payload:b,requestConfig:w,context:buildRequestContext(e)})}catch(t){let n=t;return{block:e,successful:!1,errors:[(0,c.serializeHttpResponseError)(t)],output:{statusCode:n?.response?.status??500,message:n?.response?.message}}}let E=(0,c.translateCustomError)(T,g,e.credentials);return(0,c.isFailedStatusCode)(E?.status)?{block:e,successful:!1,errors:[(0,c.serializeHttpResponseError)(new c.HttpResponseError(E,E.message))],output:{statusCode:E.status,message:E.message}}:{block:e,successful:!0,output:{data:Je(f?.dataKey?E.data[f?.dataKey]:E.data,f),raw:E,statusCode:E?.status,message:E?.message}}},Je=__name((e,t)=>{if(t?.collection&&t?.indexField&&Array.isArray(e))return e.reduce((e,n)=>{let r=t.indexField;return r&&n[r]&&(e[n[r]]=n),e},{});if(!t?.collection&&t?.indexField){let n=t.indexField;return n&&e[n]?{[e[n]]:e}:e}return e},`indexResponseData`),Ye=(0,o.zStrictObject)({fieldName:o.z.string().describe(`The form field name for the file`),content:o.z.string().describe(`The file content as base64 encoded string`),filename:o.z.string().describe(`The filename to use in the upload`),contentType:o.z.string().optional().describe(`The MIME type of the file (e.g., "image/png", "application/pdf")`)}),Xe=o.z.object({baseUrl:o.z.string().optional(),url:o.z.string(),method:o.z.enum(c.HttpMethods).default(`post`),authorization:q.optional(),file:Ye.describe(`The file to upload`),additionalFields:(0,o.zStrictObject)({name:o.z.string(),value:o.z.unknown(),condition:o.z.string().optional(),contentType:o.z.string().optional().describe(`The MIME type for this form field (e.g., "application/json")`)}).array().optional().describe(`Additional form fields to include in the multipart request`),response:(0,o.zStrictObject)({collection:o.z.boolean().optional(),indexField:o.z.string().optional(),dataKey:o.z.string().optional()}).optional(),customErrors:c.CUSTOM_ERROR_CONFIG_SCHEMA.array().optional(),args:(0,o.zStrictObject)({name:o.z.string(),value:o.z.unknown(),in:o.z.enum(c.RequestParameterLocations),spread:o.z.boolean().optional(),condition:o.z.string().optional(),arrayFormat:o.z.enum(c.QueryArrayFormats).optional()}).array().optional().describe(`Additional request parameters (query params, headers)`)}),Ze=(0,o.zStrictObject)({data:o.z.unknown().optional(),raw:o.z.unknown().optional(),statusCode:o.z.number(),message:o.z.string().optional()}).optional(),uploadFileStepFunction=async({block:e,params:t})=>{if(!e.httpClient)throw Error(`HTTP client is not configured`);let{args:n,additionalFields:r}=t,i=n?n.filter(t=>!t.condition||(0,s.evaluate)(t.condition,e)===!0).map(e=>({...e,condition:void 0})):void 0,a=r?r.filter(t=>!t.condition||(0,s.evaluate)(t.condition,e)===!0).map(e=>({...e,condition:void 0})):void 0,l=t?(0,s.safeEvaluateRecord)({...t,args:i,additionalFields:a},e):{},u={...l,customErrors:t?.customErrors},{baseUrl:d,url:f,method:p,response:m,authorization:h,file:g,additionalFields:v,args:y,customErrors:b}=Xe.parse(u),x=l?.authentication?.[e.context.authenticationType]?.[e.context.environment]?.authorization,S=y?(0,c.parseRequestParameters)(y):{query:{},body:{},headers:{}},C=(0,c.createAuthorizationHeaders)((0,o.notMissing)(h)?h:q.parse(x)),w=new _.default;if(v)for(let e of v){let t=typeof e.value==`object`?JSON.stringify(e.value):String(e.value);w.append(e.name,t,e.contentType?{contentType:e.contentType}:void 0)}let T=Buffer.from(g.content,`base64`);w.append(g.fieldName,T,{filename:g.filename,contentType:g.contentType});let E={...w.getHeaders(),...S?.headers??{},...C},D=e.connector?.rateLimit,O=e.connector?.concurrency,k=D!==void 0||O!==void 0?{rateLimits:D,concurrency:O}:void 0,A;try{A=await e.httpClient.request({url:`${d??``}${f}`,method:p,headers:E,queryParams:S?.query,payload:w,requestConfig:k,context:buildRequestContext(e)})}catch(t){return buildStepErrorOutput(t,e)}let j=(0,c.translateCustomError)(A,b,e.credentials);return(0,c.isFailedStatusCode)(j?.status)?buildStepErrorOutput(new c.HttpResponseError(j,j.message),e):{block:e,successful:!0,output:{data:indexResponseData(m?.dataKey?j.data[m?.dataKey]:j.data,m),raw:j,statusCode:j?.status,message:j?.message}}},indexResponseData=(e,t)=>{if(t?.collection&&t?.indexField&&Array.isArray(e))return e.reduce((e,n)=>{let r=t.indexField;return r&&n[r]&&(e[n[r]]=n),e},{});if(!t?.collection&&t?.indexField){let n=t.indexField;return n&&e[n]?{[e[n]]:e}:e}return e};let Qe=function(e){return e.TYPECAST=`typecast`,e.MAP_FIELDS=`map_fields`,e.GROUP_DATA=`group_data`,e.REQUEST=`request`,e.PAGINATED_REQUEST=`paginated_request`,e.SOAP_REQUEST=`soap_request`,e.SOAP_PAGINATED_REQUEST=`soap_paginated_request`,e.STATIC_VALUES=`static_values`,e.UPLOAD_FILE=`upload_file`,e.UPLOAD_BINARY=`upload_binary`,e.DOWNLOAD_FILE=`download_file`,e.EMIT_EVENT=`emit_event`,e.BROWSER_USE=`browser_use`,e.CODE_EXECUTION_LAMBDA=`code_execution_lambda`,e.SIGN_JWT=`sign_jwt`,e.MCP_REQUEST=`mcp_request`,e}({});const $e={typecast:{v1:{fn:Ue},v2:{fn:typecastStepFunction,inputSchema:Be,outputSchema:Ve}},map_fields:{v1:{fn:ae},v2:{fn:mapFieldsStepFunction,inputSchema:le,outputSchema:ue}},request:{v1:{fn:requestStepFunction,inputSchema:be,outputSchema:xe}},group_data:{v1:{fn:groupDataStepFunction,inputSchema:ie,outputSchema:Z}},paginated_request:{v1:{fn:paginatedRequestStepFunction,inputSchema:ge,outputSchema:_e}},soap_request:{v1:{fn:soapRequestStepFunction,inputSchema:Pe,outputSchema:Fe}},soap_paginated_request:{v1:{fn:soapPaginatedRequestStepFunction,inputSchema:je,outputSchema:Me}},static_values:{v1:{fn:staticValuesStepFunction,inputSchema:Le,outputSchema:Re}},upload_file:{v1:{fn:uploadFileStepFunction,inputSchema:Xe,outputSchema:Ze}},upload_binary:{v1:{fn:uploadBinaryStepFunction,inputSchema:Ke,outputSchema:qe}},download_file:{v1:{fn:downloadFileStepFunction,inputSchema:ne,outputSchema:Y}},emit_event:{v1:{fn:emitEventStepFunction,inputSchema:X,outputSchema:re}},browser_use:{v1:{fn:browserUseStepFunction,inputSchema:F,outputSchema:I}},code_execution_lambda:{v1:{fn:codeExecutionLambdaStepFunction,inputSchema:L,outputSchema:R}},sign_jwt:{v1:{fn:signJwtStepFunction,inputSchema:we,outputSchema:Te}},mcp_request:{v1:{fn:mcpRequestStepFunction,inputSchema:pe,outputSchema:me}}},formatZodIssues=(e,t,n)=>e instanceof o.z.ZodError?e.issues.map(e=>({...e,kind:t,functionName:n})):[{kind:t,functionName:n,message:e?.message??`unknown error`}],stepFunctionEnhancedWithSchemasValidation=(e,t)=>async({block:n,params:r})=>{try{e.inputSchema&&e.inputSchema.parse(r)}catch(e){return{block:n,successful:!1,errors:formatZodIssues(e,`input_schema_validation`,t)}}let i=await e.fn({block:n,params:r});try{e.outputSchema&&e.outputSchema.parse(i.output)}catch(e){return{block:n,successful:!1,errors:formatZodIssues(e,`output_schema_validation`,t)}}return i},et={build({functionName:e,version:t=`1`,validateSchemas:n=!1,stepFunctionsList:r=$e}){let i=r?.[e]?.[`v${t}`];if(!i)throw Error(`Unknown step function: ${e} v${t}`);return n?{...i,fn:stepFunctionEnhancedWithSchemasValidation(i,e)}:i}},isForeachStep=e=>`iterator`in e&&typeof e.iterator==`string`;exports.AUTHORIZATION_SCHEMA=q,exports.AuthType=P,exports.BROWSER_USE_INPUT_PARAMS=F,exports.BROWSER_USE_OUTPUT=I,exports.COMPOSITE_ID_LATEST_VERSION=1,exports.ChangelogLabels=D,exports.CoreError=C,exports.ExecutionModes=O,exports.FORMAT_PATTERNS=w,exports.INPUT_ENUM_REGISTRY=T,exports.MCP_REQUEST_INPUT_PARAMS=pe,exports.MCP_REQUEST_OUTPUT=me,exports.ReleaseStages=E,exports.SourceType=j,exports.StepFunctionName=Qe,exports.StepFunctionsFactory=et,exports.StepFunctionsRegistry=$e,exports.StreamType=N,exports.TransportType=M,exports.areCursorsEqual=areCursorsEqual,exports.buildExpressionContext=buildExpressionContext,exports.computeDataSyncFingerprint=computeDataSyncFingerprint,exports.decodeCompositeId=decodeCompositeId,exports.encodeCompositeId=encodeCompositeId,exports.evaluateEventRouter=evaluateEventRouter,exports.evaluateExternalAccountIdExtractor=evaluateExternalAccountIdExtractor,exports.expandCursor=expandCursor,exports.getCategoryDetails=getCategoryDetails,exports.getInputEnumValues=getInputEnumValues,exports.getIteratorLocation=getIteratorLocation,exports.getPaginationKeys=getPaginationKeys,exports.isCompositeId=isCompositeId,exports.isCoreError=isCoreError,exports.isCursorEmpty=isCursorEmpty,exports.isForeachStep=isForeachStep,exports.isValidCategory=isValidCategory,exports.isValidEnumRef=isValidEnumRef,exports.minifyCursor=minifyCursor,exports.stripIncrementalParams=stripIncrementalParams,exports.stripPaginationParams=stripPaginationParams,exports.updateCursor=updateCursor;
3
+ -----END PRIVATE KEY-----`)},$=__name(e=>{let t=e.trim();return t.startsWith(`{{`)&&t.endsWith(`}}`)},`isJexlExpression`),xe=__name((e,t)=>{if((0,o.isMissing)(e)||typeof e!=`object`||!e)return e;let n=(0,s.safeEvaluate)($(t)?t:`$.${t}`,e);return n===void 0?e[t]:n},`resolveDataKey`),resolveFromHeaders=(e,t)=>{if((0,o.isMissing)(e)||typeof e!=`object`)return null;if($(t)){let n=(0,s.safeEvaluate)(t,e);return typeof n==`string`&&n!==``||typeof n==`number`?n:null}let n=t.toLowerCase(),[,r]=Object.entries(e).find(([e])=>e?.toLowerCase()===n)??[];if(Array.isArray(r)){let e=r.find(e=>typeof e==`string`&&e!==``||typeof e==`number`);return typeof e==`string`||typeof e==`number`?e:null}return typeof r==`string`&&r!==``||typeof r==`number`?r:null},resolveFromData=(e,t)=>{if((0,o.isMissing)(e)||typeof e!=`object`||!e)return null;let n=(0,s.safeEvaluate)($(t)?t:`$.${t}`,e);return(0,o.isMissing)(n)?null:typeof n==`string`||typeof n==`number`||typeof n==`object`?n:null},preserveJexlResponseKeys=(e,t)=>{let{nextKey:n,dataKey:r}=e?.response??{},i=n&&$(n),a=r&&$(r);return!i&&!a?t:{...t??{},...i?{nextKey:n}:{},...a?{dataKey:r}:{}}},Se=o.z.object({baseUrl:o.z.string(),url:o.z.string(),method:o.z.enum(c.HttpMethods),authorization:Z.optional(),saml:(0,o.zStrictObject)({objectKey:o.z.string(),key:o.z.string(),clientId:o.z.string(),cert:o.z.unknown().optional(),issuer:o.z.string().optional(),lifetime:o.z.number().optional(),nameId:o.z.string().optional(),audience:o.z.string().optional(),nameIdentifierFormat:o.z.string().optional(),tokenEndpoint:o.z.string().optional()}).optional(),response:(0,o.zStrictObject)({indexField:o.z.string().optional(),dataKey:o.z.string().optional(),nextKey:o.z.string().optional(),nextKeyIn:o.z.enum([`data`,`headers`]).optional()}).optional(),iterator:(0,o.zStrictObject)({key:o.z.string(),in:o.z.enum([`query`,`body`]),condition:o.z.string().optional(),mode:o.z.enum([`cursor`,`offset`,`page`]).optional(),startPage:o.z.number().int().min(0).max(2**53-1).optional(),maxPage:o.z.number().int().positive().max(1e4).optional()}).superRefine((e,t)=>{e.startPage!==void 0&&e.mode!==`page`&&t.addIssue({code:o.z.ZodIssueCode.custom,path:[`startPage`],message:`startPage is only valid when iterator.mode is "page"`}),e.maxPage!==void 0&&e.mode!==`page`&&t.addIssue({code:o.z.ZodIssueCode.custom,path:[`maxPage`],message:`maxPage is only valid when iterator.mode is "page"`});let n=e.maxPage??1e3;e.mode===`page`&&(e.startPage??1)>n&&t.addIssue({code:o.z.ZodIssueCode.custom,path:[`startPage`],message:`startPage must not exceed maxPage (${n})`})}),cursor:(0,o.zStrictObject)({token:o.z.string().optional().nullable(),position:o.z.number().optional().nullable()}).optional(),customErrors:c.CUSTOM_ERROR_CONFIG_SCHEMA.array().optional(),encodeQueryParams:o.z.boolean().optional(),cacheTTL:o.z.number().int().nonnegative().optional(),args:(0,o.zStrictObject)({name:o.z.string(),value:o.z.unknown(),in:o.z.enum(c.RequestParameterLocations),spread:o.z.boolean().optional(),condition:o.z.string().optional(),arrayFormat:o.z.enum(c.QueryArrayFormats).optional()}).array().optional()}),Ce=(0,o.zStrictObject)({data:o.z.unknown().optional(),raw:o.z.unknown().optional(),statusCode:o.z.number(),message:o.z.string().optional(),next:o.z.string().optional().nullable(),position:o.z.number().optional()}).optional(),paginatedRequestStepFunction=async({block:e,params:t})=>{let n=c.RequestClientFactory.build();if(!e.httpClient)throw Error(`HTTP client is not configured`);let{args:r}=t,i=Number(e.inputs?.page_size),a=Number.isNaN(i)?25:i,l=r?r.filter(t=>!t.condition||(0,s.evaluate)(t.condition,e)===!0).map(e=>({...e,condition:void 0})):void 0,u=t?(0,s.safeEvaluateRecord)({...t,args:l},e):{},d={...u,customErrors:t?.customErrors,iterator:{...u?.iterator??{},condition:t?.iterator?.condition},response:preserveJexlResponseKeys(t,u?.response)},f=d.authorization;if((0,o.notMissing)(f)){let t=Z.safeParse(f);if(!t.success)return buildStepErrorOutput(Error(invalidStepAuthorizationMessage(t.error)),e)}let{baseUrl:p,url:m,method:h,response:g,authorization:_,iterator:v,cursor:y,customErrors:b,encodeQueryParams:x,args:S,saml:C,cacheTTL:w}=Se.parse(d),T=u?.authentication?.[e.context.authenticationType]?.[e.context.environment],E=T?.authorization,D=T?.certificates,O=D?(0,c.buildHttpsAgent)(D):void 0,k=(0,o.notMissing)(_)?_:Z.parse(E);if(k.type===`none`&&(0,o.notMissing)(k.signing))return buildStepErrorOutput(Error(`authorization.signing is not supported on paginated_request steps — every page changes the query string, so the signature would have to be recomputed per page; use a request step instead`),e);let A=S?(0,c.parseRequestParameters)(S):{query:{},body:{},headers:{}},j=(0,c.createAuthorizationHeaders)(k),M={...A?.headers??{},...j},N=e.connector?.rateLimit,P=e.connector?.concurrency,F=N!==void 0||P!==void 0?{rateLimits:N,concurrency:P}:void 0,I=buildRequestContext(e),L=(0,o.notMissing)(C)?{[C.objectKey]:await generateSamlAssertion({key:C.key,clientId:C.clientId,cert:C.cert,issuer:C.issuer,lifetime:C.lifetime,audience:C.audience,nameId:C.nameId,nameIdentifierFormat:C.nameIdentifierFormat,tokenEndpoint:C.tokenEndpoint})}:{},R=v.mode===`offset`,z=v.mode===`page`,B=v.maxPage??1e3,V=B+1,H=z?resolveInitialPage(y?.token,v.startPage??1):y?.token??null,U=null,W=null,G=[],K=[],ee=[],q=a,J=y?.position??0,te=!0,Y=!0,X=!0,ne=null;do{if(z&&Number(H)>V)return buildStepErrorOutput(maxPageExceededError(B,H),e);te?te=!1:R||(J=0),H===null?R&&(v.in===`query`?A.query[v.key]=J.toString():v.in===`body`&&(Array.isArray(A.body)||(A.body[v.key]=J))):v.in===`query`?(0,o.isObject)(H)?Object.entries(H).forEach(([e,t])=>{A.query[`${v.key}[${e}]`]=t?.toString()??``}):A.query[v.key]=H.toString():v.in===`body`&&(Array.isArray(A.body)||(A.body[v.key]=H));let t;try{t=await n.performRequest({httpClient:e.httpClient,url:`${p}${m}`,queryParams:{...A?.query},encodeQueryParams:x,method:h,headers:{...M},body:Array.isArray(A?.body)?A.body:{...typeof A?.body==`string`?void 0:A?.body,...L},customErrorConfigs:b,requestConfig:F,httpsAgent:O,credentials:e.credentials,context:I,cacheTTL:w})}catch(t){return buildStepErrorOutput(t,e)}if(U=H,K=g?.dataKey?xe(t.data,g.dataKey):t.data,!Array.isArray(K)){let n=z?` at page ${U}`:``,r=g?.dataKey?` at "${g.dataKey}"`:``,i=K===null?`null`:typeof K;e.logger?.warning({message:`Pagination stopped${n}: expected an array of records${r} but received ${i}; treating it as an empty page`}),ee.push(t),W=t?.status,Y=!0;break}if(z){let t=(0,o.getContentHash)(K);if(t===ne){e.logger?.warning({message:`Pagination stopped at page ${U}: the provider returned the previous page again, so the page number is not advancing`}),Y=!0;break}ne=t}if(z&&Number(U)>B&&K.length>0)return buildStepErrorOutput(maxPageExceededError(B,U),e);let r=R?K?.slice(0,q):K?.slice(J,J+q);q-=r.length,J+=r.length,ee.push(t),G=G.concat(r),W=t?.status,H=z?incrementPage(Number(U)):we({result:t,response:g}),X=(0,o.notMissing)(v.condition)?(0,s.safeEvaluate)(v.condition,t.data)===!0:!0;let i=J>=(K?.length??0),c=(0,o.notMissing)(g?.nextKey),l=r.length===K.length&&q===0;!R&&(c||z)&&i&&(J=0,U=H),Y=R?!X||(0,o.isMissing)(H)&&G.length<a:z?i&&(!X||G.length<a):c?i&&((0,o.isMissing)(H)||!X):!X||(0,o.isMissing)(H)&&G.length<a||l}while((R||(0,o.notMissing)(H))&&X&&G.length<a&&K?.length>0);let re=Te(G,g),ie=Y?void 0:U;return{block:e,successful:!0,output:{data:re,raw:ee,statusCode:W,next:z&&typeof ie==`number`?ie.toString():ie,position:Y?void 0:J}}},resolveInitialPage=(e,t)=>{let n=Number(e);return Number.isSafeInteger(n)&&n>=t?n:t},incrementPage=e=>e+1,maxPageExceededError=(e,t)=>Error(`Pagination exceeded iterator.maxPage (${e}) at page ${t}`),invalidStepAuthorizationMessage=e=>`step authorization is invalid, check its credential expressions resolve for this account: ${e.issues.map(e=>e.message).join(`; `)}`,we=__name(({result:e,response:t})=>{if((0,o.isMissing)(t?.nextKey))return null;let n=t?.nextKeyIn??`data`,r=t?.nextKey;return n===`headers`?resolveFromHeaders(e.headers,r):resolveFromData(e.data,r)},`resolveNextIterator`),Te=__name((e,t)=>{if(t?.indexField&&Array.isArray(e))return e.reduce((e,n)=>{let r=t.indexField;return r&&n[r]&&(e[n[r]]=n),e},{});if(t?.indexField){let n=t.indexField;return n&&e[n]?{[e[n]]:e}:e}return e},`indexResponseData`),Ee=o.z.object({baseUrl:o.z.string().optional(),url:o.z.string(),method:o.z.enum(c.HttpMethods),authorization:Z.optional(),certificates:ie,saml:(0,o.zStrictObject)({objectKey:o.z.string(),key:o.z.string(),clientId:o.z.string(),cert:o.z.unknown().optional(),issuer:o.z.string().optional(),lifetime:o.z.number().optional(),nameId:o.z.string().optional(),audience:o.z.string().optional(),nameIdentifierFormat:o.z.string().optional(),tokenEndpoint:o.z.string().optional()}).optional(),response:(0,o.zStrictObject)({collection:o.z.boolean().optional(),indexField:o.z.string().optional(),dataKey:o.z.string().optional()}).optional(),customErrors:c.CUSTOM_ERROR_CONFIG_SCHEMA.array().optional(),encodeQueryParams:o.z.boolean().optional(),cacheTTL:o.z.number().int().nonnegative().optional(),args:(0,o.zStrictObject)({name:o.z.string(),value:o.z.unknown(),in:o.z.enum(c.RequestParameterLocations),spread:o.z.boolean().optional(),inline:o.z.boolean().optional(),condition:o.z.string().optional(),arrayFormat:o.z.enum(c.QueryArrayFormats).optional()}).array().optional()}).superRefine((e,t)=>{let n=e.args??[],r=n.map((e,t)=>({arg:e,index:t})).filter(({arg:e})=>e.inline===!0),i=n.filter(e=>e.in===`body`).length;if(n.forEach((e,n)=>{e.inline===!0&&e.in!==`body`&&t.addIssue({code:o.z.ZodIssueCode.custom,path:[`args`,n,`inline`],message:`args.${e.name}: inline is only valid when in is "body", got "${e.in}"`}),e.inline===!0&&e.spread&&t.addIssue({code:o.z.ZodIssueCode.custom,path:[`args`,n,`inline`],message:`args.${e.name}: inline cannot be combined with spread`})}),r.length>0&&i>1)for(let{arg:e,index:n}of r)t.addIssue({code:o.z.ZodIssueCode.custom,path:[`args`,n,`inline`],message:`args.${e.name}: an inline body arg must be the only "in: body" arg, found ${i}; arg conditions are not considered`});if(r.length>0&&e.saml!==void 0)for(let{arg:e,index:n}of r)t.addIssue({code:o.z.ZodIssueCode.custom,path:[`args`,n,`inline`],message:`args.${e.name}: inline cannot be combined with the saml parameter`});if(r.length>0&&e.cacheTTL!==void 0&&e.cacheTTL>0)for(let{arg:e,index:n}of r)t.addIssue({code:o.z.ZodIssueCode.custom,path:[`args`,n,`inline`],message:`args.${e.name}: inline cannot be combined with a nonzero cacheTTL`});for(let{arg:e,index:n}of r)typeof e.value==`string`?e.value.length===0&&t.addIssue({code:o.z.ZodIssueCode.custom,path:[`args`,n,`value`],message:`args.${e.name}: inline value must be a non-empty string, got an empty string`}):t.addIssue({code:o.z.ZodIssueCode.custom,path:[`args`,n,`value`],message:`args.${e.name}: inline value must be a non-empty string, got ${typeof e.value}`})}),De=(0,o.zStrictObject)({data:o.z.unknown().optional(),raw:o.z.unknown().optional(),statusCode:o.z.number(),message:o.z.string().optional()}).optional(),isJexlExpression=e=>{let t=e.trim();return t.startsWith(`{{`)&&t.endsWith(`}}`)},isErrorWithResponseBody=e=>typeof e==`object`&&!!e&&`response`in e&&e.response!=null&&typeof e.response==`object`&&`body`in e.response,isErrorWithResponseConfigData=e=>typeof e==`object`&&!!e&&`response`in e&&e.response!=null&&typeof e.response==`object`&&`config`in e.response&&e.response.config!=null&&typeof e.response.config==`object`&&`data`in e.response.config,requestStepFunction=async({block:e,params:t})=>{let n=c.RequestClientFactory.build();if(!e.httpClient)throw Error(`HTTP client is not configured`);let{args:r}=t,i=r?r.filter(t=>!t.condition||(0,s.evaluate)(t.condition,e)===!0).map(e=>({...e,condition:void 0})):void 0,a=t?.response?.dataKey,l=a&&isJexlExpression(a),u=t?(0,s.safeEvaluateRecord)({...t,args:i},e):{},d={...u,customErrors:t?.customErrors,response:l?{...u?.response??{},dataKey:a}:u?.response},{baseUrl:f,url:p,method:h,response:g,authorization:_,certificates:v,customErrors:y,encodeQueryParams:b,args:x,saml:S,cacheTTL:C}=Ee.parse(d),w=u?.authentication?.[e.context.authenticationType]?.[e.context.environment],T=w?.authorization,E=v??w?.certificates,D=E?(0,c.buildHttpsAgent)(E):void 0,O=x?(0,c.parseRequestParameters)(x):{query:{},body:{},headers:{}},k=x?.some(e=>e.in===`body`&&e.inline===!0)??!1,A=(0,o.notMissing)(_)?_:Z.parse(T),j=(0,c.createAuthorizationHeaders)(A),M={...O?.headers??{},...j},N=e.connector?.rateLimit,P=e.connector?.concurrency,F=N!==void 0||P!==void 0?{rateLimits:N,concurrency:P}:void 0,I=(0,o.notMissing)(S)?{[S.objectKey]:await generateSamlAssertion({key:S.key,clientId:S.clientId,cert:S.cert,issuer:S.issuer,lifetime:S.lifetime,audience:S.audience,nameId:S.nameId,nameIdentifierFormat:S.nameIdentifierFormat,tokenEndpoint:S.tokenEndpoint})}:{},L=typeof O?.body==`string`||Array.isArray(O?.body)?O?.body:{...O?.body,...I};if(A.type===`none`&&A.signing?.strategy){if(b===!1)return buildStepErrorOutput(Error(`encodeQueryParams: false is not supported when a request signing strategy is configured — signed canonical would not match the wire query`),e);let t=A.signing,n=e.credentials??{};try{let e=(0,c.getSigningStrategy)(t.strategy);if(!e)throw Error(`Signing strategy "${t.strategy}" is not registered`);let r=e({method:h,url:`${f}${p}`,headers:M,query:O?.query??{},body:L},n,t);Object.assign(M,r)}catch(t){return buildStepErrorOutput(t,e)}}let R;try{R=await n.performRequest({httpClient:e.httpClient,url:`${f}${p}`,queryParams:O?.query,encodeQueryParams:b,method:h,headers:M,body:L,customErrorConfigs:y,requestConfig:F,httpsAgent:D,credentials:e.credentials,context:buildRequestContext(e),cacheTTL:C})}catch(t){return k&&(isErrorWithResponseBody(t)&&(t.response.body=m.REDACT_CENSOR),isErrorWithResponseConfigData(t)&&(t.response.config.data=m.REDACT_CENSOR)),buildStepErrorOutput(t,e)}return{block:e,successful:!0,output:{data:Oe(g?.dataKey?resolveDataKey(R.data,g.dataKey):R.data,g),raw:k&&R&&`body`in R?{...R,body:m.REDACT_CENSOR}:R,statusCode:R?.status,message:R?.message}}},resolveDataKey=(e,t)=>{if((0,o.isMissing)(e)||typeof e!=`object`||!e)return e;let n=(0,s.safeEvaluate)(isJexlExpression(t)?t:`$.${t}`,e);return n===void 0?e[t]:n},Oe=__name((e,t)=>{if(t?.collection&&t?.indexField&&Array.isArray(e))return e.reduce((e,n)=>{let r=t.indexField;return r&&n[r]&&(e[n[r]]=n),e},{});if(!t?.collection&&t?.indexField){let n=t.indexField;return n&&e[n]?{[e[n]]:e}:e}return e},`indexResponseData`),ke=o.z.union([o.z.string(),o.z.number()]),Ae=(0,o.zStrictObject)({algorithm:o.z.literal(`RS256`),privateKey:o.z.string(),claims:o.z.record(o.z.string(),ke)}),je=(0,o.zStrictObject)({token:o.z.string(),expiresIn:o.z.number(),publicKeyFingerprint:o.z.string()}),computePublicKeyFingerprint=e=>{let t=e.export({format:`der`,type:`spki`});return`SHA256:${(0,h.createHash)(`sha256`).update(t).digest(`base64`)}`},Me=/^now$/,Ne=/^now\+(?<amount>\d+)(?<unit>[smh])$/,Pe=`{publicKeyFingerprint}`,Fe={s:1,m:60,h:3600},Ie=new Set([`iat`,`exp`,`nbf`]),resolveClaimValue=(e,t,{now:n,publicKeyFingerprint:r})=>{if(typeof t==`number`)return t;let i=t.includes(Pe)?t.split(Pe).join(r):t;if(!Ie.has(e))return i;if(Me.test(i))return n;let a=i.match(Ne);return a?.groups?n+Number(a.groups.amount)*Fe[a.groups.unit]:i},signJwtStepFunction=async({block:e,params:t})=>{try{let n=t?(0,s.safeEvaluateRecord)(t,e):void 0,{algorithm:r,privateKey:i,claims:a}=Ae.parse(n),o=(0,h.createPrivateKey)(i),c=computePublicKeyFingerprint((0,h.createPublicKey)(o)),l=Math.floor(Date.now()/1e3),u={};for(let[e,t]of Object.entries(a))u[e]=resolveClaimValue(e,t,{now:l,publicKeyFingerprint:c});let{iat:d,exp:f}=u;if(typeof d!=`number`||typeof f!=`number`)throw Error(`signJwt requires numeric 'iat' and 'exp' claims (use 'now' / 'now+<N>s|m|h' tokens, or pass numbers directly)`);if(f<=d)throw Error(`signJwt requires 'exp' to be greater than 'iat'`);let p=await new g.SignJWT(u).setProtectedHeader({alg:r}).sign(o);return{block:{...e},successful:!0,output:{token:p,expiresIn:f-d,publicKeyFingerprint:c}}}catch(t){return buildStepErrorOutput(t,e)}},Le=o.z.object({baseUrl:o.z.string().optional(),url:o.z.string(),method:o.z.enum(c.HttpMethods),authorization:o.z.discriminatedUnion(`type`,[(0,o.zStrictObject)({type:o.z.literal(`none`)}),(0,o.zStrictObject)({type:o.z.literal(`basic`),username:o.z.string().optional(),password:o.z.string().optional(),encoding:o.z.string().optional()}),(0,o.zStrictObject)({type:o.z.literal(`bearer`),token:o.z.string(),includeBearer:o.z.boolean().optional().default(!0)}),(0,o.zStrictObject)({type:o.z.literal(`oauth2`),token:o.z.string(),includeBearer:o.z.boolean().optional().default(!0)})]).optional(),envelope:o.z.union([o.z.string(),o.z.record(o.z.string(),o.z.unknown())]).optional(),namespaces:o.z.strictObject({namespaceIdentifier:o.z.string(),namespace:o.z.string()}).array().optional(),soapOperation:o.z.string().optional(),soapAction:o.z.string().optional(),useSoapContext:o.z.boolean().optional().default(!0),response:(0,o.zStrictObject)({collection:o.z.boolean().optional(),indexField:o.z.string().optional(),dataKey:o.z.string().optional(),nextKey:o.z.string().optional(),nextKeyIn:o.z.enum([`data`,`headers`]).optional()}).optional(),iterator:(0,o.zStrictObject)({key:o.z.string(),in:o.z.enum([`query`,`body`])}),cursor:(0,o.zStrictObject)({token:o.z.string().optional().nullable(),position:o.z.number().optional().nullable()}).optional(),customErrors:c.CUSTOM_ERROR_CONFIG_SCHEMA.array().optional(),encodeQueryParams:o.z.boolean().optional(),args:(0,o.zStrictObject)({name:o.z.string(),value:o.z.unknown(),in:o.z.enum(c.RequestParameterLocations),condition:o.z.string().optional(),arrayFormat:o.z.enum(c.QueryArrayFormats).optional()}).array().optional()}),Re=(0,o.zStrictObject)({data:o.z.unknown().optional(),raw:o.z.unknown().optional(),statusCode:o.z.number(),message:o.z.string().optional(),next:o.z.string().optional().nullable(),position:o.z.number().optional()}).optional(),soapPaginatedRequestStepFunction=async({block:e,params:t})=>{let n=c.RequestClientFactory.build(`soap`);if(!e.httpClient)throw Error(`HTTP client is not configured`);let{args:r}=t,i=Number(e.inputs?.page_size),a=Number.isNaN(i)?25:i,l=r?r.filter(t=>!t.condition||(0,s.evaluate)(t.condition,e)===!0).map(e=>({...e,condition:void 0})):void 0,u=t?(0,s.safeEvaluateRecord)({...t,args:l},e):{},d={...u,customErrors:t?.customErrors,response:preserveJexlResponseKeys(t,u?.response)},f=t?.envelope,{baseUrl:p,url:m,method:h,response:g,iterator:_,cursor:v,authorization:y,customErrors:b,encodeQueryParams:x,args:S,soapOperation:C,namespaces:w,soapAction:T,useSoapContext:E}=Le.parse(d),D=u?.authentication?.[e.context.authenticationType]?.[e.context.environment]?.authorization,O=S?(0,c.parseRequestParameters)(S):{query:{},body:{},headers:{}},k=(0,c.createAuthorizationHeaders)((0,o.notMissing)(y)?y:Z.parse(D)),A={...O?.headers??{},...k},j=e.connector?.rateLimit,M=e.connector?.concurrency,N={...j!==void 0||M!==void 0?{rateLimits:j,concurrency:M}:void 0,soapOperation:C,namespaces:w,soapAction:T,soapContext:E?{username:e.credentials?.username,password:e.credentials?.password}:void 0},P=v?.token??null,F=null,I=null,L=[],R=[],z=[],B=a,V=v?.position??0,H=!0,U;do{H?H=!1:V=0,P!==null&&(_.in===`query`?O.query[_.key]=P.toString():_.in===`body`&&(O.body[_.key]=P));let t;try{t=await n.performRequest({httpClient:e.httpClient,url:`${p}${m}`,queryParams:{...O?.query},encodeQueryParams:x,method:h,headers:A,body:O?.body,customErrorConfigs:b,requestConfig:{...N,...(0,o.notMissing)(f)&&{envelope:evaluateEnvelope(f,e,P)}},credentials:e.credentials,context:buildRequestContext(e)})}catch(t){return buildStepErrorOutput(t,e)}F=P,R=g?.dataKey?xe(t.data,g.dataKey):t.data,Array.isArray(R)||(R=R?[R]:[]);let r=R?.slice(V,V+B);B-=r.length,V+=r.length,z.push(t),L=L.concat(r),I=t?.status,P=resolveNextIterator({result:t,response:g});let i=V>=(R?.length??0),s=(0,o.notMissing)(g?.nextKey),c=r.length===R.length&&B===0;s&&i&&(V=0,F=P),U=s?i&&(0,o.isMissing)(P):(0,o.isMissing)(P)&&L.length<a||c}while((0,o.notMissing)(P)&&L.length<a&&R?.length>0);return{block:e,successful:!0,output:{data:ze(L,g),raw:z,statusCode:I,next:U?void 0:stringifyCursorToken(F),position:U?void 0:V}}},stringifyCursorToken=e=>e===null?null:String(e),evaluateEnvelope=(e,t,n)=>{let r={...t,pageIterator:n};return typeof e==`string`?(0,s.safeEvaluate)(e,r):(0,s.safeEvaluateRecord)(e,r)},resolveNextIterator=({result:e,response:t})=>{if((0,o.isMissing)(t?.nextKey))return null;let n=t?.nextKeyIn??`data`,r=t?.nextKey,i=n===`headers`?resolveFromHeaders(e.headers,r):resolveFromData(e.data,r);return typeof i==`string`||typeof i==`number`?i:null},ze=__name((e,t)=>{if(t?.indexField&&Array.isArray(e))return e.reduce((e,n)=>{let r=t.indexField;return r&&n[r]&&(e[n[r]]=n),e},{});if(t?.indexField){let n=t.indexField;return n&&e[n]?{[e[n]]:e}:e}return e},`indexResponseData`),Be=o.z.object({baseUrl:o.z.string().optional(),url:o.z.string(),method:o.z.enum(c.HttpMethods),authorization:Z.optional(),envelope:o.z.union([o.z.string(),o.z.record(o.z.string(),o.z.unknown())]).optional(),namespaces:o.z.strictObject({namespaceIdentifier:o.z.string(),namespace:o.z.string()}).array().optional(),soapOperation:o.z.string().optional(),soapAction:o.z.string().optional(),useSoapContext:o.z.boolean().optional().default(!0),response:(0,o.zStrictObject)({collection:o.z.boolean().optional(),indexField:o.z.string().optional(),dataKey:o.z.string().optional()}).optional(),customErrors:c.CUSTOM_ERROR_CONFIG_SCHEMA.array().optional(),encodeQueryParams:o.z.boolean().optional(),args:(0,o.zStrictObject)({name:o.z.string(),value:o.z.unknown(),in:o.z.enum(c.RequestParameterLocations),condition:o.z.string().optional(),arrayFormat:o.z.enum(c.QueryArrayFormats).optional()}).array().optional()}),Ve=(0,o.zStrictObject)({data:o.z.unknown().optional(),raw:o.z.unknown().optional(),statusCode:o.z.number(),message:o.z.string().optional()}).optional(),soapRequestStepFunction=async({block:e,params:t})=>{let n=c.RequestClientFactory.build(`soap`);if(!e.httpClient)throw Error(`HTTP client is not configured`);let{args:r}=t,i=r?r.filter(t=>!t.condition||(0,s.evaluate)(t.condition,e)===!0).map(e=>({...e,condition:void 0})):void 0,a=t?(0,s.safeEvaluateRecord)({...t,args:i},e):{},l={...a,customErrors:t?.customErrors},{baseUrl:u,url:d,method:f,response:p,authorization:m,customErrors:h,encodeQueryParams:g,args:_,soapOperation:v,namespaces:y,envelope:b,soapAction:x,useSoapContext:S}=Be.parse(l),C=a?.authentication?.[e.context.authenticationType]?.[e.context.environment]?.authorization,w=_?(0,c.parseRequestParameters)(_):{query:{},body:{},headers:{}},T=(0,c.createAuthorizationHeaders)((0,o.notMissing)(m)?m:Z.parse(C)),E={...w?.headers??{},...T},D=e.connector?.rateLimit,O=e.connector?.concurrency,k={...D!==void 0||O!==void 0?{rateLimits:D,concurrency:O}:void 0,soapOperation:v,namespaces:y,envelope:b,soapAction:x,soapContext:S?{username:e.credentials?.username,password:e.credentials?.password}:void 0},A;try{A=await n.performRequest({httpClient:e.httpClient,url:`${u}${d}`,queryParams:w?.query,encodeQueryParams:g,method:f,headers:E,body:w?.body,customErrorConfigs:h,requestConfig:k,credentials:e.credentials,context:buildRequestContext(e)})}catch(t){return buildStepErrorOutput(t,e)}return{block:e,successful:!0,output:{data:He(p?.dataKey?A.data[p?.dataKey]:A.data,p),raw:A,statusCode:A?.status,message:A?.message}}},He=__name((e,t)=>{if(t?.collection&&t?.indexField&&Array.isArray(e))return e.reduce((e,n)=>{let r=t.indexField;return r&&n[r]&&(e[n[r]]=n),e},{});if(!t?.collection&&t?.indexField){let n=t.indexField;return n&&e[n]?{[e[n]]:e}:e}return e},`indexResponseData`),Ue=o.z.object({values:o.z.string().or(o.z.record(o.z.string(),o.z.unknown())).or(o.z.array(o.z.unknown()))}),We=o.z.object({data:o.z.unknown()}),staticValuesStepFunction=async({block:e,params:t})=>{let{values:n}=Ue.parse(t),r=Array.isArray(n)?n.map(t=>evaluateValue(t,e)):evaluateValue(n,e);return{block:{...e},successful:!0,output:{data:r}}},evaluateValue=(e,t)=>(0,o.isString)(e)?(0,s.safeEvaluate)(e,t):(0,o.isObject)(e)?(0,s.safeEvaluateRecord)(e,t):e,Ge=o.z.object({targetFieldKey:o.z.string(),type:o.z.enum([`string`,`number`,`boolean`,`datetime_string`,`enum`,`object`]),array:o.z.boolean().default(!1),custom:o.z.boolean().default(!1),hidden:o.z.boolean().default(!1),properties:o.z.lazy(()=>Ge).array().optional(),requiredScopes:o.z.string().array().optional()}),Ke=o.z.object({fields:Ge.array().optional(),dataSource:o.z.string()}),qe=o.z.object({data:o.z.unknown()});let Je=function(e){return e.String=`string`,e.Number=`number`,e.Boolean=`boolean`,e.DateTimeString=`datetime_string`,e}({});const typecast=({value:e,type:t,format:n})=>{if((0,o.isMissing)(e))return null;switch(t){case`string`:return(0,o.safeParseToString)({value:e});case`number`:return(0,o.safeParseToNumber)({value:e});case`boolean`:return(0,o.safeParseToBoolean)({value:e});case`datetime_string`:return(0,o.safeParseToDateTimeString)({value:e,format:n});default:return e}},isFieldSupportedType=e=>Object.values(Je).includes(e),Ye=__name(async({block:e})=>{let t=e?.fieldConfigs;if(!t||e?.debug?.custom_mappings===`disabled`)return{block:e,successful:!0};let n;return n=Array.isArray(e.result)?e.result.map(e=>Xe(e,t)):Xe(e.result,t),{block:{...e,result:n},successful:!0}},`typecastStepFunction`),Xe=__name((e,t)=>{let n={...e};return t.forEach(t=>{let{targetFieldKey:r,type:i}=t;isFieldSupportedType(i)&&(!t.custom&&(0,o.notMissing)(n[r])?n[r]=typecast({value:e[r],type:i}):n.unified_custom_fields&&(0,o.notMissing)(n.unified_custom_fields?.[r])&&(n.unified_custom_fields[r]=typecast({value:e.unified_custom_fields?.[r],type:i})))}),{...n}},`mapSingleRecord`),typecastStepFunction=async({block:e,params:t})=>{let{fields:n,dataSource:r}=Ke.parse(t),i=(0,s.evaluate)(r,buildExpressionContext(e));if(!n||e?.debug?.custom_mappings===`disabled`)return{block:e,successful:!0};let a;return a=Array.isArray(i)?i.map(e=>mapSingleRecord(e,n)):mapSingleRecord(i,n),{block:{...e},successful:!0,output:{data:a}}},handleObjectField=(e,t)=>!e.properties||!t?t:Array.isArray(t)?t.map(t=>typeof t==`object`&&t?mapSingleRecord(t,e.properties):t):typeof t==`object`&&t?mapSingleRecord(t,e.properties):t,mapSingleRecord=(e,t)=>{let n={...e};return t.forEach(t=>{let{targetFieldKey:r,type:i,array:a}=t;i===`object`?!t.custom&&(0,o.notMissing)(n[r])?n[r]=handleObjectField(t,e[r]):n.unified_custom_fields&&(0,o.notMissing)(n.unified_custom_fields?.[r])&&(n.unified_custom_fields[r]=handleObjectField(t,e.unified_custom_fields?.[r])):isFieldSupportedType(i)&&(!t.custom&&(0,o.notMissing)(n[r])?(!a||!Array.isArray(n[r]))&&(n[r]=typecast({value:e[r],type:i})):n.unified_custom_fields&&(0,o.notMissing)(n.unified_custom_fields?.[r])&&(!a||!Array.isArray(n.unified_custom_fields[r]))&&(n.unified_custom_fields[r]=typecast({value:e.unified_custom_fields?.[r],type:i})))}),{...n}},Ze=(0,o.zStrictObject)({content:o.z.string().describe(`The file content as base64 encoded string`),contentType:o.z.string().optional().describe(`The MIME type for the binary content (defaults to application/octet-stream)`)}),Qe=o.z.object({baseUrl:o.z.string().optional(),url:o.z.string(),method:o.z.enum(c.HttpMethods).default(`post`),authorization:Z.optional(),binaryContent:Ze.describe(`Raw binary content for octet-stream uploads`),response:(0,o.zStrictObject)({collection:o.z.boolean().optional(),indexField:o.z.string().optional(),dataKey:o.z.string().optional()}).optional(),customErrors:c.CUSTOM_ERROR_CONFIG_SCHEMA.array().optional(),args:(0,o.zStrictObject)({name:o.z.string(),value:o.z.unknown(),in:o.z.enum(c.RequestParameterLocations),spread:o.z.boolean().optional(),condition:o.z.string().optional(),arrayFormat:o.z.enum(c.QueryArrayFormats).optional()}).array().optional().describe(`Additional request parameters (query params, headers)`)}),$e=(0,o.zStrictObject)({data:o.z.unknown().optional(),raw:o.z.unknown().optional(),statusCode:o.z.number(),message:o.z.string().optional()}).optional(),uploadBinaryStepFunction=async({block:e,params:t})=>{if(!e.httpClient)throw Error(`HTTP client is not configured`);let{args:n}=t,r=n?n.filter(t=>!t.condition||(0,s.evaluate)(t.condition,e)===!0).map(e=>({...e,condition:void 0})):void 0,i=t?(0,s.safeEvaluateRecord)({...t,args:r},e):{},a={...i,customErrors:t?.customErrors},{baseUrl:l,url:u,method:d,response:f,authorization:p,binaryContent:m,args:h,customErrors:g}=Qe.parse(a),_=i?.authentication?.[e.context.authenticationType]?.[e.context.environment]?.authorization,v=h?(0,c.parseRequestParameters)(h):{query:{},body:{},headers:{}},y=(0,c.createAuthorizationHeaders)((0,o.notMissing)(p)?p:Z.parse(_)),b=Buffer.from(m.content,`base64`),x={"content-type":m.contentType??`application/octet-stream`,...v?.headers??{},...y},S=e.connector?.rateLimit,C=e.connector?.concurrency,w=S!==void 0||C!==void 0?{rateLimits:S,concurrency:C}:void 0,T;try{T=await e.httpClient.request({url:`${l??``}${u}`,method:d,headers:x,queryParams:v?.query,payload:b,requestConfig:w,context:buildRequestContext(e)})}catch(t){let n=t;return{block:e,successful:!1,errors:[(0,c.serializeHttpResponseError)(t)],output:{statusCode:n?.response?.status??500,message:n?.response?.message}}}let E=(0,c.translateCustomError)(T,g,e.credentials);return(0,c.isFailedStatusCode)(E?.status)?{block:e,successful:!1,errors:[(0,c.serializeHttpResponseError)(new c.HttpResponseError(E,E.message))],output:{statusCode:E.status,message:E.message}}:{block:e,successful:!0,output:{data:et(f?.dataKey?E.data[f?.dataKey]:E.data,f),raw:E,statusCode:E?.status,message:E?.message}}},et=__name((e,t)=>{if(t?.collection&&t?.indexField&&Array.isArray(e))return e.reduce((e,n)=>{let r=t.indexField;return r&&n[r]&&(e[n[r]]=n),e},{});if(!t?.collection&&t?.indexField){let n=t.indexField;return n&&e[n]?{[e[n]]:e}:e}return e},`indexResponseData`),tt=(0,o.zStrictObject)({fieldName:o.z.string().describe(`The form field name for the file`),content:o.z.string().describe(`The file content as base64 encoded string`),filename:o.z.string().describe(`The filename to use in the upload`),contentType:o.z.string().optional().describe(`The MIME type of the file (e.g., "image/png", "application/pdf")`)}),nt=o.z.object({baseUrl:o.z.string().optional(),url:o.z.string(),method:o.z.enum(c.HttpMethods).default(`post`),authorization:Z.optional(),file:tt.describe(`The file to upload`),additionalFields:(0,o.zStrictObject)({name:o.z.string(),value:o.z.unknown(),condition:o.z.string().optional(),contentType:o.z.string().optional().describe(`The MIME type for this form field (e.g., "application/json")`)}).array().optional().describe(`Additional form fields to include in the multipart request`),response:(0,o.zStrictObject)({collection:o.z.boolean().optional(),indexField:o.z.string().optional(),dataKey:o.z.string().optional()}).optional(),customErrors:c.CUSTOM_ERROR_CONFIG_SCHEMA.array().optional(),args:(0,o.zStrictObject)({name:o.z.string(),value:o.z.unknown(),in:o.z.enum(c.RequestParameterLocations),spread:o.z.boolean().optional(),condition:o.z.string().optional(),arrayFormat:o.z.enum(c.QueryArrayFormats).optional()}).array().optional().describe(`Additional request parameters (query params, headers)`)}),rt=(0,o.zStrictObject)({data:o.z.unknown().optional(),raw:o.z.unknown().optional(),statusCode:o.z.number(),message:o.z.string().optional()}).optional(),uploadFileStepFunction=async({block:e,params:t})=>{if(!e.httpClient)throw Error(`HTTP client is not configured`);let{args:n,additionalFields:r}=t,i=n?n.filter(t=>!t.condition||(0,s.evaluate)(t.condition,e)===!0).map(e=>({...e,condition:void 0})):void 0,a=r?r.filter(t=>!t.condition||(0,s.evaluate)(t.condition,e)===!0).map(e=>({...e,condition:void 0})):void 0,l=t?(0,s.safeEvaluateRecord)({...t,args:i,additionalFields:a},e):{},u={...l,customErrors:t?.customErrors},{baseUrl:d,url:f,method:p,response:m,authorization:h,file:g,additionalFields:v,args:y,customErrors:b}=nt.parse(u),x=l?.authentication?.[e.context.authenticationType]?.[e.context.environment]?.authorization,S=y?(0,c.parseRequestParameters)(y):{query:{},body:{},headers:{}},C=(0,c.createAuthorizationHeaders)((0,o.notMissing)(h)?h:Z.parse(x)),w=new _.default;if(v)for(let e of v){let t=typeof e.value==`object`?JSON.stringify(e.value):String(e.value);w.append(e.name,t,e.contentType?{contentType:e.contentType}:void 0)}let T=Buffer.from(g.content,`base64`);w.append(g.fieldName,T,{filename:g.filename,contentType:g.contentType});let E={...w.getHeaders(),...S?.headers??{},...C},D=e.connector?.rateLimit,O=e.connector?.concurrency,k=D!==void 0||O!==void 0?{rateLimits:D,concurrency:O}:void 0,A;try{A=await e.httpClient.request({url:`${d??``}${f}`,method:p,headers:E,queryParams:S?.query,payload:w,requestConfig:k,context:buildRequestContext(e)})}catch(t){return buildStepErrorOutput(t,e)}let j=(0,c.translateCustomError)(A,b,e.credentials);return(0,c.isFailedStatusCode)(j?.status)?buildStepErrorOutput(new c.HttpResponseError(j,j.message),e):{block:e,successful:!0,output:{data:indexResponseData(m?.dataKey?j.data[m?.dataKey]:j.data,m),raw:j,statusCode:j?.status,message:j?.message}}},indexResponseData=(e,t)=>{if(t?.collection&&t?.indexField&&Array.isArray(e))return e.reduce((e,n)=>{let r=t.indexField;return r&&n[r]&&(e[n[r]]=n),e},{});if(!t?.collection&&t?.indexField){let n=t.indexField;return n&&e[n]?{[e[n]]:e}:e}return e};let it=function(e){return e.TYPECAST=`typecast`,e.MAP_FIELDS=`map_fields`,e.GROUP_DATA=`group_data`,e.REQUEST=`request`,e.PAGINATED_REQUEST=`paginated_request`,e.SOAP_REQUEST=`soap_request`,e.SOAP_PAGINATED_REQUEST=`soap_paginated_request`,e.STATIC_VALUES=`static_values`,e.UPLOAD_FILE=`upload_file`,e.UPLOAD_BINARY=`upload_binary`,e.DOWNLOAD_FILE=`download_file`,e.EMIT_EVENT=`emit_event`,e.BROWSER_USE=`browser_use`,e.CODE_EXECUTION_LAMBDA=`code_execution_lambda`,e.SIGN_JWT=`sign_jwt`,e.MCP_REQUEST=`mcp_request`,e}({});const at={typecast:{v1:{fn:Ye},v2:{fn:typecastStepFunction,inputSchema:Ke,outputSchema:qe}},map_fields:{v1:{fn:de},v2:{fn:mapFieldsStepFunction,inputSchema:he,outputSchema:ge}},request:{v1:{fn:requestStepFunction,inputSchema:Ee,outputSchema:De}},group_data:{v1:{fn:groupDataStepFunction,inputSchema:le,outputSchema:ue}},paginated_request:{v1:{fn:paginatedRequestStepFunction,inputSchema:Se,outputSchema:Ce}},soap_request:{v1:{fn:soapRequestStepFunction,inputSchema:Be,outputSchema:Ve}},soap_paginated_request:{v1:{fn:soapPaginatedRequestStepFunction,inputSchema:Le,outputSchema:Re}},static_values:{v1:{fn:staticValuesStepFunction,inputSchema:Ue,outputSchema:We}},upload_file:{v1:{fn:uploadFileStepFunction,inputSchema:nt,outputSchema:rt}},upload_binary:{v1:{fn:uploadBinaryStepFunction,inputSchema:Qe,outputSchema:$e}},download_file:{v1:{fn:downloadFileStepFunction,inputSchema:ae,outputSchema:oe}},emit_event:{v1:{fn:emitEventStepFunction,inputSchema:se,outputSchema:ce}},browser_use:{v1:{fn:browserUseStepFunction,inputSchema:V,outputSchema:H}},code_execution_lambda:{v1:{fn:codeExecutionLambdaStepFunction,inputSchema:U,outputSchema:W}},sign_jwt:{v1:{fn:signJwtStepFunction,inputSchema:Ae,outputSchema:je}},mcp_request:{v1:{fn:mcpRequestStepFunction,inputSchema:ye,outputSchema:be}}},formatZodIssues=(e,t,n)=>e instanceof o.z.ZodError?e.issues.map(e=>({...e,kind:t,functionName:n})):[{kind:t,functionName:n,message:e?.message??`unknown error`}],stepFunctionEnhancedWithSchemasValidation=(e,t)=>async({block:n,params:r})=>{try{e.inputSchema&&e.inputSchema.parse(r)}catch(e){return{block:n,successful:!1,errors:formatZodIssues(e,`input_schema_validation`,t)}}let i=await e.fn({block:n,params:r});try{e.outputSchema&&e.outputSchema.parse(i.output)}catch(e){return{block:n,successful:!1,errors:formatZodIssues(e,`output_schema_validation`,t)}}return i},ot={build({functionName:e,version:t=`1`,validateSchemas:n=!1,stepFunctionsList:r=at}){let i=r?.[e]?.[`v${t}`];if(!i)throw Error(`Unknown step function: ${e} v${t}`);return n?{...i,fn:stepFunctionEnhancedWithSchemasValidation(i,e)}:i}},isForeachStep=e=>`iterator`in e&&typeof e.iterator==`string`;exports.AUTHORIZATION_SCHEMA=Z,exports.ActionTypes=O,exports.AuthType=B,exports.BROWSER_USE_INPUT_PARAMS=V,exports.BROWSER_USE_OUTPUT=H,exports.COMPOSITE_ID_LATEST_VERSION=1,exports.ChangelogLabels=D,exports.CoreError=C,exports.Effects=k,exports.ExecutionModes=P,exports.FORMAT_PATTERNS=w,exports.INPUT_ENUM_REGISTRY=T,exports.InputFormats=M,exports.InputLocations=j,exports.InputTypes=N,exports.MCP_REQUEST_INPUT_PARAMS=ye,exports.MCP_REQUEST_OUTPUT=be,exports.ReleaseStages=E,exports.SchemaTypes=A,exports.SourceType=L,exports.StepFunctionName=it,exports.StepFunctionsFactory=ot,exports.StepFunctionsRegistry=at,exports.StreamType=z,exports.TransportType=R,exports.areCursorsEqual=areCursorsEqual,exports.buildExpressionContext=buildExpressionContext,exports.computeDataSyncFingerprint=computeDataSyncFingerprint,exports.decodeCompositeId=decodeCompositeId,exports.encodeCompositeId=encodeCompositeId,exports.evaluateEventRouter=evaluateEventRouter,exports.evaluateExternalAccountIdExtractor=evaluateExternalAccountIdExtractor,exports.expandCursor=expandCursor,exports.getCategoryDetails=getCategoryDetails,exports.getInputEnumValues=getInputEnumValues,exports.getIteratorLocation=getIteratorLocation,exports.getPaginationKeys=getPaginationKeys,exports.isCompositeId=isCompositeId,exports.isCoreError=isCoreError,exports.isCursorEmpty=isCursorEmpty,exports.isForeachStep=isForeachStep,exports.isValidCategory=isValidCategory,exports.isValidEnumRef=isValidEnumRef,exports.minifyCursor=minifyCursor,exports.stripIncrementalParams=stripIncrementalParams,exports.stripPaginationParams=stripPaginationParams,exports.updateCursor=updateCursor;
package/dist/index.d.cts CHANGED
@@ -1857,9 +1857,9 @@ declare const stepFunctions: {
1857
1857
  url: ZodString;
1858
1858
  method: ZodEnum<{
1859
1859
  get: "get";
1860
+ delete: "delete";
1860
1861
  post: "post";
1861
1862
  put: "put";
1862
- delete: "delete";
1863
1863
  patch: "patch";
1864
1864
  }>;
1865
1865
  authorization: ZodOptional<ZodDiscriminatedUnion<[ZodObject<{
@@ -1958,8 +1958,8 @@ declare const stepFunctions: {
1958
1958
  name: ZodString;
1959
1959
  value: ZodUnknown;
1960
1960
  in: ZodEnum<{
1961
- query: "query";
1962
1961
  body: "body";
1962
+ query: "query";
1963
1963
  headers: "headers";
1964
1964
  }>;
1965
1965
  spread: ZodOptional<ZodBoolean>;
@@ -2001,9 +2001,9 @@ declare const stepFunctions: {
2001
2001
  url: ZodString;
2002
2002
  method: ZodEnum<{
2003
2003
  get: "get";
2004
+ delete: "delete";
2004
2005
  post: "post";
2005
2006
  put: "put";
2006
- delete: "delete";
2007
2007
  patch: "patch";
2008
2008
  }>;
2009
2009
  authorization: ZodOptional<ZodDiscriminatedUnion<[ZodObject<{
@@ -2086,15 +2086,15 @@ declare const stepFunctions: {
2086
2086
  dataKey: ZodOptional<ZodString>;
2087
2087
  nextKey: ZodOptional<ZodString>;
2088
2088
  nextKeyIn: ZodOptional<ZodEnum<{
2089
- data: "data";
2090
2089
  headers: "headers";
2090
+ data: "data";
2091
2091
  }>>;
2092
2092
  }, $strict>>;
2093
2093
  iterator: ZodObject<{
2094
2094
  key: ZodString;
2095
2095
  in: ZodEnum<{
2096
- query: "query";
2097
2096
  body: "body";
2097
+ query: "query";
2098
2098
  }>;
2099
2099
  condition: ZodOptional<ZodString>;
2100
2100
  mode: ZodOptional<ZodEnum<{
@@ -2121,8 +2121,8 @@ declare const stepFunctions: {
2121
2121
  name: ZodString;
2122
2122
  value: ZodUnknown;
2123
2123
  in: ZodEnum<{
2124
- query: "query";
2125
2124
  body: "body";
2125
+ query: "query";
2126
2126
  headers: "headers";
2127
2127
  }>;
2128
2128
  spread: ZodOptional<ZodBoolean>;
@@ -2153,9 +2153,9 @@ declare const stepFunctions: {
2153
2153
  url: ZodString;
2154
2154
  method: ZodEnum<{
2155
2155
  get: "get";
2156
+ delete: "delete";
2156
2157
  post: "post";
2157
2158
  put: "put";
2158
- delete: "delete";
2159
2159
  patch: "patch";
2160
2160
  }>;
2161
2161
  authorization: ZodOptional<ZodDiscriminatedUnion<[ZodObject<{
@@ -2245,8 +2245,8 @@ declare const stepFunctions: {
2245
2245
  name: ZodString;
2246
2246
  value: ZodUnknown;
2247
2247
  in: ZodEnum<{
2248
- query: "query";
2249
2248
  body: "body";
2249
+ query: "query";
2250
2250
  headers: "headers";
2251
2251
  }>;
2252
2252
  condition: ZodOptional<ZodString>;
@@ -2274,9 +2274,9 @@ declare const stepFunctions: {
2274
2274
  url: ZodString;
2275
2275
  method: ZodEnum<{
2276
2276
  get: "get";
2277
+ delete: "delete";
2277
2278
  post: "post";
2278
2279
  put: "put";
2279
- delete: "delete";
2280
2280
  patch: "patch";
2281
2281
  }>;
2282
2282
  authorization: ZodOptional<ZodDiscriminatedUnion<[ZodObject<{
@@ -2309,15 +2309,15 @@ declare const stepFunctions: {
2309
2309
  dataKey: ZodOptional<ZodString>;
2310
2310
  nextKey: ZodOptional<ZodString>;
2311
2311
  nextKeyIn: ZodOptional<ZodEnum<{
2312
- data: "data";
2313
2312
  headers: "headers";
2313
+ data: "data";
2314
2314
  }>>;
2315
2315
  }, $strict>>;
2316
2316
  iterator: ZodObject<{
2317
2317
  key: ZodString;
2318
2318
  in: ZodEnum<{
2319
- query: "query";
2320
2319
  body: "body";
2320
+ query: "query";
2321
2321
  }>;
2322
2322
  }, $strict>;
2323
2323
  cursor: ZodOptional<ZodObject<{
@@ -2335,8 +2335,8 @@ declare const stepFunctions: {
2335
2335
  name: ZodString;
2336
2336
  value: ZodUnknown;
2337
2337
  in: ZodEnum<{
2338
- query: "query";
2339
2338
  body: "body";
2339
+ query: "query";
2340
2340
  headers: "headers";
2341
2341
  }>;
2342
2342
  condition: ZodOptional<ZodString>;
@@ -2377,9 +2377,9 @@ declare const stepFunctions: {
2377
2377
  url: ZodString;
2378
2378
  method: ZodDefault<ZodEnum<{
2379
2379
  get: "get";
2380
+ delete: "delete";
2380
2381
  post: "post";
2381
2382
  put: "put";
2382
- delete: "delete";
2383
2383
  patch: "patch";
2384
2384
  }>>;
2385
2385
  authorization: ZodOptional<ZodDiscriminatedUnion<[ZodObject<{
@@ -2472,8 +2472,8 @@ declare const stepFunctions: {
2472
2472
  name: ZodString;
2473
2473
  value: ZodUnknown;
2474
2474
  in: ZodEnum<{
2475
- query: "query";
2476
2475
  body: "body";
2476
+ query: "query";
2477
2477
  headers: "headers";
2478
2478
  }>;
2479
2479
  spread: ZodOptional<ZodBoolean>;
@@ -2502,9 +2502,9 @@ declare const stepFunctions: {
2502
2502
  url: ZodString;
2503
2503
  method: ZodDefault<ZodEnum<{
2504
2504
  get: "get";
2505
+ delete: "delete";
2505
2506
  post: "post";
2506
2507
  put: "put";
2507
- delete: "delete";
2508
2508
  patch: "patch";
2509
2509
  }>>;
2510
2510
  authorization: ZodOptional<ZodDiscriminatedUnion<[ZodObject<{
@@ -2589,8 +2589,8 @@ declare const stepFunctions: {
2589
2589
  name: ZodString;
2590
2590
  value: ZodUnknown;
2591
2591
  in: ZodEnum<{
2592
- query: "query";
2593
2592
  body: "body";
2593
+ query: "query";
2594
2594
  headers: "headers";
2595
2595
  }>;
2596
2596
  spread: ZodOptional<ZodBoolean>;
@@ -2619,9 +2619,9 @@ declare const stepFunctions: {
2619
2619
  url: ZodString;
2620
2620
  method: ZodDefault<ZodOptional<ZodEnum<{
2621
2621
  get: "get";
2622
+ delete: "delete";
2622
2623
  post: "post";
2623
2624
  put: "put";
2624
- delete: "delete";
2625
2625
  patch: "patch";
2626
2626
  }>>>;
2627
2627
  authorization: ZodOptional<ZodDiscriminatedUnion<[ZodObject<{
@@ -2725,8 +2725,8 @@ declare const stepFunctions: {
2725
2725
  name: ZodString;
2726
2726
  value: ZodUnknown;
2727
2727
  in: ZodEnum<{
2728
- query: "query";
2729
2728
  body: "body";
2729
+ query: "query";
2730
2730
  headers: "headers";
2731
2731
  }>;
2732
2732
  spread: ZodOptional<ZodBoolean>;
@@ -3138,8 +3138,10 @@ type ConnectorMcpConfig = {
3138
3138
  type Assets = {
3139
3139
  icon: string;
3140
3140
  };
3141
- type ActionType = 'list' | 'get' | 'create' | 'update' | 'delete' | 'custom' | 'refresh_token' | 'test' | 'event' | 'unknown';
3142
- type Effect = 'read' | 'write' | 'delete' | 'search' | 'execute';
3141
+ declare const ActionTypes: readonly ["list", "get", "create", "update", "delete", "custom", "refresh_token", "test", "event", "unknown"];
3142
+ type ActionType = (typeof ActionTypes)[number];
3143
+ declare const Effects: readonly ["read", "write", "delete", "search", "execute"];
3144
+ type Effect = (typeof Effects)[number];
3143
3145
  type ActionAnnotations = {
3144
3146
  title?: string;
3145
3147
  readOnlyHint?: boolean;
@@ -3147,13 +3149,17 @@ type ActionAnnotations = {
3147
3149
  idempotentHint?: boolean;
3148
3150
  openWorldHint?: boolean;
3149
3151
  };
3150
- type InputLocation = 'body' | 'query' | 'path' | 'headers';
3152
+ declare const SchemaTypes: readonly ["native", "unified"];
3153
+ type SchemaType = (typeof SchemaTypes)[number];
3154
+ declare const InputLocations: readonly ["body", "query", "path", "headers"];
3155
+ type InputLocation = (typeof InputLocations)[number];
3151
3156
  type EnumOneOf = {
3152
3157
  values: string[];
3153
3158
  } | {
3154
3159
  ref: string;
3155
3160
  };
3156
- type InputFormat = 'email' | 'url' | 'uuid' | 'date' | 'datetime' | 'uri';
3161
+ declare const InputFormats: readonly ["email", "url", "uuid", "date", "datetime", "uri"];
3162
+ type InputFormat = (typeof InputFormats)[number];
3157
3163
  type InputRules = {
3158
3164
  minLength?: number;
3159
3165
  maxLength?: number;
@@ -3163,7 +3169,8 @@ type InputRules = {
3163
3169
  max?: number;
3164
3170
  errorMessage?: string;
3165
3171
  };
3166
- type InputType = 'string' | 'number' | 'boolean' | 'datetime_string' | 'object' | 'enum';
3172
+ declare const InputTypes: readonly ["string", "number", "boolean", "datetime_string", "object", "enum"];
3173
+ type InputType = (typeof InputTypes)[number];
3167
3174
  type Input = {
3168
3175
  name: string;
3169
3176
  type?: InputType;
@@ -3221,7 +3228,7 @@ type Action = {
3221
3228
  details?: string;
3222
3229
  examples?: ActionExample[];
3223
3230
  schema?: Schema;
3224
- schemaType: 'native' | 'unified';
3231
+ schemaType: SchemaType;
3225
3232
  endpoint?: string;
3226
3233
  resources?: string;
3227
3234
  actionType: ActionType;
@@ -3976,4 +3983,4 @@ type Account = {
3976
3983
  originOwnerName?: string;
3977
3984
  };
3978
3985
  //#endregion
3979
- export { AUTHORIZATION_SCHEMA, type Account, type Action, type ActionAnnotations, type ActionExample, type ActionResponse, type ActionType, type ActionValidationRule, type Assets, AuthType, type Authentication, type AuthenticationConfig, type AuthenticationField, type AuthenticationFieldValidation, type AuthenticationGuides, type AuthenticationNotice, BROWSER_USE_INPUT_PARAMS, BROWSER_USE_OUTPUT, type BaseIncrementalConfig, type BasePaginationConfig, type Block, type BlockContext, type BlockIndexedRecord, COMPOSITE_ID_LATEST_VERSION, type Category, type Changelog, type ChangelogLabel, ChangelogLabels, type Checkpoint, type CompositeIdentifier, type CompositeIdentifierConfig, type CompositeIdentifierConnectorConfig, type Connector, type ConnectorDocumentation, type ConnectorEvents, CoreError, type Cursor, type CursorPaginationConfig, type DataSyncConfig, type DefenderMetadata, type DefenderSettings, type DeltaTokenIncrementalConfig, type DocumentationReference, type Effect, type EnumOneOf, type EventRouter, type EventRouterRule, type EventToEmit, type ExecutionMode, ExecutionModes, type ExpressionContextOptions, FORMAT_PATTERNS, type FieldConfig, type FlowType, type ForeachStep, type Guide, type GuideImage, type GuideSection, type GuideStep, INPUT_ENUM_REGISTRY, type IncrementalConfig, type Input, type InputFormat, type InputLocation, type InputRules, type InputType, type InputVariant, type IntermediateStepSnapshot, type IteratorLocation, MCP_REQUEST_INPUT_PARAMS, MCP_REQUEST_OUTPUT, type MatchedEventAction, type OffsetPaginationConfig, type OnConditionError, type PagePaginationConfig, type PaginationConfig, type ReleaseStage, ReleaseStages, type Schema, type SchemaField, type ScopeDefinition, type Settings, type SimpleStep, type Source, SourceType, type Step, type StepFunction, type StepFunctionMeta, StepFunctionName, type StepFunctionOutput, type StepFunctionParams, StepFunctionsFactory, stepFunctions as StepFunctionsRegistry, type StepsSnapshots, type StreamOutputData, StreamType, type SupportConfig, type SyncParams, type SyncedAction, type TestActionConfig, type TimeFilterIncrementalConfig, TransportType, type WebhookSetup, type WebhookSetupPhase, type WebhookSetupPhaseKind, areCursorsEqual, buildExpressionContext, computeDataSyncFingerprint, decodeCompositeId, encodeCompositeId, evaluateEventRouter, evaluateExternalAccountIdExtractor, expandCursor, getCategoryDetails, getInputEnumValues, getIteratorLocation, getPaginationKeys, isCompositeId, isCoreError, isCursorEmpty, isForeachStep, isValidCategory, isValidEnumRef, minifyCursor, stripIncrementalParams, stripPaginationParams, updateCursor };
3986
+ export { AUTHORIZATION_SCHEMA, type Account, type Action, type ActionAnnotations, type ActionExample, type ActionResponse, type ActionType, ActionTypes, type ActionValidationRule, type Assets, AuthType, type Authentication, type AuthenticationConfig, type AuthenticationField, type AuthenticationFieldValidation, type AuthenticationGuides, type AuthenticationNotice, BROWSER_USE_INPUT_PARAMS, BROWSER_USE_OUTPUT, type BaseIncrementalConfig, type BasePaginationConfig, type Block, type BlockContext, type BlockIndexedRecord, COMPOSITE_ID_LATEST_VERSION, type Category, type Changelog, type ChangelogLabel, ChangelogLabels, type Checkpoint, type CompositeIdentifier, type CompositeIdentifierConfig, type CompositeIdentifierConnectorConfig, type Connector, type ConnectorDocumentation, type ConnectorEvents, CoreError, type Cursor, type CursorPaginationConfig, type DataSyncConfig, type DefenderMetadata, type DefenderSettings, type DeltaTokenIncrementalConfig, type DocumentationReference, type Effect, Effects, type EnumOneOf, type EventRouter, type EventRouterRule, type EventToEmit, type ExecutionMode, ExecutionModes, type ExpressionContextOptions, FORMAT_PATTERNS, type FieldConfig, type FlowType, type ForeachStep, type Guide, type GuideImage, type GuideSection, type GuideStep, INPUT_ENUM_REGISTRY, type IncrementalConfig, type Input, type InputFormat, InputFormats, type InputLocation, InputLocations, type InputRules, type InputType, InputTypes, type InputVariant, type IntermediateStepSnapshot, type IteratorLocation, MCP_REQUEST_INPUT_PARAMS, MCP_REQUEST_OUTPUT, type MatchedEventAction, type OffsetPaginationConfig, type OnConditionError, type PagePaginationConfig, type PaginationConfig, type ReleaseStage, ReleaseStages, type Schema, type SchemaField, type SchemaType, SchemaTypes, type ScopeDefinition, type Settings, type SimpleStep, type Source, SourceType, type Step, type StepFunction, type StepFunctionMeta, StepFunctionName, type StepFunctionOutput, type StepFunctionParams, StepFunctionsFactory, stepFunctions as StepFunctionsRegistry, type StepsSnapshots, type StreamOutputData, StreamType, type SupportConfig, type SyncParams, type SyncedAction, type TestActionConfig, type TimeFilterIncrementalConfig, TransportType, type WebhookSetup, type WebhookSetupPhase, type WebhookSetupPhaseKind, areCursorsEqual, buildExpressionContext, computeDataSyncFingerprint, decodeCompositeId, encodeCompositeId, evaluateEventRouter, evaluateExternalAccountIdExtractor, expandCursor, getCategoryDetails, getInputEnumValues, getIteratorLocation, getPaginationKeys, isCompositeId, isCoreError, isCursorEmpty, isForeachStep, isValidCategory, isValidEnumRef, minifyCursor, stripIncrementalParams, stripPaginationParams, updateCursor };
package/dist/index.d.mts CHANGED
@@ -1856,9 +1856,9 @@ declare const stepFunctions: {
1856
1856
  url: ZodString;
1857
1857
  method: ZodEnum<{
1858
1858
  get: "get";
1859
+ delete: "delete";
1859
1860
  post: "post";
1860
1861
  put: "put";
1861
- delete: "delete";
1862
1862
  patch: "patch";
1863
1863
  }>;
1864
1864
  authorization: ZodOptional<ZodDiscriminatedUnion<[ZodObject<{
@@ -1957,8 +1957,8 @@ declare const stepFunctions: {
1957
1957
  name: ZodString;
1958
1958
  value: ZodUnknown;
1959
1959
  in: ZodEnum<{
1960
- query: "query";
1961
1960
  body: "body";
1961
+ query: "query";
1962
1962
  headers: "headers";
1963
1963
  }>;
1964
1964
  spread: ZodOptional<ZodBoolean>;
@@ -2000,9 +2000,9 @@ declare const stepFunctions: {
2000
2000
  url: ZodString;
2001
2001
  method: ZodEnum<{
2002
2002
  get: "get";
2003
+ delete: "delete";
2003
2004
  post: "post";
2004
2005
  put: "put";
2005
- delete: "delete";
2006
2006
  patch: "patch";
2007
2007
  }>;
2008
2008
  authorization: ZodOptional<ZodDiscriminatedUnion<[ZodObject<{
@@ -2085,15 +2085,15 @@ declare const stepFunctions: {
2085
2085
  dataKey: ZodOptional<ZodString>;
2086
2086
  nextKey: ZodOptional<ZodString>;
2087
2087
  nextKeyIn: ZodOptional<ZodEnum<{
2088
- data: "data";
2089
2088
  headers: "headers";
2089
+ data: "data";
2090
2090
  }>>;
2091
2091
  }, $strict>>;
2092
2092
  iterator: ZodObject<{
2093
2093
  key: ZodString;
2094
2094
  in: ZodEnum<{
2095
- query: "query";
2096
2095
  body: "body";
2096
+ query: "query";
2097
2097
  }>;
2098
2098
  condition: ZodOptional<ZodString>;
2099
2099
  mode: ZodOptional<ZodEnum<{
@@ -2120,8 +2120,8 @@ declare const stepFunctions: {
2120
2120
  name: ZodString;
2121
2121
  value: ZodUnknown;
2122
2122
  in: ZodEnum<{
2123
- query: "query";
2124
2123
  body: "body";
2124
+ query: "query";
2125
2125
  headers: "headers";
2126
2126
  }>;
2127
2127
  spread: ZodOptional<ZodBoolean>;
@@ -2152,9 +2152,9 @@ declare const stepFunctions: {
2152
2152
  url: ZodString;
2153
2153
  method: ZodEnum<{
2154
2154
  get: "get";
2155
+ delete: "delete";
2155
2156
  post: "post";
2156
2157
  put: "put";
2157
- delete: "delete";
2158
2158
  patch: "patch";
2159
2159
  }>;
2160
2160
  authorization: ZodOptional<ZodDiscriminatedUnion<[ZodObject<{
@@ -2244,8 +2244,8 @@ declare const stepFunctions: {
2244
2244
  name: ZodString;
2245
2245
  value: ZodUnknown;
2246
2246
  in: ZodEnum<{
2247
- query: "query";
2248
2247
  body: "body";
2248
+ query: "query";
2249
2249
  headers: "headers";
2250
2250
  }>;
2251
2251
  condition: ZodOptional<ZodString>;
@@ -2273,9 +2273,9 @@ declare const stepFunctions: {
2273
2273
  url: ZodString;
2274
2274
  method: ZodEnum<{
2275
2275
  get: "get";
2276
+ delete: "delete";
2276
2277
  post: "post";
2277
2278
  put: "put";
2278
- delete: "delete";
2279
2279
  patch: "patch";
2280
2280
  }>;
2281
2281
  authorization: ZodOptional<ZodDiscriminatedUnion<[ZodObject<{
@@ -2308,15 +2308,15 @@ declare const stepFunctions: {
2308
2308
  dataKey: ZodOptional<ZodString>;
2309
2309
  nextKey: ZodOptional<ZodString>;
2310
2310
  nextKeyIn: ZodOptional<ZodEnum<{
2311
- data: "data";
2312
2311
  headers: "headers";
2312
+ data: "data";
2313
2313
  }>>;
2314
2314
  }, $strict>>;
2315
2315
  iterator: ZodObject<{
2316
2316
  key: ZodString;
2317
2317
  in: ZodEnum<{
2318
- query: "query";
2319
2318
  body: "body";
2319
+ query: "query";
2320
2320
  }>;
2321
2321
  }, $strict>;
2322
2322
  cursor: ZodOptional<ZodObject<{
@@ -2334,8 +2334,8 @@ declare const stepFunctions: {
2334
2334
  name: ZodString;
2335
2335
  value: ZodUnknown;
2336
2336
  in: ZodEnum<{
2337
- query: "query";
2338
2337
  body: "body";
2338
+ query: "query";
2339
2339
  headers: "headers";
2340
2340
  }>;
2341
2341
  condition: ZodOptional<ZodString>;
@@ -2376,9 +2376,9 @@ declare const stepFunctions: {
2376
2376
  url: ZodString;
2377
2377
  method: ZodDefault<ZodEnum<{
2378
2378
  get: "get";
2379
+ delete: "delete";
2379
2380
  post: "post";
2380
2381
  put: "put";
2381
- delete: "delete";
2382
2382
  patch: "patch";
2383
2383
  }>>;
2384
2384
  authorization: ZodOptional<ZodDiscriminatedUnion<[ZodObject<{
@@ -2471,8 +2471,8 @@ declare const stepFunctions: {
2471
2471
  name: ZodString;
2472
2472
  value: ZodUnknown;
2473
2473
  in: ZodEnum<{
2474
- query: "query";
2475
2474
  body: "body";
2475
+ query: "query";
2476
2476
  headers: "headers";
2477
2477
  }>;
2478
2478
  spread: ZodOptional<ZodBoolean>;
@@ -2501,9 +2501,9 @@ declare const stepFunctions: {
2501
2501
  url: ZodString;
2502
2502
  method: ZodDefault<ZodEnum<{
2503
2503
  get: "get";
2504
+ delete: "delete";
2504
2505
  post: "post";
2505
2506
  put: "put";
2506
- delete: "delete";
2507
2507
  patch: "patch";
2508
2508
  }>>;
2509
2509
  authorization: ZodOptional<ZodDiscriminatedUnion<[ZodObject<{
@@ -2588,8 +2588,8 @@ declare const stepFunctions: {
2588
2588
  name: ZodString;
2589
2589
  value: ZodUnknown;
2590
2590
  in: ZodEnum<{
2591
- query: "query";
2592
2591
  body: "body";
2592
+ query: "query";
2593
2593
  headers: "headers";
2594
2594
  }>;
2595
2595
  spread: ZodOptional<ZodBoolean>;
@@ -2618,9 +2618,9 @@ declare const stepFunctions: {
2618
2618
  url: ZodString;
2619
2619
  method: ZodDefault<ZodOptional<ZodEnum<{
2620
2620
  get: "get";
2621
+ delete: "delete";
2621
2622
  post: "post";
2622
2623
  put: "put";
2623
- delete: "delete";
2624
2624
  patch: "patch";
2625
2625
  }>>>;
2626
2626
  authorization: ZodOptional<ZodDiscriminatedUnion<[ZodObject<{
@@ -2724,8 +2724,8 @@ declare const stepFunctions: {
2724
2724
  name: ZodString;
2725
2725
  value: ZodUnknown;
2726
2726
  in: ZodEnum<{
2727
- query: "query";
2728
2727
  body: "body";
2728
+ query: "query";
2729
2729
  headers: "headers";
2730
2730
  }>;
2731
2731
  spread: ZodOptional<ZodBoolean>;
@@ -3137,8 +3137,10 @@ type ConnectorMcpConfig = {
3137
3137
  type Assets = {
3138
3138
  icon: string;
3139
3139
  };
3140
- type ActionType = 'list' | 'get' | 'create' | 'update' | 'delete' | 'custom' | 'refresh_token' | 'test' | 'event' | 'unknown';
3141
- type Effect = 'read' | 'write' | 'delete' | 'search' | 'execute';
3140
+ declare const ActionTypes: readonly ["list", "get", "create", "update", "delete", "custom", "refresh_token", "test", "event", "unknown"];
3141
+ type ActionType = (typeof ActionTypes)[number];
3142
+ declare const Effects: readonly ["read", "write", "delete", "search", "execute"];
3143
+ type Effect = (typeof Effects)[number];
3142
3144
  type ActionAnnotations = {
3143
3145
  title?: string;
3144
3146
  readOnlyHint?: boolean;
@@ -3146,13 +3148,17 @@ type ActionAnnotations = {
3146
3148
  idempotentHint?: boolean;
3147
3149
  openWorldHint?: boolean;
3148
3150
  };
3149
- type InputLocation = 'body' | 'query' | 'path' | 'headers';
3151
+ declare const SchemaTypes: readonly ["native", "unified"];
3152
+ type SchemaType = (typeof SchemaTypes)[number];
3153
+ declare const InputLocations: readonly ["body", "query", "path", "headers"];
3154
+ type InputLocation = (typeof InputLocations)[number];
3150
3155
  type EnumOneOf = {
3151
3156
  values: string[];
3152
3157
  } | {
3153
3158
  ref: string;
3154
3159
  };
3155
- type InputFormat = 'email' | 'url' | 'uuid' | 'date' | 'datetime' | 'uri';
3160
+ declare const InputFormats: readonly ["email", "url", "uuid", "date", "datetime", "uri"];
3161
+ type InputFormat = (typeof InputFormats)[number];
3156
3162
  type InputRules = {
3157
3163
  minLength?: number;
3158
3164
  maxLength?: number;
@@ -3162,7 +3168,8 @@ type InputRules = {
3162
3168
  max?: number;
3163
3169
  errorMessage?: string;
3164
3170
  };
3165
- type InputType = 'string' | 'number' | 'boolean' | 'datetime_string' | 'object' | 'enum';
3171
+ declare const InputTypes: readonly ["string", "number", "boolean", "datetime_string", "object", "enum"];
3172
+ type InputType = (typeof InputTypes)[number];
3166
3173
  type Input = {
3167
3174
  name: string;
3168
3175
  type?: InputType;
@@ -3220,7 +3227,7 @@ type Action = {
3220
3227
  details?: string;
3221
3228
  examples?: ActionExample[];
3222
3229
  schema?: Schema;
3223
- schemaType: 'native' | 'unified';
3230
+ schemaType: SchemaType;
3224
3231
  endpoint?: string;
3225
3232
  resources?: string;
3226
3233
  actionType: ActionType;
@@ -3975,4 +3982,4 @@ type Account = {
3975
3982
  originOwnerName?: string;
3976
3983
  };
3977
3984
  //#endregion
3978
- export { AUTHORIZATION_SCHEMA, type Account, type Action, type ActionAnnotations, type ActionExample, type ActionResponse, type ActionType, type ActionValidationRule, type Assets, AuthType, type Authentication, type AuthenticationConfig, type AuthenticationField, type AuthenticationFieldValidation, type AuthenticationGuides, type AuthenticationNotice, BROWSER_USE_INPUT_PARAMS, BROWSER_USE_OUTPUT, type BaseIncrementalConfig, type BasePaginationConfig, type Block, type BlockContext, type BlockIndexedRecord, COMPOSITE_ID_LATEST_VERSION, type Category, type Changelog, type ChangelogLabel, ChangelogLabels, type Checkpoint, type CompositeIdentifier, type CompositeIdentifierConfig, type CompositeIdentifierConnectorConfig, type Connector, type ConnectorDocumentation, type ConnectorEvents, CoreError, type Cursor, type CursorPaginationConfig, type DataSyncConfig, type DefenderMetadata, type DefenderSettings, type DeltaTokenIncrementalConfig, type DocumentationReference, type Effect, type EnumOneOf, type EventRouter, type EventRouterRule, type EventToEmit, type ExecutionMode, ExecutionModes, type ExpressionContextOptions, FORMAT_PATTERNS, type FieldConfig, type FlowType, type ForeachStep, type Guide, type GuideImage, type GuideSection, type GuideStep, INPUT_ENUM_REGISTRY, type IncrementalConfig, type Input, type InputFormat, type InputLocation, type InputRules, type InputType, type InputVariant, type IntermediateStepSnapshot, type IteratorLocation, MCP_REQUEST_INPUT_PARAMS, MCP_REQUEST_OUTPUT, type MatchedEventAction, type OffsetPaginationConfig, type OnConditionError, type PagePaginationConfig, type PaginationConfig, type ReleaseStage, ReleaseStages, type Schema, type SchemaField, type ScopeDefinition, type Settings, type SimpleStep, type Source, SourceType, type Step, type StepFunction, type StepFunctionMeta, StepFunctionName, type StepFunctionOutput, type StepFunctionParams, StepFunctionsFactory, stepFunctions as StepFunctionsRegistry, type StepsSnapshots, type StreamOutputData, StreamType, type SupportConfig, type SyncParams, type SyncedAction, type TestActionConfig, type TimeFilterIncrementalConfig, TransportType, type WebhookSetup, type WebhookSetupPhase, type WebhookSetupPhaseKind, areCursorsEqual, buildExpressionContext, computeDataSyncFingerprint, decodeCompositeId, encodeCompositeId, evaluateEventRouter, evaluateExternalAccountIdExtractor, expandCursor, getCategoryDetails, getInputEnumValues, getIteratorLocation, getPaginationKeys, isCompositeId, isCoreError, isCursorEmpty, isForeachStep, isValidCategory, isValidEnumRef, minifyCursor, stripIncrementalParams, stripPaginationParams, updateCursor };
3985
+ export { AUTHORIZATION_SCHEMA, type Account, type Action, type ActionAnnotations, type ActionExample, type ActionResponse, type ActionType, ActionTypes, type ActionValidationRule, type Assets, AuthType, type Authentication, type AuthenticationConfig, type AuthenticationField, type AuthenticationFieldValidation, type AuthenticationGuides, type AuthenticationNotice, BROWSER_USE_INPUT_PARAMS, BROWSER_USE_OUTPUT, type BaseIncrementalConfig, type BasePaginationConfig, type Block, type BlockContext, type BlockIndexedRecord, COMPOSITE_ID_LATEST_VERSION, type Category, type Changelog, type ChangelogLabel, ChangelogLabels, type Checkpoint, type CompositeIdentifier, type CompositeIdentifierConfig, type CompositeIdentifierConnectorConfig, type Connector, type ConnectorDocumentation, type ConnectorEvents, CoreError, type Cursor, type CursorPaginationConfig, type DataSyncConfig, type DefenderMetadata, type DefenderSettings, type DeltaTokenIncrementalConfig, type DocumentationReference, type Effect, Effects, type EnumOneOf, type EventRouter, type EventRouterRule, type EventToEmit, type ExecutionMode, ExecutionModes, type ExpressionContextOptions, FORMAT_PATTERNS, type FieldConfig, type FlowType, type ForeachStep, type Guide, type GuideImage, type GuideSection, type GuideStep, INPUT_ENUM_REGISTRY, type IncrementalConfig, type Input, type InputFormat, InputFormats, type InputLocation, InputLocations, type InputRules, type InputType, InputTypes, type InputVariant, type IntermediateStepSnapshot, type IteratorLocation, MCP_REQUEST_INPUT_PARAMS, MCP_REQUEST_OUTPUT, type MatchedEventAction, type OffsetPaginationConfig, type OnConditionError, type PagePaginationConfig, type PaginationConfig, type ReleaseStage, ReleaseStages, type Schema, type SchemaField, type SchemaType, SchemaTypes, type ScopeDefinition, type Settings, type SimpleStep, type Source, SourceType, type Step, type StepFunction, type StepFunctionMeta, StepFunctionName, type StepFunctionOutput, type StepFunctionParams, StepFunctionsFactory, stepFunctions as StepFunctionsRegistry, type StepsSnapshots, type StreamOutputData, StreamType, type SupportConfig, type SyncParams, type SyncedAction, type TestActionConfig, type TimeFilterIncrementalConfig, TransportType, type WebhookSetup, type WebhookSetupPhase, type WebhookSetupPhaseKind, areCursorsEqual, buildExpressionContext, computeDataSyncFingerprint, decodeCompositeId, encodeCompositeId, evaluateEventRouter, evaluateExternalAccountIdExtractor, expandCursor, getCategoryDetails, getInputEnumValues, getIteratorLocation, getPaginationKeys, isCompositeId, isCoreError, isCursorEmpty, isForeachStep, isValidCategory, isValidEnumRef, minifyCursor, stripIncrementalParams, stripPaginationParams, updateCursor };
package/dist/index.mjs CHANGED
@@ -1,3 +1,3 @@
1
- import{t as e}from"./chunk-BhWHdk3m.mjs";import{decodeFromBase64 as t,encodeToBase64 as n,getContentHash as r,getCountryAlpha2CodeByAlpha2Code as i,getCountryAlpha2CodeByAlpha3Code as a,getCountryAlpha2CodeByCitizenship as o,getCountryAlpha2CodeByCountryCode as s,getCountryAlpha2CodeByCountryName as c,getCountryAlpha3CodeByAlpha2Code as l,getCountryAlpha3CodeByAlpha3Code as u,getCountryAlpha3CodeByCountryCode as d,getCountryAlpha3CodeByCountryName as f,getCountryCodeByAlpha2Code as p,getCountryCodeByAlpha3Code as m,getCountryCodeByCountryCode as h,getCountryCodeByCountryName as g,getCountryNameByAlpha2Code as _,getCountryNameByAlpha3Code as v,getCountryNameByCountryCode as y,getCountryNameByCountryName as b,getCountrySubDivisionCodeBySubDivisionName as x,getCountrySubDivisionNameBySubDivisionCode as S,getCountrySubDivisionsByAlpha2Code as C,getDocumentFileFormatFromExtension as w,isMissing as T,isObject as E,isString as D,notMissing as O,safeParseToBoolean as ee,safeParseToDateTimeString as k,safeParseToNumber as A,safeParseToString as te,z as j,zStrictObject as M}from"@stackone/utils";import{evaluate as N,isExpression as P,isValidExpression as F,safeEvaluate as I,safeEvaluateRecord as L}from"@stackone/expressions";import{CUSTOM_ERROR_CONFIG_SCHEMA as R,HttpMethods as z,HttpResponseError as B,McpClient as V,QueryArrayFormats as H,RequestClientFactory as ne,RequestParameterLocations as U,buildHttpsAgent as re,createAuthorizationHeaders as W,getSigningStrategy as G,isFailedStatusCode as K,parseRequestParameters as q,serializeHttpResponseError as J,translateCustomError as Y}from"@stackone/transport";import{InvokeCommand as X,LambdaClient as ie}from"@aws-sdk/client-lambda";import{Readable as ae}from"node:stream";import Z from"mime-types";import{Saml20 as oe}from"saml";import{v4 as se}from"uuid";import{REDACT_CENSOR as Q}from"@stackone/redaction";import{createHash as ce,createPrivateKey as le,createPublicKey as ue}from"node:crypto";import{SignJWT as de}from"jose";import fe from"form-data";const pe=[`context`,`inputs`,`steps`,`intermediateSteps`,`iterator`,`result`],buildExpressionContext=(e,t={})=>{let n=t.includeCredentials??e.context?.flowType===`refresh_authentication`,r=pe.reduce((t,n)=>(n in e&&(t[n]=e[n]),t),{});return n&&`credentials`in e&&(r.credentials=e.credentials),r},me={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`},iam:{title:`IAM`,key:`iam`,description:`Identity and Access Management`},internal:{title:`Internal`,key:`internal`,description:`Category for internal actions`},action:{title:`Action`,key:`action`,description:`Action`}},getCategoryDetails=e=>me[e.toLowerCase()]??null,isValidCategory=e=>!!me[e.toLowerCase()],he=n(`so1!`),ge=RegExp(`(?<!\\\\):`,`g`),_e=RegExp(`(?<!\\\\),`,`g`),ve=1;var ye=class CoreError extends Error{constructor({category:e,name:t,type:n,context:r,message:i}){super(i),this.name=t??`CoreError`,this.type=n,this.category=e,this.context=r,Error.captureStackTrace&&Error.captureStackTrace(this,CoreError)}toString(){let e=this.message?`: ${this.message}`:``;return`${this.category}-${this.name} [${this.type}]${e}`}},BaseCompositeIdError=class extends ye{constructor(e,t,n){super({category:`CompositeId`,name:t??`BaseCompositeIdError`,type:e,message:n})}},CompositeIdMissingHeaderError=class extends BaseCompositeIdError{constructor(e){super(`COMPOSITE_ID_MISSING_HEADER_ERROR`,`CompositeIdMissingHeaderError`,e??`Invalid compositeId, missing header`)}},CompositeIdMissingBodyError=class extends BaseCompositeIdError{constructor(e){super(`COMPOSITE_ID_MISSING_BODY_ERROR`,`CompositeIdMissingBodyError`,e??`Invalid compositeId, missing body`)}},CompositeIdUnknownIdentifierError=class extends BaseCompositeIdError{constructor(e){super(`COMPOSITE_ID_UNKNOWN_IDENTIFIER_ERROR`,`CompositeIdUnknownIdentifierError`,e??`Invalid compositeId, unknown identifier`)}},CompositeIdUnsupportedVersionError=class extends BaseCompositeIdError{constructor(e){super(`COMPOSITE_ID_UNSUPPORTED_VERSION_ERROR`,`CompositeIdUnsupportedVersionError`,e??`Invalid compositeId, unsupported version`)}};const isSingleIdentifier=e=>!T(e)&&`value`in e&&e.value!==void 0,isMultipleIdentifier=e=>!T(e)&&`identifiers`in e&&e.identifiers!==void 0,encodeCompositeId=(e,t={version:1})=>{if(t.version===1)return encodeIdV1(getComposedIdV1(e,t.aliases));throw new CompositeIdUnsupportedVersionError(`Cannot generate ID, unsupported version number: ${t.version}`)},decodeCompositeId=(e,t={version:1})=>{let n=decodeId(e,t),r={};return n&&n.split(_e).forEach(e=>{let[n,i]=e.split(ge),a=getOriginalKey(n,t.aliases??{});r[a]=unescapeValue(i)}),r},getComposedIdV1=(e,t={})=>{if(isSingleIdentifier(e))return getSingleIdentifierString({identifier:e,compositeIdAliases:t,isSoleIdentifier:!0});if(isMultipleIdentifier(e))return e.identifiers.map(e=>getSingleIdentifierString({identifier:e,compositeIdAliases:t,isSoleIdentifier:!1})).join(`,`);throw new CompositeIdUnknownIdentifierError},getSingleIdentifierString=({identifier:e,compositeIdAliases:t,isSoleIdentifier:n})=>[n?`id`:t[e.key]||e.key,escapeValue(e.value)].filter(Boolean).join(`:`),getOriginalKey=(e,t)=>Object.keys(t).find(n=>t[n]===e)??e,decodeId=(e,t)=>{if(t.version===1)return decodeIdV1(e);throw new CompositeIdUnsupportedVersionError(`Cannot decode ID, unsupported version number: ${t.version}`)},encodeIdV1=e=>`${he}${n(e)}`,decodeIdV1=e=>{if(!e.startsWith(he))throw new CompositeIdMissingHeaderError(`Trying to decode an ID without the header: ${e}`);let n=e.split(he)[1];if(!n)throw new CompositeIdMissingBodyError(`Trying to decode an ID without a body: ${e}`);return t(n)},escapeValue=e=>[`,`,`:`].reduce((e,t)=>e.replace(t,`\\`+t),e),unescapeValue=e=>[`,`,`:`].reduce((e,t)=>{let n=`\\`+t;return e.replace(RegExp(`\\\\`+n,`g`),t)},e),isCompositeId=e=>T(e)?!1:e.startsWith(he),computeDataSyncFingerprint=e=>{let{incremental:t}=e;return r({indexField:Array.isArray(e.indexField)?e.indexField:[e.indexField],incremental:t?{type:t.type,iteratorKey:t.iterator.key,iteratorIn:t.iterator.in,format:`format`in t?t.format:null}:null})},evaluateExternalAccountIdExtractor=(e,t)=>{let n=e.events?.externalAccountIdExtractor;if(T(n)||typeof n.result!=`string`||n.result.trim().length===0)return;let r=I(`{{${n.result.trim()}}}`,t);if(!T(r)){if(typeof r==`string`){let e=r.trim();return e.length>0?e:void 0}if(typeof r==`number`||typeof r==`bigint`||typeof r==`boolean`)return String(r)}},evaluateEventRouter=(e,t)=>{let n=e.events?.router;if(!T(n))for(let e of n.rules){let n=I(`{{${e.when.trim()}}}`,t);if(n!==null&&n!==!1&&n!==void 0){let n=e.then.input?Object.fromEntries(Object.entries(e.then.input).map(([e,n])=>[e,I(`{{${String(n).trim()}}}`,t)])):void 0;return{action:e.then.action,input:n}}}},be={email:/^[^\s@]+@(?=[^\s@]+\.[^\s@])[^\s@]+$/,url:/^https?:\/\/[^\s/?#]+(?:[/?#]\S*)?$/,uri:/^[a-zA-Z][a-zA-Z0-9+.-]*:\S+$/,uuid:/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i,date:/^\d{4}-\d{2}-\d{2}$/,datetime:/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:[Zz]|[+-]\d{2}(?::?\d{2})?)?$/},xe={employment_status:[`active`,`inactive`,`terminated`,`pending`,`leave`],employment_type:[`full_time`,`part_time`,`contractor`,`intern`,`temporary`],gender:[`male`,`female`,`non_binary`,`other`,`prefer_not_to_say`],marital_status:[`single`,`married`,`divorced`,`widowed`,`domestic_partnership`]},getInputEnumValues=e=>xe[e],isValidEnumRef=e=>e in xe,Se=[`preview`,`beta`,`ga`,`deprecated`,`internal`],Ce=[`auth`,`downstream-change`,`bug-fix`,`new-actions`],we=[`sync`,`async`],Te=M({r:j.record(j.string(),M({n:j.number().optional().nullable(),c:j.string().optional().nullable(),p:j.number().optional().nullable()})),v:j.number(),t:j.number()}),Ee=M({remote:j.record(j.string(),M({pageNumber:j.number().optional(),providerPageCursor:j.string().optional(),position:j.number().optional()})),version:j.number(),timestamp:j.number()}),minifyCursor=e=>n(JSON.stringify(minifyCursorObject(e))),minifyCursorObject=e=>{let{remote:t,version:n,timestamp:r}=e;return{r:Object.fromEntries(Object.entries(t).map(([e,{pageNumber:t,providerPageCursor:n,position:r}])=>[e,{n:t,c:n,p:r}])),v:n,t:r}},expandCursor=e=>{try{if(D(e)){let n=t(e),r=JSON.parse(n);return expandCursorObject(Te.parse(r))}else return Ee.parse(e),e}catch{return null}},expandCursorObject=e=>{let{r:t,v:n,t:r}=e;return{remote:Object.fromEntries(Object.entries(t).map(([e,{n:t,c:n,p:r}])=>[e,{pageNumber:t,providerPageCursor:n,position:r}])),version:n,timestamp:r}},areCursorsEqual=(e,t)=>{let n=typeof e==`string`?expandCursor(e):e,i=typeof t==`string`?expandCursor(t):t;if(n===null||i===null)return n===i;let{timestamp:a,...o}=n,{timestamp:s,...c}=i;return r(o)===r(c)},isCursorEmpty=({cursor:e,ignoreStepIndex:t})=>T(e)?!0:Object.keys(e?.remote??{}).reduce((n,r)=>{let i=e?.remote?.[r];return(T(t)||r!==t.toString())&&(n=n&&T(i.pageNumber)&&T(i.position)&&T(i.providerPageCursor)),n},!0),updateCursor=({cursor:e,stepIndex:t,pageNumber:n,providerPageCursor:r,position:i})=>{let a={pageNumber:n??void 0,providerPageCursor:r??void 0,position:i??void 0},o=T(n)&&T(r)&&T(i);return T(e)?{remote:o?{}:{[t]:a},version:2,timestamp:Date.now()}:o?(delete e.remote[t],e):{...e,remote:{...e.remote,[t]:a}}},isCoreError=e=>e instanceof ye;function stripPaginationParams(e,t){let n=getPaginationKeys(t);if(n.length===0)return e;let r=getIteratorLocation(t);if(!r)return e;let i=e[r];if(!i||typeof i!=`object`)return e;let a={...i};for(let e of n)delete a[e];return{...e,[r]:a}}function getPaginationKeys(e){switch(e.type){case`cursor`:return[e.iterator.key];case`offset`:{let t=e;return[t.iterator.offsetKey,t.iterator.limitKey]}case`page`:{let t=e,n=[t.iterator.pageKey];return t.iterator.pageSizeKey&&n.push(t.iterator.pageSizeKey),n}default:return[]}}function getIteratorLocation(e){if(`iterator`in e&&typeof e.iterator==`object`&&e.iterator!==null)return e.iterator.in}function stripIncrementalParams(e,t){if(!t)return e;let{key:n,in:r}=t.iterator,i=e[r];if(!i||typeof i!=`object`)return e;let a={...i};return delete a[n],{...e,[r]:a}}const De={RequestTester:`REQUEST_TESTER`,ActionTester:`ACTION_TESTER`,Discode:`DISCODE`,Dashboard:`DASHBOARD`,Playground:`PLAYGROUND`,SDK:`SDK`,API:`API`,Scheduler:`SCHEDULER`,Webhook:`WEBHOOK`,Agent:`AGENT`,MCP:`MCP`,Application:`APPLICATION`,DataSync:`DATA_SYNC`,DataSyncV2:`DATA_SYNC_V2`,Internal:`INTERNAL`,ConnectionTest:`CONNECTION_TEST`},Oe={HTTP:`HTTP`,MCP:`MCP`,ActionRPC:`ACTION_RPC`,WebSocket:`WEBSOCKET`},ke={HTTP:`HTTP`,WebSocket:`WEBSOCKET`,SSE:`SSE`},Ae={APIKey:`API_KEY`,SessionToken:`SESSION_TOKEN`,UserSession:`USER_SESSION`,Cookie:`COOKIE`,Webhook:`WEBHOOK`,Signature:`SIGNATURE`},browserUseStepFunction=async()=>{throw Error(`browser_use step function cannot be executed synchronously — actions using this step must have executionMode: "async" so they are dispatched to the Temporal workflow runtime`)},je=j.object({startUrl:j.string().url(),systemPrompt:j.string().optional(),viewport:M({width:j.number().int().positive(),height:j.number().int().positive()}).optional(),locale:j.string().optional(),budgets:M({maxDurationMs:j.number().int().positive(),maxSteps:j.number().int().positive()}),auth:M({sensitiveKeys:j.array(j.string().min(1)).optional(),requiresSession:j.boolean().optional(),allowedDomains:j.array(j.string().min(1)).optional()}).optional()}),Me=j.unknown(),sanitizeRaw=e=>{let t={};return e.status!=null&&(t.status=e.status),e.data!==void 0&&(t.data=e.data),e.headers!=null&&(t.headers=e.headers),e.requestUrl!=null&&(t.requestUrl=e.requestUrl),e.message!=null&&(t.message=e.message),t},isSerializedBuffer=e=>typeof e==`object`&&!!e&&e.type===`Buffer`&&Array.isArray(e.data),decodeBinaryBody=e=>{let t;if(Buffer.isBuffer(e)?t=e.toString(`utf8`):e instanceof ArrayBuffer?t=new TextDecoder().decode(new Uint8Array(e)):ArrayBuffer.isView(e)?t=new TextDecoder().decode(new Uint8Array(e.buffer,e.byteOffset,e.byteLength)):isSerializedBuffer(e)&&(t=Buffer.from(e.data).toString(`utf8`)),t===void 0)return e;try{return JSON.parse(t)}catch{return t}},decodeResponseBody=e=>({...e,data:decodeBinaryBody(e.data)}),isHttpLikeError=e=>typeof e==`object`&&!!e&&`response`in e&&e.response!=null&&typeof e.response==`object`,extractTopLevelMessage=e=>{if(typeof e.message==`string`&&e.message.trim().length>0)return e.message},extractNestedErrorMessage=e=>{if(e.error!=null&&typeof e.error==`object`&&!Array.isArray(e.error)&&typeof e.error.message==`string`)return e.error.message;if(typeof e.error==`string`&&e.error.length>0)return e.error;if(typeof e.error_description==`string`&&e.error_description.length>0)return e.error_description},extractErrorMessage=(e,t)=>{let n=e.data;if(typeof n==`object`&&n&&!Array.isArray(n)){let e=extractTopLevelMessage(n);if(e!=null)return e}if(typeof e.message==`string`&&e.message.length>0)return e.message;if(typeof n==`object`&&n&&!Array.isArray(n)){let e=extractNestedErrorMessage(n);if(e!=null)return e}if(Array.isArray(n)&&n.length>0){let e=n[0];if(typeof e==`object`&&e&&!Array.isArray(e)){let t=e,n=extractTopLevelMessage(t)??extractNestedErrorMessage(t);if(n!=null)return n}}return typeof n==`string`&&n.length>0?n:t},buildStepErrorOutput=(e,t)=>{if(e instanceof B){let n=e.message,r=decodeResponseBody(e.response);return{block:t,successful:!1,errors:[J(e)],output:{statusCode:r?.status??500,message:extractErrorMessage(r,n),data:r?.data,raw:sanitizeRaw(r)}}}if(isHttpLikeError(e)){let n=decodeResponseBody(e.response),r=e instanceof Error?e.message:`HTTP error: ${n.status??500}`;return{block:t,successful:!1,errors:[J(e)],output:{statusCode:n.status??500,message:extractErrorMessage(n,r),data:n.data,raw:sanitizeRaw(n)}}}return e instanceof Error?{block:t,successful:!1,errors:[J(e)],output:{statusCode:500,message:e.message}}:{block:t,successful:!1,errors:[J(e)],output:{statusCode:500,message:String(e)}}},isAwsCredentials=e=>!!e&&typeof e.accessKeyId==`string`&&typeof e.secretAccessKey==`string`,buildLambdaClientConfig=({region:e,endpoint:t,credentials:n})=>({region:e,...t?{endpoint:t}:{},...isAwsCredentials(n)?{credentials:{accessKeyId:n.accessKeyId,secretAccessKey:n.secretAccessKey,sessionToken:typeof n.sessionToken==`string`?n.sessionToken:void 0}}:t?{credentials:{accessKeyId:`local`,secretAccessKey:`local`}}:{}}),defaultClientFactory=e=>new ie(e),invokeLambda=async({lambdaName:e,payload:t,region:n,endpoint:r,invocationType:i=`RequestResponse`,qualifier:a,credentials:o,clientFactory:s=defaultClientFactory})=>{let c=s(buildLambdaClientConfig({region:n,endpoint:r,credentials:o})),l=new X({FunctionName:e,InvocationType:i,Qualifier:a,Payload:t?Buffer.from(JSON.stringify(t)):void 0}),u=await c.send(l),d=u.Payload?Buffer.from(u.Payload).toString(`utf-8`):``,f;if(d.length===0)f=void 0;else try{f=JSON.parse(d)}catch{f=d}return{statusCode:u.StatusCode??200,payload:f,functionError:u.FunctionError,executedVersion:u.ExecutedVersion}},Ne=M({lambdaName:j.string(),region:j.string().optional(),endpoint:j.string().optional(),invocationType:j.enum([`RequestResponse`,`Event`,`DryRun`]).optional(),qualifier:j.string().optional(),args:M({name:j.string(),value:j.unknown(),condition:j.string().optional()}).array().optional().describe(`Key/value pairs combined into the JSON payload sent to the Lambda function`),dataKey:j.string().optional()}),Pe=M({data:j.unknown().optional(),raw:j.unknown().optional(),statusCode:j.number(),message:j.string().optional(),executedVersion:j.string().optional()}).optional(),Fe=/\${[^}]+}/,isJsonPathLike=e=>{let t=e.trimStart();return t.startsWith(`$.`)||t.startsWith(`$[`)},hasExpressionMarker=e=>P(e)||Fe.test(e)||isJsonPathLike(e),buildDataKeyExpression=e=>P(e)||e.trimStart().startsWith(`$`)?e:`$.${e}`,Ie=e((e,t)=>{if(T(e)||typeof e!=`object`||!e)return e;try{let n=N(buildDataKeyExpression(t),e);if(n!==void 0)return n}catch{}return e[t]},`resolveDataKey`),buildPayloadFromArgs=e=>{if(!(!e||e.length===0))return e.reduce((e,t)=>(e[t.name]=t.value,e),{})},codeExecutionLambdaStepFunction=async({block:e,params:t},n=invokeLambda)=>{let r=t?.args,i=Array.isArray(r)?r:void 0,isPlainObject=e=>typeof e==`object`&&!!e,a=i?i.filter(t=>{if(!isPlainObject(t))return!0;let n=t.condition;return typeof n!=`string`||I(n,e)===!0}).map(e=>isPlainObject(e)?{...e,condition:void 0}:e):void 0,o=t?.dataKey,s=typeof o==`string`&&!Fe.test(o),c=t?.qualifier,l=typeof c==`string`&&!hasExpressionMarker(c),u={...t?L(i===void 0?t:{...t,args:a},e):{},...s?{dataKey:o}:{},...l?{qualifier:c}:{}},d;try{d=Ne.parse(u)}catch(t){return buildStepErrorOutput(t,e)}let{lambdaName:f,region:p,endpoint:m,invocationType:h,qualifier:g,args:_,dataKey:v}=d,y;try{y=await n({lambdaName:f,payload:buildPayloadFromArgs(_),region:p,endpoint:m,invocationType:h,qualifier:g,credentials:e.credentials})}catch(t){return buildStepErrorOutput(t,e)}if(y.functionError){let t=typeof y.payload==`object`&&y.payload!==null&&`errorMessage`in y.payload&&typeof y.payload.errorMessage==`string`?y.payload.errorMessage:`Lambda function error: ${y.functionError}`;return{block:e,successful:!1,errors:[{message:t,kind:`lambda_function_error`,functionError:y.functionError}],output:{statusCode:y.statusCode,message:t,data:y.payload,raw:y}}}return{block:e,successful:!0,output:{data:v?Ie(y.payload,v):y.payload,raw:y,statusCode:y.statusCode,executedVersion:y.executedVersion}}},buildRequestContext=e=>({accountSecureId:e.context.accountSecureId,projectSecureId:e.context.projectSecureId,organizationId:e.context.organizationId,environment:e.context.environment,authConfigKey:e.context.authenticationType,provider:e.connector?.key,service:e.context.category,resource:e.connector?.key,action:e.action?.id}),Le=M({strategy:j.literal(`aws4`),service:j.string(),region:j.string().optional()}),Re=M({strategy:j.literal(`hmac`),algorithm:j.enum([`sha1`,`sha256`,`sha512`]).optional(),headerName:j.string().optional(),prefix:j.string().optional(),dateFormat:j.enum([`iso8601`,`rfc2822`]).optional(),includeHost:j.boolean().optional(),includeBodyHash:j.boolean().optional(),outputFormat:j.enum([`header`,`basic`]).optional(),username:j.string().optional()}),ze=j.discriminatedUnion(`strategy`,[Le,Re]),Be=M({type:j.literal(`none`),signing:ze.optional(),redirectUri:j.string().optional()}),Ve=M({type:j.literal(`basic`),username:j.string().optional(),password:j.string().optional(),encoding:j.string().optional(),redirectUri:j.string().optional()}),He=M({type:j.literal(`bearer`),token:j.string(),includeBearer:j.boolean().optional().default(!0),redirectUri:j.string().optional()}),Ue=new Set([`accessToken`,`refreshToken`,`idToken`,`clientId`,`clientSecret`,`authentication_config_key`,`environment`]),We=M({type:j.literal(`oauth2`),authorizationUrl:j.string().optional(),redirectUri:j.string().optional(),authorizationParams:j.record(j.string(),j.string()).optional(),tokenUrl:j.string().optional(),tokenParams:j.record(j.string(),j.string()).optional(),tokenExpiresIn:j.number().optional(),tokenRefreshExpiresIn:j.number().optional(),token:j.string(),includeBearer:j.boolean().optional().default(!0),scopes:j.string().optional(),scopeDelimiter:j.string().optional(),customHeaders:j.record(j.string(),j.string()).optional(),pkce:j.boolean().optional(),additionalTokenFields:j.record(j.string(),j.string().optional()).optional(),callbackParams:j.record(j.string(),j.string().min(1)).superRefine((e,t)=>{for(let[n,r]of Object.entries(e))Ue.has(r)&&t.addIssue({code:j.ZodIssueCode.custom,path:[n],message:`callbackParams must not target reserved credential key "${r}"`})}).optional(),issuer:j.string().optional(),tokenResponse:M({acceptTokenTypes:j.array(j.string()).optional(),accessToken:j.string().min(1).optional(),refreshToken:j.string().min(1).optional()}).optional()}),$=j.discriminatedUnion(`type`,[Be,Ve,He,We]),Ge=M({certs:j.string().array().optional(),keys:j.string().array().optional()}).optional(),Ke=j.object({baseUrl:j.string().optional(),url:j.string(),method:j.enum(z).optional().default(`get`),authorization:$.optional(),responseMode:j.enum([`buffer`,`stream`]).optional().default(`buffer`),responseType:j.enum([`arraybuffer`,`blob`,`text`,`json`]).optional().default(`arraybuffer`),encoding:j.enum([`base64`,`utf8`,`binary`,`raw`,`none`]).optional().default(`base64`),response:M({dataKey:j.string().optional(),fileNameKey:j.string().optional(),contentTypeKey:j.string().optional(),contentType:j.string().optional(),contentIsBase64:j.boolean().optional().default(!1),urlKey:j.string().optional(),forwardAuth:j.boolean().optional().default(!1)}).optional(),maxRedirects:j.number().optional().default(5),followRedirects:j.boolean().optional().default(!0),customErrors:R.array().optional(),args:M({name:j.string(),value:j.unknown(),in:j.enum(U),spread:j.boolean().optional(),condition:j.string().optional(),arrayFormat:j.enum(H).optional()}).array().optional()}),qe=M({data:j.union([j.string(),j.instanceof(Buffer)]).optional(),raw:j.unknown().optional(),statusCode:j.number(),message:j.string().optional(),headers:j.record(j.string(),j.union([j.string(),j.array(j.string())])).optional(),contentDisposition:j.string().optional(),fileMetadata:M({contentType:j.string().optional(),contentLength:j.number().optional(),fileName:j.string().optional(),lastModified:j.string().optional(),etag:j.string().optional()}).optional(),finalUrl:j.string().optional()}).optional(),downloadFileStepFunction=async({block:e,params:t})=>{if(!e.httpClient)throw Error(`HTTP client is not configured`);let{args:n}=t,r=n?n.filter(t=>!t.condition||N(t.condition,e)===!0).map(e=>({...e,condition:void 0})):void 0,i=t?L({...t,args:r},e):{},a={...i,customErrors:t?.customErrors},{baseUrl:o,url:s,method:c,authorization:l,args:u,responseMode:d,responseType:f,encoding:p,response:m,maxRedirects:h,followRedirects:g}=Ke.parse(a),_=i?.authentication?.[e.context.authenticationType]?.[e.context.environment]?.authorization,v=u?q(u):{query:{},body:{},headers:{}},y=typeof v?.body==`string`?void 0:v?.body,b=W(O(l)?l:$.parse(_)),x={...v?.headers??{},...b},S=e.connector?.rateLimit,C=e.connector?.concurrency,w=S!==void 0||C!==void 0?{rateLimits:S,concurrency:C}:void 0,T=buildRequestContext(e);if(d===`stream`)return performStreamDownload({block:e,httpClient:e.httpClient,baseUrl:o??``,url:s,method:c,headers:x,queryParams:v?.query,body:y,maxRedirects:g?h:0,requestConfig:w,context:T,response:m,responseType:f,authHeaders:b});try{return{block:e,successful:!0,output:await performDownload({httpClient:e.httpClient,baseUrl:o??``,url:s,method:c,headers:x,queryParams:v?.query,body:y,responseType:f,encoding:p,response:m,maxRedirects:g?h:0,requestConfig:w,context:T,authHeaders:b})}}catch(t){return buildStepErrorOutput(t,e)}},performStreamDownload=async e=>{let{block:t,httpClient:n,baseUrl:r,url:i,method:a,headers:o,queryParams:s,body:c,maxRedirects:l,requestConfig:u,context:d,response:f,responseType:p,authHeaders:m}=e,h=`${r}${i}`;if(!h.startsWith(`http://`)&&!h.startsWith(`https://`))throw Error(`Invalid URL: "${h}". URL must be absolute (start with http:// or https://). Either provide a baseUrl or ensure url is a complete URL.`);if(O(f?.dataKey)||O(f?.urlKey))try{let e=await performDownload({httpClient:n,baseUrl:r,url:i,method:a,headers:o,queryParams:s,body:c,responseType:p??`arraybuffer`,encoding:`none`,response:f,maxRedirects:l,requestConfig:u,context:d,authHeaders:m??{}}),h=Buffer.isBuffer(e.data)?e.data:Buffer.from(e.data),g={...e.fileMetadata,contentLength:h.length};return{block:t,successful:!0,streamOutput:{stream:ae.from(h),headers:O(g.contentType)?{"content-type":g.contentType}:{},contentDisposition:e.contentDisposition,fileMetadata:g}}}catch(e){return buildStepErrorOutput(e,t)}if(!n.requestStream)throw Error(`HTTP client does not support streaming. Either implement requestStream method or use responseMode: "buffer".`);try{let e=await n.requestStream({url:h,method:a,headers:o,queryParams:s,payload:c,maxRedirects:l,requestConfig:u,context:d}),r=extractFileMetadata(e.headers),i=buildContentDisposition(r);return{block:t,successful:!0,streamOutput:{stream:e.stream,headers:e.headers,contentDisposition:i,fileMetadata:r}}}catch(e){return buildStepErrorOutput(e,t)}},performDownload=async e=>{let{httpClient:t,baseUrl:n,url:r,method:i,headers:a,queryParams:o,body:s,responseType:c,encoding:l,response:u,maxRedirects:d,requestConfig:f,context:p,authHeaders:m}=e,h=`${n}${r}`;if(!h.startsWith(`http://`)&&!h.startsWith(`https://`))throw Error(`Invalid URL: "${h}". URL must be absolute (start with http:// or https://). Either provide a baseUrl or ensure url is a complete URL.`);let g=u?.urlKey||u?.dataKey?`json`:c,_=await t.request({url:h,method:i,headers:a,queryParams:o,payload:s,responseType:g===`json`?void 0:g,maxRedirects:d,requestConfig:f,context:p});if(u?.urlKey||u?.dataKey)return handleJsonResponse({httpClient:t,result:_,response:u,encoding:l,maxRedirects:d,requestConfig:f,context:p,authHeaders:m});let v=encodeFileData(_.data,l),y=extractFileMetadata(_.headers),b=buildContentDisposition(y);return{data:v,raw:_,statusCode:_?.status,message:_?.message,headers:_.headers,contentDisposition:b,fileMetadata:y,finalUrl:_?.requestUrl}},handleJsonResponse=async e=>{let{httpClient:t,result:n,response:r,encoding:i,maxRedirects:a,requestConfig:o,context:s,authHeaders:c}=e,l=n.data;if(r.urlKey){let e=extractValueByPath(l,r.urlKey);if(typeof e==`string`){let n=await t.request({url:e,method:`get`,headers:r.forwardAuth?c:{},responseType:`arraybuffer`,maxRedirects:a,requestConfig:o,context:s}),u=encodeFileData(n.data,i),d=extractFileMetadata(n.headers);if(r.fileNameKey){let e=extractValueByPath(l,r.fileNameKey);typeof e==`string`&&(d.fileName=e)}if(r.contentTypeKey){let e=extractValueByPath(l,r.contentTypeKey);typeof e==`string`&&(d.contentType=e)}T(d.contentType)&&O(r.contentType)&&(d.contentType=r.contentType);let f=buildContentDisposition(d);return{data:u,raw:n,statusCode:n?.status,message:n?.message,headers:n.headers,contentDisposition:f,fileMetadata:d,finalUrl:e}}}if(r.dataKey){let e=extractValueByPath(l,r.dataKey);if(T(e))throw Error(`No file content found at path: ${r.dataKey}`);let t;if(typeof e==`string`)t=r.contentIsBase64?i===`base64`?e:i===`none`?Buffer.from(e,`base64`):Buffer.from(e,`base64`).toString(i===`raw`?`binary`:i):encodeFileData(e,i);else if(e instanceof ArrayBuffer||ArrayBuffer.isView(e))t=encodeFileData(e,i);else throw Error(`Unexpected file content type at path: ${r.dataKey}`);let a={};if(r.fileNameKey){let e=extractValueByPath(l,r.fileNameKey);typeof e==`string`&&(a.fileName=e)}if(r.contentTypeKey){let e=extractValueByPath(l,r.contentTypeKey);typeof e==`string`&&(a.contentType=e)}T(a.contentType)&&O(r.contentType)&&(a.contentType=r.contentType);let o=buildContentDisposition(a);return{data:t,raw:n,statusCode:n?.status,message:n?.message,headers:n.headers,contentDisposition:o,fileMetadata:a}}throw Error(`JSON response handling requires either urlKey or dataKey to be specified`)},extractValueByPath=(e,t)=>{let n=(t.startsWith(`$.`)?t.slice(2):t).split(`.`),r=e;for(let e of n){if(T(r)||typeof r!=`object`)return;r=r[e]}return r},encodeFileData=(e,t)=>{if(t===`none`)return e instanceof ArrayBuffer||ArrayBuffer.isView(e)||typeof e==`string`?Buffer.from(e):Buffer.from(JSON.stringify(e));if(t===`raw`)return typeof e==`string`?e:e instanceof ArrayBuffer||ArrayBuffer.isView(e)?Buffer.from(e).toString(`binary`):JSON.stringify(e);if(typeof e==`string`)return t===`base64`?Buffer.from(e).toString(`base64`):e;if(e instanceof ArrayBuffer||ArrayBuffer.isView(e)){let n=Buffer.from(e);switch(t){case`base64`:return n.toString(`base64`);case`utf8`:return n.toString(`utf8`);default:return n.toString(`binary`)}}return JSON.stringify(e)},extractFileMetadata=e=>{let t=D(e[`content-type`])?e[`content-type`]:void 0,n=D(e[`content-length`])?e[`content-length`]:void 0,r=D(e[`content-disposition`])?e[`content-disposition`]:void 0,i=D(e[`last-modified`])?e[`last-modified`]:void 0,a=D(e.etag)?e.etag:void 0,o=n?parseInt(n,10):void 0,s=extractFileName(r);return{contentType:t,contentLength:Number.isNaN(o)?void 0:o,fileName:s,lastModified:i,etag:a}},extractFileName=e=>{if(!e)return;let t=e.match(/filename\*=(?:UTF-8''|utf-8'')([^;\s]+)/i);if(t&&t[1])try{return decodeURIComponent(t[1])}catch{}let n=e.match(/filename=["']([^"']+)["']/);if(n&&n[1])return n[1];let r=e.match(/filename=([^;\s]+)/);if(r&&r[1])return r[1]},buildContentDisposition=e=>{let{fileName:t,contentType:n}=e,r=`attachment`;if(t)r=`attachment; filename="${t}"; filename*=UTF-8''${encodeURIComponent(t).replace(/['()]/g,escape)}`;else if(n){let e=getExtensionFromContentType(n);e&&(r=`attachment; filename="download.${e}"`)}return r},getExtensionFromContentType=e=>{let t=e.split(`;`)[0].trim().toLowerCase();return Z.extension(t)||void 0},Je=j.object({event:j.object({eventType:j.string(),eventId:j.coerce.string().optional(),eventDate:j.coerce.string().optional(),data:j.unknown().optional()}).optional()}),Ye=j.record(j.string(),j.unknown()),emitEventStepFunction=async({block:e,params:t})=>{let n=t?L(t,e):{},{event:r}=Je.parse(n);if(r&&e.emitEvent)try{await e.emitEvent({eventType:r.eventType,eventId:r.eventId,eventDate:r.eventDate,data:r.data})}catch(t){throw e.logger?.error({code:`EmitEventError`,message:`emitEvent callback failed: ${t.message}`}),t}else r&&!e.emitEvent&&e.logger?.warning({message:`emit_event step executed but no emitEvent callback provided on the block`});let{event:i,...a}=n;return{block:{...e},successful:!0,output:a}},Xe=j.object({stepsDataToGroup:j.array(j.string()),isSingleRecord:j.boolean().optional()}),Ze=j.object({data:j.unknown()}),groupDataStepFunction=async({block:e,params:t})=>{let{stepsDataToGroup:n,isSingleRecord:r}=Xe.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]={...O(t[e])?t[e]:{},[n]:{...i[e]}}}),t):t},{});return{block:{...e},successful:!0,output:{data:r?i:Object.values(i)}}},Qe=e(async({block:e})=>{let t=e?.fieldConfigs,n=[],r=e.steps;if(!t||e?.debug?.custom_mappings===`disabled`||!r)return{block:e,successful:!0};let i=buildExpressionContext(e),a;if(Array.isArray(e.result)){let o=e.result.length;a=e.result.map((e,a)=>{let s=$e(e,t,extractSingleRecordBlockStepData(r,o,a),i);return n.push(...s.errors||[]),s.record})}else{let o=$e(e.result,t,r,i);a=o.record,n.push(...o.errors||[])}return{block:{...e,result:a},successful:!0,errors:Object.keys(n).length>0?n:void 0}},`mapFieldsStepFunction`),extractSingleRecordBlockStepData=(e,t,n)=>Object.entries(e).reduce((e,[r,i])=>{let a=i?.output?.data;return Array.isArray(a)&&a.length===t?e[r]={output:{data:a[n]}}:e[r]=i,e},{}),$e=e((e,t,n,r)=>{if(!e||!n)return{record:e};let i={...r,unified:{...e},...typeof n==`object`?n:{}},a={},o=[],s={...e};for(let n of t){let{error:t,value:r}=et(i,e.id,n);if(t){o.push(t);continue}n.custom?a[n.targetFieldKey]=r:s[n.targetFieldKey]=r}return{record:{...s,unified_custom_fields:Object.keys(a).length>0?a:void 0},errors:o.length>0?o:void 0}},`mapSingleRecord`),et=e((e,t,n)=>{let{expression:r,targetFieldKey:i}=n;if(!r)return{error:{message:`Expression is empty`,id:t,targetField:i}};let a;try{a=N(r,e)}catch{return{error:{message:`Invalid expression`,id:t,targetField:i}}}return a===void 0?{error:{message:`Expression returned no value`,id:t,targetField:i}}:{value:a}},`extractFieldValue`),getEnumMatcher=e=>{switch(e){case`country_alpha2code_by_alpha2code`:return i;case`country_alpha3code_by_alpha3code`:return u;case`country_code_by_country_code`:return h;case`country_name_by_country_name`:return b;case`country_name_by_alpha3code`:return v;case`country_name_by_alpha2code`:return _;case`country_name_by_country_code`:return y;case`country_alpha3code_by_alpha2code`:return l;case`country_alpha3code_by_country_name`:return f;case`country_alpha3code_by_country_code`:return d;case`country_alpha2code_by_alpha3code`:return a;case`country_alpha2code_by_country_name`:return c;case`country_alpha2code_by_country_code`:return s;case`country_code_by_alpha2code`:return p;case`country_code_by_alpha3code`:return m;case`country_code_by_country_name`:return g;case`country_subdivisions_by_alpha2code`:return C;case`country_subdivision_code_by_subdivision_name`:return x;case`country_alpha2code_by_citizenship`:return o;case`country_subdivision_name_by_subdivision_code`:return S;case`document_file_format_from_extension`:return w;default:return}},tt=M({targetFieldKey:j.string(),alias:j.string().optional(),expression:j.string().optional(),values:j.unknown().optional(),type:j.enum([`string`,`number`,`boolean`,`datetime_string`,`enum`,`object`]),array:j.boolean().default(!1),custom:j.boolean().default(!1),hidden:j.boolean().default(!1),enumMapper:M({matcher:j.string().or(M({matchExpression:j.string(),value:j.string()}).array())}).optional(),properties:j.lazy(()=>tt).array().optional(),requiredScopes:j.string().array().optional()}),nt=j.object({fields:tt.array(),dataSource:j.string(),externalSources:j.record(j.string(),j.string()).optional()}),rt=j.object({data:j.unknown()}),mergeSourceWithState=(e,t)=>E(e)?{...t,...e}:e,mapFieldsStepFunction=async({block:e,params:t})=>{let n=[],{fields:r,dataSource:i,externalSources:a}=nt.parse(t),o=buildExpressionContext(e,{includeCredentials:!0}),s=N(i,o);if(!r||!i||e?.debug?.custom_mappings===`disabled`||!s)return{block:e,successful:!0};let c=Object.keys(a??{})?.reduce((e,t)=>(e[t]=N(a?.[t],o),e),{}),l;if(Array.isArray(s))l=s.map(e=>{let t=at(r,{...e,external:c},o);return n.push(...t?.errors||[]),t?.record});else{let e=at(r,{...s,external:c},o);l=e?.record,n.push(...e?.errors||[])}return{block:{...e},successful:!0,output:{data:l},errors:Object.keys(n).length>0?n:void 0}},handleObjectArrayFromValues=(e,t,n,r)=>{if(Array.isArray(e.values))return e.values.map(i=>{let a=evaluateExpressionsInObject(i,t),o=at(e.properties,a,r);return O(o?.errors)&&n.push(...o.errors),o?.record}).filter(Boolean)},handleObjectArrayFromExpression=(e,t,n,r,i)=>{if(e.expression)try{let t=N(e.expression,n);if(Array.isArray(t))return t.map(t=>{let n=at(e.properties,t,i);return O(n?.errors)&&r.push(...n.errors),n?.record}).filter(Boolean);{let n=at(e.properties,t,i);return O(n?.errors)&&r.push(...n.errors),n?.record}}catch{r.push({message:`Invalid expression`,id:t?.id,targetField:e.targetFieldKey});return}},handleSingleObject=(e,t,n,r)=>{let i=O(e.values)?e.values:t,a=at(e.properties,i,r);return O(a?.errors)&&n.push(...a.errors),a?.record},it=e((e,t,n,r,i)=>{if(!T(e.properties))return e.array&&Array.isArray(e.values)?handleObjectArrayFromValues(e,n,r,i):e.array&&e.expression?handleObjectArrayFromExpression(e,t,n,r,i):handleSingleObject(e,t,r,i)},`handleObjectField`),at=e((e,t,n)=>{if(!t)return;let r=mergeSourceWithState(t,n),i={},a=[],o={};for(let s of e){let e;if(s.type===`object`){if(e=it(s,t,r,a,n),e===void 0)continue}else{let{error:n,value:i}=extractFieldValue(r,t?.id,s);if(e=i,n){a.push(n);continue}}s.custom?i[s.targetFieldKey]=e:o[s.targetFieldKey]=e}let s=Object.keys(i).length>0?{unified_custom_fields:i}:{};return{record:{...o,...s},errors:a.length>0?a:void 0}},`mapSingleRecord`),evaluateExpressionsInObject=(e,t)=>{if(e==null)return e;if(typeof e==`string`){if(F(e))try{return N(e,t)}catch{return e}return e}if(Array.isArray(e))return e.map(e=>evaluateExpressionsInObject(e,t));if(typeof e==`object`){let n={...e};for(let[e,r]of Object.entries(n))n[e]=evaluateExpressionsInObject(r,t);return n}return e},extractFieldValue=(e,t,n)=>{switch(n.type){case`string`:case`number`:case`boolean`:case`datetime_string`:return ot(n,t,e);case`enum`:return evaluateEnumValue(n,t,e);default:return{error:{message:`Invalid type`,id:t,targetField:n.targetFieldKey}}}},ot=e((e,t,n)=>{if(!e.expression)return{error:{message:`Expression is empty`,id:t,targetField:e.targetFieldKey}};let r;try{r=N(e.expression,n)}catch{return{error:{message:`Invalid expression`,id:t,targetField:e.targetFieldKey}}}return r===void 0?{error:{message:`Expression returned no value`,id:t,targetField:e.targetFieldKey}}:{value:r}},`evaluateValue`),evaluateEnumValue=(e,t,n)=>{let r=ot(e,t,n),i=O(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(D(a)){let n=getEnumMatcher(a);return O(n)?{value:{value:(O(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(N(t,n)===!0)return{value:{value:r,source_value:i}}}return{value:{value:`unmapped_value`,source_value:i}}},st=j.object({baseUrl:j.string().optional(),url:j.string().optional(),method:j.enum([`tools/call`,`tools/list`]).default(`tools/call`),toolName:j.string().optional(),timeout:j.number().int().positive().optional(),authorization:$.optional(),args:M({name:j.string(),value:j.unknown(),condition:j.string().optional()}).array().optional()}).refine(e=>e.method!==`tools/call`||!!e.toolName,{message:`The 'toolName' parameter is required when method is 'tools/call'`,path:[`toolName`]}),ct=M({data:j.unknown().optional(),raw:j.unknown().optional(),statusCode:j.number(),message:j.string().optional()}).optional(),buildMcpClient=e=>new V(e),buildToolArguments=e=>(e??[]).reduce((e,t)=>(e[t.name]=t.value,e),{}),parseJsonText=e=>{try{return JSON.parse(e)}catch{return e}},resolveToolData=e=>{if(O(e.structuredContent))return e.structuredContent;let[t,...n]=e.content;return n.length===0&&t?.type===`text`&&typeof t.text==`string`?parseJsonText(t.text):e.content},extractTextMessage=e=>e.content.find(e=>typeof e.text==`string`)?.text,mcpRequestStepFunction=async({block:e,params:t},n=buildMcpClient)=>{let r=t?.args,i=r?r.filter(t=>!t.condition||N(t.condition,e)===!0).map(e=>({...e,condition:void 0})):void 0,a=t?L({...t,args:i},e):{},o;try{o=st.parse(a)}catch(t){return buildStepErrorOutput(t,e)}let{baseUrl:s,url:c,method:l,toolName:u,timeout:d,authorization:f,args:p}=o,m=`${s??``}${c??``}`;if(!m)return buildStepErrorOutput(Error(`MCP server URL is missing: set the connector baseUrl or the step url parameter`),e);let h=a?.authentication?.[e.context.authenticationType]?.[e.context.environment]?.authorization,g;try{g=W(O(f)?f:$.parse(h??{type:`none`}))}catch(t){return buildStepErrorOutput(t,e)}let _=e.connector?.rateLimit,v=e.connector?.concurrency,y=n({serverUrl:m,headers:g,timeout:d,requestConfig:_!==void 0||v!==void 0?{rateLimits:_,concurrency:v}:void 0,context:buildRequestContext(e)});try{if(l===`tools/list`){let t=await y.listTools();return{block:e,successful:!0,output:{data:t.tools,raw:t,statusCode:200}}}if(!u)return buildStepErrorOutput(Error(`The 'toolName' parameter is required when method is 'tools/call'`),e);let t=await y.callTool({name:u,arguments:buildToolArguments(p)});if(t.isError){let n=extractTextMessage(t)??`MCP tool '${u}' returned an error`;return{block:e,successful:!1,errors:[{message:n,kind:`mcp_tool_error`,toolName:u}],output:{statusCode:502,message:n,data:resolveToolData(t),raw:t}}}return{block:e,successful:!0,output:{data:resolveToolData(t),raw:t,statusCode:200}}}catch(t){return buildStepErrorOutput(t,e)}finally{await y.close().catch(()=>void 0)}},generateSamlAssertion=async({cert:e,key:t,issuer:n,lifetime:r,clientId:i,nameId:a,tokenEndpoint:o,audience:s,nameIdentifierFormat:c,createSamlFn:l=e=>oe.create(e),sleepFn:u=e=>new Promise(t=>setTimeout(t,e))})=>{let d={api_key:i},f={cert:e,key:generatePrivateKey(t),issuer:n,lifetimeInSeconds:r,audiences:s,attributes:d,nameIdentifier:a,nameIdentifierFormat:c,recipient:o,sessionIndex:`_`+se()},p=Buffer.from(l(f)).toString(`base64`);return await u(1e3),p},generatePrivateKey=e=>{let t=Buffer.from(e,`base64`).toString(`utf-8`).split(`###`);if(t.length!==2)throw Error(`Invalid private key`);let n=t[0];return Buffer.from(`-----BEGIN PRIVATE KEY-----
1
+ import{t as e}from"./chunk-BhWHdk3m.mjs";import{decodeFromBase64 as t,encodeToBase64 as n,getContentHash as r,getCountryAlpha2CodeByAlpha2Code as i,getCountryAlpha2CodeByAlpha3Code as a,getCountryAlpha2CodeByCitizenship as o,getCountryAlpha2CodeByCountryCode as s,getCountryAlpha2CodeByCountryName as c,getCountryAlpha3CodeByAlpha2Code as l,getCountryAlpha3CodeByAlpha3Code as u,getCountryAlpha3CodeByCountryCode as d,getCountryAlpha3CodeByCountryName as f,getCountryCodeByAlpha2Code as p,getCountryCodeByAlpha3Code as m,getCountryCodeByCountryCode as h,getCountryCodeByCountryName as g,getCountryNameByAlpha2Code as _,getCountryNameByAlpha3Code as v,getCountryNameByCountryCode as y,getCountryNameByCountryName as b,getCountrySubDivisionCodeBySubDivisionName as x,getCountrySubDivisionNameBySubDivisionCode as S,getCountrySubDivisionsByAlpha2Code as C,getDocumentFileFormatFromExtension as w,isMissing as T,isObject as E,isString as D,notMissing as O,safeParseToBoolean as ee,safeParseToDateTimeString as k,safeParseToNumber as A,safeParseToString as te,z as j,zStrictObject as M}from"@stackone/utils";import{evaluate as N,isExpression as P,isValidExpression as F,safeEvaluate as I,safeEvaluateRecord as L}from"@stackone/expressions";import{CUSTOM_ERROR_CONFIG_SCHEMA as R,HttpMethods as z,HttpResponseError as B,McpClient as V,QueryArrayFormats as H,RequestClientFactory as ne,RequestParameterLocations as U,buildHttpsAgent as re,createAuthorizationHeaders as W,getSigningStrategy as G,isFailedStatusCode as K,parseRequestParameters as q,serializeHttpResponseError as J,translateCustomError as Y}from"@stackone/transport";import{InvokeCommand as X,LambdaClient as ie}from"@aws-sdk/client-lambda";import{Readable as ae}from"node:stream";import Z from"mime-types";import{Saml20 as oe}from"saml";import{v4 as se}from"uuid";import{REDACT_CENSOR as Q}from"@stackone/redaction";import{createHash as ce,createPrivateKey as le,createPublicKey as ue}from"node:crypto";import{SignJWT as de}from"jose";import fe from"form-data";const pe=[`context`,`inputs`,`steps`,`intermediateSteps`,`iterator`,`result`],buildExpressionContext=(e,t={})=>{let n=t.includeCredentials??e.context?.flowType===`refresh_authentication`,r=pe.reduce((t,n)=>(n in e&&(t[n]=e[n]),t),{});return n&&`credentials`in e&&(r.credentials=e.credentials),r},me={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`},iam:{title:`IAM`,key:`iam`,description:`Identity and Access Management`},internal:{title:`Internal`,key:`internal`,description:`Category for internal actions`},action:{title:`Action`,key:`action`,description:`Action`}},getCategoryDetails=e=>me[e.toLowerCase()]??null,isValidCategory=e=>!!me[e.toLowerCase()],he=n(`so1!`),ge=RegExp(`(?<!\\\\):`,`g`),_e=RegExp(`(?<!\\\\),`,`g`),ve=1;var ye=class CoreError extends Error{constructor({category:e,name:t,type:n,context:r,message:i}){super(i),this.name=t??`CoreError`,this.type=n,this.category=e,this.context=r,Error.captureStackTrace&&Error.captureStackTrace(this,CoreError)}toString(){let e=this.message?`: ${this.message}`:``;return`${this.category}-${this.name} [${this.type}]${e}`}},BaseCompositeIdError=class extends ye{constructor(e,t,n){super({category:`CompositeId`,name:t??`BaseCompositeIdError`,type:e,message:n})}},CompositeIdMissingHeaderError=class extends BaseCompositeIdError{constructor(e){super(`COMPOSITE_ID_MISSING_HEADER_ERROR`,`CompositeIdMissingHeaderError`,e??`Invalid compositeId, missing header`)}},CompositeIdMissingBodyError=class extends BaseCompositeIdError{constructor(e){super(`COMPOSITE_ID_MISSING_BODY_ERROR`,`CompositeIdMissingBodyError`,e??`Invalid compositeId, missing body`)}},CompositeIdUnknownIdentifierError=class extends BaseCompositeIdError{constructor(e){super(`COMPOSITE_ID_UNKNOWN_IDENTIFIER_ERROR`,`CompositeIdUnknownIdentifierError`,e??`Invalid compositeId, unknown identifier`)}},CompositeIdUnsupportedVersionError=class extends BaseCompositeIdError{constructor(e){super(`COMPOSITE_ID_UNSUPPORTED_VERSION_ERROR`,`CompositeIdUnsupportedVersionError`,e??`Invalid compositeId, unsupported version`)}};const isSingleIdentifier=e=>!T(e)&&`value`in e&&e.value!==void 0,isMultipleIdentifier=e=>!T(e)&&`identifiers`in e&&e.identifiers!==void 0,encodeCompositeId=(e,t={version:1})=>{if(t.version===1)return encodeIdV1(getComposedIdV1(e,t.aliases));throw new CompositeIdUnsupportedVersionError(`Cannot generate ID, unsupported version number: ${t.version}`)},decodeCompositeId=(e,t={version:1})=>{let n=decodeId(e,t),r={};return n&&n.split(_e).forEach(e=>{let[n,i]=e.split(ge),a=getOriginalKey(n,t.aliases??{});r[a]=unescapeValue(i)}),r},getComposedIdV1=(e,t={})=>{if(isSingleIdentifier(e))return getSingleIdentifierString({identifier:e,compositeIdAliases:t,isSoleIdentifier:!0});if(isMultipleIdentifier(e))return e.identifiers.map(e=>getSingleIdentifierString({identifier:e,compositeIdAliases:t,isSoleIdentifier:!1})).join(`,`);throw new CompositeIdUnknownIdentifierError},getSingleIdentifierString=({identifier:e,compositeIdAliases:t,isSoleIdentifier:n})=>[n?`id`:t[e.key]||e.key,escapeValue(e.value)].filter(Boolean).join(`:`),getOriginalKey=(e,t)=>Object.keys(t).find(n=>t[n]===e)??e,decodeId=(e,t)=>{if(t.version===1)return decodeIdV1(e);throw new CompositeIdUnsupportedVersionError(`Cannot decode ID, unsupported version number: ${t.version}`)},encodeIdV1=e=>`${he}${n(e)}`,decodeIdV1=e=>{if(!e.startsWith(he))throw new CompositeIdMissingHeaderError(`Trying to decode an ID without the header: ${e}`);let n=e.split(he)[1];if(!n)throw new CompositeIdMissingBodyError(`Trying to decode an ID without a body: ${e}`);return t(n)},escapeValue=e=>[`,`,`:`].reduce((e,t)=>e.replace(t,`\\`+t),e),unescapeValue=e=>[`,`,`:`].reduce((e,t)=>{let n=`\\`+t;return e.replace(RegExp(`\\\\`+n,`g`),t)},e),isCompositeId=e=>T(e)?!1:e.startsWith(he),computeDataSyncFingerprint=e=>{let{incremental:t}=e;return r({indexField:Array.isArray(e.indexField)?e.indexField:[e.indexField],incremental:t?{type:t.type,iteratorKey:t.iterator.key,iteratorIn:t.iterator.in,format:`format`in t?t.format:null}:null})},evaluateExternalAccountIdExtractor=(e,t)=>{let n=e.events?.externalAccountIdExtractor;if(T(n)||typeof n.result!=`string`||n.result.trim().length===0)return;let r=I(`{{${n.result.trim()}}}`,t);if(!T(r)){if(typeof r==`string`){let e=r.trim();return e.length>0?e:void 0}if(typeof r==`number`||typeof r==`bigint`||typeof r==`boolean`)return String(r)}},evaluateEventRouter=(e,t)=>{let n=e.events?.router;if(!T(n))for(let e of n.rules){let n=I(`{{${e.when.trim()}}}`,t);if(n!==null&&n!==!1&&n!==void 0){let n=e.then.input?Object.fromEntries(Object.entries(e.then.input).map(([e,n])=>[e,I(`{{${String(n).trim()}}}`,t)])):void 0;return{action:e.then.action,input:n}}}},be={email:/^[^\s@]+@(?=[^\s@]+\.[^\s@])[^\s@]+$/,url:/^https?:\/\/[^\s/?#]+(?:[/?#]\S*)?$/,uri:/^[a-zA-Z][a-zA-Z0-9+.-]*:\S+$/,uuid:/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i,date:/^\d{4}-\d{2}-\d{2}$/,datetime:/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:[Zz]|[+-]\d{2}(?::?\d{2})?)?$/},xe={employment_status:[`active`,`inactive`,`terminated`,`pending`,`leave`],employment_type:[`full_time`,`part_time`,`contractor`,`intern`,`temporary`],gender:[`male`,`female`,`non_binary`,`other`,`prefer_not_to_say`],marital_status:[`single`,`married`,`divorced`,`widowed`,`domestic_partnership`]},getInputEnumValues=e=>xe[e],isValidEnumRef=e=>e in xe,Se=[`preview`,`beta`,`ga`,`deprecated`,`internal`],Ce=[`auth`,`downstream-change`,`bug-fix`,`new-actions`],we=[`list`,`get`,`create`,`update`,`delete`,`custom`,`refresh_token`,`test`,`event`,`unknown`],Te=[`read`,`write`,`delete`,`search`,`execute`],Ee=[`native`,`unified`],De=[`body`,`query`,`path`,`headers`],Oe=[`email`,`url`,`uuid`,`date`,`datetime`,`uri`],ke=[`string`,`number`,`boolean`,`datetime_string`,`object`,`enum`],Ae=[`sync`,`async`],je=M({r:j.record(j.string(),M({n:j.number().optional().nullable(),c:j.string().optional().nullable(),p:j.number().optional().nullable()})),v:j.number(),t:j.number()}),Me=M({remote:j.record(j.string(),M({pageNumber:j.number().optional(),providerPageCursor:j.string().optional(),position:j.number().optional()})),version:j.number(),timestamp:j.number()}),minifyCursor=e=>n(JSON.stringify(minifyCursorObject(e))),minifyCursorObject=e=>{let{remote:t,version:n,timestamp:r}=e;return{r:Object.fromEntries(Object.entries(t).map(([e,{pageNumber:t,providerPageCursor:n,position:r}])=>[e,{n:t,c:n,p:r}])),v:n,t:r}},expandCursor=e=>{try{if(D(e)){let n=t(e),r=JSON.parse(n);return expandCursorObject(je.parse(r))}else return Me.parse(e),e}catch{return null}},expandCursorObject=e=>{let{r:t,v:n,t:r}=e;return{remote:Object.fromEntries(Object.entries(t).map(([e,{n:t,c:n,p:r}])=>[e,{pageNumber:t,providerPageCursor:n,position:r}])),version:n,timestamp:r}},areCursorsEqual=(e,t)=>{let n=typeof e==`string`?expandCursor(e):e,i=typeof t==`string`?expandCursor(t):t;if(n===null||i===null)return n===i;let{timestamp:a,...o}=n,{timestamp:s,...c}=i;return r(o)===r(c)},isCursorEmpty=({cursor:e,ignoreStepIndex:t})=>T(e)?!0:Object.keys(e?.remote??{}).reduce((n,r)=>{let i=e?.remote?.[r];return(T(t)||r!==t.toString())&&(n=n&&T(i.pageNumber)&&T(i.position)&&T(i.providerPageCursor)),n},!0),updateCursor=({cursor:e,stepIndex:t,pageNumber:n,providerPageCursor:r,position:i})=>{let a={pageNumber:n??void 0,providerPageCursor:r??void 0,position:i??void 0},o=T(n)&&T(r)&&T(i);return T(e)?{remote:o?{}:{[t]:a},version:2,timestamp:Date.now()}:o?(delete e.remote[t],e):{...e,remote:{...e.remote,[t]:a}}},isCoreError=e=>e instanceof ye;function stripPaginationParams(e,t){let n=getPaginationKeys(t);if(n.length===0)return e;let r=getIteratorLocation(t);if(!r)return e;let i=e[r];if(!i||typeof i!=`object`)return e;let a={...i};for(let e of n)delete a[e];return{...e,[r]:a}}function getPaginationKeys(e){switch(e.type){case`cursor`:return[e.iterator.key];case`offset`:{let t=e;return[t.iterator.offsetKey,t.iterator.limitKey]}case`page`:{let t=e,n=[t.iterator.pageKey];return t.iterator.pageSizeKey&&n.push(t.iterator.pageSizeKey),n}default:return[]}}function getIteratorLocation(e){if(`iterator`in e&&typeof e.iterator==`object`&&e.iterator!==null)return e.iterator.in}function stripIncrementalParams(e,t){if(!t)return e;let{key:n,in:r}=t.iterator,i=e[r];if(!i||typeof i!=`object`)return e;let a={...i};return delete a[n],{...e,[r]:a}}const Ne={RequestTester:`REQUEST_TESTER`,ActionTester:`ACTION_TESTER`,Discode:`DISCODE`,Dashboard:`DASHBOARD`,Playground:`PLAYGROUND`,SDK:`SDK`,API:`API`,Scheduler:`SCHEDULER`,Webhook:`WEBHOOK`,Agent:`AGENT`,MCP:`MCP`,Application:`APPLICATION`,DataSync:`DATA_SYNC`,DataSyncV2:`DATA_SYNC_V2`,Internal:`INTERNAL`,ConnectionTest:`CONNECTION_TEST`},Pe={HTTP:`HTTP`,MCP:`MCP`,ActionRPC:`ACTION_RPC`,WebSocket:`WEBSOCKET`},Fe={HTTP:`HTTP`,WebSocket:`WEBSOCKET`,SSE:`SSE`},Ie={APIKey:`API_KEY`,SessionToken:`SESSION_TOKEN`,UserSession:`USER_SESSION`,Cookie:`COOKIE`,Webhook:`WEBHOOK`,Signature:`SIGNATURE`},browserUseStepFunction=async()=>{throw Error(`browser_use step function cannot be executed synchronously — actions using this step must have executionMode: "async" so they are dispatched to the Temporal workflow runtime`)},Le=j.object({startUrl:j.string().url(),systemPrompt:j.string().optional(),viewport:M({width:j.number().int().positive(),height:j.number().int().positive()}).optional(),locale:j.string().optional(),budgets:M({maxDurationMs:j.number().int().positive(),maxSteps:j.number().int().positive()}),auth:M({sensitiveKeys:j.array(j.string().min(1)).optional(),requiresSession:j.boolean().optional(),allowedDomains:j.array(j.string().min(1)).optional()}).optional()}),Re=j.unknown(),sanitizeRaw=e=>{let t={};return e.status!=null&&(t.status=e.status),e.data!==void 0&&(t.data=e.data),e.headers!=null&&(t.headers=e.headers),e.requestUrl!=null&&(t.requestUrl=e.requestUrl),e.message!=null&&(t.message=e.message),t},isSerializedBuffer=e=>typeof e==`object`&&!!e&&e.type===`Buffer`&&Array.isArray(e.data),decodeBinaryBody=e=>{let t;if(Buffer.isBuffer(e)?t=e.toString(`utf8`):e instanceof ArrayBuffer?t=new TextDecoder().decode(new Uint8Array(e)):ArrayBuffer.isView(e)?t=new TextDecoder().decode(new Uint8Array(e.buffer,e.byteOffset,e.byteLength)):isSerializedBuffer(e)&&(t=Buffer.from(e.data).toString(`utf8`)),t===void 0)return e;try{return JSON.parse(t)}catch{return t}},decodeResponseBody=e=>({...e,data:decodeBinaryBody(e.data)}),isHttpLikeError=e=>typeof e==`object`&&!!e&&`response`in e&&e.response!=null&&typeof e.response==`object`,extractTopLevelMessage=e=>{if(typeof e.message==`string`&&e.message.trim().length>0)return e.message},extractNestedErrorMessage=e=>{if(e.error!=null&&typeof e.error==`object`&&!Array.isArray(e.error)&&typeof e.error.message==`string`)return e.error.message;if(typeof e.error==`string`&&e.error.length>0)return e.error;if(typeof e.error_description==`string`&&e.error_description.length>0)return e.error_description},extractErrorMessage=(e,t)=>{let n=e.data;if(typeof n==`object`&&n&&!Array.isArray(n)){let e=extractTopLevelMessage(n);if(e!=null)return e}if(typeof e.message==`string`&&e.message.length>0)return e.message;if(typeof n==`object`&&n&&!Array.isArray(n)){let e=extractNestedErrorMessage(n);if(e!=null)return e}if(Array.isArray(n)&&n.length>0){let e=n[0];if(typeof e==`object`&&e&&!Array.isArray(e)){let t=e,n=extractTopLevelMessage(t)??extractNestedErrorMessage(t);if(n!=null)return n}}return typeof n==`string`&&n.length>0?n:t},buildStepErrorOutput=(e,t)=>{if(e instanceof B){let n=e.message,r=decodeResponseBody(e.response);return{block:t,successful:!1,errors:[J(e)],output:{statusCode:r?.status??500,message:extractErrorMessage(r,n),data:r?.data,raw:sanitizeRaw(r)}}}if(isHttpLikeError(e)){let n=decodeResponseBody(e.response),r=e instanceof Error?e.message:`HTTP error: ${n.status??500}`;return{block:t,successful:!1,errors:[J(e)],output:{statusCode:n.status??500,message:extractErrorMessage(n,r),data:n.data,raw:sanitizeRaw(n)}}}return e instanceof Error?{block:t,successful:!1,errors:[J(e)],output:{statusCode:500,message:e.message}}:{block:t,successful:!1,errors:[J(e)],output:{statusCode:500,message:String(e)}}},isAwsCredentials=e=>!!e&&typeof e.accessKeyId==`string`&&typeof e.secretAccessKey==`string`,buildLambdaClientConfig=({region:e,endpoint:t,credentials:n})=>({region:e,...t?{endpoint:t}:{},...isAwsCredentials(n)?{credentials:{accessKeyId:n.accessKeyId,secretAccessKey:n.secretAccessKey,sessionToken:typeof n.sessionToken==`string`?n.sessionToken:void 0}}:t?{credentials:{accessKeyId:`local`,secretAccessKey:`local`}}:{}}),defaultClientFactory=e=>new ie(e),invokeLambda=async({lambdaName:e,payload:t,region:n,endpoint:r,invocationType:i=`RequestResponse`,qualifier:a,credentials:o,clientFactory:s=defaultClientFactory})=>{let c=s(buildLambdaClientConfig({region:n,endpoint:r,credentials:o})),l=new X({FunctionName:e,InvocationType:i,Qualifier:a,Payload:t?Buffer.from(JSON.stringify(t)):void 0}),u=await c.send(l),d=u.Payload?Buffer.from(u.Payload).toString(`utf-8`):``,f;if(d.length===0)f=void 0;else try{f=JSON.parse(d)}catch{f=d}return{statusCode:u.StatusCode??200,payload:f,functionError:u.FunctionError,executedVersion:u.ExecutedVersion}},ze=M({lambdaName:j.string(),region:j.string().optional(),endpoint:j.string().optional(),invocationType:j.enum([`RequestResponse`,`Event`,`DryRun`]).optional(),qualifier:j.string().optional(),args:M({name:j.string(),value:j.unknown(),condition:j.string().optional()}).array().optional().describe(`Key/value pairs combined into the JSON payload sent to the Lambda function`),dataKey:j.string().optional()}),Be=M({data:j.unknown().optional(),raw:j.unknown().optional(),statusCode:j.number(),message:j.string().optional(),executedVersion:j.string().optional()}).optional(),Ve=/\${[^}]+}/,isJsonPathLike=e=>{let t=e.trimStart();return t.startsWith(`$.`)||t.startsWith(`$[`)},hasExpressionMarker=e=>P(e)||Ve.test(e)||isJsonPathLike(e),buildDataKeyExpression=e=>P(e)||e.trimStart().startsWith(`$`)?e:`$.${e}`,He=e((e,t)=>{if(T(e)||typeof e!=`object`||!e)return e;try{let n=N(buildDataKeyExpression(t),e);if(n!==void 0)return n}catch{}return e[t]},`resolveDataKey`),buildPayloadFromArgs=e=>{if(!(!e||e.length===0))return e.reduce((e,t)=>(e[t.name]=t.value,e),{})},codeExecutionLambdaStepFunction=async({block:e,params:t},n=invokeLambda)=>{let r=t?.args,i=Array.isArray(r)?r:void 0,isPlainObject=e=>typeof e==`object`&&!!e,a=i?i.filter(t=>{if(!isPlainObject(t))return!0;let n=t.condition;return typeof n!=`string`||I(n,e)===!0}).map(e=>isPlainObject(e)?{...e,condition:void 0}:e):void 0,o=t?.dataKey,s=typeof o==`string`&&!Ve.test(o),c=t?.qualifier,l=typeof c==`string`&&!hasExpressionMarker(c),u={...t?L(i===void 0?t:{...t,args:a},e):{},...s?{dataKey:o}:{},...l?{qualifier:c}:{}},d;try{d=ze.parse(u)}catch(t){return buildStepErrorOutput(t,e)}let{lambdaName:f,region:p,endpoint:m,invocationType:h,qualifier:g,args:_,dataKey:v}=d,y;try{y=await n({lambdaName:f,payload:buildPayloadFromArgs(_),region:p,endpoint:m,invocationType:h,qualifier:g,credentials:e.credentials})}catch(t){return buildStepErrorOutput(t,e)}if(y.functionError){let t=typeof y.payload==`object`&&y.payload!==null&&`errorMessage`in y.payload&&typeof y.payload.errorMessage==`string`?y.payload.errorMessage:`Lambda function error: ${y.functionError}`;return{block:e,successful:!1,errors:[{message:t,kind:`lambda_function_error`,functionError:y.functionError}],output:{statusCode:y.statusCode,message:t,data:y.payload,raw:y}}}return{block:e,successful:!0,output:{data:v?He(y.payload,v):y.payload,raw:y,statusCode:y.statusCode,executedVersion:y.executedVersion}}},buildRequestContext=e=>({accountSecureId:e.context.accountSecureId,projectSecureId:e.context.projectSecureId,organizationId:e.context.organizationId,environment:e.context.environment,authConfigKey:e.context.authenticationType,provider:e.connector?.key,service:e.context.category,resource:e.connector?.key,action:e.action?.id}),Ue=M({strategy:j.literal(`aws4`),service:j.string(),region:j.string().optional()}),We=M({strategy:j.literal(`hmac`),algorithm:j.enum([`sha1`,`sha256`,`sha512`]).optional(),headerName:j.string().optional(),prefix:j.string().optional(),dateFormat:j.enum([`iso8601`,`rfc2822`]).optional(),includeHost:j.boolean().optional(),includeBodyHash:j.boolean().optional(),outputFormat:j.enum([`header`,`basic`]).optional(),username:j.string().optional()}),Ge=j.discriminatedUnion(`strategy`,[Ue,We]),Ke=M({type:j.literal(`none`),signing:Ge.optional(),redirectUri:j.string().optional()}),qe=M({type:j.literal(`basic`),username:j.string().optional(),password:j.string().optional(),encoding:j.string().optional(),redirectUri:j.string().optional()}),Je=M({type:j.literal(`bearer`),token:j.string(),includeBearer:j.boolean().optional().default(!0),redirectUri:j.string().optional()}),Ye=new Set([`accessToken`,`refreshToken`,`idToken`,`clientId`,`clientSecret`,`authentication_config_key`,`environment`]),Xe=M({type:j.literal(`oauth2`),authorizationUrl:j.string().optional(),redirectUri:j.string().optional(),authorizationParams:j.record(j.string(),j.string()).optional(),tokenUrl:j.string().optional(),tokenParams:j.record(j.string(),j.string()).optional(),tokenExpiresIn:j.number().optional(),tokenRefreshExpiresIn:j.number().optional(),token:j.string(),includeBearer:j.boolean().optional().default(!0),scopes:j.string().optional(),scopeDelimiter:j.string().optional(),customHeaders:j.record(j.string(),j.string()).optional(),pkce:j.boolean().optional(),additionalTokenFields:j.record(j.string(),j.string().optional()).optional(),callbackParams:j.record(j.string(),j.string().min(1)).superRefine((e,t)=>{for(let[n,r]of Object.entries(e))Ye.has(r)&&t.addIssue({code:j.ZodIssueCode.custom,path:[n],message:`callbackParams must not target reserved credential key "${r}"`})}).optional(),issuer:j.string().optional(),tokenResponse:M({acceptTokenTypes:j.array(j.string()).optional(),accessToken:j.string().min(1).optional(),refreshToken:j.string().min(1).optional()}).optional()}),$=j.discriminatedUnion(`type`,[Ke,qe,Je,Xe]),Ze=M({certs:j.string().array().optional(),keys:j.string().array().optional()}).optional(),Qe=j.object({baseUrl:j.string().optional(),url:j.string(),method:j.enum(z).optional().default(`get`),authorization:$.optional(),responseMode:j.enum([`buffer`,`stream`]).optional().default(`buffer`),responseType:j.enum([`arraybuffer`,`blob`,`text`,`json`]).optional().default(`arraybuffer`),encoding:j.enum([`base64`,`utf8`,`binary`,`raw`,`none`]).optional().default(`base64`),response:M({dataKey:j.string().optional(),fileNameKey:j.string().optional(),contentTypeKey:j.string().optional(),contentType:j.string().optional(),contentIsBase64:j.boolean().optional().default(!1),urlKey:j.string().optional(),forwardAuth:j.boolean().optional().default(!1)}).optional(),maxRedirects:j.number().optional().default(5),followRedirects:j.boolean().optional().default(!0),customErrors:R.array().optional(),args:M({name:j.string(),value:j.unknown(),in:j.enum(U),spread:j.boolean().optional(),condition:j.string().optional(),arrayFormat:j.enum(H).optional()}).array().optional()}),$e=M({data:j.union([j.string(),j.instanceof(Buffer)]).optional(),raw:j.unknown().optional(),statusCode:j.number(),message:j.string().optional(),headers:j.record(j.string(),j.union([j.string(),j.array(j.string())])).optional(),contentDisposition:j.string().optional(),fileMetadata:M({contentType:j.string().optional(),contentLength:j.number().optional(),fileName:j.string().optional(),lastModified:j.string().optional(),etag:j.string().optional()}).optional(),finalUrl:j.string().optional()}).optional(),downloadFileStepFunction=async({block:e,params:t})=>{if(!e.httpClient)throw Error(`HTTP client is not configured`);let{args:n}=t,r=n?n.filter(t=>!t.condition||N(t.condition,e)===!0).map(e=>({...e,condition:void 0})):void 0,i=t?L({...t,args:r},e):{},a={...i,customErrors:t?.customErrors},{baseUrl:o,url:s,method:c,authorization:l,args:u,responseMode:d,responseType:f,encoding:p,response:m,maxRedirects:h,followRedirects:g}=Qe.parse(a),_=i?.authentication?.[e.context.authenticationType]?.[e.context.environment]?.authorization,v=u?q(u):{query:{},body:{},headers:{}},y=typeof v?.body==`string`?void 0:v?.body,b=W(O(l)?l:$.parse(_)),x={...v?.headers??{},...b},S=e.connector?.rateLimit,C=e.connector?.concurrency,w=S!==void 0||C!==void 0?{rateLimits:S,concurrency:C}:void 0,T=buildRequestContext(e);if(d===`stream`)return performStreamDownload({block:e,httpClient:e.httpClient,baseUrl:o??``,url:s,method:c,headers:x,queryParams:v?.query,body:y,maxRedirects:g?h:0,requestConfig:w,context:T,response:m,responseType:f,authHeaders:b});try{return{block:e,successful:!0,output:await performDownload({httpClient:e.httpClient,baseUrl:o??``,url:s,method:c,headers:x,queryParams:v?.query,body:y,responseType:f,encoding:p,response:m,maxRedirects:g?h:0,requestConfig:w,context:T,authHeaders:b})}}catch(t){return buildStepErrorOutput(t,e)}},performStreamDownload=async e=>{let{block:t,httpClient:n,baseUrl:r,url:i,method:a,headers:o,queryParams:s,body:c,maxRedirects:l,requestConfig:u,context:d,response:f,responseType:p,authHeaders:m}=e,h=`${r}${i}`;if(!h.startsWith(`http://`)&&!h.startsWith(`https://`))throw Error(`Invalid URL: "${h}". URL must be absolute (start with http:// or https://). Either provide a baseUrl or ensure url is a complete URL.`);if(O(f?.dataKey)||O(f?.urlKey))try{let e=await performDownload({httpClient:n,baseUrl:r,url:i,method:a,headers:o,queryParams:s,body:c,responseType:p??`arraybuffer`,encoding:`none`,response:f,maxRedirects:l,requestConfig:u,context:d,authHeaders:m??{}}),h=Buffer.isBuffer(e.data)?e.data:Buffer.from(e.data),g={...e.fileMetadata,contentLength:h.length};return{block:t,successful:!0,streamOutput:{stream:ae.from(h),headers:O(g.contentType)?{"content-type":g.contentType}:{},contentDisposition:e.contentDisposition,fileMetadata:g}}}catch(e){return buildStepErrorOutput(e,t)}if(!n.requestStream)throw Error(`HTTP client does not support streaming. Either implement requestStream method or use responseMode: "buffer".`);try{let e=await n.requestStream({url:h,method:a,headers:o,queryParams:s,payload:c,maxRedirects:l,requestConfig:u,context:d}),r=extractFileMetadata(e.headers),i=buildContentDisposition(r);return{block:t,successful:!0,streamOutput:{stream:e.stream,headers:e.headers,contentDisposition:i,fileMetadata:r}}}catch(e){return buildStepErrorOutput(e,t)}},performDownload=async e=>{let{httpClient:t,baseUrl:n,url:r,method:i,headers:a,queryParams:o,body:s,responseType:c,encoding:l,response:u,maxRedirects:d,requestConfig:f,context:p,authHeaders:m}=e,h=`${n}${r}`;if(!h.startsWith(`http://`)&&!h.startsWith(`https://`))throw Error(`Invalid URL: "${h}". URL must be absolute (start with http:// or https://). Either provide a baseUrl or ensure url is a complete URL.`);let g=u?.urlKey||u?.dataKey?`json`:c,_=await t.request({url:h,method:i,headers:a,queryParams:o,payload:s,responseType:g===`json`?void 0:g,maxRedirects:d,requestConfig:f,context:p});if(u?.urlKey||u?.dataKey)return handleJsonResponse({httpClient:t,result:_,response:u,encoding:l,maxRedirects:d,requestConfig:f,context:p,authHeaders:m});let v=encodeFileData(_.data,l),y=extractFileMetadata(_.headers),b=buildContentDisposition(y);return{data:v,raw:_,statusCode:_?.status,message:_?.message,headers:_.headers,contentDisposition:b,fileMetadata:y,finalUrl:_?.requestUrl}},handleJsonResponse=async e=>{let{httpClient:t,result:n,response:r,encoding:i,maxRedirects:a,requestConfig:o,context:s,authHeaders:c}=e,l=n.data;if(r.urlKey){let e=extractValueByPath(l,r.urlKey);if(typeof e==`string`){let n=await t.request({url:e,method:`get`,headers:r.forwardAuth?c:{},responseType:`arraybuffer`,maxRedirects:a,requestConfig:o,context:s}),u=encodeFileData(n.data,i),d=extractFileMetadata(n.headers);if(r.fileNameKey){let e=extractValueByPath(l,r.fileNameKey);typeof e==`string`&&(d.fileName=e)}if(r.contentTypeKey){let e=extractValueByPath(l,r.contentTypeKey);typeof e==`string`&&(d.contentType=e)}T(d.contentType)&&O(r.contentType)&&(d.contentType=r.contentType);let f=buildContentDisposition(d);return{data:u,raw:n,statusCode:n?.status,message:n?.message,headers:n.headers,contentDisposition:f,fileMetadata:d,finalUrl:e}}}if(r.dataKey){let e=extractValueByPath(l,r.dataKey);if(T(e))throw Error(`No file content found at path: ${r.dataKey}`);let t;if(typeof e==`string`)t=r.contentIsBase64?i===`base64`?e:i===`none`?Buffer.from(e,`base64`):Buffer.from(e,`base64`).toString(i===`raw`?`binary`:i):encodeFileData(e,i);else if(e instanceof ArrayBuffer||ArrayBuffer.isView(e))t=encodeFileData(e,i);else throw Error(`Unexpected file content type at path: ${r.dataKey}`);let a={};if(r.fileNameKey){let e=extractValueByPath(l,r.fileNameKey);typeof e==`string`&&(a.fileName=e)}if(r.contentTypeKey){let e=extractValueByPath(l,r.contentTypeKey);typeof e==`string`&&(a.contentType=e)}T(a.contentType)&&O(r.contentType)&&(a.contentType=r.contentType);let o=buildContentDisposition(a);return{data:t,raw:n,statusCode:n?.status,message:n?.message,headers:n.headers,contentDisposition:o,fileMetadata:a}}throw Error(`JSON response handling requires either urlKey or dataKey to be specified`)},extractValueByPath=(e,t)=>{let n=(t.startsWith(`$.`)?t.slice(2):t).split(`.`),r=e;for(let e of n){if(T(r)||typeof r!=`object`)return;r=r[e]}return r},encodeFileData=(e,t)=>{if(t===`none`)return e instanceof ArrayBuffer||ArrayBuffer.isView(e)||typeof e==`string`?Buffer.from(e):Buffer.from(JSON.stringify(e));if(t===`raw`)return typeof e==`string`?e:e instanceof ArrayBuffer||ArrayBuffer.isView(e)?Buffer.from(e).toString(`binary`):JSON.stringify(e);if(typeof e==`string`)return t===`base64`?Buffer.from(e).toString(`base64`):e;if(e instanceof ArrayBuffer||ArrayBuffer.isView(e)){let n=Buffer.from(e);switch(t){case`base64`:return n.toString(`base64`);case`utf8`:return n.toString(`utf8`);default:return n.toString(`binary`)}}return JSON.stringify(e)},extractFileMetadata=e=>{let t=D(e[`content-type`])?e[`content-type`]:void 0,n=D(e[`content-length`])?e[`content-length`]:void 0,r=D(e[`content-disposition`])?e[`content-disposition`]:void 0,i=D(e[`last-modified`])?e[`last-modified`]:void 0,a=D(e.etag)?e.etag:void 0,o=n?parseInt(n,10):void 0,s=extractFileName(r);return{contentType:t,contentLength:Number.isNaN(o)?void 0:o,fileName:s,lastModified:i,etag:a}},extractFileName=e=>{if(!e)return;let t=e.match(/filename\*=(?:UTF-8''|utf-8'')([^;\s]+)/i);if(t&&t[1])try{return decodeURIComponent(t[1])}catch{}let n=e.match(/filename=["']([^"']+)["']/);if(n&&n[1])return n[1];let r=e.match(/filename=([^;\s]+)/);if(r&&r[1])return r[1]},buildContentDisposition=e=>{let{fileName:t,contentType:n}=e,r=`attachment`;if(t)r=`attachment; filename="${t}"; filename*=UTF-8''${encodeURIComponent(t).replace(/['()]/g,escape)}`;else if(n){let e=getExtensionFromContentType(n);e&&(r=`attachment; filename="download.${e}"`)}return r},getExtensionFromContentType=e=>{let t=e.split(`;`)[0].trim().toLowerCase();return Z.extension(t)||void 0},et=j.object({event:j.object({eventType:j.string(),eventId:j.coerce.string().optional(),eventDate:j.coerce.string().optional(),data:j.unknown().optional()}).optional()}),tt=j.record(j.string(),j.unknown()),emitEventStepFunction=async({block:e,params:t})=>{let n=t?L(t,e):{},{event:r}=et.parse(n);if(r&&e.emitEvent)try{await e.emitEvent({eventType:r.eventType,eventId:r.eventId,eventDate:r.eventDate,data:r.data})}catch(t){throw e.logger?.error({code:`EmitEventError`,message:`emitEvent callback failed: ${t.message}`}),t}else r&&!e.emitEvent&&e.logger?.warning({message:`emit_event step executed but no emitEvent callback provided on the block`});let{event:i,...a}=n;return{block:{...e},successful:!0,output:a}},nt=j.object({stepsDataToGroup:j.array(j.string()),isSingleRecord:j.boolean().optional()}),rt=j.object({data:j.unknown()}),groupDataStepFunction=async({block:e,params:t})=>{let{stepsDataToGroup:n,isSingleRecord:r}=nt.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]={...O(t[e])?t[e]:{},[n]:{...i[e]}}}),t):t},{});return{block:{...e},successful:!0,output:{data:r?i:Object.values(i)}}},it=e(async({block:e})=>{let t=e?.fieldConfigs,n=[],r=e.steps;if(!t||e?.debug?.custom_mappings===`disabled`||!r)return{block:e,successful:!0};let i=buildExpressionContext(e),a;if(Array.isArray(e.result)){let o=e.result.length;a=e.result.map((e,a)=>{let s=at(e,t,extractSingleRecordBlockStepData(r,o,a),i);return n.push(...s.errors||[]),s.record})}else{let o=at(e.result,t,r,i);a=o.record,n.push(...o.errors||[])}return{block:{...e,result:a},successful:!0,errors:Object.keys(n).length>0?n:void 0}},`mapFieldsStepFunction`),extractSingleRecordBlockStepData=(e,t,n)=>Object.entries(e).reduce((e,[r,i])=>{let a=i?.output?.data;return Array.isArray(a)&&a.length===t?e[r]={output:{data:a[n]}}:e[r]=i,e},{}),at=e((e,t,n,r)=>{if(!e||!n)return{record:e};let i={...r,unified:{...e},...typeof n==`object`?n:{}},a={},o=[],s={...e};for(let n of t){let{error:t,value:r}=ot(i,e.id,n);if(t){o.push(t);continue}n.custom?a[n.targetFieldKey]=r:s[n.targetFieldKey]=r}return{record:{...s,unified_custom_fields:Object.keys(a).length>0?a:void 0},errors:o.length>0?o:void 0}},`mapSingleRecord`),ot=e((e,t,n)=>{let{expression:r,targetFieldKey:i}=n;if(!r)return{error:{message:`Expression is empty`,id:t,targetField:i}};let a;try{a=N(r,e)}catch{return{error:{message:`Invalid expression`,id:t,targetField:i}}}return a===void 0?{error:{message:`Expression returned no value`,id:t,targetField:i}}:{value:a}},`extractFieldValue`),getEnumMatcher=e=>{switch(e){case`country_alpha2code_by_alpha2code`:return i;case`country_alpha3code_by_alpha3code`:return u;case`country_code_by_country_code`:return h;case`country_name_by_country_name`:return b;case`country_name_by_alpha3code`:return v;case`country_name_by_alpha2code`:return _;case`country_name_by_country_code`:return y;case`country_alpha3code_by_alpha2code`:return l;case`country_alpha3code_by_country_name`:return f;case`country_alpha3code_by_country_code`:return d;case`country_alpha2code_by_alpha3code`:return a;case`country_alpha2code_by_country_name`:return c;case`country_alpha2code_by_country_code`:return s;case`country_code_by_alpha2code`:return p;case`country_code_by_alpha3code`:return m;case`country_code_by_country_name`:return g;case`country_subdivisions_by_alpha2code`:return C;case`country_subdivision_code_by_subdivision_name`:return x;case`country_alpha2code_by_citizenship`:return o;case`country_subdivision_name_by_subdivision_code`:return S;case`document_file_format_from_extension`:return w;default:return}},st=M({targetFieldKey:j.string(),alias:j.string().optional(),expression:j.string().optional(),values:j.unknown().optional(),type:j.enum([`string`,`number`,`boolean`,`datetime_string`,`enum`,`object`]),array:j.boolean().default(!1),custom:j.boolean().default(!1),hidden:j.boolean().default(!1),enumMapper:M({matcher:j.string().or(M({matchExpression:j.string(),value:j.string()}).array())}).optional(),properties:j.lazy(()=>st).array().optional(),requiredScopes:j.string().array().optional()}),ct=j.object({fields:st.array(),dataSource:j.string(),externalSources:j.record(j.string(),j.string()).optional()}),lt=j.object({data:j.unknown()}),mergeSourceWithState=(e,t)=>E(e)?{...t,...e}:e,mapFieldsStepFunction=async({block:e,params:t})=>{let n=[],{fields:r,dataSource:i,externalSources:a}=ct.parse(t),o=buildExpressionContext(e,{includeCredentials:!0}),s=N(i,o);if(!r||!i||e?.debug?.custom_mappings===`disabled`||!s)return{block:e,successful:!0};let c=Object.keys(a??{})?.reduce((e,t)=>(e[t]=N(a?.[t],o),e),{}),l;if(Array.isArray(s))l=s.map(e=>{let t=dt(r,{...e,external:c},o);return n.push(...t?.errors||[]),t?.record});else{let e=dt(r,{...s,external:c},o);l=e?.record,n.push(...e?.errors||[])}return{block:{...e},successful:!0,output:{data:l},errors:Object.keys(n).length>0?n:void 0}},handleObjectArrayFromValues=(e,t,n,r)=>{if(Array.isArray(e.values))return e.values.map(i=>{let a=evaluateExpressionsInObject(i,t),o=dt(e.properties,a,r);return O(o?.errors)&&n.push(...o.errors),o?.record}).filter(Boolean)},handleObjectArrayFromExpression=(e,t,n,r,i)=>{if(e.expression)try{let t=N(e.expression,n);if(Array.isArray(t))return t.map(t=>{let n=dt(e.properties,t,i);return O(n?.errors)&&r.push(...n.errors),n?.record}).filter(Boolean);{let n=dt(e.properties,t,i);return O(n?.errors)&&r.push(...n.errors),n?.record}}catch{r.push({message:`Invalid expression`,id:t?.id,targetField:e.targetFieldKey});return}},handleSingleObject=(e,t,n,r)=>{let i=O(e.values)?e.values:t,a=dt(e.properties,i,r);return O(a?.errors)&&n.push(...a.errors),a?.record},ut=e((e,t,n,r,i)=>{if(!T(e.properties))return e.array&&Array.isArray(e.values)?handleObjectArrayFromValues(e,n,r,i):e.array&&e.expression?handleObjectArrayFromExpression(e,t,n,r,i):handleSingleObject(e,t,r,i)},`handleObjectField`),dt=e((e,t,n)=>{if(!t)return;let r=mergeSourceWithState(t,n),i={},a=[],o={};for(let s of e){let e;if(s.type===`object`){if(e=ut(s,t,r,a,n),e===void 0)continue}else{let{error:n,value:i}=extractFieldValue(r,t?.id,s);if(e=i,n){a.push(n);continue}}s.custom?i[s.targetFieldKey]=e:o[s.targetFieldKey]=e}let s=Object.keys(i).length>0?{unified_custom_fields:i}:{};return{record:{...o,...s},errors:a.length>0?a:void 0}},`mapSingleRecord`),evaluateExpressionsInObject=(e,t)=>{if(e==null)return e;if(typeof e==`string`){if(F(e))try{return N(e,t)}catch{return e}return e}if(Array.isArray(e))return e.map(e=>evaluateExpressionsInObject(e,t));if(typeof e==`object`){let n={...e};for(let[e,r]of Object.entries(n))n[e]=evaluateExpressionsInObject(r,t);return n}return e},extractFieldValue=(e,t,n)=>{switch(n.type){case`string`:case`number`:case`boolean`:case`datetime_string`:return ft(n,t,e);case`enum`:return evaluateEnumValue(n,t,e);default:return{error:{message:`Invalid type`,id:t,targetField:n.targetFieldKey}}}},ft=e((e,t,n)=>{if(!e.expression)return{error:{message:`Expression is empty`,id:t,targetField:e.targetFieldKey}};let r;try{r=N(e.expression,n)}catch{return{error:{message:`Invalid expression`,id:t,targetField:e.targetFieldKey}}}return r===void 0?{error:{message:`Expression returned no value`,id:t,targetField:e.targetFieldKey}}:{value:r}},`evaluateValue`),evaluateEnumValue=(e,t,n)=>{let r=ft(e,t,n),i=O(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(D(a)){let n=getEnumMatcher(a);return O(n)?{value:{value:(O(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(N(t,n)===!0)return{value:{value:r,source_value:i}}}return{value:{value:`unmapped_value`,source_value:i}}},pt=j.object({baseUrl:j.string().optional(),url:j.string().optional(),method:j.enum([`tools/call`,`tools/list`]).default(`tools/call`),toolName:j.string().optional(),timeout:j.number().int().positive().optional(),authorization:$.optional(),args:M({name:j.string(),value:j.unknown(),condition:j.string().optional()}).array().optional()}).refine(e=>e.method!==`tools/call`||!!e.toolName,{message:`The 'toolName' parameter is required when method is 'tools/call'`,path:[`toolName`]}),mt=M({data:j.unknown().optional(),raw:j.unknown().optional(),statusCode:j.number(),message:j.string().optional()}).optional(),buildMcpClient=e=>new V(e),buildToolArguments=e=>(e??[]).reduce((e,t)=>(e[t.name]=t.value,e),{}),parseJsonText=e=>{try{return JSON.parse(e)}catch{return e}},resolveToolData=e=>{if(O(e.structuredContent))return e.structuredContent;let[t,...n]=e.content;return n.length===0&&t?.type===`text`&&typeof t.text==`string`?parseJsonText(t.text):e.content},extractTextMessage=e=>e.content.find(e=>typeof e.text==`string`)?.text,mcpRequestStepFunction=async({block:e,params:t},n=buildMcpClient)=>{let r=t?.args,i=r?r.filter(t=>!t.condition||N(t.condition,e)===!0).map(e=>({...e,condition:void 0})):void 0,a=t?L({...t,args:i},e):{},o;try{o=pt.parse(a)}catch(t){return buildStepErrorOutput(t,e)}let{baseUrl:s,url:c,method:l,toolName:u,timeout:d,authorization:f,args:p}=o,m=`${s??``}${c??``}`;if(!m)return buildStepErrorOutput(Error(`MCP server URL is missing: set the connector baseUrl or the step url parameter`),e);let h=a?.authentication?.[e.context.authenticationType]?.[e.context.environment]?.authorization,g;try{g=W(O(f)?f:$.parse(h??{type:`none`}))}catch(t){return buildStepErrorOutput(t,e)}let _=e.connector?.rateLimit,v=e.connector?.concurrency,y=n({serverUrl:m,headers:g,timeout:d,requestConfig:_!==void 0||v!==void 0?{rateLimits:_,concurrency:v}:void 0,context:buildRequestContext(e)});try{if(l===`tools/list`){let t=await y.listTools();return{block:e,successful:!0,output:{data:t.tools,raw:t,statusCode:200}}}if(!u)return buildStepErrorOutput(Error(`The 'toolName' parameter is required when method is 'tools/call'`),e);let t=await y.callTool({name:u,arguments:buildToolArguments(p)});if(t.isError){let n=extractTextMessage(t)??`MCP tool '${u}' returned an error`;return{block:e,successful:!1,errors:[{message:n,kind:`mcp_tool_error`,toolName:u}],output:{statusCode:502,message:n,data:resolveToolData(t),raw:t}}}return{block:e,successful:!0,output:{data:resolveToolData(t),raw:t,statusCode:200}}}catch(t){return buildStepErrorOutput(t,e)}finally{await y.close().catch(()=>void 0)}},generateSamlAssertion=async({cert:e,key:t,issuer:n,lifetime:r,clientId:i,nameId:a,tokenEndpoint:o,audience:s,nameIdentifierFormat:c,createSamlFn:l=e=>oe.create(e),sleepFn:u=e=>new Promise(t=>setTimeout(t,e))})=>{let d={api_key:i},f={cert:e,key:generatePrivateKey(t),issuer:n,lifetimeInSeconds:r,audiences:s,attributes:d,nameIdentifier:a,nameIdentifierFormat:c,recipient:o,sessionIndex:`_`+se()},p=Buffer.from(l(f)).toString(`base64`);return await u(1e3),p},generatePrivateKey=e=>{let t=Buffer.from(e,`base64`).toString(`utf-8`).split(`###`);if(t.length!==2)throw Error(`Invalid private key`);let n=t[0];return Buffer.from(`-----BEGIN PRIVATE KEY-----
2
2
  ${n}
3
- -----END PRIVATE KEY-----`)},lt=e(e=>{let t=e.trim();return t.startsWith(`{{`)&&t.endsWith(`}}`)},`isJexlExpression`),ut=e((e,t)=>{if(T(e)||typeof e!=`object`||!e)return e;let n=I(lt(t)?t:`$.${t}`,e);return n===void 0?e[t]:n},`resolveDataKey`),resolveFromHeaders=(e,t)=>{if(T(e)||typeof e!=`object`)return null;if(lt(t)){let n=I(t,e);return typeof n==`string`&&n!==``||typeof n==`number`?n:null}let n=t.toLowerCase(),[,r]=Object.entries(e).find(([e])=>e?.toLowerCase()===n)??[];if(Array.isArray(r)){let e=r.find(e=>typeof e==`string`&&e!==``||typeof e==`number`);return typeof e==`string`||typeof e==`number`?e:null}return typeof r==`string`&&r!==``||typeof r==`number`?r:null},resolveFromData=(e,t)=>{if(T(e)||typeof e!=`object`||!e)return null;let n=I(lt(t)?t:`$.${t}`,e);return T(n)?null:typeof n==`string`||typeof n==`number`||typeof n==`object`?n:null},preserveJexlResponseKeys=(e,t)=>{let{nextKey:n,dataKey:r}=e?.response??{},i=n&&lt(n),a=r&&lt(r);return!i&&!a?t:{...t??{},...i?{nextKey:n}:{},...a?{dataKey:r}:{}}},dt=j.object({baseUrl:j.string(),url:j.string(),method:j.enum(z),authorization:$.optional(),saml:M({objectKey:j.string(),key:j.string(),clientId:j.string(),cert:j.unknown().optional(),issuer:j.string().optional(),lifetime:j.number().optional(),nameId:j.string().optional(),audience:j.string().optional(),nameIdentifierFormat:j.string().optional(),tokenEndpoint:j.string().optional()}).optional(),response:M({indexField:j.string().optional(),dataKey:j.string().optional(),nextKey:j.string().optional(),nextKeyIn:j.enum([`data`,`headers`]).optional()}).optional(),iterator:M({key:j.string(),in:j.enum([`query`,`body`]),condition:j.string().optional(),mode:j.enum([`cursor`,`offset`,`page`]).optional(),startPage:j.number().int().min(0).max(2**53-1).optional(),maxPage:j.number().int().positive().max(1e4).optional()}).superRefine((e,t)=>{e.startPage!==void 0&&e.mode!==`page`&&t.addIssue({code:j.ZodIssueCode.custom,path:[`startPage`],message:`startPage is only valid when iterator.mode is "page"`}),e.maxPage!==void 0&&e.mode!==`page`&&t.addIssue({code:j.ZodIssueCode.custom,path:[`maxPage`],message:`maxPage is only valid when iterator.mode is "page"`});let n=e.maxPage??1e3;e.mode===`page`&&(e.startPage??1)>n&&t.addIssue({code:j.ZodIssueCode.custom,path:[`startPage`],message:`startPage must not exceed maxPage (${n})`})}),cursor:M({token:j.string().optional().nullable(),position:j.number().optional().nullable()}).optional(),customErrors:R.array().optional(),encodeQueryParams:j.boolean().optional(),cacheTTL:j.number().int().nonnegative().optional(),args:M({name:j.string(),value:j.unknown(),in:j.enum(U),spread:j.boolean().optional(),condition:j.string().optional(),arrayFormat:j.enum(H).optional()}).array().optional()}),ft=M({data:j.unknown().optional(),raw:j.unknown().optional(),statusCode:j.number(),message:j.string().optional(),next:j.string().optional().nullable(),position:j.number().optional()}).optional(),paginatedRequestStepFunction=async({block:e,params:t})=>{let n=ne.build();if(!e.httpClient)throw Error(`HTTP client is not configured`);let{args:i}=t,a=Number(e.inputs?.page_size),o=Number.isNaN(a)?25:a,s=i?i.filter(t=>!t.condition||N(t.condition,e)===!0).map(e=>({...e,condition:void 0})):void 0,c=t?L({...t,args:s},e):{},l={...c,customErrors:t?.customErrors,iterator:{...c?.iterator??{},condition:t?.iterator?.condition},response:preserveJexlResponseKeys(t,c?.response)},u=l.authorization;if(O(u)){let t=$.safeParse(u);if(!t.success)return buildStepErrorOutput(Error(invalidStepAuthorizationMessage(t.error)),e)}let{baseUrl:d,url:f,method:p,response:m,authorization:h,iterator:g,cursor:_,customErrors:v,encodeQueryParams:y,args:b,saml:x,cacheTTL:S}=dt.parse(l),C=c?.authentication?.[e.context.authenticationType]?.[e.context.environment],w=C?.authorization,D=C?.certificates,ee=D?re(D):void 0,k=O(h)?h:$.parse(w);if(k.type===`none`&&O(k.signing))return buildStepErrorOutput(Error(`authorization.signing is not supported on paginated_request steps — every page changes the query string, so the signature would have to be recomputed per page; use a request step instead`),e);let A=b?q(b):{query:{},body:{},headers:{}},te=W(k),j={...A?.headers??{},...te},M=e.connector?.rateLimit,P=e.connector?.concurrency,F=M!==void 0||P!==void 0?{rateLimits:M,concurrency:P}:void 0,R=buildRequestContext(e),z=O(x)?{[x.objectKey]:await generateSamlAssertion({key:x.key,clientId:x.clientId,cert:x.cert,issuer:x.issuer,lifetime:x.lifetime,audience:x.audience,nameId:x.nameId,nameIdentifierFormat:x.nameIdentifierFormat,tokenEndpoint:x.tokenEndpoint})}:{},B=g.mode===`offset`,V=g.mode===`page`,H=g.maxPage??1e3,U=H+1,G=V?resolveInitialPage(_?.token,g.startPage??1):_?.token??null,K=null,J=null,Y=[],X=[],ie=[],ae=o,Z=_?.position??0,oe=!0,se=!0,Q=!0,ce=null;do{if(V&&Number(G)>U)return buildStepErrorOutput(maxPageExceededError(H,G),e);oe?oe=!1:B||(Z=0),G===null?B&&(g.in===`query`?A.query[g.key]=Z.toString():g.in===`body`&&(Array.isArray(A.body)||(A.body[g.key]=Z))):g.in===`query`?E(G)?Object.entries(G).forEach(([e,t])=>{A.query[`${g.key}[${e}]`]=t?.toString()??``}):A.query[g.key]=G.toString():g.in===`body`&&(Array.isArray(A.body)||(A.body[g.key]=G));let t;try{t=await n.performRequest({httpClient:e.httpClient,url:`${d}${f}`,queryParams:{...A?.query},encodeQueryParams:y,method:p,headers:{...j},body:Array.isArray(A?.body)?A.body:{...typeof A?.body==`string`?void 0:A?.body,...z},customErrorConfigs:v,requestConfig:F,httpsAgent:ee,credentials:e.credentials,context:R,cacheTTL:S})}catch(t){return buildStepErrorOutput(t,e)}if(K=G,X=m?.dataKey?ut(t.data,m.dataKey):t.data,!Array.isArray(X)){let n=V?` at page ${K}`:``,r=m?.dataKey?` at "${m.dataKey}"`:``,i=X===null?`null`:typeof X;e.logger?.warning({message:`Pagination stopped${n}: expected an array of records${r} but received ${i}; treating it as an empty page`}),ie.push(t),J=t?.status,se=!0;break}if(V){let t=r(X);if(t===ce){e.logger?.warning({message:`Pagination stopped at page ${K}: the provider returned the previous page again, so the page number is not advancing`}),se=!0;break}ce=t}if(V&&Number(K)>H&&X.length>0)return buildStepErrorOutput(maxPageExceededError(H,K),e);let i=B?X?.slice(0,ae):X?.slice(Z,Z+ae);ae-=i.length,Z+=i.length,ie.push(t),Y=Y.concat(i),J=t?.status,G=V?incrementPage(Number(K)):pt({result:t,response:m}),Q=O(g.condition)?I(g.condition,t.data)===!0:!0;let a=Z>=(X?.length??0),s=O(m?.nextKey),c=i.length===X.length&&ae===0;!B&&(s||V)&&a&&(Z=0,K=G),se=B?!Q||T(G)&&Y.length<o:V?a&&(!Q||Y.length<o):s?a&&(T(G)||!Q):!Q||T(G)&&Y.length<o||c}while((B||O(G))&&Q&&Y.length<o&&X?.length>0);let le=mt(Y,m),ue=se?void 0:K;return{block:e,successful:!0,output:{data:le,raw:ie,statusCode:J,next:V&&typeof ue==`number`?ue.toString():ue,position:se?void 0:Z}}},resolveInitialPage=(e,t)=>{let n=Number(e);return Number.isSafeInteger(n)&&n>=t?n:t},incrementPage=e=>e+1,maxPageExceededError=(e,t)=>Error(`Pagination exceeded iterator.maxPage (${e}) at page ${t}`),invalidStepAuthorizationMessage=e=>`step authorization is invalid, check its credential expressions resolve for this account: ${e.issues.map(e=>e.message).join(`; `)}`,pt=e(({result:e,response:t})=>{if(T(t?.nextKey))return null;let n=t?.nextKeyIn??`data`,r=t?.nextKey;return n===`headers`?resolveFromHeaders(e.headers,r):resolveFromData(e.data,r)},`resolveNextIterator`),mt=e((e,t)=>{if(t?.indexField&&Array.isArray(e))return e.reduce((e,n)=>{let r=t.indexField;return r&&n[r]&&(e[n[r]]=n),e},{});if(t?.indexField){let n=t.indexField;return n&&e[n]?{[e[n]]:e}:e}return e},`indexResponseData`),ht=j.object({baseUrl:j.string().optional(),url:j.string(),method:j.enum(z),authorization:$.optional(),certificates:Ge,saml:M({objectKey:j.string(),key:j.string(),clientId:j.string(),cert:j.unknown().optional(),issuer:j.string().optional(),lifetime:j.number().optional(),nameId:j.string().optional(),audience:j.string().optional(),nameIdentifierFormat:j.string().optional(),tokenEndpoint:j.string().optional()}).optional(),response:M({collection:j.boolean().optional(),indexField:j.string().optional(),dataKey:j.string().optional()}).optional(),customErrors:R.array().optional(),encodeQueryParams:j.boolean().optional(),cacheTTL:j.number().int().nonnegative().optional(),args:M({name:j.string(),value:j.unknown(),in:j.enum(U),spread:j.boolean().optional(),inline:j.boolean().optional(),condition:j.string().optional(),arrayFormat:j.enum(H).optional()}).array().optional()}).superRefine((e,t)=>{let n=e.args??[],r=n.map((e,t)=>({arg:e,index:t})).filter(({arg:e})=>e.inline===!0),i=n.filter(e=>e.in===`body`).length;if(n.forEach((e,n)=>{e.inline===!0&&e.in!==`body`&&t.addIssue({code:j.ZodIssueCode.custom,path:[`args`,n,`inline`],message:`args.${e.name}: inline is only valid when in is "body", got "${e.in}"`}),e.inline===!0&&e.spread&&t.addIssue({code:j.ZodIssueCode.custom,path:[`args`,n,`inline`],message:`args.${e.name}: inline cannot be combined with spread`})}),r.length>0&&i>1)for(let{arg:e,index:n}of r)t.addIssue({code:j.ZodIssueCode.custom,path:[`args`,n,`inline`],message:`args.${e.name}: an inline body arg must be the only "in: body" arg, found ${i}; arg conditions are not considered`});if(r.length>0&&e.saml!==void 0)for(let{arg:e,index:n}of r)t.addIssue({code:j.ZodIssueCode.custom,path:[`args`,n,`inline`],message:`args.${e.name}: inline cannot be combined with the saml parameter`});if(r.length>0&&e.cacheTTL!==void 0&&e.cacheTTL>0)for(let{arg:e,index:n}of r)t.addIssue({code:j.ZodIssueCode.custom,path:[`args`,n,`inline`],message:`args.${e.name}: inline cannot be combined with a nonzero cacheTTL`});for(let{arg:e,index:n}of r)typeof e.value==`string`?e.value.length===0&&t.addIssue({code:j.ZodIssueCode.custom,path:[`args`,n,`value`],message:`args.${e.name}: inline value must be a non-empty string, got an empty string`}):t.addIssue({code:j.ZodIssueCode.custom,path:[`args`,n,`value`],message:`args.${e.name}: inline value must be a non-empty string, got ${typeof e.value}`})}),gt=M({data:j.unknown().optional(),raw:j.unknown().optional(),statusCode:j.number(),message:j.string().optional()}).optional(),isJexlExpression=e=>{let t=e.trim();return t.startsWith(`{{`)&&t.endsWith(`}}`)},isErrorWithResponseBody=e=>typeof e==`object`&&!!e&&`response`in e&&e.response!=null&&typeof e.response==`object`&&`body`in e.response,isErrorWithResponseConfigData=e=>typeof e==`object`&&!!e&&`response`in e&&e.response!=null&&typeof e.response==`object`&&`config`in e.response&&e.response.config!=null&&typeof e.response.config==`object`&&`data`in e.response.config,requestStepFunction=async({block:e,params:t})=>{let n=ne.build();if(!e.httpClient)throw Error(`HTTP client is not configured`);let{args:r}=t,i=r?r.filter(t=>!t.condition||N(t.condition,e)===!0).map(e=>({...e,condition:void 0})):void 0,a=t?.response?.dataKey,o=a&&isJexlExpression(a),s=t?L({...t,args:i},e):{},c={...s,customErrors:t?.customErrors,response:o?{...s?.response??{},dataKey:a}:s?.response},{baseUrl:l,url:u,method:d,response:f,authorization:p,certificates:m,customErrors:h,encodeQueryParams:g,args:_,saml:v,cacheTTL:y}=ht.parse(c),b=s?.authentication?.[e.context.authenticationType]?.[e.context.environment],x=b?.authorization,S=m??b?.certificates,C=S?re(S):void 0,w=_?q(_):{query:{},body:{},headers:{}},T=_?.some(e=>e.in===`body`&&e.inline===!0)??!1,E=O(p)?p:$.parse(x),D=W(E),ee={...w?.headers??{},...D},k=e.connector?.rateLimit,A=e.connector?.concurrency,te=k!==void 0||A!==void 0?{rateLimits:k,concurrency:A}:void 0,j=O(v)?{[v.objectKey]:await generateSamlAssertion({key:v.key,clientId:v.clientId,cert:v.cert,issuer:v.issuer,lifetime:v.lifetime,audience:v.audience,nameId:v.nameId,nameIdentifierFormat:v.nameIdentifierFormat,tokenEndpoint:v.tokenEndpoint})}:{},M=typeof w?.body==`string`||Array.isArray(w?.body)?w?.body:{...w?.body,...j};if(E.type===`none`&&E.signing?.strategy){if(g===!1)return buildStepErrorOutput(Error(`encodeQueryParams: false is not supported when a request signing strategy is configured — signed canonical would not match the wire query`),e);let t=E.signing,n=e.credentials??{};try{let e=G(t.strategy);if(!e)throw Error(`Signing strategy "${t.strategy}" is not registered`);let r=e({method:d,url:`${l}${u}`,headers:ee,query:w?.query??{},body:M},n,t);Object.assign(ee,r)}catch(t){return buildStepErrorOutput(t,e)}}let P;try{P=await n.performRequest({httpClient:e.httpClient,url:`${l}${u}`,queryParams:w?.query,encodeQueryParams:g,method:d,headers:ee,body:M,customErrorConfigs:h,requestConfig:te,httpsAgent:C,credentials:e.credentials,context:buildRequestContext(e),cacheTTL:y})}catch(t){return T&&(isErrorWithResponseBody(t)&&(t.response.body=Q),isErrorWithResponseConfigData(t)&&(t.response.config.data=Q)),buildStepErrorOutput(t,e)}return{block:e,successful:!0,output:{data:_t(f?.dataKey?resolveDataKey(P.data,f.dataKey):P.data,f),raw:T&&P&&`body`in P?{...P,body:Q}:P,statusCode:P?.status,message:P?.message}}},resolveDataKey=(e,t)=>{if(T(e)||typeof e!=`object`||!e)return e;let n=I(isJexlExpression(t)?t:`$.${t}`,e);return n===void 0?e[t]:n},_t=e((e,t)=>{if(t?.collection&&t?.indexField&&Array.isArray(e))return e.reduce((e,n)=>{let r=t.indexField;return r&&n[r]&&(e[n[r]]=n),e},{});if(!t?.collection&&t?.indexField){let n=t.indexField;return n&&e[n]?{[e[n]]:e}:e}return e},`indexResponseData`),vt=j.union([j.string(),j.number()]),yt=M({algorithm:j.literal(`RS256`),privateKey:j.string(),claims:j.record(j.string(),vt)}),bt=M({token:j.string(),expiresIn:j.number(),publicKeyFingerprint:j.string()}),computePublicKeyFingerprint=e=>{let t=e.export({format:`der`,type:`spki`});return`SHA256:${ce(`sha256`).update(t).digest(`base64`)}`},xt=/^now$/,St=/^now\+(?<amount>\d+)(?<unit>[smh])$/,Ct=`{publicKeyFingerprint}`,wt={s:1,m:60,h:3600},Tt=new Set([`iat`,`exp`,`nbf`]),resolveClaimValue=(e,t,{now:n,publicKeyFingerprint:r})=>{if(typeof t==`number`)return t;let i=t.includes(Ct)?t.split(Ct).join(r):t;if(!Tt.has(e))return i;if(xt.test(i))return n;let a=i.match(St);return a?.groups?n+Number(a.groups.amount)*wt[a.groups.unit]:i},signJwtStepFunction=async({block:e,params:t})=>{try{let n=t?L(t,e):void 0,{algorithm:r,privateKey:i,claims:a}=yt.parse(n),o=le(i),s=computePublicKeyFingerprint(ue(o)),c=Math.floor(Date.now()/1e3),l={};for(let[e,t]of Object.entries(a))l[e]=resolveClaimValue(e,t,{now:c,publicKeyFingerprint:s});let{iat:u,exp:d}=l;if(typeof u!=`number`||typeof d!=`number`)throw Error(`signJwt requires numeric 'iat' and 'exp' claims (use 'now' / 'now+<N>s|m|h' tokens, or pass numbers directly)`);if(d<=u)throw Error(`signJwt requires 'exp' to be greater than 'iat'`);let f=await new de(l).setProtectedHeader({alg:r}).sign(o);return{block:{...e},successful:!0,output:{token:f,expiresIn:d-u,publicKeyFingerprint:s}}}catch(t){return buildStepErrorOutput(t,e)}},Et=j.object({baseUrl:j.string().optional(),url:j.string(),method:j.enum(z),authorization:j.discriminatedUnion(`type`,[M({type:j.literal(`none`)}),M({type:j.literal(`basic`),username:j.string().optional(),password:j.string().optional(),encoding:j.string().optional()}),M({type:j.literal(`bearer`),token:j.string(),includeBearer:j.boolean().optional().default(!0)}),M({type:j.literal(`oauth2`),token:j.string(),includeBearer:j.boolean().optional().default(!0)})]).optional(),envelope:j.union([j.string(),j.record(j.string(),j.unknown())]).optional(),namespaces:j.strictObject({namespaceIdentifier:j.string(),namespace:j.string()}).array().optional(),soapOperation:j.string().optional(),soapAction:j.string().optional(),useSoapContext:j.boolean().optional().default(!0),response:M({collection:j.boolean().optional(),indexField:j.string().optional(),dataKey:j.string().optional(),nextKey:j.string().optional(),nextKeyIn:j.enum([`data`,`headers`]).optional()}).optional(),iterator:M({key:j.string(),in:j.enum([`query`,`body`])}),cursor:M({token:j.string().optional().nullable(),position:j.number().optional().nullable()}).optional(),customErrors:R.array().optional(),encodeQueryParams:j.boolean().optional(),args:M({name:j.string(),value:j.unknown(),in:j.enum(U),condition:j.string().optional(),arrayFormat:j.enum(H).optional()}).array().optional()}),Dt=M({data:j.unknown().optional(),raw:j.unknown().optional(),statusCode:j.number(),message:j.string().optional(),next:j.string().optional().nullable(),position:j.number().optional()}).optional(),soapPaginatedRequestStepFunction=async({block:e,params:t})=>{let n=ne.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||N(t.condition,e)===!0).map(e=>({...e,condition:void 0})):void 0,s=t?L({...t,args:o},e):{},c={...s,customErrors:t?.customErrors,response:preserveJexlResponseKeys(t,s?.response)},l=t?.envelope,{baseUrl:u,url:d,method:f,response:p,iterator:m,cursor:h,authorization:g,customErrors:_,encodeQueryParams:v,args:y,soapOperation:b,namespaces:x,soapAction:S,useSoapContext:C}=Et.parse(c),w=s?.authentication?.[e.context.authenticationType]?.[e.context.environment]?.authorization,E=y?q(y):{query:{},body:{},headers:{}},D=W(O(g)?g:$.parse(w)),ee={...E?.headers??{},...D},k=e.connector?.rateLimit,A=e.connector?.concurrency,te={...k!==void 0||A!==void 0?{rateLimits:k,concurrency:A}:void 0,soapOperation:b,namespaces:x,soapAction:S,soapContext:C?{username:e.credentials?.username,password:e.credentials?.password}:void 0},j=h?.token??null,M=null,P=null,F=[],I=[],R=[],z=a,B=h?.position??0,V=!0,H;do{V?V=!1:B=0,j!==null&&(m.in===`query`?E.query[m.key]=j.toString():m.in===`body`&&(E.body[m.key]=j));let t;try{t=await n.performRequest({httpClient:e.httpClient,url:`${u}${d}`,queryParams:{...E?.query},encodeQueryParams:v,method:f,headers:ee,body:E?.body,customErrorConfigs:_,requestConfig:{...te,...O(l)&&{envelope:evaluateEnvelope(l,e,j)}},credentials:e.credentials,context:buildRequestContext(e)})}catch(t){return buildStepErrorOutput(t,e)}M=j,I=p?.dataKey?ut(t.data,p.dataKey):t.data,Array.isArray(I)||(I=I?[I]:[]);let r=I?.slice(B,B+z);z-=r.length,B+=r.length,R.push(t),F=F.concat(r),P=t?.status,j=resolveNextIterator({result:t,response:p});let i=B>=(I?.length??0),o=O(p?.nextKey),s=r.length===I.length&&z===0;o&&i&&(B=0,M=j),H=o?i&&T(j):T(j)&&F.length<a||s}while(O(j)&&F.length<a&&I?.length>0);return{block:e,successful:!0,output:{data:Ot(F,p),raw:R,statusCode:P,next:H?void 0:stringifyCursorToken(M),position:H?void 0:B}}},stringifyCursorToken=e=>e===null?null:String(e),evaluateEnvelope=(e,t,n)=>{let r={...t,pageIterator:n};return typeof e==`string`?I(e,r):L(e,r)},resolveNextIterator=({result:e,response:t})=>{if(T(t?.nextKey))return null;let n=t?.nextKeyIn??`data`,r=t?.nextKey,i=n===`headers`?resolveFromHeaders(e.headers,r):resolveFromData(e.data,r);return typeof i==`string`||typeof i==`number`?i:null},Ot=e((e,t)=>{if(t?.indexField&&Array.isArray(e))return e.reduce((e,n)=>{let r=t.indexField;return r&&n[r]&&(e[n[r]]=n),e},{});if(t?.indexField){let n=t.indexField;return n&&e[n]?{[e[n]]:e}:e}return e},`indexResponseData`),kt=j.object({baseUrl:j.string().optional(),url:j.string(),method:j.enum(z),authorization:$.optional(),envelope:j.union([j.string(),j.record(j.string(),j.unknown())]).optional(),namespaces:j.strictObject({namespaceIdentifier:j.string(),namespace:j.string()}).array().optional(),soapOperation:j.string().optional(),soapAction:j.string().optional(),useSoapContext:j.boolean().optional().default(!0),response:M({collection:j.boolean().optional(),indexField:j.string().optional(),dataKey:j.string().optional()}).optional(),customErrors:R.array().optional(),encodeQueryParams:j.boolean().optional(),args:M({name:j.string(),value:j.unknown(),in:j.enum(U),condition:j.string().optional(),arrayFormat:j.enum(H).optional()}).array().optional()}),At=M({data:j.unknown().optional(),raw:j.unknown().optional(),statusCode:j.number(),message:j.string().optional()}).optional(),soapRequestStepFunction=async({block:e,params:t})=>{let n=ne.build(`soap`);if(!e.httpClient)throw Error(`HTTP client is not configured`);let{args:r}=t,i=r?r.filter(t=>!t.condition||N(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,encodeQueryParams:p,args:m,soapOperation:h,namespaces:g,envelope:_,soapAction:v,useSoapContext:y}=kt.parse(o),b=a?.authentication?.[e.context.authenticationType]?.[e.context.environment]?.authorization,x=m?q(m):{query:{},body:{},headers:{}},S=W(O(d)?d:$.parse(b)),C={...x?.headers??{},...S},w=e.connector?.rateLimit,T=e.connector?.concurrency,E={...w!==void 0||T!==void 0?{rateLimits:w,concurrency:T}:void 0,soapOperation:h,namespaces:g,envelope:_,soapAction:v,soapContext:y?{username:e.credentials?.username,password:e.credentials?.password}:void 0},D;try{D=await n.performRequest({httpClient:e.httpClient,url:`${s}${c}`,queryParams:x?.query,encodeQueryParams:p,method:l,headers:C,body:x?.body,customErrorConfigs:f,requestConfig:E,credentials:e.credentials,context:buildRequestContext(e)})}catch(t){return buildStepErrorOutput(t,e)}return{block:e,successful:!0,output:{data:jt(u?.dataKey?D.data[u?.dataKey]:D.data,u),raw:D,statusCode:D?.status,message:D?.message}}},jt=e((e,t)=>{if(t?.collection&&t?.indexField&&Array.isArray(e))return e.reduce((e,n)=>{let r=t.indexField;return r&&n[r]&&(e[n[r]]=n),e},{});if(!t?.collection&&t?.indexField){let n=t.indexField;return n&&e[n]?{[e[n]]:e}:e}return e},`indexResponseData`),Mt=j.object({values:j.string().or(j.record(j.string(),j.unknown())).or(j.array(j.unknown()))}),Nt=j.object({data:j.unknown()}),staticValuesStepFunction=async({block:e,params:t})=>{let{values:n}=Mt.parse(t),r=Array.isArray(n)?n.map(t=>evaluateValue(t,e)):evaluateValue(n,e);return{block:{...e},successful:!0,output:{data:r}}},evaluateValue=(e,t)=>D(e)?I(e,t):E(e)?L(e,t):e,Pt=j.object({targetFieldKey:j.string(),type:j.enum([`string`,`number`,`boolean`,`datetime_string`,`enum`,`object`]),array:j.boolean().default(!1),custom:j.boolean().default(!1),hidden:j.boolean().default(!1),properties:j.lazy(()=>Pt).array().optional(),requiredScopes:j.string().array().optional()}),Ft=j.object({fields:Pt.array().optional(),dataSource:j.string()}),It=j.object({data:j.unknown()});let Lt=function(e){return e.String=`string`,e.Number=`number`,e.Boolean=`boolean`,e.DateTimeString=`datetime_string`,e}({});const typecast=({value:e,type:t,format:n})=>{if(T(e))return null;switch(t){case`string`:return te({value:e});case`number`:return A({value:e});case`boolean`:return ee({value:e});case`datetime_string`:return k({value:e,format:n});default:return e}},isFieldSupportedType=e=>Object.values(Lt).includes(e),Rt=e(async({block:e})=>{let t=e?.fieldConfigs;if(!t||e?.debug?.custom_mappings===`disabled`)return{block:e,successful:!0};let n;return n=Array.isArray(e.result)?e.result.map(e=>zt(e,t)):zt(e.result,t),{block:{...e,result:n},successful:!0}},`typecastStepFunction`),zt=e((e,t)=>{let n={...e};return t.forEach(t=>{let{targetFieldKey:r,type:i}=t;isFieldSupportedType(i)&&(!t.custom&&O(n[r])?n[r]=typecast({value:e[r],type:i}):n.unified_custom_fields&&O(n.unified_custom_fields?.[r])&&(n.unified_custom_fields[r]=typecast({value:e.unified_custom_fields?.[r],type:i})))}),{...n}},`mapSingleRecord`),typecastStepFunction=async({block:e,params:t})=>{let{fields:n,dataSource:r}=Ft.parse(t),i=N(r,buildExpressionContext(e));if(!n||e?.debug?.custom_mappings===`disabled`)return{block:e,successful:!0};let a;return a=Array.isArray(i)?i.map(e=>mapSingleRecord(e,n)):mapSingleRecord(i,n),{block:{...e},successful:!0,output:{data:a}}},handleObjectField=(e,t)=>!e.properties||!t?t:Array.isArray(t)?t.map(t=>typeof t==`object`&&t?mapSingleRecord(t,e.properties):t):typeof t==`object`&&t?mapSingleRecord(t,e.properties):t,mapSingleRecord=(e,t)=>{let n={...e};return t.forEach(t=>{let{targetFieldKey:r,type:i,array:a}=t;i===`object`?!t.custom&&O(n[r])?n[r]=handleObjectField(t,e[r]):n.unified_custom_fields&&O(n.unified_custom_fields?.[r])&&(n.unified_custom_fields[r]=handleObjectField(t,e.unified_custom_fields?.[r])):isFieldSupportedType(i)&&(!t.custom&&O(n[r])?(!a||!Array.isArray(n[r]))&&(n[r]=typecast({value:e[r],type:i})):n.unified_custom_fields&&O(n.unified_custom_fields?.[r])&&(!a||!Array.isArray(n.unified_custom_fields[r]))&&(n.unified_custom_fields[r]=typecast({value:e.unified_custom_fields?.[r],type:i})))}),{...n}},Bt=M({content:j.string().describe(`The file content as base64 encoded string`),contentType:j.string().optional().describe(`The MIME type for the binary content (defaults to application/octet-stream)`)}),Vt=j.object({baseUrl:j.string().optional(),url:j.string(),method:j.enum(z).default(`post`),authorization:$.optional(),binaryContent:Bt.describe(`Raw binary content for octet-stream uploads`),response:M({collection:j.boolean().optional(),indexField:j.string().optional(),dataKey:j.string().optional()}).optional(),customErrors:R.array().optional(),args:M({name:j.string(),value:j.unknown(),in:j.enum(U),spread:j.boolean().optional(),condition:j.string().optional(),arrayFormat:j.enum(H).optional()}).array().optional().describe(`Additional request parameters (query params, headers)`)}),Ht=M({data:j.unknown().optional(),raw:j.unknown().optional(),statusCode:j.number(),message:j.string().optional()}).optional(),uploadBinaryStepFunction=async({block:e,params:t})=>{if(!e.httpClient)throw Error(`HTTP client is not configured`);let{args:n}=t,r=n?n.filter(t=>!t.condition||N(t.condition,e)===!0).map(e=>({...e,condition:void 0})):void 0,i=t?L({...t,args:r},e):{},a={...i,customErrors:t?.customErrors},{baseUrl:o,url:s,method:c,response:l,authorization:u,binaryContent:d,args:f,customErrors:p}=Vt.parse(a),m=i?.authentication?.[e.context.authenticationType]?.[e.context.environment]?.authorization,h=f?q(f):{query:{},body:{},headers:{}},g=W(O(u)?u:$.parse(m)),_=Buffer.from(d.content,`base64`),v={"content-type":d.contentType??`application/octet-stream`,...h?.headers??{},...g},y=e.connector?.rateLimit,b=e.connector?.concurrency,x=y!==void 0||b!==void 0?{rateLimits:y,concurrency:b}:void 0,S;try{S=await e.httpClient.request({url:`${o??``}${s}`,method:c,headers:v,queryParams:h?.query,payload:_,requestConfig:x,context:buildRequestContext(e)})}catch(t){let n=t;return{block:e,successful:!1,errors:[J(t)],output:{statusCode:n?.response?.status??500,message:n?.response?.message}}}let C=Y(S,p,e.credentials);return K(C?.status)?{block:e,successful:!1,errors:[J(new B(C,C.message))],output:{statusCode:C.status,message:C.message}}:{block:e,successful:!0,output:{data:Ut(l?.dataKey?C.data[l?.dataKey]:C.data,l),raw:C,statusCode:C?.status,message:C?.message}}},Ut=e((e,t)=>{if(t?.collection&&t?.indexField&&Array.isArray(e))return e.reduce((e,n)=>{let r=t.indexField;return r&&n[r]&&(e[n[r]]=n),e},{});if(!t?.collection&&t?.indexField){let n=t.indexField;return n&&e[n]?{[e[n]]:e}:e}return e},`indexResponseData`),Wt=M({fieldName:j.string().describe(`The form field name for the file`),content:j.string().describe(`The file content as base64 encoded string`),filename:j.string().describe(`The filename to use in the upload`),contentType:j.string().optional().describe(`The MIME type of the file (e.g., "image/png", "application/pdf")`)}),Gt=j.object({baseUrl:j.string().optional(),url:j.string(),method:j.enum(z).default(`post`),authorization:$.optional(),file:Wt.describe(`The file to upload`),additionalFields:M({name:j.string(),value:j.unknown(),condition:j.string().optional(),contentType:j.string().optional().describe(`The MIME type for this form field (e.g., "application/json")`)}).array().optional().describe(`Additional form fields to include in the multipart request`),response:M({collection:j.boolean().optional(),indexField:j.string().optional(),dataKey:j.string().optional()}).optional(),customErrors:R.array().optional(),args:M({name:j.string(),value:j.unknown(),in:j.enum(U),spread:j.boolean().optional(),condition:j.string().optional(),arrayFormat:j.enum(H).optional()}).array().optional().describe(`Additional request parameters (query params, headers)`)}),Kt=M({data:j.unknown().optional(),raw:j.unknown().optional(),statusCode:j.number(),message:j.string().optional()}).optional(),uploadFileStepFunction=async({block:e,params:t})=>{if(!e.httpClient)throw Error(`HTTP client is not configured`);let{args:n,additionalFields:r}=t,i=n?n.filter(t=>!t.condition||N(t.condition,e)===!0).map(e=>({...e,condition:void 0})):void 0,a=r?r.filter(t=>!t.condition||N(t.condition,e)===!0).map(e=>({...e,condition:void 0})):void 0,o=t?L({...t,args:i,additionalFields:a},e):{},s={...o,customErrors:t?.customErrors},{baseUrl:c,url:l,method:u,response:d,authorization:f,file:p,additionalFields:m,args:h,customErrors:g}=Gt.parse(s),_=o?.authentication?.[e.context.authenticationType]?.[e.context.environment]?.authorization,v=h?q(h):{query:{},body:{},headers:{}},y=W(O(f)?f:$.parse(_)),b=new fe;if(m)for(let e of m){let t=typeof e.value==`object`?JSON.stringify(e.value):String(e.value);b.append(e.name,t,e.contentType?{contentType:e.contentType}:void 0)}let x=Buffer.from(p.content,`base64`);b.append(p.fieldName,x,{filename:p.filename,contentType:p.contentType});let S={...b.getHeaders(),...v?.headers??{},...y},C=e.connector?.rateLimit,w=e.connector?.concurrency,T=C!==void 0||w!==void 0?{rateLimits:C,concurrency:w}:void 0,E;try{E=await e.httpClient.request({url:`${c??``}${l}`,method:u,headers:S,queryParams:v?.query,payload:b,requestConfig:T,context:buildRequestContext(e)})}catch(t){return buildStepErrorOutput(t,e)}let D=Y(E,g,e.credentials);return K(D?.status)?buildStepErrorOutput(new B(D,D.message),e):{block:e,successful:!0,output:{data:indexResponseData(d?.dataKey?D.data[d?.dataKey]:D.data,d),raw:D,statusCode:D?.status,message:D?.message}}},indexResponseData=(e,t)=>{if(t?.collection&&t?.indexField&&Array.isArray(e))return e.reduce((e,n)=>{let r=t.indexField;return r&&n[r]&&(e[n[r]]=n),e},{});if(!t?.collection&&t?.indexField){let n=t.indexField;return n&&e[n]?{[e[n]]:e}:e}return e};let qt=function(e){return e.TYPECAST=`typecast`,e.MAP_FIELDS=`map_fields`,e.GROUP_DATA=`group_data`,e.REQUEST=`request`,e.PAGINATED_REQUEST=`paginated_request`,e.SOAP_REQUEST=`soap_request`,e.SOAP_PAGINATED_REQUEST=`soap_paginated_request`,e.STATIC_VALUES=`static_values`,e.UPLOAD_FILE=`upload_file`,e.UPLOAD_BINARY=`upload_binary`,e.DOWNLOAD_FILE=`download_file`,e.EMIT_EVENT=`emit_event`,e.BROWSER_USE=`browser_use`,e.CODE_EXECUTION_LAMBDA=`code_execution_lambda`,e.SIGN_JWT=`sign_jwt`,e.MCP_REQUEST=`mcp_request`,e}({});const Jt={typecast:{v1:{fn:Rt},v2:{fn:typecastStepFunction,inputSchema:Ft,outputSchema:It}},map_fields:{v1:{fn:Qe},v2:{fn:mapFieldsStepFunction,inputSchema:nt,outputSchema:rt}},request:{v1:{fn:requestStepFunction,inputSchema:ht,outputSchema:gt}},group_data:{v1:{fn:groupDataStepFunction,inputSchema:Xe,outputSchema:Ze}},paginated_request:{v1:{fn:paginatedRequestStepFunction,inputSchema:dt,outputSchema:ft}},soap_request:{v1:{fn:soapRequestStepFunction,inputSchema:kt,outputSchema:At}},soap_paginated_request:{v1:{fn:soapPaginatedRequestStepFunction,inputSchema:Et,outputSchema:Dt}},static_values:{v1:{fn:staticValuesStepFunction,inputSchema:Mt,outputSchema:Nt}},upload_file:{v1:{fn:uploadFileStepFunction,inputSchema:Gt,outputSchema:Kt}},upload_binary:{v1:{fn:uploadBinaryStepFunction,inputSchema:Vt,outputSchema:Ht}},download_file:{v1:{fn:downloadFileStepFunction,inputSchema:Ke,outputSchema:qe}},emit_event:{v1:{fn:emitEventStepFunction,inputSchema:Je,outputSchema:Ye}},browser_use:{v1:{fn:browserUseStepFunction,inputSchema:je,outputSchema:Me}},code_execution_lambda:{v1:{fn:codeExecutionLambdaStepFunction,inputSchema:Ne,outputSchema:Pe}},sign_jwt:{v1:{fn:signJwtStepFunction,inputSchema:yt,outputSchema:bt}},mcp_request:{v1:{fn:mcpRequestStepFunction,inputSchema:st,outputSchema:ct}}},formatZodIssues=(e,t,n)=>e instanceof j.ZodError?e.issues.map(e=>({...e,kind:t,functionName:n})):[{kind:t,functionName:n,message:e?.message??`unknown error`}],stepFunctionEnhancedWithSchemasValidation=(e,t)=>async({block:n,params:r})=>{try{e.inputSchema&&e.inputSchema.parse(r)}catch(e){return{block:n,successful:!1,errors:formatZodIssues(e,`input_schema_validation`,t)}}let i=await e.fn({block:n,params:r});try{e.outputSchema&&e.outputSchema.parse(i.output)}catch(e){return{block:n,successful:!1,errors:formatZodIssues(e,`output_schema_validation`,t)}}return i},Yt={build({functionName:e,version:t=`1`,validateSchemas:n=!1,stepFunctionsList:r=Jt}){let i=r?.[e]?.[`v${t}`];if(!i)throw Error(`Unknown step function: ${e} v${t}`);return n?{...i,fn:stepFunctionEnhancedWithSchemasValidation(i,e)}:i}},isForeachStep=e=>`iterator`in e&&typeof e.iterator==`string`;export{$ as AUTHORIZATION_SCHEMA,Ae as AuthType,je as BROWSER_USE_INPUT_PARAMS,Me as BROWSER_USE_OUTPUT,ve as COMPOSITE_ID_LATEST_VERSION,Ce as ChangelogLabels,ye as CoreError,we as ExecutionModes,be as FORMAT_PATTERNS,xe as INPUT_ENUM_REGISTRY,st as MCP_REQUEST_INPUT_PARAMS,ct as MCP_REQUEST_OUTPUT,Se as ReleaseStages,De as SourceType,qt as StepFunctionName,Yt as StepFunctionsFactory,Jt as StepFunctionsRegistry,ke as StreamType,Oe as TransportType,areCursorsEqual,buildExpressionContext,computeDataSyncFingerprint,decodeCompositeId,encodeCompositeId,evaluateEventRouter,evaluateExternalAccountIdExtractor,expandCursor,getCategoryDetails,getInputEnumValues,getIteratorLocation,getPaginationKeys,isCompositeId,isCoreError,isCursorEmpty,isForeachStep,isValidCategory,isValidEnumRef,minifyCursor,stripIncrementalParams,stripPaginationParams,updateCursor};
3
+ -----END PRIVATE KEY-----`)},ht=e(e=>{let t=e.trim();return t.startsWith(`{{`)&&t.endsWith(`}}`)},`isJexlExpression`),gt=e((e,t)=>{if(T(e)||typeof e!=`object`||!e)return e;let n=I(ht(t)?t:`$.${t}`,e);return n===void 0?e[t]:n},`resolveDataKey`),resolveFromHeaders=(e,t)=>{if(T(e)||typeof e!=`object`)return null;if(ht(t)){let n=I(t,e);return typeof n==`string`&&n!==``||typeof n==`number`?n:null}let n=t.toLowerCase(),[,r]=Object.entries(e).find(([e])=>e?.toLowerCase()===n)??[];if(Array.isArray(r)){let e=r.find(e=>typeof e==`string`&&e!==``||typeof e==`number`);return typeof e==`string`||typeof e==`number`?e:null}return typeof r==`string`&&r!==``||typeof r==`number`?r:null},resolveFromData=(e,t)=>{if(T(e)||typeof e!=`object`||!e)return null;let n=I(ht(t)?t:`$.${t}`,e);return T(n)?null:typeof n==`string`||typeof n==`number`||typeof n==`object`?n:null},preserveJexlResponseKeys=(e,t)=>{let{nextKey:n,dataKey:r}=e?.response??{},i=n&&ht(n),a=r&&ht(r);return!i&&!a?t:{...t??{},...i?{nextKey:n}:{},...a?{dataKey:r}:{}}},_t=j.object({baseUrl:j.string(),url:j.string(),method:j.enum(z),authorization:$.optional(),saml:M({objectKey:j.string(),key:j.string(),clientId:j.string(),cert:j.unknown().optional(),issuer:j.string().optional(),lifetime:j.number().optional(),nameId:j.string().optional(),audience:j.string().optional(),nameIdentifierFormat:j.string().optional(),tokenEndpoint:j.string().optional()}).optional(),response:M({indexField:j.string().optional(),dataKey:j.string().optional(),nextKey:j.string().optional(),nextKeyIn:j.enum([`data`,`headers`]).optional()}).optional(),iterator:M({key:j.string(),in:j.enum([`query`,`body`]),condition:j.string().optional(),mode:j.enum([`cursor`,`offset`,`page`]).optional(),startPage:j.number().int().min(0).max(2**53-1).optional(),maxPage:j.number().int().positive().max(1e4).optional()}).superRefine((e,t)=>{e.startPage!==void 0&&e.mode!==`page`&&t.addIssue({code:j.ZodIssueCode.custom,path:[`startPage`],message:`startPage is only valid when iterator.mode is "page"`}),e.maxPage!==void 0&&e.mode!==`page`&&t.addIssue({code:j.ZodIssueCode.custom,path:[`maxPage`],message:`maxPage is only valid when iterator.mode is "page"`});let n=e.maxPage??1e3;e.mode===`page`&&(e.startPage??1)>n&&t.addIssue({code:j.ZodIssueCode.custom,path:[`startPage`],message:`startPage must not exceed maxPage (${n})`})}),cursor:M({token:j.string().optional().nullable(),position:j.number().optional().nullable()}).optional(),customErrors:R.array().optional(),encodeQueryParams:j.boolean().optional(),cacheTTL:j.number().int().nonnegative().optional(),args:M({name:j.string(),value:j.unknown(),in:j.enum(U),spread:j.boolean().optional(),condition:j.string().optional(),arrayFormat:j.enum(H).optional()}).array().optional()}),vt=M({data:j.unknown().optional(),raw:j.unknown().optional(),statusCode:j.number(),message:j.string().optional(),next:j.string().optional().nullable(),position:j.number().optional()}).optional(),paginatedRequestStepFunction=async({block:e,params:t})=>{let n=ne.build();if(!e.httpClient)throw Error(`HTTP client is not configured`);let{args:i}=t,a=Number(e.inputs?.page_size),o=Number.isNaN(a)?25:a,s=i?i.filter(t=>!t.condition||N(t.condition,e)===!0).map(e=>({...e,condition:void 0})):void 0,c=t?L({...t,args:s},e):{},l={...c,customErrors:t?.customErrors,iterator:{...c?.iterator??{},condition:t?.iterator?.condition},response:preserveJexlResponseKeys(t,c?.response)},u=l.authorization;if(O(u)){let t=$.safeParse(u);if(!t.success)return buildStepErrorOutput(Error(invalidStepAuthorizationMessage(t.error)),e)}let{baseUrl:d,url:f,method:p,response:m,authorization:h,iterator:g,cursor:_,customErrors:v,encodeQueryParams:y,args:b,saml:x,cacheTTL:S}=_t.parse(l),C=c?.authentication?.[e.context.authenticationType]?.[e.context.environment],w=C?.authorization,D=C?.certificates,ee=D?re(D):void 0,k=O(h)?h:$.parse(w);if(k.type===`none`&&O(k.signing))return buildStepErrorOutput(Error(`authorization.signing is not supported on paginated_request steps — every page changes the query string, so the signature would have to be recomputed per page; use a request step instead`),e);let A=b?q(b):{query:{},body:{},headers:{}},te=W(k),j={...A?.headers??{},...te},M=e.connector?.rateLimit,P=e.connector?.concurrency,F=M!==void 0||P!==void 0?{rateLimits:M,concurrency:P}:void 0,R=buildRequestContext(e),z=O(x)?{[x.objectKey]:await generateSamlAssertion({key:x.key,clientId:x.clientId,cert:x.cert,issuer:x.issuer,lifetime:x.lifetime,audience:x.audience,nameId:x.nameId,nameIdentifierFormat:x.nameIdentifierFormat,tokenEndpoint:x.tokenEndpoint})}:{},B=g.mode===`offset`,V=g.mode===`page`,H=g.maxPage??1e3,U=H+1,G=V?resolveInitialPage(_?.token,g.startPage??1):_?.token??null,K=null,J=null,Y=[],X=[],ie=[],ae=o,Z=_?.position??0,oe=!0,se=!0,Q=!0,ce=null;do{if(V&&Number(G)>U)return buildStepErrorOutput(maxPageExceededError(H,G),e);oe?oe=!1:B||(Z=0),G===null?B&&(g.in===`query`?A.query[g.key]=Z.toString():g.in===`body`&&(Array.isArray(A.body)||(A.body[g.key]=Z))):g.in===`query`?E(G)?Object.entries(G).forEach(([e,t])=>{A.query[`${g.key}[${e}]`]=t?.toString()??``}):A.query[g.key]=G.toString():g.in===`body`&&(Array.isArray(A.body)||(A.body[g.key]=G));let t;try{t=await n.performRequest({httpClient:e.httpClient,url:`${d}${f}`,queryParams:{...A?.query},encodeQueryParams:y,method:p,headers:{...j},body:Array.isArray(A?.body)?A.body:{...typeof A?.body==`string`?void 0:A?.body,...z},customErrorConfigs:v,requestConfig:F,httpsAgent:ee,credentials:e.credentials,context:R,cacheTTL:S})}catch(t){return buildStepErrorOutput(t,e)}if(K=G,X=m?.dataKey?gt(t.data,m.dataKey):t.data,!Array.isArray(X)){let n=V?` at page ${K}`:``,r=m?.dataKey?` at "${m.dataKey}"`:``,i=X===null?`null`:typeof X;e.logger?.warning({message:`Pagination stopped${n}: expected an array of records${r} but received ${i}; treating it as an empty page`}),ie.push(t),J=t?.status,se=!0;break}if(V){let t=r(X);if(t===ce){e.logger?.warning({message:`Pagination stopped at page ${K}: the provider returned the previous page again, so the page number is not advancing`}),se=!0;break}ce=t}if(V&&Number(K)>H&&X.length>0)return buildStepErrorOutput(maxPageExceededError(H,K),e);let i=B?X?.slice(0,ae):X?.slice(Z,Z+ae);ae-=i.length,Z+=i.length,ie.push(t),Y=Y.concat(i),J=t?.status,G=V?incrementPage(Number(K)):yt({result:t,response:m}),Q=O(g.condition)?I(g.condition,t.data)===!0:!0;let a=Z>=(X?.length??0),s=O(m?.nextKey),c=i.length===X.length&&ae===0;!B&&(s||V)&&a&&(Z=0,K=G),se=B?!Q||T(G)&&Y.length<o:V?a&&(!Q||Y.length<o):s?a&&(T(G)||!Q):!Q||T(G)&&Y.length<o||c}while((B||O(G))&&Q&&Y.length<o&&X?.length>0);let le=bt(Y,m),ue=se?void 0:K;return{block:e,successful:!0,output:{data:le,raw:ie,statusCode:J,next:V&&typeof ue==`number`?ue.toString():ue,position:se?void 0:Z}}},resolveInitialPage=(e,t)=>{let n=Number(e);return Number.isSafeInteger(n)&&n>=t?n:t},incrementPage=e=>e+1,maxPageExceededError=(e,t)=>Error(`Pagination exceeded iterator.maxPage (${e}) at page ${t}`),invalidStepAuthorizationMessage=e=>`step authorization is invalid, check its credential expressions resolve for this account: ${e.issues.map(e=>e.message).join(`; `)}`,yt=e(({result:e,response:t})=>{if(T(t?.nextKey))return null;let n=t?.nextKeyIn??`data`,r=t?.nextKey;return n===`headers`?resolveFromHeaders(e.headers,r):resolveFromData(e.data,r)},`resolveNextIterator`),bt=e((e,t)=>{if(t?.indexField&&Array.isArray(e))return e.reduce((e,n)=>{let r=t.indexField;return r&&n[r]&&(e[n[r]]=n),e},{});if(t?.indexField){let n=t.indexField;return n&&e[n]?{[e[n]]:e}:e}return e},`indexResponseData`),xt=j.object({baseUrl:j.string().optional(),url:j.string(),method:j.enum(z),authorization:$.optional(),certificates:Ze,saml:M({objectKey:j.string(),key:j.string(),clientId:j.string(),cert:j.unknown().optional(),issuer:j.string().optional(),lifetime:j.number().optional(),nameId:j.string().optional(),audience:j.string().optional(),nameIdentifierFormat:j.string().optional(),tokenEndpoint:j.string().optional()}).optional(),response:M({collection:j.boolean().optional(),indexField:j.string().optional(),dataKey:j.string().optional()}).optional(),customErrors:R.array().optional(),encodeQueryParams:j.boolean().optional(),cacheTTL:j.number().int().nonnegative().optional(),args:M({name:j.string(),value:j.unknown(),in:j.enum(U),spread:j.boolean().optional(),inline:j.boolean().optional(),condition:j.string().optional(),arrayFormat:j.enum(H).optional()}).array().optional()}).superRefine((e,t)=>{let n=e.args??[],r=n.map((e,t)=>({arg:e,index:t})).filter(({arg:e})=>e.inline===!0),i=n.filter(e=>e.in===`body`).length;if(n.forEach((e,n)=>{e.inline===!0&&e.in!==`body`&&t.addIssue({code:j.ZodIssueCode.custom,path:[`args`,n,`inline`],message:`args.${e.name}: inline is only valid when in is "body", got "${e.in}"`}),e.inline===!0&&e.spread&&t.addIssue({code:j.ZodIssueCode.custom,path:[`args`,n,`inline`],message:`args.${e.name}: inline cannot be combined with spread`})}),r.length>0&&i>1)for(let{arg:e,index:n}of r)t.addIssue({code:j.ZodIssueCode.custom,path:[`args`,n,`inline`],message:`args.${e.name}: an inline body arg must be the only "in: body" arg, found ${i}; arg conditions are not considered`});if(r.length>0&&e.saml!==void 0)for(let{arg:e,index:n}of r)t.addIssue({code:j.ZodIssueCode.custom,path:[`args`,n,`inline`],message:`args.${e.name}: inline cannot be combined with the saml parameter`});if(r.length>0&&e.cacheTTL!==void 0&&e.cacheTTL>0)for(let{arg:e,index:n}of r)t.addIssue({code:j.ZodIssueCode.custom,path:[`args`,n,`inline`],message:`args.${e.name}: inline cannot be combined with a nonzero cacheTTL`});for(let{arg:e,index:n}of r)typeof e.value==`string`?e.value.length===0&&t.addIssue({code:j.ZodIssueCode.custom,path:[`args`,n,`value`],message:`args.${e.name}: inline value must be a non-empty string, got an empty string`}):t.addIssue({code:j.ZodIssueCode.custom,path:[`args`,n,`value`],message:`args.${e.name}: inline value must be a non-empty string, got ${typeof e.value}`})}),St=M({data:j.unknown().optional(),raw:j.unknown().optional(),statusCode:j.number(),message:j.string().optional()}).optional(),isJexlExpression=e=>{let t=e.trim();return t.startsWith(`{{`)&&t.endsWith(`}}`)},isErrorWithResponseBody=e=>typeof e==`object`&&!!e&&`response`in e&&e.response!=null&&typeof e.response==`object`&&`body`in e.response,isErrorWithResponseConfigData=e=>typeof e==`object`&&!!e&&`response`in e&&e.response!=null&&typeof e.response==`object`&&`config`in e.response&&e.response.config!=null&&typeof e.response.config==`object`&&`data`in e.response.config,requestStepFunction=async({block:e,params:t})=>{let n=ne.build();if(!e.httpClient)throw Error(`HTTP client is not configured`);let{args:r}=t,i=r?r.filter(t=>!t.condition||N(t.condition,e)===!0).map(e=>({...e,condition:void 0})):void 0,a=t?.response?.dataKey,o=a&&isJexlExpression(a),s=t?L({...t,args:i},e):{},c={...s,customErrors:t?.customErrors,response:o?{...s?.response??{},dataKey:a}:s?.response},{baseUrl:l,url:u,method:d,response:f,authorization:p,certificates:m,customErrors:h,encodeQueryParams:g,args:_,saml:v,cacheTTL:y}=xt.parse(c),b=s?.authentication?.[e.context.authenticationType]?.[e.context.environment],x=b?.authorization,S=m??b?.certificates,C=S?re(S):void 0,w=_?q(_):{query:{},body:{},headers:{}},T=_?.some(e=>e.in===`body`&&e.inline===!0)??!1,E=O(p)?p:$.parse(x),D=W(E),ee={...w?.headers??{},...D},k=e.connector?.rateLimit,A=e.connector?.concurrency,te=k!==void 0||A!==void 0?{rateLimits:k,concurrency:A}:void 0,j=O(v)?{[v.objectKey]:await generateSamlAssertion({key:v.key,clientId:v.clientId,cert:v.cert,issuer:v.issuer,lifetime:v.lifetime,audience:v.audience,nameId:v.nameId,nameIdentifierFormat:v.nameIdentifierFormat,tokenEndpoint:v.tokenEndpoint})}:{},M=typeof w?.body==`string`||Array.isArray(w?.body)?w?.body:{...w?.body,...j};if(E.type===`none`&&E.signing?.strategy){if(g===!1)return buildStepErrorOutput(Error(`encodeQueryParams: false is not supported when a request signing strategy is configured — signed canonical would not match the wire query`),e);let t=E.signing,n=e.credentials??{};try{let e=G(t.strategy);if(!e)throw Error(`Signing strategy "${t.strategy}" is not registered`);let r=e({method:d,url:`${l}${u}`,headers:ee,query:w?.query??{},body:M},n,t);Object.assign(ee,r)}catch(t){return buildStepErrorOutput(t,e)}}let P;try{P=await n.performRequest({httpClient:e.httpClient,url:`${l}${u}`,queryParams:w?.query,encodeQueryParams:g,method:d,headers:ee,body:M,customErrorConfigs:h,requestConfig:te,httpsAgent:C,credentials:e.credentials,context:buildRequestContext(e),cacheTTL:y})}catch(t){return T&&(isErrorWithResponseBody(t)&&(t.response.body=Q),isErrorWithResponseConfigData(t)&&(t.response.config.data=Q)),buildStepErrorOutput(t,e)}return{block:e,successful:!0,output:{data:Ct(f?.dataKey?resolveDataKey(P.data,f.dataKey):P.data,f),raw:T&&P&&`body`in P?{...P,body:Q}:P,statusCode:P?.status,message:P?.message}}},resolveDataKey=(e,t)=>{if(T(e)||typeof e!=`object`||!e)return e;let n=I(isJexlExpression(t)?t:`$.${t}`,e);return n===void 0?e[t]:n},Ct=e((e,t)=>{if(t?.collection&&t?.indexField&&Array.isArray(e))return e.reduce((e,n)=>{let r=t.indexField;return r&&n[r]&&(e[n[r]]=n),e},{});if(!t?.collection&&t?.indexField){let n=t.indexField;return n&&e[n]?{[e[n]]:e}:e}return e},`indexResponseData`),wt=j.union([j.string(),j.number()]),Tt=M({algorithm:j.literal(`RS256`),privateKey:j.string(),claims:j.record(j.string(),wt)}),Et=M({token:j.string(),expiresIn:j.number(),publicKeyFingerprint:j.string()}),computePublicKeyFingerprint=e=>{let t=e.export({format:`der`,type:`spki`});return`SHA256:${ce(`sha256`).update(t).digest(`base64`)}`},Dt=/^now$/,Ot=/^now\+(?<amount>\d+)(?<unit>[smh])$/,kt=`{publicKeyFingerprint}`,At={s:1,m:60,h:3600},jt=new Set([`iat`,`exp`,`nbf`]),resolveClaimValue=(e,t,{now:n,publicKeyFingerprint:r})=>{if(typeof t==`number`)return t;let i=t.includes(kt)?t.split(kt).join(r):t;if(!jt.has(e))return i;if(Dt.test(i))return n;let a=i.match(Ot);return a?.groups?n+Number(a.groups.amount)*At[a.groups.unit]:i},signJwtStepFunction=async({block:e,params:t})=>{try{let n=t?L(t,e):void 0,{algorithm:r,privateKey:i,claims:a}=Tt.parse(n),o=le(i),s=computePublicKeyFingerprint(ue(o)),c=Math.floor(Date.now()/1e3),l={};for(let[e,t]of Object.entries(a))l[e]=resolveClaimValue(e,t,{now:c,publicKeyFingerprint:s});let{iat:u,exp:d}=l;if(typeof u!=`number`||typeof d!=`number`)throw Error(`signJwt requires numeric 'iat' and 'exp' claims (use 'now' / 'now+<N>s|m|h' tokens, or pass numbers directly)`);if(d<=u)throw Error(`signJwt requires 'exp' to be greater than 'iat'`);let f=await new de(l).setProtectedHeader({alg:r}).sign(o);return{block:{...e},successful:!0,output:{token:f,expiresIn:d-u,publicKeyFingerprint:s}}}catch(t){return buildStepErrorOutput(t,e)}},Mt=j.object({baseUrl:j.string().optional(),url:j.string(),method:j.enum(z),authorization:j.discriminatedUnion(`type`,[M({type:j.literal(`none`)}),M({type:j.literal(`basic`),username:j.string().optional(),password:j.string().optional(),encoding:j.string().optional()}),M({type:j.literal(`bearer`),token:j.string(),includeBearer:j.boolean().optional().default(!0)}),M({type:j.literal(`oauth2`),token:j.string(),includeBearer:j.boolean().optional().default(!0)})]).optional(),envelope:j.union([j.string(),j.record(j.string(),j.unknown())]).optional(),namespaces:j.strictObject({namespaceIdentifier:j.string(),namespace:j.string()}).array().optional(),soapOperation:j.string().optional(),soapAction:j.string().optional(),useSoapContext:j.boolean().optional().default(!0),response:M({collection:j.boolean().optional(),indexField:j.string().optional(),dataKey:j.string().optional(),nextKey:j.string().optional(),nextKeyIn:j.enum([`data`,`headers`]).optional()}).optional(),iterator:M({key:j.string(),in:j.enum([`query`,`body`])}),cursor:M({token:j.string().optional().nullable(),position:j.number().optional().nullable()}).optional(),customErrors:R.array().optional(),encodeQueryParams:j.boolean().optional(),args:M({name:j.string(),value:j.unknown(),in:j.enum(U),condition:j.string().optional(),arrayFormat:j.enum(H).optional()}).array().optional()}),Nt=M({data:j.unknown().optional(),raw:j.unknown().optional(),statusCode:j.number(),message:j.string().optional(),next:j.string().optional().nullable(),position:j.number().optional()}).optional(),soapPaginatedRequestStepFunction=async({block:e,params:t})=>{let n=ne.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||N(t.condition,e)===!0).map(e=>({...e,condition:void 0})):void 0,s=t?L({...t,args:o},e):{},c={...s,customErrors:t?.customErrors,response:preserveJexlResponseKeys(t,s?.response)},l=t?.envelope,{baseUrl:u,url:d,method:f,response:p,iterator:m,cursor:h,authorization:g,customErrors:_,encodeQueryParams:v,args:y,soapOperation:b,namespaces:x,soapAction:S,useSoapContext:C}=Mt.parse(c),w=s?.authentication?.[e.context.authenticationType]?.[e.context.environment]?.authorization,E=y?q(y):{query:{},body:{},headers:{}},D=W(O(g)?g:$.parse(w)),ee={...E?.headers??{},...D},k=e.connector?.rateLimit,A=e.connector?.concurrency,te={...k!==void 0||A!==void 0?{rateLimits:k,concurrency:A}:void 0,soapOperation:b,namespaces:x,soapAction:S,soapContext:C?{username:e.credentials?.username,password:e.credentials?.password}:void 0},j=h?.token??null,M=null,P=null,F=[],I=[],R=[],z=a,B=h?.position??0,V=!0,H;do{V?V=!1:B=0,j!==null&&(m.in===`query`?E.query[m.key]=j.toString():m.in===`body`&&(E.body[m.key]=j));let t;try{t=await n.performRequest({httpClient:e.httpClient,url:`${u}${d}`,queryParams:{...E?.query},encodeQueryParams:v,method:f,headers:ee,body:E?.body,customErrorConfigs:_,requestConfig:{...te,...O(l)&&{envelope:evaluateEnvelope(l,e,j)}},credentials:e.credentials,context:buildRequestContext(e)})}catch(t){return buildStepErrorOutput(t,e)}M=j,I=p?.dataKey?gt(t.data,p.dataKey):t.data,Array.isArray(I)||(I=I?[I]:[]);let r=I?.slice(B,B+z);z-=r.length,B+=r.length,R.push(t),F=F.concat(r),P=t?.status,j=resolveNextIterator({result:t,response:p});let i=B>=(I?.length??0),o=O(p?.nextKey),s=r.length===I.length&&z===0;o&&i&&(B=0,M=j),H=o?i&&T(j):T(j)&&F.length<a||s}while(O(j)&&F.length<a&&I?.length>0);return{block:e,successful:!0,output:{data:Pt(F,p),raw:R,statusCode:P,next:H?void 0:stringifyCursorToken(M),position:H?void 0:B}}},stringifyCursorToken=e=>e===null?null:String(e),evaluateEnvelope=(e,t,n)=>{let r={...t,pageIterator:n};return typeof e==`string`?I(e,r):L(e,r)},resolveNextIterator=({result:e,response:t})=>{if(T(t?.nextKey))return null;let n=t?.nextKeyIn??`data`,r=t?.nextKey,i=n===`headers`?resolveFromHeaders(e.headers,r):resolveFromData(e.data,r);return typeof i==`string`||typeof i==`number`?i:null},Pt=e((e,t)=>{if(t?.indexField&&Array.isArray(e))return e.reduce((e,n)=>{let r=t.indexField;return r&&n[r]&&(e[n[r]]=n),e},{});if(t?.indexField){let n=t.indexField;return n&&e[n]?{[e[n]]:e}:e}return e},`indexResponseData`),Ft=j.object({baseUrl:j.string().optional(),url:j.string(),method:j.enum(z),authorization:$.optional(),envelope:j.union([j.string(),j.record(j.string(),j.unknown())]).optional(),namespaces:j.strictObject({namespaceIdentifier:j.string(),namespace:j.string()}).array().optional(),soapOperation:j.string().optional(),soapAction:j.string().optional(),useSoapContext:j.boolean().optional().default(!0),response:M({collection:j.boolean().optional(),indexField:j.string().optional(),dataKey:j.string().optional()}).optional(),customErrors:R.array().optional(),encodeQueryParams:j.boolean().optional(),args:M({name:j.string(),value:j.unknown(),in:j.enum(U),condition:j.string().optional(),arrayFormat:j.enum(H).optional()}).array().optional()}),It=M({data:j.unknown().optional(),raw:j.unknown().optional(),statusCode:j.number(),message:j.string().optional()}).optional(),soapRequestStepFunction=async({block:e,params:t})=>{let n=ne.build(`soap`);if(!e.httpClient)throw Error(`HTTP client is not configured`);let{args:r}=t,i=r?r.filter(t=>!t.condition||N(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,encodeQueryParams:p,args:m,soapOperation:h,namespaces:g,envelope:_,soapAction:v,useSoapContext:y}=Ft.parse(o),b=a?.authentication?.[e.context.authenticationType]?.[e.context.environment]?.authorization,x=m?q(m):{query:{},body:{},headers:{}},S=W(O(d)?d:$.parse(b)),C={...x?.headers??{},...S},w=e.connector?.rateLimit,T=e.connector?.concurrency,E={...w!==void 0||T!==void 0?{rateLimits:w,concurrency:T}:void 0,soapOperation:h,namespaces:g,envelope:_,soapAction:v,soapContext:y?{username:e.credentials?.username,password:e.credentials?.password}:void 0},D;try{D=await n.performRequest({httpClient:e.httpClient,url:`${s}${c}`,queryParams:x?.query,encodeQueryParams:p,method:l,headers:C,body:x?.body,customErrorConfigs:f,requestConfig:E,credentials:e.credentials,context:buildRequestContext(e)})}catch(t){return buildStepErrorOutput(t,e)}return{block:e,successful:!0,output:{data:Lt(u?.dataKey?D.data[u?.dataKey]:D.data,u),raw:D,statusCode:D?.status,message:D?.message}}},Lt=e((e,t)=>{if(t?.collection&&t?.indexField&&Array.isArray(e))return e.reduce((e,n)=>{let r=t.indexField;return r&&n[r]&&(e[n[r]]=n),e},{});if(!t?.collection&&t?.indexField){let n=t.indexField;return n&&e[n]?{[e[n]]:e}:e}return e},`indexResponseData`),Rt=j.object({values:j.string().or(j.record(j.string(),j.unknown())).or(j.array(j.unknown()))}),zt=j.object({data:j.unknown()}),staticValuesStepFunction=async({block:e,params:t})=>{let{values:n}=Rt.parse(t),r=Array.isArray(n)?n.map(t=>evaluateValue(t,e)):evaluateValue(n,e);return{block:{...e},successful:!0,output:{data:r}}},evaluateValue=(e,t)=>D(e)?I(e,t):E(e)?L(e,t):e,Bt=j.object({targetFieldKey:j.string(),type:j.enum([`string`,`number`,`boolean`,`datetime_string`,`enum`,`object`]),array:j.boolean().default(!1),custom:j.boolean().default(!1),hidden:j.boolean().default(!1),properties:j.lazy(()=>Bt).array().optional(),requiredScopes:j.string().array().optional()}),Vt=j.object({fields:Bt.array().optional(),dataSource:j.string()}),Ht=j.object({data:j.unknown()});let Ut=function(e){return e.String=`string`,e.Number=`number`,e.Boolean=`boolean`,e.DateTimeString=`datetime_string`,e}({});const typecast=({value:e,type:t,format:n})=>{if(T(e))return null;switch(t){case`string`:return te({value:e});case`number`:return A({value:e});case`boolean`:return ee({value:e});case`datetime_string`:return k({value:e,format:n});default:return e}},isFieldSupportedType=e=>Object.values(Ut).includes(e),Wt=e(async({block:e})=>{let t=e?.fieldConfigs;if(!t||e?.debug?.custom_mappings===`disabled`)return{block:e,successful:!0};let n;return n=Array.isArray(e.result)?e.result.map(e=>Gt(e,t)):Gt(e.result,t),{block:{...e,result:n},successful:!0}},`typecastStepFunction`),Gt=e((e,t)=>{let n={...e};return t.forEach(t=>{let{targetFieldKey:r,type:i}=t;isFieldSupportedType(i)&&(!t.custom&&O(n[r])?n[r]=typecast({value:e[r],type:i}):n.unified_custom_fields&&O(n.unified_custom_fields?.[r])&&(n.unified_custom_fields[r]=typecast({value:e.unified_custom_fields?.[r],type:i})))}),{...n}},`mapSingleRecord`),typecastStepFunction=async({block:e,params:t})=>{let{fields:n,dataSource:r}=Vt.parse(t),i=N(r,buildExpressionContext(e));if(!n||e?.debug?.custom_mappings===`disabled`)return{block:e,successful:!0};let a;return a=Array.isArray(i)?i.map(e=>mapSingleRecord(e,n)):mapSingleRecord(i,n),{block:{...e},successful:!0,output:{data:a}}},handleObjectField=(e,t)=>!e.properties||!t?t:Array.isArray(t)?t.map(t=>typeof t==`object`&&t?mapSingleRecord(t,e.properties):t):typeof t==`object`&&t?mapSingleRecord(t,e.properties):t,mapSingleRecord=(e,t)=>{let n={...e};return t.forEach(t=>{let{targetFieldKey:r,type:i,array:a}=t;i===`object`?!t.custom&&O(n[r])?n[r]=handleObjectField(t,e[r]):n.unified_custom_fields&&O(n.unified_custom_fields?.[r])&&(n.unified_custom_fields[r]=handleObjectField(t,e.unified_custom_fields?.[r])):isFieldSupportedType(i)&&(!t.custom&&O(n[r])?(!a||!Array.isArray(n[r]))&&(n[r]=typecast({value:e[r],type:i})):n.unified_custom_fields&&O(n.unified_custom_fields?.[r])&&(!a||!Array.isArray(n.unified_custom_fields[r]))&&(n.unified_custom_fields[r]=typecast({value:e.unified_custom_fields?.[r],type:i})))}),{...n}},Kt=M({content:j.string().describe(`The file content as base64 encoded string`),contentType:j.string().optional().describe(`The MIME type for the binary content (defaults to application/octet-stream)`)}),qt=j.object({baseUrl:j.string().optional(),url:j.string(),method:j.enum(z).default(`post`),authorization:$.optional(),binaryContent:Kt.describe(`Raw binary content for octet-stream uploads`),response:M({collection:j.boolean().optional(),indexField:j.string().optional(),dataKey:j.string().optional()}).optional(),customErrors:R.array().optional(),args:M({name:j.string(),value:j.unknown(),in:j.enum(U),spread:j.boolean().optional(),condition:j.string().optional(),arrayFormat:j.enum(H).optional()}).array().optional().describe(`Additional request parameters (query params, headers)`)}),Jt=M({data:j.unknown().optional(),raw:j.unknown().optional(),statusCode:j.number(),message:j.string().optional()}).optional(),uploadBinaryStepFunction=async({block:e,params:t})=>{if(!e.httpClient)throw Error(`HTTP client is not configured`);let{args:n}=t,r=n?n.filter(t=>!t.condition||N(t.condition,e)===!0).map(e=>({...e,condition:void 0})):void 0,i=t?L({...t,args:r},e):{},a={...i,customErrors:t?.customErrors},{baseUrl:o,url:s,method:c,response:l,authorization:u,binaryContent:d,args:f,customErrors:p}=qt.parse(a),m=i?.authentication?.[e.context.authenticationType]?.[e.context.environment]?.authorization,h=f?q(f):{query:{},body:{},headers:{}},g=W(O(u)?u:$.parse(m)),_=Buffer.from(d.content,`base64`),v={"content-type":d.contentType??`application/octet-stream`,...h?.headers??{},...g},y=e.connector?.rateLimit,b=e.connector?.concurrency,x=y!==void 0||b!==void 0?{rateLimits:y,concurrency:b}:void 0,S;try{S=await e.httpClient.request({url:`${o??``}${s}`,method:c,headers:v,queryParams:h?.query,payload:_,requestConfig:x,context:buildRequestContext(e)})}catch(t){let n=t;return{block:e,successful:!1,errors:[J(t)],output:{statusCode:n?.response?.status??500,message:n?.response?.message}}}let C=Y(S,p,e.credentials);return K(C?.status)?{block:e,successful:!1,errors:[J(new B(C,C.message))],output:{statusCode:C.status,message:C.message}}:{block:e,successful:!0,output:{data:Yt(l?.dataKey?C.data[l?.dataKey]:C.data,l),raw:C,statusCode:C?.status,message:C?.message}}},Yt=e((e,t)=>{if(t?.collection&&t?.indexField&&Array.isArray(e))return e.reduce((e,n)=>{let r=t.indexField;return r&&n[r]&&(e[n[r]]=n),e},{});if(!t?.collection&&t?.indexField){let n=t.indexField;return n&&e[n]?{[e[n]]:e}:e}return e},`indexResponseData`),Xt=M({fieldName:j.string().describe(`The form field name for the file`),content:j.string().describe(`The file content as base64 encoded string`),filename:j.string().describe(`The filename to use in the upload`),contentType:j.string().optional().describe(`The MIME type of the file (e.g., "image/png", "application/pdf")`)}),Zt=j.object({baseUrl:j.string().optional(),url:j.string(),method:j.enum(z).default(`post`),authorization:$.optional(),file:Xt.describe(`The file to upload`),additionalFields:M({name:j.string(),value:j.unknown(),condition:j.string().optional(),contentType:j.string().optional().describe(`The MIME type for this form field (e.g., "application/json")`)}).array().optional().describe(`Additional form fields to include in the multipart request`),response:M({collection:j.boolean().optional(),indexField:j.string().optional(),dataKey:j.string().optional()}).optional(),customErrors:R.array().optional(),args:M({name:j.string(),value:j.unknown(),in:j.enum(U),spread:j.boolean().optional(),condition:j.string().optional(),arrayFormat:j.enum(H).optional()}).array().optional().describe(`Additional request parameters (query params, headers)`)}),Qt=M({data:j.unknown().optional(),raw:j.unknown().optional(),statusCode:j.number(),message:j.string().optional()}).optional(),uploadFileStepFunction=async({block:e,params:t})=>{if(!e.httpClient)throw Error(`HTTP client is not configured`);let{args:n,additionalFields:r}=t,i=n?n.filter(t=>!t.condition||N(t.condition,e)===!0).map(e=>({...e,condition:void 0})):void 0,a=r?r.filter(t=>!t.condition||N(t.condition,e)===!0).map(e=>({...e,condition:void 0})):void 0,o=t?L({...t,args:i,additionalFields:a},e):{},s={...o,customErrors:t?.customErrors},{baseUrl:c,url:l,method:u,response:d,authorization:f,file:p,additionalFields:m,args:h,customErrors:g}=Zt.parse(s),_=o?.authentication?.[e.context.authenticationType]?.[e.context.environment]?.authorization,v=h?q(h):{query:{},body:{},headers:{}},y=W(O(f)?f:$.parse(_)),b=new fe;if(m)for(let e of m){let t=typeof e.value==`object`?JSON.stringify(e.value):String(e.value);b.append(e.name,t,e.contentType?{contentType:e.contentType}:void 0)}let x=Buffer.from(p.content,`base64`);b.append(p.fieldName,x,{filename:p.filename,contentType:p.contentType});let S={...b.getHeaders(),...v?.headers??{},...y},C=e.connector?.rateLimit,w=e.connector?.concurrency,T=C!==void 0||w!==void 0?{rateLimits:C,concurrency:w}:void 0,E;try{E=await e.httpClient.request({url:`${c??``}${l}`,method:u,headers:S,queryParams:v?.query,payload:b,requestConfig:T,context:buildRequestContext(e)})}catch(t){return buildStepErrorOutput(t,e)}let D=Y(E,g,e.credentials);return K(D?.status)?buildStepErrorOutput(new B(D,D.message),e):{block:e,successful:!0,output:{data:indexResponseData(d?.dataKey?D.data[d?.dataKey]:D.data,d),raw:D,statusCode:D?.status,message:D?.message}}},indexResponseData=(e,t)=>{if(t?.collection&&t?.indexField&&Array.isArray(e))return e.reduce((e,n)=>{let r=t.indexField;return r&&n[r]&&(e[n[r]]=n),e},{});if(!t?.collection&&t?.indexField){let n=t.indexField;return n&&e[n]?{[e[n]]:e}:e}return e};let $t=function(e){return e.TYPECAST=`typecast`,e.MAP_FIELDS=`map_fields`,e.GROUP_DATA=`group_data`,e.REQUEST=`request`,e.PAGINATED_REQUEST=`paginated_request`,e.SOAP_REQUEST=`soap_request`,e.SOAP_PAGINATED_REQUEST=`soap_paginated_request`,e.STATIC_VALUES=`static_values`,e.UPLOAD_FILE=`upload_file`,e.UPLOAD_BINARY=`upload_binary`,e.DOWNLOAD_FILE=`download_file`,e.EMIT_EVENT=`emit_event`,e.BROWSER_USE=`browser_use`,e.CODE_EXECUTION_LAMBDA=`code_execution_lambda`,e.SIGN_JWT=`sign_jwt`,e.MCP_REQUEST=`mcp_request`,e}({});const en={typecast:{v1:{fn:Wt},v2:{fn:typecastStepFunction,inputSchema:Vt,outputSchema:Ht}},map_fields:{v1:{fn:it},v2:{fn:mapFieldsStepFunction,inputSchema:ct,outputSchema:lt}},request:{v1:{fn:requestStepFunction,inputSchema:xt,outputSchema:St}},group_data:{v1:{fn:groupDataStepFunction,inputSchema:nt,outputSchema:rt}},paginated_request:{v1:{fn:paginatedRequestStepFunction,inputSchema:_t,outputSchema:vt}},soap_request:{v1:{fn:soapRequestStepFunction,inputSchema:Ft,outputSchema:It}},soap_paginated_request:{v1:{fn:soapPaginatedRequestStepFunction,inputSchema:Mt,outputSchema:Nt}},static_values:{v1:{fn:staticValuesStepFunction,inputSchema:Rt,outputSchema:zt}},upload_file:{v1:{fn:uploadFileStepFunction,inputSchema:Zt,outputSchema:Qt}},upload_binary:{v1:{fn:uploadBinaryStepFunction,inputSchema:qt,outputSchema:Jt}},download_file:{v1:{fn:downloadFileStepFunction,inputSchema:Qe,outputSchema:$e}},emit_event:{v1:{fn:emitEventStepFunction,inputSchema:et,outputSchema:tt}},browser_use:{v1:{fn:browserUseStepFunction,inputSchema:Le,outputSchema:Re}},code_execution_lambda:{v1:{fn:codeExecutionLambdaStepFunction,inputSchema:ze,outputSchema:Be}},sign_jwt:{v1:{fn:signJwtStepFunction,inputSchema:Tt,outputSchema:Et}},mcp_request:{v1:{fn:mcpRequestStepFunction,inputSchema:pt,outputSchema:mt}}},formatZodIssues=(e,t,n)=>e instanceof j.ZodError?e.issues.map(e=>({...e,kind:t,functionName:n})):[{kind:t,functionName:n,message:e?.message??`unknown error`}],stepFunctionEnhancedWithSchemasValidation=(e,t)=>async({block:n,params:r})=>{try{e.inputSchema&&e.inputSchema.parse(r)}catch(e){return{block:n,successful:!1,errors:formatZodIssues(e,`input_schema_validation`,t)}}let i=await e.fn({block:n,params:r});try{e.outputSchema&&e.outputSchema.parse(i.output)}catch(e){return{block:n,successful:!1,errors:formatZodIssues(e,`output_schema_validation`,t)}}return i},tn={build({functionName:e,version:t=`1`,validateSchemas:n=!1,stepFunctionsList:r=en}){let i=r?.[e]?.[`v${t}`];if(!i)throw Error(`Unknown step function: ${e} v${t}`);return n?{...i,fn:stepFunctionEnhancedWithSchemasValidation(i,e)}:i}},isForeachStep=e=>`iterator`in e&&typeof e.iterator==`string`;export{$ as AUTHORIZATION_SCHEMA,we as ActionTypes,Ie as AuthType,Le as BROWSER_USE_INPUT_PARAMS,Re as BROWSER_USE_OUTPUT,ve as COMPOSITE_ID_LATEST_VERSION,Ce as ChangelogLabels,ye as CoreError,Te as Effects,Ae as ExecutionModes,be as FORMAT_PATTERNS,xe as INPUT_ENUM_REGISTRY,Oe as InputFormats,De as InputLocations,ke as InputTypes,pt as MCP_REQUEST_INPUT_PARAMS,mt as MCP_REQUEST_OUTPUT,Se as ReleaseStages,Ee as SchemaTypes,Ne as SourceType,$t as StepFunctionName,tn as StepFunctionsFactory,en as StepFunctionsRegistry,Fe as StreamType,Pe as TransportType,areCursorsEqual,buildExpressionContext,computeDataSyncFingerprint,decodeCompositeId,encodeCompositeId,evaluateEventRouter,evaluateExternalAccountIdExtractor,expandCursor,getCategoryDetails,getInputEnumValues,getIteratorLocation,getPaginationKeys,isCompositeId,isCoreError,isCursorEmpty,isForeachStep,isValidCategory,isValidEnumRef,minifyCursor,stripIncrementalParams,stripPaginationParams,updateCursor};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stackone/core",
3
- "version": "3.29.0",
3
+ "version": "3.30.0",
4
4
  "description": "",
5
5
  "main": "dist/index.cjs",
6
6
  "module": "dist/index.mjs",