@hamim_4444/pulsar 1.0.1 → 1.0.2
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 +3 -3
- package/dist/index.js.map +3 -3
- package/dist/integrations/index.js +2 -2
- package/dist/integrations/index.js.map +3 -3
- package/dist/storage/index.js +43 -43
- package/dist/storage/index.js.map +4 -5
- package/dist/types/config.types.d.ts +2 -0
- package/dist/types/config.types.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/index.js.map
CHANGED
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"import type { JSONValue, Sql } from \"postgres\";\r\nimport type { QUEUE } from \"../static/static.ts\";\r\nimport type { PulsarUnifiedStorage } from \"../storage/PulsarStorage.ts\";\r\nimport type { QueueMessage } from \"../types/queue.types.ts\";\r\n\r\ninterface ITriggerURL {\r\n url: string;\r\n body?: JSONValue;\r\n headers?: Record<string, string>;\r\n delaySeconds? : number;\r\n}\r\n\r\ninterface ISingleQueueMetrics {\r\n queueName: string;\r\n readyJobs: number;\r\n delayedJobs: number;\r\n total: number;\r\n nextVisibleAt: number | null;\r\n}\r\n\r\nexport class QueueService {\r\n protected sql : Sql;\r\n\r\n constructor (storage : PulsarUnifiedStorage) {\r\n this.sql = storage.db.getNativeClient();\r\n }\r\n\r\n public async triggerUrl({ body={}, delaySeconds=0, headers={'Content-Type': 'application/json'}, url } : ITriggerURL) {\r\n await this.sql`\r\n select public.schedule_http_request(\r\n ${url},\r\n ${delaySeconds},\r\n 'POST',\r\n ${this.sql.json(body)},\r\n ${this.sql.json(headers)}\r\n ) as job_id;\r\n `;\r\n return true;\r\n }\r\n\r\n public async send<T = unknown>(queue: string, message: T, delaySeconds = 0) : Promise<bigint> {\r\n const messageJson = JSON.stringify(message);\r\n const result = await this.sql`SELECT pgmq.send( ${queue}, ${messageJson}::jsonb, ${delaySeconds} ) AS msg_id `;\r\n return result[0]?.msg_id as bigint;\r\n }\r\n\r\n /**\r\n * Read jobs using PGMQ's native FIFO strategies.\r\n * @param strategy 'rr' (Round Robin), 'grouped' (SQS-style), or 'head' (One per group)\r\n */\r\n public async readFifo(queue: string, vt: number, qty: number, strategy: 'rr' | 'grouped' | 'head' = 'grouped'): Promise<any[]> {\r\n let functionName = 'pgmq.read_grouped';\r\n if (strategy === 'rr') functionName = 'pgmq.read_grouped_rr';\r\n if (strategy === 'head') functionName = 'pgmq.read_grouped_head'; \r\n return []\r\n }\r\n\r\n public async read<T = unknown>(queue: string, visibilityTimeout = 30, quantity = 1): Promise<QueueMessage<T>[]> {\r\n const result = await this.sql`\r\n SELECT *\r\n FROM pgmq.read(\r\n ${queue},\r\n ${visibilityTimeout},\r\n ${quantity}\r\n )\r\n `;\r\n return result as unknown as QueueMessage<T>[];\r\n }\r\n\r\n public async ack(queue: string, messageId: bigint): Promise<boolean> {\r\n const result = await this.sql`\r\n SELECT pgmq.delete(\r\n ${queue}::text,\r\n ${messageId.toString()}::bigint\r\n ) AS deleted\r\n `;\r\n return Boolean(result[0]?.deleted);\r\n }\r\n\r\n \r\n public async ackBatch(queue: string, messageIds: number[]): Promise<boolean> {\r\n if (!messageIds || messageIds.length === 0) {\r\n return true;\r\n }\r\n\r\n const ids = messageIds.map((id) => id.toString());\r\n\r\n const result = await this.sql`\r\n SELECT pgmq.delete(\r\n ${queue}::text,\r\n ${ids}::bigint[]\r\n ) AS deleted\r\n `;\r\n\r\n return result.length > 0;\r\n }\r\n\r\n public async retryBatch(queue: string, messageIds: number[]): Promise<number> {\r\n if (messageIds.length === 0) return 0;\r\n\r\n const ids = messageIds.map((id) => id.toString());\r\n\r\n const result = await this.sql`\r\n SELECT pgmq.set_vt(\r\n ${queue},\r\n id::bigint,\r\n 0\r\n ) AS set_vt\r\n FROM unnest(${ids}::bigint[]) AS id\r\n `;\r\n\r\n return result.filter((row) => Boolean(row.set_vt)).length;\r\n }\r\n\r\n public async retry( queue: string, messageId: bigint): Promise<boolean> {\r\n const result = await this.sql`\r\n SELECT pgmq.set_vt(\r\n ${queue},\r\n ${messageId.toString()},\r\n 0\r\n ) AS set_vt\r\n `;\r\n\r\n return Boolean(result[0]?.set_vt);\r\n }\r\n\r\n public async delayRetry(queue: string,messageId: bigint,seconds: number): Promise<boolean> {\r\n const result = await this.sql`\r\n SELECT pgmq.set_vt(\r\n ${queue},\r\n ${messageId.toString()},\r\n ${seconds}\r\n ) AS set_vt\r\n `;\r\n\r\n return Boolean(result[0]?.set_vt);\r\n }\r\n\r\n public async getSingleQueueMetrics(queueName : string) : Promise<ISingleQueueMetrics | null> {\r\n try {\r\n const result = await this.sql`SELECT * FROM pgmq.get_single_queue_metrics(${queueName})`;\r\n\r\n const rows = Array.from(result);\r\n if (!rows.length) return null;\r\n\r\n const row: any = rows[0];\r\n\r\n return {\r\n queueName: row.queue_name as QUEUE,\r\n readyJobs: Number(row.ready_jobs ?? 0),\r\n delayedJobs: Number(row.delayed_jobs ?? 0),\r\n total: Number(row.total_jobs ?? 0),\r\n nextVisibleAt: row.next_visible_at ? new Date(row.next_visible_at).getTime() : null,\r\n };\r\n }\r\n catch (err) {\r\n console.error(`Failed to fetch metrics for queue: ${queueName}`, err);\r\n return null;\r\n }\r\n }\r\n\r\n public async getAllQueueMetrics() : Promise<{ queue_name : QUEUE, ready_jobs : number, delayed_jobs : number, total : number, next_visible_at : number }[]> {\r\n const allQueueMetrics = await this.sql`SELECT * FROM pgmq.get_queue_metrics()`;\r\n \r\n return Array.from(allQueueMetrics).map((row : any) => ({\r\n queue_name: row.queue_name as QUEUE,\r\n ready_jobs: Number(row.ready_jobs),\r\n delayed_jobs: Number(row.delayed_jobs),\r\n total: Number(row.total_jobs),\r\n next_visible_at : Number(row.next_visible_at),\r\n }))\r\n }\r\n\r\n public async closeQueue(): Promise<void> {\r\n await this.sql.end();\r\n }\r\n}",
|
|
14
14
|
"export class SwarmManager {\r\n constructor(\r\n private maxGlobalJobsPerTick: number,\r\n private maxGlobalConcurrency: number\r\n ) {}\r\n\r\n /**\r\n * Getter for configured maximum global worker concurrency.\r\n */\r\n public getMaxGlobalConcurrency(): number {\r\n return this.maxGlobalConcurrency;\r\n }\r\n\r\n /**\r\n * Getter for configured maximum global jobs per 1s tick window.\r\n */\r\n public getMaxGlobalJobsPerTick(): number {\r\n return this.maxGlobalJobsPerTick;\r\n }\r\n}",
|
|
15
15
|
"export interface ILogger {\r\n log(message : string, ...args : any[]) : void;\r\n warn(message : string, ...args : any[]) : void;\r\n error(message : string, ...args : any[]) : void;\r\n debug?(message : string, ...args : any[]) : void;\r\n}\r\n\r\nclass ConsoleLogger implements ILogger {\r\n log(message : string, ...args : any[]) { console.log(message, ...args); }\r\n warn(message : string, ...args : any[]) { console.warn(message, ...args); }\r\n error(message : string, ...args : any[]) { console.error(message, ...args); }\r\n debug(message : string, ...args : any[]) { console.debug(message, ...args); }\r\n}\r\n\r\nexport class LoggerService implements ILogger {\r\n private static provider : ILogger = new ConsoleLogger();\r\n\r\n public setProvider(customLogger: ILogger) {\r\n LoggerService.provider = customLogger;\r\n }\r\n\r\n public log(message : string, ...args : any[]) {\r\n LoggerService.provider.log(message, ...args);\r\n }\r\n\r\n public warn(message : string, ...args : any[]) {\r\n LoggerService.provider.warn(message, ...args);\r\n }\r\n\r\n public error(message : string, ...args : any[]) {\r\n LoggerService.provider.error(message, ...args);\r\n }\r\n\r\n public debug(message : string, ...args : any[]) {\r\n if (LoggerService.provider.debug) {\r\n LoggerService.provider.debug(message, ...args);\r\n }\r\n }\r\n}",
|
|
16
|
-
"import type { EngineConfig } from \"../types/base.types.ts\";\r\nimport type { QueueModule } from \"../helpers/defineQueue\";\r\nimport type { PostgresEngineOperationRepository } from \"../storage/repositories/PostgresEngineOperationRepository\";\r\nimport type { EngineQueuesConfig } from \"../types/queue.types\";\r\nimport type { PathValue, SettablePathKeys, ReadablePathKeys } from \"../types/config.types\";\r\n\r\nimport { LoggerService, type ILogger } from \"../subsys/LoggerService.ts\";\r\nimport { PulsarRuntime } from \"../types/runtime.types.ts\";\r\nimport { EventTriggerStrategy } from \"../types/eventTriggerStrategry.types.ts\";\r\n\r\nconst RUNTIME_BLOCKED_KEYS = new Set([\"storage\", \"runtime\", \"onEvents\", \"isolate\", \"queue\"]);\r\n\r\nconst RUNTIME_BLOCKED_QUEUE_KEYS = new Set<string>([\"queue\", \"deadLetterQueue\"]);\r\n\r\nexport class ConfigurationStore {\r\n private static instance : ConfigurationStore;\r\n protected _config? : EngineConfig;\r\n private initialSnapshot? : EngineConfig;\r\n private logger : ILogger;\r\n\r\n constructor() {\r\n this.logger = new LoggerService();\r\n }\r\n\r\n public static getInstance() : ConfigurationStore {\r\n if (!ConfigurationStore.instance) {\r\n ConfigurationStore.instance = new ConfigurationStore();\r\n }\r\n return ConfigurationStore.instance;\r\n }\r\n\r\n public initialize(baseConfig : EngineConfig) {\r\n this._config = {\r\n swarmConfig : {\r\n globalMaxJobsPerTick : 100_000,\r\n maxGlobalConcurrency : 10_000,\r\n spawnerAlgorithm : \"ROUND_ROBIN\",\r\n ...baseConfig.swarmConfig, \r\n },\r\n ...baseConfig,\r\n engine: {\r\n ...(baseConfig.runtime == PulsarRuntime.PERSISTENT ? {\r\n poolingIntervalSec : 5\r\n } : {}),\r\n\r\n ...(baseConfig.runtime == PulsarRuntime.SERVERLESS_VM || PulsarRuntime.V8_ISOLATE ? {\r\n selfInvocationMethod : \"auto_using_pgnet\",\r\n selfInvocationIntervalSec : 1,\r\n healthCheckIntervalSec : 15,\r\n selfRestartIntervalSec : 60,\r\n } : {}),\r\n\r\n tickConcurrency : \"sequential\",\r\n cycleTickLimit : 1000,\r\n \r\n ...baseConfig.engine,\r\n },\r\n queues : baseConfig.queues.map(q => ({\r\n stateTransitionPolicy : {\r\n enabled : true,\r\n idleThresholdTicks : 10,\r\n idleTimingProfile : 'RELAXED'\r\n },\r\n ...q\r\n }))\r\n } as EngineConfig;\r\n\r\n this.throwExpectionOnInvalidConfiguration(this._config);\r\n\r\n this.initialSnapshot = Object.freeze(JSON.parse(JSON.stringify(this._config)));\r\n }\r\n\r\n private throwExpectionOnInvalidConfiguration(config : EngineConfig) {\r\n const queues : Array<QueueModule> = config.queues;\r\n\r\n if(queues.length == 0) {\r\n this.logger.error(`[Pulsar] Runtime configuration error: \"queues\" atleast 1 queue is required to operate.`);\r\n throw new Error(`[Pulsar] Runtime configuration error: \"queues\" atleast 1 queue is required to operate.`);\r\n }\r\n\r\n if (config.runtime === PulsarRuntime.V8_ISOLATE && !config.isolate) {\r\n this.logger.error(`[Pulsar] Runtime configuration error: \"isolate\" instance is required when running in \"${PulsarRuntime.V8_ISOLATE}\" mode.`);\r\n throw new Error(`[Pulsar] Runtime configuration error: \"isolate\" instance is required when running in \"${PulsarRuntime.V8_ISOLATE}\" mode.`);\r\n }\r\n\r\n const queueCounts = queues.reduce<Record<string, number>>((acc, q) => {\r\n acc[q.queue] = (acc[q.queue] || 0) + 1;\r\n return acc;\r\n }, {})\r\n\r\n const duplicateQueueNames = Object.keys(queueCounts).filter(queueName => queueCounts[queueName]! > 1);\r\n\r\n if(duplicateQueueNames.length > 0) {\r\n this.logger.error(\"[ConfigurationStore]: Duplicate queues found -> \", duplicateQueueNames);\r\n throw new Error(\"Duplicate queue names detected in the configuration.\");\r\n }\r\n\r\n const consumers = queues.map(q => q.consumer);\r\n\r\n if(config.runtime !== PulsarRuntime.PERSISTENT) {\r\n const hasSocketConsumer = consumers.find(c => c.type == \"socket\");\r\n \r\n if(hasSocketConsumer) {\r\n this.logger.error(`${JSON.stringify(hasSocketConsumer)}`);\r\n throw new Error(`Consumers do not support non-persistent socket types. Please either remove the 'socket' type from the consumer or update the runtime to PERSISTENT.`);\r\n }\r\n }\r\n\r\n for(const consumer of consumers) {\r\n if(consumer.type == \"http\") {\r\n try {\r\n const parsedUrl = new URL(consumer.url);\r\n if (parsedUrl.protocol !== \"http:\" && parsedUrl.protocol !== \"https:\") {\r\n this.logger.error(`${consumer.queue} - ${consumer.url}`);\r\n throw new Error(`Invalid protocol '${parsedUrl.protocol}' for consumer URL. Only HTTP and HTTPS are supported.`);\r\n }\r\n }\r\n catch (error) {\r\n this.logger.error(`${consumer.queue} - ${consumer.url}`);\r\n const errorMessage = error instanceof Error ? error.message : \"An unknown error occurred while parsing the consumer URL.\";\r\n throw new Error(`Failed to validate consumer URL: ${errorMessage}`);\r\n }\r\n }\r\n else if (consumer.type == \"callback\") {\r\n if(!consumer.handler) {\r\n throw new Error(`Consumer handler is required. Please provide a valid handler function.`);\r\n }\r\n }\r\n }\r\n }\r\n\r\n private ensureInitialized() : asserts this is { _config: EngineConfig } {\r\n if (!this._config) {\r\n throw new Error(\"[ConfigurationStore]: Engine configuration store is not initialized. Call initialize() first.\");\r\n }\r\n if (!this.initialSnapshot) {\r\n throw new Error(\"[ConfigurationStore]: Engine initial snapshot is not initialized\");\r\n }\r\n }\r\n\r\n public get raw() : Readonly<EngineConfig> {\r\n this.ensureInitialized();\r\n return this._config;\r\n }\r\n\r\n public get<P extends ReadablePathKeys<EngineConfig>>(path : P) : PathValue<EngineConfig, P> {\r\n this.ensureInitialized();\r\n\r\n const keys = path.split(\".\");\r\n let current: any = this._config;\r\n\r\n for (const key of keys) {\r\n if (current === undefined || current === null) {\r\n return undefined as PathValue<EngineConfig, P>;\r\n }\r\n current = current[key];\r\n }\r\n\r\n return current as PathValue<EngineConfig, P>;\r\n }\r\n\r\n public getInitialSnapshot() : Readonly<EngineConfig> {\r\n this.ensureInitialized();\r\n return Object.freeze({ ...this.initialSnapshot! });\r\n }\r\n\r\n public set<P extends SettablePathKeys<EngineConfig>>(path: P, value: PathValue<EngineConfig, P>): void {\r\n this.ensureInitialized();\r\n\r\n const keys = path.split(\".\");\r\n const rootKey = keys[0]!;\r\n\r\n if (RUNTIME_BLOCKED_KEYS.has(rootKey)) {\r\n throw new Error(`[ConfigurationStore]: Modifying path '${path}' via set() is forbidden.`);\r\n }\r\n\r\n let current: any = this._config!;\r\n\r\n for (let i = 0; i < keys.length - 1; i++) {\r\n const key = keys[i]!;\r\n if (!(key in current) || typeof current[key] !== \"object\") {\r\n current[key] = {};\r\n }\r\n current = current[key];\r\n }\r\n\r\n current[keys[keys.length - 1]!] = value;\r\n }\r\n\r\n public modifyQueue<K extends keyof EngineQueuesConfig, P extends SettablePathKeys<EngineQueuesConfig>>(\r\n queue : string,\r\n key : K,\r\n value : PathValue<EngineQueuesConfig, P>\r\n ) {\r\n this.ensureInitialized();\r\n\r\n if (RUNTIME_BLOCKED_QUEUE_KEYS.has(key as string)) {\r\n throw new Error(`[ConfigurationStore]: Property '${String(key)}' on queue '${queue}' cannot be modified at runtime.`);\r\n }\r\n\r\n const targetQueueIndex = this._config.queues.findIndex(q => q.queue == queue);\r\n\r\n if(!this._config['queues'][targetQueueIndex]) {\r\n throw new Error(`[ConfigurationStore]: Modifying queue '${queue}' not found.`);\r\n }\r\n\r\n this._config['queues'][targetQueueIndex]![key] = value as unknown as QueueModule[K];\r\n }\r\n\r\n public async reconcileConfiguration(repository : PostgresEngineOperationRepository) {\r\n const initialSnapshot = this.getInitialSnapshot();\r\n \r\n const selfUrl = (\r\n initialSnapshot.runtime === PulsarRuntime.SERVERLESS_VM ||\r\n initialSnapshot.runtime === PulsarRuntime.V8_ISOLATE\r\n ) ? initialSnapshot.engine.selfURL : 'NOT_REQUIRED';\r\n\r\n const ConfigurationObject = {\r\n queues : initialSnapshot.queues.map(q => ({\r\n queue : q.queue,\r\n pooler : q.pooler\r\n })),\r\n runtime : initialSnapshot.runtime,\r\n event_trigger_strategy : initialSnapshot.runtime == PulsarRuntime['PERSISTENT'] ? initialSnapshot.eventTriggerStrategy : EventTriggerStrategy.WEBHOOK,\r\n self_url : selfUrl\r\n }\r\n\r\n const configurationSyncStatus = await repository.verifyAndSyncConfiguration(\r\n 'PULSAR_STANDALONE',\r\n initialSnapshot.instanceId as string,\r\n selfUrl,\r\n ConfigurationObject\r\n )\r\n\r\n if(!configurationSyncStatus.isChanged && !configurationSyncStatus.isNew) {\r\n this.logger.log(`[Configuration] status : [VALID].`);\r\n return `[Configuration] status : [VALID].`;\r\n }\r\n else {\r\n this.logger.log(`[Configuration] status : [INVALID & Reconciled].`);\r\n return `[Configuration] status : [INVALID & Reconciled].`;\r\n }\r\n }\r\n}\r\n\r\nexport const config = ConfigurationStore.getInstance();",
|
|
16
|
+
"import type { EngineConfig } from \"../types/base.types.ts\";\r\nimport type { QueueModule } from \"../helpers/defineQueue\";\r\nimport type { PostgresEngineOperationRepository } from \"../storage/repositories/PostgresEngineOperationRepository\";\r\nimport type { EngineQueuesConfig } from \"../types/queue.types\";\r\nimport type { PathValue, SettablePathKeys, ReadablePathKeys } from \"../types/config.types\";\r\n\r\nimport { LoggerService, type ILogger } from \"../subsys/LoggerService.ts\";\r\nimport { PulsarRuntime } from \"../types/runtime.types.ts\";\r\nimport { EventTriggerStrategy } from \"../types/eventTriggerStrategry.types.ts\";\r\n\r\nconst RUNTIME_BLOCKED_KEYS = new Set([\"storage\", \"runtime\", \"onEvents\", \"isolate\", \"queue\"]);\r\n\r\nconst RUNTIME_BLOCKED_QUEUE_KEYS = new Set<string>([\"queue\", \"deadLetterQueue\"]);\r\n\r\nexport class ConfigurationStore {\r\n private static instance : ConfigurationStore;\r\n protected _config? : EngineConfig;\r\n private initialSnapshot? : EngineConfig;\r\n private logger : ILogger;\r\n\r\n constructor() {\r\n this.logger = new LoggerService();\r\n }\r\n\r\n public static getInstance() : ConfigurationStore {\r\n if (!ConfigurationStore.instance) {\r\n ConfigurationStore.instance = new ConfigurationStore();\r\n }\r\n return ConfigurationStore.instance;\r\n }\r\n\r\n public initialize(baseConfig : EngineConfig) {\r\n this._config = {\r\n swarmConfig : {\r\n globalMaxJobsPerTick : 100_000,\r\n maxGlobalConcurrency : 10_000,\r\n spawnerAlgorithm : \"ROUND_ROBIN\",\r\n ...baseConfig.swarmConfig, \r\n },\r\n ...baseConfig,\r\n engine: {\r\n ...(baseConfig.runtime == PulsarRuntime.PERSISTENT ? {\r\n poolingIntervalSec : 5\r\n } : {}),\r\n\r\n ...(baseConfig.runtime == PulsarRuntime.SERVERLESS_VM || baseConfig.runtime == PulsarRuntime.V8_ISOLATE ? {\r\n selfInvocationMethod : \"auto_using_pgnet\",\r\n selfInvocationIntervalSec : 1,\r\n healthCheckIntervalSec : 15,\r\n selfRestartIntervalSec : 60,\r\n } : {}),\r\n\r\n tickConcurrency : \"sequential\",\r\n cycleTickLimit : 1000,\r\n \r\n ...baseConfig.engine,\r\n },\r\n queues : baseConfig.queues.map(q => ({\r\n stateTransitionPolicy : {\r\n enabled : true,\r\n idleThresholdTicks : 10,\r\n idleTimingProfile : 'RELAXED'\r\n },\r\n ...q\r\n }))\r\n } as EngineConfig;\r\n\r\n this.throwExpectionOnInvalidConfiguration(this._config);\r\n\r\n this.initialSnapshot = Object.freeze(JSON.parse(JSON.stringify(this._config)));\r\n }\r\n\r\n private throwExpectionOnInvalidConfiguration(config : EngineConfig) {\r\n const queues : Array<QueueModule> = config.queues;\r\n\r\n if(queues.length == 0) {\r\n this.logger.error(`[Pulsar] Runtime configuration error: \"queues\" atleast 1 queue is required to operate.`);\r\n throw new Error(`[Pulsar] Runtime configuration error: \"queues\" atleast 1 queue is required to operate.`);\r\n }\r\n\r\n if (config.runtime === PulsarRuntime.V8_ISOLATE && !config.isolate) {\r\n this.logger.error(`[Pulsar] Runtime configuration error: \"isolate\" instance is required when running in \"${PulsarRuntime.V8_ISOLATE}\" mode.`);\r\n throw new Error(`[Pulsar] Runtime configuration error: \"isolate\" instance is required when running in \"${PulsarRuntime.V8_ISOLATE}\" mode.`);\r\n }\r\n\r\n const queueCounts = queues.reduce<Record<string, number>>((acc, q) => {\r\n acc[q.queue] = (acc[q.queue] || 0) + 1;\r\n return acc;\r\n }, {})\r\n\r\n const duplicateQueueNames = Object.keys(queueCounts).filter(queueName => queueCounts[queueName]! > 1);\r\n\r\n if(duplicateQueueNames.length > 0) {\r\n this.logger.error(\"[ConfigurationStore]: Duplicate queues found -> \", duplicateQueueNames);\r\n throw new Error(\"Duplicate queue names detected in the configuration.\");\r\n }\r\n\r\n const consumers = queues.map(q => q.consumer);\r\n\r\n if(config.runtime !== PulsarRuntime.PERSISTENT) {\r\n const hasSocketConsumer = consumers.find(c => c.type == \"socket\");\r\n \r\n if(hasSocketConsumer) {\r\n this.logger.error(`${JSON.stringify(hasSocketConsumer)}`);\r\n throw new Error(`Consumers do not support non-persistent socket types. Please either remove the 'socket' type from the consumer or update the runtime to PERSISTENT.`);\r\n }\r\n }\r\n\r\n for(const consumer of consumers) {\r\n if(consumer.type == \"http\") {\r\n try {\r\n const parsedUrl = new URL(consumer.url);\r\n if (parsedUrl.protocol !== \"http:\" && parsedUrl.protocol !== \"https:\") {\r\n this.logger.error(`${consumer.queue} - ${consumer.url}`);\r\n throw new Error(`Invalid protocol '${parsedUrl.protocol}' for consumer URL. Only HTTP and HTTPS are supported.`);\r\n }\r\n }\r\n catch (error) {\r\n this.logger.error(`${consumer.queue} - ${consumer.url}`);\r\n const errorMessage = error instanceof Error ? error.message : \"An unknown error occurred while parsing the consumer URL.\";\r\n throw new Error(`Failed to validate consumer URL: ${errorMessage}`);\r\n }\r\n }\r\n else if (consumer.type == \"callback\") {\r\n if(!consumer.handler) {\r\n throw new Error(`Consumer handler is required. Please provide a valid handler function.`);\r\n }\r\n }\r\n }\r\n }\r\n\r\n private ensureInitialized() : asserts this is { _config: EngineConfig } {\r\n if (!this._config) {\r\n throw new Error(\"[ConfigurationStore]: Engine configuration store is not initialized. Call initialize() first.\");\r\n }\r\n if (!this.initialSnapshot) {\r\n throw new Error(\"[ConfigurationStore]: Engine initial snapshot is not initialized\");\r\n }\r\n }\r\n\r\n public get raw() : Readonly<EngineConfig> {\r\n this.ensureInitialized();\r\n return this._config;\r\n }\r\n\r\n public get<P extends ReadablePathKeys<EngineConfig>>(path : P) : PathValue<EngineConfig, P> {\r\n this.ensureInitialized();\r\n\r\n const keys = path.split(\".\");\r\n let current: any = this._config;\r\n\r\n for (const key of keys) {\r\n if (current === undefined || current === null) {\r\n return undefined as PathValue<EngineConfig, P>;\r\n }\r\n current = current[key];\r\n }\r\n\r\n return current as PathValue<EngineConfig, P>;\r\n }\r\n\r\n public getInitialSnapshot() : Readonly<EngineConfig> {\r\n this.ensureInitialized();\r\n return Object.freeze({ ...this.initialSnapshot! });\r\n }\r\n\r\n public set<P extends SettablePathKeys<EngineConfig>>(path: P, value: PathValue<EngineConfig, P>): void {\r\n this.ensureInitialized();\r\n\r\n const keys = path.split(\".\");\r\n const rootKey = keys[0]!;\r\n\r\n if (RUNTIME_BLOCKED_KEYS.has(rootKey)) {\r\n throw new Error(`[ConfigurationStore]: Modifying path '${path}' via set() is forbidden.`);\r\n }\r\n\r\n let current: any = this._config!;\r\n\r\n for (let i = 0; i < keys.length - 1; i++) {\r\n const key = keys[i]!;\r\n if (!(key in current) || typeof current[key] !== \"object\") {\r\n current[key] = {};\r\n }\r\n current = current[key];\r\n }\r\n\r\n current[keys[keys.length - 1]!] = value;\r\n }\r\n\r\n public modifyQueue<K extends keyof EngineQueuesConfig, P extends SettablePathKeys<EngineQueuesConfig>>(\r\n queue : string,\r\n key : K,\r\n value : PathValue<EngineQueuesConfig, P>\r\n ) {\r\n this.ensureInitialized();\r\n\r\n if (RUNTIME_BLOCKED_QUEUE_KEYS.has(key as string)) {\r\n throw new Error(`[ConfigurationStore]: Property '${String(key)}' on queue '${queue}' cannot be modified at runtime.`);\r\n }\r\n\r\n const targetQueueIndex = this._config.queues.findIndex(q => q.queue == queue);\r\n\r\n if(!this._config['queues'][targetQueueIndex]) {\r\n throw new Error(`[ConfigurationStore]: Modifying queue '${queue}' not found.`);\r\n }\r\n\r\n this._config['queues'][targetQueueIndex]![key] = value as unknown as QueueModule[K];\r\n }\r\n\r\n public async reconcileConfiguration(repository : PostgresEngineOperationRepository) {\r\n const initialSnapshot = this.getInitialSnapshot();\r\n \r\n const selfUrl = (\r\n initialSnapshot.runtime === PulsarRuntime.SERVERLESS_VM ||\r\n initialSnapshot.runtime === PulsarRuntime.V8_ISOLATE\r\n ) ? initialSnapshot.engine.selfURL : 'NOT_REQUIRED';\r\n\r\n const ConfigurationObject = {\r\n queues : initialSnapshot.queues.map(q => ({\r\n queue : q.queue,\r\n pooler : q.pooler\r\n })),\r\n runtime : initialSnapshot.runtime,\r\n event_trigger_strategy : initialSnapshot.runtime == PulsarRuntime['PERSISTENT'] ? initialSnapshot.eventTriggerStrategy : EventTriggerStrategy.WEBHOOK,\r\n self_url : selfUrl\r\n }\r\n\r\n const configurationSyncStatus = await repository.verifyAndSyncConfiguration(\r\n 'PULSAR_STANDALONE',\r\n initialSnapshot.instanceId as string,\r\n selfUrl,\r\n ConfigurationObject\r\n )\r\n\r\n if(!configurationSyncStatus.isChanged && !configurationSyncStatus.isNew) {\r\n this.logger.log(`[Configuration] status : [VALID].`);\r\n return `[Configuration] status : [VALID].`;\r\n }\r\n else {\r\n this.logger.log(`[Configuration] status : [INVALID & Reconciled].`);\r\n return `[Configuration] status : [INVALID & Reconciled].`;\r\n }\r\n }\r\n}\r\n\r\nexport const config = ConfigurationStore.getInstance();",
|
|
17
17
|
"export type TimingProfileType = 'REALTIME' | 'STANDARD' | 'RELAXED' | 'ULTRA_EFFICIENT' | 'BALANCED' | 'CUSTOM';\r\n\r\nexport interface TimingProfile {\r\n activePollMs: number; // How fast to poll when jobs are active & slots are free (e.g. 10ms - 50ms)\r\n backoffPollMs: number; // How fast to re-check when slots are full (e.g. 100ms - 500ms)\r\n idlePollMs?: number; // Idle fallback poll (if DB triggers/notifiers are missed)\r\n maxTimerMs: number; // Max setTimeout duration allowed before re-evaluating metrics\r\n}\r\n\r\nexport const TIMING_PROFILES: Record<Exclude<TimingProfileType, 'CUSTOM'>, TimingProfile> = {\r\n // Ultra-fast for high-throughput, latency-critical queues (e.g. 10,000+ fast jobs)\r\n REALTIME: {\r\n activePollMs: 1000, // 10\r\n backoffPollMs: 1000,\r\n idlePollMs: 1000,\r\n maxTimerMs: 5_000,// 30s\r\n },\r\n // Balanced for standard background job workloads\r\n STANDARD: {\r\n activePollMs: 100,\r\n backoffPollMs: 500,\r\n idlePollMs: 10000,\r\n maxTimerMs: 60000,\r\n },\r\n // Balanced for standard background job workloads\r\n BALANCED : {\r\n activePollMs: 10000,\r\n backoffPollMs: 500,\r\n idlePollMs: 10000,\r\n maxTimerMs: 60000,\r\n },\r\n // Low-cost for non-urgent tasks (e.g., reports, cleanup)\r\n RELAXED: {\r\n activePollMs: 1000,\r\n backoffPollMs: 20000,\r\n idlePollMs: 30000,\r\n maxTimerMs: 60000,\r\n },\r\n\r\n ULTRA_EFFICIENT: {\r\n activePollMs: 5000,\r\n backoffPollMs: 100000,\r\n idlePollMs: 120000,\r\n maxTimerMs: 240000,\r\n },\r\n}",
|
|
18
18
|
"import { config } from \"../service/ConfigurationStore.ts\";\r\nimport { TIMING_PROFILES, type TimingProfile, type TimingProfileType } from \"../static/TimingProfile.ts\";\r\n\r\nexport interface ScheduleRequest {\r\n queue : string;\r\n readyJobs : number;\r\n delayedJobs : number;\r\n availableSlots : number;\r\n nextVisibleAt? : number | null;\r\n}\r\n\r\ninterface ScheduleMetrics {\r\n queue : string;\r\n readyJobs : number;\r\n delayedJobs : number;\r\n availableSlots : number;\r\n nextVisibleAt? : number | null;\r\n}\r\n\r\ninterface ScheduleOptions {\r\n metrics : ScheduleMetrics;\r\n /** Standard wakeup handler for ready/backoff/idle ticks */\r\n onNext: () => void | Promise<void>;\r\n /** Specialized handler when scheduling near-term delayed jobs */\r\n onUpcomingDelayedNext?: (upcomingTimeMs : number) => void | Promise<void>;\r\n /** Async hook for long delays exceeding maxTimerMs (e.g. persistent state / external triggers) */\r\n onFutureSchedule?: (nextVisibleAt : number) => Promise<void>;\r\n}\r\n\r\nconst MAX_SAFE_TIMEOUT_MS = 2_147_483_647;\r\n\r\nexport class Scheduler {\r\n private timers = new Map<string, ReturnType<typeof setTimeout>>();\r\n private profiles = new Map<string, TimingProfile>();\r\n\r\n constructor() {}\r\n\r\n /**\r\n * Register a timing profile for a queue\r\n */\r\n public registerQueueProfile(queue : string, profileInput : TimingProfileType | TimingProfile) {\r\n if (typeof profileInput === 'string') {\r\n const preset = profileInput !== 'CUSTOM' ? TIMING_PROFILES[profileInput] : undefined;\r\n this.profiles.set(queue, preset ?? TIMING_PROFILES.STANDARD);\r\n }\r\n else {\r\n this.profiles.set(queue, profileInput);\r\n }\r\n }\r\n\r\n public getProfile(queue : string) : TimingProfile {\r\n const liveQueueConfig = config.get('queues')?.find(q => q.queue === queue);\r\n const liveProfile = liveQueueConfig?.profile;\r\n\r\n if (liveProfile) {\r\n if (typeof liveProfile === 'string') {\r\n return liveProfile !== 'CUSTOM' ? TIMING_PROFILES[liveProfile] : TIMING_PROFILES.STANDARD;\r\n }\r\n if (typeof liveProfile === 'object') {\r\n return liveProfile as TimingProfile;\r\n }\r\n }\r\n\r\n return this.profiles.get(queue) ?? TIMING_PROFILES.STANDARD;\r\n }\r\n\r\n /**\r\n * Cancel pending schedules for a queue\r\n */\r\n public cancel(queue : string) {\r\n const pending = this.timers.get(queue);\r\n if (pending) {\r\n clearTimeout(pending as ReturnType<typeof setTimeout>);\r\n //clearImmediate(pending as any);\r\n }\r\n this.timers.delete(queue);\r\n }\r\n\r\n public scheduleNext(options : ScheduleOptions): void {\r\n const { metrics, onNext, onUpcomingDelayedNext, onFutureSchedule } = options;\r\n const { queue, readyJobs, delayedJobs, availableSlots, nextVisibleAt } = metrics;\r\n\r\n this.cancel(queue);\r\n const profile = this.getProfile(queue);\r\n\r\n // 1. Ready jobs + open slots -> Ultra-fast profile-based active tick\r\n if (readyJobs > 0 && availableSlots > 0) {\r\n this.setTimer(queue, onNext, profile.activePollMs);\r\n return;\r\n }\r\n\r\n // 2. Ready jobs but slots full -> Backoff poll to check slot freeing\r\n if (readyJobs > 0 && availableSlots === 0) {\r\n this.setTimer(queue, onNext, profile.backoffPollMs);\r\n return;\r\n }\r\n\r\n // 3. Delayed jobs present -> Calculate exact delta safely without blocking threads\r\n if (delayedJobs > 0 && nextVisibleAt) {\r\n const deltaMs = Math.max(0, nextVisibleAt - Date.now());\r\n\r\n if (deltaMs <= profile.maxTimerMs) {\r\n if(onUpcomingDelayedNext) {\r\n onUpcomingDelayedNext(deltaMs);\r\n }\r\n \r\n this.setTimer(queue, onNext, deltaMs);\r\n return;\r\n }\r\n\r\n // Long delay handing over to external Redis/Trigger safety nets\r\n if (onFutureSchedule) {\r\n onFutureSchedule(nextVisibleAt).catch((err) =>\r\n console.error(`Scheduler error setting long delay for ${queue}:`, err)\r\n )\r\n }\r\n return;\r\n }\r\n\r\n // 4. Idle fallback (optional trigger fallback)\r\n if (profile.idlePollMs) {\r\n this.setTimer(queue, onNext, profile.idlePollMs);\r\n }\r\n }\r\n\r\n private setTimer(queue : string, callback : () => void, delayMs : number) {\r\n const safeDelay = Math.min(Math.max(0, delayMs), MAX_SAFE_TIMEOUT_MS);\r\n\r\n const wrappedCallback = () => {\r\n this.timers.delete(queue);\r\n callback();\r\n }\r\n\r\n if (safeDelay === 0) {\r\n const immediate = setTimeout(wrappedCallback);\r\n this.timers.set(queue, immediate);\r\n return;\r\n }\r\n\r\n const timer = setTimeout(wrappedCallback, safeDelay);\r\n this.timers.set(queue, timer);\r\n }\r\n}",
|
|
19
19
|
"import type { EngineQueuesConfig } from \"../types/queue.types\";\r\nimport type { ILogger } from \"./LoggerService\";\r\nimport { TIMING_PROFILES, type TimingProfile } from \"../static/TimingProfile\";\r\nimport { config } from \"../service/ConfigurationStore\";\r\n\r\nexport class ExecutionProfileSwitcher {\r\n private transitionItems = new Set<string>();\r\n\r\n constructor(private logger : ILogger) {}\r\n\r\n transitionToIdleMode({ queue, stateTransitionPolicy } : EngineQueuesConfig) {\r\n if(this.transitionItems.has(queue)) return;\r\n this.transitionItems.add(queue);\r\n\r\n this.logger.log(`[ENGINE_STATE] Transitioning engine execution profile to IDLE. Queue config: (${queue})`);\r\n\r\n if(stateTransitionPolicy?.enabled) {\r\n const rawProfile = stateTransitionPolicy.idleTimingProfile;\r\n\r\n if (rawProfile) {\r\n const idleProfile : TimingProfile = typeof rawProfile === \"object\"\r\n ? {\r\n activePollMs: rawProfile.activePollMs,\r\n backoffPollMs: rawProfile.backoffPollMs,\r\n idlePollMs: rawProfile.idlePollMs,\r\n } as TimingProfile\r\n : TIMING_PROFILES[rawProfile as keyof typeof TIMING_PROFILES];\r\n\r\n config.modifyQueue(queue, 'profile', idleProfile);\r\n }\r\n }\r\n }\r\n\r\n transitionToActiveMode({ queue, profile, stateTransitionPolicy } : EngineQueuesConfig) {\r\n this.transitionItems.delete(queue);\r\n\r\n if(stateTransitionPolicy?.enabled) {\r\n config.modifyQueue(queue, 'profile', profile);\r\n }\r\n\r\n this.logger.log(`[ENGINE_STATE] Transitioning engine execution profile to ACTIVE. Queue config: (${queue})`);\r\n }\r\n}",
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
"import type { QueueMessage } from \"../types/queue.types.ts\";\r\nimport type { EngineConsumerConfig } from \"../types/consumer.types.ts\";\r\n\r\nexport class ConsumerDispatch {\r\n private consumersMap : Map<string, EngineConsumerConfig>;\r\n\r\n constructor ( consumers : EngineConsumerConfig[], private engineUrl : string ) {\r\n const map : Map<string, EngineConsumerConfig> = new Map();\r\n consumers.forEach(consumer => map.set(consumer.queue, consumer));\r\n this.consumersMap = map;\r\n }\r\n\r\n public async dispatch(queue : string, workerId : string, batch : QueueMessage[]) {\r\n const consumer = this.consumersMap.get(queue);\r\n\r\n if (!consumer) {\r\n throw new Error(`No consumer registered for queue: \"${queue}\"`);\r\n }\r\n\r\n if(consumer.type == \"http\") {\r\n await fetch(consumer.url, {\r\n method : \"POST\",\r\n headers : {\r\n 'content-type' : 'application/json',\r\n ...consumer.headers,\r\n 'x-worker-id': workerId,\r\n 'x-batch-size': batch.length.toString(),\r\n 'x-pulsar-callback-url': this.engineUrl,\r\n 'x-test-mode': 'SAFE',\r\n 'x-queue': queue,\r\n \"x-execution-signature\" : crypto.randomUUID()\r\n },\r\n body : JSON.stringify({messages : batch})\r\n }).catch((error) => {\r\n console.log(`[${queue}] Unbounded HTTP dispatch failed for worker ${workerId}:`, error);\r\n })\r\n }\r\n\r\n else if(consumer.type == \"socket\"){\r\n \r\n }\r\n\r\n else {\r\n consumer?.handler({\r\n queue : consumer.queue,\r\n payload : batch,\r\n attempts : 1,\r\n workerId,\r\n timestamp : new Date().getTime()\r\n })\r\n }\r\n }\r\n}",
|
|
37
37
|
"import { PulsarUnifiedStorage } from '../storage/PulsarStorage.ts';\r\nimport { PulsarEventBus } from './PulsarEventBus.ts';\r\nimport { PulsarClock } from '../subsys/PulsarClock.ts';\r\nimport { QueueService } from '../modules/Queue.module.ts';\r\n\r\nimport { SwarmManager } from './SwarmBudgetTracker.ts';\r\nimport { Scheduler } from \"../modules/Scheduler.module.ts\";\r\nimport { TickService } from '../modules/Tick.module.ts';\r\nimport { TickController } from '../modules/TickController.module.ts';\r\nimport { PulsarRuntime } from '../types/runtime.types.ts';\r\n\r\nimport { PersistentRuntime } from '../runtimes/PersistentRuntime.ts';\r\nimport { ServerlessRuntime } from '../runtimes/ServerlessRuntime.ts';\r\nimport { IsolateRuntime } from '../runtimes/IsolateRuntime.ts';\r\n\r\nimport type { EngineQueuesConfig } from '../types/queue.types.ts';\r\nimport type { EngineConsumerConfig } from '../types/consumer.types.ts';\r\nimport type { IsolateInstance } from './Isolate.service.ts';\r\nimport type { EngineConfig } from '../types/base.types.ts';\r\nimport type { IIntegration, IntegrationConstructor, IntegrationMap } from '../types/integrations.types.ts';\r\nimport type { PulsarRuntimeCore, RuntimeDependencies } from '../shared/PulsarRuntimeCore.ts';\r\n\r\nimport { config } from './ConfigurationStore.ts';\r\nimport { UnifiedTransportManager } from '../network/UnifiedTransportManager.ts';\r\nimport { LoggerService } from '../subsys/LoggerService.ts';\r\nimport { ConsumerDispatch } from '../dispatch/ConsumerDispatch.ts';\r\n\r\n/**\r\n * Core abstract base class for the Pulsar engine ecosystem.\r\n * \r\n * Provides foundational lifecycle management, centralized event emitting, unified storage\r\n * initialization, queue registration\r\n*/\r\nexport abstract class PulsarCore {\r\n protected storage : PulsarUnifiedStorage;\r\n\r\n protected tickService : TickService;\r\n protected tickController: TickController;\r\n\r\n protected unifiedTransportManager : UnifiedTransportManager;\r\n protected dispatcher : ConsumerDispatch;\r\n protected swarmManager : SwarmManager;\r\n protected scheduler : Scheduler;\r\n protected queueService : QueueService;\r\n\r\n protected clock : PulsarClock;\r\n protected events : PulsarEventBus;\r\n\r\n protected queues : EngineQueuesConfig[] = [];\r\n protected consumers : EngineConsumerConfig[] = [];\r\n\r\n protected runtimeStrategy: PulsarRuntimeCore;\r\n\r\n public readonly logger : LoggerService;\r\n private readonly integrations = new Map<string, IIntegration>();\r\n\r\n constructor (baseConfig : EngineConfig) {\r\n config.initialize(baseConfig);\r\n\r\n this.logger = new LoggerService();\r\n\r\n if (baseConfig.integrations?.length) {\r\n this.runIntegrations(baseConfig.integrations);\r\n }\r\n\r\n for(const { consumer, ...queue } of config.raw.queues) {\r\n this.queues.push(queue);\r\n this.consumers.push(consumer);\r\n }\r\n\r\n const instanceId = config.get('instanceId');\r\n\r\n if(!instanceId) {\r\n throw new Error('[Pulsar] : instanceId is required.');\r\n }\r\n \r\n const instanceIdRegex = /^[a-zA-Z0-9_-]+$/;\r\n\r\n if (typeof instanceId !== 'string' || !instanceIdRegex.test(instanceId)) {\r\n throw new Error('[Pulsar] : Invalid instanceId format. It must contain only alphanumeric characters, hyphens, and underscores (e.g., \"string-like-this\" or \"or_this\").');\r\n }\r\n\r\n this.events = new PulsarEventBus();\r\n\r\n let maxExecutionBudgetMs = Infinity;\r\n\r\n const isV8Isolate = config.raw.runtime === PulsarRuntime.V8_ISOLATE;\r\n\r\n const isolate = config.get('isolate')!;\r\n\r\n if(isV8Isolate) {\r\n maxExecutionBudgetMs = Math.max(0, isolate.remainingTime - 5000);\r\n }\r\n\r\n this.storage = config.raw.storage;\r\n this.storage.connect();\r\n this.storage.bindInstanceId(instanceId);\r\n \r\n this.clock = new PulsarClock({\r\n maxExecutionBudgetMs,\r\n safetyBufferMs: 0,\r\n maxTrackHistory : 50,\r\n enabled : true\r\n })\r\n \r\n this.dispatcher = new ConsumerDispatch(this.consumers, config.get('engine.selfURL'));\r\n \r\n this.queueService = new QueueService(this.storage);\r\n this.scheduler = new Scheduler();\r\n\r\n this.runtimeStrategy = this.resolveRuntimeStrategy();\r\n\r\n if (!this.runtimeStrategy) {\r\n this.logger.error('[Pulsar] Failed to resolve a valid runtime strategy.');\r\n throw new Error('[Pulsar] Failed to resolve a valid runtime strategy.');\r\n }\r\n\r\n if(config.raw.runtime == PulsarRuntime.PERSISTENT) {\r\n this.unifiedTransportManager = new UnifiedTransportManager({\r\n ...config.raw.networkInterface,\r\n isServer : true\r\n }, this.storage, this.queueService);\r\n }\r\n else {\r\n this.unifiedTransportManager = new UnifiedTransportManager({\r\n mode : \"client\",\r\n isServer : false,\r\n port : 0,\r\n }, this.storage, this.queueService)\r\n }\r\n\r\n this.swarmManager = new SwarmManager(\r\n config.raw.swarmConfig?.globalMaxJobsPerTick ?? Infinity,\r\n config.raw.swarmConfig?.maxGlobalConcurrency ?? Infinity\r\n )\r\n \r\n this.tickService = new TickService({\r\n dispatcher : this.dispatcher,\r\n queue : this.queueService,\r\n storage : this.storage,\r\n swarmManager: this.swarmManager,\r\n unifiedTransportManager : this.unifiedTransportManager,\r\n events : this.events\r\n })\r\n\r\n this.tickController = new TickController({\r\n scheduler : this.scheduler,\r\n storage : this.storage,\r\n tickService : this.tickService,\r\n clock : this.clock,\r\n events : this.events,\r\n runtimeStrategy : this.runtimeStrategy\r\n })\r\n\r\n if(Number.isFinite(maxExecutionBudgetMs)) {\r\n this.logger.log(`[EngineRuntime] : isolate registred with id : [${isolate.id}]`);\r\n this.logger.log(`[Clock] : Synced execution timeout (${maxExecutionBudgetMs / 1000}s) with isolate [${isolate.id}]`);\r\n }\r\n else {\r\n this.logger.log(`[EngineRuntime] : Engine Started With No V8 Isolate (${new Date().toISOString()})`);\r\n }\r\n }\r\n\r\n private resolveRuntimeStrategy() : PulsarRuntimeCore {\r\n const deps : RuntimeDependencies = {\r\n queueService: this.queueService,\r\n clock: this.clock,\r\n queues : this.queues,\r\n storage : this.storage,\r\n isolate : this.V8Isolate,\r\n events : this.events,\r\n scheduler : this.scheduler\r\n }\r\n\r\n switch (config.get('runtime')) {\r\n case PulsarRuntime.PERSISTENT:\r\n return new PersistentRuntime(deps);\r\n case PulsarRuntime.SERVERLESS_VM:\r\n return new ServerlessRuntime(deps);\r\n case PulsarRuntime.V8_ISOLATE:\r\n return new IsolateRuntime(deps);\r\n default:\r\n throw new Error(`Unsupported Runtime`);\r\n }\r\n }\r\n\r\n protected async runIntegrations(integrations : Array<IntegrationConstructor | IIntegration>) {\r\n for (const item of integrations) {\r\n let instance : IIntegration;\r\n\r\n if (typeof item === \"function\") {\r\n instance = new item(\"ALL\");\r\n }\r\n else {\r\n instance = item;\r\n }\r\n\r\n await instance.main(this);\r\n\r\n this.integrations.set(instance.module, instance);\r\n }\r\n }\r\n\r\n public getIntegration<K extends keyof IntegrationMap>(moduleOrClass : K) : IntegrationMap[K];\r\n public getIntegration<T extends IIntegration>(moduleOrClass : new (...args : any[]) => T) : T;\r\n\r\n public getIntegration(moduleOrClass : any) : any {\r\n if (typeof moduleOrClass === \"string\") {\r\n return this.integrations.get(moduleOrClass);\r\n }\r\n\r\n for (const instance of this.integrations.values()) {\r\n if (instance instanceof moduleOrClass) {\r\n return instance;\r\n }\r\n }\r\n\r\n const name = typeof moduleOrClass === \"string\" ? moduleOrClass : moduleOrClass.name;\r\n throw new Error(`Integration \"${name}\" is not registered.`);\r\n }\r\n\r\n get runtime() : keyof typeof PulsarRuntime {\r\n return this.runtimeStrategy.type as keyof typeof PulsarRuntime;\r\n }\r\n\r\n get isV8Isolate() {\r\n return config.get('runtime') === PulsarRuntime.V8_ISOLATE\r\n }\r\n\r\n get V8Isolate() : IsolateInstance {\r\n return config.raw.isolate as IsolateInstance;\r\n }\r\n\r\n protected async exit() {\r\n await this.storage.disconnect();\r\n }\r\n}"
|
|
38
38
|
],
|
|
39
|
-
"mappings": "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",
|
|
40
|
-
"debugId": "
|
|
39
|
+
"mappings": "yjBAEA,IAAI,GAAM,OAAO,UAAU,eACvB,EAAS,IASb,SAAS,CAAM,EAAG,EASlB,GAAI,OAAO,QAOT,GANA,EAAO,UAAY,OAAO,OAAO,IAAI,EAMjC,CAAC,IAAI,EAAO,EAAE,UAAW,EAAS,GAYxC,SAAS,EAAE,CAAC,EAAI,EAAS,EAAM,CAC7B,KAAK,GAAK,EACV,KAAK,QAAU,EACf,KAAK,KAAO,GAAQ,GActB,SAAS,EAAW,CAAC,EAAS,EAAO,EAAI,EAAS,EAAM,CACtD,GAAI,OAAO,IAAO,WAChB,MAAU,UAAU,iCAAiC,EAGvD,IAAI,EAAW,IAAI,GAAG,EAAI,GAAW,EAAS,CAAI,EAC9C,EAAM,EAAS,EAAS,EAAQ,EAEpC,GAAI,CAAC,EAAQ,QAAQ,GAAM,EAAQ,QAAQ,GAAO,EAAU,EAAQ,eAC/D,QAAI,CAAC,EAAQ,QAAQ,GAAK,GAAI,EAAQ,QAAQ,GAAK,KAAK,CAAQ,EAChE,OAAQ,QAAQ,GAAO,CAAC,EAAQ,QAAQ,GAAM,CAAQ,EAE3D,OAAO,EAUT,SAAS,CAAU,CAAC,EAAS,EAAK,CAChC,GAAI,EAAE,EAAQ,eAAiB,EAAG,EAAQ,QAAU,IAAI,EACnD,YAAO,EAAQ,QAAQ,GAU9B,SAAS,CAAY,EAAG,CACtB,KAAK,QAAU,IAAI,EACnB,KAAK,aAAe,EAUtB,EAAa,UAAU,WAAa,QAAmB,EAAG,CACxD,IAAI,EAAQ,CAAC,EACT,EACA,EAEJ,GAAI,KAAK,eAAiB,EAAG,OAAO,EAEpC,IAAK,KAAS,EAAS,KAAK,QAC1B,GAAI,GAAI,KAAK,EAAQ,CAAI,EAAG,EAAM,KAAK,EAAS,EAAK,MAAM,CAAC,EAAI,CAAI,EAGtE,GAAI,OAAO,sBACT,OAAO,EAAM,OAAO,OAAO,sBAAsB,CAAM,CAAC,EAG1D,OAAO,GAUT,EAAa,UAAU,UAAY,QAAkB,CAAC,EAAO,CAC3D,IAAI,EAAM,EAAS,EAAS,EAAQ,EAChC,EAAW,KAAK,QAAQ,GAE5B,GAAI,CAAC,EAAU,MAAO,CAAC,EACvB,GAAI,EAAS,GAAI,MAAO,CAAC,EAAS,EAAE,EAEpC,QAAS,EAAI,EAAG,EAAI,EAAS,OAAQ,EAAS,MAAM,CAAC,EAAG,EAAI,EAAG,IAC7D,EAAG,GAAK,EAAS,GAAG,GAGtB,OAAO,GAUT,EAAa,UAAU,cAAgB,QAAsB,CAAC,EAAO,CACnE,IAAI,EAAM,EAAS,EAAS,EAAQ,EAChC,EAAY,KAAK,QAAQ,GAE7B,GAAI,CAAC,EAAW,MAAO,GACvB,GAAI,EAAU,GAAI,MAAO,GACzB,OAAO,EAAU,QAUnB,EAAa,UAAU,KAAO,QAAa,CAAC,EAAO,EAAI,EAAI,EAAI,EAAI,EAAI,CACrE,IAAI,EAAM,EAAS,EAAS,EAAQ,EAEpC,GAAI,CAAC,KAAK,QAAQ,GAAM,MAAO,GAE/B,IAAI,EAAY,KAAK,QAAQ,GACzB,EAAM,UAAU,OAChB,EACA,EAEJ,GAAI,EAAU,GAAI,CAChB,GAAI,EAAU,KAAM,KAAK,eAAe,EAAO,EAAU,GAAI,OAAW,EAAI,EAE5E,OAAQ,OACD,GAAG,OAAO,EAAU,GAAG,KAAK,EAAU,OAAO,EAAG,OAChD,GAAG,OAAO,EAAU,GAAG,KAAK,EAAU,QAAS,CAAE,EAAG,OACpD,GAAG,OAAO,EAAU,GAAG,KAAK,EAAU,QAAS,EAAI,CAAE,EAAG,OACxD,GAAG,OAAO,EAAU,GAAG,KAAK,EAAU,QAAS,EAAI,EAAI,CAAE,EAAG,OAC5D,GAAG,OAAO,EAAU,GAAG,KAAK,EAAU,QAAS,EAAI,EAAI,EAAI,CAAE,EAAG,OAChE,GAAG,OAAO,EAAU,GAAG,KAAK,EAAU,QAAS,EAAI,EAAI,EAAI,EAAI,CAAE,EAAG,GAG3E,IAAK,EAAI,EAAG,EAAW,MAAM,EAAK,CAAC,EAAG,EAAI,EAAK,IAC7C,EAAK,EAAI,GAAK,UAAU,GAG1B,EAAU,GAAG,MAAM,EAAU,QAAS,CAAI,EACrC,KACL,IAAI,EAAS,EAAU,OACnB,EAEJ,IAAK,EAAI,EAAG,EAAI,EAAQ,IAAK,CAC3B,GAAI,EAAU,GAAG,KAAM,KAAK,eAAe,EAAO,EAAU,GAAG,GAAI,OAAW,EAAI,EAElF,OAAQ,OACD,GAAG,EAAU,GAAG,GAAG,KAAK,EAAU,GAAG,OAAO,EAAG,UAC/C,GAAG,EAAU,GAAG,GAAG,KAAK,EAAU,GAAG,QAAS,CAAE,EAAG,UACnD,GAAG,EAAU,GAAG,GAAG,KAAK,EAAU,GAAG,QAAS,EAAI,CAAE,EAAG,UACvD,GAAG,EAAU,GAAG,GAAG,KAAK,EAAU,GAAG,QAAS,EAAI,EAAI,CAAE,EAAG,cAE9D,GAAI,CAAC,EAAM,IAAK,EAAI,EAAG,EAAW,MAAM,EAAK,CAAC,EAAG,EAAI,EAAK,IACxD,EAAK,EAAI,GAAK,UAAU,GAG1B,EAAU,GAAG,GAAG,MAAM,EAAU,GAAG,QAAS,CAAI,IAKxD,MAAO,IAYT,EAAa,UAAU,GAAK,QAAW,CAAC,EAAO,EAAI,EAAS,CAC1D,OAAO,GAAY,KAAM,EAAO,EAAI,EAAS,EAAK,GAYpD,EAAa,UAAU,KAAO,QAAa,CAAC,EAAO,EAAI,EAAS,CAC9D,OAAO,GAAY,KAAM,EAAO,EAAI,EAAS,EAAI,GAanD,EAAa,UAAU,eAAiB,QAAuB,CAAC,EAAO,EAAI,EAAS,EAAM,CACxF,IAAI,EAAM,EAAS,EAAS,EAAQ,EAEpC,GAAI,CAAC,KAAK,QAAQ,GAAM,OAAO,KAC/B,GAAI,CAAC,EAEH,OADA,EAAW,KAAM,CAAG,EACb,KAGT,IAAI,EAAY,KAAK,QAAQ,GAE7B,GAAI,EAAU,IACZ,GACE,EAAU,KAAO,IAChB,CAAC,GAAQ,EAAU,QACnB,CAAC,GAAW,EAAU,UAAY,GAEnC,EAAW,KAAM,CAAG,EAEjB,KACL,QAAS,EAAI,EAAG,EAAS,CAAC,EAAG,EAAS,EAAU,OAAQ,EAAI,EAAQ,IAClE,GACE,EAAU,GAAG,KAAO,GACnB,GAAQ,CAAC,EAAU,GAAG,MACtB,GAAW,EAAU,GAAG,UAAY,EAErC,EAAO,KAAK,EAAU,EAAE,EAO5B,GAAI,EAAO,OAAQ,KAAK,QAAQ,GAAO,EAAO,SAAW,EAAI,EAAO,GAAK,EACpE,OAAW,KAAM,CAAG,EAG3B,OAAO,MAUT,EAAa,UAAU,mBAAqB,QAA2B,CAAC,EAAO,CAC7E,IAAI,EAEJ,GAAI,GAEF,GADA,EAAM,EAAS,EAAS,EAAQ,EAC5B,KAAK,QAAQ,GAAM,EAAW,KAAM,CAAG,EAE3C,UAAK,QAAU,IAAI,EACnB,KAAK,aAAe,EAGtB,OAAO,MAMT,EAAa,UAAU,IAAM,EAAa,UAAU,eACpD,EAAa,UAAU,YAAc,EAAa,UAAU,GAK5D,EAAa,SAAW,EAKxB,EAAa,aAAe,EAK5B,GAAoB,OAAO,EAAvB,IACF,EAAO,QAAU,IC9UZ,IAAK,GAAL,CAAK,IAAL,CAaH,kBAAkB,kBAUlB,UAAU,UAUV,UAAU,YAjCF,QCYL,SAAS,EAAW,CAAC,EAA0C,CAClE,MAAO,IACA,EACH,SAAU,IACH,EAAO,SACV,MAAQ,EAAO,KACnB,CACJ,ECnBG,MAAM,EAAgB,CACL,wBAApB,WAAW,CAAS,EAAkC,CAAlC,+BAChB,KAAK,IAAI,aAAc,OAAO,WAAW,CAAC,EAC1C,KAAK,IAAI,qBAAsB,KAAK,IAAI,CAAC,EACzC,KAAK,IAAI,2BAA4B,KAAK,uBAAuB,EAG9D,aAAa,CAAC,EAAuB,CACxC,OAAO,IAAO,KAAK,IAAY,YAAY,KAG3C,GAAG,EAAY,CACf,OAAO,KAAK,IAAY,YAAY,GAAK,OAAO,WAAW,KAG3D,cAAa,EAAY,CACzB,IAAM,EAAY,KAAK,IAAY,oBAAoB,EACjD,EAAU,KAAK,IAAY,0BAA0B,GAAK,KAAK,wBAErE,GAAI,OAAO,IAAc,SACrB,OAAO,EAGX,IAAM,EAAU,KAAK,IAAI,EAAI,EAC7B,OAAO,KAAK,IAAI,EAAG,EAAU,CAAO,KAGpC,OAAM,EAAY,CAClB,IAAM,EAAY,KAAK,IAAY,oBAAoB,EACvD,OAAO,OAAO,IAAc,SAAW,KAAK,IAAI,EAAI,EAAY,KAGhE,QAAO,EAAY,CACnB,OAAO,KAAK,IAAY,0BAA0B,GAAK,KAAK,wBAGhE,GAAgB,CAAC,EAAa,EAAiB,CAC1C,WAAuC,GAAO,EAGnD,GAAgB,CAAC,EAA6B,CAC1C,OAAQ,WAAuC,GAEvD,CClCO,IAAK,GAAL,CAAK,IAAL,CAQH,aAAa,aAQb,gBAAgB,gBAShB,aAAa,eAzBL,QCTZ,0BCWO,MAAM,CAAe,CAChB,OAAS,IAAI,YAEd,IAAoC,CAAC,EAAU,EAAmC,CACrF,KAAK,OAAO,cAAc,IAAI,YAAY,EAAO,CAAE,OAAQ,CAAQ,CAAC,CAAC,EAGlE,EAAkC,CAAC,EAAU,EAA4E,CAC5H,IAAM,EAAW,CAAC,IAAa,EAAS,EAAqC,MAAM,EAGnF,OAFA,KAAK,OAAO,iBAAiB,EAAO,CAAyB,EAEtD,IAAM,KAAK,OAAO,oBAAoB,EAAO,CAAyB,EAG1E,IAAoC,CAAC,EAAU,EAAsE,CACxH,IAAM,EAAW,CAAC,IAAa,EAAS,EAAqC,MAAM,EACnF,KAAK,OAAO,iBAAiB,EAAO,EAA2B,CAAE,KAAM,EAAK,CAAC,EAErF,CClBO,MAAM,CAAY,CACb,OAAiE,CAAC,EAClE,UACA,qBACA,eACA,gBACA,QAED,yBAA2B,EAElC,WAAW,CAAC,EAAwB,CAAC,EAAG,CACpC,KAAK,UAAY,YAAY,IAAI,EACjC,KAAK,qBAAuB,EAAQ,sBAAwB,MAC5D,KAAK,eAAiB,EAAQ,gBAAkB,KAChD,KAAK,gBAAkB,EAAQ,iBAAmB,IAClD,KAAK,QAAU,EAAQ,SAAW,QAGzB,mBAAqB,EAAG,aAAqC,EAAkC,CACxG,IAAM,EAAQ,YAAY,IAAI,EAC9B,GAAI,CACA,OAAO,MAAM,EAAG,SAEpB,CACI,GAAG,KAAK,SAAW,GAAM,CAErB,IAAM,EADM,YAAY,IAAI,EACL,EAIvB,GAFA,KAAK,OAAO,KAAK,CAAE,GAAI,OAAO,WAAW,EAAG,WAAU,WAAU,CAAC,EAE7D,KAAK,OAAO,OAAS,KAAK,gBAC1B,KAAK,OAAO,MAAM,IAM3B,mBAAmB,EAAY,CAClC,OAAO,YAAY,IAAI,EAAI,KAAK,UAG7B,gBAAgB,EAAY,CAC/B,IAAM,EAAU,KAAK,oBAAoB,EACnC,EAAY,KAAK,qBAAuB,EAAU,KAAK,eAC7D,OAAO,KAAK,IAAI,EAAG,CAAS,EAGzB,sBAAsB,CAAC,EAAQ,EAAW,CAC7C,GAAI,KAAK,OAAO,SAAW,EAAG,MAAO,GACrC,IAAM,EAAS,KAAK,OAAO,MAAM,CAAC,CAAK,EAEvC,OADc,EAAO,OAAO,CAAC,EAAK,IAAM,EAAM,EAAE,SAAU,CAAC,EAC5C,EAAO,OAOnB,gBAAgB,EAAa,CAChC,GAAG,CAAC,KAAK,QAAS,MAAO,GAEzB,IAAM,EAAY,KAAK,iBAAiB,EAExC,GAAI,GAAa,EAAG,MAAO,GAE3B,IAAM,EAAoB,KAAK,uBAAuB,CAAC,EACvD,GAAI,EAAoB,GAAK,EAAY,EACrC,MAAO,GAGX,MAAO,GAGJ,KAAK,CAAC,EAAoB,CAC7B,KAAK,OAAS,KAAK,OAAO,OAAO,KAAS,EAAM,YAAc,CAAS,EAE/E,CCnEO,MAAM,CAAa,CACZ,IAEV,WAAY,CAAC,EAAgC,CACzC,KAAK,IAAM,EAAQ,GAAG,gBAAgB,OAG7B,WAAU,EAAG,OAAK,CAAC,EAAG,eAAa,EAAG,UAAQ,CAAC,eAAgB,kBAAkB,EAAG,OAAqB,CAUlH,OATA,KAAM,MAAK;AAAA;AAAA,kBAED;AAAA,kBACA;AAAA;AAAA,kBAEA,KAAK,IAAI,KAAK,CAAI;AAAA,kBAClB,KAAK,IAAI,KAAK,CAAO;AAAA;AAAA,UAGxB,QAGE,KAAiB,CAAC,EAAe,EAAY,EAAe,EAAqB,CAC1F,IAAM,EAAc,KAAK,UAAU,CAAO,EAE1C,OADe,KAAM,MAAK,wBAAwB,MAAU,aAAuB,kBACrE,IAAI,YAOT,SAAQ,CAAC,EAAe,EAAY,EAAa,EAAsC,UAA2B,CAC3H,IAAI,EAAe,oBACnB,GAAI,IAAa,KAAM,EAAe,uBACtC,GAAI,IAAa,OAAQ,EAAe,yBACxC,MAAO,CAAC,OAGC,KAAiB,CAAC,EAAe,EAAoB,GAAI,EAAW,EAA+B,CAS5G,OARe,KAAM,MAAK;AAAA;AAAA;AAAA,kBAGhB;AAAA,kBACA;AAAA,kBACA;AAAA;AAAA,eAMD,IAAG,CAAC,EAAe,EAAqC,CACjE,IAAM,EAAS,KAAM,MAAK;AAAA;AAAA,kBAEhB;AAAA,kBACA,EAAU,SAAS;AAAA;AAAA,UAG7B,OAAO,QAAQ,EAAO,IAAI,OAAO,OAIxB,SAAQ,CAAC,EAAe,EAAwC,CACzE,GAAI,CAAC,GAAc,EAAW,SAAW,EACrC,MAAO,GAGX,IAAM,EAAM,EAAW,IAAI,CAAC,IAAO,EAAG,SAAS,CAAC,EAShD,OAPe,KAAM,MAAK;AAAA;AAAA,cAEpB;AAAA,cACA;AAAA;AAAA,WAIQ,OAAS,OAGd,WAAU,CAAC,EAAe,EAAuC,CAC1E,GAAI,EAAW,SAAW,EAAG,MAAO,GAEpC,IAAM,EAAM,EAAW,IAAI,CAAC,IAAO,EAAG,SAAS,CAAC,EAWhD,OATe,KAAM,MAAK;AAAA;AAAA,kBAEhB;AAAA;AAAA;AAAA;AAAA,0BAIQ;AAAA,WAGJ,OAAO,CAAC,IAAQ,QAAQ,EAAI,MAAM,CAAC,EAAE,YAG1C,MAAK,CAAE,EAAe,EAAqC,CACpE,IAAM,EAAS,KAAM,MAAK;AAAA;AAAA,kBAEhB;AAAA,kBACA,EAAU,SAAS;AAAA;AAAA;AAAA,UAK7B,OAAO,QAAQ,EAAO,IAAI,MAAM,OAGvB,WAAU,CAAC,EAAc,EAAkB,EAAmC,CACvF,IAAM,EAAS,KAAM,MAAK;AAAA;AAAA,kBAEhB;AAAA,kBACA,EAAU,SAAS;AAAA,kBACnB;AAAA;AAAA,UAIV,OAAO,QAAQ,EAAO,IAAI,MAAM,OAGvB,sBAAqB,CAAC,EAA0D,CACzF,GAAI,CACA,IAAM,EAAS,KAAM,MAAK,kDAAkD,KAEtE,EAAO,MAAM,KAAK,CAAM,EAC9B,GAAI,CAAC,EAAK,OAAQ,OAAO,KAEzB,IAAM,EAAW,EAAK,GAEtB,MAAO,CACH,UAAW,EAAI,WACf,UAAW,OAAO,EAAI,YAAc,CAAC,EACrC,YAAa,OAAO,EAAI,cAAgB,CAAC,EACzC,MAAO,OAAO,EAAI,YAAc,CAAC,EACjC,cAAe,EAAI,gBAAkB,IAAI,KAAK,EAAI,eAAe,EAAE,QAAQ,EAAI,IACnF,EAEJ,MAAO,EAAK,CAER,OADA,QAAQ,MAAM,sCAAsC,IAAa,CAAG,EAC7D,WAIF,mBAAkB,EAA6H,CACxJ,IAAM,EAAkB,KAAM,MAAK,4CAEnC,OAAO,MAAM,KAAK,CAAe,EAAE,IAAI,CAAC,KAAe,CACnD,WAAY,EAAI,WAChB,WAAY,OAAO,EAAI,UAAU,EACjC,aAAc,OAAO,EAAI,YAAY,EACrC,MAAO,OAAO,EAAI,UAAU,EAC5B,gBAAkB,OAAO,EAAI,eAAe,CAChD,EAAE,OAGO,WAAU,EAAkB,CACrC,MAAM,KAAK,IAAI,IAAI,EAE3B,CChLO,MAAM,CAAa,CAEV,qBACA,qBAFZ,WAAW,CACC,EACA,EACV,CAFU,4BACA,4BAML,uBAAuB,EAAW,CACrC,OAAO,KAAK,qBAMT,uBAAuB,EAAW,CACrC,OAAO,KAAK,qBAEpB,CCZA,MAAM,EAAiC,CACnC,GAAG,CAAC,KAAqB,EAAc,CAAE,QAAQ,IAAI,EAAS,GAAG,CAAI,EACrE,IAAI,CAAC,KAAqB,EAAc,CAAE,QAAQ,KAAK,EAAS,GAAG,CAAI,EACvE,KAAK,CAAC,KAAqB,EAAc,CAAE,QAAQ,MAAM,EAAS,GAAG,CAAI,EACzE,KAAK,CAAC,KAAqB,EAAc,CAAE,QAAQ,MAAM,EAAS,GAAG,CAAI,EAC7E,CAEO,MAAM,CAAiC,OAC3B,UAAqB,IAAI,GAEjC,WAAW,CAAC,EAAuB,CACtC,EAAc,SAAW,EAGtB,GAAG,CAAC,KAAqB,EAAc,CAC1C,EAAc,SAAS,IAAI,EAAS,GAAG,CAAI,EAGxC,IAAI,CAAC,KAAqB,EAAc,CAC3C,EAAc,SAAS,KAAK,EAAS,GAAG,CAAI,EAGzC,KAAK,CAAC,KAAqB,EAAc,CAC5C,EAAc,SAAS,MAAM,EAAS,GAAG,CAAI,EAG1C,KAAK,CAAC,KAAqB,EAAc,CAC5C,GAAI,EAAc,SAAS,MACvB,EAAc,SAAS,MAAM,EAAS,GAAG,CAAI,EAGzD,CC5BA,IAAM,GAAuB,IAAI,IAAI,CAAC,UAAW,UAAW,WAAY,UAAW,OAAO,CAAC,EAErF,GAA6B,IAAI,IAAY,CAAC,QAAS,iBAAiB,CAAC,EAExE,MAAM,CAAmB,OACb,UACL,QACF,gBACA,OAER,WAAW,EAAG,CACV,KAAK,OAAS,IAAI,QAGR,YAAW,EAAwB,CAC7C,GAAI,CAAC,EAAmB,SACpB,EAAmB,SAAW,IAAI,EAEtC,OAAO,EAAmB,SAGvB,UAAU,CAAC,EAA2B,CACzC,KAAK,QAAU,CACX,YAAc,CACV,qBAAuB,IACvB,qBAAuB,IACvB,iBAAmB,iBAChB,EAAW,WAClB,KACG,EACH,OAAQ,IACA,EAAW,sBAAsC,CACjD,mBAAqB,CACzB,EAAI,CAAC,KAED,EAAW,0BAA0C,EAAW,sBAAsC,CACtG,qBAAuB,mBACvB,0BAA4B,EAC5B,uBAAyB,GACzB,uBAAyB,EAC7B,EAAI,CAAC,EAEL,gBAAkB,aAClB,eAAiB,QAEd,EAAW,MAClB,EACA,OAAS,EAAW,OAAO,IAAI,MAAM,CACjC,sBAAwB,CACpB,QAAU,GACV,mBAAqB,GACrB,kBAAoB,SACxB,KACG,CACP,EAAE,CACN,EAEA,KAAK,qCAAqC,KAAK,OAAO,EAEtD,KAAK,gBAAkB,OAAO,OAAO,KAAK,MAAM,KAAK,UAAU,KAAK,OAAO,CAAC,CAAC,EAGzE,oCAAoC,CAAC,EAAuB,CAChE,IAAM,EAA8B,EAAO,OAE3C,GAAG,EAAO,QAAU,EAEhB,MADA,KAAK,OAAO,MAAM,wFAAwF,EAChG,MAAM,wFAAwF,EAG5G,GAAI,EAAO,wBAAwC,CAAC,EAAO,QAEvD,MADA,KAAK,OAAO,MAAM,8GAA0H,EAClI,MAAM,8GAA0H,EAG9I,IAAM,EAAc,EAAO,OAA+B,CAAC,EAAK,IAAM,CAElE,OADA,EAAI,EAAE,QAAU,EAAI,EAAE,QAAU,GAAK,EAC9B,GACR,CAAC,CAAC,EAEC,EAAsB,OAAO,KAAK,CAAW,EAAE,OAAO,KAAa,EAAY,GAAc,CAAC,EAEpG,GAAG,EAAoB,OAAS,EAE5B,MADA,KAAK,OAAO,MAAM,mDAAoD,CAAmB,EAC/E,MAAM,sDAAsD,EAG1E,IAAM,EAAY,EAAO,IAAI,KAAK,EAAE,QAAQ,EAE5C,GAAG,EAAO,uBAAsC,CAC5C,IAAM,EAAoB,EAAU,KAAK,KAAK,EAAE,MAAQ,QAAQ,EAEhE,GAAG,EAEC,MADA,KAAK,OAAO,MAAM,GAAG,KAAK,UAAU,CAAiB,GAAG,EAC9C,MAAM,qJAAqJ,EAI7K,QAAU,KAAY,EAClB,GAAG,EAAS,MAAQ,OAChB,GAAI,CACA,IAAM,EAAY,IAAI,IAAI,EAAS,GAAG,EACtC,GAAI,EAAU,WAAa,SAAW,EAAU,WAAa,SAEzD,MADA,KAAK,OAAO,MAAM,GAAG,EAAS,WAAW,EAAS,KAAK,EAC7C,MAAM,qBAAqB,EAAU,gEAAgE,EAGvH,MAAO,EAAO,CACV,KAAK,OAAO,MAAM,GAAG,EAAS,WAAW,EAAS,KAAK,EACvD,IAAM,EAAe,aAAiB,MAAQ,EAAM,QAAU,4DAC9D,MAAU,MAAM,oCAAoC,GAAc,EAGrE,QAAI,EAAS,MAAQ,YACtB,GAAG,CAAC,EAAS,QACT,MAAU,MAAM,wEAAwE,GAMhG,iBAAiB,EAA+C,CACpE,GAAI,CAAC,KAAK,QACN,MAAU,MAAM,+FAA+F,EAEnH,GAAI,CAAC,KAAK,gBACN,MAAU,MAAM,kEAAkE,KAI/E,IAAG,EAA4B,CAEtC,OADA,KAAK,kBAAkB,EAChB,KAAK,QAGT,GAA6C,CAAC,EAAuC,CACxF,KAAK,kBAAkB,EAEvB,IAAM,EAAO,EAAK,MAAM,GAAG,EACvB,EAAe,KAAK,QAExB,QAAW,KAAO,EAAM,CACpB,GAAI,IAAY,QAAa,IAAY,KACrC,OAEJ,EAAU,EAAQ,GAGtB,OAAO,EAGJ,kBAAkB,EAA4B,CAEjD,OADA,KAAK,kBAAkB,EAChB,OAAO,OAAO,IAAK,KAAK,eAAiB,CAAC,EAG9C,GAA6C,CAAC,EAAS,EAAyC,CACnG,KAAK,kBAAkB,EAEvB,IAAM,EAAO,EAAK,MAAM,GAAG,EACrB,EAAU,EAAK,GAErB,GAAI,GAAqB,IAAI,CAAO,EAChC,MAAU,MAAM,yCAAyC,4BAA+B,EAG5F,IAAI,EAAe,KAAK,QAExB,QAAS,EAAI,EAAG,EAAI,EAAK,OAAS,EAAG,IAAK,CACtC,IAAM,EAAM,EAAK,GACjB,GAAI,EAAE,KAAO,IAAY,OAAO,EAAQ,KAAS,SAC7C,EAAQ,GAAO,CAAC,EAEpB,EAAU,EAAQ,GAGtB,EAAQ,EAAK,EAAK,OAAS,IAAO,EAG/B,WAA+F,CAClG,EACA,EACA,EACF,CAGE,GAFA,KAAK,kBAAkB,EAEnB,GAA2B,IAAI,CAAa,EAC5C,MAAU,MAAM,mCAAmC,OAAO,CAAG,gBAAgB,mCAAuC,EAGxH,IAAM,EAAmB,KAAK,QAAQ,OAAO,UAAU,KAAK,EAAE,OAAS,CAAK,EAE5E,GAAG,CAAC,KAAK,QAAQ,OAAU,GACvB,MAAU,MAAM,0CAA0C,eAAmB,EAGjF,KAAK,QAAQ,OAAU,GAAmB,GAAO,OAGxC,uBAAsB,CAAC,EAAgD,CAChF,IAAM,EAAkB,KAAK,mBAAmB,EAE1C,EACF,EAAgB,2BAChB,EAAgB,uBAChB,EAAgB,OAAO,QAAU,eAE/B,EAAsB,CACxB,OAAS,EAAgB,OAAO,IAAI,MAAM,CACtC,MAAQ,EAAE,MACV,OAAS,EAAE,MACf,EAAE,EACF,QAAU,EAAgB,QAC1B,uBAAyB,EAAgB,sBAAyC,EAAgB,+BAClG,SAAW,CACf,EAEM,EAA0B,MAAM,EAAW,2BAC7C,oBACA,EAAgB,WAChB,EACA,CACJ,EAEA,GAAG,CAAC,EAAwB,WAAa,CAAC,EAAwB,MAE9D,OADA,KAAK,OAAO,IAAI,mCAAmC,EAC5C,oCAIP,YADA,KAAK,OAAO,IAAI,kDAAkD,EAC3D,mDAGnB,CAEO,IAAM,EAAS,EAAmB,YAAY,EC5O9C,IAAM,EAA+E,CAExF,SAAU,CACN,aAAc,KACd,cAAe,KACf,WAAY,KACZ,WAAY,IAChB,EAEA,SAAU,CACN,aAAc,IACd,cAAe,IACf,WAAY,IACZ,WAAY,KAChB,EAEA,SAAW,CACP,aAAc,IACd,cAAe,IACf,WAAY,IACZ,WAAY,KAChB,EAEA,QAAS,CACL,aAAc,KACd,cAAe,MACf,WAAY,MACZ,WAAY,KAChB,EAEA,gBAAiB,CACb,aAAc,KACd,cAAe,IACf,WAAY,OACZ,WAAY,MAChB,CACJ,EChBA,IAAM,GAAsB,WAErB,MAAM,CAAU,CACX,OAAS,IAAI,IACb,SAAW,IAAI,IAEvB,WAAW,EAAG,EAKP,oBAAoB,CAAC,EAAgB,EAAkD,CAC1F,GAAI,OAAO,IAAiB,SAAU,CAClC,IAAM,EAAS,IAAiB,SAAW,EAAgB,GAAgB,OAC3E,KAAK,SAAS,IAAI,EAAO,GAAU,EAAgB,QAAQ,EAG3D,UAAK,SAAS,IAAI,EAAO,CAAY,EAItC,UAAU,CAAC,EAAgC,CAE9C,IAAM,EADkB,EAAO,IAAI,QAAQ,GAAG,KAAK,KAAK,EAAE,QAAU,CAAK,GACpC,QAErC,GAAI,EAAa,CACb,GAAI,OAAO,IAAgB,SACvB,OAAO,IAAgB,SAAW,EAAgB,GAAe,EAAgB,SAErF,GAAI,OAAO,IAAgB,SACvB,OAAO,EAIf,OAAO,KAAK,SAAS,IAAI,CAAK,GAAK,EAAgB,SAMhD,MAAM,CAAC,EAAgB,CAC1B,IAAM,EAAU,KAAK,OAAO,IAAI,CAAK,EACrC,GAAI,EACA,aAAa,CAAwC,EAGzD,KAAK,OAAO,OAAO,CAAK,EAGrB,YAAY,CAAC,EAAiC,CACjD,IAAQ,UAAS,SAAQ,wBAAuB,oBAAqB,GAC7D,QAAO,YAAW,cAAa,iBAAgB,iBAAkB,EAEzE,KAAK,OAAO,CAAK,EACjB,IAAM,EAAU,KAAK,WAAW,CAAK,EAGrC,GAAI,EAAY,GAAK,EAAiB,EAAG,CACrC,KAAK,SAAS,EAAO,EAAQ,EAAQ,YAAY,EACjD,OAIJ,GAAI,EAAY,GAAK,IAAmB,EAAG,CACvC,KAAK,SAAS,EAAO,EAAQ,EAAQ,aAAa,EAClD,OAIJ,GAAI,EAAc,GAAK,EAAe,CAClC,IAAM,EAAU,KAAK,IAAI,EAAG,EAAgB,KAAK,IAAI,CAAC,EAEtD,GAAI,GAAW,EAAQ,WAAY,CAC/B,GAAG,EACC,EAAsB,CAAO,EAGjC,KAAK,SAAS,EAAO,EAAQ,CAAO,EACpC,OAIJ,GAAI,EACA,EAAiB,CAAa,EAAE,MAAM,CAAC,IACnC,QAAQ,MAAM,0CAA0C,KAAU,CAAG,CACzE,EAEJ,OAIJ,GAAI,EAAQ,WACR,KAAK,SAAS,EAAO,EAAQ,EAAQ,UAAU,EAI/C,QAAQ,CAAC,EAAgB,EAAuB,EAAkB,CACtE,IAAM,EAAY,KAAK,IAAI,KAAK,IAAI,EAAG,CAAO,EAAG,EAAmB,EAE9D,EAAkB,IAAM,CAC1B,KAAK,OAAO,OAAO,CAAK,EACxB,EAAS,GAGb,GAAI,IAAc,EAAG,CACjB,IAAM,EAAY,WAAW,CAAe,EAC5C,KAAK,OAAO,IAAI,EAAO,CAAS,EAChC,OAGJ,IAAM,EAAQ,WAAW,EAAiB,CAAS,EACnD,KAAK,OAAO,IAAI,EAAO,CAAK,EAEpC,CCzIO,MAAM,CAAyB,CAGd,OAFZ,gBAAkB,IAAI,IAE9B,WAAW,CAAS,EAAkB,CAAlB,cAEpB,oBAAoB,EAAG,QAAO,yBAA8C,CACxE,GAAG,KAAK,gBAAgB,IAAI,CAAK,EAAG,OAKpC,GAJA,KAAK,gBAAgB,IAAI,CAAK,EAE9B,KAAK,OAAO,IAAI,iFAAiF,IAAQ,EAEtG,GAAuB,QAAS,CAC/B,IAAM,EAAa,EAAsB,kBAEzC,GAAI,EAAY,CACZ,IAAM,EAA8B,OAAO,IAAe,SACpD,CACE,aAAc,EAAW,aACzB,cAAe,EAAW,cAC1B,WAAY,EAAW,UAC3B,EACE,EAAgB,GAEtB,EAAO,YAAY,EAAO,UAAW,CAAW,IAK5D,sBAAsB,EAAG,QAAO,UAAS,yBAA8C,CAGnF,GAFA,KAAK,gBAAgB,OAAO,CAAK,EAE9B,GAAuB,QACtB,EAAO,YAAY,EAAO,UAAW,CAAO,EAGhD,KAAK,OAAO,IAAI,mFAAmF,IAAQ,EAEnH,CCLO,MAAM,CAAY,CACb,QACA,MACA,WACA,yBAEA,wBAEA,aAEA,WACA,eAAiB,EAEjB,sBAAwB,EAExB,OACA,OAER,WAAY,EAAG,aAAY,QAAO,UAAS,eAAc,0BAAyB,UAAiB,CAC/F,KAAK,QAAU,EACf,KAAK,WAAa,EAClB,KAAK,MAAQ,EACb,KAAK,aAAe,EACpB,KAAK,wBAA0B,EAE/B,KAAK,OAAS,IAAI,EAClB,KAAK,yBAA2B,IAAI,EAAyB,KAAK,MAAM,EAExE,KAAK,WAAa,OAAO,WAAW,EAAE,MAAM,EAAG,EAAE,EACjD,KAAK,eAAiB,EAGtB,KAAK,OAAS,OAGL,IAAG,CAAC,EAAkC,EAAgC,CAC/E,IAAQ,cAAa,SAAU,EAEzB,EAAuB,KAAK,aAAa,wBAAwB,GAC/D,QAAU,EAAkB,UAAW,MAAM,KAAK,mBAAmB,CACzE,cACA,uBACJ,CAAC,EAEK,EAAgC,EAAY,uBAAuB,SAAW,GAEpF,GAAG,CAAC,GAAoB,EAAiB,SAAW,EAAG,CACnD,GAAG,GAGC,GAFA,KAAK,wBAED,KAAK,wBAA0B,EAAY,uBAAuB,oBAAsB,IACxF,KAAK,yBAAyB,qBAAqB,CAAW,EAItE,KAAK,OAAO,KAAK,aAAa,4BAAgC,EAC9D,OAGJ,GAAI,GAAiC,KAAK,sBAAwB,EAC9D,KAAK,sBAAwB,EAC7B,KAAK,yBAAyB,uBAAuB,CAAW,EAGpE,IAAM,EAAmB,MAAM,KAAK,QAAQ,WAAW,eACnD,EACA,EACA,EACA,CACJ,EAEM,EAAa,IAAI,IAAI,CAAgB,EAErC,EAAmB,EAAiB,OAAO,KAAK,CAAC,EAAW,IAAI,EAAE,QAAQ,CAAC,EACjF,GAAI,EAAiB,OAAS,EAAG,CAC7B,IAAM,EAAoB,EAAiB,OAAO,CAAC,EAAK,IAAM,EAAM,EAAE,MAAM,OAAQ,CAAC,EAErF,MAAM,KAAK,QAAQ,WAAW,sBAAsB,EAAmB,CAAM,EAGjF,GAAI,EAAiB,SAAW,EAAG,OAEnC,KAAK,OAAO,IAAI,aAAa,oCAAwC,EAAiB,OAAO,CAAC,EAAK,IAAM,EAAM,EAAE,MAAM,OAAQ,CAAC,IAAI,EAEpI,MAAM,KAAK,aAAa,CAAE,mBAAkB,mBAAkB,aAAY,CAAC,OAGjE,aAAY,EAAG,mBAAkB,mBAAkB,aAAgB,UAA2B,CACxG,GAAI,CAAC,GAAkB,OAAQ,OAC/B,IAAM,EAAa,IAAI,IAAI,CAAgB,EAErC,EAAgB,EAAiB,OAAO,KAAK,EAAW,IAAI,EAAE,QAAQ,CAAC,EAE7E,MAAM,QAAQ,WAAW,EAAc,IAAI,EAAG,QAAO,cAAe,CAOhE,OAAO,KAAK,wBAAwB,kBAAkB,EAAO,CAAE,MAAQ,EAAO,UAAY,CAAS,CAAC,EAYvG,CAAC,OAGQ,mBAAkB,EAAG,cAAa,yBAAwG,CACpJ,IAAQ,cAAa,iBAAgB,QAAO,QAAO,KAAM,EAEnD,EAAqB,MAAM,KAAK,QAAQ,WAAW,sBAAsB,CAAK,EAE9E,EAAsB,KAAK,IAAI,EAAG,EAAc,CAAkB,EACxE,GAAI,IAAwB,EAAG,MAAO,CAAE,QAAU,CAAC,EAAG,OAAS,EAAG,EAElE,IAAM,EAAiB,KAAK,IAAI,EAAqB,CAAqB,EAC1E,GAAI,IAAmB,EAAG,MAAO,CAAE,QAAU,CAAC,EAAG,OAAS,EAAG,EAE7D,IAAM,EAAc,EAAiB,EAC/B,EAAgB,IAAmB,QAAa,EAAiB,EAAK,EAAiB,IAEvF,EAAiB,KAAK,IAAI,EAAa,CAAY,EACzD,GAAI,GAAkB,EAAG,MAAO,CAAE,QAAU,CAAC,EAAG,OAAS,EAAG,EAE5D,IAAM,EAAuB,KAAK,aAAa,wBAAwB,GAE/D,QAAU,EAAY,UAAW,MAAM,KAAK,QAAQ,WAAW,qBACnE,EACA,CACJ,EAEA,GAAI,GAAc,EAAG,MAAO,CAAE,QAAU,CAAC,EAAG,OAAS,CAAO,EAE5D,IAAM,EAAO,MAAM,KAAK,MAAM,KAAK,EAAO,GAAS,EAAG,CAAU,EAC1D,EAAY,EAAK,OAEvB,GAAI,IAAc,EAEd,OADA,MAAM,KAAK,QAAQ,WAAW,sBAAsB,EAAY,CAAM,EAC/D,CAAE,QAAU,CAAC,EAAG,OAAS,CAAO,EAG3C,GAAI,EAAY,EAAY,CACxB,IAAM,EAAe,EAAa,EAAK,OACvC,MAAM,KAAK,QAAQ,WAAW,sBAAsB,EAAc,CAAM,EAG5E,IAAM,EAAwB,KAAK,KAAK,EAAY,CAAC,EAC/C,EAA0C,MAAM,CAAqB,EAErE,EAAY,KAAK,IAAI,EAEvB,EAAW,EAEf,QAAS,EAAI,EAAG,EAAI,EAAW,GAAK,EAChC,EAAiB,KAAc,CAC3B,SAAU,KAAK,KAAK,cAAc,KAAa,KAAK,mBACpD,MAAO,EAAK,MAAM,EAAG,EAAI,CAAC,CAC9B,EAGJ,MAAO,CAAE,QAAU,EAAkB,QAAM,EAEnD,CC3LO,MAAM,CAAe,CAChB,MAEA,YACA,UACA,QAEA,OACA,gBAEA,UAAY,IAAI,IAChB,YAAc,IAAI,IAElB,kBAA6B,EAE7B,OAER,WAAW,EAAG,YAAW,UAAS,cAAa,QAAO,SAAQ,mBAAoC,CAC9F,KAAK,OAAS,IAAI,EAClB,KAAK,MAAQ,EAEb,KAAK,YAAc,EACnB,KAAK,UAAY,EACjB,KAAK,QAAU,EACf,KAAK,OAAS,EAEd,KAAK,gBAAkB,EAEvB,KAAK,gBAAgB,EAGlB,eAAe,EAAG,CACrB,KAAK,UAAU,MAAM,EACrB,KAAK,YAAY,MAAM,OAGd,QAAO,CAAC,EAAkC,CACnD,MAAM,KAAK,gBAAgB,YAAY,EAAa,SAAY,CAC5D,IAAQ,SAAU,EAIlB,GAFA,KAAK,oBAAoB,CAAW,EAEhC,KAAK,YAAY,IAAI,CAAK,GAAK,KAAK,UAAU,IAAI,CAAK,GAAG,QAC1D,OAGJ,KAAK,YAAY,IAAI,CAAK,EAC1B,KAAK,UAAU,OAAO,CAAK,EAE3B,GAAI,CACA,IAAI,EAAgC,IAE9B,EAAuB,EAAO,IAAI,aAAa,GAAG,qBAExD,GAAG,IAAyB,OAAW,CACnC,IAAM,EAAqB,MAAM,KAAK,QAAQ,WAAW,4BAA4B,EACrF,EAAuB,KAAK,IAAI,EAAG,EAAuB,CAAkB,EAGhF,GAAI,EAAuB,GAAK,CAAC,KAAK,UAAU,IAAI,CAAK,GAAG,QACxD,MAAM,KAAK,YAAY,IAAI,EAAa,CAAoB,EAGpE,MAAO,EAAO,CACV,KAAK,OAAO,MAAM,yBAAyB,KAAU,CAAK,SAE9D,CACI,KAAK,YAAY,OAAO,CAAK,EAC7B,KAAK,kBAAkB,CAAK,EAGhC,GAAI,KAAK,UAAU,IAAI,CAAK,GAAG,SAAW,GAAM,OAEhD,MAAM,KAAK,gBAAgB,aAAa,EAAa,IAAM,KAAK,QAAQ,CAAW,CAAC,EACvF,EAGE,OAAO,CAAC,EAAe,CAC1B,IAAM,EAAQ,KAAK,UAAU,IAAI,CAAK,EAEtC,GAAI,EAAO,CACP,GAAG,EAAM,SAAW,GAAM,OAW1B,GATA,KAAK,UAAU,IAAI,EAAO,IAAK,EAAO,QAAS,EAAK,CAAC,EACrD,KAAK,UAAU,OAAO,CAAK,EAC3B,KAAK,MAAM,MAAM,CAAK,EAEH,EAAO,IAAI,OAAO,MAAM,CAAC,IAAM,CAC9C,IAAM,EAAI,KAAK,UAAU,IAAI,EAAE,KAAK,EACpC,OAAO,EAAI,EAAE,QAAU,GAC1B,EAGG,KAAK,OAAO,KAAK,uBAAwB,CACrC,MAAQ,EACR,OAAS,KAAK,UAAU,IAAI,CAAK,GAAG,OAAS,CACjD,CAAC,GAKL,mBAAmB,CAAC,EAAwB,CAGhD,GAAI,CAFa,KAAK,UAAU,IAAI,EAAE,KAAK,EAGvC,KAAK,UAAU,IAAI,EAAE,MAAO,CAAE,MAAO,EAAG,IAAK,EAAE,gBAAkB,GAAI,UAAY,GAAM,QAAS,EAAM,CAAC,EAIvG,iBAAiB,CAAC,EAAe,CACrC,IAAM,EAAQ,KAAK,UAAU,IAAI,CAAK,GAAK,CAAE,MAAO,EAAG,QAAS,GAAO,IAAM,GAAI,UAAY,EAAM,EAC7F,EAAW,EAAM,MAAQ,EACzB,EAAa,EAAM,IAEnB,EAAe,GAAY,EAEjC,IAAK,EAAM,SAAW,IAAiB,CAAC,EAAM,QAC1C,KAAK,UAAU,IAAI,EAAO,CAAE,MAAO,EAAU,QAAU,EAAM,QAAS,IAAK,EAAY,UAAW,EAAM,SAAU,CAAC,EACnH,KAAK,QAAQ,CAAK,EAGlB,UAAK,UAAU,IAAI,EAAO,CAAE,MAAO,EAAU,QAAS,EAAM,QAAS,IAAK,EAAY,UAAW,EAAM,SAAU,CAAC,EAGtH,KAAK,2BAA2B,EAG5B,0BAA0B,EAAG,CACjC,IAAM,EAAM,KAAK,IAAI,EACf,EAAgC,KAAK,gBAAgB,8BACrD,GAA0B,EAAO,IAAI,+BAA+B,GAAK,IAAM,KAErF,GAAI,EAAM,KAAK,mBAAqB,GAA0B,CAAC,EAC3D,KAAK,kBAAoB,EACzB,KAAK,OAAO,KAAK,gCAAiC,CAAE,UAAW,CAAI,CAAC,EAGhF,CCvHO,MAAe,CAA4C,CAOpD,aACA,MACA,OACA,QACA,QACA,OACA,UACA,OAEV,WAAW,CAAC,EAA4B,CACpC,KAAK,aAAe,EAAK,aACzB,KAAK,MAAQ,EAAK,MAClB,KAAK,OAAS,EAAK,OACnB,KAAK,QAAU,EAAK,QACpB,KAAK,QAAU,EAAK,QACpB,KAAK,OAAS,EAAK,OACnB,KAAK,UAAY,EAAK,UACtB,KAAK,OAAS,IAAI,OAUN,kBAAiB,CAAC,EAA+C,CAC7E,IAAM,EAAkB,EAAO,IAAI,wBAAwB,EAI3D,GAFA,KAAK,OAAO,IAAI,8EAA8E,GAAiB,EAE5G,GAAmB,cAClB,QAAU,KAAK,KAAK,OAChB,GAAG,EAAE,QAAU,yBACX,MAAM,EAAQ,CAAC,EAItB,KACD,IAAM,EAAU,MAAM,QAAQ,WAC1B,KAAK,OAAO,OAAO,KAAK,EAAE,SAAW,wBAAwB,EAC5D,IAAI,CAAC,IAAM,EAAQ,CAAC,CAAC,CAC1B,EAEA,QAAW,KAAO,EACd,GAAI,EAAI,SAAW,WACf,KAAK,OAAO,MAAM,oBAAqB,EAAI,MAAM,QAMjD,sBAAqB,CAAC,EAA8D,CAChG,IAAQ,QAAO,SAAQ,WAAU,sBAAqB,YAAW,YAAW,kBAAmB,EAEzF,EAAM,EAAO,IAAI,gBAAgB,EAGjC,EADS,EAAO,IAAI,OACU,qBAE9B,EAA+B,CACjC,WAAY,GACZ,oCAAqC,EACzC,EAEA,GAAI,IAAW,yBAA0B,CAErC,GADA,EAAM,WAAa,GACf,EAAW,EAAM,oCAAsC,GAC3D,KAAK,OAAO,IAAI,4BAA4B,cAAqB,EAEhE,QAAI,IAAW,sBAAuB,CACvC,GAAI,GAAa,IAAU,EACvB,EAAM,oCAAsC,GAEhD,KAAK,OAAO,IAAI,4BAA4B,cAAqB,EAGrE,IAAM,EAAmC,CACrC,eAAgB,mBAChB,sBAAuB,EACvB,sBAAuB,IAAI,KAAK,EAAE,YAAY,EAC9C,oBAAqB,SACrB,YAAa,QACb,WAAY,EACZ,iBAAkB,CACtB,EAEA,GAAG,GAAwB,mBACvB,MAAM,KAAK,aAAa,WAAW,CAAE,MAAK,UAAS,aAAc,CAAS,CAAC,EAG1E,QAAI,OAAO,IAAyB,UAAY,IAAyB,MAAQ,EAAqB,SAAW,SAClH,MAAM,EAAqB,QAAQ,CAAG,EAG1C,OAAO,EAEf,CCzIO,MAAM,CAAmB,CAKL,QACA,OALN,gBAAkB,oCAClB,mBAAqB,OAAO,WAAW,EAExD,WAAY,CACW,EACA,EACrB,CAFqB,eACA,mBAGV,wBAAuB,CAAC,EAAgC,CACjE,MAAM,KAAK,QAAQ,IAAI,0BAAiG,KAAK,gBAAiB,MAAO,IAAU,CAC3J,KAAK,OAAO,IAAI,yDAAyD,IAAI,KAAK,EAAE,YAAY,GAAG,EAEnG,IAAM,EAAc,EAAO,IAAI,QAAQ,EAAE,KAAK,KAAK,EAAE,QAAU,EAAM,UAAU,EAC/E,GAAG,CAAC,EAAa,CACb,KAAK,OAAO,MAAM,sFAAsF,EAAM,2BAA2B,KAAK,iBAAiB,EAC/J,OAKJ,GAFmB,MAAM,KAAK,sBAAsB,EAAY,MAAO,EAAM,aAAa,EAGtF,MAAM,EAAI,QAAQ,CAAW,GAElC,IAAM,CACL,KAAK,OAAO,IAAI,iGAAiG,KAAK,iBAAiB,EAC1I,OAGQ,uBAAsB,CAAC,EAAgC,CAChE,YAAY,SAAY,CACpB,IAAM,EAAU,MAAM,KAAK,QAAQ,IAAI,uBAAuB,KAAK,EAEnE,QAAU,KAAS,EAAS,CACxB,IAAM,EAAY,EAAM,QAAQ,WAC1B,EAAe,EAAM,QAAQ,cAE7B,EAAQ,MAAM,KAAK,sBAAsB,EAAW,CAAY,EAEtE,GAAG,EACC,MAAM,EAAI,QAAQ,CAAK,EACvB,MAAM,KAAK,QAAQ,IAAI,wBAAwB,EAAM,EAAE,IAGhE,EAAO,IAAI,0BAA0B,CAAC,OAG/B,sBAAqB,CAAC,EAAgB,EAAqE,CACrH,IAAM,EAAc,EAAO,IAAI,QAAQ,EAAE,KAAK,KAAK,EAAE,QAAU,CAAK,EACpE,GAAG,CAAC,EAEA,OADA,KAAK,OAAO,MAAM,2EAA2E,IAAQ,EAC9F,KAKX,GAAG,CAFkB,MAAM,KAAK,QAAQ,IAAI,0BAA0B,EAAO,CAAY,EAEvE,CACd,IAAM,EAAW,2CAA2C,0DAE5D,OADA,KAAK,OAAO,MAAM,CAAQ,EACnB,KAGX,IAAM,EAAU,YAAY,IACtB,EAAU,OAUhB,GANqB,MAAM,KAAK,QAAQ,WAAW,iBAC/C,EACA,KAAK,mBACL,CACJ,EAGI,MAAM,KAAK,QAAQ,WAAW,qBAAqB,CAAO,EAI1D,YADA,KAAK,OAAO,IAAI,gDAAgD,sBAA0B,EACnF,KAGX,OAAO,EAEf,CClFO,MAAM,CAAsB,CAEnB,sBACA,UACA,OACA,MACA,OALZ,WAAY,CACA,EACA,EACA,EACA,EACA,EACV,CALU,6BACA,iBACA,cACA,aACA,cAGJ,OAAS,IAAI,IACb,cAAwD,KACxD,oBAAsB,GAEvB,2BAA2B,CAAC,EAAyB,EAAgB,CACxE,IAAM,EAAU,EAAO,IAAI,QAC3B,GAAI,CAAC,EAAS,MAAU,MAAM,mDAAmD,EAEjF,IAAM,EAA4B,EAAO,IAAI,kCAAkC,GAAK,EAC9E,EAAyB,KAAK,sBAC9B,GAAsB,EAA4B,GAA0B,KAIlF,GAF6B,EAAQ,cAAgB,EAE1B,EAAoB,CAC3C,KAAK,OAAO,IACR,uCAAuC,iFAE3C,EAEA,KAAK,UAAU,OAAO,CAAK,EAC3B,KAAK,wBAAwB,CAAK,EAClC,OAGJ,KAAK,0BAA0B,EAAO,CAAkB,EAGpD,yBAAyB,CAAC,EAAgB,EAA2B,CACzE,KAAK,oBAAoB,EACzB,KAAK,oBAAsB,GAE3B,KAAK,cAAgB,YAAY,IAAM,CACnC,IAAM,EAAU,EAAO,IAAI,QAC3B,GAAI,CAAC,GAAW,KAAK,oBAAqB,OAE1C,GAAI,EAAQ,eAAiB,EACzB,KAAK,OAAO,IACR,gDAAgD,EAAQ,kGAE5D,EAEA,KAAK,UAAU,OAAO,CAAK,EAC3B,KAAK,wBAAwB,CAAK,GAEvC,IAAI,EAGH,uBAAuB,CAAC,EAAgB,CAC5C,GAAI,KAAK,oBAAqB,OAC9B,KAAK,oBAAsB,GAE3B,KAAK,oBAAoB,EAEzB,KAAK,OAAO,KAAK,qBAAsB,CACnC,QACA,UAAW,KAAK,MAAM,oBAAoB,CAC9C,CAAC,EAED,KAAK,OAAO,KAAK,uBAAwB,CAAE,QAAO,OAAQ,CAAE,CAAC,EAG1D,mBAAmB,EAAG,CACzB,GAAI,KAAK,cACL,cAAc,KAAK,aAAa,EAChC,KAAK,cAAgB,KAItB,UAAU,CAAC,EAAgB,CAC9B,IAAM,EAAU,KAAK,OAAO,IAAI,CAAK,EACrC,GAAG,EACC,aAAa,CAAwC,EAGzD,KAAK,OAAO,OAAO,CAAK,EAGrB,qBAAqB,CAAC,EAA4B,EAA0B,CAG/E,IAAM,EAAS,+BAA+B,0CAExC,EAAe,IAAM,KAAK,OAAO,KAAK,iBAAkB,CAAE,QAAO,QAAO,CAAC,EAEzE,EAAQ,EAAkB,KAAK,IAAI,EAEzC,GAAI,EARgB,WAShB,KAAK,OAAO,IACR,EAAM,MACN,WAAW,IAAM,CACb,KAAK,sBAAsB,EAAO,CAAe,GAZzC,UAaE,CAClB,EAGJ,KAAK,OAAO,IACR,EAAM,MACN,WAAW,IAAM,CACb,EAAa,GACd,KAAK,IAAI,EAAG,CAAK,CAAC,CACzB,EAER,CCvHO,MAAM,CAAoB,OACf,OAA2B,IAAI,IAEtC,GAAK,CACR,IAAK,CAAI,EAAc,IAAc,CACjC,EAAoB,MAAM,IAAI,EAAK,CAAK,GAG5C,IAAK,CAAI,IAAiC,CACtC,OAAO,EAAoB,MAAM,IAAI,CAAG,GAG5C,IAAK,CAAC,IAA2B,CAC7B,OAAO,EAAoB,MAAM,IAAI,CAAG,GAG5C,OAAQ,CAAC,IAA2B,CAChC,OAAO,EAAoB,MAAM,OAAO,CAAG,GAG/C,MAAO,IAAM,CACT,EAAoB,MAAM,MAAM,EAExC,EAEO,MAAQ,CACX,IAAK,CAAC,EAAc,IAAmB,CACnC,GAAI,CAAC,EAAoB,MAAM,IAAI,CAAG,EAClC,EAAoB,MAAM,IAAI,EAAK,IAAI,GAAa,EAExD,IAAM,EAAY,EAAoB,MAAM,IAAI,CAAG,EACnD,GAAI,aAAqB,IACrB,EAAU,IAAI,CAAK,GAI3B,OAAQ,CAAC,EAAc,IAAmB,CACtC,IAAM,EAAY,EAAoB,MAAM,IAAI,CAAG,EACnD,GAAI,aAAqB,IACrB,OAAO,EAAU,OAAO,CAAK,EAEjC,MAAO,IAGX,IAAK,CAAC,IAA2C,CAC7C,IAAM,EAAY,EAAoB,MAAM,IAAI,CAAG,EACnD,OAAO,aAAqB,IAAM,EAAY,QAGlD,IAAK,CAAC,EAAc,IAA6B,CAC7C,IAAM,EAAY,EAAoB,MAAM,IAAI,CAAG,EACnD,GAAI,aAAqB,IACrB,OAAO,EAAU,IAAI,CAAK,EAE9B,MAAO,GAEf,CACJ,CAEO,IAAM,EAA4B,IAAM,IAAI,EC/C5C,MAAM,UAA0B,CAAkB,CACrC,KAAO,aACP,8BAAgC,GAChC,sBAAwB,EAEhC,sBACA,mBAGE,GAEV,WAAW,CAAC,EAA4B,CACpC,MAAM,CAAI,EAEV,KAAK,sBAAwB,IAAI,EAC7B,KAAK,sBACL,KAAK,UACL,KAAK,OACL,KAAK,MACL,KAAK,MACT,EAEA,KAAK,mBAAqB,IAAI,EAAmB,KAAK,QAAS,KAAK,MAAM,EAE1E,KAAK,GAAK,EAA0B,OAGzB,QAAO,CAAC,EAAgC,CACnD,KAAK,OAAO,IAAI,iCAAiC,EAEjD,IAAM,EAAS,KAAK,mBAEpB,GAAG,EAAO,IAAI,sBAGV,OAF4B,EAAO,IAAI,4CAI/B,MAAM,EAAO,wBAAwB,CAAG,EACxC,oBAGA,MAAM,EAAO,uBAAuB,CAAG,EACvC,oBAGA,KAAK,OAAO,IAAI,sFAAsF,EACtG,MAKZ,MAAM,KAAK,kBAAkB,EAAI,OAAO,OAG7B,YAAW,CAAC,EAAkC,EAAkC,CAC3F,KAAK,sBAAsB,WAAW,EAAY,KAAK,EAEvD,IAAQ,UAAS,UAAW,KAAK,gBAAgB,CAAW,EAE5D,GAAI,CAAC,EAAS,CACV,KAAK,OAAO,KAAK,aAAa,EAAY,wCAAwC,kCAAuC,EACzH,OAGJ,MAAM,EAAW,EAGb,eAAe,EAAG,SAAuE,CAC7F,IAAM,EAAiB,EAAO,IAAI,OAAO,KAAK,KAAK,EAAE,QAAU,CAAK,EAEpE,GAAI,CAAC,EACD,MAAO,CACH,QAAS,GACT,OAAQ,+CAA+C,KAC3D,EAGJ,GAAI,EAAe,SAAS,OAAS,SAAU,CAC3C,IAAM,EAAiB,KAAK,GAAG,MAAM,IAAI,CAAK,EAE9C,GAAI,CAAC,EAGD,OAFA,KAAK,OAAO,KAAK,WAAY,CAAE,QAAO,OAAS,gDAAiD,CAAC,EAE1F,CACH,QAAS,GACT,OAAQ,6DAA6D,KACzE,EAGJ,IAAM,EAAU,MAAM,KAAK,EAAe,OAAO,CAAC,EAClD,GAAI,EAAQ,QAAU,EAGlB,OAFA,KAAK,OAAO,KAAK,WAAY,CAAE,QAAO,OAAS,wBAAwB,EAAQ,6BAA8B,CAAC,EAEvG,CACH,QAAS,GACT,OAAQ,8BAA8B,WAAe,EAAQ,6BACjE,EAIR,MAAO,CAAE,QAAS,GAAM,OAAQ,0CAA2C,OAGhE,aAAY,CAAC,EAAkC,EAAkD,CAC5G,IAAQ,QAAO,cAAa,UAAW,EAEjC,EAAU,MAAM,KAAK,aAAa,sBAAsB,CAAK,EAEnE,GAAG,CAAC,EAAS,OAEb,GAAG,GAAS,OAAS,GACjB,GAAG,GAAU,sBAAuB,CAChC,KAAK,OAAO,IAAI,aAAa,8CAAkD,EAC/E,KAAK,OAAO,KAAK,uBAAwB,CAAE,QAAO,OAAQ,CAAE,CAAC,EAC7D,QAIR,IAAM,EAAgB,MAAM,KAAK,QAAQ,WAAW,sBAAsB,CAAK,EACzE,EAAiB,KAAK,IAAI,EAAG,EAAc,CAAa,EAE9D,KAAK,sBAAsB,WAAW,CAAK,EAE3C,KAAK,UAAU,aAAa,CACxB,QAAU,CAAE,QAAO,oBAAmB,CAAQ,EAC9C,OAAS,EACT,sBAAwB,CAAC,IAA4B,CACjD,KAAK,OAAO,IAAI,yCAAyC,EAAiB,MAAM,QAAQ,CAAC,IAAI,GAEjG,iBAAmB,MAAO,IAAoB,CAC1C,IAAM,EAAU,EAAkB,KAAK,IAAI,EAC3C,KAAK,OAAO,IAAI,6CAA6C,KAAK,IAAI,EAAG,CAAO,EAAI,MAAM,QAAQ,CAAC,IAAI,EACvG,KAAK,sBAAsB,sBAAsB,EAAa,CAAe,EAErF,CAAC,OAGU,sBAAqB,EAAG,CACnC,MAAO,QAGI,cAAa,EAAG,CAC3B,KAAK,OAAO,IAAI,qFAAqF,EAE7G,CCvJO,MAAM,UAA0B,CAAkB,CACrC,KAAO,gBAEE,8BAAgC,GACzC,sBAAwB,EAExC,WAAW,CAAC,EAA4B,CACpC,MAAM,CAAI,EAEV,KAAK,OAAO,IAAI,oCAAoC,OAGlC,QAAO,CAAC,EAAgC,CAC1D,MAAM,KAAK,kBAAkB,EAAI,OAAO,OAGtB,YAAW,CAAC,EAAkC,EAAiC,CACjG,MAAM,EAAW,OAGN,aAAY,CAAC,EAAkC,EAAgD,CAC1G,MAAM,EAAW,OAGN,sBAAqB,CAAC,EAAgC,CACjE,IAAI,EAAa,GACb,EAAsC,GACpC,EAAsB,EAAI,mBAE1B,EAAiB,EAAI,QAErB,EAAY,GAAgB,WAAW,kBAAkB,EACzD,EAAY,IAAmB,kBAC/B,EAAiB,EAAY,GAAgB,QAAQ,mBAAoB,EAAE,EAAI,KAErF,QAAa,QAAO,YAAY,EAAI,gBAAgB,EAChD,GAAI,CACA,GAAG,GAAU,0BAA4B,EAAY,SACrD,GAAI,GAAa,IAAU,EAAgB,SAE3C,IAAM,EAAU,MAAM,KAAK,aAAa,sBAAsB,CAAK,EAEnE,GAAI,CAAC,GAAW,EAAQ,QAAU,EAAG,CACjC,QAAQ,IAAI,wCAAwC,mBAAuB,EAC3E,EAAI,QAAQ,CAAK,EACjB,SAGJ,IAAM,EAAY,EAAQ,MAS1B,GAAI,CARiB,MAAM,KAAK,QAAQ,WAAW,gBAC/C,EACA,EACA,EACA,EACA,KACJ,EAEmB,CACf,QAAQ,IAAI,kCAAkC,cAAkB,EAChE,SAGJ,IAAM,EAA4B,EAAO,IAAI,kCAAkC,GAAK,EAE9E,EAAc,MAAM,KAAK,sBAAsB,CACjD,QACA,SACA,SAAW,EACX,sBACA,YACA,YACA,gBACJ,CAAC,EAED,GAAI,EAAY,WAAY,EAAa,GAEzC,GAAI,EAAY,oCACZ,EAAsC,GAG9C,MAAO,EAAO,CACV,QAAQ,IAAI,kCAAkC,KAAU,CAAK,EAIrE,OAAO,OAGW,cAAa,CAAC,EAAgC,EACxE,CCtFO,MAAM,UAAuB,CAAkB,CAO9B,KANJ,KAAO,aACP,8BAAgC,GAChC,sBAAwB,EAEhC,sBAER,WAAW,CAAS,EAA4B,CAC5C,MAAM,CAAI,EADM,YAGhB,KAAK,OAAO,IAAI,mDAAmD,EAEnE,KAAK,sBAAwB,IAAI,EAC7B,KAAK,sBACL,KAAK,UACL,KAAK,OACL,KAAK,MACL,KAAK,MACT,OAGkB,QAAO,CAAC,EAAgC,CAC1D,MAAM,KAAK,kBAAkB,EAAI,OAAO,OAGtB,YAAW,CAAC,EAAkC,EAAkC,CAClG,IAAQ,SAAU,EAElB,KAAK,sBAAsB,oBAAoB,EAE/C,IAAM,EAAmB,KAAK,KAAK,MAAM,iBAAiB,EACpD,EAAS,KAAK,KAAK,OAEzB,GAAI,CAAC,EAAkB,CACnB,KAAK,OAAO,IAAI,uDAAuD,EAEvE,EAAO,KAAK,qBAAsB,CAC9B,QACA,UAAW,KAAK,KAAK,MAAM,oBAAoB,CACnD,CAAC,EAED,EAAO,KAAK,uBAAwB,CAAE,QAAO,OAAQ,CAAE,CAAC,EAExD,OAGJ,MAAM,KAAK,KAAK,MAAM,mBAAmB,CAAE,UAAW,CAAM,EAAG,CAAU,OAGvD,aAAY,CAAC,EAAkC,EAAiC,CAClG,IAAQ,QAAO,cAAa,UAAW,EAEjC,EAAU,MAAM,KAAK,aAAa,sBAAsB,CAAK,EAEnE,GAAG,CAAC,EAAS,OAEb,GAAG,GAAS,OAAS,GACjB,GAAG,GAAU,sBAAuB,CAChC,KAAK,OAAO,IAAI,aAAa,8CAAkD,EAC/E,KAAK,OAAO,KAAK,uBAAwB,CAAE,QAAO,OAAQ,CAAE,CAAC,EAC7D,QAIR,IAAM,EAAgB,MAAM,KAAK,QAAQ,WAAW,sBAAsB,CAAK,EACzE,EAAiB,KAAK,IAAI,EAAG,EAAc,CAAa,EAExD,EAAoB,SAAY,CAClC,KAAK,sBAAsB,oBAAoB,EAC/C,MAAM,EAAW,GAGrB,KAAK,UAAU,aAAa,CACxB,QAAU,CAAE,QAAO,oBAAmB,CAAQ,EAC9C,OAAS,EACT,sBAAuB,CAAC,IAA4B,CAEhD,OADA,KAAK,OAAO,IAAI,yCAAyC,EAAiB,MAAM,QAAQ,CAAC,IAAI,EACtF,KAAK,sBAAsB,4BAA4B,EAAgB,CAAK,GAEvF,iBAAmB,MAAO,IAAkB,CACxC,KAAK,OAAO,IAAI,iDAAkD,CAAa,EAGvF,CAAC,EACD,YAGkB,sBAAqB,CAAC,EAAgC,CACxE,IAAI,EAAa,GACb,EAAsC,GACpC,EAAsB,EAAI,mBAE1B,EAAiB,EAAI,QAErB,EAAY,GAAgB,WAAW,kBAAkB,EACzD,EAAY,IAAmB,kBAC/B,EAAiB,EAAY,GAAgB,QAAQ,mBAAoB,EAAE,EAAI,KAErF,QAAa,QAAO,YAAY,EAAI,gBAAgB,EAChD,GAAI,CACA,GAAG,GAAU,0BAA4B,EAAY,SACrD,GAAI,GAAa,IAAU,EAAgB,SAE3C,IAAM,EAAU,MAAM,KAAK,aAAa,sBAAsB,CAAK,EAEnE,GAAG,CAAC,EAAS,SAEb,GAAI,EAAQ,QAAU,EAGlB,GAFA,KAAK,OAAO,IAAI,oBAAoB,+BAAmC,yBAA8B,EAElG,GAAU,sBAAuB,CAChC,EAAI,QAAQ,CAAK,EACjB,SAGA,OAAI,QAAQ,CAAK,EAIzB,IAAM,EAAY,EAAQ,MAS1B,GAAI,CARiB,MAAM,KAAK,QAAQ,WAAW,gBAC/C,EACA,EACA,EACA,EACA,KACJ,EAEmB,CACf,KAAK,OAAO,IAAI,oCAAoC,cAAkB,EACtE,SAGJ,IAAM,EAAqC,EAAO,IAAI,kCAAkC,GAAK,EACvF,EAAc,EAAO,IAAI,SAAS,gBAEpC,EAAW,EAEf,GAAG,GAAe,EAAO,IAAI,QAAS,CAElC,IAAM,EADU,EAAO,IAAI,QACO,cAAgB,KAE5C,EAAyB,KAAK,sBAE9B,EAAsB,EAA4B,EAExD,GAAI,EAAmB,EAOnB,OANA,KAAK,OAAO,IACR,6CAA6C,EAAiB,QAAQ,CAAC,4CAC/C,cAAsC,mCAClE,EAEA,MAAM,KAAK,cAAc,CAAG,EACrB,GAEX,IAAM,EAAoB,KAAK,IAAI,EAAG,EAAmB,CAAsB,EAC/E,EAAW,KAAK,IAAI,EAA2B,CAAiB,EAGpE,IAAM,EAAc,MAAM,KAAK,sBAAsB,CACjD,QACA,SACA,WACA,sBACA,YACA,YACA,gBACJ,CAAC,EAED,GAAI,EAAY,WAAY,EAAa,GAEzC,GAAI,EAAY,oCACZ,EAAsC,GAG9C,MAAO,EAAO,CACV,KAAK,OAAO,IAAI,oCAAoC,KAAU,CAAK,EAI3E,OAAO,OAGW,cAAa,CAAC,EAAgC,CAChE,IAAI,EAAa,GACX,EAAsB,EAAI,mBAC1B,EAAyB,EAAO,IAAI,+BAA+B,EAEnE,EAAe,EAAI,gBAAgB,EAEzC,QAAa,QAAO,YAAY,EAAc,CAE1C,GAAG,GAAU,0BAA4B,EAAY,SAErD,IAAM,EAAmC,CACrC,eAAgB,mBAChB,sBAAwB,EACxB,sBAAwB,IAAI,KAAK,EAAE,YAAY,EAC/C,oBAAsB,SACtB,YAAc,OACd,WAAa,EACb,iBAAmB,CACvB,EAIA,GAFA,KAAK,OAAO,IAAI,IAAI,yCAA8C,IAAyB,EAExF,GAAU,yBAA0B,EAAa,GAEpD,IAAM,EAAU,EAAI,QAEpB,MAAM,KAAK,QAAQ,WAAW,iBAAiB,EAAS,EAAI,SAAS,EACrE,MAAM,KAAK,QAAQ,IAAI,WAAW,CAAY,EAE9C,MAAM,KAAK,aAAa,WAAW,CAC/B,IAAK,EAAO,IAAI,gBAAgB,EAChC,UACA,aAAc,CAClB,CAAC,EAED,MAAM,KAAK,QAAQ,IAAI,uBAAuB,EAAO,mBAAmB,GAGpF,CCtOA,gBAAS,wBCAT,kBAGA,IAAe,cDKR,MAAM,UAAyB,EAAa,CAMlB,OALrB,eAAyC,KACzC,OAED,QAEP,WAAW,CAAkB,EAAwB,CACjD,MAAM,EADmB,cAEzB,KAAK,OAAS,IAAI,OAGT,MAAK,EAAG,CACjB,IAAM,EAAO,KAEb,KAAK,OAAO,IAAI,2CAA2C,KAAK,OAAO,YAAY,KAAK,OAAO,YAAY,EAE3G,IAAM,EAAgB,KAAK,OAAO,OAAS,UAAY,KAAK,OAAO,OAAS,YAE5E,GAAI,EACA,KAAK,OAAO,IAAI,0DAA0D,KAAK,OAAO,MAAM,EAGhG,KAAK,eAAiB,GAAM,CACxB,KAAO,KAAK,OAAO,QACf,EAAgB,CAChB,UAAW,CACP,IAAI,CAAC,EAAM,CACP,EAAK,KAAK,OAAQ,CAAI,GAE1B,OAAO,CAAC,EAAM,EAAS,CACnB,EAAK,KAAK,UAAW,EAAM,CAAO,GAEtC,KAAK,CAAC,EAAM,EAAO,CACf,EAAK,KAAK,QAAS,EAAM,CAAK,EAEtC,CACJ,EAAI,CAAC,EACL,KAAK,CAAC,EAAS,CACX,GAAI,EAAK,QACL,OAAO,EAAK,QAAQ,CAAO,EAG/B,OADA,EAAK,OAAO,KAAK,yCAAyC,EAAQ,UAAU,EAAQ,KAAK,EAClF,IAAI,SAAS,KAAM,CAAE,OAAQ,GAAI,CAAC,GAE7C,iBAAkB,GAClB,mBAAoB,MACxB,CAAC,EAED,MAAM,KAAK,eAAe,MAAM,EAChC,KAAK,OAAO,IAAI,uDAAuD,KAAK,OAAO,MAAM,OAGhF,MAAK,EAAG,CACjB,GAAI,CACA,MAAM,KAAK,gBAAgB,MAAM,EAAI,EAEzC,MAAO,EAAK,CACR,KAAK,OAAO,MAAM,oCAAqC,CAAG,GAGtE,CEpDA,SAAS,EAAc,CAAC,EAAiB,CACvC,MACE,CAAC,CAAC,GACF,OAAO,EAAE,QAAU,YACnB,OAAO,EAAE,OAAS,YAClB,OAAO,EAAE,MAAQ,UACjB,OAAO,EAAE,SAAS,MAAQ,WAI9B,SAAS,EAAgB,CAAC,EAAoC,CAC5D,IAAM,EAA8B,CAAC,EACrC,GAAI,CAAC,EAAO,OAAO,EAGnB,GAAI,OAAO,EAAM,UAAY,YAAc,OAAO,EAAM,MAAQ,WAI9D,OAHA,EAAM,QAAQ,CAAC,EAAW,IAAc,CACtC,EAAI,OAAO,CAAC,EAAE,YAAY,GAAK,OAAO,CAAC,EACxC,EACM,EAIT,QAAY,EAAG,KAAM,OAAO,QAAQ,CAAK,EAAG,CAC1C,GAAI,GAAK,KAAM,SACf,EAAI,EAAE,YAAY,GAAK,MAAM,QAAQ,CAAC,EAAI,EAAE,KAAK,IAAI,EAAI,OAAO,CAAC,EAEnE,OAAO,EAGT,SAAS,CAAc,CAAC,EAAoC,CAC1D,IAAM,EAA8B,CAAC,EACrC,GAAI,CAAC,EAAO,OAAO,EAEnB,IAAM,EAAM,CAAC,EAAW,IAAW,CACjC,GAAI,GAAK,KAAM,OACf,EAAI,GAAK,KAAK,EAAM,GAAG,EAAI,MAAM,IAAM,OAAO,CAAC,GAGjD,GAAI,OAAO,EAAM,UAAY,WAC3B,EAAM,QAAQ,CAAC,EAAW,IAAc,EAAI,EAAG,CAAC,CAAC,EAEjD,aAAY,EAAG,KAAM,OAAO,QAAQ,CAAK,EACvC,EAAI,EAAG,MAAM,QAAQ,CAAC,EAAI,EAAE,KAAK,GAAG,EAAI,CAAC,EAG7C,OAAO,EAGT,SAAS,EAAY,CAAC,EAAqC,CACzD,IAAM,EAAI,EAAI,QAAQ,GAAG,EACzB,OAAO,IAAM,GAAK,CAAC,EAAI,EAAe,IAAI,gBAAgB,EAAI,MAAM,EAAI,CAAC,CAAC,CAAC,EAG7E,SAAS,EAAY,CAAC,EAAqB,CAEzC,IAAM,EAAM,KAAK,CAAG,EACd,EAAQ,WAAW,KAAK,EAAK,CAAC,IAAM,EAAE,WAAW,CAAC,CAAC,EACzD,OAAO,IAAI,YAAY,EAAE,OAAO,CAAK,EAGvC,SAAS,EAAW,CAAC,EAA0C,CAC7D,OAAO,IAAI,YAAY,EAAE,OAAO,CAAQ,EAG1C,eAAe,EAAU,CAAC,EAA8B,CACtD,IAAM,EAAM,IAAI,YACV,EAAuB,CAAC,EAC9B,cAAiB,KAAK,EACpB,EAAO,KAAK,OAAO,IAAM,SAAW,EAAI,OAAO,CAAC,EAAI,CAAC,EAEvD,IAAM,EAAQ,EAAO,OAAO,CAAC,EAAG,IAAM,EAAI,EAAE,OAAQ,CAAC,EAC/C,EAAM,IAAI,WAAW,CAAK,EAC5B,EAAM,EACV,QAAW,KAAK,EACd,EAAI,IAAI,EAAG,CAAG,EACd,GAAO,EAAE,OAEX,OAAO,IAAI,YAAY,EAAE,OAAO,CAAG,EAGrC,SAAS,EAAS,CAAC,EAAc,EAA0B,CACzD,IAAM,EAAK,EAAY,YAAY,EAEnC,GAAI,EAAG,SAAS,MAAM,EACpB,GAAI,CAAE,OAAO,KAAK,MAAM,CAAI,EAAK,KAAM,CAAE,OAAO,EAElD,GAAI,EAAG,SAAS,mCAAmC,EACjD,OAAO,EAAe,IAAI,gBAAgB,CAAI,CAAC,EAGjD,GAAI,CAAC,EAAI,CACP,IAAM,EAAI,EAAK,UAAU,EACzB,GAAI,EAAE,WAAW,GAAG,GAAK,EAAE,WAAW,GAAG,EACvC,GAAI,CAAE,OAAO,KAAK,MAAM,CAAI,EAAK,KAAM,GAG3C,OAAO,EAIT,SAAS,EAAY,CACnB,EACA,EACA,EAAW,GAC4B,CACvC,GAAI,GAAO,MAAQ,IAAQ,GAAI,MAAO,CAAE,KAAM,KAAM,QAAS,IAAK,EAElE,IAAI,EACJ,GAAI,OAAO,IAAQ,SACjB,EAAO,EAAW,GAAa,CAAG,EAAI,EACjC,QAAI,aAAe,aAAe,YAAY,OAAO,CAAG,EAC7D,EAAO,GAAY,CAAU,EAG7B,WAAO,CAAE,KAAM,EAAK,QAAS,IAAK,EAGpC,MAAO,CAAE,KAAM,GAAU,EAAM,CAAW,EAAG,QAAS,CAAK,EAG7D,IAAM,GAAkB,IAAI,IAAI,CAAC,MAAO,MAAM,CAAC,EAM/C,eAAsB,EAAY,CAAC,EAAuC,CACxE,GAAI,CAAC,EACH,MAAU,MAAM,6CAA6C,EAM/D,IAAI,EAAgB,EACpB,GAAI,CAAC,GAAe,CAAK,GAAK,GAAe,EAAM,OAAO,EACxD,EAAQ,EAAM,QACT,QAAI,EAAM,KAAO,EAAM,IAAI,SAAW,CAAC,EAAM,QAClD,EAAQ,EAAM,IAQhB,GAAI,GAAe,CAAK,EAAG,CACzB,IAAM,EAAQ,EAAM,MAAM,EACpB,EAAS,OAAO,EAAM,QAAU,KAAK,EAAE,YAAY,EACnD,EAAU,GAAiB,EAAM,OAAO,EAE1C,EAAsB,KAC1B,GAAI,CAAC,GAAgB,IAAI,CAAM,EAC7B,GAAI,CAAE,EAAO,MAAM,EAAM,KAAK,EAAK,KAAM,CAAE,EAAO,KAEpD,IAAQ,OAAM,WAAY,GAAa,EAAM,EAAQ,iBAAmB,EAAE,EAE1E,MAAO,CACL,SACA,IAAK,EAAM,IACX,UACA,MAAO,EAAe,IAAI,IAAI,EAAM,GAAG,EAAE,YAAY,EACrD,OACA,SACF,EAOF,GAAI,EAAM,gBAAkB,EAAM,YAAc,EAAM,QAAS,CAC7D,IAAM,EAAU,GAAiB,EAAM,OAAO,EACxC,EAAS,OACb,EAAM,gBAAgB,MAAM,QAAU,EAAM,YAAc,MAC5D,EAAE,YAAY,EAER,EAAO,EAAM,SAAW,EAAM,MAAQ,IACtC,EAAK,EAAM,eAAiB,IAAI,EAAM,iBAAmB,GACzD,EAAQ,EAAQ,sBAAwB,QACxC,EAAO,EAAQ,MAAW,eAC1B,EAAM,EAAM,QAAU,GAAG,OAAW,IAAO,IAAO,IAElD,EACJ,EAAM,uBAAyB,OAAO,KAAK,EAAM,qBAAqB,EAAE,OACpE,EAAe,EAAM,qBAAqB,EAC1C,EAAM,eACJ,GAAa,IAAI,EAAM,gBAAgB,EACvC,CAAC,GAED,OAAM,WAAY,GACxB,EAAM,KACN,EAAQ,iBAAmB,GAC3B,CAAC,CAAC,EAAM,eACV,EAEA,MAAO,CAAE,SAAQ,MAAK,UAAS,QAAO,OAAM,SAAQ,EAQtD,GAAI,EAAM,SAAW,EAAM,OAAQ,CACjC,IAAM,EAAU,GAAiB,EAAM,OAAO,EACxC,EAAS,OAAO,EAAM,MAAM,EAAE,YAAY,EAE1C,EAAe,EAAM,aAAe,EAAM,KAAO,IACnD,EAAM,EACV,GAAI,CAAC,gBAAgB,KAAK,CAAI,EAAG,CAC/B,IAAM,EACJ,EAAQ,sBAAsB,MAAM,GAAG,EAAE,IAAI,KAAK,GAClD,EAAM,WACL,EAAM,QAAQ,UAAY,QAAU,QACjC,EAAO,EAAQ,qBAAuB,EAAQ,MAAW,YAC/D,EAAM,GAAG,OAAW,IAAO,IAI7B,IAAM,EADc,EAAM,OAAS,OAAO,KAAK,EAAM,KAAK,EAAE,OAAS,EACzC,EAAe,EAAM,KAAK,EAAI,GAAa,CAAG,EAGtE,EAAmB,EAAM,OAAS,OAAY,EAAM,KAAO,EAAM,QACrE,GACE,IAAY,QACZ,CAAC,GAAgB,IAAI,CAAM,GAC3B,OAAQ,EAAc,OAAO,iBAAmB,WAEhD,EAAU,MAAM,GAAW,CAAK,EAGlC,IAAM,EAAM,GAAa,EAAS,EAAQ,iBAAmB,EAAE,EAG/D,GAAI,EAAI,UAAY,MAAQ,EAAM,SAAW,KAC3C,EAAI,QACF,OAAO,EAAM,UAAY,SAAW,EAAM,QAAU,GAAY,EAAM,OAAO,EAGjF,MAAO,CAAE,SAAQ,MAAK,UAAS,QAAO,KAAM,EAAI,KAAM,QAAS,EAAI,OAAQ,EAG7E,MAAU,MAAM,oDAAoD,EChQ/D,MAAe,CAAkB,CASL,OARrB,UAAsB,GACtB,OAKA,GAEV,WAAW,CAAoB,EAAwB,CAAxB,cAC3B,KAAK,OAAS,IAAI,EAClB,KAAK,GAAK,EAA0B,EAS5C,CCJO,MAAM,WAA0B,CAAkB,CAOxC,cACQ,iBACT,QACA,aATa,UAAY,OAE7B,aACA,eAER,WAAW,CACE,EACQ,EACT,EACA,EACV,CACE,MAAM,CAAa,EALV,qBACQ,wBACT,eACA,oBAIR,IAAM,EAAY,EAAO,IAAI,QAAQ,EAC/B,EAAyC,IAAI,IACnD,EAAU,QAAQ,EAAG,WAAU,WAAY,EAAI,IAAI,EAAO,CAAQ,CAAC,EAEnE,KAAK,aAAe,EAEpB,KAAK,iBAAiB,QAAU,MAAO,IAAiB,CACpD,OAAO,MAAM,KAAK,YAAY,CAAG,QAInB,MAAK,EAAG,OAER,UAAS,CAAC,EAAe,EAAc,CACzD,IAAM,EAAW,KAAK,aAAa,IAAI,CAAK,EAC5C,GAAI,CAAC,EACD,MAAU,MAAM,sCAAsC,IAAQ,EAGlE,GAAI,EAAS,OAAS,OAAQ,OAE9B,IAAQ,YAAW,SAAU,EAE7B,GAAI,CACA,MAAM,MAAM,EAAS,IAAK,CACtB,OAAQ,OACR,QAAS,CACL,eAAgB,sBACb,EAAS,QACZ,cAAe,EACf,eAAgB,EAAM,OAAO,SAAS,EACtC,wBAAyB,EAAO,IAAI,gBAAgB,EACpD,cAAe,OACf,UAAW,EACX,wBAAyB,OAAO,WAAW,CAC/C,EACA,KAAM,KAAK,UAAU,CAAE,UAAW,EAAW,OAAM,CAAC,CACxD,CAAC,EAEL,MAAO,EAAO,CACV,KAAK,OAAO,MAAM,2CAA4C,CAAK,GAIpE,oBAAoB,CAAC,EAAe,CACvC,MAAO,CAAC,EAGL,SAAS,CAAC,EAA6C,CAC1D,KAAK,eAAiB,OAGJ,KAAI,EAAG,OAEf,YAAW,CAAC,EAAc,CACpC,IAAQ,IAAK,EAAQ,SAAQ,OAAM,WAAY,MAAM,GAAa,CAAG,EAE/D,EAAM,IAAI,IAAI,CAAM,EACpB,EAAO,CAAE,UAAS,MAAK,EAE7B,GAAI,EAAI,SAAS,SAAS,MAAM,GAAK,IAAW,OAAQ,CACpD,IAAM,EAAW,MAAM,KAAK,UAAU,CAAI,EAC1C,OAAO,IAAI,SAAS,EAAS,QAAS,CAAE,OAAQ,EAAS,MAAO,CAAC,EAGrE,GAAI,EAAI,SAAS,SAAS,OAAO,GAAK,IAAW,OAAQ,CACrD,IAAM,EAAW,MAAM,KAAK,WAAW,CAAI,EAC3C,OAAO,IAAI,SAAS,EAAS,QAAS,CAAE,OAAQ,EAAS,MAAO,CAAC,EAGrE,GAAI,EAAI,SAAS,SAAS,QAAQ,GAAK,IAAW,OAAQ,CACtD,IAAM,EAAW,MAAM,KAAK,YAAY,CAAI,EAC5C,OAAO,IAAI,SAAS,EAAS,QAAS,CAAE,OAAQ,EAAS,MAAO,CAAC,EAGrE,GAAI,EAAI,SAAS,SAAS,aAAa,GAAK,IAAW,OAAQ,CAC3D,IAAM,EAAW,MAAM,KAAK,iBAAiB,CAAI,EACjD,OAAO,IAAI,SAAS,EAAS,QAAS,CAAE,OAAQ,EAAS,MAAO,CAAC,EAGrE,OAAO,IAAI,SAAS,iBAAkB,CAAE,OAAQ,GAAI,CAAC,OAG3C,mBAAkB,CAAC,EAAgB,EAAmB,EAAwB,EAAiD,CACzI,GAAI,CACA,OAAQ,OACC,MACD,MAAM,KAAK,aAAa,SAAS,EAAO,CAAU,EAClD,UACC,OACD,MAAM,KAAK,aAAa,SAAS,EAAO,CAAU,EAClD,UACC,QACD,MAAM,KAAK,aAAa,WAAW,EAAO,CAAU,EACpD,UACC,aACD,MAAM,KAAK,QAAQ,WAAW,iBAAiB,EAAU,CAAK,EAC9D,OAGZ,MAAO,EAAO,CAEV,MADA,KAAK,OAAO,MAAM,kCAAkC,iBAAsB,MAAW,CAAK,EACpF,GAIN,SAAS,CAAC,EAAgB,CAC9B,GAAI,OAAO,IAAS,SAChB,GAAI,CACA,OAAO,KAAK,MAAM,CAAI,EAE1B,MAAO,EAAU,CACb,MAAU,MAAM,iCAAiC,EAAI,SAAS,EAGtE,OAAO,EAGH,cAAc,CAAC,EAAoB,CACvC,IAAM,EAAU,EAAK,QACf,EAAO,KAAK,UAAU,EAAK,IAAI,EAC/B,EAAQ,EAAQ,WAChB,EAAW,EAAQ,gBAAkB,GAE3C,GAAI,CAAC,EACD,MAAU,MAAM,gDAAgD,EAGpE,MAAO,CAAE,UAAS,OAAM,QAAO,UAAS,OAG9B,cAAa,CAAC,EAA0F,CAClH,IAAQ,QAAO,OAAM,YAAa,KAAK,eAAe,CAAI,EAGpD,GADa,MAAM,QAAQ,GAAM,OAAO,EAAI,EAAK,QAAU,CAAC,GAE7D,IAAI,CAAC,IAAO,OAAO,SAAS,OAAO,CAAE,EAAG,EAAE,CAAC,EAC3C,OAAO,CAAC,IAAO,OAAO,UAAU,CAAE,GAAK,GAAM,CAAC,EAEnD,MAAO,CAAE,QAAO,aAAY,UAAS,OAG3B,UAAS,CAAC,EAAgD,CACpE,IAAQ,aAAY,QAAO,YAAa,MAAM,KAAK,cAAc,CAAI,EAErE,OADA,MAAM,KAAK,mBAAmB,EAAO,EAAU,EAAY,KAAK,EACzD,CAAE,QAAS,oBAAqB,OAAQ,GAAI,OAGzC,WAAU,CAAC,EAAiD,CACtE,IAAQ,aAAY,QAAO,YAAa,MAAM,KAAK,cAAc,CAAI,EAErE,OADA,MAAM,KAAK,mBAAmB,EAAO,EAAU,EAAY,MAAM,EAC1D,CAAE,QAAS,wBAAyB,OAAQ,GAAI,OAG7C,YAAW,CAAC,EAAiD,CACvE,IAAQ,QAAO,WAAU,cAAe,MAAM,KAAK,cAAc,CAAI,EAErE,OADA,MAAM,KAAK,mBAAmB,EAAO,EAAU,EAAY,OAAO,EAC3D,CAAE,QAAS,qBAAsB,OAAQ,GAAI,OAG1C,iBAAgB,CAAC,EAAiD,CAC5E,IAAQ,QAAO,YAAa,KAAK,eAAe,CAAI,EAEpD,GAAI,CAAC,EACD,MAAU,MAAM,oDAAoD,EAIxE,OADA,MAAM,KAAK,mBAAmB,EAAO,EAAU,CAAC,EAAG,YAAY,EACxD,CAAE,QAAS,sBAAuB,OAAQ,GAAI,EAE7D,CCtMO,MAAM,WAA+B,CAAkB,CAUd,iBATnB,UAAY,YAE7B,WAAa,IAAI,IACjB,eAEA,UAAY,CAAC,IAAgB,KAAK,iBAAiB,CAAI,EACvD,aAAe,CAAC,EAAa,IAAsB,KAAK,UAAU,EAAM,CAAO,EAC/E,WAAa,CAAC,IAAgB,KAAK,kBAAkB,CAAI,EAEjE,WAAW,CAAC,EAAgC,EAAqC,CAC7E,MAAM,CAAM,EAD4B,wBAGxC,KAAK,iBAAiB,GAAG,OAAQ,KAAK,SAAS,EAC/C,KAAK,iBAAiB,GAAG,UAAW,KAAK,YAAY,EACrD,KAAK,iBAAiB,GAAG,QAAS,KAAK,UAAU,OAG/B,MAAK,EAAG,OAyBR,UAAS,CAAC,EAAgB,EAAe,CAC3D,IAAM,EAAQ,KAAK,WAAW,IAAI,CAAK,EACvC,GAAI,CAAC,GAAS,EAAM,OAAS,EAAG,CAC5B,KAAK,OAAO,KAAK,qDAAqD,GAAO,EAC7E,OAGJ,IAAM,EAAoB,KAAK,UAAU,CAAO,EAEhD,QAAW,KAAQ,EACf,GAAI,CACA,EAAK,KAAK,CAAiB,EAE/B,MAAO,EAAK,CACR,KAAK,OAAO,MAAM,8CAA8C,EAAK,MAAO,CAAG,GAKpF,oBAAoB,CAAC,EAAgB,CACxC,IAAM,EAAQ,KAAK,WAAW,IAAI,CAAK,EACvC,GAAG,CAAC,EAAO,MAAO,CAAC,EACnB,OAAO,MAAM,KAAK,EAAM,OAAO,CAAC,EAAE,IAAI,KAAQ,EAAK,EAAE,EAGlD,SAAS,CAAC,EAA+C,CAC5D,KAAK,eAAiB,OAGJ,KAAI,EAAG,CACzB,KAAK,iBAAiB,IAAI,OAAQ,KAAK,SAAS,EAChD,KAAK,iBAAiB,IAAI,UAAW,KAAK,YAAY,EACtD,KAAK,iBAAiB,IAAI,QAAS,KAAK,UAAU,EAElD,QAAW,KAAS,KAAK,WAAW,OAAO,EACvC,QAAW,KAAQ,EACf,GAAI,CAAE,EAAK,MAAM,KAAM,sBAAsB,EAAK,KAAM,EAIhE,KAAK,WAAW,MAAM,EAGlB,gBAAgB,CAAC,EAAa,CAClC,KAAK,OAAO,IAAI,gCAAiC,EAAK,EAAE,EAGpD,SAAS,CAAC,EAAa,EAAmB,CAC9C,IAAM,EAAO,KAAK,MAAM,EAAQ,SAAS,CAAC,EAE1C,EAAK,OAAS,WACV,KAAK,yBAAyB,EAAM,CAAI,EACxC,KAAK,oBAAoB,CAAI,EAG7B,wBAAwB,CAAC,EAAa,EAA0C,CACpF,IAAI,EAAW,KAAK,WAAW,IAAI,EAAK,KAAK,EAE7C,GAAI,CAAC,EACD,EAAW,IAAI,IACf,KAAK,WAAW,IAAI,EAAK,MAAO,CAAQ,EAG5C,GAAI,EAAS,IAAI,CAAI,EAAG,CACpB,KAAK,OAAO,IAAI,sBAAsB,EAAK,sCAAsC,EAAK,OAAO,EAC7F,OAGJ,EAAK,UAAU,EAAK,KAAK,EACzB,EAAS,IAAI,CAAI,EAEjB,KAAK,GAAG,MAAM,IAAI,EAAK,MAAO,EAAK,EAAE,EAErC,KAAK,OAAO,IAAI,sBAAsB,EAAK,2BAA2B,EAAK,OAAO,EAG9E,mBAAmB,CAAC,EAAY,CACpC,GAAI,KAAK,eAAgB,CACrB,IAAM,EAAQ,EAAK,MACb,EAAU,EAAK,OAAS,OAAY,GAAM,KAAO,EACvD,GAAI,EACA,KAAK,eAAe,EAAO,CAAO,GAKtC,iBAAiB,CAAC,EAAa,CACnC,KAAK,OAAO,IAAI,8DAA+D,EAAK,EAAE,EAEtF,QAAY,EAAO,KAAU,KAAK,WAAW,QAAQ,EACjD,GAAI,EAAM,IAAI,CAAI,GAGd,GAFA,EAAM,OAAO,CAAI,EACjB,KAAK,GAAG,MAAM,OAAO,EAAO,EAAK,EAAE,EAC/B,EAAM,OAAS,EACf,KAAK,WAAW,OAAO,CAAK,GAKhD,CC1IO,MAAM,CAAwB,CAMJ,OAAgC,QAAwC,aAL7F,QAAgC,CAAC,EACzB,SACR,iBACS,aAEjB,WAAW,CAAkB,EAAgC,EAAwC,EAA6B,CAArG,cAAgC,eAAwC,oBAIjG,GAHA,KAAK,SAAW,EAAO,KACvB,KAAK,aAAe,EAAO,SAEvB,KAAK,aACL,KAAK,mBAAmB,EAIxB,kBAAkB,EAAG,CAGzB,GAFA,KAAK,iBAAmB,IAAI,EAAiB,KAAK,MAAM,EAEpD,KAAK,OAAO,OAAS,aAAe,KAAK,OAAO,OAAS,SACzD,KAAK,QAAQ,KAAK,IAAI,GAAuB,KAAK,OAAQ,KAAK,gBAAgB,CAAC,EAGpF,GAAI,KAAK,OAAO,OAAS,QAAU,KAAK,OAAO,OAAS,SACpD,KAAK,QAAQ,KAAK,IAAI,GAAkB,KAAK,OAAQ,KAAK,iBAAkB,KAAK,QAAS,KAAK,YAAY,CAAC,OAIvG,QAAO,EAAG,CACnB,GAAI,CAAC,KAAK,cAAgB,CAAC,KAAK,iBAAkB,OAElD,MAAM,KAAK,iBAAiB,MAAM,EAElC,QAAW,KAAU,KAAK,QACtB,MAAM,EAAO,MAAM,OAId,YAAW,EAAG,CACvB,GAAI,CAAC,KAAK,aAAc,OAExB,QAAW,KAAU,KAAK,QACtB,MAAM,EAAO,KAAK,EAGtB,MAAM,KAAK,kBAAkB,MAAM,EAGhC,SAAS,CAAC,EAAiD,CAC9D,QAAW,KAAU,KAAK,QACtB,EAAO,UAAU,CAAS,OAIrB,kBAAiB,CAAC,EAAgB,EAAe,CAC1D,IAAM,EAAc,EAAO,IAAI,QAAQ,EAAE,KAAK,KAAK,EAAE,QAAU,CAAK,EAE9D,EAAwC,CAC1C,KAAM,OACN,OAAQ,WACZ,EAEM,EAAe,EAAY,SAAS,KACpC,EAAkB,EAAa,GAErC,GAAI,CAAC,EACD,MAAU,MAAM,oDAAoD,kBAA6B,IAAQ,EAG7G,QAAW,KAAU,KAAK,QACtB,GAAI,EAAO,YAAc,EACrB,MAAM,EAAO,UAAU,EAAO,CAAO,EAIrD,CCjFO,MAAM,EAAiB,CAGgC,UAFlD,aAER,WAAY,CAAE,EAA4C,EAAqB,CAArB,iBACtD,IAAM,EAA0C,IAAI,IACpD,EAAU,QAAQ,KAAY,EAAI,IAAI,EAAS,MAAO,CAAQ,CAAC,EAC/D,KAAK,aAAe,OAGX,SAAQ,CAAC,EAAgB,EAAmB,EAAwB,CAC7E,IAAM,EAAW,KAAK,aAAa,IAAI,CAAK,EAE5C,GAAI,CAAC,EACD,MAAU,MAAM,sCAAsC,IAAQ,EAGlE,GAAG,EAAS,MAAQ,OAChB,MAAM,MAAM,EAAS,IAAK,CACtB,OAAS,OACT,QAAU,CACN,eAAiB,sBACd,EAAS,QACZ,cAAe,EACf,eAAgB,EAAM,OAAO,SAAS,EACtC,wBAAyB,KAAK,UAC9B,cAAe,OACf,UAAW,EACX,wBAA0B,OAAO,WAAW,CAChD,EACA,KAAO,KAAK,UAAU,CAAC,SAAW,CAAK,CAAC,CAC5C,CAAC,EAAE,MAAM,CAAC,IAAU,CAChB,QAAQ,IAAI,IAAI,gDAAoD,KAAa,CAAK,EACzF,EAGA,QAAG,EAAS,MAAQ,SAAS,CAK9B,QAAU,QAAQ,CACd,MAAQ,EAAS,MACjB,QAAU,EACV,SAAW,EACX,WACA,UAAY,IAAI,KAAK,EAAE,QAAQ,CACnC,CAAC,EAGb,CCnBO,MAAe,EAAW,CACnB,QAEA,YACA,eAEA,wBACA,WACA,aACA,UACA,aAEA,MACA,OAEA,OAAgC,CAAC,EACjC,UAAqC,CAAC,EAEtC,gBAEM,OACC,aAAe,IAAI,IAEpC,WAAY,CAAC,EAA2B,CAKpC,GAJA,EAAO,WAAW,CAAU,EAE5B,KAAK,OAAS,IAAI,EAEd,EAAW,cAAc,OACzB,KAAK,gBAAgB,EAAW,YAAY,EAGhD,QAAY,cAAa,KAAW,EAAO,IAAI,OAC3C,KAAK,OAAO,KAAK,CAAK,EACtB,KAAK,UAAU,KAAK,CAAQ,EAGhC,IAAM,EAAa,EAAO,IAAI,YAAY,EAE1C,GAAG,CAAC,EACA,MAAU,MAAM,oCAAoC,EAKxD,GAAI,OAAO,IAAe,UAAY,CAFd,mBAE+B,KAAK,CAAU,EAClE,MAAU,MAAM,uJAAuJ,EAG3K,KAAK,OAAS,IAAI,EAElB,IAAI,EAAuB,IAErB,EAAc,EAAO,IAAI,uBAEzB,EAAU,EAAO,IAAI,SAAS,EAEpC,GAAG,EACC,EAAuB,KAAK,IAAI,EAAG,EAAQ,cAAgB,IAAI,EAqBnE,GAlBA,KAAK,QAAU,EAAO,IAAI,QAC1B,KAAK,QAAQ,QAAQ,EACrB,KAAK,QAAQ,eAAe,CAAU,EAEtC,KAAK,MAAQ,IAAI,EAAY,CACzB,uBACA,eAAgB,EAChB,gBAAkB,GAClB,QAAU,EACd,CAAC,EAED,KAAK,WAAa,IAAI,GAAiB,KAAK,UAAW,EAAO,IAAI,gBAAgB,CAAC,EAEnF,KAAK,aAAe,IAAI,EAAa,KAAK,OAAO,EACjD,KAAK,UAAY,IAAI,EAErB,KAAK,gBAAkB,KAAK,uBAAuB,EAE/C,CAAC,KAAK,gBAEN,MADA,KAAK,OAAO,MAAM,sDAAsD,EAC9D,MAAM,sDAAsD,EAG1E,GAAG,EAAO,IAAI,sBACV,KAAK,wBAA0B,IAAI,EAAwB,IACpD,EAAO,IAAI,iBACd,SAAW,EACf,EAAG,KAAK,QAAS,KAAK,YAAY,EAGlC,UAAK,wBAA0B,IAAI,EAAwB,CACvD,KAAO,SACP,SAAW,GACX,KAAO,CACX,EAAG,KAAK,QAAS,KAAK,YAAY,EA0BtC,GAvBA,KAAK,aAAe,IAAI,EACpB,EAAO,IAAI,aAAa,sBAAwB,IAChD,EAAO,IAAI,aAAa,sBAAwB,GACpD,EAEA,KAAK,YAAc,IAAI,EAAY,CAC/B,WAAa,KAAK,WAClB,MAAQ,KAAK,aACb,QAAU,KAAK,QACf,aAAc,KAAK,aACnB,wBAA0B,KAAK,wBAC/B,OAAS,KAAK,MAClB,CAAC,EAED,KAAK,eAAiB,IAAI,EAAe,CACrC,UAAY,KAAK,UACjB,QAAU,KAAK,QACf,YAAc,KAAK,YACnB,MAAQ,KAAK,MACb,OAAS,KAAK,OACd,gBAAkB,KAAK,eAC3B,CAAC,EAEE,OAAO,SAAS,CAAoB,EACnC,KAAK,OAAO,IAAI,kDAAkD,EAAQ,KAAK,EAC/E,KAAK,OAAO,IAAI,uCAAuC,EAAuB,wBAAwB,EAAQ,KAAK,EAGnH,UAAK,OAAO,IAAI,wDAAwD,IAAI,KAAK,EAAE,YAAY,IAAI,EAInG,sBAAsB,EAAuB,CACjD,IAAM,EAA6B,CAC/B,aAAc,KAAK,aACnB,MAAO,KAAK,MACZ,OAAS,KAAK,OACd,QAAU,KAAK,QACf,QAAU,KAAK,UACf,OAAS,KAAK,OACd,UAAY,KAAK,SACrB,EAEA,OAAQ,EAAO,IAAI,SAAS,oBAEpB,OAAO,IAAI,EAAkB,CAAI,sBAEjC,OAAO,IAAI,EAAkB,CAAI,mBAEjC,OAAO,IAAI,EAAe,CAAI,UAE9B,MAAU,MAAM,qBAAqB,QAIjC,gBAAe,CAAC,EAA6D,CACzF,QAAW,KAAQ,EAAc,CAC7B,IAAI,EAEJ,GAAI,OAAO,IAAS,WAChB,EAAW,IAAI,EAAK,KAAK,EAGzB,OAAW,EAGf,MAAM,EAAS,KAAK,IAAI,EAExB,KAAK,aAAa,IAAI,EAAS,OAAQ,CAAQ,GAOhD,cAAc,CAAC,EAA2B,CAC7C,GAAI,OAAO,IAAkB,SACzB,OAAO,KAAK,aAAa,IAAI,CAAa,EAG9C,QAAW,KAAY,KAAK,aAAa,OAAO,EAC5C,GAAI,aAAoB,EACpB,OAAO,EAIf,IAAM,EAAO,OAAO,IAAkB,SAAW,EAAgB,EAAc,KAC/E,MAAU,MAAM,gBAAgB,uBAA0B,KAG1D,QAAO,EAAgC,CACvC,OAAO,KAAK,gBAAgB,QAG5B,YAAW,EAAG,CACd,OAAO,EAAO,IAAI,SAAS,oBAG3B,UAAS,EAAqB,CAC9B,OAAO,EAAO,IAAI,aAGN,KAAI,EAAG,CACnB,MAAM,KAAK,QAAQ,WAAW,EAEtC,C3B5NO,MAAM,WAAgE,EAAW,CAc/D,WAZb,UACA,mBACA,QAIA,gBAAyC,KAEzC,cAAoC,CAAC,EAErC,aAAe,IAAI,IAE3B,WAAY,CAAS,EAAoD,CACrE,MAAM,CAAU,EADC,kBAKjB,GAFA,KAAK,eAAe,EAEjB,CAAC,KAAK,YAAa,KAAK,UAAY,OAAO,WAAW,EACpD,UAAK,UAAY,KAAK,UAAU,GAErC,GAAG,KAAK,YACJ,KAAK,mBAAqB,KAAK,UAAU,IAAI,sBAAsB,EACnE,KAAK,QAAU,KAAK,UAAU,IAAI,UAAU,EAG5C,UAAK,mBAAqB,KAAK,qCAAqC,EACpE,KAAK,QAAU,6CAGnB,KAAK,eAAe,gBAAgB,OAG3B,MAAK,EAAG,CACjB,MAAM,KAAK,wBAAwB,QAAQ,EAC3C,MAAM,EAAO,uBAAuB,KAAK,QAAQ,GAAG,EAEpD,KAAK,eAAe,gBAAgB,EACpC,KAAK,uBAAuB,EAC5B,MAAM,KAAK,gBAAgB,QAAQ,KAAK,gBAAgB,OAG/C,aAAY,CAAC,EAAgB,CACtC,IAAM,EAAc,KAAK,OAAO,KAAK,KAAK,EAAE,QAAU,CAAK,EAC3D,GAAG,CAAC,EAAa,MAAU,MAAM,mCAAmC,EAEpE,KAAK,OAAO,IAAI,wCAAwC,IAAQ,EAEhE,MAAM,KAAK,sBAAsB,EAEjC,MAAM,KAAK,QAAQ,CAAW,OAGrB,sBAAqB,EAAG,CAEjC,MAAO,CAAE,OAAS,IAAK,QADR,MAAM,EAAO,uBAAuB,KAAK,QAAQ,GAAG,CAC3B,EAGpC,sBAAsB,EAAG,CAC7B,QAAW,KAAU,KAAK,OAAQ,CAC9B,IAAM,EAAW,EAAe,SAAgD,WAChF,KAAK,UAAU,qBAAqB,EAAO,MAAO,CAAO,QAInD,QAAO,CAAC,EAAkC,CAEpD,OADA,KAAK,aAAa,IAAI,CAAW,EAC1B,MAAM,KAAK,eAAe,QAAQ,CAAW,OAG3C,SAAS,EAAG,CAOrB,GANA,KAAK,OAAO,IAAI,qBAAoB,EAEpC,KAAK,uBAAuB,EAIzB,KAAK,wBACJ,MAAM,KAAK,wBAAwB,YAAY,EAUnD,GAAI,CAP0B,MAAM,KAAK,gBAAgB,sBAAsB,KAAK,gBAAgB,EAQhG,MAAM,KAAK,qBAAqB,KAAK,QAAS,KAAK,kBAAkB,EAGzE,MAAM,KAAK,QAAQ,IAAI,gBAAgB,EACvC,MAAM,KAAK,QAAQ,WAAW,OAGrB,gBAAe,CAAC,EAAgB,CACzC,GAAG,EAAO,CACN,IAAM,EAAc,KAAK,OAAO,KAAK,KAAK,EAAE,OAAS,CAAK,EAC1D,GAAG,EACC,KAAK,aAAa,IAAI,CAAW,EAIzC,IAAM,EAAe,MAAM,KAAK,KAAK,aAAa,OAAO,CAAC,EAE1D,MAAM,KAAK,qBAAqB,KAAK,QAAS,KAAK,SAAS,EAC5D,MAAM,KAAK,QAAQ,IAAI,WAAW,CAAY,EAG9C,MAAM,KAAK,gBAAgB,cAAc,KAAK,gBAAgB,EAE9D,MAAM,KAAK,QAAQ,IAAI,uBAAuB,EAAO,mBAAmB,OAG/D,sBAAqB,CAAC,EAAkC,CACjE,IAAI,EAAe,GAEnB,GAAG,KAAK,YAGJ,EAFgB,KAAK,UACS,cACC,EAGnC,KAAK,OAAO,IAAI,yBAAyB,KAAgB,EAEzD,MAAM,KAAK,aAAa,WAAW,CAC/B,IAAK,EAAO,IAAI,gBAAgB,EAChC,UACA,cACJ,CAAC,KAGO,iBAAiB,EAA8B,CACvD,MAAO,CACH,QAAS,KAAK,QACd,mBAAoB,KAAK,mBACzB,UAAW,KAAK,UAEhB,gBAAiB,IAAM,MAAM,KAAK,KAAK,aAAa,OAAO,CAAC,EAC5D,QAAS,CAAC,IAAgB,KAAK,QAAQ,CAAW,EAClD,QAAS,CAAC,IAAc,KAAK,eAAe,QAAQ,CAAS,CACjE,EAGG,qBAAqB,CAAC,EAAa,CACtC,KAAK,mBAAqB,EAGtB,oCAAoC,EAAG,CAC3C,IAAM,EAAmB,KAAK,WAAW,OAAO,IAAI,KAAK,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,GAAG,EAC3F,OAAO,GAAO,CAAgB,EAG1B,cAAc,EAAG,CACrB,IAAM,EAAgC,KAAK,gBAAgB,8BAE3D,KAAK,cAAc,KACf,KAAK,OAAO,GAAG,uBAAwB,SAAY,CAC/C,GAAI,EACA,MAAM,KAAK,SAAS,EAGpB,UAAK,OAAO,IAAI,kFAAkF,EAClG,KAAK,eAAe,gBAAgB,EAE3C,CACL,EAEA,KAAK,cAAc,KACf,KAAK,OAAO,GAAG,iBAAkB,OAAS,QAAO,YAAa,CAC1D,KAAK,OAAO,IAAI,4CAA4C,EAAM,0BAA0B,GAAQ,EACpG,MAAM,KAAK,QAAQ,CAAK,EAC3B,CACL,EAEA,KAAK,cAAc,KACf,KAAK,OAAO,GAAG,WAAY,EAAG,QAAO,YAAa,CAC9C,KAAK,OAAO,IAAI,0CAA0C,uBAA2B,IAAS,EAC9F,KAAK,eAAe,QAAQ,CAAK,EACpC,CACL,EAEA,KAAK,cAAc,KACf,KAAK,OAAO,GAAG,qBAAsB,SAAY,CAC7C,GAAI,EACA,MAAM,KAAK,SAAS,EAE3B,CACL,EAEA,KAAK,cAAc,KACf,KAAK,OAAO,GAAG,gCAAiC,SAAY,CACxD,KAAK,OAAO,IAAI,qCAAqC,IAAI,KAAK,EAAE,YAAY,IAAI,EAChF,MAAM,KAAK,QAAQ,IAAI,gBAAgB,EAC1C,CACL,EAGI,sBAAuB,EAAG,CAC9B,KAAK,cAAc,QAAQ,CAAC,IAAY,EAAQ,CAAC,EACjD,KAAK,cAAgB,CAAC,OAGb,qBAAoB,EAAG,CAChC,GAAI,KAAK,gBAAiB,MAAM,KAAK,qBAG5B,uBAAsB,CAAC,EAA+B,CAC/D,MAAM,KAAK,QAAQ,IAAI,cAAc,CAAK,OAGjC,qBAAoB,CAAC,EAAkB,EAAkB,EAAgB,CAClF,OAAO,MAAM,KAAK,QAAQ,WAAW,iBAAiB,EAAS,EAAS,CAAK,OAGpE,qBAAoB,CAAC,EAAkB,EAAkB,CAClE,OAAO,MAAM,KAAK,QAAQ,WAAW,iBAAiB,EAAS,CAAO,EAE9E",
|
|
40
|
+
"debugId": "A9FB2A83A3509ED164756E2164756E21",
|
|
41
41
|
"names": []
|
|
42
42
|
}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
var
|
|
1
|
+
var j=Object.create;var{getPrototypeOf:v,defineProperty:J,getOwnPropertyNames:B}=Object;var b=Object.prototype.hasOwnProperty;function D(I){return this[I]}var H,Y,l=(I,w,L)=>{var x=I!=null&&typeof I==="object";if(x){var p=w?H??=new WeakMap:Y??=new WeakMap,g=p.get(I);if(g)return g}L=I!=null?j(v(I)):{};let d=w||!I||!I.__esModule?J(L,"default",{value:I,enumerable:!0}):L;for(let z of B(I))if(!b.call(d,z))J(d,z,{get:D.bind(I,z),enumerable:!0});if(x)p.set(I,d);return d};var K=(I,w)=>()=>(w||I((w={exports:{}}).exports,w),w.exports);class V{access;module="API";constructor(I){this.access=I}async main(){}}class W{log(I,...w){console.log(I,...w)}warn(I,...w){console.warn(I,...w)}error(I,...w){console.error(I,...w)}debug(I,...w){console.debug(I,...w)}}class G{static provider=new W;setProvider(I){G.provider=I}log(I,...w){G.provider.log(I,...w)}warn(I,...w){G.provider.warn(I,...w)}error(I,...w){G.provider.error(I,...w)}debug(I,...w){if(G.provider.debug)G.provider.debug(I,...w)}}var X;((x)=>{x.V8_ISOLATE="v8-isolate";x.SERVERLESS_VM="serverless-vm";x.PERSISTENT="persistent"})(X||={});var Z;((x)=>{x.POSTGRES_NOTIFY="POSTGRES_NOTIFY";x.WEBHOOK="WEBHOOK";x.POLLING="POLLING"})(Z||={});var M=new Set(["storage","runtime","onEvents","isolate","queue"]),O=new Set(["queue","deadLetterQueue"]);class A{static instance;_config;initialSnapshot;logger;constructor(){this.logger=new G}static getInstance(){if(!A.instance)A.instance=new A;return A.instance}initialize(I){this._config={swarmConfig:{globalMaxJobsPerTick:1e5,maxGlobalConcurrency:1e4,spawnerAlgorithm:"ROUND_ROBIN",...I.swarmConfig},...I,engine:{...I.runtime=="persistent"?{poolingIntervalSec:5}:{},...I.runtime=="serverless-vm"||I.runtime=="v8-isolate"?{selfInvocationMethod:"auto_using_pgnet",selfInvocationIntervalSec:1,healthCheckIntervalSec:15,selfRestartIntervalSec:60}:{},tickConcurrency:"sequential",cycleTickLimit:1000,...I.engine},queues:I.queues.map((w)=>({stateTransitionPolicy:{enabled:!0,idleThresholdTicks:10,idleTimingProfile:"RELAXED"},...w}))},this.throwExpectionOnInvalidConfiguration(this._config),this.initialSnapshot=Object.freeze(JSON.parse(JSON.stringify(this._config)))}throwExpectionOnInvalidConfiguration(I){let w=I.queues;if(w.length==0)throw this.logger.error('[Pulsar] Runtime configuration error: "queues" atleast 1 queue is required to operate.'),Error('[Pulsar] Runtime configuration error: "queues" atleast 1 queue is required to operate.');if(I.runtime==="v8-isolate"&&!I.isolate)throw this.logger.error(`[Pulsar] Runtime configuration error: "isolate" instance is required when running in "${"v8-isolate"}" mode.`),Error(`[Pulsar] Runtime configuration error: "isolate" instance is required when running in "${"v8-isolate"}" mode.`);let L=w.reduce((g,d)=>{return g[d.queue]=(g[d.queue]||0)+1,g},{}),x=Object.keys(L).filter((g)=>L[g]>1);if(x.length>0)throw this.logger.error("[ConfigurationStore]: Duplicate queues found -> ",x),Error("Duplicate queue names detected in the configuration.");let p=w.map((g)=>g.consumer);if(I.runtime!=="persistent"){let g=p.find((d)=>d.type=="socket");if(g)throw this.logger.error(`${JSON.stringify(g)}`),Error("Consumers do not support non-persistent socket types. Please either remove the 'socket' type from the consumer or update the runtime to PERSISTENT.")}for(let g of p)if(g.type=="http")try{let d=new URL(g.url);if(d.protocol!=="http:"&&d.protocol!=="https:")throw this.logger.error(`${g.queue} - ${g.url}`),Error(`Invalid protocol '${d.protocol}' for consumer URL. Only HTTP and HTTPS are supported.`)}catch(d){this.logger.error(`${g.queue} - ${g.url}`);let z=d instanceof Error?d.message:"An unknown error occurred while parsing the consumer URL.";throw Error(`Failed to validate consumer URL: ${z}`)}else if(g.type=="callback"){if(!g.handler)throw Error("Consumer handler is required. Please provide a valid handler function.")}}ensureInitialized(){if(!this._config)throw Error("[ConfigurationStore]: Engine configuration store is not initialized. Call initialize() first.");if(!this.initialSnapshot)throw Error("[ConfigurationStore]: Engine initial snapshot is not initialized")}get raw(){return this.ensureInitialized(),this._config}get(I){this.ensureInitialized();let w=I.split("."),L=this._config;for(let x of w){if(L===void 0||L===null)return;L=L[x]}return L}getInitialSnapshot(){return this.ensureInitialized(),Object.freeze({...this.initialSnapshot})}set(I,w){this.ensureInitialized();let L=I.split("."),x=L[0];if(M.has(x))throw Error(`[ConfigurationStore]: Modifying path '${I}' via set() is forbidden.`);let p=this._config;for(let g=0;g<L.length-1;g++){let d=L[g];if(!(d in p)||typeof p[d]!=="object")p[d]={};p=p[d]}p[L[L.length-1]]=w}modifyQueue(I,w,L){if(this.ensureInitialized(),O.has(w))throw Error(`[ConfigurationStore]: Property '${String(w)}' on queue '${I}' cannot be modified at runtime.`);let x=this._config.queues.findIndex((p)=>p.queue==I);if(!this._config.queues[x])throw Error(`[ConfigurationStore]: Modifying queue '${I}' not found.`);this._config.queues[x][w]=L}async reconcileConfiguration(I){let w=this.getInitialSnapshot(),L=w.runtime==="serverless-vm"||w.runtime==="v8-isolate"?w.engine.selfURL:"NOT_REQUIRED",x={queues:w.queues.map((g)=>({queue:g.queue,pooler:g.pooler})),runtime:w.runtime,event_trigger_strategy:w.runtime=="persistent"?w.eventTriggerStrategy:"WEBHOOK",self_url:L},p=await I.verifyAndSyncConfiguration("PULSAR_STANDALONE",w.instanceId,L,x);if(!p.isChanged&&!p.isNew)return this.logger.log("[Configuration] status : [VALID]."),"[Configuration] status : [VALID].";else return this.logger.log("[Configuration] status : [INVALID & Reconciled]."),"[Configuration] status : [INVALID & Reconciled]."}}var F=A.getInstance();class ${module="LOGGER";constructor(){}async main(I){I.logger.setProvider(this),console.log("Log Provider Set to : [PulsarLoggerIntegrations]")}log(I,w){F.raw.logger?.log(I,...w!==void 0?[w]:[])}warn(I,w){F.raw.logger?.warn(I,...w!==void 0?[w]:[])}error(I,w){F.raw.logger?.error(I,...w!==void 0?[w]:[])}}export{$ as PulsarLoggerIntegrations,V as PulsarEventsIntegrations};
|
|
2
2
|
|
|
3
|
-
//# debugId=
|
|
3
|
+
//# debugId=92DDF0845248CA8164756E2164756E21
|
|
@@ -6,10 +6,10 @@
|
|
|
6
6
|
"export interface ILogger {\r\n log(message : string, ...args : any[]) : void;\r\n warn(message : string, ...args : any[]) : void;\r\n error(message : string, ...args : any[]) : void;\r\n debug?(message : string, ...args : any[]) : void;\r\n}\r\n\r\nclass ConsoleLogger implements ILogger {\r\n log(message : string, ...args : any[]) { console.log(message, ...args); }\r\n warn(message : string, ...args : any[]) { console.warn(message, ...args); }\r\n error(message : string, ...args : any[]) { console.error(message, ...args); }\r\n debug(message : string, ...args : any[]) { console.debug(message, ...args); }\r\n}\r\n\r\nexport class LoggerService implements ILogger {\r\n private static provider : ILogger = new ConsoleLogger();\r\n\r\n public setProvider(customLogger: ILogger) {\r\n LoggerService.provider = customLogger;\r\n }\r\n\r\n public log(message : string, ...args : any[]) {\r\n LoggerService.provider.log(message, ...args);\r\n }\r\n\r\n public warn(message : string, ...args : any[]) {\r\n LoggerService.provider.warn(message, ...args);\r\n }\r\n\r\n public error(message : string, ...args : any[]) {\r\n LoggerService.provider.error(message, ...args);\r\n }\r\n\r\n public debug(message : string, ...args : any[]) {\r\n if (LoggerService.provider.debug) {\r\n LoggerService.provider.debug(message, ...args);\r\n }\r\n }\r\n}",
|
|
7
7
|
"import { IsolateInstance } from \"../service/Isolate.service.ts\";\r\nimport type { NetworkConfig } from \"../network/interfaces/network.types.ts\";\r\nimport type { BaseEngineConfig } from \"./base.types.ts\";\r\nimport type { PersistentEngine, SelfInvokingEngine } from \"./engine.types.ts\";\r\nimport type { EventTriggerStrategy } from \"./eventTriggerStrategry.types.ts\";\r\n\r\n/**\r\n * Supported runtime execution environments for Pulsar.\r\n */\r\nexport enum PulsarRuntime {\r\n /**\r\n * Configuration for ephemeral V8 isolate environments (Cloudflare Workers, Supabase Edge, Deno Deploy).\r\n * \r\n * In V8 isolate platforms, incoming requests share the same warm memory space until the isolate shuts down.\r\n * The engine relies on the required `isolate` instance to monitor remaining isolate lifespan, handle dynamic global \r\n * state, and sync tick schedules before the V8 isolate gets terminated by the cloud provider.\r\n */\r\n V8_ISOLATE = \"v8-isolate\",\r\n \r\n /**\r\n * Configuration for containerized or persistent runtime environments (AWS Lambda, GCP Cloud Run, Docker, Node.js VMs).\r\n * \r\n * Unlike V8 isolates, these environments operate in dedicated process/container sandboxes with predictable execution limits\r\n * or persistent process lifetimes. Tracking V8 isolate memory and remaining uptime across HTTP invocations is not strictly required.\r\n */\r\n SERVERLESS_VM = \"serverless-vm\",\r\n\r\n /**\r\n * Configuration for traditional, long-running persistent environments (AWS EC2, VPS, Dedicated Servers, local Node.js processes).\r\n * \r\n * Unlike ephemeral isolates or serverless containers that spin down between invocations, persistent runtimes maintain an uninterrupted \r\n * execution context and continuous process lifespan. The engine can rely on background event loops, stateful in-memory caching, \r\n * and non-ephemeral scheduling without relying on cloud provider lifecycle hooks.\r\n */\r\n PERSISTENT = \"persistent\"\r\n}\r\n\r\nexport type PulsarRuntimeType = typeof PulsarRuntime[keyof typeof PulsarRuntime];\r\n\r\nexport type ConfigForRuntime<T extends PulsarRuntimeType> = \r\n T extends typeof PulsarRuntime.V8_ISOLATE ? V8IsolateConfig :\r\n T extends typeof PulsarRuntime.SERVERLESS_VM ? ServerlessVMConfig :\r\n PersistentConfig;\r\n\r\nexport type V8IsolateConfig = BaseEngineConfig & {\r\n runtime : typeof PulsarRuntime.V8_ISOLATE;\r\n engine: SelfInvokingEngine;\r\n /**\r\n * Active isolate tracking instance.\r\n */\r\n isolate : IsolateInstance;\r\n}\r\n\r\nexport type ServerlessVMConfig = BaseEngineConfig & {\r\n runtime : typeof PulsarRuntime.SERVERLESS_VM;\r\n engine: SelfInvokingEngine;\r\n /**\r\n * Optional isolate tracking instance if custom lifecycle tracking is desired inside Lambda or containerized workers.\r\n */\r\n isolate? : IsolateInstance;\r\n}\r\n\r\nexport type PersistentConfig = BaseEngineConfig & {\r\n runtime : typeof PulsarRuntime.PERSISTENT;\r\n \r\n /**\r\n * Optional isolate tracking instance if custom lifecycle tracking is desired inside Lambda or containerized workers.\r\n */\r\n isolate? : IsolateInstance;\r\n\r\n networkInterface : {\r\n /**\r\n * Determines the operational network mode of the server.\r\n * \r\n * - `http`: Opens an HTTP server. Crucial for consumers running dependent workers \r\n * (e.g., when a consumer cannot initialize local storage configuration directly). \r\n * Dependent workers use this HTTP server for acks, retries, etc. \r\n * *(Note: This mode introduces latency and throughput limitations).*\r\n * \r\n * - `socket`: Opens a WebSocket server. Both the pulsar and consumers connect to \r\n * this socket to transport and dispatch jobs. Provides near-realtime job dispatch \r\n * performance for workers.\r\n * \r\n * - `hybrid`: Opens both HTTP and WebSocket servers simultaneously. Ideal for \r\n * multi-runtime deployed consumers where some instances operate in serverless \r\n * functions and others on a VPS, allowing each consumer to select its optimal \r\n * server option based on its specific configuration.\r\n */\r\n mode : Exclude<NetworkConfig[\"mode\"], \"client\">;\r\n /**\r\n * The port number on which the server instance will listen for incoming traffic.\r\n */\r\n port : NetworkConfig[\"port\"];\r\n /**\r\n * Optional hostname or IP address to bind the server to.\r\n */\r\n host? : NetworkConfig[\"host\"];\r\n }\r\n \r\n eventTriggerStrategy : typeof EventTriggerStrategy[keyof typeof EventTriggerStrategy];\r\n engine : PersistentEngine;\r\n}",
|
|
8
8
|
"export enum EventTriggerStrategy {\r\n /**\r\n * Uses PostgreSQL LISTEN/NOTIFY (PG Notify) for real-time event-driven queue triggering.\r\n * \r\n * **How it works:** The engine establishes a persistent subscription to a database channel. \r\n * When an event occurs, Postgres broadcasts an instant notification, triggering the queues \r\n * immediately with minimal latency and zero polling overhead.\r\n * \r\n * **Crucial Infrastructure Requirement:** This strategy **requires a direct, persistent TCP \r\n * connection URL** provided to the Postgres driver. If your database infrastructure uses serverless \r\n * proxies, restricted connection pools, or environments that do not support long-lived TCP socket \r\n * listeners (LISTEN/NOTIFY state), this strategy will fail to receive events.\r\n */\r\n POSTGRES_NOTIFY = \"POSTGRES_NOTIFY\",\r\n\r\n /**\r\n * Uses an external HTTP webhook driven directly by the database (`pg_net`).\r\n * \r\n * **How it works:** This strategy requires an accessible HTTP endpoint to be exposed on the \r\n * running container or machine. When an event occurs, Postgres utilizes the built-in `pg_net` \r\n * extension to fire an outbound HTTP request directly to this endpoint, which in turn invokes \r\n * and executes the event-driven queues.\r\n */\r\n WEBHOOK = \"WEBHOOK\",\r\n\r\n /**\r\n * Uses a database-backed table polling mechanism.\r\n * \r\n * **How it works:** Completely independent of persistent TCP notification sockets or HTTP \r\n * endpoints. Instead, event producers insert new task rows directly into a designated \r\n * subscription table. The engine periodically polls this table at a configured interval \r\n * (e.g., every 500ms) to scan for new rows, process them, and trigger the respective queues.\r\n */\r\n POLLING = \"POLLING\"\r\n}",
|
|
9
|
-
"import type { EngineConfig } from \"../types/base.types.ts\";\r\nimport type { QueueModule } from \"../helpers/defineQueue\";\r\nimport type { PostgresEngineOperationRepository } from \"../storage/repositories/PostgresEngineOperationRepository\";\r\nimport type { EngineQueuesConfig } from \"../types/queue.types\";\r\nimport type { PathValue, SettablePathKeys, ReadablePathKeys } from \"../types/config.types\";\r\n\r\nimport { LoggerService, type ILogger } from \"../subsys/LoggerService.ts\";\r\nimport { PulsarRuntime } from \"../types/runtime.types.ts\";\r\nimport { EventTriggerStrategy } from \"../types/eventTriggerStrategry.types.ts\";\r\n\r\nconst RUNTIME_BLOCKED_KEYS = new Set([\"storage\", \"runtime\", \"onEvents\", \"isolate\", \"queue\"]);\r\n\r\nconst RUNTIME_BLOCKED_QUEUE_KEYS = new Set<string>([\"queue\", \"deadLetterQueue\"]);\r\n\r\nexport class ConfigurationStore {\r\n private static instance : ConfigurationStore;\r\n protected _config? : EngineConfig;\r\n private initialSnapshot? : EngineConfig;\r\n private logger : ILogger;\r\n\r\n constructor() {\r\n this.logger = new LoggerService();\r\n }\r\n\r\n public static getInstance() : ConfigurationStore {\r\n if (!ConfigurationStore.instance) {\r\n ConfigurationStore.instance = new ConfigurationStore();\r\n }\r\n return ConfigurationStore.instance;\r\n }\r\n\r\n public initialize(baseConfig : EngineConfig) {\r\n this._config = {\r\n swarmConfig : {\r\n globalMaxJobsPerTick : 100_000,\r\n maxGlobalConcurrency : 10_000,\r\n spawnerAlgorithm : \"ROUND_ROBIN\",\r\n ...baseConfig.swarmConfig, \r\n },\r\n ...baseConfig,\r\n engine: {\r\n ...(baseConfig.runtime == PulsarRuntime.PERSISTENT ? {\r\n poolingIntervalSec : 5\r\n } : {}),\r\n\r\n ...(baseConfig.runtime == PulsarRuntime.SERVERLESS_VM || PulsarRuntime.V8_ISOLATE ? {\r\n selfInvocationMethod : \"auto_using_pgnet\",\r\n selfInvocationIntervalSec : 1,\r\n healthCheckIntervalSec : 15,\r\n selfRestartIntervalSec : 60,\r\n } : {}),\r\n\r\n tickConcurrency : \"sequential\",\r\n cycleTickLimit : 1000,\r\n \r\n ...baseConfig.engine,\r\n },\r\n queues : baseConfig.queues.map(q => ({\r\n stateTransitionPolicy : {\r\n enabled : true,\r\n idleThresholdTicks : 10,\r\n idleTimingProfile : 'RELAXED'\r\n },\r\n ...q\r\n }))\r\n } as EngineConfig;\r\n\r\n this.throwExpectionOnInvalidConfiguration(this._config);\r\n\r\n this.initialSnapshot = Object.freeze(JSON.parse(JSON.stringify(this._config)));\r\n }\r\n\r\n private throwExpectionOnInvalidConfiguration(config : EngineConfig) {\r\n const queues : Array<QueueModule> = config.queues;\r\n\r\n if(queues.length == 0) {\r\n this.logger.error(`[Pulsar] Runtime configuration error: \"queues\" atleast 1 queue is required to operate.`);\r\n throw new Error(`[Pulsar] Runtime configuration error: \"queues\" atleast 1 queue is required to operate.`);\r\n }\r\n\r\n if (config.runtime === PulsarRuntime.V8_ISOLATE && !config.isolate) {\r\n this.logger.error(`[Pulsar] Runtime configuration error: \"isolate\" instance is required when running in \"${PulsarRuntime.V8_ISOLATE}\" mode.`);\r\n throw new Error(`[Pulsar] Runtime configuration error: \"isolate\" instance is required when running in \"${PulsarRuntime.V8_ISOLATE}\" mode.`);\r\n }\r\n\r\n const queueCounts = queues.reduce<Record<string, number>>((acc, q) => {\r\n acc[q.queue] = (acc[q.queue] || 0) + 1;\r\n return acc;\r\n }, {})\r\n\r\n const duplicateQueueNames = Object.keys(queueCounts).filter(queueName => queueCounts[queueName]! > 1);\r\n\r\n if(duplicateQueueNames.length > 0) {\r\n this.logger.error(\"[ConfigurationStore]: Duplicate queues found -> \", duplicateQueueNames);\r\n throw new Error(\"Duplicate queue names detected in the configuration.\");\r\n }\r\n\r\n const consumers = queues.map(q => q.consumer);\r\n\r\n if(config.runtime !== PulsarRuntime.PERSISTENT) {\r\n const hasSocketConsumer = consumers.find(c => c.type == \"socket\");\r\n \r\n if(hasSocketConsumer) {\r\n this.logger.error(`${JSON.stringify(hasSocketConsumer)}`);\r\n throw new Error(`Consumers do not support non-persistent socket types. Please either remove the 'socket' type from the consumer or update the runtime to PERSISTENT.`);\r\n }\r\n }\r\n\r\n for(const consumer of consumers) {\r\n if(consumer.type == \"http\") {\r\n try {\r\n const parsedUrl = new URL(consumer.url);\r\n if (parsedUrl.protocol !== \"http:\" && parsedUrl.protocol !== \"https:\") {\r\n this.logger.error(`${consumer.queue} - ${consumer.url}`);\r\n throw new Error(`Invalid protocol '${parsedUrl.protocol}' for consumer URL. Only HTTP and HTTPS are supported.`);\r\n }\r\n }\r\n catch (error) {\r\n this.logger.error(`${consumer.queue} - ${consumer.url}`);\r\n const errorMessage = error instanceof Error ? error.message : \"An unknown error occurred while parsing the consumer URL.\";\r\n throw new Error(`Failed to validate consumer URL: ${errorMessage}`);\r\n }\r\n }\r\n else if (consumer.type == \"callback\") {\r\n if(!consumer.handler) {\r\n throw new Error(`Consumer handler is required. Please provide a valid handler function.`);\r\n }\r\n }\r\n }\r\n }\r\n\r\n private ensureInitialized() : asserts this is { _config: EngineConfig } {\r\n if (!this._config) {\r\n throw new Error(\"[ConfigurationStore]: Engine configuration store is not initialized. Call initialize() first.\");\r\n }\r\n if (!this.initialSnapshot) {\r\n throw new Error(\"[ConfigurationStore]: Engine initial snapshot is not initialized\");\r\n }\r\n }\r\n\r\n public get raw() : Readonly<EngineConfig> {\r\n this.ensureInitialized();\r\n return this._config;\r\n }\r\n\r\n public get<P extends ReadablePathKeys<EngineConfig>>(path : P) : PathValue<EngineConfig, P> {\r\n this.ensureInitialized();\r\n\r\n const keys = path.split(\".\");\r\n let current: any = this._config;\r\n\r\n for (const key of keys) {\r\n if (current === undefined || current === null) {\r\n return undefined as PathValue<EngineConfig, P>;\r\n }\r\n current = current[key];\r\n }\r\n\r\n return current as PathValue<EngineConfig, P>;\r\n }\r\n\r\n public getInitialSnapshot() : Readonly<EngineConfig> {\r\n this.ensureInitialized();\r\n return Object.freeze({ ...this.initialSnapshot! });\r\n }\r\n\r\n public set<P extends SettablePathKeys<EngineConfig>>(path: P, value: PathValue<EngineConfig, P>): void {\r\n this.ensureInitialized();\r\n\r\n const keys = path.split(\".\");\r\n const rootKey = keys[0]!;\r\n\r\n if (RUNTIME_BLOCKED_KEYS.has(rootKey)) {\r\n throw new Error(`[ConfigurationStore]: Modifying path '${path}' via set() is forbidden.`);\r\n }\r\n\r\n let current: any = this._config!;\r\n\r\n for (let i = 0; i < keys.length - 1; i++) {\r\n const key = keys[i]!;\r\n if (!(key in current) || typeof current[key] !== \"object\") {\r\n current[key] = {};\r\n }\r\n current = current[key];\r\n }\r\n\r\n current[keys[keys.length - 1]!] = value;\r\n }\r\n\r\n public modifyQueue<K extends keyof EngineQueuesConfig, P extends SettablePathKeys<EngineQueuesConfig>>(\r\n queue : string,\r\n key : K,\r\n value : PathValue<EngineQueuesConfig, P>\r\n ) {\r\n this.ensureInitialized();\r\n\r\n if (RUNTIME_BLOCKED_QUEUE_KEYS.has(key as string)) {\r\n throw new Error(`[ConfigurationStore]: Property '${String(key)}' on queue '${queue}' cannot be modified at runtime.`);\r\n }\r\n\r\n const targetQueueIndex = this._config.queues.findIndex(q => q.queue == queue);\r\n\r\n if(!this._config['queues'][targetQueueIndex]) {\r\n throw new Error(`[ConfigurationStore]: Modifying queue '${queue}' not found.`);\r\n }\r\n\r\n this._config['queues'][targetQueueIndex]![key] = value as unknown as QueueModule[K];\r\n }\r\n\r\n public async reconcileConfiguration(repository : PostgresEngineOperationRepository) {\r\n const initialSnapshot = this.getInitialSnapshot();\r\n \r\n const selfUrl = (\r\n initialSnapshot.runtime === PulsarRuntime.SERVERLESS_VM ||\r\n initialSnapshot.runtime === PulsarRuntime.V8_ISOLATE\r\n ) ? initialSnapshot.engine.selfURL : 'NOT_REQUIRED';\r\n\r\n const ConfigurationObject = {\r\n queues : initialSnapshot.queues.map(q => ({\r\n queue : q.queue,\r\n pooler : q.pooler\r\n })),\r\n runtime : initialSnapshot.runtime,\r\n event_trigger_strategy : initialSnapshot.runtime == PulsarRuntime['PERSISTENT'] ? initialSnapshot.eventTriggerStrategy : EventTriggerStrategy.WEBHOOK,\r\n self_url : selfUrl\r\n }\r\n\r\n const configurationSyncStatus = await repository.verifyAndSyncConfiguration(\r\n 'PULSAR_STANDALONE',\r\n initialSnapshot.instanceId as string,\r\n selfUrl,\r\n ConfigurationObject\r\n )\r\n\r\n if(!configurationSyncStatus.isChanged && !configurationSyncStatus.isNew) {\r\n this.logger.log(`[Configuration] status : [VALID].`);\r\n return `[Configuration] status : [VALID].`;\r\n }\r\n else {\r\n this.logger.log(`[Configuration] status : [INVALID & Reconciled].`);\r\n return `[Configuration] status : [INVALID & Reconciled].`;\r\n }\r\n }\r\n}\r\n\r\nexport const config = ConfigurationStore.getInstance();",
|
|
9
|
+
"import type { EngineConfig } from \"../types/base.types.ts\";\r\nimport type { QueueModule } from \"../helpers/defineQueue\";\r\nimport type { PostgresEngineOperationRepository } from \"../storage/repositories/PostgresEngineOperationRepository\";\r\nimport type { EngineQueuesConfig } from \"../types/queue.types\";\r\nimport type { PathValue, SettablePathKeys, ReadablePathKeys } from \"../types/config.types\";\r\n\r\nimport { LoggerService, type ILogger } from \"../subsys/LoggerService.ts\";\r\nimport { PulsarRuntime } from \"../types/runtime.types.ts\";\r\nimport { EventTriggerStrategy } from \"../types/eventTriggerStrategry.types.ts\";\r\n\r\nconst RUNTIME_BLOCKED_KEYS = new Set([\"storage\", \"runtime\", \"onEvents\", \"isolate\", \"queue\"]);\r\n\r\nconst RUNTIME_BLOCKED_QUEUE_KEYS = new Set<string>([\"queue\", \"deadLetterQueue\"]);\r\n\r\nexport class ConfigurationStore {\r\n private static instance : ConfigurationStore;\r\n protected _config? : EngineConfig;\r\n private initialSnapshot? : EngineConfig;\r\n private logger : ILogger;\r\n\r\n constructor() {\r\n this.logger = new LoggerService();\r\n }\r\n\r\n public static getInstance() : ConfigurationStore {\r\n if (!ConfigurationStore.instance) {\r\n ConfigurationStore.instance = new ConfigurationStore();\r\n }\r\n return ConfigurationStore.instance;\r\n }\r\n\r\n public initialize(baseConfig : EngineConfig) {\r\n this._config = {\r\n swarmConfig : {\r\n globalMaxJobsPerTick : 100_000,\r\n maxGlobalConcurrency : 10_000,\r\n spawnerAlgorithm : \"ROUND_ROBIN\",\r\n ...baseConfig.swarmConfig, \r\n },\r\n ...baseConfig,\r\n engine: {\r\n ...(baseConfig.runtime == PulsarRuntime.PERSISTENT ? {\r\n poolingIntervalSec : 5\r\n } : {}),\r\n\r\n ...(baseConfig.runtime == PulsarRuntime.SERVERLESS_VM || baseConfig.runtime == PulsarRuntime.V8_ISOLATE ? {\r\n selfInvocationMethod : \"auto_using_pgnet\",\r\n selfInvocationIntervalSec : 1,\r\n healthCheckIntervalSec : 15,\r\n selfRestartIntervalSec : 60,\r\n } : {}),\r\n\r\n tickConcurrency : \"sequential\",\r\n cycleTickLimit : 1000,\r\n \r\n ...baseConfig.engine,\r\n },\r\n queues : baseConfig.queues.map(q => ({\r\n stateTransitionPolicy : {\r\n enabled : true,\r\n idleThresholdTicks : 10,\r\n idleTimingProfile : 'RELAXED'\r\n },\r\n ...q\r\n }))\r\n } as EngineConfig;\r\n\r\n this.throwExpectionOnInvalidConfiguration(this._config);\r\n\r\n this.initialSnapshot = Object.freeze(JSON.parse(JSON.stringify(this._config)));\r\n }\r\n\r\n private throwExpectionOnInvalidConfiguration(config : EngineConfig) {\r\n const queues : Array<QueueModule> = config.queues;\r\n\r\n if(queues.length == 0) {\r\n this.logger.error(`[Pulsar] Runtime configuration error: \"queues\" atleast 1 queue is required to operate.`);\r\n throw new Error(`[Pulsar] Runtime configuration error: \"queues\" atleast 1 queue is required to operate.`);\r\n }\r\n\r\n if (config.runtime === PulsarRuntime.V8_ISOLATE && !config.isolate) {\r\n this.logger.error(`[Pulsar] Runtime configuration error: \"isolate\" instance is required when running in \"${PulsarRuntime.V8_ISOLATE}\" mode.`);\r\n throw new Error(`[Pulsar] Runtime configuration error: \"isolate\" instance is required when running in \"${PulsarRuntime.V8_ISOLATE}\" mode.`);\r\n }\r\n\r\n const queueCounts = queues.reduce<Record<string, number>>((acc, q) => {\r\n acc[q.queue] = (acc[q.queue] || 0) + 1;\r\n return acc;\r\n }, {})\r\n\r\n const duplicateQueueNames = Object.keys(queueCounts).filter(queueName => queueCounts[queueName]! > 1);\r\n\r\n if(duplicateQueueNames.length > 0) {\r\n this.logger.error(\"[ConfigurationStore]: Duplicate queues found -> \", duplicateQueueNames);\r\n throw new Error(\"Duplicate queue names detected in the configuration.\");\r\n }\r\n\r\n const consumers = queues.map(q => q.consumer);\r\n\r\n if(config.runtime !== PulsarRuntime.PERSISTENT) {\r\n const hasSocketConsumer = consumers.find(c => c.type == \"socket\");\r\n \r\n if(hasSocketConsumer) {\r\n this.logger.error(`${JSON.stringify(hasSocketConsumer)}`);\r\n throw new Error(`Consumers do not support non-persistent socket types. Please either remove the 'socket' type from the consumer or update the runtime to PERSISTENT.`);\r\n }\r\n }\r\n\r\n for(const consumer of consumers) {\r\n if(consumer.type == \"http\") {\r\n try {\r\n const parsedUrl = new URL(consumer.url);\r\n if (parsedUrl.protocol !== \"http:\" && parsedUrl.protocol !== \"https:\") {\r\n this.logger.error(`${consumer.queue} - ${consumer.url}`);\r\n throw new Error(`Invalid protocol '${parsedUrl.protocol}' for consumer URL. Only HTTP and HTTPS are supported.`);\r\n }\r\n }\r\n catch (error) {\r\n this.logger.error(`${consumer.queue} - ${consumer.url}`);\r\n const errorMessage = error instanceof Error ? error.message : \"An unknown error occurred while parsing the consumer URL.\";\r\n throw new Error(`Failed to validate consumer URL: ${errorMessage}`);\r\n }\r\n }\r\n else if (consumer.type == \"callback\") {\r\n if(!consumer.handler) {\r\n throw new Error(`Consumer handler is required. Please provide a valid handler function.`);\r\n }\r\n }\r\n }\r\n }\r\n\r\n private ensureInitialized() : asserts this is { _config: EngineConfig } {\r\n if (!this._config) {\r\n throw new Error(\"[ConfigurationStore]: Engine configuration store is not initialized. Call initialize() first.\");\r\n }\r\n if (!this.initialSnapshot) {\r\n throw new Error(\"[ConfigurationStore]: Engine initial snapshot is not initialized\");\r\n }\r\n }\r\n\r\n public get raw() : Readonly<EngineConfig> {\r\n this.ensureInitialized();\r\n return this._config;\r\n }\r\n\r\n public get<P extends ReadablePathKeys<EngineConfig>>(path : P) : PathValue<EngineConfig, P> {\r\n this.ensureInitialized();\r\n\r\n const keys = path.split(\".\");\r\n let current: any = this._config;\r\n\r\n for (const key of keys) {\r\n if (current === undefined || current === null) {\r\n return undefined as PathValue<EngineConfig, P>;\r\n }\r\n current = current[key];\r\n }\r\n\r\n return current as PathValue<EngineConfig, P>;\r\n }\r\n\r\n public getInitialSnapshot() : Readonly<EngineConfig> {\r\n this.ensureInitialized();\r\n return Object.freeze({ ...this.initialSnapshot! });\r\n }\r\n\r\n public set<P extends SettablePathKeys<EngineConfig>>(path: P, value: PathValue<EngineConfig, P>): void {\r\n this.ensureInitialized();\r\n\r\n const keys = path.split(\".\");\r\n const rootKey = keys[0]!;\r\n\r\n if (RUNTIME_BLOCKED_KEYS.has(rootKey)) {\r\n throw new Error(`[ConfigurationStore]: Modifying path '${path}' via set() is forbidden.`);\r\n }\r\n\r\n let current: any = this._config!;\r\n\r\n for (let i = 0; i < keys.length - 1; i++) {\r\n const key = keys[i]!;\r\n if (!(key in current) || typeof current[key] !== \"object\") {\r\n current[key] = {};\r\n }\r\n current = current[key];\r\n }\r\n\r\n current[keys[keys.length - 1]!] = value;\r\n }\r\n\r\n public modifyQueue<K extends keyof EngineQueuesConfig, P extends SettablePathKeys<EngineQueuesConfig>>(\r\n queue : string,\r\n key : K,\r\n value : PathValue<EngineQueuesConfig, P>\r\n ) {\r\n this.ensureInitialized();\r\n\r\n if (RUNTIME_BLOCKED_QUEUE_KEYS.has(key as string)) {\r\n throw new Error(`[ConfigurationStore]: Property '${String(key)}' on queue '${queue}' cannot be modified at runtime.`);\r\n }\r\n\r\n const targetQueueIndex = this._config.queues.findIndex(q => q.queue == queue);\r\n\r\n if(!this._config['queues'][targetQueueIndex]) {\r\n throw new Error(`[ConfigurationStore]: Modifying queue '${queue}' not found.`);\r\n }\r\n\r\n this._config['queues'][targetQueueIndex]![key] = value as unknown as QueueModule[K];\r\n }\r\n\r\n public async reconcileConfiguration(repository : PostgresEngineOperationRepository) {\r\n const initialSnapshot = this.getInitialSnapshot();\r\n \r\n const selfUrl = (\r\n initialSnapshot.runtime === PulsarRuntime.SERVERLESS_VM ||\r\n initialSnapshot.runtime === PulsarRuntime.V8_ISOLATE\r\n ) ? initialSnapshot.engine.selfURL : 'NOT_REQUIRED';\r\n\r\n const ConfigurationObject = {\r\n queues : initialSnapshot.queues.map(q => ({\r\n queue : q.queue,\r\n pooler : q.pooler\r\n })),\r\n runtime : initialSnapshot.runtime,\r\n event_trigger_strategy : initialSnapshot.runtime == PulsarRuntime['PERSISTENT'] ? initialSnapshot.eventTriggerStrategy : EventTriggerStrategy.WEBHOOK,\r\n self_url : selfUrl\r\n }\r\n\r\n const configurationSyncStatus = await repository.verifyAndSyncConfiguration(\r\n 'PULSAR_STANDALONE',\r\n initialSnapshot.instanceId as string,\r\n selfUrl,\r\n ConfigurationObject\r\n )\r\n\r\n if(!configurationSyncStatus.isChanged && !configurationSyncStatus.isNew) {\r\n this.logger.log(`[Configuration] status : [VALID].`);\r\n return `[Configuration] status : [VALID].`;\r\n }\r\n else {\r\n this.logger.log(`[Configuration] status : [INVALID & Reconciled].`);\r\n return `[Configuration] status : [INVALID & Reconciled].`;\r\n }\r\n }\r\n}\r\n\r\nexport const config = ConfigurationStore.getInstance();",
|
|
10
10
|
"import type { PulsarCore } from \"../service/PulsarBaseService\";\r\nimport type { ILogger } from \"../subsys/LoggerService\";\r\nimport type { IIntegration } from \"../types/integrations.types\";\r\nimport { config } from \"../service/ConfigurationStore\";\r\n\r\nexport class PulsarLoggerIntegrations implements IIntegration, ILogger {\r\n public readonly module = \"LOGGER\";\r\n\r\n constructor() {}\r\n\r\n public async main(engine : PulsarCore) {\r\n engine.logger.setProvider(this);\r\n console.log(`Log Provider Set to : [PulsarLoggerIntegrations]`);\r\n }\r\n\r\n public log(msg : string, payload?: unknown) {\r\n config.raw.logger?.log(msg, ...(payload !== undefined ? [payload] : []));\r\n }\r\n\r\n public warn(msg : string, payload?: unknown) {\r\n config.raw.logger?.warn(msg, ...(payload !== undefined ? [payload] : []));\r\n }\r\n\r\n public error(msg : string, payload?: unknown) {\r\n config.raw.logger?.error(msg, ...(payload !== undefined ? [payload] : []));\r\n }\r\n}"
|
|
11
11
|
],
|
|
12
|
-
"mappings": "mhBACO,MAAM,CAAyB,CAGd,OAFJ,OAAS,MAEzB,WAAW,CAAS,EAAiB,CAAjB,mBAIP,KAAI,EAAG,EAGxB,CCJA,MAAM,CAAiC,CACnC,GAAG,CAAC,KAAqB,EAAc,CAAE,QAAQ,IAAI,EAAS,GAAG,CAAI,EACrE,IAAI,CAAC,KAAqB,EAAc,CAAE,QAAQ,KAAK,EAAS,GAAG,CAAI,EACvE,KAAK,CAAC,KAAqB,EAAc,CAAE,QAAQ,MAAM,EAAS,GAAG,CAAI,EACzE,KAAK,CAAC,KAAqB,EAAc,CAAE,QAAQ,MAAM,EAAS,GAAG,CAAI,EAC7E,CAEO,MAAM,CAAiC,OAC3B,UAAqB,IAAI,EAEjC,WAAW,CAAC,EAAuB,CACtC,EAAc,SAAW,EAGtB,GAAG,CAAC,KAAqB,EAAc,CAC1C,EAAc,SAAS,IAAI,EAAS,GAAG,CAAI,EAGxC,IAAI,CAAC,KAAqB,EAAc,CAC3C,EAAc,SAAS,KAAK,EAAS,GAAG,CAAI,EAGzC,KAAK,CAAC,KAAqB,EAAc,CAC5C,EAAc,SAAS,MAAM,EAAS,GAAG,CAAI,EAG1C,KAAK,CAAC,KAAqB,EAAc,CAC5C,GAAI,EAAc,SAAS,MACvB,EAAc,SAAS,MAAM,EAAS,GAAG,CAAI,EAGzD,CC7BO,IAAK,GAAL,CAAK,IAAL,CAQH,aAAa,aAQb,gBAAgB,gBAShB,aAAa,eAzBL,QCTL,IAAK,GAAL,CAAK,IAAL,CAaH,kBAAkB,kBAUlB,UAAU,UAUV,UAAU,YAjCF,QCUZ,IAAM,EAAuB,IAAI,IAAI,CAAC,UAAW,UAAW,WAAY,UAAW,OAAO,CAAC,EAErF,EAA6B,IAAI,IAAY,CAAC,QAAS,iBAAiB,CAAC,EAExE,MAAM,CAAmB,OACb,UACL,QACF,gBACA,OAER,WAAW,EAAG,CACV,KAAK,OAAS,IAAI,QAGR,YAAW,EAAwB,CAC7C,GAAI,CAAC,EAAmB,SACpB,EAAmB,SAAW,IAAI,EAEtC,OAAO,EAAmB,SAGvB,UAAU,CAAC,EAA2B,CACzC,KAAK,QAAU,CACX,YAAc,CACV,qBAAuB,IACvB,qBAAuB,IACvB,iBAAmB,iBAChB,EAAW,WAClB,KACG,EACH,OAAQ,IACA,EAAW,sBAAsC,CACjD,mBAAqB,CACzB,EAAI,CAAC,KAED,EAAW,
|
|
13
|
-
"debugId": "
|
|
12
|
+
"mappings": "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",
|
|
13
|
+
"debugId": "92DDF0845248CA8164756E2164756E21",
|
|
14
14
|
"names": []
|
|
15
15
|
}
|