{"_id":"@krybc/xapi-js-wrapper","_rev":"37-1615605b905cbce87b0c2e34a646096c","time":{"created":"2020-10-07T19:10:16.237Z","1.0.1":"2020-10-07T19:10:16.637Z","modified":"2022-04-06T00:22:56.505Z","2.5.0":"2020-10-26T19:02:22.963Z"},"name":"@krybc/xapi-js-wrapper","dist-tags":{"latest":"2.5.0"},"versions":{"1.0.1":{"name":"@krybc/xapi-js-wrapper","version":"1.0.1","description":"xStation JavaScript wrapper","repository":{"type":"git","url":"git+https://github.com/krybc/xapi-js-wrapper.git"},"main":"./lib/index.js","types":"./lib/index.d.ts","scripts":{"build":"rimraf -rf lib && tsc -p tsconfig.json","jest":"XAPI_LOGIN= XAPI_PASSWORD= jest","test":"XAPI_LOGIN= XAPI_PASSWORD= jest --coverage","test-ci":"jest --coverage --detectOpenHandles && cat ./coverage/lcov.info | coveralls","prepublish:npm":"npm run build","publish:npm":"npm publish --access public"},"keywords":[],"author":{"name":"Kamil Rybczyński","email":"github@rybczynski.io","url":"http://rybczynski.io"},"license":"MIT","dependencies":{"class-transformer":"^0.3.1","class-validator":"^0.12.2","reflect-metadata":"^0.1.13","rxjs":"^6.6.3","ws":"^7.3.1"},"devDependencies":{"@babel/core":"^7.11.6","@babel/preset-env":"^7.11.5","@babel/preset-typescript":"^7.10.4","@types/jest":"^26.0.14","@types/ws":"^7.2.7","babel-jest":"^26.5.2","coveralls":"^3.0.4","jest":"^26.5.2","jest-extended":"^0.11.5","rimraf":"^3.0.2","ts-jest":"^26.4.1","typescript":"^3.9.7"},"bugs":{"url":"https://github.com/krybc/xapi-js-wrapper/issues"},"homepage":"https://github.com/krybc/xapi-js-wrapper#readme","gitHead":"886516f8e7e330b36cde44b142aa023f7b201b20","_id":"@krybc/xapi-js-wrapper@1.0.1","_nodeVersion":"12.1.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-a9ac7J8h9CK2OQvzPGCd0X+/JzXW30arPl0gpSqXkIZ8bDbwrwSjWuZ4z+dbu2KqqHldMKscSfFh52SBA4Dd5Q==","shasum":"dbb47a5e4ef6946faa9699167c92c6488cba2f1a","tarball":"https://registry.npmjs.org/@krybc/xapi-js-wrapper/-/xapi-js-wrapper-1.0.1.tgz","fileCount":240,"unpackedSize":171537,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJffhKYCRA9TVsSAnZWagAAMGoQAJYv30bFNuwPdZ1Ad03o\nbNhzLJULUPhCDrW3M8cG+gufqE1UNA8P0de0LD9OiZfGfRoe/IqA2XBXgaat\nWbzqCgmnoqbbwf2lOw8zSWw0/rE+TiFSRA53BgoES2EI9S7Q3/5BrBssFkMJ\nxUq0hwoUK86hziD1iriEHWrwF7LGNDql99N6Ml9CSHbukkLuXDkGbIK4Zcxa\n+B2W4El/1FJ2qQOZDF4M8WEt8VmKksFMYA7fPswRw/246TrGxhsGW4Ea4OKL\n5jE2u1o7Axm3mclwzvXPHULuddNHCcFAx8sbx6GC/ox4sT9Fg4k8fez5tGMx\nyz6djA3Lc2Yr7O/eRZuNgpTRnkFcE+8F9qmLs1jKgRa0oGaeXAZsr043vm4r\n0Apa8OivZDXzmWD9oRPIV+eLoixt/BgXO69IQkIuZnLyDRW/9uDPdrJno4kI\nWX29pzKNzWTn9SBJWJQZPGGdbQ66/PbB3umpl7JziLJQcB395jnwGIBfBI9v\njOeKlwyVUEXgt8zj8dPwv/oR9ybOv2dy4JDfOx1gHEOlOu02YalBm+gjT+OA\nsXag81egUgfd/4qTn7k7WU2F7tD1NDFr+wG5fjAjYh//LaD5qqm7igHlzy6Y\nEHK2YLX0M5R2dVM/TGWZOQBX5DEY73HT9RmVg2ZhUPw9loiuWqauAKqa9c/U\nfdFQ\r\n=MK0K\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCwJ1nVlOhwmAy9tZ+O8d/2nMRH5jNIPkOZAnzrOVNaegIgGhrep1VqM3rjZ/lKqkB554eMiHmFZbFsC47c0J835pw="}]},"maintainers":[{"name":"kamil-rybczynski","email":"npm@rybczynski.io"}],"_npmUser":{"name":"kamil-rybczynski","email":"npm@rybczynski.io"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/xapi-js-wrapper_1.0.1_1602097816498_0.47277354264122495"},"_hasShrinkwrap":false},"2.5.0":{"name":"@krybc/xapi-js-wrapper","version":"2.5.0","description":"xStation JavaScript wrapper","repository":{"type":"git","url":"git+https://github.com/krybc/xapi-js-wrapper.git"},"main":"./lib/index.js","types":"./lib/index.d.ts","scripts":{"build":"rimraf -rf lib && tsc -p tsconfig.json","test":"jest --maxWorkers=1","test:coverage":"jest --maxWorkers=1 --coverage","test:ci":"jest --maxWorkers=1 --coverage --detectOpenHandles && cat ./coverage/lcov.info | coveralls","prepublish:npm":"npm run build","publish:npm":"npm publish --access public"},"keywords":[],"author":{"name":"Kamil Rybczyński","email":"github@rybczynski.io","url":"http://rybczynski.io"},"license":"MIT","dependencies":{"class-transformer":"^0.3.1","class-validator":"^0.12.2","reflect-metadata":"^0.1.13","rxjs":"^6.6.3","ws":"^7.3.1"},"devDependencies":{"@babel/core":"^7.11.6","@babel/preset-env":"^7.11.5","@babel/preset-typescript":"^7.10.4","@types/jest":"^26.0.14","@types/ws":"^7.2.7","babel-jest":"^26.5.2","coveralls":"^3.0.4","jest":"^26.5.2","jest-extended":"^0.11.5","rimraf":"^3.0.2","ts-jest":"^26.4.1","typescript":"^3.9.7"},"bugs":{"url":"https://github.com/krybc/xapi-js-wrapper/issues"},"homepage":"https://github.com/krybc/xapi-js-wrapper#readme","gitHead":"7a017fea23e0d84538d0a9d6efe23723e31b6e25","_id":"@krybc/xapi-js-wrapper@2.5.0","_nodeVersion":"12.1.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-SCEETspzcRNwUAc+n3YCLCnGquL8kSxw8WlYeOWY9TOqFMc5um+e2FJOWOia9nvY9R5+36ZQ43PS1HD9ZRsOEA==","shasum":"5afb7be59a34519f39b0e897f20e8d32503a3ef2","tarball":"https://registry.npmjs.org/@krybc/xapi-js-wrapper/-/xapi-js-wrapper-2.5.0.tgz","fileCount":241,"unpackedSize":180524,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJflx0/CRA9TVsSAnZWagAArLAQAIT2jYZ4jCz3wPQEwWSX\nlwjnXzvW/4hFJBpLRPH06mKzvRHHjKpZqgz3NlsdNO/mXFyH1tNIsYBUtLVt\nPwbh/GUdjZlP/xLKB+BgbSnnXEPGXOGSMLXbjGJP5f8aJezHi3I5nNF4Mlse\nXnCXGLAxAT0svEEBpX9VI5v88gTmHpuflbk2XiiYKFiHRkk8dZkscR+6JOyk\n6Oy8hEAbAqLbozsLTP85es2Mvuf3wSv4Xnr/uCGbOLCHHRLsR2zeOrA21kva\nuRir2imhlfDEDes4KNTuQQ7NQQjNoKASu7J2ETFQ8a0yW0IO03PWLMv3iYBA\nKcCNi3xckmDoZsBe1v2r3ZKDj6T4oakLayOqYcKWdtnM9APo3rixW88pwjmY\npUGfgcttKioRfbJfzSa6tbQ7A/uRZjLZ7WOa+Qk8iY1J5VGcQd/NqDutPFmH\nrmt6LWgCWVMK4Eezdwrzmpxa2h6eqrFjESxi4ZHnxr/g+UFmdp6LKYZW3cXQ\nQLS/zajyR+bVdz5Ja6hgTLliCV3bpYNkeLJWwH1PHIY/WVku8KDE8uwSRiJl\nE6FoaLJi3E9DGlE+PmsencpLdaVqj5/KPYe2Ot+Zy9v5KUi+vYzGfybZCp6Z\nj3q0zSRwZiWeSpbcxxZDmDN2cXIu+gNs7C7L+wu2VPe5/X3+HHyZfKlQ4ZbQ\nBjtc\r\n=jND7\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIG68XszTq+5g+tY2orJ4+QMg7SjUvaYDVkdyysPgC64zAiEAtIlcN92xJtmsJehXzgSri1XSUBp4hvpNag9dOsy3ddk="}]},"maintainers":[{"name":"kamil-rybczynski","email":"npm@rybczynski.io"}],"_npmUser":{"name":"kamil-rybczynski","email":"npm@rybczynski.io"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/xapi-js-wrapper_2.5.0_1603738942740_0.42260702224213165"},"_hasShrinkwrap":false}},"maintainers":[{"name":"kamil-rybczynski","email":"npm@rybczynski.io"}],"description":"xStation JavaScript wrapper","homepage":"https://github.com/krybc/xapi-js-wrapper#readme","keywords":[],"repository":{"type":"git","url":"git+https://github.com/krybc/xapi-js-wrapper.git"},"author":{"name":"Kamil Rybczyński","email":"github@rybczynski.io","url":"http://rybczynski.io"},"bugs":{"url":"https://github.com/krybc/xapi-js-wrapper/issues"},"license":"MIT","readme":"# xAPI JS wrapper\n[![Build Status](https://travis-ci.org/krybc/xapi-js-wrapper.svg?branch=master)](https://travis-ci.org/krybc/xapi-js-wrapper)\n[![Coverage Status](https://coveralls.io/repos/github/krybc/xapi-js-wrapper/badge.svg)](https://coveralls.io/github/krybc/xapi-js-wrapper)\n\nxAPI wrapper for nodeJS environment based on websocket and written in Typescript.  \nxAPI is a endpoint for xStation forex trading software distributed by one of the biggest polish trading brokers - XTB.\n\n[xAPI documentation](http://developers.xstore.pro/documentation/current)  \n[xStation website](https://www.xtb.com/en/trading-services/trading-platforms/xstation)\n\n## Requirements\n* NodeJS >= 12\n\n\n## Version xapi-js-wrapper vs xApi version\n\n| xapi-js-wrapper | xAPI |  \n|:--|:--|  \n| 2.5.0 | 2.5.0.* |  \n\n## Installation\n\n```bash\nnpm i --save @krybc/xapi-js-wrapper\n```\n\n\n## Usage\n\nEvery sync api command class and streaming command class has equal one response class that be returned as Promise (sync response) as Observable (streaming response), when response has been received.\n\n\n### Connect to sync api\n\n```js\nimport {Servers, SyncApiConnector} from '@krybc/xapi-js-wrapper';\n\nconst server = Servers.get('xtb', 'demo');\n\nnew SyncApiConnector(server).connect().then(conn => {\n  \n});\n```\n\n### Connect to streaming api\n\nStreaming API commands is available only if you're logged in, because all streaming commands required `streamSessionId` value, that will be returned by sync `LoginCommand`.\n\n```js\nimport {Servers, StreamingApiConnector} from '@krybc/xapi-js-wrapper';\n\nconst server = Servers.get('xtb', 'demo');\n\nnew StreamingApiConnector(server).connect().then(streamConn => {\n  \n});\n```\n\n### Run streaming commands\n\n#### GetCandles\n\n```js\nstreamConn.subscribeCandles('EURUSD').subscribe((result: StreamingCandleResponse) => {\n  \n});\n```\n\n### Login\n\n```js\nconst result = conn.executeCommand('username', 'password').then(result => {\n  const sessionId = result.streamSessionId;\n});\n```\n\n## Test\n\n```bash\nnpm run test\n```\n","readmeFilename":"README.md"}