{"_id":"@acryl/data-service-client-js","_rev":"2-fc985a8c123a9237d924015358e89997","name":"@acryl/data-service-client-js","dist-tags":{"latest":"4.0.3"},"versions":{"4.0.2":{"name":"@acryl/data-service-client-js","version":"4.0.2","main":"dist/index.js","types":"dist/index.d.ts","license":"MIT","scripts":{"dev":"ts-node src/index.ts","build":"tsc","build:browser:dev":"tsc && browserify ./dist/index.js -o ./dist/umd.js","build:browser":"browserify ./dist/index.js -o ./dist/umd.js -u @acryl/data-entities -u @acryl/bignumber","build:all":"rimraf ./dist/* && npm run build && npm run build:browser","test":"jest","prepare":"npm run build:all && npm test"},"publishConfig":{"access":"public"},"dependencies":{"@acryl/bignumber":"^0.0.3","@acryl/data-entities":"^2.0.0"},"devDependencies":{"@types/jest":"^22.2.3","@types/node":"12.7.4","@types/node-fetch":"^1.6.9","browserify":"^16.2.2","jest":"^24.9.0","node-fetch":"^2.1.2","parse-json-bignumber":"^0.0.2","rimraf":"^2.6.2","ts-jest":"^23.10.5","typescript":"^3.4.5"},"jest":{"transform":{"^.+\\.tsx?$":"ts-jest"},"testRegex":"(src/__tests__/.*|(\\.|/)(test|spec))\\.(jsx?|tsx?)$","testPathIgnorePatterns":["/node_modules/",".history"],"moduleFileExtensions":["ts","tsx","js","jsx","json","node"],"testURL":"http://localhost/"},"gitHead":"75e893dbd101f692e1a84567e166def4db528e04","description":"## Usage","_id":"@acryl/data-service-client-js@4.0.2","_nodeVersion":"10.16.3","_npmVersion":"6.9.0","dist":{"integrity":"sha512-M/Fn7gLr917nKKi4xvut820Jf/YUsB+0iH5jv5fzhXQFZdLlKClUU5wkOJmV5coP+cvyt/0xsLEA+7CkkfhLcQ==","shasum":"8a2426f641f71fc84fd37dd0b561d99aa693b160","tarball":"https://registry.npmjs.org/@acryl/data-service-client-js/-/data-service-client-js-4.0.2.tgz","fileCount":51,"unpackedSize":134751,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdb5FnCRA9TVsSAnZWagAA0PQQAJJt2e5QFuzfAsAPDlsz\nou/Zrs+2UF9NfMrZG7Fh6xuMUVOJdzz0HMXGmrLE8gZoHHhLsJ0ApoCg0Bv2\nZJ0UeHmVwAV0jNTu3mHsbN24K6pw9Z2tR2VWHSHbI5B86QmWp2Z5AhJE+Rvz\nm2JydHJgzfoxHXS6orNQtgdL0AJZDuNUPJ23mkXFCiiOGLyHSmIqekS8k2BB\n3RIudBmgA9iUNUBVmdJO/yK2T5RViGEA5cyaagctWqTiqzdF9K7IQZiyj1Li\n8xStKS+P35RZ81mw/Dlqhl5Gh8ZGj/kukWA/uZF0COlpNEunDsRgn3T/hK0U\nbqbq5anAdaHLM7c7FN28J5OF/jV076yMfTUDFCDqI0Ko0U9/5PnI26VEfZPJ\nDffWu75+tIFm+ZxEbDHOPFAL0EfM3QTJhm1d3RkJMmowm1DBTtvRlVnJne5I\nPT52cp2w5wWtTa67xcZAi4JgazC2KkDYoo/IvEPjrp0UBAqCvzUXrsYuDAS9\njl+I3SSqqUR3KS8MTAXOeL2FSqtxgERjiT0jP49ZT1FgItXNNE+kYSDXkA52\nuNA9zncfUKa7dBtSnOdv5nSTmIHPxYWJCBXQye20GQDLkMrj8E6gUKbuuEf7\n1HEFaxB/PawpPBeRtwmvJxhJAw9pb24zR495u/tOMaFR6qxBoJtws68jvoDO\nZeTN\r\n=PpKR\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFwC+3FpRLEOcdvNUq6oordBipJxuMhTtzfR3AhjXUJlAiEA/46n8PPoZYf1iqSL+pbvvePCJxY81anXXF1mH6iAATc="}]},"maintainers":[{"name":"deadblackclover","email":"deadblackclover@protonmail.com"},{"name":"eaz","email":"eaz@acrylplatform.com"}],"_npmUser":{"name":"eaz","email":"eaz@acrylplatform.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/data-service-client-js_4.0.2_1567592807296_0.5488972874657077"},"_hasShrinkwrap":false},"4.0.3":{"name":"@acryl/data-service-client-js","version":"4.0.3","main":"dist/index.js","types":"dist/index.d.ts","license":"MIT","scripts":{"dev":"ts-node src/index.ts","build":"tsc","build:browser:dev":"tsc && browserify ./dist/index.js -o ./dist/umd.js","build:browser":"browserify ./dist/index.js -o ./dist/umd.js -u @acryl/data-entities -u @acryl/bignumber","build:all":"rimraf ./dist/* && npm run build && npm run build:browser","test":"jest","prepare":"npm run build:all && npm test"},"publishConfig":{"access":"public"},"dependencies":{"@acryl/bignumber":"^0.0.3","@acryl/data-entities":"^2.0.0"},"devDependencies":{"@types/jest":"^22.2.3","@types/node":"12.7.4","@types/node-fetch":"^1.6.9","browserify":"^16.2.2","jest":"^24.9.0","node-fetch":"^2.1.2","parse-json-bignumber":"^0.0.2","rimraf":"^2.6.2","ts-jest":"^23.10.5","typescript":"^3.4.5"},"jest":{"transform":{"^.+\\.tsx?$":"ts-jest"},"testRegex":"(src/__tests__/.*|(\\.|/)(test|spec))\\.(jsx?|tsx?)$","testPathIgnorePatterns":["/node_modules/",".history"],"moduleFileExtensions":["ts","tsx","js","jsx","json","node"],"testURL":"http://localhost/"},"gitHead":"5567d75e105a51f19822e82111e703ed10c7f795","description":"## Usage","_id":"@acryl/data-service-client-js@4.0.3","_nodeVersion":"10.19.0","_npmVersion":"6.13.4","dist":{"integrity":"sha512-DWQkL4MFy7um9WDeu/cZ1JhgFWmm3gOSqNvqhsEUUJAvjSVQgv/8FhffwdIsEr+aFQwmHXfSni8Kl155fBNNqA==","shasum":"352196fef8474ecc153ed585b4fc63ce3e5f34ee","tarball":"https://registry.npmjs.org/@acryl/data-service-client-js/-/data-service-client-js-4.0.3.tgz","fileCount":51,"unpackedSize":134751,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJehuTqCRA9TVsSAnZWagAAzwsP/1aldqDLaU48YQgQtMVf\nYp1/vdQjL+P6Sg2S9EKiVzJhGfESfSk8d7QGUB1PaGw/g2Q+KNqPaScAw4UM\nkf2+AN/BSDXYM1DXfoAyyIDb00o6cw9YFvjZNJoqMSMrwNFoqkt5rlchVTS2\nPf8YjiGspliKXqb8LOtGrqaNkSF/Ib5W5zwG8Y41qqrfxbtfo95x4q5PHqSa\nY2UwTIlRMsmFsKGHRffihMRAkE3ZwfU1FH11WNCH5xQaxwpwHT6rLPJcfXvn\nX3qSS8SYPhnGbTvVD1XsmJKhfHwJFjYWx4gWImPqRnN1QkuQTtVtb4Yp8DwD\n6dvqT7xt12abV3oWZgfhIbFL/XfdsJvWEOzlZ1kavbJIxdbPaU9n+WYJZ2C/\ndUfOb/5oGExZHeV00qBSLCrTxE5CfdIfJLYH2pxkcaS23fXlwqnUH7ATbk4D\n2oiq6zVRzy8cvYiFXS2gj3exAARdayZViKmirhel+/gMpZVxVwWTrVCPbIK4\noo5wnYQr1VCYLtsM8GAj7AthNDlvstpydaYN+amGjiL9lMuKvBczEd2JMEEd\nZFxBWhS1fIZvq2Nk16NgO8uxIhP7AxC6o+/4rOC/hJj8Or6YUXzfls3+SuHU\n1I6KsJ5v+zlT9D68GQduGliz9FvXOr55PmWEneT7oCERJeDK3lO/69nV2XKt\nH5pj\r\n=sWAp\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDSZpuX8T+Vq+fIFG+vSQVsJoxmeMnIaUhj0ldcnu8ZAQIgOf8S18wrDNMvprCH62E0PbgKQMc9Nlrgb9RElItu3tE="}]},"maintainers":[{"name":"deadblackclover","email":"deadblackclover@protonmail.com"},{"name":"eaz","email":"eaz@acrylplatform.com"}],"_npmUser":{"name":"eaz","email":"eaz@acrylplatform.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/data-service-client-js_4.0.3_1585898730454_0.3670776062459291"},"_hasShrinkwrap":false}},"time":{"created":"2019-09-04T10:26:47.082Z","4.0.2":"2019-09-04T10:26:47.439Z","modified":"2022-04-04T11:16:34.285Z","4.0.3":"2020-04-03T07:25:30.580Z"},"maintainers":[{"name":"deadblackclover","email":"deadblackclover@protonmail.com"},{"name":"eaz","email":"eaz@acrylplatform.com"}],"description":"## Usage","license":"MIT","readme":"# JS Library for Acryl data services\n\n## Usage\n\n```typescript\nconst DataServiceClient = require('@acryl/data-service-client-js').default;\n\n// Initialization\nconst client = new DataServiceClient({\n  rootUrl: 'http://api.acrylplatform.com/v0',\n  fetch: req => window.fetch(req).then(res => res.text()), // fetch must return string\n  parse: str => JSON.parse(str),\n});\n\n// Fetching\n(async () => {\n  const { data } = await client.getAssets('ACRYL'); // data: Asset {}\n})();\n```\n\n## Methods\n\n### Response format\n\n`{ data, ...meta }`\n\n### All methods do GET requests, until query is under 2k symbols, then automatically switch to POST\n\n- getAssets:\n\n```typescript\nawait client.getAssets('ACRYL'); // One { data: Asset }\nawait client.getAssets('ACRYL', '68X83bfvSSQauL81fcfqA3Vne9s4y2BRAG36DGRcv4V2'); // Or many { data: Asset[] }\nawait client.getAssetsByTicker('ACRYL');  // Many { data: Asset[] }\nawait client.getAssetsByTicker('*');  // Many { data: Asset[] } - all assets\n```\n\n- getPairs\n\n```typescript\nconst getPairs = client.getPairs('MATCHER_ID'); // set up DEX matcher\nawait getPairs([\n  'ACRYL/68X83bfvSSQauL81fcfqA3Vne9s4y2BRAG36DGRcv4V2',\n  'ACRYL/4vN61TPpk5qKidGt5RYgd1To4nzxsoDyAL5buBk37hwF'\n]); // get pairs\n```\n\n- getExchangeTxs:\n\n```typescript\nawait client.getExchangeTxs('8rEwYY4wQ4bkEkk95EiyeQnvnonX6TAnU6eiBAbVSADk'); // By id { data: Tx }\nawait client.getExchangeTxs({\n  timeStart?: string | Date | number;\n  timeEnd?: string | Date | number;\n  matcher?: string;\n  sender?: string;\n  amountAsset?: string | Asset;\n  priceAsset?: string | Asset;\n  limit?: number;\n  sort?: 'asc'|'desc';\n}); // With filters { data: Tx[] }\nawait client.getExchangeTxs(); // Top 100 with default filters (timeStart = timestamp of first entry in db, timeEnd = now)\n```\n\n- aliases:\n\n```typescript\nconst alias1 = await client.aliases.getById('@askerych');\n/*\n  { data: {\n      address: '3P5uMgn1xvrm7g3sbUVAGLtetkNUa1AHn2M',\n      alias: '@askerych'\n    }\n  }\n  */\nconst alias2 = await client.aliases.getByAddress(\n  '3P5uMgn1xvrm7g3sbUVAGLtetkNUa1AHn2M'\n);\n/*\n  { data: [{\n      address: '3P5uMgn1xvrm7g3sbUVAGLtetkNUa1AHn2M',\n      alias: '@askerych'\n    }]\n  }\n  */\n```\n\n- getCandles:\n\n```typescript\nawait client.getCandles(amountAsset: string, priceAsset: string, {\n  timeStart: string | Date | number;\n  timeEnd?: string | Date | number;\n  interval: string; // interval pattern is xy, where x - number, y - one of m (minutes), h (hours), d (days), M (Month)\n});\nawait client.getCandles('ACRYL', '68X83bfvSSQauL81fcfqA3Vne9s4y2BRAG36DGRcv4V2', {\n  timeStart: '2018-12-01',\n  timeEnd: '2018-12-31',\n  interval: '1d'\n});\n```\n\n## Pagination\n\n```typescript\ntype Response<T> = {\n  data: T;\n  fetchMore?: TFunction;\n};\nconst response1 = await client.getExchangeTxs({ limit: 1, sort: 'asc' });\nconst data1 = response1.data;\n// Process data\n\nconst response2 = await res1.fetchMore(2); // 2 more\n```\n\n## Custom init params\n\nYou can set custom fetcher, parser and transformer for library.\n\n```typescript\ntype TLibOptions = {\n  rootUrl: string;\n  fetch?: TFunction;\n  parse?: TParser;\n  transform?: TFunction;\n};\n```\n\nThe path is fetch -> parse -> transform\n\n### Fetch must return string!\n\nFetch accepts (url, options)\nFetch by default is `fetch(...).then(res => res.text())`\n\nParse by default is `JSON.parse.bind(JSON)` , you can use `json-bigint`'s parse if you want to add support for bignumbers.\n\nTransform function has next signature by default (it depends on your parse function):\n\n```\n({\n  __type,\n  data,\n  ...rest\n}) => any\n```\n\nBasically you can switch on \\_\\_type and do transformations.\n","readmeFilename":"README.md"}