@stackone/connect-sdk 2.15.0 → 2.16.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,6 +1,6 @@
1
1
  let e=require(`@stackone/utils`),t=require(`path-to-regexp`),n=require(`fs`),r=require(`path`),i=require(`@stackone/core`),a=require(`@stackone/transport`),o=require(`yaml`),s=require(`@stackone/expressions`);const c=async({connector:t,inputs:n,context:r,action:i,credentials:a,nextCursor:o,settings:s,logger:c,getHttpClient:l,getOlapClient:u})=>{if((0,e.isMissing)(l))throw Error(`getHttpClient function is required`);return{connector:t,inputs:n,fieldConfigs:[],context:r,action:i,credentials:a,nextCursor:o,httpClient:await l(),olapClient:u?await u():void 0,settings:s,logger:c}},l=(t,n,r)=>{let i=r.toUpperCase();if(!t.actions)return;let a=d(n,i,Object.values(t.actions).filter(t=>(0,e.notMissing)(t.endpoint)).map(e=>({actionId:e.id,endpoint:e.endpoint})));if(a)return{action:t.actions?.[a.actionId],params:a.params}},u=e=>{let t=e.startsWith(`/`)?e.slice(1):e;return t.endsWith(`/`)?t.slice(0,-1):t},d=(e,n,r)=>{let i=u(e);for(let e of r)if(e.endpoint?.startsWith(n)){let r=(0,t.match)(u(e.endpoint.replace(`${n} `,``).trim()))(u(i));if(r!==!1)return{actionId:e.actionId,path:e.endpoint,params:r.params}}},f=(e,t)=>t?.startsWith(`${e}_`)?t:`${e}_${t}`,p=(e,t)=>{let n=`${e.key}_`,r=t.startsWith(n)?t:`${n}${t}`;return e.actions?.[r]},m=e=>{if(!e.endsWith(`.s1.yaml`))throw Error(`File must have .s1.yaml extension`);try{let t=(0,n.readFileSync)(e,`utf8`);return!t.includes(`:`)||!t.includes(`$ref:`)?t:h(t.split(`
2
2
  `),(0,r.dirname)(e)).join(`
3
3
  `)}catch(e){throw Error(`Failed to process YAML file: ${e.message}`)}},h=(e,t)=>{let n=[];for(let r of e)if(g(r)){let e=r.match(/^(\s*)/)?.[1]?.length||0,i=r.split(`:`)[1]?.trim(),a=_(i,t).map(t=>` `.repeat(e)+t);n.push(...a)}else n.push(r);return n},g=e=>e.includes(`$ref:`),_=(e,t)=>{let i=(0,r.resolve)((0,r.join)(t,`${e.replaceAll(`'`,``)}.s1.partial.yaml`));try{return(0,n.readFileSync)(i,`utf8`).split(`
4
- `).filter(e=>e.trim()!==``)}catch(t){throw Error(`Failed to load partial file '${e}': ${t.message}`)}};var v=class e extends Error{constructor(t,n){super(n),this.name=`InternalConnectSDKError`,this.errorType=t,Error.captureStackTrace&&Error.captureStackTrace(this,e)}toString(){return`${this.name} [${this.errorType}]: ${this.message}`}},y=class extends v{constructor(e,t){super(`INVALID_YAML_FILE_ERROR`,t),this.name=`InvalidYamlFileError`,this.line=e??1}},b=class extends v{constructor(e,t){super(`SCHEMA_VALIDATION_ERROR`,t),this.name=`SchemaValidationError`,this.issues=e}},x=class extends v{constructor(e,t,n,r=`1`){let i=`Invalid Step Function: '${n}' (v${r}) on step '${t}'. Please ensure the function name and version are correct in the action '${e}'.`;super(`INVALID_STEP_FUNCTION`,i),this.name=`InvalidStepFunctionError`,this.actionId=e,this.stepId=t,this.functionName=n,this.functionVersion=r}},S=class extends v{constructor(e,t,n,r=`1`,i){let a=`Invalid parameters for Step Function: '${n}' (v${r}) on step '${t}'. Please ensure the parameters are correct in the action '${e}'.`;super(`INVALID_STEP_FUNCTION_PARAMS`,a),this.name=`InvalidStepFunctionParamsError`,this.actionId=e,this.stepId=t,this.functionName=n,this.functionVersion=r,this.issues=i,this.message=a}},ee=class extends v{constructor(e,t,n){let r=`Invalid example ${t} for action '${e}': ${n.map(e=>`${e.path.join(`.`)}: ${e.message}`).join(`, `)}`;super(`INVALID_ACTION_EXAMPLE`,r),this.name=`InvalidActionExampleError`,this.actionId=e,this.exampleIndex=t,this.issues=n}},C=class extends v{constructor(e,t,n){let r=`Invalid enum reference "${n}" in action "${e}", input "${t}". Check that the enum is defined in INPUT_ENUM_REGISTRY.`;super(`INVALID_ENUM_REFERENCE`,r),this.name=`InvalidEnumReferenceError`,this.actionId=e,this.inputName=t,this.enumRef=n}},w=class extends v{constructor(e){super(`MISSING_SCOPE_DEFINITION`,`Missing scope definition. Check that the scope is defined in the scope definitions.`),this.name=`MissingScopeDefinitionError`,this.issues=e}};const te=25,T=e=>({statusCode:400,message:`Invalid request - validation failed`,errors:e.map(e=>({property:e.field,location:e.location,expected:e.expected,received:e.received,message:e.message}))}),E=e=>{switch(e){case`list`:return{statusCode:200,description:`The list of records was retrieved.`};case`get`:return{statusCode:200,description:`The record with the given identifier was retrieved.`};case`create`:return{statusCode:201,description:`The record was created successfully.`};case`update`:return{statusCode:200,description:`The record was updated successfully.`};case`delete`:return{statusCode:204,description:`The record was deleted successfully.`};case`custom`:return{statusCode:200,description:`The action was executed successfully.`};case`refresh_token`:return{statusCode:200,description:`The refresh token action was executed successfully.`};case`unknown`:return{statusCode:200};default:throw Error(`Unknown action type: ${e}`)}},D=()=>({400:{statusCode:400,description:`Invalid request.`},401:{statusCode:401,description:`Unauthorized access.`},403:{statusCode:403,description:`Forbidden.`},404:{statusCode:404,description:`Resource not found.`},500:{statusCode:500,description:`Server error while executing the request.`}}),O={key:e.z.string(),label:e.z.string(),required:e.z.boolean().optional().default(!1),secret:e.z.boolean().optional().default(!1),readOnly:e.z.boolean().optional().default(!1),placeholder:e.z.string().optional(),description:e.z.string().optional(),tooltip:e.z.string().optional()},k=e.z.discriminatedUnion(`type`,[(0,e.zStrictObject)({...O,type:e.z.enum([`text`,`password`])}),(0,e.zStrictObject)({...O,type:e.z.literal(`select`),options:(0,e.zStrictObject)({value:e.z.string(),label:e.z.string()}).array()})]),A=(0,e.zStrictObject)({targetFieldKey:e.z.string(),alias:e.z.string().optional(),expression:e.z.string().optional(),values:e.z.unknown().optional(),type:e.z.enum([`string`,`number`,`boolean`,`datetime_string`,`enum`,`object`]),array:e.z.boolean().default(!1),custom:e.z.boolean().default(!1),hidden:e.z.boolean().default(!1),enumMapper:(0,e.zStrictObject)({matcher:e.z.enum([`country_alpha2code_by_alpha2code`,`country_alpha3code_by_alpha3code`,`country_code_by_country_code`,`country_name_by_country_name`,`country_name_by_alpha3code`,`country_name_by_alpha2code`,`country_name_by_country_code`,`country_alpha3code_by_alpha2code`,`country_alpha3code_by_country_name`,`country_alpha3code_by_country_code`,`country_alpha2code_by_alpha3code`,`country_alpha2code_by_country_name`,`country_alpha2code_by_country_code`,`country_code_by_alpha2code`,`country_code_by_alpha3code`,`country_code_by_country_name`,`country_subdivisions_by_alpha2code`,`country_subdivision_code_by_subdivision_name`,`country_alpha2code_by_citizenship`,`country_subdivision_name_by_subdivision_code`,`document_file_format_from_extension`]).or((0,e.zStrictObject)({matchExpression:e.z.string(),value:e.z.string()}).array())}).optional(),properties:e.z.lazy(()=>A).array().optional(),requiredScopes:e.z.string().optional()}),ne=e.z.union([(0,e.zStrictObject)({values:e.z.string().array().min(1)}),(0,e.zStrictObject)({ref:e.z.string()})]),j=(0,e.zStrictObject)({name:e.z.string(),type:e.z.enum([`string`,`number`,`boolean`,`datetime_string`,`object`,`enum`]),required:e.z.boolean(),description:e.z.string(),array:e.z.boolean().optional().default(!1),in:e.z.enum([`body`,`query`,`path`,`headers`]),properties:e.z.lazy(()=>j.omit({in:!0})).array().optional(),oneOf:ne.optional()}).refine(e=>e.type!==`enum`||e.oneOf!==void 0,{message:`oneOf is required when type is 'enum'`}).refine(e=>e.type===`enum`||e.oneOf===void 0,{message:`oneOf is only allowed when type is 'enum'`}),re=e.z.object({exampleDescription:e.z.string().optional()}).catchall(e.z.unknown()),M=(0,e.zStrictObject)({actionId:e.z.string(),categories:e.z.string().array(),actionType:e.z.enum([`list`,`get`,`create`,`update`,`delete`,`custom`,`refresh_token`,`unknown`]),schema:e.z.string().optional(),schemaType:e.z.enum([`native`,`unified`]).optional().default(`native`),entrypointUrl:e.z.string().optional(),entrypointHttpMethod:e.z.string().optional(),label:e.z.string(),description:e.z.string(),details:e.z.string().optional(),examples:re.array().optional(),tags:e.z.string().array().optional(),releaseStage:e.z.enum(i.ReleaseStages).optional(),resources:e.z.string().optional(),responses:(0,e.zStrictObject)({statusCode:e.z.number(),description:e.z.string()}).array().optional(),requiredScopes:e.z.string().optional(),inputs:j.array().optional(),cursor:(0,e.zStrictObject)({enabled:e.z.boolean(),pageSize:e.z.number()}).optional(),compositeIdentifiers:(0,e.zStrictObject)({enabled:e.z.boolean(),version:e.z.number().optional(),fields:(0,e.zStrictObject)({targetFieldKey:e.z.string(),remote:e.z.string().optional(),components:e.z.string().array()}).array().optional()}).optional(),scheduledJobs:(0,e.zStrictObject)({enabled:e.z.boolean(),type:e.z.enum([`data_sync`]),schedule:e.z.string(),description:e.z.string(),requestParams:(0,e.zStrictObject)({fields:e.z.string().array().optional(),expand:e.z.string().array().optional(),filter:e.z.record(e.z.string(),e.z.string()).optional()}).optional(),syncFilter:(0,e.zStrictObject)({name:e.z.enum([`updated_after`,`created_after`]),initialLoopbackPeriod:e.z.string(),incrementalLoopbackPeriod:e.z.string()}).optional()}).array().optional(),fieldConfigs:A.array().optional(),steps:(0,e.zStrictObject)({stepId:e.z.string(),description:e.z.string(),stepFunction:(0,e.zStrictObject)({functionName:e.z.string(),version:e.z.string().optional(),parameters:e.z.record(e.z.string(),e.z.unknown())}),condition:e.z.string().optional(),ignoreError:e.z.boolean().optional()}).array(),result:e.z.string().or(e.z.record(e.z.string(),e.z.unknown())).optional()}),N=(0,e.zStrictObject)({schedule:e.z.string().optional(),action:M.extend({actionType:e.z.literal(`refresh_token`)})}),P=(0,e.zStrictObject)({mainRatelimit:e.z.number(),subPools:e.z.array((0,e.zStrictObject)({subPoolKey:e.z.string(),urlPattern:e.z.string(),rateLimit:e.z.number()})).optional(),mappedRateLimitErrors:e.z.array((0,e.zStrictObject)({errorStatus:e.z.number(),errorMessage:e.z.string(),errorMessagePath:e.z.string().optional(),retryAfterPath:e.z.string().optional(),retryAfterUnit:e.z.union([e.z.literal(`seconds`),e.z.literal(`milliseconds`),e.z.literal(`date`)]).optional(),retryAfterValue:e.z.number().optional()})).optional()}),F=(0,e.zStrictObject)({mainMaxConcurrency:e.z.number(),subPools:e.z.array((0,e.zStrictObject)({subPoolKey:e.z.string(),urlPattern:e.z.string(),maxConcurrency:e.z.number()})).optional()}),I=(0,e.zStrictObject)({label:e.z.string(),authorization:i.AUTHORIZATION_SCHEMA,requiredScopes:e.z.string().optional(),environments:(0,e.zStrictObject)({key:e.z.string(),name:e.z.string()}).array(),support:(0,e.zStrictObject)({link:e.z.string().optional(),description:e.z.string().optional()}).optional(),configFields:k.array().optional(),setupFields:k.array().optional(),refreshAuthentication:N.optional(),testActions:(0,e.zStrictObject)({action:e.z.string().or(M),condition:e.z.string().optional(),required:e.z.boolean().default(!0)}).array().optional()}),ie=I.extend({type:e.z.literal(`oauth2`),grantType:e.z.enum([`authorization_code`,`client_credentials`]).default(`authorization_code`)}),ae=I.extend({type:e.z.literal(`custom`)}),oe=I.extend({type:e.z.literal(`oidc`)}),se=e.z.discriminatedUnion(`type`,[ie,ae,oe]),ce=(0,e.zStrictObject)({StackOne:e.z.string(),info:(0,e.zStrictObject)({title:e.z.string(),version:e.z.string(),key:e.z.string(),assets:(0,e.zStrictObject)({icon:e.z.string()}),description:e.z.string(),details:e.z.string().optional()}),resources:e.z.string().optional(),baseUrl:e.z.string(),scopeDefinitions:e.z.record(e.z.string(),(0,e.zStrictObject)({description:e.z.string(),includes:e.z.string().optional()})).optional(),authentication:e.z.record(e.z.string(),se).array().optional(),actions:M.array().optional(),rateLimit:P.optional(),concurrency:F.optional(),releaseStage:e.z.enum(i.ReleaseStages).optional()}).strict();function L(t){try{let n=Ae(ce,(0,o.parse)(t)),r=le(n.scopeDefinitions),i={title:n.info.title,version:n.info.version,key:n.info.key,assets:n.info.assets,description:n.info.description,details:n.info.details,resources:n.resources,rateLimit:n.rateLimit,concurrency:n.concurrency,releaseStage:n.releaseStage,scopeDefinitions:r},a=pe(n),s={baseUrl:n.baseUrl,authentication:ue(a)},c=ye(n,s);return i.actions=c,de(n,n.info.key,a,c,s),i.authentication=a,(0,e.notMissing)(c)&&(i.categories=fe(Object.values(c))),i}catch(e){if(e instanceof v)throw e;let t=e.message,n=t.match(/at line (\d+)/);throw new y(n?parseInt(n[1],10):1,t)}}const le=e=>{if(!e)return;let t={};for(let[n,r]of Object.entries(e)){let e=r?.includes?.split(` `).filter(e=>e.trim().length>0)??void 0;t[n]={name:n,description:r.description,includes:e}}let n=new Set(Object.keys(t)),r=[];if(Object.values(t).forEach(e=>{e.includes&&e.includes.forEach(t=>{n.has(t)||r.push({message:`Scope '${t}' included in scope '${e.name}' is not defined.`,path:[`scopeDefinitions`,e.name],keys:[`includes`]})})}),r.length>0)throw new w(r);return t},ue=e=>{let t={};for(let[n,r]of Object.entries(e))if(r&&typeof r==`object`){let{setupFields:e,configFields:i,support:a,refreshAuthentication:o,testActions:s,requiredScopes:c,...l}=r;t[n]=ue(l)}else t[n]=r;return t},de=(t,n,r,i,a)=>{if(!r||!i)return;let o=0;for(let s of Object.values(r)){for(let r of Object.values(s))r.testActions=r.testActions?.map((r,s)=>{if((0,e.notMissing)(r.action))if(typeof r.action==`string`){let e=f(n,r.action),t=Object.values(i).find(t=>t.id===e);if(t)return{...r,action:t}}else{let e=R(t,[`authentication`,o,`testActions`,s],f(n,r.action.actionId),r.action,a);return{...r,action:e}}return r});o++}},fe=e=>{let t=e.reduce((e,t)=>{for(let n of t.categories)e.add(n);return e},new Set);return Array.from(t)},pe=t=>{let n={},r=new Set(Object.keys(t.scopeDefinitions||{})),i=[];for(let[a,o]of(t.authentication??[]).entries()){let[s]=Object.keys(o);n[s]=o[s].environments.reduce((n,c)=>{let{key:l,name:u}=c,{environments:d,refreshAuthentication:p,testActions:m,requiredScopes:h,...g}=o[s],_=h?h.split(` `).filter(e=>e.trim().length>0):void 0;Object.values(_??[]).forEach(e=>{r.has(e)||i.push({message:`Scope '${e}' included in authentication '${s}' is not defined.`,path:[`authentication`,a],keys:[`requiredScopes`]})});let v=(0,e.notMissing)(p)?{schedule:p.schedule,action:R(t,[`authentication`,a,`refreshAuthentication`,`action`],f(t.info.key,p.action.actionId),p.action)}:void 0;return n[l]={...g,refreshAuthentication:v,requiredScopes:_,envKey:l,envName:u,testActions:m},n},{})}if(i.length>0)throw new w(i);return n},me=e=>e.entrypointUrl&&e.entrypointHttpMethod?`${e.entrypointHttpMethod.toUpperCase()} ${e.entrypointUrl}`:void 0,he=e=>e.actionType===`list`?`GET /${e.schema}`:`GET /${e.schema}/:id`,ge=e=>{if(e.actionType!==`refresh_token`)return e.entrypointHttpMethod??`get`},_e=t=>{if(!(t.actionType===`refresh_token`||(0,e.isMissing)(t.schema)))return t.actionType===`list`?`/${t.schema}`:`/${t.schema}/:id`},ve=e=>{let t={success:E(e.actionType),errors:D()};return e.responses?.reduce((e,t)=>((0,a.isSuccessStatusCode)(t.statusCode)?e.success={statusCode:t.statusCode,description:t.description}:e.errors[t.statusCode]={statusCode:t.statusCode,description:t.description},e),t)??t},ye=(e,t)=>e.actions?.reduce((n,r,i)=>{let a=me(r),o=he(r),s=a??o,c=f(e.info.key,r.actionId);return n[c]=R(e,[`actions`,i],c,r,t,s),n},{}),be=(e,t)=>{if(t){for(let n of t)if(n.type===`enum`&&n.oneOf&&`ref`in n.oneOf&&!(0,i.isValidEnumRef)(n.oneOf.ref))throw new C(e,n.name,n.oneOf.ref)}},xe=(t,n,r)=>{if(!n||n.length===0)return;let i={};for(let e of r){let t=B(e);e.required||(t=t.optional()),i[e.name]=t}let a=e.z.object(i).strict();for(let e=0;e<n.length;e++){let{exampleDescription:r,...i}=n[e],o=a.safeParse(i);if(!o.success){let n=o.error.issues.map(e=>({code:e.code,message:e.message,input:e.input,path:e.path,keys:[]}));throw new ee(t,e,n)}}},R=(e,t,n,r,i,a)=>{let o=_e(r),s=ve(r),c=Ee(r),l=r.inputs||[];c.enabled&&(l?.push({type:`string`,name:`page_size`,in:`query`,required:!1,description:`Number of items to return per page`,array:!1}),l?.push({type:`string`,name:`next`,in:`query`,required:!1,description:`Token for the next page of results`,array:!1})),be(n,l),xe(n,r.examples,l);let u=ge(r),d=new Set(Object.keys(e.scopeDefinitions||{})),f=[],p=r.requiredScopes?r.requiredScopes.split(` `).filter(e=>e.trim().length>0):void 0;if(Object.values(p??[]).forEach(e=>{d.has(e)||f.push({message:`Scope '${e}' included in action '${r.actionId}' is not defined.`,path:t,keys:[`requiredScopes`]})}),f.length>0)throw new w(f);return{id:n,categories:r.categories,label:r.label,description:r.description,details:r.details,examples:r.examples,actionType:r.actionType,schemaType:r.schemaType??`native`,entrypointUrl:r.entrypointUrl??o,entrypointHttpMethod:u,endpoint:a,tags:r.tags,releaseStage:r.releaseStage,resources:r.resources,responses:s,cursor:c,compositeIdentifiers:De(r),scheduledJobs:Oe(r),requiredScopes:p,inputs:l,steps:r.steps.reduce((n,a)=>{let{customErrors:o,...s}=a.stepFunction.parameters??{},c=Se(e,t,a.stepFunction.functionName===`map_fields`||a.stepFunction.functionName===`typecast`?s.fields??r.fieldConfigs:void 0),l={id:a.stepId,description:a.description,condition:a.condition,ignoreError:a.ignoreError,stepFunction:{functionName:a.stepFunction.functionName,version:a.stepFunction.version,params:{...ke({stepFunctionName:a.stepFunction.functionName,baseRequestParams:i,customErrors:o}),...c??{},...s}}};return Ce(r.actionId,l),n[a.stepId]=l,n},{}),result:r.result}},Se=(t,n,r)=>{if((0,e.isMissing)(r)||!Array.isArray(r))return;let i=new Set(Object.keys(t.scopeDefinitions||{})),a=[],o=r.map((e,t)=>{if(typeof e!=`object`||!e)return;let r=e.requiredScopes?e.requiredScopes.split(` `).filter(e=>e.trim().length>0):void 0;return Object.values(r??[]).forEach(r=>{i.has(r)||a.push({message:`Scope '${r}' included in field config '${e.targetFieldKey}' is not defined.`,path:[...n,`fieldConfigs`,t],keys:[`requiredScopes`]})}),{...e,requiredScopes:r}});if(a.length>0)throw new w(a);return{fields:o}},Ce=(e,t)=>{let n=t.stepFunction.version??`1`,r=i.StepFunctionsRegistry[t.stepFunction.functionName]?.[`v${n}`];if(!r)throw new x(e,t.id,t.stepFunction.functionName,n);let a=r.inputSchema;a&&je(a,t.stepFunction.params,e,t.id,t.stepFunction.functionName,n)},z=(t,n)=>{if(!t.inputs)return{};let r=we(t.inputs),i=e.z.object(r).parse(n);return{...i.headers??{},...i.query??{},...i.path??{},...i.body??{}}},we=t=>{let n=t.reduce((e,t)=>(e[t.in]||(e[t.in]=[]),e[t.in].push(t),e),{}),r={};for(let[t,i]of Object.entries(n)){let n={};for(let e of i){let t=B(e);e.description&&(t=t.describe(e.description)),e.required||(t=t.optional()),n[e.name]=t}Object.keys(n).length>0&&(r[t]=e.z.object(n))}return r},Te=(t,n)=>{if(!n)throw Error(`Enum input "${t}" requires oneOf definition`);let r;if(`values`in n)r=n.values;else if(`ref`in n){let e=(0,i.getInputEnumValues)(n.ref);if(!e)throw Error(`Unknown enum reference "${n.ref}" in input "${t}"`);r=e}else throw Error(`Invalid oneOf definition in input "${t}"`);if(r.length===0)throw Error(`Enum input "${t}" must have at least one allowed value`);return e.z.enum(r)},B=t=>{let n;switch(t.type){case`string`:case`datetime_string`:n=e.z.string();break;case`number`:n=e.z.number();break;case`boolean`:n=e.z.boolean();break;case`enum`:n=Te(t.name,t.oneOf);break;case`object`:if(t.properties&&t.properties.length>0){let r={};for(let e of t.properties){let t=B(e);e.description&&(t=t.describe(e.description)),e.required||(t=t.optional()),r[e.name]=t}n=e.z.object(r)}else n=e.z.record(e.z.string(),e.z.unknown());break;default:n=e.z.unknown()}return t.array&&(n=e.z.array(n)),n},Ee=e=>{let t=e.actionType===`list`,n=e.cursor??{enabled:t,pageSize:25};return{enabled:n.enabled&&t,pageSize:n.pageSize}},De=t=>{if(t.actionType===`refresh_token`||(0,e.isMissing)(t.compositeIdentifiers))return{enabled:!1};let n=[];for(let e of t.compositeIdentifiers?.fields??[]){let r=e.components.map(e=>({name:e,alias:t.fieldConfigs?.find(t=>t.targetFieldKey===e)?.alias}));n.push({targetFieldKey:e.targetFieldKey,remote:e.remote,components:r})}return{enabled:t.compositeIdentifiers.enabled,version:t.compositeIdentifiers.version,fields:n.length>0?n:void 0}},Oe=t=>{if(!(0,e.isMissing)(t.scheduledJobs))return t.scheduledJobs},ke=({stepFunctionName:e,baseRequestParams:t,customErrors:n={}})=>{if(e===`request`||e===`paginated_request`||e===`soap_request`||e===`soap_paginated_request`){let e=[{receivedStatus:500,targetStatus:502}],r=[...n&&Array.isArray(n)?n:[],...e];return{...t,customErrors:r}}else return{}},Ae=(e,t)=>{let n=e.safeParse(t);if(n.success)return n.data;throw new b(n.error.issues.map(e=>({code:e.code,message:e.message,input:e.input,path:e.path,keys:e?.keys??[]})),`Invalid connector schema`)},je=(e,t,n,r,i,a)=>{let o=e.safeParse(t);if(o.success)return o.data;throw new S(n,r,i,a,o.error.issues.map(e=>({code:e.code,message:e.message,input:e.input,path:e.path,keys:e?.keys??[]})))},V=(t,n,r)=>{if(t.authentication?.[n]?.[r]?.type!==`oauth2`)return;let i=t.authentication?.[n]?.[r]?.refreshAuthentication?.action;if((0,e.notMissing)(i))return{action:i,params:{}}},Me=(t,n,r)=>t.authentication?.[n]?.[r]?.type===`oauth2`?(0,e.notMissing)(V(t,n,r)):!1,Ne=(e,t,n)=>{let r=e.authentication?.[t]?.[n],i=r?.authorization;if(r?.type===`oauth2`)return i?.tokenExpiresIn},Pe=(e,t,n)=>{let r=e.authentication?.[t]?.[n],i=r?.authorization;if(r?.type===`oauth2`)return i?.tokenRefreshExpiresIn},Fe=(e,t=[])=>Re(t,e.releaseStage),Ie=(e,t=[])=>{if(!Fe(e,t))return;let n={};if(e.actions)for(let[r,i]of Object.entries(e.actions))Re(t,i.releaseStage)&&(n[r]=i);return{...e,actions:n}},Le=e=>e??`ga`,Re=(e=[],t)=>{let n=Le(t);return e.includes(n)},ze=t=>{try{return{success:!0,connector:L(t)}}catch(n){if(n instanceof b||n instanceof w){let r=n.issues,i=[];return r.forEach(n=>{let r=n?.keys?.[0],a=(0,e.isMissing)(r)?n.path:[...n.path,r],o=Be(a,t);i.push({line:o,message:n.message,field:a.join(`.`)})}),{success:!1,errors:i}}else if(n instanceof y)return{success:!1,errors:[{line:n.line,message:`The YAML connector file is not valid. Please check the syntax and structure.`,field:void 0}]};else if(n instanceof x)return{success:!1,errors:[{line:Ve(n.actionId,n.stepId,n.functionName,!1,t),message:n.message,field:void 0}]};else if(n instanceof S){let r=n.issues,i=[];return r.forEach(r=>{let a=r?.keys?.[0],o=(0,e.isMissing)(a)?r.path:[...r.path,a],s=Ve(n.actionId,n.stepId,n.functionName,!0,t);i.push({line:s,message:r.message,field:o.join(`.`)})}),{success:!1,errors:i}}}return{success:!1,errors:[{line:1,message:`An unknown error occurred while parsing the connector.`,field:void 0}]}},Be=(t,n)=>{let r=n.split(`
4
+ `).filter(e=>e.trim()!==``)}catch(t){throw Error(`Failed to load partial file '${e}': ${t.message}`)}};var v=class e extends Error{constructor(t,n){super(n),this.name=`InternalConnectSDKError`,this.errorType=t,Error.captureStackTrace&&Error.captureStackTrace(this,e)}toString(){return`${this.name} [${this.errorType}]: ${this.message}`}},y=class extends v{constructor(e,t){super(`INVALID_YAML_FILE_ERROR`,t),this.name=`InvalidYamlFileError`,this.line=e??1}},b=class extends v{constructor(e,t){super(`SCHEMA_VALIDATION_ERROR`,t),this.name=`SchemaValidationError`,this.issues=e}},x=class extends v{constructor(e,t,n,r=`1`){let i=`Invalid Step Function: '${n}' (v${r}) on step '${t}'. Please ensure the function name and version are correct in the action '${e}'.`;super(`INVALID_STEP_FUNCTION`,i),this.name=`InvalidStepFunctionError`,this.actionId=e,this.stepId=t,this.functionName=n,this.functionVersion=r}},S=class extends v{constructor(e,t,n,r=`1`,i){let a=`Invalid parameters for Step Function: '${n}' (v${r}) on step '${t}'. Please ensure the parameters are correct in the action '${e}'.`;super(`INVALID_STEP_FUNCTION_PARAMS`,a),this.name=`InvalidStepFunctionParamsError`,this.actionId=e,this.stepId=t,this.functionName=n,this.functionVersion=r,this.issues=i,this.message=a}},ee=class extends v{constructor(e,t,n){let r=`Invalid example ${t} for action '${e}': ${n.map(e=>`${e.path.join(`.`)}: ${e.message}`).join(`, `)}`;super(`INVALID_ACTION_EXAMPLE`,r),this.name=`InvalidActionExampleError`,this.actionId=e,this.exampleIndex=t,this.issues=n}},C=class extends v{constructor(e,t,n){let r=`Invalid enum reference "${n}" in action "${e}", input "${t}". Check that the enum is defined in INPUT_ENUM_REGISTRY.`;super(`INVALID_ENUM_REFERENCE`,r),this.name=`InvalidEnumReferenceError`,this.actionId=e,this.inputName=t,this.enumRef=n}},w=class extends v{constructor(e){super(`MISSING_SCOPE_DEFINITION`,`Missing scope definition. Check that the scope is defined in the scope definitions.`),this.name=`MissingScopeDefinitionError`,this.issues=e}};const te=25,T=e=>({statusCode:400,message:`Invalid request - validation failed`,errors:e.map(e=>({property:e.field,location:e.location,expected:e.expected,received:e.received,message:e.message}))}),E=e=>{switch(e){case`list`:return{statusCode:200,description:`The list of records was retrieved.`};case`get`:return{statusCode:200,description:`The record with the given identifier was retrieved.`};case`create`:return{statusCode:201,description:`The record was created successfully.`};case`update`:return{statusCode:200,description:`The record was updated successfully.`};case`delete`:return{statusCode:204,description:`The record was deleted successfully.`};case`custom`:return{statusCode:200,description:`The action was executed successfully.`};case`refresh_token`:return{statusCode:200,description:`The refresh token action was executed successfully.`};case`unknown`:return{statusCode:200};default:throw Error(`Unknown action type: ${e}`)}},D=()=>({400:{statusCode:400,description:`Invalid request.`},401:{statusCode:401,description:`Unauthorized access.`},403:{statusCode:403,description:`Forbidden.`},404:{statusCode:404,description:`Resource not found.`},500:{statusCode:500,description:`Server error while executing the request.`}}),O={key:e.z.string(),label:e.z.string(),required:e.z.boolean().optional().default(!1),secret:e.z.boolean().optional().default(!1),readOnly:e.z.boolean().optional().default(!1),placeholder:e.z.string().optional(),description:e.z.string().optional(),tooltip:e.z.string().optional()},k=e.z.discriminatedUnion(`type`,[(0,e.zStrictObject)({...O,type:e.z.enum([`text`,`password`])}),(0,e.zStrictObject)({...O,type:e.z.literal(`select`),options:(0,e.zStrictObject)({value:e.z.string(),label:e.z.string()}).array()})]),A=(0,e.zStrictObject)({targetFieldKey:e.z.string(),alias:e.z.string().optional(),expression:e.z.string().optional(),values:e.z.unknown().optional(),type:e.z.enum([`string`,`number`,`boolean`,`datetime_string`,`enum`,`object`]),array:e.z.boolean().default(!1),custom:e.z.boolean().default(!1),hidden:e.z.boolean().default(!1),enumMapper:(0,e.zStrictObject)({matcher:e.z.enum([`country_alpha2code_by_alpha2code`,`country_alpha3code_by_alpha3code`,`country_code_by_country_code`,`country_name_by_country_name`,`country_name_by_alpha3code`,`country_name_by_alpha2code`,`country_name_by_country_code`,`country_alpha3code_by_alpha2code`,`country_alpha3code_by_country_name`,`country_alpha3code_by_country_code`,`country_alpha2code_by_alpha3code`,`country_alpha2code_by_country_name`,`country_alpha2code_by_country_code`,`country_code_by_alpha2code`,`country_code_by_alpha3code`,`country_code_by_country_name`,`country_subdivisions_by_alpha2code`,`country_subdivision_code_by_subdivision_name`,`country_alpha2code_by_citizenship`,`country_subdivision_name_by_subdivision_code`,`document_file_format_from_extension`]).or((0,e.zStrictObject)({matchExpression:e.z.string(),value:e.z.string()}).array())}).optional(),properties:e.z.lazy(()=>A).array().optional(),requiredScopes:e.z.string().optional()}),ne=e.z.union([(0,e.zStrictObject)({values:e.z.string().array().min(1)}),(0,e.zStrictObject)({ref:e.z.string()})]),j=(0,e.zStrictObject)({name:e.z.string(),type:e.z.enum([`string`,`number`,`boolean`,`datetime_string`,`object`,`enum`]),required:e.z.boolean(),description:e.z.string(),array:e.z.boolean().optional().default(!1),arrayFormat:e.z.enum([`repeat`,`brackets`,`comma`]).optional(),in:e.z.enum([`body`,`query`,`path`,`headers`]),properties:e.z.lazy(()=>j.omit({in:!0})).array().optional(),oneOf:ne.optional()}).refine(e=>e.type!==`enum`||e.oneOf!==void 0,{message:`oneOf is required when type is 'enum'`}).refine(e=>e.type===`enum`||e.oneOf===void 0,{message:`oneOf is only allowed when type is 'enum'`}),re=e.z.object({exampleDescription:e.z.string().optional()}).catchall(e.z.unknown()),M=(0,e.zStrictObject)({actionId:e.z.string(),categories:e.z.string().array(),actionType:e.z.enum([`list`,`get`,`create`,`update`,`delete`,`custom`,`refresh_token`,`unknown`]),schema:e.z.string().optional(),schemaType:e.z.enum([`native`,`unified`]).optional().default(`native`),entrypointUrl:e.z.string().optional(),entrypointHttpMethod:e.z.string().optional(),label:e.z.string(),description:e.z.string(),details:e.z.string().optional(),examples:re.array().optional(),tags:e.z.string().array().optional(),releaseStage:e.z.enum(i.ReleaseStages).optional(),resources:e.z.string().optional(),responses:(0,e.zStrictObject)({statusCode:e.z.number(),description:e.z.string()}).array().optional(),requiredScopes:e.z.string().optional(),inputs:j.array().optional(),cursor:(0,e.zStrictObject)({enabled:e.z.boolean(),pageSize:e.z.number()}).optional(),compositeIdentifiers:(0,e.zStrictObject)({enabled:e.z.boolean(),version:e.z.number().optional(),fields:(0,e.zStrictObject)({targetFieldKey:e.z.string(),remote:e.z.string().optional(),components:e.z.string().array()}).array().optional()}).optional(),scheduledJobs:(0,e.zStrictObject)({enabled:e.z.boolean(),type:e.z.enum([`data_sync`]),schedule:e.z.string(),description:e.z.string(),requestParams:(0,e.zStrictObject)({fields:e.z.string().array().optional(),expand:e.z.string().array().optional(),filter:e.z.record(e.z.string(),e.z.string()).optional()}).optional(),syncFilter:(0,e.zStrictObject)({name:e.z.enum([`updated_after`,`created_after`]),initialLoopbackPeriod:e.z.string(),incrementalLoopbackPeriod:e.z.string()}).optional()}).array().optional(),fieldConfigs:A.array().optional(),steps:(0,e.zStrictObject)({stepId:e.z.string(),description:e.z.string(),stepFunction:(0,e.zStrictObject)({functionName:e.z.string(),version:e.z.string().optional(),parameters:e.z.record(e.z.string(),e.z.unknown())}),condition:e.z.string().optional(),ignoreError:e.z.boolean().optional()}).array(),result:e.z.string().or(e.z.record(e.z.string(),e.z.unknown())).optional()}),N=(0,e.zStrictObject)({schedule:e.z.string().optional(),action:M.extend({actionType:e.z.literal(`refresh_token`)})}),P=(0,e.zStrictObject)({mainRatelimit:e.z.number(),subPools:e.z.array((0,e.zStrictObject)({subPoolKey:e.z.string(),urlPattern:e.z.string(),rateLimit:e.z.number()})).optional(),mappedRateLimitErrors:e.z.array((0,e.zStrictObject)({errorStatus:e.z.number(),errorMessage:e.z.string(),errorMessagePath:e.z.string().optional(),retryAfterPath:e.z.string().optional(),retryAfterUnit:e.z.union([e.z.literal(`seconds`),e.z.literal(`milliseconds`),e.z.literal(`date`)]).optional(),retryAfterValue:e.z.number().optional()})).optional()}),F=(0,e.zStrictObject)({mainMaxConcurrency:e.z.number(),subPools:e.z.array((0,e.zStrictObject)({subPoolKey:e.z.string(),urlPattern:e.z.string(),maxConcurrency:e.z.number()})).optional()}),I=(0,e.zStrictObject)({label:e.z.string(),authorization:i.AUTHORIZATION_SCHEMA,requiredScopes:e.z.string().optional(),environments:(0,e.zStrictObject)({key:e.z.string(),name:e.z.string()}).array(),support:(0,e.zStrictObject)({link:e.z.string().optional(),description:e.z.string().optional()}).optional(),configFields:k.array().optional(),setupFields:k.array().optional(),refreshAuthentication:N.optional(),testActions:(0,e.zStrictObject)({action:e.z.string().or(M),condition:e.z.string().optional(),required:e.z.boolean().default(!0)}).array().optional()}),ie=I.extend({type:e.z.literal(`oauth2`),grantType:e.z.enum([`authorization_code`,`client_credentials`]).default(`authorization_code`)}),ae=I.extend({type:e.z.literal(`custom`)}),oe=I.extend({type:e.z.literal(`oidc`)}),se=e.z.discriminatedUnion(`type`,[ie,ae,oe]),ce=(0,e.zStrictObject)({StackOne:e.z.string(),info:(0,e.zStrictObject)({title:e.z.string(),version:e.z.string(),key:e.z.string(),assets:(0,e.zStrictObject)({icon:e.z.string()}),description:e.z.string(),details:e.z.string().optional()}),resources:e.z.string().optional(),baseUrl:e.z.string(),scopeDefinitions:e.z.record(e.z.string(),(0,e.zStrictObject)({description:e.z.string(),includes:e.z.string().optional()})).optional(),authentication:e.z.record(e.z.string(),se).array().optional(),actions:M.array().optional(),rateLimit:P.optional(),concurrency:F.optional(),releaseStage:e.z.enum(i.ReleaseStages).optional()}).strict();function L(t){try{let n=Ae(ce,(0,o.parse)(t)),r=le(n.scopeDefinitions),i={title:n.info.title,version:n.info.version,key:n.info.key,assets:n.info.assets,description:n.info.description,details:n.info.details,resources:n.resources,rateLimit:n.rateLimit,concurrency:n.concurrency,releaseStage:n.releaseStage,scopeDefinitions:r},a=pe(n),s={baseUrl:n.baseUrl,authentication:ue(a)},c=ye(n,s);return i.actions=c,de(n,n.info.key,a,c,s),i.authentication=a,(0,e.notMissing)(c)&&(i.categories=fe(Object.values(c))),i}catch(e){if(e instanceof v)throw e;let t=e.message,n=t.match(/at line (\d+)/);throw new y(n?parseInt(n[1],10):1,t)}}const le=e=>{if(!e)return;let t={};for(let[n,r]of Object.entries(e)){let e=r?.includes?.split(` `).filter(e=>e.trim().length>0)??void 0;t[n]={name:n,description:r.description,includes:e}}let n=new Set(Object.keys(t)),r=[];if(Object.values(t).forEach(e=>{e.includes&&e.includes.forEach(t=>{n.has(t)||r.push({message:`Scope '${t}' included in scope '${e.name}' is not defined.`,path:[`scopeDefinitions`,e.name],keys:[`includes`]})})}),r.length>0)throw new w(r);return t},ue=e=>{let t={};for(let[n,r]of Object.entries(e))if(r&&typeof r==`object`){let{setupFields:e,configFields:i,support:a,refreshAuthentication:o,testActions:s,requiredScopes:c,...l}=r;t[n]=ue(l)}else t[n]=r;return t},de=(t,n,r,i,a)=>{if(!r||!i)return;let o=0;for(let s of Object.values(r)){for(let r of Object.values(s))r.testActions=r.testActions?.map((r,s)=>{if((0,e.notMissing)(r.action))if(typeof r.action==`string`){let e=f(n,r.action),t=Object.values(i).find(t=>t.id===e);if(t)return{...r,action:t}}else{let e=R(t,[`authentication`,o,`testActions`,s],f(n,r.action.actionId),r.action,a);return{...r,action:e}}return r});o++}},fe=e=>{let t=e.reduce((e,t)=>{for(let n of t.categories)e.add(n);return e},new Set);return Array.from(t)},pe=t=>{let n={},r=new Set(Object.keys(t.scopeDefinitions||{})),i=[];for(let[a,o]of(t.authentication??[]).entries()){let[s]=Object.keys(o);n[s]=o[s].environments.reduce((n,c)=>{let{key:l,name:u}=c,{environments:d,refreshAuthentication:p,testActions:m,requiredScopes:h,...g}=o[s],_=h?h.split(` `).filter(e=>e.trim().length>0):void 0;Object.values(_??[]).forEach(e=>{r.has(e)||i.push({message:`Scope '${e}' included in authentication '${s}' is not defined.`,path:[`authentication`,a],keys:[`requiredScopes`]})});let v=(0,e.notMissing)(p)?{schedule:p.schedule,action:R(t,[`authentication`,a,`refreshAuthentication`,`action`],f(t.info.key,p.action.actionId),p.action)}:void 0;return n[l]={...g,refreshAuthentication:v,requiredScopes:_,envKey:l,envName:u,testActions:m},n},{})}if(i.length>0)throw new w(i);return n},me=e=>e.entrypointUrl&&e.entrypointHttpMethod?`${e.entrypointHttpMethod.toUpperCase()} ${e.entrypointUrl}`:void 0,he=e=>e.actionType===`list`?`GET /${e.schema}`:`GET /${e.schema}/:id`,ge=e=>{if(e.actionType!==`refresh_token`)return e.entrypointHttpMethod??`get`},_e=t=>{if(!(t.actionType===`refresh_token`||(0,e.isMissing)(t.schema)))return t.actionType===`list`?`/${t.schema}`:`/${t.schema}/:id`},ve=e=>{let t={success:E(e.actionType),errors:D()};return e.responses?.reduce((e,t)=>((0,a.isSuccessStatusCode)(t.statusCode)?e.success={statusCode:t.statusCode,description:t.description}:e.errors[t.statusCode]={statusCode:t.statusCode,description:t.description},e),t)??t},ye=(e,t)=>e.actions?.reduce((n,r,i)=>{let a=me(r),o=he(r),s=a??o,c=f(e.info.key,r.actionId);return n[c]=R(e,[`actions`,i],c,r,t,s),n},{}),be=(e,t)=>{if(t){for(let n of t)if(n.type===`enum`&&n.oneOf&&`ref`in n.oneOf&&!(0,i.isValidEnumRef)(n.oneOf.ref))throw new C(e,n.name,n.oneOf.ref)}},xe=(t,n,r)=>{if(!n||n.length===0)return;let i={};for(let e of r){let t=B(e);e.required||(t=t.optional()),i[e.name]=t}let a=e.z.object(i).strict();for(let e=0;e<n.length;e++){let{exampleDescription:r,...i}=n[e],o=a.safeParse(i);if(!o.success){let n=o.error.issues.map(e=>({code:e.code,message:e.message,input:e.input,path:e.path,keys:[]}));throw new ee(t,e,n)}}},R=(e,t,n,r,i,a)=>{let o=_e(r),s=ve(r),c=Ee(r),l=r.inputs||[];c.enabled&&(l?.push({type:`string`,name:`page_size`,in:`query`,required:!1,description:`Number of items to return per page`,array:!1}),l?.push({type:`string`,name:`next`,in:`query`,required:!1,description:`Token for the next page of results`,array:!1})),be(n,l),xe(n,r.examples,l);let u=ge(r),d=new Set(Object.keys(e.scopeDefinitions||{})),f=[],p=r.requiredScopes?r.requiredScopes.split(` `).filter(e=>e.trim().length>0):void 0;if(Object.values(p??[]).forEach(e=>{d.has(e)||f.push({message:`Scope '${e}' included in action '${r.actionId}' is not defined.`,path:t,keys:[`requiredScopes`]})}),f.length>0)throw new w(f);return{id:n,categories:r.categories,label:r.label,description:r.description,details:r.details,examples:r.examples,actionType:r.actionType,schemaType:r.schemaType??`native`,entrypointUrl:r.entrypointUrl??o,entrypointHttpMethod:u,endpoint:a,tags:r.tags,releaseStage:r.releaseStage,resources:r.resources,responses:s,cursor:c,compositeIdentifiers:De(r),scheduledJobs:Oe(r),requiredScopes:p,inputs:l,steps:r.steps.reduce((n,a)=>{let{customErrors:o,...s}=a.stepFunction.parameters??{},c=Se(e,t,a.stepFunction.functionName===`map_fields`||a.stepFunction.functionName===`typecast`?s.fields??r.fieldConfigs:void 0),l={id:a.stepId,description:a.description,condition:a.condition,ignoreError:a.ignoreError,stepFunction:{functionName:a.stepFunction.functionName,version:a.stepFunction.version,params:{...ke({stepFunctionName:a.stepFunction.functionName,baseRequestParams:i,customErrors:o}),...c??{},...s}}};return Ce(r.actionId,l),n[a.stepId]=l,n},{}),result:r.result}},Se=(t,n,r)=>{if((0,e.isMissing)(r)||!Array.isArray(r))return;let i=new Set(Object.keys(t.scopeDefinitions||{})),a=[],o=r.map((e,t)=>{if(typeof e!=`object`||!e)return;let r=e.requiredScopes?e.requiredScopes.split(` `).filter(e=>e.trim().length>0):void 0;return Object.values(r??[]).forEach(r=>{i.has(r)||a.push({message:`Scope '${r}' included in field config '${e.targetFieldKey}' is not defined.`,path:[...n,`fieldConfigs`,t],keys:[`requiredScopes`]})}),{...e,requiredScopes:r}});if(a.length>0)throw new w(a);return{fields:o}},Ce=(e,t)=>{let n=t.stepFunction.version??`1`,r=i.StepFunctionsRegistry[t.stepFunction.functionName]?.[`v${n}`];if(!r)throw new x(e,t.id,t.stepFunction.functionName,n);let a=r.inputSchema;a&&je(a,t.stepFunction.params,e,t.id,t.stepFunction.functionName,n)},z=(t,n)=>{if(!t.inputs)return{};let r=we(t.inputs),i=e.z.object(r).parse(n);return{...i.headers??{},...i.query??{},...i.path??{},...i.body??{}}},we=t=>{let n=t.reduce((e,t)=>(e[t.in]||(e[t.in]=[]),e[t.in].push(t),e),{}),r={};for(let[t,i]of Object.entries(n)){let n={};for(let e of i){let t=B(e);e.description&&(t=t.describe(e.description)),e.required||(t=t.optional()),n[e.name]=t}Object.keys(n).length>0&&(r[t]=e.z.object(n))}return r},Te=(t,n)=>{if(!n)throw Error(`Enum input "${t}" requires oneOf definition`);let r;if(`values`in n)r=n.values;else if(`ref`in n){let e=(0,i.getInputEnumValues)(n.ref);if(!e)throw Error(`Unknown enum reference "${n.ref}" in input "${t}"`);r=e}else throw Error(`Invalid oneOf definition in input "${t}"`);if(r.length===0)throw Error(`Enum input "${t}" must have at least one allowed value`);return e.z.enum(r)},B=t=>{let n;switch(t.type){case`string`:case`datetime_string`:n=e.z.string();break;case`number`:n=e.z.number();break;case`boolean`:n=e.z.boolean();break;case`enum`:n=Te(t.name,t.oneOf);break;case`object`:if(t.properties&&t.properties.length>0){let r={};for(let e of t.properties){let t=B(e);e.description&&(t=t.describe(e.description)),e.required||(t=t.optional()),r[e.name]=t}n=e.z.object(r)}else n=e.z.record(e.z.string(),e.z.unknown());break;default:n=e.z.unknown()}return t.array&&(n=e.z.array(n)),n},Ee=e=>{let t=e.actionType===`list`,n=e.cursor??{enabled:t,pageSize:25};return{enabled:n.enabled&&t,pageSize:n.pageSize}},De=t=>{if(t.actionType===`refresh_token`||(0,e.isMissing)(t.compositeIdentifiers))return{enabled:!1};let n=[];for(let e of t.compositeIdentifiers?.fields??[]){let r=e.components.map(e=>({name:e,alias:t.fieldConfigs?.find(t=>t.targetFieldKey===e)?.alias}));n.push({targetFieldKey:e.targetFieldKey,remote:e.remote,components:r})}return{enabled:t.compositeIdentifiers.enabled,version:t.compositeIdentifiers.version,fields:n.length>0?n:void 0}},Oe=t=>{if(!(0,e.isMissing)(t.scheduledJobs))return t.scheduledJobs},ke=({stepFunctionName:e,baseRequestParams:t,customErrors:n={}})=>{if(e===`request`||e===`paginated_request`||e===`soap_request`||e===`soap_paginated_request`){let e=[{receivedStatus:500,targetStatus:502}],r=[...n&&Array.isArray(n)?n:[],...e];return{...t,customErrors:r}}else return{}},Ae=(e,t)=>{let n=e.safeParse(t);if(n.success)return n.data;throw new b(n.error.issues.map(e=>({code:e.code,message:e.message,input:e.input,path:e.path,keys:e?.keys??[]})),`Invalid connector schema`)},je=(e,t,n,r,i,a)=>{let o=e.safeParse(t);if(o.success)return o.data;throw new S(n,r,i,a,o.error.issues.map(e=>({code:e.code,message:e.message,input:e.input,path:e.path,keys:e?.keys??[]})))},V=(t,n,r)=>{if(t.authentication?.[n]?.[r]?.type!==`oauth2`)return;let i=t.authentication?.[n]?.[r]?.refreshAuthentication?.action;if((0,e.notMissing)(i))return{action:i,params:{}}},Me=(t,n,r)=>t.authentication?.[n]?.[r]?.type===`oauth2`?(0,e.notMissing)(V(t,n,r)):!1,Ne=(e,t,n)=>{let r=e.authentication?.[t]?.[n],i=r?.authorization;if(r?.type===`oauth2`)return i?.tokenExpiresIn},Pe=(e,t,n)=>{let r=e.authentication?.[t]?.[n],i=r?.authorization;if(r?.type===`oauth2`)return i?.tokenRefreshExpiresIn},Fe=(e,t=[])=>Re(t,e.releaseStage),Ie=(e,t=[])=>{if(!Fe(e,t))return;let n={};if(e.actions)for(let[r,i]of Object.entries(e.actions))Re(t,i.releaseStage)&&(n[r]=i);return{...e,actions:n}},Le=e=>e??`ga`,Re=(e=[],t)=>{let n=Le(t);return e.includes(n)},ze=t=>{try{return{success:!0,connector:L(t)}}catch(n){if(n instanceof b||n instanceof w){let r=n.issues,i=[];return r.forEach(n=>{let r=n?.keys?.[0],a=(0,e.isMissing)(r)?n.path:[...n.path,r],o=Be(a,t);i.push({line:o,message:n.message,field:a.join(`.`)})}),{success:!1,errors:i}}else if(n instanceof y)return{success:!1,errors:[{line:n.line,message:`The YAML connector file is not valid. Please check the syntax and structure.`,field:void 0}]};else if(n instanceof x)return{success:!1,errors:[{line:Ve(n.actionId,n.stepId,n.functionName,!1,t),message:n.message,field:void 0}]};else if(n instanceof S){let r=n.issues,i=[];return r.forEach(r=>{let a=r?.keys?.[0],o=(0,e.isMissing)(a)?r.path:[...r.path,a],s=Ve(n.actionId,n.stepId,n.functionName,!0,t);i.push({line:s,message:r.message,field:o.join(`.`)})}),{success:!1,errors:i}}}return{success:!1,errors:[{line:1,message:`An unknown error occurred while parsing the connector.`,field:void 0}]}},Be=(t,n)=>{let r=n.split(`
5
5
  `),i=0,a=-1,o=0;for(let n=0;n<r.length;n++){let s=r[n],c=s.match(/^(\s*)/)?.[1]?.length||0,l=s.replace(`- `,``).trim();if(l.startsWith(`#`)||l===``||c<=a)continue;let u=(0,e.notMissing)(t[i])?`${String(t[i])}`:``;if((0,e.isMissing)(u))return o+1;if(isNaN(Number(u))){if(l.startsWith(`${u}:`)){if(i===t.length-1)return n+1;a=c,o=n,i++}}else{let e=parseInt(u,10),t=-1;for(let a=n;a<r.length;a++)if(r[a].trim().startsWith(`-`)&&t++,t===e){i++,o=n,n--;break}else n++}}return o+1},Ve=(t,n,r,i,a)=>{let o=a.split(`
6
6
  `),s=1,c=null,l=null;for(let a=0;a<o.length;a++){let u=o[a].trim();if((0,e.isMissing)(c)&&u===`- actionId: ${t}`){c=t,s=a+1;continue}if((0,e.notMissing)(c)&&(0,e.isMissing)(l)&&u===`- stepId: ${n}`){l=n,s=a+1;continue}if((0,e.notMissing)(c)&&(0,e.notMissing)(l)&&!i&&u.startsWith(`functionName: ${r}`)||(0,e.notMissing)(c)&&(0,e.notMissing)(l)&&i&&u===`parameters:`)return s=a+1,s}return s};var H=class e extends Error{constructor(t,n,r){super(r),this.name=`ConnectSDKError`,this.errorType=t,this.context=n,Error.captureStackTrace&&Error.captureStackTrace(this,e)}toString(){return`${this.name} [${this.errorType}]: ${this.message}`}},He=class extends H{constructor(e,t){super(`CONNECTOR_PARSE_ERROR`,e,t),this.name=`ConnectorParseError`}},U=class extends H{constructor(e,t){super(`MISSING_ACTION_ERROR`,e,t),this.name=`MissingActionError`}},W=class extends H{constructor(e,t,n){super(`INVALID_ACTION_INPUTS_ERROR`,e,t),this.name=`InvalidActionInputsError`,this.validationErrors=n}},Ue=class extends H{constructor(e,t){super(`INVALID_CURSOR_ERROR`,e,t),this.name=`InvalidCursorError`}};const We=(e,t)=>{let n=Object.keys(e.authentication??{}).map(t=>({type:`custom`,label:e.authentication?.[t].production?.label||`Custom`,key:t,required_scopes:e.authentication?.[t].production?.requiredScopes})),r=Object.values(e?.actions??{}).map(e=>({id:e.id,description:e.description.replace(/\b\w/g,e=>e.toUpperCase()),label:e.label.replace(/\b\w/g,e=>e.toUpperCase()),schema_type:e.schemaType,tags:e.tags,required_scopes:e.requiredScopes,authentication:n,action_details:t?.includes(`action_details`)?e:void 0})),i=Object.values(e.scopeDefinitions??{});return{version:e.version,name:e.title,key:e.key,icon:e.assets?.icon,description:e.description,categories:e.categories,authentication:n,scope_definitions:i.length>0?i:void 0,actions:r}},Ge=(e,t)=>e.map(e=>We(e,t)),Ke=async({block:e,stepFunctionName:t,params:n,buildStepFunction:r=i.StepFunctionsFactory.build})=>{let a=r({functionName:t}).fn,o=await a({block:e,params:n}),s=t===i.StepFunctionName.MAP_FIELDS?{[i.StepFunctionName.MAP_FIELDS.toString()]:{output:{data:o.block.result},errors:o.errors,successful:o.successful}}:{};return{...o.block,steps:{...o?.block?.steps??{},...s}}},G=({category:t,connectorKey:n,connectorVersion:r,authConfigKey:i,environment:a=`production`,action:o,accountSecureId:s,projectSecureId:c,organizationId:l,originOwnerId:u,originOwnerName:d,sourceType:f,sourceId:p,sourceValue:m})=>({organizationId:l,projectSecureId:c,accountSecureId:s,connectorKey:n,connectorVersion:r,category:t,service:``,resource:``,originOwnerId:u,originOwnerName:d,source:{sourceType:f,sourceId:p,sourceValue:m},schema:o?.schema?.key,actionType:o?.actionType??`unknown`,authenticationType:i,environment:a,actionRunId:(0,e.generateActionRunId)()}),qe=(e,t,n)=>e.authentication?.[t]?.[n]?.testActions,Je=t=>{let n=t.action?.compositeIdentifiers,r={...t.inputs??{}};if(!n?.enabled||(0,e.isMissing)(r))return t;let a=n.fields?.reduce((e,t)=>(t.components.forEach(t=>{t.alias&&(e[t.name]=t.alias)}),e),{});return K(r,{version:n.version??i.COMPOSITE_ID_LATEST_VERSION,aliases:a},t.logger),{...t,inputs:r}},K=(e,t,n)=>{for(let r in e){let i=e[r];if(typeof i==`string`||Array.isArray(i)&&i.every(e=>typeof e==`string`))et(i,r,e,t,n);else if(Array.isArray(i))for(let e of i)K(e,t,n);else typeof i==`object`&&i&&K(i,t,n)}},Ye=(e,t,n,r)=>{let a=[],o=[];for(let s of e)try{let e=(0,i.decodeCompositeId)(s,n);a.push(e)}catch(e){r?.debug({message:`Received ${t} with invalid composite ID, assuming it is not a composite ID`,category:`processCompositeId`,context:{key:t,inputElement:s,compositeIdentifierConfig:n,error:e}}),o.push(s)}return{compositeIdComponents:a,nonCompositeIds:o}},Xe=(e,t,n,r)=>{let i=n.filter(e=>Object.keys(e).length>1);i.length>0&&(e.decoded_ids={...e.decoded_ids??{},[t]:r?i:i[0]})},Ze=e=>{let t=Object.values(e);return t.length===1&&(typeof t[0]==`string`||typeof t[0]==`number`)},Qe=(e,t,n,r,i)=>{n.every(Ze)&&(i?e[t]=[...n.map(e=>Object.values(e)[0]),...r]:n.length>0&&(e[t]=Object.values(n[0])[0]))},$e=(e,t,n)=>{e instanceof i.CoreError&&e.type===`COMPOSITE_ID_MISSING_HEADER_ERROR`?n?.debug({message:`Received ${t} with no composite ID header, assuming it is not a composite ID`}):n?.warning({message:`Error processing composite ID for ${t}, ignoring it`,error:e})},et=(e,t,n,r,i)=>{try{let a=Array.isArray(e),o=a?e:[e];if(o.length===0)return;let{compositeIdComponents:s,nonCompositeIds:c}=Ye(o,t,r,i);Xe(n,t,s,a),Qe(n,t,s,c,a)}catch(e){$e(e,t,i)}},q=`remote_`,tt=t=>{let n=t.action?.compositeIdentifiers;if(!n?.enabled)return t;let r=`data`,i=t.outputs?.[r];if((0,e.isMissing)(i))return t;let a=Array.isArray(i)?i.map(e=>nt(e,n)):nt(i,n);return{...t,outputs:{...t.outputs??{},[r]:a}}},nt=(t,n)=>{let r=J(rt(t,n));return{...t,...(0,e.isObject)(r)?r:{}}},rt=(e,t)=>{let n=t.version??i.COMPOSITE_ID_LATEST_VERSION,r={};return t.fields?.forEach(t=>{let a={},o=[];t.components.forEach(t=>{t.alias&&(a[t.name]=t.alias),o.push({key:t.name,value:e[t.name]})});let s=(0,i.encodeCompositeId)(o.length===1?o[0]:{identifiers:o},{version:n,aliases:Object.keys(a).length>0?a:void 0});r[t.targetFieldKey]=s,t.remote&&(r[`${q}${t.remote}`]=e[t.remote])}),{...e,...r}},it=e=>e===`id`||/.+_id(s)?$/.test(e),at=t=>Array.isArray(t)&&t.every(t=>(0,e.isString)(t)&&t.length>0),ot=(e,t)=>(0,i.isCompositeId)(e)||t.startsWith(q),st=(e,t)=>{try{return(0,i.encodeCompositeId)({key:e,value:t},{version:i.COMPOSITE_ID_LATEST_VERSION})}catch{return t}},ct=(t,n,r)=>{r[t]=n.map(n=>(0,e.isString)(n)&&n.length>0&&!(0,i.isCompositeId)(n)?st(t,n):n),r[`${q}${t}`]=n},lt=(e,t,n)=>{ot(t,e)||(n[e]=(0,i.encodeCompositeId)({key:e,value:t},{version:i.COMPOSITE_ID_LATEST_VERSION}),n[`remote_${e}`]=t)},ut=(t,n,r)=>{at(n)?ct(t,n,r):(0,e.isString)(n)&&n.length>0&&lt(t,n,r)},J=t=>{if(Array.isArray(t))return t.map(e=>J(e));if(!(0,e.isObject)(t))return t;let n={...t};for(let[r,i]of Object.entries(t))((0,e.isObject)(i)||Array.isArray(i)&&i.length>0&&(0,e.isObject)(i[0]))&&(n[r]=J(i)),it(r)&&ut(r,i,n);return n},dt=(t,n)=>{let r=Number(t.inputs?.page_size);return(0,e.notMissing)(t.inputs?.page_size)&&(0,e.isNumber)(r)&&!Number.isNaN(r)?r:t.action?.cursor?.pageSize??n},ft=(t,n,r,a)=>{let o=(0,e.isMissing)(t)?void 0:t.data,s=Object.keys(r).length+1,c=(0,i.isCursorEmpty)({cursor:a,ignoreStepIndex:s});if(!(0,e.isObject)(t)||(0,e.isMissing)(o)||(o?.length??0)<=n)return{result:t,next:(0,e.notMissing)(a)&&!c?(0,i.minifyCursor)(a):null};let l=a?.remote?.[s]?.pageNumber??1,u=(l-1)*n,d=u+n,f=o.slice(u,d),p=o.length>d||!c,m=(0,i.updateCursor)({cursor:a,stepIndex:s,pageNumber:l+1});return{result:{...t,data:f},next:p?(0,i.minifyCursor)(m):null}},pt=t=>{let n=t?.olap;return(0,e.isMissing)(n)?{}:{logs:n.logs?{enabled:n.logs.enabled}:void 0,advanced:n.advanced?{enabled:n.advanced.enabled,ttl:n.advanced.ttl,errorsOnly:n.advanced.errorsOnly}:void 0}},Y=async({block:e,buildStepFunction:t=i.StepFunctionsFactory.build,virtualPaginateResultFn:n=ft,encodeResultCompositeIds:r=tt,decodeInputCompositeIds:a=Je})=>r(await yt({block:a(e),buildStepFunction:t,virtualPaginateResultFn:n})),mt=(e,t)=>e.condition?!(0,s.safeEvaluate)(e.condition,t):!1,ht=(t,n,r)=>{let a=t.stepFunction,o=i.StepFunctionsRegistry[t.stepFunction.functionName]?.[`v${t.stepFunction.version??1}`],s=(0,e.notMissing)(o?.inputSchema?.shape)?`cursor`in o?.inputSchema?.shape:!1;return n.action?.cursor.enabled&&s?{...a.params??{},cursor:{token:n.nextCursor?.remote?.[r]?.providerPageCursor,position:n.nextCursor?.remote?.[r]?.position}}:a.params??{}},gt=(e,t,n,r,i)=>{let a=X({block:e,stepId:t,successful:!1,functionOutput:n});return(r.ignoreError??!1)||(i.hasFatalError=!0,i.errorStatusCode??=n.output?.statusCode??500),a},_t=async(e,t,n,r,a,o)=>{let s=n[e],c=s.stepFunction,l=o.buildStepFunction({functionName:c.functionName,version:c.version,validateSchemas:!0}).fn;if(mt(s,r))return X({block:r,stepId:e,successful:!0,skipped:!0,message:`Step skipped due to condition not met.`});if(a.hasFatalError)return X({block:r,stepId:e,successful:!1,skipped:!0,message:`Step skipped due to previous error.`});let u=await l({block:r,params:ht(s,r,t)});if(u.successful===!1)return gt(r,e,u,s,a);let d=r.action?.cursor.enabled?(0,i.updateCursor)({cursor:r.nextCursor,stepIndex:t,providerPageCursor:u.output?.next,position:u.output?.position}):void 0;return X({block:{...u.block,nextCursor:d},stepId:e,functionOutput:u})},vt=(t,n,r,i,o)=>{let s=!r.hasFatalError,c=s?t.action?.responses.success.statusCode??200:r.errorStatusCode??500,l=(0,e.notMissing)(o)&&(0,e.isObject)(o.result)?{next:o.next,...o.result}:i;return{...n,outputs:l,response:{successful:s,statusCode:c,message:s?void 0:t.action?.responses?.errors?.[c]?.description??a.HttpErrorMessages?.[c]??`Error while processing the request`}}},yt=async({block:e,buildStepFunction:t=i.StepFunctionsFactory.build,virtualPaginateResultFn:n=ft})=>{let r=e.action?.steps||{},a={...e},o=Object.keys(r),s=dt(e,25),c={hasFatalError:!1,errorStatusCode:null},l={block:e,buildStepFunction:t,virtualPaginateResultFn:n};for(let[e,t]of o.entries()){let n=new Date;a=await _t(t,e,r,a,c,l),xt({block:a,stepId:t,startTime:n,endTime:new Date})}let u=e.action?.result?bt(e.action.result,a):void 0,d=e.action?.cursor.enabled?n(u,s,r,a.nextCursor):void 0;return vt(e,a,c,u,d)},bt=(t,n)=>(0,e.isObject)(t)?(0,s.safeEvaluateRecord)(t,n):(0,s.safeEvaluate)(t,n),X=({block:e,stepId:t,successful:n,functionOutput:r,skipped:i,message:a})=>({...e,steps:{...e.steps,[t]:{successful:n??r?.successful??!1,errors:r?.errors,output:r?.output,skipped:i,message:a}}}),xt=({block:t,stepId:n,startTime:r,endTime:i})=>{let a=t.olapClient;if((0,e.isMissing)(a?.recordStep))return;let o=pt(t.settings),s=t.context,c={inputs:t.steps?.[n]?.output},l={actionRunId:s.actionRunId??`unknown`,stepId:n,organizationId:s.organizationId??`unknown`,projectSecureId:s.projectSecureId??`unknown`,accountSecureId:s.accountSecureId??`unknown`,status:t.steps?.[n]?.successful?`successful`:`failed`,skipped:t.steps?.[n]?.skipped,message:t.steps?.[n]?.message,outputs:t.steps?.[n]?.output,errors:t.steps?.[n]?.errors,startTime:r,endTime:i};a.recordStep(c,l,o)},Z=async t=>{let{pathParams:n={},queryParams:r={},body:i={},headers:a={},parseConnector:o=L,parseActionInputsFn:u=z,createBlockContextFn:d=G,createBlockFn:f=c,runStepActionFn:m=Y,getActionFromUrlFn:h=l,getActionForRefreshAuthenticationFn:g=V,getTestActionsFn:_=qe,mode:v,account:y,connector:b,getHttpClient:x,getOlapClient:S,settings:ee,source:C,logger:w,category:te,...T}=t,E=y.authConfigKey,D=y.environment??`production`,O=y.secureId,k=y.projectSecureId,A=y.organizationId,ne=y.credentials,j=y.originOwnerId,re=y.originOwnerName,M=d({category:te??`action`,connectorKey:y.providerKey,connectorVersion:y.providerVersion,authConfigKey:E,environment:D,accountSecureId:O,projectSecureId:k,organizationId:A,originOwnerId:j,originOwnerName:re,sourceType:C?.sourceType,sourceId:C?.sourceId,sourceValue:C?.sourceValue}),N=new Date,P;try{P=(0,e.isString)(b)?o(b):b}catch{throw new He(M,`Error while parsing connector`)}let F={connector:P,context:M,credentials:ne,settings:ee,logger:w,getHttpClient:x,getOlapClient:S};if(v===`action_id`){let{actionId:o}=T,s=p(P,o);if((0,e.isMissing)(s))throw new U(M,`No matching action found`);let c=await Q({action:s,blockContext:M,queryParams:r,pathParams:n,body:i,headers:a,parseActionInputsFn:u,createBlockFn:f,createBlockParams:F,runStepActionFn:m});return c.statistics={startTime:N,endTime:new Date},$({action:s,actionParams:t,resultBlock:c}),c}else if(v===`test_actions`){let n=_(P,E,D);if((0,e.isMissing)(n)||n.length===0)return await St(f,F);M.actionType=`test`;for(let r of n){let n=new Date,i=await f({...F,inputs:void 0,action:r.action,nextCursor:void 0});if(!(!(0,e.notMissing)(r.condition)||(0,s.evaluate)(r.condition,i)))continue;let a=await m({block:i});if(((0,e.isMissing)(a?.response?.successful)||!a.response.successful)&&r.required){w?.error({code:`TestActionFailed`,message:`Test action "${r.action.id}" failed with error: ${a?.response?.message}`});let e=await Ct(f,F);return $({action:r.action,actionParams:t,resultBlock:e}),e}a.statistics={startTime:n,endTime:new Date},$({action:r.action,actionParams:t,resultBlock:a})}let r=await St(f,F);return r.statistics={startTime:N,endTime:new Date},r}else if(v===`refresh_authentication`){let n=g(P,E,D);if((0,e.isMissing)(n))throw new U(M,`No matching action found`);let o=await Q({action:n.action,blockContext:M,queryParams:r,pathParams:n.params,body:i,headers:a,parseActionInputsFn:u,createBlockFn:f,createBlockParams:F,runStepActionFn:m});return o.statistics={startTime:N,endTime:new Date},$({action:n.action,actionParams:t,resultBlock:o}),o}else if(v===`path`){let{path:n,method:o}=T,s=h(P,n,o);if((0,e.isMissing)(s))throw new U(M,`No matching action found`);let c=await Q({action:s.action,blockContext:M,queryParams:r,pathParams:s.params,body:i,headers:a,parseActionInputsFn:u,createBlockFn:f,createBlockParams:F,runStepActionFn:m});return c.statistics={startTime:N,endTime:new Date},$({action:s.action,actionParams:t,resultBlock:c}),c}else return await Ct(f,F)},Q=async e=>{let{action:t,blockContext:n,queryParams:r,pathParams:i,body:a,headers:o,parseActionInputsFn:s,createBlockFn:c,createBlockParams:l,runStepActionFn:u}=e;n.actionType=t.actionType,n.schema=t.schema?.key;let d=wt(r,n),f;try{f=s(t,{path:i,query:r,body:a,headers:o})}catch(e){throw typeof e==`object`&&e&&`issues`in e&&Array.isArray(e.issues)?new W(n,`Invalid input values provided`,e.issues.map(e=>{let t=e.path.map(String),n=t[0]||`body`;return{field:t.slice(1).join(`.`)||t[0]||`unknown`,location:n,expected:`expected`in e?String(e.expected):e.code,received:`received`in e?String(e.received):`unknown`,message:e.message}})):new W(n,`Error while parsing action inputs`)}return await u({block:await c({...l,inputs:f,action:t,nextCursor:d})})},St=async(e,t)=>({...await e({...t,inputs:void 0,action:void 0,nextCursor:void 0}),response:{successful:!0,statusCode:200}}),Ct=async(e,t)=>({...await e({...t,inputs:void 0,action:void 0,nextCursor:void 0}),response:{successful:!1,statusCode:500}}),wt=(t,n)=>{let r=t?.next,a=(0,e.notMissing)(r)&&n.actionType===`list`?(0,i.expandCursor)(r):void 0;if(a===null)throw new Ue(n,`Invalid cursor.`);return a},$=({action:t,actionParams:n,resultBlock:r})=>{if((0,e.isMissing)(t))return;let i=r.olapClient;if((0,e.isMissing)(i?.recordAction))return;let a=pt(n.settings),o={actionId:t.id,mode:n.mode,url:t?.entrypointUrl,pathParams:n?.pathParams,queryParams:n?.queryParams,body:n?.body,headers:n?.headers,sourceId:n.source?.sourceId,sourceType:n.source?.sourceType,sourceValue:n.source?.sourceValue},s=r.context,c={actionRunId:s.actionRunId||`missing`,actionId:t.id,connectorKey:s.connectorKey,connectorVersion:s.connectorVersion,actionType:s.actionType,category:s.category,organizationId:n.account.organizationId,projectSecureId:s.projectSecureId,accountSecureId:s.accountSecureId,originOwnerId:s.originOwnerId,originOwnerName:s.originOwnerName,httpMethod:t?.entrypointHttpMethod,url:t?.entrypointUrl,success:r.response?.successful,statusCode:r.response?.statusCode,body:r.outputs??void 0,message:r.response?.message,startTime:r.statistics?.startTime,endTime:r.statistics?.endTime};i.recordAction(o,c,a)},Tt=async({actionId:e,account:t,connector:n,pathParams:r={},queryParams:i={},body:a={},headers:o={},logger:s,getHttpClient:l,getOlapClient:u,parseConnector:d=L,parseActionInputsFn:f=z,createBlockContextFn:p=G,createBlockFn:m=c,runStepActionFn:h=Y})=>Z({mode:`action_id`,actionId:e,account:t,connector:n,pathParams:r,queryParams:i,body:a,headers:o,logger:s,getHttpClient:l,getOlapClient:u,parseConnector:d,parseActionInputsFn:f,createBlockContextFn:p,createBlockFn:m,runStepActionFn:h}),Et=`stackone://internal//`,Dt=`stackone://internal//refresh_token`,Ot=async({account:e,connector:t,category:n,path:r,method:i=`get`,queryParams:a={},body:o,headers:s,logger:u,getHttpClient:d,parseConnector:f=L,getActionFromUrlFn:p=l,getActionForRefreshAuthenticationFn:m=V,parseActionInputsFn:h=z,createBlockContextFn:g=G,createBlockFn:_=c,runStepActionFn:v=Y})=>kt(r)?await Z({mode:`refresh_authentication`,account:e,connector:t,getActionForRefreshAuthenticationFn:m,parseConnector:f,logger:u,getHttpClient:d,parseActionInputsFn:h,createBlockContextFn:g,createBlockFn:_,runStepActionFn:v}):await Z({mode:`path`,account:e,category:n,connector:t,path:r,method:i,queryParams:a,body:o,headers:s,getActionFromUrlFn:p,parseConnector:f,logger:u,getHttpClient:d,parseActionInputsFn:h,createBlockContextFn:g,createBlockFn:_,runStepActionFn:v}),kt=e=>e===`stackone://internal//refresh_token`,At=async({account:e,connector:t,logger:n,getHttpClient:r,parseConnector:i=L,getTestActionsFn:a=qe,createBlockContextFn:o=G,createBlockFn:s=c,runStepActionFn:l=Y})=>(await Z({mode:`test_actions`,account:e,connector:t,logger:n,getHttpClient:r,parseConnector:i,getTestActionsFn:a,createBlockContextFn:o,createBlockFn:s,runStepActionFn:l}))?.response?.successful??!1;exports.ConnectSDKError=H,exports.InvalidActionInputsError=W,exports.applyReleaseStageToConnector=Ie,exports.createBlock=c,exports.executeStepFunction=Ke,exports.formatValidationErrorResponse=T,exports.getActionFromUrl=l,exports.getActionsMeta=We,exports.getActionsMetaFromConnectors=Ge,exports.getRefreshTokenExpiresIn=Pe,exports.getTokenExpiresIn=Ne,exports.isConnectorReleased=Fe,exports.loadConnector=m,exports.parseActionInputs=z,exports.parseYamlConnector=L,exports.runAction=Z,exports.runConnectorActionById=Tt,exports.runConnectorActionByPath=Ot,exports.runStepAction=Y,exports.runTestActions=At,exports.supportsRefreshAuthentication=Me,exports.validateYamlConnector=ze;
package/dist/index.d.cts CHANGED
@@ -123,12 +123,20 @@ type RequestConfig = {
123
123
  concurrency?: ConcurrencyConfig;
124
124
  };
125
125
  //#endregion
126
+ //#region ../transport/src/parsers/types.d.ts
127
+ declare const QueryArrayFormats: readonly ["repeat", "brackets", "comma"];
128
+ type QueryArrayFormat = (typeof QueryArrayFormats)[number];
129
+ //#endregion
126
130
  //#region ../transport/src/httpClient/types.d.ts
127
131
  type HttpHeaders = {
128
132
  [key: string]: string;
129
133
  };
134
+ type HttpQueryParamValue = {
135
+ value: string | string[];
136
+ arrayFormat?: QueryArrayFormat;
137
+ };
130
138
  type HttpQueryParams = {
131
- [key: string]: string;
139
+ [key: string]: string | string[] | HttpQueryParamValue;
132
140
  };
133
141
  declare const HttpMethods: readonly ["get", "post", "put", "delete", "patch"];
134
142
  type HttpMethod = (typeof HttpMethods)[number];
package/dist/index.d.mts CHANGED
@@ -123,12 +123,20 @@ type RequestConfig = {
123
123
  concurrency?: ConcurrencyConfig;
124
124
  };
125
125
  //#endregion
126
+ //#region ../transport/src/parsers/types.d.ts
127
+ declare const QueryArrayFormats: readonly ["repeat", "brackets", "comma"];
128
+ type QueryArrayFormat = (typeof QueryArrayFormats)[number];
129
+ //#endregion
126
130
  //#region ../transport/src/httpClient/types.d.ts
127
131
  type HttpHeaders = {
128
132
  [key: string]: string;
129
133
  };
134
+ type HttpQueryParamValue = {
135
+ value: string | string[];
136
+ arrayFormat?: QueryArrayFormat;
137
+ };
130
138
  type HttpQueryParams = {
131
- [key: string]: string;
139
+ [key: string]: string | string[] | HttpQueryParamValue;
132
140
  };
133
141
  declare const HttpMethods: readonly ["get", "post", "put", "delete", "patch"];
134
142
  type HttpMethod = (typeof HttpMethods)[number];
package/dist/index.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  import{generateActionRunId as e,isMissing as t,isNumber as n,isObject as r,isString as i,notMissing as a,z as o,zStrictObject as s}from"@stackone/utils";import{match as c}from"path-to-regexp";import{readFileSync as l}from"fs";import{dirname as u,join as d,resolve as f}from"path";import{AUTHORIZATION_SCHEMA as p,COMPOSITE_ID_LATEST_VERSION as m,CoreError as h,ReleaseStages as g,StepFunctionName as _,StepFunctionsFactory as v,StepFunctionsRegistry as y,decodeCompositeId as ee,encodeCompositeId as b,expandCursor as x,getInputEnumValues as S,isCompositeId as C,isCursorEmpty as te,isValidEnumRef as w,minifyCursor as T,updateCursor as E}from"@stackone/core";import{HttpErrorMessages as ne,isSuccessStatusCode as re}from"@stackone/transport";import{parse as ie}from"yaml";import{evaluate as ae,safeEvaluate as D,safeEvaluateRecord as oe}from"@stackone/expressions";const O=async({connector:e,inputs:n,context:r,action:i,credentials:a,nextCursor:o,settings:s,logger:c,getHttpClient:l,getOlapClient:u})=>{if(t(l))throw Error(`getHttpClient function is required`);return{connector:e,inputs:n,fieldConfigs:[],context:r,action:i,credentials:a,nextCursor:o,httpClient:await l(),olapClient:u?await u():void 0,settings:s,logger:c}},k=(e,t,n)=>{let r=n.toUpperCase();if(!e.actions)return;let i=j(t,r,Object.values(e.actions).filter(e=>a(e.endpoint)).map(e=>({actionId:e.id,endpoint:e.endpoint})));if(i)return{action:e.actions?.[i.actionId],params:i.params}},A=e=>{let t=e.startsWith(`/`)?e.slice(1):e;return t.endsWith(`/`)?t.slice(0,-1):t},j=(e,t,n)=>{let r=A(e);for(let e of n)if(e.endpoint?.startsWith(t)){let n=c(A(e.endpoint.replace(`${t} `,``).trim()))(A(r));if(n!==!1)return{actionId:e.actionId,path:e.endpoint,params:n.params}}},M=(e,t)=>t?.startsWith(`${e}_`)?t:`${e}_${t}`,se=(e,t)=>{let n=`${e.key}_`,r=t.startsWith(n)?t:`${n}${t}`;return e.actions?.[r]},N=e=>{if(!e.endsWith(`.s1.yaml`))throw Error(`File must have .s1.yaml extension`);try{let t=l(e,`utf8`);return!t.includes(`:`)||!t.includes(`$ref:`)?t:ce(t.split(`
2
2
  `),u(e)).join(`
3
3
  `)}catch(e){throw Error(`Failed to process YAML file: ${e.message}`)}},ce=(e,t)=>{let n=[];for(let r of e)if(le(r)){let e=r.match(/^(\s*)/)?.[1]?.length||0,i=r.split(`:`)[1]?.trim(),a=ue(i,t).map(t=>` `.repeat(e)+t);n.push(...a)}else n.push(r);return n},le=e=>e.includes(`$ref:`),ue=(e,t)=>{let n=f(d(t,`${e.replaceAll(`'`,``)}.s1.partial.yaml`));try{return l(n,`utf8`).split(`
4
- `).filter(e=>e.trim()!==``)}catch(t){throw Error(`Failed to load partial file '${e}': ${t.message}`)}};var P=class e extends Error{constructor(t,n){super(n),this.name=`InternalConnectSDKError`,this.errorType=t,Error.captureStackTrace&&Error.captureStackTrace(this,e)}toString(){return`${this.name} [${this.errorType}]: ${this.message}`}},de=class extends P{constructor(e,t){super(`INVALID_YAML_FILE_ERROR`,t),this.name=`InvalidYamlFileError`,this.line=e??1}},fe=class extends P{constructor(e,t){super(`SCHEMA_VALIDATION_ERROR`,t),this.name=`SchemaValidationError`,this.issues=e}},pe=class extends P{constructor(e,t,n,r=`1`){let i=`Invalid Step Function: '${n}' (v${r}) on step '${t}'. Please ensure the function name and version are correct in the action '${e}'.`;super(`INVALID_STEP_FUNCTION`,i),this.name=`InvalidStepFunctionError`,this.actionId=e,this.stepId=t,this.functionName=n,this.functionVersion=r}},me=class extends P{constructor(e,t,n,r=`1`,i){let a=`Invalid parameters for Step Function: '${n}' (v${r}) on step '${t}'. Please ensure the parameters are correct in the action '${e}'.`;super(`INVALID_STEP_FUNCTION_PARAMS`,a),this.name=`InvalidStepFunctionParamsError`,this.actionId=e,this.stepId=t,this.functionName=n,this.functionVersion=r,this.issues=i,this.message=a}},he=class extends P{constructor(e,t,n){let r=`Invalid example ${t} for action '${e}': ${n.map(e=>`${e.path.join(`.`)}: ${e.message}`).join(`, `)}`;super(`INVALID_ACTION_EXAMPLE`,r),this.name=`InvalidActionExampleError`,this.actionId=e,this.exampleIndex=t,this.issues=n}},ge=class extends P{constructor(e,t,n){let r=`Invalid enum reference "${n}" in action "${e}", input "${t}". Check that the enum is defined in INPUT_ENUM_REGISTRY.`;super(`INVALID_ENUM_REFERENCE`,r),this.name=`InvalidEnumReferenceError`,this.actionId=e,this.inputName=t,this.enumRef=n}},F=class extends P{constructor(e){super(`MISSING_SCOPE_DEFINITION`,`Missing scope definition. Check that the scope is defined in the scope definitions.`),this.name=`MissingScopeDefinitionError`,this.issues=e}};const _e=e=>({statusCode:400,message:`Invalid request - validation failed`,errors:e.map(e=>({property:e.field,location:e.location,expected:e.expected,received:e.received,message:e.message}))}),ve=e=>{switch(e){case`list`:return{statusCode:200,description:`The list of records was retrieved.`};case`get`:return{statusCode:200,description:`The record with the given identifier was retrieved.`};case`create`:return{statusCode:201,description:`The record was created successfully.`};case`update`:return{statusCode:200,description:`The record was updated successfully.`};case`delete`:return{statusCode:204,description:`The record was deleted successfully.`};case`custom`:return{statusCode:200,description:`The action was executed successfully.`};case`refresh_token`:return{statusCode:200,description:`The refresh token action was executed successfully.`};case`unknown`:return{statusCode:200};default:throw Error(`Unknown action type: ${e}`)}},ye=()=>({400:{statusCode:400,description:`Invalid request.`},401:{statusCode:401,description:`Unauthorized access.`},403:{statusCode:403,description:`Forbidden.`},404:{statusCode:404,description:`Resource not found.`},500:{statusCode:500,description:`Server error while executing the request.`}}),be={key:o.string(),label:o.string(),required:o.boolean().optional().default(!1),secret:o.boolean().optional().default(!1),readOnly:o.boolean().optional().default(!1),placeholder:o.string().optional(),description:o.string().optional(),tooltip:o.string().optional()},xe=o.discriminatedUnion(`type`,[s({...be,type:o.enum([`text`,`password`])}),s({...be,type:o.literal(`select`),options:s({value:o.string(),label:o.string()}).array()})]),Se=s({targetFieldKey:o.string(),alias:o.string().optional(),expression:o.string().optional(),values:o.unknown().optional(),type:o.enum([`string`,`number`,`boolean`,`datetime_string`,`enum`,`object`]),array:o.boolean().default(!1),custom:o.boolean().default(!1),hidden:o.boolean().default(!1),enumMapper:s({matcher:o.enum([`country_alpha2code_by_alpha2code`,`country_alpha3code_by_alpha3code`,`country_code_by_country_code`,`country_name_by_country_name`,`country_name_by_alpha3code`,`country_name_by_alpha2code`,`country_name_by_country_code`,`country_alpha3code_by_alpha2code`,`country_alpha3code_by_country_name`,`country_alpha3code_by_country_code`,`country_alpha2code_by_alpha3code`,`country_alpha2code_by_country_name`,`country_alpha2code_by_country_code`,`country_code_by_alpha2code`,`country_code_by_alpha3code`,`country_code_by_country_name`,`country_subdivisions_by_alpha2code`,`country_subdivision_code_by_subdivision_name`,`country_alpha2code_by_citizenship`,`country_subdivision_name_by_subdivision_code`,`document_file_format_from_extension`]).or(s({matchExpression:o.string(),value:o.string()}).array())}).optional(),properties:o.lazy(()=>Se).array().optional(),requiredScopes:o.string().optional()}),Ce=o.union([s({values:o.string().array().min(1)}),s({ref:o.string()})]),we=s({name:o.string(),type:o.enum([`string`,`number`,`boolean`,`datetime_string`,`object`,`enum`]),required:o.boolean(),description:o.string(),array:o.boolean().optional().default(!1),in:o.enum([`body`,`query`,`path`,`headers`]),properties:o.lazy(()=>we.omit({in:!0})).array().optional(),oneOf:Ce.optional()}).refine(e=>e.type!==`enum`||e.oneOf!==void 0,{message:`oneOf is required when type is 'enum'`}).refine(e=>e.type===`enum`||e.oneOf===void 0,{message:`oneOf is only allowed when type is 'enum'`}),Te=o.object({exampleDescription:o.string().optional()}).catchall(o.unknown()),I=s({actionId:o.string(),categories:o.string().array(),actionType:o.enum([`list`,`get`,`create`,`update`,`delete`,`custom`,`refresh_token`,`unknown`]),schema:o.string().optional(),schemaType:o.enum([`native`,`unified`]).optional().default(`native`),entrypointUrl:o.string().optional(),entrypointHttpMethod:o.string().optional(),label:o.string(),description:o.string(),details:o.string().optional(),examples:Te.array().optional(),tags:o.string().array().optional(),releaseStage:o.enum(g).optional(),resources:o.string().optional(),responses:s({statusCode:o.number(),description:o.string()}).array().optional(),requiredScopes:o.string().optional(),inputs:we.array().optional(),cursor:s({enabled:o.boolean(),pageSize:o.number()}).optional(),compositeIdentifiers:s({enabled:o.boolean(),version:o.number().optional(),fields:s({targetFieldKey:o.string(),remote:o.string().optional(),components:o.string().array()}).array().optional()}).optional(),scheduledJobs:s({enabled:o.boolean(),type:o.enum([`data_sync`]),schedule:o.string(),description:o.string(),requestParams:s({fields:o.string().array().optional(),expand:o.string().array().optional(),filter:o.record(o.string(),o.string()).optional()}).optional(),syncFilter:s({name:o.enum([`updated_after`,`created_after`]),initialLoopbackPeriod:o.string(),incrementalLoopbackPeriod:o.string()}).optional()}).array().optional(),fieldConfigs:Se.array().optional(),steps:s({stepId:o.string(),description:o.string(),stepFunction:s({functionName:o.string(),version:o.string().optional(),parameters:o.record(o.string(),o.unknown())}),condition:o.string().optional(),ignoreError:o.boolean().optional()}).array(),result:o.string().or(o.record(o.string(),o.unknown())).optional()}),Ee=s({schedule:o.string().optional(),action:I.extend({actionType:o.literal(`refresh_token`)})}),De=s({mainRatelimit:o.number(),subPools:o.array(s({subPoolKey:o.string(),urlPattern:o.string(),rateLimit:o.number()})).optional(),mappedRateLimitErrors:o.array(s({errorStatus:o.number(),errorMessage:o.string(),errorMessagePath:o.string().optional(),retryAfterPath:o.string().optional(),retryAfterUnit:o.union([o.literal(`seconds`),o.literal(`milliseconds`),o.literal(`date`)]).optional(),retryAfterValue:o.number().optional()})).optional()}),Oe=s({mainMaxConcurrency:o.number(),subPools:o.array(s({subPoolKey:o.string(),urlPattern:o.string(),maxConcurrency:o.number()})).optional()}),L=s({label:o.string(),authorization:p,requiredScopes:o.string().optional(),environments:s({key:o.string(),name:o.string()}).array(),support:s({link:o.string().optional(),description:o.string().optional()}).optional(),configFields:xe.array().optional(),setupFields:xe.array().optional(),refreshAuthentication:Ee.optional(),testActions:s({action:o.string().or(I),condition:o.string().optional(),required:o.boolean().default(!0)}).array().optional()}),ke=L.extend({type:o.literal(`oauth2`),grantType:o.enum([`authorization_code`,`client_credentials`]).default(`authorization_code`)}),Ae=L.extend({type:o.literal(`custom`)}),je=L.extend({type:o.literal(`oidc`)}),Me=o.discriminatedUnion(`type`,[ke,Ae,je]),Ne=s({StackOne:o.string(),info:s({title:o.string(),version:o.string(),key:o.string(),assets:s({icon:o.string()}),description:o.string(),details:o.string().optional()}),resources:o.string().optional(),baseUrl:o.string(),scopeDefinitions:o.record(o.string(),s({description:o.string(),includes:o.string().optional()})).optional(),authentication:o.record(o.string(),Me).array().optional(),actions:I.array().optional(),rateLimit:De.optional(),concurrency:Oe.optional(),releaseStage:o.enum(g).optional()}).strict();function R(e){try{let t=tt(Ne,ie(e)),n=Pe(t.scopeDefinitions),r={title:t.info.title,version:t.info.version,key:t.info.key,assets:t.info.assets,description:t.info.description,details:t.info.details,resources:t.resources,rateLimit:t.rateLimit,concurrency:t.concurrency,releaseStage:t.releaseStage,scopeDefinitions:n},i=Re(t),o={baseUrl:t.baseUrl,authentication:Fe(i)},s=We(t,o);return r.actions=s,Ie(t,t.info.key,i,s,o),r.authentication=i,a(s)&&(r.categories=Le(Object.values(s))),r}catch(e){if(e instanceof P)throw e;let t=e.message,n=t.match(/at line (\d+)/);throw new de(n?parseInt(n[1],10):1,t)}}const Pe=e=>{if(!e)return;let t={};for(let[n,r]of Object.entries(e)){let e=r?.includes?.split(` `).filter(e=>e.trim().length>0)??void 0;t[n]={name:n,description:r.description,includes:e}}let n=new Set(Object.keys(t)),r=[];if(Object.values(t).forEach(e=>{e.includes&&e.includes.forEach(t=>{n.has(t)||r.push({message:`Scope '${t}' included in scope '${e.name}' is not defined.`,path:[`scopeDefinitions`,e.name],keys:[`includes`]})})}),r.length>0)throw new F(r);return t},Fe=e=>{let t={};for(let[n,r]of Object.entries(e))if(r&&typeof r==`object`){let{setupFields:e,configFields:i,support:a,refreshAuthentication:o,testActions:s,requiredScopes:c,...l}=r;t[n]=Fe(l)}else t[n]=r;return t},Ie=(e,t,n,r,i)=>{if(!n||!r)return;let o=0;for(let s of Object.values(n)){for(let n of Object.values(s))n.testActions=n.testActions?.map((n,s)=>{if(a(n.action))if(typeof n.action==`string`){let e=M(t,n.action),i=Object.values(r).find(t=>t.id===e);if(i)return{...n,action:i}}else{let r=z(e,[`authentication`,o,`testActions`,s],M(t,n.action.actionId),n.action,i);return{...n,action:r}}return n});o++}},Le=e=>{let t=e.reduce((e,t)=>{for(let n of t.categories)e.add(n);return e},new Set);return Array.from(t)},Re=e=>{let t={},n=new Set(Object.keys(e.scopeDefinitions||{})),r=[];for(let[i,o]of(e.authentication??[]).entries()){let[s]=Object.keys(o);t[s]=o[s].environments.reduce((t,c)=>{let{key:l,name:u}=c,{environments:d,refreshAuthentication:f,testActions:p,requiredScopes:m,...h}=o[s],g=m?m.split(` `).filter(e=>e.trim().length>0):void 0;Object.values(g??[]).forEach(e=>{n.has(e)||r.push({message:`Scope '${e}' included in authentication '${s}' is not defined.`,path:[`authentication`,i],keys:[`requiredScopes`]})});let _=a(f)?{schedule:f.schedule,action:z(e,[`authentication`,i,`refreshAuthentication`,`action`],M(e.info.key,f.action.actionId),f.action)}:void 0;return t[l]={...h,refreshAuthentication:_,requiredScopes:g,envKey:l,envName:u,testActions:p},t},{})}if(r.length>0)throw new F(r);return t},ze=e=>e.entrypointUrl&&e.entrypointHttpMethod?`${e.entrypointHttpMethod.toUpperCase()} ${e.entrypointUrl}`:void 0,Be=e=>e.actionType===`list`?`GET /${e.schema}`:`GET /${e.schema}/:id`,Ve=e=>{if(e.actionType!==`refresh_token`)return e.entrypointHttpMethod??`get`},He=e=>{if(!(e.actionType===`refresh_token`||t(e.schema)))return e.actionType===`list`?`/${e.schema}`:`/${e.schema}/:id`},Ue=e=>{let t={success:ve(e.actionType),errors:ye()};return e.responses?.reduce((e,t)=>(re(t.statusCode)?e.success={statusCode:t.statusCode,description:t.description}:e.errors[t.statusCode]={statusCode:t.statusCode,description:t.description},e),t)??t},We=(e,t)=>e.actions?.reduce((n,r,i)=>{let a=ze(r),o=Be(r),s=a??o,c=M(e.info.key,r.actionId);return n[c]=z(e,[`actions`,i],c,r,t,s),n},{}),Ge=(e,t)=>{if(t){for(let n of t)if(n.type===`enum`&&n.oneOf&&`ref`in n.oneOf&&!w(n.oneOf.ref))throw new ge(e,n.name,n.oneOf.ref)}},Ke=(e,t,n)=>{if(!t||t.length===0)return;let r={};for(let e of n){let t=V(e);e.required||(t=t.optional()),r[e.name]=t}let i=o.object(r).strict();for(let n=0;n<t.length;n++){let{exampleDescription:r,...a}=t[n],o=i.safeParse(a);if(!o.success){let t=o.error.issues.map(e=>({code:e.code,message:e.message,input:e.input,path:e.path,keys:[]}));throw new he(e,n,t)}}},z=(e,t,n,r,i,a)=>{let o=He(r),s=Ue(r),c=Ze(r),l=r.inputs||[];c.enabled&&(l?.push({type:`string`,name:`page_size`,in:`query`,required:!1,description:`Number of items to return per page`,array:!1}),l?.push({type:`string`,name:`next`,in:`query`,required:!1,description:`Token for the next page of results`,array:!1})),Ge(n,l),Ke(n,r.examples,l);let u=Ve(r),d=new Set(Object.keys(e.scopeDefinitions||{})),f=[],p=r.requiredScopes?r.requiredScopes.split(` `).filter(e=>e.trim().length>0):void 0;if(Object.values(p??[]).forEach(e=>{d.has(e)||f.push({message:`Scope '${e}' included in action '${r.actionId}' is not defined.`,path:t,keys:[`requiredScopes`]})}),f.length>0)throw new F(f);return{id:n,categories:r.categories,label:r.label,description:r.description,details:r.details,examples:r.examples,actionType:r.actionType,schemaType:r.schemaType??`native`,entrypointUrl:r.entrypointUrl??o,entrypointHttpMethod:u,endpoint:a,tags:r.tags,releaseStage:r.releaseStage,resources:r.resources,responses:s,cursor:c,compositeIdentifiers:Qe(r),scheduledJobs:$e(r),requiredScopes:p,inputs:l,steps:r.steps.reduce((n,a)=>{let{customErrors:o,...s}=a.stepFunction.parameters??{},c=qe(e,t,a.stepFunction.functionName===`map_fields`||a.stepFunction.functionName===`typecast`?s.fields??r.fieldConfigs:void 0),l={id:a.stepId,description:a.description,condition:a.condition,ignoreError:a.ignoreError,stepFunction:{functionName:a.stepFunction.functionName,version:a.stepFunction.version,params:{...et({stepFunctionName:a.stepFunction.functionName,baseRequestParams:i,customErrors:o}),...c??{},...s}}};return Je(r.actionId,l),n[a.stepId]=l,n},{}),result:r.result}},qe=(e,n,r)=>{if(t(r)||!Array.isArray(r))return;let i=new Set(Object.keys(e.scopeDefinitions||{})),a=[],o=r.map((e,t)=>{if(typeof e!=`object`||!e)return;let r=e.requiredScopes?e.requiredScopes.split(` `).filter(e=>e.trim().length>0):void 0;return Object.values(r??[]).forEach(r=>{i.has(r)||a.push({message:`Scope '${r}' included in field config '${e.targetFieldKey}' is not defined.`,path:[...n,`fieldConfigs`,t],keys:[`requiredScopes`]})}),{...e,requiredScopes:r}});if(a.length>0)throw new F(a);return{fields:o}},Je=(e,t)=>{let n=t.stepFunction.version??`1`,r=y[t.stepFunction.functionName]?.[`v${n}`];if(!r)throw new pe(e,t.id,t.stepFunction.functionName,n);let i=r.inputSchema;i&&nt(i,t.stepFunction.params,e,t.id,t.stepFunction.functionName,n)},B=(e,t)=>{if(!e.inputs)return{};let n=Ye(e.inputs),r=o.object(n).parse(t);return{...r.headers??{},...r.query??{},...r.path??{},...r.body??{}}},Ye=e=>{let t=e.reduce((e,t)=>(e[t.in]||(e[t.in]=[]),e[t.in].push(t),e),{}),n={};for(let[e,r]of Object.entries(t)){let t={};for(let e of r){let n=V(e);e.description&&(n=n.describe(e.description)),e.required||(n=n.optional()),t[e.name]=n}Object.keys(t).length>0&&(n[e]=o.object(t))}return n},Xe=(e,t)=>{if(!t)throw Error(`Enum input "${e}" requires oneOf definition`);let n;if(`values`in t)n=t.values;else if(`ref`in t){let r=S(t.ref);if(!r)throw Error(`Unknown enum reference "${t.ref}" in input "${e}"`);n=r}else throw Error(`Invalid oneOf definition in input "${e}"`);if(n.length===0)throw Error(`Enum input "${e}" must have at least one allowed value`);return o.enum(n)},V=e=>{let t;switch(e.type){case`string`:case`datetime_string`:t=o.string();break;case`number`:t=o.number();break;case`boolean`:t=o.boolean();break;case`enum`:t=Xe(e.name,e.oneOf);break;case`object`:if(e.properties&&e.properties.length>0){let n={};for(let t of e.properties){let e=V(t);t.description&&(e=e.describe(t.description)),t.required||(e=e.optional()),n[t.name]=e}t=o.object(n)}else t=o.record(o.string(),o.unknown());break;default:t=o.unknown()}return e.array&&(t=o.array(t)),t},Ze=e=>{let t=e.actionType===`list`,n=e.cursor??{enabled:t,pageSize:25};return{enabled:n.enabled&&t,pageSize:n.pageSize}},Qe=e=>{if(e.actionType===`refresh_token`||t(e.compositeIdentifiers))return{enabled:!1};let n=[];for(let t of e.compositeIdentifiers?.fields??[]){let r=t.components.map(t=>({name:t,alias:e.fieldConfigs?.find(e=>e.targetFieldKey===t)?.alias}));n.push({targetFieldKey:t.targetFieldKey,remote:t.remote,components:r})}return{enabled:e.compositeIdentifiers.enabled,version:e.compositeIdentifiers.version,fields:n.length>0?n:void 0}},$e=e=>{if(!t(e.scheduledJobs))return e.scheduledJobs},et=({stepFunctionName:e,baseRequestParams:t,customErrors:n={}})=>{if(e===`request`||e===`paginated_request`||e===`soap_request`||e===`soap_paginated_request`){let e=[{receivedStatus:500,targetStatus:502}],r=[...n&&Array.isArray(n)?n:[],...e];return{...t,customErrors:r}}else return{}},tt=(e,t)=>{let n=e.safeParse(t);if(n.success)return n.data;throw new fe(n.error.issues.map(e=>({code:e.code,message:e.message,input:e.input,path:e.path,keys:e?.keys??[]})),`Invalid connector schema`)},nt=(e,t,n,r,i,a)=>{let o=e.safeParse(t);if(o.success)return o.data;throw new me(n,r,i,a,o.error.issues.map(e=>({code:e.code,message:e.message,input:e.input,path:e.path,keys:e?.keys??[]})))},H=(e,t,n)=>{if(e.authentication?.[t]?.[n]?.type!==`oauth2`)return;let r=e.authentication?.[t]?.[n]?.refreshAuthentication?.action;if(a(r))return{action:r,params:{}}},rt=(e,t,n)=>e.authentication?.[t]?.[n]?.type===`oauth2`?a(H(e,t,n)):!1,it=(e,t,n)=>{let r=e.authentication?.[t]?.[n],i=r?.authorization;if(r?.type===`oauth2`)return i?.tokenExpiresIn},at=(e,t,n)=>{let r=e.authentication?.[t]?.[n],i=r?.authorization;if(r?.type===`oauth2`)return i?.tokenRefreshExpiresIn},ot=(e,t=[])=>lt(t,e.releaseStage),st=(e,t=[])=>{if(!ot(e,t))return;let n={};if(e.actions)for(let[r,i]of Object.entries(e.actions))lt(t,i.releaseStage)&&(n[r]=i);return{...e,actions:n}},ct=e=>e??`ga`,lt=(e=[],t)=>{let n=ct(t);return e.includes(n)},ut=e=>{try{return{success:!0,connector:R(e)}}catch(n){if(n instanceof fe||n instanceof F){let r=n.issues,i=[];return r.forEach(n=>{let r=n?.keys?.[0],a=t(r)?n.path:[...n.path,r],o=dt(a,e);i.push({line:o,message:n.message,field:a.join(`.`)})}),{success:!1,errors:i}}else if(n instanceof de)return{success:!1,errors:[{line:n.line,message:`The YAML connector file is not valid. Please check the syntax and structure.`,field:void 0}]};else if(n instanceof pe)return{success:!1,errors:[{line:ft(n.actionId,n.stepId,n.functionName,!1,e),message:n.message,field:void 0}]};else if(n instanceof me){let r=n.issues,i=[];return r.forEach(r=>{let a=r?.keys?.[0],o=t(a)?r.path:[...r.path,a],s=ft(n.actionId,n.stepId,n.functionName,!0,e);i.push({line:s,message:r.message,field:o.join(`.`)})}),{success:!1,errors:i}}}return{success:!1,errors:[{line:1,message:`An unknown error occurred while parsing the connector.`,field:void 0}]}},dt=(e,n)=>{let r=n.split(`
4
+ `).filter(e=>e.trim()!==``)}catch(t){throw Error(`Failed to load partial file '${e}': ${t.message}`)}};var P=class e extends Error{constructor(t,n){super(n),this.name=`InternalConnectSDKError`,this.errorType=t,Error.captureStackTrace&&Error.captureStackTrace(this,e)}toString(){return`${this.name} [${this.errorType}]: ${this.message}`}},de=class extends P{constructor(e,t){super(`INVALID_YAML_FILE_ERROR`,t),this.name=`InvalidYamlFileError`,this.line=e??1}},fe=class extends P{constructor(e,t){super(`SCHEMA_VALIDATION_ERROR`,t),this.name=`SchemaValidationError`,this.issues=e}},pe=class extends P{constructor(e,t,n,r=`1`){let i=`Invalid Step Function: '${n}' (v${r}) on step '${t}'. Please ensure the function name and version are correct in the action '${e}'.`;super(`INVALID_STEP_FUNCTION`,i),this.name=`InvalidStepFunctionError`,this.actionId=e,this.stepId=t,this.functionName=n,this.functionVersion=r}},me=class extends P{constructor(e,t,n,r=`1`,i){let a=`Invalid parameters for Step Function: '${n}' (v${r}) on step '${t}'. Please ensure the parameters are correct in the action '${e}'.`;super(`INVALID_STEP_FUNCTION_PARAMS`,a),this.name=`InvalidStepFunctionParamsError`,this.actionId=e,this.stepId=t,this.functionName=n,this.functionVersion=r,this.issues=i,this.message=a}},he=class extends P{constructor(e,t,n){let r=`Invalid example ${t} for action '${e}': ${n.map(e=>`${e.path.join(`.`)}: ${e.message}`).join(`, `)}`;super(`INVALID_ACTION_EXAMPLE`,r),this.name=`InvalidActionExampleError`,this.actionId=e,this.exampleIndex=t,this.issues=n}},ge=class extends P{constructor(e,t,n){let r=`Invalid enum reference "${n}" in action "${e}", input "${t}". Check that the enum is defined in INPUT_ENUM_REGISTRY.`;super(`INVALID_ENUM_REFERENCE`,r),this.name=`InvalidEnumReferenceError`,this.actionId=e,this.inputName=t,this.enumRef=n}},F=class extends P{constructor(e){super(`MISSING_SCOPE_DEFINITION`,`Missing scope definition. Check that the scope is defined in the scope definitions.`),this.name=`MissingScopeDefinitionError`,this.issues=e}};const _e=e=>({statusCode:400,message:`Invalid request - validation failed`,errors:e.map(e=>({property:e.field,location:e.location,expected:e.expected,received:e.received,message:e.message}))}),ve=e=>{switch(e){case`list`:return{statusCode:200,description:`The list of records was retrieved.`};case`get`:return{statusCode:200,description:`The record with the given identifier was retrieved.`};case`create`:return{statusCode:201,description:`The record was created successfully.`};case`update`:return{statusCode:200,description:`The record was updated successfully.`};case`delete`:return{statusCode:204,description:`The record was deleted successfully.`};case`custom`:return{statusCode:200,description:`The action was executed successfully.`};case`refresh_token`:return{statusCode:200,description:`The refresh token action was executed successfully.`};case`unknown`:return{statusCode:200};default:throw Error(`Unknown action type: ${e}`)}},ye=()=>({400:{statusCode:400,description:`Invalid request.`},401:{statusCode:401,description:`Unauthorized access.`},403:{statusCode:403,description:`Forbidden.`},404:{statusCode:404,description:`Resource not found.`},500:{statusCode:500,description:`Server error while executing the request.`}}),be={key:o.string(),label:o.string(),required:o.boolean().optional().default(!1),secret:o.boolean().optional().default(!1),readOnly:o.boolean().optional().default(!1),placeholder:o.string().optional(),description:o.string().optional(),tooltip:o.string().optional()},xe=o.discriminatedUnion(`type`,[s({...be,type:o.enum([`text`,`password`])}),s({...be,type:o.literal(`select`),options:s({value:o.string(),label:o.string()}).array()})]),Se=s({targetFieldKey:o.string(),alias:o.string().optional(),expression:o.string().optional(),values:o.unknown().optional(),type:o.enum([`string`,`number`,`boolean`,`datetime_string`,`enum`,`object`]),array:o.boolean().default(!1),custom:o.boolean().default(!1),hidden:o.boolean().default(!1),enumMapper:s({matcher:o.enum([`country_alpha2code_by_alpha2code`,`country_alpha3code_by_alpha3code`,`country_code_by_country_code`,`country_name_by_country_name`,`country_name_by_alpha3code`,`country_name_by_alpha2code`,`country_name_by_country_code`,`country_alpha3code_by_alpha2code`,`country_alpha3code_by_country_name`,`country_alpha3code_by_country_code`,`country_alpha2code_by_alpha3code`,`country_alpha2code_by_country_name`,`country_alpha2code_by_country_code`,`country_code_by_alpha2code`,`country_code_by_alpha3code`,`country_code_by_country_name`,`country_subdivisions_by_alpha2code`,`country_subdivision_code_by_subdivision_name`,`country_alpha2code_by_citizenship`,`country_subdivision_name_by_subdivision_code`,`document_file_format_from_extension`]).or(s({matchExpression:o.string(),value:o.string()}).array())}).optional(),properties:o.lazy(()=>Se).array().optional(),requiredScopes:o.string().optional()}),Ce=o.union([s({values:o.string().array().min(1)}),s({ref:o.string()})]),we=s({name:o.string(),type:o.enum([`string`,`number`,`boolean`,`datetime_string`,`object`,`enum`]),required:o.boolean(),description:o.string(),array:o.boolean().optional().default(!1),arrayFormat:o.enum([`repeat`,`brackets`,`comma`]).optional(),in:o.enum([`body`,`query`,`path`,`headers`]),properties:o.lazy(()=>we.omit({in:!0})).array().optional(),oneOf:Ce.optional()}).refine(e=>e.type!==`enum`||e.oneOf!==void 0,{message:`oneOf is required when type is 'enum'`}).refine(e=>e.type===`enum`||e.oneOf===void 0,{message:`oneOf is only allowed when type is 'enum'`}),Te=o.object({exampleDescription:o.string().optional()}).catchall(o.unknown()),I=s({actionId:o.string(),categories:o.string().array(),actionType:o.enum([`list`,`get`,`create`,`update`,`delete`,`custom`,`refresh_token`,`unknown`]),schema:o.string().optional(),schemaType:o.enum([`native`,`unified`]).optional().default(`native`),entrypointUrl:o.string().optional(),entrypointHttpMethod:o.string().optional(),label:o.string(),description:o.string(),details:o.string().optional(),examples:Te.array().optional(),tags:o.string().array().optional(),releaseStage:o.enum(g).optional(),resources:o.string().optional(),responses:s({statusCode:o.number(),description:o.string()}).array().optional(),requiredScopes:o.string().optional(),inputs:we.array().optional(),cursor:s({enabled:o.boolean(),pageSize:o.number()}).optional(),compositeIdentifiers:s({enabled:o.boolean(),version:o.number().optional(),fields:s({targetFieldKey:o.string(),remote:o.string().optional(),components:o.string().array()}).array().optional()}).optional(),scheduledJobs:s({enabled:o.boolean(),type:o.enum([`data_sync`]),schedule:o.string(),description:o.string(),requestParams:s({fields:o.string().array().optional(),expand:o.string().array().optional(),filter:o.record(o.string(),o.string()).optional()}).optional(),syncFilter:s({name:o.enum([`updated_after`,`created_after`]),initialLoopbackPeriod:o.string(),incrementalLoopbackPeriod:o.string()}).optional()}).array().optional(),fieldConfigs:Se.array().optional(),steps:s({stepId:o.string(),description:o.string(),stepFunction:s({functionName:o.string(),version:o.string().optional(),parameters:o.record(o.string(),o.unknown())}),condition:o.string().optional(),ignoreError:o.boolean().optional()}).array(),result:o.string().or(o.record(o.string(),o.unknown())).optional()}),Ee=s({schedule:o.string().optional(),action:I.extend({actionType:o.literal(`refresh_token`)})}),De=s({mainRatelimit:o.number(),subPools:o.array(s({subPoolKey:o.string(),urlPattern:o.string(),rateLimit:o.number()})).optional(),mappedRateLimitErrors:o.array(s({errorStatus:o.number(),errorMessage:o.string(),errorMessagePath:o.string().optional(),retryAfterPath:o.string().optional(),retryAfterUnit:o.union([o.literal(`seconds`),o.literal(`milliseconds`),o.literal(`date`)]).optional(),retryAfterValue:o.number().optional()})).optional()}),Oe=s({mainMaxConcurrency:o.number(),subPools:o.array(s({subPoolKey:o.string(),urlPattern:o.string(),maxConcurrency:o.number()})).optional()}),L=s({label:o.string(),authorization:p,requiredScopes:o.string().optional(),environments:s({key:o.string(),name:o.string()}).array(),support:s({link:o.string().optional(),description:o.string().optional()}).optional(),configFields:xe.array().optional(),setupFields:xe.array().optional(),refreshAuthentication:Ee.optional(),testActions:s({action:o.string().or(I),condition:o.string().optional(),required:o.boolean().default(!0)}).array().optional()}),ke=L.extend({type:o.literal(`oauth2`),grantType:o.enum([`authorization_code`,`client_credentials`]).default(`authorization_code`)}),Ae=L.extend({type:o.literal(`custom`)}),je=L.extend({type:o.literal(`oidc`)}),Me=o.discriminatedUnion(`type`,[ke,Ae,je]),Ne=s({StackOne:o.string(),info:s({title:o.string(),version:o.string(),key:o.string(),assets:s({icon:o.string()}),description:o.string(),details:o.string().optional()}),resources:o.string().optional(),baseUrl:o.string(),scopeDefinitions:o.record(o.string(),s({description:o.string(),includes:o.string().optional()})).optional(),authentication:o.record(o.string(),Me).array().optional(),actions:I.array().optional(),rateLimit:De.optional(),concurrency:Oe.optional(),releaseStage:o.enum(g).optional()}).strict();function R(e){try{let t=tt(Ne,ie(e)),n=Pe(t.scopeDefinitions),r={title:t.info.title,version:t.info.version,key:t.info.key,assets:t.info.assets,description:t.info.description,details:t.info.details,resources:t.resources,rateLimit:t.rateLimit,concurrency:t.concurrency,releaseStage:t.releaseStage,scopeDefinitions:n},i=Re(t),o={baseUrl:t.baseUrl,authentication:Fe(i)},s=We(t,o);return r.actions=s,Ie(t,t.info.key,i,s,o),r.authentication=i,a(s)&&(r.categories=Le(Object.values(s))),r}catch(e){if(e instanceof P)throw e;let t=e.message,n=t.match(/at line (\d+)/);throw new de(n?parseInt(n[1],10):1,t)}}const Pe=e=>{if(!e)return;let t={};for(let[n,r]of Object.entries(e)){let e=r?.includes?.split(` `).filter(e=>e.trim().length>0)??void 0;t[n]={name:n,description:r.description,includes:e}}let n=new Set(Object.keys(t)),r=[];if(Object.values(t).forEach(e=>{e.includes&&e.includes.forEach(t=>{n.has(t)||r.push({message:`Scope '${t}' included in scope '${e.name}' is not defined.`,path:[`scopeDefinitions`,e.name],keys:[`includes`]})})}),r.length>0)throw new F(r);return t},Fe=e=>{let t={};for(let[n,r]of Object.entries(e))if(r&&typeof r==`object`){let{setupFields:e,configFields:i,support:a,refreshAuthentication:o,testActions:s,requiredScopes:c,...l}=r;t[n]=Fe(l)}else t[n]=r;return t},Ie=(e,t,n,r,i)=>{if(!n||!r)return;let o=0;for(let s of Object.values(n)){for(let n of Object.values(s))n.testActions=n.testActions?.map((n,s)=>{if(a(n.action))if(typeof n.action==`string`){let e=M(t,n.action),i=Object.values(r).find(t=>t.id===e);if(i)return{...n,action:i}}else{let r=z(e,[`authentication`,o,`testActions`,s],M(t,n.action.actionId),n.action,i);return{...n,action:r}}return n});o++}},Le=e=>{let t=e.reduce((e,t)=>{for(let n of t.categories)e.add(n);return e},new Set);return Array.from(t)},Re=e=>{let t={},n=new Set(Object.keys(e.scopeDefinitions||{})),r=[];for(let[i,o]of(e.authentication??[]).entries()){let[s]=Object.keys(o);t[s]=o[s].environments.reduce((t,c)=>{let{key:l,name:u}=c,{environments:d,refreshAuthentication:f,testActions:p,requiredScopes:m,...h}=o[s],g=m?m.split(` `).filter(e=>e.trim().length>0):void 0;Object.values(g??[]).forEach(e=>{n.has(e)||r.push({message:`Scope '${e}' included in authentication '${s}' is not defined.`,path:[`authentication`,i],keys:[`requiredScopes`]})});let _=a(f)?{schedule:f.schedule,action:z(e,[`authentication`,i,`refreshAuthentication`,`action`],M(e.info.key,f.action.actionId),f.action)}:void 0;return t[l]={...h,refreshAuthentication:_,requiredScopes:g,envKey:l,envName:u,testActions:p},t},{})}if(r.length>0)throw new F(r);return t},ze=e=>e.entrypointUrl&&e.entrypointHttpMethod?`${e.entrypointHttpMethod.toUpperCase()} ${e.entrypointUrl}`:void 0,Be=e=>e.actionType===`list`?`GET /${e.schema}`:`GET /${e.schema}/:id`,Ve=e=>{if(e.actionType!==`refresh_token`)return e.entrypointHttpMethod??`get`},He=e=>{if(!(e.actionType===`refresh_token`||t(e.schema)))return e.actionType===`list`?`/${e.schema}`:`/${e.schema}/:id`},Ue=e=>{let t={success:ve(e.actionType),errors:ye()};return e.responses?.reduce((e,t)=>(re(t.statusCode)?e.success={statusCode:t.statusCode,description:t.description}:e.errors[t.statusCode]={statusCode:t.statusCode,description:t.description},e),t)??t},We=(e,t)=>e.actions?.reduce((n,r,i)=>{let a=ze(r),o=Be(r),s=a??o,c=M(e.info.key,r.actionId);return n[c]=z(e,[`actions`,i],c,r,t,s),n},{}),Ge=(e,t)=>{if(t){for(let n of t)if(n.type===`enum`&&n.oneOf&&`ref`in n.oneOf&&!w(n.oneOf.ref))throw new ge(e,n.name,n.oneOf.ref)}},Ke=(e,t,n)=>{if(!t||t.length===0)return;let r={};for(let e of n){let t=V(e);e.required||(t=t.optional()),r[e.name]=t}let i=o.object(r).strict();for(let n=0;n<t.length;n++){let{exampleDescription:r,...a}=t[n],o=i.safeParse(a);if(!o.success){let t=o.error.issues.map(e=>({code:e.code,message:e.message,input:e.input,path:e.path,keys:[]}));throw new he(e,n,t)}}},z=(e,t,n,r,i,a)=>{let o=He(r),s=Ue(r),c=Ze(r),l=r.inputs||[];c.enabled&&(l?.push({type:`string`,name:`page_size`,in:`query`,required:!1,description:`Number of items to return per page`,array:!1}),l?.push({type:`string`,name:`next`,in:`query`,required:!1,description:`Token for the next page of results`,array:!1})),Ge(n,l),Ke(n,r.examples,l);let u=Ve(r),d=new Set(Object.keys(e.scopeDefinitions||{})),f=[],p=r.requiredScopes?r.requiredScopes.split(` `).filter(e=>e.trim().length>0):void 0;if(Object.values(p??[]).forEach(e=>{d.has(e)||f.push({message:`Scope '${e}' included in action '${r.actionId}' is not defined.`,path:t,keys:[`requiredScopes`]})}),f.length>0)throw new F(f);return{id:n,categories:r.categories,label:r.label,description:r.description,details:r.details,examples:r.examples,actionType:r.actionType,schemaType:r.schemaType??`native`,entrypointUrl:r.entrypointUrl??o,entrypointHttpMethod:u,endpoint:a,tags:r.tags,releaseStage:r.releaseStage,resources:r.resources,responses:s,cursor:c,compositeIdentifiers:Qe(r),scheduledJobs:$e(r),requiredScopes:p,inputs:l,steps:r.steps.reduce((n,a)=>{let{customErrors:o,...s}=a.stepFunction.parameters??{},c=qe(e,t,a.stepFunction.functionName===`map_fields`||a.stepFunction.functionName===`typecast`?s.fields??r.fieldConfigs:void 0),l={id:a.stepId,description:a.description,condition:a.condition,ignoreError:a.ignoreError,stepFunction:{functionName:a.stepFunction.functionName,version:a.stepFunction.version,params:{...et({stepFunctionName:a.stepFunction.functionName,baseRequestParams:i,customErrors:o}),...c??{},...s}}};return Je(r.actionId,l),n[a.stepId]=l,n},{}),result:r.result}},qe=(e,n,r)=>{if(t(r)||!Array.isArray(r))return;let i=new Set(Object.keys(e.scopeDefinitions||{})),a=[],o=r.map((e,t)=>{if(typeof e!=`object`||!e)return;let r=e.requiredScopes?e.requiredScopes.split(` `).filter(e=>e.trim().length>0):void 0;return Object.values(r??[]).forEach(r=>{i.has(r)||a.push({message:`Scope '${r}' included in field config '${e.targetFieldKey}' is not defined.`,path:[...n,`fieldConfigs`,t],keys:[`requiredScopes`]})}),{...e,requiredScopes:r}});if(a.length>0)throw new F(a);return{fields:o}},Je=(e,t)=>{let n=t.stepFunction.version??`1`,r=y[t.stepFunction.functionName]?.[`v${n}`];if(!r)throw new pe(e,t.id,t.stepFunction.functionName,n);let i=r.inputSchema;i&&nt(i,t.stepFunction.params,e,t.id,t.stepFunction.functionName,n)},B=(e,t)=>{if(!e.inputs)return{};let n=Ye(e.inputs),r=o.object(n).parse(t);return{...r.headers??{},...r.query??{},...r.path??{},...r.body??{}}},Ye=e=>{let t=e.reduce((e,t)=>(e[t.in]||(e[t.in]=[]),e[t.in].push(t),e),{}),n={};for(let[e,r]of Object.entries(t)){let t={};for(let e of r){let n=V(e);e.description&&(n=n.describe(e.description)),e.required||(n=n.optional()),t[e.name]=n}Object.keys(t).length>0&&(n[e]=o.object(t))}return n},Xe=(e,t)=>{if(!t)throw Error(`Enum input "${e}" requires oneOf definition`);let n;if(`values`in t)n=t.values;else if(`ref`in t){let r=S(t.ref);if(!r)throw Error(`Unknown enum reference "${t.ref}" in input "${e}"`);n=r}else throw Error(`Invalid oneOf definition in input "${e}"`);if(n.length===0)throw Error(`Enum input "${e}" must have at least one allowed value`);return o.enum(n)},V=e=>{let t;switch(e.type){case`string`:case`datetime_string`:t=o.string();break;case`number`:t=o.number();break;case`boolean`:t=o.boolean();break;case`enum`:t=Xe(e.name,e.oneOf);break;case`object`:if(e.properties&&e.properties.length>0){let n={};for(let t of e.properties){let e=V(t);t.description&&(e=e.describe(t.description)),t.required||(e=e.optional()),n[t.name]=e}t=o.object(n)}else t=o.record(o.string(),o.unknown());break;default:t=o.unknown()}return e.array&&(t=o.array(t)),t},Ze=e=>{let t=e.actionType===`list`,n=e.cursor??{enabled:t,pageSize:25};return{enabled:n.enabled&&t,pageSize:n.pageSize}},Qe=e=>{if(e.actionType===`refresh_token`||t(e.compositeIdentifiers))return{enabled:!1};let n=[];for(let t of e.compositeIdentifiers?.fields??[]){let r=t.components.map(t=>({name:t,alias:e.fieldConfigs?.find(e=>e.targetFieldKey===t)?.alias}));n.push({targetFieldKey:t.targetFieldKey,remote:t.remote,components:r})}return{enabled:e.compositeIdentifiers.enabled,version:e.compositeIdentifiers.version,fields:n.length>0?n:void 0}},$e=e=>{if(!t(e.scheduledJobs))return e.scheduledJobs},et=({stepFunctionName:e,baseRequestParams:t,customErrors:n={}})=>{if(e===`request`||e===`paginated_request`||e===`soap_request`||e===`soap_paginated_request`){let e=[{receivedStatus:500,targetStatus:502}],r=[...n&&Array.isArray(n)?n:[],...e];return{...t,customErrors:r}}else return{}},tt=(e,t)=>{let n=e.safeParse(t);if(n.success)return n.data;throw new fe(n.error.issues.map(e=>({code:e.code,message:e.message,input:e.input,path:e.path,keys:e?.keys??[]})),`Invalid connector schema`)},nt=(e,t,n,r,i,a)=>{let o=e.safeParse(t);if(o.success)return o.data;throw new me(n,r,i,a,o.error.issues.map(e=>({code:e.code,message:e.message,input:e.input,path:e.path,keys:e?.keys??[]})))},H=(e,t,n)=>{if(e.authentication?.[t]?.[n]?.type!==`oauth2`)return;let r=e.authentication?.[t]?.[n]?.refreshAuthentication?.action;if(a(r))return{action:r,params:{}}},rt=(e,t,n)=>e.authentication?.[t]?.[n]?.type===`oauth2`?a(H(e,t,n)):!1,it=(e,t,n)=>{let r=e.authentication?.[t]?.[n],i=r?.authorization;if(r?.type===`oauth2`)return i?.tokenExpiresIn},at=(e,t,n)=>{let r=e.authentication?.[t]?.[n],i=r?.authorization;if(r?.type===`oauth2`)return i?.tokenRefreshExpiresIn},ot=(e,t=[])=>lt(t,e.releaseStage),st=(e,t=[])=>{if(!ot(e,t))return;let n={};if(e.actions)for(let[r,i]of Object.entries(e.actions))lt(t,i.releaseStage)&&(n[r]=i);return{...e,actions:n}},ct=e=>e??`ga`,lt=(e=[],t)=>{let n=ct(t);return e.includes(n)},ut=e=>{try{return{success:!0,connector:R(e)}}catch(n){if(n instanceof fe||n instanceof F){let r=n.issues,i=[];return r.forEach(n=>{let r=n?.keys?.[0],a=t(r)?n.path:[...n.path,r],o=dt(a,e);i.push({line:o,message:n.message,field:a.join(`.`)})}),{success:!1,errors:i}}else if(n instanceof de)return{success:!1,errors:[{line:n.line,message:`The YAML connector file is not valid. Please check the syntax and structure.`,field:void 0}]};else if(n instanceof pe)return{success:!1,errors:[{line:ft(n.actionId,n.stepId,n.functionName,!1,e),message:n.message,field:void 0}]};else if(n instanceof me){let r=n.issues,i=[];return r.forEach(r=>{let a=r?.keys?.[0],o=t(a)?r.path:[...r.path,a],s=ft(n.actionId,n.stepId,n.functionName,!0,e);i.push({line:s,message:r.message,field:o.join(`.`)})}),{success:!1,errors:i}}}return{success:!1,errors:[{line:1,message:`An unknown error occurred while parsing the connector.`,field:void 0}]}},dt=(e,n)=>{let r=n.split(`
5
5
  `),i=0,o=-1,s=0;for(let n=0;n<r.length;n++){let c=r[n],l=c.match(/^(\s*)/)?.[1]?.length||0,u=c.replace(`- `,``).trim();if(u.startsWith(`#`)||u===``||l<=o)continue;let d=a(e[i])?`${String(e[i])}`:``;if(t(d))return s+1;if(isNaN(Number(d))){if(u.startsWith(`${d}:`)){if(i===e.length-1)return n+1;o=l,s=n,i++}}else{let e=parseInt(d,10),t=-1;for(let a=n;a<r.length;a++)if(r[a].trim().startsWith(`-`)&&t++,t===e){i++,s=n,n--;break}else n++}}return s+1},ft=(e,n,r,i,o)=>{let s=o.split(`
6
6
  `),c=1,l=null,u=null;for(let o=0;o<s.length;o++){let d=s[o].trim();if(t(l)&&d===`- actionId: ${e}`){l=e,c=o+1;continue}if(a(l)&&t(u)&&d===`- stepId: ${n}`){u=n,c=o+1;continue}if(a(l)&&a(u)&&!i&&d.startsWith(`functionName: ${r}`)||a(l)&&a(u)&&i&&d===`parameters:`)return c=o+1,c}return c};var U=class e extends Error{constructor(t,n,r){super(r),this.name=`ConnectSDKError`,this.errorType=t,this.context=n,Error.captureStackTrace&&Error.captureStackTrace(this,e)}toString(){return`${this.name} [${this.errorType}]: ${this.message}`}},pt=class extends U{constructor(e,t){super(`CONNECTOR_PARSE_ERROR`,e,t),this.name=`ConnectorParseError`}},W=class extends U{constructor(e,t){super(`MISSING_ACTION_ERROR`,e,t),this.name=`MissingActionError`}},G=class extends U{constructor(e,t,n){super(`INVALID_ACTION_INPUTS_ERROR`,e,t),this.name=`InvalidActionInputsError`,this.validationErrors=n}},mt=class extends U{constructor(e,t){super(`INVALID_CURSOR_ERROR`,e,t),this.name=`InvalidCursorError`}};const ht=(e,t)=>{let n=Object.keys(e.authentication??{}).map(t=>({type:`custom`,label:e.authentication?.[t].production?.label||`Custom`,key:t,required_scopes:e.authentication?.[t].production?.requiredScopes})),r=Object.values(e?.actions??{}).map(e=>({id:e.id,description:e.description.replace(/\b\w/g,e=>e.toUpperCase()),label:e.label.replace(/\b\w/g,e=>e.toUpperCase()),schema_type:e.schemaType,tags:e.tags,required_scopes:e.requiredScopes,authentication:n,action_details:t?.includes(`action_details`)?e:void 0})),i=Object.values(e.scopeDefinitions??{});return{version:e.version,name:e.title,key:e.key,icon:e.assets?.icon,description:e.description,categories:e.categories,authentication:n,scope_definitions:i.length>0?i:void 0,actions:r}},gt=(e,t)=>e.map(e=>ht(e,t)),_t=async({block:e,stepFunctionName:t,params:n,buildStepFunction:r=v.build})=>{let i=r({functionName:t}).fn,a=await i({block:e,params:n}),o=t===_.MAP_FIELDS?{[_.MAP_FIELDS.toString()]:{output:{data:a.block.result},errors:a.errors,successful:a.successful}}:{};return{...a.block,steps:{...a?.block?.steps??{},...o}}},K=({category:t,connectorKey:n,connectorVersion:r,authConfigKey:i,environment:a=`production`,action:o,accountSecureId:s,projectSecureId:c,organizationId:l,originOwnerId:u,originOwnerName:d,sourceType:f,sourceId:p,sourceValue:m})=>({organizationId:l,projectSecureId:c,accountSecureId:s,connectorKey:n,connectorVersion:r,category:t,service:``,resource:``,originOwnerId:u,originOwnerName:d,source:{sourceType:f,sourceId:p,sourceValue:m},schema:o?.schema?.key,actionType:o?.actionType??`unknown`,authenticationType:i,environment:a,actionRunId:e()}),vt=(e,t,n)=>e.authentication?.[t]?.[n]?.testActions,yt=e=>{let n=e.action?.compositeIdentifiers,r={...e.inputs??{}};if(!n?.enabled||t(r))return e;let i=n.fields?.reduce((e,t)=>(t.components.forEach(t=>{t.alias&&(e[t.name]=t.alias)}),e),{});return q(r,{version:n.version??m,aliases:i},e.logger),{...e,inputs:r}},q=(e,t,n)=>{for(let r in e){let i=e[r];if(typeof i==`string`||Array.isArray(i)&&i.every(e=>typeof e==`string`))Tt(i,r,e,t,n);else if(Array.isArray(i))for(let e of i)q(e,t,n);else typeof i==`object`&&i&&q(i,t,n)}},bt=(e,t,n,r)=>{let i=[],a=[];for(let o of e)try{let e=ee(o,n);i.push(e)}catch(e){r?.debug({message:`Received ${t} with invalid composite ID, assuming it is not a composite ID`,category:`processCompositeId`,context:{key:t,inputElement:o,compositeIdentifierConfig:n,error:e}}),a.push(o)}return{compositeIdComponents:i,nonCompositeIds:a}},xt=(e,t,n,r)=>{let i=n.filter(e=>Object.keys(e).length>1);i.length>0&&(e.decoded_ids={...e.decoded_ids??{},[t]:r?i:i[0]})},St=e=>{let t=Object.values(e);return t.length===1&&(typeof t[0]==`string`||typeof t[0]==`number`)},Ct=(e,t,n,r,i)=>{n.every(St)&&(i?e[t]=[...n.map(e=>Object.values(e)[0]),...r]:n.length>0&&(e[t]=Object.values(n[0])[0]))},wt=(e,t,n)=>{e instanceof h&&e.type===`COMPOSITE_ID_MISSING_HEADER_ERROR`?n?.debug({message:`Received ${t} with no composite ID header, assuming it is not a composite ID`}):n?.warning({message:`Error processing composite ID for ${t}, ignoring it`,error:e})},Tt=(e,t,n,r,i)=>{try{let a=Array.isArray(e),o=a?e:[e];if(o.length===0)return;let{compositeIdComponents:s,nonCompositeIds:c}=bt(o,t,r,i);xt(n,t,s,a),Ct(n,t,s,c,a)}catch(e){wt(e,t,i)}},J=`remote_`,Et=e=>{let n=e.action?.compositeIdentifiers;if(!n?.enabled)return e;let r=`data`,i=e.outputs?.[r];if(t(i))return e;let a=Array.isArray(i)?i.map(e=>Dt(e,n)):Dt(i,n);return{...e,outputs:{...e.outputs??{},[r]:a}}},Dt=(e,t)=>{let n=Y(Ot(e,t));return{...e,...r(n)?n:{}}},Ot=(e,t)=>{let n=t.version??m,r={};return t.fields?.forEach(t=>{let i={},a=[];t.components.forEach(t=>{t.alias&&(i[t.name]=t.alias),a.push({key:t.name,value:e[t.name]})});let o=b(a.length===1?a[0]:{identifiers:a},{version:n,aliases:Object.keys(i).length>0?i:void 0});r[t.targetFieldKey]=o,t.remote&&(r[`${J}${t.remote}`]=e[t.remote])}),{...e,...r}},kt=e=>e===`id`||/.+_id(s)?$/.test(e),At=e=>Array.isArray(e)&&e.every(e=>i(e)&&e.length>0),jt=(e,t)=>C(e)||t.startsWith(J),Mt=(e,t)=>{try{return b({key:e,value:t},{version:m})}catch{return t}},Nt=(e,t,n)=>{n[e]=t.map(t=>i(t)&&t.length>0&&!C(t)?Mt(e,t):t),n[`${J}${e}`]=t},Pt=(e,t,n)=>{jt(t,e)||(n[e]=b({key:e,value:t},{version:m}),n[`remote_${e}`]=t)},Ft=(e,t,n)=>{At(t)?Nt(e,t,n):i(t)&&t.length>0&&Pt(e,t,n)},Y=e=>{if(Array.isArray(e))return e.map(e=>Y(e));if(!r(e))return e;let t={...e};for(let[n,i]of Object.entries(e))(r(i)||Array.isArray(i)&&i.length>0&&r(i[0]))&&(t[n]=Y(i)),kt(n)&&Ft(n,i,t);return t},It=(e,t)=>{let r=Number(e.inputs?.page_size);return a(e.inputs?.page_size)&&n(r)&&!Number.isNaN(r)?r:e.action?.cursor?.pageSize??t},Lt=(e,n,i,o)=>{let s=t(e)?void 0:e.data,c=Object.keys(i).length+1,l=te({cursor:o,ignoreStepIndex:c});if(!r(e)||t(s)||(s?.length??0)<=n)return{result:e,next:a(o)&&!l?T(o):null};let u=o?.remote?.[c]?.pageNumber??1,d=(u-1)*n,f=d+n,p=s.slice(d,f),m=s.length>f||!l,h=E({cursor:o,stepIndex:c,pageNumber:u+1});return{result:{...e,data:p},next:m?T(h):null}},Rt=e=>{let n=e?.olap;return t(n)?{}:{logs:n.logs?{enabled:n.logs.enabled}:void 0,advanced:n.advanced?{enabled:n.advanced.enabled,ttl:n.advanced.ttl,errorsOnly:n.advanced.errorsOnly}:void 0}},X=async({block:e,buildStepFunction:t=v.build,virtualPaginateResultFn:n=Lt,encodeResultCompositeIds:r=Et,decodeInputCompositeIds:i=yt})=>r(await Wt({block:i(e),buildStepFunction:t,virtualPaginateResultFn:n})),zt=(e,t)=>e.condition?!D(e.condition,t):!1,Bt=(e,t,n)=>{let r=e.stepFunction,i=y[e.stepFunction.functionName]?.[`v${e.stepFunction.version??1}`],o=a(i?.inputSchema?.shape)?`cursor`in i?.inputSchema?.shape:!1;return t.action?.cursor.enabled&&o?{...r.params??{},cursor:{token:t.nextCursor?.remote?.[n]?.providerPageCursor,position:t.nextCursor?.remote?.[n]?.position}}:r.params??{}},Vt=(e,t,n,r,i)=>{let a=Z({block:e,stepId:t,successful:!1,functionOutput:n});return(r.ignoreError??!1)||(i.hasFatalError=!0,i.errorStatusCode??=n.output?.statusCode??500),a},Ht=async(e,t,n,r,i,a)=>{let o=n[e],s=o.stepFunction,c=a.buildStepFunction({functionName:s.functionName,version:s.version,validateSchemas:!0}).fn;if(zt(o,r))return Z({block:r,stepId:e,successful:!0,skipped:!0,message:`Step skipped due to condition not met.`});if(i.hasFatalError)return Z({block:r,stepId:e,successful:!1,skipped:!0,message:`Step skipped due to previous error.`});let l=await c({block:r,params:Bt(o,r,t)});if(l.successful===!1)return Vt(r,e,l,o,i);let u=r.action?.cursor.enabled?E({cursor:r.nextCursor,stepIndex:t,providerPageCursor:l.output?.next,position:l.output?.position}):void 0;return Z({block:{...l.block,nextCursor:u},stepId:e,functionOutput:l})},Ut=(e,t,n,i,o)=>{let s=!n.hasFatalError,c=s?e.action?.responses.success.statusCode??200:n.errorStatusCode??500,l=a(o)&&r(o.result)?{next:o.next,...o.result}:i;return{...t,outputs:l,response:{successful:s,statusCode:c,message:s?void 0:e.action?.responses?.errors?.[c]?.description??ne?.[c]??`Error while processing the request`}}},Wt=async({block:e,buildStepFunction:t=v.build,virtualPaginateResultFn:n=Lt})=>{let r=e.action?.steps||{},i={...e},a=Object.keys(r),o=It(e,25),s={hasFatalError:!1,errorStatusCode:null},c={block:e,buildStepFunction:t,virtualPaginateResultFn:n};for(let[e,t]of a.entries()){let n=new Date;i=await Ht(t,e,r,i,s,c),Kt({block:i,stepId:t,startTime:n,endTime:new Date})}let l=e.action?.result?Gt(e.action.result,i):void 0,u=e.action?.cursor.enabled?n(l,o,r,i.nextCursor):void 0;return Ut(e,i,s,l,u)},Gt=(e,t)=>r(e)?oe(e,t):D(e,t),Z=({block:e,stepId:t,successful:n,functionOutput:r,skipped:i,message:a})=>({...e,steps:{...e.steps,[t]:{successful:n??r?.successful??!1,errors:r?.errors,output:r?.output,skipped:i,message:a}}}),Kt=({block:e,stepId:n,startTime:r,endTime:i})=>{let a=e.olapClient;if(t(a?.recordStep))return;let o=Rt(e.settings),s=e.context,c={inputs:e.steps?.[n]?.output},l={actionRunId:s.actionRunId??`unknown`,stepId:n,organizationId:s.organizationId??`unknown`,projectSecureId:s.projectSecureId??`unknown`,accountSecureId:s.accountSecureId??`unknown`,status:e.steps?.[n]?.successful?`successful`:`failed`,skipped:e.steps?.[n]?.skipped,message:e.steps?.[n]?.message,outputs:e.steps?.[n]?.output,errors:e.steps?.[n]?.errors,startTime:r,endTime:i};a.recordStep(c,l,o)},Q=async e=>{let{pathParams:n={},queryParams:r={},body:o={},headers:s={},parseConnector:c=R,parseActionInputsFn:l=B,createBlockContextFn:u=K,createBlockFn:d=O,runStepActionFn:f=X,getActionFromUrlFn:p=k,getActionForRefreshAuthenticationFn:m=H,getTestActionsFn:h=vt,mode:g,account:_,connector:v,getHttpClient:y,getOlapClient:ee,settings:b,source:x,logger:S,category:C,...te}=e,w=_.authConfigKey,T=_.environment??`production`,E=_.secureId,ne=_.projectSecureId,re=_.organizationId,ie=_.credentials,D=_.originOwnerId,oe=_.originOwnerName,A=u({category:C??`action`,connectorKey:_.providerKey,connectorVersion:_.providerVersion,authConfigKey:w,environment:T,accountSecureId:E,projectSecureId:ne,organizationId:re,originOwnerId:D,originOwnerName:oe,sourceType:x?.sourceType,sourceId:x?.sourceId,sourceValue:x?.sourceValue}),j=new Date,M;try{M=i(v)?c(v):v}catch{throw new pt(A,`Error while parsing connector`)}let N={connector:M,context:A,credentials:ie,settings:b,logger:S,getHttpClient:y,getOlapClient:ee};if(g===`action_id`){let{actionId:i}=te,a=se(M,i);if(t(a))throw new W(A,`No matching action found`);let c=await qt({action:a,blockContext:A,queryParams:r,pathParams:n,body:o,headers:s,parseActionInputsFn:l,createBlockFn:d,createBlockParams:N,runStepActionFn:f});return c.statistics={startTime:j,endTime:new Date},$({action:a,actionParams:e,resultBlock:c}),c}else if(g===`test_actions`){let n=h(M,w,T);if(t(n)||n.length===0)return await Jt(d,N);A.actionType=`test`;for(let r of n){let n=new Date,i=await d({...N,inputs:void 0,action:r.action,nextCursor:void 0});if(!(!a(r.condition)||ae(r.condition,i)))continue;let o=await f({block:i});if((t(o?.response?.successful)||!o.response.successful)&&r.required){S?.error({code:`TestActionFailed`,message:`Test action "${r.action.id}" failed with error: ${o?.response?.message}`});let t=await Yt(d,N);return $({action:r.action,actionParams:e,resultBlock:t}),t}o.statistics={startTime:n,endTime:new Date},$({action:r.action,actionParams:e,resultBlock:o})}let r=await Jt(d,N);return r.statistics={startTime:j,endTime:new Date},r}else if(g===`refresh_authentication`){let n=m(M,w,T);if(t(n))throw new W(A,`No matching action found`);let i=await qt({action:n.action,blockContext:A,queryParams:r,pathParams:n.params,body:o,headers:s,parseActionInputsFn:l,createBlockFn:d,createBlockParams:N,runStepActionFn:f});return i.statistics={startTime:j,endTime:new Date},$({action:n.action,actionParams:e,resultBlock:i}),i}else if(g===`path`){let{path:n,method:i}=te,a=p(M,n,i);if(t(a))throw new W(A,`No matching action found`);let c=await qt({action:a.action,blockContext:A,queryParams:r,pathParams:a.params,body:o,headers:s,parseActionInputsFn:l,createBlockFn:d,createBlockParams:N,runStepActionFn:f});return c.statistics={startTime:j,endTime:new Date},$({action:a.action,actionParams:e,resultBlock:c}),c}else return await Yt(d,N)},qt=async e=>{let{action:t,blockContext:n,queryParams:r,pathParams:i,body:a,headers:o,parseActionInputsFn:s,createBlockFn:c,createBlockParams:l,runStepActionFn:u}=e;n.actionType=t.actionType,n.schema=t.schema?.key;let d=Xt(r,n),f;try{f=s(t,{path:i,query:r,body:a,headers:o})}catch(e){throw typeof e==`object`&&e&&`issues`in e&&Array.isArray(e.issues)?new G(n,`Invalid input values provided`,e.issues.map(e=>{let t=e.path.map(String),n=t[0]||`body`;return{field:t.slice(1).join(`.`)||t[0]||`unknown`,location:n,expected:`expected`in e?String(e.expected):e.code,received:`received`in e?String(e.received):`unknown`,message:e.message}})):new G(n,`Error while parsing action inputs`)}return await u({block:await c({...l,inputs:f,action:t,nextCursor:d})})},Jt=async(e,t)=>({...await e({...t,inputs:void 0,action:void 0,nextCursor:void 0}),response:{successful:!0,statusCode:200}}),Yt=async(e,t)=>({...await e({...t,inputs:void 0,action:void 0,nextCursor:void 0}),response:{successful:!1,statusCode:500}}),Xt=(e,t)=>{let n=e?.next,r=a(n)&&t.actionType===`list`?x(n):void 0;if(r===null)throw new mt(t,`Invalid cursor.`);return r},$=({action:e,actionParams:n,resultBlock:r})=>{if(t(e))return;let i=r.olapClient;if(t(i?.recordAction))return;let a=Rt(n.settings),o={actionId:e.id,mode:n.mode,url:e?.entrypointUrl,pathParams:n?.pathParams,queryParams:n?.queryParams,body:n?.body,headers:n?.headers,sourceId:n.source?.sourceId,sourceType:n.source?.sourceType,sourceValue:n.source?.sourceValue},s=r.context,c={actionRunId:s.actionRunId||`missing`,actionId:e.id,connectorKey:s.connectorKey,connectorVersion:s.connectorVersion,actionType:s.actionType,category:s.category,organizationId:n.account.organizationId,projectSecureId:s.projectSecureId,accountSecureId:s.accountSecureId,originOwnerId:s.originOwnerId,originOwnerName:s.originOwnerName,httpMethod:e?.entrypointHttpMethod,url:e?.entrypointUrl,success:r.response?.successful,statusCode:r.response?.statusCode,body:r.outputs??void 0,message:r.response?.message,startTime:r.statistics?.startTime,endTime:r.statistics?.endTime};i.recordAction(o,c,a)},Zt=async({actionId:e,account:t,connector:n,pathParams:r={},queryParams:i={},body:a={},headers:o={},logger:s,getHttpClient:c,getOlapClient:l,parseConnector:u=R,parseActionInputsFn:d=B,createBlockContextFn:f=K,createBlockFn:p=O,runStepActionFn:m=X})=>Q({mode:`action_id`,actionId:e,account:t,connector:n,pathParams:r,queryParams:i,body:a,headers:o,logger:s,getHttpClient:c,getOlapClient:l,parseConnector:u,parseActionInputsFn:d,createBlockContextFn:f,createBlockFn:p,runStepActionFn:m}),Qt=async({account:e,connector:t,category:n,path:r,method:i=`get`,queryParams:a={},body:o,headers:s,logger:c,getHttpClient:l,parseConnector:u=R,getActionFromUrlFn:d=k,getActionForRefreshAuthenticationFn:f=H,parseActionInputsFn:p=B,createBlockContextFn:m=K,createBlockFn:h=O,runStepActionFn:g=X})=>$t(r)?await Q({mode:`refresh_authentication`,account:e,connector:t,getActionForRefreshAuthenticationFn:f,parseConnector:u,logger:c,getHttpClient:l,parseActionInputsFn:p,createBlockContextFn:m,createBlockFn:h,runStepActionFn:g}):await Q({mode:`path`,account:e,category:n,connector:t,path:r,method:i,queryParams:a,body:o,headers:s,getActionFromUrlFn:d,parseConnector:u,logger:c,getHttpClient:l,parseActionInputsFn:p,createBlockContextFn:m,createBlockFn:h,runStepActionFn:g}),$t=e=>e===`stackone://internal//refresh_token`,en=async({account:e,connector:t,logger:n,getHttpClient:r,parseConnector:i=R,getTestActionsFn:a=vt,createBlockContextFn:o=K,createBlockFn:s=O,runStepActionFn:c=X})=>(await Q({mode:`test_actions`,account:e,connector:t,logger:n,getHttpClient:r,parseConnector:i,getTestActionsFn:a,createBlockContextFn:o,createBlockFn:s,runStepActionFn:c}))?.response?.successful??!1;export{U as ConnectSDKError,G as InvalidActionInputsError,st as applyReleaseStageToConnector,O as createBlock,_t as executeStepFunction,_e as formatValidationErrorResponse,k as getActionFromUrl,ht as getActionsMeta,gt as getActionsMetaFromConnectors,at as getRefreshTokenExpiresIn,it as getTokenExpiresIn,ot as isConnectorReleased,N as loadConnector,B as parseActionInputs,R as parseYamlConnector,Q as runAction,Zt as runConnectorActionById,Qt as runConnectorActionByPath,X as runStepAction,en as runTestActions,rt as supportsRefreshAuthentication,ut as validateYamlConnector};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stackone/connect-sdk",
3
- "version": "2.15.0",
3
+ "version": "2.16.0",
4
4
  "description": "",
5
5
  "main": "dist/index.cjs",
6
6
  "module": "dist/index.mjs",