@unmeshed/sdk 1.1.6 → 1.1.7

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.js CHANGED
@@ -352,6 +352,21 @@ var BlockingQueue = class {
352
352
 
353
353
  // src/apis/pollerClientImpl.ts
354
354
  var import_os = __toESM(require("os"));
355
+
356
+ // src/utils/retryDelay.ts
357
+ function getRandomDelayMs(maxSeconds, minSeconds = 1) {
358
+ const minimumSeconds = Math.max(1, Math.floor(minSeconds));
359
+ const maximumSeconds = Math.max(minimumSeconds, Math.floor(maxSeconds));
360
+ const delaySeconds = Math.floor(Math.random() * (maximumSeconds - minimumSeconds + 1)) + minimumSeconds;
361
+ return delaySeconds * 1e3;
362
+ }
363
+ async function wait(delayMs) {
364
+ await new Promise((resolve) => setTimeout(resolve, delayMs));
365
+ }
366
+
367
+ // src/apis/pollerClientImpl.ts
368
+ var REGISTRATION_RETRY_DELAY_MAX_SECONDS = 10;
369
+ var POLL_RETRY_DELAY_MAX_SECONDS = 30;
355
370
  async function registerPolling(apiClient, data) {
356
371
  const attempt = async () => {
357
372
  try {
@@ -361,8 +376,9 @@ async function registerPolling(apiClient, data) {
361
376
  console.log("Successfully renewed registration for workers", data);
362
377
  return response.data;
363
378
  } catch {
364
- console.error("An error occurred during polling registration. Retrying in 3 seconds...");
365
- await new Promise((resolve) => setTimeout(resolve, 3e3));
379
+ const delayMs = getRandomDelayMs(REGISTRATION_RETRY_DELAY_MAX_SECONDS);
380
+ console.error(`An error occurred during polling registration. Retrying in ${delayMs / 1e3} seconds...`);
381
+ await wait(delayMs);
366
382
  return attempt();
367
383
  }
368
384
  };
@@ -380,6 +396,9 @@ async function pollWorker(apiClient, data) {
380
396
  return response.data;
381
397
  } catch (error) {
382
398
  console.error("Error occurred during worker polling", error);
399
+ const delayMs = getRandomDelayMs(POLL_RETRY_DELAY_MAX_SECONDS);
400
+ console.error(`Retrying worker polling in ${delayMs / 1e3} seconds...`);
401
+ await wait(delayMs);
383
402
  return [];
384
403
  }
385
404
  }
@@ -529,7 +548,9 @@ async function pollForWorkers(apiClient, workers) {
529
548
  } catch (error) {
530
549
  errorCount++;
531
550
  console.error(`Error processing batch - error count : ${errorCount} - `, error);
532
- await new Promise((resolve) => setTimeout(resolve, 1e3));
551
+ const delayMs = getRandomDelayMs(POLL_RETRY_DELAY_MAX_SECONDS);
552
+ console.error(`Retrying worker polling in ${delayMs / 1e3} seconds...`);
553
+ await wait(delayMs);
533
554
  }
534
555
  }
535
556
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/apis/unmeshedApiClient.ts","../src/utils/unmeshedCommonUtils.ts","../src/types/index.ts","../src/apis/queuedWorker.ts","../src/apis/pollerClientImpl.ts","../src/apis/processClientImpl.ts","../src/apis/registrationClientImpl.ts"],"sourcesContent":["import {\n ApiCallType,\n ProcessDefinitionData,\n ProcessDefinitionDeleteRequest,\n ProcessDefinitionDetails,\n ProcessDefinitionsDetail,\n ProcessRequestData,\n ProcessSearchRequest,\n RenewRegistrationParams,\n UnmeshedClientConfig,\n UnmeshedWorkerConfig,\n} from './types';\nimport { UnmeshedApiClient } from './apis/unmeshedApiClient';\nimport { startPollingWorkers } from './apis/pollerClientImpl';\nimport {\n bulkResume,\n bulkReviewed,\n bulkTerminate,\n getProcessData,\n getStepData,\n invokeApiMappingGet,\n invokeApiMappingPost,\n rerun,\n runProcessAsync,\n runProcessSync,\n searchProcessExecutions,\n createProcessDefinition,\n updateProcessDefinition,\n deleteProcessDefinition,\n getProcessDefinitions,\n getProcessDefinitionVersions,\n getProcessDefinitionByVersion,\n} from './apis/processClientImpl';\nimport { renewRegistration } from './apis/registrationClientImpl';\n\n// noinspection JSUnusedGlobalSymbols\nexport class UnmeshedClient {\n private client: UnmeshedApiClient;\n\n constructor(config: UnmeshedClientConfig) {\n this.client = new UnmeshedApiClient(config);\n }\n\n startPolling(workers: UnmeshedWorkerConfig[]) {\n startPollingWorkers(this.client, workers);\n }\n\n runProcessSync(ProcessRequestData: ProcessRequestData) {\n return runProcessSync(this.client, ProcessRequestData);\n }\n\n runProcessAsync(ProcessRequestData: ProcessRequestData) {\n return runProcessAsync(this.client, ProcessRequestData);\n }\n\n getProcessData(processId: number, includeSteps: boolean) {\n return getProcessData(this.client, processId, includeSteps);\n }\n\n getStepData(stepId: number) {\n return getStepData(this.client, stepId);\n }\n\n bulkTerminate(processIds: number[], reason?: string) {\n return bulkTerminate(this.client, processIds, reason);\n }\n\n bulkResume(processIds: number[]) {\n return bulkResume(this.client, processIds);\n }\n\n bulkReviewed(processIds: number[], reason?: string) {\n return bulkReviewed(this.client, processIds, reason);\n }\n\n reRun(processId: number, version?: number) {\n return rerun(this.client, processId, version);\n }\n\n searchProcessExecution(params: ProcessSearchRequest) {\n return searchProcessExecutions(this.client, params);\n }\n\n invokeApiMappingGet(\n apiClient: UnmeshedApiClient,\n endpoint: string,\n id: string,\n correlationId: string,\n apiCallType: ApiCallType\n ) {\n return invokeApiMappingGet(apiClient, endpoint, id, correlationId, apiCallType);\n }\n\n invokeApiMappingPost(\n endpoint: string,\n input: Record<string, any>,\n id: string,\n correlationId: string,\n apiCallType: ApiCallType\n ) {\n return invokeApiMappingPost(this.client, endpoint, input, id, correlationId, apiCallType);\n }\n\n reNewRegistration(params: RenewRegistrationParams) {\n return renewRegistration(this.client, params);\n }\n\n createProcessDefinition(body: ProcessDefinitionData) {\n return createProcessDefinition(this.client, body);\n }\n updateProcessDefinition(body: ProcessDefinitionData) {\n return updateProcessDefinition(this.client, body);\n }\n deleteProcessDefinition(body: ProcessDefinitionDeleteRequest) {\n return deleteProcessDefinition(this.client, body);\n }\n getProcessDefinitions(namespace?: string) {\n return getProcessDefinitions(this.client, namespace);\n }\n getProcessDefinitionVersions(body: ProcessDefinitionsDetail) {\n return getProcessDefinitionVersions(this.client, body);\n }\n getProcessDefinitionByVersion(body: ProcessDefinitionDetails) {\n return getProcessDefinitionByVersion(this.client, body);\n }\n}\n\nexport * from './types';\n","import axios, { AxiosError, AxiosInstance, AxiosRequestConfig, AxiosResponse, RawAxiosRequestHeaders } from 'axios';\nimport {\n ApiResponse,\n ClientRequestConfig,\n FinalUnmeshedClientConfig,\n HandleRequestConfig,\n QueryParams,\n RequestConfig,\n UnmeshedClientConfig,\n} from '../types';\nimport { UnmeshedCommonUtils } from '../utils/unmeshedCommonUtils';\n\nexport class UnmeshedApiClient {\n private axiosInstance: AxiosInstance | null = null;\n private clientId: string | undefined = undefined;\n private _config: FinalUnmeshedClientConfig;\n\n constructor(unmeshedClientConfig: UnmeshedClientConfig) {\n console.log('Initializing Unmeshed ApiClient');\n\n this._config = createUnmeshedClientConfig(unmeshedClientConfig);\n\n console.log(this._config);\n\n this.clientId = this._config.clientId;\n\n if (!this._config.baseUrl) {\n throw new Error('baseUrl is required');\n }\n\n const baseURL = this._config.port ? `${this._config.baseUrl}:${this._config.port}` : this._config.baseUrl;\n\n this.axiosInstance = axios.create({\n baseURL,\n timeout: this._config.timeout,\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer client.sdk.${this._config.clientId}.${UnmeshedCommonUtils.createSecureHash(\n this._config.authToken\n )}`,\n } as RawAxiosRequestHeaders,\n });\n }\n\n private async handleRequest<T>({\n method,\n endpoint,\n params,\n data,\n config,\n }: HandleRequestConfig): Promise<ApiResponse<T>> {\n if (!this.axiosInstance) {\n throw new Error('ApiClient must be initialized before making requests');\n }\n\n try {\n const response: AxiosResponse<T> = await this.axiosInstance.request<T>({\n method,\n url: endpoint,\n params,\n data,\n ...config,\n } as AxiosRequestConfig);\n\n return {\n data: response.data,\n status: response.status,\n headers: response.headers as Record<string, string>,\n };\n } catch (error) {\n if (axios.isAxiosError(error)) {\n console.error('Request failed:', error.message);\n throw this.handleError(error);\n }\n console.error('Unexpected error:', (error as Error).message);\n throw error;\n }\n }\n\n private handleError(error: AxiosError): Error {\n console.error('Error details:', {\n message: error.message,\n status: error.response?.status,\n data: error.response?.data,\n });\n\n let response = error?.response?.data as ErrorResponse;\n if (response?.errorMessage) {\n return new Error(`${response.errorMessage} [Status code: ${error.response?.status || ''}]`);\n }\n\n return new Error(error.message, { cause: error.response?.data || {} });\n }\n\n public async get<T = any>(endpoint: string, params?: QueryParams, config?: RequestConfig): Promise<ApiResponse<T>> {\n return this.handleRequest<T>({\n method: 'get',\n endpoint: endpoint,\n params: params,\n config: config,\n });\n }\n\n public async post<T = any>(endpoint: string, clientRequestConfig: ClientRequestConfig): Promise<ApiResponse<T>> {\n return this.handleRequest<T>({\n method: 'post',\n endpoint: endpoint,\n ...clientRequestConfig,\n });\n }\n\n public async put<T = any>(endpoint: string, clientRequestConfig: ClientRequestConfig): Promise<ApiResponse<T>> {\n return this.handleRequest<T>({\n method: 'put',\n endpoint: endpoint,\n ...clientRequestConfig,\n });\n }\n\n public async delete<T = any>(endpoint: string, clientRequestConfig: ClientRequestConfig): Promise<ApiResponse<T>> {\n return this.handleRequest<T>({\n method: 'delete',\n endpoint: endpoint,\n ...clientRequestConfig,\n });\n }\n\n public getClientId(): string | undefined {\n return this.clientId;\n }\n\n get config(): FinalUnmeshedClientConfig {\n return this._config;\n }\n}\n\ninterface ErrorResponse {\n errorMessage?: string;\n [key: string]: any; // To allow other unexpected properties\n}\n\nexport function createUnmeshedClientConfig(config: UnmeshedClientConfig): Required<FinalUnmeshedClientConfig> {\n return {\n baseUrl: config.baseUrl,\n clientId: config.clientId,\n authToken: config.authToken,\n port: config.port ?? 443,\n timeout: config.timeout ?? 5000,\n pollInterval: config.pollInterval ?? 100,\n apiWorkerTimeout: config.apiWorkerTimeout ?? 10000,\n pollTimeout: config.pollTimeout ?? 10000,\n responsePollInterval: config.responsePollInterval ?? 100,\n responsePollTimeout: config.responsePollTimeout ?? 10000,\n responseBatchSize: config.responseBatchSize ?? 50,\n };\n}\n","import { createHash } from 'crypto';\n\nexport class UnmeshedCommonUtils {\n static createSecureHash(input: string): string {\n try {\n const hash = createHash('sha256');\n hash.update(input, 'utf8');\n return hash.digest('hex');\n } catch (e) {\n throw new Error('Error creating hash');\n }\n }\n}\n","import { AxiosRequestConfig } from 'axios';\n\nexport enum ApiCallType {\n SYNC = 'SYNC',\n ASYNC = 'ASYNC',\n STREAM = 'STREAM',\n}\n\nexport interface ApiMappingData {\n endpoint: string;\n processDefNamespace: string;\n processDefName: string;\n processDefVersion: number;\n authType: string;\n authClaims: string;\n createdBy: string;\n updatedBy: string;\n created: Date;\n updated: Date;\n}\n\nexport type ApiMappingWebhookData = {\n endpoint: string;\n name: string;\n uniqueId: string;\n urlSecret: string;\n description: string;\n userIdentifier: string;\n webhookSource: WebhookSource;\n webhookSourceConfig: Record<string, string>;\n expiryDate: Date;\n userType: SQAuthUserType;\n createdBy: string;\n updatedBy: string;\n created: Date;\n updated: Date;\n};\n\nexport enum WebhookSource {\n MS_TEAMS = 'MS_TEAMS',\n NOT_DEFINED = 'NOT_DEFINED',\n}\n\nexport enum SQAuthUserType {\n USER = 'USER',\n API = 'API',\n INTERNAL = 'INTERNAL',\n}\n\nexport enum StepType {\n LIST = 'LIST',\n HTTP = 'HTTP',\n WORKER = 'WORKER',\n SWITCH = 'SWITCH',\n PARALLEL = 'PARALLEL',\n FAIL = 'FAIL',\n PYTHON = 'PYTHON',\n JAVASCRIPT = 'JAVASCRIPT',\n JQ = 'JQ',\n SLACK = 'SLACK',\n GRAPHQL = 'GRAPHQL',\n WAIT = 'WAIT',\n BUILTIN = 'BUILTIN',\n NOOP = 'NOOP',\n AI_AGENT = 'AI_AGENT',\n EXIT = 'EXIT',\n DEPENDSON = 'DEPENDSON',\n PERSISTED_STATE = 'PERSISTED_STATE',\n UPDATE_STEP = 'UPDATE_STEP',\n INTEGRATION = 'INTEGRATION',\n FOREACH = 'FOREACH',\n WHILE = 'WHILE',\n SUB_PROCESS = 'SUB_PROCESS',\n FLOW_GATEWAY = 'FLOW_GATEWAY',\n DECISION_ENGINE = 'DECISION_ENGINE',\n SQLITE = 'SQLITE',\n MANAGED = 'MANAGED',\n}\n\nexport enum StepStatus {\n PENDING = 'PENDING',\n SCHEDULED = 'SCHEDULED',\n RUNNING = 'RUNNING',\n PAUSED = 'PAUSED',\n COMPLETED = 'COMPLETED',\n FAILED = 'FAILED',\n TIMED_OUT = 'TIMED_OUT',\n SKIPPED = 'SKIPPED',\n CANCELLED = 'CANCELLED',\n}\n\nexport enum ProcessStatus {\n RUNNING = 'RUNNING',\n COMPLETED = 'COMPLETED',\n FAILED = 'FAILED',\n TIMED_OUT = 'TIMED_OUT',\n CANCELLED = 'CANCELLED',\n TERMINATED = 'TERMINATED',\n REVIEWED = 'REVIEWED',\n}\n\nexport enum ProcessTriggerType {\n MANUAL = 'MANUAL',\n SCHEDULED = 'SCHEDULED',\n API_MAPPING = 'API_MAPPING',\n WEBHOOK = 'WEBHOOK',\n API = 'API',\n SUB_PROCESS = 'SUB_PROCESS',\n}\n\nexport enum ProcessType {\n STANDARD = 'STANDARD',\n DYNAMIC = 'DYNAMIC',\n API_ORCHESTRATION = 'API_ORCHESTRATION',\n INTERNAL = 'INTERNAL',\n}\n\nexport type ClientProfileData = {\n clientId: string;\n ipAddress: string;\n friendlyName: string;\n userIdentifier: string;\n stepQueueNames: StepQueueNameData[];\n createdBy: string;\n updatedBy: string;\n created: Date;\n updated: Date;\n expiryDate: Date;\n};\n\nexport type FullClientProfileData = {\n clientId: string;\n ipAddress: string;\n friendlyName: string;\n userIdentifier: string;\n stepQueueNames: StepQueueNameData[];\n createdBy: string;\n updatedBy: string;\n created: Date;\n updated: Date;\n expiryDate: Date;\n tokenValue: string;\n};\n\nexport type StepQueueNameData = {\n orgId: number;\n namespace: string;\n stepType: StepType;\n name: string;\n};\n\nexport type ProcessActionResponseData = {\n count: number;\n details: ProcessActionResponseDetailData[];\n};\n\nexport type ProcessActionResponseDetailData = {\n id: string;\n message: string;\n error: string;\n};\n\nexport type ProcessData = {\n processId: number;\n processType: ProcessType;\n triggerType: ProcessTriggerType;\n namespace: string;\n name: string;\n version: number | null;\n historyId: number | null;\n requestId: string;\n correlationId: string;\n status: ProcessStatus;\n input: Record<string, unknown>;\n output: Record<string, unknown>;\n authClaims: Record<string, unknown>;\n stepIdCount: number | null;\n shardName: string;\n shardInstanceId: number | null;\n steps: StepId[];\n stepRecords: StepData[];\n created: number;\n updated: number;\n createdBy: string;\n};\n\nexport type StepData = {\n id: number;\n processId: number;\n ref: string;\n parentId: number | null;\n parentRef: string | null;\n namespace: string;\n name: string;\n type: StepType;\n stepDefinitionHistoryId: number | null;\n status: StepStatus;\n input: Record<string, unknown>;\n output: Record<string, unknown>;\n workerId: string;\n start: number;\n schedule: number;\n priority: number;\n updated: number;\n optional: boolean;\n executionList: StepExecutionData[];\n};\n\nexport type StepExecutionData = {\n id: number;\n scheduled: number;\n polled: number;\n start: number;\n updated: number;\n executor: string;\n ref: string;\n runs: number;\n output: Record<string, unknown>;\n};\n\nexport type StepId = {\n id: number;\n processId: number;\n ref: string;\n};\n\nexport type TagValue = {\n name: string;\n value: string;\n};\n\nexport type ProcessRequestData = {\n name: string;\n namespace: string;\n version: number | null;\n requestId?: string;\n correlationId?: string;\n input?: Record<string, unknown>;\n};\n\nexport type ProcessSearchRequest = {\n startTimeEpoch: number;\n endTimeEpoch?: number | null;\n namespace?: string;\n processTypes?: ProcessType[];\n triggerTypes?: ProcessTriggerType[];\n names?: string[];\n processIds?: number[];\n correlationIds?: string[];\n requestIds?: string[];\n statuses?: ProcessStatus[];\n limit?: number;\n offset?: number;\n tags?: TagValue[];\n};\n\nexport interface ExecutionWait {\n result: { waitUntil: number };\n logs: [];\n}\n\nexport interface ExecutionTimelineType {\n id: number;\n executor: string;\n output: ExecutionWait | null;\n polled: number;\n scheduled: number;\n start: number;\n updated: number;\n ref?: string | null;\n}\n\nexport interface ExecutionDetails extends ExecutionTimelineType {\n stepRef: string;\n}\n\nexport interface AuditInfo {\n createdBy: string;\n updatedBy: string;\n created: number;\n updated: number;\n}\n\nexport interface Step extends NewStepData, AuditInfo, Object {\n executionList?: ExecutionDetails[];\n parentRef?: string;\n status?: string;\n completed?: number;\n children: Step[];\n executionCount?: number;\n triggerType?: string;\n}\nexport interface StepConfiguration {\n errorPolicyName?: string;\n useCache?: boolean;\n stream?: boolean;\n cacheKey?: string;\n cacheTimeoutSeconds?: number;\n jqTransformer?: string;\n rateLimitWindowSeconds?: number | null;\n rateLimitMaxRequests?: number | null;\n preExecutionScript?: string;\n scriptLanguage?: 'JAVASCRIPT' | 'PYTHON';\n constructInputFromScript?: boolean;\n additionalRefs?: string[];\n}\n\nexport interface NewStepData {\n type: StepType;\n name: string;\n namespace: string;\n ref: string;\n optional?: boolean;\n configuration?: StepConfiguration;\n children?: Step[];\n input?: Record<string, any>;\n output?: Record<string, any>;\n}\n\nexport type ProcessDefinitionDeleteRequest = {\n namespace: string;\n name: string;\n type: string;\n version: number;\n steps?: Step[];\n};\n\nexport interface ProcessRequest {\n name?: string;\n namespace?: string;\n version?: number | null;\n id?: string | null;\n correlationId?: string | null;\n input?: Record<string, any> | null;\n testRun?: boolean | null;\n}\nexport interface ProcessConfiguration {\n completionTimeout?: number;\n onTimeoutProcess?: ProcessRequest;\n onFailProcess?: ProcessRequest | null;\n onCompleteProcess?: ProcessRequest | null;\n onCancelProcess?: ProcessRequest;\n}\n\nexport interface ProcessDefinitionData {\n namespace: string;\n name: string;\n version?: number;\n type: ProcessType | string;\n description?: string;\n configuration?: ProcessConfiguration;\n steps: Step[];\n defaultInput?: Record<string, any>;\n defaultOutput?: Record<string, any>;\n outputMapping?: Record<string, any>;\n tags?: TagValue[];\n}\nexport interface ProcessDefinitionsDetail {\n name: string;\n namespace: string;\n}\n\nexport interface ProcessDefinitionDetails {\n name: string;\n namespace: string;\n version?: number;\n}\n\nexport interface ExecutionWait {\n result: { waitUntil: number };\n logs: [];\n}\n\nexport interface ExecutionTimelineType {\n id: number;\n executor: string;\n output: ExecutionWait | null;\n polled: number;\n scheduled: number;\n start: number;\n updated: number;\n ref?: string | null;\n}\n\nexport interface ExecutionDetails extends ExecutionTimelineType {\n stepRef: string;\n}\n\nexport interface AuditInfo {\n createdBy: string;\n updatedBy: string;\n created: number;\n updated: number;\n}\n\nexport interface Step extends NewStepData, AuditInfo, Object {\n executionList?: ExecutionDetails[];\n parentRef?: string;\n status?: string;\n completed?: number;\n children: Step[];\n executionCount?: number;\n triggerType?: string;\n}\nexport interface StepConfiguration {\n errorPolicyName?: string;\n useCache?: boolean;\n stream?: boolean;\n cacheKey?: string;\n cacheTimeoutSeconds?: number;\n jqTransformer?: string;\n rateLimitWindowSeconds?: number | null;\n rateLimitMaxRequests?: number | null;\n preExecutionScript?: string;\n scriptLanguage?: 'JAVASCRIPT' | 'PYTHON';\n constructInputFromScript?: boolean;\n additionalRefs?: string[];\n streamAllStatuses?: boolean;\n}\n\nexport interface NewStepData {\n type: StepType;\n name: string;\n namespace: string;\n ref: string;\n optional?: boolean;\n configuration?: StepConfiguration;\n children?: Step[];\n input?: Record<string, any>;\n output?: Record<string, any>;\n}\n\nexport type StepSize = {\n stepQueueNameData: StepQueueNameData;\n size: number | null;\n};\n\nexport type ClientSubmitResult = {\n processId: number;\n stepId: number;\n errorMessage: string | null;\n httpStatusCode: number | null;\n};\n\nexport type WorkRequest = {\n processId: number;\n stepId: number;\n stepExecutionId: number;\n runCount: number;\n stepName: string;\n stepNamespace: string;\n stepRef: string;\n inputParam: Record<string, unknown>;\n isOptional: boolean;\n polled: number;\n scheduled: number;\n updated: number;\n priority: number;\n};\n\nexport type WorkResponse = {\n processId: number;\n stepId: number;\n stepExecutionId: number;\n runCount: number;\n output: Record<string, unknown>;\n status: StepStatus;\n rescheduleAfterSeconds: number | null;\n startedAt: number;\n};\n\nexport type WorkResult = {\n output: unknown;\n taskExecutionId: string;\n startTime: number;\n endTime: number;\n workRequest: WorkRequest;\n};\n\nexport interface FinalUnmeshedClientConfig {\n baseUrl: string;\n clientId: string;\n authToken: string;\n port: string | number;\n timeout: number;\n apiWorkerTimeout: number;\n pollTimeout: number;\n pollInterval: number;\n responsePollInterval: number;\n responsePollTimeout: number;\n responseBatchSize: number;\n}\n\nexport interface UnmeshedClientConfig {\n baseUrl: string;\n clientId: string;\n authToken: string;\n port: string | number;\n timeout?: number;\n apiWorkerTimeout?: number;\n pollTimeout?: number;\n pollInterval?: number;\n responsePollInterval?: number;\n responsePollTimeout?: number;\n responseBatchSize?: number;\n}\n\nexport interface ApiResponse<T = any> {\n data: T;\n status: number;\n headers: Record<string, string>;\n}\n\nexport interface ApiError extends Error {\n status?: number;\n response?: {\n data?: any;\n status: number;\n headers: Record<string, string>;\n };\n}\n\nexport interface QueryParams {\n [key: string]: string | number | boolean | undefined;\n}\n\nexport interface RequestConfig extends Omit<AxiosRequestConfig, 'baseURL' | 'url' | 'method'> {\n headers?: Record<string, string>;\n}\n\nexport interface HandleRequestConfig {\n method: 'get' | 'post' | 'put' | 'delete';\n endpoint: string;\n params?: QueryParams;\n data?: Record<string, unknown>;\n config?: RequestConfig;\n}\n\nexport interface ClientRequestConfig {\n params?: QueryParams;\n data?: any;\n config?: RequestConfig;\n}\n\ninterface UnmeshedWorker {\n (input: Record<string, any>): Promise<any>;\n}\n\nexport interface UnmeshedWorkerConfig {\n worker: UnmeshedWorker;\n namespace: string;\n name: string;\n maxInProgress: number;\n}\n\nexport interface PollRequestData {\n stepQueueNameData: StepQueueNameData;\n size: number;\n}\nexport interface RenewRegistrationParams {\n friendlyName: string;\n}\n","export type WorkerFunction<T> = (items: T[]) => Promise<void>;\n\nexport class QueuedWorker<T> {\n private readonly queue: BlockingQueue<T>;\n private readonly pollIntervalMs: number;\n private readonly batchSize: number;\n private readonly workerFn: WorkerFunction<T>;\n private readonly timeoutMs: number;\n\n constructor(\n capacity: number,\n pollIntervalMs: number,\n batchSize: number,\n workerFn: WorkerFunction<T>,\n timeoutMs: number\n ) {\n this.queue = new BlockingQueue<T>(capacity);\n this.pollIntervalMs = pollIntervalMs;\n this.batchSize = batchSize;\n this.workerFn = workerFn;\n this.timeoutMs = timeoutMs;\n\n console.log(\n `Configured queued worker with ${pollIntervalMs} ms interval and batch size of ${batchSize} and a timeout of ${timeoutMs} ms`\n );\n // noinspection JSIgnoredPromiseFromCall\n this.start();\n }\n\n async start(): Promise<void> {\n let errorCount = 0;\n // noinspection InfiniteLoopJS\n while (true) {\n try {\n const batch = await this.queue.takeBatch(this.batchSize);\n if (batch.length > 0) {\n console.log(`Batch work ${batch.length} received`);\n await this.runWithTimeout(this.workerFn(batch), this.timeoutMs);\n }\n } catch (error) {\n errorCount++;\n console.error(`Error processing batch - error count : ${errorCount} - `, error);\n await new Promise((resolve) => setTimeout(resolve, 1000));\n }\n await new Promise((resolve) => setTimeout(resolve, this.pollIntervalMs));\n }\n }\n\n private async runWithTimeout(task: Promise<void>, timeoutMs: number): Promise<void> {\n return new Promise((resolve, reject) => {\n const timeout = setTimeout(() => reject(new Error('Task timed out')), timeoutMs);\n task\n .then(() => {\n clearTimeout(timeout);\n resolve();\n })\n .catch((error) => {\n clearTimeout(timeout);\n reject(error);\n });\n });\n }\n\n async put(item: T): Promise<void> {\n await this.queue.put(item);\n }\n}\n\nclass BlockingQueue<T> {\n private queue: T[] = [];\n private readonly capacity: number;\n\n constructor(capacity: number) {\n if (capacity <= 0) {\n throw new Error('Capacity must be greater than 0');\n }\n this.capacity = capacity;\n }\n\n async put(item: T): Promise<void> {\n while (this.queue.length >= this.capacity) {\n await new Promise((resolve) => setTimeout(resolve, 10));\n }\n this.queue.push(item);\n }\n\n async takeBatch(batchSize: number): Promise<T[]> {\n while (this.queue.length === 0) {\n await new Promise((resolve) => setTimeout(resolve, 10));\n }\n return this.queue.splice(0, batchSize);\n }\n\n size(): number {\n return this.queue.length;\n }\n\n isEmpty(): boolean {\n return this.queue.length === 0;\n }\n\n peek(): T | undefined {\n return this.queue[0];\n }\n}\n","import {\n ApiResponse,\n PollRequestData,\n StepQueueNameData,\n StepStatus,\n UnmeshedWorkerConfig,\n WorkRequest,\n WorkResponse,\n} from '../types';\nimport { UnmeshedApiClient } from './unmeshedApiClient';\nimport { QueuedWorker } from './queuedWorker';\nimport os from 'os';\n\nasync function registerPolling(apiClient: UnmeshedApiClient, data: StepQueueNameData[]) {\n const attempt = async (): Promise<any> => {\n try {\n const response = await apiClient.put(`/api/clients/register`, {\n data: data,\n });\n console.log('Successfully renewed registration for workers', data);\n return response.data;\n } catch {\n console.error('An error occurred during polling registration. Retrying in 3 seconds...');\n await new Promise((resolve) => setTimeout(resolve, 3000));\n return attempt();\n }\n };\n\n return attempt();\n}\n\nasync function pollWorker(apiClient: UnmeshedApiClient, data: PollRequestData[]): Promise<WorkRequest[]> {\n try {\n const response: ApiResponse<WorkRequest[]> = await apiClient.post(`/api/clients/poll`, {\n data: data,\n config: { headers: { UNMESHED_HOST_NAME: getHostName() } },\n });\n if (response.data && response.data.length > 0) {\n console.log(`Received ${response.data.length} work requests`);\n }\n return response.data;\n } catch (error) {\n console.error('Error occurred during worker polling', error);\n return [];\n }\n}\n\nasync function postWorkerResponse(apiClient: UnmeshedApiClient, workResponses: WorkResponse[]) {\n try {\n if (workResponses.length > 0) {\n const grouped: Record<StepStatus, number[]> = workResponses.reduce(\n (acc, response) => {\n if (!acc[response.status]) {\n acc[response.status] = [];\n }\n acc[response.status].push(response.stepId);\n return acc;\n },\n {} as Record<StepStatus, number[]>\n );\n const resultString = Object.entries(grouped)\n .map(([status, stepIds]) => `${status}: [${stepIds.join(', ')}]`)\n .join(', ');\n console.log(`Posting response of size: ${workResponses.length} including ids: ${resultString}`);\n const response = await apiClient.post(`/api/clients/bulkResults`, {\n data: workResponses,\n });\n return response.data;\n }\n return {};\n } catch (error) {\n console.log('Error:', error);\n }\n}\n\nasync function runPollWithTimeout(task: Promise<WorkRequest[]>, timeoutMs: number): Promise<WorkRequest[]> {\n return new Promise((resolve, reject) => {\n const timeout = setTimeout(() => reject(new Error('Task timed out')), timeoutMs);\n task\n .then((workRequests) => {\n clearTimeout(timeout);\n resolve(workRequests);\n })\n .catch((error) => {\n clearTimeout(timeout);\n reject(error);\n });\n });\n}\n\nexport const continuePolling: { value: boolean } = {\n value: true,\n};\n\nexport async function pollForWorkers(apiClient: UnmeshedApiClient, workers: UnmeshedWorkerConfig[]) {\n const queuedWorker: QueuedWorker<WorkResponse> = new QueuedWorker<WorkResponse>(\n 100000,\n apiClient.config.responsePollInterval,\n apiClient.config.responseBatchSize,\n async (batchWork: WorkResponse[]) => {\n await postWorkerResponse(apiClient, batchWork);\n },\n apiClient.config.responsePollTimeout\n );\n\n const registerPollingData = workers.map((worker) => {\n return {\n orgId: 0,\n namespace: worker.namespace,\n stepType: 'WORKER',\n name: worker.name,\n } as StepQueueNameData;\n });\n\n await registerPolling(apiClient, registerPollingData);\n\n const pollWorkerData = workers.map((worker) => {\n return {\n stepQueueNameData: {\n orgId: 0,\n namespace: worker.namespace,\n stepType: 'WORKER',\n name: worker.name,\n },\n size: worker.maxInProgress,\n } as PollRequestData;\n });\n\n let errorCount = 0;\n // noinspection InfiniteLoopJS\n while (continuePolling.value) {\n try {\n const workRequests: WorkRequest[] = await runPollWithTimeout(\n pollWorker(apiClient, pollWorkerData),\n apiClient.config.pollTimeout\n );\n for (const polledWorker of workRequests) {\n const associatedWorker: UnmeshedWorkerConfig | undefined = workers.find(\n (worker) => worker.name === polledWorker.stepName && worker.namespace === polledWorker.stepNamespace\n );\n\n let workerResponse: WorkResponse = {\n processId: polledWorker.processId,\n stepId: polledWorker.stepId,\n stepExecutionId: polledWorker.stepExecutionId,\n runCount: polledWorker.runCount,\n output: {},\n status: StepStatus.RUNNING,\n rescheduleAfterSeconds: null,\n startedAt: new Date().getTime(),\n };\n\n if (!associatedWorker) {\n workerResponse = {\n ...workerResponse,\n output: {\n error: `No worker found for ${polledWorker.stepName} ${polledWorker.stepNamespace}`,\n },\n status: StepStatus.TIMED_OUT,\n };\n await queuedWorker.put(workerResponse);\n continue;\n }\n\n const TIMEOUT = apiClient.config.apiWorkerTimeout;\n\n const timeoutPromise = new Promise((_, reject) => {\n setTimeout(() => reject(new Error('Timed out')), TIMEOUT);\n });\n\n try {\n console.log(\n `Starting work ${polledWorker.processId} : ${polledWorker.stepId} : ${polledWorker.stepName} : ${polledWorker.stepRef}`\n );\n const result = await Promise.race([associatedWorker.worker(polledWorker.inputParam), timeoutPromise]);\n\n workerResponse = {\n ...workerResponse,\n output: {\n ...result,\n __workCompletedAt: new Date().getTime(),\n },\n status: StepStatus.COMPLETED,\n };\n } catch (error: unknown) {\n const err = error as Error;\n if (err.message && err.message === 'Timed out') {\n workerResponse = {\n ...workerResponse,\n output: {\n error: `${err.message} based on work timeout settings in worker - ${apiClient.config.apiWorkerTimeout} ms`,\n },\n status: StepStatus.TIMED_OUT,\n };\n } else {\n workerResponse = {\n ...workerResponse,\n output: {\n error: safeStringifyError(err),\n },\n status: StepStatus.FAILED,\n };\n console.error('Error:', err.message);\n }\n }\n await queuedWorker.put(workerResponse);\n }\n await new Promise((resolve) => setTimeout(resolve, apiClient.config.pollInterval));\n } catch (error) {\n errorCount++;\n console.error(`Error processing batch - error count : ${errorCount} - `, error);\n await new Promise((resolve) => setTimeout(resolve, 1000));\n }\n }\n}\n\nfunction safeStringifyError(error: Error) {\n try {\n if (error instanceof Error) {\n const plainError = {\n ...error,\n name: error.name,\n message: error.message,\n stack: error.stack,\n };\n return JSON.stringify(plainError);\n }\n return JSON.stringify(error);\n } catch (stringifyError: unknown) {\n if (stringifyError instanceof Error) {\n return `Error stringification failed: ${stringifyError.message}`;\n }\n return 'Error stringification failed: An unknown error occurred during stringification.';\n }\n}\n\nexport async function startPollingWorkers(\n apiClient: UnmeshedApiClient,\n workers: UnmeshedWorkerConfig[],\n intervalMs: number = 5000\n) {\n async function pollCycle() {\n try {\n await pollForWorkers(apiClient, workers);\n } catch (error) {\n console.error('Error during worker polling:', error);\n }\n\n setTimeout(pollCycle, intervalMs);\n }\n\n await pollCycle();\n}\n\nexport function getHostName(): string {\n const unmeshedHostName = process.env.UNMESHED_HOST_NAME;\n if (unmeshedHostName && unmeshedHostName.trim() !== '') {\n return unmeshedHostName.trim();\n }\n\n const hostNameEnv = process.env.HOSTNAME;\n if (hostNameEnv && hostNameEnv.trim() !== '') {\n return hostNameEnv.trim();\n }\n\n const computerNameEnv = process.env.COMPUTERNAME;\n if (computerNameEnv && computerNameEnv.trim() !== '') {\n return computerNameEnv.trim();\n }\n\n try {\n const host = os.hostname();\n if (host && host.trim() !== '') {\n return host.trim();\n }\n } catch {\n // ignore\n }\n\n return '-';\n}\n","import {\n ApiCallType,\n ProcessActionResponseData,\n ProcessData,\n ProcessDefinitionData,\n ProcessDefinitionDeleteRequest,\n ProcessDefinitionDetails,\n ProcessDefinitionsDetail,\n ProcessRequestData,\n ProcessSearchRequest,\n StepData,\n} from '../types';\nimport { isAxiosError } from 'axios';\nimport { UnmeshedApiClient } from './unmeshedApiClient';\n\nconst PROCESS_PREFIX = 'api/process';\n\nexport const runProcessSync = async (\n apiClient: UnmeshedApiClient,\n ProcessRequestData: ProcessRequestData\n): Promise<ProcessData> => {\n try {\n const response = await apiClient.post(`${PROCESS_PREFIX}/runSync`, {\n data: ProcessRequestData,\n params: {\n clientId: apiClient.getClientId(),\n },\n });\n console.log('Response:', response);\n return response.data;\n } catch (error) {\n console.error('Some error occurred running process request : ', error);\n throw error;\n }\n};\n\nexport const runProcessAsync = async (\n apiClient: UnmeshedApiClient,\n ProcessRequestData: ProcessRequestData\n): Promise<ProcessData> => {\n try {\n const response = await apiClient.post(`${PROCESS_PREFIX}/runAsync`, {\n data: ProcessRequestData,\n params: {\n clientId: apiClient.getClientId(),\n },\n });\n console.log('Response:', response);\n return response.data;\n } catch (error) {\n console.error('Some error occurred running process request : ', error);\n throw error;\n }\n};\n\nexport const getProcessData = async (\n apiClient: UnmeshedApiClient,\n processId: number,\n includeSteps: boolean = false\n): Promise<ProcessData> => {\n if (!processId) {\n throw new Error('Process ID cannot be null');\n }\n try {\n const response = await apiClient.get<ProcessData>(`${PROCESS_PREFIX}/context/${processId}`, { includeSteps });\n return response.data;\n } catch (error) {\n console.error('Error occurred while fetching process record: ', error);\n throw error;\n }\n};\n\nexport const getStepData = async (apiClient: UnmeshedApiClient, stepId: number): Promise<StepData> => {\n if (!stepId) {\n throw new Error('Step ID cannot be null or undefined');\n }\n try {\n const response = await apiClient.get<StepData>(`${PROCESS_PREFIX}/stepContext/${stepId}`);\n return response.data;\n } catch (error) {\n console.log('Error occurred while getStepData: ', error);\n throw error;\n }\n};\n\nexport const bulkTerminate = async (\n apiClient: UnmeshedApiClient,\n processIds: number[],\n reason?: string\n): Promise<ProcessActionResponseData> => {\n try {\n const response = await apiClient.post(`${PROCESS_PREFIX}/bulkTerminate`, {\n params: { reason },\n data: processIds,\n });\n return response.data as ProcessActionResponseData;\n } catch (error) {\n const err = error as Error;\n throw new Error(`Error occurred while terminating processes: ${err.message || error}`);\n }\n};\n\nexport const bulkResume = async (\n apiClient: UnmeshedApiClient,\n processIds: number[]\n): Promise<ProcessActionResponseData> => {\n try {\n const response = await apiClient.post(`${PROCESS_PREFIX}/bulkResume`, {\n data: processIds,\n });\n return response.data as ProcessActionResponseData;\n } catch (error) {\n const err = error as Error;\n throw new Error(`Error occurred while resuming processes: ${err.message || error}`);\n }\n};\n\nexport const bulkReviewed = async (\n apiClient: UnmeshedApiClient,\n processIds: number[],\n reason?: string\n): Promise<ProcessActionResponseData> => {\n try {\n const response = await apiClient.post(`${PROCESS_PREFIX}/bulkReviewed`, {\n data: processIds,\n params: { reason },\n });\n return response.data as ProcessActionResponseData;\n } catch (error) {\n const err = error as Error;\n throw new Error(`Error occurred while marking processes as reviewed: ${err.message || error}`);\n }\n};\n\nexport const rerun = async (\n apiClient: UnmeshedApiClient,\n processId: number,\n version?: number\n): Promise<ProcessData> => {\n const params: Record<string, any> = {\n processId,\n };\n\n if (version !== undefined) {\n params['version'] = version;\n }\n\n try {\n const response = await apiClient.post(`${PROCESS_PREFIX}/rerun`, {\n params,\n });\n\n return response.data as ProcessData;\n } catch (error) {\n if (isAxiosError(error)) {\n throw new Error(`HTTP request error during rerun process: ${error.response?.status} - ${error.response?.data}`);\n } else {\n const err = error as Error;\n throw new Error(`Unexpected error during rerun process: ${err.message || err}`);\n }\n }\n};\n\nexport const searchProcessExecutions = async (apiClient: UnmeshedApiClient, params: ProcessSearchRequest) => {\n const body: Record<string, any> = {};\n\n if (params.startTimeEpoch) body.startTimeEpoch = params.startTimeEpoch;\n if (params.endTimeEpoch) body.endTimeEpoch = params.endTimeEpoch;\n\n if (params.namespace) body.namespace = params.namespace;\n if (params.names?.length) body.names = params.names;\n if (params.processIds?.length) body.processIds = params.processIds;\n if (params.correlationIds?.length) body.correlationIds = params.correlationIds;\n if (params.requestIds?.length) body.requestIds = params.requestIds;\n if (params.statuses?.length) body.statuses = params.statuses;\n if (params.triggerTypes?.length) body.triggerTypes = params.triggerTypes;\n\n if (params.tags?.length) body.tags = params.tags;\n\n try {\n const response = await apiClient.post(`api/stats/process/search`, {\n data: body,\n params: {},\n });\n\n return response.data;\n } catch (error) {\n console.error('Error occurred while searching process executions:', error);\n throw error;\n }\n};\n\nexport const invokeApiMappingGet = async (\n apiClient: UnmeshedApiClient,\n endpoint: string,\n id: string,\n correlationId: string,\n apiCallType: ApiCallType\n) => {\n try {\n const response = await apiClient.get(`${PROCESS_PREFIX}/api/call/${endpoint}`, {\n id: id,\n correlationId: correlationId,\n apiCallType,\n });\n console.log('Response:', response);\n return response.data;\n } catch (error) {\n console.error('Error occurred while invoking API Mapping GET: ', error);\n throw error;\n }\n};\n\nexport const invokeApiMappingPost = async (\n apiClient: UnmeshedApiClient,\n endpoint: string,\n input: Record<string, any>,\n id: string,\n correlationId: string,\n apiCallType: ApiCallType = ApiCallType.ASYNC\n): Promise<any> => {\n try {\n const response = await apiClient.post(`${PROCESS_PREFIX}/api/call/${endpoint}`, {\n data: input,\n params: {\n id: id,\n correlationId: correlationId,\n apiCallType,\n },\n });\n\n return response.data;\n } catch (error) {\n console.error('Error occurred while invoking API Mapping POST: ', error);\n throw error;\n }\n};\n\nexport const createProcessDefinition = async (apiClient: UnmeshedApiClient, requestData: ProcessDefinitionData) => {\n try {\n const response = await apiClient.post(`/api/processDefinitions`, {\n data: requestData,\n params: {},\n });\n\n return response.data;\n } catch (error) {\n console.error('Error occurred while creating process definition:', error);\n throw error;\n }\n};\n\nexport const deleteProcessDefinition = async (\n apiClient: UnmeshedApiClient,\n requestData: ProcessDefinitionDeleteRequest\n) => {\n try {\n const response = await apiClient.delete(`/api/processDefinitions`, {\n data: [requestData],\n params: {},\n });\n\n return response.data;\n } catch (error) {\n console.error('Error occurred while deleting process definition:', error);\n throw error;\n }\n};\n\nexport const updateProcessDefinition = async (apiClient: UnmeshedApiClient, requestData: ProcessDefinitionData) => {\n try {\n const response = await apiClient.put(`/api/processDefinitions`, {\n data: requestData,\n params: {},\n });\n\n return response.data;\n } catch (error) {\n console.error('Error occurred while creating process definition:', error);\n throw error;\n }\n};\n\nexport const getProcessDefinitions = async (apiClient: UnmeshedApiClient, namespace?: string) => {\n try {\n const params = namespace ? { namespace } : {};\n const response = await apiClient.get('/api/processDefinitions', params);\n return response.data;\n } catch (error) {\n console.error('Error occurred while fetching process definitions:', error);\n throw error;\n }\n};\n\nexport const getProcessDefinitionVersions = async (apiClient: UnmeshedApiClient, body: ProcessDefinitionsDetail) => {\n try {\n const response = await apiClient.get(`/api/processDefinitions/${body.namespace}/${body.name}/versions`);\n return response.data;\n } catch (error) {\n console.error('Error occurred while fetching process definition: ', error);\n throw error;\n }\n};\n\nexport const getProcessDefinitionByVersion = async (apiClient: UnmeshedApiClient, body: ProcessDefinitionDetails) => {\n if (!body.namespace || !body.name || !body.version) {\n throw new Error('namespace, name, and version are required');\n }\n\n try {\n const params = body.version ? { version: body.version } : {};\n\n const response = await apiClient.get(`/api/processDefinitions/${body.namespace}/${body.name}`, params);\n\n return response.data;\n } catch (error) {\n console.error('Error occurred while fetching process definition:', error);\n throw error;\n }\n};\n","import { RenewRegistrationParams } from '../types';\nimport { UnmeshedApiClient } from './unmeshedApiClient';\n\nexport const renewRegistration = async (\n apiClient: UnmeshedApiClient,\n params: RenewRegistrationParams\n): Promise<string> => {\n try {\n const response = await apiClient.put('/api/clients/register', {\n params: { ...params },\n });\n console.debug('Response from server:', response);\n return response.data;\n } catch (error) {\n console.error('Error occurred during registration renewal:', error);\n throw error;\n }\n};\n"],"mappings":"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","names":["axios","ApiCallType","WebhookSource","SQAuthUserType","StepType","StepStatus","ProcessStatus","ProcessTriggerType","ProcessType","response","os","import_axios","ProcessRequestData","ProcessRequestData"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/apis/unmeshedApiClient.ts","../src/utils/unmeshedCommonUtils.ts","../src/types/index.ts","../src/apis/queuedWorker.ts","../src/apis/pollerClientImpl.ts","../src/utils/retryDelay.ts","../src/apis/processClientImpl.ts","../src/apis/registrationClientImpl.ts"],"sourcesContent":["import {\n ApiCallType,\n ProcessDefinitionData,\n ProcessDefinitionDeleteRequest,\n ProcessDefinitionDetails,\n ProcessDefinitionsDetail,\n ProcessRequestData,\n ProcessSearchRequest,\n RenewRegistrationParams,\n UnmeshedClientConfig,\n UnmeshedWorkerConfig,\n} from './types';\nimport { UnmeshedApiClient } from './apis/unmeshedApiClient';\nimport { startPollingWorkers } from './apis/pollerClientImpl';\nimport {\n bulkResume,\n bulkReviewed,\n bulkTerminate,\n getProcessData,\n getStepData,\n invokeApiMappingGet,\n invokeApiMappingPost,\n rerun,\n runProcessAsync,\n runProcessSync,\n searchProcessExecutions,\n createProcessDefinition,\n updateProcessDefinition,\n deleteProcessDefinition,\n getProcessDefinitions,\n getProcessDefinitionVersions,\n getProcessDefinitionByVersion,\n} from './apis/processClientImpl';\nimport { renewRegistration } from './apis/registrationClientImpl';\n\n// noinspection JSUnusedGlobalSymbols\nexport class UnmeshedClient {\n private client: UnmeshedApiClient;\n\n constructor(config: UnmeshedClientConfig) {\n this.client = new UnmeshedApiClient(config);\n }\n\n startPolling(workers: UnmeshedWorkerConfig[]) {\n startPollingWorkers(this.client, workers);\n }\n\n runProcessSync(ProcessRequestData: ProcessRequestData) {\n return runProcessSync(this.client, ProcessRequestData);\n }\n\n runProcessAsync(ProcessRequestData: ProcessRequestData) {\n return runProcessAsync(this.client, ProcessRequestData);\n }\n\n getProcessData(processId: number, includeSteps: boolean) {\n return getProcessData(this.client, processId, includeSteps);\n }\n\n getStepData(stepId: number) {\n return getStepData(this.client, stepId);\n }\n\n bulkTerminate(processIds: number[], reason?: string) {\n return bulkTerminate(this.client, processIds, reason);\n }\n\n bulkResume(processIds: number[]) {\n return bulkResume(this.client, processIds);\n }\n\n bulkReviewed(processIds: number[], reason?: string) {\n return bulkReviewed(this.client, processIds, reason);\n }\n\n reRun(processId: number, version?: number) {\n return rerun(this.client, processId, version);\n }\n\n searchProcessExecution(params: ProcessSearchRequest) {\n return searchProcessExecutions(this.client, params);\n }\n\n invokeApiMappingGet(\n apiClient: UnmeshedApiClient,\n endpoint: string,\n id: string,\n correlationId: string,\n apiCallType: ApiCallType\n ) {\n return invokeApiMappingGet(apiClient, endpoint, id, correlationId, apiCallType);\n }\n\n invokeApiMappingPost(\n endpoint: string,\n input: Record<string, any>,\n id: string,\n correlationId: string,\n apiCallType: ApiCallType\n ) {\n return invokeApiMappingPost(this.client, endpoint, input, id, correlationId, apiCallType);\n }\n\n reNewRegistration(params: RenewRegistrationParams) {\n return renewRegistration(this.client, params);\n }\n\n createProcessDefinition(body: ProcessDefinitionData) {\n return createProcessDefinition(this.client, body);\n }\n updateProcessDefinition(body: ProcessDefinitionData) {\n return updateProcessDefinition(this.client, body);\n }\n deleteProcessDefinition(body: ProcessDefinitionDeleteRequest) {\n return deleteProcessDefinition(this.client, body);\n }\n getProcessDefinitions(namespace?: string) {\n return getProcessDefinitions(this.client, namespace);\n }\n getProcessDefinitionVersions(body: ProcessDefinitionsDetail) {\n return getProcessDefinitionVersions(this.client, body);\n }\n getProcessDefinitionByVersion(body: ProcessDefinitionDetails) {\n return getProcessDefinitionByVersion(this.client, body);\n }\n}\n\nexport * from './types';\n","import axios, { AxiosError, AxiosInstance, AxiosRequestConfig, AxiosResponse, RawAxiosRequestHeaders } from 'axios';\nimport {\n ApiResponse,\n ClientRequestConfig,\n FinalUnmeshedClientConfig,\n HandleRequestConfig,\n QueryParams,\n RequestConfig,\n UnmeshedClientConfig,\n} from '../types';\nimport { UnmeshedCommonUtils } from '../utils/unmeshedCommonUtils';\n\nexport class UnmeshedApiClient {\n private axiosInstance: AxiosInstance | null = null;\n private clientId: string | undefined = undefined;\n private _config: FinalUnmeshedClientConfig;\n\n constructor(unmeshedClientConfig: UnmeshedClientConfig) {\n console.log('Initializing Unmeshed ApiClient');\n\n this._config = createUnmeshedClientConfig(unmeshedClientConfig);\n\n console.log(this._config);\n\n this.clientId = this._config.clientId;\n\n if (!this._config.baseUrl) {\n throw new Error('baseUrl is required');\n }\n\n const baseURL = this._config.port ? `${this._config.baseUrl}:${this._config.port}` : this._config.baseUrl;\n\n this.axiosInstance = axios.create({\n baseURL,\n timeout: this._config.timeout,\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer client.sdk.${this._config.clientId}.${UnmeshedCommonUtils.createSecureHash(\n this._config.authToken\n )}`,\n } as RawAxiosRequestHeaders,\n });\n }\n\n private async handleRequest<T>({\n method,\n endpoint,\n params,\n data,\n config,\n }: HandleRequestConfig): Promise<ApiResponse<T>> {\n if (!this.axiosInstance) {\n throw new Error('ApiClient must be initialized before making requests');\n }\n\n try {\n const response: AxiosResponse<T> = await this.axiosInstance.request<T>({\n method,\n url: endpoint,\n params,\n data,\n ...config,\n } as AxiosRequestConfig);\n\n return {\n data: response.data,\n status: response.status,\n headers: response.headers as Record<string, string>,\n };\n } catch (error) {\n if (axios.isAxiosError(error)) {\n console.error('Request failed:', error.message);\n throw this.handleError(error);\n }\n console.error('Unexpected error:', (error as Error).message);\n throw error;\n }\n }\n\n private handleError(error: AxiosError): Error {\n console.error('Error details:', {\n message: error.message,\n status: error.response?.status,\n data: error.response?.data,\n });\n\n let response = error?.response?.data as ErrorResponse;\n if (response?.errorMessage) {\n return new Error(`${response.errorMessage} [Status code: ${error.response?.status || ''}]`);\n }\n\n return new Error(error.message, { cause: error.response?.data || {} });\n }\n\n public async get<T = any>(endpoint: string, params?: QueryParams, config?: RequestConfig): Promise<ApiResponse<T>> {\n return this.handleRequest<T>({\n method: 'get',\n endpoint: endpoint,\n params: params,\n config: config,\n });\n }\n\n public async post<T = any>(endpoint: string, clientRequestConfig: ClientRequestConfig): Promise<ApiResponse<T>> {\n return this.handleRequest<T>({\n method: 'post',\n endpoint: endpoint,\n ...clientRequestConfig,\n });\n }\n\n public async put<T = any>(endpoint: string, clientRequestConfig: ClientRequestConfig): Promise<ApiResponse<T>> {\n return this.handleRequest<T>({\n method: 'put',\n endpoint: endpoint,\n ...clientRequestConfig,\n });\n }\n\n public async delete<T = any>(endpoint: string, clientRequestConfig: ClientRequestConfig): Promise<ApiResponse<T>> {\n return this.handleRequest<T>({\n method: 'delete',\n endpoint: endpoint,\n ...clientRequestConfig,\n });\n }\n\n public getClientId(): string | undefined {\n return this.clientId;\n }\n\n get config(): FinalUnmeshedClientConfig {\n return this._config;\n }\n}\n\ninterface ErrorResponse {\n errorMessage?: string;\n [key: string]: any; // To allow other unexpected properties\n}\n\nexport function createUnmeshedClientConfig(config: UnmeshedClientConfig): Required<FinalUnmeshedClientConfig> {\n return {\n baseUrl: config.baseUrl,\n clientId: config.clientId,\n authToken: config.authToken,\n port: config.port ?? 443,\n timeout: config.timeout ?? 5000,\n pollInterval: config.pollInterval ?? 100,\n apiWorkerTimeout: config.apiWorkerTimeout ?? 10000,\n pollTimeout: config.pollTimeout ?? 10000,\n responsePollInterval: config.responsePollInterval ?? 100,\n responsePollTimeout: config.responsePollTimeout ?? 10000,\n responseBatchSize: config.responseBatchSize ?? 50,\n };\n}\n","import { createHash } from 'crypto';\n\nexport class UnmeshedCommonUtils {\n static createSecureHash(input: string): string {\n try {\n const hash = createHash('sha256');\n hash.update(input, 'utf8');\n return hash.digest('hex');\n } catch (e) {\n throw new Error('Error creating hash');\n }\n }\n}\n","import { AxiosRequestConfig } from 'axios';\n\nexport enum ApiCallType {\n SYNC = 'SYNC',\n ASYNC = 'ASYNC',\n STREAM = 'STREAM',\n}\n\nexport interface ApiMappingData {\n endpoint: string;\n processDefNamespace: string;\n processDefName: string;\n processDefVersion: number;\n authType: string;\n authClaims: string;\n createdBy: string;\n updatedBy: string;\n created: Date;\n updated: Date;\n}\n\nexport type ApiMappingWebhookData = {\n endpoint: string;\n name: string;\n uniqueId: string;\n urlSecret: string;\n description: string;\n userIdentifier: string;\n webhookSource: WebhookSource;\n webhookSourceConfig: Record<string, string>;\n expiryDate: Date;\n userType: SQAuthUserType;\n createdBy: string;\n updatedBy: string;\n created: Date;\n updated: Date;\n};\n\nexport enum WebhookSource {\n MS_TEAMS = 'MS_TEAMS',\n NOT_DEFINED = 'NOT_DEFINED',\n}\n\nexport enum SQAuthUserType {\n USER = 'USER',\n API = 'API',\n INTERNAL = 'INTERNAL',\n}\n\nexport enum StepType {\n LIST = 'LIST',\n HTTP = 'HTTP',\n WORKER = 'WORKER',\n SWITCH = 'SWITCH',\n PARALLEL = 'PARALLEL',\n FAIL = 'FAIL',\n PYTHON = 'PYTHON',\n JAVASCRIPT = 'JAVASCRIPT',\n JQ = 'JQ',\n SLACK = 'SLACK',\n GRAPHQL = 'GRAPHQL',\n WAIT = 'WAIT',\n BUILTIN = 'BUILTIN',\n NOOP = 'NOOP',\n AI_AGENT = 'AI_AGENT',\n EXIT = 'EXIT',\n DEPENDSON = 'DEPENDSON',\n PERSISTED_STATE = 'PERSISTED_STATE',\n UPDATE_STEP = 'UPDATE_STEP',\n INTEGRATION = 'INTEGRATION',\n FOREACH = 'FOREACH',\n WHILE = 'WHILE',\n SUB_PROCESS = 'SUB_PROCESS',\n FLOW_GATEWAY = 'FLOW_GATEWAY',\n DECISION_ENGINE = 'DECISION_ENGINE',\n SQLITE = 'SQLITE',\n MANAGED = 'MANAGED',\n}\n\nexport enum StepStatus {\n PENDING = 'PENDING',\n SCHEDULED = 'SCHEDULED',\n RUNNING = 'RUNNING',\n PAUSED = 'PAUSED',\n COMPLETED = 'COMPLETED',\n FAILED = 'FAILED',\n TIMED_OUT = 'TIMED_OUT',\n SKIPPED = 'SKIPPED',\n CANCELLED = 'CANCELLED',\n}\n\nexport enum ProcessStatus {\n RUNNING = 'RUNNING',\n COMPLETED = 'COMPLETED',\n FAILED = 'FAILED',\n TIMED_OUT = 'TIMED_OUT',\n CANCELLED = 'CANCELLED',\n TERMINATED = 'TERMINATED',\n REVIEWED = 'REVIEWED',\n}\n\nexport enum ProcessTriggerType {\n MANUAL = 'MANUAL',\n SCHEDULED = 'SCHEDULED',\n API_MAPPING = 'API_MAPPING',\n WEBHOOK = 'WEBHOOK',\n API = 'API',\n SUB_PROCESS = 'SUB_PROCESS',\n}\n\nexport enum ProcessType {\n STANDARD = 'STANDARD',\n DYNAMIC = 'DYNAMIC',\n API_ORCHESTRATION = 'API_ORCHESTRATION',\n INTERNAL = 'INTERNAL',\n}\n\nexport type ClientProfileData = {\n clientId: string;\n ipAddress: string;\n friendlyName: string;\n userIdentifier: string;\n stepQueueNames: StepQueueNameData[];\n createdBy: string;\n updatedBy: string;\n created: Date;\n updated: Date;\n expiryDate: Date;\n};\n\nexport type FullClientProfileData = {\n clientId: string;\n ipAddress: string;\n friendlyName: string;\n userIdentifier: string;\n stepQueueNames: StepQueueNameData[];\n createdBy: string;\n updatedBy: string;\n created: Date;\n updated: Date;\n expiryDate: Date;\n tokenValue: string;\n};\n\nexport type StepQueueNameData = {\n orgId: number;\n namespace: string;\n stepType: StepType;\n name: string;\n};\n\nexport type ProcessActionResponseData = {\n count: number;\n details: ProcessActionResponseDetailData[];\n};\n\nexport type ProcessActionResponseDetailData = {\n id: string;\n message: string;\n error: string;\n};\n\nexport type ProcessData = {\n processId: number;\n processType: ProcessType;\n triggerType: ProcessTriggerType;\n namespace: string;\n name: string;\n version: number | null;\n historyId: number | null;\n requestId: string;\n correlationId: string;\n status: ProcessStatus;\n input: Record<string, unknown>;\n output: Record<string, unknown>;\n authClaims: Record<string, unknown>;\n stepIdCount: number | null;\n shardName: string;\n shardInstanceId: number | null;\n steps: StepId[];\n stepRecords: StepData[];\n created: number;\n updated: number;\n createdBy: string;\n};\n\nexport type StepData = {\n id: number;\n processId: number;\n ref: string;\n parentId: number | null;\n parentRef: string | null;\n namespace: string;\n name: string;\n type: StepType;\n stepDefinitionHistoryId: number | null;\n status: StepStatus;\n input: Record<string, unknown>;\n output: Record<string, unknown>;\n workerId: string;\n start: number;\n schedule: number;\n priority: number;\n updated: number;\n optional: boolean;\n executionList: StepExecutionData[];\n};\n\nexport type StepExecutionData = {\n id: number;\n scheduled: number;\n polled: number;\n start: number;\n updated: number;\n executor: string;\n ref: string;\n runs: number;\n output: Record<string, unknown>;\n};\n\nexport type StepId = {\n id: number;\n processId: number;\n ref: string;\n};\n\nexport type TagValue = {\n name: string;\n value: string;\n};\n\nexport type ProcessRequestData = {\n name: string;\n namespace: string;\n version: number | null;\n requestId?: string;\n correlationId?: string;\n input?: Record<string, unknown>;\n};\n\nexport type ProcessSearchRequest = {\n startTimeEpoch: number;\n endTimeEpoch?: number | null;\n namespace?: string;\n processTypes?: ProcessType[];\n triggerTypes?: ProcessTriggerType[];\n names?: string[];\n processIds?: number[];\n correlationIds?: string[];\n requestIds?: string[];\n statuses?: ProcessStatus[];\n limit?: number;\n offset?: number;\n tags?: TagValue[];\n};\n\nexport interface ExecutionWait {\n result: { waitUntil: number };\n logs: [];\n}\n\nexport interface ExecutionTimelineType {\n id: number;\n executor: string;\n output: ExecutionWait | null;\n polled: number;\n scheduled: number;\n start: number;\n updated: number;\n ref?: string | null;\n}\n\nexport interface ExecutionDetails extends ExecutionTimelineType {\n stepRef: string;\n}\n\nexport interface AuditInfo {\n createdBy: string;\n updatedBy: string;\n created: number;\n updated: number;\n}\n\nexport interface Step extends NewStepData, AuditInfo, Object {\n executionList?: ExecutionDetails[];\n parentRef?: string;\n status?: string;\n completed?: number;\n children: Step[];\n executionCount?: number;\n triggerType?: string;\n}\nexport interface StepConfiguration {\n errorPolicyName?: string;\n useCache?: boolean;\n stream?: boolean;\n cacheKey?: string;\n cacheTimeoutSeconds?: number;\n jqTransformer?: string;\n rateLimitWindowSeconds?: number | null;\n rateLimitMaxRequests?: number | null;\n preExecutionScript?: string;\n scriptLanguage?: 'JAVASCRIPT' | 'PYTHON';\n constructInputFromScript?: boolean;\n additionalRefs?: string[];\n}\n\nexport interface NewStepData {\n type: StepType;\n name: string;\n namespace: string;\n ref: string;\n optional?: boolean;\n configuration?: StepConfiguration;\n children?: Step[];\n input?: Record<string, any>;\n output?: Record<string, any>;\n}\n\nexport type ProcessDefinitionDeleteRequest = {\n namespace: string;\n name: string;\n type: string;\n version: number;\n steps?: Step[];\n};\n\nexport interface ProcessRequest {\n name?: string;\n namespace?: string;\n version?: number | null;\n id?: string | null;\n correlationId?: string | null;\n input?: Record<string, any> | null;\n testRun?: boolean | null;\n}\nexport interface ProcessConfiguration {\n completionTimeout?: number;\n onTimeoutProcess?: ProcessRequest;\n onFailProcess?: ProcessRequest | null;\n onCompleteProcess?: ProcessRequest | null;\n onCancelProcess?: ProcessRequest;\n}\n\nexport interface ProcessDefinitionData {\n namespace: string;\n name: string;\n version?: number;\n type: ProcessType | string;\n description?: string;\n configuration?: ProcessConfiguration;\n steps: Step[];\n defaultInput?: Record<string, any>;\n defaultOutput?: Record<string, any>;\n outputMapping?: Record<string, any>;\n tags?: TagValue[];\n}\nexport interface ProcessDefinitionsDetail {\n name: string;\n namespace: string;\n}\n\nexport interface ProcessDefinitionDetails {\n name: string;\n namespace: string;\n version?: number;\n}\n\nexport interface ExecutionWait {\n result: { waitUntil: number };\n logs: [];\n}\n\nexport interface ExecutionTimelineType {\n id: number;\n executor: string;\n output: ExecutionWait | null;\n polled: number;\n scheduled: number;\n start: number;\n updated: number;\n ref?: string | null;\n}\n\nexport interface ExecutionDetails extends ExecutionTimelineType {\n stepRef: string;\n}\n\nexport interface AuditInfo {\n createdBy: string;\n updatedBy: string;\n created: number;\n updated: number;\n}\n\nexport interface Step extends NewStepData, AuditInfo, Object {\n executionList?: ExecutionDetails[];\n parentRef?: string;\n status?: string;\n completed?: number;\n children: Step[];\n executionCount?: number;\n triggerType?: string;\n}\nexport interface StepConfiguration {\n errorPolicyName?: string;\n useCache?: boolean;\n stream?: boolean;\n cacheKey?: string;\n cacheTimeoutSeconds?: number;\n jqTransformer?: string;\n rateLimitWindowSeconds?: number | null;\n rateLimitMaxRequests?: number | null;\n preExecutionScript?: string;\n scriptLanguage?: 'JAVASCRIPT' | 'PYTHON';\n constructInputFromScript?: boolean;\n additionalRefs?: string[];\n streamAllStatuses?: boolean;\n}\n\nexport interface NewStepData {\n type: StepType;\n name: string;\n namespace: string;\n ref: string;\n optional?: boolean;\n configuration?: StepConfiguration;\n children?: Step[];\n input?: Record<string, any>;\n output?: Record<string, any>;\n}\n\nexport type StepSize = {\n stepQueueNameData: StepQueueNameData;\n size: number | null;\n};\n\nexport type ClientSubmitResult = {\n processId: number;\n stepId: number;\n errorMessage: string | null;\n httpStatusCode: number | null;\n};\n\nexport type WorkRequest = {\n processId: number;\n stepId: number;\n stepExecutionId: number;\n runCount: number;\n stepName: string;\n stepNamespace: string;\n stepRef: string;\n inputParam: Record<string, unknown>;\n isOptional: boolean;\n polled: number;\n scheduled: number;\n updated: number;\n priority: number;\n};\n\nexport type WorkResponse = {\n processId: number;\n stepId: number;\n stepExecutionId: number;\n runCount: number;\n output: Record<string, unknown>;\n status: StepStatus;\n rescheduleAfterSeconds: number | null;\n startedAt: number;\n};\n\nexport type WorkResult = {\n output: unknown;\n taskExecutionId: string;\n startTime: number;\n endTime: number;\n workRequest: WorkRequest;\n};\n\nexport interface FinalUnmeshedClientConfig {\n baseUrl: string;\n clientId: string;\n authToken: string;\n port: string | number;\n timeout: number;\n apiWorkerTimeout: number;\n pollTimeout: number;\n pollInterval: number;\n responsePollInterval: number;\n responsePollTimeout: number;\n responseBatchSize: number;\n}\n\nexport interface UnmeshedClientConfig {\n baseUrl: string;\n clientId: string;\n authToken: string;\n port: string | number;\n timeout?: number;\n apiWorkerTimeout?: number;\n pollTimeout?: number;\n pollInterval?: number;\n responsePollInterval?: number;\n responsePollTimeout?: number;\n responseBatchSize?: number;\n}\n\nexport interface ApiResponse<T = any> {\n data: T;\n status: number;\n headers: Record<string, string>;\n}\n\nexport interface ApiError extends Error {\n status?: number;\n response?: {\n data?: any;\n status: number;\n headers: Record<string, string>;\n };\n}\n\nexport interface QueryParams {\n [key: string]: string | number | boolean | undefined;\n}\n\nexport interface RequestConfig extends Omit<AxiosRequestConfig, 'baseURL' | 'url' | 'method'> {\n headers?: Record<string, string>;\n}\n\nexport interface HandleRequestConfig {\n method: 'get' | 'post' | 'put' | 'delete';\n endpoint: string;\n params?: QueryParams;\n data?: Record<string, unknown>;\n config?: RequestConfig;\n}\n\nexport interface ClientRequestConfig {\n params?: QueryParams;\n data?: any;\n config?: RequestConfig;\n}\n\ninterface UnmeshedWorker {\n (input: Record<string, any>): Promise<any>;\n}\n\nexport interface UnmeshedWorkerConfig {\n worker: UnmeshedWorker;\n namespace: string;\n name: string;\n maxInProgress: number;\n}\n\nexport interface PollRequestData {\n stepQueueNameData: StepQueueNameData;\n size: number;\n}\nexport interface RenewRegistrationParams {\n friendlyName: string;\n}\n","export type WorkerFunction<T> = (items: T[]) => Promise<void>;\n\nexport class QueuedWorker<T> {\n private readonly queue: BlockingQueue<T>;\n private readonly pollIntervalMs: number;\n private readonly batchSize: number;\n private readonly workerFn: WorkerFunction<T>;\n private readonly timeoutMs: number;\n\n constructor(\n capacity: number,\n pollIntervalMs: number,\n batchSize: number,\n workerFn: WorkerFunction<T>,\n timeoutMs: number\n ) {\n this.queue = new BlockingQueue<T>(capacity);\n this.pollIntervalMs = pollIntervalMs;\n this.batchSize = batchSize;\n this.workerFn = workerFn;\n this.timeoutMs = timeoutMs;\n\n console.log(\n `Configured queued worker with ${pollIntervalMs} ms interval and batch size of ${batchSize} and a timeout of ${timeoutMs} ms`\n );\n // noinspection JSIgnoredPromiseFromCall\n this.start();\n }\n\n async start(): Promise<void> {\n let errorCount = 0;\n // noinspection InfiniteLoopJS\n while (true) {\n try {\n const batch = await this.queue.takeBatch(this.batchSize);\n if (batch.length > 0) {\n console.log(`Batch work ${batch.length} received`);\n await this.runWithTimeout(this.workerFn(batch), this.timeoutMs);\n }\n } catch (error) {\n errorCount++;\n console.error(`Error processing batch - error count : ${errorCount} - `, error);\n await new Promise((resolve) => setTimeout(resolve, 1000));\n }\n await new Promise((resolve) => setTimeout(resolve, this.pollIntervalMs));\n }\n }\n\n private async runWithTimeout(task: Promise<void>, timeoutMs: number): Promise<void> {\n return new Promise((resolve, reject) => {\n const timeout = setTimeout(() => reject(new Error('Task timed out')), timeoutMs);\n task\n .then(() => {\n clearTimeout(timeout);\n resolve();\n })\n .catch((error) => {\n clearTimeout(timeout);\n reject(error);\n });\n });\n }\n\n async put(item: T): Promise<void> {\n await this.queue.put(item);\n }\n}\n\nclass BlockingQueue<T> {\n private queue: T[] = [];\n private readonly capacity: number;\n\n constructor(capacity: number) {\n if (capacity <= 0) {\n throw new Error('Capacity must be greater than 0');\n }\n this.capacity = capacity;\n }\n\n async put(item: T): Promise<void> {\n while (this.queue.length >= this.capacity) {\n await new Promise((resolve) => setTimeout(resolve, 10));\n }\n this.queue.push(item);\n }\n\n async takeBatch(batchSize: number): Promise<T[]> {\n while (this.queue.length === 0) {\n await new Promise((resolve) => setTimeout(resolve, 10));\n }\n return this.queue.splice(0, batchSize);\n }\n\n size(): number {\n return this.queue.length;\n }\n\n isEmpty(): boolean {\n return this.queue.length === 0;\n }\n\n peek(): T | undefined {\n return this.queue[0];\n }\n}\n","import {\n ApiResponse,\n PollRequestData,\n StepQueueNameData,\n StepStatus,\n UnmeshedWorkerConfig,\n WorkRequest,\n WorkResponse,\n} from '../types';\nimport { UnmeshedApiClient } from './unmeshedApiClient';\nimport { QueuedWorker } from './queuedWorker';\nimport os from 'os';\nimport { getRandomDelayMs, wait } from '../utils/retryDelay';\n\nconst REGISTRATION_RETRY_DELAY_MAX_SECONDS = 10;\nconst POLL_RETRY_DELAY_MAX_SECONDS = 30;\n\nasync function registerPolling(apiClient: UnmeshedApiClient, data: StepQueueNameData[]) {\n const attempt = async (): Promise<any> => {\n try {\n const response = await apiClient.put(`/api/clients/register`, {\n data: data,\n });\n console.log('Successfully renewed registration for workers', data);\n return response.data;\n } catch {\n const delayMs = getRandomDelayMs(REGISTRATION_RETRY_DELAY_MAX_SECONDS);\n console.error(`An error occurred during polling registration. Retrying in ${delayMs / 1000} seconds...`);\n await wait(delayMs);\n return attempt();\n }\n };\n\n return attempt();\n}\n\nasync function pollWorker(apiClient: UnmeshedApiClient, data: PollRequestData[]): Promise<WorkRequest[]> {\n try {\n const response: ApiResponse<WorkRequest[]> = await apiClient.post(`/api/clients/poll`, {\n data: data,\n config: { headers: { UNMESHED_HOST_NAME: getHostName() } },\n });\n if (response.data && response.data.length > 0) {\n console.log(`Received ${response.data.length} work requests`);\n }\n return response.data;\n } catch (error) {\n console.error('Error occurred during worker polling', error);\n const delayMs = getRandomDelayMs(POLL_RETRY_DELAY_MAX_SECONDS);\n console.error(`Retrying worker polling in ${delayMs / 1000} seconds...`);\n await wait(delayMs);\n return [];\n }\n}\n\nasync function postWorkerResponse(apiClient: UnmeshedApiClient, workResponses: WorkResponse[]) {\n try {\n if (workResponses.length > 0) {\n const grouped: Record<StepStatus, number[]> = workResponses.reduce(\n (acc, response) => {\n if (!acc[response.status]) {\n acc[response.status] = [];\n }\n acc[response.status].push(response.stepId);\n return acc;\n },\n {} as Record<StepStatus, number[]>\n );\n const resultString = Object.entries(grouped)\n .map(([status, stepIds]) => `${status}: [${stepIds.join(', ')}]`)\n .join(', ');\n console.log(`Posting response of size: ${workResponses.length} including ids: ${resultString}`);\n const response = await apiClient.post(`/api/clients/bulkResults`, {\n data: workResponses,\n });\n return response.data;\n }\n return {};\n } catch (error) {\n console.log('Error:', error);\n }\n}\n\nasync function runPollWithTimeout(task: Promise<WorkRequest[]>, timeoutMs: number): Promise<WorkRequest[]> {\n return new Promise((resolve, reject) => {\n const timeout = setTimeout(() => reject(new Error('Task timed out')), timeoutMs);\n task\n .then((workRequests) => {\n clearTimeout(timeout);\n resolve(workRequests);\n })\n .catch((error) => {\n clearTimeout(timeout);\n reject(error);\n });\n });\n}\n\nexport const continuePolling: { value: boolean } = {\n value: true,\n};\n\nexport async function pollForWorkers(apiClient: UnmeshedApiClient, workers: UnmeshedWorkerConfig[]) {\n const queuedWorker: QueuedWorker<WorkResponse> = new QueuedWorker<WorkResponse>(\n 100000,\n apiClient.config.responsePollInterval,\n apiClient.config.responseBatchSize,\n async (batchWork: WorkResponse[]) => {\n await postWorkerResponse(apiClient, batchWork);\n },\n apiClient.config.responsePollTimeout\n );\n\n const registerPollingData = workers.map((worker) => {\n return {\n orgId: 0,\n namespace: worker.namespace,\n stepType: 'WORKER',\n name: worker.name,\n } as StepQueueNameData;\n });\n\n await registerPolling(apiClient, registerPollingData);\n\n const pollWorkerData = workers.map((worker) => {\n return {\n stepQueueNameData: {\n orgId: 0,\n namespace: worker.namespace,\n stepType: 'WORKER',\n name: worker.name,\n },\n size: worker.maxInProgress,\n } as PollRequestData;\n });\n\n let errorCount = 0;\n // noinspection InfiniteLoopJS\n while (continuePolling.value) {\n try {\n const workRequests: WorkRequest[] = await runPollWithTimeout(\n pollWorker(apiClient, pollWorkerData),\n apiClient.config.pollTimeout\n );\n for (const polledWorker of workRequests) {\n const associatedWorker: UnmeshedWorkerConfig | undefined = workers.find(\n (worker) => worker.name === polledWorker.stepName && worker.namespace === polledWorker.stepNamespace\n );\n\n let workerResponse: WorkResponse = {\n processId: polledWorker.processId,\n stepId: polledWorker.stepId,\n stepExecutionId: polledWorker.stepExecutionId,\n runCount: polledWorker.runCount,\n output: {},\n status: StepStatus.RUNNING,\n rescheduleAfterSeconds: null,\n startedAt: new Date().getTime(),\n };\n\n if (!associatedWorker) {\n workerResponse = {\n ...workerResponse,\n output: {\n error: `No worker found for ${polledWorker.stepName} ${polledWorker.stepNamespace}`,\n },\n status: StepStatus.TIMED_OUT,\n };\n await queuedWorker.put(workerResponse);\n continue;\n }\n\n const TIMEOUT = apiClient.config.apiWorkerTimeout;\n\n const timeoutPromise = new Promise((_, reject) => {\n setTimeout(() => reject(new Error('Timed out')), TIMEOUT);\n });\n\n try {\n console.log(\n `Starting work ${polledWorker.processId} : ${polledWorker.stepId} : ${polledWorker.stepName} : ${polledWorker.stepRef}`\n );\n const result = await Promise.race([associatedWorker.worker(polledWorker.inputParam), timeoutPromise]);\n\n workerResponse = {\n ...workerResponse,\n output: {\n ...result,\n __workCompletedAt: new Date().getTime(),\n },\n status: StepStatus.COMPLETED,\n };\n } catch (error: unknown) {\n const err = error as Error;\n if (err.message && err.message === 'Timed out') {\n workerResponse = {\n ...workerResponse,\n output: {\n error: `${err.message} based on work timeout settings in worker - ${apiClient.config.apiWorkerTimeout} ms`,\n },\n status: StepStatus.TIMED_OUT,\n };\n } else {\n workerResponse = {\n ...workerResponse,\n output: {\n error: safeStringifyError(err),\n },\n status: StepStatus.FAILED,\n };\n console.error('Error:', err.message);\n }\n }\n await queuedWorker.put(workerResponse);\n }\n await new Promise((resolve) => setTimeout(resolve, apiClient.config.pollInterval));\n } catch (error) {\n errorCount++;\n console.error(`Error processing batch - error count : ${errorCount} - `, error);\n const delayMs = getRandomDelayMs(POLL_RETRY_DELAY_MAX_SECONDS);\n console.error(`Retrying worker polling in ${delayMs / 1000} seconds...`);\n await wait(delayMs);\n }\n }\n}\n\nfunction safeStringifyError(error: Error) {\n try {\n if (error instanceof Error) {\n const plainError = {\n ...error,\n name: error.name,\n message: error.message,\n stack: error.stack,\n };\n return JSON.stringify(plainError);\n }\n return JSON.stringify(error);\n } catch (stringifyError: unknown) {\n if (stringifyError instanceof Error) {\n return `Error stringification failed: ${stringifyError.message}`;\n }\n return 'Error stringification failed: An unknown error occurred during stringification.';\n }\n}\n\nexport async function startPollingWorkers(\n apiClient: UnmeshedApiClient,\n workers: UnmeshedWorkerConfig[],\n intervalMs: number = 5000\n) {\n async function pollCycle() {\n try {\n await pollForWorkers(apiClient, workers);\n } catch (error) {\n console.error('Error during worker polling:', error);\n }\n\n setTimeout(pollCycle, intervalMs);\n }\n\n await pollCycle();\n}\n\nexport function getHostName(): string {\n const unmeshedHostName = process.env.UNMESHED_HOST_NAME;\n if (unmeshedHostName && unmeshedHostName.trim() !== '') {\n return unmeshedHostName.trim();\n }\n\n const hostNameEnv = process.env.HOSTNAME;\n if (hostNameEnv && hostNameEnv.trim() !== '') {\n return hostNameEnv.trim();\n }\n\n const computerNameEnv = process.env.COMPUTERNAME;\n if (computerNameEnv && computerNameEnv.trim() !== '') {\n return computerNameEnv.trim();\n }\n\n try {\n const host = os.hostname();\n if (host && host.trim() !== '') {\n return host.trim();\n }\n } catch {\n // ignore\n }\n\n return '-';\n}\n","export function getRandomDelayMs(maxSeconds: number, minSeconds: number = 1): number {\n const minimumSeconds = Math.max(1, Math.floor(minSeconds));\n const maximumSeconds = Math.max(minimumSeconds, Math.floor(maxSeconds));\n const delaySeconds = Math.floor(Math.random() * (maximumSeconds - minimumSeconds + 1)) + minimumSeconds;\n\n return delaySeconds * 1000;\n}\n\nexport async function wait(delayMs: number): Promise<void> {\n await new Promise((resolve) => setTimeout(resolve, delayMs));\n}\n","import {\n ApiCallType,\n ProcessActionResponseData,\n ProcessData,\n ProcessDefinitionData,\n ProcessDefinitionDeleteRequest,\n ProcessDefinitionDetails,\n ProcessDefinitionsDetail,\n ProcessRequestData,\n ProcessSearchRequest,\n StepData,\n} from '../types';\nimport { isAxiosError } from 'axios';\nimport { UnmeshedApiClient } from './unmeshedApiClient';\n\nconst PROCESS_PREFIX = 'api/process';\n\nexport const runProcessSync = async (\n apiClient: UnmeshedApiClient,\n ProcessRequestData: ProcessRequestData\n): Promise<ProcessData> => {\n try {\n const response = await apiClient.post(`${PROCESS_PREFIX}/runSync`, {\n data: ProcessRequestData,\n params: {\n clientId: apiClient.getClientId(),\n },\n });\n console.log('Response:', response);\n return response.data;\n } catch (error) {\n console.error('Some error occurred running process request : ', error);\n throw error;\n }\n};\n\nexport const runProcessAsync = async (\n apiClient: UnmeshedApiClient,\n ProcessRequestData: ProcessRequestData\n): Promise<ProcessData> => {\n try {\n const response = await apiClient.post(`${PROCESS_PREFIX}/runAsync`, {\n data: ProcessRequestData,\n params: {\n clientId: apiClient.getClientId(),\n },\n });\n console.log('Response:', response);\n return response.data;\n } catch (error) {\n console.error('Some error occurred running process request : ', error);\n throw error;\n }\n};\n\nexport const getProcessData = async (\n apiClient: UnmeshedApiClient,\n processId: number,\n includeSteps: boolean = false\n): Promise<ProcessData> => {\n if (!processId) {\n throw new Error('Process ID cannot be null');\n }\n try {\n const response = await apiClient.get<ProcessData>(`${PROCESS_PREFIX}/context/${processId}`, { includeSteps });\n return response.data;\n } catch (error) {\n console.error('Error occurred while fetching process record: ', error);\n throw error;\n }\n};\n\nexport const getStepData = async (apiClient: UnmeshedApiClient, stepId: number): Promise<StepData> => {\n if (!stepId) {\n throw new Error('Step ID cannot be null or undefined');\n }\n try {\n const response = await apiClient.get<StepData>(`${PROCESS_PREFIX}/stepContext/${stepId}`);\n return response.data;\n } catch (error) {\n console.log('Error occurred while getStepData: ', error);\n throw error;\n }\n};\n\nexport const bulkTerminate = async (\n apiClient: UnmeshedApiClient,\n processIds: number[],\n reason?: string\n): Promise<ProcessActionResponseData> => {\n try {\n const response = await apiClient.post(`${PROCESS_PREFIX}/bulkTerminate`, {\n params: { reason },\n data: processIds,\n });\n return response.data as ProcessActionResponseData;\n } catch (error) {\n const err = error as Error;\n throw new Error(`Error occurred while terminating processes: ${err.message || error}`);\n }\n};\n\nexport const bulkResume = async (\n apiClient: UnmeshedApiClient,\n processIds: number[]\n): Promise<ProcessActionResponseData> => {\n try {\n const response = await apiClient.post(`${PROCESS_PREFIX}/bulkResume`, {\n data: processIds,\n });\n return response.data as ProcessActionResponseData;\n } catch (error) {\n const err = error as Error;\n throw new Error(`Error occurred while resuming processes: ${err.message || error}`);\n }\n};\n\nexport const bulkReviewed = async (\n apiClient: UnmeshedApiClient,\n processIds: number[],\n reason?: string\n): Promise<ProcessActionResponseData> => {\n try {\n const response = await apiClient.post(`${PROCESS_PREFIX}/bulkReviewed`, {\n data: processIds,\n params: { reason },\n });\n return response.data as ProcessActionResponseData;\n } catch (error) {\n const err = error as Error;\n throw new Error(`Error occurred while marking processes as reviewed: ${err.message || error}`);\n }\n};\n\nexport const rerun = async (\n apiClient: UnmeshedApiClient,\n processId: number,\n version?: number\n): Promise<ProcessData> => {\n const params: Record<string, any> = {\n processId,\n };\n\n if (version !== undefined) {\n params['version'] = version;\n }\n\n try {\n const response = await apiClient.post(`${PROCESS_PREFIX}/rerun`, {\n params,\n });\n\n return response.data as ProcessData;\n } catch (error) {\n if (isAxiosError(error)) {\n throw new Error(`HTTP request error during rerun process: ${error.response?.status} - ${error.response?.data}`);\n } else {\n const err = error as Error;\n throw new Error(`Unexpected error during rerun process: ${err.message || err}`);\n }\n }\n};\n\nexport const searchProcessExecutions = async (apiClient: UnmeshedApiClient, params: ProcessSearchRequest) => {\n const body: Record<string, any> = {};\n\n if (params.startTimeEpoch) body.startTimeEpoch = params.startTimeEpoch;\n if (params.endTimeEpoch) body.endTimeEpoch = params.endTimeEpoch;\n\n if (params.namespace) body.namespace = params.namespace;\n if (params.names?.length) body.names = params.names;\n if (params.processIds?.length) body.processIds = params.processIds;\n if (params.correlationIds?.length) body.correlationIds = params.correlationIds;\n if (params.requestIds?.length) body.requestIds = params.requestIds;\n if (params.statuses?.length) body.statuses = params.statuses;\n if (params.triggerTypes?.length) body.triggerTypes = params.triggerTypes;\n\n if (params.tags?.length) body.tags = params.tags;\n\n try {\n const response = await apiClient.post(`api/stats/process/search`, {\n data: body,\n params: {},\n });\n\n return response.data;\n } catch (error) {\n console.error('Error occurred while searching process executions:', error);\n throw error;\n }\n};\n\nexport const invokeApiMappingGet = async (\n apiClient: UnmeshedApiClient,\n endpoint: string,\n id: string,\n correlationId: string,\n apiCallType: ApiCallType\n) => {\n try {\n const response = await apiClient.get(`${PROCESS_PREFIX}/api/call/${endpoint}`, {\n id: id,\n correlationId: correlationId,\n apiCallType,\n });\n console.log('Response:', response);\n return response.data;\n } catch (error) {\n console.error('Error occurred while invoking API Mapping GET: ', error);\n throw error;\n }\n};\n\nexport const invokeApiMappingPost = async (\n apiClient: UnmeshedApiClient,\n endpoint: string,\n input: Record<string, any>,\n id: string,\n correlationId: string,\n apiCallType: ApiCallType = ApiCallType.ASYNC\n): Promise<any> => {\n try {\n const response = await apiClient.post(`${PROCESS_PREFIX}/api/call/${endpoint}`, {\n data: input,\n params: {\n id: id,\n correlationId: correlationId,\n apiCallType,\n },\n });\n\n return response.data;\n } catch (error) {\n console.error('Error occurred while invoking API Mapping POST: ', error);\n throw error;\n }\n};\n\nexport const createProcessDefinition = async (apiClient: UnmeshedApiClient, requestData: ProcessDefinitionData) => {\n try {\n const response = await apiClient.post(`/api/processDefinitions`, {\n data: requestData,\n params: {},\n });\n\n return response.data;\n } catch (error) {\n console.error('Error occurred while creating process definition:', error);\n throw error;\n }\n};\n\nexport const deleteProcessDefinition = async (\n apiClient: UnmeshedApiClient,\n requestData: ProcessDefinitionDeleteRequest\n) => {\n try {\n const response = await apiClient.delete(`/api/processDefinitions`, {\n data: [requestData],\n params: {},\n });\n\n return response.data;\n } catch (error) {\n console.error('Error occurred while deleting process definition:', error);\n throw error;\n }\n};\n\nexport const updateProcessDefinition = async (apiClient: UnmeshedApiClient, requestData: ProcessDefinitionData) => {\n try {\n const response = await apiClient.put(`/api/processDefinitions`, {\n data: requestData,\n params: {},\n });\n\n return response.data;\n } catch (error) {\n console.error('Error occurred while creating process definition:', error);\n throw error;\n }\n};\n\nexport const getProcessDefinitions = async (apiClient: UnmeshedApiClient, namespace?: string) => {\n try {\n const params = namespace ? { namespace } : {};\n const response = await apiClient.get('/api/processDefinitions', params);\n return response.data;\n } catch (error) {\n console.error('Error occurred while fetching process definitions:', error);\n throw error;\n }\n};\n\nexport const getProcessDefinitionVersions = async (apiClient: UnmeshedApiClient, body: ProcessDefinitionsDetail) => {\n try {\n const response = await apiClient.get(`/api/processDefinitions/${body.namespace}/${body.name}/versions`);\n return response.data;\n } catch (error) {\n console.error('Error occurred while fetching process definition: ', error);\n throw error;\n }\n};\n\nexport const getProcessDefinitionByVersion = async (apiClient: UnmeshedApiClient, body: ProcessDefinitionDetails) => {\n if (!body.namespace || !body.name || !body.version) {\n throw new Error('namespace, name, and version are required');\n }\n\n try {\n const params = body.version ? { version: body.version } : {};\n\n const response = await apiClient.get(`/api/processDefinitions/${body.namespace}/${body.name}`, params);\n\n return response.data;\n } catch (error) {\n console.error('Error occurred while fetching process definition:', error);\n throw error;\n }\n};\n","import { RenewRegistrationParams } from '../types';\nimport { UnmeshedApiClient } from './unmeshedApiClient';\n\nexport const renewRegistration = async (\n apiClient: UnmeshedApiClient,\n params: RenewRegistrationParams\n): Promise<string> => {\n try {\n const response = await apiClient.put('/api/clients/register', {\n params: { ...params },\n });\n console.debug('Response from server:', response);\n return response.data;\n } catch (error) {\n console.error('Error occurred during registration renewal:', error);\n throw error;\n }\n};\n"],"mappings":"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","names":["axios","ApiCallType","WebhookSource","SQAuthUserType","StepType","StepStatus","ProcessStatus","ProcessTriggerType","ProcessType","response","os","import_axios","ProcessRequestData","ProcessRequestData"]}
package/dist/index.mjs CHANGED
@@ -308,6 +308,21 @@ var BlockingQueue = class {
308
308
 
309
309
  // src/apis/pollerClientImpl.ts
310
310
  import os from "os";
311
+
312
+ // src/utils/retryDelay.ts
313
+ function getRandomDelayMs(maxSeconds, minSeconds = 1) {
314
+ const minimumSeconds = Math.max(1, Math.floor(minSeconds));
315
+ const maximumSeconds = Math.max(minimumSeconds, Math.floor(maxSeconds));
316
+ const delaySeconds = Math.floor(Math.random() * (maximumSeconds - minimumSeconds + 1)) + minimumSeconds;
317
+ return delaySeconds * 1e3;
318
+ }
319
+ async function wait(delayMs) {
320
+ await new Promise((resolve) => setTimeout(resolve, delayMs));
321
+ }
322
+
323
+ // src/apis/pollerClientImpl.ts
324
+ var REGISTRATION_RETRY_DELAY_MAX_SECONDS = 10;
325
+ var POLL_RETRY_DELAY_MAX_SECONDS = 30;
311
326
  async function registerPolling(apiClient, data) {
312
327
  const attempt = async () => {
313
328
  try {
@@ -317,8 +332,9 @@ async function registerPolling(apiClient, data) {
317
332
  console.log("Successfully renewed registration for workers", data);
318
333
  return response.data;
319
334
  } catch {
320
- console.error("An error occurred during polling registration. Retrying in 3 seconds...");
321
- await new Promise((resolve) => setTimeout(resolve, 3e3));
335
+ const delayMs = getRandomDelayMs(REGISTRATION_RETRY_DELAY_MAX_SECONDS);
336
+ console.error(`An error occurred during polling registration. Retrying in ${delayMs / 1e3} seconds...`);
337
+ await wait(delayMs);
322
338
  return attempt();
323
339
  }
324
340
  };
@@ -336,6 +352,9 @@ async function pollWorker(apiClient, data) {
336
352
  return response.data;
337
353
  } catch (error) {
338
354
  console.error("Error occurred during worker polling", error);
355
+ const delayMs = getRandomDelayMs(POLL_RETRY_DELAY_MAX_SECONDS);
356
+ console.error(`Retrying worker polling in ${delayMs / 1e3} seconds...`);
357
+ await wait(delayMs);
339
358
  return [];
340
359
  }
341
360
  }
@@ -485,7 +504,9 @@ async function pollForWorkers(apiClient, workers) {
485
504
  } catch (error) {
486
505
  errorCount++;
487
506
  console.error(`Error processing batch - error count : ${errorCount} - `, error);
488
- await new Promise((resolve) => setTimeout(resolve, 1e3));
507
+ const delayMs = getRandomDelayMs(POLL_RETRY_DELAY_MAX_SECONDS);
508
+ console.error(`Retrying worker polling in ${delayMs / 1e3} seconds...`);
509
+ await wait(delayMs);
489
510
  }
490
511
  }
491
512
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/apis/unmeshedApiClient.ts","../src/utils/unmeshedCommonUtils.ts","../src/types/index.ts","../src/apis/queuedWorker.ts","../src/apis/pollerClientImpl.ts","../src/apis/processClientImpl.ts","../src/apis/registrationClientImpl.ts","../src/index.ts"],"sourcesContent":["import axios, { AxiosError, AxiosInstance, AxiosRequestConfig, AxiosResponse, RawAxiosRequestHeaders } from 'axios';\nimport {\n ApiResponse,\n ClientRequestConfig,\n FinalUnmeshedClientConfig,\n HandleRequestConfig,\n QueryParams,\n RequestConfig,\n UnmeshedClientConfig,\n} from '../types';\nimport { UnmeshedCommonUtils } from '../utils/unmeshedCommonUtils';\n\nexport class UnmeshedApiClient {\n private axiosInstance: AxiosInstance | null = null;\n private clientId: string | undefined = undefined;\n private _config: FinalUnmeshedClientConfig;\n\n constructor(unmeshedClientConfig: UnmeshedClientConfig) {\n console.log('Initializing Unmeshed ApiClient');\n\n this._config = createUnmeshedClientConfig(unmeshedClientConfig);\n\n console.log(this._config);\n\n this.clientId = this._config.clientId;\n\n if (!this._config.baseUrl) {\n throw new Error('baseUrl is required');\n }\n\n const baseURL = this._config.port ? `${this._config.baseUrl}:${this._config.port}` : this._config.baseUrl;\n\n this.axiosInstance = axios.create({\n baseURL,\n timeout: this._config.timeout,\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer client.sdk.${this._config.clientId}.${UnmeshedCommonUtils.createSecureHash(\n this._config.authToken\n )}`,\n } as RawAxiosRequestHeaders,\n });\n }\n\n private async handleRequest<T>({\n method,\n endpoint,\n params,\n data,\n config,\n }: HandleRequestConfig): Promise<ApiResponse<T>> {\n if (!this.axiosInstance) {\n throw new Error('ApiClient must be initialized before making requests');\n }\n\n try {\n const response: AxiosResponse<T> = await this.axiosInstance.request<T>({\n method,\n url: endpoint,\n params,\n data,\n ...config,\n } as AxiosRequestConfig);\n\n return {\n data: response.data,\n status: response.status,\n headers: response.headers as Record<string, string>,\n };\n } catch (error) {\n if (axios.isAxiosError(error)) {\n console.error('Request failed:', error.message);\n throw this.handleError(error);\n }\n console.error('Unexpected error:', (error as Error).message);\n throw error;\n }\n }\n\n private handleError(error: AxiosError): Error {\n console.error('Error details:', {\n message: error.message,\n status: error.response?.status,\n data: error.response?.data,\n });\n\n let response = error?.response?.data as ErrorResponse;\n if (response?.errorMessage) {\n return new Error(`${response.errorMessage} [Status code: ${error.response?.status || ''}]`);\n }\n\n return new Error(error.message, { cause: error.response?.data || {} });\n }\n\n public async get<T = any>(endpoint: string, params?: QueryParams, config?: RequestConfig): Promise<ApiResponse<T>> {\n return this.handleRequest<T>({\n method: 'get',\n endpoint: endpoint,\n params: params,\n config: config,\n });\n }\n\n public async post<T = any>(endpoint: string, clientRequestConfig: ClientRequestConfig): Promise<ApiResponse<T>> {\n return this.handleRequest<T>({\n method: 'post',\n endpoint: endpoint,\n ...clientRequestConfig,\n });\n }\n\n public async put<T = any>(endpoint: string, clientRequestConfig: ClientRequestConfig): Promise<ApiResponse<T>> {\n return this.handleRequest<T>({\n method: 'put',\n endpoint: endpoint,\n ...clientRequestConfig,\n });\n }\n\n public async delete<T = any>(endpoint: string, clientRequestConfig: ClientRequestConfig): Promise<ApiResponse<T>> {\n return this.handleRequest<T>({\n method: 'delete',\n endpoint: endpoint,\n ...clientRequestConfig,\n });\n }\n\n public getClientId(): string | undefined {\n return this.clientId;\n }\n\n get config(): FinalUnmeshedClientConfig {\n return this._config;\n }\n}\n\ninterface ErrorResponse {\n errorMessage?: string;\n [key: string]: any; // To allow other unexpected properties\n}\n\nexport function createUnmeshedClientConfig(config: UnmeshedClientConfig): Required<FinalUnmeshedClientConfig> {\n return {\n baseUrl: config.baseUrl,\n clientId: config.clientId,\n authToken: config.authToken,\n port: config.port ?? 443,\n timeout: config.timeout ?? 5000,\n pollInterval: config.pollInterval ?? 100,\n apiWorkerTimeout: config.apiWorkerTimeout ?? 10000,\n pollTimeout: config.pollTimeout ?? 10000,\n responsePollInterval: config.responsePollInterval ?? 100,\n responsePollTimeout: config.responsePollTimeout ?? 10000,\n responseBatchSize: config.responseBatchSize ?? 50,\n };\n}\n","import { createHash } from 'crypto';\n\nexport class UnmeshedCommonUtils {\n static createSecureHash(input: string): string {\n try {\n const hash = createHash('sha256');\n hash.update(input, 'utf8');\n return hash.digest('hex');\n } catch (e) {\n throw new Error('Error creating hash');\n }\n }\n}\n","import { AxiosRequestConfig } from 'axios';\n\nexport enum ApiCallType {\n SYNC = 'SYNC',\n ASYNC = 'ASYNC',\n STREAM = 'STREAM',\n}\n\nexport interface ApiMappingData {\n endpoint: string;\n processDefNamespace: string;\n processDefName: string;\n processDefVersion: number;\n authType: string;\n authClaims: string;\n createdBy: string;\n updatedBy: string;\n created: Date;\n updated: Date;\n}\n\nexport type ApiMappingWebhookData = {\n endpoint: string;\n name: string;\n uniqueId: string;\n urlSecret: string;\n description: string;\n userIdentifier: string;\n webhookSource: WebhookSource;\n webhookSourceConfig: Record<string, string>;\n expiryDate: Date;\n userType: SQAuthUserType;\n createdBy: string;\n updatedBy: string;\n created: Date;\n updated: Date;\n};\n\nexport enum WebhookSource {\n MS_TEAMS = 'MS_TEAMS',\n NOT_DEFINED = 'NOT_DEFINED',\n}\n\nexport enum SQAuthUserType {\n USER = 'USER',\n API = 'API',\n INTERNAL = 'INTERNAL',\n}\n\nexport enum StepType {\n LIST = 'LIST',\n HTTP = 'HTTP',\n WORKER = 'WORKER',\n SWITCH = 'SWITCH',\n PARALLEL = 'PARALLEL',\n FAIL = 'FAIL',\n PYTHON = 'PYTHON',\n JAVASCRIPT = 'JAVASCRIPT',\n JQ = 'JQ',\n SLACK = 'SLACK',\n GRAPHQL = 'GRAPHQL',\n WAIT = 'WAIT',\n BUILTIN = 'BUILTIN',\n NOOP = 'NOOP',\n AI_AGENT = 'AI_AGENT',\n EXIT = 'EXIT',\n DEPENDSON = 'DEPENDSON',\n PERSISTED_STATE = 'PERSISTED_STATE',\n UPDATE_STEP = 'UPDATE_STEP',\n INTEGRATION = 'INTEGRATION',\n FOREACH = 'FOREACH',\n WHILE = 'WHILE',\n SUB_PROCESS = 'SUB_PROCESS',\n FLOW_GATEWAY = 'FLOW_GATEWAY',\n DECISION_ENGINE = 'DECISION_ENGINE',\n SQLITE = 'SQLITE',\n MANAGED = 'MANAGED',\n}\n\nexport enum StepStatus {\n PENDING = 'PENDING',\n SCHEDULED = 'SCHEDULED',\n RUNNING = 'RUNNING',\n PAUSED = 'PAUSED',\n COMPLETED = 'COMPLETED',\n FAILED = 'FAILED',\n TIMED_OUT = 'TIMED_OUT',\n SKIPPED = 'SKIPPED',\n CANCELLED = 'CANCELLED',\n}\n\nexport enum ProcessStatus {\n RUNNING = 'RUNNING',\n COMPLETED = 'COMPLETED',\n FAILED = 'FAILED',\n TIMED_OUT = 'TIMED_OUT',\n CANCELLED = 'CANCELLED',\n TERMINATED = 'TERMINATED',\n REVIEWED = 'REVIEWED',\n}\n\nexport enum ProcessTriggerType {\n MANUAL = 'MANUAL',\n SCHEDULED = 'SCHEDULED',\n API_MAPPING = 'API_MAPPING',\n WEBHOOK = 'WEBHOOK',\n API = 'API',\n SUB_PROCESS = 'SUB_PROCESS',\n}\n\nexport enum ProcessType {\n STANDARD = 'STANDARD',\n DYNAMIC = 'DYNAMIC',\n API_ORCHESTRATION = 'API_ORCHESTRATION',\n INTERNAL = 'INTERNAL',\n}\n\nexport type ClientProfileData = {\n clientId: string;\n ipAddress: string;\n friendlyName: string;\n userIdentifier: string;\n stepQueueNames: StepQueueNameData[];\n createdBy: string;\n updatedBy: string;\n created: Date;\n updated: Date;\n expiryDate: Date;\n};\n\nexport type FullClientProfileData = {\n clientId: string;\n ipAddress: string;\n friendlyName: string;\n userIdentifier: string;\n stepQueueNames: StepQueueNameData[];\n createdBy: string;\n updatedBy: string;\n created: Date;\n updated: Date;\n expiryDate: Date;\n tokenValue: string;\n};\n\nexport type StepQueueNameData = {\n orgId: number;\n namespace: string;\n stepType: StepType;\n name: string;\n};\n\nexport type ProcessActionResponseData = {\n count: number;\n details: ProcessActionResponseDetailData[];\n};\n\nexport type ProcessActionResponseDetailData = {\n id: string;\n message: string;\n error: string;\n};\n\nexport type ProcessData = {\n processId: number;\n processType: ProcessType;\n triggerType: ProcessTriggerType;\n namespace: string;\n name: string;\n version: number | null;\n historyId: number | null;\n requestId: string;\n correlationId: string;\n status: ProcessStatus;\n input: Record<string, unknown>;\n output: Record<string, unknown>;\n authClaims: Record<string, unknown>;\n stepIdCount: number | null;\n shardName: string;\n shardInstanceId: number | null;\n steps: StepId[];\n stepRecords: StepData[];\n created: number;\n updated: number;\n createdBy: string;\n};\n\nexport type StepData = {\n id: number;\n processId: number;\n ref: string;\n parentId: number | null;\n parentRef: string | null;\n namespace: string;\n name: string;\n type: StepType;\n stepDefinitionHistoryId: number | null;\n status: StepStatus;\n input: Record<string, unknown>;\n output: Record<string, unknown>;\n workerId: string;\n start: number;\n schedule: number;\n priority: number;\n updated: number;\n optional: boolean;\n executionList: StepExecutionData[];\n};\n\nexport type StepExecutionData = {\n id: number;\n scheduled: number;\n polled: number;\n start: number;\n updated: number;\n executor: string;\n ref: string;\n runs: number;\n output: Record<string, unknown>;\n};\n\nexport type StepId = {\n id: number;\n processId: number;\n ref: string;\n};\n\nexport type TagValue = {\n name: string;\n value: string;\n};\n\nexport type ProcessRequestData = {\n name: string;\n namespace: string;\n version: number | null;\n requestId?: string;\n correlationId?: string;\n input?: Record<string, unknown>;\n};\n\nexport type ProcessSearchRequest = {\n startTimeEpoch: number;\n endTimeEpoch?: number | null;\n namespace?: string;\n processTypes?: ProcessType[];\n triggerTypes?: ProcessTriggerType[];\n names?: string[];\n processIds?: number[];\n correlationIds?: string[];\n requestIds?: string[];\n statuses?: ProcessStatus[];\n limit?: number;\n offset?: number;\n tags?: TagValue[];\n};\n\nexport interface ExecutionWait {\n result: { waitUntil: number };\n logs: [];\n}\n\nexport interface ExecutionTimelineType {\n id: number;\n executor: string;\n output: ExecutionWait | null;\n polled: number;\n scheduled: number;\n start: number;\n updated: number;\n ref?: string | null;\n}\n\nexport interface ExecutionDetails extends ExecutionTimelineType {\n stepRef: string;\n}\n\nexport interface AuditInfo {\n createdBy: string;\n updatedBy: string;\n created: number;\n updated: number;\n}\n\nexport interface Step extends NewStepData, AuditInfo, Object {\n executionList?: ExecutionDetails[];\n parentRef?: string;\n status?: string;\n completed?: number;\n children: Step[];\n executionCount?: number;\n triggerType?: string;\n}\nexport interface StepConfiguration {\n errorPolicyName?: string;\n useCache?: boolean;\n stream?: boolean;\n cacheKey?: string;\n cacheTimeoutSeconds?: number;\n jqTransformer?: string;\n rateLimitWindowSeconds?: number | null;\n rateLimitMaxRequests?: number | null;\n preExecutionScript?: string;\n scriptLanguage?: 'JAVASCRIPT' | 'PYTHON';\n constructInputFromScript?: boolean;\n additionalRefs?: string[];\n}\n\nexport interface NewStepData {\n type: StepType;\n name: string;\n namespace: string;\n ref: string;\n optional?: boolean;\n configuration?: StepConfiguration;\n children?: Step[];\n input?: Record<string, any>;\n output?: Record<string, any>;\n}\n\nexport type ProcessDefinitionDeleteRequest = {\n namespace: string;\n name: string;\n type: string;\n version: number;\n steps?: Step[];\n};\n\nexport interface ProcessRequest {\n name?: string;\n namespace?: string;\n version?: number | null;\n id?: string | null;\n correlationId?: string | null;\n input?: Record<string, any> | null;\n testRun?: boolean | null;\n}\nexport interface ProcessConfiguration {\n completionTimeout?: number;\n onTimeoutProcess?: ProcessRequest;\n onFailProcess?: ProcessRequest | null;\n onCompleteProcess?: ProcessRequest | null;\n onCancelProcess?: ProcessRequest;\n}\n\nexport interface ProcessDefinitionData {\n namespace: string;\n name: string;\n version?: number;\n type: ProcessType | string;\n description?: string;\n configuration?: ProcessConfiguration;\n steps: Step[];\n defaultInput?: Record<string, any>;\n defaultOutput?: Record<string, any>;\n outputMapping?: Record<string, any>;\n tags?: TagValue[];\n}\nexport interface ProcessDefinitionsDetail {\n name: string;\n namespace: string;\n}\n\nexport interface ProcessDefinitionDetails {\n name: string;\n namespace: string;\n version?: number;\n}\n\nexport interface ExecutionWait {\n result: { waitUntil: number };\n logs: [];\n}\n\nexport interface ExecutionTimelineType {\n id: number;\n executor: string;\n output: ExecutionWait | null;\n polled: number;\n scheduled: number;\n start: number;\n updated: number;\n ref?: string | null;\n}\n\nexport interface ExecutionDetails extends ExecutionTimelineType {\n stepRef: string;\n}\n\nexport interface AuditInfo {\n createdBy: string;\n updatedBy: string;\n created: number;\n updated: number;\n}\n\nexport interface Step extends NewStepData, AuditInfo, Object {\n executionList?: ExecutionDetails[];\n parentRef?: string;\n status?: string;\n completed?: number;\n children: Step[];\n executionCount?: number;\n triggerType?: string;\n}\nexport interface StepConfiguration {\n errorPolicyName?: string;\n useCache?: boolean;\n stream?: boolean;\n cacheKey?: string;\n cacheTimeoutSeconds?: number;\n jqTransformer?: string;\n rateLimitWindowSeconds?: number | null;\n rateLimitMaxRequests?: number | null;\n preExecutionScript?: string;\n scriptLanguage?: 'JAVASCRIPT' | 'PYTHON';\n constructInputFromScript?: boolean;\n additionalRefs?: string[];\n streamAllStatuses?: boolean;\n}\n\nexport interface NewStepData {\n type: StepType;\n name: string;\n namespace: string;\n ref: string;\n optional?: boolean;\n configuration?: StepConfiguration;\n children?: Step[];\n input?: Record<string, any>;\n output?: Record<string, any>;\n}\n\nexport type StepSize = {\n stepQueueNameData: StepQueueNameData;\n size: number | null;\n};\n\nexport type ClientSubmitResult = {\n processId: number;\n stepId: number;\n errorMessage: string | null;\n httpStatusCode: number | null;\n};\n\nexport type WorkRequest = {\n processId: number;\n stepId: number;\n stepExecutionId: number;\n runCount: number;\n stepName: string;\n stepNamespace: string;\n stepRef: string;\n inputParam: Record<string, unknown>;\n isOptional: boolean;\n polled: number;\n scheduled: number;\n updated: number;\n priority: number;\n};\n\nexport type WorkResponse = {\n processId: number;\n stepId: number;\n stepExecutionId: number;\n runCount: number;\n output: Record<string, unknown>;\n status: StepStatus;\n rescheduleAfterSeconds: number | null;\n startedAt: number;\n};\n\nexport type WorkResult = {\n output: unknown;\n taskExecutionId: string;\n startTime: number;\n endTime: number;\n workRequest: WorkRequest;\n};\n\nexport interface FinalUnmeshedClientConfig {\n baseUrl: string;\n clientId: string;\n authToken: string;\n port: string | number;\n timeout: number;\n apiWorkerTimeout: number;\n pollTimeout: number;\n pollInterval: number;\n responsePollInterval: number;\n responsePollTimeout: number;\n responseBatchSize: number;\n}\n\nexport interface UnmeshedClientConfig {\n baseUrl: string;\n clientId: string;\n authToken: string;\n port: string | number;\n timeout?: number;\n apiWorkerTimeout?: number;\n pollTimeout?: number;\n pollInterval?: number;\n responsePollInterval?: number;\n responsePollTimeout?: number;\n responseBatchSize?: number;\n}\n\nexport interface ApiResponse<T = any> {\n data: T;\n status: number;\n headers: Record<string, string>;\n}\n\nexport interface ApiError extends Error {\n status?: number;\n response?: {\n data?: any;\n status: number;\n headers: Record<string, string>;\n };\n}\n\nexport interface QueryParams {\n [key: string]: string | number | boolean | undefined;\n}\n\nexport interface RequestConfig extends Omit<AxiosRequestConfig, 'baseURL' | 'url' | 'method'> {\n headers?: Record<string, string>;\n}\n\nexport interface HandleRequestConfig {\n method: 'get' | 'post' | 'put' | 'delete';\n endpoint: string;\n params?: QueryParams;\n data?: Record<string, unknown>;\n config?: RequestConfig;\n}\n\nexport interface ClientRequestConfig {\n params?: QueryParams;\n data?: any;\n config?: RequestConfig;\n}\n\ninterface UnmeshedWorker {\n (input: Record<string, any>): Promise<any>;\n}\n\nexport interface UnmeshedWorkerConfig {\n worker: UnmeshedWorker;\n namespace: string;\n name: string;\n maxInProgress: number;\n}\n\nexport interface PollRequestData {\n stepQueueNameData: StepQueueNameData;\n size: number;\n}\nexport interface RenewRegistrationParams {\n friendlyName: string;\n}\n","export type WorkerFunction<T> = (items: T[]) => Promise<void>;\n\nexport class QueuedWorker<T> {\n private readonly queue: BlockingQueue<T>;\n private readonly pollIntervalMs: number;\n private readonly batchSize: number;\n private readonly workerFn: WorkerFunction<T>;\n private readonly timeoutMs: number;\n\n constructor(\n capacity: number,\n pollIntervalMs: number,\n batchSize: number,\n workerFn: WorkerFunction<T>,\n timeoutMs: number\n ) {\n this.queue = new BlockingQueue<T>(capacity);\n this.pollIntervalMs = pollIntervalMs;\n this.batchSize = batchSize;\n this.workerFn = workerFn;\n this.timeoutMs = timeoutMs;\n\n console.log(\n `Configured queued worker with ${pollIntervalMs} ms interval and batch size of ${batchSize} and a timeout of ${timeoutMs} ms`\n );\n // noinspection JSIgnoredPromiseFromCall\n this.start();\n }\n\n async start(): Promise<void> {\n let errorCount = 0;\n // noinspection InfiniteLoopJS\n while (true) {\n try {\n const batch = await this.queue.takeBatch(this.batchSize);\n if (batch.length > 0) {\n console.log(`Batch work ${batch.length} received`);\n await this.runWithTimeout(this.workerFn(batch), this.timeoutMs);\n }\n } catch (error) {\n errorCount++;\n console.error(`Error processing batch - error count : ${errorCount} - `, error);\n await new Promise((resolve) => setTimeout(resolve, 1000));\n }\n await new Promise((resolve) => setTimeout(resolve, this.pollIntervalMs));\n }\n }\n\n private async runWithTimeout(task: Promise<void>, timeoutMs: number): Promise<void> {\n return new Promise((resolve, reject) => {\n const timeout = setTimeout(() => reject(new Error('Task timed out')), timeoutMs);\n task\n .then(() => {\n clearTimeout(timeout);\n resolve();\n })\n .catch((error) => {\n clearTimeout(timeout);\n reject(error);\n });\n });\n }\n\n async put(item: T): Promise<void> {\n await this.queue.put(item);\n }\n}\n\nclass BlockingQueue<T> {\n private queue: T[] = [];\n private readonly capacity: number;\n\n constructor(capacity: number) {\n if (capacity <= 0) {\n throw new Error('Capacity must be greater than 0');\n }\n this.capacity = capacity;\n }\n\n async put(item: T): Promise<void> {\n while (this.queue.length >= this.capacity) {\n await new Promise((resolve) => setTimeout(resolve, 10));\n }\n this.queue.push(item);\n }\n\n async takeBatch(batchSize: number): Promise<T[]> {\n while (this.queue.length === 0) {\n await new Promise((resolve) => setTimeout(resolve, 10));\n }\n return this.queue.splice(0, batchSize);\n }\n\n size(): number {\n return this.queue.length;\n }\n\n isEmpty(): boolean {\n return this.queue.length === 0;\n }\n\n peek(): T | undefined {\n return this.queue[0];\n }\n}\n","import {\n ApiResponse,\n PollRequestData,\n StepQueueNameData,\n StepStatus,\n UnmeshedWorkerConfig,\n WorkRequest,\n WorkResponse,\n} from '../types';\nimport { UnmeshedApiClient } from './unmeshedApiClient';\nimport { QueuedWorker } from './queuedWorker';\nimport os from 'os';\n\nasync function registerPolling(apiClient: UnmeshedApiClient, data: StepQueueNameData[]) {\n const attempt = async (): Promise<any> => {\n try {\n const response = await apiClient.put(`/api/clients/register`, {\n data: data,\n });\n console.log('Successfully renewed registration for workers', data);\n return response.data;\n } catch {\n console.error('An error occurred during polling registration. Retrying in 3 seconds...');\n await new Promise((resolve) => setTimeout(resolve, 3000));\n return attempt();\n }\n };\n\n return attempt();\n}\n\nasync function pollWorker(apiClient: UnmeshedApiClient, data: PollRequestData[]): Promise<WorkRequest[]> {\n try {\n const response: ApiResponse<WorkRequest[]> = await apiClient.post(`/api/clients/poll`, {\n data: data,\n config: { headers: { UNMESHED_HOST_NAME: getHostName() } },\n });\n if (response.data && response.data.length > 0) {\n console.log(`Received ${response.data.length} work requests`);\n }\n return response.data;\n } catch (error) {\n console.error('Error occurred during worker polling', error);\n return [];\n }\n}\n\nasync function postWorkerResponse(apiClient: UnmeshedApiClient, workResponses: WorkResponse[]) {\n try {\n if (workResponses.length > 0) {\n const grouped: Record<StepStatus, number[]> = workResponses.reduce(\n (acc, response) => {\n if (!acc[response.status]) {\n acc[response.status] = [];\n }\n acc[response.status].push(response.stepId);\n return acc;\n },\n {} as Record<StepStatus, number[]>\n );\n const resultString = Object.entries(grouped)\n .map(([status, stepIds]) => `${status}: [${stepIds.join(', ')}]`)\n .join(', ');\n console.log(`Posting response of size: ${workResponses.length} including ids: ${resultString}`);\n const response = await apiClient.post(`/api/clients/bulkResults`, {\n data: workResponses,\n });\n return response.data;\n }\n return {};\n } catch (error) {\n console.log('Error:', error);\n }\n}\n\nasync function runPollWithTimeout(task: Promise<WorkRequest[]>, timeoutMs: number): Promise<WorkRequest[]> {\n return new Promise((resolve, reject) => {\n const timeout = setTimeout(() => reject(new Error('Task timed out')), timeoutMs);\n task\n .then((workRequests) => {\n clearTimeout(timeout);\n resolve(workRequests);\n })\n .catch((error) => {\n clearTimeout(timeout);\n reject(error);\n });\n });\n}\n\nexport const continuePolling: { value: boolean } = {\n value: true,\n};\n\nexport async function pollForWorkers(apiClient: UnmeshedApiClient, workers: UnmeshedWorkerConfig[]) {\n const queuedWorker: QueuedWorker<WorkResponse> = new QueuedWorker<WorkResponse>(\n 100000,\n apiClient.config.responsePollInterval,\n apiClient.config.responseBatchSize,\n async (batchWork: WorkResponse[]) => {\n await postWorkerResponse(apiClient, batchWork);\n },\n apiClient.config.responsePollTimeout\n );\n\n const registerPollingData = workers.map((worker) => {\n return {\n orgId: 0,\n namespace: worker.namespace,\n stepType: 'WORKER',\n name: worker.name,\n } as StepQueueNameData;\n });\n\n await registerPolling(apiClient, registerPollingData);\n\n const pollWorkerData = workers.map((worker) => {\n return {\n stepQueueNameData: {\n orgId: 0,\n namespace: worker.namespace,\n stepType: 'WORKER',\n name: worker.name,\n },\n size: worker.maxInProgress,\n } as PollRequestData;\n });\n\n let errorCount = 0;\n // noinspection InfiniteLoopJS\n while (continuePolling.value) {\n try {\n const workRequests: WorkRequest[] = await runPollWithTimeout(\n pollWorker(apiClient, pollWorkerData),\n apiClient.config.pollTimeout\n );\n for (const polledWorker of workRequests) {\n const associatedWorker: UnmeshedWorkerConfig | undefined = workers.find(\n (worker) => worker.name === polledWorker.stepName && worker.namespace === polledWorker.stepNamespace\n );\n\n let workerResponse: WorkResponse = {\n processId: polledWorker.processId,\n stepId: polledWorker.stepId,\n stepExecutionId: polledWorker.stepExecutionId,\n runCount: polledWorker.runCount,\n output: {},\n status: StepStatus.RUNNING,\n rescheduleAfterSeconds: null,\n startedAt: new Date().getTime(),\n };\n\n if (!associatedWorker) {\n workerResponse = {\n ...workerResponse,\n output: {\n error: `No worker found for ${polledWorker.stepName} ${polledWorker.stepNamespace}`,\n },\n status: StepStatus.TIMED_OUT,\n };\n await queuedWorker.put(workerResponse);\n continue;\n }\n\n const TIMEOUT = apiClient.config.apiWorkerTimeout;\n\n const timeoutPromise = new Promise((_, reject) => {\n setTimeout(() => reject(new Error('Timed out')), TIMEOUT);\n });\n\n try {\n console.log(\n `Starting work ${polledWorker.processId} : ${polledWorker.stepId} : ${polledWorker.stepName} : ${polledWorker.stepRef}`\n );\n const result = await Promise.race([associatedWorker.worker(polledWorker.inputParam), timeoutPromise]);\n\n workerResponse = {\n ...workerResponse,\n output: {\n ...result,\n __workCompletedAt: new Date().getTime(),\n },\n status: StepStatus.COMPLETED,\n };\n } catch (error: unknown) {\n const err = error as Error;\n if (err.message && err.message === 'Timed out') {\n workerResponse = {\n ...workerResponse,\n output: {\n error: `${err.message} based on work timeout settings in worker - ${apiClient.config.apiWorkerTimeout} ms`,\n },\n status: StepStatus.TIMED_OUT,\n };\n } else {\n workerResponse = {\n ...workerResponse,\n output: {\n error: safeStringifyError(err),\n },\n status: StepStatus.FAILED,\n };\n console.error('Error:', err.message);\n }\n }\n await queuedWorker.put(workerResponse);\n }\n await new Promise((resolve) => setTimeout(resolve, apiClient.config.pollInterval));\n } catch (error) {\n errorCount++;\n console.error(`Error processing batch - error count : ${errorCount} - `, error);\n await new Promise((resolve) => setTimeout(resolve, 1000));\n }\n }\n}\n\nfunction safeStringifyError(error: Error) {\n try {\n if (error instanceof Error) {\n const plainError = {\n ...error,\n name: error.name,\n message: error.message,\n stack: error.stack,\n };\n return JSON.stringify(plainError);\n }\n return JSON.stringify(error);\n } catch (stringifyError: unknown) {\n if (stringifyError instanceof Error) {\n return `Error stringification failed: ${stringifyError.message}`;\n }\n return 'Error stringification failed: An unknown error occurred during stringification.';\n }\n}\n\nexport async function startPollingWorkers(\n apiClient: UnmeshedApiClient,\n workers: UnmeshedWorkerConfig[],\n intervalMs: number = 5000\n) {\n async function pollCycle() {\n try {\n await pollForWorkers(apiClient, workers);\n } catch (error) {\n console.error('Error during worker polling:', error);\n }\n\n setTimeout(pollCycle, intervalMs);\n }\n\n await pollCycle();\n}\n\nexport function getHostName(): string {\n const unmeshedHostName = process.env.UNMESHED_HOST_NAME;\n if (unmeshedHostName && unmeshedHostName.trim() !== '') {\n return unmeshedHostName.trim();\n }\n\n const hostNameEnv = process.env.HOSTNAME;\n if (hostNameEnv && hostNameEnv.trim() !== '') {\n return hostNameEnv.trim();\n }\n\n const computerNameEnv = process.env.COMPUTERNAME;\n if (computerNameEnv && computerNameEnv.trim() !== '') {\n return computerNameEnv.trim();\n }\n\n try {\n const host = os.hostname();\n if (host && host.trim() !== '') {\n return host.trim();\n }\n } catch {\n // ignore\n }\n\n return '-';\n}\n","import {\n ApiCallType,\n ProcessActionResponseData,\n ProcessData,\n ProcessDefinitionData,\n ProcessDefinitionDeleteRequest,\n ProcessDefinitionDetails,\n ProcessDefinitionsDetail,\n ProcessRequestData,\n ProcessSearchRequest,\n StepData,\n} from '../types';\nimport { isAxiosError } from 'axios';\nimport { UnmeshedApiClient } from './unmeshedApiClient';\n\nconst PROCESS_PREFIX = 'api/process';\n\nexport const runProcessSync = async (\n apiClient: UnmeshedApiClient,\n ProcessRequestData: ProcessRequestData\n): Promise<ProcessData> => {\n try {\n const response = await apiClient.post(`${PROCESS_PREFIX}/runSync`, {\n data: ProcessRequestData,\n params: {\n clientId: apiClient.getClientId(),\n },\n });\n console.log('Response:', response);\n return response.data;\n } catch (error) {\n console.error('Some error occurred running process request : ', error);\n throw error;\n }\n};\n\nexport const runProcessAsync = async (\n apiClient: UnmeshedApiClient,\n ProcessRequestData: ProcessRequestData\n): Promise<ProcessData> => {\n try {\n const response = await apiClient.post(`${PROCESS_PREFIX}/runAsync`, {\n data: ProcessRequestData,\n params: {\n clientId: apiClient.getClientId(),\n },\n });\n console.log('Response:', response);\n return response.data;\n } catch (error) {\n console.error('Some error occurred running process request : ', error);\n throw error;\n }\n};\n\nexport const getProcessData = async (\n apiClient: UnmeshedApiClient,\n processId: number,\n includeSteps: boolean = false\n): Promise<ProcessData> => {\n if (!processId) {\n throw new Error('Process ID cannot be null');\n }\n try {\n const response = await apiClient.get<ProcessData>(`${PROCESS_PREFIX}/context/${processId}`, { includeSteps });\n return response.data;\n } catch (error) {\n console.error('Error occurred while fetching process record: ', error);\n throw error;\n }\n};\n\nexport const getStepData = async (apiClient: UnmeshedApiClient, stepId: number): Promise<StepData> => {\n if (!stepId) {\n throw new Error('Step ID cannot be null or undefined');\n }\n try {\n const response = await apiClient.get<StepData>(`${PROCESS_PREFIX}/stepContext/${stepId}`);\n return response.data;\n } catch (error) {\n console.log('Error occurred while getStepData: ', error);\n throw error;\n }\n};\n\nexport const bulkTerminate = async (\n apiClient: UnmeshedApiClient,\n processIds: number[],\n reason?: string\n): Promise<ProcessActionResponseData> => {\n try {\n const response = await apiClient.post(`${PROCESS_PREFIX}/bulkTerminate`, {\n params: { reason },\n data: processIds,\n });\n return response.data as ProcessActionResponseData;\n } catch (error) {\n const err = error as Error;\n throw new Error(`Error occurred while terminating processes: ${err.message || error}`);\n }\n};\n\nexport const bulkResume = async (\n apiClient: UnmeshedApiClient,\n processIds: number[]\n): Promise<ProcessActionResponseData> => {\n try {\n const response = await apiClient.post(`${PROCESS_PREFIX}/bulkResume`, {\n data: processIds,\n });\n return response.data as ProcessActionResponseData;\n } catch (error) {\n const err = error as Error;\n throw new Error(`Error occurred while resuming processes: ${err.message || error}`);\n }\n};\n\nexport const bulkReviewed = async (\n apiClient: UnmeshedApiClient,\n processIds: number[],\n reason?: string\n): Promise<ProcessActionResponseData> => {\n try {\n const response = await apiClient.post(`${PROCESS_PREFIX}/bulkReviewed`, {\n data: processIds,\n params: { reason },\n });\n return response.data as ProcessActionResponseData;\n } catch (error) {\n const err = error as Error;\n throw new Error(`Error occurred while marking processes as reviewed: ${err.message || error}`);\n }\n};\n\nexport const rerun = async (\n apiClient: UnmeshedApiClient,\n processId: number,\n version?: number\n): Promise<ProcessData> => {\n const params: Record<string, any> = {\n processId,\n };\n\n if (version !== undefined) {\n params['version'] = version;\n }\n\n try {\n const response = await apiClient.post(`${PROCESS_PREFIX}/rerun`, {\n params,\n });\n\n return response.data as ProcessData;\n } catch (error) {\n if (isAxiosError(error)) {\n throw new Error(`HTTP request error during rerun process: ${error.response?.status} - ${error.response?.data}`);\n } else {\n const err = error as Error;\n throw new Error(`Unexpected error during rerun process: ${err.message || err}`);\n }\n }\n};\n\nexport const searchProcessExecutions = async (apiClient: UnmeshedApiClient, params: ProcessSearchRequest) => {\n const body: Record<string, any> = {};\n\n if (params.startTimeEpoch) body.startTimeEpoch = params.startTimeEpoch;\n if (params.endTimeEpoch) body.endTimeEpoch = params.endTimeEpoch;\n\n if (params.namespace) body.namespace = params.namespace;\n if (params.names?.length) body.names = params.names;\n if (params.processIds?.length) body.processIds = params.processIds;\n if (params.correlationIds?.length) body.correlationIds = params.correlationIds;\n if (params.requestIds?.length) body.requestIds = params.requestIds;\n if (params.statuses?.length) body.statuses = params.statuses;\n if (params.triggerTypes?.length) body.triggerTypes = params.triggerTypes;\n\n if (params.tags?.length) body.tags = params.tags;\n\n try {\n const response = await apiClient.post(`api/stats/process/search`, {\n data: body,\n params: {},\n });\n\n return response.data;\n } catch (error) {\n console.error('Error occurred while searching process executions:', error);\n throw error;\n }\n};\n\nexport const invokeApiMappingGet = async (\n apiClient: UnmeshedApiClient,\n endpoint: string,\n id: string,\n correlationId: string,\n apiCallType: ApiCallType\n) => {\n try {\n const response = await apiClient.get(`${PROCESS_PREFIX}/api/call/${endpoint}`, {\n id: id,\n correlationId: correlationId,\n apiCallType,\n });\n console.log('Response:', response);\n return response.data;\n } catch (error) {\n console.error('Error occurred while invoking API Mapping GET: ', error);\n throw error;\n }\n};\n\nexport const invokeApiMappingPost = async (\n apiClient: UnmeshedApiClient,\n endpoint: string,\n input: Record<string, any>,\n id: string,\n correlationId: string,\n apiCallType: ApiCallType = ApiCallType.ASYNC\n): Promise<any> => {\n try {\n const response = await apiClient.post(`${PROCESS_PREFIX}/api/call/${endpoint}`, {\n data: input,\n params: {\n id: id,\n correlationId: correlationId,\n apiCallType,\n },\n });\n\n return response.data;\n } catch (error) {\n console.error('Error occurred while invoking API Mapping POST: ', error);\n throw error;\n }\n};\n\nexport const createProcessDefinition = async (apiClient: UnmeshedApiClient, requestData: ProcessDefinitionData) => {\n try {\n const response = await apiClient.post(`/api/processDefinitions`, {\n data: requestData,\n params: {},\n });\n\n return response.data;\n } catch (error) {\n console.error('Error occurred while creating process definition:', error);\n throw error;\n }\n};\n\nexport const deleteProcessDefinition = async (\n apiClient: UnmeshedApiClient,\n requestData: ProcessDefinitionDeleteRequest\n) => {\n try {\n const response = await apiClient.delete(`/api/processDefinitions`, {\n data: [requestData],\n params: {},\n });\n\n return response.data;\n } catch (error) {\n console.error('Error occurred while deleting process definition:', error);\n throw error;\n }\n};\n\nexport const updateProcessDefinition = async (apiClient: UnmeshedApiClient, requestData: ProcessDefinitionData) => {\n try {\n const response = await apiClient.put(`/api/processDefinitions`, {\n data: requestData,\n params: {},\n });\n\n return response.data;\n } catch (error) {\n console.error('Error occurred while creating process definition:', error);\n throw error;\n }\n};\n\nexport const getProcessDefinitions = async (apiClient: UnmeshedApiClient, namespace?: string) => {\n try {\n const params = namespace ? { namespace } : {};\n const response = await apiClient.get('/api/processDefinitions', params);\n return response.data;\n } catch (error) {\n console.error('Error occurred while fetching process definitions:', error);\n throw error;\n }\n};\n\nexport const getProcessDefinitionVersions = async (apiClient: UnmeshedApiClient, body: ProcessDefinitionsDetail) => {\n try {\n const response = await apiClient.get(`/api/processDefinitions/${body.namespace}/${body.name}/versions`);\n return response.data;\n } catch (error) {\n console.error('Error occurred while fetching process definition: ', error);\n throw error;\n }\n};\n\nexport const getProcessDefinitionByVersion = async (apiClient: UnmeshedApiClient, body: ProcessDefinitionDetails) => {\n if (!body.namespace || !body.name || !body.version) {\n throw new Error('namespace, name, and version are required');\n }\n\n try {\n const params = body.version ? { version: body.version } : {};\n\n const response = await apiClient.get(`/api/processDefinitions/${body.namespace}/${body.name}`, params);\n\n return response.data;\n } catch (error) {\n console.error('Error occurred while fetching process definition:', error);\n throw error;\n }\n};\n","import { RenewRegistrationParams } from '../types';\nimport { UnmeshedApiClient } from './unmeshedApiClient';\n\nexport const renewRegistration = async (\n apiClient: UnmeshedApiClient,\n params: RenewRegistrationParams\n): Promise<string> => {\n try {\n const response = await apiClient.put('/api/clients/register', {\n params: { ...params },\n });\n console.debug('Response from server:', response);\n return response.data;\n } catch (error) {\n console.error('Error occurred during registration renewal:', error);\n throw error;\n }\n};\n","import {\n ApiCallType,\n ProcessDefinitionData,\n ProcessDefinitionDeleteRequest,\n ProcessDefinitionDetails,\n ProcessDefinitionsDetail,\n ProcessRequestData,\n ProcessSearchRequest,\n RenewRegistrationParams,\n UnmeshedClientConfig,\n UnmeshedWorkerConfig,\n} from './types';\nimport { UnmeshedApiClient } from './apis/unmeshedApiClient';\nimport { startPollingWorkers } from './apis/pollerClientImpl';\nimport {\n bulkResume,\n bulkReviewed,\n bulkTerminate,\n getProcessData,\n getStepData,\n invokeApiMappingGet,\n invokeApiMappingPost,\n rerun,\n runProcessAsync,\n runProcessSync,\n searchProcessExecutions,\n createProcessDefinition,\n updateProcessDefinition,\n deleteProcessDefinition,\n getProcessDefinitions,\n getProcessDefinitionVersions,\n getProcessDefinitionByVersion,\n} from './apis/processClientImpl';\nimport { renewRegistration } from './apis/registrationClientImpl';\n\n// noinspection JSUnusedGlobalSymbols\nexport class UnmeshedClient {\n private client: UnmeshedApiClient;\n\n constructor(config: UnmeshedClientConfig) {\n this.client = new UnmeshedApiClient(config);\n }\n\n startPolling(workers: UnmeshedWorkerConfig[]) {\n startPollingWorkers(this.client, workers);\n }\n\n runProcessSync(ProcessRequestData: ProcessRequestData) {\n return runProcessSync(this.client, ProcessRequestData);\n }\n\n runProcessAsync(ProcessRequestData: ProcessRequestData) {\n return runProcessAsync(this.client, ProcessRequestData);\n }\n\n getProcessData(processId: number, includeSteps: boolean) {\n return getProcessData(this.client, processId, includeSteps);\n }\n\n getStepData(stepId: number) {\n return getStepData(this.client, stepId);\n }\n\n bulkTerminate(processIds: number[], reason?: string) {\n return bulkTerminate(this.client, processIds, reason);\n }\n\n bulkResume(processIds: number[]) {\n return bulkResume(this.client, processIds);\n }\n\n bulkReviewed(processIds: number[], reason?: string) {\n return bulkReviewed(this.client, processIds, reason);\n }\n\n reRun(processId: number, version?: number) {\n return rerun(this.client, processId, version);\n }\n\n searchProcessExecution(params: ProcessSearchRequest) {\n return searchProcessExecutions(this.client, params);\n }\n\n invokeApiMappingGet(\n apiClient: UnmeshedApiClient,\n endpoint: string,\n id: string,\n correlationId: string,\n apiCallType: ApiCallType\n ) {\n return invokeApiMappingGet(apiClient, endpoint, id, correlationId, apiCallType);\n }\n\n invokeApiMappingPost(\n endpoint: string,\n input: Record<string, any>,\n id: string,\n correlationId: string,\n apiCallType: ApiCallType\n ) {\n return invokeApiMappingPost(this.client, endpoint, input, id, correlationId, apiCallType);\n }\n\n reNewRegistration(params: RenewRegistrationParams) {\n return renewRegistration(this.client, params);\n }\n\n createProcessDefinition(body: ProcessDefinitionData) {\n return createProcessDefinition(this.client, body);\n }\n updateProcessDefinition(body: ProcessDefinitionData) {\n return updateProcessDefinition(this.client, body);\n }\n deleteProcessDefinition(body: ProcessDefinitionDeleteRequest) {\n return deleteProcessDefinition(this.client, body);\n }\n getProcessDefinitions(namespace?: string) {\n return getProcessDefinitions(this.client, namespace);\n }\n getProcessDefinitionVersions(body: ProcessDefinitionsDetail) {\n return getProcessDefinitionVersions(this.client, body);\n }\n getProcessDefinitionByVersion(body: ProcessDefinitionDetails) {\n return getProcessDefinitionByVersion(this.client, body);\n }\n}\n\nexport * from './types';\n"],"mappings":"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","names":["ApiCallType","WebhookSource","SQAuthUserType","StepType","StepStatus","ProcessStatus","ProcessTriggerType","ProcessType","response","ProcessRequestData","ProcessRequestData"]}
1
+ {"version":3,"sources":["../src/apis/unmeshedApiClient.ts","../src/utils/unmeshedCommonUtils.ts","../src/types/index.ts","../src/apis/queuedWorker.ts","../src/apis/pollerClientImpl.ts","../src/utils/retryDelay.ts","../src/apis/processClientImpl.ts","../src/apis/registrationClientImpl.ts","../src/index.ts"],"sourcesContent":["import axios, { AxiosError, AxiosInstance, AxiosRequestConfig, AxiosResponse, RawAxiosRequestHeaders } from 'axios';\nimport {\n ApiResponse,\n ClientRequestConfig,\n FinalUnmeshedClientConfig,\n HandleRequestConfig,\n QueryParams,\n RequestConfig,\n UnmeshedClientConfig,\n} from '../types';\nimport { UnmeshedCommonUtils } from '../utils/unmeshedCommonUtils';\n\nexport class UnmeshedApiClient {\n private axiosInstance: AxiosInstance | null = null;\n private clientId: string | undefined = undefined;\n private _config: FinalUnmeshedClientConfig;\n\n constructor(unmeshedClientConfig: UnmeshedClientConfig) {\n console.log('Initializing Unmeshed ApiClient');\n\n this._config = createUnmeshedClientConfig(unmeshedClientConfig);\n\n console.log(this._config);\n\n this.clientId = this._config.clientId;\n\n if (!this._config.baseUrl) {\n throw new Error('baseUrl is required');\n }\n\n const baseURL = this._config.port ? `${this._config.baseUrl}:${this._config.port}` : this._config.baseUrl;\n\n this.axiosInstance = axios.create({\n baseURL,\n timeout: this._config.timeout,\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer client.sdk.${this._config.clientId}.${UnmeshedCommonUtils.createSecureHash(\n this._config.authToken\n )}`,\n } as RawAxiosRequestHeaders,\n });\n }\n\n private async handleRequest<T>({\n method,\n endpoint,\n params,\n data,\n config,\n }: HandleRequestConfig): Promise<ApiResponse<T>> {\n if (!this.axiosInstance) {\n throw new Error('ApiClient must be initialized before making requests');\n }\n\n try {\n const response: AxiosResponse<T> = await this.axiosInstance.request<T>({\n method,\n url: endpoint,\n params,\n data,\n ...config,\n } as AxiosRequestConfig);\n\n return {\n data: response.data,\n status: response.status,\n headers: response.headers as Record<string, string>,\n };\n } catch (error) {\n if (axios.isAxiosError(error)) {\n console.error('Request failed:', error.message);\n throw this.handleError(error);\n }\n console.error('Unexpected error:', (error as Error).message);\n throw error;\n }\n }\n\n private handleError(error: AxiosError): Error {\n console.error('Error details:', {\n message: error.message,\n status: error.response?.status,\n data: error.response?.data,\n });\n\n let response = error?.response?.data as ErrorResponse;\n if (response?.errorMessage) {\n return new Error(`${response.errorMessage} [Status code: ${error.response?.status || ''}]`);\n }\n\n return new Error(error.message, { cause: error.response?.data || {} });\n }\n\n public async get<T = any>(endpoint: string, params?: QueryParams, config?: RequestConfig): Promise<ApiResponse<T>> {\n return this.handleRequest<T>({\n method: 'get',\n endpoint: endpoint,\n params: params,\n config: config,\n });\n }\n\n public async post<T = any>(endpoint: string, clientRequestConfig: ClientRequestConfig): Promise<ApiResponse<T>> {\n return this.handleRequest<T>({\n method: 'post',\n endpoint: endpoint,\n ...clientRequestConfig,\n });\n }\n\n public async put<T = any>(endpoint: string, clientRequestConfig: ClientRequestConfig): Promise<ApiResponse<T>> {\n return this.handleRequest<T>({\n method: 'put',\n endpoint: endpoint,\n ...clientRequestConfig,\n });\n }\n\n public async delete<T = any>(endpoint: string, clientRequestConfig: ClientRequestConfig): Promise<ApiResponse<T>> {\n return this.handleRequest<T>({\n method: 'delete',\n endpoint: endpoint,\n ...clientRequestConfig,\n });\n }\n\n public getClientId(): string | undefined {\n return this.clientId;\n }\n\n get config(): FinalUnmeshedClientConfig {\n return this._config;\n }\n}\n\ninterface ErrorResponse {\n errorMessage?: string;\n [key: string]: any; // To allow other unexpected properties\n}\n\nexport function createUnmeshedClientConfig(config: UnmeshedClientConfig): Required<FinalUnmeshedClientConfig> {\n return {\n baseUrl: config.baseUrl,\n clientId: config.clientId,\n authToken: config.authToken,\n port: config.port ?? 443,\n timeout: config.timeout ?? 5000,\n pollInterval: config.pollInterval ?? 100,\n apiWorkerTimeout: config.apiWorkerTimeout ?? 10000,\n pollTimeout: config.pollTimeout ?? 10000,\n responsePollInterval: config.responsePollInterval ?? 100,\n responsePollTimeout: config.responsePollTimeout ?? 10000,\n responseBatchSize: config.responseBatchSize ?? 50,\n };\n}\n","import { createHash } from 'crypto';\n\nexport class UnmeshedCommonUtils {\n static createSecureHash(input: string): string {\n try {\n const hash = createHash('sha256');\n hash.update(input, 'utf8');\n return hash.digest('hex');\n } catch (e) {\n throw new Error('Error creating hash');\n }\n }\n}\n","import { AxiosRequestConfig } from 'axios';\n\nexport enum ApiCallType {\n SYNC = 'SYNC',\n ASYNC = 'ASYNC',\n STREAM = 'STREAM',\n}\n\nexport interface ApiMappingData {\n endpoint: string;\n processDefNamespace: string;\n processDefName: string;\n processDefVersion: number;\n authType: string;\n authClaims: string;\n createdBy: string;\n updatedBy: string;\n created: Date;\n updated: Date;\n}\n\nexport type ApiMappingWebhookData = {\n endpoint: string;\n name: string;\n uniqueId: string;\n urlSecret: string;\n description: string;\n userIdentifier: string;\n webhookSource: WebhookSource;\n webhookSourceConfig: Record<string, string>;\n expiryDate: Date;\n userType: SQAuthUserType;\n createdBy: string;\n updatedBy: string;\n created: Date;\n updated: Date;\n};\n\nexport enum WebhookSource {\n MS_TEAMS = 'MS_TEAMS',\n NOT_DEFINED = 'NOT_DEFINED',\n}\n\nexport enum SQAuthUserType {\n USER = 'USER',\n API = 'API',\n INTERNAL = 'INTERNAL',\n}\n\nexport enum StepType {\n LIST = 'LIST',\n HTTP = 'HTTP',\n WORKER = 'WORKER',\n SWITCH = 'SWITCH',\n PARALLEL = 'PARALLEL',\n FAIL = 'FAIL',\n PYTHON = 'PYTHON',\n JAVASCRIPT = 'JAVASCRIPT',\n JQ = 'JQ',\n SLACK = 'SLACK',\n GRAPHQL = 'GRAPHQL',\n WAIT = 'WAIT',\n BUILTIN = 'BUILTIN',\n NOOP = 'NOOP',\n AI_AGENT = 'AI_AGENT',\n EXIT = 'EXIT',\n DEPENDSON = 'DEPENDSON',\n PERSISTED_STATE = 'PERSISTED_STATE',\n UPDATE_STEP = 'UPDATE_STEP',\n INTEGRATION = 'INTEGRATION',\n FOREACH = 'FOREACH',\n WHILE = 'WHILE',\n SUB_PROCESS = 'SUB_PROCESS',\n FLOW_GATEWAY = 'FLOW_GATEWAY',\n DECISION_ENGINE = 'DECISION_ENGINE',\n SQLITE = 'SQLITE',\n MANAGED = 'MANAGED',\n}\n\nexport enum StepStatus {\n PENDING = 'PENDING',\n SCHEDULED = 'SCHEDULED',\n RUNNING = 'RUNNING',\n PAUSED = 'PAUSED',\n COMPLETED = 'COMPLETED',\n FAILED = 'FAILED',\n TIMED_OUT = 'TIMED_OUT',\n SKIPPED = 'SKIPPED',\n CANCELLED = 'CANCELLED',\n}\n\nexport enum ProcessStatus {\n RUNNING = 'RUNNING',\n COMPLETED = 'COMPLETED',\n FAILED = 'FAILED',\n TIMED_OUT = 'TIMED_OUT',\n CANCELLED = 'CANCELLED',\n TERMINATED = 'TERMINATED',\n REVIEWED = 'REVIEWED',\n}\n\nexport enum ProcessTriggerType {\n MANUAL = 'MANUAL',\n SCHEDULED = 'SCHEDULED',\n API_MAPPING = 'API_MAPPING',\n WEBHOOK = 'WEBHOOK',\n API = 'API',\n SUB_PROCESS = 'SUB_PROCESS',\n}\n\nexport enum ProcessType {\n STANDARD = 'STANDARD',\n DYNAMIC = 'DYNAMIC',\n API_ORCHESTRATION = 'API_ORCHESTRATION',\n INTERNAL = 'INTERNAL',\n}\n\nexport type ClientProfileData = {\n clientId: string;\n ipAddress: string;\n friendlyName: string;\n userIdentifier: string;\n stepQueueNames: StepQueueNameData[];\n createdBy: string;\n updatedBy: string;\n created: Date;\n updated: Date;\n expiryDate: Date;\n};\n\nexport type FullClientProfileData = {\n clientId: string;\n ipAddress: string;\n friendlyName: string;\n userIdentifier: string;\n stepQueueNames: StepQueueNameData[];\n createdBy: string;\n updatedBy: string;\n created: Date;\n updated: Date;\n expiryDate: Date;\n tokenValue: string;\n};\n\nexport type StepQueueNameData = {\n orgId: number;\n namespace: string;\n stepType: StepType;\n name: string;\n};\n\nexport type ProcessActionResponseData = {\n count: number;\n details: ProcessActionResponseDetailData[];\n};\n\nexport type ProcessActionResponseDetailData = {\n id: string;\n message: string;\n error: string;\n};\n\nexport type ProcessData = {\n processId: number;\n processType: ProcessType;\n triggerType: ProcessTriggerType;\n namespace: string;\n name: string;\n version: number | null;\n historyId: number | null;\n requestId: string;\n correlationId: string;\n status: ProcessStatus;\n input: Record<string, unknown>;\n output: Record<string, unknown>;\n authClaims: Record<string, unknown>;\n stepIdCount: number | null;\n shardName: string;\n shardInstanceId: number | null;\n steps: StepId[];\n stepRecords: StepData[];\n created: number;\n updated: number;\n createdBy: string;\n};\n\nexport type StepData = {\n id: number;\n processId: number;\n ref: string;\n parentId: number | null;\n parentRef: string | null;\n namespace: string;\n name: string;\n type: StepType;\n stepDefinitionHistoryId: number | null;\n status: StepStatus;\n input: Record<string, unknown>;\n output: Record<string, unknown>;\n workerId: string;\n start: number;\n schedule: number;\n priority: number;\n updated: number;\n optional: boolean;\n executionList: StepExecutionData[];\n};\n\nexport type StepExecutionData = {\n id: number;\n scheduled: number;\n polled: number;\n start: number;\n updated: number;\n executor: string;\n ref: string;\n runs: number;\n output: Record<string, unknown>;\n};\n\nexport type StepId = {\n id: number;\n processId: number;\n ref: string;\n};\n\nexport type TagValue = {\n name: string;\n value: string;\n};\n\nexport type ProcessRequestData = {\n name: string;\n namespace: string;\n version: number | null;\n requestId?: string;\n correlationId?: string;\n input?: Record<string, unknown>;\n};\n\nexport type ProcessSearchRequest = {\n startTimeEpoch: number;\n endTimeEpoch?: number | null;\n namespace?: string;\n processTypes?: ProcessType[];\n triggerTypes?: ProcessTriggerType[];\n names?: string[];\n processIds?: number[];\n correlationIds?: string[];\n requestIds?: string[];\n statuses?: ProcessStatus[];\n limit?: number;\n offset?: number;\n tags?: TagValue[];\n};\n\nexport interface ExecutionWait {\n result: { waitUntil: number };\n logs: [];\n}\n\nexport interface ExecutionTimelineType {\n id: number;\n executor: string;\n output: ExecutionWait | null;\n polled: number;\n scheduled: number;\n start: number;\n updated: number;\n ref?: string | null;\n}\n\nexport interface ExecutionDetails extends ExecutionTimelineType {\n stepRef: string;\n}\n\nexport interface AuditInfo {\n createdBy: string;\n updatedBy: string;\n created: number;\n updated: number;\n}\n\nexport interface Step extends NewStepData, AuditInfo, Object {\n executionList?: ExecutionDetails[];\n parentRef?: string;\n status?: string;\n completed?: number;\n children: Step[];\n executionCount?: number;\n triggerType?: string;\n}\nexport interface StepConfiguration {\n errorPolicyName?: string;\n useCache?: boolean;\n stream?: boolean;\n cacheKey?: string;\n cacheTimeoutSeconds?: number;\n jqTransformer?: string;\n rateLimitWindowSeconds?: number | null;\n rateLimitMaxRequests?: number | null;\n preExecutionScript?: string;\n scriptLanguage?: 'JAVASCRIPT' | 'PYTHON';\n constructInputFromScript?: boolean;\n additionalRefs?: string[];\n}\n\nexport interface NewStepData {\n type: StepType;\n name: string;\n namespace: string;\n ref: string;\n optional?: boolean;\n configuration?: StepConfiguration;\n children?: Step[];\n input?: Record<string, any>;\n output?: Record<string, any>;\n}\n\nexport type ProcessDefinitionDeleteRequest = {\n namespace: string;\n name: string;\n type: string;\n version: number;\n steps?: Step[];\n};\n\nexport interface ProcessRequest {\n name?: string;\n namespace?: string;\n version?: number | null;\n id?: string | null;\n correlationId?: string | null;\n input?: Record<string, any> | null;\n testRun?: boolean | null;\n}\nexport interface ProcessConfiguration {\n completionTimeout?: number;\n onTimeoutProcess?: ProcessRequest;\n onFailProcess?: ProcessRequest | null;\n onCompleteProcess?: ProcessRequest | null;\n onCancelProcess?: ProcessRequest;\n}\n\nexport interface ProcessDefinitionData {\n namespace: string;\n name: string;\n version?: number;\n type: ProcessType | string;\n description?: string;\n configuration?: ProcessConfiguration;\n steps: Step[];\n defaultInput?: Record<string, any>;\n defaultOutput?: Record<string, any>;\n outputMapping?: Record<string, any>;\n tags?: TagValue[];\n}\nexport interface ProcessDefinitionsDetail {\n name: string;\n namespace: string;\n}\n\nexport interface ProcessDefinitionDetails {\n name: string;\n namespace: string;\n version?: number;\n}\n\nexport interface ExecutionWait {\n result: { waitUntil: number };\n logs: [];\n}\n\nexport interface ExecutionTimelineType {\n id: number;\n executor: string;\n output: ExecutionWait | null;\n polled: number;\n scheduled: number;\n start: number;\n updated: number;\n ref?: string | null;\n}\n\nexport interface ExecutionDetails extends ExecutionTimelineType {\n stepRef: string;\n}\n\nexport interface AuditInfo {\n createdBy: string;\n updatedBy: string;\n created: number;\n updated: number;\n}\n\nexport interface Step extends NewStepData, AuditInfo, Object {\n executionList?: ExecutionDetails[];\n parentRef?: string;\n status?: string;\n completed?: number;\n children: Step[];\n executionCount?: number;\n triggerType?: string;\n}\nexport interface StepConfiguration {\n errorPolicyName?: string;\n useCache?: boolean;\n stream?: boolean;\n cacheKey?: string;\n cacheTimeoutSeconds?: number;\n jqTransformer?: string;\n rateLimitWindowSeconds?: number | null;\n rateLimitMaxRequests?: number | null;\n preExecutionScript?: string;\n scriptLanguage?: 'JAVASCRIPT' | 'PYTHON';\n constructInputFromScript?: boolean;\n additionalRefs?: string[];\n streamAllStatuses?: boolean;\n}\n\nexport interface NewStepData {\n type: StepType;\n name: string;\n namespace: string;\n ref: string;\n optional?: boolean;\n configuration?: StepConfiguration;\n children?: Step[];\n input?: Record<string, any>;\n output?: Record<string, any>;\n}\n\nexport type StepSize = {\n stepQueueNameData: StepQueueNameData;\n size: number | null;\n};\n\nexport type ClientSubmitResult = {\n processId: number;\n stepId: number;\n errorMessage: string | null;\n httpStatusCode: number | null;\n};\n\nexport type WorkRequest = {\n processId: number;\n stepId: number;\n stepExecutionId: number;\n runCount: number;\n stepName: string;\n stepNamespace: string;\n stepRef: string;\n inputParam: Record<string, unknown>;\n isOptional: boolean;\n polled: number;\n scheduled: number;\n updated: number;\n priority: number;\n};\n\nexport type WorkResponse = {\n processId: number;\n stepId: number;\n stepExecutionId: number;\n runCount: number;\n output: Record<string, unknown>;\n status: StepStatus;\n rescheduleAfterSeconds: number | null;\n startedAt: number;\n};\n\nexport type WorkResult = {\n output: unknown;\n taskExecutionId: string;\n startTime: number;\n endTime: number;\n workRequest: WorkRequest;\n};\n\nexport interface FinalUnmeshedClientConfig {\n baseUrl: string;\n clientId: string;\n authToken: string;\n port: string | number;\n timeout: number;\n apiWorkerTimeout: number;\n pollTimeout: number;\n pollInterval: number;\n responsePollInterval: number;\n responsePollTimeout: number;\n responseBatchSize: number;\n}\n\nexport interface UnmeshedClientConfig {\n baseUrl: string;\n clientId: string;\n authToken: string;\n port: string | number;\n timeout?: number;\n apiWorkerTimeout?: number;\n pollTimeout?: number;\n pollInterval?: number;\n responsePollInterval?: number;\n responsePollTimeout?: number;\n responseBatchSize?: number;\n}\n\nexport interface ApiResponse<T = any> {\n data: T;\n status: number;\n headers: Record<string, string>;\n}\n\nexport interface ApiError extends Error {\n status?: number;\n response?: {\n data?: any;\n status: number;\n headers: Record<string, string>;\n };\n}\n\nexport interface QueryParams {\n [key: string]: string | number | boolean | undefined;\n}\n\nexport interface RequestConfig extends Omit<AxiosRequestConfig, 'baseURL' | 'url' | 'method'> {\n headers?: Record<string, string>;\n}\n\nexport interface HandleRequestConfig {\n method: 'get' | 'post' | 'put' | 'delete';\n endpoint: string;\n params?: QueryParams;\n data?: Record<string, unknown>;\n config?: RequestConfig;\n}\n\nexport interface ClientRequestConfig {\n params?: QueryParams;\n data?: any;\n config?: RequestConfig;\n}\n\ninterface UnmeshedWorker {\n (input: Record<string, any>): Promise<any>;\n}\n\nexport interface UnmeshedWorkerConfig {\n worker: UnmeshedWorker;\n namespace: string;\n name: string;\n maxInProgress: number;\n}\n\nexport interface PollRequestData {\n stepQueueNameData: StepQueueNameData;\n size: number;\n}\nexport interface RenewRegistrationParams {\n friendlyName: string;\n}\n","export type WorkerFunction<T> = (items: T[]) => Promise<void>;\n\nexport class QueuedWorker<T> {\n private readonly queue: BlockingQueue<T>;\n private readonly pollIntervalMs: number;\n private readonly batchSize: number;\n private readonly workerFn: WorkerFunction<T>;\n private readonly timeoutMs: number;\n\n constructor(\n capacity: number,\n pollIntervalMs: number,\n batchSize: number,\n workerFn: WorkerFunction<T>,\n timeoutMs: number\n ) {\n this.queue = new BlockingQueue<T>(capacity);\n this.pollIntervalMs = pollIntervalMs;\n this.batchSize = batchSize;\n this.workerFn = workerFn;\n this.timeoutMs = timeoutMs;\n\n console.log(\n `Configured queued worker with ${pollIntervalMs} ms interval and batch size of ${batchSize} and a timeout of ${timeoutMs} ms`\n );\n // noinspection JSIgnoredPromiseFromCall\n this.start();\n }\n\n async start(): Promise<void> {\n let errorCount = 0;\n // noinspection InfiniteLoopJS\n while (true) {\n try {\n const batch = await this.queue.takeBatch(this.batchSize);\n if (batch.length > 0) {\n console.log(`Batch work ${batch.length} received`);\n await this.runWithTimeout(this.workerFn(batch), this.timeoutMs);\n }\n } catch (error) {\n errorCount++;\n console.error(`Error processing batch - error count : ${errorCount} - `, error);\n await new Promise((resolve) => setTimeout(resolve, 1000));\n }\n await new Promise((resolve) => setTimeout(resolve, this.pollIntervalMs));\n }\n }\n\n private async runWithTimeout(task: Promise<void>, timeoutMs: number): Promise<void> {\n return new Promise((resolve, reject) => {\n const timeout = setTimeout(() => reject(new Error('Task timed out')), timeoutMs);\n task\n .then(() => {\n clearTimeout(timeout);\n resolve();\n })\n .catch((error) => {\n clearTimeout(timeout);\n reject(error);\n });\n });\n }\n\n async put(item: T): Promise<void> {\n await this.queue.put(item);\n }\n}\n\nclass BlockingQueue<T> {\n private queue: T[] = [];\n private readonly capacity: number;\n\n constructor(capacity: number) {\n if (capacity <= 0) {\n throw new Error('Capacity must be greater than 0');\n }\n this.capacity = capacity;\n }\n\n async put(item: T): Promise<void> {\n while (this.queue.length >= this.capacity) {\n await new Promise((resolve) => setTimeout(resolve, 10));\n }\n this.queue.push(item);\n }\n\n async takeBatch(batchSize: number): Promise<T[]> {\n while (this.queue.length === 0) {\n await new Promise((resolve) => setTimeout(resolve, 10));\n }\n return this.queue.splice(0, batchSize);\n }\n\n size(): number {\n return this.queue.length;\n }\n\n isEmpty(): boolean {\n return this.queue.length === 0;\n }\n\n peek(): T | undefined {\n return this.queue[0];\n }\n}\n","import {\n ApiResponse,\n PollRequestData,\n StepQueueNameData,\n StepStatus,\n UnmeshedWorkerConfig,\n WorkRequest,\n WorkResponse,\n} from '../types';\nimport { UnmeshedApiClient } from './unmeshedApiClient';\nimport { QueuedWorker } from './queuedWorker';\nimport os from 'os';\nimport { getRandomDelayMs, wait } from '../utils/retryDelay';\n\nconst REGISTRATION_RETRY_DELAY_MAX_SECONDS = 10;\nconst POLL_RETRY_DELAY_MAX_SECONDS = 30;\n\nasync function registerPolling(apiClient: UnmeshedApiClient, data: StepQueueNameData[]) {\n const attempt = async (): Promise<any> => {\n try {\n const response = await apiClient.put(`/api/clients/register`, {\n data: data,\n });\n console.log('Successfully renewed registration for workers', data);\n return response.data;\n } catch {\n const delayMs = getRandomDelayMs(REGISTRATION_RETRY_DELAY_MAX_SECONDS);\n console.error(`An error occurred during polling registration. Retrying in ${delayMs / 1000} seconds...`);\n await wait(delayMs);\n return attempt();\n }\n };\n\n return attempt();\n}\n\nasync function pollWorker(apiClient: UnmeshedApiClient, data: PollRequestData[]): Promise<WorkRequest[]> {\n try {\n const response: ApiResponse<WorkRequest[]> = await apiClient.post(`/api/clients/poll`, {\n data: data,\n config: { headers: { UNMESHED_HOST_NAME: getHostName() } },\n });\n if (response.data && response.data.length > 0) {\n console.log(`Received ${response.data.length} work requests`);\n }\n return response.data;\n } catch (error) {\n console.error('Error occurred during worker polling', error);\n const delayMs = getRandomDelayMs(POLL_RETRY_DELAY_MAX_SECONDS);\n console.error(`Retrying worker polling in ${delayMs / 1000} seconds...`);\n await wait(delayMs);\n return [];\n }\n}\n\nasync function postWorkerResponse(apiClient: UnmeshedApiClient, workResponses: WorkResponse[]) {\n try {\n if (workResponses.length > 0) {\n const grouped: Record<StepStatus, number[]> = workResponses.reduce(\n (acc, response) => {\n if (!acc[response.status]) {\n acc[response.status] = [];\n }\n acc[response.status].push(response.stepId);\n return acc;\n },\n {} as Record<StepStatus, number[]>\n );\n const resultString = Object.entries(grouped)\n .map(([status, stepIds]) => `${status}: [${stepIds.join(', ')}]`)\n .join(', ');\n console.log(`Posting response of size: ${workResponses.length} including ids: ${resultString}`);\n const response = await apiClient.post(`/api/clients/bulkResults`, {\n data: workResponses,\n });\n return response.data;\n }\n return {};\n } catch (error) {\n console.log('Error:', error);\n }\n}\n\nasync function runPollWithTimeout(task: Promise<WorkRequest[]>, timeoutMs: number): Promise<WorkRequest[]> {\n return new Promise((resolve, reject) => {\n const timeout = setTimeout(() => reject(new Error('Task timed out')), timeoutMs);\n task\n .then((workRequests) => {\n clearTimeout(timeout);\n resolve(workRequests);\n })\n .catch((error) => {\n clearTimeout(timeout);\n reject(error);\n });\n });\n}\n\nexport const continuePolling: { value: boolean } = {\n value: true,\n};\n\nexport async function pollForWorkers(apiClient: UnmeshedApiClient, workers: UnmeshedWorkerConfig[]) {\n const queuedWorker: QueuedWorker<WorkResponse> = new QueuedWorker<WorkResponse>(\n 100000,\n apiClient.config.responsePollInterval,\n apiClient.config.responseBatchSize,\n async (batchWork: WorkResponse[]) => {\n await postWorkerResponse(apiClient, batchWork);\n },\n apiClient.config.responsePollTimeout\n );\n\n const registerPollingData = workers.map((worker) => {\n return {\n orgId: 0,\n namespace: worker.namespace,\n stepType: 'WORKER',\n name: worker.name,\n } as StepQueueNameData;\n });\n\n await registerPolling(apiClient, registerPollingData);\n\n const pollWorkerData = workers.map((worker) => {\n return {\n stepQueueNameData: {\n orgId: 0,\n namespace: worker.namespace,\n stepType: 'WORKER',\n name: worker.name,\n },\n size: worker.maxInProgress,\n } as PollRequestData;\n });\n\n let errorCount = 0;\n // noinspection InfiniteLoopJS\n while (continuePolling.value) {\n try {\n const workRequests: WorkRequest[] = await runPollWithTimeout(\n pollWorker(apiClient, pollWorkerData),\n apiClient.config.pollTimeout\n );\n for (const polledWorker of workRequests) {\n const associatedWorker: UnmeshedWorkerConfig | undefined = workers.find(\n (worker) => worker.name === polledWorker.stepName && worker.namespace === polledWorker.stepNamespace\n );\n\n let workerResponse: WorkResponse = {\n processId: polledWorker.processId,\n stepId: polledWorker.stepId,\n stepExecutionId: polledWorker.stepExecutionId,\n runCount: polledWorker.runCount,\n output: {},\n status: StepStatus.RUNNING,\n rescheduleAfterSeconds: null,\n startedAt: new Date().getTime(),\n };\n\n if (!associatedWorker) {\n workerResponse = {\n ...workerResponse,\n output: {\n error: `No worker found for ${polledWorker.stepName} ${polledWorker.stepNamespace}`,\n },\n status: StepStatus.TIMED_OUT,\n };\n await queuedWorker.put(workerResponse);\n continue;\n }\n\n const TIMEOUT = apiClient.config.apiWorkerTimeout;\n\n const timeoutPromise = new Promise((_, reject) => {\n setTimeout(() => reject(new Error('Timed out')), TIMEOUT);\n });\n\n try {\n console.log(\n `Starting work ${polledWorker.processId} : ${polledWorker.stepId} : ${polledWorker.stepName} : ${polledWorker.stepRef}`\n );\n const result = await Promise.race([associatedWorker.worker(polledWorker.inputParam), timeoutPromise]);\n\n workerResponse = {\n ...workerResponse,\n output: {\n ...result,\n __workCompletedAt: new Date().getTime(),\n },\n status: StepStatus.COMPLETED,\n };\n } catch (error: unknown) {\n const err = error as Error;\n if (err.message && err.message === 'Timed out') {\n workerResponse = {\n ...workerResponse,\n output: {\n error: `${err.message} based on work timeout settings in worker - ${apiClient.config.apiWorkerTimeout} ms`,\n },\n status: StepStatus.TIMED_OUT,\n };\n } else {\n workerResponse = {\n ...workerResponse,\n output: {\n error: safeStringifyError(err),\n },\n status: StepStatus.FAILED,\n };\n console.error('Error:', err.message);\n }\n }\n await queuedWorker.put(workerResponse);\n }\n await new Promise((resolve) => setTimeout(resolve, apiClient.config.pollInterval));\n } catch (error) {\n errorCount++;\n console.error(`Error processing batch - error count : ${errorCount} - `, error);\n const delayMs = getRandomDelayMs(POLL_RETRY_DELAY_MAX_SECONDS);\n console.error(`Retrying worker polling in ${delayMs / 1000} seconds...`);\n await wait(delayMs);\n }\n }\n}\n\nfunction safeStringifyError(error: Error) {\n try {\n if (error instanceof Error) {\n const plainError = {\n ...error,\n name: error.name,\n message: error.message,\n stack: error.stack,\n };\n return JSON.stringify(plainError);\n }\n return JSON.stringify(error);\n } catch (stringifyError: unknown) {\n if (stringifyError instanceof Error) {\n return `Error stringification failed: ${stringifyError.message}`;\n }\n return 'Error stringification failed: An unknown error occurred during stringification.';\n }\n}\n\nexport async function startPollingWorkers(\n apiClient: UnmeshedApiClient,\n workers: UnmeshedWorkerConfig[],\n intervalMs: number = 5000\n) {\n async function pollCycle() {\n try {\n await pollForWorkers(apiClient, workers);\n } catch (error) {\n console.error('Error during worker polling:', error);\n }\n\n setTimeout(pollCycle, intervalMs);\n }\n\n await pollCycle();\n}\n\nexport function getHostName(): string {\n const unmeshedHostName = process.env.UNMESHED_HOST_NAME;\n if (unmeshedHostName && unmeshedHostName.trim() !== '') {\n return unmeshedHostName.trim();\n }\n\n const hostNameEnv = process.env.HOSTNAME;\n if (hostNameEnv && hostNameEnv.trim() !== '') {\n return hostNameEnv.trim();\n }\n\n const computerNameEnv = process.env.COMPUTERNAME;\n if (computerNameEnv && computerNameEnv.trim() !== '') {\n return computerNameEnv.trim();\n }\n\n try {\n const host = os.hostname();\n if (host && host.trim() !== '') {\n return host.trim();\n }\n } catch {\n // ignore\n }\n\n return '-';\n}\n","export function getRandomDelayMs(maxSeconds: number, minSeconds: number = 1): number {\n const minimumSeconds = Math.max(1, Math.floor(minSeconds));\n const maximumSeconds = Math.max(minimumSeconds, Math.floor(maxSeconds));\n const delaySeconds = Math.floor(Math.random() * (maximumSeconds - minimumSeconds + 1)) + minimumSeconds;\n\n return delaySeconds * 1000;\n}\n\nexport async function wait(delayMs: number): Promise<void> {\n await new Promise((resolve) => setTimeout(resolve, delayMs));\n}\n","import {\n ApiCallType,\n ProcessActionResponseData,\n ProcessData,\n ProcessDefinitionData,\n ProcessDefinitionDeleteRequest,\n ProcessDefinitionDetails,\n ProcessDefinitionsDetail,\n ProcessRequestData,\n ProcessSearchRequest,\n StepData,\n} from '../types';\nimport { isAxiosError } from 'axios';\nimport { UnmeshedApiClient } from './unmeshedApiClient';\n\nconst PROCESS_PREFIX = 'api/process';\n\nexport const runProcessSync = async (\n apiClient: UnmeshedApiClient,\n ProcessRequestData: ProcessRequestData\n): Promise<ProcessData> => {\n try {\n const response = await apiClient.post(`${PROCESS_PREFIX}/runSync`, {\n data: ProcessRequestData,\n params: {\n clientId: apiClient.getClientId(),\n },\n });\n console.log('Response:', response);\n return response.data;\n } catch (error) {\n console.error('Some error occurred running process request : ', error);\n throw error;\n }\n};\n\nexport const runProcessAsync = async (\n apiClient: UnmeshedApiClient,\n ProcessRequestData: ProcessRequestData\n): Promise<ProcessData> => {\n try {\n const response = await apiClient.post(`${PROCESS_PREFIX}/runAsync`, {\n data: ProcessRequestData,\n params: {\n clientId: apiClient.getClientId(),\n },\n });\n console.log('Response:', response);\n return response.data;\n } catch (error) {\n console.error('Some error occurred running process request : ', error);\n throw error;\n }\n};\n\nexport const getProcessData = async (\n apiClient: UnmeshedApiClient,\n processId: number,\n includeSteps: boolean = false\n): Promise<ProcessData> => {\n if (!processId) {\n throw new Error('Process ID cannot be null');\n }\n try {\n const response = await apiClient.get<ProcessData>(`${PROCESS_PREFIX}/context/${processId}`, { includeSteps });\n return response.data;\n } catch (error) {\n console.error('Error occurred while fetching process record: ', error);\n throw error;\n }\n};\n\nexport const getStepData = async (apiClient: UnmeshedApiClient, stepId: number): Promise<StepData> => {\n if (!stepId) {\n throw new Error('Step ID cannot be null or undefined');\n }\n try {\n const response = await apiClient.get<StepData>(`${PROCESS_PREFIX}/stepContext/${stepId}`);\n return response.data;\n } catch (error) {\n console.log('Error occurred while getStepData: ', error);\n throw error;\n }\n};\n\nexport const bulkTerminate = async (\n apiClient: UnmeshedApiClient,\n processIds: number[],\n reason?: string\n): Promise<ProcessActionResponseData> => {\n try {\n const response = await apiClient.post(`${PROCESS_PREFIX}/bulkTerminate`, {\n params: { reason },\n data: processIds,\n });\n return response.data as ProcessActionResponseData;\n } catch (error) {\n const err = error as Error;\n throw new Error(`Error occurred while terminating processes: ${err.message || error}`);\n }\n};\n\nexport const bulkResume = async (\n apiClient: UnmeshedApiClient,\n processIds: number[]\n): Promise<ProcessActionResponseData> => {\n try {\n const response = await apiClient.post(`${PROCESS_PREFIX}/bulkResume`, {\n data: processIds,\n });\n return response.data as ProcessActionResponseData;\n } catch (error) {\n const err = error as Error;\n throw new Error(`Error occurred while resuming processes: ${err.message || error}`);\n }\n};\n\nexport const bulkReviewed = async (\n apiClient: UnmeshedApiClient,\n processIds: number[],\n reason?: string\n): Promise<ProcessActionResponseData> => {\n try {\n const response = await apiClient.post(`${PROCESS_PREFIX}/bulkReviewed`, {\n data: processIds,\n params: { reason },\n });\n return response.data as ProcessActionResponseData;\n } catch (error) {\n const err = error as Error;\n throw new Error(`Error occurred while marking processes as reviewed: ${err.message || error}`);\n }\n};\n\nexport const rerun = async (\n apiClient: UnmeshedApiClient,\n processId: number,\n version?: number\n): Promise<ProcessData> => {\n const params: Record<string, any> = {\n processId,\n };\n\n if (version !== undefined) {\n params['version'] = version;\n }\n\n try {\n const response = await apiClient.post(`${PROCESS_PREFIX}/rerun`, {\n params,\n });\n\n return response.data as ProcessData;\n } catch (error) {\n if (isAxiosError(error)) {\n throw new Error(`HTTP request error during rerun process: ${error.response?.status} - ${error.response?.data}`);\n } else {\n const err = error as Error;\n throw new Error(`Unexpected error during rerun process: ${err.message || err}`);\n }\n }\n};\n\nexport const searchProcessExecutions = async (apiClient: UnmeshedApiClient, params: ProcessSearchRequest) => {\n const body: Record<string, any> = {};\n\n if (params.startTimeEpoch) body.startTimeEpoch = params.startTimeEpoch;\n if (params.endTimeEpoch) body.endTimeEpoch = params.endTimeEpoch;\n\n if (params.namespace) body.namespace = params.namespace;\n if (params.names?.length) body.names = params.names;\n if (params.processIds?.length) body.processIds = params.processIds;\n if (params.correlationIds?.length) body.correlationIds = params.correlationIds;\n if (params.requestIds?.length) body.requestIds = params.requestIds;\n if (params.statuses?.length) body.statuses = params.statuses;\n if (params.triggerTypes?.length) body.triggerTypes = params.triggerTypes;\n\n if (params.tags?.length) body.tags = params.tags;\n\n try {\n const response = await apiClient.post(`api/stats/process/search`, {\n data: body,\n params: {},\n });\n\n return response.data;\n } catch (error) {\n console.error('Error occurred while searching process executions:', error);\n throw error;\n }\n};\n\nexport const invokeApiMappingGet = async (\n apiClient: UnmeshedApiClient,\n endpoint: string,\n id: string,\n correlationId: string,\n apiCallType: ApiCallType\n) => {\n try {\n const response = await apiClient.get(`${PROCESS_PREFIX}/api/call/${endpoint}`, {\n id: id,\n correlationId: correlationId,\n apiCallType,\n });\n console.log('Response:', response);\n return response.data;\n } catch (error) {\n console.error('Error occurred while invoking API Mapping GET: ', error);\n throw error;\n }\n};\n\nexport const invokeApiMappingPost = async (\n apiClient: UnmeshedApiClient,\n endpoint: string,\n input: Record<string, any>,\n id: string,\n correlationId: string,\n apiCallType: ApiCallType = ApiCallType.ASYNC\n): Promise<any> => {\n try {\n const response = await apiClient.post(`${PROCESS_PREFIX}/api/call/${endpoint}`, {\n data: input,\n params: {\n id: id,\n correlationId: correlationId,\n apiCallType,\n },\n });\n\n return response.data;\n } catch (error) {\n console.error('Error occurred while invoking API Mapping POST: ', error);\n throw error;\n }\n};\n\nexport const createProcessDefinition = async (apiClient: UnmeshedApiClient, requestData: ProcessDefinitionData) => {\n try {\n const response = await apiClient.post(`/api/processDefinitions`, {\n data: requestData,\n params: {},\n });\n\n return response.data;\n } catch (error) {\n console.error('Error occurred while creating process definition:', error);\n throw error;\n }\n};\n\nexport const deleteProcessDefinition = async (\n apiClient: UnmeshedApiClient,\n requestData: ProcessDefinitionDeleteRequest\n) => {\n try {\n const response = await apiClient.delete(`/api/processDefinitions`, {\n data: [requestData],\n params: {},\n });\n\n return response.data;\n } catch (error) {\n console.error('Error occurred while deleting process definition:', error);\n throw error;\n }\n};\n\nexport const updateProcessDefinition = async (apiClient: UnmeshedApiClient, requestData: ProcessDefinitionData) => {\n try {\n const response = await apiClient.put(`/api/processDefinitions`, {\n data: requestData,\n params: {},\n });\n\n return response.data;\n } catch (error) {\n console.error('Error occurred while creating process definition:', error);\n throw error;\n }\n};\n\nexport const getProcessDefinitions = async (apiClient: UnmeshedApiClient, namespace?: string) => {\n try {\n const params = namespace ? { namespace } : {};\n const response = await apiClient.get('/api/processDefinitions', params);\n return response.data;\n } catch (error) {\n console.error('Error occurred while fetching process definitions:', error);\n throw error;\n }\n};\n\nexport const getProcessDefinitionVersions = async (apiClient: UnmeshedApiClient, body: ProcessDefinitionsDetail) => {\n try {\n const response = await apiClient.get(`/api/processDefinitions/${body.namespace}/${body.name}/versions`);\n return response.data;\n } catch (error) {\n console.error('Error occurred while fetching process definition: ', error);\n throw error;\n }\n};\n\nexport const getProcessDefinitionByVersion = async (apiClient: UnmeshedApiClient, body: ProcessDefinitionDetails) => {\n if (!body.namespace || !body.name || !body.version) {\n throw new Error('namespace, name, and version are required');\n }\n\n try {\n const params = body.version ? { version: body.version } : {};\n\n const response = await apiClient.get(`/api/processDefinitions/${body.namespace}/${body.name}`, params);\n\n return response.data;\n } catch (error) {\n console.error('Error occurred while fetching process definition:', error);\n throw error;\n }\n};\n","import { RenewRegistrationParams } from '../types';\nimport { UnmeshedApiClient } from './unmeshedApiClient';\n\nexport const renewRegistration = async (\n apiClient: UnmeshedApiClient,\n params: RenewRegistrationParams\n): Promise<string> => {\n try {\n const response = await apiClient.put('/api/clients/register', {\n params: { ...params },\n });\n console.debug('Response from server:', response);\n return response.data;\n } catch (error) {\n console.error('Error occurred during registration renewal:', error);\n throw error;\n }\n};\n","import {\n ApiCallType,\n ProcessDefinitionData,\n ProcessDefinitionDeleteRequest,\n ProcessDefinitionDetails,\n ProcessDefinitionsDetail,\n ProcessRequestData,\n ProcessSearchRequest,\n RenewRegistrationParams,\n UnmeshedClientConfig,\n UnmeshedWorkerConfig,\n} from './types';\nimport { UnmeshedApiClient } from './apis/unmeshedApiClient';\nimport { startPollingWorkers } from './apis/pollerClientImpl';\nimport {\n bulkResume,\n bulkReviewed,\n bulkTerminate,\n getProcessData,\n getStepData,\n invokeApiMappingGet,\n invokeApiMappingPost,\n rerun,\n runProcessAsync,\n runProcessSync,\n searchProcessExecutions,\n createProcessDefinition,\n updateProcessDefinition,\n deleteProcessDefinition,\n getProcessDefinitions,\n getProcessDefinitionVersions,\n getProcessDefinitionByVersion,\n} from './apis/processClientImpl';\nimport { renewRegistration } from './apis/registrationClientImpl';\n\n// noinspection JSUnusedGlobalSymbols\nexport class UnmeshedClient {\n private client: UnmeshedApiClient;\n\n constructor(config: UnmeshedClientConfig) {\n this.client = new UnmeshedApiClient(config);\n }\n\n startPolling(workers: UnmeshedWorkerConfig[]) {\n startPollingWorkers(this.client, workers);\n }\n\n runProcessSync(ProcessRequestData: ProcessRequestData) {\n return runProcessSync(this.client, ProcessRequestData);\n }\n\n runProcessAsync(ProcessRequestData: ProcessRequestData) {\n return runProcessAsync(this.client, ProcessRequestData);\n }\n\n getProcessData(processId: number, includeSteps: boolean) {\n return getProcessData(this.client, processId, includeSteps);\n }\n\n getStepData(stepId: number) {\n return getStepData(this.client, stepId);\n }\n\n bulkTerminate(processIds: number[], reason?: string) {\n return bulkTerminate(this.client, processIds, reason);\n }\n\n bulkResume(processIds: number[]) {\n return bulkResume(this.client, processIds);\n }\n\n bulkReviewed(processIds: number[], reason?: string) {\n return bulkReviewed(this.client, processIds, reason);\n }\n\n reRun(processId: number, version?: number) {\n return rerun(this.client, processId, version);\n }\n\n searchProcessExecution(params: ProcessSearchRequest) {\n return searchProcessExecutions(this.client, params);\n }\n\n invokeApiMappingGet(\n apiClient: UnmeshedApiClient,\n endpoint: string,\n id: string,\n correlationId: string,\n apiCallType: ApiCallType\n ) {\n return invokeApiMappingGet(apiClient, endpoint, id, correlationId, apiCallType);\n }\n\n invokeApiMappingPost(\n endpoint: string,\n input: Record<string, any>,\n id: string,\n correlationId: string,\n apiCallType: ApiCallType\n ) {\n return invokeApiMappingPost(this.client, endpoint, input, id, correlationId, apiCallType);\n }\n\n reNewRegistration(params: RenewRegistrationParams) {\n return renewRegistration(this.client, params);\n }\n\n createProcessDefinition(body: ProcessDefinitionData) {\n return createProcessDefinition(this.client, body);\n }\n updateProcessDefinition(body: ProcessDefinitionData) {\n return updateProcessDefinition(this.client, body);\n }\n deleteProcessDefinition(body: ProcessDefinitionDeleteRequest) {\n return deleteProcessDefinition(this.client, body);\n }\n getProcessDefinitions(namespace?: string) {\n return getProcessDefinitions(this.client, namespace);\n }\n getProcessDefinitionVersions(body: ProcessDefinitionsDetail) {\n return getProcessDefinitionVersions(this.client, body);\n }\n getProcessDefinitionByVersion(body: ProcessDefinitionDetails) {\n return getProcessDefinitionByVersion(this.client, body);\n }\n}\n\nexport * from './types';\n"],"mappings":"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","names":["ApiCallType","WebhookSource","SQAuthUserType","StepType","StepStatus","ProcessStatus","ProcessTriggerType","ProcessType","response","ProcessRequestData","ProcessRequestData"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unmeshed/sdk",
3
- "version": "1.1.6",
3
+ "version": "1.1.7",
4
4
  "description": "Unmeshed TS/JS SDK",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",
@@ -37,7 +37,7 @@
37
37
  "license": "MIT",
38
38
  "homepage": "https://unmeshed.io/",
39
39
  "dependencies": {
40
- "axios": "^1.7.9"
40
+ "axios": "^1.15.2"
41
41
  },
42
42
  "devDependencies": {
43
43
  "@types/node": "^22.10.7",