{"version":3,"sources":["../src/hitSocket.ts"],"names":["url","start","logger","ws","WebSocket","socket","Object","assign","id","closingByKit","process","stdin","setEncoding","data","allData","actions","Joi","object","jobs","pipe","action","log","subscriptions","Subscription","add","text","type","replace","unsubscribe","toPromise","catch","err","error"],"mappings":";;AAAA;;AACA;;AACA;;AAKA;;AACA;;AAQA;;;;AAEA,MAAMA,GAAG,GAAG,8BAAZ;;AAEA,eAAeC,KAAf,GAAuB;AACrB,QAAMC,MAAM,GAAG,iCAAf;AAEA,QAAMC,EAAE,GAAG,IAAIC,WAAJ,CAAcJ,GAAd,CAAX;AACA,QAAMK,MAAM,GAAGC,MAAM,CAACC,MAAP,CAAcJ,EAAd,EAAkB;AAAEK,IAAAA,EAAE,EAAE,aAAN;AAAqBC,IAAAA,YAAY,EAAE;AAAnC,GAAlB,CAAf;AAEAC,EAAAA,OAAO,CAACC,KAAR,CAAcC,WAAd,CAA0B,MAA1B;AAEA,QAAMC,IAAI,GAAG,qBAAkBH,OAAO,CAACC,KAA1B,EAAiC,MAAjC,CAAb;AAEA,QAAMG,OAAO,GAAG,mCAAqBT,MAArB,CAAhB;AAEA,QAAMU,OAAO,GAAG,qCAAuBD,OAAvB,EAAgC,MAAME,aAAIC,MAAJ,EAAtC,CAAhB;AAEA,QAAMC,IAAI,GAAG,iBACXH,OAAO,CAACI,IAAR,CACE,0BAAWC,MAAD,IAAY;AACpBlB,IAAAA,MAAM,CAACmB,GAAP,CAAW,eAAX,EAA4BD,MAA5B;AACA,WAAO,kBAAP;AACD,GAHD,CADF,CADW,CAAb;AASA,QAAME,aAAa,GAAG,IAAIC,kBAAJ,EAAtB;AAEAD,EAAAA,aAAa,CAACE,GAAd,CACE,mCACEX,IAAI,CAACM,IAAL,CACE,oBAAKM,IAAD,KAAW;AACbC,IAAAA,IAAI,EAAE,MADO;AAEbD,IAAAA,IAAI,EAAEA,IAAI,CAACE,OAAL,CAAa,IAAb,EAAmB,EAAnB;AAFO,GAAX,CAAJ,CADF,EAKE,oBAAKP,MAAD,IAAY;AACdlB,IAAAA,MAAM,CAACmB,GAAP,CAAW,cAAX,EAA2BD,MAA3B;AACD,GAFD,CALF,CADF,EAUEf,MAVF,CADF;AAeA,SAAOa,IAAI,CACRC,IADI,CAEH,yBAAS,MAAM;AACbG,IAAAA,aAAa,CAACM,WAAd;AACD,GAFD,CAFG,EAKH,gCALG,EAMH,yBANG,EAQJC,SARI,EAAP;AASD;;AAED5B,KAAK,GAAG6B,KAAR,CAAeC,GAAD,IAAS;AACrB,oCAAqBC,KAArB,CAA2B,EAA3B,EAA+BD,GAA/B;AACD,CAFD","sourcesContent":["import WebSocket from 'ws';\nimport { fromEvent, merge, empty, Subscription } from 'rxjs';\nimport {\n  actionStreamFromSocket,\n  dataStreamFromSocket,\n  pipeStreamIntoSocket,\n} from './shared/sockets';\nimport Joi from 'joi';\nimport {\n  concatMap,\n  map,\n  finalize,\n  ignoreElements,\n  endWith,\n  tap,\n} from 'rxjs/operators';\nimport { defaultBasicLogger } from './shared';\n\nconst url = 'http://localhost:4010/events';\n\nasync function start() {\n  const logger = defaultBasicLogger();\n\n  const ws = new WebSocket(url);\n  const socket = Object.assign(ws, { id: 'test-socket', closingByKit: false });\n\n  process.stdin.setEncoding('utf8');\n\n  const data = fromEvent<string>(process.stdin, 'data');\n\n  const allData = dataStreamFromSocket(socket);\n\n  const actions = actionStreamFromSocket(allData, () => Joi.object());\n\n  const jobs = merge(\n    actions.pipe(\n      concatMap((action) => {\n        logger.log('  -> Received', action);\n        return empty();\n      })\n    )\n  );\n\n  const subscriptions = new Subscription();\n\n  subscriptions.add(\n    pipeStreamIntoSocket(\n      data.pipe(\n        map((text) => ({\n          type: 'TEST',\n          text: text.replace('\\n', ''),\n        })),\n        tap((action) => {\n          logger.log('  <- Sending', action);\n        })\n      ),\n      socket\n    )\n  );\n\n  return jobs\n    .pipe(\n      finalize(() => {\n        subscriptions.unsubscribe();\n      }),\n      ignoreElements(),\n      endWith()\n    )\n    .toPromise();\n}\n\nstart().catch((err) => {\n  defaultBasicLogger().error('', err);\n});\n"],"file":"hitSocket.js"}