Merge branch 'master' into code-span-email
This commit is contained in:
commit
bbca016932
@ -13,6 +13,10 @@ jobs:
|
|||||||
- node_js: lts/*
|
- node_js: lts/*
|
||||||
- node_js: node
|
- node_js: node
|
||||||
|
|
||||||
|
- stage: security scan 🔐
|
||||||
|
script: npm run test:redos
|
||||||
|
node_js: lts/*
|
||||||
|
|
||||||
- stage: lint ✨
|
- stage: lint ✨
|
||||||
script: npm run test:lint
|
script: npm run test:lint
|
||||||
node_js: lts/*
|
node_js: lts/*
|
||||||
|
@ -4,6 +4,12 @@
|
|||||||
|
|
||||||
# Marked
|
# Marked
|
||||||
|
|
||||||
|
[](https://www.npmjs.com/package/marked)
|
||||||
|
[](https://cdn.jsdelivr.net/npm/marked@0.3.19/marked.min.js)
|
||||||
|
[](https://packagephobia.now.sh/result?p=marked@0.3.19)
|
||||||
|
[](https://www.npmjs.com/package/marked)
|
||||||
|
[](https://travis-ci.org/markedjs/marked)
|
||||||
|
|
||||||
- ⚡ built for speed
|
- ⚡ built for speed
|
||||||
- ⬇️ low-level compiler for parsing markdown without caching or blocking for long periods of time
|
- ⬇️ low-level compiler for parsing markdown without caching or blocking for long periods of time
|
||||||
- ⚖️ light-weight while implementing all markdown features from the supported flavors & specifications
|
- ⚖️ light-weight while implementing all markdown features from the supported flavors & specifications
|
||||||
|
@ -16,7 +16,7 @@ var block = {
|
|||||||
code: /^( {4}[^\n]+\n*)+/,
|
code: /^( {4}[^\n]+\n*)+/,
|
||||||
fences: noop,
|
fences: noop,
|
||||||
hr: /^ {0,3}((?:- *){3,}|(?:_ *){3,}|(?:\* *){3,})(?:\n+|$)/,
|
hr: /^ {0,3}((?:- *){3,}|(?:_ *){3,}|(?:\* *){3,})(?:\n+|$)/,
|
||||||
heading: /^ *(#{1,6}) *([^\n]+?) *#* *(?:\n+|$)/,
|
heading: /^ *(#{1,6}) *([^\n]+?) *(?:#+ *)?(?:\n+|$)/,
|
||||||
nptable: noop,
|
nptable: noop,
|
||||||
blockquote: /^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/,
|
blockquote: /^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/,
|
||||||
list: /^( *)(bull) [\s\S]+?(?:hr|def|\n{2,}(?! )(?!\1bull )\n*|\s*$)/,
|
list: /^( *)(bull) [\s\S]+?(?:hr|def|\n{2,}(?! )(?!\1bull )\n*|\s*$)/,
|
||||||
@ -554,9 +554,68 @@ inline.normal = merge({}, inline);
|
|||||||
inline.pedantic = merge({}, inline.normal, {
|
inline.pedantic = merge({}, inline.normal, {
|
||||||
strong: /^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,
|
strong: /^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,
|
||||||
em: /^_(?=\S)([\s\S]*?\S)_(?!_)|^\*(?=\S)([\s\S]*?\S)\*(?!\*)/,
|
em: /^_(?=\S)([\s\S]*?\S)_(?!_)|^\*(?=\S)([\s\S]*?\S)\*(?!\*)/,
|
||||||
link: edit(/^!?\[(label)\]\(\s*<?([\s\S]*?)>?(?:\s+(['"][\s\S]*?['"]))?\s*\)/)
|
/* Original link re: /^!?\[(label)\]\(\s*<?([\s\S]*?)>?(?:\s+(['"][\s\S]*?['"]))?\s*\)/
|
||||||
|
* This captures the spec reasonably well but is vulnerable to REDOS.
|
||||||
|
* Instead we use a custom parser that follows the RegExp.exec semantics. */
|
||||||
|
link: {
|
||||||
|
exec: function (s) {
|
||||||
|
// [TEXT](DESTINATION)
|
||||||
|
var generalLinkRe = edit(/^!?\[(label)\]\((.*?)\)/)
|
||||||
.replace('label', inline._label)
|
.replace('label', inline._label)
|
||||||
.getRegex(),
|
.getRegex();
|
||||||
|
|
||||||
|
// destination: DESTINATION from generalLinkRe
|
||||||
|
// returns [destination, title]: no angle-brackets on destination, no quotes on title
|
||||||
|
function splitIntoDestinationAndTitle (destination) {
|
||||||
|
function unwrapAngleBrackets (str) {
|
||||||
|
if (str.match(/^<.*>$/)) {
|
||||||
|
str = str.slice(1, -1);
|
||||||
|
}
|
||||||
|
return str;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Valid DESTINATIONs, in decreasing specificity.
|
||||||
|
var destinationAndTitleRe = /^([^'"(]*[^\s])\s+(['"(].*['")])/;
|
||||||
|
var destinationRe = /^(<?[\s\S]*>?)/;
|
||||||
|
var parsingRegexes = [destinationAndTitleRe, destinationRe];
|
||||||
|
|
||||||
|
var match = false;
|
||||||
|
for (var i = 0; i < parsingRegexes.length; i++) {
|
||||||
|
match = parsingRegexes[i].exec(destination);
|
||||||
|
if (match) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!match) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
var dest = match[1];
|
||||||
|
var title = match[2] || ''; // Not all parsingRegexes have 2 groups.
|
||||||
|
|
||||||
|
// Format dest.
|
||||||
|
dest = dest.trim();
|
||||||
|
dest = unwrapAngleBrackets(dest);
|
||||||
|
|
||||||
|
return [dest, title];
|
||||||
|
}
|
||||||
|
|
||||||
|
var fullMatch = generalLinkRe.exec(s);
|
||||||
|
if (!fullMatch) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
var text = fullMatch[1];
|
||||||
|
var destination = fullMatch[2];
|
||||||
|
|
||||||
|
var destinationAndTitle = splitIntoDestinationAndTitle(destination);
|
||||||
|
if (!destinationAndTitle) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return [fullMatch[0], text, destinationAndTitle[0], destinationAndTitle[1]];
|
||||||
|
}
|
||||||
|
},
|
||||||
reflink: edit(/^!?\[(label)\]\s*\[([^\]]*)\]/)
|
reflink: edit(/^!?\[(label)\]\s*\[([^\]]*)\]/)
|
||||||
.replace('label', inline._label)
|
.replace('label', inline._label)
|
||||||
.getRegex()
|
.getRegex()
|
||||||
|
2
marked.min.js
vendored
2
marked.min.js
vendored
File diff suppressed because one or more lines are too long
211
package-lock.json
generated
211
package-lock.json
generated
@ -4,6 +4,36 @@
|
|||||||
"lockfileVersion": 1,
|
"lockfileVersion": 1,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"@types/concat-stream": {
|
||||||
|
"version": "1.6.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@types/concat-stream/-/concat-stream-1.6.0.tgz",
|
||||||
|
"integrity": "sha1-OU2+C7X+5Gs42JZzXoto7yOQ0A0=",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"@types/node": "9.6.5"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"@types/form-data": {
|
||||||
|
"version": "0.0.33",
|
||||||
|
"resolved": "https://registry.npmjs.org/@types/form-data/-/form-data-0.0.33.tgz",
|
||||||
|
"integrity": "sha1-yayFsqX9GENbjIXZ7LUObWyJP/g=",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"@types/node": "9.6.5"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"@types/node": {
|
||||||
|
"version": "9.6.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/@types/node/-/node-9.6.5.tgz",
|
||||||
|
"integrity": "sha512-NOLEgsT6UiDTjnWG5Hd2Mg25LRyz/oe8ql3wbjzgSFeRzRROhPmtlsvIrei4B46UjERF0td9SZ1ZXPLOdcrBHg==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"@types/qs": {
|
||||||
|
"version": "6.5.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.5.1.tgz",
|
||||||
|
"integrity": "sha512-mNhVdZHdtKHMMxbqzNK3RzkBcN1cux3AvuCYGTvjEIQT2uheH3eCAyYsbMbh2Bq8nXkeOWs1kyDiF7geWRFQ4Q==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"abbrev": {
|
"abbrev": {
|
||||||
"version": "1.1.1",
|
"version": "1.1.1",
|
||||||
"resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
|
||||||
@ -99,6 +129,18 @@
|
|||||||
"integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=",
|
"integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"asap": {
|
||||||
|
"version": "2.0.6",
|
||||||
|
"resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
|
||||||
|
"integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"asynckit": {
|
||||||
|
"version": "0.4.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
|
||||||
|
"integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"babel-code-frame": {
|
"babel-code-frame": {
|
||||||
"version": "6.26.0",
|
"version": "6.26.0",
|
||||||
"resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz",
|
"resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz",
|
||||||
@ -147,6 +189,12 @@
|
|||||||
"integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=",
|
"integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"caseless": {
|
||||||
|
"version": "0.12.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
|
||||||
|
"integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"chalk": {
|
"chalk": {
|
||||||
"version": "1.1.3",
|
"version": "1.1.3",
|
||||||
"resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
|
"resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
|
||||||
@ -223,6 +271,15 @@
|
|||||||
"integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
|
"integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"combined-stream": {
|
||||||
|
"version": "1.0.6",
|
||||||
|
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz",
|
||||||
|
"integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"delayed-stream": "1.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"commander": {
|
"commander": {
|
||||||
"version": "2.14.1",
|
"version": "2.14.1",
|
||||||
"resolved": "https://registry.npmjs.org/commander/-/commander-2.14.1.tgz",
|
"resolved": "https://registry.npmjs.org/commander/-/commander-2.14.1.tgz",
|
||||||
@ -357,6 +414,12 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"delayed-stream": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
|
||||||
|
"integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"diff": {
|
"diff": {
|
||||||
"version": "1.0.8",
|
"version": "1.0.8",
|
||||||
"resolved": "https://registry.npmjs.org/diff/-/diff-1.0.8.tgz",
|
"resolved": "https://registry.npmjs.org/diff/-/diff-1.0.8.tgz",
|
||||||
@ -662,6 +725,16 @@
|
|||||||
"integrity": "sha1-NNDJFbRe3G8BA5PH7vOCOwhWXPI=",
|
"integrity": "sha1-NNDJFbRe3G8BA5PH7vOCOwhWXPI=",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"eslint-plugin-vuln-regex-detector": {
|
||||||
|
"version": "1.0.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/eslint-plugin-vuln-regex-detector/-/eslint-plugin-vuln-regex-detector-1.0.4.tgz",
|
||||||
|
"integrity": "sha512-MlGNEvfk/lmHrbp6gIXKP2NPedA+wX2+KwezolXLE6t9q0pcmohkYm2EKmgL9z5n57CAIYFJ/I4SSI3ANWyl/A==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"requireindex": "1.1.0",
|
||||||
|
"vuln-regex-detector": "1.3.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"eslint-scope": {
|
"eslint-scope": {
|
||||||
"version": "3.7.1",
|
"version": "3.7.1",
|
||||||
"resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.1.tgz",
|
"resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.1.tgz",
|
||||||
@ -833,6 +906,17 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"form-data": {
|
||||||
|
"version": "2.3.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz",
|
||||||
|
"integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"asynckit": "0.4.0",
|
||||||
|
"combined-stream": "1.0.6",
|
||||||
|
"mime-types": "2.1.18"
|
||||||
|
}
|
||||||
|
},
|
||||||
"front-matter": {
|
"front-matter": {
|
||||||
"version": "2.3.0",
|
"version": "2.3.0",
|
||||||
"resolved": "https://registry.npmjs.org/front-matter/-/front-matter-2.3.0.tgz",
|
"resolved": "https://registry.npmjs.org/front-matter/-/front-matter-2.3.0.tgz",
|
||||||
@ -866,6 +950,12 @@
|
|||||||
"integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=",
|
"integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"get-port": {
|
||||||
|
"version": "3.2.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz",
|
||||||
|
"integrity": "sha1-3Xzn3hh8Bsi/NTeWrHHgmfCYDrw=",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"get-stdin": {
|
"get-stdin": {
|
||||||
"version": "4.0.1",
|
"version": "4.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz",
|
||||||
@ -1040,6 +1130,29 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"http-basic": {
|
||||||
|
"version": "7.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/http-basic/-/http-basic-7.0.0.tgz",
|
||||||
|
"integrity": "sha1-gvClBr6UJzLsje6+6A50bvVzbbo=",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"@types/concat-stream": "1.6.0",
|
||||||
|
"@types/node": "9.6.5",
|
||||||
|
"caseless": "0.12.0",
|
||||||
|
"concat-stream": "1.6.0",
|
||||||
|
"http-response-object": "3.0.1",
|
||||||
|
"parse-cache-control": "1.0.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"http-response-object": {
|
||||||
|
"version": "3.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/http-response-object/-/http-response-object-3.0.1.tgz",
|
||||||
|
"integrity": "sha512-6L0Fkd6TozA8kFSfh9Widst0wfza3U1Ex2RjJ6zNDK0vR1U1auUR6jY4Nn2Xl7CCy0ikFmxW1XcspVpb9RvwTg==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"@types/node": "9.6.5"
|
||||||
|
}
|
||||||
|
},
|
||||||
"iconv-lite": {
|
"iconv-lite": {
|
||||||
"version": "0.4.19",
|
"version": "0.4.19",
|
||||||
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz",
|
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz",
|
||||||
@ -1395,6 +1508,21 @@
|
|||||||
"mimic-fn": "1.1.0"
|
"mimic-fn": "1.1.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"mime-db": {
|
||||||
|
"version": "1.33.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz",
|
||||||
|
"integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"mime-types": {
|
||||||
|
"version": "2.1.18",
|
||||||
|
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz",
|
||||||
|
"integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"mime-db": "1.33.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"mimic-fn": {
|
"mimic-fn": {
|
||||||
"version": "1.1.0",
|
"version": "1.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.1.0.tgz",
|
||||||
@ -1557,6 +1685,12 @@
|
|||||||
"p-limit": "1.1.0"
|
"p-limit": "1.1.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"parse-cache-control": {
|
||||||
|
"version": "1.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/parse-cache-control/-/parse-cache-control-1.0.1.tgz",
|
||||||
|
"integrity": "sha1-juqz5U+laSD+Fro493+iGqzC104=",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"parse-json": {
|
"parse-json": {
|
||||||
"version": "2.2.0",
|
"version": "2.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
|
||||||
@ -1686,6 +1820,15 @@
|
|||||||
"integrity": "sha1-ihvjZr+Pwj2yvSPxDG/pILQ4nR8=",
|
"integrity": "sha1-ihvjZr+Pwj2yvSPxDG/pILQ4nR8=",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"promise": {
|
||||||
|
"version": "8.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/promise/-/promise-8.0.1.tgz",
|
||||||
|
"integrity": "sha1-5F1osAoXZHttpxG/he1u1HII9FA=",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"asap": "2.0.6"
|
||||||
|
}
|
||||||
|
},
|
||||||
"pseudomap": {
|
"pseudomap": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
|
||||||
@ -1698,6 +1841,12 @@
|
|||||||
"integrity": "sha1-TeLmyzspCIyeTLwDv51C+5bOL3U=",
|
"integrity": "sha1-TeLmyzspCIyeTLwDv51C+5bOL3U=",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"qs": {
|
||||||
|
"version": "6.5.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz",
|
||||||
|
"integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"read-pkg": {
|
"read-pkg": {
|
||||||
"version": "2.0.0",
|
"version": "2.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz",
|
||||||
@ -1741,6 +1890,12 @@
|
|||||||
"resolve-from": "1.0.1"
|
"resolve-from": "1.0.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"requireindex": {
|
||||||
|
"version": "1.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/requireindex/-/requireindex-1.1.0.tgz",
|
||||||
|
"integrity": "sha1-5UBLgVV+91225JxacgBIk/4D4WI=",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"resolve": {
|
"resolve": {
|
||||||
"version": "1.5.0",
|
"version": "1.5.0",
|
||||||
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.5.0.tgz",
|
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.5.0.tgz",
|
||||||
@ -2034,6 +2189,26 @@
|
|||||||
"integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
|
"integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"sync-request": {
|
||||||
|
"version": "6.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/sync-request/-/sync-request-6.0.0.tgz",
|
||||||
|
"integrity": "sha512-jGNIAlCi9iU4X3Dm4oQnNQshDD3h0/1A7r79LyqjbjUnj69sX6mShAXlhRXgImsfVKtTcnra1jfzabdZvp+Lmw==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"http-response-object": "3.0.1",
|
||||||
|
"sync-rpc": "1.3.3",
|
||||||
|
"then-request": "6.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sync-rpc": {
|
||||||
|
"version": "1.3.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/sync-rpc/-/sync-rpc-1.3.3.tgz",
|
||||||
|
"integrity": "sha512-xtTZUAeFaescZALim6yqjMDsVQD7mKAkdZ0/FOvVjlrr4uQqrARlWxs4P7bKV2ZPnvOyTVyHyyxqztxtBF4iIw==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"get-port": "3.2.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"table": {
|
"table": {
|
||||||
"version": "4.0.2",
|
"version": "4.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz",
|
||||||
@ -2091,6 +2266,33 @@
|
|||||||
"integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=",
|
"integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"then-request": {
|
||||||
|
"version": "6.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/then-request/-/then-request-6.0.0.tgz",
|
||||||
|
"integrity": "sha512-xA+7uEMc+jsQIoyySJ93Ad08Kuqnik7u6jLS5hR91Z3smAoCfL3M8/MqMlobAa9gzBfO9pA88A/AntfepkkMJQ==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"@types/concat-stream": "1.6.0",
|
||||||
|
"@types/form-data": "0.0.33",
|
||||||
|
"@types/node": "8.10.8",
|
||||||
|
"@types/qs": "6.5.1",
|
||||||
|
"caseless": "0.12.0",
|
||||||
|
"concat-stream": "1.6.0",
|
||||||
|
"form-data": "2.3.2",
|
||||||
|
"http-basic": "7.0.0",
|
||||||
|
"http-response-object": "3.0.1",
|
||||||
|
"promise": "8.0.1",
|
||||||
|
"qs": "6.5.1"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"@types/node": {
|
||||||
|
"version": "8.10.8",
|
||||||
|
"resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.8.tgz",
|
||||||
|
"integrity": "sha512-BvcUxNZe9JgiiUVivtiQt3NrPVu9OAQzkxR1Ko9ESftCYU7V6Np5kpDzQwxd+34lsop7SNRdL292Flv52OvCaw==",
|
||||||
|
"dev": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"through": {
|
"through": {
|
||||||
"version": "2.3.8",
|
"version": "2.3.8",
|
||||||
"resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
|
"resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
|
||||||
@ -2198,6 +2400,15 @@
|
|||||||
"integrity": "sha1-qbVhR3x+pdVjsMqqUuQOZo3gwjg=",
|
"integrity": "sha1-qbVhR3x+pdVjsMqqUuQOZo3gwjg=",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"vuln-regex-detector": {
|
||||||
|
"version": "1.3.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/vuln-regex-detector/-/vuln-regex-detector-1.3.0.tgz",
|
||||||
|
"integrity": "sha512-QWm8buVznZjdcfMuFHYsiNfHd0YQ7dO41G0iEGVPlUng5eZUo8uy+QsVCmbgVZ2b96xprY1Tz9dQD7QtvbFHXw==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"sync-request": "6.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"which": {
|
"which": {
|
||||||
"version": "1.3.0",
|
"version": "1.3.0",
|
||||||
"resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz",
|
"resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz",
|
||||||
|
@ -29,6 +29,7 @@
|
|||||||
"eslint-plugin-node": "^5.2.1",
|
"eslint-plugin-node": "^5.2.1",
|
||||||
"eslint-plugin-promise": "^3.6.0",
|
"eslint-plugin-promise": "^3.6.0",
|
||||||
"eslint-plugin-standard": "^3.0.1",
|
"eslint-plugin-standard": "^3.0.1",
|
||||||
|
"eslint-plugin-vuln-regex-detector": "^1.0.4",
|
||||||
"front-matter": "^2.3.0",
|
"front-matter": "^2.3.0",
|
||||||
"glob-to-regexp": "0.3.0",
|
"glob-to-regexp": "0.3.0",
|
||||||
"html-differ": "^1.3.4",
|
"html-differ": "^1.3.4",
|
||||||
@ -48,6 +49,7 @@
|
|||||||
"test:marked": "npm test -- test/specs/marked/**/*-spec.js",
|
"test:marked": "npm test -- test/specs/marked/**/*-spec.js",
|
||||||
"test:old": "node test",
|
"test:old": "node test",
|
||||||
"test:lint": "eslint bin/marked .",
|
"test:lint": "eslint bin/marked .",
|
||||||
|
"test:redos": "eslint --plugin vuln-regex-detector --rule '\"vuln-regex-detector/no-vuln-regex\": 2' lib/marked.js",
|
||||||
"bench": "node test --bench",
|
"bench": "node test --bench",
|
||||||
"lint": "eslint --fix bin/marked .",
|
"lint": "eslint --fix bin/marked .",
|
||||||
"build": "uglifyjs lib/marked.js -cm --comments /Copyright/ -o marked.min.js",
|
"build": "uglifyjs lib/marked.js -cm --comments /Copyright/ -o marked.min.js",
|
||||||
|
10
test/index.js
vendored
10
test/index.js
vendored
@ -111,12 +111,9 @@ function runTests(engine, options) {
|
|||||||
filename = filenames[i];
|
filename = filenames[i];
|
||||||
file = files[filename];
|
file = files[filename];
|
||||||
|
|
||||||
var before = process.hrtime();
|
|
||||||
success = testFile(engine, file, filename, i + 1);
|
success = testFile(engine, file, filename, i + 1);
|
||||||
var elapsed = process.hrtime(before);
|
|
||||||
var tookLessThanOneSec = (elapsed[0] === 0);
|
|
||||||
|
|
||||||
if (success && tookLessThanOneSec) {
|
if (success) {
|
||||||
succeeded++;
|
succeeded++;
|
||||||
} else {
|
} else {
|
||||||
failed++;
|
failed++;
|
||||||
@ -198,6 +195,11 @@ function testFile(engine, file, filename, index) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (elapsed[0] > 0) {
|
||||||
|
console.log(' failed because it took too long.\n\n passed in %dms', prettyElapsedTime(elapsed));
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
console.log(' passed in %dms', prettyElapsedTime(elapsed));
|
console.log(' passed in %dms', prettyElapsedTime(elapsed));
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user