{"_id":"@ably/asset-tracking","_rev":"27-d6e03c0a804c844c6c70a1c9710e0ea2","name":"@ably/asset-tracking","dist-tags":{"latest":"1.0.0-beta.5"},"versions":{"1.0.0-beta.2":{"name":"@ably/asset-tracking","version":"1.0.0-beta.2","keywords":[],"author":"","license":"Apache-2.0","_id":"@ably/asset-tracking@1.0.0-beta.2","maintainers":[{"name":"ably-realtime","email":"support@ably.io"},{"name":"quintinwillison","email":"quintin@ably.io"},{"name":"simonw_ably","email":"simon.woolf@ably.com"},{"name":"dominik.piatek.ably","email":"dominik.piatek@ably.com"},{"name":"kennethkalmer","email":"kenneth.kalmer@gmail.com"},{"name":"owenpearson","email":"owen.pearson@ably.com"},{"name":"mattesch","email":"matt@mattesch.info"}],"dist":{"shasum":"a57829e5714c1696be15d2bc857e34aa4371f79d","tarball":"https://registry.npmjs.org/@ably/asset-tracking/-/asset-tracking-1.0.0-beta.2.tgz","fileCount":15,"integrity":"sha512-f4hXhgVkzV8+l4OOLp7WJr2S2BViFFOf8gM4ugLbUgwrvpQYNGwLyzLQirN5jKbL5J5Q1HI/+Z11Avg5K0VpUQ==","signatures":[{"sig":"MEQCIBl86ZPVvHw+mRbM6dV9Vte4MpblRxTK+aCvqiaRveA8AiBFGwGfnwDXeQvx8uBiZnLtG5BmVM5wG5ZX8cGlZyo+oA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":239860,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh1vsLCRA9TVsSAnZWagAAQY0P/icjrp20GYv3AOUN7bZO\nYY+MjZj8wvVTB6pg98QgBkWHtdEJIPaQ9nyCkfLHEZzfwpFgCxSBo5x2jBRR\n7ukNoJihMc22h0J2df4tnbGjuzrdHqfYmI2jYo3j2rWSW+uhvA+vpkzImYu5\n4Vb59EzAxgnc16ruizkg+1K/nXu8PGpHWc/jpJotdzTk3qOhRMi4oER39ntu\n012CtWw6POlgH46R/+BUk4HYy2+TcLak2ITE4X9bYbtl9VhkQhBkxAHhQ4Th\ngThziwYVnrI+HSWCC0DYGiNQuNGU0eJnYWHCaM8htTcDG/TdChB9rZusEPw2\nn81xWNfcZcU63hJMxRxQKf8p5fKFu3g6bBIyvc0xlPgvoSCPi8c0hDrs4I68\nbtzhLKAH33elibOHUCiGIpFEiVZsLjHdWmMs5WQkMMO68uiqW1FYEcF2kdN1\nUqYq2FeJId0MHhaHcsyGbyYDdK+gqPcTytJgF48DVpKl+KLa92hqXeZ7x3WO\ndPM8eV0zBG/GjCP7dmBEgFy0SoDPR/x6k6lU3elUYffvR82vNljkCxZ/jcn8\nCvL4gOzbOeosLP2CD4cWoIH1YwX/GFkbo1Qm9v/pNpkkoCs9aR11OPl01poL\n5pgCO1DT3COJBqIG+XbB165dxaYG2yRW4/PZ6VmcPMr0fUATcF3c34SqNIVh\nGAFd\r\n=fIZC\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/main.js","gitHead":"dfe03e1c64953c822c343b63c77b155eda9049bc","scripts":{"lint":"eslint .","test":"jest ./test/unit","build":"webpack","test:webserver":"webpack serve -c test/integration/support/webpack.config.ts","test:playwright":"ts-node test/integration/support/runPlaywrightTests.ts","check-formatting":"prettier -c src/**/*.ts test/**/*.ts"},"typings":"index.d.ts","_npmUser":{"name":"owenpearson","email":"owen.pearson@ably.com"},"_npmVersion":"7.5.3","description":"JavaScript client SDKs for the Ably Asset Tracking service.","directories":{},"_nodeVersion":"14.14.0","dependencies":{"ably":"^1.2.5-beta"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","jest":"^26.6.3","axios":"^0.21.1","mocha":"^8.2.1","eslint":"^7.14.0","ts-jest":"^26.4.4","ts-node":"^9.1.1","webpack":"^5.9.0","prettier":"^2.2.1","ts-loader":"^8.0.11","playwright":"^1.8.0","typescript":"^4.1.2","@types/chai":"^4.2.14","@types/jest":"^26.0.20","webpack-cli":"^4.2.0","@types/mocha":"^8.2.0","mocha-loader":"^5.1.5","@types/geojson":"^7946.0.7","@types/webpack-env":"^1.16.0","webpack-dev-server":"^3.11.2","eslint-config-prettier":"^6.15.0","@types/webpack-dev-server":"^3.11.1","@typescript-eslint/parser":"^4.9.0","@typescript-eslint/eslint-plugin":"^4.9.0"},"_npmOperationalInternal":{"tmp":"tmp/asset-tracking_1.0.0-beta.2_1622547804966_0.23215149522762157","host":"s3://npm-registry-packages"}},"1.0.0-beta.3":{"name":"@ably/asset-tracking","version":"1.0.0-beta.3","keywords":[],"author":"","license":"Apache-2.0","_id":"@ably/asset-tracking@1.0.0-beta.3","maintainers":[{"name":"ably-realtime","email":"support@ably.io"},{"name":"quintinwillison","email":"quintin@ably.io"},{"name":"simonw_ably","email":"simon.woolf@ably.com"},{"name":"owenpearson","email":"owen.pearson@ably.com"},{"name":"mattesch","email":"matt@mattesch.info"}],"dist":{"shasum":"1112b4605efe3e9d494368f2ee01285bb77f3372","tarball":"https://registry.npmjs.org/@ably/asset-tracking/-/asset-tracking-1.0.0-beta.3.tgz","fileCount":14,"integrity":"sha512-WujDfrFsd7c1bKDjiry+/t+tvLRAzCSgjwNBM+WVkXzyqZxBxZlSaGiUeV5kyHAKwYK1dpGNc9g2o2tU0wSnkg==","signatures":[{"sig":"MEYCIQDteB+yUb1acS+K8iqUe+1q8j50kU5HB6HNxNnbTOckvAIhANnWty4k01tVXoUB37kOza8KqAjwq3meKIh+geQVyqGa","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":235226,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiF4EJACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqraw//Zp6JN+z2w8JMHaYmNnIKVVJLZm3W/czkjd5nUV3D5LYfVoRE\r\ny0NPpxQaY5lyFREb9lxUUw1amKl+VSmTjzC2nGlssmC+N/1FF47ZC5biZOmo\r\nINUEuDq4d/jS+LGdnTkB1Gl88vBoyzD6SvMxm8HiShWeJskM2ZMRispeOB3i\r\n8Unlm2otDvkRchidz9ksLMxCbpZRXELV6NYP9GTq5upXK7lpVIFZRXcJ3YxZ\r\nUw4Z17TXB7ut5tVIh4zhQ45GFsQt1ihNSIQkhyMWRMROxJ3y6DEj5cJPPZyw\r\noZgtUNruETy+HjOot5HVRGjfcU4vwBxWM24t9UM47xE11YK8uKI2qiv0+fmx\r\ndVkcf0Neg0LMUm5CJHfbXiaxHQMr8NqlJhlbmwWOT3uu5hWntyDchuUfSxXL\r\ngjGZKWuKSZAK4E5AXuwBok9rKi65mRnnuD9Uq5NcmPUM9ou9Tn6miDk3LdoM\r\ncHE5m9QJjkY0AUr1t372thcUUNaMlJyFgUPXlm7XS8GjoDVPpvRi9q+ZivKz\r\nIwXn4wAIbQHemg8b5nWS80eSw/Wy3lY4ubFFYj2pTxHMJ/UydEYgU9AF2rdp\r\nhGkFrwKaKnIaaN28oPMQeQjHZOEJm4EZ2MtHu7+6AMssUNqDT9xEnr/xe0xK\r\nWjY0eCzMkXEMUey+8gs8sz82ecNgBXg5hdI=\r\n=RzCc\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/main.js","gitHead":"02f63aac8315fac6f628076a9b25f3b4bbf1bf08","scripts":{"lint":"eslint .","test":"jest ./test/unit","build":"webpack","test:webserver":"webpack serve -c test/integration/support/webpack.config.ts","test:playwright":"ts-node test/integration/support/runPlaywrightTests.ts","check-formatting":"prettier -c src/**/*.ts test/**/*.ts"},"typings":"index.d.ts","_npmUser":{"name":"owenpearson","email":"owen.pearson@ably.com"},"_npmVersion":"8.4.1","description":"JavaScript client SDKs for the Ably Asset Tracking service.","directories":{},"_nodeVersion":"16.12.0","dependencies":{"ably":"^1.2.5-beta"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","jest":"^26.6.3","axios":"^0.21.1","mocha":"^8.2.1","eslint":"^7.14.0","ts-jest":"^26.4.4","ts-node":"^9.1.1","webpack":"^5.9.0","prettier":"^2.2.1","ts-loader":"^8.0.11","playwright":"^1.8.0","typescript":"^4.1.2","@types/chai":"^4.2.14","@types/jest":"^26.0.20","webpack-cli":"^4.2.0","@types/mocha":"^8.2.0","mocha-loader":"^5.1.5","@types/geojson":"^7946.0.7","@types/webpack-env":"^1.16.0","webpack-dev-server":"^3.11.2","eslint-config-prettier":"^6.15.0","@types/webpack-dev-server":"^3.11.1","@typescript-eslint/parser":"^4.9.0","@typescript-eslint/eslint-plugin":"^4.9.0"},"_npmOperationalInternal":{"tmp":"tmp/asset-tracking_1.0.0-beta.3_1645707529442_0.41991490730730496","host":"s3://npm-registry-packages"}},"1.0.0-beta.4":{"name":"@ably/asset-tracking","version":"1.0.0-beta.4","keywords":[],"author":"","license":"Apache-2.0","_id":"@ably/asset-tracking@1.0.0-beta.4","maintainers":[{"name":"ably-realtime","email":"support@ably.io"},{"name":"quintinwillison","email":"quintin@ably.io"},{"name":"simonw_ably","email":"simon.woolf@ably.com"},{"name":"owenpearson","email":"owen.pearson@ably.com"},{"name":"mattesch","email":"matt@mattesch.info"}],"dist":{"shasum":"d551f125366019cb6f83e06afb998d07c210169c","tarball":"https://registry.npmjs.org/@ably/asset-tracking/-/asset-tracking-1.0.0-beta.4.tgz","fileCount":15,"integrity":"sha512-zsIbFP+skMQSjbhLaSmP0yNSgxXhegNDx74rir/7prseMdmpw4l6HVWrEh3xsaUn97hk7b0stm2blFbl8tYDQw==","signatures":[{"sig":"MEUCIQCJX0EDyYGezdXFHFKNVT0KzjrfJoDjAobVBHmtQPzBEgIgBMlKk8GsWUpofPM13dGuaLts4sHL5wWkk5vqwMna5HQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":245139,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiKLW3ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoLjA//az4mxx0iUjm72VJtmMIqFzaJ1aZPWkYMtMzXeSfmObssU1Sg\r\nBellamiKRZZVRzUUra6Kbs7Nr9ZZxMyN5V1tot1p6KMw8RNXeN2o8FeKJTXM\r\nkI5YJ2LrZDg9JscXuw/cnjgcKqDEQKKd95uXyObY67kYUbtipbYAFuSjPfrr\r\nn6yD8sY3yPkLGJhAuc4DyAN2yAqwA3W5c89zPBctB1ScoefTlKYshx4IxesJ\r\n3znpoFZeR9BqAg+hxzL7x30rBkOnDAkpT+vlEYwBa8MyuBqYMgP0UiPYe8Fb\r\nVMbj+xVXxSSHnXmkck6epfzGVyX8mmOuZjlkszTvxudM4BmEEQvxvNqmq3G9\r\neXACH3QATXzymjBiGSbiTzlyaMpn/3r0ts1aV+Dv9169sL6emQOnbGJYqKev\r\nfXN42X68GWiYbIApGB7hNpTdcwW1nRZQBO+c05MqMIfQB6PcPqZ4L/djamK9\r\n+WboNBq+U/F2hIo4ZwXZl0pwMZQ7Sg3DqwNo0hxRw/0rXol/v2DI758IXFr4\r\nWMcy/DCDL+tBbfoqz6DCDrHHuPKS3s/BGhi2np0TjxvhPlOVEYV5xpjMbOTS\r\npfVB75P+g4CasxyVoDGHyG0FN6cSkVg+IDSLgM+3FdHH+xlBRE++U2Htafjy\r\nMOlGhOsE/0J41vvoW6L5Lt3Qg/TpP7cL7og=\r\n=kPUb\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/main.js","gitHead":"83db7438f0b729de53b39499b1e92b91a233306a","scripts":{"lint":"eslint .","test":"jest ./test/unit","build":"webpack","test:webserver":"webpack serve -c test/integration/support/webpack.config.ts","test:playwright":"ts-node test/integration/support/runPlaywrightTests.ts","check-formatting":"prettier -c src/**/*.ts test/**/*.ts"},"typings":"index.d.ts","_npmUser":{"name":"owenpearson","email":"owen.pearson@ably.com"},"_npmVersion":"8.5.1","description":"JavaScript client SDKs for the Ably Asset Tracking service.","directories":{},"_nodeVersion":"16.12.0","dependencies":{"ably":"^1.2.5-beta"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","jest":"^26.6.3","axios":"^0.21.1","mocha":"^8.2.1","eslint":"^7.14.0","ts-jest":"^26.4.4","ts-node":"^9.1.1","webpack":"^5.9.0","prettier":"^2.2.1","ts-loader":"^8.0.11","playwright":"^1.8.0","typescript":"^4.1.2","@types/chai":"^4.2.14","@types/jest":"^26.0.20","webpack-cli":"^4.2.0","@types/mocha":"^8.2.0","mocha-loader":"^5.1.5","@types/geojson":"^7946.0.7","@types/webpack-env":"^1.16.0","webpack-dev-server":"^3.11.2","eslint-config-prettier":"^6.15.0","@types/webpack-dev-server":"^3.11.1","@typescript-eslint/parser":"^4.9.0","@typescript-eslint/eslint-plugin":"^4.9.0"},"_npmOperationalInternal":{"tmp":"tmp/asset-tracking_1.0.0-beta.4_1646835127601_0.9313840278951477","host":"s3://npm-registry-packages"}},"1.0.0-beta.5":{"name":"@ably/asset-tracking","version":"1.0.0-beta.5","keywords":[],"author":"","license":"Apache-2.0","_id":"@ably/asset-tracking@1.0.0-beta.5","maintainers":[{"name":"ably-realtime","email":"account.owners@ably.com"},{"name":"quintinwillison","email":"quintin@ably.io"},{"name":"simonw_ably","email":"simon.woolf@ably.com"},{"name":"owenpearson","email":"owen.pearson@ably.com"},{"name":"mattesch","email":"matt@mattesch.info"},{"name":"petermaguire","email":"peter.maguire@ably.com"}],"dist":{"shasum":"aee7f9d32e06183087f3566d3191455806854daa","tarball":"https://registry.npmjs.org/@ably/asset-tracking/-/asset-tracking-1.0.0-beta.5.tgz","fileCount":16,"integrity":"sha512-hekij8B+QpDagpquD02L/S+lpK/D7hVcHZXT4gjblS0xQMXWoNLN9JUPkdjRNtKDvc4O8rCKypZzgfXSIibcXQ==","signatures":[{"sig":"MEUCIQCPsPCTsvgWbz12rSC6L6Rcy4wjZCKYWZ5+++7/8hGkegIgf9w/QcNtMo8U9kcLOK6sYV3U52VCJLUbcECsGK5jBC4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":291650,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkHbXHACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqMlA//WnNtgrCfv2/9OJDb6v/N9+Lt6AuY74/pZ52qzxLTk4SSu3mY\r\nucb0ZaeP6tq/jBKNWKSKHG4i0QtwKTdcWOYjntlLGnWuZvpRx2rjQO0pjwet\r\nlEJib7uGorrD5eCw/3fd8fhb6Am9JmY/K5tFPR4iIYxJWrrLKpO2gEzx6P1e\r\nKsIJcOLlaYgEXR9pGUljFhDfFNOlXRjW323BDofz7KPAznzIRT1yZsOBK2m6\r\nU9IfqFf2x9TBg1kskiNu4JvG7qdWlhBKaV6tXC5jzQJDOLdxbnlZLsEpF/XB\r\nPaFG/3WI3XMBehkNwxN3PJYyeusErM3W15YGzHmYj1tcIxtPDk/XxQVKQggT\r\ni7V+Tn4tIrTRdd41qRKUhKYcYBUqpJKGo5pUBWi1T5AEBweHpFKfnhMuSD1F\r\nNvQDYHmT4pkdDG3qHwYoWyFJ90KE3sbWhcIaQaQU1vIVknmqHbciGKovVQjP\r\nKbeqhsl44UcjIIi/HgvkQ4TkmZUhilZCDhhTGaNVg0R5AooLSSXoVPwgbQaN\r\no5DozDiMj7GZBlQTj1muqWH334notUTcD2B5mbNlxH6H7gETRsBuam/r7Ax1\r\n4KGqUWtqylv9dKVs/Q6BQBXo7ZP9TaZBTQqIUd8+op4Uhcfd1CuhhDl+gnzm\r\nU/PWZPol0F4mQkYU18YmVp7Uk7TDHHFtuR8=\r\n=vdFJ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/main.js","gitHead":"e748d363fe2216eca09cdb6074620b2f221862de","scripts":{"lint":"eslint .","test":"jest ./test/unit","build":"webpack","test:webserver":"webpack serve -c test/integration/support/webpack.config.ts","test:playwright":"ts-node test/integration/support/runPlaywrightTests.ts","check-formatting":"prettier -c src/**/*.ts test/**/*.ts"},"typings":"index.d.ts","_npmUser":{"name":"owenpearson","email":"owen.pearson@ably.com"},"_npmVersion":"8.5.5","description":"JavaScript client SDKs for the Ably Asset Tracking service.","directories":{},"_nodeVersion":"16.14.0","dependencies":{"ably":"^1.2.37"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","jest":"^26.6.3","axios":"^0.21.1","mocha":"^8.2.1","eslint":"^7.14.0","ts-jest":"^26.4.4","ts-node":"^9.1.1","webpack":"^5.9.0","prettier":"^2.2.1","ts-loader":"^8.0.11","playwright":"^1.8.0","typescript":"^4.1.2","@types/chai":"^4.2.14","@types/jest":"^26.0.20","webpack-cli":"^4.2.0","@types/mocha":"^8.2.0","mocha-loader":"^5.1.5","@types/geojson":"^7946.0.7","@types/webpack-env":"^1.16.0","webpack-dev-server":"^3.11.2","eslint-config-prettier":"^6.15.0","@types/webpack-dev-server":"^3.11.1","@typescript-eslint/parser":"^4.9.0","@typescript-eslint/eslint-plugin":"^4.9.0"},"_npmOperationalInternal":{"tmp":"tmp/asset-tracking_1.0.0-beta.5_1679668679623_0.5145141505804667","host":"s3://npm-registry-packages"}}},"time":{"created":"2021-06-01T11:43:24.667Z","modified":"2026-03-18T18:54:37.802Z","1.0.0-beta.2":"2021-06-01T11:43:25.081Z","1.0.0-beta.3":"2022-02-24T12:58:49.538Z","1.0.0-beta.4":"2022-03-09T14:12:07.748Z","1.0.0-beta.5":"2023-03-24T14:37:59.747Z"},"license":"Apache-2.0","keywords":[],"description":"JavaScript client SDKs for the Ably Asset Tracking service.","maintainers":[{"email":"mike@christensen.codes","name":"mschristensen"},{"email":"account.owners@ably.com","name":"ably-realtime"},{"email":"simon.woolf@ably.com","name":"simonw_ably"},{"email":"owen.pearson@ably.com","name":"owenpearson"},{"email":"khokhlov.e.n@gmail.com","name":"ttypic"},{"email":"lawrence.forooghian@ably.com","name":"lawrence.forooghian.ably"},{"email":"andrii.bulat@ably.com","name":"andrii.bulat.ably"},{"email":"andyford993@gmail.com","name":"andytwf"},{"email":"steven.lindsay@ably.com","name":"splind06"},{"email":"chris.bannister@ably.com","name":"zariel-ably"},{"email":"matthew.oriordan@gmail.com","name":"mattheworiordan"},{"email":"vlad.velici@ably.com","name":"vlad.velici.ably"}],"readme":"# Ably Asset Tracking SDK for JavaScript\n\n![.github/workflows/check.yml](https://github.com/ably/ably-asset-tracking-js/workflows/.github/workflows/check.yml/badge.svg)\n\n## Overview\n\nAbly Asset Tracking SDKs provide an easy way to track multiple assets with realtime location updates powered by [Ably](https://ably.com/) realtime network and Mapbox [Navigation SDK](https://docs.mapbox.com/android/navigation/overview/) with location enhancement.\n\n**Status:** this is a preview version of the SDK. That means that it contains a subset of the final SDK functionality, and the APIs are subject to change. The latest release of this SDK is available in the [Released section](https://github.com/ably/ably-asset-tracking-js/releases) of this repository.\n\nAbly Asset Tracking is:\n\n- **easy to integrate** - comprising two complementary SDKs with easy to use APIs, available for multiple platforms:\n  - Asset Publishing SDK, for embedding in apps running on the courier's device\n  - Asset Subscribing SDK, for embedding in apps runnong on the customer's observing device\n- **extensible** - as Ably is used as the underlying transport, you have direct access to your data and can use Ably integrations for a wide range of applications in addition to direct realtime subscriptions - examples include:\n  - passing to a 3rd party system\n  - persistence for later retrieval\n- **built for purpose** - the APIs and underlying functionality are designed specifically to meet the requirements of a range of common asset tracking use-cases\n\nThis repository contains the Asset Subscribing SDK for Web.\n\n### Documentation\n\nVisit the [Ably Asset Tracking](https://ably.com/documentation/asset-tracking) documentation for a complete API reference and code examples.\n\n###  Useful Resources\n\n- [Introducing Ably Asset Tracking - public beta now available](https://ably.com/blog/ably-asset-tracking-beta)\n- [Accurate Delivery Tracking with Navigation SDK + Ably Realtime Network](https://www.mapbox.com/blog/accurate-delivery-tracking)\n\n## Installation\n\nTo use Ably Asset Tracking in your app, install it as a dependency:\n```bash\n# If you are using NPM:\nnpm install @ably/asset-tracking\n\n# If you are using Yarn:\nyarn add @ably/asset-tracking\n```\n\n## Usage\n\n### Subscribing to location updates\n\n```ts\nimport { Subscriber } from '@ably/asset-tracking';\n\n// Client options passed to the underling ably-js instance.\n// You must provide some way for the client to authenticate with Ably.\n// In this example we're using basic authentication which means we must also provide a clientId.\n// See: https://ably.com/docs/core-features/authentication\nconst ablyOptions = {\n  key: ABLY_API_KEY,\n  clientId: CLIENT_ID,\n};\n\n// Create a Subscriber instance.\nconst subscriber = new Subscriber({\n  ablyOptions,\n});\n\n// Get an asset.\nconst asset = subscriber.get('my_tracking_id');\n\n// Define a callback to be notified when a location update is recieved.\nasset.addLocationListener((locationUpdate) => {\n  console.log(`Location update recieved. Coordinates: ${locationUpdate.location.geometry.coordinates}`);\n});\n\n// Start tracking the asset. This will attach to the Ably realtime channel and enter presence.\nawait asset.start(trackingId);\n\n// Stop tracking the asset, at some point later on when you no longer need to receive location updates.\nawait asset.stop();\n```\n\n### Subscribing to driver status\n\n```ts\n// Register a callback to be notified when the asset online status is updated.\nasset.addStatusListener((isOnline) => {\n  console.log(`Status update: Publisher is now ${isOnline ? 'online' : 'offline'}`);\n});\n```\n\n### Requesting publisher resolution\n```ts\nimport { Accuracy } from '@ably/asset-tracking';\n\n// You can request a specific resolution to be considered by the publisher when you create an asset instance...\nconst resolution = {\n  accuracy: Accuracy.High,\n  desiredInterval: 1000,\n  minimumDisplacement: 1,\n};\n\nconst asset = subscriber.get('my_tracking_id', resolution);\n\n// ...And you can send a request to change the resolution when the asset is already started\nawait asset.sendChangeRequest({\n  accuracy: Accuracy.Low,\n  desiredInterval: 3000,\n  minimumDisplacement: 5,\n});\n```\n\n## Example App\n\nThis repository also contains an example app that showcases how the Ably Asset Tracking SDK can be used:\n\n- the [Asset Subscribing example app](examples/subscribing-example-app/)\n\n## Development\n\nsee [Contributing](CONTRIBUTING.md).\n","readmeFilename":"README.md"}