{
  "manifest": {
    "name": "bonjour-service",
    "version": "1.2.1",
    "description": "A Bonjour/Zeroconf implementation in TypeScript",
    "main": "./dist/index.js",
    "types": "./dist/index.d.ts",
    "dependencies": {
      "fast-deep-equal": "^3.1.3",
      "multicast-dns": "^7.2.5"
    },
    "devDependencies": {
      "@types/node": "^16.18.11",
      "@typescript-eslint/eslint-plugin": "^5.22.0",
      "@typescript-eslint/parser": "^5.22.0",
      "after-all": "^2.0.2",
      "eslint": "^8.15.0",
      "standard": "^17.0.0",
      "tape": "^5.2.2",
      "ts-node-dev": "^2.0.0",
      "typescript": "^4.4.4"
    },
    "scripts": {
      "test": "standard --fix && tape test/*.js",
      "build": "tsc --removeComments true",
      "dev": "ts-node-dev --respawn --transpile-only ./src/index.ts",
      "example:simple": "node examples/simple"
    },
    "repository": {
      "type": "git",
      "url": "https://github.com/onlxltd/bonjour-service.git"
    },
    "keywords": [
      "bonjour",
      "zeroconf",
      "zero",
      "configuration",
      "mdns",
      "dns",
      "service",
      "discovery",
      "multicast",
      "broadcast",
      "dns-sd"
    ],
    "author": {
      "name": "ON LX Lited",
      "email": "team@onlx.ltd",
      "url": "https://labs.onlx.ltd"
    },
    "license": "MIT",
    "bugs": {
      "url": "https://github.com/onlxltd/bonjour-service/issues"
    },
    "homepage": "https://github.com/onlxltd/bonjour-service",
    "_registry": "npm",
    "_loc": "/homez.1033/heliovt/.cache/yarn/v6/npm-bonjour-service-1.2.1-eb41b3085183df3321da1264719fbada12478d02-integrity/node_modules/bonjour-service/package.json",
    "readmeFilename": "README.md",
    "readme": "# bonjour-service\n\n![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/onlxltd/bonjour-service/publish-release.yml?style=flat-square) ![npm bundle size](https://img.shields.io/bundlephobia/min/bonjour-service?style=flat-square) ![GitHub Release Date](https://img.shields.io/github/release-date/onlxltd/bonjour-service?style=flat-square) ![npm](https://img.shields.io/npm/dw/bonjour-service?color=%23888&style=flat-square) ![GitHub](https://img.shields.io/github/license/onlxltd/bonjour-service?style=flat-square) [![DeepScan grade](https://deepscan.io/api/teams/13435/projects/16430/branches/352351/badge/grade.svg?style=flat-square)](https://deepscan.io/dashboard#view=project&tid=13435&pid=16430&bid=352351)\n\nA Bonjour/Zeroconf protocol implementation in TypeScript. Publish\nservices on the local network or discover existing services using\nmulticast DNS.\n\nThis is a rewrite of the project Bonjour (https://github.com/watson/bonjour) into modern TypeScript.\n\nbonjour-service is supported by [ON LX Limited](https://onlx.ltd/?src=bonjour-service). Check out our projects such as [Ctrl Suite](https://onlx.ltd/ctrl-suite?src=bonjour-service) and [Ctrl for iPad](https://onlx.ltd/ctrl-for-ipad?src=bonjour-service).\n\n\n\n## Installation\nAdd to your project dependencies using Yarn or NPM.\n\n#### Install with Yarn\n```\nyarn add bonjour-service\n```\n#### Install with NPM\n```\nnpm install bonjour-service\n```\n\n## Usage\n\n```js\nimport Bonjour from 'bonjour-service'\n\nconst instance = new Bonjour()\n\n// advertise an HTTP server on port 3000\ninstance.publish({ name: 'My Web Server', type: 'http', port: 3000 })\n\n// browse for all http services\ninstance.find({ type: 'http' }, function (service) {\n  console.log('Found an HTTP server:', service)\n})\n```\n\n## API\n\n### Initializing\n\n```js\nvar instance = new Bonjour({ options }, errorCallback)\n```\n\nThe `options` are optional and will be used when initializing the\nunderlying multicast-dns server. For details see [the multicast-dns\ndocumentation](https://github.com/mafintosh/multicast-dns#mdns--multicastdnsoptions).\n\n`errorCallback` is an optional callback used to gracefully handle errors that would otherwise\ncrash the process. While not being strictly required, providing this is highly recommended\n\n### Publishing\n\n#### `var service = bonjour.publish(options)`\n\nPublishes a new service.\n\nOptions are:\n\n- `name` (string)\n- `host` (string, optional) - defaults to local hostname\n- `port` (number)\n- `type` (string)\n- `subtypes` (array of strings, optional)\n- `protocol` (string, optional) - `udp` or `tcp` (default)\n- `txt` (object, optional) - a key/value object to broadcast as the TXT\n  record\n- `disableIPv6` (boolean, optional) disble IPv6 addresses\n\nIANA maintains a [list of official service types and port\nnumbers](http://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml).\n\n#### `bonjour.unpublishAll([callback])`\n\nUnpublish all services. The optional `callback` will be called when the\nservices have been unpublished.\n\n#### `bonjour.destroy()`\n\nDestroy the mdns instance. Closes the udp socket.\n\n### Browser\n\n#### `var browser = bonjour.find(options[, onup])`\n\nListen for services advertised on the network. An optional callback can\nbe provided as the 2nd argument and will be added as an event listener\nfor the `up` event.\n\nOptions (all optional):\n\n- `type` (string)\n- `subtypes` (array of strings)\n- `protocol` (string) - defaults to `tcp`\n- `txt` (object) - passed into [dns-txt\n  module](https://github.com/watson/dns-txt) contructor. Set to `{\n  binary: true }` if you want to keep the TXT records in binary\n\n#### `var browser = bonjour.findOne(options[, callback])`\n\nListen for and call the `callback` with the first instance of a service\nmatching the `options`. If no `callback` is given, it's expected that\nyou listen for the `up` event. The returned `browser` will automatically\nstop it self after the first matching service.\n\nOptions are the same as given in the `browser.find` function.\n\n#### `Event: up`\n\nEmitted every time a new service is found that matches the browser.\n\n#### `Event: down`\n\nEmitted every time an existing service emmits a goodbye message.\n\n#### `Event: txt-update`\n\nEmitted every time an existing service does a new announcement with an updated TXT record.\n\n#### `browser.services()`\n\nAn array of services known by the browser to be online.\n\n#### `browser.start()`\n\nStart looking for matching services.\n\n#### `browser.stop()`\n\nStop looking for matching services.\n\n#### `browser.update()`\n\nBroadcast the query again.\n\n### Service\n\n#### `Event: up`\n\nEmitted when the service is up.\n\n#### `Event: error`\n\nEmitted if an error occurrs while publishing the service.\n\n#### `service.stop([callback])`\n\nUnpublish the service. The optional `callback` will be called when the\nservice have been unpublished.\n\n#### `service.start()`\n\nPublish the service.\n\n#### `service.name`\n\nThe name of the service, e.g. `Apple TV`.\n\n#### `service.type`\n\nThe type of the service, e.g. `http`.\n\n#### `service.subtypes`\n\nAn array of subtypes. Note that this property might be `null`.\n\n#### `service.protocol`\n\nThe protocol used by the service, e.g. `tcp`.\n\n#### `service.host`\n\nThe hostname or ip address where the service resides.\n\n#### `service.port`\n\nThe port on which the service listens, e.g. `5000`.\n\n#### `service.fqdn`\n\nThe fully qualified domain name of the service. E.g. if given the name\n`Foo Bar`, the type `http` and the protocol `tcp`, the `service.fqdn`\nproperty will be `Foo Bar._http._tcp.local`.\n\n#### `service.txt`\n\nThe TXT record advertised by the service (a key/value object). Note that\nthis property might be `null`.\n\n#### `service.published`\n\nA boolean indicating if the service is currently published.\n\n## License\n\nMIT\n",
    "licenseText": "The MIT License (MIT)\n\nCopyright (https://github.com/onlxltd/bonjour-service) (c) 2021 ON LX Limited\n\nPortions Copyright (Bonjour - https://github.com/watson/bonjour) (c) 2015-2016 Thomas Watson Steen\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  "artifacts": [],
  "remote": {
    "resolved": "https://registry.yarnpkg.com/bonjour-service/-/bonjour-service-1.2.1.tgz#eb41b3085183df3321da1264719fbada12478d02",
    "type": "tarball",
    "reference": "https://registry.yarnpkg.com/bonjour-service/-/bonjour-service-1.2.1.tgz",
    "hash": "eb41b3085183df3321da1264719fbada12478d02",
    "integrity": "sha512-oSzCS2zV14bh2kji6vNe7vrpJYCHGvcZnlffFQ1MEoX/WOeQ/teD8SYWKR942OI3INjq8OMNJlbPK5LLLUxFDw==",
    "registry": "npm",
    "packageName": "bonjour-service",
    "cacheIntegrity": "sha512-oSzCS2zV14bh2kji6vNe7vrpJYCHGvcZnlffFQ1MEoX/WOeQ/teD8SYWKR942OI3INjq8OMNJlbPK5LLLUxFDw== sha1-60GzCFGD3zMh2hJkcZ+62hJHjQI="
  },
  "registry": "npm",
  "hash": "eb41b3085183df3321da1264719fbada12478d02"
}