/**
 * Minified by jsDelivr using Terser v5.39.0.
 * Original file: /npm/merloc-local@0.0.2/dist/index.js
 *
 * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
 */
#! /usr/bin/env node
"use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,n,r,i){void 0===i&&(i=r);var t=Object.getOwnPropertyDescriptor(n,r);t&&!("get"in t?!n.__esModule:t.writable||t.configurable)||(t={enumerable:!0,get:function(){return n[r]}}),Object.defineProperty(e,i,t)}:function(e,n,r,i){void 0===i&&(i=r),e[i]=n[r]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(e,n){Object.defineProperty(e,"default",{enumerable:!0,value:n})}:function(e,n){e.default=n}),__importStar=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var n={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&__createBinding(n,e,r);return __setModuleDefault(n,e),n},__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0});const readline_1=__importDefault(require("readline")),uuid_1=require("uuid"),chokidar_1=__importDefault(require("chokidar")),configs_1=require("./configs"),logger=__importStar(require("./logger")),BrokerClient_1=__importDefault(require("./client/BrokerClient")),handler_1=__importDefault(require("./handler")),constants_1=require("./constants"),RuntimeManager_1=__importDefault(require("./invoke/RuntimeManager")),DEFAULT_FILES_NOT_TO_WATCH=["**/.idea/**","**/.vscode/**","**/.github/**","**/.serverless/**","**/.aws-sam/**","**/.build/**","**/.*","**/*.json","**/*.yml","**/*.md","**/*.txt","**/LICENSE"];class BrokerMessageListener{async onMessage(e,n){try{logger.isDebugEnabled()&&logger.debug(`<index> Handling broker message: ${logger.toJson(n)} ...`);const r=handler_1.default[n.type];if(r){const i=await r.handleMessage(n.data||n.error);if(i){logger.isDebugEnabled()&&logger.debug(`<index> Sending response back to broker: ${logger.toJson(i)} ...`);const r={id:(0,uuid_1.v4)(),responseOf:n.id,type:i.type,connectionName:e.getFullConnectionName(),sourceConnectionId:n.targetConnectionId,sourceConnectionType:constants_1.CLIENT_CONNECTION_TYPE,targetConnectionId:n.sourceConnectionId,targetConnectionType:n.sourceConnectionType,data:i.data,error:i.error};await e.send(r)}}else logger.debug(`<index> Unknown message type: ${n.type}`)}catch(e){logger.error("<index> Error occurred while handling message:",e)}}}const brokerURL=(0,configs_1.getBrokerURL)(),brokerMessageListener=new BrokerMessageListener;async function _initInvoker(){logger.debug("<index> Initializing invoker ..."),await RuntimeManager_1.default.init(),logger.debug("<index> Initialized invoker")}async function _initBroker(){return logger.debug("<index> Initializing broker ..."),new Promise(((e,n)=>{logger.debug("<index> Creating broker client ...");const r=new BrokerClient_1.default(brokerURL,(0,configs_1.getBrokerConnectionName)(),(0,configs_1.getAPIKey)(),brokerMessageListener);logger.debug("<index> Created broker client"),logger.info("Connecting to broker. Waiting ..."),r.connect().then((()=>{logger.debug("<index> Connected to broker"),logger.info("Connected to broker"),e(r)})).catch((e=>{logger.error("<index> Unable to connect to broker:",e),n(new Error(`Unable to connect to broker: ${e.message}`))}))}))}function _initKeyListener(){logger.debug("<index> Initializing key listener ..."),readline_1.default.emitKeypressEvents(process.stdin),process.stdin.on("keypress",(async function(e,n){if(process.stdout.write(e),n&&n.ctrl&&"c"==n.name)try{logger.info("Destroying ..."),await RuntimeManager_1.default.destroy()}finally{process.exit()}else n&&n.ctrl&&"r"==n.name&&(logger.info("Reloading ..."),await RuntimeManager_1.default.reload(),logger.info("Reloaded"))})),process.stdin.setRawMode(!0),process.stdin.resume(),logger.debug("<index> Initialized key listener")}function _initWatcher(){(0,configs_1.isReloadEnabled)()&&(logger.debug("<index> Initializing watcher for hot-reload ..."),chokidar_1.default.watch((0,configs_1.getWatchPaths)(),{ignored:DEFAULT_FILES_NOT_TO_WATCH,ignoreInitial:!0}).on("add",(async e=>{logger.isDebugEnabled()&&logger.debug(`<index> Detected file add: ${e}`),logger.info("Reloading ..."),await RuntimeManager_1.default.reload(),logger.info("Reloaded")})).on("change",(async e=>{logger.isDebugEnabled()&&logger.debug(`<index> Detected file change: ${e}`),logger.info("Reloading ..."),await RuntimeManager_1.default.reload(),logger.info("Reloaded")})),logger.debug("<index> Initialized watcher for hot-reload"))}async function _init(){try{logger.info("Initializing, wait ..."),await _initInvoker(),await _initBroker(),await _initKeyListener(),await _initWatcher(),logger.info("Initialization completed. MerLoc is ready!")}catch(e){logger.error("<index> Unable to initialize:",e),process.exit(1)}}brokerURL||(logger.warn("No broker URL is configured. So exiting"),process.exit(1)),_init();
//# sourceMappingURL=/sm/60447a3ef7de94763c32b456d5df55e515a9f8f3f8f0590eb2949821072a630d.map