{"_id":"@achingbrain/ssdp","_rev":"4665355","name":"@achingbrain/ssdp","description":"Yet another SSDP implementation for node.js","dist-tags":{"latest":"4.2.4"},"maintainers":[{"name":"achingbrain","email":"alex@achingbrain.net"}],"time":{"modified":"2026-04-10T22:37:29.000Z","created":"2015-07-17T09:40:54.991Z","4.2.4":"2025-06-24T15:11:14.717Z","4.2.3":"2025-06-24T10:31:14.411Z","4.2.2":"2025-04-08T11:47:11.004Z","4.2.1":"2024-11-29T16:53:34.697Z","4.2.0":"2024-11-29T14:50:15.190Z","4.1.3":"2024-11-27T13:33:21.123Z","4.1.2":"2024-11-27T12:40:48.820Z","4.1.1":"2024-11-25T10:28:58.154Z","4.1.0":"2024-11-01T16:39:16.418Z","4.0.10":"2024-11-01T13:33:02.397Z","4.0.9":"2024-11-01T13:19:18.854Z","4.0.8":"2024-11-01T13:01:45.404Z","4.0.7":"2024-11-01T12:55:12.873Z","4.0.6":"2023-10-18T05:33:52.925Z","4.0.5":"2023-10-18T05:23:33.904Z","4.0.4":"2023-04-27T12:03:38.007Z","4.0.3":"2023-04-27T11:54:25.653Z","4.0.2":"2023-04-27T06:59:53.516Z","4.0.1":"2022-05-26T17:40:56.901Z","4.0.0":"2022-05-20T11:09:24.852Z","3.0.4":"2022-05-20T10:01:10.423Z","3.0.3":"2022-02-27T07:56:08.112Z","3.0.2":"2022-02-26T10:54:21.503Z","3.0.1":"2022-02-26T07:44:53.205Z","3.0.0":"2022-02-24T15:53:07.871Z","2.1.2":"2016-12-31T12:33:49.639Z","2.1.1":"2016-12-31T10:30:56.577Z","2.1.0":"2016-12-31T10:29:14.188Z","2.0.4":"2016-12-09T10:02:21.693Z","2.0.3":"2016-12-09T08:31:05.005Z","2.0.2":"2016-12-08T15:59:19.861Z","2.0.1":"2016-12-08T12:48:31.415Z","2.0.0":"2016-12-07T12:00:19.800Z","1.0.1":"2016-02-29T07:40:47.547Z","1.0.0":"2015-12-28T09:47:11.924Z","0.0.5":"2015-07-18T11:29:57.564Z","0.0.4":"2015-07-18T11:25:11.940Z","0.0.3":"2015-07-18T09:29:50.524Z","0.0.2":"2015-07-17T09:43:56.930Z","0.0.1":"2015-07-17T09:40:54.991Z"},"users":{},"author":{"name":"Alex Potsides"},"repository":{"type":"git","url":"git+https://github.com/achingbrain/ssdp.git"},"versions":{"4.2.4":{"name":"@achingbrain/ssdp","version":"4.2.4","description":"Yet another SSDP implementation for node.js","author":{"name":"Alex Potsides"},"license":"Apache-2.0 OR MIT","homepage":"https://github.com/achingbrain/ssdp#readme","repository":{"type":"git","url":"git+https://github.com/achingbrain/ssdp.git"},"bugs":{"url":"https://github.com/achingbrain/ssdp/issues"},"publishConfig":{"access":"public","provenance":true},"keywords":["device","media","multicast","ssdp","upnp"],"type":"module","types":"./dist/src/index.d.ts","exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js"}},"release":{"branches":["main"],"plugins":[["@semantic-release/commit-analyzer",{"preset":"conventionalcommits","releaseRules":[{"breaking":true,"release":"major"},{"revert":true,"release":"patch"},{"type":"feat","release":"minor"},{"type":"fix","release":"patch"},{"type":"docs","release":"patch"},{"type":"test","release":"patch"},{"type":"deps","release":"patch"},{"scope":"no-release","release":false}]}],["@semantic-release/release-notes-generator",{"preset":"conventionalcommits","presetConfig":{"types":[{"type":"feat","section":"Features"},{"type":"fix","section":"Bug Fixes"},{"type":"chore","section":"Trivial Changes"},{"type":"docs","section":"Documentation"},{"type":"deps","section":"Dependencies"},{"type":"test","section":"Tests"}]}}],"@semantic-release/changelog","@semantic-release/npm","@semantic-release/github",["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"]}]]},"scripts":{"clean":"aegir clean","lint":"aegir lint","dep-check":"aegir dep-check","build":"aegir build --no-bundle","test":"aegir test -t node -t electron-main","test:node":"aegir test -t node --cov","test:electron-main":"aegir test -t electron-main","release":"aegir release","docs":"aegir docs"},"dependencies":{"abort-error":"^1.0.0","freeport-promise":"^2.0.0","merge-options":"^3.0.4","xml2js":"^0.6.2"},"devDependencies":{"@types/sinon":"^17.0.3","@types/xml2js":"^0.4.11","aegir":"^47.0.17","it-first":"^3.0.1","p-defer":"^4.0.0","sinon":"^21.0.0","sinon-ts":"^2.0.0"},"_id":"@achingbrain/ssdp@4.2.4","gitHead":"b0866bd5b214f934da25aad80942880000273398","_nodeVersion":"22.16.0","_npmVersion":"10.9.2","dist":{"shasum":"ea109d825d8b77b4014eeb697dbed22c8dca21ae","size":37146,"noattachment":false,"key":"/@achingbrain/ssdp/-/@achingbrain/ssdp-4.2.4.tgz","tarball":"http://registry.cnpm.dingdandao.com/@achingbrain/ssdp/download/@achingbrain/ssdp-4.2.4.tgz"},"_npmUser":{"name":"achingbrain","email":"alex@achingbrain.net","actor":{"name":"achingbrain","email":"alex@achingbrain.net","type":"user"}},"directories":{},"maintainers":[{"name":"achingbrain","email":"alex@achingbrain.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ssdp_4.2.4_1750777874532_0.7135142532010212"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-06-24T15:11:14.717Z","publish_time":1750777874717,"_source_registry_name":"default","_cnpm_publish_time":1750777874717},"4.2.3":{"name":"@achingbrain/ssdp","version":"4.2.3","description":"Yet another SSDP implementation for node.js","author":{"name":"Alex Potsides"},"license":"Apache-2.0 OR MIT","homepage":"https://github.com/achingbrain/ssdp#readme","repository":{"type":"git","url":"git+https://github.com/achingbrain/ssdp.git"},"bugs":{"url":"https://github.com/achingbrain/ssdp/issues"},"publishConfig":{"access":"public","provenance":true},"keywords":["device","media","multicast","ssdp","upnp"],"type":"module","types":"./dist/src/index.d.ts","exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js"}},"release":{"branches":["main"],"plugins":[["@semantic-release/commit-analyzer",{"preset":"conventionalcommits","releaseRules":[{"breaking":true,"release":"major"},{"revert":true,"release":"patch"},{"type":"feat","release":"minor"},{"type":"fix","release":"patch"},{"type":"docs","release":"patch"},{"type":"test","release":"patch"},{"type":"deps","release":"patch"},{"scope":"no-release","release":false}]}],["@semantic-release/release-notes-generator",{"preset":"conventionalcommits","presetConfig":{"types":[{"type":"feat","section":"Features"},{"type":"fix","section":"Bug Fixes"},{"type":"chore","section":"Trivial Changes"},{"type":"docs","section":"Documentation"},{"type":"deps","section":"Dependencies"},{"type":"test","section":"Tests"}]}}],"@semantic-release/changelog","@semantic-release/npm","@semantic-release/github",["@semantic-release/git",{"assets":["CHANGELOG.md","package.json"]}]]},"scripts":{"clean":"aegir clean","lint":"aegir lint","dep-check":"aegir dep-check","build":"aegir build --no-bundle","test":"aegir test -t node -t electron-main","test:node":"aegir test -t node --cov","test:electron-main":"aegir test -t electron-main","release":"aegir release","docs":"aegir docs"},"dependencies":{"abort-error":"^1.0.0","freeport-promise":"^2.0.0","merge-options":"^3.0.4","xml2js":"^0.6.2"},"devDependencies":{"@types/sinon":"^17.0.3","@types/xml2js":"^0.4.11","aegir":"^47.0.17","it-first":"^3.0.1","p-defer":"^4.0.0","sinon":"^21.0.0","sinon-ts":"^2.0.0"},"_id":"@achingbrain/ssdp@4.2.3","gitHead":"381e7f98d581a7b750d2c2503e65967e852320d5","_nodeVersion":"22.16.0","_npmVersion":"10.9.2","dist":{"shasum":"b4fa1d3bf8bbc3ab7f8773aeb199ce89d64194fb","size":36400,"noattachment":false,"key":"/@achingbrain/ssdp/-/@achingbrain/ssdp-4.2.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/@achingbrain/ssdp/download/@achingbrain/ssdp-4.2.3.tgz"},"_npmUser":{"name":"achingbrain","email":"alex@achingbrain.net","actor":{"name":"achingbrain","email":"alex@achingbrain.net","type":"user"}},"directories":{},"maintainers":[{"name":"achingbrain","email":"alex@achingbrain.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ssdp_4.2.3_1750761074230_0.5713274058912423"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-06-24T10:31:14.411Z","publish_time":1750761074411,"_source_registry_name":"default","_cnpm_publish_time":1750761074411},"4.2.2":{"name":"@achingbrain/ssdp","version":"4.2.2","description":"Yet another SSDP implementation for node.js","author":{"name":"Alex Potsides"},"license":"Apache-2.0 OR MIT","homepage":"https://github.com/achingbrain/ssdp#readme","repository":{"type":"git","url":"git+https://github.com/achingbrain/ssdp.git"},"bugs":{"url":"https://github.com/achingbrain/ssdp/issues"},"publishConfig":{"access":"public","provenance":true},"keywords":["device","media","multicast","ssdp","upnp"],"type":"module","types":"./dist/src/index.d.ts","exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js"}},"eslintConfig":{"extends":"ipfs","parserOptions":{"project":true,"sourceType":"module"}},"release":{"branches":["main"],"plugins":[["@semantic-release/commit-analyzer",{"preset":"conventionalcommits","releaseRules":[{"breaking":true,"release":"major"},{"revert":true,"release":"patch"},{"type":"feat","release":"minor"},{"type":"fix","release":"patch"},{"type":"docs","release":"patch"},{"type":"test","release":"patch"},{"type":"deps","release":"patch"},{"scope":"no-release","release":false}]}],["@semantic-release/release-notes-generator",{"preset":"conventionalcommits","presetConfig":{"types":[{"type":"feat","section":"Features"},{"type":"fix","section":"Bug Fixes"},{"type":"chore","section":"Trivial Changes"},{"type":"docs","section":"Documentation"},{"type":"deps","section":"Dependencies"},{"type":"test","section":"Tests"}]}}],"@semantic-release/changelog","@semantic-release/npm","@semantic-release/github","@semantic-release/git"]},"scripts":{"clean":"aegir clean","lint":"aegir lint","dep-check":"aegir dep-check","build":"aegir build --no-bundle","test":"aegir test -t node -t electron-main","test:node":"aegir test -t node --cov","test:electron-main":"aegir test -t electron-main","release":"aegir release","docs":"aegir docs"},"dependencies":{"abort-error":"^1.0.0","freeport-promise":"^2.0.0","merge-options":"^3.0.4","xml2js":"^0.6.2"},"devDependencies":{"@types/sinon":"^17.0.3","@types/xml2js":"^0.4.11","aegir":"^45.0.1","it-first":"^3.0.1","p-defer":"^4.0.0","sinon":"^20.0.0","sinon-ts":"^2.0.0"},"_id":"@achingbrain/ssdp@4.2.2","gitHead":"2a18c83772fec1bcd09d22144a3cf1c16cb2f400","_nodeVersion":"22.14.0","_npmVersion":"10.9.2","dist":{"shasum":"c567239c8db0105a6a7138fe982957ffe650dbfa","size":36561,"noattachment":false,"key":"/@achingbrain/ssdp/-/@achingbrain/ssdp-4.2.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/@achingbrain/ssdp/download/@achingbrain/ssdp-4.2.2.tgz"},"_npmUser":{"name":"achingbrain","email":"alex@achingbrain.net"},"directories":{},"maintainers":[{"name":"achingbrain","email":"alex@achingbrain.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ssdp_4.2.2_1744112830802_0.31116217591512063"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-04-08T11:47:11.004Z","publish_time":1744112831004,"_source_registry_name":"default","_cnpm_publish_time":1744112831004},"4.2.1":{"name":"@achingbrain/ssdp","version":"4.2.1","description":"Yet another SSDP implementation for node.js","author":{"name":"Alex Potsides"},"license":"Apache-2.0 OR MIT","homepage":"https://github.com/achingbrain/ssdp#readme","repository":{"type":"git","url":"git+https://github.com/achingbrain/ssdp.git"},"bugs":{"url":"https://github.com/achingbrain/ssdp/issues"},"publishConfig":{"access":"public","provenance":true},"keywords":["device","media","multicast","ssdp","upnp"],"type":"module","types":"./dist/src/index.d.ts","exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js"}},"eslintConfig":{"extends":"ipfs","parserOptions":{"project":true,"sourceType":"module"}},"release":{"branches":["main"],"plugins":[["@semantic-release/commit-analyzer",{"preset":"conventionalcommits","releaseRules":[{"breaking":true,"release":"major"},{"revert":true,"release":"patch"},{"type":"feat","release":"minor"},{"type":"fix","release":"patch"},{"type":"docs","release":"patch"},{"type":"test","release":"patch"},{"type":"deps","release":"patch"},{"scope":"no-release","release":false}]}],["@semantic-release/release-notes-generator",{"preset":"conventionalcommits","presetConfig":{"types":[{"type":"feat","section":"Features"},{"type":"fix","section":"Bug Fixes"},{"type":"chore","section":"Trivial Changes"},{"type":"docs","section":"Documentation"},{"type":"deps","section":"Dependencies"},{"type":"test","section":"Tests"}]}}],"@semantic-release/changelog","@semantic-release/npm","@semantic-release/github","@semantic-release/git"]},"scripts":{"clean":"aegir clean","lint":"aegir lint","dep-check":"aegir dep-check","build":"aegir build --no-bundle","test":"aegir test -t node -t electron-main","test:node":"aegir test -t node --cov","test:electron-main":"aegir test -t electron-main","release":"aegir release","docs":"aegir docs"},"dependencies":{"abort-error":"^1.0.0","freeport-promise":"^2.0.0","merge-options":"^3.0.4","xml2js":"^0.6.2"},"devDependencies":{"@types/sinon":"^17.0.3","@types/xml2js":"^0.4.11","aegir":"^45.0.1","it-first":"^3.0.1","p-defer":"^4.0.0","sinon":"^19.0.2","sinon-ts":"^2.0.0"},"_id":"@achingbrain/ssdp@4.2.1","gitHead":"7289ec769c719c4ae06ba796529aa24650121b81","_nodeVersion":"22.11.0","_npmVersion":"10.9.1","dist":{"shasum":"fbd46cb1b891093067d83065a105c0638dff82fa","size":36560,"noattachment":false,"key":"/@achingbrain/ssdp/-/@achingbrain/ssdp-4.2.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/@achingbrain/ssdp/download/@achingbrain/ssdp-4.2.1.tgz"},"_npmUser":{"name":"achingbrain","email":"alex@achingbrain.net"},"directories":{},"maintainers":[{"name":"achingbrain","email":"alex@achingbrain.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ssdp_4.2.1_1732899214333_0.1605461779468651"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2024-11-29T16:53:34.697Z","publish_time":1732899214697,"_source_registry_name":"default","_cnpm_publish_time":1732899214697},"4.2.0":{"name":"@achingbrain/ssdp","version":"4.2.0","description":"Yet another SSDP implementation for node.js","author":{"name":"Alex Potsides"},"license":"Apache-2.0 OR MIT","homepage":"https://github.com/achingbrain/ssdp#readme","repository":{"type":"git","url":"git+https://github.com/achingbrain/ssdp.git"},"bugs":{"url":"https://github.com/achingbrain/ssdp/issues"},"publishConfig":{"access":"public","provenance":true},"keywords":["device","media","multicast","ssdp","upnp"],"type":"module","types":"./dist/src/index.d.ts","exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js"}},"eslintConfig":{"extends":"ipfs","parserOptions":{"project":true,"sourceType":"module"}},"release":{"branches":["main"],"plugins":[["@semantic-release/commit-analyzer",{"preset":"conventionalcommits","releaseRules":[{"breaking":true,"release":"major"},{"revert":true,"release":"patch"},{"type":"feat","release":"minor"},{"type":"fix","release":"patch"},{"type":"docs","release":"patch"},{"type":"test","release":"patch"},{"type":"deps","release":"patch"},{"scope":"no-release","release":false}]}],["@semantic-release/release-notes-generator",{"preset":"conventionalcommits","presetConfig":{"types":[{"type":"feat","section":"Features"},{"type":"fix","section":"Bug Fixes"},{"type":"chore","section":"Trivial Changes"},{"type":"docs","section":"Documentation"},{"type":"deps","section":"Dependencies"},{"type":"test","section":"Tests"}]}}],"@semantic-release/changelog","@semantic-release/npm","@semantic-release/github","@semantic-release/git"]},"scripts":{"clean":"aegir clean","lint":"aegir lint","dep-check":"aegir dep-check","build":"aegir build --no-bundle","test":"aegir test -t node -t electron-main","test:node":"aegir test -t node --cov","test:electron-main":"aegir test -t electron-main","release":"aegir release","docs":"aegir docs"},"dependencies":{"abort-error":"^1.0.0","freeport-promise":"^2.0.0","merge-options":"^3.0.4","xml2js":"^0.6.2"},"devDependencies":{"@types/sinon":"^17.0.3","@types/xml2js":"^0.4.11","aegir":"^45.0.1","it-first":"^3.0.1","p-defer":"^4.0.0","sinon":"^19.0.2","sinon-ts":"^2.0.0"},"_id":"@achingbrain/ssdp@4.2.0","gitHead":"984ac55cc35e204bbd7c6fa428e165b2015107f8","_nodeVersion":"22.11.0","_npmVersion":"10.9.1","dist":{"shasum":"05de339c9f66343d6d65024fb019fa4ddc48cf35","size":36438,"noattachment":false,"key":"/@achingbrain/ssdp/-/@achingbrain/ssdp-4.2.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/@achingbrain/ssdp/download/@achingbrain/ssdp-4.2.0.tgz"},"_npmUser":{"name":"achingbrain","email":"alex@achingbrain.net"},"directories":{},"maintainers":[{"name":"achingbrain","email":"alex@achingbrain.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ssdp_4.2.0_1732891814957_0.5217882277428292"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2024-11-29T14:50:15.190Z","publish_time":1732891815190,"_source_registry_name":"default","_cnpm_publish_time":1732891815190},"4.1.3":{"name":"@achingbrain/ssdp","version":"4.1.3","description":"Yet another SSDP implementation for node.js","author":{"name":"Alex Potsides"},"license":"Apache-2.0 OR MIT","homepage":"https://github.com/achingbrain/ssdp#readme","repository":{"type":"git","url":"git+https://github.com/achingbrain/ssdp.git"},"bugs":{"url":"https://github.com/achingbrain/ssdp/issues"},"publishConfig":{"access":"public","provenance":true},"keywords":["device","media","multicast","ssdp","upnp"],"type":"module","types":"./dist/src/index.d.ts","exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js"}},"eslintConfig":{"extends":"ipfs","parserOptions":{"project":true,"sourceType":"module"}},"release":{"branches":["main"],"plugins":[["@semantic-release/commit-analyzer",{"preset":"conventionalcommits","releaseRules":[{"breaking":true,"release":"major"},{"revert":true,"release":"patch"},{"type":"feat","release":"minor"},{"type":"fix","release":"patch"},{"type":"docs","release":"patch"},{"type":"test","release":"patch"},{"type":"deps","release":"patch"},{"scope":"no-release","release":false}]}],["@semantic-release/release-notes-generator",{"preset":"conventionalcommits","presetConfig":{"types":[{"type":"feat","section":"Features"},{"type":"fix","section":"Bug Fixes"},{"type":"chore","section":"Trivial Changes"},{"type":"docs","section":"Documentation"},{"type":"deps","section":"Dependencies"},{"type":"test","section":"Tests"}]}}],"@semantic-release/changelog","@semantic-release/npm","@semantic-release/github","@semantic-release/git"]},"scripts":{"clean":"aegir clean","lint":"aegir lint","dep-check":"aegir dep-check","build":"aegir build --no-bundle","test":"aegir test -t node -t electron-main","test:node":"aegir test -t node --cov","test:electron-main":"aegir test -t electron-main","release":"aegir release","docs":"aegir docs"},"dependencies":{"abort-error":"^1.0.0","freeport-promise":"^2.0.0","merge-options":"^3.0.4","xml2js":"^0.6.2"},"devDependencies":{"@types/sinon":"^17.0.3","@types/xml2js":"^0.4.11","aegir":"^45.0.1","it-first":"^3.0.1","p-defer":"^4.0.0","sinon":"^19.0.2","sinon-ts":"^2.0.0"},"_id":"@achingbrain/ssdp@4.1.3","gitHead":"ec3e815776e364d0b3b9b67f0584645929627737","_nodeVersion":"22.11.0","_npmVersion":"10.9.1","dist":{"shasum":"09cd4d75f1ce48621a3d2b7124e0253fac8511b8","size":35778,"noattachment":false,"key":"/@achingbrain/ssdp/-/@achingbrain/ssdp-4.1.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/@achingbrain/ssdp/download/@achingbrain/ssdp-4.1.3.tgz"},"_npmUser":{"name":"achingbrain","email":"alex@achingbrain.net"},"directories":{},"maintainers":[{"name":"achingbrain","email":"alex@achingbrain.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ssdp_4.1.3_1732714400953_0.8112945922821526"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2024-11-27T13:33:21.123Z","publish_time":1732714401123,"_source_registry_name":"default","_cnpm_publish_time":1732714401123},"4.1.2":{"name":"@achingbrain/ssdp","version":"4.1.2","keywords":["device","media","multicast","ssdp","upnp"],"author":{"name":"Alex Potsides"},"license":"Apache-2.0 OR MIT","_id":"@achingbrain/ssdp@4.1.2","maintainers":[{"name":"achingbrain","email":"alex@achingbrain.net"}],"homepage":"https://github.com/achingbrain/ssdp#readme","bugs":{"url":"https://github.com/achingbrain/ssdp/issues"},"dist":{"shasum":"30674f8e5f9305bded24cbe961ea6b7c00f5ee9c","size":35774,"noattachment":false,"key":"/@achingbrain/ssdp/-/@achingbrain/ssdp-4.1.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/@achingbrain/ssdp/download/@achingbrain/ssdp-4.1.2.tgz"},"type":"module","types":"./dist/src/index.d.ts","exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js"}},"gitHead":"486f052ec219530aeae3e1e93565d7e8c6a0746d","release":{"plugins":[["@semantic-release/commit-analyzer",{"preset":"conventionalcommits","releaseRules":[{"release":"major","breaking":true},{"revert":true,"release":"patch"},{"type":"feat","release":"minor"},{"type":"fix","release":"patch"},{"type":"docs","release":"patch"},{"type":"test","release":"patch"},{"type":"deps","release":"patch"},{"scope":"no-release","release":false}]}],["@semantic-release/release-notes-generator",{"preset":"conventionalcommits","presetConfig":{"types":[{"type":"feat","section":"Features"},{"type":"fix","section":"Bug Fixes"},{"type":"chore","section":"Trivial Changes"},{"type":"docs","section":"Documentation"},{"type":"deps","section":"Dependencies"},{"type":"test","section":"Tests"}]}}],"@semantic-release/changelog","@semantic-release/npm","@semantic-release/github","@semantic-release/git"],"branches":["main"]},"scripts":{"docs":"aegir docs","lint":"aegir lint","test":"aegir test -t node -t electron-main","build":"aegir build --no-bundle","clean":"aegir clean","release":"aegir release","dep-check":"aegir dep-check","test:node":"aegir test -t node --cov","test:electron-main":"aegir test -t electron-main"},"_npmUser":{"name":"achingbrain","email":"alex@achingbrain.net"},"repository":{"url":"git+https://github.com/achingbrain/ssdp.git","type":"git"},"_npmVersion":"10.9.1","description":"Yet another SSDP implementation for node.js","directories":{},"_nodeVersion":"22.11.0","dependencies":{"xml2js":"^0.6.2","abort-error":"^1.0.0","merge-options":"^3.0.4","freeport-promise":"^2.0.0"},"eslintConfig":{"extends":"ipfs","parserOptions":{"project":true,"sourceType":"module"}},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"aegir":"^45.0.1","sinon":"^16.1.0","p-defer":"^4.0.0","it-first":"^3.0.1","sinon-ts":"^2.0.0","@types/sinon":"^10.0.14","@types/xml2js":"^0.4.11"},"_npmOperationalInternal":{"tmp":"tmp/ssdp_4.1.2_1732711248633_0.3530383874324703","host":"s3://npm-registry-packages"},"_cnpmcore_publish_time":"2024-11-27T12:40:48.820Z","publish_time":1732711248820,"_source_registry_name":"default","_cnpm_publish_time":1732711248820},"4.1.1":{"name":"@achingbrain/ssdp","version":"4.1.1","description":"Yet another SSDP implementation for node.js","author":{"name":"Alex Potsides"},"license":"Apache-2.0 OR MIT","homepage":"https://github.com/achingbrain/ssdp#readme","repository":{"type":"git","url":"git+https://github.com/achingbrain/ssdp.git"},"bugs":{"url":"https://github.com/achingbrain/ssdp/issues"},"publishConfig":{"access":"public","provenance":true},"keywords":["device","media","multicast","ssdp","upnp"],"type":"module","types":"./dist/src/index.d.ts","exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js"}},"eslintConfig":{"extends":"ipfs","parserOptions":{"project":true,"sourceType":"module"}},"release":{"branches":["main"],"plugins":[["@semantic-release/commit-analyzer",{"preset":"conventionalcommits","releaseRules":[{"breaking":true,"release":"major"},{"revert":true,"release":"patch"},{"type":"feat","release":"minor"},{"type":"fix","release":"patch"},{"type":"docs","release":"patch"},{"type":"test","release":"patch"},{"type":"deps","release":"patch"},{"scope":"no-release","release":false}]}],["@semantic-release/release-notes-generator",{"preset":"conventionalcommits","presetConfig":{"types":[{"type":"feat","section":"Features"},{"type":"fix","section":"Bug Fixes"},{"type":"chore","section":"Trivial Changes"},{"type":"docs","section":"Documentation"},{"type":"deps","section":"Dependencies"},{"type":"test","section":"Tests"}]}}],"@semantic-release/changelog","@semantic-release/npm","@semantic-release/github","@semantic-release/git"]},"scripts":{"clean":"aegir clean","lint":"aegir lint","dep-check":"aegir dep-check","build":"aegir build --no-bundle","test":"aegir test -t node -t electron-main","test:node":"aegir test -t node --cov","test:electron-main":"aegir test -t electron-main","release":"aegir release","docs":"aegir docs"},"dependencies":{"abort-error":"^1.0.0","freeport-promise":"^2.0.0","merge-options":"^3.0.4","xml2js":"^0.6.2"},"devDependencies":{"@types/sinon":"^10.0.14","@types/xml2js":"^0.4.11","aegir":"^45.0.1","it-first":"^3.0.1","p-defer":"^4.0.0","sinon":"^16.1.0"},"_id":"@achingbrain/ssdp@4.1.1","gitHead":"ec14a6896f97e1e00ba8d6c88773a47810be0e27","_nodeVersion":"22.11.0","_npmVersion":"10.9.1","dist":{"shasum":"573f1902225ac636679cfb199889adcab6b41c6f","size":35310,"noattachment":false,"key":"/@achingbrain/ssdp/-/@achingbrain/ssdp-4.1.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/@achingbrain/ssdp/download/@achingbrain/ssdp-4.1.1.tgz"},"_npmUser":{"name":"achingbrain","email":"alex@achingbrain.net"},"directories":{},"maintainers":[{"name":"achingbrain","email":"alex@achingbrain.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ssdp_4.1.1_1732530538000_0.9371144223562049"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2024-11-25T10:28:58.154Z","publish_time":1732530538154,"_source_registry_name":"default","_cnpm_publish_time":1732530538154},"4.1.0":{"name":"@achingbrain/ssdp","version":"4.1.0","description":"Yet another SSDP implementation for node.js","author":{"name":"Alex Potsides"},"license":"Apache-2.0 OR MIT","homepage":"https://github.com/achingbrain/ssdp#readme","repository":{"type":"git","url":"git+https://github.com/achingbrain/ssdp.git"},"bugs":{"url":"https://github.com/achingbrain/ssdp/issues"},"publishConfig":{"access":"public","provenance":true},"keywords":["device","media","multicast","ssdp","upnp"],"type":"module","types":"./dist/src/index.d.ts","exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js"}},"eslintConfig":{"extends":"ipfs","parserOptions":{"project":true,"sourceType":"module"}},"release":{"branches":["main"],"plugins":[["@semantic-release/commit-analyzer",{"preset":"conventionalcommits","releaseRules":[{"breaking":true,"release":"major"},{"revert":true,"release":"patch"},{"type":"feat","release":"minor"},{"type":"fix","release":"patch"},{"type":"docs","release":"patch"},{"type":"test","release":"patch"},{"type":"deps","release":"patch"},{"scope":"no-release","release":false}]}],["@semantic-release/release-notes-generator",{"preset":"conventionalcommits","presetConfig":{"types":[{"type":"feat","section":"Features"},{"type":"fix","section":"Bug Fixes"},{"type":"chore","section":"Trivial Changes"},{"type":"docs","section":"Documentation"},{"type":"deps","section":"Dependencies"},{"type":"test","section":"Tests"}]}}],"@semantic-release/changelog","@semantic-release/npm","@semantic-release/github","@semantic-release/git"]},"scripts":{"clean":"aegir clean","lint":"aegir lint","dep-check":"aegir dep-check","build":"aegir build --no-bundle","test":"aegir test -t node -t electron-main","test:node":"aegir test -t node --cov","test:electron-main":"aegir test -t electron-main","release":"aegir release","docs":"aegir docs"},"dependencies":{"abort-error":"^1.0.0","event-iterator":"^2.0.0","freeport-promise":"^2.0.0","merge-options":"^3.0.4","xml2js":"^0.6.2"},"devDependencies":{"@types/sinon":"^10.0.14","@types/xml2js":"^0.4.11","aegir":"^45.0.1","it-first":"^3.0.1","p-defer":"^4.0.0","sinon":"^16.1.0"},"_id":"@achingbrain/ssdp@4.1.0","gitHead":"fd1d9ae676581fa70ba498beccce680fe37e1004","_nodeVersion":"20.18.0","_npmVersion":"10.9.0","dist":{"shasum":"bd3d505608d2b0658b655444246cc8c9047f3051","size":35806,"noattachment":false,"key":"/@achingbrain/ssdp/-/@achingbrain/ssdp-4.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/@achingbrain/ssdp/download/@achingbrain/ssdp-4.1.0.tgz"},"_npmUser":{"name":"achingbrain","email":"alex@achingbrain.net"},"directories":{},"maintainers":[{"name":"achingbrain","email":"alex@achingbrain.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ssdp_4.1.0_1730479156171_0.419786667263248"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2024-11-01T16:39:16.418Z","publish_time":1730479156418,"_source_registry_name":"default","_cnpm_publish_time":1730479156418},"4.0.10":{"name":"@achingbrain/ssdp","version":"4.0.10","description":"Yet another SSDP implementation for node.js","author":{"name":"Alex Potsides"},"license":"Apache-2.0 OR MIT","homepage":"https://github.com/achingbrain/ssdp#readme","repository":{"type":"git","url":"git+https://github.com/achingbrain/ssdp.git"},"bugs":{"url":"https://github.com/achingbrain/ssdp/issues"},"publishConfig":{"access":"public","provenance":true},"keywords":["device","media","multicast","ssdp","upnp"],"type":"module","types":"./dist/src/index.d.ts","exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js"}},"eslintConfig":{"extends":"ipfs","parserOptions":{"project":true,"sourceType":"module"}},"release":{"branches":["main"],"plugins":[["@semantic-release/commit-analyzer",{"preset":"conventionalcommits","releaseRules":[{"breaking":true,"release":"major"},{"revert":true,"release":"patch"},{"type":"feat","release":"minor"},{"type":"fix","release":"patch"},{"type":"docs","release":"patch"},{"type":"test","release":"patch"},{"type":"deps","release":"patch"},{"scope":"no-release","release":false}]}],["@semantic-release/release-notes-generator",{"preset":"conventionalcommits","presetConfig":{"types":[{"type":"feat","section":"Features"},{"type":"fix","section":"Bug Fixes"},{"type":"chore","section":"Trivial Changes"},{"type":"docs","section":"Documentation"},{"type":"deps","section":"Dependencies"},{"type":"test","section":"Tests"}]}}],"@semantic-release/changelog","@semantic-release/npm","@semantic-release/github","@semantic-release/git"]},"scripts":{"clean":"aegir clean","lint":"aegir lint","dep-check":"aegir dep-check","build":"aegir build --no-bundle","test":"aegir test -t node -t electron-main","test:node":"aegir test -t node --cov","test:electron-main":"aegir test -t electron-main","release":"aegir release","docs":"aegir docs"},"dependencies":{"event-iterator":"^2.0.0","freeport-promise":"^2.0.0","merge-options":"^3.0.4","xml2js":"^0.6.2"},"devDependencies":{"@types/sinon":"^10.0.14","@types/xml2js":"^0.4.11","aegir":"^45.0.1","it-first":"^3.0.1","p-defer":"^4.0.0","sinon":"^16.1.0"},"_id":"@achingbrain/ssdp@4.0.10","gitHead":"d6197a3aa2eee70807fc1e72db79fc076b12d613","_nodeVersion":"20.18.0","_npmVersion":"10.9.0","dist":{"shasum":"e19e666de78fea9506a5bfc4674d1caed9129f30","size":35284,"noattachment":false,"key":"/@achingbrain/ssdp/-/@achingbrain/ssdp-4.0.10.tgz","tarball":"http://registry.cnpm.dingdandao.com/@achingbrain/ssdp/download/@achingbrain/ssdp-4.0.10.tgz"},"_npmUser":{"name":"achingbrain","email":"alex@achingbrain.net"},"directories":{},"maintainers":[{"name":"achingbrain","email":"alex@achingbrain.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ssdp_4.0.10_1730467982213_0.2847070145271995"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2024-11-01T13:33:02.397Z","publish_time":1730467982397,"_source_registry_name":"default","_cnpm_publish_time":1730467982397},"4.0.9":{"name":"@achingbrain/ssdp","version":"4.0.9","keywords":["device","media","multicast","ssdp","upnp"],"author":{"name":"Alex Potsides"},"license":"Apache-2.0 OR MIT","_id":"@achingbrain/ssdp@4.0.9","maintainers":[{"name":"achingbrain","email":"alex@achingbrain.net"}],"homepage":"https://github.com/achingbrain/ssdp#readme","bugs":{"url":"https://github.com/achingbrain/ssdp/issues"},"dist":{"shasum":"c6af5f07e8498440cb44c13c822690d0f426307b","size":28697,"noattachment":false,"key":"/@achingbrain/ssdp/-/@achingbrain/ssdp-4.0.9.tgz","tarball":"http://registry.cnpm.dingdandao.com/@achingbrain/ssdp/download/@achingbrain/ssdp-4.0.9.tgz"},"type":"module","types":"./dist/src/index.d.ts","exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js"}},"gitHead":"30251d9444c9de2c7f5edb8f2ca851ee2cbbfc27","release":{"plugins":[["@semantic-release/commit-analyzer",{"preset":"conventionalcommits","releaseRules":[{"release":"major","breaking":true},{"revert":true,"release":"patch"},{"type":"feat","release":"minor"},{"type":"fix","release":"patch"},{"type":"docs","release":"patch"},{"type":"test","release":"patch"},{"type":"deps","release":"patch"},{"scope":"no-release","release":false}]}],["@semantic-release/release-notes-generator",{"preset":"conventionalcommits","presetConfig":{"types":[{"type":"feat","section":"Features"},{"type":"fix","section":"Bug Fixes"},{"type":"chore","section":"Trivial Changes"},{"type":"docs","section":"Documentation"},{"type":"deps","section":"Dependencies"},{"type":"test","section":"Tests"}]}}],"@semantic-release/changelog","@semantic-release/npm","@semantic-release/github","@semantic-release/git"],"branches":["main"]},"scripts":{"lint":"aegir lint","test":"aegir test -t node -t electron-main","build":"aegir build --no-bundle","clean":"aegir clean","release":"aegir release","dep-check":"aegir dep-check","test:node":"aegir test -t node --cov","test:electron-main":"aegir test -t electron-main"},"_npmUser":{"name":"achingbrain","email":"alex@achingbrain.net"},"repository":{"url":"git+https://github.com/achingbrain/ssdp.git","type":"git"},"_npmVersion":"10.9.0","description":"Yet another SSDP implementation for node.js","directories":{},"_nodeVersion":"20.18.0","dependencies":{"xml2js":"^0.6.2","merge-options":"^3.0.4","event-iterator":"^2.0.0","freeport-promise":"^2.0.0"},"eslintConfig":{"extends":"ipfs","parserOptions":{"project":true,"sourceType":"module"}},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"aegir":"^45.0.1","sinon":"^16.1.0","p-defer":"^4.0.0","it-first":"^3.0.1","@types/sinon":"^10.0.14","@types/xml2js":"^0.4.11"},"_npmOperationalInternal":{"tmp":"tmp/ssdp_4.0.9_1730467158704_0.31468795604680566","host":"s3://npm-registry-packages"},"_cnpmcore_publish_time":"2024-11-01T13:19:18.854Z","publish_time":1730467158854,"_source_registry_name":"default","_cnpm_publish_time":1730467158854},"4.0.8":{"name":"@achingbrain/ssdp","version":"4.0.8","keywords":["device","media","multicast","ssdp","upnp"],"author":{"name":"Alex Potsides"},"license":"Apache-2.0 OR MIT","_id":"@achingbrain/ssdp@4.0.8","maintainers":[{"name":"achingbrain","email":"alex@achingbrain.net"}],"homepage":"https://github.com/achingbrain/ssdp#readme","bugs":{"url":"https://github.com/achingbrain/ssdp/issues"},"dist":{"shasum":"1dc2d1c90503a26d28865967d2ac6d594ee705cf","size":28303,"noattachment":false,"key":"/@achingbrain/ssdp/-/@achingbrain/ssdp-4.0.8.tgz","tarball":"http://registry.cnpm.dingdandao.com/@achingbrain/ssdp/download/@achingbrain/ssdp-4.0.8.tgz"},"type":"module","types":"./dist/src/index.d.ts","exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js"}},"gitHead":"8d93ae3243ee7fdc29e3cf49df846886dee9ced2","release":{"plugins":[["@semantic-release/commit-analyzer",{"preset":"conventionalcommits","releaseRules":[{"release":"major","breaking":true},{"revert":true,"release":"patch"},{"type":"feat","release":"minor"},{"type":"fix","release":"patch"},{"type":"docs","release":"patch"},{"type":"test","release":"patch"},{"type":"deps","release":"patch"},{"scope":"no-release","release":false}]}],["@semantic-release/release-notes-generator",{"preset":"conventionalcommits","presetConfig":{"types":[{"type":"feat","section":"Features"},{"type":"fix","section":"Bug Fixes"},{"type":"chore","section":"Trivial Changes"},{"type":"docs","section":"Documentation"},{"type":"deps","section":"Dependencies"},{"type":"test","section":"Tests"}]}}],"@semantic-release/changelog","@semantic-release/npm","@semantic-release/github","@semantic-release/git"],"branches":["main"]},"scripts":{"lint":"aegir lint","test":"aegir test -t node -t electron-main","build":"aegir build --no-bundle","clean":"aegir clean","release":"aegir release","dep-check":"aegir dep-check","test:node":"aegir test -t node --cov","test:electron-main":"aegir test -t electron-main"},"_npmUser":{"name":"achingbrain","email":"alex@achingbrain.net"},"repository":{"url":"git+https://github.com/achingbrain/ssdp.git","type":"git"},"_npmVersion":"10.9.0","description":"Yet another SSDP implementation for node.js","directories":{},"_nodeVersion":"20.18.0","dependencies":{"xml2js":"^0.6.2","merge-options":"^3.0.4","event-iterator":"^2.0.0","freeport-promise":"^2.0.0"},"eslintConfig":{"extends":"ipfs","parserOptions":{"project":true,"sourceType":"module"}},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"aegir":"^45.0.1","sinon":"^16.1.0","p-defer":"^4.0.0","it-first":"^3.0.1","@types/sinon":"^10.0.14","@types/xml2js":"^0.4.11"},"_npmOperationalInternal":{"tmp":"tmp/ssdp_4.0.8_1730466105215_0.38630375637249537","host":"s3://npm-registry-packages"},"_cnpmcore_publish_time":"2024-11-01T13:01:45.404Z","publish_time":1730466105404,"_source_registry_name":"default","_cnpm_publish_time":1730466105404},"4.0.7":{"name":"@achingbrain/ssdp","version":"4.0.7","keywords":["device","media","multicast","ssdp","upnp"],"author":{"name":"Alex Potsides"},"license":"Apache-2.0 OR MIT","_id":"@achingbrain/ssdp@4.0.7","maintainers":[{"name":"achingbrain","email":"alex@achingbrain.net"}],"homepage":"https://github.com/achingbrain/ssdp#readme","bugs":{"url":"https://github.com/achingbrain/ssdp/issues"},"dist":{"shasum":"1d5bbd471cbfd05e82b7eb3d3a0c2a75a8a43676","size":28484,"noattachment":false,"key":"/@achingbrain/ssdp/-/@achingbrain/ssdp-4.0.7.tgz","tarball":"http://registry.cnpm.dingdandao.com/@achingbrain/ssdp/download/@achingbrain/ssdp-4.0.7.tgz"},"type":"module","types":"./dist/src/index.d.ts","exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js"}},"gitHead":"4b59ea7b78b91e30b84f1ef9f911a5e31d345e7e","release":{"plugins":[["@semantic-release/commit-analyzer",{"preset":"conventionalcommits","releaseRules":[{"release":"major","breaking":true},{"revert":true,"release":"patch"},{"type":"feat","release":"minor"},{"type":"fix","release":"patch"},{"type":"docs","release":"patch"},{"type":"test","release":"patch"},{"type":"deps","release":"patch"},{"scope":"no-release","release":false}]}],["@semantic-release/release-notes-generator",{"preset":"conventionalcommits","presetConfig":{"types":[{"type":"feat","section":"Features"},{"type":"fix","section":"Bug Fixes"},{"type":"chore","section":"Trivial Changes"},{"type":"docs","section":"Documentation"},{"type":"deps","section":"Dependencies"},{"type":"test","section":"Tests"}]}}],"@semantic-release/changelog","@semantic-release/npm","@semantic-release/github","@semantic-release/git"],"branches":["master"]},"scripts":{"lint":"aegir lint","test":"aegir test -t node -t electron-main","build":"aegir build --no-bundle","clean":"aegir clean","release":"aegir release","dep-check":"aegir dep-check","test:node":"aegir test -t node --cov","test:electron-main":"aegir test -t electron-main"},"_npmUser":{"name":"achingbrain","email":"alex@achingbrain.net"},"repository":{"url":"git+https://github.com/achingbrain/ssdp.git","type":"git"},"_npmVersion":"10.9.0","description":"Yet another SSDP implementation for node.js","directories":{},"_nodeVersion":"20.18.0","dependencies":{"xml2js":"^0.6.2","merge-options":"^3.0.4","event-iterator":"^2.0.0","freeport-promise":"^2.0.0"},"eslintConfig":{"extends":"ipfs","parserOptions":{"project":true,"sourceType":"module"}},"_hasShrinkwrap":false,"devDependencies":{"aegir":"^45.0.1","sinon":"^16.1.0","p-defer":"^4.0.0","it-first":"^3.0.1","@types/sinon":"^10.0.14","@types/xml2js":"^0.4.11"},"_npmOperationalInternal":{"tmp":"tmp/ssdp_4.0.7_1730465712661_0.38810351108787633","host":"s3://npm-registry-packages"},"_cnpmcore_publish_time":"2024-11-01T12:55:12.873Z","publish_time":1730465712873,"_source_registry_name":"default","_cnpm_publish_time":1730465712873},"4.0.6":{"name":"@achingbrain/ssdp","version":"4.0.6","description":"Yet another SSDP implementation for node.js","author":{"name":"Alex Potsides"},"license":"Apache-2.0 OR MIT","homepage":"https://github.com/achingbrain/ssdp#readme","repository":{"type":"git","url":"git+https://github.com/achingbrain/ssdp.git"},"bugs":{"url":"https://github.com/achingbrain/ssdp/issues"},"keywords":["device","media","multicast","ssdp","upnp"],"type":"module","types":"./dist/src/index.d.ts","exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js"}},"eslintConfig":{"extends":"ipfs","parserOptions":{"project":true,"sourceType":"module"}},"release":{"branches":["master"],"plugins":[["@semantic-release/commit-analyzer",{"preset":"conventionalcommits","releaseRules":[{"breaking":true,"release":"major"},{"revert":true,"release":"patch"},{"type":"feat","release":"minor"},{"type":"fix","release":"patch"},{"type":"docs","release":"patch"},{"type":"test","release":"patch"},{"type":"deps","release":"patch"},{"scope":"no-release","release":false}]}],["@semantic-release/release-notes-generator",{"preset":"conventionalcommits","presetConfig":{"types":[{"type":"feat","section":"Features"},{"type":"fix","section":"Bug Fixes"},{"type":"chore","section":"Trivial Changes"},{"type":"docs","section":"Documentation"},{"type":"deps","section":"Dependencies"},{"type":"test","section":"Tests"}]}}],"@semantic-release/changelog","@semantic-release/npm","@semantic-release/github","@semantic-release/git"]},"scripts":{"clean":"aegir clean","lint":"aegir lint","dep-check":"aegir dep-check","build":"aegir build --no-bundle","test":"aegir test -t node -t electron-main","test:node":"aegir test -t node --cov","test:electron-main":"aegir test -t electron-main","release":"aegir release"},"dependencies":{"event-iterator":"^2.0.0","freeport-promise":"^2.0.0","merge-options":"^3.0.4","xml2js":"^0.6.2"},"devDependencies":{"@types/sinon":"^10.0.14","@types/xml2js":"^0.4.11","aegir":"^41.0.5","it-first":"^3.0.1","p-defer":"^4.0.0","sinon":"^16.1.0"},"_id":"@achingbrain/ssdp@4.0.6","gitHead":"e42c747a47571b63f3d570bcbd1679aaaea58bc5","_nodeVersion":"18.18.0","_npmVersion":"9.9.0","dist":{"shasum":"eca66ac260dcfcfcb237d7a58e63c3c8e87591b4","size":28325,"noattachment":false,"key":"/@achingbrain/ssdp/-/@achingbrain/ssdp-4.0.6.tgz","tarball":"http://registry.cnpm.dingdandao.com/@achingbrain/ssdp/download/@achingbrain/ssdp-4.0.6.tgz"},"_npmUser":{"name":"achingbrain","email":"alex@achingbrain.net"},"directories":{},"maintainers":[{"name":"achingbrain","email":"alex@achingbrain.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ssdp_4.0.6_1697607232715_0.580223120917311"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2023-10-18T05:33:52.925Z","publish_time":1697607232925,"_source_registry_name":"default","_cnpm_publish_time":1697607232925},"4.0.5":{"name":"@achingbrain/ssdp","version":"4.0.5","description":"Yet another SSDP implementation for node.js","author":{"name":"Alex Potsides"},"license":"Apache-2.0 OR MIT","homepage":"https://github.com/achingbrain/ssdp#readme","repository":{"type":"git","url":"git+https://github.com/achingbrain/ssdp.git"},"bugs":{"url":"https://github.com/achingbrain/ssdp/issues"},"keywords":["device","media","multicast","ssdp","upnp"],"type":"module","types":"./dist/src/index.d.ts","exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js"}},"eslintConfig":{"extends":"ipfs","parserOptions":{"project":true,"sourceType":"module"}},"release":{"branches":["master"],"plugins":[["@semantic-release/commit-analyzer",{"preset":"conventionalcommits","releaseRules":[{"breaking":true,"release":"major"},{"revert":true,"release":"patch"},{"type":"feat","release":"minor"},{"type":"fix","release":"patch"},{"type":"docs","release":"patch"},{"type":"test","release":"patch"},{"type":"deps","release":"patch"},{"scope":"no-release","release":false}]}],["@semantic-release/release-notes-generator",{"preset":"conventionalcommits","presetConfig":{"types":[{"type":"feat","section":"Features"},{"type":"fix","section":"Bug Fixes"},{"type":"chore","section":"Trivial Changes"},{"type":"docs","section":"Documentation"},{"type":"deps","section":"Dependencies"},{"type":"test","section":"Tests"}]}}],"@semantic-release/changelog","@semantic-release/npm","@semantic-release/github","@semantic-release/git"]},"scripts":{"clean":"aegir clean","lint":"aegir lint","dep-check":"aegir dep-check","build":"aegir build --no-bundle","test":"aegir test -t node -t electron-main","test:node":"aegir test -t node --cov","test:electron-main":"aegir test -t electron-main","release":"aegir release"},"dependencies":{"event-iterator":"^2.0.0","freeport-promise":"^2.0.0","merge-options":"^3.0.4","xml2js":"^0.5.0"},"devDependencies":{"@types/sinon":"^10.0.14","@types/xml2js":"^0.4.11","aegir":"^41.0.5","it-first":"^3.0.1","p-defer":"^4.0.0","sinon":"^15.0.4"},"_id":"@achingbrain/ssdp@4.0.5","gitHead":"eda6ed5fc8844691ebed6be20becf3399bf536a6","_nodeVersion":"18.18.0","_npmVersion":"9.9.0","dist":{"shasum":"4db2b1fc38d63caa7c8c53be09d4abc581df415f","size":28322,"noattachment":false,"key":"/@achingbrain/ssdp/-/@achingbrain/ssdp-4.0.5.tgz","tarball":"http://registry.cnpm.dingdandao.com/@achingbrain/ssdp/download/@achingbrain/ssdp-4.0.5.tgz"},"_npmUser":{"name":"achingbrain","email":"alex@achingbrain.net"},"directories":{},"maintainers":[{"name":"achingbrain","email":"alex@achingbrain.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ssdp_4.0.5_1697606613643_0.3156554234239204"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2023-10-18T05:23:33.904Z","publish_time":1697606613904,"_source_registry_name":"default","_cnpm_publish_time":1697606613904},"4.0.4":{"name":"@achingbrain/ssdp","version":"4.0.4","description":"Yet another SSDP implementation for node.js","author":{"name":"Alex Potsides"},"license":"Apache-2.0 OR MIT","homepage":"https://github.com/achingbrain/ssdp#readme","repository":{"type":"git","url":"git+https://github.com/achingbrain/ssdp.git"},"bugs":{"url":"https://github.com/achingbrain/ssdp/issues"},"keywords":["device","media","multicast","ssdp","upnp"],"engines":{"node":">=16.0.0","npm":">=7.0.0"},"type":"module","types":"./dist/src/index.d.ts","exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js"}},"eslintConfig":{"extends":"ipfs","parserOptions":{"sourceType":"module"}},"release":{"branches":["master"],"plugins":[["@semantic-release/commit-analyzer",{"preset":"conventionalcommits","releaseRules":[{"breaking":true,"release":"major"},{"revert":true,"release":"patch"},{"type":"feat","release":"minor"},{"type":"fix","release":"patch"},{"type":"docs","release":"patch"},{"type":"test","release":"patch"},{"type":"deps","release":"patch"},{"scope":"no-release","release":false}]}],["@semantic-release/release-notes-generator",{"preset":"conventionalcommits","presetConfig":{"types":[{"type":"feat","section":"Features"},{"type":"fix","section":"Bug Fixes"},{"type":"chore","section":"Trivial Changes"},{"type":"docs","section":"Documentation"},{"type":"deps","section":"Dependencies"},{"type":"test","section":"Tests"}]}}],"@semantic-release/changelog","@semantic-release/npm","@semantic-release/github","@semantic-release/git"]},"scripts":{"clean":"aegir clean","lint":"aegir lint","dep-check":"aegir dep-check","build":"aegir build --no-bundle","test":"aegir test -t node -t electron-main","test:node":"aegir test -t node --cov","test:electron-main":"aegir test -t electron-main","release":"aegir release"},"dependencies":{"event-iterator":"^2.0.0","freeport-promise":"^2.0.0","merge-options":"^3.0.4","xml2js":"^0.5.0"},"devDependencies":{"@types/sinon":"^10.0.14","@types/xml2js":"^0.4.11","aegir":"^39.0.2","it-first":"^3.0.1","p-defer":"^4.0.0","sinon":"^15.0.4"},"gitHead":"eb4100a00a32c4d24a34cf4835e27783380a6b64","_id":"@achingbrain/ssdp@4.0.4","_nodeVersion":"18.16.0","_npmVersion":"9.6.5","dist":{"shasum":"681c59664f9e05ea65d66b23f96f0dbf71f0e293","size":28396,"noattachment":false,"key":"/@achingbrain/ssdp/-/@achingbrain/ssdp-4.0.4.tgz","tarball":"http://registry.cnpm.dingdandao.com/@achingbrain/ssdp/download/@achingbrain/ssdp-4.0.4.tgz"},"_npmUser":{"name":"achingbrain","email":"alex@achingbrain.net"},"directories":{},"maintainers":[{"name":"achingbrain","email":"alex@achingbrain.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ssdp_4.0.4_1682597017840_0.45019376843686665"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2023-04-27T12:03:38.007Z","publish_time":1682597018007,"_source_registry_name":"default","_cnpm_publish_time":1682597018007},"4.0.3":{"name":"@achingbrain/ssdp","version":"4.0.3","description":"Yet another SSDP implementation for node.js","author":{"name":"Alex Potsides"},"license":"Apache-2.0 OR MIT","homepage":"https://github.com/achingbrain/ssdp#readme","repository":{"type":"git","url":"git+https://github.com/achingbrain/ssdp.git"},"bugs":{"url":"https://github.com/achingbrain/ssdp/issues"},"keywords":["device","media","multicast","ssdp","upnp"],"engines":{"node":">=16.0.0","npm":">=7.0.0"},"type":"module","types":"./dist/src/index.d.ts","exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js"}},"eslintConfig":{"extends":"ipfs","parserOptions":{"sourceType":"module"}},"release":{"branches":["master"],"plugins":[["@semantic-release/commit-analyzer",{"preset":"conventionalcommits","releaseRules":[{"breaking":true,"release":"major"},{"revert":true,"release":"patch"},{"type":"feat","release":"minor"},{"type":"fix","release":"patch"},{"type":"docs","release":"patch"},{"type":"test","release":"patch"},{"type":"deps","release":"patch"},{"scope":"no-release","release":false}]}],["@semantic-release/release-notes-generator",{"preset":"conventionalcommits","presetConfig":{"types":[{"type":"feat","section":"Features"},{"type":"fix","section":"Bug Fixes"},{"type":"chore","section":"Trivial Changes"},{"type":"docs","section":"Documentation"},{"type":"deps","section":"Dependencies"},{"type":"test","section":"Tests"}]}}],"@semantic-release/changelog","@semantic-release/npm","@semantic-release/github","@semantic-release/git"]},"scripts":{"clean":"aegir clean","lint":"aegir lint","dep-check":"aegir dep-check","build":"aegir build --no-bundle","test":"aegir test -t node -t electron-main","test:node":"aegir test -t node --cov","test:electron-main":"aegir test -t electron-main","release":"aegir release"},"dependencies":{"event-iterator":"^2.0.0","freeport-promise":"^2.0.0","merge-options":"^3.0.4","uuid":"^8.3.2","xml2js":"^0.5.0"},"devDependencies":{"@types/sinon":"^10.0.14","@types/uuid":"^8.3.4","@types/xml2js":"^0.4.11","aegir":"^39.0.2","it-first":"^3.0.1","p-defer":"^4.0.0","sinon":"^15.0.4"},"gitHead":"94649503898c67dd2487c5f0009a8c14a8aa6aae","_id":"@achingbrain/ssdp@4.0.3","_nodeVersion":"18.16.0","_npmVersion":"9.6.5","dist":{"shasum":"5f86e2e662fc2230eb0f8258eed3e4068f8ad856","size":28345,"noattachment":false,"key":"/@achingbrain/ssdp/-/@achingbrain/ssdp-4.0.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/@achingbrain/ssdp/download/@achingbrain/ssdp-4.0.3.tgz"},"_npmUser":{"name":"achingbrain","email":"alex@achingbrain.net"},"directories":{},"maintainers":[{"name":"achingbrain","email":"alex@achingbrain.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ssdp_4.0.3_1682596465461_0.0633295700552372"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2023-04-27T11:54:25.653Z","publish_time":1682596465653,"_source_registry_name":"default","_cnpm_publish_time":1682596465653},"4.0.2":{"name":"@achingbrain/ssdp","version":"4.0.2","description":"Yet another SSDP implementation for node.js","author":{"name":"Alex Potsides"},"license":"Apache-2.0 OR MIT","homepage":"https://github.com/achingbrain/ssdp#readme","repository":{"type":"git","url":"git+https://github.com/achingbrain/ssdp.git"},"bugs":{"url":"https://github.com/achingbrain/ssdp/issues"},"keywords":["device","media","multicast","ssdp","upnp"],"engines":{"node":">=16.0.0","npm":">=7.0.0"},"type":"module","types":"./dist/src/index.d.ts","exports":{".":{"import":"./dist/src/index.js"}},"eslintConfig":{"extends":"ipfs","parserOptions":{"sourceType":"module"}},"release":{"branches":["master"],"plugins":[["@semantic-release/commit-analyzer",{"preset":"conventionalcommits","releaseRules":[{"breaking":true,"release":"major"},{"revert":true,"release":"patch"},{"type":"feat","release":"minor"},{"type":"fix","release":"patch"},{"type":"chore","release":"patch"},{"type":"docs","release":"patch"},{"type":"test","release":"patch"},{"scope":"no-release","release":false}]}],["@semantic-release/release-notes-generator",{"preset":"conventionalcommits","presetConfig":{"types":[{"type":"feat","section":"Features"},{"type":"fix","section":"Bug Fixes"},{"type":"chore","section":"Trivial Changes"},{"type":"docs","section":"Trivial Changes"},{"type":"test","section":"Tests"}]}}],"@semantic-release/changelog","@semantic-release/npm","@semantic-release/github","@semantic-release/git"]},"scripts":{"clean":"aegir clean","lint":"aegir lint","dep-check":"aegir dep-check","build":"aegir build --no-bundle","test":"aegir test -t node -t electron-main","test:node":"aegir test -t node --cov","test:electron-main":"aegir test -t electron-main","release":"aegir release"},"dependencies":{"event-iterator":"^2.0.0","freeport-promise":"^2.0.0","merge-options":"^3.0.4","uuid":"^8.3.2","xml2js":"^0.5.0"},"devDependencies":{"@types/uuid":"^8.3.4","@types/xml2js":"^0.4.11","aegir":"^37.0.15","it-first":"^1.0.7","p-defer":"^4.0.0","sinon":"^14.0.0"},"gitHead":"f484a9e6735053b449b204119acefb0de70dca35","_id":"@achingbrain/ssdp@4.0.2","_nodeVersion":"18.16.0","_npmVersion":"8.19.4","dist":{"shasum":"496f200b46dd76f9691c9178429f0f3b6f9c71d0","size":27733,"noattachment":false,"key":"/@achingbrain/ssdp/-/@achingbrain/ssdp-4.0.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/@achingbrain/ssdp/download/@achingbrain/ssdp-4.0.2.tgz"},"_npmUser":{"name":"achingbrain","email":"alex@achingbrain.net"},"directories":{},"maintainers":[{"name":"achingbrain","email":"alex@achingbrain.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ssdp_4.0.2_1682578793331_0.45146000742193926"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2023-04-27T06:59:53.516Z","publish_time":1682578793516,"_source_registry_name":"default","_cnpm_publish_time":1682578793516},"4.0.1":{"name":"@achingbrain/ssdp","version":"4.0.1","description":"Yet another SSDP implementation for node.js","author":{"name":"Alex Potsides"},"license":"Apache-2.0 OR MIT","homepage":"https://github.com/achingbrain/ssdp#readme","repository":{"type":"git","url":"git+https://github.com/achingbrain/ssdp.git"},"bugs":{"url":"https://github.com/achingbrain/ssdp/issues"},"keywords":["device","media","multicast","ssdp","upnp"],"engines":{"node":">=16.0.0","npm":">=7.0.0"},"type":"module","types":"./dist/src/index.d.ts","exports":{".":{"import":"./dist/src/index.js"}},"eslintConfig":{"extends":"ipfs","parserOptions":{"sourceType":"module"}},"release":{"branches":["master"],"plugins":[["@semantic-release/commit-analyzer",{"preset":"conventionalcommits","releaseRules":[{"breaking":true,"release":"major"},{"revert":true,"release":"patch"},{"type":"feat","release":"minor"},{"type":"fix","release":"patch"},{"type":"chore","release":"patch"},{"type":"docs","release":"patch"},{"type":"test","release":"patch"},{"scope":"no-release","release":false}]}],["@semantic-release/release-notes-generator",{"preset":"conventionalcommits","presetConfig":{"types":[{"type":"feat","section":"Features"},{"type":"fix","section":"Bug Fixes"},{"type":"chore","section":"Trivial Changes"},{"type":"docs","section":"Trivial Changes"},{"type":"test","section":"Tests"}]}}],"@semantic-release/changelog","@semantic-release/npm","@semantic-release/github","@semantic-release/git"]},"scripts":{"clean":"aegir clean","lint":"aegir lint","dep-check":"aegir dep-check","build":"aegir build --no-bundle","test":"aegir test -t node -t electron-main","test:node":"aegir test -t node --cov","test:electron-main":"aegir test -t electron-main","release":"aegir release"},"dependencies":{"event-iterator":"^2.0.0","freeport-promise":"^2.0.0","merge-options":"^3.0.4","uuid":"^8.3.2","xml2js":"^0.4.23"},"devDependencies":{"@types/uuid":"^8.3.4","@types/xml2js":"^0.4.9","aegir":"^37.0.15","it-first":"^1.0.7","p-defer":"^4.0.0","sinon":"^14.0.0"},"gitHead":"2b6edde232751910401b34fb6de989310bc63e50","_id":"@achingbrain/ssdp@4.0.1","_nodeVersion":"16.15.0","_npmVersion":"8.11.0","dist":{"shasum":"47ccaaa8256cf73b7b2ab86a0ad14128cfaf77b7","size":27730,"noattachment":false,"key":"/@achingbrain/ssdp/-/@achingbrain/ssdp-4.0.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/@achingbrain/ssdp/download/@achingbrain/ssdp-4.0.1.tgz"},"_npmUser":{"name":"achingbrain","email":"alex@achingbrain.net"},"directories":{},"maintainers":[{"name":"achingbrain","email":"alex@achingbrain.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ssdp_4.0.1_1653586856769_0.7090801043688757"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2022-05-26T17:51:40.026Z","publish_time":1653586856901,"_cnpm_publish_time":1653586856901},"4.0.0":{"name":"@achingbrain/ssdp","version":"4.0.0","description":"Yet another SSDP implementation for node.js","author":{"name":"Alex Potsides"},"license":"Apache-2.0 OR MIT","homepage":"https://github.com/achingbrain/ssdp#readme","repository":{"type":"git","url":"git+https://github.com/achingbrain/ssdp.git"},"bugs":{"url":"https://github.com/achingbrain/ssdp/issues"},"keywords":["device","media","multicast","ssdp","upnp"],"engines":{"node":">=16.0.0","npm":">=7.0.0"},"type":"module","types":"./dist/src/index.d.ts","exports":{".":{"import":"./dist/src/index.js"}},"eslintConfig":{"extends":"ipfs","parserOptions":{"sourceType":"module"}},"release":{"branches":["master"],"plugins":[["@semantic-release/commit-analyzer",{"preset":"conventionalcommits","releaseRules":[{"breaking":true,"release":"major"},{"revert":true,"release":"patch"},{"type":"feat","release":"minor"},{"type":"fix","release":"patch"},{"type":"chore","release":"patch"},{"type":"docs","release":"patch"},{"type":"test","release":"patch"},{"scope":"no-release","release":false}]}],["@semantic-release/release-notes-generator",{"preset":"conventionalcommits","presetConfig":{"types":[{"type":"feat","section":"Features"},{"type":"fix","section":"Bug Fixes"},{"type":"chore","section":"Trivial Changes"},{"type":"docs","section":"Trivial Changes"},{"type":"test","section":"Tests"}]}}],"@semantic-release/changelog","@semantic-release/npm","@semantic-release/github","@semantic-release/git"]},"scripts":{"clean":"aegir clean","lint":"aegir lint","dep-check":"aegir dep-check","build":"aegir build --no-bundle","test":"aegir test -t node -t electron-main","test:node":"aegir test -t node --cov","test:electron-main":"aegir test -t electron-main","release":"aegir release"},"dependencies":{"event-iterator":"^2.0.0","freeport-promise":"^2.0.0","merge-options":"^3.0.4","uuid":"^8.3.2","xml2js":"^0.4.23"},"devDependencies":{"@types/uuid":"^8.3.4","@types/xml2js":"^0.4.9","aegir":"^37.0.15","it-first":"^1.0.7","p-defer":"^4.0.0","sinon":"^14.0.0"},"gitHead":"127a05b9f4470cdb241e19da9c459929f8d51670","_id":"@achingbrain/ssdp@4.0.0","_nodeVersion":"16.15.0","_npmVersion":"8.10.0","dist":{"shasum":"8ad44ae19d3278201c2e72d377221fe4537f2c0c","size":27527,"noattachment":false,"key":"/@achingbrain/ssdp/-/@achingbrain/ssdp-4.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/@achingbrain/ssdp/download/@achingbrain/ssdp-4.0.0.tgz"},"_npmUser":{"name":"achingbrain","email":"alex@achingbrain.net"},"directories":{},"maintainers":[{"name":"achingbrain","email":"alex@achingbrain.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ssdp_4.0.0_1653044964641_0.8482756670514526"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2022-05-20T12:10:43.756Z","publish_time":1653044964852,"_cnpm_publish_time":1653044964852},"3.0.4":{"name":"@achingbrain/ssdp","version":"3.0.4","description":"Yet another SSDP implementation for node.js","author":{"name":"Alex Potsides"},"license":"Apache-2.0 OR MIT","homepage":"https://github.com/achingbrain/ssdp#readme","repository":{"type":"git","url":"git+https://github.com/achingbrain/ssdp.git"},"bugs":{"url":"https://github.com/achingbrain/ssdp/issues"},"keywords":["device","media","multicast","ssdp","upnp"],"engines":{"node":">=16.0.0","npm":">=7.0.0"},"type":"module","types":"./dist/src/index.d.ts","exports":{".":{"import":"./dist/src/index.js"}},"eslintConfig":{"extends":"ipfs","parserOptions":{"sourceType":"module"}},"release":{"branches":["master"],"plugins":[["@semantic-release/commit-analyzer",{"preset":"conventionalcommits","releaseRules":[{"breaking":true,"release":"major"},{"revert":true,"release":"patch"},{"type":"feat","release":"minor"},{"type":"fix","release":"patch"},{"type":"chore","release":"patch"},{"type":"docs","release":"patch"},{"type":"test","release":"patch"},{"scope":"no-release","release":false}]}],["@semantic-release/release-notes-generator",{"preset":"conventionalcommits","presetConfig":{"types":[{"type":"feat","section":"Features"},{"type":"fix","section":"Bug Fixes"},{"type":"chore","section":"Trivial Changes"},{"type":"docs","section":"Trivial Changes"},{"type":"test","section":"Tests"}]}}],"@semantic-release/changelog","@semantic-release/npm","@semantic-release/github","@semantic-release/git"]},"scripts":{"clean":"aegir clean","lint":"aegir lint","dep-check":"aegir dep-check","build":"aegir build --no-bundle","test":"aegir test -t node -t electron-main","test:node":"aegir test -t node --cov","test:electron-main":"aegir test -t electron-main","release":"aegir release"},"dependencies":{"event-iterator":"^2.0.0","freeport-promise":"^2.0.0","merge-options":"^3.0.4","uuid":"^8.3.2","xml2js":"^0.4.23"},"devDependencies":{"@types/uuid":"^8.3.4","@types/xml2js":"^0.4.9","aegir":"^37.0.15","it-first":"^1.0.7","p-defer":"^4.0.0","sinon":"^14.0.0"},"gitHead":"76c63ea8056729b8e2fb0850e269127d6dc03181","_id":"@achingbrain/ssdp@3.0.4","_nodeVersion":"16.15.0","_npmVersion":"8.10.0","dist":{"shasum":"b407ac17f23533b1d6672b24fed77e1e284e5dfb","size":27335,"noattachment":false,"key":"/@achingbrain/ssdp/-/@achingbrain/ssdp-3.0.4.tgz","tarball":"http://registry.cnpm.dingdandao.com/@achingbrain/ssdp/download/@achingbrain/ssdp-3.0.4.tgz"},"_npmUser":{"name":"achingbrain","email":"alex@achingbrain.net"},"directories":{},"maintainers":[{"name":"achingbrain","email":"alex@achingbrain.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ssdp_3.0.4_1653040870220_0.9833628110689099"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2022-05-20T10:34:17.250Z","publish_time":1653040870423,"_cnpm_publish_time":1653040870423},"3.0.3":{"name":"@achingbrain/ssdp","version":"3.0.3","description":"Yet another SSDP implementation for node.js","author":{"name":"Alex Potsides"},"license":"Apache-2.0 OR MIT","homepage":"https://github.com/achingbrain/ssdp#readme","repository":{"type":"git","url":"git+https://github.com/achingbrain/ssdp.git"},"bugs":{"url":"https://github.com/achingbrain/ssdp/issues"},"keywords":["device","media","multicast","ssdp","upnp"],"engines":{"node":">=16.0.0","npm":">=7.0.0"},"type":"module","types":"./dist/src/index.d.ts","exports":{".":{"import":"./dist/src/index.js"}},"eslintConfig":{"extends":"ipfs","parserOptions":{"sourceType":"module"}},"release":{"branches":["master"],"plugins":[["@semantic-release/commit-analyzer",{"preset":"conventionalcommits","releaseRules":[{"breaking":true,"release":"major"},{"revert":true,"release":"patch"},{"type":"feat","release":"minor"},{"type":"fix","release":"patch"},{"type":"chore","release":"patch"},{"type":"docs","release":"patch"},{"type":"test","release":"patch"},{"scope":"no-release","release":false}]}],["@semantic-release/release-notes-generator",{"preset":"conventionalcommits","presetConfig":{"types":[{"type":"feat","section":"Features"},{"type":"fix","section":"Bug Fixes"},{"type":"chore","section":"Trivial Changes"},{"type":"docs","section":"Trivial Changes"},{"type":"test","section":"Tests"}]}}],"@semantic-release/changelog","@semantic-release/npm","@semantic-release/github","@semantic-release/git"]},"scripts":{"lint":"aegir lint","dep-check":"aegir dep-check dist/src/**/*.js dist/test/**/*.js","build":"tsc","pretest":"npm run build","test":"aegir test -f ./dist/test/*.js -f ./dist/test/**/*.js","test:node":"npm run test -- -t node --cov","test:electron-main":"npm run test -- -t electron-main","release":"semantic-release"},"dependencies":{"event-iterator":"^2.0.0","freeport-promise":"^2.0.0","merge-options":"^3.0.4","uuid":"^8.3.2","xml2js":"^0.4.23"},"devDependencies":{"@types/uuid":"^8.3.4","@types/xml2js":"^0.4.9","aegir":"^36.1.3","it-first":"^1.0.7","sinon":"^13.0.1"},"gitHead":"574ee8f100562328d28cec8f6fc4cf1887e8b5bc","_id":"@achingbrain/ssdp@3.0.3","_nodeVersion":"16.14.0","_npmVersion":"7.24.2","dist":{"shasum":"5927077a033c6ae460caf1ce90aa2d38abe04ed3","size":27300,"noattachment":false,"key":"/@achingbrain/ssdp/-/@achingbrain/ssdp-3.0.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/@achingbrain/ssdp/download/@achingbrain/ssdp-3.0.3.tgz"},"_npmUser":{"name":"achingbrain","email":"alex@achingbrain.net"},"directories":{},"maintainers":[{"name":"achingbrain","email":"alex@achingbrain.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ssdp_3.0.3_1645948567958_0.8864658666741771"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2022-02-27T07:56:18.069Z","publish_time":1645948568112,"_cnpm_publish_time":1645948568112},"3.0.2":{"name":"@achingbrain/ssdp","version":"3.0.2","description":"Yet another SSDP implementation for node.js","author":{"name":"Alex Potsides"},"license":"Apache-2.0 OR MIT","homepage":"https://github.com/achingbrain/ssdp#readme","repository":{"type":"git","url":"git+https://github.com/achingbrain/ssdp.git"},"bugs":{"url":"https://github.com/achingbrain/ssdp/issues"},"keywords":["device","media","multicast","ssdp","upnp"],"engines":{"node":">=16.0.0","npm":">=7.0.0"},"type":"module","types":"./dist/src/index.d.ts","exports":{".":{"import":"./dist/src/index.js"}},"eslintConfig":{"extends":"ipfs","parserOptions":{"sourceType":"module"}},"release":{"branches":["master"],"plugins":[["@semantic-release/commit-analyzer",{"preset":"conventionalcommits","releaseRules":[{"breaking":true,"release":"major"},{"revert":true,"release":"patch"},{"type":"feat","release":"minor"},{"type":"fix","release":"patch"},{"type":"chore","release":"patch"},{"type":"docs","release":"patch"},{"type":"test","release":"patch"},{"scope":"no-release","release":false}]}],["@semantic-release/release-notes-generator",{"preset":"conventionalcommits","presetConfig":{"types":[{"type":"feat","section":"Features"},{"type":"fix","section":"Bug Fixes"},{"type":"chore","section":"Trivial Changes"},{"type":"docs","section":"Trivial Changes"},{"type":"test","section":"Tests"}]}}],"@semantic-release/changelog","@semantic-release/npm","@semantic-release/github","@semantic-release/git"]},"scripts":{"lint":"aegir lint","dep-check":"aegir dep-check dist/src/**/*.js dist/test/**/*.js","build":"tsc","pretest":"npm run build","test":"aegir test -f ./dist/test/*.js -f ./dist/test/**/*.js","test:node":"npm run test -- -t node --cov","test:electron-main":"npm run test -- -t electron-main","release":"semantic-release"},"dependencies":{"event-iterator":"^2.0.0","freeport-promise":"^2.0.0","merge-options":"^3.0.4","uuid":"^8.3.2","xml2js":"^0.4.23"},"devDependencies":{"@types/uuid":"^8.3.4","@types/xml2js":"^0.4.9","aegir":"^36.1.3","it-first":"^1.0.7","sinon":"^13.0.1"},"gitHead":"360655d1a6b3f837728fe480d0b0633ceb37aaf6","_id":"@achingbrain/ssdp@3.0.2","_nodeVersion":"16.14.0","_npmVersion":"7.24.2","dist":{"shasum":"26cc3b622a11e8a380e9b8269f76297db48028c0","size":26660,"noattachment":false,"key":"/@achingbrain/ssdp/-/@achingbrain/ssdp-3.0.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/@achingbrain/ssdp/download/@achingbrain/ssdp-3.0.2.tgz"},"_npmUser":{"name":"achingbrain","email":"alex@achingbrain.net"},"directories":{},"maintainers":[{"name":"achingbrain","email":"alex@achingbrain.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ssdp_3.0.2_1645872861327_0.4424850023552944"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2022-02-26T10:54:29.754Z","publish_time":1645872861503,"_cnpm_publish_time":1645872861503},"3.0.1":{"name":"@achingbrain/ssdp","version":"3.0.1","description":"Yet another SSDP implementation for node.js","author":{"name":"Alex Potsides"},"license":"Apache-2.0 OR MIT","homepage":"https://github.com/achingbrain/ssdp#readme","repository":{"type":"git","url":"git+https://github.com/achingbrain/ssdp.git"},"bugs":{"url":"https://github.com/achingbrain/ssdp/issues"},"keywords":["device","media","multicast","ssdp","upnp"],"engines":{"node":">=16.0.0","npm":">=7.0.0"},"type":"module","types":"./dist/src/index.d.ts","exports":{".":{"import":"./dist/src/index.js"}},"eslintConfig":{"extends":"ipfs","parserOptions":{"sourceType":"module"}},"release":{"branches":["master"],"plugins":[["@semantic-release/commit-analyzer",{"preset":"conventionalcommits","releaseRules":[{"breaking":true,"release":"major"},{"revert":true,"release":"patch"},{"type":"feat","release":"minor"},{"type":"fix","release":"patch"},{"type":"chore","release":"patch"},{"type":"docs","release":"patch"},{"type":"test","release":"patch"},{"scope":"no-release","release":false}]}],["@semantic-release/release-notes-generator",{"preset":"conventionalcommits","presetConfig":{"types":[{"type":"feat","section":"Features"},{"type":"fix","section":"Bug Fixes"},{"type":"chore","section":"Trivial Changes"},{"type":"docs","section":"Trivial Changes"},{"type":"test","section":"Tests"}]}}],"@semantic-release/changelog","@semantic-release/npm","@semantic-release/github","@semantic-release/git"]},"scripts":{"lint":"aegir lint","dep-check":"aegir dep-check dist/src/**/*.js dist/test/**/*.js","build":"tsc","pretest":"npm run build","test":"aegir test -f ./dist/test/*.js -f ./dist/test/**/*.js","test:node":"npm run test -- -t node --cov","test:electron-main":"npm run test -- -t electron-main","release":"semantic-release"},"dependencies":{"event-iterator":"^2.0.0","freeport-promise":"^2.0.0","merge-options":"^3.0.4","uuid":"^8.3.2","xml2js":"^0.4.23"},"devDependencies":{"@types/uuid":"^8.3.4","@types/xml2js":"^0.4.9","aegir":"^36.1.3","it-first":"^1.0.7","sinon":"^13.0.1"},"gitHead":"139d9327a924f2b570904acd265858ae79e27824","_id":"@achingbrain/ssdp@3.0.1","_nodeVersion":"16.14.0","_npmVersion":"7.24.2","dist":{"shasum":"1f8ce2350bc2a9c73fdb2e9b365bc015db33300c","size":26639,"noattachment":false,"key":"/@achingbrain/ssdp/-/@achingbrain/ssdp-3.0.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/@achingbrain/ssdp/download/@achingbrain/ssdp-3.0.1.tgz"},"_npmUser":{"name":"achingbrain","email":"alex@achingbrain.net"},"directories":{},"maintainers":[{"name":"achingbrain","email":"alex@achingbrain.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ssdp_3.0.1_1645861493085_0.3162326166439471"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2022-02-26T07:45:07.833Z","publish_time":1645861493205,"_cnpm_publish_time":1645861493205},"3.0.0":{"name":"@achingbrain/ssdp","version":"3.0.0","description":"Yet another SSDP implementation for node.js","author":{"name":"Alex Potsides"},"license":"Apache-2.0 OR MIT","homepage":"https://github.com/achingbrain/ssdp#readme","repository":{"type":"git","url":"git+https://github.com/achingbrain/ssdp.git"},"bugs":{"url":"https://github.com/achingbrain/ssdp/issues"},"keywords":["device","media","multicast","ssdp","upnp"],"engines":{"node":">=16.0.0","npm":">=7.0.0"},"type":"module","types":"./dist/src/index.d.ts","exports":{".":{"import":"./dist/src/index.js"}},"eslintConfig":{"extends":"ipfs","parserOptions":{"sourceType":"module"}},"release":{"branches":["master"],"plugins":[["@semantic-release/commit-analyzer",{"preset":"conventionalcommits","releaseRules":[{"breaking":true,"release":"major"},{"revert":true,"release":"patch"},{"type":"feat","release":"minor"},{"type":"fix","release":"patch"},{"type":"chore","release":"patch"},{"type":"docs","release":"patch"},{"type":"test","release":"patch"},{"scope":"no-release","release":false}]}],["@semantic-release/release-notes-generator",{"preset":"conventionalcommits","presetConfig":{"types":[{"type":"feat","section":"Features"},{"type":"fix","section":"Bug Fixes"},{"type":"chore","section":"Trivial Changes"},{"type":"docs","section":"Trivial Changes"},{"type":"test","section":"Tests"}]}}],"@semantic-release/changelog","@semantic-release/npm","@semantic-release/github","@semantic-release/git"]},"scripts":{"lint":"aegir lint","dep-check":"aegir dep-check dist/src/**/*.js dist/test/**/*.js","build":"tsc","pretest":"npm run build","test":"aegir test -f ./dist/test/*.js -f ./dist/test/**/*.js","test:node":"npm run test -- -t node --cov","test:electron-main":"npm run test -- -t electron-main","release":"semantic-release"},"dependencies":{"event-iterator":"^2.0.0","freeport-promise":"^2.0.0","merge-options":"^3.0.4","uuid":"^8.3.2","xml2js":"^0.4.23"},"devDependencies":{"@types/uuid":"^8.3.4","@types/xml2js":"^0.4.9","aegir":"^36.1.3","it-first":"^1.0.7","sinon":"^13.0.1"},"gitHead":"66807a658fc574a90ca23185d4e6de91d46bc9ba","_id":"@achingbrain/ssdp@3.0.0","_nodeVersion":"16.14.0","_npmVersion":"7.24.2","dist":{"shasum":"bcd9f8b5db38a517912a2c49c1967a916b684ed3","size":26526,"noattachment":false,"key":"/@achingbrain/ssdp/-/@achingbrain/ssdp-3.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/@achingbrain/ssdp/download/@achingbrain/ssdp-3.0.0.tgz"},"_npmUser":{"name":"achingbrain","email":"alex@achingbrain.net"},"directories":{},"maintainers":[{"name":"achingbrain","email":"alex@achingbrain.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ssdp_3.0.0_1645717987744_0.043853442850715574"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2022-02-24T15:53:13.659Z","publish_time":1645717987871,"_cnpm_publish_time":1645717987871},"2.1.2":{"name":"@achingbrain/ssdp","description":"Yet another SSDP implementation for node.js","keywords":["ssdp","multicast","media","device","upnp"],"license":"ISC","version":"2.1.2","author":{"name":"Alex Potsides"},"repository":{"type":"git","url":"git+ssh://git@github.com/achingbrain/ssdp.git"},"bugs":{"url":"https://github.com/achingbrain/ssdp/issues"},"scripts":{"lint":"standard","test":"mocha --recursive --reporter=nyan","test:coverage":"istanbul --include-all-sources cover _mocha --recursive","test:coverage:check":"istanbul --include-all-sources cover _mocha --recursive && istanbul check-coverage --statement 100 --branch 100 --function 100","coveralls":"npm run test:coverage && cat ./coverage/lcov.info | coveralls"},"devDependencies":{"chai":"^3.0.0","coveralls":"^2.11.2","istanbul":"^0.4.1","mocha":"^3.2.0","pre-commit":"^1.0.10","proxyquire":"^1.6.0","sinon":"^1.15.4","standard":"^8.6.0"},"pre-commit":["lint","test:coverage:check"],"dependencies":{"fetch-ponyfill":"^3.0.2","freeport-promise":"^1.1.0","lodash":"^4.5.1","uuid":"^3.0.1","wildemitter":"^1.1.0","xml2js":"^0.4.9"},"gitHead":"3eba7d345169c075a5e9f48c4302c258a32d5120","homepage":"https://github.com/achingbrain/ssdp#readme","_id":"@achingbrain/ssdp@2.1.2","_shasum":"68078fe885af6dc6b998dedf12e8449f36efbadf","_from":".","_npmVersion":"2.15.9","_nodeVersion":"4.6.0","_npmUser":{"name":"achingbrain","email":"alex@achingbrain.net"},"dist":{"shasum":"68078fe885af6dc6b998dedf12e8449f36efbadf","size":18491,"noattachment":false,"key":"/@achingbrain/ssdp/-/@achingbrain/ssdp-2.1.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/@achingbrain/ssdp/download/@achingbrain/ssdp-2.1.2.tgz"},"maintainers":[{"name":"achingbrain","email":"alex@achingbrain.net"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/ssdp-2.1.2.tgz_1483187627302_0.04483771789819002"},"directories":{},"_cnpmcore_publish_time":"2021-12-23T04:55:09.115Z","publish_time":1483187629639,"_cnpm_publish_time":1483187629639},"2.1.1":{"name":"@achingbrain/ssdp","description":"Yet another SSDP implementation for node.js","keywords":["ssdp","multicast","media","device","upnp"],"license":"ISC","version":"2.1.1","author":{"name":"Alex Potsides"},"repository":{"type":"git","url":"git+ssh://git@github.com/achingbrain/ssdp.git"},"bugs":{"url":"https://github.com/achingbrain/ssdp/issues"},"scripts":{"lint":"standard","test":"mocha --recursive --reporter=nyan","test:coverage":"istanbul --include-all-sources cover _mocha --recursive","test:coverage:check":"istanbul --include-all-sources cover _mocha --recursive && istanbul check-coverage --statement 100 --branch 100 --function 100","coveralls":"npm run test:coverage && cat ./coverage/lcov.info | coveralls"},"devDependencies":{"chai":"^3.0.0","coveralls":"^2.11.2","istanbul":"^0.4.1","mocha":"^3.2.0","pre-commit":"^1.0.10","proxyquire":"^1.6.0","sinon":"^1.15.4","standard":"^8.6.0"},"pre-commit":["lint","test:coverage:check"],"dependencies":{"axios":"^0.15.3","freeport-promise":"^1.1.0","lodash":"^4.5.1","uuid":"^3.0.1","wildemitter":"^1.1.0","xml2js":"^0.4.9"},"gitHead":"dbd69bb03c1395b840e92b16187da3bf4e0ff903","homepage":"https://github.com/achingbrain/ssdp#readme","_id":"@achingbrain/ssdp@2.1.1","_shasum":"e5f3e2694351c54846c94f3d844f350b705a585d","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"achingbrain","email":"alex@achingbrain.net"},"dist":{"shasum":"e5f3e2694351c54846c94f3d844f350b705a585d","size":18477,"noattachment":false,"key":"/@achingbrain/ssdp/-/@achingbrain/ssdp-2.1.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/@achingbrain/ssdp/download/@achingbrain/ssdp-2.1.1.tgz"},"maintainers":[{"name":"achingbrain","email":"alex@achingbrain.net"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/ssdp-2.1.1.tgz_1483180254177_0.1866462619509548"},"directories":{},"_cnpmcore_publish_time":"2021-12-23T04:55:07.289Z","publish_time":1483180256577,"_cnpm_publish_time":1483180256577},"2.1.0":{"name":"@achingbrain/ssdp","description":"Yet another SSDP implementation for node.js","keywords":["ssdp","multicast","media","device","upnp"],"license":"ISC","version":"2.1.0","author":{"name":"Alex Potsides"},"repository":{"type":"git","url":"git+ssh://git@github.com/achingbrain/ssdp.git"},"bugs":{"url":"https://github.com/achingbrain/ssdp/issues"},"scripts":{"lint":"standard","test":"mocha --recursive --reporter=nyan","test:coverage":"istanbul --include-all-sources cover _mocha --recursive","test:coverage:check":"istanbul --include-all-sources cover _mocha --recursive && istanbul check-coverage --statement 100 --branch 100 --function 100","coveralls":"npm run test:coverage && cat ./coverage/lcov.info | coveralls"},"devDependencies":{"chai":"^3.0.0","coveralls":"^2.11.2","istanbul":"^0.4.1","mocha":"^3.2.0","pre-commit":"^1.0.10","proxyquire":"^1.6.0","sinon":"^1.15.4","standard":"^8.6.0"},"pre-commit":["lint","test:coverage:check"],"dependencies":{"axios":"^0.15.3","freeport-promise":"^1.1.0","lodash":"^4.5.1","uuid":"^3.0.1","wildemitter":"^1.1.0","xml2js":"^0.4.9"},"gitHead":"c1fef6866d21e356f8ab512997093cf1f5b2c1db","homepage":"https://github.com/achingbrain/ssdp#readme","_id":"@achingbrain/ssdp@2.1.0","_shasum":"d638cc3c98a240fc469bf5349f66af11e5b79b57","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"achingbrain","email":"alex@achingbrain.net"},"dist":{"shasum":"d638cc3c98a240fc469bf5349f66af11e5b79b57","size":18493,"noattachment":false,"key":"/@achingbrain/ssdp/-/@achingbrain/ssdp-2.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/@achingbrain/ssdp/download/@achingbrain/ssdp-2.1.0.tgz"},"maintainers":[{"name":"achingbrain","email":"alex@achingbrain.net"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/ssdp-2.1.0.tgz_1483180152233_0.23426479008048773"},"directories":{},"_cnpmcore_publish_time":"2021-12-23T04:55:05.461Z","publish_time":1483180154188,"_cnpm_publish_time":1483180154188},"2.0.4":{"name":"@achingbrain/ssdp","description":"Yet another SSDP implementation for node.js","keywords":["ssdp","multicast","media","device","upnp"],"license":"ISC","version":"2.0.4","author":{"name":"Alex Potsides"},"repository":{"type":"git","url":"git+ssh://git@github.com/achingbrain/ssdp.git"},"bugs":{"url":"https://github.com/achingbrain/ssdp/issues"},"scripts":{"lint":"standard","test":"mocha --recursive --reporter=nyan","test:coverage":"istanbul --include-all-sources cover _mocha --recursive","test:coverage:check":"istanbul --include-all-sources cover _mocha --recursive && istanbul check-coverage --statement 100 --branch 100 --function 100","coveralls":"npm run test:coverage && cat ./coverage/lcov.info | coveralls"},"devDependencies":{"chai":"^3.0.0","coveralls":"^2.11.2","istanbul":"^0.4.1","mocha":"^3.2.0","pre-commit":"^1.0.10","proxyquire":"^1.6.0","sinon":"^1.15.4","standard":"^8.6.0"},"pre-commit":["lint","test:coverage:check"],"dependencies":{"axios":"^0.15.3","freeport-promise":"^1.1.0","lodash":"^4.5.1","uuid":"^3.0.1","wildemitter":"^1.1.0","xml2js":"^0.4.9"},"gitHead":"65704e66c9276f810e08845a436373563a42f740","homepage":"https://github.com/achingbrain/ssdp#readme","_id":"@achingbrain/ssdp@2.0.4","_shasum":"a95940062de9bc55d9dae1ec9c62f712a76cd8ad","_from":".","_npmVersion":"2.15.11","_nodeVersion":"4.7.0","_npmUser":{"name":"achingbrain","email":"alex@achingbrain.net"},"dist":{"shasum":"a95940062de9bc55d9dae1ec9c62f712a76cd8ad","size":23742,"noattachment":false,"key":"/@achingbrain/ssdp/-/@achingbrain/ssdp-2.0.4.tgz","tarball":"http://registry.cnpm.dingdandao.com/@achingbrain/ssdp/download/@achingbrain/ssdp-2.0.4.tgz"},"maintainers":[{"name":"achingbrain","email":"alex@achingbrain.net"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/ssdp-2.0.4.tgz_1481277739915_0.2696679732762277"},"directories":{},"_cnpmcore_publish_time":"2021-12-23T04:55:03.634Z","publish_time":1481277741693,"_cnpm_publish_time":1481277741693},"2.0.3":{"name":"@achingbrain/ssdp","description":"Yet another SSDP implementation for node.js","keywords":["ssdp","multicast","media","device","upnp"],"license":"ISC","version":"2.0.3","author":{"name":"Alex Potsides"},"repository":{"type":"git","url":"git+ssh://git@github.com/achingbrain/ssdp.git"},"bugs":{"url":"https://github.com/achingbrain/ssdp/issues"},"scripts":{"lint":"standard","test":"mocha --recursive --reporter=nyan","test:coverage":"istanbul --include-all-sources cover _mocha --recursive","test:coverage:check":"istanbul --include-all-sources cover _mocha --recursive && istanbul check-coverage --statement 100 --branch 100 --function 100","coveralls":"npm run test:coverage && cat ./coverage/lcov.info | coveralls"},"devDependencies":{"chai":"^3.0.0","coveralls":"^2.11.2","istanbul":"^0.4.1","mocha":"^3.2.0","pre-commit":"^1.0.10","proxyquire":"^1.6.0","sinon":"^1.15.4","standard":"^8.6.0"},"pre-commit":["lint","test:coverage:check"],"dependencies":{"axios":"^0.15.3","freeport-promise":"^1.1.0","lodash":"^4.5.1","uuid":"^3.0.1","wildemitter":"^1.1.0","xml2js":"^0.4.9"},"gitHead":"b7c9977d8937dcfeaa7f905a0bc0c202659c70a6","homepage":"https://github.com/achingbrain/ssdp#readme","_id":"@achingbrain/ssdp@2.0.3","_shasum":"5a8e337710c16e66a24ff5bdc2e073e8825e60eb","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"achingbrain","email":"alex@achingbrain.net"},"dist":{"shasum":"5a8e337710c16e66a24ff5bdc2e073e8825e60eb","size":18197,"noattachment":false,"key":"/@achingbrain/ssdp/-/@achingbrain/ssdp-2.0.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/@achingbrain/ssdp/download/@achingbrain/ssdp-2.0.3.tgz"},"maintainers":[{"name":"achingbrain","email":"alex@achingbrain.net"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/ssdp-2.0.3.tgz_1481272264299_0.8880067863501608"},"directories":{},"_cnpmcore_publish_time":"2021-12-23T04:55:01.782Z","publish_time":1481272265005,"_cnpm_publish_time":1481272265005},"2.0.2":{"name":"@achingbrain/ssdp","description":"Yet another SSDP implementation for node.js","keywords":["ssdp","multicast","media","device","upnp"],"license":"ISC","version":"2.0.2","author":{"name":"Alex Potsides"},"repository":{"type":"git","url":"git+ssh://git@github.com/achingbrain/ssdp.git"},"bugs":{"url":"https://github.com/achingbrain/ssdp/issues"},"scripts":{"lint":"standard","test":"mocha --recursive --reporter=nyan","test:coverage":"istanbul --include-all-sources cover _mocha --recursive","test:coverage:check":"istanbul --include-all-sources cover _mocha --recursive && istanbul check-coverage --statement 100 --branch 100 --function 100","coveralls":"npm run test:coverage && cat ./coverage/lcov.info | coveralls"},"devDependencies":{"chai":"^3.0.0","coveralls":"^2.11.2","istanbul":"^0.4.1","mocha":"^3.2.0","pre-commit":"^1.0.10","proxyquire":"^1.6.0","sinon":"^1.15.4","standard":"^8.6.0"},"pre-commit":["lint","test:coverage:check"],"dependencies":{"axios":"^0.15.3","freeport-promise":"^1.1.0","lodash":"^4.5.1","uuid":"^3.0.1","wildemitter":"^1.1.0","xml2js":"^0.4.9"},"gitHead":"76e6e7969b286bf4e3ce9c1b67f470b89a26107b","homepage":"https://github.com/achingbrain/ssdp#readme","_id":"@achingbrain/ssdp@2.0.2","_shasum":"d0265b0ac285c30c542b7ebaacb4c2b72974919e","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"achingbrain","email":"alex@achingbrain.net"},"dist":{"shasum":"d0265b0ac285c30c542b7ebaacb4c2b72974919e","size":23508,"noattachment":false,"key":"/@achingbrain/ssdp/-/@achingbrain/ssdp-2.0.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/@achingbrain/ssdp/download/@achingbrain/ssdp-2.0.2.tgz"},"maintainers":[{"name":"achingbrain","email":"alex@achingbrain.net"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/ssdp-2.0.2.tgz_1481212759199_0.1086930288001895"},"directories":{},"_cnpmcore_publish_time":"2021-12-23T04:55:00.162Z","publish_time":1481212759861,"_cnpm_publish_time":1481212759861},"2.0.1":{"name":"@achingbrain/ssdp","description":"Yet another SSDP implementation for node.js","keywords":["ssdp","multicast","media","device","upnp"],"license":"ISC","version":"2.0.1","author":{"name":"Alex Potsides"},"repository":{"type":"git","url":"git+ssh://git@github.com/achingbrain/ssdp.git"},"bugs":{"url":"https://github.com/achingbrain/ssdp/issues"},"scripts":{"lint":"standard","test":"mocha --recursive --reporter=nyan","test:coverage":"istanbul --include-all-sources cover _mocha --recursive","test:coverage:check":"istanbul --include-all-sources cover _mocha --recursive && istanbul check-coverage --statement 100 --branch 100 --function 100","coveralls":"npm run test:coverage && cat ./coverage/lcov.info | coveralls"},"devDependencies":{"chai":"^3.0.0","coveralls":"^2.11.2","istanbul":"^0.4.1","mocha":"^3.2.0","pre-commit":"^1.0.10","proxyquire":"^1.6.0","sinon":"^1.15.4","standard":"^8.6.0"},"pre-commit":["lint","test:coverage:check"],"dependencies":{"axios":"^0.15.3","freeport-promise":"^1.1.0","lodash":"^4.5.1","uuid":"^3.0.1","wildemitter":"^1.1.0","xml2js":"^0.4.9"},"gitHead":"ba08ca2f3a7f38d2bd32a50fc8f8e1e2927270de","homepage":"https://github.com/achingbrain/ssdp#readme","_id":"@achingbrain/ssdp@2.0.1","_shasum":"505e6749eebc589dcf7817f353f03d3f3b4f3b5a","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"achingbrain","email":"alex@achingbrain.net"},"dist":{"shasum":"505e6749eebc589dcf7817f353f03d3f3b4f3b5a","size":23500,"noattachment":false,"key":"/@achingbrain/ssdp/-/@achingbrain/ssdp-2.0.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/@achingbrain/ssdp/download/@achingbrain/ssdp-2.0.1.tgz"},"maintainers":[{"name":"achingbrain","email":"alex@achingbrain.net"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/ssdp-2.0.1.tgz_1481201310693_0.14528907439671457"},"directories":{},"_cnpmcore_publish_time":"2021-12-23T04:54:58.356Z","publish_time":1481201311415,"_cnpm_publish_time":1481201311415},"2.0.0":{"name":"@achingbrain/ssdp","description":"Yet another SSDP implementation for node.js","keywords":["ssdp","multicast","media","device","upnp"],"license":"ISC","version":"2.0.0","author":{"name":"Alex Potsides"},"repository":{"type":"git","url":"git+ssh://git@github.com/achingbrain/ssdp.git"},"bugs":{"url":"https://github.com/achingbrain/ssdp/issues"},"scripts":{"lint":"standard","test":"mocha --recursive --reporter=nyan","test:coverage":"istanbul --include-all-sources cover _mocha --recursive","test:coverage:check":"istanbul --include-all-sources cover _mocha --recursive && istanbul check-coverage --statement 100 --branch 100 --function 100","coveralls":"npm run test:coverage && cat ./coverage/lcov.info | coveralls"},"devDependencies":{"chai":"^3.0.0","coveralls":"^2.11.2","istanbul":"^0.4.1","mocha":"^3.2.0","pre-commit":"^1.0.10","proxyquire":"^1.6.0","sinon":"^1.15.4","standard":"^8.6.0"},"pre-commit":["lint","test:coverage:check"],"dependencies":{"axios":"^0.15.3","freeport-promise":"^1.1.0","lodash":"^4.5.1","uuid":"^3.0.1","wildemitter":"^1.1.0","xml2js":"^0.4.9"},"gitHead":"aedc6a2704476f44165f625a2396d378b19cc5c6","homepage":"https://github.com/achingbrain/ssdp#readme","_id":"@achingbrain/ssdp@2.0.0","_shasum":"2b587df271640c1c30ab9be3de33f24e322d3cfb","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"achingbrain","email":"alex@achingbrain.net"},"dist":{"shasum":"2b587df271640c1c30ab9be3de33f24e322d3cfb","size":23336,"noattachment":false,"key":"/@achingbrain/ssdp/-/@achingbrain/ssdp-2.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/@achingbrain/ssdp/download/@achingbrain/ssdp-2.0.0.tgz"},"maintainers":[{"name":"achingbrain","email":"alex@achingbrain.net"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/ssdp-2.0.0.tgz_1481112017368_0.10769942589104176"},"directories":{},"_cnpmcore_publish_time":"2021-12-23T04:54:56.467Z","publish_time":1481112019800,"_cnpm_publish_time":1481112019800},"1.0.1":{"name":"@achingbrain/ssdp","description":"Yet another SSDP implementation for node.js","keywords":["ssdp","multicast","media","device","upnp"],"license":"ISC","version":"1.0.1","author":{"name":"Alex Potsides"},"repository":{"type":"git","url":"git+ssh://git@github.com/achingbrain/ssdp.git"},"bugs":{"url":"https://github.com/achingbrain/ssdp/issues"},"scripts":{"lint":"standard","test":"mocha --recursive --reporter=nyan","test:coverage":"istanbul --include-all-sources cover _mocha --recursive","test:coverage:check":"istanbul --include-all-sources cover _mocha --recursive && istanbul check-coverage --statement 100 --branch 100 --function 100","coveralls":"npm run test:coverage && cat ./coverage/lcov.info | coveralls"},"devDependencies":{"chai":"^3.0.0","coveralls":"^2.11.2","istanbul":"^0.4.1","mocha":"^2.2.5","pre-commit":"^1.0.10","proxyquire":"^1.6.0","sinon":"^1.15.4","standard":"^6.0.7"},"pre-commit":["lint","test:coverage:check"],"dependencies":{"async":"^1.3.0","freeport":"^1.0.5","lodash":"^4.5.1","uuid":"^2.0.1","wildemitter":"^1.1.0","wreck":"^7.0.0","xml2js":"^0.4.9"},"gitHead":"1ed3f259c86d8a03d7eca78a3b4fc49a0f995a5c","homepage":"https://github.com/achingbrain/ssdp#readme","_id":"@achingbrain/ssdp@1.0.1","_shasum":"bb5fc20eb29943a6814bad41105c3c112aa415db","_from":".","_npmVersion":"3.3.12","_nodeVersion":"5.5.0","_npmUser":{"name":"achingbrain","email":"alex@achingbrain.net"},"maintainers":[{"name":"achingbrain","email":"alex@achingbrain.net"}],"dist":{"shasum":"bb5fc20eb29943a6814bad41105c3c112aa415db","size":17945,"noattachment":false,"key":"/@achingbrain/ssdp/-/@achingbrain/ssdp-1.0.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/@achingbrain/ssdp/download/@achingbrain/ssdp-1.0.1.tgz"},"_npmOperationalInternal":{"host":"packages-9-west.internal.npmjs.com","tmp":"tmp/ssdp-1.0.1.tgz_1456731644555_0.5312632697168738"},"directories":{},"_cnpmcore_publish_time":"2021-12-23T04:54:54.643Z","publish_time":1456731647547,"_cnpm_publish_time":1456731647547},"1.0.0":{"name":"@achingbrain/ssdp","description":"Yet another SSDP implementation for node.js","keywords":["ssdp","multicast","media","device","upnp"],"license":"ISC","version":"1.0.0","author":{"name":"Alex Potsides"},"repository":{"type":"git","url":"git+ssh://git@github.com/achingbrain/ssdp.git"},"bugs":{"url":"https://github.com/achingbrain/ssdp/issues"},"scripts":{"lint":"standard","test":"mocha --recursive --reporter=nyan","test:coverage":"istanbul --include-all-sources cover _mocha --recursive","test:coverage:check":"istanbul --include-all-sources cover _mocha --recursive && istanbul check-coverage --statement 100 --branch 100 --function 100","coveralls":"npm run test:coverage && cat ./coverage/lcov.info | coveralls"},"devDependencies":{"chai":"^3.0.0","coveralls":"^2.11.2","istanbul":"^0.4.1","mocha":"^2.2.5","pre-commit":"^1.0.10","proxyquire":"^1.6.0","sinon":"^1.15.4","standard":"^5.3.1"},"pre-commit":["lint","test:coverage:check"],"dependencies":{"async":"^1.3.0","freeport":"^1.0.5","lodash":"^3.10.0","uuid":"^2.0.1","wildemitter":"^1.1.0","wreck":"^7.0.0","xml2js":"^0.4.9"},"gitHead":"eba5817f3bc81999fa0c6e4a6b37e302be7f37bd","homepage":"https://github.com/achingbrain/ssdp#readme","_id":"@achingbrain/ssdp@1.0.0","_shasum":"36ad34822cdb7f49e95b387b9aeaa8217f8be2e0","_from":".","_npmVersion":"3.3.12","_nodeVersion":"5.1.0","_npmUser":{"name":"achingbrain","email":"alex@achingbrain.net"},"maintainers":[{"name":"achingbrain","email":"alex@achingbrain.net"}],"dist":{"shasum":"36ad34822cdb7f49e95b387b9aeaa8217f8be2e0","size":17943,"noattachment":false,"key":"/@achingbrain/ssdp/-/@achingbrain/ssdp-1.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/@achingbrain/ssdp/download/@achingbrain/ssdp-1.0.0.tgz"},"directories":{},"_cnpmcore_publish_time":"2021-12-23T04:54:53.030Z","publish_time":1451296031924,"_cnpm_publish_time":1451296031924},"0.0.5":{"name":"@achingbrain/ssdp","description":"Yet another SSDP implementation for node.js","keywords":["ssdp","multicast","media","device","upnp"],"license":"ISC","version":"0.0.5","author":{"name":"Alex Potsides"},"repository":{"type":"git","url":"git+ssh://git@github.com/achingbrain/ssdp.git"},"bugs":{"url":"https://github.com/achingbrain/ssdp/issues"},"scripts":{"lint":"standard","test":"mocha --recursive --reporter=nyan","test:coverage":"istanbul --include-all-sources cover _mocha --recursive","test:coverage:check":"istanbul --include-all-sources cover _mocha --recursive && istanbul check-coverage --statement 100 --branch 100 --function 100","coveralls":"npm run test:coverage && cat ./coverage/lcov.info | coveralls"},"devDependencies":{"chai":"^3.0.0","coveralls":"^2.11.2","istanbul":"^0.3.17","mocha":"^2.2.5","pre-commit":"^1.0.10","proxyquire":"^1.6.0","sinon":"^1.15.4","standard":"^4.5.2"},"pre-commit":["lint","test:coverage:check"],"dependencies":{"async":"^1.3.0","freeport":"^1.0.5","lodash":"^3.10.0","uuid":"^2.0.1","wildemitter":"^1.1.0","wreck":"^6.0.0","xml2js":"^0.4.9"},"gitHead":"c93e8d38010883d5171f533c935bce66114492d8","homepage":"https://github.com/achingbrain/ssdp#readme","_id":"@achingbrain/ssdp@0.0.5","_shasum":"26bd53a824cb53d1451d65255cc22509f9c0c2e1","_from":".","_npmVersion":"2.11.2","_nodeVersion":"0.12.6","_npmUser":{"name":"achingbrain","email":"alex@achingbrain.net"},"maintainers":[{"name":"achingbrain","email":"alex@achingbrain.net"}],"dist":{"shasum":"26bd53a824cb53d1451d65255cc22509f9c0c2e1","size":16631,"noattachment":false,"key":"/@achingbrain/ssdp/-/@achingbrain/ssdp-0.0.5.tgz","tarball":"http://registry.cnpm.dingdandao.com/@achingbrain/ssdp/download/@achingbrain/ssdp-0.0.5.tgz"},"directories":{},"_cnpmcore_publish_time":"2021-12-23T04:54:51.387Z","publish_time":1437218997564,"_cnpm_publish_time":1437218997564},"0.0.4":{"name":"@achingbrain/ssdp","description":"Yet another SSDP implementation for node.js","keywords":["ssdp","multicast","media","device","upnp"],"license":"ISC","version":"0.0.4","author":{"name":"Alex Potsides"},"repository":{"type":"git","url":"git+ssh://git@github.com/achingbrain/ssdp.git"},"bugs":{"url":"https://github.com/achingbrain/ssdp/issues"},"scripts":{"lint":"standard","test":"mocha --recursive --reporter=nyan","test:coverage":"istanbul --include-all-sources cover _mocha --recursive","test:coverage:check":"istanbul --include-all-sources cover _mocha --recursive && istanbul check-coverage --statement 100 --branch 100 --function 100","coveralls":"npm run test:coverage && cat ./coverage/lcov.info | coveralls"},"devDependencies":{"chai":"^3.0.0","coveralls":"^2.11.2","istanbul":"^0.3.17","mocha":"^2.2.5","pre-commit":"^1.0.10","proxyquire":"^1.6.0","sinon":"^1.15.4","standard":"^4.5.2"},"pre-commit":["lint","test:coverage:check"],"dependencies":{"async":"^1.3.0","freeport":"^1.0.5","lodash":"^3.10.0","uuid":"^2.0.1","wildemitter":"^1.1.0","wreck":"^6.0.0","xml2js":"^0.4.9"},"gitHead":"e63d63141721955855088c865c71fa86255203f7","homepage":"https://github.com/achingbrain/ssdp#readme","_id":"@achingbrain/ssdp@0.0.4","_shasum":"84c2b98856a275cd7a045719cc6d544eb50350d3","_from":".","_npmVersion":"2.11.2","_nodeVersion":"0.12.6","_npmUser":{"name":"achingbrain","email":"alex@achingbrain.net"},"maintainers":[{"name":"achingbrain","email":"alex@achingbrain.net"}],"dist":{"shasum":"84c2b98856a275cd7a045719cc6d544eb50350d3","size":16570,"noattachment":false,"key":"/@achingbrain/ssdp/-/@achingbrain/ssdp-0.0.4.tgz","tarball":"http://registry.cnpm.dingdandao.com/@achingbrain/ssdp/download/@achingbrain/ssdp-0.0.4.tgz"},"directories":{},"_cnpmcore_publish_time":"2021-12-23T04:54:49.733Z","publish_time":1437218711940,"_cnpm_publish_time":1437218711940},"0.0.3":{"name":"@achingbrain/ssdp","description":"Yet another SSDP implementation for node.js","keywords":["ssdp","multicast","media","device","upnp"],"license":"ISC","version":"0.0.3","author":{"name":"Alex Potsides"},"repository":{"type":"git","url":"git+ssh://git@github.com/achingbrain/ssdp.git"},"bugs":{"url":"https://github.com/achingbrain/ssdp/issues"},"scripts":{"lint":"standard","test":"mocha --recursive --reporter=nyan","test:coverage":"istanbul --include-all-sources cover _mocha --recursive","test:coverage:check":"istanbul --include-all-sources cover _mocha --recursive && istanbul check-coverage --statement 100 --branch 100 --function 100","coveralls":"npm run test:coverage && cat ./coverage/lcov.info | coveralls"},"devDependencies":{"chai":"^3.0.0","coveralls":"^2.11.2","istanbul":"^0.3.17","mocha":"^2.2.5","pre-commit":"^1.0.10","proxyquire":"^1.6.0","sinon":"^1.15.4","standard":"^4.5.2"},"pre-commit":["lint","test:coverage:check"],"dependencies":{"async":"^1.3.0","freeport":"^1.0.5","lodash":"^3.10.0","uuid":"^2.0.1","wildemitter":"^1.1.0","wreck":"^6.0.0","xml2js":"^0.4.9"},"gitHead":"a4a3de791fadf26474a8cc8cb50ef4adb44d3697","homepage":"https://github.com/achingbrain/ssdp#readme","_id":"@achingbrain/ssdp@0.0.3","_shasum":"dc9531ab7a8b521dfe79c81ffac54f1257bcf106","_from":".","_npmVersion":"2.11.2","_nodeVersion":"0.12.6","_npmUser":{"name":"achingbrain","email":"alex@achingbrain.net"},"maintainers":[{"name":"achingbrain","email":"alex@achingbrain.net"}],"dist":{"shasum":"dc9531ab7a8b521dfe79c81ffac54f1257bcf106","size":16369,"noattachment":false,"key":"/@achingbrain/ssdp/-/@achingbrain/ssdp-0.0.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/@achingbrain/ssdp/download/@achingbrain/ssdp-0.0.3.tgz"},"directories":{},"_cnpmcore_publish_time":"2021-12-23T04:54:48.048Z","publish_time":1437211790524,"_cnpm_publish_time":1437211790524},"0.0.2":{"name":"@achingbrain/ssdp","description":"Yet another SSDP implementation for node.js","keywords":["ssdp","multicast","media","device","upnp"],"license":"ISC","version":"0.0.2","author":{"name":"Alex Potsides"},"repository":{"type":"git","url":"git+ssh://git@github.com/achingbrain/ssdp.git"},"bugs":{"url":"https://github.com/achingbrain/ssdp/issues"},"scripts":{"lint":"standard","test":"mocha --recursive","test:coverage":"istanbul --include-all-sources cover _mocha --recursive","test:coverage:check":"istanbul --include-all-sources cover _mocha --recursive && istanbul check-coverage --statement 100 --branch 100 --function 100","coveralls":"npm run test:coverage && cat ./coverage/lcov.info | coveralls"},"devDependencies":{"chai":"^3.0.0","coveralls":"^2.11.2","istanbul":"^0.3.17","mocha":"^2.2.5","pre-commit":"^1.0.10","proxyquire":"^1.6.0","sinon":"^1.15.4","standard":"^4.5.2"},"pre-commit":["lint","test:coverage:check"],"dependencies":{"async":"^1.3.0","freeport":"^1.0.5","lodash":"^3.10.0","uuid":"^2.0.1","wildemitter":"^1.1.0","wreck":"^6.0.0","xml2js":"^0.4.9"},"gitHead":"f63add6cb19ca05835878baf5b2815d59c0fac78","homepage":"https://github.com/achingbrain/ssdp#readme","_id":"@achingbrain/ssdp@0.0.2","_shasum":"107a222bb6cf1ee4fa0e44acdf6a2cf729dcfe93","_from":".","_npmVersion":"2.11.2","_nodeVersion":"0.12.6","_npmUser":{"name":"achingbrain","email":"alex@achingbrain.net"},"maintainers":[{"name":"achingbrain","email":"alex@achingbrain.net"}],"dist":{"shasum":"107a222bb6cf1ee4fa0e44acdf6a2cf729dcfe93","size":16242,"noattachment":false,"key":"/@achingbrain/ssdp/-/@achingbrain/ssdp-0.0.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/@achingbrain/ssdp/download/@achingbrain/ssdp-0.0.2.tgz"},"directories":{},"_cnpmcore_publish_time":"2021-12-23T04:54:46.398Z","publish_time":1437126236930,"_cnpm_publish_time":1437126236930},"0.0.1":{"name":"@achingbrain/ssdp","description":"Yet another SSDP implementation for node.js","keywords":["ssdp","multicast","media","device","upnp"],"license":"ISC","version":"0.0.1","author":{"name":"Alex Potsides"},"repository":{"type":"git","url":"git+ssh://git@github.com/achingbrain/ssdp.git"},"bugs":{"url":"https://github.com/achingbrain/ssdp/issues"},"scripts":{"lint":"standard","test":"mocha --recursive","test:coverage":"istanbul --include-all-sources cover _mocha --recursive","test:coverage:check":"istanbul --include-all-sources cover _mocha --recursive && istanbul check-coverage --statement 100 --branch 100 --function 100","coveralls":"npm run test:coverage && cat ./coverage/lcov.info | coveralls"},"devDependencies":{"chai":"^3.0.0","coveralls":"^2.11.2","istanbul":"^0.3.17","mocha":"^2.2.5","pre-commit":"^1.0.10","proxyquire":"^1.6.0","sinon":"^1.15.4","standard":"^4.5.2"},"pre-commit":["lint","test:coverage:check"],"dependencies":{"async":"^1.3.0","freeport":"^1.0.5","lodash":"^3.10.0","uuid":"^2.0.1","wildemitter":"^1.1.0","wreck":"^6.0.0","xml2js":"^0.4.9"},"gitHead":"13cbba571a46da1fda9ad61e1d8c8de13490475a","homepage":"https://github.com/achingbrain/ssdp#readme","_id":"@achingbrain/ssdp@0.0.1","_shasum":"8a4edeb73437ebf8d3baf92945ba15c01caf75e7","_from":".","_npmVersion":"2.11.2","_nodeVersion":"0.12.6","_npmUser":{"name":"achingbrain","email":"alex@achingbrain.net"},"maintainers":[{"name":"achingbrain","email":"alex@achingbrain.net"}],"dist":{"shasum":"8a4edeb73437ebf8d3baf92945ba15c01caf75e7","size":16241,"noattachment":false,"key":"/@achingbrain/ssdp/-/@achingbrain/ssdp-0.0.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/@achingbrain/ssdp/download/@achingbrain/ssdp-0.0.1.tgz"},"directories":{},"_cnpmcore_publish_time":"2021-12-23T04:54:44.755Z","publish_time":1437126054991,"_cnpm_publish_time":1437126054991}},"readme":"# @achingbrain/ssdp\n\n[![codecov](https://img.shields.io/codecov/c/github/achingbrain/ssdp.svg?style=flat-square)](https://codecov.io/gh/achingbrain/ssdp)\n[![CI](https://img.shields.io/github/actions/workflow/status/achingbrain/ssdp/js-test-and-release.yml?branch=main\\&style=flat-square)](https://github.com/achingbrain/ssdp/actions/workflows/js-test-and-release.yml?query=branch%3Amain)\n\n> Yet another SSDP implementation for node.js\n\n# About\n\n<!--\n\n!IMPORTANT!\n\nEverything in this README between \"# About\" and \"# Install\" is automatically\ngenerated and will be overwritten the next time the doc generator is run.\n\nTo make changes to this section, please update the @packageDocumentation section\nof src/index.js or src/index.ts\n\nTo experiment with formatting, please run \"npm run docs\" from the root of this\nrepo and examine the changes made.\n\n-->\n\nFirst, import the module, call the function and set up an error handler:\n\n```javascript\nimport ssdp from '@achingbrain/ssdp'\n\nconst bus = await ssdp()\n\n// print error messages to the console\nbus.on('error', console.error)\n```\n\n## Example - Find a service\n\nPass a `serviceType` to the `discover` method - when services are found events will be emitted:\n\n```javascript\n// this is the unique service name we are interested in:\nconst serviceType = 'urn:schemas-upnp-org:service:ContentDirectory:1'\n\nfor await (const service of bus.discover({ serviceType })) {\n  // search for instances of a specific service\n}\n\nbus.on('service:discover', service => {\n  // receive a notification about discovery of a service\n})\n\nbus.on('service:update', service => {\n  // receive a notification when that service is updated - nb. this will only happen\n  // after the service max-age is reached and if the service's device description\n  // document has changed\n})\n```\n\n## Example - Find all services\n\nDon't pass any options to the `discover` method (n.b. you will also receive protocol related events):\n\n```javascript\nfor await (const service of bus.discover()) {\n  // receive a notification about all service types\n}\n```\n\n## Example - Advertise a service\n\n```javascript\n// advertise a service\n\nconst advert = await bus.advertise({\n  usn: 'urn:schemas-upnp-org:service:ContentDirectory:1',\n  details: {\n    URLBase: 'https://192.168.0.1:8001'\n  }\n})\n\n// stop advertising a service\nawait advert.stop()\n```\n\nFor full options, see [lib/advertise/parse-options.js](lib/advertise/parse-options.js)\n\n## Integrate with existing HTTP servers\n\nBy default when you create an advertisement an HTTP server is created to serve the `details.xml` document that describes your service.  To use an existing server instead, do something like:\n\n## Example - Hapi\n\n```javascript\nconst advert = await bus.advertise({\n  usn: 'urn:schemas-upnp-org:service:ContentDirectory:1',\n  location: {\n    udp4: 'http://192.168.0.1:8000/ssdp/details.xml'\n  },\n  details: {\n    URLBase: 'https://192.168.0.1:8001'\n  }\n})\n\nserver.route({\n  method: 'GET',\n  path: '/ssdp/details.xml',\n  handler: (request, reply) => {\n    reply(advert.service.details())\n      .type('text/xml')\n  }\n})\n```\n\n## Example - Express\n\n```javascript\nconst advert = await bus.advertise({\n  usn: 'urn:schemas-upnp-org:service:ContentDirectory:1',\n  location: {\n    udp4: 'http://192.168.0.1:8000/ssdp/details.xml'\n  },\n  details: {\n    URLBase: 'https://192.168.0.1:8001'\n  }\n})\n\napp.get('/ssdp/details.xml', async (request, response) => {\n  response.set('Content-Type', 'text/xml')\n\n  try {\n    const details = await advert.service.details()\n    response.send(details)\n  } catch (err) {\n    response.set('Content-Type', 'text/xml')\n    response.send(err)\n  }\n})\n```\n\n## Example - Shutting down gracefully\n\n`ssdp` opens several ports to communicate with other devices on your network, to shut them down, do something like:\n\n```javascript\nprocess.on('SIGINT',() => {\n  // stop the server(s) from running - this will also send ssdp:byebye messages for all\n  // advertised services however they'll only have been sent once the callback is\n  // invoked so it won't work with process.on('exit') as you can only perform synchronous\n  // operations there\n  bus.stop(error => {\n    process.exit(error ? 1 : 0)\n  })\n})\n```\n\n## Full API and options\n\n```javascript\nimport ssdp from '@achingbrain/ssdp'\n\n// all arguments are optional\nvar bus = ssdp({\n  udn: 'unique-identifier', // defaults to a random UUID\n  // a string to identify the server by\n  signature: 'node.js/0.12.6 UPnP/1.1 @achingbrain/ssdp/1.0.0',\n  retry {\n    times: 5, // how many times to attempt joining the UDP multicast group\n    interval: 5000 // how long to wait between attempts\n  },\n  // specify one or more sockets to listen on\n  sockets: [{\n    type: 'udp4', // or 'udp6'\n    broadcast: {\n      address: '239.255.255.250', // or 'FF02::C'\n      port: 1900 // SSDP broadcast port\n    },\n    bind: {\n      address: '0.0.0.0', // or '0:0:0:0:0:0:0:0'\n      port: 1900\n    },\n    maxHops: 4 // how many network segments packets are allow to travel through (UDP TTL)\n  }]\n})\nbus.on('error', console.error)\n\n// this is the type of service we are interested in\nvar serviceType = 'urn:schemas-upnp-org:service:ContentDirectory:1'\n\n// search for one type of service\nfor await (const service of bus.discover({ serviceType })) {\n\n}\n\nbus.on('service:discover', service => {\n  // receive a notification when a service of the passed type is discovered\n})\n\nbus.on('service:update', service => {\n  // receive a notification when that service is updated\n})\n\n// search for all types of service\nfor await (const service of bus.discover()) {\n\n}\n\n// advertise a service\nconst advert = await bus.advertise({\n  usn: 'a-usn', // unique service name\n  interval: 10000, // how often to broadcast service adverts in ms\n  ttl: 1800000, // how long the advert is valid for in ms\n  ipv4: true, // whether or not to broadcast the advert over IPv4\n  ipv6: true, // whether or not to broadcast the advert over IPv6\n  location: { // where the description document(s) are available - omit to have an http server automatically created\n    udp4: 'http://192.168.0.1/details.xml', // where the description document is available over ipv4\n    udp6: 'http://FE80::0202:B3FF:FE1E:8329/details.xml' // where the description document is available over ipv6\n  },\n  details: { // the contents of the description document\n    specVersion: {\n      major: 1,\n      minor: 1\n    },\n    URLBase: 'http://example.com',\n    device: {\n      deviceType: 'a-usn',\n      friendlyName: 'A friendly device name',\n      manufacturer: 'Manufactuer name',\n      manufacturerURL: 'http://example.com',\n      modelDescription: 'A description of the device',\n      modelName: 'A model name',\n      modelNumber: 'A vendor specific model number',\n      modelURL: 'http://example.com',\n      serialNumber: 'A device specific serial number',\n      UDN: 'unique-identifier' // should be the same as the bus USN\n      presentationURL: 'index.html'\n    }\n  }\n})\n\n// stop advertising a service\nadvert.stop()\n```\n\n## Device description document\n\nDuring UPnP device discovery, clients can request a [description of the various capabilities your service offers](http://jan.newmarch.name/internetdevices/upnp/upnp-devices.html).\nTo do this you can either store an xml document and set the `location` field of your advert to point at that document\nor have it automatically generated.\n\nE.g., create a document, `description.xml` and put it on a server at `http://server.com/path/to/description.xml`:\n\n```xml\n<root xmlns=\"urn:schemas-upnp-org:device-1-0\">\n  <specVersion>\n    <major>1</major>\n    <minor>0</minor>\n  </specVersion>\n  <URLBase>http://192.168.1.41:80</URLBase>\n  <device>\n    <deviceType>urn:schemas-upnp-org:device:Basic:1</deviceType>\n    <friendlyName>I am a light controller</friendlyName>\n    <manufacturer>Royal Philips Electronics</manufacturer>\n    <manufacturerURL>http://www.philips.com</manufacturerURL>\n    <modelDescription>Philips hue Personal Wireless Lighting</modelDescription>\n    <modelName>Philips hue bridge 2012</modelName>\n    <modelNumber>23409823049823</modelNumber>\n    <modelURL>http://www.meethue.com</modelURL>\n    <serialNumber>asd09f8s90832</serialNumber>\n    <UDN>uuid:2f402f80-da50-12321-9b23-2131298129</UDN>\n    <presentationURL>index.html</presentationURL>\n  </device>\n</root>\n```\n\nThen create your advert:\n\n```javascript\nbus.advertise({\n  usn: 'urn:schemas-upnp-org:device:Basic:1',\n  location: {\n    udp4: 'http://192.168.1.40/path/to/description.xml'\n  }\n})\n```\n\nAlternatively provide an descriptor object and let this module do the heavy lifting (n.b.\nyour object will be run through the [xml2js Builder](https://libraries.io/npm/xml2js#user-content-xml-builder-usage)):\n\n```javascript\nbus.advertise({\n  usn: 'urn:schemas-upnp-org:device:Basic:1',\n  details: {\n   '$': {\n      'xmlns': 'urn:schemas-upnp-org:device-1-0'\n    },\n    'specVersion': {\n      'major': '1',\n      'minor': '0'\n    },\n    'URLBase': 'http://192.168.1.41:80',\n    'device': {\n      'deviceType': 'urn:schemas-upnp-org:device:Basic:1',\n      'friendlyName': 'I am a light controller',\n      'manufacturer': 'Royal Philips Electronics',\n      'manufacturerURL': 'http://www.philips.com',\n      'modelDescription': 'Philips hue Personal Wireless Lighting',\n      'modelName': 'Philips hue bridge 2012',\n      'modelNumber': '23409823049823',\n      'modelURL': 'http://www.meethue.com',\n      'serialNumber': 'asd09f8s90832',\n      'UDN': 'uuid:2f402f80-da50-12321-9b23-2131298129',\n      'presentationURL': 'index.html'\n    }\n  }\n})\n```\n\nA random high port will be chosen, a http server will listen on that port and serve the descriptor and the `LOCATION`\nheader will be set appropriately in all `ssdp` messages.\n\nThe server will be shut down when you call `advert.stop`.\n\n## I want to see all protocol messages\n\nNo problem, try this:\n\n```javascript\nbus.on('transport:outgoing-message', (socket, message, remote) => {\n  console.info('-> Outgoing to %s:%s via %s', remote.address, remote.port, socket.type)\n  console.info(message.toString('utf8'))\n})\nbus.on('transport:incoming-message', (message, remote) => {\n  console.info('<- Incoming from %s:%s', remote.address, remote.port)\n  console.info(message.toString('utf8'))\n})\n```\n\nAlternatively see [test/fixtures/all.js](test/fixtures/all.js)\n\n## References\n\n- [LG SSDP discovery documentation](http://developer.lgappstv.com/TV_HELP/topic/lge.tvsdk.references.book/html/UDAP/UDAP/Discovery.htm)\n- [UPnP overview](http://jan.newmarch.name/internetdevices/upnp/upnp.html)\n- [UPnP device description](http://jan.newmarch.name/internetdevices/upnp/upnp-devices.html)\n- [UPnP Device Architecture v1.1](http://upnp.org/specs/arch/UPnP-arch-DeviceArchitecture-v1.1.pdf)\n- [diversario/node-ssdp](https://github.com/diversario/node-ssdp)\n- [Xedecimal/node-ssdp](https://www.npmjs.com/package/ssdp) (no longer maintained)\n\n# Install\n\n```console\n$ npm i @achingbrain/ssdp\n```\n\n# API Docs\n\n- <https://achingbrain.github.io/ssdp>\n\n# License\n\nLicensed under either of\n\n- Apache 2.0, ([LICENSE-APACHE](https://github.com/achingbrain/ssdp/LICENSE-APACHE) / <http://www.apache.org/licenses/LICENSE-2.0>)\n- MIT ([LICENSE-MIT](https://github.com/achingbrain/ssdp/LICENSE-MIT) / <http://opensource.org/licenses/MIT>)\n\n# Contribution\n\nUnless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.\n","_attachments":{},"homepage":"https://github.com/achingbrain/ssdp#readme","bugs":{"url":"https://github.com/achingbrain/ssdp/issues"},"license":"Apache-2.0 OR MIT"}