From 4fa6e5c0582e2ab56e18d1db3b8020b4e0b63774 Mon Sep 17 00:00:00 2001 From: Sourav Kunda Date: Thu, 2 Jul 2020 21:47:46 +0530 Subject: [PATCH 1/7] Caching added --- .travis.yml | 2 + app/get-page.js | 145 ++++++++++++++++++++++++--------------- app/process-request.js | 63 ++++++++--------- package-lock.json | 34 ++++++++++ package.json | 3 +- redis.js | 16 +++++ test/app.test.js | 150 ++++++++++++++++++++++------------------- 7 files changed, 255 insertions(+), 158 deletions(-) create mode 100644 redis.js diff --git a/.travis.yml b/.travis.yml index 4555503..d7d0aa9 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,3 +1,5 @@ language: node_js node_js: - "10" +services: + - redis-server diff --git a/app/get-page.js b/app/get-page.js index 0d733bf..ceb85ff 100644 --- a/app/get-page.js +++ b/app/get-page.js @@ -1,90 +1,123 @@ -const got = require('got') +const got = require("got"); +const { redisGet, redisSet } = require("../redis"); -const DEFAULT_USER_AGENT = `Mozilla/5.0 (compatible; allOrigins/${global.AO_VERSION}; +http://allorigins.ml/)` +const DEFAULT_USER_AGENT = `Mozilla/5.0 (compatible; allOrigins/${global.AO_VERSION}; +http://allorigins.ml/)`; -module.exports = getPage +module.exports = getPage; -function getPage ({url, format, requestMethod}) { - if (format === 'info' || requestMethod === 'HEAD') { - return getPageInfo(url) - } else if (format === 'raw') { - return getRawPage(url, requestMethod) +function getPage({ url, format, requestMethod }) { + if (format === "info" || requestMethod === "HEAD") { + return getPageInfo(url); + } else if (format === "raw") { + return getRawPage(url, requestMethod); } - return getPageContents(url, requestMethod) + return getPageContents(url, requestMethod); } -async function getPageInfo (url) { - const {response, error} = await request(url, 'HEAD') - if (error) return processError(error) +async function getPageInfo(url) { + const { response, error } = await request(url, "HEAD"); + if (error) return processError(error); return { - 'url': url, - 'content_type': response.headers['content-type'], - 'content_length': +(response.headers['content-length']) || -1, - 'http_code': response.statusCode - } + url: url, + content_type: response.headers["content-type"], + content_length: +response.headers["content-length"] || -1, + http_code: response.statusCode, + }; } -async function getRawPage (url, requestMethod) { - const {content, response, error} = await request(url, requestMethod) - if (error) return processError(error) +async function getRawPage(url, requestMethod) { + const { content, response, error } = await request(url, requestMethod); + if (error) return processError(error); - const contentLength = Buffer.byteLength(content) - return {content, contentType: response.headers['content-type'], contentLength} + const contentLength = Buffer.byteLength(content); + return { + content, + contentType: response.headers["content-type"], + contentLength, + }; } -async function getPageContents (url, requestMethod) { - const {content, response, error} = await request(url, requestMethod) - if (error) return processError(error) +async function getPageContents(url, requestMethod) { + const { content, response, error } = await request(url, requestMethod); + if (error) return processError(error); - const contentLength = Buffer.byteLength(content) + const contentLength = Buffer.byteLength(content); return { contents: content.toString(), status: { - 'url': url, - 'content_type': response.headers['content-type'], - 'content_length': contentLength, - 'http_code': response.statusCode, - } - } + url: url, + content_type: response.headers["content-type"], + content_length: contentLength, + http_code: response.statusCode, + }, + }; } -async function request (url, requestMethod) { +async function request(url, requestMethod) { try { - const options = { - 'method': requestMethod, - 'encoding': null, - 'headers': {'user-agent': process.env.USER_AGENT || DEFAULT_USER_AGENT} + let options, response; + const dat = await redisGet(url + requestMethod); + if (dat) { + const body = JSON.parse(dat).body; + const e = JSON.parse(dat).etag; + + options = { + method: requestMethod, + encoding: null, + headers: { + "user-agent": process.env.USER_AGENT || DEFAULT_USER_AGENT, + "if-none-match": e, + }, + }; + response = await got(url, options); + response.body = Buffer.from(body); + return processContent(response); } - - const response = await got(url, options) - if (options.method === 'HEAD') return {response} - - return processContent(response) + options = { + method: requestMethod, + encoding: null, + headers: { "user-agent": process.env.USER_AGENT || DEFAULT_USER_AGENT }, + }; + + response = await got(url, options); + + if (options.method === "HEAD") return { response }; + if (response.headers.etag) { + redisSet( + url + requestMethod, + JSON.stringify({ + etag: response.headers.etag, + body: response.body.toString(), + }) + ); + } + return processContent(response); } catch (error) { - return {error} + return { error }; } } -async function processContent (response) { - const res = {'response': response, 'content': response.body} - return res +async function processContent(response) { + const res = { response: response, content: response.body }; + return res; } -async function processError (e) { - const {response} = e - if (!response) return {contents: null, status: {error: e}} +async function processError(e) { + const { response } = e; + if (!response) return { contents: null, status: { error: e } }; - const {url, statusCode: http_code, headers, body} = response - const contentLength = Buffer.byteLength(body) + const { url, statusCode: http_code, headers, body } = response; + const contentLength = Buffer.byteLength(body); return { contents: body.toString(), status: { - url, http_code, - 'content_type': headers['content-type'], - 'content_length': contentLength - } - } + url, + http_code, + content_type: headers["content-type"], + content_length: contentLength, + }, + }; } diff --git a/app/process-request.js b/app/process-request.js index f28067f..13d906d 100644 --- a/app/process-request.js +++ b/app/process-request.js @@ -1,51 +1,52 @@ -const getPage = require('./get-page') +const getPage = require("./get-page"); -module.exports = processRequest +module.exports = processRequest; -async function processRequest (req, res) { - if (req.method === 'OPTIONS') { - return res.end() +async function processRequest(req, res) { + if (req.method === "OPTIONS") { + return res.end(); } - const startTime = new Date() - const params = parseParams(req) - const page = await getPage(params) - return createResponse(page, params, res, startTime) + const startTime = new Date(); + const params = parseParams(req); + const page = await getPage(params); + return createResponse(page, params, res, startTime); } -function parseParams (req) { +function parseParams(req) { const params = { requestMethod: req.method, ...req.query, - ...req.params - } - params.requestMethod = parseRequestMethod(params.requestMethod) - params.format = (params.format || 'json').toLowerCase() - return params + ...req.params, + }; + params.requestMethod = parseRequestMethod(params.requestMethod); + params.format = (params.format || "json").toLowerCase(); + return params; } -function parseRequestMethod (method) { - method = (method || '').toUpperCase() +function parseRequestMethod(method) { + method = (method || "").toUpperCase(); - if (['HEAD', 'POST', 'PUT', 'DELETE', 'PATCH'].includes(method)) { - return method + if (["HEAD", "POST", "PUT", "DELETE", "PATCH"].includes(method)) { + return method; } - return 'GET' + return "GET"; } -function createResponse (page, params, res, startTime) { - if (params.format === 'raw' && !(page.status || {}).error) { - res.set('Content-Length', page.contentLength) - res.set('Content-Type', page.contentType) - return res.send(page.content) +function createResponse(page, params, res, startTime) { + if (params.format === "raw" && !(page.status || {}).error) { + res.set("Content-Length", page.contentLength); + res.set("Content-Type", page.contentType); + return res.send(page.content); } - if (params.charset) res.set('Content-Type', `application/json; charset=${params.charset}`) - else res.set('Content-Type', 'application/json') + if (params.charset) + res.set("Content-Type", `application/json; charset=${params.charset}`); + else res.set("Content-Type", "application/json"); - if (page.status) page.status.response_time = (new Date() - startTime) - else page.response_time = (new Date() - startTime) + if (page.status) page.status.response_time = new Date() - startTime; + else page.response_time = new Date() - startTime; - if (params.callback) return res.jsonp(page) - return res.send(JSON.stringify(page)) + if (params.callback) return res.jsonp(page); + return res.send(JSON.stringify(page)); } diff --git a/package-lock.json b/package-lock.json index c64552e..0467952 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1348,6 +1348,11 @@ "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", "dev": true }, + "denque": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/denque/-/denque-1.4.1.tgz", + "integrity": "sha512-OfzPuSZKGcgr96rf1oODnfjqBFmr1DVoc/TrItj3Ohe0Ah1C5WX5Baquw/9U9KovnQ88EqmJbD66rKYUQYN1tQ==" + }, "depd": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", @@ -4747,6 +4752,35 @@ "util.promisify": "^1.0.0" } }, + "redis": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/redis/-/redis-3.0.2.tgz", + "integrity": "sha512-PNhLCrjU6vKVuMOyFu7oSP296mwBkcE6lrAjruBYG5LgdSqtRBoVQIylrMyVZD/lkF24RSNNatzvYag6HRBHjQ==", + "requires": { + "denque": "^1.4.1", + "redis-commands": "^1.5.0", + "redis-errors": "^1.2.0", + "redis-parser": "^3.0.0" + } + }, + "redis-commands": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/redis-commands/-/redis-commands-1.5.0.tgz", + "integrity": "sha512-6KxamqpZ468MeQC3bkWmCB1fp56XL64D4Kf0zJSwDZbVLLm7KFkoIcHrgRvQ+sk8dnhySs7+yBg94yIkAK7aJg==" + }, + "redis-errors": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/redis-errors/-/redis-errors-1.2.0.tgz", + "integrity": "sha1-62LSrbFeTq9GEMBK/hUpOEJQq60=" + }, + "redis-parser": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redis-parser/-/redis-parser-3.0.0.tgz", + "integrity": "sha1-tm2CjNyv5rS4pCin3vTGvKwxyLQ=", + "requires": { + "redis-errors": "^1.0.0" + } + }, "regex-not": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", diff --git a/package.json b/package.json index 77965b7..b66bcd5 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,8 @@ }, "dependencies": { "express": "^4.17.1", - "got": "^9.6.0" + "got": "^9.6.0", + "redis": "^3.0.2" }, "devDependencies": { "eslint": "^6.8.0", diff --git a/redis.js b/redis.js new file mode 100644 index 0000000..6abdbe4 --- /dev/null +++ b/redis.js @@ -0,0 +1,16 @@ +const redis = require("redis"); +const redisUrl = "redis://127.0.0.1:6379"; +const client = redis.createClient(redisUrl); +const util = require("util"); +client.get = util.promisify(client.get); + +exports.redisGet = async (key) => { + return client.get(key); +}; + +exports.redisSet = (key, val) => { + client.set(key, val, "EX", 60 * 60 * 24); +}; +exports.closeInstance = () => { + client.quit(() => {}); +}; diff --git a/test/app.test.js b/test/app.test.js index 759028b..5922d11 100644 --- a/test/app.test.js +++ b/test/app.test.js @@ -1,101 +1,111 @@ -const request = require('supertest') -const nock = require('nock') -const app = require('../app.js') - - +const request = require("supertest"); +const nock = require("nock"); +const app = require("../app.js"); +const redis = require("../redis"); beforeAll(() => { - nock('http://example.com') - .persist() - .get('/test.html') - .reply(200, 'Hi, allOrigins!') + nock("http://example.com") + .persist() + .get("/test.html") + .reply(200, "Hi, allOrigins!") - .get('/not-found.html') - .reply(404, 'not found!') + .get("/not-found.html") + .reply(404, "not found!") - .post('/test.html') - .reply(200, "Hi, allOrigins! It's a POST!") + .post("/test.html") + .reply(200, "Hi, allOrigins! It's a POST!") - .head('/test.html') - .reply(204, undefined, {'Content-Type': 'text/html', 'Content-Length': 'invalid'}) -}) + .head("/test.html") + .reply(204, undefined, { + "Content-Type": "text/html", + "Content-Length": "invalid", + }); +}); -test('global.AO_VERSION is defined', () => { - expect(global.AO_VERSION).toBeDefined() -}) +test("global.AO_VERSION is defined", () => { + expect(global.AO_VERSION).toBeDefined(); +}); -test('Test basic /get request', async (done) => { - const res = await request(app).get('/get?url=http://example.com/test.html') +test("Test basic /get request", async (done) => { + const res = await request(app).get("/get?url=http://example.com/test.html"); - expect(res.statusCode).toBe(200) + expect(res.statusCode).toBe(200); - expect(res.body.contents).toBeDefined() - expect(res.body.status).toBeDefined() - expect(res.body.status.content_length).toBe(15) + expect(res.body.contents).toBeDefined(); + expect(res.body.status).toBeDefined(); + expect(res.body.status.content_length).toBe(15); - done() -}) + done(); +}); -test('Test POST to /get endpoint', async (done) => { - const res = await request(app).post('/get?url=http://example.com/test.html') +test("Test POST to /get endpoint", async (done) => { + const res = await request(app).post("/get?url=http://example.com/test.html"); - expect(res.statusCode).toBe(200) + expect(res.statusCode).toBe(200); - expect(res.body.contents).toBeDefined() - expect(res.body.contents).toBe("Hi, allOrigins! It's a POST!") - expect(res.body.status).toBeDefined() + expect(res.body.contents).toBeDefined(); + expect(res.body.contents).toBe("Hi, allOrigins! It's a POST!"); + expect(res.body.status).toBeDefined(); - done() -}) + done(); +}); -test('Test /get request to not found url', async (done) => { - const res = await request(app).get('/get?url=http://example.com/not-found.html') +test("Test /get request to not found url", async (done) => { + const res = await request(app).get( + "/get?url=http://example.com/not-found.html" + ); - expect(res.statusCode).toBe(200) + expect(res.statusCode).toBe(200); - expect(res.body.contents).toBeDefined() - expect(res.body.contents).toBe('not found!') - expect(res.body.status).toBeDefined() - expect(res.body.status.http_code).toBe(404) + expect(res.body.contents).toBeDefined(); + expect(res.body.contents).toBe("not found!"); + expect(res.body.status).toBeDefined(); + expect(res.body.status.http_code).toBe(404); - done() -}) + done(); +}); -test('Test /raw request', async (done) => { - const res = await request(app).get('/raw?url=http://example.com/test.html') +test("Test /raw request", async (done) => { + const res = await request(app).get("/raw?url=http://example.com/test.html"); - expect(res.statusCode).toBe(200) + expect(res.statusCode).toBe(200); - expect(res.body.contents).toBeUndefined() - expect(res.body.status).toBeUndefined() - expect(res.text).toBe('Hi, allOrigins!') - done() -}) + expect(res.body.contents).toBeUndefined(); + expect(res.body.status).toBeUndefined(); + expect(res.text).toBe("Hi, allOrigins!"); + done(); +}); -test('Test /info request', async (done) => { - const res = await request(app).get('/info?url=http://example.com/test.html') +test("Test /info request", async (done) => { + const res = await request(app).get("/info?url=http://example.com/test.html"); - expect(res.statusCode).toBe(200) + expect(res.statusCode).toBe(200); - expect(res.body.contents).toBeUndefined() - expect(res.body.content_type).toBe('text/html') - expect(res.body.content_length).toBe(-1) - expect(res.body.http_code).toBe(204) + expect(res.body.contents).toBeUndefined(); + expect(res.body.content_type).toBe("text/html"); + expect(res.body.content_length).toBe(-1); + expect(res.body.http_code).toBe(204); - done() -}) + done(); +}); -test('Test OPTIONS request', async (done) => { - const RANDOM_ORIGIN = `https://${Math.random()}.random` +test("Test OPTIONS request", async (done) => { + const RANDOM_ORIGIN = `https://${Math.random()}.random`; - const res = await request(app).options('/get').set('Origin', RANDOM_ORIGIN) + const res = await request(app).options("/get").set("Origin", RANDOM_ORIGIN); - expect(res.statusCode).toBe(200) + expect(res.statusCode).toBe(200); // 'cause we accept requests from allOrigins :D - expect(res.headers['access-control-allow-origin']).toBe(RANDOM_ORIGIN) - expect(res.headers['access-control-allow-methods']).toBe('OPTIONS, GET, POST, PATCH, PUT, DELETE') + expect(res.headers["access-control-allow-origin"]).toBe(RANDOM_ORIGIN); + expect(res.headers["access-control-allow-methods"]).toBe( + "OPTIONS, GET, POST, PATCH, PUT, DELETE" + ); + + expect(res.body.contents).toBeUndefined(); - expect(res.body.contents).toBeUndefined() + done(); +}); - done() -}) +afterAll(() => { + redis.closeInstance(); +}); From acd48dd1136bebeb659c8f8ef37d929ecfe35efa Mon Sep 17 00:00:00 2001 From: Sourav Kunda Date: Fri, 3 Jul 2020 09:11:28 +0530 Subject: [PATCH 2/7] linting error fixed --- .vscode/settings.json | 7 + app/get-page.js | 112 ++--- app/process-request.js | 62 +-- coverage/clover.xml | 121 +++++ coverage/coverage-final.json | 5 + coverage/lcov-report/allOrigins/app.js.html | 181 +++++++ .../allOrigins/app/get-page.js.html | 448 ++++++++++++++++++ .../lcov-report/allOrigins/app/index.html | 125 +++++ .../allOrigins/app/process-request.js.html | 235 +++++++++ coverage/lcov-report/allOrigins/index.html | 125 +++++ coverage/lcov-report/allOrigins/redis.js.html | 127 +++++ coverage/lcov-report/base.css | 224 +++++++++ coverage/lcov-report/block-navigation.js | 79 +++ coverage/lcov-report/index.html | 125 +++++ coverage/lcov-report/prettify.css | 1 + coverage/lcov-report/prettify.js | 2 + coverage/lcov-report/sort-arrow-sprite.png | Bin 0 -> 209 bytes coverage/lcov-report/sorter.js | 170 +++++++ coverage/lcov.info | 213 +++++++++ package-lock.json | 42 +- test/app.test.js | 148 +++--- 21 files changed, 2370 insertions(+), 182 deletions(-) create mode 100644 .vscode/settings.json create mode 100644 coverage/clover.xml create mode 100644 coverage/coverage-final.json create mode 100644 coverage/lcov-report/allOrigins/app.js.html create mode 100644 coverage/lcov-report/allOrigins/app/get-page.js.html create mode 100644 coverage/lcov-report/allOrigins/app/index.html create mode 100644 coverage/lcov-report/allOrigins/app/process-request.js.html create mode 100644 coverage/lcov-report/allOrigins/index.html create mode 100644 coverage/lcov-report/allOrigins/redis.js.html create mode 100644 coverage/lcov-report/base.css create mode 100644 coverage/lcov-report/block-navigation.js create mode 100644 coverage/lcov-report/index.html create mode 100644 coverage/lcov-report/prettify.css create mode 100644 coverage/lcov-report/prettify.js create mode 100644 coverage/lcov-report/sort-arrow-sprite.png create mode 100644 coverage/lcov-report/sorter.js create mode 100644 coverage/lcov.info diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..2d3657f --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,7 @@ +{ + "files.autoSave": "onFocusChange", + "eslint.format.enable": true, + "eslint.codeAction.disableRuleComment": {}, + "eslint.run": "onSave", + "eslint.workingDirectories": [] +} diff --git a/app/get-page.js b/app/get-page.js index ceb85ff..0fba152 100644 --- a/app/get-page.js +++ b/app/get-page.js @@ -1,89 +1,89 @@ -const got = require("got"); -const { redisGet, redisSet } = require("../redis"); +const got = require('got') +const {redisGet, redisSet} = require('../redis') -const DEFAULT_USER_AGENT = `Mozilla/5.0 (compatible; allOrigins/${global.AO_VERSION}; +http://allorigins.ml/)`; +const DEFAULT_USER_AGENT = `Mozilla/5.0 (compatible; allOrigins/${global.AO_VERSION}; +http://allorigins.ml/)` -module.exports = getPage; +module.exports = getPage -function getPage({ url, format, requestMethod }) { - if (format === "info" || requestMethod === "HEAD") { - return getPageInfo(url); - } else if (format === "raw") { - return getRawPage(url, requestMethod); +function getPage ({url, format, requestMethod}) { + if (format === 'info' || requestMethod === 'HEAD') { + return getPageInfo(url) + } else if (format === 'raw') { + return getRawPage(url, requestMethod) } - return getPageContents(url, requestMethod); + return getPageContents(url, requestMethod) } -async function getPageInfo(url) { - const { response, error } = await request(url, "HEAD"); - if (error) return processError(error); +async function getPageInfo (url) { + const {response, error} = await request(url, 'HEAD') + if (error) return processError(error) return { url: url, - content_type: response.headers["content-type"], - content_length: +response.headers["content-length"] || -1, + content_type: response.headers['content-type'], + content_length: +response.headers['content-length'] || -1, http_code: response.statusCode, - }; + } } -async function getRawPage(url, requestMethod) { - const { content, response, error } = await request(url, requestMethod); - if (error) return processError(error); +async function getRawPage (url, requestMethod) { + const {content, response, error} = await request(url, requestMethod) + if (error) return processError(error) - const contentLength = Buffer.byteLength(content); + const contentLength = Buffer.byteLength(content) return { content, - contentType: response.headers["content-type"], + contentType: response.headers['content-type'], contentLength, - }; + } } -async function getPageContents(url, requestMethod) { - const { content, response, error } = await request(url, requestMethod); - if (error) return processError(error); +async function getPageContents (url, requestMethod) { + const {content, response, error} = await request(url, requestMethod) + if (error) return processError(error) - const contentLength = Buffer.byteLength(content); + const contentLength = Buffer.byteLength(content) return { contents: content.toString(), status: { url: url, - content_type: response.headers["content-type"], + content_type: response.headers['content-type'], content_length: contentLength, http_code: response.statusCode, }, - }; + } } -async function request(url, requestMethod) { +async function request (url, requestMethod) { try { - let options, response; - const dat = await redisGet(url + requestMethod); + let options, response + const dat = await redisGet(url + requestMethod) if (dat) { - const body = JSON.parse(dat).body; - const e = JSON.parse(dat).etag; + const body = JSON.parse(dat).body + const e = JSON.parse(dat).etag options = { method: requestMethod, encoding: null, headers: { - "user-agent": process.env.USER_AGENT || DEFAULT_USER_AGENT, - "if-none-match": e, + 'user-agent': process.env.USER_AGENT || DEFAULT_USER_AGENT, + 'if-none-match': e, }, - }; - response = await got(url, options); - response.body = Buffer.from(body); - return processContent(response); + } + response = await got(url, options) + response.body = Buffer.from(body) + return processContent(response) } options = { method: requestMethod, encoding: null, - headers: { "user-agent": process.env.USER_AGENT || DEFAULT_USER_AGENT }, - }; + headers: {'user-agent': process.env.USER_AGENT || DEFAULT_USER_AGENT}, + } - response = await got(url, options); + response = await got(url, options) - if (options.method === "HEAD") return { response }; + if (options.method === 'HEAD') return {response} if (response.headers.etag) { redisSet( url + requestMethod, @@ -91,33 +91,33 @@ async function request(url, requestMethod) { etag: response.headers.etag, body: response.body.toString(), }) - ); + ) } - return processContent(response); + return processContent(response) } catch (error) { - return { error }; + return {error} } } -async function processContent(response) { - const res = { response: response, content: response.body }; - return res; +async function processContent (response) { + const res = {response: response, content: response.body} + return res } -async function processError(e) { - const { response } = e; - if (!response) return { contents: null, status: { error: e } }; +async function processError (e) { + const {response} = e + if (!response) return {contents: null, status: {error: e}} - const { url, statusCode: http_code, headers, body } = response; - const contentLength = Buffer.byteLength(body); + const {url, statusCode: http_code, headers, body} = response + const contentLength = Buffer.byteLength(body) return { contents: body.toString(), status: { url, http_code, - content_type: headers["content-type"], + content_type: headers['content-type'], content_length: contentLength, }, - }; + } } diff --git a/app/process-request.js b/app/process-request.js index 13d906d..f58c7f9 100644 --- a/app/process-request.js +++ b/app/process-request.js @@ -1,52 +1,52 @@ -const getPage = require("./get-page"); +const getPage = require('./get-page') -module.exports = processRequest; +module.exports = processRequest -async function processRequest(req, res) { - if (req.method === "OPTIONS") { - return res.end(); +async function processRequest (req, res) { + if (req.method === 'OPTIONS') { + return res.end() } - const startTime = new Date(); - const params = parseParams(req); - const page = await getPage(params); - return createResponse(page, params, res, startTime); + const startTime = new Date() + const params = parseParams(req) + const page = await getPage(params) + return createResponse(page, params, res, startTime) } -function parseParams(req) { +function parseParams (req) { const params = { requestMethod: req.method, ...req.query, ...req.params, - }; - params.requestMethod = parseRequestMethod(params.requestMethod); - params.format = (params.format || "json").toLowerCase(); - return params; + } + params.requestMethod = parseRequestMethod(params.requestMethod) + params.format = (params.format || 'json').toLowerCase() + return params } -function parseRequestMethod(method) { - method = (method || "").toUpperCase(); +function parseRequestMethod (method) { + method = (method || '').toUpperCase() - if (["HEAD", "POST", "PUT", "DELETE", "PATCH"].includes(method)) { - return method; + if (['HEAD', 'POST', 'PUT', 'DELETE', 'PATCH'].includes(method)) { + return method } - return "GET"; + return 'GET' } -function createResponse(page, params, res, startTime) { - if (params.format === "raw" && !(page.status || {}).error) { - res.set("Content-Length", page.contentLength); - res.set("Content-Type", page.contentType); - return res.send(page.content); +function createResponse (page, params, res, startTime) { + if (params.format === 'raw' && !(page.status || {}).error) { + res.set('Content-Length', page.contentLength) + res.set('Content-Type', page.contentType) + return res.send(page.content) } - if (params.charset) - res.set("Content-Type", `application/json; charset=${params.charset}`); - else res.set("Content-Type", "application/json"); + if (params.charset) { +res.set('Content-Type', `application/json; charset=${params.charset}`) +} else res.set('Content-Type', 'application/json') - if (page.status) page.status.response_time = new Date() - startTime; - else page.response_time = new Date() - startTime; + if (page.status) page.status.response_time = new Date() - startTime + else page.response_time = new Date() - startTime - if (params.callback) return res.jsonp(page); - return res.send(JSON.stringify(page)); + if (params.callback) return res.jsonp(page) + return res.send(JSON.stringify(page)) } diff --git a/coverage/clover.xml b/coverage/clover.xml new file mode 100644 index 0000000..e33a326 --- /dev/null +++ b/coverage/clover.xml @@ -0,0 +1,121 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/coverage/coverage-final.json b/coverage/coverage-final.json new file mode 100644 index 0000000..b3fdfe5 --- /dev/null +++ b/coverage/coverage-final.json @@ -0,0 +1,5 @@ +{"C:\\project\\open-source\\allOrigins\\app.js": {"path":"C:\\project\\open-source\\allOrigins\\app.js","statementMap":{"0":{"start":{"line":7,"column":16},"end":{"line":7,"column":34}},"1":{"start":{"line":9,"column":18},"end":{"line":9,"column":43}},"2":{"start":{"line":12,"column":0},"end":{"line":12,"column":27}},"3":{"start":{"line":14,"column":24},"end":{"line":14,"column":56}},"4":{"start":{"line":16,"column":12},"end":{"line":16,"column":21}},"5":{"start":{"line":18,"column":0},"end":{"line":18,"column":40}},"6":{"start":{"line":19,"column":0},"end":{"line":19,"column":27}},"7":{"start":{"line":20,"column":0},"end":{"line":20,"column":19}},"8":{"start":{"line":22,"column":0},"end":{"line":22,"column":35}},"9":{"start":{"line":26,"column":2},"end":{"line":26,"column":70}},"10":{"start":{"line":27,"column":2},"end":{"line":27,"column":54}},"11":{"start":{"line":28,"column":2},"end":{"line":28,"column":112}},"12":{"start":{"line":29,"column":2},"end":{"line":29,"column":86}},"13":{"start":{"line":30,"column":2},"end":{"line":30,"column":45}},"14":{"start":{"line":31,"column":2},"end":{"line":31,"column":8}},"15":{"start":{"line":34,"column":0},"end":{"line":34,"column":20}}},"fnMap":{"0":{"name":"enableCORS","decl":{"start":{"line":25,"column":9},"end":{"line":25,"column":19}},"loc":{"start":{"line":25,"column":37},"end":{"line":32,"column":1}},"line":25}},"branchMap":{"0":{"loc":{"start":{"line":26,"column":44},"end":{"line":26,"column":69}},"type":"binary-expr","locations":[{"start":{"line":26,"column":44},"end":{"line":26,"column":62}},{"start":{"line":26,"column":66},"end":{"line":26,"column":69}}],"line":26}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":6,"10":6,"11":6,"12":6,"13":6,"14":6,"15":1},"f":{"0":6},"b":{"0":[6,5]},"_coverageSchema":"43e27e138ebf9cfc5966b082cf9a028302ed4184","hash":"1104b77f0ef0f247628324917e5136ea3233a172"} +,"C:\\project\\open-source\\allOrigins\\redis.js": {"path":"C:\\project\\open-source\\allOrigins\\redis.js","statementMap":{"0":{"start":{"line":1,"column":14},"end":{"line":1,"column":30}},"1":{"start":{"line":2,"column":17},"end":{"line":2,"column":41}},"2":{"start":{"line":3,"column":15},"end":{"line":3,"column":43}},"3":{"start":{"line":4,"column":13},"end":{"line":4,"column":28}},"4":{"start":{"line":5,"column":0},"end":{"line":5,"column":40}},"5":{"start":{"line":7,"column":0},"end":{"line":9,"column":2}},"6":{"start":{"line":8,"column":2},"end":{"line":8,"column":25}},"7":{"start":{"line":11,"column":0},"end":{"line":13,"column":2}},"8":{"start":{"line":12,"column":2},"end":{"line":12,"column":43}},"9":{"start":{"line":14,"column":0},"end":{"line":16,"column":2}},"10":{"start":{"line":15,"column":2},"end":{"line":15,"column":24}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":7,"column":19},"end":{"line":7,"column":20}},"loc":{"start":{"line":7,"column":34},"end":{"line":9,"column":1}},"line":7},"1":{"name":"(anonymous_1)","decl":{"start":{"line":11,"column":19},"end":{"line":11,"column":20}},"loc":{"start":{"line":11,"column":33},"end":{"line":13,"column":1}},"line":11},"2":{"name":"(anonymous_2)","decl":{"start":{"line":14,"column":24},"end":{"line":14,"column":25}},"loc":{"start":{"line":14,"column":30},"end":{"line":16,"column":1}},"line":14},"3":{"name":"(anonymous_3)","decl":{"start":{"line":15,"column":14},"end":{"line":15,"column":15}},"loc":{"start":{"line":15,"column":20},"end":{"line":15,"column":22}},"line":15}},"branchMap":{},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":5,"7":1,"8":0,"9":1,"10":1},"f":{"0":5,"1":0,"2":1,"3":0},"b":{},"_coverageSchema":"43e27e138ebf9cfc5966b082cf9a028302ed4184","hash":"18245c1ffbed4a4a5fa61aa8896e2303fd785b66"} +,"C:\\project\\open-source\\allOrigins\\app\\get-page.js": {"path":"C:\\project\\open-source\\allOrigins\\app\\get-page.js","statementMap":{"0":{"start":{"line":1,"column":12},"end":{"line":1,"column":26}},"1":{"start":{"line":2,"column":29},"end":{"line":2,"column":48}},"2":{"start":{"line":4,"column":27},"end":{"line":4,"column":110}},"3":{"start":{"line":6,"column":0},"end":{"line":6,"column":24}},"4":{"start":{"line":9,"column":2},"end":{"line":13,"column":3}},"5":{"start":{"line":10,"column":4},"end":{"line":10,"column":27}},"6":{"start":{"line":11,"column":9},"end":{"line":13,"column":3}},"7":{"start":{"line":12,"column":4},"end":{"line":12,"column":41}},"8":{"start":{"line":15,"column":2},"end":{"line":15,"column":44}},"9":{"start":{"line":19,"column":28},"end":{"line":19,"column":54}},"10":{"start":{"line":20,"column":2},"end":{"line":20,"column":39}},"11":{"start":{"line":20,"column":13},"end":{"line":20,"column":39}},"12":{"start":{"line":22,"column":2},"end":{"line":27,"column":3}},"13":{"start":{"line":31,"column":37},"end":{"line":31,"column":70}},"14":{"start":{"line":32,"column":2},"end":{"line":32,"column":39}},"15":{"start":{"line":32,"column":13},"end":{"line":32,"column":39}},"16":{"start":{"line":34,"column":24},"end":{"line":34,"column":50}},"17":{"start":{"line":35,"column":2},"end":{"line":39,"column":3}},"18":{"start":{"line":43,"column":37},"end":{"line":43,"column":70}},"19":{"start":{"line":44,"column":2},"end":{"line":44,"column":39}},"20":{"start":{"line":44,"column":13},"end":{"line":44,"column":39}},"21":{"start":{"line":46,"column":24},"end":{"line":46,"column":50}},"22":{"start":{"line":47,"column":2},"end":{"line":55,"column":3}},"23":{"start":{"line":59,"column":2},"end":{"line":99,"column":3}},"24":{"start":{"line":61,"column":16},"end":{"line":61,"column":51}},"25":{"start":{"line":62,"column":4},"end":{"line":77,"column":5}},"26":{"start":{"line":63,"column":19},"end":{"line":63,"column":39}},"27":{"start":{"line":64,"column":16},"end":{"line":64,"column":36}},"28":{"start":{"line":66,"column":6},"end":{"line":73,"column":7}},"29":{"start":{"line":74,"column":6},"end":{"line":74,"column":40}},"30":{"start":{"line":75,"column":6},"end":{"line":75,"column":39}},"31":{"start":{"line":76,"column":6},"end":{"line":76,"column":37}},"32":{"start":{"line":78,"column":4},"end":{"line":82,"column":5}},"33":{"start":{"line":84,"column":4},"end":{"line":84,"column":38}},"34":{"start":{"line":86,"column":4},"end":{"line":86,"column":52}},"35":{"start":{"line":86,"column":35},"end":{"line":86,"column":52}},"36":{"start":{"line":87,"column":4},"end":{"line":95,"column":5}},"37":{"start":{"line":88,"column":6},"end":{"line":94,"column":7}},"38":{"start":{"line":96,"column":4},"end":{"line":96,"column":35}},"39":{"start":{"line":98,"column":4},"end":{"line":98,"column":18}},"40":{"start":{"line":103,"column":14},"end":{"line":103,"column":58}},"41":{"start":{"line":104,"column":2},"end":{"line":104,"column":12}},"42":{"start":{"line":108,"column":21},"end":{"line":108,"column":22}},"43":{"start":{"line":109,"column":2},"end":{"line":109,"column":60}},"44":{"start":{"line":109,"column":17},"end":{"line":109,"column":60}},"45":{"start":{"line":111,"column":54},"end":{"line":111,"column":62}},"46":{"start":{"line":112,"column":24},"end":{"line":112,"column":47}},"47":{"start":{"line":114,"column":2},"end":{"line":122,"column":3}}},"fnMap":{"0":{"name":"getPage","decl":{"start":{"line":8,"column":9},"end":{"line":8,"column":16}},"loc":{"start":{"line":8,"column":48},"end":{"line":16,"column":1}},"line":8},"1":{"name":"getPageInfo","decl":{"start":{"line":18,"column":15},"end":{"line":18,"column":26}},"loc":{"start":{"line":18,"column":33},"end":{"line":28,"column":1}},"line":18},"2":{"name":"getRawPage","decl":{"start":{"line":30,"column":15},"end":{"line":30,"column":25}},"loc":{"start":{"line":30,"column":47},"end":{"line":40,"column":1}},"line":30},"3":{"name":"getPageContents","decl":{"start":{"line":42,"column":15},"end":{"line":42,"column":30}},"loc":{"start":{"line":42,"column":52},"end":{"line":56,"column":1}},"line":42},"4":{"name":"request","decl":{"start":{"line":58,"column":15},"end":{"line":58,"column":22}},"loc":{"start":{"line":58,"column":44},"end":{"line":100,"column":1}},"line":58},"5":{"name":"processContent","decl":{"start":{"line":102,"column":15},"end":{"line":102,"column":29}},"loc":{"start":{"line":102,"column":41},"end":{"line":105,"column":1}},"line":102},"6":{"name":"processError","decl":{"start":{"line":107,"column":15},"end":{"line":107,"column":27}},"loc":{"start":{"line":107,"column":32},"end":{"line":123,"column":1}},"line":107}},"branchMap":{"0":{"loc":{"start":{"line":9,"column":2},"end":{"line":13,"column":3}},"type":"if","locations":[{"start":{"line":9,"column":2},"end":{"line":13,"column":3}},{"start":{"line":9,"column":2},"end":{"line":13,"column":3}}],"line":9},"1":{"loc":{"start":{"line":9,"column":6},"end":{"line":9,"column":51}},"type":"binary-expr","locations":[{"start":{"line":9,"column":6},"end":{"line":9,"column":23}},{"start":{"line":9,"column":27},"end":{"line":9,"column":51}}],"line":9},"2":{"loc":{"start":{"line":11,"column":9},"end":{"line":13,"column":3}},"type":"if","locations":[{"start":{"line":11,"column":9},"end":{"line":13,"column":3}},{"start":{"line":11,"column":9},"end":{"line":13,"column":3}}],"line":11},"3":{"loc":{"start":{"line":20,"column":2},"end":{"line":20,"column":39}},"type":"if","locations":[{"start":{"line":20,"column":2},"end":{"line":20,"column":39}},{"start":{"line":20,"column":2},"end":{"line":20,"column":39}}],"line":20},"4":{"loc":{"start":{"line":25,"column":20},"end":{"line":25,"column":61}},"type":"binary-expr","locations":[{"start":{"line":25,"column":20},"end":{"line":25,"column":55}},{"start":{"line":25,"column":59},"end":{"line":25,"column":61}}],"line":25},"5":{"loc":{"start":{"line":32,"column":2},"end":{"line":32,"column":39}},"type":"if","locations":[{"start":{"line":32,"column":2},"end":{"line":32,"column":39}},{"start":{"line":32,"column":2},"end":{"line":32,"column":39}}],"line":32},"6":{"loc":{"start":{"line":44,"column":2},"end":{"line":44,"column":39}},"type":"if","locations":[{"start":{"line":44,"column":2},"end":{"line":44,"column":39}},{"start":{"line":44,"column":2},"end":{"line":44,"column":39}}],"line":44},"7":{"loc":{"start":{"line":62,"column":4},"end":{"line":77,"column":5}},"type":"if","locations":[{"start":{"line":62,"column":4},"end":{"line":77,"column":5}},{"start":{"line":62,"column":4},"end":{"line":77,"column":5}}],"line":62},"8":{"loc":{"start":{"line":70,"column":24},"end":{"line":70,"column":68}},"type":"binary-expr","locations":[{"start":{"line":70,"column":24},"end":{"line":70,"column":46}},{"start":{"line":70,"column":50},"end":{"line":70,"column":68}}],"line":70},"9":{"loc":{"start":{"line":81,"column":30},"end":{"line":81,"column":74}},"type":"binary-expr","locations":[{"start":{"line":81,"column":30},"end":{"line":81,"column":52}},{"start":{"line":81,"column":56},"end":{"line":81,"column":74}}],"line":81},"10":{"loc":{"start":{"line":86,"column":4},"end":{"line":86,"column":52}},"type":"if","locations":[{"start":{"line":86,"column":4},"end":{"line":86,"column":52}},{"start":{"line":86,"column":4},"end":{"line":86,"column":52}}],"line":86},"11":{"loc":{"start":{"line":87,"column":4},"end":{"line":95,"column":5}},"type":"if","locations":[{"start":{"line":87,"column":4},"end":{"line":95,"column":5}},{"start":{"line":87,"column":4},"end":{"line":95,"column":5}}],"line":87},"12":{"loc":{"start":{"line":109,"column":2},"end":{"line":109,"column":60}},"type":"if","locations":[{"start":{"line":109,"column":2},"end":{"line":109,"column":60}},{"start":{"line":109,"column":2},"end":{"line":109,"column":60}}],"line":109}},"s":{"0":1,"1":1,"2":1,"3":1,"4":5,"5":1,"6":4,"7":1,"8":3,"9":1,"10":1,"11":0,"12":1,"13":1,"14":1,"15":0,"16":1,"17":1,"18":3,"19":3,"20":1,"21":2,"22":2,"23":5,"24":5,"25":5,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":5,"33":5,"34":4,"35":1,"36":3,"37":0,"38":3,"39":1,"40":3,"41":3,"42":1,"43":1,"44":0,"45":1,"46":1,"47":1},"f":{"0":5,"1":1,"2":1,"3":3,"4":5,"5":3,"6":1},"b":{"0":[1,4],"1":[5,4],"2":[1,3],"3":[0,1],"4":[1,1],"5":[0,1],"6":[1,2],"7":[0,5],"8":[0,0],"9":[5,5],"10":[1,3],"11":[0,3],"12":[0,1]},"_coverageSchema":"43e27e138ebf9cfc5966b082cf9a028302ed4184","hash":"346e95d9f09fe4b25255d08eefb3757a9a2005fb"} +,"C:\\project\\open-source\\allOrigins\\app\\process-request.js": {"path":"C:\\project\\open-source\\allOrigins\\app\\process-request.js","statementMap":{"0":{"start":{"line":1,"column":16},"end":{"line":1,"column":37}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":31}},"2":{"start":{"line":6,"column":2},"end":{"line":8,"column":3}},"3":{"start":{"line":7,"column":4},"end":{"line":7,"column":20}},"4":{"start":{"line":10,"column":20},"end":{"line":10,"column":30}},"5":{"start":{"line":11,"column":17},"end":{"line":11,"column":33}},"6":{"start":{"line":12,"column":15},"end":{"line":12,"column":36}},"7":{"start":{"line":13,"column":2},"end":{"line":13,"column":53}},"8":{"start":{"line":17,"column":17},"end":{"line":21,"column":3}},"9":{"start":{"line":22,"column":2},"end":{"line":22,"column":65}},"10":{"start":{"line":23,"column":2},"end":{"line":23,"column":57}},"11":{"start":{"line":24,"column":2},"end":{"line":24,"column":15}},"12":{"start":{"line":28,"column":2},"end":{"line":28,"column":39}},"13":{"start":{"line":30,"column":2},"end":{"line":32,"column":3}},"14":{"start":{"line":31,"column":4},"end":{"line":31,"column":17}},"15":{"start":{"line":33,"column":2},"end":{"line":33,"column":14}},"16":{"start":{"line":37,"column":2},"end":{"line":41,"column":3}},"17":{"start":{"line":38,"column":4},"end":{"line":38,"column":49}},"18":{"start":{"line":39,"column":4},"end":{"line":39,"column":45}},"19":{"start":{"line":40,"column":4},"end":{"line":40,"column":33}},"20":{"start":{"line":43,"column":2},"end":{"line":45,"column":50}},"21":{"start":{"line":44,"column":0},"end":{"line":44,"column":70}},"22":{"start":{"line":45,"column":7},"end":{"line":45,"column":50}},"23":{"start":{"line":47,"column":2},"end":{"line":48,"column":50}},"24":{"start":{"line":47,"column":19},"end":{"line":47,"column":69}},"25":{"start":{"line":48,"column":7},"end":{"line":48,"column":50}},"26":{"start":{"line":50,"column":2},"end":{"line":50,"column":45}},"27":{"start":{"line":50,"column":23},"end":{"line":50,"column":45}},"28":{"start":{"line":51,"column":2},"end":{"line":51,"column":39}}},"fnMap":{"0":{"name":"processRequest","decl":{"start":{"line":5,"column":15},"end":{"line":5,"column":29}},"loc":{"start":{"line":5,"column":41},"end":{"line":14,"column":1}},"line":5},"1":{"name":"parseParams","decl":{"start":{"line":16,"column":9},"end":{"line":16,"column":20}},"loc":{"start":{"line":16,"column":27},"end":{"line":25,"column":1}},"line":16},"2":{"name":"parseRequestMethod","decl":{"start":{"line":27,"column":9},"end":{"line":27,"column":27}},"loc":{"start":{"line":27,"column":37},"end":{"line":34,"column":1}},"line":27},"3":{"name":"createResponse","decl":{"start":{"line":36,"column":9},"end":{"line":36,"column":23}},"loc":{"start":{"line":36,"column":55},"end":{"line":52,"column":1}},"line":36}},"branchMap":{"0":{"loc":{"start":{"line":6,"column":2},"end":{"line":8,"column":3}},"type":"if","locations":[{"start":{"line":6,"column":2},"end":{"line":8,"column":3}},{"start":{"line":6,"column":2},"end":{"line":8,"column":3}}],"line":6},"1":{"loc":{"start":{"line":23,"column":19},"end":{"line":23,"column":42}},"type":"binary-expr","locations":[{"start":{"line":23,"column":19},"end":{"line":23,"column":32}},{"start":{"line":23,"column":36},"end":{"line":23,"column":42}}],"line":23},"2":{"loc":{"start":{"line":28,"column":12},"end":{"line":28,"column":24}},"type":"binary-expr","locations":[{"start":{"line":28,"column":12},"end":{"line":28,"column":18}},{"start":{"line":28,"column":22},"end":{"line":28,"column":24}}],"line":28},"3":{"loc":{"start":{"line":30,"column":2},"end":{"line":32,"column":3}},"type":"if","locations":[{"start":{"line":30,"column":2},"end":{"line":32,"column":3}},{"start":{"line":30,"column":2},"end":{"line":32,"column":3}}],"line":30},"4":{"loc":{"start":{"line":37,"column":2},"end":{"line":41,"column":3}},"type":"if","locations":[{"start":{"line":37,"column":2},"end":{"line":41,"column":3}},{"start":{"line":37,"column":2},"end":{"line":41,"column":3}}],"line":37},"5":{"loc":{"start":{"line":37,"column":6},"end":{"line":37,"column":59}},"type":"binary-expr","locations":[{"start":{"line":37,"column":6},"end":{"line":37,"column":29}},{"start":{"line":37,"column":33},"end":{"line":37,"column":59}}],"line":37},"6":{"loc":{"start":{"line":37,"column":35},"end":{"line":37,"column":52}},"type":"binary-expr","locations":[{"start":{"line":37,"column":35},"end":{"line":37,"column":46}},{"start":{"line":37,"column":50},"end":{"line":37,"column":52}}],"line":37},"7":{"loc":{"start":{"line":43,"column":2},"end":{"line":45,"column":50}},"type":"if","locations":[{"start":{"line":43,"column":2},"end":{"line":45,"column":50}},{"start":{"line":43,"column":2},"end":{"line":45,"column":50}}],"line":43},"8":{"loc":{"start":{"line":47,"column":2},"end":{"line":48,"column":50}},"type":"if","locations":[{"start":{"line":47,"column":2},"end":{"line":48,"column":50}},{"start":{"line":47,"column":2},"end":{"line":48,"column":50}}],"line":47},"9":{"loc":{"start":{"line":50,"column":2},"end":{"line":50,"column":45}},"type":"if","locations":[{"start":{"line":50,"column":2},"end":{"line":50,"column":45}},{"start":{"line":50,"column":2},"end":{"line":50,"column":45}}],"line":50}},"s":{"0":1,"1":1,"2":6,"3":1,"4":5,"5":5,"6":5,"7":5,"8":5,"9":5,"10":5,"11":5,"12":5,"13":5,"14":1,"15":4,"16":5,"17":1,"18":1,"19":1,"20":4,"21":0,"22":4,"23":4,"24":3,"25":1,"26":4,"27":0,"28":4},"f":{"0":6,"1":5,"2":5,"3":5},"b":{"0":[1,5],"1":[5,0],"2":[5,0],"3":[1,4],"4":[1,4],"5":[5,1],"6":[1,1],"7":[0,4],"8":[3,1],"9":[0,4]},"_coverageSchema":"43e27e138ebf9cfc5966b082cf9a028302ed4184","hash":"a95f857775e17f7303b40c8b713777443fcc94fd"} +} diff --git a/coverage/lcov-report/allOrigins/app.js.html b/coverage/lcov-report/allOrigins/app.js.html new file mode 100644 index 0000000..b896219 --- /dev/null +++ b/coverage/lcov-report/allOrigins/app.js.html @@ -0,0 +1,181 @@ + + + + + + Code coverage report for allOrigins/app.js + + + + + + + + +
+
+

All files / allOrigins app.js

+
+ +
+ 100% + Statements + 16/16 +
+ + +
+ 100% + Branches + 2/2 +
+ + +
+ 100% + Functions + 1/1 +
+ + +
+ 100% + Lines + 16/16 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35  +  +  +  +  +  +1x +  +1x +  +  +1x +  +1x +  +1x +  +1x +1x +1x +  +1x +  +  +  +6x +6x +6x +6x +6x +6x +  +  +1x + 
/*!
+ * AllOrigins
+ * written by Gabriel Nunes <gabriel@multiverso.me>
+ * http://github.com/gnuns
+ */
+ 
+const express = require('express')
+ 
+const {version} = require('./package.json')
+// yep, global. it's ok
+// https://softwareengineering.stackexchange.com/a/47926/289420
+global.AO_VERSION = version
+ 
+const processRequest  = require('./app/process-request')
+ 
+const app = express()
+ 
+app.set('case sensitive routing', false)
+app.disable('x-powered-by')
+app.use(enableCORS)
+ 
+app.all('/:format', processRequest)
+ 
+ 
+function enableCORS (req, res, next) {
+  res.header('Access-Control-Allow-Origin', req.headers.origin || '*')
+  res.header('Access-Control-Allow-Credentials', true)
+  res.header('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, Content-Encoding, Accept')
+  res.header('Access-Control-Allow-Methods', 'OPTIONS, GET, POST, PATCH, PUT, DELETE')
+  res.header('Via', `allOrigins v${version}`)
+  next()
+}
+ 
+module.exports = app
+ 
+ +
+
+ + + + + + + + + \ No newline at end of file diff --git a/coverage/lcov-report/allOrigins/app/get-page.js.html b/coverage/lcov-report/allOrigins/app/get-page.js.html new file mode 100644 index 0000000..6b8e85f --- /dev/null +++ b/coverage/lcov-report/allOrigins/app/get-page.js.html @@ -0,0 +1,448 @@ + + + + + + Code coverage report for allOrigins/app/get-page.js + + + + + + + + +
+
+

All files / allOrigins/app get-page.js

+
+ +
+ 79.17% + Statements + 38/48 +
+ + +
+ 73.08% + Branches + 19/26 +
+ + +
+ 100% + Functions + 7/7 +
+ + +
+ 83.72% + Lines + 36/43 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +1241x +1x +  +1x +  +1x +  +  +5x +1x +4x +1x +  +  +3x +  +  +  +1x +1x +  +1x +  +  +  +  +  +  +  +  +1x +1x +  +1x +1x +  +  +  +  +  +  +  +3x +3x +  +2x +2x +  +  +  +  +  +  +  +  +  +  +  +5x +  +5x +5x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +5x +  +  +  +  +  +5x +  +4x +3x +  +  +  +  +  +  +  +  +3x +  +1x +  +  +  +  +3x +3x +  +  +  +1x +1x +  +1x +1x +  +1x +  +  +  +  +  +  +  +  +  + 
const got = require('got')
+const {redisGet, redisSet} = require('../redis')
+ 
+const DEFAULT_USER_AGENT = `Mozilla/5.0 (compatible; allOrigins/${global.AO_VERSION}; +http://allorigins.ml/)`
+ 
+module.exports = getPage
+ 
+function getPage ({url, format, requestMethod}) {
+  if (format === 'info' || requestMethod === 'HEAD') {
+    return getPageInfo(url)
+  } else if (format === 'raw') {
+    return getRawPage(url, requestMethod)
+  }
+ 
+  return getPageContents(url, requestMethod)
+}
+ 
+async function getPageInfo (url) {
+  const {response, error} = await request(url, 'HEAD')
+  Iif (error) return processError(error)
+ 
+  return {
+    url: url,
+    content_type: response.headers['content-type'],
+    content_length: +response.headers['content-length'] || -1,
+    http_code: response.statusCode,
+  }
+}
+ 
+async function getRawPage (url, requestMethod) {
+  const {content, response, error} = await request(url, requestMethod)
+  Iif (error) return processError(error)
+ 
+  const contentLength = Buffer.byteLength(content)
+  return {
+    content,
+    contentType: response.headers['content-type'],
+    contentLength,
+  }
+}
+ 
+async function getPageContents (url, requestMethod) {
+  const {content, response, error} = await request(url, requestMethod)
+  if (error) return processError(error)
+ 
+  const contentLength = Buffer.byteLength(content)
+  return {
+    contents: content.toString(),
+    status: {
+      url: url,
+      content_type: response.headers['content-type'],
+      content_length: contentLength,
+      http_code: response.statusCode,
+    },
+  }
+}
+ 
+async function request (url, requestMethod) {
+  try {
+    let options, response
+    const dat = await redisGet(url + requestMethod)
+    Iif (dat) {
+      const body = JSON.parse(dat).body
+      const e = JSON.parse(dat).etag
+ 
+      options = {
+        method: requestMethod,
+        encoding: null,
+        headers: {
+          'user-agent': process.env.USER_AGENT || DEFAULT_USER_AGENT,
+          'if-none-match': e,
+        },
+      }
+      response = await got(url, options)
+      response.body = Buffer.from(body)
+      return processContent(response)
+    }
+    options = {
+      method: requestMethod,
+      encoding: null,
+      headers: {'user-agent': process.env.USER_AGENT || DEFAULT_USER_AGENT},
+    }
+ 
+    response = await got(url, options)
+ 
+    if (options.method === 'HEAD') return {response}
+    Iif (response.headers.etag) {
+      redisSet(
+        url + requestMethod,
+        JSON.stringify({
+          etag: response.headers.etag,
+          body: response.body.toString(),
+        })
+      )
+    }
+    return processContent(response)
+  } catch (error) {
+    return {error}
+  }
+}
+ 
+async function processContent (response) {
+  const res = {response: response, content: response.body}
+  return res
+}
+ 
+async function processError (e) {
+  const {response} = e
+  Iif (!response) return {contents: null, status: {error: e}}
+ 
+  const {url, statusCode: http_code, headers, body} = response
+  const contentLength = Buffer.byteLength(body)
+ 
+  return {
+    contents: body.toString(),
+    status: {
+      url,
+      http_code,
+      content_type: headers['content-type'],
+      content_length: contentLength,
+    },
+  }
+}
+ 
+ +
+
+ + + + + + + + + \ No newline at end of file diff --git a/coverage/lcov-report/allOrigins/app/index.html b/coverage/lcov-report/allOrigins/app/index.html new file mode 100644 index 0000000..56496cc --- /dev/null +++ b/coverage/lcov-report/allOrigins/app/index.html @@ -0,0 +1,125 @@ + + + + + + Code coverage report for allOrigins/app + + + + + + + + +
+
+

All files allOrigins/app

+
+ +
+ 84.42% + Statements + 65/77 +
+ + +
+ 76.09% + Branches + 35/46 +
+ + +
+ 100% + Functions + 11/11 +
+ + +
+ 88.57% + Lines + 62/70 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
get-page.js +
+
79.17%38/4873.08%19/26100%7/783.72%36/43
process-request.js +
+
93.1%27/2980%16/20100%4/496.3%26/27
+
+
+
+ + + + + + + + + \ No newline at end of file diff --git a/coverage/lcov-report/allOrigins/app/process-request.js.html b/coverage/lcov-report/allOrigins/app/process-request.js.html new file mode 100644 index 0000000..0b9940d --- /dev/null +++ b/coverage/lcov-report/allOrigins/app/process-request.js.html @@ -0,0 +1,235 @@ + + + + + + Code coverage report for allOrigins/app/process-request.js + + + + + + + + +
+
+

All files / allOrigins/app process-request.js

+
+ +
+ 93.1% + Statements + 27/29 +
+ + +
+ 80% + Branches + 16/20 +
+ + +
+ 100% + Functions + 4/4 +
+ + +
+ 96.3% + Lines + 26/27 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +531x +  +1x +  +  +6x +1x +  +  +5x +5x +5x +5x +  +  +  +5x +  +  +  +  +5x +5x +5x +  +  +  +5x +  +5x +1x +  +4x +  +  +  +5x +1x +1x +1x +  +  +4x +  +4x +  +4x +1x +  +4x +4x +  + 
const getPage = require('./get-page')
+ 
+module.exports = processRequest
+ 
+async function processRequest (req, res) {
+  if (req.method === 'OPTIONS') {
+    return res.end()
+  }
+ 
+  const startTime = new Date()
+  const params = parseParams(req)
+  const page = await getPage(params)
+  return createResponse(page, params, res, startTime)
+}
+ 
+function parseParams (req) {
+  const params = {
+    requestMethod: req.method,
+    ...req.query,
+    ...req.params,
+  }
+  params.requestMethod = parseRequestMethod(params.requestMethod)
+  params.format = (params.format || 'json').toLowerCase()
+  return params
+}
+ 
+function parseRequestMethod (method) {
+  method = (method || '').toUpperCase()
+ 
+  if (['HEAD', 'POST', 'PUT', 'DELETE', 'PATCH'].includes(method)) {
+    return method
+  }
+  return 'GET'
+}
+ 
+function createResponse (page, params, res, startTime) {
+  if (params.format === 'raw' && !(page.status || {}).error) {
+    res.set('Content-Length', page.contentLength)
+    res.set('Content-Type', page.contentType)
+    return res.send(page.content)
+  }
+ 
+  Iif (params.charset) {
+res.set('Content-Type', `application/json; charset=${params.charset}`)
+} else res.set('Content-Type', 'application/json')
+ 
+  if (page.status) page.status.response_time = new Date() - startTime
+  else page.response_time = new Date() - startTime
+ 
+  Iif (params.callback) return res.jsonp(page)
+  return res.send(JSON.stringify(page))
+}
+ 
+ +
+
+ + + + + + + + + \ No newline at end of file diff --git a/coverage/lcov-report/allOrigins/index.html b/coverage/lcov-report/allOrigins/index.html new file mode 100644 index 0000000..34d352b --- /dev/null +++ b/coverage/lcov-report/allOrigins/index.html @@ -0,0 +1,125 @@ + + + + + + Code coverage report for allOrigins + + + + + + + + +
+
+

All files allOrigins

+
+ +
+ 96.3% + Statements + 26/27 +
+ + +
+ 100% + Branches + 2/2 +
+ + +
+ 60% + Functions + 3/5 +
+ + +
+ 96.3% + Lines + 26/27 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
app.js +
+
100%16/16100%2/2100%1/1100%16/16
redis.js +
+
90.91%10/11100%0/050%2/490.91%10/11
+
+
+
+ + + + + + + + + \ No newline at end of file diff --git a/coverage/lcov-report/allOrigins/redis.js.html b/coverage/lcov-report/allOrigins/redis.js.html new file mode 100644 index 0000000..f8c8c27 --- /dev/null +++ b/coverage/lcov-report/allOrigins/redis.js.html @@ -0,0 +1,127 @@ + + + + + + Code coverage report for allOrigins/redis.js + + + + + + + + +
+
+

All files / allOrigins redis.js

+
+ +
+ 90.91% + Statements + 10/11 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 50% + Functions + 2/4 +
+ + +
+ 90.91% + Lines + 10/11 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +171x +1x +1x +1x +1x +  +1x +5x +  +  +1x +  +  +1x +1x +  + 
const redis = require("redis");
+const redisUrl = "redis://127.0.0.1:6379";
+const client = redis.createClient(redisUrl);
+const util = require("util");
+client.get = util.promisify(client.get);
+ 
+exports.redisGet = async (key) => {
+  return client.get(key);
+};
+ 
+exports.redisSet = (key, val) => {
+  client.set(key, val, "EX", 60 * 60 * 24);
+};
+exports.closeInstance = () => {
+  client.quit(() => {});
+};
+ 
+ +
+
+ + + + + + + + + \ No newline at end of file diff --git a/coverage/lcov-report/base.css b/coverage/lcov-report/base.css new file mode 100644 index 0000000..f418035 --- /dev/null +++ b/coverage/lcov-report/base.css @@ -0,0 +1,224 @@ +body, html { + margin:0; padding: 0; + height: 100%; +} +body { + font-family: Helvetica Neue, Helvetica, Arial; + font-size: 14px; + color:#333; +} +.small { font-size: 12px; } +*, *:after, *:before { + -webkit-box-sizing:border-box; + -moz-box-sizing:border-box; + box-sizing:border-box; + } +h1 { font-size: 20px; margin: 0;} +h2 { font-size: 14px; } +pre { + font: 12px/1.4 Consolas, "Liberation Mono", Menlo, Courier, monospace; + margin: 0; + padding: 0; + -moz-tab-size: 2; + -o-tab-size: 2; + tab-size: 2; +} +a { color:#0074D9; text-decoration:none; } +a:hover { text-decoration:underline; } +.strong { font-weight: bold; } +.space-top1 { padding: 10px 0 0 0; } +.pad2y { padding: 20px 0; } +.pad1y { padding: 10px 0; } +.pad2x { padding: 0 20px; } +.pad2 { padding: 20px; } +.pad1 { padding: 10px; } +.space-left2 { padding-left:55px; } +.space-right2 { padding-right:20px; } +.center { text-align:center; } +.clearfix { display:block; } +.clearfix:after { + content:''; + display:block; + height:0; + clear:both; + visibility:hidden; + } +.fl { float: left; } +@media only screen and (max-width:640px) { + .col3 { width:100%; max-width:100%; } + .hide-mobile { display:none!important; } +} + +.quiet { + color: #7f7f7f; + color: rgba(0,0,0,0.5); +} +.quiet a { opacity: 0.7; } + +.fraction { + font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; + font-size: 10px; + color: #555; + background: #E8E8E8; + padding: 4px 5px; + border-radius: 3px; + vertical-align: middle; +} + +div.path a:link, div.path a:visited { color: #333; } +table.coverage { + border-collapse: collapse; + margin: 10px 0 0 0; + padding: 0; +} + +table.coverage td { + margin: 0; + padding: 0; + vertical-align: top; +} +table.coverage td.line-count { + text-align: right; + padding: 0 5px 0 20px; +} +table.coverage td.line-coverage { + text-align: right; + padding-right: 10px; + min-width:20px; +} + +table.coverage td span.cline-any { + display: inline-block; + padding: 0 5px; + width: 100%; +} +.missing-if-branch { + display: inline-block; + margin-right: 5px; + border-radius: 3px; + position: relative; + padding: 0 4px; + background: #333; + color: yellow; +} + +.skip-if-branch { + display: none; + margin-right: 10px; + position: relative; + padding: 0 4px; + background: #ccc; + color: white; +} +.missing-if-branch .typ, .skip-if-branch .typ { + color: inherit !important; +} +.coverage-summary { + border-collapse: collapse; + width: 100%; +} +.coverage-summary tr { border-bottom: 1px solid #bbb; } +.keyline-all { border: 1px solid #ddd; } +.coverage-summary td, .coverage-summary th { padding: 10px; } +.coverage-summary tbody { border: 1px solid #bbb; } +.coverage-summary td { border-right: 1px solid #bbb; } +.coverage-summary td:last-child { border-right: none; } +.coverage-summary th { + text-align: left; + font-weight: normal; + white-space: nowrap; +} +.coverage-summary th.file { border-right: none !important; } +.coverage-summary th.pct { } +.coverage-summary th.pic, +.coverage-summary th.abs, +.coverage-summary td.pct, +.coverage-summary td.abs { text-align: right; } +.coverage-summary td.file { white-space: nowrap; } +.coverage-summary td.pic { min-width: 120px !important; } +.coverage-summary tfoot td { } + +.coverage-summary .sorter { + height: 10px; + width: 7px; + display: inline-block; + margin-left: 0.5em; + background: url(sort-arrow-sprite.png) no-repeat scroll 0 0 transparent; +} +.coverage-summary .sorted .sorter { + background-position: 0 -20px; +} +.coverage-summary .sorted-desc .sorter { + background-position: 0 -10px; +} +.status-line { height: 10px; } +/* yellow */ +.cbranch-no { background: yellow !important; color: #111; } +/* dark red */ +.red.solid, .status-line.low, .low .cover-fill { background:#C21F39 } +.low .chart { border:1px solid #C21F39 } +.highlighted, +.highlighted .cstat-no, .highlighted .fstat-no, .highlighted .cbranch-no{ + background: #C21F39 !important; +} +/* medium red */ +.cstat-no, .fstat-no, .cbranch-no, .cbranch-no { background:#F6C6CE } +/* light red */ +.low, .cline-no { background:#FCE1E5 } +/* light green */ +.high, .cline-yes { background:rgb(230,245,208) } +/* medium green */ +.cstat-yes { background:rgb(161,215,106) } +/* dark green */ +.status-line.high, .high .cover-fill { background:rgb(77,146,33) } +.high .chart { border:1px solid rgb(77,146,33) } +/* dark yellow (gold) */ +.status-line.medium, .medium .cover-fill { background: #f9cd0b; } +.medium .chart { border:1px solid #f9cd0b; } +/* light yellow */ +.medium { background: #fff4c2; } + +.cstat-skip { background: #ddd; color: #111; } +.fstat-skip { background: #ddd; color: #111 !important; } +.cbranch-skip { background: #ddd !important; color: #111; } + +span.cline-neutral { background: #eaeaea; } + +.coverage-summary td.empty { + opacity: .5; + padding-top: 4px; + padding-bottom: 4px; + line-height: 1; + color: #888; +} + +.cover-fill, .cover-empty { + display:inline-block; + height: 12px; +} +.chart { + line-height: 0; +} +.cover-empty { + background: white; +} +.cover-full { + border-right: none !important; +} +pre.prettyprint { + border: none !important; + padding: 0 !important; + margin: 0 !important; +} +.com { color: #999 !important; } +.ignore-none { color: #999; font-weight: normal; } + +.wrapper { + min-height: 100%; + height: auto !important; + height: 100%; + margin: 0 auto -48px; +} +.footer, .push { + height: 48px; +} diff --git a/coverage/lcov-report/block-navigation.js b/coverage/lcov-report/block-navigation.js new file mode 100644 index 0000000..c7ff5a5 --- /dev/null +++ b/coverage/lcov-report/block-navigation.js @@ -0,0 +1,79 @@ +/* eslint-disable */ +var jumpToCode = (function init() { + // Classes of code we would like to highlight in the file view + var missingCoverageClasses = ['.cbranch-no', '.cstat-no', '.fstat-no']; + + // Elements to highlight in the file listing view + var fileListingElements = ['td.pct.low']; + + // We don't want to select elements that are direct descendants of another match + var notSelector = ':not(' + missingCoverageClasses.join('):not(') + ') > '; // becomes `:not(a):not(b) > ` + + // Selecter that finds elements on the page to which we can jump + var selector = + fileListingElements.join(', ') + + ', ' + + notSelector + + missingCoverageClasses.join(', ' + notSelector); // becomes `:not(a):not(b) > a, :not(a):not(b) > b` + + // The NodeList of matching elements + var missingCoverageElements = document.querySelectorAll(selector); + + var currentIndex; + + function toggleClass(index) { + missingCoverageElements + .item(currentIndex) + .classList.remove('highlighted'); + missingCoverageElements.item(index).classList.add('highlighted'); + } + + function makeCurrent(index) { + toggleClass(index); + currentIndex = index; + missingCoverageElements.item(index).scrollIntoView({ + behavior: 'smooth', + block: 'center', + inline: 'center' + }); + } + + function goToPrevious() { + var nextIndex = 0; + if (typeof currentIndex !== 'number' || currentIndex === 0) { + nextIndex = missingCoverageElements.length - 1; + } else if (missingCoverageElements.length > 1) { + nextIndex = currentIndex - 1; + } + + makeCurrent(nextIndex); + } + + function goToNext() { + var nextIndex = 0; + + if ( + typeof currentIndex === 'number' && + currentIndex < missingCoverageElements.length - 1 + ) { + nextIndex = currentIndex + 1; + } + + makeCurrent(nextIndex); + } + + return function jump(event) { + switch (event.which) { + case 78: // n + case 74: // j + goToNext(); + break; + case 66: // b + case 75: // k + case 80: // p + goToPrevious(); + break; + } + }; +})(); +window.addEventListener('keydown', jumpToCode); diff --git a/coverage/lcov-report/index.html b/coverage/lcov-report/index.html new file mode 100644 index 0000000..def4eaf --- /dev/null +++ b/coverage/lcov-report/index.html @@ -0,0 +1,125 @@ + + + + + + Code coverage report for All files + + + + + + + + +
+
+

All files

+
+ +
+ 87.5% + Statements + 91/104 +
+ + +
+ 77.08% + Branches + 37/48 +
+ + +
+ 87.5% + Functions + 14/16 +
+ + +
+ 90.72% + Lines + 88/97 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
allOrigins +
+
96.3%26/27100%2/260%3/596.3%26/27
allOrigins/app +
+
84.42%65/7776.09%35/46100%11/1188.57%62/70
+
+
+
+ + + + + + + + + \ No newline at end of file diff --git a/coverage/lcov-report/prettify.css b/coverage/lcov-report/prettify.css new file mode 100644 index 0000000..b317a7c --- /dev/null +++ b/coverage/lcov-report/prettify.css @@ -0,0 +1 @@ +.pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee} diff --git a/coverage/lcov-report/prettify.js b/coverage/lcov-report/prettify.js new file mode 100644 index 0000000..b322523 --- /dev/null +++ b/coverage/lcov-report/prettify.js @@ -0,0 +1,2 @@ +/* eslint-disable */ +window.PR_SHOULD_USE_CONTINUATION=true;(function(){var h=["break,continue,do,else,for,if,return,while"];var u=[h,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"];var p=[u,"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"];var l=[p,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"];var x=[p,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"];var R=[x,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"];var r="all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes";var w=[p,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"];var s="caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END";var I=[h,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"];var f=[h,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"];var H=[h,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"];var A=[l,R,w,s+I,f,H];var e=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/;var C="str";var z="kwd";var j="com";var O="typ";var G="lit";var L="pun";var F="pln";var m="tag";var E="dec";var J="src";var P="atn";var n="atv";var N="nocode";var M="(?:^^\\.?|[+-]|\\!|\\!=|\\!==|\\#|\\%|\\%=|&|&&|&&=|&=|\\(|\\*|\\*=|\\+=|\\,|\\-=|\\->|\\/|\\/=|:|::|\\;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|\\?|\\@|\\[|\\^|\\^=|\\^\\^|\\^\\^=|\\{|\\||\\|=|\\|\\||\\|\\|=|\\~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*";function k(Z){var ad=0;var S=false;var ac=false;for(var V=0,U=Z.length;V122)){if(!(al<65||ag>90)){af.push([Math.max(65,ag)|32,Math.min(al,90)|32])}if(!(al<97||ag>122)){af.push([Math.max(97,ag)&~32,Math.min(al,122)&~32])}}}}af.sort(function(av,au){return(av[0]-au[0])||(au[1]-av[1])});var ai=[];var ap=[NaN,NaN];for(var ar=0;arat[0]){if(at[1]+1>at[0]){an.push("-")}an.push(T(at[1]))}}an.push("]");return an.join("")}function W(al){var aj=al.source.match(new RegExp("(?:\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]|\\\\u[A-Fa-f0-9]{4}|\\\\x[A-Fa-f0-9]{2}|\\\\[0-9]+|\\\\[^ux0-9]|\\(\\?[:!=]|[\\(\\)\\^]|[^\\x5B\\x5C\\(\\)\\^]+)","g"));var ah=aj.length;var an=[];for(var ak=0,am=0;ak=2&&ai==="["){aj[ak]=X(ag)}else{if(ai!=="\\"){aj[ak]=ag.replace(/[a-zA-Z]/g,function(ao){var ap=ao.charCodeAt(0);return"["+String.fromCharCode(ap&~32,ap|32)+"]"})}}}}return aj.join("")}var aa=[];for(var V=0,U=Z.length;V=0;){S[ac.charAt(ae)]=Y}}var af=Y[1];var aa=""+af;if(!ag.hasOwnProperty(aa)){ah.push(af);ag[aa]=null}}ah.push(/[\0-\uffff]/);V=k(ah)})();var X=T.length;var W=function(ah){var Z=ah.sourceCode,Y=ah.basePos;var ad=[Y,F];var af=0;var an=Z.match(V)||[];var aj={};for(var ae=0,aq=an.length;ae=5&&"lang-"===ap.substring(0,5);if(am&&!(ai&&typeof ai[1]==="string")){am=false;ap=J}if(!am){aj[ag]=ap}}var ab=af;af+=ag.length;if(!am){ad.push(Y+ab,ap)}else{var al=ai[1];var ak=ag.indexOf(al);var ac=ak+al.length;if(ai[2]){ac=ag.length-ai[2].length;ak=ac-al.length}var ar=ap.substring(5);B(Y+ab,ag.substring(0,ak),W,ad);B(Y+ab+ak,al,q(ar,al),ad);B(Y+ab+ac,ag.substring(ac),W,ad)}}ah.decorations=ad};return W}function i(T){var W=[],S=[];if(T.tripleQuotedStrings){W.push([C,/^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,null,"'\""])}else{if(T.multiLineStrings){W.push([C,/^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,null,"'\"`"])}else{W.push([C,/^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,null,"\"'"])}}if(T.verbatimStrings){S.push([C,/^@\"(?:[^\"]|\"\")*(?:\"|$)/,null])}var Y=T.hashComments;if(Y){if(T.cStyleComments){if(Y>1){W.push([j,/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,null,"#"])}else{W.push([j,/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\r\n]*)/,null,"#"])}S.push([C,/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,null])}else{W.push([j,/^#[^\r\n]*/,null,"#"])}}if(T.cStyleComments){S.push([j,/^\/\/[^\r\n]*/,null]);S.push([j,/^\/\*[\s\S]*?(?:\*\/|$)/,null])}if(T.regexLiterals){var X=("/(?=[^/*])(?:[^/\\x5B\\x5C]|\\x5C[\\s\\S]|\\x5B(?:[^\\x5C\\x5D]|\\x5C[\\s\\S])*(?:\\x5D|$))+/");S.push(["lang-regex",new RegExp("^"+M+"("+X+")")])}var V=T.types;if(V){S.push([O,V])}var U=(""+T.keywords).replace(/^ | $/g,"");if(U.length){S.push([z,new RegExp("^(?:"+U.replace(/[\s,]+/g,"|")+")\\b"),null])}W.push([F,/^\s+/,null," \r\n\t\xA0"]);S.push([G,/^@[a-z_$][a-z_$@0-9]*/i,null],[O,/^(?:[@_]?[A-Z]+[a-z][A-Za-z_$@0-9]*|\w+_t\b)/,null],[F,/^[a-z_$][a-z_$@0-9]*/i,null],[G,new RegExp("^(?:0x[a-f0-9]+|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)(?:e[+\\-]?\\d+)?)[a-z]*","i"),null,"0123456789"],[F,/^\\[\s\S]?/,null],[L,/^.[^\s\w\.$@\'\"\`\/\#\\]*/,null]);return g(W,S)}var K=i({keywords:A,hashComments:true,cStyleComments:true,multiLineStrings:true,regexLiterals:true});function Q(V,ag){var U=/(?:^|\s)nocode(?:\s|$)/;var ab=/\r\n?|\n/;var ac=V.ownerDocument;var S;if(V.currentStyle){S=V.currentStyle.whiteSpace}else{if(window.getComputedStyle){S=ac.defaultView.getComputedStyle(V,null).getPropertyValue("white-space")}}var Z=S&&"pre"===S.substring(0,3);var af=ac.createElement("LI");while(V.firstChild){af.appendChild(V.firstChild)}var W=[af];function ae(al){switch(al.nodeType){case 1:if(U.test(al.className)){break}if("BR"===al.nodeName){ad(al);if(al.parentNode){al.parentNode.removeChild(al)}}else{for(var an=al.firstChild;an;an=an.nextSibling){ae(an)}}break;case 3:case 4:if(Z){var am=al.nodeValue;var aj=am.match(ab);if(aj){var ai=am.substring(0,aj.index);al.nodeValue=ai;var ah=am.substring(aj.index+aj[0].length);if(ah){var ak=al.parentNode;ak.insertBefore(ac.createTextNode(ah),al.nextSibling)}ad(al);if(!ai){al.parentNode.removeChild(al)}}}break}}function ad(ak){while(!ak.nextSibling){ak=ak.parentNode;if(!ak){return}}function ai(al,ar){var aq=ar?al.cloneNode(false):al;var ao=al.parentNode;if(ao){var ap=ai(ao,1);var an=al.nextSibling;ap.appendChild(aq);for(var am=an;am;am=an){an=am.nextSibling;ap.appendChild(am)}}return aq}var ah=ai(ak.nextSibling,0);for(var aj;(aj=ah.parentNode)&&aj.nodeType===1;){ah=aj}W.push(ah)}for(var Y=0;Y=S){ah+=2}if(V>=ap){Z+=2}}}var t={};function c(U,V){for(var S=V.length;--S>=0;){var T=V[S];if(!t.hasOwnProperty(T)){t[T]=U}else{if(window.console){console.warn("cannot override language handler %s",T)}}}}function q(T,S){if(!(T&&t.hasOwnProperty(T))){T=/^\s*]*(?:>|$)/],[j,/^<\!--[\s\S]*?(?:-\->|$)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],[L,/^(?:<[%?]|[%?]>)/],["lang-",/^]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-js",/^]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),["default-markup","htm","html","mxml","xhtml","xml","xsl"]);c(g([[F,/^[\s]+/,null," \t\r\n"],[n,/^(?:\"[^\"]*\"?|\'[^\']*\'?)/,null,"\"'"]],[[m,/^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],[P,/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/],[L,/^[=<>\/]+/],["lang-js",/^on\w+\s*=\s*\"([^\"]+)\"/i],["lang-js",/^on\w+\s*=\s*\'([^\']+)\'/i],["lang-js",/^on\w+\s*=\s*([^\"\'>\s]+)/i],["lang-css",/^style\s*=\s*\"([^\"]+)\"/i],["lang-css",/^style\s*=\s*\'([^\']+)\'/i],["lang-css",/^style\s*=\s*([^\"\'>\s]+)/i]]),["in.tag"]);c(g([],[[n,/^[\s\S]+/]]),["uq.val"]);c(i({keywords:l,hashComments:true,cStyleComments:true,types:e}),["c","cc","cpp","cxx","cyc","m"]);c(i({keywords:"null,true,false"}),["json"]);c(i({keywords:R,hashComments:true,cStyleComments:true,verbatimStrings:true,types:e}),["cs"]);c(i({keywords:x,cStyleComments:true}),["java"]);c(i({keywords:H,hashComments:true,multiLineStrings:true}),["bsh","csh","sh"]);c(i({keywords:I,hashComments:true,multiLineStrings:true,tripleQuotedStrings:true}),["cv","py"]);c(i({keywords:s,hashComments:true,multiLineStrings:true,regexLiterals:true}),["perl","pl","pm"]);c(i({keywords:f,hashComments:true,multiLineStrings:true,regexLiterals:true}),["rb"]);c(i({keywords:w,cStyleComments:true,regexLiterals:true}),["js"]);c(i({keywords:r,hashComments:3,cStyleComments:true,multilineStrings:true,tripleQuotedStrings:true,regexLiterals:true}),["coffee"]);c(g([],[[C,/^[\s\S]+/]]),["regex"]);function d(V){var U=V.langExtension;try{var S=a(V.sourceNode);var T=S.sourceCode;V.sourceCode=T;V.spans=S.spans;V.basePos=0;q(U,T)(V);D(V)}catch(W){if("console" in window){console.log(W&&W.stack?W.stack:W)}}}function y(W,V,U){var S=document.createElement("PRE");S.innerHTML=W;if(U){Q(S,U)}var T={langExtension:V,numberLines:U,sourceNode:S};d(T);return S.innerHTML}function b(ad){function Y(af){return document.getElementsByTagName(af)}var ac=[Y("pre"),Y("code"),Y("xmp")];var T=[];for(var aa=0;aa=0){var ah=ai.match(ab);var am;if(!ah&&(am=o(aj))&&"CODE"===am.tagName){ah=am.className.match(ab)}if(ah){ah=ah[1]}var al=false;for(var ak=aj.parentNode;ak;ak=ak.parentNode){if((ak.tagName==="pre"||ak.tagName==="code"||ak.tagName==="xmp")&&ak.className&&ak.className.indexOf("prettyprint")>=0){al=true;break}}if(!al){var af=aj.className.match(/\blinenums\b(?::(\d+))?/);af=af?af[1]&&af[1].length?+af[1]:true:false;if(af){Q(aj,af)}S={langExtension:ah,sourceNode:aj,numberLines:af};d(S)}}}if(X]*(?:>|$)/],[PR.PR_COMMENT,/^<\!--[\s\S]*?(?:-\->|$)/],[PR.PR_PUNCTUATION,/^(?:<[%?]|[%?]>)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],["lang-",/^]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-handlebars",/^]*type\s*=\s*['"]?text\/x-handlebars-template['"]?\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-js",/^]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i],[PR.PR_DECLARATION,/^{{[#^>/]?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{&?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{{>?\s*[\w.][^}]*}}}/],[PR.PR_COMMENT,/^{{![^}]*}}/]]),["handlebars","hbs"]);PR.registerLangHandler(PR.createSimpleLexer([[PR.PR_PLAIN,/^[ \t\r\n\f]+/,null," \t\r\n\f"]],[[PR.PR_STRING,/^\"(?:[^\n\r\f\\\"]|\\(?:\r\n?|\n|\f)|\\[\s\S])*\"/,null],[PR.PR_STRING,/^\'(?:[^\n\r\f\\\']|\\(?:\r\n?|\n|\f)|\\[\s\S])*\'/,null],["lang-css-str",/^url\(([^\)\"\']*)\)/i],[PR.PR_KEYWORD,/^(?:url|rgb|\!important|@import|@page|@media|@charset|inherit)(?=[^\-\w]|$)/i,null],["lang-css-kw",/^(-?(?:[_a-z]|(?:\\[0-9a-f]+ ?))(?:[_a-z0-9\-]|\\(?:\\[0-9a-f]+ ?))*)\s*:/i],[PR.PR_COMMENT,/^\/\*[^*]*\*+(?:[^\/*][^*]*\*+)*\//],[PR.PR_COMMENT,/^(?:)/],[PR.PR_LITERAL,/^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i],[PR.PR_LITERAL,/^#(?:[0-9a-f]{3}){1,2}/i],[PR.PR_PLAIN,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i],[PR.PR_PUNCTUATION,/^[^\s\w\'\"]+/]]),["css"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_KEYWORD,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i]]),["css-kw"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_STRING,/^[^\)\"\']+/]]),["css-str"]); diff --git a/coverage/lcov-report/sort-arrow-sprite.png b/coverage/lcov-report/sort-arrow-sprite.png new file mode 100644 index 0000000000000000000000000000000000000000..03f704a609c6fd0dbfdac63466a7d7c958b5cbf3 GIT binary patch literal 209 zcmeAS@N?(olHy`uVBq!ia0vp^>_9Bd!3HEZxJ@+%Qj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>Jii$m5978H@?Fn+^JD|Y9yzj{W`447Gxa{7*dM7nnnD-Lb z6^}Hx2)'; + } + } + return cols; + } + // attaches a data attribute to every tr element with an object + // of data values keyed by column name + function loadRowData(tableRow) { + var tableCols = tableRow.querySelectorAll('td'), + colNode, + col, + data = {}, + i, + val; + for (i = 0; i < tableCols.length; i += 1) { + colNode = tableCols[i]; + col = cols[i]; + val = colNode.getAttribute('data-value'); + if (col.type === 'number') { + val = Number(val); + } + data[col.key] = val; + } + return data; + } + // loads all row data + function loadData() { + var rows = getTableBody().querySelectorAll('tr'), + i; + + for (i = 0; i < rows.length; i += 1) { + rows[i].data = loadRowData(rows[i]); + } + } + // sorts the table using the data for the ith column + function sortByIndex(index, desc) { + var key = cols[index].key, + sorter = function(a, b) { + a = a.data[key]; + b = b.data[key]; + return a < b ? -1 : a > b ? 1 : 0; + }, + finalSorter = sorter, + tableBody = document.querySelector('.coverage-summary tbody'), + rowNodes = tableBody.querySelectorAll('tr'), + rows = [], + i; + + if (desc) { + finalSorter = function(a, b) { + return -1 * sorter(a, b); + }; + } + + for (i = 0; i < rowNodes.length; i += 1) { + rows.push(rowNodes[i]); + tableBody.removeChild(rowNodes[i]); + } + + rows.sort(finalSorter); + + for (i = 0; i < rows.length; i += 1) { + tableBody.appendChild(rows[i]); + } + } + // removes sort indicators for current column being sorted + function removeSortIndicators() { + var col = getNthColumn(currentSort.index), + cls = col.className; + + cls = cls.replace(/ sorted$/, '').replace(/ sorted-desc$/, ''); + col.className = cls; + } + // adds sort indicators for current column being sorted + function addSortIndicators() { + getNthColumn(currentSort.index).className += currentSort.desc + ? ' sorted-desc' + : ' sorted'; + } + // adds event listeners for all sorter widgets + function enableUI() { + var i, + el, + ithSorter = function ithSorter(i) { + var col = cols[i]; + + return function() { + var desc = col.defaultDescSort; + + if (currentSort.index === i) { + desc = !currentSort.desc; + } + sortByIndex(i, desc); + removeSortIndicators(); + currentSort.index = i; + currentSort.desc = desc; + addSortIndicators(); + }; + }; + for (i = 0; i < cols.length; i += 1) { + if (cols[i].sortable) { + // add the click event handler on the th so users + // dont have to click on those tiny arrows + el = getNthColumn(i).querySelector('.sorter').parentElement; + if (el.addEventListener) { + el.addEventListener('click', ithSorter(i)); + } else { + el.attachEvent('onclick', ithSorter(i)); + } + } + } + } + // adds sorting functionality to the UI + return function() { + if (!getTable()) { + return; + } + cols = loadColumns(); + loadData(); + addSortIndicators(); + enableUI(); + }; +})(); + +window.addEventListener('load', addSorting); diff --git a/coverage/lcov.info b/coverage/lcov.info new file mode 100644 index 0000000..98a7293 --- /dev/null +++ b/coverage/lcov.info @@ -0,0 +1,213 @@ +TN: +SF:C:\project\open-source\allOrigins\app.js +FN:25,enableCORS +FNF:1 +FNH:1 +FNDA:6,enableCORS +DA:7,1 +DA:9,1 +DA:12,1 +DA:14,1 +DA:16,1 +DA:18,1 +DA:19,1 +DA:20,1 +DA:22,1 +DA:26,6 +DA:27,6 +DA:28,6 +DA:29,6 +DA:30,6 +DA:31,6 +DA:34,1 +LF:16 +LH:16 +BRDA:26,0,0,6 +BRDA:26,0,1,5 +BRF:2 +BRH:2 +end_of_record +TN: +SF:C:\project\open-source\allOrigins\redis.js +FN:7,(anonymous_0) +FN:11,(anonymous_1) +FN:14,(anonymous_2) +FN:15,(anonymous_3) +FNF:4 +FNH:2 +FNDA:5,(anonymous_0) +FNDA:0,(anonymous_1) +FNDA:1,(anonymous_2) +FNDA:0,(anonymous_3) +DA:1,1 +DA:2,1 +DA:3,1 +DA:4,1 +DA:5,1 +DA:7,1 +DA:8,5 +DA:11,1 +DA:12,0 +DA:14,1 +DA:15,1 +LF:11 +LH:10 +BRF:0 +BRH:0 +end_of_record +TN: +SF:C:\project\open-source\allOrigins\app\get-page.js +FN:8,getPage +FN:18,getPageInfo +FN:30,getRawPage +FN:42,getPageContents +FN:58,request +FN:102,processContent +FN:107,processError +FNF:7 +FNH:7 +FNDA:5,getPage +FNDA:1,getPageInfo +FNDA:1,getRawPage +FNDA:3,getPageContents +FNDA:5,request +FNDA:3,processContent +FNDA:1,processError +DA:1,1 +DA:2,1 +DA:4,1 +DA:6,1 +DA:9,5 +DA:10,1 +DA:11,4 +DA:12,1 +DA:15,3 +DA:19,1 +DA:20,1 +DA:22,1 +DA:31,1 +DA:32,1 +DA:34,1 +DA:35,1 +DA:43,3 +DA:44,3 +DA:46,2 +DA:47,2 +DA:59,5 +DA:61,5 +DA:62,5 +DA:63,0 +DA:64,0 +DA:66,0 +DA:74,0 +DA:75,0 +DA:76,0 +DA:78,5 +DA:84,5 +DA:86,4 +DA:87,3 +DA:88,0 +DA:96,3 +DA:98,1 +DA:103,3 +DA:104,3 +DA:108,1 +DA:109,1 +DA:111,1 +DA:112,1 +DA:114,1 +LF:43 +LH:36 +BRDA:9,0,0,1 +BRDA:9,0,1,4 +BRDA:9,1,0,5 +BRDA:9,1,1,4 +BRDA:11,2,0,1 +BRDA:11,2,1,3 +BRDA:20,3,0,0 +BRDA:20,3,1,1 +BRDA:25,4,0,1 +BRDA:25,4,1,1 +BRDA:32,5,0,0 +BRDA:32,5,1,1 +BRDA:44,6,0,1 +BRDA:44,6,1,2 +BRDA:62,7,0,0 +BRDA:62,7,1,5 +BRDA:70,8,0,0 +BRDA:70,8,1,0 +BRDA:81,9,0,5 +BRDA:81,9,1,5 +BRDA:86,10,0,1 +BRDA:86,10,1,3 +BRDA:87,11,0,0 +BRDA:87,11,1,3 +BRDA:109,12,0,0 +BRDA:109,12,1,1 +BRF:26 +BRH:19 +end_of_record +TN: +SF:C:\project\open-source\allOrigins\app\process-request.js +FN:5,processRequest +FN:16,parseParams +FN:27,parseRequestMethod +FN:36,createResponse +FNF:4 +FNH:4 +FNDA:6,processRequest +FNDA:5,parseParams +FNDA:5,parseRequestMethod +FNDA:5,createResponse +DA:1,1 +DA:3,1 +DA:6,6 +DA:7,1 +DA:10,5 +DA:11,5 +DA:12,5 +DA:13,5 +DA:17,5 +DA:22,5 +DA:23,5 +DA:24,5 +DA:28,5 +DA:30,5 +DA:31,1 +DA:33,4 +DA:37,5 +DA:38,1 +DA:39,1 +DA:40,1 +DA:43,4 +DA:44,0 +DA:45,4 +DA:47,4 +DA:48,1 +DA:50,4 +DA:51,4 +LF:27 +LH:26 +BRDA:6,0,0,1 +BRDA:6,0,1,5 +BRDA:23,1,0,5 +BRDA:23,1,1,0 +BRDA:28,2,0,5 +BRDA:28,2,1,0 +BRDA:30,3,0,1 +BRDA:30,3,1,4 +BRDA:37,4,0,1 +BRDA:37,4,1,4 +BRDA:37,5,0,5 +BRDA:37,5,1,1 +BRDA:37,6,0,1 +BRDA:37,6,1,1 +BRDA:43,7,0,0 +BRDA:43,7,1,4 +BRDA:47,8,0,3 +BRDA:47,8,1,1 +BRDA:50,9,0,0 +BRDA:50,9,1,4 +BRF:20 +BRH:16 +end_of_record diff --git a/package-lock.json b/package-lock.json index 0467952..723cc3c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -483,9 +483,9 @@ } }, "acorn": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.2.0.tgz", - "integrity": "sha512-apwXVmYVpQ34m/i71vrApRrRKCWQnZZF1+npOD0WV5xZFfwWOmKGQ2RWlfdy9vWITsenisM8M0Qeq8agcFHNiQ==", + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.3.1.tgz", + "integrity": "sha512-tLc0wSnatxAQHVHUapaHdz72pi9KUyHjq5KyHjGg9Y8Ifdc79pTh2XvI6I1/chZbnM7QtNKzh66ooDogPZSleA==", "dev": true }, "acorn-globals": { @@ -1037,9 +1037,9 @@ } }, "cli-width": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", - "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", "dev": true }, "cliui": { @@ -1598,9 +1598,9 @@ } }, "eslint-visitor-keys": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.2.0.tgz", - "integrity": "sha512-WFb4ihckKil6hu3Dp798xdzSfddwKKU3+nGniKF6HfeW6OLd2OUDEPP7TcHtB5+QXOKg2s6B2DaMPE1Nn/kxKQ==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", "dev": true }, "espree": { @@ -2933,21 +2933,21 @@ "dev": true }, "inquirer": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.1.0.tgz", - "integrity": "sha512-5fJMWEmikSYu0nv/flMc475MhGbB7TSPd/2IpFV4I4rMklboCH2rQjYY5kKiYGHqUF9gvaambupcJFFG9dvReg==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.0.tgz", + "integrity": "sha512-K+LZp6L/6eE5swqIcVXrxl21aGDU4S50gKH0/d96OMQnSBCyGyZl/oZhbkVmdp5sBoINHd4xZvFSARh2dk6DWA==", "dev": true, "requires": { "ansi-escapes": "^4.2.1", - "chalk": "^3.0.0", + "chalk": "^4.1.0", "cli-cursor": "^3.1.0", - "cli-width": "^2.0.0", + "cli-width": "^3.0.0", "external-editor": "^3.0.3", "figures": "^3.0.0", "lodash": "^4.17.15", "mute-stream": "0.0.8", "run-async": "^2.4.0", - "rxjs": "^6.5.3", + "rxjs": "^6.6.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0", "through": "^2.3.6" @@ -2979,9 +2979,9 @@ } }, "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -4977,9 +4977,9 @@ "dev": true }, "rxjs": { - "version": "6.5.5", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.5.tgz", - "integrity": "sha512-WfQI+1gohdf0Dai/Bbmk5L5ItH5tYqm3ki2c5GdWhKjalzjg93N3avFjVStyZZz+A2Em+ZxKH5bNghw9UeylGQ==", + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.0.tgz", + "integrity": "sha512-3HMA8z/Oz61DUHe+SdOiQyzIf4tOx5oQHmMir7IZEu6TMqCLHT4LRcmNaUS0NwOz8VLvmmBduMsoaUvMaIiqzg==", "dev": true, "requires": { "tslib": "^1.9.0" diff --git a/test/app.test.js b/test/app.test.js index 5922d11..71143c3 100644 --- a/test/app.test.js +++ b/test/app.test.js @@ -1,111 +1,111 @@ -const request = require("supertest"); -const nock = require("nock"); -const app = require("../app.js"); -const redis = require("../redis"); +const request = require('supertest') +const nock = require('nock') +const app = require('../app.js') +const redis = require('../redis') beforeAll(() => { - nock("http://example.com") + nock('http://example.com') .persist() - .get("/test.html") - .reply(200, "Hi, allOrigins!") + .get('/test.html') + .reply(200, 'Hi, allOrigins!') - .get("/not-found.html") - .reply(404, "not found!") + .get('/not-found.html') + .reply(404, 'not found!') - .post("/test.html") + .post('/test.html') .reply(200, "Hi, allOrigins! It's a POST!") - .head("/test.html") + .head('/test.html') .reply(204, undefined, { - "Content-Type": "text/html", - "Content-Length": "invalid", - }); -}); + 'Content-Type': 'text/html', + 'Content-Length': 'invalid', + }) +}) -test("global.AO_VERSION is defined", () => { - expect(global.AO_VERSION).toBeDefined(); -}); +test('global.AO_VERSION is defined', () => { + expect(global.AO_VERSION).toBeDefined() +}) -test("Test basic /get request", async (done) => { - const res = await request(app).get("/get?url=http://example.com/test.html"); +test('Test basic /get request', async (done) => { + const res = await request(app).get('/get?url=http://example.com/test.html') - expect(res.statusCode).toBe(200); + expect(res.statusCode).toBe(200) - expect(res.body.contents).toBeDefined(); - expect(res.body.status).toBeDefined(); - expect(res.body.status.content_length).toBe(15); + expect(res.body.contents).toBeDefined() + expect(res.body.status).toBeDefined() + expect(res.body.status.content_length).toBe(15) - done(); -}); + done() +}) -test("Test POST to /get endpoint", async (done) => { - const res = await request(app).post("/get?url=http://example.com/test.html"); +test('Test POST to /get endpoint', async (done) => { + const res = await request(app).post('/get?url=http://example.com/test.html') - expect(res.statusCode).toBe(200); + expect(res.statusCode).toBe(200) - expect(res.body.contents).toBeDefined(); - expect(res.body.contents).toBe("Hi, allOrigins! It's a POST!"); - expect(res.body.status).toBeDefined(); + expect(res.body.contents).toBeDefined() + expect(res.body.contents).toBe("Hi, allOrigins! It's a POST!") + expect(res.body.status).toBeDefined() - done(); -}); + done() +}) -test("Test /get request to not found url", async (done) => { +test('Test /get request to not found url', async (done) => { const res = await request(app).get( - "/get?url=http://example.com/not-found.html" - ); + '/get?url=http://example.com/not-found.html' + ) - expect(res.statusCode).toBe(200); + expect(res.statusCode).toBe(200) - expect(res.body.contents).toBeDefined(); - expect(res.body.contents).toBe("not found!"); - expect(res.body.status).toBeDefined(); - expect(res.body.status.http_code).toBe(404); + expect(res.body.contents).toBeDefined() + expect(res.body.contents).toBe('not found!') + expect(res.body.status).toBeDefined() + expect(res.body.status.http_code).toBe(404) - done(); -}); + done() +}) -test("Test /raw request", async (done) => { - const res = await request(app).get("/raw?url=http://example.com/test.html"); +test('Test /raw request', async (done) => { + const res = await request(app).get('/raw?url=http://example.com/test.html') - expect(res.statusCode).toBe(200); + expect(res.statusCode).toBe(200) - expect(res.body.contents).toBeUndefined(); - expect(res.body.status).toBeUndefined(); - expect(res.text).toBe("Hi, allOrigins!"); - done(); -}); + expect(res.body.contents).toBeUndefined() + expect(res.body.status).toBeUndefined() + expect(res.text).toBe('Hi, allOrigins!') + done() +}) -test("Test /info request", async (done) => { - const res = await request(app).get("/info?url=http://example.com/test.html"); +test('Test /info request', async (done) => { + const res = await request(app).get('/info?url=http://example.com/test.html') - expect(res.statusCode).toBe(200); + expect(res.statusCode).toBe(200) - expect(res.body.contents).toBeUndefined(); - expect(res.body.content_type).toBe("text/html"); - expect(res.body.content_length).toBe(-1); - expect(res.body.http_code).toBe(204); + expect(res.body.contents).toBeUndefined() + expect(res.body.content_type).toBe('text/html') + expect(res.body.content_length).toBe(-1) + expect(res.body.http_code).toBe(204) - done(); -}); + done() +}) -test("Test OPTIONS request", async (done) => { - const RANDOM_ORIGIN = `https://${Math.random()}.random`; +test('Test OPTIONS request', async (done) => { + const RANDOM_ORIGIN = `https://${Math.random()}.random` - const res = await request(app).options("/get").set("Origin", RANDOM_ORIGIN); + const res = await request(app).options('/get').set('Origin', RANDOM_ORIGIN) - expect(res.statusCode).toBe(200); + expect(res.statusCode).toBe(200) // 'cause we accept requests from allOrigins :D - expect(res.headers["access-control-allow-origin"]).toBe(RANDOM_ORIGIN); - expect(res.headers["access-control-allow-methods"]).toBe( - "OPTIONS, GET, POST, PATCH, PUT, DELETE" - ); + expect(res.headers['access-control-allow-origin']).toBe(RANDOM_ORIGIN) + expect(res.headers['access-control-allow-methods']).toBe( + 'OPTIONS, GET, POST, PATCH, PUT, DELETE' + ) - expect(res.body.contents).toBeUndefined(); + expect(res.body.contents).toBeUndefined() - done(); -}); + done() +}) afterAll(() => { - redis.closeInstance(); -}); + redis.closeInstance() +}) From 698ad242aba707ac10f7d1ddf097b2d49e8057b4 Mon Sep 17 00:00:00 2001 From: Sourav Kunda Date: Fri, 3 Jul 2020 09:24:51 +0530 Subject: [PATCH 3/7] extra folders removed --- .vscode/settings.json | 7 - coverage/clover.xml | 121 ----- coverage/coverage-final.json | 5 - coverage/lcov-report/allOrigins/app.js.html | 181 ------- .../allOrigins/app/get-page.js.html | 448 ------------------ .../lcov-report/allOrigins/app/index.html | 125 ----- .../allOrigins/app/process-request.js.html | 235 --------- coverage/lcov-report/allOrigins/index.html | 125 ----- coverage/lcov-report/allOrigins/redis.js.html | 127 ----- coverage/lcov-report/base.css | 224 --------- coverage/lcov-report/block-navigation.js | 79 --- coverage/lcov-report/index.html | 125 ----- coverage/lcov-report/prettify.css | 1 - coverage/lcov-report/prettify.js | 2 - coverage/lcov-report/sort-arrow-sprite.png | Bin 209 -> 0 bytes coverage/lcov-report/sorter.js | 170 ------- coverage/lcov.info | 213 --------- 17 files changed, 2188 deletions(-) delete mode 100644 .vscode/settings.json delete mode 100644 coverage/clover.xml delete mode 100644 coverage/coverage-final.json delete mode 100644 coverage/lcov-report/allOrigins/app.js.html delete mode 100644 coverage/lcov-report/allOrigins/app/get-page.js.html delete mode 100644 coverage/lcov-report/allOrigins/app/index.html delete mode 100644 coverage/lcov-report/allOrigins/app/process-request.js.html delete mode 100644 coverage/lcov-report/allOrigins/index.html delete mode 100644 coverage/lcov-report/allOrigins/redis.js.html delete mode 100644 coverage/lcov-report/base.css delete mode 100644 coverage/lcov-report/block-navigation.js delete mode 100644 coverage/lcov-report/index.html delete mode 100644 coverage/lcov-report/prettify.css delete mode 100644 coverage/lcov-report/prettify.js delete mode 100644 coverage/lcov-report/sort-arrow-sprite.png delete mode 100644 coverage/lcov-report/sorter.js delete mode 100644 coverage/lcov.info diff --git a/.vscode/settings.json b/.vscode/settings.json deleted file mode 100644 index 2d3657f..0000000 --- a/.vscode/settings.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "files.autoSave": "onFocusChange", - "eslint.format.enable": true, - "eslint.codeAction.disableRuleComment": {}, - "eslint.run": "onSave", - "eslint.workingDirectories": [] -} diff --git a/coverage/clover.xml b/coverage/clover.xml deleted file mode 100644 index e33a326..0000000 --- a/coverage/clover.xml +++ /dev/null @@ -1,121 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/coverage/coverage-final.json b/coverage/coverage-final.json deleted file mode 100644 index b3fdfe5..0000000 --- a/coverage/coverage-final.json +++ /dev/null @@ -1,5 +0,0 @@ -{"C:\\project\\open-source\\allOrigins\\app.js": {"path":"C:\\project\\open-source\\allOrigins\\app.js","statementMap":{"0":{"start":{"line":7,"column":16},"end":{"line":7,"column":34}},"1":{"start":{"line":9,"column":18},"end":{"line":9,"column":43}},"2":{"start":{"line":12,"column":0},"end":{"line":12,"column":27}},"3":{"start":{"line":14,"column":24},"end":{"line":14,"column":56}},"4":{"start":{"line":16,"column":12},"end":{"line":16,"column":21}},"5":{"start":{"line":18,"column":0},"end":{"line":18,"column":40}},"6":{"start":{"line":19,"column":0},"end":{"line":19,"column":27}},"7":{"start":{"line":20,"column":0},"end":{"line":20,"column":19}},"8":{"start":{"line":22,"column":0},"end":{"line":22,"column":35}},"9":{"start":{"line":26,"column":2},"end":{"line":26,"column":70}},"10":{"start":{"line":27,"column":2},"end":{"line":27,"column":54}},"11":{"start":{"line":28,"column":2},"end":{"line":28,"column":112}},"12":{"start":{"line":29,"column":2},"end":{"line":29,"column":86}},"13":{"start":{"line":30,"column":2},"end":{"line":30,"column":45}},"14":{"start":{"line":31,"column":2},"end":{"line":31,"column":8}},"15":{"start":{"line":34,"column":0},"end":{"line":34,"column":20}}},"fnMap":{"0":{"name":"enableCORS","decl":{"start":{"line":25,"column":9},"end":{"line":25,"column":19}},"loc":{"start":{"line":25,"column":37},"end":{"line":32,"column":1}},"line":25}},"branchMap":{"0":{"loc":{"start":{"line":26,"column":44},"end":{"line":26,"column":69}},"type":"binary-expr","locations":[{"start":{"line":26,"column":44},"end":{"line":26,"column":62}},{"start":{"line":26,"column":66},"end":{"line":26,"column":69}}],"line":26}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":6,"10":6,"11":6,"12":6,"13":6,"14":6,"15":1},"f":{"0":6},"b":{"0":[6,5]},"_coverageSchema":"43e27e138ebf9cfc5966b082cf9a028302ed4184","hash":"1104b77f0ef0f247628324917e5136ea3233a172"} -,"C:\\project\\open-source\\allOrigins\\redis.js": {"path":"C:\\project\\open-source\\allOrigins\\redis.js","statementMap":{"0":{"start":{"line":1,"column":14},"end":{"line":1,"column":30}},"1":{"start":{"line":2,"column":17},"end":{"line":2,"column":41}},"2":{"start":{"line":3,"column":15},"end":{"line":3,"column":43}},"3":{"start":{"line":4,"column":13},"end":{"line":4,"column":28}},"4":{"start":{"line":5,"column":0},"end":{"line":5,"column":40}},"5":{"start":{"line":7,"column":0},"end":{"line":9,"column":2}},"6":{"start":{"line":8,"column":2},"end":{"line":8,"column":25}},"7":{"start":{"line":11,"column":0},"end":{"line":13,"column":2}},"8":{"start":{"line":12,"column":2},"end":{"line":12,"column":43}},"9":{"start":{"line":14,"column":0},"end":{"line":16,"column":2}},"10":{"start":{"line":15,"column":2},"end":{"line":15,"column":24}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":7,"column":19},"end":{"line":7,"column":20}},"loc":{"start":{"line":7,"column":34},"end":{"line":9,"column":1}},"line":7},"1":{"name":"(anonymous_1)","decl":{"start":{"line":11,"column":19},"end":{"line":11,"column":20}},"loc":{"start":{"line":11,"column":33},"end":{"line":13,"column":1}},"line":11},"2":{"name":"(anonymous_2)","decl":{"start":{"line":14,"column":24},"end":{"line":14,"column":25}},"loc":{"start":{"line":14,"column":30},"end":{"line":16,"column":1}},"line":14},"3":{"name":"(anonymous_3)","decl":{"start":{"line":15,"column":14},"end":{"line":15,"column":15}},"loc":{"start":{"line":15,"column":20},"end":{"line":15,"column":22}},"line":15}},"branchMap":{},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":5,"7":1,"8":0,"9":1,"10":1},"f":{"0":5,"1":0,"2":1,"3":0},"b":{},"_coverageSchema":"43e27e138ebf9cfc5966b082cf9a028302ed4184","hash":"18245c1ffbed4a4a5fa61aa8896e2303fd785b66"} -,"C:\\project\\open-source\\allOrigins\\app\\get-page.js": {"path":"C:\\project\\open-source\\allOrigins\\app\\get-page.js","statementMap":{"0":{"start":{"line":1,"column":12},"end":{"line":1,"column":26}},"1":{"start":{"line":2,"column":29},"end":{"line":2,"column":48}},"2":{"start":{"line":4,"column":27},"end":{"line":4,"column":110}},"3":{"start":{"line":6,"column":0},"end":{"line":6,"column":24}},"4":{"start":{"line":9,"column":2},"end":{"line":13,"column":3}},"5":{"start":{"line":10,"column":4},"end":{"line":10,"column":27}},"6":{"start":{"line":11,"column":9},"end":{"line":13,"column":3}},"7":{"start":{"line":12,"column":4},"end":{"line":12,"column":41}},"8":{"start":{"line":15,"column":2},"end":{"line":15,"column":44}},"9":{"start":{"line":19,"column":28},"end":{"line":19,"column":54}},"10":{"start":{"line":20,"column":2},"end":{"line":20,"column":39}},"11":{"start":{"line":20,"column":13},"end":{"line":20,"column":39}},"12":{"start":{"line":22,"column":2},"end":{"line":27,"column":3}},"13":{"start":{"line":31,"column":37},"end":{"line":31,"column":70}},"14":{"start":{"line":32,"column":2},"end":{"line":32,"column":39}},"15":{"start":{"line":32,"column":13},"end":{"line":32,"column":39}},"16":{"start":{"line":34,"column":24},"end":{"line":34,"column":50}},"17":{"start":{"line":35,"column":2},"end":{"line":39,"column":3}},"18":{"start":{"line":43,"column":37},"end":{"line":43,"column":70}},"19":{"start":{"line":44,"column":2},"end":{"line":44,"column":39}},"20":{"start":{"line":44,"column":13},"end":{"line":44,"column":39}},"21":{"start":{"line":46,"column":24},"end":{"line":46,"column":50}},"22":{"start":{"line":47,"column":2},"end":{"line":55,"column":3}},"23":{"start":{"line":59,"column":2},"end":{"line":99,"column":3}},"24":{"start":{"line":61,"column":16},"end":{"line":61,"column":51}},"25":{"start":{"line":62,"column":4},"end":{"line":77,"column":5}},"26":{"start":{"line":63,"column":19},"end":{"line":63,"column":39}},"27":{"start":{"line":64,"column":16},"end":{"line":64,"column":36}},"28":{"start":{"line":66,"column":6},"end":{"line":73,"column":7}},"29":{"start":{"line":74,"column":6},"end":{"line":74,"column":40}},"30":{"start":{"line":75,"column":6},"end":{"line":75,"column":39}},"31":{"start":{"line":76,"column":6},"end":{"line":76,"column":37}},"32":{"start":{"line":78,"column":4},"end":{"line":82,"column":5}},"33":{"start":{"line":84,"column":4},"end":{"line":84,"column":38}},"34":{"start":{"line":86,"column":4},"end":{"line":86,"column":52}},"35":{"start":{"line":86,"column":35},"end":{"line":86,"column":52}},"36":{"start":{"line":87,"column":4},"end":{"line":95,"column":5}},"37":{"start":{"line":88,"column":6},"end":{"line":94,"column":7}},"38":{"start":{"line":96,"column":4},"end":{"line":96,"column":35}},"39":{"start":{"line":98,"column":4},"end":{"line":98,"column":18}},"40":{"start":{"line":103,"column":14},"end":{"line":103,"column":58}},"41":{"start":{"line":104,"column":2},"end":{"line":104,"column":12}},"42":{"start":{"line":108,"column":21},"end":{"line":108,"column":22}},"43":{"start":{"line":109,"column":2},"end":{"line":109,"column":60}},"44":{"start":{"line":109,"column":17},"end":{"line":109,"column":60}},"45":{"start":{"line":111,"column":54},"end":{"line":111,"column":62}},"46":{"start":{"line":112,"column":24},"end":{"line":112,"column":47}},"47":{"start":{"line":114,"column":2},"end":{"line":122,"column":3}}},"fnMap":{"0":{"name":"getPage","decl":{"start":{"line":8,"column":9},"end":{"line":8,"column":16}},"loc":{"start":{"line":8,"column":48},"end":{"line":16,"column":1}},"line":8},"1":{"name":"getPageInfo","decl":{"start":{"line":18,"column":15},"end":{"line":18,"column":26}},"loc":{"start":{"line":18,"column":33},"end":{"line":28,"column":1}},"line":18},"2":{"name":"getRawPage","decl":{"start":{"line":30,"column":15},"end":{"line":30,"column":25}},"loc":{"start":{"line":30,"column":47},"end":{"line":40,"column":1}},"line":30},"3":{"name":"getPageContents","decl":{"start":{"line":42,"column":15},"end":{"line":42,"column":30}},"loc":{"start":{"line":42,"column":52},"end":{"line":56,"column":1}},"line":42},"4":{"name":"request","decl":{"start":{"line":58,"column":15},"end":{"line":58,"column":22}},"loc":{"start":{"line":58,"column":44},"end":{"line":100,"column":1}},"line":58},"5":{"name":"processContent","decl":{"start":{"line":102,"column":15},"end":{"line":102,"column":29}},"loc":{"start":{"line":102,"column":41},"end":{"line":105,"column":1}},"line":102},"6":{"name":"processError","decl":{"start":{"line":107,"column":15},"end":{"line":107,"column":27}},"loc":{"start":{"line":107,"column":32},"end":{"line":123,"column":1}},"line":107}},"branchMap":{"0":{"loc":{"start":{"line":9,"column":2},"end":{"line":13,"column":3}},"type":"if","locations":[{"start":{"line":9,"column":2},"end":{"line":13,"column":3}},{"start":{"line":9,"column":2},"end":{"line":13,"column":3}}],"line":9},"1":{"loc":{"start":{"line":9,"column":6},"end":{"line":9,"column":51}},"type":"binary-expr","locations":[{"start":{"line":9,"column":6},"end":{"line":9,"column":23}},{"start":{"line":9,"column":27},"end":{"line":9,"column":51}}],"line":9},"2":{"loc":{"start":{"line":11,"column":9},"end":{"line":13,"column":3}},"type":"if","locations":[{"start":{"line":11,"column":9},"end":{"line":13,"column":3}},{"start":{"line":11,"column":9},"end":{"line":13,"column":3}}],"line":11},"3":{"loc":{"start":{"line":20,"column":2},"end":{"line":20,"column":39}},"type":"if","locations":[{"start":{"line":20,"column":2},"end":{"line":20,"column":39}},{"start":{"line":20,"column":2},"end":{"line":20,"column":39}}],"line":20},"4":{"loc":{"start":{"line":25,"column":20},"end":{"line":25,"column":61}},"type":"binary-expr","locations":[{"start":{"line":25,"column":20},"end":{"line":25,"column":55}},{"start":{"line":25,"column":59},"end":{"line":25,"column":61}}],"line":25},"5":{"loc":{"start":{"line":32,"column":2},"end":{"line":32,"column":39}},"type":"if","locations":[{"start":{"line":32,"column":2},"end":{"line":32,"column":39}},{"start":{"line":32,"column":2},"end":{"line":32,"column":39}}],"line":32},"6":{"loc":{"start":{"line":44,"column":2},"end":{"line":44,"column":39}},"type":"if","locations":[{"start":{"line":44,"column":2},"end":{"line":44,"column":39}},{"start":{"line":44,"column":2},"end":{"line":44,"column":39}}],"line":44},"7":{"loc":{"start":{"line":62,"column":4},"end":{"line":77,"column":5}},"type":"if","locations":[{"start":{"line":62,"column":4},"end":{"line":77,"column":5}},{"start":{"line":62,"column":4},"end":{"line":77,"column":5}}],"line":62},"8":{"loc":{"start":{"line":70,"column":24},"end":{"line":70,"column":68}},"type":"binary-expr","locations":[{"start":{"line":70,"column":24},"end":{"line":70,"column":46}},{"start":{"line":70,"column":50},"end":{"line":70,"column":68}}],"line":70},"9":{"loc":{"start":{"line":81,"column":30},"end":{"line":81,"column":74}},"type":"binary-expr","locations":[{"start":{"line":81,"column":30},"end":{"line":81,"column":52}},{"start":{"line":81,"column":56},"end":{"line":81,"column":74}}],"line":81},"10":{"loc":{"start":{"line":86,"column":4},"end":{"line":86,"column":52}},"type":"if","locations":[{"start":{"line":86,"column":4},"end":{"line":86,"column":52}},{"start":{"line":86,"column":4},"end":{"line":86,"column":52}}],"line":86},"11":{"loc":{"start":{"line":87,"column":4},"end":{"line":95,"column":5}},"type":"if","locations":[{"start":{"line":87,"column":4},"end":{"line":95,"column":5}},{"start":{"line":87,"column":4},"end":{"line":95,"column":5}}],"line":87},"12":{"loc":{"start":{"line":109,"column":2},"end":{"line":109,"column":60}},"type":"if","locations":[{"start":{"line":109,"column":2},"end":{"line":109,"column":60}},{"start":{"line":109,"column":2},"end":{"line":109,"column":60}}],"line":109}},"s":{"0":1,"1":1,"2":1,"3":1,"4":5,"5":1,"6":4,"7":1,"8":3,"9":1,"10":1,"11":0,"12":1,"13":1,"14":1,"15":0,"16":1,"17":1,"18":3,"19":3,"20":1,"21":2,"22":2,"23":5,"24":5,"25":5,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":5,"33":5,"34":4,"35":1,"36":3,"37":0,"38":3,"39":1,"40":3,"41":3,"42":1,"43":1,"44":0,"45":1,"46":1,"47":1},"f":{"0":5,"1":1,"2":1,"3":3,"4":5,"5":3,"6":1},"b":{"0":[1,4],"1":[5,4],"2":[1,3],"3":[0,1],"4":[1,1],"5":[0,1],"6":[1,2],"7":[0,5],"8":[0,0],"9":[5,5],"10":[1,3],"11":[0,3],"12":[0,1]},"_coverageSchema":"43e27e138ebf9cfc5966b082cf9a028302ed4184","hash":"346e95d9f09fe4b25255d08eefb3757a9a2005fb"} -,"C:\\project\\open-source\\allOrigins\\app\\process-request.js": {"path":"C:\\project\\open-source\\allOrigins\\app\\process-request.js","statementMap":{"0":{"start":{"line":1,"column":16},"end":{"line":1,"column":37}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":31}},"2":{"start":{"line":6,"column":2},"end":{"line":8,"column":3}},"3":{"start":{"line":7,"column":4},"end":{"line":7,"column":20}},"4":{"start":{"line":10,"column":20},"end":{"line":10,"column":30}},"5":{"start":{"line":11,"column":17},"end":{"line":11,"column":33}},"6":{"start":{"line":12,"column":15},"end":{"line":12,"column":36}},"7":{"start":{"line":13,"column":2},"end":{"line":13,"column":53}},"8":{"start":{"line":17,"column":17},"end":{"line":21,"column":3}},"9":{"start":{"line":22,"column":2},"end":{"line":22,"column":65}},"10":{"start":{"line":23,"column":2},"end":{"line":23,"column":57}},"11":{"start":{"line":24,"column":2},"end":{"line":24,"column":15}},"12":{"start":{"line":28,"column":2},"end":{"line":28,"column":39}},"13":{"start":{"line":30,"column":2},"end":{"line":32,"column":3}},"14":{"start":{"line":31,"column":4},"end":{"line":31,"column":17}},"15":{"start":{"line":33,"column":2},"end":{"line":33,"column":14}},"16":{"start":{"line":37,"column":2},"end":{"line":41,"column":3}},"17":{"start":{"line":38,"column":4},"end":{"line":38,"column":49}},"18":{"start":{"line":39,"column":4},"end":{"line":39,"column":45}},"19":{"start":{"line":40,"column":4},"end":{"line":40,"column":33}},"20":{"start":{"line":43,"column":2},"end":{"line":45,"column":50}},"21":{"start":{"line":44,"column":0},"end":{"line":44,"column":70}},"22":{"start":{"line":45,"column":7},"end":{"line":45,"column":50}},"23":{"start":{"line":47,"column":2},"end":{"line":48,"column":50}},"24":{"start":{"line":47,"column":19},"end":{"line":47,"column":69}},"25":{"start":{"line":48,"column":7},"end":{"line":48,"column":50}},"26":{"start":{"line":50,"column":2},"end":{"line":50,"column":45}},"27":{"start":{"line":50,"column":23},"end":{"line":50,"column":45}},"28":{"start":{"line":51,"column":2},"end":{"line":51,"column":39}}},"fnMap":{"0":{"name":"processRequest","decl":{"start":{"line":5,"column":15},"end":{"line":5,"column":29}},"loc":{"start":{"line":5,"column":41},"end":{"line":14,"column":1}},"line":5},"1":{"name":"parseParams","decl":{"start":{"line":16,"column":9},"end":{"line":16,"column":20}},"loc":{"start":{"line":16,"column":27},"end":{"line":25,"column":1}},"line":16},"2":{"name":"parseRequestMethod","decl":{"start":{"line":27,"column":9},"end":{"line":27,"column":27}},"loc":{"start":{"line":27,"column":37},"end":{"line":34,"column":1}},"line":27},"3":{"name":"createResponse","decl":{"start":{"line":36,"column":9},"end":{"line":36,"column":23}},"loc":{"start":{"line":36,"column":55},"end":{"line":52,"column":1}},"line":36}},"branchMap":{"0":{"loc":{"start":{"line":6,"column":2},"end":{"line":8,"column":3}},"type":"if","locations":[{"start":{"line":6,"column":2},"end":{"line":8,"column":3}},{"start":{"line":6,"column":2},"end":{"line":8,"column":3}}],"line":6},"1":{"loc":{"start":{"line":23,"column":19},"end":{"line":23,"column":42}},"type":"binary-expr","locations":[{"start":{"line":23,"column":19},"end":{"line":23,"column":32}},{"start":{"line":23,"column":36},"end":{"line":23,"column":42}}],"line":23},"2":{"loc":{"start":{"line":28,"column":12},"end":{"line":28,"column":24}},"type":"binary-expr","locations":[{"start":{"line":28,"column":12},"end":{"line":28,"column":18}},{"start":{"line":28,"column":22},"end":{"line":28,"column":24}}],"line":28},"3":{"loc":{"start":{"line":30,"column":2},"end":{"line":32,"column":3}},"type":"if","locations":[{"start":{"line":30,"column":2},"end":{"line":32,"column":3}},{"start":{"line":30,"column":2},"end":{"line":32,"column":3}}],"line":30},"4":{"loc":{"start":{"line":37,"column":2},"end":{"line":41,"column":3}},"type":"if","locations":[{"start":{"line":37,"column":2},"end":{"line":41,"column":3}},{"start":{"line":37,"column":2},"end":{"line":41,"column":3}}],"line":37},"5":{"loc":{"start":{"line":37,"column":6},"end":{"line":37,"column":59}},"type":"binary-expr","locations":[{"start":{"line":37,"column":6},"end":{"line":37,"column":29}},{"start":{"line":37,"column":33},"end":{"line":37,"column":59}}],"line":37},"6":{"loc":{"start":{"line":37,"column":35},"end":{"line":37,"column":52}},"type":"binary-expr","locations":[{"start":{"line":37,"column":35},"end":{"line":37,"column":46}},{"start":{"line":37,"column":50},"end":{"line":37,"column":52}}],"line":37},"7":{"loc":{"start":{"line":43,"column":2},"end":{"line":45,"column":50}},"type":"if","locations":[{"start":{"line":43,"column":2},"end":{"line":45,"column":50}},{"start":{"line":43,"column":2},"end":{"line":45,"column":50}}],"line":43},"8":{"loc":{"start":{"line":47,"column":2},"end":{"line":48,"column":50}},"type":"if","locations":[{"start":{"line":47,"column":2},"end":{"line":48,"column":50}},{"start":{"line":47,"column":2},"end":{"line":48,"column":50}}],"line":47},"9":{"loc":{"start":{"line":50,"column":2},"end":{"line":50,"column":45}},"type":"if","locations":[{"start":{"line":50,"column":2},"end":{"line":50,"column":45}},{"start":{"line":50,"column":2},"end":{"line":50,"column":45}}],"line":50}},"s":{"0":1,"1":1,"2":6,"3":1,"4":5,"5":5,"6":5,"7":5,"8":5,"9":5,"10":5,"11":5,"12":5,"13":5,"14":1,"15":4,"16":5,"17":1,"18":1,"19":1,"20":4,"21":0,"22":4,"23":4,"24":3,"25":1,"26":4,"27":0,"28":4},"f":{"0":6,"1":5,"2":5,"3":5},"b":{"0":[1,5],"1":[5,0],"2":[5,0],"3":[1,4],"4":[1,4],"5":[5,1],"6":[1,1],"7":[0,4],"8":[3,1],"9":[0,4]},"_coverageSchema":"43e27e138ebf9cfc5966b082cf9a028302ed4184","hash":"a95f857775e17f7303b40c8b713777443fcc94fd"} -} diff --git a/coverage/lcov-report/allOrigins/app.js.html b/coverage/lcov-report/allOrigins/app.js.html deleted file mode 100644 index b896219..0000000 --- a/coverage/lcov-report/allOrigins/app.js.html +++ /dev/null @@ -1,181 +0,0 @@ - - - - - - Code coverage report for allOrigins/app.js - - - - - - - - -
-
-

All files / allOrigins app.js

-
- -
- 100% - Statements - 16/16 -
- - -
- 100% - Branches - 2/2 -
- - -
- 100% - Functions - 1/1 -
- - -
- 100% - Lines - 16/16 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

-
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35  -  -  -  -  -  -1x -  -1x -  -  -1x -  -1x -  -1x -  -1x -1x -1x -  -1x -  -  -  -6x -6x -6x -6x -6x -6x -  -  -1x - 
/*!
- * AllOrigins
- * written by Gabriel Nunes <gabriel@multiverso.me>
- * http://github.com/gnuns
- */
- 
-const express = require('express')
- 
-const {version} = require('./package.json')
-// yep, global. it's ok
-// https://softwareengineering.stackexchange.com/a/47926/289420
-global.AO_VERSION = version
- 
-const processRequest  = require('./app/process-request')
- 
-const app = express()
- 
-app.set('case sensitive routing', false)
-app.disable('x-powered-by')
-app.use(enableCORS)
- 
-app.all('/:format', processRequest)
- 
- 
-function enableCORS (req, res, next) {
-  res.header('Access-Control-Allow-Origin', req.headers.origin || '*')
-  res.header('Access-Control-Allow-Credentials', true)
-  res.header('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, Content-Encoding, Accept')
-  res.header('Access-Control-Allow-Methods', 'OPTIONS, GET, POST, PATCH, PUT, DELETE')
-  res.header('Via', `allOrigins v${version}`)
-  next()
-}
- 
-module.exports = app
- 
- -
-
- - - - - - - - - \ No newline at end of file diff --git a/coverage/lcov-report/allOrigins/app/get-page.js.html b/coverage/lcov-report/allOrigins/app/get-page.js.html deleted file mode 100644 index 6b8e85f..0000000 --- a/coverage/lcov-report/allOrigins/app/get-page.js.html +++ /dev/null @@ -1,448 +0,0 @@ - - - - - - Code coverage report for allOrigins/app/get-page.js - - - - - - - - -
-
-

All files / allOrigins/app get-page.js

-
- -
- 79.17% - Statements - 38/48 -
- - -
- 73.08% - Branches - 19/26 -
- - -
- 100% - Functions - 7/7 -
- - -
- 83.72% - Lines - 36/43 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

-
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101 -102 -103 -104 -105 -106 -107 -108 -109 -110 -111 -112 -113 -114 -115 -116 -117 -118 -119 -120 -121 -122 -123 -1241x -1x -  -1x -  -1x -  -  -5x -1x -4x -1x -  -  -3x -  -  -  -1x -1x -  -1x -  -  -  -  -  -  -  -  -1x -1x -  -1x -1x -  -  -  -  -  -  -  -3x -3x -  -2x -2x -  -  -  -  -  -  -  -  -  -  -  -5x -  -5x -5x -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -5x -  -  -  -  -  -5x -  -4x -3x -  -  -  -  -  -  -  -  -3x -  -1x -  -  -  -  -3x -3x -  -  -  -1x -1x -  -1x -1x -  -1x -  -  -  -  -  -  -  -  -  - 
const got = require('got')
-const {redisGet, redisSet} = require('../redis')
- 
-const DEFAULT_USER_AGENT = `Mozilla/5.0 (compatible; allOrigins/${global.AO_VERSION}; +http://allorigins.ml/)`
- 
-module.exports = getPage
- 
-function getPage ({url, format, requestMethod}) {
-  if (format === 'info' || requestMethod === 'HEAD') {
-    return getPageInfo(url)
-  } else if (format === 'raw') {
-    return getRawPage(url, requestMethod)
-  }
- 
-  return getPageContents(url, requestMethod)
-}
- 
-async function getPageInfo (url) {
-  const {response, error} = await request(url, 'HEAD')
-  Iif (error) return processError(error)
- 
-  return {
-    url: url,
-    content_type: response.headers['content-type'],
-    content_length: +response.headers['content-length'] || -1,
-    http_code: response.statusCode,
-  }
-}
- 
-async function getRawPage (url, requestMethod) {
-  const {content, response, error} = await request(url, requestMethod)
-  Iif (error) return processError(error)
- 
-  const contentLength = Buffer.byteLength(content)
-  return {
-    content,
-    contentType: response.headers['content-type'],
-    contentLength,
-  }
-}
- 
-async function getPageContents (url, requestMethod) {
-  const {content, response, error} = await request(url, requestMethod)
-  if (error) return processError(error)
- 
-  const contentLength = Buffer.byteLength(content)
-  return {
-    contents: content.toString(),
-    status: {
-      url: url,
-      content_type: response.headers['content-type'],
-      content_length: contentLength,
-      http_code: response.statusCode,
-    },
-  }
-}
- 
-async function request (url, requestMethod) {
-  try {
-    let options, response
-    const dat = await redisGet(url + requestMethod)
-    Iif (dat) {
-      const body = JSON.parse(dat).body
-      const e = JSON.parse(dat).etag
- 
-      options = {
-        method: requestMethod,
-        encoding: null,
-        headers: {
-          'user-agent': process.env.USER_AGENT || DEFAULT_USER_AGENT,
-          'if-none-match': e,
-        },
-      }
-      response = await got(url, options)
-      response.body = Buffer.from(body)
-      return processContent(response)
-    }
-    options = {
-      method: requestMethod,
-      encoding: null,
-      headers: {'user-agent': process.env.USER_AGENT || DEFAULT_USER_AGENT},
-    }
- 
-    response = await got(url, options)
- 
-    if (options.method === 'HEAD') return {response}
-    Iif (response.headers.etag) {
-      redisSet(
-        url + requestMethod,
-        JSON.stringify({
-          etag: response.headers.etag,
-          body: response.body.toString(),
-        })
-      )
-    }
-    return processContent(response)
-  } catch (error) {
-    return {error}
-  }
-}
- 
-async function processContent (response) {
-  const res = {response: response, content: response.body}
-  return res
-}
- 
-async function processError (e) {
-  const {response} = e
-  Iif (!response) return {contents: null, status: {error: e}}
- 
-  const {url, statusCode: http_code, headers, body} = response
-  const contentLength = Buffer.byteLength(body)
- 
-  return {
-    contents: body.toString(),
-    status: {
-      url,
-      http_code,
-      content_type: headers['content-type'],
-      content_length: contentLength,
-    },
-  }
-}
- 
- -
-
- - - - - - - - - \ No newline at end of file diff --git a/coverage/lcov-report/allOrigins/app/index.html b/coverage/lcov-report/allOrigins/app/index.html deleted file mode 100644 index 56496cc..0000000 --- a/coverage/lcov-report/allOrigins/app/index.html +++ /dev/null @@ -1,125 +0,0 @@ - - - - - - Code coverage report for allOrigins/app - - - - - - - - -
-
-

All files allOrigins/app

-
- -
- 84.42% - Statements - 65/77 -
- - -
- 76.09% - Branches - 35/46 -
- - -
- 100% - Functions - 11/11 -
- - -
- 88.57% - Lines - 62/70 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FileStatementsBranchesFunctionsLines
get-page.js -
-
79.17%38/4873.08%19/26100%7/783.72%36/43
process-request.js -
-
93.1%27/2980%16/20100%4/496.3%26/27
-
-
-
- - - - - - - - - \ No newline at end of file diff --git a/coverage/lcov-report/allOrigins/app/process-request.js.html b/coverage/lcov-report/allOrigins/app/process-request.js.html deleted file mode 100644 index 0b9940d..0000000 --- a/coverage/lcov-report/allOrigins/app/process-request.js.html +++ /dev/null @@ -1,235 +0,0 @@ - - - - - - Code coverage report for allOrigins/app/process-request.js - - - - - - - - -
-
-

All files / allOrigins/app process-request.js

-
- -
- 93.1% - Statements - 27/29 -
- - -
- 80% - Branches - 16/20 -
- - -
- 100% - Functions - 4/4 -
- - -
- 96.3% - Lines - 26/27 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

-
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -531x -  -1x -  -  -6x -1x -  -  -5x -5x -5x -5x -  -  -  -5x -  -  -  -  -5x -5x -5x -  -  -  -5x -  -5x -1x -  -4x -  -  -  -5x -1x -1x -1x -  -  -4x -  -4x -  -4x -1x -  -4x -4x -  - 
const getPage = require('./get-page')
- 
-module.exports = processRequest
- 
-async function processRequest (req, res) {
-  if (req.method === 'OPTIONS') {
-    return res.end()
-  }
- 
-  const startTime = new Date()
-  const params = parseParams(req)
-  const page = await getPage(params)
-  return createResponse(page, params, res, startTime)
-}
- 
-function parseParams (req) {
-  const params = {
-    requestMethod: req.method,
-    ...req.query,
-    ...req.params,
-  }
-  params.requestMethod = parseRequestMethod(params.requestMethod)
-  params.format = (params.format || 'json').toLowerCase()
-  return params
-}
- 
-function parseRequestMethod (method) {
-  method = (method || '').toUpperCase()
- 
-  if (['HEAD', 'POST', 'PUT', 'DELETE', 'PATCH'].includes(method)) {
-    return method
-  }
-  return 'GET'
-}
- 
-function createResponse (page, params, res, startTime) {
-  if (params.format === 'raw' && !(page.status || {}).error) {
-    res.set('Content-Length', page.contentLength)
-    res.set('Content-Type', page.contentType)
-    return res.send(page.content)
-  }
- 
-  Iif (params.charset) {
-res.set('Content-Type', `application/json; charset=${params.charset}`)
-} else res.set('Content-Type', 'application/json')
- 
-  if (page.status) page.status.response_time = new Date() - startTime
-  else page.response_time = new Date() - startTime
- 
-  Iif (params.callback) return res.jsonp(page)
-  return res.send(JSON.stringify(page))
-}
- 
- -
-
- - - - - - - - - \ No newline at end of file diff --git a/coverage/lcov-report/allOrigins/index.html b/coverage/lcov-report/allOrigins/index.html deleted file mode 100644 index 34d352b..0000000 --- a/coverage/lcov-report/allOrigins/index.html +++ /dev/null @@ -1,125 +0,0 @@ - - - - - - Code coverage report for allOrigins - - - - - - - - -
-
-

All files allOrigins

-
- -
- 96.3% - Statements - 26/27 -
- - -
- 100% - Branches - 2/2 -
- - -
- 60% - Functions - 3/5 -
- - -
- 96.3% - Lines - 26/27 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FileStatementsBranchesFunctionsLines
app.js -
-
100%16/16100%2/2100%1/1100%16/16
redis.js -
-
90.91%10/11100%0/050%2/490.91%10/11
-
-
-
- - - - - - - - - \ No newline at end of file diff --git a/coverage/lcov-report/allOrigins/redis.js.html b/coverage/lcov-report/allOrigins/redis.js.html deleted file mode 100644 index f8c8c27..0000000 --- a/coverage/lcov-report/allOrigins/redis.js.html +++ /dev/null @@ -1,127 +0,0 @@ - - - - - - Code coverage report for allOrigins/redis.js - - - - - - - - -
-
-

All files / allOrigins redis.js

-
- -
- 90.91% - Statements - 10/11 -
- - -
- 100% - Branches - 0/0 -
- - -
- 50% - Functions - 2/4 -
- - -
- 90.91% - Lines - 10/11 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

-
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -171x -1x -1x -1x -1x -  -1x -5x -  -  -1x -  -  -1x -1x -  - 
const redis = require("redis");
-const redisUrl = "redis://127.0.0.1:6379";
-const client = redis.createClient(redisUrl);
-const util = require("util");
-client.get = util.promisify(client.get);
- 
-exports.redisGet = async (key) => {
-  return client.get(key);
-};
- 
-exports.redisSet = (key, val) => {
-  client.set(key, val, "EX", 60 * 60 * 24);
-};
-exports.closeInstance = () => {
-  client.quit(() => {});
-};
- 
- -
-
- - - - - - - - - \ No newline at end of file diff --git a/coverage/lcov-report/base.css b/coverage/lcov-report/base.css deleted file mode 100644 index f418035..0000000 --- a/coverage/lcov-report/base.css +++ /dev/null @@ -1,224 +0,0 @@ -body, html { - margin:0; padding: 0; - height: 100%; -} -body { - font-family: Helvetica Neue, Helvetica, Arial; - font-size: 14px; - color:#333; -} -.small { font-size: 12px; } -*, *:after, *:before { - -webkit-box-sizing:border-box; - -moz-box-sizing:border-box; - box-sizing:border-box; - } -h1 { font-size: 20px; margin: 0;} -h2 { font-size: 14px; } -pre { - font: 12px/1.4 Consolas, "Liberation Mono", Menlo, Courier, monospace; - margin: 0; - padding: 0; - -moz-tab-size: 2; - -o-tab-size: 2; - tab-size: 2; -} -a { color:#0074D9; text-decoration:none; } -a:hover { text-decoration:underline; } -.strong { font-weight: bold; } -.space-top1 { padding: 10px 0 0 0; } -.pad2y { padding: 20px 0; } -.pad1y { padding: 10px 0; } -.pad2x { padding: 0 20px; } -.pad2 { padding: 20px; } -.pad1 { padding: 10px; } -.space-left2 { padding-left:55px; } -.space-right2 { padding-right:20px; } -.center { text-align:center; } -.clearfix { display:block; } -.clearfix:after { - content:''; - display:block; - height:0; - clear:both; - visibility:hidden; - } -.fl { float: left; } -@media only screen and (max-width:640px) { - .col3 { width:100%; max-width:100%; } - .hide-mobile { display:none!important; } -} - -.quiet { - color: #7f7f7f; - color: rgba(0,0,0,0.5); -} -.quiet a { opacity: 0.7; } - -.fraction { - font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; - font-size: 10px; - color: #555; - background: #E8E8E8; - padding: 4px 5px; - border-radius: 3px; - vertical-align: middle; -} - -div.path a:link, div.path a:visited { color: #333; } -table.coverage { - border-collapse: collapse; - margin: 10px 0 0 0; - padding: 0; -} - -table.coverage td { - margin: 0; - padding: 0; - vertical-align: top; -} -table.coverage td.line-count { - text-align: right; - padding: 0 5px 0 20px; -} -table.coverage td.line-coverage { - text-align: right; - padding-right: 10px; - min-width:20px; -} - -table.coverage td span.cline-any { - display: inline-block; - padding: 0 5px; - width: 100%; -} -.missing-if-branch { - display: inline-block; - margin-right: 5px; - border-radius: 3px; - position: relative; - padding: 0 4px; - background: #333; - color: yellow; -} - -.skip-if-branch { - display: none; - margin-right: 10px; - position: relative; - padding: 0 4px; - background: #ccc; - color: white; -} -.missing-if-branch .typ, .skip-if-branch .typ { - color: inherit !important; -} -.coverage-summary { - border-collapse: collapse; - width: 100%; -} -.coverage-summary tr { border-bottom: 1px solid #bbb; } -.keyline-all { border: 1px solid #ddd; } -.coverage-summary td, .coverage-summary th { padding: 10px; } -.coverage-summary tbody { border: 1px solid #bbb; } -.coverage-summary td { border-right: 1px solid #bbb; } -.coverage-summary td:last-child { border-right: none; } -.coverage-summary th { - text-align: left; - font-weight: normal; - white-space: nowrap; -} -.coverage-summary th.file { border-right: none !important; } -.coverage-summary th.pct { } -.coverage-summary th.pic, -.coverage-summary th.abs, -.coverage-summary td.pct, -.coverage-summary td.abs { text-align: right; } -.coverage-summary td.file { white-space: nowrap; } -.coverage-summary td.pic { min-width: 120px !important; } -.coverage-summary tfoot td { } - -.coverage-summary .sorter { - height: 10px; - width: 7px; - display: inline-block; - margin-left: 0.5em; - background: url(sort-arrow-sprite.png) no-repeat scroll 0 0 transparent; -} -.coverage-summary .sorted .sorter { - background-position: 0 -20px; -} -.coverage-summary .sorted-desc .sorter { - background-position: 0 -10px; -} -.status-line { height: 10px; } -/* yellow */ -.cbranch-no { background: yellow !important; color: #111; } -/* dark red */ -.red.solid, .status-line.low, .low .cover-fill { background:#C21F39 } -.low .chart { border:1px solid #C21F39 } -.highlighted, -.highlighted .cstat-no, .highlighted .fstat-no, .highlighted .cbranch-no{ - background: #C21F39 !important; -} -/* medium red */ -.cstat-no, .fstat-no, .cbranch-no, .cbranch-no { background:#F6C6CE } -/* light red */ -.low, .cline-no { background:#FCE1E5 } -/* light green */ -.high, .cline-yes { background:rgb(230,245,208) } -/* medium green */ -.cstat-yes { background:rgb(161,215,106) } -/* dark green */ -.status-line.high, .high .cover-fill { background:rgb(77,146,33) } -.high .chart { border:1px solid rgb(77,146,33) } -/* dark yellow (gold) */ -.status-line.medium, .medium .cover-fill { background: #f9cd0b; } -.medium .chart { border:1px solid #f9cd0b; } -/* light yellow */ -.medium { background: #fff4c2; } - -.cstat-skip { background: #ddd; color: #111; } -.fstat-skip { background: #ddd; color: #111 !important; } -.cbranch-skip { background: #ddd !important; color: #111; } - -span.cline-neutral { background: #eaeaea; } - -.coverage-summary td.empty { - opacity: .5; - padding-top: 4px; - padding-bottom: 4px; - line-height: 1; - color: #888; -} - -.cover-fill, .cover-empty { - display:inline-block; - height: 12px; -} -.chart { - line-height: 0; -} -.cover-empty { - background: white; -} -.cover-full { - border-right: none !important; -} -pre.prettyprint { - border: none !important; - padding: 0 !important; - margin: 0 !important; -} -.com { color: #999 !important; } -.ignore-none { color: #999; font-weight: normal; } - -.wrapper { - min-height: 100%; - height: auto !important; - height: 100%; - margin: 0 auto -48px; -} -.footer, .push { - height: 48px; -} diff --git a/coverage/lcov-report/block-navigation.js b/coverage/lcov-report/block-navigation.js deleted file mode 100644 index c7ff5a5..0000000 --- a/coverage/lcov-report/block-navigation.js +++ /dev/null @@ -1,79 +0,0 @@ -/* eslint-disable */ -var jumpToCode = (function init() { - // Classes of code we would like to highlight in the file view - var missingCoverageClasses = ['.cbranch-no', '.cstat-no', '.fstat-no']; - - // Elements to highlight in the file listing view - var fileListingElements = ['td.pct.low']; - - // We don't want to select elements that are direct descendants of another match - var notSelector = ':not(' + missingCoverageClasses.join('):not(') + ') > '; // becomes `:not(a):not(b) > ` - - // Selecter that finds elements on the page to which we can jump - var selector = - fileListingElements.join(', ') + - ', ' + - notSelector + - missingCoverageClasses.join(', ' + notSelector); // becomes `:not(a):not(b) > a, :not(a):not(b) > b` - - // The NodeList of matching elements - var missingCoverageElements = document.querySelectorAll(selector); - - var currentIndex; - - function toggleClass(index) { - missingCoverageElements - .item(currentIndex) - .classList.remove('highlighted'); - missingCoverageElements.item(index).classList.add('highlighted'); - } - - function makeCurrent(index) { - toggleClass(index); - currentIndex = index; - missingCoverageElements.item(index).scrollIntoView({ - behavior: 'smooth', - block: 'center', - inline: 'center' - }); - } - - function goToPrevious() { - var nextIndex = 0; - if (typeof currentIndex !== 'number' || currentIndex === 0) { - nextIndex = missingCoverageElements.length - 1; - } else if (missingCoverageElements.length > 1) { - nextIndex = currentIndex - 1; - } - - makeCurrent(nextIndex); - } - - function goToNext() { - var nextIndex = 0; - - if ( - typeof currentIndex === 'number' && - currentIndex < missingCoverageElements.length - 1 - ) { - nextIndex = currentIndex + 1; - } - - makeCurrent(nextIndex); - } - - return function jump(event) { - switch (event.which) { - case 78: // n - case 74: // j - goToNext(); - break; - case 66: // b - case 75: // k - case 80: // p - goToPrevious(); - break; - } - }; -})(); -window.addEventListener('keydown', jumpToCode); diff --git a/coverage/lcov-report/index.html b/coverage/lcov-report/index.html deleted file mode 100644 index def4eaf..0000000 --- a/coverage/lcov-report/index.html +++ /dev/null @@ -1,125 +0,0 @@ - - - - - - Code coverage report for All files - - - - - - - - -
-
-

All files

-
- -
- 87.5% - Statements - 91/104 -
- - -
- 77.08% - Branches - 37/48 -
- - -
- 87.5% - Functions - 14/16 -
- - -
- 90.72% - Lines - 88/97 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FileStatementsBranchesFunctionsLines
allOrigins -
-
96.3%26/27100%2/260%3/596.3%26/27
allOrigins/app -
-
84.42%65/7776.09%35/46100%11/1188.57%62/70
-
-
-
- - - - - - - - - \ No newline at end of file diff --git a/coverage/lcov-report/prettify.css b/coverage/lcov-report/prettify.css deleted file mode 100644 index b317a7c..0000000 --- a/coverage/lcov-report/prettify.css +++ /dev/null @@ -1 +0,0 @@ -.pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee} diff --git a/coverage/lcov-report/prettify.js b/coverage/lcov-report/prettify.js deleted file mode 100644 index b322523..0000000 --- a/coverage/lcov-report/prettify.js +++ /dev/null @@ -1,2 +0,0 @@ -/* eslint-disable */ -window.PR_SHOULD_USE_CONTINUATION=true;(function(){var h=["break,continue,do,else,for,if,return,while"];var u=[h,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"];var p=[u,"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"];var l=[p,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"];var x=[p,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"];var R=[x,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"];var r="all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes";var w=[p,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"];var s="caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END";var I=[h,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"];var f=[h,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"];var H=[h,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"];var A=[l,R,w,s+I,f,H];var e=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/;var C="str";var z="kwd";var j="com";var O="typ";var G="lit";var L="pun";var F="pln";var m="tag";var E="dec";var J="src";var P="atn";var n="atv";var N="nocode";var M="(?:^^\\.?|[+-]|\\!|\\!=|\\!==|\\#|\\%|\\%=|&|&&|&&=|&=|\\(|\\*|\\*=|\\+=|\\,|\\-=|\\->|\\/|\\/=|:|::|\\;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|\\?|\\@|\\[|\\^|\\^=|\\^\\^|\\^\\^=|\\{|\\||\\|=|\\|\\||\\|\\|=|\\~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*";function k(Z){var ad=0;var S=false;var ac=false;for(var V=0,U=Z.length;V122)){if(!(al<65||ag>90)){af.push([Math.max(65,ag)|32,Math.min(al,90)|32])}if(!(al<97||ag>122)){af.push([Math.max(97,ag)&~32,Math.min(al,122)&~32])}}}}af.sort(function(av,au){return(av[0]-au[0])||(au[1]-av[1])});var ai=[];var ap=[NaN,NaN];for(var ar=0;arat[0]){if(at[1]+1>at[0]){an.push("-")}an.push(T(at[1]))}}an.push("]");return an.join("")}function W(al){var aj=al.source.match(new RegExp("(?:\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]|\\\\u[A-Fa-f0-9]{4}|\\\\x[A-Fa-f0-9]{2}|\\\\[0-9]+|\\\\[^ux0-9]|\\(\\?[:!=]|[\\(\\)\\^]|[^\\x5B\\x5C\\(\\)\\^]+)","g"));var ah=aj.length;var an=[];for(var ak=0,am=0;ak=2&&ai==="["){aj[ak]=X(ag)}else{if(ai!=="\\"){aj[ak]=ag.replace(/[a-zA-Z]/g,function(ao){var ap=ao.charCodeAt(0);return"["+String.fromCharCode(ap&~32,ap|32)+"]"})}}}}return aj.join("")}var aa=[];for(var V=0,U=Z.length;V=0;){S[ac.charAt(ae)]=Y}}var af=Y[1];var aa=""+af;if(!ag.hasOwnProperty(aa)){ah.push(af);ag[aa]=null}}ah.push(/[\0-\uffff]/);V=k(ah)})();var X=T.length;var W=function(ah){var Z=ah.sourceCode,Y=ah.basePos;var ad=[Y,F];var af=0;var an=Z.match(V)||[];var aj={};for(var ae=0,aq=an.length;ae=5&&"lang-"===ap.substring(0,5);if(am&&!(ai&&typeof ai[1]==="string")){am=false;ap=J}if(!am){aj[ag]=ap}}var ab=af;af+=ag.length;if(!am){ad.push(Y+ab,ap)}else{var al=ai[1];var ak=ag.indexOf(al);var ac=ak+al.length;if(ai[2]){ac=ag.length-ai[2].length;ak=ac-al.length}var ar=ap.substring(5);B(Y+ab,ag.substring(0,ak),W,ad);B(Y+ab+ak,al,q(ar,al),ad);B(Y+ab+ac,ag.substring(ac),W,ad)}}ah.decorations=ad};return W}function i(T){var W=[],S=[];if(T.tripleQuotedStrings){W.push([C,/^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,null,"'\""])}else{if(T.multiLineStrings){W.push([C,/^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,null,"'\"`"])}else{W.push([C,/^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,null,"\"'"])}}if(T.verbatimStrings){S.push([C,/^@\"(?:[^\"]|\"\")*(?:\"|$)/,null])}var Y=T.hashComments;if(Y){if(T.cStyleComments){if(Y>1){W.push([j,/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,null,"#"])}else{W.push([j,/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\r\n]*)/,null,"#"])}S.push([C,/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,null])}else{W.push([j,/^#[^\r\n]*/,null,"#"])}}if(T.cStyleComments){S.push([j,/^\/\/[^\r\n]*/,null]);S.push([j,/^\/\*[\s\S]*?(?:\*\/|$)/,null])}if(T.regexLiterals){var X=("/(?=[^/*])(?:[^/\\x5B\\x5C]|\\x5C[\\s\\S]|\\x5B(?:[^\\x5C\\x5D]|\\x5C[\\s\\S])*(?:\\x5D|$))+/");S.push(["lang-regex",new RegExp("^"+M+"("+X+")")])}var V=T.types;if(V){S.push([O,V])}var U=(""+T.keywords).replace(/^ | $/g,"");if(U.length){S.push([z,new RegExp("^(?:"+U.replace(/[\s,]+/g,"|")+")\\b"),null])}W.push([F,/^\s+/,null," \r\n\t\xA0"]);S.push([G,/^@[a-z_$][a-z_$@0-9]*/i,null],[O,/^(?:[@_]?[A-Z]+[a-z][A-Za-z_$@0-9]*|\w+_t\b)/,null],[F,/^[a-z_$][a-z_$@0-9]*/i,null],[G,new RegExp("^(?:0x[a-f0-9]+|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)(?:e[+\\-]?\\d+)?)[a-z]*","i"),null,"0123456789"],[F,/^\\[\s\S]?/,null],[L,/^.[^\s\w\.$@\'\"\`\/\#\\]*/,null]);return g(W,S)}var K=i({keywords:A,hashComments:true,cStyleComments:true,multiLineStrings:true,regexLiterals:true});function Q(V,ag){var U=/(?:^|\s)nocode(?:\s|$)/;var ab=/\r\n?|\n/;var ac=V.ownerDocument;var S;if(V.currentStyle){S=V.currentStyle.whiteSpace}else{if(window.getComputedStyle){S=ac.defaultView.getComputedStyle(V,null).getPropertyValue("white-space")}}var Z=S&&"pre"===S.substring(0,3);var af=ac.createElement("LI");while(V.firstChild){af.appendChild(V.firstChild)}var W=[af];function ae(al){switch(al.nodeType){case 1:if(U.test(al.className)){break}if("BR"===al.nodeName){ad(al);if(al.parentNode){al.parentNode.removeChild(al)}}else{for(var an=al.firstChild;an;an=an.nextSibling){ae(an)}}break;case 3:case 4:if(Z){var am=al.nodeValue;var aj=am.match(ab);if(aj){var ai=am.substring(0,aj.index);al.nodeValue=ai;var ah=am.substring(aj.index+aj[0].length);if(ah){var ak=al.parentNode;ak.insertBefore(ac.createTextNode(ah),al.nextSibling)}ad(al);if(!ai){al.parentNode.removeChild(al)}}}break}}function ad(ak){while(!ak.nextSibling){ak=ak.parentNode;if(!ak){return}}function ai(al,ar){var aq=ar?al.cloneNode(false):al;var ao=al.parentNode;if(ao){var ap=ai(ao,1);var an=al.nextSibling;ap.appendChild(aq);for(var am=an;am;am=an){an=am.nextSibling;ap.appendChild(am)}}return aq}var ah=ai(ak.nextSibling,0);for(var aj;(aj=ah.parentNode)&&aj.nodeType===1;){ah=aj}W.push(ah)}for(var Y=0;Y=S){ah+=2}if(V>=ap){Z+=2}}}var t={};function c(U,V){for(var S=V.length;--S>=0;){var T=V[S];if(!t.hasOwnProperty(T)){t[T]=U}else{if(window.console){console.warn("cannot override language handler %s",T)}}}}function q(T,S){if(!(T&&t.hasOwnProperty(T))){T=/^\s*]*(?:>|$)/],[j,/^<\!--[\s\S]*?(?:-\->|$)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],[L,/^(?:<[%?]|[%?]>)/],["lang-",/^]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-js",/^]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),["default-markup","htm","html","mxml","xhtml","xml","xsl"]);c(g([[F,/^[\s]+/,null," \t\r\n"],[n,/^(?:\"[^\"]*\"?|\'[^\']*\'?)/,null,"\"'"]],[[m,/^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],[P,/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/],[L,/^[=<>\/]+/],["lang-js",/^on\w+\s*=\s*\"([^\"]+)\"/i],["lang-js",/^on\w+\s*=\s*\'([^\']+)\'/i],["lang-js",/^on\w+\s*=\s*([^\"\'>\s]+)/i],["lang-css",/^style\s*=\s*\"([^\"]+)\"/i],["lang-css",/^style\s*=\s*\'([^\']+)\'/i],["lang-css",/^style\s*=\s*([^\"\'>\s]+)/i]]),["in.tag"]);c(g([],[[n,/^[\s\S]+/]]),["uq.val"]);c(i({keywords:l,hashComments:true,cStyleComments:true,types:e}),["c","cc","cpp","cxx","cyc","m"]);c(i({keywords:"null,true,false"}),["json"]);c(i({keywords:R,hashComments:true,cStyleComments:true,verbatimStrings:true,types:e}),["cs"]);c(i({keywords:x,cStyleComments:true}),["java"]);c(i({keywords:H,hashComments:true,multiLineStrings:true}),["bsh","csh","sh"]);c(i({keywords:I,hashComments:true,multiLineStrings:true,tripleQuotedStrings:true}),["cv","py"]);c(i({keywords:s,hashComments:true,multiLineStrings:true,regexLiterals:true}),["perl","pl","pm"]);c(i({keywords:f,hashComments:true,multiLineStrings:true,regexLiterals:true}),["rb"]);c(i({keywords:w,cStyleComments:true,regexLiterals:true}),["js"]);c(i({keywords:r,hashComments:3,cStyleComments:true,multilineStrings:true,tripleQuotedStrings:true,regexLiterals:true}),["coffee"]);c(g([],[[C,/^[\s\S]+/]]),["regex"]);function d(V){var U=V.langExtension;try{var S=a(V.sourceNode);var T=S.sourceCode;V.sourceCode=T;V.spans=S.spans;V.basePos=0;q(U,T)(V);D(V)}catch(W){if("console" in window){console.log(W&&W.stack?W.stack:W)}}}function y(W,V,U){var S=document.createElement("PRE");S.innerHTML=W;if(U){Q(S,U)}var T={langExtension:V,numberLines:U,sourceNode:S};d(T);return S.innerHTML}function b(ad){function Y(af){return document.getElementsByTagName(af)}var ac=[Y("pre"),Y("code"),Y("xmp")];var T=[];for(var aa=0;aa=0){var ah=ai.match(ab);var am;if(!ah&&(am=o(aj))&&"CODE"===am.tagName){ah=am.className.match(ab)}if(ah){ah=ah[1]}var al=false;for(var ak=aj.parentNode;ak;ak=ak.parentNode){if((ak.tagName==="pre"||ak.tagName==="code"||ak.tagName==="xmp")&&ak.className&&ak.className.indexOf("prettyprint")>=0){al=true;break}}if(!al){var af=aj.className.match(/\blinenums\b(?::(\d+))?/);af=af?af[1]&&af[1].length?+af[1]:true:false;if(af){Q(aj,af)}S={langExtension:ah,sourceNode:aj,numberLines:af};d(S)}}}if(X]*(?:>|$)/],[PR.PR_COMMENT,/^<\!--[\s\S]*?(?:-\->|$)/],[PR.PR_PUNCTUATION,/^(?:<[%?]|[%?]>)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],["lang-",/^]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-handlebars",/^]*type\s*=\s*['"]?text\/x-handlebars-template['"]?\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-js",/^]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i],[PR.PR_DECLARATION,/^{{[#^>/]?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{&?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{{>?\s*[\w.][^}]*}}}/],[PR.PR_COMMENT,/^{{![^}]*}}/]]),["handlebars","hbs"]);PR.registerLangHandler(PR.createSimpleLexer([[PR.PR_PLAIN,/^[ \t\r\n\f]+/,null," \t\r\n\f"]],[[PR.PR_STRING,/^\"(?:[^\n\r\f\\\"]|\\(?:\r\n?|\n|\f)|\\[\s\S])*\"/,null],[PR.PR_STRING,/^\'(?:[^\n\r\f\\\']|\\(?:\r\n?|\n|\f)|\\[\s\S])*\'/,null],["lang-css-str",/^url\(([^\)\"\']*)\)/i],[PR.PR_KEYWORD,/^(?:url|rgb|\!important|@import|@page|@media|@charset|inherit)(?=[^\-\w]|$)/i,null],["lang-css-kw",/^(-?(?:[_a-z]|(?:\\[0-9a-f]+ ?))(?:[_a-z0-9\-]|\\(?:\\[0-9a-f]+ ?))*)\s*:/i],[PR.PR_COMMENT,/^\/\*[^*]*\*+(?:[^\/*][^*]*\*+)*\//],[PR.PR_COMMENT,/^(?:)/],[PR.PR_LITERAL,/^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i],[PR.PR_LITERAL,/^#(?:[0-9a-f]{3}){1,2}/i],[PR.PR_PLAIN,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i],[PR.PR_PUNCTUATION,/^[^\s\w\'\"]+/]]),["css"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_KEYWORD,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i]]),["css-kw"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_STRING,/^[^\)\"\']+/]]),["css-str"]); diff --git a/coverage/lcov-report/sort-arrow-sprite.png b/coverage/lcov-report/sort-arrow-sprite.png deleted file mode 100644 index 03f704a609c6fd0dbfdac63466a7d7c958b5cbf3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 209 zcmeAS@N?(olHy`uVBq!ia0vp^>_9Bd!3HEZxJ@+%Qj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>Jii$m5978H@?Fn+^JD|Y9yzj{W`447Gxa{7*dM7nnnD-Lb z6^}Hx2)'; - } - } - return cols; - } - // attaches a data attribute to every tr element with an object - // of data values keyed by column name - function loadRowData(tableRow) { - var tableCols = tableRow.querySelectorAll('td'), - colNode, - col, - data = {}, - i, - val; - for (i = 0; i < tableCols.length; i += 1) { - colNode = tableCols[i]; - col = cols[i]; - val = colNode.getAttribute('data-value'); - if (col.type === 'number') { - val = Number(val); - } - data[col.key] = val; - } - return data; - } - // loads all row data - function loadData() { - var rows = getTableBody().querySelectorAll('tr'), - i; - - for (i = 0; i < rows.length; i += 1) { - rows[i].data = loadRowData(rows[i]); - } - } - // sorts the table using the data for the ith column - function sortByIndex(index, desc) { - var key = cols[index].key, - sorter = function(a, b) { - a = a.data[key]; - b = b.data[key]; - return a < b ? -1 : a > b ? 1 : 0; - }, - finalSorter = sorter, - tableBody = document.querySelector('.coverage-summary tbody'), - rowNodes = tableBody.querySelectorAll('tr'), - rows = [], - i; - - if (desc) { - finalSorter = function(a, b) { - return -1 * sorter(a, b); - }; - } - - for (i = 0; i < rowNodes.length; i += 1) { - rows.push(rowNodes[i]); - tableBody.removeChild(rowNodes[i]); - } - - rows.sort(finalSorter); - - for (i = 0; i < rows.length; i += 1) { - tableBody.appendChild(rows[i]); - } - } - // removes sort indicators for current column being sorted - function removeSortIndicators() { - var col = getNthColumn(currentSort.index), - cls = col.className; - - cls = cls.replace(/ sorted$/, '').replace(/ sorted-desc$/, ''); - col.className = cls; - } - // adds sort indicators for current column being sorted - function addSortIndicators() { - getNthColumn(currentSort.index).className += currentSort.desc - ? ' sorted-desc' - : ' sorted'; - } - // adds event listeners for all sorter widgets - function enableUI() { - var i, - el, - ithSorter = function ithSorter(i) { - var col = cols[i]; - - return function() { - var desc = col.defaultDescSort; - - if (currentSort.index === i) { - desc = !currentSort.desc; - } - sortByIndex(i, desc); - removeSortIndicators(); - currentSort.index = i; - currentSort.desc = desc; - addSortIndicators(); - }; - }; - for (i = 0; i < cols.length; i += 1) { - if (cols[i].sortable) { - // add the click event handler on the th so users - // dont have to click on those tiny arrows - el = getNthColumn(i).querySelector('.sorter').parentElement; - if (el.addEventListener) { - el.addEventListener('click', ithSorter(i)); - } else { - el.attachEvent('onclick', ithSorter(i)); - } - } - } - } - // adds sorting functionality to the UI - return function() { - if (!getTable()) { - return; - } - cols = loadColumns(); - loadData(); - addSortIndicators(); - enableUI(); - }; -})(); - -window.addEventListener('load', addSorting); diff --git a/coverage/lcov.info b/coverage/lcov.info deleted file mode 100644 index 98a7293..0000000 --- a/coverage/lcov.info +++ /dev/null @@ -1,213 +0,0 @@ -TN: -SF:C:\project\open-source\allOrigins\app.js -FN:25,enableCORS -FNF:1 -FNH:1 -FNDA:6,enableCORS -DA:7,1 -DA:9,1 -DA:12,1 -DA:14,1 -DA:16,1 -DA:18,1 -DA:19,1 -DA:20,1 -DA:22,1 -DA:26,6 -DA:27,6 -DA:28,6 -DA:29,6 -DA:30,6 -DA:31,6 -DA:34,1 -LF:16 -LH:16 -BRDA:26,0,0,6 -BRDA:26,0,1,5 -BRF:2 -BRH:2 -end_of_record -TN: -SF:C:\project\open-source\allOrigins\redis.js -FN:7,(anonymous_0) -FN:11,(anonymous_1) -FN:14,(anonymous_2) -FN:15,(anonymous_3) -FNF:4 -FNH:2 -FNDA:5,(anonymous_0) -FNDA:0,(anonymous_1) -FNDA:1,(anonymous_2) -FNDA:0,(anonymous_3) -DA:1,1 -DA:2,1 -DA:3,1 -DA:4,1 -DA:5,1 -DA:7,1 -DA:8,5 -DA:11,1 -DA:12,0 -DA:14,1 -DA:15,1 -LF:11 -LH:10 -BRF:0 -BRH:0 -end_of_record -TN: -SF:C:\project\open-source\allOrigins\app\get-page.js -FN:8,getPage -FN:18,getPageInfo -FN:30,getRawPage -FN:42,getPageContents -FN:58,request -FN:102,processContent -FN:107,processError -FNF:7 -FNH:7 -FNDA:5,getPage -FNDA:1,getPageInfo -FNDA:1,getRawPage -FNDA:3,getPageContents -FNDA:5,request -FNDA:3,processContent -FNDA:1,processError -DA:1,1 -DA:2,1 -DA:4,1 -DA:6,1 -DA:9,5 -DA:10,1 -DA:11,4 -DA:12,1 -DA:15,3 -DA:19,1 -DA:20,1 -DA:22,1 -DA:31,1 -DA:32,1 -DA:34,1 -DA:35,1 -DA:43,3 -DA:44,3 -DA:46,2 -DA:47,2 -DA:59,5 -DA:61,5 -DA:62,5 -DA:63,0 -DA:64,0 -DA:66,0 -DA:74,0 -DA:75,0 -DA:76,0 -DA:78,5 -DA:84,5 -DA:86,4 -DA:87,3 -DA:88,0 -DA:96,3 -DA:98,1 -DA:103,3 -DA:104,3 -DA:108,1 -DA:109,1 -DA:111,1 -DA:112,1 -DA:114,1 -LF:43 -LH:36 -BRDA:9,0,0,1 -BRDA:9,0,1,4 -BRDA:9,1,0,5 -BRDA:9,1,1,4 -BRDA:11,2,0,1 -BRDA:11,2,1,3 -BRDA:20,3,0,0 -BRDA:20,3,1,1 -BRDA:25,4,0,1 -BRDA:25,4,1,1 -BRDA:32,5,0,0 -BRDA:32,5,1,1 -BRDA:44,6,0,1 -BRDA:44,6,1,2 -BRDA:62,7,0,0 -BRDA:62,7,1,5 -BRDA:70,8,0,0 -BRDA:70,8,1,0 -BRDA:81,9,0,5 -BRDA:81,9,1,5 -BRDA:86,10,0,1 -BRDA:86,10,1,3 -BRDA:87,11,0,0 -BRDA:87,11,1,3 -BRDA:109,12,0,0 -BRDA:109,12,1,1 -BRF:26 -BRH:19 -end_of_record -TN: -SF:C:\project\open-source\allOrigins\app\process-request.js -FN:5,processRequest -FN:16,parseParams -FN:27,parseRequestMethod -FN:36,createResponse -FNF:4 -FNH:4 -FNDA:6,processRequest -FNDA:5,parseParams -FNDA:5,parseRequestMethod -FNDA:5,createResponse -DA:1,1 -DA:3,1 -DA:6,6 -DA:7,1 -DA:10,5 -DA:11,5 -DA:12,5 -DA:13,5 -DA:17,5 -DA:22,5 -DA:23,5 -DA:24,5 -DA:28,5 -DA:30,5 -DA:31,1 -DA:33,4 -DA:37,5 -DA:38,1 -DA:39,1 -DA:40,1 -DA:43,4 -DA:44,0 -DA:45,4 -DA:47,4 -DA:48,1 -DA:50,4 -DA:51,4 -LF:27 -LH:26 -BRDA:6,0,0,1 -BRDA:6,0,1,5 -BRDA:23,1,0,5 -BRDA:23,1,1,0 -BRDA:28,2,0,5 -BRDA:28,2,1,0 -BRDA:30,3,0,1 -BRDA:30,3,1,4 -BRDA:37,4,0,1 -BRDA:37,4,1,4 -BRDA:37,5,0,5 -BRDA:37,5,1,1 -BRDA:37,6,0,1 -BRDA:37,6,1,1 -BRDA:43,7,0,0 -BRDA:43,7,1,4 -BRDA:47,8,0,3 -BRDA:47,8,1,1 -BRDA:50,9,0,0 -BRDA:50,9,1,4 -BRF:20 -BRH:16 -end_of_record From 4b3946ad30f893ea135e617efdcde5da6c0ef505 Mon Sep 17 00:00:00 2001 From: Sourav Kunda <50537259+07souravkunda@users.noreply.github.com> Date: Wed, 22 Jul 2020 10:35:43 +0530 Subject: [PATCH 4/7] Update redis.js Co-authored-by: gabriel nunes <981105+gnuns@users.noreply.github.com> --- redis.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/redis.js b/redis.js index 6abdbe4..b5b1230 100644 --- a/redis.js +++ b/redis.js @@ -1,5 +1,5 @@ const redis = require("redis"); -const redisUrl = "redis://127.0.0.1:6379"; +const redisUrl = process.env.REDIS_URL || "redis://127.0.0.1:6379"; const client = redis.createClient(redisUrl); const util = require("util"); client.get = util.promisify(client.get); From cf7075715adb02b869ba55de9c8d0bc08f1ff725 Mon Sep 17 00:00:00 2001 From: Sourav Kunda <50537259+07souravkunda@users.noreply.github.com> Date: Wed, 22 Jul 2020 10:36:57 +0530 Subject: [PATCH 5/7] Update app/get-page.js Co-authored-by: gabriel nunes <981105+gnuns@users.noreply.github.com> --- app/get-page.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/app/get-page.js b/app/get-page.js index 0fba152..ce63222 100644 --- a/app/get-page.js +++ b/app/get-page.js @@ -60,8 +60,7 @@ async function request (url, requestMethod) { let options, response const dat = await redisGet(url + requestMethod) if (dat) { - const body = JSON.parse(dat).body - const e = JSON.parse(dat).etag + const {body, etag: e} = JSON.parse(dat) options = { method: requestMethod, From 1e24ca940bd5cae1f83780da76a47c9edc0ae3e4 Mon Sep 17 00:00:00 2001 From: Sourav Kunda Date: Wed, 22 Jul 2020 13:43:42 +0530 Subject: [PATCH 6/7] changed options obj to const --- app/get-page.js | 24 +- app/process-request.js | 66 +-- coverage/clover.xml | 120 +++++ coverage/coverage-final.json | 5 + coverage/lcov-report/allOrigins/app.js.html | 181 ++++++++ .../allOrigins/app/get-page.js.html | 433 ++++++++++++++++++ .../lcov-report/allOrigins/app/index.html | 125 +++++ .../allOrigins/app/process-request.js.html | 235 ++++++++++ coverage/lcov-report/allOrigins/index.html | 125 +++++ coverage/lcov-report/allOrigins/redis.js.html | 127 +++++ coverage/lcov-report/base.css | 224 +++++++++ coverage/lcov-report/block-navigation.js | 79 ++++ coverage/lcov-report/index.html | 125 +++++ coverage/lcov-report/prettify.css | 1 + coverage/lcov-report/prettify.js | 2 + coverage/lcov-report/sort-arrow-sprite.png | Bin 0 -> 209 bytes coverage/lcov-report/sorter.js | 170 +++++++ coverage/lcov.info | 212 +++++++++ 18 files changed, 2207 insertions(+), 47 deletions(-) create mode 100644 coverage/clover.xml create mode 100644 coverage/coverage-final.json create mode 100644 coverage/lcov-report/allOrigins/app.js.html create mode 100644 coverage/lcov-report/allOrigins/app/get-page.js.html create mode 100644 coverage/lcov-report/allOrigins/app/index.html create mode 100644 coverage/lcov-report/allOrigins/app/process-request.js.html create mode 100644 coverage/lcov-report/allOrigins/index.html create mode 100644 coverage/lcov-report/allOrigins/redis.js.html create mode 100644 coverage/lcov-report/base.css create mode 100644 coverage/lcov-report/block-navigation.js create mode 100644 coverage/lcov-report/index.html create mode 100644 coverage/lcov-report/prettify.css create mode 100644 coverage/lcov-report/prettify.js create mode 100644 coverage/lcov-report/sort-arrow-sprite.png create mode 100644 coverage/lcov-report/sorter.js create mode 100644 coverage/lcov.info diff --git a/app/get-page.js b/app/get-page.js index ce63222..3bc7dac 100644 --- a/app/get-page.js +++ b/app/get-page.js @@ -57,28 +57,24 @@ async function getPageContents (url, requestMethod) { async function request (url, requestMethod) { try { - let options, response + let response + const options = { + method: requestMethod, + encoding: null, + headers: { + 'user-agent': process.env.USER_AGENT || DEFAULT_USER_AGENT, + }, + } const dat = await redisGet(url + requestMethod) if (dat) { const {body, etag: e} = JSON.parse(dat) - options = { - method: requestMethod, - encoding: null, - headers: { - 'user-agent': process.env.USER_AGENT || DEFAULT_USER_AGENT, - 'if-none-match': e, - }, - } + options.headers['if-none-match'] = e + response = await got(url, options) response.body = Buffer.from(body) return processContent(response) } - options = { - method: requestMethod, - encoding: null, - headers: {'user-agent': process.env.USER_AGENT || DEFAULT_USER_AGENT}, - } response = await got(url, options) diff --git a/app/process-request.js b/app/process-request.js index f58c7f9..a9d1a0d 100644 --- a/app/process-request.js +++ b/app/process-request.js @@ -3,50 +3,50 @@ const getPage = require('./get-page') module.exports = processRequest async function processRequest (req, res) { - if (req.method === 'OPTIONS') { - return res.end() - } - - const startTime = new Date() - const params = parseParams(req) - const page = await getPage(params) - return createResponse(page, params, res, startTime) + if (req.method === 'OPTIONS') { + return res.end() + } + + const startTime = new Date() + const params = parseParams(req) + const page = await getPage(params) + return createResponse(page, params, res, startTime) } function parseParams (req) { - const params = { - requestMethod: req.method, - ...req.query, - ...req.params, - } - params.requestMethod = parseRequestMethod(params.requestMethod) - params.format = (params.format || 'json').toLowerCase() - return params + const params = { + requestMethod: req.method, + ...req.query, + ...req.params + } + params.requestMethod = parseRequestMethod(params.requestMethod) + params.format = (params.format || 'json').toLowerCase() + return params } function parseRequestMethod (method) { - method = (method || '').toUpperCase() + method = (method || '').toUpperCase() - if (['HEAD', 'POST', 'PUT', 'DELETE', 'PATCH'].includes(method)) { - return method - } - return 'GET' + if (['HEAD', 'POST', 'PUT', 'DELETE', 'PATCH'].includes(method)) { + return method + } + return 'GET' } function createResponse (page, params, res, startTime) { - if (params.format === 'raw' && !(page.status || {}).error) { - res.set('Content-Length', page.contentLength) - res.set('Content-Type', page.contentType) - return res.send(page.content) - } + if (params.format === 'raw' && !(page.status || {}).error) { + res.set('Content-Length', page.contentLength) + res.set('Content-Type', page.contentType) + return res.send(page.content) + } - if (params.charset) { -res.set('Content-Type', `application/json; charset=${params.charset}`) -} else res.set('Content-Type', 'application/json') + if (params.charset) { + res.set('Content-Type', `application/json; charset=${params.charset}`) + } else res.set('Content-Type', 'application/json') - if (page.status) page.status.response_time = new Date() - startTime - else page.response_time = new Date() - startTime + if (page.status) page.status.response_time = new Date() - startTime + else page.response_time = new Date() - startTime - if (params.callback) return res.jsonp(page) - return res.send(JSON.stringify(page)) + if (params.callback) return res.jsonp(page) + return res.send(JSON.stringify(page)) } diff --git a/coverage/clover.xml b/coverage/clover.xml new file mode 100644 index 0000000..5b80c66 --- /dev/null +++ b/coverage/clover.xml @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/coverage/coverage-final.json b/coverage/coverage-final.json new file mode 100644 index 0000000..70922e2 --- /dev/null +++ b/coverage/coverage-final.json @@ -0,0 +1,5 @@ +{"C:\\project\\open-source\\allOrigins\\app.js": {"path":"C:\\project\\open-source\\allOrigins\\app.js","statementMap":{"0":{"start":{"line":7,"column":16},"end":{"line":7,"column":34}},"1":{"start":{"line":9,"column":18},"end":{"line":9,"column":43}},"2":{"start":{"line":12,"column":0},"end":{"line":12,"column":27}},"3":{"start":{"line":14,"column":24},"end":{"line":14,"column":56}},"4":{"start":{"line":16,"column":12},"end":{"line":16,"column":21}},"5":{"start":{"line":18,"column":0},"end":{"line":18,"column":40}},"6":{"start":{"line":19,"column":0},"end":{"line":19,"column":27}},"7":{"start":{"line":20,"column":0},"end":{"line":20,"column":19}},"8":{"start":{"line":22,"column":0},"end":{"line":22,"column":35}},"9":{"start":{"line":26,"column":2},"end":{"line":26,"column":70}},"10":{"start":{"line":27,"column":2},"end":{"line":27,"column":54}},"11":{"start":{"line":28,"column":2},"end":{"line":28,"column":112}},"12":{"start":{"line":29,"column":2},"end":{"line":29,"column":86}},"13":{"start":{"line":30,"column":2},"end":{"line":30,"column":45}},"14":{"start":{"line":31,"column":2},"end":{"line":31,"column":8}},"15":{"start":{"line":34,"column":0},"end":{"line":34,"column":20}}},"fnMap":{"0":{"name":"enableCORS","decl":{"start":{"line":25,"column":9},"end":{"line":25,"column":19}},"loc":{"start":{"line":25,"column":37},"end":{"line":32,"column":1}},"line":25}},"branchMap":{"0":{"loc":{"start":{"line":26,"column":44},"end":{"line":26,"column":69}},"type":"binary-expr","locations":[{"start":{"line":26,"column":44},"end":{"line":26,"column":62}},{"start":{"line":26,"column":66},"end":{"line":26,"column":69}}],"line":26}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":6,"10":6,"11":6,"12":6,"13":6,"14":6,"15":1},"f":{"0":6},"b":{"0":[6,5]},"_coverageSchema":"43e27e138ebf9cfc5966b082cf9a028302ed4184","hash":"1104b77f0ef0f247628324917e5136ea3233a172"} +,"C:\\project\\open-source\\allOrigins\\redis.js": {"path":"C:\\project\\open-source\\allOrigins\\redis.js","statementMap":{"0":{"start":{"line":1,"column":14},"end":{"line":1,"column":30}},"1":{"start":{"line":2,"column":17},"end":{"line":2,"column":66}},"2":{"start":{"line":3,"column":15},"end":{"line":3,"column":43}},"3":{"start":{"line":4,"column":13},"end":{"line":4,"column":28}},"4":{"start":{"line":5,"column":0},"end":{"line":5,"column":40}},"5":{"start":{"line":7,"column":0},"end":{"line":9,"column":2}},"6":{"start":{"line":8,"column":2},"end":{"line":8,"column":25}},"7":{"start":{"line":11,"column":0},"end":{"line":13,"column":2}},"8":{"start":{"line":12,"column":2},"end":{"line":12,"column":43}},"9":{"start":{"line":14,"column":0},"end":{"line":16,"column":2}},"10":{"start":{"line":15,"column":2},"end":{"line":15,"column":24}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":7,"column":19},"end":{"line":7,"column":20}},"loc":{"start":{"line":7,"column":34},"end":{"line":9,"column":1}},"line":7},"1":{"name":"(anonymous_1)","decl":{"start":{"line":11,"column":19},"end":{"line":11,"column":20}},"loc":{"start":{"line":11,"column":33},"end":{"line":13,"column":1}},"line":11},"2":{"name":"(anonymous_2)","decl":{"start":{"line":14,"column":24},"end":{"line":14,"column":25}},"loc":{"start":{"line":14,"column":30},"end":{"line":16,"column":1}},"line":14},"3":{"name":"(anonymous_3)","decl":{"start":{"line":15,"column":14},"end":{"line":15,"column":15}},"loc":{"start":{"line":15,"column":20},"end":{"line":15,"column":22}},"line":15}},"branchMap":{"0":{"loc":{"start":{"line":2,"column":17},"end":{"line":2,"column":66}},"type":"binary-expr","locations":[{"start":{"line":2,"column":17},"end":{"line":2,"column":38}},{"start":{"line":2,"column":42},"end":{"line":2,"column":66}}],"line":2}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":5,"7":1,"8":0,"9":1,"10":1},"f":{"0":5,"1":0,"2":1,"3":0},"b":{"0":[1,1]},"_coverageSchema":"43e27e138ebf9cfc5966b082cf9a028302ed4184","hash":"99f10051fe814ccde083affe3e869b28221cd755"} +,"C:\\project\\open-source\\allOrigins\\app\\get-page.js": {"path":"C:\\project\\open-source\\allOrigins\\app\\get-page.js","statementMap":{"0":{"start":{"line":1,"column":12},"end":{"line":1,"column":26}},"1":{"start":{"line":2,"column":29},"end":{"line":2,"column":48}},"2":{"start":{"line":4,"column":27},"end":{"line":4,"column":110}},"3":{"start":{"line":6,"column":0},"end":{"line":6,"column":24}},"4":{"start":{"line":9,"column":2},"end":{"line":13,"column":3}},"5":{"start":{"line":10,"column":4},"end":{"line":10,"column":27}},"6":{"start":{"line":11,"column":9},"end":{"line":13,"column":3}},"7":{"start":{"line":12,"column":4},"end":{"line":12,"column":41}},"8":{"start":{"line":15,"column":2},"end":{"line":15,"column":44}},"9":{"start":{"line":19,"column":28},"end":{"line":19,"column":54}},"10":{"start":{"line":20,"column":2},"end":{"line":20,"column":39}},"11":{"start":{"line":20,"column":13},"end":{"line":20,"column":39}},"12":{"start":{"line":22,"column":2},"end":{"line":27,"column":3}},"13":{"start":{"line":31,"column":37},"end":{"line":31,"column":70}},"14":{"start":{"line":32,"column":2},"end":{"line":32,"column":39}},"15":{"start":{"line":32,"column":13},"end":{"line":32,"column":39}},"16":{"start":{"line":34,"column":24},"end":{"line":34,"column":50}},"17":{"start":{"line":35,"column":2},"end":{"line":39,"column":3}},"18":{"start":{"line":43,"column":37},"end":{"line":43,"column":70}},"19":{"start":{"line":44,"column":2},"end":{"line":44,"column":39}},"20":{"start":{"line":44,"column":13},"end":{"line":44,"column":39}},"21":{"start":{"line":46,"column":24},"end":{"line":46,"column":50}},"22":{"start":{"line":47,"column":2},"end":{"line":55,"column":3}},"23":{"start":{"line":59,"column":2},"end":{"line":94,"column":3}},"24":{"start":{"line":61,"column":20},"end":{"line":67,"column":5}},"25":{"start":{"line":68,"column":16},"end":{"line":68,"column":51}},"26":{"start":{"line":69,"column":4},"end":{"line":77,"column":5}},"27":{"start":{"line":70,"column":30},"end":{"line":70,"column":45}},"28":{"start":{"line":72,"column":6},"end":{"line":72,"column":42}},"29":{"start":{"line":74,"column":6},"end":{"line":74,"column":40}},"30":{"start":{"line":75,"column":6},"end":{"line":75,"column":39}},"31":{"start":{"line":76,"column":6},"end":{"line":76,"column":37}},"32":{"start":{"line":79,"column":4},"end":{"line":79,"column":38}},"33":{"start":{"line":81,"column":4},"end":{"line":81,"column":52}},"34":{"start":{"line":81,"column":35},"end":{"line":81,"column":52}},"35":{"start":{"line":82,"column":4},"end":{"line":90,"column":5}},"36":{"start":{"line":83,"column":6},"end":{"line":89,"column":7}},"37":{"start":{"line":91,"column":4},"end":{"line":91,"column":35}},"38":{"start":{"line":93,"column":4},"end":{"line":93,"column":18}},"39":{"start":{"line":98,"column":14},"end":{"line":98,"column":58}},"40":{"start":{"line":99,"column":2},"end":{"line":99,"column":12}},"41":{"start":{"line":103,"column":21},"end":{"line":103,"column":22}},"42":{"start":{"line":104,"column":2},"end":{"line":104,"column":60}},"43":{"start":{"line":104,"column":17},"end":{"line":104,"column":60}},"44":{"start":{"line":106,"column":54},"end":{"line":106,"column":62}},"45":{"start":{"line":107,"column":24},"end":{"line":107,"column":47}},"46":{"start":{"line":109,"column":2},"end":{"line":117,"column":3}}},"fnMap":{"0":{"name":"getPage","decl":{"start":{"line":8,"column":9},"end":{"line":8,"column":16}},"loc":{"start":{"line":8,"column":48},"end":{"line":16,"column":1}},"line":8},"1":{"name":"getPageInfo","decl":{"start":{"line":18,"column":15},"end":{"line":18,"column":26}},"loc":{"start":{"line":18,"column":33},"end":{"line":28,"column":1}},"line":18},"2":{"name":"getRawPage","decl":{"start":{"line":30,"column":15},"end":{"line":30,"column":25}},"loc":{"start":{"line":30,"column":47},"end":{"line":40,"column":1}},"line":30},"3":{"name":"getPageContents","decl":{"start":{"line":42,"column":15},"end":{"line":42,"column":30}},"loc":{"start":{"line":42,"column":52},"end":{"line":56,"column":1}},"line":42},"4":{"name":"request","decl":{"start":{"line":58,"column":15},"end":{"line":58,"column":22}},"loc":{"start":{"line":58,"column":44},"end":{"line":95,"column":1}},"line":58},"5":{"name":"processContent","decl":{"start":{"line":97,"column":15},"end":{"line":97,"column":29}},"loc":{"start":{"line":97,"column":41},"end":{"line":100,"column":1}},"line":97},"6":{"name":"processError","decl":{"start":{"line":102,"column":15},"end":{"line":102,"column":27}},"loc":{"start":{"line":102,"column":32},"end":{"line":118,"column":1}},"line":102}},"branchMap":{"0":{"loc":{"start":{"line":9,"column":2},"end":{"line":13,"column":3}},"type":"if","locations":[{"start":{"line":9,"column":2},"end":{"line":13,"column":3}},{"start":{"line":9,"column":2},"end":{"line":13,"column":3}}],"line":9},"1":{"loc":{"start":{"line":9,"column":6},"end":{"line":9,"column":51}},"type":"binary-expr","locations":[{"start":{"line":9,"column":6},"end":{"line":9,"column":23}},{"start":{"line":9,"column":27},"end":{"line":9,"column":51}}],"line":9},"2":{"loc":{"start":{"line":11,"column":9},"end":{"line":13,"column":3}},"type":"if","locations":[{"start":{"line":11,"column":9},"end":{"line":13,"column":3}},{"start":{"line":11,"column":9},"end":{"line":13,"column":3}}],"line":11},"3":{"loc":{"start":{"line":20,"column":2},"end":{"line":20,"column":39}},"type":"if","locations":[{"start":{"line":20,"column":2},"end":{"line":20,"column":39}},{"start":{"line":20,"column":2},"end":{"line":20,"column":39}}],"line":20},"4":{"loc":{"start":{"line":25,"column":20},"end":{"line":25,"column":61}},"type":"binary-expr","locations":[{"start":{"line":25,"column":20},"end":{"line":25,"column":55}},{"start":{"line":25,"column":59},"end":{"line":25,"column":61}}],"line":25},"5":{"loc":{"start":{"line":32,"column":2},"end":{"line":32,"column":39}},"type":"if","locations":[{"start":{"line":32,"column":2},"end":{"line":32,"column":39}},{"start":{"line":32,"column":2},"end":{"line":32,"column":39}}],"line":32},"6":{"loc":{"start":{"line":44,"column":2},"end":{"line":44,"column":39}},"type":"if","locations":[{"start":{"line":44,"column":2},"end":{"line":44,"column":39}},{"start":{"line":44,"column":2},"end":{"line":44,"column":39}}],"line":44},"7":{"loc":{"start":{"line":65,"column":22},"end":{"line":65,"column":66}},"type":"binary-expr","locations":[{"start":{"line":65,"column":22},"end":{"line":65,"column":44}},{"start":{"line":65,"column":48},"end":{"line":65,"column":66}}],"line":65},"8":{"loc":{"start":{"line":69,"column":4},"end":{"line":77,"column":5}},"type":"if","locations":[{"start":{"line":69,"column":4},"end":{"line":77,"column":5}},{"start":{"line":69,"column":4},"end":{"line":77,"column":5}}],"line":69},"9":{"loc":{"start":{"line":81,"column":4},"end":{"line":81,"column":52}},"type":"if","locations":[{"start":{"line":81,"column":4},"end":{"line":81,"column":52}},{"start":{"line":81,"column":4},"end":{"line":81,"column":52}}],"line":81},"10":{"loc":{"start":{"line":82,"column":4},"end":{"line":90,"column":5}},"type":"if","locations":[{"start":{"line":82,"column":4},"end":{"line":90,"column":5}},{"start":{"line":82,"column":4},"end":{"line":90,"column":5}}],"line":82},"11":{"loc":{"start":{"line":104,"column":2},"end":{"line":104,"column":60}},"type":"if","locations":[{"start":{"line":104,"column":2},"end":{"line":104,"column":60}},{"start":{"line":104,"column":2},"end":{"line":104,"column":60}}],"line":104}},"s":{"0":1,"1":1,"2":1,"3":1,"4":5,"5":1,"6":4,"7":1,"8":3,"9":1,"10":1,"11":0,"12":1,"13":1,"14":1,"15":0,"16":1,"17":1,"18":3,"19":3,"20":1,"21":2,"22":2,"23":5,"24":5,"25":5,"26":5,"27":0,"28":0,"29":0,"30":0,"31":0,"32":5,"33":4,"34":1,"35":3,"36":0,"37":3,"38":1,"39":3,"40":3,"41":1,"42":1,"43":0,"44":1,"45":1,"46":1},"f":{"0":5,"1":1,"2":1,"3":3,"4":5,"5":3,"6":1},"b":{"0":[1,4],"1":[5,4],"2":[1,3],"3":[0,1],"4":[1,1],"5":[0,1],"6":[1,2],"7":[5,5],"8":[0,5],"9":[1,3],"10":[0,3],"11":[0,1]},"_coverageSchema":"43e27e138ebf9cfc5966b082cf9a028302ed4184","hash":"6f0cb1b2a674d7b8af981a05ed376099d1a9438d"} +,"C:\\project\\open-source\\allOrigins\\app\\process-request.js": {"path":"C:\\project\\open-source\\allOrigins\\app\\process-request.js","statementMap":{"0":{"start":{"line":1,"column":16},"end":{"line":1,"column":37}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":31}},"2":{"start":{"line":6,"column":4},"end":{"line":8,"column":5}},"3":{"start":{"line":7,"column":8},"end":{"line":7,"column":24}},"4":{"start":{"line":10,"column":22},"end":{"line":10,"column":32}},"5":{"start":{"line":11,"column":19},"end":{"line":11,"column":35}},"6":{"start":{"line":12,"column":17},"end":{"line":12,"column":38}},"7":{"start":{"line":13,"column":4},"end":{"line":13,"column":55}},"8":{"start":{"line":17,"column":19},"end":{"line":21,"column":5}},"9":{"start":{"line":22,"column":4},"end":{"line":22,"column":67}},"10":{"start":{"line":23,"column":4},"end":{"line":23,"column":59}},"11":{"start":{"line":24,"column":4},"end":{"line":24,"column":17}},"12":{"start":{"line":28,"column":4},"end":{"line":28,"column":41}},"13":{"start":{"line":30,"column":4},"end":{"line":32,"column":5}},"14":{"start":{"line":31,"column":8},"end":{"line":31,"column":21}},"15":{"start":{"line":33,"column":4},"end":{"line":33,"column":16}},"16":{"start":{"line":37,"column":4},"end":{"line":41,"column":5}},"17":{"start":{"line":38,"column":8},"end":{"line":38,"column":53}},"18":{"start":{"line":39,"column":8},"end":{"line":39,"column":49}},"19":{"start":{"line":40,"column":8},"end":{"line":40,"column":37}},"20":{"start":{"line":43,"column":4},"end":{"line":45,"column":54}},"21":{"start":{"line":44,"column":8},"end":{"line":44,"column":78}},"22":{"start":{"line":45,"column":11},"end":{"line":45,"column":54}},"23":{"start":{"line":47,"column":4},"end":{"line":48,"column":52}},"24":{"start":{"line":47,"column":21},"end":{"line":47,"column":71}},"25":{"start":{"line":48,"column":9},"end":{"line":48,"column":52}},"26":{"start":{"line":50,"column":4},"end":{"line":50,"column":47}},"27":{"start":{"line":50,"column":25},"end":{"line":50,"column":47}},"28":{"start":{"line":51,"column":4},"end":{"line":51,"column":41}}},"fnMap":{"0":{"name":"processRequest","decl":{"start":{"line":5,"column":15},"end":{"line":5,"column":29}},"loc":{"start":{"line":5,"column":41},"end":{"line":14,"column":1}},"line":5},"1":{"name":"parseParams","decl":{"start":{"line":16,"column":9},"end":{"line":16,"column":20}},"loc":{"start":{"line":16,"column":27},"end":{"line":25,"column":1}},"line":16},"2":{"name":"parseRequestMethod","decl":{"start":{"line":27,"column":9},"end":{"line":27,"column":27}},"loc":{"start":{"line":27,"column":37},"end":{"line":34,"column":1}},"line":27},"3":{"name":"createResponse","decl":{"start":{"line":36,"column":9},"end":{"line":36,"column":23}},"loc":{"start":{"line":36,"column":55},"end":{"line":52,"column":1}},"line":36}},"branchMap":{"0":{"loc":{"start":{"line":6,"column":4},"end":{"line":8,"column":5}},"type":"if","locations":[{"start":{"line":6,"column":4},"end":{"line":8,"column":5}},{"start":{"line":6,"column":4},"end":{"line":8,"column":5}}],"line":6},"1":{"loc":{"start":{"line":23,"column":21},"end":{"line":23,"column":44}},"type":"binary-expr","locations":[{"start":{"line":23,"column":21},"end":{"line":23,"column":34}},{"start":{"line":23,"column":38},"end":{"line":23,"column":44}}],"line":23},"2":{"loc":{"start":{"line":28,"column":14},"end":{"line":28,"column":26}},"type":"binary-expr","locations":[{"start":{"line":28,"column":14},"end":{"line":28,"column":20}},{"start":{"line":28,"column":24},"end":{"line":28,"column":26}}],"line":28},"3":{"loc":{"start":{"line":30,"column":4},"end":{"line":32,"column":5}},"type":"if","locations":[{"start":{"line":30,"column":4},"end":{"line":32,"column":5}},{"start":{"line":30,"column":4},"end":{"line":32,"column":5}}],"line":30},"4":{"loc":{"start":{"line":37,"column":4},"end":{"line":41,"column":5}},"type":"if","locations":[{"start":{"line":37,"column":4},"end":{"line":41,"column":5}},{"start":{"line":37,"column":4},"end":{"line":41,"column":5}}],"line":37},"5":{"loc":{"start":{"line":37,"column":8},"end":{"line":37,"column":61}},"type":"binary-expr","locations":[{"start":{"line":37,"column":8},"end":{"line":37,"column":31}},{"start":{"line":37,"column":35},"end":{"line":37,"column":61}}],"line":37},"6":{"loc":{"start":{"line":37,"column":37},"end":{"line":37,"column":54}},"type":"binary-expr","locations":[{"start":{"line":37,"column":37},"end":{"line":37,"column":48}},{"start":{"line":37,"column":52},"end":{"line":37,"column":54}}],"line":37},"7":{"loc":{"start":{"line":43,"column":4},"end":{"line":45,"column":54}},"type":"if","locations":[{"start":{"line":43,"column":4},"end":{"line":45,"column":54}},{"start":{"line":43,"column":4},"end":{"line":45,"column":54}}],"line":43},"8":{"loc":{"start":{"line":47,"column":4},"end":{"line":48,"column":52}},"type":"if","locations":[{"start":{"line":47,"column":4},"end":{"line":48,"column":52}},{"start":{"line":47,"column":4},"end":{"line":48,"column":52}}],"line":47},"9":{"loc":{"start":{"line":50,"column":4},"end":{"line":50,"column":47}},"type":"if","locations":[{"start":{"line":50,"column":4},"end":{"line":50,"column":47}},{"start":{"line":50,"column":4},"end":{"line":50,"column":47}}],"line":50}},"s":{"0":1,"1":1,"2":6,"3":1,"4":5,"5":5,"6":5,"7":5,"8":5,"9":5,"10":5,"11":5,"12":5,"13":5,"14":1,"15":4,"16":5,"17":1,"18":1,"19":1,"20":4,"21":0,"22":4,"23":4,"24":3,"25":1,"26":4,"27":0,"28":4},"f":{"0":6,"1":5,"2":5,"3":5},"b":{"0":[1,5],"1":[5,0],"2":[5,0],"3":[1,4],"4":[1,4],"5":[5,1],"6":[1,1],"7":[0,4],"8":[3,1],"9":[0,4]},"_coverageSchema":"43e27e138ebf9cfc5966b082cf9a028302ed4184","hash":"8ff36d1593cb4e58b54e83d8373f9d03170e82b4"} +} diff --git a/coverage/lcov-report/allOrigins/app.js.html b/coverage/lcov-report/allOrigins/app.js.html new file mode 100644 index 0000000..9711408 --- /dev/null +++ b/coverage/lcov-report/allOrigins/app.js.html @@ -0,0 +1,181 @@ + + + + + + Code coverage report for allOrigins/app.js + + + + + + + + +
+
+

All files / allOrigins app.js

+
+ +
+ 100% + Statements + 16/16 +
+ + +
+ 100% + Branches + 2/2 +
+ + +
+ 100% + Functions + 1/1 +
+ + +
+ 100% + Lines + 16/16 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35  +  +  +  +  +  +1x +  +1x +  +  +1x +  +1x +  +1x +  +1x +1x +1x +  +1x +  +  +  +6x +6x +6x +6x +6x +6x +  +  +1x + 
/*!
+ * AllOrigins
+ * written by Gabriel Nunes <gabriel@multiverso.me>
+ * http://github.com/gnuns
+ */
+ 
+const express = require('express')
+ 
+const {version} = require('./package.json')
+// yep, global. it's ok
+// https://softwareengineering.stackexchange.com/a/47926/289420
+global.AO_VERSION = version
+ 
+const processRequest  = require('./app/process-request')
+ 
+const app = express()
+ 
+app.set('case sensitive routing', false)
+app.disable('x-powered-by')
+app.use(enableCORS)
+ 
+app.all('/:format', processRequest)
+ 
+ 
+function enableCORS (req, res, next) {
+  res.header('Access-Control-Allow-Origin', req.headers.origin || '*')
+  res.header('Access-Control-Allow-Credentials', true)
+  res.header('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, Content-Encoding, Accept')
+  res.header('Access-Control-Allow-Methods', 'OPTIONS, GET, POST, PATCH, PUT, DELETE')
+  res.header('Via', `allOrigins v${version}`)
+  next()
+}
+ 
+module.exports = app
+ 
+ +
+
+ + + + + + + + + \ No newline at end of file diff --git a/coverage/lcov-report/allOrigins/app/get-page.js.html b/coverage/lcov-report/allOrigins/app/get-page.js.html new file mode 100644 index 0000000..e3b2ada --- /dev/null +++ b/coverage/lcov-report/allOrigins/app/get-page.js.html @@ -0,0 +1,433 @@ + + + + + + Code coverage report for allOrigins/app/get-page.js + + + + + + + + +
+
+

All files / allOrigins/app get-page.js

+
+ +
+ 80.85% + Statements + 38/47 +
+ + +
+ 79.17% + Branches + 19/24 +
+ + +
+ 100% + Functions + 7/7 +
+ + +
+ 85.71% + Lines + 36/42 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +1191x +1x +  +1x +  +1x +  +  +5x +1x +4x +1x +  +  +3x +  +  +  +1x +1x +  +1x +  +  +  +  +  +  +  +  +1x +1x +  +1x +1x +  +  +  +  +  +  +  +3x +3x +  +2x +2x +  +  +  +  +  +  +  +  +  +  +  +5x +  +5x +  +  +  +  +  +  +5x +5x +  +  +  +  +  +  +  +  +  +5x +  +4x +3x +  +  +  +  +  +  +  +  +3x +  +1x +  +  +  +  +3x +3x +  +  +  +1x +1x +  +1x +1x +  +1x +  +  +  +  +  +  +  +  +  + 
const got = require('got')
+const {redisGet, redisSet} = require('../redis')
+ 
+const DEFAULT_USER_AGENT = `Mozilla/5.0 (compatible; allOrigins/${global.AO_VERSION}; +http://allorigins.ml/)`
+ 
+module.exports = getPage
+ 
+function getPage ({url, format, requestMethod}) {
+  if (format === 'info' || requestMethod === 'HEAD') {
+    return getPageInfo(url)
+  } else if (format === 'raw') {
+    return getRawPage(url, requestMethod)
+  }
+ 
+  return getPageContents(url, requestMethod)
+}
+ 
+async function getPageInfo (url) {
+  const {response, error} = await request(url, 'HEAD')
+  Iif (error) return processError(error)
+ 
+  return {
+    url: url,
+    content_type: response.headers['content-type'],
+    content_length: +response.headers['content-length'] || -1,
+    http_code: response.statusCode,
+  }
+}
+ 
+async function getRawPage (url, requestMethod) {
+  const {content, response, error} = await request(url, requestMethod)
+  Iif (error) return processError(error)
+ 
+  const contentLength = Buffer.byteLength(content)
+  return {
+    content,
+    contentType: response.headers['content-type'],
+    contentLength,
+  }
+}
+ 
+async function getPageContents (url, requestMethod) {
+  const {content, response, error} = await request(url, requestMethod)
+  if (error) return processError(error)
+ 
+  const contentLength = Buffer.byteLength(content)
+  return {
+    contents: content.toString(),
+    status: {
+      url: url,
+      content_type: response.headers['content-type'],
+      content_length: contentLength,
+      http_code: response.statusCode,
+    },
+  }
+}
+ 
+async function request (url, requestMethod) {
+  try {
+    let response
+    const options = {
+      method: requestMethod,
+      encoding: null,
+      headers: {
+        'user-agent': process.env.USER_AGENT || DEFAULT_USER_AGENT,
+      },
+    }
+    const dat = await redisGet(url + requestMethod)
+    Iif (dat) {
+      const {body, etag: e} = JSON.parse(dat)
+ 
+      options.headers['if-none-match'] = e
+ 
+      response = await got(url, options)
+      response.body = Buffer.from(body)
+      return processContent(response)
+    }
+ 
+    response = await got(url, options)
+ 
+    if (options.method === 'HEAD') return {response}
+    Iif (response.headers.etag) {
+      redisSet(
+        url + requestMethod,
+        JSON.stringify({
+          etag: response.headers.etag,
+          body: response.body.toString(),
+        })
+      )
+    }
+    return processContent(response)
+  } catch (error) {
+    return {error}
+  }
+}
+ 
+async function processContent (response) {
+  const res = {response: response, content: response.body}
+  return res
+}
+ 
+async function processError (e) {
+  const {response} = e
+  Iif (!response) return {contents: null, status: {error: e}}
+ 
+  const {url, statusCode: http_code, headers, body} = response
+  const contentLength = Buffer.byteLength(body)
+ 
+  return {
+    contents: body.toString(),
+    status: {
+      url,
+      http_code,
+      content_type: headers['content-type'],
+      content_length: contentLength,
+    },
+  }
+}
+ 
+ +
+
+ + + + + + + + + \ No newline at end of file diff --git a/coverage/lcov-report/allOrigins/app/index.html b/coverage/lcov-report/allOrigins/app/index.html new file mode 100644 index 0000000..6e1b589 --- /dev/null +++ b/coverage/lcov-report/allOrigins/app/index.html @@ -0,0 +1,125 @@ + + + + + + Code coverage report for allOrigins/app + + + + + + + + +
+
+

All files allOrigins/app

+
+ +
+ 85.53% + Statements + 65/76 +
+ + +
+ 79.55% + Branches + 35/44 +
+ + +
+ 100% + Functions + 11/11 +
+ + +
+ 89.86% + Lines + 62/69 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
get-page.js +
+
80.85%38/4779.17%19/24100%7/785.71%36/42
process-request.js +
+
93.1%27/2980%16/20100%4/496.3%26/27
+
+
+
+ + + + + + + + + \ No newline at end of file diff --git a/coverage/lcov-report/allOrigins/app/process-request.js.html b/coverage/lcov-report/allOrigins/app/process-request.js.html new file mode 100644 index 0000000..d0cd65d --- /dev/null +++ b/coverage/lcov-report/allOrigins/app/process-request.js.html @@ -0,0 +1,235 @@ + + + + + + Code coverage report for allOrigins/app/process-request.js + + + + + + + + +
+
+

All files / allOrigins/app process-request.js

+
+ +
+ 93.1% + Statements + 27/29 +
+ + +
+ 80% + Branches + 16/20 +
+ + +
+ 100% + Functions + 4/4 +
+ + +
+ 96.3% + Lines + 26/27 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +531x +  +1x +  +  +6x +1x +  +  +5x +5x +5x +5x +  +  +  +5x +  +  +  +  +5x +5x +5x +  +  +  +5x +  +5x +1x +  +4x +  +  +  +5x +1x +1x +1x +  +  +4x +  +4x +  +4x +1x +  +4x +4x +  + 
const getPage = require('./get-page')
+ 
+module.exports = processRequest
+ 
+async function processRequest (req, res) {
+    if (req.method === 'OPTIONS') {
+        return res.end()
+    }
+ 
+    const startTime = new Date()
+    const params = parseParams(req)
+    const page = await getPage(params)
+    return createResponse(page, params, res, startTime)
+}
+ 
+function parseParams (req) {
+    const params = {
+        requestMethod: req.method,
+        ...req.query,
+        ...req.params
+    }
+    params.requestMethod = parseRequestMethod(params.requestMethod)
+    params.format = (params.format || 'json').toLowerCase()
+    return params
+}
+ 
+function parseRequestMethod (method) {
+    method = (method || '').toUpperCase()
+ 
+    if (['HEAD', 'POST', 'PUT', 'DELETE', 'PATCH'].includes(method)) {
+        return method
+    }
+    return 'GET'
+}
+ 
+function createResponse (page, params, res, startTime) {
+    if (params.format === 'raw' && !(page.status || {}).error) {
+        res.set('Content-Length', page.contentLength)
+        res.set('Content-Type', page.contentType)
+        return res.send(page.content)
+    }
+ 
+    Iif (params.charset) {
+        res.set('Content-Type', `application/json; charset=${params.charset}`)
+    } else res.set('Content-Type', 'application/json')
+ 
+    if (page.status) page.status.response_time = new Date() - startTime
+    else page.response_time = new Date() - startTime
+ 
+    Iif (params.callback) return res.jsonp(page)
+    return res.send(JSON.stringify(page))
+}
+ 
+ +
+
+ + + + + + + + + \ No newline at end of file diff --git a/coverage/lcov-report/allOrigins/index.html b/coverage/lcov-report/allOrigins/index.html new file mode 100644 index 0000000..595287e --- /dev/null +++ b/coverage/lcov-report/allOrigins/index.html @@ -0,0 +1,125 @@ + + + + + + Code coverage report for allOrigins + + + + + + + + +
+
+

All files allOrigins

+
+ +
+ 96.3% + Statements + 26/27 +
+ + +
+ 100% + Branches + 4/4 +
+ + +
+ 60% + Functions + 3/5 +
+ + +
+ 96.3% + Lines + 26/27 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
app.js +
+
100%16/16100%2/2100%1/1100%16/16
redis.js +
+
90.91%10/11100%2/250%2/490.91%10/11
+
+
+
+ + + + + + + + + \ No newline at end of file diff --git a/coverage/lcov-report/allOrigins/redis.js.html b/coverage/lcov-report/allOrigins/redis.js.html new file mode 100644 index 0000000..210a29c --- /dev/null +++ b/coverage/lcov-report/allOrigins/redis.js.html @@ -0,0 +1,127 @@ + + + + + + Code coverage report for allOrigins/redis.js + + + + + + + + +
+
+

All files / allOrigins redis.js

+
+ +
+ 90.91% + Statements + 10/11 +
+ + +
+ 100% + Branches + 2/2 +
+ + +
+ 50% + Functions + 2/4 +
+ + +
+ 90.91% + Lines + 10/11 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +171x +1x +1x +1x +1x +  +1x +5x +  +  +1x +  +  +1x +1x +  + 
const redis = require("redis");
+const redisUrl = process.env.REDIS_URL || "redis://127.0.0.1:6379";
+const client = redis.createClient(redisUrl);
+const util = require("util");
+client.get = util.promisify(client.get);
+ 
+exports.redisGet = async (key) => {
+  return client.get(key);
+};
+ 
+exports.redisSet = (key, val) => {
+  client.set(key, val, "EX", 60 * 60 * 24);
+};
+exports.closeInstance = () => {
+  client.quit(() => {});
+};
+ 
+ +
+
+ + + + + + + + + \ No newline at end of file diff --git a/coverage/lcov-report/base.css b/coverage/lcov-report/base.css new file mode 100644 index 0000000..f418035 --- /dev/null +++ b/coverage/lcov-report/base.css @@ -0,0 +1,224 @@ +body, html { + margin:0; padding: 0; + height: 100%; +} +body { + font-family: Helvetica Neue, Helvetica, Arial; + font-size: 14px; + color:#333; +} +.small { font-size: 12px; } +*, *:after, *:before { + -webkit-box-sizing:border-box; + -moz-box-sizing:border-box; + box-sizing:border-box; + } +h1 { font-size: 20px; margin: 0;} +h2 { font-size: 14px; } +pre { + font: 12px/1.4 Consolas, "Liberation Mono", Menlo, Courier, monospace; + margin: 0; + padding: 0; + -moz-tab-size: 2; + -o-tab-size: 2; + tab-size: 2; +} +a { color:#0074D9; text-decoration:none; } +a:hover { text-decoration:underline; } +.strong { font-weight: bold; } +.space-top1 { padding: 10px 0 0 0; } +.pad2y { padding: 20px 0; } +.pad1y { padding: 10px 0; } +.pad2x { padding: 0 20px; } +.pad2 { padding: 20px; } +.pad1 { padding: 10px; } +.space-left2 { padding-left:55px; } +.space-right2 { padding-right:20px; } +.center { text-align:center; } +.clearfix { display:block; } +.clearfix:after { + content:''; + display:block; + height:0; + clear:both; + visibility:hidden; + } +.fl { float: left; } +@media only screen and (max-width:640px) { + .col3 { width:100%; max-width:100%; } + .hide-mobile { display:none!important; } +} + +.quiet { + color: #7f7f7f; + color: rgba(0,0,0,0.5); +} +.quiet a { opacity: 0.7; } + +.fraction { + font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; + font-size: 10px; + color: #555; + background: #E8E8E8; + padding: 4px 5px; + border-radius: 3px; + vertical-align: middle; +} + +div.path a:link, div.path a:visited { color: #333; } +table.coverage { + border-collapse: collapse; + margin: 10px 0 0 0; + padding: 0; +} + +table.coverage td { + margin: 0; + padding: 0; + vertical-align: top; +} +table.coverage td.line-count { + text-align: right; + padding: 0 5px 0 20px; +} +table.coverage td.line-coverage { + text-align: right; + padding-right: 10px; + min-width:20px; +} + +table.coverage td span.cline-any { + display: inline-block; + padding: 0 5px; + width: 100%; +} +.missing-if-branch { + display: inline-block; + margin-right: 5px; + border-radius: 3px; + position: relative; + padding: 0 4px; + background: #333; + color: yellow; +} + +.skip-if-branch { + display: none; + margin-right: 10px; + position: relative; + padding: 0 4px; + background: #ccc; + color: white; +} +.missing-if-branch .typ, .skip-if-branch .typ { + color: inherit !important; +} +.coverage-summary { + border-collapse: collapse; + width: 100%; +} +.coverage-summary tr { border-bottom: 1px solid #bbb; } +.keyline-all { border: 1px solid #ddd; } +.coverage-summary td, .coverage-summary th { padding: 10px; } +.coverage-summary tbody { border: 1px solid #bbb; } +.coverage-summary td { border-right: 1px solid #bbb; } +.coverage-summary td:last-child { border-right: none; } +.coverage-summary th { + text-align: left; + font-weight: normal; + white-space: nowrap; +} +.coverage-summary th.file { border-right: none !important; } +.coverage-summary th.pct { } +.coverage-summary th.pic, +.coverage-summary th.abs, +.coverage-summary td.pct, +.coverage-summary td.abs { text-align: right; } +.coverage-summary td.file { white-space: nowrap; } +.coverage-summary td.pic { min-width: 120px !important; } +.coverage-summary tfoot td { } + +.coverage-summary .sorter { + height: 10px; + width: 7px; + display: inline-block; + margin-left: 0.5em; + background: url(sort-arrow-sprite.png) no-repeat scroll 0 0 transparent; +} +.coverage-summary .sorted .sorter { + background-position: 0 -20px; +} +.coverage-summary .sorted-desc .sorter { + background-position: 0 -10px; +} +.status-line { height: 10px; } +/* yellow */ +.cbranch-no { background: yellow !important; color: #111; } +/* dark red */ +.red.solid, .status-line.low, .low .cover-fill { background:#C21F39 } +.low .chart { border:1px solid #C21F39 } +.highlighted, +.highlighted .cstat-no, .highlighted .fstat-no, .highlighted .cbranch-no{ + background: #C21F39 !important; +} +/* medium red */ +.cstat-no, .fstat-no, .cbranch-no, .cbranch-no { background:#F6C6CE } +/* light red */ +.low, .cline-no { background:#FCE1E5 } +/* light green */ +.high, .cline-yes { background:rgb(230,245,208) } +/* medium green */ +.cstat-yes { background:rgb(161,215,106) } +/* dark green */ +.status-line.high, .high .cover-fill { background:rgb(77,146,33) } +.high .chart { border:1px solid rgb(77,146,33) } +/* dark yellow (gold) */ +.status-line.medium, .medium .cover-fill { background: #f9cd0b; } +.medium .chart { border:1px solid #f9cd0b; } +/* light yellow */ +.medium { background: #fff4c2; } + +.cstat-skip { background: #ddd; color: #111; } +.fstat-skip { background: #ddd; color: #111 !important; } +.cbranch-skip { background: #ddd !important; color: #111; } + +span.cline-neutral { background: #eaeaea; } + +.coverage-summary td.empty { + opacity: .5; + padding-top: 4px; + padding-bottom: 4px; + line-height: 1; + color: #888; +} + +.cover-fill, .cover-empty { + display:inline-block; + height: 12px; +} +.chart { + line-height: 0; +} +.cover-empty { + background: white; +} +.cover-full { + border-right: none !important; +} +pre.prettyprint { + border: none !important; + padding: 0 !important; + margin: 0 !important; +} +.com { color: #999 !important; } +.ignore-none { color: #999; font-weight: normal; } + +.wrapper { + min-height: 100%; + height: auto !important; + height: 100%; + margin: 0 auto -48px; +} +.footer, .push { + height: 48px; +} diff --git a/coverage/lcov-report/block-navigation.js b/coverage/lcov-report/block-navigation.js new file mode 100644 index 0000000..c7ff5a5 --- /dev/null +++ b/coverage/lcov-report/block-navigation.js @@ -0,0 +1,79 @@ +/* eslint-disable */ +var jumpToCode = (function init() { + // Classes of code we would like to highlight in the file view + var missingCoverageClasses = ['.cbranch-no', '.cstat-no', '.fstat-no']; + + // Elements to highlight in the file listing view + var fileListingElements = ['td.pct.low']; + + // We don't want to select elements that are direct descendants of another match + var notSelector = ':not(' + missingCoverageClasses.join('):not(') + ') > '; // becomes `:not(a):not(b) > ` + + // Selecter that finds elements on the page to which we can jump + var selector = + fileListingElements.join(', ') + + ', ' + + notSelector + + missingCoverageClasses.join(', ' + notSelector); // becomes `:not(a):not(b) > a, :not(a):not(b) > b` + + // The NodeList of matching elements + var missingCoverageElements = document.querySelectorAll(selector); + + var currentIndex; + + function toggleClass(index) { + missingCoverageElements + .item(currentIndex) + .classList.remove('highlighted'); + missingCoverageElements.item(index).classList.add('highlighted'); + } + + function makeCurrent(index) { + toggleClass(index); + currentIndex = index; + missingCoverageElements.item(index).scrollIntoView({ + behavior: 'smooth', + block: 'center', + inline: 'center' + }); + } + + function goToPrevious() { + var nextIndex = 0; + if (typeof currentIndex !== 'number' || currentIndex === 0) { + nextIndex = missingCoverageElements.length - 1; + } else if (missingCoverageElements.length > 1) { + nextIndex = currentIndex - 1; + } + + makeCurrent(nextIndex); + } + + function goToNext() { + var nextIndex = 0; + + if ( + typeof currentIndex === 'number' && + currentIndex < missingCoverageElements.length - 1 + ) { + nextIndex = currentIndex + 1; + } + + makeCurrent(nextIndex); + } + + return function jump(event) { + switch (event.which) { + case 78: // n + case 74: // j + goToNext(); + break; + case 66: // b + case 75: // k + case 80: // p + goToPrevious(); + break; + } + }; +})(); +window.addEventListener('keydown', jumpToCode); diff --git a/coverage/lcov-report/index.html b/coverage/lcov-report/index.html new file mode 100644 index 0000000..e3476e8 --- /dev/null +++ b/coverage/lcov-report/index.html @@ -0,0 +1,125 @@ + + + + + + Code coverage report for All files + + + + + + + + +
+
+

All files

+
+ +
+ 88.35% + Statements + 91/103 +
+ + +
+ 81.25% + Branches + 39/48 +
+ + +
+ 87.5% + Functions + 14/16 +
+ + +
+ 91.67% + Lines + 88/96 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
allOrigins +
+
96.3%26/27100%4/460%3/596.3%26/27
allOrigins/app +
+
85.53%65/7679.55%35/44100%11/1189.86%62/69
+
+
+
+ + + + + + + + + \ No newline at end of file diff --git a/coverage/lcov-report/prettify.css b/coverage/lcov-report/prettify.css new file mode 100644 index 0000000..b317a7c --- /dev/null +++ b/coverage/lcov-report/prettify.css @@ -0,0 +1 @@ +.pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee} diff --git a/coverage/lcov-report/prettify.js b/coverage/lcov-report/prettify.js new file mode 100644 index 0000000..b322523 --- /dev/null +++ b/coverage/lcov-report/prettify.js @@ -0,0 +1,2 @@ +/* eslint-disable */ +window.PR_SHOULD_USE_CONTINUATION=true;(function(){var h=["break,continue,do,else,for,if,return,while"];var u=[h,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"];var p=[u,"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"];var l=[p,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"];var x=[p,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"];var R=[x,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"];var r="all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes";var w=[p,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"];var s="caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END";var I=[h,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"];var f=[h,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"];var H=[h,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"];var A=[l,R,w,s+I,f,H];var e=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/;var C="str";var z="kwd";var j="com";var O="typ";var G="lit";var L="pun";var F="pln";var m="tag";var E="dec";var J="src";var P="atn";var n="atv";var N="nocode";var M="(?:^^\\.?|[+-]|\\!|\\!=|\\!==|\\#|\\%|\\%=|&|&&|&&=|&=|\\(|\\*|\\*=|\\+=|\\,|\\-=|\\->|\\/|\\/=|:|::|\\;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|\\?|\\@|\\[|\\^|\\^=|\\^\\^|\\^\\^=|\\{|\\||\\|=|\\|\\||\\|\\|=|\\~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*";function k(Z){var ad=0;var S=false;var ac=false;for(var V=0,U=Z.length;V122)){if(!(al<65||ag>90)){af.push([Math.max(65,ag)|32,Math.min(al,90)|32])}if(!(al<97||ag>122)){af.push([Math.max(97,ag)&~32,Math.min(al,122)&~32])}}}}af.sort(function(av,au){return(av[0]-au[0])||(au[1]-av[1])});var ai=[];var ap=[NaN,NaN];for(var ar=0;arat[0]){if(at[1]+1>at[0]){an.push("-")}an.push(T(at[1]))}}an.push("]");return an.join("")}function W(al){var aj=al.source.match(new RegExp("(?:\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]|\\\\u[A-Fa-f0-9]{4}|\\\\x[A-Fa-f0-9]{2}|\\\\[0-9]+|\\\\[^ux0-9]|\\(\\?[:!=]|[\\(\\)\\^]|[^\\x5B\\x5C\\(\\)\\^]+)","g"));var ah=aj.length;var an=[];for(var ak=0,am=0;ak=2&&ai==="["){aj[ak]=X(ag)}else{if(ai!=="\\"){aj[ak]=ag.replace(/[a-zA-Z]/g,function(ao){var ap=ao.charCodeAt(0);return"["+String.fromCharCode(ap&~32,ap|32)+"]"})}}}}return aj.join("")}var aa=[];for(var V=0,U=Z.length;V=0;){S[ac.charAt(ae)]=Y}}var af=Y[1];var aa=""+af;if(!ag.hasOwnProperty(aa)){ah.push(af);ag[aa]=null}}ah.push(/[\0-\uffff]/);V=k(ah)})();var X=T.length;var W=function(ah){var Z=ah.sourceCode,Y=ah.basePos;var ad=[Y,F];var af=0;var an=Z.match(V)||[];var aj={};for(var ae=0,aq=an.length;ae=5&&"lang-"===ap.substring(0,5);if(am&&!(ai&&typeof ai[1]==="string")){am=false;ap=J}if(!am){aj[ag]=ap}}var ab=af;af+=ag.length;if(!am){ad.push(Y+ab,ap)}else{var al=ai[1];var ak=ag.indexOf(al);var ac=ak+al.length;if(ai[2]){ac=ag.length-ai[2].length;ak=ac-al.length}var ar=ap.substring(5);B(Y+ab,ag.substring(0,ak),W,ad);B(Y+ab+ak,al,q(ar,al),ad);B(Y+ab+ac,ag.substring(ac),W,ad)}}ah.decorations=ad};return W}function i(T){var W=[],S=[];if(T.tripleQuotedStrings){W.push([C,/^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,null,"'\""])}else{if(T.multiLineStrings){W.push([C,/^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,null,"'\"`"])}else{W.push([C,/^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,null,"\"'"])}}if(T.verbatimStrings){S.push([C,/^@\"(?:[^\"]|\"\")*(?:\"|$)/,null])}var Y=T.hashComments;if(Y){if(T.cStyleComments){if(Y>1){W.push([j,/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,null,"#"])}else{W.push([j,/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\r\n]*)/,null,"#"])}S.push([C,/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,null])}else{W.push([j,/^#[^\r\n]*/,null,"#"])}}if(T.cStyleComments){S.push([j,/^\/\/[^\r\n]*/,null]);S.push([j,/^\/\*[\s\S]*?(?:\*\/|$)/,null])}if(T.regexLiterals){var X=("/(?=[^/*])(?:[^/\\x5B\\x5C]|\\x5C[\\s\\S]|\\x5B(?:[^\\x5C\\x5D]|\\x5C[\\s\\S])*(?:\\x5D|$))+/");S.push(["lang-regex",new RegExp("^"+M+"("+X+")")])}var V=T.types;if(V){S.push([O,V])}var U=(""+T.keywords).replace(/^ | $/g,"");if(U.length){S.push([z,new RegExp("^(?:"+U.replace(/[\s,]+/g,"|")+")\\b"),null])}W.push([F,/^\s+/,null," \r\n\t\xA0"]);S.push([G,/^@[a-z_$][a-z_$@0-9]*/i,null],[O,/^(?:[@_]?[A-Z]+[a-z][A-Za-z_$@0-9]*|\w+_t\b)/,null],[F,/^[a-z_$][a-z_$@0-9]*/i,null],[G,new RegExp("^(?:0x[a-f0-9]+|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)(?:e[+\\-]?\\d+)?)[a-z]*","i"),null,"0123456789"],[F,/^\\[\s\S]?/,null],[L,/^.[^\s\w\.$@\'\"\`\/\#\\]*/,null]);return g(W,S)}var K=i({keywords:A,hashComments:true,cStyleComments:true,multiLineStrings:true,regexLiterals:true});function Q(V,ag){var U=/(?:^|\s)nocode(?:\s|$)/;var ab=/\r\n?|\n/;var ac=V.ownerDocument;var S;if(V.currentStyle){S=V.currentStyle.whiteSpace}else{if(window.getComputedStyle){S=ac.defaultView.getComputedStyle(V,null).getPropertyValue("white-space")}}var Z=S&&"pre"===S.substring(0,3);var af=ac.createElement("LI");while(V.firstChild){af.appendChild(V.firstChild)}var W=[af];function ae(al){switch(al.nodeType){case 1:if(U.test(al.className)){break}if("BR"===al.nodeName){ad(al);if(al.parentNode){al.parentNode.removeChild(al)}}else{for(var an=al.firstChild;an;an=an.nextSibling){ae(an)}}break;case 3:case 4:if(Z){var am=al.nodeValue;var aj=am.match(ab);if(aj){var ai=am.substring(0,aj.index);al.nodeValue=ai;var ah=am.substring(aj.index+aj[0].length);if(ah){var ak=al.parentNode;ak.insertBefore(ac.createTextNode(ah),al.nextSibling)}ad(al);if(!ai){al.parentNode.removeChild(al)}}}break}}function ad(ak){while(!ak.nextSibling){ak=ak.parentNode;if(!ak){return}}function ai(al,ar){var aq=ar?al.cloneNode(false):al;var ao=al.parentNode;if(ao){var ap=ai(ao,1);var an=al.nextSibling;ap.appendChild(aq);for(var am=an;am;am=an){an=am.nextSibling;ap.appendChild(am)}}return aq}var ah=ai(ak.nextSibling,0);for(var aj;(aj=ah.parentNode)&&aj.nodeType===1;){ah=aj}W.push(ah)}for(var Y=0;Y=S){ah+=2}if(V>=ap){Z+=2}}}var t={};function c(U,V){for(var S=V.length;--S>=0;){var T=V[S];if(!t.hasOwnProperty(T)){t[T]=U}else{if(window.console){console.warn("cannot override language handler %s",T)}}}}function q(T,S){if(!(T&&t.hasOwnProperty(T))){T=/^\s*]*(?:>|$)/],[j,/^<\!--[\s\S]*?(?:-\->|$)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],[L,/^(?:<[%?]|[%?]>)/],["lang-",/^]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-js",/^]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),["default-markup","htm","html","mxml","xhtml","xml","xsl"]);c(g([[F,/^[\s]+/,null," \t\r\n"],[n,/^(?:\"[^\"]*\"?|\'[^\']*\'?)/,null,"\"'"]],[[m,/^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],[P,/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/],[L,/^[=<>\/]+/],["lang-js",/^on\w+\s*=\s*\"([^\"]+)\"/i],["lang-js",/^on\w+\s*=\s*\'([^\']+)\'/i],["lang-js",/^on\w+\s*=\s*([^\"\'>\s]+)/i],["lang-css",/^style\s*=\s*\"([^\"]+)\"/i],["lang-css",/^style\s*=\s*\'([^\']+)\'/i],["lang-css",/^style\s*=\s*([^\"\'>\s]+)/i]]),["in.tag"]);c(g([],[[n,/^[\s\S]+/]]),["uq.val"]);c(i({keywords:l,hashComments:true,cStyleComments:true,types:e}),["c","cc","cpp","cxx","cyc","m"]);c(i({keywords:"null,true,false"}),["json"]);c(i({keywords:R,hashComments:true,cStyleComments:true,verbatimStrings:true,types:e}),["cs"]);c(i({keywords:x,cStyleComments:true}),["java"]);c(i({keywords:H,hashComments:true,multiLineStrings:true}),["bsh","csh","sh"]);c(i({keywords:I,hashComments:true,multiLineStrings:true,tripleQuotedStrings:true}),["cv","py"]);c(i({keywords:s,hashComments:true,multiLineStrings:true,regexLiterals:true}),["perl","pl","pm"]);c(i({keywords:f,hashComments:true,multiLineStrings:true,regexLiterals:true}),["rb"]);c(i({keywords:w,cStyleComments:true,regexLiterals:true}),["js"]);c(i({keywords:r,hashComments:3,cStyleComments:true,multilineStrings:true,tripleQuotedStrings:true,regexLiterals:true}),["coffee"]);c(g([],[[C,/^[\s\S]+/]]),["regex"]);function d(V){var U=V.langExtension;try{var S=a(V.sourceNode);var T=S.sourceCode;V.sourceCode=T;V.spans=S.spans;V.basePos=0;q(U,T)(V);D(V)}catch(W){if("console" in window){console.log(W&&W.stack?W.stack:W)}}}function y(W,V,U){var S=document.createElement("PRE");S.innerHTML=W;if(U){Q(S,U)}var T={langExtension:V,numberLines:U,sourceNode:S};d(T);return S.innerHTML}function b(ad){function Y(af){return document.getElementsByTagName(af)}var ac=[Y("pre"),Y("code"),Y("xmp")];var T=[];for(var aa=0;aa=0){var ah=ai.match(ab);var am;if(!ah&&(am=o(aj))&&"CODE"===am.tagName){ah=am.className.match(ab)}if(ah){ah=ah[1]}var al=false;for(var ak=aj.parentNode;ak;ak=ak.parentNode){if((ak.tagName==="pre"||ak.tagName==="code"||ak.tagName==="xmp")&&ak.className&&ak.className.indexOf("prettyprint")>=0){al=true;break}}if(!al){var af=aj.className.match(/\blinenums\b(?::(\d+))?/);af=af?af[1]&&af[1].length?+af[1]:true:false;if(af){Q(aj,af)}S={langExtension:ah,sourceNode:aj,numberLines:af};d(S)}}}if(X]*(?:>|$)/],[PR.PR_COMMENT,/^<\!--[\s\S]*?(?:-\->|$)/],[PR.PR_PUNCTUATION,/^(?:<[%?]|[%?]>)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],["lang-",/^]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-handlebars",/^]*type\s*=\s*['"]?text\/x-handlebars-template['"]?\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-js",/^]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i],[PR.PR_DECLARATION,/^{{[#^>/]?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{&?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{{>?\s*[\w.][^}]*}}}/],[PR.PR_COMMENT,/^{{![^}]*}}/]]),["handlebars","hbs"]);PR.registerLangHandler(PR.createSimpleLexer([[PR.PR_PLAIN,/^[ \t\r\n\f]+/,null," \t\r\n\f"]],[[PR.PR_STRING,/^\"(?:[^\n\r\f\\\"]|\\(?:\r\n?|\n|\f)|\\[\s\S])*\"/,null],[PR.PR_STRING,/^\'(?:[^\n\r\f\\\']|\\(?:\r\n?|\n|\f)|\\[\s\S])*\'/,null],["lang-css-str",/^url\(([^\)\"\']*)\)/i],[PR.PR_KEYWORD,/^(?:url|rgb|\!important|@import|@page|@media|@charset|inherit)(?=[^\-\w]|$)/i,null],["lang-css-kw",/^(-?(?:[_a-z]|(?:\\[0-9a-f]+ ?))(?:[_a-z0-9\-]|\\(?:\\[0-9a-f]+ ?))*)\s*:/i],[PR.PR_COMMENT,/^\/\*[^*]*\*+(?:[^\/*][^*]*\*+)*\//],[PR.PR_COMMENT,/^(?:)/],[PR.PR_LITERAL,/^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i],[PR.PR_LITERAL,/^#(?:[0-9a-f]{3}){1,2}/i],[PR.PR_PLAIN,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i],[PR.PR_PUNCTUATION,/^[^\s\w\'\"]+/]]),["css"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_KEYWORD,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i]]),["css-kw"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_STRING,/^[^\)\"\']+/]]),["css-str"]); diff --git a/coverage/lcov-report/sort-arrow-sprite.png b/coverage/lcov-report/sort-arrow-sprite.png new file mode 100644 index 0000000000000000000000000000000000000000..03f704a609c6fd0dbfdac63466a7d7c958b5cbf3 GIT binary patch literal 209 zcmeAS@N?(olHy`uVBq!ia0vp^>_9Bd!3HEZxJ@+%Qj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>Jii$m5978H@?Fn+^JD|Y9yzj{W`447Gxa{7*dM7nnnD-Lb z6^}Hx2)'; + } + } + return cols; + } + // attaches a data attribute to every tr element with an object + // of data values keyed by column name + function loadRowData(tableRow) { + var tableCols = tableRow.querySelectorAll('td'), + colNode, + col, + data = {}, + i, + val; + for (i = 0; i < tableCols.length; i += 1) { + colNode = tableCols[i]; + col = cols[i]; + val = colNode.getAttribute('data-value'); + if (col.type === 'number') { + val = Number(val); + } + data[col.key] = val; + } + return data; + } + // loads all row data + function loadData() { + var rows = getTableBody().querySelectorAll('tr'), + i; + + for (i = 0; i < rows.length; i += 1) { + rows[i].data = loadRowData(rows[i]); + } + } + // sorts the table using the data for the ith column + function sortByIndex(index, desc) { + var key = cols[index].key, + sorter = function(a, b) { + a = a.data[key]; + b = b.data[key]; + return a < b ? -1 : a > b ? 1 : 0; + }, + finalSorter = sorter, + tableBody = document.querySelector('.coverage-summary tbody'), + rowNodes = tableBody.querySelectorAll('tr'), + rows = [], + i; + + if (desc) { + finalSorter = function(a, b) { + return -1 * sorter(a, b); + }; + } + + for (i = 0; i < rowNodes.length; i += 1) { + rows.push(rowNodes[i]); + tableBody.removeChild(rowNodes[i]); + } + + rows.sort(finalSorter); + + for (i = 0; i < rows.length; i += 1) { + tableBody.appendChild(rows[i]); + } + } + // removes sort indicators for current column being sorted + function removeSortIndicators() { + var col = getNthColumn(currentSort.index), + cls = col.className; + + cls = cls.replace(/ sorted$/, '').replace(/ sorted-desc$/, ''); + col.className = cls; + } + // adds sort indicators for current column being sorted + function addSortIndicators() { + getNthColumn(currentSort.index).className += currentSort.desc + ? ' sorted-desc' + : ' sorted'; + } + // adds event listeners for all sorter widgets + function enableUI() { + var i, + el, + ithSorter = function ithSorter(i) { + var col = cols[i]; + + return function() { + var desc = col.defaultDescSort; + + if (currentSort.index === i) { + desc = !currentSort.desc; + } + sortByIndex(i, desc); + removeSortIndicators(); + currentSort.index = i; + currentSort.desc = desc; + addSortIndicators(); + }; + }; + for (i = 0; i < cols.length; i += 1) { + if (cols[i].sortable) { + // add the click event handler on the th so users + // dont have to click on those tiny arrows + el = getNthColumn(i).querySelector('.sorter').parentElement; + if (el.addEventListener) { + el.addEventListener('click', ithSorter(i)); + } else { + el.attachEvent('onclick', ithSorter(i)); + } + } + } + } + // adds sorting functionality to the UI + return function() { + if (!getTable()) { + return; + } + cols = loadColumns(); + loadData(); + addSortIndicators(); + enableUI(); + }; +})(); + +window.addEventListener('load', addSorting); diff --git a/coverage/lcov.info b/coverage/lcov.info new file mode 100644 index 0000000..8e5f3fe --- /dev/null +++ b/coverage/lcov.info @@ -0,0 +1,212 @@ +TN: +SF:C:\project\open-source\allOrigins\app.js +FN:25,enableCORS +FNF:1 +FNH:1 +FNDA:6,enableCORS +DA:7,1 +DA:9,1 +DA:12,1 +DA:14,1 +DA:16,1 +DA:18,1 +DA:19,1 +DA:20,1 +DA:22,1 +DA:26,6 +DA:27,6 +DA:28,6 +DA:29,6 +DA:30,6 +DA:31,6 +DA:34,1 +LF:16 +LH:16 +BRDA:26,0,0,6 +BRDA:26,0,1,5 +BRF:2 +BRH:2 +end_of_record +TN: +SF:C:\project\open-source\allOrigins\redis.js +FN:7,(anonymous_0) +FN:11,(anonymous_1) +FN:14,(anonymous_2) +FN:15,(anonymous_3) +FNF:4 +FNH:2 +FNDA:5,(anonymous_0) +FNDA:0,(anonymous_1) +FNDA:1,(anonymous_2) +FNDA:0,(anonymous_3) +DA:1,1 +DA:2,1 +DA:3,1 +DA:4,1 +DA:5,1 +DA:7,1 +DA:8,5 +DA:11,1 +DA:12,0 +DA:14,1 +DA:15,1 +LF:11 +LH:10 +BRDA:2,0,0,1 +BRDA:2,0,1,1 +BRF:2 +BRH:2 +end_of_record +TN: +SF:C:\project\open-source\allOrigins\app\get-page.js +FN:8,getPage +FN:18,getPageInfo +FN:30,getRawPage +FN:42,getPageContents +FN:58,request +FN:97,processContent +FN:102,processError +FNF:7 +FNH:7 +FNDA:5,getPage +FNDA:1,getPageInfo +FNDA:1,getRawPage +FNDA:3,getPageContents +FNDA:5,request +FNDA:3,processContent +FNDA:1,processError +DA:1,1 +DA:2,1 +DA:4,1 +DA:6,1 +DA:9,5 +DA:10,1 +DA:11,4 +DA:12,1 +DA:15,3 +DA:19,1 +DA:20,1 +DA:22,1 +DA:31,1 +DA:32,1 +DA:34,1 +DA:35,1 +DA:43,3 +DA:44,3 +DA:46,2 +DA:47,2 +DA:59,5 +DA:61,5 +DA:68,5 +DA:69,5 +DA:70,0 +DA:72,0 +DA:74,0 +DA:75,0 +DA:76,0 +DA:79,5 +DA:81,4 +DA:82,3 +DA:83,0 +DA:91,3 +DA:93,1 +DA:98,3 +DA:99,3 +DA:103,1 +DA:104,1 +DA:106,1 +DA:107,1 +DA:109,1 +LF:42 +LH:36 +BRDA:9,0,0,1 +BRDA:9,0,1,4 +BRDA:9,1,0,5 +BRDA:9,1,1,4 +BRDA:11,2,0,1 +BRDA:11,2,1,3 +BRDA:20,3,0,0 +BRDA:20,3,1,1 +BRDA:25,4,0,1 +BRDA:25,4,1,1 +BRDA:32,5,0,0 +BRDA:32,5,1,1 +BRDA:44,6,0,1 +BRDA:44,6,1,2 +BRDA:65,7,0,5 +BRDA:65,7,1,5 +BRDA:69,8,0,0 +BRDA:69,8,1,5 +BRDA:81,9,0,1 +BRDA:81,9,1,3 +BRDA:82,10,0,0 +BRDA:82,10,1,3 +BRDA:104,11,0,0 +BRDA:104,11,1,1 +BRF:24 +BRH:19 +end_of_record +TN: +SF:C:\project\open-source\allOrigins\app\process-request.js +FN:5,processRequest +FN:16,parseParams +FN:27,parseRequestMethod +FN:36,createResponse +FNF:4 +FNH:4 +FNDA:6,processRequest +FNDA:5,parseParams +FNDA:5,parseRequestMethod +FNDA:5,createResponse +DA:1,1 +DA:3,1 +DA:6,6 +DA:7,1 +DA:10,5 +DA:11,5 +DA:12,5 +DA:13,5 +DA:17,5 +DA:22,5 +DA:23,5 +DA:24,5 +DA:28,5 +DA:30,5 +DA:31,1 +DA:33,4 +DA:37,5 +DA:38,1 +DA:39,1 +DA:40,1 +DA:43,4 +DA:44,0 +DA:45,4 +DA:47,4 +DA:48,1 +DA:50,4 +DA:51,4 +LF:27 +LH:26 +BRDA:6,0,0,1 +BRDA:6,0,1,5 +BRDA:23,1,0,5 +BRDA:23,1,1,0 +BRDA:28,2,0,5 +BRDA:28,2,1,0 +BRDA:30,3,0,1 +BRDA:30,3,1,4 +BRDA:37,4,0,1 +BRDA:37,4,1,4 +BRDA:37,5,0,5 +BRDA:37,5,1,1 +BRDA:37,6,0,1 +BRDA:37,6,1,1 +BRDA:43,7,0,0 +BRDA:43,7,1,4 +BRDA:47,8,0,3 +BRDA:47,8,1,1 +BRDA:50,9,0,0 +BRDA:50,9,1,4 +BRF:20 +BRH:16 +end_of_record From 4bc2b7500381400b1f97432d7d825bb5818d502d Mon Sep 17 00:00:00 2001 From: Sourav Kunda Date: Wed, 22 Jul 2020 13:44:57 +0530 Subject: [PATCH 7/7] removed extra files --- coverage/clover.xml | 120 ----- coverage/coverage-final.json | 5 - coverage/lcov-report/allOrigins/app.js.html | 181 -------- .../allOrigins/app/get-page.js.html | 433 ------------------ .../lcov-report/allOrigins/app/index.html | 125 ----- .../allOrigins/app/process-request.js.html | 235 ---------- coverage/lcov-report/allOrigins/index.html | 125 ----- coverage/lcov-report/allOrigins/redis.js.html | 127 ----- coverage/lcov-report/base.css | 224 --------- coverage/lcov-report/block-navigation.js | 79 ---- coverage/lcov-report/index.html | 125 ----- coverage/lcov-report/prettify.css | 1 - coverage/lcov-report/prettify.js | 2 - coverage/lcov-report/sort-arrow-sprite.png | Bin 209 -> 0 bytes coverage/lcov-report/sorter.js | 170 ------- coverage/lcov.info | 212 --------- 16 files changed, 2164 deletions(-) delete mode 100644 coverage/clover.xml delete mode 100644 coverage/coverage-final.json delete mode 100644 coverage/lcov-report/allOrigins/app.js.html delete mode 100644 coverage/lcov-report/allOrigins/app/get-page.js.html delete mode 100644 coverage/lcov-report/allOrigins/app/index.html delete mode 100644 coverage/lcov-report/allOrigins/app/process-request.js.html delete mode 100644 coverage/lcov-report/allOrigins/index.html delete mode 100644 coverage/lcov-report/allOrigins/redis.js.html delete mode 100644 coverage/lcov-report/base.css delete mode 100644 coverage/lcov-report/block-navigation.js delete mode 100644 coverage/lcov-report/index.html delete mode 100644 coverage/lcov-report/prettify.css delete mode 100644 coverage/lcov-report/prettify.js delete mode 100644 coverage/lcov-report/sort-arrow-sprite.png delete mode 100644 coverage/lcov-report/sorter.js delete mode 100644 coverage/lcov.info diff --git a/coverage/clover.xml b/coverage/clover.xml deleted file mode 100644 index 5b80c66..0000000 --- a/coverage/clover.xml +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/coverage/coverage-final.json b/coverage/coverage-final.json deleted file mode 100644 index 70922e2..0000000 --- a/coverage/coverage-final.json +++ /dev/null @@ -1,5 +0,0 @@ -{"C:\\project\\open-source\\allOrigins\\app.js": {"path":"C:\\project\\open-source\\allOrigins\\app.js","statementMap":{"0":{"start":{"line":7,"column":16},"end":{"line":7,"column":34}},"1":{"start":{"line":9,"column":18},"end":{"line":9,"column":43}},"2":{"start":{"line":12,"column":0},"end":{"line":12,"column":27}},"3":{"start":{"line":14,"column":24},"end":{"line":14,"column":56}},"4":{"start":{"line":16,"column":12},"end":{"line":16,"column":21}},"5":{"start":{"line":18,"column":0},"end":{"line":18,"column":40}},"6":{"start":{"line":19,"column":0},"end":{"line":19,"column":27}},"7":{"start":{"line":20,"column":0},"end":{"line":20,"column":19}},"8":{"start":{"line":22,"column":0},"end":{"line":22,"column":35}},"9":{"start":{"line":26,"column":2},"end":{"line":26,"column":70}},"10":{"start":{"line":27,"column":2},"end":{"line":27,"column":54}},"11":{"start":{"line":28,"column":2},"end":{"line":28,"column":112}},"12":{"start":{"line":29,"column":2},"end":{"line":29,"column":86}},"13":{"start":{"line":30,"column":2},"end":{"line":30,"column":45}},"14":{"start":{"line":31,"column":2},"end":{"line":31,"column":8}},"15":{"start":{"line":34,"column":0},"end":{"line":34,"column":20}}},"fnMap":{"0":{"name":"enableCORS","decl":{"start":{"line":25,"column":9},"end":{"line":25,"column":19}},"loc":{"start":{"line":25,"column":37},"end":{"line":32,"column":1}},"line":25}},"branchMap":{"0":{"loc":{"start":{"line":26,"column":44},"end":{"line":26,"column":69}},"type":"binary-expr","locations":[{"start":{"line":26,"column":44},"end":{"line":26,"column":62}},{"start":{"line":26,"column":66},"end":{"line":26,"column":69}}],"line":26}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":6,"10":6,"11":6,"12":6,"13":6,"14":6,"15":1},"f":{"0":6},"b":{"0":[6,5]},"_coverageSchema":"43e27e138ebf9cfc5966b082cf9a028302ed4184","hash":"1104b77f0ef0f247628324917e5136ea3233a172"} -,"C:\\project\\open-source\\allOrigins\\redis.js": {"path":"C:\\project\\open-source\\allOrigins\\redis.js","statementMap":{"0":{"start":{"line":1,"column":14},"end":{"line":1,"column":30}},"1":{"start":{"line":2,"column":17},"end":{"line":2,"column":66}},"2":{"start":{"line":3,"column":15},"end":{"line":3,"column":43}},"3":{"start":{"line":4,"column":13},"end":{"line":4,"column":28}},"4":{"start":{"line":5,"column":0},"end":{"line":5,"column":40}},"5":{"start":{"line":7,"column":0},"end":{"line":9,"column":2}},"6":{"start":{"line":8,"column":2},"end":{"line":8,"column":25}},"7":{"start":{"line":11,"column":0},"end":{"line":13,"column":2}},"8":{"start":{"line":12,"column":2},"end":{"line":12,"column":43}},"9":{"start":{"line":14,"column":0},"end":{"line":16,"column":2}},"10":{"start":{"line":15,"column":2},"end":{"line":15,"column":24}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":7,"column":19},"end":{"line":7,"column":20}},"loc":{"start":{"line":7,"column":34},"end":{"line":9,"column":1}},"line":7},"1":{"name":"(anonymous_1)","decl":{"start":{"line":11,"column":19},"end":{"line":11,"column":20}},"loc":{"start":{"line":11,"column":33},"end":{"line":13,"column":1}},"line":11},"2":{"name":"(anonymous_2)","decl":{"start":{"line":14,"column":24},"end":{"line":14,"column":25}},"loc":{"start":{"line":14,"column":30},"end":{"line":16,"column":1}},"line":14},"3":{"name":"(anonymous_3)","decl":{"start":{"line":15,"column":14},"end":{"line":15,"column":15}},"loc":{"start":{"line":15,"column":20},"end":{"line":15,"column":22}},"line":15}},"branchMap":{"0":{"loc":{"start":{"line":2,"column":17},"end":{"line":2,"column":66}},"type":"binary-expr","locations":[{"start":{"line":2,"column":17},"end":{"line":2,"column":38}},{"start":{"line":2,"column":42},"end":{"line":2,"column":66}}],"line":2}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":5,"7":1,"8":0,"9":1,"10":1},"f":{"0":5,"1":0,"2":1,"3":0},"b":{"0":[1,1]},"_coverageSchema":"43e27e138ebf9cfc5966b082cf9a028302ed4184","hash":"99f10051fe814ccde083affe3e869b28221cd755"} -,"C:\\project\\open-source\\allOrigins\\app\\get-page.js": {"path":"C:\\project\\open-source\\allOrigins\\app\\get-page.js","statementMap":{"0":{"start":{"line":1,"column":12},"end":{"line":1,"column":26}},"1":{"start":{"line":2,"column":29},"end":{"line":2,"column":48}},"2":{"start":{"line":4,"column":27},"end":{"line":4,"column":110}},"3":{"start":{"line":6,"column":0},"end":{"line":6,"column":24}},"4":{"start":{"line":9,"column":2},"end":{"line":13,"column":3}},"5":{"start":{"line":10,"column":4},"end":{"line":10,"column":27}},"6":{"start":{"line":11,"column":9},"end":{"line":13,"column":3}},"7":{"start":{"line":12,"column":4},"end":{"line":12,"column":41}},"8":{"start":{"line":15,"column":2},"end":{"line":15,"column":44}},"9":{"start":{"line":19,"column":28},"end":{"line":19,"column":54}},"10":{"start":{"line":20,"column":2},"end":{"line":20,"column":39}},"11":{"start":{"line":20,"column":13},"end":{"line":20,"column":39}},"12":{"start":{"line":22,"column":2},"end":{"line":27,"column":3}},"13":{"start":{"line":31,"column":37},"end":{"line":31,"column":70}},"14":{"start":{"line":32,"column":2},"end":{"line":32,"column":39}},"15":{"start":{"line":32,"column":13},"end":{"line":32,"column":39}},"16":{"start":{"line":34,"column":24},"end":{"line":34,"column":50}},"17":{"start":{"line":35,"column":2},"end":{"line":39,"column":3}},"18":{"start":{"line":43,"column":37},"end":{"line":43,"column":70}},"19":{"start":{"line":44,"column":2},"end":{"line":44,"column":39}},"20":{"start":{"line":44,"column":13},"end":{"line":44,"column":39}},"21":{"start":{"line":46,"column":24},"end":{"line":46,"column":50}},"22":{"start":{"line":47,"column":2},"end":{"line":55,"column":3}},"23":{"start":{"line":59,"column":2},"end":{"line":94,"column":3}},"24":{"start":{"line":61,"column":20},"end":{"line":67,"column":5}},"25":{"start":{"line":68,"column":16},"end":{"line":68,"column":51}},"26":{"start":{"line":69,"column":4},"end":{"line":77,"column":5}},"27":{"start":{"line":70,"column":30},"end":{"line":70,"column":45}},"28":{"start":{"line":72,"column":6},"end":{"line":72,"column":42}},"29":{"start":{"line":74,"column":6},"end":{"line":74,"column":40}},"30":{"start":{"line":75,"column":6},"end":{"line":75,"column":39}},"31":{"start":{"line":76,"column":6},"end":{"line":76,"column":37}},"32":{"start":{"line":79,"column":4},"end":{"line":79,"column":38}},"33":{"start":{"line":81,"column":4},"end":{"line":81,"column":52}},"34":{"start":{"line":81,"column":35},"end":{"line":81,"column":52}},"35":{"start":{"line":82,"column":4},"end":{"line":90,"column":5}},"36":{"start":{"line":83,"column":6},"end":{"line":89,"column":7}},"37":{"start":{"line":91,"column":4},"end":{"line":91,"column":35}},"38":{"start":{"line":93,"column":4},"end":{"line":93,"column":18}},"39":{"start":{"line":98,"column":14},"end":{"line":98,"column":58}},"40":{"start":{"line":99,"column":2},"end":{"line":99,"column":12}},"41":{"start":{"line":103,"column":21},"end":{"line":103,"column":22}},"42":{"start":{"line":104,"column":2},"end":{"line":104,"column":60}},"43":{"start":{"line":104,"column":17},"end":{"line":104,"column":60}},"44":{"start":{"line":106,"column":54},"end":{"line":106,"column":62}},"45":{"start":{"line":107,"column":24},"end":{"line":107,"column":47}},"46":{"start":{"line":109,"column":2},"end":{"line":117,"column":3}}},"fnMap":{"0":{"name":"getPage","decl":{"start":{"line":8,"column":9},"end":{"line":8,"column":16}},"loc":{"start":{"line":8,"column":48},"end":{"line":16,"column":1}},"line":8},"1":{"name":"getPageInfo","decl":{"start":{"line":18,"column":15},"end":{"line":18,"column":26}},"loc":{"start":{"line":18,"column":33},"end":{"line":28,"column":1}},"line":18},"2":{"name":"getRawPage","decl":{"start":{"line":30,"column":15},"end":{"line":30,"column":25}},"loc":{"start":{"line":30,"column":47},"end":{"line":40,"column":1}},"line":30},"3":{"name":"getPageContents","decl":{"start":{"line":42,"column":15},"end":{"line":42,"column":30}},"loc":{"start":{"line":42,"column":52},"end":{"line":56,"column":1}},"line":42},"4":{"name":"request","decl":{"start":{"line":58,"column":15},"end":{"line":58,"column":22}},"loc":{"start":{"line":58,"column":44},"end":{"line":95,"column":1}},"line":58},"5":{"name":"processContent","decl":{"start":{"line":97,"column":15},"end":{"line":97,"column":29}},"loc":{"start":{"line":97,"column":41},"end":{"line":100,"column":1}},"line":97},"6":{"name":"processError","decl":{"start":{"line":102,"column":15},"end":{"line":102,"column":27}},"loc":{"start":{"line":102,"column":32},"end":{"line":118,"column":1}},"line":102}},"branchMap":{"0":{"loc":{"start":{"line":9,"column":2},"end":{"line":13,"column":3}},"type":"if","locations":[{"start":{"line":9,"column":2},"end":{"line":13,"column":3}},{"start":{"line":9,"column":2},"end":{"line":13,"column":3}}],"line":9},"1":{"loc":{"start":{"line":9,"column":6},"end":{"line":9,"column":51}},"type":"binary-expr","locations":[{"start":{"line":9,"column":6},"end":{"line":9,"column":23}},{"start":{"line":9,"column":27},"end":{"line":9,"column":51}}],"line":9},"2":{"loc":{"start":{"line":11,"column":9},"end":{"line":13,"column":3}},"type":"if","locations":[{"start":{"line":11,"column":9},"end":{"line":13,"column":3}},{"start":{"line":11,"column":9},"end":{"line":13,"column":3}}],"line":11},"3":{"loc":{"start":{"line":20,"column":2},"end":{"line":20,"column":39}},"type":"if","locations":[{"start":{"line":20,"column":2},"end":{"line":20,"column":39}},{"start":{"line":20,"column":2},"end":{"line":20,"column":39}}],"line":20},"4":{"loc":{"start":{"line":25,"column":20},"end":{"line":25,"column":61}},"type":"binary-expr","locations":[{"start":{"line":25,"column":20},"end":{"line":25,"column":55}},{"start":{"line":25,"column":59},"end":{"line":25,"column":61}}],"line":25},"5":{"loc":{"start":{"line":32,"column":2},"end":{"line":32,"column":39}},"type":"if","locations":[{"start":{"line":32,"column":2},"end":{"line":32,"column":39}},{"start":{"line":32,"column":2},"end":{"line":32,"column":39}}],"line":32},"6":{"loc":{"start":{"line":44,"column":2},"end":{"line":44,"column":39}},"type":"if","locations":[{"start":{"line":44,"column":2},"end":{"line":44,"column":39}},{"start":{"line":44,"column":2},"end":{"line":44,"column":39}}],"line":44},"7":{"loc":{"start":{"line":65,"column":22},"end":{"line":65,"column":66}},"type":"binary-expr","locations":[{"start":{"line":65,"column":22},"end":{"line":65,"column":44}},{"start":{"line":65,"column":48},"end":{"line":65,"column":66}}],"line":65},"8":{"loc":{"start":{"line":69,"column":4},"end":{"line":77,"column":5}},"type":"if","locations":[{"start":{"line":69,"column":4},"end":{"line":77,"column":5}},{"start":{"line":69,"column":4},"end":{"line":77,"column":5}}],"line":69},"9":{"loc":{"start":{"line":81,"column":4},"end":{"line":81,"column":52}},"type":"if","locations":[{"start":{"line":81,"column":4},"end":{"line":81,"column":52}},{"start":{"line":81,"column":4},"end":{"line":81,"column":52}}],"line":81},"10":{"loc":{"start":{"line":82,"column":4},"end":{"line":90,"column":5}},"type":"if","locations":[{"start":{"line":82,"column":4},"end":{"line":90,"column":5}},{"start":{"line":82,"column":4},"end":{"line":90,"column":5}}],"line":82},"11":{"loc":{"start":{"line":104,"column":2},"end":{"line":104,"column":60}},"type":"if","locations":[{"start":{"line":104,"column":2},"end":{"line":104,"column":60}},{"start":{"line":104,"column":2},"end":{"line":104,"column":60}}],"line":104}},"s":{"0":1,"1":1,"2":1,"3":1,"4":5,"5":1,"6":4,"7":1,"8":3,"9":1,"10":1,"11":0,"12":1,"13":1,"14":1,"15":0,"16":1,"17":1,"18":3,"19":3,"20":1,"21":2,"22":2,"23":5,"24":5,"25":5,"26":5,"27":0,"28":0,"29":0,"30":0,"31":0,"32":5,"33":4,"34":1,"35":3,"36":0,"37":3,"38":1,"39":3,"40":3,"41":1,"42":1,"43":0,"44":1,"45":1,"46":1},"f":{"0":5,"1":1,"2":1,"3":3,"4":5,"5":3,"6":1},"b":{"0":[1,4],"1":[5,4],"2":[1,3],"3":[0,1],"4":[1,1],"5":[0,1],"6":[1,2],"7":[5,5],"8":[0,5],"9":[1,3],"10":[0,3],"11":[0,1]},"_coverageSchema":"43e27e138ebf9cfc5966b082cf9a028302ed4184","hash":"6f0cb1b2a674d7b8af981a05ed376099d1a9438d"} -,"C:\\project\\open-source\\allOrigins\\app\\process-request.js": {"path":"C:\\project\\open-source\\allOrigins\\app\\process-request.js","statementMap":{"0":{"start":{"line":1,"column":16},"end":{"line":1,"column":37}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":31}},"2":{"start":{"line":6,"column":4},"end":{"line":8,"column":5}},"3":{"start":{"line":7,"column":8},"end":{"line":7,"column":24}},"4":{"start":{"line":10,"column":22},"end":{"line":10,"column":32}},"5":{"start":{"line":11,"column":19},"end":{"line":11,"column":35}},"6":{"start":{"line":12,"column":17},"end":{"line":12,"column":38}},"7":{"start":{"line":13,"column":4},"end":{"line":13,"column":55}},"8":{"start":{"line":17,"column":19},"end":{"line":21,"column":5}},"9":{"start":{"line":22,"column":4},"end":{"line":22,"column":67}},"10":{"start":{"line":23,"column":4},"end":{"line":23,"column":59}},"11":{"start":{"line":24,"column":4},"end":{"line":24,"column":17}},"12":{"start":{"line":28,"column":4},"end":{"line":28,"column":41}},"13":{"start":{"line":30,"column":4},"end":{"line":32,"column":5}},"14":{"start":{"line":31,"column":8},"end":{"line":31,"column":21}},"15":{"start":{"line":33,"column":4},"end":{"line":33,"column":16}},"16":{"start":{"line":37,"column":4},"end":{"line":41,"column":5}},"17":{"start":{"line":38,"column":8},"end":{"line":38,"column":53}},"18":{"start":{"line":39,"column":8},"end":{"line":39,"column":49}},"19":{"start":{"line":40,"column":8},"end":{"line":40,"column":37}},"20":{"start":{"line":43,"column":4},"end":{"line":45,"column":54}},"21":{"start":{"line":44,"column":8},"end":{"line":44,"column":78}},"22":{"start":{"line":45,"column":11},"end":{"line":45,"column":54}},"23":{"start":{"line":47,"column":4},"end":{"line":48,"column":52}},"24":{"start":{"line":47,"column":21},"end":{"line":47,"column":71}},"25":{"start":{"line":48,"column":9},"end":{"line":48,"column":52}},"26":{"start":{"line":50,"column":4},"end":{"line":50,"column":47}},"27":{"start":{"line":50,"column":25},"end":{"line":50,"column":47}},"28":{"start":{"line":51,"column":4},"end":{"line":51,"column":41}}},"fnMap":{"0":{"name":"processRequest","decl":{"start":{"line":5,"column":15},"end":{"line":5,"column":29}},"loc":{"start":{"line":5,"column":41},"end":{"line":14,"column":1}},"line":5},"1":{"name":"parseParams","decl":{"start":{"line":16,"column":9},"end":{"line":16,"column":20}},"loc":{"start":{"line":16,"column":27},"end":{"line":25,"column":1}},"line":16},"2":{"name":"parseRequestMethod","decl":{"start":{"line":27,"column":9},"end":{"line":27,"column":27}},"loc":{"start":{"line":27,"column":37},"end":{"line":34,"column":1}},"line":27},"3":{"name":"createResponse","decl":{"start":{"line":36,"column":9},"end":{"line":36,"column":23}},"loc":{"start":{"line":36,"column":55},"end":{"line":52,"column":1}},"line":36}},"branchMap":{"0":{"loc":{"start":{"line":6,"column":4},"end":{"line":8,"column":5}},"type":"if","locations":[{"start":{"line":6,"column":4},"end":{"line":8,"column":5}},{"start":{"line":6,"column":4},"end":{"line":8,"column":5}}],"line":6},"1":{"loc":{"start":{"line":23,"column":21},"end":{"line":23,"column":44}},"type":"binary-expr","locations":[{"start":{"line":23,"column":21},"end":{"line":23,"column":34}},{"start":{"line":23,"column":38},"end":{"line":23,"column":44}}],"line":23},"2":{"loc":{"start":{"line":28,"column":14},"end":{"line":28,"column":26}},"type":"binary-expr","locations":[{"start":{"line":28,"column":14},"end":{"line":28,"column":20}},{"start":{"line":28,"column":24},"end":{"line":28,"column":26}}],"line":28},"3":{"loc":{"start":{"line":30,"column":4},"end":{"line":32,"column":5}},"type":"if","locations":[{"start":{"line":30,"column":4},"end":{"line":32,"column":5}},{"start":{"line":30,"column":4},"end":{"line":32,"column":5}}],"line":30},"4":{"loc":{"start":{"line":37,"column":4},"end":{"line":41,"column":5}},"type":"if","locations":[{"start":{"line":37,"column":4},"end":{"line":41,"column":5}},{"start":{"line":37,"column":4},"end":{"line":41,"column":5}}],"line":37},"5":{"loc":{"start":{"line":37,"column":8},"end":{"line":37,"column":61}},"type":"binary-expr","locations":[{"start":{"line":37,"column":8},"end":{"line":37,"column":31}},{"start":{"line":37,"column":35},"end":{"line":37,"column":61}}],"line":37},"6":{"loc":{"start":{"line":37,"column":37},"end":{"line":37,"column":54}},"type":"binary-expr","locations":[{"start":{"line":37,"column":37},"end":{"line":37,"column":48}},{"start":{"line":37,"column":52},"end":{"line":37,"column":54}}],"line":37},"7":{"loc":{"start":{"line":43,"column":4},"end":{"line":45,"column":54}},"type":"if","locations":[{"start":{"line":43,"column":4},"end":{"line":45,"column":54}},{"start":{"line":43,"column":4},"end":{"line":45,"column":54}}],"line":43},"8":{"loc":{"start":{"line":47,"column":4},"end":{"line":48,"column":52}},"type":"if","locations":[{"start":{"line":47,"column":4},"end":{"line":48,"column":52}},{"start":{"line":47,"column":4},"end":{"line":48,"column":52}}],"line":47},"9":{"loc":{"start":{"line":50,"column":4},"end":{"line":50,"column":47}},"type":"if","locations":[{"start":{"line":50,"column":4},"end":{"line":50,"column":47}},{"start":{"line":50,"column":4},"end":{"line":50,"column":47}}],"line":50}},"s":{"0":1,"1":1,"2":6,"3":1,"4":5,"5":5,"6":5,"7":5,"8":5,"9":5,"10":5,"11":5,"12":5,"13":5,"14":1,"15":4,"16":5,"17":1,"18":1,"19":1,"20":4,"21":0,"22":4,"23":4,"24":3,"25":1,"26":4,"27":0,"28":4},"f":{"0":6,"1":5,"2":5,"3":5},"b":{"0":[1,5],"1":[5,0],"2":[5,0],"3":[1,4],"4":[1,4],"5":[5,1],"6":[1,1],"7":[0,4],"8":[3,1],"9":[0,4]},"_coverageSchema":"43e27e138ebf9cfc5966b082cf9a028302ed4184","hash":"8ff36d1593cb4e58b54e83d8373f9d03170e82b4"} -} diff --git a/coverage/lcov-report/allOrigins/app.js.html b/coverage/lcov-report/allOrigins/app.js.html deleted file mode 100644 index 9711408..0000000 --- a/coverage/lcov-report/allOrigins/app.js.html +++ /dev/null @@ -1,181 +0,0 @@ - - - - - - Code coverage report for allOrigins/app.js - - - - - - - - -
-
-

All files / allOrigins app.js

-
- -
- 100% - Statements - 16/16 -
- - -
- 100% - Branches - 2/2 -
- - -
- 100% - Functions - 1/1 -
- - -
- 100% - Lines - 16/16 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

-
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35  -  -  -  -  -  -1x -  -1x -  -  -1x -  -1x -  -1x -  -1x -1x -1x -  -1x -  -  -  -6x -6x -6x -6x -6x -6x -  -  -1x - 
/*!
- * AllOrigins
- * written by Gabriel Nunes <gabriel@multiverso.me>
- * http://github.com/gnuns
- */
- 
-const express = require('express')
- 
-const {version} = require('./package.json')
-// yep, global. it's ok
-// https://softwareengineering.stackexchange.com/a/47926/289420
-global.AO_VERSION = version
- 
-const processRequest  = require('./app/process-request')
- 
-const app = express()
- 
-app.set('case sensitive routing', false)
-app.disable('x-powered-by')
-app.use(enableCORS)
- 
-app.all('/:format', processRequest)
- 
- 
-function enableCORS (req, res, next) {
-  res.header('Access-Control-Allow-Origin', req.headers.origin || '*')
-  res.header('Access-Control-Allow-Credentials', true)
-  res.header('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, Content-Encoding, Accept')
-  res.header('Access-Control-Allow-Methods', 'OPTIONS, GET, POST, PATCH, PUT, DELETE')
-  res.header('Via', `allOrigins v${version}`)
-  next()
-}
- 
-module.exports = app
- 
- -
-
- - - - - - - - - \ No newline at end of file diff --git a/coverage/lcov-report/allOrigins/app/get-page.js.html b/coverage/lcov-report/allOrigins/app/get-page.js.html deleted file mode 100644 index e3b2ada..0000000 --- a/coverage/lcov-report/allOrigins/app/get-page.js.html +++ /dev/null @@ -1,433 +0,0 @@ - - - - - - Code coverage report for allOrigins/app/get-page.js - - - - - - - - -
-
-

All files / allOrigins/app get-page.js

-
- -
- 80.85% - Statements - 38/47 -
- - -
- 79.17% - Branches - 19/24 -
- - -
- 100% - Functions - 7/7 -
- - -
- 85.71% - Lines - 36/42 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

-
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101 -102 -103 -104 -105 -106 -107 -108 -109 -110 -111 -112 -113 -114 -115 -116 -117 -118 -1191x -1x -  -1x -  -1x -  -  -5x -1x -4x -1x -  -  -3x -  -  -  -1x -1x -  -1x -  -  -  -  -  -  -  -  -1x -1x -  -1x -1x -  -  -  -  -  -  -  -3x -3x -  -2x -2x -  -  -  -  -  -  -  -  -  -  -  -5x -  -5x -  -  -  -  -  -  -5x -5x -  -  -  -  -  -  -  -  -  -5x -  -4x -3x -  -  -  -  -  -  -  -  -3x -  -1x -  -  -  -  -3x -3x -  -  -  -1x -1x -  -1x -1x -  -1x -  -  -  -  -  -  -  -  -  - 
const got = require('got')
-const {redisGet, redisSet} = require('../redis')
- 
-const DEFAULT_USER_AGENT = `Mozilla/5.0 (compatible; allOrigins/${global.AO_VERSION}; +http://allorigins.ml/)`
- 
-module.exports = getPage
- 
-function getPage ({url, format, requestMethod}) {
-  if (format === 'info' || requestMethod === 'HEAD') {
-    return getPageInfo(url)
-  } else if (format === 'raw') {
-    return getRawPage(url, requestMethod)
-  }
- 
-  return getPageContents(url, requestMethod)
-}
- 
-async function getPageInfo (url) {
-  const {response, error} = await request(url, 'HEAD')
-  Iif (error) return processError(error)
- 
-  return {
-    url: url,
-    content_type: response.headers['content-type'],
-    content_length: +response.headers['content-length'] || -1,
-    http_code: response.statusCode,
-  }
-}
- 
-async function getRawPage (url, requestMethod) {
-  const {content, response, error} = await request(url, requestMethod)
-  Iif (error) return processError(error)
- 
-  const contentLength = Buffer.byteLength(content)
-  return {
-    content,
-    contentType: response.headers['content-type'],
-    contentLength,
-  }
-}
- 
-async function getPageContents (url, requestMethod) {
-  const {content, response, error} = await request(url, requestMethod)
-  if (error) return processError(error)
- 
-  const contentLength = Buffer.byteLength(content)
-  return {
-    contents: content.toString(),
-    status: {
-      url: url,
-      content_type: response.headers['content-type'],
-      content_length: contentLength,
-      http_code: response.statusCode,
-    },
-  }
-}
- 
-async function request (url, requestMethod) {
-  try {
-    let response
-    const options = {
-      method: requestMethod,
-      encoding: null,
-      headers: {
-        'user-agent': process.env.USER_AGENT || DEFAULT_USER_AGENT,
-      },
-    }
-    const dat = await redisGet(url + requestMethod)
-    Iif (dat) {
-      const {body, etag: e} = JSON.parse(dat)
- 
-      options.headers['if-none-match'] = e
- 
-      response = await got(url, options)
-      response.body = Buffer.from(body)
-      return processContent(response)
-    }
- 
-    response = await got(url, options)
- 
-    if (options.method === 'HEAD') return {response}
-    Iif (response.headers.etag) {
-      redisSet(
-        url + requestMethod,
-        JSON.stringify({
-          etag: response.headers.etag,
-          body: response.body.toString(),
-        })
-      )
-    }
-    return processContent(response)
-  } catch (error) {
-    return {error}
-  }
-}
- 
-async function processContent (response) {
-  const res = {response: response, content: response.body}
-  return res
-}
- 
-async function processError (e) {
-  const {response} = e
-  Iif (!response) return {contents: null, status: {error: e}}
- 
-  const {url, statusCode: http_code, headers, body} = response
-  const contentLength = Buffer.byteLength(body)
- 
-  return {
-    contents: body.toString(),
-    status: {
-      url,
-      http_code,
-      content_type: headers['content-type'],
-      content_length: contentLength,
-    },
-  }
-}
- 
- -
-
- - - - - - - - - \ No newline at end of file diff --git a/coverage/lcov-report/allOrigins/app/index.html b/coverage/lcov-report/allOrigins/app/index.html deleted file mode 100644 index 6e1b589..0000000 --- a/coverage/lcov-report/allOrigins/app/index.html +++ /dev/null @@ -1,125 +0,0 @@ - - - - - - Code coverage report for allOrigins/app - - - - - - - - -
-
-

All files allOrigins/app

-
- -
- 85.53% - Statements - 65/76 -
- - -
- 79.55% - Branches - 35/44 -
- - -
- 100% - Functions - 11/11 -
- - -
- 89.86% - Lines - 62/69 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FileStatementsBranchesFunctionsLines
get-page.js -
-
80.85%38/4779.17%19/24100%7/785.71%36/42
process-request.js -
-
93.1%27/2980%16/20100%4/496.3%26/27
-
-
-
- - - - - - - - - \ No newline at end of file diff --git a/coverage/lcov-report/allOrigins/app/process-request.js.html b/coverage/lcov-report/allOrigins/app/process-request.js.html deleted file mode 100644 index d0cd65d..0000000 --- a/coverage/lcov-report/allOrigins/app/process-request.js.html +++ /dev/null @@ -1,235 +0,0 @@ - - - - - - Code coverage report for allOrigins/app/process-request.js - - - - - - - - -
-
-

All files / allOrigins/app process-request.js

-
- -
- 93.1% - Statements - 27/29 -
- - -
- 80% - Branches - 16/20 -
- - -
- 100% - Functions - 4/4 -
- - -
- 96.3% - Lines - 26/27 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

-
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -531x -  -1x -  -  -6x -1x -  -  -5x -5x -5x -5x -  -  -  -5x -  -  -  -  -5x -5x -5x -  -  -  -5x -  -5x -1x -  -4x -  -  -  -5x -1x -1x -1x -  -  -4x -  -4x -  -4x -1x -  -4x -4x -  - 
const getPage = require('./get-page')
- 
-module.exports = processRequest
- 
-async function processRequest (req, res) {
-    if (req.method === 'OPTIONS') {
-        return res.end()
-    }
- 
-    const startTime = new Date()
-    const params = parseParams(req)
-    const page = await getPage(params)
-    return createResponse(page, params, res, startTime)
-}
- 
-function parseParams (req) {
-    const params = {
-        requestMethod: req.method,
-        ...req.query,
-        ...req.params
-    }
-    params.requestMethod = parseRequestMethod(params.requestMethod)
-    params.format = (params.format || 'json').toLowerCase()
-    return params
-}
- 
-function parseRequestMethod (method) {
-    method = (method || '').toUpperCase()
- 
-    if (['HEAD', 'POST', 'PUT', 'DELETE', 'PATCH'].includes(method)) {
-        return method
-    }
-    return 'GET'
-}
- 
-function createResponse (page, params, res, startTime) {
-    if (params.format === 'raw' && !(page.status || {}).error) {
-        res.set('Content-Length', page.contentLength)
-        res.set('Content-Type', page.contentType)
-        return res.send(page.content)
-    }
- 
-    Iif (params.charset) {
-        res.set('Content-Type', `application/json; charset=${params.charset}`)
-    } else res.set('Content-Type', 'application/json')
- 
-    if (page.status) page.status.response_time = new Date() - startTime
-    else page.response_time = new Date() - startTime
- 
-    Iif (params.callback) return res.jsonp(page)
-    return res.send(JSON.stringify(page))
-}
- 
- -
-
- - - - - - - - - \ No newline at end of file diff --git a/coverage/lcov-report/allOrigins/index.html b/coverage/lcov-report/allOrigins/index.html deleted file mode 100644 index 595287e..0000000 --- a/coverage/lcov-report/allOrigins/index.html +++ /dev/null @@ -1,125 +0,0 @@ - - - - - - Code coverage report for allOrigins - - - - - - - - -
-
-

All files allOrigins

-
- -
- 96.3% - Statements - 26/27 -
- - -
- 100% - Branches - 4/4 -
- - -
- 60% - Functions - 3/5 -
- - -
- 96.3% - Lines - 26/27 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FileStatementsBranchesFunctionsLines
app.js -
-
100%16/16100%2/2100%1/1100%16/16
redis.js -
-
90.91%10/11100%2/250%2/490.91%10/11
-
-
-
- - - - - - - - - \ No newline at end of file diff --git a/coverage/lcov-report/allOrigins/redis.js.html b/coverage/lcov-report/allOrigins/redis.js.html deleted file mode 100644 index 210a29c..0000000 --- a/coverage/lcov-report/allOrigins/redis.js.html +++ /dev/null @@ -1,127 +0,0 @@ - - - - - - Code coverage report for allOrigins/redis.js - - - - - - - - -
-
-

All files / allOrigins redis.js

-
- -
- 90.91% - Statements - 10/11 -
- - -
- 100% - Branches - 2/2 -
- - -
- 50% - Functions - 2/4 -
- - -
- 90.91% - Lines - 10/11 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

-
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -171x -1x -1x -1x -1x -  -1x -5x -  -  -1x -  -  -1x -1x -  - 
const redis = require("redis");
-const redisUrl = process.env.REDIS_URL || "redis://127.0.0.1:6379";
-const client = redis.createClient(redisUrl);
-const util = require("util");
-client.get = util.promisify(client.get);
- 
-exports.redisGet = async (key) => {
-  return client.get(key);
-};
- 
-exports.redisSet = (key, val) => {
-  client.set(key, val, "EX", 60 * 60 * 24);
-};
-exports.closeInstance = () => {
-  client.quit(() => {});
-};
- 
- -
-
- - - - - - - - - \ No newline at end of file diff --git a/coverage/lcov-report/base.css b/coverage/lcov-report/base.css deleted file mode 100644 index f418035..0000000 --- a/coverage/lcov-report/base.css +++ /dev/null @@ -1,224 +0,0 @@ -body, html { - margin:0; padding: 0; - height: 100%; -} -body { - font-family: Helvetica Neue, Helvetica, Arial; - font-size: 14px; - color:#333; -} -.small { font-size: 12px; } -*, *:after, *:before { - -webkit-box-sizing:border-box; - -moz-box-sizing:border-box; - box-sizing:border-box; - } -h1 { font-size: 20px; margin: 0;} -h2 { font-size: 14px; } -pre { - font: 12px/1.4 Consolas, "Liberation Mono", Menlo, Courier, monospace; - margin: 0; - padding: 0; - -moz-tab-size: 2; - -o-tab-size: 2; - tab-size: 2; -} -a { color:#0074D9; text-decoration:none; } -a:hover { text-decoration:underline; } -.strong { font-weight: bold; } -.space-top1 { padding: 10px 0 0 0; } -.pad2y { padding: 20px 0; } -.pad1y { padding: 10px 0; } -.pad2x { padding: 0 20px; } -.pad2 { padding: 20px; } -.pad1 { padding: 10px; } -.space-left2 { padding-left:55px; } -.space-right2 { padding-right:20px; } -.center { text-align:center; } -.clearfix { display:block; } -.clearfix:after { - content:''; - display:block; - height:0; - clear:both; - visibility:hidden; - } -.fl { float: left; } -@media only screen and (max-width:640px) { - .col3 { width:100%; max-width:100%; } - .hide-mobile { display:none!important; } -} - -.quiet { - color: #7f7f7f; - color: rgba(0,0,0,0.5); -} -.quiet a { opacity: 0.7; } - -.fraction { - font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; - font-size: 10px; - color: #555; - background: #E8E8E8; - padding: 4px 5px; - border-radius: 3px; - vertical-align: middle; -} - -div.path a:link, div.path a:visited { color: #333; } -table.coverage { - border-collapse: collapse; - margin: 10px 0 0 0; - padding: 0; -} - -table.coverage td { - margin: 0; - padding: 0; - vertical-align: top; -} -table.coverage td.line-count { - text-align: right; - padding: 0 5px 0 20px; -} -table.coverage td.line-coverage { - text-align: right; - padding-right: 10px; - min-width:20px; -} - -table.coverage td span.cline-any { - display: inline-block; - padding: 0 5px; - width: 100%; -} -.missing-if-branch { - display: inline-block; - margin-right: 5px; - border-radius: 3px; - position: relative; - padding: 0 4px; - background: #333; - color: yellow; -} - -.skip-if-branch { - display: none; - margin-right: 10px; - position: relative; - padding: 0 4px; - background: #ccc; - color: white; -} -.missing-if-branch .typ, .skip-if-branch .typ { - color: inherit !important; -} -.coverage-summary { - border-collapse: collapse; - width: 100%; -} -.coverage-summary tr { border-bottom: 1px solid #bbb; } -.keyline-all { border: 1px solid #ddd; } -.coverage-summary td, .coverage-summary th { padding: 10px; } -.coverage-summary tbody { border: 1px solid #bbb; } -.coverage-summary td { border-right: 1px solid #bbb; } -.coverage-summary td:last-child { border-right: none; } -.coverage-summary th { - text-align: left; - font-weight: normal; - white-space: nowrap; -} -.coverage-summary th.file { border-right: none !important; } -.coverage-summary th.pct { } -.coverage-summary th.pic, -.coverage-summary th.abs, -.coverage-summary td.pct, -.coverage-summary td.abs { text-align: right; } -.coverage-summary td.file { white-space: nowrap; } -.coverage-summary td.pic { min-width: 120px !important; } -.coverage-summary tfoot td { } - -.coverage-summary .sorter { - height: 10px; - width: 7px; - display: inline-block; - margin-left: 0.5em; - background: url(sort-arrow-sprite.png) no-repeat scroll 0 0 transparent; -} -.coverage-summary .sorted .sorter { - background-position: 0 -20px; -} -.coverage-summary .sorted-desc .sorter { - background-position: 0 -10px; -} -.status-line { height: 10px; } -/* yellow */ -.cbranch-no { background: yellow !important; color: #111; } -/* dark red */ -.red.solid, .status-line.low, .low .cover-fill { background:#C21F39 } -.low .chart { border:1px solid #C21F39 } -.highlighted, -.highlighted .cstat-no, .highlighted .fstat-no, .highlighted .cbranch-no{ - background: #C21F39 !important; -} -/* medium red */ -.cstat-no, .fstat-no, .cbranch-no, .cbranch-no { background:#F6C6CE } -/* light red */ -.low, .cline-no { background:#FCE1E5 } -/* light green */ -.high, .cline-yes { background:rgb(230,245,208) } -/* medium green */ -.cstat-yes { background:rgb(161,215,106) } -/* dark green */ -.status-line.high, .high .cover-fill { background:rgb(77,146,33) } -.high .chart { border:1px solid rgb(77,146,33) } -/* dark yellow (gold) */ -.status-line.medium, .medium .cover-fill { background: #f9cd0b; } -.medium .chart { border:1px solid #f9cd0b; } -/* light yellow */ -.medium { background: #fff4c2; } - -.cstat-skip { background: #ddd; color: #111; } -.fstat-skip { background: #ddd; color: #111 !important; } -.cbranch-skip { background: #ddd !important; color: #111; } - -span.cline-neutral { background: #eaeaea; } - -.coverage-summary td.empty { - opacity: .5; - padding-top: 4px; - padding-bottom: 4px; - line-height: 1; - color: #888; -} - -.cover-fill, .cover-empty { - display:inline-block; - height: 12px; -} -.chart { - line-height: 0; -} -.cover-empty { - background: white; -} -.cover-full { - border-right: none !important; -} -pre.prettyprint { - border: none !important; - padding: 0 !important; - margin: 0 !important; -} -.com { color: #999 !important; } -.ignore-none { color: #999; font-weight: normal; } - -.wrapper { - min-height: 100%; - height: auto !important; - height: 100%; - margin: 0 auto -48px; -} -.footer, .push { - height: 48px; -} diff --git a/coverage/lcov-report/block-navigation.js b/coverage/lcov-report/block-navigation.js deleted file mode 100644 index c7ff5a5..0000000 --- a/coverage/lcov-report/block-navigation.js +++ /dev/null @@ -1,79 +0,0 @@ -/* eslint-disable */ -var jumpToCode = (function init() { - // Classes of code we would like to highlight in the file view - var missingCoverageClasses = ['.cbranch-no', '.cstat-no', '.fstat-no']; - - // Elements to highlight in the file listing view - var fileListingElements = ['td.pct.low']; - - // We don't want to select elements that are direct descendants of another match - var notSelector = ':not(' + missingCoverageClasses.join('):not(') + ') > '; // becomes `:not(a):not(b) > ` - - // Selecter that finds elements on the page to which we can jump - var selector = - fileListingElements.join(', ') + - ', ' + - notSelector + - missingCoverageClasses.join(', ' + notSelector); // becomes `:not(a):not(b) > a, :not(a):not(b) > b` - - // The NodeList of matching elements - var missingCoverageElements = document.querySelectorAll(selector); - - var currentIndex; - - function toggleClass(index) { - missingCoverageElements - .item(currentIndex) - .classList.remove('highlighted'); - missingCoverageElements.item(index).classList.add('highlighted'); - } - - function makeCurrent(index) { - toggleClass(index); - currentIndex = index; - missingCoverageElements.item(index).scrollIntoView({ - behavior: 'smooth', - block: 'center', - inline: 'center' - }); - } - - function goToPrevious() { - var nextIndex = 0; - if (typeof currentIndex !== 'number' || currentIndex === 0) { - nextIndex = missingCoverageElements.length - 1; - } else if (missingCoverageElements.length > 1) { - nextIndex = currentIndex - 1; - } - - makeCurrent(nextIndex); - } - - function goToNext() { - var nextIndex = 0; - - if ( - typeof currentIndex === 'number' && - currentIndex < missingCoverageElements.length - 1 - ) { - nextIndex = currentIndex + 1; - } - - makeCurrent(nextIndex); - } - - return function jump(event) { - switch (event.which) { - case 78: // n - case 74: // j - goToNext(); - break; - case 66: // b - case 75: // k - case 80: // p - goToPrevious(); - break; - } - }; -})(); -window.addEventListener('keydown', jumpToCode); diff --git a/coverage/lcov-report/index.html b/coverage/lcov-report/index.html deleted file mode 100644 index e3476e8..0000000 --- a/coverage/lcov-report/index.html +++ /dev/null @@ -1,125 +0,0 @@ - - - - - - Code coverage report for All files - - - - - - - - -
-
-

All files

-
- -
- 88.35% - Statements - 91/103 -
- - -
- 81.25% - Branches - 39/48 -
- - -
- 87.5% - Functions - 14/16 -
- - -
- 91.67% - Lines - 88/96 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FileStatementsBranchesFunctionsLines
allOrigins -
-
96.3%26/27100%4/460%3/596.3%26/27
allOrigins/app -
-
85.53%65/7679.55%35/44100%11/1189.86%62/69
-
-
-
- - - - - - - - - \ No newline at end of file diff --git a/coverage/lcov-report/prettify.css b/coverage/lcov-report/prettify.css deleted file mode 100644 index b317a7c..0000000 --- a/coverage/lcov-report/prettify.css +++ /dev/null @@ -1 +0,0 @@ -.pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee} diff --git a/coverage/lcov-report/prettify.js b/coverage/lcov-report/prettify.js deleted file mode 100644 index b322523..0000000 --- a/coverage/lcov-report/prettify.js +++ /dev/null @@ -1,2 +0,0 @@ -/* eslint-disable */ -window.PR_SHOULD_USE_CONTINUATION=true;(function(){var h=["break,continue,do,else,for,if,return,while"];var u=[h,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"];var p=[u,"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"];var l=[p,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"];var x=[p,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"];var R=[x,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"];var r="all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes";var w=[p,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"];var s="caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END";var I=[h,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"];var f=[h,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"];var H=[h,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"];var A=[l,R,w,s+I,f,H];var e=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/;var C="str";var z="kwd";var j="com";var O="typ";var G="lit";var L="pun";var F="pln";var m="tag";var E="dec";var J="src";var P="atn";var n="atv";var N="nocode";var M="(?:^^\\.?|[+-]|\\!|\\!=|\\!==|\\#|\\%|\\%=|&|&&|&&=|&=|\\(|\\*|\\*=|\\+=|\\,|\\-=|\\->|\\/|\\/=|:|::|\\;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|\\?|\\@|\\[|\\^|\\^=|\\^\\^|\\^\\^=|\\{|\\||\\|=|\\|\\||\\|\\|=|\\~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*";function k(Z){var ad=0;var S=false;var ac=false;for(var V=0,U=Z.length;V122)){if(!(al<65||ag>90)){af.push([Math.max(65,ag)|32,Math.min(al,90)|32])}if(!(al<97||ag>122)){af.push([Math.max(97,ag)&~32,Math.min(al,122)&~32])}}}}af.sort(function(av,au){return(av[0]-au[0])||(au[1]-av[1])});var ai=[];var ap=[NaN,NaN];for(var ar=0;arat[0]){if(at[1]+1>at[0]){an.push("-")}an.push(T(at[1]))}}an.push("]");return an.join("")}function W(al){var aj=al.source.match(new RegExp("(?:\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]|\\\\u[A-Fa-f0-9]{4}|\\\\x[A-Fa-f0-9]{2}|\\\\[0-9]+|\\\\[^ux0-9]|\\(\\?[:!=]|[\\(\\)\\^]|[^\\x5B\\x5C\\(\\)\\^]+)","g"));var ah=aj.length;var an=[];for(var ak=0,am=0;ak=2&&ai==="["){aj[ak]=X(ag)}else{if(ai!=="\\"){aj[ak]=ag.replace(/[a-zA-Z]/g,function(ao){var ap=ao.charCodeAt(0);return"["+String.fromCharCode(ap&~32,ap|32)+"]"})}}}}return aj.join("")}var aa=[];for(var V=0,U=Z.length;V=0;){S[ac.charAt(ae)]=Y}}var af=Y[1];var aa=""+af;if(!ag.hasOwnProperty(aa)){ah.push(af);ag[aa]=null}}ah.push(/[\0-\uffff]/);V=k(ah)})();var X=T.length;var W=function(ah){var Z=ah.sourceCode,Y=ah.basePos;var ad=[Y,F];var af=0;var an=Z.match(V)||[];var aj={};for(var ae=0,aq=an.length;ae=5&&"lang-"===ap.substring(0,5);if(am&&!(ai&&typeof ai[1]==="string")){am=false;ap=J}if(!am){aj[ag]=ap}}var ab=af;af+=ag.length;if(!am){ad.push(Y+ab,ap)}else{var al=ai[1];var ak=ag.indexOf(al);var ac=ak+al.length;if(ai[2]){ac=ag.length-ai[2].length;ak=ac-al.length}var ar=ap.substring(5);B(Y+ab,ag.substring(0,ak),W,ad);B(Y+ab+ak,al,q(ar,al),ad);B(Y+ab+ac,ag.substring(ac),W,ad)}}ah.decorations=ad};return W}function i(T){var W=[],S=[];if(T.tripleQuotedStrings){W.push([C,/^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,null,"'\""])}else{if(T.multiLineStrings){W.push([C,/^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,null,"'\"`"])}else{W.push([C,/^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,null,"\"'"])}}if(T.verbatimStrings){S.push([C,/^@\"(?:[^\"]|\"\")*(?:\"|$)/,null])}var Y=T.hashComments;if(Y){if(T.cStyleComments){if(Y>1){W.push([j,/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,null,"#"])}else{W.push([j,/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\r\n]*)/,null,"#"])}S.push([C,/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,null])}else{W.push([j,/^#[^\r\n]*/,null,"#"])}}if(T.cStyleComments){S.push([j,/^\/\/[^\r\n]*/,null]);S.push([j,/^\/\*[\s\S]*?(?:\*\/|$)/,null])}if(T.regexLiterals){var X=("/(?=[^/*])(?:[^/\\x5B\\x5C]|\\x5C[\\s\\S]|\\x5B(?:[^\\x5C\\x5D]|\\x5C[\\s\\S])*(?:\\x5D|$))+/");S.push(["lang-regex",new RegExp("^"+M+"("+X+")")])}var V=T.types;if(V){S.push([O,V])}var U=(""+T.keywords).replace(/^ | $/g,"");if(U.length){S.push([z,new RegExp("^(?:"+U.replace(/[\s,]+/g,"|")+")\\b"),null])}W.push([F,/^\s+/,null," \r\n\t\xA0"]);S.push([G,/^@[a-z_$][a-z_$@0-9]*/i,null],[O,/^(?:[@_]?[A-Z]+[a-z][A-Za-z_$@0-9]*|\w+_t\b)/,null],[F,/^[a-z_$][a-z_$@0-9]*/i,null],[G,new RegExp("^(?:0x[a-f0-9]+|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)(?:e[+\\-]?\\d+)?)[a-z]*","i"),null,"0123456789"],[F,/^\\[\s\S]?/,null],[L,/^.[^\s\w\.$@\'\"\`\/\#\\]*/,null]);return g(W,S)}var K=i({keywords:A,hashComments:true,cStyleComments:true,multiLineStrings:true,regexLiterals:true});function Q(V,ag){var U=/(?:^|\s)nocode(?:\s|$)/;var ab=/\r\n?|\n/;var ac=V.ownerDocument;var S;if(V.currentStyle){S=V.currentStyle.whiteSpace}else{if(window.getComputedStyle){S=ac.defaultView.getComputedStyle(V,null).getPropertyValue("white-space")}}var Z=S&&"pre"===S.substring(0,3);var af=ac.createElement("LI");while(V.firstChild){af.appendChild(V.firstChild)}var W=[af];function ae(al){switch(al.nodeType){case 1:if(U.test(al.className)){break}if("BR"===al.nodeName){ad(al);if(al.parentNode){al.parentNode.removeChild(al)}}else{for(var an=al.firstChild;an;an=an.nextSibling){ae(an)}}break;case 3:case 4:if(Z){var am=al.nodeValue;var aj=am.match(ab);if(aj){var ai=am.substring(0,aj.index);al.nodeValue=ai;var ah=am.substring(aj.index+aj[0].length);if(ah){var ak=al.parentNode;ak.insertBefore(ac.createTextNode(ah),al.nextSibling)}ad(al);if(!ai){al.parentNode.removeChild(al)}}}break}}function ad(ak){while(!ak.nextSibling){ak=ak.parentNode;if(!ak){return}}function ai(al,ar){var aq=ar?al.cloneNode(false):al;var ao=al.parentNode;if(ao){var ap=ai(ao,1);var an=al.nextSibling;ap.appendChild(aq);for(var am=an;am;am=an){an=am.nextSibling;ap.appendChild(am)}}return aq}var ah=ai(ak.nextSibling,0);for(var aj;(aj=ah.parentNode)&&aj.nodeType===1;){ah=aj}W.push(ah)}for(var Y=0;Y=S){ah+=2}if(V>=ap){Z+=2}}}var t={};function c(U,V){for(var S=V.length;--S>=0;){var T=V[S];if(!t.hasOwnProperty(T)){t[T]=U}else{if(window.console){console.warn("cannot override language handler %s",T)}}}}function q(T,S){if(!(T&&t.hasOwnProperty(T))){T=/^\s*]*(?:>|$)/],[j,/^<\!--[\s\S]*?(?:-\->|$)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],[L,/^(?:<[%?]|[%?]>)/],["lang-",/^]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-js",/^]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),["default-markup","htm","html","mxml","xhtml","xml","xsl"]);c(g([[F,/^[\s]+/,null," \t\r\n"],[n,/^(?:\"[^\"]*\"?|\'[^\']*\'?)/,null,"\"'"]],[[m,/^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],[P,/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/],[L,/^[=<>\/]+/],["lang-js",/^on\w+\s*=\s*\"([^\"]+)\"/i],["lang-js",/^on\w+\s*=\s*\'([^\']+)\'/i],["lang-js",/^on\w+\s*=\s*([^\"\'>\s]+)/i],["lang-css",/^style\s*=\s*\"([^\"]+)\"/i],["lang-css",/^style\s*=\s*\'([^\']+)\'/i],["lang-css",/^style\s*=\s*([^\"\'>\s]+)/i]]),["in.tag"]);c(g([],[[n,/^[\s\S]+/]]),["uq.val"]);c(i({keywords:l,hashComments:true,cStyleComments:true,types:e}),["c","cc","cpp","cxx","cyc","m"]);c(i({keywords:"null,true,false"}),["json"]);c(i({keywords:R,hashComments:true,cStyleComments:true,verbatimStrings:true,types:e}),["cs"]);c(i({keywords:x,cStyleComments:true}),["java"]);c(i({keywords:H,hashComments:true,multiLineStrings:true}),["bsh","csh","sh"]);c(i({keywords:I,hashComments:true,multiLineStrings:true,tripleQuotedStrings:true}),["cv","py"]);c(i({keywords:s,hashComments:true,multiLineStrings:true,regexLiterals:true}),["perl","pl","pm"]);c(i({keywords:f,hashComments:true,multiLineStrings:true,regexLiterals:true}),["rb"]);c(i({keywords:w,cStyleComments:true,regexLiterals:true}),["js"]);c(i({keywords:r,hashComments:3,cStyleComments:true,multilineStrings:true,tripleQuotedStrings:true,regexLiterals:true}),["coffee"]);c(g([],[[C,/^[\s\S]+/]]),["regex"]);function d(V){var U=V.langExtension;try{var S=a(V.sourceNode);var T=S.sourceCode;V.sourceCode=T;V.spans=S.spans;V.basePos=0;q(U,T)(V);D(V)}catch(W){if("console" in window){console.log(W&&W.stack?W.stack:W)}}}function y(W,V,U){var S=document.createElement("PRE");S.innerHTML=W;if(U){Q(S,U)}var T={langExtension:V,numberLines:U,sourceNode:S};d(T);return S.innerHTML}function b(ad){function Y(af){return document.getElementsByTagName(af)}var ac=[Y("pre"),Y("code"),Y("xmp")];var T=[];for(var aa=0;aa=0){var ah=ai.match(ab);var am;if(!ah&&(am=o(aj))&&"CODE"===am.tagName){ah=am.className.match(ab)}if(ah){ah=ah[1]}var al=false;for(var ak=aj.parentNode;ak;ak=ak.parentNode){if((ak.tagName==="pre"||ak.tagName==="code"||ak.tagName==="xmp")&&ak.className&&ak.className.indexOf("prettyprint")>=0){al=true;break}}if(!al){var af=aj.className.match(/\blinenums\b(?::(\d+))?/);af=af?af[1]&&af[1].length?+af[1]:true:false;if(af){Q(aj,af)}S={langExtension:ah,sourceNode:aj,numberLines:af};d(S)}}}if(X]*(?:>|$)/],[PR.PR_COMMENT,/^<\!--[\s\S]*?(?:-\->|$)/],[PR.PR_PUNCTUATION,/^(?:<[%?]|[%?]>)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],["lang-",/^]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-handlebars",/^]*type\s*=\s*['"]?text\/x-handlebars-template['"]?\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-js",/^]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i],[PR.PR_DECLARATION,/^{{[#^>/]?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{&?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{{>?\s*[\w.][^}]*}}}/],[PR.PR_COMMENT,/^{{![^}]*}}/]]),["handlebars","hbs"]);PR.registerLangHandler(PR.createSimpleLexer([[PR.PR_PLAIN,/^[ \t\r\n\f]+/,null," \t\r\n\f"]],[[PR.PR_STRING,/^\"(?:[^\n\r\f\\\"]|\\(?:\r\n?|\n|\f)|\\[\s\S])*\"/,null],[PR.PR_STRING,/^\'(?:[^\n\r\f\\\']|\\(?:\r\n?|\n|\f)|\\[\s\S])*\'/,null],["lang-css-str",/^url\(([^\)\"\']*)\)/i],[PR.PR_KEYWORD,/^(?:url|rgb|\!important|@import|@page|@media|@charset|inherit)(?=[^\-\w]|$)/i,null],["lang-css-kw",/^(-?(?:[_a-z]|(?:\\[0-9a-f]+ ?))(?:[_a-z0-9\-]|\\(?:\\[0-9a-f]+ ?))*)\s*:/i],[PR.PR_COMMENT,/^\/\*[^*]*\*+(?:[^\/*][^*]*\*+)*\//],[PR.PR_COMMENT,/^(?:)/],[PR.PR_LITERAL,/^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i],[PR.PR_LITERAL,/^#(?:[0-9a-f]{3}){1,2}/i],[PR.PR_PLAIN,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i],[PR.PR_PUNCTUATION,/^[^\s\w\'\"]+/]]),["css"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_KEYWORD,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i]]),["css-kw"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_STRING,/^[^\)\"\']+/]]),["css-str"]); diff --git a/coverage/lcov-report/sort-arrow-sprite.png b/coverage/lcov-report/sort-arrow-sprite.png deleted file mode 100644 index 03f704a609c6fd0dbfdac63466a7d7c958b5cbf3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 209 zcmeAS@N?(olHy`uVBq!ia0vp^>_9Bd!3HEZxJ@+%Qj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>Jii$m5978H@?Fn+^JD|Y9yzj{W`447Gxa{7*dM7nnnD-Lb z6^}Hx2)'; - } - } - return cols; - } - // attaches a data attribute to every tr element with an object - // of data values keyed by column name - function loadRowData(tableRow) { - var tableCols = tableRow.querySelectorAll('td'), - colNode, - col, - data = {}, - i, - val; - for (i = 0; i < tableCols.length; i += 1) { - colNode = tableCols[i]; - col = cols[i]; - val = colNode.getAttribute('data-value'); - if (col.type === 'number') { - val = Number(val); - } - data[col.key] = val; - } - return data; - } - // loads all row data - function loadData() { - var rows = getTableBody().querySelectorAll('tr'), - i; - - for (i = 0; i < rows.length; i += 1) { - rows[i].data = loadRowData(rows[i]); - } - } - // sorts the table using the data for the ith column - function sortByIndex(index, desc) { - var key = cols[index].key, - sorter = function(a, b) { - a = a.data[key]; - b = b.data[key]; - return a < b ? -1 : a > b ? 1 : 0; - }, - finalSorter = sorter, - tableBody = document.querySelector('.coverage-summary tbody'), - rowNodes = tableBody.querySelectorAll('tr'), - rows = [], - i; - - if (desc) { - finalSorter = function(a, b) { - return -1 * sorter(a, b); - }; - } - - for (i = 0; i < rowNodes.length; i += 1) { - rows.push(rowNodes[i]); - tableBody.removeChild(rowNodes[i]); - } - - rows.sort(finalSorter); - - for (i = 0; i < rows.length; i += 1) { - tableBody.appendChild(rows[i]); - } - } - // removes sort indicators for current column being sorted - function removeSortIndicators() { - var col = getNthColumn(currentSort.index), - cls = col.className; - - cls = cls.replace(/ sorted$/, '').replace(/ sorted-desc$/, ''); - col.className = cls; - } - // adds sort indicators for current column being sorted - function addSortIndicators() { - getNthColumn(currentSort.index).className += currentSort.desc - ? ' sorted-desc' - : ' sorted'; - } - // adds event listeners for all sorter widgets - function enableUI() { - var i, - el, - ithSorter = function ithSorter(i) { - var col = cols[i]; - - return function() { - var desc = col.defaultDescSort; - - if (currentSort.index === i) { - desc = !currentSort.desc; - } - sortByIndex(i, desc); - removeSortIndicators(); - currentSort.index = i; - currentSort.desc = desc; - addSortIndicators(); - }; - }; - for (i = 0; i < cols.length; i += 1) { - if (cols[i].sortable) { - // add the click event handler on the th so users - // dont have to click on those tiny arrows - el = getNthColumn(i).querySelector('.sorter').parentElement; - if (el.addEventListener) { - el.addEventListener('click', ithSorter(i)); - } else { - el.attachEvent('onclick', ithSorter(i)); - } - } - } - } - // adds sorting functionality to the UI - return function() { - if (!getTable()) { - return; - } - cols = loadColumns(); - loadData(); - addSortIndicators(); - enableUI(); - }; -})(); - -window.addEventListener('load', addSorting); diff --git a/coverage/lcov.info b/coverage/lcov.info deleted file mode 100644 index 8e5f3fe..0000000 --- a/coverage/lcov.info +++ /dev/null @@ -1,212 +0,0 @@ -TN: -SF:C:\project\open-source\allOrigins\app.js -FN:25,enableCORS -FNF:1 -FNH:1 -FNDA:6,enableCORS -DA:7,1 -DA:9,1 -DA:12,1 -DA:14,1 -DA:16,1 -DA:18,1 -DA:19,1 -DA:20,1 -DA:22,1 -DA:26,6 -DA:27,6 -DA:28,6 -DA:29,6 -DA:30,6 -DA:31,6 -DA:34,1 -LF:16 -LH:16 -BRDA:26,0,0,6 -BRDA:26,0,1,5 -BRF:2 -BRH:2 -end_of_record -TN: -SF:C:\project\open-source\allOrigins\redis.js -FN:7,(anonymous_0) -FN:11,(anonymous_1) -FN:14,(anonymous_2) -FN:15,(anonymous_3) -FNF:4 -FNH:2 -FNDA:5,(anonymous_0) -FNDA:0,(anonymous_1) -FNDA:1,(anonymous_2) -FNDA:0,(anonymous_3) -DA:1,1 -DA:2,1 -DA:3,1 -DA:4,1 -DA:5,1 -DA:7,1 -DA:8,5 -DA:11,1 -DA:12,0 -DA:14,1 -DA:15,1 -LF:11 -LH:10 -BRDA:2,0,0,1 -BRDA:2,0,1,1 -BRF:2 -BRH:2 -end_of_record -TN: -SF:C:\project\open-source\allOrigins\app\get-page.js -FN:8,getPage -FN:18,getPageInfo -FN:30,getRawPage -FN:42,getPageContents -FN:58,request -FN:97,processContent -FN:102,processError -FNF:7 -FNH:7 -FNDA:5,getPage -FNDA:1,getPageInfo -FNDA:1,getRawPage -FNDA:3,getPageContents -FNDA:5,request -FNDA:3,processContent -FNDA:1,processError -DA:1,1 -DA:2,1 -DA:4,1 -DA:6,1 -DA:9,5 -DA:10,1 -DA:11,4 -DA:12,1 -DA:15,3 -DA:19,1 -DA:20,1 -DA:22,1 -DA:31,1 -DA:32,1 -DA:34,1 -DA:35,1 -DA:43,3 -DA:44,3 -DA:46,2 -DA:47,2 -DA:59,5 -DA:61,5 -DA:68,5 -DA:69,5 -DA:70,0 -DA:72,0 -DA:74,0 -DA:75,0 -DA:76,0 -DA:79,5 -DA:81,4 -DA:82,3 -DA:83,0 -DA:91,3 -DA:93,1 -DA:98,3 -DA:99,3 -DA:103,1 -DA:104,1 -DA:106,1 -DA:107,1 -DA:109,1 -LF:42 -LH:36 -BRDA:9,0,0,1 -BRDA:9,0,1,4 -BRDA:9,1,0,5 -BRDA:9,1,1,4 -BRDA:11,2,0,1 -BRDA:11,2,1,3 -BRDA:20,3,0,0 -BRDA:20,3,1,1 -BRDA:25,4,0,1 -BRDA:25,4,1,1 -BRDA:32,5,0,0 -BRDA:32,5,1,1 -BRDA:44,6,0,1 -BRDA:44,6,1,2 -BRDA:65,7,0,5 -BRDA:65,7,1,5 -BRDA:69,8,0,0 -BRDA:69,8,1,5 -BRDA:81,9,0,1 -BRDA:81,9,1,3 -BRDA:82,10,0,0 -BRDA:82,10,1,3 -BRDA:104,11,0,0 -BRDA:104,11,1,1 -BRF:24 -BRH:19 -end_of_record -TN: -SF:C:\project\open-source\allOrigins\app\process-request.js -FN:5,processRequest -FN:16,parseParams -FN:27,parseRequestMethod -FN:36,createResponse -FNF:4 -FNH:4 -FNDA:6,processRequest -FNDA:5,parseParams -FNDA:5,parseRequestMethod -FNDA:5,createResponse -DA:1,1 -DA:3,1 -DA:6,6 -DA:7,1 -DA:10,5 -DA:11,5 -DA:12,5 -DA:13,5 -DA:17,5 -DA:22,5 -DA:23,5 -DA:24,5 -DA:28,5 -DA:30,5 -DA:31,1 -DA:33,4 -DA:37,5 -DA:38,1 -DA:39,1 -DA:40,1 -DA:43,4 -DA:44,0 -DA:45,4 -DA:47,4 -DA:48,1 -DA:50,4 -DA:51,4 -LF:27 -LH:26 -BRDA:6,0,0,1 -BRDA:6,0,1,5 -BRDA:23,1,0,5 -BRDA:23,1,1,0 -BRDA:28,2,0,5 -BRDA:28,2,1,0 -BRDA:30,3,0,1 -BRDA:30,3,1,4 -BRDA:37,4,0,1 -BRDA:37,4,1,4 -BRDA:37,5,0,5 -BRDA:37,5,1,1 -BRDA:37,6,0,1 -BRDA:37,6,1,1 -BRDA:43,7,0,0 -BRDA:43,7,1,4 -BRDA:47,8,0,3 -BRDA:47,8,1,1 -BRDA:50,9,0,0 -BRDA:50,9,1,4 -BRF:20 -BRH:16 -end_of_record