├── .gitignore ├── config.js ├── deploy.sh ├── index.js ├── iptv.js ├── manifest.json ├── package-lock.json ├── package.json ├── regions.json ├── res ├── logo-small.png ├── logo.png └── logo.psd ├── server.js ├── test.js └── vue ├── .env ├── .env.development ├── .gitignore ├── .vscode └── extensions.json ├── README.md ├── dist ├── assets │ ├── index.61b9d9b9.css │ └── index.9606ae9c.js └── index.html ├── index.html ├── package-lock.json ├── package.json ├── postcss.config.cjs ├── src ├── App.vue ├── components │ └── SearchModal.vue ├── main.js └── style.css ├── tailwind.config.cjs └── vite.config.js /.gitignore: -------------------------------------------------------------------------------- 1 | # ignore ALL .log files 2 | *.log 3 | /node_modules 4 | beamup.json 5 | /lib -------------------------------------------------------------------------------- /config.js: -------------------------------------------------------------------------------- 1 | var env = process.env.NODE_ENV ? 'beamup':'local'; 2 | 3 | var config = {} 4 | 5 | switch (env) { 6 | case 'beamup': 7 | config.port = process.env.PORT 8 | config.local = "https://2ecbbd610840-stremio-iptv.baby-beamup.club/manifest.json" 9 | break; 10 | 11 | case 'local': 12 | config.port = 63355 13 | config.local = "http://127.0.0.1:" + config.port; 14 | break; 15 | } 16 | 17 | module.exports = config; -------------------------------------------------------------------------------- /deploy.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | set -e 4 | 5 | cd vue 6 | npm run build 7 | cd ../ 8 | git add --all 9 | git commit -am "Deploy" 10 | git push origin main 11 | git push beamup main 12 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | 2 | const express = require('express'); 3 | const app = express(); 4 | const cors = require('cors'); 5 | const path = require('path'); 6 | 7 | const iptv = require("./iptv"); 8 | var manifest = require("./manifest.json"); 9 | const regions = require('./regions.json'); 10 | 11 | app.set('trust proxy', true) 12 | 13 | app.use('/configure', express.static(path.join(__dirname, 'vue', 'dist'))); 14 | app.use('/assets', express.static(path.join(__dirname, 'vue', 'dist', 'assets'))); 15 | 16 | app.use(cors()) 17 | 18 | 19 | 20 | app.get('/', (_, res) => { 21 | res.redirect('/configure') 22 | res.end(); 23 | }); 24 | 25 | 26 | app.get('/:configuration?/configure', (_, res) => { 27 | res.setHeader('Cache-Control', 'max-age=86400,staleRevalidate=stale-while-revalidate, staleError=stale-if-error, public'); 28 | res.setHeader('content-type', 'text/html'); 29 | res.sendFile(path.join(__dirname, 'vue', 'dist', 'index.html')); 30 | }); 31 | 32 | 33 | app.get('/manifest.json', (_, res) => { 34 | res.setHeader('Cache-Control', 'max-age=86400, public'); 35 | res.setHeader('Content-Type', 'application/json'); 36 | manifest.catalogs = []; 37 | manifest.behaviorHints.configurationRequired = true; 38 | res.send(manifest); 39 | res.end(); 40 | }); 41 | 42 | 43 | app.get('/:configuration/manifest.json', (req, res) => { 44 | //let manifesto = manifest; 45 | manifest.catalogs = []; 46 | configuration = atob(req.params.configuration) 47 | let { providors, costume, costumeLists } = iptv.ConfigCache(req.params.configuration) 48 | if (costume) { 49 | for (let i = 0; i < costume.length; i++) { 50 | let [id, name, url] = costume[i].split(":") 51 | manifest.catalogs.push({ 52 | "type": "tv", 53 | 54 | "id": "stremio_iptv_id:" + id, 55 | 56 | "name": name, 57 | 58 | extra: [{ name: "search", isRequired: false }] 59 | }); 60 | }; 61 | } 62 | if (providors) 63 | for (let i = 0; i < providors.length; i++) { 64 | manifest.catalogs.push({ 65 | "type": "tv", 66 | 67 | "id": "stremio_iptv_id:" + providors[i], 68 | 69 | "name": regions[providors[i]].name, 70 | 71 | extra: [{ name: "search", isRequired: false }] 72 | }); 73 | }; 74 | 75 | //console.log(catalog) 76 | //manifesto.catalogs = catalog; 77 | console.log(manifest.catalogs) 78 | manifest.behaviorHints.configurationRequired = false; 79 | res.setHeader('Cache-Control', 'max-age=86400,staleRevalidate=stale-while-revalidate, staleError=stale-if-error, public'); 80 | res.setHeader('Content-Type', 'application/json'); 81 | res.send(manifest); 82 | res.end(); 83 | }); 84 | 85 | 86 | app.get('/:configuration?/:resource(catalog|meta|stream)/:type/:id/:extra?.json', (req, res) => { 87 | 88 | res.setHeader('Cache-Control', 'max-age=86400,staleRevalidate=stale-while-revalidate, staleError=stale-if-error, public'); 89 | res.setHeader('Content-Type', 'application/json'); 90 | 91 | 92 | 93 | console.log(req.params); 94 | let { configuration, resource, type, id} = req.params; 95 | let extra = Object.fromEntries(new URLSearchParams(req.params.extra)); 96 | let { providors, costume, costumeLists } = iptv.ConfigCache(configuration) 97 | console.log(extra) 98 | console.log("costume", costume) 99 | 100 | let region = id.split(":")[1]; 101 | let costumeList = costumeLists[region] ? atob(costumeLists[region].url) : ''; 102 | 103 | if (resource == "catalog") { 104 | if ((type == "tv")) { 105 | console.log('id', id) 106 | console.log("catalog", region); 107 | if(extra && extra.search){ 108 | console.log("search", extra.search); 109 | iptv.search(region, costumeList,extra.search) 110 | .then((metas) => { 111 | res.send(JSON.stringify({ metas })); 112 | res.end(); 113 | }).catch(error => console.error(error)); 114 | }else{ 115 | iptv.catalog(region, costumeList) 116 | .then((metas) => { 117 | res.send(JSON.stringify({ metas })); 118 | res.end(); 119 | }).catch(error => console.error(error)); 120 | } 121 | } 122 | } 123 | else if (resource == "meta") { 124 | if ((type == "tv")) { 125 | console.log("meta", id); 126 | iptv.meta(id, costumeList) 127 | .then((meta) => { 128 | console.log(meta) 129 | res.send(JSON.stringify({ meta })); 130 | res.end(); 131 | }).catch(error => console.error(error)); 132 | } 133 | } 134 | 135 | else if (resource == "stream") { 136 | if ((type == "tv")) { 137 | console.log("stream", id); 138 | iptv.stream(id, costumeList) 139 | .then((stream) => { 140 | console.log(stream) 141 | res.send(JSON.stringify({ streams: stream })); 142 | res.end(); 143 | }).catch(error => console.error(error)); 144 | } 145 | } else { 146 | res.end(); 147 | } 148 | 149 | }) 150 | 151 | module.exports = app 152 | -------------------------------------------------------------------------------- /iptv.js: -------------------------------------------------------------------------------- 1 | const parser = require('iptv-playlist-parser'); 2 | const axios = require('axios').default; 3 | const NodeCache = require("node-cache"); 4 | const cache = new NodeCache({ stdTTL: 3600, checkperiod: 600 }); 5 | const configCache = new NodeCache({ stdTTL: 3600, checkperiod: 600 }); 6 | const regions = require('./regions.json'); 7 | 8 | function ConfigCache(config) { 9 | if (config !== undefined) { 10 | 11 | var configuration = configCache.get(config); 12 | if (!configuration || configuration == undefined) { 13 | config = atob(config) 14 | var [providors, costume] = config.split('|'); 15 | var costumeLists = {}; 16 | providors = providors.split('='); 17 | costume = costume.split('='); 18 | 19 | if (providors && providors[1] && providors[1].length>1) { 20 | providors = providors[1].split(','); 21 | providors = [...new Set(providors)]; 22 | } else { 23 | providors = null; 24 | } 25 | if (costume && costume[1] && costume[1].length>1) { 26 | costume = costume[1].split(','); 27 | for (let i = 0; i < costume.length; i++) { 28 | let [id, name, url] = costume[i].split(":") 29 | costumeLists[id] = { id: id, name: name, url: url }; 30 | }; 31 | } else { 32 | costume = null; 33 | } 34 | configuration = { providors: providors, costume: costume, costumeLists: costumeLists } 35 | if (configuration && configuration.length > 1) { 36 | console.log('caching config ...') 37 | configCache.set(config, configuration); 38 | console.log('done caching config') 39 | } 40 | } else { 41 | console.log('config already cached') 42 | } 43 | return configuration 44 | } 45 | } 46 | 47 | async function getm3u(region) { 48 | console.log("region", region); 49 | if (regions[region]) { 50 | url = regions[region].url; 51 | return await m3ulist(url, region) 52 | } 53 | return 54 | } 55 | function m3ulist(url, region) { 56 | if (url) { 57 | console.log(url) 58 | return axios.get(url, { timeout: 10000 }).then(data => { 59 | var array = (parser.parse(data.data)).items; 60 | var arr = []; 61 | for (i = 0; i < array.length; i++) { 62 | 63 | let tv = { 64 | id: "stremio_iptv_id:" + region + ":" + i, 65 | name: array[i].name, 66 | type: "tv", 67 | poster: array[i].tvg.logo, 68 | posterShape: 'landscape', 69 | url: array[i].url, 70 | background: array[i].tvg.logo 71 | } 72 | if (array[i].http['user-agent'] || array[i].http['http-referrer']) { 73 | tv.behaviorHints = {}; 74 | tv.behaviorHints.notWebReady = true; 75 | tv.behaviorHints.proxyHeaders = {}; 76 | tv.behaviorHints.proxyHeaders.request = {}; 77 | if (array[i].http['http-referrer']) { 78 | tv.behaviorHints.proxyHeaders.request['referrer'] = array[i].http['http-referrer']; 79 | } 80 | if (array[i].http['user-agent']) { 81 | tv.behaviorHints.proxyHeaders.request['User-Agent'] = array[i].http['user-agent']; 82 | } 83 | //console.log(tv); 84 | } 85 | 86 | arr.push(tv); 87 | } 88 | return arr 89 | }).catch(error => { console.error(error) }) 90 | } else { 91 | return; 92 | } 93 | } 94 | async function get_iptv(region, url) { 95 | if (url) { 96 | var iptv = cache.get(url); 97 | if (!iptv || iptv == undefined) { 98 | var iptv = await (m3ulist(url, region)); 99 | if (iptv && iptv.length > 1) { 100 | console.log('caching ...') 101 | cache.set(url, iptv); 102 | console.log('done caching') 103 | } 104 | } else { 105 | console.log('already cached') 106 | } 107 | } else { 108 | var iptv = cache.get(region); 109 | if (!iptv || iptv == undefined) { 110 | var iptv = await (getm3u(region)); 111 | if (iptv && iptv.length > 1) { 112 | console.log('caching ...') 113 | cache.set(region, iptv); 114 | console.log('done caching') 115 | } 116 | } else { 117 | console.log('already cached') 118 | } 119 | } 120 | return iptv; 121 | } 122 | 123 | async function catalog(region, url) { 124 | console.log("region", region, "url", url) 125 | const metas = []; 126 | var iptv = await get_iptv(region, url).catch(error => console.error(error)); 127 | for (let i = 0; i < iptv.length; i++) { 128 | metas.push({ 129 | id: iptv[i].id, 130 | name: iptv[i].name, 131 | type: "tv", 132 | poster: iptv[i].poster, 133 | posterShape: 'landscape' 134 | }); 135 | } 136 | return metas; 137 | } 138 | 139 | async function search(region, url,param) { 140 | try{ 141 | console.log("region", region, "url", url) 142 | const metas = []; 143 | var iptv = await get_iptv(region, url).catch(error => console.error(error)); 144 | if(!iptv) throw "error getting data"; 145 | 146 | for (let i = 0; i < iptv.length; i++) { 147 | if(iptv[i].name.toLowerCase().match(param.toLowerCase())){ 148 | metas.push({ 149 | id: iptv[i].id, 150 | name: iptv[i].name, 151 | type: "tv", 152 | poster: iptv[i].poster, 153 | posterShape: 'landscape' 154 | }); 155 | } 156 | } 157 | return metas; 158 | } 159 | catch(e){ 160 | console.error(e); 161 | } 162 | } 163 | 164 | async function meta(id, url) { 165 | var region = id.split(":")[1]; 166 | id = id.split(":")[2]; 167 | console.log(region, id) 168 | var iptv = (await get_iptv(region, url).catch(error => console.error(error)))[id]; 169 | let meta = { 170 | name: iptv.name, 171 | id: iptv.id, 172 | type: "tv", 173 | background: iptv.background 174 | }; 175 | return meta; 176 | } 177 | 178 | async function stream(id, url) { 179 | var region = id.split(":")[1]; 180 | id = id.split(":")[2]; 181 | var iptv = (await get_iptv(region, url).catch(error => console.error(error)))[id]; 182 | 183 | let stream = { 184 | name: iptv.name, 185 | description: "IPTV by dexter21767", 186 | url: iptv.url 187 | }; 188 | if (iptv["behaviorHints"]) { 189 | stream["behaviorHints"] = iptv["behaviorHints"]; 190 | }else if(region.match("max")){ 191 | // stream["behaviorHints"]= {"notWebReady":true,"proxyHeaders":{"request":{'User-Agent':"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36"}}}; 192 | } 193 | return [stream]; 194 | } 195 | 196 | module.exports = { 197 | catalog, 198 | search, 199 | meta, 200 | stream, 201 | ConfigCache 202 | }; 203 | -------------------------------------------------------------------------------- /manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "community.stremio-iptv", 3 | "version": "0.1.1", 4 | "name": "Stremio IPTV by dexter21767", 5 | "description": "Addon for International (country specific) TV channels! Huge thanks for iptv.org and u/RootByte!", 6 | "logo": "https://i.imgur.com/982WZT3.png", 7 | "background":"https://github.com/Stremio/stremio-art/raw/main/originals/Jesiel%20Rocha%20Lofhagen.png", 8 | "contactEmail": "ahmidiyasser@gmail.com", 9 | 10 | "catalogs": [], 11 | "resources": [ 12 | { 13 | "name": "stream", 14 | "types": ["tv"], 15 | "idPrefixes": ["stremio_iptv_id:"] 16 | }, 17 | { 18 | "name": "meta", 19 | "types": ["tv"], 20 | "idPrefixes": ["stremio_iptv_id:"] 21 | } 22 | ], 23 | "types": ["tv"], 24 | "behaviorHints": { 25 | "configurable": true, 26 | "configurationRequired": true 27 | } 28 | } -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "community.stremio-iptv", 3 | "version": "0.1.0", 4 | "lockfileVersion": 2, 5 | "requires": true, 6 | "packages": { 7 | "": { 8 | "name": "community.stremio-iptv", 9 | "version": "0.1.0", 10 | "dependencies": { 11 | "axios": "^0.27.2", 12 | "cors": "^2.8.5", 13 | "express": "^4.18.1", 14 | "iptv-playlist-parser": "^0.12.1", 15 | "node-cache": "^5.1.2", 16 | "stremio-addon-sdk": "latest" 17 | }, 18 | "devDependencies": { 19 | "nodemon": "^2.0.19" 20 | } 21 | }, 22 | "node_modules/abbrev": { 23 | "version": "1.1.1", 24 | "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", 25 | "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", 26 | "dev": true 27 | }, 28 | "node_modules/accepts": { 29 | "version": "1.3.8", 30 | "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", 31 | "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", 32 | "dependencies": { 33 | "mime-types": "~2.1.34", 34 | "negotiator": "0.6.3" 35 | }, 36 | "engines": { 37 | "node": ">= 0.6" 38 | } 39 | }, 40 | "node_modules/ansi-escapes": { 41 | "version": "3.2.0", 42 | "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", 43 | "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", 44 | "engines": { 45 | "node": ">=4" 46 | } 47 | }, 48 | "node_modules/ansi-regex": { 49 | "version": "4.1.1", 50 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", 51 | "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", 52 | "engines": { 53 | "node": ">=6" 54 | } 55 | }, 56 | "node_modules/ansi-styles": { 57 | "version": "3.2.1", 58 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", 59 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", 60 | "dependencies": { 61 | "color-convert": "^1.9.0" 62 | }, 63 | "engines": { 64 | "node": ">=4" 65 | } 66 | }, 67 | "node_modules/anymatch": { 68 | "version": "3.1.2", 69 | "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", 70 | "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", 71 | "dev": true, 72 | "dependencies": { 73 | "normalize-path": "^3.0.0", 74 | "picomatch": "^2.0.4" 75 | }, 76 | "engines": { 77 | "node": ">= 8" 78 | } 79 | }, 80 | "node_modules/array-flatten": { 81 | "version": "1.1.1", 82 | "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", 83 | "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" 84 | }, 85 | "node_modules/asynckit": { 86 | "version": "0.4.0", 87 | "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", 88 | "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" 89 | }, 90 | "node_modules/axios": { 91 | "version": "0.27.2", 92 | "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", 93 | "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", 94 | "dependencies": { 95 | "follow-redirects": "^1.14.9", 96 | "form-data": "^4.0.0" 97 | } 98 | }, 99 | "node_modules/balanced-match": { 100 | "version": "1.0.2", 101 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", 102 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", 103 | "dev": true 104 | }, 105 | "node_modules/binary-extensions": { 106 | "version": "2.2.0", 107 | "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", 108 | "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", 109 | "dev": true, 110 | "engines": { 111 | "node": ">=8" 112 | } 113 | }, 114 | "node_modules/body-parser": { 115 | "version": "1.20.0", 116 | "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz", 117 | "integrity": "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==", 118 | "dependencies": { 119 | "bytes": "3.1.2", 120 | "content-type": "~1.0.4", 121 | "debug": "2.6.9", 122 | "depd": "2.0.0", 123 | "destroy": "1.2.0", 124 | "http-errors": "2.0.0", 125 | "iconv-lite": "0.4.24", 126 | "on-finished": "2.4.1", 127 | "qs": "6.10.3", 128 | "raw-body": "2.5.1", 129 | "type-is": "~1.6.18", 130 | "unpipe": "1.0.0" 131 | }, 132 | "engines": { 133 | "node": ">= 0.8", 134 | "npm": "1.2.8000 || >= 1.4.16" 135 | } 136 | }, 137 | "node_modules/brace-expansion": { 138 | "version": "1.1.11", 139 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 140 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 141 | "dev": true, 142 | "dependencies": { 143 | "balanced-match": "^1.0.0", 144 | "concat-map": "0.0.1" 145 | } 146 | }, 147 | "node_modules/braces": { 148 | "version": "3.0.2", 149 | "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", 150 | "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", 151 | "dev": true, 152 | "dependencies": { 153 | "fill-range": "^7.0.1" 154 | }, 155 | "engines": { 156 | "node": ">=8" 157 | } 158 | }, 159 | "node_modules/bytes": { 160 | "version": "3.1.2", 161 | "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", 162 | "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", 163 | "engines": { 164 | "node": ">= 0.8" 165 | } 166 | }, 167 | "node_modules/call-bind": { 168 | "version": "1.0.2", 169 | "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", 170 | "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", 171 | "dependencies": { 172 | "function-bind": "^1.1.1", 173 | "get-intrinsic": "^1.0.2" 174 | }, 175 | "funding": { 176 | "url": "https://github.com/sponsors/ljharb" 177 | } 178 | }, 179 | "node_modules/chalk": { 180 | "version": "2.4.2", 181 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", 182 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", 183 | "dependencies": { 184 | "ansi-styles": "^3.2.1", 185 | "escape-string-regexp": "^1.0.5", 186 | "supports-color": "^5.3.0" 187 | }, 188 | "engines": { 189 | "node": ">=4" 190 | } 191 | }, 192 | "node_modules/chardet": { 193 | "version": "0.7.0", 194 | "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", 195 | "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==" 196 | }, 197 | "node_modules/chokidar": { 198 | "version": "3.5.3", 199 | "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", 200 | "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", 201 | "dev": true, 202 | "funding": [ 203 | { 204 | "type": "individual", 205 | "url": "https://paulmillr.com/funding/" 206 | } 207 | ], 208 | "dependencies": { 209 | "anymatch": "~3.1.2", 210 | "braces": "~3.0.2", 211 | "glob-parent": "~5.1.2", 212 | "is-binary-path": "~2.1.0", 213 | "is-glob": "~4.0.1", 214 | "normalize-path": "~3.0.0", 215 | "readdirp": "~3.6.0" 216 | }, 217 | "engines": { 218 | "node": ">= 8.10.0" 219 | }, 220 | "optionalDependencies": { 221 | "fsevents": "~2.3.2" 222 | } 223 | }, 224 | "node_modules/chokidar/node_modules/is-extglob": { 225 | "version": "2.1.1", 226 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", 227 | "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", 228 | "dev": true, 229 | "engines": { 230 | "node": ">=0.10.0" 231 | } 232 | }, 233 | "node_modules/chokidar/node_modules/is-glob": { 234 | "version": "4.0.3", 235 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", 236 | "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", 237 | "dev": true, 238 | "dependencies": { 239 | "is-extglob": "^2.1.1" 240 | }, 241 | "engines": { 242 | "node": ">=0.10.0" 243 | } 244 | }, 245 | "node_modules/cli-cursor": { 246 | "version": "2.1.0", 247 | "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", 248 | "integrity": "sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==", 249 | "dependencies": { 250 | "restore-cursor": "^2.0.0" 251 | }, 252 | "engines": { 253 | "node": ">=4" 254 | } 255 | }, 256 | "node_modules/cli-width": { 257 | "version": "2.2.1", 258 | "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", 259 | "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==" 260 | }, 261 | "node_modules/clone": { 262 | "version": "2.1.2", 263 | "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", 264 | "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", 265 | "engines": { 266 | "node": ">=0.8" 267 | } 268 | }, 269 | "node_modules/color-convert": { 270 | "version": "1.9.3", 271 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", 272 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", 273 | "dependencies": { 274 | "color-name": "1.1.3" 275 | } 276 | }, 277 | "node_modules/color-name": { 278 | "version": "1.1.3", 279 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", 280 | "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" 281 | }, 282 | "node_modules/combined-stream": { 283 | "version": "1.0.8", 284 | "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", 285 | "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", 286 | "dependencies": { 287 | "delayed-stream": "~1.0.0" 288 | }, 289 | "engines": { 290 | "node": ">= 0.8" 291 | } 292 | }, 293 | "node_modules/concat-map": { 294 | "version": "0.0.1", 295 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 296 | "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", 297 | "dev": true 298 | }, 299 | "node_modules/content-disposition": { 300 | "version": "0.5.4", 301 | "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", 302 | "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", 303 | "dependencies": { 304 | "safe-buffer": "5.2.1" 305 | }, 306 | "engines": { 307 | "node": ">= 0.6" 308 | } 309 | }, 310 | "node_modules/content-type": { 311 | "version": "1.0.4", 312 | "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", 313 | "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", 314 | "engines": { 315 | "node": ">= 0.6" 316 | } 317 | }, 318 | "node_modules/cookie": { 319 | "version": "0.5.0", 320 | "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", 321 | "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", 322 | "engines": { 323 | "node": ">= 0.6" 324 | } 325 | }, 326 | "node_modules/cookie-signature": { 327 | "version": "1.0.6", 328 | "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", 329 | "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" 330 | }, 331 | "node_modules/cors": { 332 | "version": "2.8.5", 333 | "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", 334 | "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", 335 | "dependencies": { 336 | "object-assign": "^4", 337 | "vary": "^1" 338 | }, 339 | "engines": { 340 | "node": ">= 0.10" 341 | } 342 | }, 343 | "node_modules/debug": { 344 | "version": "2.6.9", 345 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", 346 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", 347 | "dependencies": { 348 | "ms": "2.0.0" 349 | } 350 | }, 351 | "node_modules/delayed-stream": { 352 | "version": "1.0.0", 353 | "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", 354 | "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", 355 | "engines": { 356 | "node": ">=0.4.0" 357 | } 358 | }, 359 | "node_modules/depd": { 360 | "version": "2.0.0", 361 | "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", 362 | "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", 363 | "engines": { 364 | "node": ">= 0.8" 365 | } 366 | }, 367 | "node_modules/destroy": { 368 | "version": "1.2.0", 369 | "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", 370 | "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", 371 | "engines": { 372 | "node": ">= 0.8", 373 | "npm": "1.2.8000 || >= 1.4.16" 374 | } 375 | }, 376 | "node_modules/ee-first": { 377 | "version": "1.1.1", 378 | "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", 379 | "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" 380 | }, 381 | "node_modules/encodeurl": { 382 | "version": "1.0.2", 383 | "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", 384 | "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", 385 | "engines": { 386 | "node": ">= 0.8" 387 | } 388 | }, 389 | "node_modules/escape-html": { 390 | "version": "1.0.3", 391 | "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", 392 | "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" 393 | }, 394 | "node_modules/escape-string-regexp": { 395 | "version": "1.0.5", 396 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 397 | "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", 398 | "engines": { 399 | "node": ">=0.8.0" 400 | } 401 | }, 402 | "node_modules/etag": { 403 | "version": "1.8.1", 404 | "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", 405 | "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", 406 | "engines": { 407 | "node": ">= 0.6" 408 | } 409 | }, 410 | "node_modules/express": { 411 | "version": "4.18.1", 412 | "resolved": "https://registry.npmjs.org/express/-/express-4.18.1.tgz", 413 | "integrity": "sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==", 414 | "dependencies": { 415 | "accepts": "~1.3.8", 416 | "array-flatten": "1.1.1", 417 | "body-parser": "1.20.0", 418 | "content-disposition": "0.5.4", 419 | "content-type": "~1.0.4", 420 | "cookie": "0.5.0", 421 | "cookie-signature": "1.0.6", 422 | "debug": "2.6.9", 423 | "depd": "2.0.0", 424 | "encodeurl": "~1.0.2", 425 | "escape-html": "~1.0.3", 426 | "etag": "~1.8.1", 427 | "finalhandler": "1.2.0", 428 | "fresh": "0.5.2", 429 | "http-errors": "2.0.0", 430 | "merge-descriptors": "1.0.1", 431 | "methods": "~1.1.2", 432 | "on-finished": "2.4.1", 433 | "parseurl": "~1.3.3", 434 | "path-to-regexp": "0.1.7", 435 | "proxy-addr": "~2.0.7", 436 | "qs": "6.10.3", 437 | "range-parser": "~1.2.1", 438 | "safe-buffer": "5.2.1", 439 | "send": "0.18.0", 440 | "serve-static": "1.15.0", 441 | "setprototypeof": "1.2.0", 442 | "statuses": "2.0.1", 443 | "type-is": "~1.6.18", 444 | "utils-merge": "1.0.1", 445 | "vary": "~1.1.2" 446 | }, 447 | "engines": { 448 | "node": ">= 0.10.0" 449 | } 450 | }, 451 | "node_modules/external-editor": { 452 | "version": "3.1.0", 453 | "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", 454 | "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", 455 | "dependencies": { 456 | "chardet": "^0.7.0", 457 | "iconv-lite": "^0.4.24", 458 | "tmp": "^0.0.33" 459 | }, 460 | "engines": { 461 | "node": ">=4" 462 | } 463 | }, 464 | "node_modules/figures": { 465 | "version": "2.0.0", 466 | "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", 467 | "integrity": "sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==", 468 | "dependencies": { 469 | "escape-string-regexp": "^1.0.5" 470 | }, 471 | "engines": { 472 | "node": ">=4" 473 | } 474 | }, 475 | "node_modules/fill-range": { 476 | "version": "7.0.1", 477 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", 478 | "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", 479 | "dev": true, 480 | "dependencies": { 481 | "to-regex-range": "^5.0.1" 482 | }, 483 | "engines": { 484 | "node": ">=8" 485 | } 486 | }, 487 | "node_modules/finalhandler": { 488 | "version": "1.2.0", 489 | "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", 490 | "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", 491 | "dependencies": { 492 | "debug": "2.6.9", 493 | "encodeurl": "~1.0.2", 494 | "escape-html": "~1.0.3", 495 | "on-finished": "2.4.1", 496 | "parseurl": "~1.3.3", 497 | "statuses": "2.0.1", 498 | "unpipe": "~1.0.0" 499 | }, 500 | "engines": { 501 | "node": ">= 0.8" 502 | } 503 | }, 504 | "node_modules/follow-redirects": { 505 | "version": "1.15.1", 506 | "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.1.tgz", 507 | "integrity": "sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA==", 508 | "funding": [ 509 | { 510 | "type": "individual", 511 | "url": "https://github.com/sponsors/RubenVerborgh" 512 | } 513 | ], 514 | "engines": { 515 | "node": ">=4.0" 516 | }, 517 | "peerDependenciesMeta": { 518 | "debug": { 519 | "optional": true 520 | } 521 | } 522 | }, 523 | "node_modules/form-data": { 524 | "version": "4.0.0", 525 | "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", 526 | "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", 527 | "dependencies": { 528 | "asynckit": "^0.4.0", 529 | "combined-stream": "^1.0.8", 530 | "mime-types": "^2.1.12" 531 | }, 532 | "engines": { 533 | "node": ">= 6" 534 | } 535 | }, 536 | "node_modules/forwarded": { 537 | "version": "0.2.0", 538 | "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", 539 | "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", 540 | "engines": { 541 | "node": ">= 0.6" 542 | } 543 | }, 544 | "node_modules/fresh": { 545 | "version": "0.5.2", 546 | "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", 547 | "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", 548 | "engines": { 549 | "node": ">= 0.6" 550 | } 551 | }, 552 | "node_modules/fsevents": { 553 | "version": "2.3.2", 554 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", 555 | "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", 556 | "dev": true, 557 | "hasInstallScript": true, 558 | "optional": true, 559 | "os": [ 560 | "darwin" 561 | ], 562 | "engines": { 563 | "node": "^8.16.0 || ^10.6.0 || >=11.0.0" 564 | } 565 | }, 566 | "node_modules/function-bind": { 567 | "version": "1.1.1", 568 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", 569 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" 570 | }, 571 | "node_modules/get-intrinsic": { 572 | "version": "1.1.2", 573 | "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.2.tgz", 574 | "integrity": "sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA==", 575 | "dependencies": { 576 | "function-bind": "^1.1.1", 577 | "has": "^1.0.3", 578 | "has-symbols": "^1.0.3" 579 | }, 580 | "funding": { 581 | "url": "https://github.com/sponsors/ljharb" 582 | } 583 | }, 584 | "node_modules/glob-parent": { 585 | "version": "5.1.2", 586 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", 587 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", 588 | "dev": true, 589 | "dependencies": { 590 | "is-glob": "^4.0.1" 591 | }, 592 | "engines": { 593 | "node": ">= 6" 594 | } 595 | }, 596 | "node_modules/glob-parent/node_modules/is-extglob": { 597 | "version": "2.1.1", 598 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", 599 | "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", 600 | "dev": true, 601 | "engines": { 602 | "node": ">=0.10.0" 603 | } 604 | }, 605 | "node_modules/glob-parent/node_modules/is-glob": { 606 | "version": "4.0.3", 607 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", 608 | "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", 609 | "dev": true, 610 | "dependencies": { 611 | "is-extglob": "^2.1.1" 612 | }, 613 | "engines": { 614 | "node": ">=0.10.0" 615 | } 616 | }, 617 | "node_modules/has": { 618 | "version": "1.0.3", 619 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", 620 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", 621 | "dependencies": { 622 | "function-bind": "^1.1.1" 623 | }, 624 | "engines": { 625 | "node": ">= 0.4.0" 626 | } 627 | }, 628 | "node_modules/has-flag": { 629 | "version": "3.0.0", 630 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", 631 | "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", 632 | "engines": { 633 | "node": ">=4" 634 | } 635 | }, 636 | "node_modules/has-symbols": { 637 | "version": "1.0.3", 638 | "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", 639 | "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", 640 | "engines": { 641 | "node": ">= 0.4" 642 | }, 643 | "funding": { 644 | "url": "https://github.com/sponsors/ljharb" 645 | } 646 | }, 647 | "node_modules/http-errors": { 648 | "version": "2.0.0", 649 | "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", 650 | "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", 651 | "dependencies": { 652 | "depd": "2.0.0", 653 | "inherits": "2.0.4", 654 | "setprototypeof": "1.2.0", 655 | "statuses": "2.0.1", 656 | "toidentifier": "1.0.1" 657 | }, 658 | "engines": { 659 | "node": ">= 0.8" 660 | } 661 | }, 662 | "node_modules/iconv-lite": { 663 | "version": "0.4.24", 664 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", 665 | "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", 666 | "dependencies": { 667 | "safer-buffer": ">= 2.1.2 < 3" 668 | }, 669 | "engines": { 670 | "node": ">=0.10.0" 671 | } 672 | }, 673 | "node_modules/ignore-by-default": { 674 | "version": "1.0.1", 675 | "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", 676 | "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==", 677 | "dev": true 678 | }, 679 | "node_modules/inherits": { 680 | "version": "2.0.4", 681 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 682 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" 683 | }, 684 | "node_modules/inquirer": { 685 | "version": "6.5.2", 686 | "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz", 687 | "integrity": "sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==", 688 | "dependencies": { 689 | "ansi-escapes": "^3.2.0", 690 | "chalk": "^2.4.2", 691 | "cli-cursor": "^2.1.0", 692 | "cli-width": "^2.0.0", 693 | "external-editor": "^3.0.3", 694 | "figures": "^2.0.0", 695 | "lodash": "^4.17.12", 696 | "mute-stream": "0.0.7", 697 | "run-async": "^2.2.0", 698 | "rxjs": "^6.4.0", 699 | "string-width": "^2.1.0", 700 | "strip-ansi": "^5.1.0", 701 | "through": "^2.3.6" 702 | }, 703 | "engines": { 704 | "node": ">=6.0.0" 705 | } 706 | }, 707 | "node_modules/ipaddr.js": { 708 | "version": "1.9.1", 709 | "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", 710 | "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", 711 | "engines": { 712 | "node": ">= 0.10" 713 | } 714 | }, 715 | "node_modules/iptv-playlist-parser": { 716 | "version": "0.12.1", 717 | "resolved": "https://registry.npmjs.org/iptv-playlist-parser/-/iptv-playlist-parser-0.12.1.tgz", 718 | "integrity": "sha512-N0sJFsV8+FBZiR/kl7F5YfFQsUxFXrABP9+xyHPFEQjHJmXSBbvyHLlaW0GjROTd+iXVHA9glEeEwlzJimt5NA==", 719 | "dependencies": { 720 | "is-valid-path": "^0.1.1", 721 | "validator": "^13.7.0" 722 | } 723 | }, 724 | "node_modules/is-binary-path": { 725 | "version": "2.1.0", 726 | "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", 727 | "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", 728 | "dev": true, 729 | "dependencies": { 730 | "binary-extensions": "^2.0.0" 731 | }, 732 | "engines": { 733 | "node": ">=8" 734 | } 735 | }, 736 | "node_modules/is-extglob": { 737 | "version": "1.0.0", 738 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", 739 | "integrity": "sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==", 740 | "engines": { 741 | "node": ">=0.10.0" 742 | } 743 | }, 744 | "node_modules/is-fullwidth-code-point": { 745 | "version": "2.0.0", 746 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", 747 | "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", 748 | "engines": { 749 | "node": ">=4" 750 | } 751 | }, 752 | "node_modules/is-glob": { 753 | "version": "2.0.1", 754 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", 755 | "integrity": "sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg==", 756 | "dependencies": { 757 | "is-extglob": "^1.0.0" 758 | }, 759 | "engines": { 760 | "node": ">=0.10.0" 761 | } 762 | }, 763 | "node_modules/is-invalid-path": { 764 | "version": "0.1.0", 765 | "resolved": "https://registry.npmjs.org/is-invalid-path/-/is-invalid-path-0.1.0.tgz", 766 | "integrity": "sha512-aZMG0T3F34mTg4eTdszcGXx54oiZ4NtHSft3hWNJMGJXUUqdIj3cOZuHcU0nCWWcY3jd7yRe/3AEm3vSNTpBGQ==", 767 | "dependencies": { 768 | "is-glob": "^2.0.0" 769 | }, 770 | "engines": { 771 | "node": ">=0.10.0" 772 | } 773 | }, 774 | "node_modules/is-number": { 775 | "version": "7.0.0", 776 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", 777 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", 778 | "dev": true, 779 | "engines": { 780 | "node": ">=0.12.0" 781 | } 782 | }, 783 | "node_modules/is-valid-path": { 784 | "version": "0.1.1", 785 | "resolved": "https://registry.npmjs.org/is-valid-path/-/is-valid-path-0.1.1.tgz", 786 | "integrity": "sha512-+kwPrVDu9Ms03L90Qaml+79+6DZHqHyRoANI6IsZJ/g8frhnfchDOBCa0RbQ6/kdHt5CS5OeIEyrYznNuVN+8A==", 787 | "dependencies": { 788 | "is-invalid-path": "^0.1.0" 789 | }, 790 | "engines": { 791 | "node": ">=0.10.0" 792 | } 793 | }, 794 | "node_modules/is-wsl": { 795 | "version": "1.1.0", 796 | "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", 797 | "integrity": "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==", 798 | "engines": { 799 | "node": ">=4" 800 | } 801 | }, 802 | "node_modules/lodash": { 803 | "version": "4.17.21", 804 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", 805 | "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" 806 | }, 807 | "node_modules/media-typer": { 808 | "version": "0.3.0", 809 | "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", 810 | "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", 811 | "engines": { 812 | "node": ">= 0.6" 813 | } 814 | }, 815 | "node_modules/merge-descriptors": { 816 | "version": "1.0.1", 817 | "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", 818 | "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" 819 | }, 820 | "node_modules/methods": { 821 | "version": "1.1.2", 822 | "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", 823 | "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", 824 | "engines": { 825 | "node": ">= 0.6" 826 | } 827 | }, 828 | "node_modules/mime": { 829 | "version": "1.6.0", 830 | "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", 831 | "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", 832 | "bin": { 833 | "mime": "cli.js" 834 | }, 835 | "engines": { 836 | "node": ">=4" 837 | } 838 | }, 839 | "node_modules/mime-db": { 840 | "version": "1.52.0", 841 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", 842 | "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", 843 | "engines": { 844 | "node": ">= 0.6" 845 | } 846 | }, 847 | "node_modules/mime-types": { 848 | "version": "2.1.35", 849 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", 850 | "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", 851 | "dependencies": { 852 | "mime-db": "1.52.0" 853 | }, 854 | "engines": { 855 | "node": ">= 0.6" 856 | } 857 | }, 858 | "node_modules/mimic-fn": { 859 | "version": "1.2.0", 860 | "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", 861 | "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", 862 | "engines": { 863 | "node": ">=4" 864 | } 865 | }, 866 | "node_modules/minimatch": { 867 | "version": "3.1.2", 868 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", 869 | "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", 870 | "dev": true, 871 | "dependencies": { 872 | "brace-expansion": "^1.1.7" 873 | }, 874 | "engines": { 875 | "node": "*" 876 | } 877 | }, 878 | "node_modules/minimist": { 879 | "version": "1.2.6", 880 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", 881 | "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" 882 | }, 883 | "node_modules/mkdirp": { 884 | "version": "0.5.6", 885 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", 886 | "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", 887 | "dependencies": { 888 | "minimist": "^1.2.6" 889 | }, 890 | "bin": { 891 | "mkdirp": "bin/cmd.js" 892 | } 893 | }, 894 | "node_modules/ms": { 895 | "version": "2.0.0", 896 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 897 | "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" 898 | }, 899 | "node_modules/mute-stream": { 900 | "version": "0.0.7", 901 | "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", 902 | "integrity": "sha512-r65nCZhrbXXb6dXOACihYApHw2Q6pV0M3V0PSxd74N0+D8nzAdEAITq2oAjA1jVnKI+tGvEBUpqiMh0+rW6zDQ==" 903 | }, 904 | "node_modules/negotiator": { 905 | "version": "0.6.3", 906 | "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", 907 | "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", 908 | "engines": { 909 | "node": ">= 0.6" 910 | } 911 | }, 912 | "node_modules/node-cache": { 913 | "version": "5.1.2", 914 | "resolved": "https://registry.npmjs.org/node-cache/-/node-cache-5.1.2.tgz", 915 | "integrity": "sha512-t1QzWwnk4sjLWaQAS8CHgOJ+RAfmHpxFWmc36IWTiWHQfs0w5JDMBS1b1ZxQteo0vVVuWJvIUKHDkkeK7vIGCg==", 916 | "dependencies": { 917 | "clone": "2.x" 918 | }, 919 | "engines": { 920 | "node": ">= 8.0.0" 921 | } 922 | }, 923 | "node_modules/node-fetch": { 924 | "version": "2.6.7", 925 | "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", 926 | "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", 927 | "dependencies": { 928 | "whatwg-url": "^5.0.0" 929 | }, 930 | "engines": { 931 | "node": "4.x || >=6.0.0" 932 | }, 933 | "peerDependencies": { 934 | "encoding": "^0.1.0" 935 | }, 936 | "peerDependenciesMeta": { 937 | "encoding": { 938 | "optional": true 939 | } 940 | } 941 | }, 942 | "node_modules/nodemon": { 943 | "version": "2.0.19", 944 | "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.19.tgz", 945 | "integrity": "sha512-4pv1f2bMDj0Eeg/MhGqxrtveeQ5/G/UVe9iO6uTZzjnRluSA4PVWf8CW99LUPwGB3eNIA7zUFoP77YuI7hOc0A==", 946 | "dev": true, 947 | "hasInstallScript": true, 948 | "dependencies": { 949 | "chokidar": "^3.5.2", 950 | "debug": "^3.2.7", 951 | "ignore-by-default": "^1.0.1", 952 | "minimatch": "^3.0.4", 953 | "pstree.remy": "^1.1.8", 954 | "semver": "^5.7.1", 955 | "simple-update-notifier": "^1.0.7", 956 | "supports-color": "^5.5.0", 957 | "touch": "^3.1.0", 958 | "undefsafe": "^2.0.5" 959 | }, 960 | "bin": { 961 | "nodemon": "bin/nodemon.js" 962 | }, 963 | "engines": { 964 | "node": ">=8.10.0" 965 | }, 966 | "funding": { 967 | "type": "opencollective", 968 | "url": "https://opencollective.com/nodemon" 969 | } 970 | }, 971 | "node_modules/nodemon/node_modules/debug": { 972 | "version": "3.2.7", 973 | "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", 974 | "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", 975 | "dev": true, 976 | "dependencies": { 977 | "ms": "^2.1.1" 978 | } 979 | }, 980 | "node_modules/nodemon/node_modules/ms": { 981 | "version": "2.1.3", 982 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", 983 | "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", 984 | "dev": true 985 | }, 986 | "node_modules/nopt": { 987 | "version": "1.0.10", 988 | "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", 989 | "integrity": "sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==", 990 | "dev": true, 991 | "dependencies": { 992 | "abbrev": "1" 993 | }, 994 | "bin": { 995 | "nopt": "bin/nopt.js" 996 | }, 997 | "engines": { 998 | "node": "*" 999 | } 1000 | }, 1001 | "node_modules/normalize-path": { 1002 | "version": "3.0.0", 1003 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", 1004 | "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", 1005 | "dev": true, 1006 | "engines": { 1007 | "node": ">=0.10.0" 1008 | } 1009 | }, 1010 | "node_modules/object-assign": { 1011 | "version": "4.1.1", 1012 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", 1013 | "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", 1014 | "engines": { 1015 | "node": ">=0.10.0" 1016 | } 1017 | }, 1018 | "node_modules/object-inspect": { 1019 | "version": "1.12.2", 1020 | "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", 1021 | "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", 1022 | "funding": { 1023 | "url": "https://github.com/sponsors/ljharb" 1024 | } 1025 | }, 1026 | "node_modules/on-finished": { 1027 | "version": "2.4.1", 1028 | "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", 1029 | "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", 1030 | "dependencies": { 1031 | "ee-first": "1.1.1" 1032 | }, 1033 | "engines": { 1034 | "node": ">= 0.8" 1035 | } 1036 | }, 1037 | "node_modules/onetime": { 1038 | "version": "2.0.1", 1039 | "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", 1040 | "integrity": "sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==", 1041 | "dependencies": { 1042 | "mimic-fn": "^1.0.0" 1043 | }, 1044 | "engines": { 1045 | "node": ">=4" 1046 | } 1047 | }, 1048 | "node_modules/opn": { 1049 | "version": "5.5.0", 1050 | "resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz", 1051 | "integrity": "sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==", 1052 | "dependencies": { 1053 | "is-wsl": "^1.1.0" 1054 | }, 1055 | "engines": { 1056 | "node": ">=4" 1057 | } 1058 | }, 1059 | "node_modules/os-tmpdir": { 1060 | "version": "1.0.2", 1061 | "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", 1062 | "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", 1063 | "engines": { 1064 | "node": ">=0.10.0" 1065 | } 1066 | }, 1067 | "node_modules/parseurl": { 1068 | "version": "1.3.3", 1069 | "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", 1070 | "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", 1071 | "engines": { 1072 | "node": ">= 0.8" 1073 | } 1074 | }, 1075 | "node_modules/path-to-regexp": { 1076 | "version": "0.1.7", 1077 | "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", 1078 | "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" 1079 | }, 1080 | "node_modules/picomatch": { 1081 | "version": "2.3.1", 1082 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", 1083 | "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", 1084 | "dev": true, 1085 | "engines": { 1086 | "node": ">=8.6" 1087 | }, 1088 | "funding": { 1089 | "url": "https://github.com/sponsors/jonschlinkert" 1090 | } 1091 | }, 1092 | "node_modules/proxy-addr": { 1093 | "version": "2.0.7", 1094 | "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", 1095 | "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", 1096 | "dependencies": { 1097 | "forwarded": "0.2.0", 1098 | "ipaddr.js": "1.9.1" 1099 | }, 1100 | "engines": { 1101 | "node": ">= 0.10" 1102 | } 1103 | }, 1104 | "node_modules/pstree.remy": { 1105 | "version": "1.1.8", 1106 | "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", 1107 | "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", 1108 | "dev": true 1109 | }, 1110 | "node_modules/qs": { 1111 | "version": "6.10.3", 1112 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", 1113 | "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", 1114 | "dependencies": { 1115 | "side-channel": "^1.0.4" 1116 | }, 1117 | "engines": { 1118 | "node": ">=0.6" 1119 | }, 1120 | "funding": { 1121 | "url": "https://github.com/sponsors/ljharb" 1122 | } 1123 | }, 1124 | "node_modules/range-parser": { 1125 | "version": "1.2.1", 1126 | "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", 1127 | "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", 1128 | "engines": { 1129 | "node": ">= 0.6" 1130 | } 1131 | }, 1132 | "node_modules/raw-body": { 1133 | "version": "2.5.1", 1134 | "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", 1135 | "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", 1136 | "dependencies": { 1137 | "bytes": "3.1.2", 1138 | "http-errors": "2.0.0", 1139 | "iconv-lite": "0.4.24", 1140 | "unpipe": "1.0.0" 1141 | }, 1142 | "engines": { 1143 | "node": ">= 0.8" 1144 | } 1145 | }, 1146 | "node_modules/readdirp": { 1147 | "version": "3.6.0", 1148 | "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", 1149 | "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", 1150 | "dev": true, 1151 | "dependencies": { 1152 | "picomatch": "^2.2.1" 1153 | }, 1154 | "engines": { 1155 | "node": ">=8.10.0" 1156 | } 1157 | }, 1158 | "node_modules/restore-cursor": { 1159 | "version": "2.0.0", 1160 | "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", 1161 | "integrity": "sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==", 1162 | "dependencies": { 1163 | "onetime": "^2.0.0", 1164 | "signal-exit": "^3.0.2" 1165 | }, 1166 | "engines": { 1167 | "node": ">=4" 1168 | } 1169 | }, 1170 | "node_modules/router": { 1171 | "version": "1.3.7", 1172 | "resolved": "https://registry.npmjs.org/router/-/router-1.3.7.tgz", 1173 | "integrity": "sha512-bYnD9Vv2287+g3AIll2kHITLtHV5+fldq6hVzaul9RbdGme77mvBY/1cO+ahsgstA2RI6DSg/j4W1TYHm4Lz4g==", 1174 | "dependencies": { 1175 | "array-flatten": "3.0.0", 1176 | "debug": "2.6.9", 1177 | "methods": "~1.1.2", 1178 | "parseurl": "~1.3.3", 1179 | "path-to-regexp": "0.1.7", 1180 | "setprototypeof": "1.2.0", 1181 | "utils-merge": "1.0.1" 1182 | }, 1183 | "engines": { 1184 | "node": ">= 0.8" 1185 | } 1186 | }, 1187 | "node_modules/router/node_modules/array-flatten": { 1188 | "version": "3.0.0", 1189 | "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-3.0.0.tgz", 1190 | "integrity": "sha512-zPMVc3ZYlGLNk4mpK1NzP2wg0ml9t7fUgDsayR5Y5rSzxQilzR9FGu/EH2jQOcKSAeAfWeylyW8juy3OkWRvNA==" 1191 | }, 1192 | "node_modules/run-async": { 1193 | "version": "2.4.1", 1194 | "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", 1195 | "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", 1196 | "engines": { 1197 | "node": ">=0.12.0" 1198 | } 1199 | }, 1200 | "node_modules/rxjs": { 1201 | "version": "6.6.7", 1202 | "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", 1203 | "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", 1204 | "dependencies": { 1205 | "tslib": "^1.9.0" 1206 | }, 1207 | "engines": { 1208 | "npm": ">=2.0.0" 1209 | } 1210 | }, 1211 | "node_modules/safe-buffer": { 1212 | "version": "5.2.1", 1213 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", 1214 | "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", 1215 | "funding": [ 1216 | { 1217 | "type": "github", 1218 | "url": "https://github.com/sponsors/feross" 1219 | }, 1220 | { 1221 | "type": "patreon", 1222 | "url": "https://www.patreon.com/feross" 1223 | }, 1224 | { 1225 | "type": "consulting", 1226 | "url": "https://feross.org/support" 1227 | } 1228 | ] 1229 | }, 1230 | "node_modules/safer-buffer": { 1231 | "version": "2.1.2", 1232 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", 1233 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" 1234 | }, 1235 | "node_modules/semver": { 1236 | "version": "5.7.1", 1237 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", 1238 | "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", 1239 | "bin": { 1240 | "semver": "bin/semver" 1241 | } 1242 | }, 1243 | "node_modules/send": { 1244 | "version": "0.18.0", 1245 | "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", 1246 | "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", 1247 | "dependencies": { 1248 | "debug": "2.6.9", 1249 | "depd": "2.0.0", 1250 | "destroy": "1.2.0", 1251 | "encodeurl": "~1.0.2", 1252 | "escape-html": "~1.0.3", 1253 | "etag": "~1.8.1", 1254 | "fresh": "0.5.2", 1255 | "http-errors": "2.0.0", 1256 | "mime": "1.6.0", 1257 | "ms": "2.1.3", 1258 | "on-finished": "2.4.1", 1259 | "range-parser": "~1.2.1", 1260 | "statuses": "2.0.1" 1261 | }, 1262 | "engines": { 1263 | "node": ">= 0.8.0" 1264 | } 1265 | }, 1266 | "node_modules/send/node_modules/ms": { 1267 | "version": "2.1.3", 1268 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", 1269 | "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" 1270 | }, 1271 | "node_modules/serve-static": { 1272 | "version": "1.15.0", 1273 | "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", 1274 | "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", 1275 | "dependencies": { 1276 | "encodeurl": "~1.0.2", 1277 | "escape-html": "~1.0.3", 1278 | "parseurl": "~1.3.3", 1279 | "send": "0.18.0" 1280 | }, 1281 | "engines": { 1282 | "node": ">= 0.8.0" 1283 | } 1284 | }, 1285 | "node_modules/setprototypeof": { 1286 | "version": "1.2.0", 1287 | "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", 1288 | "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" 1289 | }, 1290 | "node_modules/side-channel": { 1291 | "version": "1.0.4", 1292 | "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", 1293 | "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", 1294 | "dependencies": { 1295 | "call-bind": "^1.0.0", 1296 | "get-intrinsic": "^1.0.2", 1297 | "object-inspect": "^1.9.0" 1298 | }, 1299 | "funding": { 1300 | "url": "https://github.com/sponsors/ljharb" 1301 | } 1302 | }, 1303 | "node_modules/signal-exit": { 1304 | "version": "3.0.7", 1305 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", 1306 | "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" 1307 | }, 1308 | "node_modules/simple-update-notifier": { 1309 | "version": "1.0.7", 1310 | "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-1.0.7.tgz", 1311 | "integrity": "sha512-BBKgR84BJQJm6WjWFMHgLVuo61FBDSj1z/xSFUIozqO6wO7ii0JxCqlIud7Enr/+LhlbNI0whErq96P2qHNWew==", 1312 | "dev": true, 1313 | "dependencies": { 1314 | "semver": "~7.0.0" 1315 | }, 1316 | "engines": { 1317 | "node": ">=8.10.0" 1318 | } 1319 | }, 1320 | "node_modules/simple-update-notifier/node_modules/semver": { 1321 | "version": "7.0.0", 1322 | "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", 1323 | "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", 1324 | "dev": true, 1325 | "bin": { 1326 | "semver": "bin/semver.js" 1327 | } 1328 | }, 1329 | "node_modules/statuses": { 1330 | "version": "2.0.1", 1331 | "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", 1332 | "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", 1333 | "engines": { 1334 | "node": ">= 0.8" 1335 | } 1336 | }, 1337 | "node_modules/stremio-addon-linter": { 1338 | "version": "1.7.0", 1339 | "resolved": "https://registry.npmjs.org/stremio-addon-linter/-/stremio-addon-linter-1.7.0.tgz", 1340 | "integrity": "sha512-ck1L1Wp2qvAhvXLj+4Lq1XRn8K3r2gx1i/f+e1W6K0+Et/oIYYDmaIVoh3SvExiNbCBcbJjH9WWEeDYKoqaMqQ==", 1341 | "dependencies": { 1342 | "semver": "^5.5.0" 1343 | } 1344 | }, 1345 | "node_modules/stremio-addon-sdk": { 1346 | "version": "1.6.6", 1347 | "resolved": "https://registry.npmjs.org/stremio-addon-sdk/-/stremio-addon-sdk-1.6.6.tgz", 1348 | "integrity": "sha512-5MdJYB7c3xNKHGr8e6yumV7aD1rPiTBIrsWzyHy1fFNJIQbl4V3hR1Ig7VWEiQjDM2DsBsul7L6tSxTm9osJvA==", 1349 | "dependencies": { 1350 | "chalk": "^2.4.2", 1351 | "cors": "^2.8.4", 1352 | "express": "^4.16.3", 1353 | "inquirer": "^6.2.2", 1354 | "mkdirp": "^0.5.1", 1355 | "node-fetch": "^2.3.0", 1356 | "opn": "^5.4.0", 1357 | "router": "^1.3.3", 1358 | "stremio-addon-linter": "^1.7.0" 1359 | }, 1360 | "bin": { 1361 | "addon-bootstrap": "cli/bootstrap.js" 1362 | } 1363 | }, 1364 | "node_modules/string-width": { 1365 | "version": "2.1.1", 1366 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", 1367 | "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", 1368 | "dependencies": { 1369 | "is-fullwidth-code-point": "^2.0.0", 1370 | "strip-ansi": "^4.0.0" 1371 | }, 1372 | "engines": { 1373 | "node": ">=4" 1374 | } 1375 | }, 1376 | "node_modules/string-width/node_modules/ansi-regex": { 1377 | "version": "3.0.1", 1378 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", 1379 | "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", 1380 | "engines": { 1381 | "node": ">=4" 1382 | } 1383 | }, 1384 | "node_modules/string-width/node_modules/strip-ansi": { 1385 | "version": "4.0.0", 1386 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", 1387 | "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", 1388 | "dependencies": { 1389 | "ansi-regex": "^3.0.0" 1390 | }, 1391 | "engines": { 1392 | "node": ">=4" 1393 | } 1394 | }, 1395 | "node_modules/strip-ansi": { 1396 | "version": "5.2.0", 1397 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", 1398 | "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", 1399 | "dependencies": { 1400 | "ansi-regex": "^4.1.0" 1401 | }, 1402 | "engines": { 1403 | "node": ">=6" 1404 | } 1405 | }, 1406 | "node_modules/supports-color": { 1407 | "version": "5.5.0", 1408 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", 1409 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", 1410 | "dependencies": { 1411 | "has-flag": "^3.0.0" 1412 | }, 1413 | "engines": { 1414 | "node": ">=4" 1415 | } 1416 | }, 1417 | "node_modules/through": { 1418 | "version": "2.3.8", 1419 | "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", 1420 | "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==" 1421 | }, 1422 | "node_modules/tmp": { 1423 | "version": "0.0.33", 1424 | "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", 1425 | "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", 1426 | "dependencies": { 1427 | "os-tmpdir": "~1.0.2" 1428 | }, 1429 | "engines": { 1430 | "node": ">=0.6.0" 1431 | } 1432 | }, 1433 | "node_modules/to-regex-range": { 1434 | "version": "5.0.1", 1435 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", 1436 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", 1437 | "dev": true, 1438 | "dependencies": { 1439 | "is-number": "^7.0.0" 1440 | }, 1441 | "engines": { 1442 | "node": ">=8.0" 1443 | } 1444 | }, 1445 | "node_modules/toidentifier": { 1446 | "version": "1.0.1", 1447 | "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", 1448 | "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", 1449 | "engines": { 1450 | "node": ">=0.6" 1451 | } 1452 | }, 1453 | "node_modules/touch": { 1454 | "version": "3.1.0", 1455 | "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", 1456 | "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", 1457 | "dev": true, 1458 | "dependencies": { 1459 | "nopt": "~1.0.10" 1460 | }, 1461 | "bin": { 1462 | "nodetouch": "bin/nodetouch.js" 1463 | } 1464 | }, 1465 | "node_modules/tr46": { 1466 | "version": "0.0.3", 1467 | "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", 1468 | "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" 1469 | }, 1470 | "node_modules/tslib": { 1471 | "version": "1.14.1", 1472 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", 1473 | "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" 1474 | }, 1475 | "node_modules/type-is": { 1476 | "version": "1.6.18", 1477 | "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", 1478 | "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", 1479 | "dependencies": { 1480 | "media-typer": "0.3.0", 1481 | "mime-types": "~2.1.24" 1482 | }, 1483 | "engines": { 1484 | "node": ">= 0.6" 1485 | } 1486 | }, 1487 | "node_modules/undefsafe": { 1488 | "version": "2.0.5", 1489 | "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", 1490 | "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", 1491 | "dev": true 1492 | }, 1493 | "node_modules/unpipe": { 1494 | "version": "1.0.0", 1495 | "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", 1496 | "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", 1497 | "engines": { 1498 | "node": ">= 0.8" 1499 | } 1500 | }, 1501 | "node_modules/utils-merge": { 1502 | "version": "1.0.1", 1503 | "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", 1504 | "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", 1505 | "engines": { 1506 | "node": ">= 0.4.0" 1507 | } 1508 | }, 1509 | "node_modules/validator": { 1510 | "version": "13.7.0", 1511 | "resolved": "https://registry.npmjs.org/validator/-/validator-13.7.0.tgz", 1512 | "integrity": "sha512-nYXQLCBkpJ8X6ltALua9dRrZDHVYxjJ1wgskNt1lH9fzGjs3tgojGSCBjmEPwkWS1y29+DrizMTW19Pr9uB2nw==", 1513 | "engines": { 1514 | "node": ">= 0.10" 1515 | } 1516 | }, 1517 | "node_modules/vary": { 1518 | "version": "1.1.2", 1519 | "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", 1520 | "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", 1521 | "engines": { 1522 | "node": ">= 0.8" 1523 | } 1524 | }, 1525 | "node_modules/webidl-conversions": { 1526 | "version": "3.0.1", 1527 | "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", 1528 | "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" 1529 | }, 1530 | "node_modules/whatwg-url": { 1531 | "version": "5.0.0", 1532 | "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", 1533 | "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", 1534 | "dependencies": { 1535 | "tr46": "~0.0.3", 1536 | "webidl-conversions": "^3.0.0" 1537 | } 1538 | } 1539 | }, 1540 | "dependencies": { 1541 | "abbrev": { 1542 | "version": "1.1.1", 1543 | "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", 1544 | "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", 1545 | "dev": true 1546 | }, 1547 | "accepts": { 1548 | "version": "1.3.8", 1549 | "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", 1550 | "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", 1551 | "requires": { 1552 | "mime-types": "~2.1.34", 1553 | "negotiator": "0.6.3" 1554 | } 1555 | }, 1556 | "ansi-escapes": { 1557 | "version": "3.2.0", 1558 | "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", 1559 | "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==" 1560 | }, 1561 | "ansi-regex": { 1562 | "version": "4.1.1", 1563 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", 1564 | "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==" 1565 | }, 1566 | "ansi-styles": { 1567 | "version": "3.2.1", 1568 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", 1569 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", 1570 | "requires": { 1571 | "color-convert": "^1.9.0" 1572 | } 1573 | }, 1574 | "anymatch": { 1575 | "version": "3.1.2", 1576 | "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", 1577 | "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", 1578 | "dev": true, 1579 | "requires": { 1580 | "normalize-path": "^3.0.0", 1581 | "picomatch": "^2.0.4" 1582 | } 1583 | }, 1584 | "array-flatten": { 1585 | "version": "1.1.1", 1586 | "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", 1587 | "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" 1588 | }, 1589 | "asynckit": { 1590 | "version": "0.4.0", 1591 | "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", 1592 | "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" 1593 | }, 1594 | "axios": { 1595 | "version": "0.27.2", 1596 | "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", 1597 | "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", 1598 | "requires": { 1599 | "follow-redirects": "^1.14.9", 1600 | "form-data": "^4.0.0" 1601 | } 1602 | }, 1603 | "balanced-match": { 1604 | "version": "1.0.2", 1605 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", 1606 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", 1607 | "dev": true 1608 | }, 1609 | "binary-extensions": { 1610 | "version": "2.2.0", 1611 | "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", 1612 | "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", 1613 | "dev": true 1614 | }, 1615 | "body-parser": { 1616 | "version": "1.20.0", 1617 | "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz", 1618 | "integrity": "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==", 1619 | "requires": { 1620 | "bytes": "3.1.2", 1621 | "content-type": "~1.0.4", 1622 | "debug": "2.6.9", 1623 | "depd": "2.0.0", 1624 | "destroy": "1.2.0", 1625 | "http-errors": "2.0.0", 1626 | "iconv-lite": "0.4.24", 1627 | "on-finished": "2.4.1", 1628 | "qs": "6.10.3", 1629 | "raw-body": "2.5.1", 1630 | "type-is": "~1.6.18", 1631 | "unpipe": "1.0.0" 1632 | } 1633 | }, 1634 | "brace-expansion": { 1635 | "version": "1.1.11", 1636 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 1637 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 1638 | "dev": true, 1639 | "requires": { 1640 | "balanced-match": "^1.0.0", 1641 | "concat-map": "0.0.1" 1642 | } 1643 | }, 1644 | "braces": { 1645 | "version": "3.0.2", 1646 | "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", 1647 | "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", 1648 | "dev": true, 1649 | "requires": { 1650 | "fill-range": "^7.0.1" 1651 | } 1652 | }, 1653 | "bytes": { 1654 | "version": "3.1.2", 1655 | "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", 1656 | "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" 1657 | }, 1658 | "call-bind": { 1659 | "version": "1.0.2", 1660 | "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", 1661 | "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", 1662 | "requires": { 1663 | "function-bind": "^1.1.1", 1664 | "get-intrinsic": "^1.0.2" 1665 | } 1666 | }, 1667 | "chalk": { 1668 | "version": "2.4.2", 1669 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", 1670 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", 1671 | "requires": { 1672 | "ansi-styles": "^3.2.1", 1673 | "escape-string-regexp": "^1.0.5", 1674 | "supports-color": "^5.3.0" 1675 | } 1676 | }, 1677 | "chardet": { 1678 | "version": "0.7.0", 1679 | "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", 1680 | "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==" 1681 | }, 1682 | "chokidar": { 1683 | "version": "3.5.3", 1684 | "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", 1685 | "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", 1686 | "dev": true, 1687 | "requires": { 1688 | "anymatch": "~3.1.2", 1689 | "braces": "~3.0.2", 1690 | "fsevents": "~2.3.2", 1691 | "glob-parent": "~5.1.2", 1692 | "is-binary-path": "~2.1.0", 1693 | "is-glob": "~4.0.1", 1694 | "normalize-path": "~3.0.0", 1695 | "readdirp": "~3.6.0" 1696 | }, 1697 | "dependencies": { 1698 | "is-extglob": { 1699 | "version": "2.1.1", 1700 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", 1701 | "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", 1702 | "dev": true 1703 | }, 1704 | "is-glob": { 1705 | "version": "4.0.3", 1706 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", 1707 | "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", 1708 | "dev": true, 1709 | "requires": { 1710 | "is-extglob": "^2.1.1" 1711 | } 1712 | } 1713 | } 1714 | }, 1715 | "cli-cursor": { 1716 | "version": "2.1.0", 1717 | "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", 1718 | "integrity": "sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==", 1719 | "requires": { 1720 | "restore-cursor": "^2.0.0" 1721 | } 1722 | }, 1723 | "cli-width": { 1724 | "version": "2.2.1", 1725 | "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", 1726 | "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==" 1727 | }, 1728 | "clone": { 1729 | "version": "2.1.2", 1730 | "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", 1731 | "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==" 1732 | }, 1733 | "color-convert": { 1734 | "version": "1.9.3", 1735 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", 1736 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", 1737 | "requires": { 1738 | "color-name": "1.1.3" 1739 | } 1740 | }, 1741 | "color-name": { 1742 | "version": "1.1.3", 1743 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", 1744 | "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" 1745 | }, 1746 | "combined-stream": { 1747 | "version": "1.0.8", 1748 | "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", 1749 | "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", 1750 | "requires": { 1751 | "delayed-stream": "~1.0.0" 1752 | } 1753 | }, 1754 | "concat-map": { 1755 | "version": "0.0.1", 1756 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 1757 | "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", 1758 | "dev": true 1759 | }, 1760 | "content-disposition": { 1761 | "version": "0.5.4", 1762 | "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", 1763 | "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", 1764 | "requires": { 1765 | "safe-buffer": "5.2.1" 1766 | } 1767 | }, 1768 | "content-type": { 1769 | "version": "1.0.4", 1770 | "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", 1771 | "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" 1772 | }, 1773 | "cookie": { 1774 | "version": "0.5.0", 1775 | "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", 1776 | "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==" 1777 | }, 1778 | "cookie-signature": { 1779 | "version": "1.0.6", 1780 | "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", 1781 | "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" 1782 | }, 1783 | "cors": { 1784 | "version": "2.8.5", 1785 | "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", 1786 | "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", 1787 | "requires": { 1788 | "object-assign": "^4", 1789 | "vary": "^1" 1790 | } 1791 | }, 1792 | "debug": { 1793 | "version": "2.6.9", 1794 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", 1795 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", 1796 | "requires": { 1797 | "ms": "2.0.0" 1798 | } 1799 | }, 1800 | "delayed-stream": { 1801 | "version": "1.0.0", 1802 | "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", 1803 | "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" 1804 | }, 1805 | "depd": { 1806 | "version": "2.0.0", 1807 | "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", 1808 | "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" 1809 | }, 1810 | "destroy": { 1811 | "version": "1.2.0", 1812 | "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", 1813 | "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==" 1814 | }, 1815 | "ee-first": { 1816 | "version": "1.1.1", 1817 | "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", 1818 | "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" 1819 | }, 1820 | "encodeurl": { 1821 | "version": "1.0.2", 1822 | "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", 1823 | "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==" 1824 | }, 1825 | "escape-html": { 1826 | "version": "1.0.3", 1827 | "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", 1828 | "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" 1829 | }, 1830 | "escape-string-regexp": { 1831 | "version": "1.0.5", 1832 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 1833 | "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==" 1834 | }, 1835 | "etag": { 1836 | "version": "1.8.1", 1837 | "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", 1838 | "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==" 1839 | }, 1840 | "express": { 1841 | "version": "4.18.1", 1842 | "resolved": "https://registry.npmjs.org/express/-/express-4.18.1.tgz", 1843 | "integrity": "sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==", 1844 | "requires": { 1845 | "accepts": "~1.3.8", 1846 | "array-flatten": "1.1.1", 1847 | "body-parser": "1.20.0", 1848 | "content-disposition": "0.5.4", 1849 | "content-type": "~1.0.4", 1850 | "cookie": "0.5.0", 1851 | "cookie-signature": "1.0.6", 1852 | "debug": "2.6.9", 1853 | "depd": "2.0.0", 1854 | "encodeurl": "~1.0.2", 1855 | "escape-html": "~1.0.3", 1856 | "etag": "~1.8.1", 1857 | "finalhandler": "1.2.0", 1858 | "fresh": "0.5.2", 1859 | "http-errors": "2.0.0", 1860 | "merge-descriptors": "1.0.1", 1861 | "methods": "~1.1.2", 1862 | "on-finished": "2.4.1", 1863 | "parseurl": "~1.3.3", 1864 | "path-to-regexp": "0.1.7", 1865 | "proxy-addr": "~2.0.7", 1866 | "qs": "6.10.3", 1867 | "range-parser": "~1.2.1", 1868 | "safe-buffer": "5.2.1", 1869 | "send": "0.18.0", 1870 | "serve-static": "1.15.0", 1871 | "setprototypeof": "1.2.0", 1872 | "statuses": "2.0.1", 1873 | "type-is": "~1.6.18", 1874 | "utils-merge": "1.0.1", 1875 | "vary": "~1.1.2" 1876 | } 1877 | }, 1878 | "external-editor": { 1879 | "version": "3.1.0", 1880 | "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", 1881 | "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", 1882 | "requires": { 1883 | "chardet": "^0.7.0", 1884 | "iconv-lite": "^0.4.24", 1885 | "tmp": "^0.0.33" 1886 | } 1887 | }, 1888 | "figures": { 1889 | "version": "2.0.0", 1890 | "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", 1891 | "integrity": "sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==", 1892 | "requires": { 1893 | "escape-string-regexp": "^1.0.5" 1894 | } 1895 | }, 1896 | "fill-range": { 1897 | "version": "7.0.1", 1898 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", 1899 | "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", 1900 | "dev": true, 1901 | "requires": { 1902 | "to-regex-range": "^5.0.1" 1903 | } 1904 | }, 1905 | "finalhandler": { 1906 | "version": "1.2.0", 1907 | "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", 1908 | "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", 1909 | "requires": { 1910 | "debug": "2.6.9", 1911 | "encodeurl": "~1.0.2", 1912 | "escape-html": "~1.0.3", 1913 | "on-finished": "2.4.1", 1914 | "parseurl": "~1.3.3", 1915 | "statuses": "2.0.1", 1916 | "unpipe": "~1.0.0" 1917 | } 1918 | }, 1919 | "follow-redirects": { 1920 | "version": "1.15.1", 1921 | "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.1.tgz", 1922 | "integrity": "sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA==" 1923 | }, 1924 | "form-data": { 1925 | "version": "4.0.0", 1926 | "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", 1927 | "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", 1928 | "requires": { 1929 | "asynckit": "^0.4.0", 1930 | "combined-stream": "^1.0.8", 1931 | "mime-types": "^2.1.12" 1932 | } 1933 | }, 1934 | "forwarded": { 1935 | "version": "0.2.0", 1936 | "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", 1937 | "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" 1938 | }, 1939 | "fresh": { 1940 | "version": "0.5.2", 1941 | "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", 1942 | "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==" 1943 | }, 1944 | "fsevents": { 1945 | "version": "2.3.2", 1946 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", 1947 | "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", 1948 | "dev": true, 1949 | "optional": true 1950 | }, 1951 | "function-bind": { 1952 | "version": "1.1.1", 1953 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", 1954 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" 1955 | }, 1956 | "get-intrinsic": { 1957 | "version": "1.1.2", 1958 | "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.2.tgz", 1959 | "integrity": "sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA==", 1960 | "requires": { 1961 | "function-bind": "^1.1.1", 1962 | "has": "^1.0.3", 1963 | "has-symbols": "^1.0.3" 1964 | } 1965 | }, 1966 | "glob-parent": { 1967 | "version": "5.1.2", 1968 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", 1969 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", 1970 | "dev": true, 1971 | "requires": { 1972 | "is-glob": "^4.0.1" 1973 | }, 1974 | "dependencies": { 1975 | "is-extglob": { 1976 | "version": "2.1.1", 1977 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", 1978 | "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", 1979 | "dev": true 1980 | }, 1981 | "is-glob": { 1982 | "version": "4.0.3", 1983 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", 1984 | "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", 1985 | "dev": true, 1986 | "requires": { 1987 | "is-extglob": "^2.1.1" 1988 | } 1989 | } 1990 | } 1991 | }, 1992 | "has": { 1993 | "version": "1.0.3", 1994 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", 1995 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", 1996 | "requires": { 1997 | "function-bind": "^1.1.1" 1998 | } 1999 | }, 2000 | "has-flag": { 2001 | "version": "3.0.0", 2002 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", 2003 | "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==" 2004 | }, 2005 | "has-symbols": { 2006 | "version": "1.0.3", 2007 | "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", 2008 | "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" 2009 | }, 2010 | "http-errors": { 2011 | "version": "2.0.0", 2012 | "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", 2013 | "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", 2014 | "requires": { 2015 | "depd": "2.0.0", 2016 | "inherits": "2.0.4", 2017 | "setprototypeof": "1.2.0", 2018 | "statuses": "2.0.1", 2019 | "toidentifier": "1.0.1" 2020 | } 2021 | }, 2022 | "iconv-lite": { 2023 | "version": "0.4.24", 2024 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", 2025 | "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", 2026 | "requires": { 2027 | "safer-buffer": ">= 2.1.2 < 3" 2028 | } 2029 | }, 2030 | "ignore-by-default": { 2031 | "version": "1.0.1", 2032 | "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", 2033 | "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==", 2034 | "dev": true 2035 | }, 2036 | "inherits": { 2037 | "version": "2.0.4", 2038 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 2039 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" 2040 | }, 2041 | "inquirer": { 2042 | "version": "6.5.2", 2043 | "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz", 2044 | "integrity": "sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==", 2045 | "requires": { 2046 | "ansi-escapes": "^3.2.0", 2047 | "chalk": "^2.4.2", 2048 | "cli-cursor": "^2.1.0", 2049 | "cli-width": "^2.0.0", 2050 | "external-editor": "^3.0.3", 2051 | "figures": "^2.0.0", 2052 | "lodash": "^4.17.12", 2053 | "mute-stream": "0.0.7", 2054 | "run-async": "^2.2.0", 2055 | "rxjs": "^6.4.0", 2056 | "string-width": "^2.1.0", 2057 | "strip-ansi": "^5.1.0", 2058 | "through": "^2.3.6" 2059 | } 2060 | }, 2061 | "ipaddr.js": { 2062 | "version": "1.9.1", 2063 | "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", 2064 | "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" 2065 | }, 2066 | "iptv-playlist-parser": { 2067 | "version": "0.12.1", 2068 | "resolved": "https://registry.npmjs.org/iptv-playlist-parser/-/iptv-playlist-parser-0.12.1.tgz", 2069 | "integrity": "sha512-N0sJFsV8+FBZiR/kl7F5YfFQsUxFXrABP9+xyHPFEQjHJmXSBbvyHLlaW0GjROTd+iXVHA9glEeEwlzJimt5NA==", 2070 | "requires": { 2071 | "is-valid-path": "^0.1.1", 2072 | "validator": "^13.7.0" 2073 | } 2074 | }, 2075 | "is-binary-path": { 2076 | "version": "2.1.0", 2077 | "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", 2078 | "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", 2079 | "dev": true, 2080 | "requires": { 2081 | "binary-extensions": "^2.0.0" 2082 | } 2083 | }, 2084 | "is-extglob": { 2085 | "version": "1.0.0", 2086 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", 2087 | "integrity": "sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==" 2088 | }, 2089 | "is-fullwidth-code-point": { 2090 | "version": "2.0.0", 2091 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", 2092 | "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==" 2093 | }, 2094 | "is-glob": { 2095 | "version": "2.0.1", 2096 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", 2097 | "integrity": "sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg==", 2098 | "requires": { 2099 | "is-extglob": "^1.0.0" 2100 | } 2101 | }, 2102 | "is-invalid-path": { 2103 | "version": "0.1.0", 2104 | "resolved": "https://registry.npmjs.org/is-invalid-path/-/is-invalid-path-0.1.0.tgz", 2105 | "integrity": "sha512-aZMG0T3F34mTg4eTdszcGXx54oiZ4NtHSft3hWNJMGJXUUqdIj3cOZuHcU0nCWWcY3jd7yRe/3AEm3vSNTpBGQ==", 2106 | "requires": { 2107 | "is-glob": "^2.0.0" 2108 | } 2109 | }, 2110 | "is-number": { 2111 | "version": "7.0.0", 2112 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", 2113 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", 2114 | "dev": true 2115 | }, 2116 | "is-valid-path": { 2117 | "version": "0.1.1", 2118 | "resolved": "https://registry.npmjs.org/is-valid-path/-/is-valid-path-0.1.1.tgz", 2119 | "integrity": "sha512-+kwPrVDu9Ms03L90Qaml+79+6DZHqHyRoANI6IsZJ/g8frhnfchDOBCa0RbQ6/kdHt5CS5OeIEyrYznNuVN+8A==", 2120 | "requires": { 2121 | "is-invalid-path": "^0.1.0" 2122 | } 2123 | }, 2124 | "is-wsl": { 2125 | "version": "1.1.0", 2126 | "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", 2127 | "integrity": "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==" 2128 | }, 2129 | "lodash": { 2130 | "version": "4.17.21", 2131 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", 2132 | "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" 2133 | }, 2134 | "media-typer": { 2135 | "version": "0.3.0", 2136 | "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", 2137 | "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==" 2138 | }, 2139 | "merge-descriptors": { 2140 | "version": "1.0.1", 2141 | "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", 2142 | "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" 2143 | }, 2144 | "methods": { 2145 | "version": "1.1.2", 2146 | "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", 2147 | "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==" 2148 | }, 2149 | "mime": { 2150 | "version": "1.6.0", 2151 | "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", 2152 | "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" 2153 | }, 2154 | "mime-db": { 2155 | "version": "1.52.0", 2156 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", 2157 | "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" 2158 | }, 2159 | "mime-types": { 2160 | "version": "2.1.35", 2161 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", 2162 | "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", 2163 | "requires": { 2164 | "mime-db": "1.52.0" 2165 | } 2166 | }, 2167 | "mimic-fn": { 2168 | "version": "1.2.0", 2169 | "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", 2170 | "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==" 2171 | }, 2172 | "minimatch": { 2173 | "version": "3.1.2", 2174 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", 2175 | "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", 2176 | "dev": true, 2177 | "requires": { 2178 | "brace-expansion": "^1.1.7" 2179 | } 2180 | }, 2181 | "minimist": { 2182 | "version": "1.2.6", 2183 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", 2184 | "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" 2185 | }, 2186 | "mkdirp": { 2187 | "version": "0.5.6", 2188 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", 2189 | "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", 2190 | "requires": { 2191 | "minimist": "^1.2.6" 2192 | } 2193 | }, 2194 | "ms": { 2195 | "version": "2.0.0", 2196 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 2197 | "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" 2198 | }, 2199 | "mute-stream": { 2200 | "version": "0.0.7", 2201 | "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", 2202 | "integrity": "sha512-r65nCZhrbXXb6dXOACihYApHw2Q6pV0M3V0PSxd74N0+D8nzAdEAITq2oAjA1jVnKI+tGvEBUpqiMh0+rW6zDQ==" 2203 | }, 2204 | "negotiator": { 2205 | "version": "0.6.3", 2206 | "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", 2207 | "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" 2208 | }, 2209 | "node-cache": { 2210 | "version": "5.1.2", 2211 | "resolved": "https://registry.npmjs.org/node-cache/-/node-cache-5.1.2.tgz", 2212 | "integrity": "sha512-t1QzWwnk4sjLWaQAS8CHgOJ+RAfmHpxFWmc36IWTiWHQfs0w5JDMBS1b1ZxQteo0vVVuWJvIUKHDkkeK7vIGCg==", 2213 | "requires": { 2214 | "clone": "2.x" 2215 | } 2216 | }, 2217 | "node-fetch": { 2218 | "version": "2.6.7", 2219 | "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", 2220 | "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", 2221 | "requires": { 2222 | "whatwg-url": "^5.0.0" 2223 | } 2224 | }, 2225 | "nodemon": { 2226 | "version": "2.0.19", 2227 | "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.19.tgz", 2228 | "integrity": "sha512-4pv1f2bMDj0Eeg/MhGqxrtveeQ5/G/UVe9iO6uTZzjnRluSA4PVWf8CW99LUPwGB3eNIA7zUFoP77YuI7hOc0A==", 2229 | "dev": true, 2230 | "requires": { 2231 | "chokidar": "^3.5.2", 2232 | "debug": "^3.2.7", 2233 | "ignore-by-default": "^1.0.1", 2234 | "minimatch": "^3.0.4", 2235 | "pstree.remy": "^1.1.8", 2236 | "semver": "^5.7.1", 2237 | "simple-update-notifier": "^1.0.7", 2238 | "supports-color": "^5.5.0", 2239 | "touch": "^3.1.0", 2240 | "undefsafe": "^2.0.5" 2241 | }, 2242 | "dependencies": { 2243 | "debug": { 2244 | "version": "3.2.7", 2245 | "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", 2246 | "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", 2247 | "dev": true, 2248 | "requires": { 2249 | "ms": "^2.1.1" 2250 | } 2251 | }, 2252 | "ms": { 2253 | "version": "2.1.3", 2254 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", 2255 | "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", 2256 | "dev": true 2257 | } 2258 | } 2259 | }, 2260 | "nopt": { 2261 | "version": "1.0.10", 2262 | "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", 2263 | "integrity": "sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==", 2264 | "dev": true, 2265 | "requires": { 2266 | "abbrev": "1" 2267 | } 2268 | }, 2269 | "normalize-path": { 2270 | "version": "3.0.0", 2271 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", 2272 | "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", 2273 | "dev": true 2274 | }, 2275 | "object-assign": { 2276 | "version": "4.1.1", 2277 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", 2278 | "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" 2279 | }, 2280 | "object-inspect": { 2281 | "version": "1.12.2", 2282 | "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", 2283 | "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==" 2284 | }, 2285 | "on-finished": { 2286 | "version": "2.4.1", 2287 | "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", 2288 | "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", 2289 | "requires": { 2290 | "ee-first": "1.1.1" 2291 | } 2292 | }, 2293 | "onetime": { 2294 | "version": "2.0.1", 2295 | "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", 2296 | "integrity": "sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==", 2297 | "requires": { 2298 | "mimic-fn": "^1.0.0" 2299 | } 2300 | }, 2301 | "opn": { 2302 | "version": "5.5.0", 2303 | "resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz", 2304 | "integrity": "sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==", 2305 | "requires": { 2306 | "is-wsl": "^1.1.0" 2307 | } 2308 | }, 2309 | "os-tmpdir": { 2310 | "version": "1.0.2", 2311 | "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", 2312 | "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==" 2313 | }, 2314 | "parseurl": { 2315 | "version": "1.3.3", 2316 | "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", 2317 | "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" 2318 | }, 2319 | "path-to-regexp": { 2320 | "version": "0.1.7", 2321 | "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", 2322 | "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" 2323 | }, 2324 | "picomatch": { 2325 | "version": "2.3.1", 2326 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", 2327 | "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", 2328 | "dev": true 2329 | }, 2330 | "proxy-addr": { 2331 | "version": "2.0.7", 2332 | "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", 2333 | "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", 2334 | "requires": { 2335 | "forwarded": "0.2.0", 2336 | "ipaddr.js": "1.9.1" 2337 | } 2338 | }, 2339 | "pstree.remy": { 2340 | "version": "1.1.8", 2341 | "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", 2342 | "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", 2343 | "dev": true 2344 | }, 2345 | "qs": { 2346 | "version": "6.10.3", 2347 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", 2348 | "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", 2349 | "requires": { 2350 | "side-channel": "^1.0.4" 2351 | } 2352 | }, 2353 | "range-parser": { 2354 | "version": "1.2.1", 2355 | "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", 2356 | "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" 2357 | }, 2358 | "raw-body": { 2359 | "version": "2.5.1", 2360 | "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", 2361 | "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", 2362 | "requires": { 2363 | "bytes": "3.1.2", 2364 | "http-errors": "2.0.0", 2365 | "iconv-lite": "0.4.24", 2366 | "unpipe": "1.0.0" 2367 | } 2368 | }, 2369 | "readdirp": { 2370 | "version": "3.6.0", 2371 | "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", 2372 | "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", 2373 | "dev": true, 2374 | "requires": { 2375 | "picomatch": "^2.2.1" 2376 | } 2377 | }, 2378 | "restore-cursor": { 2379 | "version": "2.0.0", 2380 | "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", 2381 | "integrity": "sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==", 2382 | "requires": { 2383 | "onetime": "^2.0.0", 2384 | "signal-exit": "^3.0.2" 2385 | } 2386 | }, 2387 | "router": { 2388 | "version": "1.3.7", 2389 | "resolved": "https://registry.npmjs.org/router/-/router-1.3.7.tgz", 2390 | "integrity": "sha512-bYnD9Vv2287+g3AIll2kHITLtHV5+fldq6hVzaul9RbdGme77mvBY/1cO+ahsgstA2RI6DSg/j4W1TYHm4Lz4g==", 2391 | "requires": { 2392 | "array-flatten": "3.0.0", 2393 | "debug": "2.6.9", 2394 | "methods": "~1.1.2", 2395 | "parseurl": "~1.3.3", 2396 | "path-to-regexp": "0.1.7", 2397 | "setprototypeof": "1.2.0", 2398 | "utils-merge": "1.0.1" 2399 | }, 2400 | "dependencies": { 2401 | "array-flatten": { 2402 | "version": "3.0.0", 2403 | "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-3.0.0.tgz", 2404 | "integrity": "sha512-zPMVc3ZYlGLNk4mpK1NzP2wg0ml9t7fUgDsayR5Y5rSzxQilzR9FGu/EH2jQOcKSAeAfWeylyW8juy3OkWRvNA==" 2405 | } 2406 | } 2407 | }, 2408 | "run-async": { 2409 | "version": "2.4.1", 2410 | "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", 2411 | "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==" 2412 | }, 2413 | "rxjs": { 2414 | "version": "6.6.7", 2415 | "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", 2416 | "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", 2417 | "requires": { 2418 | "tslib": "^1.9.0" 2419 | } 2420 | }, 2421 | "safe-buffer": { 2422 | "version": "5.2.1", 2423 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", 2424 | "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" 2425 | }, 2426 | "safer-buffer": { 2427 | "version": "2.1.2", 2428 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", 2429 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" 2430 | }, 2431 | "semver": { 2432 | "version": "5.7.1", 2433 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", 2434 | "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" 2435 | }, 2436 | "send": { 2437 | "version": "0.18.0", 2438 | "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", 2439 | "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", 2440 | "requires": { 2441 | "debug": "2.6.9", 2442 | "depd": "2.0.0", 2443 | "destroy": "1.2.0", 2444 | "encodeurl": "~1.0.2", 2445 | "escape-html": "~1.0.3", 2446 | "etag": "~1.8.1", 2447 | "fresh": "0.5.2", 2448 | "http-errors": "2.0.0", 2449 | "mime": "1.6.0", 2450 | "ms": "2.1.3", 2451 | "on-finished": "2.4.1", 2452 | "range-parser": "~1.2.1", 2453 | "statuses": "2.0.1" 2454 | }, 2455 | "dependencies": { 2456 | "ms": { 2457 | "version": "2.1.3", 2458 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", 2459 | "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" 2460 | } 2461 | } 2462 | }, 2463 | "serve-static": { 2464 | "version": "1.15.0", 2465 | "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", 2466 | "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", 2467 | "requires": { 2468 | "encodeurl": "~1.0.2", 2469 | "escape-html": "~1.0.3", 2470 | "parseurl": "~1.3.3", 2471 | "send": "0.18.0" 2472 | } 2473 | }, 2474 | "setprototypeof": { 2475 | "version": "1.2.0", 2476 | "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", 2477 | "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" 2478 | }, 2479 | "side-channel": { 2480 | "version": "1.0.4", 2481 | "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", 2482 | "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", 2483 | "requires": { 2484 | "call-bind": "^1.0.0", 2485 | "get-intrinsic": "^1.0.2", 2486 | "object-inspect": "^1.9.0" 2487 | } 2488 | }, 2489 | "signal-exit": { 2490 | "version": "3.0.7", 2491 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", 2492 | "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" 2493 | }, 2494 | "simple-update-notifier": { 2495 | "version": "1.0.7", 2496 | "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-1.0.7.tgz", 2497 | "integrity": "sha512-BBKgR84BJQJm6WjWFMHgLVuo61FBDSj1z/xSFUIozqO6wO7ii0JxCqlIud7Enr/+LhlbNI0whErq96P2qHNWew==", 2498 | "dev": true, 2499 | "requires": { 2500 | "semver": "~7.0.0" 2501 | }, 2502 | "dependencies": { 2503 | "semver": { 2504 | "version": "7.0.0", 2505 | "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", 2506 | "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", 2507 | "dev": true 2508 | } 2509 | } 2510 | }, 2511 | "statuses": { 2512 | "version": "2.0.1", 2513 | "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", 2514 | "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" 2515 | }, 2516 | "stremio-addon-linter": { 2517 | "version": "1.7.0", 2518 | "resolved": "https://registry.npmjs.org/stremio-addon-linter/-/stremio-addon-linter-1.7.0.tgz", 2519 | "integrity": "sha512-ck1L1Wp2qvAhvXLj+4Lq1XRn8K3r2gx1i/f+e1W6K0+Et/oIYYDmaIVoh3SvExiNbCBcbJjH9WWEeDYKoqaMqQ==", 2520 | "requires": { 2521 | "semver": "^5.5.0" 2522 | } 2523 | }, 2524 | "stremio-addon-sdk": { 2525 | "version": "1.6.6", 2526 | "resolved": "https://registry.npmjs.org/stremio-addon-sdk/-/stremio-addon-sdk-1.6.6.tgz", 2527 | "integrity": "sha512-5MdJYB7c3xNKHGr8e6yumV7aD1rPiTBIrsWzyHy1fFNJIQbl4V3hR1Ig7VWEiQjDM2DsBsul7L6tSxTm9osJvA==", 2528 | "requires": { 2529 | "chalk": "^2.4.2", 2530 | "cors": "^2.8.4", 2531 | "express": "^4.16.3", 2532 | "inquirer": "^6.2.2", 2533 | "mkdirp": "^0.5.1", 2534 | "node-fetch": "^2.3.0", 2535 | "opn": "^5.4.0", 2536 | "router": "^1.3.3", 2537 | "stremio-addon-linter": "^1.7.0" 2538 | } 2539 | }, 2540 | "string-width": { 2541 | "version": "2.1.1", 2542 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", 2543 | "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", 2544 | "requires": { 2545 | "is-fullwidth-code-point": "^2.0.0", 2546 | "strip-ansi": "^4.0.0" 2547 | }, 2548 | "dependencies": { 2549 | "ansi-regex": { 2550 | "version": "3.0.1", 2551 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", 2552 | "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==" 2553 | }, 2554 | "strip-ansi": { 2555 | "version": "4.0.0", 2556 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", 2557 | "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", 2558 | "requires": { 2559 | "ansi-regex": "^3.0.0" 2560 | } 2561 | } 2562 | } 2563 | }, 2564 | "strip-ansi": { 2565 | "version": "5.2.0", 2566 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", 2567 | "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", 2568 | "requires": { 2569 | "ansi-regex": "^4.1.0" 2570 | } 2571 | }, 2572 | "supports-color": { 2573 | "version": "5.5.0", 2574 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", 2575 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", 2576 | "requires": { 2577 | "has-flag": "^3.0.0" 2578 | } 2579 | }, 2580 | "through": { 2581 | "version": "2.3.8", 2582 | "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", 2583 | "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==" 2584 | }, 2585 | "tmp": { 2586 | "version": "0.0.33", 2587 | "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", 2588 | "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", 2589 | "requires": { 2590 | "os-tmpdir": "~1.0.2" 2591 | } 2592 | }, 2593 | "to-regex-range": { 2594 | "version": "5.0.1", 2595 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", 2596 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", 2597 | "dev": true, 2598 | "requires": { 2599 | "is-number": "^7.0.0" 2600 | } 2601 | }, 2602 | "toidentifier": { 2603 | "version": "1.0.1", 2604 | "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", 2605 | "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" 2606 | }, 2607 | "touch": { 2608 | "version": "3.1.0", 2609 | "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", 2610 | "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", 2611 | "dev": true, 2612 | "requires": { 2613 | "nopt": "~1.0.10" 2614 | } 2615 | }, 2616 | "tr46": { 2617 | "version": "0.0.3", 2618 | "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", 2619 | "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" 2620 | }, 2621 | "tslib": { 2622 | "version": "1.14.1", 2623 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", 2624 | "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" 2625 | }, 2626 | "type-is": { 2627 | "version": "1.6.18", 2628 | "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", 2629 | "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", 2630 | "requires": { 2631 | "media-typer": "0.3.0", 2632 | "mime-types": "~2.1.24" 2633 | } 2634 | }, 2635 | "undefsafe": { 2636 | "version": "2.0.5", 2637 | "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", 2638 | "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", 2639 | "dev": true 2640 | }, 2641 | "unpipe": { 2642 | "version": "1.0.0", 2643 | "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", 2644 | "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==" 2645 | }, 2646 | "utils-merge": { 2647 | "version": "1.0.1", 2648 | "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", 2649 | "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==" 2650 | }, 2651 | "validator": { 2652 | "version": "13.7.0", 2653 | "resolved": "https://registry.npmjs.org/validator/-/validator-13.7.0.tgz", 2654 | "integrity": "sha512-nYXQLCBkpJ8X6ltALua9dRrZDHVYxjJ1wgskNt1lH9fzGjs3tgojGSCBjmEPwkWS1y29+DrizMTW19Pr9uB2nw==" 2655 | }, 2656 | "vary": { 2657 | "version": "1.1.2", 2658 | "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", 2659 | "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==" 2660 | }, 2661 | "webidl-conversions": { 2662 | "version": "3.0.1", 2663 | "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", 2664 | "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" 2665 | }, 2666 | "whatwg-url": { 2667 | "version": "5.0.0", 2668 | "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", 2669 | "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", 2670 | "requires": { 2671 | "tr46": "~0.0.3", 2672 | "webidl-conversions": "^3.0.0" 2673 | } 2674 | } 2675 | } 2676 | } 2677 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "community.stremio-iptv", 3 | "version": "0.1.0", 4 | "description": "Addon for Internation TV channles (maintained by the community) huge thanks for u/RootByte for the lists.", 5 | "main": "server.js", 6 | "scripts": { 7 | "start": "node server.js", 8 | "dev": "nodemon server.js" 9 | }, 10 | "dependencies": { 11 | "axios": "^0.27.2", 12 | "cors": "^2.8.5", 13 | "express": "^4.18.1", 14 | "iptv-playlist-parser": "^0.12.1", 15 | "node-cache": "^5.1.2", 16 | "stremio-addon-sdk": "latest" 17 | }, 18 | "devDependencies": { 19 | "nodemon": "^2.0.19" 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /regions.json: -------------------------------------------------------------------------------- 1 | { 2 | "maxiptv": { 3 | "name": "MaxTV", 4 | "url": "https://bit.ly/3Oiqpa5", 5 | "id": "maxiptv" 6 | },"maxspiptv": { 7 | "name": "MaxTV Spanish", 8 | "url": "https://bit.ly/3V8lryX", 9 | "id": "maxspiptv" 10 | },"beiniptv": { 11 | "name": "bein sports", 12 | "url": "https://bit.ly/3eUaJfI", 13 | "id": "beiniptv" 14 | }, 15 | "afiptv": { 16 | "name": "Afghanistan", 17 | "url": "https://iptv-org.github.io/iptv/countries/af.m3u", 18 | "id": "afiptv" 19 | }, 20 | "aliptv": { 21 | "name": "Albania", 22 | "url": "https://iptv-org.github.io/iptv/countries/al.m3u", 23 | "id": "aliptv" 24 | }, 25 | "dziptv": { 26 | "name": "Algeria", 27 | "url": "https://iptv-org.github.io/iptv/countries/dz.m3u", 28 | "id": "dziptv" 29 | }, 30 | "asiptv": { 31 | "name": "American Samoa", 32 | "url": "https://iptv-org.github.io/iptv/countries/as.m3u", 33 | "id": "asiptv" 34 | }, 35 | "adiptv": { 36 | "name": "Andorra", 37 | "url": "https://iptv-org.github.io/iptv/countries/ad.m3u", 38 | "id": "adiptv" 39 | }, 40 | "aoiptv": { 41 | "name": "Angola", 42 | "url": "https://iptv-org.github.io/iptv/countries/ao.m3u", 43 | "id": "aoiptv" 44 | }, 45 | "aiiptv": { 46 | "name": "Anguilla", 47 | "url": "https://iptv-org.github.io/iptv/countries/ai.m3u", 48 | "id": "aiiptv" 49 | }, 50 | "aqiptv": { 51 | "name": "Antarctica", 52 | "url": "https://iptv-org.github.io/iptv/countries/aq.m3u", 53 | "id": "aqiptv" 54 | }, 55 | "agiptv": { 56 | "name": "Antigua and Barbuda", 57 | "url": "https://iptv-org.github.io/iptv/countries/ag.m3u", 58 | "id": "agiptv" 59 | }, 60 | "ariptv": { 61 | "name": "Argentina", 62 | "url": "https://iptv-org.github.io/iptv/countries/ar.m3u", 63 | "id": "ariptv" 64 | }, 65 | "amiptv": { 66 | "name": "Armenia", 67 | "url": "https://iptv-org.github.io/iptv/countries/am.m3u", 68 | "id": "amiptv" 69 | }, 70 | "awiptv": { 71 | "name": "Aruba", 72 | "url": "https://iptv-org.github.io/iptv/countries/aw.m3u", 73 | "id": "awiptv" 74 | }, 75 | "auiptv": { 76 | "name": "Australia", 77 | "url": "https://iptv-org.github.io/iptv/countries/au.m3u", 78 | "id": "auiptv" 79 | }, 80 | "atiptv": { 81 | "name": "Austria", 82 | "url": "https://iptv-org.github.io/iptv/countries/at.m3u", 83 | "id": "atiptv" 84 | }, 85 | "aziptv": { 86 | "name": "Azerbaijan", 87 | "url": "https://iptv-org.github.io/iptv/countries/az.m3u", 88 | "id": "aziptv" 89 | }, 90 | "bsiptv": { 91 | "name": "Bahamas", 92 | "url": "https://iptv-org.github.io/iptv/countries/bs.m3u", 93 | "id": "bsiptv" 94 | }, 95 | "bhiptv": { 96 | "name": "Bahrain", 97 | "url": "https://iptv-org.github.io/iptv/countries/bh.m3u", 98 | "id": "bhiptv" 99 | }, 100 | "bdiptv": { 101 | "name": "Bangladesh", 102 | "url": "https://iptv-org.github.io/iptv/countries/bd.m3u", 103 | "id": "bdiptv" 104 | }, 105 | "bbiptv": { 106 | "name": "Barbados", 107 | "url": "https://iptv-org.github.io/iptv/countries/bb.m3u", 108 | "id": "bbiptv" 109 | }, 110 | "byiptv": { 111 | "name": "Belarus", 112 | "url": "https://iptv-org.github.io/iptv/countries/by.m3u", 113 | "id": "byiptv" 114 | }, 115 | "beiptv": { 116 | "name": "Belgium", 117 | "url": "https://iptv-org.github.io/iptv/countries/be.m3u", 118 | "id": "beiptv" 119 | }, 120 | "bziptv": { 121 | "name": "Belize", 122 | "url": "https://iptv-org.github.io/iptv/countries/bz.m3u", 123 | "id": "bziptv" 124 | }, 125 | "bjiptv": { 126 | "name": "Benin", 127 | "url": "https://iptv-org.github.io/iptv/countries/bj.m3u", 128 | "id": "bjiptv" 129 | }, 130 | "bmiptv": { 131 | "name": "Bermuda", 132 | "url": "https://iptv-org.github.io/iptv/countries/bm.m3u", 133 | "id": "bmiptv" 134 | }, 135 | "btiptv": { 136 | "name": "Bhutan", 137 | "url": "https://iptv-org.github.io/iptv/countries/bt.m3u", 138 | "id": "btiptv" 139 | }, 140 | "boiptv": { 141 | "name": "Bolivia", 142 | "url": "https://iptv-org.github.io/iptv/countries/bo.m3u", 143 | "id": "boiptv" 144 | }, 145 | "bqiptv": { 146 | "name": "Bonaire", 147 | "url": "https://iptv-org.github.io/iptv/countries/bq.m3u", 148 | "id": "bqiptv" 149 | }, 150 | "baiptv": { 151 | "name": "Bosnia and Herzegovina", 152 | "url": "https://iptv-org.github.io/iptv/countries/ba.m3u", 153 | "id": "baiptv" 154 | }, 155 | "bwiptv": { 156 | "name": "Botswana", 157 | "url": "https://iptv-org.github.io/iptv/countries/bw.m3u", 158 | "id": "bwiptv" 159 | }, 160 | "bviptv": { 161 | "name": "Bouvet Island", 162 | "url": "https://iptv-org.github.io/iptv/countries/bv.m3u", 163 | "id": "bviptv" 164 | }, 165 | "briptv": { 166 | "name": "Brazil", 167 | "url": "https://iptv-org.github.io/iptv/countries/br.m3u", 168 | "id": "briptv" 169 | }, 170 | "ioiptv": { 171 | "name": "British Indian Ocean Territory", 172 | "url": "https://iptv-org.github.io/iptv/countries/io.m3u", 173 | "id": "ioiptv" 174 | }, 175 | "vgiptv": { 176 | "name": "British Virgin Islands", 177 | "url": "https://iptv-org.github.io/iptv/countries/vg.m3u", 178 | "id": "vgiptv" 179 | }, 180 | "bniptv": { 181 | "name": "Brunei", 182 | "url": "https://iptv-org.github.io/iptv/countries/bn.m3u", 183 | "id": "bniptv" 184 | }, 185 | "bgiptv": { 186 | "name": "Bulgaria", 187 | "url": "https://iptv-org.github.io/iptv/countries/bg.m3u", 188 | "id": "bgiptv" 189 | }, 190 | "bfiptv": { 191 | "name": "Burkina Faso", 192 | "url": "https://iptv-org.github.io/iptv/countries/bf.m3u", 193 | "id": "bfiptv" 194 | }, 195 | "biiptv": { 196 | "name": "Burundi", 197 | "url": "https://iptv-org.github.io/iptv/countries/bi.m3u", 198 | "id": "biiptv" 199 | }, 200 | "khiptv": { 201 | "name": "Cambodia", 202 | "url": "https://iptv-org.github.io/iptv/countries/kh.m3u", 203 | "id": "khiptv" 204 | }, 205 | "cmiptv": { 206 | "name": "Cameroon", 207 | "url": "https://iptv-org.github.io/iptv/countries/cm.m3u", 208 | "id": "cmiptv" 209 | }, 210 | "caiptv": { 211 | "name": "Canada", 212 | "url": "https://iptv-org.github.io/iptv/countries/ca.m3u", 213 | "id": "caiptv" 214 | }, 215 | "cviptv": { 216 | "name": "Cape Verde", 217 | "url": "https://iptv-org.github.io/iptv/countries/cv.m3u", 218 | "id": "cviptv" 219 | }, 220 | "kyiptv": { 221 | "name": "Cayman Islands", 222 | "url": "https://iptv-org.github.io/iptv/countries/ky.m3u", 223 | "id": "kyiptv" 224 | }, 225 | "cfiptv": { 226 | "name": "Central African Republic", 227 | "url": "https://iptv-org.github.io/iptv/countries/cf.m3u", 228 | "id": "cfiptv" 229 | }, 230 | "tdiptv": { 231 | "name": "Chad", 232 | "url": "https://iptv-org.github.io/iptv/countries/td.m3u", 233 | "id": "tdiptv" 234 | }, 235 | "cliptv": { 236 | "name": "Chile", 237 | "url": "https://iptv-org.github.io/iptv/countries/cl.m3u", 238 | "id": "cliptv" 239 | }, 240 | "cniptv": { 241 | "name": "China", 242 | "url": "https://iptv-org.github.io/iptv/countries/cn.m3u", 243 | "id": "cniptv" 244 | }, 245 | "cxiptv": { 246 | "name": "Christmas Island", 247 | "url": "https://iptv-org.github.io/iptv/countries/cx.m3u", 248 | "id": "cxiptv" 249 | }, 250 | "cciptv": { 251 | "name": "Cocos (Keeling) Islands", 252 | "url": "https://iptv-org.github.io/iptv/countries/cc.m3u", 253 | "id": "cciptv" 254 | }, 255 | "coiptv": { 256 | "name": "Colombia", 257 | "url": "https://iptv-org.github.io/iptv/countries/co.m3u", 258 | "id": "coiptv" 259 | }, 260 | "kmiptv": { 261 | "name": "Comoros", 262 | "url": "https://iptv-org.github.io/iptv/countries/km.m3u", 263 | "id": "kmiptv" 264 | }, 265 | "ckiptv": { 266 | "name": "Cook Islands", 267 | "url": "https://iptv-org.github.io/iptv/countries/ck.m3u", 268 | "id": "ckiptv" 269 | }, 270 | "criptv": { 271 | "name": "Costa Rica", 272 | "url": "https://iptv-org.github.io/iptv/countries/cr.m3u", 273 | "id": "criptv" 274 | }, 275 | "hriptv": { 276 | "name": "Croatia", 277 | "url": "https://iptv-org.github.io/iptv/countries/hr.m3u", 278 | "id": "hriptv" 279 | }, 280 | "cuiptv": { 281 | "name": "Cuba", 282 | "url": "https://iptv-org.github.io/iptv/countries/cu.m3u", 283 | "id": "cuiptv" 284 | }, 285 | "cwiptv": { 286 | "name": "Curacao", 287 | "url": "https://iptv-org.github.io/iptv/countries/cw.m3u", 288 | "id": "cwiptv" 289 | }, 290 | "cyiptv": { 291 | "name": "Cyprus", 292 | "url": "https://iptv-org.github.io/iptv/countries/cy.m3u", 293 | "id": "cyiptv" 294 | }, 295 | "cziptv": { 296 | "name": "Czech Republic", 297 | "url": "https://iptv-org.github.io/iptv/countries/cz.m3u", 298 | "id": "cziptv" 299 | }, 300 | "cdiptv": { 301 | "name": "Democratic Republic of the Congo", 302 | "url": "https://iptv-org.github.io/iptv/countries/cd.m3u", 303 | "id": "cdiptv" 304 | }, 305 | "dkiptv": { 306 | "name": "Denmark", 307 | "url": "https://iptv-org.github.io/iptv/countries/dk.m3u", 308 | "id": "dkiptv" 309 | }, 310 | "djiptv": { 311 | "name": "Djibouti", 312 | "url": "https://iptv-org.github.io/iptv/countries/dj.m3u", 313 | "id": "djiptv" 314 | }, 315 | "dmiptv": { 316 | "name": "Dominica", 317 | "url": "https://iptv-org.github.io/iptv/countries/dm.m3u", 318 | "id": "dmiptv" 319 | }, 320 | "doiptv": { 321 | "name": "Dominican Republic", 322 | "url": "https://iptv-org.github.io/iptv/countries/do.m3u", 323 | "id": "doiptv" 324 | }, 325 | "tliptv": { 326 | "name": "East Timor", 327 | "url": "https://iptv-org.github.io/iptv/countries/tl.m3u", 328 | "id": "tliptv" 329 | }, 330 | "eciptv": { 331 | "name": "Ecuador", 332 | "url": "https://iptv-org.github.io/iptv/countries/ec.m3u", 333 | "id": "eciptv" 334 | }, 335 | "egiptv": { 336 | "name": "Egypt", 337 | "url": "https://iptv-org.github.io/iptv/countries/eg.m3u", 338 | "id": "egiptv" 339 | }, 340 | "sviptv": { 341 | "name": "El Salvador", 342 | "url": "https://iptv-org.github.io/iptv/countries/sv.m3u", 343 | "id": "sviptv" 344 | }, 345 | "gqiptv": { 346 | "name": "Equatorial Guinea", 347 | "url": "https://iptv-org.github.io/iptv/countries/gq.m3u", 348 | "id": "gqiptv" 349 | }, 350 | "eriptv": { 351 | "name": "Eritrea", 352 | "url": "https://iptv-org.github.io/iptv/countries/er.m3u", 353 | "id": "eriptv" 354 | }, 355 | "eeiptv": { 356 | "name": "Estonia", 357 | "url": "https://iptv-org.github.io/iptv/countries/ee.m3u", 358 | "id": "eeiptv" 359 | }, 360 | "etiptv": { 361 | "name": "Ethiopia", 362 | "url": "https://iptv-org.github.io/iptv/countries/et.m3u", 363 | "id": "etiptv" 364 | }, 365 | "fkiptv": { 366 | "name": "Falkland Islands", 367 | "url": "https://iptv-org.github.io/iptv/countries/fk.m3u", 368 | "id": "fkiptv" 369 | }, 370 | "foiptv": { 371 | "name": "Faroe Islands", 372 | "url": "https://iptv-org.github.io/iptv/countries/fo.m3u", 373 | "id": "foiptv" 374 | }, 375 | "fjiptv": { 376 | "name": "Fiji", 377 | "url": "https://iptv-org.github.io/iptv/countries/fj.m3u", 378 | "id": "fjiptv" 379 | }, 380 | "fiiptv": { 381 | "name": "Finland", 382 | "url": "https://iptv-org.github.io/iptv/countries/fi.m3u", 383 | "id": "fiiptv" 384 | }, 385 | "friptv": { 386 | "name": "France", 387 | "url": "https://iptv-org.github.io/iptv/countries/fr.m3u", 388 | "id": "friptv" 389 | }, 390 | "gfiptv": { 391 | "name": "French Guiana", 392 | "url": "https://iptv-org.github.io/iptv/countries/gf.m3u", 393 | "id": "gfiptv" 394 | }, 395 | "pfiptv": { 396 | "name": "French Polynesia", 397 | "url": "https://iptv-org.github.io/iptv/countries/pf.m3u", 398 | "id": "pfiptv" 399 | }, 400 | "tfiptv": { 401 | "name": "French Southern Territories", 402 | "url": "https://iptv-org.github.io/iptv/countries/tf.m3u", 403 | "id": "tfiptv" 404 | }, 405 | "gaiptv": { 406 | "name": "Gabon", 407 | "url": "https://iptv-org.github.io/iptv/countries/ga.m3u", 408 | "id": "gaiptv" 409 | }, 410 | "gmiptv": { 411 | "name": "Gambia", 412 | "url": "https://iptv-org.github.io/iptv/countries/gm.m3u", 413 | "id": "gmiptv" 414 | }, 415 | "geiptv": { 416 | "name": "Georgia", 417 | "url": "https://iptv-org.github.io/iptv/countries/ge.m3u", 418 | "id": "geiptv" 419 | }, 420 | "deiptv": { 421 | "name": "Germany", 422 | "url": "https://iptv-org.github.io/iptv/countries/de.m3u", 423 | "id": "deiptv" 424 | }, 425 | "ghiptv": { 426 | "name": "Ghana", 427 | "url": "https://iptv-org.github.io/iptv/countries/gh.m3u", 428 | "id": "ghiptv" 429 | }, 430 | "giiptv": { 431 | "name": "Gibraltar", 432 | "url": "https://iptv-org.github.io/iptv/countries/gi.m3u", 433 | "id": "giiptv" 434 | }, 435 | "griptv": { 436 | "name": "Greece", 437 | "url": "https://iptv-org.github.io/iptv/countries/gr.m3u", 438 | "id": "griptv" 439 | }, 440 | "gliptv": { 441 | "name": "Greenland", 442 | "url": "https://iptv-org.github.io/iptv/countries/gl.m3u", 443 | "id": "gliptv" 444 | }, 445 | "gdiptv": { 446 | "name": "Grenada", 447 | "url": "https://iptv-org.github.io/iptv/countries/gd.m3u", 448 | "id": "gdiptv" 449 | }, 450 | "gpiptv": { 451 | "name": "Guadeloupe", 452 | "url": "https://iptv-org.github.io/iptv/countries/gp.m3u", 453 | "id": "gpiptv" 454 | }, 455 | "guiptv": { 456 | "name": "Guam", 457 | "url": "https://iptv-org.github.io/iptv/countries/gu.m3u", 458 | "id": "guiptv" 459 | }, 460 | "gtiptv": { 461 | "name": "Guatemala", 462 | "url": "https://iptv-org.github.io/iptv/countries/gt.m3u", 463 | "id": "gtiptv" 464 | }, 465 | "ggiptv": { 466 | "name": "Guernsey", 467 | "url": "https://iptv-org.github.io/iptv/countries/gg.m3u", 468 | "id": "ggiptv" 469 | }, 470 | "gniptv": { 471 | "name": "Guinea", 472 | "url": "https://iptv-org.github.io/iptv/countries/gn.m3u", 473 | "id": "gniptv" 474 | }, 475 | "gwiptv": { 476 | "name": "Guinea-Bissau", 477 | "url": "https://iptv-org.github.io/iptv/countries/gw.m3u", 478 | "id": "gwiptv" 479 | }, 480 | "gyiptv": { 481 | "name": "Guyana", 482 | "url": "https://iptv-org.github.io/iptv/countries/gy.m3u", 483 | "id": "gyiptv" 484 | }, 485 | "htiptv": { 486 | "name": "Haiti", 487 | "url": "https://iptv-org.github.io/iptv/countries/ht.m3u", 488 | "id": "htiptv" 489 | }, 490 | "hmiptv": { 491 | "name": "Heard Island and McDonald Islands", 492 | "url": "https://iptv-org.github.io/iptv/countries/hm.m3u", 493 | "id": "hmiptv" 494 | }, 495 | "hniptv": { 496 | "name": "Honduras", 497 | "url": "https://iptv-org.github.io/iptv/countries/hn.m3u", 498 | "id": "hniptv" 499 | }, 500 | "hkiptv": { 501 | "name": "Hong Kong", 502 | "url": "https://iptv-org.github.io/iptv/countries/hk.m3u", 503 | "id": "hkiptv" 504 | }, 505 | "huiptv": { 506 | "name": "Hungary", 507 | "url": "https://iptv-org.github.io/iptv/countries/hu.m3u", 508 | "id": "huiptv" 509 | }, 510 | "isiptv": { 511 | "name": "Iceland", 512 | "url": "https://iptv-org.github.io/iptv/countries/is.m3u", 513 | "id": "isiptv" 514 | }, 515 | "iniptv": { 516 | "name": "India", 517 | "url": "https://iptv-org.github.io/iptv/countries/in.m3u", 518 | "id": "iniptv" 519 | }, 520 | "idiptv": { 521 | "name": "Indonesia", 522 | "url": "https://iptv-org.github.io/iptv/countries/id.m3u", 523 | "id": "idiptv" 524 | }, 525 | "iriptv": { 526 | "name": "Iran", 527 | "url": "https://iptv-org.github.io/iptv/countries/ir.m3u", 528 | "id": "iriptv" 529 | }, 530 | "iqiptv": { 531 | "name": "Iraq", 532 | "url": "https://iptv-org.github.io/iptv/countries/iq.m3u", 533 | "id": "iqiptv" 534 | }, 535 | "ieiptv": { 536 | "name": "Ireland", 537 | "url": "https://iptv-org.github.io/iptv/countries/ie.m3u", 538 | "id": "ieiptv" 539 | }, 540 | "imiptv": { 541 | "name": "Isle of Man", 542 | "url": "https://iptv-org.github.io/iptv/countries/im.m3u", 543 | "id": "imiptv" 544 | }, 545 | "iliptv": { 546 | "name": "Israel", 547 | "url": "https://iptv-org.github.io/iptv/countries/il.m3u", 548 | "id": "iliptv" 549 | }, 550 | "itiptv": { 551 | "name": "Italy", 552 | "url": "https://iptv-org.github.io/iptv/countries/it.m3u", 553 | "id": "itiptv" 554 | }, 555 | "ciiptv": { 556 | "name": "Ivory Coast", 557 | "url": "https://iptv-org.github.io/iptv/countries/ci.m3u", 558 | "id": "ciiptv" 559 | }, 560 | "jmiptv": { 561 | "name": "Jamaica", 562 | "url": "https://iptv-org.github.io/iptv/countries/jm.m3u", 563 | "id": "jmiptv" 564 | }, 565 | "jpiptv": { 566 | "name": "Japan", 567 | "url": "https://iptv-org.github.io/iptv/countries/jp.m3u", 568 | "id": "jpiptv" 569 | }, 570 | "jeiptv": { 571 | "name": "Jersey", 572 | "url": "https://iptv-org.github.io/iptv/countries/je.m3u", 573 | "id": "jeiptv" 574 | }, 575 | "joiptv": { 576 | "name": "Jordan", 577 | "url": "https://iptv-org.github.io/iptv/countries/jo.m3u", 578 | "id": "joiptv" 579 | }, 580 | "kziptv": { 581 | "name": "Kazakhstan", 582 | "url": "https://iptv-org.github.io/iptv/countries/kz.m3u", 583 | "id": "kziptv" 584 | }, 585 | "keiptv": { 586 | "name": "Kenya", 587 | "url": "https://iptv-org.github.io/iptv/countries/ke.m3u", 588 | "id": "keiptv" 589 | }, 590 | "kiiptv": { 591 | "name": "Kiribati", 592 | "url": "https://iptv-org.github.io/iptv/countries/ki.m3u", 593 | "id": "kiiptv" 594 | }, 595 | "xkiptv": { 596 | "name": "Kosovo", 597 | "url": "https://iptv-org.github.io/iptv/countries/xk.m3u", 598 | "id": "xkiptv" 599 | }, 600 | "kwiptv": { 601 | "name": "Kuwait", 602 | "url": "https://iptv-org.github.io/iptv/countries/kw.m3u", 603 | "id": "kwiptv" 604 | }, 605 | "kgiptv": { 606 | "name": "Kyrgyzstan", 607 | "url": "https://iptv-org.github.io/iptv/countries/kg.m3u", 608 | "id": "kgiptv" 609 | }, 610 | "laiptv": { 611 | "name": "Laos", 612 | "url": "https://iptv-org.github.io/iptv/countries/la.m3u", 613 | "id": "laiptv" 614 | }, 615 | "lviptv": { 616 | "name": "Latvia", 617 | "url": "https://iptv-org.github.io/iptv/countries/lv.m3u", 618 | "id": "lviptv" 619 | }, 620 | "lbiptv": { 621 | "name": "Lebanon", 622 | "url": "https://iptv-org.github.io/iptv/countries/lb.m3u", 623 | "id": "lbiptv" 624 | }, 625 | "lsiptv": { 626 | "name": "Lesotho", 627 | "url": "https://iptv-org.github.io/iptv/countries/ls.m3u", 628 | "id": "lsiptv" 629 | }, 630 | "lriptv": { 631 | "name": "Liberia", 632 | "url": "https://iptv-org.github.io/iptv/countries/lr.m3u", 633 | "id": "lriptv" 634 | }, 635 | "lyiptv": { 636 | "name": "Libya", 637 | "url": "https://iptv-org.github.io/iptv/countries/ly.m3u", 638 | "id": "lyiptv" 639 | }, 640 | "liiptv": { 641 | "name": "Liechtenstein", 642 | "url": "https://iptv-org.github.io/iptv/countries/li.m3u", 643 | "id": "liiptv" 644 | }, 645 | "ltiptv": { 646 | "name": "Lithuania", 647 | "url": "https://iptv-org.github.io/iptv/countries/lt.m3u", 648 | "id": "ltiptv" 649 | }, 650 | "luiptv": { 651 | "name": "Luxembourg", 652 | "url": "https://iptv-org.github.io/iptv/countries/lu.m3u", 653 | "id": "luiptv" 654 | }, 655 | "moiptv": { 656 | "name": "Macao", 657 | "url": "https://iptv-org.github.io/iptv/countries/mo.m3u", 658 | "id": "moiptv" 659 | }, 660 | "mgiptv": { 661 | "name": "Madagascar", 662 | "url": "https://iptv-org.github.io/iptv/countries/mg.m3u", 663 | "id": "mgiptv" 664 | }, 665 | "mwiptv": { 666 | "name": "Malawi", 667 | "url": "https://iptv-org.github.io/iptv/countries/mw.m3u", 668 | "id": "mwiptv" 669 | }, 670 | "myiptv": { 671 | "name": "Malaysia", 672 | "url": "https://iptv-org.github.io/iptv/countries/my.m3u", 673 | "id": "myiptv" 674 | }, 675 | "mviptv": { 676 | "name": "Maldives", 677 | "url": "https://iptv-org.github.io/iptv/countries/mv.m3u", 678 | "id": "mviptv" 679 | }, 680 | "mliptv": { 681 | "name": "Mali", 682 | "url": "https://iptv-org.github.io/iptv/countries/ml.m3u", 683 | "id": "mliptv" 684 | }, 685 | "mtiptv": { 686 | "name": "Malta", 687 | "url": "https://iptv-org.github.io/iptv/countries/mt.m3u", 688 | "id": "mtiptv" 689 | }, 690 | "mhiptv": { 691 | "name": "Marshall Islands", 692 | "url": "https://iptv-org.github.io/iptv/countries/mh.m3u", 693 | "id": "mhiptv" 694 | }, 695 | "mqiptv": { 696 | "name": "Martinique", 697 | "url": "https://iptv-org.github.io/iptv/countries/mq.m3u", 698 | "id": "mqiptv" 699 | }, 700 | "mriptv": { 701 | "name": "Mauritania", 702 | "url": "https://iptv-org.github.io/iptv/countries/mr.m3u", 703 | "id": "mriptv" 704 | }, 705 | "muiptv": { 706 | "name": "Mauritius", 707 | "url": "https://iptv-org.github.io/iptv/countries/mu.m3u", 708 | "id": "muiptv" 709 | }, 710 | "ytiptv": { 711 | "name": "Mayotte", 712 | "url": "https://iptv-org.github.io/iptv/countries/yt.m3u", 713 | "id": "ytiptv" 714 | }, 715 | "mxiptv": { 716 | "name": "Mexico", 717 | "url": "https://iptv-org.github.io/iptv/countries/mx.m3u", 718 | "id": "mxiptv" 719 | }, 720 | "fmiptv": { 721 | "name": "Micronesia", 722 | "url": "https://iptv-org.github.io/iptv/countries/fm.m3u", 723 | "id": "fmiptv" 724 | }, 725 | "mdiptv": { 726 | "name": "Moldova", 727 | "url": "https://iptv-org.github.io/iptv/countries/md.m3u", 728 | "id": "mdiptv" 729 | }, 730 | "mciptv": { 731 | "name": "Monaco", 732 | "url": "https://iptv-org.github.io/iptv/countries/mc.m3u", 733 | "id": "mciptv" 734 | }, 735 | "mniptv": { 736 | "name": "Mongolia", 737 | "url": "https://iptv-org.github.io/iptv/countries/mn.m3u", 738 | "id": "mniptv" 739 | }, 740 | "meiptv": { 741 | "name": "Montenegro", 742 | "url": "https://iptv-org.github.io/iptv/countries/me.m3u", 743 | "id": "meiptv" 744 | }, 745 | "msiptv": { 746 | "name": "Montserrat", 747 | "url": "https://iptv-org.github.io/iptv/countries/ms.m3u", 748 | "id": "msiptv" 749 | }, 750 | "maiptv": { 751 | "name": "Morocco", 752 | "url": "https://iptv-org.github.io/iptv/countries/ma.m3u", 753 | "id": "maiptv" 754 | }, 755 | "mziptv": { 756 | "name": "Mozambique", 757 | "url": "https://iptv-org.github.io/iptv/countries/mz.m3u", 758 | "id": "mziptv" 759 | }, 760 | "mmiptv": { 761 | "name": "Myanmar (Burma)", 762 | "url": "https://iptv-org.github.io/iptv/countries/mm.m3u", 763 | "id": "mmiptv" 764 | }, 765 | "naiptv": { 766 | "name": "Namibia", 767 | "url": "https://iptv-org.github.io/iptv/countries/na.m3u", 768 | "id": "naiptv" 769 | }, 770 | "nriptv": { 771 | "name": "Nauru", 772 | "url": "https://iptv-org.github.io/iptv/countries/nr.m3u", 773 | "id": "nriptv" 774 | }, 775 | "npiptv": { 776 | "name": "Nepal", 777 | "url": "https://iptv-org.github.io/iptv/countries/np.m3u", 778 | "id": "npiptv" 779 | }, 780 | "nliptv": { 781 | "name": "Netherlands", 782 | "url": "https://iptv-org.github.io/iptv/countries/nl.m3u", 783 | "id": "nliptv" 784 | }, 785 | "nciptv": { 786 | "name": "New Caledonia", 787 | "url": "https://iptv-org.github.io/iptv/countries/nc.m3u", 788 | "id": "nciptv" 789 | }, 790 | "nziptv": { 791 | "name": "New Zealand", 792 | "url": "https://iptv-org.github.io/iptv/countries/nz.m3u", 793 | "id": "nziptv" 794 | }, 795 | "niiptv": { 796 | "name": "Nicaragua", 797 | "url": "https://iptv-org.github.io/iptv/countries/ni.m3u", 798 | "id": "niiptv" 799 | }, 800 | "neiptv": { 801 | "name": "Niger", 802 | "url": "https://iptv-org.github.io/iptv/countries/ne.m3u", 803 | "id": "neiptv" 804 | }, 805 | "ngiptv": { 806 | "name": "Nigeria", 807 | "url": "https://iptv-org.github.io/iptv/countries/ng.m3u", 808 | "id": "ngiptv" 809 | }, 810 | "nuiptv": { 811 | "name": "Niue", 812 | "url": "https://iptv-org.github.io/iptv/countries/nu.m3u", 813 | "id": "nuiptv" 814 | }, 815 | "nfiptv": { 816 | "name": "Norfolk Island", 817 | "url": "https://iptv-org.github.io/iptv/countries/nf.m3u", 818 | "id": "nfiptv" 819 | }, 820 | "kpiptv": { 821 | "name": "North Korea", 822 | "url": "https://iptv-org.github.io/iptv/countries/kp.m3u", 823 | "id": "kpiptv" 824 | }, 825 | "mkiptv": { 826 | "name": "North Macedonia", 827 | "url": "https://iptv-org.github.io/iptv/countries/mk.m3u", 828 | "id": "mkiptv" 829 | }, 830 | "mpiptv": { 831 | "name": "Northern Mariana Islands", 832 | "url": "https://iptv-org.github.io/iptv/countries/mp.m3u", 833 | "id": "mpiptv" 834 | }, 835 | "noiptv": { 836 | "name": "Norway", 837 | "url": "https://iptv-org.github.io/iptv/countries/no.m3u", 838 | "id": "noiptv" 839 | }, 840 | "omiptv": { 841 | "name": "Oman", 842 | "url": "https://iptv-org.github.io/iptv/countries/om.m3u", 843 | "id": "omiptv" 844 | }, 845 | "pkiptv": { 846 | "name": "Pakistan", 847 | "url": "https://iptv-org.github.io/iptv/countries/pk.m3u", 848 | "id": "pkiptv" 849 | }, 850 | "pwiptv": { 851 | "name": "Palau", 852 | "url": "https://iptv-org.github.io/iptv/countries/pw.m3u", 853 | "id": "pwiptv" 854 | }, 855 | "psiptv": { 856 | "name": "Palestine", 857 | "url": "https://iptv-org.github.io/iptv/countries/ps.m3u", 858 | "id": "psiptv" 859 | }, 860 | "paiptv": { 861 | "name": "Panama", 862 | "url": "https://iptv-org.github.io/iptv/countries/pa.m3u", 863 | "id": "paiptv" 864 | }, 865 | "pgiptv": { 866 | "name": "Papua New Guinea", 867 | "url": "https://iptv-org.github.io/iptv/countries/pg.m3u", 868 | "id": "pgiptv" 869 | }, 870 | "pyiptv": { 871 | "name": "Paraguay", 872 | "url": "https://iptv-org.github.io/iptv/countries/py.m3u", 873 | "id": "pyiptv" 874 | }, 875 | "peiptv": { 876 | "name": "Peru", 877 | "url": "https://iptv-org.github.io/iptv/countries/pe.m3u", 878 | "id": "peiptv" 879 | }, 880 | "phiptv": { 881 | "name": "Philippines", 882 | "url": "https://iptv-org.github.io/iptv/countries/ph.m3u", 883 | "id": "phiptv" 884 | }, 885 | "pniptv": { 886 | "name": "Pitcairn Islands", 887 | "url": "https://iptv-org.github.io/iptv/countries/pn.m3u", 888 | "id": "pniptv" 889 | }, 890 | "pliptv": { 891 | "name": "Poland", 892 | "url": "https://iptv-org.github.io/iptv/countries/pl.m3u", 893 | "id": "pliptv" 894 | }, 895 | "ptiptv": { 896 | "name": "Portugal", 897 | "url": "https://iptv-org.github.io/iptv/countries/pt.m3u", 898 | "id": "ptiptv" 899 | }, 900 | "priptv": { 901 | "name": "Puerto Rico", 902 | "url": "https://iptv-org.github.io/iptv/countries/pr.m3u", 903 | "id": "priptv" 904 | }, 905 | "qaiptv": { 906 | "name": "Qatar", 907 | "url": "https://iptv-org.github.io/iptv/countries/qa.m3u", 908 | "id": "qaiptv" 909 | }, 910 | "cgiptv": { 911 | "name": "Republic of the Congo", 912 | "url": "https://iptv-org.github.io/iptv/countries/cg.m3u", 913 | "id": "cgiptv" 914 | }, 915 | "roiptv": { 916 | "name": "Romania", 917 | "url": "https://iptv-org.github.io/iptv/countries/ro.m3u", 918 | "id": "roiptv" 919 | }, 920 | "ruiptv": { 921 | "name": "Russia", 922 | "url": "https://iptv-org.github.io/iptv/countries/ru.m3u", 923 | "id": "ruiptv" 924 | }, 925 | "rwiptv": { 926 | "name": "Rwanda", 927 | "url": "https://iptv-org.github.io/iptv/countries/rw.m3u", 928 | "id": "rwiptv" 929 | }, 930 | "reiptv": { 931 | "name": "Réunion", 932 | "url": "https://iptv-org.github.io/iptv/countries/re.m3u", 933 | "id": "reiptv" 934 | }, 935 | "bliptv": { 936 | "name": "Saint Barthélemy", 937 | "url": "https://iptv-org.github.io/iptv/countries/bl.m3u", 938 | "id": "bliptv" 939 | }, 940 | "shiptv": { 941 | "name": "Saint Helena", 942 | "url": "https://iptv-org.github.io/iptv/countries/sh.m3u", 943 | "id": "shiptv" 944 | }, 945 | "kniptv": { 946 | "name": "Saint Kitts and Nevis", 947 | "url": "https://iptv-org.github.io/iptv/countries/kn.m3u", 948 | "id": "kniptv" 949 | }, 950 | "lciptv": { 951 | "name": "Saint Lucia", 952 | "url": "https://iptv-org.github.io/iptv/countries/lc.m3u", 953 | "id": "lciptv" 954 | }, 955 | "mfiptv": { 956 | "name": "Saint Martin", 957 | "url": "https://iptv-org.github.io/iptv/countries/mf.m3u", 958 | "id": "mfiptv" 959 | }, 960 | "pmiptv": { 961 | "name": "Saint Pierre and Miquelon", 962 | "url": "https://iptv-org.github.io/iptv/countries/pm.m3u", 963 | "id": "pmiptv" 964 | }, 965 | "vciptv": { 966 | "name": "Saint Vincent and the Grenadines", 967 | "url": "https://iptv-org.github.io/iptv/countries/vc.m3u", 968 | "id": "vciptv" 969 | }, 970 | "wsiptv": { 971 | "name": "Samoa", 972 | "url": "https://iptv-org.github.io/iptv/countries/ws.m3u", 973 | "id": "wsiptv" 974 | }, 975 | "smiptv": { 976 | "name": "San Marino", 977 | "url": "https://iptv-org.github.io/iptv/countries/sm.m3u", 978 | "id": "smiptv" 979 | }, 980 | "saiptv": { 981 | "name": "Saudi Arabia", 982 | "url": "https://iptv-org.github.io/iptv/countries/sa.m3u", 983 | "id": "saiptv" 984 | }, 985 | "sniptv": { 986 | "name": "Senegal", 987 | "url": "https://iptv-org.github.io/iptv/countries/sn.m3u", 988 | "id": "sniptv" 989 | }, 990 | "rsiptv": { 991 | "name": "Serbia", 992 | "url": "https://iptv-org.github.io/iptv/countries/rs.m3u", 993 | "id": "rsiptv" 994 | }, 995 | "sciptv": { 996 | "name": "Seychelles", 997 | "url": "https://iptv-org.github.io/iptv/countries/sc.m3u", 998 | "id": "sciptv" 999 | }, 1000 | "sliptv": { 1001 | "name": "Sierra Leone", 1002 | "url": "https://iptv-org.github.io/iptv/countries/sl.m3u", 1003 | "id": "sliptv" 1004 | }, 1005 | "sgiptv": { 1006 | "name": "Singapore", 1007 | "url": "https://iptv-org.github.io/iptv/countries/sg.m3u", 1008 | "id": "sgiptv" 1009 | }, 1010 | "sxiptv": { 1011 | "name": "Sint Maarten", 1012 | "url": "https://iptv-org.github.io/iptv/countries/sx.m3u", 1013 | "id": "sxiptv" 1014 | }, 1015 | "skiptv": { 1016 | "name": "Slovakia", 1017 | "url": "https://iptv-org.github.io/iptv/countries/sk.m3u", 1018 | "id": "skiptv" 1019 | }, 1020 | "siiptv": { 1021 | "name": "Slovenia", 1022 | "url": "https://iptv-org.github.io/iptv/countries/si.m3u", 1023 | "id": "siiptv" 1024 | }, 1025 | "sbiptv": { 1026 | "name": "Solomon Islands", 1027 | "url": "https://iptv-org.github.io/iptv/countries/sb.m3u", 1028 | "id": "sbiptv" 1029 | }, 1030 | "soiptv": { 1031 | "name": "Somalia", 1032 | "url": "https://iptv-org.github.io/iptv/countries/so.m3u", 1033 | "id": "soiptv" 1034 | }, 1035 | "zaiptv": { 1036 | "name": "South Africa", 1037 | "url": "https://iptv-org.github.io/iptv/countries/za.m3u", 1038 | "id": "zaiptv" 1039 | }, 1040 | "gsiptv": { 1041 | "name": "South Georgia and the South Sandwich Islands", 1042 | "url": "https://iptv-org.github.io/iptv/countries/gs.m3u", 1043 | "id": "gsiptv" 1044 | }, 1045 | "kriptv": { 1046 | "name": "South Korea", 1047 | "url": "https://iptv-org.github.io/iptv/countries/kr.m3u", 1048 | "id": "kriptv" 1049 | }, 1050 | "ssiptv": { 1051 | "name": "South Sudan", 1052 | "url": "https://iptv-org.github.io/iptv/countries/ss.m3u", 1053 | "id": "ssiptv" 1054 | }, 1055 | "esiptv": { 1056 | "name": "Spain", 1057 | "url": "https://iptv-org.github.io/iptv/countries/es.m3u", 1058 | "id": "esiptv" 1059 | }, 1060 | "lkiptv": { 1061 | "name": "Sri Lanka", 1062 | "url": "https://iptv-org.github.io/iptv/countries/lk.m3u", 1063 | "id": "lkiptv" 1064 | }, 1065 | "sdiptv": { 1066 | "name": "Sudan", 1067 | "url": "https://iptv-org.github.io/iptv/countries/sd.m3u", 1068 | "id": "sdiptv" 1069 | }, 1070 | "sriptv": { 1071 | "name": "Suriname", 1072 | "url": "https://iptv-org.github.io/iptv/countries/sr.m3u", 1073 | "id": "sriptv" 1074 | }, 1075 | "sjiptv": { 1076 | "name": "Svalbard and Jan Mayen", 1077 | "url": "https://iptv-org.github.io/iptv/countries/sj.m3u", 1078 | "id": "sjiptv" 1079 | }, 1080 | "sziptv": { 1081 | "name": "Swaziland", 1082 | "url": "https://iptv-org.github.io/iptv/countries/sz.m3u", 1083 | "id": "sziptv" 1084 | }, 1085 | "seiptv": { 1086 | "name": "Sweden", 1087 | "url": "https://iptv-org.github.io/iptv/countries/se.m3u", 1088 | "id": "seiptv" 1089 | }, 1090 | "chiptv": { 1091 | "name": "Switzerland", 1092 | "url": "https://iptv-org.github.io/iptv/countries/ch.m3u", 1093 | "id": "chiptv" 1094 | }, 1095 | "syiptv": { 1096 | "name": "Syria", 1097 | "url": "https://iptv-org.github.io/iptv/countries/sy.m3u", 1098 | "id": "syiptv" 1099 | }, 1100 | "stiptv": { 1101 | "name": "São Tomé and Príncipe", 1102 | "url": "https://iptv-org.github.io/iptv/countries/st.m3u", 1103 | "id": "stiptv" 1104 | }, 1105 | "twiptv": { 1106 | "name": "Taiwan", 1107 | "url": "https://iptv-org.github.io/iptv/countries/tw.m3u", 1108 | "id": "twiptv" 1109 | }, 1110 | "tjiptv": { 1111 | "name": "Tajikistan", 1112 | "url": "https://iptv-org.github.io/iptv/countries/tj.m3u", 1113 | "id": "tjiptv" 1114 | }, 1115 | "tziptv": { 1116 | "name": "Tanzania", 1117 | "url": "https://iptv-org.github.io/iptv/countries/tz.m3u", 1118 | "id": "tziptv" 1119 | }, 1120 | "thiptv": { 1121 | "name": "Thailand", 1122 | "url": "https://iptv-org.github.io/iptv/countries/th.m3u", 1123 | "id": "thiptv" 1124 | }, 1125 | "tgiptv": { 1126 | "name": "Togo", 1127 | "url": "https://iptv-org.github.io/iptv/countries/tg.m3u", 1128 | "id": "tgiptv" 1129 | }, 1130 | "tkiptv": { 1131 | "name": "Tokelau", 1132 | "url": "https://iptv-org.github.io/iptv/countries/tk.m3u", 1133 | "id": "tkiptv" 1134 | }, 1135 | "toiptv": { 1136 | "name": "Tonga", 1137 | "url": "https://iptv-org.github.io/iptv/countries/to.m3u", 1138 | "id": "toiptv" 1139 | }, 1140 | "ttiptv": { 1141 | "name": "Trinidad and Tobago", 1142 | "url": "https://iptv-org.github.io/iptv/countries/tt.m3u", 1143 | "id": "ttiptv" 1144 | }, 1145 | "tniptv": { 1146 | "name": "Tunisia", 1147 | "url": "https://iptv-org.github.io/iptv/countries/tn.m3u", 1148 | "id": "tniptv" 1149 | }, 1150 | "triptv": { 1151 | "name": "Turkey", 1152 | "url": "https://iptv-org.github.io/iptv/countries/tr.m3u", 1153 | "id": "triptv" 1154 | }, 1155 | "tmiptv": { 1156 | "name": "Turkmenistan", 1157 | "url": "https://iptv-org.github.io/iptv/countries/tm.m3u", 1158 | "id": "tmiptv" 1159 | }, 1160 | "tciptv": { 1161 | "name": "Turks and Caicos Islands", 1162 | "url": "https://iptv-org.github.io/iptv/countries/tc.m3u", 1163 | "id": "tciptv" 1164 | }, 1165 | "tviptv": { 1166 | "name": "Tuvalu", 1167 | "url": "https://iptv-org.github.io/iptv/countries/tv.m3u", 1168 | "id": "tviptv" 1169 | }, 1170 | "umiptv": { 1171 | "name": "U.S. Minor Outlying Islands", 1172 | "url": "https://iptv-org.github.io/iptv/countries/um.m3u", 1173 | "id": "umiptv" 1174 | }, 1175 | "viiptv": { 1176 | "name": "U.S. Virgin Islands", 1177 | "url": "https://iptv-org.github.io/iptv/countries/vi.m3u", 1178 | "id": "viiptv" 1179 | }, 1180 | "ugiptv": { 1181 | "name": "Uganda", 1182 | "url": "https://iptv-org.github.io/iptv/countries/ug.m3u", 1183 | "id": "ugiptv" 1184 | }, 1185 | "uaiptv": { 1186 | "name": "Ukraine", 1187 | "url": "https://iptv-org.github.io/iptv/countries/ua.m3u", 1188 | "id": "uaiptv" 1189 | }, 1190 | "aeiptv": { 1191 | "name": "United Arab Emirates", 1192 | "url": "https://iptv-org.github.io/iptv/countries/ae.m3u", 1193 | "id": "aeiptv" 1194 | }, 1195 | "ukiptv": { 1196 | "name": "United Kingdom", 1197 | "url": "https://iptv-org.github.io/iptv/countries/uk.m3u", 1198 | "id": "ukiptv" 1199 | }, 1200 | "usiptv": { 1201 | "name": "United States", 1202 | "url": "https://iptv-org.github.io/iptv/countries/us.m3u", 1203 | "id": "usiptv" 1204 | }, 1205 | "uyiptv": { 1206 | "name": "Uruguay", 1207 | "url": "https://iptv-org.github.io/iptv/countries/uy.m3u", 1208 | "id": "uyiptv" 1209 | }, 1210 | "uziptv": { 1211 | "name": "Uzbekistan", 1212 | "url": "https://iptv-org.github.io/iptv/countries/uz.m3u", 1213 | "id": "uziptv" 1214 | }, 1215 | "vuiptv": { 1216 | "name": "Vanuatu", 1217 | "url": "https://iptv-org.github.io/iptv/countries/vu.m3u", 1218 | "id": "vuiptv" 1219 | }, 1220 | "vaiptv": { 1221 | "name": "Vatican City", 1222 | "url": "https://iptv-org.github.io/iptv/countries/va.m3u", 1223 | "id": "vaiptv" 1224 | }, 1225 | "veiptv": { 1226 | "name": "Venezuela", 1227 | "url": "https://iptv-org.github.io/iptv/countries/ve.m3u", 1228 | "id": "veiptv" 1229 | }, 1230 | "vniptv": { 1231 | "name": "Vietnam", 1232 | "url": "https://iptv-org.github.io/iptv/countries/vn.m3u", 1233 | "id": "vniptv" 1234 | }, 1235 | "wfiptv": { 1236 | "name": "Wallis and Futuna", 1237 | "url": "https://iptv-org.github.io/iptv/countries/wf.m3u", 1238 | "id": "wfiptv" 1239 | }, 1240 | "ehiptv": { 1241 | "name": "Western Sahara", 1242 | "url": "https://iptv-org.github.io/iptv/countries/eh.m3u", 1243 | "id": "ehiptv" 1244 | }, 1245 | "yeiptv": { 1246 | "name": "Yemen", 1247 | "url": "https://iptv-org.github.io/iptv/countries/ye.m3u", 1248 | "id": "yeiptv" 1249 | }, 1250 | "zmiptv": { 1251 | "name": "Zambia", 1252 | "url": "https://iptv-org.github.io/iptv/countries/zm.m3u", 1253 | "id": "zmiptv" 1254 | }, 1255 | "zwiptv": { 1256 | "name": "Zimbabwe", 1257 | "url": "https://iptv-org.github.io/iptv/countries/zw.m3u", 1258 | "id": "zwiptv" 1259 | }, 1260 | "axiptv": { 1261 | "name": "Åland", 1262 | "url": "https://iptv-org.github.io/iptv/countries/ax.m3u", 1263 | "id": "axiptv" 1264 | }, 1265 | "undefinediptv": { 1266 | "name": "ined", 1267 | "url": "https://iptv-org.github.io/iptv/countries/undefined.m3u", 1268 | "id": "undefinediptv" 1269 | } 1270 | } -------------------------------------------------------------------------------- /res/logo-small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dexter21767/Stremio-IPTV/6ea227ed8b6779c1327ab6498d95e14c8d86b17e/res/logo-small.png -------------------------------------------------------------------------------- /res/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dexter21767/Stremio-IPTV/6ea227ed8b6779c1327ab6498d95e14c8d86b17e/res/logo.png -------------------------------------------------------------------------------- /res/logo.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dexter21767/Stremio-IPTV/6ea227ed8b6779c1327ab6498d95e14c8d86b17e/res/logo.psd -------------------------------------------------------------------------------- /server.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | const app = require('./index.js') 3 | const { serveHTTP, publishToCentral } = require("stremio-addon-sdk"); 4 | const config = require('./config.js'); 5 | 6 | // create local server 7 | app.listen((config.port), function () { 8 | console.log(`Addon active on port ${config.port}`); 9 | console.log(`HTTP addon accessible at: ${config.local}/configure`); 10 | }); 11 | 12 | if(process.env.NODE_ENV){ 13 | publishToCentral(`${config.local}/manifest.json`) 14 | } -------------------------------------------------------------------------------- /test.js: -------------------------------------------------------------------------------- 1 | var regions = require('./regions') 2 | 3 | for (let region in regions){ 4 | regions[region].id = region 5 | } 6 | console.log(regions) 7 | var json = JSON.stringify(regions); 8 | var fs = require('fs'); 9 | fs.writeFile('regions.json', json, 'utf8', function(err) { 10 | if (err) throw err; 11 | console.log('complete'); 12 | } 13 | ); 14 | -------------------------------------------------------------------------------- /vue/.env: -------------------------------------------------------------------------------- 1 | VITE_APP_URL=https://2ecbbd610840-trakt.baby-beamup.club -------------------------------------------------------------------------------- /vue/.env.development: -------------------------------------------------------------------------------- 1 | VITE_APP_URL=http://localhost:63355 -------------------------------------------------------------------------------- /vue/.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | pnpm-debug.log* 8 | lerna-debug.log* 9 | 10 | node_modules 11 | dist-ssr 12 | *.local 13 | 14 | # Editor directories and files 15 | .vscode/* 16 | !.vscode/extensions.json 17 | .idea 18 | .DS_Store 19 | *.suo 20 | *.ntvs* 21 | *.njsproj 22 | *.sln 23 | *.sw? 24 | -------------------------------------------------------------------------------- /vue/.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": ["Vue.volar"] 3 | } 4 | -------------------------------------------------------------------------------- /vue/README.md: -------------------------------------------------------------------------------- 1 | # Vue 3 + Vite 2 | 3 | This template should help get you started developing with Vue 3 in Vite. The template uses Vue 3 ` 9 | 10 | 11 |
12 | 13 | 14 | 15 |